バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はVector社製ツールのCANoeを仮想HILS化するための実験ロードマップを提示。
大雑把にはFMU importとXCPマスタの2つの機能を実現させればOK。
まずはCANoeはFMUを本当に扱えるかを確認していく。
登場人物
博識フクロウのフクさん
![指差しフクロウ](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
![技術者太郎](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
CANoeでFMU import&動作実験の全体構成
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
今回からCANoeでFMUを扱えるか実験し始める感じだね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まずは実験構成の確認だ。
ネットワーク構成と論理構成の2つを見せよう。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
恒例のパターンだね。
CANoeでFMU import&動作実験のネットワーク構成
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
PyFMIでやったマルチFMUと同じく3つのFMUを使用する。
ただし、繋ぎはCAN-FDを想定。
![CANoeでFMU import&動作実験のネットワーク構成、指令器、制御器、プラント、CANID、シミュレーションバス](https://www.simulationroom999.com/blog/wp-content/uploads/2022/01/02_CANoeでFMU-import&動作実験のネットワーク構成-1024x631.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
シミュレーションバスってVirtual CAN Busのことで良いんだっけ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
Virtual CAN Busとは別物だな。
CANoeの中だけで閉じてるCAN Busだ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
まぁ似たようなもんなのかな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ仮想的なCAN Busって意味では一緒だね。
ただ、CANoe内のシミュレーションバスは外部インターフェースと繋がっていないことを前提にシミュレーション時間を早めることができる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ほう?
早めても大丈夫なものなの?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
CANoeで閉じていること前提なんで、シミュレーション時間が実時間と一致している必要も無いんだよ。
まぁ演算処理が重ければ早くすることはできないのだけど、ほとんどの場合はかなり早くシミュレーションを終えることができる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
SimulinkやOpenModelicaもシミュレーション自体は一瞬だったもんね。
あれと同じようなイメージか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
そうそう。
そのイメージで合ってる。
CANoeでFMU import&動作実験の論理構成
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
次は論理構成だが、
まぁこれはいつもの通りだな。
この構成が崩れたらそもそも目的の動作にはならないし。
![CANoeでFMU import&動作実験の論理構成、CAN、ramp、pid、CANID](https://www.simulationroom999.com/blog/wp-content/uploads/2022/01/03_CANoeでFMU-import&動作実験の論理構成-1024x532.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
CANのシグナルが論理的な信号線を果たすってことだね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
そういえば、さっきのネットワーク構成もそうなんだけど、
CANoeでこの構成って昔どっかで見たような・・・。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/はてなフクロウ.png)
あー、たぶんSimulinkDLLをCANoeに読み込ませた時の実験のやつじゃない?
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
なんか思い出してきたぞ!
確か前シリーズでやったやつだ!
たしかここらへんでやった。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
この時はSimulinkモデルをSimulinkDLLにしてCANoeに取り込ませたわけだけど、
今回はこのSimulinkDLLがFMUになった。
って感じか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
正解。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
なんとなくやりたい事のイメージがつかめてきた。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
構成の確認もできたし、次回からは割と地味な作業に突入だ。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
(そもそも地味じゃない作業の方が少ない・・・。)
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- CANoeでFMU import&動作実験の全体構成提示。
- 恒例のネットワーク構成と論理構成。
- FMU間の各信号の接続はCAN経由で行う。
- 実は以前SimulinkDLLをCANoeで駆動させた時と近似の構成。
- SimulinkDLLの代わりにFMUになっただけ。
バックナンバーはこちら。
コメント