资源描述:
《利用MATLAB设计线性二次型最优控制器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验6利用MATLAB设计线性二次型最优控制器6.1实验设备同实验1。6.2实验目的1、学习线性二次型最优控制理论;2、通过编程、上机调试,掌握线性二次型最优控制器设计方法。6.3实验原理说明考虑控制系统的状态空间模型⎧x&=Ax+Bu⎨(6.1)⎩y=Cx其中:x是维状态向量,nu是m维控制向量,y是r维的输出向量,A、B和C分别是n×n、n×m和r×n维的已知常数矩阵,系统的初始状态是x)0(=x。0系统的性能指标是∞TTJ=∫[xQx+uRud]t(6.2)0其中:Q为对称正定(或半正定)矩阵,R为对称正定矩阵。性能指标右边
2、的第一项表示对状态的要求,这一项越小,则状态衰减到零的速度越快,振荡越小,因此控制性能就xx越好。第二项是对控制能量的限制。若系统的状态是可以直接测量的,且考虑的控制器是状态反馈控制器,则可以证明,使得性能指标(6.2)最小化的最优控制器具有以下的线性状态反馈形式u=−Kx(6.3)−1T式中的K=RBP是m×n维状态反馈增益矩阵,P是以下黎卡提矩阵方程T−1TPA+AP−PBRBP+Q=0(6.4)T的对称正定解矩阵。此时,性能指标的最小值是J=xPx,最优闭环系统00x&=(A−BK)x(6.4)是渐近稳定的,即矩阵A−BK的
3、所有特征值均具有负实部。MATLAB中的函数[K,P,E]=lqr(A,B,Q,R)给出了相应线性二次型最优控制问题的解。函数输出变量中的K是最优反馈增益矩阵,P是黎卡提矩阵方程(6.4)的对称正定解矩阵,E是最优闭环系统的极点。6.4实验步骤1、线性二次型最优控制器设计,采用MATLAB的m-文件编程;2、在MATLAB界面下调试程序,并检查是否运行正确。例6.1考虑由以下状态空间模型描述的系统:⎡010⎤⎡0⎤⎢⎥⎢⎥x&=001x+0u⎢⎥⎢⎥⎢⎣−35−27−9⎥⎦⎢⎣1⎥⎦系统的性能指标定义为J22∞TTJ=∫(xQx+
4、uRud)t0其中:⎡100⎤⎢⎥[]Q=010,R=1⎢⎥⎢⎣001⎥⎦T试设计最优状态反馈控制器,并检验最优闭环系统对初始状态x)0(=1[0]0的响应。通过执行以下的M-文件:A=[010;001;-35–27-9];B=[0;0;1];Q=[100;010;001];R=[1];[K,P,E]=lqr(A,B,Q,R)得到K=0.01430.11070.0676P=4.26252.49570.01432.49572.81500.11070.01430.11070.0676E=-5.0958-1.9859+1.7110i-1
5、.9859-1.7110i因此,系统的最优状态反馈控制器是u=−.0[0143.01107.00676]xT为了得到最优闭环系统对初始状态x)0(=1[0]0的响应,执行以下的M-文件:A=[010;001;-35–27-9];B=[0;0;1];K=[0.01430.11070.0676];sys=ss(A-B*K,eye(3),eye(3),eye(3));t=0:0.01:8;x=initial(sys,[1;0;0],t);x1=[100]*x’;x2=[010]*x’;x3=[001]*x’;23subplot(2,2,
6、1);plot(t,x1);gridxlabel(‘t(sec)’);ylabel(‘x1’)subplot(2,2,2);plot(t,x2);gridxlabel(‘t(sec)’);ylabel(‘x2’)subplot(2,2,3);plot(t,x3);gridxlabel(‘t(sec)’);ylabel(‘x3’)得到10.500.5x1x2-0.50-1-0.5-1.50246802468t(sec)t(sec)210x3-1-2-302468t(sec)图6.1系统对初始条件的响应曲线6.5实验要求在运行以上程序
7、的基础上,对系统x&=x12x&=−x+u21和性能指标∞22J=(x+ru)dt∫10试求使得性能指标J最小化的最优状态反馈控制器。当r变化时,画出闭环极点的轨迹。24