文档

建模指南Stateflow图表

使用这些指导方针可以有效地为带有事件、状态和转换的图表建模。

对输入事件使用相同数据类型的信号

当您使用多个输入事件来触发图表时,请验证所有输入信号是否使用相同的数据类型。否则,模拟将停止并显示错误消息。有关更多信息,请参见输入事件允许的数据类型

使用默认转换将第一个状态标记为独占(OR)状态中的活动状态

这个准则防止在图表执行过程中出现状态不一致错误。

尽可能使用条件动作而不是转换动作

条件操作在条件求值为true时立即执行。在转换路径完成之前,转换操作不会执行到终止连接或状态。

除非执行延迟是必要的,否则请使用条件操作而不是转换操作。

使用显式排序来控制一组传出转换的测试顺序

你可以指定显式的隐式的转换的排序。默认情况下,图表使用显式排序。如果切换到隐式排序,则当图形对象移动时,转换测试顺序可能会更改。

在流程图中验证预期的回溯行为

如果图表包含意外的回溯行为,则会出现一条警告消息,说明如何避免该问题。有关更多信息,请参见创建流程图的最佳实践

使用超状态来封装共享相同状态操作的子状态

当您有多个执行相同状态操作的排他(OR)状态时,请将这些状态分组在一个超状态中,并在该级别定义状态操作。

该准则允许重用应用于多个子状态的状态操作。您只需编写一次状态操作,而不是在每个子状态中分别编写它们。

请注意

您不能将框用于此目的,因为框不支持状态操作。万博1manbetx

使用MATLAB在图表中执行数值计算的函数

MATLAB®函数比图形函数、真值表或Simulink更擅长处理数值计算万博1manbetx®功能。

在函数签名中使用描述性名称

描述性函数名可以增强图表对象的可读性。

使用历史结点来记录状态历史

如果重新进入具有排他(OR)分解的状态依赖于先前活动的子状态,则使用历史连接。当图表退出活动子状态时,这种类型的结记录活动子状态。如果您没有记录先前活动的子状态,则会发生默认转换,并且错误的子状态可能在状态重新进入时变为活动状态。

不要在并行(AND)分解的状态下使用历史连接

该准则可防止解析错误。由于同一层次上的所有平行状态同时处于活动状态,因此历史连接没有意义。

使用显式排序来控制并行(AND)状态的执行顺序

你可以指定显式的隐式的平行状态的排序。默认情况下,图表使用显式排序。如果您切换到隐式排序,则执行顺序可以在并行状态移动时更改。

这个话题有帮助吗?