13级自动化《自动控制原理》实验指导书_第1页
13级自动化《自动控制原理》实验指导书_第2页
13级自动化《自动控制原理》实验指导书_第3页
13级自动化《自动控制原理》实验指导书_第4页
13级自动化《自动控制原理》实验指导书_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、1实验一实验一 初步认识初步认识 MATLAB 和控制系统仿真和控制系统仿真一、实验目的一、实验目的1熟悉 MATLAB 桌面和命令窗口,掌握 MATLAB 仿真软件的使用方法。2掌握控制系统数学模型的多种描述方法及其仿真实现和互相转换。3熟悉控制系统仿真常用的 MATLAB 函数。二、基础知识及二、基础知识及 MATLABMATLAB 函数函数Matlab 是一个功能强大的数值计算、符号运算工具。我们可以很方便地处理线性代数中的矩阵计算,方程组的求解,微积分运算,多项式运算,偏微分方程求解,统计与优化等问题。MATLAB 语言以向量和矩阵为基本的数据单元, 包括流程控制语句(顺序、选择、循环

2、、条件、转移和暂停等),大量的运算符,丰富的函数,多种数据结构,输入输出以及面向对象编程。这些既可以满足简单问题的计算,也适合于开发复杂的大型程序。MATLAB 不仅仅是一套打好包的函数库,同时也是一种高级的、面向对象的编程语言。使用 MATLAB 能够卓有成效地开发自己的程序,MATLAB 自身的许多函数,实际上也包括所有的工具箱函数,都是用 M 文件实现的。1、启动、启动 MATLAB 命令窗口命令窗口计算机安装好 MATLAB 之后,双击 MATLAB 图标,就可以进入命令窗口(Command Window),此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。MAT

3、LAB 语句形式变量表达式;变量表达式;通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在 MATLAB工作空间中分配了内存。2、常用函数、常用函数1)常用的数学运算符,*(乘) ,/(左除) ,(右除) ,(幂)2)常用数学函数abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj(共扼复数)等23)多项式处理函数 在 MATLAB 中,多项式使用降幂

4、系数的行向量表示,如:多项式表示为:p=1 -12 0 25 116,使用函数 roots 可以求出多项式等于 0 的根,根用列向量表示。若已知多项式等于 0 的根,函数 poly 可以求出相应多项式。r=roots(p)r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672ip=poly(r)p = -12 -0 25 116 多项式的运算相乘 conva=1 2 3 ; b=1 2 c=conv(a,b)=1 4 7 6conv 指令可以嵌套使用,如 conv(conv(a,b),c)相除 deconvq,r=deconv(c,b)q=1

5、 2 3 商多项式r=0 0 0 余多项式求多项式的微分多项式 polyderpolyder(a)=2 2求多项式函数值 polyval(p,n):将值 n 代入多项式求解。polyval(a,2)=11 多项式的拟合多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。命令格式:p=polyfit(x,y,n),其中 x 和 y 为样本点向量,n 为所求多项式的阶数,p 为求出的多项式。11625012234xxxx3 多项式插值多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果

6、。所用指令有一维的 interp1、二维的 interp2、三维的 interp3。这些指令分别有不同的方法(method) ,设计者可以根据需要选择适当的方法,以满足系统属性的要求。Help polyfun 可以得到更详细的内容。y=interp1(xs,ys,x,method)在有限样本点向量 xs 与 ys 中,插值产生向量 x 和 y,所用方法定义在 method中,有 4 种选择:nearest:执行速度最快,输出结果为直角转折linear:默认值,在样本点上斜率变化很大spline:最花时间,但输出结果也最平滑cubic:最占内存,输出结果与 spline 差不多4)绘图函数plo

7、t(x1,y1,option1,x2,y2,option2,)x1,y1 给出的数据分别为 x,y 轴坐标值,option1 为选项参数,以逐点连折线的方式绘制 1 个二维图形;同时类似地绘制第二个二维图形,等。这是 plot 命令的完全格式,在实际应用中可以根据需要进行简化。比如:plot(y), 以向量 y 的值为纵坐标,横坐标从 1 开始自动赋值绘制一条平面曲线;plot(x,y), x 和 y 为长度相同的向量,以 x 的值为横坐标和 y 的值为纵坐标绘制一条平面曲线;plot(x,y,s),这里 s 是作图控制参数,用来控制线条的颜色、线型及标示符号等,用一个单引号括起来的字符串表示

8、,所绘制的曲线与第二种格式相同(控制参数字符请参考 Matlab 的帮助,这些参数可以组合使用) ;x=linspace(0,2*pi,100); % 100 个点的 x 座标 y=sin(x); % 对应的 y 座标 plot(x,y); 这就画出了正弦函数在0,2上的图形 若要画出多条曲线,只需将座标对依次放入 plot 函数即可: plot(x, sin(x), x, cos(x); 该命令在同一坐标系中画出了正弦和余弦函数的图形。grid on:在所画出的图形坐标中加入栅格grid off:除去图形坐标中的栅格4hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一

9、个图形。hold off:使新图覆盖旧的图形设定轴的范围axis(xmin xmax ymin ymax)axis(equal):将 x 坐标轴和 y 坐标轴的单位刻度大小调整为一样。文字标示text(x,y,字符串)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。gtext(字符串)利用鼠标在图形的某一位置标示字符串。title(字符串)在所画图形的最上端显示说明该图形标题的字符串。xlabel(字符串),ylabel(字符串)设置 x,y 坐标轴的名称。输入特殊的文字需要用反斜杠()开头。legend(字符串 1,字符串 2,字符串 n)在屏幕上开启一个小视窗,然后依据绘图命令

10、的先后次序,用对应的字符串区分图形上的线。 subplot(mnk):分割图形显示窗口m:上下分割个数,n:左右分割个数,k:子图编号semilogx:绘制以 x 轴为对数坐标(以 10 为底) ,y 轴为线性坐标的半对数坐标图形。semilogy:绘制以 y 轴为对数坐标(以 10 为底) ,x 轴为线性坐标的半对数坐标图形。3、控制系统的模型控制系统的模型控制系统的表示可用三种模型:传递函数、零极点增益、状态空间。每一种模型又有连续与离散之分。为分析系统方便有时需要在三种模型间转换。MATLAB 提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。1) 模型

11、与表示式模型与表示式 传递函数模型 5 11101110.( ).mmmmnnnnb sbsbsbG sa sasa sa在 MATLAB 中直接用矢量组表示传递函数的分子、分母多项式系数,即: num = bm bm-1 b0; 表示传递函数的分子多项式系数 den = an an-1 a0; 表示传递函数的分母多项式系数 sys = tf(num,den) tf 命令将 sys 变量表示成传递函数模型。 零极点增益模型 1212()().()( )()().()mnszszszG skspspsp在 MATLAB 中用 z、p、k 矢量组分别表示系统的零点、极点和增益,即: z = z1

12、z2 zm ; p = p1 p2 pn ; k = k ; sys = zpk(z,p,k) zpk 命令将 sys 变量表示成零极点增益模型。 状态空间模型 x = ax + bu y = cx + du在 MATLAB 中用(a、b、c、d)矩阵组表示,然后sys = ss(a,b,c,d) ss 命令将 sys 变量表示成状态空间模型。2) 模型间的转换模型间的转换 在 MATLAB 中进行模型间转换的命令有:ss2tf、ss2zp、tf2ss、tf2zp、zp2tf、zp2ss它们之间的作用可由下面的示意图表示: ss2tf tf2ss zp2tf tf2zp zp2ss ss2zp

13、3) 模型间的关系与系统建模模型间的关系与系统建模实际工作中常常需要由多个简单系统构成复杂系统,MATLAB 中有下面几种命令零极点增益模型传递函数模型状态空间模型6可以解决两个系统间的连接问题。 系统的并联系统的并联 parallel 命令可以实现两个系统的并联。 命令格式: n,d = parallel(n1,d1,n2,d2)其中 n1、d1和 n2、d2分别为 g1(s) 、g2(s)的传递函数分子、分母系数行矢量。例 将下面两个系统并联连接 13( )4g ss2224( )23sgsss执行下面程序:n1 = 3 ;d1 = 1 4 ;n2 = 2 4 ;d2 = 1 2 3 ;

14、n,d = parallel(n1,d1,n2,d2)运行结果:n = 0 5 18 25 d = 1 6 11 12可得并联后系统的传递函数为23251825( )61112ssg ssss 系统的串联系统的串联series 命令实现两个系统的串联,命令格式: n,d = series(n1,d1,n2,d2) 系统的反馈系统的反馈feedback 命令实现两个系统的反馈连接, 命令格式: n,d = feedback(n1,d1,n2,d2)或: n,d = feedback(n1,d1,n2,d2,sign) 其中 sign 是反馈符号,缺省时默认为负(即 sign = -1) 。例 设

15、有下面两个系统: 121( )23sg sss21( )10gss现要将它们负反馈连接,求传递函数7输入: n1 = 1,1 ; d1 = 1,2,3 ; n2 = 1; d2 = 1,10 ; n,d = feedback(n1,d1,n2,d2)运行结果: n = 0 1 11 10 d =112 24 31即所求系统为:2221110( )122431ssg ssss三、实验内容三、实验内容1已知,分别求取和并联、串联以21)( ,5001)(221sssGssG)(1sG)(2sG及反馈连接时,系统的传递函数。2已知,分别求取和并联、21)( ,421)( 221sssGssssG)(

16、1sG)(2sG串联以及反馈连接时,系统的传递函数。3. 将系统转换为状态空间形式。;6168s682s)( 232ssssG4. 将下列系统转换为传递函数形式。0.DCBADU.CXYBU,AXX,010 ,100 ,1026402011 四、实验报告四、实验报告1根据内容要求,写出调试好的 MATLAB 语言程序,及对应的 MATLAB 运算结果。2用实验结果说明函数 parallel 与运算符“+”功能上的异同点。3写出实验的心得与体会。五、预习要求五、预习要求1. 预习实验中基础知识,运行编制好的 MATLAB 语句,熟悉 MATLAB 指令及函数。82. 结合实验内容,提前编制相应的

17、程序。3熟悉控制系统数学模型的表达及相互转换。实验二实验二 典型环节的典型环节的 MATLAB 仿真仿真一、实验目的一、实验目的1熟悉 MATLAB 桌面和命令窗口,初步了解 SIMULINK 功能模块的使用方法。2通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。3定性了解各参数变化对典型环节动态特性的影响。二、二、SIMULINKSIMULINK 的使用的使用MATLAB 中 SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。利用 SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。1运行 MATLAB 软件,在命令窗口栏

18、“”提示符下键入 simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图 1-1 所示的 SIMULINK 仿真环境下。2选择 File 菜单下 New 下的 Model 命令,新建一个 simulink 仿真环境常规模板。3在 simulink 仿真环境下,创建所需要的系统。以图 1-2 所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。点击 simulink 下的“Continuous” ,再将图 1-1 SIMULINK 仿真界面图 1-2 系统方框图 9右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。2)

19、改变模块参数。在 simulink 仿真环境“untitled”窗口中双击该图标,即可改变传递函数。其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择 OK,即完成该模块的设置。3)建立其它传递函数模块。按照上述方法,在不同的 simulink 的模块库中,建立系统所需的传递函数模块。例:比例环节用“Math”右边窗口“Gain”的图标。4)选取阶跃信号输入函数。用鼠标点击 simulink 下的“Source” ,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。5)选择输出方式。用鼠标点击 s

20、imulink 下的“Sinks” ,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。6)选择反馈形式。为了形成闭环反馈系统,需选择“Math” 模块库右边窗口“Sum”图标,并用鼠标双击,将其设置为需要的反馈形式(改变正负号) 。7)连接各元件,用鼠标划线,构成闭环传递函数。8)运行并观察响应曲线。用鼠标单击工具栏中的“”按钮,便能自动运行仿真环境下的系统框图模型。运行完之后用鼠标双击“Scope”元件,即可看到响应曲线。三、实验原理三、实验原理1比例环节的传递函数为 KRKRRRZZsG200,1002)(211212其对应的模拟电路

21、及 SIMULINK 图形如图 1-3 所示。2惯性环节的传递函数为ufCKRKRsCRRRZZsG1,200,10012 . 021)(121121212图 1-3 比例环节的模拟电路及 SIMULINK 图形10其对应的模拟电路及 SIMULINK 图形如图 1-4 所示。 3积分环节(I)的传递函数为ufCKRssCRZZsG1,1001 . 011)(111112其对应的模拟电路及 SIMULINK 图形如图 1-5 所示。4微分环节(D)的传递函数为 ufCKRssCRZZsG10,100)(111112ufCC01. 012其对应的模拟电路及 SIMULINK 图形如图 1-6 所

22、示。5比例+微分环节(PD)的传递函数为) 11 . 0() 1()(111212ssCRRRZZsGufCCufCKRR01. 010,10012121图 1-4 惯性环节的模拟电路及 SIMULINK 图形图 1-5 积分环节的模拟电路及及 SIMULINK 图形图 1-6 微分环节的模拟电路及及 SIMULINK 图形11其对应的模拟电路及 SIMULINK 图形如图 1-7 所示。6比例+积分环节(PI)的传递函数为 )11 (1)(11212sRsCRZZsGufCKRR10,100121其对应的模拟电路及 SIMULINK 图形如图 1-8 所示。 四、实验内容四、实验内容按下列各

23、典型环节的传递函数,建立相应的 SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 比例环节和; 1)(1sG2)(1sG 惯性环节和 11)(1ssG15 . 01)(2ssG 积分环节 ssG1)(1 微分环节ssG)(1 比例+微分环节(PD)和2)(1 ssG1)(2 ssG 比例+积分环节(PI)和ssG11)(1ssG211)(2五、实验报告五、实验报告1画出各典型环节的 SIMULINK 仿真模型。2. 记录各环节的单位阶跃响应波形,并分析参数对响应曲线的影响。图 1-7 比例+微分环节的模拟电路及 SIMULINK 图形曲线图 1-8 比例+积分环节的模拟电路及 SIM

24、ULINK 图形曲线123. 写出实验的心得与体会。六、预习要求六、预习要求1熟悉各种控制器的原理和结构,画好将创建的 SIMULINK 图形。2预习 MATLAB 中 SIMULINK 的基本使用方法。实验三实验三 线性系统时域响应分析线性系统时域响应分析一、实验目的一、实验目的1熟练掌握 step( )函数和 impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。2通过响应曲线观测特征参量和对二阶系统性能的影响。n3熟练掌握系统的稳定性的判断方法。二、基础知识及二、基础知识及 MATLABMATLAB 函数函数(一)基础知识时域分析法直接在时间域中

25、对系统进行分析,可以提供系统时间响应的全部信息,具有直观、准确的特点。为了研究控制系统的时域特性,经常采用瞬态响应(如阶跃响应、脉冲响应和斜坡响应) 。本次实验从分析系统的性能指标出发,给出了在 MATLAB环境下获取系统时域响应和分析系统的动态性能和稳态性能的方法。用 MATLAB 求系统的瞬态响应时,将传递函数的分子、分母多项式的系数分别以 s的降幂排列写为两个数组 num、den。由于控制系统分子的阶次 m 一般小于其分母的阶次 n,所以 num 中的数组元素与分子多项式系数之间自右向左逐次对齐,不足部分用零补齐,缺项系数也用零补上。1用 MATLAB 求控制系统的瞬态响应1)阶跃响应求

26、系统阶跃响应的指令有: step(num,den) 时间向量 t 的范围由软件自动设定,阶跃响应曲线随即绘出step(num,den,t) 时间向量 t 的范围可以由人工给定(例如 t=0:0.1:10)y,x=step(num,den) 返回变量 y 为输出向量,x 为状态向量在 MATLAB 程序中,先定义 num,den 数组,并调用上述指令,即可生成单位阶跃输入信号下的阶跃响应曲线图。考虑下列系统:25425)()(2sssRsC13该系统可以表示为两个数组,每一个数组由相应的多项式系数组成,并且以 s 的降幂排列。则 MATLAB 的调用语句: num=0 0 25; %定义分子多项

27、式 den=1 4 25; %定义分母多项式 step(num,den) %调用阶跃响应函数求取单位阶跃响应曲线 grid %画网格标度线 xlabel(t/s),ylabel(c(t) %给坐标轴加上说明 title(Unit-step Respinse of G(s)=25/(s2+4s+25) %给图形加上标题名则该单位阶跃响应曲线如图 2-1 所示:为了在图形屏幕上书写文本,可以用 text 命令在图上的任何位置加标注。例如: text(3.4,-0.06,Y1) 和 text(3.4,1.4,Y2)第一个语句告诉计算机,在坐标点 x=3.4,y=-0.06 上书写出Y1 。类似地,第

28、二个语句告诉计算机,在坐标点 x=3.4,y=1.4 上书写出Y2 。若要绘制系统 t 在指定时间(0-10s)内的响应曲线,则用以下语句:num=0 0 25; den=1 4 25; t=0:0.1:10; step(num,den,t) 即可得到系统的单位阶跃响应曲线在 0-10s 间的部分,如图 2-2 所示。 2)脉冲响应 求系统脉冲响应的指令有: impulse (num,den) 时间向量 t 的范围由软件自动设定,阶跃响应曲线随即绘出 impulse (num,den,t) 时间向量 t 的范围可以由人工给定(例如 t=0:0.1:10)图 2-1 二阶系统的单位阶跃响应 图

29、2-2 定义时间范围的单位阶跃响应14y,x=impulse(num,den) 返回变量 y 为输出向量,x 为状态向量y,x,t=impulse(num,den,t) 向量 t 表示脉冲响应进行计算的时间例:试求下列系统的单位脉冲响应: 12 . 01)()()(2sssGsRsC在 MATLAB 中可表示为 num=0 0 1; den=1 0.2 1; impulse(num,den) grid title(Unit-impulse Response of G(s)=1/(s2+0.2s+1)由此得到的单位脉冲响应曲线如图 2-3 所示: 求脉冲响应的另一种方法应当指出,当初始条件为零时

30、,G (s)的单位脉冲响应与 sG(s)的单位阶跃响应相同。考虑在上例题中求系统的单位脉冲响应,因为对于单位脉冲输入量,R(s)=1 所以sssssssGsCsRsC112 . 012 . 01)()()()(22因此,可以将 G(s)的单位脉冲响应变换成 sG(s)的单位阶跃响应。向 MATLAB 输入下列 num 和den,给出阶跃响应命令,可以得到系统的单位脉冲响应曲线如图 2-4 所示。 num=0 1 0; den=1 0.2 1;图 2-3 二阶系统的单位脉冲响应图 2-4 单位脉冲响应的另一种表示法15 step(num,den) grid title(Unit-step Res

31、ponse of sG(s)=s/(s2+0.2s+1)3)斜坡响应MATLAB 没有直接调用求系统斜坡响应的功能指令。在求取斜坡响应时,通常利用阶跃响应的指令。基于单位阶跃信号的拉氏变换为 1/s,而单位斜坡信号的拉氏变换为 1/s2。因此,当求系统 G(s)的单位斜坡响应时,可以先用 s 除 G(s),再利用阶跃响应命令,就能求出系统的斜坡响应。例如,试求下列闭环系统的单位斜坡响应。 11)()(2sssRsC对于单位斜坡输入量,R(s)=1/s2 ,因此 ssssssssC1) 1(1111)(222在 MATLAB 中输入以下命令,得到如图 2-5 所示的响应曲线: num=0 0 0

32、 1; den=1 1 1 0;step(num,den)title(Unit-Ramp Response Cuve for System G(s)=1/(s2+s+1)2. 特征参量和对二阶系统性能的影响n标准二阶系统的闭环传递函数为:图 2-5 单位斜坡响应16 2222)()(nnnsssRsC二阶系统的单位阶跃响应在不同的特征参量下有不同的响应曲线。1)对二阶系统性能的影响设定无阻尼自然振荡频率,考虑 5 种不同的值:=0,0.25,0.5,1.0)/( 1sradn和 2.0,利用 MATLAB 对每一种求取单位阶跃响应曲线,分析参数对系统的影响。为便于观测和比较,在一幅图上绘出 5

33、 条响应曲线(采用“hold”命令实现)。 num=0 0 1; den1=1 0 1; den2=1 0.5 1; den3=1 1 1; den4=1 2 1; den5=1 4 1;t=0:0.1:10; step(num,den1,t) grid text(4,1.7,Zeta=0); hold step(num,den2,t) text (3.3,1.5,0.25) step(num,den3,t) text (3.5,1.2,0.5) step(num,den4,t) text (3.3,0.9,1.0) step(num,den5,t) text (3.3,0.6,2.0) ti

34、tle(Step-Response Curves for G(s)=1/s2+2(zeta)s+1)由此得到的响应曲线如图 2-6 所示:图 2-6 不同时系统的响应曲线172)对二阶系统性能的影响n同理,设定阻尼比时,当分别取 1,2,3 时,利用 MATLAB 求取单位阶25. 0n跃响应曲线,分析参数对系统的影响。nnum1=0 0 1; den1=1 0.5 1; t=0:0.1:10; step(num1,den1,t); grid; hold ontext(3.1,1.4,wn=1)num2=0 0 4; den2=1 1 4;step(num2,den2,t); hold ont

35、ext(1.7,1.4,wn=2)num3=0 0 9; den3=1 1.5 9;step(num3,den3,t); hold ontext(0.5,1.4,wn=3)由此得到的响应曲线如图 2-7 所示:3系统稳定性判断1)直接求根判稳 roots()控制系统稳定的充要条件是其特征方程的根均具有负实部。因此,为了判别系统的稳定性,就要求出系统特征方程的根,并检验它们是否都具有负实部。MATLAB 中对多项式求根的函数为 roots()函数。 若求以下多项式的根,则所用的 MATLAB 指令为:24503510234ssss roots(1,10,35,50,24)ans =-4.0000

36、图 2-7 不同时系统的响应曲线n18-3.0000-2.0000-1.0000特征方程的根都具有负实部,因而系统为稳定的。2)劳斯稳定判据 routh()劳斯判据的调用格式为:r, info=routh(den)该函数的功能是构造系统的劳斯表。其中,den 为系统的分母多项式系数向量,r为返回的 routh 表矩阵,info 为返回的 routh 表的附加信息。以上述多项式为例,由 routh 判据判定系统的稳定性。den=1,10,35,50,24; r,info=routh(den)r=1 35 2410 50 030 24 042 0 024 0 0info= 由系统返回的 routh

37、 表可以看出,其第一列没有符号的变化,系统是稳定的。3)赫尔维茨判据 hurwitz()赫尔维茨的调用格式为:H=hurwitz(den) 。该函数的功能是构造 hurwitz 矩阵。其中,den 为系统的分母多项式系数向量。以上述多项式为例,由 hurwitz 判据判定系统的稳定性。den=1,10,35,50,24; H=hurwitz(den)H= 10 50 0 0 1 35 24 0 0 10 50 0 0 1 35 24由系统返回的 hurwitz 矩阵可以看出,系统是稳定的。与前面的分析结果完全一致。19注意:routh()和 hurwitz()不是 MATLAB 中自带的功能函

38、数,须加载ctrllab3.1 文件夹(自编)才能运行。三、实验内容三、实验内容1观察函数 step( )和 impulse( )的调用格式,假设系统的传递函数模型为 146473)(2342sssssssG可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。2对典型二阶系统2222)(nnnsssG1)分别绘出,分别取 0,0.25,0.5,1.0 和 2.0 时的单位阶跃响应曲线,)/(2sradn分析参数对系统的影响,并计算=0.25 时的时域性能指标。sssprpettt,2)绘制出当=0.25, 分别取 1,2,4,6 时单位阶跃响应曲线,分析参数对系统nn的影响。3系统的特征方程式

39、为,试用三种判稳方式判别该系统010532234ssss的稳定性。4单位负反馈系统的开环模型为)256)(4)(2()(2ssssKsG试分别用劳斯稳定判据和赫尔维茨稳定判据判断系统的稳定性,并求出使得闭环系统稳定的 K 值范围。四、实验报告四、实验报告1根据内容要求,写出调试好的 MATLAB 语言程序,及对应的 MATLAB 运算结果。2. 记录各种输出波形,根据实验结果分析参数变化对系统的影响。3总结判断闭环系统稳定的方法,说明增益 K 对系统稳定性的影响。4写出实验的心得与体会。五、预习要求五、预习要求1. 预习实验中基础知识,运行编制好的 MATLAB 语句,熟悉 MATLAB 指令

40、及 step( )和impulse( )函数。2. 结合实验内容,提前编制相应的程序。203思考特征参量和对二阶系统性能的影响。n4熟悉闭环系统稳定的充要条件及学过的稳定判据。实验四实验四 线性系统的根轨迹线性系统的根轨迹一、实验目的一、实验目的1. 熟悉 MATLAB 用于控制系统中的一些基本编程语句和格式。2. 利用 MATLAB 语句绘制系统的根轨迹。3. 掌握用根轨迹分析系统性能的图解方法。4. 掌握系统参数变化对特征根位置的影响。二、基础知识及二、基础知识及 MATLABMATLAB 函数函数 根轨迹是指系统的某一参数从零变到无穷大时,特征方程的根在 s 平面上的变化轨迹。这个参数一

41、般选为开环系统的增益 K。课本中介绍的手工绘制根轨迹的方法,只能绘制根轨迹草图。而用 MATLAB 可以方便地绘制精确的根轨迹图,并可观测参数变化对特征根位置的影响。假设系统的对象模型可以表示为 nnnnmmmmasbsasbsbsbsbKsKGsG11111210)()(系统的闭环特征方程可以写成 0)(10sKG对每一个 K 的取值,我们可以得到一组系统的闭环极点。如果我们改变 K 的数值,则可以得到一系列这样的极点集合。若将这些 K 的取值下得出的极点位置按照各个分支连接起来,则可以得到一些描述系统闭环位置的曲线,这些曲线又称为系统的根轨迹。211)绘制系统的根轨迹 rlocus()MA

42、TLAB 中绘制根轨迹的函数调用格式为:rlocus(num,den) 开环增益 k 的范围自动设定。rlocus(num,den,k) 开环增益 k 的范围人工设定。rlocus(p,z) 依据开环零极点绘制根轨迹。r=rlocus(num,den) 不作图,返回闭环根矩阵。r,k=rlocus(num,den) 不作图,返回闭环根矩阵 r 和对应的开环增益向量k。其中,num,den 分别为系统开环传递函数的分子、分母多项式系数,按 s 的降幂排列。K 为根轨迹增益,可设定增益范围。例 3-1:已知系统的开环传递函数,绘制系统的根轨迹924) 1()(23ssssKsG的 MATLAB 的

43、调用语句如下: num=1 1; %定义分子多项式 den=1 4 2 9; %定义分母多项式 rlocus (num,den) %绘制系统的根轨迹 grid %画网格标度线 xlabel(Real Axis),ylabel(Imaginary Axis) %给坐标轴加上说明 title(Root Locus) %给图形加上标题名则该系统的根轨迹如图 3-1 所示: 若上例要绘制 K 在(1,10)的根轨迹图,则此时的 MATLAB 的调用格式如下,对应的根轨迹如图 3-2 所示。num=1 1; den=1 4 2 9; k=1:0.5:10;图 3-1 系统的完整根轨迹图形图 3-2 特定

44、增益范围内的根轨迹图形 22 rlocus (num,den,k) 2)确定闭环根位置对应增益值 K 的函数 rlocfind()在 MATLAB 中,提供了 rlocfind 函数获取与特定的复根对应的增益 K 的值。在求出的根轨迹图上,可确定选定点的增益值 K 和闭环根 r(向量)的值。该函数的调用格式为:k,r=rlocfind(num,den)执行前,先执行绘制根轨迹命令 rlocus(num,den) ,作出根轨迹图。执行rlocfind 命令时,出现提示语句“Select a point in the graphics window” ,即要求在根轨迹图上选定闭环极点。将鼠标移至根

45、轨迹图选定的位置,单击左键确定,根轨迹图上出现“+”标记,即得到了该点的增益 K 和闭环根 r 的返回变量值。例 3-2:系统的开环传递函数为,试求:(1)系统的253865)(232sssssKsG根轨迹;(2)系统稳定的 K 的范围;(3)K=1 时闭环系统阶跃响应曲线。则此时的MATLAB 的调用格式为:G=tf(1,5,6,1,8,3,25); rlocus (G); %绘制系统的根轨迹 k,r=rlocfind(G) %确定临界稳定时的增益值 k 和对应的极点 r G_c=feedback(G,1); %形成单位负反馈闭环系统step(G_c) %绘制闭环系统的阶跃响应曲线则系统的根

46、轨迹图和闭环系统阶跃响应曲线如图 3-2 所示。其中,调用 rlocfind()函数,求出系统与虚轴交点的 K 值,可得与虚轴交点的K 值为 0.0264,故系统稳定的 K 的范围为。),0264. 0(K3)绘制阻尼比和无阻尼自然频率的栅格线 sgrid( )n(a)根轨迹图形 (b)K=1 时的阶跃响应曲线图 3-2 系统的根轨迹和阶跃响应曲线23当对系统的阻尼比和无阻尼自然频率有要求时,就希望在根轨迹图上作等n或等线。MATLAB 中实现这一要求的函数为 sgrid( ),该函数的调用格式为:nsgrid(,) 已知和的数值,作出等于已知参数的等值线。nnsgrid(new) 作出等间隔

47、分布的等和网格线。n例 3-3:系统的开环传递函数为,由 rlocfind 函数找出能产)2)(1(1)(ssssG生主导极点阻尼=0.707 的合适增益,如图 3-3(a)所示。G=tf(1,conv(1,1,1,2),0);zet=0.1:0.2:1;wn=1:10;sgrid(zet,wn);hold on;rlocus(G)k,r=rlocfind(G)Select a point in the graphics windowselected_point = -0.3791 + 0.3602ik = 0.6233r = -2.2279 -0.3861 + 0.3616i -0.3861

48、 - 0.3616i同时我们还可以绘制出该增益下闭环系统的阶跃响应,如图 3-3(b)所示。事实上,等或等线在设计系补偿器中是相当实用的,这样设计出的增益 K=0.6233 将使得n整个系统的阻尼比接近 0.707。由下面的 MATLAB 语句可以求出主导极点,即 r(2.3)点的阻尼比和自然频率为G_c=feedback(G,1);step(G_c)dd0=poly(r(2:3,:);wn=sqrt(dd0(3);zet=dd0(2)/(2*wn);zet,wnans = 0.7299 0.5290我们可以由图 3-3(a)中看出,主导极点的结果与实际系统的闭环响应非常接近,24设计的效果是

49、令人满意的。4)基于根轨迹的系统设计及校正工具 rltoolMATLAB 中提供了一个系统根轨迹分析的图形界面,在此界面可以可视地在整个前向通路中添加零极点(亦即设计控制器) ,从而使得系统的性能得到改善。实现这一要求的工具为 rltool,其调用格式为:rltool 或 rltool(G)例 3-4:单位负反馈系统的开环传递函数)50)(20)(5(125. 0)(2ssssssG输入系统的数学模型,并对此对象进行设计。den=conv(1,5,conv(1,20,1,50),0,0;num=1,0.125;G=tf(num,den);rltool(G)该命令将打开 rltool 工具的界面

50、,显示原开环模型的根轨迹图,如图 3-4(a)所示。单击该图形菜单命令 Analysis 中的 Response to Step Command 复选框,则将打开一个新的窗口,绘制系统的闭环阶跃响应曲线,如图 3-4(b)所示。可见这样直接得出的系统有很强的振荡,就需要给这个对象模型设计一个控制器来改善系统的闭环性能。(a)根轨迹上点的选择 (b)闭环系统阶跃响应图 3-3 由根轨迹技术设计闭环系统 a)原对象模型的根轨迹 (b)闭环系统阶跃响应图 3-4 根轨迹设计工具界面及阶跃响应分析25 单击界面上的零点和极点添加的按钮,可以给系统添加一对共轭复极点,两个稳定零点,调整它们的位置,并调整

51、增益的值,通过观察系统的闭环阶跃响应效果,则可以试凑地设计出一个控制器)84. 03 .61)(84. 03 .61()26.10)(31.38(29.181307)(jsjssssGC在此控制器下分别观察系统的根轨迹和闭环系统阶跃响应曲线。可见,rltool 可以作为系统综合的实用工具,在系统设计中发挥作用。三、实验内容三、实验内容1请绘制下面系统的根轨迹曲线)136)(22()(22sssssKsG)10)(10012)(1()12()(2sssssKsG) 11 . 0012. 0)(10714. 0() 105. 0()(2ssssKsG同时得出在单位阶跃负反馈下使得闭环系统稳定的 K

52、 值的范围。2. 在系统设计工具 rltool 界面中,通过添加零点和极点方法,试凑出上述系统,并观察增加极、零点对系统的影响。四、实验报告四、实验报告1根据内容要求,写出调试好的 MATLAB 语言程序,及对应的结果。2. 记录显示的根轨迹图形,根据实验结果分析根轨迹的绘制规则。3. 根据实验结果分析闭环系统的性能,观察根轨迹上一些特殊点对应的 K 值,确定闭环系统稳定的范围。4根据实验分析增加极点或零点对系统动态性能的影响。265写出实验的心得与体会。五、预习要求五、预习要求1. 预习实验中的基础知识,运行编制好的 MATLAB 语句,熟悉根轨迹的绘制函数rlocus()及分析函数 rlo

53、cfind(),sgrid()。2. 预习实验中根轨迹的系统设计工具 rltool,思考该工具的用途。3. 掌握用根轨迹分析系统性能的图解方法,思考当系统参数 K 变化时,对系统稳定性的影响。4思考加入极点或零点对系统动态性能的影响。实验五实验五 线性系统的频域分析线性系统的频域分析一、实验目的一、实验目的1掌握用 MATLAB 语句绘制各种频域曲线。2掌握控制系统的频域分析方法。二、基础知识及二、基础知识及 MATLABMATLAB 函数函数频域分析法是应用频域特性研究控制系统的一种经典方法。它是通过研究系统对正弦信号下的稳态和动态响应特性来分析系统的。采用这种方法可直观的表达出系统的频率特

54、性,分析方法比较简单,物理概念明确。1频率曲线主要包括三种:Nyquist 图、Bode 图和 Nichols 图。1)Nyquist 图的绘制与分析MATLAB 中绘制系统 Nyquist 图的函数调用格式为:nyquist(num,den) 频率响应 w 的范围由软件自动设定nyquist(num,den,w) 频率响应 w 的范围由人工设定Re,Im= nyquist(num,den) 返回奈氏曲线的实部和虚部向量,不作图例 4-1:已知系统的开环传递函数为,试绘制 Nyquist 图,25262)(23sssssG并判断系统的稳定性。num=2 6;27den=1 2 5 2; z,p

55、,k=tf2zp(num,den); pnyquist(num,den)极点的显示结果及绘制的 Nyquist 图如图 4-1 所示。由于系统的开环右根数 P=0,系统的 Nyquist 曲线没有逆时针包围(-1,j0)点,所以闭环系统稳定。p = -0.7666 + 1.9227i -0.7666 - 1.9227i -0.4668 若上例要求绘制间的 Nyquist 图,则对应的 MATLAB 语句为:)10,10(32num=2 6;den=1 2 5 2;w=logspace(-1,1,100); 即在 10-1和 101之间,产生 100 个等距离的点nyquist(num,den,

56、w)2)Bode 图的绘制与分析系统的 Bode 图又称为系统频率特性的对数坐标图。Bode 图有两张图,分别绘制开环频率特性的幅值和相位与角频率的关系曲线,称为对数幅频特性曲线和对数相频特性曲线。MATLAB 中绘制系统 Bode 图的函数调用格式为:bode(num,den) 频率响应 w 的范围由软件自动设定bode(num,den,w) 频率响应 w 的范围由人工设定mag,phase,w=bode(num,den,w) 指定幅值范围和相角范围的伯德图例 4-2:已知开环传递函数为,试绘制系统的伯德图。)10016() 12 . 0(30)(2sssssGnum=0 0 15 30;d

57、en=1 16 100 0;w=logspace(-2,3,100);bode(num,den,w)图 4-1 开环极点的显示结果及 Nyquist 图28grid绘制的 Bode 图如图 4-2(a)所示,其频率范围由人工选定,而伯德图的幅值范围和相角范围是自动确定的。当需要指定幅值范围和相角范围时,则需用下面的功能指令: mag,phase,w=bode(num,den,w)mag,phase 是指系统频率响应的幅值和相角,由所选频率点的 w 值计算得出。其中,幅值的单位为 dB,它的算式为 magdB=20lg10(mag)。指定幅值范围和相角范围的 MATLAB 调用语句如下,图形如图

58、 4-2(b)所示。num=0 0 15 30;den=1 16 100 0;w=logspace(-2,3,100);mag,phase,w=bode(num,den,w); %指定 Bode 图的幅值范围和相角范围subplot(2,1,1); %将图形窗口分为 2*1 个子图,在第 1 个子图处绘制图形semilogx(w,20*log10(mag); %使用半对数刻度绘图,X 轴为 log10 刻度,Y 轴为线性刻度grid onxlabel(w/s-1); ylabel(L(w)/dB);title(Bode Diagram of G(s)=30(1+0.2s)/s(s2+16s+1

59、00);subplot(2,1,2);%将图形窗口分为 2*1 个子图,在第 2 个子图处绘制图形semilogx(w,phase);grid onxlabel(w/s-1); ylabel(0);注意:半 Bode 图的绘制可用 semilgx 函数实现,其调用格式为 semilogx(w,L),其中 L=20*log10(abs(mag)。图 4-2(a) 幅值和相角范围自动确定的 Bode 图图 4-2(b) 指定幅值和相角范围的 Bode图293)Nichols 图的绘制在 MATLAB 中绘制 Nichols 图的函数调用格式为:mag,phase,w=nichols(num,den

60、,w) Plot(phase,20*log10(mag)例 4-3:单位负反馈的开环传递函数为,绘制 Nichols 图。ssssG9310)(23对应的 MATLAB 语句如下,所得图形如图 4-3 所示:num=10; den=1 3 9 0;w=logspace(-1,1,500);mag,phase=nichols(num,den,w);plot(phase,20*log10(mag)ngrid %绘制 nichols 图线上的网格2幅值裕量和相位裕量幅值裕量和相位裕量是衡量控制系统相对稳定性的重要指标,需要经过复杂的运算求取。应用 MATLAB 功能指令可以方便地求解幅值裕量和相位裕

温馨提示

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

最新文档

评论

0/150

提交评论