首页 文章

如何同时运行simulink仿真和matlab脚本

提问于
浏览
2

我正在尝试运行Simulink模型,同时在Matlab脚本中接收和处理数据,并将结果发送到Simulink以更改模型的行为 .

由于Matlab脚本应该继续接收和处理数据,我能想出的唯一方法是使用while(1)循环 . 但是,模拟似乎被while循环阻止了 . 运行脚本时,模拟时间停止 . 只要我按Ctrl C结束脚本,模拟就会继续 .

有没有办法同时运行simulink仿真和Matlab脚本(或函数),同时保持它们之间的交互?就像在不同的线程中执行它们一样 .

1 回答

  • 2

    MATLAB(工具箱Simulink)基本上是一个单线程应用程序,所以没有简单的方法来做你想要的 . (近年来,一些基础数学库已变为多线程,但这并没有改变高级图片) .

    您可以执行以下任一操作:

    • 有2个会话正在运行;一个运行MATLAB,另一个运行Simulink,两者之间有适当的通信通道

    • 将您的MATLAB代码合并到Simulink S-Function中,并在每次Simulink采取时间步骤时执行其操作 .

    后者(可以说)是最简单的 .

相关问题