【FMIライブラリ】最小構成のMBD事例 第2章 その78【DCモータ⑥】

【FMIライブラリ】最小構成のMBD事例 第2章 その78【DCモータ⑥】 事例
【FMIライブラリ】最小構成のMBD事例 第2章 その78【DCモータ⑥】

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

はじめに

OpenModelicaから無事FMUをexportできた。
念のためFMUを解凍し、modelDescription.xmlを確認。
追加したOutputブロックと同名のパラメータは存在しており、
valueReferenceが同値のパラメータも確認したところ、
同一信号線に繋がってるものであることも確認がとれ、期待されるモデルになっているようである。

今回は、FMILibraryで実際にexportした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

FMILibraryで実際にexportしたFMUを読み込んでみる

フクさん
フクさん

じゃー、とりあえず、FMILibraryでexportしたFMUを読み込んでみよう。
使用するのは変数リストを列挙するヤツだな。

太郎くん
太郎くん

あ、確かここで使ったヤツだね。

フクさん
フクさん

そうそう。

太郎くん
太郎くん

じゃー、FMUとテンポラリディレクトリのPATHを指定して実行!

処理結果(抜粋)

Version returned from FMU:   2.0
Platform type returned:      default
GUID:      {a0fc21cc-cc37-466f-a812-cf044bde7fd3}
==============================
Variable name: target
Description: (null)
VR: 93
Variability: continuous : 4
Causality: output : 3
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: voltage
Description: (null)
VR: 94
Variability: continuous : 4
Causality: output : 3
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: current
Description: (null)
VR: 13
Variability: continuous : 4
Causality: output : 3
Initial: exact : 0
base_type: Real : 0
==============================
Variable name: speed
Description: (null)
VR: 91
Variability: continuous : 4
Causality: output : 3
Initial: calculated : 2
base_type: Real : 0

==============================
Variable name: pid.addD.u1
Description: Connector of Real input signal 1
VR: 93
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: pid.addSat.u1
Description: Connector of Real input signal 1
VR: 94
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: signalVoltage.n.i
Description: Current flowing into the pin
VR: 13
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================
Variable name: speedSensor.w
Description: Absolute angular velocity of flange as output signal
VR: 91
Variability: continuous : 4
Causality: local : 4
Initial: calculated : 2
base_type: Real : 0
==============================

処理結果について

太郎くん
太郎くん

おー!
これはバッチリ取れてる感じだねー。
valueReferenceも前回確認したものと一致してるし。

フクさん
フクさん

うむ。
ちょっとコードを弄るだけで動きそうだな。

太郎くん
太郎くん

え?
コード弄るの?

フクさん
フクさん

うん。
といっても必要な材料はすべてそろっていて、
シミュレーションループのところに上手く必要なvalueReferenceが渡るように修正するだけだろう。

太郎くん
太郎くん

(また、何か新技が必要なのかと思った・・・。)

フクさん
フクさん

まぁ次回までにそこらへんの調整はやっておこう。

まとめ

フクさん
フクさん

まとめだよ。

  • OpenModelicaからexportしたFMUをFMILibraryで読み込んでみた。
    • 無事読み込み成功。
    • 変数リストによる列挙もできた。
      • 必要なパラメータの情報は問題無く取得出来ている。
  • シミュレーションをするために若干の改造が必要。
    • シミュレーションループにvalueReferenceが渡るように修正。

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

コメント

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