搜档网
当前位置:搜档网 › 最优控制的MATLAB实现

最优控制的MATLAB实现

最优控制的MATLAB实现
最优控制的MATLAB实现

最优控制的MATLAB实现

摘要

线性二次型最优控制是一种普遍采用的最优控制系统设计方法。使用MATLAB 软件设计的GUI控制界面实现最优控制,有较好的人机交互界面,便于使用。线性二次型最优控制又叫做LQ最优控制或者称为无限长时间定常系统的状态调节控制器。本文分别从连续系统线性二次型最优控制的MATLAB实现,离散系统相形二次型最优控制的MATLAB实现,最优观测器的MATLAB实现,线性二次性Guass 最优控制的MATLAB实现四个研究方案。本论文就是从这四个方面分别以不同的性能指标设计不同的GUI界面以及不同的程序实现其功能并说明其各自的应用范围。

关键词:线性二次型,最优控制, GUI控制界面,最优观测器,Guass最优控制

The Linear Quadratic Optimal Control of MATLAB

Abstract

Linear quadratic optimal control is a widely used to optimal control system design method. Use of MATLAB software design GUI interface control to realize the optimal control, Have good man-machine interface, easy to use. The linear quadratic optimal control and called LQ optimal control or an infinite long time of the system state regulation and constant controller.

This paper respectively from the continuous system linear quadratic optimal control MATLAB, Discrete system in quadratic optimal control MATLAB, The optimal observer MATLAB, sexual Guass linear quadratic optimal control MATLAB four research plan. This paper is from the four aspects of the performance index respectively in different design different GUI interface and Different programs that realize its function and their application scope.

Keywords:Linear quadratic, The optimal control, GUI control interface, The best Guass observer, the optimal control

目录

1 引言 (1)

1.1 概述 (1)

1.2课题研究的背景、意义及研究概况 (1)

1.3本文研究的主要内容 (2)

2 最优控制的基本概念 (3)

2.1最优控制基本思想 (3)

2.2最优控制的性能指标 (3)

2.2.1 积分型性能指标 (3)

2.2.2 末值型性能指标 (5)

2.3最优控制问题的求解方法 (5)

3 最连续系统最优控制的MATLAB实现 (7)

3.1连续系统线性二次型最优控制 (7)

3.2连续系统线性二次型最优控制的MATLAB实现 (8)

3.3连续系统线性二次型最优控制的MATLAB实现示例 (8)

4 离散系统线性二次型最优控制的MATLAB实现 (17)

4.1离散系统稳态线性二次型最优控制 (17)

4.2离散系统线性二次型最优控制的MATLAB实现与示例 (18)

5 最优观测器的MATLAB实现 (23)

5.1 连续时不变系统的KALMAN滤波 (23)

5.2K ALMAN滤波的MATLAB实现 (24)

5.3K ALMAN滤波的MATLAB实现示例 (25)

6 线性二次型GUASS最优控制的MATLAB实现 (31)

6.1LQG最优控制的求解 (31)

6.2LQG最优控制的MATLAB实现与示例 (32)

7 结论 (37)

参考文献: (38)

致谢 (39)

1 引言

1.1 概述

随着计算机技术的飞速发展,控制系统的计算机辅助设计与分析得到了广泛的应用,目前已达到了相当高的水平。MATLAB是国际控制界应用最广泛的计算机辅助设计与分析工具,它集矩阵运算、数值分析、信号处理和图形显示于一体,构成了一个方便的、良好的用户环境,其强大的科学计算与可视化功能,简单易用的开放式可编程环境,使得MATLAB在控制领域的各个方面都得到了广泛应用。线性二次型最优控制可以使系统的某些性能达到最优,在工程上用得较为广泛,也是现代控制理论课程学习的重点和难点。所谓最优控制,就是根据建立在系统数学模型,选择一个容许的控制规律,在一定的条件下,使得控制系统在完成所要求的控制任务时使给定的某一性能指标达到最优值、极小值或极大值。图形用户界面GUI(Graphical User Interface)作为用户与软件交互的一种主要手段,已经成为现代软件的重要组成部分。

目前大部分软件的功能主要是通过图形用户界面调用,在软件产品的测试过程中,尤其是功能测试过程中,GUI功能测试占有非常大的比例,GUI测试是现代软件测试的关键环节。GUI系统质量是整个软件产品质量提升和成本降低的关键。由于GUI软件的独特性,使得原有传统软件的测试方法不大适用于GUI软件的测试,现有关于GUI测试的研究相对较少,资源也相对贫乏,并且GUI手工测试已经无法满足测试要求,因而对GUI测试自动化进行研究具有重要的现实意义。

1.2 课题研究的背景、意义及研究概况

最优控制理论是50年代中期在空间技术的推动下开始形成和发展起来的。美国学者R.贝尔曼1957年提出的动态规划和前苏联学者L.S.庞特里亚金1958年提出的极大值原理,两者的创立仅相差一年左右。对最优控制理论的形成和发展起了重要的作用。线性系统在二次型性能指标下的最优控制问题则是R.E.卡尔曼在60年代初提出和解决的。

对于线性系统,若性能指标是二次型函数,这样实现的控制叫做线性二次型最优控制,线性二次型最优控制方法是20世纪60年代发展起来的一种普遍采用的最优控制系统设计方法。这种方法的对象是以状态空间表达式给出的线性系统,而性能指标(或目标函数)为对象状态与控制输入的二次型函数。二次型问题就是在线性系统的约束条件

下,选择控制输入使得二次型目标函数达到最小。

到目前为止,这种二次型最优控制在理论上比较成熟,为解决这类控制问题而开发的MATLAB函数也比较多,而且这种控制应用非常广泛。

目前GUI自动化测试工具普遍采用的是捕获/回放(C/P,Capture/Playback)机制,并没有对GUI测试的自动化提供很好的支持。只能被动捕获被测试系统的执行信息,而不能和被测试系统进行交互,有选择地捕获被测系统的执行信息,且相对于国内软件测试市场,价格较高,国内没有充分得到应用。因而,研究与设计图形用户界面的自动化测试工具,对促进国内GUI应用系统测试自动化具有较深远的意义。

1.3 本文研究的主要内容

本论文将以线性二次型为性能指标,分别从连续系统线性二次型最优控制的MATLAB 实现,离散系统相形二次型最优控制的MATLAB实现,最优观测器的MATLAB实现,线性二次性Guass最优控制的MATLAB实现这四个研究方案入手加以深入,力求在做到实现最优控制的前提下,控制界面的灵敏性能够有进一步的提高。同时江不同最优控制的设计进行比较,探讨各种方法的优缺点。

针对上述研究内容,本论文内容具体安排如下:

第1章:引言。介绍了线性二次型最优控制以及MATLAB下图形界面GUI的研究背景、意义和发展概况,并介绍了本文的主要研究内容。

第2章:阐述最优控制的基本概念,性能指标以及求解方法。

第3章:阐述连续系统线性二次型最优控制的MATLAB实现过程。

第4章:阐述离散系统相形二次型最优控制的MATLAB实现过程。

第5章:阐述最优观测器的MATLAB实现过程。

第6章:阐述线性二次型Guass最优控制的MATLAB实现过程。

2 最优控制的基本概念

2.1 最优控制基本思想

设系统状态方程为

00)(],,(u ,([)(x t x t t t x f t x ==))

(2-1) 式中,)(t x 是n 维状态向量;)t u (是p 维控制向量;n 维向量函数],(u ,([t t t x f ))是))t t x (u ,(与t 的连续函数,且对)t x (与t 连续可微;)t (u 在[f t t ,0]上分段连续。所谓最优控制问题,就是要求寻找最优控制函数,使得系统状态)t x (从以知初态0x 转移到要求的终端状态)(f t x ,在满足如下约束条件下:

(1)控制与状态的不等式约束

0]),(),([≥t t u t x g (2-2)

(2)终端状态的等式约束

0]),t ([f =f t x M (2-3) 使性能指标

?+Θ=f

t t f f dt t t u t x F t t x J 0

]),(),([]),([ (2-4)

达到极值。式中]),(),([t t u t x g 是m 维连续可微的向量函数,t t x t t u t x n q q t t x M p m f f 与都是,维连续可微的向量函数是)(]),(),([;]),([;Θ≤≤的连续可微纯量函数。

2.2 最优控制的性能指标

自动控制的性能指标是衡量系统性能好坏的尺度,其内容与形式取决于最优控制问题所要完成的任务,不同的控制问题应取不同的性能指标,其基本类型如下。

2.2.1 积分型性能指标

?=f

t t dt t t u t x F J 0

]),(),([ (2-5)

表示整个控制过程中,系统的状态)t x (与施加给系统的控制作用)(t u 应当达到某些要求。例如:

(1)最小时间控制

当选取 1]),(),([=t t u t x F

00

t t dt J f

t t f -==? (2-6)

这种控制要求设计一个快速控制规律,使系统在最短时间内从以知的初态)(0t x 转移到要求的末态)(f t x 。例如,导弹拦截器的轨道转移就是属于此类问题。

(2)最小燃料消耗控制

当选取 ∑==m

j j t u t t u t x F 1)(]),(),([

则 ?∑==

f

t t m j j dt t u J 01)( (2-7)

是航天工程中常遇到的重要问题之一。例如,宇宙飞船这种航天器具所携带的燃料有限,希望在轨道转移时,所消耗的燃料尽可能的少,就是属于此类问题。

(3)最小能量控制

当选取 )()(]),(),([t u t u t t u t x F T =

?=f

t t T dt t u t u J 0

)()( (2-8)

对于一个能量有限的物理系统,例如,通信卫星的太阳能电池,为了使系统在有限的能源条件下载尽可能长的时间内保证正常工作,需要对控制过程中的能量消耗进行约束,就是属于此类问题。

(4)无线时间线性调节器

取∞→f t ,且

)]()()()([2

1),,(t Ru t u t Qx t x t u x F T T += 其中,,0,0 R Q ≥均为加权矩阵,则

?∞

+=0)]()()()([21t T T dt t Ru t u t Qx t x J (2-9) (5)无限时间线性跟踪器

取∞→f t ,且

)]}()()()([)]()([{),,(t Ru t u t z t y Q t z t y t u x F T T +--= ?∞

+--=0)}()()]()([)]()({[21t T T dt t Ru t u t z t y Q t z t y J (2-10)

其中,)(t y 为系统输出向量,)(t z 为系统希望输出向量。

在性能指标式(2-8)、式(2-9)、式(2-10)中,被积函数都是由)()()()(t u t z t y t x 或、-的平方项所组成,这种形式的性能指标叫做二次型性能指标。

2.2.2 末值型性能指标

]),([f f t t x J Θ= (2-11) 表示系统在控制过程结束后,要求系统的终端状态)(f t x 应达到某些要求,在实际工程中,例如要求导弹的脱靶量最小、机床工作台移动准确停止等。终端时刻f t 可以固定,也可以自由,视最优控制问题的性质而定。

复合型性能指标

?+Θ=f

t t f f dt t t u t x F t t x J 0

]),(),([]),([ (2-12)

表示对整个控制过程及控制过程结束后的终端状态均有要求,是最一般的性能指标形式。

2.3 最优控制问题的求解方法

1. 解析法

当性能指标与约束条件为显示解析表达式时,适合用解析法。通常是用求导方法或

变分方法解出最优控制的必要条件,从而得到一组方程式或不等式,然后求解这组方程或不等式,最后得到最优控制的解析解。

2. 数值计算法

当性能指标比较复杂或不能用变量的显函数表示时,可以采用试探法,即直接搜索逐步逼近,经过若干次迭代,逐步逼近到最优点。

3.梯度型法

这是一种解析与数值计算相结合的方法。

3 最连续系统最优控制的MATLAB 实现

3.1连续系统线性二次型最优控制

设线性连续定常系统的状态方程为:

0.

)0(),()()(x x t Bu t Ax t x =+=? (3-1)

式中,n t x 为)(维状态向量;p t u 为)(维控制向量,且不受约束;n n A ?为维常数矩阵,p n B ?为维常数矩阵。 系统的性能指标为: ?∞

+=021Rudt u Qx x J T T (3-2) 式中,终端时间无限;为Q 维数适当的常数矩阵(常取n n ?维常数矩阵);R 为维数适当的常数矩阵,T R R R =,0 。若下列条件之一满足:

(1)],[,,0B A Q Q Q T 阵对= 完全可控;

(2)D Q DD D A B A Q Q Q T T ,],[],[,,0==≥完全可观,完全可控,阵对阵对为任意矩阵。

则有最优反馈矩阵:

P B R K T 1-= (3-3) 与唯一的最优控制:

)()()(*1t Px B R t Kx t u T --=-= (3-4) 以及最优性能指标: )0()0(2

1*Px x J = (3-5) 式中,P 为常值正定矩阵,它是以下黎卡提代数方程的唯一解:

01=+-+-Q P B PBR P A PA T T (3-6) 闭环系统:

01)0(),()()(x x t x P B BR A t x T =-=-? (3-7)

是渐近稳定的,其解为最优轨线)(t x ?

3.2 连续系统线性二次型最优控制的MATLAB 实现

在MATLAB 系统里,有特别提供的函数来求解连续系统线性二次型状态调节器问题。其函数有lqr()、lqr2()与lqry()。函数的调用格式为:

[K,S,E]=lqr(A,B,Q,R,N)

[K,S]=lqr2(A,B,Q,R,N)

[K,S,E]=lqry(sys,Q,R,N)

其中,输入参量sys 为系统的模型;A 为系统的状态矩阵;B 为系统的输入矩阵;Q 为给定的半正定实对称矩阵;R 为给定的正定实对称矩阵;N 代表更一般化性能指标中交叉乘积项的加权矩阵;输出参量K 为最优反馈增益矩阵;S 为对应Riccati 方程的唯一正定解P (若矩阵A-BK 是稳定矩阵,则总有P 的正定解存在);E 为A-BK 的特征值。

函数lqry()用来求解二次型状态调节器的特例,是用输出反馈替代状态反馈,即有:

)()(t Ky t u -= (3-8)

其性能指标则为: dt Ru u Qy y J T T ?∞+=0)(21 (3-9) 这种二次型输出反馈控制称为次优(或准最优)控制。

3.3 连续系统线性二次型最优控制的MATLAB 实现示例

【例18-1】已知连续系统状态方程与初始条件为11212()()(0)0,,()()(1)1

x t u t x x t x t x ==????==?? 性能指标:22201=()(),4J x t u t dt ∞

??+?????设计要求:设计一GUI 界面,界面有五个按钮,分别实现的功能是:最优反馈增益矩阵K 、最优控制u*(t)、最优性能指标J*、特征方程的特征值和Riccati 方程的正定解P 。

解:

由系统状态方程直接写出状态矩阵、输入矩阵与初始条件:

12(0)0010=(0)100(0)1x A B x x ????????===??????????????

??,, 选择矩阵

001,022Q R ??==????

由题目要求,

第一步:打开MATLAB,输入guide 回车后将弹出GUIDE 快速启动对话框,如图3.1所示。

图3.1 GUIDE 快速启动对话框

从上面的对话框可以看到,MATLAB 提供了4种GUIDE 模板,其中本次设计需要用到的是第一个,空白GUI 模板。单击OK 按钮,打开GUI 编辑界面,如图3.2所示。

图3.2 新建的GUI 界面

如图所示,上面的第一行为菜单栏,第二栏为工具栏,左边的两列为常用控件,关于各个控件的名称与功能见附录1

第二步:针对例子的设计要求,为GUI添加必要的控件。

(1)添加“静态文本”控件。选择Static Text图标,用鼠标将其拖到GUI模板的合适位置,并根据设计,调整其大小。

(2)添加“文本框”控件。用鼠标单击Edit Text图标,然后在界面上建立文本框。(3)添加“列表框”控件。用鼠标单击Listbox图标,然后在界面上合适的位置建立大小适中的列表框。

(4)添加“按钮组”控件。单击Button Group图标,建立合适的按钮组控件。

(5)在按钮组上添加“按钮”。单击Push Button图标,将按钮建立在按钮组里,需要多少即建立多少。

完成以上操作后得到草图,如图3.3所示。

图3.3 GUI草图

上述界面包含两个静态文本框控件、一个可编辑文本框、一个按钮组控件、五个按钮控件、一个列表框控件。

第三步:修改属性。创建控件以后,要对控件的各种属性进行设置,具体步骤如下:双击各控件,则会弹出左边的属性对话框,按要求分别修改各按钮的属性,如图3.4所示。

图3.4 修改属性窗口

如图所示,右边窗口为修改属性窗口,常用属性有:string属性,用于显示在控件上的字符串,起说明或提示作用;Callback属性,回调函数,与菜单的一样;Tag属性,控件的标记,用于标识控件。更多属性功能见附录1

1)在图形左边上方的静态文本的属性编辑框中,设置如下属性值:

?Fontsize 10 %字体大小

?FontUnits normalized %采用相对度量单位,缩放时保持字体

比例

?String 系统输入 %显示在界面上的字符

?HorizontalAlignment Center %文字中心对齐

?Units normalized %采用相对度量单位,缩放时保持该区

比例

2)在图形左边中间的静态文本的属性编辑框中,设置如下属性值:

?Fontsize 10 %字体大小

?FontUnits normalized %采用相对度量单位,缩放时保持字体

比例

?String 系统输出 %显示在界面上的字符

?HorizontalAlignment Center %文字中心对齐

?Units normalized %采用相对度量单位,缩放时保持该区比

3) 在可编辑文本的属性编辑框中,设置如下属性值:

?FontUnits normalized %采用相对度量单位,缩放时保持字体比

?String %清除在界面上的字符

?HorizontalAlignment Center %文字中心对齐

? Units normalized %采用相对度量单位,缩放时保持该区

比例

4) 在按钮组的属性编辑框中,设置如下属性值:

?Fontsize 12 %字体大小

?FontUnits normalized %采用相对度量单位,缩放时保持字体比例

?HorizontalAlignment Center %文字中心对齐

?String 连续系统线性二次型最优控制 %在按钮组顶头显示

?Units normalized %采用相对度量单位,缩放时保持该键比

5) 在按钮组的按键上属性编辑框中,设置如下属性值:

?Fontsize 10 %字体大小

?FontUnits normalized %采用相对度量单位,缩放时保持字体比例

?HorizontalAlignment Center %文字中心对齐

Units normalized %采用相对度量单位,缩放时保持该键比例五个按钮的String属性从上到下分别设置为:最优反馈增益矩阵K、Riccati方程的正定解P、最优控制u*(t)、最优性能指标J*、特征方程的特征值。

对控件的属性设置结束后,得到如下界面:

图3.5 属性设置完的基本图

第四步:设计GUI回调函数。点击工具栏最右边的绿色三角按钮运行点击工作台上的”运行界面“的工具图标,会出现一个询问对话框,当按提示对以上的设计进行存储以后,就会引出2个界面:名为Lqr的图形用户界面(如图3.6所示);展示名为Lqr的(待填写回调指令的)M函数文件的文件编辑器界面。在Lqr.m文件中,填写回调指令(见附录)

第五步:运行。按例题要求设计回调函数,然后运行。在系统输入框中输入状态矩阵、输入矩阵、初始状态与给定矩阵,输入完成后分别点击各按钮。

(1)按下按钮“最优反馈增益矩阵K”,得到如图3.7的结果:

图3.6 图形用户界面

图3.7

(2)按下按钮“Riccati方程的正定解P”,得到如图3.8结果:

图3.8 Riccati方程的正定解P 按下按钮“最优控制u*(t)”,得到3.9图结果:

图3.9最优控制u*(t)

按下按钮“最优性能指标J*”,得到图3.10结果:

图3.10最优性能指标J* 按下按钮“特征方程的特征值”,得到图3.11结果:

图3.11特征方程的特征值自此连续系统线性二次型最优控制的MATLAB设计结束。

4 离散系统线性二次型最优控制的MATLAB 实现

4.1 离散系统稳态线性二次型最优控制

设完全可控线性离散系统的状态方程为:

)1,1,0(,)0(),()()1(0-==+=+N k x x k Bu k Ax k x (4-1) 式中,n k x 为)(维状态向量;维为p k u )(控制向量,且不受约束;A 为n n ?维非奇异矩阵,维矩阵为p n B ?。

系统的性能指标为:

∑-=++=10

)]()()()([21)()(21N K T T T k Ru k u k Qx k x N Sx N x J (4-2) 式中,n n Q ?为维正定或半正定实对称矩阵;维为p p R ?正定实对称矩阵;n n S ?为维正定或半正定实对称矩阵。

最优控制作用与最优反馈矩阵可以有几种不同的表达式。其中最有反馈矩阵之一为:

])([)()(11Q k P A B R k K T T -=-- (4-3)

与之对应的最优控制序列:

)(])([)()()()(*11k x Q k P A B R k x k K k u T T --=-=-- (4-4) 以及性能指标: )0()0()0(2

1*x P x J T = (4-5) 以上几式中,P (k )为正定矩阵,它是以下黎卡提差分方程的正定解:

A B BR k P A Q k P T T T 11])1([)(--+++= (4-6)

若控制步数N 为无限值,即令∞→N ,系统最优控制的解成为稳态解。系统的性能指标则改为: ∑∞=+=0

)]()()()([21K T T k Ru k u k Qx k x J (4-7) K k K 变成常数增益矩阵)(:

相关主题