内容发布更新时间 : 2024/12/23 18:21:59星期一 下面是文章的全部内容请认真阅读。
线性二次型最优控制器的MATLAB 实现
1. 背景
以线性二次型性能指标为基础的最优控制问题是20 世50 年代末期发展起来的一种设计控制系统的方法,这种方法具计算简单,便于调整等优点,因线性二次型问题解出的控制规律可以通过状态反馈实现闭环最优控制,而成为当今控制工程领域里较为重要的设计方法之一。
最优控制问题就是寻找一个控制系统的最优控制方案或最优控制规律,使系统能最优地达到预期的目标。以状态空间理论为基础的最优控制算法是当前控制中采用最为普遍的控制器设计方法。随着航海﹑航天﹑导航和控制技术不断深入研究,系统的最优化问题已成为一个重要的问题。
本实验介绍了线性二次型最优控制的基本原理,并给定了一个具体的控制系统,利用MATLAB软件对其最优控制矩阵进行了求解,通过仿真实验,设计所得到的线性二次型最优控制效果比较好,达到了设计的目的。
2.最优控制理论
假设线性时不变系统的状态方程模型为 x‘(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)
引入一个最优控制的性能指标,即设计一个输入量u,使得 J=
为最小。其中Q和R分别为对状态变量和输入变量的加权矩阵; tf为控制作用的终止时间。矩阵S对控制系统的终值也给出某种约束,这样的控制问题称为线性二次型(Linear Quadratic,简称LQ)最优控制问题。 为了求解LQ问题,我们取Hamilton函数 H(t,x(t),u(t),?(t)) TTT?0.5(x(t)Q(t)x(t)?u(t)R(t)u(t))??(t)(A(t)x(t)?B(t)u(t));
?H?(t)????(Q(t)x(t)?A(t)?(t)); ?H???0(Q(t)x(t)?A(t)?(t)));?u
其中一种较为简便的解法为: 令?(t)=P(t)x(t)
并应用变分原理推导出LQ问题解满足的必要条件:x'(t)?A(t)x(t)?B(t)u(t);而将对?(t)的求解转化到对函数矩阵P(t)的求解,特别的,将?(t)=P(t)x(t)代入上述式子中可得函数矩阵P(t)因满足的微分方程是
P'(t)??Pt(A)t(?)ATtP(t)?(P)tBt(R)(tB)Tt(P)t?(Q)t()P(tf)?S.?1
(); (1)
对它的求解可应用成熟的Euler方法。假定方程(1)的唯一对称半正定解P(t),则LQ问题的解u(t)由下式给出: u^(t)??R?1(t)BT(t)P(t)x(t). 上述LQ问题的一个特例是动态方程为定常的情形,即
相应的控制向量取为u(t)=-Kx(t).?其中,K为才是矩阵,而二次性能指标为J=?(xT(t)Qx(t)?uT(t)Ru(t))dt.0这里Q和R是给定的实对称正定(或半正定)矩阵`,它们规定了误差和控制信号能量消耗的模式,在这特别的情形,我们可求出K=R-1BTP这里P满足方程:ATP?PA?PBR?1BTP?Q?0;的唯一对称半正定矩阵解3.最优控制的设计
本设计通过具体的实例介绍MATLAB环境下设计一个线性二次型最优控制的过程和方法。由于代数李卡蒂方程求解过程中仅涉及矩阵运算,所以很适合用MATLAB软件处理,在MATLAB的控制系统分析与设计工具箱中提供了求解代数李卡蒂方程的函数lpr(),其具体调用方式如下:
[K,P,E]=lpr(A,B,Q,R)
其中矩阵A、B、Q、R的意义如前所述,返回的K矩阵为状态反馈矩阵,P为李卡蒂方程的解,E为闭环的极点。 构造的的系统方程如下:
?010??0?????001=X+x???1?U ?0?2?3??1?????.Y=(1 0 0)X
性能指标为J=?[XTQX+uTRu]dt,其中Q,R为
0??a1?Q=?0?0?0a200??0? R=[0.01] a3??要设计状态反馈控制器,使J最小
Q矩阵参数选择如下:
a1=100 a2=a3=1
在MATLAB环境中,执行下面的M文件 A=[0 1 0;0 0 1;0 -2 -3]; B=[0;0;1]; C=[1 0 0]; D=[0];
Q=[100 0 0;0 1 0;0 0 1]; R=[0.01];
[k,p,e]=lqr(A,B,Q,R); disp('卡尔曼增益'); k
%阶跃响应 k1=k(1); Ac=A-B*k; Bc=B*k1; Cc=C; Dc=D; figure(1)
step(Ac,Bc,Cc,Dc)
title(‘最优控制后的阶跃响应’); 运行后结果如下 卡尔曼增益
k = 100. 0000 53. 1200 11. 6711
即状态反馈控制器k = [100. 0000 53. 1200 11. 6711] ,系统输出响应的仿真结果如图1 所示。
图1
为了研究Q矩阵参数变化对最优控制器设计的影响,现改变Q矩阵参数如下: