收藏 分享(赏)

自动控制实验讲义MATLAB.doc

上传人:dreamzhangning 文档编号:2242581 上传时间:2018-09-07 格式:DOC 页数:58 大小:1.56MB
下载 相关 举报
自动控制实验讲义MATLAB.doc_第1页
第1页 / 共58页
自动控制实验讲义MATLAB.doc_第2页
第2页 / 共58页
自动控制实验讲义MATLAB.doc_第3页
第3页 / 共58页
自动控制实验讲义MATLAB.doc_第4页
第4页 / 共58页
自动控制实验讲义MATLAB.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、- 1 -c 控制系统的模拟试验与 MATLAB 仿真1 MATLAB 简介MATLAB 是 Mathworks 公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB 不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。从而能够很好的帮助工程师及科学家解决实际的技术问题。MATLAB 的含义是矩阵实验室(Matrix Laboratory) ,最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。经过十几年的扩充和完善,现已发展成为包含大量实用工具箱(Toolbox)的综合应用软件,不仅成为线性

2、代数课程的标准工具,而且适合具有不同专业研究方向及工程应用需求的用户使用。MATLAB 最重要的特点是易于扩展。它允许用户自行建立完成指定功能的扩展 MATLAB函数(称为 M 文件) ,从而构成适合于其它领域的工具箱,大大扩展了 MATLAB 的应用范围。目前,MATLAB 已成为国际控制界最流行的软件,控制界很多学者将自己擅长的 CAD 方法用MATLAB 加以实现,出现了大量的 MATLAB 配套工具箱,如控制系统工具箱(control systems toolbox) ,系统识别工具箱(system identification toolbox) ,鲁棒控制工具箱(robust con

3、trol toolbox) ,信号处理工具箱(signal processing toolbox)以及仿真环境 SIMULINK 等。(1) MATLAB 的安装本节将讨论操作系统为 Microsoft Windows 环境下安装 MATLAB6 的过程。将 MATLAB6 的安装盘放入光驱,系统将自动运行 auto-run.bat 文件,进行安装;也可以执行安装盘内的 setup.exe 文件启动 MATLAB 的安装程序。启动安装程序后,屏幕将显示安装 MATLAB 的初始界面,根据 Windows 安装程序的常识,不断单击Next,输入正确的安装信息,具体操作过程如下:输入正确的用户注册

4、信息码;选择接收软件公司的协议;输入用户名和公司名;选择 MATLAB 组件(Toolbox) ;选择软件安装路径和目录;单击Next按钮进入正式的安装界面。安装过程界面如图 1 所示。图 1 MATLAAB 安装过程界面 图 2 MATLAAB 启动过程界面- 2 -安装完毕后,选择Restart my computer now选项以重新启动计算机。重新启动计算机后,用户就可以点击图标 使用 MATLAB6 了。MATLAB 启动过程界面如图 2 所示。(2) MATLAB 桌面系统MATLAB 的桌面系统由桌面平台以及桌面组件共同构成,如图 3。桌面平台是各桌面组件的展示平台,它提供了一系

5、列的菜单操作以及工具栏操作,而不同功能的桌面组件构成了整个 MATLAB 操作平台。其组件主要包含如下 8 个组件部分:命令窗口(Command Window)历史命令窗口(Command History)组件平台(Launch Pad)路径浏览器(Current Directory Browser)帮助浏览器(Help Browser)工作空间浏览器(Workspace Browser)数组编辑器(Array Editor)M 文件编辑调试器(Editor-Debugger) 。用户可以在 View 菜单下选择打开或关闭某个窗口。(3) MATLAB 命令窗口MATLAB 可以认为是一种解释

6、性语言。在 MATLAB 命令窗口中,标志为命令提示符,在命令提示符后面键入一个 MATLAB 命令时,MATLAB 会立即对其进行处理,并显示处理结果。这种方式简单易用,但在编程过程中要修改整个程序比较困难,并且用户编写的程序不容易保存。如果想把所有的程序输入完再运行调试,可以用鼠标点击快捷 或File|New|M-file 菜单,在弹出的编程窗口中逐行输入命令,输入完毕后点击Debug|Run(或 F5)运行整个程序。运行过程中的错误信息和运行结果显示在命令窗口中。整个程序的源代码可以保存为扩展名为“.m”的 M 文件。在介绍 MATLAB 的强大计算和图象处理功能前,我们可以先运行一个简

7、单的程序。设系统的闭环传递函数为: 84)(2ssG求系统的时域响应图,可输入下面的命令:图 3 MATLAB 桌面平台- 3 - num=1,4;den=1,2,8; step(num,den)程序运行后会在一个新的窗口中显示出系统的时域动态响应曲线,如图 4。用鼠标左键点击动态响应曲线的某一点,系统会提示其响应时间和幅值。按住左键在曲线上移动鼠标的位置可以很容易的根据幅值观察出上升时间、调节时间、峰值及峰值时间,进而求出超调量。如果想求根轨迹,可将程序的第三行变为 rlocus(num,den),求伯德图可改为bode(num,den)。所不同的是,在根轨迹和伯德图中,G(s)为开环传递函

8、数。MATLAB 的语法规则类似于 C 语言,变量名、函数名都与大小写有关,即变量 A 和 a 是两个完全不同的变量。应该注意所有的函数名均由小写字母构成。MATLAB 是一个功能强大的工程应用软件,它提供了相当丰富的帮助信息,同时也提供了多种获得帮助的方法。如果用户第一次使用 MATLAB,则建议首先在提示符下键入 DEMO命令,它将启动 MATLAB 的演示程序。用户可以在此演示程序中领略 MATLAB 所提供的强大的运算和绘图功能。2 MATLAB 基本操作命令本节简单介绍与本书内容相关的一些基本知识和操作命令。(1)简单矩阵的输入MATLAB 是一种专门为矩阵运算设计的语言,所以在 M

9、ATLAB 中处理的所有变量都是矩阵。这就是说,MATLAB 只有一种数据形式,那就是矩阵,或者数的矩形阵列。标量可看作为 11 的矩阵,向量可看作为 n1 或 1n 的矩阵。这就是说,MATLAB 语言对矩阵的维图 4 动态响应时域图- 4 -数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB 会自动获取所需的存储空间。输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下:(1) 元素之间用空格或逗号间隔;(2) 用中括号()把所有元素括起来;(3) 用分号(;)指定行结束。例如,在 MATLAB 的工作空间中,输入: 9654 3a ; 则输出结果为:9652 矩阵 a 被一直

10、保存在工作空间中,以供后面使用,直至修改它。MATLAB 的矩阵输入方式很灵活,大矩阵可以分成 n 行输入,用回车符代替分号或用续行符号()将元素续写到下一行。例如: 987654321, , ; , , ; , , 9 87 a654321a, , ; , , ; , , 以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号() 。在 MATLAB 中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:(1) 利用内部语句或函数产生矩阵;(2) 利用 M 文件产生矩阵;(3) 利用外部数据文件装入到指定矩阵。(2)复

11、数矩阵输入MATLAB 允许在计算或函数中使用复数。输入复数矩阵有两种方法:(1) a=12;34+i*56;78(2) a=1+5i 2+6i;3+7i 4+8i注意,当矩阵的元素为复数时,在复数实部与虚部之间不允许使用空格符。如 1 5i 将被认为是 1 和 5i 两个数。另外,MATLAB 表示复数时,复数单位也可以用 j。(3) MATLAB 语句和变量MATLAB 是一种描述性语言。它对输入的表达式边解释边执行,就象 BASIC 语言中直接执行语句一样。- 5 -MATLAB 语句的常用格式为:变量表达式;或简化为:表达式;表达式可以由操作符、特殊符号、函数、变量名等组成。表达式的结

12、果为一矩阵,它赋给左边的变量,同时显示在屏幕上。如果省略变量名和“”号,则 MATLAB 自动产生一个名为 ans 的变量来表示结果,如:190081结果为:4568.23 ansans 是 MATLAB 提供的固定变量,具有特定的功能,是不能由用户清除的。常用的固定变量还有 eps、pi、Inf、NaN 等。其特殊含义可以用 7.2.10 节介绍的方法查阅帮助。MATAB 允许在函数调用时同时返回多个变量,而一个函数又可以由多种格式进行调用,语句的典型格式可表示为:返回变量列表fun-name(输入变量列表)例如用 bode()函数来求取或绘制系统的 Bode 图,可由下面的格式调用:)Wd

13、en,um(bophase,mg其中变量 num、den 表示系统传递函数分子和分母,W 表示指定频段,mag 为计算幅值,phase 为计算相角。(4)语句以“”开始和以分号“;”结束的特殊效用在 MATLAB 中以“”开始的程序行,表示注解和说明。符号“”类似于 C+中的“/”。这些注解和说明是不执行的。这就是说,在 MATLAB 程序行中,出现“”以后的一切内容都是可以忽略的。分号用来取消打印,如果语句最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再在命令窗口或其它窗口中显示。这一点在 M 文件中大量采用,以抑制不必要的信息显示。(5)获取工作空间信息MATLAB 开辟有一

14、个工作空间,用于存储已经产生的变量。变量一旦被定义,MATLAB 系统会自动将其保存在工作空间里。在退出程序之前,这些变量将被保留在存储器中。为了得到工作空间中的变量清单,可以在命令提示符后输入 who 或 whos 命令,当前存放在工作空间的所有变量便会显示在屏幕上。命令 clear 能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令 clear x。(6)常数与算术运算符MATLAB 采用人们习惯使用的十进制数。如:3 99 0.0001 9.6397238 20e61.2i -3.14159i 3e5i2e5.其中 。1i数值的相对精度为

15、 eps,它是一个符合 IEEE 标准的 16 位长的十进制数,其范围为:- 6 -。3081MATLAB 提供了常用的算术运算符:+, ,() ,(幂指数) 。应该注意:()右除法和()左除法这两种符号对数值操作时,其结果相同,其斜线下为分母,如 14 与 41,其结果均为 0.25,但对矩阵操作时,左、右除法是有区别的。(7)选择输出格式输出格式是指数据显示的格式,MATLAB 提供 format 命令可以控制结果矩阵的显示,而不影响结果矩阵的计算和存储。所有计算都是以双精度方式完成的。(1) 如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。如输入:1 0 1x则显示:-(2)

16、如果矩阵中至少有一个元素不是整数,则有多种输出格式。常见格式有以下四种: format short(短格式,也是系统默认格式) format short e(短格式科学表示) format long(长格式) format long e(长格式科学表示)如:6e2345.1 /4x对于以上四种格式,其显示结果分别为:短格式 5 位表示0. 1.3 短格式科学表示06e2345.1 .e x长格式 16 位表示012345. 1.3 长格式科学表示6e. 0e3. x一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。(8)MATLAB 图形窗口当调用了一个产生图形的函数时,

17、MATLAB 会自动建立一个图形窗口。这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。图形窗口中的图形可通过打印机打印出来。若想将图形导出并保存,可用鼠标点击菜单 File|Export,导出格式可选 emp、bmp、jpg 等。命令窗口的内容也可由打印机打印出来:- 7 -如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。(9)剪切板的使用利用 Windows 的剪切板可在 MATLAB 与其它应用程序之间交换信息。(1) 要将 MATLAB 的图形移到其它应用程序,首先按 Alt-Print Screen 键,将图

18、形复制到剪切板中,然后激活其它应用程序,选择 edit(编辑)中的 paste(粘贴) ,就可以在应用程序中得到 MATLAB 中的图形。当然还可以借助于 copy to Bitmap 或 copy to Metafile 选项来传递图形信息。(2) 要将其它应用程序中的数据传递到 MATLAB,应先将数据放入剪切板,然后在MATLAB 中定义一个变量来接收。如键入: q=然后选择 Edit 中的 paste,最后加上“”,这样可将应用程序中的数据送入 MATLAB的 q 变量中。(10)MATLAB 编程指南MATLAB 的编程效率比 BASIC、C、FORTRAN 和 PASCAL 等语言

19、要高,且易于维护。在编写小规模的程序时,可直接在命令提示符后面逐行输入,逐行执行。对于较复杂且经常重复使用的程序,可按 7.1.3 介绍的方法进入程序编辑器编写 M 文件。M 文件是用 MATLAB 语言编写的可在 MATLAB 环境中运行的磁盘文件。它为脚本文件(Script File)和函数文件(Function File),这两种文件的扩展名都是.m。(1) 脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。脚本文件的语句可以访问 MATLAB 工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。例如下述语句如果以.m 为扩展名存盘,就构成了 M 脚本文件,我们不妨将其文件

20、名取为“Step_Response”。% 用于求取一阶跃响应。 num=1 4;den=1 2 8;step(num,den)当你键入 help Step_Response 时,屏幕上将显示文件开头部分的注释:用于求取一阶跃响应。很显然,在每一个 M 文件的开头,建立详细的注释是非常有用的。由于 MATLAB 提供了大量的命令和函数,想记住所有函数及调用方法一般不太可能,通过联机帮助命令 help 可容易地对想查询的各个函数的有关信息进行查询。该命令使用格式为:help 命令或函数名注意:若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在 MATLAB的搜索路径上。当调用时,只需输

21、入文件名,MATLAB 就会自动按顺序执行文件中的命令。(2) 函数文件是用于定义专用函数的,文件的第一行是以 function 作为关键字引导的,后面为注释和函数体语句。函数就像一个黑箱,把一些数据送进去,经加工处理,再把结果送出来。在函数体内使用的除返回变量和输入变量这些在第一行 functon 语句中直接引用的变量外,其它所有变量都是局部变量,执行完后,这些内部变量就被清除了。函数文件的文件名与函数名相同(文件名后缀为.m),它的执行与命令文件不同,不能键入其文件名来运行函数,M 函数必须由其它语句来调用,这类似于 C 语言的可被其它函数调用的子程序。M 函数文件一旦建立,就可以同 MA

22、TLAB 基本函数库一样加以使用。- 8 -例 1 求一系列数的平均数,该函数的文件名为“mean.m”function y=mean(x)% 这是一个用于求平均数的函数w=length(x); % length 函数表示取向量 x 的长度y=sum(x)/w; % sun 函数表示求各元素的和该文件第一行为定义行,指明是 mean 函数文件,y 是输出变量,x 是输入变量,其后的开头的文字段是说明部分。真正执行的函数体部分仅为最后二行。其中变量 w 是局部变量,程序执行完后,便不存在了。在 MATLAB 命令窗口中键入 r=1:10; % 表示 r 变量取 1 到 10 共 10 个数mea

23、n(r)运行结果显示ans =5.5000该例就是直接使用了所建立的 M 函数文件,求取数列 r 的平均数。3 MATLAB 在控制系统中的应用MATLAB 是国际控制界目前使用最广的工具软件,几乎所有的控制理论与应用分支中都有 MATLAB 工具箱。本节结合前面所学自控理论的基本内容,采用控制系统工具箱(Control Systems Toolbox)和仿真环境(Simulink) ,学习 MATLAB 的应用。(1) 用 MATLAB 建立传递函数模型1有理函数模型线性系统的传递函数模型可一般地表示为:(1)mnassabbsGnnmm )( 1121将系统的分子和分母多项式的系数按降幂的

24、方式以向量的形式输入给两个变量 和nu,就可以轻易地将传递函数模型输入到 MATLAB 环境中。命令格式为:den; (2),121mbu; (3)naa在 MATLAB 控制系统工具箱中,定义了 tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加方便。该函数的调用格式为:Gtf(num,den); (4)例 2 一个简单的传递函数模型: 5432)(24sssG可以由下面的命令输入到 MATLAB 工作空间中去。 num=1,5;den=1,2,3,4,5;G=tf(num,den)运行结果:- 9 -Transfer function

25、:s + 5-s4 + 2s3 + 3s2 + 4s + 5这时对象 G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。例 3 一个稍微复杂一些的传递函数模型: )6(13()22ss该传递函数模型可以通过下面的语句输入到 MATLAB 工作空间。 num=6*1,5;den=conv(conv(1,3,1,1,3,1),1,6);tf(num,den)运行结果Transfer function:6 s + 30-s5 + 12 s4 + 47 s3 + 72 s2 + 37 s + 6其中 conv()函数(标准的 MATLAB 函数)用来计算两个向量的卷积,多项式乘法当然也可以用

26、这个函数来计算。该函数允许任意地多层嵌套,从而表示复杂的计算。2.零极点模型线性系统的传递函数还可以写成极点的形式:(5))()()(21nmpsspzzKsG将系统增益、零点和极点以向量的形式输入给三个变量 、Z 和 P,就可以将系统的KGain零极点模型输入到 MATLAB 工作空间中,命令格式为:(6) ;ain(7) ; 21mzzZ(8); nppP在 MATLAB 控制工具箱中,定义了 zpk()函数,由它可通过以上三个 MATLAB 变量构造出零极点对象,用于简单地表述零极点模型。该函数的调用格式为:G=zpk(Z,P,KGain) (9)例 4 某系统的零极点模型为:)6412

27、.03.)(27.1956.0( 987504) jsjsG该模型可以由下面的语句输入到 MATLAB 工作空间中。 KGain=6;- 10 -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.6412j;G=zpk(Z,P,KGain)运行结果:Zero/pole/gain:6 (s+1.929) (s2 + 0.0706s + 0.8637)-(s2 - 0.0866s + 0.413) (s2 + 1.913s + 2.421)注意:对于

28、单变量系统,其零极点均是用列向量来表示的,故 Z、P 向量中各项均用分号(;)隔开。3. 反馈系统结构图模型设反馈系统结构图如图 5 所示。控制系统工具箱中提供了 feedback()函数,用来求取反馈连接下总的系统模型,该函数调用格式如下:G=feedback(G1,G2,sign); (10)其中变量 sign 用来表示正反馈或负反馈结构,若 sign=-1 表示负反馈系统的模型,若省略 sign 变量,则仍将表示负反馈结构。G1 和 G2 分别表示前向模型和反馈模型的 LTI(线性时不变)对象。例 5 若反馈系统图 5 中的两个传递函数分别为:, 21)(sG1)(2sG则反馈系统的传递

29、函数可由下列的 MATLAB 命令得出 G1=tf(1,1,2,1);G2=tf(1,1,1);G=feedback(G1,G2)运行结果:Transfer function:s + 1-s3 + 3 s2 + 3 s + 2若采用正反馈连接结构输入命令 G=feedback(G1,G2,1)则得出如下结果:图 5 反馈系统结构图- 11 -Transfer function:s + 1-s3 + 3 s2 + 3 s例 6 若反馈系统为更复杂的结构如图 6 所示。其中, ,2450107)(2341 sssGsG510)(10.)(sH则闭环系统的传递函数可以由下面的 MATLAB 命令得出

30、: 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)得到结果:Transfer function:0.1 s5 + 10.75 s4 + 77.75 s3 + 278.6 s2 + 361.2 s + 120-0.01 s6 + 1.1 s5 + 20.35 s4 + 110.5 s3 + 325.2 s2 + 384 s + 1204. 有理分式模型与零极点模型的转换有了传递函数的有理分式模型之后,求取零极点模型就不是一件困难的事情了。在控制系统工具箱中,可以由 zpk()函

31、数立即将给定的 LTI 对象 G 转换成等效的零极点对象 G1。该函数的调用格式为:G1=zpk(G) (11)例 7 给定系统传递函数为:sssG5.1925.7.68)(34对应的零极点格式可由下面的命令得出 num=6.8, 61.2, 95.2;den=1, 7.5, 22, 19.5, 0;G=tf(num,den);G1=zpk(G)显示结果:Zero/pole/gain:6.8 (s+7) (s+2)-图 6 复杂反馈系统- 12 -s (s+1.5) (s2 + 6s + 13)可见,在系统的零极点模型中若出现复数值,则在显示时将以二阶因子的形式表示相应的共轭复数对。同样,对于

32、给定的零极点模型,也可以直接由 MATLAB 语句立即得出等效传递函数模型。调用格式为:G1=tf(G) (12)例 8 给定零极点模型:)5.1(23(7)8.6)(sjsG可以用下面的 MATLAB 命令立即得出其等效的传递函数模型。输入程序的过程中要注意大小写。 Z=-2,-7;P=0,-3-2j,-3+2j,-1.5;K=6.8;G=zpk(Z,P,K);G1=tf(G)结果显示:Transfer function:6.8 s2 + 61.2 s + 95.2-s4 + 7.5 s3 + 22 s2 + 19.5 s5. Simulink 建模方法在一些实际应用中,如果系统的结构过于复

33、杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的 Simulink 程序可以用来建立新的数学模型。Simulink 是由 Math Works 软件公司 1990 年为 MATLAB 提供的新的控制系统模型图形输入仿真工具。它具有两个显著的功能:Simul(仿真)与 Link(连接),亦即可以利用鼠标在模型窗口上“画”出所需的控制系统模型。然后利用 SIMULINK 提供的功能来对系统进行仿真或线性化分析。与MATLAB 中逐行输入命令相比,这样输入更容易,分析更直观。下面简单介绍 SIMULINK 建立系统模型的基本步骤:(1) SIMULINK 的启动:在 MATLAB 命令窗口的

34、工具栏中单击按钮 或者在命令提示符下键入 simulink 命令,回车后即可启动 Simulink 程序。启动后软件自动打开 Simullink模型库窗口,如图 7 所示。这一模型库中含有许多子模型库,如 Sources(输入源模块库)、Sinks(输出显示模块库)、Nonlinear(非线性环节)等。若想建立一个控制系统结构框图,则应该选择 File| New 菜单中的 Model 选项,或选择工具栏上 new Model 按钮,打开一个空白的模型编辑窗口如图 8 所示。图 7 simulink 模型库 图 8 模型编辑窗口- 13 -(2) 画出系统的各个模块:打开相应的子模块库,选择所需

35、要的元素,用鼠标左键点中后拖到模型编辑窗口的合适位置。(3) 给出各个模块参数:由于选中的各个模块只包含默认的模型参数,如默认的传递函数模型为 1/(s+1)的简单格式,必须通过修改得到实际的模块参数。要修改模块的参数,可以用鼠标双击该模块图标,则会出现一个相应对话框,提示用户修改模块参数。(4) 画出连接线:当所有的模块都画出来之后,可以再画出模块间所需要的连线,构成完整的系统。模块间连线的画法很简单,只需要用鼠标点按起始模块的输出端(三角符号) ,再拖动鼠标,到终止模块的输入端释放鼠标键,系统会自动地在两个模块间画出带箭头的连线。若需要从连线中引出节点,可在鼠标点击起始节点时按住 Ctrl

36、 键,再将鼠标拖动到目的模块。(5)指定输入和输出端子:在 Simulink 下允许有两类输入输出信号,第一类是仿真信号,可从 source(输入源模块库)图标中取出相应的输入信号端子,从 Sink(输出显示模块库)图标中取出相应输出端子即可。第二类是要提取系统线性模型,则需打开Connection(连接模块库)图标,从中选取相应的输入输出端子。例 9 典型二阶系统的结构图如图 9 所示。用 SIMULINK 对系统进行仿真分析。按前面步骤,启动 simulink 并打开一个空白的模型编辑窗口。(1) 画出所需模块,并给出正确的参数: 在 sources 子模块库中选中阶跃输入(step)图标

37、,将其拖入编辑窗口,并用鼠标左键双击该图标,打开参数设定的对话框,将参数 step time(阶跃时刻)设为0。 在 Math(数学)子模块库中选中加法器(sum)图标,拖到编辑窗口中,并双击该图标将参数 List of signs(符号列表)设为|+-(表示输入为正,反馈为负) 。 在 continuous(连续)子模块库中、选积分器(Integrator)和传递函数(Transfer Fcn)图标拖到编辑窗口中,并将传递函数分子(Numerator)改为900 ,分母(Denominator)改为1,9 。 在 sinks(输出)子模块库中选择 scope(示波器)和 Out1(输出端口模

38、块)图标并将之拖到编辑窗口中。(3)将画出的所有模块按图 9 用鼠标连接起来,构成一个原系统的框图描述如图 10 所示。(4)选择仿真算法和仿真控制参数,启动仿真过程。 在编辑窗口中点击 Simulation|Simulation parameters 菜单,会出现一个参数对话框,在 solver 模板中设置响应的仿真范围 StartTime(开始时间)和 StopTime(终止时间),仿真步长范围 Maxinum step size(最大步长)和 Mininum step size(最小步长)。对于本例,StopTime 可设置为 2。最后点击 Simulation|Start 菜单或点击相

39、应的热键启动图 9 典型二阶系统结构图- 14 -仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果如图 11所示。在命令窗口中键入 whos 命令,会发现工作空间中增加了两个变量tout 和 yout,这是因为 Simulink 中的 Out1 模块自动将结果写到了 MATLAB 的工作空间中。利用 MATLAB命令 plot(tout,yout),可将结果绘制出来,如图 12 所示。比较 11 和 12,可以发现这两种输出结果是完全一致的。(2) 利用 MATLAB 进行时域分析1. 线性系统稳定性分析线性系统稳定的充要条件是系统的特征根均位于 S 平面的左半部分。系统的

40、零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB 语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。(1)直接求特征多项式的根设 p 为特征多项式的系数向量,则 MATLAB 函数 roots()可以直接求出方程 p=0 在复数范围内的解 v,该函数的调用格式为:v=roots(p) (13)图 10 二阶系统的 simulink 实现图 11 仿真结果示波器显示 图 12 MATLAB 命令得出的系统响应曲线- 15 -例 10 已知系统的特征多项式为:1235xx特征方程的解可由下面的 MATLAB 命令得出。 p=1,0,3,2,1,1;v=roots(p)结果显

41、示:v =0.3202 + 1.7042i0.3202 - 1.7042i-0.7209 0.0402 + 0.6780i0.0402 - 0.6780i利用多项式求根函数 roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。(2)由根创建多项式如果已知多项式的因式分解式或特征根,可由 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)

42、结果显示p =1.0000 -0.0000 3.0000 2.0000 1.0000 1.0000由此可见,函数 roots()与函数 poly()是互为逆运算的。(3)多项式求值在 MATLAB 中通过函数 polyval()可以求得多项式在给定点的值,该函数的调用格式为:polyval(p,v) (15)对于上例中的 p 值,求取多项式在 x 点的值,可输入如下命令: p=1,0,3,2,1,1;x=1polyval(p,x)结果显示ans =8 (4)部分分式展开考虑下列传递函数:nnasabbdenumsNM10)(- 16 -式中 ,但是 和 中某些量可能为零。0aiajbMATLA

43、B 函数可将 展开成部分分式,直接求出展开式中的留数、极点和余项。该)(sNM函数的调用格式为:),(,denumreikp(16)则 的部分分式展开由下式给出:)(sNM)()2()1()( sknpsrpsrsr 式中 , , ,为极点,1)(p2n, , 为各极点的留数, 为余项。r2rnr)( )(sk例 11 设传递函数为:61352)(32ssG该传递函数的部分分式展开由以下命令获得: num=2,5,3,6; den=1,6,11,6;r,p,k=residue(num,den)命令窗口中显示如下结果r= p= k=-6.0000 -3.0000 2-4.0000 -2.0000

44、3.0000 -1.0000中留数为列向量 r,极点为列向量 p,余项为行向量 k。由此可得出部分分式展开式: 21346)(ssG该函数也可以逆向调用,把部分分式展开转变回多项式 之比的形式,命令格式)(sNM为:num,den=residue(r,p,k) (17)对上例有: num,den=residue(r,p,k)结果显示- 17 -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 重极点。在这种情况下,部分分式展开式将包括

45、下列诸项:mjpsrjpsrjsr )(1)(1)(2例 12 设传递函数为:13)1(3)22 sssG则部分分式展开由以下命令获得: v=-1,-1,-1num=0,1,2,3;den=poly(v);r,p,k=residue(num,den)结果显示r=1.00000.00002.0000p=-1.0000-1.0000-1.0000k= 其中由 poly()命令将分母化为标准降幂排列多项式系数向量 den, k=为空矩阵。由上可得展开式为:0)1(2)(01)( 3ssG(5)由传递函数求零点和极点。在 MATLAB 控制系统工具箱中,给出了由传递函数对象 G 求出系统零点和极点的函

46、数,其调用格式分别为:Z=tzero(G) (18)P=G.P1 (19)注意:式 19 中要求的 G 必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号表示的矩阵元素,详细内容参阅后面章节。例 13 已知传递函数为:sss5.1925.7.68)(34- 18 -输入如下命令:num=6.8,61.2,95.2;den=1,7.5,22,19.5,0;G=tf(num,den);G1=zpk(G);Z=tzero(G)P=G1.P1结果显示Z =-7-2P =0 -3.0000 + 2.0000i-3.0000 - 2.0000i-1.5000 其结果与例 8 完全一致。(6)零极点分布图。在 MATLAB 中,可利用 pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数调用格式为:pzmap(num,den) (20)例 14 给定传递函数:2743652)(235 sssG利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图 13 所示。 num=3,2,5,4,6;den=1,3,4,2,7,2;pzmap(num,den)title(Pole-Zero Map) % 图形标

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报