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

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

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

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

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

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

pidtool(G,'pi')

PID Tuner автоматически разрабатывает начальный контроллер PI. Нажмите кнопку "Show parameters", чтобы отобразить усиления контроллера и показатели производительности.

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

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

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

Поскольку затухание низкочастотного воздействия обратно пропорционально интегральному усилению, Ки, максимизируя интегральное усиление является полезной эвристикой, чтобы получить контроллер PI с хорошим подавлением помех. Для фона смотрите Карла Астрома и др., "Усовершенствованное Управление ПИДом", Глава 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, чтобы экспортировать разработанный контроллер PI в рабочее пространство MATLAB. Контроллер представлен объектом PID, и вам нужен он, чтобы создать ISA-PID в следующем разделе.

Можно также вручную создать тот же контроллер PI в рабочем пространстве 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

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

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

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

Поэтому 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')