Main Content

使用可重置子系统

Resettable Subsystem 模块是一个预先配置的 Subsystem 模块,您可基于它创建一个每当 Reset 端口收到触发信号就会重置模块状态的子系统。

以下各节描述可重置子系统的行为,并将其与具有 Reset 端口或可配置为类似 Reset 端口的其他端口的 Simulink® 模块的子集进行比较。

可重置子系统的行为

此模型显示了模块重置端口和可重置子系统的行为相同。可重置子系统使您能够重置其中所有模块的状态。在此模型中,该可重置子系统包含其配置类似于根级 Integrator 模块的 Integrator 模块,但该模块没有重置端口。该子系统采用与 Integrator 模块的重置端口相同的方式,重置其内部 Integrator 模块的状态。

Basic resettable subsystem Example

您可以通过运行模型并查看 Scope 中的输出来查看此行为。您可以在示波器中观测到以下内容:

  • reset trigger 信号表示 Reset 端口的信号。

  • reset trigger 信号的上升沿,可重置子系统和 Integrator 模块都将 Integrator 模块状态重置为其初始状态(在本例中为 0)。

    reset trigger 信号的每两个上升沿之间,可重置子系统和 Integrator 模块都执行。可重置子系统和 Integrator 模块的输出在示波器中分别由 resettable outputintegrator output 信号表示。如信号所示,两个输出相同。

Basic resettable subsystem example output

与重置模块或子系统状态的其他方法相比,使用可重置子系统具有以下优势:

  • 当您要重置子系统中多个模块的状态时,显示和连接每个模块的重置端口非常繁锁,而且使模块图难以看懂。此时应将所有模块放在可重置子系统中,并在子系统中配置 Reset 模块。

  • 有些模块(例如 Discrete State-Space 模块)有状态,但没有重置端口。您不能单独重置这些模块,而必须重置它们所在的子系统。在这种情况下,将这些模块放在可重置子系统中会非常有用。

  • 您还可以通过将使能端口上的启用时的状态参数设置为重置,来重置使能子系统中的模块。但是,对于这种行为,您必须禁用子系统,然后在以后的时间步中重新启用它。若要在同一时间步中重置模块状态,请使用可重置子系统。有关详细信息,请参阅可重置子系统与使能子系统的比较

一个可重置子系统中的所有模块必须具有相同的采样时间,并在该子系统的每个采样时间命中点执行。可重置子系统和模型使用一个公用时钟。

注意

如果一个可重置子系统内有包含 Simulink Function 模块的 Stateflow® 图,则当该可重置子系统执行时,Simulink Function 模块内部的模块不会恢复到其初始条件。

可重置子系统与使能子系统的比较

如果将 Enable 模块的启用时的状态设置为重置,使能子系统将重置子系统中所有模块的状态。但是,您必须将子系统至少禁用一个时间步,然后重新启用它,才能重置状态。

相比之下,可重置子系统始终执行,并即时重置其模块状态。

此模型显示了这些子系统的执行行为的区别。它包含一个使能子系统和一个可重置子系统,这两个子系统的控制端口连接到 Pulse Generator。可重置子系统设置为在控制信号的上升沿重置,使能子系统的 Enable 端口中的启用时的状态参数设置为重置

resettable subsystem vs enabled subsystem example

子系统包含相同的 Discrete-Time Integrator 模块,其输入是模型根级的 Constant 模块。下图显示了可重置子系统的内容。

subsystem content for resettable subsystem vs enabled subsystem example

该图显示 Scope 模块中的仿真输出。您可以在示波器中观测到以下内容:

  • control signal 表示 Enable 端口的控制信号。

  • 当控制信号为 0 时,使能子系统被禁用,积分器将不会在可重置子系统继续执行时更改其输出。控制信号的上升沿会触发可重置子系统的重置端口,并启用使能子系统。这两个子系统都在此时间步重置其状态。

  • 来自使能子系统和可重置子系统的输出在示波器内分别由 enabled outputresettable output 信号表示。请注意,使能子系统必须至少禁用了一个时间步,其状态才能重置。可重置子系统中不具有此限制。

resettable subsystem vs enabled subsystem example output

模型示例

有关模型示例,请参阅:

另请参阅

| | | | | |

相关主题