В этом примере показано, как использовать настраивающие опции ПИДа командной строки, чтобы уменьшать перерегулирование в отслеживании уставки или улучшить отклонение воздействия во входе объекта. Используя pidtune
команда, пример иллюстрирует компромисс между отслеживанием уставки и производительностью подавления помех в системах управления ПИДа и PI.
Рассмотрите систему управления, представленную на следующем рисунке.
Отслеживание заданного значения является ответом в y к сигналам в r. Входное подавление помех является подавлением в y сигналов в d.
Создайте модель объекта, которым для этого примера дают:
G = tf(0.3,[1 0.1 0]);
Спроектируйте ПИ-контроллер для этого объекта, с помощью пропускной способности 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
настраивает контроллер, чтобы достигнуть баланса между отслеживанием уставки и подавлением помех. В этом случае контроллер дает к некоторому перерегулированию в ответе отслеживания уставки. Контроллер также подавляет входное воздействие с несколько более длинным временем урегулирования, чем отслеживание уставки после начального пика.
В зависимости от вашего приложения вы можете хотеть изменить баланс между отслеживанием уставки и подавлением помех, чтобы способствовать один или другой. Для ПИ-контроллера можно изменить этот баланс путем изменения запаса по фазе настроенной системы. Контроллер по умолчанию возвращен 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
опция является более эффективной для системы управления с большим количеством настраиваемых параметров. Поэтому это не оказывает много влияния, когда используется с ПИ-контроллером. Чтобы видеть его эффект, спроектируйте контроллер 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
опции оказывают минимальное влияние.