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). Выходное значение данного коэффициента учитывает скорость увеличения рассогласования  между уставкой и фактическим значением.

Коэффициенты для PID регулятора

В следующем Network 3 задаем максимальный (100.0) и минимальный (0.0) предел выходного сигнала ПИД-регулятора температуры.

Максимальный и минимальный предел выходного сигнала ПИД-регулятора

Далее задается время выборки sRet.r_Ctrl_Cycle, которое обычно эквивалентно времени цикла вызывающей команды, в нашем случае 0,1 с.

Время выборки

В Network 5 вставлен блок самого ПИД-регулятора. В данной программе используется инструкция PID_Compact, которая представляет собой универсальный ПИД-регулятор с интегрированной самонастройкой для автоматического и ручного режима.

Инструкция 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.

Режим запуска PID

И наконец, в последнем Network 7 мы преобразовываем входной токовый сигнал 4-20 мА в фактическое значение температуры.

Преобразование входного токового сигнала 4-20 мА в фактическое значение

В завершении еще раз хочу подчеркнуть, что данная программа является лишь одним из примеров работы с ШИМ сигналом, в следующих статьях я постараюсь рассмотреть другие варианты работы с ШИМ.

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Яндекс

Комментарии

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>