Stateflow历史节点的使用

一、无历史节点

1. 模型

在这里插入图片描述
双击后进入模型如下
在这里插入图片描述

2.添加数据 y

在这里插入图片描述
在这里插入图片描述
注:右下角有个Apply,需要点击。

3. 配置步长为1s

在这里插入图片描述
在这里插入图片描述

4.运行结果

在这里插入图片描述

5.分析

  1. 开始运行时,默认迁移进入A,此时 y 被赋值为1,0-1s 内 y ==1;
  2. 当处于 A 状态 1s(0-1s) 后,`after(1,tick)条件触发,进入A1状态;
  3. 进入A1状态,默认迁移进入C1,此时y 被赋值为4,1-2s 内 y ==4,s(1-2s)后,after(1,tick)条件触发,进入C2状态;
  4. 进入C2状态时,y 被赋值为3,2-3s 内 y ==3;1s(2-3)后,A与A1之间的after(2,tick)条件触发,进入到A状态。此条件触发的原因为A1状态存续了2s,进入A状态是因为层次化迁移的优先级规则为:从高层次到低层次检测;从外部迁移到内部迁移 检测;同一层次内,超转移优先。.
  5. 进入A,此时 y 被赋值为1,3-4s 内 y ==1;,回到上述·中,开始循环。

二、有历史节点

1. 模型

在这里插入图片描述
在这里插入图片描述

2.运行结果

在这里插入图片描述

3.分析

前4条与上述分析中的一致,从第 5 条开始变化,
1.
2.
3.
4.
5. 进入A,此时 y 被赋值为1,3-4s 内 y ==1;,1s(3-4s)后,A与A1之间的条件after(1,tick)被触发,进入A1;
6. 注意进入A1之后,由于历史节点的存在,会直接进入状态C2,此时的默认迁移,进入C1不再有效。(历史节点:记录退出父状 态时,正处于激活状态的子状态,当再次进入父状态时,则默认激活上一次所记录 的子状态,而不是激活默认迁移的状态)
7. 后续分析不在赘述。

三、附加

3.1 含有历史节点

在这里插入图片描述
在这里插入图片描述

3.1.1 简要分析

<1> 0 时刻:A1 被激活
<2> 0~1 TICK: Y = 1;
<3> 1 时刻:A2.C1 被激活
<4> 1~2 TICK: Y = 4;
<5> 2 时刻:A2.C2 被激活
<6> 2~3 TICK: Y = 3;

<7> 3 时刻:A1 被激活(优先级:高–>低,外–>内,同层超迁移)
<8> 3~4 TICK: Y = 1;
<9> 4 TICK:A2.C2 被激活(History 节点的作用)
<10> 3~5 TICK: Y = 3;
<11> 5 TICK: A2.C2 继续处于激活状态
<12> 5~6 TICK: Y = 3;
<13> 6 时刻:A1 被激活
<14> 6~7 TICK: Y = 1;(回到 <7>,循环)

3.2 不含历史节点

在这里插入图片描述
在这里插入图片描述

四、视频解析

4.1 NoHistory_1Tick

NoHistory_1Tick-哔哩哔哩

4.2 NoHistory_2Tick

NoHistory_2Tick-哔哩哔哩

4.3 NoHistory_3Tick

NoHistory_3Tick-哔哩哔哩

4.4 History_3Tick

History_3Tick-哔哩哔哩

4.5 NoHistory_7Tick

NoHistory_7Tick-哔哩哔哩

五、相关知识点

  1. 层次化迁移的优先级规则为:从高层次到低层次检测;从外部迁移到内部迁移检测;同一层次内,超转移优先。
  2. 2.Stateflow中的事件执行顺序
  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值