about MR2 AE86の燃料制御
99年08月10日 AE86の燃料制御
いやぁ、暑いっすねぇ。世間は夏休みらしいですが、出かける気力もないので
AE86のECU解析のつづきのことでも書きましょう。
実は6月に書いた、86の燃料制御のページは間違いでした(^^;;
なんとなく方向性は合っているのですが、マップの解釈が間違いでした。
今回はプログラムを解析して出直してきたのでバッチリです。
さて、前置きから参りましょう。
ご存知?のとおり、AE86のエンジンはDジェトロ制御です。
トヨタではEFI-Dとか呼ばれたりするようです。ちなみに、Lジェトロ
というのもあります(4AGZはLジェトロです)。
これらはエンジンが吸入した空気の量を計測するシステムの違いから
ついた名前です。
Dジェトロというのは、圧力センサによって吸気管内の圧力を
測り、この値から吸入した空気量を算出します。吸気圧から
だけでは、正しく空気量が算出できないので、回転数に応じた
補正も行います(わずかですけどね)。
Lジェトロというのは、エアフロメータという、吸気量を
直接計測できる装置を仕様します。吸入空気量を正しく
計測できる代わりに、装置が空気抵抗になるというデメリットが
あります。たとえば、AW11 4AGZに使われているフラップ式
エアフロメータは、まぁ金属でできた「のれん」のようなものを
想像してもらうとよいと思いますが、吸入空気で「のれん」を
押し、その押した量を計測します。
Dジェトロ、Lジェトロ共、このように計測、算出した空気量
から必要な基本燃料噴射量を決定します。
もちろん、この基本噴射量はあくまでも基本噴射量であって、
気温、回転数、電圧等によって補正して、最終的な噴射量を
決定します。
さて、前置きが長くなりましたが、AE86のDジェトロの話に
戻りましょう。
AE86のエンジン制御コンピュータが作られたのは、昭和58年ごろ、
およそ15年前になります。当時は8bitCPUの時代で、主記憶32Kバイト
動作クロック2MHzとかの時代でした。というわけで、86のCPUも
プログラム4Kバイト、動作クロック1MHzとかいう悲しい状態で
動いています。プログラムを読んでいても非力な割によくやっている
と思います。プログラム領域が4Kバイトしかないので、最近
(といっても10年位前)のNISSAN車のように、16*16の三次元
燃料マップ+16*16の三次元点火時期マップは持つことができなかった
ようです。それらを持つと、プログラム領域の1/8が消費されてしまいます(;_;
ということで、86では二次元マップを複数使用して噴射燃料を
算出し、小さな三次元点火時期マップで点火時期を決定しています。
#でも、ここまで書いて思ったけど、二次元マップをあれだけ持って
#さらに計算するくらいなら三次元マップ持てる気もする...
#そういうポリシーだったのかも。
さて、では燃料の噴射量を計算する流れを追ってみましょう。
たとえば、3000rpmで、負圧-300mmHg、加速中だということに
しましょう。
まずは、燃料のTpベースを計算するメインマップです。
これは吸気圧によって基本噴射量(Tpベースという)を求める
マップです。回転が高いときと低いときの2つのテーブルがあり、
およそ3800rpm以上か未満かで、使い分けているようです。
このマップは3800rpm以下で、リンクが3800rpm以上です。
あまりかわらないですよね(^^;;;
調べたいのは3000rpmなので3800rpm以下のマップから-300mmHgのときの
燃料ベースを牽きます。3400位でしょうか。
つぎもこれもTpベース算出用のマップです。上のマップの補正的な意味がある
ようです。縦軸の値を見てもらうとわかるとおり、たとえいじっても
あまりかわらなそうです。
#これもリンクに3800rpm以上のマップを置きました
#こちらはちょっと違いますね。
同様に3800rpm以下のマップから-300mmHgの時の値を牽きます。56程度でしょうか。
上の二つの結果3400と56を足した3456が基本噴射量Tpベースになります。
さて、このTpベースに対して、回転数の補正と加速増量での補正を入れて
みましょう。
まずは回転数での補正です。3000rpmの時の補正は1.04です。
これを前の結果3456に掛けます。3456*1.04 = 3594になりました。
さらに加速中だということで、加速増量も行います。
3000rpmの時には1.02なので、3594にさらに1.02を掛けて、3666に
なりました。
ここでは書きませんが、これ以外にも、
水温補正、
吸気温度補正、
スロットル補正、
Ox信号補正を
同様に入れているようです。(まだ調べていません(^^;;
そして最後に電圧補正(インジェクタの無効噴射時間に影響するから)
を加えて、最終噴射量(時間)を決定しているようです。
上の例でいうと3666を噴射時間にする式があるはずなのですが、
まだそれもわかりません(^^;;
いやいや時間がなくてというか、ECU基盤も追わないとCPUのどの
ピンにどの信号が入っているかわからなくて、面倒なんですよ〜。
というわけで、圧力によるマップ、回転数による補正マップ、
加速時補正マップについて説明しました。
ちょっといじるにはこの位知っていればいいよね(^^;;
shmz@cds.ne.jp