【FMU】最小構成のMBD事例 第2章 その72【FMILibrary㉙】

【FMU】最小構成のMBD事例 第2章 その72【FMILibrary㉙】 事例
【FMU】最小構成のMBD事例 第2章 その72【FMILibrary㉙】

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

はじめに

FMILibrary経由のパラメータ名文字列からFMUの制御までのソースコードを作成。
後半は以前やったvalueReferenceを元にパラメータ制御をしたものと同一。
要はvalueReferenceさえなんとかしてしまえば、あとはどうとでもなる。

というわけで、今回は実際の実験用ソースコードの実際の動作を確認。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

実験用ソースコードの実際の動作

太郎くん
太郎くん

じゃ、早速動作させるよー。

HIGHT:valueReference is 0
HIGHT_SPEED:valueReference is 1
GRAVITY:valueReference is 2
BOUNCE_COF:valueReference is 3
Initial Parameters.
vr:0,iniTmp is 1.000000
vr:1,iniTmp is 4.000000
vr:2,iniTmp is -9.810000
vr:3,iniTmp is 0.500000
Modified parameters.
vr:0,iniTmp is 5.000000
vr:1,iniTmp is 4.000000
vr:2,iniTmp is -9.810000
vr:3,iniTmp is 0.500000
module = FMICAPI, log level = VERBOSE: Calling fmi2ExitInitializationMode
Ball height Ball speed
   5.35585      3.019
   5.61361      2.038
   5.77326      1.057
   5.83482      0.076
   5.79827     -0.905
   5.66363     -1.886
   5.43088     -2.867
   5.10004     -3.848
    4.6711     -4.829
   4.14405      -5.81
   3.51891     -6.791
   2.79566     -7.772
   1.97432     -8.753
   1.05487     -9.734
  0.037325    -10.715
  0.451273    4.52365
  0.859494    3.54265
   1.16961    2.56165
   1.38163    1.58065
   1.49555    0.59965

実験用ソースコード動作解説

太郎くん
太郎くん

これはバッチリなんじゃない?

フクさん
フクさん

そうだね。
valueReferenceも取れてるし、
今回はボールの初期高さを5[m]に変えるようにしたんだけど、
それもシミュレーションに反映されてる。
OKだね。
一応、グラフも貼っておこう。

fmi2_import_cs_test実行結果、パラメータ名文字列指定ver、BouncingBall2_cs、Ball height、Ball speed、100ms周期

ちょっと感想

太郎くん
太郎くん

結構外部からいろいろ弄れてるからシミュレーションパターンも変えられるし結構よさそうだよね。

フクさん
フクさん

そうだね。
内部の細かいアルゴリズムは変えられないが、
まぁそもそものユースケースがサプライヤの部品を完成車メーカで簡単にシミュレーションしたい。
ってところだからパラメータ変更程度はあってもアルゴリズムの変更まではやらないだろうしね。

太郎くん
太郎くん

なるほど。
うまく役割分担を意識したような仕様って感じか。

今後の方針

太郎くん
太郎くん

で、今後はどうするの?
以前ちょっと話出てたけど、他のFMUを試すとか?

フクさん
フクさん

そうだね。
OpenModelicaがFMUのexport機能をもってるからね。
これをうまく活用できないかってところだねー。

太郎くん
太郎くん

おー。
なんか本格的になってきた感じがする。

フクさん
フクさん

具体的な方針については次回説明しよう。
まぁホントにうまくいくかは当然やってみないとわからないけどねー。

ソースコードについて

フクさん
フクさん

一応、今回最終的に使用したソースコードはGitHubで公開している。
興味のある人は落としてみてもよいだろう。

まとめ

フクさん
フクさん

まとめだよ。

  • パラメータ名文字列からFMUの制御までを動作確認。
    • valueReferenceの取得OK。
    • その後のvalueReferenceを使用したパラメータ変更も当然OK。
  • 今後の予定としては、OpenModelicaがexportしたFMUを使っていろいろやっていこうと画策している。
    • ぶっちゃけると手探り状態。

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

コメント

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