バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回からFMU/FMIの仕様に踏み込んでいくこととなった。
ただし、実際のFMUの中身を見ながら追って行った方が楽そうである。
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を解凍してみる。
FMUってzip圧縮されてるものだから
解凍もできるんだよねー。
そうそう。
じゃー早速解凍!
拡張子をzipに変更して解凍
おー!
本当に解凍できた。
中身は・・・。
うーん、何個かのフォルダとxmlファイルが有る感じ?
あと、DLLとソースコードっぽいのがあるなー。
FMU解凍後のフォルダ構成
とりあえず、FMUを解凍した後の中身はこんな感じのはずだ。
そうそう。
binariesってフォルダのwin64ってフォルダがあって、
その中にライブラリっぽいのがいる。
sourcesにはその名の通りC言語で書かれたソースコードがあったよ。
win64ってフォルダはプラットフォーム(OS)名かな?
そうだね。
32bitOS用に作ったものだとwin32、
64bitLinux向けに作ったものだとlinux64ってフォルダができるはずだ。
今回のはwin64一個だけど、複数のプラットフォーム(OS)向けライブラリを抱え込めるはずだ。
ほー。
そこらへんは割とシンプルな考え方だねー。
んで、resourcesってフォルダと
modelDescription.xmlがちょっと何者かわからないなー。
resourcesフォルダ
resourcesフォルダは
依存関係のある追加ライブラリとか
アルゴリズム本体から呼ばれるテーブルデータなんかが格納されるね。
FMUの基本コンセプトは
FMU単体で必要な情報は全て内包。
ってことになるんで、
依存関係のあるファイル群はresourcesに入れて、
ライブラリ本体、この絵で言う所のMotor.dllから参照できる状態にする必要がある。
modelDescription.xml
あと、modelDescription.xmlは?
図解の方だと、input。output、内部パラメータが定義されてるってことになってるっぽいけど?
まさにその通り。
OpenModelica Connection Editorのプロット時に変数ブラウザってのがあったじゃん?
うん。
あった。
あれで参照できるものがmodelDescription.xmlで定義されてるってイメージだ。
具体的なことはわからんが、
イメージだけはわかった。
まぁ利用する際のFMUの位置づけとインターフェース、
特にmodelDescription.xmlについて次回、もうすこし掘り下げてみよう。
まとめ
まとめだよ。
- FMUをzipとして解凍してみた。
- 何個かのフォルダとxmlファイルがあった。
- binariesにプラットフォーム別のライブラリが格納。
- resourcesフォルダに依存関係があるファイル群を格納。
- modelDescription.xmlにinput。output、内部パラメータが定義されている。
バックナンバーはこちら。
コメント