Синтез робастного регулятора

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

Спроектируйте контроллер для объекта 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.1953

maxgain2
maxgain2 = struct with fields:
           LowerBound: 4.6286
           UpperBound: 4.6378
    CriticalFrequency: 11.6132

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 для этой конкретной неопределенной модели.

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

| |

Похожие темы