ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:260.72KB ,
资源ID:18019938      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18019938.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自动控制原理Matlab仿真应用Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自动控制原理Matlab仿真应用Word文件下载.docx

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

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

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

4、有变量都是矩阵。这就是说,MATLAB只有一种数据形式,那就是矩阵,或者数的矩形阵列。标量可看作为11的矩阵,向量可看作为n1或1n的矩阵。这就是说,MATLAB语言对矩阵的维数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB会自动获取所需的存储空间。输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下:(1) 元素之间用空格或逗号间隔;(2) 用中括号()把所有元素括起来;(3) 用分号(;)指定行结束。例如,在MATLAB的工作空间中,输入: 则输出结果为:矩阵a被一直保存在工作空间中,以供后面使用,直至修改它。MATLAB的矩阵输入方式很灵活,大矩阵可以分成n行输入,用回车符

5、代替分号或用续行符号()将元素续写到下一行。例如:以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号()。在MATLAB中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:(1) 利用内部语句或函数产生矩阵;(2) 利用M文件产生矩阵;(3) 利用外部数据文件装入到指定矩阵。(2)MATLAB图形窗口当调用了一个产生图形的函数时,MATLAB会自动建立一个图形窗口。这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。图形窗口中的图形可通过打印机打印出来。若想将图形导出并保存,可用鼠标点击菜

6、单File|Export,导出格式可选emp、bmp、jpg等。命令窗口的内容也可由打印机打印出来:如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。(3)剪切板的使用利用Windows的剪切板可在MATLAB与其它应用程序之间交换信息。(1) 要将MATLAB的图形移到其它应用程序,首先按Alt-Print Screen键,将图形复制到剪切板中,然后激活其它应用程序,选择edit(编辑)中的paste(粘贴),就可以在应用程序中得到MATLAB中的图形。当然还可以借助于copy to Bitmap或copy to Metafile选项来传递图形信

7、息。(2) 要将其它应用程序中的数据传递到MATLAB,应先将数据放入剪切板,然后在MATLAB中定义一个变量来接收。如键入:q= 然后选择Edit中的paste,最后加上“”,这样可将应用程序中的数据送入MATLAB的q变量中。(4)MATLAB编程指南MATLAB的编程效率比BASIC、C、FORTRAN和PASCAL等语言要高,且易于维护。在编写小规模的程序时,可直接在命令提示符后面逐行输入,逐行执行。对于较复杂且经常重复使用的程序,可按7.1.3介绍的方法进入程序编辑器编写M文件。M文件是用MATLAB语言编写的可在MATLAB环境中运行的磁盘文件。它为脚本文件(Script File

8、)和函数文件(Function File),这两种文件的扩展名都是.m。(1) 脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。脚本文件的语句可以访问MATLAB工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。例如下述语句如果以.m为扩展名存盘,就构成了M脚本文件,我们不妨将其文件名取为“Step_Response”。 % 用于求取一阶跃响应。num=1 4; den=1 2 8;当你键入help Step_Response时,屏幕上将显示文件开头部分的注释:用于求取一阶跃响应。很显然,在每一个M文件的开头,建立详细的注释是非常有用的。由于MATLAB提供了大量的命令和函数

9、,想记住所有函数及调用方法一般不太可能,通过联机帮助命令help可容易地对想查询的各个函数的有关信息进行查询。该命令使用格式为:help命令或函数名注意:若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在MATLAB的搜索路径上。当调用时,只需输入文件名,MATLAB就会自动按顺序执行文件中的命令。(2) 函数文件是用于定义专用函数的,文件的第一行是以function作为关键字引导的,后面为注释和函数体语句。函数就像一个黑箱,把一些数据送进去,经加工处理,再把结果送出来。在函数体内使用的除返回变量和输入变量这些在第一行functon语句中直接引用的变量外,其它所有变量都是局部变量,

10、执行完后,这些内部变量就被清除了。函数文件的文件名与函数名相同(文件名后缀为.m),它的执行与命令文件不同,不能键入其文件名来运行函数,M函数必须由其它语句来调用,这类似于C语言的可被其它函数调用的子程序。M函数文件一旦建立,就可以同MATLAB基本函数库一样加以使用。例1求一系列数的平均数,该函数的文件名为“mean.m” function y=mean(x)% 这是一个用于求平均数的函数w=length(x); % length函数表示取向量x的长度y=sum(x)/w; % sun函数表示求各元素的和该文件第一行为定义行,指明是mean函数文件,y 是输出变量,x是输入变量,其后的开头的

11、文字段是说明部分。真正执行的函数体部分仅为最后二行。其中变量w是局部变量,程序执行完后,便不存在了。在MATLAB命令窗口中键入 r=1:10; % 表示r变量取1到10共10个数mean(r)运行结果显示ans = 5.5000 该例就是直接使用了所建立的M函数文件,求取数列r的平均数。3 MATLAB在控制系统中的应用MATLAB是国际控制界目前使用最广的工具软件,几乎所有的控制理论与应用分支中都有MATLAB工具箱。本节结合前面所学自控理论的基本内容,采用控制系统工具箱(Control Systems Toolbox)和仿真环境(Simulink),学习MATLAB的应用。(1) 用MA

12、TLAB建立传递函数模型1有理函数模型线性系统的传递函数模型可一般地表示为: (1)将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量和,就可以轻易地将传递函数模型输入到MATLAB环境中。命令格式为:; (2) (3)在MATLAB控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。从而使得系统模型的输入和处理更加方便。该函数的调用格式为:Gtf(num,den);(4)例2一个简单的传递函数模型:可以由下面的命令输入到MATLAB工作空间中去。num=1,5;den=1,2,3,4,5;G=tf(num,den)运行结果:Tr

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

14、从而表示复杂的计算。2.零极点模型线性系统的传递函数还可以写成极点的形式: (5)将系统增益、零点和极点以向量的形式输入给三个变量、Z和P,就可以将系统的零极点模型输入到MATLAB工作空间中,命令格式为: (6) (7) (8)在MATLAB控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB变量构造出零极点对象,用于简单地表述零极点模型。3. 反馈系统结构图模型设反馈系统结构图如图5所示。图5反馈系统结构图 控制系统工具箱中提供了feedback()函数,用来求取反馈连接下总的系统模型,该函数调用格式如下:G=feedback(G1,G2,sign); (10)其中变量sig

15、n用来表示正反馈或负反馈结构,若sign=-1表示负反馈系统的模型,若省略sign变量,则仍将表示负反馈结构。G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。例5若反馈系统图5中的两个传递函数分别为: ,则反馈系统的传递函数可由下列的MATLAB命令得出 G1=tf(1,1,2,1); G2=tf(1,1,1); G=feedback(G1,G2)运行结果: s + 1-s3 + 3 s2 + 3 s + 2若采用正反馈连接结构输入命令 G=feedback(G1,G2,1)则得出如下结果:-s3 + 3 s2 + 3 s5. Simulink建模方法在一些实际应用中,如果系统

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

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

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

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

20、ime(阶跃时刻)设为0。 在Math(数学)子模块库中选中加法器(sum)图标,拖到编辑窗口中,并双击该图标将参数List of signs(符号列表)设为|+-(表示输入为正,反馈为负)。 在continuous(连续)子模块库中、选积分器(Integrator)和传递函数(Transfer Fcn)图标拖到编辑窗口中,并将传递函数分子(Numerator)改为900,分母(Denominator)改为1,9。 在sinks(输出)子模块库中选择scope(示波器)和Out1(输出端口模块)图标并将之拖到编辑窗口中。(3)将画出的所有模块按图9用鼠标连接起来,构成一个原系统的框图描述如图1

21、0所示。(4)选择仿真算法和仿真控制参数,启动仿真过程。 在编辑窗口中点击Simulation|Simulation parameters菜单,会出现一个参数对话框,在solver模板中设置响应的仿真范围StartTime(开始时间)和StopTime(终止时间),仿真步长范围Maxinum step size(最大步长)和Mininum step size(最小步长)。对于本例,StopTime可设置为2。最后点击Simulation|Start菜单或点击相应的热键启动仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果如图11所示。图10 二阶系统的simulink实现在命

22、令窗口中键入whos命令,会发现工作空间中增加了两个变量tout和yout,这是因为Simulink中的Out1 模块自动将结果写到了MATLAB的工作空间中。利用MATLAB命令plot(tout,yout),可将结果绘制出来,如图12所示。比较11和12,可以发现这两种输出结果是完全一致的。图11仿真结果示波器显示(2) 利用MATLAB进行时域分析1. 线性系统稳定性分析 线性系统稳定的充要条件是系统的特征根均位于S平面的左半部分。系统的零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。例11 设传递函数为: 该传递

23、函数的部分分式展开由以下命令获得: 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 3.0000 -1.0000中留数为列向量r,极点为列向量p,余项为行向量k。由此可得出部分分式展开式:例12 设传递函数为: 则部分分式展开由以下命令获得: v=-1,-1,-1num=0,1,2,3; den=poly(v);r,p,k=residue(num,den)结果显示r=1.00000.00002.0000p=-1.0000k= 其中由pol

24、y()命令将分母化为标准降幂排列多项式系数向量den, k=为空矩阵。由上可得展开式为:(5)由传递函数求零点和极点。在MATLAB控制系统工具箱中,给出了由传递函数对象G求出系统零点和极点的函数,其调用格式分别为:Z=tzero(G) (18)P=G.P1 (19)式19中要求的G必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号表示的矩阵元素,详细内容参阅后面章节。例13 已知传递函数为:输入如下命令: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.P1Z = -7 -2P = 0 -3.0000 + 2.0000i -3.0000 - 2.0000i -1.5000 其结果与例8完全一致。(6)零极点分布图。 在MATLAB中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数调用格式为:pzmap(num,den) (20)例 14 给定传递函数: 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图13所示。 num=3,2,5,4,6; den=1,3,4,2,7,2;p

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1