事例 【FMIライブラリ】最小構成のMBD事例 第2章 その74【DCモータ②】 以前使ったDCモータモデルにPID制御器を付けた。PID制御器はModelicaライブラリに最初から存在。実際にはLimPID。パラメータはKp、Ki、KdではなくKp、Ti、Tdな点に注意。とりあえず、クローズループ(PID)制御のDCモータモデルが出来た。(つもり) 2021.08.19 事例
事例 【FMIライブラリ】最小構成のMBD事例 第2章 その73【DCモータ①】 「OpenModelicaで作ったFMUをFMILibraryで制御する」のプランを提示。モデルは以前扱ったDCモータモデルとする。Rampをそのまま電圧としてDCモータに印加するモデル。ただし、そのまま使わずPID制御を追加してみる。オープンループ制御からクローズループ制御のモデルに変更。 2021.08.18 事例
事例 【FMU】最小構成のMBD事例 第2章 その72【FMILibrary㉙】 パラメータ名文字列からFMUの制御までを動作確認。valueReferenceの取得OK。その後のvalueReferenceを使用したパラメータ変更も当然OK。今後の予定としては、OpenModelicaがexportしたFMUを使っていろいろやっていこうと画策している。ぶっちゃけると手探り状態。 2021.08.17 事例
事例 【FMU】最小構成のMBD事例 第2章 その71【FMILibrary㉘】 パラメータ名文字列を元にFMU内パラメータ変更の実験コード提示。変数オブジェクトを取得し、そこからvalueReference取得。valueReferenceが分かれば、FMU内パラメータは好き勝手できる。これにより今後、他のFMUを使う場合になっても比較的楽にパラメータアクセスができそう。 2021.08.16 事例
事例 【FMU】最小構成のMBD事例 第2章 その70【FMILibrary㉗】 「パラメータ名文字列から変数オブジェクト取得」のAPI確認。fmi2_import_get_variable_by_nameというAPI。パラメータ名文字列を渡せば、変数オブジェクトが返ってくる。修正箇所は恒例のイニシャルモード中。今後のことも考え複数のvalueReferenceを取得する予定。 2021.08.15 事例
事例 【FMU】最小構成のMBD事例 第2章 その69【FMILibrary㉖】 変数リストを取得する以外のvalueReference取得方法がある。パラメータ名文字列を指定してvalueReference取得したいが、直接それができるAPIは無い。パラメータ名文字列を元に変数オブジェクトを取得するAPIはある。変数オブジェクトが取得できれば、そこからvalueReferenceは取得できる。 2021.08.14 事例
事例 【FMU】最小構成のMBD事例 第2章 その68【FMILibrary㉕】 変数リストのソートルールが複数あることを思い出した。よって、他のソートルールも試した。それぞれ想定通りの動作になっていることを確認。ソートの変更は現実的にはあまり出番は無さそう。HILS、RAPIDコントローラで使うかもしれないが、それらもそこそこの性能があるのでやはり使わない? 2021.08.13 事例
事例 【FMU】最小構成のMBD事例 第2章 その67【FMILibrary㉔】 「modelDescription.xml内の変数情報を列挙」を実施。問題無く動作。modelDescription.xmlに記載されてる変数がすべて列挙されていることを確認。ソートルールは「XMLファイルに記載されているオリジナルの順序」こちらも想定通りの動作になっていることを確認。 2021.08.12 事例
事例 【FMU】最小構成のMBD事例 第2章 その66【FMILibrary㉓】 modelDescription.xml内部変数列挙の処理手順確認。コード追加箇所説明。fmi2_import_enter_initialization_modeとfmi2_import_exit_initialization_modeの間。コード提示。前回までに説明したAPI(文字列変換含む)を全部使用した。 2021.08.11 事例
事例 【FMU】最小構成のMBD事例 第2章 その65【FMILibrary㉒】 fmi2_import_get_variability、fmi2_import_get_causality、fmi2_import_get_initialと併用して使う便利APIが存在。上記関数戻り値のenumに準じて文字列を返してくれるAPI。中身はswich分で実現してるだけ。次回は実際にソースコード作成。 2021.08.10 事例