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

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

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

はじめに

FMILibraryサンプルプロジェクトfmi2_import_cs_testの起動時の引数を確認。
ついでに使用するサンプル用のFMUも特定。

今回は実際に動かしてみる。

いろいろごちゃごちゃっと出てくるが・・・。
まぁ重要なところは一部の・・・はず。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

fmi2_import_cs_testの起動時パラメータ

太郎くん
太郎くん

fmi2_import_cs_testの使い方もわかったことだし、
実際に動かしてみよう。

フクさん
フクさん

引数とかは大丈夫?

太郎くん
太郎くん

FMUとテンポラリディレクトリのPathを渡すだけだらからたぶん大丈夫。

太郎くん
太郎くん

とりあえず、

FMU:..\Testing\BouncingBall2_cs.fmu
テンポラリ:.\

って感じでやってみる。

fmi2_import_cs_test実行

太郎くん
太郎くん

よし!
実行だ!

C:\FMILibrary-2.0.3\build-fmi\MinSizeRel>fmi2_import_cs_test.exe ..\Testing\BouncingBall2_cs.fmu .\
argv[0] = fmi2_import_cs_test.exe
argv[1] = ..\Testing\BouncingBall2_cs.fmu
argv[2] = .\
module = FMILIB, log level = VERBOSE: Allocating FMIL context
module = FMILIB, log level = VERBOSE: Detecting FMI standard version
module = FMIZIP, log level = VERBOSE: Unpacking FMU into .\
module = FMIXML, log level = VERBOSE: Parsing XML to detect FMI standard version
module = FMIXML, log level = VERBOSE: XML specifies FMI 2.0
module = FMILIB, log level = INFO: XML specifies FMI standard version 2.0
module = FMILIB, log level = VERBOSE: Parsing model description XML
module = FMI2XML, log level = VERBOSE: Parsing XML element fmiModelDescription
module = FMI2XML, log level = VERBOSE: Parsing XML element CoSimulation
module = FMI2XML, log level = VERBOSE: Parsing XML element ModelVariables
module = FMI2XML, log level = VERBOSE: Building alias index
module = FMI2XML, log level = VERBOSE: Variables HIGHT_SPEED and HIGHT_SPEED alias reference the same vr 1. Marking 'HIGHT_SPEED alias' as alias.
module = FMI2XML, log level = VERBOSE: Parsing XML element ModelStructure
module = FMILIB, log level = VERBOSE: Parsing finished successfully
module = FMILIB, log level = INFO: Loading 'win64' binary with 'default' platform types
module = FMICAPI, log level = VERBOSE: Loaded FMU binary from .\\binaries\win64\BouncingBall2.dll
module = FMICAPI, log level = VERBOSE: Loading functions for the co-simulation interface
module = FMILIB, log level = VERBOSE: Successfully loaded all the interface functions
Version returned from FMU:   2.0
module = FMICAPI, log level = VERBOSE: Calling fmi2GetModelTypesPlatform
Platform type returned:      default
GUID:      123
module = FMICAPI, log level = VERBOSE: Calling fmi2SetupExperiment
module = FMICAPI, log level = VERBOSE: Calling fmi2EnterInitializationMode
module = Test CS model instance, log level = INFO: [INFO][FMU status:OK] ### Initializing component ###
module = Test CS model instance, log level = INFO: [INFO][FMU status:OK] Init HIGHT=1
module = Test CS model instance, log level = INFO: [INFO][FMU status:OK] Init HIGHT_SPEED=4
module = Test CS model instance, log level = INFO: [INFO][FMU status:OK] Init GRAVITY=-9.81
module = Test CS model instance, log level = INFO: [INFO][FMU status:OK] Init BOUNCE_COF=0.5
module = FMICAPI, log level = VERBOSE: Calling fmi2ExitInitializationMode
Ball height Ball speed
   1.35586      3.019
   1.61361      2.038
   1.77326      1.057
   1.83482      0.076
   1.79827     -0.905
   1.66363     -1.886
   1.43089     -2.867
   1.10004     -3.848
  0.671095     -4.829
   0.14405      -5.81
  0.193049    2.36545
  0.385449    1.38445
  0.479749    0.40345
  0.475949   -0.57755
  0.374049   -1.55855
  0.174049   -2.53955
 0.0454508    1.31883
  0.133188   0.337825
  0.122826  -0.643175
 0.0143633   -1.62417
Simulation finished. Checking results
module = FMILIB, log level = VERBOSE: Releasing FMU CAPI interface
module = FMICAPI, log level = VERBOSE: Successfully unloaded FMU binary
module = FMILIB, log level = VERBOSE: Releasing allocated library resources
Everything seems to be OK since you got this far=)!
Press 'Enter' to exit

fmi2_import_cs_test実行結果確認

太郎くん
太郎くん

なんか、一気になんか表示された・・・。

フクさん
フクさん

うん。
どうやらうまく動いてるみたいだね。

太郎くん
太郎くん

ここからなぜうまく動いたとかわかるのか・・・。

フクさん
フクさん

まぁシミュレーション上で重要なのは
Ball height、Ball speed

その下に続いてる数値の方だな。
それ以外の「log level = VERBOSE」ってのはFMILibraryの内部のデバッグログだね。

太郎くん
太郎くん

で、
この数値は・・・。何?

フクさん
フクさん

次回、ここら辺をもう少し見やすくしてみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • fmi2_import_cs_testの起動時パラメータ確認。
    • FMUとテンポラリディレクトリのPathを設定。
  • 実行と結果を取得。
    • 「log level = VERBOSE」ってのはFMILibraryの内部のデバッグログ。
    • Ball height、Ball speedとその次に続いている数値がシミュレーション上重要。

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

コメント

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