【发布时间】:2023-03-12 03:22:01
【问题描述】:
我正在尝试将 Matlab 与 Modelica 结合起来。
整个过程是:我有5000组数据,每组包含20个参数,对应我的Modelica模型。
- 这些数据集将由 Matlab 读取,然后发送到 Modelica。
- Modelica 将继续进行模拟并生成结果。
- 然后,Matlab 将从 Modelica 捕获结果。
但是,由于参数的值是随机生成的,因此在模拟过程中可能会出现错误(例如,温度超出边界、收敛错误等)。
如果发生错误,我考虑过“try-catch”来执行模拟。但是,我意识到如果 Modelica 存在错误,Matlab 会停止。 我想知道是否有办法在 Matlab 中继续“for 循环”以进入下一个输入数据集。
谢谢
【问题讨论】:
-
Modelica 是一种语言。您想与哪个 Modelica 工具进行交互?你想从 MATLAB 调用这个工具的 API 吗?或者您可以将 Modelica 模型从 Modelica 工具导出为 Functiona Mockup Unit (FMU),然后从 MATLAB 与 FMU 进行交互?
-
克里斯蒂安,我正在使用 Dymola。我可以从 Matlab 调用 Dymola。但是当 Dymola 出现错误时,程序停止了。谢谢
-
@Devon:您是否使用 DDE 接口进行通信(如 Dymola 手册 2 的“6.4 DDE 通信”中所述)?
-
@MarkusA.:是的,我是。当前的问题是 Matlab 已停止,因为它无法从 Dymola 读取结果。
-
您是否尝试使用“
\\Mfiles\dymtools”中的函数 dymget和dymload?