Этот пример показывает, как разработать контроллер обратной связи для объекта с неопределенными параметрами и неопределенной образцовой динамикой. Целями проектирования контроллера является хорошее установившееся отслеживание и свойства подавления помех.
Разработайте контроллер для объекта 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.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
для этой конкретной неопределенной модели.