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