【FMI/FMU】最小構成のMBD事例 第2章 その263【CANoe⑯】

【FMI/FMU】最小構成のMBD事例 第2章 その263【CANoe⑯】事例
【FMI/FMU】最小構成のMBD事例 第2章 その263【CANoe⑯】

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

スポンサーリンク

はじめに

前回はCANoe内のTCP/IPによるプロセス間通信の様子や、設計思想の話をした。
CANoeをハックすることが目的ではないので、詳細までは追わなかったが、
おおよその構造と64bit向けFMUを読み込まなかった理由はわかったところ。

32bitFMUはOpenModelicaの32bit版で作成する必要があるので、
OpenModelicaを入れ替えてからのexportしたFMUで再度CANoeによる仮想HILSをチャレンジする。

スポンサーリンク

登場人物

博識フクロウのフクさん

指差しフクロウ

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

スポンサーリンク

32bit FMU作成

太郎くん
太郎くん

とりあえず64bit版のOpenModelicaをアンインストール後に
32bit版OpenModelicaをインストールして、
そこからFMUをexportしたよ。

フクさん
フクさん

Modelicaモデル自体は32bit版も64bit版も一緒だから、問題は起きないと思うけど。

太郎くん
太郎くん

確かにいままで作ったModelicaモデルは普通に読めたね。
見た目も操作の仕方も一緒だったよ。

フクさん
フクさん

それは良かった。
なら改めてCANoeによる仮想HILS実験の続行だな。

スポンサーリンク

CANoeでFUMU駆動

太郎くん
太郎くん

これで32bit問題は解決したから、
CANoeを動かしてみるねー。

・・・

太郎くん
太郎くん

お!
こんな感じに動いた!

CANoe FMU駆動、指令値、角速度、制御電圧、モータ電流、Target、Speed、Voltage、Current
フクさん
フクさん

うん。
指令値も台形に出てて、そこに角速度が追従するように制御されてるね。

太郎くん
太郎くん

しかも思ったよりもキレイな波形で出てるよ。

フクさん
フクさん

FMU駆動、CAN送信を1msにしたからね。
PyFMI+Python canの時はそんな周期では回せないから、実質100ms駆動になってたし。

太郎くん
太郎くん

ここまで差がでるもんなんだねー。

フクさん
フクさん

このパフォーマンスなら仮想HILSとしては十分だ。

スポンサーリンク

この次の話

太郎くん
太郎くん

これだけでも十分な成果な気もするけど、
あとはXCPを使って仮想ECUと連携になるのかな?

フクさん
フクさん

そうだね。
以前も言ったようにCANoeでXCPを使用するには本来であればXCP/AMDオプションが必要になる。
よって、今回はCAPLを駆使してXCPに応答する処理を実施することになる。

太郎くん
太郎くん

うーん、CAPLでちゃんとXCPができるのか不安だなー。

フクさん
フクさん

やること自体は以前python-canでやったこと大体一緒になると思うよ。
CAPLでCANの送受信が自由にできるわけだからpython-canと同じこともできるはず
って理屈だね。

太郎くん
太郎くん

あー、ここらへんでいろいろやってたやつだねー。

スポンサーリンク

まとめ

フクさん
フクさん

まとめだよ。

  • 32bit FMU作成しCANoeに組み込んだ。
  • CANoeでFMU駆動の実験。
    • かなりキレイな波形が取れた。
      • FMU、CAN送信共に1ms駆動させているため。
      • Pythonの時は100ms駆動相当になっていた。
  • このあとはCAPLでXCPを実現するがpython-canでやったことと同じことをやればOK。

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

コメント

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