バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はXCP DAQパケットを横から覗き見て波形表示するDAQリスナーのコードを確認。
Python-canで受信し、DAQパケットなら取り込んでmatplotlibで描画するもの。
今回は実際にこれの動作確認となる。
登場人物
博識フクロウのフクさん

イラスト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
DAQリスナーの動作

じゃー、DAQリスナーの動作確認いくよー!
動画:DAQリスナー

うん。
なんか動いてるっぽい!

一応、拡大した画像も貼っておくね。
![DAQリスナー動作結果、target[rad/s]、voltage[V]、speed[rad/s]](https://www.simulationroom999.com/blog/wp-content/uploads/2021/12/02_DAQリスナー動作結果-1024x555.png)

そして、以前取った波形も
![PID制御の結果、目標値[rad/s]、実値[rad/s]、制御値[V]](https://www.simulationroom999.com/blog/wp-content/uploads/2021/12/03_PID制御の結果-1024x555.png)
DAQリスナーの動作について

でも、なんか描画してる範囲が狭くない?

まぁ実際のHILSもどきで動作させた時を想定した時間幅にしてるからね。
20秒くらいの範囲にしてるんだよ。

あと高さも足りてない!

これも同じような理由だね。
大きく0以下の値に行くことが無いはずなんで。

ということはおおよそ準備としては揃ったってところか。

そうだね。
これでHILSもどきの方に進めると思う。
今後の予定

というわけでHILSもどきを頑張って作っていくことになるが、
「HILSもどき」という呼び名もちょっと微妙だな。

だったら「仮想HILS」にしよう!

お!いいね!
それで行こう。

XCPスレーブが「仮想ECU」って呼び方してたからね。
HILS側も「仮想HILS」って呼び方が良い気がして。

というわけで、
「仮想ECU」と「仮想HILS」の結合に向けて作業を進めていこう。

具体的にはどう進めるの?

以前作った「PyFMI+tkinter+matplotlib+CAN指令値受信」に追加していく感じだな。
まぁ大雑把に以下の作業になると思う。
- PIDのFMUをDummy_FMUModel化
- 上記に伴いdo_step追加
do_stepの内部でXCPで受けた仮想ECUのPID制御器出力データをFMUのPID制御出力データのように差し替える。 - XCP関連セットアップ処理追加
- XCP DAQ受信部追加
- XCP STIM送信部追加

なるほど。
割とやることは明確な感じだね。

そうだね。
PyXCPをさらにクラスで包んでんで、XCP関連の細かい仕様には振り回されずにすむはずだ。
XCP関連の処理も事前に動くことの確認も取れてるし。

品質の積み上げが出来てると、作業方針も決め易いってことかー。

ここらへんは通常の開発と考え方は変わらない部分だね。
よう分からんリスクは早々に潰しておくに限る。
ソースコードとか

作成したソースコードはGithubに上げておこう。
PID制御器入りAUTOSAR-XCP
XCPクラス
DAQリスナー
まとめ

まとめだよ。
- DAQリスナーの動作確認実施。
- 問題無く動作した。
- やや表示範囲が有ってないが次に作る「HILSもどき」向けの設定になってる。
- 「HILSもどき」改め「仮想HILS」と命名変更。
- 仮想HILS作成に向けてのロードマップ確認。
- 下位レイヤの動作が先に保証済みになっていると計画が立てやすい。
バックナンバーはこちら。
コメント