matlab笔记——simulink子模块数据重置问题

我们在使用simulink subsystem子系统时,经常会用到条件使能子系统,如if else、switch case。在使能条件跳转时,子系统内部很多变量根据不同的需求,可能要求保持上一使能时的最后时刻的值,也可能要求恢复初值,以便再进入此条件时使用。可以通过修改使能控件的参数来完成上述功能:用下图的参数states when executions is resumed: reset / held 来调节。
在这里插入图片描述

以if else 使能子系统为例,简易的模型如下图:delay模块的初值为0
在这里插入图片描述
在这里插入图片描述
当参数设置为held 时,两次进入这个累加器的表现如下图。当再次进入该模块时,delay模块记录的为上一次进入模块的终值,累加时从上次的终值开始累加。
在这里插入图片描述
当参数设置为reset时,再次进入子模块,delay模块变为了初始值0开始累加,所以完成了重置。表现如下图:
在这里插入图片描述
补充: 如果嵌套的subsystem较多时,每层的使能模块参数只能held或reset本层的状态,不能保持或重置内部子模块的状态。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值