バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
今回からPythonからFMUを制御する話に突入。
たぶん前回までのFMILibraryの知識も無駄にはならない。
(環境の依存関係にFMILibraryが居たり、Python経由であってもFMILibraryの仕様が見え隠れと思う)
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
PythonからFMU制御

今回からPythonによるFMU制御環境に突入だね。

そうだね。
心機一転!
ってほどではないが、少し切り替えていこう。

で、PythonからのFMUの制御って具体的にどうやるの?

まぁそういうPythhonライブラリがあるってだけだねー。

ほう?
それはどんなライブラリ?
PyFMI

その名は「PyFMI」!!!!

すごい!!
そのまんまで何のひねりも無い!!!

でも、それを使えば簡単にPythonからFMUを制御できるってことか。

そうだね。

ざっくりPyFMIを説明するとどんな感じになるの?
PyFMIのざっくり説明

まぁPyFMIの公式サイトの情報を元に若干調査して情報保管した程度だが。
PyFMI公式
- PyFMIは、FMUと対話するためのPythonインターフェースを提供。
- FMUモデルのロード、モデルパラメーターの設定、モデル方程式の評価が可能。
- ※ 内部でFMI Libraryを使用しているようで、FMILibrary利用時にやったことは基本的にはできる。
- FMUモデルのロード、モデルパラメーターの設定、モデル方程式の評価が可能。
- PyFMIは、スタンドアロンパッケージかJModelica.orgディストリビューションの一部として利用可能。
- PyFMIから呼び出すAssimuloパッケージは産業グレードのシミュレーションが可能。
- ※ Assimuloはsolver
- PyFMIから呼び出すAssimuloパッケージは産業グレードのシミュレーションが可能。
- JModelicaはmodelon AB社(スウェーデン?)の商用且つオープンソースのModelicaPlatform。
- ※ 2019年にClosed Sourceに移行。
- FMILibraryも開発元はmodelon AB社。

ほう。
内部でFMILibraryを使ってるのか。

solverってなんだっけ?

ODE solvreこと常微分方程式(ODE:Ordinary Differential Equation)の解法のことだな。

そういや以前やったっけ。

まぁPyFMIはJModelicaってツールの一部でmodelon AB社が作ったものってのはわかった。

とりあえずはその程度の認識でOKだろう。
まとめ

まとめだよ。
- PythonからFMUを制御するPyFMIの紹介。
- 内部でFMILibraryを使用している。
- JModelicaの一部。
- JModelicaはmodelon AB社のModelicaPlatform。
- 2019年にClosed Sourceに移行。
- FMILibraryも開発元はmodelon AB社。
- JModelicaはmodelon AB社のModelicaPlatform。
バックナンバーはこちら。
コメント