我正在尝试运行Simulink模型,同时在Matlab脚本中接收和处理数据,并将结果发送到Simulink以更改模型的行为 .
由于Matlab脚本应该继续接收和处理数据,我能想出的唯一方法是使用while(1)循环 . 但是,模拟似乎被while循环阻止了 . 运行脚本时,模拟时间停止 . 只要我按Ctrl C结束脚本,模拟就会继续 .
有没有办法同时运行simulink仿真和Matlab脚本(或函数),同时保持它们之间的交互?就像在不同的线程中执行它们一样 .
MATLAB(工具箱Simulink)基本上是一个单线程应用程序,所以没有简单的方法来做你想要的 . (近年来,一些基础数学库已变为多线程,但这并没有改变高级图片) .
您可以执行以下任一操作:
有2个会话正在运行;一个运行MATLAB,另一个运行Simulink,两者之间有适当的通信通道
将您的MATLAB代码合并到Simulink S-Function中,并在每次Simulink采取时间步骤时执行其操作 .
后者(可以说)是最简单的 .
1 回答
MATLAB(工具箱Simulink)基本上是一个单线程应用程序,所以没有简单的方法来做你想要的 . (近年来,一些基础数学库已变为多线程,但这并没有改变高级图片) .
您可以执行以下任一操作:
有2个会话正在运行;一个运行MATLAB,另一个运行Simulink,两者之间有适当的通信通道
将您的MATLAB代码合并到Simulink S-Function中,并在每次Simulink采取时间步骤时执行其操作 .
后者(可以说)是最简单的 .