Stateflow中on event

最近遇到了一个stateflow中的功能点,下面来介绍一下。

在介绍on event用法之前,先介绍一个名词:超时间步语义(Super Step Semantics)。

简单概括一下这个功能的作用:启用超时间步语义后,在单个时间步内,也就是单次步长运行时间内会运行指定的次数n,等价于在单次时间内运行了“n+1”步长。

语言描述可以认识概念,实例讲解才会理解概念。老规矩,一图胜千言,看下面的图:

Matlab版本:2022b

求解器类型及步长:定步长、离散、0.1s

序 号设 置仿真输出结果
1未勾选
2勾选且设置0

3勾选且设置1
4勾选且设置2次及以上

结论

1.当不使能“启用超时间步定义”时,stateflow按照单次运行步长时长逐步运行;

2.当启用时间步设置次数为0时,会在单次运行步长时长内运行多次直至状态稳定;

3.当启用时间步设置次数为1(a)时,stateflow会在单次运行步长时长内运行“a+1=2”次;

4.当启用时间步设置次数为2(a)时,stateflow会在单次运行步长时长内运行“a+1=3”次;

依次类推......,注意,设置为0时比较特殊,似乎不符合开头描述的功能作用“n+1”,后续继续搜集资料跟踪次数0的特殊性。

%----------------------------------------------------------------------------------------------------------------------------%

接下来介绍事件on event的用法:

序 号设 置仿真输出结果
1未勾选
2勾选且设置0

3勾选且设置1
4勾选且设置2
5勾选且设置3次及以上

结论

1.当不使能“启用超时间步定义”时,stateflow按照单次运行步长时长逐步运行;

2.当启用时间步设置次数为0时,会在单次运行步长时长内运行多次直至状态稳定;

3.当启用时间步设置次数为1(a)时,当event1发生时stateflow会在单次运行步长时长内运行“a+1=2”次,此时进入状态“Sts1”;

4.当启用时间步设置次数为2(a)时,当event1发生时stateflow会在单次运行步长时长内运行“a+1=3”次,此时进入状态“Sts2”,此时on event1起到的是启动作用,其中的结果“out = 3”并未执行;

5.当启用时间步设置次数为3(a)时,当event1发生时stateflow会在单次运行步长时长内运行“a+1=4”次,此时进入状态“Sts2”,此时on event1起到的是“启动+触发执行”作用,其中的结果“out = 3”会执行;

依次类推......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demonmonster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值