Main Content

浏览子系统的类型

子系统可以是虚拟的,也可以是非虚拟的。

  • 虚拟子系统有助于直观地组织模块图。当您对虚拟子系统中的模块进行组合或扩展虚拟子系统时,因为模块路径的更改,您可能会影响模块的执行顺序。

  • 非虚拟子系统,亦称原子子系统,有助于在功能上组织模块图。当您对一个非虚拟子系统中的模块进行组合或展开一个非虚拟子系统时,您会更改模型行为。当父模型执行时,每个非虚拟子系统作为单个模块或原子单元执行。一个非虚拟子系统中的模块会连续执行。

提示

对于控制器和其他独立组件,使用非虚拟子系统或引用模型在相关模块周围定义硬边界。当您要为组件生成代码时,预先定义硬边界可以避免代价高昂的重构。

要确定子系统是虚拟子系统还是非虚拟子系统,请使用以下策略之一:

下表对非虚拟子系统的一些类型进行分类。

子系统执行的基础子系统描述

Subsystem 模块名称

更多信息
控制信号值由外部输入使能执行的子系统。Enabled Subsystem使用使能子系统
由外部输入触发执行的子系统。Triggered Subsystem使用触发子系统
由外部输入使能和触发执行的子系统。Enabled and Triggered Subsystem使用使能触发子系统
通过外部触发器重置模块状态的系统。Resettable Subsystem使用可重置子系统
if-else 逻辑其执行由 If 模块使能的子系统。If Action SubsystemSelect Subsystem Execution
开关逻辑Switch Case 模块控制执行的子系统。 Switch Case Action SubsystemSelect Subsystem Execution
函数调用事件由外部函数调用输入控制执行的子系统。Function-Call Subsystem使用函数调用子系统
迭代次数在仿真时间步内重复执行指定迭代次数的子系统。For Iterator SubsystemIterate Subsystem Execution with While Iterator and For Iterator Subsystems
当逻辑条件为 true 时,在仿真时间步重复执行的子系统。While Iterator SubsystemIterate Subsystem Execution with While Iterator and For Iterator Subsystems
元素数目对输入信号的每个元素或子数组都执行一遍运算,再将运算结果串联起来的子系统。For Each SubsystemRepeat an Algorithm Using a For-Each Subsystem
消息基于消息在控制端口是否可用,在每个时间步有条件地执行子系统。Message Polling SubsystemUsing Message Polling and Message Triggered Subsystems
每当控制端口上有消息时就执行的子系统,而不考虑采样时间。Message Triggered SubsystemUsing Message Polling and Message Triggered Subsystems
仅执行顺序子系统,它在父模型执行时会像单个模块(即原子单元)一样执行。 Atomic Subsystem指定子系统是否为原子子系统

另请参阅

相关主题