В этом примере показано, как спроектировать контроллер обратной связи для объекта неопределенными параметрами и неопределенной динамикой модели. Целями проектирования контроллера является хорошее установившееся отслеживание и свойства подавления помех.
Спроектируйте контроллер для объекта 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.8831
UpperBound: 1.8862
CriticalFrequency: 3.1952
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
для этой конкретной неопределенной модели.