您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 大学Matlab课程 第4讲 Simulink
动态系统仿真——Simulink退出目录一、初识Simulink二、主要模块介绍三、模块操作及使用四、仿真运行五、子模块及模块封装技术六、S函数设计退出主菜单一、初识SimulinkSIMULINKSimu(仿真)+Link(连接)它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。退出主菜单一、初识Simulink•Simulink的启动•1).命令窗口中键入simulink•2).工具栏中,按快捷按钮•3).Start-Simulink-LibraryBrowser退出主菜单一、初识Simulink•Let’sseeanexample…退出主菜单仿真一个简单的模型二、主要模块介绍退出主菜单Simulink模块库按功能分为以下8类子库:•Continuous(连续模块)•Discrete(离散模块)•Function&Tables(函数和平台模块)•Math(数学模块)•Nonlinear(非线性模块)•Signals&Systems(信号和系统模块)•Sinks(接收器模块)•Sources(输入源模块)2.1连续模块(Continuous)•Integrator:输入信号积分•Derivative:输入信号微分•State-Space:线性状态空间系统模型•Transfer-Fcn:线性传递函数模型•Zero-Pole:以零极点表示的传递函数模型•Memory:存储上一时刻的状态值•TransportDelay:输入信号延时一个固定时间再输出•VariableTransportDelay:输入信号延时一个可变时间再输出2.2离散模块(Discrete)•Discrete-timeIntegrator:离散时间积分器•DiscreteFilter:IIR与FIR滤波器•DiscreteState-Space:离散状态空间系统模型•DiscreteTransfer-Fcn:离散传递函数模型•DiscreteZero-Pole:以零极点表示的离散传递函数模型•First-OrderHold:一阶采样和保持器•Zero-OrderHold:零阶采样和保持器•UnitDelay:一个采样周期的延时2.3Function&Tables•Fcn:用自定义的函数(表达式)进行运算•MATLABFcn:利用matlab的现有函数进行运算•S-Function:调用自编的S函数的程序进行运算•Look-UpTable:建立输入信号的查询表(线性峰值匹配)•Look-UpTable(2-D):建立两个输入信号的查询表(线性峰值匹配)2.4Math(数学模块)•Sum:加减运算•Product:乘运算•DotProduct:点乘运算•Gain:比例运算•MathFunction:包括指数函数、对数函数、求平方、开根号等常用数学函数•TrigonometricFunction:三角函数,包括正弦、余弦、正切等•MinMax:最值运算•Abs:取绝对值•Sign:符号函数2.4Math(数学模块)•LogicalOperator:逻辑运算•RelationalOperator:关系运算•ComplextoMagnitude-Angle:由复数转为幅值和相角输出•Magnitude-AngletoComplex:由幅值和相角合成复数输出•ComplextoReal-Imag:由复数转为实部和虚部输出•Real-ImagtoComplex:由实部和虚部合成复数输出2.5Nonlinear(非线性模块)•Saturation:饱和输出,让输出超过某一值时能够饱和。•Relay:滞环比较器,限制输出值在某一范围内变化。•Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来。•ManualSwitch:手动选择开关2.6、Signal&Systems(信号和系统模块)•In1:输入端。•Out1:输出端。•Mux:将多个单一输入转化为一个复合输出。•Demux:将一个复合输入转化为多个单一输出。•Ground:连接到没有连接到的输入端。•Terminator:连接到没有连接到的输出端。•SubSystem:建立新的封装(Mask)功能模块2.7Sinks(接收器模块)•Scope:示波器。•XYGraph:显示二维图形。•ToWorkspace:将输出写入MATLAB的工作空间。•ToFile(.mat):将输出写入数据文件。2.8Sources(输入源模块)•Constant:常数信号。•Clock:时钟信号。•FromWorkspace:来自MATLAB的工作空间。•FromFile(.mat):来自数据文件。•PulseGenerator:脉冲发生器。•RepeatingSequence:重复信号。•SignalGenerator:信号发生器,可以产生正弦、方波、锯齿波及随意波。•SineWave:正弦波信号。•Step:阶跃波信号。2.9Simulink简单模型的建立•exp5_1.mdl•(1)建立模型窗口•(2)将功能模块由模块库窗口复制到模型窗口•(3)对模块进行连接,从而构成需要的系统模型2.10Simulink模型的特点•在SIMULINK里提供了许多如Scope的接收器模块,这使得用SIMULNK进行仿真具有像做实验一般的图形化显示效果。•SIMULINK的模型具有层次性,通过底层子系统可以构建上层母系统。•SIMULINK提供了对子系统进行封装的功能,用户可以自定义子系统的图标和设置参数对话框。三、模块操作及使用•拖入模块:选中模块,按住鼠标左键不放拖到模块窗口•移动:选中模块,按住鼠标左键将其拖曳到所需的位置即可。若要脱离线而移动,可按住shift键,再进行拖曳。•复制:选中模块,然后按住鼠标右键进行拖曳即可复制同样的一个功能模块。•删除:选中模块,按Delete键即可。若要删除多个模块,可以使用Shift键。也可以用鼠标选取某区域,再按Delete键就可以把该区域中的所有模块和线等全部删除。退出主菜单三、模块操作及使用•转向:为了能够顺序连接功能模块的输入和输出端,功能模块有时需要转向。在菜单Format中选择FlipBlock旋转180度,选择RotateBlock顺时针旋转90度。•改变大小:选中模块,对模块出现的4个黑色标记进行拖曳即可。•模块命名:先用鼠标在需要更改的名称上单击一下,然后直接更改即可。名称在功能模块上的位置也可以变换180度,可以用Format菜单中的FlipName来实现,也可以直接通过鼠标进行拖曳。HideName可以隐藏模块名称。退出主菜单三、模块操作及使用•颜色设定:Format菜单中的ForegroundColor可以改变模块的前景颜色,BackgroundColor可以改变模块的背景颜色;而模型窗口的颜色可以通过ScreenColor来改变。•参数设定:用鼠标双击模块,就可以进入模块的参数设定窗口。参数设定窗口包含了该模块的基本功能帮助,为获得更详尽的帮助,可以点击其上的help按钮。退出主菜单三、模块操作及使用•Simulink线的处理SIMULINK模型的构建是通过用线将各种功能模块进行连接而构成的。用鼠标可以在功能模块的输入与输出端之间直接连线。退出主菜单三、模块操作及使用•线的折弯:按住Shift键,再用鼠标在要折弯的线处单击一下,就会出现圆圈,表示折点,利用折点就可以改变线的形状。•线的分支:按住鼠标右键,在需要分支的地方拉出即可以。或者按住Ctrl键,并在要建立分支的地方用鼠标拉出即可。•设定标签:只要在线上双击鼠标,即可输入该线的说明标签。退出主菜单四、仿真运行退出主菜单•运行一个仿真的完整过程分成三个步骤:–设置仿真参数;–启动仿真;–仿真结果分析。4.1设置仿真参数•选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。–Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。–WorkspaceI/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。–Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。1、Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。1)仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。2)仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。a)ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。b)ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。c)ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。d)ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。e)ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。f)ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。g)ode23tb:是TR-BDF2的一种实现,TR-BDF2是具有两个阶段的隐式龙格-库塔公式。h)discrtet:当Simulink检查到模型没有连续状态时使用它。固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。a)ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。b)ode4:四阶龙格-库塔法,具有一定的计算精度。c)ode3:固定步长的二/三阶龙格-库塔法。d)ode2:改进的欧拉法。e)ode1:欧拉法。f)discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。3)步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。a)Maximumstepsize(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失
本文标题:大学Matlab课程 第4讲 Simulink
链接地址:https://www.777doc.com/doc-5929753 .html