最优控制的MATLAB实现

更新时间:2024-05-18 00:14: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页

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页

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

Top