主要内容

通过使用检查国家活动操作符

在一个Stateflow®图表与平行状态分解,亚态可以活跃在同一时间。协调不同的平行状态的行为,一个州可以检查另一个州的亚态活动并做出相应的反应。例如,一个状态可以保持其亚态与其他州的亚态同步。

操作符

检查状态是否活跃在一个给定的时间步,调用运营商状态和转换操作。的运营商需要一个合格的国家名字state_name并返回一个布尔值输出。如果状态state_name是活跃的,返回一个值为1 (真正的)。否则,返回的值为0 ()。

在(state_name)

例如,在这个图表,风扇加热器是平行的(和)状态。每个州都有一双亚态,。每一秒,的活性亚态状态风扇之间的交替Fan.OffFan.On。在国家加热器,检查亚态的转换活动的情况而定风扇并保持同步。活性亚态的改变风扇导致相应的活性亚态的变化加热器

Stateflow图有两个超级大国称为风扇和加热器。每一个极权主义国家有两个亚态称为。

解决国家活动

检查状态的活动是一个两部分的过程。首先,Stateflow图表解析合格状态名称通过执行本地化搜索图层次结构的匹配状态。然后,图表决定是否活跃的匹配状态。

搜索开始的层次水平运营商与合格状态的名字叫做:

  • 政府行动,出发点是包含动作的状态。

  • 过渡,过渡的出发点是父源。

该决议过程搜索图层次结构的每一层路径状态。如果状态匹配路径,流程补充说,国家的列表可能的匹配。然后,这个过程仍在继续寻找更高一层的层次结构。解决程序停止后,搜索图表层次。如果存在一个独特的比赛,图表检查匹配是否活跃状态。否则,该决议过程失败。仿真停止错误。

这个流程图说明了在这一过程中不同阶段检查状态的活动。

流程图,说明了在不同阶段的过程检查状态的活动。

检查状态的最佳实践活动

解决国家活动,Stateflow图不执行一个详尽的搜索所有州和不停止后发现第一个匹配。改善的机会找到一个独特的搜索结果:

  • 合格的数据名称中使用特定的路径。

  • 给国家独特的名字。

  • 使用状态和盒子作为附件限制路径解决搜索的范围。

国家活动的决议的例子

搜索找到亚态的本地副本

这个图表包含两个平行的状态,一个B。每个州都有一双亚态,A1A2A1有亚态XY,而A2有亚态P。在A.A2而在B.A2,条件(A1.Y)警卫的过渡P

图有两个平行的状态称为A和b,每个州都有两个平行的亚态称为A1和A2。A1有两个独家状态称为X和y A2两个独家状态称为P和Q。

图表解析每个合格的国家名称的本地副本亚态Y:

  • 在国家一个,条件(A1.Y)检查的活动状态A.A1.Y

  • 在国家B,条件(A1.Y)检查的活动状态B.A1.Y

例如,该表列出了该决议过程中不同阶段的过渡状态的条件一个

阶段 描述 结果
1 从国家A.A2的图搜索状态A.A2.A1.Y 没有发现匹配。
2 移动到下一个层次(状态一个),图表搜索状态A.A1.Y 发现匹配。
3 向上移动到下一个层次(级别)的图表,图表搜索状态A1.Y 没有发现匹配。

搜索以找到一个匹配。因为分辨率算法定位搜索的范围,运营商守卫的过渡A.A2只检测状态A.A1.Y。的运营商守卫的过渡B.A2只检测状态B.A1.Y

检查活动的其他副本Y合格,使用更具体的国家名称:

  • 在国家一个,使用表达式(B.A1.Y)

  • 在国家B,使用表达式(A.A1.Y)

搜索产生不匹配

在这个图表中,动作的状态A.B包含表达式(Q.R)。Stateflow不能解决合格状态的名字Q.R

图表与嵌套的五个州被称为A、B、P, Q, R。

此表列出了解决过程的不同阶段。

阶段 描述 结果
1 从国家A.B的图搜索状态A.B.Q.R 没有发现匹配。
2 移动到下一个层次(状态一个),图表搜索状态A.Q.R 没有发现匹配。
3 向上移动到下一个层次(级别)的图表,图表搜索状态Q.R 没有发现匹配。

搜索结束在表级别没有发现匹配Q.R,导致一个错误。

为了避免这种错误,使用一个更具体的合格状态的名字。例如,检查状态活动通过使用表达式(P.Q.R)

搜索找到错误的状态

在这个图表中,动作的状态A.B包含表达式(Q.R)。当解决合格状态的名字Q.R,Stateflow不能检测到亚态A.B.P.Q.R

图有两个超级大国称为嵌套,问:有四个亚态称为B P, Q, R .问亚态称为R。

此表列出了解决过程的不同阶段。

阶段 描述 结果
1 从国家A.B的图搜索状态A.B.Q.R 没有发现匹配
2 移动到下一个层次(状态一个),图表搜索状态A.Q.R 没有发现匹配。
3 向上移动到下一个层次(级别)的图表,图表搜索状态Q.R 发现匹配。

搜索以找到一个匹配。的运营商只检测到亚态R顶级的状态

检查状态的活动A.B.P.Q.R,使用一个更具体的合格状态的名字。例如,使用表达式(P.Q.R)

搜索产生多个匹配

在这个图表中,动作的状态A.B包含表达式(P.Q.R)。Stateflow不能解决合格状态的名字P.Q.R

图和两个超级大国称为P有四个嵌套亚态称为B P, Q, R P有两个嵌套的亚态称为Q和R。

此表列出了解决过程的不同阶段。

阶段 描述 结果
1 从国家A.B,寻找状态A.B.P.Q.R 匹配发现
2 移动到下一个层次(状态一个),图表搜索状态A.P.Q.R 没有发现匹配。
3 向上移动到下一个层次(级别)的图表,图表搜索状态P.Q.R 发现匹配。

搜索结束两场比赛发现在表级别P.Q.R,导致一个错误。

为了避免这个错误:

  • 使用一个更具体的合格状态的名字。例如,检查亚态内部活动B,使用表达式(B.P.Q.R)

  • 重命名一个匹配状态。

  • 附上顶级状态P在一个盒子里或另一个状态。添加一个外壳防止搜索过程中检测亚态顶级状态。

    图表和一个叫一个叫做外壳和一盒的极权主义国家。有四个嵌套亚态称为B、P, Q, R .外壳有三个嵌套亚态称为P, Q, R。

另请参阅

|

相关的话题