我是靠谱客的博主 负责皮皮虾,最近开发中收集的这篇文章主要介绍Stateflow学习笔记之状态图转移实例从一个状态退出,进入另一个状态 超转移不存在有效转移时,执行during动作参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
从一个状态退出,进入另一个状态
考虑以下状态图。
假设当前的活动状态为A.A1。
假设变量的值为:x = 5, y = 2, z = 0.
接下来的执行步骤为:
- 判断状态A是否有向外的转移。有,且满足[x>4]的条件。转移有效。
- 将状态A 标记为“退出状态”,执行状态A的退出动作:z = z + 1。现在z = 1。
- 将状态B标记为“进入状态”,执行状态B的进入动作:x = x - 1。现在x = 4。
- 状态B包含子状态,没有历史状态结点,执行默认转移。
- 状态B.B1标记为“进入状态”,执行B.B1的进入动作:x = x - 1。现在x = 3。
- 当前活动状态为B.B1,状态图进入休眠。
超转移
考虑以下状态图:
假设当前活动状态为A.A2。
假设当前变量的值为:x = 5, y = 5, z = 0.
接下来的执行步骤为:
- 测试状态A是否存在有效的输出转移。不满足条件:[x>10]。
- 测试状态A.A2是否存在有效的输出转移。满足条件:[x>4],为有效的转移。
- 退出状态A.A2,无退出动作。
- 退出状态A。执行退出动作:z = z + 1。
- 进入状态B。执行进入动作:x = x - 1。
- 进入状态B1。执行进入动作:x = x - 1。
- 当前活动状态为B.B1,状态图进入休眠。
不存在有效转移时,执行during动作
考虑以下状态图:
初始化完成后,执行默认转移动作,A.A1为活动状态。此时,x = 3, y = 0, z = 0.
下一个时刻,状态图的执行步骤为:
- 测试状态A的输出转移,不满足条件:[x>4]。
- 测试状态A1的输出转移,不满足条件:[y>3]。
- 执行状态A的during动作:y = y + 1。此时y = 1。
- 执行状态A1的during动作:x = x + 1。此时x = 4。
- 当前活动状态还是A.A1,状态图进入休眠。
参考资料
进入图或状态
Enter a Chart or Statehttps://ww2.mathworks.cn/help/stateflow/ug/chart-initialization-and-entry-actions.html
状态图的执行
Execution of a Stateflow Charthttps://ww2.mathworks.cn/help/stateflow/ug/chart-during-actions.html
退出状态
Exit a Statehttps://ww2.mathworks.cn/help/stateflow/ug/chart-exit-actions.html
最后
以上就是负责皮皮虾为你收集整理的Stateflow学习笔记之状态图转移实例从一个状态退出,进入另一个状态 超转移不存在有效转移时,执行during动作参考资料的全部内容,希望文章能够帮你解决Stateflow学习笔记之状态图转移实例从一个状态退出,进入另一个状态 超转移不存在有效转移时,执行during动作参考资料所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复