组合使用转移和结点以创建分支路径
连接结点表示转移路径中的决策点。您可以组合使用转移和连接结点来创建从一个源到多个目标或从多个源到一个目标的路径。有关分支路径语义的详细信息,请参阅Represent Multiple Paths by Using Connective Junctions。
添加连接结点
当您向图添加转移时,Stateflow® 编辑器会提供图形提示,以允许您添加结点或状态。要在转移的末尾放置结点,请点击圆形提示。
或者,要向图添加孤立的结点,请执行以下操作:
在对象选项板中,点击“结点”图标
。
在图画布上,点击新连接结点的位置。
修改连接结点属性
要更改一个或多个连接结点的大小,请执行以下操作:
选择连接结点。
右键点击一个选定的结点,然后选择结点大小。
从下拉列表中,选择结点大小。
要更改连接结点的其他属性,请右键点击连接结点,然后选择属性。“连接结点”对话框显示以下属性:
父级 - 连接结点的父状态。要将父级置于前台,请点击超文本链接。此属性为只读。
描述 - 对结点的描述。
文档链接 - 结点的在线文档链接。您可以输入 Web URL 地址或者能以合适的在线格式(例如 HTML 文件或 MATLAB® 命令行窗口中的文本)显示文档的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。
具有连接结点的转移路径示例
通过组合使用转移和连接结点,您可以构造常见的转移模式,例如:
if-then-else
决策模式for
循环模式while
循环模式
要缩短这些模式的创建时间,请使用构型向导。有关详细信息,请参阅使用构型向导创建流程图。
具有无条件转移的 If-then-else
模式
在此示例中,从状态 Start
发出的转移有三个连接结点。路径的前两个分支由条件保护。路径的最后一个分支是无条件的。
图使用时序逻辑确定输入 u
何时等于 1:
如果
u
在时间之前等于 1,则
Fast
状态被激活。如果
u
在和
之间等于 1,则
Good
状态被激活。如果
u
在后等于 1,则
Slow
被激活。
有关此图的详细信息,请参阅检测已用时间。
For
循环模式
在此示例中,流程图使用转移和连接结点的组合来构造 for
循环。
计数器 i
的值从 1 增加到 10,流程图根据此值定义数组 output
的元素。此流程图中的循环等效于以下 MATLAB 代码片段:
for i = 1:10 output(i) = 2*i; end
While
循环模式
在此示例中,流程图组合使用转移和连接结点来构造用于计算各项输入的最大公约数的 while
循环。
此流程图中的循环等效于以下 C 代码片段:
while(q > 0) { r = fmod(p,q); p = q; q = r; }
指定连接结点的属性
您可以在属性检查器、模型资源管理器或“连接结点”属性对话框中修改下面列出的属性。
要使用属性检查器,请执行以下操作:
在建模选项卡的设计数据下,选择属性检查器。
在 Stateflow 编辑器中,选择连接结点。
在属性检查器中,编辑连接结点属性。
要使用模型资源管理器,请执行以下操作:
在建模选项卡的设计数据下,选择模型资源管理器。
在模型层次结构窗格中,选择连接结点的父状态或图。
在内容窗格中,选择连接结点。
在对话框窗格中,编辑连接结点属性。
要使用“连接结点”属性对话框,请执行以下操作:
在 Stateflow 编辑器中,右键点击连接结点。
选择属性。
在属性对话框中,编辑连接结点属性。
您也可以通过使用 Stateflow.Junction
对象以编程方式修改结点属性。有关 Stateflow 编程接口的详细信息,请参阅 Overview of the Stateflow API。
父级
连接结点的父级。此属性为只读且在属性检查器中不可用。当您点击父超链接时,Stateflow 编辑器会将该父超链接置于前台。
描述
连接结点的描述。
文档链接
连接结点的在线文档的链接。您可以输入 Web URL 地址或者将文档显示为 HTML 文件或 MATLAB 命令行窗口中的文本的 MATLAB 命令。点击文档链接超链接时,Stateflow 会计算该链接并显示该文档。
另请参阅
对象
工具
- 模型资源管理器 (Simulink)