simulink动态系统仿真概述.ppt
文本预览下载声明
9.1 创?建?子?系?统 当用户模型的结构非常复杂时,可以通过把多个模块组合在子系统内的方式来简化模型的外观。利用子系统创建模型有如下优点: 减少了模型窗口中显示的模块数目,从而使模型外观结构更清晰,增强了模型的可读性; 在简化模型外观结构图的基础上,保持了各模块之间的函数关系; 可以建立层级方块图,Subsystem模块是一个层级,组成子系统的其他模块在另一层上。 9.1.1 Simulink子系统定义 1.虚拟子系统 虚拟子系统在模型中提供了图形化的层级显示。它简化了模型的外观,但并不影响模型的执行,在模型执行期间,Simulink会平铺所有的虚拟子系统,也就是在执行之前就扩展子系统。这种扩展类似于编程语言,如C或C++中的宏操作。 2.非虚拟子系统 (1) 原子子系统(Atomic Subsystem)。原子子系统与虚拟子系统的主要区别在于,原子子系统内的模块作为一个单个单元执行,Simulink中的任何模块都可以放在原子子系统内,包括以不同速率执行的模块。用户可以在虚拟子系统内通过选择Treat as atomic unit选项来创建原子子系统。 (2) 使能子系统(Enabled Subsystem)。使能子系统的动作类似原子子系统,不同的是它只有在驱动子系统使能端口的输入信号大于零时才会执行。用户可以通过在子系统内放置Enable模块的方式来创建使能子系统,并通过设置使能子系统内Enable端口模块中的States when enabling参数来配置子系统内的模块状态。此外,利用Outport输出模块的Output when disabled参数可以把使能子系统内的每个输出端口配置为保持输出或重置输出。 (3) 触发子系统(Triggered Subsystem)。触发子系统只有在驱动子系统触发端口的信号的上升沿或下降沿到来时才会执行,触发信号沿的方向由Trigger端口模块中的Trigger type参数决定。Simulink限制放置在触发子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发子系统的执行具有非周期性,即子系统内模块的执行是不规则的。用户可以通过在子系统内放置Trigger模块的方式来创建触发子系统。 (4) 函数调用子系统(Function-Call Subsystem)。函数调用子系统类似于用文本语言(如M语言)编写的S-函数,只不过它是通过Simulink模块实现的。用户可以利用Stateflow图、函数调用生成器或S-函数执行函数调用子系统。Simulink限制放置在函数调用子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为函数调用子系统的执行具有非周期性。用户可以通过把Trigger端口模块放置在子系统内,并将Trigger type参数设置为function-call的方式来创建函数调用子系统。 (5) 触发使能子系统(Enabled and Triggered Subsystem)。触发使能子系统在系统被使能且驱动子系统触发端口的信号的上升沿或下降沿到来时才执行,触发边沿的方向由Trigger端口模块中的Trigger type参数决定。Simulink限制放置在触发使能子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发使能子系统的执行具有非周期性。用户可以通过把Trigger端口模块和Enable模块放置在子系统内的方式来创建触发使能子系统。 (6) ?Action子系统。Action子系统具有使能子系统和函数调用子系统的交叉特性,其只能限制一个采样时间,即连续采样时间、离散采样时间或继承采样时间。Action子系统必须由If模块或Switch Case模块执行,与这些子系统模块连接的所有Action子系统必须具有相同的采样时间。用户可以通过在子系统内放置Action端口模块的方式来创建Action子系统,子系统图标会自动反映执行Action子系统的模块类型,也就是If模块或Switch Case模块。 Action子系统至多执行一次,利用Output端口模块的Output when disabled参数,Action子系统也可以控制是否保持输出值,这是与使能子系统类似的地方。 Action子系统与函数调用子系统类似,因为函数调用子系统在任何给定的时间步内可以执行多于一次,而Action子系统至多执行一次。这种限制就表示Action子系统内可以放置非周期性的模块,而且也可以控制状态和输出的
显示全部