首页 文章

Matlab simulink模型虚线

提问于
浏览
1

对于学校项目,我需要创建一个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 回答

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

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

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

    enter image description here

    Merge块通过最后更新的输入,该输入将对应于已执行的最后一个If-Action子系统,而后者又是相应的true If条件 .

相关问题