Main Content

通过使用历史结点继续先前的子状态活动

状态中的历史结点记录子状态的活动。包含历史结点的状态第一次被激活时,该状态通过执行默认转移来确定哪个子状态被激活。如果在经过一段时间的非激活状态后状态再次被激活,则状态不执行默认转移。在这种情况下,子状态返回到先前的活动状态。

例如,在此图中,顶层状态表示交通信号灯的开和关模式。状态 On 包含两个子状态 SolidBlinking,它们对应于交通信号灯的两种工作模式。当状态 On 第一次被激活时,状态执行默认转移,子状态 Solid 被激活。此子状态表示交通信号灯的默认工作模式。状态 On 中的历史结点 记录哪个子状态被激活,因此,当图触发从 OnOff 的转移并返回到 On 时,最后一个激活子状态再次被激活。换句话说,当您打开交通信号灯时,它始终返回到先前的工作模式。有关此示例的详细信息,请参阅使用 Stateflow 图设计人机界面逻辑

Chart that contains a top-level state with a history junction.

提示

历史结点可以是转移的目标。例如,将内部转移连接到历史结点等效于在每个子状态上绘制自环转移。当内部转移有效时,图退出,然后立即重新进入激活子状态。有关详细信息,请参阅Inner Transition to a History Junction

添加历史结点

要向 Stateflow® 图添加历史结点,请执行以下操作:

  1. 打开图。

  2. 在对象选项板中,点击“历史结点”图标

  3. 在图画布上,点击新历史结点的位置。

添加历史结点后,您可以使用 Stateflow 编辑器来更改该结点的大小和位置:

  • 要移动结点,请点击并拖动结点。

  • 要调整结点的大小,请右键点击结点,选择结点大小,并从下拉列表中选择结点大小。

指定历史结点的属性

您可以在属性检查器、模型资源管理器或“历史结点”属性对话框中修改下面列出的属性。

要使用属性检查器,请执行以下操作:

  1. 建模选项卡的设计数据下,选择属性检查器

  2. 在 Stateflow 编辑器中,选择历史结点。

  3. 属性检查器中,编辑历史结点属性。

要使用模型资源管理器,请执行以下操作:

  1. 建模选项卡的设计数据下,选择模型资源管理器

  2. 模型层次结构窗格中,选择历史结点的父状态或图。

  3. 内容窗格中,选择历史结点。

  4. 对话框窗格中,编辑历史结点属性。

要使用“历史结点”属性对话框,请执行以下操作:

  1. 在 Stateflow 编辑器中,右键点击历史结点。

  2. 选择属性

  3. 在属性对话框中,编辑历史结点函数属性。

您也可以通过使用 Stateflow.Junction 对象以编程方式修改结点属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API

父级

历史结点的父级。此属性为只读且在属性检查器中不可用。当您点击父超链接时,Stateflow 编辑器会将该父超链接置于前台。

描述

历史结点的描述。

文档链接

链接到历史结点的在线文档。您可以输入 Web URL 地址或者将文档显示为 HTML 文件或 MATLAB® 命令行窗口中的文本的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。

另请参阅

对象

工具

相关主题