【FMU】最小構成のMBD事例 第2章 その38【FMI⑨】

【FMU】最小構成のMBD事例 第2章 その38【FMI⑨】 事例

バックナンバーはこちら。
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を解凍した後の中身はこんな感じのはずだ。

FMU解凍、必須ではないが、ソースコードを内包することも有る。実処理をするライブラリを内包、Input/output/内部パラメータが定義されている。これを使用してインターフェースが定義される、binaries、resources、sources、modelDescription.xml、Motor.log、Motor.dll、Motor.lib、Motor_FMU.libs
太郎くん
太郎くん

そうそう。
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、内部パラメータが定義されている。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました