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

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

Info

Publication number
JP2627825B2
JP2627825B2 JP2864791A JP2864791A JP2627825B2 JP 2627825 B2 JP2627825 B2 JP 2627825B2 JP 2864791 A JP2864791 A JP 2864791A JP 2864791 A JP2864791 A JP 2864791A JP 2627825 B2 JP2627825 B2 JP 2627825B2
Authority
JP
Japan
Prior art keywords
air
learning
fuel ratio
correction value
fuel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2864791A
Other languages
English (en)
Other versions
JPH04269347A (ja
Inventor
伸平 中庭
Original Assignee
株式会社ユニシアジェックス
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 株式会社ユニシアジェックス filed Critical 株式会社ユニシアジェックス
Priority to JP2864791A priority Critical patent/JP2627825B2/ja
Publication of JPH04269347A publication Critical patent/JPH04269347A/ja
Application granted granted Critical
Publication of JP2627825B2 publication Critical patent/JP2627825B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は内燃機関の空燃比学習制
御装置に関し、特に、空燃比フィードバック制御機能を
有し、かつ、区分された運転領域別に空燃比の補正要求
レベルを学習するよう構成された空燃比学習制御装置に
関する。
【0002】
【従来の技術】従来、空燃比フィードバック補正制御機
能をもつ電子制御燃料噴射装置を備えた内燃機関におい
ては、特開昭60−90944号公報,特開昭61−1
90142号公報等に開示されるように、空燃比の学習
制御が採用されているものがある。
【0003】空燃比フィードバック補正制御は、目標空
燃比(例えば理論空燃比)に対する実際の空燃比のリッ
チ・リーンを機関排気系に設けた酸素センサにより判別
し、該判別結果に基づき空燃比フィードバック補正係数
LMDを比例・積分制御などにより設定し、機関に吸入
される空気量に関与する機関運転状態のパラメータ(例
えば吸入空気流量Qと機関回転速度N)から算出される
基本燃料噴射量Tpを、前記空燃比フィードバック補正
係数LMDで補正することで、実際の空燃比を目標空燃
比にフィードバック制御するものである。
【0004】ここで、前記空燃比フィードバック補正係
数LMDの基準値(目標収束値)からの偏差を、複数に
区分された運転領域毎に学習して学習補正係数KBLRC(空
燃比学習補正値)を定め、基本燃料噴射量Tpを前記学
習補正係数KBLRC により補正して、補正係数LMDなし
で得られるベース空燃比が略目標空燃比に一致するよう
にし、空燃比フィードバック制御中は更に前記補正係数
LMDで補正して燃料噴射量Tiを演算するものであ
る。
【0005】これにより、運転条件毎に異なる空燃比の
補正要求に対応した燃料補正が行え、空燃比フィードバ
ック補正係数LMDを基準値付近に安定させて、空燃比
制御性を向上させることができる。
【0006】
【発明が解決しようとする課題】ところで、前記運転領
域別の空燃比学習補正係数KBLRC は、前述のように運転
条件の違いによる空燃比補正要求の違いに対応すべく設
定されるものであるから、運転領域を極力細かく区分し
てそれぞれの運転領域毎に学習補正係数KBLRC を学習設
定させることが望まれる。しかしながら、運転領域を細
かく区分して狭い運転領域毎に学習補正係数KBLRC を学
習させるようにすると、それぞれの運転領域における学
習機会が減少し、学習の収束性が悪化すると共に、学習
済領域と未学習領域とが混在することになって、運転領
域間で大きな空燃比段差が発生してしまう。
【0007】また、学習マップ上の学習補正係数KBLRC
を補間演算して実際の燃料補正に用いるようにすれば、
運転条件の変化に応じて空燃比学習補正値をリニアに変
化させることが可能となり、運転領域毎に行われる空燃
比学習において運転条件の変化に伴って学習補正のレベ
ル(空燃比)がステップ的に変化することを抑止できる
ようになる。ところが、この場合でも、学習領域間で学
習結果に大きな段差が発生すると、真の補正要求に精度
良く近似させた補間演算を行わせることができなくな
る。従って、補間演算を用いて補正レベルをリニアに変
化させようとする場合には、学習の収束性が必要となる
が、学習の収束性を確保するために運転領域の区分数を
少なくすると、補間演算の精度を悪化させることになっ
てしまう。
【0008】本発明は上記問題点に鑑みなされたもので
あり、空燃比学習の収束性を確保しつつ運転条件による
補正要求の違いに精度良く対応でき、然も、学習マップ
上の空燃比学習補正値を精度良く補間することが可能な
空燃比学習制御装置を提供することを目的とする。
【0009】
【課題を解決するための手段】そのため本発明にかかる
内燃機関の空燃比学習制御装置は、図1又は図2に示す
ように構成される。図1において、機関運転条件検出手
段は、機関に吸入される空気量に関与する運転パラメー
タを少なくとも含む機関運転条件を検出し、ここで検出
された機関運転条件に基づいて基本燃料供給量設定手段
が基本燃料供給量を設定する。
【0010】一方、空燃比フィードバック補正値設定手
段は空燃比検出手段で検出された機関吸入混合気の空燃
比と目標空燃比とを比較して実際の空燃比を、前記目標
空燃比に近づけるように前記基本燃料供給量を補正する
ための空燃比フィードバック補正値を設定する。また、
空燃比学習補正値記憶手段は、機関運転条件に基づき複
数に区分された運転領域毎に前記基本燃料供給量を補正
するための空燃比学習補正値を書き換え可能に記憶して
おり、空燃比学習手段は、前記空燃比フィードバック補
正値の目標収束値からの偏差を学習し、前記空燃比学習
補正値記憶手段における前記空燃比学習補正値を前記偏
差を減少させる方向に修正して書き換える空燃比学習
を、該当運転領域と共にこの該当運転領域に近い運転条
件の運転領域においてそれぞれ行わせる。
【0011】ここで、学習領域数制御手段は、上記空燃
比学習手段によって該当運転領域と共に空燃比学習補正
値が書き換えられる運転領域の数を学習進行に応じて減
少させる。そして、燃料供給量設定手段は、前記基本燃
料供給量,空燃比フィードバック補正値及び前記空燃比
学習補正値記憶手段において該当運転領域に対応して記
憶されている空燃比学習補正値に基づいて最終的な燃料
供給量を設定し、燃料供給制御手段は、前記設定された
最終的な燃料供給量に基づいて燃料供給手段を駆動制御
する。
【0012】また、図2に示す内燃機関の空燃比学習制
御装置において、機関運転条件検出手段,基本燃料供給
量設定手段,空燃比検出手段,空燃比フィードバック補
正値設定手段,燃料供給量設定手段及び燃料供給制御手
段それぞれの機能は、図1に示した空燃比学習制御装置
と同じであり、空燃比学習補正値記憶手段,空燃比学習
手段及び学習結果修正手段の機能が異なっているので、
かかる部分のみを以下に示す。
【0013】図2において、空燃比学習補正値記憶手段
は、機関運転条件に基づく運転領域を相互に大きさの異
なる単位運転領域に基づきそれぞれ複数に区分してなる
複数の学習マップを備え、前記複数の学習マップの各単
位運転領域毎に基本燃料供給量を補正するための空燃比
学習補正値を書き換え可能に記憶する。そして、空燃比
学習手段は、空燃比フィードバック補正値の目標収束値
からの偏差を学習し、前記空燃比学習補正値記憶手段に
おける各学習マップの該当単位運転領域に対応して記憶
されている前記空燃比学習補正値を前記偏差を減少させ
る方向に修正して書き換える空燃比学習を、より大きな
単位運転領域を優先させて行わせる。
【0014】ここで、学習結果修正手段は、前記空燃比
学習補正値記憶手段においてより大きな単位運転領域に
基づき運転領域を区分する学習マップの単位運転領域に
記憶されている空燃比学習補正値の目標収束値に対する
偏差を求め、この偏差分を該偏差を求めた単位運転領域
に含まれる別の学習マップのより小さな単位運転領域の
空燃比学習補正値に転嫁するよう空燃比学習補正値の書
き換え修正を行う。
【0015】
【作用】図1に示した空燃比学習制御装置では、複数に
区分された運転領域毎に空燃比学習補正値が学習される
が、学習が充分に進行するまでは、該当運転領域のみな
らず隣接する運転領域の学習も同時に行われ、学習の進
行と共に該当領域以外に同時に学習させる領域数が減少
する。従って、学習初期は、予め設定されている運転領
域の区分数よりも少ない区分数で運転領域を区切った場
合と同等の学習が行われることになり、これにより学習
収束性が確保される一方、学習進行と共に該当領域を含
めて同時に学習される領域数が減少するから、最終的に
は、予め区分された運転領域別に補正要求を学習させる
ことができ、運転条件の違いに細かく対応した学習が可
能となる。
【0016】また、上記の空燃比学習によると、1つの
学習マップ上の学習領域を学習進行と共に小さくしてい
くことになり、かかる学習マップ上の空燃比学習補正値
がそのまま運転領域別の補正要求に合致するよう学習さ
れるから、運転領域間で学習結果に大きな段差が発生す
ることが抑止される。一方、図2に示した空燃比学習制
御装置では、機関運転条件に基づく運転領域を相互に大
きさの異なる単位運転領域に基づきそれぞれ複数に区分
してなる複数の学習マップが備えられており、それぞれ
の学習マップ上の該当領域が、より大きな単位運転領域
を優先させて学習される。従って、学習初期には、比較
的大きな単位運転領域で運転領域を区分する学習マップ
が学習されることにより、学習の収束性が確保される一
方、より細かく運転領域を区分する学習マップの学習が
続いて行われて、運転条件による補正要求の違いに細か
く対応することができるようになる。
【0017】上記の空燃比学習では、複数の学習マップ
それぞれでの学習結果を総合して最終的な空燃比学習補
正が行われるから、例えば初期に学習された学習マップ
上で学習の不備により領域間での補正レベル段差が発生
すると、後に学習される学習マップ上でこれを補償する
よう学習されることになり、結果、各学習マップの領域
間において学習結果の段差が生じてしまう。
【0018】そこで、より大きな単位運転領域に基づき
運転領域を区分する学習マップの単位運転領域に記憶さ
れている空燃比学習補正値の目標収束値に対する偏差を
求め、この偏差分を該偏差を求めた単位運転領域に含ま
れる別の学習マップのより小さな単位運転領域の空燃比
学習補正値に転嫁するよう空燃比学習補正値の書き換え
修正を行う。即ち、複数の学習マップに分散している補
正分を纏めることで、最終的な補正要求に近い値を1つ
の学習マップ上の記憶値として、学習マップ上の学習結
果が真の要求レベルに関係なく領域間で大きく変化する
ことを抑止する。
【0019】学習マップ上の空燃比学習補正値が、領域
間で大きな段差を有することなく設定されれば、学習マ
ップから空燃比学習補正値を読み出すときに、補間演算
を精度良く施すことが可能となり、運転条件の変化に対
してリニアに空燃比学習補正値を変化させて燃料補正に
用いることができるようになる。
【0020】
【実施例】以下に本発明の実施例を説明する。実施例の
システム構成を示す図3において、内燃機関1にはエア
クリーナ2から吸気ダクト3,スロットル弁4及び吸気
マニホールド5を介して空気が吸入される。吸気マニホ
ールド5の各ブランチ部には、各気筒別に燃料供給手段
としての燃料噴射弁6が設けられている。この燃料噴射
弁6は、ソレノイドに通電されて開弁し、通電停止され
て閉弁する電磁式燃料噴射弁であって、後述するコント
ロールユニット12からの駆動パルス信号により通電され
て開弁し、図示しない燃料ポンプから圧送されてプレッ
シャレギュレータにより所定の圧力に調整された燃料
を、機関1に間欠的に噴射供給する。
【0021】機関1の各燃焼室には点火栓7が設けられ
ていて、これにより火花点火して混合気を着火燃焼させ
る。そして、機関1からは、排気マニホールド8,排気
ダクト9,三元触媒10及びマフラー11を介して排気が排
出される。コントロールユニット12は、CPU,RO
M,RAM,A/D変換器及び入出力インタフェイス等
を含んで構成されるマイクロコンピュータを備え、各種
のセンサからの入力信号を受け、後述の如く演算処理し
て、燃料噴射弁6の作動を制御する。
【0022】前記各種のセンサとしては、吸気ダクト3
中に熱線式等のエアフローメータ13が設けられていて、
機関1の吸入空気流量Qに応じた信号を出力する。ま
た、クランク角センサ14が設けられていて、本実施例の
4気筒の場合、クランク角180 °毎の基準信号REF
と、クランク角1°又は2°毎の単位信号POSとを出
力する。ここで、基準信号REFの周期、或いは、所定
時間内における単位信号POSの発生数を計測すること
により、機関回転速度Nを算出できる。
【0023】また、機関1のウォータジャケットの冷却
水温度Twを検出する水温センサ15が設けられている。
ここで、上記エアフローメータ13,クランク角センサ1
4,水温センサ15等が本実施例における機関運転条件検
出手段に相当する。また、排気マニホールド8の集合部
には、空燃比検出手段としての酸素センサ16が設けら
れ、排気中の酸素濃度を介して吸入混合気の空燃比を検
出する。前記酸素センサ16は、排気中の酸素濃度が理論
空燃比(本実施例における目標空燃比)を境に急変する
ことを利用して、実際の空燃比の理論空燃比に対するリ
ッチ・リーンを検出する公知のものであり、本実施例で
は、理論空燃比よりもリッチ空燃比であるときには比較
的高い電圧信号(例えば1V程度)を出力し、逆にリー
ン空燃比であるときには0V付近の低い電圧信号を出力
するものとする。
【0024】ここにおいて、コントロールユニット12に
内蔵されたマイクロコンピュータのCPUは、図4〜図
16のフローチャートにそれぞれ示すROM上のプログラ
ムに従って演算処理を行い、空燃比フィードバック補正
制御及び運転領域毎の空燃比学習補正制御を実行しつつ
燃料噴射量(燃料供給量)Tiを設定し、機関1への燃
料供給を制御する。
【0025】尚、本実施例において、基本燃料供給量設
定手段,燃料供給量設定手段,燃料供給制御手段,空燃
比フィードバック補正値設定手段,空燃比学習手段,学
習領域数制御手段,学習結果修正手段としての機能は、
前記図4〜図16のフローチャートに示すようにコントロ
ールユニット12がソフトウェア的に備えており、また、
空燃比学習補正値記憶手段としてはコントロールユニッ
ト12に内蔵された図示しないマイクロコンピュータのバ
ックアップ機能付RAMが相当する。
【0026】ここで、図4〜図16に示すフローチャート
には、学習形態の異なる2つの実施例を含めてあり、図
1のブロック図に基本構成を示した本発明に対応する第
1実施例では、全運転条件に対応する空燃比学習補正係
数KBLRC φと、基本燃料噴射量Tpと機関回転速度Nと
に基づいて運転領域を256 (16×16)領域に区分した学
習マップ(以下、256 領域学習マップという。)の各単
位運転領域別に学習される学習補正係数KBLRC2とから、
空燃比の学習補正を行うようにしてある。
【0027】また、図2のブロック図に基本構成を示し
た本発明に対応する第2実施例では、第1実施例におけ
る学習補正係数KBLRC φ,KBLRC2に加え、基本燃料噴射
量Tpと機関回転速度Nとに基づいて運転領域を16(4
×4)領域に区分した学習マップ(以下、16領域学習マ
ップという。)の各単位運転領域別に学習される学習補
正係数KBLRC1によって空燃比の学習補正が行われるよう
になっている。
【0028】ここで、第1実施例では、16領域学習マッ
プを用いた空燃比学習を行わないが、16領域に区分され
た運転領域を学習の進行状況の監視などに用いるように
してあるため、基本的には第1及び第2実施例共に、16
領域学習マップ及び256 領域学習マップを備えるものと
して説明する。以下、特に注釈を加えない各制御に関し
ては、第1実施例及び第2実施例で共通に行われるもの
として、説明を進める。
【0029】図4及び図5のフローチャートに示すプロ
グラムは、基本燃料噴射量Tp(基本燃料供給量)に乗
算される空燃比フィードバック補正係数LMD(空燃比
フィードバック補正値)を比例・積分制御により設定す
るプログラムであり、機関1の1回転(1rev)毎に実行
される。尚、前記空燃比フィードバック補正係数LMD
の初期値(空燃比学習制御による補正係数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、即ち、
リッチ判別時に徐々に減少制御されていた補正係数LM
Dを最小値bにセットする。
【0034】次のステップ10では、前回までの補正係数
LMDに比例定数Pを加算して更新することにより燃料
噴射量Tiの増量補正を図り、ステップ11では、比例制
御が実行されたことを示すフラグである前記「P分付
加」に1をセットする。ステップ8でリーン判別が初回
でないと判別されたときには、ステップ12へ進み、積分
定数Iに最新の燃料噴射量Tiを乗算した値を、前回ま
での補正係数LMDに加算し、補正係数LMDを徐々に
増大させる。
【0035】リッチ・リーン判別の初回で補正係数LM
Dの比例制御を実行したときには、更に、空燃比学習補
正制御に関わる以下のような各種処理を行う。まず、ス
テップ13で、16領域学習マップ上の1つの運転領域に安
定して止まっている状態か否かを判別するためのカウン
ト値cntの判別を行う。後述する図6〜図11のフロー
チャートに示すプログラムにおいて、16領域学習マップ
上で該当する運転領域が所定微小時間毎に変化している
ときに、前記カウント値cntには所定値(例えば4)
がセットされるようになっており、ステップ13でカウン
ト値cntがゼロでないと判別されると、ステップ14へ
進んでカウント値cntを1ダウンさせる処理を行うか
ら、16領域学習マップ上の1つの運転領域に止まるよう
になってからカウント値cntは補正係数LMDの比例
制御毎に1ダウンされることになり、カウント値cnt
がゼロであるときには16領域学習マップ上の1つの運転
領域に安定して止まっている状態であると見做すことが
できるようにしてある。
【0036】尚、前記カウント値cntがゼロであるか
否かを判別することで、後述するように運転領域別の空
燃比学習を行うか否かを判別し、16領域学習マップ上で
該当する運転領域が変化した初期には運転領域別の学習
が行われないようにしてある。ステップ15では、前記16
領域学習マップ上の16の単位運転領域の殆どの領域で学
習補正係数KBLRC1が学習済であるか否かを判別する。
尚、第1実施例において16領域学習マップを用いた学習
補正を行わないので、第1実施例の場合の前記ステップ
15での判別は、256 領域学習マップ上の256 個の単位運
転領域を16個ずつ一纏めとして16領域を仮想設定したと
きに、かかる仮想の16領域での学習進行状態を判別させ
ることになる。
【0037】ここで、16領域学習マップの学習が殆ど終
了している状態であるときには、ステップ16へ進む。ス
テップ16では、16領域学習マップ上で該当する単位運転
領域が前回と同じであるか否かを判別し、前回該当して
いた単位運転領域と異なる領域が該当領域であるときに
のみステップ17へ進む。
【0038】ステップ17では、最新の補正係数LMD平
均値(a+b)/2の目標収束値Target(=1.0)に対す
る偏差の絶対値に基づいて、学習値の不適切度合いを示
すパラメータであるΔストレスのマップを参照し、補正
係数LMDの目標収束値Targetに対する偏差の増大に応
じてΔストレスを増大設定する。ステップ15において16
領域学習マップのそれぞれの運転領域に対応する学習補
正係数KBLRC1が殆ど学習されていると判別されているか
ら、本来であれば、該当領域が変化しても補正係数LM
Dは略目標収束値Target付近で安定しているはずである
が、該当運転領域の変化により補正係数LMDが大きく
変動した場合には、16領域学習マップの学習結果が不適
切であると推定できる。
【0039】そして、次のステップ18では、前記Δスト
レスの積算値がセットされる「ストレス」に今回求めた
Δストレスを加算する。従って、16領域学習マップの学
習が略終了していて、かつ、16領域学習マップ上で該当
する運転領域が変化した直後における初回の空燃比反転
時に、補正係数LMDの目標収束値Targetに対する偏差
に応じて学習結果の不適切さを示すパラメータである前
記「ストレス」が更新されることになる。
【0040】ここで、後述するように、前記「ストレ
ス」が所定以上になると、既に学習済である16領域学習
マップ上の学習値が不適切であるものと判断し、空燃比
学習を全運転領域に対応する学習補正係数KBLRC φから
やり直させるようになっている。本実施例では、後述す
るように、より大きな単位運転領域に対応する学習補正
係数KBLRC から学習を行わせ、学習の進行と共により小
さな単位運転領域での学習に移行させるようになってい
る。ここで、より小さな単位運転領域での学習を行わせ
る段階まで学習が進んでから、エアリークなどの突発的
な空燃比ずれが発生した場合に、そのまま小さな単位運
転領域別の学習を続行させていると、学習の収束が遅く
なってしまう。そこで、前述のような突発的な空燃比ず
れの発生により学習結果が不適切になったことを前記
「ストレス」に基づいて判別し、大きな単位運転領域で
の学習から再度行わせて、速やかに空燃比学習が収束す
るようにする。
【0041】図6〜図11のフローチャートに示すプログ
ラムは、運転領域別の空燃比学習プログラムであり、所
定微小時間(例えば10ms) 毎に実行される。ステップ21
では、前記図4及び図5のフローチャートに示すプログ
ラムで空燃比フィードバック補正係数LMDの比例制御
を行ったときに1がセットされるフラグ「P分付加」の
判別を行い、P分付加が1であるときには、ステップ22
へ進みP分付加をゼロリセットした後、本プログラムに
よる各種処理を行い、ゼロであるときにはそのまま本プ
ログラムを終了させる。
【0042】ステップ22でP分付加をゼロリセットする
と、次のステップ23では、全運転領域に共通の空燃比学
習補正値である学習補正係数KBLRC φ(初期値1.0 )が
学習済であるか否かを示すフラグFφの判別を行う。こ
こで、フラグFφがゼロであって学習補正係数 KBLRCφ
の学習が済んでいないときには、ステップ24へ進み、前
記補正係数LMDの最大・最小値a,bの平均値(←
(a+b)/2)が略1.0 であるか否かを判別する。
【0043】(a+b)/2が略1.0 でないときには、
ステップ26へ進み、(a+b)/2から補正係数LMD
の目標収束値Target(本実施例では1.0 )を減算した値
に所定係数Xを掛けた値を前回までの学習補正係数KBLR
C φに加算し、該加算結果を新たな学習補正係数KBLRC
φとして設定する。 KBLRC φ←KBLRC φ+X{(a+b)/2−Target} また、ステップ26では、16領域学習マップ及び256 領域
学習マップそれぞれの運転領域に記憶されている学習補
正係数KBLRC1,学習補正係数KBLRC2を全て初期値である
1.0 にリセットする。従って、上記学習補正係数KBLRC
φを学習更新するときには、たとえ16領域学習マップ及
び256 領域学習マップで学習値が学習更新されていて
も、そのデータを全てリセットした状態で、換言すれ
ば、学習補正係数KBLRC φのみで補正係数LMDが目標
収束値Targetに収束するように、学習補正係数KBLRC φ
の学習を行わせるものである。尚、第1実施例では、16
領域学習マップ上での学習補正係数KBLRC1の学習を行わ
ないので、前記ステップ26では、学習補正係数KBLRC2の
みを1.0 にリセットする。
【0044】前記ステップ24で(a+b)/2が略1で
あると判別されると、ステップ25で前記フラグFφに1
をセットして、全運転領域に対応する学習補正係数 KBL
RCφの学習が済んでいること、換言すれば、学習補正係
数 KBLRCφを学習更新させた結果空燃比フィードバック
補正係数LMDが略1に収束したことが判別できるよう
にする。
【0045】一方、ステップ23で前記フラグFφが1で
あると判別された場合には、全運転領域に対応する学習
補正係数 KBLRCφの学習が済んでいることを示すから、
今度は運転領域を基本燃料噴射量Tpと機関回転速度N
とに基づいて複数に区分した運転領域別の空燃比学習を
行う。まず、ステップ28以降では、基本燃料噴射量Tp
と機関回転速度Nとに基づいて運転領域を256 領域に区
分した学習マップにおいて、現在の運転条件がどの領域
に含まれるかを求める。
【0046】ここで、ステップ28では、現在の基本燃料
噴射量(基本燃料供給量)Tpが16格子の何番目に含ま
れるかを判別するためのカウンタ値iにゼロをセット
し、次のステップ29では、前記カウンタ値iが15を越え
るか否かを判別し、15を越えていないときには、ステッ
プ30でカウント値iに対応する予め設定された基本燃料
噴射量Tpのしきい値Tp〔i〕と最新に演算された基
本燃料噴射量Tpとを比較する。
【0047】ステップ30でしきい値Tp〔i〕よりも最
新の基本燃料噴射量Tpが小さいと判別されたときに
は、ステップ33へ進んでそのときのカウント値iを、最
新の基本燃料噴射量Tpが含まれる領域位置としてIに
セットする。即ち、各領域の最大基本燃料噴射量Tpを
予めしきい値Tp〔i〕として設定しておき、最新の基
本燃料噴射量Tpと前記しきい値Tp〔i〕とを、小さ
い側(又は大きい側)から順に比較して初めてTp
〔i〕>Tpとなった時点のiがTpブロックの番号を
示すものとしてIにセットするものである。
【0048】また、ステップ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が含まれるものと仮定する。
【0049】次は、機関回転速度Nによる16ブロック分
けのため、前記基本燃料噴射量Tpのブロック判別と同
様にして、最新の機関回転速度Nが含まれるブロック番
号をカウント値kで決定する。まず、ステップ34では、
前記カウント値kにゼロを初期設定し、ステップ35でこ
のカウント値kが15を越えたと判別されるまでは、ステ
ップ36におけるしきい値N〔k〕との比較を行い、初め
てN〔k〕>Nとなったときのカウント値kをステップ
39でNのブロックの番号を示すKにセットし、N〔k〕
≦Nであるときにはステップ37においてカウント値kを
1アップさせる。また、カウント値kが15を越えたとき
には、ステップ38へ進んでカウント値kに15をセットし
てステップ39へ進む。
【0050】このようにして、基本燃料噴射量Tpと機
関回転速度Nとをパラメータとして256 の運転領域に区
分される256 領域学習マップのどの運転領域に現在の運
転条件が含まれるかが、Tpのブロック番号IとNのブ
ロック番号Kとによって指示される座標〔K,I〕で表
される。256 領域学習マップ上で現在の運転条件が該当
する領域が上記のようにして判明すれば、図17に示すよ
うに16領域学習マップにおける1つの運転領域は、256
領域学習マップにおける16領域を1ブロックとして区切
ったものであるから、前記I,Kに基づいて16領域学習
マップにおいて現在の運転条件が該当する位置を特定で
きる。
【0051】即ち、ステップ40では、前記Tpのブロッ
ク番号Iを4で除算して、その結果の少数点以下を切り
捨てた整数値をAにセットし、また、ステップ41では、
Nのブロック番号Kを同様にして4で除算して、その結
果の少数点以下を切り捨てた整数値をBにセットする。
これにより、今回の運転条件が該当する16領域学習マッ
プ上の運転領域は〔B,A〕の座標で表される。
【0052】次のステップ42では、16領域学習マップ上
で現在の運転条件が該当する領域位置を示す〔B,A〕
を用い、16領域学習マップ上で該当する運転領域が変化
したか否かを判別するために、前記Aに16を乗算した値
とBとを加算してその結果をABにセットする。そし
て、ステップ43では前回演算された前記ABであるAB
OLD と今回演算された最新のABとを比較することによ
り、今回該当する運転領域と前回とが同じであるか否か
を判別する。AB≠ABOLD であって、16領域学習マッ
プ上で前回と異なる運転領域であるときには、ステップ
44でカウント値cnt に所定値(例えば4)をセットす
る。
【0053】ステップ45では、次回におけるステップ43
での判別のために、今回ステップ42で演算したABを前
回値としてABOLD にセットする。ステップ46では、16
領域学習マップにおいて〔B,A〕を座標として指示さ
れる現在の運転条件が含まれる運転領域で空燃比学習が
終了しているか否かを示すフラグF〔B,A〕を判別
し、このフラグF〔B,A〕がゼロであって現在の運転
条件が含まれる16領域学習マップ上の1つの運転領域で
学習が終了していないときには、ステップ47へ進む。
【0054】ステップ47では前記カウント値cnt がゼロ
であるか否かを判別し、カウント値cnt がゼロでなく16
領域学習マップにおける該当領域の変動があるときに
は、そのまま本プログラムを終了させ、カウント値cnt
がゼロであって16領域学習マップ上で該当する運転領域
が安定しているときにのみステップ48へ進む。ステップ
48では、前記図4及び図5のフローチャートに示したプ
ログラムでサンプリングされる空燃比フィードバック補
正係数LMDの最大・最小値a,bの平均値(a+b)
/2、即ち、補正係数LMDの中心値が、目標収束値Ta
rgetである初期値(=1.0)付近であるか否かによって学
習の進行を判別する。ここで、補正係数LMDの平均値
が略1.0 であると認められず学習が済んでいないときに
はそのままステップ50又はステップ51へ進み、補正係数
LMDの平均値が略1.0 であって学習済であると認めら
れるときには、ステップ49でフラグF〔B,A〕に1を
セットしてからステップ50又はステップ51へ進む。
【0055】ここで、第1実施例に対応する処理がステ
ップ51であり、第2実施例に対応する処理がステップ50
であり、何れか一方での学習を行わせる。ステップ50で
は、16領域学習マップにおいて今回の〔B,A〕領域に
対応して記憶されている学習補正係数KBLRC1に対して、
最大・最小値a,bの平均値から目標収束値Target(本
実施例では1.0)を減算した値に所定係数X1を掛けた値
を加算し、その結果を16領域学習マップ上の今回の運転
領域〔B,A〕に対応する学習補正係数KBLRC1として新
たに設定し、マップデータの更新を行う。
【0056】 KBLRC1〔B,A〕←KBLRC1〔B,A〕+X1 {(a+b)/2−Target} このような16領域学習マップ上の〔B,A〕領域の学習
中においては、この〔B,A〕領域に含まれる256 領域
学習マップ上の16領域の学習補正係数KBLRC2を全て初期
値1.0 にリセットする。上記のように、全運転条件に対
応する学習補正係数KBLRC φが学習済であって、16領域
学習マップで学習が終了していない領域があるときに
は、その運転領域で安定したときに(a+b)/2の目
標値Targetからの偏差の所定割合を、それまでに記憶さ
れていた学習補正係数KBLRC1に加算して更新することに
より、空燃比フィードバック補正係数LMDの代わりに
学習補正係数KBLRC φ及び学習補正係数KBLRC1による補
正で目標空燃比が得られるようにし、空燃比フィードバ
ック補正係数LMDが目標収束値Targetである初期値1.
0 に略収束した時点でその運転領域の学習が終了したも
のとする。
【0057】そして、ステップ50での処理を行う第2実
施例では、後述するように、16領域学習マップ上での該
当領域〔B,A〕が学習済であると、次に256 領域学習
マップ上の該当領域での学習に移行する。一方、第1実
施例に対応するステップ51では、16領域学習マップ上で
今回該当すると判別された領域に含まれる256 領域学習
マップ上の16領域を、同じ空燃比フィードバック補正係
数LMDのデータに基づき一度に学習させる制御を行
う。
【0058】上記ステップ51における制御内容の詳細
は、図12のフローチャートに示してある。図12におい
て、まず、ステップ101 及び102 では、256 領域学習マ
ップ上で学習させる領域を順次移動させるためのカウン
タ値p,ρをそれぞれゼロリセットする。そして、ステ
ップ103 では、前記カウンタpが3以内であるか否かを
判別し、カウンタpが3以内であるときには、ステップ
104 へ進み、〔B×4+p,A×4+ρ〕で指示される
256 領域学習マップ上の領域に対応する学習補正係数KB
LRC2の学習を、以下の式に従って行わせる。
【0059】 KBLRC2〔B×4+p,A×4+ρ〕← KBLRC2 〔B×4+p,A×4+ρ〕+X1{(a+b)/2−Target} そして、ステップ104 での学習の後は、ステップ105 で
カウンタpを1アップさせ、再びステップ103 へ戻る。
即ち、カウンタρを固定しておいて、カウンタpを0か
ら3まで移動させて、〔B×4+p,A×4+ρ〕領域
の学習補正係数KBLRC2を更新させるものである。カウン
タpが4を越えるようになると、ステップ103 からステ
ップ106 へ進み、ステップ106 でカウンタρが4を越え
たと判別されるまでは、ステップ107 でカウンタpをゼ
ロリセットし、更にステップ108 でカウンタρを1アッ
プさせて、再びステップ103 へ戻る。これにより、例え
ば16領域学習マップの〔B,A〕=〔0,0〕領域が該
当領域であるときに、図17に示すように、256 領域学習
マップ上で〔B,A〕=〔0,0〕に含まれる〔0,
0〕〜〔3,3〕の16領域が一度に学習されることにな
る。
【0060】上記のように、256 領域学習マップ上の16
領域を一度に学習させるようにすれば、16領域学習マッ
プの該当領域を学習させる場合と同等の学習収束性が確
保される。即ち、第1実施例では、16領域学習マップ上
での学習補正係数KBLRC1の学習を行わせる代わりに、25
6 領域学習マップ上で256 の単位運転領域を16ずつ一纏
めにして16領域学習マップの単位運転領域と同じ16領域
を仮想的に設定し、かかる仮想的な16領域別に学習させ
るようにしたものであり、後述するように、256 領域学
習マップ上で16領域を一纏めにした学習が収束すると、
256 領域別の学習へと移行させるようにしてある。従っ
て、学習初期は、256 領域の中の該当運転領域と同時に
15の非該当領域が学習され、学習が進行すると、同時学
習される非該当領域の数がゼロとなって256 領域の中の
該当運転領域毎に学習されることになる。
【0061】16領域学習マップの区分運転領域を単位と
する学習を上記のようにして行って、該当領域〔B,
A〕において空燃比フィードバック補正係数LMDが目
標収束値Targetに収束し、フラグF〔B,A〕に1がセ
ットされると、次に256 領域学習マップにおける各単位
運転領域別の学習を行わせるべくステップ46からステッ
プ52へ進ませる。
【0062】ステップ52では、補正係数LMDの平均値
である(a+b)/2が、目標収束値Targetの1.0 に略
一致しているか否かの判別を行い、(a+b)/2が略
1.0 でなく空燃比フィードバック補正係数LMDによる
補正を必要としている未学習状態であるときには、ステ
ップ53へ進む。ステップ53では、(a+b)/2から目
標収束値Target(本実施例では1.0 )を減算した値に所
定係数X2を掛けた値を、256 領域学習マップの現在の
運転条件が含まれる運転領域〔K,I〕に対応して記憶
されていた学習補正係数KBLRC2〔K,I〕に加算し、こ
の加算結果を当該運転領域〔K,I〕における新たな補
正係数KBLRC2〔K,I〕として設定し、マップデータの
更新を行う。
【0063】 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をセットする。
【0064】そして、ステップ55以降では、今回学習が
終了したと判別されて、対応するフラグFF〔K,I〕に
1がセットされた256 領域学習マップの所定運転領域
〔K,I〕に基づき、この領域〔K,I〕に隣接する運
転領域(図18参照)で学習が終了していない運転領域が
ある場合に、その運転領域に今回の該当領域〔K,I〕
に対応して記憶されている学習補正係数KBLRC2をそのま
ま記憶させる制御を行う。
【0065】ステップ55では、256 領域学習マップにお
いて現在の運転条件が含まれる領域位置を示すK,Iか
らそれぞれ1を減算した値をm,nにセットし、次のス
テップ56ではm=K+2であるか否かを判別する。ステ
ップ55からステップ56へ進んだときにはステップ56でN
Oの判別が下されるから、ステップ57に進んで〔m,
n〕で示される256 領域学習マップ上の運転領域の学習
が終了しているか否かを、フラグFF〔m,n〕が1であ
るかゼロであるかによって判別する。
【0066】16領域学習マップ上で各単位運転領域別に
学習補正係数KBLRC1の学習が行われる第2実施例におい
ては、ステップ57でフラグFF〔m,n〕がゼロであって
学習が終了していないと判別されるとステップ58へ進
む。ステップ58では、前記256 領域学習マップ上におけ
る領域位置〔m,n〕を16領域学習マップ上の領域位置
〔m/4,n/4〕に変換し、これが現在該当すると判
別されている16領域学習マップ上の領域〔B,A〕と一
致するか否かを判別する。
【0067】即ち、〔K,I〕は〔B,A〕に含まれる
領域であるが、〔K,I〕の周囲の領域は、16領域学習
マップ上で〔B,A〕に隣接する別の領域に含まれる場
合があるためであり、同じ〔B,A〕に含まれる領域で
あるときには(〔m/4,n/4〕=〔B,A〕)、ス
テップ59へ進み、今回学習済であると判別された〔K,
I〕領域に対応する学習補正係数KBLRC2をそのまま
〔m,n〕領域の学習値として記憶させる。
【0068】一方、ステップ58で〔K,I〕に隣接する
〔m,n〕が、16領域学習マップ上で異なる領域に含ま
れると判別されたときには、ステップ60へ進み、かかる
領域〔m,n〕に以下の式で算出される学習補正係数KB
LRC2を格納させる。 KBLRC2〔m,n〕←KBLRC1〔B,A〕+KBLRC2〔K,I〕−KBLRC1〔m/4,n/4〕 上記のKBLRC2〔m,n〕を求める演算式は、〔K,
I〕と〔m,n〕とは256 領域学習マップ上で隣接する
領域であるから、最終的な補正要求としては近似してい
るはずであるという推測に基づくものであり、それぞれ
が含まれる16領域学習マップの学習補正係数KBLRC1が異
なるので、それぞれ異なるKBLRC1〔B,A〕,KBLRC1
〔m/4,n/4〕との合計が、以下の式にように近似
するものとして設定されている。
【0069】 KBLRC1〔B,A〕+KBLRC2〔K,I〕=KBLRC1〔m/4,n/4〕+KBLRC2〔m,n〕 上記のようにして〔m,n〕領域が学習済であるとき
には、その学習値を更新することなく、また、未学習で
あるときには、KBLRC2〔K,I〕に基づきKBLRC2〔m,
n〕を更新設定すると、ステップ61では、前記mを1ア
ップさせて再びステップ56に戻り、m=K+2となるま
で、即ち、nを一定としてmをKを中心とする±1の範
囲で動かし、各運転領域毎に学習済・未学習を判別す
る。
【0070】そして、ステップ61におけるmの1アップ
処理の結果ステップ56でm=K+2であると判別される
と、今度はステップ62へ進みn=I+2であるか否かを
判別し、n≠I+2であるときには、ステップ63で再び
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つの運転領域(図18参
照)について未学習であるときには、学習補正係数KBLR
C2〔K,I〕に基づく値をその運転領域の学習補正係数
KBLRC2〔m,n〕として記憶させるものである。
【0071】一方、16領域学習マップ上での学習補正係
数KBLRC1の学習を行わない第1実施例においては、ステ
ップ57でフラグFF〔m,n〕がゼロであると判別される
と、ステップ58での判別を待つことなく全てステップ59
へ進み、領域〔K,I〕に隣接する8領域全てに学習補
正係数KBLRC2〔K,I〕を記憶させる。このように学習
済の領域の学習結果を回りの未学習領域にも適用させる
ようにすれば、256 領域学習マップのように運転領域を
細分化して各運転領域の学習機会が少ない場合であって
も、運転領域間で空燃比制御性に段差が発生することを
抑止できる。
【0072】ステップ62でn=I+2であると判別され
たときには、〔K,I〕を囲む8つの運転領域全ての判
別処理が終わったことになるので、このときには、ステ
ップ53へ進んで、今回の領域〔K,I〕において既に学
習済であると判断されている学習補正係数KBLRC2の学習
更新を行わせる。上記のようにして、第1実施例及び第
2実施例における学習マップ上での学習補正係数KBLRC
の学習が行われるものであるが、16領域学習マップと25
6 領域学習マップとの2つの学習マップを備え、それぞ
れで学習補正係数KBLRC1,KBLRC2 を学習させる第2実施
例においては、学習結果を図13及び図14のフローチャー
トに示すプログラムに従って修正する処理を更に行う。
【0073】図13及び図14のフローチャートに示される
プログラムの処理内容を簡単に述べると、学習補正係数
KBLRC1の目標収束値Targetに対する偏差分を、学習補正
係数KBLRC1が適用される運転領域に含まれる16個の学習
補正係数KBLRC2にそれぞれ加算することにより、学習補
正係数KBLRC1による補正負担分を学習補正係数KBLRC2側
に転嫁するものであり、かかる補正分の転嫁が行われた
後は学習補正係数KBLRC1を全て目標収束値Targetにリセ
ットして、2重の補正を回避する。
【0074】図13及び図14のフローチャートに示すプロ
グラムは、バックグラウンド処理されるものであり、ま
ず、ステップ111 において256 領域学習マップ上の各領
域を指示するためのカウンタi,jをゼロリセットし、
次に、ステップ112 でカウンタiが15を越えたか否かを
判別する。そして、カウンタiが15以下であるときに
は、ステップ113 へ進み、〔j,i〕で指示される256
領域学習マップ上の領域に対応する学習補正係数KBLRC2
〔j,i〕をK2にセットし、また、〔j,i〕が含ま
れる16領域学習マップ上の領域〔j/4,i/4〕に対
応する学習補正係数KBLRC1〔j/4,i/4〕をK1に
セットする。
【0075】次にステップ114 では、以下の式に従って
KBLRC2〔j,i〕の更新を行う。 KBLRC2〔j,i〕←K2+(K1−Target) 上記の式で256 領域学習マップ上の学習補正係数KBLRC2
〔j,i〕を更新すれば、学習補正係数KBLRC1による補
正負担分が、学習補正係数KBLRC2側に転嫁されることに
なる。
【0076】学習補正係数KBLRC2の更新をステップ114
で行うと、ステップ115 でカウンタiを1アップさせて
ステップ112 へ戻る。ここで、カウンタiが15を越える
ようになると、今度はステップ112 からステップ116 へ
進み、カウンタjが15を越えたか否かを判別する。そし
て、カウンタjが15以下であるときには、ステップ117
でカウンタiをゼロリセットすると共に、カウンタjを
1アップさせて再びステップ112 へ戻ることにより、25
6 領域の全てについてステップ114 における更新を行わ
せる。
【0077】256 領域学習マップ上の学習補正係数KBLR
C2の更新が終了して、ステップ116 でカウンタjが15を
越えたことが判別されると、学習補正係数KBLRC1による
補正負担分を全て学習補正係数KBLRC2側に転嫁したの
で、二重の補正が行われないように、ステップ118 〜ス
テップ123 において学習補正係数KBLRC1を全て目標収束
値Targetにリセットする処理を行う。
【0078】尚、上記ステップ118 〜ステップ123 にお
ける学習補正係数KBLRC1のリセット処理は、ステップ11
1 〜ステップ117 と同様にカウンタi,jをカウントア
ップさせて各領域を順次指示させて行うので、詳細な説
明を省略する。学習補正係数KBLRC2の修正及び学習補正
係数KBLRC1のリセットが終了すると、次のステップ124
において256 領域学習マップから、現在の運転条件に対
応する学習補正係数KBLRC2(学習補正係数KBLRC1による
補正負担分が転嫁された学習補正係数KBLRC2) を検索し
て求める。ここで、学習補正係数KBLRC2を直線補間し
て、運転条件の変化に対して学習補正係数KBLRC2が滑ら
かに変化するようにすることが好ましい。
【0079】学習補正係数KBLRC2をマップから検索して
求めると、次のステップ125 では、以下のようにして最
終的な学習補正係数KBLRC を設定する。 KBLRC ←KBLRC φ+KBLRC2−Target 学習補正係数KBLRC は基本燃料噴射量Tpに対して乗算
される補正項であり、各学習補正係数KBLRC φ,KBLRC2
は初期値を空燃比フィードバック補正係数LMDの目標
収束値Target(=1.0 )として学習されるので、全運転
条件に対応する学習補正係数KBLRC φと256 領域学習マ
ップ上の該当領域に対応する学習補正係数KBLRC2との加
算値から、目標収束値Target(=1.0 )を減算してあ
る。尚、16領域学習マップの学習補正係数KBLRC1が全て
目標収束値Targetにリセットされているので、前記最終
的な学習補正係数KBLRC の設定に学習補正係数KBLRC1を
関与させなかったが、KBLRC ←KBLRC φ+KBLRC1+KBLR
C2−2×Targetとして、学習補正係数KBLRC1を含めて学
習補正係数KBLRC を設定させても良い。
【0080】一方、16領域学習マップの各領域別に学習
補正係数KBLRC1を学習させない第1実施例では、図13及
び図14に示すフローチャートにおけるステップ111 〜ス
テップ123 の処理が省略され、ステップ124 及びステッ
プ125 のみを行い、最終的な学習補正係数KBLRC が設定
される。ここで、上記のようにして行われる空燃比学習
を整理して述べると、第2実施例では、16領域学習マッ
プと256 領域学習マップとの2つの学習マップを備え、
16領域学習マップの学習後に256 領域学習マップの学習
へと移行させ、第1実施例では、256 領域学習マップの
みを学習させる構成であるが、この256 領域学習マップ
の学習において、最初は16領域を同時に学習させる制御
を行わせ、かかる学習がある程度収束した段階で256 領
域別の学習に移行させる。
【0081】従って、第1実施例では、16領域学習マッ
プの学習を行わせてから、256 領域学習マップの学習に
移行させる第2実施例と同様な学習が、256 領域学習マ
ップのみで行えることになり、メモリ容量を節約でき
る。また、第1及び第2実施例共に、学習初期に比較的
大きな運転領域を網羅する学習が行われてから、より細
かな領域別の学習に移行するから、学習収束性と運転条
件別の学習精度とを両立させることができる。
【0082】ところで、16領域学習マップの学習収束を
待って256 領域学習マップの該当領域を学習させる場合
には、そのまま各学習マップにおける学習結果を用いる
場合、16領域学習マップにおいて領域間で学習進行レベ
ルの差により学習補正係数KBLRC1に大きな段差がある
と、かかる段差分が256 領域学習マップにおける学習補
正係数KBLRC2にも影響して、前記段差分を補償する学習
が256 領域学習マップ上でなされるために、256 領域学
習マップ上でも領域間における補正レベルの段差が生
じ、いずれの学習マップにおいても補間演算の精度が悪
化してしまう。
【0083】しかしながら、上記に説明した第2実施例
のように、16領域学習マップの学習補正係数KBLRC1によ
る補正分担分を、学習補正係数KBLRC2側に転嫁させれ
ば、16領域学習マップ上での領域間の学習補正係数KBLR
C1の段差が補償された結果を、学習補正係数KBLRC2とす
ることができるから、256 領域学習マップ上の領域間で
学習補正係数KBLRC2に大きな段差が発生することを抑止
できる。
【0084】即ち、複数の学習マップ別に学習を行わせ
る場合、それぞれの学習マップによる補正の合算として
最終的な空燃比学習補正がなされるから、最初に学習さ
れた学習マップにおける学習結果の不備が、次に学習さ
れる学習マップで補われることになり、各学習マップ毎
の学習補正係数KBLRC1,KBLRC2 には前記学習結果の不備
がそのまま領域間の補正レベル段差として表れることに
なる。ここで、2つの学習マップそれぞれに分担される
補正分を1つに纏めれば、それだけ領域間の補正レベル
段差を小さくすることができるものであり、段差を小さ
くすることは、補間演算における近似精度を向上させる
ことに繋がる。
【0085】但し、補間演算を行うか否かに関わらず、
運転条件による補正要求の違いに細かく対応した領域別
学習を行わせるためには、運転領域を細かく区分して学
習させることが必要となり、一方、学習収束性を確保す
るためにはより大きな運転領域毎に学習させる必要が生
じる。そこで、第2実施例では、16領域学習マップと25
6 領域学習マップとの2つを備え、16領域学習マップの
学習によって学習収束性を確保し、更に、256 領域学習
マップの学習で運転条件の違いに細かく対応した学習を
行わせ、更に、学習マップ上での補正レベルの段差発生
を抑止するために、16領域学習マップにおける補正負担
分を256 領域学習マップ側に転嫁して、256 領域学習マ
ップに領域別の補正要求を纏めるようにしたものであ
る。
【0086】ところが、第2実施例のように、2つの学
習マップを備える構成では、最終的な補正に16領域学習
マップが不要となって、メモリ容量の無駄になってしま
うので、第1実施例では256 領域学習マップのみで第1
実施例と同様な学習を行わせて、メモリ容量の節約を図
ったものである。上記のようにして最終設定された学習
補正係数KBLRC は、図15のフローチャートに示す燃料噴
射量設定プログラムにおいて用いられる。
【0087】図15のフローチャートに示す燃料噴射量設
定プログラムは、所定微小時間(例えば10ms) 毎に実行
されるものであり、まず、ステップ81では、エアフロー
メータ13で検出された吸入空気流量Q及びクランク角セ
ンサ14からの検出信号に基づき算出した機関回転速度N
を入力する。そして、次のステップ82では、ステップ81
で入力した吸入空気流量Qと機関回転速度Nとに基づい
て単位回転当たりの吸入空気流量Qに対応する基本燃料
噴射量Tp(←K×Q/N;Kは定数)を演算する。
【0088】次のステップ83では、前記ステップ82で演
算した基本燃料噴射量Tpに各種の補正を施して最終的
な燃料噴射量(燃料供給量)Tiを演算する。ここで、
基本燃料噴射量Tpの補正に用いられる補正値は、前記
学習補正係数KBLRC 、空燃比フィードバック補正係数L
MD、及び、水温センサ15で検出される冷却水温度Tw
に基づく基本補正係数や始動後増量補正係数等を含んで
設定される各種補正係数COEF、更に、バッテリ電圧
の変化による燃料噴射弁6の有効噴射時間の変化を補正
するための補正分Tsであり、Ti←Tp×LMD×KB
LRC ×COEF+Tsを演算して最終的な燃料噴射量T
iが所定時間毎に更新される。
【0089】コントロールユニット12は所定の燃料噴射
タイミングになると、最新に演算された燃料噴射量Ti
に相当するパルス巾の駆動パルス信号を燃料噴射弁6に
対して出力し、機関1への燃料供給量を制御する。ま
た、図16のフローチャートに示すプログラムは、前記図
4及び図5のフローチャートに示すプログラムに従って
サンプリングされる「ストレス」に基づく処理を行うプ
ログラムであり、バックグラウンドジョブ(BGJ)と
して実行される。
【0090】ステップ91では、空燃比学習補正値の不適
切度合いを示すパラメータとして、前記図4及び図5の
フローチャートに示すプログラムで設定されるストレス
と、所定値(例えば0.8)とを比較して、学習結果の不適
切度合いが所定以上であるか否かを判別する。ここで、
前記「ストレス」が所定値を越えるときには、学習が殆
ど終了しているものの、その学習結果が不適切で空燃比
ずれが発生しているものと判断し、学習補正係数KBLRC
φからの学習を再度行わせるためにステップ92へ進む。
【0091】ステップ92では、各運転領域の空燃比学習
が終了しているか否かを判別するためのフラグFφ,F
〔0,0〕〜F〔3,3〕,FF〔0,0〕〜FF〔16,1
6〕を全てゼロリセットすると共に、学習が最初からや
り直されることになるからストレスについてもこれをゼ
ロリセットする。このように、学習結果が不適切である
と判別されるときに、学習を最初からやり直すようにす
れば、例えば吸気系に穴が開くなどの事故によって空燃
比が急激に変化したときに、大きな運転領域毎の学習が
再度行われることになるから、空燃比を速やかに目標空
燃比に収束させることができる。
【0092】
【発明の効果】以上説明したように本発明によると、空
燃比学習の収束性を確保しつつ、運転条件による補正要
求の違いに細かく対応した領域別の空燃比学習を行わせ
ることができる一方、学習マップ上において区分された
運転領域間で補正レベルに大きな段差が発生することを
抑止できるので、特に、補間演算を行うことで運転条件
の変化に対してリニアに空燃比学習補正値を変化させよ
うとする場合に、精度良い補間演算が可能となり、運転
条件毎に精度の良い空燃比補正が可能となる。
【図面の簡単な説明】
【図1】本発明の構成を示すブロック図。
【図2】本発明の構成を示すブロック図。
【図3】本発明の一実施例を示すシステム概略図。
【図4】空燃比フィードバック制御を示すフローチャー
ト。
【図5】空燃比フィードバック制御を示すフローチャー
ト。
【図6】空燃比学習制御を示すフローチャート。
【図7】空燃比学習制御を示すフローチャート。
【図8】空燃比学習制御を示すフローチャート。
【図9】空燃比学習制御を示すフローチャート。
【図10】空燃比学習制御を示すフローチャート。
【図11】空燃比学習制御を示すフローチャート。
【図12】複数領域を一度に学習させる学習制御を示すフ
ローチャート。
【図13】学習マップ間で補正分を転嫁させる制御を示す
フローチャート。
【図14】学習マップ間で補正分を転嫁させる制御を示す
フローチャート。
【図15】最終的な燃料供給量の決定を示すフローチャー
ト。
【図16】再学習制御を示すフローチャート。
【図17】実施例における学習マップの様子を示す線図。
【図18】学習マップ上での隣接領域の座標状態を示す線
図。
【符号の説明】
1 機関 6 燃料噴射弁 12 コントロールユニット 13 エアフローメータ 14 クランク角センサ 15 水温センサ 16 酸素センサ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】機関に吸入される空気量に関与する運転パ
    ラメータを少なくとも含む機関運転条件を検出する機関
    運転条件検出手段と、該機関運転条件検出手段で検出さ
    れた機関運転条件に基づいて基本燃料供給量を設定する
    基本燃料供給量設定手段と、機関吸入混合気の空燃比を
    検出する空燃比検出手段と、該空燃比検出手段で検出さ
    れた空燃比と目標空燃比とを比較して実際の空燃比を前
    記目標空燃比に近づけるように前記基本燃料供給量を補
    正するための空燃比フィードバック補正値を設定する空
    燃比フィードバック補正値設定手段と、機関運転条件に
    基づき複数に区分された運転領域毎に前記基本燃料供給
    量を補正するための空燃比学習補正値を書き換え可能に
    記憶する空燃比学習補正値記憶手段と、前記空燃比フィ
    ードバック補正値の目標収束値からの偏差を学習し、前
    記空燃比学習補正値記憶手段における前記空燃比学習補
    正値を前記偏差を減少させる方向に修正して書き換える
    空燃比学習を、該当運転領域と共にこの該当運転領域に
    近い運転条件の運転領域においてそれぞれ行わせる空燃
    比学習手段と、該空燃比学習手段によって該当運転領域
    と共に空燃比学習補正値が書き換えられる運転領域の数
    を学習進行に応じて減少させる学習領域数制御手段と、
    前記基本燃料供給量,空燃比フィードバック補正値及び
    前記空燃比学習補正値記憶手段において該当運転領域に
    対応して記憶されている空燃比学習補正値に基づいて最
    終的な燃料供給量を設定する燃料供給量設定手段と、該
    燃料供給量設定手段で設定された燃料供給量に基づいて
    燃料供給手段を駆動制御する燃料供給制御手段と、を含
    んで構成されたことを特徴とする内燃機関の空燃比学習
    制御装置。
  2. 【請求項2】機関に吸入される空気量に関与する運転パ
    ラメータを少なくとも含む機関運転条件を検出する機関
    運転条件検出手段と、該機関運転条件検出手段で検出さ
    れた機関運転条件に基づいて基本燃料供給量を設定する
    基本燃料供給量設定手段と、機関吸入混合気の空燃比を
    検出する空燃比検出手段と、該空燃比検出手段で検出さ
    れた空燃比と目標空燃比とを比較して実際の空燃比を前
    記目標空燃比に近づけるように前記基本燃料供給量を補
    正するための空燃比フィードバック補正値を設定する空
    燃比フィードバック補正値設定手段と、機関運転条件に
    基づく運転領域を相互に大きさの異なる単位運転領域に
    基づきそれぞれ複数に区分してなる複数の学習マップを
    備え、前記複数の学習マップの各単位運転領域毎に前記
    基本燃料供給量を補正するための空燃比学習補正値を書
    き換え可能に記憶する空燃比学習補正値記憶手段と、前
    記空燃比フィードバック補正値の目標収束値からの偏差
    を学習し、前記空燃比学習補正値記憶手段における各学
    習マップの該当単位運転領域に対応して記憶されている
    前記空燃比学習補正値を前記偏差を減少させる方向に修
    正して書き換える空燃比学習を、より大きな単位運転領
    域を優先させて行わせる空燃比学習手段と、前記空燃比
    学習補正値記憶手段においてより大きな単位運転領域に
    基づき運転領域を区分する学習マップの単位運転領域に
    記憶されている空燃比学習補正値の目標収束値に対する
    偏差を求め、この偏差分を該偏差を求めた単位運転領域
    に含まれる別の学習マップのより小さな単位運転領域の
    空燃比学習補正値に転嫁するよう空燃比学習補正値の書
    き換え修正を行う学習結果修正手段と、前記基本燃料供
    給量,空燃比フィードバック補正値及び前記空燃比学習
    補正値記憶手段における学習マップの該当運転領域の空
    燃比学習補正値に基づいて最終的な燃料供給量を設定す
    る燃料供給量設定手段と、該燃料供給量設定手段で設定
    された燃料供給量に基づいて燃料供給手段を駆動制御す
    る燃料供給制御手段と、を含んで構成されたことを特徴
    とする内燃機関の空燃比学習制御装置。
JP2864791A 1991-02-22 1991-02-22 内燃機関の空燃比学習制御装置 Expired - Lifetime JP2627825B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPH04269347A JPH04269347A (ja) 1992-09-25
JP2627825B2 true JP2627825B2 (ja) 1997-07-09

Family

ID=12254306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2864791A Expired - Lifetime JP2627825B2 (ja) 1991-02-22 1991-02-22 内燃機関の空燃比学習制御装置

Country Status (1)

Country Link
JP (1) JP2627825B2 (ja)

Also Published As

Publication number Publication date
JPH04269347A (ja) 1992-09-25

Similar Documents

Publication Publication Date Title
JPH0826805B2 (ja) 内燃機関の空燃比学習制御装置
JP2742431B2 (ja) エンジンの空燃比制御装置
JP2969540B2 (ja) 内燃機関の空燃比制御装置
JPH03179147A (ja) 内燃機関の空燃比学習制御装置
JPH0585742B2 (ja)
US5224461A (en) Self-diagnosing apparatus and method for fuel supply control system applicable to internal combustion engine
JP2627825B2 (ja) 内燃機関の空燃比学習制御装置
JP2532205B2 (ja) エンジンの空燃比学習制御方法
JP2631579B2 (ja) 内燃機関の空燃比学習制御装置
JP2715208B2 (ja) 内燃機関の空燃比学習制御装置
JP2640566B2 (ja) 内燃機関の空燃比学習制御装置
JPH04321741A (ja) 内燃機関の空燃比学習制御装置
JP2693993B2 (ja) エンジンの空燃比制御装置
JP3067489B2 (ja) 内燃機関の燃料供給制御装置
JP2665837B2 (ja) 内燃機関の燃料供給装置における自己診断装置
JPH04241756A (ja) 内燃機関の空燃比学習制御装置
JPH07107376B2 (ja) 自動車用エンジンの学習制御方法
JPH0979072A (ja) 内燃機関の空燃比学習制御装置
JPH04237847A (ja) 内燃機関の空燃比学習制御装置
JPH04318246A (ja) 内燃機関の空燃比学習制御装置
JPH04318247A (ja) 内燃機関の空燃比学習制御装置
JPH05231215A (ja) 内燃機関の燃料供給制御装置
JPH04255544A (ja) 内燃機関の空燃比学習制御装置
JP2631580B2 (ja) 内燃機関の空燃比学習制御装置
JP2592327B2 (ja) 内燃機関の燃料供給制御装置