Этот пример показывает, как спроектировать контроллер обратной связи для объекта с неопределенными параметрами и динамикой неопределенной модели. Целями проектирования контроллера являются хорошее статическое отслеживание и подавления помех.
Проектируйте контроллер для объекта управления G
описывается в Robust Controller Design. Этот объект является системой первого порядка с неопределенной временной константой. У объект также есть некоторые неопределенные динамические отклонения от поведения первого порядка за пределами около 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.
Из-за номинального поведения объекта управления первого порядка выберите архитектуру управления ПИ. Для желаемой замкнутой системы коэффициента затухания , расчетные уравнения для пропорциональных и интегральных составляющих (на основе номинальной постоянной времени разомкнутого контура 0,2):
Чтобы изучить, как неопределенность в G
влияет на достижимую пропускную способность замкнутого контура, проектирует два контроллера, оба достигают значения, 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
для этой конкретной неопределенной модели.