【FMU】最小構成のMBD事例 第2章 その61【FMILibrary⑱】

【FMU】最小構成のMBD事例 第2章 その61【FMILibrary⑱】 事例
【FMU】最小構成のMBD事例 第2章 その61【FMILibrary⑱】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

FMILibrary経由でFMUの内部パラメータの変更と
その後シミュレーションの確認が取れた。
valueReferenceを把握していれば、パラメータに関してはかなり自由に調整できそうである。

しかし、逆に言うと、modelDescription.xmlに記載されてるvalueReferenceを目視しないと調整できないとも言える。
ここらへんがなんとかならないだろうか?

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

パラメータ名とvalueReferenceの紐づけは可能か?

太郎くん
太郎くん

うーん・・・。

フクさん
フクさん

どうしたん?

太郎くん
太郎くん

いやー、前回でFMUの内部パラメータを調整できるのはわかったんだけど、
valueReferenceに関してはmodelDescription.xmlを目視して確認したわけじゃん?

フクさん
フクさん

そうだね。

太郎くん
太郎くん

もう少しスマートな方法ってないのかなーって。

太郎くん
太郎くん

ツール的な使い方を想定すると、パラメータ名が出て、パラメータを指定するとそれが調整できるようなイメージ。

フクさん
フクさん

つまり、パラメータ名とvalueReferenceを先に紐づけたいってことだね?

太郎くん
太郎くん

そうそう。

太郎くん
太郎くん

そういうことってできないのかな?

フクさん
フクさん

できるよ。

太郎くん
太郎くん

ほう!
じゃーその方法をサクっと教えてもらえると!

valueReferenceの確認方法

フクさん
フクさん

一応、FMILibraryでmodelDescription.xmlの内部情報を構造的に抱えてはいるんだよね。

太郎くん
太郎くん

ということはAPI呼び出しでサクっと解決パターン?

フクさん
フクさん

まぁ直接valueReferenceを取得できるって感じではなかったかな?

フクさん
フクさん

まずは、modelDescription.xmlの内容を列挙する方法から行ってみよう。

太郎くん
太郎くん

「modelDescription.xmlの内容を列挙」ってのができるんだ。
それが出来れば結果的にvalueReferenceも分かりそう。

「modelDescription.xmlの内容を列挙」までの流れ。

フクさん
フクさん

まず大まかな流れを説明しよう。

太郎くん
太郎くん

よろしくー。

フクさん
フクさん

以下の流れになる。

  • fmi2_import_parse_xmlによるモデル記述オブジェクトの取得
  • fmi2_import_get_variable_listによる変数リストの取得
  • fmi2_import_get_variable_list_sizeによる変数リスト数の取得
  • fmi2_import_get_variableによる変数オブジェクトの取得
  • fmi2_import_get_variable_vrによるvalueReferenceの取得
  • fmi2_import_get_variable_nameによる変数名の取得
  • fmi2_import_get_variable_description、fmi2_import_get_variability、fmi2_import_get_causality、fmi2_import_get_initialによる各種詳細情報の取得
太郎くん
太郎くん

結構手順多いねー。

フクさん
フクさん

と言っても、複雑な分岐があるわけじゃないからソースコードとしてはシンプルになると思うよ。

まとめ

フクさん
フクさん

まとめだよ。

  • FMUはパラメータ名とvalueReferenceの紐づけが出来た方が運用し易い。
  • FMILibraryはmodelDescription.xmlの内部情報を構造的に抱えている。
    • よって、APIで各種情報を取得可能。
  • 「modelDescription.xmlの内容を列挙」までの流れを確認。
    • 手順は多いが、流れはシンプル。

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

コメント

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