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

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

Info

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

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】機関に吸入される空気量に関与する運転パ
    ラメータを少なくとも含む機関運転条件を検出する機関
    運転条件検出手段と、該機関運転条件検出手段で検出し
    た機関運転条件に基づいて基本燃料供給量を設定する基
    本燃料供給量設定手段と、機関吸入混合気の空燃比を検
    出する空燃比検出手段と、該空燃比検出手段で検出され
    た空燃比と目標空燃比とを比較して実際の空燃比を前記
    目標空燃比に近づけるように前記基本燃料供給量を補正
    するための空燃比フィードバック補正値を設定する空燃
    比フィードバック補正値設定手段と、機関運転条件に基
    づき複数に区分される運転領域毎に前記基本燃料供給量
    を補正するための空燃比学習補正値を書き換え可能に記
    憶する空燃比学習補正値記憶手段と、前記空燃比フィー
    ドバック補正値の目標収束値からの偏差を学習し、前記
    空燃比学習補正値記憶手段の該当運転領域に記憶されて
    いる空燃比学習補正値を、前記偏差を減少させる方向に
    修正して書き換える空燃比学習補正値修正手段と、前記
    空燃比学習補正値記憶手段から該当する運転領域の空燃
    比学習補正値を読み出して前回の空燃比学習補正値と加
    重平均する加重平均手段と、前記基本燃料供給量,空燃
    比フィードバック補正値及び前記加重平均手段で加重平
    均された空燃比学習補正値に基づいて最終的な燃料供給
    量を設定する燃料供給量設定手段と、該燃料供給量設定
    手段で設定された燃料供給量に基づいて燃料供給手段を
    駆動制御する燃料供給制御手段と、を含んで構成された
    ことを特徴とする内燃機関の空燃比学習制御装置。
  2. 【請求項2】前記加重平均手段で加重平均された空燃比
    学習補正値を、そのときの該当運転領域に対する空燃比
    学習補正値の更新データとして前記空燃比学習補正値記
    憶手段における記憶値の書き換えを行う加重平均値によ
    る記憶値書き換え手段を設けたことを特徴とする請求項
    1記載の内燃機関の空燃比学習制御装置。
  3. 【請求項3】前記空燃比学習補正値記憶手段が、運転領
    域毎に空燃比学習補正値を書き換え可能に記憶する学習
    マップを個別に複数備え、前記加重平均手段が前記複数
    の学習マップ毎に空燃比学習補正値の加重平均を行うよ
    う構成されたことを特徴とする請求項1又は2のいずれ
    かに記載の内燃機関の空燃比学習制御装置。
JP1542491A 1991-02-06 1991-02-06 内燃機関の空燃比学習制御装置 Pending JPH04255544A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=11888393

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH04255544A (ja)

Similar Documents

Publication Publication Date Title
US5243951A (en) Method of and apparatus for learning and controlling air-fuel ratio of internal combustion engine
JP2742431B2 (ja) エンジンの空燃比制御装置
JPH0678738B2 (ja) 内燃機関の空燃比の学習制御装置
EP0431627B1 (en) Process and apparatus for learning and controlling air/fuel ratio in internal combustion engine
JPH0689690B2 (ja) 内燃機関の空燃比の学習制御装置
JPH04255544A (ja) 内燃機関の空燃比学習制御装置
JPH04237847A (ja) 内燃機関の空燃比学習制御装置
JPH04241756A (ja) 内燃機関の空燃比学習制御装置
JPH04318246A (ja) 内燃機関の空燃比学習制御装置
JPH04255545A (ja) 内燃機関の空燃比学習制御装置
JPH04321741A (ja) 内燃機関の空燃比学習制御装置
JP2715208B2 (ja) 内燃機関の空燃比学習制御装置
JPH04318247A (ja) 内燃機関の空燃比学習制御装置
JPH04175434A (ja) 内燃機関の空燃比学習制御装置
JPH0979072A (ja) 内燃機関の空燃比学習制御装置
JP2627825B2 (ja) 内燃機関の空燃比学習制御装置
JP2514442B2 (ja) 内燃機関のノッキング検出装置
JP2631579B2 (ja) 内燃機関の空燃比学習制御装置
JPH04219440A (ja) 内燃機関の空燃比学習制御装置
JPH01106954A (ja) 内燃機関の学習制御装置
JPH0656124B2 (ja) 内燃機関の学習制御装置
JPH01106945A (ja) 内燃機関の学習制御装置
JPH0656116B2 (ja) 内燃機関の学習制御装置
JPH01106940A (ja) 内燃機関の学習制御装置
JPH04203235A (ja) 内燃機関の空燃比学習制御装置