(57)【要約】【課題】デュアルインジェクションシステムを備えた多気筒内燃機関において、燃料噴射弁の異常に起因する「気筒間空燃比ばらつき」発生の判定を早期且つ確実に行うこと。【解決手段】噴射モード（Ｐ，Ｄ，ＰＤモード）毎に、触媒下流の空燃比センサ出力値と理論空燃比相当値の偏差の積算値（総和値）が個別に算出される。現在噴射モード対応総和値と触媒上流の空燃比センサ出力値とに基づいて空燃比フィードバック制御が行われる。「空燃比ＡＦばらつき」発生中は触媒上流空燃比センサ出力値の「リッチずれ」により現在噴射モード対応総和値が燃料増量方向に増大する現象を用いて、現在噴射モード対応総和値がガード値Guardに達したとき「空燃比ＡＦばらつき」発生が検出される。Ｐ（Ｄ）モード時、Ｐ（Ｄ）モード用の総和値SUMp（SUMd）が増量方向の値で且つ「SUMp（SUMd）−SUMd（SUMp）＞Ａ」が成立する場合、噴射モードがＰ（Ｄ）モードに固定される。【選択図】図１０
2010169038.tif 000002
【特許請求の範囲】
【請求項１】
２以上の気筒を有する内燃機関における各気筒から延びるそれぞれの排気通路が集合してなる集合排気通路に配設された触媒と、
前記触媒よりも上流の前記集合排気通路に配設された上流側空燃比センサと、
前記触媒よりも下流の前記集合排気通路に配設された下流側空燃比センサと、
吸気弁よりも上流の吸気通路にて燃料を噴射するポート噴射弁と、
燃焼室内にて燃料を噴射する筒内噴射弁と、
を備えた内燃機関に適用された、多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記内燃機関の運転状態に基づいて、少なくとも前記ポート噴射弁のみから燃料が噴射されるポート噴射モードと前記筒内噴射弁のみから燃料が噴射される筒内噴射モードとのうちから噴射モードを選択モードとして選択する選択手段と、
前記選択モードが前記ポート噴射モードである場合において、前記下流側空燃比センサの出力値と理論空燃比に相当する前記出力値の目標値との偏差に相当する値を積算して更新されていくポート偏差積分値を算出するとともに、前記選択モードが前記筒内噴射モードである場合において、前記下流側空燃比センサの出力値と前記目標値との偏差に相当する値を積算して更新されていく筒内偏差積分値を前記ポート偏差積分値とは別個に算出する積分値算出手段と、
前記ポート偏差積分値及び前記筒内偏差積分値のうち前記選択モードに対応する偏差積分値である選択偏差積分値と、前記上流側空燃比センサの出力値とに少なくとも基づいて、前記ポート噴射弁及び前記筒内噴射弁のうち前記選択モードに対応する噴射弁である選択噴射弁から噴射される燃料の量を調整することで空燃比を前記理論空燃比に一致するようにフィードバック制御する空燃比制御手段と、
前記選択偏差積分値に基づいて、前記２以上の気筒間についての空燃比のばらつきが発生していると判定する判定手段と、
を備えた多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記選択手段は、
前記選択モードが前記ポート噴射モードである場合において、前記ポート偏差積分値に基づく値が前記ポート噴射弁から噴射される燃料の量を増加させる方向である増量方向の値であって、且つ、前記増量方向について前記ポート偏差積分値に基づく値が前記筒内偏差積分値に基づく値に対して大きい量が所定値を超えているとき、前記選択モードを前記ポート噴射モードに固定するように構成された、多気筒内燃機関の気筒間空燃比ばらつき判定装置。
【請求項２】
請求項１に記載の多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記選択モードが前記ポート噴射モードである場合において、前記ポート偏差積分値を用いて前記ポート偏差積分値の定常的な成分を表すポート学習値を算出・更新するとともに前記更新によるポート学習値の変化量に相当する分を前記ポート偏差積分値から差し引き、前記選択モードが前記筒内噴射モードである場合において、前記筒内偏差積分値を用いて前記筒内偏差積分値の定常的な成分を表す筒内学習値を算出・更新するとともに前記更新による筒内学習値の変化量に相当する分を前記筒内偏差積分値から差し引く、学習手段を備え、
前記選択手段は、
前記選択モードが前記ポート噴射モードである場合において、前記ポート学習値が前記増量方向の値であって、且つ、前記増量方向について前記ポート学習値が前記筒内学習値に対して大きい量が前記所定値を超えているとき、前記選択モードを前記ポート噴射モードに固定するように構成された、多気筒内燃機関の気筒間空燃比ばらつき判定装置。
【請求項３】
２以上の気筒を有する内燃機関における各気筒から延びるそれぞれの排気通路が集合してなる集合排気通路に配設された触媒と、
前記触媒よりも上流の前記集合排気通路に配設された上流側空燃比センサと、
前記触媒よりも下流の前記集合排気通路に配設された下流側空燃比センサと、
吸気弁よりも上流の吸気通路にて燃料を噴射するポート噴射弁と、
燃焼室内にて燃料を噴射する筒内噴射弁と、
を備えた内燃機関に適用された、多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記内燃機関の運転状態に基づいて、少なくとも前記ポート噴射弁のみから燃料が噴射されるポート噴射モードと前記筒内噴射弁のみから燃料が噴射される筒内噴射モードとのうちから噴射モードを選択モードとして選択する選択手段と、
前記選択モードが前記ポート噴射モードである場合において、前記下流側空燃比センサの出力値と理論空燃比に相当する前記出力値の目標値との偏差に相当する値を積算して更新されていくポート偏差積分値を算出するとともに、前記選択モードが前記筒内噴射モードである場合において、前記下流側空燃比センサの出力値と前記目標値との偏差に相当する値を積算して更新されていく筒内偏差積分値を前記ポート偏差積分値とは別個に算出する積分値算出手段と、
前記ポート偏差積分値及び前記筒内偏差積分値のうち前記選択モードに対応する偏差積分値である選択偏差積分値と、前記上流側空燃比センサの出力値とに少なくとも基づいて、前記ポート噴射弁及び前記筒内噴射弁のうち前記選択モードに対応する噴射弁である選択噴射弁から噴射される燃料の量を調整することで空燃比を前記理論空燃比に一致するようにフィードバック制御する空燃比制御手段と、
前記選択偏差積分値に基づいて、前記２以上の気筒間についての空燃比のばらつきが発生していると判定する判定手段と、
を備えた多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記選択手段は、
前記選択モードが前記筒内噴射モードである場合において、前記筒内偏差積分値に基づく値が前記筒内噴射弁から噴射される燃料の量を増加させる方向である増量方向の値であって、且つ、前記増量方向について前記筒内偏差積分値に基づく値が前記ポート偏差積分値に基づく値に対して大きい量が所定値を超えているとき、前記選択モードを前記筒内噴射モードに固定するように構成された、多気筒内燃機関の気筒間空燃比ばらつき判定装置。
【請求項４】
請求項３に記載の多気筒内燃機関の気筒間空燃比ばらつき判定装置であって、
前記選択モードが前記ポート噴射モードである場合において、前記ポート偏差積分値を用いて前記ポート偏差積分値の定常的な成分を表すポート学習値を算出・更新するとともに前記更新によるポート学習値の変化量に相当する分を前記ポート偏差積分値から差し引き、前記選択モードが前記筒内噴射モードである場合において、前記筒内偏差積分値を用いて前記筒内偏差積分値の定常的な成分を表す筒内学習値を算出・更新するとともに前記更新による筒内学習値の変化量に相当する分を前記筒内偏差積分値から差し引く、学習手段を備え、
前記選択手段は、
前記選択モードが前記筒内噴射モードである場合において、前記筒内学習値が前記増量方向の値であって、且つ、前記増量方向について前記筒内学習値が前記ポート学習値に対して大きい量が前記所定値を超えているとき、前記選択モードを前記筒内噴射モードに固定するように構成された、多気筒内燃機関の気筒間空燃比ばらつき判定装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の多気筒内燃機関の気筒間空燃比ばらつき判定装置において、
前記判定手段は、
前記選択偏差積分値が前記増量方向の所定のガード値に達したとき、前記２以上の気筒間についての空燃比のばらつきが発生していると判定するように構成された多気筒内燃機関の気筒間空燃比ばらつき判定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関に適用され、排気通路に配設された触媒の上下流にそれぞれ配設された上流側空燃比センサ及び下流側空燃比センサの出力値に基づいて空燃比をフィードバック制御するとともに、気筒間の空燃比ばらつきを判定（検出）する装置に関する。以下、「内燃機関」を、単に「機関」と称呼することもある。
【背景技術】
【０００２】
従来より、この種の装置として、例えば、特許文献１に開示されたものが知られている。この装置では、各気筒から延びるそれぞれの排気通路が集合してなる集合排気通路に触媒が配設され、且つ、その触媒の上下流の集合排気通路に上流側空燃比センサ及び下流側空燃比センサがそれぞれ配設されている。下流側空燃比センサの出力値と目標空燃比（理論空燃比）に相当する目標値との偏差を比例・積分・微分処理（ＰＩＤ処理）してフィードバック補正量が算出される。このフィードバック補正量で上流側空燃比センサの出力値を補正した値に基づいて、集合排気通路内を通過する排ガス（混合排ガス）の空燃比が目標空燃比（理論空燃比）になるようにポート噴射弁から噴射される燃料の量がフィードバック制御されるようになっている。ポート噴射弁とは、吸気弁よりも上流の吸気通路（吸気ポート）にて燃料を噴射する燃料噴射弁である。
【０００３】
一般に、燃料噴射弁から噴射される燃料の量を決定するために使用されるエアフローメータにより計測される吸入空気流量と実際の空気流量との差（エアフローメータの誤差）、燃料噴射弁に噴射指示される指令燃料噴射量と実際に噴射された燃料の量との差（燃料噴射弁の誤差）等（以下、これらを「燃料噴射量の誤差」と総称する。）が発生し得る。
【０００４】
上記フィードバック補正量には、積分項（Ｉ項）の値、即ち、上記「偏差」を積算して更新されていく偏差積分値にフィードバックゲインを乗じた値が含まれている。これにより、上記「燃料噴射量の誤差」が発生していても、上述したフィードバック制御の実行により、「燃料噴射量の誤差」が偏差積分値（積分項）により補償され得、この結果、空燃比を目標空燃比に一致・収束させることができる。換言すれば、偏差積分値（積分項）の値は、「燃料噴射量の誤差」の大きさを表す値となり得る。
【０００５】
特許文献１に記載された装置では、このような性格を有する偏差積分値の「学習処理」が実行されるようになっている。具体的には、所定のタイミングが到来する毎に、偏差積分値の定常的な成分（具体的には、偏差積分値をローパスフィルタ処理した値）が学習値（偏差積分値の定常的な成分を表す値）を更新するための更新値として取得される。その更新値はその時点でバックアップＲＡＭ（ＳＲＡＭ）に記憶されている学習値に積算されて学習値が更新される。そして、その更新値の分がその時点での偏差積分値から差し引かれる。
【０００６】
このように、所定のタイミングが到来する毎に、偏差積分値と学習値の和（以下、「総和値」と称呼する。）を変化させることなく偏差積分値の定常的な成分が学習値に移し変えられていく。即ち、総和値が上記フィードバック補正量における実質的な偏差積分値として機能する。換言すれば、特許文献１に記載された装置では、総和値に基づく（総和値を含む）フィードバック補正量に基づいて空燃比がフィードバック制御されるようになっている。
【０００７】
ところで、多気筒内燃機関においては、気筒間の燃料噴射弁からの噴射量のばらつき、吸気弁の最大リフト量のばらつき、ＥＧＲ機構により吸気系に還流されたＥＧＲガス量の気筒毎の分配のばらつき等が発生し得る。係る気筒間での特性のばらつきが発生すると、気筒間にて空燃比のばらつき（気筒間空燃比ばらつき）が発生し得る。気筒間空燃比ばらつきが発生している場合、混合排ガスの空燃比が理論空燃比に一致していても、空燃比が（理論空燃比よりも）リッチとなる気筒（リッチ気筒）と空燃比が（理論空燃比よりも）リーンとなる気筒（リーン気筒）が必ず存在し得る。
【０００８】
一般に、リッチ気筒からは水素が排出される。リッチ気筒の空燃比のリッチの程度が大きいほど、リッチ気筒から排出される排ガスの水素濃度が大きくなる（後述する図５を参照）。他方、混合排ガスの空燃比が理論空燃比に一致している場合において、気筒間空燃比ばらつきの程度が大きいほど、リッチ気筒の空燃比はよりリッチとなる。従って、気筒間空燃比ばらつきの程度が大きいほど、リッチ気筒から排出される排ガスの水素濃度（従って、混合排ガスの水素濃度）がより大きくなる（後述する図７を参照）。
【０００９】
一般に、上流側空燃比センサとして、酸素濃度センサ（特に、限界電流式酸素濃度センサ）が使用される。排ガス中に水素が含まれる場合、排ガスの水素濃度が大きいほど、酸素濃度センサの出力は、排ガスの真の空燃比に対してよりリッチ側にずれた空燃比を示すことが知られている。この現象を「リッチずれ」と称呼する。この「リッチずれ」は、酸素分子よりも小さい水素分子が酸素分子よりも先に酸素濃度センサの検出部に進入することで同検出部内にて酸素分子がイオン化される反応が発生し難くなることに起因すると考えられる。
【００１０】
以上より、混合排ガスの空燃比が理論空燃比に一致している場合において、気筒間空燃比ばらつきの程度が大きいほど、上記上流側空燃比センサの出力は、「リッチずれ」に起因して、混合排ガスの真の空燃比（即ち、理論空燃比）に対してよりリッチ側にずれた空燃比を示す。
【００１１】
従って、上述したフィードバック制御中において、上流側空燃比センサ出力に「リッチずれ」が発生すると、燃料噴射量が「リッチずれ」の分だけ減量されて、混合排ガスの空燃比が「リッチずれ」の分だけ理論空燃比よりもリーンの空燃比に調整されようとする。このため、触媒には空燃比が理論空燃比よりもリーンの排ガスが流入し、この結果、下流側空燃比センサに到達する排ガスの空燃比が理論空燃比よりもリーンとなる状態が継続する。
【００１２】
このように、下流側空燃比センサに到達する排ガスの空燃比が理論空燃比よりもリーンとなる状態が継続すると、上述した偏差積分値（或いは、学習値）が、燃料噴射量を増加させる方向（増量方向）に次第に増大していく。換言すれば、上述したフィードバック制御中において、「気筒間空燃比ばらつき」が発生している場合、上述した偏差積分値（或いは、学習値）が増量方向に次第に増大していく。
【００１３】
係る知見に基づき、本出願人は、特願２００７−１９２４７４号（非公知特許文献）において、上述した偏差積分値（或いは、学習値）が増量方向の所定のガード値に達したときに「気筒間空燃ばらつき」が発生していると判定することを既に提案している。
【００１４】
ところで、近年、燃焼効率の向上、低燃費化を達成するため、燃焼室内にて燃料を直接噴射する燃料噴射弁（以下、「筒内噴射弁」と称呼する。）を主たる燃料噴射弁として備えるとともに、機関始動時の始動性の確保等のために上記ポート噴射弁をも従たる燃料噴射弁として備えた内燃機関が開発されてきている（例えば、特許文献２を参照。）。以下、このように筒内噴射弁とポート噴射弁の２つの燃料噴射弁を備えたシステムを「デュアルインジェクションシステム」と呼ぶ。
【００１５】
係るデュアルインジェクションシステムでは、通常、ポート噴射弁のみから燃料が噴射されるポート噴射モードと、筒内噴射弁のみから燃料が噴射される筒内噴射モードと、ポート噴射弁及び筒内噴射弁から燃料が噴射される両噴射モードとが、機関の運転状態に応じて使い分けられる（後述する図９を参照）。本発明者は、このようなデュアルインジェクションシステムを備えた多気筒内燃機関に対して、上述した『偏差積分値（或いは、学習値）が増量方向の所定のガード値に達したときに「気筒間空燃ばらつき」が発生していると判定する装置』を適用した場合、新たな問題が発生することを見出した。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００５−１１３７２９号公報
【特許文献２】特開２００４−６０４７４号公報
【発明の概要】
【００１７】
以下、前記新たな問題について具体的に説明する。一般に、デュアルインジェクションシステムを備えた多気筒内燃機関に備えられている複数のポート噴射弁及び複数の筒内噴射弁のうち、複数のポート噴射弁（の一部）と複数の筒内噴射弁（の一部）との両方に同時に異常（弁のつまり等、失火の発生を含む。）が発生することは稀である。例えば、複数のポート噴射弁（の一部）のみに異常が発生している場合を想定する。その他の構成部材の原因による「気筒間空燃比ばらつき」は発生しないものとする。また、何れの噴射モードが選択されていても、１種類の偏差積分値（或いは、学習値）が算出・更新されていくものとする。
【００１８】
この場合、ポート噴射モードでは、「気筒間空燃比ばらつき」が発生することで上流側空燃比センサに「リッチずれ」が発生する。従って、上流側空燃比センサ出力値に基づいて、混合排ガスの空燃比が理論空燃比よりもリーンの空燃比に調整されようとする。この結果、ポート噴射モードが継続する場合、偏差積分値（或いは、学習値）が増量方向に次第に増大していく。これに対し、筒内噴射モードでは、「気筒間空燃比ばらつき」が発生しないことで上流側空燃比センサに「リッチずれ」が発生しない。従って、上流側空燃比センサ出力値に基づいて、混合排ガスの空燃比が理論空燃比そのものに調整されようとする。この結果、筒内噴射モードが継続する場合、偏差積分値（或いは、学習値）がゼロに向けて収束していく。
【００１９】
従って、ポート噴射モードが選択される運転状態が比較的長時間に亘って継続する場合、偏差積分値（或いは、学習値）が増量方向の所定のガード値に達し得るから、「気筒間空燃比ばらつき」が発生していると判定され得る。一方、機関の運転状態が頻繁に変動する場合、選択される噴射モードがポート噴射モードと筒内噴射モード（及び、両噴射モード）の間で頻繁に切り替わり得る。このような場合、ポート噴射モードにおいて偏差積分値（或いは、学習値）が増量方向に増大していっても、その後の筒内噴射モードにおいて偏差積分値（或いは、学習値）がゼロに向けて減少していく（後述する図１０（ａ）を参照）。
【００２０】
このため、噴射モードがポート噴射モードと筒内噴射モードとの間で頻繁に切り替わる場合、偏差積分値（或いは、学習値）が増量方向の所定のガード値に達し得ず（或いは、ガード値に達するまでに長時間を要し）、この結果、「気筒間空燃比ばらつき」が発生していると判定され得ない（或いは、判定までに長時間を要する）という問題が発生する。
【００２１】
本発明は、係る問題に対処するためになされたものであり、その目的は、デュアルインジェクションシステムを備えた多気筒内燃機関において、燃料噴射弁の異常に起因する「気筒間空燃比ばらつき」発生の判定を早期且つ確実に行うことができる、多気筒内燃機関の気筒間空燃比ばらつき判定装置を提供することにある。
【００２２】
本発明に係るデュアルインジェクションシステムを備えた多気筒内燃機関の気筒間空燃比ばらつき判定装置は、各気筒から延びるそれぞれの排気通路が集合してなる集合排気通路において、触媒（例えば、三元触媒）と、触媒の上下流に上流側空燃比センサ及び下流側空燃比センサとを備える多気筒内燃機関に適用される。ここで、特に、上流側空燃比センサとしては、排ガス中に水素が含まれる場合に上述した「リッチずれ」が発生し得る酸素濃度センサ（例えば、限界電流式酸素濃度センサ）が使用される。下流側空燃比センサとしては、例えば、起電力式酸素濃度センサが使用され得る。
【００２３】
本発明に係る判定装置は、選択手段と、積分値算出手段と、空燃比制御手段と、判定手段とを備える。選択手段では、内燃機関の運転状態に基づいて、少なくとも前記ポート噴射モードと前記筒内噴射モードとのうちから（１つの）噴射モードが選択モードとして選択される。ポート噴射モード及び筒内噴射モードに加えて、前記両噴射モードが選択モードとして選択されてもよい。
【００２４】
積分値算出手段では、ポート噴射モードが選択されている場合、前記偏差積分値としてポート偏差積分値が算出・更新され、筒内噴射モードが選択されている場合、前記偏差積分値として筒内偏差積分値が前記ポート偏差積分値とは別個に算出・更新される。即ち、選択モードが切り替わる毎に、切替後の新たな選択モードに対応する偏差積分値が、その切替時点での値から更新されていく。切替後の新たな選択モードに対応しない偏差積分値は、その切替時点での値で一定に維持される。
【００２５】
空燃比制御手段では、選択偏差積分値（ポート偏差積分値及び筒内偏差積分値のうち選択モードに対応する偏差積分値）と、上流側空燃比センサの出力値とに少なくとも基づいて、選択噴射弁（ポート噴射弁及び筒内噴射弁のうち選択モードに対応する噴射弁）から噴射される燃料の量を調整することで（前記混合排ガスの）空燃比が前記理論空燃比に一致するようにフィードバック制御される。
【００２６】
そして、判定手段では、選択偏差積分値に基づいて、「気筒間空燃比ばらつき」が発生していると判定される。具体的には、例えば、選択偏差積分値が前記増量方向の所定のガード値に達したとき、「気筒間空燃比ばらつき」が発生していると判定され得る。
【００２７】
上記構成によれば、偏差積分値が噴射モード毎に個別に算出・更新される。従って、上述した「複数のポート噴射弁（の一部）のみに異常（失火の発生を含む）が発生している場合」を再び例にとると、ポート噴射モードが選択される毎に、「気筒間空燃比ばらつき」（「リッチずれ」）に起因してポート偏差積分値が増量方向に増大し得る（筒内偏差積分値は一定に維持される）。一方、筒内噴射モードが選択された場合、「気筒間空燃比ばらつき」（「リッチずれ」）が発生しないことで筒内偏差積分値がゼロに収束していく一方で、ポート偏差積分値は一定に維持される。
【００２８】
このように、上述した「何れの噴射モードが選択されていても１種類の偏差積分値（或いは、学習値）が算出・更新されていく」場合と異なり、筒内噴射モードが選択されてもポート偏差積分値が減少していかない。従って、噴射モードがポート噴射モードと筒内噴射モードとの間で頻繁に切り替わる場合において、ポート偏差積分値が増量方向のガード値に到達する時期、従って、「気筒間空燃比ばらつき」が発生していると判定される時期がより早くなる。
【００２９】
これに加えて、本発明に係る判定装置では、以下の構成により、「気筒間空燃比ばらつき」が発生していると判定される時期が更に一層早くされる。即ち、ポート噴射モードが選択されている場合において、「ポート偏差積分値に基づく値」が増量方向の値であって、且つ、増量方向について「ポート偏差積分値に基づく値」が「筒内偏差積分値に基づく値」に対して大きい量が所定値を超えているとき、選択モードがポート噴射モードに固定される。
【００３０】
ここにおいて、「ポート偏差積分値に基づく値」とは、ポート偏差積分値そのもの、ポート偏差積分値についての上述した学習値（ポート学習値）、或いは、ポート偏差積分値とポート学習値の和、である。同様に、「筒内偏差積分値に基づく値」とは、筒内偏差積分値そのもの、筒内偏差積分値についての上述した学習値（筒内学習値）、或いは、筒内偏差積分値と筒内学習値の和である。
【００３１】
上述した「複数のポート噴射弁（の一部）のみに異常が発生している場合」を再び例にとる。この場合、上述したように、筒内偏差積分値は、筒内噴射モードでは略ゼロに維持され、ポート噴射モードでは（略ゼロにて）一定とされる。一方、ポート偏差積分値は、筒内噴射モードでは一定に維持される一方でポート噴射モードでは増量方向に増大し得る。係る観点に基づくと、ポート噴射モードにて、ポート偏差積分値が増量方向の値となっていて、且つ、増量方向においてポート偏差積分値と筒内偏差積分値との差が所定値を超えたとき、「複数のポート噴射弁（の一部）のみに異常が発生している」と推定することができる。この場合、噴射モードをポート噴射モードに固定すると、ポート偏差積分値を増大させ続けることができ、この結果、ポート偏差積分値が増量方向のガード値に到達する時期をより早くすることができる。上記構成は、係る知見に基づく。
【００３２】
以上のように、本発明に係る判定装置によれば、偏差積分値が噴射モード毎に個別に算出・更新されること、並びに、「複数のポート噴射弁（の一部）のみに異常が発生している」と推定できる場合に噴射モードをポート噴射モードに固定すること、により、ポート噴射弁の異常に起因する「気筒間空燃比ばらつき」発生の判定を早期且つ確実に行うことができる。
【００３３】
また、本発明に係る判定装置では、「複数の筒内噴射弁（の一部）のみに異常が発生している」場合について、上述と同様の知見に基づき、筒内噴射モードが選択されている場合において、「筒内偏差積分値に基づく値」が増量方向の値であって、且つ、増量方向について「筒内偏差積分値に基づく値」が「ポート偏差積分値に基づく値」に対して大きい量が所定値を超えているとき、選択モードが筒内噴射モードに固定される。これにより、筒内噴射弁の異常に起因する「気筒間空燃比ばらつき」発生の判定を早期且つ確実に行うことができる。
【００３４】
以上より、本発明に係る判定装置では、「気筒間空燃比ばらつき」が燃料噴射弁の異常に起因する場合において、異常が発生している燃料噴射弁がポート噴射弁か筒内噴射弁かを特定することもできる。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１実施形態に係る多気筒内燃機関の気筒間空燃比ばらつき判定装置の概略を示した図である。
【図２】図１に示した触媒、上流側空燃比センサ、及び下流側空燃比センサが集合排気通路に配設された様子を示した図である。
【図３】図１に示した上流側空燃比センサの出力と空燃比の関係を示したグラフである。
【図４】図１に示した下流側空燃比センサの出力と空燃比の関係を示したグラフである。
【図５】気筒間ＡＦばらつきが発生していて且つ混合排ガスの空燃比が理論空燃比に一致している場合における各気筒の空燃比の一例を示した図である。
【図６】空燃比と排ガスの水素濃度との関係を示したグラフである。
【図７】気筒間ＡＦばらつきの度合いと混合排ガスの水素濃度との関係を示したグラフである。
【図８】気筒間ＡＦばらつきが発生した場合における、総和値の変化の一例を示したタイムチャートである。
【図９】エンジン回転速度及び負荷率と、選択される噴射モードとの関係を規定するテーブルを示したグラフである。
【図１０】噴射モードが頻繁に切り替わる場合においてポート噴射弁の異常に起因する気筒間ＡＦばらつきが発生した場合における、総和値の変化の一例を示したタイムチャートである。
【図１１】図１に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが空燃比フィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵがサブフィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図１４】図１に示したＣＰＵが偏差積分値の学習値を更新するために実行するルーチンを示したフローチャートである。
【図１５】図１に示したＣＰＵが噴射モードの選択を行うために実行するルーチンを示したフローチャートである。
【図１６】図１に示したＣＰＵが気筒間ＡＦばらつきを検出するために実行するルーチンを示したフローチャートである。
【図１７】本発明の第２実施形態に係る気筒間空燃比ばらつき判定装置のＣＰＵが噴射モードの選択を行うために実行するルーチンを示したフローチャートである。
【図１８】本発明の第２実施形態に係る気筒間空燃比ばらつき判定装置のＣＰＵが気筒間ＡＦばらつきを検出するために実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明による多気筒内燃機関の気筒間空燃比ばらつき判定装置の各実施形態について図面を参照しつつ説明する。
【００３７】
（第１実施形態）
図１は、本発明の第１実施形態に係る気筒間空燃比ばらつき判定装置をデュアルインジェクションシステムを備えた（ガソリン）４サイクル火花点火式多気筒内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００３８】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００３９】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及び吸気弁３２の最大リフト量を連続的に変更する可変動弁機構３３、可変動弁機構装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、吸気弁３２よりも上流の吸気ポート３１にて燃料を噴射するポート噴射弁３９Ｐ、燃焼室２５内にて燃料を直接噴射する筒内噴射弁３９Ｄを備えている。
【００４１】
吸気系統４０は、各気筒の吸気ポート３１とそれぞれ接続されたインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、及び吸気管４１内にあって吸気開口面積を可変とするスロットルバルブ４３、スロットルバルブ４３のアクチュエータ４３ａを備えている。吸気ポート３１、及び吸気管４１は、吸気通路を構成している。
【００４２】
排気系統５０は、各気筒の排気ポート３４とそれぞれ接続されたエキゾーストマニホールド５１、エキゾーストマニホールド５１の集合部に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された触媒５３（三元触媒）、触媒５３よりも下流のエキゾーストパイプ５２に配設された触媒５４（三元触媒）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００４３】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、上流側空燃比センサ６６、下流側空燃比センサ６７、及びアクセル開度センサ６８を備えている。
【００４４】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量（吸入空気流量）Gaに応じた信号を出力するようになっている。スロットルポジションセンサ６２は、スロットルバルブ４３の開度を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００４５】
カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００４６】
図２に示すように、上流側空燃比センサ６６は、各気筒から延びるそれぞれの排気通路が集合してなる集合排気通路において触媒５３よりも上流に配設されている。以下、集合排気通路内を通過する排ガスを「混合排ガス」と称呼する。混合排ガスは、各気筒から排出された排ガスが混合されて得られる排ガスである。
【００４７】
上流側空燃比センサ６６は、所謂「限界電流式酸素濃度センサ」であって、触媒５３に流入する混合排ガスの空燃比を検出し、図３に示したように、検出した空燃比（検出空燃比）に応じた信号Vabyf(V)を出力するようになっている。
【００４８】
図２に示すように、下流側空燃比センサ６７は、集合排気通路において触媒５３よりも下流側に配設されている。下流側空燃比センサ６７は、所謂「濃淡電池型の酸素センサ」である。図４に示したように、下流側空燃比センサ６７は、触媒５３から流出する混合排ガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max(V)及び最小出力値min(V)をそれぞれ出力し、触媒５３から流出する混合排ガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の値（目標空燃比相当目標値Voxsref(V)）を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００４９】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。
【００５０】
インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変動弁機構３３のアクチュエータ３３ａ、イグナイタ３８、ポート噴射弁３９Ｐ、筒内噴射弁３９Ｄ、及びスロットルバルブアクチュエータ４３ａに駆動信号を送出するようになっている。
【００５１】
（空燃比フィードバック制御の概要）
次に、上記のように構成された第１実施形態に係る装置（以下、「本装置」と称呼することもある。）による空燃比フィードバック制御の概要について説明する。本装置は、触媒５３から流出する混合排ガスの空燃比が目標空燃比（＝理論空燃比）となるように機関に供給される混合気の空燃比（従って、触媒５３に流入する混合排ガスの空燃比、以下、単に「空燃比」とも称呼する。）を制御する。
【００５２】
具体的には、本装置では、触媒５３の下流に配設された下流側空燃比センサ６７の出力値Voxs(V)と理論空燃比に相当する目標空燃比相当目標値Voxsref(V)（一定）との偏差についてＰＩＤ処理してフィードバック補正値（サブフィードバック補正量Vafsfb(％)）が求められる。このサブフィードバック補正量Vafsfbにより上流側空燃比センサ６６の出力値Vabyf(V)を補正して得られる値に基づいて、空燃比がフィードバック制御される。なお、下流側空燃比センサ６７の出力値Voxsに基づく空燃比フィードバック制御を、特に「サブフィードバック制御」と呼ぶこともある。
【００５３】
また、本装置では、上記ＰＩＤ処理における積分項（Ｉ項）に含まれる前記偏差の積分値（偏差積分値）について、背景技術の欄に記載した「学習処理」が所定のタイミングが到来する毎に実行される。これにより、所定のタイミングが到来する毎に、偏差積分値と学習値の和（＝総和値SUM）を変化させることなく偏差積分値の定常的な成分が学習値に移し変えられていく。上記ＰＩＤ処理における積分項（Ｉ項）は、この総和値SUMにフィードバックゲインを乗じた値である。以上が、本装置による空燃比フィードバック制御の概要である。この空燃比フィードバック制御の詳細は、後述するルーチンを参照しながら説明する。
【００５４】
（気筒間ＡＦばらつきの発生の検出）
次に、本装置による「気筒間ＡＦばらつき」発生の検出の概要について説明する。「気筒間ＡＦばらつき」とは、気筒間における、燃焼に供される混合気の空燃比のばらつきである。一般に、多気筒（４気筒）を有する内燃機関１０では、気筒間の燃料噴射弁（ポート噴射弁３９Ｐ、筒内噴射弁３９Ｄ）からの噴射量のばらつき、吸気弁３２の最大リフト量のばらつき、ＥＧＲ機構（図示せず）により吸気系に還流されたＥＧＲガス量の気筒毎の分配のばらつき等が発生し得る。このような気筒間での特性のばらつきに起因して、「気筒間ＡＦばらつき」が発生し得る。
【００５５】
図５に示すように、「気筒間ＡＦばらつき」が発生している場合、混合排ガスの空燃比が理論空燃比に一致していても、燃焼に供される混合気の空燃比が理論空燃比よりもリッチとなる気筒（リッチ気筒）と、燃焼に供される混合気の空燃比が理論空燃比よりもリーンとなる気筒（リーン気筒）が必ず存在し得る。図５では、一例として、＃１気筒が「リッチ気筒」に対応し、＃２，＃３，＃４気筒が「リーン気筒」に対応する場合が示されている。
【００５６】
一般に、内燃機関から排出される排ガス中には、燃料と空気（酸素）との反応により、水素ガスが生成される。図６に示すように、排ガスの水素濃度は、空燃比（燃焼に供された混合気の空燃比）が理論空燃比よりもリーンの場合、略ゼロに維持され、空燃比が理論空燃比よりもリッチの場合、リッチの度合いが大きいほど急激に大きくなる特性を有する。従って、「気筒間ＡＦばらつき」が発生していて、且つ混合排ガスの空燃比が理論空燃比に一致している場合、「リーン気筒」からは水素が殆ど排出されない一方で、「リッチ気筒」からは多量の水素が排出され得る。
【００５７】
他方、混合排ガスの空燃比が理論空燃比に一致している場合において、「気筒間ＡＦばらつき」の度合いが大きいほど、「リッチ気筒」の空燃比がよりリッチとなる。従って、図７に示すように、「気筒間ＡＦばらつき」の度合いが大きいほど、「リッチ気筒」から排出される排ガスの水素濃度（従って、混合排ガスの水素濃度）がより大きくなる。
【００５８】
また、上流側空燃比センサ６６は、限界電流式酸素濃度センサである。従って、混合排ガスの水素濃度が大きいほど、上流側空燃比センサ６６の出力値Vabyfは、混合排ガスの真の空燃比に対してよりリッチ側にずれた空燃比を示す。この現象を「リッチずれ」と称呼する。この「リッチずれ」は、酸素分子よりも小さい水素分子が酸素分子よりも先に上流側空燃比センサ６６の検出部に進入することで同検出部内にて酸素分子がイオン化される反応が発生し難くなることに起因すると考えられる。
【００５９】
以上より、混合排ガスの空燃比が理論空燃比に一致している場合において、「気筒間ＡＦばらつき」の度合いが大きいほど、上流側空燃比センサ６６の出力値Vabyfは、「リッチずれ」に起因して、混合排ガスの真の空燃比（＝理論空燃比）に対してよりリッチ側にずれた空燃比を示す。
【００６０】
上述した空燃比フィードバック制御中においては、上流側空燃比センサ６６の出力値Vabyfに基づいて、上流側空燃比センサ６６の出力値Vabyfにより示される空燃比が理論空燃比に一致するように混合排ガスの空燃比が調整される。従って、上流側空燃比センサ６６の出力値Vabyfに「リッチずれ」が発生すると、混合排ガスの空燃比が「リッチずれ」の分だけ理論空燃比よりもリーンの空燃比に調整されようとする。このため、触媒５３には空燃比が理論空燃比よりもリーンの混合排ガスが流入する。この結果、触媒５３の内部がリーン雰囲気となり、下流側空燃比センサ６７に到達する混合排ガスの空燃比が理論空燃比よりもリーンとなる状態が継続する。
【００６１】
このように、下流側空燃比センサ６７に到達する混合排ガスの空燃比が理論空燃比よりもリーンとなる状態が継続すると、上述した総和値SUM（＝偏差積分値＋学習値）が、燃料噴射量を増加させる方向（増量方向）に次第に増大していく。即ち、上述した空燃比フィードバック制御中において「気筒間ＡＦばらつき」に起因して「リッチずれ」が発生している場合、上述した総和値SUMが増量方向に次第に増大していく。なお、このように、総和値SUMが増量方向に次第に増大していくことで、リーン側にずれていた混合排ガスの空燃比が理論空燃比に近づいていく。
【００６２】
このことを利用すれば、総和値SUMが増量方向の所定のガード値Guardに達したときに「気筒間ＡＦばらつき」発生を検出することができる。以下、本例では、総和値SUM（或いは、偏差積分値、学習値）について、正の値が燃料噴射量を増加させる方向（増量方向）に対応し、負の値が燃料噴射量を減少させる方向（減量方向）に対応するものとする。
【００６３】
図８は、上述した空燃比フィードバック制御中において、時刻ｔｓ以前にて総和値SUMが「０」に維持されていて、時刻ｔｓにて、何らかの原因により「気筒間ＡＦばらつき」が発生開始した場合（従って、「リッチずれ」が発生開始した場合）における総和値SUMの変化の一例を示している。図８に示す場合、時刻ｔｓ以降、総和値SUMが増量方向（正の方向）に次第に増大していき、総和値SUMがガード値Guardに達する時刻ｔｅにて、「気筒間ＡＦばらつき」発生が検出され得る。
【００６４】
ところで、デュアルインジェクションシステムを備えた内燃機関１０では、図９に示すように、エンジン回転速度NE、及び負荷率KL（筒内吸入空気量Ｍｃに相当する値）に基づいて、各気筒のポート噴射弁３９Ｐ（計４つの噴射弁）のみから燃料が噴射されるポート噴射モード（Ｐモード）と、各気筒の筒内噴射弁３９Ｄ（計４つの噴射弁）のみから燃料が噴射される筒内噴射モード（Ｄモード）と、各気筒のポート噴射弁３９Ｐ及び筒内噴射弁３９Ｄ（計８つの噴射弁）から燃料が噴射される両噴射モード（ＰＤモード）と、の３つの噴射モードのうちから１つの噴射モードが選択・使用される。アイドリング状態では、Ｐモードが選択される。
【００６５】
以下、「気筒間ＡＦばらつき」が燃料噴射弁（ポート噴射弁３９Ｐ、筒内噴射弁３９Ｄ）の異常（例えば、弁のつまり、失火の発生を含む。）に起因する場合について考える。一般に、複数の（４つの）ポート噴射弁３９Ｐの一部と複数の（４つの）筒内噴射弁３９Ｄの一部との両方に同時に異常が発生することは稀である。
【００６６】
例えば、複数の（４つの）ポート噴射弁３９Ｐの一部のみに異常が発生している場合を想定する。燃料噴射弁以外の構成部材は正常であり、燃料噴射弁以外の構成部材に起因する「気筒間ＡＦばらつき」は発生しないものとする。また、何れの噴射モードが選択されていても、上述した図８に示した場合のように、１種類の総和値SUM（＝偏差積分値SDVoxs＋学習値Learn）が算出・更新されていくものとする。
【００６７】
この場合、Ｐモードでは、燃料が噴射される複数の（４つの）噴射弁の一部に異常が発生しているから「気筒間ＡＦばらつき」が発生する。この結果、上流側空燃比センサ６６に「リッチずれ」が発生する。従って、上述のように、上流側空燃比センサ出力値Vabyfに基づいて、混合排ガスの空燃比が理論空燃比よりもリーンの空燃比に調整されようとする。この結果、Ｐモードが継続する場合、図８に示した場合と同様、総和値SUMが増量方向に次第に増大していく。
【００６８】
これに対し、Ｄモードでは、燃料が噴射される複数の（４つの）噴射弁の全てが正常であるから「気筒間ＡＦばらつき」が発生しない。この結果、上流側空燃比センサ６６に「リッチずれ」が発生しない。従って、上流側空燃比センサ出力値Vabyfに基づいて、混合排ガスの空燃比が理論空燃比そのものに調整されようとする。この結果、Ｄモードが継続する場合、総和値SUMがゼロに向けて収束していく。
【００６９】
また、ＰＤモードでは、燃料が噴射される複数の（８つの）噴射弁の一部に異常が発生しているから「気筒間ＡＦばらつき」が発生する。従って、Ｐモードと同様、ＰＤモードが継続する場合、総和値SUMが増量方向に次第に増大していく。しかしながら、Ｐモードと比べて、全燃料噴射弁の個数に対する「異常が発生している燃料噴射弁の個数」の割合が小さいから、「気筒間ＡＦばらつき」の度合い（従って、上流側空燃比センサ６６の「リッチずれ」の度合い）も小さい。この結果、Ｐモードと比べて、偏差積分値SDVoxs（従って、総和値SUM）の増大速度（増加勾配）は小さくなる。
【００７０】
以上より、Ｐモード（或いは、ＰＤモード）が選択される運転状態が比較的長時間に亘って継続する場合、図８に示した場合と同様、総和値SUMがガード値Guardに達し得るから、「気筒間ＡＦばらつき」発生が早期に検出され得る。
【００７１】
これに対し、機関の運転状態が頻繁に変動する場合、選択される噴射モードが頻繁に切り替わり得る。図１０（ａ）は、噴射モードが頻繁に切り替わる場合において、時刻ｔｓにて複数の（４つの）ポート噴射弁３９Ｐの一部に異常が発生開始した場合における、総和値SUMの変化の一例を示した、図８に対応するタイムチャートである。
【００７２】
図１０（ａ）に示すように、噴射モードが頻繁に切り替わる場合、Ｐモード（或いは、ＰＤモード）が選択されている期間においては、総和値SUMが増量方向に増大し得る（時刻ｔｓ〜ｔ１、ｔ２〜ｔ３、ｔ３〜ｔ４を参照）。上述したように、ＰＤモードでは、Ｐモードと比べて総和値SUMの増加勾配が小さい。一方、Ｄモードが選択されている期間では、総和値SUMがゼロに向けて減少していく（時刻ｔ１〜ｔ２、ｔ４以降を参照）。
【００７３】
このように、Ｄモードが選択されている期間において総和値SUMがゼロに向けて減少していくから、図１０（ａ）に示した例では、総和値SUMがガード値Guardに達し得ない。この結果、「気筒間ＡＦばらつき」発生が検出され得ない。
【００７４】
そこで、本装置では、噴射モード毎に、総和値SUM（＝偏差積分値＋学習値）が個別に算出・更新される。具体的には、Ｐモードでは、Ｐモード用の総和値SUMp（＝偏差積分値SDVoxs＋学習値Learnp）のみが算出・更新され、Ｄモードでは、Ｄモード用の総和値SUMd（＝偏差積分値SDVoxs＋学習値Learnd）のみが算出・更新され、ＰＤモードでは、ＰＤモード用の総和値SUMpd（＝偏差積分値SDVoxs＋学習値Learnpd）のみが算出・更新される。選択されている噴射モードとは異なる噴射モードに対応する総和値（＝偏差積分値＋学習値）は、過去において（その噴射モードが選択されていた期間内において）最後に更新された値で一定に維持される。
【００７５】
そして、本装置では、総和値SUMp，SUMd，SUMpdの何れか（実際には、現在選択されている噴射モードに対応する総和値）がガード値Guardに達したときに「気筒間空燃ばらつき」発生が検出される。
【００７６】
図１０（ｂ）は、係る構成が採用された場合における、図１０（a）に対応するタイムチャートである。図１０（ｂ）から理解できるように、この場合、図１０（ａ）に示した場合と異なり、Ｄモードが選択されている期間（時刻ｔ１〜ｔ２、ｔ４以降を参照）において総和値SUMpが一定に維持される（減少していかない）。従って、図１０（ａ）に示した場合と比べて、総和値（具体的には、総和値SUMp）がガード値Guardに到達する時期（従って、「気筒間空燃比ばらつき」発生が検出される時期）がより早くなる可能性が高い。
【００７７】
しかしながら、図１０（ｂ）に示した場合において、Ｄモード、或いはＰＤモードが選択されている期間においては、総和値SUMpが増大し得ない。この期間内においても、総和値SUMpを増大させ続けることができれば、総和値SUMpがガード値Guardに到達する時期をより早くすることができる。
【００７８】
ここで、図１０（ｂ）に示したように、複数の（４つの）ポート噴射弁３９Ｐの一部のみに異常が発生している場合、Ｄモード用の総和値SUMd（＝偏差積分値SDVoxs＋学習値Learnd）は略ゼロに維持され続ける。一方、Ｐモード用の総和値SUMp（＝偏差積分値SDVoxs＋学習値Learnp）は、Ｄモード（及び、ＰＤモード）では一定に維持されるものの、Ｐモードでは増量方向に増大し得る。
【００７９】
係る観点より、Ｐモードにて、総和値SUMpが増量方向の値（正の値）となっていて、且つ、総和値SUMpから総和値SUMdを減じた値が所定値Ａを超えたとき、「複数の（４つの）ポート噴射弁３９Ｐの一部のみに異常が発生している」と推定され得る。このように推定される場合においてこの推定が正しい場合、以降、噴射モードをＰモードに固定すると、総和値SUMpを増大させ続けることができ、この結果、総和値SUMpがガード値Guardに到達する時期をより早くすることができる。
【００８０】
そこで、本装置では、Ｐモードにおいて、総和値SUMpが増量方向の値（正の値）であって、且つ、総和値SUMpから総和値SUMdを減じた値が所定値Ａを超えた時点以降、その後の運転状態にかかわらず、噴射モードがＰモードに固定される。図１０（ｃ）は、係る構成が採用された場合における、図１０（ｂ）に対応するタイムチャートである。図１０（ｃ）から理解できるように、この場合、図１０（ｂ）に示した場合と異なり、噴射モードがＰモードに固定開始される時刻ｔｆ以降、図９から決定される噴射モードがＰモード以外であっても、噴射モードがＰモードに固定され続ける。従って、時刻ｔｆ以降において（特に、図１０（ｂ）において総和値SUMpの増加が終了する時刻ｔ１以降もなお）、総和値SUMpが増大し続ける。この結果、図１０（ｂ）に示した場合と比べて、総和値SUMpがガード値Guardに到達する時期（従って、「気筒間空燃比ばらつき」発生が検出される時期、図１０（ｃ）では、時刻ｔｅ）がより早くなる。
【００８１】
以上、本装置では、総和値が噴射モード毎に個別に算出・更新されること、並びに、「複数のポート噴射弁３９Ｐの一部のみに異常が発生している」と推定できる場合に噴射モードをポートＰモードに固定すること、により、複数のポート噴射弁３９Ｐの一部の異常に起因する「気筒間ＡＦばらつき」発生の検出を早期且つ確実に行うことができる。加えて、この場合、「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐにあることも特定され得る。なお、機関の運転状態によっては、噴射モードがＰモードへ固定されると、良好な運転状態（燃焼状態）が維持され得なくなる場合も発生し得る。従って、噴射モードのＰモードへ固定は、機関の運転状態が良好に維持され得る限りにおいてのみ行われてもよい。
【００８２】
また、本装置では、上述と同様の知見に基づき、Ｄモードにおいて、総和値SUMdが増量方向の値（正の値）であって、且つ、総和値SUMdから総和値SUMpを減じた値が所定値Ａを超えた時点以降、その後の運転状態にかかわらず、噴射モードがＤモードに固定される。これにより、複数の筒内噴射弁３９Ｄの一部の異常に起因する「気筒間ＡＦばらつき」発生の検出を早期且つ確実に行うことができる。加えて、この場合、「気筒間ＡＦばらつき」発生の原因が筒内噴射弁３９Ｄにあることも特定され得る。なお、噴射モードのＤモードへ固定は、機関の運転状態が良好に維持され得る限りにおいてのみ行われてもよい。以上が、本装置による「気筒間ＡＦばらつき」発生の検出についての概要である。この「気筒間ＡＦばらつき」発生の検出の詳細は、後述するルーチンを参照しながら説明する。
【００８３】
（実際の作動）
次に、上記のように構成された本装置の実際の作動について、電気制御装置７０のＣＰＵ７１が実行する、ＲＯＭ７２に格納されているルーチン（プログラム）をフローチャートにより示した図１１〜図１６を参照しながら説明する。
【００８４】
ＣＰＵ７１は、図１１に示した燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、或る気筒（以下、「燃料噴射気筒」と称呼する。）のクランク角度が前記所定クランク角度になると、ＣＰＵ７１はステップ１１００から処理を開始してステップ１１０５に進み、エアフローメータ６１により計測されている吸入空気流量Gaとエンジン回転速度NEとに基づいて今回の吸気行程において燃焼室２５内に吸入される空気量（筒内吸入空気量Mc）をマップfから求める。
【００８５】
続いて、ＣＰＵ７１はステップ１１１０に進み、上記求めた筒内吸入空気量Mcを目標空燃比abyfr（本例では、理論空燃比）で除することで空燃比を目標空燃比とするための基本燃料噴射量Fbaseを求める。次いで、ＣＰＵ７１はステップ１１１５に進み、全燃料噴射量Fiを、上記求めた基本燃料噴射量Fbaseに後述するルーチンにて計算されている空燃比フィードバック補正量DFiを加えた値に設定する。
【００８６】
次いで、ＣＰＵ７１は、ステップ１１２０に進んで、後述するルーチンにより選択されている現在の噴射モードがＰモードであるか否かを判定し、「Ｙｅｓ」と判定する場合、ステップ１１２５にて、全燃料噴射量Fiに対するポート噴射弁３９Ｐ側の総燃料噴射量の割合（噴射割合Ｒ）を「１」に設定する。ステップ１１２０にて「Ｎｏ」と判定する場合、ＣＰＵ７１は、ステップ１１３０に進んで、現在の噴射モードがＤモードであるか否かを判定し、「Ｙｅｓ」と判定する場合、ステップ１１３５にて噴射割合Ｒを「０」に設定する。ステップ１１３０にて「Ｎｏ」と判定する場合（即ち、現在の噴射モードがＰＤモードの場合）、ＣＰＵ７１は、ステップ１１４０にて、エンジン回転速度NEと筒内吸入空気量Mcと冷却水温THWとに基づいて、噴射割合Ｒ（０＜Ｒ＜１）の値をマップＲから設定する。
【００８７】
ＣＰＵ７１はステップ１１４５に進むと、ポート噴射弁３９Ｐ側の総燃料噴射量Fipを、全燃料噴射量Fiに噴射割合Ｒを乗じた値に設定し、続くステップ１１５０にて、筒内噴射弁３９Ｄ側の総燃料噴射量Fidを、全燃料噴射量Fiに値（１−Ｒ）を乗じた値に設定する。
【００８８】
そして、ＣＰＵ７１はステップ１１５５に進んで、総燃料噴射量Fip,Fidの燃料を噴射するための指示を、燃料噴射気筒に対応する複数（４つ）のポート噴射弁３９Ｐ及び複数（４つ）の筒内噴射弁３９Ｄに対して行い、ステップ１１９５に進んで本ルーチンを一旦終了する。これにより、現在の噴射モードをもって、空燃比フィードバック補正された全燃料噴射量Fiの燃料が、吸気行程を迎える気筒に対して噴射される。
【００８９】
次に、上記空燃比フィードバック補正量DFiの算出について説明する。ＣＰＵ７１は図１２に示したルーチンを図１１のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１２００から処理を開始し、ステップ１２０５に進んで空燃比フィードバック制御条件が成立しているか否かを判定する。空燃比フィードバック制御条件は、例えば、水温センサ６５により検出される機関の冷却水温THWが所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、且つ、上流側・下流側空燃比センサ６６，６７が活性状態にあるときに成立する。
【００９０】
先ず、空燃比フィードバック制御条件が成立している場合について説明する。この場合、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、現時点の上流側空燃比センサ６６の出力値Vabyf(V)と、後述するサブフィードバック補正量Vafsfb(％)と、ステップ１２１０内に記載の式とに基づいて制御用空燃比相当出力値Vabyfs(V)を求める。
【００９１】
続いて、ＣＰＵ７１はステップ１２１５に進んで、上記求めた制御用空燃比相当出力値Vabyfsと、図３に示したマップに基づいて現時点における制御用空燃比abyfsを求める。この空燃比は、触媒５３の上流におけるガスの「みかけの空燃比」である。
【００９２】
次に、ＣＰＵ７１はステップ１２２０に進み、先のステップ１１０５にて求めた最新の（今回の吸気行程についての）筒内吸入空気量Mcを上記求めた制御用空燃比abyfsで除することにより、今回の吸気行程についての筒内燃料供給量Fcを求める。次いで、ＣＰＵ７１はステップ１２２５に進み、上記筒内吸入空気量Mcを目標空燃比abyfrで除することにより、今回の吸気行程についての目標筒内燃料供給量Fcrを求める。
【００９３】
続いて、ＣＰＵ７１はステップ１２３０に進んで、筒内燃料供給量偏差DFcを、目標筒内燃料供給量Fcrから筒内燃料供給量Fcを減じた値に設定する。つまり、筒内燃料供給量偏差DFcは、今回の吸気行程についての燃料の過不足分を表す量となる。
【００９４】
次に、ＣＰＵ７１はステップ１２３５に進み、その時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ１２３０にて求めた筒内燃料供給量偏差DFcを加えることで筒内燃料供給量偏差の積分値SDFcを更新する。
【００９５】
そして、ＣＰＵ７１はステップ１２４０に進んで、上記ステップ１２３０にて求めた筒内燃料供給量偏差DFcと、上記ステップ１２３５にて更新した筒内燃料供給量偏差の積分値SDFcと、ステップ１２４０内に記載の式とに基づいて空燃比フィードバック補正量DFiを求める。ここにおいて、Gpは予め設定された比例ゲイン、Giは予め設定された積分ゲインである。なお、係数KFBはエンジン回転速度NE及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「１」としている。そして、ＣＰＵ７１はステップ１２９５に進んで本ルーチンを一旦終了する。
【００９６】
以上により、空燃比フィードバック補正量DFiが比例積分処理（ＰＩ処理）により求められ、この空燃比フィードバック補正量DFiが前述した図１１のステップ１１１５により全燃料噴射量Fiに反映される。
【００９７】
この結果、今回の吸気行程についての燃料供給量の過不足が補償されるので、空燃比（従って、触媒５３に流入するガスの空燃比）の平均値が目標空燃比abyfr（＝理論空燃比）と略一致せしめられる。
【００９８】
一方、空燃比フィードバック制御条件が成立していない場合、ＣＰＵ７１はステップ１２０５にて「Ｎｏ」と判定してステップ１２４５に進み、空燃比フィードバック補正量DFiを「０」に設定する。これにより、空燃比フィードバック制御に基づく燃料噴射量の補正（図１１のステップ１１１５を参照）が行われない。
【００９９】
次に、下流側空燃比センサ６７の出力Voxsに基づく空燃比フィードバック制御（即ち、サブフィードバック制御）について説明する。このサブフィードバック制御により、上述したサブフィードバック補正量Vafsfb(％)が算出される。
【０１００】
ＣＰＵ７１は、サブフィードバック補正量Vafsfbを求めるために、図１３に示したルーチンを図１２のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１３００から処理を開始し、ステップ１３０５に進み、先のステップ１２０５と同じ空燃比フィードバック制御条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１３９５に直ちに進んで本ルーチンを一旦終了する。
【０１０１】
以下、空燃比フィードバック制御条件が成立している場合について説明する。この場合、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、偏差DVoxsを、目標空燃比相当目標値Voxsref（一定）から下流側空燃比センサ６７の出力値Voxsを減じた値に設定する。
【０１０２】
次いで、ＣＰＵ７１はステップ１３１５に進み、後述するルーチンにより逐次選択・更新されている噴射モードが切替わった直後か否かを判定し、「Ｎｏ」と判定する場合、ステップ１３２０にて、その時点における偏差DVoxsの偏差積分値SDVoxsに上記ステップ１３１０にて求めた偏差DVoxsを加えることで、偏差積分値SDVoxsを更新する。
【０１０３】
一方、ステップ１３１５にて「Ｙｅｓ」と判定された場合、ＣＰＵ７１はステップ１３２５に進んで、偏差積分値SDVoxsを「０」にクリアする。これにより、後述する「学習処理」により学習値に移し変えられていく値（＝偏差積分値SDVoxsの定常的な成分、学習値更新量DLearn）が、その「学習処理」の実行時点で選択されている噴射モードが選択され続けてきた状態にて偏差DVoxsを積算して得られた偏差積分値SDVoxsに基づく値となることが保証され得る。
【０１０４】
続いて、ＣＰＵ７１はステップ１３３０に進んで、現在の噴射モードがＰモードか否かを判定し、「Ｙｅｓ」と判定する場合（即ち、現在の噴射モードがＰモードの場合）、ステップ１３３５にて、総和値SUM及びＰモード用の総和値SUMpを、現在の偏差積分値SDVoxsにＰモード用の学習値Learnpを加えた値に更新する。総和値SUMは、現在の噴射モードに対応する総和値である。学習値Learnpは、Ｐモードにおいて後述するルーチンにて算出・更新されている。
【０１０５】
ＣＰＵ７１は、ステップ１３３０にて「Ｎｏ」と判定する場合、ステップ１３４０に進んで、現在の噴射モードがＤモードか否かを判定し、「Ｙｅｓ」と判定する場合（即ち、現在の噴射モードがＤモードの場合）、ステップ１３４５にて、総和値SUM及びＤモード用の総和値SUMdを、現在の偏差積分値SDVoxsにＤモード用の学習値Learndを加えた値に更新する。学習値Learndは、Ｄモードにおいて後述するルーチンにて算出・更新されている。
【０１０６】
ＣＰＵ７１は、ステップ１３４０にて「Ｎｏ」と判定する場合（即ち、現在の噴射モードがＰＤモードの場合）、ステップ１３５０に進んで、総和値SUM及びＰＤモード用の総和値SUMpdを、現在の偏差積分値SDVoxsにＰＤモード用の学習値Learnpdを加えた値に更新する。学習値Learnpdは、ＰＤモードにおいて後述するルーチンにて算出・更新されている。
【０１０７】
ＣＰＵ７１はステップ１３５５に進むと、上記ステップ１３１０にて求めた偏差DVoxsと、前回の偏差DVoxsbと、ステップ１３５５内に記載の式とに基づいて偏差DVoxsの時間微分値DDVoxsを求める。前回の偏差DVoxsbとしては、前回の本ルーチン実行時において後述するステップ１３６５にて更新されている値が使用される。Δｔは本ルーチンの実行間隔時間である。
【０１０８】
次に、ＣＰＵ７１はステップ１３６０に進み、上記ステップ１３１０にて求めた偏差DVoxsと、上記ステップ１３３５、１３４５、１３５０の何れかにて更新した総和値SUM（即ち、現在の噴射モードに対応する総和値）と、上記ステップ１３５５にて求めた偏差の時間微分値DDVoxsと、ステップ１３６０内に記載の式とに基づいてサブフィードバック補正量Vafsfb(％)を求める。ここにおいて、Kpは予め設定された比例ゲイン、Kiは予め設定された積分ゲイン、Kdは予め設定された微分ゲインである。
【０１０９】
ステップ１３６０内に記載の式において、右辺第１項「Kp・DVoxs」が比例項に、右辺第２項「Ki・SUM」が積分項に、右辺第３項「Kd・DDVoxs」が微分項にそれぞれ対応している。即ち、サブフィードバック補正量Vafsfbは、比例項と、積分項と、微分項とに基づいて偏差DVoxsをＰＩＤ処理することで算出される。
【０１１０】
そして、ＣＰＵ７１はステップ１３６５に進んで、前回の偏差DVoxsbを上記ステップ１３１０にて求めた偏差DVoxsに設定した後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１１１】
このようにして、サブフィードバック補正量Vafsfb(％)が求められ、この値は前述した図１２のステップ１２１０における制御用空燃比相当出力値Vabyfs(V)の計算に使用される。そして、制御用空燃比相当出力値Vabyfs(V)が図３に示したマップに基づいて制御用空燃比abyfsに変換される。換言すると、制御用空燃比abyfsは、上流側空燃比センサ６６が実際に検出している空燃比に対して、下流側空燃比センサ６７の出力値Voxsに基づいて求められるサブフィードバック補正量Vafsfb(％)に相当する分だけ異なる空燃比として求められる。
【０１１２】
この結果、前述した図１２のステップ１２２０にて計算される筒内燃料供給量Fcが下流側空燃比センサ６７の出力値Voxsに応じて変化するので、ステップ１２３０〜１２４０によって空燃比フィードバック補正量DFiが下流側空燃比センサ６７の出力値Voxsに応じて変更せしめられる。これにより、触媒５３の下流側の空燃比が目標空燃比abyfr（＝理論空燃比）に一致するように、空燃比が制御せしめられる。
【０１１３】
例えば、機関の平均的な空燃比がリーンであるために下流側空燃比センサ６７の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも小さい値（即ち、リーン側に偏移した値）となっていると、ステップ１３１０にて求められる偏差DVoxsが正の値となるので、ステップ１３６０にて求められるサブフィードバック補正量Vafsfbは正の値となる。従って、ステップ１２１５にて求められる制御用空燃比abyfsは上流側空燃比センサ６６が実際に検出している空燃比よりもリーンな値（より大きな値）として求められる。
【０１１４】
このため、ステップ１２２０にて求められる筒内燃料供給量Fcは小さい値となり、ステップ１２３０にて求められる筒内燃料供給量偏差DFcは大きい値となる。従って、空燃比フィードバック補正量DFiが大きい正の値となる。この結果、図１１のステップ１１１５にて求められる全燃料噴射量Fiは、基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチ側の値となるように制御される。
【０１１５】
反対に、機関の平均的な空燃比がリッチであるために下流側空燃比センサ６７の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも大きい値（即ち、リッチ側に偏移した値）となっていると、偏差DVoxsが負の値となるので、サブフィードバック補正量Vafsfbは負の値となる。従って、ステップ１２１５にて求められる制御用空燃比abyfsは上流側空燃比センサ６６が実際に検出している空燃比よりもリッチな値（より小さな値）として求められる。
【０１１６】
従って、筒内燃料供給量Fcは大きい値となるので、筒内燃料供給量偏差DFcは負の値となる。その結果、空燃比フィードバック補正量DFiが負の値となる。これにより、全燃料噴射量Fiは、基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーン側の値となるように制御される。
【０１１７】
以上のように、噴射モード毎に、総和値（＝偏差積分値＋学習値）が導入され、現在の噴射モードに対応する総和値（＝偏差積分値＋学習値）のみが算出・更新されていく。なお、現在の噴射モードに対応する学習値は、後述するルーチンにて学習タイミングが到来する毎に更新されていく。即ち、現在の噴射モードに対応する総和値は、図１３に示したルーチンの実行タイミングが到来する毎に逐次更新されていく偏差積分値SDVoxsと、学習タイミングが到来する毎に更新されていく現在の噴射モードに対応する学習値との和である。
【０１１８】
現在の噴射モードと異なる噴射モードに対応する総和値（＝偏差積分値＋学習値）は、過去において（その噴射モードが選択されていた期間内において）最後に更新された時点での値に維持される。そして、現在の噴射モードに対応する総和値（＝偏差積分値＋学習値）を用いてサブフィードバック補正量Vafsfbが算出され、そのサブフィードバック補正量Vafsfbと上流側空燃比センサ６６の出力値Vabyfとに基づいて空燃比フィードバック制御が実行される。
【０１１９】
次に、学習値（Learnp,Learnd,Learnpd）の更新（学習）について説明する。ＣＰＵ７１は、図１４に示したルーチンを図１３のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１４０５に進み、学習値の学習タイミングが到来しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１４９５に直ちに進んで本ルーチンを一旦終了する。学習タイミングは、例えば、本例では、燃料噴射回数が所定の回数（例えば、１０００回）に達する毎に到来する。
【０１２０】
学習タイミングが到来した場合、ＣＰＵ７１はステップ１４０５にて「Ｙｅｓ」と判定してステップ１４１０に進み、学習値更新量DLearnを、上記ステップ１３２０又は１３２５にて更新されている偏差積分値SDVoxsの最新値を値Nrefで除した値に設定する。値Nrefは、「１」以上の値であり、例えば、「１」、「２」、「４」、「８」などに設定される。ここで、学習値更新量DLearnは、前記「偏差積分値に基づく値の定常的な成分」に対応する。この学習値更新量DLearnは、偏差積分値SDVoxsをローパスフィルタ処理した値でもよい。
【０１２１】
続いて、ＣＰＵ７１はステップ１４１５に進んで、現在の噴射モードがＰモードか否かを判定し、「Ｙｅｓ」と判定する場合（即ち、Ｐモードの場合）、ステップ１４２０にて、その時点におけるＰモード用の学習値Learnpに上記ステップ１４１０にて求めた学習値更新量DLearnを加えることでＰモード用の学習値Learnpを更新する。ＣＰＵ７１はステップ１４１５にて「Ｎｏ」と判定した場合、ステップ１４２５にて、現在の噴射モードがＤモードか否かを判定し、「Ｙｅｓ」と判定する場合（即ち、Ｄモードの場合）、ステップ１４３０にて、その時点におけるＤモード用の学習値Learndに上記ステップ１４１０にて求めた学習値更新量DLearnを加えることでＤモード用の学習値Learndを更新する。ＣＰＵ７１は、ステップ１４２５にて「Ｎｏ」と判定する場合（即ち、ＰＤモードの場合）、ステップ１４３５にて、その時点におけるＰＤモード用の学習値Learnpdに上記ステップ１４１０にて求めた学習値更新量DLearnを加えることでＰＤモード用の学習値Learnpdを更新する。
【０１２２】
このように、噴射モード毎に、学習値Learnp,Learnd,Learnpdがそれぞれ個別に設定され、学習タイミングが到来する毎に、偏差積分値SDVoxsの定常的な成分（＝DLearn）が現在の噴射モードに対応する学習値に移し変えられていく。これにより、噴射モード毎に学習値が個別に更新されていく。
【０１２３】
そして、ＣＰＵ７１はステップ１４４０に進み、その時点における偏差積分値SDVoxsから上記学習値更新量DLearnを減じることで偏差積分値SDVoxsを再設定した後、ステップ１４９５に進んで本ルーチンを一旦終了する。
【０１２４】
このように、学習タイミングが到来する毎に、偏差積分値SDVoxsと「現在の噴射モードに対応する学習値」の和を変更することなく、「現在の噴射モードに対応する学習値」が更新されていく。これにより、学習タイミングが到来する毎に、偏差積分値SDVoxsが次第に「０」に近づいていく一方で、「現在の噴射モードに対応する学習値」が、上流側空燃比センサ６６の「リッチずれ」の大きさに相当する値にそれぞれ近づいていく。なお、「現在の噴射モードに対応する学習値」が上流側空燃比センサ６６の「リッチずれ」の大きさに相当する値に近づいていく速度は、値Nrefが大きいほど小さくなる。
【０１２５】
次に、噴射モードの選択について説明する。ＣＰＵ７１は、図１５に示したルーチンを図１４のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１５０５に進み、現在の噴射モードがＰモードか否かを判定し、「Ｎｏ」と判定する場合、ステップ１５１０にて、現在の噴射モードがＤモードか否かを判定する。ここでも「Ｎｏ」と判定する場合（即ち、ＰＤモードの場合）、ＣＰＵ７１はステップ１５１５に進んで、エンジン回転速度NEと、負荷率KL（或いは、筒内吸入空気量Mc）と、図９に示したマップとに基づいて、現在の運転状態に応じた噴射モード（Ｐモード、Ｄモード、又はＰＤモード）を選択し、ステップ１５９５に進んで本ルーチンを一旦終了する。
【０１２６】
次に、現在の噴射モードがＰモードの場合について説明する。この場合、ＣＰＵ７１はステップ１５０５に進んだとき「Ｙｅｓ」と判定してステップ１５２０に進み、最新の総和値SUMp（即ち、図１３のステップ１３３５にて逐次更新されている値）が正の値であり、且つ、その最新の総和値SUMpから、最新の総和値SUMd（即ち、過去においてＤモードが選択されていた期間内において図１３のステップ１３４５にて最後に更新された値）を減じた値が所定値Ａ（＞０）よりも大きいか否かを判定する。
【０１２７】
ＣＰＵ７１は、ステップ１５２０にて「Ｎｏ」と判定する場合、上述したステップ１５１５に進んで、現在の運転状態に応じた噴射モード（Ｐモード、Ｄモード、又はＰＤモード）を選択する。一方、ＣＰＵ７１は、ステップ１５２０にて「Ｙｅｓ」と判定する場合（即ち、複数のポート噴射弁３９Ｐの一部のみに異常が発生している（且つ、複数の筒内噴射弁３９Ｄには異常が発生していない）と推定できる場合）、ステップ１５２５にて、（図９に示したマップによる選択結果にかかわらず）噴射モードをＰモードに固定する。これにより、上述のように、複数のポート噴射弁３９Ｐの一部のみに実際に異常が発生している場合において、総和値SUMpを増大させ続けることができ、この結果、総和値SUMpがガード値Guardに到達する時期をより早くすることができる。
【０１２８】
次に、現在の噴射モードがＤモードの場合について説明する。この場合、ＣＰＵ７１はステップ１５１０に進んだとき「Ｙｅｓ」と判定してステップ１５３０に進み、最新の総和値SUMd（即ち、図１３のステップ１３４５にて逐次更新されている値）が正の値であり、且つ、その最新の総和値SUMdから、最新の総和値SUMp（即ち、過去においてＰモードが選択されていた期間内において図１３のステップ１３３５にて最後に更新された値）を減じた値が所定値Ａ（＞０）よりも大きいか否かを判定する。
【０１２９】
ＣＰＵ７１は、ステップ１５３０にて「Ｎｏ」と判定する場合、上述したステップ１５１５に進んで、現在の運転状態に応じた噴射モード（Ｐモード、Ｄモード、又はＰＤモード）を選択する。一方、ＣＰＵ７１は、ステップ１５３０にて「Ｙｅｓ」と判定する場合（即ち、複数の筒内噴射弁３９Ｄの一部のみに異常が発生している（且つ、複数のポート噴射弁３９Ｐには異常が発生していない）と推定できる場合）、ステップ１５３５にて、（図９に示したマップによる選択結果にかかわらず）噴射モードをＤモードに固定する。これにより、上述のように、複数の筒内噴射弁３９Ｄの一部のみに実際に異常が発生している場合において、総和値SUMdを増大させ続けることができ、この結果、総和値SUMdがガード値Guardに到達する時期をより早くすることができる。
【０１３０】
次に、「気筒間ＡＦばらつき」発生の検出について説明する。ＣＰＵ７１は、図１６に示したルーチンを図１５のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ１６０５に進み、総和値SUMp,SUMd,SUMpdのうちの何れかがガード値Guardに到達したか否かを判定し、「Ｎｏ」と判定する場合、ステップ１６９５に進んで本ルーチンを一旦終了する。総和値SUMp,SUMd,SUMpdはそれぞれ、図１３のステップ１３３５、１３４５、１３５０にて更新される値である。総和値SUMp,SUMd,SUMpdのうちで現在更新され続けているのは、現在の噴射モードに対応する総和値である。従って、ステップ１６０５では、実際には、現在の噴射モードに対応する総和値がガード値Guardに到達したか否かが判定される。
【０１３１】
ＣＰＵ７１は、ステップ１６０５にて「Ｙｅｓ」と判定する場合、ステップ１６１０にて、「気筒間ＡＦばらつき」が発生していると判定する。これに伴い、「気筒間ＡＦばらつき」発生に対応する異常コードがバックアップＲＡＭ７４の所定の記憶領域に記憶される。
【０１３２】
加えて、図１５のステップ１５２５の実行により噴射モードがＰモードに固定されている状態において総和値SUMpがガード値Guardに達したことにより「気筒間ＡＦばらつき」が発生していると判定された場合、「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐにあることが特定される。同様に、図１５のステップ１５３５の実行により噴射モードがＤモードに固定されている状態において総和値SUMdがガード値Guardに達したことにより「気筒間ＡＦばらつき」が発生していると判定された場合、「気筒間ＡＦばらつき」発生の原因が筒内噴射弁３９Ｄにあることが特定される。これらの異常内容に対応する異常コードもバックアップＲＡＭ７４の所定の記憶領域に記憶される。
【０１３３】
これに対し、それ以外の状態（即ち、図１３のステップ１５１５の実行により図９に示すマップを利用して噴射モードが選択されている状態）において現在の噴射モードに対応する総和値（SUMp，SUMd，又はSUMpd）がガード値Guardに到達したことで「気筒間ＡＦばらつき」が発生していると判定された場合、「気筒間ＡＦばらつき」の原因（例えば、燃料噴射弁３９Ｐ，３９Ｄの異常、吸気弁３２の最大リフト量の異常、ＥＧＲ機構の異常）が特定できない。従って、この場合、異常内容に対応する異常コードの記憶処理は行われない。
【０１３４】
以上、説明したように、本発明の第１実施形態に係るデュアルインジェクションシステムを備えた多気筒内燃機関の気筒間空燃比ばらつき判定装置では、噴射モード（Ｐモード、Ｄモード、ＰＤモード）毎に、下流側空燃比センサ６７の出力値Voxsと理論空燃比相当目標値Voxsrefとの偏差を積算して更新されていく総和値（偏差積分値＋学習値）が個別に算出される。現在の噴射モードに対応する総和値と、上流側空燃比センサ６６の出力値Vabyfとに基づいて空燃比フィードバック制御が実行される。「空燃比ＡＦばらつき」発生中は上流側空燃比センサ出力値Vabyfに「リッチずれ」が発生して現在の噴射モードに対応する総和値が増量方向に増大していく現象を利用して、現在の噴射モードに対応する総和値が増量方向のガード値Guardに達したときに「空燃比ＡＦばらつき」発生が検出される。Ｐモード（Ｄモード）において、Ｐモード用（Ｄモード用）の総和値SUMp（SUMd）が増量方向の（正の）値であって且つＰモード用（Ｄモード用）の総和値SUMp（SUMd）からＤモード用（Ｐモード用）の総和値SUMd（SUMp）を減じた値が所定値Ａを超えた場合、「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐ（筒内噴射弁３９Ｄ）にあると推定されて、噴射モードがＰモード（Ｄモード）に固定される。
【０１３５】
これにより、「気筒間ＡＦばらつき」発生の原因が実際にポート噴射弁３９Ｐ（筒内噴射弁３９Ｄ）にある場合において総和値SUMp（SUMd）を増大させ続けることができる。この結果、機関の運転状態が頻繁に変動して噴射モードが本来頻繁に切り替わるような状況において、ポート噴射弁３９Ｐ（筒内噴射弁３９Ｄ）に起因する「気筒間ＡＦばらつき」発生が早期且つ確実に検出され得る。
【０１３６】
本発明は上記第１実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１実施形態では、噴射モードをＰモード（Ｄモード）に固定する条件として、「現在の噴射モードがＰモード（Ｄモード）であること」、「Ｐモード用（Ｄモード用）の総和値SUMp（SUMd）が増量方向の値（正の値）であること」、並びに、「Ｐモード用（Ｄモード用）の総和値SUMp（SUMd）からＤモード用（Ｐモード用）の総和値SUMd（SUMp）を減じた値が所定値Ａを超えたこと」が採用されている。これに対し、噴射モードをＰモード（Ｄモード）に固定する条件として、「Ｐモード用（Ｄモード用）の総和値SUMp（SUMd）＞ＰＤモード用の総和値SUMpd＞Ｄモード用（Ｐモード用）の総和値SUMd（SUMp）が成立すること」が更に追加されてもよい。この追加条件は、「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐ（筒内噴射弁３９Ｄ）にある場合において、上述したように、総和値SUMpdの増加勾配が総和値SUMp（SUMd）の増加勾配よりも小さくなり、且つ、総和値SUMd（SUMp）が略ゼロに維持されることに基づく。
【０１３７】
（第２実施形態）
次に、本発明の第２実施形態に係る多気筒内燃機関の気筒間空燃比ばらつき判定装置について説明する。この第２実施形態は、噴射モード間の学習値（Learnp,Learnd,Learnpd）の大小関係を利用して噴射モードのＰモード又はＤモードへの固定を行う点においてのみ、噴射モード間の総和値（SUMp,SUMd,SUMpd）の大小関係を利用して噴射モードのＰモード又はＤモードへの固定を行う上記第１実施形態と異なる。以下、係る相違点についてのみ説明する。
【０１３８】
第２実施形態のＣＰＵ７１は、上記第１実施形態のＣＰＵ７１が実行する図１１〜図１１６のルーチンのうち、図１５及び図１６のルーチンを除いたルーチンをそのまま実行するとともに、図１５及び図１６のルーチンに代えて、図１５及び図１６のルーチンにそれぞれ対応する図１７及び図１８にフローチャートにより示したルーチンをそれぞれ実行する。新出のルーチンにおいて前出のルーチンのステップと同じステップについては、前出のルーチンのステップ番号と同じステップ番号を付することでそれらの説明を省略する。
【０１３９】
図１７に示したルーチンは、図１５のステップ１５２０、１５３０をステップ１７０５、１７１０にそれぞれ置き換えた点においてのみ、図１５に示したルーチンと異なる。これにより、第２実施形態では、噴射モードをＰモードに固定する条件として、「現在の噴射モードがＰモードであること」、「Ｐモード用の学習値Learnpが増量方向の値（正の値）であること」、並びに、「Ｐモード用の学習値LearnpからＤモード用の学習値Learndを減じた値が所定値Ａを超えたこと」が採用される。同様に、第２実施形態では、噴射モードをＤモードに固定する条件として、「現在の噴射モードがＤモードであること」、「Ｄモード用の学習値Learndが増量方向の値（正の値）であること」、並びに、「Ｄモード用の学習値LearndからＰモード用の学習値Learnpを減じた値が所定値Ａを超えたこと」が採用される。
【０１４０】
図１８に示したルーチンは、図１６のステップ１６０５をステップ１８０５に置き換えた点においてのみ、図１６に示したルーチンと異なる。これにより、第２実施形態では、学習値Learnp,Learnd,Learnpdのうちの何れかがガード値Guardに到達した場合に、「気筒間ＡＦばらつき」が発生していると判定される。学習値Learnp,Learnd,Learnpdはそれぞれ、図１４のステップ１４２０、１４３０、１４３５にて更新される値である。学習値Learnp,Learnd,Learnpdのうちで学習タイミングの到来毎に更新され続けているのは、現在の噴射モードに対応する学習値である。従って、ステップ１８０５では、実際には、現在の噴射モードに対応する学習値がガード値Guardに到達したか否かが判定される。
【０１４１】
以上、上記第２実施形態によっても、上記第１実施形態と同じ作用・効果を得ることができる。加えて、学習値は、偏差積分値に基づく値の定常的な成分であるから、何らかの外乱等により偏差積分値が一時的に荒れてもその影響を受けにくい。一方、総和値（＝偏差積分値＋学習値）は、何らかの外乱等により偏差積分値が一時的に荒れると、その影響を大きく受ける。係る観点からは、噴射モード間の学習値の大小関係を利用して噴射モードの固定を行う第２実施形態の方が、『「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐ又は筒内噴射弁３９Ｄにある』との推定精度がより高くなり、ポート噴射弁３９Ｐ又は筒内噴射弁３９Ｄに起因する「気筒間ＡＦばらつき」発生を早期に検出するために実行される「噴射モードの固定」がより適切なタイミングで実行され得る。
【０１４２】
本発明は上記第２実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１実施形態では、噴射モードをＰモード（Ｄモード）に固定する条件として、「現在の噴射モードがＰモード（Ｄモード）であること」、「Ｐモード用（Ｄモード用）の学習値Learnp（Learnd）が増量方向の値（正の値）であること」、並びに、「Ｐモード用（Ｄモード用）の学習値Learnp（Learnd）からＤモード用（Ｐモード用）の学習値Learnd（Learnp）を減じた値が所定値Ａを超えたこと」が採用されている。これに対し、噴射モードをＰモード（Ｄモード）に固定する条件として、「Ｐモード用（Ｄモード用）の学習値Learnp（Learnd）＞ＰＤモード用の学習値Learnpd＞Ｄモード用（Ｐモード用）の学習値Learnd（Learnp）が成立すること」が更に追加されてもよい。この追加条件は、「気筒間ＡＦばらつき」発生の原因がポート噴射弁３９Ｐ（筒内噴射弁３９Ｄ）にある場合において、上述したように、総和値SUMpdの増加勾配が総和値SUMp（SUMd）の増加勾配よりも小さくなり、且つ、総和値SUMd（SUMp）が略ゼロに維持されることに基づく。
【符号の説明】
【０１４３】
２５…燃焼室、３９Ｐ…ポート噴射弁、３９Ｄ…筒内噴射弁、５３…触媒、６１…エアフローメータ、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ
【図１】
2010169038.tif 000003
【図２】
2010169038.tif 000004
【図３】
2010169038.tif 000005
【図４】
2010169038.tif 000006
【図５】
2010169038.tif 000007
【図６】
2010169038.tif 000008
【図７】
2010169038.tif 000009
【図８】
2010169038.tif 000010
【図９】
2010169038.tif 000011
【図１０】
2010169038.tif 000012
【図１１】
2010169038.tif 000013
【図１２】
2010169038.tif 000014
【図１３】
2010169038.tif 000015
【図１４】
2010169038.tif 000016
【図１５】
2010169038.tif 000017
【図１６】
2010169038.tif 000018
【図１７】
2010169038.tif 000019
【図１８】
2010169038.tif 000020