MATLAB与控制系统仿真.ppt_第1页
MATLAB与控制系统仿真.ppt_第2页
MATLAB与控制系统仿真.ppt_第3页
MATLAB与控制系统仿真.ppt_第4页
MATLAB与控制系统仿真.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB与控制系统仿真,控制工程基础上机辅导,MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题。,MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。,矩阵是MATLAB的核心,1、变量MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.,一、变量与函数,2、数学运算符号及标点符号,(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.(2)“%”后面所有文字为注释.(3)“.”表示续行.,3、数学函数,4、M文件,M文件建立方法:1.在Matlab中,点:File-New-M-file2.在编辑窗口中输入程序内容3.点:File-Save,存盘,M文件名必须与函数名一致。,Matlab的应用程序也以M文件保存。,MATLAB工作界面,MATLAB编辑窗口,程序控制语句,循环语句MATLAB中的循环语句包括for循环和while循环两种。for循环的基本格式为:for循环变量=起始值:步长:终止值循环体end步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。,程序控制语句,while循环的基本格式为:while表达式循环体end若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。break:从循环体中跳出,并使循环结束,程序控制语句,ifelseelseif语句if格式:if逻辑表达式执行语句end当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。,程序控制语句,if-else格式if逻辑表达式执行语句1else执行语句2end逻辑表达式的值为真则执行语句1,若逻辑表达式的值为假,则跳过执行语句1而执行语句2,然后向下执行。,程序控制语句,if-elseif格式if逻辑表达式1执行语句1elseif逻辑表达式2执行语句2elseif逻辑表达式n执行语句nelse执行语句elend如果逻辑表达式的值为真,则执行语句1,若逻辑表达式的值为假,则判断逻辑表达式2的值,若为真,则执行语句2,否则向下执行,若所有表达式均为假,执行语句el。,程序控制语句,switch语句switch语句的格式为:switch表达式(标量或字符串)case值1语句1case值2语句2case值n语句notherwise语句owend表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。,MATLAB程序编写及调试,MATLBA程序设计基本原则:后面的内容是程序的注解,要善于运用注解使程序更具可读性。养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。,MATLBA程序设计基本原则,程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行)设置好MATLAB的工作路径,以便程序运行。,图形绘制,图形绘制图形标注图形控制,plot(x,y),plot(y),plot(x1,y1,option1,x2,y2,option2,),plot控制,功能:在调用函数plot时,可以指定线型,颜色,和数据点的图标。格式:plot(x,y,color_linestyle_marker)说明:参数color_linestyle_marker为一个字符串,由颜色、线型、数据点的图标组成。,图形加注功能,将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title给图形加标题xlable给x轴加标注ylable给y轴加标注text在图形指定位置加标注gtext将标注加到图形任意位置gridon(off)打开、关闭坐标网格线legend添加图例axis控制坐标轴的刻度,例:t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t);text(x,y,s);title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxissquare,axis的用法还有:axis(xminxmaxyminymax)用行向量中给出的值设定坐标轴的最大和最小值。如axis(-2205)axis(equal)将两坐标轴设为相等axison(off)显示和关闭坐标轴的标记、标志axisauto将坐标轴设置返回自动缺省值,线性和颜色字符定义表,图形绘制,图形绘制图形标注图形控制,text(x,y,字符串)gtext(字符串)title(字符串)xlabel(字符串),ylabel(字符串),图形绘制,图形绘制图形标注图形控制,figure(1);figure(2);figure(n)gridon;gridoffholdon;holdoffaxis(xminxmaxyminymax)subplot(mnk)semilogx;semilogy,subplot子图分割命令调用格式:subplot(m,n,p)按从左至右,从上至下排列,单窗口多曲线分图绘图,绘图一般步骤,准备绘图需要的数据;指定绘图的窗口或者区域;调用基本绘图命令;选择线型、颜色、数据点形状;坐标轴控制,包括显示范围、刻度线、比例、网格线;标注控制,包括坐标轴名称、标题、相应文本等。,Simulink的操作,控制系统的时域分析,求取系统单位阶跃响应:step()求取系统的冲激响应:impulse(),控制系统的频域分析,求取系统对数频率特性图(波特图):bode()求取系统奈奎斯特图:nyquist(),margin:求幅值裕度和相角裕度及对应的转折频率freqs:模拟滤波器特性nichols:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线)ngrid:尼科尔斯方格图,根轨迹分析函数,pzmap:绘制线性系统的零极点图rlocus:求系统根轨迹。rlocfind:计算给定一组根的根轨迹增益。sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。,控制系统的数学描述与建模,控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。,传递函数描述,对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。,连续系统的传递函数模型连续系统的传递函数如下:,传递函数,MATLAB中创建传递函数(TF)对象创建两个行向量,按降阶顺序分别包含分子和分母多项式中s各次幂的系数使用tf命令建立TF对象例如:numG=43;denG=165;G1=tf(numG,denG)或G1=tf(43,156),零极点增益模型,零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。,在MATLAB中零极点增益模型用z,p,K矢量组表示。即:z=z1,z2,zmp=p1,p2,.,pnK=k函数tf2zp()可以用来求传递函数的零极点和增益。,K为系统增益,zi为零点,pj为极点,零极点增益模型,零点、极点、增益形式(ZPK)表示输入零点和极点列向量及标量形式的增益使用zpk命令建立ZPK对象例:zG=-0.75;pG=-1;-5;kG=4;G2=zpk(zG,pG,kG)或者:G2=zpk(-0.75,-1;-5,4),传递函数,两种形式互换TF形式变换为ZPK形式Gzpk=zpk(Gtf)zz,pp,kk=zpkdata(Gzpk,v)%获得G(s)的零点、极点和增益ZPK形式变换为TF形式Svv=tf(Sxx)nn,dd=tfdata(Svv,v)%获得分子分母多项式系数,部分分式展开,控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。resG,polG,otherG=residue(numG,denG)resG留数polG极点otherG常数函数r,p,k=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。b,a=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。,举例:传递函数描述,1)num=12,24,0,20;den=24622;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-5,p=-3.0000+4.0000i-3.0000-4.0000i-2.0000-1.0000,k=1,结果表达式:,部分分式展开:num=2,0,9,1;den=1,1,4,4;r,p,k=residue(num,den),p=0.0000+2.0000i0.0000-2.0000i-1.0000,k=2,r=0.0000-0.2500i0.0000+0.2500i-2.0000,结果表达式:,应用MATLAB进行时域分析,1.应用MATLAB分析系统的稳定性在MATLAB中,可利用pzmap函数绘制连续的零、极点图,也可以利用tf2zp函数求出系统的零、极点,从而判断系统的稳定性。,【例1】已知连续系统的传递函数为,要求:(1)求出该系统的零、极点及增益;(2)绘出其零、极点图,判断系统稳定性。,num=3,2,5,4,6;den=1,3,4,2,7,2;z,p,k=tf2zp(num,den);,disp(z)disp(p)disp(k)pzmap(num,den);title(Polesandzerosmap);,解:可执行如下程序:%Thisprogramcreateatransferfunctionandthenfinds/displaysitspoles,zerosandgain,程序执行结果如下:屏幕显示:z=0.4019+1.1965ip=-1.7680+1.2673i0.4019-1.1965i-1.7680-1.2673i-0.7352+0.8455i0.4176+1.1130i-0.7352-0.8455i0.4176-1.1130i-0.2991K=3,同时,屏幕上显示系统的零、极点分布图,如图所示。可以看出系统有在s右半平面上的闭环极点,所以系统不稳定。,系统零、极点分布图,2.应用MATLAB分析系统的动态特性在MATLAB中,提供了求取连续系统的单位阶跃响应函数step,以及任意输入下的仿真函数lsim。【例2】已知典型二阶系统的传递函数为:,其中n=6,绘制系统在=0.1,0.2,1.0,2.0时的单位阶跃响应。,%Thisprogramplotsacurveofstepresponsewn=6;kosi=0.1,0.2,1.0,2.0;figure(1)holdonforkos=kosinum=wn.2;den=1,2*kos*wn,wn.2;step(num,den);end;title(StepResponse);holdoff,解可执行如下程序:,从图中可以看出,临界阻尼响应具有最短的上升时间,响应速度最快;在欠阻尼的响应曲线中阻尼系数越小,超调量越大,上升时间越短。通常取=0.40.8。,典型二阶系统单位阶跃响应曲线,【例3】已知三阶系统的传递函数为,绘制系统的单位阶跃响应曲线

温馨提示

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

评论

0/150

提交评论