(57)【特許請求の範囲】
【請求項１】
多気筒内燃機関における気筒間空燃比のばらつき度合いを表すパラメータを検出する検出手段と、
前記内燃機関の排気通路に設けられた触媒の吸蔵酸素量を計測する計測手段と、
前記検出手段により所定値以上のパラメータが検出されたとき、前記計測手段により計測された吸蔵酸素量に応じて、空燃比をリッチ化するためのリッチ制御を実行または停止するリッチ制御手段と、
を備え、
前記リッチ制御手段は、前記リッチ制御の実行中、前記計測手段により計測された吸蔵酸素量に応じてリッチ化度合いを変更する
ことを特徴とする内燃機関の制御装置。
【請求項２】
前記リッチ制御手段は、前記吸蔵酸素量が所定の下限しきい値を下回らぬよう、前記リッチ制御を実行または停止する
ことを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記リッチ制御手段は、前記リッチ制御の実行中に前記吸蔵酸素量が減少して所定の下限しきい値に達した時に前記リッチ制御を停止する
ことを特徴とする請求項１または２に記載の内燃機関の制御装置。
【請求項４】
前記リッチ制御手段は、前記リッチ制御の停止中に前記吸蔵酸素量が増加して所定の上限しきい値に達した時に前記リッチ制御を再開する
ことを特徴とする請求項１〜３のいずれか一項に記載の内燃機関の制御装置。
【請求項５】
前記リッチ制御手段は、前記検出手段により所定値以上のパラメータが検出されたとき、その原因となった気筒を特定し、且つ、前記触媒の上流側に設けられた空燃比センサに対する前記気筒からの排気ガスのガス当たり強度に応じて、前記リッチ制御を停止する吸蔵酸素量の値を変更する
ことを特徴とする請求項１〜４のいずれか一項に記載の内燃機関の制御装置。
【請求項６】
前記リッチ制御手段は、少なくとも前記内燃機関の負荷が所定値以上であるときに前記リッチ制御を実行する
ことを特徴とする請求項１〜５のいずれか一項に記載の内燃機関の制御装置。
【請求項７】
前記触媒の上流側に設けられた空燃比センサと、
前記空燃比センサにより検出された検出空燃比を所定の目標空燃比に一致させるよう空燃比フィードバック制御を実行する空燃比制御手段と、
をさらに備えることを特徴とする請求項１〜６のいずれか一項に記載の内燃機関の制御装置。
【請求項８】
前記リッチ制御手段は、リッチ制御実行時に前記空燃比フィードバック制御における目標空燃比または燃料噴射量をリッチ化する
ことを特徴とする請求項７に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の制御装置に係り、特に、多気筒内燃機関において気筒間の空燃比がばらついたときに排気エミッションの悪化を抑制し得る装置に関する。
【背景技術】
【０００２】
一般に、触媒を利用した排気浄化システムを備える内燃機関では、排気中有害成分の触媒による浄化を高効率で行うため、内燃機関で燃焼される混合気の空気と燃料との混合割合、すなわち空燃比のコントロールが欠かせない。こうした空燃比の制御を行うため、内燃機関の排気通路に空燃比センサを設け、これによって検出された空燃比を所定の目標空燃比に一致させるようフィードバック制御を実施している。
【０００３】
一方、多気筒内燃機関においては、通常全気筒に対し同一の制御量を用いて空燃比制御を行うため、空燃比制御を実行したとしても実際の空燃比が気筒間でばらつくことがある。このときばらつきの程度が小さければ、空燃比フィードバック制御で吸収可能であり、また触媒でも排気中有害成分を浄化処理可能なので、排気エミッションに影響を与えず、特に問題とならない。
【０００４】
しかし、例えば一部の気筒の燃料噴射系が故障するなどして、気筒間の空燃比が大きくばらつくと、排気エミッションを悪化させてしまい、問題となる。
【０００５】
なお、このような大きな空燃比ばらつきは異常として検出するのが望ましい。特に自動車用内燃機関の場合、排気エミッションが悪化した車両の走行を未然に防止するため、気筒間空燃比ばらつき異常を車載状態（オンボード）で検出することが要請されている。例えば特許文献１に記載の装置では、触媒の前後に設置された空燃比センサの出力乖離に基づき、気筒間空燃比ばらつき異常を検出するようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−３０４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、前述の空燃比フィードバック制御は典型的に触媒前に設置された空燃比センサ、すなわち触媒前センサの出力に基づいて行われる。また、多気筒内燃機関においてある１気筒の空燃比が大きくリッチ側にずれると、このリッチずれ気筒から排出される水素の影響で、触媒前センサの出力が真の空燃比に対しリッチ側にずれる（特許文献１参照）。
【０００８】
こうした状態で空燃比フィードバック制御が通常通り行われると、実際の排気ガスが目標空燃比に対しリーン側にずれてしまい、ＮＯｘ排出量の増加が懸念される。
【０００９】
よってこの対策として、気筒間空燃比ばらつきが検出された場合には、空燃比をリッチ化し、実際の排気空燃比のリーンずれを抑制ないし補償することが考えられる。
【００１０】
しかし、本発明者らの研究結果によれば、かかるリッチ化を継続した場合にリッチ化が過剰となり、逆にＨＣ排出量が増加する場合があることが判明した。
【００１１】
そこで本発明は、上記事情に鑑みて創案され、その目的は、気筒間空燃比がばらついて空燃比のリッチ化を実行する場合の排気エミッション悪化を抑制し得る内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一の態様によれば、
多気筒内燃機関における気筒間空燃比のばらつき度合いを表すパラメータを検出する検出手段と、
前記内燃機関の排気通路に設けられた触媒の吸蔵酸素量を計測する計測手段と、
前記検出手段により所定値以上のパラメータが検出されたとき、前記計測手段により計測された吸蔵酸素量に応じて、空燃比をリッチ化するためのリッチ制御を実行または停止するリッチ制御手段と、
を備えることを特徴とする内燃機関の制御装置が提供される。
【００１３】
好ましくは、前記リッチ制御手段は、前記吸蔵酸素量が所定の下限しきい値を下回らぬよう、前記リッチ制御を実行または停止する。
【００１４】
好ましくは、前記リッチ制御手段は、前記リッチ制御の実行中に前記吸蔵酸素量が減少して所定の下限しきい値に達した時に前記リッチ制御を停止する。
【００１５】
好ましくは、前記リッチ制御手段は、前記リッチ制御の停止中に前記吸蔵酸素量が増加して所定の上限しきい値に達した時に前記リッチ制御を再開する。
【００１６】
好ましくは、前記リッチ制御手段は、前記リッチ制御の実行中、前記計測手段により計測された吸蔵酸素量に応じてリッチ化度合いを変更する。
【００１７】
好ましくは、前記リッチ制御手段は、前記検出手段により所定値以上のパラメータが検出されたとき、その原因となった気筒を特定し、且つ、前記触媒の上流側に設けられた空燃比センサに対する前記気筒からの排気ガスのガス当たり強度に応じて、前記リッチ制御を停止する吸蔵酸素量の値を変更する。
【００１８】
好ましくは、前記リッチ制御手段は、少なくとも前記内燃機関の負荷が所定値以上であるときに前記リッチ制御を実行する。
【００１９】
好ましくは、前記内燃機関の制御装置は、前記触媒の上流側に設けられた空燃比センサと、前記空燃比センサにより検出された検出空燃比を所定の目標空燃比に一致させるよう空燃比フィードバック制御を実行する空燃比制御手段と、をさらに備える。
【００２０】
好ましくは、前記リッチ制御手段は、リッチ制御実行時に前記空燃比フィードバック制御における目標空燃比または燃料噴射量をリッチ化する。
【発明の効果】
【００２１】
本発明によれば、気筒間空燃比がばらついて空燃比のリッチ化を実行する場合の排気エミッション悪化を抑制することができるという、優れた効果が発揮される。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係る内燃機関の概略図である。
【図２】触媒前センサおよび触媒後センサの出力特性を示すグラフである。
【図３】気筒間空燃比ばらつき度合いに応じた排気空燃比の変動を示すグラフである。
【図４】図３のＵ部に相当する拡大図である。
【図５】インバランス割合と出力変動パラメータの関係を示すグラフである。
【図６】負荷および回転数とリッチ補正量の関係を示すグラフである。
【図７】出力変動パラメータとリッチ補正量の関係を示すグラフである。
【図８】比較例のタイムチャートである。
【図９】本実施形態の実施例のタイムチャートである。
【図１０】出力変動パラメータ検出ルーチンのフローチャートである。
【図１１】吸蔵酸素量計測ルーチンのフローチャートである。
【図１２】ＯＳＡフラグ処理ルーチンのフローチャートである。
【図１３】リッチ制御ルーチンのフローチャートである。
【図１４】吸蔵酸素量とリッチ補正量の関係を示すグラフである。
【図１５】吸蔵酸素量の変化を示すタイムチャートであり、異常気筒がガス当たり強度の強い気筒である場合である。
【図１６】吸蔵酸素量の変化を示すタイムチャートであり、異常気筒がガス当たり強度の弱い気筒である場合である。
【図１７】気筒毎の下限しきい値の値を示すグラフである。
【図１８】異常気筒特定の原理を説明するための図である。
【図１９】下限しきい値設定ルーチンのフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明の実施形態を添付図面に基づき説明する。
【００２４】
図１は、本実施形態に係る内燃機関の概略図である。図示されるように、内燃機関（エンジン）１は、シリンダブロック２に形成された燃焼室３の内部で燃料および空気の混合気を燃焼させ、燃焼室３内でピストンを往復移動させることにより動力を発生する。本実施形態の内燃機関１は自動車に搭載された多気筒内燃機関であり、より具体的には直列４気筒火花点火式内燃機関である。内燃機関１は＃１〜＃４気筒を備える。但し気筒数、用途、形式等は特に限定されない。
【００２５】
図示しないが、内燃機関１のシリンダヘッドには吸気ポートを開閉する吸気弁と、排気ポートを開閉する排気弁とが気筒ごとに配設されており、各吸気弁および各排気弁はカムシャフトによって開閉させられる。シリンダヘッドの頂部には、燃焼室３内の混合気に点火するための点火プラグ７が気筒ごとに取り付けられている。
【００２６】
各気筒の吸気ポートは気筒毎の枝管４を介して吸気集合室であるサージタンク８に接続されている。サージタンク８の上流側には吸気管１３が接続されており、吸気管１３の上流端にはエアクリーナ９が設けられている。そして吸気管１３には、上流側から順に、吸入空気量を検出するためのエアフローメータ５と、電子制御式のスロットルバルブ１０とが組み込まれている。吸気ポート、枝管、サージタンク８及び吸気管１３により吸気通路が形成される。
【００２７】
吸気通路、特に吸気ポート内に燃料を噴射するインジェクタ（燃料噴射弁）１２が気筒ごとに配設されている。インジェクタ１２から噴射された燃料は吸入空気と混合されて混合気をなし、この混合気が吸気弁の開弁時に燃焼室３に吸入され、ピストンで圧縮され、点火プラグ７で点火燃焼させられる。
【００２８】
一方、各気筒の排気ポートは排気マニフォールド１４に接続される。排気マニフォールド１４は、その上流部をなす気筒毎の枝管１４ａと、その下流部をなす排気集合部１４ｂとからなる。排気集合部１４ｂの下流側には排気管６が接続されている。排気ポート、排気マニフォールド１４及び排気管６により排気通路が形成される。
【００２９】
排気管６の上流側と下流側にはそれぞれ三元触媒からなる触媒、すなわち上流触媒１１と下流触媒１９が直列に取り付けられている。これら触媒１１，１９は酸素吸蔵能（Ｏ2ストレージ能）を有する。すなわち、触媒１１，１９は、排気ガスの空燃比がストイキ（理論空燃比、例えばＡ／Ｆ＝１４．６）より大きい（リーンな）ときに排気ガス中の過剰酸素を吸蔵し、ＮＯｘを還元する。また触媒１１，１９は、排気ガスの空燃比がストイキより小さい（リッチな）ときに吸蔵酸素を放出し、ＨＣ，ＣＯを酸化する。
【００３０】
上流触媒１１の上流側及び下流側にそれぞれ排気ガスの空燃比を検出するための第１及び第２の空燃比センサ、即ち触媒前センサ１７及び触媒後センサ１８が設置されている。これら触媒前センサ１７及び触媒後センサ１８は、上流触媒１１の直前及び直後の位置に設置され、排気中の酸素濃度に基づいて空燃比を検出する。このように上流触媒１１の上流側の排気合流部に単一の触媒前センサ１７が設置されている。上流触媒１１が本発明にいう「触媒」に該当し、触媒前センサ１７が本発明にいう「空燃比センサ」に該当する。
【００３１】
上述の点火プラグ７、スロットルバルブ１０及びインジェクタ１２等は、制御手段としての電子制御ユニット（以下ＥＣＵと称す）２０に電気的に接続されている。ＥＣＵ２０は、何れも図示されないＣＰＵ、ＲＯＭ、ＲＡＭ、入出力ポート、および記憶装置等を含むものである。またＥＣＵ２０には、図示されるように、前述のエアフローメータ５、触媒前センサ１７、触媒後センサ１８のほか、内燃機関１のクランク角を検出するクランク角センサ１６、アクセル開度を検出するアクセル開度センサ１５、その他の各種センサが図示されないＡ／Ｄ変換器等を介して電気的に接続されている。ＥＣＵ２０は、各種センサの検出値等に基づいて、所望の出力が得られるように、点火プラグ７、スロットルバルブ１０、インジェクタ１２等を制御し、点火時期、燃料噴射量、燃料噴射時期、スロットル開度等を制御する。
【００３２】
スロットルバルブ１０にはスロットル開度センサ（図示せず）が設けられ、スロットル開度センサからの信号がＥＣＵ２０に送られる。ＥＣＵ２０は、通常、アクセル開度に応じて定まる目標スロットル開度に、スロットルバルブ１０の開度（スロットル開度）をフィードバック制御する。
【００３３】
ＥＣＵ２０は、エアフローメータ５からの信号に基づき、単位時間当たりの吸入空気の量すなわち吸入空気量を検出する。そしてＥＣＵ２０は、検出したアクセル開度、スロットル開度および吸入空気量の少なくとも一つに基づき、エンジン１の負荷を検出する。
【００３４】
ＥＣＵ２０は、クランク角センサ１６からのクランクパルス信号に基づき、クランク角自体を検出すると共にエンジン１の回転数を検出する。ここで「回転数」とは単位時間当たりの回転数のことをいい、回転速度と同義である。本実施形態では１分間当たりの回転数ｒｐｍのことをいう。
【００３５】
触媒前センサ１７は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図２に触媒前センサ１７の出力特性を示す。図示するように、触媒前センサ１７は、排気空燃比に比例した大きさの電圧信号Ｖｆを出力する。排気空燃比がストイキであるときの出力電圧はＶｒｅｆｆ（例えば約３．３Ｖ）である。
【００３６】
他方、触媒後センサ１８は所謂Ｏ2センサからなり、ストイキを境に出力値が急変する特性を持つ。図２に触媒後センサ１８の出力特性を示す。図示するように、排気空燃比がストイキであるときの出力電圧、すなわちストイキ相当値はＶｒｅｆｒ（例えば０．４５Ｖ）である。触媒後センサ１８の出力電圧は所定の範囲（例えば０〜１Ｖ）内で変化する。排気空燃比がストイキよりリーンのとき、触媒後センサの出力電圧はストイキ相当値Ｖｒｅｆｒより低くなり、排気空燃比がストイキよりリッチのとき、触媒後センサの出力電圧はストイキ相当値Ｖｒｅｆｒより高くなる。
【００３７】
上流触媒１１及び下流触媒１９は、それぞれに流入する排気ガスの空燃比Ａ／Ｆがストイキ近傍のときに排気中の有害成分であるＮＯｘ，ＨＣおよびＣＯを同時に浄化する。この三者を同時に高効率で浄化できる空燃比の幅（ウィンドウ）は比較的狭い。
【００３８】
そこで通常運転時、上流触媒１１に流入する排気ガスの空燃比がストイキ近傍に制御されるように、空燃比フィードバック制御（ストイキ制御）がＥＣＵ２０により実行される。この空燃比フィードバック制御は、触媒前センサ１７によって検出された排気空燃比を所定の目標空燃比であるストイキに一致させるような主空燃比フィードバック制御と、触媒後センサ１８によって検出された排気空燃比をストイキに一致させるような補助空燃比フィードバック制御とからなる。
【００３９】
さて、例えば全気筒のうちの一部の気筒（特に１気筒）に何等かの異常が発生し、気筒間に空燃比のばらつき（インバランス：imbalance）が発生することがある。例えば＃１気筒のインジェクタ１２が故障し、＃１気筒の燃料噴射量が相対的に多くなる結果、＃１気筒の空燃比が他の＃２、＃３及び＃４気筒の空燃比よりも大きくリッチ側にずれる場合等である。このときでも前述の主空燃比フィードバック制御により比較的大きな補正量を与えれば、触媒前センサ１７に供給されるトータルガスの空燃比をストイキに制御できる場合がある。しかし、気筒別に見ると、＃１気筒がストイキより大きくリッチ、＃２、＃３及び＃４気筒がストイキより若干リーンであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこで本実施形態では、かかる気筒間空燃比ばらつきが発生した場合でも排気エミッションを悪化させぬような対策が施されている。
【００４０】
図３に示すように、気筒間空燃比ばらつきが発生すると、１エンジンサイクル（＝７２０°ＣＡ）間での排気空燃比の変動が大きくなる。（Ｂ）の空燃比線図ａ，ｂ，ｃはそれぞればらつき無し、１気筒のみ２０％のインバランス割合でリッチずれ、及び１気筒のみ５０％のインバランス割合でリッチずれの場合の、触媒前センサ１７による検出空燃比Ａ／Ｆを示す。見られるように、ばらつき度合いが大きくなるほど空燃比変動の振幅が大きくなる。
【００４１】
ここでインバランス割合（％）とは、気筒間空燃比のばらつき度合いを表す一つのパラメータである。即ち、インバランス割合とは、全気筒のうちある１気筒のみが燃料噴射量ズレを起こしている場合に、その燃料噴射量ズレを起こしている気筒（インバランス気筒）の燃料噴射量がどれくらいの割合で、燃料噴射量ズレを起こしていない気筒（バランス気筒）の燃料噴射量即ち基準噴射量からズレているかを示す値である。インバランス割合をＩＢ、インバランス気筒の燃料噴射量をＱｉｂ、バランス気筒の燃料噴射量即ち基準噴射量をＱｓとすると、ＩＢ＝（Ｑｉｂ−Ｑｓ）／Ｑｓで表される。インバランス割合ＩＢの絶対値が大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ズレが大きく、空燃比ばらつき度合いは大きい。
【００４２】
図３から理解されるように、インバランス割合が大きいほど、すなわち気筒間空燃比のばらつき度合いが大きいほど、触媒前センサ１７の出力変動が大きくなる。
【００４３】
よってこの特性を利用し、本実施形態では、触媒前センサ１７の出力変動度合いを表す出力変動パラメータＸを、気筒間空燃比ばらつき度合いを表すパラメータとして用い、且つ出力変動パラメータＸを検出する。なお、前述のインバランス割合は説明目的のために用いる。
【００４４】
［出力変動パラメータの検出］
以下に出力変動パラメータＸの検出方法を説明する。図４は図３のＵ部に相当する拡大図であり、特に１エンジンサイクル内の触媒前センサ出力の変動を簡略的に示す。触媒前センサ出力としては、触媒前センサ１７の出力電圧Ｖｆを空燃比Ａ／Ｆに換算した値を用いる。但し触媒前センサ１７の出力電圧Ｖｆを直接用いることも可能である。
【００４５】
図４（Ｂ）に示すように、ＥＣＵ２０は、１エンジンサイクル内において、所定のサンプル周期τ（単位時間、例えば４ｍｓ）毎に、触媒前センサ出力Ａ／Ｆの値を取得する。そして今回のタイミング（第２のタイミング）で取得した値Ａ／Ｆnと、前回のタイミング（第１のタイミング）で取得した値Ａ／Ｆn-1との差ΔＡ／Ｆnの絶対値を次式（１）により求める。この差ΔＡ／Ｆnは今回のタイミングにおける微分値あるいは傾きと言い換えることができる。
【００４６】
【数１】
0005348190.tif 000002
【００４７】
最も単純には、この差ΔＡ／Ｆnが触媒前センサ出力の変動を表す。変動度合いが大きくなるほど空燃比線図の傾きが大きくなり、差ΔＡ／Ｆnが大きくなるからである。そこで所定の１タイミングにおける差ΔＡ／Ｆnの値を出力変動パラメータとすることができる。
【００４８】
但し、本実施形態では精度向上のため、複数の差ΔＡ／Ｆnの平均値を出力変動パラメータとする。本実施形態では、１エンジンサイクルの間、各タイミング毎に差ΔＡ／Ｆnを積算し、最終積算値をサンプル数Ｎで除し、１エンジンサイクル内の差ΔＡ／Ｆnの平均値を求める。そしてさらに、Ｍエンジンサイクル分（例えばＭ＝１００）だけ差ΔＡ／Ｆnの平均値を積算し、最終積算値をサイクル数Ｍで除し、Ｍエンジンサイクル内の差ΔＡ／Ｆnの平均値を求める。こうして求められた最終的な平均値を出力変動パラメータＸとする。触媒前センサ出力の変動度合いが大きくなるほど出力変動パラメータＸは大きくなる。
【００４９】
なお、触媒前センサ出力Ａ／Ｆは増加する場合と減少する場合とがあるので、これら各場合の一方についてだけ上記差ΔＡ／Ｆnあるいはその平均値を求め、これを出力変動パラメータとしても良い。特に１気筒のみリッチずれの場合、当該１気筒に対応した排気ガスを触媒前センサが受けた時にその出力が急速にリッチ側に変化（すなわち急減）するので、減少側のみの値をリッチずれ検出のために用いることも可能である。もっとも、これに限定されず、増加側の値のみを用いることも可能である。
【００５０】
また、触媒前センサ出力の変動度合いに相関する如何なる値をも出力変動パラメータとすることができる。例えば、１エンジンサイクル内における触媒前センサ出力の最大ピークと最小ピークの差（所謂ピークトゥピーク; peak to peak）、または２階微分値の最大ピークまたは最小ピークの絶対値に基づいて、出力変動パラメータを算出することもできる。触媒前センサ出力の変動度合いが大きいほど、触媒前センサ出力の最大ピークと最小ピークの差は大きくなり、また２階微分値の最大ピークまたは最小ピークの絶対値も大きくなるからである。
【００５１】
図５には、インバランス割合ＩＢ（％）と出力変動パラメータＸの関係を示す。図示されるように、インバランス割合ＩＢと出力変動パラメータＸの間には強い相関関係があり、インバランス割合ＩＢの絶対値が増加するほど空燃比変動パラメータＸも増加する。
【００５２】
なお、出力変動パラメータＸの検出値に基づいて気筒間空燃比ばらつき異常を検出することが可能である。すなわち、出力変動パラメータＸの検出値が所定の異常判定値以上であればばらつき異常ありと判定し、出力変動パラメータＸの検出値が異常判定値より小さければばらつき異常なし、即ち正常と判定することができる。
【００５３】
［リッチ制御］
ところで、本実施形態においては、所定値以上の出力変動パラメータＸが検出されたとき、言い換えれば気筒間空燃比のばらつき度合いが大きいことが検出されたとき、所定条件を満たすことを条件として、空燃比をリッチ化するためのリッチ制御が実行される。
【００５４】
１気筒のみの空燃比がストイキから大きくリッチ側にずれると、このリッチずれ気筒から比較的多量の水素が排出される。そしてこの水素の影響で、触媒前センサ１７の出力が真の空燃比に対しリッチ側にずれる（特許文献１参照）。
【００５５】
こうした状態でストイキ制御が通常通り行われると、実際のトータルガスの空燃比がストイキに対しリーン側にずれてしまい、ＮＯｘ排出量の増加が懸念される。
【００５６】
よってこの対策として前述のリッチ制御が行われる。これにより実際のトータルガスのリーンずれを抑制ないし補償し、ＮＯｘ排出量の増加を抑制することができる。
【００５７】
以下にリッチ制御の詳細を説明する。まず第１の例として、リッチ制御を行う際には、前述の空燃比フィードバック制御における目標空燃比Ａ／Ｆｔがリッチ化される。
【００５８】
すなわち、通常の空燃比フィードバック制御の目標空燃比Ａ／Ｆｔはストイキ（＝１４．６）である。これに対し、リッチ制御の目標空燃比Ａ／Ｆｔｒはストイキよりリッチな（小さな）値である。リッチ制御の目標空燃比Ａ／Ｆｔｒは次式（２）により算出される。
【００５９】
【数２】
0005348190.tif 000003
【００６０】
αは、目標空燃比を補正するためのリッチ補正量である。このリッチ補正量αは、一定値（例えば０．４）であってもよいが、本実施形態では少なくとも負荷ＫＬ、具体的には負荷ＫＬと回転数Ｎｅと出力変動パラメータＸに応じて、所定範囲（例えば０．２〜０．６）内で可変設定される。
【００６１】
図６には負荷ＫＬおよび回転数Ｎｅとリッチ補正量αの関係を示す。負荷ＫＬおよび回転数Ｎｅが大きいほど大きなリッチ補正量αが設定される。負荷ＫＬおよび回転数Ｎｅが大きいほど、リッチずれ気筒からの水素排出量が多くなり、実際のトータルガスのリーンずれ量が大きくなる。よってこの特性に合わせて、負荷ＫＬおよび回転数Ｎｅが大きいほど大きなリッチ補正量αを設定し、リッチ化度合いを大きくしている。
【００６２】
図７には出力変動パラメータＸとリッチ補正量αの関係を示す。出力変動パラメータＸが大きいほど大きなリッチ補正量αが設定される。出力変動パラメータＸが大きいほど、リッチずれ気筒におけるリッチずれ度合いが増し、リッチずれ気筒からの水素排出量が多くなり、実際のトータルガスのリーンずれ量が大きくなる。よってこの特性に合わせて、出力変動パラメータＸが大きいほど大きなリッチ補正量αを設定し、リッチ化度合いを大きくしている。
【００６３】
なお、リッチ補正量αは、実際には、上記の関係を予め定めたマップ（関数でもよい。以下同様）を利用して各検出値に基づき設定される。
【００６４】
次に第２の例を説明する。この第２の例では、リッチ制御を行う際、前述の空燃比フィードバック制御における燃料噴射量がリッチ化される。
【００６５】
すなわち、通常の空燃比フィードバック制御において、インジェクタ１２から噴射される最終的な燃料噴射量Ｑｆｎｌは例えば次式（３）から算出される。
【００６６】
【数３】
0005348190.tif 000004
【００６７】
Ｑｂは基本噴射量であり、例えばエアフローメータ５により検出された吸入空気量Ｇａに基づき、式：Ｑｂ＝Ｇａ／１４．６から算出される。Ｋｆは主空燃比フィードバック補正量であり、触媒前センサ１７により検出された空燃比（検出空燃比）とストイキとの差に基づいて算出される。Ｋｒは補助空燃比フィードバック補正量であり、触媒後センサ１８の出力に基づき算出される学習値である。
【００６８】
他方、リッチ制御において、インジェクタ１２から噴射される最終的な燃料噴射量Ｑｆｎｌは次式（３）’から算出される。
【００６９】
【数４】
0005348190.tif 000005
【００７０】
βは、燃料噴射量を補正するためのリッチ補正量であり、この式から明らかなように、燃料噴射量は単純にβだけ増量される。前記同様、リッチ補正量βは、一定値であってもよいが、本実施形態では少なくとも負荷ＫＬ、具体的には負荷ＫＬと回転数Ｎｅと出力変動パラメータＸに応じて、所定範囲内で可変設定される。
【００７１】
負荷ＫＬおよび回転数Ｎｅが大きいほど大きなリッチ補正量αを設定する点、および出力変動パラメータＸが大きいほど大きなリッチ補正量αを設定する点も前記同様である。また、予め定められたマップを利用してリッチ補正量αを設定する点も前記同様である。
【００７２】
上記の第１及び第２の例を含め、リッチ制御は、少なくともエンジンの負荷ＫＬが所定値以上であるときに実行される。特に本実施形態において、リッチ制御は、エンジンの負荷ＫＬと回転数Ｎｅがそれぞれ所定値以上であるときに実行される。
【００７３】
排気ガス中の水素による触媒前センサ出力のリッチずれ、およびこのリッチずれによるＮＯｘ排出量増加の問題は、エンジンの負荷ＫＬが所定値以上である運転領域、特にエンジンの負荷ＫＬと回転数Ｎｅがそれぞれ所定値以上である運転領域において起こる。よってこのような運転領域でのみリッチ制御を行い、その他の運転領域ではリッチ制御を行わない。こうすることで、リッチ制御を行う運転領域を必要な運転領域に限定し、不必要なリッチ制御によるエミッション悪化を防止できる。
【００７４】
以下、リッチ制御を行う運転領域をリッチ化領域という。また特に言及しない限りリッチ制御は第１の例によるものとする。
【００７５】
［リッチ制御の実行／停止］
ところで、本発明者らの研究結果によれば、リッチ化領域においてリッチ制御を継続した場合、リッチ化が過剰となり、ＨＣ排出量が増加する場合があることが判明した。
【００７６】
図８は、本発明を適用しない比較例を示す。（Ａ）はエンジン回転数Ｎｅ、（Ｂ）はエンジン負荷ＫＬ、（Ｃ）はリッチフラグ、（Ｄ）は目標空燃比Ａ／Ｆｔ、（Ｅ）はＨＣ排出量をそれぞれ示す。リッチフラグとは、エンジン運転状態がリッチ化領域に入るとオンされ、エンジン運転状態がリッチ化領域から外れるとオフされるフラグである。（Ｅ）に示すＨＣ排出量は、上流触媒１１から排出されたＨＣの量を意味する。
【００７７】
図示するように、時刻ｔ１で回転数Ｎｅが所定値Ｎｅ１以上となり、時刻ｔ２で負荷ＫＬが所定値ＫＬ１以上となっている。時刻ｔ２でエンジン運転状態がリッチ化領域に入り、リッチフラグがオンされ、リッチ制御が開始されている。リッチ制御は、時刻ｔ３で負荷ＫＬが所定値ＫＬ１未満となるまで、すなわちエンジン運転状態がリッチ化領域から外れるまで、継続されている。なおその後の時刻ｔ４で回転数Ｎｅも所定値Ｎｅ１未満となっている。この比較例では、リッチフラグのオン・オフとリッチ制御の実行・停止とがそれぞれ対応している。
【００７８】
リッチ制御中には、空燃比フィードバック制御における目標空燃比がリッチ化され、目標空燃比がストイキよりリッチな値とされている。
【００７９】
リッチ制御継続中の後半部分において、ＨＣ排出量が所定の許容上限値であるしきい値Ｃｘを超えている。これは、リッチ化が過剰であり、その結果ＨＣ排出量が増加したことを意味する。
【００８０】
特に本発明者らは、ＨＣ排出量増加の原因が、上流触媒１１が吸蔵酸素を放出し尽くしているのになおリッチ制御を継続する点にあることを見出した。
【００８１】
すなわち、リッチ制御におけるリッチ化は、適合を通じて定常的に適正と思われるレベルでなされている。しかし実際には、運転状態が常時変化することも相俟って、リッチ化領域のような比較的高負荷の領域では、リッチ化のない場合であっても排気空燃比がリッチになりがちである。すると、上流触媒１１における吸蔵酸素が次第に放出されて減少し、やがてＨＣを処理するのに不十分な量となる。こうなった時点でＨＣ排出量が増加することとなる。
【００８２】
そこでこれらの知見に基づき、本実施形態は、上流触媒１１の吸蔵酸素量を計測あるいはモニタし、この吸蔵酸素量に応じてリッチ制御を実行または停止するものである。以下この点につき詳細に述べる。
【００８３】
図９は、本発明を適用した本実施形態の実施例を示す。（Ａ）はエンジン回転数Ｎｅ、（Ｂ）はエンジン負荷ＫＬ、（Ｃ）はリッチフラグ、（Ｄ）はＯＳＡフラグ、（Ｅ）は吸蔵酸素量ＯＳＡ、（Ｆ）は目標空燃比Ａ／Ｆｔ、（Ｇ）はＨＣ排出量をそれぞれ示す。吸蔵酸素量ＯＳＡとは、上流触媒１１に吸蔵されている酸素の量を意味する。またＯＳＡフラグは、吸蔵酸素量ＯＳＡの値に応じてオン・オフされるフラグである。
【００８４】
本実施例においては、リッチフラグのオン・オフとリッチ制御の実行・停止とが必ずしも対応していない。すなわち、リッチフラグオン＆ＯＳＡフラグオンのときにリッチ制御が実行され、それ以外のときにはリッチ制御が停止される。リッチ制御停止時すなわち通常時には前述のストイキ制御が実行される。
【００８５】
時刻ｔ２から時刻ｔ３までの間でエンジン運転状態がリッチ化領域に入っている点、およびこの間でリッチフラグがオンとなっている点は比較例と同様である。但し図示する実施例においては、時刻ｔ２から時刻ｔ３までの間で吸蔵酸素量ＯＳＡに応じてＯＳＡフラグがオン・オフされ、リッチ制御が実行・停止されている。つまり、比較例ではリッチ制御が継続されるような回転負荷条件であっても、本実施例ではリッチ制御が一時的に停止されることがあり、またリッチ制御が断続的に行われることがある。
【００８６】
リッチ制御は、吸蔵酸素量ＯＳＡの計測値が所定の下限しきい値Ａ１を下回らないように実行または停止される。具体的には、リッチ制御の実行中に吸蔵酸素量ＯＳＡの計測値が減少し、下限しきい値Ａ１に達した時（時刻ｔ２１，ｔ２３，ｔ２５）、ＯＳＡフラグがオフされ、リッチ制御が停止される（すなわちリッチカットが実行される）。また、リッチ制御の停止中に吸蔵酸素量ＯＳＡの計測値が増加し、所定の上限しきい値Ａ２に達した時（時刻ｔ２２，ｔ２４）、ＯＳＡフラグがオンされ、リッチ制御が再開される。下限しきい値Ａ１は例えば１００（ｇ）、上限しきい値Ａ２は例えば３００（ｇ）である。
【００８７】
このように、吸蔵酸素量ＯＳＡが下限しきい値Ａ１を下回らないようにリッチ制御が実行または停止され、吸蔵酸素量ＯＳＡが所定の下限しきい値Ａ１に達した時にリッチ制御を停止するので、過剰なリッチ化を防止し、上流触媒１１に吸蔵された酸素を放出し尽くす前にリッチ制御を停止することができる。そして時刻ｔ２から時刻ｔ３までの間の後半部分においても、（Ｇ）に示すように、ＨＣ排出量がしきい値Ｃｘを超えることを防止できる。よって上流触媒１１が、ＨＣを処理できなくなるような酸素不足状態になることを回避し、ＨＣ排出量の増加を抑制することができる。この観点から下限しきい値Ａ１は、上流触媒１１のＨＣ処理能力を最低限確保できるような値とされる。
【００８８】
また、吸蔵酸素量ＯＳＡが上限しきい値Ａ２に達した時にリッチ制御を再開するので、リッチ制御の本来の目的であるＮＯｘ抑制も達成できる。
【００８９】
［吸蔵酸素量の計測］
ここで、上流触媒１１の吸蔵酸素量ＯＳＡの計測について説明する。まず、リッチ制御時以外の空燃比フィードバック制御時には、次式（４）により、所定の演算周期毎の吸蔵酸素量ｄＯＳＡが算出される。
【００９０】
【数５】
0005348190.tif 000006
【００９１】
ＡＦ１は、通常時仮想空燃比と称し、ストイキ（１４．６）よりリーンな値（例えば１５．０）とされる。またＢも適合により定められる係数で、例えば３．７７とされる。Ｇａは吸入空気量である。
【００９２】
通常時仮想空燃比ＡＦ１は、空燃比フィードバック制御実行時における実際の排気空燃比の値を反映するように設定される。すなわち、１気筒のみリッチずれが生じているときには、触媒前センサ１７の検出空燃比がストイキとなるよう制御されているにも拘わらず、実際の排気空燃比がストイキよりリーンとなっている。またそもそも触媒前センサ１７の検出空燃比自体が不正確である。そこで本実施形態では空燃比フィードバック制御実行時の実際の排気空燃比を固定値（ＡＦ１＝１５．０）として、演算周期毎の吸蔵酸素量ｄＯＳＡを算出している。但し、触媒前センサ１７の検出空燃比に基づいて通常時仮想空燃比ＡＦ１を設定してもよい。
【００９３】
この演算周期毎の吸蔵酸素量ｄＯＳＡを演算周期毎に積算することにより、各演算時期の吸蔵酸素量ＯＳＡが算出ないし計測される。式（４）において（ＡＦ１−１４．６）＞０なので、空燃比フィードバック制御時には吸蔵酸素量ＯＳＡの値が増加していく。図９のｔ２１〜ｔ２２、ｔ２３〜ｔ２４、ｔ２５〜を参照のこと。
【００９４】
次に、リッチ制御実行時には、次式（５）により、演算周期毎の吸蔵酸素量ｄＯＳＡが算出される。
【００９５】
【数６】
0005348190.tif 000007
【００９６】
ＡＦ２は、リッチ時仮想空燃比と称し、ストイキ（１４．６）よりリッチな値、特にリッチ制御の目標空燃比Ａ／Ｆｔｒと等しい値とされている。リッチ時仮想空燃比ＡＦ２は、一定値（例えば１４．２）であってもよいが、本実施形態では少なくとも負荷ＫＬ、具体的には負荷ＫＬと回転数Ｎｅと出力変動パラメータＸに応じて、所定範囲（例えば１４．０〜１４．４）内で可変設される。このリッチ時仮想空燃比ＡＦ２も、リッチ制御実行時における実際の排気空燃比の値を反映するように設定されている。
【００９７】
式（５）において（ＡＦ２−１４．６）＜０なので、リッチ制御時には吸蔵酸素量ＯＳＡの値が減少していく。図９のｔ２〜ｔ２１、ｔ２２〜ｔ２３、ｔ２４〜ｔ２５を参照のこと。
【００９８】
なお、燃料噴射を停止するフューエルカット（Ｆ／Ｃ）制御の実行時には、次式（６）により、演算周期毎の吸蔵酸素量ｄＯＳＡが算出される。
【００９９】
【数７】
0005348190.tif 000008
【０１００】
式（６）から明らかなように、Ｆ／Ｃ制御時には吸蔵酸素量ＯＳＡの値が急速に増加する。
【０１０１】
図９の図示例についてさらに詳述する。まず、リッチフラグがオンになる時刻ｔ２より前では、通常の空燃比フィードバック制御が実行されている。このとき、吸蔵酸素量ＯＳＡの値は徐々に増加し、所定の最大酸素量Ａ３に達するとその値に保持される。つまり吸蔵酸素量ＯＳＡの計測値は最大酸素量Ａ３を上回らない。最大酸素量Ａ３は例えば５００（ｇ）である。
【０１０２】
この状態から時刻ｔ２でリッチフラグがオンになると、吸蔵酸素量ＯＳＡの値が下限しきい値Ａ１より大きいのでＯＳＡフラグがオンされ（詳しくは後述）、リッチ制御が開始される。
【０１０３】
リッチ制御開始後、吸蔵酸素量ＯＳＡの値は徐々に減少していき、時刻ｔ２１で下限しきい値Ａ１に達する。するとＯＳＡフラグがオフされ、リッチ制御が停止され、通常の空燃比フィードバック制御が開始される。
【０１０４】
リッチ制御停止後、吸蔵酸素量ＯＳＡの値は徐々に増加していき、時刻ｔ２２で上限しきい値Ａ２に達する。するとＯＳＡフラグがオンされ、通常の空燃比フィードバック制御が停止され、リッチ制御が再開される。
【０１０５】
このように、ＯＳＡフラグのオン・オフにはヒステリシス特性があり、吸蔵酸素量ＯＳＡの減少時にＯＳＡ＝Ａ１となった時にフラグオン、吸蔵酸素量ＯＳＡの増加時にＯＳＡ＝Ａ２となった時にフラグオフされる。
【０１０６】
このようなリッチ制御の実行・停止を繰り返すうちに、時刻ｔ３でリッチフラグがオフとなる。すると同時にＯＳＡフラグもオフされ、通常の空燃比フィードバック制御が実行される。一方、吸蔵酸素量ＯＳＡの計測はリッチフラグがオフのときにも実行されている。時刻ｔ３の後、吸蔵酸素量ＯＳＡの値は徐々に増加し、やがて最大酸素量Ａ３に達してその値に保持される。
【０１０７】
［出力変動パラメータ検出ルーチン］
次に、図１０を用いて、出力変動パラメータＸを検出するためのルーチンを説明する。このルーチンはＥＣＵ２０により所定の演算周期τ毎に繰り返し実行される。
【０１０８】
まずステップＳ１０１では、検出を行うのに適した所定の前提条件が成立しているか否かが判断される。この前提条件は、例えば次の各条件が成立したときに成立する。
（１）エンジンの暖機が終了している。ＥＣＵ２０は、水温センサ（図示せず）で検出された水温が所定値（例えば７５℃）以上であるとき暖機終了と判断する。
（２）触媒前センサ１７および触媒後センサ１８が活性化している。ＥＣＵ２０は、両センサのインピーダンスがそれぞれ所定の活性温度相当の値になっているとき、両センサが活性化していると判断する。
（３）上流触媒１１および下流触媒１９が活性化している。ＥＣＵ２０は、エンジン運転状態に基づき推定した上流触媒１１および下流触媒１９の温度がそれぞれ所定の活性温度相当の値になっているとき、両触媒が活性化したと判断する。
（４）エンジンが定常運転中である。ＥＣＵ２０は、エンジンの回転数Ｎｅと負荷ＫＬの所定時間内の変動幅が所定値以内のとき、エンジンが定常運転中と判断する。
（５）通常の空燃比フィードバック制御の実行中である。
【０１０９】
前提条件が成立していない場合にはルーチンが終了される。他方、前提条件が成立している場合には、ステップＳ１０２において、今回のタイミングにおける触媒前センサ出力Ａ／Ｆnが取得される。なお触媒前センサ出力Ａ／Ｆnは触媒前センサ１７の出力電圧Ｖｆを空燃比に換算した値である。
【０１１０】
次に、ステップＳ１０３において、今回の演算時期における出力差ΔＡ／Ｆnが前式（１）より算出される。
【０１１１】
次に、ステップＳ１０４において、出力差ΔＡ／Ｆnが積算され、すなわち今回のタイミングにおける積算出力差ΣΔＡ／Ｆnが次式（７）より算出される。
【０１１２】
【数８】
0005348190.tif 000009
【０１１３】
次に、ステップＳ１０５において、１エンジンサイクルが終了したか否かが判断される。終了してなければルーチンが終了され、終了した場合にはステップＳ１０６に進む。
【０１１４】
ステップＳ１０６では、今回の１エンジンサイクル終了時点における最終的な積算出力差ΣΔＡ／ＦNがサンプル数Ｎで除して平均化され、平均出力差Ｒmが算出される。
【０１１５】
そしてステップＳ１０７において、平均出力差Ｒmが積算され、すなわち今回のエンジンサイクル終了時における積算平均出力差ΣＲmが次式（８）より算出される。
【０１１６】
【数９】
0005348190.tif 000010
【０１１７】
次に、ステップＳ１０８において、Ｍエンジンサイクル（但しＭは２以上の整数）が終了したか否かが判断される。終了してなければルーチンが終了され、終了した場合にはステップＳ１０９に進む。
【０１１８】
ステップＳ１０９では、Ｍエンジンサイクル終了時点における最終的な積算平均出力差ΣＲMがサイクル数Ｍで除して平均化され、出力変動パラメータＸが算出される。この算出された出力変動パラメータＸが最終的な検出値としての出力変動パラメータＸとされる。
【０１１９】
［吸蔵酸素量計測ルーチン］
次に、図１１を用いて、吸蔵酸素量ＯＳＡを計測するためのルーチンを説明する。このルーチンもＥＣＵ２０により所定の演算周期τ毎に繰り返し実行される。
【０１２０】
ステップＳ２０１では、リッチ制御が実行されているか否かが判断される。リッチ制御が実行されている場合、ステップＳ２０２に進んで、前式（５）により、今回の演算時期における演算周期毎の吸蔵酸素量ｄＯＳＡnが算出される。
【０１２１】
次いでステップＳ２０３において、今回の演算時期における吸蔵酸素量ＯＳＡnが次式（９）により算出される。
【０１２２】
【数１０】
0005348190.tif 000011
【０１２３】
ｎは今回値、ｎ−１は前回値を表す。式（９）により、前回の吸蔵酸素量ＯＳＡn-1に今回の演算周期毎の吸蔵酸素量ｄＯＳＡnが積算されて今回の吸蔵酸素量ＯＳＡnが算出されることが分かる。
【０１２４】
次いでステップＳ２０４において最大値処理が実行される。すなわち、ステップＳ２０３で算出された今回の吸蔵酸素量ＯＳＡnが前述の最大酸素量Ａ３以下であるときは、今回の吸蔵酸素量ＯＳＡnが最終的な吸蔵酸素量ＯＳＡの計測値とされる。他方、ステップＳ２０３で算出された今回の吸蔵酸素量ＯＳＡnが前述の最大酸素量Ａ３を超えているときは、最大酸素量Ａ３が最終的な吸蔵酸素量ＯＳＡの計測値とされる。
【０１２５】
一方、ステップＳ２０１でリッチ制御が実行されてないと判断された場合、ステップＳ２０５に進んで、Ｆ／Ｃ制御が実行されているか否かが判断される。Ｆ／Ｃ制御が実行されている場合、ステップＳ２０６に進んで、前式（６）により、今回の演算時期における演算周期毎の吸蔵酸素量ｄＯＳＡnが算出される。その後はステップＳ２０３，Ｓ２０４が前記同様に実行される。
【０１２６】
一方、ステップＳ２０５でＦ／Ｃ制御が実行されてないと判断された場合、ステップＳ２０７に進んで、通常の空燃比フィードバック制御が実行されていると実質的に判断され、前式（４）により、今回の演算時期における演算周期毎の吸蔵酸素量ｄＯＳＡnが算出される。その後はステップＳ２０３，Ｓ２０４が前記同様に実行される。
【０１２７】
［ＯＳＡフラグ処理］
次に、図１２を用いて、ＯＳＡフラグ処理に関するルーチンを説明する。このルーチンもＥＣＵ２０により所定の演算周期τ毎に繰り返し実行される。
【０１２８】
まずステップＳ３０１では、リッチフラグがオンか否かが判断される。オンでなければステップＳ３０４に進んでＯＳＡフラグがオフされる。
【０１２９】
他方、リッチフラグがオンの場合、ステップＳ３０２に進んで、前回の演算時期におけるＯＳＡフラグがオンか否かが判断される。
オンの場合、リッチ制御が実行中であり、吸蔵酸素量ＯＳＡの計測値が減少中であることを意味する。この場合、ステップＳ３０３に進んで、吸蔵酸素量ＯＳＡの計測値が下限しきい値Ａ１以下か否か、すなわち実質的に吸蔵酸素量ＯＳＡの計測値が下限しきい値Ａ１に達したか否かが判断される。
吸蔵酸素量ＯＳＡの計測値が下限しきい値Ａ１以下の場合、ステップＳ３０４に進んでＯＳＡフラグがオフされる。また吸蔵酸素量ＯＳＡの計測値が下限しきい値Ａ１より大きい場合、ステップＳ３０６に進んでＯＳＡフラグがオンされる。
【０１３０】
他方、ステップＳ３０２において、前回の演算時期におけるＯＳＡフラグがオンでない（オフである）と判断された場合、リッチ制御が停止中であり、吸蔵酸素量ＯＳＡの計測値が増加中であることを意味する。この場合、ステップＳ３０５に進んで、吸蔵酸素量ＯＳＡの計測値が上限しきい値Ａ２以上か否か、すなわち実質的に吸蔵酸素量ＯＳＡの計測値が上限しきい値Ａ２に達したか否かが判断される。
吸蔵酸素量ＯＳＡの計測値が上限しきい値Ａ２以上の場合、ステップＳ３０６に進んでＯＳＡフラグがオンされる。
【０１３１】
他方、吸蔵酸素量ＯＳＡの計測値が上限しきい値Ａ２未満の場合、ステップＳ３０４に進んでＯＳＡフラグがオフされる。
【０１３２】
［リッチ制御ルーチン］
次に、図１３を用いて、リッチ制御に関するルーチンを説明する。このルーチンもＥＣＵ２０により所定の演算周期τ毎に繰り返し実行される。
【０１３３】
まずステップＳ４０１では、リッチ制御を行うのに適した所定の前提条件が成立しているか否かが判断される。この前提条件は、例えば、前述のステップＳ１０１における条件（１）〜（３）が成立したときに成立する。
【０１３４】
前提条件が成立していない場合にはルーチンが終了される。他方、前提条件が成立している場合には、ステップＳ４０２において、図１０のルーチンにより検出された出力変動パラメータＸの値が所定のばらつき判定値Ｘ１以上であるか否かが判断される。
ばらつき判定値Ｘ１は、リッチ制御を行わないとＮＯｘ排出量が許容レベルを超えてしまうような比較的大きな気筒間空燃比ばらつき度合いに対応した値とされ、例えばインバランス割合で３０（％）相当とされる。なお、出力変動パラメータＸの検出値を所定の異常判定値と比較して気筒間空燃比ばらつき異常を検出する場合には、ばらつき判定値Ｘ１を異常判定値と等しくすることもできる。
【０１３５】
出力変動パラメータＸの検出値がばらつき判定値Ｘ１以上である場合、ステップＳ４０３に進み、リッチフラグがオンであるか否か、すなわちエンジン運転状態がリッチ化領域内にあるか否かが判断される。
リッチフラグがオンの場合、ステップＳ４０４に進み、ＯＳＡフラグがオンであるか否か、すなわち上流触媒１１の吸蔵酸素量ＯＳＡがＨＣを処理するのに十分であるか否かが判断される。
ＯＳＡフラグがオンの場合、ステップＳ４０５に進んでリッチ制御が実行される。
【０１３６】
他方、ステップＳ４０２で出力変動パラメータＸの検出値がばらつき判定値Ｘ１未満の場合、ステップＳ４０３でリッチフラグがオフの場合、およびステップＳ４０４でＯＳＡフラグがオフの場合のいずれも、ステップＳ４０６に進んで、リッチ制御が停止される。これにより、ストイキを目標空燃比とする通常の空燃比フィードバック制御が実行される。
【０１３７】
本実施形態には次のような利点もある。本実施形態は、気筒間空燃比ばらつき異常に起因して出力変動パラメータＸの値が大きくなった場合（ばらつき異常時）のみならず、異常は生じていないがエンジン運転状態の過渡的変化等によりたまたま出力変動パラメータＸの値が大きくなった場合（正常時）にも、リッチ制御を実行・停止してＨＣ排出量の増加を抑制できる利点がある。つまり本実施形態は、気筒間空燃比ばらつき異常が発生していない正常時にも有効である。正常時の例としては他に、適合値が実際のエンジン運転状態に不適切となりリッチ制御時に過剰にリッチ化されてしまう場合が挙げられる。
【０１３８】
［他の実施形態］
次に、他の実施形態を説明する。なお上記実施形態と同様の部分については説明を省略し、以下相違点を中心に説明する。
【０１３９】
まず第１の変形例を説明する。この第１の変形例では、リッチ制御の実行中、計測された吸蔵酸素量ＯＳＡに応じてリッチ化度合いが変更される。
【０１４０】
すなわち、上記実施形態では、リッチ制御中の目標空燃比Ａ／Ｆｔｒを負荷ＫＬと回転数Ｎｅと出力変動パラメータＸに応じて可変設定した。これに対し、第１の変形例では、リッチ制御中の目標空燃比Ａ／Ｆｔｒを、上記３要素に加え、吸蔵酸素量ＯＳＡに応じても可変設定する。
【０１４１】
図１４には吸蔵酸素量ＯＳＡとリッチ補正量αの関係を示す。吸蔵酸素量ＯＳＡが大きいほど大きなリッチ補正量αが設定され、目標空燃比Ａ／Ｆｔｒの値が小さくなり（式（２）参照）、リッチ化度合いが大きくされる。
【０１４２】
この場合、図９を参照して、例えば最初にリッチ制御が開始される時刻ｔ２の直後においては、吸蔵酸素量ＯＳＡの計測値が大きいので、目標空燃比Ａ／Ｆｔｒの値が小さくなり、リッチ化度合いが大きくされる。この際には上流触媒１１にまだ吸蔵酸素が十分残っているので、リッチ化度合いを大きくしてもＨＣ排出の問題は生じない。
【０１４３】
この後、リッチ制御を継続し、吸蔵酸素量ＯＳＡの計測値が徐々に減少するにつれ、目標空燃比Ａ／Ｆｔｒの値が徐々に小さくされ、リッチ化度合いも徐々に小さくされる。すなわち上流触媒１１の吸蔵酸素量の減少につれリッチ化度合いが減少されていく。
【０１４４】
よって、上流触媒１１のＨＣ処理能力の低下に合わせてリッチ化度合いを減少し、ＨＣ排出量の増加を一層抑制できる。
【０１４５】
なお、この第１の変形例は、リッチ制御の第２の例すなわちリッチ制御時に燃料噴射量をリッチ化する場合にも適用可能である。
【０１４６】
次に第２の変形例を説明する。この第２の変形例では、ばらつき判定値Ｘ１以上の出力変動パラメータＸが検出されたとき、その原因となった気筒すなわち異常気筒を特定する。そして、触媒前センサ１７に対する異常気筒からの排気ガスのガス当たり強度に応じて、リッチ制御を停止する吸蔵酸素量の値すなわち下限しきい値Ａ１を変更する。
【０１４７】
多気筒エンジンの場合、気筒に応じて、触媒前センサ１７に対する排気ガスのガス当たり強度が異なる。気筒間のガス当たり強度の相違は主に触媒前センサ１７の設置位置や、センサ上流側の排気通路構造に起因する。このガス当たり強度の相違に起因して、適切な下限しきい値Ａ１の値は、どの気筒が異常気筒かによって異なる。よって異常気筒に応じて適切な下限しきい値Ａ１の値を設定するのがこの第２の変形例である。
【０１４８】
気筒毎のガス当たり強度の相違は予め実験的に把握でき、また気筒番号とガス当たり強度との対応関係はＥＣＵ２０に予め情報として入力しておくことができる。
【０１４９】
図１５には、空燃比リッチずれを起こしている異常気筒がガス当たり強度の強い気筒である場合の吸蔵酸素量ＯＳＡの変化を示す。なお図は図９（Ｅ）の時刻ｔ２〜ｔ２１の部分を拡大して示す。実線は吸蔵酸素量ＯＳＡの計測値を示し、破線は吸蔵酸素量ＯＳＡの真値を示す。
【０１５０】
異常気筒がガス当たり強度の強い気筒である場合、吸蔵酸素量ＯＳＡの計測値に対し、吸蔵酸素量ＯＳＡの真値は大きくなる傾向にある。その理由は次の通りである。
【０１５１】
すなわち、触媒前センサ１７が異常気筒からのリッチガスを顕著に受け、その影響で出力変動パラメータＸの値が相対的に大きくなり、リッチ制御におけるリッチ化度合いが大きくなる（図７参照）。しかしトータルガスの真の空燃比は、触媒前センサ１７で検出される空燃比ほどリッチではない。よってこの検出誤差の影響で、吸蔵酸素量ＯＳＡの真値は、吸蔵酸素量ＯＳＡの計測値より多くなる傾向にある。
【０１５２】
すると計測値が、基準の下限しきい値Ａ１に達した時点では、まだ真値が下限しきい値Ａ１に達しておらず、上流触媒１１はまだ十分に吸蔵酸素を放出しきっていない。そこで、下限しきい値を基準値Ａ１からより小さい値Ａ１’に変更する。この値Ａ１’は、計測値が当該値Ａ１’に達した時点で真値が基準値Ａ１に達するような値である。こうすることにより、真の吸蔵酸素量ＯＳＡが基準値Ａ１に達するまでリッチ制御を継続することができ、リッチ制御が予定よりも早めに停止されてしまうことを防止できる。
【０１５３】
次に、図１６には、空燃比リッチずれを起こしている異常気筒がガス当たり強度の弱い気筒である場合を示す。この場合、吸蔵酸素量ＯＳＡの計測値に対し、吸蔵酸素量ＯＳＡの真値は小さくなる傾向にある。その理由は次の通りである。
【０１５４】
すなわち、触媒前センサ１７が異常気筒からのリッチガスの影響を受け辛いので、出力変動パラメータＸの値が相対的に小さくなり、リッチ制御におけるリッチ化度合いが小さくなる（図７参照）。しかしトータルガスの真の空燃比は、触媒前センサ１７で検出される空燃比よりリッチである。よってこの検出誤差の影響で、吸蔵酸素量ＯＳＡの真値は、吸蔵酸素量ＯＳＡの計測値より少なくなる傾向にある。
【０１５５】
すると仮に、計測値が基準の下限しきい値Ａ１に達するまでリッチ制御を継続したとすると、その時点では真値が下限しきい値Ａ１を下回ってしまう。そこで、下限しきい値を基準値Ａ１からより大きい値Ａ１”に変更する。この値Ａ１”は、計測値が当該値Ａ１”に達した時点で真値が基準値Ａ１に達するような値である。こうすることにより、真の吸蔵酸素量ＯＳＡが基準値Ａ１に達した後もリッチ制御を継続してしまうことを防止し、リッチ制御が予定よりも長く継続されてしまうことを防止できる。そしてこれによるＨＣ排出量増加も防止できる。
【０１５６】
図１７には、本実施形態における気筒毎の下限しきい値の値を示す。＃２および＃３気筒のガス当たり強度は中であり、これらが異常気筒であるときには基準の下限しきい値Ａ１が設定される。これに対し、＃１気筒のガス当たり強度は強であり、これが異常気筒であるときには基準値より小さい下限しきい値Ａ１’が設定される。逆に、＃４気筒のガス当たり強度は弱であり、これが異常気筒であるときには基準値より大きい下限しきい値Ａ１”が設定される。
【０１５７】
次に、異常気筒の特定方法を説明する。この特定方法については様々な方法があるが、そのうち好ましい一例を以下に説明する。
【０１５８】
本実施形態では、気筒毎に燃料噴射量を強制的に増量または減量したときの出力変動パラメータＸの変化に基づき異常気筒を特定する。
【０１５９】
気筒間空燃比ばらつきが発生すると、図３に示したように、そのばらつき度合いに応じて出力変動パラメータＸの大きさが変化するのは前述したとおりである。よってこの特性を利用して異常気筒を特定する。以下その原理を図１８を参照しつつ説明する。
【０１６０】
例えば図１８（Ａ）に示すように、＃１気筒の燃料噴射量のみがストイキ相当量に対し４０％の割合でリッチ側にずれており（即ちインバランス割合が＋４０％）、他の＃２，＃３，＃４気筒では燃料噴射量がストイキ相当量となっている（即ちインバランス割合が０％）場合を想定する。このとき、通常の空燃比フィードバック制御をある程度の時間実行すると、やがて図１８（Ｂ）に示すように、トータルの燃料噴射量がストイキ相当量となるように＃１気筒では＋３０％のインバランス割合、他の＃２，＃３，＃４気筒ではそれぞれ−１０％のインバランス割合となる。このときにもやはり各気筒でストイキ相当量に対し＋または−の噴射量ずれが生じている。よって１エンジンサイクル間で比較的大きな排気空燃比の変動が生じ、出力変動パラメータＸの値は大きい。
【０１６１】
この図１８（Ｂ）の状態から、例えば図１８（Ｃ）に示すように、＃１気筒の燃料噴射量をストイキ相当量の４０％だけ強制的に減量する。こうすると＃１気筒は−１０％のインバランス割合となり、他の＃２，＃３，＃４気筒のインバランス割合と等しくなる。
【０１６２】
この状態から、＃１気筒の燃料噴射量減量状態を維持しつつ、通常の空燃比フィードバック制御をある程度の時間実行すると、やがて図１８（Ｄ）に示すように、各気筒の燃料噴射量が＋１０％ずつ補正され、各気筒の燃料噴射量がストイキ相当量になる（即ち各気筒のインバランス割合は０％）。よって１エンジンサイクル間での排気空燃比の変動は小さくなり、出力変動パラメータＸの値は小さくなる。
【０１６３】
このことから、燃料噴射量を強制的に所定量減量したときに出力変動パラメータＸが所定値以上低下した気筒を異常気筒（特にリッチずれ異常気筒）と特定することができる。
【０１６４】
一方、図１８（Ｂ）の状態から、例えば図１８（Ｅ）に示すように、正常な＃２気筒において燃料噴射量をストイキ相当量の４０％だけ強制的に減量したとする。こうすると各気筒のインバランス割合は＃１気筒では変わらず＋３０％、＃２気筒では−５０％、＃３，＃４気筒では変わらずー１０％となる。
【０１６５】
この状態から、＃２気筒の燃料噴射量減量状態を維持しつつ、通常の空燃比フィードバック制御をある程度の時間実行すると、やがて図１８（Ｆ）に示すように、トータルの燃料噴射量がストイキ相当量となるように＃１気筒では＋４０％、＃２気筒では−４０％、＃３，＃４気筒では０％となる。この場合、１エンジンサイクル間での排気空燃比の変動は大きいままであり、出力変動パラメータＸの値も大きいままである。
【０１６６】
このことから、燃料噴射量を強制的に所定量減量したときに出力変動パラメータＸが所定値以上低下しなかった気筒は異常気筒ではなく、正常気筒であると特定することができる。
【０１６７】
図示しないが、逆のパターンで、例えば図１８（Ａ）の例のうち＃１気筒のみが異常でその燃料噴射量が−４０％少なくなっている（即ちインバランス割合が−４０％）場合を想定する。すると、気筒毎に燃料噴射量を強制的に増量した場合に、出力変動パラメータＸが所定値以上低下した気筒は異常気筒（特にリーンずれ異常気筒）であり、出力変動パラメータＸが所定値以上低下しなかった気筒は正常気筒であると特定することができる。
【０１６８】
従って、気筒毎に燃料噴射量を強制的に増量または減量したときの増量または減量前後の出力変動パラメータＸの変化量を検出し、この変化量が所定値以上である気筒は異常気筒、所定値未満である気筒は正常気筒というように異常気筒が特定される。
【０１６９】
図１９を用いて、下限しきい値設定に関するルーチンを説明する。このルーチンもＥＣＵ２０により実行される。
【０１７０】
まずステップＳ５０１では、図１０のルーチンにより検出された出力変動パラメータＸの値がばらつき判定値Ｘ１以上であるか否かが判断される。ばらつき判定値Ｘ１未満の場合、ルーチンが終了される。
【０１７１】
他方、ばらつき判定値Ｘ１以上である場合、ステップＳ５０２に進み、前述の如き燃料噴射量の強制増量（または減量）を伴う異常気筒特定処理が実行される。ここで異常気筒とは、出力変動パラメータＸの検出値がばらつき判定値Ｘ１以上となる原因となった気筒をいう。
【０１７２】
次にステップＳ５０３において、特定された異常気筒が＃１気筒であるか否かが判断される。＃１気筒である場合、ステップＳ５０４に進んで、下限しきい値として、基準値Ａ１より小さいＡ１’が設定される。
【０１７３】
他方、ステップＳ５０３において、特定された異常気筒が＃１気筒でないと判断された場合、ステップＳ５０５に進んで、特定された異常気筒が＃４気筒であるか否かが判断される。＃４気筒である場合、ステップＳ５０６に進んで、下限しきい値として、基準値Ａ１より大きいＡ１”が設定される。
【０１７４】
他方、ステップＳ５０５において、特定された異常気筒が＃４気筒でないと判断された場合、特定された異常気筒は＃２気筒および＃３気筒のいずれかであるから、ステップＳ５０７に進んで、下限しきい値として基準値Ａ１が設定される。
【０１７５】
なお、リッチ制御を再開する吸蔵酸素量の上限しきい値Ａ２も、触媒前センサ１７に対する異常気筒からの排気ガスのガス当たり強度に応じて変更可能である。
【０１７６】
以上、本発明の好適な実施形態を詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。上記の数値はあくまで例示であり、他の値に変更可能である。
【０１７７】
本発明の実施形態は前述の実施形態のみに限らず、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。
【符号の説明】
【０１７８】
１  内燃機関（エンジン）
２  インジェクタ
１１  上流触媒
１７  触媒前センサ
２０  電子制御ユニット（ＥＣＵ）
【図１】
0005348190.tif 000012
【図２】
0005348190.tif 000013
【図３】
0005348190.tif 000014
【図４】
0005348190.tif 000015
【図５】
0005348190.tif 000016
【図６】
0005348190.tif 000017
【図７】
0005348190.tif 000018
【図８】
0005348190.tif 000019
【図９】
0005348190.tif 000020
【図１０】
0005348190.tif 000021
【図１１】
0005348190.tif 000022
【図１２】
0005348190.tif 000023
【図１３】
0005348190.tif 000024
【図１４】
0005348190.tif 000025
【図１５】
0005348190.tif 000026
【図１６】
0005348190.tif 000027
【図１７】
0005348190.tif 000028
【図１８】
0005348190.tif 000029
【図１９】
0005348190.tif 000030