Matlab在自动控制理论中应用

上传人:夏** 文档编号:569138233 上传时间:2024-07-27 格式:PPT 页数:72 大小:1,012.50KB
返回 下载 相关 举报
Matlab在自动控制理论中应用_第1页
第1页 / 共72页
Matlab在自动控制理论中应用_第2页
第2页 / 共72页
Matlab在自动控制理论中应用_第3页
第3页 / 共72页
Matlab在自动控制理论中应用_第4页
第4页 / 共72页
Matlab在自动控制理论中应用_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《Matlab在自动控制理论中应用》由会员分享,可在线阅读,更多相关《Matlab在自动控制理论中应用(72页珍藏版)》请在金锄头文库上搜索。

1、Matlab在自动控制理论中的应用在自动控制理论中的应用MATLAB概述概述MATLAB进行模型处理进行模型处理用用MATLAB进行动态响应分析进行动态响应分析用用MATLAB绘制系统的根轨迹绘制系统的根轨迹MATLAB频率特性分析频率特性分析MATLAB离散控制系统分析离散控制系统分析1MATLABMATLAB语言基础语言基础 2 一、一、MATLAB语言的发展语言的发展 matlab语言是由美国语言是由美国CleverMoler博士于博士于1980年开发的。年开发的。设计者的初衷是为解决设计者的初衷是为解决“线性代数线性代数”课程的矩阵运算问题。课程的矩阵运算问题。取名取名MATLAB即即

2、MatrixLaboratory矩阵实验室的意思。矩阵实验室的意思。*MATLAB的历史:的历史:70年代后期美国新墨西哥大学年代后期美国新墨西哥大学clevemoler为为linspack和和eispack编写的接口程序。编写的接口程序。80年代初,用年代初,用C编写的编写的MATLAB二代版本。二代版本。1984,MATHWORKS公司成立。(图形处理,数值计算、公司成立。(图形处理,数值计算、符号计算、文字处理、数学建模、实时控制、动态仿真)符号计算、文字处理、数学建模、实时控制、动态仿真)3计算机语言的发展计算机语言的发展数值运算解析运算管理、可视化智能化标志着计算机语言向标志着计算机

3、语言向“智能化智能化”方向发展,被称为第四代编程语言。方向发展,被称为第四代编程语言。它将一个优秀软件的易用性与可靠性、通用性与专业性它将一个优秀软件的易用性与可靠性、通用性与专业性、一般目的的应用与高深的科学技术应用有机的相结合。一般目的的应用与高深的科学技术应用有机的相结合。MATLAB是一种直译式的高级语言,比其它程序设计语言是一种直译式的高级语言,比其它程序设计语言容易。容易。MATLAB语言与其它语言的关系仿佛和语言与其它语言的关系仿佛和C语言与汇语言与汇编语言的关系一样。编语言的关系一样。4MATLAB已经不仅仅是一个已经不仅仅是一个“矩阵实验室矩阵实验室”了,它集科学计了,它集科

4、学计算、图象处理、声音处理于一身,并提供了丰富的算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法图形界面设计方法MATLAB语言是功能强大的计算机高级语言语言是功能强大的计算机高级语言,它以超群的风它以超群的风格与性能风靡全世界格与性能风靡全世界,成功地应用于各工程学科的研究领域成功地应用于各工程学科的研究领域MATLAB在美国已经作为大学工科学生必修的计算机语言之在美国已经作为大学工科学生必修的计算机语言之一一(C,FORTRAN,ASSEMBLER,MATLAB)近年来,近年来,MATLAB语言已在我国推广使用,现在已应用于各语言已在我国推广使用,现在已应用于各学

5、科研究部门和许多高等院校学科研究部门和许多高等院校MATLAB语言不受计算机硬件的影响,语言不受计算机硬件的影响,286以上的计算机都以上的计算机都可以使用可以使用5二、二、matlab能在各领域做什么能在各领域做什么 工业研究与开发工业研究与开发数学教学,特别是线性代数数学教学,特别是线性代数数值分析和科学计算方面的教学与研究数值分析和科学计算方面的教学与研究电子学、控制理论和物理学等工程和科学学科方面电子学、控制理论和物理学等工程和科学学科方面的教学与研究的教学与研究经济学、化学和生物学等计算问题的所有其他领域经济学、化学和生物学等计算问题的所有其他领域中的教学与研究中的教学与研究6三、三

6、、MATLAB语言的特点:语言的特点:语言简洁紧凑,语法限制不严,程序设计语言简洁紧凑,语法限制不严,程序设计自由度大,可移植性好自由度大,可移植性好运算符、库函数丰富运算符、库函数丰富图形功能强大图形功能强大界面友好、编程效率高界面友好、编程效率高扩展性强扩展性强7四、四、MATLAB语言的功能:语言的功能:强大的数值(矩阵)运算功能强大的数值(矩阵)运算功能广泛的符号运算功能广泛的符号运算功能高级与低级兼备的图形功能(计算结果的可高级与低级兼备的图形功能(计算结果的可视化功能)视化功能)可靠的容错功能可靠的容错功能应用灵活的兼容与接口功能应用灵活的兼容与接口功能信息量丰富的联机检索功能信息

7、量丰富的联机检索功能81.矩阵运算功能矩阵运算功能MATLAB提供了丰富的矩阵运算处理功能,是提供了丰富的矩阵运算处理功能,是基于矩阵运算基于矩阵运算的处理工具的处理工具。变量变量矩阵矩阵,运算,运算矩阵的运算矩阵的运算例如例如C=A+B,A,B,C都是矩阵都是矩阵,是矩阵的加运算是矩阵的加运算即使一个常数,即使一个常数,Y=5,MATLAB也看做是一个也看做是一个1 1的矩阵的矩阵2.符号运算功能符号运算功能符号运算即用字符串进行数学分析符号运算即用字符串进行数学分析允许变量不赋值而参与运算允许变量不赋值而参与运算用于解代数方程、微积分、复合导数、积分、二重积分、有用于解代数方程、微积分、复

8、合导数、积分、二重积分、有理函数、微分方程、泰乐级数展开、寻优等等,可求得解析理函数、微分方程、泰乐级数展开、寻优等等,可求得解析符号解符号解93.丰富的绘图功能与计算结果的可视化丰富的绘图功能与计算结果的可视化具有高层绘图功能具有高层绘图功能两维、三维绘图两维、三维绘图具有底层绘图功能具有底层绘图功能句柄绘图句柄绘图使用使用plot函数可随时将计算结果可视化函数可随时将计算结果可视化4.图形化程序编制功能图形化程序编制功能动态系统进行建模、仿真和分析的软件包动态系统进行建模、仿真和分析的软件包用结构图编程,而不用程序编程用结构图编程,而不用程序编程只需拖几个方块、连几条线,即可实现编程功能只

9、需拖几个方块、连几条线,即可实现编程功能10115.丰富的丰富的MATLAB工具箱工具箱MATLAB主工具箱主工具箱符号数学工具箱符号数学工具箱SIMULINK仿真工具箱仿真工具箱控制系统工具箱控制系统工具箱信号处理工具箱信号处理工具箱图象处理工具箱图象处理工具箱通讯工具箱通讯工具箱系统辨识工具箱系统辨识工具箱神经元网络工具箱神经元网络工具箱金融工具箱金融工具箱许多学科,在许多学科,在MATLAB中都有专用工具箱,现已有中都有专用工具箱,现已有30多个工多个工具箱,但具箱,但MATLAB语言的扩展开发还远远没有结束,各学科语言的扩展开发还远远没有结束,各学科的相互促进,将使得的相互促进,将使得

10、MATLAB更加强大。更加强大。126.MATLAB的开放式可扩充结构的开放式可扩充结构matlab所有函数都是开放的所有函数都是开放的用户可按自己意愿随意更改用户可按自己意愿随意更改正因为此功能,使得正因为此功能,使得matlab的应用越来越广泛的应用越来越广泛7.强大的联机检索帮助系统强大的联机检索帮助系统可随时检索可随时检索matlab函数函数可随时查询可随时查询matlab函数的使用方法函数的使用方法131、启动启动MATLAB开机执行程序开机执行程序c:matlabbinmatlab.exe用鼠标双击用鼠标双击matlab图标图标即可打开即可打开matlab命令平台命令平台五、初步认

11、识五、初步认识Matlab14启动平台工作空间窗口命令历史记录当前路径窗口命令窗口15与与Windows的窗口界面类似,有菜单项、的窗口界面类似,有菜单项、Option、Windows、Help等项可以选择。等项可以选择。工作窗出现以后,即可进行各种操作工作窗出现以后,即可进行各种操作16菜单项File,其功能如下New建立新文件建立新文件OpenM-File打开打开M-文件文件Openselected打开选定文件打开选定文件SaveWorkspaceAs将工作区存为将工作区存为RunM-File运行运行M-文件文件LookForSelected寻找选定文件寻找选定文件Print打印打印Pri

12、ntSetup打印设置打印设置ExitMATLAB 退出退出MATLAB17例、用一个简单命令求解线性系统 3x1+ x2 - x3 = 3.6 x1+2x2+4x3 = 2.1 -x1+4x2+5x3 = -1.4A=3 1 -1;1 2 4;-1 4 5;b=3.6;2.1;-1.4;x=Abx = 1.4818 -0.4606 0.3848对于线性系统有Ax=b18例、用简短命令计算并绘制在0x6范围内的sin(2x)、sinx2、sin2x。x=linspace(0,6)y1=sin(2*x),y2=sin(x.2),y3=(sin(x).2;plot(x,y1,x, y2,x, y3

13、)19用四种方法描述cos(x)*sin(y)图形2021六、六、matlab的数据与变量的数据与变量1.变量查询函数变量查询函数who与与whos2.2.作用都是列出在作用都是列出在matlabmatlab工作空间中已经驻留的变量名清单工作空间中已经驻留的变量名清单3.3.不同的是不同的是whoswhos在给出驻留变量的同时,还给出他们的维数及在给出驻留变量的同时,还给出他们的维数及性质性质2.永久变量永久变量 在在matlabmatlab工作内存中工作内存中, ,驻留了几个由系统本身在启动时定义驻留了几个由系统本身在启动时定义 的变量,我们称为永久变量的变量,我们称为永久变量 永久变量用永

14、久变量用whowho指令是查看不到的,只可随时调用指令是查看不到的,只可随时调用3.what程序查询指令程序查询指令what按扩展名分类列出当前目录上的文件按扩展名分类列出当前目录上的文件what*.m列出当前目录中所有列出当前目录中所有m文件文件22七、文件系统与路径函数七、文件系统与路径函数which列出指定文件所在的目录列出指定文件所在的目录whichtest.m显示显示test.m所在的路径所在的路径path路径函数路径函数path显示显示matlab启动时设定的搜索路径启动时设定的搜索路径path(path,c:mydir)将根目录下的将根目录下的mydir临时临时纳纳入搜索路径入搜

15、索路径可将你需要的目录永久纳入可将你需要的目录永久纳入matlab搜索路径搜索路径打开打开c:matlabmatlabrc.m文件文件在所有搜索路径后加上在所有搜索路径后加上c:mydir;,23八、八、matlab联机帮助命令联机帮助命令help功能提供功能提供matlab大大部分主题的在线帮助信息部分主题的在线帮助信息help显示显示help主题一览表主题一览表helpplotxyz显示有关三维做图指令帮助信息显示有关三维做图指令帮助信息help显示特殊字符与符号帮助信息显示特殊字符与符号帮助信息helphelp显示显示help的帮助信息的帮助信息虽然虽然help可以随时提供帮助,但必须知

16、道准确的函数可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,名称。当不能确定函数名称时,help就无能为力了。就无能为力了。Lookfor函数函数它可提供通过一般的关键词,搜索出一组与之它可提供通过一般的关键词,搜索出一组与之相关的命令相关的命令lookforfourier寻找含有傅立叶变换的相关指令寻找含有傅立叶变换的相关指令24help、lookfor两个指令构成了两个指令构成了matlab语语言相当完善的在线帮助查询系统。言相当完善的在线帮助查询系统。lookforfouri寻找所有包含寻找所有包含fouri的指令和注释的指令和注释如如FFTDiscreteFourie

17、rtransform九、九、matlab的演示功能的演示功能 intro入门演示入门演示demo在线演示在线演示25应用应用MATLAB进行模型处理进行模型处理 线性系统理论中常用的数学模型有微分方程模型、线性系统理论中常用的数学模型有微分方程模型、传递函数模型等,而这些模型之间又有某些内在传递函数模型等,而这些模型之间又有某些内在的等的等效关系。在效关系。在MATLABMATLAB中,与传递函数的具体形式相对应,中,与传递函数的具体形式相对应,又有又有tftf对象和对象和zpkzpk对象之分,我们分别称为有理分式对象之分,我们分别称为有理分式模型和零极点模型。模型和零极点模型。 在本节,就线

18、性定常时不变系统(在本节,就线性定常时不变系统(LTILTI)数学模)数学模型分析中用到的型分析中用到的MATLABMATLAB方法作一简要介绍,主要有拉方法作一简要介绍,主要有拉氏变换、传递函数的转换、控制系统的特征根及零极氏变换、传递函数的转换、控制系统的特征根及零极点图、方框图模型的传递函数、符号模型的运算等。点图、方框图模型的传递函数、符号模型的运算等。 261 1、拉氏变换与反变换、拉氏变换与反变换 拉氏变换拉氏变换“Laplace”的调用格式如下:的调用格式如下:L=Laplace(F):是缺省独立变量:是缺省独立变量t的关于符号向量的关于符号向量F的拉氏的拉氏变换,缺省返回关于变

19、换,缺省返回关于s的函数。的函数。L=Laplace(F,t):是一个关于:是一个关于t代替缺省代替缺省s项的拉氏变换。项的拉氏变换。L=Laplace(F,w,z):是一个关于:是一个关于z代替缺省代替缺省s项的拉氏变换。项的拉氏变换。例例求时域函数求时域函数f(t)=6cos(3t)+e-3tcos(2t)-5sin(2t)的拉氏变换。的拉氏变换。symsty;y=laplace(6*cos(3*t)+exp(-3*t)*cos(2*t)-5*sin(2*t)运行结果:运行结果:y=6*s/(s2+9)+1/4*(s+3)/(1/4*(s+3)2+1)-10/(s2+4)27拉氏反变换拉氏

20、反变换“iLaplace”的调用格式如下:的调用格式如下:F=iLaplace(L):是缺省独立变量:是缺省独立变量s的关于符号向量的关于符号向量L的拉氏的拉氏反变换,缺省返回关于反变换,缺省返回关于t的函数。的函数。F=iLaplace(L,y):是一个关于:是一个关于y代替缺省代替缺省t项的拉氏变换。项的拉氏变换。F=iLaplace(L,y,x):是一个关于:是一个关于x代替缺省代替缺省t项的拉氏变换。项的拉氏变换。的拉氏反变换。的拉氏反变换。例例求函数求函数symssFF=ilaplace(16/(s2+4)+(s+5)/(s+4)2+16)运行结果:运行结果:F=8*sin(2*t)

21、+exp(-4*t)*cos(4*t)+1/4*exp(-4*t)*sin(4*t)282 2 、传递函数、传递函数 有理分式模型有理分式模型传递函数的分子和分母均为多项式的形式称为有理分式模型,传递函数的分子和分母均为多项式的形式称为有理分式模型,如下式所示。如下式所示。在在MATLAB中,传递函数分子和分母多项式系数用行向量表中,传递函数分子和分母多项式系数用行向量表示。例如多项式示。例如多项式P(s)=s3+2s+4,其输入为,其输入为P=1024传递函数分子或分母为因式时,调用传递函数分子或分母为因式时,调用conv()函数来求多项式向函数来求多项式向量。例如量。例如P(s)=5(s+

22、2)(s+3)(10s2+20s+3),其输入为,其输入为P=5*conv(12,conv(13,10203)调用函数调用函数“tf”可建立传递函数的有理分式模型,其调用格式可建立传递函数的有理分式模型,其调用格式如下:如下:G=tf(num,den)29例例 已知某一系统的微分方程如下,试求其传递函数。已知某一系统的微分方程如下,试求其传递函数。num=171220;den=1612203625;G=tf(num,den)运行结果运行结果:Transferfunction:s3+7s2+12s+20-s5+6s4+12s3+20s2+36s+2530例例 将传递函数将传递函数转换为有理分式转

23、换为有理分式模型。模型。num=conv(14,14);den=conv(100,conv(15,1526);G=tf(num,den)运行结果运行结果:Transferfunction:s2+8s+16-s6+10s5+27s4+16s3+30s231 零极点模型零极点模型 传递函数的分子和分母均为因式的形式称为零极点模型,如传递函数的分子和分母均为因式的形式称为零极点模型,如下式所示。下式所示。 MATLAB MATLAB控制工具箱提供了零极点模型与有理分式模型之间的控制工具箱提供了零极点模型与有理分式模型之间的转换函数,调用格式分别为转换函数,调用格式分别为 z,p,k=tf2zp(nu

24、m,den) z,p,k=tf2zp(num,den) num,den=zp2tf(z,p,k) num,den=zp2tf(z,p,k) 其中,前一个函数可将有理分式模型其中,前一个函数可将有理分式模型转换为零极点模型,而零极点模型,而后一个函数可将零极点模型后一个函数可将零极点模型转换为有理分式模型有理分式模型。32例例将传递函数将传递函数转换为零极点模型。转换为零极点模型。num=61812;den=1526;z,p,k=tf2zp(num,den)%得到零极点及其增益得到零极点及其增益运行结果运行结果:z = -2z = -2 -1 -1p = -4.8428 p = -4.8428

25、-0.0786 + 1.1103i -0.0786 + 1.1103i -0.0786 - 1.1103i -0.0786 - 1.1103ik = 6k = 6即变换后的零极点模型为即变换后的零极点模型为验证:调用验证:调用zp2tf()函数,函数,可得到原传递函数模型,如可得到原传递函数模型,如num,den=zp2tf(z,p,k);%由零极点形式转换为传由零极点形式转换为传递函数形式递函数形式G=tf(num,den)%形成传递函数表达式形成传递函数表达式333 3 、控制系统的特征根及零极点图、控制系统的特征根及零极点图 系统的特征根系统的特征根MATLAB提供了多项式求根函数提供了

26、多项式求根函数roots(),其调用格式为,其调用格式为r=roots(P)其中,其中,P为多项式。为多项式。例例特征方程特征方程r=roots(1304)r=-3.35530.1777+1.0773i0.1777-1.0773i,其根可由下面语句,其根可由下面语句求得求得34零极点图零极点图 传递函数在复平面上的零、极点图,采用传递函数在复平面上的零、极点图,采用pzmap()pzmap()函数来函数来完成,零点用完成,零点用“”表示,极点用表示,极点用“”表示。其调用格式表示。其调用格式为为p,z= pzmap(num,den)p,z= pzmap(num,den) 其中,其中,p p为传

27、递函数为传递函数的极点,的极点,的零点。的零点。z为为35例例某系统开环传递函数如下某系统开环传递函数如下,试求其,试求其零、极点图。零、极点图。num=10*0.51;den=conv(10,conv(0.251,0.511);pzmap(num,den)%得到零极点图得到零极点图grid364 4 、 控制系统的方框图模型控制系统的方框图模型 串联串联两个系统两个系统G1(s)和和G2(s)相串联相串联,在在MATLAB中可用串联函数中可用串联函数series()来求合成系统,其调用格式为来求合成系统,其调用格式为num,den=series(num1,den1,num2,den2)并联并

28、联 两个系统两个系统G1(s)和和G2(s)相并联相并联,在在MATLABMATLAB中可用中可用并并联函数联函数parallelparallel()()来实现来实现合成系统,其合成系统,其调用格式为调用格式为 num,den=parallel(num1,den1,num2,den2)num,den=parallel(num1,den1,num2,den2)反馈反馈 反馈连接反馈连接前向通路传递函数为前向通路传递函数为G(s),反馈,反馈通路传递函数通路传递函数为为H(s),在在MATLABMATLAB中可用中可用feedback()()函数来实现反馈连接函数来实现反馈连接,其,其调用格式为调

29、用格式为 num,den=num,den=feedback(numg,deng,numh,denh,sign)(numg,deng,numh,denh,sign)373839404142434445用用MATLAB进行动态响应分析进行动态响应分析1、绘制响应曲线、绘制响应曲线如果已知闭环传递函数的分子如果已知闭环传递函数的分子num与分母与分母den,则命令,则命令impulse(num,den),impulse(num,den,t)将产生单位脉冲响应曲线。命令将产生单位脉冲响应曲线。命令step(num,den),step(num,den,t)将产生单位阶跃响应曲线。(将产生单位阶跃响应曲线

30、。(t为用户指定时间)为用户指定时间)Matlab提供了求取线性定常连续系统单位脉冲响应和单位提供了求取线性定常连续系统单位脉冲响应和单位阶跃响应的函数,分别为阶跃响应的函数,分别为impulse,step。对单位斜坡响应,可。对单位斜坡响应,可利用单位斜坡函数为单位阶跃函数的积分来间接求取。方法是利用单位斜坡函数为单位阶跃函数的积分来间接求取。方法是将待求系统传递函数乘以积分因子将待求系统传递函数乘以积分因子1/s,求其单位阶跃响应,即,求其单位阶跃响应,即为原系统的单位斜坡响应。利用该方法也可通过单位脉冲响应为原系统的单位斜坡响应。利用该方法也可通过单位脉冲响应命令来求取系统的单位阶跃响应

31、。命令来求取系统的单位阶跃响应。46例例2-1:用:用Matlab绘制系制系统响响应曲曲线、单位脉冲响位脉冲响应曲曲线。的单位阶跃的单位阶跃num=0025;%分子多项式系数分子多项式系数den=1425;%分母多项式系数分母多项式系数step(num,den);%产生阶跃响应产生阶跃响应grid;title(unit-stepresponseof25/(s2+4s+25);%添加标题添加标题将将step(num,den)命令改成命令改成impulse(num,den)。)。47例例2-2:求系:求系统系系统输出的拉氏出的拉氏变换为的单位斜坡响应曲线。的单位斜坡响应曲线。num=00025;d

32、en=14250;step(num,den,3)gridtitle(unit-stepresponseof25/(s2+4s+25)482、阶跃响应性能分析阶跃响应性能分析当阶跃命令左端含有变量时,如当阶跃命令左端含有变量时,如y,x,t=step(num,den,t)将不会显示响应曲线。阶跃响应的)将不会显示响应曲线。阶跃响应的输出数据将保存在输出数据将保存在y中,中,t中保存各采样时间点。若希望绘制响中保存各采样时间点。若希望绘制响应曲线,可采用应曲线,可采用plot命令。命令。当需要计算阶跃响应性能指标时,可根据各指标的定义,当需要计算阶跃响应性能指标时,可根据各指标的定义,结合结合y和

33、和t中保存的数据,来计算各项性能指标。中保存的数据,来计算各项性能指标。49例例2-3:用用Matlab求系统求系统跃响应性能指标:上升时间、峰值时间、调节时间和超调量。跃响应性能指标:上升时间、峰值时间、调节时间和超调量。的单位阶的单位阶num=0025;den=1425;y,x,t=step(num,den);peak,k=max(y);%求响应曲线的最大值求响应曲线的最大值overshoot=(peak-1)*100%计算超调量计算超调量tp=t(k)%求峰值时间求峰值时间n=1;%求上升时间求上升时间whiley(n)0.98)&(y(m)1.02)m=m-1;endts=t(m)50

34、已知单位负反馈控制系统的开环传递函数为已知单位负反馈控制系统的开环传递函数为z=-2;p=0-0.5-0.8-3;k=0.2;Go=zpk(z,p,k);Gc=tf(feedback(Go,1);dc=Gc.den;dens=poly2str(dc1,s)根据特征多项式,求其特征根来判断系统的稳定性。根据特征多项式,求其特征根来判断系统的稳定性。den=14.34.31.40.4;p=roots(den)利用零极点图来判断系统的稳定性。利用零极点图来判断系统的稳定性。z,p,k=zpkdata(Gc,v)pzmap(Gc)例例2-4:,试判断此闭环系统的稳定性。,试判断此闭环系统的稳定性。51

35、例例3-4:控制系统结构图如下图所示,试在:控制系统结构图如下图所示,试在Simulink环境下环境下构建系统方框图,并对系统的阶跃响应进行仿真。构建系统方框图,并对系统的阶跃响应进行仿真。R(s)-C(s)3、应用、应用Simulink进行仿真进行仿真Simulink是一个可视化动态系统仿真环境。使用是一个可视化动态系统仿真环境。使用Simulink可分析非常复杂的控制系统;而且,可以方便地分析系统参数可分析非常复杂的控制系统;而且,可以方便地分析系统参数变化对其性能的影响。变化对其性能的影响。52用用MATLAB绘制系统的根轨迹绘制系统的根轨迹在应用在应用Matlab绘制根轨迹时,首先要将

36、系统的开环传递函数绘制根轨迹时,首先要将系统的开环传递函数写成如下形式:写成如下形式:将分子多项式与分母多项式按将分子多项式与分母多项式按s的降幂写成向量形式的降幂写成向量形式num和和den,则采用以下命令可绘制根轨迹图。,则采用以下命令可绘制根轨迹图。rlocus(num,den)该命令不仅可用于连续系统,还可用于离散系统。另外,还该命令不仅可用于连续系统,还可用于离散系统。另外,还可自动获得根轨迹上各点的增益。可自动获得根轨迹上各点的增益。命令命令rlocus(num,den,K)直接绘制出给定直接绘制出给定K值时的闭环极点。值时的闭环极点。53 如果引入左端变量,即如果引入左端变量,即

37、r,K=rlocus(num,den,K)则则r向量中元素为指定向量中元素为指定K值闭环极点的位置。如果不指定值闭环极点的位置。如果不指定K,即,即r,K=rlocus(num,den)则则r矩阵的行数与矩阵的行数与K向量的元素相同,列数与极点的个数相同。向量的元素相同,列数与极点的个数相同。r中元素分别为各对应中元素分别为各对应K值的闭环极点。这时,使用绘图命令值的闭环极点。这时,使用绘图命令plot(r,)也可绘制系统根轨迹。也可绘制系统根轨迹。如果希望在绘制根轨迹时标上符号如果希望在绘制根轨迹时标上符号“o”或或“x”,则需要,则需要采用下列绘图命令采用下列绘图命令plot(r,o)或或

38、plot(r,x)这时,每一个计算的闭环极点都被图解表示出来。这时,每一个计算的闭环极点都被图解表示出来。 54例例3-1已知系已知系统的开的开环传递函数函数为应用应用Matlab绘制系制系统根根轨迹。迹。,num=122;den=14160;rlocus(num,den)v=-50-44;axis(v)gridtitle(RootLocusPlotofG(s)H(s)=K(s2+2s+2)/s(s2+4s+16)55例例3-2已知系已知系统的开的开环传递函数函数应用用Matlab绘制系制系统根根轨迹。迹。,a=140;b=122;den=conv(a,b);num=1416;rlocus(n

39、um,den)v=-40.5-1515;axis(v);gridtitle(RootLocusPlotofG(s)H(s)=K(s2+4s+16)/s(s+4)(s2+2s+2)56a=140;b=122;den=conv(a,b);num=1416;K1=0:0.2:20;K2=20:0.1:30;K3=30:5:1000;K=K1K2K3;r=rlocus(num,den,K)plot(r,o)v=-40.5-1515;axis(v);gridtitle(RootLocusPlotofG(s)H(s)=K(s2+4s+16)/s(s+4)(s2+2s+2)或:或:57MATLAB频率特性分

40、析频率特性分析MATLAB控制系统工具箱在频率响应法方面提供了许多函控制系统工具箱在频率响应法方面提供了许多函数支持,使用它们可以很方便地绘制控制系统的频率特性图并数支持,使用它们可以很方便地绘制控制系统的频率特性图并对系统进行频域分析或设计。常用的对系统进行频域分析或设计。常用的MATLAB函数有:函数有:bode(),绘制控制系统的伯德图;,绘制控制系统的伯德图;nyquist(),绘制控制系统的奈奎斯,绘制控制系统的奈奎斯特曲线;特曲线;nichols(),绘制控制系统的尼科尔斯图;,绘制控制系统的尼科尔斯图;margin(),计,计算控制系统的稳定裕量;算控制系统的稳定裕量;freqr

41、esp(),计算系统在指定频率处的,计算系统在指定频率处的频率响应值;频率响应值;evalfr(),计算,计算LTI系统在单个复频率处的频率响系统在单个复频率处的频率响应值。应值。其中其中bode,nyquist和和nichols函数,既适用于单变量系统也函数,既适用于单变量系统也适用于多变量适用于多变量(即即MIMO)系统,既适用于连续时间系统也适用系统,既适用于连续时间系统也适用于离散时间系统。在这一节里将通过具体的例子来说明如何应于离散时间系统。在这一节里将通过具体的例子来说明如何应用用bode、nyquist和和nichols等函数绘制控制系统的伯德图和奈奎等函数绘制控制系统的伯德图和

42、奈奎斯特曲线以及尼柯尔斯图。斯特曲线以及尼柯尔斯图。58MATLAB中绘制中绘制Bode图的函数是图的函数是bode(),调用格式为,调用格式为bode(num,den)bode(num,den,w)mag,phase,w=bode(num,den)mag,phase=bode(num,den,w)Bode(num,den)可以绘制传递函数为可以绘制传递函数为1、Bode图图时系统的时系统的bode图。带左端变量的图。带左端变量的bode函数运行后,屏幕函数运行后,屏幕上将不显示上将不显示bode图,而是在用户指定的频率点向量图,而是在用户指定的频率点向量w上上把系统的频率特性表示成幅值和相角

43、,并分别由把系统的频率特性表示成幅值和相角,并分别由mag矩矩阵和阵和phase矩阵来表示。矩阵来表示。59Bode函数具有自动频率选择功能,函数的输入变量部函数具有自动频率选择功能,函数的输入变量部分未给出频率的范围,则该函数能根据系统模型的特性自分未给出频率的范围,则该函数能根据系统模型的特性自地选择频率的变化范围。若需要人为地指定频率范围或频地选择频率的变化范围。若需要人为地指定频率范围或频率点率点w,可以在函数的输入变量部分包含所定义,可以在函数的输入变量部分包含所定义w。w的的定义可以采用定义可以采用logspace函数,其格式为函数,其格式为W=logspace(a,b,n)其中,

44、其中,a表示最小频率表示最小频率10a;b表示最大频率表示最大频率10b;n表示表示10a10b之间的频率点数。之间的频率点数。例如例如:num=100*12;den=121200;bode(num,den);grid;如果指定频率范围:如果指定频率范围:,则则MATLAB命令改写为:命令改写为:num=100*12;den=121200;w=logspace(-1,2,200);bode(num,den,w);grid;60在在MATLAB中可采用函数中可采用函数margin()来求取相对稳定性,调来求取相对稳定性,调用格式为:用格式为:Gm,Pm,wcg,wcp=(num,den)式中,式

45、中,Gm为幅值裕度;为幅值裕度;Pm为相角裕度;为相角裕度;wcg为穿越为穿越线线所对应的频率;所对应的频率;wcp为幅值为为幅值为0dB时所对应的频率。时所对应的频率。num=100*12;den=121200;margin(num,den)例如:例如:612、Nyquist图图MATLAB中绘制中绘制Nyquist图的函数是图的函数是nyquist(),调用格式为,调用格式为Nyquist(num,den);Nyquist(num,den,w);re,im=Nyquist(num,den);re,im=Nyquist(num,den,w);Nyquist(num,den)可以绘制传递函数为

46、可以绘制传递函数为时系统的时系统的nyquist图。带左端变量的图。带左端变量的nyquist函数运行后,屏幕函数运行后,屏幕上将不显示上将不显示nyquist图,而是在指定的频率点向量图,而是在指定的频率点向量w上把系统上把系统的频率特性表示成的频率特性表示成re和和im矩阵,分别对应系统频率特性的实矩阵,分别对应系统频率特性的实部和虚部。部和虚部。62例如例如num=1;den=112;nyquist(num,den);grid;例如例如num=2;den=1230;nyquist(num,den);grid;此时可以放大镜工具或轴函数此时可以放大镜工具或轴函数axis()命令进行局部放大

47、,进命令进行局部放大,进行稳定性分析。如规定实轴、虚轴范围分别为行稳定性分析。如规定实轴、虚轴范围分别为(-1.5,-0.5),(-1,1)有:有:axis(-1.5-0.5-11);633、Nichols图图MATLAB中绘制中绘制Nichols图的函数是图的函数是Nichols(),调用格式为,调用格式为nichols(num,den)nichols(num,den,w)mag,phase,w=nichols(num,den)mag,phase=nichols(num,den,w)nichols(num,den)可以绘制传递函数为可以绘制传递函数为时系统的时系统的nichols图。当带输出

48、变量引用函数时,可以得到系图。当带输出变量引用函数时,可以得到系统统nichols图线的数据,而不直接绘出图线的数据,而不直接绘出nichols图线。图线。例如:例如:num=2;den=1230;nichols(num,den);ngrid;64MATLAB离散控制系统分析离散控制系统分析MATLAB在离散控制系统中起着重要作用。无论将连续系统在离散控制系统中起着重要作用。无论将连续系统离散化、离散控制系统的离散输出响应、连续输出响应、离散控离散化、离散控制系统的离散输出响应、连续输出响应、离散控制系统设计等方面,都可以用制系统设计等方面,都可以用MATLAB进行研究。进行研究。1 1、连续

49、系统的离散化、连续系统的离散化 连续系统离散化,在连续系统离散化,在MATLAB中应用中应用c2d()函数实现,其函数实现,其调用格式为调用格式为c2d(num,den,T,zoh)其中:其中:num传递函数分子多项式系数;传递函数分子多项式系数;den-传递函数分传递函数分母多项式系数;母多项式系数;T采样周期;采样周期;zoh零阶保持。零阶保持。65R(s)C(s)例例:已知采样系统的结构图如图:已知采样系统的结构图如图8-43所示,求开环脉冲传递函所示,求开环脉冲传递函数。采样周期数。采样周期T=1s。解:可用解析法求出解:可用解析法求出用用MATLAB可以方便地求出上述结果,程序如下:

50、可以方便地求出上述结果,程序如下:num=1;den=1,1,0;T=1;numz,denz=c2d(num,den,T,zoh);printsys(numz,denz,Z)662 2、采样系统的响应、采样系统的响应 在在MATLAB中,求系统的响应可应用中,求系统的响应可应用dstep(),dimpulse(),dlsim()函数来实现。分别用于求采样系统的阶跃、脉冲、任意输入时的函数来实现。分别用于求采样系统的阶跃、脉冲、任意输入时的响应。响应。(1)dstep()函数的调用格式为:函数的调用格式为:dstep(num,den,n)其中:其中:num脉冲传递函数分子多项式系数;脉冲传递函数

51、分子多项式系数;den传递函传递函数分母多项式系数;数分母多项式系数;n用户指定的采样点数。用户指定的采样点数。(2)dimpulse()函数的调用格式同函数的调用格式同dstep()函数。函数。(3)dslim()函数的调用格式为:函数的调用格式为:dslim(num,den,u)其中:其中:num脉冲传递函数分子多项式系数;脉冲传递函数分子多项式系数;den传递传递函数分母多项式系数;函数分母多项式系数;u输入。输入。67R(s)C(s)-例例:已知离散系统结构图如图所示,输入为单位阶跃信号,已知离散系统结构图如图所示,输入为单位阶跃信号,采样周期采样周期T=1s,求输出响应。,求输出响应

52、。解:由解:由可得可得:用用dstep()函数可很容易得到输出响应,程序如下:函数可很容易得到输出响应,程序如下:num=0.3680.264;den=1-10.632;dstep(num,den)68系统在采样时刻的单位脉冲响应为:系统在采样时刻的单位脉冲响应为:num=0.3680.264;den=1-10.632;dimpulse(num,den) %下面计算例题连续系统单位阶跃响应下面计算例题连续系统单位阶跃响应numg=1;deng=110;nd,dd=pade(1,2);numd=dd-nd;dend=conv(10,dd);numdm,dendm=minreal(numd,den

53、d);nl,dl=series(numdm,dendm,numg,deng);num,den=cloop(nl,dl);t=0:0.1:20;step(num,den,t)693 3、Z变换和变换和Z反变换反变换(2)Z逆变换逆变换fiztrans(F) 线性连续(线性连续(LTI)控制系统可以用拉氏变换的方法进行分析,)控制系统可以用拉氏变换的方法进行分析,线性离散控制系统可以用线性离散控制系统可以用Z变换的方法进行分析。变换的方法进行分析。Z变换和变换和Z逆变换逆变换实际上是离散时间信号的拉氏变换和逆拉氏变换的一种变形,它可实际上是离散时间信号的拉氏变换和逆拉氏变换的一种变形,它可由拉氏变

54、换和拉氏逆变换导出。由拉氏变换和拉氏逆变换导出。在在MATLAB中,可以采用符号运算工具箱(中,可以采用符号运算工具箱(SymbolicMathToolbox)进行)进行Z变换和变换和Z逆变换,可用函数逆变换,可用函数“ztrans”和和“iztrans”来实现。来实现。(1)Z变换调用格式为:变换调用格式为:Fztrans(f)70例例:计算下列函数的:计算下列函数的Z变换。变换。(1)(2)(3)(4)(5)symsnawkzX1=ztrans(3n)X1=simplify(X1)X2=ztrans(n*exp(-a*n)X3=ztrans(sin(w*n),k)X4=ztrans(cos

55、(w*n),w,z)F=ztrans(sym(f(n+2)71例例:已知连续函数:已知连续函数x(t)x(t)拉氏变换为拉氏变换为 ,首先对函数进行拉氏逆变换,程序代码如下:首先对函数进行拉氏逆变换,程序代码如下:syms s a b csyms s a b cx=ilaplace(s+c)/(s+a)/(s+b);x=ilaplace(s+c)/(s+a)/(s+b);x=simplify(x)x=simplify(x)对函数进行对函数进行z z变换,程序代码如下:变换,程序代码如下:syms n a b csyms n a b cXz=ztrans(-exp(-a*n)*c+exp(-a*n)*a-exp(-b*n)*bXz=ztrans(-exp(-a*n)*c+exp(-a*n)*a-exp(-b*n)*b+exp(-b*n)*c)/(a-b);+exp(-b*n)*c)/(a-b);Xz=simplify(Xz)试求其试求其z变换。变换。72

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号