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

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

Info

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

Claims (1)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP575191A JPH04237847A (ja) 1991-01-22 1991-01-22 内燃機関の空燃比学習制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP575191A JPH04237847A (ja) 1991-01-22 1991-01-22 内燃機関の空燃比学習制御装置

Publications (1)

Publication Number Publication Date
JPH04237847A true JPH04237847A (ja) 1992-08-26

Family

ID=11619823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP575191A Pending JPH04237847A (ja) 1991-01-22 1991-01-22 内燃機関の空燃比学習制御装置

Country Status (1)

Country Link
JP (1) JPH04237847A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009203973A (ja) * 2008-01-31 2009-09-10 Honda Motor Co Ltd 内燃機関の燃料噴射装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009203973A (ja) * 2008-01-31 2009-09-10 Honda Motor Co Ltd 内燃機関の燃料噴射装置

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) エンジンの空燃比制御装置
US4800857A (en) Apparatus for learn-controlling air-fuel ratio for internal combustion engine
JPH03179147A (ja) 内燃機関の空燃比学習制御装置
JPH04237847A (ja) 内燃機関の空燃比学習制御装置
JPH04255544A (ja) 内燃機関の空燃比学習制御装置
JP2715208B2 (ja) 内燃機関の空燃比学習制御装置
JPH04241756A (ja) 内燃機関の空燃比学習制御装置
JPH04318246A (ja) 内燃機関の空燃比学習制御装置
JPH04321741A (ja) 内燃機関の空燃比学習制御装置
JPS62195439A (ja) エンジンの制御装置
JP2627825B2 (ja) 内燃機関の空燃比学習制御装置
JPH04318247A (ja) 内燃機関の空燃比学習制御装置
JP2631579B2 (ja) 内燃機関の空燃比学習制御装置
JPH04255545A (ja) 内燃機関の空燃比学習制御装置
JPH04175434A (ja) 内燃機関の空燃比学習制御装置
JP2514442B2 (ja) 内燃機関のノッキング検出装置
JPH04219440A (ja) 内燃機関の空燃比学習制御装置
JPH01106945A (ja) 内燃機関の学習制御装置
JPH01106954A (ja) 内燃機関の学習制御装置
JPH04203235A (ja) 内燃機関の空燃比学習制御装置
JPH0436255B2 (ja)
JPH01106947A (ja) 内燃機関の学習制御装置
JPH05156988A (ja) 内燃機関の空燃比制御装置
JPH04175435A (ja) 内燃機関の空燃比学習制御装置