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

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

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

はじめに

ついにFMILibraryによるmodelDescription.xml内の変数情報を列挙が成功。
ソートルールは「XMLファイルに記載されているオリジナルの順序」にしているので、
その通りになっているかも確認した。

と、思ったところで、
ソートルールって複数あったような・・・。

登場人物

博識フクロウのフクさん

指差しフクロウ

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

ソートルール

太郎くん
太郎くん

これで列挙はOKだね。

太郎くん
太郎くん

と思ったんだけど、
前回の最後でソートルールの話してたじゃん?

フクさん
フクさん

してたね。

太郎くん
太郎くん

ソートルールはここでやったから一応把握はしているんだけど・・・。

太郎くん
太郎くん

確かソートルールって複数あったよね?

0:XMLファイルに記載されているオリジナルの順序。
1:変数名でアルファベット順。
2:型/valueReferenceでソート。

フクさん
フクさん

あー。なるほど。
他のソートルールも試したいってことだね。

太郎くん
太郎くん

そうそう。

フクさん
フクさん

じゃー、サクっと確認だけしちゃおう。

「変数名でアルファベット順」でソート

==============================
Variable name: A variable
Description: Speed of the ball
VR: 100
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: BOUNCE_COF
Description: Bouncing coefficient
VR: 3
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: GRAVITY
Description: Gravity constant
VR: 2
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT
Description: Hight of the ball
VR: 0
Variability: continuous : 4
Causality: output : 3
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT_ACC
Description: Speed of the ball
VR: 4
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: HIGHT_SPEED
Description: Speed of the ball
VR: 1
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT_SPEED alias
Description: Speed of the ball
VR: 1
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: LOGGER_TEST
Description: The logger will print the value of this variable when it is set.
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: String : 3
==============================
Variable name: LOGGER_TEST_BOOLEAN
Description: This is only used to test logger replace function #b0#
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Boolean : 2
==============================
Variable name: LOGGER_TEST_DERIVATIVE
Description: This is to test that the derivative attribute may appear on any Real variables.
VR: 10
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: LOGGER_TEST_DERIVATIVE_DER
Description: This is to test that the derivative attribute may appear on any Real variables.
VR: 11
Variability: fixed : 1
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: LOGGER_TEST_INTEGER
Description: This is only used to test logger replace function #i0#
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Integer : 1

「型/valueReferenceでソート」の結果

==============================
Variable name: HIGHT
Description: Hight of the ball
VR: 0
Variability: continuous : 4
Causality: output : 3
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT_SPEED
Description: Speed of the ball
VR: 1
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT_SPEED alias
Description: Speed of the ball
VR: 1
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: GRAVITY
Description: Gravity constant
VR: 2
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: BOUNCE_COF
Description: Bouncing coefficient
VR: 3
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: HIGHT_ACC
Description: Speed of the ball
VR: 4
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: LOGGER_TEST_DERIVATIVE
Description: This is to test that the derivative attribute may appear on any Real variables.
VR: 10
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: LOGGER_TEST_DERIVATIVE_DER
Description: This is to test that the derivative attribute may appear on any Real variables.
VR: 11
Variability: fixed : 1
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: A variable
Description: Speed of the ball
VR: 100
Variability: continuous : 4
Causality: local : 4
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: LOGGER_TEST_INTEGER
Description: This is only used to test logger replace function #i0#
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Integer : 1
==============================
Variable name: LOGGER_TEST_BOOLEAN
Description: This is only used to test logger replace function #b0#
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Boolean : 2
==============================
Variable name: LOGGER_TEST
Description: The logger will print the value of this variable when it is set.
VR: 0
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: String : 3
==============================

結果確認

太郎くん
太郎くん

両方とも狙った通りのソートが出来てる感じだねー。

フクさん
フクさん

まぁ実際はここでソートするより、
内部でデータ構造作って管理しそうだから、あんまり切り替えて使うってのはないかもねー。

太郎くん
太郎くん

そんな身も蓋も無いことを・・・。

フクさん
フクさん

あとは、可能性の話になるが、
PCではなく、組み込み環境でFMUを読み出す際は有効な機能かも。

太郎くん
太郎くん

PC以外でFMUを使うってあるの?

フクさん
フクさん

HILSやRAPIDコントローラの環境とか。

といっても、Linuxなり、それなりのOSが載ってることが多いから、
やっぱりあんまり出番はないかなー。

太郎くん
太郎くん

結局無いんかい!

フクさん
フクさん

まぁ使うかどうかより一通り機能が確認できたってところを重視しよう。

太郎くん
太郎くん

確かに、使わないにしても試してない機能があると不安にはなるもんねぇ。

まとめ

フクさん
フクさん

まとめだよ。

  • 変数リストのソートルールが複数あることを思い出した。
  • よって、他のソートルールも試した。
  • それぞれ想定通りの動作になっていることを確認。
  • ソートの変更は現実的にはあまり出番は無さそう。
    • HILS、RAPIDコントローラで使うかもしれないが、それらもそこそこの性能があるのでやはり使わない?

コメント

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