u(t)=-Kx(t) (2-27)
其中P(t)阵满足黎卡蒂(Riccati)方程,即
ATP+PA-PBR-1BTP+Q=0 (2-28)
2.二次型最优控制系统的设计方法 二次型最优控制系统设计的基本步骤如下:
(1) 求解黎卡蒂方程,确定P(t)阵。如果正定阵P(t)存在(若A-BK是稳定矩阵,则总存在正定解P(t)阵),则系统是稳定的。
(2) 将正定阵P(t)代入公式(2-26),得到最优反馈增益阵K。 考虑目标函数中带有交叉乘积项的拓展二次型性能指标:
J???[xT(t)Qx(t)?uT(t)Ru(t)?2xT(t)Nu(t)]dt0 其中N为交叉项的权阵,是正定对称常数阵,则系统最优控制规律为:
u(t)=-Kx(t) 反馈增益阵K为:
K=-R-1(BTP+N) 其中P阵满足黎卡蒂(Riccati)方程:
AT
P+PA-(PB+N)R-1
(BT
P+N)+Q=0 由此解出P阵,即可得到相应的最优控制律。
2.6.2 LQG最优控制
1. 线性二次型Gauss最优控制的一般概念
设LTI系统中含有系统噪声和测量噪声,即系统为:
x??Ax?Bu?Tw
y=Cx+v 其中,w,v均为零平均值的Gauss白噪声,且有:
E(w)=E(v)=0 E(wwT)=Q E(vvT)=R E(wvT)=0
则LQG最优控制问题就是设计控制输入u(t),使二次性能指标函数:
J?E???TT???0[x(t)Qx(t)?u(t)Ru(t)]dt?? 最小。
2. LGQ最优控制系统的设计方法
根据分离原理,LQG问题可以分解为两个子问题求解。基本步骤如下: (1) 利用Kalman滤波理论,从状态x(t)中得到最优估计,即使
P?limE?x???x?x??Tt????x? 最小。
可以证明,这使最优估计器的动态方程为:
41
(2-29)
(2-30)
(2-31)
(2-32)
(2-33)
(2-34) (2-35)
??Ax??Bu?K1(y?Cx?) x其中,滤波器增益K1为:
K1=PCTV -1
P满足黎卡蒂(Riccati)方程,即
AP+PA-PCRCP+TWT=0 (2-36)
?代替x,设计满足二次性能指标的LQ控制律。即: (2)利用估计状态xT
T
-1
T
u*(t)-K*x*(t) K*=-R-1BTP
其中,P满足下述代数黎卡蒂(Riccati)方程:
ATP+PA-(PB+N)R-1(BTP+N)+Q=0
【例2-15】 已知系统的系数阵为:
?0?A=0????1410?110??0????1, B=0,C=?1?????6???1??00?
其性能指标为:
J??0?[x(t)Qx(t)?u(t)Ru(t)?2x(t)Nu(t)]dtTTT
选取
?200?Q=0???00100??0????0,R=1,N=0 ????1???1??试设计二次型最优控制器。若系统控制信号取作u=k1r-Kx形式,在确定最优控制律时,假设输入信号r =0,确定K、P、E。
解:本系统的性能指标要求有交叉项,因此在使用lqr函数时应保留交叉权阵N。程序如下:
A=[0 1 0;0 0 1;-14 -11 -6]; B=[0;0;1]; C=[1 0 0]; D=0;
sys=ss(A,B,C,D); Q=[200 0 0;0 1 0;0 0 1]; R=1;
N=[0;0;1];
[K,P,E]=lqr(A,B,Q,R,N);
AC=A-B*K;BC=B*K(1);CC=C;DC=0; sysc=ss(AC,BC,CC,DC); [y,t,x]=step(sysc,8); figure(1) plot(t,x) grid figure(2);
42
plot(t,y)
运行结果为:
K =
5.8997 P =
145.6839 52.3970 E =
-5.4696 -1.0441 -1.0441
+ 1.5963i - 1.5963i 52.3970 30.9174
5.8997 4.0597 0.5577
4.0597
1.5577
grid
5.8997 4.0597
系统状态的阶跃响应如图2-15所示,系统输出的阶跃响应如图2-16所示。
0.60.50.40.30.20.10-0.1-0.2-0.3012345678 图2-15 系统状态的阶跃响应 0.350.30.250.20.150.10.050012345678 图2-16 系统输出的阶跃响应 【例2-16】 已知系统数学模型:
43
??1A???16?6.25??2?,B????,C??00??0??3? 3.125?,D?0,G???,H?0.1,0??Qn = 1,Rn = 0.01,Q = 10,R = 1,试设计LQG控制系统。
解:应用kalman函数与lqgreg函数,编制相应MATLAB程序如下:
A=[-1 -6.25;16 0]; B=[2;0];C=[0 3.125];D=[0]; sys=ss(A,B,C,D); clsys0=feedback(sys,1); t=0:0.01:0.8; u1=25+t*0; N=length(t); u2=idinput(N,'rgs'); G=[3;0]; H=0.1; BG=[B G]; DH=[D H];
LQGsys=ss(A,BG,C,DH); [kest,L,P]=kalman(LQGsys,1,0.01); K=lqry(sys,10,1) LQGF=lqgreg(kest,K) feedin=[1];feedout=[1];
ressys=feedback(LQGsys,LQGF,feedin,feedout,1); clsys=feedback(sys,LQGF,1); u=[u1;u2']; figure
y1 =lsim(ressys,u,t); plot(y1) grid figure step(clsys0,10) grid figure plot(u2) grid figure
y2 =lsim(clsys,u1,t); plot(y2) grid
运行结果为:
K =
10.2741 7.2395 a =
44
x1_e x2_e x1_e -21.55 -83.9 x2_e 16 -22.84 b =
y1 x1_e 20.21 x2_e 7.308 c =
x1_e x2_e u1 -10.27 -7.239 d = y1 u1 0
I/O groups: Group name I/O Channel(s) Measurement I 1 Controls O 1 Continuous-time model.
如图2-17所示给出了无LQG控制器的闭环系统的阶跃响应;如图2-18所示给出了具有LQG控制器的闭环系统的阶跃响应;当考虑系统存在白噪声干扰信号时,如图2-19所示即为系统所加入的白噪声干扰信号;如图2-20所示给出了具有噪声干扰的系统阶跃响应。
Step Response10.90.80.70.61.41.21Amplitude System: Closed Loop: r to y I/O: r to y Peak amplitude: 1.11 Overshoot (%): 11.3 At time (sec): 0.833 0.50.4Amplitude Amplitude0.30.20.80.60.40.20.10012345Time (sec)678910 图2-17 无LQG控制器的闭环系统阶跃响应
01400.511.522.533.5Time (sec)1210864200102030405060708090 45
图2-18 LQG闭环系统阶跃响应
2.521.510.50-0.5-1-1.5-2-2.50102030405060708090 图2-19 系统白噪声干扰信号 1614121086420-20102030405060708090 图2-20 具有白噪声干扰的系统阶跃响应
46