Ограничение управляющего сигнала

Страницы работы

Фрагмент текста работы

Процесс поддерживается в этом состоянии до тех пор, пока выходной сигнал регулятора равен нулю. В этом случае интегральная часть также равна нулю, и поскольку ошибка равна нулю, то достигается плавный переход. Эта процедура годна и для цифровых регуляторов.

Другой метод состоит в медленном доведении опорного значения до необходимой конечной величины.

Вначале опорное значение устанавливается равным текущему измерению, а затем постепенно вручную доводится до желаемого.

Если эта процедура выполняется достаточно медленно, интегральная часть сигнала регулятора остается настолько малой, что обеспечивается плавность перехода. Недостатком этого способа является то, что он требует достаточно большого времени, которое зависит от характера процесса.

Ограничение скорости изменения управляющего сигнала

Во многих СУ необходимо ограничивать как амплитуду, так и скорость изменения управляющего сигнала. Для этого используют специальные схемы защиты, подключаемые после канала ручного ввода опорного значения uc(t) и передающие регулятору отфильтрованный сигнал uL(t), как это показано на рис. 24.2.

В результате процесс "видит" этот управляющий сигнал вместо введенного вручную. Такой способ обычно применяют при регулировании электроприводов. Ограничение скорости изменения сигнала можно получить с помощью простой цепи обратной связи.

Сигнал ручного управления uc(t), выступающий в качестве опорного, сравнивается с допустимым управляющим сигналом uL(t). Сначала их разность ограничивается пределами  uemin и uеmах.

Затем полученное значение интегрируется, причем интеграл аппроксимируется конечной суммой.

Алгоритм ограничения скорости изменения таков:

      …

      uе = uс - uL;

      if (uе < uemin) then uelim := uemin    (*функция ограничения*)
      else    if (ue < uemax) then uelim := ue

              
                else uelim := uemax;

      uL = uL_old + taus*uelim;

      …

Рис. 24.2. Цепь ограничения скорости  изменения сигнала задания Uc (а) и

реакция схемы на скачок задающего сигнала  Uc (б)

Вычислительные особенности алгоритма ПИД-регулятора

Цифровая реализация ПИД-регулятора из-за последовательного характера вычислений приводит к задержкам, которых нет в аналоговой технологии. Кроме того, некоторые ограничения (защита от насыщения и алгоритмы плавного перехода) требуют, чтобы выход регулятора и срабатывание ИМ происходили одновременно. Поэтому вычислительные задержки необходимо свести к минимуму. Для этого некоторые элементы цифрового регулятора вычисляют до момента выборки.

Для регулятора с защитой от насыщения интегральная часть можно вычислить заранее с помощью разностей вперед

uI(k + 1) = uI(k) + c1· e(k) + c2· [u(k) – ud(k) ] ,

где  u– ограниченное значение  ud;

c1 = K· ts/ Ti ;  c2 = ts/ Tt;

(24.1)

Tt– коэффициент, который называется постоянной времени слежения.

Дифференциальная часть выглядит как

uD(k) = – c3 · y(k) + x(k – 1),

(24.2)

где

c3 = (1 b) ·K·Td /ts;

x(k – 1) = b· uD(k – 1) + c3 · y(k – 1).

Переменную x можно обновить сразу после момента времени k  

x(k ) = b· x(k – 1) + c3 · (1 b) · y(k).

Таким образом, uD(k + 1)  удается вычислить из (24.2), как только получен результат измерения y(k + 1).

Оптимизация вычислений  необходима, так как цифровой регулятор иногда должен выполнять несколько тысяч управляющих операций в секунду. В этих условиях важно, чтобы некоторые коэффициенты были доступны сразу, а не вычислялись каждый раз заново. Кроме того, промышленные регуляторы имеют не самые быстрые процессоры (i386, 486). Поэтому порядок и тип вычислений очень влияют на скорость операций управления.

Алгоритм ПИД-регулятора

Пример программы ПИД-регулятора на языке Pascal. Вычисление коэффициентов c1, c2 и c3 нужно производить лишь в случае изменения параметров регулятора K, Ti, Td  и Tf.  Алгоритм регулятора выполняется в момент каждой выборки. Программа имеет защиту от насыщения интегральный составляющей.

 (*Предварительное вычисление коэффициентов*)

c1 := K*taus/Ti;                             (* уравнение 23.7 *)

с2 := taus/Tt;                                  (* уравнение 24.1 *)

beta := Td/(Td + taus*N);              (* уравнение 24.1 *)

сЗ := K*Td*(l - beta)/taus;            (* уравнение 24.2 *)

с4 := сЗ*(1 - beta);                        (* локальная константа*)

ipart := 0;

х:=0;

(* Алгоритм управления *)

uc := ADinput(ch1);           (* ввод опорного значения, аналоговый вход *)

у := AD_input(ch2);           (* ввод измерения, аналоговый вход *)

е := uc - у;                                    (* вычисление ошибки управления *)

ppart := К*е;                                 (* пропорциональная часть *)

dpart := х - (сЗ*у);                        (* дифференциальная часть, *)

ud := uO + ppart + ipart + dpart;  (* выход регулятора до ограничения сигнала*)
if (ud < umin) then u := umin       (* функция ограничения *)

else    if (ud < umax) then u := ud

          else u := umax;

DAoutput (ch1, u);  (*вывод аналогового сигнала *)
                                                                    (*управления и, канал вывода #1*)

ipart := ipart + c1*e + c2*(u - ud); (* интегральная часть с "антинасыщением

Похожие материалы

Информация о работе