BeihangUniversityShanghai,ChinaDecember16-18Matlab在自动控制原理中的应用北京航空航天大学航空科学与工程学院BUAA程昊宇BeihangUniversityShanghai,ChinaDecember16-18Matlab概述1Matlab系统模型处理2Matlab时域响应分析3Matlab根轨迹绘制4Matlab频率特性分析5BeihangUniversityShanghai,ChinaDecember16-181.1Matlab概述Matlab语言是由美国CleverMoler博士于1980年开发的。设计者的初衷是为解决“线性代数”课程的矩阵运算问题。取名MATLAB即MatrixLaboratory矩阵实验室的意思。MATLAB的历史:70年代后期美国新墨西哥大学clevemoler为linspack和eispack编写的接口程序。80年代初,用C编写的MATLAB二代版本。1984,MATHWORKS公司成立。(图形处理,数值计算、符号计算、文字处理、数学建模、实时控制、动态仿真)BeihangUniversityShanghai,ChinaDecember16-18MATLAB是一种直译式高级语言,比其它程序设计语言容易。它将一个优秀软件的易用性与可靠性、通用性与专业性、一般目的的应用与高深的科学技术应用有机的相结合。MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法所以,由上可以看出Matlab的应用范围非常广,我们主要讲解Matlab在自动控制理论中的应用。关于Matlab的基本操作,相关介绍书籍非常之多,请同学们查找相关书籍,自行学习。1.2Matlab语言功能BeihangUniversityShanghai,ChinaDecember16-18二.符号运算功能符号运算即用字符串进行数学分析允许变量不赋值而参与运算用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程、泰乐级数展开、寻优等等,可求得解析符号解一.符号运算功能MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处理工具。变量矩阵,运算矩阵的运算例如C=A+B,A,B,C都是矩阵,是矩阵的加运算即使一个常数,Y=5,MATLAB也看做是一个11的矩阵1.2Matlab语言功能BeihangUniversityShanghai,ChinaDecember16-18三.丰富的绘图功能与计算结果的可视化具有高层绘图功能——两维、三维绘图具有底层绘图功能——句柄绘图使用plot函数可随时将计算结果可视化四.图形化程序编制功能动态系统进行建模、仿真和分析的软件包用结构图编程,而不用程序编程只需拖几个方块、连几条线,即可实现编程功能1.2Matlab语言功能BeihangUniversityShanghai,ChinaDecember16-181.2Matlab语言功能BeihangUniversityShanghai,ChinaDecember16-18五.丰富的MATLAB工具箱MATLAB主工具箱符号数学工具箱SIMULINK仿真工具箱控制系统工具箱信号处理工具箱•图象处理工具箱•通讯工具箱•系统辨识工具箱•神经元网络工具箱•金融工具箱许多学科,在MATLAB中都有专用工具箱,现已有30多个工具箱,但MATLAB语言的扩展开发还远远没有结束,各学科的相互促进,将使得MATLAB更加强大。推荐一本书:《控制系统计算机辅助设计》薛定宇著1.2Matlab语言功能BeihangUniversityShanghai,ChinaDecember16-18启动平台命令历史记录命令窗口1.3Matlab界面视图BeihangUniversityShanghai,ChinaDecember16-18与Windows的窗口界面类似,有菜单项File、Edit、Option、Windows、Help等项可以选择。工作窗出现以后,即可进行各种操作1.3Matlab界面视图BeihangUniversityShanghai,ChinaDecember16-18菜单项File,其功能如下New建立新文件OpenM-File打开M-文件Openselected打开选定文件SaveWorkspaceAs将工作区存为RunM-File运行M-文件LookForSelected寻找选定文件Print打印PrintSetup打印设置ExitMATLAB退出MATLAB1.3Matlab界面视图BeihangUniversityShanghai,ChinaDecember16-18例1用一个简单命令求解线性系统3x1+x2-x3=3.6x1+2x2+4x3=2.1-x1+4x2+5x3=-1.4A=[31-1;124;-145];b=[3.6;2.1;-1.4];x=A\bx=1.4818-0.46060.3848对于线性系统有Ax=b1.3Matlab界面视图BeihangUniversityShanghai,ChinaDecember16-18例2计算并绘制在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)1.3Matlab界面视图0123456-1-0.8-0.6-0.4-0.200.20.40.60.81BeihangUniversityShanghai,ChinaDecember16-18help功能提供matlab大部分主题的在线帮助信息help显示help主题一览表helpplotxyz显示有关三维做图指令帮助信息help[显示特殊字符与符号帮助信息helphelp显示help的帮助信息虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。Lookfor函数—它可提供通过一般的关键词,搜索出一组与之相关的命令lookforfourier寻找含有傅立叶变换的相关指令1.4Matlab联机帮助命令BeihangUniversityShanghai,ChinaDecember16-18help、lookfor两个指令构成了matlab语言相当完善的在线帮助查询系统。lookforfouri寻找所有包含fouri的指令和注释如FFTDiscreteFouriertransform1.4Matlab概述BeihangUniversityShanghai,ChinaDecember16-182.Matlab系统模型处理线性系统理论中常用的数学模型有微分方程模型、传递函数模型等,而这些模型之间又有某些内在的等效关系。在MATLAB中,与传递函数的具体形式相对应,又有tf对象和zpk对象之分,我们分别称为传递函数模型和零极点模型。在本节,就线性定常时不变系统(LTI)数学模型分析中用到的MATLAB方法作一简要介绍,主要有拉氏变换、传递函数的转换、控制系统的特征根及零极点图、方框图模型的传递函数、符号模型的运算等。BeihangUniversityShanghai,ChinaDecember16-182.1拉氏变换与反变换拉氏变换“Laplace”的调用格式如下:L=Laplace(F):是缺省独立变量t的关于符号向量F的拉氏变换,缺省返回关于s的函数。L=Laplace(F,t):是一个关于t代替缺省s项的拉氏变换。L=Laplace(F,w,z):是一个关于z代替缺省s项的拉氏变换。例3求时域函数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/(s^2+9)+1/4*(s+3)/(1/4*(s+3)^2+1)-10/(s^2+4)BeihangUniversityShanghai,ChinaDecember16-18拉氏反变换“iLaplace”的调用格式如下:F=iLaplace(L):是缺省独立变量s的关于符号向量L的拉氏反变换,缺省返回关于t的函数。F=iLaplace(L,y):是一个关于y代替缺省t项的拉氏变换。F=iLaplace(L,y,x):是一个关于x代替缺省t项的拉氏变换。16)4(5416)(22ssssG的拉氏反变换。例4求函数symssFF=ilaplace(16/(s^2+4)+(s+5)/((s+4)^2+16))运行结果:F=8*sin(2*t)+exp(-4*t)*cos(4*t)+1/4*exp(-4*t)*sin(4*t)2.1拉氏变换与反变换BeihangUniversityShanghai,ChinaDecember16-182.2传递函数有理分式模型传递函数的分子和分母均为多项式的形式称为有理分式模型,如下式所示。nnnnmmmmasasasabsbsbsbsRsCsG11101110)()()(在MATLAB中,传递函数分子和分母多项式系数用行向量表示。例如多项式P(s)=s3+2s+4,其输入为P=[1024]传递函数分子或分母为因式时,调用conv()函数来求多项式向量。例如P(s)=5(s+2)(s+3)(10s2+20s+3),其输入为P=5*conv([12],conv([13],[10203]))调用函数“tf”可建立传递函数的有理分式模型,其调用格式如下:G=tf(num,den)BeihangUniversityShanghai,ChinaDecember16-18例5已知某一系统的微分方程如下,试求其传递函数。(5)(4)612203625ccccccnum=[171220];den=[1612203625];G=tf(num,den)运行结果:Transferfunction:s^3+7s^2+12s+20----------------------------------------------------s^5+6s^4+12s^3+20s^2+36s+2571220rrrr2.2传递函数BeihangUniversityShanghai,ChinaDecember16-18例6将传递函数)625)(5()4()(2322sssssssG转换为有理分式模型。num=conv([14],[14]);den=conv([100],conv([15],[1526]));G=tf(num,den)运行结果:Transferfunction:s^2+8s+16--------------------------------------------------s^6+10s^5+27s^4+16s^3+30s^22.2传递函数BeihangUniversityShanghai,ChinaDecember16-18零极点模型传递函数的分子和分母均为因式的形式称为零极点模型,如下式所示。)())(()())(()()()(210210nmpspspsazszszsbsRsCsGMATLAB控制工具箱提供了零极点模型与有理分式模型之间的转换函数,调用格式分别为[z,p,k]=tf2zp(num,den)[num,den]=zp2tf(z,p,k)其中,前一个函数可将有理分式模型转换为零极点模型,而后一个函数可将零极点模型转换为有理分式模型。2.2传递函数BeihangUniversityShanghai,ChinaDecember16-18例7将传递函数62512186)(232ssssssG转换为零极点模型。num=[61812];den=[1526];[z