JPH04255545A - 内燃機関の空燃比学習制御装置 - Google Patents

内燃機関の空燃比学習制御装置

Info

Publication number
JPH04255545A
JPH04255545A JP1629491A JP1629491A JPH04255545A JP H04255545 A JPH04255545 A JP H04255545A JP 1629491 A JP1629491 A JP 1629491A JP 1629491 A JP1629491 A JP 1629491A JP H04255545 A JPH04255545 A JP H04255545A
Authority
JP
Japan
Prior art keywords
learning
air
fuel ratio
area
value
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
Application number
JP1629491A
Other languages
English (en)
Inventor
Shinpei Nakaniwa
伸平 中庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Unisia Automotive Ltd
Original Assignee
Japan Electronic Control Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Japan Electronic Control Systems Co Ltd filed Critical Japan Electronic Control Systems Co Ltd
Priority to JP1629491A priority Critical patent/JPH04255545A/ja
Publication of JPH04255545A publication Critical patent/JPH04255545A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は内燃機関の空燃比学習制
御装置に関し、詳しくは、ベース空燃比の急変を確実に
検出して速やかに空燃比学習を収束させることを可能に
した空燃比学習制御装置に関する。
【0002】
【従来の技術】従来、空燃比フィードバック補正制御機
能をもつ電子制御燃料噴射装置を備えた内燃機関におい
ては、特開昭60−90944号公報,特開昭61−1
90142号公報等に開示されるように、空燃比の学習
制御が採用されているものがある。
【0003】空燃比フィードバック補正制御は、目標空
燃比(例えば理論空燃比)に対する実際の空燃比のリッ
チ・リーンを機関排気系に設けた酸素センサにより判別
し、該判別結果に基づき空燃比フィードバック補正係数
LMDを比例・積分制御などにより設定し、機関に吸入
される空気量に関与する機関運転状態のパラメータ(例
えば吸入空気流量Qと機関回転速度N)から算出される
基本燃料噴射量Tpを、前記空燃比フィードバック補正
係数LMDで補正することで、実際の空燃比を目標空燃
比にフィードバック制御するものである。
【0004】ここで、前記空燃比フィードバック補正係
数LMDの基準値(目標収束値)からの偏差を、複数に
区分された運転領域毎に学習して学習補正係数KBLR
C(空燃比学習補正値)を定め、基本燃料噴射量Tpを
前記学習補正係数KBLRC により補正して、補正係
数LMDなしで得られるベース空燃比が略目標空燃比に
一致するようにし、空燃比フィードバック制御中は更に
前記補正係数LMDで補正して燃料噴射量Tiを演算す
るものである。
【0005】これにより、運転条件毎に異なる空燃比の
補正要求に対応した燃料補正が行え、空燃比フィードバ
ック補正係数LMDを基準値付近に安定させて、空燃比
制御性を向上させることができる。ところで、前記空燃
比学習補正係数KBLRC は、前述のように運転条件
の違いによる空燃比補正要求の違いに対応すべく設定さ
れるものであるから、運転領域を細かく区分してそれぞ
れの運転領域毎に学習補正係数KBLRC を学習設定
させることが望まれる。しかしながら、上記のように運
転領域を細かく区分すると、それぞれの運転領域におけ
る学習機会が減少し、学習の収束性が悪化すると共に、
学習済領域と未学習領域とが混在することになって運転
領域間における空燃比段差が発生してしまう。
【0006】そこで、本出願人は先に、運転領域を大雑
把に区分した学習マップと、運転領域をより細かく区分
した学習マップとを個別に備えるようにして、大きな運
転領域における学習が収束してから、該運転領域を更に
複数に区分する運転領域毎の学習へ移行するようにした
空燃比学習制御装置を提案した(特願平1−28288
3号)。かかる空燃比学習によれば、学習開始時点では
、大きな運転領域毎に空燃比学習が行われて学習の収束
性が確保されると共に、学習が進行すると今度はより細
かな運転領域毎に学習されて、運転条件の違いによる補
正要求の違いに精度良く対応した補正が行えるものであ
る。
【0007】
【発明が解決しようとする課題】ところで、上記のよう
に運転領域の区分数を異ならせた学習マップを複数備え
て、学習進行と共により細かな運転領域での学習に移行
させる構成では、例えばエアリークやエアフローメータ
の急激な劣化などによって急激なベース空燃比の変動が
あった場合には、学習開始時点における大きな運転領域
の学習からやり直させる必要がある。
【0008】そのため、先の特願平1−282883号
では、各運転領域別の学習が略収束している状態におい
て、実際の空燃比の目標空燃比に対するリッチ・リーン
反転毎に、空燃比フィードバック補正係数LMDの目標
収束値に対する偏差の絶対値の増大に応じて、学習結果
の不適切度を示すパラメータを増大設定し、該パラメー
タの積算値が所定値以上になったときに、より大きな運
転領域毎の学習からやり直させる制御を行っている。
【0009】これにより、学習結果が不適切で空燃比フ
ィードバック補正係数LMDによる補正を必要とする状
態が多くなると、大きな運転領域別の学習から再度行わ
れることになり、エアリークなどによってベース空燃比
の急変があったときに、速やかに学習を収束させること
ができるものである。かかる再学習制御において、前記
学習の不適切度を示すパラメータは、空燃比反転毎に更
新される構成であるから、空燃比フィードバック補正係
数LMDが目標収束値に対して僅かの偏差を有していて
も前記パラメータの積算値が徐々に増大更新されるよう
設定されていると、空燃比反転が繰り返される間に前記
積算値が所定値を越えるようになってしまって、必要の
ない再学習が行われることになる。
【0010】かかる誤った再学習制御を防止するために
、空燃比フィードバック補正係数LMDが略目標収束値
付近であるときに、前記パラメータがマイナスに設定さ
れ、目標収束値に対して補正係数LMDが所定以上の偏
差を有するようになって初めてプラスの値に設定される
ようにした。しかしながら、このようにすると、今度は
1つ運転領域に止まっているような定常時に、エアリー
クなどによりベース空燃比の急変が発生した場合に、学
習速度が速いと学習が直ぐに収束してしまうため、学習
によってエアリークによるベース空燃比ずれが吸収され
て補正係数LMDが略目標収束値に収束すると、前記パ
ラメータの積算値が再学習レベルに達する前に積算値の
増大更新がストップされ、その後前記パラメータの積算
値がマイナス側に更新されることになってしまい、所望
の再学習を確実に行わせることができないという問題が
発生した(図22参照)。
【0011】このように、空燃比の反転時毎に、空燃比
フィードバック補正係数LMDの目標収束値に対する偏
差を基に、学習結果の不適切度を示すパラメータを設定
しこれを更新させる構成では、ベース空燃比の急変を誤
りなく確実に検出してより大きな運転領域からの再学習
を行わせることが困難であり、大きな運転領域別の空燃
比学習からやり直させることによる高い学習収束性を充
分に発揮させて、ベース空燃比の急変に応答性良く対応
することができないという問題があった。
【0012】本発明は上記問題点に鑑みなされたもので
あり、エアリークなどによるベース空燃比の急変を誤り
なく確実に検出できるようにして、ベース空燃比の急変
時に大きな運転領域別の学習からやり直すことで速やか
に空燃比学習を収束させることができるようにすること
を目的とする。
【0013】
【課題を解決するための手段】そのため本発明にかかる
内燃機関の空燃比学習制御装置は、図1に示すように構
成される。図1において、機関運転条件検出手段は、機
関に吸入される空気量に関与する運転パラメータを少な
くとも含む機関運転条件を検出し、該検出された機関運
転条件に基づいて基本燃料供給量設定手段が基本燃料供
給量を設定する。
【0014】また、空燃比フィードバック補正値設定手
段は、空燃比検出手段で検出される実際の空燃比と目標
空燃比とを比較して実際の空燃比を前記目標空燃比に近
づけるように前記基本燃料供給量を補正するための空燃
比フィードバック補正値を設定する。一方、空燃比学習
補正値記憶手段は、機関運転条件に基づく運転領域を相
互に大きさの異なる単位運転領域に基づき区分してなる
複数の学習マップを備え、前記複数の学習マップの各単
位運転領域毎に前記基本燃料供給量を補正するための空
燃比学習補正値を書き換え可能に記憶しており、空燃比
学習手段は、前記空燃比フィードバック補正値の目標収
束値からの偏差を学習し、前記学習マップ上の該当単位
運転領域に記憶されている空燃比学習補正値を前記偏差
を減少させる方向に修正して書き換える空燃比学習を、
前記複数の学習マップにおけるより大きな単位運転領域
から順により小さな単位運転領域へと移行させて行わせ
る。
【0015】そして、燃料供給量設定手段は、前記基本
燃料供給量,空燃比フィードバック補正値及び前記空燃
比学習補正値記憶手段の複数の学習マップにおける該当
単位運転領域の空燃比学習補正値に基づいて最終的な燃
料供給量を設定し、燃料供給制御手段は、前記設定され
た燃料供給量に基づいて燃料供給手段を駆動制御する。
【0016】ここで、学習不適切さ更新手段は、前記空
燃比学習補正値記憶手段の所定学習マップ上における単
位運転領域間で運転条件の移動があった直後に求められ
た空燃比フィードバック補正値の基準値に対する偏差に
基づいて、学習結果の不適切さを示すパラメータを更新
する。そして、再学習手段は、学習不適切さ更新手段で
更新される学習結果の不適切さを示すパラメータに基づ
いて所定レベル以上に学習結果が不適切であると判別さ
れるときに、前記空燃比学習手段による空燃比学習を前
記所定学習マップの単位運転領域よりも大きな単位運転
領域の学習から強制的にやり直させる。
【0017】また、上記構成に加えて図1に点線で示す
ように、機関の過渡運転状態を検出する過渡運転検出手
段と、この過渡運転検出手段で機関の過渡運転状態が検
出されているときに前記学習不適切さ更新手段による学
習結果の不適切さを示すパラメータの更新を禁止する更
新禁止手段と、を設けて構成することが好ましい。
【0018】
【作用】例えば空燃比フィードバック補正値が目標収束
値に収束している状態で、運転条件の変化により異なる
単位運転領域へ該当領域が移行したときに、ベース空燃
比ずれが発生した場合には、空燃比フィードバック補正
値は目標空燃比を得るべく一旦目標収束値から大きく変
化し、学習の進行と共に前記空燃比フィードバック補正
値による補正分が空燃比学習補正値に吸収されて、空燃
比フィードバック補正値は目標収束値に近づくことにな
る。
【0019】ここで、移行後の単位運転領域における空
燃比学習補正値が不適切であったが故に、該当領域の移
行に伴ってベース空燃比の段差が発生したものであり、
かかる空燃比学習補正値の不適切分は、領域移行直後の
空燃比フィードバック補正値の変化で補償されることに
なるから、領域移行直後の空燃比フィードバック補正値
の基準値に対する偏差に基づき前記学習補正値の不適切
分が推定される。
【0020】このため、本発明では、所定学習マップ上
における単位運転領域間で運転条件の移動があった直後
に求められた空燃比フィードバック補正値の基準値に対
する偏差に基づいて、学習結果の不適切さを示すパラメ
ータを更新することで、例えばエアリークなどによる急
激なベース空燃比のずれが発生し、それまでの学習結果
が不適切になった場合に、単位運転領域間で移動がある
と学習結果の不適切さを示すパラメータがその都度更新
され、前記パラメータに基づき所定レベル以上の不適切
さが判別されるようになったときに、前記パラメータの
設定の基になった学習マップの単位運転領域よりも大き
な単位運転領域から空燃比学習をやり直させる。
【0021】従って、フィードバック補正値が目標収束
値に安定している状態や、学習の進行と共に目標収束値
に収束する途中で、前記パラメータが継続的に徐々に更
新されることがなく、単位運転領域別の学習結果の不適
切さを確実に検出できるものであり、学習結果が不適切
であると判別されれば、より大きな単位運転領域毎の学
習を再度行わせるから、速やかに学習の収束を図れる。
【0022】また、機関の過渡運転状態においては、空
燃比学習が適切に行われていてもベース空燃比のエラー
が発生するので、かかる過渡時の空燃比エラーに基づい
て前記パラメータが更新され、必要のない再学習が行わ
れないように、過渡運転が検出されているときには前記
パラメータの更新を禁止した。
【0023】
【実施例】以下に本発明の実施例を説明する。一実施例
を示す図2において、内燃機関1にはエアクリーナ2か
ら吸気ダクト3,スロットル弁4及び吸気マニホールド
5を介して空気が吸入される。吸気マニホールド5の各
ブランチ部には、各気筒別に燃料供給手段としての燃料
噴射弁6が設けられている。この燃料噴射弁6は、ソレ
ノイドに通電されて開弁し、通電停止されて閉弁する電
磁式燃料噴射弁であって、後述するコントロールユニッ
ト12からの駆動パルス信号により通電されて開弁し、
図示しない燃料ポンプから圧送されてプレッシャレギュ
レータにより所定の圧力に調整された燃料を、機関1に
噴射供給する。
【0024】機関1の各燃焼室には点火栓7が設けられ
ていて、これにより火花点火して混合気を着火燃焼させ
る。そして、機関1からは、排気マニホールド8,排気
ダクト9,三元触媒10及びマフラー11を介して排気
が排出される。コントロールユニット12は、CPU,
ROM,RAM,A/D変換器及び入出力インタフェイ
スを含んで構成されるマイクロコンピュータを備え、各
種のセンサからの入力信号を受け、後述の如く演算処理
して、燃料噴射弁6の作動を制御する。
【0025】前記各種のセンサとしては、吸気ダクト3
中にエアフローメータ13が設けられていて、機関1の
吸入空気流量Qに応じた信号を出力する。また、クラン
ク角センサ14が設けられていて、本実施例の4気筒の
場合、クランク角180 °毎の基準信号REFと、ク
ランク角1°又は2°毎の単位信号POSとを出力する
。ここで、基準信号REFの周期、或いは、所定時間内
における単位信号POSの発生数を計測することにより
、機関回転速度Nを算出できる。
【0026】また、機関1のウォータジャケットの冷却
水温度Twを検出する水温センサ15が設けられている
。 ここで、上記エアフローメータ13,クランク角センサ
14,水温センサ15等が本実施例における機関運転条
件検出手段に相当する。また、排気マニホールド8の集
合部に空燃比検出手段としての酸素センサ16が設けら
れ、排気中の酸素濃度を介して吸入混合気の空燃比を検
出する。前記酸素センサ16は、排気中の酸素濃度が理
論空燃比(本実施例における目標空燃比)を境に急変す
ることを利用して、実際の空燃比の理論空燃比に対する
リッチ・リーンを検出する公知のものであり、本実施例
では、理論空燃比よりもリッチ空燃比であるときには比
較的高い電圧信号(例えば1V程度)を出力し、逆にリ
ーン空燃比であるときには0V付近の低い電圧信号を出
力するものとする。
【0027】ここにおいて、コントロールユニット12
に内蔵されたマイクロコンピュータのCPUは、図3〜
図18のフローチャートにそれぞれ示すROM上のプロ
グラムに従って演算処理を行い、空燃比フィードバック
補正制御及び運転領域毎の空燃比学習補正制御を実行し
つつ燃料噴射量(燃料供給量)Tiを設定し、機関1へ
の燃料供給を制御する。
【0028】尚、本実施例において、基本燃料供給量設
定手段,燃料供給量設定手段,燃料供給制御手段,空燃
比フィードバック補正値設定手段,空燃比学習手段,学
習不適切さ更新手段,再学習手段,更新禁止手段,過渡
運転検出手段としての機能は、前記図3〜図18のフロ
ーチャートに示すようにコントロールユニット12がソ
フトウェア的に備えており、また、空燃比学習補正値記
憶手段としてはコントロールユニット12に内蔵された
図示しないマイクロコンピュータのバックアップ機能付
のRAMが相当する。
【0029】図3及び図4のフローチャートに示すプロ
グラムは、基本燃料噴射量Tp(基本燃料供給量)に乗
算される空燃比フィードバック補正係数LMD(空燃比
フィードバック補正値)を比例・積分制御により設定す
るプログラムであり、機関1の1回転(1rev)毎に
実行される。尚、前記空燃比フィードバック補正係数L
MDの初期値(空燃比学習制御による補正係数LMDの
目標収束値Target) は1.0 である。
【0030】まず、ステップ1(図中ではS1としてあ
る。以下同様)では、酸素センサ(O2 /S)16か
ら排気中の酸素濃度に応じて出力される電圧信号を読み
込む。そして、次のステップ2では、ステップ1で読み
込んだ酸素センサ16からの電圧信号と、目標空燃比(
理論空燃比)相当のスライスレベル(例えば500mV
)とを比較して、機関吸入混合気の空燃比が目標空燃比
に対してリッチであるかリーンであるかを判別する。
【0031】酸素センサ16からの電圧信号がスライス
レベルよりも大きく空燃比がリッチであると判別された
ときには、ステップ3へ進み、今回のリッチ判別が初回
であるか否かを判別する。リッチ判別が初回であるとき
には、ステップ4へ進んで前回までに設定されている空
燃比フィードバック補正係数LMDを最大値aにセット
する。リッチ判別が初回であるということは、前回まで
はリーン判別がなされており、これによって空燃比フィ
ードバック補正係数LMDの増大制御(=燃料噴射量T
iの増大補正)が行われていたものであり、リッチ判別
されると今度は補正係数LMDを減少制御するから、リ
ッチ判別初回の減少制御前の値が補正係数LMDの最大
値ということになる。
【0032】次のステップ5では、前回までの補正係数
LMDから所定の比例定数Pだけ減算して補正係数LM
Dの減少制御を図る。また、ステップ6では、比例制御
を実行したことを示すフラグである「P分付加」に1を
セットする。一方、ステップ3で、リッチ判別が初回で
ないと判別されたときには、ステップ7へ進み、積分定
数Iに最新の燃料噴射量Tiを乗算した値を、前回まで
の補正係数LMDから減算して補正係数LMDを更新し
、空燃比のリッチ状態が解消されてリーンに反転するま
での間、本プログラムが実行される毎にこのステップ7
でI×Tiずつの減少制御を繰り返す。
【0033】また、ステップ2で酸素センサ16からの
電圧信号がスライスレベルよりも小さく空燃比が目標に
対してリーンであると判別されたときには、リッチ判別
のときと同様にして、まず、ステップ8で今回のリーン
判別が初回であるか否かを判別し、初回であるときには
、ステップ9へ進んで前回までの補正係数LMD、即ち
、リッチ判別時に徐々に減少制御されていた補正係数L
MDを最小値bにセットする。
【0034】次のステップ10では、前回までの補正係
数LMDに比例定数Pを加算して更新することにより燃
料噴射量Tiの増量補正を図り、ステップ11では、比
例制御が実行されたことを示すフラグである前記「P分
付加」に1をセットする。ステップ8でリーン判別が初
回でないと判別されたときには、ステップ12へ進み、
積分定数Iに最新の燃料噴射量Tiを乗算した値を、前
回までの補正係数LMDに加算し、補正係数LMDを徐
々に増大させる。
【0035】リッチ・リーン判別の初回で補正係数LM
Dの比例制御を実行したときには、更に、空燃比学習補
正制御に関わる後述するような各種処理を行う。尚、本
実施例では、図19に示すように、全運転領域を基本燃
料噴射量Tpと機関回転速度Nとをパラメータとして複
数に区分する空燃比学習補正値の学習マップを2つ備え
ており、一方は全運転領域を16の単位運転領域に区分
してそれぞれの単位運転領域別に学習補正係数KBLR
C1を記憶した16領域学習マップであり、他方は、全
運転領域を256 の単位運転領域に区分してそれぞれ
の単位運転領域別に学習補正係数KBLRC2を記憶す
る256 領域学習マップであり、16領域学習マップ
の1つの単位運転領域が256 領域学習マップにより
更に16領域に細分されるようになっている。また、上
記のように運転領域を複数に区分しないで全運転条件で
適用される学習補正係数KBLRC φも学習設定され
るようにしてあり、2つの学習マップからそれぞれ該当
する運転領域の学習補正係数KBLRC1,KBLRC
2 を検索し、これらと前記学習補正係数KBLRC 
φとによって基本燃料噴射量Tpが補正されるようにな
っている。
【0036】尚、前記全運転条件に適用される学習補正
係数KBLRC φも、全運転領域を単位運転領域とし
た学習マップ上の空燃比学習補正値として見做すことが
できるから、実質的には階層的に構成される3つの学習
マップを備えていることになる。空燃比フィードバック
補正係数LMDの比例制御が行われたときには、まず、
ステップ13で、16領域学習マップ上の1つの運転領
域に安定して止まっている状態か否かを判別するための
カウント値cntの判別を行う。
【0037】後述する図5〜図10のフローチャートに
示すプログラムにおいて、16領域学習マップ上で該当
する運転領域が所定微小時間毎に変化しているときに、
前記カウント値cntには所定値(例えば4)がセット
されるようになっており、ステップ13でカウント値c
ntがゼロでないと判別されると、ステップ14へ進ん
でカウント値cntを1ダウンさせる処理を行うから、
16領域学習マップ上の1つの運転領域に止まるように
なってからカウント値cntは補正係数LMDの比例制
御毎に1ダウンされることになり、カウント値cntが
ゼロであるときには16領域学習マップ上の1つの運転
領域に安定して止まっている状態であると見做すことが
できるようにしてある。
【0038】尚、前記カウント値cntがゼロであるか
否かを判別することで、後述するように学習更新を行う
か否かを判別し、16領域学習マップ上で該当する運転
領域が変化した初期には学習が行われないようにしてあ
る。ステップ15では、後述するように、前記16領域
学習マップ上の16の単位運転領域の殆どの領域で学習
補正係数KBLRC1が学習済であるときに1がセット
されるフラグflagの判別を行う。
【0039】前記フラグflagが1であって、16領
域学習マップの学習が殆ど終了している状態であるとき
には、ステップ16へ進む。ステップ16では、16領
域学習マップ上で該当する単位運転領域が前回と同じで
あるか否かを判別し、前回該当していた単位運転領域と
異なる領域が該当領域であるときにのみステップ17へ
進む。
【0040】ステップ17では、図18のフローチャー
トに示すプログラムに従って演算される単位時間(例え
ば1秒)当たりの基本燃料噴射量Tpの変化量ΔTpが
、略ゼロであるか否かを判別する。図18のフローチャ
ートに示すプログラムは、所定時間(例えば1秒)毎に
実行されるようになっており、まず、ステップ151 
では、最新の基本燃料噴射量Tp(←K×Q/N;Kは
定数)から、前回実行時における基本燃料噴射量Tpo
ld を減算することで、本プログラム実行周期間にお
ける基本燃料噴射量Tpの変化量ΔTpを演算する。
【0041】次のステップ152 では、次回における
変化量ΔTpの演算のために、今回の実行時における基
本燃料噴射量Tpを、前回値としてTpold にセッ
トする。 図4のフローチャートにおけるステップ17では、前記
所定時間毎に演算される変化量ΔTpの最新値が略ゼロ
であるか否かを判別することで、機関の過渡運転状態を
判別するものであり、ΔTpが略ゼロであって機関が定
常運転されているときにのみステップ18へ進む。
【0042】ステップ18では、最新の補正係数LMD
平均値(a+b)/2の目標収束値Target(=1
.0)に対する偏差の絶対値に基づいて、学習値の不適
切度合いを示すパラメータであるΔストレスのマップを
参照し、補正係数LMDの目標収束値Targetに対
する偏差の増大に応じてΔストレスを増大設定する。ス
テップ15において16領域学習マップのそれぞれの運
転領域に対応する学習補正係数KBLRC1が殆ど学習
されていると判別されているから、本来であれば、該当
する単位運転領域が変化しても補正係数LMDは略目標
収束値Target付近で安定しているはずであるが、
該当する運転領域が変化したときに補正係数LMDが大
きく変動した場合には、学習結果に不備があるものと推
定し前記Δストレスをより大きく設定する。
【0043】そして、次のステップ19では、前記Δス
トレスの積算値がセットされる「ストレス」に今回求め
たΔストレスを加算する。従って、16領域学習マップ
の学習が略終了していて、かつ、16領域学習マップ上
で該当する運転領域が変化した直後における初回の空燃
比反転時に、機関が定常運転されていれば、補正係数L
MDの目標収束値Targetに対する偏差に応じて学
習結果の不適切さを示すパラメータである前記「ストレ
ス」が更新されることになる。
【0044】ここで、後述するように、前記「ストレス
」が所定以上になると、既に学習済である16領域学習
マップ上の学習値が不適切であるものと判断し、空燃比
学習を全運転領域に対応する学習補正係数KBLRC 
φからやり直させるようになっている。本実施例では、
後述するように、まず最初に全運転領域に対応する学習
補正係数KBLRC φを学習してから、次に16領域
学習マップ上のそれぞれの単位運転領域における学習に
移行し、16領域学習マップ上で学習済である単位運転
領域に該当しているときには、更にかかる単位運転領域
を16領域に区分する256 領域学習マップ上の該当
領域における学習を行わせるようになっており、16領
域学習マップが略学習済であれば、該16領域学習マッ
プ上の学習補正係数KBLRC1によって、運転条件が
変化してもベース空燃比を略目標空燃比に安定させるこ
とができる。
【0045】しかしながら、16領域学習マップの学習
が済んでから、エアリークやエアフローメータの急激な
劣化などが発生してベース空燃比のずれが発生すると、
各運転領域で前記ベース空燃比ずれが学習されるまでは
、該当する運転領域が変化する毎に大きな空燃比段差が
発生することになる。かかる空燃比段差が発生すると空
燃比フィードバック補正でこれを吸収しようとするから
、前記空燃比段差、換言すれば、空燃比学習補正値の不
適切度合いは、該当運転領域の移動があった後の初回の
空燃比反転時における補正係数LMDのレベルに表れる
ことになる。
【0046】従って、本実施例では、該当する単位運転
領域の変化があった直後に求められた空燃比フィードバ
ック補正係数LMDの目標収束値Target(本実施
例における基準値)に対する偏差に基づき、学習結果の
不適切さを示すパラメータであるΔストレスを設定しこ
れを積算することで、ベース空燃比の急変によって学習
結果が不適切になったことを検出するものであり(図2
1参照)、該当領域の移動がなければ前記「ストレス」
は更新されないから、学習の進行速度に関係なく確実に
ベース空燃比の急変を検出できるものである。然も、ベ
ース空燃比の急変が検出されれば、全運転領域に対応す
る学習補正係数KBLRC φから学習をやり直すので
、速やかにベース空燃比の収束を図ることができる。
【0047】また、機関が過渡運転されているときには
、前記「ストレス」の更新が行われないので、過渡運転
に伴うベース空燃比の変動に基づいて前記「ストレス」
が更新されることがなく、無用に再学習がなされること
を防止できる。尚、上記実施例では、目標収束値Tar
getを基準値として、該当領域の移動直後における補
正係数LMDのレベルを判別させたが、該当領域の移動
直前における補正係数LMDのレベルを基準値として用
い、該基準値と移動直後の補正係数LMDのレベルとの
偏差に基づいて前記Δストレス及び「ストレス」を設定
させるようにしても良い。
【0048】図5〜図10のフローチャートに示すプロ
グラムは、運転領域別の空燃比学習プログラムであり、
所定微小時間(例えば10ms) 毎に実行される。ス
テップ21では、前記図3及び図4のフローチャートに
示すプログラムで空燃比フィードバック補正係数LMD
の比例制御を行ったときに1がセットされるフラグ「P
分付加」の判別を行い、P分付加が1であるときには、
ステップ22へ進みP分付加をゼロリセットした後、本
プログラムによる各種処理を行い、ゼロであるときには
そのまま本プログラムを終了させる。
【0049】ステップ22でP分付加をゼロリセットす
ると、次のステップ23では、全運転領域に共通の空燃
比学習補正値である学習補正係数KBLRC φ(初期
値1.0 )が学習済であるか否かを示すフラグFφの
判別を行う。ここで、フラグFφがゼロであって学習補
正係数 KBLRCφの学習が済んでいないときには、
ステップ24へ進み、前記補正係数LMDの最大・最小
値a,bの平均値(←(a+b)/2)が略1.0 で
あるか否かを判別する。
【0050】(a+b)/2が略1.0 でないときに
は、ステップ26へ進み、(a+b)/2から補正係数
LMDの目標収束値Target(本実施例では1.0
 )を減算した値に所定係数Xを掛けた値を前回までの
学習補正係数KBLRC φに加算し、該加算結果を新
たな学習補正係数KBLRC φとして設定する。 KBLRC φ←KBLRC φ+X{(a+b)/2
−Target}また、ステップ26では、16領域学
習マップ及び256 領域学習マップそれぞれの運転領
域に記憶されている学習補正係数KBLRC1,学習補
正係数KBLRC2を全て初期値である1.0 にリセ
ットする。従って、上記学習補正係数KBLRC φを
学習更新するときには、たとえ16領域学習マップ及び
256 領域学習マップで学習値が学習更新されていて
も、そのデータを全てリセットした状態で、換言すれば
、学習補正係数KBLRC φのみで補正係数LMDが
目標収束値Targetに収束するように、学習補正係
数KBLRC φの学習を行わせるものである。
【0051】前記ステップ24で(a+b)/2が略1
であると判別されると、ステップ25で前記フラグFφ
に1をセットして、全運転領域に対応する学習補正係数
 KBLRCφの学習が済んでいること、換言すれば、
学習補正係数 KBLRCφを学習更新させた結果空燃
比フィードバック補正係数LMDが略1に収束したこと
が判別できるようにする。
【0052】一方、ステップ23で前記フラグFφが1
であると判別された場合には、全運転領域に対応する学
習補正係数 KBLRCφの学習が済んでいることを示
すから、今度は運転領域を基本燃料噴射量Tpと機関回
転速度Nとに基づいて複数に区分した運転領域別の空燃
比学習を行う。まず、ステップ28以降では、基本燃料
噴射量Tpと機関回転速度Nとに基づいて運転領域を2
56 領域に区分した学習マップにおいて、現在の運転
条件がどの領域に含まれるかを求める。
【0053】ここで、ステップ28では、現在の基本燃
料噴射量(基本燃料供給量)Tpが16格子の何番目に
含まれるかを判別するためのカウンタ値iにゼロをセッ
トし、次のステップ29では、前記カウンタ値iが15
を越えるか否かを判別し、15を越えていないときには
、ステップ30でカウント値iに対応する予め設定され
た基本燃料噴射量Tpのしきい値Tp〔i〕と最新に演
算された基本燃料噴射量Tpとを比較する。
【0054】ステップ30でしきい値Tp〔i〕よりも
最新の基本燃料噴射量Tpが小さいと判別されたときに
は、ステップ33へ進んでそのときのカウント値iを、
最新の基本燃料噴射量Tpが含まれる領域位置としてI
にセットする。即ち、各領域の最大基本燃料噴射量Tp
を予めしきい値Tp〔i〕として設定しておき、最新の
基本燃料噴射量Tpと前記しきい値Tp〔i〕とを、小
さい側(又は大きい側)から順に比較して初めてTp〔
i〕>Tpとなった時点のiがTpブロックの番号を示
すものとしてIにセットするものである。
【0055】また、ステップ30でTp〔i〕≦Tpで
あると判別されたときには、ステップ31へ進んで前記
カウント値iを1アップし、更に1段階大きいTp〔i
〕と最新のTpとが比較されるようにする。そして、ス
テップ31でカウント値iが16にカウントアップされ
たときには、0〜15までの16格子(16ブロック)
に分けた基本燃料噴射量Tp範囲の初期設定した最大値
よりも大きな基本燃料噴射量Tpが演算された状態であ
り、このときには、ステップ32でiに最大値15をセ
ットしてからステップ33へ進むようにし、初期設定さ
れたTpブロックの最大Tp領域に現在のTpが含まれ
るものと仮定する。
【0056】次は、機関回転速度Nによる16ブロック
分けのため、前記基本燃料噴射量Tpのブロック判別と
同様にして、最新の機関回転速度Nが含まれるブロック
番号をカウント値kで決定する。まず、ステップ34で
は、前記カウント値kにゼロを初期設定し、ステップ3
5でこのカウント値kが15を越えたと判別されるまで
は、ステップ36におけるしきい値N〔k〕との比較を
行い、初めてN〔k〕>Nとなったときのカウント値k
をステップ39でNのブロックの番号を示すKにセット
し、N〔k〕≦Nであるときにはステップ37において
カウント値kを1アップさせる。また、カウント値kが
15を越えたときには、ステップ38へ進んでカウント
値kに15をセットしてステップ39へ進む。
【0057】このようにして、基本燃料噴射量Tpと機
関回転速度Nとをパラメータとして256 の運転領域
に細分される学習マップのどの運転領域に現在の運転条
件が含まれるかが、Tpのブロック番号IとNのブロッ
ク番号Kとによって指示される座標〔K,I〕で表され
る。 256 領域学習マップ上で現在の運転条件が該当する
領域が上記のようにして判明すれば、図19に示すよう
に16領域学習マップにおける1つの運転領域は、25
6 領域学習マップにおける16領域を1ブロックとし
て区切ったものであるから、前記I,Kに基づいて16
領域学習マップにおいて現在の運転条件が該当する位置
を特定できる。
【0058】即ち、ステップ40では、前記Tpのブロ
ック番号Iを4で除算して、その結果の少数点以下を切
り捨てた整数値をAにセットし、また、ステップ41で
は、Nのブロック番号Kを同様にして4で除算して、そ
の結果の少数点以下を切り捨てた整数値をBにセットす
る。 これにより、今回の運転条件が該当する16領域学習マ
ップ上の運転領域は〔B,A〕の座標で表される。次の
ステップ42では、16領域学習マップ上で現在の運転
条件が該当する領域位置を示す〔B,A〕を用い、16
領域学習マップ上で該当する運転領域が変化したか否か
を判別するために、前記Aに16を乗算した値とBとを
加算してその結果をABにセットする。
【0059】そして、ステップ43では前回演算された
前記ABであるABOLD と今回演算された最新のA
Bとを比較することにより、今回該当する運転領域と前
回とが同じであるか否かを判別する。AB≠ABOLD
であって、16領域学習マップ上で前回と異なる運転領
域であるときには、ステップ44でカウント値cnt 
に所定値(例えば4)をセットする。
【0060】ステップ45では、次回におけるステップ
43での判別のために、今回ステップ42で演算したA
Bを前回値としてABOLD にセットする。ステップ
46では、16領域学習マップにおいて〔B,A〕を座
標として指示される現在の運転条件が含まれる運転領域
で空燃比学習が終了しているか否かを示すフラグF〔B
,A〕を判別し、このフラグF〔B,A〕がゼロであっ
て現在の運転条件が含まれる16領域学習マップ上の1
つの運転領域で学習が終了していないときには、ステッ
プ47へ進む。
【0061】ステップ47では前記カウント値cnt 
がゼロであるか否かを判別し、カウント値cnt がゼ
ロでなく16領域学習マップにおける該当領域の変動が
あるときには、そのまま本プログラムを終了させ、カウ
ント値cnt がゼロであって16領域学習マップ上で
該当する運転領域が安定しているときにのみステップ4
8へ進む。ステップ48では、前記図3及び図4のフロ
ーチャートに示したプログラムでサンプリングされる空
燃比フィードバック補正係数LMDの最大・最小値a,
bの平均値(a+b)/2、即ち、補正係数LMDの中
心値が、目標収束値Targetである初期値(=1.
0)付近であるか否かによって学習の進行を判別する。 ここで、補正係数LMDの平均値が略1.0 であると
認められず学習が済んでいないときにはそのままステッ
プ50へ進み、補正係数LMDの平均値が略1.0 で
あって学習済であると認められるときには、ステップ4
9でフラグF〔B,A〕に1をセットしてからステップ
50へ進む。
【0062】ステップ50では、16領域学習マップに
おいて今回の〔B,A〕領域に対応して記憶されている
学習補正係数KBLRC1に対して、最大・最小値a,
bの平均値から目標収束値Target(本実施例では
1.0)を減算した値に所定係数X1を掛けた値を加算
し、その結果を16領域学習マップ上の今回の運転領域
〔B,A〕に対応する学習補正係数KBLRC1として
新たに設定し、マップデータの更新を行う。
【0063】     KBLRC1〔B,A〕←KBLRC1〔B,
A〕+X1 {(a+b)/2−Target}このよ
うな16領域学習マップ上の〔B,A〕領域の学習中に
おいては、256 領域学習マップにおいてこの〔B,
A〕領域に含まれる16領域の学習補正係数KBLRC
2については、ステップ51でこれを全て初期値1.0
 にリセットする。上記のように、16領域学習マップ
で学習が終了していない領域があるときには、その運転
領域で安定したときに(a+b)/2の目標値Targ
etからの偏差の所定割合を、それまでに記憶されてい
た学習補正係数KBLRC1に加算して更新することに
より、空燃比フィードバック補正係数LMDの代わりに
学習補正係数KBLRC φ及び学習補正係数KBLR
C1による補正で目標空燃比が得られるようにし、空燃
比フィードバック補正係数LMDが目標収束値Targ
etである初期値1.0 に略収束した時点でその運転
領域の学習が終了したものとする。
【0064】一方、ステップ46で、フラグF〔B,A
〕が1であると判別され、16領域学習マップの該当す
る運転領域に学習済の学習補正係数KBLRC1が記憶
されているときには、学習補正係数KBLRC1が記憶
されている今回の16領域学習マップ上の運転領域〔B
,A〕を、更に16領域に細分する256 領域学習マ
ップの学習へ移行する。ステップ52では、補正係数L
MDの平均値である(a+b)/2が、目標収束値Ta
rgetの1.0 に略一致しているか否かの判別を行
い、(a+b)/2が略1.0 でなく空燃比フィード
バック補正係数LMDによる補正を必要としている未学
習状態であるときには、ステップ53へ進む。
【0065】ステップ53では、(a+b)/2から目
標収束値Target(本実施例では1.0 )を減算
した値に所定係数X2を掛けた値を、256 領域学習
マップの現在の運転条件が含まれる運転領域〔K,I〕
に対応して記憶されていた学習補正係数KBLRC2〔
K,I〕に加算し、この加算結果を当該運転領域〔K,
I〕における新たな補正係数KBLRC2〔K,I〕と
して設定し、マップデータの更新を行う。
【0066】   KBLRC2〔K, I〕←KBLRC2〔K, 
I〕+X2 {(a+b)/2−Target}一方、
ステップ52で、補正係数LMDの平均値である(a+
b)/2が目標収束値Targetの1.0 に略一致
していると判別されたときには、ステップ54へ進み、
256 領域学習マップの現在の運転条件が含まれる運
転領域〔K,I〕の学習が終了したことが判別されるよ
うにフラグFF〔K,I〕に1をセットする。
【0067】そして、ステップ55以降では、今回学習
が終了したと判別されて、対応するフラグFF〔K,I
〕に1がセットされた256 領域学習マップの所定運
転領域〔K,I〕に基づき、この領域〔K,I〕に隣接
する運転領域(図20参照)で学習が終了していない運
転領域がある場合に、その運転領域に今回の該当領域〔
K,I〕に対応して記憶されている学習補正係数KBL
RC2をそのまま記憶させる制御を行う。
【0068】ステップ55では、256 領域学習マッ
プにおいて現在の運転条件が含まれる領域位置を示すK
,Iからそれぞれ1を減算した値をm,nにセットし、
次のステップ56ではm=K+2であるか否かを判別す
る。ステップ55からステップ56へ進んだときにはス
テップ56でNOの判別が下されるから、ステップ57
に進んで〔m,n〕で示される256 領域学習マップ
上の運転領域の学習が終了しているか否かを、フラグF
F〔m,n〕が1であるかゼロであるかによって判別す
る。
【0069】ここで、フラグFF〔m,n〕がゼロであ
って学習が終了していないときには、ステップ58へ進
む。 このステップ58では、前記256 領域学習マップ上
における領域位置〔m,n〕を16領域学習マップ上の
領域位置〔m/4,n/4〕に変換し、これが現在該当
すると判別されている16領域学習マップ上の領域〔B
,A〕と一致するか否かを判別する。
【0070】即ち、〔K,I〕は〔B,A〕に含まれる
領域であるが、〔K,I〕の周囲の領域は、16領域学
習マップ上で〔B,A〕に隣接する別の領域に含まれる
場合があるためであり、同じ〔B,A〕に含まれる領域
であるときには(〔m/4,n/4〕=〔B,A〕)、
ステップ59へ進み、今回学習済であると判別された〔
K,I〕領域に対応する学習補正係数KBLRC2をそ
のまま〔m,n〕領域の学習値として記憶させる。
【0071】一方、ステップ58で〔K,I〕に隣接す
る〔m,n〕が、16領域学習マップ上で異なる領域に
含まれると判別されたときには、ステップ60へ進み、
かかる領域〔m,n〕に以下の式で算出される学習補正
係数KBLRC2を格納させる。   KBLRC2〔m,n〕←KBLRC1〔B,A〕
+KBLRC2〔K,I〕−KBLRC1〔m/4,n
/4〕  上記のKBLRC2〔m,n〕を求める演算
式は、〔K,I〕と〔m,n〕とは256 領域学習マ
ップ上で隣接する領域であるから、最終的な補正要求と
しては近似しているはずであるという推測に基づくもの
であり、それぞれが含まれる16領域学習マップの学習
補正係数KBLRC1が異なるので、それぞれ異なるK
BLRC1〔B,A〕,KBLRC1〔m/4,n/4
〕との合計が、以下の式にように近似するものとして設
定されている。
【0072】   KBLRC1〔B,A〕+KBLRC2〔K,I〕
=KBLRC1〔m/4,n/4〕+KBLRC2〔m
,n〕上記のようにして〔m,n〕領域が学習済である
ときには、その学習値を更新することなく、また、未学
習であるときには、KBLRC2〔K,I〕に基づきK
BLRC2〔m,n〕を更新設定すると、ステップ61
では、前記mを1アップさせて再びステップ56に戻り
、m=K+2となるまで、即ち、nを一定としてmをK
を中心とする±1の範囲で動かし、各運転領域毎に学習
済・未学習を判別する。
【0073】そして、ステップ61におけるmの1アッ
プ処理の結果ステップ56でm=K+2であると判別さ
れると、今度はステップ62へ進みn=I+2であるか
否かを判別し、n≠I+2であるときには、ステップ6
3で再びmをK−1にセットし、次のステップ64では
nを1アップさせた後、ステップ57へ進む。従って、
最初はn=I−1としてmをKを中心とする±1の範囲
で動かして隣接する領域の判別を行わせたのに対し、次
はn=IとしてmをKを中心とする±1の範囲で動かし
、更に、次にはn=I+1としてmをKを中心とする±
1の範囲で動かし、結果、〔K,I〕を囲む8つの運転
領域(図20参照)について未学習であるときには、学
習補正係数KBLRC2〔K,I〕に基づく値をその運
転領域の学習補正係数KBLRC2〔m,n〕として記
憶させるものである。
【0074】このように学習済の領域の学習結果を回り
の未学習領域にも適用させるようにすれば、256 領
域学習マップのように運転領域を細分化して各運転領域
の学習機会が少ない場合であっても、運転領域間で空燃
比制御性に段差が発生することを防止できる。ステップ
62でn=I+2であると判別されたときには、〔K,
I〕を囲む8つの運転領域全ての判別処理が終わったこ
とになるので、このときには、ステップ53へ進んで、
今回の領域〔K,I〕において既に学習済であると判断
されている学習補正係数KBLRC2の学習更新を行わ
せる。
【0075】このように、本実施例では、まず、全運転
領域に対応する学習補正係数KBLRC φを学習した
後に、16領域学習マップ上での運転領域毎の学習を行
わせ、更に、この16領域学習マップの学習が済んでい
る領域については、その領域を更に16領域に分けて学
習を行わせるようにしたので、大きな運転領域から小さ
な運転領域での学習へと進行することになり、大きな運
転領域での学習により空燃比の収束性が確保されると共
に、学習が進行すれば細かな運転領域毎の学習が行われ
るから、運転条件の違いによる要求補正値の違いに精度
良く対応できる。
【0076】上記のようにして学習される3つの学習補
正係数KBLRCφ,KBLRC1, KBLRC2に
基づく最終的な空燃比学習補正係数KBLRC の設定
は、図11のフローチャートに示すプログラムに従って
行われる。図11のフローチャートに示すプログラムは
、バックグラウンドジョブ(BGJ)として処理される
ものであり、まず、ステップ71では、16領域学習マ
ップ上の該当領域〔B,A〕に記憶されている学習補正
係数KBLRC1を読み出す。ここで、フローチャート
中に示す(B×4+A)は、該当領域を示す座標〔B,
A〕を、学習補正係数KBLRC1のメモリ番地に変換
するための演算であり、実際にはB×4+Aで示される
メモリ番地に記憶されているデータが読み出されるよう
になっている。
【0077】次のステップ72では、256 領域学習
マップ上の該当運転領域〔K,I〕に対応する学習補正
係数KBLRC2を読み出す。尚、ここでも、K×16
+Iが〔K,I〕に対応する学習補正係数KBLRC2
が記憶されているメモリ番地を示すものとする。上記の
ようにして、現状の運転条件が含まれる領域〔B,A〕
,〔K,I〕に対応する学習補正係数KBLRC1,K
BLRC2が設定されると、次のステップ73では、全
運転条件に適用される学習補正係数KBLRC φと前
記KBLRC1,KBLRC2とに基づき、KBLRC
 φ+KBLRC1+KBLRC2−2.0 →KBL
RC として最終的な学習補正係数KBLRC を設定
する。
【0078】上記図11のフローチャートに示すプログ
ラムで最終設定された学習補正係数KBLRC は、図
12のフローチャートに示す燃料噴射量設定プログラム
において用いられる。図12のフローチャートに示す燃
料噴射量設定プログラムは、所定微小時間(例えば10
ms) 毎に実行されるものであり、まず、ステップ8
1では、エアフローメータ13で検出された吸入空気流
量Q及びクランク角センサ14からの検出信号に基づき
算出した機関回転速度Nを入力する。
【0079】そして、次のステップ82では、ステップ
81で入力した吸入空気流量Qと機関回転速度Nとに基
づいて単位回転当たりの吸入空気流量Qに対応する基本
燃料噴射量Tp(←K×Q/N;Kは定数)を演算する
。次のステップ83では、前記ステップ82で演算した
基本燃料噴射量Tpに各種の補正を施して最終的な燃料
噴射量(燃料供給量)Tiを演算する。ここで、基本燃
料噴射量Tpの補正に用いられる補正値は、前記学習補
正係数KBLRC 、空燃比フィードバック補正係数L
MD、及び、水温センサ15で検出される冷却水温度T
wに基づく基本補正係数や始動後増量補正係数等を含ん
で設定される各種補正係数COEF、更に、バッテリ電
圧の変化による燃料噴射弁6の有効噴射時間の変化を補
正するための補正分Tsであり、Ti←Tp×LMD×
KBLRC ×COEF+Tsを演算して最終的な燃料
噴射量Tiが所定時間毎に更新される。
【0080】コントロールユニット12は所定の燃料噴
射タイミングになると、最新に演算された燃料噴射量T
iに相当するパルス巾の駆動パルス信号を燃料噴射弁6
に対して出力し、機関1への燃料供給量を制御する。ま
た、図13のフローチャートに示すプログラムは、前記
図3及び図4のフローチャートに示すプログラムに従っ
てサンプリングされる「ストレス」に基づく処理を行う
プログラムであり、バックグラウンドジョブ(BGJ)
として実行される。
【0081】ステップ91では、空燃比学習補正値の不
適切度合いを示すパラメータとして、前記図3及び図4
のフローチャートに示すプログラムで設定されるストレ
スと、所定値(例えば0.8)とを比較して、学習結果
の不適切度合いが所定以上であるか否かを判別する。こ
こで、前記「ストレス」が所定値を越えるときには、学
習が殆ど終了しているものの、その学習結果が不適切で
空燃比ずれが発生しているものと判断し、学習補正係数
KBLRC φからの学習を再度行わせるためにステッ
プ92へ進む。
【0082】ステップ92では、各運転領域の空燃比学
習が終了しているか否かを判別するためのフラグFφ,
F〔0,0〕〜F〔3,3〕,FF〔0,0〕〜FF〔
16,16〕を全てゼロリセットすると共に、16領域
学習マップの殆どの運転領域が学習済であるときに1が
セットされるフラグflag、及び16領域学習マップ
の1つの運転領域に含まれる256 領域学習マップ上
の16運転領域の殆どが学習済であるときに、その16
領域学習マップ上の運転領域に対応して1がセットされ
るフラグflag〔0,0〕〜〔3,3〕をゼロリセッ
トする。
【0083】更に、上記のようにして学習が最初からや
り直されることになるから、ストレスについてもこれを
ゼロリセットする。このように、学習結果が不適切であ
ると判別されるときに、学習を最初からやり直すように
すれば、例えば吸気系に穴が開くなどの事故によって空
燃比が急激に変化したときに、大きな運転領域毎の学習
が再度行われることになるから、空燃比を速やかに目標
空燃比に収束させることができる。
【0084】然も、前記「ストレス」は、前述のように
、16領域学習マップ上で該当領域が変化した後の初回
の空燃比反転時における補正係数LMDのレベルに基づ
き更新されることから、学習進行速度に関係なく学習結
果の不適切度合いを精度良く表すことから、ベース空燃
比の急変時に確実に再学習を行わせることができる。次
に図14〜図17のフローチャートに示すプログラムに
従って行われる細分領域に基づくより大きな区分運転領
域の学習補正係数の補正を説明する。
【0085】この図14〜図17のフローチャートに示
すプログラムは、バックグラウンドジョブ(BGJ)と
して実行されるものであり、まず、ステップ101 で
は、全運転領域に対応する学習補正係数 KBLRCφ
が学習済であるときに1がセットされるフラグFφの判
別を行い、前記フラグFφがゼロであるときにはそのま
ま本プログラムを終了させるが、1であるときにはステ
ップ102 以降へ進む。
【0086】ステップ102 では、本プログラムで使
用する各種パラメータであるSum,W,X,Yの初期
設定を行う。ここで、Sumは、16領域学習マップの
各運転領域で学習済である領域に記憶されている学習補
正係数KBLRC1の積算値であり、初期値として1.
0 がセットされ、前記Wはかかる積算演算におけるサ
ンプリング数をカウントアップするもので、初期値とし
ては1がセットされる。また、X,Yは、16領域学習
マップにおける格子位置を指定するものであり、初期値
としてそれぞれにゼロがセットされる。
【0087】次のステップ103 では、上記ステップ
102 でゼロリセットされるX,Yを座標位置とする
フラグF〔X,Y〕(16領域学習マップ上の各領域別
の学習済判別フラグ)の判別を行い、X,Yで指示され
る16領域学習マップ上の運転領域において学習済の領
域を探す。 X,Yは初期値ゼロであるから、〔0,0〕の運転領域
で未学習であるときには、ステップ104 でXが1ア
ップされて〔1,0〕となり、ステップ105 ではX
が4でないと判別されることにより再びステップ103
 での判別が行われる。
【0088】このようにしてXがステップ104 で1
アップされた結果4になると、ステップ106 でXを
ゼロリセットすると共に今度はYを1アップさせ、ステ
ップ107 でYが4であると判別されるまでは再びス
テップ103 へ戻り、ステップ104 へ進むとXが
1アップされるから、結果、Yを固定してXを変化させ
ることを繰り返して、16領域学習マップにおける各運
転領域でのフラグF〔X,Y〕が判別されるようになっ
ている。
【0089】ここで、16領域学習マップの運転領域で
フラグF〔X,Y〕が1であると判別される領域がある
と、ステップ108 へ進む。ステップ108 では、
フラグF〔X,Y〕が1であると判別され学習済である
運転領域に記憶されている学習補正係数KBLRC1を
、それまでの積算値Sumに加算すると共に、該加算の
回数(換言すれば積算サンプル数)をカウントするため
にサンプリング数Wを1アップさせる。
【0090】そして、次のステップ109 では、前記
16領域学習マップ上の〔X,Y〕領域に含まれる25
6 領域学習マップ上の16領域を1つずつ判別するた
めのα,βそれぞれに初期値ゼロをセットすると共に、
前記16領域の中で学習済である領域の学習補正係数K
BLRC2の積算値をセットするSump に初期値1
.0 をセットし、更に、該積算値Sump のサンプ
リング数をカウントするZに初期値1をセットする。
【0091】そして、ステップ110 〜ステップ11
5 では、前記16領域学習マップの〔X,Y〕領域に
含まれる256 領域学習マップ上の16領域中で学習
済である領域を、FF〔α+4X,β+4Y〕に基づい
て判別し、学習済の領域に記憶されている学習補正係数
KBLRC2を積算値Sump に積算すると共に、該
積算したサンプル数Zをカウントアップさせる。
【0092】このようにして、16領域学習マップの中
の学習済である領域に含まれる256 領域学習マップ
の16領域中の学習済領域をピックアップすると、次の
ステップ116 では、前記サンプル数Zが所定値(例
えば12)を越えているか否かを判別する。ここで、サ
ンプル数Zが所定値以下である場合には、今回学習済で
あると判別された16領域学習マップ上の〔X,Y〕領
域については、より細分化された16領域の学習が充分
に進行していないので、ステップ117 でフラグF〔
X,Y〕にゼロをセットして、再学習が行われるように
する。
【0093】ステップ117 でフラグflag〔X,
Y〕にゼロをセットした後は、再びステップ104 へ
戻り、16領域学習マップ上で学習済の他の領域を探す
。一方、ステップ116 でサンプル数Zが所定値を越
えていると判別されたときには、ステップ118 でフ
ラグflagF〔X,Y〕に1をセットし、次のステッ
プ119 では、学習済の領域に記憶されていた学習補
正係数KBLRC2の平均値(Sump/Z)と目標収
束値Targetとの偏差の絶対値が、所定値(例えば
0.04)未満であるか否かを判別する。
【0094】そして、前記偏差が所定値を越える場合に
は、本来16領域学習マップの学習補正係数KBLRC
1で負担すべき補正分が、256 領域学習マップの学
習補正係数KBLRC2に付加されているものと見做し
、前記付加分を学習補正係数KBLRC1側に転嫁すべ
くステップ120へ進む。ステップ120 では、今回
学習済であると判別された16領域学習マップ上の領域
〔X,Y〕に記憶されていた学習補正係数KBLRC1
〔X,Y〕を、以下の式に従って学習更新する。
【0095】     KBLRC1〔X,Y〕←KBLRC1〔X,
Y〕+(Sump /Z−Target)×γ即ち、上
記演算式によって256 領域学習マップが平均的に負
担している補正分を、それらを含む領域に対応する16
領域学習マップ側に転嫁して、256 領域学習マップ
による補正分を目標収束値Target=1.0 付近
に近づけるものである。このように、256 領域学習
マップが平均的に負担している補正分をそれらを含む領
域に対応する16領域学習マップ側に転嫁した場合には
、その分256 領域学習マップ上の学習補正係数KB
LRC2を逆補正する必要があるため、ステップ121
 以降の処理を行う。
【0096】即ち、ステップ120 で補正された学習
補正係数KBLRC1〔X,Y〕の領域に含まれる25
6 領域学習マップ上の16領域にそれぞれ記憶されて
いる学習補正係数KBLRC2から、学習補正係数KB
LRC1に加算した分を減算するようにしてある(ステ
ップ121 〜ステップ126 )。このようにして、
学習補正係数KBLRC1に対する補正分を、学習補正
係数KBLRC2に対して逆補正して修正すると、再び
ステップ104 へ戻って16領域学習マップ上で学習
済の領域を探し、学習済の領域が検出されたときには、
その都度前述のような処理を繰り返すことになる。
【0097】そして、16領域学習マップ上の全ての領
域について学習済の領域を調べると、ステップ107 
からステップ127 へ進むことになる。ステップ12
7 では、16領域学習マップ上での学習済領域の数を
カウントアップしたWが、所定値(例えば12)を越え
ているか否かを判別し、16領域学習マップの殆どの領
域が学習済であるかを判断する。
【0098】ここで、前記Wが所定値以下である場合に
は、ステップ128 でフラグflagにゼロをセット
してそのまま終了するが、前記Wが所定値を越えている
場合には、ステップ129 で前記フラグflagに1
をセットした後、ステップ130 以降で16領域学習
マップの学習済領域のデータに基づいて全運転領域に対
応する学習補正係数KBLRC φを修正する処理を行
う。
【0099】ステップ130 では、16領域学習マッ
プ上で学習済であると判別された領域における学習補正
係数KBLRC1の平均値(Sum/W)と、目標収束
値Targetとの偏差の絶対値が所定値未満であるか
否かを判別する。そして、前記偏差が所定値未満である
場合にはそのまま本プログラムを終了させるが、所定値
以上である場合には、本来、全運転領域に対応する学習
補正係数KBLRC φ側で負担すべき補正分が、学習
補正係数KBLRC1側に転嫁されているものと見做し
、かかる転嫁分を学習補正係数KBLRC φ側で負担
させるべくステップ131 へ進む。
【0100】ステップ131 では、以下の式に従って
学習補正係数KBLRC φの学習更新を行わせる。 KBLRCφ← KBLRCφ+(Sum/Z−Tar
get)×γ2即ち、16領域学習マップ上の学習済領
域で平均的に負担している補正分を、全運転領域で補正
する学習補正係数KBLRC φに転嫁して、学習補正
係数KBLRC1が目標収束値Target=1.0 
付近に学習されるようにするものである。
【0101】ここで、学習補正係数KBLRC1を同じ
領域の学習補正係数KBLRC2に基づいて補正した場
合と同様に、学習補正係数KBLRCφを補正した分を
、各学習補正係数KBLRC1に逆補正することが必要
になり、ステップ132 〜ステップ137 では、1
6領域学習マップの全ての運転領域の学習補正係数KB
LRC1から、学習補正係数KBLRC φに加算補正
した分(Sum/Z−Target)×γ2を減算して
修正する。
【0102】尚、上記実施例では、学習補正値が、全運
転領域に対応する学習補正係数KBLRC φ,16領
域毎の学習補正係数KBLRC1, 256 領域毎の
学習補正係数KBLRC2とから構成されるようにした
が、かかる構成に限定されるものではなく、より大きな
単位運転領域毎に学習される学習マップ(全運転領域に
対応して1つの空燃比学習補正値を記憶する学習マップ
を含む)と、より細かな運転領域毎(運転領域の区分数
は最低で2つ)に学習される学習マップとを少なくとも
2つ備える構成であれば良い。
【0103】また、学習の不適切さを示すパラメータで
ある前記「ストレス」を、例えば16領域学習マップの
各単位運転領域別にそれぞれ設定し、16領域学習マッ
プ上の1つの単位運転領域に含まれる256 領域学習
マップ上での該当領域の移動があったときに、直後の補
正係数LMDのレベルに基づきΔストレスを設定し、か
つ、このΔストレスに基づいて16領域別の「ストレス
」を更新し、対応する「ストレス」が所定以上である1
6領域学習マップ上の単位運転領域のみを再学習させる
ような構成であっても良い。
【0104】
【発明の効果】以上説明したように本発明によると、エ
アリークの発生やエアフローメータの急激な劣化などに
よってベース空燃比の急変が発生し、空燃比学習補正値
が不適切になったときに、これを確実に検出することが
でき、かかる検出に伴ってより大きな運転領域の学習か
ら再度行わせるので、高速にベース空燃比の急変を学習
させることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の構成を示すブロック図。
【図2】本発明の一実施例を示すシステム概略図。
【図3】空燃比フィードバック制御を示すフローチャー
ト。
【図4】空燃比フィードバック制御を示すフローチャー
ト。
【図5】空燃比学習制御を示すフローチャート。
【図6】空燃比学習制御を示すフローチャート。
【図7】空燃比学習制御を示すフローチャート。
【図8】空燃比学習制御を示すフローチャート。
【図9】空燃比学習制御を示すフローチャート。
【図10】空燃比学習制御を示すフローチャート。
【図11】空燃比学習補正係数の加重平均演算による最
終設定を示すフローチャート。
【図12】燃料噴射量の設定を示すフローチャート。
【図13】学習の反復制御に関わる内容を示すフローチ
ャート。
【図14】学習結果の修正制御を示すフローチャート。
【図15】学習結果の修正制御を示すフローチャート。
【図16】学習結果の修正制御を示すフローチャート。
【図17】学習結果の修正制御を示すフローチャート。
【図18】過渡判別のために基本燃料噴射量の変化量を
演算するフローチャート。
【図19】実施例における学習マップの様子を示す線図
【図20】実施例における学習マップの様子を示す線図
【図21】実施例における学習不適切さの更新特性を示
すタイムチャート。
【図22】従来制御における学習不適切さの更新特性を
示すタイムチャート。
【符号の説明】
1    機関 6    燃料噴射弁 12    コントロールユニット 13    エアフローメータ 14    クランク角センサ 15    水温センサ 16    酸素センサ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】機関に吸入される空気量に関与する運転パ
    ラメータを少なくとも含む機関運転条件を検出する機関
    運転条件検出手段と、該機関運転条件検出手段で検出し
    た機関運転条件に基づいて基本燃料供給量を設定する基
    本燃料供給量設定手段と、機関吸入混合気の空燃比を検
    出する空燃比検出手段と、該空燃比検出手段で検出され
    た空燃比と目標空燃比とを比較して実際の空燃比を前記
    目標空燃比に近づけるように前記基本燃料供給量を補正
    するための空燃比フィードバック補正値を設定する空燃
    比フィードバック補正値設定手段と、機関運転条件に基
    づく運転領域を相互に大きさの異なる単位運転領域に基
    づき区分してなる複数の学習マップを備え、前記複数の
    学習マップの各単位運転領域毎に前記基本燃料供給量を
    補正するための空燃比学習補正値を書き換え可能に記憶
    する空燃比学習補正値記憶手段と、前記空燃比フィード
    バック補正値の目標収束値からの偏差を学習し、前記学
    習マップ上の該当単位運転領域に記憶されている空燃比
    学習補正値を前記偏差を減少させる方向に修正して書き
    換える空燃比学習を、前記複数の学習マップにおけるよ
    り大きな単位運転領域から順により小さな単位運転領域
    へと移行させて行わせる空燃比学習手段と、前記基本燃
    料供給量,空燃比フィードバック補正値及び前記空燃比
    学習補正値記憶手段の複数の学習マップにおける該当単
    位運転領域の空燃比学習補正値に基づいて最終的な燃料
    供給量を設定する燃料供給量設定手段と、該燃料供給量
    設定手段で設定された燃料供給量に基づいて燃料供給手
    段を駆動制御する燃料供給制御手段と、前記空燃比学習
    補正値記憶手段の所定学習マップ上における単位運転領
    域間で運転条件の移動があった直後に求められた空燃比
    フィードバック補正値の基準値に対する偏差に基づいて
    、学習結果の不適切さを示すパラメータを更新する学習
    不適切さ更新手段と、該学習不適切さ更新手段で更新さ
    れる学習結果の不適切さを示すパラメータに基づいて所
    定レベル以上に学習結果が不適切であると判別されると
    きに、前記空燃比学習手段による空燃比学習を前記所定
    学習マップの単位運転領域よりも大きな単位運転領域の
    学習から強制的にやり直させる再学習手段と、を含んで
    構成されたことを特徴とする内燃機関の空燃比学習制御
    装置。
  2. 【請求項2】機関の過渡運転状態を検出する過渡運転検
    出手段と、該過渡運転検出手段で機関の過渡運転状態が
    検出されているときに前記学習不適切さ更新手段による
    学習結果の不適切さを示すパラメータの更新を禁止する
    更新禁止手段と、を設けたことを特徴とする請求項1記
    載の内燃機関の空燃比学習制御装置。
JP1629491A 1991-02-07 1991-02-07 内燃機関の空燃比学習制御装置 Pending JPH04255545A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1629491A JPH04255545A (ja) 1991-02-07 1991-02-07 内燃機関の空燃比学習制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1629491A JPH04255545A (ja) 1991-02-07 1991-02-07 内燃機関の空燃比学習制御装置

Publications (1)

Publication Number Publication Date
JPH04255545A true JPH04255545A (ja) 1992-09-10

Family

ID=11912527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1629491A Pending JPH04255545A (ja) 1991-02-07 1991-02-07 内燃機関の空燃比学習制御装置

Country Status (1)

Country Link
JP (1) JPH04255545A (ja)

Similar Documents

Publication Publication Date Title
JPH0826805B2 (ja) 内燃機関の空燃比学習制御装置
JP2742431B2 (ja) エンジンの空燃比制御装置
JPH0678738B2 (ja) 内燃機関の空燃比の学習制御装置
EP0431627B1 (en) Process and apparatus for learning and controlling air/fuel ratio in internal combustion engine
JPH0689690B2 (ja) 内燃機関の空燃比の学習制御装置
JPH081142B2 (ja) エンジンの空燃比制御装置
JPH04255545A (ja) 内燃機関の空燃比学習制御装置
JPH0979071A (ja) 内燃機関の空燃比学習制御装置
JP2884469B2 (ja) 内燃機関の空燃比制御装置
JP2005337186A (ja) 内燃機関の制御装置
JPH04255544A (ja) 内燃機関の空燃比学習制御装置
JPH04237847A (ja) 内燃機関の空燃比学習制御装置
JP2715208B2 (ja) 内燃機関の空燃比学習制御装置
JPH0979072A (ja) 内燃機関の空燃比学習制御装置
JPH04318246A (ja) 内燃機関の空燃比学習制御装置
JPH04241756A (ja) 内燃機関の空燃比学習制御装置
JPH04321741A (ja) 内燃機関の空燃比学習制御装置
JP2631579B2 (ja) 内燃機関の空燃比学習制御装置
JP2008144655A (ja) 内燃機関の制御装置及び方法
JPH04318247A (ja) 内燃機関の空燃比学習制御装置
JP2627825B2 (ja) 内燃機関の空燃比学習制御装置
JPH04175434A (ja) 内燃機関の空燃比学習制御装置
JP2514442B2 (ja) 内燃機関のノッキング検出装置
JPH04219440A (ja) 内燃機関の空燃比学習制御装置
JPH1122524A (ja) 内燃機関の空燃比制御装置