在Stateflow中创建流程图
一个Stateflow®流程图是一种图形结构,它为诸如决策树和迭代循环等逻辑模式建模。流程图表示组合逻辑,其中一个结果不依赖于先前的结果。您可以通过组合连接连接和过渡来构建流程图。连接提供了不同过渡路径之间的决策分支。执行流程图开始于默认转换,结束于终止结,这是一个没有外向跃迁的结。有关更多信息,请参见结合过渡和连接创建分支路径.
请注意
如果一个Stateflow图表只包含一个流程图,那么该图表将在每次唤醒流程图时对流程图进行计算。相反,图只在状态进入期间评估状态内的任何流程图。
最佳实践是将流程图封装在图形函数中,以创建模块化和可重用的逻辑,您可以在图表中的任何地方调用这些逻辑。有关图形函数的更多信息,请参见通过定义图形函数重用逻辑模式.
例如,这个流程图模型简单如果
-其他的
逻辑:
流程图模拟了以下代码:
如果U > 0 y = 1;其他的y = 0;结束
画一个流程图
您可以通过使用连接结点作为交替转换路径之间的分支点来绘制流程图。绘制流程图:
打开一个新的图表。
向流程图执行开始的连接处添加默认转换。在对象面板中,单击Default转换图标.然后,在图表画布上,单击转换的位置。状态流编辑器添加一个新的连接结作为转换的目的地。
若要添加新的过渡,请指向连接处的边界。然后,单击并拖动离开连接点。Stateflow Editor提供图形提示,允许您添加连接或状态。
要在过渡的末端放置一个连接点,请单击圆形提示。
若要将转换连接到现有结,请将指针拖动到所需的目标。
若要向图表添加连接结,请在对象调色板中单击junction图标.然后,在图表画布上,单击新结点的位置。
根据需要重复以上步骤。
中描述的标记转换在转换中定义操作.
创建流程图的最佳实践
在创建流程图时,请遵循这些最佳实践。
只使用一个默认转换
流程图只有一个入口点。
只提供一个终端连接
多个终止结点降低流程图的可读性。
收敛所有过渡路径到终止结点
流程图的执行总是到达终止点。
提供从除终止结以外的每个结的无条件转换
如果在模拟过程中出现意外回溯,则会出现警告消息。
若要控制诊断操作的级别以防止意外回溯,请打开“配置参数”对话框,并在诊断>Stateflow窗格中,设置意想不到的回溯参数没有一个
,警告
,或错误
.默认设置为警告
.有关更多信息,请参见意想不到的回溯(模型).
在以下情况下,可能会在交接处发生意外后退:
结没有到状态或终止结的无条件过渡路径。
多条过渡路径通向那个结点。
要处理更新,请使用条件操作而不是转换操作
流程图测试转换,但不执行它们。因此,流程图从不执行转换操作。此外,在图表中使用MATLAB®作为动作语言,在图形函数中使用转换动作会导致编译时错误。