Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

条件执行子系统和模型

控制子系统或模型的执行时间

条件执行子系统,也称为条件子系统,是一种允许您使用外部信号来控制其执行的非虚拟子系统。外部信号也称为动作信号控制信号,连接到动作输入或控制输入端口。如果您要创建复杂模型,其中一些组件的执行依赖于其他组件,此时可使用条件子系统。

Simulink® 支持下列类型的条件子系统:

  • 执行子系统 - 当 If 执行子系统中的逻辑条件为 true 时,或当信号具有在 Switch Case 执行子系统中指定的一组值之一时,执行子系统在每个时间步执行。请参阅Select Subsystem Execution

  • 使能子系统 - 当控制信号为正时,在每个时间步执行。在控制信号由负向至正向过零的时间步开始执行。请参阅使用使能子系统

  • 触发子系统 - 当控制信号上升或下降到零或过零时,在每个时间步执行。请参阅使用触发子系统

  • 使能触发子系统 - 在使能控制信号为正值且触发控制信号上升或下降到零时执行。请参阅使用使能触发子系统

  • 消息触发子系统和消息轮询子系统 - 使用消息作为控制信号,并根据消息在控制端口是否可用来执行。请参阅Using Message Polling and Message Triggered Subsystems

  • 函数调用子系统 - 当控制端口接收到函数调用事件时执行。事件可以在一个时间步内发生一次或多次。请参阅使用函数调用子系统

Simulink 还支持可重置子系统,该子系统在每个时间步执行,但当控制信号上升或下降到零或过零时,会将子系统内的所有模块重置为其初始状态。请参阅使用可重置子系统

您可以像配置子系统一样将引用模型配置为条件执行子系统。请参阅Conditionally Execute Referenced Models

Simulink canvas with Conditionally Executed Subsystem block. The Subsystem block has a control input port at the top and a data input port at the left, both connected to Inport blocks. The Subsystem block has a data output port at the right, connected to an Outport block.

模块

全部展开

If使用类似于 if-else 语句的逻辑选择子系统执行
If Action Subsystem由 If 模块使能执行的子系统。
Switch Case使用类似于 switch 语句的逻辑选择子系统执行
Switch Case Action Subsystem由 Switch Case 模块使能执行的子系统
Enabled Subsystem由外部输入使能执行的子系统。
Triggered Subsystem由外部输入触发执行的子系统
Enabled and Triggered Subsystem由外部输入使能和触发执行的子系统
Message Triggered SubsystemSubsystem whose execution is controlled by message input (自 R2022a 起)
Enable将使能端口添加到子系统或模型
Trigger向子系统或模型添加触发器或函数端口
Function-Call Subsystem由外部函数调用输入控制执行的子系统
Function-Call Generator提供函数调用事件来控制子系统或模型的执行
Function-Call Split提供联接点以用于拆分函数调用信号线
Function-Call Feedback LatchBreak feedback loop involving data signals between function-call blocks
Trigger向子系统或模型添加触发器或函数端口
Resettable Subsystem 通过外部触发器重置模块状态的子系统

函数

Simulink.getOutportInheritsInitialValueDetermine if conditional subsystem Outport block inherits initial output value (自 R2021a 起)

主题

条件执行子系统基础知识

类型条件执行子系统

子系统输出初始化