通过使用历史结点继续先前的子状态活动
状态中的历史结点记录子状态的活动。包含历史结点的状态第一次被激活时,该状态通过执行默认转移来确定哪个子状态被激活。如果在经过一段时间的非激活状态后状态再次被激活,则状态不执行默认转移。在这种情况下,子状态返回到先前的活动状态。
例如,在此图中,顶层状态表示交通信号灯的开和关模式。状态 On
包含两个子状态 Solid
和 Blinking
,它们对应于交通信号灯的两种工作模式。当状态 On
第一次被激活时,状态执行默认转移,子状态 Solid
被激活。此子状态表示交通信号灯的默认工作模式。状态 On
中的历史结点 记录哪个子状态被激活,因此,当图触发从 On
到 Off
的转移并返回到 On
时,最后一个激活子状态再次被激活。换句话说,当您打开交通信号灯时,它始终返回到先前的工作模式。有关此示例的详细信息,请参阅使用 Stateflow 图设计人机界面逻辑。
提示
历史结点可以是转移的目标。例如,将内部转移连接到历史结点等效于在每个子状态上绘制自环转移。当内部转移有效时,图退出,然后立即重新进入激活子状态。有关详细信息,请参阅Inner Transition to a History Junction。
添加历史结点
要向 Stateflow® 图添加历史结点,请执行以下操作:
打开图。
在对象选项板中,点击“历史结点”图标 。
在图画布上,点击新历史结点的位置。
添加历史结点后,您可以使用 Stateflow 编辑器来更改该结点的大小和位置:
要移动结点,请点击并拖动结点。
要调整结点的大小,请右键点击结点,选择结点大小,并从下拉列表中选择结点大小。
指定历史结点的属性
您可以在属性检查器、模型资源管理器或“历史结点”属性对话框中修改下面列出的属性。
要使用属性检查器,请执行以下操作:
在建模选项卡的设计数据下,选择属性检查器。
在 Stateflow 编辑器中,选择历史结点。
在属性检查器中,编辑历史结点属性。
要使用模型资源管理器,请执行以下操作:
在建模选项卡的设计数据下,选择模型资源管理器。
在模型层次结构窗格中,选择历史结点的父状态或图。
在内容窗格中,选择历史结点。
在对话框窗格中,编辑历史结点属性。
要使用“历史结点”属性对话框,请执行以下操作:
在 Stateflow 编辑器中,右键点击历史结点。
选择属性。
在属性对话框中,编辑历史结点函数属性。
您也可以通过使用 Stateflow.Junction
对象以编程方式修改结点属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API。
父级
历史结点的父级。此属性为只读且在属性检查器中不可用。当您点击父超链接时,Stateflow 编辑器会将该父超链接置于前台。
描述
历史结点的描述。
文档链接
链接到历史结点的在线文档。您可以输入 Web URL 地址或者将文档显示为 HTML 文件或 MATLAB® 命令行窗口中的文本的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。
另请参阅
对象
工具
- 模型资源管理器 (Simulink)