バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
ついに仮想HILSのPythonコードが完成したところ。
基本的には前回までの修正内容を盛り込んだだけだが、
指令値取得用のCANバス初期化のタイミングだけ後ろにずらした。
(XCP設定用のパケットを受信FIFOに詰まないようにするため)
早速動作させてみたいところだが、
結構構成がややこしいことになっている。
一旦整理のため構成を確認する。
登場人物
博識フクロウのフクさん
![指差しフクロウ](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
仮想ECUと仮想HILSの実験構成
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
今回は動作実験の回・・・。
と見せかけて構成確認の回だっけ?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
そうだね。
前回も行ったが、構成がちょっと複雑で概念的になってしまってるんで、
ネットワークとしての構成と論理的な構成の2点を整理しよう。
仮想ECUと仮想HILSのネットワークとしての構成
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まずはネットワークとしての構成。
以下の図になる。
![仮想ECUと仮想のネットワークとしての構成、外部指令器、仮想ECU、仮想HILS、Python、Python-can、XCPスレーブ、ECU側、PID、AUTOSAR、XCP、DmunnyFMU、FMU、XCPマスタ、STIMセンダ、DAQリスナ、Virtual CAN Bus](https://www.simulationroom999.com/blog/wp-content/uploads/2021/12/02_仮想ECUと仮想のネットワークとしての構成-1024x571.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
仮想HILS側が結構ややこしいことになってるねー。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
XCPとFMUの2つの処理が入ってるからね。
あと構成としては出てきてないが波形表示もやってるし。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
まぁ大体HILS側がヤバイことになるってのはあるあるだなー。
仮想ECUと仮想の論理的な構成
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
次は論理的な構成。
以下の図になる。
![仮想ECUと仮想の論理的な構成、外部指令器、仮想ECU、仮想HILS、CAN、PID、Motor、XCP](https://www.simulationroom999.com/blog/wp-content/uploads/2021/12/03_仮想ECUと仮想の論理的な構成-1024x519.png)
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者01アップ.png)
こっちは結構シンプルだね。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
元々はModelicaモデルとして定義していたものだからね。
信号として繋がっていた部分がCANになったりXCPに変わっただけだ。
構成について
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
つまり論理的にはシンプル。
そして、それら機能を複数のノードに割り当てて、信号の経路を確保するために複雑になったってことか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/まるフクロウ.png)
その通り。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
最初は純粋にフィードバックループだけで確認していたものを
実際の役割別に分割。
その分割した姿をPC上でシミュレーションする。
ってのが今回の目的だな。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」20アップ.png)
なんか、シミュレーションでやっていたものを
別の形でシミュレーションしてるから話がややこしくなるんだな。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
まぁ各処理をノード分割すると同時に実機にしてしまうってのもありだが、
今回のようにノード分割の状態に置いてもシミュレーションにしておくといろいろ利点が出てくる。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/「技術者a」13アップ.png)
ほう?
例えばどんな?
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
例えば、以下のパターンかな
- 指令器と制御対象を偽物にして実ECUをテスト
- ECUと制御対象を偽物にして指令器をテスト
- 指令器とECUを偽物にして制御対象をテスト
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者03アップ.png)
あーなるほど!
一部だけを本物にしてそれに対するテストができるのか。
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/お休みフクロウ.png)
今回はECUは1個想定だが、これが複数ECUとかになると、さらに効果は大きくなるね。
![太郎くん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/技術者02アップ.png)
確かにECU間連携とかになると、異なるECUサプライヤのECUに相当するものを用意しなきゃいけないから、結構大変なんだよねー。
最初から全部がシミュレーションできる環境があって、その一部だけを本物に差し替えればOKって状態だとすごく助かると思う。
![フクさん](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)
構成の確認もできたんで、次回が実際に動作実験する回となる。
まとめ
![フクさん](https://www.simulationroom999.com/blog/wp-content/uploads/2020/05/指差しフクロウ.png)
まとめだよ。
- 構成がややこしいことになってきたので仮想ECUと仮想HILSの実験構成を再確認。
- ネットワーク構成と論理的構成を確認。
- 論理的構成はModelicaモデルベースでシンプルだが、ネットワーク構成は各信号をCANやXCPに変えてるため複雑化。
- このようにノードを分割しておくと部分的に実物に差し替えるなどがし易くなる。
バックナンバーはこちら。
コメント