JPH1089133A - 内燃機関の空燃比制御装置 - Google Patents
内燃機関の空燃比制御装置Info
- Publication number
- JPH1089133A JPH1089133A JP8260202A JP26020296A JPH1089133A JP H1089133 A JPH1089133 A JP H1089133A JP 8260202 A JP8260202 A JP 8260202A JP 26020296 A JP26020296 A JP 26020296A JP H1089133 A JPH1089133 A JP H1089133A
- Authority
- JP
- Japan
- Prior art keywords
- value
- fuel ratio
- air
- lean
- learning
- 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.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Ignition Timing (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 内燃機関の量産バラツキ等に拘わらず、リー
ンバーン制御時の排気ガス中のNOx排出量を可及的に
低減化可能な内燃機関の制御装置を提供する。 【解決手段】 リーンバーン補正係数KLSAFがリー
ンバーン補正係数リミット値KLSAFLMTに一致し
ている間は、点火時期進角補正量θIGADVをリター
ドさせるためのリタード率KLADVRTDの前回値か
ら所定幅DKLARTDMだけ減算してリタードさせ
(S2)、リタード率が所定の範囲内に収まるようにリ
ミット処理を施した(S4)後に、θIGADVを算出
する(S5)一方、KLSAFがリーンバーン補正係数
リミット値と異なっている間は、前回のリタード率に所
定幅DKLARTDPだけ加算してアドバンスさせた
(S3)後に、ステップS4に進む。但し、θIGAD
VMAPは点火時期進角補正量マップのマップ値を示
し、KLADVは目標空燃比に応じて決定される補正係
数を示す。
ンバーン制御時の排気ガス中のNOx排出量を可及的に
低減化可能な内燃機関の制御装置を提供する。 【解決手段】 リーンバーン補正係数KLSAFがリー
ンバーン補正係数リミット値KLSAFLMTに一致し
ている間は、点火時期進角補正量θIGADVをリター
ドさせるためのリタード率KLADVRTDの前回値か
ら所定幅DKLARTDMだけ減算してリタードさせ
(S2)、リタード率が所定の範囲内に収まるようにリ
ミット処理を施した(S4)後に、θIGADVを算出
する(S5)一方、KLSAFがリーンバーン補正係数
リミット値と異なっている間は、前回のリタード率に所
定幅DKLARTDPだけ加算してアドバンスさせた
(S3)後に、ステップS4に進む。但し、θIGAD
VMAPは点火時期進角補正量マップのマップ値を示
し、KLADVは目標空燃比に応じて決定される補正係
数を示す。
Description
【0001】
【発明の属する技術分野】本発明は、内燃機関の空燃比
制御装置に関し、特に、所謂リーンバーン制御時に機関
の点火時期を燃費及び排気ガス特性の双方を向上するよ
うに制御する制御装置に関する。
制御装置に関し、特に、所謂リーンバーン制御時に機関
の点火時期を燃費及び排気ガス特性の双方を向上するよ
うに制御する制御装置に関する。
【0002】
【従来の技術】近年、内燃機関の燃費の向上を図るため
に、機関に供給する混合気の空燃比を理論空燃比よりリ
ーン側の空燃比(以下「リーン空燃比」という)に制御
する、所謂リーンバーン制御が広く採用されている。
に、機関に供給する混合気の空燃比を理論空燃比よりリ
ーン側の空燃比(以下「リーン空燃比」という)に制御
する、所謂リーンバーン制御が広く採用されている。
【0003】かかるリーンバーン制御の手法としては、
例えば、機関に供給する混合気の空燃比を目標のリーン
空燃比に制御し、そのときの機関の回転変動量を検出し
て、該検出した回転変動量が所定の変動幅に収まるよう
に空燃比をフィードバック制御することにより、機関の
燃焼状態が不安定となってサージングが発生する限界
(以下「サージ限界」という)ぎりぎりにリーン空燃比
を制御するものが知られている。これに加えて、このリ
ーンバーン制御時に、機関の燃焼状態の安定化や排気ガ
ス特性の向上等のために、機関の点火時期を進角側又は
遅角側に変更制御する手法も知られている。このような
手法を用いて、サージ限界にリーン空燃比を制御するこ
とにより、燃費の向上を図りながら排気ガス中のNOx
排出量を低減させることができる。
例えば、機関に供給する混合気の空燃比を目標のリーン
空燃比に制御し、そのときの機関の回転変動量を検出し
て、該検出した回転変動量が所定の変動幅に収まるよう
に空燃比をフィードバック制御することにより、機関の
燃焼状態が不安定となってサージングが発生する限界
(以下「サージ限界」という)ぎりぎりにリーン空燃比
を制御するものが知られている。これに加えて、このリ
ーンバーン制御時に、機関の燃焼状態の安定化や排気ガ
ス特性の向上等のために、機関の点火時期を進角側又は
遅角側に変更制御する手法も知られている。このような
手法を用いて、サージ限界にリーン空燃比を制御するこ
とにより、燃費の向上を図りながら排気ガス中のNOx
排出量を低減させることができる。
【0004】一方、上記のような実際の空燃比を直接検
知するセンサを持たないリーンバーン制御においては、
通常実際に機関に供給されている混合気の空燃比(以下
「実空燃比」という)を検知することができないので、
混合気の空燃比(実空燃比)が理論空燃比となる基本燃
料噴射量を予めマップ値として記憶しておき、この基本
燃料噴射量に機関の運転状態に応じて決定された目標リ
ーン空燃比に応じたリーンバーン補正係数を乗算して燃
料噴射量を算出し、目標リーン空燃比に実空燃比が一致
するように制御している。同様にして、点火時期制御
も、前記実空燃比を検知することができないので、実空
燃比が理論空燃比となる基本点火時期を予めマップ値と
して記憶しておき、この基本点火時期に前記目標リーン
空燃比に応じて決定した点火時期補正量を乗算すること
により点火時期を変更制御するようにしている。
知するセンサを持たないリーンバーン制御においては、
通常実際に機関に供給されている混合気の空燃比(以下
「実空燃比」という)を検知することができないので、
混合気の空燃比(実空燃比)が理論空燃比となる基本燃
料噴射量を予めマップ値として記憶しておき、この基本
燃料噴射量に機関の運転状態に応じて決定された目標リ
ーン空燃比に応じたリーンバーン補正係数を乗算して燃
料噴射量を算出し、目標リーン空燃比に実空燃比が一致
するように制御している。同様にして、点火時期制御
も、前記実空燃比を検知することができないので、実空
燃比が理論空燃比となる基本点火時期を予めマップ値と
して記憶しておき、この基本点火時期に前記目標リーン
空燃比に応じて決定した点火時期補正量を乗算すること
により点火時期を変更制御するようにしている。
【0005】しかし、機関の量産バラツキ(例えば、イ
ンジェクタの流量特性のバラツキや機関の吸入効率のバ
ラツキ等)、機関の劣化によるバラツキ、又は外部環境
の変化等により、予めマッピングされた基本燃料量とこ
れに対応して実際に噴射される燃料量とにズレが発生し
た場合には、目標リーン空燃比と実空燃比とが合致せ
ず、目標空燃比が実空燃比に対して、リッチ側又はリー
ン側へずれる可能性が生ずる。
ンジェクタの流量特性のバラツキや機関の吸入効率のバ
ラツキ等)、機関の劣化によるバラツキ、又は外部環境
の変化等により、予めマッピングされた基本燃料量とこ
れに対応して実際に噴射される燃料量とにズレが発生し
た場合には、目標リーン空燃比と実空燃比とが合致せ
ず、目標空燃比が実空燃比に対して、リッチ側又はリー
ン側へずれる可能性が生ずる。
【0006】このような場合には、図32に示すよう
に、リーン燃焼が可能なリーン限界空燃比であるリーン
バーン補正係数のリーン限界値(KLSAFLMT)を
予め設定しておき、リーンバーン補正係数(KLSA
F)をこのリーン限界値よりリーン側にならないように
制御している。
に、リーン燃焼が可能なリーン限界空燃比であるリーン
バーン補正係数のリーン限界値(KLSAFLMT)を
予め設定しておき、リーンバーン補正係数(KLSA
F)をこのリーン限界値よりリーン側にならないように
制御している。
【0007】
【発明が解決しようとする課題】しかしながら、上記従
来の手法では、図33に示すように、実空燃比と目標リ
ーン空燃比とにズレが発生した場合には、サージングが
発生する限界時点を検出する前にリーンバーン補正係数
(目標リーン空燃比)がリーン限界値(KLSAFLM
T)に張り付くことがあり、このとき、排気ガス中のN
Ox排出量が最小となる空燃比よりもリッチ側に空燃比
が制御されてしまう上、この実空燃比よりリーン側の目
標リーン空燃比に応じて点火時期補正量が決定されるた
め、この点火時期補正量は、実空燃比に対応する点火時
期補正量よりさらに進角した補正量となり、排気ガス中
のNOx排出量は増大することになる。
来の手法では、図33に示すように、実空燃比と目標リ
ーン空燃比とにズレが発生した場合には、サージングが
発生する限界時点を検出する前にリーンバーン補正係数
(目標リーン空燃比)がリーン限界値(KLSAFLM
T)に張り付くことがあり、このとき、排気ガス中のN
Ox排出量が最小となる空燃比よりもリッチ側に空燃比
が制御されてしまう上、この実空燃比よりリーン側の目
標リーン空燃比に応じて点火時期補正量が決定されるた
め、この点火時期補正量は、実空燃比に対応する点火時
期補正量よりさらに進角した補正量となり、排気ガス中
のNOx排出量は増大することになる。
【0008】本発明は、上記問題に鑑みてなされたもの
で、内燃機関の量産バラツキ等に拘わらず、リーンバー
ン制御時の排気ガス中のNOx排出量を可及的に低減化
させることが可能な内燃機関の制御装置を提供すること
を目的とする。
で、内燃機関の量産バラツキ等に拘わらず、リーンバー
ン制御時の排気ガス中のNOx排出量を可及的に低減化
させることが可能な内燃機関の制御装置を提供すること
を目的とする。
【0009】
【課題を解決するための手段】上記目的を達成するため
本発明は、内燃機関の運転状態及び該機関の燃焼状態を
検出し、該検出された運転状態及び燃焼状態に応じて該
機関に供給する混合気の空燃比の目標値を決定し、該決
定された空燃比になるように前記混合気を制御する内燃
機関の空燃比制御装置において、前記検出された運転状
態及び燃焼状態に応じて前記機関の点火時期を決定する
点火時期算出手段と、前記空燃比のリーン側の限界値を
設定するリーン限界設定手段と、前記空燃比の目標値が
前記リーン側の限界値に一致している間、前記決定され
た点火時期を徐々に遅角させる点火時期変更手段とを有
することを特徴とする。
本発明は、内燃機関の運転状態及び該機関の燃焼状態を
検出し、該検出された運転状態及び燃焼状態に応じて該
機関に供給する混合気の空燃比の目標値を決定し、該決
定された空燃比になるように前記混合気を制御する内燃
機関の空燃比制御装置において、前記検出された運転状
態及び燃焼状態に応じて前記機関の点火時期を決定する
点火時期算出手段と、前記空燃比のリーン側の限界値を
設定するリーン限界設定手段と、前記空燃比の目標値が
前記リーン側の限界値に一致している間、前記決定され
た点火時期を徐々に遅角させる点火時期変更手段とを有
することを特徴とする。
【0010】これにより、前記空燃比の目標値が前記リ
ーン側の限界値に一致している間、前記決定された点火
時期が徐々に遅角されるので、機関の量産バラツキ等に
拘わらず、サージングが発生する限界値に空燃比の目標
値を設定することができ、リーンバーン制御時の排気ガ
ス中のNOx排出量を可及的に低減化させることができ
る。
ーン側の限界値に一致している間、前記決定された点火
時期が徐々に遅角されるので、機関の量産バラツキ等に
拘わらず、サージングが発生する限界値に空燃比の目標
値を設定することができ、リーンバーン制御時の排気ガ
ス中のNOx排出量を可及的に低減化させることができ
る。
【0011】また、好ましくは、前記点火時期変更手段
は、前記空燃比の目標値が前記リーン側の限界値からリ
ッチ側に外れたときに、前記遅角された点火時期を徐々
に進角させることを特徴とする。
は、前記空燃比の目標値が前記リーン側の限界値からリ
ッチ側に外れたときに、前記遅角された点火時期を徐々
に進角させることを特徴とする。
【0012】これにより、前記空燃比の目標値が前記リ
ーン側の限界値からリッチ側に外れたときに、前記遅角
された点火時期が徐々に進角される、即ち復帰するの
で、請求項1の構成による効果をさらに高めることがで
きる。
ーン側の限界値からリッチ側に外れたときに、前記遅角
された点火時期が徐々に進角される、即ち復帰するの
で、請求項1の構成による効果をさらに高めることがで
きる。
【0013】
【発明の実施の形態】以下本発明の実施の形態を図面を
参照して説明する。
参照して説明する。
【0014】図1は本発明の実施の一形態に係る内燃機
関(以下「エンジン」という)及びその制御装置の全体
の構成図であり、エンジン1の吸気管2の途中にはスロ
ットル弁3が配されている。スロットル弁3にはスロッ
トル弁開度(θTH)センサ4が連結されており、当該
スロットル弁3の開度に応じた電気信号を出力して電子
コントロールユニット(以下「ECU」という)5に供
給する。
関(以下「エンジン」という)及びその制御装置の全体
の構成図であり、エンジン1の吸気管2の途中にはスロ
ットル弁3が配されている。スロットル弁3にはスロッ
トル弁開度(θTH)センサ4が連結されており、当該
スロットル弁3の開度に応じた電気信号を出力して電子
コントロールユニット(以下「ECU」という)5に供
給する。
【0015】燃料噴射弁6はエンジン1とスロットル弁
3との間且つ吸気管2の図示しない吸気弁の少し上流側
に各気筒毎に設けられており、各噴射弁は図示しない燃
料ポンプに接続されていると共にECU5に電気的に接
続されて当該ECU5からの信号により燃料噴射弁6の
開弁時間が制御される。
3との間且つ吸気管2の図示しない吸気弁の少し上流側
に各気筒毎に設けられており、各噴射弁は図示しない燃
料ポンプに接続されていると共にECU5に電気的に接
続されて当該ECU5からの信号により燃料噴射弁6の
開弁時間が制御される。
【0016】エンジン1の各気筒毎に設けられた点火プ
ラグ31は図示しない駆動回路を介してECU5に接続
されており、ECU5からの信号により点火プラグ31
の点火時期θIGが制御される。
ラグ31は図示しない駆動回路を介してECU5に接続
されており、ECU5からの信号により点火プラグ31
の点火時期θIGが制御される。
【0017】一方、スロットル弁3の直ぐ下流には管7
を介して吸気管内絶対圧(PBA)センサ8が設けられ
ており、吸気管内絶対圧を検出して対応する絶対圧信号
を前記ECU5にする。また、その下流には吸気温(T
A)センサ9が取付けられており、吸気温TAを検出し
て対応する電気信号を出力してECU5に供給する。
を介して吸気管内絶対圧(PBA)センサ8が設けられ
ており、吸気管内絶対圧を検出して対応する絶対圧信号
を前記ECU5にする。また、その下流には吸気温(T
A)センサ9が取付けられており、吸気温TAを検出し
て対応する電気信号を出力してECU5に供給する。
【0018】エンジン1の本体に装着されたエンジン水
温(TW)センサ10はサーミスタ等から成り、エンジ
ン水温(冷却水温)TWを検出して対応する温度信号を
出力してECU5に供給する。
温(TW)センサ10はサーミスタ等から成り、エンジ
ン水温(冷却水温)TWを検出して対応する温度信号を
出力してECU5に供給する。
【0019】エンジン1の図示しないカム軸周囲又はク
ランク軸周囲には、エンジン1の特定の気筒の所定クラ
ンク角度位置で信号パルス(以下「CYL信号パルス」
という)を出力する気筒判別センサ(以下「CYLセン
サ」という)13、各気筒の吸入行程開始時の上死点
(TDC)に関し所定クランク角度前のクランク角度位
置で(4気筒エンジンではクランク角180゜毎に)T
DC信号パルスを発生するTDCセンサ12、及び前記
TDC信号パルスの周期より短い一定クランク角(例え
ば30゜)周期で1パルス(以下「CRK信号パルス」
という)を発生するクランク角センサ(以下「CRKセ
ンサ」という)11が取り付けられており、CYL信号
パルスTDC信号パルス及びCRK信号(クランク角信
号)パルスはECU5に供給される。
ランク軸周囲には、エンジン1の特定の気筒の所定クラ
ンク角度位置で信号パルス(以下「CYL信号パルス」
という)を出力する気筒判別センサ(以下「CYLセン
サ」という)13、各気筒の吸入行程開始時の上死点
(TDC)に関し所定クランク角度前のクランク角度位
置で(4気筒エンジンではクランク角180゜毎に)T
DC信号パルスを発生するTDCセンサ12、及び前記
TDC信号パルスの周期より短い一定クランク角(例え
ば30゜)周期で1パルス(以下「CRK信号パルス」
という)を発生するクランク角センサ(以下「CRKセ
ンサ」という)11が取り付けられており、CYL信号
パルスTDC信号パルス及びCRK信号(クランク角信
号)パルスはECU5に供給される。
【0020】三元触媒15がエンジン1の排気管14に
配置されており、排気ガス中のHC,CO,NOx等の
成分の浄化を行う。排気管14の三元触媒15の上流側
には、空燃比センサとしての酸素濃度センサ16(以下
「O2センサ16」という)が装着されており、このO
2センサ16は排気ガス中の酸素濃度を検出し、その検
出値に応じた電気信号を出力しECU5に供給する。
配置されており、排気ガス中のHC,CO,NOx等の
成分の浄化を行う。排気管14の三元触媒15の上流側
には、空燃比センサとしての酸素濃度センサ16(以下
「O2センサ16」という)が装着されており、このO
2センサ16は排気ガス中の酸素濃度を検出し、その検
出値に応じた電気信号を出力しECU5に供給する。
【0021】ECU5には、さらにエンジン1が搭載さ
れた車両の走行速度Vを検出する車速センサ20、当該
車両のトランスミッションのギヤ比(ギヤ位置)を検出
するギヤ比センサ21等の各種センサが接続されてお
り、これらのセンサの検出信号がECU5に供給され
る。また、ギヤ比は車速Vとエンジン回転数NEとから
求めてもよい。
れた車両の走行速度Vを検出する車速センサ20、当該
車両のトランスミッションのギヤ比(ギヤ位置)を検出
するギヤ比センサ21等の各種センサが接続されてお
り、これらのセンサの検出信号がECU5に供給され
る。また、ギヤ比は車速Vとエンジン回転数NEとから
求めてもよい。
【0022】ECU5は各種センサからの入力信号波形
を整形し、電圧レベルを所定レベルに修正し、アナログ
信号値をデジタル信号値に変換する等の機能を有する入
力回路5a、中央演算処理回路(以下「CPU」とい
う)5b、CPU5bで実行される各種演算プログラム
及び演算結果等を記憶する記憶手段5c、前記燃料噴射
弁6に駆動信号を供給する出力回路5d等から構成され
る。
を整形し、電圧レベルを所定レベルに修正し、アナログ
信号値をデジタル信号値に変換する等の機能を有する入
力回路5a、中央演算処理回路(以下「CPU」とい
う)5b、CPU5bで実行される各種演算プログラム
及び演算結果等を記憶する記憶手段5c、前記燃料噴射
弁6に駆動信号を供給する出力回路5d等から構成され
る。
【0023】CPU5bは上述の各種エンジンパラメー
タ信号に基づいて、排気ガス中の酸素濃度に応じたフィ
ードバック制御運転領域やオープンループ制御運転領域
等の種々のエンジン運転状態を判別するとともに、エン
ジン運転状態に応じ、次式(1)に基づき、前記TDC
信号パルスに同期する燃料噴射弁6の燃料噴射時間TO
UTを演算する。
タ信号に基づいて、排気ガス中の酸素濃度に応じたフィ
ードバック制御運転領域やオープンループ制御運転領域
等の種々のエンジン運転状態を判別するとともに、エン
ジン運転状態に応じ、次式(1)に基づき、前記TDC
信号パルスに同期する燃料噴射弁6の燃料噴射時間TO
UTを演算する。
【0024】 TOUT=TI×KLSAFM×KO2×K1+K2 …(1) ここに、TIは基本燃料量、具体的にはエンジン回転数
NEと吸気管内絶対圧PBAとに応じて決定される基本
燃料噴射時間であり、このTI値を決定するためのTI
マップが記憶手段5cに記憶されている。
NEと吸気管内絶対圧PBAとに応じて決定される基本
燃料噴射時間であり、このTI値を決定するためのTI
マップが記憶手段5cに記憶されている。
【0025】KLSAFMは、エンジン1及び当該車両
の所定運転状態において「1.0」より小さい値に設定
されるリーンバーン補正係数KLSAFに対して体積効
率補正をおこなった後の修正リーンバーン補正係数であ
り、この修正リーンバーン補正係数KLSAFMの算出
手法は、図11を参照して後述する。
の所定運転状態において「1.0」より小さい値に設定
されるリーンバーン補正係数KLSAFに対して体積効
率補正をおこなった後の修正リーンバーン補正係数であ
り、この修正リーンバーン補正係数KLSAFMの算出
手法は、図11を参照して後述する。
【0026】KO2は、O2センサ16の出力に基づい
て算出される空燃比補正係数であり、空燃比フィードバ
ック制御中はO2センサ16によって検出された空燃比
(酸素濃度)が理論空燃比に一致するように設定され、
オープンループ制御中はエンジン運転状態に応じた所定
値又は学習値に設定され、また、リーンバーン制御中は
学習値に設定される。この空燃比補正係数KO2の算出
方法は、図2を参照して後述する。
て算出される空燃比補正係数であり、空燃比フィードバ
ック制御中はO2センサ16によって検出された空燃比
(酸素濃度)が理論空燃比に一致するように設定され、
オープンループ制御中はエンジン運転状態に応じた所定
値又は学習値に設定され、また、リーンバーン制御中は
学習値に設定される。この空燃比補正係数KO2の算出
方法は、図2を参照して後述する。
【0027】K1及びK2は、それぞれ各種エンジンパ
ラメータ信号に応じて演算される他の補正係数及び補正
変数であり、エンジン運転状態に応じた燃費特性、エン
ジン加速特性等の諸特性の最適化が図られるような値に
設定される。
ラメータ信号に応じて演算される他の補正係数及び補正
変数であり、エンジン運転状態に応じた燃費特性、エン
ジン加速特性等の諸特性の最適化が図られるような値に
設定される。
【0028】以下CPU5bで実行される制御処理を説
明する。
明する。
【0029】図2は、前記空燃比補正係数KO2を算出
するKO2算出処理の手順を示すフローチャートであ
り、本処理は、TDC信号パルスの発生に同期して実行
される。
するKO2算出処理の手順を示すフローチャートであ
り、本処理は、TDC信号パルスの発生に同期して実行
される。
【0030】同図において、先ずエンジン1がアイドル
状態にあることを「1」で示すアイドルフラグFIDL
Eが「1」か否かを判別し(ステップS11)、アイド
ル状態であるとき(FIDLE=1)は、後述する空燃
比補正係数KO2の学習値KREF2の算出をアイドル
状態後所定時間TREF2内のみに行うためのタイマt
mREF2に該時間TREF2をセットしてスタートさ
せる(ステップS12)一方、アイドル状態でないとき
(FIDLE=0)には、ステップS12をスキップし
てステップS13に進む。
状態にあることを「1」で示すアイドルフラグFIDL
Eが「1」か否かを判別し(ステップS11)、アイド
ル状態であるとき(FIDLE=1)は、後述する空燃
比補正係数KO2の学習値KREF2の算出をアイドル
状態後所定時間TREF2内のみに行うためのタイマt
mREF2に該時間TREF2をセットしてスタートさ
せる(ステップS12)一方、アイドル状態でないとき
(FIDLE=0)には、ステップS12をスキップし
てステップS13に進む。
【0031】ステップS13では、前記O2センサ16
の出力に応じた空燃比フィードバック制御モード(以
下、「フィードバックモード」という)MO2FBが
「3」、即ち、図3を用いて後述するKO2フィードバ
ック処理を実行するモードであるか否かを判別し、MO
2FB=3のときには、KO2フィードバック処理サブ
ルーチンを実行した(ステップS14)後に、本KO2
算出処理を終了する。
の出力に応じた空燃比フィードバック制御モード(以
下、「フィードバックモード」という)MO2FBが
「3」、即ち、図3を用いて後述するKO2フィードバ
ック処理を実行するモードであるか否かを判別し、MO
2FB=3のときには、KO2フィードバック処理サブ
ルーチンを実行した(ステップS14)後に、本KO2
算出処理を終了する。
【0032】一方、ステップS13で、MO2FB≠3
のときには、フィードバックモードMO2FBが
「1」、即ち空燃比補正係数KO2をホールドするモー
ド、換言すれば空燃比補正係数KO2を新たに算出した
値で更新しないモードであるか否かを判別し(ステップ
S15)、MO2FB=1のときには、空燃比補正係数
KO2をホールドして(ステップS16)ステップS2
2に進む一方、MO2FB≠1のときにはステップS1
7に進む。
のときには、フィードバックモードMO2FBが
「1」、即ち空燃比補正係数KO2をホールドするモー
ド、換言すれば空燃比補正係数KO2を新たに算出した
値で更新しないモードであるか否かを判別し(ステップ
S15)、MO2FB=1のときには、空燃比補正係数
KO2をホールドして(ステップS16)ステップS2
2に進む一方、MO2FB≠1のときにはステップS1
7に進む。
【0033】なお、フィードバックモードMO2FB
は、図示しないO2フィードバックモード決定処理にお
いて決定される。
は、図示しないO2フィードバックモード決定処理にお
いて決定される。
【0034】ステップS17では、リーンバーン制御実
行中であることを「1」で示すSLB実行中フラグFS
LB(後述する図12のステップS149参照)が
「1」であるか否かを判別し、FSLB=1のときには
ステップS18に進み、空燃比補正係数KO2を、リー
ンバーン制御実行時に使用するリーン制御学習値KRE
FAFに設定する。
行中であることを「1」で示すSLB実行中フラグFS
LB(後述する図12のステップS149参照)が
「1」であるか否かを判別し、FSLB=1のときには
ステップS18に進み、空燃比補正係数KO2を、リー
ンバーン制御実行時に使用するリーン制御学習値KRE
FAFに設定する。
【0035】本実施の形態では、リーンバーン制御時に
使用する空燃比補正係数KO2は、エンジン1の量産バ
ラツキ等を吸収するために学習値を用いており、この学
習値は、理論空燃比フィードバック制御時に、図22に
示す2種類の算出領域、即ち、エンジン回転数NEおよ
び吸気管内絶対圧PBAがそれぞれNKSLBRL≦N
E≦NKSLBRH,PBSLBR1L≦PBA≦PB
SLBR1Hを満たす低負荷側領域(以下「KREFA
F1学習領域」という)及び、エンジン回転数NEおよ
び吸気管内絶対圧PBAがそれぞれNKSLBRL≦N
E≦NKSLBRH,PBSLBR2L≦PBA≦PB
SLBR2Hを満たす高負荷側領域(以下「KREFA
F2学習領域」という)において、公知の加重平均法に
よりそれぞれ算出される。以下、KREFAF1学習領
域において算出した学習値を「リーン制御低負荷側学習
値KREFAF1」といい、KREFAF2学習領域に
おいて算出した学習値を「リーン制御低高負荷側学習値
KREFAF2」という。
使用する空燃比補正係数KO2は、エンジン1の量産バ
ラツキ等を吸収するために学習値を用いており、この学
習値は、理論空燃比フィードバック制御時に、図22に
示す2種類の算出領域、即ち、エンジン回転数NEおよ
び吸気管内絶対圧PBAがそれぞれNKSLBRL≦N
E≦NKSLBRH,PBSLBR1L≦PBA≦PB
SLBR1Hを満たす低負荷側領域(以下「KREFA
F1学習領域」という)及び、エンジン回転数NEおよ
び吸気管内絶対圧PBAがそれぞれNKSLBRL≦N
E≦NKSLBRH,PBSLBR2L≦PBA≦PB
SLBR2Hを満たす高負荷側領域(以下「KREFA
F2学習領域」という)において、公知の加重平均法に
よりそれぞれ算出される。以下、KREFAF1学習領
域において算出した学習値を「リーン制御低負荷側学習
値KREFAF1」といい、KREFAF2学習領域に
おいて算出した学習値を「リーン制御低高負荷側学習値
KREFAF2」という。
【0036】そして、リーンバーン制御時に、各学習領
域においてそれぞれ算出された学習値KREFAF1,
KREFAF2を吸気管内絶対圧PBAの方向で補間
(例えば線形補間)し、即ち図23に示すように、算出
された学習値KREFAF1に対応する吸気管内絶対圧
を値PBKREFLとするとともに、算出された学習値
KREFAF2に対応する吸気管内絶対圧値を値PBK
REFHとし、値PBKREFLとPBKREFHの間
の実際の吸気管内絶対圧に対応するKREFAF値を補
間により求め、該補間値を前記リーン制御学習値KRE
FAFに設定する。
域においてそれぞれ算出された学習値KREFAF1,
KREFAF2を吸気管内絶対圧PBAの方向で補間
(例えば線形補間)し、即ち図23に示すように、算出
された学習値KREFAF1に対応する吸気管内絶対圧
を値PBKREFLとするとともに、算出された学習値
KREFAF2に対応する吸気管内絶対圧値を値PBK
REFHとし、値PBKREFLとPBKREFHの間
の実際の吸気管内絶対圧に対応するKREFAF値を補
間により求め、該補間値を前記リーン制御学習値KRE
FAFに設定する。
【0037】一方、ステップS17で、FSLB=0の
ときにはステップS19に進み、前記アイドルフラグF
IDLEが「1」であるか否かを判別し、アイドル状態
であるとき(FIDLE=1)には、空燃比補正係数K
O2を、エンジン1がフィードバック制御領域のアイド
ル運転領域にあるときに学習した学習値(以下「アイド
ル学習値」という)KREF0に設定した(ステップS
20)後にステップS22に進む一方、アイドル状態で
ないとき(FIDLE=0)には、空燃比補正係数KO
2を、エンジン1がフィードバック制御領域内のアイド
ル運転領域にないときに学習され、且つ前記KO2フィ
ードバック処理において設定されない学習値(以下「オ
フアイドル学習値」という)KREF1に設定した(ス
テップS21)後にステップS22に進む。
ときにはステップS19に進み、前記アイドルフラグF
IDLEが「1」であるか否かを判別し、アイドル状態
であるとき(FIDLE=1)には、空燃比補正係数K
O2を、エンジン1がフィードバック制御領域のアイド
ル運転領域にあるときに学習した学習値(以下「アイド
ル学習値」という)KREF0に設定した(ステップS
20)後にステップS22に進む一方、アイドル状態で
ないとき(FIDLE=0)には、空燃比補正係数KO
2を、エンジン1がフィードバック制御領域内のアイド
ル運転領域にないときに学習され、且つ前記KO2フィ
ードバック処理において設定されない学習値(以下「オ
フアイドル学習値」という)KREF1に設定した(ス
テップS21)後にステップS22に進む。
【0038】ステップS22では、空燃比補正係数KO
2の学習領域であることを「1」で示すKO2学習領域
フラグFKREFZNを「0」に設定した後に、本KO
2算出処理を終了する。
2の学習領域であることを「1」で示すKO2学習領域
フラグFKREFZNを「0」に設定した後に、本KO
2算出処理を終了する。
【0039】図3は、前記ステップS14のKO2フィ
ードバック処理サブルーチンの詳細な手順を示すフロー
チャートである。
ードバック処理サブルーチンの詳細な手順を示すフロー
チャートである。
【0040】同図において、先ず前回の制御がオープン
ループ制御であったか否かを判別し(ステップS3
1)、オープンループ制御でないときには、前回検出し
たスロットル弁開度θTHがアイドル時のスロットル弁
開度θTHIDLE以上であるか否かを判別する(ステ
ップS32)。
ループ制御であったか否かを判別し(ステップS3
1)、オープンループ制御でないときには、前回検出し
たスロットル弁開度θTHがアイドル時のスロットル弁
開度θTHIDLE以上であるか否かを判別する(ステ
ップS32)。
【0041】ステップS32で、前回θTH≧θTHI
DLEのときには、前記O2センサ16の出力値VO2
が所定基準値VREF1に対してその大小関係が反転し
たか否かを判別し(ステップS33)、O2センサ出力
値VO2が反転したときには、ステップS34以下で空
燃比補正係数KO2の比例制御(P項制御)を行う一
方、反転しないときには、ステップS43以下で空燃比
補正係数KO2の積分制御(I項制御)を行う。
DLEのときには、前記O2センサ16の出力値VO2
が所定基準値VREF1に対してその大小関係が反転し
たか否かを判別し(ステップS33)、O2センサ出力
値VO2が反転したときには、ステップS34以下で空
燃比補正係数KO2の比例制御(P項制御)を行う一
方、反転しないときには、ステップS43以下で空燃比
補正係数KO2の積分制御(I項制御)を行う。
【0042】一方、前記ステップS32で、前回θTH
<θTHIDLEのときには、今回検出したスロットル
弁開度θTHが前記アイドル時のスロットル弁開度θT
HIDLE以上であるか否かを判別し(ステップS3
8)、θTH<θTHIDLEのときには前記ステップ
S33に進む一方、θTH≧θTHIDLEのときには
ステップS39に進み、後述する図5のKO2のI項算
出処理において、I項を加算又は減算する時間幅(所定
時間)を決定するカウンタcIに、該時間幅に対応する
カウント値CIをセットする。
<θTHIDLEのときには、今回検出したスロットル
弁開度θTHが前記アイドル時のスロットル弁開度θT
HIDLE以上であるか否かを判別し(ステップS3
8)、θTH<θTHIDLEのときには前記ステップ
S33に進む一方、θTH≧θTHIDLEのときには
ステップS39に進み、後述する図5のKO2のI項算
出処理において、I項を加算又は減算する時間幅(所定
時間)を決定するカウンタcIに、該時間幅に対応する
カウント値CIをセットする。
【0043】続くステップS40では、前記アイドルフ
ラグFIDLEの前回値が「1」であるか否かを判別
し、前回FIDLE=1のときには、空燃比補正係数K
O2を、前記積分制御時に学習され、且つ前記KO2フ
ィードバック処理内のみで使用される学習値(以下「積
分制御学習値」という)KREF2に設定した(ステッ
プS41)後に、ステップS43に進む一方、前回FI
DLE=0のときには、空燃比補正係数KO2を、前記
オフアイドル学習値KREF1と値1.0より大きな値
に設定されるリッチ化所定値CRとの乗算結果(KRE
F1×CR)に設定した後に、ステップS43に進む。
ラグFIDLEの前回値が「1」であるか否かを判別
し、前回FIDLE=1のときには、空燃比補正係数K
O2を、前記積分制御時に学習され、且つ前記KO2フ
ィードバック処理内のみで使用される学習値(以下「積
分制御学習値」という)KREF2に設定した(ステッ
プS41)後に、ステップS43に進む一方、前回FI
DLE=0のときには、空燃比補正係数KO2を、前記
オフアイドル学習値KREF1と値1.0より大きな値
に設定されるリッチ化所定値CRとの乗算結果(KRE
F1×CR)に設定した後に、ステップS43に進む。
【0044】一方、前記ステップS31で、前回の制御
がオープンループ制御のときには、前記ステップS39
と同様にして、カウンタcIに所定時間CIをセットし
(ステップS46)、今回アイドル状態であるか否か、
即ちアイドルフラグFIDLEが「1」であるか否かを
判別する(ステップS47)。
がオープンループ制御のときには、前記ステップS39
と同様にして、カウンタcIに所定時間CIをセットし
(ステップS46)、今回アイドル状態であるか否か、
即ちアイドルフラグFIDLEが「1」であるか否かを
判別する(ステップS47)。
【0045】ステップS47で、FIDLE=0のとき
には前記ステップS42に進み、空燃比補正係数KO2
をKREF1×CRに設定した後に、前記ステップS4
3に進む一方、FIDLE=1のときにはステップS4
8に進み、空燃比補正係数KO2を前記アイドル学習値
KREF0に設定した後に、前記ステップS43に進
む。即ち、ステップS41,S42,S48の各処理
は、積分制御時の初期値を決定するものである。
には前記ステップS42に進み、空燃比補正係数KO2
をKREF1×CRに設定した後に、前記ステップS4
3に進む一方、FIDLE=1のときにはステップS4
8に進み、空燃比補正係数KO2を前記アイドル学習値
KREF0に設定した後に、前記ステップS43に進
む。即ち、ステップS41,S42,S48の各処理
は、積分制御時の初期値を決定するものである。
【0046】ステップS43では、積分項(I項)を決
定し空燃比補正係数KO2の値を算出(変更制御)する
KO2I項算出処理サブルーチン(その詳細は図5を用
いて後述する)を実行し、ステップS44では、ステッ
プS43で算出された空燃比補正係数KO2のリミット
処理を実行し、前記積分制御学習値KREF2を算出す
るKREF2算出処理サブルーチン(その詳細は図7を
用いて後述する)を実行した後に、ステップS37に進
む。
定し空燃比補正係数KO2の値を算出(変更制御)する
KO2I項算出処理サブルーチン(その詳細は図5を用
いて後述する)を実行し、ステップS44では、ステッ
プS43で算出された空燃比補正係数KO2のリミット
処理を実行し、前記積分制御学習値KREF2を算出す
るKREF2算出処理サブルーチン(その詳細は図7を
用いて後述する)を実行した後に、ステップS37に進
む。
【0047】ステップS34では、比例項(P項)を決
定し空燃比補正係数KO2の値を算出(変更制御)する
KO2P項算出処理サブルーチン(その詳細は図4を用
いて後述する)を実行し、ステップS35では、ステッ
プS34で算出された空燃比補正係数KO2のリミット
処理を実行し、前記アイドル学習値KREF0及び前記
オフアイドル学習値KREF1を算出するKREF0,
1算出処理サブルーチン(その詳細は図6を用いて後述
する)を実行した後に、ステップS37に進む。
定し空燃比補正係数KO2の値を算出(変更制御)する
KO2P項算出処理サブルーチン(その詳細は図4を用
いて後述する)を実行し、ステップS35では、ステッ
プS34で算出された空燃比補正係数KO2のリミット
処理を実行し、前記アイドル学習値KREF0及び前記
オフアイドル学習値KREF1を算出するKREF0,
1算出処理サブルーチン(その詳細は図6を用いて後述
する)を実行した後に、ステップS37に進む。
【0048】ステップS37では、ステップS36又は
S45で算出された学習値KREFn(n=0,1,
2)のリミット処理サブルーチン(その詳細は図8を用
いて後述する)を実行した後に、本KO2フィードバッ
ク処理を終了する。
S45で算出された学習値KREFn(n=0,1,
2)のリミット処理サブルーチン(その詳細は図8を用
いて後述する)を実行した後に、本KO2フィードバッ
ク処理を終了する。
【0049】図4は、前記ステップS34のKO2P項
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
【0050】同図において、先ず前記ステップS39と
同様にして、カウンタcIに所定時間CIをセットし
(ステップS51)、O2センサ出力値VO2をパラメ
ータとして、比例制御時に用いる加算比例項及び減算比
例項を示す複数のデータから成るP項テーブル(図示せ
ず)を検索する(ステップS52)。これにより、O2
センサ出力値VO2に応じた加算比例項及び減算比例項
が検索され、該検索された加算比例項は加算比例項PR
に設定される一方、該検索された減算比例項は比例項P
に設定される。
同様にして、カウンタcIに所定時間CIをセットし
(ステップS51)、O2センサ出力値VO2をパラメ
ータとして、比例制御時に用いる加算比例項及び減算比
例項を示す複数のデータから成るP項テーブル(図示せ
ず)を検索する(ステップS52)。これにより、O2
センサ出力値VO2に応じた加算比例項及び減算比例項
が検索され、該検索された加算比例項は加算比例項PR
に設定される一方、該検索された減算比例項は比例項P
に設定される。
【0051】次に、ステップS53では、O2センサ出
力値VO2が前記所定基準値VREF1以上であるか否
かを判別し、VO2≧VREF1のとき、即ちO2セン
サ出力値VO2が所定基準値VREF1よりリッチ側に
あるときには、前回算出された空燃比補正係数KO2か
ら比例項P(即ち減算比例項)を減算して、今回の空燃
比補正係数KO2とした(ステップS54)後に、本K
O2P項算出処理を終了する。即ち、ステップS54で
は、空燃比補正係数KO2を比例項Pの値の幅でステッ
プ状に減少させて、空燃比をリーン方向に移行させる。
力値VO2が前記所定基準値VREF1以上であるか否
かを判別し、VO2≧VREF1のとき、即ちO2セン
サ出力値VO2が所定基準値VREF1よりリッチ側に
あるときには、前回算出された空燃比補正係数KO2か
ら比例項P(即ち減算比例項)を減算して、今回の空燃
比補正係数KO2とした(ステップS54)後に、本K
O2P項算出処理を終了する。即ち、ステップS54で
は、空燃比補正係数KO2を比例項Pの値の幅でステッ
プ状に減少させて、空燃比をリーン方向に移行させる。
【0052】一方、ステップS53で、VO2<VRE
F1のとき、即ちO2センサ出力値VO2が所定基準値
VREF1よりリーン側にあるときには、前記加算比例
項PRを所定時間TPRホールドする、換言すれば新た
にP項テーブルから検索された加算比例項PRを使用せ
ずに前回検索されたものを所定時間使用するためのタイ
マtmPRの値が「0」であるか否かを判別する(ステ
ップS55)。この判別の結果、tmPR=0のときに
は、タイマtmPRに上記所定時間TPRをセットして
スタートさせ(ステップS56)、比例項Pを前記検索
された加算比例項PRに設定し(ステップS57)、前
回算出された空燃比補正係数KO2に加算比例項PRを
加算して今回の空燃比補正係数KO2として設定した
(ステップS58)後に、本KO2P項算出処理を終了
する一方、tmPR≠0のときには、ステップS56及
びS57をスキップしてステップS58に進む。即ち、
ステップS58では、空燃比補正係数KO2を所定時間
TPR所定加算比例項Pの値の幅でステップ状に増加さ
せて、空燃比をリッチ方向に移行させる。
F1のとき、即ちO2センサ出力値VO2が所定基準値
VREF1よりリーン側にあるときには、前記加算比例
項PRを所定時間TPRホールドする、換言すれば新た
にP項テーブルから検索された加算比例項PRを使用せ
ずに前回検索されたものを所定時間使用するためのタイ
マtmPRの値が「0」であるか否かを判別する(ステ
ップS55)。この判別の結果、tmPR=0のときに
は、タイマtmPRに上記所定時間TPRをセットして
スタートさせ(ステップS56)、比例項Pを前記検索
された加算比例項PRに設定し(ステップS57)、前
回算出された空燃比補正係数KO2に加算比例項PRを
加算して今回の空燃比補正係数KO2として設定した
(ステップS58)後に、本KO2P項算出処理を終了
する一方、tmPR≠0のときには、ステップS56及
びS57をスキップしてステップS58に進む。即ち、
ステップS58では、空燃比補正係数KO2を所定時間
TPR所定加算比例項Pの値の幅でステップ状に増加さ
せて、空燃比をリッチ方向に移行させる。
【0053】図5は、前記ステップS43のKO2I項
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
【0054】同図において、先ず前記ステップS52と
同様にして、O2センサ出力値VO2をパラメータとし
て、積分制御時に用いる加算積分項及び減算積分項を示
す複数のデータから成るI項テーブル(図示せず)を検
索し、積分項Iを該検出された値に設定する(ステップ
S61)。
同様にして、O2センサ出力値VO2をパラメータとし
て、積分制御時に用いる加算積分項及び減算積分項を示
す複数のデータから成るI項テーブル(図示せず)を検
索し、積分項Iを該検出された値に設定する(ステップ
S61)。
【0055】次に、前記ステップS53と同様にして、
O2センサ出力値VO2が前記所定基準値VREF1以
上であるか否かを判別し(ステップS62)、VO2<
VREF1のときにはステップS63に進む一方、VO
2≧VREF1のときにはステップS67に進む。
O2センサ出力値VO2が前記所定基準値VREF1以
上であるか否かを判別し(ステップS62)、VO2<
VREF1のときにはステップS63に進む一方、VO
2≧VREF1のときにはステップS67に進む。
【0056】ステップS63では、前記カウンタcIを
「1」だけデクリメントし、ステップS64では、該カ
ウンタcIのカウント値が「0」であるか否かを判別す
る。ステップS64で、cI=0のときには、ステップ
S65で、前回算出された空燃比補正係数KO2に積分
項(加算積分項)Iを加算して今回の空燃比補正係数K
O2とし、さらにステップS66で、カウンタcIに前
記所定時間CIをセットした後に、本KO2I項算出処
理を終了する。即ち、ステップS63〜S66では、空
燃比補正係数KO2を所定時間CI毎に加算積分項Iの
値の幅でステップ状に増加させて、空燃比をリッチ側に
移行させる。
「1」だけデクリメントし、ステップS64では、該カ
ウンタcIのカウント値が「0」であるか否かを判別す
る。ステップS64で、cI=0のときには、ステップ
S65で、前回算出された空燃比補正係数KO2に積分
項(加算積分項)Iを加算して今回の空燃比補正係数K
O2とし、さらにステップS66で、カウンタcIに前
記所定時間CIをセットした後に、本KO2I項算出処
理を終了する。即ち、ステップS63〜S66では、空
燃比補正係数KO2を所定時間CI毎に加算積分項Iの
値の幅でステップ状に増加させて、空燃比をリッチ側に
移行させる。
【0057】一方、ステップS67では、前記ステップ
S63と同様に、カウンタcIを「1」だけデクリメン
トし、ステップS68では、前記ステップS64と同様
に、カウンタcIのカウント値が「0」であるか否かを
判別する。ステップS68で、cI=0のときには、ス
テップS69で、前回算出された空燃比補正係数KO2
から積分項(減算積分項)Iを減算して今回の空燃比補
正係数KO2とし、さらにステップS70で、カウンタ
cIに前記所定時間CIをセットした後に、本KO2I
項算出処理を終了する。即ち、ステップS67〜S70
では、空燃比補正係数KO2を所定時間CI毎に減算積
分項Iの値の幅でステップ状に減少させて、空燃比をリ
ーン側に移行させる。
S63と同様に、カウンタcIを「1」だけデクリメン
トし、ステップS68では、前記ステップS64と同様
に、カウンタcIのカウント値が「0」であるか否かを
判別する。ステップS68で、cI=0のときには、ス
テップS69で、前回算出された空燃比補正係数KO2
から積分項(減算積分項)Iを減算して今回の空燃比補
正係数KO2とし、さらにステップS70で、カウンタ
cIに前記所定時間CIをセットした後に、本KO2I
項算出処理を終了する。即ち、ステップS67〜S70
では、空燃比補正係数KO2を所定時間CI毎に減算積
分項Iの値の幅でステップ状に減少させて、空燃比をリ
ーン側に移行させる。
【0058】図6は、前記ステップS36のKREF
0,1算出処理サブルーチンの詳細な手順を示すフロー
チャートである。
0,1算出処理サブルーチンの詳細な手順を示すフロー
チャートである。
【0059】同図において、先ずステップS81では、
エンジン回転数NEが所定回転数NKREF(例えば4
000rpm)より低いか否かを判別し、NE<NKR
EFであるときは、吸気温TAが所定吸気温TAREF
(例えば64℃)より低いか否かを判別する(ステップ
S82)。そして、NE≧NKREF又はTA≧TAR
EFであるときは、前記KO2学習領域フラグFKRE
FZNを「0」に設定して(ステップS97)、本KR
EF0,1算出処理を終了する。
エンジン回転数NEが所定回転数NKREF(例えば4
000rpm)より低いか否かを判別し、NE<NKR
EFであるときは、吸気温TAが所定吸気温TAREF
(例えば64℃)より低いか否かを判別する(ステップ
S82)。そして、NE≧NKREF又はTA≧TAR
EFであるときは、前記KO2学習領域フラグFKRE
FZNを「0」に設定して(ステップS97)、本KR
EF0,1算出処理を終了する。
【0060】一方、NE<NKREF且つTA<TAR
EFであるときは、KO2学習領域フラグFKREFZ
Nを「1」に設定し(ステップS83)、エンジン1の
運転状態が前記KREFAF1学習領域にあることを
「1」で示すKREFAF1学習領域フラグFSLBR
EF1が「1」か否かを判別する(ステップS84)。
EFであるときは、KO2学習領域フラグFKREFZ
Nを「1」に設定し(ステップS83)、エンジン1の
運転状態が前記KREFAF1学習領域にあることを
「1」で示すKREFAF1学習領域フラグFSLBR
EF1が「1」か否かを判別する(ステップS84)。
【0061】ステップS84の答が肯定(YES)、即
ちKREFAF1学習領域であるときは、次式(2)に
より前記空燃比補正係数KO2のリーン制御低負荷側学
習値KREFAF1を算出して(ステップS95)、本
KREF0,1算出処理を終了する。
ちKREFAF1学習領域であるときは、次式(2)に
より前記空燃比補正係数KO2のリーン制御低負荷側学
習値KREFAF1を算出して(ステップS95)、本
KREF0,1算出処理を終了する。
【0062】 KREFAF1(N)=CREFAF1×KO2P/A+(A−CREFAF 1)×KREFAF1(N−1)/A …(2) ここで、(N),(N−1)は、それぞれ今回値及び前
回値であることを示すために付している。また、Aは、
例えば10000(16進)に設定される定数、CRE
FAF1は、1からAの間の値に設定されるリーン制御
低負荷側学習値KREFAF1算出用のなまし係数であ
り、KO2Pは、比例制御実行直後(即ちO2センサ1
6の出力の反転直後において比例項を加算又は減算した
とき)の空燃比補正係数KO2値である。
回値であることを示すために付している。また、Aは、
例えば10000(16進)に設定される定数、CRE
FAF1は、1からAの間の値に設定されるリーン制御
低負荷側学習値KREFAF1算出用のなまし係数であ
り、KO2Pは、比例制御実行直後(即ちO2センサ1
6の出力の反転直後において比例項を加算又は減算した
とき)の空燃比補正係数KO2値である。
【0063】ステップS84でFSLBREF1=0で
あってKREFAF1学習領域でないときは、エンジン
1の状態が前記KREFAF2学習領域にあることを
「1」で示すKREFAF2学習領域フラグFSLBR
EF2が「1」か否かを判別する(ステップS85)。
あってKREFAF1学習領域でないときは、エンジン
1の状態が前記KREFAF2学習領域にあることを
「1」で示すKREFAF2学習領域フラグFSLBR
EF2が「1」か否かを判別する(ステップS85)。
【0064】ステップS85の答が肯定(YES)、即
ちKREFAF2学習領域であるときは、次式(3)に
より前記空燃比補正係数KO2のリーン制御高負荷側学
習値KREFAF2を算出して(ステップS96)、本
KREF0,1算出処理を終了する。
ちKREFAF2学習領域であるときは、次式(3)に
より前記空燃比補正係数KO2のリーン制御高負荷側学
習値KREFAF2を算出して(ステップS96)、本
KREF0,1算出処理を終了する。
【0065】 KREFAF2(N)=CREFAF2×KO2P/A+(A−CREFAF 2)×KREFAF2(N−1)/A …(3) ここで、CREFAF2は、1からAの間の値に設定さ
れるリーン制御高負荷側学習値KREFAF2算出用の
なまし係数である。
れるリーン制御高負荷側学習値KREFAF2算出用の
なまし係数である。
【0066】ステップS85で、FSLBREF2=0
であってKREFAF2学習領域でないときには、前記
アイドルフラグFIDLEが「1」か否かを判別し(ス
テップS86)、アイドル状態であるとき(FIDLE
=1)には、エンジン水温TWが所定水温TWREFよ
り高いか否かを判別する(ステップS87)。
であってKREFAF2学習領域でないときには、前記
アイドルフラグFIDLEが「1」か否かを判別し(ス
テップS86)、アイドル状態であるとき(FIDLE
=1)には、エンジン水温TWが所定水温TWREFよ
り高いか否かを判別する(ステップS87)。
【0067】ステップS87で、TW>TWREFのと
きには、ステップS90のアイドル学習値KREF0算
出処理で使用するなまし係数を所定値CREF0に設定
する(ステップS88)一方、TW≦TWREFのとき
には、該なまし係数を所定値CREFxに設定する(ス
テップS89)。
きには、ステップS90のアイドル学習値KREF0算
出処理で使用するなまし係数を所定値CREF0に設定
する(ステップS88)一方、TW≦TWREFのとき
には、該なまし係数を所定値CREFxに設定する(ス
テップS89)。
【0068】続くステップS90では、次式(4)によ
り前記アイドル学習値KREF0を算出して、本KRE
F0,1算出処理を終了する。
り前記アイドル学習値KREF0を算出して、本KRE
F0,1算出処理を終了する。
【0069】 KREF0(N)=CREFn×KO2P/A+(A−CREFn)×KRE F0(N−1)/A …(4) ここで、CREFn(n=0,x)は、1からAの間の
値に設定されるアイドル学習値KREF0算出用のなま
し係数、即ち前記ステップS88又はS89で選択設定
されたものである。
値に設定されるアイドル学習値KREF0算出用のなま
し係数、即ち前記ステップS88又はS89で選択設定
されたものである。
【0070】ステップS86でFIDLE=0であっ
て、エンジンがアイドル状態でないとき、即ちオフアイ
ドル状態であるときには、前記ステップS87と同様に
して、エンジン水温TWが所定水温TWREFより高い
か否かを判別する(ステップS91)。
て、エンジンがアイドル状態でないとき、即ちオフアイ
ドル状態であるときには、前記ステップS87と同様に
して、エンジン水温TWが所定水温TWREFより高い
か否かを判別する(ステップS91)。
【0071】ステップS91で、TW>TWREFのと
きには、ステップS94のアイドル学習値KREF1算
出処理で使用するなまし係数を所定値CREF1に設定
する(ステップS92)一方、TW≦TWREFのとき
には、該なまし係数を所定値CREFxに設定する(ス
テップS93)。
きには、ステップS94のアイドル学習値KREF1算
出処理で使用するなまし係数を所定値CREF1に設定
する(ステップS92)一方、TW≦TWREFのとき
には、該なまし係数を所定値CREFxに設定する(ス
テップS93)。
【0072】続くステップS94では、次式(5)によ
り前記オフアイドル学習値KREF1を算出する。
り前記オフアイドル学習値KREF1を算出する。
【0073】 KREF1(N)=CREFn×KO2P/A+(A−CREFn)×KRE F1(N−1)/A …(5) ここで、CREFn(n=1,x)は、1からAの間の
値に設定されるオフアイドル学習値KREF1算出用の
なまし係数、即ち前記ステップS92又はS93で選択
設定されたものである。
値に設定されるオフアイドル学習値KREF1算出用の
なまし係数、即ち前記ステップS92又はS93で選択
設定されたものである。
【0074】図7は、前記ステップS45のKREF2
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
算出処理サブルーチンの詳細な手順を示すフローチャー
トである。
【0075】同図において、先ず前記ステップS82と
同様にして、吸気温TAが所定吸気温TAREFより高
いか否かを判別し(ステップS101)、TA≦TAR
EFのときには、前記アイドルフラグFIDLEが
「1」であるか否か、即ちアイドル状態であるか否かを
判別する(ステップS102)。
同様にして、吸気温TAが所定吸気温TAREFより高
いか否かを判別し(ステップS101)、TA≦TAR
EFのときには、前記アイドルフラグFIDLEが
「1」であるか否か、即ちアイドル状態であるか否かを
判別する(ステップS102)。
【0076】ステップS102で、FIDLE=0のと
きには、前記タイマtmREF2の値が「0」であるか
否かを判別し、tmREF2≠のとき、即ちアイドル状
態後前記所定時間TREF2内であるときにはステップ
S104に進む。
きには、前記タイマtmREF2の値が「0」であるか
否かを判別し、tmREF2≠のとき、即ちアイドル状
態後前記所定時間TREF2内であるときにはステップ
S104に進む。
【0077】一方、TA>TAREF、FIDLE=
1、又はtmREF2=0の何れかの条件が成立すると
きには、直ちに本KREF2算出処理を終了する。
1、又はtmREF2=0の何れかの条件が成立すると
きには、直ちに本KREF2算出処理を終了する。
【0078】ステップS104では、エンジン水温TW
が前記所定水温TWREFより低いか否かを判別し、T
W≧TWREFのときには、ステップS107のKRE
F2算出処理で使用するなまし係数を所定値CREF2
に設定する(ステップS106)一方、TW<TWRE
Fのときには、該なまし係数を所定値CREFxに設定
する(ステップS105)。
が前記所定水温TWREFより低いか否かを判別し、T
W≧TWREFのときには、ステップS107のKRE
F2算出処理で使用するなまし係数を所定値CREF2
に設定する(ステップS106)一方、TW<TWRE
Fのときには、該なまし係数を所定値CREFxに設定
する(ステップS105)。
【0079】続くステップS107では、次式(6)に
より積分制御学習値KREF2を算出する。
より積分制御学習値KREF2を算出する。
【0080】 KREF2(N)=CREFn×KO2I/A+(A−CREFn)×KRE F2(N−1)/A …(6) ここで、CREFn(n=1,x)は、1からAの間の
値に設定される積分制御学習値KREF2算出用のなま
し係数、即ち前記ステップS105又はS106で選択
設定されたものであり、KO2Iは、積分制御実行直後
の空燃比補正係数KO2値である。
値に設定される積分制御学習値KREF2算出用のなま
し係数、即ち前記ステップS105又はS106で選択
設定されたものであり、KO2Iは、積分制御実行直後
の空燃比補正係数KO2値である。
【0081】図8は、前記ステップS37のKREFリ
ミット処理サブルーチンの詳細な手順を示すフローチャ
ートであり、実際には、前記算出された3種類の学習値
KREFn(n=0,1,2)、即ちアイドル学習値K
REF0、オフアイドル学習値KREF1及び積分制御
学習値KREF2の各々のリミット処理を行うが、これ
らのリミット処理方法は同一であるので、説明の都合
上、本フローチャートでは各学習値を代表してKREF
で示して説明する。
ミット処理サブルーチンの詳細な手順を示すフローチャ
ートであり、実際には、前記算出された3種類の学習値
KREFn(n=0,1,2)、即ちアイドル学習値K
REF0、オフアイドル学習値KREF1及び積分制御
学習値KREF2の各々のリミット処理を行うが、これ
らのリミット処理方法は同一であるので、説明の都合
上、本フローチャートでは各学習値を代表してKREF
で示して説明する。
【0082】同図において、先ず前記算出された学習値
KREFnが所定上限値KREFLMTHより大きいか
否かを判別し(ステップS111)、KREFn≦KR
EFLMTHのときには、この学習値KREFnが所定
下限値KREFLMTLより大きいか否かを判別する
(ステップS112)。
KREFnが所定上限値KREFLMTHより大きいか
否かを判別し(ステップS111)、KREFn≦KR
EFLMTHのときには、この学習値KREFnが所定
下限値KREFLMTLより大きいか否かを判別する
(ステップS112)。
【0083】ステップS112で、KREFn≧KRE
FLMTL、即ちKREFLMTL≦KREFn≦KR
EFLMTLのときには、直ちに本KREFリミット処
理を終了する一方、KREFn<KREFLMTLのと
きには、学習値KREFnに所定下限値KREFLMT
Lを設定した(ステップS113)後に、本KREFリ
ミット処理を終了する。
FLMTL、即ちKREFLMTL≦KREFn≦KR
EFLMTLのときには、直ちに本KREFリミット処
理を終了する一方、KREFn<KREFLMTLのと
きには、学習値KREFnに所定下限値KREFLMT
Lを設定した(ステップS113)後に、本KREFリ
ミット処理を終了する。
【0084】一方、ステップS111で、KREFn>
KREFLMTHのときには、学習値KREFnに所定
上限値KREFLMTHを設定した(ステップS11
4)後に、本KREFリミット処理を終了する。
KREFLMTHのときには、学習値KREFnに所定
上限値KREFLMTHを設定した(ステップS11
4)後に、本KREFリミット処理を終了する。
【0085】図9は、リーンバーン補正係数KLSAF
の算出に使用する回転変動量DMSSLBを算出する処
理のフローチャートであり、本処理はCPU5bにおい
て実行される。
の算出に使用する回転変動量DMSSLBを算出する処
理のフローチャートであり、本処理はCPU5bにおい
て実行される。
【0086】同図(a)は、前記CRK信号パルスの発
生毎にこれと同期して実行されるCRK処理を示し、ス
テップS115ではCRK信号パルスの発生時間間隔
(エンジン回転速度の逆数に比例するパラメータ)の計
測を行う。具体的には、図10に示すようにクランク軸
が30度回転する毎に順次CRME(n)を計測し、過
去のデータをCRME(n−1),CRME(n−2)
…として更新、保管する。
生毎にこれと同期して実行されるCRK処理を示し、ス
テップS115ではCRK信号パルスの発生時間間隔
(エンジン回転速度の逆数に比例するパラメータ)の計
測を行う。具体的には、図10に示すようにクランク軸
が30度回転する毎に順次CRME(n)を計測し、過
去のデータをCRME(n−1),CRME(n−2)
…として更新、保管する。
【0087】なお、クランク軸が180度回転する期間
を30度毎に分割し、それぞれ#0STG〜#5STG
(#0ステージ〜#5ステージ)と呼んでいる。
を30度毎に分割し、それぞれ#0STG〜#5STG
(#0ステージ〜#5ステージ)と呼んでいる。
【0088】ステップS116では、次式(7)により
11回前の計測値CRME(n−11)から最新の計測
値CRME(n)までの12個のCRME値の平均値と
して、第1の平均値CR12ME(n)を算出する。
11回前の計測値CRME(n−11)から最新の計測
値CRME(n)までの12個のCRME値の平均値と
して、第1の平均値CR12ME(n)を算出する。
【0089】
【数1】 本実施の形態ではCRK信号パルスはクランク軸が30
度回転する毎に発生するので、第1の平均値CR12M
E(n)はクランク軸1回転に対応する平均値である。
このような平均化処理を行うことにより、クランク軸1
回転で1周期のエンジン回転のn次振動成分(n=1,
2,3…)を除去することができる。
度回転する毎に発生するので、第1の平均値CR12M
E(n)はクランク軸1回転に対応する平均値である。
このような平均化処理を行うことにより、クランク軸1
回転で1周期のエンジン回転のn次振動成分(n=1,
2,3…)を除去することができる。
【0090】なおCRME(n)値に基づいてエンジン
回転速度NEが算出される。
回転速度NEが算出される。
【0091】同図(b)は、TDC信号パルスの発生周
期と同一周期であって、#3STG(#3ステージ、図
10参照)で実行される処理を示す。先ずステップS1
17では、次式(8)により、第1の平均値CR12M
Eの5回前の算出値CR12ME(n−5)から最新の
算出値CR12ME(n)までの6個のCR12ME値
の平均値として、第2の平均値MSME(n)を算出す
る。
期と同一周期であって、#3STG(#3ステージ、図
10参照)で実行される処理を示す。先ずステップS1
17では、次式(8)により、第1の平均値CR12M
Eの5回前の算出値CR12ME(n−5)から最新の
算出値CR12ME(n)までの6個のCR12ME値
の平均値として、第2の平均値MSME(n)を算出す
る。
【0092】
【数2】 本実施の形態では、エンジン1は4気筒4サイクルエン
ジンであり、クランク軸が180度回転する毎にいずれ
かの気筒で点火が行われる。従って、第2の平均値MS
ME(n)は、第1の平均値CR12ME(n)の点火
周期毎の平均値である。このような平均化処理を行うこ
とにより、前回の燃焼から今回の燃焼の間の回転速度の
代表値を求めることができる。
ジンであり、クランク軸が180度回転する毎にいずれ
かの気筒で点火が行われる。従って、第2の平均値MS
ME(n)は、第1の平均値CR12ME(n)の点火
周期毎の平均値である。このような平均化処理を行うこ
とにより、前回の燃焼から今回の燃焼の間の回転速度の
代表値を求めることができる。
【0093】次いでステップS118では、次式(9)
により回転変動量DMSSLB(n)を算出する。
により回転変動量DMSSLB(n)を算出する。
【0094】 DMSSLB(n)= |(MSME(n)−MSME(n−1)/KMSSLB|…(9) ここで、KMSSLBは、リーンバーン制御時の制御精
度がエンジン回転数に応じて変化しないようにするため
に、エンジン回転数に反比例するように設定される係数
であり、回転変動量DMSSLBがエンジン回転数NE
に応じて変化しないようにするものである。
度がエンジン回転数に応じて変化しないようにするため
に、エンジン回転数に反比例するように設定される係数
であり、回転変動量DMSSLBがエンジン回転数NE
に応じて変化しないようにするものである。
【0095】このようにして算出される回転変動量DM
SSLBは、エンジン1の燃焼状態が悪化するほど増加
する傾向を示し、エンジンの燃焼状態を示すパラメータ
として使用することができる。一般に、空燃比をリーン
化していくと、燃焼状態が徐々に不安定となり、DMS
SLB値が増加する。そして、図28(b)に示すよう
に、DMSSLB値が数秒に一回程度スパイク状に増加
する不整燃焼が現れる状態が、空燃比がほぼリーン限界
に制御された状態であり、これよりさらにリーン化する
と、運転者にサージングが伝わるような燃焼不安定状態
となる。したがって、図28(b)に示す状態あるいは
それより少し燃焼安定側に、空燃比を制御することが望
ましい。
SSLBは、エンジン1の燃焼状態が悪化するほど増加
する傾向を示し、エンジンの燃焼状態を示すパラメータ
として使用することができる。一般に、空燃比をリーン
化していくと、燃焼状態が徐々に不安定となり、DMS
SLB値が増加する。そして、図28(b)に示すよう
に、DMSSLB値が数秒に一回程度スパイク状に増加
する不整燃焼が現れる状態が、空燃比がほぼリーン限界
に制御された状態であり、これよりさらにリーン化する
と、運転者にサージングが伝わるような燃焼不安定状態
となる。したがって、図28(b)に示す状態あるいは
それより少し燃焼安定側に、空燃比を制御することが望
ましい。
【0096】図11及び12は、修正リーンバーン補正
係数KLSAFMを算出する処理のフローチャートであ
り、TDC信号パルスの発生に同期して実行される。
係数KLSAFMを算出する処理のフローチャートであ
り、TDC信号パルスの発生に同期して実行される。
【0097】先ずステップS121では、エンジンの始
動(クランキング)中であることを「1」で示す始動フ
ラグFSTMODが「1」か否かを判別し、始動中のと
きは、以下の1)〜5)の処理を実行して図12のステ
ップS150に進む。
動(クランキング)中であることを「1」で示す始動フ
ラグFSTMODが「1」か否かを判別し、始動中のと
きは、以下の1)〜5)の処理を実行して図12のステ
ップS150に進む。
【0098】1)ダウンカウントタイマtmLEANに
始動直後リーンバーン禁止時間TLEANをセットして
スタートさせる(ステップS122)。
始動直後リーンバーン禁止時間TLEANをセットして
スタートさせる(ステップS122)。
【0099】2)リーン制御学習値KREFAFn(n
=1,2)の学習時間を計測する各ダウンカウントタイ
マtmSLBREFnに、それぞれ所定学習時間TSL
BREFnをセットしてスタートさせる(ステップS1
23)。
=1,2)の学習時間を計測する各ダウンカウントタイ
マtmSLBREFnに、それぞれ所定学習時間TSL
BREFnをセットしてスタートさせる(ステップS1
23)。
【0100】3)リーンバーン制御の実行可能な運転領
域(以下「SLB領域」という)であることを「1」で
示すSLB領域内フラグFSLBZN、SLB領域内の
高負荷領域であることを「1」で示すSLB高負荷領域
フラグFSLBPZN及び登坂走行中と判断したことを
「1」で示す登坂フラグFTOHANを、それぞれ
「0」に設定する(ステップS124〜S126)。
域(以下「SLB領域」という)であることを「1」で
示すSLB領域内フラグFSLBZN、SLB領域内の
高負荷領域であることを「1」で示すSLB高負荷領域
フラグFSLBPZN及び登坂走行中と判断したことを
「1」で示す登坂フラグFTOHANを、それぞれ
「0」に設定する(ステップS124〜S126)。
【0101】4)エンジンの燃焼状態が不安定であるこ
とを「1」で示す燃焼状態フラグFAVEHLD、リー
ンバーンフィードバック制御実行中であることを「1」
で示すSLBF/B中フラグFSLBFB及びリーンバ
ーン制御実行中であることを「1」で示すSLB実行中
フラグFSLBを、それぞれ「0」に設定する(図12
のステップS130,S132,S133)。
とを「1」で示す燃焼状態フラグFAVEHLD、リー
ンバーンフィードバック制御実行中であることを「1」
で示すSLBF/B中フラグFSLBFB及びリーンバ
ーン制御実行中であることを「1」で示すSLB実行中
フラグFSLBを、それぞれ「0」に設定する(図12
のステップS130,S132,S133)。
【0102】5)リーンバーン補正係数KLSAFを
「1.0」に設定する(ステップS131)。
「1.0」に設定する(ステップS131)。
【0103】一方、ステップS121で、エンジンの始
動中でないときはステップS127に進み、図示しない
SLB領域判別処理を実行する。この処理では、車速V
及びその加速度に応じて、リーンバーン制御を行うか否
かを判断するための閾値が設定された領域テーブルの選
択を行う。領域テーブルには、エンジン回転数NEに対
応して閾値となる所定吸気管内絶対圧PBATHが設定
されている。
動中でないときはステップS127に進み、図示しない
SLB領域判別処理を実行する。この処理では、車速V
及びその加速度に応じて、リーンバーン制御を行うか否
かを判断するための閾値が設定された領域テーブルの選
択を行う。領域テーブルには、エンジン回転数NEに対
応して閾値となる所定吸気管内絶対圧PBATHが設定
されている。
【0104】続くステップS128では、図13を用い
て後述するKREFAF学習領域判断処理サブルーチン
を実行し、次いでSLBシフトチェンジ判断処理を実行
する(ステップS129)。SLBシフトチェンジ判断
処理では、シフトチェンジ(ギヤ比の変更)を検出し
て、シフトダウン時はシフトダウン後のディレー時間を
計測するダウンカウントタイマtmSFTDLYに所定
時間TSFTDLYをセットしてスタートさせ、シフト
アップ時は該タイマtmSFTDLYの値を「0」に設
定する処理等を行う。
て後述するKREFAF学習領域判断処理サブルーチン
を実行し、次いでSLBシフトチェンジ判断処理を実行
する(ステップS129)。SLBシフトチェンジ判断
処理では、シフトチェンジ(ギヤ比の変更)を検出し
て、シフトダウン時はシフトダウン後のディレー時間を
計測するダウンカウントタイマtmSFTDLYに所定
時間TSFTDLYをセットしてスタートさせ、シフト
アップ時は該タイマtmSFTDLYの値を「0」に設
定する処理等を行う。
【0105】続くステップS134(図12)では、フ
ュエルカット中であることを「1」で示すフュエルカッ
トフラグFFCが「1」か否かを判別し、FFC=0で
あってフュエルカット中でないときは、ダウンカウント
タイマtmAFCにフュエルカット移行後の所定ディレ
ー時間TAFCDLYをセットしてスタートさせ(ステ
ップS135)、前記燃焼状態フラグFAVEHLDが
「1」か否かを判別する(ステップS136)。FAV
EHLD=0であって燃焼状態が安定しているときは、
ステップS139のDMSBAVE算出処理で使用する
なまし係数DMSSCRFを第1の値DMSSCRF0
に設定し(ステップS138)、FAVEHLD=1で
あって燃焼状態が不安定のときは、第1の値DMSSC
RF0より小さい第2の値DMSSCRF1に設定して
(ステップS137)、ステップS139に進む。これ
により、燃焼状態が不安定のときは回転変動量DMSS
LBの今回値の寄与度を低下させるようにしている。な
お、燃焼状態は、回転変動量DMSSLBが所定値以下
のとき、安定していると判定する。
ュエルカット中であることを「1」で示すフュエルカッ
トフラグFFCが「1」か否かを判別し、FFC=0で
あってフュエルカット中でないときは、ダウンカウント
タイマtmAFCにフュエルカット移行後の所定ディレ
ー時間TAFCDLYをセットしてスタートさせ(ステ
ップS135)、前記燃焼状態フラグFAVEHLDが
「1」か否かを判別する(ステップS136)。FAV
EHLD=0であって燃焼状態が安定しているときは、
ステップS139のDMSBAVE算出処理で使用する
なまし係数DMSSCRFを第1の値DMSSCRF0
に設定し(ステップS138)、FAVEHLD=1で
あって燃焼状態が不安定のときは、第1の値DMSSC
RF0より小さい第2の値DMSSCRF1に設定して
(ステップS137)、ステップS139に進む。これ
により、燃焼状態が不安定のときは回転変動量DMSS
LBの今回値の寄与度を低下させるようにしている。な
お、燃焼状態は、回転変動量DMSSLBが所定値以下
のとき、安定していると判定する。
【0106】ステップS139では、次式(7)に上記
なまし係数DMSSRFを適用してエンジンの回転変動
量DMSSLBの平均値DMSBAVEを算出する。
なまし係数DMSSRFを適用してエンジンの回転変動
量DMSSLBの平均値DMSBAVEを算出する。
【0107】 DMSBAVE(N)=DMSSCRF×DMSSLB/A+(A−DMSS CRF)×DMSBAVE(N−1)/A …(7) ここで、回転変動量DMSSLBは、クランク角(CR
K)信号パルスの発生間隔CRMEに基づいて算出さ
れ、この値が小さいほどエンジンの燃焼状態が安定して
いることを示す。
K)信号パルスの発生間隔CRMEに基づいて算出さ
れ、この値が小さいほどエンジンの燃焼状態が安定して
いることを示す。
【0108】続くステップS140では、目標空燃比K
OBJの算出処理を実行する。この処理は、図16〜1
8に基づいて後述する。なお、KOBJ値は、空燃比A
/Fの逆数に比例し、理論空燃比のとき「1.0」とす
る当量比として定義されている。したがって、リーン制
御実行中はKOBJ値は「1.0」より小さい値に設定
される。
OBJの算出処理を実行する。この処理は、図16〜1
8に基づいて後述する。なお、KOBJ値は、空燃比A
/Fの逆数に比例し、理論空燃比のとき「1.0」とす
る当量比として定義されている。したがって、リーン制
御実行中はKOBJ値は「1.0」より小さい値に設定
される。
【0109】次いでリーンバーン補正係数KLSAFを
ステップS140(又は後述するステップS143)で
算出したKOBJ値に設定し(ステップS145)、続
くステップS146では、図19に基づいて後述するK
LSAFリミット処理を実行し、ステップS147に進
む。
ステップS140(又は後述するステップS143)で
算出したKOBJ値に設定し(ステップS145)、続
くステップS146では、図19に基づいて後述するK
LSAFリミット処理を実行し、ステップS147に進
む。
【0110】前記ステップS134に戻り、FFC=1
であってフュエルカット中のときは、前記ステップS1
35でセットしたタイマtmAFCの値が「0」か否か
を判別し(ステップS141)、tmAFC>0である
間はリーンバーン補正係数KLSAFを前回値保持とし
て(ステップS144)、ステップS147に進む。そ
の後tmAFC=0となると、後述する図18の処理で
参照するダウンカウントタイマtmAFCLNにフュエ
ルカット終了後の所定時間TAFCLNをセットしてス
タートさせ(ステップS142)、目標空燃比KOBJ
をフュエルカット時用の所定値KOBJFCに設定して
(ステップS143)、前記ステップS145に進む。
であってフュエルカット中のときは、前記ステップS1
35でセットしたタイマtmAFCの値が「0」か否か
を判別し(ステップS141)、tmAFC>0である
間はリーンバーン補正係数KLSAFを前回値保持とし
て(ステップS144)、ステップS147に進む。そ
の後tmAFC=0となると、後述する図18の処理で
参照するダウンカウントタイマtmAFCLNにフュエ
ルカット終了後の所定時間TAFCLNをセットしてス
タートさせ(ステップS142)、目標空燃比KOBJ
をフュエルカット時用の所定値KOBJFCに設定して
(ステップS143)、前記ステップS145に進む。
【0111】ステップS147では、算出したKLSA
F値が「1.0」より小さいか否かを判別し、KLSA
F<1.0であるときは、SLB実行中フラグFSLB
を「1」に設定する(ステップS149)一方、KLS
AF=1.0であるときは、FSLB=0として(ステ
ップS148)、ステップS150に進む。
F値が「1.0」より小さいか否かを判別し、KLSA
F<1.0であるときは、SLB実行中フラグFSLB
を「1」に設定する(ステップS149)一方、KLS
AF=1.0であるときは、FSLB=0として(ステ
ップS148)、ステップS150に進む。
【0112】ステップS150、S151では、体積効
率補正を行うべく、KLSAF値に応じて図25に示す
KLSAFMテーブルを検索し、修正リーンバーン補正
係数KLSAFMを算出し、次いでギヤ位置をあらわす
パラメータNGR,NGRATを更新して(ステップS
152)、本処理を終了する。
率補正を行うべく、KLSAF値に応じて図25に示す
KLSAFMテーブルを検索し、修正リーンバーン補正
係数KLSAFMを算出し、次いでギヤ位置をあらわす
パラメータNGR,NGRATを更新して(ステップS
152)、本処理を終了する。
【0113】ここで、体積効率補正は、リーンバーン制
御時は燃料冷却効果が小さくなり充填効率が下がるの
で、リーンバーン補正係数KLSAFをそのまま基本燃
料量TIに乗算したのでは、空燃比が所望の値からずれ
ることを考慮して行うものである。即ち、基本燃料量T
Iのマップは理論空燃比が得られるように設定されてい
るので、リーンバーン制御時は補正係数値がより小さく
なるようにKLSAF値が補正され、修正リーンバーン
補正係数KLSAFMが算出される。
御時は燃料冷却効果が小さくなり充填効率が下がるの
で、リーンバーン補正係数KLSAFをそのまま基本燃
料量TIに乗算したのでは、空燃比が所望の値からずれ
ることを考慮して行うものである。即ち、基本燃料量T
Iのマップは理論空燃比が得られるように設定されてい
るので、リーンバーン制御時は補正係数値がより小さく
なるようにKLSAF値が補正され、修正リーンバーン
補正係数KLSAFMが算出される。
【0114】また、ステップS152のNGRはマニュ
アルトランスミッションのギヤ位置パラメータ(NGR
=1〜5)であり、NGRATはオートマチックトラン
スミッションのギヤ位置パラメータ(NGRAT=1〜
4)である。
アルトランスミッションのギヤ位置パラメータ(NGR
=1〜5)であり、NGRATはオートマチックトラン
スミッションのギヤ位置パラメータ(NGRAT=1〜
4)である。
【0115】図13は、前記図11のステップS128
におけるKREFAF学習領域判断処理サブルーチンの
フローチャートである。
におけるKREFAF学習領域判断処理サブルーチンの
フローチャートである。
【0116】先ずステップS161では、エンジン水温
TWが所定水温TWLEAN(例えば75℃)以上であ
って暖機が完了しているか否かを判別し、TW<TWL
EANであるときは、学習領域でないと判定して以下の
処理を実行する。即ち、前記リーン制御学習値KREF
AFの学習が終了したこと、即ち前記リーン制御低負荷
側学習値KREFAF1の学習及びリーン制御高負荷側
学習値KREFAF2の学習がともに終了したことを
「1」で示す(後述するステップS176参照)学習終
了フラグFSLBREFOKを「0」に設定し、リーン
制御低負荷側学習値KREFAF1の学習が終了したこ
とを「1」で示す学習終了フラグFSLBREFOK1
を「0」に設定し、リーン制御高負荷側学習値KREF
AF2の学習が終了したことを「1」で示す学習終了フ
ラグFSLBREFOK2を「0」に設定し、ダウンカ
ウントタイマtmSLBREF1及び2に、それぞれ所
定学習時間TSLBREF1及び2を設定してスタート
させ(ステップS162)、ステップS162でセット
したタイマtmSLBREF1及び2のダウンカウント
を停止させ(ステップS163)、ダウンカウントタイ
マtmREFMIN1及び2に、それぞれ最小学習時間
TREFMIN1及び2をセットしてスタートさせ(ス
テップS164)、最小学習時間TREFMIN1及び
2に亘ってKRERAF1及び2値の学習を実行したこ
とを、それぞれ「1」で示す最小学習時間フラグFRE
FMIN1及び2を「0」に設定し(ステップS16
5)、前記学習領域フラグFSLBREF1及び2を、
それぞれ「0」に設定した(ステップS166)後に、
本KREFAF学習領域判断処理を終了する。
TWが所定水温TWLEAN(例えば75℃)以上であ
って暖機が完了しているか否かを判別し、TW<TWL
EANであるときは、学習領域でないと判定して以下の
処理を実行する。即ち、前記リーン制御学習値KREF
AFの学習が終了したこと、即ち前記リーン制御低負荷
側学習値KREFAF1の学習及びリーン制御高負荷側
学習値KREFAF2の学習がともに終了したことを
「1」で示す(後述するステップS176参照)学習終
了フラグFSLBREFOKを「0」に設定し、リーン
制御低負荷側学習値KREFAF1の学習が終了したこ
とを「1」で示す学習終了フラグFSLBREFOK1
を「0」に設定し、リーン制御高負荷側学習値KREF
AF2の学習が終了したことを「1」で示す学習終了フ
ラグFSLBREFOK2を「0」に設定し、ダウンカ
ウントタイマtmSLBREF1及び2に、それぞれ所
定学習時間TSLBREF1及び2を設定してスタート
させ(ステップS162)、ステップS162でセット
したタイマtmSLBREF1及び2のダウンカウント
を停止させ(ステップS163)、ダウンカウントタイ
マtmREFMIN1及び2に、それぞれ最小学習時間
TREFMIN1及び2をセットしてスタートさせ(ス
テップS164)、最小学習時間TREFMIN1及び
2に亘ってKRERAF1及び2値の学習を実行したこ
とを、それぞれ「1」で示す最小学習時間フラグFRE
FMIN1及び2を「0」に設定し(ステップS16
5)、前記学習領域フラグFSLBREF1及び2を、
それぞれ「0」に設定した(ステップS166)後に、
本KREFAF学習領域判断処理を終了する。
【0117】一方、ステップS161で、TW≧TWL
EANのときには、前記学習終了フラグFSLBREF
OKが「0」であるか否かを判別し、FSLBREFO
K=0のとき、即ちリーン制御学習KREFAFの学習
がまだ終了していないときにはステップS168に進
む。
EANのときには、前記学習終了フラグFSLBREF
OKが「0」であるか否かを判別し、FSLBREFO
K=0のとき、即ちリーン制御学習KREFAFの学習
がまだ終了していないときにはステップS168に進
む。
【0118】ステップS168では、前記KO2学習領
域フラグFKREFZNが「1」であるか否かを判別
し、FKREFZN=1のときには、車速Vが所定車速
VSLBREFL(例えば30km/h)より高いか否
かを判別する(ステップS169)。
域フラグFKREFZNが「1」であるか否かを判別
し、FKREFZN=1のときには、車速Vが所定車速
VSLBREFL(例えば30km/h)より高いか否
かを判別する(ステップS169)。
【0119】ステップS169で、V≧VSLBREF
Lのときには、エンジン回転数NEが前記図22の所定
上下限値NKSLBRH,NKSLBRL(例えば34
00rpm,1000rpm)の範囲内にあるか否かを
判別し(ステップS170)、NKSLBRL<NE<
NKSLBRHであるときは、吸気管内絶対圧PBAが
図22の低負荷側の所定上下限値PBSLBR1H,P
BSLBR1Lの範囲内にあるか否かを判別する(ステ
ップS171)。
Lのときには、エンジン回転数NEが前記図22の所定
上下限値NKSLBRH,NKSLBRL(例えば34
00rpm,1000rpm)の範囲内にあるか否かを
判別し(ステップS170)、NKSLBRL<NE<
NKSLBRHであるときは、吸気管内絶対圧PBAが
図22の低負荷側の所定上下限値PBSLBR1H,P
BSLBR1Lの範囲内にあるか否かを判別する(ステ
ップS171)。
【0120】一方、ステップS167〜S170の何れ
かの答が否定(NO)のときには、前記ステップS16
3に進み、ステップS163〜S166の処理を実行し
た後に、本KREFAF学習領域判断処理を終了する。
かの答が否定(NO)のときには、前記ステップS16
3に進み、ステップS163〜S166の処理を実行し
た後に、本KREFAF学習領域判断処理を終了する。
【0121】ステップS171で、PBSLBR1L<
PBA<PBSLBR1Hのとき、即ちエンジン1の状
態が図22のKREFAF1学習領域にあるときにはス
テップS172に進み、図14を用いて後述する学習領
域フラグFSLBREF1設定処理サブルーチンを実行
した後にステップS175に進む一方、PBA≦PBS
LBR1L又はPBSLBR1H≦PBAのときにはス
テップS173に進む。
PBA<PBSLBR1Hのとき、即ちエンジン1の状
態が図22のKREFAF1学習領域にあるときにはス
テップS172に進み、図14を用いて後述する学習領
域フラグFSLBREF1設定処理サブルーチンを実行
した後にステップS175に進む一方、PBA≦PBS
LBR1L又はPBSLBR1H≦PBAのときにはス
テップS173に進む。
【0122】ステップS173では、吸気管内絶対圧P
BAが図22の高負荷側の所定上下限値PBSLBR2
H,PBSLBR2Lの範囲内にあるか否かを判別し、
PBSLBR2L<PBA<PBSLBR2Hのとき、
即ちエンジン1の状態が図22のKREFAF2学習領
域にあるときにはステップS174に進み、図15を用
いて後述する学習領域フラグFSLBREF2設定処理
サブルーチンを実行した後にステップS175に進む一
方、PBA≦PBSLBR2L又はPBSLBR2H≦
PBAのときには前記ステップS163に進む。
BAが図22の高負荷側の所定上下限値PBSLBR2
H,PBSLBR2Lの範囲内にあるか否かを判別し、
PBSLBR2L<PBA<PBSLBR2Hのとき、
即ちエンジン1の状態が図22のKREFAF2学習領
域にあるときにはステップS174に進み、図15を用
いて後述する学習領域フラグFSLBREF2設定処理
サブルーチンを実行した後にステップS175に進む一
方、PBA≦PBSLBR2L又はPBSLBR2H≦
PBAのときには前記ステップS163に進む。
【0123】ステップS175では、学習終了フラグF
SLBREFOK1が「1」であり、且つ(&)学習終
了フラグFSLBREFOK2が「1」であるか否かを
判別し、FSLBREFOK1=1&FSLBREFO
K2=1のときには、前記学習終了フラグFSLBRE
FOKを「1」に設定した後に、本KREFAF学習領
域判断処理を終了する一方、FSLBREFOK1,2
の何れかが「0」のときには、学習終了フラグFSLB
REFOKを「0」に設定した後に、本KREFAF学
習領域判断処理を終了する。
SLBREFOK1が「1」であり、且つ(&)学習終
了フラグFSLBREFOK2が「1」であるか否かを
判別し、FSLBREFOK1=1&FSLBREFO
K2=1のときには、前記学習終了フラグFSLBRE
FOKを「1」に設定した後に、本KREFAF学習領
域判断処理を終了する一方、FSLBREFOK1,2
の何れかが「0」のときには、学習終了フラグFSLB
REFOKを「0」に設定した後に、本KREFAF学
習領域判断処理を終了する。
【0124】図14は、前記ステップS172のFSL
BREF1設定処理サブルーチンの詳細な手順を示すフ
ローチャートである。
BREF1設定処理サブルーチンの詳細な手順を示すフ
ローチャートである。
【0125】同図において、先ず前記KREFAF2学
習領域フラグFSLBREF2を「0」に設定する(ス
テップS181)。
習領域フラグFSLBREF2を「0」に設定する(ス
テップS181)。
【0126】次に、前記学習終了フラグFSLBREF
OK1が「1」であるか否かを判別し(ステップS18
2)、FSLBREFOK1=0のとき、即ちリーン制
御低負荷側学習値KREFAF1の学習がまだ終了して
いないときには、前記最小学習時間フラグFREFMI
N1が「1」であるか否かを判別する(ステップS18
3)。最初はFREFMIN1=0であるのでステップ
S184に進み、ステップS164でセットしたタイマ
tmREFMIN1の値が「0」か否かを判別する。そ
してtmREFMIN1>0である間は、ステップS1
62でセットしたタイマtmSLBREF1のダウンカ
ウントを停止し(ステップS185)、KREFAF1
学習領域フラグFSLBREF1を「1」に設定して、
リーン制御低負荷側学習値KREFAF1の算出を許可
し(ステップS188)、本FSLBREF1設定処理
を終了する。
OK1が「1」であるか否かを判別し(ステップS18
2)、FSLBREFOK1=0のとき、即ちリーン制
御低負荷側学習値KREFAF1の学習がまだ終了して
いないときには、前記最小学習時間フラグFREFMI
N1が「1」であるか否かを判別する(ステップS18
3)。最初はFREFMIN1=0であるのでステップ
S184に進み、ステップS164でセットしたタイマ
tmREFMIN1の値が「0」か否かを判別する。そ
してtmREFMIN1>0である間は、ステップS1
62でセットしたタイマtmSLBREF1のダウンカ
ウントを停止し(ステップS185)、KREFAF1
学習領域フラグFSLBREF1を「1」に設定して、
リーン制御低負荷側学習値KREFAF1の算出を許可
し(ステップS188)、本FSLBREF1設定処理
を終了する。
【0127】学習開始後最小学習時間TREFMIN1
が経過するとtmREFMIN1=0となるので、ステ
ップS184からステップS186に進み、最小学習時
間フラグFREFMIN1を「1」に設定するととも
に、タイマtmSLBREF1のカウント値を最小学習
時間TRERMIN1だけ減算して(ステップS18
7)、前記ステップS188に進む。
が経過するとtmREFMIN1=0となるので、ステ
ップS184からステップS186に進み、最小学習時
間フラグFREFMIN1を「1」に設定するととも
に、タイマtmSLBREF1のカウント値を最小学習
時間TRERMIN1だけ減算して(ステップS18
7)、前記ステップS188に進む。
【0128】ステップS186でFREFMIN1=1
とされると、ステップS183の答が肯定(YES)と
なるので、ステップS189に進み、タイマtmSLB
REF1の値が「0」より大きいか否かを判別する。そ
してtmSLBREF1>0である間は前記ステップS
188に進んでリーン制御低負荷側学習値KREFAF
1の算出を継続し、tmSLBREF1=0となると、
学習終了フラグFSLBREFOK1を「1」に設定し
(ステップS190)、KREFAF1学習領域フラグ
FSLBREF1を「0」に設定する(ステップS19
1)。
とされると、ステップS183の答が肯定(YES)と
なるので、ステップS189に進み、タイマtmSLB
REF1の値が「0」より大きいか否かを判別する。そ
してtmSLBREF1>0である間は前記ステップS
188に進んでリーン制御低負荷側学習値KREFAF
1の算出を継続し、tmSLBREF1=0となると、
学習終了フラグFSLBREFOK1を「1」に設定し
(ステップS190)、KREFAF1学習領域フラグ
FSLBREF1を「0」に設定する(ステップS19
1)。
【0129】続くステップS192では、ステップS1
62でセットしたタイマtmSLBREF2のダウンカ
ウントを停止するとともに、前記タイマtmREFMI
N2に前記最小学習時間TREFMIN2をセットして
スタートさせた後に、本FSLBREF1設定処理を終
了する。
62でセットしたタイマtmSLBREF2のダウンカ
ウントを停止するとともに、前記タイマtmREFMI
N2に前記最小学習時間TREFMIN2をセットして
スタートさせた後に、本FSLBREF1設定処理を終
了する。
【0130】一方、ステップS182で、FSLBRE
FOK1=1のとき、即ちリーン制御低負荷側学習値K
REFAF1の学習を終了したときには、前記ステップ
S192に進む。
FOK1=1のとき、即ちリーン制御低負荷側学習値K
REFAF1の学習を終了したときには、前記ステップ
S192に進む。
【0131】図15は、前記ステップS174のFSL
BREF2設定処理サブルーチンの詳細な手順を示すフ
ローチャートである。本FSLBREF2設定処理は、
上記FSLBREF1設定処理と同様の処理を、KRE
FAF2学習領域フラグFSLBREF2に対して行う
のみであるため、その説明を省略する。
BREF2設定処理サブルーチンの詳細な手順を示すフ
ローチャートである。本FSLBREF2設定処理は、
上記FSLBREF1設定処理と同様の処理を、KRE
FAF2学習領域フラグFSLBREF2に対して行う
のみであるため、その説明を省略する。
【0132】図16〜18は、前記図12のステップS
140におけるKOBJ算出処理サブルーチンのフロー
チャートである。
140におけるKOBJ算出処理サブルーチンのフロー
チャートである。
【0133】図16において、先ず、空燃比(A/F)
の切換中であることを「1」で表す空燃比切換中フラグ
FAFCHGが「1」か否かを判別し(ステップS22
1)、FAFCHG=1のときには、目標空燃比KOB
Jを前回算出され記憶された前回目標空燃比KOBJL
ASTに設定し(ステップS222)、本KOBJ算出
処理を終了する。
の切換中であることを「1」で表す空燃比切換中フラグ
FAFCHGが「1」か否かを判別し(ステップS22
1)、FAFCHG=1のときには、目標空燃比KOB
Jを前回算出され記憶された前回目標空燃比KOBJL
ASTに設定し(ステップS222)、本KOBJ算出
処理を終了する。
【0134】一方、ステップS221で、FAFCHG
=0のときには、前記アイドルフラグFIDLEが
「1」か否かを判別し(ステップS223)、FIDL
E=0であってアイドル状態でないときは、エンジン回
転数NEが所定上下限値NSLBZNH,NSLBZN
L(例えば、4000rpm,900rpm)の範囲内
にあるか否かを判別する(ステップS224)。そし
て、FIDLE=1であってアイドル状態であるとき又
はNE≦NSLBZNL若しくはNE≧NSLBZNH
であるときは、図18のステップS242に進み、NS
LBZNL<NE<NSLBZNHであるときは、ステ
ップS225に進んでSLB領域持ち替え処理を実行す
る。この処理では、ギヤ比、吸気管内絶対圧PBA及び
車速の変化量(加速度)等に応じて、前記SLB高負荷
領域フラグFSLBPZNの設定を行う。
=0のときには、前記アイドルフラグFIDLEが
「1」か否かを判別し(ステップS223)、FIDL
E=0であってアイドル状態でないときは、エンジン回
転数NEが所定上下限値NSLBZNH,NSLBZN
L(例えば、4000rpm,900rpm)の範囲内
にあるか否かを判別する(ステップS224)。そし
て、FIDLE=1であってアイドル状態であるとき又
はNE≦NSLBZNL若しくはNE≧NSLBZNH
であるときは、図18のステップS242に進み、NS
LBZNL<NE<NSLBZNHであるときは、ステ
ップS225に進んでSLB領域持ち替え処理を実行す
る。この処理では、ギヤ比、吸気管内絶対圧PBA及び
車速の変化量(加速度)等に応じて、前記SLB高負荷
領域フラグFSLBPZNの設定を行う。
【0135】次に、SLB領域内フラグFSLBZNが
「1」か否かを判別し(ステップS226)、FSLB
ZN=1であってSLB領域内であるときは、エンジン
水温TWが所定水温TWLEAN5(例えば70℃)以
上か否かを判別する(ステップS227)。そして、ス
テップS226又はS227の何れかの答が否定(N
O)のときは、リーンバーン制御を実行すべきでないと
判定し、図18のステップS242で、ダウンカウント
タイマtmSLBDLYに所定時間TSLBDLYをセ
ットしてスタートさせ、目標空燃比KOBJを「1.
0」に設定して(ステップS244)、本KOBJ算出
処理を終了する。
「1」か否かを判別し(ステップS226)、FSLB
ZN=1であってSLB領域内であるときは、エンジン
水温TWが所定水温TWLEAN5(例えば70℃)以
上か否かを判別する(ステップS227)。そして、ス
テップS226又はS227の何れかの答が否定(N
O)のときは、リーンバーン制御を実行すべきでないと
判定し、図18のステップS242で、ダウンカウント
タイマtmSLBDLYに所定時間TSLBDLYをセ
ットしてスタートさせ、目標空燃比KOBJを「1.
0」に設定して(ステップS244)、本KOBJ算出
処理を終了する。
【0136】ステップS227でTW≧TWLEAN5
であるときは、さらにエンジン水温TWが所定水温TW
LEAN(>TWLEAN5)以上か否かを判別し(ス
テップS228)、TW≧TWLEANであるときは、
直ちに図17のステップS232に進み、TW<TWL
EANであるときは、当該車両がAT車であるか否かを
判別する(ステップS229)。そして、AT車でない
とき、即ちMT車であるときは、ギヤ位置NGRが5速
にあるか否かを判別し(ステップS230)、5速のと
きは前記ステップS232に進む一方、5速でないとき
は前記ステップS242に進む。また、AT車であると
きは、ギヤ位置が4速か否かを判別し(ステップS23
1)、4速のときはステップS232に進む一方、4速
でないときは前記ステップS242に進む。
であるときは、さらにエンジン水温TWが所定水温TW
LEAN(>TWLEAN5)以上か否かを判別し(ス
テップS228)、TW≧TWLEANであるときは、
直ちに図17のステップS232に進み、TW<TWL
EANであるときは、当該車両がAT車であるか否かを
判別する(ステップS229)。そして、AT車でない
とき、即ちMT車であるときは、ギヤ位置NGRが5速
にあるか否かを判別し(ステップS230)、5速のと
きは前記ステップS232に進む一方、5速でないとき
は前記ステップS242に進む。また、AT車であると
きは、ギヤ位置が4速か否かを判別し(ステップS23
1)、4速のときはステップS232に進む一方、4速
でないときは前記ステップS242に進む。
【0137】ステップS232では、当該車両がAT車
か否かを判別し、AT車でない、即ちMT車のときは、
ギヤ位置NGRが所定ギヤ位置NGRLより高速側か否
かを判別し(ステップS234)、NGR≦NGRLで
あるときは前記ステップS242に進み、NGR>NG
RLであるときは、車速Vが所定車速VNGRLより高
いか否かを判別する(ステップS235)。そして、V
≦VNGRLであるときは前記ステップS242に進
み、V>VNGRLであればステップS236に進む。
か否かを判別し、AT車でない、即ちMT車のときは、
ギヤ位置NGRが所定ギヤ位置NGRLより高速側か否
かを判別し(ステップS234)、NGR≦NGRLで
あるときは前記ステップS242に進み、NGR>NG
RLであるときは、車速Vが所定車速VNGRLより高
いか否かを判別する(ステップS235)。そして、V
≦VNGRLであるときは前記ステップS242に進
み、V>VNGRLであればステップS236に進む。
【0138】一方AT車であるときは、ステップS23
2からS233に進みギヤ位置NGRATが所定ギヤ位
置NGRATLより高速側か否かを判別し、NGRAT
≦NGRATLであるときは、前記ステップS242に
進み、NGRAT>NGRATLであるときは、前記ス
テップS235に進む。
2からS233に進みギヤ位置NGRATが所定ギヤ位
置NGRATLより高速側か否かを判別し、NGRAT
≦NGRATLであるときは、前記ステップS242に
進み、NGRAT>NGRATLであるときは、前記ス
テップS235に進む。
【0139】ステップS232〜S235により、ギヤ
位置又は車速(及びロックアップクラッチの係合状態)
によっては、リーンバーン制御を実行しないようにして
いる。
位置又は車速(及びロックアップクラッチの係合状態)
によっては、リーンバーン制御を実行しないようにして
いる。
【0140】ステップS236では、前記学習終了フラ
グFSLBREFOKが「1」であるか否かを判別し、
FSLBREFOK=1のとき、即ちリーン制御学習値
KREFAFの学習が終了したときにはステップS23
7に進み、エンジン1がWOT(スロットル弁全開運
転、Wide Open Throttle)領域にあることを「1」で示
すWOTフラグFWOTが「1」か否かを判別する。F
WOT=0であるときは、エンジン回転数NEの応じて
図26に示すTHSLBテーブルを検索し、スロットル
弁開度θTHのリーンバーン制御上限値THSLBを算
出する(ステップS238)。次いで、検出したスロッ
トル弁開度θTHが上限値THSLBより小さいか否か
を判別し(ステップS239)、θTH<THSLBで
あるときは、スロットル弁開度θTHの変化量DTH
(=θTH(N)−θTH(N−1))が、所定変化量
DTHKCRより小さいか否かを判別し(ステップS2
40)、DTH<DTHKCRであるときは、吸気管内
絶対圧PBAの変化量DPB(=PBA(N)−PBA
(N−1))が所定変化量DPBKCRより小さいか否
かを判別する(ステップS241)。その結果、ステッ
プS239〜S241の何れかの答が否定(NO)のと
きは、前記ステップS242に進み、リーンバーン制御
は行わない。
グFSLBREFOKが「1」であるか否かを判別し、
FSLBREFOK=1のとき、即ちリーン制御学習値
KREFAFの学習が終了したときにはステップS23
7に進み、エンジン1がWOT(スロットル弁全開運
転、Wide Open Throttle)領域にあることを「1」で示
すWOTフラグFWOTが「1」か否かを判別する。F
WOT=0であるときは、エンジン回転数NEの応じて
図26に示すTHSLBテーブルを検索し、スロットル
弁開度θTHのリーンバーン制御上限値THSLBを算
出する(ステップS238)。次いで、検出したスロッ
トル弁開度θTHが上限値THSLBより小さいか否か
を判別し(ステップS239)、θTH<THSLBで
あるときは、スロットル弁開度θTHの変化量DTH
(=θTH(N)−θTH(N−1))が、所定変化量
DTHKCRより小さいか否かを判別し(ステップS2
40)、DTH<DTHKCRであるときは、吸気管内
絶対圧PBAの変化量DPB(=PBA(N)−PBA
(N−1))が所定変化量DPBKCRより小さいか否
かを判別する(ステップS241)。その結果、ステッ
プS239〜S241の何れかの答が否定(NO)のと
きは、前記ステップS242に進み、リーンバーン制御
は行わない。
【0141】一方、ステップS239〜S241の答が
すべて肯定(YES)のときは、前記ステップS242
でセットしたタイマtmSLBDLYの値が「0」か否
かを判別する(図18、ステップS243)。tmSL
BDLY>0である間は前記ステップS244に進ん
で、KOBJ=1.0とし、tmSLBDLY=0とな
ると、前記SLB高負荷領域フラグFSLBPZNが
「1」か否かを判別し(ステップS245)、FSLB
PZN=1であってSLB領域内の高負荷領域にあると
きは、KOBJPZNマップを検索し(ステップS24
6)、その検索結果である高負荷時の目標空燃比KOB
JPZNを目標空燃比KOBJに設定した(ステップS
247)後に、ステップS251に進む。
すべて肯定(YES)のときは、前記ステップS242
でセットしたタイマtmSLBDLYの値が「0」か否
かを判別する(図18、ステップS243)。tmSL
BDLY>0である間は前記ステップS244に進ん
で、KOBJ=1.0とし、tmSLBDLY=0とな
ると、前記SLB高負荷領域フラグFSLBPZNが
「1」か否かを判別し(ステップS245)、FSLB
PZN=1であってSLB領域内の高負荷領域にあると
きは、KOBJPZNマップを検索し(ステップS24
6)、その検索結果である高負荷時の目標空燃比KOB
JPZNを目標空燃比KOBJに設定した(ステップS
247)後に、ステップS251に進む。
【0142】ステップS245でFSLBPZN=0で
あるときは、目標空燃比KOBJを所定下限値KOBJ
Lに設定し(ステップS248)、SLBF/B中フラ
グFSLBFBが「1」か否かを判別する(ステップS
249)。そして、FSLBFB=0であるときはステ
ップS251に進む一方、FSLBFB=1であってK
LSAF値のフィードバック制御中であるときは、次式
(10)によりリーンバーン補正係数KLSAFの学習
値KLSAFREFを算出して(ステップS250)、
ステップS251に進む。
あるときは、目標空燃比KOBJを所定下限値KOBJ
Lに設定し(ステップS248)、SLBF/B中フラ
グFSLBFBが「1」か否かを判別する(ステップS
249)。そして、FSLBFB=0であるときはステ
ップS251に進む一方、FSLBFB=1であってK
LSAF値のフィードバック制御中であるときは、次式
(10)によりリーンバーン補正係数KLSAFの学習
値KLSAFREFを算出して(ステップS250)、
ステップS251に進む。
【0143】 KLSAFREF=KLSCRF×KLSAF(N)/A+(A−KLSCR F)×KLSAFREF(N−1)/A …(10) ここで、KLSCRFは1からAの間の値に設定される
なまし係数である。
なまし係数である。
【0144】ステップS251では、アクセル操作によ
るドライバの加速要求時に目標空燃比KOBJを持ち換
えるためのKOBJTHマップ(図示せず)を、スロッ
トル弁開度θTH及びエンジン回転数NEに応じて検索
する。
るドライバの加速要求時に目標空燃比KOBJを持ち換
えるためのKOBJTHマップ(図示せず)を、スロッ
トル弁開度θTH及びエンジン回転数NEに応じて検索
する。
【0145】続くステップS252では、ステップS2
51で検索した目標空燃比KOBJTHが前記算出した
目標空燃比KOBJより大きいか否かを判別し、KOB
J<KOBJTHのときには、目標空燃比KOBJを検
索値KOBJTHで置き換える(ステップS253)一
方、KOBJ≧KOBJTHのときには、直ちに本KO
BJ算出処理を終了する。即ち、ステップS252及び
S253の処理では、目標空燃比KOBJTHのリミッ
ト処理を行っている。
51で検索した目標空燃比KOBJTHが前記算出した
目標空燃比KOBJより大きいか否かを判別し、KOB
J<KOBJTHのときには、目標空燃比KOBJを検
索値KOBJTHで置き換える(ステップS253)一
方、KOBJ≧KOBJTHのときには、直ちに本KO
BJ算出処理を終了する。即ち、ステップS252及び
S253の処理では、目標空燃比KOBJTHのリミッ
ト処理を行っている。
【0146】このように、本実施の形態では、例えばS
LB領域内の高負荷領域にあるときのパワーアップ要求
(前記ステップS246におけるKOBJPNマップの
検索)やドライバのアクセル操作によるパワーアップ要
求(前記ステップS251におけるKOBJTHマップ
の検索)等のエンジン1に対する外部環境の種類に応じ
た複数のマップを使用し、該各マップから運転状態に応
じて適切な目標空燃比KOBJを選択するようにしたの
で、外部環境の変化に十分追従した最適な目標空燃比を
設定することができる。
LB領域内の高負荷領域にあるときのパワーアップ要求
(前記ステップS246におけるKOBJPNマップの
検索)やドライバのアクセル操作によるパワーアップ要
求(前記ステップS251におけるKOBJTHマップ
の検索)等のエンジン1に対する外部環境の種類に応じ
た複数のマップを使用し、該各マップから運転状態に応
じて適切な目標空燃比KOBJを選択するようにしたの
で、外部環境の変化に十分追従した最適な目標空燃比を
設定することができる。
【0147】なお、外部環境としては、上記2種類のも
のに限る必要はなく、例えば車両の走行状態を考慮する
ようにしてもよい。具体的には、「定地走行」、「登坂
走行」又は「降坂走行」の各走行に対応する3種類のマ
ップ、即ち目標空燃比KOBJ算出用マップを用意し、
該マップから車両の走行状態に応じて1つのマップを選
択するとともに、運転状態に応じて該マップから目標空
燃比を検索するようにする。これにより、外部環境の変
化に応じてさらに最適な目標空燃比を設定することがで
きる。
のに限る必要はなく、例えば車両の走行状態を考慮する
ようにしてもよい。具体的には、「定地走行」、「登坂
走行」又は「降坂走行」の各走行に対応する3種類のマ
ップ、即ち目標空燃比KOBJ算出用マップを用意し、
該マップから車両の走行状態に応じて1つのマップを選
択するとともに、運転状態に応じて該マップから目標空
燃比を検索するようにする。これにより、外部環境の変
化に応じてさらに最適な目標空燃比を設定することがで
きる。
【0148】図19は、前記図12のステップS146
のKLSAFリミット処理の詳細な手順を示すフローチ
ャートである。
のKLSAFリミット処理の詳細な手順を示すフローチ
ャートである。
【0149】同図において、先ずステップS261で
は、リーンバーン補正係数KLSAFが、リーン燃焼が
可能なリーン限界空燃比であるリーンバーン補正係数の
リーン限界値(以下、「リーン限界空燃比」という)K
LSAFLMT以上であるか否かを判別し、KLSAF
<KLSAFLMTのときには、リーンバーン補正係数
KLSAFをリーン限界空燃比KLSAFLMTに設定
する(ステップS262)一方、KLSAF≧KLSA
FLMTのときには、ステップS262をスキップして
ステップS263に進む。
は、リーンバーン補正係数KLSAFが、リーン燃焼が
可能なリーン限界空燃比であるリーンバーン補正係数の
リーン限界値(以下、「リーン限界空燃比」という)K
LSAFLMT以上であるか否かを判別し、KLSAF
<KLSAFLMTのときには、リーンバーン補正係数
KLSAFをリーン限界空燃比KLSAFLMTに設定
する(ステップS262)一方、KLSAF≧KLSA
FLMTのときには、ステップS262をスキップして
ステップS263に進む。
【0150】ステップS263では、今回の目標空燃比
KOBJ(N)と前回のリーンバーン補正係数KLSA
F(N−1)との偏差を算出するためと、今回の空燃比
の補正がリッチ方向かリーン方向かを判別するために、
次式(11)により変化量DKLSAFを目標空燃比の
今回値KOBJ(N)とリーンバーン補正係数の前回値
KLSAF(N−1)との差として算出する。
KOBJ(N)と前回のリーンバーン補正係数KLSA
F(N−1)との偏差を算出するためと、今回の空燃比
の補正がリッチ方向かリーン方向かを判別するために、
次式(11)により変化量DKLSAFを目標空燃比の
今回値KOBJ(N)とリーンバーン補正係数の前回値
KLSAF(N−1)との差として算出する。
【0151】 DKLSAF=KOBJ(N)−KLSAF(N−1) …(11) 続くステップS264では、前記WOTフラグFWOT
が「1」か否かを判別し、FWOT=1であるときは、
加算項DKC1をWOT領域用の所定値DKC1WOT
に設定し(ステップS265)、次式(12)により、
今回値KLSAF(N)の再設定を行う(ステップS2
74)。
が「1」か否かを判別し、FWOT=1であるときは、
加算項DKC1をWOT領域用の所定値DKC1WOT
に設定し(ステップS265)、次式(12)により、
今回値KLSAF(N)の再設定を行う(ステップS2
74)。
【0152】 KLSAF(N)=KLSAF(N−1)+DKC1 …(12) 次いで、回転変動量DMSSLBに応じてKLSAF値
の設定を行う(KLSAF値のフィードバック制御を行
う)ことを「1」で示すリーンフィードバックフラグF
SLBFBを「0」に設定し(ステップS275)、K
LSAF(N)値が「1.0」より大きいか否かを判別
する(ステップS276)。そして、KLSAF(N)
≦1.0であるときは直ちに、またKLSAF(N)>
1.0であるときは、KLSAF(N)=1.0として
(ステップS277)、ステップS278に進む。
の設定を行う(KLSAF値のフィードバック制御を行
う)ことを「1」で示すリーンフィードバックフラグF
SLBFBを「0」に設定し(ステップS275)、K
LSAF(N)値が「1.0」より大きいか否かを判別
する(ステップS276)。そして、KLSAF(N)
≦1.0であるときは直ちに、またKLSAF(N)>
1.0であるときは、KLSAF(N)=1.0として
(ステップS277)、ステップS278に進む。
【0153】ステップS278では、KLSAF(N)
値が所定下限値KLSAFLより小さいか否かを判別
し、KLSAF(N)≧KLSAFLであるときは直ち
に、またKLSAF(N)<KLSAFLであるとき
は、KLSAF(N)=KLSAFLとして(ステップ
S279)、本処理を終了する。
値が所定下限値KLSAFLより小さいか否かを判別
し、KLSAF(N)≧KLSAFLであるときは直ち
に、またKLSAF(N)<KLSAFLであるとき
は、KLSAF(N)=KLSAFLとして(ステップ
S279)、本処理を終了する。
【0154】ステップS264で、FWOT=0である
ときは、ステップS263で算出した変化量DKLSA
Fが正の値か否かを判別し(ステップS266)、その
答が肯定(YES)のとき、すなわちKLSAF値が増
加したときは、エンジン回転数NEが第1所定回転数N
KSLB1より高いか否かを判別する(ステップS26
8)。その結果、NE≦NKSLB1であるときは、前
記加算項DKC1を低回転用所定値DKC1M1Hに設
定して(ステップS272)、ステップS273に進
む。
ときは、ステップS263で算出した変化量DKLSA
Fが正の値か否かを判別し(ステップS266)、その
答が肯定(YES)のとき、すなわちKLSAF値が増
加したときは、エンジン回転数NEが第1所定回転数N
KSLB1より高いか否かを判別する(ステップS26
8)。その結果、NE≦NKSLB1であるときは、前
記加算項DKC1を低回転用所定値DKC1M1Hに設
定して(ステップS272)、ステップS273に進
む。
【0155】ステップS268でNE>NKSLB1で
あるときは、さらに第1所定回転数NKSLB1より高
い第2所定回転数NKSLB2より高いか否かを判別す
る(ステップS269)。そして、NE≦NKSLB2
であるときは、加算項DKC1を中回転用所定値DKC
1M1Mに(ステップS271)、またNE>NKSL
B2であるときは、高回転用所定値DKC1M1Lに
(ステップS270)それぞれ設定して、ステップS2
73に進む。なお、各所定値は、DKC1M1H>DK
C1M1M>DKC1M1Lなる関係を有する。
あるときは、さらに第1所定回転数NKSLB1より高
い第2所定回転数NKSLB2より高いか否かを判別す
る(ステップS269)。そして、NE≦NKSLB2
であるときは、加算項DKC1を中回転用所定値DKC
1M1Mに(ステップS271)、またNE>NKSL
B2であるときは、高回転用所定値DKC1M1Lに
(ステップS270)それぞれ設定して、ステップS2
73に進む。なお、各所定値は、DKC1M1H>DK
C1M1M>DKC1M1Lなる関係を有する。
【0156】ステップS273では、前記ステップS2
63で算出した変化量DKLSAFの絶対値が加算項D
KC1より大きいか否かを判別し、|DKLSAF|≦
DKC1であるときは直ちに、また|DKLSAF|>
DKC1であるときは、前記ステップS274を実行し
て、前記ステップS275に進む。
63で算出した変化量DKLSAFの絶対値が加算項D
KC1より大きいか否かを判別し、|DKLSAF|≦
DKC1であるときは直ちに、また|DKLSAF|>
DKC1であるときは、前記ステップS274を実行し
て、前記ステップS275に進む。
【0157】以上のように、FWOT=1であってWO
T領域にあるとき又はDKLSAF>0であってKLS
AF値が増加したときは、回転変動量DMSSLBに応
じたKLSAF値の設定(リーンフィードバック制御)
は、行わない。
T領域にあるとき又はDKLSAF>0であってKLS
AF値が増加したときは、回転変動量DMSSLBに応
じたKLSAF値の設定(リーンフィードバック制御)
は、行わない。
【0158】ステップS266で、変化量DKLSAF
≦0であるとき、即ちKLSAF値が減少したとき又は
変化しないときは、図20及び21に示すKLSAFフ
ィードバック処理を実行して(ステップS267)、前
記ステップS278に進む。
≦0であるとき、即ちKLSAF値が減少したとき又は
変化しないときは、図20及び21に示すKLSAFフ
ィードバック処理を実行して(ステップS267)、前
記ステップS278に進む。
【0159】図20及び21は、KLSAFフィードバ
ック処理の詳細な手順を示すフローチャートである。
ック処理の詳細な手順を示すフローチャートである。
【0160】図20において、先ずステップS281で
は、リーンフィードバックフラグFSLBFBが「1」
か否かを判別し、FSLBFB=1であるときにはステ
ップS282に進み、スロットル弁開度θTHの変化量
DTH(=θTH(N)−θTH(N−1))が、所定
変化量DTHSLBより大きいか否かを判別し、DTH
>DTHSLBであってスロットル弁の開弁量(アクセ
ルペダルの踏み込み量)が大きいときは、リッチ補正項
DAFRをスロットル開弁時用所定値DAFRTHに設
定して(ステップS283)、図21のステップS31
7に進む。
は、リーンフィードバックフラグFSLBFBが「1」
か否かを判別し、FSLBFB=1であるときにはステ
ップS282に進み、スロットル弁開度θTHの変化量
DTH(=θTH(N)−θTH(N−1))が、所定
変化量DTHSLBより大きいか否かを判別し、DTH
>DTHSLBであってスロットル弁の開弁量(アクセ
ルペダルの踏み込み量)が大きいときは、リッチ補正項
DAFRをスロットル開弁時用所定値DAFRTHに設
定して(ステップS283)、図21のステップS31
7に進む。
【0161】ステップS317では、次式(13)によ
り前回値KLSAF(N−1)にリッチ補正項DAFR
を加算して今回値KLSAF(N)の再設定を行う。
り前回値KLSAF(N−1)にリッチ補正項DAFR
を加算して今回値KLSAF(N)の再設定を行う。
【0162】 KLSAF(N)=KLSAF(N−1)+DAFR …(13) 次いで、算出したKLSAF(N)値が所定上限値KL
SAFFBHより大きいか否かを判別し(ステップS3
18)、KLSAF(N)≦KLSAFFBHであると
きは直ちに、またKLSAF(N)>KLSAFFBH
であるときは、KLSAF(N)=KLSAFFBHと
して(ステップS319)、本処理を終了する。
SAFFBHより大きいか否かを判別し(ステップS3
18)、KLSAF(N)≦KLSAFFBHであると
きは直ちに、またKLSAF(N)>KLSAFFBH
であるときは、KLSAF(N)=KLSAFFBHと
して(ステップS319)、本処理を終了する。
【0163】図20に戻り、ステップS282でDTH
≦DTHSLBであるときは、吸気管内絶対圧PBAの
変化量DPB(=PBA(N)−PBA(N−1))
が、所定変化量DPBSLBより大きいか否かを判別し
(ステップS284)、DPB>DPBSLBであると
きは、リッチ補正項DAFRを負荷増加時用所定値DA
FRPBに設定して(ステップS285)、前記ステッ
プS317(図21)に進む。
≦DTHSLBであるときは、吸気管内絶対圧PBAの
変化量DPB(=PBA(N)−PBA(N−1))
が、所定変化量DPBSLBより大きいか否かを判別し
(ステップS284)、DPB>DPBSLBであると
きは、リッチ補正項DAFRを負荷増加時用所定値DA
FRPBに設定して(ステップS285)、前記ステッ
プS317(図21)に進む。
【0164】ステップS284の答が否定(NO)、即
ちDPB≦DPBSLBであるときは、失火検知により
空燃比のリッチ化が必要であることを「1」で示すリッ
チ化要求フラグFMFLBRICHが「1」か否かを判
別する(ステップS297)。その結果、FMFLBR
ICH=0のときは、回転変動量DMSSLBの第1の
上側閾値(α×DMSBAVE)(α>1.0,図28
(b)参照)を決定するための係数αを通常時用所定値
SLBALPHに設定する一方(ステップS298)、
FMFLBRICH=1であるときは、係数αを失火検
知時用所定値SLBALPMF(<SLBALPH)に
設定して(ステップS299)、図21のステップS3
00に進む。
ちDPB≦DPBSLBであるときは、失火検知により
空燃比のリッチ化が必要であることを「1」で示すリッ
チ化要求フラグFMFLBRICHが「1」か否かを判
別する(ステップS297)。その結果、FMFLBR
ICH=0のときは、回転変動量DMSSLBの第1の
上側閾値(α×DMSBAVE)(α>1.0,図28
(b)参照)を決定するための係数αを通常時用所定値
SLBALPHに設定する一方(ステップS298)、
FMFLBRICH=1であるときは、係数αを失火検
知時用所定値SLBALPMF(<SLBALPH)に
設定して(ステップS299)、図21のステップS3
00に進む。
【0165】ステップS300では、回転変動量DMS
SLBが第2の下側閾値MSLEAN1(図28(b)
参照)より小さいか否かを判別し、DMSSLB<MS
LEAN1であるときは、さらに第1の下側閾値(β×
DMSBAVE)(β<1.0)より小さいか否かを判
別する(ステップS301)。
SLBが第2の下側閾値MSLEAN1(図28(b)
参照)より小さいか否かを判別し、DMSSLB<MS
LEAN1であるときは、さらに第1の下側閾値(β×
DMSBAVE)(β<1.0)より小さいか否かを判
別する(ステップS301)。
【0166】ステップS301で、DMSSLB<(β
×DMSBAVE)であるときは、リーン補正項DAF
Lを第1の所定値DAFL1に設定して(ステップS3
02)、またDMSSLB≧(β×DMSBAVE)で
あるときは、第1の所定値DAFL1より小さい第2の
所定値DAFL2に設定して(ステップS303)、ス
テップS308に進む。
×DMSBAVE)であるときは、リーン補正項DAF
Lを第1の所定値DAFL1に設定して(ステップS3
02)、またDMSSLB≧(β×DMSBAVE)で
あるときは、第1の所定値DAFL1より小さい第2の
所定値DAFL2に設定して(ステップS303)、ス
テップS308に進む。
【0167】ステップS308では、図19のステップ
S263で算出したKLSAF値の変化量DKLSAF
の絶対値が上記リーン補正項DAFLより小さいか否か
を判別し、|DKLSAF|≧DAFLであるときは、
次式(14)により前回値KLSAF(N−1)からリ
ーン補正項DAFLを減算して今回値KLSAF(N)
の再設定を行って(ステップS309)、本処理を終了
する。
S263で算出したKLSAF値の変化量DKLSAF
の絶対値が上記リーン補正項DAFLより小さいか否か
を判別し、|DKLSAF|≧DAFLであるときは、
次式(14)により前回値KLSAF(N−1)からリ
ーン補正項DAFLを減算して今回値KLSAF(N)
の再設定を行って(ステップS309)、本処理を終了
する。
【0168】 KLSAF(N)=KLSAF(N−1)−DAFL …(14) このように、|DKLSAF|≧DAFLであって、前
回値KLSAF(N−1)に対する今回値KLASAF
(N)の減少量が上記リーン補正項以上のときは、減少
量が回転変動量DMSSLBに応じて設定されたDAF
L値となるように今回値KLSAF(N)値を再設定し
て、過度のリーン化を防止している。
回値KLSAF(N−1)に対する今回値KLASAF
(N)の減少量が上記リーン補正項以上のときは、減少
量が回転変動量DMSSLBに応じて設定されたDAF
L値となるように今回値KLSAF(N)値を再設定し
て、過度のリーン化を防止している。
【0169】また、|DKLSAF|<DAFLである
ときは、ステップS310に進んで、KLSAF(N−
1)<1.0であることを「1」で示すリーンフラグF
SLBが「1」か否かを判別し、FSLB=0であると
きは直ちに、またFSLB=1であるときはリーンフィ
ードバックフラグFSLBFBを「1」に設定して(ス
テップS311)、DAFLによる減算を行わずにKL
SAF(N)=KOBJ(N)として、本処理を終了す
る。
ときは、ステップS310に進んで、KLSAF(N−
1)<1.0であることを「1」で示すリーンフラグF
SLBが「1」か否かを判別し、FSLB=0であると
きは直ちに、またFSLB=1であるときはリーンフィ
ードバックフラグFSLBFBを「1」に設定して(ス
テップS311)、DAFLによる減算を行わずにKL
SAF(N)=KOBJ(N)として、本処理を終了す
る。
【0170】前記ステップS300の答が否定(N
O)、即ちDMSSLB≧MSLEAN1であるとき
は、回転変動量DMSSLBが第2の上側閾値MSLE
AN2(図28(b)参照)より小さいか否かを判別し
(ステップS304)、DMSSLB<MSLEAN2
であるときは、さらにDMSSLB値が第1の上側閾値
(α×DMSBAVE)より小さいか否かを判別し(ス
テップS305)、DMSSLB<(α×DMSBAV
E)であるときは、さらにDMSSLB値が第1の下側
閾値(β×DMSBAVE)より小さいか否かを判別す
る(ステップS306)。
O)、即ちDMSSLB≧MSLEAN1であるとき
は、回転変動量DMSSLBが第2の上側閾値MSLE
AN2(図28(b)参照)より小さいか否かを判別し
(ステップS304)、DMSSLB<MSLEAN2
であるときは、さらにDMSSLB値が第1の上側閾値
(α×DMSBAVE)より小さいか否かを判別し(ス
テップS305)、DMSSLB<(α×DMSBAV
E)であるときは、さらにDMSSLB値が第1の下側
閾値(β×DMSBAVE)より小さいか否かを判別す
る(ステップS306)。
【0171】そしてステップS306の答が肯定(YE
S)、即ちDMSSLB<(β×DMSBAVE)であ
るときは、リーン補正項DAFLを第3の所定値DAF
L3(<DAFL1)に設定して(ステップS30
7)、前記ステップS308に進む。
S)、即ちDMSSLB<(β×DMSBAVE)であ
るときは、リーン補正項DAFLを第3の所定値DAF
L3(<DAFL1)に設定して(ステップS30
7)、前記ステップS308に進む。
【0172】またステップS306の答が否定(N
O)、即ちDMSSLB≧(β×DMSBAVE)であ
るときは、KLSAF値を前回値保持として(ステップ
S312)、本処理を終了する。
O)、即ちDMSSLB≧(β×DMSBAVE)であ
るときは、KLSAF値を前回値保持として(ステップ
S312)、本処理を終了する。
【0173】前記ステップS304の答が否定(N
O)、即ちDMSSLB≧MSLEAN2であるとき
は、さらにDMSSLB値が第1の上側閾値(α×DM
SBAVE)より小さいか否かを判別する(ステップS
313)。その結果、DMSSLB≧(α×DMSBA
VE)であるときは、リッチ補正項DAFRを第1の所
定値DAFR1に設定して(ステップS316)、また
DMSSLB<(α×DMSBAVE)であるときは、
第1の所定値DAFR1より小さい第2の所定値DAF
R2に設定して(ステップS315)、前記ステップS
317に進む。
O)、即ちDMSSLB≧MSLEAN2であるとき
は、さらにDMSSLB値が第1の上側閾値(α×DM
SBAVE)より小さいか否かを判別する(ステップS
313)。その結果、DMSSLB≧(α×DMSBA
VE)であるときは、リッチ補正項DAFRを第1の所
定値DAFR1に設定して(ステップS316)、また
DMSSLB<(α×DMSBAVE)であるときは、
第1の所定値DAFR1より小さい第2の所定値DAF
R2に設定して(ステップS315)、前記ステップS
317に進む。
【0174】また、前記ステップS301の答が否定
(NO)、即ちDMSSLB≧(α×DMSBAVE)
であるときは、リッチ補正項DAFRを第3の所定値D
AFR3(<DAFR1)に設定して(ステップS31
4)、前記ステップS317に進む。
(NO)、即ちDMSSLB≧(α×DMSBAVE)
であるときは、リッチ補正項DAFRを第3の所定値D
AFR3(<DAFR1)に設定して(ステップS31
4)、前記ステップS317に進む。
【0175】このように、回転変動量DMSSLBが大
きいときは、DMSSLB値が大きいほどリッチ補正項
DAFRをより大きな値に設定し、燃焼状態がさらに悪
化することを防止している。
きいときは、DMSSLB値が大きいほどリッチ補正項
DAFRをより大きな値に設定し、燃焼状態がさらに悪
化することを防止している。
【0176】図20に戻り、ステップS281の答が否
定(NO)、即ちFSLBFB=0であるときは、前回
値KLSAF(N−1)が所定値KLSAFX1より大
きいか否かを判別し(ステップS286)、KLSAF
(N−1)>KLSAFX1であるときは、リーン補正
項DAFLを第4の所定値DAFLX1に設定して(ス
テップS287)、前記図21のステップS308に進
む。
定(NO)、即ちFSLBFB=0であるときは、前回
値KLSAF(N−1)が所定値KLSAFX1より大
きいか否かを判別し(ステップS286)、KLSAF
(N−1)>KLSAFX1であるときは、リーン補正
項DAFLを第4の所定値DAFLX1に設定して(ス
テップS287)、前記図21のステップS308に進
む。
【0177】また、ステップS286でKLSAF(N
−1)≧KLSAFX1であるときは、所定の高負荷運
転状態であることを「1」で示す高負荷フラグFSLB
PZNが「1」か否かを判別し(ステップS288)、
FSLBPZN=0であるときは、さらに前回値KLS
AF(N−1)が所定値KLSAFX2(<KLSAF
X1)より大きいか否かを判別する(ステップS29
1)。そして、FSLBPZN=1のとき又はKLSA
F(N−1)≦KLSAFX2であるときは、ステップ
S289に進んで回転変動量DMSSLBの平均値DM
SBAVEの初期化を行うとともに、リーンフィードバ
ックフラグFSLBFBを「1」に設定して(ステップ
S290)、前記ステップS297に進む。ここで、平
均値DMSBAVEの初期化は、DMSBAVE=DM
SSLB(N)とすることにより行う。
−1)≧KLSAFX1であるときは、所定の高負荷運
転状態であることを「1」で示す高負荷フラグFSLB
PZNが「1」か否かを判別し(ステップS288)、
FSLBPZN=0であるときは、さらに前回値KLS
AF(N−1)が所定値KLSAFX2(<KLSAF
X1)より大きいか否かを判別する(ステップS29
1)。そして、FSLBPZN=1のとき又はKLSA
F(N−1)≦KLSAFX2であるときは、ステップ
S289に進んで回転変動量DMSSLBの平均値DM
SBAVEの初期化を行うとともに、リーンフィードバ
ックフラグFSLBFBを「1」に設定して(ステップ
S290)、前記ステップS297に進む。ここで、平
均値DMSBAVEの初期化は、DMSBAVE=DM
SSLB(N)とすることにより行う。
【0178】前記ステップS291の答が肯定(YE
S)、即ちKLSAF(N−1)>KLSAFX2であ
るときは、回転変動量DMSSLBが第2の上側閾値M
SLEAN2より大きいか否かを判別し(ステップS2
92)、DMSSLB≦MSLEAN2であるときは、
リーン補正項DAFLを第5の所定値DAFLX2に設
定して(ステップS296)、前記図21のステップS
308に進む。
S)、即ちKLSAF(N−1)>KLSAFX2であ
るときは、回転変動量DMSSLBが第2の上側閾値M
SLEAN2より大きいか否かを判別し(ステップS2
92)、DMSSLB≦MSLEAN2であるときは、
リーン補正項DAFLを第5の所定値DAFLX2に設
定して(ステップS296)、前記図21のステップS
308に進む。
【0179】また、ステップS292でDMSSLB>
MSLEAN2であって燃焼状態が悪化したときは、ス
テップS289、S290と同様に平均値DMSBAV
Eの初期化を行うとともにリーンフィードバックフラグ
FSLBFBを「1」に設定し(ステップS293、S
294)、さらにリッチ補正項DAFRに第4の所定値
DAFRXを設定して(ステップS295)、前記図2
1のステップS317に進む。
MSLEAN2であって燃焼状態が悪化したときは、ス
テップS289、S290と同様に平均値DMSBAV
Eの初期化を行うとともにリーンフィードバックフラグ
FSLBFBを「1」に設定し(ステップS293、S
294)、さらにリッチ補正項DAFRに第4の所定値
DAFRXを設定して(ステップS295)、前記図2
1のステップS317に進む。
【0180】なお、上述した図20及び21の処理で使
用する第2の下側閾値MSLEAN1及び第2の上側閾
値MSLEAN2は、図示しない処理により以下のよう
に設定される。
用する第2の下側閾値MSLEAN1及び第2の上側閾
値MSLEAN2は、図示しない処理により以下のよう
に設定される。
【0181】即ち、先ずエンジン回転数NEに応じて図
27(a)にテーブルを検索して、閾値MSLEAN
1,MSLEAN2の上限値MSLEAN1H,MSL
EAN2H及び下限値MSLEAN1L,MSLEAN
2Lを決定する。次いで、同図(b)に示すように、吸
気管内絶対圧PBAが上限値PBMSH以上であるとき
は、閾値MSLEAN1,MSLEAN2として、上限
値MSLEAN1H,MSLEAN2Hを採用し、吸気
管内絶対圧PBAが下限値PBMSL以下であるとき
は、下限値MSLEAN1L,MSLEAN2Lを採用
し、PBMSL<PBA<PBMSHであるときは、補
間演算によりMSLEAN1値及びMSLEAN2値を
決定する。
27(a)にテーブルを検索して、閾値MSLEAN
1,MSLEAN2の上限値MSLEAN1H,MSL
EAN2H及び下限値MSLEAN1L,MSLEAN
2Lを決定する。次いで、同図(b)に示すように、吸
気管内絶対圧PBAが上限値PBMSH以上であるとき
は、閾値MSLEAN1,MSLEAN2として、上限
値MSLEAN1H,MSLEAN2Hを採用し、吸気
管内絶対圧PBAが下限値PBMSL以下であるとき
は、下限値MSLEAN1L,MSLEAN2Lを採用
し、PBMSL<PBA<PBMSHであるときは、補
間演算によりMSLEAN1値及びMSLEAN2値を
決定する。
【0182】さらに、表1に示すように、当該車両がM
T(マニュアルトランスミッション)車かAT(オート
マチックトランスミッション)車か及びギヤ比に応じ
て、補正係数KMSGRiM(i=3,4,5)及びK
MSGRjA(j=2,3,4)を決定し、図27のテ
ーブル検索値に乗算することにより、最終的な閾値MS
LEAN1及びMSLEAN2を算出する。
T(マニュアルトランスミッション)車かAT(オート
マチックトランスミッション)車か及びギヤ比に応じ
て、補正係数KMSGRiM(i=3,4,5)及びK
MSGRjA(j=2,3,4)を決定し、図27のテ
ーブル検索値に乗算することにより、最終的な閾値MS
LEAN1及びMSLEAN2を算出する。
【0183】
【表1】 なお、各補正係数値は、KMSGR3M<KMSGR4
M<KMSGR5M,KMSGR2A<KMSGR3A
<KMSGR4Aとなるように設定されている。また、
表1中の「CVT」は無断変速機を意味し、AT車の2
速、3速、4速相当の変速比のとき、それぞれKMSG
R2A、KMSGR3A、KMSGR4Aを使用する。
M<KMSGR5M,KMSGR2A<KMSGR3A
<KMSGR4Aとなるように設定されている。また、
表1中の「CVT」は無断変速機を意味し、AT車の2
速、3速、4速相当の変速比のとき、それぞれKMSG
R2A、KMSGR3A、KMSGR4Aを使用する。
【0184】上記図21の処理により、回転変動量DM
SSLBと、その値に応じて選択されるリーンバーン補
正係数KLSAFの補正項DAFR,DAFLの設定値
DAFR1〜3,DAFL1〜3とをまとめると、以下
のようになる。即ち、DMSSLB値が上側閾値MSL
EAN2又はα×DMSBAVE以上となると、DMS
SLB値が増加するほど、リッチ補正項DAFRが大き
な値に設定され、下側閾値MSLEAN1又はβ×DM
SBAVEより小さくなると、DMSSLB値が減少す
るほど、リーン補正項DAFLが大きな値に設定され、
DMSSLB値が上側閾値と下側閾値の間にあるとき
は、リーンバーン補正係数KLSAFは前回値保持とさ
れる。
SSLBと、その値に応じて選択されるリーンバーン補
正係数KLSAFの補正項DAFR,DAFLの設定値
DAFR1〜3,DAFL1〜3とをまとめると、以下
のようになる。即ち、DMSSLB値が上側閾値MSL
EAN2又はα×DMSBAVE以上となると、DMS
SLB値が増加するほど、リッチ補正項DAFRが大き
な値に設定され、下側閾値MSLEAN1又はβ×DM
SBAVEより小さくなると、DMSSLB値が減少す
るほど、リーン補正項DAFLが大きな値に設定され、
DMSSLB値が上側閾値と下側閾値の間にあるとき
は、リーンバーン補正係数KLSAFは前回値保持とさ
れる。
【0185】1)DMSSLB≧MSLEAN2かつD
MSSLB≧α×DMSBAVEであるとき、DAFR
=DAFR1 2)α×DMSBAVE>DMSSLB≧MSLEAN
2であるとき、DAFR=DAFR2(<DFR1) 3)MSLEAN2>DMSSLB≧α×DMSBAV
Eであるとき、DAFR=DAFR3(<DFR1) 4)DMSSLB<MSLEAN2かつDMSSLB<
α×DMSBAVEかつDMSSLB≧MSLEAN1
かつDMSSLB≧β×DMSBAVEであるとき、K
LSAF(N)=KLSAF(N−1)(前回値保持) 5)β×DMSBAVE>DMSSLB≧MSLEAN
1であるとき、DAFL=DAFL3(<DFL1) 6)MSLEAN1>DMSSLB≧β×DMSBAV
Eであるとき、DAFL=DAFL2(<DFL1) 7)DMSSLB<MSLEAN1かつDMSSLB<
β×DMSBAVEであるとき、DAFL=DAFL1 このようにKLSAFリミット処理では、リーン限界空
燃比マップから運転状態に応じてリーン限界空燃比が検
索され、該リーン限界空燃比及び前記外部環境等に応じ
て算出された目標空燃比のうちよりリッチ側の空燃比が
最終的な目標空燃比として設定されるので、燃焼限界内
で最適な目標空燃比を設定することができる。
MSSLB≧α×DMSBAVEであるとき、DAFR
=DAFR1 2)α×DMSBAVE>DMSSLB≧MSLEAN
2であるとき、DAFR=DAFR2(<DFR1) 3)MSLEAN2>DMSSLB≧α×DMSBAV
Eであるとき、DAFR=DAFR3(<DFR1) 4)DMSSLB<MSLEAN2かつDMSSLB<
α×DMSBAVEかつDMSSLB≧MSLEAN1
かつDMSSLB≧β×DMSBAVEであるとき、K
LSAF(N)=KLSAF(N−1)(前回値保持) 5)β×DMSBAVE>DMSSLB≧MSLEAN
1であるとき、DAFL=DAFL3(<DFL1) 6)MSLEAN1>DMSSLB≧β×DMSBAV
Eであるとき、DAFL=DAFL2(<DFL1) 7)DMSSLB<MSLEAN1かつDMSSLB<
β×DMSBAVEであるとき、DAFL=DAFL1 このようにKLSAFリミット処理では、リーン限界空
燃比マップから運転状態に応じてリーン限界空燃比が検
索され、該リーン限界空燃比及び前記外部環境等に応じ
て算出された目標空燃比のうちよりリッチ側の空燃比が
最終的な目標空燃比として設定されるので、燃焼限界内
で最適な目標空燃比を設定することができる。
【0186】図24は、前記TIマップデータのバラツ
キ原因がインジェクタ(燃料噴射弁6)の流量特性のバ
ラツキにあるとした場合に、本実施の形態の空燃比制御
装置により修正した流量特性と従来の空燃比制御装置に
より修正した流量特性とを比較するための図である。同
図中、(a)は、本実施の形態の空燃比制御装置による
修正前後の流量特性の一例を示し、(b)は、従来の空
燃比制御装置による修正前後の流量特性の一例を示し、
両図ともに、縦軸は流量特性Qを示し、横軸はTIマッ
プデータ値を示している。
キ原因がインジェクタ(燃料噴射弁6)の流量特性のバ
ラツキにあるとした場合に、本実施の形態の空燃比制御
装置により修正した流量特性と従来の空燃比制御装置に
より修正した流量特性とを比較するための図である。同
図中、(a)は、本実施の形態の空燃比制御装置による
修正前後の流量特性の一例を示し、(b)は、従来の空
燃比制御装置による修正前後の流量特性の一例を示し、
両図ともに、縦軸は流量特性Qを示し、横軸はTIマッ
プデータ値を示している。
【0187】本実施の形態の空燃比制御装置は、前記図
2のステップS18で説明したように、エンジン1の負
荷状態に応じた2つの学習領域、即ちKREFAF1学
習領域及びKREFAF2学習領域に分割し、該各学習
領域においてそれぞれ算出されたリーン制御低負荷側学
習値KREFAF1及びリーン制御高負荷側学習値KR
EFAF2に基づいてリーン制御学習値KREFAFを
算出し、この算出値に応じて空燃比制御を行うことによ
りエンジン1の量産バラツキ等による影響を吸収するよ
うにしたので、図24(a)に示すように、修正後の流
量特性(一点鎖線で示す)Q2は、2点のTIマップデ
ータに対して修正が加えられるため、修正前の流量特性
(実線で示す)Q1に対して、その傾き及びシフト量の
両者を修正することができる。
2のステップS18で説明したように、エンジン1の負
荷状態に応じた2つの学習領域、即ちKREFAF1学
習領域及びKREFAF2学習領域に分割し、該各学習
領域においてそれぞれ算出されたリーン制御低負荷側学
習値KREFAF1及びリーン制御高負荷側学習値KR
EFAF2に基づいてリーン制御学習値KREFAFを
算出し、この算出値に応じて空燃比制御を行うことによ
りエンジン1の量産バラツキ等による影響を吸収するよ
うにしたので、図24(a)に示すように、修正後の流
量特性(一点鎖線で示す)Q2は、2点のTIマップデ
ータに対して修正が加えられるため、修正前の流量特性
(実線で示す)Q1に対して、その傾き及びシフト量の
両者を修正することができる。
【0188】これに対して、従来の空燃比制御装置は、
エンジン1の全負荷状態に亘って1つの学習値を使用し
て空燃比制御を行うため、図24(b)に示すように、
修正後の流量特性(一点鎖線で示す)Q4は、1点のT
Iマップデータに対してその修正が加えられるため、修
正前の流量特性(実線で示す)Q3に対して、その傾き
のみを修正する。
エンジン1の全負荷状態に亘って1つの学習値を使用し
て空燃比制御を行うため、図24(b)に示すように、
修正後の流量特性(一点鎖線で示す)Q4は、1点のT
Iマップデータに対してその修正が加えられるため、修
正前の流量特性(実線で示す)Q3に対して、その傾き
のみを修正する。
【0189】前記エンジン1の量産バラツキ、即ち図2
4ではインジェクタの流量特性のバラツキによる空燃比
制御への影響度合いは、エンジン1の運転状態に応じて
異なるため、上記従来の空燃比制御装置のように、エン
ジン1の全負荷状態(運転状態)に亘って1つの学習値
を使用して空燃比制御を行う方法では、量産バラツキに
よる影響を十分に吸収することはできない。したがっ
て、本実施の形態では、エンジン1の運転状態に応じて
2種類の学習値を使用するようにしたので、より広い運
転領域に亘り、量産バラツキによる影響を十分に吸収す
ることができ、リーンバーン制御を、空燃比精度を確保
しつつ実行することができ、排気ガス特性や運転性を犠
牲にせずに燃費向上効果を高めることができる。
4ではインジェクタの流量特性のバラツキによる空燃比
制御への影響度合いは、エンジン1の運転状態に応じて
異なるため、上記従来の空燃比制御装置のように、エン
ジン1の全負荷状態(運転状態)に亘って1つの学習値
を使用して空燃比制御を行う方法では、量産バラツキに
よる影響を十分に吸収することはできない。したがっ
て、本実施の形態では、エンジン1の運転状態に応じて
2種類の学習値を使用するようにしたので、より広い運
転領域に亘り、量産バラツキによる影響を十分に吸収す
ることができ、リーンバーン制御を、空燃比精度を確保
しつつ実行することができ、排気ガス特性や運転性を犠
牲にせずに燃費向上効果を高めることができる。
【0190】なお、本実施の形態では、エンジン1の運
転状態に応じて2種類の学習値を用いるようにしたが、
この数は「2」に限られないことは云うまでもない。
転状態に応じて2種類の学習値を用いるようにしたが、
この数は「2」に限られないことは云うまでもない。
【0191】図29は、点火プラグ31の点火時期θI
Gの進角補正量(θIGADV)を算出する点火時期進
角補正量算出処理の手順を示すフローチャートであり、
本処理は、リーンバーン補正係数KLSAFがリーンバ
ーン補正係数リミット値KLSAFLMT(リーン限界
空燃比)にはりついた場合の点火時期進角補正量の算出
処理を示している。なお、本処理もTDC信号パルスの
発生に同期して実行される。
Gの進角補正量(θIGADV)を算出する点火時期進
角補正量算出処理の手順を示すフローチャートであり、
本処理は、リーンバーン補正係数KLSAFがリーンバ
ーン補正係数リミット値KLSAFLMT(リーン限界
空燃比)にはりついた場合の点火時期進角補正量の算出
処理を示している。なお、本処理もTDC信号パルスの
発生に同期して実行される。
【0192】同図において、先ず前記図12のステップ
S140〜S146で算出されたリーンバーン補正係数
KLSAFが前記リーンバーン補正係数リミット値KL
SAFLMTに一致するか否かを判別し(ステップS
1)、KLSAF=KLSAFLMTのとき、即ちリー
ンバーン補正係数KLSAFがリーンバーン補正係数リ
ミット値KLSAFLMTにはりついたときには、点火
時期進角補正量θIGADVをリタードさせるためのリ
タード率KLADVRTDの前回値から所定幅DKLA
RTDMだけ減算して、即ちリタードさせて、今回のリ
タード率KLADVRTDとし(ステップS2)、この
決定されたリタード率KLADVRTDが所定の範囲内
に収まるようにリミット処理を施した(ステップS4)
後に、次式(15)によりリーンバーン点火時期進角補
正量θIGADVを算出する(ステップS5)。そし
て、このようにして算出された点火時期進角補正量θI
GADVに基づいて点火時期を決定し制御する。
S140〜S146で算出されたリーンバーン補正係数
KLSAFが前記リーンバーン補正係数リミット値KL
SAFLMTに一致するか否かを判別し(ステップS
1)、KLSAF=KLSAFLMTのとき、即ちリー
ンバーン補正係数KLSAFがリーンバーン補正係数リ
ミット値KLSAFLMTにはりついたときには、点火
時期進角補正量θIGADVをリタードさせるためのリ
タード率KLADVRTDの前回値から所定幅DKLA
RTDMだけ減算して、即ちリタードさせて、今回のリ
タード率KLADVRTDとし(ステップS2)、この
決定されたリタード率KLADVRTDが所定の範囲内
に収まるようにリミット処理を施した(ステップS4)
後に、次式(15)によりリーンバーン点火時期進角補
正量θIGADVを算出する(ステップS5)。そし
て、このようにして算出された点火時期進角補正量θI
GADVに基づいて点火時期を決定し制御する。
【0193】 θIGADV=θIGADVMAP×KLADV×KLADVRTD …( 15) ここで、θIGADVMAPは、各種運転状態に対応し
て点火時期進角補正量θIGADVが設定された点火時
期進角補正量マップから検索されたマップ値を示し、K
LADVは、目標空燃比に応じて決定される補正係数を
示している。
て点火時期進角補正量θIGADVが設定された点火時
期進角補正量マップから検索されたマップ値を示し、K
LADVは、目標空燃比に応じて決定される補正係数を
示している。
【0194】一方、ステップS1で、KLSAF≠KL
SAFLMTのときには、前回のリタード率KLADV
RTDに所定幅DKLARTDPだけ加算して、今回の
リタード率KLADVRTDとした(ステップS3)後
に、前記ステップS4に進む。
SAFLMTのときには、前回のリタード率KLADV
RTDに所定幅DKLARTDPだけ加算して、今回の
リタード率KLADVRTDとした(ステップS3)後
に、前記ステップS4に進む。
【0195】このようにして、図30に示すように、リ
ーンバーン補正係数KLSAFがリーンバーン補正係数
リミット値KLSAFLMTに一致したとき(時刻t
1)には、前記図12のステップS146で説明したフ
ィードバック処理によりリーンバーン補正係数KLSA
Fがこのリーンバーン補正係数リミット値KLSAFL
MTよりリッチ側にずれるまで(時刻t2まで)、リタ
ード率KLADVRTDを「1.0」から徐々に(前記
所定幅DKLARTDMずつ)減少させる、即ち点火時
期進角補正量θIGADVを徐々にリタードさせるの
で、点火時期進角補正量θIGADVをサージングが発
生する限界位置までリタードさせることができ、これに
より、エンジン1にバラツキが発生した場合にも、図3
1に示すように、制御前のNOx排出量(実線で示す)
21を一点鎖線で示すNOx排出量22まで低減させる
ことができる。
ーンバーン補正係数KLSAFがリーンバーン補正係数
リミット値KLSAFLMTに一致したとき(時刻t
1)には、前記図12のステップS146で説明したフ
ィードバック処理によりリーンバーン補正係数KLSA
Fがこのリーンバーン補正係数リミット値KLSAFL
MTよりリッチ側にずれるまで(時刻t2まで)、リタ
ード率KLADVRTDを「1.0」から徐々に(前記
所定幅DKLARTDMずつ)減少させる、即ち点火時
期進角補正量θIGADVを徐々にリタードさせるの
で、点火時期進角補正量θIGADVをサージングが発
生する限界位置までリタードさせることができ、これに
より、エンジン1にバラツキが発生した場合にも、図3
1に示すように、制御前のNOx排出量(実線で示す)
21を一点鎖線で示すNOx排出量22まで低減させる
ことができる。
【0196】一方、リーンバーン補正係数KLSAFが
リーンバーン補正係数リミット値KLSAFLMTより
リッチ側にずれたとき(時刻t2)には、リタード率K
LADVRTDを「1.0」に徐々に(前記所定幅DK
LARTDPずつ)増加させる、即ち点火時期進角補正
量θIGADVを徐々にアドバンスさせて復帰させるの
で、上記効果をさらに向上させることができる。
リーンバーン補正係数リミット値KLSAFLMTより
リッチ側にずれたとき(時刻t2)には、リタード率K
LADVRTDを「1.0」に徐々に(前記所定幅DK
LARTDPずつ)増加させる、即ち点火時期進角補正
量θIGADVを徐々にアドバンスさせて復帰させるの
で、上記効果をさらに向上させることができる。
【0197】なお、本実施の形態では、サージジングの
発生を抑える方法として、エンジンの回転変動量を検出
し、この検出値に基づいて行う方法を採用したが、これ
に限る必要はなく、例えば筒内圧や2次電圧イオン検知
法等の他の燃焼変動を検出することによって行うように
してもよい。
発生を抑える方法として、エンジンの回転変動量を検出
し、この検出値に基づいて行う方法を採用したが、これ
に限る必要はなく、例えば筒内圧や2次電圧イオン検知
法等の他の燃焼変動を検出することによって行うように
してもよい。
【0198】
【発明の効果】以上説明したように、本発明に依れば、
検出された運転状態及び燃焼状態に応じて決定された空
燃比の目標値が、リーン限界設定手段により設定された
リーン側の限界値に一致している間、前記検出された運
転状態及び燃焼状態に応じて、点火時期算出手段により
決定された点火時期が徐々に遅角されるので、内燃機関
の量産バラツキ等に拘わらず、リーンバーン制御時の排
気ガス中のNOx排出量を可及的に低減化させることが
可能となる効果を奏する。
検出された運転状態及び燃焼状態に応じて決定された空
燃比の目標値が、リーン限界設定手段により設定された
リーン側の限界値に一致している間、前記検出された運
転状態及び燃焼状態に応じて、点火時期算出手段により
決定された点火時期が徐々に遅角されるので、内燃機関
の量産バラツキ等に拘わらず、リーンバーン制御時の排
気ガス中のNOx排出量を可及的に低減化させることが
可能となる効果を奏する。
【0199】また、好ましくは、前記空燃比の目標値が
前記リーン側の限界値からリッチ側に外れたときに、前
記遅角された点火時期が徐々に進角されるので、上記効
果をさらに高めることができる。
前記リーン側の限界値からリッチ側に外れたときに、前
記遅角された点火時期が徐々に進角されるので、上記効
果をさらに高めることができる。
【図1】本発明の実施の一形態にかかる内燃エンジン及
びその制御装置の構成を示すブロック図である。
びその制御装置の構成を示すブロック図である。
【図2】空燃比補正係数を算出する空燃比補正係数算出
処理の手順を示すフローチャートである。
処理の手順を示すフローチャートである。
【図3】図2のKO2フィードバック処理サブルーチン
の詳細な手順を示すフローチャートである。
の詳細な手順を示すフローチャートである。
【図4】図3のKO2P項算出処理サブルーチンの詳細
な手順を示すフローチャートである。
な手順を示すフローチャートである。
【図5】図3のKO2I項算出処理サブルーチンの詳細
な手順を示すフローチャートである。
な手順を示すフローチャートである。
【図6】図3のKREF0,1算出処理サブルーチンの
詳細な手順を示すフローチャートである。
詳細な手順を示すフローチャートである。
【図7】図3のKREF2算出処理サブルーチンの詳細
な手順を示すフローチャートである。
な手順を示すフローチャートである。
【図8】図3のKREFリミット処理サブルーチンの詳
細な手順を示すフローチャートである。
細な手順を示すフローチャートである。
【図9】機関の回転変動量(DMSSLB)を検出する
処理のフローチャートである。
処理のフローチャートである。
【図10】機関の回転速度を表すパラメータの計測とク
ランク軸の回転角度との関係を説明するための図であ
る。
ランク軸の回転角度との関係を説明するための図であ
る。
【図11】修正リーンバーン補正係数KLSAFMを算
出する処理のフローチャートである。
出する処理のフローチャートである。
【図12】修正リーンバーン補正係数KLSAFMを算
出する処理のフローチャートである。
出する処理のフローチャートである。
【図13】リーンバーン制御用の学習値を算出する領域
を判断する処理のフローチャートである。
を判断する処理のフローチャートである。
【図14】図13のFSLBREF1設定処理サブルー
チンの詳細な手順を示すフローチャートである。
チンの詳細な手順を示すフローチャートである。
【図15】図13のFSLBREF2設定処理サブルー
チンの詳細な手順を示すフローチャートである。
チンの詳細な手順を示すフローチャートである。
【図16】リーンバーン制御時の目標空燃比を算出する
処理のフローチャートである。
処理のフローチャートである。
【図17】リーンバーン制御時の目標空燃比を算出する
処理のフローチャートである。
処理のフローチャートである。
【図18】リーンバーン制御時の目標空燃比を算出する
処理のフローチャートである。
処理のフローチャートである。
【図19】リーンバーン補正係数(KLSAF)のリミ
ット処理のフローチャートである。
ット処理のフローチャートである。
【図20】リーンバーン補正係数(KLSAF)のフィ
ードバック処理のフローチャートである。
ードバック処理のフローチャートである。
【図21】リーンバーン補正係数(KLSAF)のフィ
ードバック処理のフローチャートである。
ードバック処理のフローチャートである。
【図22】リーン制御低負荷側学習値及びリーン制御高
負荷側学習値をそれぞれ算出する算出領域を示す図であ
る。
負荷側学習値をそれぞれ算出する算出領域を示す図であ
る。
【図23】図22のリーン制御低負荷側学習値及びリー
ン制御高負荷側学習値からリーン制御学習値を算出する
方法を説明するための図である。
ン制御高負荷側学習値からリーン制御学習値を算出する
方法を説明するための図である。
【図24】TIマップデータのバラツキ原因が図1の燃
料噴射弁の流量特性のバラツキにあるとした場合に、本
実施の形態の空燃比制御装置により修正した流量特性と
従来の空燃比制御装置により修正した流量特性とを比較
するための図である。
料噴射弁の流量特性のバラツキにあるとした場合に、本
実施の形態の空燃比制御装置により修正した流量特性と
従来の空燃比制御装置により修正した流量特性とを比較
するための図である。
【図25】KLSAFMテーブルの一例を示す図であ
る。
る。
【図26】THSLBテーブルの一例を示す図である。
【図27】第2の閾値(MSLEAN1,2)を決定す
るためのテーブルを示す図である。
るためのテーブルを示す図である。
【図28】回転変動量(DMSSLB)とリーンバーン
補正係数(KLSAF)との関係を示す図である。
補正係数(KLSAF)との関係を示す図である。
【図29】点火プラグの点火時期の進角補正量を算出す
る点火時期進角補正量算出処理の手順を示すフローチャ
ートである。
る点火時期進角補正量算出処理の手順を示すフローチャ
ートである。
【図30】リーンバーン補正係数KLSAFの推移の一
例とこれに対応して制御された点火時期進角補正量の推
移を示す図である。
例とこれに対応して制御された点火時期進角補正量の推
移を示す図である。
【図31】本実施の形態の制御装置による排気ガス中の
NOx排出量の低減効果を示す図である。
NOx排出量の低減効果を示す図である。
【図32】従来の内燃機関の制御装置が実行するリーン
バーン補正係数KLSAFの制御処理の一例を示す図で
ある。
バーン補正係数KLSAFの制御処理の一例を示す図で
ある。
【図33】実空燃比とリーンバーン目標空燃比(リーン
バーン補正係数KLSAF)との間に生ずるずれを示す
図である。
バーン補正係数KLSAF)との間に生ずるずれを示す
図である。
1 内燃エンジン 5 電子コントロールユニット 6 燃料噴射弁 16 O2センサ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 花田 晃平 埼玉県和光市中央1丁目4番1号 株式会 社本田技術研究所内
Claims (2)
- 【請求項1】 内燃機関の運転状態及び該機関の燃焼状
態を検出し、該検出された運転状態及び燃焼状態に応じ
て該機関に供給する混合気の空燃比の目標値を決定し、
該決定された空燃比になるように前記混合気を制御する
内燃機関の空燃比制御装置において、 前記検出された運転状態及び燃焼状態に応じて前記機関
の点火時期を決定する点火時期算出手段と、 前記空燃比のリーン側の限界値を設定するリーン限界設
定手段と、 前記空燃比の目標値が前記リーン側の限界値に一致して
いる間、前記決定された点火時期を徐々に遅角させる点
火時期変更手段とを有することを特徴とする内燃機関の
空燃比制御装置。 - 【請求項2】 前記点火時期変更手段は、前記空燃比の
目標値が前記リーン側の限界値からリッチ側に外れたと
きに、前記遅角された点火時期を徐々に進角させること
を特徴とする請求項1記載の内燃機関の空燃比制御装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8260202A JPH1089133A (ja) | 1996-09-10 | 1996-09-10 | 内燃機関の空燃比制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8260202A JPH1089133A (ja) | 1996-09-10 | 1996-09-10 | 内燃機関の空燃比制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1089133A true JPH1089133A (ja) | 1998-04-07 |
Family
ID=17344761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8260202A Pending JPH1089133A (ja) | 1996-09-10 | 1996-09-10 | 内燃機関の空燃比制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1089133A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009180098A (ja) * | 2008-01-29 | 2009-08-13 | Hitachi Ltd | エンジンの燃料制御装置 |
-
1996
- 1996-09-10 JP JP8260202A patent/JPH1089133A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009180098A (ja) * | 2008-01-29 | 2009-08-13 | Hitachi Ltd | エンジンの燃料制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1396627B1 (en) | Internal combustion engine and method for controlling an internal combustion engine | |
JPH0579374A (ja) | 内燃エンジンの空燃比制御装置 | |
JP3422447B2 (ja) | 内燃機関の制御装置 | |
JPH03179147A (ja) | 内燃機関の空燃比学習制御装置 | |
JPH1089133A (ja) | 内燃機関の空燃比制御装置 | |
JP3325436B2 (ja) | 内燃機関の空燃比制御装置 | |
JPH04124439A (ja) | 内燃エンジンの空燃比制御方法 | |
JPH0686829B2 (ja) | 内燃エンジンの空燃比フィ−ドバック制御方法 | |
JPH08284708A (ja) | エンジンの燃料噴射装置 | |
JPH0979071A (ja) | 内燃機関の空燃比学習制御装置 | |
JP3223472B2 (ja) | 内燃機関の制御装置 | |
JP3514072B2 (ja) | 内燃機関の制御装置 | |
JP3750081B2 (ja) | 内燃機関の制御装置 | |
JP2870286B2 (ja) | リーンバーンエンジンの空燃比制御装置 | |
JP3551425B2 (ja) | ディーゼルエンジンの制御装置 | |
JP3305223B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2623469B2 (ja) | 内燃エンジンの空燃比フイードバツク制御方法 | |
JP2803160B2 (ja) | 多気筒エンジンの出力変動検出装置 | |
JPH11182302A (ja) | 電制スロットル式内燃機関のアイドル回転学習制御装置 | |
JPH109010A (ja) | 内燃機関の空燃比制御装置 | |
JPH06146950A (ja) | 内燃エンジンの制御装置 | |
JPH0432939B2 (ja) | ||
JPH0914015A (ja) | 内燃機関の燃料制御装置 | |
JPH062593A (ja) | 内燃機関の空燃比学習方法 | |
JPH07197835A (ja) | 内燃機関の安定度制御装置 |