バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はPID制御器動作確認用Pythonコードを確認した。
コンフィグレーション、XCPマスター生成、DAQ起動、計測、書き換えを隠蔽するようなクラス化。
エントリポイントとして起動した際は簡単なXCP通信をするように組んでいるのでクラスの単体テストも可能。
というわけでクラス単体テストを兼ねる形で動作確認をする。
登場人物
博識フクロウのフクさん
イラスト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
入出力する信号の種類
動作確認用のPythonコードもできたことだし、
さっそうやってみよう。
その前に入出力する信号の種類について書くにしておこう。
そういえば結局何が入力で出力になるんだっけか?
PID制御なんで以下の想定になる。
2入力、1出力ってことだね。
この入出力はしっかり頭に入れておこう。
じゃないと、これからの説明の意味がわからなくなっちゃう。
ばっちり覚えた!
動作確認実施
今度こそ、動作確認開始!
うん。
一応PID制御っぽい動きはしてるんじゃないかな。
目標値と実値に差がある時は追従しようと制御をそこに近づけるように動いてるね。
おおよそ目標値になったら、現状の出力を維持してるってところか。
DAQパケットとSTIMパケット
CAN回線も見ておこう。
0.365371 1 1 Rx d 2 DD 01
0.368984 1 2 Rx d 1 FF
0.373555 1 2 Rx d 7 00 00 00 00 00 00 00
0.473162 1 2 Rx d 7 00 00 00 00 00 00 00
0.574054 1 2 Rx d 7 00 00 00 00 00 00 00
0.673849 1 2 Rx d 7 00 00 00 00 00 00 00
0.773579 1 2 Rx d 7 00 00 00 00 00 00 00
0.873702 1 2 Rx d 7 00 00 00 00 00 00 00
0.974037 1 2 Rx d 7 00 00 00 00 00 00 00
1.073906 1 2 Rx d 7 00 00 00 00 00 00 00
1.173635 1 2 Rx d 7 00 00 00 00 00 00 00
1.273340 1 2 Rx d 7 00 00 00 00 00 00 00
1.374094 1 2 Rx d 7 00 00 00 00 00 00 00
1.378337 1 1 Rx d 5 01 00 64 00 00
1.383039 1 2 Rx d 1 FF
1.473823 1 2 Rx d 7 00 00 64 00 00 66 30
1.573536 1 2 Rx d 7 00 00 64 00 00 66 4A
1.673454 1 2 Rx d 7 00 00 64 00 00 66 64
1.773330 1 2 Rx d 7 00 00 64 00 00 00 78
1.873068 1 2 Rx d 7 00 00 64 00 00 00 78
1.973699 1 2 Rx d 7 00 00 64 00 00 00 78
2.073510 1 2 Rx d 7 00 00 64 00 00 00 78
2.173354 1 2 Rx d 7 00 00 64 00 00 00 78
2.273387 1 2 Rx d 7 00 00 64 00 00 00 78
2.373132 1 2 Rx d 7 00 00 64 00 00 00 78
# 省略
9.387573 1 1 Rx d 5 01 00 00 00 64
9.388909 1 2 Rx d 1 FF
9.473794 1 2 Rx d 7 00 00 00 00 64 59 1F
9.573761 1 2 Rx d 7 00 00 00 00 64 59 05
9.673368 1 2 Rx d 7 00 00 00 00 64 5A EB
9.773163 1 2 Rx d 7 00 00 00 00 64 5A D1
9.873981 1 2 Rx d 7 00 00 00 00 64 5A B7
9.973842 1 2 Rx d 7 00 00 00 00 64 5A 9D
10.073195 1 2 Rx d 7 00 00 00 00 64 00 88
10.174194 1 2 Rx d 7 00 00 00 00 64 00 88
10.273686 1 2 Rx d 7 00 00 00 00 64 00 88
10.373415 1 2 Rx d 7 00 00 00 00 64 00 88
10.380821 1 1 Rx d 5 01 00 00 00 00
10.381353 1 2 Rx d 1 FF
10.473185 1 2 Rx d 7 00 00 00 00 00 00 A1
10.574054 1 2 Rx d 7 00 00 00 00 00 00 A1
10.673685 1 2 Rx d 7 00 00 00 00 00 00 A1
10.773332 1 2 Rx d 7 00 00 00 00 00 00 A1
10.873217 1 2 Rx d 7 00 00 00 00 00 00 A1
10.974003 1 2 Rx d 7 00 00 00 00 00 00 A1
11.073757 1 2 Rx d 7 00 00 00 00 00 00 A1
11.173479 1 2 Rx d 7 00 00 00 00 00 00 A1
11.273232 1 2 Rx d 7 00 00 00 00 00 00 A1
11.373904 1 2 Rx d 7 00 00 00 00 00 00 A1
11.387314 1 1 Rx d 5 01 00 00 00 00
11.387806 1 2 Rx d 1 FF
11.473633 1 2 Rx d 7 00 00 00 00 00 00 A1
11.573609 1 2 Rx d 7 00 00 00 00 00 00 A1
11.673428 1 2 Rx d 7 00 00 00 00 00 00 A1
11.773207 1 2 Rx d 7 00 00 00 00 00 00 A1
11.873051 1 2 Rx d 7 00 00 00 00 00 00 A1
11.973714 1 2 Rx d 7 00 00 00 00 00 00 A1
12.073501 1 2 Rx d 7 00 00 00 00 00 00 A1
12.173468 1 2 Rx d 7 00 00 00 00 00 00 A1
12.273132 1 2 Rx d 7 00 00 00 00 00 00 A1
12.373934 1 2 Rx d 7 00 00 00 00 00 00 A1
12.380717 1 1 Rx d 5 01 00 00 00 00
12.381815 1 2 Rx d 1 FF
12.391015 1 1 Rx d 2 DD 01
一応、ちゃんと動いているようには見えるが・・・。
少し見せ方を工夫してみよう。
あ、なるほど。
目標値と実値に関してはDAQもSTIMも同じレイアウトにしてるから、
キレイに縦並ぶのか。
そしてDAQパケットにだけ制御値が載ってるんだったね。
期待通りPID制御器もXCPのDAQ、STIMも動作していると言えるだろう。
とりあえず、XCP制御用のクラスは動作は大丈夫そうだね。
まとめ
まとめだよ。
- 仮想ECU側のPID制御器の入出力する信号の種類を確認。
- 実際にXCPのDAQ、STIMを実施して制御状態を計測。
- 想定通りの挙動になっていた。
- CAN回線モニタを確認。
- DAQとSTIMの目標値、実値のレイアウトを合わせていたので、縦に慣れべることで挙動が推測できる。
バックナンバーはこちら。
コメント