バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
マルチFMU制御を目指して以下の流れでやってく方針になった。
- DCモータモデルを分解して複数のFMUを作成。
- PyFMIでそれらをロード&シミュレーション。
- 上記の結果を元に改良点を考える。
何はともあれ、まずはDCモータモデルの分解を試みる。
登場人物
博識フクロウのフクさん

イラスト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
元にするDCモータモデルをどれにするか?

まずはDCモータモデルの分解だね。

以前、使ったものを使いまわせるといいのだけど、
どれがよいのかな?

いままでに使ったModelicaモデルとしては
- Ramp
- PID制御器
- DCモータ

の構成が一番部品数が多いね。

じゃー、それを使おう。
DCモータモデル

これが件のModelicaのDCモータモデル。


ここで使ってた奴だね。

単純に分解するとなると、
さっきの
- Ramp
- PID制御器
- DCモータ

の単位で分解になるのかな?

そうだね。
3つに分解できればとりあえずOKだろう。
こんな感じだ。


うん。
これだったら分解後の入出力も明確だからイメージし易いね。
念のため動作確認

一応、動作確認をしておこう。
どういう結果になれば想定通りかってのを把握しておく必要がある。

そうだね。
動いたは良いけど、これが正しい結果かわからないと、成功したの失敗したのかもわからないもんね。

こんな波形になる。


これと同じようになれば成功ってことだね。

あとは、これを別のModelicaモデルに分解して、それぞれをFMUへexportだな。
まとめ

まとめだよ。
- 元にするDCモータモデルは使いまわし。
- Ramp、PID制御器、DCモータの構成が一番部品が多い。
- モデルの分解もRamp、PID制御器、DCモータの単位でやってく予定。
- 念のため、OpenModelicaで現状の動作結果を取得しておく。
- PyFMIで統合したときの成功/失敗の判定用。
- 次はモデル分解。
バックナンバーはこちら。
コメント