В этом примере показано, как использовать параметры настройки PID в командной строке для уменьшения переполнения при отслеживании ссылок или для улучшения устранения нарушения на входе в установку. Использование pidtune В данном примере показан компромисс между эталонным отслеживанием и характеристиками нарушения-отклонения в системах управления PI и PID.
Рассмотрим систему управления, приведенную на следующем рисунке.

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