最优控制的MATLAB实现_第1页
最优控制的MATLAB实现_第2页
最优控制的MATLAB实现_第3页
最优控制的MATLAB实现_第4页
最优控制的MATLAB实现_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

iirrrr最优控制的MATLAB实现摘要线性二次型最优控制是一种普遍采用的最优控制系统设计方法。使用MATLAB软件设计的GUI控制界面实现最优控制,有较好的人机交互界面,便于使用。线性二次型最优控制又叫做LQ最优控制或者称为无限长时间定常系统的状态调节控制器。本文分别从连续系统线性二次型最优控制的MATLAB实现,离散系统相形二次型最优控制的MATLAB实现,最优观测器的MATLAB实现,线性二次性Guass最优控制的MATLAB实现四个研究方案。本论文就是从这四个方面分别以不同的性能指标设计不同的GUI界面以及不同的程序实现其功能并说明其各自的应用范围。关键词:线性二次型,最优控制,GUI控制界面,最优观测器,Guass最优控制IIIIrrrrTheLinearQuadraticOptimalControlofMATLABAbstractLinearquadraticoptimalcontrolisawidelyusedtooptimalcontrolsystemdesignmethod.UseofMATLABsoftwaredesignGUIinterfacecontroltorealizetheoptimalcontrol,Havegoodman-machineinterface,easytouse.ThelinearquadraticoptimalcontrolandcalledLQoptimalcontroloraninfinitelongtimeofthesystemstateregulationandconstantcontroller.ThispaperrespectivelyfromthecontinuoussystemlinearquadraticoptimalcontrolMATLAB,DiscretesysteminquadraticoptimalcontrolMATLAB,TheoptimalobserverMATLAB,sexualGuasslinearquadraticoptimalcontrolMATLABfourresearchplan.ThispaperisfromthefouraspectsoftheperformanceindexrespectivelyindifferentdesigndifferentGUIinterfaceandDifferentprogramsthatrealizeitsfunctionandtheirapplicationscope.Keywords:Linearquadratic,Theoptimalcontrol,GUIcontrolinterface,ThebestGuassobserver,theoptimalcontrol目录TOC\o"1-5"\h\z1引言1概述1课题研究的背景、意义及研究概况1本文研究的主要内容22最优控制的基本概念3最优控制基本思想3最优控制的性能指标4积分型性能指标4..末值型性能指标6...最优控制问题的求解方法63最连续系统最优控制的MATLAB实现83.1连续系统线性二次型最优控制8连续系统线性二次型最优控制的MATLAB实现9连续系统线性二次型最优控制的MATLAB实现示例94离散系统线性二次型最优控制的MATLAB实现20离散系统稳态线性二次型最优控制20离散系统线性二次型最优控制的MATLAB实现与示例215最优观测器的MATLAB实现275.1连续时不变系统的KALMAN滤波27Kalman滤波的MATLAB实现28Kalman滤波的MATLAB实现示例296线性二次型GUASS最优控制的MATLAB实现35LQG最优控制的求解35LQG最优控制的MATLAB实现与示例377结论42参考文献:4345•I•I•I•IIIrrrrrr引言概述随着计算机技术的飞速发展,控制系统的计算机辅助设计与分析得到了广泛的应用,目前已达到了相当高的水平。MATLAB是国际控制界应用最广泛的计算机辅助设计与分析工具,它集矩阵运算、数值分析、信号处理和图形显示于一体,构成了一个方便的、良好的用户环境,其强大的科学计算与可视化功能,简单易用的开放式可编程环境,使得MATLAB在控制领域的各个方面都得到了广泛应用。线性二次型最优控制可以使系统的某些性能达到最优,在工程上用得较为广泛,也是现代控制理论课程学习的重点和难点。所谓最优控制,就是根据建立在系统数学模型,选择一个容许的控制规律,在一定的条件下,使得控制系统在完成所要求的控制任务时使给定的某一性能指标达到最优值、极小值或极大值。图形用户界面GUI(GraphicalUserInterface)作为用户与软件交互的一种主要手段,已经成为现代软件的重要组成部分。目前大部分软件的功能主要是通过图形用户界面调用,在软件产品的测试过程中,尤其是功能测试过程中,GUI功能测试占有非常大的比例,GUI测试是现代软件测试的关键环节。GUI系统质量是整个软件产品质量提升和成本降低的关键。由于GUI软件的独特性,使得原有传统软件的测试方法不大适用于GUI软件的测试,现有关于GUI测试的研究相对较少,资源也相对贫乏,并且GUI手工测试已经无法满足测试要求,因而对GUI测试自动化进行研究具有重要的现实意义。课题研究的背景、意义及研究概况最优控制理论是50年代中期在空间技术的推动下开始形成和发展起来的。美国学者R.贝尔曼1957年提出的动态规划和前苏联学者L.S.庞特里亚金1958年提出的极大值原理,两者的创立仅相差一年左右。对最优控制理论的形成和发展起了重要的作用。线性系统在二次型性能指标下的最优控制问题则是R.E•卡尔曼在60年代初提出和解决的。对于线性系统,若性能指标是二次型函数,这样实现的控制叫做线性二次型最优控制,线性二次型最优控制方法是20世纪60年代发展起来的一种普遍采用的最优控制系统设计方法。这种方法的对象是以状态空间表达式给出的线性系统,而性能指标(或目标函数)为对象状态与控制输入的二次型函数。二次型问题就是在线性系统的约束条件下,选择控制输入使得二次型目标函数达到最小。到目前为止,这种二次型最优控制在理论上比较成熟,为解决这类控制问题而开发的MATLAB函数也比较多,而且这种控制应用非常广泛。目前GUI自动化测试工具普遍采用的是捕获/回放(C/P,Capture/Playback)机制,并没有对GUI测试的自动化提供很好的支持。只能被动捕获被测试系统的执行信息,而不能和被测试系统进行交互,有选择地捕获被测系统的执行信息,且相对于国内软件测试市场,价格较高,国内没有充分得到应用。因而,研究与设计图形用户界面的自动化测试工具,对促进国内GUI应用系统测试自动化具有较深远的意义。本文研究的主要内容本论文将以线性二次型为性能指标,分别从连续系统线性二次型最优控制的MATLAB实现,离散系统相形二次型最优控制的MATLAB实现,最优观测器的MATLAB实现,线性二次性Guass最优控制的MATLAB实现这四个研究方案入手加以深入,力求在做到实现最优控制的前提下,控制界面的灵敏性能够有进一步的提高。同时江不同最优控制的设计进行比较,探讨各种方法的优缺点。针对上述研究内容,本论文内容具体安排如下:第1章:引言。介绍了线性二次型最优控制以及MATLAB下图形界面GUI的研究背景、意义和发展概况,并介绍了本文的主要研究内容。第2章:阐述最优控制的基本概念,性能指标以及求解方法。第3章:阐述连续系统线性二次型最优控制的MATLAB实现过程。第4章:阐述离散系统相形二次型最优控制的MATLAB实现过程。第5章:阐述最优观测器的MATLAB实现过程。第6章:阐述线性二次型Guass最优控制的MATLAB实现过程。最优控制的基本概念最优控制基本思想设系统状态方程为x(t)=f[x(t),u(t),t],x(t)=x(2-1)00式中,x(t)是n维状态向量;u(t)是p维控制向量;n维向量函数f[x(t),u(t),)]是x(t),u(t)与t的连续函数,且对x(t)与t连续可微;u(t)在[t,t]上分段连续。所谓最优控制问0f题,就是要求寻找最优控制函数,使得系统状态x(t)从以知初态x°转移到要求的终端状态x(t),在满足如下约束条件下:f(1)控制与状态的不等式约束g[x(t),u(t),t]>0(2-2)2)终端状态的等式约束IIIIrrrrM[x(t),t]二0(2-3)ff使性能指标J=0[x(t),t]+fF[x(t),u(t),t]dt(2-4)fft0达到极值。式中g[x(t),u(t),t]是m维连续可微的向量函数,m<p;M[x(t),t]是§维连续可微的向量函数,q<n;0[x(t),u(t),t]都是x(t)与t的连续可ff微纯量函数。最优控制的性能指标自动控制的性能指标是衡量系统性能好坏的尺度,其内容与形式取决于最优控制问题所要完成的任务,不同的控制问题应取不同的性能指标,其基本类型如下。积分型性能指标2-5)t0表示整个控制过程中,系统的状态x(t)与施加给系统的控制作用u(t)应当达到某些要求。例如:1)最小时间控制当选取F[x(t),u(t),t]=1当选取2-6)J=Jdt=t—t2-6)f0t0这种控制要求设计一个快速控制规律,使系统在最短时间内从以知的初态x(t0)转移到要求的末态x(t)。例如,导弹拦截器的轨道转移就是属于此类问题。

2)最小燃料消耗控制当选取F[x(t),u(t),t]=£u(t)jj=i则J=丿区|u(t)dt(2-7)j=1是航天工程中常遇到的重要问题之一。例如,宇宙飞船这种航天器具所携带的燃料有限希望在轨道转移时,所消耗的燃料尽可能的少,就是属于此类问题。(3)最小能量控制当选取F[x(t),u(t),t]=uT(t)u(t)则2-8)J=Jut(t)u(t)dt2-8)对于一个能量有限的物理系统,例如,通信卫星的太阳能电池,为了使系统在有限的能源条件下载尽可能长的时间内保证正常工作,需要对控制过程中的能量消耗进行约束,就是属于此类问题。(4)无线时间线性调节器取t,且fF(x,u,t)=[XT(t)Qx(t)+UT(t)Ru(t)]2其中,Q>0,R0,均为加权矩阵,则2-9)182-9)J=2J[XT(t)Qx(t)+uT(t)Ru(t)]dtt05)无限时间线性跟踪器F(x,u,t)二{[y(t)—z(t)]tQ[y(t)—z(t)+Ut(t)Ru(t)]}18八2M[y(t)-z(t)]tQ[y(t)—z(t沪uT(t)Ru(t)}dtt0(2-10)其中,y(t)为系统输出向量,z(t)为系统希望输出向量。在性能指标式(2-8)、式(2-9)、式(2-10)中,被积函数都是由x(t)、y(t)-z(t)或讥丫)的平方项所组成,这种形式的性能指标叫做二次型性能指标。末值型性能指标j=e[x(t),t](2-11)ff表示系统在控制过程结束后,要求系统的终端状态x(t)应达到某些要求,在实际工程f中,例如要求导弹的脱靶量最小、机床工作台移动准确停止等。终端时刻t可以固定,f也可以自由,视最优控制问题的性质而定。复合型性能指标tfJ=0[x(t),t]+fF[x(t),u(t),t]dt(2-12)fft0表示对整个控制过程及控制过程结束后的终端状态均有要求,是最一般的性能指标形式。最优控制问题的求解方法1.解析法当性能指标与约束条件为显示解析表达式时,适合用解析法。通常是用求导方法或变分方法解出最优控制的必要条件,从而得到一组方程式或不等式,然后求解这组方程或不等式,最后得到最优控制的解析解。2.数值计算法当性能指标比较复杂或不能用变量的显函数表示时,可以采用试探法,即直接搜索逐步逼近,经过若干次迭代,逐步逼近到最优点。3.梯度型法这是一种解析与数值计算相结合的方法。最连续系统最优控制的MATLAB实现3.1连续系统线性二次型最优控制设线性连续定常系统的状态方程为x(t)=Ax(t)+Bu(t),x(0)=x(3-1)0式中,x(t)为n维状态向量;u(t)为p维控制向量,且不受约束;A为nxn维常数矩阵,B为nxp维常数矩阵。系统的性能指标为:3-2)1甲3-2)J=JxtQx+uTRudt0式中,终端时间无限;Q为维数适当的常数矩阵(常取nxn维常数矩阵);R为维数适当的常数矩阵,R》0,R=Rt。若下列条件之一满足:Q》0,Q=Qt,阵对[A,B]完全可控;⑵Q>0,Q=QT,阵对]A,B院全可控,阵对[A,D院全可观,DDT=Q,D为任意矩阵。则有最优反馈矩阵:TOC\o"1-5"\h\zK=R-iBtP(3-3)与唯一的最优控制:u*(t)=-Kx(t)=-R-1BTPx(t)(3-4以及最优性能指标:J*=丄x(0)Px(0)(3-5)2式中,P为常值正定矩阵,它是以下黎卡提代数方程的唯一解:

PA+AtP一PBR-iBtP+Q=0(3-6)闭环系统:(3-6)x(t)=(A―BR-1BtP)x(t),x(0)=x(3-7)0是渐近稳定的,其解为最优轨线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的特征值。函数lq「y()用来求解二次型状态调节器的特例,是用输出反馈替代状态反馈,即有:u(t)=-Ky(t)其性能指标则为:J=-r(yrQy+UtRu)dt0这种二次型输出反馈控制称为次优(或准最优)控制。3.3连续系统线性二次型最优控制的MATLAB实现示例【例18-1】已知连续系统状态方程与初始条件为[xi(t)=u(t)x(t)=x(t)3-8)3-9)囂103-8)3-9)囂10,性能指标:2.I.I.I.IrrrrJ=r[x2(t)+1u2(t)Tdt,设计要求:设计一GUI界面,界面有五个按钮,分别实现的功能24」0是:最优反馈增益矩阵K、最优控制u*(t)、最优性能指标J*、特征方程的特征值和Riccati方程的正定解P。解:由系统状态方程直接写出状态矩阵、输入矩阵与初始条件:「00-j「-x(0)-A=_10_,B=_0_,x(0)=1=1X(0)2选择矩阵0002由题目要求,第一步:打开MATLAB,输入guide回车后将弹出GUIDE快速启动对话框,如图3.1所示。图3.1GUIDE快速启动对话框从上面的对话框可以看到,MATLAB提供了4种GUIDE模板,其中本次设计需要用到的是第一个,空白GUI模板。单击OK按钮,打开GUI编辑界面,如图3.2所示。图3.2新建的GUI界面如图所示,上面的第一行为菜单栏,第二栏为工具栏,左边的两列为常用控件,关于各个控件的名称与功能见附录1第二步:针对例子的设计要求,为GUI添加必要的控件。(1)添加“静态文本”控件。选择StaticText图标,用鼠标将其拖到GUI模板的合适位置,并根据设计,调整其大小。(2)添加“文本框”控件。用鼠标单击EditText图标,然后在界面上建立文本框。(3)添加“列表框”控件。用鼠标单击Listbox图标,然后在界面上合适的位置建立大小适中的列表框。(4)添加“按钮组”控件。单击ButtonGroup图标,建立合适的按钮组控件。(5)在按钮组上添加“按钮”。单击PushButton图标,将按钮建立在按钮组里,需要多少即建立多少。IIIIrrrr完成以上操作后得到草图,如图3.3所示。FileEditViewLayoutToolsHelp串臂罰圈StaticTerfI™1斗TixButtonGroupPushButtonPushButtonEditTextPushButtonPushButtonStaticTextFileEditViewLayoutToolsHelp串臂罰圈StaticTerfI™1斗TixButtonGroupPushButtonPushButtonEditTextPushButtonPushButtonStaticTextListbu::■:PushButton<>Tag:uip:3JiellCurrentFoint:[89,401]Fosition:[51』39,20L,269]图3.3GUI草图上述界面包含两个静态文本框控件、一个可编辑文本框、一个按钮组控件、五个按钮控件、一个列表框控件。第三步:修改属性。创建控件以后,要对控件的各种属性进行设置,具体步骤如下:双击各控件,则会弹出左边的属性对话框,按要求分别修改各按钮的属性,如图3.4所示。

图3.4图3.4修改属性窗口如图所示,右边窗口为修改属性窗口,常用属性有:string属性,用于显示在控件上的字符串,起说明或提示作用;Callback属性,回调函数,与菜单的一样;Tag属性,控件的标记,用于标识控件。更多属性功能见附录11)在图形左边上方的静态文本的属性编辑框中,设置如下属性值:■Fontsize■Fontsize10%字体大小FontUnitsnormalized体比例FontUnitsnormalized体比例String系统输入%采用相对度量单位,缩放时保持字%显示在界面上的字符%文字中心对齐■HorizontalAlignmentCenter%文字中心对齐iiii•I•Irrrrrr■Unitsnormalized%采用相对度量单位,缩放时保持该区比例在图形左边中间的静态文本的属性编辑框中,设置如下属性值:■Fontsize■Fontsize10%字体大小FontUnitsnormalized体比例FontUnitsnormalized体比例String系统输出%采用相对度量单位,缩放时保持字%显示在界面上的字符%文字中心对齐■Units■%文字中心对齐■Unitsnormalized%采用相对度量单位,缩放时保持该区比在可编辑文本的属性编辑框中,设置如下属性值:%采用相对度量单位,缩放时保持字体■FontUnitsnormalized%采用相对度量单位,缩放时保持字体比例String%清除在界面上的字符HorizontalAlignmentCenter%文字中心对齐Unitsnormalized%采用相对度量单位,缩放时保持该区比例在按钮组的属性编辑框中,设置如下属性值:Fontsize12%字体大小FontUnitsnormalized%采用相对度量单位,缩放时保持字体比例■HorizontalAlignmentCenter■HorizontalAlignmentCenter%文字中心对齐■String连续系统线性二次型最优控制■String连续系统线性二次型最优控制%在按钮组顶头显示Unitsnormalized%采用相对度量单位,缩放时保持该键比例在按钮组的按键上属性编辑框中,设置如下属性值:Fontsize10%字体大小FontUnitsnormalized%采用相对度量单位,缩放时保持字体比例HorizontalAlignmentCenter%文字中心对齐Unitsnormalized%采用相对度量单位,缩放时保持该键比例五个按钮的String属性从上到下分别设置为:最优反馈增益矩阵K、Riccati方程的正定解P、最优控制u*(t)、最优性能指标J*、特征方程的特征值。对控件的属性设置结束后,得到如下界面:rrrrfjlffi图3.5属性设置完的基本图ML邨figfjlffi图3.5属性设置完的基本图ML邨figKkEditViewLaftiutTooleHdp□已・|晶■•呷Ls►方程的逅定需P.i_提tt控制up)To-g.l-qr.'figurtlCurrentP^rrtr(51.417]Poiitcnr(JM.383.560.417]第四步:设计GUI回调函数。点击工具栏最右边的绿色三角按钮运行点击工作台上的”运行界面“的工具图标,会出现一个询问对话框,当按提示对以上的设计进行存储以后,就会引出2个界面:名为Lqr的图形用户界面(如图3.6所示);展示名为Lqr的(待填写回调指令的)M函数文件的文件编辑器界面。在Lqr.m文件中,填写回调指令(见附录)第五步:运行。按例题要求设计回调函数,然后运行。在系统输入框中输入状态矩阵、输入矩阵、初始状态与给定矩阵,输入完成后分别点击各按钮。(1)按下按钮“最优反馈增益矩阵K”,得到如图3.7的结果:•I•I•I•Irrrr图3.6图形用户界面图3.7⑵按下按钮“Riccati方程的正定解P”,得到如图3.8结果:IIIIrrrr图3.8Riccoti方程的正定解P按下按钮“最优控制u*(t)”得到3.9图结果:图3.9最优控制u*(t)II•I•Irrrr按下按钮“最优性能指标J*”,得到图3.10结果:系纟充输入Q0;101;0

0.500;02

QRiccati方程的正定鯛P最优控制屮①特征方程的特证值系统输出图3.10最优性能指标J*按下按钮“特征方程的特征值”,得到图3.11结果:L连续系绒纱性二次型最优控制00;101;0L连续系绒纱性二次型最优控制00;02

0Riccati方程的正定鯛P系统输出-1+1i-1-1i最优控制-1+1i-1-1i最优性能指标J”特征方程的特证值:图3.11特征方程的特征值

自此连续系统线性二次型最优控制的matlab设计结束。离散系统线性二次型最优控制的MATLAB实现离散系统稳态线性二次型最优控制设完全可控线性离散系统的状态方程为:x(k+1)=Ax(k)+Bu(k),x(°)=x,(k=°,1,N一1)(4-1)0式中,x(k)为〃维状态向量;u(k)为〃维控制向量,且不受约束;A为nxn维非奇异矩阵,B为nxp维矩阵。系统的性能指标为:J二-xt(N)Sx(N)+-F[xt(k)Qx(k)+ut(k)Ru(k)](4-2)22K=0式中,Q为nxn维正定或半正定实对称矩阵;R为pxp维正定实对称矩阵;S为nxn维正定或半正定实对称矩阵。最优控制作用与最优反馈矩阵可以有几种不同的表达式。其中最有反馈矩阵之一为:TOC\o"1-5"\h\zK(k)=R-1Bt(At)-1[P(k)—Q](4-3)与之对应的最优控制序列:u*(k)=—K(k)x(k)=—R-1Bt(At)—1[P(k)—Q]x(k)(4-4)以及性能指标:J*=—xT(0)P(0)x(0)(4-5)2以上几式中,P(k)为正定矩阵,它是以下黎卡提差分方程的正定解:P(k)=Q+at[Pt(k+1)+Br—1bt]—1A(4-6)若控制步数N为无限值,即令NTa,系统最优控制的解成为稳态解。系统的性能指标则改为:1TOC\o"1-5"\h\z八2£”(k)Qx(k)+UT(k)Ru⑹](4-7)K=0K(k)变成常数增益矩阵K:K=[R+btPB]-ibtPA(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*=丄xT(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()用来求解二次型状态调节器的特例,这个特例就是用输出反馈替代状IIIIrrrr态反馈,即有:u(k)=-Ky(k)(4-12)其性能指标为:1八2「yT(k)Qy(k)+UT(k)Ru(k)](4-13)k=0【例4-1】以知伺服系统动态结构状态方程为x(k+1)=ax(k)+bu(k)u(k)=kv(k)-kx(k)12v(k)=r(k)-y(k)+v(k-1)y(k)=cx(k)式中a=0.5,b=1,c=1,d=0利用GUI工具箱设计一界面使其满足在点击【反馈矩阵Kx】键时在输出框中输出系统稳态最优反馈增益矩阵,在点击【Stepresponse】键时在轴上画出相应的系统闭环后的单位阶跃给定响应曲线。解】由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=g,以上矩阵就成为:x(a)a0x(a)+bu(a)+ov(a)-calv(a)-cb1r(a)令采样信号x(k)=x(k)-x(a),v(k)=v(k)-v(a),u=u(k)-u(a)。将以上两式相减,eee可得:x(k+1)ea0x(k)e+bv(k+1)-ca1v(k)-cbeeu(k)e

由u(k)=kv(k)一kx(k),有u(k)=kv(k)一kx(k)12e1e2e再令x(k)=x(k),x(k)=v(k),w(k)=u(k)。以上矩阵可写成:1e2ee式中w(k)=-式中w(k)=-〔k-k]21x(k)1x(k)2x(k+1)a0x(k)b1=1+x(k+1)2-ca1x(k)2-cbw(k)当系统有单位阶跃给定输入时,r(k+1)=r(a)=r。又由u(k)=kv(k)-kx(k)可得:12a0]「x(k)+7_-ca1J|_v(k)-cbx(k+1)a0]「x(k)+7_-ca1J|_v(k)-cbx(k+1)v(k+1)-kk]21x(k)v(k)根据矩阵乘法运算规则,整理以上矩阵有:x(k+1)v(k+1)a-bkbk21-ca+cbk1-cbk21x(k)v(k)还有:x(k)v(k)设定性能指标为:y(k)=cx(k)=c0】J=—£[xt(k)Qx(k)+wt(k)Rw(k)]2K=0式中参量Q、R选择为:Q=1000001,R=[1]根据以上分析开始设计GUI界面。第一步:启动GUI工具箱以后,布置如4.1图所示的界面:.I.I.I.I•I•Irrrrrr图4.1离散系统最优控制GUI界面上述界面包含一个坐标轴控件、两个静态文本框控件、一个可编辑文本框、一个按钮组控件、两个按钮控件、一个列表框控件。第二步:对各控件进行属性设置,设置完成后得到如4.2界面。

图4.2离散系统图形用户界面图4.3离散系统反馈矩阵Kx第三步:界面的激活与回调函数的设计(见附录)。第四步:运行。点击界面按钮“反馈矩阵Kx”后显示如4.3界面iiiirrrr点击界面按钮“Stepresponse”后显示如4.4界面图4.4离散系统单位阶跃给定响应设计结束。IIII•I•Irrrrrr5最优观测器的MATLAB实现系统的Kalman滤波器就是最优观测器。对于带有系统噪声与量测噪声的实际系统,抑制或滤掉噪声对系统的干扰及影响,对系统的状态做出充分精确的估计。利用Kalman滤波器对系统进行最优控制是非常有效的。5.1连续时不变系统的Kalman滤波给定系统的状态方程与量测方程分别为:x(t)=Ax(t)+Bu(t)+Gw(t)(5-1)y(t)=Cx(t)+Du(t)+Hw(t)+v(t)(5-2)式中,x(k)为n维状态向量;u(k)为p维控制向量,y(t)为q维量测向量;A为nxn维非奇异矩阵,B为nxp维矩阵,G为nxp维常数矩阵,D为qxp维常数矩阵;H为qxp维常数矩阵;假定w(t)为随机噪声干扰输入,它是零均值的p维白噪声过程;假定为随机量测噪声,是零均值的q维白噪声过程。w(t)与v(t)两噪声过程均平稳且互不相关。即有:E{w(t)}=0,对一切t>t;0E{v(t)}=0,对一切t>t;0E{w(t)wt(t)=Q6(t-t),对一切t,t>t•00此式中的Qo为常数矩阵(叫做模型噪声的协方差矩阵)。E{w(t)wt(t)=Q6(t-t),对一切t,t>t。00此式中的Ro为常数矩阵(叫做量测噪声的协方差矩阵)。E{w(t)wt(t)=0,对一切t,t>t0令x(t卢~(t)分别为状态向量估计值与状态向量的估计误差值,x(t)为状态向量的理论值,则有:

5-3)~(t)=x(t)-~(t)5-3)除上述假设外,还假定{C,A}是完全可观测的。在这些假定均成立的条件下,使估计误差平方和的期望值最小(最小方差迹准则滤波估计)既有:TOC\o"1-5"\h\zJ=Ext(t)x(t)]=min(5-4其最优估计器为:~~x(t)=Ax(t)+Bu(t)+L[y(t)—Cx(t)]=(A—LC)x(t)+Bu(t)+Ly(t)(5-5)式中L=PCtR-i(5-6)00其中P为以下Riccati方程的解:0AP+PAt+GQGt—PCtR-iCP=0(5-7)000000可以证明:Riccafi方程的解p就是估计误差的协方差,而此协方差的迹(trP)00即为误差方差。如是有:trP0=trEx(trP0=trEx(t)=Extx't5-8)Kalman滤波的MATLAB实现在MATLAB的工具箱里提供了kalman()函数来求解系统的kalman滤波器,函数的调用格式为:【Kest,L,P]=Kalman(sys,Q,R,N)其中,输入参量sys为连续或离散系统带扰动的状态空间模型(A,b,C,D)当模型有两个时,B=[BG],D=[DH];Q为模型噪声的协方差矩阵;R为量测『噪声的协方差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项。输出参量Kest为Kalman滤波器的状态估计器,其状态方程如下:x=(A-LC)x(t)+(B-LD)u(t)+Ly(t)(5-9)yy]]JC]x(t)+|"D]u(t)(5-10)x(t)JE0L为Kalman滤波器的增益矩阵:P为对应的Riccati方程的解,即估计误差的协方差。在MATLAB老版本的工具箱里,还提供了两个配合使用的函数lqe()与estim口来求解系统的Kalman滤波器。函数lqe()的调用格式为:[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滤波器的增益矩阵。对于连续系统,用函数kalman()计算的Kalman滤波器的状态估计器kest与用函数estim()求出的Kalman滤波器est,两者应相等。请看以下示例。Kalman滤波的MATLAB实现示例例【5-1】:已知单位负反馈连续系统的受控对象与校正装置的传递函数分别为:G(s)=丄,G(s)=S0s2cs+10试设计一个GUI界面,实现如下要求:点击按钮“Kalman增益矩阵L”时,在列表框中显示系统Kalman滤波器的增益IIII.I.Irrrrrr矩阵L;点击“系统估计误差的协方差P”按钮时,列表框中显示系统估计误差的协方差P;点击“Kalman最优滤波器”按钮时,列表框中显示系统Kalman(最优)滤波器(a,b,c,d)。解:第一步:启动GUI工具箱以后,布置如图5.1所示的界面:下述界面包含一个静态文本框控件、一个可编辑文本框、一个按钮组控件、三个按钮控件、一个列表框控件。图5.1Kalman最优滤波器GUI基本界面第二步:对各控件进行属性设置,属性设置与例3.1类同,设置完成后得到图5.2界面。

F^*Lqe-figRte^ditViewLs^ckjEToolsHelp口函■]鼻呷PI毎當戲站勺硒住FE画⑥®@®®®aE画⑥®@®®®a1E1CurrentPoint[233^P巧LT]Position;1520.IS玺560,417]Tag;fi^urel图5.2图5.2Kalman最优滤波器控制界面第三步:界面的激活与回调函数的设计(见附录2)。其中激活界面如图5.3图5.3Kalman最优控制的激活界面.I.I.I.I图5.5图5.5系统估计误差协方差r图5.5图5.5系统估计误差协方差r第四步:运行。输入以知矩阵,点击界面按钮“Kalman增益矩阵L”后显示如5.4界面图5.4Kalman滤波器的增益矩阵L点击界面按钮“系统估计误差协方差P”按钮,则显示出系统估计误差协方差,如图5.5L最优观测器性能指标-Kalman増益矩阵1系统估计误差协方差Kanrrian最优滤波器001100U1818011UaV14.85650.668112.6078-A□.668112.60780.11560.49900.499010.75667受控对象与校正装置参数IIII图5.7Kanman图5.7Kanman最优滤波器之矩阵br图5.7Kanman图5.7Kanman最优滤波器之矩阵br点击界面按钮“Kanman最优滤波器”按钮,列表框中显示出最优滤波器的矩阵,由上到下分别是a,b,c,d。分别如图5.6,5.7,5.8,5.9所示。I-最优视测器性能指标-系统估计误差忻方差0D1■100□18180-1-1UA-V□-84.81-10.1341-11.560□-65.9-1066.8111.5649.3□10100□10□01壹控刑象与检正猛重卷数图5.6Kanman最优滤波器之矩阵ar-最优现测器性能指标-Kalman増益矩阵L系统估计误差协方差kanmani-SSS^I・|001100018160-1-10AV□-84.81-10.13A1-11.560Q-&S.9-1QB8.8111.5649.9010100□10001¥受控对象与校正装置卷数IIIIrrrrn最优观测器性能指标-Kalman増益矩阵1系统估计误差协方差001100□1818o-iIO11.5649.9□10100010□01□□□受控对象与校正装置参数图5.8Kanman最优滤波器之矩阵c图5.9Kanman最优滤波器之矩阵d系统的Kalman(最优)滤波器(a,b,c,d)。计算表明,用函数kalman()计算的Kalman滤波器的状态估计器Kest与用函数estim()求出的Kalman滤波器est,两者是相等的。6线性二次型Guqss最优控制的MATLAB实现考虑系统随机输入噪声与随机量测噪声的线性二次型最优控制称为线性二次型高斯(Guass。最优控制,即LQG控制。线性二次型高斯最优控制是输出反馈控制。这种即及系统受到随机因素的作用而采取的控制策略,对解决线性二次型最优控制问题,显然更具有实用性。6.1LQG最优控制的求解给定系统的状态方程与量测方程分别为:x(t)=Ax(t)+Bu(t)+Gw(t)(6-1)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)两个噪声过程均平稳且互不相关。系统的性能指标为:J=E<J0[xtQx+utRu]dt>(6-3)根据LQG问题的分离原理,LQG最优控制是两个方面问题的综合:一是二次型调节器问题。二是最优估计器问题。LQ最优控制就是二次型调节器问题。最优状态反馈控制有最优反馈矩阵式(6-4):K二R-1BtP(6-4)最优控制为式(6-5):u*(t)=-Kx(t)=-R-iBtPx(t)(6-5)以及P满足的Riccati方程式(6-6):PA+AtP-PBR-iBtP+Q=0(6-6)利用Kalman滤波理论,从状态x(t)中得到最优估计X(t),使估计误差平方和的期望值最小(最小方差迹准则滤波估计),即有式(6-7):TOC\o"1-5"\h\zJ=ExT(t)x(t)]=min(6-7)这种最优估计器为式(6-8):~~x=(A-LC)x(t)+Bu(t)+Ly(t)(6-8)上式中,L为Kalman滤波器增益,即式(6-9):L=PCtR-i(6-9)00

其中P为以下Riccati方程式(6-10)的解:0AP+PAt+GQGt-PCtR-1CP=0(6-10)000000分别计算LQ最优控制与最优估计,再将这两问题的解合在一起,就得到LQG控制的最优解。6.2LQG最优控制的MATLAB实现与示例在MATLAB工具箱里,有特别提供的函数reg()来求解LQG最优控制。函数的调用格式为:rsys=regrsys=reg(sys,K,L)其中,输入参量sys为系统的状态空间模型;K为由函数lqr()求得的最优状态反馈增益矩阵;L为函数lqe()求得的Kalman滤波器状态估计增益矩阵。例【6-1】:已知系统的状态方程如下:■-0.40■-0.40-0.016.31x=100x+0u+0w1.49.8-0.029.80y=【001!x+v6-11)二次型调节器性能指标为J=!+uJ=!+utRu)dt6-12)式中1006-13)Q=010,R=16-13)001输入噪声与量测噪声的有关参数分别为Q=1,R=1。要求:利用GUI工具箱设计00一个界面实现如下功能:•I•I.I.Irrrr试由系统状态方程求其传递函数;对原系统阶跃给定输入的仿真;试设计LQG控制器,对LQG最优控制的系统进行阶跃给定输入的仿真。解:第一步:启动GUI工具箱以后,布置如6.1图所示的界面:图6.1线性二次型Guass最优控制GUI界面上述界面包含一个坐标轴控件、一个静态文本框控件、一个可编辑文本框、一个按钮组控件、三个按钮控件、一个列表框控件。第二步:对各控件进行属性设置,设置完成后得到如6.2图界面。图6.2Guoss最优控制基本界面第三步:界面的激活与回调函数的设计(见附录)。其中激活界面如6.3图图6.3Guoss最优控制激活GUI界面第四步:运行。(1)在输入框中输入以知矩阵,点击界面按钮“传递函数”后显示如6.4图界面:图6.4Guoss最优控制运行界面由于GUI运行结果只能以数据形式输出,在列表框中显示的两行数据分别是传递函数的分子分母,因此该系统的传递函数为9.8s2-8.428s+61.74G(s)=—s3+0.06s2-0.0132s+0.098(2)利用上一小题求得的传递函数绘制系统的阶跃响应,在编辑框中输入传递函数参数,点击“原阶跃响应”按钮,程序运行后在坐标轴上绘出系统的阶跃响应曲线。(3)由系统的阶跃响应曲线图6.5可以看到原系统的阶跃响应为发散振荡,系统是不稳定的,因此用以下MATLAB程序设计LQG控制器并对其系统进行阶跃给定输入的仿真:.I.Irrrrrrclear;A二[-0.040-0.01;100;-1.49.8-0.02];B=[6.3;0;9.8];C二[001];D=[0];s1=ss(A,B,C,D);G=[1;0;0];Q=[100;010;001];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)■输;v系统参数09.8-S42861.7斗10.06-0.01320.098Guass控制的性能指标■I专递函数原阶旣响应|0Guass控制的性能指标■I专递函数原阶旣响应|03.8-8.4286174A■10.06-0.013

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论