Настройте ПИД-регулятор, чтобы способствовать отслеживанию уставки или подавлению помех (командная строка)

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

Рассмотрите систему управления, представленную на следующем рисунке.

Отслеживание заданного значения является ответом в y к сигналам в r. Входное подавление помех является подавлением в y сигналов в d.

Создайте модель объекта, которым для этого примера дают:

$$G = \frac{{0.3}}{{{s^2} + 0.1s}}.$$

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 опции оказывают минимальное влияние.

Похожие темы