バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回で、OpenModelicaのFMU exportのオプション周りの設定は完了。
Windows、Linux環境でライブラリの依存関係の都合はあるが、
PlatformsはStaticを選んでおけばどちらの環境でもOK。
今回はOpenModelicaからの実際にFMUをexportし、少し中身を確認。
登場人物
博識フクロウのフクさん
イラスト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
OpenModelicaからFMUをexport
FMUのオプション関連は終わったから
ついにFMUのexportだね。
やり方は簡単。
OpenModelicaConnectionEditorの左側にある、ライブラリブラウザの一番下に
今回作成したモデルがいる。
これを右クリック。
書き出し→FMU
を選択すればOKだ。
うん、しばらく応答無くなったからフリーズしたかと思ったけど、FMUが出力されたみたいだ。
モデルが複雑になったり、巨大になったりするともっと時間が掛かるかもねー。
せめてプログレスバーみたいなのがあるといいんだけど、
まぁそこまで求めるのは酷かー。
exportされたFMUのmodelDescription.xml確認
ここで、FMU内部のmodelDescription.xmlを確認しておこう。
一応、拡張子をzipにして解凍はできた。
modelDescription.xmlもちゃんと中にあったよ。
じゃ、今回、DCモータモデルについかしたOutputブロックのパラメータを確認しておこう。
とりあえず、該当するところを引っこ抜いてきた。
<ScalarVariable
name="target"
valueReference="93"
causality="output"
>
<Real/>
</ScalarVariable>
<ScalarVariable
name="voltage"
valueReference="94"
causality="output"
>
<Real/>
</ScalarVariable>
<ScalarVariable
name="current"
valueReference="13"
causality="output"
initial="exact">
<Real start="0.0"/>
</ScalarVariable>
<ScalarVariable
name="speed"
valueReference="91"
causality="output"
>
<Real/>
あと、valueReferenceが同値のパラメータも居ると思うからそっちもよろしく。
はいよ。
<ScalarVariable
name="pid.addD.u1"
valueReference="93"
description="Connector of Real input signal 1"
>
<Real/>
<ScalarVariable
name="pid.addSat.u1"
valueReference="94"
description="Connector of Real input signal 1"
>
<Real/>
</ScalarVariable>
<ScalarVariable
name="signalVoltage.n.i"
valueReference="13"
description="Current flowing into the pin"
>
<Real unit="A"/>
</ScalarVariable>
<ScalarVariable
name="speedSensor.w"
valueReference="91"
description="Absolute angular velocity of flange as output signal"
>
<Real unit="rad/s"/>
</ScalarVariable>
なるほど。
信号線としては繋がっているところがvalueReferenceとしては同値になるってことか。
そうだね。
そして今回は扱いや類Outputブロック側を指定して利用するって算段だ。
確かにそっちの方が楽そうだね。
“pid.addD.u1”
とか言われても、なんのこっちゃってなるもんね。
まとめ
まとめだよ。
- OpenModelicaから無事FMUをexport。
- FMU内部のmodelDescription.xmlを参照。
- Outputブロック名のパラメータの存在を確認。
- 上記のvalueReferenceと同値のパラメータも確認。
- モデル上、同一の信号線上のパラメータが該当。
- 利用するのはOutputブロック側。
バックナンバーはこちら。
コメント