(57)【特許請求の範囲】
【請求項１】
複数の気筒を有する内燃機関における気筒間空燃比ばらつき異常検出装置であって、
排気通路に設けられた空燃比センサの出力を取得するように作動する取得手段と、
特定気筒の点火時期を所定期間、所定遅角量だけ遅角させる点火時期遅角制御を実行する遅角制御手段と、
該遅角制御手段によって該点火時期遅角制御が実行されていないときに該取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出する非遅角時値算出手段と、
該遅角制御手段によって該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出する遅角時値算出手段と、
該遅角時値算出手段により算出された値に基づいて気筒間空然比ばらつき異常の判定用閾値を算出する閾値算出手段であって、該遅角時値算出手段により算出された値に基づいて空燃比ばらつきの度合いの高いと思われる気筒を特定し、該特定した気筒に関して設定されている値を前記判定用閾値として算出する、閾値算出手段と、
気筒間空然比ばらつき異常の有無を判定するように、前記非遅角時値算出手段により算出された値と前記閾値算出手段により算出された閾値とを比較する比較手段と
を備えた、気筒間空燃比ばらつき異常検出装置。
【請求項２】
前記遅角制御手段は、前記内燃機関の全気筒のそれぞれを１気筒ずつ順に特定気筒にして、特定気筒ごとに前記点火時期遅角制御を実行し、
前記遅角時値算出手段は、各特定気筒において該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて、各特定気筒に関する値として、空燃比の変化を表す値を算出し、
前記閾値算出手段は、前記内燃機関の全気筒のうちで前記遅角時値算出手段により算出された値が最も大きい気筒に関して設定されている値を判定用閾値として算出する、
請求項１に記載の気筒間空然比ばらつき異常検出装置。
【請求項３】
前記遅角制御手段は、前記非遅角時値算出手段により算出された値に基づいて点火遅角量を算出し、該算出された点火遅角量を前記所定遅角量に設定する遅角量設定手段を備える、請求項１または２に記載の気筒間空然比ばらつき異常検出装置。
【請求項４】
前記遅角量設定手段は、前記非遅角時値算出手段により算出された値の大きさが大きいほど、小さな点火遅角量を所定遅角量として設定する、請求項３に記載の気筒間空然比ばらつき異常検出装置。
【請求項５】
前記遅角制御手段は、前記遅角量設定手段により設定される点火遅角量が大きい程、短い期間、前記点火時期遅角制御を実行し、
前記遅角時値算出手段は、前記遅角制御手段による前記点火時期遅角制御の実行期間に応じた分の前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出する、
請求項４に記載の気筒間空然比ばらつき異常検出装置。
【請求項６】
前記遅角制御手段は、前記内燃機関の負荷に基づいて点火遅角量を可変設定する遅角量設定手段を備え、
前記遅角時値算出手段は、該遅角量設定手段によって設定された点火遅角量の平均値に応じて、該遅角制御手段によって前記点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて算出される空燃比の変化を表す値を補正する補正手段を備える、
請求項１または２に記載の気筒間空然比ばらつき異常検出装置。
【請求項７】
前記遅角制御手段は、２つ以上の気筒からなる特定気筒の点火時期を同時期に所定期間、所定遅角量だけ遅角させる点火時期遅角制御を実行し、
前記遅角時値算出手段は、該遅角制御手段により該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出し、
前記閾値算出手段は、前記非遅角時値算出手段により算出される値と、前記遅角時値算出手段により算出される値とを用いて、前記判定用閾値を算出する、
請求項１に記載の気筒間空燃比ばらつき異常検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の気筒を有する内燃機関において気筒間空燃比のばらつき異常を検出するための装置に関する。
【背景技術】
【０００２】
一般に、触媒を利用した排気浄化システムを備える内燃機関では、排気中有害成分の触媒による浄化を高効率で行うため、内燃機関で燃焼される混合気の空気と燃料との混合割合、すなわち空燃比のコントロールが欠かせない。こうした空燃比の制御を行うため、内燃機関の排気通路に空燃比センサを設け、これによって検出された空燃比を所定の目標空燃比に一致させるようフィードバック制御を実施している。
【０００３】
一方、多気筒内燃機関においては、通常全気筒に対し同一の制御量を用いて空燃比制御を行うため、空燃比制御を実行したとしても実際の空燃比が気筒間でばらつくことがある。このときばらつきの程度が小さければ、空燃比フィードバック制御で吸収可能であり、また触媒でも排気中有害成分を浄化処理可能なので、排気エミッションに影響を与えず、特に問題とならない。
【０００４】
しかし、例えば一部の気筒の燃料噴射系が故障するなどして、気筒間の空燃比が大きくばらつくと、排気エミッションを悪化させてしまい、問題となる。このような大きな空燃比ばらつきは異常として検出するのが望ましい。
【０００５】
例えば特許文献１に記載の装置では、空燃比センサの出力値に基づいて検出空燃比の変化率に応じた値が求められ、この値と判定用閾値との比較結果に基づいて、空燃比気筒間インバランス状態が発生しているか否かが判定される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−４７３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、一般的に内燃機関では、排気通路の排気合流部またはその下流側に、複数の気筒からの排気の空燃比検出用に１つの空燃比センサが設けられる。この空燃比センサに至る排気の流れには、気筒間でばらつきが有り得る。例えば、第１気筒からの排気がその空燃比センサの検知部に相対的に達し易く、第１気筒と異なる第２気筒からの排気が同空燃比センサの検知部に相対的に達し難い場合、同センサへのガス当たりに関して気筒間でばらつきが生じ得る。そのため、空燃比異常のある気筒が第１気筒である場合とそれが第２気筒である場合とで検出空燃比の変化率が変化し得るので、気筒間空燃比ばらつき異常をより適切に検出するためには、各気筒から空燃比センサへのガス流れつまりガス当たりをさらに検討することが望まれる。
【０００８】
そこで、本発明は、上記事情に鑑みて創案され、その目的は、複数の気筒を有する内燃機関において、気筒間で空燃比センサへのガスの当たり方にばらつきがある場合であっても、空燃比センサの出力に基づいて、気筒間の空燃比ばらつき異常の有無を適切に検出する装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一の態様によれば、複数の気筒を有する内燃機関における気筒間空燃比ばらつき異常検出装置であって、排気通路に設けられた空燃比センサの出力を取得するように作動する取得手段と、特定気筒の点火時期を所定期間、所定遅角量だけ遅角させる点火時期遅角制御を実行する遅角制御手段と、該遅角制御手段によって該点火時期遅角制御が実行されていないときに該取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出する非遅角時値算出手段と、該遅角制御手段によって該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出する遅角時値算出手段と、該遅角時値算出手段により算出された値に基づいて気筒間空然比ばらつき異常の判定用閾値を算出する閾値算出手段と、気筒間空然比ばらつき異常の有無を判定するように、前記非遅角時値算出手段により算出された値と前記閾値算出手段により算出された閾値とを比較する比較手段とを備えた、気筒間空燃比ばらつき異常検出装置が提供される。
【００１０】
好ましくは、前記遅角制御手段は、前記内燃機関の全気筒のそれぞれを１気筒ずつ順に特定気筒にして、特定気筒ごとに前記点火時期遅角制御を実行し、前記遅角時値算出手段は、各特定気筒において該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて、各特定気筒に関する値として、空燃比の変化を表す値を算出し、前記閾値算出手段は、前記内燃機関の全気筒のうちで前記遅角時値算出手段により算出された値が最も大きい気筒に関して設定されている値を判定用閾値として算出する。
【００１１】
好ましくは、前記遅角制御手段は、前記非遅角時値算出手段により算出された値に基づいて点火遅角量を算出し、該算出された点火遅角量を前記所定遅角量に設定する遅角量設定手段を備える。遅角量設定手段は、前記非遅角時値算出手段により算出された値の大きさが大きいほど、小さな点火遅角量を所定遅角量として設定するとよい。好ましくは、遅角制御手段は、前記遅角量設定手段により設定される点火遅角量が大きい程、短い期間、前記点火時期遅角制御を実行し、遅角時値算出手段は、前記遅角制御手段による前記点火時期遅角制御の実行期間に応じた分の前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出するとよい。
【００１２】
代替的に、好ましくは、前記遅角制御手段は、前記内燃機関の負荷に基づいて点火遅角量を可変設定する遅角量設定手段を備え、前記遅角時値算出手段は、該遅角量設定手段によって設定された点火遅角量の平均値に応じて、該遅角制御手段によって前記点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて算出される空燃比の変化を表す値を補正する補正手段を備える。
【００１３】
さらに代替的に、好ましくは、前記遅角制御手段は、２つ以上の気筒からなる特定気筒の点火時期を同時期に所定期間、所定遅角量だけ遅角させる点火時期遅角制御を実行し、前記遅角時値算出手段は、該遅角制御手段により該点火時期遅角制御が実行されているときに前記取得手段によって取得された前記空燃比センサの出力値に基づいて空燃比の変化を表す値を算出し、前記閾値算出手段は、前記非遅角時値算出手段により算出される値と、前記遅角時値算出手段により算出される値とを用いて、前記判定用閾値を算出する。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る内燃機関の概略図である。
【図２】触媒前センサおよび触媒後センサの出力特性を示すグラフである。
【図３】気筒間空燃比ばらつき度合いに応じた排気空燃比の変動を示すグラフである。
【図４】図３のＵ部に相当する拡大図である。
【図５】インバランス割合と出力変化量との関係を示すグラフである。
【図６】出力変化量と判定用閾値との関係を示すグラフである。
【図７】第１実施形態の気筒間空然比ばらつき異常検出制御ルーチンのフローチャートである。
【図８】第１実施形態の出力変化量算出制御ルーチンのフローチャートである。
【図９】第１実施形態の閾値算出制御ルーチンのフローチャートである。
【図１０】点火時期を遅角させたことによる筒内圧の変化を示すグラフである。
【図１１】第２実施形態の、点火時期遅角制御を行っていないときの出力変化量と点火遅角量との関係を示すグラフである。
【図１２】第３実施形態に関するグラフであり、＃１気筒を異常気筒として、他の気筒を正常気筒として、各気筒を特定気筒として点火時期遅角制御を実行したときの出力変化量の傾向を示すグラフである。
【図１３】第３実施形態に関するグラフであり、ばらつきと、平均化回数と、点火遅角量との関係を示すグラフである。
【図１４】第４実施形態に関するグラフであり、エンジン負荷と、点火遅角量と、出力変化量との関係を示すグラフである。
【図１５】第５実施形態の、出力変化量と気筒との関係を示すグラフである。
【図１６】第５実施形態の出力変化量算出制御ルーチンのフローチャートである。
【図１７】第５実施形態の閾値算出制御ルーチンのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を添付図面に基づき説明する。まず、第１実施形態を説明する。
【００１６】
図１は、本第１実施形態に係る内燃機関の概略図である。図示されるように、内燃機関（エンジン）１は、シリンダブロック２に形成された燃焼室３の内部で燃料および空気の混合気を燃焼させ、ピストンを往復移動させることにより動力を発生する。本実施形態のエンジン１は、自動車に搭載されていて、複数気筒を有する内燃機関つまり多気筒内燃機関であり、より具体的には直列４気筒火花点火式内燃機関である。エンジン１は＃１〜＃４気筒を備える。但し、本発明は、エンジンの気筒数、用途、形式等を特に限定しない。
【００１７】
図示しないが、エンジン１のシリンダヘッドには吸気ポートを開閉する吸気弁と、排気ポートを開閉する排気弁とが気筒ごとに配設されており、各吸気弁および各排気弁はカムシャフトによって開閉させられる。シリンダヘッドの頂部には、燃焼室３内の混合気に点火するための点火プラグ７が気筒ごとに取り付けられている。
【００１８】
各気筒の吸気ポートは気筒毎の枝管４を介して吸気集合室であるサージタンク８に接続されている。サージタンク８の上流側には吸気管１３が接続されており、吸気管１３の上流端にはエアクリーナ９が設けられている。そして吸気管１３には、上流側から順に、吸入空気量を検出するためのエアフローメータ５と、電子制御式のスロットルバルブ１０とが組み込まれている。なお、吸気ポート、枝管４、サージタンク８および吸気管１３はそれぞれ吸気通路の一部を区画形成する。
【００１９】
吸気通路、特に吸気ポート内に燃料を噴射するインジェクタ（燃料噴射弁）１２が気筒ごとに配設されている。インジェクタ１２から噴射された燃料は吸入空気と混合されて混合気をなし、この混合気が吸気弁の開弁時に燃焼室３に吸入され、ピストンで圧縮され、点火プラグ７で点火燃焼させられる。
【００２０】
一方、各気筒の排気ポートは排気マニホールド１４に接続される。排気マニホールド１４は、その上流部をなす気筒毎の枝管１４ａと、その下流部をなす排気集合部１４ｂとからなる。排気集合部１４ｂの下流側には排気管６が接続されている。なお、排気ポート、排気マニホールド１４および排気管６はそれぞれ排気通路の一部を区画形成する。
【００２１】
排気管６の上流側と下流側にはそれぞれ三元触媒からなる排気浄化用触媒を有する上流触媒コンバータ１１と下流触媒コンバータ１９とが直列に取り付けられている。これら触媒コンバータ１１、１９は酸素吸蔵能（Ｏ２ストレージ能）を有する。すなわち、触媒コンバータ１１、１９は、排気ガスの空燃比がストイキ（理論空燃比、例えばＡ／Ｆ＝１４．６）より大きい（リーンな）ときに排気ガス中の過剰酸素を吸蔵し、ＮＯｘを還元する。また触媒コンバータ１１、１９は、排気ガスの空燃比がストイキより小さい（リッチな）ときに吸蔵酸素を放出し、ＨＣ、ＣＯを酸化する。
【００２２】
上流触媒コンバータ１１つまりそこの触媒の上流側および下流側の排気通路にそれぞれ排気ガスの空燃比を検出するための第１および第２の空燃比センサ、すなわち触媒前センサ１７および触媒後センサ１８が設置されている。これら触媒前センサ１７および触媒後センサ１８は、上流触媒コンバータ１１の直前および直後の位置に設置され、排気中の酸素濃度に基づいて空燃比を検出することを可能にする。このように上流触媒コンバータ１１の上流側の排気合流部に単一の触媒前センサ１７が設置されている。
【００２３】
上述の点火プラグ７、スロットルバルブ１０およびインジェクタ１２等は、制御手段または制御装置としての電子制御ユニット（以下ＥＣＵと称す）２０に電気的に接続されている。ＥＣＵ２０は、何れも図示されないＣＰＵ、ＲＯＭおよびＲＡＭを含む記憶装置、および入出力ポート等を含むものである。またＥＣＵ２０には、図示されるように、前述のエアフローメータ５、触媒前センサ１７、触媒後センサ１８のほか、エンジン１のクランク角を検出するクランク角センサ１６、アクセル開度を検出するアクセル開度センサ１５、その他の各種センサが図示されないＡ／Ｄ変換器等を介して電気的に接続されている。ＥＣＵ２０は、各種センサの検出値等に基づいて、所望の出力が得られるように、点火プラグ７、スロットルバルブ１０、インジェクタ１２等を制御し、点火時期、燃料噴射量、燃料噴射時期、スロットル開度等を制御する。このように、ＥＣＵ２０は、点火（時期）制御手段、燃料噴射制御手段、吸入空気量制御手段、空燃比制御手段の各機能を実質的に担う。
【００２４】
スロットルバルブ１０にはスロットル開度センサ（図示せず）が設けられ、スロットル開度センサからの信号がＥＣＵ２０に送られる。ＥＣＵ２０は、通常、アクセル開度に応じて定まる目標スロットル開度に、スロットルバルブ１０の開度（スロットル開度）をフィードバック制御する。
【００２５】
ＥＣＵ２０は、エアフローメータ５からの信号に基づき、単位時間当たりの吸入空気の量すなわち吸入空気量を検出する。そしてＥＣＵ２０は、検出したアクセル開度、スロットル開度および吸入空気量の少なくとも一つに基づき、エンジン１の負荷を検出する。
【００２６】
ＥＣＵ２０は、クランク角センサ１６からのクランクパルス信号に基づき、クランク角自体を検出すると共にエンジン１の回転数を検出する。ここで「回転数」とは単位時間当たりの回転数のことをいい、回転速度と同義である。本実施形態では１分間当たりの回転数ｒｐｍのことをいう。
【００２７】
また、ＥＣＵ２０は、エンジン運転状態、例えばエンジン回転速度およびエンジン負荷に基づいて定められる基準点火時期に対して、点火時期補正制御を行う。ＥＣＵ２０は、点火時期をエンジン１が最大トルクを発生する点火時期（ＭＢＴ）に近づけるように、かつ、ノッキング発生を回避するように、図示しないノックセンサからの出力に基づいて点火プラグ７の作動を制御する。つまり、エンジン１は、点火時期をノック限界付近に制御するようにノックコントロールシステム（ＫＣＳ）を備えている。ノックセンサからの出力に基づいてノック有りと判定された場合には点火遅角し、またノック無しと判定された場合には点火進角するように点火時期は補正制御される。なお、点火順序は、＃１気筒、＃３気筒、＃４気筒、＃２気筒の順である。
【００２８】
第１空燃比検出手段としての触媒前センサ１７は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能である。図２に触媒前センサ１７の出力特性を示す。図示するように、触媒前センサ１７は、排気空燃比に比例した大きさの電圧信号Ｖｆを出力する。排気空燃比がストイキであるときの出力電圧はＶｒｅｆｆ（例えば約３．３Ｖ）である。
【００２９】
他方、第２空燃比検出手段としての触媒後センサ１８は所謂Ｏ２センサからなり、ストイキを境に出力値が急変する特性を持つ。つまり、触媒後センサ１８は、触媒前センサ１７の出力特性に比べて、所定空燃比領域における空燃比変化に対して出力変動が大きいという出力特性を有する。図２に触媒後センサ１８の出力特性を示す。図示するように、排気空燃比がストイキであるときの出力電圧、すなわちストイキ相当値はＶｒｅｆｒ（例えば０．４５Ｖ）である。触媒後センサ１８の出力電圧は所定の範囲（例えば０〜１Ｖ）内で変化する。排気空燃比がストイキよりリーンのとき、触媒後センサの出力電圧はストイキ相当値Ｖｒｅｆｒより低くなり、排気空燃比がストイキよりリッチのとき、触媒後センサの出力電圧はストイキ相当値Ｖｒｅｆｒより高くなる。
【００３０】
上流触媒コンバータ１１および下流触媒コンバータ１９は、それぞれに流入する排気ガスの空燃比Ａ／Ｆがストイキ近傍のときに排気中の有害成分であるＮＯｘ，ＨＣおよびＣＯを同時に浄化する。この三者を同時に高効率で浄化できる空燃比の幅（ウィンドウ）は比較的狭い。
【００３１】
そこでエンジン１の通常運転時、ＥＣＵ２０の空燃比制御ここでは具体的に空燃比フィードバック制御の機能を担う部分は、上流触媒コンバータ１１に流入する排気ガスの空燃比がストイキ近傍に制御されるように、空燃比フィードバック制御（ストイキ制御）を実行する。この空燃比フィードバック制御は、触媒前センサ１７を用いて検出された排気空燃比を所定の目標空燃比であるストイキに一致させるような主空燃比フィードバック制御と、触媒後センサ１８を用いて検出された排気空燃比をストイキに一致させるような補助空燃比フィードバック制御とからなる。具体的には、主空燃比フィードバック制御では、触媒前センサ１７の出力に基づいて検出される現状の排気空燃比を所定の目標空燃比に追従させるために、第１補正係数を演算して、この第１補正係数に基づいてインジェクタ１２からの燃料噴射量を調整するような制御が実行される。そして、さらに補助空燃比フィードバック制御では、触媒後センサ１８の出力に基づいて、第２補正係数を演算し、主空燃比フィードバック制御にて得られた第１補正係数を修正するような制御が実行される。
【００３２】
さて、例えば全気筒のうちの一部の気筒（特に１気筒）に何等かの異常が発生し、気筒間に空燃比のばらつき（インバランス：imbalance）が発生することがある。例えば＃１気筒のインジェクタ１２が故障し、＃１気筒の燃料噴射量が相対的に多くなる結果、＃１気筒の空燃比が他の＃２、＃３および＃４気筒の空燃比よりも大きくリッチ側にずれる場合等である。このときでも前述の主空燃比フィードバック制御により比較的大きな補正量を与えれば、触媒前センサ１７に供給されるトータルガスの空燃比をストイキに近づけることができる場合があるかもしれない。しかし、気筒別に見ると、＃１気筒がストイキより大きくリッチ、＃２、＃３および＃４気筒がストイキより若干リーンであり、全体のバランスとしてストイキとなっているに過ぎず、エミッション上好ましくないことは明らかである。そこでエンジン１には、かかる気筒間空燃比ばらつきが発生した場合、それを異常として検出する気筒間空然比ばらつき異常検出装置２２が備えられている。
【００３３】
ここで、本実施形態における気筒間空燃比ばらつき異常の検出の概略を説明する。
【００３４】
図３に示すように、気筒間空燃比ばらつきが発生すると、１エンジンサイクル（＝７２０°ＣＡ）間での排気空燃比の変動が大きくなる。（Ｂ）の空燃比線図ａ、ｂ、ｃはそれぞればらつき無し、１気筒のみ２０％のインバランス率でリッチずれ、および１気筒のみ５０％のインバランス率でリッチずれの場合の、触媒前センサ１７による検出空燃比Ａ／Ｆを示す。見られるように、ばらつき度合いが大きくなるほど空燃比変動の振幅が大きくなる。
【００３５】
ここでインバランス率（％）とは、気筒間空燃比のばらつき度合いを表す一つのパラメータである。すなわち、インバランス率とは、全気筒のうちある１気筒のみが燃料噴射量ずれを起こしている場合に、その燃料噴射量ずれを起こしている気筒（インバランス気筒）の燃料噴射量がどれくらいの割合で、燃料噴射量ずれを起こしていない気筒（バランス気筒）の燃料噴射量すなわち基準噴射量からずれているかを示す値である。インバランス率をＩＢ、インバランス気筒の燃料噴射量をＱｉｂ、バランス気筒の燃料噴射量すなわち基準噴射量をＱｓとすると、ＩＢ＝（Ｑｉｂ−Ｑｓ）／Ｑｓ×１００で表される。インバランス率ＩＢの絶対値が大きいほど、インバランス気筒のバランス気筒に対する燃料噴射量ずれが大きく、空燃比ばらつき度合いは大きい。
【００３６】
図３から理解されるように、インバランス率が大きいほど、すなわち気筒間空燃比のばらつき度合いが大きいほど、触媒前センサ１７の出力変動が大きくなる。つまり、インバランス率が大きいほど、排気通路における空燃比の変化が大きくなる。
【００３７】
よってこの特性に着目して、気筒間空然比ばらつき異常の検出が実行される。つまり、以下に説明されるように、エンジン１に搭載された気筒間空然比ばらつき異常検出装置２２では、触媒前センサ１７の出力つまり出力値に基づいて、空燃比の変化（または変動）を表す値（以下、出力変化量）を算出し、この値に基づいて気筒間空然比ばらつき異常の検出が実行される。なお、触媒前センサ１７の出力値は触媒前センサ１７を用いて検出された検出値に相当し、空燃比の変化を表す値は検出空燃比の変化率に応じた値に相当する。
【００３８】
以下に、本実施形態における空燃比の変化を表す値つまり出力変化量の導出の演算を説明する。図４は図３のＵ部に相当する拡大模式図であり、特に１エンジンサイクル内の触媒前センサ１７の出力値の変化を簡略的に示す。触媒前センサの出力値としては、ここでは触媒前センサ１７の出力電圧Ｖｆを空燃比Ａ／Ｆに換算した値を用いる。但し触媒前センサ１７の出力電圧Ｖｆを直接、出力値として用いることも可能である。
【００３９】
図４（Ｂ）に示すように、ＥＣＵ２０は、１エンジンサイクル内において、所定時間間隔つまり所定周期τ（単位時間、例えば４ｍｓ）毎に、触媒前センサの出力値Ａ／Ｆを取得するように作動する。そして今回（最新）のタイミング（第２のタイミング）で取得した値Ａ／Ｆｎと、前回のタイミング（第１のタイミング）で取得した値Ａ／Ｆｎ−１との差ΔＡ／Ｆｎを次の（１）式により求める。この差ΔＡ／Ｆｎは今回のタイミングにおける微分値あるいは傾きと言い換えることができる。
ΔＡ／Ｆn＝Ａ／Ｆn−Ａ／Ｆｎ−１      （１）
【００４０】
最も単純には、この差ΔＡ／Ｆｎ、好ましくはその絶対値が空燃比の変化を表す値つまり出力変化量を表す。変動度合いが大きくなるほど空燃比線図の傾きが大きくなり、差ΔＡ／Ｆｎの絶対値が大きくなるからである。そこで所定の１タイミングにおける差ΔＡ／Ｆｎまたはその絶対値を出力変化量とすることができる。
【００４１】
但し、本実施形態では精度向上のため、複数の差ΔＡ／Ｆの平均値に関する値を出力変化量とする。特に、本実施形態では、以下の説明から明らかなように、差ΔＡ／Ｆが正の場合と、負の場合とで、差ΔＡ／Ｆの平均値をそれぞれ求め、それにより出力変化量が求められる。要するに、触媒前センサ１７に関する出力値Ａ／Ｆは増加する場合と減少する場合とがあるので、これら各場合について上記差ΔＡ／Ｆおよびその平均値を求め、それらの各絶対値が出力変化量として用いられ得る。
【００４２】
なお、差ΔＡ／Ｆが正であるか負であるかは無視されてもよい。例えば、正負にかかわらず差ΔＡ／Ｆが求められ、それらの絶対値の平均値が、出力変化量として用いられることもできる。
【００４３】
図５には、インバランス率ＩＢ（％）と、出力変化量Ｘとの関係例を示す。図示されるように、インバランス率ＩＢと出力変化量Ｘとの間には強い相関関係があり、インバランス率ＩＢの絶対値が増加するほど出力変化量Ｘの絶対値も増加する傾向にある。
【００４４】
それ故、出力変化量Ｘに基づいて気筒間空燃比ばらつき異常を検出することが可能である。すなわち、絶対値である出力変化量Ｘが所定の判定用閾値以上であればばらつき異常ありと判定し、絶対値である出力変化量Ｘが所定の判定用閾値未満であればばらつき異常なし、すなわち正常と判定することができる。
【００４５】
ところで、上記したように、ＥＣＵ２０は、出力変化量Ｘと判定用閾値との比較に基づいて気筒間空然比ばらつき異常を検出することができる。しかし、空燃比センサである触媒前センサ１７への各気筒からの排気の流れ方の違いにより触媒前センサ１７での検出値には気筒間でばらつきが有る。それ故、いずれの気筒に異常があるのかにかかわらず、同じ判定用閾値が用いられると、気筒間空然比ばらつき異常を適切に（確実に）検出できない虞がある。
【００４６】
ここで、各気筒からの排気の空燃比センサへの当たり方に顕著なばらつきのある内燃機関を考える。図６（a）では、各気筒に空燃比異常がない場合に上記（１）式に基づいて算出される各気筒の出力変化量つまり傾きが図中右側に表され、当該気筒に空燃比異常がある場合の各気筒の同変化量が図中左側に表されている。さらに、図６（ａ）では、気筒間空然比ばらつき異常の判定用閾値の一例が表されていて、ここでは、全気筒に対して同じ閾値が表されている。この場合、＃１または＃２気筒にそのような異常がある場合、それらの気筒の出力変化量は閾値を越えるのでその異常を検出できるが、＃３または＃４気筒にそのような異常があってもそれらの気筒の出力変化量は閾値を越えないのでその異常を検出できない虞がある。逆に閾値を下げると、異常とはいえない程度の気筒間空然比ばらつきがある場合に、異常有りと判定される虞がある。
【００４７】
そこで、各気筒からの排気の空燃比センサへの当たり方を考慮して予め気筒ごとに関する固有の判定用閾値を定め、好ましくは実験により定め、空燃比ばらつきの度合いの高いと思われる気筒（つまり異常の有る可能性がある気筒）を特定し、特定した気筒に関する判定用閾値と、上記したように求められる値とを比較することで、気筒間空然比ばらつき異常の検出が実行される。例えば、図６（ｂ）に示すように、センサへのガス当たりの強い＃１と＃２気筒に関する閾値は、センサへのガス当たりの弱い＃３と＃４気筒に関する閾値よりも高くされる。
【００４８】
なお、図６は、気筒間でセンサへのガス当たりにばらつきのある内燃機関における、各気筒での出力変化量例を表したものであり、図６（ｂ）の閾値はそれに合わせて全気筒からの排気の出力変化量を考慮せずに表されている。これに対して、実施形態に係る、以下に説明される気筒間空然比ばらつき異常の検出制御における、各気筒に関する判定用閾値は、各気筒でのセンサへのガス当たりのみならず、全気筒からの排気の出力変化量をも考慮しつつ定められる。
【００４９】
以下、本第１実施形態における、このような気筒間空燃比ばらつき異常の検出制御に関して、図７から図９のフローチャートを用いて説明する。なお図７のルーチンは、ＥＣＵ２０により所定の演算周期毎に繰り返し実行され得る。
【００５０】
ただし、以下に詳述される気筒間空然比ばらつき異常検出装置の制御は、以下の説明から明らかなようにＥＣＵ２０により実質的に実行される。そして、ＥＣＵ２０は、気筒間空然比ばらつき異常検出装置２２の取得手段、遅角制御手段、非遅角時値算出手段、遅角時値算出手段、閾値算出手段および比較手段のそれぞれとして機能する複数の部分を有し、それら部分は相互に関連している。
【００５１】
まず、図７のステップＳ７０１では、所定の前提条件が成立しているか否かが判定される。例えば、所定の前提条件には、排気空燃比が所定の空燃比に追従するように上記空燃比フィードバック制御が実行されていることが含まれるとよい。この場合、所定の空燃比は、好ましくは、理論空燃比つまりストイキである。なお、所定の前提条件が成立していることは、図８の演算が行われるとき、特に、触媒前センサの出力取得のときのみに少なくとも満たされているとよい。ただし、本発明は、このような前提条件が、気筒間空然比ばらつき異常の検出制御から省かれることを許容し得る。
【００５２】
より具体的には、本第１実施形態のステップＳ７０１では、例えば次の（条件ａ）から（条件ｅ）が全て成立したときに、所定の前提条件が成立したと判定される。
（条件ａ）エンジンの暖機が終了している。ＥＣＵ２０は、水温センサ（図示せず）を用いて検出された水温が所定値（例えば７５℃）を越えているとき暖機終了と判断する。またエンジンオイルの温度を検出するための油温センサを設け、検出された油温が所定値を越えているとき暖機終了と判断してもよい。
（条件ｂ）触媒前センサ１７および触媒後センサ１８が活性化している。ＥＣＵ２０は、両センサのインピーダンスがそれぞれ所定の活性温度相当の値になっているとき、両センサが活性化していると判断する。
（条件ｃ）上流触媒コンバータ１１および下流触媒コンバータ１９のそれぞれの触媒が活性化している。ＥＣＵ２０は、エンジン運転状態に基づき推定した上流触媒コンバータ１１の触媒の温度および下流触媒コンバータ１９の触媒の温度がそれぞれ所定の活性温度相当の値になっているとき、両触媒が活性化したと判断する。
（条件ｄ）エンジンが定常運転中である。ＥＣＵ２０は、エンジン回転速度と負荷の所定時間内の変動幅が所定値以内のとき、エンジンが定常運転中と判断する。
（条件ｅ）通常の上記空燃比フィードバック制御が実行中である。通常の空燃比フィードバック制御実行時は、ここでは、排気ガスの空燃比がストイキ近傍に制御されるように、空燃比フィードバック制御が実行されているときである。
【００５３】
ステップＳ７０１で、所定の前提条件が成立しているので、肯定判定されると、ステップＳ７０３で、後述される図８に基づく出力変化量算出制御により、出力変化量Ｘが算出される。この出力変化量Ｘは、上記説明から理解され得るように、所定時間における触媒前センサ１７の出力の変化を表した値である。そして、ステップＳ７０５で、後述される図８および図９に基づく閾値算出制御により、判定用閾値が算出される。
【００５４】
そして、ステップＳ７０７で、ステップＳ７０３で算出された出力変化量Ｘが、ステップＳ７０５で算出された判定用閾値と比較される。出力変化量が閾値未満である場合には、ステップＳ７０７で否定判定されて、該ルーチンは終了する。これは、出力変化量が小さいので、気筒間空然比ばらつき異常が検出されなかった、つまり、正常であると判定されたことを意味する。
【００５５】
これに対して、ステップＳ７０７で出力変化量が閾値以上であるので肯定判定された場合には、ステップＳ７０９で異常と判定するように、異常フラグがＯＮにされる。その結果、本実施形態では、運転席のフロントパネルなどに設けられ得る、図示しない警告ランプが点灯される。これにより、運転者などは、エンジン１の点検、修理などを行うことを促される。なお、異常フラグは初期状態では、ＯＦＦにされている。
【００５６】
さて、図８のフローチャートに基づいて、触媒前センサ１７の出力値に基づく出力変化量の算出に関して説明する。
【００５７】
ＥＣＵ２０は、所定時間間隔ごとに、つまり、所定時間が経過するごとに、触媒前センサ１７の出力の取得が実行されるように、構築されている。このセンサ出力取得の所定時間間隔は例えば４ｍｓに設定される。しかし、この所定時間は４ｍｓ以外であってもよく、例えば、４ｍｓから１０ｍｓの間の任意の時間に設定される。より具体的には、クランク角に関連付けて、センサ１７の出力を取得するように、ＥＣＵ２０は作動する。そして、取得された触媒前センサ１７の出力値Ａ／Ｆは、クランク角に関連付けて記憶される。
【００５８】
ステップＳ８０１では、今回の（最新の）出力値Ａ／Ｆｎと、それまでに取得されて記憶されている前回の出力値Ａ／Ｆｎ−１との差ΔＡ／Ｆｎが、上記（１）式に基づいて算出される。
【００５９】
そして、ステップＳ８０１で算出された差ΔＡ／Ｆが正であるか否かがステップＳ８０３で算出される。ステップＳ８０３で、ΔＡ／Ｆが正であるので肯定判定されると、ステップＳ８０５でΔＡ／Ｆが、正の差ΔＡ／Ｆの合計ｐｓｕｍに加算される。そして、ステップＳ８０７で、正の差ΔＡ／Ｆに関する積算カウンタ値ｐｃｏｕｎｔが１だけ増やされる。なお、正の差の合計ｐｓｕｍおよび積算カウンタ値ｐｃｏｕｎｔはそれぞれ初期状態ではゼロに設定されている。
【００６０】
他方、ステップＳ８０３で、補正後ΔＡ／Ｆが正でない（概略的に負である）ので否定判定されると、ステップＳ８０９で、ステップＳ８０１で算出されたΔＡ／Ｆの絶対値が負の差ΔＡ／Ｆの合計ｎｓｕｍに加算される。そして、ステップＳ８１１で、負の差ΔＡ／Ｆに関する積算カウンタ値ｎｃｏｕｎｔが１だけ増やされる。なお、負の差の合計ｎｓｕｍおよび積算カウンタ値ｎｃｏｕｎｔはそれぞれ初期状態ではゼロに設定されている。
【００６１】
そして、ステップＳ８１３で、クランク角ＣＡが０°（つまり７２０°）であるか否かが判定される。なお、ステップＳ８１３でのクランク角は、所定の気筒のクランク角であり、例えば＃１気筒のクランク角である。このステップＳ８１３での判定は、所定期間経過したか否かの判定に含まれ得る。
【００６２】
ステップＳ８１３で肯定されると次のステップＳ８１５が実行されるが、ステップＳ８１３で否定判定されると該ルーチンは終了して、その結果ステップＳ８０１に戻り、上記演算が繰り返される。したがって、所定の気筒のクランク角が７２０°進むまで、上記ステップＳ８０１〜Ｓ８１３が繰り返し実行されて、上記値ｐｓｕｍ、ｎｓｕｍ、ｐｃｏｕｎｔ、ｎｃｏｕｎｔがそれぞれ求められる。
【００６３】
ステップＳ８１３で肯定判定されると、次のステップＳ８１５で、初期状態ではゼロに設定されているカウンタ値Ｃに１が加算される。そして、次のステップＳ８１７では、それまでの正の差ΔＡ／Ｆの平均値の積算値ｐａｖｅｓに最新の正の差の平均値（ｐｓｕｍ／ｐｃｏｕｎｔ）が加算されて、正の差の平均値の積算値ｐａｖｅｓが更新される。同様に、ステップＳ８１７では、さらに、それまでの負の差ΔＡ／Ｆの平均値の積算値ｎａｖｅｓに最新の負の差の平均値（ｎｓｕｍ／ｎｃｏｕｎｔ）が加算されて、負の差の平均値の積算値ｎａｖｅが更新される。なお、初期状態では、正の差の平均値の積算値ｐａｖｅｓおよび負の差の平均値の積算値ｎａｖｅｓはそれぞれゼロに設定されている。
【００６４】
次ぐステップＳ８１９では、上記値ｐｓｕｍ、ｎｓｕｍ、ｐｃｏｕｎｔ、ｎｃｏｕｎｔがそれぞれゼロリセットされる。そして、ステップＳ８２１ではカウンタ値Ｃが所定回数Ｎを超えているか否かが判定される。所定回数Ｎはここでは定数であるが、０であってもよく、また任意の正の整数であってもよい。このステップＳ８２１も、所定期間経過したか否かの判定に含まれる。なお、ステップＳ８２１の回数Ｎは、上記ステップＳ８１３に応じて設定され得る。ステップＳ８２１で否定判定されると、該ルーチンは終了し、その結果上記ステップＳ８０１からＳ８２１が繰り返される。
【００６５】
ステップＳ８２１で肯定判定されると、ステップＳ８２３で、正の差の平均値の積算値ｐａｖｅｓをカウンタ値Ｃで除することにより算出される正の差の平均値（＝ｐａｖｅｓ／Ｃ）と、負の差の平均値の積算値ｎａｖｅｓをカウンタ値Ｃで除することにより算出される負の差の平均値（＝ｎａｖｅｓ／Ｃ）とが比較されて、これらのうちの大きい方が、出力変化量Ｘに設定される。なお、ここで算出される出力変化量は以下の説明では通常時（非遅角時）出力変化量Ｘｎと表され得、ステップＳ７０７で判定用閾値と比較される。
【００６６】
そして、ステップＳ８２５で、カウンタ値Ｃ、正の差の平均値の積算値ｐａｖｅｓおよび負の差の平均値の積算値ｎａｖｅｓがそれぞれゼロリセットされる。
【００６７】
次に、図９のフローチャートに基づいて、ステップＳ７０５での判定用閾値の算出に関して説明する。
【００６８】
ステップＳ９０１では、算出完了フラグがＯＮか否かが判定される。算出完了フラグは、特定気筒の点火時期を所定量遅角させた状態で上記の如く出力変化量が算出されたか否かを判別するためのフラグであり、初期状態ではＯＦＦに設定されている。
【００６９】
算出完了フラグがＯＦＦであるので、ステップＳ９０１で否定判定されると、ステップＳ９０３で、初期状態ではＯＦＦに設定されている点火遅角フラグがＯＮにされる。点火遅角フラグがＯＮにされると、気筒カウンタｃｙｌに応じた気筒を特定気筒としてその気筒での点火時期が所定遅角量だけ遅角するように点火時期遅角制御が実行される。ただし、ここでは、所定遅角量は定数であり、後述する発明思想に基づいて予め実験により定められている。なお、基準となる点火時期は、上記点火時期制御手段による通常の点火時期である。
【００７０】
そして、ステップＳ９０５で、気筒カウンタｃｙｌの気筒に関して点火時期遅角制御が実行されている状態で、図８のフローチャートに基づいて説明されたのと同様に出力変化量が算出される。なお、初期状態では、気筒カウンタｃｙｌはゼロに設定されている。気筒カウンタｃｙｌがゼロのときには、＃１気筒が特定気筒になり、＃１気筒の点火時期が通常設定される点火時期に対して所定量遅角される。また気筒カウンタｃｙｌが１のときには、＃２気筒が特定気筒になり、＃２気筒の点火時期が通常設定される点火時期に対して所定量遅角される。さらに気筒カウンタｃｙｌが２のときには、＃３気筒が特定気筒になり、＃３気筒の点火時期が通常設定される点火時期に対して所定量遅角される。そして同様に、気筒カウンタｃｙｌが３のときには、＃４気筒が特定気筒になり、＃４気筒の点火時期が通常設定される点火時期に対して所定量遅角される。
【００７１】
例えば、気筒カウンタがゼロの場合、ステップＳ９０３で＃１気筒に対して点火時期遅角制御が実行されていて＃２から＃４気筒に関しては通常の点火時期制御のみが成されている状態で、ステップＳ９０５で上記の如く出力変化量（＃１気筒遅角時出力変化量）Ｘ１が算出される。
【００７２】
そして、ステップＳ９０７で気筒カウンタｃｙｌに１が加算されて、気筒カウンタｃｙｌは１になる。ステップＳ９０９では、気筒カウンタｃｙｌが全気筒数Ａｃｙｌ以上つまり４以上か否かが判定される。ここでは、気筒カウンタｃｙｌが１であるので、否定されて、当該ルーチンは終了する。
【００７３】
次のルーチンでは、ステップＳ９０１で否定されて、ステップＳ９０３で、気筒カウンタｃｙｌが１であるので＃２気筒に対して点火遅角制御が実行されていて＃１、＃３、＃４気筒に関しては通常の点火時期制御のみが成されている状態で、ステップＳ９０５で上記の如く出力変化量（＃２気筒遅角時出力変化量）Ｘ２が算出される。このように、繰り返し点火遅角制御および演算が行われることで、各々が遅角時値である、＃１気筒遅角時出力変化量Ｘ１、＃２気筒遅角時出力変化量Ｘ２、＃３気筒遅角時出力変化量Ｘ３、＃４気筒遅角時出力変化量Ｘ４が算出される。
【００７４】
そして、＃４気筒遅角時出力変化量Ｘ４が算出された後のステップＳ９０７では気筒カウンタｃｙｌが４に設定され、ステップＳ９０９で気筒カウンタｃｙｌが４以上なので肯定判定される。その結果、ステップＳ９１１で気筒カウンタｃｙｌはゼロリセットされ、ステップＳ９１３で点火遅角フラグはＯＦＦにされて、ステップＳ９１５で算出完了フラグがＯＮにされて、当該ルーチンは終了する。なお、点火遅角フラグがＯＦＦにされるので、上記点火遅角制御は実行されなくなる。
【００７５】
次のルーチンのステップＳ９０１では、算出完了フラグがＯＮであるので肯定判定されて、ステップＳ９１７で最大出力変化量Ｘｍａｘが算出される。最大出力変化量Ｘｍａｘは、上記＃１から＃４気筒遅角時出力変化量Ｘ１〜Ｘ４のうちの最大値であり、比較演算することで求められる。なお、最大出力変化量Ｘｍａｘは、遅角時通常変化量と通常時出力変化量Ｘｎと差が最も大きな気筒での点火遅角時の出力変化量である。
【００７６】
そして、ステップＳ９１９で、最大出力変化量Ｘｍａｘに対応する気筒つまり気筒対応番号が、閾値設定用気筒対応番号ｉｍｂｃｙｌに設定される。次ぐステップＳ９２１では、予め実験に基づいて設定されている気筒と判定用閾値との関係を定めたデータを、閾値設定用気筒対応番号ｉｍｂｃｙｌで検索することで、閾値が算出される。例えば、最大出力変化量Ｘｍａｘに対応する気筒が＃３気筒である場合、閾値設定用気筒対応番号ｉｍｂｃｙｌは２であり、その気筒対応番号に対応した閾値が算出される。そして、ステップＳ９２３で算出完了フラグがＯＦＦにされて、当該ルーチンは終了する。
【００７７】
このように、ある気筒を特定気筒としてその気筒に対して点火時期遅角制御を実行し、そのときの出力変化量つまり傾きの絶対値が大きな特定気筒に応じて、判定用閾値が設定される。この設定理由を図１０に基づいて説明する。
【００７８】
図１０には、横軸にクランク角または時間をとり、筒内圧の変化が表されている。図１０のｔ１は通常の点火時期制御での点火時期であり、図１０のｔ２は点火遅角フラグがＯＮにされることで遅角された点火時期である。通常の点火時期に点火すると、筒内圧は線Ａで表すように変化する。これに対して、点火時期が遅角されると、筒内圧は線Ｂで表すように変化する。図１０から理解できるように、点火遅角時の方が、通常点火時よりも、排気ポートを開いたときの筒内圧が高く、燃焼室から排気通路へ流れ出るガスの流速が早い。
【００７９】
したがって、点火時期遅角制御が実行される特定気筒が異常気筒つまりインバランス気筒である場合、その気筒からの排気流速が増すので、触媒前センサ１７付近の排気が、他の正常気筒の排気から異常気筒の排気へ切り替わる速さが増す。その結果、この場合、上記したように求められる出力変化量は大きくなる。
【００８０】
これに対して、点火時期遅角制御が実行される特定気筒が正常気筒である場合、その気筒からの排気流速が増すが、異常気筒の排気流速は変わらず、触媒前センサ１７付近の排気が、正常気筒の排気から異常気筒の排気へ切り替わる速さは変わらない。その結果、この場合、上記したように求められる出力変化量は大きく変わらない。
【００８１】
これらより、点火時期遅角制御を実行したときの出力変化量が最大となる気筒が、最も異常気筒の疑いのある気筒であると特定できる。したがって、この気筒に関する値が判定用閾値として設定されることで、適切に、気筒間空然比ばらつき異常を検出可能になる。
【００８２】
次に、本発明の第２実施形態について説明する。第２実施形態のエンジンの構成は、概ね上記第１実施形態のエンジン１の構成と同じであるので、ここでは上記説明に用いた符号を同様に用いることで、第２実施形態のエンジンの構成の説明は省略される。
【００８３】
第２実施形態のエンジンに適用された、気筒間空然比ばらつき異常検出装置は、特定気筒に対する点火時期遅角制御に関して、上記第１実施形態の気筒間空然比ばらつき異常検出装置に対して異なる点を有する。以下に、その特徴部分のみを説明し、その他の重複する説明は省略される。なお、第２実施形態の気筒間空然比ばらつき異常検出制御は、上で説明された図７から図９に基づく制御と概ね同じである。
【００８４】
第２実施形態の気筒間空然比ばらつき異常検出装置でも、上記したように、図７から図９に基づいて気筒間空燃比ばらつき異常の検出制御が実行される。ただし、特定気筒に対する点火時期遅角制御では点火遅角量が、図８のステップＳ８２３で算出された通常時（非遅角時）出力変化量Ｘｎに基づいて算出される。
【００８５】
第２実施形態では、図１１に表されるマップ化されたデータを、図８のステップＳ８２３で算出された、通常時（非遅角時）出力変化量Ｘｎに基づいて検索することで、点火遅角量が算出される。そして、この点火遅角量が所定遅角量として設定され、上記ステップＳ９０３で点火遅角フラグがＯＮにされると、ステップＳ９０５で特定気筒の点火時期をこの所定遅角量だけ遅角させる点火時期遅角制御が実行される。なお、図１１のデータは、通常時出力変化量Ｘｎ（の大きさ）が大きいほど、小さな点火遅角量が対応するように構築されているので、ここでは、この関係に基づいて算出された点火遅角量が所定遅角量として設定される。なお、図１１のデータは、予め実験により定められ得る。なお、このような点火遅角量の設定は、ＥＣＵ２０の遅角量設定手段として機能する部分により実行される。
【００８６】
このように通常時出力変化量Ｘｎに基づいて点火遅角量を設定する理由は、通常時出力変化量が大きいときは空燃比ばらつき異常がある可能性が高いからである。空燃比ばらつき異常があるときには、インジェクタから噴射される燃料量が多く、多くの未燃成分が排気通路に排出されている場合が含まれ得る。この場合、触媒コンバータつまり触媒で未燃成分の燃焼が生じることがあり、さらに点火時期遅角制御を行うことにより、触媒の過熱が生じる可能性がある。そこで、例えば触媒の熱劣化を防ぐように、通常時出力変化量が大きいときには、相対的に小さな点火遅角量が設定される。
【００８７】
次に、本発明の第３実施形態について説明する。第３実施形態のエンジンの構成は、概ね上記第１実施形態のエンジン１の構成と同じであるので、ここでは上記説明に用いた符号を同様に用いることで、第３実施形態のエンジンの構成の説明は省略される。
【００８８】
第３実施形態のエンジンに適用された、気筒間空然比ばらつき異常検出装置は、特定気筒に対する点火時期遅角制御およびそれを行っているときの出力変化量の算出に関して、上記第２実施形態の気筒間空然比ばらつき異常検出装置に対して異なる点を有する。以下に、その特徴部分のみを説明し、その他の重複する説明は省略される。なお、第３実施形態の気筒間空然比ばらつき異常検出制御は、上で説明された図７から図９に基づく制御と概ね同じである。
【００８９】
本第３実施形態でも、第２実施形態で説明したように、通常時出力変化量Ｘｎに基づいて点火遅角量を算出してそれを所定遅角量として用いて点火時期遅角制御が実行される。そして、このように算出設定される点火遅角量に対して、図９のステップＳ９０５に関するステップＳ８２１での回数Ｎが可変とされる。つまり、遅角時出力変化量を求めるために用いられる差ΔＡ／Ｆの数、要するに、遅角時出力変化量を求めるための上記点火時期遅角制御の実行時間または実行期間が、点火遅角量に応じて可変とされる。
【００９０】
図１２には、＃１気筒を異常気筒として、他の気筒を正常気筒として、各気筒を特定気筒として点火時期遅角制御を実行したときの出力変化量が模式的に表されている。図１２（ａ）は点火遅角量が相対的に大きな場合の遅角時出力変化量を模式的に表し、図１２（ｂ）は点火遅角量が相対的に小さい場合の遅角時出力変化量を模式的に表すが、図１２（ａ）、（ｂ）いずれの場合も、ステップＳ８２１での回数Ｎは同じにされている。
【００９１】
図１２（ａ）に表すように、点火遅角量をある程度大きくすることで、算出値（または検出値）のばらつきの範囲を考慮しても、異常気筒である＃１気筒を特定気筒としたときの遅角時出力変化量を、正常気筒を特定気筒としたときの遅角時出力変化量に対して明確に差別化できる。これに対して、点火遅角量がある程度小さい場合、算出値のばらつきの程度によっては、異常気筒である＃１気筒を特定気筒としたときの遅角時出力変化量を、正常気筒を特定気筒としたときの遅角時出力変化量に対して明確に差別化できない場合があり得る（図１２（ｂ）参照）。
【００９２】
一方、図１３（ａ）に模式的に表すように、出力変化量の算出値のばらつきの範囲は、上記算出で用いる差ΔＡ／Ｆの数つまり平均化回数Ｎを多くすることで、狭められ得る。そこで、本実施形態では、図１３（ｂ）に表すようなマップ化されたデータを用いて、点火遅角量が大きい程、ステップＳ８２１での平均化回数Ｎを少なくし、換言すると、点火遅角量が小さい程、ステップＳ８２１での平均化回数Ｎを大きくする。したがって、このようにすることで、図１２（ｃ）に表すように、点火遅角量が相対的に小さい場合であっても、平均化回数Ｎを図１２（ｂ）の場合よりも多くすることでばらつきの範囲を狭くできるので、適切に、異常気筒である＃１気筒を特定気筒としたときの遅角時出力変化量を、正常気筒を特定気筒としたときの遅角時出力変化量に対して明確に差別化できる。
【００９３】
なお、このような図９のステップＳ９０５に関するステップＳ８２１での平均化回数Ｎの設定は、点火遅角量の設定と共に行われるとよい。ただし、通常時（非遅角時）出力変化量Ｘｎの算出制御に際してのステップＳ８２１での回数Ｎは上記第１実施形態で述べたように定数である。
【００９４】
なお、ステップＳ９０５に関するステップＳ８２１での平均化回数Ｎを点火遅角量が大きい程小さくするということは、点火遅角量が大きいほど、短い時間または期間、特定気筒に対して上記点火時期遅角制御を行うことを意味する。そして、点火時期遅角制御の実行時間または期間に応じた分の空燃比センサ１７の出力値に基づいて遅角時出力変化量が算出される。したがって、点火遅角量が小さいときでも判定用閾値の設定のための気筒判別の精度を保障しつつ、点火遅角量が大きいときには速やかにその気筒判別を完了することができる。
【００９５】
次に、本発明の第４実施形態について説明する。第４実施形態のエンジンの構成は、概ね上記第１実施形態のエンジン１の構成と同じであるので、ここでは上記説明に用いた符号を同様に用いることで、第４実施形態のエンジンの構成の説明は省略される。
【００９６】
第４実施形態のエンジンに適用された、気筒間空然比ばらつき異常検出装置は、特定気筒に対する点火時期遅角制御およびそれを行っているときの出力変化量の算出に関して、上記第１実施形態の気筒間空然比ばらつき異常検出装置に対して異なる点を有する。以下に、その特徴部分のみを説明し、その他の重複する説明は省略される。なお、第４実施形態の気筒間空然比ばらつき異常検出制御は、上で説明された図７から図９に基づく制御と概ね同じである。
【００９７】
本第４実施形態では、エンジン１の負荷（例えばアクセル開度および／または吸入空気量）に基づいて遅角時出力変化量を算出するための点火時期遅角制御における点火遅角量が可変とされる。これは、高負荷運転領域でのエンジン運転の場合、排気温度が上昇し易く、このようなときにも低負荷運転領域での運転の場合と同様に点火遅角を行うと、触媒コンバータつまり触媒が過熱される可能性があるからである。そこで、例えば触媒の熱劣化を防ぐように、ここでは、図１４（ａ）に表すようなマップ化されたデータに基づいて、エンジンサイクル毎に、エンジン運転状態、ここでは特にエンジン負荷に応じて点火遅角量が算出されて所定遅角量として設定される。つまり、遅角時出力変化量の算出用の点火時期遅角制御では、その時々のエンジン運転状態に応じて点火遅角量が可変とされる。なお、このような点火遅角量の設定は、ＥＣＵ２０の遅角量設定手段として機能する部分により実行される。
【００９８】
ここで、負荷に応じて点火遅角量を可変とすると、１気筒ずつ順番に特定気筒をずらして点火時期遅角制御を行っていくので、特定気筒間で点火遅角量にばらつきが生じる。点火遅角量のばらつきにより、異常気筒を特定気筒とした場合の遅角時出力変化量が、正常気筒を特定気筒とした場合の遅角時出力変化量よりも小さくなる可能性がある。
【００９９】
ここで点火遅角量と出力変化量との関係例を表した図１４（ｂ）を参照する。図１４（ｂ）には、異常気筒を特定気筒とした場合の出力変化量の変化例が線Ｌ１で表され、正常気筒を特定気筒とした場合の出力変化量の変化例が線Ｌ２で表されている。一般には、異常気筒を特定気筒とした場合の出力変化量が正常気筒を特定気筒とした場合の出力変化量よりも大きい傾向を示す。しかし、例えば、異常気筒を特定気筒とした場合であって点火遅角量がＤ１である場合の出力変化量は、正常気筒を特定気筒とした場合であって点火遅角量がＤ２である場合の出力変化量よりも小さく、そのような関係が逆転している。そこで、ここでは、遅角時出力変化量を算出するための点火遅角量の平均値を求めて、その平均値に応じて遅角時出力変化量を補正する。なお、このような出力変化量の補正は、ＥＣＵ２０の補正手段として機能する部分により実行される。
【０１００】
例えば、＃１気筒を特定気筒として点火時期遅角制御を実行してそのときの空燃比センサ１７の出力に基づいて＃１気筒遅角時出力変化量Ｘ１を算出する場合を説明する。この場合、図９のステップＳ９０５に関してステップＳ８２１で肯定判定されるまでの複数サイクルにおいて点火時期遅角制御での点火遅角量は変化するので、それら点火遅角量の平均値（平均遅角量）が求められる。そして、この平均遅角量を評価して補正係数を定めるために、ここでは基準遅角量が用いられる。基準遅角量は予め設定されていて、上記のように可変とされる点火遅角量は、基準遅角量を基準に変化するように設定されている。それ故、ここでは、基準遅角量に対する平均遅角量の比の逆数（基準遅角量／平均遅角量）を算出して、この逆数が補正係数とされる。そして、この補正係数が上記したように求められる＃１気筒遅角時出力変化量Ｘ１にかけられて（Ｘ１×補正係数）、補正後の＃１気筒遅角時出力変化量Ｘ１が算出される。この補正後の値は、ステップＳ９１７で、他の気筒に関して同様に求められる補正後の遅角時出力変化量と比較される。
【０１０１】
ここで点火遅角量と出力変化量との関係例を表した図１４（ｃ）を参照する。図１４（ｃ）には、平均遅角量が基準遅角量よりも小さい場合が表されている。この場合、補正係数として１よりも大きな値が算出されて、補正前の遅角時出力変化量が補正後の遅角時出力変化量（図１４（ｃ）の補正値）とされる。なお、補正後の遅角時出力変化量は、平均遅角量を基準遅角量にシフトしたときの出力変化量とみなされ得る。
【０１０２】
以上述べたように、このようにエンジン負荷に基づき点火遅角量を可変とすると共に、出力変化量を補正するので、触媒劣化を適切に抑制しつつ、異常気筒の判別精度を高めることができる。
【０１０３】
次に、本発明の第５実施形態について説明する。第５実施形態のエンジンの構成は、概ね上記第１実施形態のエンジン１の構成と同じであるので、ここでは上記説明に用いた符号を同様に用いることで、第５実施形態のエンジンの構成の説明は省略される。
【０１０４】
第５実施形態のエンジンに適用された、気筒間空然比ばらつき異常検出装置は、特定気筒に対する点火時期遅角制御、出力変化量の算出、および判定用閾値の算出に関して、上記第１実施形態の気筒間空然比ばらつき異常検出装置に対して異なる点を有する。以下に、その特徴部分のみを説明し、その他の重複する説明は省略される。なお、第５実施形態の気筒間空然比ばらつき異常検出制御の以下の説明では、上で説明された図７を用いる。
【０１０５】
図１０に基づいて説明したように、点火遅角を実施することで、排気ポートを開いたときの当該点火遅角実施気筒での筒内圧が上昇し、当該気筒からの排気流速が増す。このような排気流速の増大により、上記したように差ΔＡ／Ｆが変化することがあるが、それは、点火時期遅角制御が成された気筒が異常気筒であるか、また、その異常気筒での空燃比ずれがリーンずれがリッチずれかの影響による。
【０１０６】
ここで、ある気筒の空燃比がリッチにずれた場合を説明する。この場合に、＃１気筒と＃２気筒とで同時期に点火時期遅角制御を実行すると以下の傾向（傾向１Ｒ）〜（傾向４Ｒ）が認められる。
【０１０７】
（傾向１Ｒ）
＃１気筒がリッチずれしている場合について述べる。＃１気筒で点火時期遅角制御が実行されてそこからの排気流速が増すので、触媒前センサ１７での検出空燃比は、＃２気筒の排気による空燃比（リーン）から＃１気筒の空燃比（リッチ）へ速く切り替わるようになるため、センサ出力が小さくなる方に変化するので（図２参照）、負の差ΔＡ／Ｆつまり負の傾きの大きさが大きくなる。一方、＃１気筒の排気空燃比から＃３気筒の排気空燃比へ検出空燃比が切り替わる速さは＃３気筒で上記点火時期遅角制御が実行されていないので速くなり難く、したがって、正の差ΔＡ／Ｆつまり正の傾きは実質的に大きくならない。
【０１０８】
（傾向２Ｒ）
＃２気筒がリッチずれしている場合について述べる。＃２気筒で点火時期遅角制御が実行されてそこからの排気流速が増すので、触媒前センサ１７での検出空燃比は、＃４気筒の排気による空燃比（リーン）から＃２気筒の空燃比（リッチ）へ速く切り替わるようになるため、負の差ΔＡ／Ｆつまり負の傾きの大きさが大きくなる。一方、＃２気筒の排気空燃比から＃１気筒の排気空燃比へ検出空燃比が切り替わる速さは＃１気筒で上記点火時期遅角制御が実行されているので増すので、正の差ΔＡ／Ｆつまり正の傾きは大きくなる。
【０１０９】
（傾向３Ｒ）
＃３気筒がリッチずれしている場合について述べる。＃３気筒では点火時期遅角制御が実行されていないので、触媒前センサ１７での検出空燃比は、＃１気筒の排気空燃比（リーン）から＃３気筒の排気空燃比（リッチ）へ切り替わるときの速さは大きくなく、負の差ΔＡ／Ｆつまり負の傾きの大きさが実質的に大きくならない。一方、＃３気筒の排気空燃比から＃４気筒の排気空燃比へ検出空燃比が切り替わる速さも＃４気筒で上記点火時期遅角制御が実行されていないので速くなり難く、したがって、正の差ΔＡ／Ｆつまり正の傾きは実質的に大きくならない。
【０１１０】
（傾向４Ｒ）
＃４気筒がリッチずれしている場合について述べる。＃４気筒で点火時期遅角制御が実行されていないので、空燃比センサ１７での検出空燃比は、＃３気筒の排気空燃比（リーン）から＃４気筒の排気空燃比（リッチ）へ切り替わるときの速さは速くならず、負の差ΔＡ／Ｆつまり負の傾きの大きさは実質的に大きくならない。一方、＃４気筒の排気空燃比から＃２気筒の排気空燃比へ検出空燃比が切り替わる速さは＃２気筒で上記点火時期遅角制御が実行されているので増し、したがって、正の差ΔＡ／Ｆつまり正の傾きは大きくなる。
【０１１１】
逆に、ある気筒の空燃比がリーンにずれた場合には、＃１気筒と＃２気筒とで同時期に点火時期遅角制御を実行すると以下の傾向（傾向１Ｌ）〜（傾向４Ｌ）が認められる。
【０１１２】
（傾向１Ｌ）
＃１気筒がリーンずれしている場合について述べる。＃１気筒で点火時期遅角制御が実行されてそこからの排気流速が増すので、触媒前センサ１７での検出空燃比は、＃２気筒の排気空燃比（リッチ）から＃１気筒の排気空燃比（リーン）へ速く切り替わるようになるため、センサ出力が大きくなる方に変化するので（図２参照）、正の差ΔＡ／Ｆつまり正の傾きが大きくなる。一方、＃１気筒の排気空燃比から＃３気筒の排気空燃比へ検出空燃比が切り替わる速さは＃３気筒で上記点火時期遅角制御が実行されていないので大きくなり難く、したがって、負の差ΔＡ／Ｆつまり負の傾きの大きさは実質的に大きくならない。
【０１１３】
（傾向２Ｌ）
＃２気筒がリーンずれしている場合について述べる。＃２気筒で点火時期遅角制御が実行されてそこからの排気流速が増すので、触媒前センサ１７での検出空燃比は、＃４気筒の排気空燃比（リッチ）から＃２気筒の排気空燃比（リーン）へ速く切り替わるようになるため、正の差ΔＡ／Ｆつまり正の傾きが大きくなる。一方、＃２気筒の排気空燃比から＃１気筒の排気空燃比へ検出空燃比が切り替わる速さは＃１気筒で上記点火時期遅角制御が実行されているので増すので、負の差ΔＡ／Ｆつまり負の傾きの大きさも大きくなる。
【０１１４】
（傾向３Ｌ）
＃３気筒がリーンずれしている場合について述べる。＃３気筒では点火時期遅角制御が実行されていないので、触媒前センサ１７での検出空燃比は、＃１気筒の排気空燃比（リッチ）から＃３気筒の排気空燃比（リーン）へ切り替わるときの速さは大きくなく、正の差ΔＡ／Ｆつまり正の傾きは実質的に大きくならない。一方、＃３気筒の排気空燃比から＃４気筒の排気空燃比へ検出空燃比が切り替わる速さも＃４気筒で上記点火時期遅角制御が実行されていないので大きくなり難く、したがって、負の差ΔＡ／Ｆつまり負の傾きの大きさは実質的に大きくならない。
【０１１５】
（傾向４Ｌ）
＃４気筒がリーンずれしている場合について述べる。＃４気筒で点火時期遅角制御が実行されていないので、空燃比センサ１７での検出空燃比は、＃３気筒の排気空燃比（リッチ）から＃４気筒の排気空燃比（リーン）へ切り替わるときの速さは大きくならず、正の差ΔＡ／Ｆつまり正の傾きは実質的に大きくならない。一方、＃４気筒の排気空燃比から＃２気筒の排気空燃比へ検出空燃比が切り替わる速さは＃２気筒で上記点火時期遅角制御が実行されているので増し、したがって、負の差ΔＡ／Ｆつまり負の傾きの大きさは大きくなる。
【０１１６】
以上の傾向（傾向１Ｒ）〜（傾向４Ｌ）をまとめると、図１５のようになる。図１５では、各領域において、左側にリッチずれが生じている可能性の高い気筒番号が記され、右側にリーンずれが生じている可能性の高い気筒番号が記されている。また、リッチ異常かリーン異常かは点火時期遅角制御を実施していないときの出力変化量つまり傾きの大小により判別可能である。よって、＃１気筒と＃２気筒とで同時期に点火時期遅角制御を実行して正の非遅角時および遅角時出力変化量と負の非遅角時および遅角時出力変化量とを算出してそれらを比較することで、異常がある可能性が高い気筒を適切に判別することができる。
【０１１７】
なお、リッチ異常かリーン異常かは点火時期遅角制御を実施していないときの出力変化量つまり傾きの大小により判別可能であり、ここで補足説明される。例えば、特に１気筒のみリッチずれの場合、当該１気筒に対応した排気を触媒前センサ１７が受けた時に触媒前センサ出力は急速にリッチ側に変化（すなわち急減）するので、触媒前センサ出力の減少側のみの値をリッチずれ検出のために用いることが可能である。逆も可能である。したがって、触媒前センサ出力が減少したときのみに関する差ΔＡ／Ｆの絶対値の平均値と触媒前センサ出力が増加したときのみに関する差ΔＡ／Ｆの絶対値の平均値との比較に基づいてリッチずれかリーンずれかが判定可能である。
【０１１８】
そこで、本第５実施形態では、このような関係、具体的には図１５に表す関係またはデータに基づいて、異常がある可能性が高い気筒が特定され、閾値設定用気筒対応番号ｉｍｂｃｙｌが定められる。
【０１１９】
第５実施形態における気筒間空然比ばらつき異常検出制御について、図７、１６、１７に基づいて説明する。
【０１２０】
図７のステップＳ７０１では、上記の所定の前提条件が成立しているか否かが判定される。ステップＳ７０１で、所定の前提条件が成立しているので、肯定判定されると、ステップＳ７０３で、後述される図１６に基づく出力変化量算出制御により、正の出力変化量Ｐａｖｅと負の出力変化量Ｎａｖｅとが算出される。そして、ステップＳ７０５で、後述される図１６および図１７に基づく閾値算出制御により、判定用閾値が算出される。
【０１２１】
そして、ステップＳ７０７で、ステップＳ７０３で算出された正の出力変化量Ｐａｖｅと負の出力変化量Ｎａｖｅとのうちで大きい方の値が通常時出力変化量Ｘｎとされて、ステップＳ７０５で算出された判定用閾値と比較される。出力変化量が閾値未満である場合には、ステップＳ７０７で否定判定されて、該ルーチンは終了する。これに対して、ステップＳ７０７で出力変化量が閾値以上であるので肯定判定された場合には、ステップＳ７０９で異常と判定するように、異常フラグがＯＮにされる。
【０１２２】
さて、図１６のフローチャートに基づいて、触媒前センサ１７の出力値に基づく正の出力変化量Ｐａｖｅと負の出力変化量Ｎａｖｅの算出に関して説明する。
【０１２３】
ステップＳ１６０１では、今回の（最新の）出力値Ａ／Ｆｎと、それまでに取得されて記憶されている前回の出力値Ａ／Ｆｎ−１との差ΔＡ／Ｆｎが、上記（１）式に基づいて算出される。そして、ステップＳ１６０１で算出された差ΔＡ／Ｆが正であるか否かがステップＳ１６０３で算出される。ステップＳ１６０３で、ΔＡ／Ｆが正であるので肯定判定されると、ステップＳ１６０５でΔＡ／Ｆが、正の差ΔＡ／Ｆの合計ｐｓｕｍに加算される。そして、ステップＳ１６０７で、正の差ΔＡ／Ｆに関する積算カウンタ値ｐｃｏｕｎｔが１だけ増やされる。
【０１２４】
他方、ステップＳ１６０３で、補正後ΔＡ／Ｆが正でない（概略的に負である）ので否定判定されると、ステップＳ１６０９で、ステップＳ１６０１で算出されたΔＡ／Ｆの絶対値が負の差ΔＡ／Ｆの合計ｎｓｕｍに加算される。そして、ステップＳ１６１１で、負の差ΔＡ／Ｆに関する積算カウンタ値ｎｃｏｕｎｔが１だけ増やされる。
【０１２５】
そして、ステップＳ１６１３で、クランク角ＣＡが０°（つまり７２０°）であるか否かが判定される。ステップＳ１６１３で肯定判定されると次のステップＳ１６１５が実行されるが、ステップＳ１６１３で否定判定されると該ルーチンは終了して、その結果ステップＳ１６０１に戻り、上記演算が繰り返される。したがって、所定の気筒のクランク角が７２０°進むまで、上記ステップＳ１６０１〜Ｓ１６１３が繰り返し実行されて、上記値ｐｓｕｍ、ｎｓｕｍ、ｐｃｏｕｎｔ、ｎｃｏｕｎｔがそれぞれ求められる。
【０１２６】
ステップＳ１６１３で肯定判定されると、次のステップＳ１６１５で、初期状態ではゼロに設定されているカウンタ値Ｃに１が加算される。そして、次のステップＳ１６１７では、それまでの正の差ΔＡ／Ｆの平均値の積算値ｐａｖｅｓ（初期状態ではゼロに設定されている。）に最新の正の差の平均値（ｐｓｕｍ／ｐｃｏｕｎｔ）が加算されて、正の差の平均値の積算値ｐａｖｅｓが更新される。同様に、ステップＳ１６１７では、さらに、それまでの負の差ΔＡ／Ｆの平均値の積算値ｎａｖｅｓ（初期状態ではゼロに設定されている。）に最新の負の差の平均値（ｎｓｕｍ／ｎｃｏｕｎｔ）が加算されて、負の差の平均値の積算値ｎａｖｅが更新される。
【０１２７】
次ぐステップＳ１６１９では、上記値ｐｓｕｍ、ｎｓｕｍ、ｐｃｏｕｎｔ、ｎｃｏｕｎｔがそれぞれゼロリセットされる。そして、ステップＳ１６２１ではカウンタＣが所定回数Ｎを超えているか否かが判定される。ステップＳ１６２１で否定判定されると、該ルーチンは終了し、その結果上記ステップＳ１６０１からＳ１６２１が繰り返される。
【０１２８】
ステップＳ１６２１で肯定判定されると、ステップＳ１６２３で、正の差の平均値の積算値ｐａｖｅｓをカウンタ値Ｃで除することにより算出される正の差の平均値（＝ｐａｖｅｓ／Ｃ）が正の出力変化量Ｐａｖｅとされる。また、負の差の平均値の積算値ｎａｖｅｓをカウンタ値Ｃで除することにより算出される負の差の平均値（＝ｎａｖｅｓ／Ｃ）が負の出力変化量Ｎａｖｅとされる。なお、通常時つまり上記点火時期遅角制御が実施されていないときのセンサ出力に基づいて算出される正の出力変化量を正の非遅角時出力変化量Ｐａｖｅｎと称し、通常時つまり上記点火時期遅角制御が実施されていないときのセンサ出力に基づいて算出される負の出力変化量を負の非遅角時出力変化量Ｎａｖｅｎと称し得る。
【０１２９】
そして、ステップＳ１６２５で、カウンタ値Ｃ、正の差の平均値の積算値ｐａｖｅｓおよび負の差の平均値の積算値ｎａｖｅｓがそれぞれゼロリセットされる。
【０１３０】
このように、図１６のステップＳ１６０１〜Ｓ１６２１、Ｓ１６２５は、それぞれ図８のステップＳ８０１〜Ｓ８２１、Ｓ８２５に対応する。それ故、上ではこれらステップの詳細な説明を省略した。
【０１３１】
次に、図１７のフローチャートに基づいて、ステップＳ７０５での判定用閾値の算出に関して説明する。
【０１３２】
ステップＳ１７０１では、初期状態ではＯＦＦに設定されている算出完了フラグがＯＮか否かが判定される。算出完了フラグがＯＦＦであるので、ステップＳ１７０１で否定判定されると、ステップＳ１７０３で、初期状態ではＯＦＦに設定されている点火遅角フラグがＯＮにされる。点火遅角フラグがＯＮにされると、上述の如く、＃１気筒と＃２気筒とをそれぞれ特定気筒としてこれら気筒で同時期に点火時期遅角制御が実行される。
【０１３３】
そして、ステップＳ１７０５で＃１気筒と＃２気筒とで点火時期遅角制御が実行されている状態で、図１６のフローチャートに基づいて説明されたのと同様に正の遅角時出力変化量Ｐａｖｅｄと、負の遅角時出力変化量Ｎａｖｅｄとが算出される。
【０１３４】
そして、ステップＳ１７０７で点火遅角フラグはＯＦＦにされて、ステップＳ１７０９で算出完了フラグがＯＮにされて、当該ルーチンは終了する。なお、点火遅角フラグがＯＦＦにされるので、上記点火遅角制御は実行されなくなる。
【０１３５】
次のルーチンのステップＳ１７０１では、算出完了フラグがＯＮであるので肯定判定されて、ステップＳ１７１１で正の出力変化量の差Δｐａｖｅ（正の遅角時出力変化量Ｐａｖｅｄ−正の非遅角時出力変化量Ｐａｖｅｎ）および負の出力変量の差Δｎａｖｅ（負の遅角時出力変化量Ｎａｖｅｄ−負の非遅角時出力変化量Ｎａｖｅｎ）が算出される。
【０１３６】
そして、ステップＳ１７１３で、ステップＳ１７１１で算出された正の出力変化量の差Δｐａｖｅが所定値α（図１５参照）未満か否かが判定される。ステップＳ１７１３で肯定判定されると、ステップＳ１７１５で、ステップＳ１７１１で算出された負の出力変化量の差Δｎａｖｅが所定値β（図１５参照）未満か否かが判定される。ステップＳ１７１５で肯定判定されると、ステップＳ１７１７で、閾値設定用気筒対応番号ｉｍｂｃｙｌが２に設定され（図１５の左下の領域参照）、次ぐステップＳ１７１９で閾値設定用気筒対応番号ｉｍｂｃｙｌに対応した閾値が算出される。なお、閾値設定用気筒対応番号ｉｍｂｃｙｌが「２」であるので、＃３気筒に対応した閾値が第１実施形態で説明したように算出される。そして、ステップＳ１７２１で算出完了フラグがＯＦＦにされて、当該ルーチンは終了する。
【０１３７】
一方、ステップＳ１７１５で否定判定されると、ステップＳ１７２３で負の非遅角時出力変化量Ｎａｖｅｎが正の非遅角時出力変化量Ｐａｖｅｎよりも大きいか否かが判定される。この関係が満たされるということは、上記したようにリッチずれが生じている可能性がある。それ故、ステップＳ１７２３で肯定判定されると、図１５の左上の領域の左側の記載の通り、ステップＳ１７２５で閾値設定用気筒対応番号ｉｍｂｃｙｌが０に設定される（＃１気筒に対応）。逆に、ステップＳ１７２３で否定判定されると、図１５の左上の領域の右側の記載の通り、ステップＳ１７２７で閾値設定用気筒対応番号ｉｍｂｃｙｌが３に設定される（＃４気筒に対応）。
【０１３８】
また、ステップＳ１７１３で否定判定されると、ステップＳ１７２９で、ステップＳ１７１５と同様にして、ステップＳ１７１１で算出された負の出力変化量の差Δｎａｖｅが所定値β（図１５参照）未満か否かが判定される。ステップＳ１７２９で否定判定されると、図１５の右上の領域に記載の通り、ステップＳ１７３１で閾値設定用気筒対応番号ｉｍｂｃｙｌが１に設定される（＃２気筒に対応）。
【０１３９】
そして、ステップＳ１７２９で肯定判定されると、ステップＳ１７３３で、ステップＳ１７２３と同様に、負の非遅角時出力変化量Ｎａｖｅｎが正の非遅角時出力変化量Ｐａｖｅｎよりも大きいか否かが判定される。そして、ステップＳ１７３３で肯定判定されると、図１５の右下の領域の左側の記載の通り、ステップＳ１７３５で閾値設定用気筒対応番号ｉｍｂｃｙｌが３に設定される（＃４気筒に対応）。逆に、ステップＳ１７３３で否定判定されると、図１５の右下の領域の右側の記載の通り、ステップＳ１７３７で閾値設定用気筒対応番号ｉｍｂｃｙｌが０に設定される（＃１気筒に対応）。
【０１４０】
そして、上記の如くステップＳ１７１９で、このように設定された閾値設定用気筒対応番号ｉｍｂｃｙｌに対応した閾値が算出される。
【０１４１】
このように第５実施形態では、複数の気筒で同時期に点火時期遅角制御が実行されて判定用閾値が算出されるので、より短時間に、気筒間空然比ばらつき異常を検出できる。
【０１４２】
以上、５つの実施形態では、４気筒エンジンに関して説明された。しかし、気筒間でのセンサへのガス当たりのばらつきは例えば８気筒エンジンでより顕著であるので、本発明は、より気筒数の多い内燃機関でより有効である。
【０１４３】
本発明の実施形態は前述の実施形態のみに限らず、本発明はこれら実施形態を矛盾しない範囲で相互に組み合わせた実施形態をも許容する。特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が本発明に含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。
【符号の説明】
【０１４４】
１  内燃機関（エンジン）
７  点火プラグ
１１  上流触媒コンバータ
１２  インジェクタ
１７  触媒前センサ（空燃比センサ）
２０  電子制御ユニット（ＥＣＵ）
２２  気筒間空然比ばらつき異常検出装置
【図１】
0005919836.tif 000002
【図２】
0005919836.tif 000003
【図３】
0005919836.tif 000004
【図４】
0005919836.tif 000005
【図５】
0005919836.tif 000006
【図６】
0005919836.tif 000007
【図７】
0005919836.tif 000008
【図８】
0005919836.tif 000009
【図９】
0005919836.tif 000010
【図１０】
0005919836.tif 000011
【図１１】
0005919836.tif 000012
【図１２】
0005919836.tif 000013
【図１３】
0005919836.tif 000014
【図１４】
0005919836.tif 000015
【図１５】
0005919836.tif 000016
【図１６】
0005919836.tif 000017
【図１７】
0005919836.tif 000018