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

标签 matlab simulink

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

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

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

最佳答案

MATLAB(+ 工具箱 + Simulink)本质上是一个单线程应用程序,因此没有简单的方法来完成您想要的操作。 (近年来,一些底层数学库已经成为多线程的,但这并没有改变高层的情况)。

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

  • 有 2 个 session 正在运行;一台运行 MATLAB,一台运行 Simulink,两者之间有适当的通信 channel
  • 将 MATLAB 代码合并到 Simulink S-Function 中,并让它在每次 Simulink 采取时间步时执行其任务。

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

关于matlab - 如何同时运行simulink仿真和matlab脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17132847/

相关文章:

python - 从 Simulink 模型获取模型拓扑

string - matlab中字符串的最大大小

matlab - 旋转 MATLAB 的极坐标图?

matlab - 在 matlab 中生成 3D 均匀网格

c - Wine 可以与 Simulink Real-Time C API 一起使用吗?

java - 通过UDP数据包从matlab发送double到java

C 函数和 NaN

基于 Linux/Debian 的应用程序无法编译

class - 基本matlab类方法

python - 使用 TCP/IP block 从 Raspberry pi 读取数据