利用MATLAB设计控制系统举例_第1页
利用MATLAB设计控制系统举例_第2页
利用MATLAB设计控制系统举例_第3页
利用MATLAB设计控制系统举例_第4页
利用MATLAB设计控制系统举例_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

利用MATLAB设计控制系统举例考虑倒立摆控制系统,如图5.13所示。在该例中,我们仅讨论摆和小车在图面内运动的情形。希望尽可能地保持倒立摆垂直,并控制小车的位置。例如,以步进形式使小车移动。为控制小车的位置,需建造一个I型伺服系统。安装在小车上的倒立摆被控系统没有积分器(0型系统)。因此,将位置信号y(表示小车的位置)反馈到输入端,并且在前馈通道中插入一个积分器,如图5.14所示(将该系统与5.4节讨论的系统进行比较,后者没有输入作用于小车上)。假设摆的角度和角速度很小,以致于,和。又假设M、m和l的值与5.4节讨论的系统的对应数值相同。也就是说M=2千克,m=0.1千克,l=0.5米图5.13倒立摆控制系统图5.14倒立摆系统(当被控对象不含积分器时的I型闭环伺服系统)参照5.4节(式(5.21)和(5.22)),该倒立摆控制系统的方程为 (5.118) (5.119)代入给定的数值,式(5.118)和(5.119)成为(5.120)(5.121) 定义状态变量为因此,参照式(5.120)和(5.121)和图5.14,且考虑作为系统输出的小车位置x,可得该系统的方程为(5.122)(5.123) (5.124) (5.125)式中对于I型闭环伺服系统,我们得到用式(5.114)给出的状态误差方程为(5.126)式中及由式(5.115)给出的控制输入为这里现用极点配置方法确定所需的状态反馈增益矩阵,即采用式(5.13)确定矩阵。下面首先介绍一种解析方法,然后再介绍MATLAB解法。在进一步讨论前,必须检验矩阵的秩,其中即(5.127)易知,该矩阵的秩为5。因此,由式(5.126)定义的系统是状态完全能控的,并可任意配置极点。相应由式(5.126)给出的系统的特征方程为因此为了使设计的系统获得适当的响应速度和阻尼(例如,在小车的阶跃响应中,约有4~5秒的调整时间和15%~16%的最大超调量),选择期望的闭环极点为(i=1,2,3,4,5),其中这是一组可能的期望闭环极点,也可选择其他的。因此,期望的特征方程为于是下一步求由式(5.4)给出的变换矩阵P这里Q和W分别由式(5.5)和(5.6)给出,即于是矩阵P的逆为参见式(5.13),矩阵计算为因此且1所设计系统的单位阶跃响应特性确定了状态反馈增益矩阵K和积分增益常数,小车位置的阶跃响应可通过下列状态方程求得,即(5.128)由于式(5.128)可写为 (5.129)或图5.15给出了x1(t)、x2(t)、x3(t)、x4(t)和ξ(t)(=x5(t))对t的响应曲线。图中,作用在小车上的输入r(t)为单位阶跃函数,即r(t)=1米。注意,x1=θ、x2=、x3=x和x4=。所有的初始条件均等于零。图5.15x1(t)、x2(t)、x3(t)、x4(t)和x5(t)对t的响应曲线x3(t)(=x(t))的阶跃响应正如所希望的那样,调整时间约为4.5秒,最大超调量约为11.8%。在位置曲线(x3(t)对t的曲线)上,有一点很有趣,即最初的0.6秒左右,小车向后移动,使得摆向前倾斜。然后,小车在正方向加速运动。x3(t)对t的响应曲线清晰地显示了x3()趋于r。同样地,x1()=0、x2()=0、x4()=0和=1.1。这一结果可由以下分析方法予以证实。在稳态时,由式(5.122)和(5.125)可得将其合并为由于已求出矩阵的秩为5,所以矩阵的逆存在。因此参照方程(5.127),可得因此从而由于或可得由于,故由式(5.125)可得从而因此,对r=1,可得如图5.15所示。应强调的是,在任意的设计问题中,如果响应速度和阻尼不十分满意,则必须修改期望的特征方程,并确定一个新的矩阵。必须反复进行计算机仿真,直到获得满意的结果为止。2用MATLAB确定状态反馈增益矩阵和积分增益常数MATLABProgram5.10可用于设计倒立摆控制系统。注意,在程序中,用符号A1、B1和KK分别表示、和,即MATLABProgram5.10%-----Designofaninvertedpendulumcontrolsystem------%*****InthisprogramweuseAckermann’sformulafor%poleplacement*****%*****Thisprogramdeterminesthestatefeedbackgainmatrix%K=[k1k2k3k4]andintegralgainconstantKI*****%*****EntermatricesA,B,C,andD*****A=[0 1 0 0;20.601 0 0 0;0 0 0 1;-0.4905 0 0 0];B=[0;-1;0;0.5];C=[0010];D=[0];%*****EntermatricesA1andB1*****A1=[Azeros(4,1);-C0];B1=[B;0];%*****DefinethecontrollabilitymatrixQ****Q=[B1A1*B1A1^2*B1A1^3*B1A1^4*B1];%****ChecktherankofmatrixQ*****rank(Q)ans=5%****SincetherankofQis5,thesystemiscompletely%statecontrollable.Hence,arbitrarypoleplacementis%possible*****%****Enterthedesiredcharacteristicpolynomial,which%canbeobtainedbydefiningthefollowingmatrixJand%enteringstatementpoly(J)*****J=[-1+sqrt(3)*i 0 0 0 0; 0 -1-sqrt(3)*i 0 0 0; 0 0-5 0 0; 0 0 0 -5 -5; 0 0 0 0 -5];JJ=poly(J)JJ=1.000017.0000109.0000335.0000550.0000500.0000%****EntercharacteristicpolynomialPhi*****Phi=polyvalm(poly(J),A1);%*****StatefeedbackgainmatrixKandintegralgainconstant%KIcanbedeterminedfrom*****KK=[0 0 0 0 1]*(inv(Q))*PhiKK=-157.6336-35.3733-56.0652-36.746650.9684k1=KK(1),k2=KK(2),k3=KK(3),k4=KK(4),KI=-KK(5)k1=-157.6336k2=-35.3733k3=-56.0652k4=-36.7466KI=-50.9684 3所设计系统的单位阶跃响应特性 一旦确定了反馈增益矩阵K和积分增益常数,小车的位置对阶跃的响应就可通过求解式(5.129)求得,现将其重写为 (5.130)该系统的输出为x3(t),即 (5.131)将由式(5.130)和(5.131)给出的系统矩阵(状态矩阵)、控制矩阵、输出矩阵及直接传输矩阵分别记为AA、BB、CC和DD。MATLABProgram5.11可用于给出所设计系统的阶跃响应曲线。注意,为了求得对单位阶跃的响应,需输入命令图5.16给出了x1、x2、x3(=输出y)、x4对t,以及x5(=ξ)对t的响应曲线(在图5.15中,这些响应曲线均表示在同一个图上)。MATLABProgram5.11%------Stepresponseofthedesignedsystem------%****Thefollowingprogramistoobtainstepresponse%oftheinvertedpendulumsystemjustdesigned*****%*****Enternecessarymatrices*****A=[0100;20.601000;0001;-0.4905000];B=[0;-1;0;0.5];C=[0010];D=[0];K=[-157.6336-35.3733-56.0652-36.7466];KI=-50.9684;AA=[A-B*KB*KI;-C0];BB=[0;0;0;0;1];CC=[C0];DD=[0];%****Next,enterthefollowingcommand****t=0:0.02:6;[y,x,t]=step(AA,BB,CC,DD,1,t);plot(t,x)gridtitle(‘ResponseCurvesx1,x2,x3,x4,x5versust’)xlabel(‘tSec’)ylabel(‘x1,x2,x3,x4,x5’)text(1.3,0.04,’x1’)text(1.5,-0.34,’x2’)text(1.5,0.44,’x3’)text(2.33,0.26,’x4’)text(1.2,1.3,’x5’)%*****TheaboveresponsecurveswerepresentedinFigure5.15*****%*****Toobtainresponsecurvesx1versust,x2versust,%x3versust,x4versust,andx5versust,separately,enter%thefollowingcommand*****x1=[1 0 0 0 0]*x’;x2=[0 1 0 0 0]*x’;x3=[0 0 1 0 0]*x’;x4=[0 0 0 1 0]*x’;x5=[0 0 0 0 1]*x’;subplot(3,2,1);plot(t,x1);gridtitle(‘x1versust’)xlabel(‘tSec’)ylabel(‘x1’)subplot(3,2,2);plot(t,x2);gridtitle(‘x2versust’)xlabel(‘tSec’)ylabel(‘x2’)subplot(3,2,3);plot(t

温馨提示

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

评论

0/150

提交评论