<>Matlab鲁棒控制工具箱(Robust Control Toolbox)
鲁棒控制工具箱提供了一系列的函数和工具以支持带有不确定元素的多输入多输出控制系统的设计。在该工具箱的帮助下,你可以建立带有不确定参数和动态特性的LTI模型,也可以分析MIMO系统的稳定性裕度和最坏情况下的性能。
该工具箱提供了一系列的控制器分析和综合函数,能够分析最坏情况下的性能及确定最坏情况下的参数值。利用模型降阶函数能够对复杂模型进行简化。同时提供了先进的鲁棒控制方法,如H
2 、H∞、LMI、μ分析等。
<>参数摄动系统稳定性
考虑图1所示反馈控制系统。
图1.反馈控制系统 其中
G ( s ) = s 2 + 3 s + 1 + r 2 s 3 + ( q 1 + q 2 ) s 2 + ( q 1 + q 2 ) s + 6 q
1 + 6 q 2 + 2 q 1 q 2 G(s)=\frac{s^2+3 s+1+r^2}{s^3+\left(q_1+q_2\right)
s^2+\left(q_1+q_2\right) s+6 q_1+6 q_2+2 q_1 q_2}G(s)=s3+(q1+q2)s2+(q1+q2)s+
6q1+6q2+2q1q2s2+3s+1+r2
r=0.1
考虑参数摄动q1 = [0.3,2.5],q2 = [0,1.7],来观察系统鲁棒稳定性。下面我们基于Matlab Robust Control
Toolbox来实现这一目的。
* 搭建不确定性系统
这里使用ureal来创建不确定实数参数,具体用法可以参考Matlab提供的help文档。与之类似的函数还有:
* ucomplex:创建不确定复数参量;
* ucomplexm:创建不确定复数矩阵 ;
* udyn :创建未定义结构的不确定动态系统对象;
* ultidyn:创建线性时不变不确定性对象;
具体代码如下:
r = 0.1; q1 = ureal('q1',1.4,'range',[0.3,2.5]); q2 =
ureal('q2',0.85,'range',[0,1.7]); num = [1 3 1+r^2]; den = [1 q1+q2 q1+q2
6*q1+6*q2+2*q1*q2]; %搭建开环传递函数 G = tf(num,den); %搭建闭环传递函数 H = feedback(G,1);
这里就已经实现了图1所示的整个反馈控制系统的搭建。接下来进一步对整个系统的鲁棒稳定性进行分析。这里使用函数 robstab,具体代码如下:
[stabmarg,wcu] = robstab(H);
输出的StabilityMargin结果如下:
stabmarg.LowerBound = 0.2722
stabmarg.UpperBound = 1.2389
stabmarg.CriticalFrequency = 0
由于LowerBound<1意味着该闭环系统在给出的q1和q2某些值处是稳定的,但是不是对q1和q2的所有可能值都稳定。
考虑参数摄动q1 = [0.3,2.5],q2 =
[0,1.7],由于参数变动对闭环系统性能的影响是怎样的?下面的代码计算最坏情况下T的峰值增益,以及峰值增益时的频率和参数值:
[PeakGain,Uwc] = wcgain(H); Twc=usubs(H,Uwc); % Worst case closed-loop system
H Trand=usample(H,4); % 4 random samples of uncertain system H
bodemag(Twc,'r',Trand,'b-.',{.5,50}); % Do bode plot legend('T_{wc} -
worst-case','T_{rand} - random samples');
得到图2所示曲线:
图2.Uncertain System Closed-Loop Bode Plots
为了进一步说明上述分析正确性,使用 Routh(劳斯)判据,分析闭环系统稳定。
画出图像来判断上述不等式是否成立,根据图3,可以看出存在q1和q2某些值处上述不等式不成立。进一步说明上述结论。
图3.不等式结果