LQR-控制器设计方法研究

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

-1-基于MATLAB的LQR控制器设计方法研究ResearchofLQRControllerDesignMethodBasedonMATLAB王晓侃冯冬青(郑州大学信息与控制研究所450001)WangXiao-kanFengDong-qing(InstituteofInformationandControl,ZhengzhouUniversity450001)中国图书分类号:TP206+.1文献标识码:B摘要:采用LQ校正、参考输入及状态观测器的设计方法来设计最优二次控制器,选取加权矩阵Q和R使控制器的性能达到最优。从介绍代数Riccati方程求解着手,利用MATLAB的强大计算功能及仿真能力,不断的调整参数得到设计结果并画出系统的输出响应曲线。很多文献介绍了基于输出反馈的PID控制系统,但其控制效果不理想,主要原因是系统的高阶次和多变量。本文采用基于状态空间设计法的LQR最优调节器,较好地兼顾了系统的鲁棒稳定性和快速性,倒立摆的实例说明了该方法的有效性。关键词:LQR控制器,MATLAB,Riccati方程,倒立单摆系统Abstract:UsingLQtoadjust,thereferenceinputandstateobservertodesignoptimalquadraticcontroller,selectedweightingmatrixQandRsothatthecontrollertoachieveoptimalperformance.BeginsfromtheintroductionalgebraRiccatiequationsolution,touseMATLABtheformidablecomputationfunctionandthesimulationability,theunceasingadjustmentparameterobtainsthedesignresultanddrawstheoutputresponsecurveofthesystem.ManyoftheliteratureonthePIDoutputfeedbackcontrolsystem,butitscontroleffectisnotsatisfactory.Themainreasonisthehigher-orderandmulti-variablesystem.Inthispaper,basedonthestatespacedesignLQRregulator,takingintoaccountingrobustnessofthesystemstabilityandspeedbetter,theinvertedpendulumexampleoftheeffectivenessofthemethod.Key-words:theLQRcontroller,MATLAB,TheRiccatiequation,InversedPendulumsystem0.概述随着计算机技术的飞速发展,控制系统的计算机辅助设计与分析得到了广泛的运用,目前已达到了相当高的水平。MATLAB是国际控制界应用最广泛的计算机辅助设计与分析工具,它集矩阵运算、数值分析、信号处理和图形显示于一体,构成了一个方便的、良好的用户环境,其强大的科学计算与可视化功能,简单易用的开放式可编程环境,使得MATLAB在控制领域的各个方面都得到了广泛应用。线性系统二次型最优控制可以使系统的某些性能达到最优,在工程上用得较为广泛,也是现代控制理论课程学习的重点和难点。但其理论性较强,且设计中运算量很大,使得我们很难掌握设计思想的精髓。如果我们能够利用MATLAB的强大计算功能及仿真能力,就可以十分轻松地得到设计结果并画出系统的输出响应曲线,这就大大提高了课程学习,分析研究的效率。本文介绍了在MATLAB下如何进行线性二次型最优控制设计的方法。这使得我们只需在计算机上输入系统的传递函数模型,就可以得到系统的最优调节器及其响应曲线。1.线性二次型最优控制器设计对于线性系统,若取状态变量和控制变量的二次型函数的积分作为性能指标,这种动态系统最优化问题称为线性系统二次型性能指标的最优控制问题,简称线性二次问题。它的最优解可以写成统一的解析表达式,而且可以导出一个简单的状态线性反馈控制律,其计算和工程实现都比较容易。MATLAB控制系统工具箱中提供了一些LQ(LinearQuardratic,线性二次型)设计工具,可以很方便地完成线性二次型最优控制器的设计。下面我们简要介绍一下有关的理论内容,然后给出一个应用实例。1.1代数Riccati方程求解一个线性定常系统的状态方程模型可以用下面的一组方程来描述:()()()()()()xtAxtButytCxtDt=+=+i设线性系统的状态方程模型(A,B,C,D)已知,如果希望这样一个系统能够满足某种最优的要求,-2-最简单的可以引入线性二次最优控制指标,即:11()()[()()()()()()]220tfTTTJXtSXtXtQtXtutRtutdttff=++∫其中Q(t)和R(t)分别是对状态变量和控制量的加权矩阵。一般情况下,假定这两个矩阵为定常矩阵(即不随时间变化),并简记Q(t)=Q,R(t)=R。线性二次型最优控制就是求出J最小时的控制量u(t),从而获得性能最优。为了达到这一目的,首先构造一个Hamilton函数:1[()()()()][()()]2TTHXtQXtutRutAXtButλ=−+++然后通过求导的方法可以求出最优控制信号u(t)为:1()()()TutRBPtXt−=−其中P(t)矩阵就是Riccati方程的解:1()()()()()TTPtPtAAPtPtBRBPtQ•−=−−+−上面的方程是微分Riccati方程,一般是多个相互耦合的非线性微分方程组,除了特殊情况下,一般不存在解析解。这就给求解最优控制信号u(t)造成了困难。因此,我们一般求解u(t)的稳态解。即令tf趋于无穷,则P(t)趋于一个常值矩阵,P(t)的一阶导数趋于零,有:10TTPAAPPBRBPQ−=−−+−上式被称为代数Riccati方程,其求解就比较容易了。并且,因为都是矩阵运算,用MATLAB实现起来也比较容易。并且,MATLAB提供了一条求解代数Riccati方程的函数care(),省去了我们手工编程的工作。其基本调用格式为:[,,,](,,,,,)XLGRRCAREABQRSE=它所求解的代数Riccati方程形式为:1()()0TTTTTAXEEXAEXBSRBXESQ−+−++−=一般缺省设置S=0,E=1,这样该方程就和原始的代数Riccati方程一致了。X是求得的代数Riccati方程的解,L是闭环状态方程参数矩阵的特征值,G是状态反馈矩阵,RR是残留矩阵的Frobenius范数。有了代数Riccati方程的解,我们就可以求出最优控制信号u(t)和系统的响应曲线了。1.2线性二次型最优控制器设计举例1.2.1分析原系统的阶跃响应使用线性二次型最优控制器进行控制系统设计和校正的最大优点就是不必根据要求的性能确定闭环极点的位置,只需要根据系统的响应曲线寻找出合适的状态变量和控制量的加权矩阵即可。因为求得的控制器是误差指标J最优意义下的控制器,所以系统的性能也是J指标意义下最优的。倒立摆控制系统是一个典型的高阶次、不稳定、多变量、非线性和强藕合控制系统。许多现代控制理论的人都将其作为研究对象,很多文献介绍了基于输出反馈的PID控制系统,但其控制效果不理想,主要原因是系统的高阶次和多变量。本文采用基于状态空间设计法的LQR最优调节器,较好地兼顾了系统的鲁棒稳定性和快速性,实例说明了该方法的有效性。[例1]某倒立单摆系统如图5—22所示,其状态方程已知。-3-222222222201000()00()()()00010()00()()()XXImlbmglImlXXIMmMmlIMmMmlIMmMmlmlbmglMmmlIMmMmlIMmMmlIMmMml⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥−++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥++++++⎢⎥=+⎢⎥⎢⎥⎢⎢⎥Φ⎢⎥⎢⎥⎢Φ⎢⎥⎢⎥⎢⎥⎢−+⎢⎥Φ⎢⎥⎣⎦⎢⎥⎢⎢⎥Φ⎣⎦++++++⎢⎥⎢⎣⎦⎣⎦iiiiiiiiu⎥⎥⎥⎥⎥1000000100XXyu⎡⎤⎢⎥⎢⎥⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥Φ⎣⎦⎣⎦⎢⎥⎢⎥Φ⎢⎥⎣⎦ii其中小车的质量为M=0.5kg,倒立单摆的质量为m=0.5kg,小车的摩擦系数为b=0.1N/m/s,端点与倒立单摆质心的距离为l=0.3m,倒立单摆的惯量为I=0.006kg*m,输入量u=F是施加在小车上的外力,四个状态变量分别是小车的坐标x,x的一阶导数,倒立单摆的垂直角度Φ,Φ的一阶导数。输出的被控量分别是小车的坐标x倒立单摆的垂直角度Φ。试根据误差指标J最优意义下最优的规则设计线性二次型最优控制器和相关的参考输入以及观测器,满足以下指标:1.输出量x和Φ的过渡过程时间小于2s。2.输出量x的上升时间小于0.5s。3.输出量Φ的超调量小于是20o(0.35rad/s)。用MATLAB(程序略)绘制系统时知道有一个右半平面的极点,因此不稳定,必须加入校正装置。此时系统的阶跃响应曲线如图所示。图1上半部分是小车坐标x的阶跃响应曲线,下半部分是倒立摆的垂直角度Φ的阶跃响应曲线。从图中可以看出它们都不稳定,无法与期望的性能指标作比较。下面加入LQ校正装置。1.2.2线性二次型最优控制器设计设计线性二次型最优控制器关键是选择加权矩阵Q和R。一般来说,Q选择的越大,系统达到稳态所需的时间越短;而同样减小R,系统达到稳态所需的时间也越短。当然还需要实际的系统允许。我们首先选择Q=C'*C,R=1,然后根据实际情况进行调节。从图2系统的阶跃响应曲线中可以看到,系统超调量基本满足要求,但一方面系统的稳态值与期望值相差很远(小车坐标的响应曲线稳态值为负值),另一方面过渡过程时间和上升时间很大,必须重新校正。方法就是加大加权矩阵Q或减小R的值。经不断仿真发现,当x=5000,y=100或R=0.0005时效果比较理想。因此,在MATLABEditor/Debugger下将上一段代码中的x和y或R改成相应的值,重新运行代码,求得的线性二次型最优状态反馈矩阵矩阵为:K=[-70.7107-37.8345105.529820.9238]可以看到,该状态反馈矩阵要明显大于上一步设计的的反馈矩阵。此时系统的阶跃响应曲线如图3图5—22倒立单摆系统示意图-4-所示。从图3中可以看到,系统响应的快速性得到了明显的改善,上升时间和过渡过程时间都满足最初设计的要求,但稳态值依旧没有得到改善。这是因为没有加入参考输入的原因。因此,我们下一步将设计系统的参考输入和状态观测器,使得系统的响应完全符合要求的性能指标。1.2.3参考输入及状态观测器设计一般说来,经过线性二次型最优化方法设计的控制器投入使用前都要设计参考输入和状态观测器,以满足实际需要。下面介绍参考输入及状态观测器的功能和设计方法。图4就是最终的系统阶跃响应曲线,两条曲线的过渡过程时间都小于2s,小车坐标x的上升时间小于0.5s倒立单摆的垂直角度φ的第一个正的峰值也小于0.35rad/s。2.结论通过对LQR设计方法中加权矩阵Q和R的选择,不仅满足了倒立摆系统的性能指标要求,而且又就加权矩阵Q和R对系统性能指标的影响进行了实验研究与分析,找出了系统的动态响应与二者之间的选取规律:当Q不变而R减小时,倒立摆系统的调整时间与超调量减小,上升时间与稳态误差增大;当R不变而Q变大时,调整时间与超调量减小,摆杆的角度变化也同时减小,但上升时间与稳态误差却同时增大。显然,当Q和R的变化与上述两种情况相反时,结论恰好相反。实验结果表明了该规律的图3加入LQ校正后系统的阶跃响应曲线应曲图2初步LQ校正后系统的阶跃响应曲线应曲图1原系统的阶跃响应曲线-5-有效性与实用性,同时也显示出了LQR控制器较好的鲁棒性与动态特性。在实际的控制系统设计中,Q和R

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功