Matlab控制工程基础.ppt_第1页
Matlab控制工程基础.ppt_第2页
Matlab控制工程基础.ppt_第3页
Matlab控制工程基础.ppt_第4页
Matlab控制工程基础.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、Matlab软件工具在控制系统分析与综合中的应用,Matlab中控制系统的描述,部分分数展开控制系统的时间响应分析,控制系统的频域响应分析,根轨迹图,系统稳定性分析,Simulink仿真工具,1。matlab的基本特性,Matlab简介:由美国的莫勒博士于1980年左右构思和开发的;matlab的原始版本是用fortran语言编写的,而当前版本是用C语言重写的。1992年,具有划时代意义的matlab 4.0版本问世;1993年推出了windows平台下的微机版本,现在更新的版本是6.1版。Matlab语言特点:Matlab以复数矩阵为最基本的运算单元,可以整体处理,也可以独立处理其中的一个或

2、几个元素。在matlab中,数据存储/输入/输出是基于矩阵的,矩阵和其他变量不需要预先定义。matlab语言中赋值的基本句子结构是变量名列表=表达式,等号右边的表达式可以以分号、逗号或换行符结尾,但它们的含义不同。如果以分号结束,左边的变量结果将不会显示在屏幕上,否则,将显示左边返回矩阵的所有内容。例如,A=1,0,1;1,0,0;2,1,0;B=1,0,2;2,1,1;1,0,1 b=10221101,在matlab下,矩阵A和矩阵B的乘积(假设A和B矩阵是乘法的)可以简单地通过运算C=A*B c=203102415,D=A * B是点积运算,这意味着A和B矩阵D=a. * b d=1022

3、00200之间的对应关系,在matlab下提供了两种文件格式:M文件,而matlab函数M文件是一个普通的ascii码在这样的文件中,只有matlab语言支持的语句,这类似于dos下的批处理文件。它的执行模式非常简单。用户只需要在matlab的提示下输入M文件的文件名,这样MATLAB就会自动执行M文件中的每一条语句。它采用文本模式,编程效率高,可读性强。Matlab函数是最常用的特殊m文件,以函数语句为指导。其基本格式如下:函数返回变量列表=函数名称(输入变量列表)注释语句段。调用函数体语句时,在matlab提示符下键入函数名,包括输入变量。类似于C语言的子程序调用。例如,函数plot _

4、sin (xmin,xmax) x=xmin3360min (0.01,(xmax-xmin)/100): max;图(x,sin(x);%这是一个演示,2。matlab中控制系统的描述。要分析这个系统,你首先需要能够描述这个系统。例如,系统以传递函数的形式描述。在matlab中,num=b1,b2,bm,bm1和den=a1,a2,an,an1分别表示分子和分母的多项式系数,然后可以用下面的语句来表示系统sys=tf(num,den),其中tf()表示描述系统的传递函数,它也可以用零极点的形式来描述。该语句为sys1=zpk(sys),传递函数形式和零极点形式可以相互转换。该语句为z,p,k

5、=tf2zp (num,den) num,den=zp2tf (z,p,k)。当传递函数很复杂时,它是由多项式乘法函数conv()实现的。例如,den1=1,2,2den2=2,3,3den=Conv (den1,den2),3。执行部分分数展开。对于下面的传递函数,num和den分别表示传递函数的分子和分母的系数,即numbo,bl,bn den1,al。命令r、p、kr。den)将在传递函数的部分分数展开中找到余数、极点和余数,即get,例如:对于以下系统传递函数,分子分母表示为num0,1,3 den1,3,2,命令r,p,kresidue(num,Den)用于获取r,p,kresidu

6、e(num,Den) r20000 10000 p 10000 2.0000 k,即相反,通过使用以下命令num,denresidence 部分分数展开可以返回到传递函数多项式的比率的形式,即num,denresidence (r,P,K)Num0.0000 1.0000 3.0000 den=1.0000 3.0000 2.0000,当包括m个极点时,部分分数展开将包括以下m项:对于以下系统,传递函数的分子分母使用命令R表示为Num 0,1,2,3 Den1,3,1 den1 3 3 1;r,p,kresidue(num,den)r 1.0000 0.0000 2.0000 p 1.0000

7、 l.0000 k,即4。线性系统的时间响应分析。Matlab的控制工具箱提供了许多在特定输入下模拟线性系统的功能。例如,阶跃输入激励下连续时间系统的模拟函数step(),脉冲激励下的脉冲()和任意输入激励下的lsim()等。其中阶跃响应函数step()的调用格式为y,x=step(sys,t)或y,x=step (sys),其中sys可从tf()或zpk()获得。该函数仅返回模拟数据,但不在屏幕上绘制模拟图形。返回值Y是系统在每个模拟时间的输出形成的矩阵,而X是自动选择的状态变量的时间响应数据。如果用户对具体的响应值不感兴趣,而只想画出系统的阶跃响应曲线,阶跃(sys,t)或阶跃(sys)可

8、以按以下格式调用,脉冲()和阶跃()函数的调用格式是完全一致的,而模拟函数lsim()在任意输入下的调用格式略有不同。因为在调用这个函数时还应该给出一个输入表向量,所以这个函数的调用格式是y,x=lsim(sys,u,t),其中u是由给定输入组成的列向量,它的元素个数应该与t的个数一致。当然,如果这个函数调用时没有返回参数,它也可以直接画出响应曲线。例如,t=0:0.01:5u=sin(t);Lsim(sys,u,t)是模拟单输入模型sys在5秒内对u(t)=sin(t)的输入响应。MATLAB还为离散时间系统提供仿真功能,包括阶跃响应函数dstep()和脉冲响应函数dimpulse()以及任

9、意输入响应函数dlsim()等。它们的调用方法与连续系统的调用方法并不完全一致,因此读者可以参考MATLAB的帮助,例如,在MATLAB的提示下键入help dstep来理解它们的调用方法。时域分析中常用的函数如下:阶跃-阶跃响应脉冲-脉冲响应LSIM-连续输出发电机组到指定的输入-输入信号阶跃到lsim-单位阶跃输入,例如,对于下列系统传递函数,系统的单位阶跃响应曲线将在下面的MATLAB程序1.1中给出。单位阶跃响应曲线如图1所示。- MATLAB程序1.1 - num0,0,50;den25,2,1;阶跃(数字,den)网格标题(g (s)=50/(25S22S1)的单位阶跃响应),对于

10、下列系统的传递函数,下列MATLAB程序1.2将给出系统的单位脉冲响应曲线。单位脉冲响应曲线如图2所示。- MATLAB程序1.2 - num0,0,50;den25,2,1;脉冲(num,den)网格标题(单位-G(s)的脉冲响应)=50/(25S22S1),在MATLAB中没有斜坡响应命令,所以您可以使用阶跃响应命令找到斜坡响应,首先用s除G(s),然后使用阶跃响应命令。例如,考虑下面的闭环系统:对于单位斜率的输入,下面的MATLAB程序1.3将给出系统的单位斜率响应曲线。单位斜率响应曲线如图3所示。,- MATLAB程序1.3 - num0,0,0,50;den25,2,1,0;t=0:

11、0.01:100梯级(数字,den,t)网格标题(g(s)=50/(25S 21)的单位梯级斜坡响应),5。控制系统的频域响应分析。如果系统的传递函数模型已知,如第2节所示,系统的频率响应可通过以下陈述实现。如果有一个频率向量,那么GW=聚合值(其中num和den是系统的分子分母多项式系数向量。MATLAB提供了多种函数来计算和绘制系统频率响应曲线,如bode(),Nyquist()等,其中Bode()函数的调用格式为m,p=bode(num,den,w)。这里,num、den与前面的描述相同,w是由频率点组成的向量,其中M和p分别表示波德响应的幅度向量和相位向量。如果用户只想绘制系统的bod

12、e图,但对获得振幅和相位的具体值不感兴趣,可以通过以下更简单的格式调用Bode()函数bode(num,den,w)或bode(num,den),然后该函数将根据模型的变化自动选择更合适的频率范围。奈奎斯特曲线绘制函数奈奎斯特()类似于波德()函数。帮助nyquist了解其调用方法。系统性能分析经常涉及幅度裕度和相位裕度的问题。控制工具箱提供的裕量()函数可以直接计算系统的幅值裕量和相位裕量。该函数的调整格式为Gm,Pm,wcg,wcp=余量(num,den)。可以看出,该函数可以从系统的传递函数直接计算出系统的幅值裕度Gm和相位裕度Pm,常用的频域分析函数如下:波德-频率响应波德图尼奎斯特图

13、尼科尔斯-频率响应尼科尔斯图freq esp-计算频率响应数据裕度-幅值裕度和相位裕度Pzmap-使用极点-零点图时可以使用它们的帮助,如帮助波德。此外,命令lt view可以绘制时域响应和频域响应图,并使用帮助lt view查看操作说明。对于下列系统的传递函数,该系统的相应波特图将在下面的MATLAB程序1.4中给出。波特图如图4所示。- MATLAB程序1.4 - num0,0,50;den25,2,1;Bode(num,den)网格标题(g (s)=50/(25S22S1)的Bode图),如果要绘制0.01弧度/秒到1000弧度/秒的bode图,可以输入以下命令:w=logspace(-

14、2,3,100) bode(num,den,W)该命令产生100个点,在0.01弧度/秒和100弧度/秒之间的对数刻度上距离相等。对于下列系统的传递函数,MATLAB程序1.5将给出该系统相应的伯德图。波特图如图5所示。- MATLAB程序1.5 -数=10,30;den1=1,2,0;den2=1,1,2;Den=conv (Den1,den2) w=对数空间(-2,3,100) bode (num,den,w)grid title(g(s)=10(s(s)3)/s(s(s(s)2)的bode图),对于下列系统传递函数,下面的MATLAB它是一个qvist图,如图6所示。- MATLAB程序

15、1.6 - num0,0,50;den25,2,1,奈奎斯特(num,den)标题(g (s)=50/(25S22S1)的奈奎斯特图),6。控制系统根轨迹图。下面的MATLAB命令通常用于绘制根轨迹r focus(num,den)。用这个命令,你可以在屏幕上得到绘制的根轨迹图。自动确定增益矢量k。命令rlocus适用于连续和离散时间系统。对于状态空间中定义的系统,它的命令是r focus(A,b,c,d)。MATLAB在绘图命令中还包括自动轴校准功能。对于一个单元反馈控制系统,其开环传递函数如下:MATLAB程序1.7将给出相应的系统根轨迹图。根轨迹如图7所示。MATLAB程序1.7数=1,3;den1=1,2,0;den2=1,1,2;den=conv(den1,den2)r focus(num,den)v=-10 10 10

温馨提示

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

评论

0/150

提交评论