(57)【要約】  この空燃比制御装置は、排気集合部よりも下流側の部位に配設された触媒（５３）と、排気通路であって前記触媒よりも下流側の部位に配設された下流側空燃比センサ（６８）と、下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量を同下流側空燃比センサの出力値に基いて更新する第１フィードバック量更新手段と、前記第１フィードバック量に基いて同第１フィードバック量の定常成分を取り込むように同第１フィードバック量の学習値を更新する学習手段と、を備える。そして、この空燃比制御装置は、学習不足状態が発生していると推定されるとき前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段と、機関の空燃比を過渡的に変動させる外乱（例えば、内部ＥＧＲ量の過渡的な増大）が発生すると推定されるとき前記学習促進制御を禁止する学習促進禁止手段と、を備える。
2010087029.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量を同下流側空燃比センサの出力値と同下流側目標空燃比に応じた値とに基いて更新する第１フィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記第１フィードバック量に基いて同第１フィードバック量の定常成分を取り込むように同第１フィードバック量の学習値を更新する学習手段と、
前記第１フィードバック量及び前記学習値のうちの少なくとも一方に基いて前記燃料噴射弁から噴射される燃料の量を制御することにより前記触媒に流入する排ガスの空燃比を制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記学習値と同学習値が収束すべき値との差が所定値以上である学習不足状態が発生しているか否かを推定するとともに、同学習不足状態が発生していると推定されるとき同学習不足状態が発生していないと推定されるときに比較して前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を過渡的に変動させる外乱が発生するか否かを推定するとともに同外乱が発生すると推定されるとき前記学習促進制御を禁止する学習促進禁止手段と、
を備えた内燃機関の空燃比制御装置。
【請求項２】
請求の範囲１に記載の内燃機関の空燃比制御装置において、
前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒との間の前記排気通路に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比と一致させるための基本燃料噴射量を前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に前記上流側空燃比センサの出力値と前記第１フィードバック量と前記学習値とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比に一致するように前記基本燃料噴射量を補正するための第２フィードバック量を更新する第２フィードバック量更新手段と、
前記第２フィードバック量により前記基本燃料噴射量を補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射指示手段と、
を含む空燃比制御装置。
【請求項３】
請求の範囲１又は請求の範囲２に記載の内燃機関の空燃比制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記学習値の前記第１フィードバック量への又は前記第１フィードバック量に含まれる定常成分への接近速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記学習手段に対して指示を与えるように構成された空燃比制御装置。
【請求項４】
請求の範囲１又は請求の範囲２に記載の内燃機関の空燃比制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記第１フィードバック量の更新速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成された空燃比制御装置。
【請求項５】
請求の範囲２乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記第２フィードバック量更新手段は、
前記パージ制御弁が０でない所定の開度に開かれているとき少なくとも前記上流側空燃比センサの出力値に基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値として更新するとともに同蒸発燃料ガス濃度学習値にも基いて前記第２フィードバック量を更新するように構成され、
前記学習促進禁止手段は、
前記蒸発燃料ガス濃度学習値の前記機関の始動後からの更新回数が所定の更新回数閾値よりも小さいとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項６】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項７】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項８】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する筒内残留ガスの量である内部ＥＧＲ量を前記機関の運転状態に応じて制御する内部ＥＧＲ量制御手段を備え、
前記学習促進禁止手段は、
前記内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項９】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する筒内残留ガスの量である内部ＥＧＲ量を変更するための制御量を指示信号に応じて変更する内部ＥＧＲ量変更手段と、
前記機関の運転状態に応じて前記内部ＥＧＲ量を変更するための制御量の目標値を取得する制御量目標値取得手段と、
前記内部ＥＧＲ量変更手段に対し前記制御量の実際の値が前記制御量の目標値に一致するように前記指示信号を与える内部ＥＧＲ量制御手段と、
を備え、
前記学習促進禁止手段は、
前記内部ＥＧＲ量を変更するための制御量の実際の値を取得するとともに、同取得された制御量の実際の値と前記制御量の目標値との差が所定の制御量差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１０】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間を前記機関の運転状態に基いて変更するバルブオーバーラップ期間変更手段を備え、
前記学習促進禁止手段は、
前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の変化速度が所定のバルブオーバーラップ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１１】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間が前記機関の運転状態に基いて定められる目標オーバーラップ期間に一致するように同バルブオーバーラップ期間を変更するバルブオーバーラップ期間変更手段を備え、
前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の実際値を取得するとともに、同取得されたバルブオーバーラップ量の実際値と前記目標オーバーラップ期間の長さである目標オーバーラップ量とのバルブオーバーラップ量差が所定のバルブオーバーラップ量差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１２】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期を前記機関の運転状態に基いて変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１３】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期が前記機関の運転状態に基いて定められる目標吸気弁開弁時期に一致するように同吸気弁の開弁時期を変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の実際値を取得するとともに、同取得された吸気弁の開弁時期の実際値と前記目標吸気弁開弁時期との差が所定の吸気弁開弁時期差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１４】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期を前記機関の運転状態に基いて変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１５】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期が前記機関の運転状態に基いて定められる目標排気弁閉弁時期に一致するように同排気弁閉弁時期を変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の実際値を取得するとともに、同取得された排気弁の閉弁時期の実際値と前記目標排気弁閉弁時期との差が所定の排気弁閉弁時期差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１６】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ量制御手段と、
を備え、
前記学習促進禁止手段は、
前記外部ＥＧＲの量の変化速度が所定の外部ＥＧＲ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１７】
請求の範囲１乃至請求の範囲４の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ制御手段と、
を備え、
前記学習促進禁止手段は、
前記ＥＧＲ弁の実際の開度を取得するとともに、同取得されたＥＧＲ弁の実際の開度と前記ＥＧＲ弁に与えられている指示信号により定まる前記ＥＧＲ弁の開度との差が所定のＥＧＲ弁開度差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１８】
請求の範囲１乃至請求の範囲１７の何れか一項に記載の内燃機関の空燃比制御装置において、
前記学習促進手段は、
前記学習値の変化速度が所定の学習値変化速度閾値以上であるとき前記学習不足状態が発生していると推定するように構成された空燃比制御装置。
【請求項１９】
請求の範囲２に記載の空燃比制御装置であって、
前記上流側空燃比センサは前記触媒を通過する前の排ガスが接触する拡散抵抗層と前記出力値を出力する空燃比検出素子とを有し、
更に、
前記学習値に基いて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得するインバランス判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段と、
を備えた空燃比制御装置。
【請求項２０】
請求の範囲１９に記載の空燃比制御装置であって、
前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータを学習値が大きくなるに従って大きくなるように取得するように構成された空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関の排気通路に設けられた触媒の下流側に配設された空燃比センサの出力値に基いて、前記機関に供給される混合気の空燃比を制御する多気筒内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来から知られるこの種の空燃比制御装置の一つは、機関の排気通路の上流から下流に向け、順に、上流側空燃比センサ、触媒及び下流側空燃比センサを備え、上流側空燃比センサの出力値と下流側空燃比センサの出力値とに基いて機関に供給される混合気の空燃比（以下、単に「機関の空燃比」と称呼することもある。）をフィードバック制御するようになっている。
より具体的に述べると、従来の空燃比制御装置（従来装置）は、下流側空燃比センサの出力値を下流側目標値（例えば、理論空燃比に相当する値）に一致させるためのサブフィードバック量（第１のフィードバック量）を、下流側空燃比センサの出力値と下流側目標値との偏差を比例・積分処理することによって算出する。
更に、従来装置は、上流側空燃比センサの出力値とサブフィードバック量とに基いて、機関の空燃比を上流側目標空燃比（例えば、理論空燃比）に一致させるためのメインフィードバック量を算出する。そして、従来装置は、その算出したメインフィードバック量に基づき機関の空燃比（例えば、燃料噴射量）をフィードバック制御する。
なお、本明細書において、メインフィードバック量を新たに算出（更新）し、そのメインフィードバック量を機関の空燃比の制御に使用することをメインフィードバック制御を実行するとも言う。同様に、サブフィードバック量を新たに算出（更新）し、そのサブフィードバック量を機関の空燃比の制御に使用することをサブフィードバック制御を実行するとも言う。
ところで、十分に長い期間に渡ってサブフィードバック制御が行われると、サブフィードバック量は所定の値に収束する。この所定の値を収束値と称呼する。収束値は、触媒に流入するガスの空燃比の平均値が下流側目標空燃比からどの程度乖離しているかを示す。換言すると、サブフィードバック量は、エアフローメータの空気量測定誤差、燃料噴射弁の噴射特性に起因する燃料噴射量の誤差、及び、上流側空燃比センサの空燃比検出誤差等（以下、「吸排気系の誤差」とも称呼する。）を反映した収束値へと収束する。
従って、例えば、下流側空燃比センサが活性化する前の期間、及び、下流側空燃比センサが活性化することに伴ってサブフィードバック制御が開始された時点からサブフィードバック量が収束値近傍の値に至る時点までの期間においては、前回の運転中に得られたサブフィードバック量の収束値を用いて機関の空燃比を制御することが好ましい。
そこで、従来装置は、サブフィードバック制御中において、「算出されたサブフィードバック量に応じた値」に基いて学習値を更新する「学習」を行う。「算出されたサブフィードバック量に応じた値」は、例えば、上記比例・積分処理の結果である「積分項及び／又は比例項」等の「サブフィードバック量に含まれる定常成分に応じた値」である。
この学習値は、従来装置が備えるバックアップＲＡＭ（スタンバイＲＡＭ）、又は、ＥＥＰＲＯＭ等の不揮発性メモリに格納される。バックアップＲＡＭには機関が搭載された車両のイグニッション・キー・スイッチの位置に拘らずバッテリから電力が供給される。バックアップＲＡＭはバッテリから電力が供給されている限り「格納した値（データ）」を保持することができる。そして、従来装置は、この学習値をも使用して機関の空燃比を制御する。
これにより、サブフィードバック量の定常値からのズレを学習値によって補償することができる。即ち、サブフィードバック制御の開始前或いは開始直後等において、サブフィードバック量がその収束値から偏移していたとしても、その偏移を学習値によって補償することができる。この結果、機関の空燃比は、常に適正値近傍の空燃比となるように制御され得る。
ところが、例えば、バッテリが車両から取り外された場合及びバッテリが放電してしまった場合等において「バッテリからバックアップＲＡＭ」への給電が停止すると、バックアップＲＡＭに格納されている学習値は消滅する（破壊される）。また、何らかの電気ノイズ等によりバックアップＲＡＭ内又は不揮発性メモリ内の学習値が破壊される場合もある。このような場合、学習値は初期値（デフォルト値）に戻されるから、学習値を早期に収束値に近づける（即ち、学習を早期に完了させる）ことが好ましい。
そこで、特開平５−４４５５９号公報に開示された空燃比制御装置は、学習値が初期値に戻された後等において、学習値の更新幅（即ち、学習値の更新速度）を大きくすることにより、学習値を早期に収束値に近づけるようになっている。この結果、「上記吸排気系の誤差が補償されないことに起因して機関の空燃比が適正値から乖離し、それにより、エミッションが悪化する期間」を短縮することができる。なお、このような「学習値を早期に収束値に近づける制御」は「学習促進制御」とも称呼される。
【発明の開示】
【０００３】
しかしながら、このような学習促進制御を実行している期間において、「機関の空燃比を過渡的に乱す状態」が発生すると、サブフィードバック量はそれに応じて収束値とは異なる値へと一時的に変化し、学習促進制御によって更新速度が高められているために学習値も本来到達すべき値から大きく乖離する場合がある。その結果、機関の空燃比が適正値から乖離する期間が長期化しエミッションが悪化する虞がある。
「機関の空燃比を過渡的に乱す状態」は、後述するように、例えば、燃料タンク内で発生した蒸発燃料ガスを吸気系に流入させて燃焼室に供給する場合にその蒸発燃料ガスの濃度が想定した濃度から急変した場合、その蒸発燃料ガスの濃度が所定濃度よりも高い場合、内部ＥＧＲガス（筒内残留ガス）の量（内部ＥＧＲ量）が過大になる場合、内部ＥＧＲ量が急変する場合、外部ＥＧＲガス（排気還流ガス）の量（外部ＥＧＲ量）が過大になる場合、外部ＥＧＲ量が急変する場合、及び、燃料に含まれるアルコールの濃度が急変した場合等に発生する。
本発明は、上記課題に対処するためになされたものである。本発明の目的の一つは、学習促進制御を実行している期間において「機関の空燃比を過渡的に乱す状態」が発生した場合、学習促進制御を禁止することにより、学習値が適正値から乖離することを回避し、その結果、エミッションが悪化することを回避することができる多気筒内燃機関の空燃比制御装置を提供することにある。
具体的に述べると、本発明による多気筒内燃機関の空燃比制御装置は、複数の気筒を有する多気筒内燃機関に適用され、触媒（例えば、三元触媒）と、燃料噴射弁と、下流側空燃比センサと、第１フィードバック量更新手段と、学習手段と、空燃比制御手段と、を備えた内燃機関の空燃比制御装置である。
触媒は、前記機関の排気通路であって「前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部」よりも下流側の部位に配設される。
燃料噴射弁は、前記少なくとも２以上の気筒の燃焼室に供給される混合気に含まれる燃料を噴射する弁である。
下流側空燃比センサは、前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに、その配設された部位を流れるガスの空燃比に応じた出力値を出力するセンサである。
第１フィードバック量更新手段は、所定の第１更新タイミングが到来する毎に「前記下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量」を「同下流側空燃比センサの出力値及び同下流側目標空燃比に応じた値」に基いて更新するようになっている。例えば、第１フィードバック量更新手段は、下流側空燃比センサの出力値」と「下流側目標空燃比に応じた値」との差である「第１偏差」に基づいて第１フィードバック量を更新する。
学習手段は、所定の第２更新タイミングが到来する毎に、前記第１フィードバック量に基いて、同第１フィードバック量の定常成分を取り込むように「同第１フィードバック量の学習値」を更新する手段である。「第１フィードバック量の定常成分を取り込むように」とは、「第１フィードバック量が学習をしない場合に収束するであろう値に除々に接近するように」、という意味である。
空燃比制御手段は、前記第１フィードバック量及び前記学習値のうちの少なくとも一方に基いて、「前記燃料噴射弁から噴射される燃料の量を制御する」ことにより、前記触媒に流入する排ガスの空燃比を制御するようになっている。
更に、本空燃比制御装置は、学習促進手段と、学習促進禁止手段と、を備える。
学習促進手段は、「前記学習値」と「その学習値が収束すべき値」との差（第２偏差）が所定値以上である状態、即ち、学習不足状態が発生しているか否かを推定するようになっている。更に、学習促進手段は、学習不足状態が発生していると推定されるとき、学習不足状態が発生していないと推定されるときに比較して、前記学習値の更新速度を増大させる学習促進制御を実行するようになっている。
学習促進禁止手段は、「前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を過渡的に変動させる外乱」が発生するか否かを推定するようになっている。そして、学習促進禁止手段は、そのような外乱が発生すると推定されるとき、前記学習促進制御を禁止するようになっている。
これによれば、機関の空燃比を過渡的に変動させる外乱が発生する可能性が高い場合、学習促進制御が禁止（中止を含む。）されるので、学習値が適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
前記空燃比制御手段は、
「前記排気集合部」又は「前記排気集合部と前記触媒との間の前記排気通路」に配設されるとともに、その配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
「前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比」を「前記下流側目標空燃比と同じ空燃比である上流側目標空燃比」と一致させるための基本燃料噴射量を、前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に、前記上流側空燃比センサの出力値と前記第１フィードバック量と前記学習値とに基づき、「前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比」が前記上流側目標空燃比に一致するように、「前記基本燃料噴射量を補正するための第２フィードバック量」を更新する第２フィードバック量更新手段と、
「前記第２フィードバック量により前記基本燃料噴射量を補正すること」により得られる燃料噴射量の燃料を、前記燃料噴射弁から噴射させる燃料噴射指示手段と、
を含むことが望ましい。
これによれば、上流側空燃比センサの出力値と、前記第１フィードバック量と、前記学習値と、に基づいて燃料噴射量が補正される。従って、このような構成においては、本発明の「学習促進制御を適切に禁止することによって学習値が適正値から乖離することを未然に防ぐこと」による「エミッション悪化の防止効果」がより有効となる。
また、前記学習手段は、
前記学習値を「前記第１フィードバック量」又は「前記第１フィードバック量に含まれる定常成分」に「除々に接近させる」ように、前記学習値の更新を行うように構成され得る。
このとき、前記学習促進手段は、
「前記第１フィードバック量の更新速度」を、「前記学習不足状態が発生していると推定されるとき」に「前記学習不足状態が発生していないと推定されるとき」よりも大きくするように、前記第１フィードバック量更新手段に対して指示を与えるように構成され得る。
これによれば、学習促進手段により、学習不足状態が発生していると推定されるとき、第１フィードバック量の更新速度が高められる。つまり、第１フィードバック量はその収束値へとより迅速に近づく。その結果、「前記第１フィードバック量」又は「前記第１フィードバック量に含まれる定常成分」に「除々に接近させる」ように更新される学習値の更新速度も結果的に大きくなる。即ち、学習促進制御が実現される。
一方、前記学習促進手段は、
前記学習値の「前記第１フィードバック量への」又は「前記第１フィードバック量に含まれる定常成分への」接近速度を、前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように、前記学習手段に対して指示を与えるように構成され得る。
これによれば、学習促進手段により、学習不足状態が発生していると推定されるとき、「学習値の前記第１フィードバック量への接近速度」が高められる、或いは、「学習値の前記第１フィードバック量に含まれる定常成分への接近速度」が高められる。即ち、学習促進制御が実現される。
本発明による空燃比制御装置は、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを「前記機関の吸気通路に導入するための通路を構成する通路部」であって、同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備えることもできる。即ち、本発明の空燃比制御装置は、蒸発燃料ガスパージシステムを備えることができる。
この場合、
前記第２フィードバック量更新手段は、
前記パージ制御弁が０でない所定の開度に開かれているとき、「少なくとも前記上流側空燃比センサの出力値」に基いて「前記蒸発燃料ガスの濃度に関連する値」を「蒸発燃料ガス濃度学習値」として更新するとともに、その蒸発燃料ガス濃度学習値にも基いて前記第２フィードバック量を更新するように構成され、
前記学習促進禁止手段は、
前記蒸発燃料ガス濃度学習値の「前記機関の始動後からの更新回数」が「所定の更新回数閾値」よりも小さいとき、「前記空燃比を過渡的に変動させる外乱」が発生すると推定するように構成され得る。
これによれば、蒸発燃料ガス濃度学習値が十分に更新されていない場合、即ち、蒸発燃料ガスの機関の空燃比への影響が第２フィードバック量により十分には補償されていない場合、「蒸発燃料ガスパージに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定される。従って、学習促進制御が適切に禁止される。
更に、本発明の空燃比制御装置が「蒸発燃料ガスパージシステム」を備えている場合、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値（例えば、上記蒸発燃料ガス濃度学習値、又は、蒸発燃料ガス濃度検出センサの出力値）を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
蒸発燃料ガスの濃度が所定の濃度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。これは、例えば、高濃度の蒸発燃料ガスが各気筒に互いに均等には流入しないので、各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるときに「蒸発燃料ガスパージに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明の空燃比制御装置が「蒸発燃料ガスパージシステム」を備えている場合、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値（例えば、上記蒸発燃料ガス濃度学習値、又は、蒸発燃料ガス濃度検出センサの出力値）を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。これは、例えば、蒸発燃料ガスの濃度変化が大きいために、各気筒に流入する蒸発燃料ガスの量が互いに均等にならないので、各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるときに「蒸発燃料ガスパージに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「前記少なくとも２以上の気筒の燃焼室において既に燃焼したガス」であって「その２以上の気筒のそれぞれの圧縮行程の開始時にそのそれぞれの気筒の燃焼室に存在するガス（筒内残留ガス）」の量である「内部ＥＧＲ量（内部ＥＧＲガス量）」を、前記機関の運転状態に応じて制御する内部ＥＧＲガス量制御手段（例えば、後述するバルブオーバーラップ期間変更手段）を備えることができる。
この場合、前記学習促進禁止手段は、
前記内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると推定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。これは、例えば、内部ＥＧＲ量の変化速度が大きいと、各気筒の内部ＥＧＲ量が互いに均等にならないので各気筒の空燃比の間に不均衡が生じるため、或いは、内部ＥＧＲ量が「想定した内部ＥＧＲ量」よりも過大になって不整燃焼が生じるためと推定される。従って、上記構成のように、内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「前記少なくとも２以上の気筒の燃焼室において既に燃焼したガス」であって「その２以上の気筒のそれぞれの圧縮行程の開始時にそのそれぞれの気筒の燃焼室に存在するガス（筒内残留ガス）」の量である「内部ＥＧＲ量」を変更するための制御量（例えば、後述するオーバーラップ量等）を、指示信号に応じて変更する内部ＥＧＲ量変更手段と、
前記機関の運転状態に応じて「前記内部ＥＧＲ量を変更するための制御量」の目標値を取得する制御量目標値取得手段と、
前記内部ＥＧＲ量変更手段に対し、前記制御量の実際の値が前記制御量の目標値に一致するように、前記指示信号を与える内部ＥＧＲ量制御手段と、
を備え、
前記学習促進禁止手段は、
前記内部ＥＧＲ量を変更するための制御量の実際の値を取得するとともに、同取得された制御量の実際の値と前記制御量の目標値との差が所定の制御量差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
内部ＥＧＲ量を変更するための制御量は、一般に機械的機構を含むアクチュエータにより変更されるので、例えば、その目標値に対してオーバーシュートすることがある。そのような場合には、取得された制御量の実際の値と前記制御量の目標値との差が所定の制御量差閾値以上となるので、内部ＥＧＲ量は過大となり且つ内部ＥＧＲ量の変化速度も大きくなる。それにより、機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒の内部ＥＧＲ量の差が大きくなるので各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、取得された制御量の実際の値と制御量の目標値との差が所定の制御量差閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間」を前記機関の運転状態に基いて変更するバルブオーバーラップ期間変更手段を備え、
前記学習促進禁止手段は、
「前記バルブオーバーラップ期間の長さ（即ち、バルブオーバーラップ量）の変化速度」が「所定のバルブオーバーラップ量変化速度閾値」以上であると推定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
内部ＥＧＲ量は「バルブオーバーラップ量（バルブオーバーラップ期間のクランク角幅等により表される量）」に依存して変化する。従って、バルブオーバーラップ量の変化速度がバルブオーバーラップ量変化速度閾値以上であると、それにより機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒に流入する内部ＥＧＲ量が均等にならないので、各気筒の空燃比の間に不均衡が生じるためであると考えられる。従って、上記構成のように、バルブオーバーラップ量の変化速度がバルブオーバーラップ量変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間」が「前記機関の運転状態に基いて定められる目標オーバーラップ期間」に一致するように、同バルブオーバーラップ期間を変更するバルブオーバーラップ期間変更手段を備え、
「前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の実際値」を取得するとともに、「同取得されたバルブオーバーラップ量の実際値」と「前記目標オーバーラップ期間の長さである目標オーバーラップ量」との差（即ち、バルブオーバーラップ量差）が「所定のバルブオーバーラップ量差閾値」以上であると判定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
前述したように、内部ＥＧＲ量は「バルブオーバーラップ期間」に依存して変化する。このバルブオーバーラップ期間は、機関の運転状態に基いて定められる目標オーバーラップ期間に一致するように変更される。ところが、バルブオーバーラップ期間は、一般に機械的機構を含むアクチュエータにより変更されるので、例えば、「バルブオーバーラップ期間の長さであるバルブオーバーラップ量」が「目標バルブオーバーラップ期間の長さである目標オーバーラップ量」に対してオーバーシュートすることがある。そのような場合、機関の空燃比が過渡的に変動する虞がある。これは、このようなオーバーシュートが発生すると、内部ＥＧＲ量は過大となり且つ変化速度も大きいから、例えば、各気筒の内部ＥＧＲ量の差が大きくなり、その結果、各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、「取得されたバルブオーバーラップ量の実際値」と「目標オーバーラップ期間の長さである目標オーバーラップ量」との差（即ち、バルブオーバーラップ量差）が「所定のバルブオーバーラップ量差閾値」以上であると推定されるとき、「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期を前記機関の運転状態に基いて変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
一般に、吸気弁開弁時期及び排気弁閉弁時期は「バルブオーバーラップ期間」が存在するように定められている。従って、内部ＥＧＲ量は「バルブオーバーラップ期間の開始時期」である吸気弁開弁時期（例えば、吸気上死点を基準とした進角量である吸気弁開弁時期進角量により表される。）に依存して変化する。
従って、吸気弁の開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると、それにより機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒に流入する内部ＥＧＲ量が均等にならないので、各気筒の空燃比の間に不均衡が生じるためであると考えられる。従って、上記構成のように、吸気弁の開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期」が「前記機関の運転状態に基いて定められる目標吸気弁開弁時期」に一致するように、同吸気弁の開弁時期を変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の実際値を取得するとともに、「同取得された吸気弁の開弁時期の実際値」と「前記目標吸気弁開弁時期」との差が「所定の吸気弁開弁時期差閾値」以上であると判定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
前述したように、内部ＥＧＲ量は「バルブオーバーラップ期間の開始時期」である吸気弁開弁時期に依存して変化する。ところが、吸気弁開弁時期は、一般に機械的機構を含むアクチュエータにより変更されるので、例えば、その目標値に対してオーバーシュートすることがある。
そのような場合、「取得された吸気弁の開弁時期の実際値」と「目標吸気弁開弁時期」との差が「所定の吸気弁開弁時期差閾値」以上となるので、内部ＥＧＲ量は過大となり且つ内部ＥＧＲ量の変化速度も大きくなる。それにより、機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒の内部ＥＧＲ量の差が大きくなるので各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、「取得された吸気弁の開弁時期の実際値」と「目標吸気弁開弁時期」との差が「所定の吸気弁開弁時期差閾値」以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期を前記機関の運転状態に基いて変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
更に、前述したように、一般に、バルブオーバーラップ期間が存在するように吸気弁開弁時期及び排気弁閉弁時期が定められるので、内部ＥＧＲ量は「バルブオーバーラップ期間の終了時期」である排気弁閉弁時期（例えば、吸気上死点を基準とした遅角量である排気弁閉弁時期遅角量により表される。）に依存して変化する。
従って、排気弁の閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると、それにより機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒に流入する内部ＥＧＲ量が均等にならないので、各気筒の空燃比の間に不均衡が生じるためであると考えられる。従って、上記構成のように、排気弁の閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期が前記機関の運転状態に基いて定められる目標排気弁閉弁時期に一致するように同排気弁閉弁時期を変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の実際値を取得するとともに、同取得された排気弁の閉弁時期の実際値と前記目標排気弁閉弁時期との差が所定の排気弁閉弁時期差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
前述したように、内部ＥＧＲ量は「バルブオーバーラップ期間の終了時期」である排気弁閉弁時期に依存して変化する。ところが、排気弁閉弁時期は、一般に機械的機構を含むアクチュエータにより変更されるので、例えば、その目標値に対してオーバーシュートすることがある。
そのような場合、「取得された排気弁の閉弁時期の実際値」と「目標排気弁閉弁時期」との差が「所定の排気弁閉弁時期差閾値」以上となるので、内部ＥＧＲ量は過大となり且つ内部ＥＧＲ量の変化速度も大きくなる。それにより、機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒の内部ＥＧＲ量の差が大きくなるので各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、「取得された排気弁の閉弁時期の実際値」と「目標排気弁閉弁時期」との差が「所定の排気弁閉弁時期差閾値」以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置は、
「前記機関の排気通路であって前記触媒よりも上流側の部位」と「前記機関の吸気通路」とを接続する排気還流管と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより「前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量（排気還流量）」を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ量制御手段と、
を備えることができる。
即ち、本発明による内燃機関の空燃比制御装置は、外部ＥＧＲシステム（排気還流システム）を備える場合がある。
この場合、前記学習促進禁止手段は、
前記外部ＥＧＲの量の変化速度が所定の外部ＥＧＲ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
外部ＥＧＲ量の変化速度が所定の外部ＥＧＲ量変化速度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。これは、例えば、外部ＥＧＲ量の変化速度が大きいと、各気筒の外部ＥＧＲ量が互いに均等にならないので各気筒の空燃比の間に不均衡が生じるため、或いは、外部ＥＧＲ量が「想定した外部ＥＧＲ量」よりも過大になるためと推定される。従って、上記構成のように、外部ＥＧＲ量の変化速度が所定の外部ＥＧＲ量変化速度閾値以上であると推定されるときに「外部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
更に、本発明による内燃機関の空燃比制御装置が外部ＥＧＲシステムを備える場合、
前記学習促進禁止手段は、
前記ＥＧＲ弁の実際の開度を取得するとともに、同取得されたＥＧＲ弁の実際の開度と前記ＥＧＲ弁に与えられている指示信号により定まる前記ＥＧＲ弁の開度との差が所定のＥＧＲ弁開度差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成され得る。
外部ＥＧＲ量はＥＧＲ弁の開度により変更されるので、例えば、そのＥＧＲ弁がＤＣモータやスイッチングバルブ等により構成されていると、ＥＧＲ弁の開度がその目標値に対してオーバーシュートすることがある。そのような場合、「取得されたＥＧＲ弁の実際の開度」と「ＥＧＲ弁に与えられている指示信号により定まるＥＧＲ弁の開度」との差が「所定のＥＧＲ弁開度差閾値」以上となる。
このとき、外部ＥＧＲ量は過大となり且つ外部ＥＧＲ量の変化速度も大きくなる。それにより、機関の空燃比が過渡的に変動する虞がある。これは、例えば、各気筒の外部ＥＧＲ量の差が大きくなるので各気筒の空燃比の間に不均衡が生じるためと推定される。従って、上記構成のように、「取得されたＥＧＲ弁の実際の開度」と「ＥＧＲ弁に与えられている指示信号により定まるＥＧＲ弁の開度」との差が「所定のＥＧＲ弁開度差閾値」以上であると推定されるときに「外部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
ところで、前記学習促進手段は、
前記学習値の変化速度が所定の学習値変化速度閾値以上であるとき前記学習不足状態が発生していると推定するように構成されることが好ましい。
これは、学習不足状態においては学習値の変化速度が所定の学習値変化速度閾値以上となるからである。
更に、本発明による空燃比制御装置が上流側空燃比センサを備える場合、
その上流側空燃比センサは前記触媒を通過する前の排ガスが接触する拡散抵抗層と前記出力値を出力する空燃比検出素子とを有するものとすることができる。
この場合、本空燃比制御装置は、
前記学習値に基いて、「前記触媒を通過する前の排ガスに含まれる水素の量」と「前記触媒を通過した後の排ガスに含まれる水素の量」との差が大きいほど大きくなるインバランス判定用パラメータを取得するインバランス判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき「前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比」の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段と、
を備えることができる。
後に詳述するように、機関全体（上記少なくとも２つの気筒）に供給される混合気の空燃比の真の平均値が例えば理論空燃比にフィードバック制御されている場合であっても、空燃比気筒間インバランスが発生した場合に排ガスに含まれる水素の総量ＳＨ１は、空燃比気筒間インバランスが発生していない場合に排ガスに含まれる水素の総量ＳＨ２よりも、顕著に大きくなる。水素の量が多い場合、水素は他の未燃物（ＨＣ，ＣＯ）よりも迅速に上記拡散抵抗層内を移動するから、上流側空燃比センサは実際の空燃比よりもリッチ側の空燃比に相当する出力値を出力する。その結果、上流側空燃比センサの出力値に基づくフィードバック制御（第２のフィードバック量による制御）により、機関全体に供給される混合気の空燃比の真の平均は、理論空燃比よりもリーン側に制御されてしまう。
一方、下流側空燃比センサには、触媒を通過した排ガスが到達する。従って、排ガスに含まれる水素は他の未燃物（ＨＣ，ＣＯ）とともに触媒において酸化（浄化）される。それ故、下流側空燃比センサの出力値は、機関全体に供給される混合気の真の空燃比に応じた値となる。従って、下流側空燃比センサの出力値を下流側目標空燃比（例えば、理論空燃比）に応じた値に一致させるように更新される第１のフィードバック量及びその学習値は、上流側空燃比センサの出力値に基づくフィードバック制御による空燃比のリーン側への過補正を補う値となる。この結果、前記学習値に基くことにより、「前記触媒を通過する前の排ガスに含まれる水素の量」と「前記触媒を通過した後の排ガスに含まれる水素の量」との差が大きいほど大きくなるインバランス判定用パラメータを取得することができる。
また、本発明によれば、学習値は適正値に迅速に且つ誤りなく近づくので、インバランス判定用パラメータも精度のよい値となる。
そして、取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき「前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比」の間に不均衡が生じていると判定することができる。
より具体的には、前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータを学習値が大きくなるに従って大きくなるように取得するように構成される。この結果、実用性の高い「空燃比気筒間インバランス判定装置」を含む空燃比制御装置が提供される。
【図面の簡単な説明】
【０００４】
図１は、本発明の各実施形態に係る空燃比制御装置が適用される内燃機関の概略構成図である。
図２は、図１に示した可変吸気タイミング制御装置の概略断面図である。
図３は、図１に示した上流側空燃比センサの出力値と、上流側空燃比と、の関係を示したグラフである。
図４は、図１に示した下流側空燃比センサの出力値と、下流側空燃比と、の関係を示したグラフである。
図５は、本発明の各実施形態に係る空燃比制御装置の作動の概要を示したフローチャートである。
図６は、本発明の第１実施形態に係る空燃比制御装置（第１制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
図７は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図８は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図９は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１０は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１１は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１２は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１３は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１４は、本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１５は、本発明の第３実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１６は、バルブオーバーラップ期間について説明するための図である。
図１７は、本発明の第４実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１８は、本発明の第４実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図１９は、本発明の第５実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２０は、本発明の第６実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２１は、本発明の第６実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２２は、本発明の第７実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２３は、本発明の第８実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２４は、本発明の第９実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２５は、本発明の第１０実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２６は、本発明の第１０実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２７は、本発明の第１１実施形態に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２８は、本発明の第１変形例に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
図２９は、図１に示した上流側空燃比センサの概略断面図である。
図３０は、排ガス（被検出ガス）の空燃比が理論空燃比よりもリーン側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
図３１は、排ガスの空燃比と上流側空燃比センサの限界電流値との関係を示したグラフである。
図３２は、排ガス（被検出ガス）の空燃比が理論空燃比よりもリッチ側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
図３３は、気筒に供給された混合気の空燃比と、その気筒から排出される未燃成分と、の関係を示したグラフである。
図３４は、空燃比気筒間インバランス割合とサブフィードバック量との関係を示したグラフである。
図３５は、本発明の第２変形例に係る空燃比制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための最良の形態】
【０００５】
以下、本発明による多気筒内燃機関の空燃比制御装置の各実施形態について図面を参照しながら説明する。この空燃比制御装置は、内燃機関の空燃比を制御するために燃料噴射量を制御する燃料噴射量制御装置でもある。
第１実施形態
（構成）
図１は、本発明の第１実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第１制御装置」とも称呼する。）を、４サイクル・火花点火式・多気筒（４気筒）・内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１の壁面及びピストン２２の上面は、シリンダヘッド部３０の下面とともに燃焼室２５を形成している。
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング制御装置３３、可変吸気タイミング制御装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフトを含むとともに同エキゾーストカムシャフトの位相角を連続的に変更する可変排気タイミング制御装置３６、可変排気タイミング制御装置３６のアクチュエータ３６ａ、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射する燃料噴射弁（フューエルインジェクタ、燃料噴射手段、燃料供給手段）３９を備えている。
可変吸気タイミング制御装置３３（可変バルブタイミング機構）は、例えば、特開２００７−３０３４２３号公報等に記載されているように周知の装置である。以下、可変吸気タイミング制御装置３３の概略断面図である図２を参照しながら可変吸気タイミング制御装置３３について簡単に説明する。
可変吸気タイミング制御装置３３は、タイミングプーリ３３ｂ１、円筒状ハウジング３３ｂ２、回転軸３３ｂ３、複数個の仕切壁３３ｂ４、及び、複数個のベーン３３ｂ５を備えている。
タイミングプーリ３３ｂ１は、図示しないタイミングベルトを介し、機関１０のクランク軸２４によって矢印Ｒの方向に回転せしめられるようになっている。円筒状ハウジング３３ｂ２は、タイミングプーリ３３ｂ１と一体的に回転するようになっている。回転軸３３ｂ３は、インテークカムシャフトと一体的に回転し且つ円筒状ハウジング３３ｂ２に対して相対回転可能となっている。仕切壁３３ｂ４は、円筒状ハウジング３３ｂ２の内周面から回転軸３３ｂ３の外周面まで延びている。ベーン３３ｂ５は、互いに隣接する二つの仕切壁３３ｂ４の間において回転軸３３ｂ３の外周面から円筒状ハウジング３３ｂ２の内周面まで延びている。このような構造により、各ベーン３３ｂ５の両側には、進角用油圧室３３ｂ６と遅角用油圧室３３ｂ７とが形成されている。進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７は、一方に作動油が供給されたとき他方から作動油が排出されるようになっている。
進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７への作動油の供給制御（給排）は、作動油供給制御弁を含む図１にも示したアクチュエータ３３ａと、図示しない油圧ポンプと、によって行われる。アクチュエータ３３ａは、電磁駆動式であって指示信号（駆動信号）に応答して前記作動油の供給制御を行う。即ち、インテークカムシャフトのカムの位相を進角すべきとき、アクチュエータ３３ａは、進角用油圧室３３ｂ６に作動油を供給するとともに遅角用油圧室３３ｂ７内の作動油を排出する。このとき、回転軸３３ｂ３は、円筒状ハウジング３３ｂ２に対して矢印Ｒの方向に相対回転せしめられる。これに対し、インテークカムシャフトのカムの位相を遅角すべきとき、アクチュエータ３３ａは、遅角用油圧室３３ｂ７に作動油を供給するとともに進角用油圧室３３ｂ６内の作動油を排出する。このとき、回転軸３３ｂ３は、円筒状ハウジング３３ｂ２に対して矢印Ｒと反対の方向に相対回転せしめられる。
更に、アクチュエータ３３ａが進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７への作動油の給排を停止すると、円筒状ハウジング３３ｂ２に対する回転軸３３ｂ３の相対回転動作は停止せしめられ、回転軸３３ｂ３は、その時点での相対回転位置に保持される。このように、可変吸気タイミング制御装置３３は、インテークカムシャフトのカムの位相を所望の量だけ進角及び遅角させることができる。
可変吸気タイミング制御装置３３によれば、吸気弁３２の開弁期間の長さ（開弁クランク角度幅）は、インテークカムシャフトのカムのプロフィールによって決定されるので、一定に維持される。即ち、可変吸気タイミング制御装置３３により、吸気弁開弁時期ＩＮＯが所定角度だけ進角又は遅角させられると、吸気弁閉弁時期ＩＮＣもその所定角度だけ進角又は遅角させられる。
なお、上述した可変吸気タイミング制御装置３３は、例えば、特開２００４−１５０３９７号公報等に開示されている「電動式可変吸気タイミング制御装置」に置換されてもよい。この電動式可変吸気タイミング制御装置は、電磁コイルと複数の歯車とを備える。この装置は、指示信号（駆動信号）に応じて電磁コイルが発生する磁力により、その複数の歯車の相対回転位置を変化させ、もって、インテークカムシャフトのカムの位相を所望の量だけ進角又は遅角することができるようになっている。
一方、可変排気タイミング制御装置３６は、エキゾーストカムシャフトの端部に取り付けられている。この可変排気タイミング制御装置３６は、上述した油圧式の可変吸気タイミング制御装置３３と同様の構成を有している。更に、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６は、互いに独立して吸気弁３２及び排気弁３５の開閉時期を制御することができる。なお、この可変排気タイミング制御装置３６も、上記同様、電動式の可変排気タイミング制御装置に置換されてもよい。
可変排気タイミング制御装置３６によれば、排気弁３５の開弁期間の長さ（開弁クランク角度幅）は、エキゾーストカムシャフトのカムのプロフィールによって決定されるので、一定に維持される。即ち、可変排気タイミング制御装置３６により、排気弁閉弁時期ＥＸＣが所定角度だけ進角又は遅角させられると、排気弁開弁時期ＥＸＯもその所定角度だけ進角又は遅角させられる。
再び、図１を参照すると、燃料噴射弁３９は、各気筒の燃焼室２５一つに対して一つずつ配設されている。燃料噴射弁３９は吸気ポート２２に設けられている。燃料噴射弁３９は、噴射指示信号に応答し、正常である場合に「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート２２内に噴射するようになっている。このように、複数の気筒のそれぞれは、他の気筒とは独立して燃料供給を行う燃料噴射弁３９を備えている。
吸気系統４０は、インテークマニホールド４１、吸気管４２、エアフィルタ４３、及び、スロットル弁４４を備えている。インテークマニホールド４１は、複数の枝部４１ａとサージタンク４１ｂとからなる。複数の枝部４１ａのそれぞれの一端は複数の吸気ポート３１のそれぞれに接続されている。複数の枝部４１ａの他端はサージタンク４１ｂに接続されている。吸気管４２の一端はサージタンク４１ｂに接続されている。エアフィルタ４３は吸気管４２の他端に配設されている。スロットル弁４４は、吸気管４２内にあって吸気通路の開口断面積を可変とするようになっている。スロットル弁４４は、ＤＣモータからなるスロットル弁アクチュエータ４４ａにより吸気管４２内で回転駆動されるようになっている。
更に、内燃機関１０は、液体ガソリン燃料を貯留する燃料タンク４５、燃料タンク４５内にて発生した蒸発燃料を吸蔵可能なキャニスタ４６、前記蒸発燃料を含むガスを燃料タンク４５からキャニスタ４６へと導くためのベーパ捕集管４７、キャニスタ４６から脱離した蒸発燃料を蒸発燃料ガスとしてサージタンク４１ｂへと導くためのパージ流路管４８、及び、パージ流路管４８に配設されたパージ制御弁４９を備えている。燃料タンク４５に貯留された燃料は、燃料ポンプ４５ａ及び燃料供給管４５ｂ等を通して燃料噴射弁３９に供給されるようになっている。ベーパ捕集管４７及びパージ流路管４８はパージ通路（パージ通路部）を構成している。
パージ制御弁４９は、指示信号であるデューティ比ＤＰＧを表す駆動信号により開度（開弁期間）が調節されることにより、パージ流路管４８の通路断面積を変更するようになっている。パージ制御弁４９は、デューティ比ＤＰＧが「０」であるときにパージ流路管４８を完全に閉じるようになっている。即ち、パージ制御弁４９は、パージ通路に配設されるとともに指示信号に応答して開度が変更されるように構成されている。
キャニスタ４６は周知のチャコールキャニスタである。キャニスタ４６は、ベーパ捕集管４７に接続されたタンクポート４６ａと、パージ流路管４８に接続されたパージポート４６ｂと、大気に曝されている大気ポート４６ｃと、が形成された筐体を備える。キャニスタ４６は、その筐体内に、蒸発燃料を吸着するための吸着剤４６ｄを収納している。キャニスタ４６は、パージ制御弁４９が完全に閉じられている期間において燃料タンク４５内で発生した蒸発燃料を吸蔵し、パージ制御弁４９が開かれている期間において吸蔵した蒸発燃料を蒸発燃料ガスとしてパージ流路管４８を通してサージタンク４１ｂ（スロットル弁４４よりも下流の吸気通路）に放出するようになっている。これにより、蒸発燃料ガスは燃焼室２５へ供給される。即ち、パージ制御弁４９が開かれることにより、蒸発燃料ガスパージ（又は、略して、エバポパージ）が行われる。
排気系統５０は、各気筒の排気ポート３４に一端が接続された複数の枝部を含むエキゾーストマニホールド５１、各エキゾーストマニホールド５１の枝部の他端であって総ての枝部が集合している集合部（エキゾーストマニホールド５１の排気集合部）に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、及び、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された図示しない下流側触媒を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。このように、上流側触媒５３は、排気通路の「総ての燃焼室２５（少なくとも２以上の燃焼室）から排出された排ガスが集合する排気集合部よりも下流側の部位」に配設されている。
上流側触媒５３及び下流側触媒のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置（排気浄化触媒）である。各触媒は、各触媒に流入するガスの空燃比が理論空燃比であるとき、ＨＣ，ＣＯなどの未燃成分を酸化するとともに窒素酸化物（ＮＯｘ）を還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア（ＣｅＯ２）によってもたらされる。
更に、機関１０は、排気還流システムを備えている。排気還流システムは、外部ＥＧＲ通を構成する排気還流管５４、及び、ＥＧＲ弁５５を含んでいる。
排気還流管５４の一端はエキゾーストマニホールド５１の集合部に接続されている。排気還流管５４の他端はサージタンク４１ｂに接続されている。
ＥＧＲ弁５５は排気還流管５４に配設されている。ＥＧＲ弁５５は、ＤＣモータを駆動源として内蔵している。ＥＧＲ弁５５は、そのＤＣモータへの指示信号であるデューティ比ＤＥＧＲに応答して弁開度を変更し、それにより排気還流管５４の通路断面積を変更するようになっている。ＥＧＲ弁５５は、デューティ比ＤＥＧＲが「０」であるときに排気還流管５４を完全に閉じるようになっている。即ち、ＥＧＲ弁５５は、外部ＥＧＲ通路に配設されるとともに指示信号に応答して開度が変更されることにより、排気還流量（以下、「外部ＥＧＲ量」とも称呼する。）を制御するように構成されている。
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、水温センサ６３、クランクポジションセンサ６４、インテークカムポジションセンサ６５、エキゾーストカムポジションセンサ６６、上流側空燃比センサ６７、下流側空燃比センサ６８、アルコール濃度センサ６９、ＥＧＲ弁開度センサ（ＥＧＲ弁リフト量センサ）７０、及び、アクセル開度センサ７１を備えている。
エアフローメータ６１は、吸気管４２内を流れる吸入空気の質量流量Ｇａに応じた信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットル弁４４の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
水温センサ６３は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置８０によって機関回転速度ＮＥに変換される。
インテークカムポジションセンサ６５は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
エキゾーストカムポジションセンサ６６は、エキゾーストカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
上流側空燃比センサ６７は排気通路であって「排気集合部（エキゾーストマニホールド５１の枝部の集合部）と上流側触媒５３との間」の位置に配設されている。上流側空燃比センサ６７の配設位置は、排気集合部であってもよい。上流側空燃比センサ６７は、後に詳述するように、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
上流側空燃比センサ６７は、図３に示したように、「被検出ガス」の空燃比Ａ／Ｆに応じた電圧である出力値Ｖａｂｙｆｓを出力するようになっている。従って、本例において、上流側空燃比センサ６７は、排気通路であって上流側空燃比センサ６７が配設されている部位を流れるガスの空燃比（即ち、上流側触媒５３に流入する排ガスの空燃比、従って、機関に供給される混合気の空燃比）に応じた出力値Ｖａｂｙｆｓを発生するようになっている。
出力値Ｖａｂｙｆｓは、被検出ガスの空燃比が理論空燃比であるときに値Ｖｓｔｏｉｃｈに一致する。出力値Ｖａｂｙｆｓは、被検出ガスの空燃比が大きくなる（リーンとなる）ほど増大する。即ち、上流側空燃比センサ６７は、被検出ガスの空燃比の変化に対して出力が連続的に変化する。
後述する電気制御装置８０は、図３に示したテーブル（マップ）Ｍａｐａｂｙｆｓを記憶していて、そのテーブルＭａｐａｂｙｆｓに実際の出力値Ｖａｂｙｆｓを適用することによって空燃比を検出するようになっている。以下、上流側空燃比センサの出力値ＶａｂｙｆｓとテーブルＭａｐａｂｙｆｓとによって取得される空燃比を、上流側空燃比ａｂｙｆｓ又は検出空燃比ａｂｙｆｓとも称呼する。
下流側空燃比センサ６８は、排気通路であって上流側触媒５３よりも下流側であり且つ下流側触媒よりも上流側（即ち、上流側触媒５３と下流側触媒との間の排気通路）に配設されている。下流側空燃比センサ６８は、周知の起電力式の酸素濃度センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ６８は、排気通路であって下流側空燃比センサ６８が配設されている部位を流れるガスである被検出ガスの空燃比（即ち、上流側触媒５３から流出し且つ下流側触媒５４に流入するガスの空燃比、従って、機関に供給される混合気の空燃比の時間的平均値）に応じた出力値Ｖｏｘｓを発生するようになっている。
この出力値Ｖｏｘｓは、図４に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値ｍａｘ（例えば、約０．９Ｖ）となり、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値ｍｉｎ（例えば、約０．１Ｖ）となり、被検出ガスの空燃比が理論空燃比であるとき最大出力値ｍａｘと最小出力値ｍｉｎの略中間の電圧Ｖｓｔ（中間電圧Ｖｓｔ、例えば、約０．５Ｖ）となる。更に、この出力値Ｖｏｘｓは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値ｍａｘから最小出力値ｍｉｎへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値ｍｉｎから最大出力値ｍａｘへと急変する。
再び、図１を参照すると、アルコール濃度センサ６９は燃料供給管４５ｂに配設されている。アルコール濃度センサ６９は、燃料（ガソリン燃料）に含まれるアルコール（エタノール等）の濃度を検出し、その濃度ＥｔＯＨを表す信号を出力するようになっている。
ＥＧＲ弁開度センサ７０は、ＥＧＲ弁の開度（即ち、ＥＧＲ弁が備える弁体のリフト量）を検出し、その開度ＡＥＧＲＶａｃｔを表す信号を出力するようになっている。
アクセル開度センサ７１は、運転者によって操作されるアクセルペダル９１の操作量Ａｃｃｐを表す信号を出力するようになっている。
電気制御装置８０は、互いにバスで接続された「ＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、及び、バックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等」からなる周知のマイクロコンピュータである。
バックアップＲＡＭ８４は、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭ８４は、バッテリから電力の供給を受けている場合、ＣＰＵ８１の指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭ８４は、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、ＣＰＵ８１は、バックアップＲＡＭ８４への電力供給が再開されたとき、バックアップＲＡＭ８４に保持されるべきデータを初期化（デフォルト値に設定）するようになっている。
インターフェース８５は、センサ６１〜７１と接続され、ＣＰＵ８１にそれらのセンサからの信号を供給するようになっている。更に、インターフェース８５は、ＣＰＵ８１の指示に応じて可変吸気タイミング制御装置３３のアクチュエータ３３ａ、可変排気タイミング制御装置３６のアクチュエータ３６ａ、各気筒のイグナイタ３８、各気筒に対応して設けられた燃料噴射弁３９及びスロットル弁アクチュエータ４４ａ、パージ制御弁４９、及び、ＥＧＲ弁５５等に駆動信号（指示信号）を送出するようになっている。
（制御概要）
次に、上記のように構成された第１制御装置の作動の概要について説明する。なお、本明細書において、変数ｋが付された値は、今回の燃焼サイクルについての値であることを示す。即ち、変数Ｘ（ｋ）は今回の燃焼サイクルに対する値Ｘであり、Ｘ（ｋ−Ｎ）はＮ回前の燃焼サイクルに対する値Ｘである。
第１制御装置は、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに基いて得られる上流側空燃比ａｂｙｆｓを上流側目標空燃比ａｂｙｆｒに一致させるメインフィードバック制御と、下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標値Ｖｏｘｓｒｅｆに一致させるサブフィードバック制御と、を含む空燃比フィードバック制御を実行する。
実際には、第１制御装置は「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓ」を「下流側空燃比センサ６８の出力値Ｖｏｘｓと下流側目標値Ｖｏｘｓｒｅｆとの出力偏差量Ｄｖｏｘｓを小さくするように算出されたサブフィードバック量Ｖａｆｓｆｂ及びその学習値Ｖａｆｓｆｂｇ」により補正し、それによって「フィードバック制御用空燃比（補正検出空燃比）ａｂｙｆｓｃ」を算出し、そのフィードバック制御用空燃比ａｂｙｆｓｃを上流側目標空燃比ａｂｙｆｒに一致させる空燃比フィードバック制御を行う。サブフィードバック量Ｖａｆｓｆｂは便宜上「第１フィードバック量」とも称呼される。
＜メインフィードバック制御及び最終燃料噴射量の決定＞
より具体的に述べると、第１制御装置は、フィードバック制御用出力値Ｖａｂｙｆｃを下記（１）式に従って算出する。（１）式において、Ｖａｂｙｆｓは上流側空燃比センサ６７の出力値、Ｖａｆｓｆｂは下流側空燃比センサ６８の出力値Ｖｏｘｓに基いて算出されるサブフィードバック量、Ｖａｆｓｆｂｇはサブフィードバック量の学習値である。これらの値は、何れも現時点において得られている値である。サブフィードバック量Ｖａｆｓｆｂ及びサブフィードバック量の学習値Ｖａｆｓｆｂｇの算出方法は後述される。
Ｖａｂｙｆｃ＝Ｖａｂｙｆｓ＋Ｖａｆｓｆｂ＋Ｖａｆｓｆｂｇ    …（１）
第１制御装置は、下記（２）式に示したように、フィードバック制御用出力値Ｖａｂｙｆｃを図３に示したテーブルＭａｐａｂｙｆｓに適用することによりフィードバック制御用空燃比ａｂｙｆｓｃを得る。
ａｂｙｆｓｃ＝Ｍａｐａｂｙｆｓ（Ｖａｂｙｆｃ）    …（２）
一方、第１制御装置は、現時点にて各気筒（各燃焼室２５）に吸入される空気量である筒内吸入空気量Ｍｃ（ｋ）を求める。筒内吸入空気量Ｍｃ（ｋ）は、各気筒の吸気行程毎に、その時点のエアフローメータ６１の出力Ｇａと機関回転速度ＮＥとに基いて求められる。例えば、筒内吸入空気量Ｍｃ（ｋ）は、「エアフローメータ６１により計測された吸入空気量Ｇａ、機関回転速度ＮＥ及びルックアップテーブルＭａｐＭｃ」に基いて求められる。或いは、筒内吸入空気量Ｍｃ（ｋ）は、エアフローメータ６１の吸入空気量Ｇａに対して一次遅れ処理を施した値を機関回転速度ＮＥで除することにより求められられる。筒内吸入空気量Ｍｃ（ｋ）は、周知の空気モデル（吸気通路における空気の挙動を模した物理法則に従って構築されたモデル）により算出されてもよい。筒内吸入空気量Ｍｃ（ｋ）は、各吸気行程に対応されながらＲＡＭ８３内に記憶される。
第１制御装置は、下記（３）式に示したように、その筒内吸入空気量Ｍｃ（ｋ）を現時点における上流側目標空燃比ａｂｙｆｒによって除すことにより基本燃料噴射量Ｆｂを求める。上流側目標空燃比ａｂｙｆｒは、機関暖機中、フューエルカット復帰後増量中及び触媒過熱防止増量中等の特殊な場合を除き、理論空燃比ｓｔｏｉｃｈに設定される。なお、本例において、上流側目標空燃比ａｂｙｆｒは常に理論空燃比ｓｔｏｉｃｈに設定されている。基本燃料噴射量Ｆｂ（ｋ）は、各吸気行程に対応されながらＲＡＭ８３内に記憶される。
Ｆｂ（ｋ）＝Ｍｃ（ｋ）／ａｂｙｆｒ    …（３）
第１制御装置は、下記（４）式に示したように、基本燃料噴射量Ｆｂを種々の補正係数により補正することにより、最終燃料噴射量Ｆｉを算出する。そして、第１制御装置は、最終燃料噴射量Ｆｉの燃料を吸気行程を迎えている気筒の燃料噴射弁３９から噴射する。
Ｆｉ＝ＫＧ・ＦＰＧ・ＦＡＦ・Ｆｂ（ｋ）    …（４）
上記（４）式の右辺における各値は以下の通りである。
ＫＧ：メインフィードバック係数の学習値（メインＦＢ学習値ＫＧ）。
ＦＰＧ：パージ補正係数。
ＦＡＦ：メインフィードバック制御により更新（算出）されるメインフィードバック係数。
メインＦＢ学習値ＫＧ及びパージ補正係数の算出・更新方法は後述される。ここでは、メインフィードバック係数ＦＡＦの更新（算出）方法について述べる。
メインフィードバック係数ＦＡＦ（便宜上、第２フィードバック量とも称呼される。）はメインフィードバック値ＤＦｉに基いて算出される。メインフィードバック値ＤＦｉは、次のようにして求められる。第１制御装置は、下記（５）式に示したように、現時点よりもＮサイクル（即ち、Ｎ・７２０°クランク角）前の時点における筒内吸入空気量Ｍｃ（ｋ−Ｎ）を、上記フィードバック制御用空燃比ａｂｙｆｓｃで除すことにより、現時点よりもＮサイクル前の時点において燃焼室２５に実際に供給された燃料の量である「筒内燃料供給量Ｆｃ（ｋ−Ｎ）」を求める。
Ｆｃ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／ａｂｙｆｓｃ    …（５）
このように、現時点からＮサイクル前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）をフィードバック制御用空燃比ａｂｙｆｓｃで除すのは、燃焼室２５内で燃焼された混合気が上流側空燃比センサ６７に到達するまでにＮストロークに相当する時間を要するからである。但し、実際には、上流側空燃比センサ６７には各気筒から排出された排ガスがある程度混合された後に到達する。
次に、第１制御装置は、下記（６）式に示したように、「現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）」を「現時点からＮストローク前の上流側目標空燃比ａｂｙｆｒ（ｋ−Ｎ）」で除すことにより「現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）」を求める。なお、上述したように、本例において上流側目標空燃比ａｂｙｆｒは一定であるので、（６）式においては単にａｂｙｆｒと表記されている。
Ｆｃｒ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／ａｂｙｆｒ    …（６）
制御装置は、下記（７）式に示したように、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。この筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
ＤＦｃ＝Ｆｃｒ（ｋ−Ｎ）−Ｆｃ（ｋ−Ｎ）    …（７）
その後、制御装置は、下記（８）式に基いてメインフィードバック値ＤＦｉを求める。この（８）式において、Ｇｐは予め設定された比例ゲイン、Ｇｉは予め設定された積分ゲインである。なお、（８）式の係数ＫＦＢは機関回転速度ＮＥ及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、（８）式の値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値である。つまり、第１制御装置は、フィードバック制御用空燃比ａｂｙｆｓｃを上流側目標空燃比ａｂｙｆｒに一致させる比例・積分制御（ＰＩ制御）によりメインフィードバック値ＤＦｉを算出する。
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ    …（８）
そして、第１制御装置は、メインフィードバック値ＤＦｉ及び基本燃料噴射量Ｆｂ（ｋ−Ｎ）を下記（９）式に適用することによりメインフィードバック係数ＦＡＦを算出する。即ち、メインフィードバック係数ＦＡＦは、現時点からＮストローク前の基本燃料噴射量Ｆｂ（ｋ−Ｎ）にメインフィードバック値ＤＦｉを加えた値を基本燃料噴射量Ｆｂ（ｋ−Ｎ）で除すことにより求められる。
ＦＡＦ＝（Ｆｂ（ｋ−Ｎ）＋ＤＦｉ）／Ｆｂ（ｋ−Ｎ）    …（９）
メインフィードバック係数ＦＡＦは、上記（４）式に示したように基本燃料噴射量Ｆｂ（ｋ）に乗じられる。なお、メインフィードバック係数ＦＡＦは、所定の第３更新タイミングが到来する毎（例えば、第３所定時間の経過毎）に更新される。以上が、メインフィードバック制御（従って、空燃比フィードバック制御）の概要である。
＜サブフィードバック制御＞
第１制御装置は下記（１０）式に示したように、所定の第１更新タイミングが到来する毎（例えば、第１所定時間の経過毎）に、下流側目標値Ｖｏｘｓｒｅｆから現時点の下流側空燃比センサ６８の出力値Ｖｏｘｓを減じることにより出力偏差量（第１偏差）ＤＶｏｘｓを求める。
ＤＶｏｘｓ＝Ｖｏｘｓｒｅｆ−Ｖｏｘｓ    …（１０）
（１０）式における下流側目標値Ｖｏｘｓｒｅｆは、上流側触媒５３の浄化効率が良好となるように定められる。下流側目標値Ｖｏｘｓｒｅｆは、本例において理論空燃比に相当する値（理論空燃比相当値）Ｖｓｔに設定される。
第１制御装置は、下記（１１）式に基いてサブフィードバック量Ｖａｆｓｆｂを求める。（１１）式において、Ｋｐは比例ゲイン（比例定数）、Ｋｉは積分ゲイン（積分定数）、Ｋｄは微分ゲイン（微分定数）である。また、ＳＤＶｏｘｓは、出力偏差量ＤＶｏｘｓの積分値（時間積分値）、ＤＤＶｏｘｓは出力偏差量ＤＶｏｘｓの微分値（時間微分値）である。
Ｖａｆｓｆｂ＝Ｋｐ・ＤＶｏｘｓ＋Ｋｉ・ＳＤＶｏｘｓ＋ｋｄ・ＤＤＶｏｘｓ    …（１１）
このように、第１制御装置は、下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標値Ｖｏｘｓｒｅｆに一致させる比例・積分・微分制御（ＰＩＤ制御）によりサブフィードバック量Ｖａｆｓｆｂを算出する。このサブフィードバック量Ｖａｆｓｆｂは、上述した（１）式に示したように、フィードバック制御用出力値Ｖａｂｙｆｃを算出するために使用される。
このように、第１制御装置は、所定の第１更新タイミングが到来する毎に下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標空燃比に応じた値（下流側目標値Ｖｏｘｓｒｅｆ、理論空燃比に相当する値Ｖｓｔ）に一致させるための第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）を、下流側空燃比センサ６８の出力値Ｖｏｘｓと下流側目標値Ｖｏｘｓｒｅｆに応じた値との差である第１偏差（出力偏差量ＤＶｏｘｓ）に基いて更新する第１フィードバック量更新手段を備える。
＜サブフィードバック制御の学習＞
第１制御装置は、所定の第２更新タイミングが到来する毎（第２の所定時間の経過毎、或いは、下流側空燃比センサ６８の出力値Ｖｏｘｓが理論空燃比に相当する値Ｖｓｔを横切る毎等）に、下記（１２）式に基いてサブフィードバック量Ｖａｆｓｆｂの学習値Ｖａｆｓｆｂｇを更新する。（１２）式の左辺Ｖａｆｓｆｂｇｎｅｗは更新後の学習値Ｖａｆｓｆｂｇを表す。つまり、サブＦＢ学習値Ｖａｆｓｆｂｇは、「第１フィードバック量であるサブフィードバック量Ｖａｆｓｆｂの定常成分を取り込むように（サブフィードバック量Ｖａｆｓｆｂの定常成分に応じた量となるように）更新される。」更新される。換言すると、サブＦＢ学習値Ｖａｆｓｆｂｇは、「第１フィードバック量であるサブフィードバック量Ｖａｆｓｆｂが、学習値Ｖａｆｓｆｂｇの更新をしない場合に収束するであろう値」に除々に接近するように、更新される。
（１２）式から明らかなように、学習値Ｖａｆｓｆｂｇはサブフィードバック量Ｖａｆｓｆｂの積分項Ｋｉ・ＳＤＶｏｘｓにノイズ除去のためのフィルタ処理を施した値である。（１２）式において、値ｐは０以上１未満の任意の値である。更新後の学習値Ｖａｆｓｆｂｇｎｅｗは学習値ＶａｆｓｆｂｇとしてバックアップＲＡＭ８４に格納される。（１２）式から明らかなように、値ｐが大きいほど、現時点の積分項Ｋｉ・ＳＤＶｏｘｓが学習値Ｖａｆｓｆｂｇに大きく反映される。即ち、値ｐを大きくするほど、学習値Ｖａｆｓｆｂｇの更新速度を大きくすることができ、学習値Ｖａｆｓｆｂｇを収束値と等しいであろう積分項Ｋｉ・ＳＤＶｏｘｓにより迅速に接近させることができる。なお、学習値Ｖａｆｓｆｂｇは下記の（１３）式に示したように更新されてもよい。
Ｖａｆｓｆｂｇｎｅｗ＝（１−ｐ）・Ｖａｆｓｆｂｇ＋ｐ・Ｋｉ・ＳＤＶｏｘｓ    …（１２）
Ｖａｆｓｆｂｇｎｅｗ＝（１−ｐ）・Ｖａｆｓｆｂｇ＋ｐ・Ｖａｆｓｆｂ    …（１３）
＜サブフィードバック制御の学習に伴うサブフィードバック量の補正＞
上記（１）式に示したように、第１制御装置は、サブフィードバック量Ｖａｆｓｆｂ及び学習値Ｖａｆｓｆｂｇを上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに加えることにより、フィードバック制御用出力値Ｖａｂｙｆｃを得る。学習値Ｖａｆｓｆｂｇはサブフィードバック量Ｖａｆｓｆｂの積分項Ｋｉ・ＳＤＶｏｘｓ（定常成分）の一部を取り込んだ値である。従って、学習値Ｖａｆｓｆｂｇを更新した場合、サブフィードバック量Ｖａｆｓｆｂをその更新分に応じて補正しないと、更新後の学習値Ｖａｆｓｆｂｇとサブフィードバック量Ｖａｆｓｆｂとにより二重の補正が行われる。従って、学習値Ｖａｆｓｆｂｇを更新した場合、サブフィードバック量Ｖａｆｓｆｂをその学習値Ｖａｆｓｆｂｇの更新分に応じて補正する必要がある。
そこで、第１制御装置は下記（１４）及び下記（１５）式に示したように、学習値Ｖａｆｓｆｂｇを変更量ΔＧだけ増加するように更新したとき、サブフィードバック量Ｖａｆｓｆｂを変更量ΔＧだけ減少させる修正を行う。（１４）式において、Ｖａｆｓｆｂｇ０は更新直前の学習値Ｖａｆｓｆｂｇである。従って、変更量ΔＧは正の値及び負の値の何れともなる。（１５）式において、Ｖａｆｓｆｂｎｅｗは修正後のサブフィードバック量Ｖａｆｓｆｂである。更に、第１制御装置は、学習値Ｖａｆｓｆｂｇを変更量ΔＧだけ増加するように更新したとき、出力偏差量ＤＶｏｘｓの積分値を下記（１６）式のように修正しておくことが望ましい。（１６）式においてＳＤＶｏｘｓｎｅｗは、修正後の出力偏差量ＤＶｏｘｓの積分値である。但し、（１４）式乃至（１６）式による補正を行わなくてもよい。
ΔＧ＝Ｖａｆｓｆｂｇ−Ｖａｆｓｆｂｇ０    …（１４）
Ｖａｆｓｆｂｎｅｗ＝Ｖａｆｓｆｂ−ΔＧ    …（１５）
ＳＤＶｏｘｓｎｅｗ＝ＳＤＶｏｘｓ−ΔＧ／Ｋｉ    …（１６）
以上、説明したように、第１制御装置は、サブフィードバック量Ｖａｆｓｆｂと学習値Ｖａｆｓｆｂｇとの和だけ上流側空燃比センサ６７の出力値Ｖａｂｙｆｓを補正し、その補正によって得られたフィードバック制御用出力値Ｖａｂｙｆｃに基いてフィードバック制御用空燃比ａｂｙｆｓｃを取得する。そして、制御装置は、取得したフィードバック制御用空燃比ａｂｙｆｓｃを上流側目標空燃比ａｂｙｆｒに一致させるように燃料噴射量Ｆｉを制御する。その結果、上流側空燃比ａｂｙｆｓは上流側目標空燃比ａｂｙｆｒに近づき、同時に、下流側空燃比センサ６８の出力値Ｖｏｘｓは下流側目標値Ｖｏｘｓｒｅｆに近づく。即ち、制御装置は、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓとサブフィードバック量Ｖａｆｓｆｂと学習値Ｖａｆｓｆｂｇとに基づき機関の混合気の空燃比を上流側目標空燃比ａｂｙｆｒに一致させる空燃比フィードバック制御手段を備えている。
このように、第１制御装置は、所定の第２更新タイミングが到来する毎に第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）に基いて第１フィードバック量の学習値（学習値Ｖａｆｓｆｂｇ）を更新する学習手段を備える。また、学習手段は、学習値Ｖａｆｓｆｂｇが更新されると、サブフィードバック量Ｖａｆｓｆｂを「更新した学習値Ｖａｆｓｆｂｇに応じた分（学習値Ｖａｆｓｆｂｇの変更量ΔＧ）」により補正し、出力偏差量ＤＶｏｘｓの積分値ＳＤＶｏｘｓも変更量ΔＧに応じて修正するようになっている。
＜サブフィードバック量の学習促進制御＞
第１制御装置は、更に、学習不足状態が発生していると推定されるとき、学習不足状態が発生していないと推定されないときに比較して、学習値Ｖａｆｓｆｂｇの更新速度を増大させるための学習促進制御を実行する学習促進手段を備える。学習不足状態は、「学習値Ｖａｆｓｆｂｇ」と「学習値Ｖａｆｓｆｂｇが収束すべき値」との差である第２偏差が所定値以上である状態である。
より具体的に述べると、第１制御装置は、学習値Ｖａｆｓｆｂｇの変化量（変化速度）が所定閾値以上であるとき、学習不足状態が発生していると推定する。学習値Ｖａｆｓｆｂｇの変化量は、例えば、更新回数において所定回数だけ前の時点にて更新された過去の学習値Ｖａｆｓｆｂｇｏｌｄ（例えば４回前に更新された学習値Ｖａｆｓｆｂｇ（４））と、今回更新された学習値Ｖａｆｓｆｂｇと、の差により取得され得る。
そして、第１制御装置は、学習不足状態が発生していると推定したとき、上記（１２）式の値ｐを、学習不足状態が発生していないと推定しているときの値ｐＳｍａｌｌよりも大きな値ｐＬａｒｇｅに設定する。この結果、学習値Ｖａｆｓｆｂｇの更新速度が大きくなるので、学習値Ｖａｆｓｆｂｇは収束値により迅速に接近する。
＜サブフィードバック量の学習促進制御の禁止＞
しかしながら、このような学習促進制御を実行している期間において、「機関の空燃比を過渡的に乱す状態」が発生すると、サブフィードバック量もそれに応じて収束値とは異なる値へと一時的に変化する場合がある。この結果、学習値が本来到達すべき値から乖離し、機関の空燃比が適正値から乖離してしまう虞がある。
そこで、第１制御装置は、図５の概念フローチャートに示したように、先ずステップ５１０にてサブフィードバック量の学習促進要求があるか否か（学習不足状態であるか否か）を判定し、学習促進要求がななければサブフィードバック量の学習を通常通り行うようにステップ５２０に進む。即ち、第１制御装置は、ステップ５２０に進むと、上記（１２）式の値ｐを値ｐＳｍａｌｌに設定し、通常のサブフィードバック量の学習を行う。
一方、ステップ５１０にてサブフィードバック量の学習促進要求がある場合、第１制御装置はステップ５３０に進み、「機関の空燃比を過渡的に乱す状態」が発生するか否か、即ち、「空燃比外乱」があるか否かを推定する。そして、空燃比外乱がないと推定されると、第１制御装置はステップ５４０に進み、上記（１２）式の値ｐを値ｐＳｍａｌｌよりも大きい値ｐＬａｒｇｅに設定し、サブフィードバック量の学習促進制御を実行する。これに対し、ステップ５３０にて「空燃比外乱」があると推定されるとき、第１制御装置はステップ５２０に進み、通常のサブフィードバック量の学習を行う。
この結果、学習促進制御を実行している際又は学習不足状態であるために学習促進要求が発生した際に「機関の空燃比を過渡的に乱す状態」が発生すると、学習促進制御が禁止（中止）されるので、サブフィードバック量の学習値Ｖａｆｓｆｂｇが大きく適値から乖離することを回避できる。従って、学習値Ｖａｆｓｆｂｇが収束値へと収束するまでの時間を結果的に短縮できるので、エミッションが悪化する期間を短縮することができる。
なお、上記「機関の空燃比を過渡的に乱す状態（空燃比の外乱）」は、例えば、蒸発燃料ガスパージ、内部ＥＧＲ量（筒内残留ガス量）、外部ＥＧＲ量、及び、燃料のアルコール濃度等に起因して発生する。
蒸発燃料ガスパージに起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。
・蒸発燃料ガスパージ中であってその蒸発燃料ガスの濃度が急変する場合。
・蒸発燃料ガスパージ中であってその蒸発燃料ガスの濃度が所定濃度よりも高い場合。
・後述する蒸発燃料ガス濃度学習値の「機関の始動後からの更新回数」が所定の更新回数閾値よりも小さい場合。
内部ＥＧＲ量に起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。
・内部ＥＧＲ量が意図している内部ＥＧＲ量よりも所定量以上大きくなる場合。
・内部ＥＧＲ量の変化速度（単位時間における変化量）が所定変化速度よりも大きくなる場合。
より具体的には、内部ＥＧＲ量に起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。バルブオーバーラップ量とは、バルブオーバーラップ期間の長さを表す量である。
・実際のバルブオーバーラップ量が目標オーバーラップ量よりも所定量以上大きくなる場合。
・バルブオーバーラップ量の変化速度が所定変化速度閾値以上である場合。
・バルブオーバーラップ量を決定する吸気弁開弁時期がその目標時期と所定値以上乖離する場合。
・バルブオーバーラップ量を決定する排気弁閉弁時期がその目標時期と所定値以上乖離する場合。
・吸気弁開弁時期の変化速度が所定変化速度以上である場合。
・排気弁閉弁時期の変化速度が所定変化速度以上である場合。
外部ＥＧＲ量に起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。
・外部ＥＧＲ量が意図している外部ＥＧＲ量よりも所定量以上大きくなる場合。
・外部ＥＧＲ量の変化速度（単位時間における変化量）が所定変化速度よりも大きくなる場合。
より具体的には、外部ＥＧＲ量に起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。
・外部ＥＧＲ率の変化速度が所定変化速度以上となる場合。
・実際の外部ＥＧＲ率が目標外部ＥＧＲ率よりも所定値以上大きくなる場合。これは、例えば、実際の外部ＥＧＲ弁の開度が目標外部ＥＧＲ弁開度よりも所定開度以上大きくなる場合でもある。
燃料のアルコール濃度に起因する「機関の空燃比を過渡的に乱す状態」は、以下のような場合に発生する。
燃料の燃料タンク４５への補給により燃料に含まれるアルコール濃度がその補給前のアルコール濃度よりも所定濃度以上変化した場合。なお、この状態は、機関の始動時毎にアルコール濃度センサ６９の出力値であるアルコール濃度ＥｔＯＨをバックアップＲＡＭ８４に格納しておき、次回の機関の始動時に得られるアルコール濃度ＥｔＯＨと、バックアップＲＡＭ８４に格納されているアルコール濃度ＥｔＯＨと、の差が所定濃度以上であるか否かを判定することにより検出される。
（実際の作動）
次に、上記のように構成された第１制御装置の実際の作動について説明する。
＜燃料噴射量制御＞
ＣＰＵ８１は、図６に示した最終燃料噴射量Ｆｉの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、その気筒（以下、「燃料噴射気筒」とも称呼する。）に対して繰り返し実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１はステップ６００から処理を開始し、以下に述べるステップ６１０乃至ステップ６６０の処理を順に行い、ステップ６９５に進んで本ルーチンを一旦終了する。
ステップ６１０：ＣＰＵ８１は「エアフローメータ６１により計測された吸入空気量Ｇａ、及び、機関回転速度ＮＥ」をルックアップテーブルＭａｐＭｃに適用することにより現時点の筒内吸入空気量Ｍｃ（ｋ）を求める。
ステップ６２０：ＣＰＵ８１は、メインＦＢ学習値ＫＧをバックアップＲＡＭ８４から読み出す。メインＦＢ学習値ＫＧは、後述する図８に示したメインフィードバック学習ルーチンにより別途求められ、バックアップＲＡＭ８４内に格納されている。
ステップ６３０：ＣＰＵ８１は上記（３）式に従って基本燃料噴射量Ｆｂ（ｋ）を求める。
ステップ６４０：ＣＰＵ８１はパージ補正係数ＦＰＧを下記の（１７）式に従って求める。（１７）式において、ＰＧＴは目標パージ率である。目標パージ率ＰＧＴは、後述する図９のステップ９３０において機関１０の運転状態に基いて求められている。ＦＧＰＧは蒸発燃料ガス濃度学習値である。蒸発燃料ガス濃度学習値ＦＧＰＧは、後述する図９に示したルーチンにより求められている。
ＦＰＧ＝１＋ＰＧＴ（ＦＧＰＧ−１）    …（１７）
ステップ６５０：ＣＰＵ８１は、基本燃料噴射量Ｆｂ（ｋ）を上記（４）式に従って補正することにより、最終的な燃料噴射量（指令噴射量）Ｆｉを求める。なお、メインフィードバック係数ＦＡＦは後述する図７に示したルーチンにより求められている。
ステップ６６０：ＣＰＵ８１は、最終燃料噴射量Ｆｉの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁３９から噴射するように、その燃料噴射弁３９に指示信号を送出する。
以上により、基本燃料噴射量Ｆｂがメインフィードバック値ＤＦｉ（実際にはメインフィードバック係数ＦＡＦ）等により補正され、その補正の結果である最終燃料噴射量Ｆｉの燃料が燃料噴射気筒に対して噴射される。
＜メインフィードバック制御＞
ＣＰＵ８１は図７にフローチャートにより示したメインフィードバック量（第２フィードバック量）算出ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ７００から処理を開始し、ステップ７０５に進んでメインフィードバック制御条件（上流側空燃比フィードバック制御条件）が成立しているか否かを判定する。メインフィードバック制御条件は、例えば、フューエルカット中でなく、機関の冷却水温ＴＨＷが第１所定温度以上であり、負荷ＫＬが所定値以下であり、且つ、上流側空燃比センサ６７が活性化しているときに成立する。
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ７０５にて「Ｙｅｓ」と判定して以下に述べるステップ７１０乃至ステップ７５０の処理を順に行い、ステップ７９５に進んで本ルーチンを一旦終了する。
ステップ７１０：ＣＰＵ８１は、上記（１）式に従ってフィードバック制御用出力値Ｖａｂｙｆｃを取得する。
ステップ７１５：ＣＰＵ８１は、上記（２）式に従ってフィードバック制御用空燃比ａｂｙｆｓｃを取得する。
ステップ７２０：ＣＰＵ８１は、上記（５）式に従って筒内燃料供給量Ｆｃ（ｋ−Ｎ）を取得する。
ステップ７２５：ＣＰＵ８１は、上記（６）式に従って目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を取得する。
ステップ７３０：ＣＰＵ８１は、上記（７）式に従って筒内燃料供給量偏差ＤＦｃを取得する。
ステップ７３５：ＣＰＵ８１は、上記（８）式に従ってメインフィードバック値ＤＦｉを取得する。なお、本例において、係数ＫＦＢは「１」に設定されている。筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃは次のステップ７４０にて求められる。
ステップ７４０：ＣＰＵ８１は、その時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ７３０にて求められた筒内燃料供給量偏差ＤＦｃを加えることにより、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを取得する。
ステップ７４５：ＣＰＵ８１は、上記（９）式に従ってメインフィードバック係数ＦＡＦを求める。
ステップ７５０：ＣＰＵ８１は、下記（１８）式に従ってメインフィードバック係数ＦＡＦの加重平均値をメインフィードバック係数平均ＦＡＦＡＶ（以下、「補正係数平均ＦＡＦＡＶ」とも称呼する。）として求める。（１８）式においてＦＡＦＡＶｎｅｗは更新後の補正係数平均ＦＡＦＡＶであり、そのＦＡＦＡＶｎｅｗが新たな補正係数平均ＦＡＦＡＶとして格納される。また、（１８）式において、値ｑは０より大きく１より小さい定数である。この補正係数平均ＦＡＦＡＶは、後述する「メインＦＢ学習値ＫＧ及び蒸発燃料ガス濃度学習値ＦＧＰＧ」を求める際に用いられる。
ＦＡＦＡＶｎｅｗ＝ｑ・ＦＡＦ＋（１−ｑ）・ＦＡＦＡＶ    …（１８）
以上により、メインフィードバック値ＤＦｉが比例積分制御により求められ、このメインフィードバック値ＤＦｉがメインフィードバック係数ＦＡＦへと変換された上で前述した図６のステップ６５０において最終燃料噴射量Ｆｉに反映される。この結果、燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が上流側目標空燃比ａｂｙｆｒ（特殊な場合を除き、理論空燃比）と略一致させられる。
一方、ステップ７０５の判定時において、メインフィードバック制御条件が不成立であると、ＣＰＵ８１はそのステップ７０５にて「Ｎｏ」と判定してステップ７５５に進み、メインフィードバック値ＤＦｉの値を「０」に設定する。次いで、ＣＰＵ８１は、ステップ７６０にて筒内燃料供給量偏差の積分値ＳＤＦｃを「０」に設定し、ステップ７６５にてメインフィードバック係数ＦＡＦの値を「１」に設定し、ステップ７７０にて補正係数平均ＦＡＦＡＶの値を「１」に設定する。
その後、ＣＰＵ８１は、ステップ７９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック値ＤＦｉの値は「０」に設定され、メインフィードバック係数ＦＡＦの値は「１」に設定される。従って、基本燃料噴射量Ｆｂのメインフィードバック係数ＦＡＦによる補正は行わない。但し、このような場合であっても、基本燃料噴射量ＦｂはメインＦＢ学習値ＫＧによって補正される。
＜メインフィードバック学習（ベース空燃比学習）＞
第１制御装置はパージ制御弁４９を完全に閉じた状態に維持する指示信号が同パージ制御弁に送出されている「パージ制御弁閉弁指示期間（デューティ比ＤＰＧが「０」である期間）」において、メインフィードバック係数ＦＡＦを基本値「１」に近づけるように、補正係数平均ＦＡＦＡＶに基いてメインＦＢ学習値ＫＧを更新する。
このメインＦＢ学習値ＫＧの更新を行うために、ＣＰＵ８１は図８に示したメインフィードバック学習ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵ８１は所定のタイミングになるとステップ８００から処理を開始し、ステップ８０５に進んでメインフィードバック制御が実行中であるか否か（即ち、メインフィードバック条件が成立しているか否か）を判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ８０５にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。この結果、メインＦＢ学習値ＫＧの更新は行われない。
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ８１０に進んで「蒸発燃料ガスパージが行われていないか否か（具体的には、後述する図９のルーチンにより求められる目標パージ率ＰＧＴが「０」でないか否か）」を判定する。このとき、蒸発燃料ガスパージが行われていると、ＣＰＵ８１はそのステップ８１０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。この結果、メインＦＢ学習値ＫＧの更新は行われない。
他方、ＣＰＵ８１がステップ８１０に進んだ際に蒸発燃料ガスパージが行われていなければ、ＣＰＵ８１はステップ８１０にて「Ｙｅｓ」と判定してステップ８１５に進み、補正係数平均ＦＡＦＡＶの値が値１＋α（αは０より大きく１より小さい微小な所定値であり、例えば、０．０２）以上であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１＋α以上であると、ＣＰＵ８１はステップ８２０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ増大させる。その後、ＣＰＵ８１はステップ８３５に進む。
これに対し、ＣＰＵ８１がステップ８１５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１＋αよりも小さいと、ＣＰＵ８１はステップ８２５に進んで補正係数平均ＦＡＦＡＶの値が値１−α以下であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１−α以下であると、ＣＰＵ８１はステップ８３０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ減少させる。その後、ＣＰＵ８１はステップ８３５に進む。
更に、ＣＰＵ８１はステップ８３５に進んだとき、そのステップ８３５にてメインフィードバック学習完了フラグ（メインＦＢ学習完了フラグ）ＸＫＧの値を「０」に設定する。メインＦＢ学習完了フラグＸＫＧは、その値が「１」であるときにメインフィードバック学習が完了しており、その値が「０」であるときにメインフィードバック学習が完了していないことを示す。次いで、ＣＰＵ８１はステップ８４０に進み、メイン学習カウンタＣＫＧの値を「０」に設定する。なお、メイン学習カウンタＣＫＧの値は、機関１０が搭載された車両の図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際に実行されるイニシャルルーチンにても「０」に設定されるようになっている。その後、ＣＰＵ８１はステップ８９５に進み、本ルーチンを一旦終了する。
加えて、ＣＰＵ８１がステップ８２５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１−αよりも大きいと（即ち、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値であると）、ＣＰＵ８１はステップ８４５に進んでメイン学習カウンタＣＫＧの値を「１」だけ増大する。
次に、ＣＰＵ８１はステップ８５０に進み、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であるか否かを判定する。そして、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であれば、ＣＰＵ８１はステップ８５５に進んでメインＦＢ学習完了フラグＸＫＧの値を「１」に設定する。即ち、機関１０の始動後において補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値である回数がメイン学習カウンタ閾値ＣＫＧｔｈ以上となると、メインＦＢ学習値ＫＧの学習は完了したと見做される。その後、ＣＰＵ８１はステップ８９５に進んで、本ルーチンを一旦終了する。
また、ＣＰＵ８１は、ステップ８５０に進んだとき、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈよりも小さければ、ＣＰＵ８１はそのステップ８５０からステップ８９５に直接進んで本ルーチンを一旦終了する。
なお、メイン学習カウンタＣＫＧの値は、ステップ８０５及びステップ８１０の何れかにおいて「Ｎｏ」と判定された際にも「０」に設定されるように、プログラムを構成してもよい。これによれば、ステップ８１５以降に進む状態（即ち、今回のメインフィードバック学習が行われている期間）において、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値である回数がメイン学習カウンタ閾値ＣＫＧｔｈ以上となったとき、メインＦＢ学習値ＫＧの学習は完了したと見做される。
以上により、メインフィードバック制御中であって蒸発燃料ガスパージが行われていない間にメインＦＢ学習値ＫＧが更新される。
＜パージ制御弁駆動＞
一方、ＣＰＵ７１は図９に示したパージ制御弁駆動ルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになるとＣＰＵ８１はステップ９００から処理を開始し、ステップ９１０に進んでパージ条件が成立しているか否かを判定する。このパージ条件は、例えば、空燃比フィードバック制御が実行中であり、且つ、機関１０が定常運転されているとき（例えば、機関の負荷を表すスロットル弁開度ＴＡの単位時間あたりの変化量が所定値以下のとき）に成立する。
いま、パージ条件が成立していると仮定する。この場合、ＣＰＵ８１は図９のステップ９１０にて「Ｙｅｓ」と判定してステップ９２０に進み、メインＦＢ学習完了フラグＸＫＧの値が「１」であるか否か（即ち、メインフィードバック学習が完了しているか否か）を判定する。このとき、メインＦＢ学習完了フラグＸＫＧの値が「１」であると、ＣＰＵ８１はステップ９２０にて「Ｙｅｓ」と判定し、以下に述べるステップ９３０乃至ステップ９７０の処理を順に行い、ステップ９９５に進んで本ルーチンを一旦終了する。
ステップ９３０：ＣＰＵ８１は、目標パージ率ＰＧＴを機関１０の運転状態（例えば、機関の負荷ＫＬ及び回転速度ＮＥ）に基いて設定する。また、目標パージ率ＰＧＴは、補正係数平均ＦＡＦＡＶの値が値１＋αと値１−αの間にある場合、所定量ずつ増大されてもよい。なお、負荷ＫＬは、本例において負荷率（充填率）ＫＬであり、下記の（Ａ）式に基いて算出される。この（１８）式において、ρは空気密度（単位は（ｇ／ｌ））、Ｌは機関１０の排気量（単位は（ｌ））、４は機関１０の気筒数である。但し、負荷ＫＬは、筒内吸入空気量Ｍｃ、スロットル弁開度ＴＡ及びアクセルペダル操作量Ａｃｃｐ等であってもよい。
ＫＬ＝｛Ｍｃ（ｋ）／（ρ・Ｌ／４）｝・１００（％）    …（Ａ）
ステップ９４０：ＣＰＵ８１は、下記（１９）式に従って目標パージ率ＰＧＴ及び吸入空気量（流量）Ｇａから「蒸発燃料ガスの流量であるパージ流量（蒸発燃料ガスパージ量）ＫＰ」を算出する。換言すると、パージ率は、吸入空気量Ｇａに対するパージ流量ＫＰの比である。パージ率は、「吸入空気量Ｇａと蒸発燃料ガスパージ量ＫＰとの和（Ｇａ＋ＫＰ）」に対する蒸発燃料ガスパージ量ＫＰの比として表されてもよい。
ＫＰ＝Ｇａ・ＰＧＴ  …（１９）
ステップ９５０：ＣＰＵ８１は、下記（２０）式に示したように、回転速度ＮＥ及び負荷ＫＬをマップＭａｐＰＧＲＭＸに適用することにより、全開パージ率ＰＧＲＭＸを求める。この全開パージ率ＰＧＲＭＸは、パージ制御弁４９を全開にしたときのパージ率である。マップＭａｐＰＧＲＭＸは実験又はシミュレーションの結果に基づき予め取得され、ＲＯＭ８２内に格納されている。マップＭａｐＰＧＲＭＸによれば、全開パージ率ＰＧＲＭＸは回転速度ＮＥが大きくなるほど、又は、負荷ＫＬが大きくなるほど、小さくなる。
ＰＧＲＭＸ＝ＭａｐＰＧＲＭＸ（ＮＥ，ＫＬ）  …（２０）
ステップ９６０：ＣＰＵ８１は、下記（２１）式に従って全開パージ率ＰＧＲＭＸ及び目標パージ率ＰＧＴを用いてデューティ比ＤＰＧを算出する。
ＤＰＧ＝（ＰＧＴ／ＰＧＲＭＸ）・１００  …（２１）
ステップ９７０：ＣＰＵ８１は、パージ制御弁４９をデューティ比ＤＰＧに基いて開閉制御する。
これに対し、ＣＰＵ８１は、パージ条件が成立していていない場合にはステップ９１０にて「Ｎｏ」と判定してステップ９８０に進み、メインＦＢ学習完了フラグＸＫＧの値が「０」である場合にはステップ９２０にて「Ｎｏ」と判定してステップ９８０に進む。そして、ＣＰＵ８１はステップ９８０にてパージ流量ＫＰを「０」に設定し、続くステップ９９０にてデューティ比ＤＰＧを「０」に設定した後、ステップ９７０へと進む。このとき、デューティ比ＤＰＧは「０」に設定されているからパージ制御弁４９は完全に閉じられた状態となる。その後、ＣＰＵ７１はステップ９９５に進んで本ルーチンを一旦終了する。
＜蒸発燃料ガス濃度学習＞
更に、ＣＰＵ８１は、所定時間が経過する毎に図１０に示した蒸発燃料ガス濃度学習ルーチンを実行するようになっている。この蒸発燃料ガス濃度学習ルーチンの実行によって、蒸発燃料ガスパージが行われている間に蒸発燃料ガス濃度学習値ＦＧＰＧの更新が行われる。
即ち、ＣＰＵ８１は所定のタイミングになるとステップ１０００から処理を開始してステップ１００５に進み、メインフィードバック制御が実行中であるか否かを判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ１００５にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ１０１０に進んで「蒸発燃料ガスパージが行われているか否か（具体的には、図９のルーチンにより求められる目標パージ率ＰＧＴが「０」か否か）」を判定する。このとき、蒸発燃料ガスパージが行われていないと、ＣＰＵ８１はそのステップ１０１０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
他方、ＣＰＵ８１がステップ１０１０に進んだ際に蒸発燃料ガスパージが行われていると、ＣＰＵ８１はステップ１０１０にて「Ｙｅｓ」と判定してステップ１０１５に進み、補正係数平均ＦＡＦＡＶから「１」を減じた値の絶対値｜ＦＡＦＡＶ−１｜が所定値β以上であるか否かを判定する。ここで、βは０より大きく１より小さい微小な所定値であり、例えば、０．０２である。
このとき、絶対値｜ＦＡＦＡＶ−１｜がβ以上であると、ＣＰＵ８１はステップ１０１５にて「Ｙｅｓ」と判定してステップ１０２０に進み、下記（２２）式に従って更新値ｔＦＧを求める。（２２）式における目標パージ率ＰＧＴは、図９のステップ９３０にて設定されている。（２２）式から明らかなように、更新値ｔＦＧは目標パージ率１％当たりの「偏差εａ（ＦＡＦＡＶの１からの差＝ＦＡＦＡＶ−１）」である。その後、ＣＰＵ８１はステップ１０３０に進む。
ｔＦＧ＝（ＦＡＦＡＶ−１）／ＰＧＴ  …（２２）
蒸発燃料ガスに含まれる蒸発燃料ガスの濃度が高いほど、上流側空燃比ａｂｙｆｓは理論空燃比よりもより小さい空燃比（理論空燃比よりもリッチ側の空燃比）となる。従って、メインフィードバック係数ＦＡＦはより小さい値になるので、補正係数平均ＦＡＦＡＶも「１」より小さい値となる。その結果、ＦＡＦＡＶ−１は負の値となるので、更新値ｔＦＧは負の値となる。更に、更新値ｔＦＧの絶対値は、ＦＡＦＡＶが小さいほど（「１」から乖離するほど）大きな値となる。つまり、蒸発燃料ガスの濃度が高いほど、更新値ｔＦＧはその絶対値の大きい負の値となる。
これに対し、絶対値｜ＦＡＦＡＶ−１｜が値β以下である場合、ＣＰＵ８１はステップ１０１５にて「Ｎｏ」と判定してステップ１０２５に進み、更新値ｔＦＧを「０」に設定する。その後、ＣＰＵ８１はステップ１０３０に進む。
ＣＰＵ８１は、ステップ１０３０において、下記（２３）式に従って蒸発燃料ガス濃度学習値ＦＧＰＧを更新する。（２３）式においてＦＧＰＧｎｅｗは更新後の蒸発燃料ガス濃度学習値ＦＧＰＧである。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧは、蒸発燃料ガスの濃度が高いほど小さい値になる。なお、蒸発燃料ガス濃度学習値ＦＧＰＧの初期値は「１」に設定されている。
ＦＧＰＧｎｅｗ＝ＦＧＰＧ＋ｔＦＧ  …（２３）
次に、ＣＰＵ８１はステップ１０３５に進み、蒸発燃料ガス濃度学習値の更新回数ＣＦＧＰＧ（以下、「更新回数ＣＦＧＰＧ」とも称呼する。）を「１」だけ増大する。更新回数ＣＦＧＰＧは上述したイニシャルルーチンにおいて「０」に設定されるようになっている。
次に、ＣＰＵ８１はステップ１０４０に進み、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈ以上であるか否かを判定する。このとき、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈ以上であれば、ＣＰＵ８１はステップ１０４５に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。
これに対し、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈよりも小さければ、蒸発燃料ガスの濃度が十分には学習されていない。従って、ＣＰＵ８１は、空燃比を変動させる外乱が発生すると推定し、ステップ１０５０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。空燃比外乱発生フラグＸＧＩＲＮの値は、後述する図１３に示した学習促進制御ルーチンにおいて、学習促進制御を実行すべきか禁止すべきかを決定する際に参照される。なお、空燃比外乱発生フラグＸＧＩＲＮの値は、上述したイニシャルルーチンにおいて「０」に設定されるようになっている。
＜サブフィードバック量及びサブＦＢ学習値算出＞
ＣＰＵ８１は、サブフィードバック量Ｖａｆｓｆｂ及びサブフィードバック量Ｖａｆｓｆｂの学習値Ｖａｆｓｆｂｇを算出するために、図１１に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１１００から処理を開始し、ステップ１１０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述した図７のステップ７０５におけるメインフィードバック制御条件が成立し、上流側目標空燃比ａｂｙｆｒが理論空燃比に設定され、機関の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上であり、且つ、下流側空燃比センサ６８が活性化しているときに成立する。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１はステップ１１０５にて「Ｙｅｓ」と判定し、以下に述べるステップ１１１０乃至ステップ１１６０の処理を順に行い、ステップ１１９５に進んで本ルーチンを一旦終了する。
ステップ１１１０：ＣＰＵ８１は、上記（１０）式に従って下流側目標値Ｖｏｘｓｒｅｆと下流側空燃比センサ６８の出力値Ｖｏｘｓ（即ち、理論空燃比相当値Ｖｓｔ）との差である出力偏差量ＤＶｏｘｓを取得する。出力偏差量ＤＶｏｘｓは「第１偏差」とも称呼される。
ステップ１１１５：ＣＰＵ８１は、上記（１１）式に従ってサブフィードバック量Ｖａｆｓｆｂを取得する。
ステップ１１２０：ＣＰＵ８１は、その時点における出力偏差量の積分値ＳＤＶｏｘｓに上記ステップ１１１０にて求めた出力偏差量ＤＶｏｘｓを加えて、新たな出力偏差量の積分値ＳＤＶｏｘｓを取得する。
ステップ１１２５：ＣＰＵ８１は、「上記ステップ１１１０にて算出した出力偏差量ＤＶｏｘｓ」から「本ルーチンを前回実行した際に算出された出力偏差量である前回出力偏差量ＤＶｏｘｓｏｌｄ」を減じることにより、新たな出力偏差量の微分値ＤＤＶｏｘｓを求める。
ステップ１１３０：ＣＰＵ８１は、「上記ステップ１１１０にて算出した出力偏差量ＤＶｏｘｓ」を「前回出力偏差量ＤＶｏｘｓｏｌｄ」として格納する。
このように、ＣＰＵ８１は、下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標値Ｖｏｘｓｒｅｆに一致させるための比例・積分・微分（ＰＩＤ）制御により「サブフィードバック量Ｖａｆｓｆｂ」を算出する。このサブフィードバック量Ｖａｆｓｆｂは、上述した（１）式に示したように、フィードバック制御用出力値Ｖａｂｙｆｃを算出するために使用される。
ステップ１１３５：ＣＰＵ８１は、その時点のサブＦＢ学習値Ｖａｆｓｆｂｇを更新前学習値Ｖａｆｓｆｂｇ０として格納する。
ステップ１１４０：ＣＰＵ８１は、上記（１２）式又は上記（１３）式に従ってサブＦＢ学習値Ｖａｆｓｆｂｇを更新する。更新されたサブＦＢ学習値Ｖａｆｓｆｂｇ（＝Ｖａｆｓｆｂｇｎｅｗ）はバックアップＲＡＭ８４に格納される。ここで、上記（１２）式及び上記（１３）式の値ｐは後述する図１３に示した学習促進制御ルーチンにより、学習促進制御禁止時を含む通常時にはｐＳｍａｌｌ、学習促進制御実行時にはｐＳｍａｌｌよりも大きいｐＬａｒｇｅに設定されている。
なお、（１２）式から明らかなように、サブＦＢ学習値Ｖａｆｓｆｂｇは「サブフィードバック量Ｖａｆｓｆｂの積分項Ｋｉ・ＳＤＶｏｘｓ」に「ノイズ除去のためのフィルタ処理」を施した値である。換言すると、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブフィードバック量Ｖａｆｓｆｂの定常成分（積分項）に応じた値である。
また、（１３）式から明らかなように、サブＦＢ学習値ＶａｆｓｆｂｇはサブＦＢ学習値Ｖａｆｓｆｂｇの一次遅れ量（なまし値）である。
従って、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブＦＢ学習値Ｖａｆｓｆｂｇの定常成分を結果的に取り込むように更新される。
ステップ１１４５：ＣＰＵ８１は、上記（１４）式に従ってサブＦＢ学習値Ｖａｆｓｆｂｇの変更量（更新量）ΔＧを算出する。
ステップ１１５０：ＣＰＵ８１は、上記（１５）式に従ってサブフィードバック量Ｖａｆｓｆｂを変更量ΔＧにより補正する。
ステップ１１５５：ＣＰＵ８１は、上記（１６）式に従って積分項Ｋｉ・ＳＤＶｏｘｓを変更量ΔＧに基いて補正する。なお、ステップ１１５５を省略してもよい。また、ステップ１１４５乃至ステップ１１５５を省略してもよい。
ステップ１１６０：ＣＰＵ８１は、本ルーチンのステップ１１４０が３回前に実行された際に得られた学習値Ｖａｆｓｆｂｇ（３）を、ステップ１１４０が４回前に実行された際に得られた学習値Ｖａｆｓｆｂｇ（４）として記憶する。以下、ステップ１１４０がｎ回前に実行された際に得られた学習値Ｖａｆｓｆｂｇ（ｎ）を単に「ｎ回前の学習値Ｖａｆｓｆｂｇ（ｎ）」と称呼する。更に、ＣＰＵ８１は、２回前の学習値Ｖａｆｓｆｂｇ（２）を３回前の学習値Ｖａｆｓｆｂｇ（３）として記憶し、１回前の学習値Ｖａｆｓｆｂｇ（１）を２回前の学習値Ｖａｆｓｆｂｇ（２）として記憶する。そして、ＣＰＵ８１は上記ステップ１１４０にて得られた今回の学習値Ｖａｆｓｆｂｇを１回前の学習値Ｖａｆｓｆｂｇ（１）として記憶する。
以上の処理により、所定時間の経過毎（所定の第１更新タイミングが到来する毎、及び、所定の第２更新タイミングが到来する毎）にサブフィードバック量ＶａｆｓｆｂとサブＦＢ学習値Ｖａｆｓｆｂｇとが更新される。
一方、サブフィードバック制御条件が成立していない場合、ＣＰＵ８１は図１１のステップ１１０５にて「Ｎｏ」と判定し、以下に述べるステップ１１６５及びステップ１１７０の処理を順に行い、ステップ１１９５に進んで本ルーチンを一旦終了する。
ステップ１１６５：ＣＰＵ８１はサブフィードバック量Ｖａｆｓｆｂの値を「０」に設定する。
ステップ１１７０：ＣＰＵ８１は出力偏差量の積分値ＳＤＶｏｘｓの値を「０」に設定する。
これにより、上記（１）式から明らかなように、フィードバック制御用出力値Ｖａｂｙｆｃは、上流側空燃比センサ６７の出力値ＶａｂｙｆｓとサブＦＢ学習値Ｖａｆｓｆｂｇとの和となる。即ち、この場合、「サブフィードバック量Ｖａｆｓｆｂの更新」及び「サブフィードバック量Ｖａｆｓｆｂの最終燃料噴射量Ｆｉへの反映」は停止される。但し、少なくとも、サブフィードバック量Ｖａｆｓｆｂの積分項に対応するサブＦＢ学習値Ｖａｆｓｆｂｇは最終燃料噴射量Ｆｉに反映される。
＜サブフィードバック量のズレ大判定＞
ＣＰＵ８１は、サブＦＢ学習値の学習促進制御を実行する必要があるか否かを判定するために、図１２に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１２００から処理を開始し、ステップ１２１０に進んで「現時点がサブＦＢ学習値Ｖａｆｓｆｂｇの更新直後の時点」であるか否かを判定する。このとき、現時点がサブＦＢ学習値Ｖａｆｓｆｂｇの更新直後の時点でなければ、ＣＰＵ８１はステップ１２１０からステップ１２９５に直接進んで本ルーチンを一旦終了する。
これに対し、現時点がサブＦＢ学習値Ｖａｆｓｆｂｇの更新直後の時点であると、ＣＰＵ８１はステップ１２１０にて「Ｙｅｓ」と判定してステップ１２２０に進み、下記の（２４）式が成立しているか否かを判定する。
｜Ｖａｆｓｆｂｇ−Ｖａｆｓｆｂｇ（４）｜＞Ｖｔｈ  …（２４）
即ち、ＣＰＵ８１は、所定回数前（本例においては４回前）に更新された学習値Ｖａｆｓｆｂｇ（４）と今回更新された学習値Ｖａｆｓｆｂｇとの差の絶対値が、所定閾値Ｖｔｈより大きいか否かを判定する。仮に学習値Ｖａｆｓｆｂｇが収束値から「所定値」以上偏移していると、学習値Ｖａｆｓｆｂｇは更新される毎に相当に大きい量だけ更新されるので、上記（２４）式が成立する。換言すると、（２４）式が成立することは、「学習値Ｖａｆｓｆｂｇ」と「その学習値Ｖａｆｓｆｂｇが収束すべき値」との差である「第２偏差」が所定値以上である学習不足状態が発生していると推定される。
そこで、ＣＰＵ８１は、上記（２４）式が成立するとき、ステップ１２２０にて「Ｙｅｓ」と判定してステップ１２３０に進み、ズレ判定カウンタＣＺの値を「１」だけ増大する。次いで、ＣＰＵ８１はステップ１２４０に進み、ズレ判定カウンタＣＺの値がズレ判定閾値（学習促進制御要求閾値）ＣＺｔｈ以上であるか否かを判定する。
このとき、ズレ判定カウンタＣＺの値がズレ判定閾値ＣＺｔｈよりも小さければ、ＣＰＵ８１はステップ１２９５に直接進んで本ルーチンを一旦終了する。
一方、「学習値Ｖａｆｓｆｂｇ」と「その学習値Ｖａｆｓｆｂｇが収束すべき値」の差が相当に大きい状態においては、ステップ１２２０の判定条件が連続的に成立する。従って、ステップ１２３０の処理が繰り返されるので、ズレ判定カウンタＣＺの値は次第に増大し、所定のタイミングにてズレ判定閾値ＣＺｔｈ以上となる。このとき、ＣＰＵ８１がステップ１２４０の処理を実行すると、ＣＰＵ８１はそのステップ１２４０にて「Ｙｅｓ」と判定してステップ１２５０に進み、学習促進要求フラグＸＺＬ（ズレ大判定フラグＸＺＬ）の値を「１」に設定する。なお、学習促進要求フラグＸＺＬは、上述したイニシャルルーチンにおいて「０」に設定されるようになっている。但し、学習促進要求フラグＸＺＬは、上述したイニシャルルーチンにおいて「１」に設定されるようになっていてもよい。
他方、ステップ１２２０の判定条件（上記（２４）式）が成立しないとき、ＣＰＵ８１はそのステップ１２２０にて「Ｎｏ」と判定し、ステップ１２６０に進んでズレ判定カウンタＣＺの値を「１」だけ減少する。次いで、ＣＰＵ８１はステップ１２７０に進み、ズレ判定カウンタＣＺの値がズレ小判定閾値（学習促進制御不要閾値）ＣＺｔｈ−ＤＣＺ以下であるか否かを判定する。ここで、ＤＣＺは正の値であり、ＣＺｔｈ−ＤＣＺも正の値である。つまり、ズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）はズレ判定閾値ＣＺｔｈよりも小さい。
このとき、ズレ判定カウンタＣＺの値がズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）よりも大きければ、ＣＰＵ８１はステップ１２９５に直接進んで本ルーチンを一旦終了する。
一方、「学習値Ｖａｆｓｆｂｇ」と「その学習値Ｖａｆｓｆｂｇが収束すべき値」の差が小さくなっている状態においては、ステップ１２２０の判定条件が連続的に不成立となる。従って、ステップ１２６０の処理が繰り返されるので、ズレ判定カウンタＣＺの値は次第に減少し、所定のタイミングにてズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）以下となる。このとき、ＣＰＵ８１がステップ１２７０の処理を実行すると、ＣＰＵ８１はそのステップ１２７０にて「Ｙｅｓ」と判定してステップ１２８０に進み、学習促進要求フラグＸＺＬ（ズレ大判定フラグＸＺＬ）の値を「０」に設定する。以上により、学習促進要求フラグＸＺＬの値が設定される。
＜サブＦＢ学習値の学習促進制御（その１）＞
ＣＰＵ８１は、図１３に示したサブＦＢ学習値Ｖａｆｓｆｂｇの学習促進ルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１３００から処理を開始してステップ１３１０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。
このとき、学習促進要求フラグＸＺＬの値が「０」であると、ＣＰＵ８１はステップ１３１０にて「Ｎｏ」と判定してステップ１３２０に進み、図１１のステップ１１４０にて使用される上記（１２）式（又は上記（１３）式）中の値ｐを第１の値（通常学習速度対応値）ｐＳｍａｌｌに設定する。その後、ＣＰＵ８１はステップ１３９５に進み、本ルーチンを一旦終了する。この結果、図１１のステップ１１４０にて、学習値Ｖａｆｓｆｂｇは新たに求められた積分項Ｋｉ・ＳＤＶｏｘｓを僅かずつ取り込むので、穏やかにサブフィードバック量Ｖａｆｓｆｂの収束値へと接近する。或いは、図１１のステップ１１４０にて上記（１３）式が用いられると、学習値ＶａｆｓｆｂｇはサブＦＢ学習値Ｖａｆｓｆｂｇの定常値に穏やかに接近する。即ち、通常学習制御が実行される。
一方、学習促進要求フラグＸＺＬの値が「１」であると、ＣＰＵ８１はステップ１３１０にて「Ｙｅｓ」と判定してステップ１３３０に進み、空燃比外乱発生フラグＸＧＩＲＮの値が「０」であるか否かを判定する。このとき、上述した図１２のステップ１２５０において空燃比外乱発生フラグＸＧＩＲＮの値が「１」に設定されていると、ＣＰＵ８１はステップ１３３０にて「Ｎｏ」と判定し、前述したステップ１３２０に進む。従って、通常学習制御が実行される。
これに対し、ＣＰＵ８１がステップ１３３０に進んだとき、空燃比外乱発生フラグＸＧＩＲＮの値が「０」に設定されていると、ＣＰＵ８１はステップ１３３０にて「Ｙｅｓ」と判定してステップ１３４０に進む。そして、ＣＰＵ８１は、ステップ１３４０にて、図１１のステップ１１４０にて使用される上記（１２）式（又は上記（１３）式）中の値ｐを第２の値（学習促進速度対応値）ｐＬａｒｇｅに設定する。この第２の値ｐＬａｒｇｅは第１の値ｐＳｍａｌｌよりも大きい。この結果、図１１のステップ１１４０にて、新たに求められた積分項Ｋｉ・ＳＤＶｏｘｓが学習値Ｖａｆｓｆｂｇに大きな割合で取り込まれるので、学習値Ｖａｆｓｆｂｇは速やかにサブフィードバック量Ｖａｆｓｆｂの収束値へと接近する。或いは、図１１のステップ１１４０にて上記（１３）式が用いられると、学習値ＶａｆｓｆｂｇはサブＦＢ学習値Ｖａｆｓｆｂｇの定常値に速やかに接近する。即ち、学習促進制御が実行される。
以上、説明したように、第１制御装置は、学習値Ｖａｆｓｆｂｇを速やかにサブフィードバック量Ｖａｆｓｆｂの収束値へと接近させる学習促進制御の要求が発生しても（即ち、学習促進要求フラグＸＺＬの値が「１」に設定されても）、蒸発燃料ガス濃度学習値の更新回数ＣＦＧＰＧが更新回数閾値ＣＦＧＰＧｔｈよりも小さく、従って、基本燃料噴射量Ｆｂに対するパージ補正係数ＦＰＧによる補正が十分でないためにエバポパージに起因する「機関の空燃比を過渡的に乱す状態」が発生すると推定されるとき（即ち、空燃比外乱発生フラグＸＧＩＲＮの値が「１」に設定されているとき）、学習促進制御を禁止する。従って、学習値Ｖａｆｓｆｂｇが本来収束すべき値と相違する値に変化することを回避することができる。
なお、第１制御装置は、
複数の気筒を有する多気筒内燃機関１０に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室２５（本例では、総ての気筒の燃焼室２５）から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒５３と、
前記少なくとも２以上の気筒の燃焼室２５（本例では、総ての気筒の燃焼室２５）に供給される混合気に含まれる燃料を噴射する燃料噴射弁３９と、
前記排気通路であって前記触媒５３よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサ６８と、
所定の第１更新タイミング（図１１のルーチンが実行されるタイミング）が到来する毎に前記下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標空燃比に応じた値（下流側目標値Ｖｏｘｓｒｅｆ＝理論空燃比相当値Ｖｓｔ）に一致させるための第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）を、下流側空燃比センサの出力値Ｖｏｘｓと同下流側目標空燃比に応じた値（下流側目標値Ｖｏｘｓｒｅｆ）との差である第１偏差（出力偏差量ＤＶｏｘｓ）に基いて更新する第１フィードバック量更新手段（図１１のルーチンの特にステップ１１０５〜ステップ１１３０を参照。）と、
所定の第２更新タイミング（図１１のルーチンが実行されるタイミング）が到来する毎に前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）に基いて同第１フィードバック量の定常成分を取り込むように同第１フィードバック量の学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）を更新する学習手段（図１１のルーチンの特にステップ１１３５〜ステップ１１５５を参照。）と、
前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）及び前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）のうちの少なくとも一方に基いて前記燃料噴射弁３９から噴射される燃料の量を制御することにより前記触媒５３に流入する排ガスの空燃比を制御する空燃比制御手段（図６及び図７のルーチンを参照。）と、
を備えた内燃機関の空燃比制御装置であって、
前記学習値と同学習値が収束すべき値との差である第２偏差が所定値以上である学習不足状態が発生しているか否かを推定する（図１１のステップ１１６０及び図１２のルーチンを参照。）とともに、同学習不足状態が発生していると推定されるとき（学習促進要求フラグＸＺＬの値が「１」のとき）同学習不足状態が発生していないと推定されるとき（学習促進要求フラグＸＺＬの値が「０」のとき）に比較して前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段（図１３のルーチン及び図１１のステップ１１４０の値ｐを参照。）と、
前記少なくとも２以上の気筒の燃焼室２５（本例では、総ての気筒の燃焼室２５）に供給される混合気の空燃比を過渡的に変動させる外乱が発生するか否かを推定する（図１０のステップ１０４０）とともに同外乱が発生すると推定されるとき（空燃比外乱発生フラグＸＧＩＲＮの値が「１」であるとき）前記学習促進制御を禁止する学習促進禁止手段（図１３のステップ１３３０及びステップ１３２０を参照。）と、
を備えた内燃機関の空燃比制御装置である。
また、前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒（５３）との間の前記排気通路に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサ（６７）と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比ａｂｙｆｒと一致させるための基本燃料噴射量Ｆｂを前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段（図６のステップ６１０及びステップ６３０を参照。）と、
所定の第３更新タイミングが到来する毎（図７のルーチンが実行されるタイミング）に前記上流側空燃比センサ（６７）の出力値Ｖａｂｙｆｓと前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）と前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比ａｂｙｆｒに一致するように前記基本燃料噴射量Ｆｂを補正するための第２フィードバック量（メインフィードバック係数ＦＡＦ、又は、少なくともメインフィードバック係数ＦＡＦとパージ補正係数ＦＰＧとの積（ＦＡＦ・ＦＰＧ））を更新する第２フィードバック量更新手段（図７のルーチン及び図６のステップ６５０を参照。）と、
前記第２フィードバック量により前記基本燃料噴射量（Ｆｂ）を補正することにより得られる燃料噴射量（Ｆｉ）の燃料を前記燃料噴射弁３９から噴射させる燃料噴射指示手段（図６のステップ６５０及びステップ６６０を参照。）と、
を含む。
更に、第１制御装置において、
前記学習手段は、
前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）を前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）又は前記第１フィードバック量に含まれる定常成分（例えば、積分項Ｋｉ・ＳＤＶｏｘｓ）に除々に接近させるように前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）の更新を行うように構成され（図１１のステップ１１４０を参照。）、
前記学習促進手段は、
前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）の更新速度（図１１のステップ１１４０における値ｐ）を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成されている（図１３のルーチンを参照。）。
更に、第１制御装置は以下のように表現される装置である。
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク（４５）と、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部（４８）と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁（４９）と、
前記機関の運転状態に応じて前記パージ制御弁（４９）の開度を変更するように前記指示信号を前記パージ制御弁（４９）に与えるパージ制御手段（図９のルーチンを参照。）と、
を備え、
前記第２フィードバック量更新手段は、
前記パージ制御弁が０でない所定の開度に開かれているとき少なくとも前記上流側空燃比センサの出力値Ｖａｂｙｆｓに基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値（蒸発燃料ガス濃度学習値ＦＧＰＧ）として更新する（図１０のルーチンを参照。）とともに同蒸発燃料ガス濃度学習値（ＦＧＰＧ）にも基いて前記第２フィードバック量（少なくともメインフィードバック係数ＦＡＦとパージ補正係数ＦＰＧとの積（ＦＡＦ・ＦＰＧ））を更新するように構成され、
前記学習促進禁止手段は、
前記蒸発燃料ガス濃度学習値（ＦＧＰＧ）の前記機関の始動後からの更新回数（ＣＦＧＰＧ）が所定の更新回数閾値（ＣＦＧＰＧｔｈ）よりも小さいとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された（図１０のステップ１０３５乃至ステップ１０５０を参照。）空燃比制御装置。
この第１制御装置によれば、機関の空燃比を過渡的に変動させる外乱が発生する可能性が高い場合、即ち、蒸発燃料ガス濃度学習値が十分に更新されていないために（ＣＦＧＰＧ＜ＣＦＧＰＧｔｈ）蒸発燃料ガスの機関の空燃比への影響が第２フィードバック量により十分には補償されていない場合、学習促進制御が禁止（中止を含む。）される。従って、サブＦＢ学習値Ｖａｆｓｆｂｇが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
第２実施形態
次に、本発明の第２実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第２制御装置」とも称呼する。）について説明する。第２制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件のみが第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
第２制御装置のＣＰＵ８１は、図１０のステップ１０３５乃至ステップ１０５０を図１４のステップ１４１０乃至ステップ１４３０に置換したルーチンを実行する。即ち、ＣＰＵ８１は、図１０のステップ１０３０にて蒸発燃料ガス濃度学習値ＦＧＰＧを更新した後、図１４のステップ１４１０に進む。そして、ＣＰＵ８１は、ステップ１４１０にて蒸発燃料ガス濃度学習値ＦＧＰＧが濃度学習閾値ＦＧＰＧｔｈ以下であるか否かを判定する。前述したように、蒸発燃料ガス濃度学習値ＦＧＰＧは、蒸発燃料ガスの濃度が高いほど小さい値になる。従って、ＣＰＵ８１は、ステップ１４１０にて「蒸発燃料ガス濃度が所定の濃度閾値以上であるか否か」を判定していることになる。
このとき、蒸発燃料ガス濃度学習値ＦＧＰＧが濃度学習閾値ＦＧＰＧｔｈ以下であれば（即ち、蒸発燃料ガス濃度が所定の濃度閾値以上であれば）、ＣＰＵ８１はステップ１４１０にて「Ｙｅｓ」と判定し、ステップ１４２０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。即ち、この場合、ＣＰＵ８１は、エバポパージに起因する「空燃比を変動させる外乱が発生する」と推定する。その後、ＣＰＵ８１はステップ１０９５へと進む。
これに対し、ＣＰＵ８１がステップ１４１０に進んだとき、蒸発燃料ガス濃度学習値ＦＧＰＧが濃度学習閾値ＦＧＰＧｔｈよりも大きければ（即ち、蒸発燃料ガス濃度が所定の濃度閾値より小さければ）、ＣＰＵ８１はステップ１４１０にて「Ｎｏ」と判定し、ステップ１４３０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。即ち、この場合、ＣＰＵ８１は、エバポパージに起因する「空燃比を変動させる外乱は発生しない」と推定する。その後、ＣＰＵ８１はステップ１０９５へと進む。
以上、説明したように、第２制御装置は、
前記蒸発燃料ガスの濃度に応じた値（蒸発燃料ガス濃度学習値ＦＧＰＧ）を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるとき（図１４のステップ１４１０での「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図１４のルーチン）を備える。
なお、第２制御装置は、パージ制御弁４９よりも下流（サージタンク４１ｂ側）のパージ流路管４８（即ち、パージ通路部）に「蒸発燃料ガス濃度センサ」を配設し、その蒸発燃料ガス濃度センサによって検出される蒸発燃料ガス濃度（検出ガス濃度）が所定濃度閾値以上であるときに空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定し、その検出ガス濃度が所定濃度閾値よりも小さいときに空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定するように構成されることもできる。
蒸発燃料ガスの濃度が所定の濃度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。従って、第２制御装置のように、蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるときに「蒸発燃料ガスパージに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
第３実施形態
次に、本発明の第３実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第３制御装置」とも称呼する。）について説明する。第３制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件のみが第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
第３制御装置のＣＰＵ８１は、図１０のステップ１０３５乃至ステップ１０５０を図１５のステップ１５１０乃至ステップ１５３０に置換したルーチンを実行する。即ち、ＣＰＵ８１は、図１０のステップ１０３０にて蒸発燃料ガス濃度学習値ＦＧＰＧを更新した後、図１５のステップ１５１０に進む。そして、ＣＰＵ８１は、ステップ１５１０にて「図１０のステップ１０２０にて求めた更新値ｔＦＧ」が濃度学習変化閾値ｔＦＧｔｈ以下であるか否かを判定する。ここで、濃度学習変化閾値ｔＦＧｔｈは負の所定値である。
図１０に示したルーチンは所定時間の経過毎に実行されるから、蒸発燃料ガス濃度学習値ＦＧＰＧの更新値ｔＦＧは「蒸発燃料ガス濃度学習値ＦＧＰＧの時間的変化量」と等価である。更に、蒸発燃料ガス濃度が急増しているときメインフィードバック係数ＦＡＦは急激に小さくなり、それに伴って、補正係数平均ＦＡＦＡＶも急激に減少する。このため、上記（２２）式から理解されるように、蒸発燃料ガス濃度が急増しているとき更新値ｔＦＧも急激に小さくなる。従って、ＣＰＵ８１は、ステップ１５１０にて「蒸発燃料ガス濃度の変化（増大速度）が所定濃度変化閾値以上であると推定されるか否かを判定していることになる。
このとき、更新値ｔＦＧが濃度学習変化閾値ｔＦＧｔｈ以下であれば（即ち、蒸発燃料ガス濃度の変化（変化速度）が所定濃度変化閾値以上であれば）、ＣＰＵ８１はステップ１５１０にて「Ｙｅｓ」と判定し、ステップ１５２０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。即ち、この場合、ＣＰＵ８１は、エバポパージに起因する「空燃比を変動させる外乱が発生する」と推定する。その後、ＣＰＵ８１はステップ１０９５へと進む。
これに対し、ＣＰＵ８１がステップ１５１０に進んだとき、更新値ｔＦＧが濃度学習変化閾値ｔＦＧｔｈよりも大きければ（即ち、蒸発燃料ガス濃度の変化（変化速度）が所定濃度変化閾値よりも小さければ）、ＣＰＵ８１はステップ１５１０にて「Ｎｏ」と判定し、ステップ１５３０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。即ち、この場合、ＣＰＵ８１は、エバポパージに起因する「空燃比を変動させる外乱は発生しない」と推定する。その後、ＣＰＵ８１はステップ１０９５へと進む。
なお、第３制御装置は、パージ制御弁４９よりも下流（サージタンク４１ｂ側）のパージ流路管４８（即ち、パージ通路）に「蒸発燃料ガス濃度センサ」を配設し、その蒸発燃料ガス濃度センサによって検出される蒸発燃料ガス濃度（検出ガス濃度）に基いて「蒸発ガス濃度の単位時間あたりの蒸発燃料ガス濃度変化量（即ち、蒸発燃料ガス濃度変化速度）を取得し、その取得した蒸発燃料ガス濃度変化量が所定濃度変化閾値以上であるときに空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定し、その取得した蒸発燃料ガス濃度変化量が所定濃度変化閾値よりも小さいときに空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定するように構成されることもできる。
更に、第３制御装置は、蒸発燃料ガス濃度学習値ＦＧＰＧの単位時間あたりの変化量（蒸発燃料ガス濃度学習値ＦＧＰＧの変化速度）を取得し、その取得した蒸発燃料ガス濃度学習値ＦＧＰＧの単位時間あたりの変化量に基づいて蒸発燃料ガス濃度変化速度を取得し、その取得した蒸発燃料ガス濃度変化速度が所定濃度変化閾値以上であるときに空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定し、その取得した蒸発燃料ガス濃度変化速度が所定濃度変化閾値よりも小さいときに空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定するように構成されることもできる。
以上、説明したように、第３制御装置は、前記蒸発燃料ガスの濃度に応じた値（蒸発燃料ガス濃度学習値ＦＧＰＧ）を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるとき（図１５のステップ１５１０にて「Ｙｅｓ」と判定されるとき）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図１５のルーチンを参照。）を備える。
蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると、機関の空燃比が過渡的に変動する虞がある。従って、第３制御装置のように、蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるときに「蒸発燃料ガスパージに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定することにより、学習促進制御が適切に禁止される。
第４実施形態
次に、本発明の第４実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第４制御装置」とも称呼する。）について説明する。第４制御装置は、バルブオーバーラップ期間を制御する点、及び、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第１制御装置が使用する条件とは異なる条件を採用している点、においてのみ、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
バルブオーバーラップ期間は、図１６に示したように、ある気筒に着目したとき、その気筒の「吸気弁３２及び排気弁３５」が共に開弁している期間である。このバルブオーバーラップ期間の開始時期は吸気弁３２の開弁時期ＩＮＯであり、終了時期は排気弁３５の閉弁時期ＥＸＣである。
吸気弁３２の開弁時期ＩＮＯは、吸気上死点ＴＤＣからの進角度θｉｎｏ（θｉｎｏ＞０）により表される。進角度θｉｎｏの単位はクランク角（°）である。換言すると、吸気弁３２は吸気上死点前θｉｎｏ（ＢＴＤＣθｉｎｏ）にて開弁する。進角度θｉｎｏは「吸気弁開弁時期進角量」とも称呼される。
排気弁３５の閉弁時期ＥＸＣは、吸気上死点ＴＤＣからの遅角度θｅｘｃ（θｅｘｃ＞０）により表される。遅角度θｅｘｃの単位はクランク角（°）である。換言すると、排気弁３５は吸気上死点後θｅｘｃ（ＡＴＤＣθｅｘｃ）にて閉弁する。遅角度θｅｘｃは「排気弁閉弁時期遅角量」とも称呼される。
従って、バルブオーバーラップ期間の長さを表すバルブオーバーラップ量（単位はクランク角（°））ＶＯＬは、吸気弁開弁時期ＩＮＯを表す進角度θｉｎｏ（吸気弁開弁時期進角量θｉｎｏ）と排気弁閉弁時期ＥＸＣを表す遅角度θｅｘｃ（排気弁閉弁時期遅角量θｅｘｃ）との和（ＶＯＬ＝θｉｎｏ＋θｅｘｃ）となる。
一般に、バルブオーバーラップ量ＶＯＬが大きいほど、そのバルブオーバーラップ期間中に吸気ポート３１に排出される既燃ガス（燃焼ガス、内部ＥＧＲガス）の量が増大するので、バルブオーバーラップ期間後において吸気弁３２が開弁しているときに燃焼室２５内に流入する既燃ガスの量（内部ＥＧＲ量）も増大する。
従って、バルブオーバーラップ量ＶＯＬが大きく変化すると（バルブオーバーラップ量ＶＯＬの変化速度が大きいと）、内部ＥＧＲ量が急激に変化する。内部ＥＧＲ量の急激な変化は、各気筒に供給される混合気の空燃比の間に過渡的な不均衡を発生させる。このような場合、サブフィードバック量Ｖａｆｓｆｂも一時的に変動するので、学習値Ｖａｆｓｆｂｇの学習促進制御を実行することは好ましくない。このため、第４制御装置は、バルブオーバーラップ量ＶＯＬが大きく変化するときに「空燃比を変動させる外乱が発生する」と推定し、学習促進制御を禁止する。
より具体的に述べると、第４制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図１７にフローチャートにより示した「バルブタイミング制御ルーチン」を実行するようになっている。但し、図１０のステップ１０３５乃至ステップ１０５０は省略される。
従って、所定のタイミングになると、ＣＰＵ８１は図１７のステップ１７００から処理を開始し、以下に述べるステップ１７１０乃至ステップ１７５０の処理を順に行い、ステップ１７９５に進んで本ルーチンを一旦終了する。
ステップ１７１０：ＣＰＵ８１は、負荷ＫＬと機関回転速度ＮＥとをテーブルＭａｐＶＯＬｔｇｔに適用することによりバルブオーバーラップ量ＶＯＬの目標値ＶＯＬｔｇｔ（目標バルブオーバーラップ量ＶＯＬｔｇｔ）を決定する。例えば、テーブルＭａｐＶＯＬｔｇｔによれば、目標バルブオーバーラップ量ＶＯＬｔｇｔは、中負荷且つ中回転速度領域において最も大きくなるように定められる。更に、テーブルＭａｐＶＯＬｔｇｔによれば、目標バルブオーバーラップ量ＶＯＬｔｇｔは、高負荷になるほど又は低負荷になるほど小さくなり、高回転速度又は低回転速度になるほど小さくなるように定められる。
ステップ１７２０：ＣＰＵ８１は、ステップ１７１０にて決定された目標バルブオーバーラップ量ＶＯＬｔｇｔをテーブルＭａｐθｉｎｏｔｇｔに適用することにより、吸気弁開弁時期ＩＮＯを表す吸気弁進角度θｉｎｏの目標値（目標吸気弁進角度）θｉｎｏｔｇｔを決定する。
ステップ１７３０：ＣＰＵ８１は、ステップ１７１０にて決定された目標バルブオーバーラップ量ＶＯＬｔｇｔをテーブルＭａｐθｅｘｃｔｇｔに適用することにより、排気弁閉弁時期ＥＸＣを表す排気弁遅角度θｅｘｃの目標値（目標排気弁遅角度）θｅｘｃｔｇｔを決定する。
なお、テーブルＭａｐθｉｎｏｔｇｔ及びテーブルＭａｐθｅｘｃｔｇｔは、それらに目標バルブオーバーラップ量ＶＯＬｔｇｔを適用したときに得られる目標吸気弁進角度θｉｎｏｔｇｔと目標排気弁遅角度θｅｘｃｔｇｔとの和が、その目標バルブオーバーラップ量ＶＯＬｔｇｔに一致するように予め定められている。
ステップ１７４０：ＣＰＵ８１は、各気筒の吸気弁３２が目標吸気弁進角度θｉｎｏｔｇｔ（即ち、ＢＴＤＣθｉｎｏｔｇｔ）にて開弁するように、可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示を送出する。
ステップ１７５０：ＣＰＵ８１は、各気筒の排気弁３５が目標排気弁遅角度θｅｘｃｔｇｔ（即ち、ＡＴＤＣθｅｘｃｔｇｔ）にて閉弁するように、可変排気タイミング制御装置３６のアクチュエータ３６ａに指示を送出する。
以上により、バルブオーバーラップ時期の制御がなされる。
更に、第４制御装置のＣＰＵ８１は、所定時間が経過する毎に図１８にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図１８のステップ１８００から処理を開始してステップ１８１０に進み、「現時点における目標バルブオーバーラップ量ＶＯＬｔｇｔ」と「前回本ルーチンを実行した際に記憶しておいた所定時間前の目標バルブオーバーラップ量ＶＯＬｔｇｔｏｌｄ（後述するステップ１８４０を参照。）」との差の絶対値｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であるか否かを判定する。バルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈは正の所定値である。差の絶対値｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜は実質的にバルブオーバーラップ量ＶＯＬの変化速度の大きさを表すので、ＣＰＵ８１はステップ１８１０にて「バルブオーバーラップ量ＶＯＬの変化速度の大きさがバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であるか否か」を判定していることになる。
このとき、差の絶対値｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であると、ＣＰＵ８１はステップ１８１０にて「Ｙｅｓ」と判定してステップ１８２０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大（内部ＥＧＲ量の変化速度が過大）であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ１８２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ１８４０に進む。
これに対し、差の絶対値｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈよりも小さいと、ＣＰＵ８１はステップ１８１０にて「Ｎｏ」と判定してステップ１８３０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ１８３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ１８４０に進む。
ＣＰＵ８１は、ステップ１８４０にて「現時点における目標バルブオーバーラップ量ＶＯＬｔｇｔ」を「所定時間前の目標バルブオーバーラップ量ＶＯＬｔｇｔｏｌｄ」として記憶する。その後、ＣＰＵ８１はステップ１８９５に進んで本ルーチンを一旦終了する。
このように、差の絶対値｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上である場合、空燃比外乱発生フラグＸＧＩＲＮの値が「１」に設定されるので、ＣＰＵ８１は図１３のステップ１３３０に進んだとき、そのステップ１３３０にて「Ｎｏ」と判定してステップ１３２０に進む。従って、学習値Ｖａｆｓｆｂｇの学習促進制御が禁止される。
なお、第４制御装置のＣＰＵ８１は、図１８のステップ１８１０において、「現時点における目標バルブオーバーラップ量ＶＯＬｔｇｔ」から「所定時間前の目標バルブオーバーラップ量ＶＯＬｔｇｔｏｌｄ」を減じた値（ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ）がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であるか否かを判定するように構成されてもよい。これによれば、目標バルブオーバーラップ量ＶＯＬｔｇｔ（従って、実質的なバルブオーバーラップ量ＶＯＬ）の増大速度がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上である場合に学習値Ｖａｆｓｆｂｇの学習促進制御が禁止される。
同様に、第４制御装置のＣＰＵ８１は、図１８のステップ１８１０において、「所定時間前の目標バルブオーバーラップ量ＶＯＬｔｇｔｏｌｄ」から「現時点における目標バルブオーバーラップ量ＶＯＬｔｇｔ」を減じた値（ＶＯＬｔｇｔｏｌｄ−ＶＯＬｔｇｔ）がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であるか否かを判定するように構成されてもよい。これによれば、目標バルブオーバーラップ量ＶＯＬｔｇｔ（従って、実質的なバルブオーバーラップ量ＶＯＬ）の減少速度がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上である場合に学習値Ｖａｆｓｆｂｇの学習促進制御が禁止される。
更に、第４制御装置のＣＰＵ８１は、図１８のステップ１８１０において、現時点における目標バルブオーバーラップ量ＶＯＬｔｇｔ」に代えて「現時点における実際のバルブオーバーラップ量ＶＯＬａｃｔ」を用いるとともに、「所定時間前の目標バルブオーバーラップ量ＶＯＬｔｇｔｏｌｄ」に代えて「所定時間前の実際のバルブオーバーラップ量ＶＯＬａｃｔ」を用いるように構成されてもよい。なお、実際のバルブオーバーラップ量ＶＯＬａｃｔは、実際の吸気弁進角度（実吸気弁進角度）θｉｎｏａｃｔと実際の排気弁遅角度（実排気弁遅角度）θｅｘｃａｃｔとの和に基づいて取得することができる。実吸気弁進角度θｉｎｏａｃｔは、クランクポジションセンサ６４及びインテークカムポジションセンサ６５からの信号に基づき取得される。実排気弁遅角度θｅｘｃａｃｔは、クランクポジションセンサ６４及びエキゾーストカムポジションセンサ６６からの信号に基づき取得される。
以上、説明したように、第４制御装置は、
「前記少なくとも２以上の気筒の燃焼室において既に燃焼したガス」であって「その２以上の気筒のそれぞれの圧縮行程の開始時」にそのそれぞれの気筒の燃焼室に存在する筒内残留ガスの量（内部ＥＧＲ量）を、前記機関の運転状態に応じて制御する内部ＥＧＲ量制御手段（図１７のルーチンを参照。）と、
バルブオーバーラップ量（目標バルブオーバーラップ量ＶＯＬｔｇｔ又は実バルブオーバーラップ量ＶＯＬａｃｔ）の変化速度が変化速度閾値以上であることにより、前記内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると推定されるとき（図１８のステップ１８１０における「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図１８のルーチン）と、
を備える。
更に、第４制御装置は、
バルブオーバーラップ期間を機関１０の運転状態に基いて変更するバルブオーバーラップ期間変更手段（図１７のルーチンを参照。）と、
「前記バルブオーバーラップ期間の長さ（即ち、バルブオーバーラップ量）の変化速度」が「所定のバルブオーバーラップ量変化速度閾値」以上であると推定されるとき図１８のステップ１８１０における「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図１８のルーチンを参照。）と、
を備える。
従って、第４制御装置は、バルブオーバーラップ量ＶＯＬの急激な変化に起因する「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定されるとき、学習促進制御を適切に禁止することができる。
第５実施形態
次に、本発明の第５実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第５制御装置」とも称呼する。）について説明する。第５制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第４制御装置が使用する条件とは異なる条件を用いている点、においてのみ、第４制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
前述したように、可変吸気タイミング制御装置３３は、作動油の供給・排出によって吸気弁開弁時期ＩＮＯを変更する機械的な機構を有する。従って、可変吸気タイミング制御装置３３により調整される「実際の吸気弁進角度θｉｎｏａｃｔ」は、目標吸気弁進角度θｉｎｏｔｇｔが変化するとき目標吸気弁進角度θｉｎｏｔｇｔに対してオーバーシュートする。
同様に、可変排気タイミング制御装置３６は、作動油の供給・排出によって排気弁閉弁時期ＥＸＣを変更する機械的な機構を有する。従って、可変排気タイミング制御装置３６により調整される「実際の排気弁遅角度θｅｘｃａｃｔ」は、目標排気弁遅角度θｅｘｃｔｇｔが変化するとき目標排気弁遅角度θｅｘｃｔｇｔに対してオーバーシュートする。
このような「実吸気弁進角度θｉｎｏａｃｔ及び実排気弁遅角度θｅｘｃａｃｔ」のオーバーシュートが発生する期間においては、実際のバルブオーバーラップ量ＶＯＬａｃｔも目標バルブオーバーラップ量ＶＯＬｔｇｔに対してオーバーシュートする。従って、内部ＥＧＲ量が想定した量よりも過大になるので、各気筒に供給される混合気の空燃比の間に過渡的に不均衡が発生する。このような場合、学習値Ｖａｆｓｆｂｇの学習促進制御を実行することは好ましくない。このため、第５制御装置は、「実バルブオーバーラップ量ＶＯＬａｃｔと目標バルブオーバーラップ量ＶＯＬｔｇｔとの差（ＶＯＬａｃｔ−ＶＯＬｔｇｔ）」が所定値以上になったとき、「空燃比を変動させる外乱が発生した」と推定し、学習促進制御を禁止する。
より具体的に述べると、第５制御装置のＣＰＵ８１は、第４制御装置のＣＰＵ８１が実行するルーチンのうち図１８を除くルーチンを実行するようになっている。更に、第５制御装置のＣＰＵ８１は、図１８に代わる図１９にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１は図１９のステップ１９００から処理を開始し、以下に述べるステップ１９１０乃至ステップ１９４０の処理を順に行い、ステップ１９５０に進む。
ステップ１９１０：ＣＰＵ８１は、別途取得されている実際の吸気弁進角度θｉｎｏａｃｔを読み込む。この実吸気弁進角度θｉｎｏａｃｔは、クランクポジションセンサ６４及びインテークカムポジションセンサ６５からの信号に基づき取得される。
ステップ１９２０：ＣＰＵ８１は、別途取得されている実際の排気弁遅角度θｅｘｃａｃｔを読み込む。この実排気弁遅角度θｅｘｃａｃｔは、クランクポジションセンサ６４及びエキゾーストカムポジションセンサ６６からの信号に基づき取得される。
ステップ１９３０：ＣＰＵ８１は、実吸気弁進角度θｉｎｏａｃｔと実排気弁遅角度θｅｘｃａｃｔとの和を実際のバルブオーバーラップ量ＶＯＬａｃｔとして算出する。
ステップ１９４０：ＣＰＵ８１は、実際のバルブオーバーラップ量ＶＯＬａｃｔから現時点の目標バルブオーバーラップ量ＶＯＬｔｇｔを減じた値を、バルブオーバーラップ量ＶＯＬのオーバーシュート量ＯＳＶＯＬとして取得する。オーバーシュート量ＯＳＶＯＬはクランク角幅として表される。
そして、ＣＰＵ８１はステップ１９５０にて、上記ステップ１９４０にて取得したバルブオーバーラップのオーバーシュート量ＯＳＶＯＬが、「所定の正の値であるオーバーシュート閾値（所定クランク角幅閾値）ＯＳＶＯＬｔｈ」以上であるか否かを判定する。
このとき、オーバーシュート量ＯＳＶＯＬがオーバーシュート閾値ＯＳＶＯＬｔｈ以上であると、ＣＰＵ８１はステップ１９５０にて「Ｙｅｓ」と判定してステップ１９６０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大であるから、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ１９６０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ１９９５に進んで本ルーチンを一旦終了する。
これに対し、オーバーシュート量ＯＳＶＯＬがオーバーシュート閾値ＯＳＶＯＬｔｈよりも小さいと、ＣＰＵ８１はステップ１９５０にて「Ｎｏ」と判定してステップ１９７０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいから、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ１９７０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ１９９５に進んで本ルーチンを一旦終了する。
なお、ＣＰＵ８１は、ステップ１９５０において、オーバーシュート量ＯＳＶＯＬの絶対値がオーバーシュート閾値ＯＳＶＯＬｔｈ以上であるか否かを判定するように構成されてもよい。この場合、実際のバルブオーバーラップ量ＶＯＬａｃｔが現時点の目標バルブオーバーラップ量ＶＯＬｔｇｔを大きく上回る場合のみでなく、実際のバルブオーバーラップ量ＶＯＬａｃｔが現時点の目標バルブオーバーラップ量ＶＯＬｔｇｔを大きく下回る場合においても、空燃比外乱発生フラグＸＧＩＲＮの値が「１」に設定され、学習促進制御が禁止される。
以上、説明したように、第５制御装置は、
内部ＥＧＲ量を変更するための制御量（バルブオーバーラップ量）を指示信号に応じて変更する内部ＥＧＲ量変更手段（可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６）と、
前記機関の運転状態に応じて前記内部ＥＧＲ量を変更するための制御量の目標値（目標バルブオーバーラップ量ＶＯＬｔｇｔ）を取得する制御量目標値取得手段（図１７のステップ１７１０を参照。）と、
前記内部ＥＧＲ量変更手段に対し前記制御量の実際の値が前記制御量の目標値に一致するように前記指示信号を与える内部ＥＧＲ量制御手段（図１７のステップ１７２０乃至ステップ１７５０）と、
前記内部ＥＧＲ量を変更するための制御量の実際の値（実際のバルブオーバーラップ量ＶＯＬａｃｔ）を取得するとともに、同取得された制御量の実際の値（ＶＯＬａｃｔ）と前記制御量の目標値（ＶＯＬｔｇｔ）との差（ＯＳＶＯＬ）が所定の制御量差閾値（ＯＳＶＯＬｔｈ）以上であると推定されるとき（図１９のステップ１９５０における「Ｙｅｓ」の判定を参照。）前記空燃比を過渡的に変動させる外乱が発生すると推定する学習促進禁止手段（図１９のルーチンを参照。）と、
を備える。
更に、第５制御装置は、
バルブオーバーラップ期間が前記機関の運転状態に基いて定められる目標オーバーラップ期間（目標吸気弁進角度θｉｎｏｔｇｔｏ及び目標排気弁遅角度θｅｘｃにより定まる期間）に一致するように同バルブオーバーラップ期間を変更するバルブオーバーラップ期間変更手段（可変吸気タイミング制御装置３３、可変排気タイミング制御装置３６及び図１７のルーチンを参照。）を備え、
前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の実際値（ＶＯＬａｃｔ）を取得するとともに、同取得されたバルブオーバーラップ量の実際値（ＶＯＬａｃｔ）と前記目標オーバーラップ期間の長さである目標オーバーラップ量（ＶＯＬｔｇｔ）との差（バルブオーバーラップ量差（ＯＳＶＯＬ））が所定のバルブオーバーラップ量差閾値（ＯＳＶＯＬｔｈ）以上であると判定されるとき（図１９のステップ１９５０における「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定する学習促進禁止手段（図１９のルーチンを参照。）と、
を備える。
従って、第５制御装置は、「実際のバルブオーバーラップ量が目標バルブオーバーラップ量に対して過大（又は過小）になること」に起因して内部ＥＧＲ量が過大（又は過小）となり、それにより、機関の空燃比が過渡的に変動する虞がある場合、学習促進制御を適切に禁止することができる。
第６実施形態
次に、本発明の第６実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第６制御装置」とも称呼する。）について説明する。第６制御装置は、負荷ＫＬ及び機関回転速度ＮＥから「吸気弁進角度θｉｎｏ及び排気弁遅角度θｅｘｃ」を直接決定する点、及び、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第４制御装置が使用する条件とは異なる条件を採用している点、においてのみ、第４制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
上述した第４制御装置は、バルブオーバーラップ量の変化速度の大きさ（｜ＶＯＬｔｇｔ−ＶＯＬｔｇｔｏｌｄ｜）がバルブオーバーラップ量変化速度閾値ΔＶＯＬｔｈ以上であるとき、空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定した。これに対し、第６制御装置は、吸気弁開弁時期ＩＮＯが急激に変化するとき、空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。これは、バルブオーバーラップ量ＶＯＬが同じであっても、吸気弁開弁時期ＩＮＯ（即ち、バルブオーバーラップ期間の開始時期）により内部ＥＧＲ量が変化するからである。
より具体的に述べると、第６制御装置のＣＰＵ８１は、所定時間が経過する毎に図２０にフローチャートにより示した「バルブタイミング制御ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１は図２０のステップ２０００から処理を開始し、以下に述べるステップ２０１０乃至ステップ２０４０の処理を順に行い、ステップ２０９５に進んで本ルーチンを一旦終了する。
ステップ２０１０：ＣＰＵ８１は、負荷ＫＬと機関回転速度ＮＥとをテーブルＭａｐθｉｎｏｔｇｔに適用することにより目標吸気弁進角度θｉｎｏｔｇｔを決定する。
ステップ２０２０：ＣＰＵ８１は、負荷ＫＬと機関回転速度ＮＥとをテーブルＭａｐθｅｘｃｔｇｔに適用することにより目標排気弁遅角度θｅｘｃを決定する。
ステップ２０３０：ＣＰＵ８１は、各気筒の吸気弁３２が目標吸気弁進角度θｉｎｏｔｇｔ（即ち、ＢＴＤＣθｉｎｏｔｇｔ）にて開弁するように、可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示を送出する。
ステップ２０４０：ＣＰＵ８１は、各気筒の排気弁３５が目標排気弁遅角度θｅｘｃｔｇｔ（即ち、ＡＴＤＣθｅｘｃｔｇｔ）にて閉弁するように、可変排気タイミング制御装置３６のアクチュエータ３６ａに指示を送出する。
上記ステップ２０１０にて使用されるテーブルＭａｐθｉｎｏ及び上記ステップ２０２０にて使用されるテーブルＭａｐθｅｘｃｔｇｔは、負荷ＫＬ及び機関回転速度ＮＥに応じた所定のバルブオーバーラップ期間（バルブオーバーラップ量及びバルブオーバーラップ期間の開始時期）が実現されるように予め定められている。以上により、バルブオーバーラップ期間の制御がなされる。
更に、第６制御装置のＣＰＵ８１は、所定時間が経過する毎に図２１にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図２１のステップ２１００から処理を開始してステップ２１１０に進み、「現時点における目標吸気弁進角度θｉｎｏｔｇｔ」と「前回本ルーチンを実行した際に記憶しておいた所定時間前の目標吸気弁進角度θｉｎｏｔｇｔｏｌｄ（後述するステップ２１４０を参照。）」との差の絶対値｜θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ｜が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定する。進角量変化速度閾値Δθｉｎｏｔｈは正の所定値である。差の絶対値｜θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ｜は実質的に吸気弁進角度θｉｎｏ（吸気弁開弁時期ＩＮＯ）の変化速度の大きさを表すので、ＣＰＵ８１はステップ２１１０にて「吸気弁開弁時期ＩＮＯの変化速度の大きさが進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否か」を判定していることになる。
このとき、差の絶対値｜θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ｜が所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であると、ＣＰＵ８１はステップ２１１０にて「Ｙｅｓ」と判定してステップ２１２０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２１２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２１４０に進む。
これに対し、差の絶対値｜θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ｜が所定の進角量変化速度閾値Δθｉｎｏｔｈよりも小さいと、ＣＰＵ８１はステップ２１１０にて「Ｎｏ」と判定してステップ２１３０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２１３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２１４０に進む。
そして、ＣＰＵ８１はステップ２１４０にて「現時点における目標吸気弁進角度θｉｎｏｔｇｔ」を「所定時間前の目標吸気弁進角度θｉｎｏｔｇｔｏｌｄ」として記憶する。その後、ＣＰＵ８１はステップ２１９５に進んで本ルーチンを一旦終了する。
なお、第６制御装置のＣＰＵ８１は、図２１のステップ２１１０において、「現時点における目標吸気弁進角度θｉｎｏｔｇｔ」から「所定時間前の目標吸気弁進角度θｉｎｏｔｇｔｏｌｄ」を減じた値（θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ）が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定するように構成されてもよい。更に、第６制御装置のＣＰＵ８１は、図２１のステップ２１１０において、「所定時間前の目標吸気弁進角度θｉｎｏｔｇｔｏｌｄ」から「現時点における目標吸気弁進角度θｉｎｏｔｇｔ」を減じた値（θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ）が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定するように構成されてもよい。
加えて、第６制御装置のＣＰＵ８１は、図２１のステップ２１１０において、「現時点における実吸気弁進角度θｉｎｏａｃｔ」と「所定時間前の実吸気弁進角度θｉｎｏａｃｔｏｌｄ」との差の絶対値｜θｉｎｏａｃｔ−θｉｎｏａｃｔｏｌｄ｜が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定するように構成されてもよい。更に、第６制御装置のＣＰＵ８１は、図２１のステップ２１１０において、「現時点における実吸気弁進角度θｉｎｏａｃｔ」から「所定時間前の実吸気弁進角度θｉｎｏａｃｔｏｌｄ」を減じた値（θｉｎｏａｃｔ−θｉｎｏａｃｔｏｌｄ）が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定するように構成されてもよい。また、第６制御装置のＣＰＵ８１は、図２１のステップ２１１０において、「所定時間前の実吸気弁進角度θｉｎｏａｃｔｏｌｄ」から「現時点における実吸気弁進角度θｉｎｏａｃｔ」を減じた値（θｉｎｏａｃｔｏｌｄ−θｉｎｏａｃｔ）が、所定の進角量変化速度閾値Δθｉｎｏｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第６制御装置は、
前記少なくとも２以上の気筒（本例においては、総ての気筒）のそれぞれの吸気弁の開弁時期ＩＮＯを機関の運転状態に基いて変更する吸気弁開弁時期制御手段（可変吸気タイミング制御装置３３及び図２０のルーチン）と、
前記吸気弁の開弁時期の変化速度（θｉｎｏｔｇｔ−θｉｎｏｔｇｔｏｌｄ）が所定の吸気弁開弁時期変化速度閾値（Δθｉｎｏｔｈ）以上であると推定されるとき（図２１のステップ２１１０ででの「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２１のルーチンを参照。）と、
を備える。
一般に、吸気弁開弁時期ＩＮＯ及び排気弁閉弁時期ＥＸＣは「バルブオーバーラップ期間」が存在するように定められている。従って、内部ＥＧＲ量は「バルブオーバーラップ期間の開始時期」である吸気弁開弁時期ＩＮＯ（吸気弁進角度θｉｎｏ）に依存して変化する。そのため、吸気弁開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると、それにより機関の空燃比が過渡的に変動する虞がある。これに対し、第６制御装置は、吸気弁開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定するので、学習促進制御を適切に禁止することができる。
第７実施形態
次に、本発明の第７実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第７制御装置」とも称呼する。）について説明する。第７制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第６制御装置が使用する条件とは異なる条件を採用している点、においてのみ、第６制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
前述したように、可変吸気タイミング制御装置３３は、作動油の供給・排出によって吸気弁開弁時期ＩＮＯを変更する機械的な機構を有する。従って、可変吸気タイミング制御装置３３により調整される「実際の吸気弁進角度θｉｎｏａｃｔ」は、目標吸気弁進角度θｉｎｏｔｇｔが変化するとき目標吸気弁進角度θｉｎｏｔｇｔに対してオーバーシュートする。そのようなオーバーシュートが発生する期間においては、内部ＥＧＲ量が想定した量よりも過大になり且つ内部ＥＧＲ量の変化も大きいので、各気筒に供給される混合気の空燃比の間に過渡的な不均衡が発生する。このような場合、学習値Ｖａｆｓｆｂｇの学習促進制御を実行することは好ましくない。このため、第７制御装置は、「実際の吸気弁進角度θｉｎｏａｃｔと目標吸気弁進角度θｉｎｏｔｇｔとの差（θｉｎｏａｃｔ−θｉｎｏｔｇｔ）」が所定値以上になったとき、「空燃比を変動させる外乱が発生する」と推定し、学習促進制御を禁止する。
より具体的に述べると、第７制御装置のＣＰＵ８１は、第６制御装置のＣＰＵ８１が実行するルーチンのうち図２１を除くルーチンを実行するようになっている。更に、第７制御装置のＣＰＵ８１は、図２１に代わる図２２にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１は図２２のステップ２２００から処理を開始してステップ２２１０に進み、「現時点における実際の吸気弁進角度θｉｎｏａｃｔ」と「目標吸気弁進角度θｉｎｏｔｇｔ」との差（θｉｎｏａｃｔ−θｉｎｏｔｇｔ）が所定の吸気弁開弁時期オーバーシュート閾値θｉｎｅｒｔｈ以上であるか否かを判定する。
このとき、差（θｉｎｏａｃｔ−θｉｎｏｔｇｔ）が所定の吸気弁開弁時期オーバーシュート閾値θｉｎｅｒｔｈ以上であると、ＣＰＵ８１はステップ２２１０にて「Ｙｅｓ」と判定してステップ２２２０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２２２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２２９５に進んで本ルーチンを一旦終了する。
これに対し、差（θｉｎｏａｃｔ−θｉｎｏｔｇｔ）が所定の吸気弁開弁時期オーバーシュート閾値θｉｎｅｒｔｈよりも小さいと、ＣＰＵ８１はステップ２２１０にて「Ｎｏ」と判定してステップ２２３０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２２３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２２９５に進んで本ルーチンを一旦終了する。
なお、第７制御装置のＣＰＵ８１は、図２２のステップ２２１０において、上述した差（θｉｎｏａｃｔ−θｉｎｏｔｇｔ）の絶対値｜θｉｎｏａｃｔ−θｉｎｏｔｇｔ｜が所定の吸気弁開弁時期オーバーシュート閾値θｉｎｅｒｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第７制御装置は、
「前記少なくとも２以上の気筒（本例においては総ての気筒）のそれぞれの吸気弁の開弁時期ＩＮＯ（即ち、吸気弁進角度θｉｎｏ）」が「前記機関の運転状態に基いて定められる目標吸気弁開弁時期（即ち、目標吸気弁進角度θｉｎｏｔｇｔ）」に一致するように、同吸気弁の開弁時期を変更する吸気弁開弁時期制御手段（可変吸気タイミング制御装置３３、図２０のルーチンのステップ２０１０及びステップ２０３０を参照。）と、
前記吸気弁の開弁時期の実際値（実吸気弁進角度θｉｎｏａｃｔ）を取得するとともに、「同取得された吸気弁の開弁時期の実際値（実吸気弁進角度θｉｎｏａｃｔ）」と「前記目標吸気弁開弁時期（目標吸気弁進角度θｉｎｏｔｇｔ）」との差が「所定の吸気弁開弁時期差閾値（θｉｎｅｒｔｈ）」以上であると判定されるとき（図２２のステップ２２１０での「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２２のルーチンを参照。）と、
を備える。
従って、第７制御装置は、「実際の吸気弁開弁時期が目標吸気弁開弁時期に対して過大（過進角）又は過小（過遅角）になること」に起因して内部ＥＧＲ量が過大又は過小となり、それにより、機関の空燃比が過渡的に変動する虞がある場合、学習促進制御を適切に禁止することができる。
第８実施形態
次に、本発明の第８実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第８制御装置」とも称呼する。）について説明する。第８制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第６制御装置が使用する条件とは異なる条件を採用している点、においてのみ、第６制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
第６制御装置は、吸気弁開弁時期ＩＮＯが急激に変化するとき、空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定した。これに対し、第８制御装置は、排気弁閉弁時期ＥＸＣが急激に変化するとき、空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。これは、バルブオーバーラップ量ＶＯＬ及び／又は吸気弁開弁時期ＩＮＯ（即ち、バルブオーバーラップ期間の開始時期）が同じであっても、排気弁閉弁時期ＥＸＣ（即ち、バルブオーバーラップ期間の終了時期）によって内部ＥＧＲ量が変化するからである。
より具体的に述べると、第８制御装置のＣＰＵ８１は、第６制御装置のＣＰＵ８１が実行するルーチンのうち図２１を除くルーチンを実行するようになっている。更に、第８制御装置のＣＰＵ８１は、図２１に代わる図２３にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１は図２３のステップ２３００から処理を開始してステップ２３１０に進み、「現時点における目標排気弁遅角度θｅｘｃｔｇｔ」と「前回本ルーチンを実行した際に記憶しておいた所定時間前の目標排気弁遅角度θｅｘｃｔｇｔｏｌｄ（後述するステップ２３４０を参照。）」との差の絶対値｜θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ｜が、所定の遅角量変化速度閾値Δθｅｘｃｔｈ以上であるか否かを判定する。
このとき、差の絶対値｜θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ｜が所定の遅角量変化速度閾値Δθｅｘｃｔｈ以上であると、ＣＰＵ８１はステップ２３１０にて「Ｙｅｓ」と判定してステップ２３２０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２３２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２３４０に進む。
これに対し、差の絶対値｜θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ｜が所定の遅角量変化速度閾値Δθｅｘｃｔｈよりも小さいと、ＣＰＵ８１はステップ２３１０にて「Ｎｏ」と判定してステップ２３３０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２３３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２３４０に進む。
そして、ＣＰＵ８１はステップ２３４０にて「現時点における目標排気弁遅角度θｅｘｃｔｇｔ」を「所定時間前の目標排気弁遅角度θｅｘｃｔｇｔｏｌｄ」として記憶する。その後、ＣＰＵ８１はステップ２３９５に進んで本ルーチンを一旦終了する。
なお、第８制御装置のＣＰＵ８１は、図２３のステップ２３１０において、「現時点における目標排気弁遅角度θｅｘｃｔｇｔ」から「所定時間前の目標排気弁遅角度θｅｘｃｔｇｔｏｌｄ」を減じた値（θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ）が、所定の遅角量変化速度閾値Δθｅｘｃｔｈ以上であるか否かを判定するように構成されてもよい。更に、第６制御装置のＣＰＵ８１は、図２３のステップ２３１０において、「所定時間前の目標排気弁遅角度θｅｘｃｔｇｔｏｌｄ」から「現時点における目標排気弁遅角度θｅｘｃｔｇｔ」を減じた値（θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ）が、所定の遅角量変化速度閾値Δθｅｘｃｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第８制御装置は、
前記少なくとも２以上の気筒（本例においては総ての気筒）のそれぞれの排気弁の閉弁時期ＥＸＣを機関の運転状態に基いて変更する排気弁閉弁時期制御手段（可変排気タイミング制御装置３６及び図２０のルーチン）と、
前記排気弁の閉弁時期の変化速度（θｅｘｃｔｇｔ−θｅｘｃｔｇｔｏｌｄ）が所定の排気弁閉弁時期変化速度閾値（Δθｅｘｃｔｈ）以上であると推定されるとき（図２３のステップ２３１０での「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２３のルーチンを参照。）と、
を備える。
前述したように、吸気弁開弁時期ＩＮＯ及び排気弁閉弁時期ＥＸＣは「バルブオーバーラップ期間」が存在するように定められている。従って、内部ＥＧＲ量は「バルブオーバーラップ期間の終了時期」である排気弁閉弁時期ＥＸＣ（吸気弁進角度θｅｘｃ）にも依存して変化する。そのため、排気弁閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると、それにより機関の空燃比が過渡的に変動する虞がある。これに対し、第８制御装置は、排気弁閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると推定されるときに「内部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定するので、学習促進制御を適切に禁止することができる。
第９実施形態
次に、本発明の第９実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第９制御装置」とも称呼する。）について説明する。第９制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第６制御装置が使用する条件とは異なる条件を採用している点、においてのみ、第６制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
上述したように、可変排気タイミング制御装置３６は、作動油の供給・排出によって排気弁閉弁時期ＥＸＣを変更する機械的な機構を有する。従って、可変排気タイミング制御装置３６により調整される「実際の排気弁遅角度θｅｘｃａｃｔ」は、目標排気弁遅角度θｅｘｃｔｇｔが変化するとき目標排気弁遅角度θｅｘｃｔｇｔに対してオーバーシュートする。そのようなオーバーシュートが発生する期間において、内部ＥＧＲ量が想定した量よりも過大になり且つ内部ＥＧＲ量の変化も大きくなる。従って、各気筒に供給される混合気の空燃比の間に過渡的な不均衡が発生する。このような場合にも、学習値Ｖａｆｓｆｂｇの学習促進制御を実行することは好ましくない。このため、第９制御装置は、「実際の排気弁遅角度θｅｘｃａｃｔと目標排気弁遅角度θｅｘｃｔｇｔとの差（θｅｘｃａｃｔ−θｅｘｃｔｇｔ）」が所定値以上になったとき、「空燃比を変動させる外乱が発生する」と推定し、学習促進制御を禁止する。
より具体的に述べると、第９制御装置のＣＰＵ８１は、第６制御装置のＣＰＵ８１が実行するルーチンのうち図２１を除くルーチンを実行するようになっている。更に、第９制御装置のＣＰＵ８１は、図２１に代わる図２４にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１は図２４のステップ２４００から処理を開始してステップ２４１０に進み、「現時点における実際の排気弁遅角度θｅｘｃａｃｔ」と「目標排気弁遅角度θｅｘｃｔｇｔ」との差（θｅｘｃａｃｔ−θｅｘｃｔｇｔ）が所定の排気弁閉弁時期オーバーシュート閾値θｅｘｅｒｔｈ以上であるか否かを判定する。
このとき、差（θｅｘｃａｃｔ−θｅｘｃｔｇｔ）が所定の排気弁閉弁時期オーバーシュート閾値θｅｘｅｒｔｈ以上であると、ＣＰＵ８１はステップ２４１０にて「Ｙｅｓ」と判定してステップ２４２０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化が過大であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２４２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２４９５に進んで本ルーチンを一旦終了する。
これに対し、差（θｅｘｃａｃｔ−θｅｘｃｔｇｔ）が所定の排気弁閉弁時期オーバーシュート閾値θｅｘｅｒｔｈよりも小さいと、ＣＰＵ８１はステップ２４１０にて「Ｎｏ」と判定してステップ２４３０に進む。即ち、ＣＰＵ８１は、内部ＥＧＲ量の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２４３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２４９５に進んで本ルーチンを一旦終了する。
なお、第９制御装置のＣＰＵ８１は、図２４のステップ２４１０において、上述した差（θｅｘｃａｃｔ−θｅｘｃｔｇｔ）の絶対値｜θｅｘｃａｃｔ−θｅｘｃｔｇｔ｜が所定の排気弁閉弁時期オーバーシュート閾値θｅｘｅｒｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第９制御装置は、
「前記少なくとも２以上の気筒（本例においては総ての気筒）のそれぞれの排気弁の閉弁時期ＥＸＣ（即ち、排気弁遅角度θｅｘｃ）」が「前記機関の運転状態に基いて定められる目標排気弁閉弁時期（即ち、目標排気弁遅角度θｅｘｃｔｇｔ）」に一致するように同排気弁閉弁時期を変更する排気弁閉弁時期制御手段（可変排気タイミング制御装置３６、図２０のルーチンのステップ２０２０及びステップ２０４０を参照。）と、
前記排気弁の閉弁時期の実際値（実排気弁遅角度θｅｘｃａｃｔ）」を取得するとともに、「同取得された排気弁の閉弁時期の実際値（実排気弁遅角度θｅｘｃａｃｔ）」と「前記目標排気弁閉弁時期（目標排気弁遅角度θｅｘｃｔｇｔ）」との差が「所定の排気弁閉弁時期差閾値（θｅｘｅｒｔｈ）」以上であると判定されるとき（図２４のステップ２４１０での「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２４のルーチンを参照。）と、
を備える。
従って、第９制御装置は、「実際の排気弁閉弁時期が目標排気弁閉弁時期に対して過大（過進角）又は過小（過遅角）になること」に起因して内部ＥＧＲ量が過大又は過小となり、それにより、機関の空燃比が過渡的に変動する虞がある場合、学習促進制御を適切に禁止することができる。
第１０実施形態
次に、本発明の第１０実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第１０制御装置」とも称呼する。）について説明する。第１０制御装置は、外部ＥＧＲ量を制御する点、及び、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第１制御装置が使用する条件とは異なる条件を採用した点、においてのみ、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
外部ＥＧＲ量の急激な変化は、各気筒に供給される混合気の空燃比の間に過渡的な不均衡を発生させる。このような場合、学習値Ｖａｆｓｆｂｇの学習促進制御を実行することは好ましくない。このため、第１０制御装置は、外部ＥＧＲ率が（以下、単に「ＥＧＲ率」とも称呼する。）大きく変化したときに「空燃比を変動させる外乱が発生する」と推定し、学習促進制御を禁止する。ここでは、ＥＧＲ率は、吸入空気量（流量）Ｇａに対する外部ＥＧＲガスの流量の比である。但し、ＥＧＲ率は、「吸入空気量Ｇａと外部ＥＧＲガスの流量の和」に対する「外部ＥＧＲガスの流量」の比と定義されてもよい。
より具体的に述べると、第１０制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図２５にフローチャートにより示した「ＥＧＲ弁制御ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１は図２５のステップ２５００から処理を開始し、以下に述べるステップ２５１０乃至ステップ２５３０の処理を順に行い、ステップ２５９５に進んで本ルーチンを一旦終了する。
ステップ２５１０：ＣＰＵ８１は、負荷ＫＬと機関回転速度ＮＥとをテーブルＭａｐＲＥＧＲｔｇｔに適用することにより目標ＥＧＲ率（目標外部ＥＧＲ率）ＲＥＧＲｔｇｔを決定する。例えば、テーブルＭａｐＲＥＧＲｔｇｔによれば、目標ＥＧＲ率ＲＥＧＲｔｇｔは、中負荷且つ中回転速度領域において最も大きくなるように定められる。更に、テーブルＭａｐＲＥＧＲｔｇｔによれば、目標ＥＧＲ率ＲＥＧＲｔｇｔは、高負荷になるほど又は低負荷になるほど小さくなり、高回転速度又は低回転速度になるほど小さくなるように定められる。
ステップ２５２０：ＣＰＵ８１は、ステップ２５１０にて決定された目標ＥＧＲ率ＲＥＧＲｔｇｔ、吸入空気量Ｇａ、機関回転速度ＮＥ及び負荷ＫＬをテーブルＭａｐＤＥＧＲに適用することにより、ＥＧＲ弁５５に付与すべきデューティ比ＤＥＧＲを決定する。テーブルＭａｐＤＥＧＲは予め実験により得られたデータに基づき作成されている。
ステップ２５３０：ＣＰＵ８１は、ステップ２５２０にて決定されたデューティ比ＤＥＧＲに基いてＥＧＲ弁５５の開度を制御する。
以上により、外部ＥＧＲ量（即ち、ＥＧＲ率）の制御がなされる。
更に、第１０制御装置のＣＰＵ８１は、所定時間が経過する毎に図２６にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図２６のステップ２６００から処理を開始してステップ２６１０に進み、「現時点における目標ＥＧＲ率ＲＥＧＲｔｇｔ」と「前回本ルーチンを実行した際に記憶しておいた所定時間前の目標ＥＧＲ率ＲＥＧＲｔｇｔｏｌｄ（後述するステップ２６４０を参照。）」との差の絶対値｜ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ｜がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ以上であるか否かを判定する。
このとき、差の絶対値｜ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ｜がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ以上であると、ＣＰＵ８１はステップ２６１０にて「Ｙｅｓ」と判定してステップ２６２０に進む。即ち、ＣＰＵ８１は、外部ＥＧＲ率（従って、外部ＥＧＲ量）の変化が過大であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２６２０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２６４０に進む。
これに対し、差の絶対値｜ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ｜がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈよりも小さいと、ＣＰＵ８１はステップ２６１０にて「Ｎｏ」と判定してステップ２６３０に進む。即ち、ＣＰＵ８１は、外部ＥＧＲ率（従って、外部ＥＧＲ量）の変化は小さいので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２６３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２６４０に進む。
ＣＰＵ８１は、ステップ２６４０にて「現時点における目標ＥＧＲ率ＲＥＧＲｔｇｔ」を「所定時間前の目標ＥＧＲ率ＲＥＧＲｔｇｔｏｌｄ」として記憶する。その後、ＣＰＵ８１はステップ２６９５に進んで本ルーチンを一旦終了する。
このように、差の絶対値｜ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ｜がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ以上である場合、空燃比外乱発生フラグＸＧＩＲＮの値が「１」に設定されるので、ＣＰＵ８１は図１３のステップ１３３０に進んだとき、そのステップ１３３０にて「Ｎｏ」と判定してステップ１３２０に進む。従って、学習値Ｖａｆｓｆｂｇの学習促進制御が禁止される。
なお、第１０制御装置のＣＰＵ８１は、図２６のステップ２６１０において、「現時点における目標ＥＧＲ率ＲＥＧＲｔｇｔ」から「所定時間前の目標ＥＧＲ率ＲＥＧＲｔｇｔｏｌｄ」を減じた値（ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ）がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ以上であるか否かを判定するように構成されてもよい。また、第１０制御装置のＣＰＵ８１は、図２６のステップ２６１０において、「所定時間前の目標ＥＧＲ率ＲＥＧＲｔｇｔｏｌｄ」から「現時点における目標ＥＧＲ率ＲＥＧＲｔｇｔ」を減じた値（ＲＥＧＲｔｇｔｏｌｄ−ＲＥＧＲｔｇｔ）がＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第１０制御装置は、
前記機関の排気通路であって前記触媒（５３）よりも上流側の部位と前記機関の吸気通路（サージタンク４１ｂ）とを接続する排気還流管（５４）と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁（５５）と、
前記機関の運転状態に応じて前記ＥＧＲ弁（５５）の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ量制御手段（図２５のルーチンを参照。）と、
前記外部ＥＧＲの量（本例においては外部ＥＧＲ率）の変化速度（ＲＥＧＲｔｇｔ−ＲＥＧＲｔｇｔｏｌｄ）が所定の外部ＥＧＲ量変化速度閾値（ＥＧＲ率変化速度閾値ΔＲＥＧＲｔｈ）以上であると推定されるとき（図２６のステップ２６１０での「Ｙｅｓ」の判定を参照。）前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２６のルーチンを参照。）と、
を備える。
従って、第１０制御装置は、外部ＥＧＲの量（外部ＥＧＲ率）の急激な変化に起因する「外部ＥＧＲに起因する前記空燃比を過渡的に変動させる外乱」が発生すると推定されるとき、学習促進制御を適切に禁止することができる。
第１１実施形態
次に、本発明の第１１実施形態に係る多気筒内燃機関の空燃比制御装置（以下、「第１１制御装置」とも称呼する。）について説明する。第１１制御装置は、空燃比外乱発生フラグＸＧＩＲＮの値を「１」及び「０」に設定する条件として第１０制御装置が使用する条件とは異なる条件を用いている点、においてのみ、第１０制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
より具体的に述べると、第１１制御装置のＣＰＵ８１は、第１０制御装置のＣＰＵ８１が実行するルーチンのうち図２６を除くルーチンを実行するようになっている。更に、第９制御装置のＣＰＵ８１は、図２６に代わる図２７にフローチャートにより示した「空燃比外乱発生判定ルーチン」を実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１は図２７のステップ２７００から処理を開始してステップ２７１０に進み、図２５のステップ２５２０にて決定されたデューティ比ＤＥＧＲをテーブルＭａｐＡＥＧＲｔｇｔに適用することにより、目標ＥＧＲ弁開度ＡＥＧＲＶｔｇｔを取得する。目標ＥＧＲ弁開度は、ＥＧＲ弁５５がデューティ比ＤＥＧＲにて駆動されたときに収束するＥＧＲ弁開度である。
次に、ＣＰＵ８１は、ステップ２７２０に進み、「現時点においてＥＧＲ弁開度センサ７０により検出された実際のＥＧＲ弁開度ＡＥＧＲＶａｃｔ」と「目標ＥＧＲ弁開度ＡＥＧＲＶｔｇｔ」との差（ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ）が所定のＥＧＲ弁オーバーシュート閾値Ａｅｅｒｔｈ以上であるか否かを判定する。換言すると、ＣＰＵ８１はステップ２７２０にて、実際の外部ＥＧＲ率と目標ＥＧＲ率との差が所定値以上であるか否かを判定する。
このとき、差（ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ）が所定のＥＧＲ弁オーバーシュート閾値Ａｅｅｒｔｈ以上であると、ＣＰＵ８１はステップ２７２０にて「Ｙｅｓ」と判定してステップ２７３０に進む。即ち、ＣＰＵ８１は、外部ＥＧＲ率（従って、外部ＥＧＲ量）が過剰であるので、空燃比を変動させる外乱が発生すると推定する。そして、ＣＰＵ８１は、ステップ２７３０にて空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。その後、ＣＰＵ８１はステップ２７９５に進んで本ルーチンを一旦終了する。
これに対し、差（ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ）が所定のＥＧＲ弁オーバーシュート閾値Ａｅｅｒｔｈよりも小さいと、ＣＰＵ８１はステップ２７２０にて「Ｎｏ」と判定してステップ２７４０に進む。即ち、ＣＰＵ８１は、外部ＥＧＲ率（従って、外部ＥＧＲ量）が過剰ではないので、空燃比を変動させる外乱は発生しないと推定する。そして、ＣＰＵ８１は、ステップ２７４０にて空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。その後、ＣＰＵ８１はステップ２７９５に進んで本ルーチンを一旦終了する。
なお、第１１制御装置のＣＰＵ８１は、図２７のステップ２７２０において、上述した差（ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ）の絶対値｜ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ｜が所定のＥＧＲ弁オーバーシュート閾値Ａｅｅｒｔｈ以上であるか否かを判定するように構成されてもよい。
以上、説明したように、第１１制御装置は、
前記排気還流管（５４）と、前記ＥＧＲ弁（５５）と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号（ＤＥＧＲ）を前記ＥＧＲ弁（５５）に与える外部ＥＧＲ制御手段（図２５のルーチンを参照。）と、
前記ＥＧＲ弁の実際の開度（ＡＥＧＲＶａｃｔ）を取得するとともに、同取得されたＥＧＲ弁の実際の開度（ＡＥＧＲＶａｃｔ）と前記ＥＧＲ弁に与えられている指示信号（ＤＥＧＲ）により定まる前記ＥＧＲ弁の開度（ＡＥＧＲＶｔｇｔ）との差（ＡＥＧＲＶａｃｔ−ＡＥＧＲＶｔｇｔ）が所定のＥＧＲ弁開度差閾値（ＥＧＲ弁オーバーシュート閾値Ａｅｅｒｔｈ）以上であると推定されるとき（図２７のステップ２７２０での「Ｙｅｓ」の判定を参照。）、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された学習促進禁止手段（図２７のルーチンを参照。）と、
を備える。
従って、第１１制御装置は、「実際のＥＧＲ弁の開度が目標ＥＧＲ弁開度に対して過大（又は過小）になること」に起因して外部ＥＧＲ量が過大（又は過小）となり、それにより、機関の空燃比が過渡的に変動する虞がある場合、学習促進制御を適切に禁止することができる。
第１変形例
次に、本発明の各実施形態に係る空燃比制御装置の第１変形例（以下、「第１変形装置」とも称呼する。）について説明する。第１変形装置は、各実施形態のＣＰＵ８１が実行する図１３に示したルーチンに代え、図２８に示したサブＦＢ学習値Ｖａｆｓｆｂｇの学習促進ルーチン（その２）を所定時間の経過毎に実行している。なお、図２８において図１３に示したステップと同一の処理を行うためのステップには、図１３のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
ＣＰＵ８１は、学習促進要求フラグＸＺＬの値が「０」である場合、又は、学習促進要求フラグＸＺＬの値が「１」であるが空燃比外乱発生フラグＸＧＩＲＮの値が「１」である場合、ステップ２８１０に進む。そして、ＣＰＵ８１は、そのステップ２８１０にて、比例ゲインＫｐを通常値ＫｐＳｍａｌｌに設定するとともに、積分ゲインＫｉを通常値ＫｉＳｍａｌｌに設定する。この比例ゲインＫｐ及び積分ゲインＫｉは、先に説明した図１１のステップ１１１５にて使用されるゲインである（上記（１１）式を参照。）。従って、この場合、比例ゲインＫｐ及び積分ゲインＫｉが何れも通常値（学習促進制御非実行時の値）に設定されるので、サブフィードバック量Ｖａｆｓｆｂは比較的緩慢に変化する。その結果、学習値Ｖａｆｓｆｂｇも緩慢に変化し、学習値Ｖａｆｓｆｂｇはサブフィードバック量Ｖａｆｓｆｂの収束値へと穏やかに接近する。即ち、通常学習制御が実行される。
これに対し、ＣＰＵ８１は、学習促進要求フラグＸＺＬの値が「１」であり且つ空燃比外乱発生フラグＸＧＩＲＮの値が「０」である場合、ステップ２８２０に進む。そして、ＣＰＵ８１は、そのステップ２８２０にて、比例ゲインＫｐを通常値ＫｐＳｍａｌｌよりも大きい促進値ＫｐＬａｒｇｅに設定するとともに、積分ゲインＫｉを通常値ＫｉＳｍａｌｌよりも大きい促進値ＫｉＬａｒｇｅに設定する。この結果、サブフィードバック量Ｖａｆｓｆｂは比較的迅速に変化する。その結果、学習値Ｖａｆｓｆｂｇも迅速に変化し、学習値Ｖａｆｓｆｂｇはサブフィードバック量Ｖａｆｓｆｂの収束値へと速やかに接近する。即ち、学習促進制御が実行される。
なお、第１変形装置において、ステップ２８１０にて図１３のステップ１３２０の処理（図１１のステップ１１４０にて使用される値ｐを第１の値ｐＳｍａｌｌに設定する処理）を加えるとともに、ステップ２８２０にて図１３のステップ１３４０の処理（ステップ１１４０にて使用される値ｐを第２の値ｐＬａｒｇｅに設定する処理）を加えてもよい。
以上、説明したように、第１変形装置は、
前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）を「前記第１フィードバック量（サブフィードバック量Ｖａｆｓｆｂ）又は前記第１フィードバック量に含まれる定常成分」に除々に接近させるように前記学習値の更新を行うように構成された学習手段（図１１のルーチンの特にステップ１１３５〜ステップ１１５５を参照。）と、
前記第１フィードバック量の更新速度（比例ゲインＫｐ及び積分ゲインＫｉが大きいほど大きくなる更新速度）を、前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成された学習促進手段（図２８のルーチンを参照。）と、
を備える。
第２変形例
次に、本発明の各実施形態に係る空燃比制御装置の第２変形例（以下、「第２変形装置、又は、判定装置」とも称呼する。）について説明する。第２変形装置は、「空燃比気筒間インバランス判定」を実行する。
ところで、前述した上流側空燃比センサ６７は、図２９に示したように、固体電解質層６７ａと、排ガス側電極層６７ｂと、大気側電極層６７ｃと、拡散抵抗層６７ｄと、隔壁部６７ｅと、ヒータ６７ｆと、を含んでいる。
固体電解質層６７ａは酸素イオン導電性酸化物焼結体である。本例において、固体電解質層６７ａは、ＺｒＯ２（ジルコニア）にＣａＯを安定剤として固溶させた「安定化ジルコニア素子」である。固体電解質層６７ａは、その温度が活性温度以上であるとき、周知の「酸素電池特性」及び「酸素ポンプ特性」を発揮する。
排ガス側電極層６７ｂは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。排ガス側電極層６７ｂは、固体電解質層６７ａの一つの面上に形成されている。排ガス側電極層６７ｂは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
大気側電極層６７ｃは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。大気側電極層６７ｃは、固体電解質層６７ａの他の面上であって、固体電解質層６７ａを挟んで排ガス側電極層６７ｂに対向するように形成されている。大気側電極層６７ｃは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
拡散抵抗層（拡散律速層）６７ｄは、多孔質セラミック（耐熱性無機物質）からなる。拡散抵抗層６７ｄは、排ガス側電極層６７ｂの外側表面を覆うように、例えば、プラズマ溶射法等により形成されている。分子径の小さい水素Ｈ２の拡散抵抗層６７ｄにおける拡散速度は、相対的に分子径の大きい「炭化水素ＨＣ及び一酸化炭素ＣＯ等」の拡散抵抗層６７ｄにおける拡散速度よりも大きい。従って、拡散抵抗層６７ｄの存在により、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等よりも「排ガス側電極層６７ｂ」に速やかに到達する。上流側空燃比センサ６７は、拡散抵抗層６７ｄの外表面が「排ガスに晒される（機関１０から排出された排ガスが接する）」ように配置される。
隔壁部６７ｅは、緻密であってガスを透過させないアルミナセラミックスからなる。隔壁部６７ｅは大気側電極層６７ｃを収容する空間である「大気室６７ｇ」を形成するように構成されている。大気室６７ｇには大気が導入されている。
ヒータ６７ｆは隔壁部６７ｅに埋設されている。ヒータ６７ｆは通電されたときに発熱し、固体電解質層６７ａを加熱するようになっている。
上流側空燃比センサ６７は、図３０に示したように、電源６７ｈを使用する。電源６７ｈは、大気側電極層６７ｃ側が高電位となり、排ガス側電極層６７ｂが低電位となるように、電圧Ｖを印加する。
図３０に示したように、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、上述した酸素ポンプ特性が利用されることにより空燃比が検出される。即ち、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、排ガス中に多量に含まれる酸素分子が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。その酸素分子は電子を受け取って酸素イオンになる。酸素イオンは、固体電解質層６７ａを通過し、大気側電極層６７ｃにて電子を放出して酸素分子になる。この結果、電源６７ｈの正極から、大気側電極層６７ｃ、固体電解質層６７ａ及び排ガス側電極層６７ｂを介して電源６７ｈの負極へと電流Ｉが流れる。
この電流Ｉの大きさは、電圧Ｖの大きさを所定値Ｖｐ以上に設定したとき、拡散抵抗層６７ｄの外側表面に到達した排ガスに含まれる酸素分子のうち「拡散抵抗層６７ｄを通って排ガス側電極層６７ｂへと拡散によって到達する酸素分子」の量に応じて変化する。即ち、電流Ｉの大きさは、排ガス側電極層６７ｂにおける酸素濃度（酸素分圧）に応じて変化する。排ガス側電極層６７ｂにおける酸素濃度は、拡散抵抗層６７ｄの外側表面に到達した排ガスの酸素濃度に応じて変化する。この電流Ｉは、図３１に示したように、電圧Ｖを所定値Ｖｐ以上に設定しても変化しないから、限界電流Ｉｐと呼ばれる。空燃比センサ６７は、この限界電流Ｉｐ値に基いて空燃比に応じた値を出力する。
これに対し、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、図３２に示したように、上述した酸素電池特性が利用されることにより空燃比が検出される。より具体的に述べると、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、排ガス中に多量に含まれる未燃物（ＨＣ，ＣＯ及びＨ２等）が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。この場合、大気側電極層６７ｃにおける酸素濃度と排ガス側電極層６７ｂにおける酸素濃度との差（酸素分圧差）が大きくなるので、固体電解質層６７ａは酸素電池として機能する。印加電圧Ｖは、この酸素電池の起電力よりも小さくなるように設定される。
従って、大気室６７ｇに存在する酸素分子は大気側電極層６７ｃにて電子を受け取って酸素イオンとなる。その酸素イオンは、固体電解質層６７ａを通過し、排ガス側電極層６７ｂへと移動する。そして、排ガス側電極層６７ｂにて未燃物を酸化し、電子を放出する。この結果、電源６７ｈの負極から、排ガス側電極層６７ｂ、固体電解質層６７ａ及び大気側電極層６７ｃを介して電源６７ｈの正極へと電流Ｉが流れる。
この電流Ｉの大きさは、大気側電極層６７ｃから固体電解質層６７ａを通って排ガス側電極層６７ｂに到達する酸素イオンの量により定まる。前述したように、この酸素イオンは排ガス側電極層６７ｂにて未燃物を酸化するために使用される。従って、拡散により拡散抵抗層６７ｄを通過して排ガス側電極層６７ｂに到達する未燃物の量が多いほど、固体電解質層６７ａを通過する酸素イオンの量は多くなる。換言すると、空燃比が小さいほど（理論空燃比よりもリッチ側の空燃比であって未燃物の量が多いほど）、電流Ｉの大きさは大きくなる。但し、拡散抵抗層６７ｄの存在により、排ガス側電極層６７ｂに到達する未燃物の量は制限されるので、電流Ｉは空燃比に応じた一定値Ｉｐとなる。上流側空燃比センサ６７は、この限界電流Ｉｐ値に基いて空燃比に応じた値を出力する。この結果、上流側空燃比センサ６７は、図３に示した出力値Ｖａｂｙｆｓを出力する。
上述したように、下流側空燃比センサ６８は、周知の濃淡電池型の酸素濃度センサ（Ｏ２センサ）である。下流側空燃比センサ６８は、例えば、図２９に示した上流側空燃比センサ６７と同様な構成を備える（但し、電源６７ｈを除く。）。或いは、下流側空燃比センサ６８は、試験管状の固体電解質層と、固体電解質層の外側に形成された排ガス側電極層と、大気室（固体電解質層の内側）に露呈し且つ固体電解室層を挟んで排ガス側電極層と対向するように固体電解質層に形成された大気側電極層と、排ガス側電極層を覆い且つ排ガスが接触する（排ガス中に晒されるように配置される）拡散抵抗層と、を備えるものであってもよい。
（空燃比気筒間インバランス判定の原理）
次に、上記判定装置による「空燃比気筒間インバランス判定」の原理について説明する。空燃比気筒間インバランス判定とは、気筒間における空燃比の不均一性が警告必要値以上となったか否か、換言すると、気筒別空燃比の間に（エミッション上許容できない程度の）不均衡（即ち、空燃比気筒間インバランス）が生じているか否か、を判定することである。
機関１０の燃料は炭素と水素との化合物である。従って、燃料が燃焼して水Ｈ２Ｏと二酸化炭素ＣＯ２へと変化する過程において、「炭化水素ＨＣ、一酸化炭素ＣＯ及び水素Ｈ２等」の未燃物が中間生成物として生成される。
燃焼に供される混合気の空燃比が理論空燃比よりも小さくなるほど（即ち、空燃比が理論空燃比よりもリッチ側の空燃比になるほど）、燃料が完全燃焼するために必要な酸素の量と実際の酸素の量との差が増大する。換言すると、リッチ側の空燃比になるほど燃焼途中における酸素の不足量が増大し、酸素濃度が低下するから、中間生成物（未燃物）が酸素と出合って結合する（酸化される）確率が急激に小さくなる。この結果、図３３に示したように、気筒から排出される未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に（二次関数的に）増大する。なお、図３３の点Ｐ１、点Ｐ２及び点Ｐ３は、ある気筒に供給される燃料の量が、その気筒の空燃比が理論空燃比に一致する場合の燃料の量に対して、それぞれ１０％（＝ＡＦ１）、３０％（＝ＡＦ２）及び４０％（＝ＡＦ３）だけ過剰となった点を示す。
更に、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等に比べて小さい分子である。従って、水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）に比較して、上流側空燃比センサ６７の拡散抵抗層６７ｄを迅速に拡散する。このため、ＨＣ，ＣＯ及びＨ２からなる未燃物が多量に発生すると、拡散抵抗層６７ｄにおいて水素Ｈ２の選択的拡散（優先的な拡散）が顕著に発生する。即ち、水素Ｈ２は、空燃比検出素子の表面（固体電解質層６７ａの表面に形成された排ガス側電極層６７ｂ）に「他の未燃物（ＨＣ，ＣＯ）」よりも多量に到達するようになる。この結果、水素Ｈ２の濃度と他の未燃物（ＨＣ，ＣＯ）の濃度とのバランスが崩れる。換言すると、「上流側空燃比センサ６７の空燃比検出素子（排ガス側電極層６７ｂ）に到達した排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合は、「機関１０から排出された排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合よりも大きくなる。
ところで、上述した上流側目標空燃比ａｂｙｆｒは理論空燃比ｓｔｏｉｃｈに設定される。更に、下流側目標値Ｖｏｘｓｒｅｆは理論空燃比に相当する値（０．５Ｖ）に設定される。
いま、空燃比気筒間インバランスが発生していない状態において、各気筒の空燃比が一律にリッチ側に偏移した場合を想定する。このような状態は、例えば、燃料噴射量を算出する際の基本量となる「機関の吸入空気量の測定値又は推定値」が「真の吸入空気量」よりも大きくなったとき等において発生する。
この場合、例えば、各気筒の空燃比が図３３に示したＡＦ２であった仮定する。ある気筒の空燃比がＡＦ２であると、ある気筒の空燃比がＡＦ２よりも理論空燃比に近い空燃比ＡＦ１である場合に比べ、より多くの未燃物（従って、水素Ｈ２）が排ガスに含まれる（点Ｐ１及び点Ｐ２を参照。）。従って、上流側空燃比センサ６７の拡散抵抗層６７ｄにおいて「水素Ｈ２の選択的拡散」が発生する。
しかしながら、この場合、「各気筒が一回の燃焼行程を終了する間（クランク角７２０度に相当する期間）に機関１０に供給される混合気」の空燃比の真の平均値もＡＦ２である。更に、上述したように、図３に示した空燃比変換テーブルＭａｐａｂｙｆｓは、「水素Ｈ２の選択的拡散」を考慮して作成されている。従って、上流側空燃比センサ６７の実際の出力値Ｖａｂｙｆｓにより表される上流側空燃比ａｂｙｆｓ（実際の出力値Ｖａｂｙｆｓを空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより得られる上流側空燃比ａｂｙｆｓ）は、上記「空燃比の真の平均値ＡＦ２」に一致する。
それ故、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比は「上流側目標空燃比ａｂｙｆｒである理論空燃比」に一致するように修正され、空燃比気筒間インバランスは発生していないから、各気筒の空燃比も理論空燃比に略一致する。従って、サブフィードバック量Ｖａｆｓｆｂ及びサブＦＢ学習値Ｖａｆｓｆｂｇは、空燃比の補正を大きく行う値となることはない。換言すると、空燃比気筒間インバランスが発生していない場合、サブフィードバック量Ｖａｆｓｆｂ及びサブＦＢ学習値Ｖａｆｓｆｂｇは、空燃比の補正を大きく行う値とならない。
次に、「空燃比気筒間インバランスが発生した場合」の各値の挙動について、上述した「空燃比気筒間インバランスが発生していない場合」の各値の挙動と比較しながら説明する。
例えば、機関１０の各気筒に吸入される空気量（重量）がＡ０であり、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０が理論空燃比（例えば、１４．５）であると仮定する。
そして、吸入空気量の推定誤差等に起因して、各気筒に対して供給（噴射）される燃料量が均等に１０％だけ過剰となったと仮定する。即ち、各気筒に１．１・Ｆ０の燃料が供給されたと仮定する。このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）である。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。このとき、上流側空燃比センサの出力値は、空燃比Ａ０／（１．１・Ｆ０）に応じた出力値となる。
従って、メインフィードバック制御により、各気筒に供給される燃料の量が１０％ずつ減量され（各気筒に１・Ｆ０の燃料が供給されるようになり）、機関１０全体に供給される混合気の空燃比は理論空燃比Ａ０／Ｆ０に一致させられる。
これに対し、特定気筒の空燃比のみが大きくリッチ側にずれた場合を想定する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁３９の噴射特性が「指示された燃料噴射量よりも相当に多い量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁３９の異常は「燃料噴射弁のリッチずれ異常」とも称呼される。
いま、ある一つの特定気筒に対して供給される燃料の量が４０％だけ過剰な量（即ち、１．４・Ｆ０）であり、残りの３気筒に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量（即ち、１・Ｆ０）であると仮定する。この場合、特定気筒の空燃比は図３３に示した「ＡＦ３」であり、残りの気筒の空燃比は理論空燃比である。
このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。一方、機関１０に供給される燃料の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．４・Ｆ０＋Ｆ０＋Ｆ０＋Ｆ０）である。
従って、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。即ち、この場合の機関１０全体に供給される混合気の空燃比の真の平均値は、上述した「各気筒に対して供給される燃料の量が均等に１０％だけ過剰である場合」と同じ値となる。
しかしながら、前述したように、排ガス中の未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に増大する。このため、「特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ１は、図３３によれば、ＳＨ１＝Ｈ３＋Ｈ０＋Ｈ０＋Ｈ０＝Ｈ３＋３・Ｈ０となる。これに対し、「各気筒に対して供給される燃料の量が均等に１０％だけ過剰となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ２は、図３３によれば、ＳＨ２＝Ｈ１＋Ｈ１＋Ｈ１＋Ｈ１＝４・Ｈ１となる。このとき、量Ｈ１は量Ｈ０よりも僅かに大きいが、量Ｈ１及び量Ｈ０は共に極めて微量である。即ち、量Ｈ１と量Ｈ０とは、量Ｈ３に比べた場合、互いに略等しいと言える。従って、水素総量ＳＨ１は水素総量ＳＨ２よりも極めて大きくなる（ＳＨ１＞＞ＳＨ２）。
このように、機関１０全体に供給される混合気の空燃比の真の平均値が同一であっても、空燃比気筒間インバランスが発生した場合に排ガスに含まれる水素の総量ＳＨ１は、空燃比気筒間インバランスが発生していない場合に排ガスに含まれる水素の総量ＳＨ２よりも、顕著に大きくなる。
従って、特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合、上述した拡散抵抗層６７ｄにおける「水素Ｈ２の選択的拡散」に起因して、上流側空燃比センサの出力値Ｖａｂｙｆｓにより表される空燃比は「機関１０全体に供給される混合気の空燃比の真の平均値（Ａ０／（１．１・Ｆ０））」よりもリッチ側の空燃比（小さい空燃比）となる。つまり、排ガスの空燃比の平均値が同じであっても、空燃比気筒間インバランスが発生している場合には、空燃比気筒間インバランスが発生していない場合よりも、上流側空燃比センサ６７の排ガス側電極層６７ｂにおける水素Ｈ２の濃度が高くなるから、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓは「空燃比の真の平均値」よりもリッチ側の空燃比を示す値となるのである。
その結果、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比の真の平均は、理論空燃比よりもリーン側に制御されてしまう。
一方、下流側空燃比センサ６８には、上流側触媒５３を通過した排ガスが到達する。排ガスに含まれる水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）とともに上流側触媒５３において酸化（浄化）される。従って、下流側空燃比センサ６８の出力値Ｖｏｘｓは、機関１０全体に供給される混合気の真の空燃比に応じた値となる。従って、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量等）は、上記メインフィードバック制御による空燃比のリーン側への過補正を補う値となる。そして、このようなサブフィードバック量等により、機関１０の空燃比の真の平均値は理論空燃比に一致させられる。
このように、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量）は、燃料噴射弁３９のリッチずれ異常（空燃比気筒間インバランス）に起因する「空燃比のリーン側への過補正」を補償するような値となる。また、このリーン側への過補正の程度は、リッチずれ異常を起こした燃料噴射弁３９が「指示された噴射量」に比較してより多くの量の燃料を噴射するようになるほど（即ち、特定気筒の空燃比がリッチ側の空燃比になるほど）増大する。
従って、サブフィードバック量が正の値であってその大きさが大きいほど「機関の空燃比がよりリッチ側へと補正されるシステム」においては、「サブフィードバック量に応じて変化する値（実際には、例えば、サブフィードバック量の定常成分を取り込んだサブフィードバック量の学習値）」は、空燃比気筒間インバランスの程度を示す値となる。
かかる知見に基づき、本判定装置は、サブフィードバック量に応じて変化する値（本例において、サブフィードバック量の学習値である「サブＦＢ学習値Ｖａｆｓｆｂｇ」）を、インバランス判定用パラメータとして取得する。つまり、インバランス判定用パラメータは「上流側触媒５３を通過する前の排ガスに含まれる水素の量と、上流側触媒５３を通過した後の排ガスに含まれる水素の量と、の差が大きいほど、大きくなる値」となる。そして、判定装置は、そのインバランス判定用パラメータが「異常判定閾値」以上となった場合（即ち、サブＦＢ学習値の増減に応じて増減する値が「機関の空燃比を異常判定閾値以上リッチ側に補正することを示す値」となった場合）、空燃比気筒間インバランスが発生したと判定する。
図３４の実線は、空燃比気筒間インバランスが発生して、ある一つの気筒の空燃比が理論空燃比からリッチ側及びリーン側に乖離した場合におけるサブＦＢ学習値を示している。図３４に示したグラフの横軸は「インバランス割合」である。インバランス割合とは、「理論空燃比Ｘに対する、理論空燃比Ｘとそのリッチずれした気筒の空燃比ａｆとの差Ｙ（＝Ｘ−ａｆ）、の比（Ｙ／Ｘ）」のことである。前述したように、インバランス割合が大きくなるほど、水素Ｈ２の選択的拡散の影響が急激に大きくなる。従って、図３４の実線により示されるように、サブＦＢ学習値（従って、インバランス判定用パラメータ）は、インバランス割合が大きくなるのに従って二次関数的に増大する。
なお、図３４の実線に示したように、インバランス割合が負の値である場合においても、そのインバランス割合の絶対値が増大するほど、サブＦＢ学習値は増大する。即ち、例えば、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、インバランス判定用パラメータとしてのサブＦＢ学習値（サブＦＢ学習値に応じた値）は増大する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁３９の噴射特性が「指示された燃料噴射量よりも相当に少ない量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁３９の異常は「燃料噴射弁のリーンずれ異常」とも称呼される。
以下、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、サブＦＢ学習値が増大する理由について簡単に説明する。以下の説明においても、機関１０の各気筒に吸入される空気量（重量）はＡ０であると仮定する。更に、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０は理論空燃比に一致すると仮定する。
いま、ある一つの特定気筒（便宜上、第１気筒とする。）に対して供給される燃料の量が４０％だけ過小な量（即ち、０．６・Ｆ０）であり、残りの３気筒（第２、第３及び第４気筒）に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量、即ちＦ０）となった場合を想定する。なお、この場合、失火は発生しないものと仮定している。
この場合、メインフィードバック制御により、第１気筒乃至第４気筒に供給される燃料の量は同じ所定量（１０％）だけ増大されたと仮定する。このとき、第１気筒に供給される燃料の量は０．７・Ｆ０となり、第２乃至第４気筒のそれぞれに供給される燃料の量は１．１・Ｆ０となる。
係る状態においては、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、メインフィードバック制御の結果、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４・Ｆ０（＝０．７・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）となる。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４・Ｆ０）＝Ａ０／Ｆ０、即ち、理論空燃比となっている。
しかしながら、この状態における「排ガスに含まれる水素Ｈ２の総量ＳＨ３」は、ＳＨ３＝Ｈ４＋Ｈ１＋Ｈ１＋Ｈ１＝Ｈ４＋３・Ｈ１となる。但し、Ｈ４は、空燃比がＡ０／（０．７・Ｆ０）であるときに発生する水素量であり、Ｈ１及びＨ０よりも小さく且つＨ０と略等しい。従って、総量ＳＨ３は、最大でも（Ｈ０＋３・Ｈ１）となる。
これに対し、空燃比気筒間インバランスが発生しておらず且つ機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比である場合、「排ガスに含まれる水素Ｈ２の総量ＳＨ４」は、ＳＨ４＝Ｈ０＋Ｈ０＋Ｈ０＋Ｈ０＝４・Ｈ０となる。前述したように、Ｈ１はＨ０よりも僅かに大きい。従って、総量ＳＨ３（＝Ｈ０＋３・Ｈ１）は総量ＳＨ４（＝４・Ｈ０）よりも大きくなる。
従って、「燃料噴射弁のリーンずれ異常」に起因する空燃比気筒間インバランスが発生している場合、メインフィードバック制御によって、機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比に移行されたときであっても、水素の選択的拡散の影響が上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに表れる。即ち、出力値Ｖａｂｙｆｓを空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより得られる上流側空燃比ａｂｙｆｓは、上流側目標空燃比ａｂｙｆｒである理論空燃比よりも「リッチ側（小さい）の空燃比」となる。その結果、メインフィードバック制御が更に実行され、機関１０全体に供給される混合気の空燃比の真の平均値は、理論空燃比よりもリーン側に補正されてしまう。
従って、サブフィードバック制御にて算出される空燃比の制御量は、燃料噴射弁３９のリーンずれ異常（空燃比気筒間インバランス）に起因する「メインフィードバック制御による空燃比のリーン側への過補正」を補償するように増大する。よって、「サブフィードバック制御にて算出される空燃比の制御量」に基いて取得される「インバランス判定用パラメータ（例えば、サブＦＢ学習値）」は、インバランス割合が負の値であってインバランス割合の絶対値が増大するほど増大する。
これにより、本判定装置は、特定気筒の空燃比が「リッチ側にずれた場合」のみならず「リーン側にずれた場合」にも、インバランス判定用パラメータ（例えば、サブＦＢ学習値の増減に応じて増減する値）が「異常判定閾値Ａｔｈ」以上となった場合に、空燃比気筒間インバランスが発生したと判定する。
なお、図３４の破線は、各気筒の空燃比が理論空燃比からリッチ側に一律に乖離し且つメインフィードバック制御を中止した場合におけるサブＦＢ学習値を示している。この場合、横軸は、「空燃比気筒間インバランスが生じた場合の機関の空燃比のズレ」と同一のズレとなるように調整してある。即ち、例えば、第１気筒のみが２０％だけリッチ側にずれるような「空燃比気筒間インバランス」が生じた場合、インバランス割合は２０％である。一方、各気筒の空燃比が一律に５％（２０％／４気筒）だけずれた場合、実際にはインバランス割合は０％であるが、図３４においてはインバランス割合は２０％に相当するものとして扱われる。図３４の実線と破線との比較から、「サブＦＢ学習値が異常判定閾値Ａｔｈ以上となったとき、空燃比気筒間インバランスが発生したと判定することができる。」ことが理解される。なお、実際にはメインフィードバック制御が実行されるので、空燃比気筒間インバランスが発生していない場合、サブＦＢ学習値は実際には図３４の破線に示したほど増大しない。
次に、本判定装置の実際の作動について説明する。
＜空燃比気筒間インバランス判定＞
次に、「空燃比気筒間インバランス判定」を実行するための処理について説明する。ＣＰＵ８１は、図３５に示した「空燃比気筒間インバランス判定ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ３５００から処理を開始し、ステップ３５０５に進んで「異常判定（空燃比気筒間インバランス判定）の前提条件（判定実施条件）」が成立しているか否かを判定する。換言すると、この前提条件が成立しない場合、空燃比気筒間インバランスの「判定禁止条件」が成立する。空燃比気筒間インバランスの「判定禁止条件」が成立すると、「サブＦＢ学習値Ｖａｆｓｆｂｇに基いて算出されるインバランス判定用パラメータ」を用いた「以下に述べる空燃比気筒間インバランス」の判定が実行されない。
この異常判定（空燃比気筒間インバランス判定）の前提条件は、例えば、次の条件１とすることができる。
（条件１）上流側触媒５３の水素を酸化する能力が第１所定能力以下ではない。即ち、上流側触媒５３の水素を酸化する能力が第１所定能力より大きい場合。換言すると、この条件は、「上流側触媒５３の状態が、上流側触媒５３に流入する水素を所定量以上浄化し得る状態（即ち、水素浄化可能状態）にあること」である。
この条件１を設ける理由は次の通りである。
上流側触媒５３の水素を酸化する能力が第１所定能力以下であると、水素が上流側触媒５３において十分に浄化されず、水素が上流側触媒５３の下流に流出する可能性がある。この結果、下流側空燃比センサ６８の出力値Ｖｏｘｓが水素の選択的拡散の影響を受ける可能性があり、或いは、上流側触媒５３の下流のガスの空燃比が「機関１０全体に供給される混合気の空燃比の真の平均値」に一致しなくなる。従って、下流側空燃比センサ６８の出力値Ｖｏｘｓは、「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓを用いた上記空燃比フィードバック制御により過剰に補正された空燃比の真の平均値」に応じた値を示さない可能性が高い。故に、このような状態において空燃比気筒間インバランス判定を実行すると、判定を誤る可能性が高い。
上記条件１は、例えば、上流側触媒５３の酸素吸蔵量が第１閾値酸素吸蔵量以下ではない場合に成立する条件とすることができる。この場合、上流側触媒５３の水素を酸化する能力が第１所定能力よりも大きいと判定することができる。
いま、上述した異常判定の前提条件が成立していると仮定する。この場合、ＣＰＵ８１はステップ３５０５にて「Ｙｅｓ」と判定し、ステップ３５１０に進んで上述した「サブフィードバック制御条件が成立しているか否か」を判定する。そして、「サブフィードバック制御条件が成立している」とき、ＣＰＵ８１は以下に述べるステップ３５１５以降の処理を実行する。ステップ３５１５以降の処理は、異常判定（空燃比気筒間インバランス判定）のための処理の一部である。従って、サブフィードバック制御条件は、「異常判定の前提条件」の一つと言うこともできる。更に、サブフィードバック制御条件は、メインフィードバック制御条件が成立しているときに成立する。従って、メインフィードバック制御条件も、「異常判定の前提条件」の一つと言うことができる。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１は以下に述べるステップ３５１５乃至ステップ３５６０のうちの所定のステップの処理を実行する。
ステップ３５１５：ＣＰＵ８１は現時点が「サブＦＢ学習値Ｖａｆｓｆｂｇが更新された直後の時点（サブＦＢ学習値更新直後時点）」であるか否かを判定する。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点であれば、ステップ３５２０に進む。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点でなければ、ステップ３５９５に直接進んで本ルーチンを一旦終了する。
ステップ３５２０：ＣＰＵ８１は学習値積算カウンタＣｅｘｅの値を「１」だけ増大する。
ステップ３５２５：ＣＰＵ８１は図１１のルーチンにより算出されているサブＦＢ学習値Ｖａｆｓｆｂｇを読み込む。
ステップ３５３０：ＣＰＵ８１は、サブＦＢ学習値Ｖａｆｓｆｂｇの積算値ＳＶａｆｓｆｂｇを更新する。即ち、ＣＰＵ８１は「その時点の積算値ＳＶａｆｓｆｂｇ」に「ステップ３５２５にて読み込んだサブＦＢ学習値Ｖａｆｓｆｂｇ」を加えることにより、新たな積算値ＳＶａｆｓｆｂｇを得る。
この積算値ＳＶａｆｓｆｂｇは、イグニッション・キー・スイッチがオフ位置からオン位置に切り換えられた際に実行される図示しないイニシャルルーチンにより「０」に設定されるようになっている。更に、積算値ＳＶａｆｓｆｂｇは、後述するステップ３５６０の処理によっても「０」に設定される。このステップ３５６０は、異常判定（空燃比気筒間インバランス判定、ステップ３５４５〜ステップ３５５５）が実行されたときに実行される。従って、積算値ＳＶａｆｓｆｂｇは、「機関の始動後又は直前の異常判定実行後」において、「異常判定の前提条件が成立している場合」であって、且つ、「サブフィードバック制御条件が成立している場合」、におけるサブＦＢ学習値Ｖａｆｓｆｂｇの積算値となる。
ステップ３５３５：ＣＰＵ８１は学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈ以上であるか否かを判定する。ＣＰＵ８１は、学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈよりも小さいと、ステップ３５３５にて「Ｎｏ」と判定してステップ３５９５に直接進み、本ルーチンを一旦終了する。これに対し、ＣＰＵ８１は、学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈ以上であると、ステップ３５３５にて「Ｙｅｓ」と判定してステップ３５４０に進む。
ステップ３５４０：ＣＰＵ８１は、「サブＦＢ学習値Ｖａｆｓｆｂｇの積算値ＳＶａｆｓｆｂｇ」を「学習値積算カウンタＣｅｘｅ」で除することにより、サブＦＢ学習値平均値Ａｖｅｓｆｂｇを求める。このサブＦＢ学習値平均値Ａｖｅｓｆｂｇは、前述したように、上流側触媒５３を通過する前の排ガスに含まれる水素の量と上流側触媒５３を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータである。
ステップ３５４５：ＣＰＵ８１は、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈ以上であるか否かを判定する。前述したように、気筒間における空燃比の不均一性が過大となって「空燃比気筒間インバランス」が生じている場合、サブフィードバック量Ｖａｆｓｆｂは機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値になろうとするから、それに伴って、サブＦＢ学習値Ｖａｆｓｆｂｇの平均値であるサブＦＢ学習値平均値Ａｖｅｓｆｂｇも「機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値（閾値Ａｔｈ以上の値）」となる。
従って、ＣＰＵ８１は、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈ以上である場合、ステップ３５４５にて「Ｙｅｓ」と判定してステップ３５５０に進み、異常発生フラグＸＩＪＯの値を「１」に設定する。つまり、異常発生フラグＸＩＪＯの値が「１」であることは、空燃比気筒間インバランスが生じていることを示す。なお、この異常発生フラグＸＩＪＯの値はバックアップＲＡＭ８４に格納される。また、異常発生フラグＸＩＪＯの値が「１」に設定されたとき、ＣＰＵ８１は図示しない警告ランプを点灯してもよい。
これに対し、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈよりも小さい場合、ＣＰＵ８１はステップ３５４５にて「Ｎｏ」と判定してステップ３５５５に進む。そして、ＣＰＵ８１は、ステップ３５５５にて、「空燃比気筒間インバランス」が生じていないことを示すように、異常発生フラグＸＩＪＯの値を「０」に設定する。
ステップ３５６０：ＣＰＵ８１は、ステップ３５５０及びステップ３５５５の何れかからステップ３５６０に進み、学習値積算カウンタＣｅｘｅの値を「０」に設定する（リセットする）とともに、サブＦＢ学習値の積算値ＳＶａｆｓｆｂｇを「０」に設定する（リセットする）。
なお、ＣＰＵ８１は、ステップ３５０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ３５９５に進んで本ルーチンを一旦終了する。また、ＣＰＵ８１は、ステップ３５０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ３５６０を経由してからステップ３５９５に進み、本ルーチンを一旦終了するように構成されてもよい。更に、ＣＰＵ８１は、ステップ３５１０の処理を実行したとき、サブフィードバック制御条件が成立していなければ、ステップ３５９５に直接進んで本ルーチンを一旦終了する。
以上、説明したように、判定装置（第２変形装置）は、
前記学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）に基いて前記触媒５３を通過する前の排ガスに含まれる水素の量と前記触媒５３を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータ（サブＦＢ学習値平均値Ａｖｅｓｆｂｇ）を取得するインバランス判定用パラメータ取得手段（図３５の特にステップ３５２０乃至ステップ３５４０）と、
前記取得されたインバランス判定用パラメータ（サブＦＢ学習値平均値Ａｖｅｓｆｂｇ）が異常判定閾値（Ａｔｈ）よりも大きいとき前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段（図３５の特にステップ３５４５乃至ステップ３５５５）と、
を備えた空燃比制御装置である。
更に、
前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータ（サブＦＢ学習値平均値Ａｖｅｓｆｂｇ）を学習値（サブＦＢ学習値Ｖａｆｓｆｂｇ）が大きくなるに従って大きくなるように取得するように構成されている。
これによれば、空燃比気筒間インバランスが発生したことを検出することができる実用的な空燃比気筒間インバランス判定装置が提供される。
以上、説明したように、本発明の各実施形態に係る装置は、サブＦＢ学習値Ｖａｆｓｆｂｇの学習促進制御を実行している期間において「機関の空燃比を過渡的に乱す状態」が発生した場合、その学習促進制御を禁止する。従って、サブＦＢ学習値Ｖａｆｓｆｂｇが適正値から乖離することを回避することができる。その結果、各実施形態に係る装置は、「サブＦＢ学習値Ｖａｆｓｆｂｇが適正値から乖離しているためにエミッションが悪化する期間」を短縮することができる。
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。以下、そのような本発明の実施形態の変形例（以下、「本装置」とも称呼する。）について列挙する。
・本装置は、内部ＥＧＲの量を変更する手段として、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６のうちの何れか一方のみを備えることができる。
・本装置は、サブフィードバック量Ｖａｆｓｆｂを算出する際に求められる「出力偏差量ＤＶｏｘｓの積分値に基づく値ＳＤＶｏｘｓ」をサブＦＢ学習値ＶａｆｓｆｂｇとしてバックアップＲＡＭ８４に記憶してもよい。この場合、サブＦＢ学習値Ｖａｆｓｆｂｇは例えば、下記（２５）式に基づいて更新される。（２５）式において、ｋ３は０から１までの任意の定数であり、Ｖａｆｓｆｂｇｎｅｗは更新後のサブＦＢ学習値Ｖａｆｓｆｂｇである。
Ｖａｆｓｆｂｇｎｅｗ＝ｋ３・Ｖａｆｓｆｂｇ＋（１−ｋ３）・ＳＤＶｏｘｓ    …（２５）
この場合、サブフィードバック制御が開始されるまでの期間又はサブフィードバック制御の中止期間、サブフィードバック量ＶａｆｓｆｂとしてＫｉ・Ｖａｆｓｆｂｇを使用すればよい。このとき、上記（１）式におけるＶａｆｓｆｂは「０」に設定される。更に、この場合、サブフィードバック制御開始時おける出力偏差量の積分値ＳＤＶｏｘｓの初期値としてサブＦＢ学習値Ｖａｆｓｆｂｇを採用すればよい。
・本装置は、上記（１３）式により更新されるサブＦＢ学習値ＶａｆｓｆｂｇをバックアップＲＡＭ８４に記憶するとともに、上記（１）式におけるＶａｆｓｆｂを「０」に設定してもよい。
この場合、サブフィードバック制御が開始されるまでの期間（又はサブフィードバック制御の中止期間）、サブフィードバック量ＶａｆｓｆｂとしてサブＦＢ学習値Ｖａｆｓｆｂｇを採用すればよい。
・本装置は、サブＦＢ学習値Ｖａｆｓｆｂｇの更新を、下流側空燃比センサ６８の出力値Ｖｏｘｓが理論空燃比相当値Ｖｓｔ（０．５Ｖ）を横切った直後（リッチ・リーン反転時）に行うように構成され得る。この場合、本装置は、例えば、機関始動後のサブＦＢ学習値Ｖａｆｓｆｂｇの更新回数が所定値以下であるか否かを判定し、機関始動後のサブＦＢ学習値Ｖａｆｓｆｂｇの更新回数が所定値以下であるとき、上述した「学習不足状態」であると推定してもよい。
・本装置のパージ制御弁４９及びＥＧＲ弁５５は、デューティ信号により開度が調節されるスイッチングバルブ形式の弁、及び、ステップモータを使用して開度調整を行う弁、等であってもよい。
・本装置は、例えば、Ｖ型エンジンにも適用することができる。その場合、Ｖ型エンジンは右バンクに属する気筒の排気集合部よりも下流に右バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）を備え、左バンクに属する気筒の排気集合部よりも下流に左バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒以外の残りの２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）と、を備えることができる。更に、Ｖ型エンジンは、右バンク上流側触媒の上流及び下流に右バンク用の上流側空燃比センサ及び下流側空燃比センサを備え、左バンク上流側触媒の上流及び下流に左バンク用の上流側空燃比センサ及び下流側空燃比センサを備えることができる。この場合、右バンク用のメインフィードバック制御及びサブフィードバック制御が実行され、それとは独立して左バンク用のメインフィードバック制御及びサブフィードバック制御が実行される。
・本明細書及び請求の範囲で言う「学習促進制御を禁止すること」は、機関の空燃比を過渡的に変動させる外乱が発生する可能性が高いと推定される場合、その学習促進制御における学習値の更新速度よりも小さい更新速度（例えば、学習促進制御と通常学習制御との間の更新速度）により学習値Ｖａｆｓｆｂｇの更新を行うことを含む。そのようにするには、例えば、上述の値ｐをｐＬａｒｇｅとｐＳｍａｌｌとの間の値に設定すればよい。或いは、そのようにするには、上記比例ゲインＫｐを促進値ＫｐＬａｒｇｅと通常値ＫｐＳｍａｌｌとの間の値に設定するとともに、上記積分ゲインＫｉを促進値ＫｉＬａｒｇｅと通常値ＫｉＳｍａｌｌとの間の値に設定すればよい。
【図１】
2010087029.tif 000003
【図２】
2010087029.tif 000004
【図３】
2010087029.tif 000005
【図４】
2010087029.tif 000006
【図５】
2010087029.tif 000007
【図６】
2010087029.tif 000008
【図７】
2010087029.tif 000009
【図８】
2010087029.tif 000010
【図９】
2010087029.tif 000011
【図１０】
2010087029.tif 000012
【図１１】
2010087029.tif 000013
【図１２】
2010087029.tif 000014
【図１３】
2010087029.tif 000015
【図１４】
2010087029.tif 000016
【図１５】
2010087029.tif 000017
【図１６】
2010087029.tif 000018
【図１７】
2010087029.tif 000019
【図１８】
2010087029.tif 000020
【図１９】
2010087029.tif 000021
【図２０】
2010087029.tif 000022
【図２１】
2010087029.tif 000023
【図２２】
2010087029.tif 000024
【図２３】
2010087029.tif 000025
【図２４】
2010087029.tif 000026
【図２５】
2010087029.tif 000027
【図２６】
2010087029.tif 000028
【図２７】
2010087029.tif 000029
【図２８】
2010087029.tif 000030
【図２９】
2010087029.tif 000031
【図３０】
2010087029.tif 000032
【図３１】
2010087029.tif 000033
【図３２】
2010087029.tif 000034
【図３３】
2010087029.tif 000035
【図３４】
2010087029.tif 000036
【図３５】
2010087029.tif 000037
【手続補正書】
【提出日】平成23年2月24日(2011.2.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量を同下流側空燃比センサの出力値と同下流側目標空燃比に応じた値とに基いて更新する第１フィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記第１フィードバック量に基いて同第１フィードバック量の定常成分を取り込むように同第１フィードバック量の学習値を更新する学習手段と、
前記第１フィードバック量及び前記学習値のうちの少なくとも一方に基いて前記燃料噴射弁から噴射される燃料の量を制御することにより前記触媒に流入する排ガスの空燃比を制御する空燃比制御手段と、
前記学習値と同学習値が収束すべき値との差である第２偏差が所定値以上である学習不足状態が発生しているか否かを推定するとともに、同学習不足状態が発生していると推定されるとき同学習不足状態が発生していないと推定されるときに比較して前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を過渡的に変動させる外乱が発生するか否かを推定するとともに同外乱が発生すると推定されるとき前記学習促進制御を禁止する学習促進禁止手段と、
を備え、
前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒との間の前記排気通路に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサであって前記触媒を通過する前の排ガスが接触する拡散抵抗層と前記出力値を出力する空燃比検出素子とを有する上流側空燃比センサと、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を上流側目標空燃比と一致させるための基本燃料噴射量を前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に前記上流側空燃比センサの出力値と前記第１フィードバック量と前記学習値とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比に一致するように前記基本燃料噴射量を補正するための第２フィードバック量を更新する第２フィードバック量更新手段と、
前記第２フィードバック量により前記基本燃料噴射量を補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射指示手段と、
を含み、
前記学習値に基いて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得するインバランス判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段と、
を備えた空燃比制御装置。
【請求項２】
（削除）
【請求項３】
請求の範囲１に記載の内燃機関の空燃比制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記学習値の前記第１フィードバック量への又は前記第１フィードバック量に含まれる定常成分への接近速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記学習手段に対して指示を与えるように構成された空燃比制御装置。
【請求項４】
請求の範囲１に記載の内燃機関の空燃比制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記第１フィードバック量の更新速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成された空燃比制御装置。
【請求項５】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記第２フィードバック量更新手段は、
前記パージ制御弁が０でない所定の開度に開かれているとき少なくとも前記上流側空燃比センサの出力値に基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値として更新するとともに同蒸発燃料ガス濃度学習値にも基いて前記第２フィードバック量を更新するように構成され、
前記学習促進禁止手段は、
前記蒸発燃料ガス濃度学習値の前記機関の始動後からの更新回数が所定の更新回数閾値よりも小さいとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項６】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度が所定の濃度閾値以上であると推定されるとき、前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項７】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンクと、
前記燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成する通路部であって同燃料タンクと同吸気通路とを接続したパージ通路部と、
前記パージ通路部に配設されるとともに指示信号に応答して開度が変更されるように構成されたパージ制御弁と、
前記機関の運転状態に応じて前記パージ制御弁の開度を変更するように前記指示信号を前記パージ制御弁に与えるパージ制御手段と、
を備え、
前記学習促進禁止手段は、
前記蒸発燃料ガスの濃度に応じた値を取得するとともに、同取得した値に基いて同蒸発燃料ガスの濃度の変化速度が所定濃度変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項８】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する筒内残留ガスの量である内部ＥＧＲ量を前記機関の運転状態に応じて制御する内部ＥＧＲ量制御手段を備え、
前記学習促進禁止手段は、
前記内部ＥＧＲ量の変化速度が所定の内部ＥＧＲ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項９】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する筒内残留ガスの量である内部ＥＧＲ量を変更するための制御量を指示信号に応じて変更する内部ＥＧＲ量変更手段と、
前記機関の運転状態に応じて前記内部ＥＧＲ量を変更するための制御量の目標値を取得する制御量目標値取得手段と、
前記内部ＥＧＲ量変更手段に対し前記制御量の実際の値が前記制御量の目標値に一致するように前記指示信号を与える内部ＥＧＲ量制御手段と、
を備え、
前記学習促進禁止手段は、
前記内部ＥＧＲ量を変更するための制御量の実際の値を取得するとともに、同取得された制御量の実際の値と前記制御量の目標値との差が所定の制御量差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１０】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間を前記機関の運転状態に基いて変更するバルブオーバーラップ期間変更手段を備え、
前記学習促進禁止手段は、
前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の変化速度が所定のバルブオーバーラップ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１１】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間が前記機関の運転状態に基いて定められる目標オーバーラップ期間に一致するように同バルブオーバーラップ期間を変更するバルブオーバーラップ期間変更手段を備え、
前記バルブオーバーラップ期間の長さであるバルブオーバーラップ量の実際値を取得するとともに、同取得されたバルブオーバーラップ量の実際値と前記目標オーバーラップ期間の長さである目標オーバーラップ量とのバルブオーバーラッブ量差が所定のバルブオーバーラップ量差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１２】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期を前記機関の運転状態に基いて変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の変化速度が所定の吸気弁開弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１３】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期が前記機関の運転状態に基いて定められる目標吸気弁開弁時期に一致するように同吸気弁の開弁時期を変更する吸気弁開弁時期制御手段を備え、
前記学習促進禁止手段は、
前記吸気弁の開弁時期の実際値を取得するとともに、同取得された吸気弁の開弁時期の実際値と前記目標吸気弁開弁時期との差が所定の吸気弁開弁時期差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１４】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期を前記機関の運転状態に基いて変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の変化速度が所定の排気弁閉弁時期変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１５】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期が前記機関の運転状態に基いて定められる目標排気弁閉弁時期に一致するように同排気弁閉弁時期を変更する排気弁閉弁時期制御手段を備え、
前記学習促進禁止手段は、
前記排気弁の閉弁時期の実際値を取得するとともに、同取得された排気弁の閉弁時期の実際値と前記目標排気弁閉弁時期との差が所定の排気弁閉弁時期差閾値以上であると判定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１６】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ量制御手段と、
を備え、
前記学習促進禁止手段は、
前記外部ＥＧＲの量の変化速度が所定の外部ＥＧＲ量変化速度閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１７】
請求の範囲１、請求の範囲３及び請求の範囲４の何れか一つに記載の内燃機関の空燃比制御装置であって、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管と、
前記排気還流管に配設されるとともに指示信号に応答して開度が変更されるように構成されたＥＧＲ弁と、
前記機関の運転状態に応じて前記ＥＧＲ弁の開度を変更することにより前記排気還流管を流れて前記吸気通路に導入される外部ＥＧＲの量を変更するように前記指示信号を前記ＥＧＲ弁に与える外部ＥＧＲ制御手段と、
を備え、
前記学習促進禁止手段は、
前記ＥＧＲ弁の実際の開度を取得するとともに、同取得されたＥＧＲ弁の実際の開度と前記ＥＧＲ弁に与えられている指示信号により定まる前記ＥＧＲ弁の開度との差が所定のＥＧＲ弁開度差閾値以上であると推定されるとき前記空燃比を過渡的に変動させる外乱が発生すると推定するように構成された空燃比制御装置。
【請求項１８】
請求の範囲１、及び、請求の範囲３乃至請求の範囲１７、の何れか一つに記載の内燃機関の空燃比制御装置において、
前記学習促進手段は、
前記学習値の変化速度が所定の学習値変化速度閾値以上であるとき前記学習不足状態が発生していると推定するように構成された空燃比制御装置。
【請求項１９】
（削除）
【請求項２０】
請求の範囲１に記載の空燃比制御装置であって、
前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータを学習値が大きくなるに従って大きくなるように取得するように構成された空燃比制御装置。
【国際調査報告】
2010087029.tif 000038
2010087029.tif 000039