В этом примере показано, как сконструировать контроллер обратной связи для установки с неопределенными параметрами и неопределенной динамикой модели. Целью конструкции контроллера являются хорошие свойства стационарного слежения и отклонения возмущений.
Проектирование контроллера для установки 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. Для желаемого коэффициента затухания по замкнутому контуру, а также собственной частоты, расчетные уравнения для пропорционального и интегрального коэффициентов усиления (на основе номинальной постоянной времени по разомкнутому контуру, равной 0,2) составляют:
Чтобы изучить, как неопределенность в G влияет на достижимую полосу пропускания с замкнутым контуром, проектируют два контроллера, оба достигая, по-видимому, «», 0,707 «», но с различными значениями (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.8832
UpperBound: 1.8866
CriticalFrequency: 3.2410
maxgain2
maxgain2 = struct with fields:
LowerBound: 4.6286
UpperBound: 4.6381
CriticalFrequency: 11.6174
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 для этой конкретной неопределенной модели.