状态流之Transition Connections

Transitions to and from Exclusive (OR) States

状态流之Transition Connections_第1张图片在这里插入图片描述

Transitions to and from Junctions

状态流之Transition Connections_第2张图片该图表使用时间逻辑来确定输入u何时等于1。

If the input equals 1… A transition occurs from…
Before t = 2 Start to Fast
Between t = 2 and t = 5 Start to Good
After t = 5 Start to Slow

Transitions to and from Exclusive (OR) Superstates状态流之Transition Connections_第3张图片

该图表具有层次结构中最高级别的两种状态,Power_off和Power_on。默认情况下,Power_off处于活动状态。事件开关在Power_off和Power_on状态之间切换系统。Power_on有三个子状态:第一、第二和第三。默认情况下,当Power_on变为活动时,First也变为活动。当Shift等于1时,每次发生事件Switch时,系统都会从“第一个”转换为“第二个”、“第二到第三个”和“第三到第一个”,然后重复该模式。

Transitions to and from Substates

状态流之Transition Connections_第4张图片

Self-Loop Transitions

源自同一状态并终止于同一状态的转换是自循环转换。下表包含四个自循环转换:
状态流之Transition Connections_第5张图片

Inner Transitions

内部转换是指不退出源状态的转换。当为具有异或分解的超状态定义时,内部跃迁是强大的。使用内部转换可以极大地简化Stateflow®图表,如以下示例所示:

Before Using an Inner Transition

After Using an Inner Transition to a Connective Junction

Using an Inner Transition to a History Junction

Before Using an Inner Transition

此图表是如何使用内部转换简化逻辑的示例。

状态流之Transition Connections_第6张图片任何事件都会发生并唤醒状态流程图。到连接点的默认转换是有效的。转换的目的地由[c1>0]和[c2>0]确定。如果[c1>0]为真,则向A1的转换为真。如果[c2>0]为真,则向A2的转换是有效的。如果[c1>0]和[c2>0]都不为真,则向A3的转换是有效的。A1、A2和A3之间的转换由E、[c1>0]和[c2>0]确定。

After Using an Inner Transition to a Connective Junctio状态流之Transition Connections_第7张图片

一个事件发生并唤醒图表。到连接点的默认转换是有效的。转换的目的地由[c1>0]和[c2>0]确定。

您可以使用内部转换来代替原始示例中所有状态之间的转换,从而简化图表。如果状态A已经处于激活状态,则内部转换用于重新评估状态A的哪个子状态将处于激活状态。当事件E发生时,内部转换可能有效。如果[c1>0]为true,则向A1的转换是有效的。如果[c2>0]为真,则向A2的转换是有效的。如果[c1>0]和[c2>0]都不为真,则向A3的转换是有效的。这个图表设计比上一个更简单。

注意:当使用到连接结点的内部转换时,活动子状态可以退出,并在该子状态的转换条件有效时重新进入。例如,如果子状态A1是活动的并且[c1>0]为真,则向A1的转换是有效的。在这种情况下:

1.A1的Exit actions 执行并完成。

2.A1变为非激活态。

3.A1变为激活态。

4.A1的Entry actions 执行并完成。

Using an Inner Transition to a History Junction

状态流之Transition Connections_第8张图片

状态Power_on.High 最初处于激活状态。当事件“Reset”发生时,到历史连接的内部转换是有效的。因为内部转换是有效的,所以当前为激活状态,Power_on.High已退出。当处理到历史连接的内部转换时,最后一个活动状态为Power_on.High,变为激活态(重入)。如果Power_on.Low在同样的情况下也是激活的,Power_on.Low 将因此退出并重新进入。本例中的内部转换等效于Power_on.Low and Power_on.High两者的外部自循环转换。

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