自动控制原理试验指导书newb_第1页
自动控制原理试验指导书newb_第2页
自动控制原理试验指导书newb_第3页
自动控制原理试验指导书newb_第4页
自动控制原理试验指导书newb_第5页
免费预览已结束,剩余58页可下载查看

付费下载

下载本文档

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

文档简介

1、自动控制原理实验指导目录实验一控制系统的数学模型.1实验二典型环节的模拟方法和动态特性 .10实验三控制系统的时域分析 .11实验四控制系统的根轨迹分析 22实验五控制系统的频域分析28实验六串联校正环节的设计 36实验七离散控制系统分析39实验一控制系统的数学模型实验目的1、了解MATLAB件的基本特点和功能;2、掌握用MATLAB创建各种控制系统模型;3、掌握多环节串联、并联、反馈连接时整体传递函数的求取方法。、实验原理(一) 用MATLA建立传递函数模型1 多项式模型线性系统的传递函数模型可一般地表示为:G(s)bismb?sna1sn m (1)an 1 s an19将系统的分子和分母

2、多项式的系数按降幕的方式以向量的形式输入给两个变量num和den,就可以轻易地将传递函数模型输入到MATLAB境中。命令格式为:(2)(3)num b1,b2, ,bm,bm 1;den 1,a1,a2,4.1,a.;在MATLAB控制系统工具箱中,定义了 tf() 函数,它可由传递函数分子分母给出的 变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加方便。该函数的调用格式为:G= tf(num , den);例1-1一个简单的传递函数模型G(s)可以由下面的命令输入到s 5>> num=1, 5;den=1 , 2, 3, 4, 5;G=tf(num , den)运行

3、结果:Tran sfer fun ctio n:s + 5sA4 + 2sA3 + 3sA2 + 4s + 5这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量。 例1-2 一个稍微复杂一些的传递函数模型:G(s) 2 睑? (s 3s 1) (s 6)该传递函数模型可以通过下面的语句输入到MATLAB工作空间。>> num=6*1 , 5;den=conv(conv(1, 3, 1, 1, 3, 1) , 1,6);tf(nu m,de n)运行结果Tran sfer fun cti on:6 s + 30sA5 + 12 sA4 + 47 sA3 + 72 sA2

4、 + 37 s + 6其中conv()函数(标准的 MATLAB数)用来计算两个向量的卷积,多项式乘法当然 也可以用这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。2.零极点模型线性系统的传递函数还可以写成极点的形式:G(s)(5)KGain、Z和P,就可以将系统的(S Zj(S Z2) (s Zm)(s P1)(S P2) (s Pn)将系统增益、零点和极点以向量的形式输入给三个变量 零极点模型输入到 MATLAB工作空间中,命令格式为:KGa in K;(6)Z Z1; Z2; ; Zm;P P1; P2; Pn;(8)在MATLAB控制工具箱中,定义了 zpk()函数,由它

5、可通过以上三个MATLAB变量构造出零极点对象,用于简单地表述零极点模型。该函数的调用格式为:(9)G=zpk( Z,P,K)例1-3 某系统的零极点模型为:、c (s 1.9294)(s 0.0353 0.9287 j)G(s) 6一 (s 0.95671.2272 j)(s 0.04330.6412 j)该模型可以由下面的语句输入到MATLAB工作空间中。>> K=6;Z=-1.9294 ; -0.0353+0.9287j; -0.0353-0.9287j;P=-0.9567+1.2272j; -0.9567-1.2272j; 0.0433+0.6412j; 0.0433-0.

6、6412j;G=zpk(Z, P,K)运行结果:Zero/pole/ga in:6 (s+1.929) (sA2 + 0.0706s + 0.8637)(sA2 - 0.0866s + 0.413) (sA2 + 1.913s + 2.421)注意:对于单变量系统,其零极点均是用列向量来表示的,故Z、P向量中各项均用分号(;)隔开。3.反馈系统结构图模型设反馈系统结构图如图1-1所示。控制系统工具箱中提供了feedback。函数,用来求取反馈连接下总的系统模型,该函数调用格式如下:G=feedback(G1,G2,sig n);( 10)其中变量sign用来表示正反馈或负反馈结构,若sign=

7、-1表示负反馈系统的模型,若省略sign变量,则仍将表示负反馈结构。G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。图1-1反馈系统结构图例1-4 若反馈系统图5中的两个传递函数分别为:G1(s)G2(s)则反馈系统的传递函数可由下列的MATLAB命令得出>> G仁 tf(1,1,2,1); G2=tf(1,1,1);G=feedback(G1,G2) 运行结果:Tran sfer fun cti on: sA3 + 3 sA2 + 3 s + 2若采用正反馈连接结构输入命令>> G=feedback(G1,G2,1) 则得出如下结果:Tran sfer

8、 fun cti on:sA3 + 3 sA2 + 3 s例1-5若反馈系统为更复杂的结构如图1-2所示。其中Gi(s)32s 7s 24 s 24432s 10s35s50 s 24G2(s)10s 5sH(s)10.01s则闭环系统的传递函数可以由下面的MATLAB命令得出:>>G1=tf(1,7,24,24,1,10,35,50,24);G2=tf(10,5,1,0);H=tf(1,0.01,1);G_a=feedback(G1*G2,H)得到结果:Tran sfer fun ctio n:0.1 sA5 + 10.75 sA4 + 77.75 sA3 + 278.6 sA2

9、 + 361.2 s + 1200.01 sA6 + 1.1 sA5 + 20.35 sA4 + 110.5 sA3 + 325.2 sA2 + 384 s + 120在控G1。G仁 zpk(G)例1-6给定系统传递函数为:(11)G(s)6.8 s261.2s 95.232s 7.5s22 s 19.5s对应的零极点格式可由下面的命令得出>>num=6.8, 61.2, 95.2;den=1, 7.5, 22, 19.5, 0;G=tf(nu m,de n);4. 多项式模型与零极点模型的转换有了传递函数的有理分式模型之后,求取零极点模型就不是一件困难的事情了。制系统工具箱中,可

10、以由zpk()函数立即将给定的LTI对象G转换成等效的零极点对象 该函数的调用格式为:G仁zpk(G)显示结果:Zero/pole/ga in:6.8 (s+7) (s+2)s (s+1.5) (sA2 + 6s + 13)可见,在系统的零极点模型中若出现复数值, 应的共轭复数对。同样,对于给定的零极点模型,也可以直接由 型。调用格式为:则在显示时将以二阶因子的形式表示相MATLAB语句立即得出等效传递函数模G仁 tf(G)例1-7给定零极点模型:(12)G(s)(S 2)(S7)s(s 3j2)(s 1.5)可以用下面的MATLAB命令立即得出其等效的传递函数模型。输入程序的过程中要注意大小

11、写。>> Z=-2,-7;P=0,-3-2j,-3+2j,-1.5;K=6.8;G=zpk(Z,P,K);G仁 tf(G)结果显示:Tran sfer fun cti on:6.8 sA2 + 61.2 s + 95.2sA4 + 7.5 sA3 + 22 sA2 + 19.5 s5.模型的连接5.1 并联:parallel格式:num,den=parallel(num1,den1,num2,den2, out1,out2)%将并联连接的传递函数进行相加。out1和out2分别指定要作相加的输出 端编号.5.2 串联:series格式:num,den=series(num1,den

12、1,num2,den2)%将串联连接的传递函数进行相乘。5.3闭环:cloop (单位反馈)格式:nu mc,de nc=cloop( nu m,de n, sig n)%表示由传递函数表示的开环系统构成闭环系统,当sign=1时采用正反馈;当sign= -1时采用负反馈;sign缺省时,默认为负反馈。6. Simuli nk 建模方法在一些实际应用中, 如果系统的结构过于复杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的Simulink程序可以用来建立新的数学模型。Simulink是由MathWorks软件公司1990年为MATLAB供的新的控制系统模型图形输入仿真工具。它具有两 个

13、显著的功能:Simul(仿真)与Link(连接),亦即可以利用鼠标在模型窗口上“画”出所 需的控制系统模型。然后利用 SIMULINK提供的功能来对系统进行仿真或线性化分析。与MATLAB中逐行输入命令相比,这样输入更容易,分析更直观。下面简单介绍SIMULINK建>>立系统模型的基本步骤:(1)SIMULINK的启动:在MATLAB令窗口的工具栏中单击按钮下键入simulink 命令,回车后即可启动Simulink程序。启动后软件自动打开Simullink模型库窗口,如图1-3所示。这一模型库中含有许多子模型库,如Sources(输入源模块库)、Sinks(输出显示模块库)、No

14、nlinear(非线性环节)等。若想建立一个控制系统结构 框图,则应该选择 File| New 菜单中的Model选项,或选择工具栏上new Model 按钮,打开一个空白的模型编辑窗口如图1-4所示。(2)画出系统的各个模块:打开相应的子模块库,选择所需要的元素,用鼠标左键点中后TMil' !«i r厶 ivr i + «n » |llvw *i|i±ih>A *CnA inuuL 1LS<3-4iI4 f Ud L54AH. £ ibLvs lirjTaiZ :n+EF绝 3lp>d 5 4 SpiIbbsIt S

15、hutemr i:A口砒诚 ';*BBVU-7I-U li*l E応h*典B I冷町01 壯"C T :-;-bnzJtmLau#Di<WVbIiIFuixm ns t TblisJknlm.iFEJcnklS 4 豪肖RS j. IR图1-3simuli nk模型库图1-4模型编辑窗口拖到模型编辑窗口的合适位置。(3)给出各个模块参数:由于选中的各个模块只包含默认的模型参数,如默认的传递函数模型为1/(s+1)的简单格式,必须通过修改得到实际的模块参数。要修改模块的参数,可以用鼠标双击该模块图标,则会出现一个相应对话框,提示用户修改模块参数。(4)画出连接线:当所有的

16、模块都画出来之后,可以再画出模块间所需要的连线,构成完整的系统。模块间连线的画法很简单,只需要用鼠标点按起始模块的输出端(三角符号),再拖动鼠标,到终止模块的输入端释放鼠标键,系统会自动地在两个模块间画出带箭头的连线。若需要从连线中引出节点,可在鼠标点击起始节点时按住Ctrl键,再将鼠标拖动到目的模块。(5)指定输入和输出端子:在Simulink下允许有两类输入输出信号,第一类是仿真信号,可从source(输入源模块库)图标中取出相应的输入信号端子,从Sink(输出显示模块库)图标中取出相应输出端子即可。第二类是要提取系统线性模型,则需打开Connection(连接模块库)图标,从中选取相应的

17、输入输出端子。例1-8 典型二阶系统的结构图如图1-5所示。用SIMULINK对系统进行仿真分析。图1-5 典型二阶系统结构图按前面步骤,启动simuli nk并打开一个空白的模型编辑窗口。(1)画出所需模块,并给出正确的参数:在sources子模块库中选中阶跃输入(step )图标,将其拖入编辑窗口,并用鼠 标左键双击该图标,打开参数设定的对话框,将参数step time(阶跃时刻)设为0。在Math(数学)子模块库中选中加法器(sum)图标,拖到编辑窗口中,并双击该 图标将参数List of signs(符号列表)设为|+-(表示输入为正,反馈为负)。在continu ous(连续)子模块

18、库中、选积分器(In tegrator )和传递函数(Transfer Fcn)图标拖到编辑窗口中,并将传递函数分子( Numerator)改为900,分母 (Denominator )改为1, 9。在sinks(输出)子模块库中选择scope(示波器)和Out1(输出端口模块)图标并将 之拖到编辑窗口中。(3) 将画出的所有模块按图1-6用鼠标连接起来,构成一个原系统的框图描述如图10所示。(4)选择仿真算法和仿真控制参数,启动仿真过程。在编辑窗口中点击Simulatio n|Simulation parameters菜单,会出现一个参数对话框,在solver模板中设置响应的仿真范围Star

19、tTime(开始时间)和StopTime(终止时间),仿真步长范围 Maxi num step size(最大步长)和Mi ninum step size(最小步长)。 对于本例,StopTime可设置为2。最后点击 Simulation|Start菜单或点击相应的热键启动仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果 如图1-7所示。在命令窗口中键入 whos命令,会发现工作空间中增加了两个变量 tout和yout ,这是因为Simulink中的Outl模块自动将结果写到了 MATLAB的工作空间中。利用MATLAB命令plot(tout,yout),可将结果绘制出来,

20、如图1-8所示。比较1-7和1-8,可以发现这两种输出结果是完全一致的。图1-6 二阶系统的simulink实现图1-7仿真结果示波器显示图1-8 MATLAB命令得出的系统响应曲线三、实验内容15s 31.系统的传递函数为:G ss 1 s 5 s 15写出零极点模型,并转换为多项式传递函数模型;2 系统结构图如下所示,求其多项式传递函数模型u什)亠105s 7y(t)亠s s 2s系统结构图如下所示,求其多项式传递函数模型 4s2 2s 5yw u(t)10s2 2s1y(t)存5s 7d ks 4s 2s 54 系统结构图如下所示,求其多项式传递函数模型5.用Matlab产生下列系统的传

21、递函数的多项式传递函数模型、零极点模型。s4 3s3 2 s2 s 1G(s) 5432s5 4s4 3s3 2 s2 3s 2四、实验报告要求1 写明实验目的 和实验原理。实验原理中简要说明求取传递函数的途径和采用的语 句或函数。2 在实验过程和结 果中,要求按项目写清楚自定的传递函数,从屏幕上复制程序和 运行结果,打印报告或打印粘贴在报告上。不方便打印的同学,要求手动从屏幕上抄写和 绘制。3 .简要写出 实验心得和问题或建议。sgma=0.25;i=0;for wn=10:20:50;n um=w nA2;de n=1,2*sgma*w n,wn A2;sys=tf( num, den);

22、 i=i+1;step(sys,2); hold on ,grid;end hold title( lab1 = lab2= lab3=off'wn 士 ?士 ?小 3 卩?x ? io |?)u ?''wn=10'text(0.35,1.4,lab1),'wn=30'text(0.12,1.3,lab2),'wn=50'text(0.05,1.2,lab3),实验二典型环节的模拟方法及动态特性一、实验目的通过MATLAB控制系统工具箱和 SIMULINK仿真工具箱研究典型环节的数学模型的 搭建方法和其动态特性、实验原理1典型环节

23、:如比例,积分,微分,惯性,振荡环节,不稳定环节的传递函数(补充:单纯的微分环节是不存在的,一般是微分加惯性环节)2.单位阶跃响应:step( num,de n).3利用SIMULINK仿真工具搭建系统数学模型,观察响应曲线,结果输出到MATLAB状态空间。、实验内容1. 分别构造上述6种典型环节的传递函数,求其单位阶跃响应,对比有何不同。2. 利用SIMULINK搭建如下系统的数学模型,观察其单位阶跃响应。电路图如下,R=14欧,L=2亨,C=032法,t=0时刻接入1V的电压,求vo(t)的值与t的关系曲线。t=0Vo(t) Vs=1V四、实验报告要求1.针对内容一记录单位阶跃响应并加以分

24、析对比各环节的特性,要求各幅图都要画在 同一界面内,便于比较。2.针对内容二记录所搭建的 SIMULINK 仿真模型及响应曲线, 说明其所代表的系统类 型的阶跃响应特性。 .实验三 控制系统的时域分析实验目的学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系 统的动态特性实验原理1. 线性系统稳定性分析线性系统稳定的充要条件是系统的特征根均位于S 平面的左半部分。系统的零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。( 1)直接求特征多项式的根MATLAB函数roots()可以直接求出方程p=

25、0在复设 p 为特征多项式的系数向量,则 数范围内的解 v, 该函数的调用格式为:v=roots(p)(13)例 3-1 已知系统的特征多项式为:5 3 2x 3x 2x x 1 特征方程的解可由下面的MATLAB命令得出。>> p=1,0,3,2,1,1;v=roots(p)结果显示:v =0.3202 + 1.7042i0.3202 - 1.7042i-0.72090.0402 + 0.6780i0.0402 - 0.6780i利用多项式求根函数 roots(), 可以很方便的求出系统的零点和极点,然后根据零极 点分析系统稳定性和其它性能。(2) 由根创建多项式如果已知多项式的

26、因式分解式或特征根,可由MATLAB函数poly()直接得出特征多项式系数向量,其调用格式为:p=poly(v)(14)如上例中:v=0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i; 0.0402-0.6780i;>> p=poly(v)结果显示P =1.0000 -0.00003.00002.00001.00001.0000由此可见,函数roots()与函数poly()是互为逆运算的。(3) 多项式求值在MATLAB中通过函数polyval()可以求得多项式在给定点的值,该函数的调用格式为:polyval(p,v)(15)

27、对于上例中的p值,求取多项式在 x点的值,可输入如下命令:>> p=1,0,3,2,1,1;x=1polyval(p,x)结果显示ans =8(4) 部分分式展开考虑下列传递函数:M (s)numb0sn b1sn 1bnN(s)denaoSna1sn 1an式中a。0,但是ai和bj中某些量可能为零。MATLAB函数可将M(s)展开成部分分式,直接求出展开式中的留数、极点和余项。N(s)该函数的调用格式为:(16)则M(s)的部分分式展开由下式给出:N(s)M (s)r(1)N(s) s p(1) 式中 p(1) P1, P(2)P2,r(1) r1 , r(2)。,r(n)例3

28、-2设传递函数为:注过k(s)s p(2) s p(n)p(n)Pn,为极点,4为各极点的留数,k(s)为余项。r, p, kresidue(num,den)小 32G(s)2s 5s 3s 6s 6s 11s 6该传递函数的部分分式展开由以下命令获得: >> num=2,5,3,6;den=1,6,11,6;r,p,k=residue( nu m,de n) 命令窗口中显示如下结果r=p=k=-6.0000-3.00002-4.0000-2.00003.0000-1.0000中留数为列向量r,极点为列向量p,余项为行向量k。由此可得出部分分式展开式:G(s)该函数也可以逆向调用,

29、把部分分式展开转变回多项式之比的形式,命令格式N(s)为:nu m,de n=residue(r,p,k)(17)对上例有:>> nu m,de n=residue(r,p,k)结果显示num=2.0000 5.0000 3.0000 6.0000den=1.0000 6.0000 11.0000 6.0000应当指出,如果 p(j)=p(j+1)=p(j+m-1),则极点p(j)是一个m重极点。在这种情21况下,部分分式展开式将包括下列诸项:r(j)s p(j)r(j 1)s p(j) 2r( j m 1)p(j)例3-3设传递函数为:G(s)s22s 3(s 1)3S2 2s

30、3s3 3s2 3s 1则部分分式展开由以下命令获得:>> v=-1,-1,-1nu m=0,1,2,3;den=poly(v);r,p,k=residue( nu m,de n)r=1.0000 0.00002.0000P=-1.0000 -1.0000-1.0000k=其中由poly()命令将分母化为标准降幕排列多项式系数向量den, k=为空矩阵。由上可得展开式为:G(s)0(s 1)22(s 1)3(5) 由传递函数求零点和极点在MATLABS制系统工具箱中,给出了由传递函数对象 G求出系统零点和极点的函数, 其调用格式分别为:Z=tzero(G)(18)P=G.P1(19

31、)和大括注意:式19中要求的G必须是零极点模型对象,且出现了矩阵的点运算 号訂表示的矩阵元素。例3-4已知传递函数为:、6.8s261.2s 95.2G(s) 3s 7.5s22s19.5s输入如下命令:num=6.8,61.2,95.2;den=1,7.5,22,19.5,0;G=tf(nu m,de n);G仁 zpk(G);Z=tzero(G)P=G1.P1结果显示Z =-7 -2-3.0000 + 2.0000i-3.0000 - 2.0000i -1.5000其结果与例8完全一致。(6) 零极点分布图在MATLAB,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的 稳

32、定性,该函数调用格式为:pzmap (nu m,de n)(20)例3-5给定传递函数:、3s4 2s3 5s2 4s 6G(s) 43s5 3s44 s32 s2 7s 2利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图3-1所示。>> num=3,2,5,4,6;den=1,3,4,2,7,2;pzmap( nu m,de n)title( 1 Pole-Zero Map 1)% 图形标题。K* -1.TT-1JSn *11I ®2 IPJh4图3-1 MATLAB函数零、极点分布图2.系统动态特性分析(1) 时域响应解析算法部分分式展开法用拉氏变

33、换法求系统的单位阶跃响应,可直接得出输出c(t)随时间t变化的规律,对于高阶系统,输出的拉氏变换象函数为:1num 1C(s) G(s)( 21sden s对函数c(s)进行部分分式展开,我们可以用num,den,0来表示c(s)的分子和分母。例3-6给定系统的传递函数:23G(s)32s 7s 24s 24432s 10s35s50s 24用以下命令对.g©进行部分分式展开。s>> num=1,7,24,24den=1,10,35,50,24r,p,k=residue( nu m,de n, 0)输出结果为r=-1.00002.0000-1.0000-1.00001.0

34、000P=-4.0000-3.0000-2.0000-1.00000k=输出函数c(s)为:12111C(s) 2丄丄 丄0s4s3s2s1s拉氏变换得:c(t)4t3t2te 2e e(2) 单位阶跃响应的求法控制系统工具箱中给出了一个函数step()来直接求取线性系统的阶跃响应,如果已55知传递函数为:G(s)num den则该函数可有以下几种调用格式:(22)(23)step (nu m,de n)step (nu m,de n,t)或step(G)(24)step(G,t)(25)该函数将绘制出系统在单位阶跃输入条件下的动态响应图,同时给出稳态值。对于式23和25,t为图像显示的时间长

35、度,是用户指定的时间向量。式22和24的显示时间由系统根据输出曲线的形状自行设定。如果需要将输出结果返回到MATLABT作空间中,则采用以下调用格式:c=step(G)(26)此时,屏上不会显示响应曲线,必须利用plot()命令去查看响应曲线。plot可以根据两个或多个给定的向量绘制二维图形,详细介绍可以查阅后面的章节。例3-7已知传递函数为:G(s)25s1 2 4s 25利用以下MATLAB令可得阶跃响应曲线如图3-2所示。1_1血国即引和的筑Of CS>2&l$s8-25)图3-2 MATLAB绘制的响应曲线>> nu m=0,0,25;den=1,4,25;s

36、tep( nu m,de n)grid%绘制网格线。title(1Unit-Step Response of G(s)=25/(sA2+4s+25)1) % 图像标题我们还可以用下面的语句来得出阶跃响应曲线 坐标(时间)和纵坐标(幅值) 。按住鼠标左键在曲线上移动,可以找到曲线幅值最大的 一点即曲线最大峰值, 此时小方框中显示的时间就是此二阶系统的峰值时间, 根据观 察到的稳态值和峰值可以计算出系统的超调量。 系统的上升时间和稳态响应时间可以依此 类推。这种方法简单易用,但同时应注意它不适用于用 plot() 命令画出的图形。>> G=tf(0,0,25,1,4,25); t=0:

37、0.1:5;c=step(G,t);plot(t,c)Css=dcga in(G)系统显示的图形类似于上一个例子,Css=从0到5每隔0.1取一个值。动态响应的幅值赋给变量c绘二维图形,横坐标取 t,纵坐标取c。 求取稳态值。在命令窗口中显示了如下结果另一种比较常用的方法就是用编程方式求取时域响应的各项性能指标。 与上一段介绍 的游动鼠标法相比, 编程方法稍微复杂, 但通过下面的学习, 读者可以掌握一定的编程技 巧,能够将控制原理知识和编程方法相结合, 自己编写一些程序, 获取一些较为复杂的性 能指标。通过前面的学习,我们已经可以用阶跃响应函数 step( ) 获得系统输出量,若将输出 量返回

38、到变量 y 中,可以调用如下格式(27)t ,对返回的这一对变量y和t的值进行计y,t=step(G) 该函数还同时返回了自动生成的时间变量 算,可以得到时域性能指标。 峰值时间 (timetopeak) 可由以下命令获得:(28)(29)Y和k中。然后在Y,k=max(y); timetopeak=t(k) 应用取最大值函数 max() 求出 y 的峰值及相应的时间,并存于变量 变量 t 中取出峰值时间,并将它赋给变量 timetopeak 。 最大 ( 百分比 ) 超调量 (percentovershoot) 可由以下命令得到: C=dcgain(G);Y,k=max(y);(30)per

39、centovershoot=100*(Y-C)/C(31)dcgai n()函数用于求取系统的终值,将终值赋给变量C,然后依据超调量的定义,由Y和C计算出百分比超调量。上升时间(risetime) 可利用MATLAB控制语句编制 M文件来获得。首先简单介 绍一下循环语句 while 的使用。while 循环语句的一般格式为:while< 循环判断语句 >循环体end其中 , 循环判断语句为某种形式的逻辑判断表达式。 当表达式的逻辑值为真时,就执行循环体内的语句;当表达式的逻辑值为假时,就退 出当前的循环体。如果循环判断语句为矩阵时,当且仅当所有的矩阵元素非零时,逻辑表达式的值为真。

40、 为避免循环语句陷入死循环, 在语句内必须有可以自动修改循环控制变量 的命令。要求出上升时间,可以用 while 语句编写以下程序得到:C=dcgain(G);n=1;while y( n)<Cn=n+1;endrisetime=t (n)在阶跃输入条件下,y的值由零逐渐增大,当以上循环满足y=C时,退出循环,此时对应的时刻,即为上升时间。对于输出无超调的系统响应,上升时间定义为输出从稳态值的10%上升到90%所需时间,则计算程序如下:C=dcgai n( G);n=1;while y( n)<0.1*Cn=n+1;endm=1;while y( n)<0.9*Cm=m+1;

41、endrisetime=t(m)-t( n)调节时间(setllingtime)可由while语句编程得到:C=dcgai n( G);i=le ngth(t);while(y(i)>0.98*C)&(y(i)<1.02*C)i=i-1;endsetlli ngtime=t(i)用向量长度函数length()可求得t序列的长度,将其设定为变量i的上限值。例3-8已知二阶系统传递函数为:G(s)3(s 1 3i)(s 13i)利用下面的stepanalysis.m程序可得到阶跃响应如图15及性能指标数据。>> G=zpk( ,-1+3*i,-1-3*i ,3);%

42、计算最大峰值时间和它对应的超调量。C=dcgai n(G)y,t=step(G);plot(t,y)gridY,k=max(y);timetopeak=t(k)perce ntovershoot=100*(Y-C)/C%计算上升时间。n=1;while y( n)<Cn=n+1;endrisetime=t (n)%计算稳态响应时间。i=le ngth(t);while(y(i)>0.98*C)&(y(i)<1.02*C)i=i-1;endsetlli ngtime=t(i)运行后的响应图如图 15,命令窗口中显示的结果为C =timetopeak =0.30001.0

43、491perce ntovershoot =risetime =35.09140.6626setlli ngtime = 3.53370苦I0J5IIU.liJ 1O.OE图15二阶系统阶跃响应实验内容1.系统传函为G s4323s4 2s3 5s2 4s 65432s 3s 4s 2s 7s 2试判断其稳定性。2.二阶系统G s10_2s2 2s 101)编写程序,观察并记录单位阶跃响应曲线实际值理论值峰值Cmax稳态值C()峰值时间tp过渡时间ts(=5%)(=2%)上升时间tr超调量 %2)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:2二阶系统的典型传递函数为- n,s 2

44、n s n1 )当3 n=6rad/s,E分别为0.2,0.4,0.6,0.8,1.0,2.0时的单位阶跃响应曲线;2 )当三=0.7, 3 n分别为2, 4, 6, 8, 10, 12rad/s时的单位阶跃响应曲线。四.实验报告要求:a)完成上述各题b)分析和Wn对系统阶跃响应的影响c) 分析响应曲线的稳态值与系统模型的关系实验四控制系统的根轨迹分析实验目的1利用计算机完成控制系统的根轨迹作图2.了解控制系统根轨迹图的一般规律3利用根轨迹图进行系统分析、实验原理1.禾U用MATLAB制系统根轨迹假设闭环系统中的开环传递函数可以表示为:. m 1bsn 1a1smsGk(s) K-n-san

45、1sbm K num andenKG°(s)则闭环特征方程为:i Kum oden特征方程的根随参数的变化而变化,即为闭环根轨迹。控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹,它的调用格式有以下几种:或者rlocus(num , den)rlocus (numrlocus(G),den, K)(32)(33)(34)rlocus(G, K)(35)以上给定命令可以在屏幕上画出根轨迹图,其中G为开环系统G0(s)的对象模型,K为用户自己选择的增益向量。如果用户不给出K向量,则该命令函数会自动选择 K向量。如果在函数调用中需要返回参数,则调用格式将引入左端变量

46、。如R, K=rlocus(G)(36)此时屏幕上不显示图形,而生成变量R和KoR为根轨迹各分支线上的点构成的复数矩阵,K向量的每一个元素对应于R矩阵中的一行。若需要画出根轨迹,则需要采用以下命令:plot(R , 11)(37)plot()函数里引号内的部分用于选择所绘制曲线的类型,详细内容见表1。控制系统工具箱中还有一个rlocfi nd()函数,该函数允许用户求取根轨迹上指定点处的开环增益值,并将该增益下所有的闭环极点显示出来。这个函数的调用格式为:K , P=rlocfind(G)(38)这个函数运行后,图形窗口中会出现要求用户使用鼠标定位的提示,用户可以用鼠标左键点击所关心的根轨迹上

47、的点。这样将返回一个 K变量,该变量为所选择点对应的开环增益,同时返回的P变量则为该增益下所有的闭环极点位置。此外,该函数还将自动地将该增益下所有的闭环极点直接在根轨迹曲线上显示出来。例4-1 已知系统的开环传递函数模型为:GgKs(s 1)(s 2)KGo (s)利用下面的MATLAB命令可容易地验证出系统的根轨迹如图4-1所示。>> G=tf(1,co nv(1,1,1,2),0); rlocus(G);gridtitle( 1 Root_Locus Plot of G(s)=K/s(s+1)(s+2)1)xlabel( 1 Real Axis 1)%给图形中的横坐标命名。yl

48、abel( 11mag Axis 1)%给图形中的纵坐标命名。K,P=rlocfi nd(G)用鼠标点击根轨迹上与虚轴相交的点,在命令窗口中可发现如下结果select_poi nt=0.0000+1.3921iK=5.8142P=-2.29830 -0.0085+1.3961i-0.0085-1.3961iH14 AJdt图4-1 系统的根轨迹所以,要想使此闭环系统稳定,其增益范围应为0<K<5.81。参数根轨迹反映了闭环根与开环增益K的关系。我们可以编写下面的程序,通过K的变化,观察对应根处阶跃响应的变化。考虑K=0.1,0.2,1,2,5,这些增益下闭环系统的阶跃响应曲线。可由

49、以下MATLAB令得到。>> hold off;%擦掉图形窗口中原有的曲线。t=0:0.2:15;Y=;for K=0.1:0.1:1,2:5GK=feedback(K*G,1);y=step(GK,t);Y=Y,y;endplot(t,Y)对于for循环语句,循环次数由K给出。系统画出的图形如图 4-2所示。可以看出,当K的值增加时,一对主导极点起作用,且响应速度变快。一旦K接近临界K值,振荡加剧,性能变坏。图4-2 不同K值下的阶跃响应曲线2. MATLAB绘图的基本知识通过以上实例的应用,我们已初步尝试了MATLAB勺绘图功能。MATLA唄有丰富的获取图形输出的程序集。我们已

50、用命令 plot()产生线性x-y图形(用命令loglog、 semilogx、semilogy或polar取代命令plot,可以产生对数坐标图和极坐标图)。所有这些命令的应用方式都是相似的,它们只是在如何给坐标轴进行分度和如何显示数据上有所 差别。(1) 二维图形绘制如果用户将X和Y轴的两组数据分别在向量x和y中存储,且它们的长度相同,贝愉令plot(x,y)(39)将画出y值相对于x值的关系图。例4-2 如果想绘制出一个周期内的正弦曲线,则首先应该用 t=0:0.01:2*pi( pi是系统自定义的常数,可用help命令显示其定义)命令来产生自变量t ;然后由命令y=sin(t) 对t向量

51、求出正弦向量 y,这样就可以调用plot(t,y)来绘制出所需的正弦曲线,如图4-3所示。(2) 一幅图上画多条曲线利用具有多个输入变量的plot()命令,可以在一个绘图窗口上同时绘制多条曲线,命令格式为:plot(x1 , Y1, x2, Y2,,xn, Yn)(40)x1、Y1、x2、Y2等一系列变量是一些向量对,每一个x-y对都可以用图解表示出来,因而可以在一幅图上画出多条曲线。多重变量的优点是它允许不同长度的向量在同一幅图上显示出来。每一对向量采用不同的线型以示区别。另外,在一幅图上叠画一条以上的曲线时,也可以利用hold命令。hold命令可以保持当前的图形,并且防止删除和修改比例尺。

52、因此,后来画出的那条曲线将会重叠在原曲线图上。当再次输入命令hold,会使当前的图形复原。也可以用带参数的hold命令一一hold on 和hold off 来启动或关闭图形保持。(3) 图形的线型和颜色为了区分多幅图形的重叠表示,MATLAB提供了一些绘图选项,可以用不同的线型或颜色来区分多条曲线,常用选项见下表4-1表4-1 MATLAB绘图命令的多种选项选项意义选项意义/ /实线! !短划线/ ” /虚线! !点划线/ /r红色/ * /用星号绘制各个数据点'b'蓝色! !o用圆圈绘制各个数据点/ /g绿色! !用圆点绘制各个数据点/ /y黄色'X'用叉号绘制各个数据点表4-1中绘出的各个选项有一些可以并列使用,能够对一条曲线的线型和颜色同时作 出规定。例如-g '表示绿色的短划线。带有选项的曲线绘制命令的调用格式为:plot(X1 , Y1,S1,X2,Y2,S2,)(41)加进网络线、图形标题、 x轴和y轴标记一旦在屏幕上显示出图形,就可以依次输入以下相应的命令将网络格线、图形标题、 x、y轴标记叠加在图形上。命令格式如下:grid(网络线)(42)title('图形标题)(43)xlabel (' x 轴标记)(44)ylabel (' y

温馨提示

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

最新文档

评论

0/150

提交评论