对于线性系统,若取状态变量和控制变量的二次型函数的积分作为性能指标,这种动态最优化问题称为线性系统二次型能指标的最优控制问题,简称线性二次型问题,其计算和工程实现比较容易。
借助Matlab控制系统工具箱中提供的线性二次设计工具,可以很方便地完成线性二次型最优控制器的设计。
2线性二次型最优控制器设计
给定一个线性系统,其平衡状态X(0)=0,设计的目的是保持系统处于平衡状态,即这个系统应能从任何初始状态返回平衡状态。这种系统称为线性调节器。
f2线性调节器的性能指标为: Jxi(t)dtt0i1
tfn2Jqixi(t)dt加权后的性能指标为: t0i1 tf1TT对u(t)有约束的性能指标为:J t[X(t)QX(t)u(t)Ru(t)]dt02
式中Q和R都是正定加权矩阵。
一般形式,有限时间线性调节器性能指标:
tf11T JX(tf)PX(tf)[XT(t)QX(t)uT(t)Ru(t)]dtt022
无限时间线性调节器性能指标:
1 J[XT(t)QX(t)uT(t)Ru(t)]dtt02
P≥0,Q≥0,R>0,均为对称加权矩阵。
tn由于题目已给定系统状态工程模型(A,B,C,D),如果希望这样一个系统能够满足某种最优的要求,本设计引入最简单的可以线性二次型最优控制指标,即
tf11JXT(tf)PX(tf)[XT(t)QX(t)uT(t)Ru(t)]dtt022R(t)分别是对状态变量和控制量的加权矩阵。一般情况下,假 其中Q(t)和
定这两个矩阵为定常矩阵(即不随时间变化),并简记Q(t)=Q和R(t)=R。线性二次型最优控制就是求出J最小的控制量u(t),从而获得性能最优,为达到这一目的,首先构造Hamiton函数:
然后通过求导的方式可以求出最优控制信号u(t)为:
ˆx(t)u(t)RBK*1T
设计线性二次型最优控制器关键是选择加权矩阵Q。在下文将讨论二次型性能指标中P、Q、R 矩阵对状态的动态特性以及最优控制U的影响。
2.1 终端时刻选取
最优控制规律是一个状态线性反馈规律,它能方便地实现闭环最优控制;由于K(t)是非线性微分方程的解,通常情况下难以求得解析解,需要由计算机求出其数值解,又因为其边界条件在终端处,所以需要逆时间方向求解,因此应在过程开始之前就将K(t)解出,存入计算机以供过程使用;当控制时间[t0,tf]为有限时间时,状态调节器最优解的存在不要求系统能控,这是因为所采用的性能指标是为了保持系统的状态x(t)接近零状态。当控制时间[t0,tf]为有限时间时,即使系统不能控,不能控状态对性能指标的影响也是有限的,在[t0,tf]区间中性能指标不至于
tf,则只有当系统能控时,状态调节器变为无穷,故最优控制存在。如果 才存在最优解。
由于上述可知线性二次型线性连续系统状态最优控制器分为:有限时间状态调节器与无限时间状态调节器系统。
无限时间状态调节器系统与有限时间状态调节器相比,有以下几点不同: 1)系统是时不变的,性能指标中的权矩阵为常值矩阵。
2)终端时刻t ,当[t0,tf ]为有限时间时,最优控制系统是时变的; f3)要求受控系统完全能控,以保证最优控制系统的稳定性 ;如果系统不可控 性能指标就有可能趋于无穷大,无法比较控制的优劣,也就无法确定最优控制。
Q0,QQT矩阵对(A,B)完全能控时,存在唯一的最优控制:结果如下:当
ˆx(t)u*(t)R1BTK那么根据题目:
在Matlab中键入:
a=[-5.3880 2.0074 0;19.24 -26.51 6.35;0 6.429 -3.9810]; b=[-0.3904 0.774;5.11 4.665;-3.166 38.3280]; n=rank(ctrb(a,b)); n=3。可知系统是可控的,选取终端时刻 tf。
2.2 二次型性能指标对动态特性及最优控制U 的影响
为讨论二次型性能指标中P、Q、R 矩阵对状态的动态特性以及最优控制U 的影响。根据系统[A,B]能控,u(t)不受约束,二次型性能指标为:
Q0,QQ,R0,RRT确定最优控制u*(t),使J为其中Q,R为常数矩阵
最小。
那么选取:Q=[1 0 0;0 2 0;0 0 3];R=[1 0;0 1];在Matlab中键入:
a=[-5.3880 2.0074 0;19.24 -26.51 6.35;0 6.429 -3.9810]; b=[-0.3904 0.774;5.11 4.665;-3.166 38.3280]; c=[3.575 0 0;0 0 -3.900] d=zeros(2); step(sys,1,t); v=[1 2 3]; Q=diag(v); R=eye(2); step(sys,1,t);
T同时利用Mabtlab提供的一条直接求解LQ最优状态反馈矩阵函数lqr(),其基本调用格式为:[K,S,E]=lqr(A,B,Q,R);其中A,B,Q,R如上文所述,K是求得的最优状态反馈矩阵,S是相应的代数Riccati方程求解,E是闭环系统特征值。
系统的阶跃相应:
v=[1 2 3];Q=diag(v);R=eye(2); [ K P E]=lqr(a,b,Q,R); t= 0:0.05:0.5;
sys=ss(a-b*K,b,c,d); [y,T,xt]=step(sys);
LQ校正后系统的阶跃响应
Q=[1 0 0;0 1 0; 0 0 1]; R=[1 0; 0 0.1] K 1= 0.1010 0.1776 -0.1224
0.1826 0.2867 1.6351 Q=[1 0 0;0 1 0; 0 0 1]; R=[1 0; 0 5] K2 =0.0237 0.0727 -0.1080
0.1280 0.0978 0.3809 Q=[1 0 0;0 1 0; 0 0 1]; R=[1 0; 0 10] K3 = 0.0514 0.0933 -0.0292
0.4852 0.6545 3.0356
控制量U1
控制量U2
最优控制信号变化曲线
最优控制信号变化曲线:为控制量U1, 当选取的Q发生变化后,R不变时:
LQ校正后系统的阶跃响应
控制量U1
控制量U2
最优控制信号变化曲线
3结论:
比较曲线状态反馈的输出曲线可知,当增大R,系统达到稳态的时间会延长。增大R,输出偏离跟踪路线也越多。Q选择越大,系统所需到达稳定所需时间越短, 由此可知分别改变R,Q矩阵的大小,发现增大R或者减小Q系统的超调量会增
大,稳态误差会增大;增大Q或者减小R系统的响应时间会延长,超调量会减小。实验结果表明了上述规律的有效性,同时也显示出LQR控制的鲁棒性和动态特性。
参考文献
[1] 魏巍.MATLAB控制工程工具箱技术手册 [M].国防工业出版社,2004:42. [2] 庞中华 崔红. 系统辨识与自适应控制MATLAB仿真[M]. 北京航空航天出版社
因篇幅问题不能全部显示,请点此查看更多更全内容