【PyFMI】最小構成のMBD事例 第2章 その106【ダミーFMU⑧】

【PyFMI】最小構成のMBD事例 第2章 その106【ダミーFMU⑧】 事例
【PyFMI】最小構成のMBD事例 第2章 その106【ダミーFMU⑧】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回、ダミーFMUの実験ソースコードを書き起こした。
マルチFMUの時のコードをベースにしているので以下の修正を入れた程度。

  • FMUModelCS2の一部をDummy_FMUModelCS2。
  • do_stepをdo_dummyで上書き。
  • 時刻同期ができてるかを確認できるよう一部printを入れている。

これを実際に動作さえてみて挙動を確認する。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

ダミーFMU実験の動作確認

太郎くん
太郎くん

準備はできたからさっそく動作させるよー。

real=0.100001,sim=0.100000
real=0.200001,sim=0.200000
real=0.300001,sim=0.300000
real=0.400349,sim=0.400000
real=0.500002,sim=0.500000
real=0.600001,sim=0.600000
real=0.700002,sim=0.700000
real=0.800001,sim=0.800000
real=0.900001,sim=0.900000
real=1.000001,sim=1.000000
real=1.100001,sim=1.100000
real=1.200001,sim=1.200000
real=1.300001,sim=1.300000
real=1.400001,sim=1.400000
real=1.500001,sim=1.500000
real=1.600001,sim=1.600000
real=1.700001,sim=1.700000
real=1.800003,sim=1.800000
real=1.900001,sim=1.900000
Master Algorithm options:
 Algorithm             : Jacobi (fixed-step)
  Execution            : Serial
 Extrapolation Order   : 0
 Step-size             : 0.001
 Algebraic loop        : True
  Linear Correction    : False

Statistics:
 Number of global steps        : 2000

Simulation interval      : 0.0 - 2.0 seconds.
Elapsed simulation time  : 1.9825845999999991 seconds.
 0.017346 seconds spent in PID.
 0.018027 seconds spent in Motor.
 1.306145 seconds spent in Dummy.
 0.270333 seconds spent saving simulation result.

結果確認

太郎くん
太郎くん

シミュレーション時間と実時間の同期はうまく行ったのでは?

フクさん
フクさん

そうだね。
若干\(3ms\)ほどズレるタイミングもあるようだが、
おおよそOKと言えるだろう。

太郎くん
太郎くん

あとはシミュレーション波形がこっち。

ダミーFMU、モータ電流、指令値、角速度、制御電圧、負荷トルク、voltage、current、speed、loadtorqueStep、target
太郎くん
太郎くん

うん。
ちゃんと狙った通り、Ramp Up、Ramp Downして台形状の指令値になってるね。

フクさん
フクさん

これでstep毎の出力制御もダミーFMUでできることがわかった。

太郎くん
太郎くん

これはいろいろ実験ができそうでよいねー。

フクさん
フクさん

そうだね。
簡単なアルゴリズムをPythonで作って試すってことができるから、
ちょっとした実験がお手軽にできそうだ。

まとめ

フクさん
フクさん

まとめだよ。

  • ダミーFMU実験の動作確認。
    • タイミングによっては若干ズレるがシミュレーション時間と実時間の同期はOK。
  • シミュレーション波形確認。
    • Ramp Up、Ramp Downの台形状の波形が出ており、期待通りの指令値になっている。
  • 上記によりダミーFMUによる実験がし易くなる。
    • 簡単なアルゴリズムであればPythonで実施。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました