1

Dymola で開発したモデルがあり、それを Java のモデルとインターフェースする必要があります。より正確には、各タイム ステップで、両方のモデルが他方に入力を提供します。

これまでのところ、次のことがわかりました。 - Dymola は C コードを生成/エクスポートできます。彼らは理解できない(これまでのところ)インターフェースを提供しますが、主なポイントは、エクスポートがVisual C ++専用であり、クロスプラットフォームである必要があるということです。- OpenModelica (OMC) は C コードを生成できますが、ライブラリとして使用できるかどうかわかりませんでした。

モデリカと Java モデルをインターフェースする方法について何かアドバイスがあれば、共有してください ;)

4

2 に答える 2

1

あなたの問題にはいくつかのアプローチがあります。私の頭の上からいくつかの選択肢を与えるには:

  • 共同シミュレーション。Dymola/OpenModelica はモデルを FMU としてエクスポートできるため、Java コードを FMU としてエクスポートしたり、Java でマスター アルゴリズムを記述したりできる場合は、それらを一緒にシミュレートできます。私の知る限り、どちらのツールで生成されたシミュレーション コードもライブラリとして使用するには、これが唯一の方法です。ただし、Dymolaについては間違っている可能性があります。
  • 時間イベント。sample(...) ... communicate() のとき。これには、両方のモデルが異なるタイム ステップと可変ステップ サイズ ソルバーを使用できるという利点があります。
    • 外部 C + JNI (Java Native Interface) を使用して、各イベントで Java 関数を呼び出す
    • ソケットに基づく同期+通信
于 2012-06-25T16:58:04.307 に答える
0

このJavaコードに数学的な側面があるのか​​、それとも値を計算する関数として使用する(またはシミュレーション中に特定の間隔で呼び出す)だけなのかは、説明からは明らかではありません。あなたが詳しく説明することができれば、それはここで本当に意味があることを理解するのに役立つかもしれません。

于 2012-06-28T19:17:57.750 に答える