Разработка ПИД для Подавления помех с PID Tuner

В этом примере показов, как спроектировать ПИ-контроллер с хорошим подавлением помех эффективности с помощью инструмента PID Tuner. Пример также показывает, как спроектировать ISA-PID контроллер как для хорошего подавления помех, так и для хорошего отслеживания уставки.

Запуск PID Tuner с первоначальным проектом ПИД

Модель объекта управления

G(s)=6(s+5)e-s(s+1)(s+2)(s+3)(s+4)

G = zpk(-5,[-1 -2 -3 -4],6,'OutputDelay',1);
G.InputName = 'u';  
G.OutputName = 'y';

Используйте следующую команду, чтобы запустить PID Tuner для разработки ПИ-контроллера в параллельной форме для объекта G.

pidtool(G,'pi')

PID Tuner автоматически проектирует начальное ПИ-контроллер. Нажмите кнопку «Показать параметры», чтобы отобразить коэффициент усиления и показатели эффективности контроллера.

Для отслеживания уставки шагов время урегулирования составляет около 12 секунд, а перерегулирование составляет около 6,3 процента, что приемлемо для этого примера.

Настройка ПИДа для Подавления помех

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

Поскольку ослабление низкочастотных нарушений порядка обратно пропорционально интегральной составляющей Ki, максимизация интегральной составляющей является полезной эвристикой для получения ПИ-контроллера с хорошим подавлением помех. Для справки см. Karl Astrom et al., «Advanced PID Control», глава 4 «Controller Design», 2006, The ISA Society.

Нажмите Add Plot, выберите Input disturbance rejection и нажмите Add, чтобы построить график шага входного возмущения. Пиковое отклонение составляет около 1, и оно оседает до уровня менее 0,1 примерно за 9 секунд.

Мозаичьте графики, чтобы показать как отслеживание уставки, так и входные характеристики нарушения порядка. Переместите ползунок времени отклика вправо, чтобы увеличить скорость отклика (полосу пропускания разомкнутого контура). Коэффициент усиления Ki в таблице параметров Controller сначала увеличивается, а затем уменьшается, причем максимальное значение происходит на уровне 0,3. Когда Ki составляет 0,3, пиковое отклонение уменьшается до 0,9 (примерно 10% улучшение) и оно оседает до менее 0,1 за примерно 6,7 секунд (примерно 25% улучшение).

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

Щелкните Экспортом, чтобы экспортировать спроектированные ПИ-контроллеры в Рабочее пространство MATLAB. Контроллер представлен объектом ПИД, и он вам нужен, чтобы создать контроллер ISA-PID в следующем разделе.

Можно также вручную создать то же ПИ-контроллер в Рабочее пространство MATLAB с помощью команды pid. В этой команде можно непосредственно задать усиления Kp и Ki, полученные из таблицы параметров PID Tuner.

C = pid(0.64362,0.30314);
C.InputName = 'e';  
C.OutputName = 'u';
C
C =
 
             1 
  Kp + Ki * ---
             s 

  with Kp = 0.644, Ki = 0.303
 
Continuous-time PI controller in parallel form.

Расширение ПИД-регулятора на контроллер ISA-PID

Простое решение сделать ПИ-контроллер хорошо работать как для отслеживания уставки, так и для подавления помех - это обновить его до контроллера ISA-PID. Это улучшает ответ отслеживания уставки путем предоставления дополнительных параметров настройки b, который позволяет независимое управление влиянием опорного сигнала на пропорциональное действие.

В вышеописанной структуре ISA-PID существует контроллер обратной связи C и feedforward фильтр F. В этом примере C является регулярным ПИ-контроллером в параллельной форме, которая может быть представлена объектом PID:

C(s)=pid(Kp,Ki)=Kp+Kis

F является предварительным фильтром, который включает усиления Kp и Ki от C плюс уставка веса b:

F(s)=bKps+KiKps+Ki

Поэтому контроллер ISA-PID имеет два входа (r и y) и один выход (u).

Заданный вес b является вещественным числом от 0 до 1. Когда он уменьшается, перерегулирование в отслеживание уставки отклике уменьшается. В этом примере b выбрано равным 0,7.

b = 0.7;
% The following code constructs an ISA-PID from F and C
F = tf([b*C.Kp C.Ki],[C.Kp C.Ki]);
F.InputName = 'r';  
F.OutputName = 'uf';
Sum = sumblk('e','uf','y','+-');
ISAPID = connect(C,F,Sum,{'r','y'},'u');
tf(ISAPID)
ans =
 
  From input "r" to output "u":
  0.4505 s^2 + 0.5153 s + 0.1428
  ------------------------------
          s^2 + 0.471 s
 
  From input "y" to output "u":
  -0.6436 s - 0.3031
  ------------------
          s
 
Continuous-time transfer function.

Сравнение эффективности

Ответ отслеживания уставки с помощью контроллера ISA-PID имеет гораздо меньше перерегулирования, потому что вес уставки b уменьшает перерегулирование.

% Closed-loop system with PI controller for reference tracking 
sys1 = feedback(G*C,1);
% Closed-loop system with ISA-PID controller
sys2 = connect(ISAPID,G,{'r','u'},'y');
% Compare responses
step(sys1,'r-',sys2(1),'b.');
legend('show','location','southeast')
title('Reference Tracking')

Figure contains an axes. The axes with title From: In(1) To: y contains 2 objects of type line. These objects represent sys1, untitled1.

Ответы подавления помех те же самые, потому что вес уставки b влияет только на отслеживание ссылок.

% Closed-loop system with PI controller for disturbance rejection
sys1 = feedback(G,C);
% Compare responses
step(sys1,'r-',sys2(2),'b.');
legend('PID','ISA-PID');
title('Disturbance Rejection')

Figure contains an axes. The axes with title From: u To: y contains 2 objects of type line. These objects represent PID, ISA-PID.