バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回でFMILibraryの使用方法はおおよそ確認した状態となる。
しかし、使用したFMUはFMILibraryのサンプルとしてあったシンプルなものであった。
OpenModelicaにFMU export機能がある。
これで作成したFMUをFMILibraryで制御してみたい。
登場人物
博識フクロウのフクさん
イラスト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
今後の方針
今後の方針としては、
「OpenModelicaで作ったFMUをFMILibraryで制御する」
ってことでいいのかな?
まぁ大雑把に言うとそうなるね。
となると何を用意していけばいいんだ?
とりあえず、以下のプランを考えている。
- OpenModelicaで使用するモデルを確定
- OpenModelicaで使用するモデルの挙動確認
- FMILibraryでの利用を想定してモデルの一部を修正
- FMU出力
- FMILibraryでFMU読み込み確認
- FMILibraryでFMU内パラメータの確認
- FMILibraryでFMU内パラメータの取得
- FMILibraryでFMU内パラメータの変更
使用するモデル
使用するモデルはどうするの?
また何か作る?
以前、動作確認したDCモータモデルでいいんじゃないかな?
あー、そういえばここでやったのがあったね。
そうそう。
これをベースに使おう。
じゃー、これはもう挙動は見てるから
挙動確認も済ってことで良いかな。
いや、ちょっと構成変えるんで、
挙動確認はいるかな?
(なんで、構成変えて仕事増やすの?老●なの?)
構成変更理由
以前、確認したDCモータモデルは
DCモータに電圧を印加するだけのモデルだったと思う。
確かこんな構成だったかな。
そして、挙動はこんなんだった。
RampとsignalVoltageの間にPID制御器を置いて、
もうちょっと制御してるふぅな感じにする。
あー、そっか。
オープンループ制御からクローズループ制御に変えたいってことかー。
うん。
今後の実験を考えて今のうちにクローズループ制御のモデルを作っておきたいって感じだ。
(ということはまだまだこのシリーズ続くってことなのか・・・。)
まとめ
まとめだよ。
- 「OpenModelicaで作ったFMUをFMILibraryで制御する」のプランを提示。
- モデルは以前扱ったDCモータモデルとする。
- Rampをそのまま電圧としてDCモータに印加するモデル。
- ただし、そのまま使わずPID制御を追加してみる。
- オープンループ制御からクローズループ制御のモデルに変更。
バックナンバーはこちら。
コメント