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

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

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

Отслеживание уставки - это реакция на 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' настроить контроллер, который отдает предпочтение тому или иному.

The DesignFocus опция более эффективна для системы управления с более настраиваемыми параметрами. Поэтому он не имеет большого эффекта при использовании с ПИ-контроллером. Чтобы увидеть его эффект, спроектируйте контроллер для той же полосы пропускания и запаса по фазе по умолчанию (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 опции практически не влияют.

Похожие темы