Устойчивое проектирование контроллера

Этот пример показывает, как разработать контроллер обратной связи для объекта с неопределенными параметрами и неопределенной образцовой динамикой. Целями проектирования контроллера является хорошее установившееся отслеживание и свойства подавления помех.

Разработайте контроллер для объекта G, описанный в Устойчивом Проектировании контроллера. Этот объект является системой первого порядка с неопределенной временной константой. Объект также имеет некоторые неопределенные динамические отклонения от поведения первого порядка вне приблизительно 9 рад/с.

bw = ureal('bw',5,'Percentage',10);
Gnom = tf(1,[1/bw 1]);

W = makeweight(.05,9,10);
Delta = ultidyn('Delta',[1 1]);
G = Gnom*(1+W*Delta)
G =

  Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states.
  The model uncertainty consists of the following blocks:
    Delta: Uncertain 1x1 LTI, peak gain = 1, 1 occurrences
    bw: Uncertain real, nominal = 5, variability = [-10,10]%, 1 occurrences

Type "G.NominalValue" to see the nominal value, "get(G)" to see all properties, and "G.Uncertainty" to interact with the uncertain elements.

Разработайте контроллер

Из-за номинального поведения первого порядка объекта выберите архитектуру управления PI. Для желаемого отношения затухания с обратной связью ξ и собственная частота ωn, уравнения проекта для пропорциональных и интегральных усилений (на основе номинальной временной константы разомкнутого цикла 0,2):

Kp=2ξωn5-1,Ki=ωn25.

Чтобы учиться, как неуверенность в G влияет на достижимую пропускную способность с обратной связью, разработайте два контроллера, оба достижения ξ = 0.707, но с различным ωn значения, 3 и 7.5.

xi = 0.707;
wn1 = 3;
wn2 = 7.5; 

Kp1 = 2*xi*wn1/5 - 1;
Ki1 = (wn1^2)/5;
C1 = tf([Kp1,Ki1],[1 0]);

Kp2 = 2*xi*wn2/5 - 1;
Ki2 = (wn2^2)/5;
C2 = tf([Kp2,Ki2],[1 0]);

Исследуйте производительность контроллера

Номинальная пропускная способность с обратной связью, достигнутая C2, находится в области, где G имеет значительную неуверенность модели. Поэтому ожидается, что образцовые изменения вызывают значительные ухудшения в производительности с обратной связью с тем контроллером. Чтобы исследовать производительность, сформируйте системы с обратной связью и постройте переходные процессы выборок получившихся систем.

T1 = feedback(G*C1,1);
T2 = feedback(G*C2,1);
tfinal = 3;
step(T1,'b',T2,'r',tfinal)

Переходные процессы для T2 показывают более быстрое время нарастания, потому что C2 устанавливает более высокую пропускную способность с обратной связью. Однако как ожидалось образцовые изменения оказывают большее влияние.

Можно использовать robstab, чтобы проверять робастность устойчивости систем с обратной связью к образцовым изменениям.

opt = robOptions('Display','on');
stabmarg1 = robstab(T1,opt);
Computing peak...  Percent completed: 100/100
System is robustly stable for the modeled uncertainty.
 -- It can tolerate up to 401% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 401% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 3.74 rad/seconds.
stabmarg2 = robstab(T2,opt);
Computing peak...  Percent completed: 100/100
System is robustly stable for the modeled uncertainty.
 -- It can tolerate up to 125% of the modeled uncertainty.
 -- There is a destabilizing perturbation amounting to 125% of the modeled uncertainty.
 -- This perturbation causes an instability at the frequency 11.4 rad/seconds.

Отображение дает сумму неуверенности, которую система может терпеть, не идя нестабильный. В обоих случаях системы с обратной связью могут терпеть больше чем 100% смоделированной области значений неуверенности при оставлении стабильными. stabmarg содержит нижние и верхние границы на запасе устойчивости. Запас устойчивости, больше, чем 1 среднее значение система, стабилен для всех значений смоделированной неуверенности. Запас устойчивости меньше чем 1 среднее значение там является допустимыми значениями неопределенных элементов, которые делают систему нестабильной.

Сравните поведение номинала и Худшего Случая

В то время как обе системы стабильны для всех изменений, их производительность затронута до различных степеней. Чтобы определить, как неуверенность влияет на производительность с обратной связью, можно использовать wcgain, чтобы вычислить эффект худшего случая неуверенности на пиковом значении функции чувствительности с обратной связью, S = 1/(1+GC). Это пиковое усиление этой функции обычно коррелируется с суммой перерегулирования в переходном процессе; достигните максимума усиление, больше, чем каждый указывает на перерегулирование.

Сформируйте функции чувствительности с обратной связью и вызовите wcgain.

S1 = feedback(1,G*C1);
S2 = feedback(1,G*C2);
[maxgain1,wcu1] = wcgain(S1);
[maxgain2,wcu2] = wcgain(S2);

maxgain дает нижние и верхние границы на усилении пика худшего случая передаточной функции чувствительности, а также определенную частоту, где максимальное усиление происходит. Исследуйте границы на усилении худшего случая для обеих систем.

maxgain1
maxgain1 = struct with fields:
           LowerBound: 1.8831
           UpperBound: 1.8862
    CriticalFrequency: 3.1936

maxgain2
maxgain2 = struct with fields:
           LowerBound: 4.6285
           UpperBound: 4.6379
    CriticalFrequency: 11.6057

wcu содержит особые значения неопределенных элементов, которые достигают этого поведения худшего случая. Используйте usubs, чтобы заменить этими значениями худшего случая неопределенные элементы и сравнить поведение худшего случая и номинал.

wcS1 = usubs(S1,wcu1);
wcS2 = usubs(S2,wcu2);
bodemag(S1.NominalValue,'b',wcS1,'b');
hold on
bodemag(S2.NominalValue,'r',wcS2,'r');

В то время как C2 достигает лучшей номинальной чувствительности, чем C1, номинальная пропускная способность с обратной связью расширяет слишком далеко в частотный диапазон, где неуверенность процесса является очень большой. Следовательно производительность худшего случая C2 является нижней к C1 для этой конкретной неопределенной модели.

Смотрите также

| |

Похожие темы