控制工程基础控制系统的计算机仿真_第1页
控制工程基础控制系统的计算机仿真_第2页
控制工程基础控制系统的计算机仿真_第3页
控制工程基础控制系统的计算机仿真_第4页
控制工程基础控制系统的计算机仿真_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

2023/12/31第七章控制系统的综合与校正1控制工程根底第十章Matlab软件工具在控制系统分析和综合中的运用主讲人:赵治国副教授2023/12/31第七章控制系统的综合与校正2主要内容Matlab根本特点控制系统在Matlab中的描画进展部分分式展开控制系统的时间呼应分析控制系统的频域呼应分析控制系统的根轨迹图系统稳定性分析Simulink仿真工具2023/12/31第七章控制系统的综合与校正3Matlab根本特点(1)Matlab简介:1980年前后,美国moler博士构思并开发;最初的matlab版本是用fortran言语编写,如今的版本用c言语改写;1992年推出了具有划时代意义的matlab4.0版本;并于1993年推出了其windows平台下的微机版,如今比较新的版本是7.1版2023/12/31第七章控制系统的综合与校正4Matlab根本特点(2)Matlab以复数矩阵为最根本的运算单元,既可以对它整体地进展处置,也可以对它的某个或某些元素进展单独地处置。在Matlab中,数据的存储/输入/输出都是以矩阵为根底的,矩阵和其它变量不需求预先定义。Matlab言语最根本的赋值语句构造为变量名列表=表达式2023/12/31第七章控制系统的综合与校正5matlab根本特点(3)等号右边的表达式可以由分号终了,也可以由逗号或换行终了,但它们的含义是不同的。假设用分号终了,那么左边的变量结果将不在屏幕上显示出来,否那么将把左边前往矩阵的内容全部显示出来。如»A=[1,0,1;1,0,0;2,1,0];»B=[1,0,2;2,1,1;1,0,1]B=1022111012023/12/31第七章控制系统的综合与校正6matlab根本特点(4)在Matlab下,矩阵A和矩阵B的乘积〔假定其中A,B矩阵是可乘的〕可以简单地由运算C=A*B求出»C=A*BC=2031024152023/12/31第七章控制系统的综合与校正7而D=A.*B称点乘积运算,即表示A和B矩阵的相应元素之间直接进展乘法运算,然后将结果赋给D矩阵,点乘积运算要求A和B矩阵的维数一样。»D=A.*BD=102200200matlab根本特点(5)Matlab下提供了两种文件格式:m文件,matlab函数M文件是普通的ascii码构成的文件,在这样的文件中只需由matlab言语所支持的语句,类似于dos下的批处置文件,它的执行方式很简单,用户只需在matlab的提示符>>下键入该m文件的文件名,这样matlab就会自动执行该m文件中的各条语句。它采用文本方式,编程效率高,可读性很强。Matlab函数是最常用的特殊m文件,这样的函数是由function语句引导,其根本格式如下Function前往变量列表=函数名〔输入变量列表〕注释阐明语句段函数体语句调用时在matlab的提示符下键入函数名,并包括输入变量。类似于c言语的子程序调用。如Functionplot_sin(xmin,xmax)X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));%Thisisademo2023/12/31第七章控制系统的综合与校正9控制系统在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)2023/12/31第七章控制系统的综合与校正11进展部分分式展开(1)对于以下传送函数2023/12/31第七章控制系统的综合与校正12num和den分别表示传送函数的分子和分母的系数,即num=[bo,bl,…,bn]den=[1,al.…,an]命令[r,p,k]=residue〔num,den〕将求出传送函数的部分分式展开式中的留数、极点和余项,即得到

进展部分分式展开(2)例:对于以下系统传送函数分子分母表示为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.00001.00003.0000den=1.00003.00002.0000当包含m重极点时,部分分式展开式将包括以下m项:例对于以下系统传送函数分子分母表示为num=[0,1,2,3]den=[1,3,3,1]采用命令[r,p,k]=residue〔num,den〕得到num=[0123];den=[1331];[r,p,k]=residue〔num,den〕r=1.00000.00002.0000p=-1.0000-1.0000-l.0000k=[]即2023/12/31第七章控制系统的综合与校正17线性系统的时间呼应分析(1)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)2023/12/31第七章控制系统的综合与校正18线性系统的时间呼应分析(2)求取脉冲呼应的函数impulse()和step()函数的调用格式完全一致,而恣意输入下的仿真函数lsim()的调用格式稍有不同,由于在此函数的调用时还应该给出一个输入表向量,该函数的调用格式为[y,x]=lsim(sys,u,t)式中,u为给定输入构成的列向量,它的元素个数应该和t的个数是一致的。当然该函数假设调用时不前往参数,也可以直接绘制出呼应曲线图形。例如t=0:0.01:5;u=sin(t);lsim(sys,u,t)为单输入模型sys对u(t)=sin(t)在5秒之内的输入呼应仿真。2023/12/31第七章控制系统的综合与校正19线性系统的时间呼应分析(3)MATLAB还提供了离散时间系统的仿真函数,包括阶跃呼应函数dstep(),脉冲呼应函数dimpulse()和恣意输入呼应函数dlsim()等,它们的调用方式和延续系统的不完全一致,读者可以参阅MATLAB的协助,如在MATLAB的提示符>>下键入helpdstep来了解它们的调用方式。时域分析常用函数如下:step-阶跃呼应impulse-脉冲呼应lsim-对指定输入的延续输出gensig-对LSIM产生输入信号stepfun-产生单位阶跃输入例对于以下系统传送函数以下MATLABPrograml1.1将给出该系统的单位阶跃呼应曲线。该单位阶跃呼应曲线如图1所示。----MATLABPrograml1.1----num=[0,0,50];den=[25,2,1];step〔num,den〕gridtitle(‘Unit-StepResponseofG(s)=50/(25s^2+2s+1)’)例对于以下系统传送函数以下MATLABPrograml1.2将给出该系统的单位脉冲呼应曲线。该单位脉冲呼应曲线如图2所示。----MATLABPrograml1.2----num=[0,0,50];den=[25,2,1];impulse〔num,den〕gridtitle(‘Unit-ImpulseResponseofG(s)=50/(25s^2+2s+1)’)

在MATLAB中没有斜坡呼应命令,可利用阶跃呼应命令求斜坡呼应,先用s除G〔s〕,再利用阶跃呼应命令。例如,思索以下闭环系统:对于单位斜坡输入量那么以下MATLABPrograml1.3将给出该系统的单位斜坡呼应曲线。该单位斜坡呼应曲线如图3所示。----MATLABPrograml1.3----num=[0,0,0,50];den=[25,2,1,0];t=0:0.01:100;step〔num,den,t〕gridtitle(‘Unit-SteprampResponseofG(s)=50/(25s^2+2s+1)’)2023/12/31第七章控制系统的综合与校正27控制系统的频域呼应分析知系统的传送函数模型如第2节所示,那么该系统的频率呼应为可以由下面的语句来实现,假设有一个频率向量w,那么Gw=polyval(num,sqrt(-1)*w)./polyval(den,sqrt(-1)*w);其中num和den分别为系统的分子分母多项式系数向量。

频率呼应曲线绘制MATLAB提供了多种求取并绘制系统频率呼应曲线的函数,如Bode图绘制函数bode(),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()函数,可以利用helpnyquist来了解它的调用方法。在分析系统性能的时候经常涉及到系统的幅值裕量与相位裕量的问题,运用Control工具箱提供的margin()函数可以直接求出系统的幅值裕量与相位裕量,该函数的调用格式为[Gm,Pm,wcg,wcp]=margin(num,den)可以看出,该函数能直接由系统的传送函数来求取系统的幅值裕量Gm和相位裕度裕量Pm,并求出幅值裕量和相位裕量处相应的频率值wcg和wcp。常用频域分析函数如下:bode-频率呼应伯德图nyquist-频率呼应乃奎斯特图nichols-频率呼应尼柯尔斯图freqresp-求取频率呼应数据margin-幅值裕量与相位裕量pzmap-零极点图运用时可以利用他们的协助,如helpbode。另外,命令ltiview可以画时域呼应和频域呼应图,利用helpltiview查看运用阐明。例对于以下系统传送函数以下MATLABPrograml1.4将给出该系统对应的伯德图。其伯德图如图4所示。----MATLABPrograml1.4----num=[0,0,50];den=[25,2,1];bode〔num,den〕gridtitle(‘BodeDiagramofG(s)=50/(25s^2+2s+1)’)

假设希望从0.01弧度/秒到1000弧度/秒画伯德图,可输入以下命令:w=logspace(-2,3,100)bode〔num,den,w〕该命令在0.01弧度/秒和100弧度/秒之间产生100个在对数刻度上等间隔的点例对于以下系统传送函数

以下MATLABPrograml1.5将给出该系统对应的伯德图。其伯德图如图5所示。----MATLABPrograml1.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('BodeDiagramofG(s)=10(s+3)/s(s+2)(s^2+s+2)')例对于以下系统传送函数

以下MATLABPrograml1.6将给出该系统对应的乃奎斯图。其乃奎斯特图如图6所示。----MATLABPrograml1.6----num=[0,0,50];den=[25,2,1,];nyquist(num,den)title('NyquistPlotofG(s)=50/(25s^2+2s+1)')2023/12/31第七章控制系统的综合与校正38控制系统的根轨迹图通常采用以下MATLAB命令画根轨迹rlocus〔num,den〕利用该命令,可以在屏幕上得到画出的根轨迹图。增益向量K自动被确定。命令rlocus既适用于延续系统,也适用于离散时间系统。对于定义在形状空间内的系统,其命令为rlocus〔A,B,C,D〕MATLAB在绘图命令中还包含自动轴定标功能。例对于一单位反响控制系统,其开环传送函数为

以下MATLABPrograml1.7将给出该系统对应的根轨迹图。其根轨迹图如图7所示。---------MATLABPrograml1.7-----------num=[1,3];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2)rlocus(num,den)v=[-1010–1010];axis(v)gridtitle(‘Root-LocusPlotofG(s)=K(s+3)/s(s+2)(s^2+s+2)’)2023/12/31第七章控制系统的综合与校正41系统稳定性分析给定一个控制系统,可利用MATLAB在它的时域、频域图形分析中看出系统的稳定性,并可直接求出系统的相角裕量和幅值裕量。此外,我们还可经过求出特征根的分布更直接地判别出系统稳定性。假设闭环系统一切的特征根都为负实部那么系统稳定。例如,给出控制系统闭环传送函数为»num=[3,2,1,4,2]num=32142»den=[3,5,1,2,2,1]den=351221»[z,p]=tf2zp(num,den)z=0.4500+0.9870i0.4500-0.9870i-1.0000-0.5666p=-1.60670.4103+0.6801i0.4103-0.6801i-0.4403+0.3673i-0.4403-0.3673I»pzmap(num,den)»ii=find(real(p)>0)

温馨提示

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

最新文档

评论

0/150

提交评论