(57)【要約】本発明による空燃比気筒間インバランス判定装置は、排気通路の排気集合部よりも下流に設けられた「上流側空燃比センサ６７、触媒５３及び下流側空燃比センサ６８」を備え、下流側空燃比センサの出力値を理論空燃比に相当する値に一致させるためのサブフィードバック量を算出するとともに、サブフィードバック量と上流側空燃比センサの出力値とに基づいて機関に供給される混合気の空燃比を理論空燃比に一致させる空燃比フィードバック制御を行う。このとき、判定装置は、サブフィードバック量の学習値に基づいてインバランス判定用パラメータを取得し、インバランス判定用パラメータが閾値以上のとき、空燃比気筒間インバランスが発生したと判定する。一方、判定装置は、機関始動後における蒸発燃料ガス濃度学習値の更新回数が所定回数未満であるとき、インバランス判定用パラメータが蒸発燃料ガスパージの影響を受けるので、空燃比気筒間インバランス判定を禁止する。
2010089887.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒のそれぞれに対応して配設されるとともに同２以上の気筒のそれぞれの燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成するパージ通路部と、
前記パージ通路部を通して前記機関の吸気通路に流入する前記蒸発燃料ガスの量である蒸発燃料ガスパージ量を制御するパージ量制御手段と、
前記排気集合部、又は、前記排気通路の前記排気集合部と前記触媒との間に配設され、前記触媒を通過する前の排ガスが接触する拡散抵抗層と、同拡散抵抗層に覆われ且つ同拡散抵抗層を通過して到達した排ガスの空燃比に応じた出力値を出力する空燃比検出素子と、を有する上流側空燃比センサと、
前記触媒を通過した後の排ガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記上流側空燃比センサの出力値により表される空燃比が理論空燃比に一致するように前記燃料噴射弁から噴射される燃料の量である燃料噴射量をフィードバック制御する空燃比フィードバック制御手段と、
前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じているか否かの空燃比気筒間インバランス判定を実行するインバランス判定手段と、
を備えた内燃機関の空燃比気筒間インバランス判定装置において、
前記インバランス判定手段は、
前記フィードバック制御が実行されているときの前記下流側空燃比センサの出力値に基づいて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得する判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値以上であるか否かを判定するとともに同インバランス判定用パラメータが同異常判定閾値以上であると判定したとき前記気筒別空燃比の間に不均衡が生じていると判定する判定実行手段と、
前記吸気通路に流入する前記蒸発燃料ガスが前記インバランス判定用パラメータを変化させるような状態である蒸発燃料ガス影響発生状態が発生しているか否かを判定する蒸発燃料ガス影響発生判定手段と、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していると判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を禁止する判定禁止手段と、
を備えた空燃比気筒間インバランス判定装置。
【請求項２】
請求の範囲１に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記空燃比フィードバック制御手段は、
前記蒸発燃料ガスパージ量が０でないことを含む所定の蒸発燃料ガス濃度学習値更新条件が成立する毎に少なくとも前記上流側空燃比センサの出力値に基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値として更新するとともに同蒸発燃料ガス濃度学習値にも基いて前記燃料噴射量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、
前記機関の始動後から前記蒸発燃料ガス濃度学習値更新条件が成立した回数である濃度学習値更新機会回数が所定の第１機会回数閾値未満であるか否かを判定するとともに、同濃度学習値更新機会回数が同第１機会回数閾値未満であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していると判定するように構成された、
空燃比気筒間インバランス判定装置。
【請求項３】
請求の範囲２に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記パージ量制御手段は、
前記濃度学習値更新機会回数が前記第１機会回数閾値よりも小さい第２機会回数閾値以下であるときの蒸発燃料ガスパージ量を、同濃度学習値更新機会回数が前記第１機会回数閾値以上であるときの蒸発燃料ガスパージ量よりも小さくするように前記蒸発燃料ガスパージ量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、
前記濃度学習値更新機会回数が前記第２機会回数閾値以下であるか否かを判定するとともに、同濃度学習値更新機会回数が同第２機会回数閾値以下であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していないと判定するように構成され、
前記判定禁止手段は、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していないと判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を許容するように構成された、
空燃比気筒間インバランス判定装置。
【請求項４】
請求の範囲２又は請求の範囲３の何れか一項に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記空燃比フィードバック制御手段は、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を理論空燃比に応じた値に一致させるためのサブフィードバック量を同下流側空燃比センサの出力値に基いて更新するサブフィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記少なくとも２以上の気筒の各燃焼室に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量を同各気筒の燃焼室に流入する空気量である筒内吸入空気量に基いて決定するとともに、少なくとも前記上流側空燃比センサの出力値及び前記サブフィードバック量に基づき同基本燃料噴射量を補正するためのメインフィードバック量を更新し、同基本燃料噴射量を同メインフィードバック量により補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射量制御手段と、
を含み、
前記インバランス判定用パラメータ取得手段は、
所定の第３更新タイミングが到来する毎に前記サブフィードバック量の学習値を前記サブフィードバック量に基づいて更新する手段であって同学習値が同サブフィードバック量の定常成分に接近するように同学習値を更新するサブフィードバック量学習手段と、
前記サブフィードバック量の学習値に基づいて前記インバランス判定用パラメータを算出するパラメータ算出手段と、
を含む空燃比気筒間インバランス判定装置。
【請求項５】
請求の範囲４に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記空燃比フィードバック制御手段は、
前記パージ量制御手段により前記蒸発燃料ガスパージ量が０とされていないときの前記メインフィードバック量の平均値が、前記基本燃料噴射量を補正しない値である同メインフィードバック量の基準値よりも小さい第１閾値以下であるとき及び同基準値よりも大きい第２閾値以上であるとき前記蒸発燃料ガス濃度学習値を変更するように構成された空燃比気筒間インバランス判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関に適用され、各気筒に供給される混合気の空燃比の不均衡（空燃比気筒間インバランス、空燃比気筒間ばらつき、気筒間における空燃比の不均一性）が過度に大きくなったことを判定（監視・検出）することができる「内燃機関の空燃比気筒間インバランス判定装置」に関する。
【背景技術】
【０００２】
従来から、内燃機関の排気通路に配設された三元触媒と、同排気通路であって同三元触媒の上流及び下流にそれぞれ配置された上流側空燃比センサ及び下流側空燃比センサと、を備えた空燃比制御装置が広く知られている。この空燃比制御装置は、機関に供給される混合気の空燃比（機関の空燃比）が理論空燃比と一致するように、上流側空燃比センサの出力値と下流側空燃比センサの出力値とに基づいて、機関の空燃比をフィードバック制御するようになっている。
このような空燃比制御装置は、全気筒に対して共通する制御量（空燃比フィードバック量）を用いて機関の空燃比を制御する。即ち、機関全体に供給される混合気の空燃比の平均値が理論空燃比に一致するように空燃比制御が実行される。
例えば、機関の吸入空気量の測定値又は推定値が「真の吸入空気量」と乖離した場合、各気筒の空燃比は一律に理論空燃比に対して「リッチ側又はリーン側」へと偏移する。この場合、従来の空燃比制御は、機関に供給される混合気の空燃比を「リーン側又はリッチ側」へと移行する。その結果、各気筒に供給される混合気の空燃比は理論空燃比近傍の空燃比へと修正される。従って、各気筒における燃焼は完全燃焼（混合気の空燃比が理論空燃比であるときの燃焼）に近づき、且つ、三元触媒に流入する排ガスの空燃比は理論空燃比又は理論空燃比近傍の空燃比となる。その結果、エミッションの悪化が回避される。
ところで、一般に、電子燃料噴射式内燃機関は、各気筒又は各気筒に連通した吸気ポートに一つの燃料噴射弁を備えている。従って、ある特定の気筒の燃料噴射弁の特性が「指示された燃料噴射量よりも過大な量の燃料を噴射する特性」となると、その特定の気筒に供給される混合気の空燃比（その気筒の空燃比）のみが大きくリッチ側に変化する。即ち、気筒間における空燃比の不均一性（空燃比気筒間ばらつき、空燃比の気筒間インバランス）が大きくなる。換言すると、複数の気筒のそれぞれに供給される混合気の空燃比（気筒別空燃比）の間に不均衡が生じる。
この場合、機関に供給される混合気の空燃比の平均は、理論空燃比よりもリッチ側の空燃比となる。従って、全気筒に対して共通する空燃比フィードバック量により、上記特定の気筒の空燃比は理論空燃比に近づけられるようにリーン側へと変更される。更に、他の気筒の空燃比は理論空燃比から遠ざけられるようにリーン側へと変更させられる。このとき、他の気筒の気筒数は上記特定気筒の気筒数（１気筒）よりも多いので、上記特定の気筒の空燃比は依然として理論空燃比よりも相当にリッチ側の空燃比であり、他の気筒の空燃比は理論空燃比よりも僅かにリーン側の空燃比である。その結果、機関に供給される混合気の全体の空燃比の平均は略理論空燃比に一致させられる。
しかしながら、上記特定気筒の空燃比は依然として理論空燃比よりもリッチ側の空燃比となり、残りの気筒の空燃比は理論空燃比よりもリーン側の空燃比となるから、各気筒における混合気の燃焼状態は完全燃焼とは相違した燃焼状態となる。この結果、各気筒から排出されるエミッションの量（未燃物の量及び窒素酸化物の量）が増大する。このため、機関に供給される混合気の空燃比の平均が理論空燃比であったとしても、増大したエミッションを三元触媒が浄化しきれず、結果として、エミッションが悪化する虞がある。従って、気筒間における空燃比の不均一性が過大になっていることを検出し、何らかの対策を講じさせるようにすることはエミッションを悪化させないために重要である。
このような「気筒間における空燃比の不均一性（空燃比気筒間インバランス、気筒別空燃比の間の不均衡）」が過大になったか否かを判定する従来の装置（空燃比気筒間インバランス判定装置）の一つは、排気集合部に配設された単一の空燃比センサの出力を分析することにより、各気筒の空燃比を表す推定空燃比を取得する。そして、この従来の装置は、各気筒の推定空燃比を用いて「気筒間における空燃比の不均一性」が過大になったか否かを判定するようになっている（例えば、特開２０００−２２０４８９号公報を参照。）。
【発明の開示】
【０００３】
しかしながら、上記従来の装置は、機関の回転とともに変動する排ガスの空燃比を空燃比センサによって短時間の経過毎に検出しなければならない。このため、非常に応答性の良い空燃比センサが必要である。更に、空燃比センサが劣化すると応答性が低下するから、各気筒の空燃比を精度良く推定することができないという問題が生じる。加えて、空燃比の変動をノイズと分離することも容易ではない。また、高速のデータサンプリング技術及び処理能力の高い高性能のＣＰＵが必要である。このように、上記従来の装置は多くの解決すべき課題を有する。
本発明の目的の一つは、「気筒間における空燃比の不均一性」が過大になったか否かを精度良く判定することができる「実用性の高い内燃機関の空燃比気筒間インバランス判定装置」を提供することにある。
このため、本発明による空燃比気筒間インバランス判定装置は、「触媒の下流に配置され同触媒を通過した後の排ガスの空燃比に応じた出力値を出力する下流側空燃比センサ」の出力に基づいて空燃比気筒間インバランスの発生有無を判定するための「インバランス判定用パラメータ」を取得する。後に詳述するように、このインバランス判定用パラメータは、空燃比気筒間インバランスの程度に応じて変化する。
しかしながら、発明者は、燃料タンク内に発生した蒸発燃料ガスが吸気通路に流入させられている場合（所謂、「エバポパージ中」）、その蒸発燃料ガスの影響が下流側空燃比センサの出力値に現れる場合があり、その場合インバランス判定用パラメータが「空燃比気筒間インバランスの程度」を精度良く表さなくなる虞があるとの知見を得た。そこで、本発明の目的の他の一つは、蒸発燃料ガスに起因して「気筒間における空燃比の不均一性が過大になった」と誤って判定してしまうことがない空燃比気筒間インバランス判定装置を提供することにある。
本発明による空燃比気筒間インバランス判定装置は、複数の気筒を有する多気筒内燃機関に適用される。この空燃比気筒間インバランス判定装置は、触媒と、燃料噴射弁と、パージ通路部と、パージ量制御手段と、上流側空燃比センサと、下流側空燃比センサと、空燃比フィードバック制御手段と、インバランス判定手段と、を備える。
前記触媒は、前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒（好ましくは、３以上の気筒）の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設される。この触媒は、排ガスに含まれる成分のうちの少なくとも水素を酸化する触媒である。従って、この触媒は、三元触媒及び酸化触媒等であってもよく、下流側空燃比センサを覆うように設けられた触媒要素であってもよい。
前記燃料噴射弁は、前記少なくとも２以上の気筒のそれぞれに対応して配設される。各燃料噴射弁は、その２以上の気筒のそれぞれの燃焼室に供給される混合気に含まれる燃料を噴射する。
前記パージ通路部は、「前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク」内に発生した蒸発燃料ガスを「前記機関の吸気通路」に導入するための通路を構成する。
前記パージ量制御手段は、「前記パージ通路部を通して前記機関の吸気通路に流入する前記蒸発燃料ガスの量」である「蒸発燃料ガスパージ量」を制御する。
前記上流側空燃比センサは、前記触媒を通過する前の排ガスが接触する拡散抵抗層と、同拡散抵抗層に覆われ且つ同拡散抵抗層を通過して到達した排ガスの空燃比に応じた出力値を出力する空燃比検出素子と、を有するセンサである。この上流側空燃比センサは、前記排気通路の前記排気集合部、又は、前記排気通路の前記排気集合部と前記触媒との間に配設される。
前記上流側空燃比センサの一例は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える広域空燃比センサ」である。即ち、この上流側空燃比センサの一例は、固体電解質層、排気側電極層、大気が導入される空間に露呈した大気側電極層、及び、拡散抵抗層を含み、同排気側電極層と同大気側電極層とが同固体電解質層を挟んで対向するように同固体電解質層の両面にそれぞれ形成されるとともに、同排気側電極層が同拡散抵抗層により覆われてなる空燃比センサである。この場合、固体電解質層、排気側電極層及び大気側電極層が「前記空燃比検出素子」を構成する。
このような空燃比センサは、検出対象のガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、前記拡散抵抗層を通過して前記排気側電極層（前記空燃比検出素子）に到達したガスの「その排気側電極層における酸素の濃度」に応じて変化する出力値を出力する。更に、このような空燃比センサは、検出対象のガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、前記拡散抵抗層を通過して前記排気側電極層（前記空燃比検出素子）に到達したガスの「未燃物の濃度」に応じて変化する出力値を出力する。即ち、このような空燃比センサは、検出対象ガスの空燃比がリーン及びリッチの何れの場合であっても、拡散抵抗層を通過して空燃比検出素子に到達した排ガスの空燃比に応じた出力値を出力する。
前記下流側空燃比センサは、前記触媒を通過した後の排ガスの空燃比に応じた出力値を出力する。この下流側空燃比センサは、例えば、前記排気通路の前記触媒よりも下流側の位置に配設される。
前記空燃比フィードバック制御手段は、「前記上流側空燃比センサの出力値により表される空燃比」が「理論空燃比（上流側目標空燃比）」に一致するように、「前記燃料噴射弁から噴射される燃料の量」である「燃料噴射量」をフィードバック制御する。
前記インバランス判定手段は、「前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比」である「気筒別空燃比」の間に不均衡が生じているか否かの「空燃比気筒間インバランス判定」を実行する。
上述したように、空燃比フィードバック制御手段は、上流側空燃比センサの出力値により表される空燃比が理論空燃比に一致するように、前記２以上の気筒の燃焼室に供給される混合気の空燃比（この場合、各燃料噴射弁から噴射される燃料の量）をフィードバック制御する。従って、「上流側空燃比センサの出力値により表される空燃比」が「前記２以上の気筒の燃焼室に供給される混合気の空燃比の真の平均値（空燃比の真の時間的平均値）」に一致していれば、「前記２以上の気筒に供給される混合気の空燃比の真の平均値」は理論空燃比に一致する。なお、以下において、「前記２以上の気筒に供給される混合気」を便宜上「機関全体に供給される混合気」ともいう。
しかしながら、実際には、気筒間における空燃比の不均一性が過大になると、機関全体に供給される混合気の空燃比の真の平均値（真の時間的平均値）は、理論空燃比よりもリーンな空燃比に制御されてしまう場合がある。以下、この理由を述べる。
機関に供給される燃料は炭素と水素との化合物である。従って、燃焼に供される混合気の空燃比が理論空燃比よりもリッチ側の空燃比であると、「炭化水素ＨＣ、一酸化炭素ＣＯ及び水素Ｈ２等」の未燃物が中間生成物として生成される。この場合、燃焼に供される混合気の空燃比が理論空燃比よりもリッチ側の空燃比であって理論空燃比から遠ざかるほど、燃焼期間中に中間生成物が酸素と出合って結合する確率が急激に小さくなる。この結果、未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に（例えば、二次関数的に）増大する（図８を参照。）。
いま、特定気筒の空燃比のみが大きくリッチ側にずれたと仮定する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁の噴射特性が「指示された燃料噴射量よりも相当に多い量の燃料を噴射する特性」になった場合に生じる。
この場合、その特定気筒に供給される混合気の空燃比（特定気筒の空燃比）は、残りの気筒に供給される混合気の空燃比（残りの気筒の空燃比）に比較して、大きくリッチ側の空燃比（小さい空燃比）へと変化する。即ち、空燃比気筒間インバランスが発生する。このとき、その特定気筒から極めて多量の未燃物（ＨＣ，ＣＯ，Ｈ２）が排出される。
ところで、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等に比べて小さい分子である。従って、水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）に比較して、上流側空燃比センサの拡散抵抗層を迅速に拡散する。このため、ＨＣ，ＣＯ及びＨ２からなる未燃物が多量に発生すると、拡散抵抗層において水素Ｈ２の選択的拡散（優先的な拡散）が発生する。即ち、水素Ｈ２は、空燃比検出素子の表面に「他の未燃物（ＨＣ，ＣＯ）」よりも多量に到達するようになる。この結果、水素Ｈ２の濃度と他の未燃物（ＨＣ，ＣＯ）の濃度とのバランスが崩れる。換言すると、上流側空燃比センサの空燃比検出素子に到達した排ガスに含まれる全未燃成分に対する水素Ｈ２の割合は、機関から排出された排ガスに含まれる全未燃成分に対する水素Ｈ２の割合よりも大きくなる。
これにより、上流側空燃比センサの出力値により表される空燃比は、機関全体に供給される混合気の空燃比の真の平均値（機関から排出される排ガスの空燃比の真の平均値）よりも、上記水素Ｈ２の選択的拡散に起因して、リッチ側の空燃比となる。
例えば、いま、４気筒エンジンの各気筒に吸入される空気量（重量）がＡ０であり、各気筒に供給される燃料の量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０が理論空燃比（例えば、１４．５）であると仮定する。
この場合において、各気筒に対して供給（噴射）される燃料の量が均等に１０％だけ過剰であると仮定する。即ち、各気筒に１．１・Ｆ０の燃料が供給されたと仮定する。このとき、４気筒に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関全体に供給される空気量）は４・Ａ０であり、４気筒に供給される燃料の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関全体に供給される燃料の量）は４．４・Ｆ０（＝１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）である。よって、機関全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。このとき、上流側空燃比センサの出力値は、空燃比Ａ０／（１．１・Ｆ０）に応じた出力値となる。従って、空燃比フィードバック制御によって、機関全体に供給される混合気の空燃比は上流側目標空燃比である理論空燃比Ａ０／Ｆ０に一致させられる。換言すると、空燃比フィードバック制御によって各気筒に供給される燃料の量が１０％ずつ減量される。即ち、各気筒に１．０・Ｆ０の燃料が供給されるようになり、各気筒の空燃比は理論空燃比Ａ０／Ｆ０に一致する。
次に、ある一つの特定気筒に対して供給される燃料の量が４０％だけ過剰な量（即ち、（１．４・Ｆ０））であり、残りの３気筒に対して供給される燃料の量は適正値（理論空燃比を得るために必要な燃料量であり、この場合１．０・Ｆ０）であると仮定する。このとき、４気筒に供給される空気量の総量は４・Ａ０である。一方、４気筒に供給される燃料の総量は４．４・Ｆ０（＝１．４・Ｆ０＋Ｆ０＋Ｆ０＋Ｆ０）である。よって、機関全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。即ち、この場合の機関全体に供給される混合気の空燃比の真の平均値は、前述した「各気筒に対して供給される燃料の量が均等に１０％だけ過剰である場合」と同じ値となる。
しかしながら、前述したように、排ガス中の未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に増大する。加えて、上流側空燃比センサには、各気筒からの排ガスが混合した排ガスが到達する。従って、「特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった上記の場合に排ガスに含まれる水素Ｈ２の量」は、「各気筒に対して供給される燃料の量が均等に１０％だけ過剰である場合に排ガスに含まれる水素Ｈ２の量」よりも顕著に大きくなる。
この結果、上述した「水素Ｈ２の選択的拡散」に起因して、上流側空燃比センサの出力値により表される空燃比は「機関全体に供給される混合気の空燃比の真の平均値（Ａ０／（１．１・Ｆ０））」よりもリッチ側の空燃比となる。つまり、排ガスの空燃比の平均値が同じリッチ側の空燃比であっても、空燃比気筒間インバランスが発生しているときの方が空燃比気筒間インバランスが発生していないときよりも、上流側空燃比センサの空燃比検出素子に到達する排ガスにおける水素Ｈ２の濃度が高くなる。故に、上流側空燃比センサ６７の出力値は、混合気の空燃比の真の平均値よりもリッチ側の空燃比を示す値となるのである。
その結果、上流側空燃比センサの出力値により表される空燃比を理論空燃比に一致させようとする空燃比フィードバック制御により、機関全体に供給される混合気の空燃比の真の平均値は、理論空燃比よりもリーン側に制御されてしまう。以上が、気筒間における空燃比の不均一性が過大になったとき、空燃比の真の平均値がリーン側に制御されてしまう理由である。
一方、機関から排出された排ガスに含まれる水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）とともに触媒において酸化（浄化）される。更に、下流側空燃比センサには、触媒を通過した排ガスが到達する。従って、下流側空燃比センサの出力値は、機関に供給されている混合気の真の空燃比の平均値に応じた値となる。その結果、特定気筒の空燃比のみが大きくリッチ側にずれた場合、下流側空燃比センサの出力値は、空燃比フィードバック制御によって過度にリーン側に補正された真の空燃比に応じた値となる。即ち、特定気筒の空燃比がリッチ側に移行するほど、「水素の選択的拡散」と「空燃比フィードバック制御」とに起因して「機関に供給される混合気の真の空燃比」はよりリーン側に制御され、その結果が下流側空燃比センサの出力値に現れる。換言すると、下流側空燃比センサの出力値は、空燃比気筒間インバランスの程度に応じて変化する値となる。
そこで、上記インバランス判定手段は、判定用パラメータ取得手段と、判定実行手段と、を備える。
前記判定用パラメータ取得手段は、「前記フィードバック制御が実行されているときの前記下流側空燃比センサの出力値」に基づいて「インバランス判定用パラメータ」を取得するように構成されている。このインバランス判定用パラメータは、上記空燃比フィードバック制御によって変化する「機関全体に供給される混合気の真の空燃比（平均的な空燃比）」に応じて変化する値であり、「前記触媒を通過する前の排ガスに含まれる水素の量」と「前記触媒を通過した後の排ガスに含まれる水素の量」との差が大きいほど大きくなる値である。
そして、前記判定実行手段は、前記取得されたインバランス判定用パラメータが異常判定閾値以上であるか否かを判定するとともに、そのインバランス判定用パラメータが異常判定閾値以上であると判定したとき前記気筒別空燃比の間に不均衡が生じている（即ち、空燃比気筒間インバランスが生じた）と判定するように構成されている。この結果、本発明による空燃比気筒間インバランス判定装置は、空燃比気筒間インバランスが発生したか否かを精度良く判定することができる。
ところが、燃料タンク内で発生した蒸発燃料ガスを吸気通路に流入させて燃焼室に供給する場合（所謂、蒸発燃料ガスパージを行う場合）、機関に供給される混合気の空燃比がその蒸発燃料ガスによって大きく変動し、その蒸発燃料ガスの影響が「前記下流側空燃比センサの出力値」に現れる場合がある。例えば、炎天下における駐車の後に機関を始動させたとき等のように蒸発燃料ガスの濃度が非常に高い場合、蒸発燃料ガスの影響が「前記下流側空燃比センサの出力値」に現れ易い。従って、下流側空燃比センサの出力値に基づいて取得される「インバランス判定用パラメータ」を用いることにより空燃比気筒間インバランス判定を行うと、その判定の精度が良好でなくなるとの問題がある。
そこで、前記インバランス判定手段は、更に、蒸発燃料ガス影響発生判定手段と、判定禁止手段と、を備える。
前記蒸発燃料ガス影響発生判定手段は、「前記吸気通路に流入する前記蒸発燃料ガスが前記インバランス判定用パラメータを変化させるような状態」が発生しているか否かを判定するようになっている。即ち、前記蒸発燃料ガス影響発生判定手段は「蒸発燃料ガス影響発生状態」が発生しているか否かを判定する。
前記判定禁止手段は、前記蒸発燃料ガス影響発生判定手段により「前記蒸発燃料ガス影響発生状態が発生している」と判定されるとき、前記判定実行手段による前記インバランス判定用パラメータに基づく判定（空燃比気筒間インバランス判定）を禁止するようになっている。
この結果、本発明による空燃比気筒間インバランス判定装置は、蒸発燃料ガスの影響を受けることなく、空燃比気筒間インバランスが発生したか否かの判定を精度良く行うことができる。
本発明による空燃比気筒間インバランス判定装置の一の側面において、
前記空燃比フィードバック制御手段は、
「前記蒸発燃料ガスパージ量が０でないこと（蒸発燃料ガスパージ中であること）を含む所定の蒸発燃料ガス濃度学習値更新条件」が成立する毎に、「少なくとも前記上流側空燃比センサの出力値」に基いて「前記蒸発燃料ガスの濃度に関連する値（即ち、蒸発燃料ガス濃度学習値）」を更新するとともに、その蒸発燃料ガス濃度学習値にも基いて前記燃料噴射量を制御するように構成される。
これによれば、燃料噴射量は「蒸発燃料ガス濃度学習値」によっても補正（制御）される。蒸発燃料ガス濃度学習値が正確な値であれば、燃料噴射量は精度良く補正され得るので、蒸発燃料ガスパージが行われている場合であっても蒸発燃料ガスの影響が下流側空燃比センサの出力値に現れ難い。即ち、蒸発燃料ガス濃度学習値が正確な値であれば、蒸発燃料ガス影響発生状態は発生しない。
一方、蒸発燃料ガス濃度学習値は、「前記蒸発燃料ガスパージ量が０でないことを含む所定の蒸発燃料ガス濃度学習値更新条件（例えば、蒸発燃料ガスパージ量が「０」でなく且つ所定時間が経過したという条件）」が成立する毎に、更新される。従って、機関の始動後における濃度学習値更新機会回数（前記蒸発燃料ガス濃度学習値更新条件が成立した回数）が所定の第１機会回数閾値以上であれば、蒸発燃料ガス濃度学習値は精度の良い値に到達している。これに対し、濃度学習値更新機会回数が第１機会回数閾値未満であると、蒸発燃料ガス濃度学習値は学習不十分な状態にあり、精度の良い値に到達していない。よって、そのような場合、蒸発燃料ガスパージが実行されると、蒸発燃料ガス影響発生状態が発生する。
そこで、前記蒸発燃料ガス影響発生判定手段は、「濃度学習値更新機会回数」が「所定の第１機会回数閾値」未満であるか否かを判定するとともに、その濃度学習値更新機会回数が同第１機会回数閾値未満であると判定されるとき「前記蒸発燃料ガス影響発生状態が発生している」と判定するように構成される。即ち、これによれば、「濃度学習値更新機会回数」が「所定の第１機会回数閾値」未満であるとき、前記判定実行手段による前記インバランス判定用パラメータに基づく判定（空燃比気筒間インバランス判定）が禁止させられる。従って、精度のよい空燃比気筒間インバランス判定が行われ得る。
この場合、
前記パージ量制御手段は、
前記濃度学習値更新機会回数が「前記第１機会回数閾値よりも小さい第２機会回数閾値」以下であるときの蒸発燃料ガスパージ量を、前記濃度学習値更新機会回数が前記第１機会回数閾値以上であるときの蒸発燃料ガスパージ量よりも小さくするように、前記蒸発燃料ガスパージ量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、
前記濃度学習値更新機会回数が前記第２機会回数閾値以下であるか否かを判定するとともに、「濃度学習値更新機会回数が第２機会回数閾値以下であると判定される」とき「前記蒸発燃料ガス影響発生状態が発生していない」と判定するように構成され、
前記判定禁止手段は、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していないと判定されるとき「前記判定実行手段による前記インバランス判定用パラメータに基づく判定を許容する」ように構成され得る。
これによれば、蒸発燃料ガスパージ量は、前記濃度学習値更新機会回数が「前記第１機会回数閾値よりも小さい第２機会回数閾値」以下であるとき、小さい量に設定される。換言すると、蒸発燃料ガス濃度学習値の学習が不十分である可能性が高い場合（蒸発燃料ガス濃度学習値が適正値から乖離している可能性が高い場合）には、蒸発燃料ガスパージ量は小さい量に設定される。従って、蒸発燃料ガス濃度学習値が適正値から乖離していても、蒸発燃料ガスの影響は、上流側空燃比センサの出力値に基づく空燃比フィードバック制御により補償され得るので、下流側空燃比センサの出力値に現れ難い。従って、このような場合、判定実行手段によるインバランス判定用パラメータに基づく空燃比気筒間インバランス判定が許容される。この結果、空燃比気筒間インバランス判定の機会を増大することができる。
この空燃比気筒間インバランス判定装置の一つの側面において、前記空燃比フィードバック制御手段は、サブフィードバック量更新手段と、燃料噴射量制御手段と、を含むことができる。
前記サブフィードバック量更新手段は、
所定の第１更新タイミングが到来する毎に、「前記下流側空燃比センサの出力値を理論空燃比に応じた値に一致させるためのサブフィードバック量」を「同下流側空燃比センサの出力値」に基いて更新するように構成される。
前記燃料噴射量制御手段は、
所定の第２更新タイミングが到来する毎に、「前記少なくとも２以上の気筒の各燃焼室に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量」を「同各気筒の燃焼室に流入する空気量である筒内吸入空気量」に基いて決定するように構成される。
更に、前記燃料噴射量制御手段は、
少なくとも「前記上流側空燃比センサの出力値及び前記サブフィードバック量」に基づき、前記基本燃料噴射量を補正するためのメインフィードバック量を更新し、その基本燃料噴射量をそのメインフィードバック量により補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させるように構成される。
この場合、前記インバランス判定用パラメータ取得手段は、サブフィードバック量学習手段と、前記インバランス判定用パラメータを算出するパラメータ算出手段と、を含む。
前記サブフィードバック量学習手段は、
所定の第３更新タイミングが到来する毎に、「前記サブフィードバック量の学習値」を前記サブフィードバック量に基づいて更新する手段である。即ち、前記サブフィードバック量学習手段は、サブフィードバック量の学習値がサブフィードバック量の定常成分に接近するように、そのサブフィードバック量の学習値を更新する。なお、この学習値は、例えば、サブフィードバック量を算出できない場合等において、燃料噴射量の補正に使用され得る。
前記パラメータ算出手段は、
前記サブフィードバック量の学習値に基づいて前記インバランス判定用パラメータを算出するように構成される。例えば、前記パラメータ算出手段は、前記サブフィードバック量の学習値に対してローパスフィルタ処理を施した値（例えば一次遅れ値）、或いは、複数回更新されたサブフィードバック量の学習値の各更新値の平均値、を前記インバランス判定用パラメータとして算出することができる。
上記空燃比フィードバック制御手段は、前記上流側空燃比センサの出力値により表される空燃比が理論空燃比に一致するように燃料噴射量をフィードバック制御している。従って、上流側空燃比センサの出力値により表される空燃比が機関全体に供給される混合気の空燃比の真の平均値に一致していれば、上記空燃比フィードバック制御手段の制御により、機関全体に供給される混合気の空燃比の真の平均値は理論空燃比に略一致する。
しかしながら、上述したように、空燃比気筒間インバランスが発生すると、上流側空燃比センサの出力値は「水素Ｈ２の選択的拡散」の影響を受ける。従って、上流側空燃比センサの出力値により表される空燃比は、機関全体に供給される混合気の空燃比の真の平均値よりもリッチ側の空燃比となる。その結果、上流側空燃比センサの出力値に基づく空燃比フィードバック制御によって、機関全体に供給される混合気の空燃比の真の平均値は理論空燃比よりもリーン側に補正されてしまう。
一方、水素は前記触媒によって酸化（浄化）されるので、下流側空燃比センサは「機関全体に供給される混合気の空燃比の真の平均値」に応じた出力値を出力する。従って、空燃比気筒間インバランスが発生すると、上記サブフィードバック量は「機関全体に供給される混合気の空燃比をリッチ側に補正する量」へと変化する。換言すると、サブフィードバック量は、空燃比気筒間インバランスが発生したとき、そのインバランスの程度に応じた量だけ空燃比をリッチ側に補正する量へと変化する。
更に、サブフィードバック量の学習値は、サブフィードバック量の定常成分に接近するように更新させられる。サブフィードバック量の定常成分（例えば、積分項）は、サブフィードバック量の成分の中でも、「機関全体に供給される混合気の真の空燃比の理論空燃比からのズレ（偏移）」を精度良く表す。従って、サブフィードバック量の学習値もまた「機関全体に供給される混合気の真の空燃比の理論空燃比からのズレ（偏移）」を精度良く表す値となる。
そこで、前記インバランス判定用パラメータ取得手段は、前記サブフィードバック量の学習値に基づいて前記インバランス判定用パラメータを算出する。この結果、インバランス判定用パラメータもまた「機関全体に供給される混合気の真の空燃比の理論空燃比からのズレ（偏移）」を精度良く表す値となるので、そのインバランス判定用パラメータに基くことによって空燃比気筒間インバランスの発生有無を精度良く判定することができる。
更に、蒸発燃料ガス濃度学習値の更新を行う前記空燃比フィードバック制御手段は、
前記パージ量制御手段により前記蒸発燃料ガスパージ量が０とされていないときの前記メインフィードバック量の平均値（例えば、前記メインフィードバック量の加重平均値又は所定時間内の前記メインフィードバック量の平均値）が、「前記基本燃料噴射量を補正しない値」である「メインフィードバック量の基準値」よりも小さい第１閾値以下であるとき、及び、
前記パージ量制御手段により前記蒸発燃料ガスパージ量が０とされていないときの前記メインフィードバック量の平均値が、前記基準値よりも大きい第２閾値以上であるとき、
前記蒸発燃料ガス濃度学習値を変更するように構成される。
蒸発燃料ガスパージ量が０とされていないときにメインフィードバック量の平均値が第１閾値以下又は第２閾値以上となるということは、蒸発燃料ガス濃度学習値が適正値でないために燃料噴射量が充分に補正されていないことを意味する。そこで、上記のように蒸発燃料ガス濃度学習値を更新すれば、前記蒸発燃料ガス濃度学習値を容易且つ精度良く取得することができる。
【図面の簡単な説明】
【０００４】
図１は、本発明の実施形態に係る空燃比気筒間インバランス判定装置が適用される内燃機関の概略図である。
図２は、図１に示した上流側空燃比センサの概略断面図である。
図３は、排ガス（被検出ガス）の空燃比が理論空燃比よりもリーン側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
図４は、排ガスの空燃比と上流側空燃比センサの限界電流値との関係を示したグラフである。
図５は、排ガス（被検出ガス）の空燃比が理論空燃比よりもリッチ側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
図６は、排ガスの空燃比と上流側空燃比センサの出力値との関係を示したグラフである。
図７は、排ガスの空燃比と下流側空燃比センサの出力値との関係を示したグラフである。
図８は、気筒に供給された混合気の空燃比と、その気筒から排出される未燃成分と、の関係を示したグラフである。
図９は、空燃比気筒間インバランス割合とサブフィードバック量の学習値との関係を示したグラフである。
図１０は、図１に示した電気制御装置のＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
図１１は、図１に示した電気制御装置のＣＰＵがメインフィードバック制御を実行するためのルーチンを示したフローチャートである。
図１２は、図１に示した電気制御装置のＣＰＵがメインフィードバック量の学習値を更新するために実行するルーチンを示したフローチャートである。
図１３は、図１に示した電気制御装置のＣＰＵがパージ制御弁を駆動するために実行するルーチンを示したフローチャートである。
図１４は、図１に示した電気制御装置のＣＰＵが蒸発燃料ガス濃度学習値を更新するために実行するルーチンを示したフローチャートである。
図１５は、図１に示した電気制御装置のＣＰＵがサブフィードバック量及びサブフィードバック量の学習値を更新するために実行するルーチンを示したフローチャートである。
図１６は、図１に示した電気制御装置のＣＰＵが空燃比気筒間インバランス判定を行うために実行するルーチンを示したフローチャートである。
【発明を実施するための最良の形態】
【０００５】
以下、本発明による多気筒内燃機関の空燃比気筒間インバランス判定装置（以下、単に「判定装置」と称呼する。）の実施形態について図面を参照しながら説明する。この判定装置は、内燃機関の空燃比を制御する空燃比制御装置の一部である。更に、空燃比制御装置は、燃料噴射量を制御する燃料噴射量制御装置でもある。
（構成）
図１は、判定装置を、４サイクル・火花点火式・多気筒（直列４気筒）・内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１の壁面及びピストン２２の上面は、シリンダヘッド部３０の下面とともに燃焼室２５を形成している。
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング制御装置３３、可変吸気タイミング制御装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフトを含むとともに同エキゾーストカムシャフトの位相角を連続的に変更する可変排気タイミング制御装置３６、可変排気タイミング制御装置３６のアクチュエータ３６ａ、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射する燃料噴射弁（フューエルインジェクタ、燃料噴射手段、燃料供給手段）３９を備えている。
燃料噴射弁３９は、各気筒の燃焼室２５一つに対して一つずつ配設されている。燃料噴射弁３９は吸気ポート３１に設けられている。燃料噴射弁３９は、噴射指示信号に応答し、正常である場合に「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート３１内に噴射するようになっている。このように、複数の気筒のそれぞれは、他の気筒とは独立して燃料供給を行う燃料噴射弁３９を備えている。
吸気系統４０は、インテークマニホールド４１、吸気管４２、エアフィルタ４３、及び、スロットル弁４４を備えている。インテークマニホールド４１は、複数の枝部４１ａとサージタンク４１ｂとからなる。複数の枝部４１ａのそれぞれの一端は複数の吸気ポート３１のそれぞれに接続されている。複数の枝部４１ａの他端はサージタンク４１ｂに接続されている。吸気管４２の一端はサージタンク４１ｂに接続されている。エアフィルタ４３は吸気管４２の他端に配設されている。スロットル弁４４は、吸気管４２内にあって吸気通路の開口断面積を可変とするようになっている。スロットル弁４４は、ＤＣモータからなるスロットル弁アクチュエータ４４ａにより吸気管４２内で回転駆動されるようになっている。
更に、内燃機関１０は、液体ガソリン燃料を貯留する燃料タンク４５、燃料タンク４５内にて発生した蒸発燃料を吸蔵可能なキャニスタ４６、前記蒸発燃料を含むガスを燃料タンク４５からキャニスタ４６へと導くためのベーパ捕集管４７、キャニスタ４６から脱離した蒸発燃料を「蒸発燃料ガス」としてサージタンク４１ｂへと導くためのパージ流路管４８、及び、パージ流路管４８に配設されたパージ制御弁４９を備えている。燃料タンク４５に貯留された燃料は、燃料ポンプ４５ａ及び燃料供給管４５ｂ等を通して燃料噴射弁３９に供給されるようになっている。ベーパ捕集管４７及びパージ流路管４８はパージ通路（パージ通路部）を構成している。
パージ制御弁４９は、指示信号であるデューティ比ＤＰＧを表す駆動信号により開度（開弁期間）が調節されることにより、パージ流路管４８の通路断面積を変更するようになっている。パージ制御弁４９は、デューティ比ＤＰＧが「０」であるときにパージ流路管４８を完全に閉じるようになっている。即ち、パージ制御弁４９は、パージ通路に配設されるとともに指示信号に応答して開度が変更されるように構成されている。
キャニスタ４６は周知のチャコールキャニスタである。キャニスタ４６は、ベーパ捕集管４７に接続されたタンクポート４６ａと、パージ流路管４８に接続されたパージポート４６ｂと、大気に曝されている大気ポート４６ｃと、が形成された筐体を備える。キャニスタ４６は、その筐体内に、蒸発燃料を吸着するための吸着剤４６ｄを収納している。キャニスタ４６は、パージ制御弁４９が完全に閉じられている期間において燃料タンク４５内で発生した蒸発燃料を吸蔵するようになっている。キャニスタ４６は、パージ制御弁４９が開かれている期間において、吸蔵した蒸発燃料を蒸発燃料ガスとして「パージ流路管４８を通して」サージタンク４１ｂ（スロットル弁４４よりも下流の吸気通路）に放出するようになっている。これにより、蒸発燃料ガスは機関１０の吸気通路を通して各燃焼室２５へ供給される。即ち、パージ制御弁４９が開かれることにより、蒸発燃料ガスパージ（又は、略して、エバポパージ）が行われる。
排気系統５０は、各気筒の排気ポート３４に一端が接続された複数の枝部を含むエキゾーストマニホールド５１、エキゾーストマニホールド５１の複数の枝部の各他端であって総ての枝部が集合している集合部（エギゾーストマニホールド５１の排気集合部）に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、及び、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された図示しない下流側触媒を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。このように、上流側触媒５３は、排気通路の「総ての燃焼室２５（少なくとも２以上の燃焼室）から排出された排ガスが集合する排気集合部よりも下流側の部位」に配設されている。
上流側触媒５３及び下流側触媒のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置（排気浄化触媒）である。各触媒は、各触媒に流入するガスの空燃比が理論空燃比であるとき、ＨＣ，ＣＯ，Ｈ２などの未燃成分を酸化するとともに窒素酸化物（ＮＯｘ）を還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア（ＣｅＯ２）によってもたらされる。
更に、機関１０は、排気還流システムを備えている。排気還流システムは、外部ＥＧＲ通路を構成する排気還流管５４、及び、ＥＧＲ弁５５を含んでいる。
排気還流管５４の一端はエキゾーストマニホールド５１の集合部に接続されている。排気還流管５４の他端はサージタンク４１ｂに接続されている。
ＥＧＲ弁５５は排気還流管５４に配設されている。ＥＧＲ弁５５は、ＤＣモータを駆動源として内蔵している。ＥＧＲ弁５５は、そのＤＣモータへの指示信号であるデューティ比ＤＥＧＲに応答して弁開度を変更し、それにより排気還流管５４の通路断面積を変更するようになっている。ＥＧＲ弁５５は、デューティ比ＤＥＧＲが「０」であるときに排気還流管５４を完全に閉じるようになっている。即ち、ＥＧＲ弁５５は、外部ＥＧＲ通路に配設されるとともに指示信号に応答して開度が変更されることにより、排気還流量（以下、「外部ＥＧＲ量」とも称呼する。）を制御するように構成されている。
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、水温センサ６３、クランクポジションセンサ６４、インテークカムポジションセンサ６５、エキゾーストカムポジションセンサ６６、上流側空燃比センサ６７、下流側空燃比センサ６８、アルコール濃度センサ６９、ＥＧＲ弁開度センサ（ＥＧＲ弁リフト量センサ）７０、及び、アクセル開度センサ７１を備えている。
エアフローメータ６１は、吸気管４２内を流れる吸入空気の質量流量（吸入空気流量）Ｇａに応じた信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットル弁４４の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
水温センサ６３は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置８０によって機関回転速度ＮＥに変換される。
インテークカムポジションセンサ６５は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
エキゾーストカムポジションセンサ６６は、エキゾーストカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
上流側空燃比センサ６７は、エキゾーストマニホールド５１の集合部と上流側触媒５３との間の位置においてエキゾーストマニホールド５１及びエキゾーストパイプ５２の何れか（即ち、排気通路）に配設されている。上流側空燃比センサ６７は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
図２に示したように、上流側空燃比センサ６７は、固体電解質層６７ａと、排ガス側電極層６７ｂと、大気側電極層６７ｃと、拡散抵抗層６７ｄと、隔壁部６７ｅと、ヒータ６７ｆと、を含んでいる。
固体電解質層６７ａは酸素イオン導電性酸化物焼結体である。本例において、固体電解質層６７ａは、ＺｒＯ２（ジルコニア）にＣａＯを安定剤として固溶させた「安定化ジルコニア素子」である。固体電解質層６７ａは、その温度が活性温度以上であるとき、周知の「酸素電池特性」及び「酸素ポンプ特性」を発揮する。これらの特性は、後述するように、上流側空燃比センサ６７が排ガスの空燃比に応じた出力値を出力する際に発揮されるべき特性である。酸素電池特性とは、酸素濃度の高い側から低い側へ酸素イオンを通過させ起電力を発生する特性のことである。酸素ポンプ特性とは、固体電解質層６７ａの両端に電位差が与えられたとき、陰極（低電位側電極）から陽極（高電位側電極）へとそれらの電極間の電位差に応じた量の酸素イオンを移動させる特性のことである。
排ガス側電極層６７ｂは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。排ガス側電極層６７ｂは、固体電解質層６７ａの一つの面上に形成されている。排ガス側電極層６７ｂは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
大気側電極層６７ｃは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。大気側電極層６７ｃは、固体電解質層６７ａの他の面上であって、固体電解質層６７ａを挟んで排ガス側電極層６７ｂに対向するように形成されている。大気側電極層６７ｃは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
拡散抵抗層（拡散律速層）６７ｄは、多孔質セラミック（耐熱性無機物質）からなる。拡散抵抗層６７ｄは、排ガス側電極層６７ｂの外側表面を覆うように、例えば、プラズマ溶射法等により形成されている。分子径の小さい水素Ｈ２の拡散抵抗層６７ｄにおける拡散速度は、相対的に分子径の大きい「炭化水素ＨＣ及び一酸化炭素ＣＯ等」の拡散抵抗層６７ｄにおける拡散速度よりも大きい。従って、拡散抵抗層６７ｄの存在により、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等よりも「排ガス側電極層６７ｂ」に速やかに到達する。上流側空燃比センサ６７は、拡散抵抗層６７ｄの外表面が「排ガスに晒される（機関１０から排出された排ガスが接する）」ように配置される。
隔壁部６７ｅは、緻密であってガスを透過させないアルミナセラミックスからなる。隔壁部６７ｅは大気側電極層６７ｃを収容する空間である「大気室６７ｇ」を形成するように構成されている。大気室６７ｇには大気が導入されている。
ヒータ６７ｆは隔壁部６７ｅに埋設されている。ヒータ６７ｆは通電されたときに発熱し、固体電解質層６７ａを加熱するようになっている。
上流側空燃比センサ６７は、図３に示したように、電源６７ｈを使用する。電源６７ｈは、大気側電極層６７ｃ側が高電位となり、排ガス側電極層６７ｂが低電位となるように、電圧Ｖを印加する。
図３に示したように、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、上述した酸素ポンプ特性が利用されることにより空燃比が検出される。即ち、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、排ガス中に多量に含まれる酸素分子が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。その酸素分子は電子を受け取って酸素イオンになる。酸素イオンは、固体電解質層６７ａを通過し、大気側電極層６７ｃにて電子を放出して酸素分子になる。この結果、電源６７ｈの正極から、大気側電極層６７ｃ、固体電解質層６７ａ及び排ガス側電極層６７ｂを介して電源６７ｈの負極へと電流Ｉが流れる。
この電流Ｉの大きさは、電圧Ｖの大きさを所定値Ｖｐ以上に設定したとき、拡散抵抗層６７ｄの外側表面に到達した排ガスに含まれる酸素分子のうち「拡散抵抗層６７ｄを通って排ガス側電極層６７ｂへと拡散によって到達する酸素分子」の量に応じて変化する。即ち、電流Ｉの大きさは、排ガス側電極層６７ｂにおける酸素濃度（酸素分圧）に応じて変化する。排ガス側電極層６７ｂにおける酸素濃度は、拡散抵抗層６７ｄの外側表面に到達した排ガスの酸素濃度に応じて変化する。この電流Ｉは、図４に示したように、電圧Ｖを所定値Ｖｐ以上に設定しても変化しないから、限界電流Ｉｐと呼ばれる。上流側空燃比センサ６７は、この限界電流Ｉｐ値に基づいて空燃比に応じた値を出力する。
これに対し、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、図５に示したように、上述した酸素電池特性が利用されることにより空燃比が検出される。より具体的に述べると、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、排ガス中に多量に含まれる未燃物（ＨＣ，ＣＯ及びＨ２等）が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。この場合、大気側電極層６７ｃにおける酸素濃度と排ガス側電極層６７ｂにおける酸素濃度との差（酸素分圧差）が大きくなるので、固体電解質層６７ａは酸素電池として機能する。印加電圧Ｖは、この酸素電池の起電力よりも小さくなるように設定される。
従って、大気室６７ｇに存在する酸素分子は大気側電極層６７ｃにて電子を受け取って酸素イオンとなる。その酸素イオンは、固体電解質層６７ａを通過し、排ガス側電極層６７ｂへと移動する。そして、排ガス側電極層６７ｂにて未燃物を酸化し、電子を放出する。この結果、電源６７ｈの負極から、排ガス側電極層６７ｂ、固体電解質層６７ａ及び大気側電極層６７ｃを介して電源６７ｈの正極へと電流Ｉが流れる。
この電流Ｉの大きさは、大気側電極層６７ｃから固体電解質層６７ａを通って排ガス側電極層６７ｂに到達する酸素イオンの量により定まる。前述したように、この酸素イオンは排ガス側電極層６７ｂにて未燃物を酸化するために使用される。従って、拡散により拡散抵抗層６７ｄを通過して排ガス側電極層６７ｂに到達する未燃物の量が多いほど、固体電解質層６７ａを通過する酸素イオンの量は多くなる。換言すると、空燃比が小さいほど（理論空燃比よりもリッチ側の空燃比であって未燃物の量が多いほど）、電流Ｉの大きさは大きくなる。但し、拡散抵抗層６７ｄの存在により、排ガス側電極層６７ｂに到達する未燃物の量は制限されるので、電流Ｉは空燃比に応じた一定値Ｉｐとなる。上流側空燃比センサ６７は、この限界電流Ｉｐ値に基づいて空燃比に応じた値を出力する。
このような検出原理に基づく上流側空燃比センサ６７は、図６に示したように、上流側空燃比センサ６７の配設位置を流れる排ガスの空燃比（上流側空燃比ａｂｙｆｓ）に応じた出力値Ｖａｂｙｆｓを出力する。出力値Ｖａｂｙｆｓは限界電流Ｉｐを電圧に変換することにより得られる。出力値Ｖａｂｙｆｓは被検出ガスの空燃比が大きくなるほど（リーンとなるほど）増大する。後述する電気制御装置８０は、図６に示した空燃比変換テーブル（マップ）Ｍａｐａｂｙｆｓを記憶していて、出力値Ｖａｂｙｆｓを空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより、実際の上流側空燃比ａｂｙｆｓを検出する。この空燃比変換テーブルＭａｐａｂｙｆｓは、水素の選択的拡散も考慮して作成されている。換言すると、テーブルＭａｐａｂｙｆｓは、各気筒の空燃比を互いに等しい空燃比ｘに設定することにより、上流側空燃比センサ６７に到達する排ガスの空燃比を値ｘに設定した場合の「上流側空燃比センサ６７の実際の出力値Ｖａｂｙｆｓ」に基いて作成される。以下、上流側空燃比センサの出力値ＶａｂｙｆｓとテーブルＭａｐａｂｙｆｓとによって取得される空燃比を、上流側空燃比ａｂｙｆｓ又は検出空燃比ａｂｙｆｓとも称呼する。
下流側空燃比センサ６８は、排気通路であって上流側触媒５３よりも下流側であり且つ下流側触媒よりも上流側（即ち、上流側触媒５３と下流側触媒との間の排気通路）に配設されている。下流側空燃比センサ６８は、周知の起電力式の酸素濃度センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ６８は、排気通路であって下流側空燃比センサ６８が配設されている部位を流れるガスである被検出ガスの空燃比（即ち、上流側触媒５３から流出し且つ下流側触媒に流入するガスの空燃比、従って、機関に供給される混合気の空燃比の時間的平均値）に応じた出力値Ｖｏｘｓを発生するようになっている。
この出力値Ｖｏｘｓは、図７に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値ｍａｘ（例えば、約０．９Ｖ）となり、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値ｍｉｎ（例えば、約０．１Ｖ）となり、被検出ガスの空燃比が理論空燃比であるとき最大出力値ｍａｘと最小出力値ｍｉｎの略中間の電圧Ｖｓｔ（中間電圧Ｖｓｔ、例えば、約０．５Ｖ）となる。更に、この出力値Ｖｏｘｓは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値ｍａｘから最小出力値ｍｉｎへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値ｍｉｎから最大出力値ｍａｘへと急変する。
再び、図１を参照すると、アルコール濃度センサ６９は、燃料に含まれるアルコール（エタノール）の濃度を検出し、そのアルコール濃度に応じた信号ＥｔＯｈを出力するようになっている。
ＥＧＲ弁開度センサ７０は、ＥＧＲ弁の開度（即ち、ＥＧＲ弁が備える弁体のリフト量）を検出し、その開度ＡＥＧＲＶａｃｔを表す信号を出力するようになっている。
アクセル開度センサ７１は、運転者によって操作されるアクセルペダル９１の操作量Ａｃｃｐを表す信号を出力するようになっている。
電気制御装置８０は、互いにバスで接続された「ＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、及び、バックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等」からなる周知のマイクロコンピュータである。
バックアップＲＡＭ８４は、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭ８４は、バッテリから電力の供給を受けている場合、ＣＰＵ８１の指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭ８４は、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、ＣＰＵ８１は、バックアップＲＡＭ８４への電力供給が再開されたとき、バックアップＲＡＭ８４に保持されるべきデータを初期化（デフォルト値に設定）するようになっている。
インターフェース８５は、センサ６１〜７１と接続され、ＣＰＵ８１にそれらのセンサからの信号を供給するようになっている。更に、インターフェース８５は、ＣＰＵ８１の指示に応じて可変吸気タイミング制御装置３３のアクチュエータ３３ａ、可変排気タイミング制御装置３６のアクチュエータ３６ａ、各気筒のイグナイタ３８、各気筒に対応して設けられた燃料噴射弁３９、スロットル弁アクチュエータ４４ａ、パージ制御弁４９、及び、ＥＧＲ弁５５等に駆動信号（指示信号）を送出するようになっている。なお、電気制御装置８０は、取得されたアクセルペダルの操作量Ａｃｃｐが大きくなるほどスロットル弁開度ＴＡが大きくなるように、スロットル弁アクチュエータ４４ａに指示信号を送出するようになっている。
（空燃比気筒間インバランス判定の原理）
次に、上記判定装置による「空燃比気筒間インバランス判定」の原理について説明する。空燃比気筒間インバランス判定とは、気筒間における空燃比の不均一性が警告必要値以上となったか否か、換言すると、気筒別空燃比の間に（エミッション上許容できない程度の）不均衡（即ち、空燃比気筒間インバランス）が生じているか否か、を判定することである。
機関１０の燃料は炭素と水素との化合物である。従って、燃料が燃焼して水Ｈ２Ｏと二酸化炭素ＣＯ２へと変化する過程において、「炭化水素ＨＣ、一酸化炭素ＣＯ及び水素Ｈ２等」の未燃物が中間生成物として生成される。
燃焼に供される混合気の空燃比が理論空燃比よりも小さくなるほど（即ち、空燃比が理論空燃比よりもリッチ側の空燃比になるほど）、燃料が完全燃焼するために必要な酸素の量と実際の酸素の量との差が増大する。換言すると、リッチ側の空燃比になるほど燃焼途中における酸素の不足量が増大し、酸素濃度が低下するから、中間生成物（未燃物）が酸素と出合って結合する（酸化される）確率が急激に小さくなる。この結果、図８に示したように、気筒から排出される未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に（二次関数的に）増大する。なお、図８の点Ｐ１、点Ｐ２及び点Ｐ３は、ある気筒に供給される燃料の量が、その気筒の空燃比が理論空燃比に一致する場合の燃料の量に対して、それぞれ１０％（＝ＡＦ１）、３０％（＝ＡＦ２）及び４０％（＝ＡＦ３）だけ過剰となった点を示す。
更に、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等に比べて小さい分子である。従って、水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）に比較して、上流側空燃比センサ６７の拡散抵抗層６７ｄを迅速に拡散する。このため、ＨＣ，ＣＯ及びＨ２からなる未燃物が多量に発生すると、拡散抵抗層６７ｄにおいて水素Ｈ２の選択的拡散（優先的な拡散）が顕著に発生する。即ち、水素Ｈ２は、空燃比検出素子の表面（固体電解質層６７ａの表面に形成された排ガス側電極層６７ｂ）に「他の未燃物（ＨＣ，ＣＯ）」よりも多量に到達するようになる。この結果、水素Ｈ２の濃度と他の未燃物（ＨＣ，ＣＯ）の濃度とのバランスが崩れる。換言すると、「上流側空燃比センサ６７の空燃比検出素子（排ガス側電極層６７ｂ）に到達した排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合は、「機関１０から排出された排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合よりも大きくなる。
ところで、上記判定装置は空燃比制御装置の一部である。空燃比制御装置は、「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓにより表される上流側空燃比ａｂｙｆｓ（出力値Ｖａｂｙｆｓに相当する空燃比）」を「上流側目標空燃比ａｂｙｆｒ」に一致させる「空燃比のフィードバック制御（メインフィードバック制御）」を行う。一般に、上流側目標空燃比ａｂｙｆｒは理論空燃比ｓｔｏｉｃｈに設定される。
更に、空燃比制御装置は、下流側空燃比センサ６８の出力値Ｖｏｘｓ（又は、下流側空燃比センサの出力値Ｖｏｘｓにより表される下流側空燃比ａｆｄｏｗｎ）を下流側目標値Ｖｏｘｓｒｅｆ（又は、下流側目標値Ｖｏｘｓｒｅｆにより表される下流側目標空燃比）に一致させる「空燃比のサブフィードバック制御」を行う。一般に、下流側目標値Ｖｏｘｓｒｅｆは理論空燃比に相当する値（０．５Ｖ）に設定される。
いま、空燃比気筒間インバランスが発生していない状態において、各気筒の空燃比が一律にリッチ側に偏移した場合を想定する。このような状態は、例えば、燃料噴射量を算出する際の基本量となる「機関の吸入空気量の測定値又は推定値」が「真の吸入空気量」よりも大きくなったとき等において発生する。
この場合、例えば、各気筒の空燃比が図８に示したＡＦ２であった仮定する。ある気筒の空燃比がＡＦ２であると、ある気筒の空燃比がＡＦ２よりも理論空燃比に近い空燃比ＡＦ１である場合に比べ、より多くの未燃物（従って、水素Ｈ２）が排ガスに含まれる（点Ｐ１及び点Ｐ２を参照。）。従って、上流側空燃比センサ６７の拡散抵抗層６７ｄにおいて「水素Ｈ２の選択的拡散」が発生する。
しかしながら、この場合、「各気筒が一回の燃焼行程を終了する間（クランク角７２０度に相当する期間）に機関１０に供給される混合気」の空燃比の真の平均値もＡＦ２である。更に、上述したように、図６に示した空燃比変換テーブルＭａｐａｂｙｆｓは、「水素Ｈ２の選択的拡散」を考慮して作成されている。従って、上流側空燃比センサ６７の実際の出力値Ｖａｂｙｆｓにより表される上流側空燃比ａｂｙｆｓ（実際の出力値Ｖａｂｙｆｓを空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより得られる上流側空燃比ａｂｙｆｓ）は、上記「空燃比の真の平均値ＡＦ２」に一致する。
それ故、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比は「上流側目標空燃比ａｂｙｆｒである理論空燃比」に一致するように修正され、空燃比気筒間インバランスは発生していないから、各気筒の空燃比も理論空燃比に略一致する。従って、サブフィードバック量（及び後述するサブフィードバック量の学習値）は、空燃比の補正を大きく行う値となることはない。換言すると、空燃比気筒間インバランスが発生していない場合、サブフィードバック量（及び後述するサブフィードバック量の学習値）は、空燃比の補正を大きく行う値とならない。
上述した「空燃比気筒間インバランスが発生していない場合」における各値の挙動について、以下に別の説明を行う。
例えば、機関１０の各気筒に吸入される空気量（重量）がＡ０であり、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０が理論空燃比（例えば、１４．５）であると仮定する。
そして、吸入空気量の推定誤差等に起因して、各気筒に対して供給（噴射）される燃料量が均等に１０％だけ過剰となったと仮定する。即ち、各気筒に１．１・Ｆ０の燃料が供給されたと仮定する。このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）である。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。このとき、上流側空燃比センサの出力値は、空燃比Ａ０／（１．１・Ｆ０）に応じた出力値となる。
従って、メインフィードバック制御により、各気筒に供給される燃料の量が１０％ずつ減量され（各気筒に１．０・Ｆ０の燃料が供給されるようになり）、機関１０全体に供給される混合気の空燃比は理論空燃比Ａ０／Ｆ０に一致させられる。
これに対し、特定気筒の空燃比のみが大きくリッチ側にずれた場合を想定する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁２５の噴射特性が「指示された燃料噴射量よりも相当に多い量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁２５の異常は「燃料噴射弁のリッチずれ異常」とも称呼される。
いま、ある一つの特定気筒に対して供給される燃料の量が４０％だけ過剰な量（即ち、１．４・Ｆ０）であり、残りの３気筒に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量（即ち、１・Ｆ０）であると仮定する。この場合、特定気筒の空燃比は図８に示した「ＡＦ３」であり、残りの気筒の空燃比は理論空燃比である。
このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。一方、機関１０に供給される燃料の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．４・Ｆ０＋Ｆ０＋Ｆ０＋Ｆ０）である。
従って、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。即ち、この場合の機関１０全体に供給される混合気の空燃比の真の平均値は、上述した「各気筒に対して供給される燃料の量が均等に１０％だけ過剰である場合」と同じ値となる。
しかしながら、前述したように、排ガス中の未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に増大する。このため、「特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ１は、図８によれば、ＳＨ１＝Ｈ３＋Ｈ０＋Ｈ０＋Ｈ０＝Ｈ３＋３・Ｈ０となる。これに対し、「各気筒に対して供給される燃料の量が均等に１０％だけ過剰となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ２は、図８によれば、ＳＨ２＝Ｈ１＋Ｈ１＋Ｈ１＋Ｈ１＝４・Ｈ１となる。このとき、量Ｈ１は量Ｈ０よりも僅かに大きいが、量Ｈ１及び量Ｈ０は共に極めて微量である。即ち、量Ｈ１と量Ｈ０とは、量Ｈ３に比べた場合、互いに略等しいと言える。従って、水素総量ＳＨ１は水素総量ＳＨ２よりも極めて大きくなる（ＳＨ１＞＞ＳＨ２）。
このように、機関１０全体に供給される混合気の空燃比の真の平均値が同一であっても、空燃比気筒間インバランスが発生した場合に排ガスに含まれる水素の総量ＳＨ１は、空燃比気筒間インバランスが発生していない場合に排ガスに含まれる水素の総量ＳＨ２よりも、顕著に大きくなる。
従って、特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合、上述した拡散抵抗層６７ｄにおける「水素Ｈ２の選択的拡散」に起因して、上流側空燃比センサの出力値Ｖａｂｙｆｓにより表される空燃比は「機関１０全体に供給される混合気の空燃比の真の平均値（Ａ０／（１．１・Ｆ０））」よりもリッチ側の空燃比（小さい空燃比）となる。つまり、排ガスの空燃比の平均値が同じであっても、空燃比気筒間インバランスが発生している場合には、空燃比気筒間インバランスが発生していない場合よりも、上流側空燃比センサ６７の排ガス側電極層６７ｂにおける水素Ｈ２の濃度が高くなるから、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓは「空燃比の真の平均値」よりもリッチ側の空燃比を示す値となるのである。
その結果、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比の真の平均は、理論空燃比よりもリーン側に制御されてしまう。
一方、下流側空燃比センサ６８には、上流側触媒５３を通過した排ガスが到達する。排ガスに含まれる水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）とともに上流側触媒５３において酸化（浄化）される。従って、下流側空燃比センサ６８の出力値Ｖｏｘｓは、機関１０全体に供給される混合気の真の空燃比に応じた値となる。従って、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量等）は、上記メインフィードバック制御による空燃比のリーン側への過補正を補う値となる。そして、このようなサブフィードバック量等により、機関１０の空燃比の真の平均値は理論空燃比に一致させられる。
このように、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量）は、燃料噴射弁２５のリッチずれ異常（空燃比気筒間インバランス）に起因する「空燃比のリーン側への過補正」を補償するような値となる。また、このリーン側への過補正の程度は、リッチずれ異常を起こした燃料噴射弁２５が「指示された噴射量」に比較してより多くの量の燃料を噴射するようになるほど（即ち、特定気筒の空燃比がリッチ側の空燃比になるほど）増大する。
従って、サブフィードバック量が正の値であってその大きさが大きいほど「機関の空燃比がよりリッチ側へと補正されるシステム」においては、「サブフィードバック量に応じて変化する値（実際には、例えば、サブフィードバック量の定常成分を取り込んだサブフィードバック量の学習値）」は、空燃比気筒間インバランスの程度を示す値となる。
かかる知見に基づき、本判定装置は、サブフィードバック量に応じて変化する値（本例において、サブフィードバック量の学習値である「サブＦＢ学習値」）に応じた値（例えば、サブフィードバック量の学習値の平均値）を、インバランス判定用パラメータとして取得する。つまり、インバランス判定用パラメータは「上流側触媒５３を通過する前の排ガスに含まれる水素の量と、上流側触媒５３を通過した後の排ガスに含まれる水素の量と、の差が大きいほど、大きくなる値」となる。そして、判定装置は、そのインバランス判定用パラメータが「異常判定閾値」以上となった場合（即ち、サブＦＢ学習値の増減に応じて増減する値が「機関の空燃比を異常判定閾値以上リッチ側に補正することを示す値」となった場合）、空燃比気筒間インバランスが発生したと判定する。
図９の実線は、空燃比気筒間インバランスが発生して、ある一つの気筒の空燃比が理論空燃比からリッチ側及びリーン側に乖離した場合におけるサブＦＢ学習値を示している。図９に示したグラフの横軸は「インバランス割合」である。インバランス割合とは、「理論空燃比Ｘに対する、理論空燃比Ｘとそのリッチずれした気筒の空燃比ａｆとの差Ｙ（＝Ｘ−ａｆ）、の比（Ｙ／Ｘ）」のことである。前述したように、インバランス割合が大きくなるほど、水素Ｈ２の選択的拡散の影響が急激に大きくなる。従って、図９の実線により示されるように、サブＦＢ学習値（従って、インバランス判定用パラメータ）は、インバランス割合が大きくなるのに従って二次関数的に増大する。
なお、図９の実線に示したように、インバランス割合が負の値である場合においても、そのインバランス割合の絶対値が増大するほど、サブＦＢ学習値は増大する。即ち、例えば、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、インバランス判定用パラメータとしてのサブＦＢ学習値（サブＦＢ学習値に応じた値）は増大する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁２５の噴射特性が「指示された燃料噴射量よりも相当に少ない量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁２５の異常は「燃料噴射弁のリーンずれ異常」とも称呼される。
以下、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、サブＦＢ学習値が増大する理由について簡単に説明する。以下の説明においても、機関１０の各気筒に吸入される空気量（重量）はＡ０であると仮定する。更に、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０は理論空燃比に一致すると仮定する。
いま、ある一つの特定気筒（便宜上、第１気筒とする。）に対して供給される燃料の量が４０％だけ過小な量（即ち、０．６・Ｆ０）であり、残りの３気筒（第２、第３及び第４気筒）に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量、即ち１．０・Ｆ０）となった場合を想定する。なお、この場合、失火は発生しないものと仮定している。
この場合、メインフィードバック制御により、第１気筒乃至第４気筒に供給される燃料の量は同じ所定量（１０％）だけ増大されたと仮定する。このとき、第１気筒に供給される燃料の量は０．７・Ｆ０となり、第２乃至第４気筒のそれぞれに供給される燃料の量は１．１・Ｆ０となる。
係る状態においては、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、メインフィードバック制御の結果、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４・Ｆ０（＝０．７・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）となる。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４・Ｆ０）＝Ａ０／Ｆ０、即ち、理論空燃比となっている。
しかしながら、この状態における「排ガスに含まれる水素Ｈ２の総量ＳＨ３」は、ＳＨ３＝Ｈ４＋Ｈ１＋Ｈ１＋Ｈ１＝Ｈ４＋３・Ｈ１となる。但し、Ｈ４は、空燃比がＡ０／（０．７・Ｆ０）であるときに発生する水素量であり、Ｈ１及びＨ０よりも小さく且つＨ０と略等しい。従って、総量ＳＨ３は、最大でも（Ｈ０＋３・Ｈ１）となる。
これに対し、空燃比気筒間インバランスが発生しておらず且つ機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比である場合、「排ガスに含まれる水素Ｈ２の総量ＳＨ４」は、ＳＨ４＝Ｈ０＋Ｈ０＋Ｈ０＋Ｈ０＝４・Ｈ０となる。前述したように、Ｈ１はＨ０よりも僅かに大きい。従って、総量ＳＨ３（＝Ｈ０＋３・Ｈ１）は総量ＳＨ４（＝４・Ｈ０）よりも大きくなる。
従って、「燃料噴射弁のリーンずれ異常」に起因する空燃比気筒間インバランスが発生している場合、メインフィードバック制御によって、機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比に移行されたときであっても、水素の選択的拡散の影響が上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに現れる。即ち、出力値Ｖａｂｙｆｓを空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより得られる上流側空燃比ａｂｙｆｓは、上流側目標空燃比ａｂｙｆｒである理論空燃比よりも「リッチ側（小さい）の空燃比」となる。その結果、メインフィードバック制御が更に実行され、機関１０全体に供給される混合気の空燃比の真の平均値は、理論空燃比よりもリーン側に補正されてしまう。
従って、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量及びサブＦＢ学習値）は、燃料噴射弁２５のリーンずれ異常（空燃比気筒間インバランス）に起因する「メインフィードバック制御による空燃比のリーン側への過補正」を補償するように増大する。よって、「サブフィードバック制御にて算出される空燃比の制御量」に基いて取得される「インバランス判定用パラメータ（例えば、サブＦＢ学習値）」は、インバランス割合が負の値であってインバランス割合の絶対値が増大するほど増大する。
これにより、本判定装置は、特定気筒の空燃比が「リッチ側にずれた場合」のみならず「リーン側にずれた場合」にも、インバランス判定用パラメータ（例えば、サブＦＢ学習値の増減に応じて増減する値）が「異常判定閾値Ａｔｈ」以上となった場合に、空燃比気筒間インバランスが発生したと判定する。
なお、図９の破線は、各気筒の空燃比が理論空燃比からリッチ側に一律に乖離し且つメインフィードバック制御を中止した場合におけるサブＦＢ学習値を示している。この場合、横軸は、「空燃比気筒間インバランスが生じた場合の機関の空燃比のズレ」と同一のズレとなるように調整してある。即ち、例えば、第１気筒のみが２０％だけリッチ側にずれるような「空燃比気筒間インバランス」が生じた場合、インバランス割合は２０％である。一方、各気筒の空燃比が一律に５％（２０％／４気筒）だけずれた場合、実際にはインバランス割合は０％であるが、図９においてはインバランス割合は２０％に相当するものとして扱われる。図９の実線と破線との比較から、「サブＦＢ学習値が異常判定閾値Ａｔｈ以上となったとき、空燃比気筒間インバランスが発生したと判定することができる。」ことが理解される。なお、実際にはメインフィードバック制御が実行されるので、空燃比気筒間インバランスが発生していない場合、サブＦＢ学習値は実際には図９の破線に示したほど増大しない。
（蒸発燃料ガスによる空燃比気筒間インバランス誤判定の回避）
ところで、燃料タンク４５内には蒸発燃料が発生する。その蒸発燃料はキャニスタ４６の吸着剤４６ｄに吸着される。しかし、吸着剤４６ｄの吸着可能量にも限界がある。そこで、電気制御装置８０は、所定のパージ条件が成立したときにパージ制御弁４９を開弁させ、吸着剤４６ｄに吸着されている蒸発燃料を蒸発燃料ガスとして機関１０の吸気通路に流入させる。即ち、蒸発燃料ガスを燃焼室２５に供給する制御（所謂、「エバポパージ」）を実行する。
しかしながら、発明者は、蒸発燃料ガスが吸気通路に流入させられている場合（エバポパージ中）、その蒸発燃料ガスの影響が下流側空燃比センサ６８の出力値に現れる場合があり、その場合インバランス判定用パラメータが「空燃比気筒間インバランスの程度」を精度良く表さなくなる虞があるとの知見を得た。例えば、炎天下における駐車の後に機関１０を始動させたとき等のように蒸発燃料ガスの濃度が非常に高い場合、蒸発燃料ガスの影響が「下流側空燃比センサ６８の出力値Ｖｏｘｓ」に現れ、その結果、インバランス判定用パラメータが「空燃比気筒間インバランスの程度」を精度良く表さなくなる。この蒸発燃料ガスの影響が「下流側空燃比センサ６８の出力値Ｖｏｘｓに現れる状態（即ち、蒸発燃料ガスの影響がインバランス判定用パラメータに現れる状態）」を、本明細書及び請求の範囲において、「蒸発燃料ガス影響発生状態」と称呼する。
一方、判定装置は、蒸発燃料ガスの濃度を「蒸発燃料ガス濃度学習値」として学習し、その濃度に応じて燃料噴射量を補正している。即ち、判定装置は、蒸発燃料ガスが燃焼室２５に流入する分に応じて燃料噴射量を減量することにより、機関１０に供給される混合気の空燃比を理論空燃比に維持する制御を行う。従って、蒸発燃料ガス濃度学習値の値が適正値であれば、「蒸発燃料ガス影響発生状態」は殆ど生じない。更に、仮に、蒸発燃料ガス濃度学習値の値が適正値でなくても、蒸発燃料ガス自体が微量にしか導入されていない場合には、「蒸発燃料ガス影響発生状態」は殆ど生じない。
そこで、判定装置は、蒸発燃料ガス濃度学習値が適正値の近傍の値になっているか否かを判定する。より具体的には、「機関１０の始動後において蒸発燃料ガス濃度学習値を更新する機会の回数」（以下、「濃度学習値更新機会回数」とも称呼する。）が第１機会回数閾値以上であるか否かを判定する。そして、判定装置は、濃度学習値更新機会回数が第１機会回数閾値以上であれば、蒸発燃料ガス濃度学習値は適正値の近傍の値になっていて、「蒸発燃料ガス影響発生状態」は生じないと判定する。
これに対し、判定装置は、濃度学習値更新機会回数が第１機会回数閾値未満であれば、蒸発燃料ガス濃度学習値は適正値から所定値以上乖離しているので、「蒸発燃料ガス影響発生状態」が発生していると判定し、下流側空燃比センサ６８の出力値Ｖｏｘｓに基づいて取得される「インバランス判定用パラメータ」を用いる空燃比気筒間インバランス判定を禁止する。換言すると、判定装置は、濃度学習値更新機会回数が第１機会回数閾値以上であれば、「蒸発燃料ガス影響発生状態」が発生しないと判定し、「インバランス判定用パラメータ」を用いる空燃比気筒間インバランス判定を許容する。
更に、判定装置は、機関１０の始動後における濃度学習値更新機会回数が、「第１機会回数閾値よりも小さい第２機会回数閾値（例えば、「０」）」以下である場合、機関の吸気通路に導入させる蒸発燃料ガスの量を極めて微量（実質的に、「０」）に制御する。従って、濃度学習値更新機会回数が第２機会回数閾値以下であれば、たとえ蒸発燃料ガス濃度学習値が適正値から乖離していても、「蒸発燃料ガス影響発生状態」は発生しない。
そこで、判定装置は、機関１０の始動後における濃度学習値更新機会回数が第２機会回数閾値以下であるか否かを判定する。そして、判定装置は、機関１０の始動後における濃度学習値更新機会回数が第２機会回数閾値以下である場合、下流側空燃比センサ６８の出力値Ｖｏｘｓに基づいて取得される「インバランス判定用パラメータ」を用いる空燃比気筒間インバランス判定を許容する。
（実際の作動）
次に、本判定装置の実際の作動について説明する。
＜燃料噴射量制御＞
ＣＰＵ８１は、図１０に示した最終燃料噴射量Ｆｉの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、その気筒（以下、「燃料噴射気筒」とも称呼する。）に対して繰り返し実行するようになっている。
従って、所定のタイミングになると、ＣＰＵ８１はステップ１０００から処理を開始し、以下に述べるステップ１０１０乃至ステップ１０６０の処理を順に行い、ステップ１０９５に進んで本ルーチンを一旦終了する。
ステップ１０１０：ＣＰＵ８１は「エアフローメータ６１により計測された吸入空気量Ｇａ、及び、機関回転速度ＮＥ」をルックアップテーブルＭａｐＭｃに適用することにより現時点の筒内吸入空気量Ｍｃ（ｋ）を求める。テーブルＭａｐＭｃは、「吸入空気量Ｇａ及び機関回転速度ＮＥ」と「筒内吸入空気量Ｍｃ」との関係を予め規定したテーブルである。即ち、ステップ１０１０は、筒内吸入空気流量取得手段を構成している。
ステップ１０２０：ＣＰＵ８１は、メインフィードバック学習値（メインＦＢ学習値）ＫＧをバックアップＲＡＭ８４から読み出す。メインＦＢ学習値ＫＧは、後述する図１２に示したメインフィードバック学習ルーチンにより別途求められ、バックアップＲＡＭ８４内に格納されている。
ステップ１０３０：ＣＰＵ８１は下記（１）式に従って基本燃料噴射量Ｆｂ（ｋ）を求める。即ち、ＣＰＵ８１は、筒内吸入空気量Ｍｃ（ｋ）を現時点における上流側目標空燃比ａｂｙｆｒによって除すことにより基本燃料噴射量Ｆｂを求める。上流側目標空燃比ａｂｙｆｒは、機関暖機中、フューエルカット復帰後増量中及び触媒過熱防止増量中等の特殊な場合を除き、理論空燃比ｓｔｏｉｃｈに設定される。なお、本例において、上流側目標空燃比ａｂｙｆｒは常に理論空燃比ｓｔｏｉｃｈに設定されている。基本燃料噴射量Ｆｂ（ｋ）は、各吸気行程に対応されながらＲＡＭ８３内に記憶される。
Ｆｂ（ｋ）＝Ｍｃ（ｋ）／ａｂｙｆｒ    …（１）
ステップ１０４０：ＣＰＵ８１はパージ補正係数ＦＰＧを下記の（２）式に従って求める。（２）式において、ＰＧＴは目標パージ率である。目標パージ率ＰＧＴは、後述する図１３のステップ１３３０において、「機関１０の運転状態を表すパラメータ」及び後述する「蒸発燃料ガス濃度学習値ＦＧＰＧの更新機会回数（濃度学習値更新機会回数）ＣＦＧＰＧ」に基いて求められている。蒸発燃料ガス濃度学習値ＦＧＰＧは、後述する図１４に示したルーチンにより求められている。
ＦＰＧ＝１＋ＰＧＴ（ＦＧＰＧ−１）  …（２）
ステップ１０５０：ＣＰＵ８１は、基本燃料噴射量Ｆｂ（ｋ）を下記（３）式に従って補正することにより、最終的な燃料噴射量（指令噴射量）Ｆｉを求める。なお、（３）式に使用されるメインフィードバック係数ＦＡＦは、後述する図１１に示したルーチンにより求められている。
Ｆｉ＝ＫＧ・ＦＰＧ・ＦＡＦ・Ｆｂ（ｋ）    …（３）
（３）式から明らかなように、メインフィードバック量としてのメインフィードバック係数ＦＡＦが「１」であると、メインフィードバック係数ＦＡＦは基本燃料噴射量（Ｆｂ（ｋ））を補正しない。即ち、メインフィードバック係数ＦＡＦの基準値は「１」である。
ステップ１０６０：ＣＰＵ８１は、最終燃料噴射量Ｆｉの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁３９から噴射するように、その燃料噴射弁３９に指示信号を送出する。
以上により、基本燃料噴射量Ｆｂがメインフィードバック係数ＦＡＦ等により補正されることによって最終燃料噴射量Ｆｉが算出され、燃料噴射弁３９が正常であれば、その最終燃料噴射量Ｆｉの燃料が燃料噴射気筒に対して噴射される。
＜メインフィードバック制御＞
ＣＰＵ８１は図１１にフローチャートにより示したメインフィードバック量算出（メインフィードバック制御）ルーチンを所定時間の経過毎に（又は図１０のルーチンの処理に続いて）繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１１００から処理を開始し、ステップ１１０５に進んでメインフィードバック制御条件（上流側空燃比フィードバック制御条件）が成立しているか否かを判定する。メインフィードバック制御条件は、例えば、フューエルカット中でなく、機関の冷却水温ＴＨＷが第１所定温度以上であり、負荷ＫＬが所定値以下であり、且つ、上流側空燃比センサ６７が活性化しているときに成立する。
なお、負荷ＫＬは、本例において負荷率（充填率）ＫＬであり、下記の（４）式に基いて算出される。この（４）式において、ρは空気密度（単位は（ｇ／ｌ））、Ｌは機関１０の排気量（単位は（ｌ））、４は機関１０の気筒数である。但し、負荷ＫＬは、筒内吸入空気量Ｍｃ、スロットル弁開度ＴＡ及びアクセルペダル操作量Ａｃｃｐ等であってもよい。
ＫＬ＝｛Ｍｃ（ｋ）／（ρ・Ｌ／４）｝・１００（％）…（４）
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ１１０５にて「Ｙｅｓ」と判定して以下に述べるステップ１１１０乃至ステップ１１５０の処理を順に行い、ステップ１１９５に進んで本ルーチンを一旦終了する。
ステップ１１１０：ＣＰＵ８１は、下記（５）式に従ってフィードバック制御用出力値Ｖａｂｙｆｃを取得する。（５）式において、Ｖａｂｙｆｓは上流側空燃比センサ６７の出力値、Ｖａｆｓｆｂは下流側空燃比センサ６８の出力値Ｖｏｘｓに基づいて算出されるサブフィードバック量、Ｖａｆｓｆｂｇはサブフィードバック量の学習値（サブＦＢ学習値）である。これらの値は、何れも現時点において得られている値である。サブフィードバック量Ｖａｆｓｆｂ及びサブＦＢ学習値Ｖａｆｓｆｂｇの算出方法については、後述する。
Ｖａｂｙｆｃ＝Ｖａｂｙｆｓ＋（Ｖａｆｓｆｂ＋Ｖａｆｓｆｂｇ）    …（５）
ステップ１１１５：ＣＰＵ８１は、下記（６）式に示したように、上記フィードバック制御用出力値Ｖａｂｙｆｃを図６に示した空燃比変換テーブルＭａｐａｂｙｆｓに適用することにより、フィードバック制御用空燃比ａｂｙｆｓｃを得る。
ａｂｙｆｓｃ＝Ｍａｐａｂｙｆｓ（Ｖａｂｙｆｃ）    …（６）
ステップ１１２０：ＣＰＵ８１は、下記（７）式に従って、「現時点よりもＮサイクル前の時点において燃焼室２５に実際に供給された燃料の量」である「筒内燃料供給量Ｆｃ（ｋ−Ｎ）」を求める。即ち、ＣＰＵ８１は、「現時点よりもＮサイクル（即ち、Ｎ・７２０°クランク角）前の時点における筒内吸入空気量Ｍｃ（ｋ−Ｎ）」を「上記フィードバック制御用空燃比ａｂｙｆｓｃ」により除すことにより、筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求める。
Ｆｃ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／ａｂｙｆｓｃ    …（７）
このように、筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）をフィードバック制御用空燃比ａｂｙｆｓｃで除す理由は、「燃焼室２５内での混合気の燃焼により生成された排ガス」が上流側空燃比センサ６７に到達するまでに「Ｎストロークに相当する時間」を要しているからである。但し、実際には、上流側空燃比センサ６７には各気筒から排出された排ガスがある程度混合された後に到達する。
ステップ１１２５：ＣＰＵ８１は、下記（８）式に従って、「現時点よりもＮサイクル前の時点において燃焼室２５に供給されるべきであった燃料の量」である「目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）」を求める。即ち、ＣＰＵ８１は、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を上流側目標空燃比ａｂｙｆｒ（即ち、理論空燃比）で除すことにより、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。
Ｆｃｒ＝Ｍｃ（ｋ−Ｎ）／ａｂｙｆｒ    …（８）
上述したように、上流側目標空燃比ａｂｙｆｒは通常運転時において理論空燃比ｓｔｏｉｃｈに設定される。一方、硫黄等に起因する排気臭の発生を防止することを目的として、所定のリーン設定条件が成立したとき、上流側目標空燃比ａｂｙｆｒは理論空燃比よりもリーン側の空燃比に設定される。また、以下の条件うちのいずれか１つが成立したとき、上流側目標空燃比ａｂｙｆｒは理論空燃比よりもリッチ側の空燃比に設定されてもよい。
・現時点がフューエルカット（燃料供給停止）制御の終了後の所定期間内である場合。
・上流側触媒５３の過熱を防止するべき運転状態（高負荷運転状態）である場合。
ステップ１１３０：ＣＰＵ８１は、下記（９）式に従って、筒内燃料供給量偏差ＤＦｃを取得する。即ち、ＣＰＵは、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じることにより、筒内燃料供給量偏差ＤＦｃを求める。この筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
ＤＦｃ＝Ｆｃｒ（ｋ−Ｎ）−Ｆｃ（ｋ−Ｎ）    …（９）
ステップ１１３５：ＣＰＵ８１は、下記（１０）式に従って、メインフィードバック値ＤＦｉを求める。この（１０）式において、Ｇｐは予め設定された比例ゲイン、Ｇｉは予め設定された積分ゲインである。更に、（１０）式の「値ＳＤＦｃ」は「筒内燃料供給量偏差ＤＦｃの時間積分値」である。つまり、ＣＰＵ８１は、フィードバック制御用空燃比ａｂｙｆｓｃを上流側目標空燃比ａｂｙｆｒに一致させるための比例積分制御により「メインフィードバック値ＤＦｉ」を算出する。筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃは次のステップ１１４０にて求められる。
ＤＦｉ＝Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ    …（１０）
ところで、上記（５）式の右辺の「サブフィードバック量ＶａｆｓｆｂとサブＦＢ学習値Ｖａｆｓｆｂｇとの和」は、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに比較して小さい値となり、且つ、小さい値となるように制限されている。従って、「サブフィードバック量ＶａｆｓｆｂとサブＦＢ学習値Ｖａｆｓｆｂｇとの和」は、後述するように、「下流側空燃比センサ６８の出力値Ｖｏｘｓ」を「理論空燃比に相当する値である下流側目標値Ｖｏｘｓｒｅｆ」に一致させるための「補助的な補正量」と考えることができる。この結果、フィードバック制御用空燃比ａｂｙｆｓｃは上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに実質的に基づく値であると言うことができる。即ち、メインフィードバック値ＤＦｉは「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓにより表される機関の空燃比」を「上流側目標空燃比ａｂｙｆｒ（理論空燃比）」に一致させるための補正量であると言うことができる。
ステップ１１４０：ＣＰＵ８１は、その時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ１１３０にて求められた筒内燃料供給量偏差ＤＦｃを加えることにより、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを取得する。
ステップ１１４５：ＣＰＵ８１は、メインフィードバック値ＤＦｉ及び基本燃料噴射量Ｆｂ（ｋ−Ｎ）を下記（１１）式に適用することによりメインフィードバック係数ＦＡＦを算出する。即ち、メインフィードバック係数ＦＡＦは、現時点からＮストローク前の基本燃料噴射量Ｆｂ（ｋ−Ｎ）にメインフィードバック値ＤＦｉを加えた値を基本燃料噴射量Ｆｂ（ｋ−Ｎ）で除すことにより求められる。
ＦＡＦ＝（Ｆｂ（ｋ−Ｎ）＋ＤＦｉ）／Ｆｂ（ｋ−Ｎ）…（１１）
ステップ１１５０：ＣＰＵ８１は、下記（１２）式に従ってメインフィードバック係数ＦＡＦの加重平均値をメインフィードバック係数平均ＦＡＦＡＶ（以下、「補正係数平均ＦＡＦＡＶ」とも称呼する。）として求める。（１２）式においてＦＡＦＡＶｎｅｗは更新後の補正係数平均ＦＡＦＡＶであり、そのＦＡＦＡＶｎｅｗが新たな補正係数平均ＦＡＦＡＶとして格納される。（１２）式において、値ｑは０より大きく１より小さい定数である。この補正係数平均ＦＡＦＡＶは、後述する「メインＦＢ学習値ＫＧ及び蒸発燃料ガス濃度学習値ＦＧＰＧ」を求める際に用いられる。なお、メインフィードバック係数平均ＦＡＦＡＶは、所定期間におけるメインフィードバック係数ＦＡＦの平均値であってもよい。
ＦＡＦＡＶｎｅｗ＝ｑ・ＦＡＦ＋（１−ｑ）・ＦＡＦＡＶ…（１２）
以上により、メインフィードバック値ＤＦｉが比例積分制御により求められ、このメインフィードバック値ＤＦｉがメインフィードバック係数ＦＡＦへと変換された上で「前述した図１０のステップ１０５０」において最終燃料噴射量Ｆｉに反映される。この結果、燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が上流側目標空燃比ａｂｙｆｒ（特殊な場合を除き、理論空燃比）と略一致させられる。
一方、ステップ１１０５の判定時において、メインフィードバック制御条件が不成立であると、ＣＰＵ８１はそのステップ１１０５にて「Ｎｏ」と判定してステップ１１５５に進み、メインフィードバック値ＤＦｉの値を「０」に設定する。次いで、ＣＰＵ８１は、ステップ１１６０にて筒内燃料供給量偏差の積分値ＳＤＦｃを「０」に設定し、ステップ１１６５にてメインフィードバック係数ＦＡＦの値を「１」に設定し、ステップ１１７０にて補正係数平均ＦＡＦＡＶの値を「１」に設定する。その後、ＣＰＵ８１は、ステップ１１９５に進んで本ルーチンを一旦終了する。
このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック値ＤＦｉの値は「０」に設定され、メインフィードバック係数ＦＡＦの値は「１」に設定される。従って、基本燃料噴射量Ｆｂのメインフィードバック係数ＦＡＦによる補正は行われない。但し、このような場合であっても、基本燃料噴射量ＦｂはメインＦＢ学習値ＫＧによって補正される。
＜メインフィードバック学習（ベース空燃比学習）＞
第１制御装置はパージ制御弁４９を完全に閉じた状態に維持する指示信号が同パージ制御弁４９に送出されている「パージ制御弁閉弁指示期間（デューティ比ＤＰＧが「０」である期間）」において、メインフィードバック係数ＦＡＦを基本値「１」に近づけるように、補正係数平均ＦＡＦＡＶに基いてメインフィードバック係数ＦＡＦの学習値ＫＧを更新する。この学習値は、「メインＦＢ学習値ＫＧ」とも称呼される。
このメインＦＢ学習値ＫＧの更新を行うために、ＣＰＵ８１は図１２に示したメインフィードバック学習ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵ８１は所定のタイミングになるとステップ１２００から処理を開始し、ステップ１２０５に進んでメインフィードバック制御が実行中であるか否か（即ち、メインフィードバック条件が成立しているか否か）を判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ１２０５にて「Ｎｏ」と判定し、ステップ１２９５に直接進んで本ルーチンを一旦終了する。この結果、メインＦＢ学習値ＫＧの更新は行われない。
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ１２１０に進んで「蒸発燃料ガスパージが行われていないか否か（具体的には、後述する図９のルーチンにより求められる目標パージ率ＰＧＴが「０」であるか否か）」を判定する。このとき、蒸発燃料ガスパージが行われていると、ＣＰＵ８１はそのステップ１２１０にて「Ｎｏ」と判定し、ステップ１２９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガスパージが行われている場合、メインＦＢ学習値ＫＧの更新は行われない。
他方、ＣＰＵ８１がステップ１２１０に進んだ際に蒸発燃料ガスパージが行われていなければ、ＣＰＵ８１はステップ１２１０にて「Ｙｅｓ」と判定してステップ１２１５に進み、補正係数平均ＦＡＦＡＶの値が値１＋α（αは０より大きく１より小さい微小な所定値であり、例えば、０．０２）以上であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１＋α以上であると、ＣＰＵ８１はステップ１２２０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ増大させる。その後、ＣＰＵ８１はステップ１２３５に進む。
これに対し、ＣＰＵ８１がステップ１２１５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１＋αよりも小さいと、ＣＰＵ８１はステップ１２２５に進んで補正係数平均ＦＡＦＡＶの値が値１−α以下であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１−α以下であると、ＣＰＵ８１はステップ１２３０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ減少させる。その後、ＣＰＵ８１はステップ１２３５に進む。
更に、ＣＰＵ８１はステップ１２３５に進んだとき、そのステップ１２３５にてメインフィードバック学習完了フラグ（メインＦＢ学習完了フラグ）ＸＫＧの値を「０」に設定する。メインＦＢ学習完了フラグＸＫＧは、その値が「１」であるときにメインフィードバック学習が完了しており、その値が「０」であるときにメインフィードバック学習が完了していないことを示す。
次いで、ＣＰＵ８１はステップ１２４０に進み、メイン学習カウンタＣＫＧの値を「０」に設定する。なお、メイン学習カウンタＣＫＧの値は、機関１０が搭載された車両の図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際に実行されるイニシャルルーチンにても「０」に設定されるようになっている。その後、ＣＰＵ８１はステップ１２９５に進み、本ルーチンを一旦終了する。
加えて、ＣＰＵ８１がステップ１２２５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１−αよりも大きいと（即ち、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値であると）、ＣＰＵ８１はステップ１２４５に進んでメイン学習カウンタＣＫＧの値を「１」だけ増大する。
次に、ＣＰＵ８１はステップ１２５０に進み、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であるか否かを判定する。そして、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であれば、ＣＰＵ８１はステップ１２５５に進んでメインＦＢ学習完了フラグＸＫＧの値を「１」に設定する。即ち、「機関１０の始動後において図１２に示されたステップ１２１５の処理が実行された際（メインフィードバック学習が実行された際）、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値であるケース」の発生回数（カウンタＣＫＧの値）がメイン学習カウンタ閾値ＣＫＧｔｈ以上となると、メインＦＢ学習値ＫＧの学習は完了したと見做される。その後、ＣＰＵ８１はステップ１２９５に進んで、本ルーチンを一旦終了する。
また、ＣＰＵ８１は、ステップ１２５０に進んだとき、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈよりも小さければ、ＣＰＵ８１はそのステップ１２５０からステップ１２９５に直接進んで本ルーチンを一旦終了する。
なお、メイン学習カウンタＣＫＧの値は、ステップ１２０５及びステップ１２１０の何れかにおいて「Ｎｏ」と判定された際にも「０」に設定されてもよい。これによれば、「ステップ１２１５以降に進む状態（即ち、今回のメインフィードバック学習が実行される状態）において、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値であるケース」の連続発生回数がメイン学習カウンタ閾値ＣＫＧｔｈ以上となったとき、メインＦＢ学習値ＫＧの学習は完了したと見做される。
以上により、メインフィードバック制御中であって蒸発燃料ガスパージが行われていない間にメインＦＢ学習値ＫＧが更新される。
＜パージ制御弁駆動＞
一方、ＣＰＵ８１は図１３に示したパージ制御弁駆動ルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになるとＣＰＵ８１はステップ１３００から処理を開始し、ステップ１３１０に進んでパージ条件が成立しているか否かを判定する。このパージ条件は、例えば、空燃比フィードバック制御が実行中であり、且つ、機関１０が定常運転されているとき（例えば、機関の負荷を表すスロットル弁開度ＴＡの単位時間あたりの変化量が所定値以下のとき）に成立する。
いま、パージ条件が成立していると仮定する。この場合、ＣＰＵ８１は図１３のステップ１３１０にて「Ｙｅｓ」と判定してステップ１３２０に進み、メインＦＢ学習完了フラグＸＫＧの値が「１」であるか否か（即ち、メインフィードバック学習が完了しているか否か）を判定する。このとき、メインＦＢ学習完了フラグＸＫＧの値が「１」であると、ＣＰＵ８１はステップ１３２０にて「Ｙｅｓ」と判定し、以下に述べるステップ１３３０乃至ステップ１３６０の処理を順に行い、ステップ１３９５に進んで本ルーチンを一旦終了する。
ステップ１３３０：ＣＰＵ８１は、目標パージ率ＰＧＴを機関１０の運転状態を示すパラメータ（例えば、機関の負荷ＫＬ）に基いて設定する。より具体的に述べると、ＣＰＵ８１は後述する図１４のルーチンにおいて求められる「蒸発燃料ガス濃度学習値ＦＧＰＧの濃度学習値更新機会回数ＣＦＧＰＧ（濃度学習値更新機会回数）」が「第１機会回数閾値ＣＦＧＰＧｔｈ」以上である場合、図１３のステップ１３３０のブロック内の実線Ｃ１により示されたデータを有する第１パージ率テーブルＭａｐＰＧＴ１（ＫＬ）を用いる。即ち、ＣＰＵ８１は、現時点の負荷ＫＬを第１パージ率テーブルＭａｐＰＧＴ１（ＫＬ）に適用することにより、目標パージ率ＰＧＴを求める。
これに対し、ＣＰＵ８１は、「濃度学習値更新機会回数ＣＦＧＰＧ」が「１」以上であり且つ「第１機会回数閾値ＣＦＧＰＧｔｈ」よりも小さい場合、破線Ｃ２により示されたデータを有する第２パージ率テーブルＭａｐＰＧＴ２（ＫＬ）を用いる。即ち、ＣＰＵ８１は、現時点の負荷ＫＬを第２パージ率テーブルＭａｐＰＧＴ２（ＫＬ）に適用することにより、目標パージ率ＰＧＴを求める。
更に、ＣＰＵ８１は、「濃度学習値更新機会回数ＣＦＧＰＧ」が「０」である場合、即ち、機関１０の始動後に蒸発燃料ガス濃度学習値ＦＧＰＧの更新機会（更新履歴）がない場合、一点鎖線Ｃ３により示されたデータを有する第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）を用いる。即ち、ＣＰＵ８１は、現時点の負荷ＫＬを第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）に適用することにより、目標パージ率ＰＧＴを求める。
この第１パージ率テーブルＭａｐＰＧＴ１（ＫＬ）によれば、目標パージ率ＰＧＴは最も大きくなるように求められる。第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）によれば、目標パージ率ＰＧＴは最も小さくなる（極めて小さくなる）ように求められる。第２パージ率テーブルＭａｐＰＧＴ２（ＫＬ）によれば、目標パージ率ＰＧＴは、第１パージ率テーブルＭａｐＰＧＴ１（ＫＬ）によって求められる目標パージ率ＰＧＴと第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）によって求められる目標パージ率ＰＧＴとの間の大きさになるように求められる。
なお、パージ率は、吸入空気量Ｇａに対するパージ流量ＫＰの比として定義される。或いは、パージ率は、「吸入空気量Ｇａと蒸発燃料ガスパージ量ＫＰとの和（Ｇａ＋ＫＰ）」に対する蒸発燃料ガスパージ量ＫＰの比として定義されてもよい。
ステップ１３４０：ＣＰＵ８１は、回転速度ＮＥ及び負荷ＫＬをマップＭａｐＰＧＲＭＸに適用することにより、全開パージ率ＰＧＲＭＸを求める。この全開パージ率ＰＧＲＭＸは、パージ制御弁４９を全開にしたときのパージ率である。マップＭａｐＰＧＲＭＸは実験又はシミュレーションの結果に基づき予め取得され、ＲＯＭ８２内に格納されている。マップＭａｐＰＧＲＭＸによれば、全開パージ率ＰＧＲＭＸは回転速度ＮＥが大きくなるほど、又は、負荷ＫＬが大きくなるほど、小さくなる。
ステップ１３５０：ＣＰＵ８１は、下記（１３）式に、ステップ１３４０にて求めた全開パージ率ＰＧＲＭＸ及びステップ１３３０にて求めた目標パージ率ＰＧＴを適用することにより、デューティ比ＤＰＧを算出する。
ＤＰＧ＝（ＰＧＴ／ＰＧＲＭＸ）・１００（％）  …（１３）
ステップ１３６０：ＣＰＵ８１は、パージ制御弁４９をデューティ比ＤＰＧに基いて開閉制御する。この結果、目標パージ率ＰＧＴに等しいパージ率にて蒸発燃料ガスが吸気通路に導入される。
これに対し、ＣＰＵ８１は、パージ条件が成立していていない場合にはステップ１３１０にて「Ｎｏ」と判定して１３７０に進む。また、ＣＰＵ８１は、メインＦＢ学習完了フラグＸＫＧが「０」である場合にはステップ１３２０にて「Ｎｏ」と判定して１３７０に進む。そして、ＣＰＵ８１はステップ１３７０にてデューティ比ＤＰＧを「０」に設定した後、ステップ１３６０へと進む。このとき、デューティ比ＤＰＧは「０」に設定されているからパージ制御弁４９は完全に閉じられた状態となる。その後、ＣＰＵ８１はステップ１３９５に進んで本ルーチンを一旦終了する。
＜蒸発燃料ガス濃度学習＞
更に、ＣＰＵ８１は、所定時間が経過する毎に図１４に示した蒸発燃料ガス濃度学習ルーチンを実行するようになっている。この蒸発燃料ガス濃度学習ルーチンの実行によって、蒸発燃料ガスパージが行われている間に蒸発燃料ガス濃度学習値ＦＧＰＧの更新が行われる。
即ち、ＣＰＵ８１は所定のタイミングになるとステップ１４００から処理を開始してステップ１４０５に進み、メインフィードバック制御が実行中であるか否か（メインフィードバック制御条件が成立しているか否か）を判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ１４０５にて「Ｎｏ」と判定し、ステップ１４９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ１４１０に進んで「蒸発燃料ガスパージが行われているか否か（具体的には、図９のルーチンにより求められる目標パージ率ＰＧＴが「０」であるか否か）」を判定する。このとき、蒸発燃料ガスパージが行われていないと、ＣＰＵ８１はそのステップ１４１０にて「Ｎｏ」と判定し、ステップ１４９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
他方、ＣＰＵ８１がステップ１４１０に進んだ際に蒸発燃料ガスパージが行われていると、ＣＰＵ８１はステップ１４１０にて「Ｙｅｓ」と判定してステップ１４１５に進み、補正係数平均ＦＡＦＡＶから「１」を減じた値の絶対値｜ＦＡＦＡＶ−１｜が所定値β以上であるか否かを判定する。ここで、βは０より大きく１より小さい微小な所定値であり、例えば、０．０２である。
ところで、蒸発燃料ガスは、図１３のステップ１３２０に示されているように、メインＦＢ学習完了フラグＸＫＧが「１」であるとき（即ち、メインフィードバック学習が完了しているとき）に吸気通路に導入される。加えて、メインフィードバック学習は、図１２のステップ１２１０に示されているように、蒸発燃料ガスが吸気通路に導入されていない場合に行われる。従って、メインＦＢ学習完了フラグＸＫＧが「１」であるとき、機関の空燃比を理論空燃比から偏移させる蒸発燃料ガス以外の要因（正確には、補正係数平均ＦＡＦＡＶの絶対値を所定値β以上「１」から乖離させる蒸発燃料ガス以外の要因）は、メインＦＢ学習値ＫＧによって補償されている。
このことから、図１４のステップ１４１５において、補正係数平均ＦＡＦＡＶから「１」を減じた値の絶対値｜ＦＡＦＡＶ−１｜が所定値β以上である場合、蒸発燃料ガス濃度学習値ＦＧＰＧの値が不正確であって、その結果、図１０のステップ１０４０において上記（２）式に従って算出されるパージ補正係数ＦＰＧの値が適正値から乖離していると考えられる。
そこで、ＣＰＵ８１は、絶対値｜ＦＡＦＡＶ−１｜がβ以上であるとき、ステップ１４１５にて「Ｙｅｓ」と判定し、以下に述べるステップ１４２０及びステップ１４２５の処理を実行することにより、蒸発燃料ガス濃度学習値ＦＧＰＧを変更する。即ち、ＣＰＵ８１は、ステップ１４２０及びステップ１４２５にて蒸発燃料ガス濃度学習値ＦＧＰＧの学習を行う。
ステップ１４２０：ＣＰＵ８１は、下記（１４）式に従って更新値ｔＦＧを求める。（１４）式における目標パージ率ＰＧＴは、図９のステップ１３３０にて設定されている。（１４）式から明らかなように、更新値ｔＦＧは目標パージ率１％当たりの「偏差εａ（ＦＡＦＡＶの１からの差＝ＦＡＦＡＶ−１）」である。その後、ＣＰＵ８１はステップ１４２５に進む。
ｔＦＧ＝（ＦＡＦＡＶ−１）／ＰＧＴ  …（１４）
蒸発燃料ガスに含まれる蒸発燃料ガスの濃度が高いほど、上流側空燃比ａｂｙｆｓは理論空燃比よりもより小さい空燃比（理論空燃比よりもリッチ側の空燃比）となる。従って、メインフィードバック係数ＦＡＦは燃料噴射量を減量するために「１」よりも「より小さい値」になるので、補正係数平均ＦＡＦＡＶも「１」よりも「より小さい値」となる。その結果、ＦＡＦＡＶ−１は負の値となるので、更新値ｔＦＧは負の値となる。更に、更新値ｔＦＧの絶対値は、ＦＡＦＡＶが小さいほど（「１」から乖離するほど）大きな値となる。つまり、蒸発燃料ガスの濃度が高いほど、更新値ｔＦＧはその絶対値の大きい負の値となる。
ステップ１４２５：ＣＰＵ８１は、下記（１５）式に従って蒸発燃料ガス濃度学習値ＦＧＰＧを更新する。（１５）式においてＦＧＰＧｎｅｗは更新後の蒸発燃料ガス濃度学習値ＦＧＰＧであり、ＣＰＵ８１はこの更新後の蒸発燃料ガス濃度学習値ＦＧＰＧｎｅｗを蒸発燃料ガス濃度学習値ＦＧＰＧとしてバックアップＲＡＭ８４に格納する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧは、蒸発燃料ガスの濃度が高いほど小さい値になる。なお、蒸発燃料ガス濃度学習値ＦＧＰＧの初期値は「１」に設定されている。
ＦＧＰＧｎｅｗ＝ＦＧＰＧ＋ｔＦＧ  …（１５）
ステップ１４３０：ＣＰＵ８１は、「蒸発燃料ガス濃度学習値ＦＧＰＧの濃度学習値更新機会回数ＣＦＧＰＧ（濃度学習値更新機会回数ＣＦＧＰＧ）」を「１」だけ増大する。濃度学習値更新機会回数ＣＦＧＰＧは上述したイニシャルルーチンにおいて「０」に設定されるようになっている。その後、ＣＰＵ８１はステップ１４９５に進み、本ルーチンを一旦終了する。
これに対し、ＣＰＵ８１がステップ１４１５に進んだとき、絶対値｜ＦＡＦＡＶ−１｜が値β以下であれば、ＣＰＵ８１はステップ１４１５にて「Ｎｏ」と判定してステップ１４３５に進み、更新値ｔＦＧを「０」に設定する。その後、ＣＰＵ８１はステップ１４２５に進む。従って、この場合、蒸発燃料ガス濃度学習値ＦＧＰＧの値は変化しない。次いで、ＣＰＵ８１はステップ１４３０に進む。従って、蒸発燃料ガス濃度学習値ＦＧＰＧの値が変化しない場合であっても、ステップ１４１５の処理を実行した場合、濃度学習値更新機会回数ＣＦＧＰＧの値は「１」だけ増大される。
＜サブフィードバック量及びサブＦＢ学習値算出＞
ＣＰＵ８１は、サブフィードバック量Ｖａｆｓｆｂ及びサブフィードバック量Ｖａｆｓｆｂの学習値Ｖａｆｓｆｂｇを算出するために、図１５に示したルーチンを所定時間の経過毎に実行している。
従って、所定のタイミングになると、ＣＰＵ８１はステップ１５００から処理を開始し、ステップ１５０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述した図１１のステップ１１０５におけるメインフィードバック制御条件が成立し、上流側目標空燃比ａｂｙｆｒが理論空燃比に設定され、機関の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上であり、且つ、下流側空燃比センサ６８が活性化しているときに成立する。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１はステップ１５０５にて「Ｙｅｓ」と判定し、以下に述べるステップ１５１０乃至ステップ１５３０の処理を順に行い、サブフィードバック量Ｖａｆｓｆｂを更新する。
ステップ１５１０：ＣＰＵ８１は、下記（１６）式に従って下流側目標値Ｖｏｘｓｒｅｆと下流側空燃比センサ６８の出力値Ｖｏｘｓ（即ち、理論空燃比相当値Ｖｓｔ）との差である出力偏差量ＤＶｏｘｓを取得する。出力偏差量ＤＶｏｘｓは「第１偏差」とも称呼される。
ＤＶｏｘｓ＝Ｖｏｘｓｒｅｆ−Ｖｏｘｓ    …（１６）
ステップ１５１５：ＣＰＵ８１は、下記（１７）式に従ってサブフィードバック量Ｖａｆｓｆｂを求める。この（１７）式において、Ｋｐは予め設定された比例ゲイン（比例定数）、Ｋｉは予め設定された積分ゲイン（積分定数）、Ｋｄは予め設定された微分ゲイン（微分定数）である。また、ＳＤＶｏｘｓは出力偏差量ＤＶｏｘｓの積分値（時間積分値）、ＤＤＶｏｘｓは出力偏差量ＤＶｏｘｓの微分値（時間微分値）である。
Ｖａｆｓｆｂ＝Ｋｐ・ＤＶｏｘｓ＋Ｋｉ・ＳＤＶｏｘｓ＋Ｋｄ・ＤＤＶｏｘｓ    …（１７）
ステップ１５２０：ＣＰＵ８１は、「その時点における出力偏差量の積分値ＳＤＶｏｘｓ」に「上記ステップ１５１０にて求めた出力偏差量ＤＶｏｘｓ」を加えることにより、新たな出力偏差量の積分値ＳＤＶｏｘｓを取得する。
ステップ１５２５：ＣＰＵ８１は、「上記ステップ１５１０にて算出した出力偏差量ＤＶｏｘｓ」から「本ルーチンを前回実行した際に算出された出力偏差量である前回出力偏差量ＤＶｏｘｓｏｌｄ」を減じることにより、新たな出力偏差量の微分値ＤＤＶｏｘｓを求める。
ステップ１５３０：ＣＰＵ８１は、「上記ステップ１５１０にて算出した出力偏差量ＤＶｏｘｓ」を「前回出力偏差量ＤＶｏｘｓｏｌｄ」として格納する。
このように、ＣＰＵ８１は、下流側空燃比センサ６８の出力値Ｖｏｘｓを下流側目標値Ｖｏｘｓｒｅｆに一致させるための比例・積分・微分（ＰＩＤ）制御により「サブフィードバック量Ｖａｆｓｆｂ」を算出する。このサブフィードバック量Ｖａｆｓｆｂは、上述した（５）式に示したように、フィードバック制御用出力値Ｖａｂｙｆｃを算出するために使用される。
次いで、ＣＰＵ８１は、以下に述べるステップ１５３５乃至ステップ１５５５の処理を順に行うことにより「サブＦＢ学習値Ｖａｆｓｆｂｇ」を算出し、その後、ステップ１５９５に進んで本ルーチンを一旦終了する。
ステップ１５３５：ＣＰＵ８１は、その時点のサブＦＢ学習値Ｖａｆｓｆｂｇを更新前学習値Ｖａｆｓｆｂｇ０として格納する。
ステップ１５４０：ＣＰＵ８１は、下記（１８）式に従ってサブＦＢ学習値Ｖａｆｓｆｂｇを更新する。更新されたサブＦＢ学習値Ｖａｆｓｆｂｇ（＝Ｖａｆｓｆｂｇｎｅｗ）はバックアップＲＡＭ８４に格納される。（１８）式において、値ｐは０より大きく１より小さい定数である。
Ｖａｆｓｆｂｇｎｅｗ＝（１−ｐ）・Ｖａｆｓｆｂｇ＋ｐ・Ｋｉ・ＳＤＶｏｘｓ  …（１８）
上記（１８）式から明らかなように、サブＦＢ学習値Ｖａｆｓｆｂｇは「サブフィードバック量Ｖａｆｓｆｂの積分項Ｋｉ・ＳＤＶｏｘｓ」に「ノイズ除去のためのフィルタ処理」を施した値である。換言すると、サブＦＢ学習値Ｖａｆｓｆｂｇは、積分項Ｋｉ・ＳＤＶｏｘｓの一次遅れ量（なまし値）であり、サブフィードバック量Ｖａｆｓｆｂの定常成分（積分項Ｋｉ・ＳＤＶｏｘｓ）に応じた値である。このように、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブフィードバック量Ｖａｆｓｆｂの定常成分に接近するように更新される。
なお、ＣＰＵ８１は、下記（１９）式に従ってサブＦＢ学習値Ｖａｆｓｆｂｇを更新してもよい。この場合、（１９）式から明らかなように、サブＦＢ学習値Ｖａｆｓｆｂｇは「サブフィードバック量Ｖａｆｓｆｂ」に「ノイズ除去のためのフィルタ処理」を施した値となる。換言すると、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブフィードバック量Ｖａｆｓｆｂの一次遅れ量（なまし値）であってもよい。（１９）式において、値ｐは０より大きく１より小さい定数である。
Ｖａｆｓｆｂｇｎｅｗ＝（１−ｐ）・Ｖａｆｓｆｂｇ＋ｐ・Ｖａｆｓｆｂ  …（１９）
何れにしても、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブフィードバック量Ｖａｆｓｆｂの定常成分に接近するように更新される。即ち、サブＦＢ学習値Ｖａｆｓｆｂｇは、サブＦＢ学習値Ｖａｆｓｆｂｇの定常成分を結果的に取り込むように更新される。
ステップ１５４５：ＣＰＵ８１は、下記（２０）式に従ってサブＦＢ学習値Ｖａｆｓｆｂｇの変更量（更新量）ΔＧを算出する。（２０）式において、Ｖａｆｓｆｂｇ０は上記ステップ１５３５にて取り込んだ「更新直前の学習値Ｖａｆｓｆｂｇ」である。従って、変更量ΔＧは正の値及び負の値の何れともなる。
ΔＧ＝Ｖａｆｓｆｂｇ−Ｖａｆｓｆｂｇ０      …（２０）
ステップ１５５０：ＣＰＵ８１は、下記（２１）式に従ってサブフィードバック量Ｖａｆｓｆｂを変更量ΔＧにより補正する。即ち、ＣＰＵ８１は、学習値Ｖａｆｓｆｂｇを変更量ΔＧだけ増加するように更新したとき、サブフィードバック量Ｖａｆｓｆｂを変更量ΔＧだけ減少させる修正を行う。（２１）式において、Ｖａｆｓｆｂｎｅｗは修正後のサブフィードバック量Ｖａｆｓｆｂである。
Ｖａｆｓｆｂｎｅｗ＝Ｖａｆｓｆｂ−ΔＧ      …（２１）
ステップ１５５５：ＣＰＵ８１は、上記（１８）式によりサブＦＢ学習値Ｖａｆｓｆｂｇを変更量ΔＧだけ増加するように更新したとき、出力偏差量ＤＶｏｘｓの積分値を下記（２２）式のように修正する。（２２）式においてＳＤＶｏｘｓｎｅｗは、修正後の出力偏差量ＤＶｏｘｓの積分値である。
ＳＤＶｏｘｓｎｅｗ＝ＳＤＶｏｘｓ−ΔＧ／Ｋｉ    …（２２）
なお、ステップ１５５５を省略してもよい。また、ステップ１５４５乃至ステップ１５５５を省略してもよい。
以上の処理により、所定時間の経過毎にサブフィードバック量ＶａｆｓｆｂとサブＦＢ学習値Ｖａｆｓｆｂｇとが更新される。
一方、サブフィードバック制御条件が成立していない場合、ＣＰＵ８１は図１５のステップ１５０５にて「Ｎｏ」と判定し、以下に述べるステップ１５６５及びステップ１５７０の処理を順に行い、ステップ１５９５に進んで本ルーチンを一旦終了する。
ステップ１５６５：ＣＰＵ８１はサブフィードバック量Ｖａｆｓｆｂの値を「０」に設定する。
ステップ１５７０：ＣＰＵ８１は出力偏差量の積分値ＳＤＶｏｘｓの値を「０」に設定する。
これにより、上記（５）式から明らかなように、フィードバック制御用出力値Ｖａｂｙｆｃは、上流側空燃比センサ６７の出力値ＶａｂｙｆｓとサブＦＢ学習値Ｖａｆｓｆｂｇとの和となる。即ち、この場合、「サブフィードバック量Ｖａｆｓｆｂの更新」及び「サブフィードバック量Ｖａｆｓｆｂの最終燃料噴射量Ｆｉへの反映」は停止される。但し、少なくとも、サブフィードバック量Ｖａｆｓｆｂの積分項に対応するサブＦＢ学習値Ｖａｆｓｆｂｇは最終燃料噴射量Ｆｉに反映される。
＜空燃比気筒間インバランス判定＞
次に、「空燃比気筒間インバランス判定」を実行するための処理について説明する。ＣＰＵ８１は、図１６に示した「空燃比気筒間インバランス判定ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１６００から処理を開始し、ステップ１６０５に進んで「異常判定（空燃比気筒間インバランス判定）の前提条件（判定実施条件）」が成立しているか否かを判定する。この前提条件が成立すると、他の条件が成立することを条件に、「サブＦＢ学習値Ｖａｆｓｆｂｇに基いて算出されるインバランス判定用パラメータ」を用いた「以下に述べる空燃比気筒間インバランス」の判定の実行が許容される。
換言すると、この前提条件が成立しない場合、空燃比気筒間インバランスの「判定禁止条件」が成立する。空燃比気筒間インバランスの「判定禁止条件」が成立すると、「サブＦＢ学習値Ｖａｆｓｆｂｇに基いて算出されるインバランス判定用パラメータ」を用いた「以下に述べる空燃比気筒間インバランス」の判定が禁止される。
この異常判定（空燃比気筒間インバランス判定）の前提条件は、例えば、次の（条件１）乃至（条件６）とすることができる。但し、この前提条件は、（条件１）及び（条件２）の何れかが成立し、且つ、（条件３）乃至（条件６）の総てが成立したとき成立する。換言すると、判定禁止条件は、（条件１）及び（条件２）の何れもが不成立であるとき、又は、（条件３）乃至（条件６）の何れか一つが不成立であるとき、成立する。また、これらの条件のうちの任意の一つ以上の組み合わせを前提条件としてもよい。
（条件１）濃度学習値更新機会回数ＣＦＧＰＧが「０」である。即ち、機関１０の始動後に蒸発燃料ガス濃度学習値ＦＧＰＧの更新機会が一度もない。即ち、蒸発燃料ガス濃度学習値ＦＧＰＧの更新履歴がない。
この（条件１）を設ける理由は次の通りである。
前述したように、目標パージ率ＰＧＴは図１３のステップ１３３０にて決定される。目標パージ率ＰＧＴは、濃度学習値更新機会回数ＣＦＧＰＧが「０（第２機会回数閾値以下）」であるとき、第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）（図１３のステップ１３３０内の一点鎖線Ｃ３を参照。）に基づいて極めて小さくなるように求められる。
従って、濃度学習値更新機会回数ＣＦＧＰＧが「０」であれば、たとえ蒸発燃料ガス濃度学習値ＦＧＰＧが適正値から乖離していても、蒸発燃料ガスによってサブＦＢ学習値Ｖａｆｓｆｂｇが大きく変化する「蒸発燃料ガス影響発生状態」は発生しない。従って、（条件１）が成立する場合、空燃比気筒間インバランス判定を許容する。
なお、（条件１）は、濃度学習値更新機会回数ＣＦＧＰＧが第２機会回数閾値以下であるときに、目標パージ率ＰＧＴが第３パージ率テーブルＭａｐＰＧＴ３（ＫＬ）に基づいて定められるようになっている場合、濃度学習値更新機会回数ＣＦＧＰＧが第２機会回数閾値（「０」を含む。）以下であること、と置換されてもよい。
（条件２）
濃度学習値更新機会回数ＣＦＧＰＧが所定の第１機会回数閾値ＣＦＧＰＧｔｈ以上である。この第１機会回数閾値は上記第２機会回数閾値よりも大きい。
この（条件２）を設ける理由は次の通りである。
「濃度学習値更新機会回数」が第１機会回数閾値以上ＣＦＧＰＧｔｈであれば、機関１０の始動後において蒸発燃料ガス濃度学習値ＦＧＰＧは多数回（第１機会回数閾値以上ＣＦＧＰＧｔｈ以上）に渡り更新されている。従って、蒸発燃料ガス濃度学習値は適正値の近傍の値になっていて、「蒸発燃料ガス影響発生状態」は生じないと判定することができる。従って、（条件２）が成立する場合、空燃比気筒間インバランス判定を許容する。
（条件３）上流側触媒５３の水素を酸化する能力が第１所定能力以下ではない。即ち、上流側触媒５３の水素を酸化する能力が第１所定能力より大きい場合。換言すると、この条件は、「上流側触媒５３の状態が、上流側触媒５３に流入する水素を所定量以上浄化し得る状態（即ち、水素浄化可能状態）にあること」である。
この（条件３）を設ける理由は次の通りである。
上流側触媒５３の水素を酸化する能力が第１所定能力以下であると、水素が上流側触媒５３において十分に浄化されず、水素が上流側触媒５３の下流に流出する可能性がある。この結果、下流側空燃比センサ６８の出力値Ｖｏｘｓが水素の選択的拡散の影響を受ける可能性があり、或いは、上流側触媒５３の下流のガスの空燃比が「機関１０全体に供給される混合気の空燃比の真の平均値」に一致しなくなる。従って、下流側空燃比センサ６８の出力値Ｖｏｘｓは、「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓを用いた上記空燃比フィードバック制御により過剰に補正された空燃比の真の平均値」に応じた値を示さない可能性が高い。故に、このような状態において空燃比気筒間インバランス判定を実行すると、判定を誤る可能性が高い。
上記（条件３）は、例えば、上流側触媒５３の酸素吸蔵量が第１閾値酸素吸蔵量以下ではない場合に成立する条件とすることができる。この場合、上流側触媒５３の水素を酸化する能力が第１所定能力よりも大きいと判定することができる。
なお、上流側触媒５３の酸素吸蔵量は周知の手法により別途取得される。例えば、上流側触媒５３の酸素吸蔵量ＯＳＡは、上流側触媒５３に流入する過剰な酸素の量に対応する量を順次加算するとともに、上流側触媒５３に流入する過剰な未燃成分の量に対応する量を順次減算することにより求められる。即ち、上流側空燃比ａｂｙｆｓと理論空燃比ｓｔｏｉｃｈとの差に基いて酸素の過不足量ΔＯ２（ΔＯ２＝ｋ・ｍｆｒ・（ａｂｙｆｓ−ｓｔｏｉｃｈ））を所定時間の経過毎に求め（ｋは大気中の酸素の比率であり０．２３、ｍｆｒはその所定時間に供給された燃料量）、その過不足量ΔＯ２を積算することにより酸素吸蔵量ＯＳＡが求められる（例えば、特開２００７−２３９７００号公報、特開２００３−３３６５３５号公報、及び、特開２００４−０３６４７５号公報等を参照。）。なお、このように求められる酸素吸蔵量ＯＳＡは、上流側触媒５３の最大酸素吸蔵量Ｃｍａｘと「０」との値に規制される。
（条件４）上流側触媒５３の水素を酸化する能力が第２所定能力未満である場合。この第２所定能力は、前記第１所定能力よりも大きい能力である。
この（条件４）を設ける理由は次の通りである。
上流側触媒５３の水素を酸化する能力が第２所定能力以上である期間においては、上流側触媒５３から流出する排ガスの空燃比の平均値が、「空燃比フィードバック制御によって過剰に補正された真の空燃比」に応じた値を示さない可能性がある。例えば、フューエルカット直後の場合、上流側触媒５３の酸素吸蔵量は非常に大きいので、上流側触媒５３の下流における排ガスの空燃比は、「空燃比フィードバック制御によって過剰に補正された真の空燃比」に応じた値を示さない。換言すると、上流側触媒５３の水素の酸化能力が「第１所定能力と第２所定能力との間」であるときに、インバランス判定用パラメータは空燃比気筒間インバランスの程度を精度良く表す値となる。
上記（条件４）は、例えば、上流側触媒５３の酸素吸蔵量が酸素吸蔵量が第２閾値酸素吸蔵量以上ではない場合に成立する条件とすることができる。上流側触媒５３の酸素吸蔵量が第２閾値酸素吸蔵量以上であるとき、上流側触媒５３の水素を酸化する能力が第２所定能力以上であると判定することができる。なお、第２閾値酸素吸蔵量は、前記第１閾値酸素吸蔵量よりも大きい。
（条件５）機関１０から排出される排ガスの流量が閾値排ガス流量以上ではない。即ち、機関１０から排出される排ガスの流量が閾値排ガス流量未満である。
この条件（条件５）を設ける理由は次の通りである。
機関１０から排出される排ガスの流量が閾値排ガス流量以上であると、上流側触媒５３に流入する水素の量が上流側触媒５３の水素酸化能力を超え、水素が上流側触媒５３の下流に流出する場合がある。従って、下流側空燃比センサ６８の出力値Ｖｏｘｓが水素の選択的拡散の影響を受ける可能性が高い。或いは、触媒の下流のガスの空燃比が「機関全体に供給される混合気の空燃比の真の平均値」に一致しなくなる。その結果、空燃比気筒間インバランスが発生している場合であっても、下流側空燃比センサ６８の出力値Ｖｏｘｓが「上流側空燃比センサ６７の出力値Ｖａｂｙｆｓを用いた空燃比フィードバック制御によって過剰に補正された真の空燃比」に応じた値を示さない可能性が高い。従って、このような状態において空燃比気筒間インバランス判定を実行すると、その判定を誤る可能性が高い。
上記（条件５）の条件は、例えば、機関１０の負荷（負荷率ＫＬ、スロットル弁開度ＴＡ及びアクセルペダル操作量Ａｃｃｐ等）が閾値負荷以上ではない場合に成立する条件とすることができる。或いは、上記（条件５）は、機関１０の単位時間あたりの吸入空気量Ｇａが閾値吸入空気量Ｇａｔｈ以上ではない場合に成立する条件とすることができる。
（条件６）上流側目標空燃比ａｂｙｆｒが理論空燃比ｓｔｏｉｃｈである。
いま、上述した異常判定の前提条件（（条件１）及び（条件２）の何れか、及び、（条件３）〜（条件６）の総て）が成立していると仮定する。この場合、ＣＰＵ８１はステップ１６０５にて「Ｙｅｓ」と判定し、ステップ１６１０に進んで上述した「サブフィードバック制御条件が成立しているか否か」を判定する。そして、「サブフィードバック制御条件が成立している」とき、ＣＰＵ８１は以下に述べるステップ１６１５以降の処理を実行する。ステップ１６１５以降の処理は、異常判定（空燃比気筒間インバランス判定）のための処理の一部である。従って、サブフィードバック制御条件は、「異常判定の前提条件」の一つと言うこともできる。更に、サブフィードバック制御条件は、メインフィードバック制御条件が成立しているときに成立する。従って、メインフィードバック制御条件も、「異常判定の前提条件」の一つと言うことができる。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１は以下に述べるステップ１６１５乃至ステップ１６６０のうちの所定のステップの処理を実行する。
ステップ１６１５：ＣＰＵ８１は現時点が「サブＦＢ学習値Ｖａｆｓｆｂｇが更新された直後の時点（サブＦＢ学習値更新直後時点）」であるか否かを判定する。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点であれば、ステップ１６２０に進む。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点でなければ、ステップ１６９５に直接進んで本ルーチンを一旦終了する。
ステップ１６２０：ＣＰＵ８１は学習値積算カウンタＣｅｘｅの値を「１」だけ増大する。
ステップ１６２５：ＣＰＵ８１は図１１のルーチンにより算出されているサブＦＢ学習値Ｖａｆｓｆｂｇを読み込む。
ステップ１６３０：ＣＰＵ８１は、サブＦＢ学習値Ｖａｆｓｆｂｇの積算値ＳＶａｆｓｆｂｇを更新する。即ち、ＣＰＵ８１は「その時点の積算値ＳＶａｆｓｆｂｇ」に「ステップ１６２５にて読み込んだサブＦＢ学習値Ｖａｆｓｆｂｇ」を加えることにより、新たな積算値ＳＶａｆｓｆｂｇを得る。
この積算値ＳＶａｆｓｆｂｇは、上述したイニシャルルーチンにより「０」に設定されるようになっている。更に、積算値ＳＶａｆｓｆｂｇは、後述するステップ１６６０の処理によっても「０」に設定される。このステップ１６６０は、異常判定（空燃比気筒間インバランス判定、ステップ１６４５〜ステップ１６５５）が実行されたときに実行される。従って、積算値ＳＶａｆｓｆｂｇは、「機関の始動後又は直前の異常判定実行後」において、「異常判定の前提条件が成立している場合」であって、且つ、「サブフィードバック制御条件が成立している場合」、におけるサブＦＢ学習値Ｖａｆｓｆｂｇの積算値となる。
ステップ１６３５：ＣＰＵ８１は学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈ以上であるか否かを判定する。ＣＰＵ８１は、学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈよりも小さいと、ステップ１６３５にて「Ｎｏ」と判定してステップ１６９５に直接進み、本ルーチンを一旦終了する。これに対し、ＣＰＵ８１は、学習値積算カウンタＣｅｘｅの値がカウンタ閾値Ｃｔｈ以上であると、ステップ１６３５にて「Ｙｅｓ」と判定してステップ１６４０に進む。
ステップ１６４０：ＣＰＵ８１は、「サブＦＢ学習値Ｖａｆｓｆｂｇの積算値ＳＶａｆｓｆｂｇ」を「学習値積算カウンタＣｅｘｅ」で除することにより、サブＦＢ学習値平均値Ａｖｅｓｆｂｇを求める。このサブＦＢ学習値平均値Ａｖｅｓｆｂｇは、前述したように、上流側触媒５３を通過する前の排ガスに含まれる水素の量と上流側触媒５３を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータである。
ステップ１６４５：ＣＰＵ８１は、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈ以上であるか否かを判定する。前述したように、気筒間における空燃比の不均一性が過大となって「空燃比気筒間インバランス」が生じている場合、サブフィードバック量Ｖａｆｓｆｂは機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値になろうとするから、それに伴って、サブＦＢ学習値Ｖａｆｓｆｂｇの平均値であるサブＦＢ学習値平均値Ａｖｅｓｆｂｇも「機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値（閾値Ａｔｈ以上の値）」となる。
従って、ＣＰＵ８１は、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈ以上である場合、ステップ１６４５にて「Ｙｅｓ」と判定してステップ１６５０に進み、異常発生フラグＸＩＪＯの値を「１」に設定する。つまり、異常発生フラグＸＩＪＯの値が「１」であることは、空燃比気筒間インバランスが生じていることを示す。なお、この異常発生フラグＸＩＪＯの値はバックアップＲＡＭ８４に格納される。また、異常発生フラグＸＩＪＯの値が「１」に設定されたとき、ＣＰＵ８１は図示しない警告ランプを点灯してもよい。
これに対し、サブＦＢ学習値平均値Ａｖｅｓｆｂｇが異常判定閾値Ａｔｈよりも小さい場合、ＣＰＵ８１はステップ１６４５にて「Ｎｏ」と判定してステップ１６５５に進む。そして、ＣＰＵ８１は、ステップ１６５５にて、「空燃比気筒間インバランス」が生じていないことを示すように、異常発生フラグＸＩＪＯの値を「０」に設定する。
ステップ１６６０：ＣＰＵ８１は、ステップ１６５０及びステップ１６５５の何れかからステップ１６６０に進み、学習値積算カウンタＣｅｘｅの値を「０」に設定する（リセットする）とともに、サブＦＢ学習値の積算値ＳＶａｆｓｆｂｇを「０」に設定する（リセットする）。
なお、ＣＰＵ８１は、ステップ１６０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ１６９５に進んで本ルーチンを一旦終了する。また、ＣＰＵ８１は、ステップ１６０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ１６６０を経由してからステップ１６９５に進み、本ルーチンを一旦終了するように構成されてもよい。更に、ＣＰＵ８１は、ステップ１６１０の処理を実行したとき、サブフィードバック制御条件が成立していなければ、ステップ１６９５に直接進んで本ルーチンを一旦終了する。
以上、説明したように、本発明の実施形態に係る判定装置は、空燃比気筒間インバランスの判定実行条件として、上記（条件１）及び（条件２）を設定しているので、蒸発燃料ガスに起因して「気筒間における空燃比の不均一性が過大になった」と誤って判定してしまうことがない実用性の高い空燃比気筒間インバランス判定装置となっている。
なお、上述した本発明の実施形態に係る判定装置は、
複数の気筒を有する多気筒内燃機関１０に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室（２５）から排出された排ガスが集合する排気集合部（エキゾーストマニホールド５１の排気集合部）よりも下流側の部位に配設された触媒（上流側触媒５３）と、
前記少なくとも２以上の気筒のそれぞれに対応して配設されるとともに同２以上の気筒のそれぞれの燃焼室（２５）に供給される混合気に含まれる燃料を噴射する燃料噴射弁（３９）と、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク（４５）内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成するパージ通路部（４９）と、
前記パージ通路部を通して前記機関の吸気通路（サージタンク４１ｂ、スロットル弁４４の下流の吸気通路）に流入する前記蒸発燃料ガスの量である蒸発燃料ガスパージ量を制御するパージ量制御手段（パージ制御弁４９、図１３のルーチンを参照。）と、
前記排気集合部、又は、前記排気通路の前記排気集合部と前記触媒との間に配設され、前記触媒を通過する前の排ガスが接触する拡散抵抗層（６７ｄ）と、同拡散抵抗層に覆われ且つ同拡散抵抗層を通過して到達した排ガスの空燃比に応じた出力値を出力する空燃比検出素子（６７ａ、６７ｂ、６７ｃ）と、を有する上流側空燃比センサ（６７）と、
前記触媒を通過した後の排ガスの空燃比に応じた出力値を出力する下流側空燃比センサ（６８）と、
前記上流側空燃比センサ（６７）の出力値Ｖａｂｙｆｓにより表される空燃比（上流側空燃比ａｂｙｆｓ）が理論空燃比に一致するように前記燃料噴射弁から噴射される燃料の量である燃料噴射量をフィードバック制御する空燃比フィードバック制御手段（図１０の特にステップ１０５０、及び、図１１のルーチンを参照。）と、
前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じているか否かの空燃比気筒間インバランス判定を実行するインバランス判定手段（図１６のルーチンを参照。）と、
を備える。
ここで、前記インバランス判定手段は、
前記フィードバック制御が実行されているときの前記下流側空燃比センサの出力値に基づいて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得する判定用パラメータ取得手段（図１６のステップ１６２０乃至ステップ１６４０を参照。）と、
前記取得されたインバランス判定用パラメータが異常判定閾値以上であるか否かを判定する（図１６のステップ１６４５）とともに同インバランス判定用パラメータが同異常判定閾値以上であると判定したとき前記気筒別空燃比の間に不均衡が生じていると判定する判定実行手段（図１６のステップ１６４５乃至ステップ１６５５を参照。）と、
前記吸気通路に流入する前記蒸発燃料ガスが前記インバランス判定用パラメータを変化させるような状態である蒸発燃料ガス影響発生状態が発生しているか否かを判定する蒸発燃料ガス影響発生判定手段（図１６のステップ１６０５における（条件１）及び（条件２）についての判定を参照。）と、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していると判定されるとき（即ち、（条件１）及び（条件２）の双方が成立しないとき）、前記判定実行手段による前記インバランス判定用パラメータに基づく判定を禁止する判定禁止手段（図１６のステップ１６０５における「Ｎｏ」との判定を参照。）と、
を備える。
また、前記空燃比フィードバック制御手段は、
前記蒸発燃料ガスパージ量が０でないことを含む所定の蒸発燃料ガス濃度学習値更新条件が成立する毎（即ち、図１４のルーチンが実行されるタイミングが到来し、且つ、図１４のステップ１４０５及びステップ１４１０の条件が成立する毎）に、少なくとも前記上流側空燃比センサの出力値（実際には、上流側空燃比センサ６７の出力値Ｖａｂｙｆｓに基づいて生成されるメインフィードバック係数ＦＡＦ及び補正係数平均ＦＡＦＡＶ）に基いて、前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値ＦＧＰＧとして更新する（図１４のルーチンを参照。）とともに、その蒸発燃料ガス濃度学習値ＦＧＰＧにも基いて前記燃料噴射量を制御するように構成され（図１１のステップ１０４０、ステップ１０５０を参照。）、
前記蒸発燃料ガス影響発生判定手段は、
前記機関の始動後から前記蒸発燃料ガス濃度学習値更新条件が成立した回数である濃度学習値更新機会回数ＣＦＧＰＧが所定の第１機会回数閾値未満であるか否かを判定するとともに、同濃度学習値更新機会回数ＣＦＧＰＧが同第１機会回数閾値未満であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していると判定するように構成されている（図１４のステップ１６０５における（条件２）を参照。）。
また、前記パージ量制御手段は、
前記濃度学習値更新機会回数ＣＦＧＰＧが前記第１機会回数閾値よりも小さい第２機会回数閾値以下であるときの蒸発燃料ガスパージ量を、同濃度学習値更新機会回数ＣＦＧＰＧが前記第１機会回数閾値以上であるときの蒸発燃料ガスパージ量よりも小さくするように前記蒸発燃料ガスパージ量を制御するように構成されている（図１３のステップ１３３０を参照。）。
更に、前記蒸発燃料ガス影響発生判定手段は、
前記濃度学習値更新機会回数ＣＦＧＰＧが前記第２機会回数閾値以下であるか否かを判定するとともに、同濃度学習値更新機会回数が同第２機会回数閾値以下であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していないと判定するように構成され（図１４のステップ１６０５における（条件１）を参照。）、
前記判定禁止手段は、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していないと判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を許容するように構成されている（図１４のステップ１６０５にて（条件１）が成立した場合を参照。）。
加えて、前記空燃比フィードバック制御手段は、
所定の第１更新タイミング（即ち、図１５のルーチンが実行されるタイミング）が到来する毎に、前記下流側空燃比センサ６８の出力値Ｖｏｘｓを理論空燃比に応じた値に一致させるためのサブフィードバック量Ｖａｆｓｆｂを、下流側空燃比センサ６８の出力値Ｖｏｘｓに基いて更新するサブフィードバック量更新手段（図１５のステップ１５０５乃至ステップ１５３０を参照。）と、
所定の第２更新タイミング（即ち、図１０のルーチンが実行されるタイミング）が到来する毎に、前記少なくとも２以上の気筒の各燃焼室に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量（Ｆｂ（ｋ））を同各気筒の燃焼室に流入する空気量である筒内吸入空気量（Ｍｃ（ｋ））に基いて決定するとともに（図１０のステップ１０１０及びステップ１０３０）、少なくとも前記上流側空燃比センサ６７の出力値Ｖａｂｙｆｓ及び前記サブフィードバック量Ｖａｆｓｆｂに基づき同基本燃料噴射量を補正するためのメインフィードバック量を更新し（図１１のルーチンを参照。）、同基本燃料噴射量を同メインフィードバック量により補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射量制御手段（図１０のステップ１０５０及びステップ１０６０を参照。）と、
を含む。
また、前記インバランス判定用パラメータ取得手段は、
所定の第３更新タイミング（図１５のルーチンを実行するタイミング）が到来する毎に、前記サブフィードバック量の学習値Ｖａｆｓｆｂｇを前記サブフィードバック量Ｖａｆｓｆｂに基づいて更新する手段であって同学習値が同サブフィードバック量の定常成分に接近するように同学習値を更新するサブフィードバック量学習手段（図１５のステップ１５３５乃至ステップ１５５５を参照。）と、
前記サブフィードバック量の学習値Ｖａｆｓｆｂｇに基づいて前記インバランス判定用パラメータ（サブＦＢ学習値平均値Ａｖｅｓｆｂｇ）を算出するパラメータ算出手段（図１６のステップ１６１５乃至ステップ１６４０を参照。）と、
を含む。
そして、前記空燃比フィードバック制御手段は、
前記パージ量制御手段により前記蒸発燃料ガスパージ量が０とされていないときの前記メインフィードバック量（メインフィードバック係数ＦＡＦ）に応じた値（補正係数平均ＦＡＦＡＶ）が、前記メインフィードバック量が前記基本燃料噴射量（Ｆｂ（ｋ））を補正しない値である同メインフィードバック量の基準値（「１」）よりも小さい第１閾値（１−β）以下であるとき及び同基準値（「１」）よりも大きい第２閾値（１＋β）以上であるとき前記蒸発燃料ガス濃度学習値ＦＧＰＧを変更するように構成されている（図１４のステップ１４１５乃至ステップ１４２５を参照。）。
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。以下、そのような本発明の実施形態の変形例（以下、「本装置」とも称呼する。）について列挙する。
・本装置は、サブフィードバック量Ｖａｆｓｆｂを算出する際に求められる「出力偏差量ＤＶｏｘｓの積分値に基づく値ＳＤＶｏｘｓ」をサブＦＢ学習値ＶａｆｓｆｂｇとしてバックアップＲＡＭ８４に記憶してもよい。
この場合、サブフィードバック制御が中止される期間、サブフィードバック量ＶａｆｓｆｂとしてＫｉ・Ｖａｆｓｆｂｇを使用すればよい。このとき、上記（５）式におけるＶａｆｓｆｂは「０」に設定される。更に、この場合、サブフィードバック制御開始時おける出力偏差量の積分値ＳＤＶｏｘｓの初期値としてサブＦＢ学習値Ｖａｆｓｆｂｇを採用すればよい。
・本装置は、サブＦＢ学習値Ｖａｆｓｆｂｇの更新を、下流側空燃比センサ６８の出力値Ｖｏｘｓが理論空燃比相当値Ｖｓｔ（０．５Ｖ）を横切った直後（リッチ・リーン反転時）に行うように構成され得る。
・本装置のパージ制御弁４９は、デューティ信号により開度が調節されるＤＣモータ形式の弁、及び、ステップモータを使用して開度調整を行う弁、等であってもよい。
・本装置は、例えば、Ｖ型エンジンにも適用することができる。その場合、Ｖ型エンジンは右バンクに属する２以上の気筒の排気集合部よりも下流に右バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）を備え、左バンクに属する２以上の気筒の排気集合部よりも下流に左バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒以外の残りの２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）と、を備えることができる。更に、Ｖ型エンジンは、右バンク上流側触媒の上流及び下流に右バンク用の上流側空燃比センサ及び下流側空燃比センサを備え、左バンク上流側触媒の上流及び下流に左バンク用の上流側空燃比センサ及び下流側空燃比センサを備えることができる。この場合、右バンク用のメインフィードバック制御及びサブフィードバック制御が実行され、それとは独立して左バンク用のメインフィードバック制御及びサブフィードバック制御が実行される。
【図１】
2010089887.tif 000003
【図２】
2010089887.tif 000004
【図３】
2010089887.tif 000005
【図４】
2010089887.tif 000006
【図５】
2010089887.tif 000007
【図６】
2010089887.tif 000008
【図７】
2010089887.tif 000009
【図８】
2010089887.tif 000010
【図９】
2010089887.tif 000011
【図１０】
2010089887.tif 000012
【図１１】
2010089887.tif 000013
【図１２】
2010089887.tif 000014
【図１３】
2010089887.tif 000015
【図１４】
2010089887.tif 000016
【図１５】
2010089887.tif 000017
【図１６】
2010089887.tif 000018
【手続補正書】
【提出日】平成24年4月25日(2012.4.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒のそれぞれに対応して配設されるとともに同２以上の気筒のそれぞれの燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成するパージ通路部と、
前記パージ通路部を通して前記機関の吸気通路に流入する前記蒸発燃料ガスの量である蒸発燃料ガスパージ量を制御するパージ量制御手段と、
前記排気集合部、又は、前記排気通路の前記排気集合部と前記触媒との間に配設され、前記触媒を通過する前の排ガスが接触する拡散抵抗層と、同拡散抵抗層に覆われ且つ同拡散抵抗層を通過して到達した排ガスの空燃比に応じた出力値を出力する空燃比検出素子と、を有する上流側空燃比センサと、
前記触媒を通過した後の排ガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記上流側空燃比センサの出力値により表される空燃比が理論空燃比に一致するように前記燃料噴射弁から噴射される燃料の量である燃料噴射量をフィードバック制御する空燃比フィードバック制御手段と、
前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じているか否かの空燃比気筒間インバランス判定を実行するインバランス判定手段と、
を備えた内燃機関の空燃比気筒間インバランス判定装置において、
前記インバランス判定手段は、
前記フィードバック制御が実行されているときの前記下流側空燃比センサの出力値に基づいて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得する判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値以上であるか否かを判定するとともに同インバランス判定用パラメータが同異常判定閾値以上であると判定したとき前記気筒別空燃比の間に不均衡が生じていると判定する判定実行手段と、
前記吸気通路に流入する前記蒸発燃料ガスが前記インバランス判定用パラメータを変化させるような状態である蒸発燃料ガス影響発生状態が発生しているか否かを判定する蒸発燃料ガス影響発生判定手段と、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していると判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を禁止する判定禁止手段と、
を備え、更に、
前記空燃比フィードバック制御手段は、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を理論空燃比に応じた値に一致させるためのサブフィードバック量を同下流側空燃比センサの出力値に基いて更新するサブフィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記少なくとも２以上の気筒の各燃焼室に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量を同各気筒の燃焼室に流入する空気量である筒内吸入空気量に基いて決定するとともに、少なくとも前記上流側空燃比センサの出力値及び前記サブフィードバック量に基づき同基本燃料噴射量を補正するためのメインフィードバック量を更新し、同基本燃料噴射量を同メインフィードバック量により補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射量制御手段と、
を含み、
前記判定用パラメータ取得手段は、更に、
所定の第３更新タイミングが到来する毎に前記サブフィードバック量の学習値を前記サブフィードバック量に基づいて更新する手段であって同学習値が同サブフィードバック量の定常成分に接近するように同学習値を更新するサブフィードバック量学習手段と、
前記サブフィードバック量の学習値が大きくなるほど前記インバランス判定用パラメータが大きくなるように同サブフィードバック量の学習値に基づいて同インバランス判定用パラメータを算出するパラメータ算出手段と、
を含む空燃比気筒間インバランス判定装置。
【請求項２】
請求項１に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記燃料噴射量制御手段は、
前記蒸発燃料ガスパージ量が０でないことを含む所定の蒸発燃料ガス濃度学習値更新条件が成立する毎に少なくとも前記上流側空燃比センサの出力値に基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値として更新するとともに同蒸発燃料ガス濃度学習値にも基いて前記燃料噴射量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、
前記機関の始動後から前記蒸発燃料ガス濃度学習値更新条件が成立した回数である濃度学習値更新機会回数が所定の第１機会回数閾値未満であるか否かを判定するとともに、同濃度学習値更新機会回数が同第１機会回数閾値未満であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していると判定するように構成された、
空燃比気筒間インバランス判定装置。
【請求項３】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒のそれぞれに対応して配設されるとともに同２以上の気筒のそれぞれの燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するための通路を構成するパージ通路部と、
前記パージ通路部を通して前記機関の吸気通路に流入する前記蒸発燃料ガスの量である蒸発燃料ガスパージ量を制御するパージ量制御手段と、
前記排気集合部、又は、前記排気通路の前記排気集合部と前記触媒との間に配設され、前記触媒を通過する前の排ガスが接触する拡散抵抗層と、同拡散抵抗層に覆われ且つ同拡散抵抗層を通過して到達した排ガスの空燃比に応じた出力値を出力する空燃比検出素子と、を有する上流側空燃比センサと、
前記触媒を通過した後の排ガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記上流側空燃比センサの出力値により表される空燃比が理論空燃比に一致するように前記燃料噴射弁から噴射される燃料の量である燃料噴射量をフィードバック制御する空燃比フィードバック制御手段と、
前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じているか否かの空燃比気筒間インバランス判定を実行するインバランス判定手段と、
を備えた内燃機関の空燃比気筒間インバランス判定装置において、
前記インバランス判定手段は、
前記フィードバック制御が実行されているときの前記下流側空燃比センサの出力値に基づいて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得する判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値以上であるか否かを判定するとともに同インバランス判定用パラメータが同異常判定閾値以上であると判定したとき前記気筒別空燃比の間に不均衡が生じていると判定する判定実行手段と、
前記吸気通路に流入する前記蒸発燃料ガスが前記インバランス判定用パラメータを変化させるような状態である蒸発燃料ガス影響発生状態が発生しているか否かを判定する蒸発燃料ガス影響発生判定手段と、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していると判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を禁止する判定禁止手段と、
を備え、
前記空燃比フィードバック制御手段は、
前記蒸発燃料ガスパージ量が０でないことを含む所定の蒸発燃料ガス濃度学習値更新条件が成立する毎に少なくとも前記上流側空燃比センサの出力値に基いて前記蒸発燃料ガスの濃度に関連する値を蒸発燃料ガス濃度学習値として更新するとともに同蒸発燃料ガス濃度学習値にも基いて前記燃料噴射量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、
前記機関の始動後から前記蒸発燃料ガス濃度学習値更新条件が成立した回数である濃度学習値更新機会回数が所定の第１機会回数閾値未満であるか否かを判定するとともに、同濃度学習値更新機会回数が同第１機会回数閾値未満であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していると判定するように構成され、
前記パージ量制御手段は、
前記濃度学習値更新機会回数が前記第１機会回数閾値よりも小さい第２機会回数閾値以下であるときの蒸発燃料ガスパージ量を、同濃度学習値更新機会回数が前記第１機会回数閾値以上であるときの蒸発燃料ガスパージ量よりも小さくするように前記蒸発燃料ガスパージ量を制御するように構成され、
前記蒸発燃料ガス影響発生判定手段は、更に、
前記濃度学習値更新機会回数が前記第２機会回数閾値以下であるか否かを判定するとともに、同濃度学習値更新機会回数が同第２機会回数閾値以下であると判定されるとき前記蒸発燃料ガス影響発生状態が発生していないと判定するように構成され、
前記判定禁止手段は、
前記蒸発燃料ガス影響発生判定手段により前記蒸発燃料ガス影響発生状態が発生していないと判定されるとき前記判定実行手段による前記インバランス判定用パラメータに基づく判定を許容するように構成された、
空燃比気筒間インバランス判定装置。
【請求項４】
請求項３に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記空燃比フィードバック制御手段は、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を理論空燃比に応じた値に一致させるためのサブフィードバック量を同下流側空燃比センサの出力値に基いて更新するサブフィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記少なくとも２以上の気筒の各燃焼室に供給される混合気の空燃比を理論空燃比に一致させるための基本燃料噴射量を同各気筒の燃焼室に流入する空気量である筒内吸入空気量に基いて決定するとともに、少なくとも前記上流側空燃比センサの出力値及び前記サブフィードバック量に基づき同基本燃料噴射量を補正するためのメインフィードバック量を更新し、同基本燃料噴射量を同メインフィードバック量により補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射量制御手段と、
を含み、
前記判定用パラメータ取得手段は、
所定の第３更新タイミングが到来する毎に前記サブフィードバック量の学習値を前記サブフィードバック量に基づいて更新する手段であって同学習値が同サブフィードバック量の定常成分に接近するように同学習値を更新するサブフィードバック量学習手段と、
前記サブフィードバック量の学習値に基づいて前記インバランス判定用パラメータを算出するパラメータ算出手段と、
を含む空燃比気筒間インバランス判定装置。
【請求項５】
請求項４に記載の内燃機関の空燃比気筒間インバランス判定装置において、
前記空燃比フィードバック制御手段は、
前記パージ量制御手段により前記蒸発燃料ガスパージ量が０とされていないときの前記メインフィードバック量の平均値が、前記基本燃料噴射量を補正しない値である同メインフィードバック量の基準値よりも小さい第１閾値以下であるとき及び同基準値よりも大きい第２閾値以上であるとき前記蒸発燃料ガス濃度学習値を変更するように構成された空燃比気筒間インバランス判定装置。
【国際調査報告】
2010089887.tif 000019
2010089887.tif 000020
2010089887.tif 000021
2010089887.tif 000022