线性二次型最优控制器的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京师范大学
最优化与最优控制
题目:最优化与最优控制
学院:电气与自动化工程学院
专业:控制理论与控制工程
专业方向:基于ARM的太阳跟踪系统
班级:学号: 131802030 姓名:魏骁
指导教师:孙骥职称:教授
填写日期: 2014年6月21 日
一、前言
应用经典控制理论设计控制系统,能够解决很多简单、确定系统的实际设计问题。但是对于诸多新型而复杂的控制系统,例如多输入多输出系统与阶次较高的系统,往往得不到满意的结果。这时就需要有在状态空间模型下建立的最优控制策略。
最优控制是现代控制理论的核心。所谓最优控制,就是在一定条件下,在完成所要求的控制任务时,使系统的某种性能指标具有最优值。根据系统不同的用途,可提出各种不用的性能指标。最优控制的设计,就是选择最优控制,以使某一种性能指标为最小。
二、线性二次型最优控制概述
线性二次型最优控制设计是基于状态空间技术来设计一个优化的动态控制器。系统模型是用状态空间形式给出的线性系统,其目标函数是状态和控制输入的二次型函数。二次型问题就是在线性系统约束条件下选择控制输入使二次型目标函数达到最小。
线性二次型最优控制一般包括两个方面:线性二次型最优控制问题(LQ 问题),具有状态反馈的线性最优控制系统;线性二次型Gauss 最优控制问题,一般是针对具体系统噪声和量测噪声的系统,用卡尔曼滤波器观测系统状态。 三、最优控制理论
假设线性时不变系统的状态方程模型为 x ‘(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)
引入一个最优控制的性能指标,即设计一个输入量u,使得 J=
为最小。其中Q 和R 分别为对状态变量和输入变量的加权矩阵; t f 为控制作用的终止时间。矩阵S 对控制系统的终值也给出某种约束,这样的控制问题称为线性二次型(Linear Quadratic ,简称LQ )最优控制问题。 为了求解LQ 问题,我们取Hamilton 函数
其中一种较为简便的解法为: 令λ(t)=P(t)x(t)
而将对λ(t)的求解转化到对函数矩阵P(t)的求解,特别的,将λ(t)=P(t)x(t)代入上述式子中可得函数矩阵P(t)因满足的微分方程是
'(,(),(),())0.5(()()()()()())()(()()()());LQ ()(()()()());
0(()()()()));()()()()();
T
T T
H t x t u t t 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
Q t x t A t t u
x t A t x t B t u t λλδλλδλ
δλδ=+++=-=-+=+=+并应用变分原理推导出问题解满足的必要条件:
1
'()()()()()()()()()()();
().
T T P t P t A t A t P t P t B t R t B t P t Q t P tf S -=--+-= (1)
对它的求解可应用成熟的Euler 方法。假定方程(1)的唯一对称半正定解P(t),则LQ 问题的解u(t)由下式给出:
四、最优控制设计
本设计通过具体的实例介绍MATLAB 环境下设计一个线性二次型最优控制的过程和方法。由于代数李卡蒂方程求解过程中仅涉及矩阵运算,所以很适合用MATLAB 软件处理,在MATLAB 的控制系统分析与设计工具箱中提供了求解代数李卡蒂方程的函数lpr(),其具体调用方式如下:
[K,P,E]=lpr(A,B,Q,R)
其中矩阵A 、B 、Q 、R 的意义如前所述,返回的K 矩阵为状态反馈矩阵,P 为李卡蒂方程的解,E 为闭环的极点。 构造的的系统方程如下: .
x =010001023⎛⎫ ⎪ ⎪ ⎪--⎝⎭X+011⎛⎫ ⎪ ⎪ ⎪⎝⎭
U
Y=(1 0 0)X
性能指标为J=T 0[+u Ru]T X QX dt ∞
⎰,其中Q ,R 为
Q=123000000
a a a ⎛⎫ ⎪
⎪ ⎪⎝
⎭
R=[0.01] 要设计状态反馈控制器,使J 最小
Q 矩阵参数选择如下:
1a =100 2a =3a =1
^10
-1T ()()()()().
LQ u t)=-Kx(t).K J=(()()()()).Q R ()`K=R B P P T T T T u t R t B t P t x t x t Qx t u t Ru t dt A P PA -∞
=-++⎰上述问题的一个特例是动态方程为定常的情形,即
相应的控制向量取为(其中,为才是矩阵,而二次性能指标为
这里和是给定的实对称正定或半正定矩阵,它们规定了误差和控制信号能量消耗的模式,在这特别的情形,我们可求出这里满足方程:
10;
T PBR B P Q --+=的唯一对称半正定矩阵解
在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] ,系统输出响应的仿真。