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

Matlab软件工具在控制系统分析和综合中的应用.ppt

97页
  • 卖家[上传人]:汽***
  • 文档编号:579653535
  • 上传时间:2024-08-27
  • 文档格式:PPT
  • 文档大小:748.50KB
  • / 97 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 控制系统的分析方法MATLAB技术应用 控制系统的分析方法 Ø早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线ØMATLAB控制系统工具箱和SIMULINK辅助环境的出现,给控制系统分析带来了福音Ø控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析 q对于连续时间系统,如果闭环极点全部在S平面左半平面,则系统是稳定的q对于离散时间系统,如果系统全部极点都位于Z平面的单位圆内,则系统是稳定的q若连续时间系统的全部零极点都位于S左半平面;或若离散时间系统的全部零极点都位于Z平面单位圆内,则系统是最小相位系统系统稳定及最小相位系统判据控制系统的稳定性分析 2、直接判别MATLAB提供了直接求取系统所有零极点的函数,因此可以直接根据零极点的分布情况对系统的稳定性及是否为最小相位系统进行判断系统稳定及最小相位系统的判别方法1、间接判别(工程方法)劳斯判据:劳斯表中第一列各值严格为正,则系统稳定,如果劳斯表第一列中出现小于零的数值,系统不稳定。

      胡尔维茨判据:当且仅当由系统分母多项式构成的胡尔维茨矩阵为正定矩阵时,系统稳定 ii=find(条件式)用来求取满足条件的向量的下标向量,以列向量表示例如 条件式real(p>0),其含义就是找出极点向量p中满足实部的值大于0的所有元素下标,并将结果返回到ii向量中去这样如果找到了实部大于0的极点,则会将该极点的序号返回到ii下如果最终的结果里ii的元素个数大于0,则认为找到了不稳定极点,因而给出系统不稳定的提示,若产生的ii向量的元素个数为0,则认为没有找到不稳定的极点,因而得出系统稳定的结论pzmap(p,z)根据系统已知的零极点p和z绘制出系统的零极点图 一个动态系统的性能常用典型输入作用下的响应来描述响应是指零初始值条件下某种典型的输入函数作用下对象的响应,控制系统常用的输入函数为单位阶跃函数和脉冲激励函数(即冲激函数)在MATLAB的控制系统工具箱中提供了求取这两种输入下系统响应的函数时域分析的一般方法q求取系统单位阶跃响应:step()q求取系统的冲激响应:impulse()控制系统的时域分析 qy=step(num,den,t):其中num和den分别为系统传递函数描述中的分子和分母多项式系数,t为选定的仿真时间向量,一般可以由t=0:step:end等步长地产生出来。

      该函数返回值y为系统在仿真时刻各个输出所组成的矩阵q[y,x,t]=step(A,B,C,D,iu):其中A,B,C,D为系统的状态空间描述矩阵,iu用来指明输入变量的序号x为系统返回的状态轨迹q如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式:step(num,den);step(num,den,t);step(A,B,C,D,iu,t);step(A,B,C,D,iu);q线性系统的稳态值可以通过函数dcgain()来求取,其调用格式为:dc=dcgain(num,den)或dc=dcgain(a,b,c,d)q[y,x,t]=step(num,den):此时时间向量t由系统模型的特性自动生成, 状态变量x返回为空矩阵step()函数的用法 求取脉冲激励响应的调用方法与step()函数基本一致y=impulse(num,den,t);[y,x,t]=impulse(num,den);[y,x,t]=impulse(A,B,C,D,iu,t)impulse(num,den);impulse(num,den,t)impulse(A,B,C,D,iu);impulse(A,B,C,D,iu,t)impulse()函数的用法 p对于典型二阶系统根据其响应时间的估算公式 可以确定。

      q对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把t选大一些,看看响应曲线的结果,最后再确定其合适的仿真时间q一般来说,先不指定仿真时间,由MATLAB自己确定,然后根据结果,最后确定合适的仿真时间q在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般不易取太大仿真时间t的选择 时间响应探究系统对输入和扰动在时域内的瞬态行为,系统特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上反映出来MATLAB除了提供前面介绍的对系统阶跃响应、冲激响应等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,如:covar:连续系统对白噪声的方差响应initial:连续系统的零输入响应lsim:连续系统对任意输入的响应对于离散系统只需在连续系统对应函数前加d就可以,如dstep,dimpulse等它们的调用格式与step、impulse类似,可以通过help命令来察看自学常用时域分析函数 控制系统的频域分析q频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出带宽、增益、转折频率、闭环稳定性等系统特征q频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系特性。

      频率特性函数与传递函数有直接的关系,记为:频域分析的一般方法q求取系统对数频率特性图(波特图):bode()q求取系统奈奎斯特图(幅相曲线图或极坐标图):nyquist()q频域分析法是应用频率特性研究控制系统的一种典型方法采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确地看出其物理实质和解决途经通常将频率特性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称幅相曲线,MATLAB提供了绘制这两种曲线的函数 1、对数频率特性图(波特图)q对数频率特性图包括了对数幅频特性图和对数相频特性图横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示MATLAB提供了函数bode()来绘制系统的波特图,其用法如下:qbode(a,b,c,d):自动绘制出系统的一组Bode图,它们是针对连续状态空间系统[a,b,c,d]的每个输入的Bode图其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。

      qbode(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的波特图qbode(num,den):可绘制出以连续时间多项式传递函数表示的系统的波特图qbode(a,b,c,d,iu,w)或bode(num,den,w):可利用指定的角频率矢量绘制出系统的波特图q当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角相角以度为单位,幅值可转换为分贝单位:magdb=20×log10(mag) 2、奈奎斯特图(幅相频率特性图)q对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw))和Re(G(jw))以Re(G(jw)) 为横坐标, Im(G(jw)) 为纵坐标绘制成为极坐标频率特性图MATLAB提供了函数nyquist()来绘制系统的极坐标图,其用法如下:qnyquist(a,b,c,d):绘制出系统的一组Nyquist曲线,每条曲线相应于连续状态空间系统[a,b,c,d]的输入/输出组合对其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。

      qnyquist(a,b,c,d,iu):可得到从系统第iu个输入到所有输出的极坐标图qnyquist(num,den):可绘制出以连续时间多项式传递函数表示的系统的极坐标图qnyquist(a,b,c,d,iu,w)或nyquist(num,den,w):可利用指定的角频率矢量绘制出系统的极坐标图q当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示w的变化方向,负无穷到正无穷) 当带输出变量[re,im,w]引用函数时,可得到系统频率特性函数的实部re和虚部im及角频率点w矢量(为正的部分)可以用plot(re,im)绘制出对应w从负无穷到零变化的部分 MATLAB除了提供前面介绍的基本频域分析函数外,还提供了大量在工程实际中广泛应用的库函数,由这些函数可以求得系统的各种频率响应曲线和 特征值如:margin:求幅值裕度和相角裕度及对应的转折频率freqs:模拟滤波器特性nichols:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线)ngrid:尼科尔斯方格图常用频域分析函数 margin()函数qmargin函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。

      幅值裕度和相角裕度是针对开环SISO系统而言,它指示出系统闭环时的相对稳定性当不带输出变量引用时,margin可在当前图形窗口中绘制出带有裕量及相应频率显示的Bode图,其中幅值裕度以分贝为单位q幅值裕度是在相角为-180度处使开环增益为1的增益量,如在-180度相频处的开环增益为g,则幅值裕度为1/g;若用分贝值表示幅值裕度,则等于:-20*log10(g)类似地,相角裕度是当开环增益为1.0时,相应的相角与180度角的和qmargin(mag,phase,w):由bode指令得到的幅值mag(不是以dB为单位) 、相角phase及角频率w矢量绘制出带有裕量及相应频率显示的bode图qmargin(num,den) :可计算出连续系统传递函数表示的幅值裕度和相角裕度并绘制相应波特图类似,margin(a,b,c,d)可以计算出连续状态空间系统表示的幅值裕度和相角裕度并绘制相应波特图q[gm,pm,wcg,wcp]=margin(mag,phase,w):由幅值mag(不是以dB为单位) 、相角phase及角频率w矢量计算出系统幅值裕度和相角裕度及相应的相角交界频率wcg、截止频率wcp,而不直接绘出Bode图曲线。

      freqs()函数qfreqs用于计算由矢量a和b构成的模拟滤波器H(s)=B(s)/A(s)的幅频响应qh=freqs(b,a,w)用于计算模拟滤波器的幅频响应,其中实矢量w用于指定频率值,返回值h为一个复数行向量,要得到幅值必须对它取绝对值,即求模q[h,w]=freqs(b,a)自动设定200个频率点来计算频率响应,这200个频率值记录在w中q[h,w]=freqs(b,a,n)设定n个频率点计算频率响应q不带输出变量的freqs函数,将在当前图形窗口中绘制出幅频和相频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度 q所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在s平面上的轨迹一般来说,这一参数选作开环系统的增益K,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点q根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便利用它可以对系统进行各种性能分析根轨迹分析方法的概念控制系统的根轨迹分析 (1)稳定性当开环增益K从零到无穷大变化时,图中的根轨迹不会越过虚轴进入右半s平面,因此这个系统对所有的K值都是稳定的如果根轨迹越过虚轴进入右半s平面,则其交点的K值就是临界稳定开环增益。

      2)稳态性能开环系统在坐标原点有一个极点,因此根轨迹上的K值就是静态速度误差系数,如果给定系统的稳态误差要求,则可由根轨迹确定闭环极点容许的范围3)动态性能当00.5时,闭环极点为复数极点,系统为欠阻尼系统,单位阶跃响应为阻尼振荡过程,且超调量与K成正比 通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨迹在MATLAB中,专门提供了绘制根轨迹的有关函数pzmap:绘制线性系统的零极点图rlocus:求系统根轨迹rlocfind:计算给定一组根的根轨迹增益sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格根轨迹分析函数 MATLAB提供了函数pzmap()来绘制系统的零极点图,其用法如下:q[p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图q[p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

      qpzmap(a,b,c,d)或pzmap(num,den):不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示qpzmap(p,z):根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示零极点图绘制 MATLAB提供了函数rlocus()来绘制系统的根轨迹图,其用法如下:qrlocus(a,b,c,d)或者rlocus(num,den):根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图开环增益的值从零到无穷大变化qrlocus(a,b,c,d,k)或rlocus(num,den,k): 通过指定开环增益k的变化范围来绘制系统的根轨迹图qr=rlocus(num,den,k) 或者[r,k]=rlocus(num,den) :不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k ,返回闭环系统特征方程1+k*num(s)/den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点或者同时返回k与rq若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。

      正反馈系统或非最小相位系统)根轨迹图绘制 rlocfind()函数MATLAB提供了函数rlocfind()来找出给定的一组根(闭环极点)对应的根轨迹增益其用法如下:q[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)它要求在屏幕上先已经绘制好有关的根轨迹图然后,此命令将产生一个光标以用来选择希望的闭环极点命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根 q不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中 sgrid()函数qsgrid:在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线qsgrid(‘new’):是先清屏,再画格线qsgrid(z,wn):则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线 v控制系统的分析是进行控制系统设计的基础,同时也是工程实际当中解决问题的主要方法,因而对控制系统的分析在控制系统仿真中具有举足轻重的作用v通过求取系统的零极点增益模型直接获得系统的零极点,从而可以直接对控制系统的稳定性及是否为最小相位系统作出判断v控制系统的经典分析方法(时域、频域分析)是目前控制系统界进行科学研究的主要方法,是进行控制系统设计的基础,要求熟练掌握单位阶跃响应、波特图等常用命令的使用。

      v根轨迹分析是求解闭环特征方程根的简单的图解方法,要求熟练掌握根轨迹的绘制小结 Matlab软件工具在控制系统分析和综合中的应用 MatlabMatlab软件工具软件工具在控制系统分析和综合中的应用在控制系统分析和综合中的应用§Matlab基本特点基本特点§控制系统在控制系统在Matlab中的描述中的描述§进行部分分式展开进行部分分式展开§控制系统的时间响应分析控制系统的时间响应分析§控制系统的频域响应分析控制系统的频域响应分析§控制系统的根轨迹图控制系统的根轨迹图§系统稳定性分析系统稳定性分析§Simulink仿真工具仿真工具 1、、matlab基本特点基本特点Matlab简介:§19801980年前后,美国年前后,美国molermoler博士构思并开发;博士构思并开发;§最初的最初的matlabmatlab版本是用版本是用fortranfortran语言编写,语言编写,现在的版本用现在的版本用c c语言改写;语言改写;§19921992年推出了具有划时代意义的年推出了具有划时代意义的matlabmatlab 4.04.0版本;并于版本;并于19931993年推出了其年推出了其windowswindows平台下的微机版,现在比较新的版本是平台下的微机版,现在比较新的版本是6.6.5 5版版 MatlabMatlab语言特点:语言特点:MatlabMatlab以以复复数数矩矩阵阵为为最最基基本本的的运运算算单单元元,,既既可可以以对对它它整整体体地地进进行行处处理理,,也也可可以以对对它它的的某某个个或或某某些些元元素素进进行行单单独独地地处处理理。

      在在matlabmatlab中中,,数数据据的的存存储储/ /输输入入/ /输输出出都都是是以以矩矩阵阵为为基基础础的的,,矩矩阵阵和和其其它它变变量量不不需需要要预预先先定定义义matlabmatlab语语言言最最基基本本的的赋赋值值语语句句结结构为构为 变量名列表变量名列表= =表达式表达式 等等号号右右边边的的表表达达式式可可以以由由分分号号结结束束,,也也可可以以由由逗逗号号或或换换行行结结束束,,但但它它们们的的含含义义是是不不同同的的如如果果用用分分号号结结束束,,则则左左边边的的变变量量结结果果将将不不在在屏屏幕幕上上显显示示出出来来,,否否则则将将把把左左边边返返回回矩矩阵阵的的内容全部显示出来如内容全部显示出来如 » » A=[1,0,1;1,0,0;2,1,0];A=[1,0,1;1,0,0;2,1,0]; » B=[1,0,2;2,1,1;1,0,1] » B=[1,0,2;2,1,1;1,0,1]B =B = 1 0 2 1 0 2 2 1 1 2 1 1 1 0 1 1 0 1 在在matlabmatlab下,矩阵下,矩阵A A和矩阵和矩阵B B的乘积(假定的乘积(假定其中其中A A,,B B矩阵是可乘的)可以简单地由运矩阵是可乘的)可以简单地由运算算C=A*BC=A*B求出求出» » C=A*BC=A*BC =C = 2 0 3 2 0 3 1 0 2 1 0 2 4 1 5 4 1 5 而而D=A.*BD=A.*B称点乘积运算,即表示称点乘积运算,即表示A A和和B B矩阵矩阵的相应元素之间直接进行乘法运算,然后的相应元素之间直接进行乘法运算,然后将结果赋给将结果赋给D D矩阵,点乘积运算要求矩阵,点乘积运算要求A A和和B B矩矩阵的维数相同。

      阵的维数相同» » D=A.*BD=A.*BD=D= 1 0 2 1 0 2 2 0 0 2 0 0 2 0 0 2 0 0 MatlabMatlab下下提提供供了了两两种种文文件件格格式式:: m m文文件件,, matlabmatlab函数函数§M M文文件件是是普普通通的的asciiascii码码构构成成的的文文件件,,在在这这样样的的文文件件中中只只有有由由matlabmatlab语语言言所所支支持持的的语语句句,,类类似似于于dosdos下下的的批批处处理理文文件件,,它它的的执执行行方方式式很很简简单单,,用用户户只只需需在在matlabmatlab的的提提示示符符>>>>下下键键入入该该m m文文件件的的文文件件名名,,这这样样matlabmatlab就就会会自自动动执执行行该该m m文文件件中中的的各各条条语语句句它它采采用用文文本本方方式式,,编编程程效效率率高高,,可读性很强可读性很强 §MatlabMatlab函函数数是是最最常常用用的的特特殊殊m m文文件件,,该该函函数数是是由由functionfunction语句引导,其基本格式如下语句引导,其基本格式如下 Function Function 返回变量列表返回变量列表= =函数名(输入量列表)函数名(输入量列表) 注释说明语句段注释说明语句段 函数体语句函数体语句调调用用时时在在matlabmatlab的的提提示示符符下下键键入入函函数数名名,,并并包包括括输输入变量。

      类似于入变量类似于c c语言的子程序调用如语言的子程序调用如Function Function plot_sin(xmin,xmaxplot_sin(xmin,xmax) )X=xmin:min(0.01,(xmax-xmin)/100):xmax;X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));Plot(x,sin(x));% This is a demo % This is a demo 2、控制系统在、控制系统在matlab中的描述中的描述 要要分分析析系系统统,,首首先先需需要要能能够够描描述述这这个个系系统统例如用传递函数的形式描述系统例如用传递函数的形式描述系统 在在matlabmatlab中,用中,用num=[b1,b2,…,bm,bm1]num=[b1,b2,…,bm,bm1]和和den=[a1,a2,…,an,an1]den=[a1,a2,…,an,an1]分别表示分子和分母多项式系数,然后利用分别表示分子和分母多项式系数,然后利用下面的语句就可以表示这个系统下面的语句就可以表示这个系统 sys=sys=tf(num,dentf(num,den) )其其中中tftf()()代代表表传传递递函函数数的的形形式式描描述述系系统统,,还还可以用零极点形式来描述,语句为可以用零极点形式来描述,语句为 sys1=sys1=zpk(syszpk(sys) ) 而而且且传传递递函函数数形形式式和和零零极极点点形形式式之之间间可可以以相互转化,语句为相互转化,语句为 [ [z,p,k] = tf2zp(num,den)z,p,k] = tf2zp(num,den) [num,den] = zp2tf(z,p,k) [num,den] = zp2tf(z,p,k)当当传传递递函函数数复复杂杂时时,,应应用用多多项项式式乘乘法法函函数数convconv()()等实现。

      例如等实现例如 den1=[1,2,2]den1=[1,2,2] den2=[2,3,3,2] den2=[2,3,3,2] den=conv(den1,den2) den=conv(den1,den2) 3、进行部分分式展开、进行部分分式展开 对于下列传递函数对于下列传递函数 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,, p,, k]] == residue(( num,,den)) r==2..0000 --1..0000p==--1..0000--2.0000k==[][]即即 反之,利用下列命令反之,利用下列命令 [num,den]=residue(r,p,k)可可以以将将部部分分分分式式展展开开式式返返回回到到传传递递函函数数多多项式之比的形式,即得到项式之比的形式,即得到 [[num,,den]=]=residue((r,,p,,k))num==0.0000 1.0000 3.0000den=1.0000 3.0000 2.0000 当包含当包含m m重极点时,部分分式展开式将包重极点时,部分分式展开式将包括下列括下列m m项:项: 例例 对于下列系统传递函数对于下列系统传递函数分子分母表示为分子分母表示为 num=[0,1,2,3] den=[1,3,3,1]采用命令采用命令[r,p,k]=residue(num,den) 得到得到num=[=[0 1 2 3];];den=[=[1 3 3 1];];[[r,,p,,k]=]=residue((num,,den)) r==1.00000.00002.0000p==--1.0000--1.0000--l.0000k==[][]即即 4、线性系统的时间响应分析、线性系统的时间响应分析MatlabMatlab的的ControlControl工工具具箱箱提提供供了了很很多多线线性性系系统统在在特特定定输输入入下下仿仿真真的的函函数数,,例例如如连连续续时时间间系系统统在在阶阶跃跃输输入入激激励励下下的的仿仿真真函函数数stepstep()(),,脉脉冲冲激激励励下下的的仿仿真真函函数数impulse()impulse()及及任任意意输输入入激激励励下下的的仿仿真真函函数数lsimlsim()()等等,,其其中中阶跃响应函数阶跃响应函数step()step()的调用格式的调用格式[y,x]=step(sys,t)[y,x]=step(sys,t)或或[ [y,x]=step(sys)y,x]=step(sys) 其其中中syssys可可以以由由tftf()()或或zpkzpk()()函函数数得得到到,,t t为为选选定定的的仿仿真真时时间间向向量量,,如如果果不不加加t t,,仿仿真真时时间间范范围围自自动动选选择择。

      此此函函数数只只返返回回仿仿真真数数据据而而不不在在屏屏幕幕上上画画仿仿真真图图形形,,返返回回值值y y为为系系统统在在各各个个仿仿真真时时刻刻的的输输出出所所组组成成的的矩矩阵阵,,而而x x为为自自动动选选择择的的状状态态变变量量的的时时间间响响应应数数据据如如果果用用户户对对具具体体的的响响应应数数值值不不感感兴兴趣趣,,而而只只想想绘绘制制出出系系统统的的阶阶跃跃响响应应曲曲线线,,则则可可以以由由 如如 下下 的的 格格 式式 调调 用用 step(sys,t) step(sys,t) 或或step(sys)step(sys) 求求取取脉脉冲冲响响应应的的函函数数impulse()impulse()和和step()step()函函数数的的调调用用格格式式完完全全一一致致,,而而任任意意输输入入下下的的仿仿真真函函数数lsimlsim()()的的调调用用格格式式稍稍有有不不同同,,因因为为在在此此函函数数的的调调用用时时还还应应该该给给出出一一个个输输入入表表向向量量,,该函数的调用格式为该函数的调用格式为 [ [y,x]=y,x]=lsim(sys,u,tlsim(sys,u,t) ) 式式中中,,u u为为给给定定输输入入构构成成的的列列向向量量,,它它的的元元素素个个数数应应该该和和t t的的个个数数是是一一致致的的。

      当当然然该该函函数数若若调调用用时时不不返返回回参参数数,,也也可可以以直直接接绘绘制制出响应曲线图形例如出响应曲线图形例如 sys=sys=tf(num,dentf(num,den) ) t = 0:0.01:5; t = 0:0.01:5; u = sin(t); u = sin(t); lsim(sys,u,tlsim(sys,u,t) ) 为为单单输输入入模模型型syssys对对u(t)=sin(t)u(t)=sin(t)在在5 5秒秒之之内内的输入响应仿真的输入响应仿真 MATLABMATLAB还还提提供供了了离离散散时时间间系系统统的的仿仿真真函函数数,,包包 括括 阶阶 跃跃 响响 应应 函函 数数 dstepdstep()(),, 脉脉 冲冲 响响 应应 函函 数数 dimpulsedimpulse()()和和任任意意输输入入响响应应函函数数dlsimdlsim()()等等,,它它们们的的调调用用方方式式和和连连续续系系统统的的不不完完全全一一致致,,读读者者可可以以参参阅阅MATLABMATLAB的的帮帮助助,,如如在在MATLABMATLAB的的提提示示符符>>>>下下键键入入help help dstepdstep来来了了解解它它们们的的调调用方式用方式 时域分析常用函数如下:时域分析常用函数如下: step - step - 阶跃响应阶跃响应impulse - impulse - 脉冲响应脉冲响应lsimlsim - - 对指定输入的连续输出对指定输入的连续输出gensiggensig - - 对对LSIMLSIM产生输入信号产生输入信号stepfunstepfun - - 产生单位阶跃输入产生单位阶跃输入 例例 对于下列系统传递函数对于下列系统传递函数下下列列MATLAB Programl1.1将将给给出出该该系系统统的的单单位位阶阶跃跃响响应应曲曲线线。

      该该单单位位阶阶跃响应曲线如图跃响应曲线如图1所示 ----MATLAB Programl1.1----num=[0,0,50];den=[25,2,1];step(num,den)gridtitle('Unit-Step Response of G(s)=50/(25s^2+2s+1)') 例例 考虑下列系统考虑下列系统试求该系统的单位阶跃响应曲线试求该系统的单位阶跃响应曲线 虽然用虽然用MATLABMATLAB求该系统的单位阶跃响应求该系统的单位阶跃响应曲线时,不需要求它的传递函数表达式,曲线时,不需要求它的传递函数表达式,这里导出这种表达式,以便作为参考这里导出这种表达式,以便作为参考 对于给定的系统,传递矩阵对于给定的系统,传递矩阵G G((s s))为为 该系统包含两个输入量和两个输出量,根据考该系统包含两个输入量和两个输出量,根据考虑不同的输入信号和输出信号,可以定义虑不同的输入信号和输出信号,可以定义4 4个传递个传递函数当考虑信号函数当考虑信号u u1 1为输入量时,我们假设为输入量时,我们假设u u2 2为零,为零,反之亦然。

      这反之亦然这4 4个传递函数为个传递函数为 利用下列命令:利用下列命令:stepstep((A,B,C,DA,B,C,D))可以画出可以画出4 4个单独的阶跃响应曲线,程序如个单独的阶跃响应曲线,程序如下:下:A=[-1 -1;6.5 0]; B=[1 1;1 0]; C=[1 A=[-1 -1;6.5 0]; B=[1 1;1 0]; C=[1 0;0 1]; D=[0 0;0 0];step(A,B,C,D)0;0 1]; D=[0 0;0 0];step(A,B,C,D) 例例 对于下列系统传递函数对于下列系统传递函数下列下列MATLAB Programl1.2将给出该将给出该系统的单位脉冲响应曲线该单位脉系统的单位脉冲响应曲线该单位脉冲响应曲线如图冲响应曲线如图2所示 ----MATLAB Programl1.2---- num=[0,0,50]; den=[25,2,1]; impulse(num,den) gridtitle('Unit-Impulse Response of G(s)=50/(25s^2+2s+1)') 在在MATLAB中没有斜坡响应命令,可利用阶跃中没有斜坡响应命令,可利用阶跃响应命令求斜坡响应,先用响应命令求斜坡响应,先用s除除G((s),),再利用再利用阶跃响应命令。

      例如,考虑下列闭环系统:阶跃响应命令例如,考虑下列闭环系统:对于单位斜坡输人量对于单位斜坡输人量下列下列MATLAB Programl1.3给出该系统单位斜给出该系统单位斜坡响应曲线该单位斜坡响应曲线如图坡响应曲线该单位斜坡响应曲线如图3所示 ----MATLAB Programl1.3----num=[0,0,0,50];den=[25,2,1,0];t = 0:0.01:100;step(num,den,t)gridtitle('Unit-Step ramp Response of G(s)=50/(25s^2+2s+1)') 5、控制系统的频域响应分析、控制系统的频域响应分析已知系统的传递函数模型如第已知系统的传递函数模型如第2 2节所示,节所示,则该系统的频率响应为则该系统的频率响应为可以由下面的语句来实现,如果有一个频可以由下面的语句来实现,如果有一个频率向量率向量w w,,则则GwGw= =polyval(numpolyval(num, sqrt(-1)*w)./polyval(den,sqrt, sqrt(-1)*w)./polyval(den,sqrt(-1)*w);(-1)*w);其中其中numnum和和denden分别为系统的分子分母多项分别为系统的分子分母多项式系数向量。

      式系数向量 频率响应曲线绘制频率响应曲线绘制MATLABMATLAB提提供供了了多多种种求求取取并并绘绘制制系系统统频频率率响响应应曲曲线线的的函函数数,,如如BodeBode图图绘绘制制函函数数bode()bode(),,NyquistNyquist曲曲线线绘绘制制函函数数nyquistnyquist()()等等,,其其中中bode()bode()函数的调用格式为函数的调用格式为[ [m,p]=bode(num,den,w)m,p]=bode(num,den,w)这这里里,,num,dennum,den和和前前面面的的叙叙述述一一样样,,w w为为频频率率点点构构成成的的向向量量,,该该向向量量最最好好由由logspacelogspace()()函函数数构构成成m,pm,p分分别别代代表表BodeBode响响应应的的幅幅值值向量和相位向量向量和相位向量 如如果果用用户户只只想想绘绘制制出出系系统统的的BodeBode图图,,而而对对获获得得幅幅值值和和相相位位的的具具体体数数值值并并不不感感兴兴趣趣,,则则可可以以由由以以下下更更简简洁洁的的格格式式调调用用bode()bode()函函数数bode(num,den,w)bode(num,den,w)或更简洁地或更简洁地 bode(num,den)bode(num,den)这这时时该该函函数数会会自自动动地地根根据据模模型型的的变变化化情情况况选择一个比较合适的频率范围。

      选择一个比较合适的频率范围 NyquistNyquist曲曲线线绘绘制制函函数数nyquistnyquist()()类类似似于于bodebode()()函函数数,,可可以以利利用用help help nyquistnyquist来来了了解解它它的的调用方法调用方法在在分分析析系系统统性性能能的的时时候候经经常常涉涉及及到到系系统统的的幅幅值值裕裕量量与与相相位位裕裕量量的的问问题题,,使使用用ControlControl工工具具箱箱提提供供的的margin()margin()函函数数,,可可以以直直接接求求出出系系统统的的幅幅值值裕裕量量与与相相位位裕裕量量,,该该函函数数的的调调用用格格式为式为[ [Gm,Pm,wcg,wcpGm,Pm,wcg,wcp]=margin(num,den)]=margin(num,den) 可可以以看看出出,,该该函函数数能能直直接接由由系系统统的的传传递递函函数数来来求求取取系系统统的的幅幅值值裕裕量量GmGm和和相相位位裕裕度度裕裕量量PmPm,,并并求求出出幅幅值值裕裕量量和和相相位位裕裕量量处处相相应应的的频频率率值值wcgwcg和和wcpwcp。

      常用频域分析函数如下:常用频域分析函数如下: bode - bode - 频率响应伯德图频率响应伯德图 nyquistnyquist - - 频率响应乃奎斯特图频率响应乃奎斯特图 nicholsnichols - - 频率响应尼柯尔斯图频率响应尼柯尔斯图 freqrespfreqresp - - 求取频率响应数据求取频率响应数据 margin - margin - 幅值裕量与相位裕量幅值裕量与相位裕量 pzmappzmap - - 零极点图零极点图使使用用时时可可以以利利用用他他们们的的帮帮助助,,如如help bode另另外外,,命命令令ltiview可可以以画画时时域域响响应应和和频频域域响应图,利用响应图,利用help ltiview查看使用说明查看使用说明 例例 对于下列系统传递函数对于下列系统传递函数下列下列MATLAB Programl1.4将给出该系统将给出该系统对应的伯德图。

      其伯德图如图对应的伯德图其伯德图如图4所示 ----MATLAB Programl1.4---- num=[0,0,50]; den=[25,2,1]; bode(num,den) grid title('Bode Diagram of G(s)=50/(25s^2+2s+1)') 如果希望从如果希望从0.01弧度/秒到弧度/秒到1000弧度弧度/秒画秒画伯德图,可输入下列命令:伯德图,可输入下列命令: w=logspace(-2,3,100) bode(num,den,w)该命令在该命令在0.01弧度/秒和弧度/秒和100弧度/秒之间弧度/秒之间产生产生100个在对数刻度上等距离的点个在对数刻度上等距离的点 例例 对于下列系统传递函数对于下列系统传递函数 下下列列MATLAB Programl1.5将将给给出出该该系系统统对应的伯德图其伯德图如图对应的伯德图其伯德图如图5所示 ----MATLAB Programl1.5----num=[10,30];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);w=logspace(-2,3,100);bode(num,den,w)gridtitle('Bode Diagram of G(s)=10(s+3)/s(s+2)(s^2+s+2)') 例例 对于下列系统传递函数对于下列系统传递函数 下下列列MATLAB Programl1.6将将给给出出该该系系统统对对应的乃奎斯图。

      其乃奎斯特图如图应的乃奎斯图其乃奎斯特图如图6所示MATLAB Programl1.6---- num=[0,0,50]; den=[25,2,1,]; nyquist(num,den) title('Nyquist Plot of G(s)=50/(25s^2+2s+1)') 例例 考虑由下列方程定义的系统:考虑由下列方程定义的系统:  该系统包含两个输入量和两个输出量这里该系统包含两个输入量和两个输出量这里存在存在4 4种正弦输出种正弦输出- -输入关系:输入关系:Y Y1 1((jωjω)/)/U Ul l((jωjω)、)、Y Y2 2((jωjω)/)/U Ul l((jωjω)、)、Y Y1 1((jωjω)/)/U U2 2((jωjω))和和Y Y2 2((jωjω)/)/U2U2((jωjω)试画出该系试画出该系统的奈魁斯特图统的奈魁斯特图 MATLAB Program 10MATLAB Program 10A=[-1 -1;6.5 0];B=[1 1;1 0];C=[1 A=[-1 -1;6.5 0];B=[1 1;1 0];C=[1 0;0 1];D=[0 0;0 0]; 0;0 1];D=[0 0;0 0]; nyquist(A,B,C,Dnyquist(A,B,C,D) ) 6、控制系统的根轨迹图、控制系统的根轨迹图 通常采用下列通常采用下列MATLAB命令画根轨迹命令画根轨迹 rlocus((num,,den))利利用用该该命命令令,,可可以以在在屏屏幕幕上上得得到到画画出出的的根根轨轨迹迹图图。

      增增益益向向量量K自自动动被被确确定定命命令令rlocus既既适适用用于于连连续续系系统统,,也也适适用用于于离离散散时间系统时间系统对于定义在状态空间内的系统,其命令为对于定义在状态空间内的系统,其命令为 rlocus((A,,B,,C,,D)) MATLAB在在绘绘图图命命令令中中还还包包含含自自动动轴轴定定标标功能 例例 对对于于一一单单位位反反馈馈控控制制系系统统,,其其开开环环传传递递函数为函数为 下下列列MATLAB Programl1.7将将给给出出该该系系统统对应的根轨迹图其根轨迹图如图对应的根轨迹图其根轨迹图如图7所示 --------- MATLAB Programl1.7-----------num=[1,3];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);rlocus(num,den)v=[-10 10 -10 10];axis(v)gridtitle('Root-Locus Plot of G(s)=K(s+3)/s(s+2)(s^2+s+2)') 7、系统稳定性分析、系统稳定性分析给定一个控制系统,可利用给定一个控制系统,可利用MATLABMATLAB在它的在它的时域、频域图形分析中看出系统的稳定性,时域、频域图形分析中看出系统的稳定性,并可直接求出系统的相角裕量和幅值裕量。

      并可直接求出系统的相角裕量和幅值裕量此外,我们还可通过求出特征根的分布更此外,我们还可通过求出特征根的分布更直接地判断出系统稳定性如果闭环系统直接地判断出系统稳定性如果闭环系统所有的特征根都为负实部则系统稳定所有的特征根都为负实部则系统稳定 例如,给出控制系统闭环传递函数为例如,给出控制系统闭环传递函数为» » num=[3,2,1,4,2]num=[3,2,1,4,2]num =num = 3 2 1 4 2 3 2 1 4 2» den=[3,5,1,2,2,1]» den=[3,5,1,2,2,1]den =den = 3 5 1 2 2 1 3 5 1 2 2 1» [z,p]=tf2zp(num,den)» [z,p]=tf2zp(num,den) z =z = 0.4500 + 0.9870i 0.4500 + 0.9870i 0.4500 - 0.9870i 0.4500 - 0.9870i -1.0000 -1.0000 -0.5666 -0.5666 p =p = -1.6067 -1.6067 0.4103 + 0.6801i 0.4103 + 0.6801i 0.4103 - 0.6801i 0.4103 - 0.6801i -0.4403 + 0.3673i -0.4403 + 0.3673i -0.4403 - 0.3673I -0.4403 - 0.3673I» »pzmap(num,denpzmap(num,den) ) » » ii=find(real(p)>0)ii=find(real(p)>0)ii =ii = 2 2 3 3» n1=length(ii)» n1=length(ii)n1 =n1 = 2 2» » if(n1>0), if(n1>0), disp(['Systemdisp(['System is is unstable, unstable, with with ' ' int2str(n1) int2str(n1) ' ' unstable poles']);unstable poles']);else else disp('Syatemdisp('Syatem is stable'); is stable');endend System System is is unstable,with unstable,with 2 2 unstable unstable polespoles» » disp('Thedisp('The unstable unstable poles poles are: are: '), '), disp(p(iidisp(p(ii))))The unstable poles are: The unstable poles are: 0.4103 + 0.6801i 0.4103 + 0.6801i 0.4103 - 0.6801i 0.4103 - 0.6801i以以上上求求出出具具体体的的零零极极点点、、画画出出零零极极点点分分布布、、明明确确指指出出系系统统不不稳稳定定,,并并指指出出引引起起系系统统不不稳定的具体右根。

      稳定的具体右根 8、Simulink仿真工具如如果果控控制制系系统统的的结结构构很很复复杂杂,,则则若若不不借借助助专专用用的的系系统统建建模模软软件件,,在在过过去去很很难难准准确确地地把把一一个个控控制制系系统统的的复复杂杂模模型型输输入入给给计计算算机机,,对对之之进进行行分分析析和和仿仿真真19901990年年MathWorksMathWorks软软件件公公司司为为MATLABMATLAB提提供供了了新新的的控控制制系系统统模模型型图图形形输输入入与与仿仿真真工工具具,,命命名名为为SIMULINKSIMULINK,,这这一一名名字字的的含含义义相相当当直直观观,,SIMUSIMU((仿仿真真))与与LINKLINK((连连接接)),,亦亦即即可可以以利利用用鼠鼠标标器器在在模模型型窗窗口口上上““画画””出出所所需需的的控控制制系系统统模模型型,,然然后后利利用用SIMULINKSIMULINK提提供供的的功功能能来来对对系系统统进进行行仿仿真真或或线线性性化化这这种种法法的的一一个个优优点点是是,,可可以以使使得得一一个个很很复复杂杂系系统统的的输输入入变变得得相相当当容易且直观。

      容易且直观 首先根据一个例子来说明控制系统框图模型首先根据一个例子来说明控制系统框图模型的建立,这是一个简化的调速系统我们看的建立,这是一个简化的调速系统我们看如何利用如何利用SimulinkSimulink工具输入这个框图,然后工具输入这个框图,然后再进行分析具体利用再进行分析具体利用SimulinkSimulink建立框图的建立框图的方法见网络辅助教学中方法见网络辅助教学中““控制工程基础控制工程基础””第第1111章有关内容章有关内容 下图是下图是Matlab中中Simulink工具建立的例题工具建立的例题框图可以点击图中框图可以点击图中Simulation下的下的start图标开始仿真,然后双击框图中的图标开始仿真,然后双击框图中的scope,查看仿真图形其他仿真命令大家可以,查看仿真图形其他仿真命令大家可以自行学习自行学习。

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