バックナンバーはこちら。
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制御を追加してみる。
- オープンループ制御からクローズループ制御のモデルに変更。
バックナンバーはこちら。
コメント