主要内容

图表执行类型

生命周期Stateflow图表

Stateflow®图表经过几个执行阶段:

阶段 描述
不活跃的 图表没有活动状态
活跃的 图表有活动状态
睡觉 图表有活动状态,但没有要处理的事件

当一个模型万博1manbetx®模型首先触发一个状态流程图,该流程图处于非活动状态,并且没有活动状态。图表执行并完全处理来自Simulink模型的初始触发事件后,它将控制权转移回模型并进入睡眠状态。在下一个Simulink触发器事件中,图表从休眠阶段更改为活动阶段。万博1manbetx

看到使用事件执行图表

未激活图表的执行

当一个图表处于非活动状态并且第一次被来自Simulink模型的事件触发时,它首先执行它的一组默认流程图(参见万博1manbetx一组流程图的执行顺序).如果此操作没有导致进入某个状态,且图表有并行分解,则每个并行状态都将变为活动状态(参见输入图表或状态).

如果执行默认流路径不会导致状态输入,则会发生状态不一致错误。

活动图表的执行

当一个图表被Simulink模型第一次触发后,它就是一个活动图表。万博1manbetx当图表从模型接收到另一个事件时,它将作为活动图表再次执行。如果图表没有状态,那么每次执行都相当于初始化图表。否则,执行活动子状态。并行状态的执行顺序与它们变为活动状态的顺序相同。

初始化时图表的执行

默认情况下,当图表第一次被唤醒时,它会执行默认的转换路径。此时,图表可以访问输入、写入输出和广播事件。

如果希望图表从已知配置开始执行,可以启用在初始化时执行(输入)图表图表属性。当您打开此选项时,图表的状态配置将在时间0而不是输入事件第一次出现时初始化。图的默认转换路径在模型初始化阶段0时刻执行,对应于mdlInitializeConditions ()S-functions阶段。有关更多信息,请参见在初始化时执行(输入)图表

请注意

如果此图表的输出连接到sievents®阻止,请不要选中此复选框。要了解关于在模型中一起使用状态流图和SimEvents块的更多信息,请参阅SimEvents文档。

由于初始化阶段的瞬态特性,不要在初始化时执行的图表的默认转换路径(以及关联的状态入口操作)中执行某些操作。遵循这些指导方针:

  • 不要访问图表输入数据,因为连接到图表输入端口的块可能还没有初始化它们的输出。

  • 不要从其他图表中调用导出的图形函数,因为这些图表可能还没有初始化。

  • 不要广播函数调用输出事件,因为被触发的子系统可能还没有初始化。

控件中的图表输入数据无效访问时,可以控制诊断操作级别诊断>Stateflow对话框中的。有关的更多信息,请参阅文档图表初始化中输入数据访问无效诊断。

在不包含状态的状态流图中,初始化时执行将被忽略。

相关话题