stateflow绝对时间逻辑实操

使用after运算符替换at运算符

如果将at运算符与绝对时间-时间逻辑一起使用,则在尝试模拟模型时会出现错误消息。请改用after运算符。
假设您想使用(5.33,秒)的转换来定义时间延迟。
在这里插入图片描述
将转换更改为after(5.33秒),如图所示。这样就不报错了。

在这里插入图片描述

使用带有后运算符的外部自循环转换来替换每个运算符

如果您使用带有绝对时间-时间逻辑的every运算符,则在尝试模拟模型时会出现错误消息。请改用带有after运算符的外部自循环转换。
假设您想在图表执行期间每2.5秒打印一次活动状态的状态消息,如Check_status的状态操作所示。

在这里插入图片描述将状态操作替换为外部自循环转换,如图所示。

在这里插入图片描述还要在状态中添加一个历史节点H,以便图表记住每次自循环转换之前的状态设置。

下面自己搭建一个流程图,
流程图分为off-state和on-state,当duration(data<30)满足30个步长后,进入on-state,然后每隔6个步长调用一次on-state,在on state里不断进行cold和hot两个chart的判断转换。
在这里插入图片描述

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

现在加入历史节点H。生成代码看看效果。

在这里插入图片描述看一下生成的代码,可以看到比未加入历史节点时多了一个was_on_state标志位,这个就是记录保存历史状态的,以便下一次直接进入上一次的历史状态。
在这里插入图片描述在这里插入图片描述

使用具有离散采样时间的图表可以更高效地生成代码

为不在触发或启用子系统内的离散图表生成的代码使用整数计数器来跟踪时间,而不是Simulink®提供的时间。这允许在开销和内存方面更有效地生成代码,并使该代码能够在“软件在环”(SIL)和“处理器在环”模拟模式中使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值