-
Tia Portal — Широтно-импульсная модуляция (ШИМ)
2022-02-26
Промышленное
-
Темой сегодняшней статьи будет знакомство со способами управления различными объектами с помощью широтно-импульсной модуляции (англ. Pulse Width Modulation), или сокращенно ШИМ. Для примера приведу один из возможных вариантов применения данной функции.
Рассмотрим программу контроля регулирования температуры нагревателя на основе ПИД-регулятора c использованием выхода с широтно-импульсной модуляцией. В качестве основы возьмем среду разработки Tia Portal.
Сразу скажу, что управление объектами с помощью ШИМ, в Tia Portal можно реализовать различными способами, например с помощью встроенной инструкции CTRL_PWM, или с помощью таймеров, но в данном случае будем использовать именно ПИД-регулятор.
Для начала небольшое вступление для понимания того, что собой представляет ШИМ и как с его помощью управлять каким-либо процессом.
Широтно-импульсная модуляция
Широтно-импульсная модуляция - это способ управления, заключающийся в изменении длительности импульса при постоянной амплитуде и частоте следования импульсов, часто используемый в различных системах, в том числе и системах автоматизации. То есть ШИМ представляет собой периодический импульсный сигнал.
Основной величиной импульса является его длительность (t) , которая представляет собой отрезок времени, в течение которого логический уровень (1 или 0) имеет одно устойчивое состояние.
Еще одним важным параметром является период - промежуток времени, между двумя характерными точками двух соседних импульсов. Обычно период измеряют между двух фронтов или двух спадов соседних импульсов и обозначают буквой (T).
Отношение периода следования импульсов к их длительности называется скважностью и обозначается буквой S.
S = T/t
Величиной, обратной скважности является коэффициент заполнения D (Duty cycle). Коэффициент заполнения обычно выражается в процентах и вычисляется по формуле:
D=1/S
Также важной характеристикой ШИМ сигнала является частота следования импульсов, которая представляет собой количество полных импульсов в единицу времени.
Стоит отметить, что зачастую в схемах с применением широтно-импульсной модуляции используется обратная связь для управления длительностью импульса по той или иной закономерности, например, в схемах ПИД-регуляторов.
Один из таких примеров мы и рассмотрим во второй части статьи.
Управление нагревателем с использованием широтно-импульсной модуляции
Для примера рассмотрим задачу управления нагревом при помощи ШИМ сигнала.
Для измерения температуры используется датчик термосопротивления с выходным сигналом 4-20 мА, который подключен к аналоговому входу ПЛК.
Для управления нагревателем будет использоваться твердотельное реле (SSR), которое в свою очередь будет управляться с помощью ШИМ выхода ПЛК. ПИД-регулятор будет генерировать ШИМ сигнал в соответствии с обратной связью по входному сигналу датчика температуры.
Создадим в первую очередь таблицу входов-выходов, которые будут задействованы в программе.
Input
Temp — Аналоговый вход датчика температуры :- IW0
Output
PWM-Output — ШИМ-выход: Q2.0
M memory
Manual Enable – Ручной режим: M2.2
Set Temp – Уставка: MD2
Actual Temp – Фактическая температура: MD6
PID output – Выход ПИД %: MD10
PID state – Состояние: MW14
PID Error – Ошибка: MD16
PID enable input – Вход включения ПИД: M18.0
PID manual mode – Ручной режим ПИД: M18.1
PID reset – Сброс ПИД: M18.2
PID high limit – Верхний предел: M18.3
PID low limit – Нижний предел: M18.4
PID input warning_l – Сигнализация нижнего предела: M18.5
PID input warning_h – Сигнализация верхнего предела: M20.0
После того, как таблица создана, переходим непосредственно к программе.
В первом и втором Network мы настраиваем стандартные параметры для PID регулятора, которые сохраняются в экземплярном DB “PWM Control”.
В sRet.r_Ctrl_Gain сохраняется пропорциональный коэффициент усиления или коэффициент усиления P (1.0), выходное значение которого пропорционально различию между уставкой и фактическим значением.
В sRet.r_Ctrl_Ti задаем коэффициент интегрирования, или время интегрирования Ti (20.0), выходное значение которого увеличивается пропорционально продолжительности рассогласования между уставкой и фактическим значением, чтобы в итоге устранить различие.
В sRet.r_Ctrl_Td заносится дифференциальный коэффициент, или время упреждения Td (0.0). Выходное значение данного коэффициента учитывает скорость увеличения рассогласования между уставкой и фактическим значением.
В следующем Network 3 задаем максимальный (100.0) и минимальный (0.0) предел выходного сигнала ПИД-регулятора температуры.
Далее задается время выборки sRet.r_Ctrl_Cycle, которое обычно эквивалентно времени цикла вызывающей команды, в нашем случае 0,1 с.
В Network 5 вставлен блок самого ПИД-регулятора. В данной программе используется инструкция
PID_Compact
, которая представляет собой универсальный ПИД-регулятор с интегрированной самонастройкой для автоматического и ручного режима.Рассмотрим работу инструкции подробнее.
- На вход EN приходит сигнал включения ПИД регулятора.
- На входном параметре Setpoint задается уставка регулятора в автоматическом режиме.
- На входе Input -тег пользовательской программы, используемый в качестве источника значения процесса.
- ManualEnable отвечает за включение или отключение ручного режима работы.
- Сигнал, поступающий на Reset, перезапускает регулятор.
Перейдем к выходным параметрам.
- Output представляет собой выходное значение PID в формате REAL.
- Output_PWM отвечает за выходное значение для широтно-импульсной модуляции.
- SetpointLimit_H и SetpointLimit_L – это верхний и нижний пределы уставки.
- InputWarning_L сигнализирует о том, что значение процесса достигло или опустилось ниже нижнего предупреждающего предела, а InputWarning_H соответственно верхнего.
- Выход State показывает текущий рабочий режим ПИД-регулятора – ручной, автоматический, неактивный и т.д.
- Выход Error = TRUE указывает на наличие ошибки.
Далее идет Network 6 отвечающий за режим запуска PID.
И наконец, в последнем Network 7 мы преобразовываем входной токовый сигнал 4-20 мА в фактическое значение температуры.
В завершении еще раз хочу подчеркнуть, что данная программа является лишь одним из примеров работы с ШИМ сигналом, в следующих статьях я постараюсь рассмотреть другие варианты работы с ШИМ.
Комментарии