(57)【要約】【課題】空燃比センサの出力の誤差を精度良く学習できるようにする。【解決手段】空燃比フィードバック制御中に目標空燃比λｔｇを通常時の目標空燃比λｔｇ１　（理論空燃比付近）とリッチ制御時の目標空燃比λｔｇ２　（理論空燃比よりもリッチな空燃比）との間で変更したときに、目標空燃比λｔｇの変化量（λｔｇ１　−λｔｇ２　）と空燃比フィードバック補正係数ＦＡＦの変化量（ＦＡＦ２　−ＦＡＦ１　）との差分をリッチ制御時のセンサ誤差ΔＧとして学習する。このセンサ誤差ΔＧに基づいてリッチ制御時の空燃比センサ２４の検出空燃比を補正して最終的な検出空燃比を求める。或は、センサ誤差ΔＧに基づいてリッチ制御時の目標空燃比λｔｇ２　又は空燃比フィードバック補正係数ＦＡＦ２　を補正するようにしても良い。【選択図】　図７
2004108183.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排出ガスの空燃比を検出する空燃比センサと、この空燃比センサで検出した空燃比を目標空燃比に一致させるように空燃比フィードバック制御を行う空燃比制御手段とを備えた内燃機関の空燃比制御装置において、
前記空燃比制御手段による空燃比フィードバック制御の実行中に前記目標空燃比を変更したときに、その変更前後の目標空燃比と空燃比フィードバック補正係数とに基づいて前記空燃比センサの出力の誤差（以下「センサ誤差」という）を学習するセンサ誤差学習手段を備えていることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記センサ誤差学習手段は、前記目標空燃比を理論空燃比又はその近傍の値とそれ以外の空燃比との間で変更したときに前記センサ誤差を学習することを特徴とする請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記センサ誤差学習手段は、前記目標空燃比を所定量以上変更したときに前記センサ誤差を学習することを特徴とする請求項１又は２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記センサ誤差学習手段は、燃料カット終了後に排気浄化用の触媒に吸着されている酸素を除去するために前記目標空燃比を理論空燃比よりもリッチ方向に変更したときに前記センサ誤差を学習することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の空燃比制御装置。
【請求項５】
前記空燃比制御手段は、前記センサ誤差の学習値に基づいて前記空燃比センサで検出した空燃比を補正し、補正後の空燃比を目標空燃比に一致させるように空燃比フィードバック制御を行うことを特徴とする請求項１乃至４のいずれかに記載の内燃機関の空燃比制御装置。
【請求項６】
前記空燃比制御手段は、前記センサ誤差の学習値に基づいて前記目標空燃比又は前記空燃比フィードバック補正係数を補正して空燃比フィードバック制御を行うことを特徴とする請求項１乃至４のいずれかに記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の排出ガスの空燃比を検出する空燃比センサの出力の誤差を学習する機能を備えた内燃機関の空燃比制御装置に関するものである。
【０００２】
【従来の技術】
近年、車両に搭載される内燃機関においては、排出ガスの目標空燃比を三元触媒等の触媒の浄化ウインドである理論空燃比付近に設定し、空燃比センサで検出した排出ガスの空燃比を目標空燃比に一致させるように空燃比をフィードバック制御することで、触媒の排出ガス浄化効率を高めるようにしている。
【０００３】
また、近年の車両は、減速運転時等に燃料噴射を停止する燃料カットを行って燃費を向上させるようにしているが、この燃料カット中には、吸入空気が燃焼せずにエンジンから排気管内に排出されるため、未燃焼の排出ガス中の酸素が触媒に多量に吸着された状態となる。このため、燃料カット終了後に、排出ガスの空燃比を通常の目標空燃比である理論空燃比付近にフィードバック制御しても、燃料カット中に触媒に吸着された多量の酸素によって触媒本来の浄化能力を得ることができない。
【０００４】
そこで、近年の車両は、燃料カット終了後に、一時的に目標空燃比を理論空燃比よりもリッチ方向にシフトして、排出ガスの空燃比を理論空燃比よりもリッチに制御するリッチ制御を行うことで、触媒に吸着された酸素を排出ガス中のＨＣと反応させて除去し、触媒本来の浄化能力を回復させるようにしている。
【０００５】
一般に、図２に示すように、空燃比センサの出力特性は、理論空燃比（空気過剰率λ＝１）付近では標準出力特性に対する誤差（公差）がほぼ０になって高精度な空燃比検出が可能であるが、理論空燃比から離れるほど標準出力特性に対する検出誤差が大きくなって検出精度が低下するという特性をもっている。このため、上述した燃料カット終了後のリッチ制御時に、排出ガスの空燃比を理論空燃比よりもリッチな目標空燃比λｔｇにフィードバック制御しても、そのリッチ空燃比領域における空燃比センサの検出精度が悪いために、排出ガスの空燃比をリッチ制御時の目標空燃比λｔｇに精度良く制御することができない。その結果、排出ガスの実空燃比λｒ　がリッチ制御時の目標空燃比λｔｇよりもリッチ側にずれて、ＣＯ、ＨＣ等のリッチ成分排出量が増加したり、或は、排出ガスの実空燃比λｒ　がリッチ制御時の目標空燃比λｔｇよりもリーン側にずれてＮＯｘ排出量が増加してしまう可能性がある。
【０００６】
そこで、空燃比センサの出力の誤差を補償する技術として、例えば、特許文献１（特開平９−２０３３４３号公報）に記載されているように、燃料カット開始から所定時間が経過するまでの空燃比センサの出力の変化特性（傾き特性）を学習して、その変化特性を予め定めた基準の変化特性（傾き特性）と比較して補正データを作成し、この補正データにより空燃比センサの出力を補正するようにしたものがある。
【０００７】
また、特許文献２（特許第２５０３３８１号公報）に記載されているように、特定の運転状態（例えば低中負荷の定常運転状態）のときに空燃比センサの実限界電流を検出して、その実限界電流（検出空燃比）と予め特定の運転状態に対応して記憶されている目標限界電流（目標空燃比）との偏差を算出し、この偏差に基づいて補正係数を算出して、この補正係数により空燃比センサの出力を補正するようにしたものがある。
【０００８】
【特許文献１】
特開平９−２０３３４３号公報（第２頁等）
【特許文献２】
特許第２５０３３８１号公報（第２頁等）
【０００９】
【発明が解決しようとする課題】
特許文献１のセンサ出力補正方法では、燃料カット開始後の空燃比センサの出力の変化特性を学習するようにしているが、燃料カット開始後の空燃比センサの出力の変化特性は、空燃比センサの出力の誤差以外の要因（例えば排出ガス流量、燃料カット開始当初の触媒のリーン／リッチ成分の吸着状態や劣化度合等）によっても変化するため、燃料カット開始後の空燃比センサの出力の変化特性を測定しても、空燃比センサの出力の誤差を精度良く学習することができず、空燃比センサの出力の補正精度が悪いという欠点がある。
【００１０】
また、特許文献２のセンサ出力補正方法では、特定の運転状態のときの空燃比センサの実限界電流（検出空燃比）と予め記憶した目標限界電流（目標空燃比）との偏差に基づいて補正係数を算出するようにしているが、空燃比フィードバック制御中は、空燃比センサの実限界電流（検出空燃比）を目標限界電流（目標空燃比）に一致させるようにフィードバック制御するため、空燃比センサの実限界電流（検出空燃比）と目標限界電流（目標空燃比）との偏差が小さくなって、空燃比センサの出力の誤差を精度良く学習することができず、やはり、空燃比センサの出力の補正精度が悪いという欠点がある。
【００１１】
本発明はこれらの事情を考慮してなされたものであり、従ってその目的は、空燃比センサの出力の誤差を精度良く学習することができる内燃機関の空燃比制御装置を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の内燃機関の空燃比制御装置は、空燃比センサで検出した排出ガスの空燃比を目標空燃比に一致させるように空燃比フィードバック制御を行うシステムにおいて、空燃比フィードバック制御の実行中に目標空燃比を変更したときに、その変更前後の目標空燃比と空燃比フィードバック補正係数とに基づいて空燃比センサの出力の誤差（以下「センサ誤差」という）をセンサ誤差学習手段により学習するようにしたものである。
【００１３】
空燃比フィードバック制御中に目標空燃比を変更すると、空燃比フィードバック補正係数は、空燃比センサの検出空燃比を変更前の目標空燃比に一致させる空燃比フィードバック補正係数から変更後の目標空燃比に一致させる空燃比フィードバック補正係数に変化する。その際、センサ誤差が無ければ、目標空燃比の変化割合と空燃比フィードバック補正係数の変化割合とがほぼ同じになるが、センサ誤差（検出空燃比の誤差）が有ると、目標空燃比の変化割合に対してセンサ誤差に応じた分だけ空燃比フィードバック補正係数の変化割合が異なってくる。従って、目標空燃比を変更したときに、その変更前後の目標空燃比と空燃比フィードバック補正係数とを用いれば、目標空燃比の変化割合と空燃比フィードバック補正係数の変化割合とを求めて、両者の変化割合の差分からセンサ誤差を精度良く学習することができる。
【００１４】
本発明は、例えば、請求項５のように、センサ誤差の学習値に基づいて空燃比センサの検出空燃比を補正するようにすれば、実空燃比を精度良く検出することができて、実空燃比を目標空燃比に精度良くフィードバック制御することができる。
【００１５】
また、センサ誤差の学習値に基づいて空燃比センサの検出空燃比を補正する代わりに、請求項６のように、センサ誤差の学習値に基づいて目標空燃比又は空燃比フィードバック補正係数を補正して空燃比フィードバック制御を行うようにしても良い。このようにすれば、空燃比センサの検出空燃比の誤差分を補償するように目標空燃比又は空燃比フィードバック補正係数を補正することができ、実空燃比を本来の目標空燃比に精度良くフィードバック制御することができる。
【００１６】
一般に、図２に示すように、空燃比センサは、出力特性にばらつきがあっても、理論空燃比付近ではセンサ誤差がほぼ０になるという特徴があるため、空燃比フィードバック制御の目標空燃比が理論空燃比付近のときには、空燃比フィードバック補正係数にセンサ誤差の影響がほとんど含まれていない。
【００１７】
そこで、請求項２のように、目標空燃比を理論空燃比（又はその近傍の値）とそれ以外の空燃比との間で変更したときにセンサ誤差を学習するようにすると良い。このようにすれば、センサ誤差の影響がほとんど含まれない空燃比フィードバック補正係数と、センサ誤差の影響が含まれる空燃比フィードバック補正係数とを用いてセンサ誤差を学習することができるので、センサ誤差をより精度良く学習することができる。
【００１８】
また、目標空燃比の変更量が小さいときには、空燃比フィードバック補正係数の変化量も小さいため、目標空燃比の変更量が小さいときにセンサ誤差を学習すると、空燃比センサ以外の要因の誤差の影響を受けてセンサ誤差の学習精度が低下する傾向がある。
【００１９】
そこで、請求項３のように、目標空燃比を所定量以上変更したときに、センサ誤差を学習するようにしても良い。このようにすれば、目標空燃比の変更量がセンサ誤差の学習精度を十分に確保できる所定量以上になったときのみ、センサ誤差を学習することができ、センサ誤差の学習精度を確実に向上させることができる。
【００２０】
具体的には、請求項４のように、燃料カット終了後に、排気浄化用の触媒に吸着されている酸素を除去するために目標空燃比を理論空燃比よりもリッチ方向に変更したときに、センサ誤差を学習するようにしても良い。燃料カット終了後は、一時的に目標空燃比がリッチ方向に比較的大きく変更されるため、センサ誤差を精度良く学習することができる。
【００２１】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１乃至図８に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフロメータ１４が設けられている。このエアフロメータ１４の下流側には、ＤＣモータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００２２】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７に、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００２３】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比を検出する限界電流式の空燃比センサ２４が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する水温センサ２５や、エンジン１１のクランク軸が一定クランク角（例えば３０℃Ａ）回転する毎にパルス信号を出力するクランク角センサ２６が取り付けられている。このクランク角センサ２６の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２４】
前述した各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２７に入力される。このＥＣＵ２７は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御する。
【００２５】
以下に説明する本実施形態のプログラムでは、理論空燃比に対する実空燃比の比率である空気過剰率λを「空燃比」の情報として用いている。
【００２６】
ＥＣＵ２７は、図３に示す燃料噴射量算出ルーチンを実行することで、空燃比Ｆ／Ｂ制御（「Ｆ／Ｂ」は「フィードバック」の略記）の実行条件の成立中に、空燃比Ｆ／Ｂ制御を実行する。この空燃比Ｆ／Ｂ制御中は、一般に排出ガスの目標空燃比λｔｇを三元触媒等の触媒２３の浄化ウインドである理論空燃比付近に設定し、空燃比センサ２４で検出した排出ガスの検出空燃比λｓ　を目標空燃比λｔｇに一致させるように空燃比Ｆ／Ｂ補正係数ＦＡＦを算出し、この空燃比Ｆ／Ｂ補正係数ＦＡＦを用いて燃料噴射量ＴＡＵを算出する。
【００２７】
更に、減速運転時等の燃料カット実行条件の成立中には、燃料噴射を停止する燃料カットを実行し、この燃料カット終了後の空燃比Ｆ／Ｂ制御時に、一時的に目標空燃比λｔｇを理論空燃比よりもリッチ方向にシフトして、空燃比センサ２４の検出空燃比λｓ　を理論空燃比よりもリッチな目標空燃比にＦ／Ｂ制御するリッチ制御を行うことで、燃料カット中に触媒２３に吸着された酸素を排出ガス中のＨＣと反応させて除去し、触媒２３の浄化能力を回復させる。
【００２８】
一般に、図２に示すように、空燃比センサ２４の出力特性は、理論空燃比（λ＝１．０）付近では標準出力特性に対する誤差（公差）がほぼ０になって高精度な空燃比検出が可能であるが、理論空燃比から離れるほど標準出力特性に対する検出誤差が大きくなって検出精度が低下するという特性をもっている。上述した燃料カット終了後のリッチ制御時には、排出ガスの空燃比を理論空燃比よりもリッチな目標空燃比λｔｇにＦ／Ｂ制御するため、空燃比センサ２４の検出精度が低下して空燃比Ｆ／Ｂ制御の精度が低下する傾向があり、排出ガスの実空燃比λｒ　がリッチ制御時の目標空燃比λｔｇからずれてしまう可能性がある。
【００２９】
そこで、ＥＣＵ２７は、図４乃至図６に示すセンサ誤差及び補正係数算出ルーチンを実行することで、空燃比Ａ／Ｆ制御実行中に目標空燃比λｔｇを変更する毎に、その変更前後の目標空燃比λｔｇ１　，λｔｇ２　と空燃比Ｆ／Ｂ補正係数ＦＡＦ１　，ＦＡＦ２　とに基づいて空燃比センサ２４の出力の誤差（以下「センサ誤差」という）ΔＧを算出すると共に、このセンサ誤差ΔＧに基づいて空燃比センサ２４の検出空燃比λｓ　を補正するための補正係数Ｋを算出する。
【００３０】
ここで、空燃比センサ２４のセンサ誤差ΔＧの算出方法及び空燃比センサ２４の検出空燃比λｓ　の補正方法について図７を用いて説明する。
空燃比Ｆ／Ｂ制御中に、目標空燃比λｔｇをλｔｇ１　からλｔｇ２　に変更すると、空燃比Ｆ／Ｂ補正係数ＦＡＦは、空燃比センサ２４の検出空燃比λｓ　を目標空燃比λｔｇ１　に一致させる空燃比Ｆ／Ｂ補正係数ＦＡＦ１　から目標空燃比λｔｇ２　に一致させる空燃比Ｆ／Ｂ補正係数ＦＡＦ２　に変化する。その際、センサ誤差ΔＧ（検出空燃比λｓ　の誤差）が無ければ、目標空燃比の変化量（λｔｇ１　−λｔｇ２　）と空燃比Ｆ／Ｂ補正係数の変化量（ＦＡＦ２　−ＦＡＦ１　）とがほぼ同じになる。しかし、センサ誤差ΔＧが有ると、目標空燃比の変化量（λｔｇ１　−λｔｇ２　）に対してセンサ誤差ΔＧに応じた分だけ空燃比Ｆ／Ｂ補正係数の変化量（ＦＡＦ２　−ＦＡＦ１　）が異なってくる。
【００３１】
そこで、本実施形態（１）では、目標空燃比の変化量（λｔｇ１　−λｔｇ２　）と空燃比Ｆ／Ｂ補正係数の変化量（ＦＡＦ２　−ＦＡＦ１　）との誤差をセンサ誤差ΔＧとして求める。
ΔＧ＝（λｔｇ１　−λｔｇ２　）−（ＦＡＦ２　−ＦＡＦ１　）
【００３２】
また、目標空燃比λｔｇをλｔｇ１　からλｔｇ２　に変更した場合のセンサ誤差ΔＧに応じて検出空燃比λｓ　の変化量（λｓ２−λｓ１）と実空燃比λｒ　の変化量（λｒ２−λｒ１）との関係が変化するので、センサ誤差ΔＧに応じた補正係数Ｋを用いて、検出空燃比λｓ　の変化量（λｓ２−λｓ１）と実空燃比λｒ　の変化量（λｒ２−λｒ１）との関係を次式のように表すことができる。
（λｒ２−λｒ１）＝Ｋ×（λｓ２−λｓ１）　　……（Ａ）
【００３３】
ここで、目標空燃比λｔｇ１　が理論空燃比（λ＝１．０）の場合は、図２に示す空燃比センサ２４の出力特性から、センサ誤差ΔＧ＝０となるため、検出空燃比λｓ１＝１．０、実空燃比λｒ１＝１．０となる。この関係から、目標空燃比λｔｇ１　が理論空燃比（λ＝１．０）の場合は、上記（Ａ）式を次式のように書き換えることができる。
（λｒ２−１．０）＝Ｋ×（λｓ２−１．０）　　……（Ｂ）
【００３４】
更に、検出空燃比λｓ２を補正前の検出空燃比λｓ０とし、実空燃比λｒ２を補正後の検出空燃比λｓ　とすると、上記（Ｂ）式を次式のにように書き換えることができる。
λｓ　＝Ｋ×（λｓ０−１．０）＋１．０　　　……（Ｃ）
本実施形態（１）では、上記（Ｃ）式を用いて空燃比センサ２４の検出空燃比λｓ０を補正して最終的な検出空燃比λｓ　を求める。
【００３５】
以下、ＥＣＵ２７が実行する図３に示す燃料噴射量算出ルーチンと、図４乃至図６に示すセンサ誤差及び補正係数算出ルーチンの処理内容を説明する。
【００３６】
［燃料噴射量算出］
図３に示す燃料噴射量算出ルーチンは、例えば燃料噴射タイミング毎に実行され、特許請求の範囲でいう空燃比制御手段としての役割を果たす。
本ルーチンが起動されると、まず、ステップ１０１で、燃料カット実行フラグＸＦＣが「０」にリセットされているか否かを判定する。この燃料カット実行フラグＸＦＣは、減速運転時であること等の燃料カット実行条件が成立しているときに「１」にセットされる。
【００３７】
このステップ１０１で、燃料カット実行フラグＸＦＣが「１」にセットされている判定されれば、ステップ１０２に進み、燃料噴射量ＴＡＵを「０」に設定して、燃料カットを実行する。
【００３８】
一方、ステップ１０１で、燃料カット実行フラグＸＦＣが「０」にリセットされていると判定された場合には、ステップ１０３に進み、基本燃料噴射量Ｔｐのマップ（図示せず）を検索して、現在の運転状態（例えばエンジン回転速度ＮＥと吸気管圧力ＰＭ）に応じた基本燃料噴射量Ｔｐを算出する。
【００３９】
この後、ステップ１０４に進み、空燃比Ｆ／Ｂ制御実行フラグＸＦＢが「１」にセットされているか否かを判定する。この空燃比Ｆ／Ｂ制御実行フラグＸＦＢは、空燃比Ｆ／Ｂ制御実行条件が成立しているときに「１」にセットされる。空燃比Ｆ／Ｂ制御実行条件は、例えば、エンジン冷却水温が所定温度以上であること、エンジン運転状態が高回転・高負荷領域ではないこと等であり、これらの条件を全て満たしたときに空燃比Ｆ／Ｂ制御実行条件が成立する。
【００４０】
このステップ１０４で、空燃比Ｆ／Ｂ制御実行フラグＸＦＢが「０」にリセットされていると判定されれば、ステップ１０９に進み、空燃比Ｆ／Ｂ補正係数ＦＡＦを「１．０」に設定した後、ステップ１１０に進む。この場合は、空燃比のＦ／Ｂ制御は行われない。
【００４１】
一方、ステップ１０４で、空燃比Ｆ／Ｂ制御実行フラグＸＦＢが「１」にセットされていると判定された場合には、ステップ１０５に進み、リッチ制御実行フラグＸＲＩＣＨが「１」にセットされているか否かを判定する。このリッチ制御実行フラグＸＲＩＣＨは、燃料カット終了後に所定期間だけ「１」にセットされる。
【００４２】
このステップ１０５で、リッチ制御実行フラグＸＲＩＣＨが「０」にリセットされていると判定されれば、ステップ１０６に進み、目標空燃比λｔｇを通常時の目標空燃比λｔｇ１　に設定する。この通常時の目標空燃比λｔｇ１　は、理論空燃比又はその近傍の値（例えばλ＝１．０）に設定されている。
【００４３】
一方、ステップ１０５で、リッチ制御実行フラグＸＲＩＣＨが「１」にセットされている判定され場合には、ステップ１０７に進み、目標空燃比λｔｇをリッチ制御時の目標空燃比λｔｇ２　に設定する。このリッチ制御時の目標空燃比λｔｇ２　は、理論空燃比よりもリッチ方向にシフトした値（例えばλ＝０．９６）に設定される。
【００４４】
この後、ステップ１０８に進み、空燃比センサ２４で検出した排出ガスの検出空燃比λｓ　を目標空燃比λｔｇに一致させるように空燃比Ｆ／Ｂ補正係数ＦＡＦを算出した後、ステップ１１０に進み、冷却水温、電気負荷等に応じた他の補正係数ＦＡＬＬを算出する。
【００４５】
この後、ステップ１１１に進み、基本燃料噴射量Ｔｐ、空燃比Ｆ／Ｂ補正係数ＦＡＦ及び他の補正係数ＦＡＬＬを用いて燃料噴射量ＴＡＵを次式により算出する。
ＴＡＵ＝Ｔｐ×ＦＡＦ×ＦＡＬＬ
【００４６】
［センサ誤差及び補正係数算出］
図４乃至図６に示すセンサ誤差及び補正係数算出ルーチンは、例えば燃料噴射タイミング毎に実行され、特許請求の範囲でいうセンサ誤差学習手段としての役割を果たす。
【００４７】
本ルーチンが起動されると、まず、ステップ２０１で、空燃比Ｆ／Ｂ制御を実行中であるか否かを判定する。その結果、空燃比Ｆ／Ｂ制御を実行中でないと判定された場合には、図５のステップ２０４に進み、通常時（目標空燃比λｔｇ＝　１．０）の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ１ａｖ　の演算時間をカウントするカウンタＣ１を所定値（例えば２００）にセットした後、ステップ２０５に進み、通常時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ１ａｖ　を「０」にリセットする。
【００４８】
この後、ステップ２０６に進み、目標空燃比シフト時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ２ａｖ　の演算時間をカウントするカウンタＣ２を初期値（例えば２００）にリセットした後、ステップ２０７に進み、目標空燃比シフト時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ２ａｖ　を「０」にリセットして本ルーチンを終了する。
【００４９】
一方、図４のステップ２０１で、空燃比Ｆ／Ｂ制御を実行中であると判定された場合には、ステップ２０２に進み、目標空燃比λｔｇが理論空燃比付近（例えば０．９８〜１．０１の範囲内）であるか否かを判定する。
【００５０】
目標空燃比λｔｇが通常時の目標空燃比λｔｇ１　（例えば１．０）に設定されているときには、ステップ２０２で、「Ｙｅｓ」と判定されて、ステップ２０３に進み、目標空燃比シフト済みフラグＸｃｈｇ　が「１」にセットされている否かを判定する。その結果、目標空燃比シフト済みフラグＸｃｈｇ　が、まだ「１」にセットされていないと判定されれば、図５のステップ２０４に進む。
【００５１】
その後、目標空燃比λｔｇが目標空燃比シフト時（例えばリッチ制御時）の目標空燃比λｔｇ２　（例えば０．９６）にシフトされたときに、ステップ２０２で、「Ｎｏ」と判定されて、ステップ２０８に進み、目標空燃比シフト時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ２ａｖ　の演算時間をカウントするカウンタＣ２のカウント値を「１」だけデクリメントした後、ステップ２０９に進み、カウンタＣ２のカウント値が０以下になったか否かを判定する。
【００５２】
その結果、カウンタＣ２が０以下になっていないと判定されれば、ステップ２１０に進み、目標空燃比シフト時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ２ａｖ　（なまし値）を次式により算出する。
ＦＡＦ２ａｖ（ｉ）＝１／３２×ＦＡＦ＋３１／３２×ＦＡＦ２ａｖ（ｉ−１）
ここで、ＦＡＦ２ａｖ（ｉ）は今回の空燃比Ｆ／Ｂ補正係数平均値、ＦＡＦ２ａｖ（ｉ−１）は前回の空燃比Ｆ／Ｂ補正係数平均値、ＦＡＦは現在の空燃比Ｆ／Ｂ補正係数である。
【００５３】
その後、ステップ２０９で、カウンタＣ２が０以下になったと判定されたときに、ステップ２１１に進み、目標空燃比シフト済みフラグＸｃｈｇ　を「１」にセットする。
【００５４】
その後、リッチ制御が終了して目標空燃比λｔｇが通常時の目標空燃比λｔｇ１　（例えば１．０）に戻されたときに、図４のステップ２０２とステップ２０３で、共に「Ｙｅｓ」と判定されて、ステップ２１２に進み、通常時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ１ａｖ　の演算時間をカウントするカウンタＣ１のカウント値を「１」だけデクリメントした後、ステップ２１３に進み、カウンタＣ１のカウント値が０以下になったか否かを判定する。
【００５５】
その結果、カウンタＣ１が０以下になっていないと判定されれば、ステップ２１４に進み、通常時の空燃比Ｆ／Ｂ補正係数平均値ＦＡＦ１ａｖ　（なまし値）を次式により算出する。
ＦＡＦ１ａｖ（ｉ）＝１／３２×（ＦＡＦ−１．０＋λｔｇ）＋３１／３２×ＦＡＦ１ａｖ（ｉ−１）
ここで、ＦＡＦ１ａｖ（ｉ）は今回の空燃比Ｆ／Ｂ補正係数平均値、ＦＡＦ１ａｖ（ｉ−１）は前回の空燃比Ｆ／Ｂ補正係数平均値、ＦＡＦは現在の空燃比Ｆ／Ｂ補正係数である。
【００５６】
その後、ステップ２１３で、カウンタＣ１が０以下になったと判定されたときに、図６のステップ２１５に進み、目標空燃比シフト済みフラグＸｃｈｇ　を「０」にリセットする。
【００５７】
この後、ステップ２１６に進み、目標空燃比の変化量（λｔｇ１　−λｔｇ２　）と空燃比Ｆ／Ｂ補正係数平均値の変化量（ＦＡＦ２ａｖ　−ＦＡＦ１ａｖ　）との差分をセンサ誤差ΔＧとして算出し、これをセンサ誤差ΔＧの学習値としてＥＣＵ２７のメモリに記憶する。
ΔＧ＝（λｔｇ１　−λｔｇ２　）−（ＦＡＦ２ａｖ　−ＦＡＦ１ａｖ　）
【００５８】
この後、ステップ２１７に進み、図８に示す補正係数Ｋのマップを検索して、センサ誤差ΔＧに応じた補正係数Ｋを算出する。
ＥＣＵ２７は、この補正係数Ｋを用いて目標空燃比シフト時の空燃比センサ２４の検出空燃比λｓ０を次式により補正して最終的な検出空燃比λｓ　を求める。
λｓ　＝Ｋ×（λｓ０−１．０）＋１．０
【００５９】
以上説明した本実施形態（１）では、空燃比Ａ／Ｆ制御の実行中に目標空燃比λｔｇを変更したときに、その変更前後の目標空燃比λｔｇと空燃比Ｆ／Ｂ補正係数ＦＡＦとに基づいてセンサ誤差ΔＧを学習し、そのセンサ誤差ΔＧに基づいて算出した補正係数Ｋを用いて空燃比センサ２４の検出空燃比λｓ０を補正するので、センサ誤差ΔＧが大きくなるリッチ制御時の空燃比領域であっても、空燃比センサ２４の空燃比検出精度を向上させることができ、空燃比制御精度の向上、排気エミッションの低減を実現することができる。
【００６０】
また、本実施形態（１）では、目標空燃比λｔｇを理論空燃比付近の値λｔｇ１　（例えば１．０）と、理論空燃比よりもリッチ方向にシフトした値λｔｇ２　（例えば０．９６）との間で変更したときに、センサ誤差ΔＧの学習を実行するようにしたので、センサ誤差の影響がほとんど含まれない空燃比Ｆ／Ｂ補正係数ＦＡＦ１　と、センサ誤差の影響が含まれた空燃比Ｆ／Ｂ補正係数ＦＡＦ２　とを用いてセンサ誤差ΔＧを学習することができ、センサ誤差ΔＧを精度良く学習することができる利点がある。
【００６１】
尚、図４乃至図６のセンサ誤差及び補正係数算出ルーチンで行われるセンサ誤差ΔＧの学習タイミングは、燃料カット終了後のリッチ制御時のみではなく、リッチ制御以外で目標空燃比をリッチ方向又はリーン方向に変更したときでも、センサ誤差ΔＧの学習が行われるようになっている。この場合、目標空燃比λｔｇを所定量以上変更したときのみに、センサ誤差ΔＧの学習を行うようにすると良い。このようにすれば、目標空燃比λｔｇの変更量がセンサ誤差ΔＧの学習精度を十分に確保できる所定量以上になったときのみ、センサ誤差ΔＧを学習することができ、センサ誤差の学習精度を確実に向上させることができる。
但し、本発明は、燃料カット終了後のリッチ制御時のみにセンサ誤差の学習を行うようにしても良いことは言うまでもない。
【００６２】
《実施形態（２）》
前記実施形態（１）では、リッチ制御時のセンサ誤差ΔＧに基づいてリッチ制御時の空燃比センサ２４の検出空燃比λｓ０を補正するようにしたが、図９に示す本発明の実施形態（２）では、リッチ制御時のセンサ誤差ΔＧに基づいてリッチ制御時の目標空燃比シフト量Δλｔｇ（＝λｔｇ２　−λｔｇ１　）を補正してリッチ制御時の目標空燃比λｔｇ２　を補正するようにしている。或は、リッチ制御時のセンサ誤差ΔＧに基づいてリッチ制御時の空燃比Ｆ／Ｂ補正係数ＦＡＦ２　を補正するようにしても良い。これらいずれの場合も、リッチ制御時のセンサ誤差ΔＧを補償するようにリッチ制御時の目標空燃比λｔｇ２　又は空燃比Ｆ／Ｂ補正係数ＦＡＦ２　を補正することができ、実空燃比を本来の目標空燃比に精度良く制御することができる。
【００６３】
尚、上記各実施形態（１）、（２）では、目標空燃比λｔｇをリッチ制御時の目標空燃比λｔｇ２　に制御している状態から通常時の目標空燃比λｔｇ１　に変更したとき、つまり目標空燃比λｔｇをリッチから理論空燃比に変更したときに、センサ誤差ΔＧを学習するようにしたが、これとは反対に、目標空燃比λｔｇを通常時の目標空燃比λｔｇ１　に制御している状態からリッチ制御時の目標空燃比λｔｇ２　に変更したとき、つまり目標空燃比λｔｇを理論空燃比からリッチに変更したときに、センサ誤差ΔＧを学習するようにしても良い。
【００６４】
その他、本発明は、リーンバーンエンジンや筒内噴射エンジンに適用して、空燃比Ａ／Ｆ制御中に目標空燃比を切り換える毎にセンサ誤差を学習するようにしても良い等、種々変更して実施できる。
【図面の簡単な説明】
【図１】本発明の実施形態（１）におけるエンジン制御システム全体の概略構成図
【図２】空燃比センサの出力特性図
【図３】燃料噴射量算出ルーチンの処理の流れを示すフローチャート
【図４】センサ誤差及び補正係数算出ルーチンの処理の流れを示すフローチャート（その１）
【図５】センサ誤差及び補正係数算出ルーチンの処理の流れを示すフローチャート（その２）
【図６】センサ誤差及び補正係数算出ルーチンの処理の流れを示すフローチャート（その３）
【図７】センサ誤差ΔＧの算出方法を説明するためのタイムチャート
【図８】補正係数Ｋのマップを概念的に示す図
【図９】実施形態（２）を説明するためのタイムチャート
【符号の説明】
１１…エンジン（内燃機関）、１２…吸気管、１５…スロットルバルブ、２０…燃料噴射弁、２１…点火プラグ、２２…排気管、２３…触媒、２４…空燃比センサ、２７…ＥＣＵ（空燃比制御手段，センサ誤差学習手段）。
【図１】
2004108183.tif 000003
【図２】
2004108183.tif 000004
【図３】
2004108183.tif 000005
【図４】
2004108183.tif 000006
【図５】
2004108183.tif 000007
【図６】
2004108183.tif 000008
【図７】
2004108183.tif 000009
【図８】
2004108183.tif 000010
【図９】
2004108183.tif 000011