バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回まででFMI/FMUの仕様の大雑把なところを確認したところまで。
どうやら、C言語からFMU/FMIを制御する手法があるらしい。
というわけで、
今回からは、C言語からのFMU/FMI制御手法のついていろいろ調べたり試したりしていくこととなる。
登場人物
博識フクロウのフクさん

イラスト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
C言語からFMU/FMIを制御する手法

前回の最後の方の話だと、
「C言語からFMU/FMIを制御する手法がある」
らしいこと言ってたけど、どんな感じになるの?

単純にFMU/FMI制御用のライブラリが公開されてて、
それを使おうって程度だねー。

ほう。
その制御ライブラリの名前は?
FMILibrary

名前はそのまんまで「FMILibrary」

確かに何のひねりもないな・・・。

つまり、それをどっかから持ってきて、
それの使い方さえ分かってしまえばOKってことか。

まぁ普通はそう思うよねー。
FMILibraryの在り処

なんかあるの?
ヤバいことが・・・。

一応、Windows向けのFMILibraryはここで公開されてるのだが・・・。

なんだ、普通にあるんじゃん。

良く見ると、win32用しかない。
FMILibrary-1.0.1-src.zip
FMILibrary-1.0.1-win32.zip
FMILibrary-1.0-src.zip
FMILibrary-1.0-win32.zip
FMILibrary-2.0.1-src.zip
FMILibrary-2.0.1-win32.zip
FMILibrary-2.0.2b3-src.zip
FMILibrary-2.0.2b3-win32.zip
FMILibrary-2.0.2b4-src.zip
FMILibrary-2.0.2b4-win32.zip
FMILibrary-2.0.2-src.zip
FMILibrary-2.0.2-win32.zip
FMILibrary-2.0.3b1-src.zip
FMILibrary-2.0.3b1-win32.zip
FMILibrary-2.0.3-src.zip
FMILibrary-2.0.3-win32.zip
FMILibrary-2.0a1-src.zip
FMILibrary-2.0a1-win32.zip
FMILibrary-2.0a5-src.zip
FMILibrary-2.0a5-win32.zip
FMILibrary-2.0a6-src.zip
FMILibrary-2.0a6-win32.zip
FMILibrary-2.0b2-src.zip
FMILibrary-2.0b2-win32.zip
FMILibrary-2.0b3-src.zip
FMILibrary-2.0b3-win32.zip
FMILibrary-2.0-src.zip
FMILibrary-2.0-win32.zip
win32であることの問題点

でも、Windows64bitでも32bitプロセスで使えば・・・。

OpenModelicaから出力されるFMUってたぶん64bitなんだよねー。
まぁ32bit版のOpenModelicaをインストールし直せば32bit版のFMUを出力してくれるとは思うけど。

よし!
インストールし直そう!

でも、今後のFMUに対するアプローチを考えると64bitであることは維持したいんだよねー。

うーむ。

というわけで、
FMILibraryをソースコードからビルドして64bit版を作ってしまおうと思う。

まじか・・・。
だ、大丈夫なの?

わからん。
たぶん大丈夫なんじゃない?

ここでうまくビルドできなかったら?

諦めて32bit版のOpenModelicaをインストールし直すか。

まぁ失敗しても別案があるならいいのかな・・・。
まとめ

まとめだよ。
- C言語からFMU/FMIを制御するライブラリはFMILibrary
- Windows版のFMILibraryはあるにはあるが…。
- win32版のみ。
- 64bit版は自分でビルドする必要がある。
- OpenModelica64bit版のFMUは恐らく64bitビルド。
- FMILibrary 64bit版を用意することに。
バックナンバーはこちら。
コメント