主要内容

创建一个层次结构来管理系统复杂性

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

国家层次

要创建国家等级,请将一个或多个国家置于另一个国家的边界内。内态是外态的子态(或子态)。外态是内态的父态(或超态)。

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

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

层次结构的例子

此示例模拟了由AM收音机,FM收音机和CD播放器组成的立体声系统。在仿真过程中,您可以通过单击媒体播放器辅助用户界面上的按钮来控制立体声系统。

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

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

最初,此立体声系统的完整实现显示相当复杂。但是,通过一次关注单一的活动,您可以逐步设计整个系统设计。例如,CD播放器进入快进播放模式所需的这些条件是必要的:

  1. 你打开音响。

  2. 你打开CD播放器。

  3. 你在放碟片。

  4. 点击UI中的FF按钮。

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

实现立体声系统的行为,sf_mediaplayer.控件下的模型资源管理器列出的嵌套状态的层次结构模式管理器图表。方法中打开模型资源管理器建模选项卡上,选择模型浏览器

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

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

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

立体声系统活动(儿童国家NormalOperation)

备用 立体声系统处于待机模式(关闭)
立体声系统激活(开启)

立体声子组件(子状态)

cdmode CD播放器子组件激活
AMMode AM无线电子组件是有效的
FMMode FM收音机子组件处于活动状态

CD播放器活动(儿童国家cdmode)

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

光盘播放模式(儿童状态)

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

该图显示了图表中状态的完整布局。

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

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

探索的例子

这个例子sf_mediaplayer.包含两个其他州流图:

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

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

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

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

相关的例子

更多关于