本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

使用触发子系统

触发子系统是一种条件执行原子子系统,它在每次控制信号(触发信号)出现以下情况时运行:

  • 从负值上升到正值或零,或者从零值上升到正值。

  • 从正值下降到负值或零,或者从零值下降到负值。

  • 上升或下降到零值或者过零。

Enabled Subsystem 模块不同,Triggered Subsystem 模块始终在触发之间保留其上一个输出值。此外,触发子系统不能在执行时重置模块状态;任何离散模块的状态将会在触发之间保留。

创建触发子系统

创建触发子系统:

  1. 为您的模型添加一个 Triggered Subsystem 模块。

    • 将 Simulink® Ports & Subsystems 库中的模块复制到您的模型中。

    • 点击模型图,键入 trigger,然后选择 Triggered Subsystem

  2. 设置 Outport 模块的初始值和禁用值。请参阅条件子系统初始输出值Conditional Subsystem Output Values When Disabled

  3. 设置控制信号如何触发执行。

    打开子系统模块,然后打开 Trigger 端口模块的参数对话框。从 Trigger type 下拉列表中,选择:

    • rising” - 当控制信号从负值或零值上升至正值时,触发子系统的执行。

    • falling” - 当控制信号从正值或零值下降至负值时,触发子系统的执行。

    • either” - 通过上升或下降控制信号触发子系统的执行。

    TriggerSubsystem 模块上将出现不同的符号,以指示上升和下降触发器。

  4. Trigger 端口模块输出启用控制信号。打开 Trigger 端口模块。选中 Show output port 复选框,以便将控制信号传递给触发子系统。

    您可以将此信号用于依赖控制信号值的算法。

  5. Output data type 下拉列表中,选择 autoint8double

    auto 选项会使得输出信号的数据类型采用连接到信号的模块端口的数据类型(int8double)。

离散时间系统的触发

对于离散时间系统,触发控制信号必须保持为零超过一个时间步。该触发策略可消除由控制信号采样引起的错误触发。

在下面的离散系统时序图中,上升触发信号 (R) 未在第 3 个时间步发生。触发信号仅在一个时间步保持为零,然后信号从零开始上升。

触发模型与触发子系统

您可以在 Model 模块(引用模型)中放置一个 Trigger 端口模块以简化模型设计,而不是使用以下模块之一:

  • Model 模块中的 Triggered Subsystem 模块。

  • Triggered Subsystem 模块中的 Model 模块。

有关在引用模型中使用 Trigger 端口模块的信息,请参阅Modify Referenced Models for Conditional Execution

要转换子系统以使用模型引用,请参阅将子系统转换为引用模型

触发子系统中的模块

触发子系统中的所有模块的 Sample time 都必须设置为继承 (-1) 或固定 (inf)。此要求允许触发子系统中的模块仅在触发子系统本身运行时才运行。此要求还意味着触发子系统不能包含连续模块,如 Integrator 模块。

模型示例

另请参阅

模块

相关示例

详细信息