LCTRL - управление импульсным регулятором

Назначение.
Функциональный блок LCTRL используется в составе каскадного регулятора, если необходимо ручное управление импульсным регулятором RIM.
Состав структурной переменной.
Переменная со структурным типом LCTRL будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
Функциональный блок работает в автоматическом или ручном режиме. Для включения блока LCTRL в схему каскадного регулятора необходимо:
-
сигнал с основного выхода Y блока RIM передать на вход X блока LCTRL;
В таком случае аналоговый сигнал с выхода импульсного регулятора RIM поступает на вход блока широтно-импульсной модуляции PWM, где преобразовывается в дискретный сигнал для управления исполнительными механизмами, а увеличение управляющего воздействия на выходе Y блока RIM приведет к увеличению длительности импульсов на выходе блока PWM. При этом длительность импульсов будет увеличиваться в каждом цикле до тех пор, пока временное расстояние между ними больше минимально допустимой паузы Tmps, установленной для блока PWM. Как только расстояние между импульсами станет меньше Tmps, импульсы слипнутся и выход, соответствующий знаку управляющего воздействия Y, будет постоянно включен.
Пример включения блока LCTRL в схему каскадного регулятора продемонстрирован на следующем изображении.

Автоматический режим.
В автоматическом режиме (AUTO=TRUE) блок LCTRL пропускает регулирующий сигнал на выход без изменения (Y = X), поэтому выход блока LCTRL равен выходу импульсного регулятора RIM.
![]() |
Ручной режим.
В ручном режиме (AUTO=FALSE) значение выходного сигнала Y изменяется на величину S в каждом цикле контроллера в зависимости от состояния дискретных входов Up и Down:
При использовании блока LCTRL в ручном режиме в схеме каскадного регулятора направление перемещения исполнительного механизма, управляемого блоком PWM, зависит от состояния входных сигналов Up и Down блока LCTRL: Up=TRUE (перемещение в направлении “больше”) или Down=TRUE (перемещение в направлении “меньше”). Если Up=Down, исполнительный механизм не перемещается.
![]()
Входные дискретные сигналы Zup и Zdown позволяют запретить изменение выходного сигнала и, соответственно, перемещение исполнительного механизма:
|
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.LCTRL(AUTO, X, Up, Down, S, Zup, Zdown);
//чтение управляющего сигнала
Y := Block.Y
|


