事件在状态流程图中的工作方式

什么是事件?

事件是一个Stateflow®对象,它可以触发以下对象中一个动作:

Simulink®触发子系统

Simulink函数调用子系统

状态流程图

何时使用事件

当你想:

激活Simulink触发的子系统

激活Simulink函数调用子系统

在状态流程图的并行状态中触发操作

尽管Stateflow软件不限制图表中可以使用的事件数量,但底层C编译器对生成的代码强制执行理论上的(2^31)-1事件限制。

我什么时候应该使用条件而不是事件?

当您希望:

1.表示条件语句,例如,x<1或x==0

2.表示Simulink块的输入值变化。

范围 描述
local 该事件可以发生在Stateflow计算机中的任何位置,但仅在父对象(以及父对象的子对象)中可见。
Input from Simulink 发生在Simulink块中但被广播到状态流程图的事件
Output to Simulink 发生在状态流程图中但被广播到Simulink块的事件。

隐式事件是在图表执行期间自动广播的内置事件。

哪里可以使用事件

chart 图表以及所有状态和子状态
subchart 子部分以及所有状态和子状态
state 状态和所有子状态

用于检测未使用事件的诊断

如果图表中有未使用的事件,则在模拟过程中会显示一条警告消息,其中包含可以删除的事件列表。通过删除对模拟没有影响的对象,可以减小模型的大小。此诊断检查Stateflow事件的使用情况,以下类型除外:

函数调用输入事件

边沿触发的输入事件

选择要删除的事件后,会出现一个对话框来确认您的选择。在此对话框中,您可以指定在不进行确认的情况下进行其他删除。如果阻止出现确认对话框,则可以随时通过在命令提示符下键入以下内容重新启用该对话框:
sfpref(‘showDeleteUnusedConfGui’, 1)
您可以在“Model Configuration Parameters ”对话框的Diagnostics > Stateflow窗格中控制未使用事件的诊断操作级别。

你可能感兴趣的:(流程图)