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