(Simulink)仅在更改时写入数据

时间:2014-07-17 12:43:48

标签: simulink

我有以下问题:

Matlab / Simulink给了我警告:

  

警告:数据存储区Write1'正在写入数据存储   '数据存储'但是块数据存储写入2'已经写好了   在时间t

到该存储器的一部分或整个区域

这是因为我的模型看起来像这样:

enter image description here

在Stateflow图表中,代码为:

[hasChanged(In)] {Out = In;}

所以我的问题是: 是否存在选项或其他内容,Data Store Write块仅在更改时写入?

注解:

  • 价值" Out"有时会在Stateflow Chart中更改,但不会在每个步骤中更改,我需要这样做"反馈"存储在Data Store中。所以我可以阅读/链接数据存储的价值。

  • 我需要使用常量块更改外部的值。

1 个答案:

答案 0 :(得分:1)

我找到的最令人满意的解决方案是构建一个自己的'只写更改'块并将其添加到库中:

这三张图片显示了从外到内的块的结构:

enter image description here

enter image description here

enter image description here

子系统在来自变化检测模块的上升信号上被触发。 我还添加了一个掩码来指定保存信号的位置(数据存储/总线名称)。

enter image description here