收藏 分销(赏)

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

上传人:xrp****65 文档编号:13779239 上传时间:2026-04-13 格式:PPT 页数:97 大小:748.50KB 下载积分:10 金币
下载 相关 举报
Matlab软件工具在控制系统分析和综合中的应用.ppt_第1页
第1页 / 共97页
Matlab软件工具在控制系统分析和综合中的应用.ppt_第2页
第2页 / 共97页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,控制系统的分析方法,MATLAB,技术应用,控制系统的分析方法,早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据,然后再编写一个绘图程序,将数据绘制成可供工程分析的响应曲线。,MATLAB,控制系统工具箱和,SIMULINK,辅助环境的出现,给控制系统分析带来了福音。,控制系统的分析包括系统的稳定性分析、时域分析、频域分析及根轨迹分析。,对于连续时间系统,如果闭环极点全部在,S,平面左半平面,则系统是稳定的。,对于离散时间系统,如果系统全部极点都位于,Z,平面的单位圆内,则系统是稳定的。,若连续时间系统的,全部零极点,都位于,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,的控制系统工具箱中提供了求取这两种输入下系统响应的函数。,时域分析的一般方法,求取系统单位阶跃响应:,step(),求取系统的冲激响应:,impulse(),控制系统的时域分析,y=step(num,den,t),:,其中,num,和,den,分别为系统传递函数描述中的分子和分母多项式系数,,t,为选定的仿真时间向量,一般可以由,t=0:step:end,等步长地产生出来。该函数返回值,y,为系统在仿真时刻各个输出所组成的矩阵。,y,x,t=,step(A,B,C,D,iu,),:,其中,A,B,C,D,为系统的状态空间描述矩阵,,iu,用来指明输入变量的序号。,x,为系统返回的状态轨迹。,如果对具体的响应值不感兴趣,而只想绘制系统的阶跃响应曲线,可调用以下的格式:,step(num,den),;,step(num,den,t),;,step(A,B,C,D,iu,t,),;,step(A,B,C,D,iu,),;,线性系统的稳态值可以通过函数,dcgain,(),来求取,其调用格式为:,dc=,dcgain(num,den,),或,dc=,dcgain(a,b,c,d,),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(),函数的用法,对于典型二阶系统根据其响应时间的估算公式 可以确定。,对于高阶系统往往其响应时间很难估计,一般采用试探的方法,把,t,选大一些,看看响应曲线的结果,最后再确定其合适的仿真时间。,一般来说,先不指定仿真时间,由,MATLAB,自己确定,然后根据结果,最后确定合适的仿真时间。,在指定仿真时间时,步长的不同会影响到输出曲线的光滑程度,一般不易取太大。,仿真时间,t,的选择,时间响应探究系统对输入和扰动在时域内的瞬态行为,系统特征如:上升时间、调节时间、超调量和稳态误差都能从时间响应上反映出来。,MATLAB,除了提供前面介绍的对系统阶跃响应、冲激响应等进行仿真的函数外,还提供了大量对控制系统进行时域分析的函数,如:,covar,:,连续系统对白噪声的方差响应,initial,:,连续系统的零输入响应,lsim,:,连续系统对任意输入的响应,对于离散系统只需在连续系统对应函数前加,d,就可以,如,dstep,,,dimpulse,等。,它们的调用格式与,step,、,impulse,类似,可以通过,help,命令来察看自学。,常用时域分析函数,控制系统的频域分析,频率响应是指系统对正弦输入信号的稳态响应,从频率响应中可以得出带宽、增益、转折频率、闭环稳定性等系统特征。,频率特性是指系统在正弦信号作用下,稳态输出与输入之比对频率的关系特性。频率特性函数与传递函数有直接的关系,记为:,频域分析的一般方法,求取系统对数频率特性图(波特图):,bode(),求取系统奈奎斯特图(幅相曲线图或极坐标图),:,nyquist,(),频域分析法是应用频率特性研究控制系统的一种典型方法。采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确地看出其物理实质和解决途经。通常将频率特性用曲线的形式进行表示,包括对数频率特性曲线和幅相频率特性曲线简称幅相曲线,,MATLAB,提供了绘制这两种曲线的函数。,1,、对数频率特性图(波特图),对数频率特性图包括了对数幅频特性图和对数相频特性图。横坐标为频率,w,,,采用对数分度,单位为弧度,/,秒;纵坐标均匀分度,分别为幅值函数,20lgA(w),,以,dB,表示;相角,以度表示。,MATLAB,提供了函数,bode(),来绘制系统的波特图,其用法如下:,bode(a,b,c,d),:,自动绘制出系统的一组,Bode,图,它们是针对连续状态空间系统,a,b,c,d,的每个输入的,Bode,图。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。,bode(a,b,c,d,iu,),:,可得到从系统第,iu,个输入到所有输出的波特图。,bode(num,den),:,可绘制出以连续时间多项式传递函数表示的系统的波特图。,bode(a,b,c,d,iu,w,),或,bode(num,den,w),:,可利用指定的角频率矢量绘制出系统的波特图。,当带输出变量,mag,pha,w,或,mag,pha,引用函数时,可得到系统波特图相应的幅值,mag,、,相角,pha,及角频率点,w,矢量或只是返回幅值与相角,。,相角以度为单位,幅值可转换为分贝单位:,magdb,=20log10(mag),2,、奈奎斯特图,(,幅相频率特性图),对于频率特性函数,G(jw,),,,给出,w,从负无穷到正无穷的一系列数值,分别求出,Im(G(jw,),和,Re(G(jw,),。以,Re(G(jw,),为横坐标,,Im(G(jw,),为纵坐标绘制成为极坐标频率特性图。,MATLAB,提供了函数,nyquist,(),来绘制系统的极坐标图,其用法如下:,nyquist(a,b,c,d,),:,绘制出系统的一组,Nyquist,曲线,每条曲线相应于连续状态空间系统,a,b,c,d,的输入,/,输出组合对。其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。,nyquist(a,b,c,d,iu,),:,可得到从系统第,iu,个输入到所有输出的极坐标图,。,nyquist(num,den,),:,可绘制出以连续时间多项式传递函数表示的系统的极坐标图,。,nyquist(a,b,c,d,iu,w,),或,nyquist(num,den,w,),:,可利用指定的角频率矢量绘制出系统的极坐标图。,当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示,w,的变化方向,负无穷到正无穷)。当带输出变量,re,im,w,引用函数时,可得到系统频率特性函数的实部,re,和虚部,im,及,角频率点,w,矢量(为正的部分)。可以用,plot(re,im,),绘制出对应,w,从负无穷到零变化的部分。,MATLAB,除了提供前面介绍的基本频域分析函数外,还提供了大量在工程实际中广泛应用的库函数,由这些函数可以求得系统的各种频率响应曲线和 特征值。如:,margin,:,求幅值裕度和相角裕度及对应的转折频率,freqs,:,模拟滤波器特性,nichols,:,求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线),ngrid,:,尼科尔斯方格图,常用频域分析函数,margin(),函数,margin,函数可以从频率响应数据中计算出幅值裕度、相角裕度以及对应的频率。幅值裕度和相角裕度是针对开环,SISO,系统而言,它指示出系统闭环时的相对稳定性。当不带输出变量引用时,,margin,可在当前图形窗口中绘制出带有裕量及相应频率显示的,Bode,图,其中幅值裕度以分贝为单位。,幅值裕度是在相角为,-180,度处使开环增益为,1,的增益量,如在,-180,度相频处的开环增益为,g,,,则幅值裕度为,1/g,;,若用分贝值表示幅值裕度,则等于:,-20*log10(g),。,类似地,相角裕度是当开环增益为,1.0,时,相应的相角与,180,度角的和。,margin(mag,phase,w,),:由,bode,指令得到的幅值,mag,(,不是以,dB,为单位)、相角,phase,及角频率,w,矢量绘制出带有裕量及相应频率显示的,bode,图。,margin(num,den),:可,计算出连续系统传递函数表示的幅值裕度和相角裕度并绘制相应波特图。类似,,margin(a,b,c,d),可以计算出连续状态空间系统表示的幅值裕度和相角裕度并绘制相应波特图。,gm,pm,wcg,wcp,=,margin(mag,phase,w,),:由,幅值,mag,(,不是以,dB,为单位)、相角,phase,及角频率,w,矢量计算出系统幅值裕度和相角裕度及相应的相角交界频率,wcg,、,截止频率,wcp,,,而不直接绘出,Bode,图曲线。,freqs,(),函数,freqs,用于计算由矢量,a,和,b,构成的模拟滤波器,H(s)=B(s)/A(s),的幅频响应。,h=,freqs(b,a,w,),用于计算模拟滤波器的幅频响应,其中实矢量,w,用于指定频率值,返回值,h,为一个复数行向量,要得到幅值必须对它取绝对值,即求模。,h,w=,freqs(b,a,),自动设定,200,个频率点来计算频率响应,这,200,个频率值记录在,w,中。,h,w=,freqs(b,a,n,),设定,n,个频率点计算频率响应。,不带输出变量的,freqs,函数,将在当前图形窗口中绘制出幅频和相频曲线,其中幅相曲线对纵坐标与横坐标均为对数分度。,所谓根轨迹是指,当开环系统某一参数从零变到无穷大时,闭环系统特征方程的根在,s,平面上的轨迹。一般来说,这一参数选作开环系统的增益,K,,,而在无零极点对消时,闭环系统特征方程的根就是闭环传递函数的极点。,根轨迹分析方法是分析和设计线性定常控制系统的图解方法,使用十分简便。利用它可以对系统进行各种性能分析,根轨迹分析方法的概念,控制系统的根轨迹分析,(,1,)稳定性,当开环增益,K,从零到无穷大变化时,图中的根轨迹不会越过虚轴进入右半,s,平面,因此这个系统对所有的,K,值都是稳定的。如果根轨迹越过虚轴进入右半,s,平面,则其交点的,K,值就是临界稳定开环增益。,(,2,)稳态性能,开环系统在坐标原点有一个极点,因此根轨迹上的,K,值就是静态速度误差系数,如果给定系统的稳态误差要求,则可由根轨迹确定闭环极点容许的范围。,(,3,)动态性能,当,0K0.5,时,闭环极点为复数极点,系统为欠阻尼系统,单位阶跃响应为阻尼振荡过程,且超调量与,K,成正比。,通常来说,绘制系统的根轨迹是很繁琐的事情,因此在教科书中介绍的是一种按照一定规则进行绘制的概略根轨迹。在,MATLAB,中,专门提供了绘制根轨迹的有关函数。,pzmap,:,绘制线性系统的零极点图,rlocus,:,求系统根轨迹。,rlocfind,:,计算给定一组根的根轨迹增益。,sgrid,:,在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。,根轨迹分析函数,MATLAB,提供了函数,pzmap,(),来绘制系统的零极点图,其用法如下:,p,z=,pzmap(a,b,c,d,),:,返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。,p,z=,pzmap(num,den,),:,返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。,pzmap(a,b,c,d,),或,pzmap(num,den,),:,不带输出参数项,则直接在,s,复平面上绘制出系统对应的零极点位置,极点用,表示,零点用,o,表示。,pzmap(p,z,),:,根据系统已知的零极点列向量或行向量直接在,s,复平面上绘制出对应的零极点位置,极点用,表示,零点用,o,表示。,零极点图绘制,MATLAB,提供了函数,rlocus,(),来绘制系统的根轨迹图,其用法如下:,rlocus(a,b,c,d,),或者,rlocus(num,den,),:,根据,SISO,开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。开环增益的值从零到无穷大变化。,rlocus(a,b,c,d,k,),或,rlocus(num,den,k,),:,通过指定开环增益,k,的变化范围来绘制系统的根轨迹图。,r=,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,与,r,。,若给出传递函数描述系统的分子项,num,为负,则利用,rlocus,函数绘制的是系统的零度根轨迹。(正反馈系统或非最小相位系统),根轨迹图绘制,rlocfind,(),函数,MATLAB,提供了函数,rlocfind,(),来,找出给定的一组根(闭环极点)对应的根轨迹增益。其用法如下:,k,p=,rlocfind(a,b,c,d,),或者,k,p=,rlocfind(num,den,),它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:,k,为对应选择点处根轨迹开环增益;,p,为此点处的系统闭环特征根。,不带输出参数项,k,p,时,同样可以执行,只是此时只将,k,的值返回到缺省变量,ans,中。,sgrid,(),函数,sgrid,:,在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率,wn,、,阻尼比矢量,z,对应的格线。,sgrid(new,),:,是先清屏,再画格线。,sgrid(z,wn,),:,则绘制由用户指定的阻尼比矢量,z,、,自然振荡频率,wn,的格线。,控制系统的分析是进行控制系统设计的基础,同时也是工程实际当中解决问题的主要方法,因而对控制系统的分析在控制系统仿真中具有举足轻重的作用。,通过求取系统的零极点增益模型直接获得系统的零极点,从而可以直接对控制系统的稳定性及是否为最小相位系统作出判断。,控制系统的经典分析方法(时域、频域分析)是目前控制系统界进行科学研究的主要方法,是进行控制系统设计的基础,要求熟练掌握单位阶跃响应、波特图等常用命令的使用。,根轨迹分析是求解闭环特征方程根的简单的图解方法,要求熟练掌握根轨迹的绘制。,小结,Matlab,软件工具,在控制系统分析和综合中的应用,Matlab,软件工具在控制系统分析和综合中的应用,Matlab,基本特点,控制系统在,Matlab,中的描述,进行部分分式展开,控制系统的时间响应分析,控制系统的频域响应分析,控制系统的根轨迹图,系统稳定性分析,Simulink,仿真工具,1、,matlab,基本特点,Matlab,简介:,1980年前后,美国,moler,博士构思并开发;,最初的,matlab,版本是用,fortran,语言编写,现在的版本用,c,语言改写;,1992年推出了具有划时代意义的,matlab,4.0,版本;并于1993年推出了其,windows,平台下的微机版,现在比较新的版本是6.,5,版,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 2,2 1 1,1 0 1,在,matlab,下,矩阵,A,和矩阵,B,的乘积(假定,其中,A,B,矩阵是可乘的)可以简单地由运,算,C=A*B,求出,C=A*B,C=,2 0 3,1 0 2,4 1 5,而,D=A.*B,称点乘积运算,即表示,A,和,B,矩阵,的相应元素之间直接进行乘法运算,然后,将结果赋给,D,矩阵,点乘积运算要求,A,和,B,矩,阵的维数相同。,D=A.*B,D=,1 0 2,2 0 0,2 0 0,Matlab,下提供了两种文件格式:,m,文件,,matlab,函数,M,文件,是普通的,ascii,码构成的文件,在这样的文件中只有由,matlab,语言所支持的语句,类似于,dos,下的批处理文件,它的执行方式很简单,用户只需在,matlab,的提示符下键入该,m,文件的文件名,这样,matlab,就会自动执行该,m,文件中的各条语句。它采用文本方式,编程效率高,可读性很强。,Matlab,函数,是最常用的特殊,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,2、控制系统在,matlab,中的描述,要分析系统,首先需要能够描述这个系统。例如用传递函数的形式描述系统,在,matlab,中,用,num=b1,b2,bm,bm1,和,den=a1,a2,an,an1,分别表示分子和分母多项式系数,然后利用下面的语句就可以表示这个系统,sys=,tf(num,den,),其中,tf,(),代表传递函数的形式描述系统,还可以用零极点形式来描述,语句为,sys1=,zpk(sys,),而且传递函数形式和零极点形式之间可以相互转化,语句为,z,p,k=tf2zp(num,den),num,den=zp2tf(z,p,k),当传递函数复杂时,应用多项式乘法函数,conv,(),等实现。例如,den1=1,2,2,den2=2,3,3,2,den=conv(den1,den2),3、进行部分分式展开,对于下列传递函数,num,和,den,分别表示传递函数的分子和分母的系数,即,numb,o,b,l,b,n,den1,a,l,.,a,n,命令,r,p,kresidue(num,den),将求出传递函数的部分分式展开式中的留数、极点和余项,即得到,例:对于下列系统传递函数,分子分母表示为,num=0,1,3,den=1,3,2,采用命令,r,p,k,=,residue(num,den,),得到,r,p,kresidue(num,den),r20000,10000,p,10000,2.0000,k,即,反之,利用下列命令,num,den,=,residue(r,p,k,),可以将部分分式展开式返回到传递函数多项式之比的形式,即得到,num,denresidue(r,p,k),num,0.0000 1.0000 3.0000,den=,1.0000 3.0000 2.0000,当包含,m,重极点时,部分分式展开式将包括下列,m,项:,例 对于下列系统传递函数,分子分母表示为,num=0,1,2,3,den=1,3,3,1,采用命令,r,p,k,=,residue(num,den,),得到,num0 1 2 3;,den1 3 3 1;,r,p,kresidue(num,den),r,1.0000,0.0000,2.0000,p,1.0000,1.0000,l.0000,k,即,4、线性系统的时间响应分析,Matlab,的,Control,工具箱提供了很多线性系统在特定输入下仿真的函数,例如连续时间系统在阶跃输入激励下的仿真函数,step(),,脉冲激励下的仿真函数,impulse(),及任意输入激励下的仿真函数,lsim,(),等,其中阶跃响应函数,step(),的调用格式,y,x=step(sys,t),或,y,x=step(sys),其中,sys,可以由,tf,(),或,zpk,(),函数得到,,t,为选定的仿真时间向量,如果不加,t,,仿真时间范围自动选择。此函数只返回仿真数据而不在屏幕上画仿真图形,返回值,y,为系统在各个仿真时刻的输出所组成的矩阵,而,x,为自动选择的状态变量的时间响应数据。如果用户对具体的响应数值不感兴趣,而只想绘制出系统的阶跃响应曲线,则可以由如下的格式调用,step(sys,t),或,step(sys),求取脉冲响应的函数,impulse(),和,step(),函数的调用格式完全一致,而任意输入下的仿真函数,lsim,(),的调用格式稍有不同,因为在此函数的调用时还应该给出一个输入表向量,该函数的调用格式为,y,x=,lsim(sys,u,t,),式中,,u,为给定输入构成的列向量,它的元素个数应该和,t,的个数是一致的。当然该函数若调用时不返回参数,也可以直接绘制出响应曲线图形。例如,sys=,tf(num,den,),t=0:0.01:5;,u=sin(t);,lsim(sys,u,t,),为单输入模型,sys,对,u(t)=sin(t),在5秒之内的输入响应仿真。,MATLAB,还提供了离散时间系统的仿真函数,包括阶跃响应函数,dstep,(),,脉冲响应函数,dimpulse,(),和任意输入响应函数,dlsim,(),等,它们的调用方式和连续系统的不完全一致,读者可以参阅,MATLAB,的帮助,如在,MATLAB,的提示符下键入,help,dstep,来了解它们的调用方式,时域分析常用函数如下:,step -,阶跃响应,impulse -,脉冲响应,lsim,-,对指定输入的连续输出,gensig,-,对,LSIM,产生输入信号,stepfun,-,产生单位阶跃输入,例 对于下列系统传递函数,下列,MATLAB Programl1.1,将给出该系统的单位阶跃响应曲线。该单位阶跃响应曲线如图1所示。,-,MATLAB Programl1.1-,num=0,0,50;,den=25,2,1;,step(num,den,),grid,title(Unit-Step Response of G(s)=50/(25s2+2s+1),例 考虑下列系统试求该系统的单位阶跃响应曲线。虽然用,MATLAB,求该系统的单位阶跃响应曲线时,不需要求它的传递函数表达式,这里导出这种表达式,以便作为参考。对于给定的系统,传递矩阵,G(s),为,该系统包含两个输入量和两个输出量,根据考虑不同的输入信号和输出信号,可以定义4个传递函数。当考虑信号,u,1,为输入量时,我们假设,u,2,为零,反之亦然。这4个传递函数为,利用下列命令:,step(A,B,C,D),可以画出4个单独的阶跃响应曲线,程序如下:,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),例 对于下列系统传递函数,下列,MATLAB Programl1.2,将给出该系统的单位脉冲响应曲线。该单位脉冲响应曲线如图2所示。,-,MATLAB Programl1.2-,num=0,0,50;,den=25,2,1;,impulse(num,den),grid,title(Unit-Impulse Response of G(s)=50/(25s2+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),grid,title(Unit-Step ramp Response of G(s)=50/(25s2+2s+1),5、控制系统的频域响应分析,已知系统的传递函数模型如第2节所示,,则该系统的频率响应为,可以由下面的语句来实现,如果有一个频率向量,w,,则,Gw,=,polyval(num,sqrt(-1)*w)./polyval(den,sqrt(-1)*w);,其中,num,和,den,分别为系统的分子分母多项式系数向量。,频率响应曲线绘制,MATLAB,提供了多种求取并绘制系统频率响应曲线的函数,如,Bode,图绘制函数,bode(),Nyquist,曲线绘制函数,nyquist,(),等,其中,bode(),函数的调用格式为,m,p=bode(num,den,w),这里,,num,den,和前面的叙述一样,,w,为频率点构成的向量,该向量最好由,logspace,(),函数构成。,m,p,分别代表,Bode,响应的幅值向量和相位向量。,如果用户只想绘制出系统的,Bode,图,而对获得幅值和相位的具体数值并不感兴趣,则可以由以下更简洁的格式调用,bode(),函数,bode(num,den,w),或更简洁地,bode(num,den),这时该函数会自动地根据模型的变化情况选择一个比较合适的频率范围。,Nyquist,曲线绘制函数,nyquist,(),类似于,bode(),函数,可以利用,help,nyquist,来了解它的调用方法。,在分析系统性能的时候经常涉及到系统的幅值裕量与相位裕量的问题,使用,Control,工具箱提供的,margin(),函数,可以直接求出系统的幅值裕量与相位裕量,该函数的调用格式为,Gm,Pm,wcg,wcp,=margin(num,den),可以看出,该函数能直接由系统的传递函数来求取系统的幅值裕量,Gm,和相位裕度裕量,Pm,,并求出幅值裕量和相位裕量处相应的频率值,wcg,和,wcp,。,常用频域分析函数如下:,bode -,频率响应伯德图,nyquist,-,频率响应乃奎斯特图,nichols,-,频率响应尼柯尔斯图,freqresp,-,求取频率响应数据,margin -,幅值裕量与相位裕量,pzmap,-,零极点图,使用时可以利用他们的帮助,如,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/(25s2+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),grid,title(Bode Diagram of G(s)=10(s+3)/s(s+2)(s2+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/(25s2+2s+1),例 考虑由下列方程定义的系统:该系统包含两个输入量和两个输出量。这里存在4种正弦输出-输入关系:,Y,1,(j)U,l,(j)、Y,2,(j)U,l,(j)、Y,1,(j)U,2,(j),和,Y,2,(j)U2(j)。,试画出该系统的奈魁斯特图。,MATLAB Program 10A=-1 -1;6.5 0;B=1 1;1 0;C=1 0;0 1;D=0 0;0 0;,nyquist(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),grid,title(Root-Locus Plot of G(s)=K(s+3)/s(s+2)(s2+s+2),7、系统稳定性分析,给定一个控制系统,可利用,MATLAB,在它的,时域、频域图形分析中看出系统的稳定性,,并可直接求出系统的相角裕量和幅值裕量。,此外,我们还可通过求出特征根的分布更,直接地判断出系统稳定性。如果闭环系统,所有的特征根都为负实部则系统稳定。,例如,给出控制系统闭环传递函数为,num=3,2,1,4,2,num=,3 2 1 4 2,den=3,5,1,2,2,1,den=,3 5 1 2 2 1,z,p=tf2zp(num,den),z=,0.4500+0.9870i,0.4500-0.9870i,-1.0000,-0.5666,p=,-1.6067,0.4103+0.6801i,0.4103-0.6801i,-0.4403+0.3673i,-0.4403-0.3673I,pzmap(num,den,),ii=find(real(p)0),ii=,2,3,n1=length(ii),n1=,2,if(n10),disp(System,is unstable,with int2str(n1)unstable poles);,else,disp(Syatem,is stable);,end,System is unstable,with 2 unstable poles,disp(The,unstable poles are:),disp(p(ii,),The unstable poles are:,0.4103+0.6801i,0.4103-0.6801i,以上求出具体的零极点、画出零极点分布、明确指出系统不稳定,并指出引起系统不稳定的具体右根。,8、,Simulink,仿真工具,如果控制系统的结构很复杂,则若不借助专用的系统建模软件,在过去很难准确地把一个控制系统的复杂模型输入给计算机,对之进行分析和仿真。1990年,MathWorks,软件公司为,MATLAB,提供了新的控制系统模型,图形,输入与仿真工具,命名为,SIMULINK,,这一名字的含义相当直观,,SIMU(,仿真)与,LINK(,连接),亦即可以利用鼠标器在模型窗口上“画”出所需的控制系统模型,然后利用,SIMULINK,提供的功能来对系统进行仿真或线性化。这种法的一个优点是,可以使得一个很复杂系统的输入变得相当容易且直观。,首先根据一个例子来说明控制系统框图模型的建立,这是一个简化的调速系统。我们看如何利用,Simulink,工具输入这个框图,然后再进行分析。具体利用,Simulink,建立框图的方法见网络辅助教学中,“,控制工程基础,”,第11章有关内容。,下图是,Matlab,中Simulink工具建立的例题框图。可以点击图中Simulation下的,s,tart图标开始仿真,然后双击框图中的,s,cope,查看仿真图形。其他仿真命令大家可以自行学习。,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服