I目录目录............................................................................................................................I1.说明.........................................................................................................................12.MATLAB语言简介...................................................................................................22.1MATLAB的应用基础....................................................................................22.2MATLAB函数...............................................................................................32.3绘制响应曲线..................................................................................................42.4MATLAB语言的联机帮助功能.......................................................................63.MATLAB语言基础实验............................................................................................73.1实验一MATLAB语言平台.............................................................................73.2实验二MATLAB数值运算............................................................................103.3实验三MATLAB绘图..................................................................................133.4实验四MATLAB句柄绘图............................................................................174.控制理论仿真实验.................................................................................................204.1实验五控制系统的建模................................................................................204.2实验六控制系统的稳定性分析实验...............................................................264.3实验七控制系统的时域分析实验..................................................................284.4实验八控制系统的根轨迹分析......................................................................304.5实验九控制系统的频域分析.........................................................................314.6实验十S函数的编写及应用...........................................................................325.实验作业...............................................................................................................381MATLAB语言与控制系统仿真实验1.说明《MATLAB语言与控制系统仿真实验指导书》包括四部分内容:MATLAB语言基础、MATLAB语言基础实验、控制理论仿真实验和实验作业。要求每位学生完成规定的实验内容后,独立做完实验作业,以巩固知识,增强应用能力。本课程上机实验学时为8学时,建议分配如下:实验内容学时数实验一MATLAB语言平台0.4实验二MATLAB数值运算0.4实验三MATLAB绘图0.2实验五控制系统的建模1实验六控制系统的稳定性分析实验2实验七控制系统的时域分析实验2实验八控制系统的根轨迹分析1实验九控制系统的频域分析1上述学时仅为参考学时,学生可根据自己对MATLAB的熟悉程度作适当的调整。22.MATLAB语言简介MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。MATLAB的推出得到了各个领域专家学者的广泛关注,其强大的扩展功能为各个领域的应用提供了基础,现已成为国际控制界应用最广的首选计算机工具。控制界的很多知名学者度为其擅长的领域写出工具箱,而其中很多工具箱已经成为该领域的标准。和其它的程序设计语言不同,MATLAB语言的基本变量单元是复数矩阵,其矩阵处理功能和图形处理功能是其最显著的特色,这里介绍一些简单实用的MATLAB命令及操作。2.1MATLAB的应用基础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如果输入的语句太长,超出了一行,则在语句的末尾输入3个小圆点(…),以表明语句将延续到下一行。7.在一行内输入数个语句如果语句之间用豆号或分号隔开,则可以把数个语句放在一行内。例如:plot(1,3,'o'),text(1,20,'system1'),text(1,15,'system2')8.选择输出格式MATLAB中的所有计算都是以双精度方式完成的,但是显示输出可以是具有4个小数位的定点输出。例如,对于向量x=[1/3,0.00002]MATLAB有下列输出x=0.33330.0000如果在矩阵中至少有一个元素不是严格的整数,则有多种可能的输出格式。显示的输出量可以用【File】菜单的【Preferences】命令设置,或用下列命令加以控制:formatshort(0.33330.0000)formatlong(0.333333333333330.00002000000000)formatshorte(3.3333e-0012.0000e-005)formatlonge(3.333333333333333e-0012.000000000000000e-005)9.退出MATLAB时如何保存变量当退出MATLAB时,工作空间中的所有变量都将消失。如果在退出之前输入命令save,则所有的变量都被保存在磁盘文件matlab.mat文件中。当再次进入MATLAB时,命令load将使工作空间恢复到以前的状态。如果要保存/恢复部分变量,可用如下命令:save文件名变量名(变量名之间用空格分割)/load文件名参见save命令的帮助文件。2.2MATLAB函数在当前的MATLAB5.0及以上版本中,MATLAB函数的调用格式和其它编程语言是不同的,其典型的调用格式为[返回变量列表]=func_name(输入变量列表)其中等号左边的变量为返回变量,等号右边的变量为输入变量。MATLAB允许在函数调用时返回多个变量。而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用[mag,phase]=bode(num,den,w)其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子num和分母den表示,还可以用下面的格式调用此函数4[mag,phase]=bode(A,B,C,D,w)其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的,MATLAB函数还是会自动识别到底是用哪种格式调用该函数的,从而得出正确的结论。在当前版本的控制系统工具箱中还允许用线性模型对象变量G来描述系统,例如[mag,phase]=bode(G,w)MATLAB函数在返回变量的格式上也可以不同,例如若上面的语句中若没有返回变量,则将自动地绘制系统的Bode图,否则返回计算结果数据。2.3绘制响应曲线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)书写文本,采用命令