Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство по программированию
×

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


Назначение.
Функциональный блок LCTRL используется в составе каскадного регулятора, если необходимо ручное управление импульсным регулятором RIM.
Состав структурной переменной.
Переменная со структурным типом LCTRL будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
Описание алгоритма.
Функциональный блок работает в автоматическом или ручном режиме. Для включения блока LCTRL в схему каскадного регулятора необходимо:
  • сигнал с выхода Y блока LCTRL передать на вход X0 регулятора RIM;
  • сигнал с выхода Y блока RIM передать на вход X блока PWM;
  • сигнал с основного выхода Y блока RIM передать на вход X блока LCTRL;
  • на вход X1 блока RIM может передаваться задание от ведущего регулятора;
В таком случае аналоговый сигнал с выхода импульсного регулятора RIM поступает на вход блока широтно-импульсной модуляции PWM, где преобразовывается в дискретный сигнал для управления исполнительными механизмами, а увеличение управляющего воздействия на выходе Y блока RIM приведет к увеличению длительности импульсов на выходе блока PWM. При этом длительность импульсов будет увеличиваться в каждом цикле до тех пор, пока временное расстояние между ними больше минимально допустимой паузы Tmps, установленной для блока PWM. Как только расстояние между импульсами станет меньше Tmps, импульсы слипнутся и выход, соответствующий знаку управляющего воздействия Y, будет постоянно включен.
Пример включения блока LCTRL в схему каскадного регулятора продемонстрирован на следующем изображении.
Автоматический режим.
В автоматическом режиме (AUTO=TRUE) блок LCTRL пропускает регулирующий сигнал на выход без изменения (Y = X), поэтому выход блока LCTRL равен выходу импульсного регулятора RIM.
Ручной режим.
В ручном режиме (AUTO=FALSE) значение выходного сигнала Y изменяется на величину S в каждом цикле контроллера в зависимости от состояния дискретных входов Up и Down:
  • Up=Down → выходной сигнал не изменяется, Yi = Yi-1 ;
  • Up=TRUE → выходной сигнал Y увеличивается по формуле Yi = Yi-1 + S ,
  • Down=TRUE → выходной сигнал Y уменьшается по формуле Yi = Yi-1 - S,
    где Yi – значение Y в текущем цикле, Yi-1 – значение Y в предыдущем цикле, S – величина приращения. Значение S<=0 воспринимается блоком как S=0.
При использовании блока LCTRL  в ручном режиме в схеме каскадного регулятора направление перемещения исполнительного механизма, управляемого блоком PWM, зависит от состояния входных сигналов Up и Down блока LCTRL: Up=TRUE (перемещение в направлении “больше”) или Down=TRUE (перемещение в направлении “меньше”). Если Up=Down, исполнительный механизм не перемещается.
Переход на ручной режим работы выполняется безударно, так как в момент переключения управляющее воздействие Y=0.
Входные дискретные сигналы Zup и Zdown позволяют запретить изменение выходного сигнала и, соответственно, перемещение исполнительного механизма:
  • Zup=TRUE - механизм не перемещается в направлении "больше";
  • Zdown=TRUE - механизм не перемещается в направлении "меньше";
  • Zup=Zdown=TRUE - механизм не перемещается в обоих направлениях.
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.LCTRL(AUTO, X, Up, Down, S, Zup, Zdown);
//чтение управляющего сигнала
Y := Block.Y