控制系统仿真TheSimulationofControlSystem自动化学院尹怡欣Tel:010-62332262,E-mail:yyx_ustb@sina.comCyberneticsMATLAB语言及编程控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第2页|自动化学院主要内容MATLAB的基本数学函数和常用命令的使用;MATLAB的m文件的建立与使用;MATLAB的矩阵元素的输入及特殊矩阵的实现;MATLAB的矩阵运算和向量运算;MATLAB的外部命令调用方法;MATLAB的基本输入/输出函数及其应用;MATLAB的关系运算和逻辑运算;MATLAB的条件转移语句、循环语句等常用控制语句的使用;MATLAB的基本绘图、字符添加、图形控制和图形修饰命令。控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第3页|自动化学院MATLAB简介MATLAB语言的显著特点具有强大的矩阵运算能力:MatrixLaboratory(矩阵实验室),使得矩阵运算非常简单。是一种演算式语言MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此MATLAB语言编程简单,使用方便。控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第4页|自动化学院MATLAB简介MATLAB常用工具箱通讯工具箱(CommunicationsToolbox);控制系统工具箱(ControlSystemsToolbox);数据获得工具箱(DataAcquisitionToolbox);数据库工具箱(DatabaseToolbox);滤波器设计工具箱(FilterDesignToolbox);模糊逻辑工具箱(FuzzyLogicToolbox);图象处理工具箱(ImageProcessingToolbox);映射工具箱(MappingToolbox);神经网络工具箱(NeuralNetworkToolbox);优化工具箱(OptimizationToolbox);鲁棒控制工具箱(RobusControlToolbox);信号处理工具箱(SignalProcessingToolbox);统计学工具箱(StatisticsToolbox);系统辨识工具箱(SystemIdentificationToolbox);小波分析工具箱(WaveletToolbox)。控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第5页|自动化学院MATLAB简介MATLAB的启动安装正版MATLABMATLAB启动后将出现命令窗口等。在MATLAB命令窗口中——MATLAB的命令提示符|——为输入字符提示符。MATLAB命令窗口就是MATLAB语言的工作空间MATLAB的各种功能的执行必须在此窗口下才能实现在这种环境下输入的MATLAB语句称为“窗口命令”。窗口命令,就是在上述环境下输入的MATLAB语句,并直接执行它们完成相应的运算、绘图等。如果用户是第一次使用MATLAB,则建议首先在命令行中键入demo命令,它将启动MATLAB的演示程序,用户可以在这些演示程序中领略到MATLAB所提供的强大的运算和绘图功能。控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第6页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB语句的一般形式变量名=表达式–其中,等号右边的表达式可由操作符或其它字符、函数和变量名组成,它可以是MATLAB允许的数学或矩阵运算,也可以包含MATLAB下的函数调用;等号左边的变量名为MATLAB语句右边表达式的返回值语句所赋值的变量的名字。–在调用函数时,MATLAB允许一次返回多个结果,这时等号左边的变量名需用[]括起来,且各个变量名之间用逗号分隔开,如果左边的变量名缺省时返回值自动赋给ans。命令行编辑器(1)方向键和控制键可以编辑修改已输入的命令↑:回调上一行命令↓:回调下一行命令(2)命令窗口的分页输出–moreoff:不允许分页moreon:允许分页–more(n):指定每页输出的行数–回车前进一行,空格键显示下一页,q结束当前显示。(3)多行命令(…)–如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。–S=1-12+13+4+…9-4-18;控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第7页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB中使用的算术运算符对于矩阵来说,这里左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于标量,两种除法运算的结果相同,如1/4和4\1有相同的值0.25。常用的十进制符号如小数点、负号等,在MATLAB中也可以同样使用,表示10的幂次要用符号e或E,如:3、-99、0.0001、1.6e-20、6.2e23。算术运算符意义算术运算符意义+加\左除-减∕右除*乘^幂控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第8页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB中使用的变量在MATLAB中变量名必须以字母开头,之后可以是任意字母、数字或者下划线(不能超过19个字符),但变量中不能含有标点符号。变量名区分字母的大小写,同一名字的大写与小写被视为两个不同的变量。一般说来,在MATLAB下变量名可以为任意字符串。但MATLAB保留了一些特殊的字符串如表所示。特殊变量取值特殊变量取值ans默认变量名jj=√-1inf无穷大,如1/0flops浮点运算数eps最小数,如1/infnargin函数的输入变量数目NaN不定量,如0/0nargout函数的输出变量数目pi圆周率realmin最小的可用正实数ii=√-1readmax最大的可用正实数控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第9页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB的语句和执行MATLAB命令语句能即时执行,并得出中间结果。完成了MATLAB所有命令语句的输入,也就完成了它的执行,直接便可得到最终结果。因此,MATLAB清晰地体现了类似“演算纸”的功能。MATLAB语句既可由分号结束,也可由逗号或换行号结束,但含义不同。–如果用分号“;”结束,则说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不立即显示运行的中间结果,而等待下一条命令的输入,如以上前两条命令;–如果以逗号“,”或回车结束,则将把左边返回的内容全部显示出来,如以上后两条命令。–当然在任何时候也可输入相应的变量名来查看其内容。在MATLAB中,几条语句也可以出现在同一行中,只要用分号或逗号将它们分割。例:a=5;b=6;c=a*bc=30d=a+bd=11例:a=5;b=6;c=a*b;d=a+bd=11控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第10页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB的语句和执行MATLAB工作空间中的变量在退出MATLAB时会丢失,如果在退出MATLAB前想将工作空间中的变量保存到文件中,则可以调用save命令来完成。–save文件名变量列表其它选项–这一命令中不能使用逗号,不同的元素之间只能用空格来分隔。–这里的mydat也可省略,这时将工作空间中的所有变量自动地存入到文件matlab.mat中了。应该指出的是,这样存储的文件均是按照二进制的形式进行的,所以得出的文件往往是不可读的,如果想按照ASCII码的格式来存储数据,则可以在命令后面加上一个控制参数-ascii,该选项将变量以单精度的ASCII码形式存入文件中去,如果想获得高精度的数据。则可使用控制参数:-ascii-double。例:把工作空间中的a,b,c变量存到mydat.mat文件中savemydatabc例:将整个工作空间中所有的变量全部存入mydat.mat文件中savemydat控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第11页|自动化学院MATLAB基本操作MATLAB的语言结构MATLAB的语句和执行MATLAB提供的load命令可以从文件中把变量调出并重新装入到MATLAB的工作空间中去,该函数的调用格式与save命令同。–load文件名变量列表其它选项工作空间中变量的保存和调出也可利用菜单项中的File|SaveWorkspaceAs…和File|Open命令来完成。查看目前的工作空间中都有哪些变量名,则可以使用who命令来完成。进一步了解这些变量的具体细节,则可以使用whos命令来查看。使用clear命令来删除其中一些不再使用的变量名,这样可使得整个工作空间更简洁,节省一部分内存。例:把文件mydat.mat数据提取到工作空间中的a,b,c变量loadmydatabcwhoYourvariablesare:abcdclearabclear控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第12页|自动化学院MATLAB基本操作MATLAB的文件管理“窗口命令”难以实现复杂功能,为了实现诸如循环、条件、分支等功能MATLAB利用了m文件,m文件是由一系列的MATLAB语句组成。MATLAB是一种解释性语言,用户可以在MATLAB工作环境下一条一条地键入命令,也可以直接键入用MATLAB的语言编写的m文件名,或它们结合起来使用,这样MATLAB软件对此命令或m文件中各条命令进行翻译,然后在MATLAB环境下对它进行处理,最后返回运算结果。因此,MATLAB语言的结构可用下式进行描述MATLAB语言=窗口命令+m文件控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第13页|自动化学院MATLAB基本操作MATLAB的文件管理由于MATLAB本身被认为是一高效的语言,所以用它可编写出具有特殊意义的磁盘文件来,这些磁盘文件是由一系列的MATLAB语句组成,既可能是一系列窗口命令语句,又可以是由各种控制语句和说明语句构成的函数文件。由于它们都是由ASCII码构成的,其扩展名均为“.m”,故统称为m文件。文本文件文本文件是一系列的MATLAB语句组成,它类似于DOS下的批处理文件,在MATLAB的提示符下直接键入文本文件名,便可自动执行文件中的一系列命令,直至给出最终结果。文本文件在工作空间中运算的变量为全局变量。控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第14页|自动化学院MATLAB基本操作MATLAB的文件管理文本文件例:求函数在x=-4时的值。解:首先建立以下文本文件myfile.m文本文件myfile.m建立后,在MATLAB命令窗口中输入命令x=-4;myfilex1=4x2=-62y=-62这里执行的中间变量x1,x2都被保存下来,这与下面的函数文件是不同的。3xxy%thisisanexamplex1=abs(x)x2=sqrt(x1)+x^3y=x2控制工程基础——绪论控制系统仿真——MATLAB语言及编程2020年1月26日11时49分第15页|自动化学院MATLAB基本操作MATLAB的文件管理函数文件函数文件的功能是建立一个函数,且这个函数可以同MAT