对于学校项目,我需要创建一个Simulink模型来模拟我原型的行为。
我制作了以下模型(尚未完成),但是,我是Matlab和Simulink的新手,还有一些我不理解的东西:
Warning: The block 'BLOCK NAME' is writing to the data store 'BLOCK NAME' but the block(s) 'BLOCK NAME' have already written to a portion or the entire region of
this memory at time 0.0
型号:http://pastebin.com/sMrKn2C2
谢谢。
答案 0 :(得分:4)
实线表示信号/数据流;点划线表示 Action 信号(控制其他块的执行)。不同的类型只是为了帮助读者更快地了解模型中发生的事情,而不是所有线条都是实体的情况。
只执行一个If-Action子系统。 (在你的情况下,这是第一个)。但是,执行所有三个数据存储写入块。 If-Action子系统是有条件地执行的,因此仅在其适当的If条件为真时执行。然而,他们之外的所有东西都会在每个时间步执行因此,第一个数据存储写入写入250,但是第二个被第二个写入覆盖0,第三个也被0覆盖。您收到的警告只是告诉您多个块在每个时间步都写入同一个内存存储区。通常这是件坏事。
要解决上述问题,并因此要将正确的输出写入数据存储并在示波器中显示,请执行以下操作,
Merge块传递最后一个更新的输入,该输入将对应于最后执行的If-Action子系统,而后者又是相应的真If条件。