好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

【精品】自动控制原理matlab控制系统仿真讲义.ppt

108页
  • 卖家[上传人]:jiups****uk12
  • 文档编号:45253149
  • 上传时间:2018-06-15
  • 文档格式:PPT
  • 文档大小:976.50KB
  • / 108 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 自动控制原理 与MatlabMatlab软件工具 在控制系统分析和综合中的应用oMatlab基本特点o控制系统在Matlab中的描述o进行部分分式展开o控制系统的时间响应分析o控制系统的频域响应分析o控制系统的根轨迹图o系统稳定性分析oSimulink仿真工具1、matlab基本特点Matlab简介:o1980年前后,美国moler博士构思并开发;o最初的matlab版本是用fortran语言编写,现在的版本 用c语言改写;o1992年推出了具有划时代意义的matlab 4.0版本;并于 1993年推出了其windows平台下的微机版,现在比较新的 版本是6.5版Matlab语言特点:Matlab以复数矩阵为最基本的运算单元,既可以对它整体地进行处理,也可以对它的某个或某些元 素进行单独地处理在matlab中,数据的存储/输入/输出都是以矩阵为基础的,矩阵和其它变量不需要 预先定义matlab语言最基本的赋值语句结构为变量名列表=表达式变量名为matlab语句的返回值;等号右边是表达式的定义,它可以是矩阵,也可是函数调用等号右边的表达式可以由分号结束,也可以 由逗号或换行结束,但它们的含义是不同的。

      如果用分号结束,则左边的变量结果将不在屏 幕上显示出来,否则将把左边返回矩阵的内容 全部显示出来如» A=[1,0,1;1,0,0;2,1,0];» B=[1,0,2;2,1,1;1,0,1]B =1 0 22 1 11 0 1在matlab下,矩阵A和矩阵B的乘积(假定 其中A,B矩阵是可乘的)可以简单地由运 算C=A*B求出 » C=A*B C =2 0 31 0 24 1 5而D=A.*B称点乘积运算,即表示A和B矩阵的相应元素之间直接进行乘法运算,然后将结果赋给D矩阵,点乘积运算要求A和B矩阵的维数相同» D=A.*B D=1 0 22 0 02 0 0 在MATLAB中多项式由行向量组成,这些行向量包含了降次 排列的多项式系数例如多项式p(s)=1s3+3s2+0s1+4s0 输入 >>p=[1 3 0 4]; >>r=roots(p) r=-3.3553e+001.7765e-01+1.0773e+00j1.7765e-01-1.0773e+00j >>p=poly(r) p=1.000 3.000 0.000-0.000j 4.000+0.000j输入多项式并求根Matlab下提供了两种文件格式: m文件 , matlab函数nM文件是普通的ascii码构成的文件,在这样的文件中只有由matlab语言所支持的语句,类似于doc下的批处理文件,它的执行方式很简单,用户只需在matlab的提示符>>下键入该m文件的文件名,这样matlab就会自动执行该m文件中的各条语句。

      它采用文本方式,编程效率高,可读性很强nMatlab函数是最常用的特殊m文件,该函数是由function语句 引导,其基本格式如下Function 返回变量列表=函数名(输入量列表)注释说明语句段函数体语句调用时在matlab的提示符下键入函数名,并包括输入变量类似于c语言的子程序调用如Function plot_sin(xmin,xmax)X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));% This is a demo 要分析系统,首先需要能够描述这个系统性系统理论中,一般常用的数学模型形式有:o传递函数模型(系统的外部模型);o状态方程模型(系统的内部模型);o零极点增益模型和部分分式模型等这些模型之间都有着内在的联系,可以相互进行转换2、控制系统在matlab中的描述一、传递函数模型o对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系 统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一 地确定出来,这两个向量分别用num和den表示o分子:num=[b1,b2,…,bm,bm+1]o分母:den=[a1,a2,…,an,an+1]o注意:它们都是按s的降幂进行排列的。

      v在MATLAB中零极点增益模型用[z,p,K]矢量组表示即:vz=[z1,z2,…,zm]vp=[p1,p2,...,pn]vK=[k]v函数tf2zp()可以用来求传递函数的零极点和增益二、零极点增益模型K为系统增益,zi为零点,pj为极点利用下面的语句就可以表示这个系统:n 传递函数的形式 sys=tf(num,den)其中tf()代表传递函数的形式描述系统,n 零极点形式 sys1=zpk(sys) n 传递函数形式和零极点形式之间可以相互转化,语句为[z,p,k] = tf2zp(num,den)[num,den] = zp2tf(z,p,k)n当传递函数复杂时,应用多项式乘法函数conv()等实现举例:传递函数描述 1)》num=[12,24,0,20];den=[2 4 6 2 2];2)借助多项式乘法函数conv(卷积)来处理:》num=4*conv([1,2],conv([1,6,6],[1,6,6]));》den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));》num=[1,11,30,0]; 》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》z=0-6-5p=-3.0000+4.0000i-3.0000-4.0000i-2.0000-1.0000k=1零极点增益模型:》 s=zpk(z,p,k,-1)Zero/pole/gain: 1 z(z+6) (z+5) 1 (z+2) (z+1) (z^2 + 6z + 25)输入命令:o控制系统常用到并联系统,这时就要对系统函数进 行分解,使其表现为一些基本控制单元和的形式。

      o函数[r,p,k]=residue(num,den)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式o向量num和den是按s的降幂排列的多项式系数部 分分式展开后,留数返回到向量r,极点返回到列向量p ,常数项返回到ko[num, den]=residue(r,p,k)可以将部分分式转化为多项式比三、部分分式展开num和den分别表示传递函数的分子和分母的系数,即num=[bo,bl,…,bn]den=[1,al.…,an]命令[r,p,k]=residue(num,den)将求出传递函数的部分分式展开式中的留数、极点和余 项,即得到例: 对于下列系统传递 函数输入命令>> num=[0,1,3];>> den=[1,3,2];>>[r,p,k]=residue(num,den) r=2.0000-1.0000 p= -1.0000 -2.0000 k=[]即得到反之,利用下列命令[num,den]=residue(r,p,k)可以将部分分式展开式返回到传递函数多项式之比的形式,即得到num=0.0000 1.0000 3.0000den=1.0000 3.0000 2.0000>> [num,den]=residue(r,p,k)当包含m重极点时,部分分式展开式将包括下列m项:例 对于下列系统传递函数n输入命令>> num=[0,1,2,3];>> den=[1,3,3,1];>> [r,p,k]=residue(num,den)r= 1.0000 0.0000 2.0000 p= -1.0000 -1.0000 -l.0000 k=[] 即3、结构图模型o串联一个开环控制系统可以通过G1 (s)与G2 (s)两个环节的串 联而得到,利用series()函数可以求串联连接的传递函数,函数的具体形式为:[num,den]= series(num1,den1, num2,den2)o并联当系统是以并联的形式连接时,利用parallel()函数可得到系统的传递函数。

      指令的具体形式为:%将并联连接的传递函数进行相加[num,den]= parallel (num1,den1, num2,den2)串联函数的用法如下:>>num1=[1 1];den2=[1 2]; >>num2=[1];den1=[500 0 0]; >>[num,den]=series(num1,den1,num2,den2); >>printsys(num,den) num/den=( s+1 ) 500s^3+1000s^2series函数的用法例如G1 (s)和G2 (s)串联连接的传递函数分别为:n 反馈系统以反馈方式构成闭环,则系统的闭环传递函数为:求闭环传递函数的MATLAB函数有两个:cloop()和feedback() 其中cloop()函数只能用于H (s)=1(即单位反馈)的情况cloop()函数的具体用法为: [num,den]= cloop (numg,deng, sign) 其中numg和deng分别为G (s)的分子和分母多项式,sign=1为正 反馈,sign= -1为负反馈(默认值)。

      feedback()函数的用法为:[num,den]= feedback (numg,deng,numh,denh, sign)其中numh为H (s)的分子多项式,denh为分母多项式 闭环反馈系统的结构图如图2-70所示,被控对象G(s)和控制部分Gc (s)以及测量环节H (s)的传递函数分别为:图2-70 闭环反馈系统的结构图 应用series()函数和feedback()函数求闭环传递函数的MATLAB 指令如图2-71 所示:>>numg=[1];deng=[5 0 0]; >>numc=[1 1];denc=[1 2]; >>numh=[1];denh=[1 10]; >>[num1,den1]=series(numc,denc,numg,deng); >>[num,den]=feedback(num1,den1,numh,denh,-1); >>printsys(num,den) num/den=s^2+11s+10 ) 5s^4+60s^3+100s^2+s+1图2-71 feedback()函数的应用练习编程实现传递函数模型、零极点模型及部分方式模型4、线性系统的时间响应分析Matlab的Control工具箱提供了很多线性系统在特定输入下仿真的函数,例如连续时间系统在阶跃输 入激励下的仿真函数step(),脉冲激励下的仿真函数impulse()及任意输入激励下的仿真函数lsim()等q求取系统单位阶跃响应:step()q求取系统的冲激响应:impulse()q求取系统任意激励响应:lsim()p如果用户对具体的响应数值不感兴趣,而只想绘制出 系统的阶跃响应曲线,则可以由如下的格式调用 step(sys,t) 或step(sys)step()函数的用法qy=step(sys,t):其中sys可以由tf()或zpk()函数得到, t为 选定的仿真时间向量,一般可以由t=0:step:end等步长地产 生出来。

      此函数只返回仿真数据而不在屏幕上画仿真图形, 返回值y为系统在仿真时刻各个输出所组成的矩阵qy=step(num,den,t)q[y,x,t]=step(sys):此时时间向量t由系统模型的特性自动 生成, 状态变量x返回为空矩阵o任意输入下的仿真函。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.