0

我试图在系统启动后检索两个 1 位值(即它们以前的值),或者如果情况发生变化,则在正常操作期间写入它。当我说“系统启动”时,我想明确表示这是一个位于非常大系统内的子系统。

这个想法是,如果我断开这个子系统,系统的其余部分不受影响。我将根据它们最后的已知状态保留两个 1 位值。在子系统再次启动时,根据我的处理,这些 1 位值将被保留或被新值覆盖。出于保密原因,我不能比我已经拥有的更深入。

到目前为止我的方法

附件是执行此内存读/写的子系统部分的 SIMULINK 图。我相信这会奏效。但是,我并不完全确定。有人能想到更好的方法吗?我知道一个明显的答案是说“尝试从工作区保存和加载”,但我有一个只允许从 Flash/E2PROM 加载的规范。不幸的是,我不知道 SIMULINK 中有什么可以做到这一点。如果有人知道不同的东西,我很高兴能接受充分的教育:)

在此处输入图像描述

谢谢。

4

1 回答 1

1

你基本上需要一个记忆。可能有多种方法可以做到这一点。

  1. 延迟是一种记忆。您可以为启动值设置其初始条件。您可以将延迟放在启用的子系统中以写入新值,也可以使用多路复用器从延迟输出写入新值或先前值。
  2. 您可以使用 MATLAB Function 模块并在其中声明一个持久变量。您可以在检查“is empty(persistent_var_name)”中对其进行初始化,然后对其进行读取或写入。

另一种方法是原始问题如何使用“数据存储”实现它。

于 2013-08-01T17:15:27.217 回答