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

时间:2013-06-16 11:32:44

标签: matlab simulink

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

  • 有2个会话正在运行;一个运行MATLAB,另一个运行Simulink,两个
  • 之间有适当的通信通道
  • 将您的MATLAB代码整合到Simulink S-Function中,并在每次Simulink采取时间步骤时执行其操作。

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