モデルベース開発

事例

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

変数リストのソートルールが複数あることを思い出した。よって、他のソートルールも試した。それぞれ想定通りの動作になっていることを確認。ソートの変更は現実的にはあまり出番は無さそう。HILS、RAPIDコントローラで使うかもしれないが、それらもそこそこの性能があるのでやはり使わない?
事例

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

「modelDescription.xml内の変数情報を列挙」を実施。問題無く動作。modelDescription.xmlに記載されてる変数がすべて列挙されていることを確認。ソートルールは「XMLファイルに記載されているオリジナルの順序」こちらも想定通りの動作になっていることを確認。
事例

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

modelDescription.xml内部変数列挙の処理手順確認。コード追加箇所説明。fmi2_import_enter_initialization_modeとfmi2_import_exit_initialization_modeの間。コード提示。前回までに説明したAPI(文字列変換含む)を全部使用した。
事例

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

fmi2_import_get_variability、fmi2_import_get_causality、fmi2_import_get_initialと併用して使う便利APIが存在。上記関数戻り値のenumに準じて文字列を返してくれるAPI。中身はswich分で実現してるだけ。次回は実際にソースコード作成。
事例

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

valueReferenceの取得方法確認。変数オブジェクトを渡すと取得できる。変数名の取得。これも変数オブジェクトを渡すと取得できる。その他のdescription、variability、causality、initial。これも一緒で変数オブジェクトを渡して取得。
事例

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

「fmi2_import_get_variable_list_sizeによる変数リスト数の取得」の仕様確認。やってることはそのままでリストの要素数を取得。「fmi2_import_get_variableによる変数オブジェクトの取得」の仕様確認。変数オブジェクトは変数関連の情報にアクセスするハンドルのようなもの。
事例

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

fmi2_import_parse_xmlについては以前やったのでスルー。fmi2_import_get_variable_listはmodelDescription.xmlの情報取得の起点。ソートルールを切り替えられる。型/valueReferenceでソートがちょっと特殊。ベクトル的アクセスで使えそう。
事例

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

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

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

修正済みfmi2_import_cs_testを実行。パッと見変化がわからないので以前の実行結果と比較。明らかに初期のボールの高さは変わっている。グラフにして確認。初期のボールの高さが変わっているので、跳ね方も変わる。このように初期パラメータもFMILibrary経由で変更可能。
事例

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

修正コードができたので確認。内容の詳細説明。読み出すvalueReference群の定義。fmi2_import_get_realで一気に読み出し。ボールの初期の高さだけ変更。fmi2_import_set_realで一気に書き戻し。数値解析ツール由来のベクトルで一気に制御する方式になっている。