Matlab在自动控制原理中的应用_第1页
Matlab在自动控制原理中的应用_第2页
Matlab在自动控制原理中的应用_第3页
Matlab在自动控制原理中的应用_第4页
Matlab在自动控制原理中的应用_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、Matlab 在自动控制原理中的应用,BUAA,1.1 Matlab概述,Matlab语言是由美国Clever Moler博士于1980年开发的。设计者的初衷是为解决“线性代数”课程的矩阵运算问题。取名MATLAB即Matrix Laboratory 矩阵实验室的意思。 MATLAB的历史: 70年代后期美国新墨西哥大学cleve moler为linspack和eispack编写的接口程序。 80年代初,用C编写的MATLAB二代版本。 1984,MATHWORKS公司成立。(图形处理,数值计算、符号计算、文字处理、数学建模、实时控制、动态仿真),MATLAB是一种直译式高级语言,比其它程序设

2、计语言容易。 它将一个优秀软件的易用性与可靠性、通用性与专业性 、一般目的的应用与高深的科学技术应用有机的相结合。 MATLAB已经不仅仅是一个“矩阵实验室”了,它集科学计算、图象处理、声音处理于一身,并提供了丰富的Windows图形界面设计方法 所以,由上可以看出Matlab的应用范围非常广,我们主要讲解Matlab在自动控制理论中的应用。 关于Matlab的基本操作,相关介绍书籍非常之多,请同学们查找相关书籍,自行学习。,1.2 Matlab语言功能,符号运算功能 符号运算即用字符串进行数学分析 允许变量不赋值而参与运算 用于解代数方程、微积分、复合导数、积分、二重积分、有理函数、微分方程

3、、泰乐级数展开、寻优等等,可求得解析符号解,符号运算功能 MATLAB提供了丰富的矩阵运算处理功能,是基于矩阵运算的处理工具。 变量 矩阵,运算 矩阵的运算 例如 C = A + B ,A,B,C都是矩阵,是矩阵的加运算 即使一个常数,Y=5,MATLAB也看做是一个11的矩阵,1.2 Matlab语言功能,丰富的绘图功能与计算结果的可视化,具有高层绘图功能两维、三维绘图 具有底层绘图功能句柄绘图 使用plot函数可随时将计算结果可视化,图形化程序编制功能,动态系统进行建模、仿真和分析的软件包 用结构图编程,而不用程序编程 只需拖几个方块、连几条线,即可实现编程功能,1.2 Matlab语言功

4、能,1.2 Matlab语言功能,丰富的MATLAB工具箱,MATLAB主工具箱 符号数学工具箱 SIMULINK仿真工具箱 控制系统工具箱 信号处理工具箱,图象处理工具箱 通讯工具箱 系统辨识工具箱 神经元网络工具箱 金融工具箱,许多学科,在MATLAB中都有专用工具箱,现已有30多个工具箱,但MATLAB语言的扩展开发还远远没有结束,各学科的相互促进,将使得MATLAB更加强大。,推荐一本书:控制系统计算机辅助设计 薛定宇 著,1.2 Matlab语言功能,启动平台,工作空间窗口,命令历史记录,当前路径窗口,命令窗口,1.3 Matlab界面视图,与Windows的窗口界面类似,有菜单项F

5、ile、Edit、Option、Windows、Help等项可以选择。,工作窗出现以后,即可进行各种操作,1.3 Matlab界面视图,菜单项File,其功能如下 New 建立新文件 Open M-File 打开M-文件 Open selected 打开选定文件 Save Workspace As 将工作区存为 Run M-File 运行 M-文件 Look For Selected 寻找选定文件 Print 打印 Print Setup 打印设置 Exit MATLAB 退出 MATLAB,1.3 Matlab界面视图,例1 用一个简单命令求解线性系统 3x1+ x2 - x3 = 3.6

6、x1+2x2+4x3 = 2.1 -x1+4x2+5x3 = -1.4 A=3 1 -1;1 2 4;-1 4 5;b=3.6;2.1;-1.4; x=Ab x = 1.4818 -0.4606 0.3848,对于线性系统有Ax=b,1.3 Matlab界面视图,例2 计算并绘制在0 x6范围内的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.3 Matlab界面视图,help 功能提供matlab大部分主题的在线帮助信息 help 显示hel

7、p 主题一览表 help plotxyz 显示有关三维做图指令帮助信息 help 显示特殊字符与符号帮助信息 help help 显示help 的帮助信息,虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数名称时,help就无能为力了。,Lookfor函数 它可提供通过一般的关键词,搜索出一组与之相关的命令 lookfor fourier 寻找含有傅立叶变换的相关指令,1.4 Matlab联机帮助命令,help、lookfor 两个指令构成了matlab语言相当完善的在线帮助查询系统。,lookfor fouri 寻找所有包含fouri的指令和注释 如 FFT Discre

8、te Fourier transform,1.4 Matlab概述,2. Matlab系统模型处理,线性系统理论中常用的数学模型有微分方程模型、传递函数模型等,而这些模型之间又有某些内在的等效关系。在MATLAB中,与传递函数的具体形式相对应,又有tf对象和zpk对象之分,我们分别称为传递函数模型和零极点模型。 在本节,就线性定常时不变系统(LTI)数学模型分析中用到的MATLAB方法作一简要介绍,主要有拉氏变换、传递函数的转换、控制系统的特征根及零极点图、方框图模型的传递函数、符号模型的运算等。,2.1 拉氏变换与反变换,拉氏变换 “Laplace”的调用格式如下: L=Laplace(F)

9、:是缺省独立变量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) 的拉氏变换。,syms t y; 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),拉氏反变换 “iLaplace”的调用格式如下: F=i

10、Laplace(L):是缺省独立变量s的关于符号向量L的拉氏 反变换,缺省返回关于t的函数。 F=iLaplace(L,y):是一个关于y代替缺省t项的拉氏变换。 F=iLaplace(L,y,x):是一个关于x代替缺省t项的拉氏变换。,syms s F F=ilaplace(16/(s2+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 拉氏变换与反变换,2.2 传递函数,有理分式模型 传递函数的分子和分母均为多项式的形式称为有理分式模型, 如下式所示。,在MATLAB中

11、,传递函数分子和分母多项式系数用行向量表示。例如多项式P(s)=s3+2s+4,其输入为 P=1 0 2 4 传递函数分子或分母为因式时,调用conv()函数来求多项式向量。例如P(s)=5(s+2) (s+3)(10s2+20s+3),其输入为 P=5*conv(1 2,conv(1 3,10 20 3)调用函数“tf”可建立传递函数的有理分式模型,其调用格式如下:G=tf(num,den),例5 已知某一系统的微分方程如下,试求其传递函数。,num=1 7 12 20; den=1 6 12 20 36 25; G=tf(num,den),运行结果: Transfer function:

12、s3 + 7 s2 + 12 s + 20 - s5 + 6 s4 + 12 s3 + 20 s2 + 36 s + 25,2.2 传递函数,例 6 将传递函数,转换为有理分式,模型。,num=conv(1 4,1 4); den=conv(1 0 0,conv(1 5,1 5 2 6); G=tf(num,den),运行结果: Transfer function: s2 + 8 s + 16 - s6 + 10 s5 + 27 s4 + 16 s3 + 30 s2,2.2 传递函数,零极点模型 传递函数的分子和分母均为因式的形式称为零极点模型,如下式所示。,MATLAB控制工具箱提供了零极点

13、模型与有理分式模型之间的转换函数,调用格式分别为 z,p,k=tf2zp(num,den) num,den=zp2tf(z,p,k) 其中,前一个函数可将有理分式模型转换为零极点模型,而后一个函数可将零极点模型转换为有理分式模型 。,2.2 传递函数,例7 将传递函数,转换为零极点模型。,num=6 18 12; den=1 5 2 6; z,p,k=tf2zp(num,den) %得到零极点及其增益,运行结果: z = -2 -1 p = -4.8428 -0.0786 + 1.1103i -0.0786 - 1.1103i k = 6 即变换后的零极点模型为,验证:调用zp2tf()函数,

14、可得到原传递函数模型,如 num,den=zp2tf(z,p,k); % 由零极点形式转换为传递函数形式 G=tf(num,den) %形成传递函数表达式,2.2 传递函数,2.3 控制系统的特征根及零极点图,系统的特征根 MATLAB提供了多项式求根函数roots(),其调用格式为 r=roots(P),其中,P为多项式。 例8 特征方程, r=roots(1 3 0 4) r = -3.3553 0.1777 + 1.0773i 0.1777 - 1.0773i,,其根可由下面语句,求得,零极点图,传递函数在复平面上的零、极点图,采用pzmap()函数来完成,零点用“”表示,极点用“”表示

15、。其调用格式为p,z= pzmap(num,den) 其中,p为传递函数,的极点,,的零点。,z为,2.3 控制系统的特征根及零极点图,例 9 某系统开环传递函数如下,试求其零、极点图。,num=10*0.5 1; den=conv(1 0,conv(0.25 1,0.5 1 1); pzmap(num,den) %得到零极点图 grid,2.3 控制系统的特征根及零极点图,2.4 控制系统的方框图模型,串联 两个系统G1(s)和G2(s)相串联,在MATLAB中可用串联函数series()来求合成系统,其调用格式为 num,den=series(num1,den1,num2,den2),2.

16、4 控制系统的方框图模型,3 Matlab时域响应分析,3.1 绘制响应曲线,如果已知闭环传递函数的分子num与分母den,则命令 impulse(num,den),impulse(num,den,t) 将产生单位脉冲响应曲线。命令 step(num,den),step(num,den,t) 将产生单位阶跃响应曲线。(t为用户指定时间),Matlab提供了求取线性定常连续系统单位脉冲响应和单位阶跃响应的函数,分别为impulse,step。对单位斜坡响应,可利用单位斜坡函数为单位阶跃函数的积分来间接求取。方法是将待求系统传递函数乘以积分因子1/s,求其单位阶跃响应,即为原系统的单位斜坡响应。利

17、用该方法也可通过单位脉冲响应命令来求取系统的单位阶跃响应。,num=0 0 25; %分子多项式系数 den=1 4 25; %分母多项式系数 step(num,den); %产生阶跃响应 grid;%加网格 title(unit-step response of 25/(s2+4s+25) ); %添加标题 dcgain(num,den) %求稳态值,将step(num,den)命令改成impulse(num,den)。,3.1 绘制响应曲线,系统输出的拉氏变换为,num=0 0 0 25; den=1 4 25 0; step(num,den,3) ; grid;title(unit-st

18、ep response of 25/(s2+4s+25),3.1 绘制响应曲线,当阶跃命令左端含有变量时,如y,x,t=step(num,den,t)将不会显示响应曲线。阶跃响应的输出数据将保存在y中,t中保存各采样时间点。若希望绘制响应曲线,可采用plot命令。,当需要计算阶跃响应性能指标时,可根据各指标的定义,结合y和t中保存的数据,来计算各项性能指标。,3.2 阶跃响应性能分析,num=0 0 25;den=1 4 25; y,x,t=step(num,den); peak,k=max(y); %求响应曲线的最大值 overshoot=(peak-1)*100 %计算超调量 tp=t(k

19、) %求峰值时间 n=1; %求上升时间 while y(n)0.98) end ts=t(m),3.2 阶跃响应性能分析,已知单位负反馈控制系统的开环传递函数为,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=1 4.3 4.3 1.4 0.4; p=roots(den) %利用零极点图来判断系统的稳定性。 z,p,k=zpkdata(Gc,v) pzmap(Gc),例13,,试判断此闭

20、环系统的稳定性。,3.3 系统稳定性分析,3.4 M文件使用,除了可以直接在命令窗口直接敲入函数命令外,还可以编写M文件来编写程序,这样有利于模块化设计,并且方便以后重复利用代码。,3.4 M文件使用,需要注意的是,M文件保存的名字不支持汉字,保存路径可以包括汉字,还需要注意M文件保存的名字不要与系统函数同名,否则会报出莫名其妙的错误来。 M文件Editor,还支持断点调试等功能,用户可以设置断点,查看程序中的bug。 M文件所用的编程语言是Matlab自己定义的语言,但是和C语言的非常类似,从C语言过度到M语言非常方便,同学们需要时自己查找相关书籍进行学习。,Simulink是基于MATLA

21、B环境之上的高性能的系统级仿真设计平台,启动Simulink有两种方式: (1) 用命令行方式启动Simulink。即在MATLAB的命令窗口中直接键入如下命令: simulink (2) 使用工具栏按钮启动Simulink。即用鼠标单击MATLAB工具栏中的Simulink按钮。启动Simulink,建立系统模型,其相应的基本操作 如下图所示,3.5 应用Simulink进行仿真,3.5 应用Simulink进行仿真,当用户完成Simulink系统模型的编辑之后,需要保存系统模型,然后设置模块参数与系统仿真参数,最后便可以进行系统的仿真。在系统模型编辑器中,用户可以“拖动”Simulink提

22、供的大量的内置模块建立系统模型。 Simulink的模块库能够对系统模块进行有效的管理与组织,使用Simulink模块库浏览器可以按照类型选择合适的系统模块、获得系统模块的简单描述以及查找系统模块等,并且可以直接将模块库中的模块拖动或者拷贝到用户的系统模型中以构建动态系统模型。,3.5 应用Simulink进行仿真,例14 控制系统结构图如下图所示,试在Simulink环境下构建系统方框图,并对系统的阶跃响应进行仿真。,Simulink是一个可视化动态系统仿真环境。使用Simulink可分析非常复杂的控制系统;而且,可以方便地分析系统参数变化对其性能的影响。,3.5 应用Simulink进行仿

23、真,4 用MATLAB绘制系统的根轨迹,在应用Matlab绘制根轨迹时,首先要将系统的开环传递函数写成如下形式:,将分子多项式与分母多项式按s的降幂写成向量形式num和den,则采用以下命令可绘制根轨迹图。 rlocus (G) 该命令不仅可用于连续系统,还可用于离散系统。另外,还可自动获得根轨迹上各点的增益。 命令rlocus (G, K)直接绘制出给定K值时的闭环极点。,num=1 2 2;den=1 4 16 0; rlocus(num,den) ; v=-5 0 -4 4;axis(v);Grid; title(Root Locus Plot of G(s)H(s)=K(s2+2s+2

24、)/s(s2+4s+16),4 用MATLAB绘制系统的根轨迹,,,a=1 4 0;b=1 2 2; den=conv(a,b);num=1 4 16; G=tf(num,den);rlocus(G) ;v=-4 0.5 -15 15;axis(v);grid; title(Root Locus Plot of G(s)H(s)=K(s2+4s+16)/s(s+4)(s2+2s+2),MATLAB控制系统工具箱在频率响应法方面提供了许多函数支持,使用它们可以很方便地绘制控制系统的频率特性图并对系统进行频域分析或设计。常用的 MATLAB函数有:bode( ),绘制控制系统的伯德图;nyquis

25、t( ),绘制控制系统的奈奎斯特曲线;nichols(),绘制控制系统的尼科尔斯图;margin( ),计算控制系统的稳定裕量;freqresp( ),计算系统在指定频率处的频率响应值;evalfr( ),计算LTI系统在单个复频率处的频率响应值。 其中bode, nyquist和nichols函数,既适用于单变量系统也适用于多变量(即MIMO)系统,既适用于连续时间系统也适用于离散时间系统。在这一节里将通过具体的例子来说明如何应用bode、nyquist和nichols等函数绘制控制系统的伯德图和奈奎斯特曲线以及尼柯尔斯图。,5 Matlab频率特性分析,MATLAB中绘制Bode图的函数是

26、bode( ),调用格式为 bode (G) bode (G, w ) mag, phase, w=bode (G) mag, phase =bode (G, w) Bode(G)可以绘制传递函数为,5.1 Bode图,时系统的bode图。带左端变量的bode函数运行后,屏幕 上将不显示 bode图,而是在用户指定的频率点向量w上 把系统的频率特性表示成幅值和相角,并分别由 mag矩 阵和phase矩阵来表示。,Bode函数具有自动频率选择功能,函数的输入变量部分未给出频率的范围,则该函数能根据系统模型的特性自地选择频率的变化范围。若需要人为地指定频率范围或频率点 w,可以在函数的输入变量部分包含所定义 w。 w的定义可

温馨提示

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

评论

0/150

提交评论