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

使用使能子系统

使能子系统是一种条件执行子系统,它在控制信号具有正值时在每个主时间步运行一次。如果信号在子时间步发生过零事件,则子系统要到下一个主时间步才会启用或禁用。

控制信号可以是标量或向量。

  • 如果标量值大于零,则子系统执行。

  • 如果任何向量元素值大于零,则子系统执行。

创建使能子系统

创建使能子系统:

  1. 在您的模型中添加一个 Enabled Subsystem 模块。

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

    • 点击模型图,键入 enabled,然后选择 Enabled Subsystem

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

  3. 指定子系统启用后如何处理子系统状态。

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

    • held” - 状态保持最近使用的值。

    • reset” - 如果子系统禁用至少一个时间步,则状态还原到初始条件。

      在简化初始化模式(默认值)下,在子系统变为使能子系统后首次执行期间会始终重置其已用时间。无论子系统是否配置为在启用时重置,都会进行此重置。请参阅Underspecified initialization detection

    对于其 Enable 模块具有不同参数设置的嵌套子系统,子级子系统的设置将覆盖从父级子系统继承的设置。

  4. Enable 模块输出控制信号。

    Enable 模块的参数对话框中,选中 Show output port 复选框。

    选择此参数允许您将控制信号传递给使能子系统。您可以将此信号用于依赖控制信号值的算法。

使能子系统中的模块

离散模块

使能子系统中的离散模块仅在子系统执行时执行,且仅在其采样时间与仿真采样时间同步时执行。

假设 ex_enabled_subsys_1 模型中包含四个离散模块和一个控制信号。离散模块包括:

  • Block A,采样时间为 0.25 秒

  • Block B,采样时间为 0.5 秒

信号 E 是由 Pulse Generator 生成的使能控制信号,采样时间为 0.125 秒。其输出在 0.375 秒时将值从 0 更改为 1,并在 0.875 秒时返回 0。

使能子系统中的离散模块包括:

  • 模块 C,位于使能子系统内,采样时间为 0.125 秒

  • 模块 D,也位于使能子系统内,采样时间为 0.25 秒

离散模块按图中所示的采样时间执行。

模块 A 和 B 独立于启用控制信号执行,因为它们不是使能子系统的一部分。当启用控制信号变为正时,模块 C 和 D 按其分配的采样率执行,直到启用控制信号再次变为零。当启用控制信号变为零时,模块 C 在 0.875 秒处不会执行。

Goto 模块

使能子系统可以包含 Goto 模块。但是,只有具有状态的模块的输出端口可以连接到 Goto 模块。有关在使能子系统中使用 Goto 模块的示例,请参阅 sldemo_clutch 模型中的 Locked 子系统。

交替执行使能子系统模块

您可以将条件子系统与 Merge 模块结合使用,以创建一组根据模型的当前状态交替执行的子系统。

假设有一个模型使用两个 Enabled Subsystem 模块和一个 Merge 模块对全波整流器(一种可将交流电流转换为脉动直流电流的设备)进行建模。Open model

打开 pos 子系统。该子系统在交流波形为正时启用,并将波形不加更改地传递到其输出。

打开 neg 子系统。当波形为负时,子系统启用并反转波形。

Merge 模块将当前使能子系统的输出随原始波形一起传递到 Scope 模块。

运行仿真,然后打开 Scope 模块。

模型示例

另请参阅

模块

相关示例

详细信息