バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回は、FMU/FMIのシミュレーション方式とSolverの位置づけについて図解。
MEことModel Exchange方式はプラットフォーム側で微分方程式を解決させる方式であり、
これにより、「テイラーn次相当の精度」に調整できるので、
実際のECUの精度に合わせたり、精度とシミュレーション速度のトレードオフのようなことができる。
対して、CEことCo-Simulation方式は内部で微分方程式を解決しているので、
繋ぐだけで動作するというお手軽さが秀逸。
MATLAB/SimulinkのS-Functionと同等なので、実際のはCEの方が使われるシーンは多いかも。
今回からFMU/FMIのもうちょっと踏み込んだ仕様の話となる。
(実は、FMUってzipで圧縮されたもので・・・。)
登場人物
博識フクロウのフクさん

イラスト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
FMU/FMIの仕様を知らないといけないのか?

今回からFMU/FMIの仕様の話ってことだったけど・・・。

そうだね。
その予定だ。

知る必要ってあるのかなー。

と言うと?

利用する側からすると内部仕様って知らなくても良いと思うんだよね。
例えば、WindowsってOSの内部仕様を知るより利用方法を知る方が重要だったりするじゃん。

なるほど。
その意見はごもっとも。

ただ、この手の仕様って利用する側の情報自体が少ないからねー。
情報が多ければ、HowTo的なアプローチでもいいんだけど、
それが通じにくい領域なんで内部仕様から攻める必要がある。
って感じだ。

私も本来であれば「仕様を知らずに利用できる」のが理想形とは思ってるんだよね。
でもここら辺の仕様ってあんまり人に優しくないので
利用するために仕様を知っていないと利用できない。
という謎現状が発生する。

うーん、利用するための切っ掛けがない。または恐ろしく少ないってところかー。

そうだね。
現状だとググっても利用するところまでたどり着けないんじゃないかなー?

むむむ。
ならば仕様から攻めるしかないのか。
どういう方針で仕様を見て行くのか?

そうなると、仕様書とにらめっこしながらって話になるのかな・・・。

仕様書はここで入手できるが・・・。

仕様書は必要になった時に読むってことで、
今回はFMU自体の中身を見て行く。

え?
中身?

もしかしてバイナリエディタでちまちま見て行くんじゃ・・・。

たしかFMUってMATLAB/SimulinkのMEXみたいな奴なんだよね?
MEXって確かWindowsだとDLLそのものだったような・・・。
FMUの構造について

あー、FMUの中にDLLもあるんだけど、
実はそれ以外の定義ファイルとかフォルダ構成ってのもあるんだよね。

フォルダ構成?
FMUって一個のファイルじゃないの?

FMU自体は一個のファイルだね。
ただ、特定のファイル&フォルダ構成をzipで1ファイルに圧縮しているんだよ。

ほう。
そういう作りなのか。

なので、拡張子をzipにすると解凍できる。
ここらへんはMicrosoftのOffice製品と雰囲気似てるかもねー。

なるほど。
それを一個一個見て行くって方針なのか。

たぶん、現物を見ながらの方が分かり易いよね。

それは違いない!
まとめ

まとめだよ。
- FMU/FMIはあまり一般的に知られているものではないので利用方法の情報が皆無。
- よって、仕様に踏み込まないと利用方法も見えない。
- 仕様書を読み込むのも大変なのでFMU自体の中身を見て行った方が理解としては楽そう。
- 実はFMUは特定のファイルとフォルダ構成をzip圧縮したもの。
- つまり解凍して中身を参照できる。
- 実はFMUは特定のファイルとフォルダ構成をzip圧縮したもの。
バックナンバーはこちら。
コメント