Этот пример показывает, как использовать настраивающие опции ПИДа командной строки, чтобы уменьшать перерегулирование в отслеживании уставки или улучшить отклонение воздействия во входе объекта. Используя команду pidtune
, пример иллюстрирует компромисс между отслеживанием уставки и производительностью подавления помех в системах управления ПИДа и PI.
Рассмотрите систему управления следующим рисунком.
Отслеживание заданного значения является ответом в y к сигналам в r. Входное подавление помех является подавлением в y сигналов в d.
Создайте модель объекта, которым для этого примера дают:
G = tf(0.3,[1 0.1 0]);
Разработайте контроллер PI для этого объекта, с помощью пропускной способности 0,03 рад/с.
wc = 0.03;
[C1,info] = pidtune(G,'PI',wc);
Исследуйте неродное отслеживание уставки и неродное подавление помех системы управления с помощью контроллера по умолчанию. Ответ воздействия от d до y эквивалентен ответу замкнутого цикла, данного feedback(G,C1)
.
T1 = feedback(G*C1,1); GS1 = feedback(G,C1); subplot(2,1,1); stepplot(T1) title('Reference Tracking') subplot(2,1,2); stepplot(GS1) title('Disturbance Rejection')
По умолчанию, для данной пропускной способности, pidtune
настраивает контроллер, чтобы достигнуть баланса между отслеживанием уставки и подавлением помех. В этом случае контроллер приводит к некоторому перерегулированию в ответе отслеживания уставки. Контроллер также подавляет входное воздействие с несколько более длинным временем установления, чем отслеживание уставки после начального пика.
В зависимости от вашего приложения вы можете хотеть изменить баланс между отслеживанием уставки и подавлением помех, чтобы способствовать один или другой. Для контроллера PI можно изменить этот баланс путем изменения поля фазы настроенной системы. Контроллер по умолчанию, возвращенный pidtune
, приводит к полю фазы 60 °.
info.PhaseMargin
ans = 60.0000
Разработайте контроллеры для полей фазы 45 ° и 70 ° с той же пропускной способностью, и сравните отслеживание полученной ссылки и подавление помех.
opts2 = pidtuneOptions('PhaseMargin',45); C2 = pidtune(G,'PI',wc,opts2); T2 = feedback(G*C2,1); GS2 = feedback(G,C2); opts3 = pidtuneOptions('PhaseMargin',70); C3 = pidtune(G,'PI',wc,opts3); T3 = feedback(G*C3,1); GS3 = feedback(G,C3); subplot(2,1,1); stepplot(T1,T2,T3) legend('PM = 60','PM = 45','PM = 70') title('Reference Tracking') subplot(2,1,2); stepplot(GS1,GS2,GS3) title('Disturbance Rejection')
Понижение поля фазы к 45 ° ускоряет подавление помех, но также и увеличивает перерегулирование в ответе отслеживания уставки. Увеличение поля фазы к 70 ° устраняет перерегулирование полностью, но приводит к чрезвычайно вялому подавлению помех. Можно попробовать различные значения поля фазы, пока вы не находите тот, который балансирует отслеживание уставки и подавление помех соответственно для вашего приложения. Эффект поля фазы на этом балансе зависит от модели объекта управления. Для некоторых моделей объекта управления эффект не является столь же большим как показано в этом примере.
Если вы хотите зафиксировать и пропускную способность и поле фазы вашей системы управления, можно все еще изменить баланс между отслеживанием уставки и подавлением помех с помощью опции DesignFocus
pidtune
. Можно установить DesignFocus
или на 'disturbance-rejection'
или на 'reference-tracking'
настраивать контроллер, который одобряет один или другой.
Опция DesignFocus
является более эффективной для системы управления с большим количеством настраиваемых параметров. Поэтому это не имеет большого эффекта, когда используется с контроллером PI. Чтобы видеть его эффект, разработайте контроллер PIDF для той же пропускной способности и поля фазы по умолчанию (60 °) с помощью каждого из значений DesignFocus
. Сравнение результатов.
opts4 = pidtuneOptions('DesignFocus','balanced'); % default focus C4 = pidtune(G,'PIDF',wc,opts4); T4 = feedback(G*C4,1); GS4 = feedback(G,C4); opts5 = pidtuneOptions('DesignFocus','disturbance-rejection'); C5 = pidtune(G,'PIDF',wc,opts5); T5 = feedback(G*C5,1); GS5 = feedback(G,C5); opts6 = pidtuneOptions('DesignFocus','reference-tracking'); C6 = pidtune(G,'PIDF',wc,opts6); T6 = feedback(G*C6,1); GS6 = feedback(G,C6); subplot(2,1,1); stepplot(T4,T5,T6) legend('Balanced','Rejection','Tracking') title('Reference Tracking') subplot(2,1,2); stepplot(GS4,GS5,GS6) title('Disturbance Rejection')
Когда вы используете опцию DesignFocus
, чтобы способствовать отслеживанию уставки или подавлению помех в настроенной системе управления, можно все еще настроить поле фазы для дальнейшей точной настройки баланса между этими двумя мерами производительности. Используйте DesignFocus
и PhaseMargin
вместе, чтобы достигнуть баланса производительности, который лучше всего соответствует вашим конструктивным требованиям.
Эффект обеих опций на производительности системы зависит строго от свойств вашего объекта. Для некоторых объектов, изменяя PhaseMargin
или опции DesignFocus
имеет минимальный эффект.