最优控制的MATLAB实现

更新时间:2024-04-21 05:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

最优控制的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.2 KALMAN滤波的MATLAB实现 ....................................... 24 5.3 KALMAN滤波的MATLAB实现示例 ................................... 25 6 线性二次型GUASS最优控制的MATLAB实现 ........................... 31 6.1 LQG最优控制的求解 ........................................... 31 6.2 LQG最优控制的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年代发展起来的一种普遍采用的最优控制系统设计方法。这种方法的对象是以状态空间表达式给出的线性系统,而性能指标(或目标函数)为对象状态与控制输入的二次型函数。二次型问题就是在线性系统的约束条件

第1页 共39页

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

到目前为止,这种二次型最优控制在理论上比较成熟,为解决这类控制问题而开发的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页 共39页

2 最优控制的基本概念

2.1 最优控制基本思想 设系统状态方程为

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

g[x(t),u(t),t]?0 (2-2) (2)终端状态的等式约束

M[x(tf),tf]?0 (2-3) 使性能指标

tf J??[x(tf),tf]??F[x(t),u(t),t]dt (2-4)

t0达到极值。式中g[x(t),u(t),t]是m维连续可微的向量函数,

m?p;M[x(tf),tf]是q维连续可微的向量函数,q?n;?[x(t),u(t),t]都是x(t)与t的连续可

微纯量函数。

2.2 最优控制的性能指标

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

tf J??F[x(t),u(t),t]dt (2-5)

t0

第3页 共39页

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

(1)最小时间控制

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

tf J??dt?tf?t0 (2-6)

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

当选取 F[x(t),u(t),t]??uj(t)

j?1m则

tf J?t0j?1??umj(t)dt (2-7)

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

当选取 F[x(t),u(t),t]?uT(t)u(t) 则

tf J??uT(t)u(t)dt (2-8)

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

(4)无线时间线性调节器 取tf??,且

第4页 共39页

1 F(x,u,t)?[xT(t)Qx(t)?uT(t)Ru(t)]

2其中,Q?0,R?0,均为加权矩阵,则

1J??[xT(t)Qx(t)?uT(t)Ru(t)]dt (2-9)

2t0? (5)无限时间线性跟踪器 取tf??,且

F(x,u,t)?{[y(t)?z(t)]TQ[y(t)?z(t)?uT(t)Ru(t)]}

1 J??{[y(t)?z(t)]TQ[y(t)?z(t)]?uT(t)Ru(t)}dt

2t0?(2-10)

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

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

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

tf J??[x(tf),tf]??F[x(t),u(t),t]dt (2-12)

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

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

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

第5页 共39页

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

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

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

第6页 共39页

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

3.1连续系统线性二次型最优控制 设线性连续定常系统的状态方程为:

x(t)?Ax(t)?Bu(t),x(0)?x0 (3-1) 式中,x(t)为n维状态向量;u(t)为p维控制向量,且不受约束;A为n?n维常数矩阵,

B为n?p维常数矩阵。

?.系统的性能指标为:

1 J??xTQx?uTRudt (3-2)

20?式中,终端时间无限;Q为维数适当的常数矩阵(常取n?n维常数矩阵);R为维数适当的常数矩阵,R?0,R?RT。若下列条件之一满足:

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

(2)Q?0,Q?QT,阵对[A,B]完全可控,阵对[A,D]完全可观,DDT?Q,D为任意矩阵。

则有最优反馈矩阵:

K?R?1BTP (3-3) 与唯一的最优控制:

u*(t)??Kx(t)??R?1BTPx(t) (3-4) 以及最优性能指标:

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

PA?ATP?PBR?1BTP?Q?0 (3-6) 闭环系统:

x(t)?(A?BR?1BTP)x(t),x(0)?x0 (3-7)

?第7页 共39页

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

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()用来求解二次型状态调节器的特例,是用输出反馈替代状态反馈,即有:

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

1其性能指标则为: J??(yTQy?uTRu)dt (3-9)

20??这种二次型输出反馈控制称为次优(或准最优)控制。 3.3 连续系统线性二次型最优控制的MATLAB实现示例

?1(t)?u(t)?x1(0)?0?x,?,性能指标:【例18-1】已知连续系统状态方程与初始条件为???x2(t)?x1(t)?x2(1)?11??J=??x22(t)?u2(t)?dt,设计要求:设计一GUI界面,界面有五个按钮,分别实现的功能

4?0??是:最优反馈增益矩阵K、最优控制u*(t)、最优性能指标J*、特征方程的特征值和Riccati方程的正定解P。 解:

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

?x1(0)??0??00??1?A=,B?,x(0)? ?x(0)???1? ?10??0??????2???选择矩阵

第8页 共39页

?00?1 Q???,R?

2?02?由题目要求,

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

图3.1 GUIDE快速启动对话框

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

图3.2 新建的GUI界面

第9页 共39页

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

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

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

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

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

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

图3.3 GUI草图

第10页 共39页

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

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

图3.4 修改属性窗口

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

1)在图形左边上方的静态文本的属性编辑框中,设置如下属性值: ? Fontsize 10 %字体大小

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

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

第11页 共39页

? 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 %文字中心对齐

第12页 共39页

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

图3.5 属性设置完的基本图

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

第五步:运行。按例题要求设计回调函数,然后运行。在系统输入框中输入状态矩阵、输入矩阵、初始状态与给定矩阵,输入完成后分别点击各按钮。 (1)按下按钮“最优反馈增益矩阵K”,得到如图3.7的结果:

第13页 共39页

图3.6 图形用户界面

图3.7

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

第14页 共39页

图3.8 Riccati方程的正定解P

按下按钮“最优控制u*(t)”,得到3.9图结果:

图3.9最优控制u*(t)

第15页 共39页

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

图3.10最优性能指标J*

按下按钮“特征方程的特征值”,得到图3.11结果:

图3.11特征方程的特征值

自此连续系统线性二次型最优控制的MATLAB设计结束。

第16页 共39页

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

4.1 离散系统稳态线性二次型最优控制 设完全可控线性离散系统的状态方程为:

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

B为n?p维矩阵。

系统的性能指标为:

1T1N?1TJ?x(N)Sx(N)??[x(k)Qx(k)?uT(k)Ru(k)] (4-2)

22K?0式中,Q为n?n维正定或半正定实对称矩阵;R为p?p维正定实对称矩阵;S为n?n维正定或半正定实对称矩阵。

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

?1TT?1 K(k)?RB(A)[P(k)?Q] (4-3)

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

u*(k)??K(k)x(k)??R?1BT(AT)?1[P(k)?Q]x(k) (4-4) 以及性能指标:

J*?1Tx(0)P(0)x(0) (4-5) 2以上几式中,P(k)为正定矩阵,它是以下黎卡提差分方程的正定解: P(k)?Q?AT[PT(k?1)?BR?1BT]?1A (4-6)

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

1?T J??[x(k)Qx(k)?uT(k)Ru(k)] (4-7)

2K?0K(k)变成常数增益矩阵K:

第17页 共39页

K?[R?BTPB]?1BTPA (4-8)

P(k)也变成常数矩阵P:

P?Q?AT[P?1?BR?1BT]?1A (4-9) 对应的最优控制序列为:

u*(k)??Kx(k)??[R?BTPB]?1BTPAx(k) (4-10) 闭环系统的状态方程为:

x(k?1)?Ax(k)?Bu(k)?[A?B(R?BTPB)?1BTPA]x(k)?(I?BR?1BTP)?1Ax(k)

以及最优性能指标仍为: J*?1Tx(0)P(0)x(0) (4-11) 24.2 离散系统线性二次型最优控制的MATLAB实现与示例

在MATLAB的工具箱里,有特别提供的函数来求解离散系统稳态线性二次型状态调节器问题。其函数有dlqr()与dlqry()。函数的调用格式为:

[K,S,E]?dlqr(A,B,Q,R,N)[K,S,E]?dlqry(A,B,C,D,Q,R,N)

其中,输入参量A为系统的状态矩阵;B为系统的输入矩阵;Q为给定的正定或半正定实对称矩阵;R为给定的正定实对称矩阵;N代表更一般化性能指标中交叉乘积项的加权矩阵。输出参量K为离散最优反馈增益矩阵;S为Riccati方程的唯一正定解P;E为A-BK的特征解。

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

u(k)??Ky(k) (4-12) 其性能指标为:

1?T J??[y(k)Qy(k)?uT(k)Ru(k)] (4-13)

2k?0【例4-1】以知伺服系统动态结构状态方程为

第18页 共39页

x(k?1)?ax(k)?bu(k)

u(k)?k1v(k)?k2x(k)v(k)?r(k)?y(k)?v(k?1)y(k)?cx(k)

式中

a=0.5, b=1, c=1, d=0

利用GUI工具箱设计一界面使其满足在点击【反馈矩阵Kx】键时在输出框中输出系统稳态最优反馈增益矩阵,在点击【Step response】键时在轴上画出相应的系统闭环后的单位阶跃给定响应曲线。 【解】 由v(k)有:

(vk+1)=r(k+1)-y(k+1)+v(k)=-cax(k)+v(k)-cbu(k)+r(k+1) 由x(k?1)与v(k?1)写出矩阵,对于系统稳态,k??,以上矩阵就成为:

?x(?)??a0??x(?)??b??o???u(?)?r(?) ???????????v(?)???ca1??v(?)???cb??1?令采样信号xe(k)?x(k)?x(?),ve(k)?v(k)?v(?),ue?u(k)?u(?)。将以上两式相减,可得:

?xe(k?1)??a0??xe(k)??b??v(k?1)????ca1??v(k)????cb?ue(k)

??e????e??由u(k)?k1v(k)?k2x(k),有ue(k)?k1ve(k)?k2xe(k)

再令x1(k)?xe(k),x2(k)?ve(k),w(k)?ue(k)。以上矩阵可写成:

?x1(k?1)??a0??x1(k)??b?????w(k) ???????x2(k?1)???ca1??x2(k)???cb??x1(k)?式中 w(k)???k2?k1??? x(k)?2?当系统有单位阶跃给定输入时,r(k?1)?r(?)?r。又由u(k)=k1v(k)?k2x(k)可得:

?x(k?1)??a0??x(k)??b??x(k)??0?????kk???r ?21????????????v(k?1)???ca1??v(k)???cb??v(k)??1?

第19页 共39页

根据矩阵乘法运算规则,整理以上矩阵有:

bk1??x(k)??0??x(k?1)??a?bk2? ????ca?cbk1?cbk??v(k)???1?r v(k?1)??????21??还有:

?x(k)?c0 y(k)?cx(k)?????v(k)?

??设定性能指标为:

1?T J??[x(k)Qx(k)?wT(k)Rw(k)]

2K?0式中参量Q、R选择为:

?10000? Q???,R?[1] 01??根据以上分析开始设计GUI界面。

第一步:启动GUI工具箱以后,布置如4.1图所示的界面:

图4.1 离散系统最优控制GUI界面

第20页 共39页

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

第二步:对各控件进行属性设置,设置完成后得到如4.2界面。

图4.2 离散系统图形用户界面

图4.3 离散系统反馈矩阵Kx

第21页 共39页

第三步:界面的激活与回调函数的设计(见附录)。

第四步:运行。点击界面按钮“反馈矩阵Kx”后显示如4.3界面 点击界面按钮“Step response”后显示如4.4界面

图4.4 离散系统单位阶跃给定响应

设计结束。

第22页 共39页

5 最优观测器的MATLAB实现

系统的Kalman滤波器就是最优观测器。对于带有系统噪声与量测噪声的实际系统,抑制或滤掉噪声对系统的干扰及影响,对系统的状态做出充分精确的估计。利用Kalman滤波器对系统进行最优控制是非常有效的。 5.1 连续时不变系统的Kalman滤波

给定系统的状态方程与量测方程分别为:

?(t)?Ax(t)?Bu(t)?Gw(t) (5-1) x y(t)?Cx(t)?Du(t)?Hw(t)?v(t) (5-2) 式中,x(k)为n维状态向量;u(k)为p维控制向量,y(t)为q维量测向量; A为n?n维非奇异矩阵,B为n?p维矩阵,G为n?p维常数矩阵,D为q?p维常数矩阵;

H为q?p维常数矩阵;假定w(t)为随机噪声干扰输入,它是零均值的p维白噪声过程;

假定为随机量测噪声,是零均值的q维白噪声过程。w(t)与v(t)两噪声过程均平稳且互不相关。即有:

E{w(t)}?0,对一切t?t0;E{v(t)}?0,对一切t?t0;E{w(t)wT(?)?Q0?(t??),对一切t,??t0.

此式中的Q0为常数矩阵(叫做模型噪声的协方差矩阵)。

E{w(t)wT(?)?Q0?(t??),对一切t,??t0。

此式中的R0为常数矩阵(叫做量测噪声的协方差矩阵)。 E{w(t)wT(?)?0,对一切t,??t0

?(t)与~x(t)分别为状态向量估计值与状态向量的估计误差值,x(t)为状态向量的理令x论值,则有:

~x(t)?x(t)?~x(t) (5-3) 除上述假设外,还假定{C,A}是完全可观测的。在这些假定均成立的条件下,使估计误差平方和的期望值最小(最小方差迹准则滤波估计)既有:

第23页 共39页

T???t??J?E?x??t?x??min (5-4)

其最优估计器为:

???t??Ax??t??Bu?t??L???t????t??Bu?t??Ly?t? (5-5) x?y?t??Cx???A?LC?x式中

?1L?P0CTR0 (5-6)

其中P0为以下Riccati方程的解:

AP0?P0AT?GQ0GT?P0CTR0?1CP0?0 (5-7) 可以证明:Riccati方程的解P0就是估计误差的协方差,而此协方差的迹(trP0)即为误差方差。如是有:

TT?????t????xtxt?Ex trP0?trE????????x? (5-8)

5.2 Kalman滤波的MATLAB实现

在MATLAB的工具箱里提供了kalman?调用格式为:

?函数来求解系统的kalman滤波器,函数的

?Kest,L,P??Kalman?sys,Q,R,N?

?,C,D??,当模型有其中,输入参量sys为连续或离散系统带扰动的状态空间模型?A,B???BG?, D???DH?;Q为模型噪声的协方差矩阵;R为量测噪声的协方两个时,B差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项。输出参量Kest为Kalman滤波器的状态估计器,其状态方程如下:

????A?LC?x??t???B?LD?u?t??Ly?t? (5-9) x??t???C??y?D???xt? ???????0?u?t? (5-10) ?xtE????????L为Kalman滤波器的增益矩阵:P为对应的Riccati方程的解,即估计误差的协方差。

在MATLAB老版本的工具箱里,还提供了两个配合使用的函数lqe?解系统的Kalman滤波器。函数lqe??与estim??来求

?的调用格式为:

第24页 共39页

?L,P,E??lqe?A,G,C,Q,R,N?

其中,输入参量A,G,C为系统式(18-46)与(18-47)中的对应参量;Q为模型噪声的协方差矩阵;R为量测噪声的协方差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项;输出参量L为Kalman滤波器的增益矩阵;P为对应的Riccati方程的解,即估计误差的协方差;E为估计器的闭环特征值。

函数estim??的调用格式为:

est?estim?sys,L?

这个函数用来生成连续系统的Kalman滤波器,即系统的状态估计器est。输入参量

sys为连续系统带扰动的状态空间模型,输入参量L为函数leq?的增益矩阵。

对于连续系统,用函数kalman?estim??求出的Kalman滤波器

?计算的Kalman滤波器的状态估计器kest与用函数

?求出的Kalman滤波器est,两者应相等。请看以下示例。

5.3 Kalman滤波的MATLAB实现示例

例【5-1】:已知单位负反馈连续系统的受控对象与校正装置的传递函数分别为: G0?s??18?s?1?1Gs? , c??2s?10s试设计一个GUI界面,实现如下要求:

(1) 点击按钮“Kalman增益矩阵L”时,在列表框中显示系统Kalman滤波器的增益

矩阵L;

(2) 点击“系统估计误差的协方差P”按钮时,列表框中显示系统估计误差的协方差

P;

(3) 点击“Kalman最优滤波器”按钮时,列表框中显示系统Kalman(最优)滤波器

(a,b,c,d)。 解:

第一步:启动GUI工具箱以后,布置如图5.1所示的界面:

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

第25页 共39页

图5.1 Kalman最优滤波器GUI基本界面

第二步:对各控件进行属性设置,属性设置与例3.1类同,设置完成后得到图5.2界面。

图5.2 Kalman最优滤波器控制界面

第26页 共39页

第三步:界面的激活与回调函数的设计(见附录2)。其中激活界面如图5.3

图5.3 Kalman最优控制的激活界面

第四步:运行。输入以知矩阵,点击界面按钮“Kalman增益矩阵L”后显示如5.4界面

图5.4 Kalman滤波器的增益矩阵L

第27页 共39页

点击界面按钮“系统估计误差协方差P”按钮,则显示出系统估计误差协方差,如图5.5

图5.5 系统估计误差协方差

点击界面按钮“Kanman最优滤波器”按钮,列表框中显示出最优滤波器的矩阵,由上到下分别是a,b,c,d。分别如图5.6,5.7,5.8,5.9所示。

图5.6 Kanman最优滤波器之矩阵a

第28页 共39页

图5.7 Kanman最优滤波器之矩阵b

图5.8 Kanman最优滤波器之矩阵c

第29页 共39页

图5.9 Kanman最优滤波器之矩阵d

系统的Kalman(最优)滤波器(a,b,c,d)。计算表明,用函数kalman?的Kalman滤波器的状态估计器Kest与用函数estim?是相等的。

?计算

?求出的Kalman滤波器est,两者

第30页 共39页

6 线性二次型Guass最优控制的MATLAB实现

考虑系统随机输入噪声与随机量测噪声的线性二次型最优控制称为线性二次型高斯(Guass)最优控制,即LQG控制。线性二次型高斯最优控制是输出反馈控制。这种即及系统受到随机因素的作用而采取的控制策略,对解决线性二次型最优控制问题,显然更具有实用性。 6.1 LQG最优控制的求解

给定系统的状态方程与量测方程分别为:

??t??Ax?t??Bu?t??Gw?t? (6-1) x y?t??Cx?t??Du?t??v?t? (6-2) 式中,参量x?t?、u?t?、y?t?、A、B、G、C、D含义同前,假定w?t?为随机噪声干扰输入,它是零均值的p维白噪声过程;假定v?t?为随机量测噪声,是零均值的q维白噪声过程。w?t?与v?t?两个噪声过程均平稳且互不相关。系统的性能指标为:

??T?T?J?E???xQx?uRudt??? (6-3) 0??根据LQG问题的分离原理,LQG最优控制是两个方面问题的综合:一是二次型调节器问题。二是最优估计器问题。

(1)LQ最优控制就是二次型调节器问题。最优状态反馈控制有最优反馈矩阵 式(6-4):

K?R?1BTP (6-4) 最优控制为式(6-5):

u*?t???Kx?t???R?1BTPx?t? (6-5)

以及P满足的Riccati方程式(6-6):

PA?ATP?PBR?1BTP?Q?0 (6-6)

??t?,使估计误差平方和的期 利用Kalman滤波理论,从状态x?t?中得到最优估计x望值最小(最小方差迹准则滤波估计),即有式(6-7):

第31页 共39页

T???t??J?E?x??t?x??min (6-7)

这种最优估计器为式(6-8):

????A?LC?x??t??Bu?t??Ly?t? (6-8) x上式中,L为Kalman滤波器增益,即式(6-9):

?1L?P0CTR0 (6-9)

其中P0为以下Riccati方程式(6-10)的解:

?1AP0?P0AT?GQ0GT?P0CTR0CP0?0 (6-10)

分别计算LQ最优控制与最优估计,再将这两问题的解合在一起,就得到LQG控制的最优解。

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

在MATLAB工具箱里,有特别提供的函数reg?格式为:

rsys?reg?sys,K,L?

?来求解LQG最优控制。函数的调用

其中,输入参量sys为系统的状态空间模型;K为由函数lqr?益矩阵;L为函数lqe??求得的最优状态反馈增

?求得的Kalman滤波器状态估计增益矩阵。

例【6-1】:已知系统的状态方程如下:

??0.40?0.01??6.3??1??x??0?u??0?w (6-11) ???1x00??????????1.49.8?0.02???9.8???0?? y??001?x?v 二次型调节器性能指标为

J????xQx?u0TTRu?dt (6-12)

式中

第32页 共39页

?100??,Q??010??R?1 (6-13)

??001??输入噪声与量测噪声的有关参数分别为Q0?1, R0?1。要求:利用GUI工具箱设计一个界面实现如下功能:

(1)试由系统状态方程求其传递函数; (2)对原系统阶跃给定输入的仿真;

(3)试设计LQG控制器,对LQG最优控制的系统进行阶跃给定输入的仿真。 解:

第一步:启动GUI工具箱以后,布置如6.1图所示的界面:

图6.1 线性二次型Guass最优控制GUI界面

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

第二步:对各控件进行属性设置,设置完成后得到如6.2图界面。

第33页 共39页

图6.2 Guass最优控制基本界面

第三步:界面的激活与回调函数的设计(见附录)。其中激活界面如6.3图

图6.3 Guass最优控制激活GUI界面

第34页 共39页

第四步:运行。

(1)在输入框中输入以知矩阵,点击界面按钮“传递函数”后显示如6.4图界面:

图6.4 Guass最优控制运行界面

由于GUI运行结果只能以数据形式输出,在列表框中显示的两行数据分别是传递函数的分子分母,因此该系统的传递函数为

9.8s2?8.428s?61.74 G(s)?3

s?0.06s2?0.0132s?0.098(2)利用上一小题求得的传递函数绘制系统的阶跃响应,在编辑框中输入传递函数参数,点击“原阶跃响应”按钮,程序运行后在坐标轴上绘出系统的阶跃响应曲线。 (3)由系统的阶跃响应曲线图6.5可以看到原系统的阶跃响应为发散振荡,系统是不稳定的,因此用以下MATLAB程序设计LQG控制器并对其系统进行阶跃给定输入的仿真: clear;A=[-0.04 0 -0.01;1 0 0;-1.4 9.8 -0.02];B=[6.3;0;9.8];C=[0 0 1]; D=[0];s1=ss(A,B,C,D);G=[1;0;0];Q=[1 0 0;0 1 0;0 0 1];R=1;Q0=1;R0=1; K=lqr(A,B,Q,R);L=lqe(A,G,C,Q0,R0);[af,bf,cf,df]=reg(A,B,C,D,K,L); sf=ss(af,bf,cf,df);sys=feedback(s1,sf);t=0:0.01:10;step(sys,t)

第35页 共39页

图6.5 系统原阶跃响应

设计相应的GUI回调函数,在编辑框中输入参数运行后得到LQG最优控制的系统给定输入阶跃响应仿真曲线,如图6.6所示。

图6.6 LQG最优控制的阶跃响应曲线

第36页 共39页

7 结论

通过以上各线性二次型最优控制的MATLAB分析,我们可以得到如下结论:最优控制是以现代控制理论中的状态空间理论为的最优控制算法,是当前振动控制中采用最为普遍的控制器设计方法。它所能解决的主要对象是结构参数模型比较准确、激励和测量信号。使控制系统的性能指标实现最优化的基本条件和综合方法。相对于经典控制而言,最优控制有它显著的优势,应用最优理论设计的多输入—多输出与高阶系统,往往能得到比经典控制设计的结果要满意得多,另外,现代的诸多新型而复杂的控制系统设计都需要在状态空间模型下建立最优控制策略。本文中的四个不同的最优控制分别证明了各自的优缺点,表明了在不同领域的应用情况。

GUI控制界面的实现,他极大地方便了最优控制理论使人们在实际应用中从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。证明了GUI工具的几大优点:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等。而以上结论恰和已知的理论相符合,达到了实现最优控制的目的。

第37页 共39页

参考文献:

[1] 张洪钺,王青.最优控制理论.北京:高等教育出版社,2006

[2] 孙文瑜,徐成贤,朱德通.最优化方法.北京:高等教育出版社,2004 [3] 金龙国,王娟.线性二次性最优控制器的MATLAB实现[J].青岛大学学报,2004,(01) [4] 李国勇, 最优控制理论与应用.北京:国防工业出版社,2008

[5] 王孝武,现代控制理论基础.第2版,北京:机械工业出版社,2006 [6] 吴受章,最优控制理论与运用.北京:机械工业出版社,2008

[7] 涂健.控制系统的数字仿真与计算机辅助设计.武汉:华中工学院出版社,1985 [8] 吴旭光,王新明.计算机仿真技术与运用.西安:西北工业大学出版社,1998 [9] 肖田元,张燕云,陈加栋.系统仿真导论.北京:清华大学出版社,2007 [10] 胡寿松.自动控制原理.北京:科学出版社,2007

[11] 王沫然.MATLAB与科学计算.北京:电子工业出版社,2004 [12] 熊光愣.控制系统仿真.北京:清华大学出版社,2000

[13] 吴旭光,杨惠珍,王新明.计算机仿真技术.北京:化学工业出版社,2005 [14] 张志涌等.精通MATLAB6.5,北京航空航天大学出版社,2003

[15] 楼顺天,于卫,闫华梁.MATLAB程序设计语言.西安电子科技大学出版社,1997 [16] [美]Stephen Chapman .MATLAB编程,北京:科学出版社,2003 [17] 刘宏友.MATLAB6.x符号运算及其应用,北京:机械工业出版社, 2003 [18] 景振毅,张泽兵,董霖. MATLAB 7.0实用宝典.中国铁道出版社 ,2007 [19] 吕显瑞,黄庆道.最优控制理论基础.北京:科学出版社,2008 [20] 秦寿康, 张正文.最优控制.北京:电子工业出版社,2009

[21] SprierJA等著.王中正等译.计算机辅助建模与仿真.北京:科学出版社,1991 [22] 熊光愣.连续系统仿真与离散事件系统仿真. 北京:清华大学出版社,1991 [23] 张若清,罗学科,王民.控制工程基础及MATLAB实践.北京:高等教育出版社,2008 [24] 姚俊,马松辉.Simulink建模与仿真.西安:西安电子科技大学出版社,2002 [25] 刘卫国.MATLAB程序设计与应用. 北京:高等教育出版社,2006 [26] 宋志安,徐瑞银.MATLAB程序设计与应用.北京:高等教育出版社,2008 [27] 黄忠霖,黄京.控制系统MATLAB计算及仿真.北京:国防工业出版社,2009

第38页 共39页

致 谢

在论文完成之际,首先感谢指导老师林都教授对我的悉心指导和亲切关怀。从论文的选题到定稿,林老师给予了很多宝贵的意见和建议。在做毕业设计的这些日子里,林老师不厌其烦地帮助我解决设计中遇到的问题,纠正出现的错误,并为我每一步的前进指明方向,给予我莫大的鼓励和支持。在林老师严格要求和无私帮助下,我的研究工作才得以保质保量地顺利进行。

林老师学识渊博,治学严谨,工作兢兢业业,生活中平易近人,品格高尚,这不但使我在学术上受益匪浅,更让我懂得了很多做人的道理。他的谆谆教诲必将令我终生铭记。

四年的大学生活期间,电气工程系的各位老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向电气工程系的所有老师致以诚挚的谢意和崇高的敬意!我还要感谢那些和我一起度过四年大学生活的所有同学和朋友,四年的时间里我们互相学习,互相帮助,和他们一起,我度过了快乐而充实的大学生活。正是由于他们的帮助和支持,我才能一步步走到今天,与他们一起的日子是我终生的财富。

最后,再次对给予我极大帮助的师长和同学们表示衷心感谢!

第39页 共39页

本文来源:https://www.bwwdw.com/article/6g5p.html

Top