预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共196页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

9.1创 建 子 系 统当用户模型的结构非常复杂时,可以通过把多个模块组合在子系统内的方式来简化模型的外观。利用子系统创建模型有如下优点:减少了模型窗口中显示的模块数目,从而使模型外观结构更清晰,增强了模型的可读性;在简化模型外观结构图的基础上,保持了各模块之间的函数关系;可以建立层级方块图,Subsystem模块是一个层级,组成子系统的其他模块在另一层上。2.非虚拟子系统(1)原子子系统(AtomicSubsystem)。原子子系统与虚拟子系统的主要区别在于,原子子系统内的模块作为一个单个单元执行,Simulink中的任何模块都可以放在原子子系统内,包括以不同速率执行的模块。用户可以在虚拟子系统内通过选择Treatasatomicunit选项来创建原子子系统。(2)使能子系统(EnabledSubsystem)。使能子系统的动作类似原子子系统,不同的是它只有在驱动子系统使能端口的输入信号大于零时才会执行。用户可以通过在子系统内放置Enable模块的方式来创建使能子系统,并通过设置使能子系统内Enable端口模块中的Stateswhenenabling参数来配置子系统内的模块状态。此外,利用Outport输出模块的Outputwhendisabled参数可以把使能子系统内的每个输出端口配置为保持输出或重置输出。(3)触发子系统(TriggeredSubsystem)。触发子系统只有在驱动子系统触发端口的信号的上升沿或下降沿到来时才会执行,触发信号沿的方向由Trigger端口模块中的Triggertype参数决定。Simulink限制放置在触发子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发子系统的执行具有非周期性,即子系统内模块的执行是不规则的。用户可以通过在子系统内放置Trigger模块的方式来创建触发子系统。(4)函数调用子系统(Function-CallSubsystem)。函数调用子系统类似于用文本语言(如M语言)编写的S-函数,只不过它是通过Simulink模块实现的。用户可以利用Stateflow图、函数调用生成器或S-函数执行函数调用子系统。Simulink限制放置在函数调用子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为函数调用子系统的执行具有非周期性。用户可以通过把Trigger端口模块放置在子系统内,并将Triggertype参数设置为function-call的方式来创建函数调用子系统。(5)触发使能子系统(EnabledandTriggeredSubsystem)。触发使能子系统在系统被使能且驱动子系统触发端口的信号的上升沿或下降沿到来时才执行,触发边沿的方向由Trigger端口模块中的Triggertype参数决定。Simulink限制放置在触发使能子系统内的模块类型,这些模块不能明确指定采样时间,也就是说,子系统内的模块必须具有-1值的采样时间,即继承采样时间,因为触发使能子系统的执行具有非周期性。用户可以通过把Trigger端口模块和Enable模块放置在子系统内的方式来创建触发使能子系统。(6) Action子系统。Action子系统具有使能子系统和函数调用子系统的交叉特性,其只能限制一个采样时间,即连续采样时间、离散采样时间或继承采样时间。Action子系统必须由If模块或SwitchCase模块执行,与这些子系统模块连接的所有Action子系统必须具有相同的采样时间。用户可以通过在子系统内放置Action端口模块的方式来创建Action子系统,子系统图标会自动反映执行Action子系统的模块类型,也就是If模块或SwitchCase模块。Action子系统至多执行一次,利用Output端口模块的Outputwhendisabled参数,Action子系统也可以控制是否保持输出值,这是与使能子系统类似的地方。Action子系统与函数调用子系统类似,因为函数调用子系统在任何给定的时间步内可以执行多于一次,而Action子系统至多执行一次。这种限制就表示Action子系统内可以放置非周期性的模块,而且也可以控制状态和输出的行为。(7) While-子系统。While-子系统在每个时间步内可以循环多次,循环的次数由WhileIterator模块中的条件参数控制。用户可以通过在子系统内放置WhileIterator模块的方式来创建While-子系统。While-子系统与函数调用子系统相同的地方在于它在给定的时间步内可以循环多次,不同的是它没有独立的循环指示器(如Stateflow图),而且,通过选择WhileIterator模块中的参数,While-子系统