自动控制原理实验指导书正文全_第1页
自动控制原理实验指导书正文全_第2页
自动控制原理实验指导书正文全_第3页
自动控制原理实验指导书正文全_第4页
自动控制原理实验指导书正文全_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 基于MATLAB实验平台的系统被控对象的建立与转换说明 一个控制系统主要由被控对象、检测测量装置、控制器和执行器四大部分构成。用于自控原理实验方面的被控对象可以有 用于实际生产的实际系统的真实被控对象,如进行温度控制的锅炉、进行转速控制的电机等; 用于实验研究的真实被控对象,如进行温度控制的实验用锅炉、进行转速控制的电机等; 用运算放大器等电子器件搭建的电模拟被控对象(电路板形式),它们的数学模型与真实被控对象的数学模型基本一致,而且比真实被控对象更典型,更精准。它们是实物型原理仿真被控对象。 计算机仿真的被控对象,它们是非实物型原理仿真被控对象,是以各种形式展现的被控对象的数学模型。

2、它们通过计算机屏幕展示,或是公式形式的数学算式,或是数字形式的数表、矩阵,或是图形形式的结构框图,或是动画形式的真实被控对象实物的动态图形。在自控原理实验中,极少用;用的不多;用的较多;在MATLAB软件广泛使用后,用的较多。、各有其优缺点。MATLAB软件的应用对提高控制系统的分析、设计和应用水平起着十分重要的作用。我们的实验采用的是:采用MATLAB软件平台的计算机仿真的被控对象。这里“被控对象的建立” ,指在MATLAB软件平台上怎样正确表示被控对象的数学模型。实验目的1了解MATLAB软件的基本特点和功能;2掌握线性系统被控对象传递函数数学模型在MATLAB环境下的表示方法及转换;3掌

3、握多环节串联、并联、反馈连接时整体传递函数的求取方法;4掌握在SIMULINK环境下系统结构图的形成及整体传递函数的求取方法。实验指导 一、被控对象模型的建立在线性系统理论中,一般常用的描述系统的数学模型形式有:(1)传递函数模型有理多项式分式表达式(2)传递函数模型零极点增益表达式(3)状态空间模型(系统的内部模型)这些模型之间都有着内在的联系,可以相互进行转换。1、传递函数模型有理多项式分式表达式设系统的传递函数模型为若已知系统的传递函数为:对线性定常系统,式中s的系数均为常数,且an不等于零。这时系统在MATLAB中可以方便地由分子和分母各项系数构成的两个向量唯一地确定,这两个向量常用n

4、um和den表示。num=bm,bm-1,b1,b0den=an,an-1,a1,a0注意:它们都是按s的降幂进行排列的。分子应为m项,分母应为n项,若有空缺项(系数为零的项),在相应的位置补零。然后写上传递函数模型建立函数:sys=tf(num,den)。这个传递函数便在MATLAB平台中被建立,并可以在屏幕上显示出来。举例1-1:已知系统的传递函数描述如下:在MATLAB命令窗口(Command Window)键入以下程序:>> num=12,24,0,20;>> den=2 4 6 2 2;>> sys=tf(num,den)回车后显示结果:Trans

5、fer function: 12 s3 + 24 s2 + 20-2 s4 + 4 s3 + 6 s2 + 2 s + 2同时在MATLAB中建立了这个相应的有理多项式分式形式的传递函数模型。则(1)系统的MATLAB程序为:举例1-2:已知系统的传递函数描述如下:其中,多项式相乘项,可借助多项式乘法函数conv来处理。在MATLAB命令窗口(Command Window)键入以下程序:>> num=4*conv(1,2,conv(1,6,6,1,6,6);>> den=conv(1,0,conv(1,1,conv(1,1,conv(1,1,1,3,2,5);>&

6、gt; sys=tf(num,den)回车后显示结果:Transfer function: 4 s5 + 56 s4 + 288 s3 + 672 s2 + 720 s + 288-s7 + 6 s6 + 14 s5 + 21 s4 + 24 s3 + 17 s2 + 5 s即在MATLAB中建立了这个有理多项式分式形式的传递函数模型。2相应的(2)系统的MATLAB程序为:2、传递函数模型零极点增益模型零极点增益模型为: 其中:K1为零极点增益,zi为零点,pj为极点。该模型 在MATLAB中,可用z,p,k矢量组表示,即z=z1,z2,zm;p=p1,p2,.,pn;k=K;然后在MATL

7、AB中写上零极点增益形式的传递函数模型建立函数:sys=zpk(z,p,k)。这个零极点增益模型便在MATLAB平台中被建立,并在屏幕上显示出来。举例1-3:已知系统的零极点增益模型:在MATLAB命令窗口(Command Window)键入以下程序:>> z=-3;p=-1,-2,-5;k=6;>> sys=zpk(z,p,k)回车后显示结果:Zero/pole/gain:6 (s+3)-(s+1) (s+2) (s+5)则在MATLAB中建立了这个零极点增益的模型。33、状态空间模型状态方程与输出方程的组合称为状态空间表达式,又称为动态方程:在MATLAB中建立状态

8、空间模型的程序如下:>> A=A;>> B=B;>> C=C; >> D=D;>> sys=ss(A,B,C,D)二、不同形式模型之间的相互转换不同形式之间模型转换的函数:(1)tf2zp: 多项式传递函数模型转换为零极点增益模型。格式为:z,p,k=tf2zp(num,den)(2)zp2tf: 零极点增益模型转换为多项式传递函数模型。格式为:num,den=zp2tf(z,p,k)(3)ss2tf: 状态空间模型转换为多项式传递函数模型。格式为:num,den=ss2tf(a,b,c,d)(4)tf2ss: 多项式传递函数模型转换

9、为状态空间模型。格式为:a,b,c,d=tf2ss(num,den)(4)zp2ss: 零极点增益模型转换为状态空间模型。格式为:a,b,c,d=zp2ss(z,p,k)(5)ss2zp: 状态空间模型转换为零极点增益模型。格式为:z,p,k=ss2zp(a,b,c,d)三、环节串联、并联、反馈连接时等效的整体传递函数的求取1、串联这里:在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。. G=G1*G2 G=series(G1,G2) num,den=series(num1,den1,num2,den2)举例1-4: 两环节G1、G2串联,求等效的整体传递函数G 解: 实现

10、的命令行程序之一:>> n1=2;d1=1 3;n2=7;d2=1 2 1;G1=tf(n1,d1);G2=tf(n2,d2);G=G1*G2 运行结果:Transfer function: 14-s3 + 5 s2 + 7 s + 3实现的命令行程序之二:>>n1=2;d1=1 3;n2=7;d2=1 2 1;G1=tf(n1,d1);G2=tf(n2,d2);G=series(G1,G2)运行结果:Transfer function: 14-s3 + 5 s2 + 7 s + 3实现的命令行程序之三:>>n1=2;d1=1 3;n2=7;d2=1 2 1

11、;G1=tf(n1,d1);G2=tf(n2,d2); n,d=series(n1,d1,n2,d2)运行结果:n = 0 0 0 14d = 1 5 7 3举例1-5: 四环节G1、G2、 G3、G4串联,求等效的整体传递函数G 解:实现的命令行程序:>> n1=2;d1=1 3;n4=7;d4=1 2 1;G1=tf(n1,d1);G4=tf(n2,d2); G=G1*G1*G1*G4运行结果:Transfer function: 56-s5 + 11 s4 + 46 s3 + 90 s2 + 81 s + 272、并联 结构一两环节G1(s)与G2(s)并联,则等效的整体传递

12、函数为G(s)=G1(s)+G2(s)在MATLAB中求取整体传递函数的功能,采用如下的语句或函数来实现。 G=G1+G2 G= parallel (G1,G2) num,den= parallel (num1,den1,num2,den2)举例1-6: 两环节G1、G2并联,求等效的整体传递函数G(s) 解:实现的命令行程序之一:>> n1=2;d1=1 3;n2=7;d2=1 2 1;G1=tf(n1,d1);G2=tf(n2,d2);G=G1+G2运行结果:Transfer function: 2 s2 + 11 s + 23-s3 + 5 s2 + 7 s + 3实现的命令

13、行程序之二:>> n1=2;d1=1 3;n2=7;d2=1 2 1;G1=tf(n1,d1);G2=tf(n2,d2);G=parallel(G1,G2)运行结果:Transfer function: 2 s2 + 11 s + 23-s3 + 5 s2 + 7 s + 3实现的命令行程序之三:>> n1=2;d1=1 3;n2=7;d2=1 2 1; n,d=parallel(n1,d1,n2,d2)运行结果:n = 0 2 11 23d = 1 5 7 3结构二若 则G(s)=G1(s)-G2(s) 相应的语句为G=G1-G2举例1-7:两环节G1、G2连接如上图

14、,求等效的整体传递函数G(s) 解:程序如下>> n1=2;d1=1 3;n2=7;d2=1 2 1;G1=tf(n1,d1);G2=tf(n2,d2);G=G1-G2运行结果:Transfer function: 2 s2 - 3 s - 19-s3 + 5 s2 + 7 s + 3 3反馈:feedback则 在MATLAB中采用如下的语句或函数来求取闭环传递函数 G= feedback(G1,G2,sign) num,den=feedback(num1,den1,num2,den2,sign) Gb1,Gb2= cloop (G1, G2,sign) numc,denc=cl

15、oop(num,den,sign) 这里,sign=1时采用正反馈;当sign= -1时采用负反馈;sign缺省时,默认为负反馈;这里G2;num2,den2;对应H(s);只用于单位反馈系统。现在cloop已不用。举例1-8: 已知 求闭环传递函数。两环节G1、G2分别为 解: 采用feedback实现的程序之一(负反馈):>> n1=3 100 ;d1=1 2 81;n2=2;d2=2 5;G1=tf(n1,d1);G2=tf(n2,d2);G=feedback(G1,G2,-1)运行结果: Transfer function: 6 s2 + 215 s + 500-2 s3

16、+ 9 s2 + 178 s + 605采用feedback实现的程序之二(正反馈):>> n1=3 100 ;d1=1 2 81;n2=2;d2=2 5; G1=tf(n1,d1);G2=tf(n2,d2);G=feedback(G1,G2,1) 运行结果:Transfer function: 6 s2 + 215 s + 500-2 s3 + 9 s2 + 166 s + 205采用feedback实现的程序之三(负反馈):>>num1=3 100 ;den1=1 2 81;num2=2;den2=2 5;>> num,den=feedback(num1

17、,den1,num2,den2,-1) 运行结果:num = 0 6 215 500den = 2 9 178 605举例1-9: 已知 求闭环传递函数。两环节G1、G2分别为 解 采用feedback实现的程序:>> n1=3 100 ;d1=1 2 81;G1=tf(n1,d1);G2=1;G=feedback(G1,G2,-1)运行结果:Transfer function: 3 s + 100-s2 + 5 s + 181采用cloop实现的程序之一:>> n1=3 100 ;d1=1 2 81;G1=tf(n1,d1);Gb1,Gb2=cloop(G1,1,-1

18、)>> n1=3 100 ;d1=1 2 81;G1=tf(n1,d1);bn,bd=cloop(n1,d1)运行结果:bn = 0 3 100bd = 1 5 181采用cloop实现的程序之二:>> n1=3 100 ;d1=1 2 81;G1=tf(n1,d1);Gb1,Gb2=cloop(G1,1,-1)运行结果:Transfer function: 3 s + 100-s2 + 2 s + 81 Transfer function:s2 + 5 s + 181-s2 + 2 s + 81èè以上语句对于零极点增益模型也是适用的举例1-10:

19、>>z=-3;p=-1;k=3;G1=zpk(z,p,k);z1=-4;p1=-2;k1=5;G1=zpk(z,p,k);G2=zpk(z1,p1,k1);G=G1*G2 Zero/pole/gain:15 (s+3) (s+4)- (s+1) (s+2) >> GG=G1+G2 Zero/pole/gain:8 (s+1.275) (s+3.725)- (s+1) (s+2) >> GGG=feedback(G1,G2,-1) Zero/pole/gain:0.1875 (s+3) (s+2)- (s+3.25) (s+3.5)èè以上

20、运算中往往通分运算后不约简,可以再使用minreal( )函数来实现约简,其格式为 G1= minreal(G)举例1-11:>>z=-3;p=-1;k=3;G1=zpk(z,p,k);z1=-1;p1=-2;k1=5;G1=zpk(z,p,k);G2=zpk(z1,p1,k1);G=G1*G2 Zero/pole/gain:15 (s+3) (s+1)- (s+1) (s+2) >> G1=minreal(G) Zero/pole/gain:15 (s+3)- (s+2)四、系统复杂连接时等效的整体传递函数的求取1用Siumlink软件实现传递函数的求取Siumlin

21、k软件是基于模型化图形输入的仿真软件,是MATLAB软件的拓展,在Siumlink环境下输入系统的方框图则可以方便地得到其传递函数。 系统方框图的输入在MATLAB命令窗口中输入simulink,出现一个称为Simulink Library Browser的窗口,它提供构造方框图(或其他仿真图形界面)的模块;在MATLAB主窗口对FileNewModel操作,打开模型文件窗口,在此窗口上,构造方框图。 以下面的系统为例,介绍构造方框图的各模块录入方法和设置方法。 图中, 录入各传递函数方框在Simulink Library Browser的窗口打开SimulinkContinuous子库,将T

22、ransfer Fcn模块复制到(拽到)模型文件窗口,共复制6个方框,分别放到相应位置。传递函数是积分环节的,也可以复制Integrator模块 录入相加点在Simulink Library Browser的窗口打开SimulinkMath子库,将Sum模块复制到(拽到)模型文件窗口,共复制复制到(拽到)模型文件窗口,共复制3个相加点,分别放到相应位置。 录入输入点与输出点标记打开SimulinkSources子库,将In1模块(输入点)复制到(拽到)模型文件窗口,放到相应位置。打开SimulinkSinks子库,将Out1模块(输出点)复制到(拽到)模型文件窗口,放到相应位置。 连接各方框(

23、环节)在模型文件窗口上,按箭头方向从起点到终点按住鼠标左键,连接方框。传递函数方框有信号的入点和出点标记,画图不方便时,可以修改原来的方向,右键点击方框,在出现的浮动菜单上,作如右选择,即可实现方框旋转。还可以对方框加阴影,改颜色,增加或取消修改名称注释及其位置等。其他模块也有这些功能。 双击各模块,在参数设定窗口,设置模块参数。对于方框,是确定该方框表示的具体传递函数。对于相加点,是确定图形标记是圆形还是方形,并确定有几个需要相加的输入信号及信号极性。输入点与输出点标记不用再设置。在模型文件窗口构建得到的方框图如下: 将构建的方框图保存自定文件名,保存在默认的目录下。文件名例如:cdhs 。

24、 求取方框图表示的系统的传递函数 有理多项式形式在MATLAB命令窗口(Command Window)键入以下程序: >> n,d=linmod('cdhs') 注:' '中是自定的文件名。结果:Returning transfer function modeln = 0.0000 0.0000 0.0000 0.0000 12.0000 2.4000 0.0000d = 1.0000 1.7000 16.8000 26.5000 21.6000 3.2000 0.0000 零极点增益模型在MATLAB命令窗口(Command Window)键入以下

25、程序:>> a,b,c,d=linmod2('cdhs');G=ss(a,b,c,d);G1=ZPK(G) 结果:Zero/pole/gain: 12 s (s+0.2)-s (s+0.1855) (s2 + 1.521s + 1.12) (s2 - 0.006824s + 15.41)化简>> G2=minreal(G1) 结果:Zero/pole/gain: 12 (s+0.2)-(s+0.1855) (s2 + 1.521s + 1.12) (s2 - 0.006824s + 15.41)2用信号流程图实现传递函数的求取见教科书P250P251。实

26、验内容1自确定2个传递函数,实现传递函数的录入和求取串联、并联、反馈连接时等效的整体传递函数。要求分别采用有理多项式模型和零极点增益模型两种传递函数形式。2进行2例有理多项式模型和零极点增益模型间的转换。3在Siumlink环境下实现如下系统的传递函数的求取。各环节传递函数自定。4用画信号流程图方法求取下面系统的传递函数。(按书P250P251例做)实验报告要求1写明实验目的和实验原理。实验原理中简要说明求取传递函数的途径和采用的语句或函数。2在实验过程和结果中,要求按项目写清楚自定的传递函数、画出系统方框图,从屏幕上复制程序和运行结果,复制系统的Simulink方框图,打印报告或打印粘贴在报

27、告上。不方便打印的同学,要求手动从屏幕上抄写和绘制。3简要写出实验心得和问题或建议。实验二 用MATLAB实现线性系统的时域分析实验目的1研究线性系统在典型输入信号作用下的暂态响应;2熟悉线性系统的暂态性能指标; 3研究二阶系统重要参数阻尼比对系统动态性能的影响;4熟悉在MATLAB下判断系统稳定性的方法;5熟悉在MATLAB下求取稳态误差的方法。实验指导MATLAB中有两类用于求解系统时域响应的方法。其一是利用 MATLAB 中的控制系统工具箱(Control System Toolbox)提供的函数(命令);其二是Simulink仿真,它主要用于对复杂系统进行建模和仿真。 一、用MATLA

28、B函数(命令)进行暂态响应分析1 求取线性连续系统的单位阶跃响应的函数step基本格式为:step(sys) step(num,den) step(A,B,C,D)step(sys,t) step(sys1,sys2,t) y=step(sys,t)y,t=step(sys) y,t,x=step(sys) 其中模型对象的类型如下:sys = tf(num,den) 多项式模型 sys = zpk(z,p,k) 零点极点模型 sys = ss(a,b,c,d) 状态空间模型 参数无t,表示时间向量t的范围自动设定。参数有t,表示给定时间向量t,应该有初值,时间增量,末值,如t=0:0.01:2

29、。前5种函数可以绘出阶跃响应曲线;后3种函数不绘阶跃响应曲线,而是返回响应变量y,时间向量t,以及状态变量x。 2 求取线性连续系统的单位脉冲响应的函数impulse基本格式为:impulse(sys)impulse(num,den) impulse (sys,tf)impulse (sys,t) impulse (sys1,sys2,t) y=impulse(sys,t) y,t=impulse(sys) y,t,x=impulse (sys) 3 求取线性连续系统的单位斜坡响应MATLAB没有直接求系统斜坡响应的功能函数。在求取控制系统的斜坡响应时,通常用阶跃响应函数step()求取传递函

30、数为 G (s)/s的系统的阶跃响应,则其结果就是原系统G (s)的斜坡响应。原因是,单位阶跃信号的拉氏变换为1/s ,而单位斜坡信号的拉氏变换为1/s2 。4求取线性连续系统对任意输入的响应的函数lsim其格式为y=lsim(sys,u,t) 其中,t为仿真时间,u为控制系统的任意输入信号。5暂态响应性能指标在阶跃响应曲线窗口,使用右键弹出浮动菜单,选择其中的Characteristics子菜单,有4个子项:Peak Response 峰值响应,点击将出现标峰值记点,单击此标记点可获得峰值幅值,超调量和峰值时间。Settling Time 调节时间,点击将出现调节时间标记点,单击此标记点即可

31、获得调节时间。Rise Time 上升时间,点击将出现上升时间标记点,单击此标记点即可获得上升时间。Steady State 稳定状态,若系统稳定,点击将在稳态值处出现标记点,单击此标记点即可获得稳态值;若系统不稳定,标记点不会出现。对于不同的系统响应类型,Characteristics菜单的内容并不相同。虽然不同响应曲线的特性参数不相同,但是均可以使用类似的方法从系统响应曲线中获得相应的信息。6、其它hold on 命令:可以允许在已经画曲线的图形窗口上再画新曲线;hold off命令取消该功能。figure(i)命令:打开第i个图形窗口,把曲线绘在该图形窗口。grid on命令:使图上出现

32、网格。subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,可在每个区域中分别画一个图。也可以通过主界面菜单file/new/figure打开1个新图形窗口,系统自动为其编号。7举例举例2-1:系统传递函数为,求其阶跃响应、脉冲响应、斜坡响应。解: 由3个图形窗口分别显示的程序:>> n=20,33;d=1,2,10;sys=tf(n,d);step(sys);figure(2);impulse(sys);n1=20,33;d1=1,2,10,0;sys1=tf(n1,d1);figure(3);step(sys1)运行结果: 在1个窗口

33、中的3个子图形窗口显示的程序:>> figure(1);n=20,33;d=1,2,10;sys=tf(n,d);subplot(2,2,1);impulse(sys);subplot(2,2,2);n1=20,33;d1=1,2,10,0;sys1=tf(n1,d1);step(sys1);subplot(2,2,3);step(sys)运行结果:举例2-2:系统传递函数为,求输入分别是自定义的1(t)和4*1(t)时的响应。解:2个输入和2个输出波形分别在4个子图形窗口显示的程序:>>figure(7);n=10;d=1,2,10;sys=tf(n,d);subpl

34、ot(2,2,1);t=0:0.01:10;u=1+0*t plot(t,u);subplot(2,2,3);y=lsim(sys,u,t);plot(t,y) u1=4+0*t;subplot(2,2,2);plot(t,u1);subplot(2,2,4);y1=lsim(sys,u1,t);plot(t,y1) 运行结果:2个输入和2个输出波形在1个图形窗口同时显示的程序:>> n=10;d=1,2,10;sys=tf(n,d); t=0:0.01:10;u=1+0*t;sys2=tf(1,1) ;lsim(sys2,u,t);hold on;lsim(s

35、ys,u,t);u1=4+0*t;plot(t,u1);lsim(sys,u1,t)运行结果:举例2-3:系统传递函数为,求输入分别是自定义的1(t)+3*sin(t)时的响应。解:程序如下>>n=20;d=1,2,10;sys=tf(n,d);t=0:0.001:15;u=1+sin(t);sys2=tf(1,1) ;figure(16);lsim(sys2,u,t);hold on;lsim(sys,u,t)举例2-4:系统传递函数为,求系统的阶跃响应。解:程序如下>> n=20;d=1,2,6,10;sys=tf(n,d); figure(24);step(sys

36、)二、用Simulink进行暂态响应分析1系统仿真方框图的建立方框图的建立与实验一中所述相同,不同点是不用输入点与输出点标记,输入点安置信号发生器,比如阶跃输入信号;输出点安置示波器。需要如下操作:打开SimulinkSources子库,将step模块(阶跃输入信号)复制到(拽到)模型文件窗口,放到相应位置。(或其他输入信号模块)打开SimulinkSinks子库,将scope模块(示波器)复制到(拽到)模型文件窗口,放到相应位置。输入信号模块和示波器模块都可以进行参数设置。2设置仿真控制参数打开Simulation菜单,找到Parameters选项,可打开参数设置对话框。它包括仿真时间范围的

37、选择、仿真算法的选择、仿真步长的指定及仿真精度(误差)的定义等。 3运行可选择 Simulation Start。点击示波器,在示波器窗口中可以看到响应仿真曲线。 举例2-5:系统方框图和阶跃输入下示波器显示的响应曲线如下:三、在MATLAB下判断系统稳定性 首先求得闭环传递函数,再使用MATLAB函数(命令)roots(den)解出特征方程的根,即闭环极点,再根据极点位置,判断系统是否稳定。举例2-6:判断系统 是否稳定。程序和结果:>> d=1 2 8 5 26; roots(d)ans = -1.4509 + 2.1633i -1.4509 - 2.1633i 0.4509

38、+ 1.9049i 0.4509 - 1.9049i分析判断:有2个根在s平面右半部分,系统不稳定。程序和结果:>> n=50; d=1 2 8 5 26;sys=tf(n,d) Transfer function: 50-s4 + 2 s3 + 8 s2 + 5 s + 26>> roots(sys.den1)ans = -1.4509 + 2.1633i -1.4509 - 2.1633i 0.4509 + 1.9049i 0.4509 - 1.9049i四、在MATLAB下求取稳态误差求取稳态误差终值的函数(命令)为dcgain( )调用格式为dcg=dcgain

39、(G )其中 G=s·E(s)=s·R(s)·e(s) E(s): 误差信号; R(s): 输入信号的拉氏变换; e(s):误差传递函数; 举例2-7:系统前向通道传递函数为,反馈通道传递函数为,求输入为r(t)=1(t)时的稳态误差。解:按稳态误差的理论,系统开环传递函数为 则可判断 系统为0型系统,系统的开环增益K=1。所以,在输入为r(t)=1(t)时稳态误差ess=下面用MATLAB命令来计算ess程序如下:>>n=50; d= 2 8 5 8;sys=tf(n,d); n1=4;d1=25;sys1=tf(n1,d1); sys2=1+sys

40、*sys1; sys3=tf(sys2.den,sys2.num); n4=1,0;d4=1;sys4=tf(n4,d4); n5=1;d5=1 0;r=tf(n5,d5);dcg=dcgain(sys3*sys4*r)其中n=50; d= 2 8 5 8;sys=tf(n,d); 建立 ;n1=4;d1=25;sys1=tf(n1,d1); 建立 ;sys2=1+sys*sys1; 建立 ;sys3=tf(sys2.den,sys2.num); 建立;n4=1,0;d4=1;sys4=tf(n4,d4); 建立 ;n5=1;d5=1 0;r=tf(n5,d5); 建立 输入信号sys3*sy

41、s4*r 建立 s·R(s)·e(s)dcg=dcgain(sys3*sys4*r) 计算 ess运行结果: dcg = 0.5000注:sys3=tf(sys2.den,sys2.num);中sys2.den表示传递函数sys2的分母部分,sys2.num表示传递函数sys2的分子部分。sys3=tf(sys2.den,sys2.num)的功能是sys3成为sys2的倒数。实验内容 1研究一阶系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应及性能指标。一阶系统系统具体参数自定。2研究二阶系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应及性能指标。具体参数自定。哪一

42、个参数变化及变化方案自定。典型二阶系统在阶跃输入下,阻尼比或自然振荡频率改变对某1项性能指标的影响。非典型二阶系统与典型二阶系统在阶跃输入下的响应有什么不同。3高于二阶的系统对阶跃输入、脉冲输入、斜坡输入、自定义输入的响应。具体参数自定。4自定一系统的前向通道传递函数和反馈通道传递函数,计算在r(t)=1(t)、t、0.5t2下的给定稳态误差,并对照书上稳态误差的理论进行分析。5自定一系统闭环传递函数,判断系统稳定性。实验报告要求1写明实验目的和实验原理。实验原理中简要说明得到系统暂态响应的方法和采用的语句或函数,说明求取给定稳态误差的方法及采用的语句或函数,说明判断系统稳定性方法。2在实验过

43、程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。不方便打印的同学,要求手动从屏幕上抄写和绘制。3简要写出实验心得和问题或建议。实验三 用MATLAB实现线性系统的频域分析实验目的1掌握MATLAB平台下绘制典型环节及系统开环传递函数的Bode图和Nyquis图(极坐标图)的方法;2掌握利用Bode图和Nyquis图对系统性能进行分析的理论和方法。实验指导 一、绘制Bode图和Nyquis图1Bode图绘制采用bode()函数 ,调用格式:bode(sys);bode(num,den);

44、系统自动地选择一个合适的频率范围。bode(sys,w);其中w(即)是需要人工给出频率范围,一般由语句w=logspace(a,b,n)给出。 logspace(a,b,n):表示在10a 到10b之间的 n个点,得到对数等分的w值。bode(sys,wmin,wmax);其中wmin,wmax是在命令中直接给定的频率w的区间。以上这三种格式可直接画出规范化的图形。mag,phase,=bode(sys)或m,p=bode(sys)这种格式只计算Bode图的幅值向量和相位向量,不画出图形。m为频率特性G(j )的幅值向量;p为频率特性G(j )的幅角向量,单位为角度(°)。 w为频

45、率向量,单位为弧度/秒。 在此基础上再画图,可用: subplot(211);semilogx(w,20*log10(m) %画对数幅频曲线 subplot(212);semilogx(w,p) %画对数相频曲线 bode(sys1,sys2,sysN) ;bode(sys1,sys2,sysN,w);这两种格式可在一个图形窗口同时绘多个系统的bode图。 2. Nyquist曲线的绘制采用nyquist()函数,调用格式: nyquist(sys) ; nyquist(sys,w) ;其中频率范围w由语句w=w1:w:w2确定。 nyquist(sys1,sys2,sysN) ; nyqui

46、st(sys1,sys2,sysN,w); re,im,w=nyquist(sys) ;re频率响应实部 im频率响应虚部 注:当传递函数串有积分环节时=0处会出现幅频特性为无穷大的情况,可用命令axis(),自定义图形显示范围,避开无穷大点。命令axis()改变坐标显示范围,例如axis(-1,1.5,-2,2)。二、系统分析1计算控制系统的稳定裕度采用margin( )函数可以直接求出系统的幅值裕度和相角裕度。调用格式为: Gm,Pm,Wcg,Wcp= margin(num,den) ;Gm,Pm,Wcg,Wcp= margin(A,B,C,D) ;Gm,Pm,Wcg,Wcp= margi

47、n(sys) ;Gm- 幅值裕度;Pm - 相位裕度;wcg - 幅值裕度处对应的频率c; wcp - 相位裕度处对应的频率g。 Gm,Pm,Wcg,Wcp= margin(mag ,phase,w); margin(sys)在当前图形窗口中绘制出标示系统裕度的Bode图。 2用幅值裕度和相角裕度判断闭环系统稳定性与相对稳定性3用Nyquist图判断闭环系统稳定性由Nyquist曲线包围(-1,j0)点的情况,根据Nyquist稳定判据判断闭环系统稳定性。三、举例举例3-1:振荡环节如下:,做出该环节的Bode图和Nyquist图。实现程序:>>n=16;d=1 10 16;sys

48、=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys)运行结果:举例3-2:振荡环节如下:,做出该环节的Bode图和Nyquist图。;变化,取0.05,0.1,0.2,0.5,0.7,1,2。1Bode图程序:>> wn=8;znb=0.05,0.1,0.5,0.7,2;w=logspace(0,2,10000);figure(1);n=wn2;for k=znb d=1 2*k*wn wn2;sys=tf(n,d);bode(sys,w);hold on; end运行结果:2Nyquist图程序:>> wn=8;znb

49、=0.05,0.1,0.5,0.7,2;w=logspace(0,2,10000);figure(2);n=wn2;for k=znb d=1 2*k*wn wn2;sys=tf(n,d); nyqiust(sys,w); hold on; end运行结果:举例3-3:系统开环传递函数如下:,做出各自的Bode图,并求、幅值裕度和相角裕度1Bode图程序:>> n1=20;d1=conv(1,0,0.5,1);sys1=tf(n1,d1); figure(2);bode(sys1);n2=0.23 1;d2=0.055,1;sys2=tf(n2,d2);hold on; figur

50、e(2);bode(sys2);n=4.6 20;d=conv(1,0,conv(0.055,1,0.5,1);sys=tf(n,d);hold on; figure(2); bode(sys)运行结果:2求幅值裕度和相角裕度程序(图形与数据)>> n1=20;d1=conv(1,0,0.5,1);sys1=tf(n1,d1); figure(1);margin(sys1)运行结果:>> n=4.6 20;d=conv(1,0,conv(0.055,1,0.5,1);sys=tf(n,d);hold on;figure(2); margin(sys)运行结果:3求幅值裕度和相角裕度程序和结果(数据)>> Gm,Pm,Wcg,Wcp= margin(sys1)Gm = InfPm = 17.9642Wcg = InfWcp = 6.1685>> Gm,Pm,Wcg,Wcp= margin(sys) Gm = InfPm = 50.4719Wcg = InfWcp = 8.9542举例3-4:系统开环传递函数为: 做出nyquist图,按nyquist稳定判据判断闭环系统的稳定性。程序与结果:>> n=conv(4,3 1);d=conv(1 0,2 1);sys2

温馨提示

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

评论

0/150

提交评论