连续线性二次型最优控制的MATLAB 实现1.绪 论最优控制问题就是在一切可能的控制方案中寻找一个控制系统的最优控制方案或最优控制规律,使系统能最优地达到预期的目标。
随着航海、航天、导航和控制技术不断深入研究,系统的最优化问题已成为一个重要的问题。
本文介绍了最优控制的基本原理,并给定了一个具体的连续线性二次型控制系统,利用MATLAB 软件对其最优控制矩阵进行了求解,通过仿真实验,设计得到最优控制效果比较好,达到了设计的目的。
2.最优控制理论介绍2.1最优控制问题 设系统状态方程为:[]00)(,),(),()(x t x t t u t x f t x ==•(2—1)式中,x(t)是n 维状态向量;u(t)是r 维控制向量;n 维向量函数[]t t u t x f ),(),(是x(t)、u(t)和t 的连续函数,且对x(t)与t 连续可微;u(t)在[]f t t ,0上分段连续。
所谓最优控制问题,就是要寻求最优控制函数,使得系统状态x(t)从已知初态0x 转移到要求的终态)(f t x ,在满足如下约束条件下: (1)控制与状态的不等式约束[]0),(),(≥t t u t x g (2—2)(2)终端状态的等式约束[]0),(=f f t t x M (2—3)使性能指标[][]⎰+Θ=ff t t t t t u t x F t t x J f 0d ),(),(),( (2—4)达到极值。
式中[]t t u t x g ),(),(是m 维连续可微的向量函数,r m ≤;[]f f t t x M ),(是s 维连续可微的向量函数,n s ≤;[]f t t x f ),(Θ和[]t t u t x F ),(),(都是x(t)与t 的连续可微向量函数。
2.2最优控制的性能指标自动控制的性能指标是衡量系统性能好坏的尺度,其内容与形式取决于最优控制所要完成的任务,不同的控制问题应取不同的性能指标,其基本类型如下: (1)积分型性能指标[]⎰=ft t t t t u t x F J 0d ),(),( (2—5)表示在整个控制过程中,状态x(t)与控制u(t)应达到某些要求。
例如: ①最小时间控制取 []t t u t x F ),(),(=1则 f ft t t t t J -==⎰00d (2—6)②最小燃料消耗控制取 [])(),(),(t u t t u t x F =则 ⎰=ft t t J 0d u(t) (2—7)③最小能量控制取 [])(),(),(2t u t t u t x F =则 ⎰=ft t t u J 02(t)d (2—8)④无限时间线性调节器 取∞→f t ,且[])()()()(21),,(T Tt Ru t u t Qx t x t u x F +=其中,0≥Q ,0>R ,均为加权矩阵,则[]t t t Ru t u t Qx t x J d )()()()(210T T⎰∞+= (2—9)⑤无限时间线性跟踪器[][]{}t t Ru t u t z t y Q t z t y J d t )()()()())((210T T ⎰∞+--= (2—10)其中,y(t)是系统输出向量,z(t)是系统希望输出向量。
在性能指标式(2—8)、(2—9)、(2—10)中,被积函数都是x(t)、y(t)-z(t)或u(t)的平方项组成,这种性能指标的形式叫做二次型性能指标。
(2)末值型性能指标[]f f t t x J ),(Θ= (2—11)表示系统在控制过程结束后,要求系统的终端状态)(f t x 应达到某些要求,在实际工程中,例如要求导弹的脱靶量最小、机床移动的准确停止等。
中断时刻可以固定,也可以自由,视最优控制问题的性质而定。
(3)复合型性能指标[][]t t t t t u t x F t t x J ff f d ),(),(),(0⎰+Θ= (2—12)表示对控制过程及控制过程结束后的终端状态均有要求是最一般的性能指标形式。
2.3 最优控制问题的求解方法(1)解析法。
当性能指标与约束条件为显式解析表达式是,适用解析法。
通常是用求导方法或变分方法求出最优控制的必要条件,从而得到一组方程式或不等式,然后求解这组方程或不等式,最后得到最优控制的解析解。
(2)数值计算法。
当性能指标比较复杂或不能用变量的显函数表示时,可以采用试探法,即直接搜索逐步逼近,经过若干次迭代,逐步逼近到最优点。
(3)梯度法。
这是一种解析和数值计算相结合的方法。
2.4 线性二次型最优控制对于性能指标是二次型函数的线性系统叫做线性二次型最优控制。
线性二次型最优控制方法的对象是以状态空间表达时给出的线性系统,而性能指标是对象状态和控制输入的二次型函数。
二次型问题就是在线性系统的约束条件下,选择控制输入使得二次型目标函数达到最小。
本文主要介绍连续系统线性二次型最优控制。
设线性连续订场系统的状态方程为:0)0(),()()(x x t Bu t Ax t x =+=•(2—13)式中,x(t)x(t)是n 维状态向量;u(t)是r 维控制向量,且不受约束;A 为n ×n 维常数矩阵,B 为n ×r 维常数矩阵。
系统的性能指标为:()t Ru u Qx x J d 210TT ⎰∞+=(2—14) 式中,终端时间f t 无限,Q 为n ×n 维常数矩阵;R 为r ×r 维常数矩阵;R>0,T R R =。
若下列条件之一满足:(1),,0T Q Q Q =>阵对{A ,B}完全可控;(2),,0T Q Q Q =≥阵对{A ,B}完全可控,阵对{A ,D}完全可观,Q DD =T ,D 为任意矩阵,则有最优反馈矩阵:P B R K T 1-= (2—15)和唯一的最优控制:)()()(T 1*t Px B R t Kx t u --=-= (2—16)以及最优性能指标:)0()0(21T*Px x J =(2—17) 式中,P 是常值正定矩阵,它是以下里卡提代数方程的唯一解:0T 1T =+-+-Q P B PBR P A PA (2—18)闭环系统:()0T 1)0(),()(x x t x P B BR A t x =-=-•(2—19)是渐近稳定的,其解为最优轨线)(*t x 。
2.5 连续系统线性二次型最优控制实例 已知系统动态方程:u x x ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=•1006116100010 []x y 011=系统结构如图2—1所示。
图2—1 系统结构图由结构图有系统的控制信号:Kx r k x k x k x k r k x k x k x r k u -=++-=+--=13322111332211)()()(式中反馈增益矩阵K: []321k kkK =系统性能指标:()t Ru u Qx x J d 210TT ⎰∞+=其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=100010001000Q ,[]1=R ,试计算最优状态反馈矩阵K 是J 最小并对其闭环系统进行单位阶跃给定响应的仿真。
下面是该题目的MATLAB 程序及运行结果: >> a=[0 1 0;0 0 1;-6 -11 -6];b=[0;0;1];>> c=[1 0 0];d=[0];Q=[1000 0 0;0 1 0;0 0 1];R=[1]; >> K=lqr(a,b,Q,R) K =26.1870 12.6189 1.8891>> k1=K(1);ac=a-b*K;bc=b*k1 bc =0 0 26.1870>> cc=c;dc=d; >> step(ac,bc,cc,dc)得到闭环系统单位阶跃给定响应的仿真曲线如图2—2所示。
图2—2闭环系统单位阶跃给定响应曲线经状态最优反馈后,闭环系统单位阶跃给定响应曲线略微超调后立即单调衰减,这样的仿真曲线是很理想的,确实反映了最优控制的效果。
若本题要求采用输出反馈,即)()(t Ky t u -=使性能指标为:()t Ru u Qy y J d 210T T⎰∞+=其中 ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=100010001000Q ,[]1=R 计算最优反馈矩阵[]321k kkK =使J 最小并对其闭环系统进行单位阶跃给定响应的仿真。
此时该题目的MATLAB 程序及运行结果: >> a=[0 1 0;0 0 1;-6 -11 -6];b=[0;0;1]; >> c=[1 0 0];d=[0];Q=diag([1000]);R=[1]; >> K=lqry(a,b,c,d,Q,R) K =26.1870 12.4878 1.8087>> k1=K(1);ac=a-b*K;bc=b*k1; >> cc=c;dc=d; >> step(ac,bc,cc,dc)得到闭环系统单位阶跃给定响应的仿真曲线如图2—3所示。
图2—3闭环系统单位阶跃给定响应曲线对比图2—2和图2—3可见,经最有输出反馈后,闭环系统阶跃给定响应曲线与经状态反馈后的阶跃响应曲线相差无几。
3.小结本文主要介绍了连续线性二次型最优控制的MATLAB实现,在本文写作过程中,我不仅巩固了所学的最优控制理论的相关知识,同时学习了用MATLAB 进行连续线性二次型最优控制的实现方法,这些都会对我以后的学习和工作有很多帮助,感觉很有收获。
最新文件---------------- 仅供参考--------------------已改成word文本--------------------- 方便更改。