Matlab基础与应用第四讲Simulink组件的基本使用方法张文静zhangwj@bjtu.edu.cn2Simulink简介Simulink组件的基本构成Simulink模型的建立与仿真Simulink模型应用举例主要内容3Simulink简介Simulink组件的基本构成Simulink模型的建立与仿真Simulink模型应用举例主要内容4Simulink简介Simulink是MATLAB软件的扩展,是实现动态系统建模和仿真的软件包;Simulink与MATLAB语言的主要区别:其与用户交互接口是基于Windows的模型化图形输入,使用户可以把更多的精力投入到系统模型的构建,而非语言编程上。5Simulink简介SIMULINK提供了一些按功能分类的基本系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的。通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进行仿真与分析。6Simulink简介Simulink组件的基本构成Simulink模型的建立与仿真Simulink模型应用举例主要内容7Simulink组件的基本构成模型库浏览器(LibraryBrowser)在matlab的命令窗口中键入simulink,或者在matlab工具栏中单击simulink模块库按钮,就可以打开simulink库。8信号源模块组(Sources)Constant:常数模块,产生一个常数值,用作给定输入;Step:阶跃波信号,可生成一个按给定的时间开始的阶跃信号,信号的初始值和终值都可以设定;Clock:时钟信号,输出仿真中的当前时间,以秒为单位。SignalGenerator:信号发生器,可以产生正弦、方波、锯齿波及随意波;FromFile(.mat):来自数据文件,可以从规定的数据文件中读取数据作为其他模块的输入值。9FromWorkspace:来自MATLAB的工作空间,可以从工作空间中读取数据,数据源至少有两列,第一列为单调递增函数的时间,其他列为对应的数据。Ground:接地线模块,一般用于表示零输入模块,若一个模块的输入端子没有接任何模块,在simulink中仿真中经常给出错误,这个模块就是为了避免这种错误。PulseGenerator:脉冲发生器,产生脉冲信号。SineWave:正弦波信号,产生正弦波。RepeatingSequence:重复信号,产生不同规律重复信号。信号源模块组(Sources)10连续模块组内的模块主要用于对连续系统建模。Derivative:数值微分器模块,其作用是将输入端的信号经过一阶数值微分,在输出端输出。Transfer-Fcn:传递函数模块,使用分子分母多项式的形式给出传递函数。Integrator:积分器模块,对输入进行积分,可以设定初始条件。连续模块组(Continuous)11State-Space:线性状态空间模块,使用矩阵形式表示的系统模型,可以给出初值。Zero-Pole:零极点传递函数模块,用指定的零极点建立连续系统模型,输入可以是向量或者标量。TransportDelay:时间延迟模块,将输入延迟指定的时间后,在传输给输出信号。VariableTransportDelay:可变时间延迟。连续模块组(Continuous)12UnitDelay:单位延迟模块,将输入信号做单位延时并保持一个采样周期,可以设置采样周期和初始值。Zero-OrderHold:零阶保持器,在一个计算步长内将输出的值保持在同一个值上。First-OrderHold:一阶保持器,依照一阶插值的方法计算下一个步长下的输出值。Discrete-timeIntegrator:离散时间积分器,实现离散的欧拉积分,可以设置初值和采样时间。DiscreteTransfer-Fcn:离散传递函数模型,与连续传递函数结构相同,可以设置采样时间。离散模块组(Discrete)13Memory:记忆模块,输出的是前一步的采样保持值。DiscreteState-Space:离散状态空间系统模型,与连续时间的状态空间模块相似。DiscreteFilter:离散滤波器模块,实现IIR与FIR滤波器。DiscreteZero-Pole:离散零极点模块,用指定的零极点建立离散系统模型。离散模块组(Discrete)14逻辑和位操作模块组(LogicandBitOperations)BitClear:位清零模块,将存储数据指定的位清零。BitwiseOperator:位操作运算模块,对输入信号进行位操作。CombinationalLogic:组合逻辑模块,根据指定真值表对输入信号进行组合逻辑运算。ComparetoConstant:与常数比较模块,将输入信号与设定的常数进行组合逻辑运算。LogicalOperator:逻辑运算模块,对信号进行逻辑运算。RelationalOperator:关系运算模块,进行关系运算。逻辑和位操作模块组内的模块主要用于对输入信号进行逻辑处理。15数学运算模块组(MathOperations)Abs:取绝对值,求取输入信号的绝对值。Real-ImagetoComplex:实部虚部合成复数,根据输入的实部和虚部构建复数信号。Gain:增益模块,输出为输入与增益的乘积。MathFunction:数学函数模块,对输入信号实现特定的数学函数运算。还有其他的一些数学运算模块,包括Sum:加减运算模块;Product:乘运算;DotProduct:点乘运算;TrigonometricFunction:三角函数;MinMax:最值运算;Sign:符号函数;数学运算模块组内的模块用于对输入信号进行数学操作。16输出池模块组(Sinks)Out1:输出端口模块,代表整个系统的输出端子。Scope:示波器,是显示数据结果的有效形式。XYGraph:XY示波器模块,显示二维图形。ToFile(.mat):将输出写入数据文件,该模块把它的输入值保存到mat文件中。ToWorkspace:将输出写入MATLAB的工作空间StopSimulation:仿真终止模块,终止正在进行的仿真模块。Terminator:信号终结模块。17信号路线发送模块组(SignalRouting)Mux:混路器模块,将多路信号依照向量的形式混合成一路信号。Demux:分路器模块,将混路器组成的信号分解为多路信号。Selector:选路器模块,可从多路信号中按希望输出所需的信号。Switch:开关模块,由开关量的值选择由哪路输入信号直接产生输出信号。Simulink中还有很多实现其他功能的模块。18Simulink简介Simulink组件的基本构成Simulink模型的建立与仿真Simulink模型应用举例主要内容19Simulink模型的建立与仿真模型窗口的建立和保存联机帮助系统模块输出与打印模型仿真模块的有关操作模块大小调整模块旋转模块连接模块标签的改变增加阴影模块参数修正20Simulink模型的建立与仿真仿真参数设置“Simulation”“Configurationparameters…”解算器(Solver)的设置(1)仿真时间设置(Simulationtime)仿真的起始时间(Starttime)仿真的结束时间(Stoptime)(2)解法设置(Solveroptions)仿真的过程一般是求解微分方程组,“Solveoptions”的内容是针对解微分方程组的设置。(3)输出模式Outputoptions变步长时可进行设置,可以达到不同的输出效果。21Simulink简介Simulink组件的基本构成Simulink模型的建立与仿真Simulink模型应用举例主要内容22例1二阶阻尼系统考虑图中的阻尼二阶系统,设阻尼系数,弹簧弹性系数为,小车质量。系统无输入,初始位置距平衡点,模拟小车的运动。1.0c2k5mkg1.0m23分析:要模拟此系统,先要写出其运动方程。设小车的位移为,小车受到的力,弹性力和阻力。小车的运动方程:代入数据得到xkxcx0mxcxkx0.20.4(0)1,(0)0xxxxx例124在Simulink中建立仿真模型如下例125例1仿真结果26例1修改示波器属性set(0,'ShowHiddenHandles','on');set(gcf,'menubar','figure');27例2对VanderPol方程进行仿真选择状态变量,,则原方程可以转换成根据系统的方程,对系统进行simulink建模1xy2xy1222121(1)xxxxxx2(1)0yyyy28例2系统模型29例2仿真结果30例3带有磁滞回线的非线性环节含有磁滞环节的控制系统框图如下所示,其中磁滞宽度利用simulink建立模型11c31例3仿真结果32例4分期还款问题设每个月月末贷款余额为月初余额与月利息的和,再减去月末的还款额。于是第月月末的余额是其中,为月利息。假设初始贷款余额为15000元,利率为1%,每月偿还200元,试计算100次偿还后的贷款余额。根据题目要求建立模型,进行仿真。()bk()pkk()(1)()bkrbkpk1rII33例4仿真结果34上机实验P123:题1、2、3、4