
Car Scannerを弄るのが楽しくなってきた。
楽しいオモチャです。
というわけで、いろいろなセンサーを表示させてみては、やっぱりやめてを繰り返している。
元々、ATのギア表示がしたかっただけなので何か目的がある訳でもなく、それっぽくチャラチャラ動くメーターが欲しいだけ。
そんな中で、アクセルペダルのポジション表示が欲しくなった。Relative throttle positionじゃなくてコンピュータが介在する前の自分の操作を確認したいんで。発進時のアクセル操作のデータから自分の操作を見直したいんです。
Absolute pedal position D とEがこれに対応しているという事は分かっていたけれど、ペダルのON/OFFがデータの 0、100%に対応している訳ではなく、そのまま表示させると中途半端な限られた範囲だけを動く、何ともカッコ悪いメーターになってしまう。
キチンと0〜100%の範囲で表示しなきゃダメでしょというわけで、custom PID の作成にチャレンジしてみた。
センサーは、よりデータ変化の幅の広いAbsolute pedal position D 側を使用。これはOBD2の標準コマンドとのことなので Google先生に質問して、command は 0149だと即判明。
計算式はというと、自車の場合はアクセルオフが15%、フルスロットルが81%だったので、データから15を減算してからフルスロットルが100%になるように補正すればいいだけでしょう、とやってみたが上手くいかず。
アクセルオフが40%に、アクセル全開が200%を僅かに超えてしまう。あれ〜と5秒考え、「Absolute pedal position Dの表示値と実際に車両から取得している値が同じ値のわけがないじゃないか」という至極当たり前のことに気づく。
得られたヘンテコな表示値を元にして、アクセルオフが0%に、全開が100%になるように式を修正。オフセットは+40なのでA-40は即決。係数側はフルスロットルが99%になってしまったので、数回の微調整で1/1.92に落ち着く。結果、(A-40)/1.92が良さげと判明。
しかし、アクセルオフ時の表示が0%と-1%の間をパラパラと行き来する。これはダサい。アクセルペダルがマイナスって何なのよ!
ここで Absolute pedal position D の値を観測していた時、データに微妙にノイズがのっていたこと(多分量子化誤差)を思い出し、(A+0.4-40)/1.92 に式を変更。小数点以下は表示させないことに。これでパラパラの回避は成功。
恐ろしくいい加減な計算方法なので、おそらく経時的には誤差を持つだろうし、温度の影響も受けるハズ。まあその時はその時で微調整すれば良いだけ。所詮は飾りのメーター、これでよしとしよう。
マイナス表示の回避には、if expressionの使用で0リミットをかけられそう。でも今回ははじめてのcustom PID 作成だし、試運転しながらの外での作業だったので上手く行かない場合にはめんどくさいことになるので、またの機会ということにした。
Posted at 2025/03/16 14:11:47 | |
トラックバック(0)