第7章:动态系统Simulink建模与仿真本章内容:Simulink工具箱简介Simulink建模与仿真基本方法动态系统Simulink仿真模型的建立Simulink子系统技术S-函数与Simulink仿真*模糊逻辑工具箱简介7.1Simulink工具箱简介7.1.1Simulink工具箱简介Simulink是Simulation(仿真)与link(连接)的简写形式,它提供一个动态系统建模、仿真和综合分析的集成环境,是MATLAB最重要的组件之一,也是其它仿真工具箱的可视化仿真平台。优点:建模方便灵活,适用面广,结构和流程清晰,效率高等。1Simulink启动(1)在MATLAB命令窗口输入“simulink”命令。(2)单击MATLAB主窗口左下角的“Start”按钮,在弹出的快捷菜单中单击【Simulink】→【LibraryBrowser】命令。(3)单击MATLAB主窗口工具栏里的工具。7.1.2Simulink组成图7-1Simulink窗口界面CommonlyUsedBlocks(常用模块库)Continuous(连续系统模块库)Discontinuous(非连续系统模块库)Discrete(离散系统模块库)LogicandBitOperations(逻辑与位操作模块库)LookupTables(查询表模块库)MathOperations(数学操作模块库)ModelVerification(模型验证模块库)2Simulink模块库组件Simulink7.1模块库共包含16个子模块库,它们是:Model-WideUtility,Ports&Subsystems(接口与子系统模块库),SignalAttributes(信号属性模块库)SignalRouting(信号路由模块库)Sinks(输出模块库)Sources(信号源模块库)User-DefinedFunctions(用户自定义模块库)AdditionalMath&Discrete(附加数学和离散系统模块库)是为了加快建模速度,节省建模过程中寻找模块的时间而将最常用的基本模块集中放在一起形成的,在初学Simulink建模与仿真时,是使用最为频繁的模块库。(1)CommonlyUsedBlocks(常用模块库)图7-2常用模块库包括总线信号生成器(BusCreator)模块、总线信号选择器(BusSelector)模块、常数模块(Constant)、数据类型转换(DataTypeConversion)模块,信号分离器(Demux)模块,离散时间积分(Discrete-TimeIntegrator)模块,增益(Gain)模块,信号地(Ground)模块,输入接口(In1)模块,积分(Integrator)模块,逻辑操作(LogicOperator)模块,信号合成器(Mux)模块,输出接口(Out1)模块,乘法(Product)模块,关系操作(RelationalOperator)模块,饱和(Saturation)模块,示波器(Scope)模块,子系统(Subsystem)模块,求和模块(Sum),开关转换模块(Switch),信号终端(Terminator)模块,单位延迟(UnitDelay)模块。连续系统(Continuous)模块库提供了连续系统Simulink建模与仿真的基本模块,有:微分环节模块(Derivative),积分环节模块(Integrator),状态空间模型(State-space),传递函数功能模块(TransferFun),传输延迟模块(TransportDelay),可变时间延迟模块(VeriableTransportDelay),可变传输延迟模块(VeriableTransportDelay)零极点增益模块(Zero-Pole)(2)连续系统模块库图7-3非连续系统模块库(DisContinity)在以前版本中也称为非线性模块库,包含一些常用的非线性运算模块,主要包括:(3)非连续系统模块库饱和非线性模块(Saturation)死区非线性模块(DeadZone)变化率限幅模块(RateLimiter)变化率动态限幅模块(RateLimiterDynamic))1()()1()(ititiyiurate用于设置饱和输出上下限。动态饱和非线性模块(SaturationDanymic)可以根据输入端口Up和Lo的设定值动态设置输出的上限和下限。用于设定死区区间。动态死区非线性模块(DeadZoneDanymic)可以根据输入端口Up和Lo的设定值动态设置死区区间。用于设置信号输出变化率限幅,即:上升变化率限幅(Risingslewrate)和下降变化率限幅(Fallingslewrate)。可以根据输入端口Up和Lo的设定值动态设置信号上升变化率限幅参数R和下降变化率限幅参数L。磁滞回环模块(Backlash):建立间隙模型。继电模块(Relay)量化模块(Quantizer):用于输入信号的量化处理。穿越值检测模块(HitCrossing):库仑与黏性摩擦(Coulomb&ViscousFriction):返回零模块(WraptoZero)继电模块输出值可以在两个设定值之间切换。当继电器吸合时,它保持吸合状态输出直到输入信号值小于继电断开值(Switchoffpoint)。当继电器分离时,它保持分离状态输出直到输入信号值大于继电吸合值(Switchonpoint)。可按设定的穿越检测方向(Hitcrossingdirection)检测信号达到设定值的时间。此时输出一个正脉冲。在零值为不连续点,在其它值为连续线性增益。当输入信号值超过设定的极限值(Threshold),输出信号返回到零值。单位延迟模块(UnitDelay):延迟一个采样周期整数延迟模块(IntegerDelay):延迟输入N个采样周期,N为自然数。触发延迟模块(TappedDelay):延迟N个采样周期后并输出全部的输入信息。离散时间积分器(Discrete-TimeIntegrator):离散积分器模块可以代替积分器用来建立纯离散采样系统。在离散积分器模块参数对话框里,可以设定初始状态值、增益值、输出饱和值。离散传递函数功能模块(DiscreteTransferFcn):可以建立离散传递函数模型。离散滤波器模块(DiscreteFilter):用于建立离散系统滤波器仿真模型。离散零极点增益模型(DiscreteZero-Pole):使用零点、极点、增益值建立离散系统的零极点增益模型。离散微分模块(Difference):输出当前输入信号值与前一个采样值之差。派生离散微分模块(DiscreteDerivative):模块的输出值按下式计算:(3)离散系统模块库离散系统模块库主要包括用于建立离散采样系统的模块,包括:图7-4离散状态空间模型(DiscreteState-Space):离散状态空间模型实现下面系统模型一阶离散传递函数功能模块(TransferFcnFirstOrder):用于建立一阶的离散传递函数模型。传递函数引导或终止模块(TransferFcnLeadorLag):用于实现输入信号的离散时间引导或终止补偿。实数零点传递函数功能模块(TransferFcnRealZero):用于实现具有一个实数零点而无极点的传递函数模型。加权滑动平均模块(WeightedMovingAverage):模块采样并保持最近N个输入信号,并根据设定的权重参数值(weights)计算它们的平均值。该模块适用于SISO系统或SIMO系统模型。记忆模块(Memory):输出前一时刻的输入信号值。一阶保持器(First-OrderHold):实现离散采样系统的一阶采样保持功能。零阶保持器(Zero-OrderHold):实现离散采样系统的零阶采样保持功能。其它模块请参考MATLAB软件!7.2Simulink建模与仿真基本方法7.2.1简单系统仿真模型的建立建立上图所示系统框图的Simulink仿真模型的基本方法如下;1.启动MATLAB/Simulink工具箱2.建立Simulink空白模型Simulink空白模型的建立可方法如下:在MATLAB主窗口中选择菜单File/New/Model。选择Simulink模块库浏览器窗口的菜单File/New/Model。单击Simulink模块库浏览器工具栏的新建图标“”。3.根据系统框图选择模块4.模块的复制与删除操作在模块库选中模块后,按住鼠标左键不放并拖动到Simulink模型窗口指定位置,释放鼠标左键,完成模块的复制操作。在模块库选中模块后,单击鼠标右键,在弹出的快捷菜单中,单击“AddtoExample_Model”命令将模块添加到指定模型窗口,完成模块的复制操作。在模块库选中模块后,在库浏览器窗口的Edit菜单中选择Copy命令,用鼠标单击目标模型窗口中指定位置,再从模型窗口的Edit菜单中选择Paste,完成模块的复制操作。当模型窗口已有所需模块时,也可以直接从该处复制模块,操作方是单击鼠标右键,在弹出的快捷菜单中单击“Copy”命令,然后用鼠标右键单击模型窗口空白处,在弹出的快进诶菜单中单击“Paste”命令来完成粘贴任务。此外,也可以使用编辑菜单进行复制、粘贴操作。当然还可以用鼠标右键按住所需复制的模块不放,并拖动到指定位置完成复制操作,这可大大加快建模速度。5.模块的连接将鼠标移动到模块的输出端子上,当鼠标出现“十字”符号后,按下鼠标左键并拖动到下级模块的输入端子上,完成模块信号的连接。如上图所示。选中信号输出模块,按下键盘“Ctrl”键并单击下级模块完成模块信号的连接。在已存在的信号线上引出新的信号线时,可用鼠标右键单击源信号线,并按住不放拖动到指定位置,完成信号线的分支连接。如图所示,在模块没有完成连接时,以红色虚线显示,当连接完成后以黑色实线显示。将各子模块连接起来后,构成如图所示的系统模型7.2.2Simulink仿真模型参数设置1.基本模块参数设置在完成模块的信号线连接并建立起系统的Simulink仿真模型后,需要设置模块的参数。在Simulink模型里,双击需要修改参数的模块,弹出参数设置对话框。2.仿真参数设置单击模型窗口的“Simulation”菜单,在弹出的下拉菜单中单击“ConfigurationParameters”命令,打开“ConfigurationParameters”对话框如图所示。3.运行仿真与仿真输出双击“Scope”模块,弹出如图所示仿真输出结果仿真参数配置完毕后,可运行仿真,方法有三种:①单击模型窗口工具栏工具②单击“Simulation”菜单,在弹出的下拉菜单中单击“Start”命令③同时按下快捷键“Ctrl+T”。7.3动态系统Simulink仿真模型的建立由系统框图建立Simulink仿真模型由传递函数建立Simulink仿真模型由状态方程建立Simulink仿真模型由微分方程建立Simulink仿真模型7.1.1由系统框图建立Simulink仿真模型在控制领域,控制系统通常以功能框图的形式进行描述,与Simulink仿真模型在结构上十分相似,因此通过被控系统的框图,很容易建立其Simulink仿真模型。下面以直流电机双闭环调速系统为例来说明通过系统框图建立Simulink仿真模型的基本方法。r(t)为给定输入,采用阶跃信号。y(t)为系统输出,表示直流电机的转速。ASR和ACR分别为转速调节器、电流调节器,由PI调节器组成。根据直流双闭环调速系统工程整定方法,进行ASR和ACR的参数整定时,首先断开转速环,整定电流调节器ACR。然后接通转速环,整定转速环ASR,同时调节电流环参数。根据上述分析,首先建立直流双闭环调速系统的高层仿真模型,其中转速调节器和电流调节器由空白子系