Matlab simulink模型虚线

时间:2014-01-19 00:15:49

标签: matlab simulink

对于学校项目,我需要创建一个Simulink模型来模拟我原型的行为。

我制作了以下模型(尚未完成),但是,我是Matlab和Simulink的新手,还有一些我不理解的东西:

  • 为什么if / elseif / else信号表示为虚线而不是实线?这是什么意思?
  • 似乎所有三个if / elseif / else语句都被执行了。我在命令窗口中收到此类警告: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
  • 范围始终显示0,而应显示250。

型号:http://pastebin.com/sMrKn2C2

谢谢。

1 个答案:

答案 0 :(得分:4)

  • 实线表示信号/数据流;点划线表示 Action 信号(控制其他块的执行)。不同的类型只是为了帮助读者更快地了解模型中发生的事情,而不是所有线条都是实体的情况。

  • 只执行一个If-Action子系统。 (在你的情况下,这是第一个)。但是,执行所有三个数据存储写入块。 If-Action子系统是有条件地执行的,因此仅在其适当的If条件为真时执行。然而,他们之外的所有东西都会在每个时间步执行因此,第一个数据存储写入写入250,但是第二个被第二个写入覆盖0,第三个也被0覆盖。您收到的警告只是告诉您多个块在每个时间步都写入同一个内存存储区。通常这是件坏事。

  • 要解决上述问题,并因此要将正确的输出写入数据存储并在示波器中显示,请执行以下操作,
    enter image description here

Merge块传递最后一个更新的输入,该输入将对应于最后执行的If-Action子系统,而后者又是相应的真If条件。