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