




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动控制原理MATLAB仿真实验指导书2016自动控制原理MATLAB仿真实验指导书2016自动控制原理MATLAB仿真实验指导书2016自动控制原理MATLAB仿真实验指导书2016编制仅供参考审核批准生效日期地址:电话:传真:邮编:目录TOC\o"1-3"\h\u21292目录 I75861.说明 128286语言简介 224091MATLAB的应用基础 220453MATLAB函数 317175绘制响应曲线 412416MATLAB语言的联机帮助功能 628984语言基础实验 714948实验一MATLAB语言平台 72643实验二MATLAB数值运算 1028641实验三MATLAB绘图 1330744实验四MATLAB句柄绘图 17189374.控制理论仿真实验 205430实验五控制系统的建模 2012176实验六控制系统的稳定性分析实验 2628739实验七控制系统的时域分析实验 2813084实验八控制系统的根轨迹分析 3032554实验九控制系统的频域分析 3113026实验十S函数的编写及应用 3238415.实验作业 38MATLAB语言与控制系统仿真实验1.说明《MATLAB语言与控制系统仿真实验指导书》包括四部分内容:MATLAB语言基础、MATLAB语言基础实验、控制理论仿真实验和实验作业。要求每位学生完成规定的实验内容后,独立做完实验作业,以巩固知识,增强应用能力。本课程上机实验学时为8学时,建议分配如下:实验内容学时数实验一MATLAB语言平台实验二MATLAB数值运算实验三MATLAB绘图实验五控制系统的建模1实验六控制系统的稳定性分析实验2实验七控制系统的时域分析实验2实验八控制系统的根轨迹分析1实验九控制系统的频域分析1上述学时仅为参考学时,学生可根据自己对MATLAB的熟悉程度作适当的调整。
语言简介MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。MATLAB的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,现已成为国际控制界应用最广的首选计算机工具。控制界的很多知名学者度为其擅长的领域写出工具箱,而其中很多工具箱已经成为该领域的标准。和其它的程序设计语言不同,MATLAB语言的基本变量单元是复数矩阵,其矩阵处理功能和图形处理功能是其最显着的特色,这里介绍一些简单实用的MATLAB命令及操作。MATLAB的应用基础1.如何应用MATLAB通常以命令驱动方式应用MATLAB。当输入单个命令时,MATLAB会立即对其进行处理,并且显示处理结果。MATLAB也能够执行存储在文件中的命令序列。通过键盘输入的命令,可以用上下箭头键存取。2.MATLAB的变量MATLAB的一个特点是变量在应用前不必确定维数。在MATLAB中,变量一旦被采用,会自动产生(如果必要,变量的维数以后还可改变),并保留在存储器中。为了得到工作空间内的变量清单,可以通过键盘输入命令who,当前存放在工作空间内的所有变量便会显示在屏幕上。命令clear能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clearx。3.以“%”开始的程序行在MATLAB中以“%”开始的行表示注解和说明,这些注解和说明是不执行的。如果注解和说明需要一行以上程序行,则每一行均需以“%”为起始。4.分号操作符分号用来取消打印(显示)。如果语句的最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再显示。此外,在输入矩阵时,分号表示一行的结束。5.冒号操作符冒号操作符在MATLAB中起着重要作用。该操作符用来建立行向量,赋予矩阵下标和规定叠代。例如:j:k表示[jj+1…k-1k],A(:,j)表示矩阵A的第j列。6.输入超过一行的长句如果输入的语句太长,超出了一行,则在语句的末尾输入3个小圆点(…),以表明语句将延续到下一行。7.在一行内输入数个语句如果语句之间用豆号或分号隔开,则可以把数个语句放在一行内。例如:plot(1,3,'o'),text(1,20,'system1'),text(1,15,'system2')8.选择输出格式MATLAB中的所有计算都是以双精度方式完成的,但是显示输出可以是具有4个小数位的定点输出。例如,对于向量 x=[1/3,]MATLAB有下列输出x=如果在矩阵中至少有一个元素不是严格的整数,则有多种可能的输出格式。显示的输出量可以用【File】菜单的【Preferences】命令设置,或用下列命令加以控制: formatshort () formatlong () formatshorte () formatlonge ()9.退出MATLAB时如何保存变量当退出MATLAB时,工作空间中的所有变量都将消失。如果在退出之前输入命令save,则所有的变量都被保存在磁盘文件文件中。当再次进入MATLAB时,命令load将使工作空间恢复到以前的状态。如果要保存/恢复部分变量,可用如下命令: save文件名变量名(变量名之间用空格分割)/load文件名参见save命令的帮助文件。MATLAB函数在当前的MATLAB及以上版本中,MATLAB函数的调用格式和其它编程语言是不同的,其典型的调用格式为[返回变量列表]=func_name(输入变量列表)其中等号左边的变量为返回变量,等号右边的变量为输入变量。MATLAB允许在函数调用时返回多个变量。而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用[mag,phase]=bode(num,den,w)其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num和分母den表示,还可以用下面的格式调用此函数[mag,phase]=bode(A,B,C,D,w)其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的,MATLAB函数还是会自动识别到底是用哪种格式调用该函数的,从而得出正确的结论。在当前版本的控制系统工具箱中还允许用线性模型对象变量G来描述系统,例如[mag,phase]=bode(G,w)MATLAB函数在返回变量的格式上也可以不同,例如若上面的语句中若没有返回变量,则将自动地绘制系统的Bode图,否则返回计算结果数据。绘制响应曲线 MATLAB具有丰富的获取图形输出的程序集。命令plot可以产生线性x-y图形(用命令loglog、semilogx、semilogy或polar取代plot,可以产生对数坐标图和极坐标图)。所有这些命令的应用方式都是相同的,它们只对坐标轴的分度和数据的显示产生影响。1. X-Y图如果X和Y是同一长度的向量,则命令 plot(X,Y)将画出Y值对于X值的关系图。2. 画多条曲线为了在一幅图上画出多条曲线,采用具有多个自变量的plot命令: plot(X1,Y1,X2,Y2,…,Xn,Yn)变量X1,Y1,X2,Y2等等是一些向量对。每一个X-Y对都可以图解表示出来,因而在一幅图上形成多条曲线。多重变量的优点是它允许不同长度的向量在同一幅图上显示出来,每一对向量采用不同的线型。在一幅图上画一条以上的曲线时,也可以利用命令hold。hold命令可以保持当前的图形,并且防止删除和修改比例尺。因此,随后的一条曲线将会重叠地画在原曲线上。再次输入命令hold,会使当前的图形复原。3. 加进网格线、图形标题、X轴标记和Y轴标记一旦在屏幕上显示出图形,就可以画出网格线,定出图形标题,并且标定x轴标记和y轴标记。MATLAB中关于网格线、标题、X轴标记和Y轴标记的命令如下: grid(网格线) title(图形标题) xlabel(X轴标记) ylabel(Y轴标记)4. 在图形屏幕上书写文本为了在图形屏幕上的点(x,y)书写文本,采用命令: text(x,y,'text')例如,利用语句 text(3,,'sint')将从点(3,开始,水平地写出sint。5. 图形类型下列语句: plot(x,y,'x')将利用标记符号×画出一个点状图。MATLAB能够提供的线和点的类型如下:线的类型点的类型实线-圆点.短划线--加号+虚线:星号*点划线-.圆圈o×号x6. 颜色下列语句: plot(X,Y,'+g')表明用绿色“+”号划线。MATLAB提供的颜色如下:红色r绿色g蓝色b白色w无色i参见plot的帮助文件。7. 自动绘图算法在MATLAB中,图形是自动定标的。在另一幅图形画出之前,这幅图形作为现行图将保持不变,但是在另一幅图形画出后,原图形将被删除,坐标轴自动地重新定标。8. 手工坐标定标如果需要在下列语句指定的范围内绘制曲线: V=[x-minx-maxy-miny-max]则因输入命令axis(V),式中V是一个四元向量。axis(V)把坐标轴定在规定的范围内。MATLAB语言的联机帮助功能下面的实验中,我们将较为详细地学习使用MATLAB的语言基础和控制系统仿真,但是MATLAB的内容及其丰富,在学习和使用中,可以利用MATLAB的联机帮助功能。MATLAB的联机帮助既可以由help命令来直接获得,又可以由MATLAB图形界面下的Help菜单来查询,还可以用lookfor命令查询有关的关键词: >>helpplot >>lookforplot
语言基础实验实验一MATLAB语言平台(随堂实验)一、实验目的1.学习了解MATLAB语言环境;2.练习MATLAB命令的基本操作;3.练习m文件的基本操作。二、实验内容1.学习了解MATLAB语言环境(1)MATLAB语言操作界面开机双击相应图标即可进入MATLAB命令窗口,如图所示。在命令提示符位置键入命令,完成下述练习。图 MATLAB窗口(2)练习DOS相似命令MATLAB语言与DOS操作系统有如下相似的命令,在操作界面上练习这些命令。dir dir('c:\windows')type typecd cdc:\matlab6p5\help(3)MATLAB的数据格式合法的数据格式有:short,long,hex,shorte,longe,rational等。键入 a=pi;b=exp(1)由File/Preferences…改变数据格式,观察变量值。(4)变量查询变量查询命令有who,whos,查询变量。(5)路径函数与搜索路径path 路径函数which 文件定位路径函数path列出MATLAB自动搜索路径清单,执行该命令。path(path,'newpath')addpath('newpath')用于在搜索路径清单中增加新的路径项,练习该命令。或由File/SetPath…设置路径。说明:在命令窗口键入一命令并按下回车键,MATLAB就在搜索路径中搜索相应的命令文件(内部命令和函数除外),找到后就执行该文件,若未找到,就给出错误提示“File'xxxx'notfound.”。(6)联机帮助键入helphelp阅读help函数的使用说明。键入help列出help项。查询前面使用过的命令helpwhohelppath阅读上述函数的功能、使用格式等。(7)字符串查询键入helplookfor阅读MATLAB函数lookfor的功能与使用方法,并使用该命令查询相应的关键词字符串。(8)MATLAB语言演示键入demoMATLAB语言功能演示。2.练习MATLAB命令的基本操作(1)键入常数矩阵输入命令a=[123]a=[1;2;3]比较显示结果有何不同。b=[125]b=[125];比较显示结果有何不同。(2)作循环命令程序 makesum=0; fori=1:1:100 makesum=makesum+i; end键入makesum,按回车键,观察计算结果。(3)分别执行下面命令: a=[123;456;780] poly(a) rank(a) det(a) trace(a) inv(a) eig(a)观察显示结果。使用联机帮助help查阅相应函数的意义和函数的格式。
实验二MATLAB数值运算(随堂实验)一、实验目的1.学习MATLAB的基本矩阵运算;2.学习MATLAB的点运算。二、实验内容在下面的实验操作中,认真执行每项操作,掌握其作用和目的。1.基本矩阵运算(1)创建数值矩阵键入a=[123;456;789];观察a(3,2)a(:,1)键入t=0:10;u=0::10;观察向量t,u的值。键入a(:,3)=[2;3;4];a观察矩阵a的变化。键入b=[11+2i;3+4i3];观察复数矩阵。(2)特殊矩阵键入a=ones(3,3);b=zeros(2,2);c=eye(4);magic(4);观察特殊矩阵。(3)矩阵运算键入a=[010;001;-6-11-6];b=[12;34;56];c=[110;011];作矩阵乘运算:v1=c*a;v2=a*b;v3=c*a*b;v4=b*c;v5=c*b;矩阵乘方运算:a^2a^(1/2)矩阵加减运算:a1=a+b*c;a2=c*b-a(1:2,1:2);a3=a(1:2,2:3)+c*b;矩阵右除(常规除):ar=a/b;矩阵左除:al=a\b注意矩阵运算时的维数匹配。(4)矩阵特征完成如下矩阵特征运算:a' inv(a) diag(a) tril(a) triu(a)poly(a) rank(a) det(a) trace(a) eig(a)的点运算(1)练习点乘与点除a1=[12;34];a2=*a1;观察[a1a2][a1.*a2a1./a2](点乘与点除是数组运算)(2)正弦、余弦函数t=0:2*pi/180:2*pi;y1=sin(t);y2=cos(t);y=y1.*y2;plot(t,[y'y1'y2'](3)复变函数w=::2;g1=(1+*w*i)/*w*i)g2=(1+*w*i)./*w*i)plot(g2);xlabel('realg2(w)');ylabel('imageg2(w)')axis('square')3.多项式运算(1)建立多项式向量ap=[1331]b=[-1-2-3]bp=poly(b)(2)多项式乘与根p=conv(ap,bp)root(p)(3)多项式运算a=[1234];b=[1-1];c=a+[zeros(1,length(a)-length(b)),b]poly2str(c,'x')polyvalm(a,3)4.代数方程组(1)给定方程组 Ax=B xn×1,An×n,Bn×1方程组的解 x=A-1B or x=A\B方程为 这时不能用第一种方法,A-1只能用于方阵,这时可用广义逆矩阵解: A=[123;234];B=[1;2]; x=pinv(A)*B x=
实验三MATLAB绘图(随堂实验)一、实验目的1.学习MATLAB的各种二维绘图;2.学习MATLAB的三维绘图;3.学习MATLAB的绘图修饰(多种绘图,图形注释,绘图颜色,色图矩阵)。二、实验内容在下面的实验操作中,认真执行每项操作,掌握其作用和目的,每个命令的含义和用法查看帮助文件。1.基本二维绘图(1)向量绘图x=0:2*pi/100:2*pi;y1=sin(2*x);y2=cos(2*x);plot(x,y1)plot(x,y2)plot(x,y1,x,y2)保持作图:plot(x,y1);holdonplot(x,y2);holdoff矩阵作图:plot(x',[y1'y2'])设定颜色与线型:plot(x,y1,'c:',x,y2,'ro')多窗口绘图:figure(1);plot(x,y1)figure(2);plot(x,y2)子图绘图:subplot(221);plot(x,y1)subplot(222);plot(x,y2)subplot(223);plot(x,y1,x,y1+y2)subplot(224);plot(x,y2,x,y1-y2)复变函数绘图:w=::10;g=1./(1+2*w*i);subplot(121);plot(g)subplot(122);plot(real(g),imag(g))插值绘图:x=0:2*pi/8:2*pi;y=sin(x);plot(x,y,'o');holdon;xi=0:2*pi/100:2*pi;yi=spline(x,y,xi);plot(xi,yi,'m')反白绘图与绘图背景色设定:whitebgwhitebg('b')whitebg('k')(2)函数绘图fplot('sin',[04*pi])f='sin(x)';fplot(f,[04*pi])fplot('sin(1/x)',[],1e-3)fplot('[tan(x),sin(x),cos(x)]',[-2*pi,2*pi,-2*pi,2*pi])(3)符号函数快捷绘图:f='exp*x)*sin(x)'ezplot(f,[0,10])f='x^2+y^2-9'ezplot(f)axisequal2.多种二维绘图(1)半对数绘图(频率特性绘图)w=logspace(-1,1); 横坐标对数分度g=20*log10(1./(1+2*w*I)) 幅值纵坐标取分贝p=angle(1./(1+2*w*I))*180/pi 相角纵坐标取度subplot(211);semilogx(w,g);grid; 幅频特性子图,半对数绘图,加网线subplot(212);semilogx(w,p);grid; 相频特性子图,半对数绘图,加网线(2)极坐标绘图t=0:2*pi/180:2*pi;mo=cos(2*t);polar(t,mo);(3)直方图绘图t=0:2*pi/8:2*pi;y=sin(t);bar(t,y);(4)离散棒图t=0:2*pi/8:2*pi;y=sin(t);stem(t,y);(5)阶梯图t=0:2*pi/8:2*pi;y=sin(t);stairs(t,y);(6)彗星绘图t=-pi:pi/200:pi;comet(t,tan(sin(t))-sin(tan(t)));3.图形注释fplot('[sin(t),cos(t)]',[0,5]);title('曲线')xlabel('时间t');ylabel('幅值y');gtext('正弦函数');gtext('余项函数');grid4.三维绘图(1)三维线图t=0:pi/50:10*pi;plot3(sin(t),cos(t),t);comet3(sin(t),cos(t),t);(2)单变量高度网线图Z2=[11;1–1];Z4=[Z2Z2;Z2–Z2];Z8=[Z4Z4;Z4–Z4];mesh(Z8)(3)3变量马鞍面网线图x=-4::4;y=x;[X,Y]=meshgrid(x,y);Z=X.^2-Y.^2;mesh(X,Y,Z)(4)圆锥面网线图t1=0::;t2=0::2;r=[t1,-t2+2];[x,y,z]=cylinder(r,40);mesh(x,y,z)(5)视角修饰t1=0::;t2=0::2;r=[t1,-t2+2];[x,y,z]=cylinder(r,40);mesh(x,y,z)subplot(2,2,1);mesh(x,y,z);view(0,0);subplot(2,2,2);mesh(x,y,z);view(-20,20);subplot(2,2,3);mesh(x,y,z);view(-30,30);subplot(2,2,4);mesh(x,y,z);view(-40,40);(6)暖色(hot)色图peaks(20);axis('off');colormap(hot);colorbar('horiz');(7)光照修饰surfl(peaks(20));colormap(gray);shadinginterp;(8)透视与消隐P=peaks(30);subplot(121);mesh(P);hiddenoff;subplot(122);mesh(P);hiddenon;
实验四MATLAB句柄绘图(自学)一、实验目的1.学习图形对象(griphics)和句柄(handle)的基本知识;2.学习图形对象属性(objectproperties)的获得与设置;3.基本句柄绘图(handlegriphics)操作;二、句柄绘图的基本原理1.基本图形对象根屏幕(Root)图形窗口(Figure)界面控制(Uicontrol)界面菜单(Uimenu)轴(Axes)线(Line)块(Patch)面(Surface)像(Image)字(Text)2.图形对象创建函数h=figure(n); n为窗口号数h=uicontrol('property',value); 确定控制类型h=uimenu('property',value); 确定菜单形式h=axes('position',[left,bottom,width,height]); 丁一周对象的位置与大小h=line(x,y,z) ; x,y用于二维画线,x,y,z用于三维画线h=patch(x,y,z,c); x,y,z定义多边形,c确定填充颜色h=surface(x,y,z,c); x,y,z确定三维曲面,c为颜色矩阵h=image(x); x为图像数据矩阵h=text(x,y,'string'); x,y确定标注位置,'string'为标注字符串图形对象创建函数均为底层函数,注意变量格式。3.图形对象的句柄句柄(handle)是图形对象的标识代码,图形对象的属性信息全部包含在句柄中。各图形对象句柄的数据格式为:对象名称 句柄数据格式根屏幕 0图形窗口 整数,表示窗口号数,如1号窗口、2号窗口等其它各对象 对应的浮点数4.句柄属性的设置与修改句柄代码含有该对象的属性信息,因此需要通过句柄中属性的设置与修改处理对象属性的变更。MATLAB设置了下面两个函数完成此任务:get(H) 获得该对象句柄的全部属性get(H,’PropertyName’) 获得该对象句柄的某属性set(H) 查阅该对象句柄的全部可设定值set(H,’PropertyName’,PropertyValue) 将该对象句柄的某属性设置为新值三、实验内容1.作直线,并将线的颜色改为红色h1=line([0:10],[0:10]) %创建线对象,返回句柄值h1set(h1,’color’,[100]) %将线的颜色改为红色hf=gcf %获得当前1号窗口的句柄值ha=gca %获得当前“轴”的句柄值set(h1,’Color’,[***]) %将“线”句柄设为色序的其他颜色2.在创建对象时设置对象属性(1)二维绘图x=0:pi/24:2*pi%ax=axes(‘box’,’on’’aspectratio’,[1nan]) %设置轴对象属性hl1=line(sin(x),cos(x),’linewidth’,5,’linestyle’,’-‘,’color’,’c’) %设置轴线象属性hl1=line(sin(20*x),cos(20*x),’linestyle’,’:‘,’color’,’r’)(2)三维绘图[x,y,z]=sphere(30)hs=surf(x,y,z,’facecolor’,’c’,’linewidth’,1,’edgecolor’,’k’) %设置面线象属性3.简单动画制作%正弦曲线运动动画t=0:pi/48:4*pi;y=sin(t);plot(t,y,’g’);%由线对象创建小球%定义色、型、点的大小、擦除方式n=length(t);h=line(‘color’,[101],’linestyle’,’.’,’markersize’,50,’erasemode’,’xor’);i=1;r=0;whiler<10 %循环10次 set(h,’xdata’,t(i),’ydata’,y(i)); %小球位置 drawnow; i=i+1; ifi>n; i=1; r=r+1; end;end4.执行下列程序,阅读程序清单,了解程序编制过程:modes 12个特征峰面函数xpquad 超级方块spinner 虚幻线
4.控制理论仿真实验实验五控制系统的建模一、实验目的1.学习在MATLAB命令窗口建立系统模型的方法;2.学习如何在三种模型之间相互转换;3.学习如何用SIMULINK仿真工具建模。二、相关知识1.传递函数模型设连续系统的传递函数为: 设离散系统的传递函数为: 则在MATLAB中,都可直接用分子/分母多项式系数构成的两个向量num与den构成的矢量组[num,den]表示系统,即 num= den=建立控制系统的传递函数模型(对象)的函数为tf(),调用格式为:sys=tf(num,den)sys=tf(num,den,Ts)sys=tf(othersys)sys=tf(num,den)返回的变量sys为连续系统的传递函数模型。sys=tf(num,den,Ts)返回的变量sys为离散系统的传递函数模型,Ts为采样周期,当Ts=-1或Ts=[]时,系统的采样周期未定义。sys=tf(othersys)将任意的控制系统对象转换成传递函数模型。离散系统的传递函数的表达式还有一种表示为的形式(即DSP形式),转换为DSP形式的函数命令为filt(),调用格式为:sys=filt(num,den)sys=filt(num,den,Ts)sys=filt(num,den)函数用来建立一个采样时间未指定的DSP形式传递函数。sys=filt(num,den,Ts)函数用来建立一个采样时间为Ts的DSP形式传递函数。2.零极点增益模型设连续系统的零极点增益模型传递函数为: 设离散系统的零极点增益模型传递函数为: 则在MATLAB中,都可直接用向量z,p,k构成的矢量组[z,p,k]表示系统,即 z= p= k=在MATLAB中,用函数zpk()来建立控制系统的零极点增益模型,调用格式为:sys=zpk(z,p,k)sys=zpk(z,p,k,Ts)sys=zpk(othersys)sys=zpk(z,p,k)返回的变量sys为连续系统的零极点增益模型。sys=zpk(z,p,k,Ts)返回的变量sys为离散系统的零极点增益模型,Ts含义同前。sys=zpk(othersys)将任意的控制系统对象转换成零极点增益模型模型。3.状态空间模型设连续系统的状态空间模型为: 设离散系统的状态空间模型为: 在MATLAB中,连续与离散系统都可直接用矩阵组[A,B,C,D]表示系统。在MATLAB中,用函数ss()来建立系统的状态空间模型,调用格式为:sys=ss(a,b,c,d)sys=ss(a,b,c,d,Ts)sys=ss(othersys)将任意的控制系统对象转换成状态空间模型。sys=ss(a,b,c,d)返回的变量sys为连续系统的状态空间模型。sys=ss(a,b,c,d,Ts)返回的变量sys为离散系统的状态空间模型,Ts含义同前。4.三种系统数学模型之间的转换解决实际问题时,常常需要对自控系统的数学模型进行转换,MATLAB提供了用于转换的函数,如下表所示:函数名函数功能ss2tf将系统状态空间模型转换为传递函数模型ss2zp`将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型5.环节方框图的化简G1G1(s)G2(s)对于上图的两个环节串联,它们的传递函数分别为:,则两个环节串联连阶的等效传递函数为 在MATLAB中,实现两个环节传递函数串联连接的运算为:sys1=tf(num1,den1)sys2=tf(num2,den2)sys=sys1*sys22.环节并联连接的化简 G1(s)+ G2(s)实现两个环节传递函数串联连接的运算为:sys=sys1+sys23.反馈环节的化简G1(S)G1(S)G2(S)-实现反馈环节化简的运算为:sys=feedback(sys1,sys2,sign)式中sign为反馈符号,‘+’表示正反馈,‘-’为负反馈。缺省为‘-’。6.用SIMULINK仿真工具建模MATLAB集成有SIMULINK工具箱,为用户提供了用方框图进行系统建模的图形窗口。1.建立新的结构图文件在matlab环境下,点击simulink图标,或输入命令simulink,启动simulink程序,出现Simulink模块库,如图所示。 图窗口点击或选择“File”菜单中的“New”选项下的子选项“Model”,出现“untitled”空白文档。2.打开结构图模块组在SimulinkLibraryBrowser中,点击simulink边上的“+”就有下列模块组:Sources (输入信号单元模块组)Sinks (数据输出单元模块组)Contionuous (线性单元模块组)Discrete (离散单元模块组)……用鼠标单击任何一个模块组的图标,即可打开该模块组,从中选择仿真实验所需的单元模块。3.建立用户的仿真结构图将所需的结构图模块用鼠标拖到新建立的结构图文件的空白处,依次完成仿真结构图。用鼠标作结构图单元之间的连线,按结构图模块的信号连接关系,完成仿真试验的结构图。1)连线方法:一般是选中一个输出口,按下鼠标左键拖动至另一个模块的输入口,快捷的方法是先单击选中源模块,按下Ctrl键,再单击目标模块。画信号的分支线,用鼠标右键单击信号线并拖动。2)模块的旋转和翻转:选中模块,右击鼠标,打开Format子菜单,选择FlipBlock、RotateBlock、FlipName等完成响应的功能。4.结构图单元参数设置用鼠标器双击任何一个结构图单元即激活结构图单元的参数设置窗口。5.仿真参数设置选择“simulink”菜单项中的“Simulinkparameters”,即出现仿真参数设置子窗口,用于设置仿真参数,例如,仿真起始时间,仿真终止时间,仿真布长,允许误差,返回变量名称等。6.仿真操作选中“simulink”中的“Start”启动系统的仿真。在系统仿真中如显示器不能很好地展现波形,可以随时修改显示器的定标,达到满意为止。二、实验内容1.练习上面介绍的各种函数和命令2.给定控制系统的传递函数为 在MATLAB中建立该系统的传递函数模型、零极点增益模型和状态变量模型。3.在SIMULINK中建立如下图所示的结构图:设置SIMULINK仿真参数,观察示波器的波形。换用其它输入信号,观察示波器的波形。用命令方式求出上图的闭环传递函数。
实验六控制系统的稳定性分析实验一、实验目的1.学习控制系统稳定性分析的MATLAB实现;2.掌握控制系统的稳定判据;二、相关知识1.控制系统的特征多项式与特征方程;控制系统的传递函数为:线性系统的特征方程为:2.控制系统的稳定性判据稳定判据的方法有:代数稳定判据,根轨迹法,Bode图法判定系统的稳定性等等。3.有关的MATLAB函数roots(P):是求多项式根函数。P为特征多项式降幂排列的系数向量。rlocus(num,den,k):作系统的根轨迹函数,无开环增益k,则k的范围自动设定,有k,则k的范围可以由人工给定。[k,poles]=rlocfind(num,den),执行该命令前,先作根轨迹图,会出现提示,要求在根轨迹上选一点,会出现“+”标记。在MATLAB命令窗口会有k和poles的值。[Gm,Pm,Wcp,Wcg]=margin(sys0):在命令窗口得到系统sys0的频域性能指标;margin(sys0):MATLAB绘制系统的伯德图,计算伯德图上的稳定裕度,并将计算结果表示在图的上方。bode(sys0):MATLAB绘制系统的伯德图,但无系统的分析结果。文件和函数m文件是使用MATLAB语言编写的程序代码文件。之所以称为m文件,是因为这种文件都是以“.m”作为文件的扩展名。我们可以通过任何文本编辑器来生成或编辑m文件,但是在MATLAB提供的编辑器里生成或编辑m文件最为简单、方便且高效。m文件可以分为两种类型,一种是脚本(或称命令)文件,另一种是函数文件。脚本文件类似于C语言的过程,就是将一系列命令写在一个文件中,它的书写方法与命令行执行程序的方式相同。函数也是以“.m”作为文件的扩展名。不同于m文件,函数带有输入输出参数,书写格式为function[返回变量列表]=函数名(输入变量列表)function[返回变量列表]=函数名(输入变量列表)%注释行主程序体其中function为函数的保留字,函数名也要符合变量的命名规则,保存函数文件时,文件名应与函数名同名。注释行是对函数的功能、调用格式和参数的说明。三、实验内容及要求1.已知系统的开环传递函数:用求根的方法来判别闭环系统的稳定性。编写程序,求特征多项式及其根(不能手工计算),判断系统的稳定性。2.已知一个单位负反馈开环传递函数G(S),当k分别为1、5、10、20时闭环系统的稳定性。 以k为输入参数,编写函数,画出上述k值对应的闭环根,并判断系统的稳定性。3.已知单位负反馈系统的传递函数为 用Bode图法判断系统闭环的稳定性。编写程序,并运行程序,得出相关的数据。
实验七控制系统的时域分析实验一、实验目的1.学习控制系统时域分析的MATLAB实现。2.掌握控制系统的时域响应及性能指标。二、相关知识有关的MATLAB函数:damp(den)step(sys)[y,t,x]=step(sys)impulse(sys)[y,t,x]=impulse(sys)initial(sys,x0)[y,t,x]=initial(sys,x0)lsim(sys,u,t)[y,t]=lsim(sys,u,t) 对于离散系统,相应的命令分别是dstep、dimpulse、dinitial、dlsim。三、实验内容及要求1、利用help命令学习上述函数命令的用法,自行练习。2、已知一阶系统传递函数为 输入为正弦信号,求输出。编写程序,将输入和响应曲线画于同一图上。3、已知二阶系统传递函数为 当=1时,试计算当阻尼比值从到1时二阶系统的阶跃响应。编写程序,将响应曲线画于同一图上,并加上标注。4、二阶系统为编写程序,求系统的根、阻尼比、无阻尼震荡频率和响应曲线,计算(注意不是从响应图上读出)出峰值、峰值时间和过渡时间,并与理论公式计算值比较。实际值理论值峰值峰值时间过渡时间±5%±2%5、编写函数,输入参数为对象模型sys,求该对象模型的单位斜坡输入响应,将输入和输出曲线画于同一图上。(提示:sys的分子多项式为{1},分母多项式为{1}。)
实验八控制系统的根轨迹分析一、实验目的1、学习控制系统根轨迹分析的MATLAB实现。2、利用根轨迹进行系统分析。二、相关知识有关的MATLAB函数:pzmap(sys);rlocus(sys);[r,k]=rlocus(sys);rlocfind(sys);[k,r]=rlocfind(sys)注意:没有离散系统对应的命令“drlocus”三、实验内容及要求1、利用在线帮助学习上述函数命令的用法,自行练习。2、已知系统的开环传递函数为 试确定使系统稳定的k值范围。(提示:为了使坐标点定位准确,可用axis命令将图局部放大)3、上题中,确定使系统阻尼比为的k值和这时的闭环特征根。(注意:不能用目测定位。)
实验九控制系统的频域分析一、实验目的1、学习控制系统频域分析的MATLAB实现。2、利用频率响应进行系统分析。二、相关知识有关的MATLAB函数:Bode(G);[m,p,w]=bode(G);Margin(G);[Gm,Pm,Wg,Wp]=margin(G);Nyquist(G);[re,im,w]=nyquist(G);对于离散系统,相应的命令分别是dbode、dnyquist,没有“dmargin”命令,要利用margin命令,先用[m,p,w]=dbode(G),再用margin(m,p,w)命令。三、实验内容及要求1、利用在线帮助学习上述函数命令的用法,自行练习。2、一单位负反馈系统 画出其bode图,求其幅值裕量和相位裕量,判断其稳定性和动态性能,用nyquist图分析,是否与前述分析相符。若开环增益放大倍,又怎样利用时域分析法验证之。
实验十S函数的编写及应用(自学)一、实验目的1、学习S函数的编写方法。2、利用S函数在Simulink环境中实现复杂模块。二、相关知识Simulink是提供了一个十分易用的仿真平台,但在使用过程中会发现有些过程或对象用现成的Simulink模块不易搭建,远不如m文件和函数灵活和强大。事实上,Simulink也提供了一个解决方案——S函数,类似于普通函数的功能,这大大扩展了Simulink的仿真能力。用MATLAB语句编写S函数S函数还可以用C、C++、Fortran等语言编写。用MATLAB语句编写S函数引导语句为:function[sys,x0,str,ts]=funname(t,x,u,flag,p1,p2,…)其中funname为函数名,t、x、u分别为时间、状态和输入信号,flag为标志位,这四个参数是固定的,后面几个参数为输入参数。flag的值为0、1、2、3、4和9,分别对应一个内部过程,其关系如下表所示:Flag取值过程调用函数名返回参数012349初始化连续状态计算离散状态计算输出信号计算下一步仿真时刻终止仿真设定mdlInitializeSizesmdlDerivativesmdlUpdatemdlOutputsmdlGetTimeOfNextVarHitmdlTerminatesys返回连续状态sys返回离散状态sys返回系统输出sys返回下一步仿真的时间无在仿真过程中,flag=0(初始化过程)仅出现一次,其他值(过程)在每个采样周期循环出现,在每个过程中要完成一些功能,只要在这个过程中写上适当的程序代码即可。函数主程序通常如下(参见Simulink自带文件):SwitchflagCase0, [sys,x0,str,ts]=mdlInitializeSizes;case1, sys=mdlDerivatives(t,x,u);case2, sys=mdlUpdate(t,x,u);case3, sys=mdlOutputs(t,x,u);case4, sys=mdlGetTimeOfNextVarHit(t,x,u);case9, sys=mdlTerminate(t,x,u);otherwise error(['Unhandledflag=',num2str(flag)]);end调用的各函数写在主程序之后,函数名是Simulin推荐的函数名,不是强制性的,我们也可以用其他函数名,更简单地,不用函数,把过程直接写在主程序中。其中flag为0和3的过程必须编写程序,其他过程根据实际需要可忽略。初始化过程的编写有一定的规范,如下所示:function[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes; =1; %连续状态的个数 =0; %离散状态的个数 =1; %输出变量个数 =2; %输入变量个数 =1; %输入是否直接至输出端,通常为1=1; %采样周期个数,通常为1。S函数支持多采样周期系统sys=simsizes(sizes);x0=[]; %初始化状态str=[]; %说明字符串变量,通常为空串ts=[-10]; %采样周期初始化初始化需提供S函数的一些特定信息,包括输入/输出变量和状态的个数等,这通过一个结构变量实现。第一句sizes=simsizes通过simsizes函数定义一个结构变量,该变量有6个结构元素,如上所示,按具体要求设置完成后,通过sys=simsizes(sizes)语句赋给sys参数。除了sys外,还应设置系统的初始状态变量x0、说明变量str和采样周期变量ts,其中ts为双列矩阵,每一行对应一个采样周期。对连续系统和有单个采样周期的系统来说,该变量为[t1,t2],其中t1为采样周期,t1=-1则将继承输入信号的采样周期,t2为偏移量,一般取0。2、S函数的调用建立Simulink仿真框图时,选择S-Function模块(Simulink5在User-DefinedFunction模块库),双击S-Function模块,会弹出一个参数设置对话框,如下图所示,在S-Functionname栏内填写S函数文件名,就可以建立起该模块和我们编写的S函数文件之间的联系,在S-Functionparameters栏内给出S函数的输入参数,参数可以是常数,也可以是变量名,如果是变量名,仿真前须在命令窗口中赋值。三、实验内容1.编写S函数,实现下图死区非线性模块功能ss-sh-hs+h-s-hxy编写S函数如下:function[sys,x0,str,ts]=sqnl(t,x,u,flag,s1)%死区非线性%s1为死区环值switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case1sys=x;case3,sys=mdlOutputs(t,x,u,s1);case{1,2,4,9}sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;=0;=0;=1;=1;=1;=1;%atleastonesampletimeisneededsys=simsizes(sizes);x0=[];str=[];ts=[-10];functionsys=md
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木结构建筑的保温隔热性能分析考核试卷
- 生物药品的用药指导与患者教育考核试卷
- 生物科学教学设备考核试卷
- 石油产品销售模式转型考核试卷
- 生态保护与城市生态岛屿建设考核试卷
- 物联网智慧社区设计与规划考核试卷
- 照明器具生产中的设备安全管理要点考核试卷
- 极速瘦腿课程介绍
- 《太平天国》列强侵华与晚晴时期的救亡图存课件-1
- 七年级英语下学期期中模拟卷(南通专用)(原卷版)
- 歌曲Wonderful U:美妙的你.中英互译
- 部编教材教读课教学课例例说课件
- 冀教2011版四年级英语下册《Lesson23MyFavouriteSchoolWork》评课稿
- 设备安装调试验收单
- 综合能力测试真题和答案
- 双眼视与斜视弱视学智慧树知到答案章节测试2023年温州医科大学
- Q-CR 783.1-2021 铁路通信网络安全技术要求 第1部分:总体技术要求
- GB/T 27548-2011移动式升降工作平台安全规则、检查、维护和操作
- GB/T 24538-2009坠落防护缓冲器
- GB/T 13738.3-2012红茶第3部分:小种红茶
- 沪科版八年级物理《5.1-质量》课件
评论
0/150
提交评论