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

CCTRL - ручное управление аналоговым регулятором


Назначение.
Функциональный блок CCTRL используется в составе каскадного регулятора, если необходимо ручное управление аналоговым регулятором RAN.
 
Состав структурной переменной.
Переменная со структурным типом CCTRL будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
Описание алгоритма.
Функциональный блок работает в одном из трех режимов: автоматическом, ручном каскадном и ручном локальном. Определение режима работы осуществляется комбинацией дискретных сигналов на входах AUTO и Ck.
Для включения блока СCTRL в схему каскадного регулятора необходимо:
  • на вход Xсas передать сигнал с основного выхода ведущего аналогового регулятора RAN;
  • на вход Xloc передать значение регулируемого параметра ведомого регулятора RAN (вход X2);
  • сигнал с выхода блока CCTRL передать на вход X0 ведущего регулятора RAN.
Пример включения блока СCTRL в схему каскадного регулятора продемонстрирован на следующем изображении.
Автоматический режим.
В автоматическом режиме (AUTO=TRUE, Ck игнорируется) выход Y=Xcas.
Ручной локальный режим.
В ручном локальном режиме (AUTO=FALSE и Ck=FALSE) выход Y равен входному сигналу Xloc.
При использовании блока СCTRL в составе каскадного регулятора в ручном локальном режиме входные сигналы X1 и X2 ведомого регулятора RAN равны, а выход ведущего регулятора RAN будет равен регулируемому параметру ведомого регулятора. Поэтому, рассогласование для ведомого регулятора равно нулю.
Ручной каскадный режим.
В ручном каскадном режиме (AUTO=FALSE и Ck=TRUE) значение выходного сигнала Y изменяется в зависимости от состояния дискретных входов Up и Down:
  • Up=Down → выходной сигнал Y не изменяется;
  • Up=TRUE → выходной сигнал Y увеличивается по формуле Yi = Yi-1 + h*Tc ,
  • Down=TRUE → выходной сигнал Y уменьшается по формуле Yi = Yi-1 - h*Tc ,
    где Yi-1 – значение выхода в предыдущем цикле, Yi – обновленное значение выхода в текущем цикле, h – скорость изменения значения выходного сигнала, Tс – длительность цикла.
Если блок СCTRL в ручном каскадном режиме включен в состав каскадного регулятора, с использованием его дискретных входов Up и Down можно изменять значение выходного сигнала Y блока ведомого регулятора RAN.
В момент переключения блока CCTRL в ручной каскадный режим работы, выход блока CCTRL равен выходу RAN ведущего аналогового регулятора. При этом выход ведущего регулятора RAN не изменится и удара не произойдет.
Скорость изменения значения выходного сигнала Y зависит от значения входных параметров V и A. Значение V<0 воспринимается алгоритмом как V=0. Если A<=0, скорость h=V. Иначе, скорость h изменяется в каждом цикле контроллера при наличии дискретных сигналов на входах Up или Down:
  • Up=Down → выходной сигнал Y не изменяется;
  • Up=TRUE → hi = hi-1 + A*Tc ,
  • Down=TRUE → hi = hi-1 - A*Tc ,
  • в момент изменения состояния Up или Down → h=V,
    где hi-1 – значение скорости в предыдущем цикле, hi – значение скорости в текущем цикле, А  и V– входные значения ускорения и скорости, Tс – длительность цикла.
Входные дискретные сигналы Zup и Zdown позволяют запретить изменение выходного сигнала Y в сторону увеличения и уменьшения соответственно. При Zup=TRUE выходной сигнал Y не будет увеличиваться независимо от состояния входа Up. При Zdown=TRUE выходной сигнал не будет уменьшаться независимо от состояния входа Down. Состояние сигналов Zup и Zdown анализируется алгоритмом блока только в ручном каскадном режиме.
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.CCTRL(AUTO, Ck, Xcas, Xloc, Up, Down, V, A, Zup, Zdown);
//чтение выходного сигнала
Y := Block.Y;