バックナンバーはこちら。
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で圧縮されたもので・・・。)
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
FMU/FMIの仕様を知らないといけないのか?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
今回からFMU/FMIの仕様の話ってことだったけど・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうだね。
その予定だ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
知る必要ってあるのかなー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/はてなフクロウ.png)
と言うと?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
利用する側からすると内部仕様って知らなくても良いと思うんだよね。
例えば、WindowsってOSの内部仕様を知るより利用方法を知る方が重要だったりするじゃん。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
なるほど。
その意見はごもっとも。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
ただ、この手の仕様って利用する側の情報自体が少ないからねー。
情報が多ければ、HowTo的なアプローチでもいいんだけど、
それが通じにくい領域なんで内部仕様から攻める必要がある。
って感じだ。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
私も本来であれば「仕様を知らずに利用できる」のが理想形とは思ってるんだよね。
でもここら辺の仕様ってあんまり人に優しくないので
利用するために仕様を知っていないと利用できない。
という謎現状が発生する。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
うーん、利用するための切っ掛けがない。または恐ろしく少ないってところかー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/考え中フクロウ.png)
そうだね。
現状だとググっても利用するところまでたどり着けないんじゃないかなー?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
むむむ。
ならば仕様から攻めるしかないのか。
どういう方針で仕様を見て行くのか?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
そうなると、仕様書とにらめっこしながらって話になるのかな・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
仕様書はここで入手できるが・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
仕様書は必要になった時に読むってことで、
今回はFMU自体の中身を見て行く。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
え?
中身?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」10アップ.png)
もしかしてバイナリエディタでちまちま見て行くんじゃ・・・。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」09アップ.png)
たしかFMUってMATLAB/SimulinkのMEXみたいな奴なんだよね?
MEXって確かWindowsだとDLLそのものだったような・・・。
FMUの構造について
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
あー、FMUの中にDLLもあるんだけど、
実はそれ以外の定義ファイルとかフォルダ構成ってのもあるんだよね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
フォルダ構成?
FMUって一個のファイルじゃないの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
FMU自体は一個のファイルだね。
ただ、特定のファイル&フォルダ構成をzipで1ファイルに圧縮しているんだよ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
ほう。
そういう作りなのか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
なので、拡張子をzipにすると解凍できる。
ここらへんはMicrosoftのOffice製品と雰囲気似てるかもねー。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
なるほど。
それを一個一個見て行くって方針なのか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
たぶん、現物を見ながらの方が分かり易いよね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
それは違いない!
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- FMU/FMIはあまり一般的に知られているものではないので利用方法の情報が皆無。
- よって、仕様に踏み込まないと利用方法も見えない。
- 仕様書を読み込むのも大変なのでFMU自体の中身を見て行った方が理解としては楽そう。
- 実はFMUは特定のファイルとフォルダ構成をzip圧縮したもの。
- つまり解凍して中身を参照できる。
- 実はFMUは特定のファイルとフォルダ構成をzip圧縮したもの。
バックナンバーはこちら。
コメント