(57)【特許請求の範囲】
【請求項１】
内燃機関の排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサと、
前記排出ガスセンサの出力に基づいて空燃比を目標空燃比にフィードバック補正する空燃比フィードバック制御手段と、
前記空燃比フィードバック制御手段による空燃比フィードバック補正量の変動幅が安定判定値以内のときに当該空燃比フィードバック補正量を学習する学習手段と、
前記空燃比フィードバック補正量のずれ量に応じて前記学習手段による学習速度を変化させるように前記空燃比フィードバック補正量のずれ量に応じて前記安定判定値を可変設定する安定判定手段と
を備え、
前記学習手段は、前記空燃比フィードバック補正量の変動幅が前記安定判定値以内であるか否かを判定する際に、前記空燃比フィードバック補正量の変動幅として、前記空燃比フィードバック補正量のなまし値と最新の空燃比フィードバック補正量との差を算出し、  前記安定判定手段は、前記空燃比フィードバック補正量のずれ量として、前記空燃比フィードバック補正量のなまし値と基準値「１」との差分の絶対値を算出することを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記安定判定手段は、前記空燃比フィードバック補正量のずれ量が大きくなるほど前記安定判定値を大きい値に設定することを特徴とする請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記学習手段で学習した空燃比フィードバック補正量の学習値を異常判定値と比較して空燃比制御系の異常診断を行う異常診断手段を備えていることを特徴とする請求項１又は２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記学習手段で学習した空燃比フィードバック補正量の学習値は、内燃機関の停止中も車載バッテリをバックアップ電源として記憶データを保持する記憶手段に記憶され、
前記安定判定手段は、前記車載バッテリの脱着等による前記バックアップ電源の遮断により前記記憶手段の記憶データが消された場合に内燃機関の始動時から前記安定判定値を大きい値に設定し、所定期間経過後に前記空燃比フィードバック補正量のずれ量に応じて前記安定判定値を可変設定することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空燃比フィードバック補正量を学習する機能を備えた内燃機関の空燃比制御装置に関する発明である。
【背景技術】
【０００２】
近年の電子制御化された内燃機関の制御システムでは、排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサ（空燃比センサ又は酸素センサ）の出力に基づいて排出ガスの空燃比を目標空燃比に一致させるように空燃比（燃料噴射量）をフィードバック補正すると共に、この空燃比フィードバック補正量を学習して、その学習値を、内燃機関の停止中も車載バッテリをバックアップ電源として記憶データを保持するバックアップＲＡＭ等の書き換え可能な不揮発性メモリに記憶しておき、この学習値を用いて空燃比（燃料噴射量）の制御精度を向上させるようにしている（特許文献１参照）。
【０００３】
ところで、空燃比フィードバック補正量の学習値を記憶するメモリのバックアップ電源が車載バッテリの脱着等により遮断されると、いわゆるバッテリクリアによりメモリの学習データが消えてしまうため、バッテリクリア後の始動時には、空燃比フィードバック補正量の学習を最初（初期値）からやり直す必要がある。この学習が完了するまでの期間は、空燃比制御精度が低下するため、バッテリクリア後の学習時間をできるだけ短くすることが望ましい。
【０００４】
そこで、特許文献２（特開昭６１−２８７３９号公報）に記載されているように、バッテリクリア後は、始動から所定期間が経過するまで学習値の更新速度（学習速度）を速くするようにしたものがある。
この特許文献２のものは、学習速度を速くする手段として、学習１回当たりの学習値の更新量を大きくするようにしている。
【０００５】
また、図２に示すように、空燃比フィードバック補正量の変動幅が安定判定値以内のときに当該空燃比フィードバック補正量を学習するようにしたシステムもある。このシステムでは、バッテリクリア後は、始動から空燃比フィードバック補正量の学習に要する所定期間が経過するまで、安定判定値を大きくして学習条件を緩和することで、空燃比フィードバック補正量を学習しやすくして学習速度を速くするようにしている。
【特許文献１】特開２０００−１０４６００号公報
【特許文献２】特開昭６１−２８７３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、バッテリクリア後でも、始動から所定期間経過後（学習完了後）は、誤学習防止のために空燃比フィードバック補正量の学習速度が通常のゆっくりした速度に切り換えられる。この後、空燃比制御系（例えば吸気系、燃料系等）に異常が発生すると、図２に示すように、空燃比フィードバック補正量が急変することがある。図２の例は、吸気管に接続されたエバポパージシステムの配管が外れたときの挙動を示している。
【０００７】
しかし、従来のものは、学習完了後は、空燃比制御系の異常が発生して空燃比フィードバック補正量が急変しても、空燃比フィードバック補正量の学習速度が通常のゆっくりした速度に維持されるため、空燃比フィードバック補正量の学習完了に要する時間（空燃比フィードバック補正量の急変後に学習値がほぼ安定した値に収束するのに要する時間）が長くかかるという問題があった。
【０００８】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、空燃比フィードバック補正量の学習完了後に何等かの原因で空燃比フィードバック補正量が急変したときに、急変後の空燃比フィードバック補正量を速やかに学習することができ、しかも、空燃比フィードバック補正量の挙動が比較的安定している通常時には、空燃比フィードバック補正量の誤学習を防止することができる内燃機関の空燃比制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に係る発明は、内燃機関の排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサと、前記排出ガスセンサの出力に基づいて空燃比を目標空燃比にフィードバック補正する空燃比フィードバック制御手段と、前記空燃比フィードバック制御手段による空燃比フィードバック補正量の変動幅が安定判定値以内のときに当該空燃比フィードバック補正量（検出空燃比と目標空燃比とのずれ量）を学習する学習手段と、前記空燃比フィードバック補正量のずれ量に応じて前記学習手段による学習速度を変化させるように前記空燃比フィードバック補正量のずれ量に応じて前記安定判定値を可変設定する安定判定手段とを備え、前記学習手段は、前記空燃比フィードバック補正量の変動幅が前記安定判定値以内であるか否かを判定する際に、前記空燃比フィードバック補正量の変動幅として、前記空燃比フィードバック補正量のなまし値と最新の空燃比フィードバック補正量との差を算出し、前記安定判定手段は、前記空燃比フィードバック補正量のずれ量として、前記空燃比フィードバック補正量のなまし値と基準値「１」との差分の絶対値を算出するようにしたものである。
【００１０】
この構成では、空燃比フィードバック補正量のずれ量に応じて安定判定値を可変設定するため、空燃比フィードバック補正量の学習完了後に何等かの原因で空燃比フィードバック補正量が急変したときに、それに応じて安定判定値を増大させて学習条件を緩和し、空燃比フィードバック補正量を学習しやすくして学習速度（学習値の更新速度）を速くするという制御が可能となり、急変後の空燃比フィードバック補正量を速やかに学習することができる。しかも、空燃比フィードバック補正量の挙動が比較的安定している通常時には、安定判定値を小さくして誤学習を防止することができ、空燃比フィードバック補正量の急変時の学習時間の短縮と通常時の誤学習防止とを両立させることができる。
また、本発明では、学習手段により空燃比フィードバック補正量の変動幅が安定判定値以内であるか否かを判定する際に、空燃比フィードバック補正量の変動幅として、空燃比フィードバック補正量のなまし値と最新の空燃比フィードバック補正量との差を算出し、前記安定判定手段は、前記空燃比フィードバック補正量のずれ量として、前記空燃比フィードバック補正量のなまし値と基準値「１」との差分の絶対値を算出するようにしている。このように、空燃比フィードバック補正量のなまし値を用いれば、空燃比フィードバック補正量の変動幅やずれ量を精度良く評価することができる。
【００１１】
この場合、請求項２のように、空燃比フィードバック補正量のずれ量が大きくなるほど安定判定値を大きい値に設定するようにすれば良い。このようにすれば、空燃比フィードバック補正量の急変量が大きくなるほど、安定判定値を大きい値に設定して空燃比フィードバック補正量の学習速度を速くすることができ、空燃比フィードバック補正量の急変量に応じた適切な学習速度とすることができる。
【００１３】
ところで、従来のものでは、空燃比制御系の異常が発生して空燃比フィードバック補正量が急変したときに、空燃比フィードバック補正量の学習に要する時間が長くかかるため、空燃比フィードバック補正量の学習値を異常判定値と比較して空燃比制御系の異常診断を行うシステムでは、空燃比制御系の異常発生時にその異常を検出するまでに時間がかかるという問題があった。この対策として、空燃比フィードバック補正量とその学習値の両方（例えば両者の合計値）を用いて空燃比制御系の異常診断を行うようにしたものがあるが、空燃比フィードバック補正量は、学習値と比較して大きく変動しやすいため、異常診断の診断精度を低下させる要因となる。
【００１４】
これに対して、本発明は、前述したように、空燃比制御系の異常発生時に空燃比フィードバック補正量の学習に要する時間を従来より短縮することができるため、請求項３のように、空燃比フィードバック補正量の学習値を異常判定値と比較して空燃比制御系の異常診断を行うようにすれば、空燃比制御系の異常検出時間の短縮と診断精度確保とを両立させることができる。
【００１５】
但し、本発明は、空燃比制御系の異常診断パラメータとして、空燃比フィードバック補正量とその学習値の両方（例えば両者の合計値）を用いたり、或は、空燃比と目標空燃比との偏差も考慮するようにしても良い等、空燃比制御系の異常診断方法は適宜変更しても良いことは言うまでもない。
【００１６】
ところで、空燃比フィードバック補正量の学習値は、内燃機関の停止中も車載バッテリをバックアップ電源として記憶データを保持する記憶手段（バックアップＲＡＭ等）に記憶されるため、車載バッテリの脱着等により記憶手段のバックアップ電源が遮断されると、いわゆるバッテリクリアにより記憶手段の記憶データが消えてしまい、空燃比フィードバック補正量の学習を最初（初期値）からやり直す必要がある。
【００１７】
本発明は、バッテリクリア時にも対応可能であり、バッテリクリア時に、始動当初から空燃比フィードバック補正量のずれ量に応じて安定判定値を可変設定するようにしても良い。バッテリクリア時には、空燃比フィードバック補正量のずれ量が大きくなるため、空燃比フィードバック補正量のずれ量に応じて安定判定値を可変設定すれば、バッテリクリア時に安定判定値を大きい値に設定して空燃比フィードバック補正量を速やかに学習することができる。
【００１８】
或は、請求項４のように、バッテリクリア時に、内燃機関の始動時から安定判定値を大きい値に設定し、所定期間経過後に空燃比フィードバック補正量のずれ量に応じて安定判定値を可変設定するようにしても良い。このようにすれば、バッテリクリア時に、空燃比フィードバック補正量の学習完了に要する所定期間が経過するまで安定判定値を大きい値に維持することができるので、バッテリクリア時の学習時間を更に短くすることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態を具体化した３つの実施例１〜３を説明する。
【実施例１】
【００２０】
本発明の実施例１を図１乃至図６に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ１５によって開度調節されるスロットルバルブ１６と、このスロットルバルブ１６の開度（スロットル開度）を検出するスロットル開度センサ１７とが設けられている。
【００２１】
更に、スロットルバルブ１６の下流側には、サージタンク１８が設けられ、このサージタンク１８には、吸気管圧力を検出する吸気管圧力センサ１９が設けられている。また、サージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド２０が設けられ、各気筒の吸気マニホールド２０の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２１が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２２が取り付けられ、各点火プラグ２２の火花放電によって筒内の混合気に着火される。
【００２２】
一方、エンジン１１の各気筒の排出ガスが合流して流れる排気管２３（排気通路）には、排出ガスの空燃比を検出する空燃比センサ２４（排出ガスセンサ）が設けられ、この空燃比センサ２４の下流側に、排出ガスを浄化する三元触媒等の触媒２５が設けられている。尚、空燃比センサ２４の代わりに、排出ガスのリッチ／リーンを検出する酸素センサを設けても良い。
【００２３】
また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２６や、エンジン１１のクランク軸２７が所定クランク角回転する毎にパルス信号を出力するクランク角センサ２８が取り付けられている。このクランク角センサ２８の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２４】
これら各種センサの出力は、制御回路（以下「ＥＣＵ」と表記する）２９に入力される。このＥＣＵ２９は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２１の燃料噴射量や点火プラグ２２の点火時期を制御する。
【００２５】
その際、ＥＣＵ２９は、空燃比センサ２４の出力に基づいて触媒２５の上流側の排出ガスの空燃比を目標空燃比に一致させるように各気筒に供給する空燃比（燃料噴射量等）をフィードバック補正することで、触媒２５の上流側の排出ガスの空燃比が触媒２５の浄化ウインドの範囲内になるように制御して、触媒２５の排出ガス浄化効率を高めるようにしている。このＥＣＵ２９の機能が特許請求の範囲でいう空燃比フィードバック制御手段に相当する。以下の説明では、「フィードバック」を「Ｆ／Ｂ」と表記する。
【００２６】
更に、ＥＣＵ２９は、空燃比Ｆ／Ｂ制御中に検出空燃比と目標空燃比とのずれ量を補正するための空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅が安定判定値Ｋst以内となる状態が所定時間継続したときに当該空燃比Ｆ／Ｂ補正量ＦＡＦを学習して、その学習値を、エンジン停止中（イグニッションスイッチのオフ中）も車載バッテリをバックアップ電源として記憶データを保持するバックアップＲＡＭ３０等の書き換え可能な不揮発性メモリ（記憶手段）に記憶しておき、この学習値を用いて空燃比（燃料噴射量）の制御精度を向上させるようにしている。
【００２７】
本実施例１では、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅は、空燃比Ｆ／Ｂ補正量ＦＡＦとそのなまし値ＦＡＦave との差分の絶対値Ａｂｓ（ＦＡＦ−ＦＡＦave ）で算出される。空燃比Ｆ／Ｂ補正量ＦＡＦのなまし値ＦＡＦave は、なまし係数α（０＜α＜１）を用いて次式により算出すれば良い。
ＦＡＦave(i)＝ＦＡＦave(i-1)×（１−α）＋ＦＡＦ×α
【００２８】
ここで、ＦＡＦave(i)は今回の空燃比Ｆ／Ｂ補正量なまし値、ＦＡＦave(i-1)は前回の空燃比Ｆ／Ｂ補正量なまし値である。
【００２９】
更に、安定判定値Ｋstは、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量に応じて可変設定される。本実施例１では、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量は、空燃比Ｆ／Ｂ補正量なまし値ＦＡＦave と基準値「１」との差分の絶対値Ａｂｓ（ＦＡＦave −１）で算出される。そして、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が大きくなるほど、安定判定値Ｋstが大きい値に設定されるようになっている。
【００３０】
但し、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が所定値ａ以下の領域では、安定判定値Ｋstが最小値Ｋstmin でガードされるように設定されている（安定判定値Ｋstが小さくなり過ぎると学習しにくくなるためである）。また、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が所定値ｂ以上の領域では、安定判定値Ｋstが最大値Ｋstmax でガードされるように設定されている（安定判定値Ｋstが大きくなり過ぎると誤学習しやすくなるためである）。
Ｋstmin ≦Ｋst≦Ｋstmax
【００３１】
前述したように、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値は、車載バッテリをバックアップ電源とするバックアップＲＡＭ３０に記憶されるため、車載バッテリの脱着等によりバックアップＲＡＭ３０のバックアップ電源が遮断されると、いわゆるバッテリクリアによりバックアップＲＡＭ３０の記憶データが消えてしまい、空燃比Ｆ／Ｂ補正量ＦＡＦの学習を最初（初期値）からやり直す必要がある。
【００３２】
そこで、本実施例１では、バッテリクリア時に、エンジン始動時から安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に設定し、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定期間が経過した時点で、安定判定値Ｋstを小さい値、例えば最小値Ｋstmin に切り替え、その後は、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するようにしている。
【００３３】
更に、本実施例１では、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値を異常判定値と比較して空燃比制御系（例えば吸気系、燃料系等）の異常診断を行い、異常が検出されたときには、運転席のインストルメントパネルに設けられた警告ランプ３１を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告するようにしている。
【００３４】
以上説明した空燃比Ｆ／Ｂ補正量ＦＡＦの学習制御と空燃比制御系の異常診断は、ＥＣＵ２９によって図４及び図６の各プログラムに従って実行される。以下、各プログラムの処理内容を説明する。
【００３５】
［空燃比学習制御プログラム］
図４の空燃比学習制御プログラムは、エンジン運転中（イグニッションスイッチのオン中）に所定周期で実行され、特許請求の範囲でいう安定判定手段及び学習手段としての役割を果たす。
【００３６】
本プログラムが起動されると、まずステップ１０１で、バッテリクリアであるか否か（バックアップＲＡＭ３０の記憶データが消されているか否か）を判定し、バッテリクリアでないと判定されれば、後述するステップ１０７に進むが、バッテリクリアであると判定されれば、ステップ１０２に進み、学習完了フラグがＯＦＦ（空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了前）であるか否かを判定する。空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了後は、学習完了フラグがＯＮにセットされ、この学習完了フラグの情報がバックアップＲＡＭ３０に記憶されるため、エンジン停止中（イグニッションスイッチのオフ中）も学習完了フラグの情報が保持されるが、バッテリクリアが発生すると、バックアップＲＡＭ３０の記憶データが消されて、学習完了フラグがイニシャル状態であるＯＦＦ（学習完了前）となる。
【００３７】
上記ステップ１０２で、学習完了フラグがＯＦＦ（学習完了前）と判定されれば、ステップ１０３に進み、安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に設定した後、ステップ１０４に進み、空燃比Ｆ／Ｂ補正量ＦＡＦの学習を完了したか否かを判定する。この際、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値がほぼ安定した値に収束したと判断される時点で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了と判定しても良いし、或は、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定時間を予め設定しておいて、エンジン始動から当該所定時間が経過した時点で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了と判定するようにしても良い。
【００３８】
上記ステップ１０４で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了前と判定された場合には、後述するステップ１０９に進み、上記ステップ１０３で設定された安定判定値Ｋstの最大値Ｋstmax を用いて、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋstの最大値Ｋstmax 以内であるか否かを判定する。このようにすれば、バッテリクリア時に、空燃比Ｆ／Ｂ補正量ＦＡＦの学習が完了するまで安定判定値Ｋstを最大値Ｋstmax に維持することができるので、バッテリクリア時の学習時間を短くすることができる。
【００３９】
その後、本プログラムを起動した時に、上記ステップ１０４で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了と判定されれば、ステップ１０５に進み、学習完了フラグを、学習完了を意味するＯＮにセットしてバックアップＲＡＭ３０に記憶し、次のステップ１０６で、安定判定値Ｋstを小さい値、例えば最小値Ｋstmin に切り替えて、ステップ１０９に進み、安定判定を行う。
【００４０】
一方、前述したステップ１０１又はステップ１０２で「Ｎｏ」と判定された場合、つまりバッテリクリアでない場合、又は、バッテリクリアであっても既に空燃比Ｆ／Ｂ補正量ＦＡＦの学習が完了している場合は、ステップ１０７に進み、空燃比Ｆ／Ｂ補正量ＦＡＦのなまし値ＦＡＦave を算出した後、ステップ１０８に進み、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量として、空燃比Ｆ／Ｂ補正量なまし値ＦＡＦave と基準値「１」との差分の絶対値Ａｂｓ（ＦＡＦave −１）を算出し、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が大きくなるほど、安定判定値Ｋstを大きい値に設定する。但し、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が所定値ａ以下の領域と所定値ｂ以上の領域では、それぞれ、安定判定値Ｋstが最小値Ｋstmin と最大値Ｋstmax でガードされる。
【００４１】
この後、ステップ１０９に進み、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅として、空燃比Ｆ／Ｂ補正量ＦＡＦとそのなまし値ＦＡＦave との差分の絶対値Ａｂｓ（ＦＡＦ−ＦＡＦave ）を算出し、この空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以内であるか否かを判定する。その結果、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以内と判定されれば、ステップ１１０に進み、安定継続時間カウンタＣｎｔをカウントアップして、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以内となっている状態が継続する時間を計測する。
【００４２】
これに対して、上記ステップ１０９で、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以上と判定されれば、不安定状態と判断して、ステップ１１１に進み、安定継続時間カウンタＣｎｔのカウント値をリセットして初期値「０」に戻す。
【００４３】
以上のようにして、ステップ１１０又はステップ１１１で、安定継続時間カウンタＣｎｔのカウント値をカウントアップ又はリセットした後、ステップ１１２に進み、安定継続時間カウンタＣｎｔのカウント値が所定値Ｔを越えたか否かを判定し、安定継続時間カウンタＣｎｔのカウント値が所定値Ｔを越えていなければ、ステップ１１４に進み、学習許可フラグを学習禁止を意味するＯＦＦにセットし、安定継続時間カウンタＣｎｔのカウント値が所定値Ｔを越えた時点で、安定状態と判断して、ステップ１１３に進み、学習許可フラグを、学習許可を意味するＯＮにセットする。
【００４４】
この学習許可フラグがＯＮになっている期間は、空燃比Ｆ／Ｂ補正量学習プログラム（図示せず）によって空燃比Ｆ／Ｂ補正量ＦＡＦが学習され、その学習値がバックアップＲＡＭ３０に更新記憶される。この際、空燃比Ｆ／Ｂ補正量ＦＡＦの学習方法は、どのような方法で行っても良く、例えば、空燃比Ｆ／Ｂ補正量ＦＡＦ又はなまし値ＦＡＦave が所定値Ｋ１以上（Ｋ１＞１）であれば、学習値を所定値Ｋ２（Ｋ２＞０）だけ補正し（今回の学習値＝前回の学習値＋Ｋ２）、空燃比Ｆ／Ｂ補正量ＦＡＦ又はなまし値ＦＡＦave が所定値Ｋ３以下（Ｋ３＜１）であれば、学習値を所定値Ｋ４（Ｋ４＜０）だけ補正する（今回の学習値＝前回の学習値＋Ｋ４）。
【００４５】
或は、空燃比Ｆ／Ｂ補正量ＦＡＦの基準値「１」となまし値ＦＡＦave との差分（１−ＦＡＦave ）が所定値Ｋ５％以上（Ｋ５＞０）であれば、学習値を所定値Ｋ６％（Ｋ６＞０）だけ補正し、当該差分（１−ＦＡＦave ）が所定値Ｋ７％以下（Ｋ７＜０）であれば、学習値を所定値Ｋ８％（Ｋ８＜０）だけ補正する。
いずれの学習方法でも、エンジン運転領域毎に複数の学習領域を区分し、各学習領域毎に学習値を更新するようにしても良い。
【００４６】
［異常診断プログラム］
図６の異常診断プログラムは、エンジン運転中（イグニッションスイッチのオン中）に所定周期で実行され、特許請求の範囲でいう異常診断手段としての役割を果たす。本プログラムが起動されると、まずステップ２０１で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値が所定範囲外（正常範囲外）であるか否かを判定し、当該学習値が所定範囲内（正常範囲内）であれば、ステップ２０２に進み、空燃比制御系（例えば吸気系、燃料系等）が正常であると判定して、本プログラムを終了する。
【００４７】
これに対して、上記ステップ２０１で、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値が所定範囲外（正常範囲外）であると判定されれば、ステップ２０３に進み、空燃比制御系が異常であると判定して、ステップ２０４に進み、運転席のインストルメントパネルに設けられた警告ランプ３１を点灯したり、或は、運転席のインストルメントパネルの警告表示部（図示せず）に警告表示して運転者に警告すると共に、異常情報（異常コード等）をバックアップＲＡＭ３０に記憶して、本プログラムを終了する。
【００４８】
ところで、従来のものは、図２に示すように、バッテリクリア時に、安定判定値を大きな値に設定して学習条件を緩和し、空燃比Ｆ／Ｂ補正量ＦＡＦを学習しやすくして学習速度を速くするが、学習が完了して安定判定値が小さい値に切り替えられると、その後は、空燃比制御系の異常が発生して空燃比Ｆ／Ｂ補正量ＦＡＦが急変しても、安定判定値が小さい値に維持されるため、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する時間（空燃比Ｆ／Ｂ補正量ＦＡＦの急変後に学習値がほぼ安定した値に収束するのに要する時間）が長くかかってしまうという問題があった。このため、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値を異常判定値と比較して空燃比制御系の異常診断を行うシステムでは、空燃比制御系の異常発生時にその異常を検出するまでに時間がかかるという問題があった。この対策として、空燃比Ｆ／Ｂ補正量ＦＡＦとその学習値の両方（例えば両者の合計値）を用いて空燃比制御系の異常診断を行うようにしたものがあるが、空燃比Ｆ／Ｂ補正量ＦＡＦは、学習値と比較して大きく変動しやすいため、異常診断の診断精度を低下させる要因となる。
【００４９】
これに対して、本実施例１では、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が大きくなるほど、安定判定値Ｋstを大きい値に設定するようにしているため、図３に示すように、空燃比制御系の異常（例えばエバポパージシステムの配管の外れ）が発生して空燃比Ｆ／Ｂ補正量ＦＡＦが急変したときに、それに応じて安定判定値Ｋstを増大させて学習条件を緩和し、空燃比Ｆ／Ｂ補正量ＦＡＦを学習しやすくして学習速度（学習値の更新速度）を速くするという制御が可能となり、急変後の空燃比Ｆ／Ｂ補正量を速やかに学習することができる。しかも、空燃比Ｆ／Ｂ補正量ＦＡＦの挙動が比較的安定している通常時には、安定判定値Ｋstを小さくして誤学習を防止することができ、空燃比Ｆ／Ｂ補正量ＦＡＦの急変時の学習時間の短縮と通常時の誤学習防止とを両立させることができる。
【００５０】
上述したように、本実施例１では、空燃比制御系の異常発生時に空燃比Ｆ／Ｂ補正量ＦＡＦの学習に要する時間を従来より短縮することができるため、空燃比Ｆ／Ｂ補正量ＦＡＦの学習値を異常判定値と比較して空燃比制御系の異常診断を行うことで、空燃比制御系の異常検出時間の短縮と診断精度確保とを両立させることができる。
【００５１】
但し、本発明は、空燃比制御系の異常診断パラメータとして、空燃比Ｆ／Ｂ補正量とその学習値の両方（例えば両者の合計値）を用いたり、或は、空燃比と目標空燃比との偏差も考慮するようにしても良い等、空燃比制御系の異常診断方法は適宜変更しても良いことは言うまでもない。
【００５２】
しかも、本実施例１では、バッテリクリア時に、エンジン始動時から安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に設定し、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定期間が経過した時点で、安定判定値Ｋstを小さい値、例えば最小値Ｋstmin に切り替え、その後、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するようにしたので、バッテリクリア時には、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定期間が経過するまで安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に維持することができ、バッテリクリア時の学習時間を短くすることができる。
【実施例２】
【００５３】
本発明の実施例２では、図７の空燃比学習制御プログラムを実行することで、バッテリクリアの有無を問わず、常に、エンジン始動当初から空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するようにしている。図７の空燃比学習制御プログラムは、上記実施例１で説明した図４の空燃比学習制御プログラムのステップ１０１〜１０６の処理を省略しただけであり、その他の各ステップ１０７〜１１４の処理内容は同じである。
【００５４】
バッテリクリア時には、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が大きくなるため、本実施例２のように、バッテリクリアの有無を問わず、常に、エンジン始動当初から図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定しても、バッテリクリア時に安定判定値Ｋstを大きい値に設定して空燃比Ｆ／Ｂ補正量ＦＡＦを速やかに学習することができる。
【００５５】
尚、図５の安定判定値Ｋstのマップは、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを連続的に変化させるようにしたが、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを複数段階に切り替えるようにしても良い。
【実施例３】
【００５６】
前記実施例１では、バッテリクリア時に、エンジン始動時から安定判定値Ｋstを最大値Ｋstmax に設定し、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定期間が経過した時点で、一旦、安定判定値Ｋstを最小値Ｋstmin に切り替え、その後、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するようにしたが、本発明の実施例３では、図８の空燃比学習制御プログラムを実行することで、バッテリクリア時に、エンジン始動時から安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に設定し、空燃比Ｆ／Ｂ補正量ＦＡＦの学習完了に要する所定期間が経過した時点で、直ちに図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するようにしている。
【００５７】
図８の空燃比学習制御プログラムでは、まずステップ１０１で、バッテリクリアであるか否かを判定し、バッテリクリアであれば、ステップ３０２に進み、学習完了フラグをＯＦＦ（学習完了前）に設定する。
【００５８】
一方、上記ステップ３０１で、バッテリクリアでないと判定されれば、ステップ３０３に進み、空燃比Ｆ／Ｂ補正量ＦＡＦの学習を完了したか否かを判定し、学習完了と判定されれば、ステップ３０４に進み、学習完了フラグを、学習完了を意味するＯＮにセットしてバックアップＲＡＭ３０に記憶する。学習完了でない場合は、学習完了フラグをＯＦＦに維持する。
【００５９】
この後、ステップ３０５に進み、学習完了フラグがＯＦＦ（学習完了前）であるか否かを判定し、学習完了フラグがＯＦＦ（学習完了前）であれば、ステップ３０５に進み、安定判定値Ｋstを大きい値、例えば最大値Ｋstmax に設定する。
【００６０】
一方、上記ステップ３０５で、学習完了フラグがＯＮ（学習完了）と判定されれば、ステップ３０７に進み、空燃比Ｆ／Ｂ補正量ＦＡＦのなまし値ＦＡＦave を算出した後、ステップ３０８に進み、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量として、空燃比Ｆ／Ｂ補正量なまし値ＦＡＦave と基準値「１」との差分の絶対値Ａｂｓ（ＦＡＦave −１）を算出し、図５の安定判定値Ｋstのマップを用いて、空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）が大きくなるほど、安定判定値Ｋstを大きい値に設定する。
【００６１】
以上のようにして、ステップ３０６又はステップ３０８で安定判定値Ｋstを設定した後、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以内であるか否かを判定し（ステップ３０９）、空燃比Ｆ／Ｂ補正量ＦＡＦの変動幅Ａｂｓ（ＦＡＦ−ＦＡＦave ）が安定判定値Ｋst以内となっている状態が継続する時間を安定継続時間カウンタＣｎｔにより計測する（ステップ３１０、３１１）。そして、安定継続時間カウンタＣｎｔのカウント値が所定値Ｔを越えるまで、学習許可フラグを学習禁止を意味するＯＦＦにセットし（ステップ３１２、３１４）、安定継続時間カウンタＣｎｔのカウント値が所定値Ｔを越えた時点で、安定状態と判断して、学習許可フラグを、学習許可を意味するＯＮにセットする（ステップ３１３）。
【００６２】
以上説明した本実施例３でも、前記実施例１と同様の効果を得ることができる。
尚、本発明は、図１に示すような吸気ポート噴射エンジンに限定されず、筒内噴射エンジンや、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射方式のエンジンにも適用して実施できる等、要旨を逸脱しない範囲内で種々変更して実施できる。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施例１におけるエンジン制御システム全体の概略構成図である。
【図２】従来の空燃比Ｆ／Ｂ補正量学習システムにおいて、異常発生時の挙動を説明するためのタイムチャートである。
【図３】実施例１の空燃比Ｆ／Ｂ補正量学習システムにおいて、異常発生時の挙動を説明するためのタイムチャートである。
【図４】実施例１の空燃比学習制御プログラムの処理の流れを示すフローチャートである。
【図５】空燃比Ｆ／Ｂ補正量ＦＡＦのずれ量Ａｂｓ（ＦＡＦave −１）に応じて安定判定値Ｋstを可変設定するマップの一例を説明する図である。
【図６】実施例１の異常診断プログラムの処理の流れを示すフローチャートである。
【図７】実施例２の空燃比学習制御プログラムの処理の流れを示すフローチャートである。
【図８】実施例３の空燃比学習制御プログラムの処理の流れを示すフローチャートである。
【符号の説明】
【００６４】
１１…エンジン（内燃機関）、１２…吸気管、１６…スロットルバルブ、２１…燃料噴射弁、２２…点火プラグ、２３…排気管（排気通路）、２４…空燃比センサ（排出ガスセンサ）、２９…ＥＣＵ（空燃比フィードバック制御手段，学習手段，安定判定手段，異常診断手段）、３０…バックアップＲＡＭ（記憶手段）、３１…警告ランプ
【図１】
0004915526.tif 000002
【図２】
0004915526.tif 000003
【図３】
0004915526.tif 000004
【図４】
0004915526.tif 000005
【図５】
0004915526.tif 000006
【図６】
0004915526.tif 000007
【図７】
0004915526.tif 000008
【図８】
0004915526.tif 000009