1第三章仿真工具SIMULINKSIMULINK是用来进行动态系统建模、仿真和分析的软件包。3.1SIMULINK概述SIMULINK为用户提供了用方框图进行系统建模的窗口。它有着丰富的模块库,在做仿真时,用户只需利用鼠标的点击与拖曳功能,将模块库中的各种标准模块复制到SIMULINK的模型窗口中,就可以轻而易举在完成模型的创建。在SIMULINK环境中,用户可以在仿真进程中改变感兴趣的参数,实时地观察系统行为的变化。它还有Scop模块与其它的画图模块,在进行仿真的同时,就可以观看到仿真结果。与传统的仿真软件采用微分方程或者差分方程建模相比,它具有更直观形象、更简单方便与更灵活的优点。2启动与退出在MATLAB命令窗口中输入“simulink”命令然后回车;选择工具栏中的选项即可进入simulink模块库浏览器;直接从MATLAB命令窗口中选取“File→Edit→Model”也可进入SIMULINK仿真环境。模型完成后,利用Save或Saveas命令将模型文件存盘(扩展名为.mdl)后即可。退出simulink,只要关闭所有模型编辑窗口和模块浏览器即可。36.2SIMULINK模块库浏览器一、模块库浏览器界面SIMULINK模块库浏览器界面可分为5部分:菜单栏区:其主菜单有[文件(File)]、[编辑(Edit)]、[查看(View)]、[帮助(Help)]等4项。File:含New(新建模型或者库)、open(打开)、Close(关闭)和Preferences(属性设置)4项;Edit:含Addtothecurrentmodel(添加到当前模型)、Find(查找)和Findnext(查找下一个)3项;View:由toolbar(工具栏),statusbar(状态栏),description(文字说明栏),stayontop(将浏览器放在桌面最上层)View:collapseentirebrowser(模块库压缩显示),expandentirebrowser(模块库展开显示),Largeicons(大图标),Smallicons(小图标),Showparametersforselection(显示所选模块的参数);Help(帮助)4工具栏区:含4个按钮:是新建与打开按钮,是将模块放在桌面最上层按钮,Find是用来查找模块库中的模块按钮。文字说明区:对所选模块的文字说明;模块库区:含模块库及其相应的模块组;状态栏区:即最下方显示Ready区,用来显示浏览器状态。5二、基本模块库的分类及其用途SIMULINK有13类基本模块库,分别为:Continuous(连续模块组)、Discontinuities(非连续模块组)、Discrete(离散模块组)、Look-UpTables(表格模块组)、MathOperations(数学运算模块组)、ModelVerification(模型检验模块组)、Model-WideUtilities(公用模块组)、Ports&Subsystems(端口与子系统模块组)、SignalAttributes(信号属性模块组)、SignalRouting(信号传输选择模块组)、Sinks(输出模块组)、Sources(信号源模块组)、User-DefinedFunctions(用户定义函数模块组)等6包含7个基本模块,分为连续时间线性系统与连续时间延迟两种。子模块组的名称和用途见表3-1。1、Continuous(连续模块组)7模块名称模块用途Derivative微分模块Integrator积分模块State-Space线性状态空间模型模块TransferFcn线性传递函数模型模块TransferDelay输入信号按指定时间延迟模块VariableTransportDelay第一个输入按第二个输入指定时间做延迟模块Zero-Pole零极点形式模型模块表3-1连续模块组子模块的名称及用途8包含25个基本模块,包括数学运算、向量运算、复数与向量间的转换运算4种。其子模块组的名称和用途见表3-2。2、MathOperations(数学运算模块组)9模块名称模块用途Abs绝对值或求模(对复数)模块AlgebraicConstraint将输入f(z)强制置为0并输出zAssignment分配器BitwiseLogicalOperator二进制逻辑运算模块CombinatorialLogic建立逻辑真值表模块ComplextoMagnitude-Angle计算复数的幅值与相角模块ComplextoReal-Imag计算复数实部与虚部模块DotProduct计算点积(内积)模块Gain增益模块LogicalOperator逻辑运算模块表3-3数学运算模块组子模块的名称及用途10模块名称模块用途Magnitude-AngletoComplex由幅值与相角构造复数模块MathFunction数学运算函数模块,可进行多种数学函数运算MatrixConcatenation矩阵连接模块MatrixGain矩阵增益模块MinMax计算极大值与极小值模块Polynomial多项式运算模块Product乘积运算模块Real-ImagtoComplex由实部与虚部构造复数模块RelationalOperator关系运算模块Reshape矩阵重新定维模块RoundingFunction取整模块表3-3续数学运算模块组子模块的名称及用途11模块名称模块用途Sign符号函数模块SliderGain可变增益模块(使用滑尺改变增益值)Sum计算代数和或差模块TrigonometricFunction执行多种常用三角函数模块表3-3续数学运算模块组子模块的名称及用途12共有15个基本模块,包括信号传输与信号存储、访问两种。其子模块组的名称和用途见表3-3。3、SignalRouting(信号传输选择模块组)13模块名称模块用途BusCreator信号总线生成器BusSelector接收来自Mux模块或其它输入BusSelector模块的信号DataStoreMemory定义一个共享数据存储区DataStoreRead从已定义的数据存储区中读取数据并输出DataStoreWrite将输入数据写入一个已定义的数据存储区Demux分路器(一路信号分解成多路信号)From从Goto模块中获得信号并输出Goto将其输入传递给相应的From模块GotoTagVisibilityGoto模块标记控制器ManualSwitch双输出选择器(手动)Merge将输入信号合并为一个输出信号模块表3-3信号传输选择模块组子模块的名称及用途14模块名称模块用途MultiportSwitch在多输入中选择一输出的开关模块Mux信号组合器(将多路信号组合成一路信号)Selector选择或重组信号Switch多路开关(当第二个输入端信号大于临界值时,输出第一个输入端的信号,否则输出第三个输入端的信号)表3-3续信号传输选择模块组子模块的名称及用途15共有9个基本模块,包括模型及子系统输出、数据观察器与仿真控制3种。其子模块组的名称和用途见表3-3。4、Sinks(输出模块组)及其用途16模块名称模块用途Display实时数字显示模块FloatingScope浮动示波器模块Out1输出端口模块(同端口与子系统模块中Out1)Scope示波器模块StopSimulation当输入非0时,停止仿真。在仿真停止前完成当前时间步内的仿真。Terminator信号终止模块ToFile将其输入写入MAT-file文件内的一个矩阵中ToWorkspace将其输入写入工作空间XYGraphX-Y示波器模块表3-4输出模块组子模块的名称及用途1718个基本模块,包括模型及子系统输入与信号发生器两种。其子模块组的名称和用途见表3-5。5、Sources(信号源模块组)及其用途18模块名称模块用途Band-LimitedWhiteNoise带宽限幅白噪声模块ChirpSignal线性调频信号模块(频率随时间线性增加的正弦信号),可用于非线性系统谱分析Clock在每一仿真步输出当前仿真时间(连续时间)Constant输出与时间无关的实数或复数DigitalClock仅在指定的采样间隔内输出仿真时间,在其它时间输出保持前一次值不变(离散时间)FromWorkspace从MATLAB工作空间中读取数据FromFile从一个指定的文件中读取数据并输出Ground接地模块In1输入端口模块(同端口与子系统模块中In1)PulseGenerator产生固定频率脉冲序列表3-5信号源模块组子模块的名称及用途19模块名称模块用途Ramp产生按指定初始时间、初始幅度和变化率的斜坡信号RandomNumber产生正态分布的随机信号RepeatingSequence产生一个任意波形的周期信号SignalGenerator可以产生三种不同波形的信号:正弦波、方波和锯齿波。信号单位可以是Hz或rad/sSignalBuilder信号构造器SineWave正弦波信号模块Step在指定时间产生一个可定义上下电平的阶跃信号UniformRandomNumber产生在整个指定时间周期内均匀分布的随机信号表3-5续信号源模块组子模块的名称及用途20三、部分专业模块库简介Mathworks公司还提供了一系列与SIMULINK一起使用的专业模块库,主要有:ControlSystemToolbox:控制系统工具箱;CommunicationsBlockset:通信系统仿真模块;DSPBlockset:数字信号处理工具箱;FuzzyLogicToolbox:模糊逻辑控制工具箱;NeuralNetworkBlockset:神经网络工具箱;SimulinkExtras:补充Simulink公共模块库;Stateflow:用来对复杂的事件驱动系统进行建模和仿真;Real-TimeWorkshop(简称RTW):可以直接将simulink模型框图和Stateflow的状态图转换成高效优化的程序代码。216.3用SIMULINK建立系统模型建立简单模型的步骤:①建立模型窗口;②将功能模块从模块库中复制到模型窗口;③对模块进行连接,构成所需要的系统模型。SIMULINK模型在视觉上表现为直观的方框图,在文件上则是扩展名为mdl的ASCII代码,在数学上表现为微分方程或差分方程,在行为上则模拟了实际系统的动态特性。22一、模块的复制、移动与删除模块的复制包括两种:一是从模块库中将标准模块复制到模型窗口中,另一种是在模型窗口中将模型再复制。1、模块的复制从模块库中复制标准模块:从模块库中选中所需模块,按住鼠标左键不放,将模块拖至模型窗口再松开鼠标左键则完成了复制;在模型窗口中再复制有3种方法:选中待复制模块,运行“Edit→Copy”,然后将光标移至将要粘贴的地方,再运行“Edit→Paste”,就完成复制;或者选中待复制模块,直接用Ctrl+C然后再Ctrl+V也可以;用鼠标选取待复制模块后,按住“Ctrl”键不放,把该模块拖至目标位置后,松开左键即完成复制;用鼠标选取待复制模块后,按住鼠标右键不放,把该模块拖至目标位置后,松开右键即完成复制。23将光标置于待移动的模块图标上,按住鼠标左键不放,把该模块拖至目标位置后,松开左键就完成了移动。2、模块的移动选中模块,按Delete键就可删除或点击鼠标右键,选择Cut也可对模块进行剪切。3、模块的删除用鼠标选择模块图标,再将鼠标移到模块对象四周的控制小块处,当鼠标指针变成指向四周的小箭头时,按住鼠标左键不放,拖至合适大小即可。四、模块外形调整1、改变模块对象大小24在Simulink中,模块输入端口位于模块左侧,输出端口位于模块右侧,但有时需要对其方向进行改变。方法是:用鼠标选中模块对象,利用“Format→FlipBlock”(快捷键Ctrl+I)可将模块顺时针旋转180°;或者利用“Format→RotateBlock”(快捷键Ctrl+R)或将模块顺时针旋转90°。2、改变模块对象的方向For