1

我有一个用 Dymola 开发的模型,我必须将它与 Java 中的模型连接起来。更准确地说,在每个时间步,两个模型都为对方提供输入。

到目前为止,我发现: - Dymola 能够生成/导出 C 代码。它们提供了一个难以理解的(到目前为止)界面,但要点是导出仅适用于 Visual C++,我需要跨平台。- OpenModelica (OMC) 可以生成 C 代码,但我没有发现它是否可以用作库。

如果您对如何连接 modelica 和 Java 模型有任何建议,请分享;)

4

2 回答 2

1

有几种方法可以解决您的问题。让我想到一些替代方案:

  • 协同仿真。Dymola/OpenModelica 可以将模型导出为 FMU,因此如果您可以将 Java 代码导出为 FMU 或用 Java 编写主算法,则可以一起模拟它们。据我所知,这是将任一工具生成的仿真代码用作库的唯一方法。不过,我对 Dymola 的看法可能是错误的。
  • 时间事件。当样本(...)...通信()。这样做的好处是两个模型都可以使用不同的时间步长和可变步长求解器。
    • 使用外部 C + JNI (Java Native Interface) 在每个事件中调用一些 Java 函数
    • 基于套接字的同步+通信
于 2012-06-25T16:58:04.307 回答
0

从您的描述中不清楚此 Java 代码是否具有一些数学方面,或者您只是想将其用作计算值的函数(或在模拟期间以特定间隔调用它)。如果你能详细说明,它可以帮助你弄清楚这里真正有意义的地方。

于 2012-06-28T19:17:57.750 回答