主要内容

创建管理系统复杂性的层次结构

通过创建一个层次结构嵌套的状态。然后,您可以在statflow中控制多个复杂度级别®图表。有关更多信息,请参见模型有限状态机

国家层次

要创建州的层次结构,将一个或多个州置于另一个州的边界内。内部状态是外部状态的子状态(或子状态)。外部状态是内部状态的父状态(或超状态)。

状态层次结构的状态流程图。外部状态称为Parent。它包含两个内部状态Child1和Child2。

父状态的内容就像一个更小的图表。当一个父状态变为活动状态时,它的一个子状态也变为活动状态。当父状态变为非活动状态时,它的所有子状态都变为非活动状态。

层次结构的例子

这个例子模拟了一个立体声系统,包括一个调幅收音机,一个调频收音机和一个CD播放机。在模拟过程中,您可以通过单击Media Player Helper用户界面上的按钮来控制立体声系统。

立体声最初处于待机模式(OFF)。当您选择Radio Request按钮之一时,立体声将打开相应的子组件。如果您选择了CD播放器,您可以单击CD请求按钮中的一个来选择播放、倒带、快进或停止。在模拟过程中,您可以在任何点插入或弹出磁盘。

通过使用状态层次结构实现行为

最初,这个立体系统的完全实现显得相当复杂。然而,通过一次只关注单个级别的活动,您可以增量地设计整个系统设计。例如,以下条件是CD播放器进入快进播放模式的必要条件:

  1. 你打开音响。

  2. 你打开CD播放机。

  3. 你在播放唱片。

  4. 点击UI中的FF按钮。

您可以构建一个分层模型,一次只考虑其中的一个条件。例如,最外层可以定义立体声打开和关闭之间的过渡。中间层定义了不同的立体声子组件之间的过渡,以及CD播放机的停止和播放模式之间的过渡。最下面的一层定义了当您满足播放光盘的所有其他条件时,对CD请求按钮的响应。

为了实现立体系统的行为,sf_mediaplayer属性下的模型资源管理器列出的嵌套状态层次结构模式管理器图表。要打开模型资源管理器,在建模选项卡上,选择模型浏览器

嵌套状态的层次结构,由模型资源管理器列出。

该表列出了层次结构中每个状态的角色。

层次结构级别 状态 描述
最高级别(模式管理器图表) 喷射 光盘弹出模式(中断所有其他立体声功能)
NormalOperation 立体声系统的正常操作模式

立体系统活动(子状态NormalOperation

备用 立体声系统处于待机模式(OFF)
立体声系统激活(ON)

立体声子组件(的子状态

CDMode CD播放机子组件是活跃的
AMMode 调幅无线电子组件是有效的
FMMode 调频无线电子组件已激活

CD播放器活动(子状态CDMode

停止 CD播放机停止
CD播放机正在播放光盘

光盘播放模式(子状态

正常的 正常的播放模式
倒带 反向播放模式
fastforwar 快进播放模式

该图显示了图表中各州的完整布局。

模式管理器图表中的状态安排。

历史上连接NormalOperationstate记录在弹出光盘或关闭系统之前的操作模式(Standby或ON)和媒体播放器(CD播放器、AM收音机或FM收音机)的活动子组件。

探索的例子

这个例子sf_mediaplayer包含另外两个状态流程图:

  • 应用程序接口使用UI管理接口,并将输入传递给模式管理器CD播放器图表。

  • CD播放器对象的输出应用程序接口模式管理器图表和模仿CD播放机的机械行为。

金宝app模拟媒体播放器的Simulink模型。该模型包含图表媒体播放器模式管理器和两个额外的图表,用户请求和CD播放器行为模型。

在模拟过程中,您可以研究每个图表如何响应与Media Player Helper应用程序的交互。要在图表之间快速切换,请使用statflow Editor顶部的选项卡。

相关的话题