线性二次型最优控制的MATLAB实现
LQR系统最优控制器设计的MATLAB实现及应用

LQR系统最优控制器设计的MATLAB实现及应⽤LQR 系统最优控制器设计的MATLAB 实现及应⽤LQR( linear quadratic regulator) 即线性⼆次型调节器, 其对象是现代控制理论中以状态空间形式给出的线性系统, ⽽⽬标函数为对象状态和控制输⼊的⼆次型函数。
LQR 最优设计指设计是出的状态反馈控制器K要使⼆次型⽬标函数J 取最⼩值, ⽽K由权矩阵Q 与R 唯⼀决定, 故此Q、R 的选择尤为重要。
LQR理论是现代控制理论中发展最早也最为成熟的⼀种状态空间设计法。
特别可贵的是, LQR可得到状态线性反馈的最优控制规律, 易于构成闭环最优控制。
⽽且Matlab 的应⽤为LQR 理论仿真提供了条件,更为我们实现稳、准、快的控制⽬标提供了⽅便。
⼀、LQR 最优控制器系统设计的Matlab 实现1.1 LQR 最优控制器的系统设计假设线性系统状态空间描述为:x = Ax+ Bu,v= Cx 。
其中x 为n*1状态向量, u为m*1输⼊向量。
不失⼀般性考虑⼀个⼆次型⽬标函数:(1)式( 1) 中, Q 、R 称为加权矩阵, 且Q 为n*n 维正半定阵, R 为m*m 维正定阵。
最优控制即寻求控制作⽤u(图1)使⽬标函数J 最⼩。
应⽤极⼩值原理, 可以得出最优控制作⽤:1T x u kx R B P -=-=-, 其中,P 为代数Riccati ⽅程1():0T T ARE A P PA PBR B P Q -+-+=的正半定解。
Matlab 中的lqr( )函数不仅可以求解ARE 的解P, 还可以同时求出K 。
1.2 Q ,R 的选择原则由原理知, 要求出最优控制作⽤u, 除求解ARE ⽅程外, 加权矩阵的选择也是⾄关重要的。
⽽Q 、R 选择⽆⼀般规律可循, ⼀般取决于设计者的经验, 常⽤的所谓试⾏错误法,即选择不同的Q 、R 代⼊计算⽐较结果⽽确定。
这⾥仅提供⼏个选择的⼀般原则:1) Q 、R 都应是对称矩阵, Q 为正半定矩阵, R 为正定矩阵。
matlab试验七及试验八

实验七线性二次型指标最优控制系统设计一、实验目的1、学习线性二次型指标最优控制系统设计方法。
2、完成线性二次型指标最优控制系统设计实践。
二、相关知识最优控制系统是指在一定的具体条件下,在完成所要求的控制任务时,系统的某种性能指标具有最优值。
根据系统的不同用途,可提出各种不同的性能指标,最优控制的设计就是选择最优控制以使某一种性能指标为最小(或者最优值)。
在实际工程应用中,最优控制系统的性能指标通常采用二次型指标。
对于状态完全能控的线性连续定常系统,其状态方程为%(/) = A x(t) + B u(t),x(0)=x0。
其输出方程为y(t) = C x(t) + D u(t),式中:x(t)为n维状态变量;u(t)为p维输入控制变量,且不受约束;A为n X n维状态矩阵,常数矩阵;B为n X p维输入矩阵,常数矩阵;C为m X n维输出矩阵,常数矩阵;D为m X p维输入矩阵,常数矩阵。
y(t)为m维输出变量;引入的线性二次型(Linear Quadratic)指标为:1J - j 'x T(t)Q x(t) + u T(t)Ru(t)]d t20式中,积分上限为8,即调节时间tf-B Q和R均为正定的对称常数矩阵,实际上分别是对状态量x(t)和控制量u(t)的加权矩阵。
根据最优控制理论,使线性二次型指标J(式6.66)取最小值的最优控制u*(t) 为:u *( t) = - Kx (t) = - R-1B T Px (t)式中,K = R-1B T P为最优反馈增益矩阵;P矩阵为对称常数矩阵;P矩阵可通过求解代数黎卡提(Riccati)方程PA + A T P - PBR-1B T P + Q = 0这时,最优性能指标为1J * 二一x T(0)Px (0)2可见,设计最优控制系统的重要一步就是求解黎卡提(Riccati)方程。
线性二次型指标状态反馈最优控制系统结构图如图所示。
线性二次型指标J的最优性取决于如何确定加权矩阵Q和R,但这两个矩阵的选择并没有解析方法,只能作定性的选择。
连续线性二次型最优控制的MATLAB实现

连续线性二次型最优控制的MATLAB 实现1. 绪论最优控制问题就是在一切可能的控制方案中寻找一个控制系统的最优控制方案或最优控制规律,使系统能最优地达到预期的目标。
随着航海、航天、导航和控制技术不断深入研究,系统的最优化问题已成为一个重要的问题。
本文介绍了最优控制的基本原理,并给定了一个具体的连续线性二次型控制系统,利用MATLAB^件对其最优控制矩阵进行了求解,通过仿真实验,设计得到最优控制效果比较好,达到了设计的目的。
2. 最优控制理论介绍2.1 最优控制问题设系统状态方程为:?x(t) f x(t),u(t),t ,x(t 0) x0(2—1)式中,x(t)是n维状态向量;u(t)是r维控制向量;n维向量函数f x(t), u(t),t是x(t)、u(t)和t的连续函数,且对x(t)与t连续可微;u(t)在t o,t f上分段连续。
所谓最优控制问题,就是要寻求最优控制函数,使得系统状态x(t) 从已知初态x0 转移到要求的终态x(t f),在满足如下约束条件下:(1)控制与状态的不等式约束g x(t),u(t),t 0 (2—2)(2)终端状态的等式约束M x(t f),t f 0 (2—3)使性能指标t fJ x(t f),t f t0F x(t),u(t),t dt (2—4)达到极值。
式中g x(t),u(t),t是口维连续可微的向量函数,m r ;M x(tf),tf是s维连续可微的向量函数,s n ;x(t f),t f和F x(t),u(t),t都是x(t)与t的连续可微向量函数2.2最优控制的性能指标自动控制的性能指标是衡量系统性能好坏的尺度, 其内容与形式取决于最优 控制所要完成的任务,不同的控制问题应取不同的性能指标,其基本类型如下: (1) 积分型性能指标;:F x(t),u(t),tdtx(t),u(t),t =1t f t odtto tf② 最小燃料消耗控制③ 最小能量控制F x(t),u(t),t u 2(t)(2—8)④ 无限时间线性调节器 取t f ,且其中,y(t)是系统输出向量,z(t)是系统希望输出向量。
基于MATLAB的线性二次型最优控制算法及应用研究

基于MATLAB的线性二次型最优控制算法及应用研究摘要早在上世纪50年代,世界上就出现了对于线性二次型最优控制LQ(Linear Quadratic)的研究。
随着对LQ的不断深入研究,如今它已经成为了现代控制理论中最经典的最优控制之一。
在各种关于对LQ的研究中,基于状态反馈控制器的研究是最为系统且完整的。
而直线一级倒立摆系统作为研究控制理论的一种实验平台,它不但结构简单,价格低廉,而且可以反映出控制中的许多典型问题,从而使它在很多领域都得到了应用。
MATLAB作为数字仿真领域中所使用的系统软件的代表,且又具有功能强大的函数库,能使研究者们便捷地实现现代控制理论的目标。
本文针对一阶线性系统,以状态变量x和控制输入变量u构成的二次型函数为目标函数,研究了线性二次型最优控制算法中的三个主要研究方向,具体为状态调节器问题、输出调节器问题以及跟踪器问题,并分别给出数值算例进行了MATLAB仿真。
最后以直线一级倒立摆系统作为具体的例子,研究了如何利用线性二次型最优控制实现倒立摆控制器设计,并给出系统模型及MATLAB仿真波形。
该论文有图14幅,表2个,参考文献32篇。
关键词:线性二次型最优控制状态调节器输出调节器跟踪器MATLAB 倒立摆系统The Algorithm and Application Research of Linear Quadratic Optimal Control based on MATLABAbstractIn early 1950, there appeared for the research of the linear quadratic optimal control LQ (Linear Quadratic) , with the deepening study of LQ, LQ has now become one of the most classical optimal control of the modern control theory. In many of research on LQ, one of them which based on state feedback controller is the most systematic and complete. And the linear inverted pendulum system as an experimental platform which research the control theory, it not only has the advantages of simple structure, low price, but also can reflect many typical control problem, so it has been applied in many fields.MATLAB, as the representative of the system software used in the field of digital simulation, and has a powerful function library, so it can make the researchers easily achieve the goals of modern control theory.In this paper, for the first-order linear system, the quadratic function formed by the state variable x and the control input variable U is the objective function,and studies three major issues in the linear quadratic optimal control algorithm,which are the state regulator problem, the output regulator problem and tracker problem, and gives the specific numerical examples and simulates these problems by MATLAB. Then this paper studies the application of linear quadratic optimal control in the inverted pendulum controller design, gives system model and the MATLAB simulation waveform.Key Words:Linear quadratic optimal control state regulator output regulator tracker MATLAB inverted pendulum system目录摘要 (I)Abstract ........................................................................................................................ I I 目录 . (III)图清单 (V)表清单 (V)1 绪论 (1)1.1 课题的研究背景及意义 (1)1.2 课题的研究现状 (2)1.3 本文研究工作与内容安排 (3)2 MATLAB基础 (4)2.1 简述 (4)2.2 MATLAB基本功能及特点 (4)2.3 M文件的使用 (5)2.4 本章小结 (7)3 线性二次型理论研究及MATLAB仿真 (8)3.1 线性二次型基本理论 (8)3.2 状态调节器问题研究 (9)3.3 输出调节器问题研究 (14)3.4 跟踪器问题研究 (17)3.5 本章小结 (22)4 线性二次型最优控制在倒立摆系统中的实现 (23)4.1 问题简述 (23)4.2 倒立摆系统的数学模型 (23)4.3 二次型最优控制器 (25)4.4 Simulink仿真 (27)4.5 本章小结 (31)5 总结与展望 (32)参考文献 (33)致谢 (35)附录 (36)图清单表清单1 绪论早在1950年,就有人开始对于线性二次型最优控制LQ 进行研究,到了现在LQ 的研究理论不断成熟,已经成为现代控制理论中最经典的最优控制之一。
利用MATLAB设计线性二次型最优控制器

实验6 利用MATLAB 设计线性二次型最优控制器6.1 实验设备 同实验1。
6.2 实验目的1、学习线性二次型最优控制理论;2、通过编程、上机调试,掌握线性二次型最优控制器设计方法。
6.3 实验原理说明考虑控制系统的状态空间模型(6.1)⎩⎨⎧=+=Cx y Bu Ax x &其中:x 是维状态向量,u 是维控制向量,y 是r n m 维的输出向量,A 、B 和分别是、和C n n ×维的已知常数矩阵,系统的初始状态是。
0)0(x x =m n ×n r ×系统的性能指标是∫∞+=0T T d ][t J Ru u Qx x (6.2)其中:为对称正定(或半正定)矩阵,Q R 为对称正定矩阵。
性能指标右边的第一项表示对状态的要求,这一项越小,则状态衰减到零的速度越快,振荡越小,因此控制性能就越好。
第二项是对控制能量的限制。
x x 若系统的状态是可以直接测量的,且考虑的控制器是状态反馈控制器,则可以证明,使得性能指标(6.2)最小化的最优控制器具有以下的线性状态反馈形式Kx u −= (6.3)P B R K T1−=是维状态反馈增益矩阵,P 是以下黎卡提矩阵方程n m ×式中的0T 1T =+−+−Q P B PBR P A PA (6.4)的对称正定解矩阵。
此时,性能指标的最小值是,最优闭环系统0T 0x P x =J x BK A x)(−=& (6.4) BK A −的所有特征值均具有负实部。
是渐近稳定的,即矩阵MATLAB 中的函数[K,P,E]=lqr(A,B,Q,R)给出了相应线性二次型最优控制问题的解。
函数输出变量中的K 是最优反馈增益矩阵,P 是黎卡提矩阵方程(6.4)的对称正定解矩阵,E 是最优闭环系统的极点。
6.4 实验步骤1、线性二次型最优控制器设计,采用MATLAB 的m-文件编程;2、在MATLAB 界面下调试程序,并检查是否运行正确。
chapter12_用MATLAB解最优控制问题及应用实例

传递函数模型在更一般的情况下,可以表示为复 数变量s的有理函数形式:
b1 s m b2 s m1 bm s bm1 G( s) n n 1 n2 s a1 s a2 s an1 s an
在MATLAB中可以采用如下语句将以上的传 递函数模型输入到工作空间:
可以看出,上述的黎卡提矩阵微分方程求解起来 非常困难,所以我们往往求出其稳态解。例如目 标函数中指定终止时间可以设置成 t f , 这样可以保证系统状态渐进的趋近于零值,这样 可以得出矩阵趋近于常值矩阵 K (t ) ,且 K (t ) 0, 这样上述黎卡提矩阵微分方程可以简化成为:
对于Bode图,MATLAB控制工具箱中提供了 bode()函数来求取、绘制系统的Bode图,该函数 可以由下面的格式来调用
[mag,pha]=bode(G,w)
12.2
用MATLAB解线性二次型最优控制问题
一般情况的线性二次问题可表示如下: 设线性时变系统的方程为 X (t ) A(t ) X (t ) B(t )U (t )
个函数rlocus()函数来绘制系统的根轨迹,该函数的
可以由如下格式来调用: R=rlocus(G,k)
对于Nyquist曲线的绘制,控制系统工具箱中 给出了一个函数nyquist()函数,该环数可以用来 直接求解Nyquist阵列,绘制出Nyquist曲线,该 函数的可以由如下格式来调用: [rx,ry]=nyquist(G,w)
ss(A,B,C,D)
传递函数的零极点模型为:
( s z1 )(s z 2 ) ( s z m ) G( s) K ( s p1 )(s p2 ) ( s pn )
用MATLAB解线性二次型最优控制问题

cp=[cp;-K]; dp=[dp;0]; G=ss(ap,bp,cp,dp);
[y,t,x]=step(G); figure('pos',[50,50,200,150],'color','w');
axes('pos',[0.15,0.14,0.72,0.72])
plotyy(t,y(:,2:3),t,y(:,4)) [ax,h1,h2]=plotyy(t,y(:,2:3),t,y(:,4));
KA AT K KBR1BT K Q 0
这个方程称为代数黎卡提方程。代数黎卡提方程的求解非常 简单,并且其求解只涉及到矩阵运算,所以非常适合使用 MATLAB来求解。
3
解线性二次型最优控制问题
方法一:
求解代数黎卡提方程的算法有很多,下面介绍一种简单的迭 代算法来解该方程。令 0 0 ,则可以写出下面的迭代公式
20
解线性二次型最优控制问题
例 无人飞行器的最优高度控制,飞行器的控制方程如下
h(t ) 0 1 0 h(t ) 0 1 h(t ) 0 u (t ) h (t ) 0 0 0 0 1 / 2 1 / 2 h (t ) h (t )
运行结果: P = 67.9406 21.7131 21.7131 11.2495 E = -7.2698 -2.4798 K =13.0276 6.7496 RR = 3.4487e-016
14
解线性二次型最优控制问题
以上的三种方法的运行结果相同。于是可以得到,最优
控制变量与状态变量之间的关系:
6.7496 21.7131 11.2495
MATLAB求解线性二次型最优控制问题

P=
1.0000 1.0000 1.0000 2.00ቤተ መጻሕፍቲ ባይዱ0
线性二次型函数
(2)状态调节器:
[K, P, r] lqr(A, B,Q, R)
K:反馈矩阵; P:黎卡提方程解 (状态反馈) r:为闭环特征值
例2 已知系统运动方程
0 1 0 0 x 0 0 1 x 0u
0 2 3 1 y [1 0 0]x
输出反馈后响应曲线
原系统阶跃输出响应曲线
技术报告
题目:倒立摆系统的LQR控制器设计与仿真分析
具体格式与内容见相关文档
要求: 1. 按照格式要求书写,打印和书写均可,占成绩20%; 2.按时提交,纸质版考试前交给班长,考试时统一收取,过后成绩记0分; 3.电子档交至云班课的技术报告中; 4.严禁抄袭(包括互相抄袭及抄袭网上等),仿真数据真实。
状态反馈后输出响应曲线
状态相应曲线
线性二次型函数
(3)输出调节器:
[K0 , P, r] lqry( A, B,C, D, Q, R)
K0:输出反馈矩阵; P:黎卡提方程解 (状态反馈) r:为闭环特征值
例3 例2的输出反馈
A=[0 1 0;0 0 1;0 -2 -3]; B=[0;0;1]; C=[1 0 0]; D=0; Q=diag([100]); R=1; [Ko,P,r]=lqry(A,B,C,D,Q,R); t=0:0.1:10; figure(1);step(A-B*Ko,B,C,D,1,t); figure(2);step(A,B,C,D,1,t);
求采用状态反馈u=-Kx(t),使以下性能指标取极小。
J 1 (xTQx uT Ru)dt 20
100 0 0
Q
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性二次型最优控制的MATLAB实现
一理论依据
应用经典控制理论设计控制系统,能够解决很多简单、确定系统的实际设计问题。
但对于多输入多输出系统与阶次较高的系统,往往得不到满意的结果,这时就需要有在状态空间模型下建立的最优控制策略。
最优控制是现代控制理论的核心。
最优控制理论的实现,离不开一系列的最优化方法,主要包括两个方面就是如何将最优化问题表示为数学模型,如何根据数学模型尽快求出其最优解。
线性二次型最优控制设计是基于状态空间技术来设计一个优化的动态控制器,其目标函数是状态和控制输入的二次型函数。
二次型问题就是在线性系统约束条件下选择控制输入使二次型目标函数达到最小。
由于线性二次型最优控制问题的性能指标具有鲜明的物理意义,其最优解具有统一的解析表达式,且可导致一个简单的线性状态反馈控制律,易于构成闭环最优反馈控制,便于工程实现,因而在实际工程问题中得到了广泛的应用。
二MATLAB程序
>> clear
>> syms x1 x2 x3;
>> x=[x1;x2;x3];
>> A=[0 1 0;0 0 1;0 -2 -3];
>> B=[0;0;1];
>> R=1;
>> Q=[1000 0 0;0 1 0;0 0 1];
>> N=0;
>> [K,P,E]=lqr(A,B,Q,R)
>> u=-inv(R)*B'*P*x
K =
31.6228 19.0661 3.9377
P =
666.1690 219.3906 31.6228
219.3906 108.5284 19.0661
31.6228 19.0661 3.9377
u =
-(5366634056803559*x2)/281474976710656 - (4433500461210591*x3)/1125899906842624 - 10*10^(1/2)*x1
三Simulink仿真图及其响应曲线
利用simulink仿真,画出系统反馈前后的仿真图、输出图像和性能指标图。
分析分析反馈前后关系曲线。
图1 反馈前系统的仿真图
图2 反馈前输出图像
图3 反馈前性能指标图
图4 反馈后系统的仿真图
图5 反馈后输出图像
四 结果分析
若泛函为()[]t x J J =,根据前面章节所学的变分,可得()x J 在*x x =处有极值的充要条件是0=J δ。
具体的极值问题还需分为有无约束条件问题,在求解过程中,U δ任意,如果不满足该情况是需结合极小值原理计算求解。
极小值原理是对经典变分法的扩展,在求解控制有约束时,哈密尔顿H 对U 不可微时,要用极小值原理。
但是在求解非线性的最优控制两点边值问题时,不易求解,线性二次型的实际应用意义在于把所得到的最优反馈控制与非线性系统的开环最优相结合,这样减少开环控制的误差,达到更为相对精确的目的。
线性二次型所研究的是多输入多输出动态系统的控制问题,其中包括作为特例的单输入单输出,另外它的性能指标是综合性的,既包括了有误差的成分,也包含了有控制能量的成分。
根据线性的最优反馈控制律,即控制量正比于状态变量,可写为()()()t X t G t u -=或()()()k X k L k u -=。
把这种线性二次型问题的最优控制与非线性系统的开环控制结合起来,还可减少开环控制的误差。
线性二次型问题的最优控制一般可分为状态调节器问题和伺服跟踪问题两大类。
通过对线性二次型最优控制上机实验,更好的对线性二次型最优控制有了更深入的了解。
通过给定的控制系统,利用Matlab
软件对其最优控制矩阵进行求 图6 反馈后性能指标图
解,最后利用SIMULIN对所求解的系统进行了仿真。
通过仿真实验,设计所得到的线性二次型最优控制效果比较好,到达了设计的目的。