认识鲁棒控制
认识鲁棒控制(转载)
鲁棒控制课程要写大作业了,顺便总结一下,鲁棒控制已经非常成熟了,也就几个概念。
一般步骤是把方框图转化为标准形式,然后把性能指标转换为权函数,权函数最后都能弄到广义控制对象中,然后用H无穷求出控制器。
广义控制系统
所谓鲁棒控制,从应用的角度讲,就是设计一个控制器,满足一些性能指标。而几乎所有的控制问题都可以转化为下图表示
图 1最一般的控制系统
其中:
W:所有外部输入,如参考输入、扰动、传感器噪声等
Z:被控输出
Y:被测量输出(也就是所有传感器的输出)
U:控制器输出,用于控制广义控制对象
广义控制对象P:除了控制器以外的部分,包括实际控制对象,执行机构,传感器,A/D,D/A等
对于图1所示的情形,有
由w到z闭环传函矩阵为
即为G和K的下线性分式变换
系统G的
范数:
对于平方可积的输入信号w和输出z,其能量分别定义为
这样就得到G的范数:
次优控制问题:
使得闭环传函矩阵的
范数小于一个给定的常数
,即
最优控制问题:
就是最小化闭环传函矩阵的
范数:
应用中,都是次优控制问题。
例如:
混合S/KS问题可用下图来说明
从w到z的闭环传递函数可以表示为
转换为下图的标准形式:
灵敏度函数
S就是灵敏度函数了,d(干扰)为0时,r到e的传函,或者,输入r为0时,干扰d到输出y的传函
WS和WKS为调整参数。一种选择方法为:
其中A<1为允许的最大稳态误差,为期望带宽,M为灵敏度峰值(一般情况下A=0.01,M=2)。
一般权函数是为了保证各个性能指标的
广义过程模型P(s)(见图2)可以表示为
得到P的状态方程形式以后,就可以根据论文
提出的状态方程解法进行求解了。
控制器设计
设计问题是寻找一控制器K,使之稳定系统G,并使下列的H∞范数最小:
有很多种得到H∞控制器的方法,例如hinfsyn,hinfric,hinflmi,这些函数将P作为输入,并以系统矩阵(mu-tools)方式表达。
结果分析
当控制器设计好后,需要对结果进行分析,这时可以利用Control System Toolbox提供的函数,例如利用lsim,step(阶跃响应),bode(伯德图),sigma(奇异值),freqresp(频域响应)等函数对传递函数S,KS,T,K,GK进行分析。Mu-tools提供的函数有:trsp(时域响应),frsp(频域响应),vsvd(奇异值),vplot。
matlab仿真:
S/KS问题有些不同。此处用到的模型和权重函数见Skogestad和Postlethwaite,1996
Sks.m
%cretae subsys
G=nd2sys(1,conv([10,1],conv([0.05,1],[0.05,1])),200);
%weights Ws=(s/M+w0)/(s+w0*A),Wks=1
M=1.5;w0=10;A=1.e-4;
Ws=nd2sys([1/M,w0],[1 w0*A]);%sys = nd2sys(num,den,gain)
Wks=1;
%建立广义系统P
%-------------------------------------------------------------------------
%方法0:直接方法
%/z1\ /Ws -Ws*G\ /r\
%|z2| =|0 Wks | | |
%\ v/ \I -G / \u/
z1=sbs(Ws,mmult(-1,Ws,G));
z2=sbs(0,Wks);%out = [mat1 mat2 mat3 ... matN]
v=sbs(1,mmult(-1,G));
P0=abv(z1,z2,v);% Stacks VARYING/SYSTEM/CONSTANT matrices above one another:
[a,b,c,d]=unpck(P0);
[aa,bb,cc,dd]=ssdata(balreal(minreal(ss(a,b,c,d))));
P0=pck(aa,bb,cc,dd);
%控制器设计
P=P0;
nmeas=1;nu=1;gmn=0.5;gmx=20;tol=0.001;
[K,CL,gam]=hinfsyn(P,nmeas,nu,gmn,gmx,tol);% CL - lft(P,K) (closed-loop system)
%利用RCT v3.0.1进行控制器的设计
%通常不需要系统的传递函数表达式,但更需要ss类型
[a,b,c,d]=unpck(G); Gcst=ss(a,b,c,d);
[a,b,c,d]=unpck(Ws); Wscst=ss(a,b,c,d);
[a,b,c,d]=unpck(Wks); Wkscst=ss(a,b,c,d);
[K,CL,gopt]=mixsyn(Gcst,Wscst,Wkscst,[]);
[a,b,c,d]=ssdata(balreal(K)); K=pck(a,b,c,d);
[a,b,c,d]=ssdata(balreal(CL)); CL=pck(a,b,c,d);
analysisResult.m
%分析结果
%-------------------------------------------------------------------------
%注意:此处使用mu-tools函数。也可以使用control toolbox指令,例如用series和
�edback进行子系统连接,sigma或freqresp,svd和bode画奇异值
% 异值,step和lsim分析
%时域响应
%画(Weighted)闭环系统的奇异值
w=logspace(-4,6,50);
CLw=vsvd(frsp(CL,w));%frsp复频率响应vsvd取奇异值
figure(1)
vplot('liv,m',CLw)
title('singular values of weighted closed loop system')
%得到传递函数矩阵
[type,out,in,n]=minfo(G);% Return information about a matrix
I=eye(out);
S=minv(madd(I,mmult(G,K))); %灵敏度函数madd out = mat1 + mat2 + mat3 + ... + matN
%minv Invert a SYSTEM/VARYING/CONSTANT matrix.
T=msub(I,S); %补灵敏度函数
KS=mmult(K,S); %G的输入
GK=mmult(G,K); %回路传递函数
%频域的奇异值
Sw=vsvd(frsp(S,w));
Tw=vsvd(frsp(T,w));
Kw=vsvd(frsp(K,w));
KSw=vsvd(frsp(KS,w));
GKw=vsvd(frsp(GK,w));
%画奇异值
%注意:如果愿意的话,可以将vplot用plot代替,单位是dB。
figure(2)
vplot('liv,lm',Sw,'-',Tw,'--',GKw,'-.');
title('\sigma(S(jw))(solid),\sigma(T(jw))(dashed) and \sigma(GK(jw))(dashdot),')
xlabel('Frequency [rad/sec]');ylabel('Amplitude')
figure(3)
vplot('liv,lm',Kw)
title('\sigma(K(jw))')
xlabel('Frequency [rad/sec]');ylabel('Amplitude')
%是否满足设计要求?
Sd=minv(Ws); Sdw=vsvd(frsp(Sd,w)); %期望的灵敏度
KSd=minv(Wks); KSdw=vsvd(frsp(KSd,w)); %期望的输出
figure(4)
vplot('liv,lm',Sw,'-',Sdw,'--');
title('\sigma(S(jw))(solid) and \sigma(Ws^{-1}(jw))(dashed),')
xlabel('Frequency [rad/sec]');ylabel('Amplitude')
figure(5)
vplot('liv,lm',KSw,'-',KSdw,'--');
title('\sigma(KS(jw))(solid) and \sigma(Wks^{-1}(jw))(dashed),')
xlabel('Frequency [rad/sec]');ylabel('Amplitude')
%最后,阶跃响应
reference=1;tfinal=1;step=0.01;
y=trsp(T,reference,tfinal,step);�lculates the time response of a SYSTEM matrix
u=trsp(KS,reference,tfinal,step);
figure(6)
subplot(2,1,1)
vplot('iv,d',y)
title('Step response');ylabel('y')
subplot(2,1,2)
vplot('iv,d',u)
ylabel('y');xlabel('time')
下面根据论文"Robust two-degree-of-freedom
control of a seeker scan loop system"说明
应用背景就先不说了,这篇论文使用了二自由度控制,前馈控制器主要用来改善跟踪性能,反馈控制器用来抑制噪声干扰。
首先控制对象具有不确定性
使用输入输出分解技巧,将控制对象变成
也就是将复杂的带有不确定性的框图:
变成:
二自由度控制的一般形式有好多,本篇使用的是
C是前馈,H是反馈
再加入各个权函数,以及对应的噪声得到:
其中,最上边的Tm是期望的回路模型,是用来模型匹配的,从图上看出,它的输出和实际系统的输出的差要足够小,那么实际输出就接近期望输出了。
各个权函数指的是不确定性依赖于频率w的程度。然后转换成标准形式
用matlab求解即可。

浙公网安备 33010602011771号