JPH086630B2 - エンジンの制御装置 - Google Patents
エンジンの制御装置Info
- Publication number
- JPH086630B2 JPH086630B2 JP29281386A JP29281386A JPH086630B2 JP H086630 B2 JPH086630 B2 JP H086630B2 JP 29281386 A JP29281386 A JP 29281386A JP 29281386 A JP29281386 A JP 29281386A JP H086630 B2 JPH086630 B2 JP H086630B2
- Authority
- JP
- Japan
- Prior art keywords
- cylinder
- learning value
- engine
- learning
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Electrical Control Of Ignition Timing (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は、エンジンの制御装置、特にエンジンの各気
筒の燃焼状態を検出し、燃焼状態が所定の状態になるよ
う気筒別に学習制御するようにしたエンジンの制御装置
に関するものである。
筒の燃焼状態を検出し、燃焼状態が所定の状態になるよ
う気筒別に学習制御するようにしたエンジンの制御装置
に関するものである。
(従来技術) 従来、エンジンの燃焼状態が所定の状態になるよう制
御するものとして、たとえば、エンジンのノッキングを
検出するセンサを設け、ノッキングを感知したときに点
火時期をリタードするようにしたものがよく知られてい
る。また、このようにノッキングが起こって初めて制御
するような単なるフィードバック制御だけでは、どうし
てもその間に遅れが生じることから、この間の遅れを極
力無くしたいということで、例えば特開昭58−222976号
公報に記載されているように、エンジンの回転数と負荷
によって区画されたメモリの各領域にエンジンの運転状
態毎の学習補正値を記憶しておき、次回その運転状態が
あったときに、記憶された補正値と基本的な進角値との
演算によって最終的に制御する点火時期を決めるように
したものが知られている。このようなノッキングの学習
制御によれば、運転状態の変化に即応して最適な点火時
期を得ることができる。ところが、多気筒エンジンで
は、各気筒間で、空燃比,充填量,燃焼室温度,圧縮比
特に不可避的なばらつきがあるため、上記のように全部
の気筒に一律にフィードバックをかけたのでは、個々の
気筒についてみたとき、最適な制御を行っていることに
ならないという問題がある。
御するものとして、たとえば、エンジンのノッキングを
検出するセンサを設け、ノッキングを感知したときに点
火時期をリタードするようにしたものがよく知られてい
る。また、このようにノッキングが起こって初めて制御
するような単なるフィードバック制御だけでは、どうし
てもその間に遅れが生じることから、この間の遅れを極
力無くしたいということで、例えば特開昭58−222976号
公報に記載されているように、エンジンの回転数と負荷
によって区画されたメモリの各領域にエンジンの運転状
態毎の学習補正値を記憶しておき、次回その運転状態が
あったときに、記憶された補正値と基本的な進角値との
演算によって最終的に制御する点火時期を決めるように
したものが知られている。このようなノッキングの学習
制御によれば、運転状態の変化に即応して最適な点火時
期を得ることができる。ところが、多気筒エンジンで
は、各気筒間で、空燃比,充填量,燃焼室温度,圧縮比
特に不可避的なばらつきがあるため、上記のように全部
の気筒に一律にフィードバックをかけたのでは、個々の
気筒についてみたとき、最適な制御を行っていることに
ならないという問題がある。
気筒間のばらつきを考慮に入れて、気筒毎にノッキン
グ発生限界に対応した点火時期を決めるようにしたもの
としては、特開昭58−192968号公報に記載されたような
ものがあるが、これは、単に、点火時期を気筒毎に設定
するというものであって、運転状態の変化に合わせて最
適な点火時期に制御するというものではない。
グ発生限界に対応した点火時期を決めるようにしたもの
としては、特開昭58−192968号公報に記載されたような
ものがあるが、これは、単に、点火時期を気筒毎に設定
するというものであって、運転状態の変化に合わせて最
適な点火時期に制御するというものではない。
また、これら従来技術に基づいて、各気筒毎にフィー
ドバック制御をするとともに、各気筒毎に学習値による
補正を行うようにすれば、より精度の良い制御をするこ
とができるわけであるが、その場合に、たとえば4気筒
であれば、学習値を記憶するためのメモリーが四つ分必
要であるというのでは、メモリーの全体的な容量が大き
くなってしまう。つまり、気筒毎に同一のデータサイズ
を持っていたのでは、RAM容量が増大し、RAMを増設する
必要が生じ、コストアップにつながるという問題が出て
くる。さらに、一般のエンジンでは、1チップCPUが用
いられるが、この1チップCPUはROM,RAMを内蔵している
ため、RAMの増設はバスラインをCPUの外に出すことを意
味し、耐ノイズ性の悪化を伴うことになる。また、1チ
ップCPUをRAM外付けで用いる場合に、バスとなる端子は
通常の使用形態であるシングルポートモードではI/Oポ
ートとして用いられているため、RAM以外にI/Oポート用
のLSIの増設が必要となる。
ドバック制御をするとともに、各気筒毎に学習値による
補正を行うようにすれば、より精度の良い制御をするこ
とができるわけであるが、その場合に、たとえば4気筒
であれば、学習値を記憶するためのメモリーが四つ分必
要であるというのでは、メモリーの全体的な容量が大き
くなってしまう。つまり、気筒毎に同一のデータサイズ
を持っていたのでは、RAM容量が増大し、RAMを増設する
必要が生じ、コストアップにつながるという問題が出て
くる。さらに、一般のエンジンでは、1チップCPUが用
いられるが、この1チップCPUはROM,RAMを内蔵している
ため、RAMの増設はバスラインをCPUの外に出すことを意
味し、耐ノイズ性の悪化を伴うことになる。また、1チ
ップCPUをRAM外付けで用いる場合に、バスとなる端子は
通常の使用形態であるシングルポートモードではI/Oポ
ートとして用いられているため、RAM以外にI/Oポート用
のLSIの増設が必要となる。
(発明の目的) 本発明は、上記のような従来技術によるエンジンの制
御装置の問題点に鑑み、エンジンの運転状態毎の学習補
正値によって制御量を補正するようにしたエンジンの制
御装置において、各気筒毎の精度を落とすことなく全体
としての記憶容量を低減することを目的とする。
御装置の問題点に鑑み、エンジンの運転状態毎の学習補
正値によって制御量を補正するようにしたエンジンの制
御装置において、各気筒毎の精度を落とすことなく全体
としての記憶容量を低減することを目的とする。
(発明の構成) 本発明は、エンジンの燃焼状態、たとえば、エンジン
のノッキングの状態は、季節により、またガソリンのオ
クタン価により大幅に変動しても、気筒間のノック限界
の差は減少であってそれほど大きくは変動しないことか
ら、特定の気筒については学習補正値をそのまま記憶
し、その他の気筒については学習補正値を特定気筒のそ
れとの差として記憶するようにしても、現実的に問題と
なるような精度の低下は無く、しかもメモリの容量が低
減できる、という知見に基づくものであって、その全体
的な構成は第1図に示すとおりである。すなわち、本発
明に係るエンジンの制御装置は、エンジンの運転状態を
検出する運転状態検出手段と、該運転状態検出手段の出
力に基づいて基本制御量を決定する基本制御量決定手段
と、エンジンの気筒別に燃焼状態を検出する気筒別燃焼
検出手段と、該気筒別燃焼検出手段からの信号に応じて
気筒別にフィードバック補正量を決定するフィードバッ
ク補正量決定手段と、フィードバック補正量に基づいて
学習値を演算する学習値演算手段と、現気筒を識別する
気筒識別手段と、該気筒識別手段からの信号を受けて特
定気筒の学習値を記憶する第1の学習値記憶手段と、他
の気筒の学習値と特定気筒の学習値との差を演算する差
分演算手段と、該差分演算手段の出力を前記他の気筒の
学習値として記憶する第2の学習値記憶手段と、基本制
御量とフィードバック補正量と学習値とから気筒別に最
終制御量を決定する最終制御量決定手段と、該最終制御
量決定手段の出力によってエンジンの燃焼状態を制御す
る燃焼制御手段とを備え、特定の気筒の学習値はそのま
ま記憶し、他の気筒の学習値は前記特定気筒の学習値と
の差としてそれぞれ記憶するよう構成されている。運転
状態検出手段は、例えば配電機(ディストゥリビュー
タ)に付設したクランク角センサの出力から、エンジン
の運転状態を検出する。また、燃焼制御手段は、例えば
燃料噴射装置や点火装置の制御によって、エンジンの燃
焼状態を制御するものである。
のノッキングの状態は、季節により、またガソリンのオ
クタン価により大幅に変動しても、気筒間のノック限界
の差は減少であってそれほど大きくは変動しないことか
ら、特定の気筒については学習補正値をそのまま記憶
し、その他の気筒については学習補正値を特定気筒のそ
れとの差として記憶するようにしても、現実的に問題と
なるような精度の低下は無く、しかもメモリの容量が低
減できる、という知見に基づくものであって、その全体
的な構成は第1図に示すとおりである。すなわち、本発
明に係るエンジンの制御装置は、エンジンの運転状態を
検出する運転状態検出手段と、該運転状態検出手段の出
力に基づいて基本制御量を決定する基本制御量決定手段
と、エンジンの気筒別に燃焼状態を検出する気筒別燃焼
検出手段と、該気筒別燃焼検出手段からの信号に応じて
気筒別にフィードバック補正量を決定するフィードバッ
ク補正量決定手段と、フィードバック補正量に基づいて
学習値を演算する学習値演算手段と、現気筒を識別する
気筒識別手段と、該気筒識別手段からの信号を受けて特
定気筒の学習値を記憶する第1の学習値記憶手段と、他
の気筒の学習値と特定気筒の学習値との差を演算する差
分演算手段と、該差分演算手段の出力を前記他の気筒の
学習値として記憶する第2の学習値記憶手段と、基本制
御量とフィードバック補正量と学習値とから気筒別に最
終制御量を決定する最終制御量決定手段と、該最終制御
量決定手段の出力によってエンジンの燃焼状態を制御す
る燃焼制御手段とを備え、特定の気筒の学習値はそのま
ま記憶し、他の気筒の学習値は前記特定気筒の学習値と
の差としてそれぞれ記憶するよう構成されている。運転
状態検出手段は、例えば配電機(ディストゥリビュー
タ)に付設したクランク角センサの出力から、エンジン
の運転状態を検出する。また、燃焼制御手段は、例えば
燃料噴射装置や点火装置の制御によって、エンジンの燃
焼状態を制御するものである。
(作用) 運転状態検出手段はエンジンの回転数や負荷からエン
ジンの運転状態を判定する。基本制御量決定手段は、運
転状態決定手段の出力を受け、運転領域毎のマップから
基本制御量、例えば基本点火時期、を計算する。また、
フィードバック補正量決定手段は、気筒別に設けた燃焼
検出手段からの信号を受け、気筒別にフィードバック補
正量を修正する。さらに、学習値演算手段によって、フ
ィードバック補正量に基づいた学習補正値を計算し、運
転領域毎の学習補正値を記憶,更新する。最終制御量決
定手段は、これら基本制御量,フィードバック補正値お
よび学習補正値から最終制御量を計算し、エンジンの燃
焼制御装置、例えば点火装置や燃料噴射装置、のための
制御信号を出力する。このようにしてエンジンの燃焼状
態を制御する。ところで、本発明における気筒識別手
段,差分演算手段,および第1と第2の学習値記憶手段
による学習補正値の記憶,更新はつぎのようになされ
る。すなわち、現気筒が特定気筒であれば、演算した学
習補正値を第1の学習値記憶手段によってそのまま記
憶,更新し、また、その他の気筒については、特定気筒
の学習値との差だけを第2の学習値記憶手段によって記
憶,更新していく、といった処理がなされる。なお、エ
ンジンの回転数はクランク角センサの信号から演算する
ことができる。また、エンジンの負荷は、エアフローセ
ンサからの吸入空気量信号に基づいて充填量の形で検出
することができる。
ジンの運転状態を判定する。基本制御量決定手段は、運
転状態決定手段の出力を受け、運転領域毎のマップから
基本制御量、例えば基本点火時期、を計算する。また、
フィードバック補正量決定手段は、気筒別に設けた燃焼
検出手段からの信号を受け、気筒別にフィードバック補
正量を修正する。さらに、学習値演算手段によって、フ
ィードバック補正量に基づいた学習補正値を計算し、運
転領域毎の学習補正値を記憶,更新する。最終制御量決
定手段は、これら基本制御量,フィードバック補正値お
よび学習補正値から最終制御量を計算し、エンジンの燃
焼制御装置、例えば点火装置や燃料噴射装置、のための
制御信号を出力する。このようにしてエンジンの燃焼状
態を制御する。ところで、本発明における気筒識別手
段,差分演算手段,および第1と第2の学習値記憶手段
による学習補正値の記憶,更新はつぎのようになされ
る。すなわち、現気筒が特定気筒であれば、演算した学
習補正値を第1の学習値記憶手段によってそのまま記
憶,更新し、また、その他の気筒については、特定気筒
の学習値との差だけを第2の学習値記憶手段によって記
憶,更新していく、といった処理がなされる。なお、エ
ンジンの回転数はクランク角センサの信号から演算する
ことができる。また、エンジンの負荷は、エアフローセ
ンサからの吸入空気量信号に基づいて充填量の形で検出
することができる。
(実施例) 以下、本発明の実施例を図面に基づいて説明する。
第2図は、点火時期をリタードする(すなわち、遅角
させる)ことによってエンジンのノッキングを制御する
ようにした実施例の概略図であり、その要部をなすECU
(電気的制御ユニット)の機能ブロック図が第3図であ
る。燃焼室9の上部に設けられた点火プラグ7は、配電
器6を介して点火コイル5に接続され、点火コイル5は
ECU3に接続されている。配電器6にはクランク角センサ
とシリンダーセンサが付設されている。このクランク角
センサはECU3に対し基準となる信号を出力する。第2図
において、1はエンジン本体であり、そのシリンダーブ
ロック10にはシリンダーブロック10の振動からノッキン
グを検出するためのノックセンサ2が取り付けられてい
る。吸気マニホルド11上方の吸気管12にはサージタンク
が形成されており、さらにその上方のスロットル弁13直
上流の吸気通路にはエンジンの吸入空気量を検出するた
めのエアフローセンサ8が設けられている。吸入空気は
図示しないエアクリーナから吸入され、インジェクタ4
から噴射される燃料とともに吸気弁14を介して燃焼室9
内に供給される。燃焼後の排気は排気弁15を介して排気
マニホルド16から排気管17に流れ触媒装置18を通って排
出される。
させる)ことによってエンジンのノッキングを制御する
ようにした実施例の概略図であり、その要部をなすECU
(電気的制御ユニット)の機能ブロック図が第3図であ
る。燃焼室9の上部に設けられた点火プラグ7は、配電
器6を介して点火コイル5に接続され、点火コイル5は
ECU3に接続されている。配電器6にはクランク角センサ
とシリンダーセンサが付設されている。このクランク角
センサはECU3に対し基準となる信号を出力する。第2図
において、1はエンジン本体であり、そのシリンダーブ
ロック10にはシリンダーブロック10の振動からノッキン
グを検出するためのノックセンサ2が取り付けられてい
る。吸気マニホルド11上方の吸気管12にはサージタンク
が形成されており、さらにその上方のスロットル弁13直
上流の吸気通路にはエンジンの吸入空気量を検出するた
めのエアフローセンサ8が設けられている。吸入空気は
図示しないエアクリーナから吸入され、インジェクタ4
から噴射される燃料とともに吸気弁14を介して燃焼室9
内に供給される。燃焼後の排気は排気弁15を介して排気
マニホルド16から排気管17に流れ触媒装置18を通って排
出される。
ECU3は、ノックセンサ2の出力とクランク角センサの
出力とエアフローセンサ8の出力、の三つの出力を入力
とし、またシリンダーセンサからの信号を受けて、気筒
毎に演算を行い点火信号を出す。
出力とエアフローセンサ8の出力、の三つの出力を入力
とし、またシリンダーセンサからの信号を受けて、気筒
毎に演算を行い点火信号を出す。
第3図において、ROMには、基本となるデータや、点
火時期を制御するプログラムが入っている。エアフロー
センサの出力とノックセンサの出力は、アナログバッフ
ァを通ってA/Dコンバータに入力される。また、シリン
ダーセンサの信号は、デジタルバッファを通ってインプ
ットポートに入力される。CPUは、これらROM,A/Dコンバ
ータおよびインプットポートとの間で、またPTM(プロ
グラマブルタイマー),フリーランニングカウンタおよ
び学習値記憶手段との間でデータのやり取りをしてい
る。一方、クランク角センサは、所定のクランク角毎に
パルス状の信号を発生するもので、このパルス状の信号
が波形整形されてINT(インターラプト)に入り、割り
込みのタイミングをとる。クランク角信号に基づいてプ
ログラムの流れが支配される。PTMの出力は、アウトプ
ットインターフェイスによって、点火コイルに送るため
の信号に変換される。
火時期を制御するプログラムが入っている。エアフロー
センサの出力とノックセンサの出力は、アナログバッフ
ァを通ってA/Dコンバータに入力される。また、シリン
ダーセンサの信号は、デジタルバッファを通ってインプ
ットポートに入力される。CPUは、これらROM,A/Dコンバ
ータおよびインプットポートとの間で、またPTM(プロ
グラマブルタイマー),フリーランニングカウンタおよ
び学習値記憶手段との間でデータのやり取りをしてい
る。一方、クランク角センサは、所定のクランク角毎に
パルス状の信号を発生するもので、このパルス状の信号
が波形整形されてINT(インターラプト)に入り、割り
込みのタイミングをとる。クランク角信号に基づいてプ
ログラムの流れが支配される。PTMの出力は、アウトプ
ットインターフェイスによって、点火コイルに送るため
の信号に変換される。
第4図は点火時期の基本的な制御を示すタイミングチ
ャートである。この実施例は4気筒であって、ATDC(上
死点後)60度毎にクランク角信号が出るようになってい
る。4気筒であるので、TDC(上死点)とTDCの間は180
度である。クランク角信号が来た時に、演算した点火ま
での通電時間TCをPTMに書き込む。つまりPTMにTCという
値がセットされる。TCがセットされた後、クランク角信
号からのネガディブエッジ(立ち下がり点)が来た時点
からカウンターPTMは減算を始める。TCという時間情報
が書き込まれるとすぐにPTMはハイの信号(図示された
点火信号とは逆)を出力し、TCの時間がたってカウンタ
ーの値が0になった時点でロウに落ちる。このハイにな
っている時間というのは点火コイルに通電している時間
であって、PTMの出力がロウに落ちたとき、点火コイル
の電圧が急激に落ちて点火コイルに火花が飛ぶ。ところ
で、インプットポート(第3図参照)にはシリンダー信
号が入ってくるが、この信号がハイのときは第1気筒
(特定気筒)であるということで、第4図に矢印で示す
時点が第1気筒の点火時期である。そして、シリンダ
ー信号がロウであればその他の気筒ということで、点火
順序に従って、点火時点が第3気筒の点火時期、時点
が第4気筒の点火時期、点火時点が第2気筒の点火
時期ということになる。基本的に点火時期はこのように
制御されている。
ャートである。この実施例は4気筒であって、ATDC(上
死点後)60度毎にクランク角信号が出るようになってい
る。4気筒であるので、TDC(上死点)とTDCの間は180
度である。クランク角信号が来た時に、演算した点火ま
での通電時間TCをPTMに書き込む。つまりPTMにTCという
値がセットされる。TCがセットされた後、クランク角信
号からのネガディブエッジ(立ち下がり点)が来た時点
からカウンターPTMは減算を始める。TCという時間情報
が書き込まれるとすぐにPTMはハイの信号(図示された
点火信号とは逆)を出力し、TCの時間がたってカウンタ
ーの値が0になった時点でロウに落ちる。このハイにな
っている時間というのは点火コイルに通電している時間
であって、PTMの出力がロウに落ちたとき、点火コイル
の電圧が急激に落ちて点火コイルに火花が飛ぶ。ところ
で、インプットポート(第3図参照)にはシリンダー信
号が入ってくるが、この信号がハイのときは第1気筒
(特定気筒)であるということで、第4図に矢印で示す
時点が第1気筒の点火時期である。そして、シリンダ
ー信号がロウであればその他の気筒ということで、点火
順序に従って、点火時点が第3気筒の点火時期、時点
が第4気筒の点火時期、点火時点が第2気筒の点火
時期ということになる。基本的に点火時期はこのように
制御されている。
エンジンの運転領域毎の学習値を表現する学習マップ
は、第5図に示すように、特定気筒(第1気筒)につい
ては、2バイトで、基本進角に対する遅角量をそのまま
表現し、その他の気筒については、特定気筒の学習値に
対する遅角量として1バイトで表現するようになってい
る。マップの縦軸は回転数、横軸は充填量である。
は、第5図に示すように、特定気筒(第1気筒)につい
ては、2バイトで、基本進角に対する遅角量をそのまま
表現し、その他の気筒については、特定気筒の学習値に
対する遅角量として1バイトで表現するようになってい
る。マップの縦軸は回転数、横軸は充填量である。
第6図、第7図および第8図はこのような制御を実行
するフローチャートを示すものである。
するフローチャートを示すものである。
このうち、第6図には、常時流れているバックグラウ
ンドルーチンが示されている。なお、図中のB1〜B14は
各ステップを示す。
ンドルーチンが示されている。なお、図中のB1〜B14は
各ステップを示す。
B2で初期化が行われた後、TDC周期からエンジン回転
数NEを計算する。TDC周期は先程の第4図に示したT0に
相当するものであって、後述するインターラプトルーチ
ンで求め、ここに取り込む。4気筒の場合、TDCとTDCの
間は180度であるので、この間の時間をみればエンジン
の回転数が求まる。
数NEを計算する。TDC周期は先程の第4図に示したT0に
相当するものであって、後述するインターラプトルーチ
ンで求め、ここに取り込む。4気筒の場合、TDCとTDCの
間は180度であるので、この間の時間をみればエンジン
の回転数が求まる。
B4でエアフローセンサの出力QAを入力し、B5で充填量
CEを計算する。QAはエンジンに吸入される単位時間当た
りの空気量であるので、これから1気筒1回当たりの充
填量を計算する。これがすなわちエンジンの負荷に対応
する。
CEを計算する。QAはエンジンに吸入される単位時間当た
りの空気量であるので、これから1気筒1回当たりの充
填量を計算する。これがすなわちエンジンの負荷に対応
する。
B6では、回転数NEと充填量CEに基づいて、マップから
基本点火時期ABを計算する。マップにはあらかじめ実験
などで求めた点火時期が入っているので、これを呼び出
す。
基本点火時期ABを計算する。マップにはあらかじめ実験
などで求めた点火時期が入っているので、これを呼び出
す。
つぎに、B7で、現在の運転領域がノックゾーンかどう
かを見る。ここでは、充填量CEが300CC以上であればノ
ックゾーンであると判断している。
かを見る。ここでは、充填量CEが300CC以上であればノ
ックゾーンであると判断している。
NO、つまりノックゾーンでないということであれば、
ノッキングコントロールフラッグをクリアし(B8)、学
習補正値をクリアする(B9)。そしてB3に戻っていく。
つまり、ノックゾーンでないところでは基本的な点火時
期だけで制御を行う。
ノッキングコントロールフラッグをクリアし(B8)、学
習補正値をクリアする(B9)。そしてB3に戻っていく。
つまり、ノックゾーンでないところでは基本的な点火時
期だけで制御を行う。
YES、すなわちノックゾーンであれば、ノックコント
ロールフラッグをセットし(B10),B11に行く。
ロールフラッグをセットし(B10),B11に行く。
B11では、回転数NEと充填量CEのマップから現在の学
習ゾーンを計算する。つまり、マップにおける行の番号
jと列の番号kを計算して、現在の運転状態がどのゾー
ンj,kに該当するかを求める。そして、現在の学習ゾー
ンj,kに対応する学習値L ijkをRAM上のマップから読み
出す(B12)。つまり、現在制御する気筒が何番目の気
筒であるか、したがってどのマップを選択するかを、i
で表現し、L ijkを最終的な学習値として読み込む。
習ゾーンを計算する。つまり、マップにおける行の番号
jと列の番号kを計算して、現在の運転状態がどのゾー
ンj,kに該当するかを求める。そして、現在の学習ゾー
ンj,kに対応する学習値L ijkをRAM上のマップから読み
出す(B12)。つまり、現在制御する気筒が何番目の気
筒であるか、したがってどのマップを選択するかを、i
で表現し、L ijkを最終的な学習値として読み込む。
そして、第1気筒の学習補正値AL1を計算し(B13)、
ついでその他の気筒の学習補正値を計算する(B14)。
現在の気筒が第1気筒であればそのままのデータが使わ
れるが、他の気筒であれば、第1気筒のデータAL1jkと
その気筒のデータL ijkとの足し算となる。
ついでその他の気筒の学習補正値を計算する(B14)。
現在の気筒が第1気筒であればそのままのデータが使わ
れるが、他の気筒であれば、第1気筒のデータAL1jkと
その気筒のデータL ijkとの足し算となる。
以上がバックグラウンドルーチンである。
つぎに、第7図および第8図に示すインターラプトル
ーチンを説明する。I1〜I28は各ステップを示す。
ーチンを説明する。I1〜I28は各ステップを示す。
インターラプトルーチンは、ATDC60度の信号が来るた
びに1回作動する。常時はバックグラウンドルーチンが
作動しているが、ATDC60度の信号が来るとインターラプ
トルーチンに飛び、こちらが1回終われば、また飛んだ
位置に戻る。全体的にはそういった制御になっている。
びに1回作動する。常時はバックグラウンドルーチンが
作動しているが、ATDC60度の信号が来るとインターラプ
トルーチンに飛び、こちらが1回終われば、また飛んだ
位置に戻る。全体的にはそういった制御になっている。
第4図で示したATDC60度のクランク角信号でこのルー
チンは走りだし(11)、割り込みが発生したときの時刻
TをFRC(フリーランニングカウンター)から読み取り
(I2)、たとえば今回読み取った時刻をT1とすれば、T1
とその前の回に読み取った時刻T2との差からTDC周期T0
を求める(I3)。そして、次回また周期を計算するため
に、今回の時刻T1をT2に入れていく。すなわち、前回割
り込み時刻を更新する(I4)。
チンは走りだし(11)、割り込みが発生したときの時刻
TをFRC(フリーランニングカウンター)から読み取り
(I2)、たとえば今回読み取った時刻をT1とすれば、T1
とその前の回に読み取った時刻T2との差からTDC周期T0
を求める(I3)。そして、次回また周期を計算するため
に、今回の時刻T1をT2に入れていく。すなわち、前回割
り込み時刻を更新する(I4)。
つぎにI5でノックゾーンであるかどうかを検出する。
つまり、ここで立ったフラッグが1であるかどうかを検
出する。
つまり、ここで立ったフラッグが1であるかどうかを検
出する。
ノックゾーンでなければ(NO)、フィードバック補正
値をクリアする(I6)。
値をクリアする(I6)。
ノックゾーンである(YES)ということであれば、ノ
ック強度IKを入力する(I7)。そして、ノッキングが有
るかどうかをみて(I8)、NO、すなわち無いということ
であれば、I9に行って、それまでに求まっているフィー
ドバック補正値を進角側に修正する。これは、いままで
のフィードバック補正値から所定値(非常に小さい値)
を引いたものを新しい補正値とするという操作である。
ック強度IKを入力する(I7)。そして、ノッキングが有
るかどうかをみて(I8)、NO、すなわち無いということ
であれば、I9に行って、それまでに求まっているフィー
ドバック補正値を進角側に修正する。これは、いままで
のフィードバック補正値から所定値(非常に小さい値)
を引いたものを新しい補正値とするという操作である。
ノッキングがあれば(YES)、I10に行って、ノッキン
グの強度に応じた値(CR×IK、但し、CRは定数、IKはノ
ック強度である)をフィードバック値に加え、I11で非
ノックカウンターをクリアして、I12に行く。
グの強度に応じた値(CR×IK、但し、CRは定数、IKはノ
ック強度である)をフィードバック値に加え、I11で非
ノックカウンターをクリアして、I12に行く。
I12では、学習条件かどうかをみている。つまり、ノ
ッキングが強ければ学習値をより遅角側に修正しなけれ
ばいけないということで、検出したノック強度が学習判
定ノック強度IKL(定数)より大きいかどうかをここで
みている。
ッキングが強ければ学習値をより遅角側に修正しなけれ
ばいけないということで、検出したノック強度が学習判
定ノック強度IKL(定数)より大きいかどうかをここで
みている。
そして、YES、すなわちノッキングが強いときだけ、
現在の気筒の学習補正値を遅角側に修正する(I13)。
具体的には、今までの学習値ALiにAF/Bi×0.1を加えた
ものを新しい学習値にするという操作である。突発的な
ノッキングが起こっただけで後は起こらないという事態
にも対応できるように、修正は微少単位で行う。
現在の気筒の学習補正値を遅角側に修正する(I13)。
具体的には、今までの学習値ALiにAF/Bi×0.1を加えた
ものを新しい学習値にするという操作である。突発的な
ノッキングが起こっただけで後は起こらないという事態
にも対応できるように、修正は微少単位で行う。
I12で、NO、すなわち学習条件でないということであ
れば、学習値の更新を行うことはない。
れば、学習値の更新を行うことはない。
I13で学習値が遅角修正されると、つぎに学習値を更
新するステップに移り、まず、I14で、iが1であるか
どうか、つまり第1気筒であるかどうかをみて、iが1
であれば(YES)、第1気筒の学習値を更新する
(I15)。
新するステップに移り、まず、I14で、iが1であるか
どうか、つまり第1気筒であるかどうかをみて、iが1
であれば(YES)、第1気筒の学習値を更新する
(I15)。
また、iが1でなければ(NO)、現在の気筒の学習値
を更新する(I16)。これは、その気筒の最終的に求め
た補正値ALiと第1気筒の学習値L1jkとの差を求め、こ
の差に対応したものを最終的に記憶するという操作であ
る。
を更新する(I16)。これは、その気筒の最終的に求め
た補正値ALiと第1気筒の学習値L1jkとの差を求め、こ
の差に対応したものを最終的に記憶するという操作であ
る。
このようにして学習値が更新されると、これをもとに
最終点火時期の計算がおこなわれるが、その際、I
17で、そのときの気筒が第何気筒であるかを判定してい
る。つまり、第3図で示したポートに入ってくるシリン
ダー信号をみて、この信号がハイであれば第1気筒であ
り、ロウであればその他の気筒であるということで、ハ
イであれば(YES)、I18で気筒ナンバーiを初期化し
(iを1にする)、ロウであれば(NO)、I19で気筒ナ
ンバーiを更新していく(iにi+1を足していく)。
ここで、たとえばiが2のときは、現在の気筒が点火順
序で2番目の気筒すなわち第3気筒であるということに
なる。
最終点火時期の計算がおこなわれるが、その際、I
17で、そのときの気筒が第何気筒であるかを判定してい
る。つまり、第3図で示したポートに入ってくるシリン
ダー信号をみて、この信号がハイであれば第1気筒であ
り、ロウであればその他の気筒であるということで、ハ
イであれば(YES)、I18で気筒ナンバーiを初期化し
(iを1にする)、ロウであれば(NO)、I19で気筒ナ
ンバーiを更新していく(iにi+1を足していく)。
ここで、たとえばiが2のときは、現在の気筒が点火順
序で2番目の気筒すなわち第3気筒であるということに
なる。
こうして作動気筒を判定した後、I20で最終点火時期
を計算する。
を計算する。
一方、ノッキング領域であって、ノッキングが起こっ
ていないときは前述のとおりI9でフィードバック補正値
を進角側に修正していくのであるが、つづいてI21で、
過去にノッキングが発生しているかどうかをみている。
具体的には、その運転状態における今までの学習値が0
よりも大きければ、その領域で過去にノッキングが起こ
ったというふうに判断する。過去にノッキングが発生し
ていなければ(NO)学習補正値は0であって、更新は無
い。過去にノッキングが起こっている場合(YES)に
は、I22で現気筒の非ノックカウンターをインクレメン
ト(CW/Oi=CW/Oi+1)し、I23で学習条件であるかど
うかをみる。つまり、ノッキングが無いということで
(I8)ここに来ているのであるから、学習値を進角側に
修正しなければならないが、すぐに修正したのではハン
チングを起こすので、確実にノッキングが起きないかど
うかを知るために、300回以上ノッキングの無い状態が
続いたかどうかをみる。ノッキングが300回以上起きな
かったらI24で現気筒の学習値を進角側に修正し、現気
筒の非ノックカウンターをクリアする(I25)。
ていないときは前述のとおりI9でフィードバック補正値
を進角側に修正していくのであるが、つづいてI21で、
過去にノッキングが発生しているかどうかをみている。
具体的には、その運転状態における今までの学習値が0
よりも大きければ、その領域で過去にノッキングが起こ
ったというふうに判断する。過去にノッキングが発生し
ていなければ(NO)学習補正値は0であって、更新は無
い。過去にノッキングが起こっている場合(YES)に
は、I22で現気筒の非ノックカウンターをインクレメン
ト(CW/Oi=CW/Oi+1)し、I23で学習条件であるかど
うかをみる。つまり、ノッキングが無いということで
(I8)ここに来ているのであるから、学習値を進角側に
修正しなければならないが、すぐに修正したのではハン
チングを起こすので、確実にノッキングが起きないかど
うかを知るために、300回以上ノッキングの無い状態が
続いたかどうかをみる。ノッキングが300回以上起きな
かったらI24で現気筒の学習値を進角側に修正し、現気
筒の非ノックカウンターをクリアする(I25)。
このように、一方は、大きなノッキングが起こってい
るので学習値を遅角側に修正するという操作であり、ま
た、他方は、ノッキングが300回以上にわたって起きな
かったから学習値を進角側に修正するという操作であっ
て、これらの操作に基づいてI14〜I18のステップで学習
値を更新するようになっている。そして、前述のとおり
ステップI17〜I20に至り最終点火時期を計算する。最終
点火時期ASは基本点火時期ABからフィードバック補正値
AF/Biと学習値ALiとを引いたものである。なお、ノック
ゾーンでないときは(I5でNO)、AF/BiとALiはともに0
であるから、AS=ABである。
るので学習値を遅角側に修正するという操作であり、ま
た、他方は、ノッキングが300回以上にわたって起きな
かったから学習値を進角側に修正するという操作であっ
て、これらの操作に基づいてI14〜I18のステップで学習
値を更新するようになっている。そして、前述のとおり
ステップI17〜I20に至り最終点火時期を計算する。最終
点火時期ASは基本点火時期ABからフィードバック補正値
AF/Biと学習値ALiとを引いたものである。なお、ノック
ゾーンでないときは(I5でNO)、AF/BiとALiはともに0
であるから、AS=ABである。
つぎに、I26で点火までの時間TCを計算する。
第4図のタイミングチャートから明らかなように、時
間TCにに対応するクランク角は90度から点火時期AS(TD
C前何度)を引いたものである。このクランク角から時
間TCが計算できる。こうして計算した通電時間TCをPTM
にセットする(I27)。第4図の説明でも述べたよう
に、セットした時刻からPTMがハイの信号を出し、時間T
Cが経過するとTPMの出力はロウに落ちる。この時点が点
火時期である。このようにPTMを時間で管理するように
している。
間TCにに対応するクランク角は90度から点火時期AS(TD
C前何度)を引いたものである。このクランク角から時
間TCが計算できる。こうして計算した通電時間TCをPTM
にセットする(I27)。第4図の説明でも述べたよう
に、セットした時刻からPTMがハイの信号を出し、時間T
Cが経過するとTPMの出力はロウに落ちる。この時点が点
火時期である。このようにPTMを時間で管理するように
している。
インターラプトルーチンは、第4図のタイミングチャ
ートでみたように、クランク角信号によって走り出す。
クランク角信号が来た時点でシリンダー信号がハイであ
れば気筒ナンバーiは1であって、ここで計算されたTC
に基づき特定気筒(第1気筒)の点火時期制御が行われ
る。そして、つぎのクランク角信号で、インターラプト
ルーチンはまた走り出す。そのときシリンダー信号がロ
ウであるから、この時点からiは2(第3気筒)にな
る。以下、iは、3(第4気筒)、4(第2気筒)と更
新されていき、つぎに来るハイのシリンダー信号によっ
て1にクリアされる。
ートでみたように、クランク角信号によって走り出す。
クランク角信号が来た時点でシリンダー信号がハイであ
れば気筒ナンバーiは1であって、ここで計算されたTC
に基づき特定気筒(第1気筒)の点火時期制御が行われ
る。そして、つぎのクランク角信号で、インターラプト
ルーチンはまた走り出す。そのときシリンダー信号がロ
ウであるから、この時点からiは2(第3気筒)にな
る。以下、iは、3(第4気筒)、4(第2気筒)と更
新されていき、つぎに来るハイのシリンダー信号によっ
て1にクリアされる。
ところで、本発明は、上記のようなノッキング制御に
限らず、たとえば、多気筒エンジンにおいて気筒毎に空
燃比を制御するようなものであっても良い。燃料を同じ
ように供給しても、気筒間で空燃比がばらつくことは避
けがたいことから、各気筒の空燃比をたとえば14.7に制
御するために、気筒毎にそれぞれ補正値を持つように
し、しかもその補正値の持ちかたを上記のような格好に
することができる。また、上記実施例では、特定の気筒
については2バイトで学習値を表現し、その他の気筒に
ついては1バイト表現とするようになっているが、必要
に応じて、特定気筒は1バイトでその他は1/2バイトで
表現することも可能である。
限らず、たとえば、多気筒エンジンにおいて気筒毎に空
燃比を制御するようなものであっても良い。燃料を同じ
ように供給しても、気筒間で空燃比がばらつくことは避
けがたいことから、各気筒の空燃比をたとえば14.7に制
御するために、気筒毎にそれぞれ補正値を持つように
し、しかもその補正値の持ちかたを上記のような格好に
することができる。また、上記実施例では、特定の気筒
については2バイトで学習値を表現し、その他の気筒に
ついては1バイト表現とするようになっているが、必要
に応じて、特定気筒は1バイトでその他は1/2バイトで
表現することも可能である。
(発明の効果) 本発明はこのように構成されているので、気筒別学習
制御の全体的な精度を落とすことなく記憶容量を低減す
ることができる。したがってまた、従来のようにRAMを
増設する必要がないので、コスト低減、耐ノイズ性向
上,省スペース,軽量化特の効果が得られる。
制御の全体的な精度を落とすことなく記憶容量を低減す
ることができる。したがってまた、従来のようにRAMを
増設する必要がないので、コスト低減、耐ノイズ性向
上,省スペース,軽量化特の効果が得られる。
第1図は本発明の全体構成図、第2図は本発明の一実施
例を示す概略図、第3図は同実施例の要部を示す機能ブ
ロック図、第4図は同実施例における点火時期の基本的
な制御を示すタイミングチャート、第5図は同実施例に
おける遅角量学習値のマップを示す図、第6図,第7
図,および第8図は同実施例の制御を実行するフローチ
ャートである。 1:エンジン本体、2:センサー、3:電気的制御装置、7:配
電器、9:エアフローセンサ。
例を示す概略図、第3図は同実施例の要部を示す機能ブ
ロック図、第4図は同実施例における点火時期の基本的
な制御を示すタイミングチャート、第5図は同実施例に
おける遅角量学習値のマップを示す図、第6図,第7
図,および第8図は同実施例の制御を実行するフローチ
ャートである。 1:エンジン本体、2:センサー、3:電気的制御装置、7:配
電器、9:エアフローセンサ。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 F02D 45/00 340 H 376 B F02P 5/15 5/152 5/153
Claims (1)
- 【請求項1】エンジンの運転状態を検出する運転状態検
出手段と、該運転状態検出手段の出力に基づいて基本制
御量を決定する基本制御量決定手段と、エンジンの気筒
別に燃焼状態を検出する気筒別燃焼検出手段と、該気筒
別燃焼検出手段からの信号に応じて気筒別にフィードバ
ック補正量を決定するフィードバック補正量決定手段
と、フィードバック補正量に基づいて学習値を演算する
学習値演算手段と、現気筒を識別する気筒識別手段と、
該気筒識別手段からの信号を受けて特定気筒の学習値を
記憶する第1の学習値記憶手段と、他の気筒の学習値と
特定気筒の学習値との差を演算する差分演算手段と、該
差分演算手段の出力を前記他の気筒の学習値として記憶
する第2の学習値記憶手段と、基本制御量とフィードバ
ック補正量と学習値とから気筒別の最終制御量を決定す
る最終制御量決定手段と、該最終制御量決定手段の出力
によってエンジンの燃焼状態を制御する燃焼制御手段と
を備え、特定気筒の学習値はそのまま記憶し他の気筒の
学習値は前記特定気筒の学習値との差としてそれぞれ記
憶するようにしたことを特徴とするエンジンの制御装
置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29281386A JPH086630B2 (ja) | 1986-12-08 | 1986-12-08 | エンジンの制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP29281386A JPH086630B2 (ja) | 1986-12-08 | 1986-12-08 | エンジンの制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63147958A JPS63147958A (ja) | 1988-06-20 |
| JPH086630B2 true JPH086630B2 (ja) | 1996-01-29 |
Family
ID=17786681
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP29281386A Expired - Lifetime JPH086630B2 (ja) | 1986-12-08 | 1986-12-08 | エンジンの制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH086630B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE19651238C2 (de) * | 1996-12-10 | 2001-06-21 | Bosch Gmbh Robert | Einrichtung Bestimmung des Zündwinkels einer Brennkraftmaschine |
| DE19742630C2 (de) * | 1997-09-26 | 2001-11-29 | Siemens Ag | Verfahren zur Bestimmung zylinderindividueller Zündwinkel einer mehrzylindrigen Brennkraftmaschine |
-
1986
- 1986-12-08 JP JP29281386A patent/JPH086630B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS63147958A (ja) | 1988-06-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2510250B2 (ja) | 内燃機関の燃焼制御装置 | |
| JPS58143169A (ja) | 点火時期制御方法 | |
| JPH0388945A (ja) | エンジンのノッキング検出方法 | |
| WO2003006808A1 (en) | 4-stroke engine control device and control method | |
| EP0302735B1 (en) | Control apparatus of an internal combustion engine | |
| JP2003286890A (ja) | エンジンの制御装置 | |
| JPH0814271B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPH086630B2 (ja) | エンジンの制御装置 | |
| JPH0320588B2 (ja) | ||
| JP2538626B2 (ja) | 内燃機関の制御装置 | |
| JPH0826838B2 (ja) | 内燃機関の点火時期制御方法 | |
| JP2625933B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPH05141334A (ja) | 内燃機関のノツク制御装置 | |
| JP2625763B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPS63147971A (ja) | エンジンのノツキング制御装置 | |
| JP2586435B2 (ja) | 内燃機関のノッキング制御装置 | |
| JP2766905B2 (ja) | 点火時期学習制御方法 | |
| JPH0735749B2 (ja) | 内燃機関制御用の大気圧予測方法 | |
| JPS59138753A (ja) | エンジンの燃料噴射制御方法 | |
| JP2514442B2 (ja) | 内燃機関のノッキング検出装置 | |
| JP3031469B2 (ja) | 内燃機関の点火時期制御装置 | |
| JP2734056B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPH0526952B2 (ja) | ||
| JP2008144655A (ja) | 内燃機関の制御装置及び方法 | |
| JPH0784861B2 (ja) | 内燃機関の点火時期制御方法 |