1第一章仿真软件Matlab1.1仿真技术简介1.5Matlab的符号运算1.7Matlab的绘图功能1.2Matlab概述1.6Matlab编程基础1.3Matlab界面与基本操作1.4Matlab的数值运算2物理仿真:研制某种实体模型,使之能够重现原系统的各种状态。(直观性强,形象化;所需费用高,周期长,技术复杂。)数学仿真:用数学模型去描述一个系统,并编制程序在计算机上对实际系统进行研究。(速度快,较灵活,精确度高,重复性好;复杂系统可能很难用数学模型表达。)混合仿真:将数学模型、物理模型和实体结合起来组成复杂的仿真系统。1.1仿真技术简介仿真(Simulation)——利用模型来分析与研究实际系统(相似性原理)。31)建立系统的数学模型。2)建立仿真模型。3)编写仿真程序。4)进行仿真实验——设定合理的实验条件、参数,进行实验,并记录仿真结果。5)仿真结果分析。计算机仿真的基本步骤:4MatrixLaboratory(矩阵实验室);由美国MathWorks公司于20世纪80年代推出的高性能数值计算软件;Matlab已经发展成为适合多学科(线性代数、控制理论、数理统计、数字信号处理、动态系统仿真)、功能强大的优秀系统软件;Matlab已经成为工程技术人员必需掌握的基础知识与基本技能。1.2Matlab概述5自动控制原理Matlab实现的优势:1)运算功能强大;5)库函数丰富,函数命令简单高效;6)界面友好,使用方便。4)语法限制不严格,程序设计自由度大;3)专业的控制系统工具箱(ControlSystemsToolbox);2)强大方便的绘图功能;6Matlab的主要功能:数值计算(NumericFunction)符号计算(SymbolicFunction)工程与科学绘图(GraphicFunction)控制系统工具箱——时域分析、根轨迹分析、频域分析、系统设计仿真工具SIMULINK(Simulate、link)7Matlab是一种函数型语言,了解函数的功能,熟练掌握其使用方法,是使用Matlab进行程序设计的前提;Matlab牵扯面极广,几乎涉及现代科学的所有领域,因此,学习Matlab必须与个人所从事的学科相结合;结合课堂理论学习内容,多进行上机操作。Matlab课程学习方法:81.3Matlab界面与基本操作91、CommandWindow(命令窗口)——输入各种Matlab指令、函数、表达式、变量等,并显示除图形外的所有运算结果一、四个窗口2、CommandHistory(历史命令窗口)——记录命令窗口中已经运行过的指令、函数3、Workspace(工作空间窗口)——显示变量名字(Name)、维数(Size)、字节数(Bytes)和类型(Class)4、CurrentDirectory——当前目录窗口二、Start按钮可以运行所有MATLAB软件的工具以及访问相关文档。10MATLAB命令窗口的按键及其作用按键快捷键功能按键快捷键功能↑Ctrl+P光标回调到上一行BackspaceCtrl+H删除光标前字符↓Ctrl+N光标回调到下一行DeleteCtrl+D删除光标后字符←Ctrl+B光标回移一个字符EndCtrl+E光标移到行尾→Ctrl+F光标向右移动一个字符EscCtrl+U删除一行Ctrl→Ctrl+R光标向右移动一个单词HomeCtrl+A光标移到行首Ctrl←Ctrl+L光标向左移动一个单词Ctrl+K从光标处一直删除到行尾11三、功能菜单File——文件操作菜单New新建M文件、图形、模型和图形用户界面Open打开.m,.fig,.mat,.mdl等文件CloseCommendWindow关闭命令窗口ImportData从其他文件导入数据SaveWorkSpaceAs保存工作空间数据到相应的路径文件中SetPath设置工作路径Preferences设置命令窗口的属性PageSetup页面设置Print设置打印机属性PrintSelection选择打印ExitMATLAB退出MATLAB操作界面12Edit——编辑菜单Undo、Redo撤销、重复执行上一步操作Cut、Copy、Paste剪切、复制、粘贴PastetoWorkSpaceAs粘贴变量到工作空间SelectAll全部选定Delect删除所选对象Find查找所需对象FindFiles查找所需文件ClearCommendWindow清除命令窗口的内容ClearCommendHistory清除历史命令窗口的内容ClearWorkspace清除工作区的内容13Debug——调试菜单OpenM-FileswhenDebugging调试时打开M文件Step单步调试StepIn单步调试进入子函数StepOut单步调试跳出子函数Continue连续执行到下一断点ClearBreakpointsinAllFiles清除所有文件中的断点StopifErrors/Warnings出错或报警时停止运行ExitDebugMode退出调试模式14Desktop——桌面菜单UnlockCommendWindow命令窗口设为当前全屏活动窗口DesktopLayout桌面设计SaveLayout保存桌面设计OrganizeLayout组织桌面设计CommendWindow显示/隐藏命令窗口CommendHistory显示/隐藏历史命令窗口CurrentDirectory显示/隐藏当前工作目录Workspace显示/隐藏工作空间窗口Help打开帮助窗口15Profiler打开轮廓图窗口Editor打开编辑器Figures打开图形编辑器WebBrower打开Web浏览器ArrayEditor打开矩阵编辑器FileComparisons文件比较Toolbar显示/隐藏工具栏ShortcutsToolbar显示/隐藏快捷工具栏Titles显示/隐藏标题Desktop——桌面菜单16Window——窗口菜单CloseAllDocuments关闭所有文档CommendWindow选定命令窗口为当前活动窗口CommendHistory选定历史命令窗口为当前活动窗口CurrentDirectory选定当前工作目录为当前活动窗口Workspace选定工作空间窗口为当前活动窗口17FullProductFamilyHelp显示全部系列产品帮助MATLABHelp显示MATLAB系统帮助UsingtheDesktop显示桌面命令使用帮助UsingtheCommandWindow显示命令窗口使用帮助Demos显示MATLAB系统的演示帮助窗口AboutMATLAB显示MATLAB系统的标识界面Help——帮助菜单18新建剪切粘贴重复帮助当前目录设置打开复制撤销打开Simulink窗口查看目录树四、工具栏191.4Matlab的数值运算1.4.1数值运算基础Matlab中变量使用之前,不需要指定变量的数据类型,也不必事先声明变量。一个程序中的变量,以其名称在语句命令中的第一次合法出现而定义;当用户在Matlab工作空间中输入一个新的变量时,Matlab会自动给该变量分配适当的内存,若用户输入的变量已经存在,则Matlab使用新输入的变量替换原有的变量。一、变量的赋值和命名20变量名=表达式[返回变量名列表]=函数名(输入变量列表)注意:无需事先定义,Matlab系列定义的数值元素就是复数,这是Matlab语言区别于其它高级语言的最大特点之一;无论给Matlab中的变量赋什么值,在内存中均以矩阵的形式表示。Matlab数值运算的表达式中不允许有未定义的自由变量。211)变量名必须是不包含有空格的单个词;2)变量名必须以字母开头,之后可接任意字母、数字或下划线;3)组成变量名的字符长度不大于31个;4)变量名区分大小写字母。变量命名规则:22注意:MATLAB提供的标准函数和命令名必须用小写字母。变量名功能说明变量名功能说明ans或ANS默认赋值变量,以应答最近一次操作运算结果realmax最大的正实数i虚数单位realmin最小的正实数pi圆周率inf或INF无穷大(如1/0)nan或NaN不定值(如0/0)表1-1Matlab的特殊变量和常量23二、Matlab运算符1、算术运算符操作符功能说明操作符功能说明+加\矩阵左除-减.\向量左除*矩阵乘/矩阵右除.*向量乘./向量右除^矩阵乘方′矩阵转置.^向量乘方.′向量转置24操作符功能说明==等于~=不等于大于小于=大于等于=小于等于2、关系运算符25逻辑运算符逻辑运算说明&And逻辑与|Or逻辑或~Not逻辑非3、逻辑运算符26操作符功能说明操作符功能说明:冒号,在MATLAB中非常重要,功能很多[]方括号,用于构成向量和矩阵;分号,用于分隔行…续行符,用于语句行尾端,表示该行未完,逗号,用于分隔列%注释()圆括号,指出在算术表达式中先后次序=等号,用于赋值4、特殊运算符27①方括号([])的使用方括号可以输入矩阵;方括号[]也可以代表空矩阵,用来删除矩阵的行和列。A=[162313;511108;97612;414151]%指令回车后,得到结果为:A=16231351110897612414151例:28②冒号(:)的使用A.使用冒号可以输入行向量,其格式为:x=a:inc:b;其中,a是向量的第一个元素,inc是步长(即两个元素的间隔),步长可正可负;若(b-a)为inc的整数倍时,向量的最后一个元素等于b,否则小于b;当inc=1时步长可以省略。%输入指令:a=10:3:30%回车,得到结果为:a=10131619222528例:29%输入指令:A=[123;456;789]B=A(1:2,3)%指令回车后,得到结果为:A=123456789B=36B.使用冒号能够从向量和矩阵中选出指定的行和列元素。例:取矩阵A第一行到第二行中的第三列元素构成列向量B30C.使用冒号能够从一个大矩阵中选取小矩阵。%输入指令:A=[123;456;789]B=A(2:3,:)%指令回车后,结果为:B=456789例:单独一个冒号可以代表所有行或所有列的元素。由矩阵A的第二、三行组成的矩阵B31方括号[]也可以代表空矩阵,用来删除矩阵的行和列。A=[162313;511108;97612;414151]A(:,3)=[];B=A%指令回车后,得到结果为:A=16231351110897612414151B=16213511897124141原4阶方阵的第三列元素被删除了。例:32③分号(;)的使用A.分号在矩阵中用来分隔行;B.分号在命令窗口内用来输入多行语句——在Matlab命令窗口内输入命令,若不加分号,则每一条命令都将输出相应的结果;若加上分号,Matlab将不输出相应的结果,等待用户输入下一条命令,直到碰到一条不带分号的命令时,Matlab输出最后一条命令的结果。33%如果不加分号,三条命令分别执行:a=2a=2b=3b=3c=a+bc=5%如果在前面两条命令后加上分号:a=2;b=3;c=a+bc=5例:34Matlab的数值运算主要是指矩阵和向量运算;矩阵和向量都指含有M行与N列数字的矩形结构,但两者在Matlab中的运算性质不同;一行多列的矩阵是行向量,一列多行的矩阵是列向量;只有一个元素的矩阵就是标量。1.4.2矩阵运算35方法:1)直接输入法;2)利用函数建立矩阵;3)利用M文件建立矩阵。1.直接输入法:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔(也可以用回车键代替分号)。一、创建矩阵36a=[123;4,5,6]x=[2pi/2;sqrt(3)3+5i]注意:1)不必声明矩阵的维数和类型,Matlab会根据用户所输入的内容自动进行配置;2)矩阵元素可以是Matlab表达式,可以是实数,也可以是复数。例:372.利用函数建立矩阵a=zeros(2,3)a=000000zeros(size(A))用来输出一个