Разработка ПИДа для подавления помех с 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 автоматически проектирует начальный ПИ-контроллер. Нажмите кнопку "Show parameters", чтобы отобразить усиления контроллера и показатели производительности.

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

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

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

Поскольку затухание низкочастотного воздействия обратно пропорционально интегральной составляющей, Ки, максимизируя интегральную составляющую является полезной эвристикой, чтобы получить ПИ-контроллер с хорошим подавлением помех. Для фона смотрите Карла Астрома и др., "Усовершенствованное Управление ПИДом", Глава 4 "Controller Design", 2006, Общество ISA.

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

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

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

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

Можно также вручную создать тот же ПИ-контроллер в рабочем пространстве MATLAB при помощи изодромной с предварением команды. В этой команде можно непосредственно задать усиления Кп и Ки, полученные из таблицы параметров 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 существует диспетчер обратной связи К, и feedforward фильтруют F. В этом примере C является регулярным ПИ-контроллером в параллельной форме, которая может быть представлена объектом PID:

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

F является предварительным фильтром, который включает усиления Кп и Ки от 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')

Ответы подавления помех являются тем же самым, потому что вес заданного значения 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')