(57)【要約】    【課題】  気筒毎の空燃比がばらついているインバランス故障の判定実行頻度を高めるとともに、比較的短時間で正確な判定を行うことができる空燃比制御装置を提供する。    【解決手段】  空燃比フィードバック制御実行中において、排気通路に設けられるＯ２センサ１６の出力信号に含まれる０．５次周波数成分の強度ＭＨＬＦＮＥが算出され、０．５次周波数成分強度ＭＨＬＦＮＥに基づいてインバランス故障の判定が行われる。０．５次周波数成分は機関回転数に対応する周波数の１／２に対応する周波数成分であり、センサ出力ＳＶＯ２が、理論空燃比よりリーン側の空燃比に対応する所定下側閾値ＳＶＯ２Ｌから理論空燃比よりリッチ側の空燃比に対応する所定上側閾値ＳＶＯ２Ｈまでの範囲を通過するときに得られる検出値を用いて、高速フーリエ変換演算により算出される。【選択図】  図６
2012229663.tif 000002
【特許請求の範囲】
【請求項１】
複数気筒を有する内燃機関の排気通路において空燃比を検出する空燃比検出手段と、前記複数気筒のそれぞれに供給する燃料量を制御する燃料量制御手段とを備える内燃機関の空燃比制御装置において、
前記空燃比検出手段の出力信号から、前記機関の回転速度に対応する周波数の１／２の周波数成分である０．５次周波数成分を抽出する抽出手段と、
前記０．５次周波数成分に基づいて、前記複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障を判定するインバランス故障判定手段とを備え、
前記空燃比検出手段は、理論空燃比を含む所定空燃比範囲において出力値が急激に変化する特性を有し、前記インバランス故障判定手段は、前記機関の運転中において前記空燃比が前記所定空燃比範囲を通過するときに得られる前記０．５次周波数成分に基づいて前記インバランス故障判定を行うことを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記機関は前記排気通路に排気浄化触媒を備え、前記空燃比検出手段は前記排気浄化触媒の下流側に設けられることを特徴とする請求項１に記載の内燃機関の空燃比制御装置。
【請求項３】
前記インバランス故障判定手段は、前記機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後において前記インバランス故障判定を行うことを特徴とする請求項１または２に記載の内燃機関の空燃比制御装置。
【請求項４】
前記燃料量制御手段は、前記空燃比検出手段の出力値が目標値と一致するように前記燃料量を制御するフィードバック制御を実行し、
前記インバランス故障判定手段は、前記フィードバック制御実行中において前記空燃比が前記所定空燃比範囲を通過するときに前記インバランス故障判定を行うことを特徴とする請求項１または２に記載の内燃機関の空燃比制御装置。
【請求項５】
前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、前記空燃比検出手段の出力値が前記所定空燃比範囲の下限空燃比に相当するリッチ側閾値よりリーン側にある状態が所定時間以上継続したときは、前記インバランス故障の判定を保留することを特徴とする請求項３または４に記載の内燃機関の空燃比制御装置。
【請求項６】
前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、前記空燃比検出手段の出力値が前記所定空燃比範囲の上限空燃比に相当するリーン側閾値よりリッチ側にある状態が所定時間以上継続したときは、前記インバランス故障の判定を保留することを特徴とする請求項４に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数気筒を有する内燃機関の空燃比制御装置に関し、特に複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらつくインバランス故障を判定する機能を有する空燃比制御装置に関する。
【背景技術】
【０００２】
特許文献１には、複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらつくインバランス故障を判定する機能を有する空燃比制御装置が示されている。この装置によれば、機関排気系に設けられる排気浄化触媒の下流側に配置された酸素濃度センサの出力に基づいてインバランス故障の判定が行われる。具体的には、酸素濃度センサ出力と目標値との偏差に応じた補正値と、排気流量との積値が算出され、この積値の積算値が判定閾値を超えると、インバランス故障が発生していると判定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５１００３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示された判定手法では、空燃比が比較的安定した状態において得られる積値を積算することによって得られる積算値を用いて判定が行われるため、判定に要する時間が長くなる、あるいは判定の実行頻度が低いという課題がある。
【０００５】
本発明はこの点に着目してなされたものであり、気筒毎の空燃比のインバランス故障の判定実行頻度を高めるとともに、比較的短時間で正確な判定を行うことができる内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため請求項１に記載の発明は、複数気筒を有する内燃機関の排気通路において空燃比を検出する空燃比検出手段（１６）と、前記複数気筒のそれぞれに供給する燃料量（ＴＯＵＴ）を制御する燃料量制御手段とを備える内燃機関の空燃比制御装置において、前記空燃比検出手段の出力信号（ＳＶＯ２）から、前記機関の回転速度に対応する周波数（ｆＮＥ）の１／２の周波数成分である０．５次周波数成分（ＭＨＬＦＮＥ）を抽出する抽出手段と、前記０．５次周波数成分に基づいて、前記複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障を判定するインバランス故障判定手段とを備え、前記空燃比検出手段は、理論空燃比を含む所定空燃比範囲（ＲＡＦＳＴ）において出力値（ＳＶＯ２）が急激に変化する特性を有し、前記インバランス故障判定手段は、前記機関の運転中において前記空燃比が前記所定空燃比範囲（ＲＡＦＳＴ）を通過するときに得られる前記０．５次周波数成分（ＭＨＬＦＮＥ）に基づいて前記インバランス故障判定を行うことを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の内燃機関の空燃比制御装置において、前記機関は前記排気通路に排気浄化触媒（１４）を備え、前記空燃比検出手段（１６）は前記排気浄化触媒（１４）の下流側に設けられることを特徴とする。
【０００８】
請求項３に記載の発明は、請求項１または２に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後において前記インバランス故障判定を行うことを特徴とする。
【０００９】
請求項４に記載の発明は、請求項１または２に記載の内燃機関の空燃比制御装置において、前記燃料量制御手段は、前記空燃比検出手段の出力値（ＳＶＯ２）が目標値（ＳＶＯ２Ｔ）と一致するように前記燃料量を制御するフィードバック制御を実行し、前記インバランス故障判定手段は、前記フィードバック制御実行中において前記空燃比が前記所定空燃比範囲（ＲＡＦＳＴ）を通過するときに前記インバランス故障判定を行うことを特徴とする。
【００１０】
請求項５に記載の発明は、請求項３または４に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、前記空燃比検出手段の出力値（ＳＶＯ２）が前記所定空燃比範囲の下限空燃比に相当するリッチ側閾値（ＳＶＯ２Ｈ）よりリーン側にある状態が所定時間（ＴＨＯＬＤ，ＴＣＨＧＭＡＸ）以上継続したときは、前記インバランス故障の判定を保留することを特徴とする。
【００１１】
請求項６に記載の発明は、請求項４に記載の内燃機関の空燃比制御装置において、前記インバランス故障判定手段は、前記空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、前記空燃比検出手段の出力値（ＳＶＯ２）が前記所定空燃比範囲の上限空燃比に相当するリーン側閾値（ＳＶＯ２Ｌ）よりリッチ側にある状態が所定時間（ＴＣＨＧＭＡＸ）以上継続したときは、前記インバランス故障の判定を保留することを特徴とする。
【発明の効果】
【００１２】
請求項１に記載の発明によれば、空燃比検出手段の出力信号から、機関回転速度に対応する周波数の１／２の周波数成分である０．５次周波数成分が抽出され、この０．５次周波数成分に基づいて、複数気筒のそれぞれに対応する空燃比が許容限度を超えてばらついているインバランス故障が判定される。機関の運転中において空燃比が理論空燃比を含む所定空燃比範囲を通過するときに得られる０．５次周波数成分に基づいてインバランス故障判定が行われる。インバランス故障が発生すると、０．５次周波数成分の強度が増加することが知られており、０．５次周波数成分強度を判定閾値と比較することにより、インバランス故障の有無を判定することができる。また空燃比検出手段は理論空燃比を含む所定空燃比範囲において出力値が急激に変化する特性を有するので、所定空燃比範囲を通過するときの空燃比検出感度が高くなり、インバランス故障が発生している場合に０．５次周波数成分が顕著に表れる。その結果、インバランス故障を正確にかつ迅速に判定することが可能となる。
【００１３】
請求項２に記載の発明によれば、空燃比検出手段は、排気浄化触媒の下流側に設けられる。空燃比検出手段を排気マニホールドが集合する集合部近傍（排気浄化触媒上流側）に設けると、排気の流れが気筒毎に若干変化する（空燃比検出手段と排気の接触状態が気筒毎に若干変化する）ため、インバランス故障が発生していなくても、０．５次成分の増加要因となる。したがって、排気浄化触媒の下流側に設けられた空燃比検出手段を用いることにより、排気流れの気筒毎の変化に起因する誤判定要因を排除し、判定精度を高めることができる。
【００１４】
請求項３に記載の発明によれば、機関への燃料供給を停止する燃料カット運転を終了し燃料供給を再開した直後においてインバランス故障判定が行われる。燃料カット運転の終了（燃料供給再開）直後は、空燃比の変化幅が大きく且つ安定しているので、空燃比が所定空燃比範囲を確実に通過し、判定精度を高めるとともに比較的高い判定実行頻度を確保することができる。
【００１５】
請求項４に記載の発明によれば、空燃比検出手段の出力値が目標値と一致するように燃料量を制御するフィードバック制御が実行され、フィードバック制御実行中において空燃比が所定空燃比範囲を通過するときにインバランス故障判定が行われる。したがって、フィードバック制御実行中は常に故障判定が行われ、インバランス故障を迅速に判定することができる。
【００１６】
請求項５に記載の発明によれば、空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、空燃比検出手段の出力値が所定空燃比範囲の下限空燃比に相当するリッチ側閾値よりリーン側にある状態が所定時間以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲を速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。
【００１７】
請求項６に記載の発明によれば、空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、空燃比検出手段の出力値が所定空燃比範囲の上限空燃比に相当するリーン側閾値よりリッチ側にある状態が所定時間以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲を速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態にかかる内燃機関及びその制御装置の構成を示す図である。
【図２】図１に示す二値型酸素濃度センサの出力特性を示す図である。
【図３】インバランス故障が発生している状態における二値型酸素濃度センサの出力変化特性を説明するためのタイムチャートである。
【図４】インバランス故障が発生している状態における二値型酸素濃度センサの出力信号に含まれる周波数成分を説明するための図である。
【図５】インバランス故障判定の実行条件を判定する処理のフローチャートである。
【図６】インバランス故障判定を行う処理のフローチャートである。
【図７】図６の処理の変形例を示すフローチャートである。
【図８】本発明の第２の実施形態におけるインバランス故障判定処理の全体構成を示すフローチャートである。
【図９】第１実行条件判定処理のフローチャートである。
【図１０】第２実行条件判定処理のフローチャートである。
【図１１】図９及び図１０の処理を説明するためのタイムチャートである。
【図１２】インバランス故障判定処理のフローチャートである。
【図１３】図１２の処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下本発明の実施の形態を図面を参照して説明する。
［第１の実施形態］
図１は、本発明の一実施形態にかかる内燃機関（以下「エンジン」という）及びその空燃比制御装置の全体構成図であり、例えば４気筒のエンジン１の吸気管２の途中にはスロットル弁３が配されている。スロットル弁３にはスロットル弁開度ＴＨを検出するスロットル弁開度センサ４が連結されており、その検出信号は電子制御ユニット（以下「ＥＣＵ」という）５に供給される。
【００２０】
燃料噴射弁６はエンジン１とスロットル弁３との間かつ吸気管２の図示しない吸気弁の少し上流側に各気筒毎に設けられており、各噴射弁は図示しない燃料ポンプに接続されていると共にＥＣＵ５に電気的に接続されて当該ＥＣＵ５からの信号により燃料噴射弁６の開弁時間が制御される。
【００２１】
エンジン１の各気筒に設けられた点火プラグ１２は、ＥＣＵ５に接続されており、ＥＣＵ５から点火信号が供給される。
スロットル弁３の上流側には吸入空気流量ＧＡＩＲを検出する吸入空気流量センサ７が設けられている。またスロットル弁３の下流側には吸気圧ＰＢＡを検出する吸気圧センサ８、及び吸気温ＴＡを検出する吸気温センサ９が設けられている。これらのセンサの検出信号は、ＥＣＵ５に供給される。エンジン１の本体には、エンジン冷却水温ＴＷを検出する冷却水温センサ１０が装着されており、その検出信号はＥＣＵ５に供給される。
【００２２】
ＥＣＵ５には、エンジン１のクランク軸（図示せず）の回転角度を検出するクランク角度位置センサ１１が接続されており、クランク軸の回転角度に応じた信号がＥＣＵ５に供給される。クランク角度位置センサ１１は、エンジン１の特定の気筒の所定クランク角度位置でパルス（以下「ＣＹＬパルス」という）を出力する気筒判別センサ、各気筒の吸入行程開始時の上死点（ＴＤＣ）に関し所定クランク角度前のクランク角度位置で（４気筒エンジンではクランク角１８０度毎に）ＴＤＣパルスを出力するＴＤＣセンサ及びＴＤＣパルスより短い一定クランク角周期（例えば６度周期）で１パルス（以下「ＣＲＫパルス」という）を発生するＣＲＫセンサから成り、ＣＹＬパルス、ＴＤＣパルス及びＣＲＫパルスがＥＣＵ５に供給される。これらのパルスは、燃料噴射時期、点火時期等の各種タイミング制御、エンジン回転数（エンジン回転速度）ＮＥの検出に使用される。
【００２３】
排気通路１３には三元触媒１４が設けられている。三元触媒１４は、酸素蓄積能力を有し、エンジン１に供給される混合気の空燃比が理論空燃比よりリーン側に設定され、排気中の酸素濃度が比較的高い排気リーン状態では、排気中の酸素を蓄積し、逆にエンジン１に供給される混合気の空燃比が理論空燃比よりリッチ側に設定され、排気中の酸素濃度が低く、ＨＣ、ＣＯ成分が多い排気リッチ状態では、蓄積した酸素により排気中のＨＣ，ＣＯを酸化する機能を有する。
【００２４】
三元触媒１４の上流側であって各気筒に連通する排気マニホールドの集合部より下流側には、比例型酸素濃度センサ１５（以下「ＬＡＦセンサ１５」という）が装着されており、このＬＡＦセンサ１５は排気中の酸素濃度（空燃比）にほぼ比例した検出信号を出力し、ＥＣＵ５に供給する。また三元触媒１４の下流側には、二値型酸素濃度センサ１６（以下「Ｏ２センサ１６」という）が装着されており、その検出信号はＥＣＵ５に供給される。このＯ２センサ１６は、図２に示すように検出される空燃比ＡＦが理論空燃比ＡＦＳＴの近傍にあるとき、センサ出力（以下「Ｏ２センサ出力」という）ＳＶＯ２が急激に変化する特性を有する。Ｏ２センサ出力ＳＶＯ２は、理論空燃比ＡＦＳＴよりリッチ側で高レベルとなり、リーン側で低レベルとなる。図２に示す最小出力値ＳＶＯ２ＭＩＮは例えば５０ｍＶ程度であり、最大出力値ＳＶＯ２ＭＡＸは例えば５９０〜６８０ｍＶ程度である。また、理論空燃比ＡＦＳＴに相当する出力値ＳＶＯ２ＳＴは例えば４５０ｍＶ程度である。
【００２５】
ＥＣＵ５には、エンジン１により駆動される車両のアクセルペダルの踏み込み量（以下「アクセルペダル操作量」という）ＡＰを検出するアクセルセンサ２１が接続されており、その検出信号がＥＣＵ５に供給される。スロットル弁３は図示しないアクチュエータにより開閉駆動され、スロットル弁開度ＴＨはアクセルペダル操作量ＡＰに応じてＥＣＵ５により制御される。
【００２６】
ＥＣＵ５は、各種センサからの入力信号波形を整形し、電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する等の機能を有する入力回路、中央演算処理ユニット（以下「ＣＰＵ」という）、該ＣＰＵで実行される各種演算プログラム及び演算結果等を記憶する記憶回路、燃料噴射弁６、点火プラグ１２などに駆動信号を供給する出力回路を備えている。
【００２７】
ＥＣＵ５のＣＰＵは、上述の各種センサの検出信号に基づいて、種々のエンジン運転状態を判別するとともに、該判別されたエンジン運転状態に応じて、次式（１）を用いて、ＴＤＣパルスに同期して開弁作動する燃料噴射弁６の燃料噴射時間ＴＯＵＴを演算する。燃料噴射時間ＴＯＵＴは、噴射される燃料量にほぼ比例するので、以下「燃料噴射量ＴＯＵＴ」という。
ＴＯＵＴ＝ＴＩＭ×ＫＣＭＤ×ＫＡＦ×ＫＴＯＴＡＬ    （１）
【００２８】
ここに、ＴＩＭは基本燃料量、具体的には燃料噴射弁６の基本燃料噴射時間であり、吸入空気流量ＧＡＩＲに応じて設定されたＴＩＭテーブルを検索して決定される。ＴＩＭテーブルは、エンジンに供給する混合気の空燃比がほぼ理論空燃比になるように設定されている。
【００２９】
ＫＣＭＤはエンジン１の運転状態に応じて設定される目標空燃比係数である。目標空燃比係数ＫＣＭＤは、空燃比Ａ／Ｆの逆数、すなわち燃空比Ｆ／Ａに比例し、理論空燃比のとき値１．０をとるので、以下「目標当量比」という。目標当量比ＫＣＭＤは、空燃比フィードバック制御中はＯ２センサＳＶＯ２に応じて修正される。
【００３０】
具体的には、Ｏ２センサＳＶＯ２がその目標値ＳＶＯ２Ｔと一致するように目標当量比ＫＣＭＤが修正される（この制御を「ＳＯ２フィードバック制御」という）。目標値ＳＶＯ２Ｔは、三元触媒１４の排気浄化性能が最大となるようにエンジン運転状態に応じて設定される（例えば６００ｍＶ程度）。ＳＯ２フィードバック制御には、周知のＰＩＤ制御（比例積分微分制御）あるいはスライディングモード制御が適用される。
【００３１】
ＫＡＦは、空燃比フィードバック制御の実行条件が成立するときは、ＬＡＦセンサ１５の検出値から算出される検出当量比ＫＡＣＴが目標当量比ＫＣＭＤに一致するようにＰＩＤ（比例積分微分）制御あるいは適応制御器（Self Tuning Regulator）を用いた適応制御により算出される空燃比補正係数である。
【００３２】
ＫＴＯＴＡＬは夫々各種エンジンパラメータ信号に応じて演算される他の補正係数（エンジン冷却水温ＴＭに応じた補正係数ＫＴＷ、吸気温ＴＡに応じた補正係数ＫＴＡなど）の積である。
【００３３】
ＥＣＵ５のＣＰＵは上述のようにして求めた燃料噴射量ＴＯＵＴに基づいて燃料噴射弁６を開弁させる駆動信号を出力回路を介して燃料噴射弁６に供給する。また、ＥＣＵ５のＣＰＵは、４つの気筒のそれぞれに対応する空燃比が許容限度を超えてばらつくインバランス故障の判定を行う。
【００３４】
次に図３及び図４を参照して、本実施形態におけるインバランス故障判定の概要を説明する。図３は、燃料カット運転を終了して燃料供給を再開したときのＯ２センサ出力ＳＶＯ２の推移を示すタイムチャートであり、図３（ａ）はインバランス故障が発生していない状態（正常）に対応し、図３（ｂ）はインバランス故障が発生している状態に対応する。図３（ｂ）に示されるように、インバランス故障が発生している状態では、Ｏ２センサ出力ＳＶＯ２が上昇する過程で空燃比の変動が検出される。Ｏ２センサ１６は、図２に示すように、空燃比が理論空燃比近傍の所定空燃比範囲ＲＡＦＳＴにおいて出力ＳＶＯ２が急激に変化する特性を有する、すなわち所定空燃比範囲ＲＡＦＳＴにおける検出感度が高いため、空燃比の僅かな変動がセンサ出力ＳＶＯ２に顕著に反映される。
【００３５】
本実施形態では、この点に着目して燃料カット運転終了（燃料供給再開）直後におけるＯ２センサ出力ＳＶＯ２に含まれる０．５次周波数成分の強度ＭＨＬＦＮＥに基づいて、インバランス故障判定を行うようにしている。０．５次周波数成分は、エンジン回転数ＮＥ［ｒｐｍ］に対応する周波数ｆＮＥ（＝ＮＥ／６０［Ｈｚ］）の１／２の周波数ｆＮＥ／２に対応する周波数成分である。インバランス故障が発生すると、検出空燃比（酸素濃度）を示す信号に含まれる０．５次周波数成分の強度が増加することは例えば特開２００９−２７０５４３号公報に示されている。
【００３６】
図４は、燃料カット運転終了直後に得られたＯ２センサ出力ＳＶＯ２に含まれる周波数スペクトラムを示す図であり、破線が正常状態に対応し、実線がインバランス故障が発生している状態に対応する。このように、インバランス故障が発生すると０．５次成分強度ＭＨＬＦＮＥが顕著に増加するので、本実施形態では、燃料カット運転終了直後において、空燃比が上記所定空燃比範囲ＲＡＦＳＴを通過するときに所定サンプリング周期で検出されるＯ２センサ出力ＳＶＯ２の検出データに基づいて、０．５次成分強度ＭＨＬＦＮＥを算出し、０．５次成分強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨより大きいときにインバランス故障が発生していると判定する。
【００３７】
図５は、インバランス故障判定の実行条件を判定する処理のフローチャートである。この処理はＥＣＵ５のＣＰＵで所定時間毎または所定クランク角度毎に実行される。
ステップＳ１１では、センサ正常フラグＦＳＯ２ＳＯＫが「１」であるか否かを判別する。センサ正常フラグＦＳＯ２ＳＯＫは、Ｏ２センサ１６の異常が検出されていないときは「１」に設定されており、異常が検出されると「０」に設定される。ステップＳ１１の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００３８】
ステップＳ１１の答が肯定（ＹＥＳ）であるときは、判定実行フラグＦＭＣＮＤＩＭＢが「１」であるか否かを判別する（ステップＳ１２）。判定実行フラグＦＭＣＮＤＩＭＢは、判定実行条件が成立するとき「１」に設定される（ステップＳ１８）。最初はステップＳ１２の答は否定（ＮＯ）であるので、ステップＳ１３に進み、前条件フラグＦＦＣＳＯ２ＬＯＷが「１」であるか否かを判別する。前条件フラグＦＦＣＳＯ２ＬＯＷは、ステップＳ１６で「１」に設定されるフラグであり、最初はステップＳ１３の答も否定（ＮＯ）となり、ステップＳ１４に進む。
【００３９】
ステップＳ１４では、燃料カットフラグＦＦＣが「１」であるか否かを判別する。燃料カットフラグＦＦＣは、エンジン１への燃料供給を一時的に停止する燃料カット運転を行うとき「１」に設定される。ステップＳ１４の答が否定（ＮＯ）であって燃料カット運転中でないときは直ちに処理を終了する。
【００４０】
ステップＳ１４の答が肯定（ＹＥＳ）であるときは、Ｏ２センサ出力ＳＶＯ２が所定下限閾値ＳＶＯ２ＬＬ（例えば５５ｍＶ）より小さいか否かを判別する（ステップＳ１５）。この答が否定（ＮＯ）であるときは直ちに処理を終了し、肯定（ＹＥＳ）であるときは前条件フラグＦＦＣＳＯ２ＬＯＷを「１」に設定する（ステップＳ１６）。その後ステップＳ１７に進む。ステップＳ１６が実行されると、以後はステップＳ１３の答が肯定（ＹＥＳ）となり、直ちにステップＳ１７に進む。
【００４１】
ステップＳ１７では、ＳＯ２フィードバック制御フラグＦＳＯ２ＦＢが「１」であるか否かを判別する。ＳＯ２フィードバック制御フラグＦＳＯ２ＦＢは、ＬＡＦセンサ１５の出力に応じた空燃比フィードバック制御が実行され、かつＯ２センサ出力ＳＶＯ２に応じた目標当量比ＫＣＭＤの修正が行われているとき「１」に設定される。
【００４２】
ステップＳ１７の答が否定（ＮＯ）であるときは直ちに処理を終了する。ＦＳＯ２ＦＢ＝１であるときは、判定実行条件が成立していると判定し、判定実行フラグＦＭＣＮＤＩＭＢを「１」に設定するとともに、前条件フラグＦＦＣＳＯ２ＬＯＷを「０」に戻す（ステップＳ１８）。
【００４３】
判定実行フラグＦＭＣＮＤＩＭＢが「１」に設定された後は、ステップＳ１２の答が肯定（ＹＥＳ）となり、判定終了フラグＦＤＥＴＥＮＤが「１」であるか否かを判別する。判定終了フラグＦＤＥＴＥＮＤは、図６に示すインバランス故障判定処理における判定が終了すると「１」に設定される。ＦＤＥＴＥＮＤ＝０である間は、ステップＳ２０に進んで、ＳＯ２フィードバック制御フラグＦＳＯ２ＦＢが「１」であるか否かを判別する。この答が肯定（ＹＥＳ）であるときは直ちに処理を終了する。したがって、インバランス故障判定が継続される。
【００４４】
ステップＳ２０でＦＳＯ２ＦＢ＝０であるとき、またはステップＳ１９の答が肯定（ＹＥＳ）であってインバランス故障判定が終了したときは、ステップＳ２１に進み、判定実行フラグＦＭＣＮＤＩＭＢを「０」に戻す（前条件フラグＦＦＣＳＯ２ＬＯＷは「０」に維持する）。
【００４５】
図５の処理によれば、燃料カット運転中にＯ２センサ出力ＳＶＯ２が所定下限閾値ＳＶＯ２ＬＬより低くなり、かつ燃料カット運転が終了して（燃料供給が再開されて）、空燃比フィードバック制御が開始されたときに、判定実行フラグＦＭＣＮＤＩＭＢが「１」に設定される。
【００４６】
図６は、インバランス故障が発生しているか否かを判定するインバランス故障判定処理のフローチャートであり、この処理はＥＣＵ５のＣＰＵで、エンジン回転に同期して所定クランク角度毎に実行される。
【００４７】
ステップＳ３１では、判定実行フラグＦＭＣＮＤＩＭＢが「１」であるか否かを判別し、その答が否定（ＮＯ）であるときは直ちに処理を終了する。判定実行フラグＦＭＣＮＤＩＭＢが「１」であるときは、Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌ（例えば１００ｍＶ）より大きいか否かを判別する（ステップＳ３２）。最初はこの答は否定（ＮＯ）であるので、ステップＳ３９に進み、判定実行フラグＦＭＣＮＤＩＭＢが「１」に設定された時点から所定時間ＴＨＯＬＤ（例えば５００ｍｓｅｃ）が経過したか否かを判別する。最初はこの答は否定（ＮＯ）となり直ちに処理を終了する。
【００４８】
Ｏ２センサ出力ＳＶＯ２が上昇してステップＳ３２の答が肯定（ＹＥＳ）となると、Ｏ２センサ出力ＳＶＯ２をサンプリングして、その検出値をメモリに格納する（ステップＳ３３）。ステップＳ３４では、Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈより大きいか否かを判別し、その答が否定（ＮＯ）であるときは、ステップＳ３９に進む。所定上側閾値ＳＶＯ２Ｈは、例えば６００ｍｖに設定されるが、Ｏ２センサ出力ＳＶＯ２のフィードバック制御における目標値ＳＶＯ２Ｔの方が低いときは、その目標値ＳＶＯ２Ｔに設定される。
【００４９】
Ｏ２センサ出力ＳＶＯ２がさらに上昇してステップＳ３４の答が肯定（ＹＥＳ）となると、メモリに格納したサンプリングデータを用いて高速フーリエ変換（ＦＦＴ）演算処理を実行し、０．５次成分強度ＭＨＬＦＮＥを算出する（ステップＳ３５）。エンジン回転に同期してサンプリングされたデータを用いることにより、エンジン回転数ＮＥが変化しても０．５次成分強度ＭＨＬＦＮＥを抽出するＦＦＴ演算処理を行うことができる。
【００５０】
ステップＳ３６では、０．５次成分強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨ以下であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、気筒毎の空燃比は正常と判定する（ステップＳ３７）。ステップＳ３６の答が否定（ＮＯ）であって、０．５次成分強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨを超えているときは、インバランス故障が発生していると判定する（ステップＳ３８）。その後ステップＳ４１では、判定終了フラグＦＤＥＴＥＮＤを「１」に設定する。
【００５１】
ステップＳ３２またはＳ３４の答が肯定（ＹＥＳ）となるまえに所定時間ＴＨＯＬＤが経過したときは、ステップＳ３９からＳ４０に進み、判定を保留して（正常／故障の判定を行わずに）、ステップＳ４１に進む。
【００５２】
図６の処理で使用される所定下側閾値ＳＶＯ２Ｌ及び所定上側閾値ＳＶＯ２Ｈによって、図２に示すように理論空燃比ＡＦＳＴを含む所定空燃比範囲ＲＡＦＳＴが定義され、本実施形態では、燃料カット運転終了直後において、空燃比ＡＦが所定空燃比範囲ＲＡＦＳＴを通過するときに検出されるＯ２センサ出力ＳＶＯ２から、エンジン回転数ＮＥに対応する周波数ｆＮＥの１／２の周波数成分である０．５次周波数成分が抽出され、この０．５次周波数成分の強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨより大きいときに、インバランス故障が発生していると判定される。Ｏ２センサ１６は理論空燃比ＡＦＳＴを含む所定空燃比範囲ＲＡＦＳＴにおいて出力値が急激に変化する特性を有するので、所定空燃比範囲ＲＡＦＳＴを通過するときの空燃比検出感度が高くなり、インバランス故障が発生している場合に０．５次周波数成分が顕著に検出される。その結果、インバランス故障を正確にかつ迅速に判定することができる。
【００５３】
また三元触媒１４の下流側に配置されるＯ２センサ１６の出力ＳＶＯ２を用いることにより、以下のような効果が得られる。例えば三元触媒１４の上流側（排気マニホールドが集合する集合部近傍）に配置されるＬＡＦセンサ１５の出力を用いる場合、排気の流れが気筒毎に若干変化するため、ＬＡＦセンサ１５と排気の接触状態が気筒毎に若干変化するし、インバランス故障が発生していなくても、０．５次成分の増加要因となる。三元触媒１４の下流側では、Ｏ２センサ１６と排気の接触状態が、燃焼気筒に依存して変化することはないので、排気流れの気筒毎の変化に起因する誤判定要因を排除し、判定精度を高めることができる。
【００５４】
また燃料カット運転の終了（燃料供給再開）直後は、空燃比の変化幅が大きく且つ安定しているので、空燃比が所定空燃比範囲ＲＡＦＳＴを確実に通過し、判定精度を高めるとともに比較的高い判定実行頻度を確保することができる。
【００５５】
さらにＯ２センサ出力ＳＶＯ２が所定空燃比範囲ＲＡＦＳＴの下限空燃比に相当する所定上側閾値ＳＶＯ２Ｈより小さい（リーン側にある）状態が、判定開始後所定時間ＴＨＯＬＤ以上継続したときは、インバランス故障の判定が保留される。空燃比が所定空燃比範囲ＲＡＦＳＴを速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。
【００５６】
本実施形態では、Ｏ２センサ１６が空燃比検出手段に相当し、燃料噴射弁６が燃料量制御手段の一部を構成し、ＥＣＵ５が、燃料量制御手段の一部、抽出手段、及びインバランス故障判定手段を構成する。具体的には、図６のステップＳ３３及びＳ３５が抽出手段に相当し、図５のステップＳ１２〜Ｓ２１及び図６のステップＳ３２，Ｓ３４，Ｓ３６〜Ｓ３８がインバランス故障判定手段に相当する。
【００５７】
［変形例］
図７は、図６のインバランス故障判定処理の変形例のフローチャートである。
ステップＳ５１では、Ｏ２センサ出力ＳＶＯ２に含まれる０．５次周波数成分を抽出するバンドパスフィルタ処理を実行し、フィルタ処理後センサ出力ＳＶＯ２Ｆを算出する。バンドパスフィルタ処理は、公知の再帰型演算処理が使用される。バンドパスフィルタ処理を、エンジン回転に同期した所定クランク角度毎に実行することにより、サンプリング周期がエンジン回転数ＮＥの変化に伴って変化し、ｆＮＥ／２の周波数近傍の成分（０．５次成分）を抽出することができる。
【００５８】
ステップＳ５２では、判定実行フラグＦＭＣＮＤＩＭＢが「１」であるか否かを判別し、その答が否定（ＮＯ）であるときは直ちに処理を終了する。判定実行フラグＦＭＣＮＤＩＭＢが「１」であるときは、Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌより大きいか否かを判別する（ステップＳ５３）。最初はこの答は否定（ＮＯ）であるので、ステップＳ５９に進み、判定実行フラグＦＭＣＮＤＩＭＢが「１」に設定された時点から所定時間ＴＨＯＬＤが経過したか否かを判別する。最初はこの答は否定（ＮＯ）となり直ちに処理を終了する。
【００５９】
Ｏ２センサ出力ＳＶＯ２が上昇してステップＳ５３の答が肯定（ＹＥＳ）となると、下記式（２）にフィルタ処理後センサ出力ＳＶＯ２Ｆを適用して、０．５次成分積算値ＩＳＶＯ２Ｆを算出する（ステップＳ５４）。式（２）の右辺のＩＳＶＯ２Ｆは、前回算出値である。
ＩＳＶＯ２Ｆ＝ＩＳＶＯ２Ｆ＋ＳＶＯ２Ｆ              （２）
【００６０】
ステップＳ５５では、Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈより大きいか否かを判別し、その答が否定（ＮＯ）であるときは、ステップＳ５９に進む。
【００６１】
Ｏ２センサ出力ＳＶＯ２がさらに上昇してステップＳ５５の答が肯定（ＹＥＳ）となると、０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨ以下であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、気筒毎の空燃比は正常と判定する（ステップＳ５７）。ステップＳ５６の答が否定（ＮＯ）であって、０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨを超えているときは、インバランス故障が発生していると判定する（ステップＳ５８）。その後ステップＳ６１では、判定終了フラグＦＤＥＴＥＮＤを「１」に設定する。
【００６２】
ステップＳ５３またはＳ５５の答が肯定（ＹＥＳ）となる前に所定時間ＴＨＯＬＤが経過したときは、ステップＳ５９からステップＳ６０に進み、判定を保留してステップＳ６１に進む。
【００６３】
図７の処理によれば、図６の処理において算出される０．５次成分強度ＭＨＬＦＮＥに相当する０．５次成分積算値ＩＳＶＯ２Ｆが算出され、０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨを超えると、インバランス故障が発生していると判定されるので、図６の処理と同様にインバランス故障判定を行うことができる。
本変形例では、ステップＳ５１及びＳ５４が抽出手段に相当する。
【００６４】
［第２の実施形態］
本実施形態は、燃料カット運転終了直後に限らず、Ｏ２センサ出力ＳＶＯ２が所定空燃比範囲ＲＡＦＳＴに対応する所定出力範囲ＲＳＶＯ２ＳＴ（所定下側閾値ＳＶＯ２Ｌより大きくかつ所定上側閾値ＳＶＯ２Ｈより小さい範囲）を通過するとき常にインバランス故障判定を実行するようにしたものである。
【００６５】
図８は、本実施形態における処理の全体構成を示すフローチャートであり、ステップＳ７１では、空燃比が所定空燃比範囲ＲＡＦＳＴをリッチ側からリーン側に向かう方向で通過する条件（第１実行条件）の判定を行い、ステップＳ７２では逆にリーン側からリッチ側に向かう方向で通過する条件（第２実行条件）の判定を行う。ステップＳ７３では、判定された実行条件に従ってインバランス故障判定を行う。
【００６６】
図９は、第１実行条件判定処理のフローチャートである。この処理はＥＣＵ５のＣＰＵで所定時間毎または所定クランク角度毎に実行される。
ステップＳ８１では、センサ正常フラグＦＳＯ２ＳＯＫが「１」であるか否かを判別し、その答が肯定（ＹＥＳ）であるときはさらにＳＯ２フィードバック制御フラグＦＳＯ２ＦＢが「１」であるか否かを判別する（ステップＳ８２）。ステップＳ８１またはＳ８２の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００６７】
ステップＳ８２の答が肯定（ＹＥＳ）であるときは、データ取得フラグＦＲＳＴＳＴが「１」であるか否かを判別する（ステップＳ８３）。データ取得フラグＦＲＳＴＳＴは、Ｏ２センサ出力ＳＶＯ２が所定空燃比範囲ＲＡＦＳＴに対応する所定出力範囲ＲＳＶＯ２ＳＴ内にあるとき「１」に設定される（ステップＳ８６，Ｓ９０参照）。最初はステップＳ８３の答は否定（ＮＯ）であるので、ステップＳ８４に進み、Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈより小さいか否かを判別する。この答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００６８】
Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを下回ったときは、ステップＳ８４からステップＳ８５に進み、変化時間タイマＴＭＣＨＧのカウントアップを開始する。ステップＳ８６では、データ取得フラグＦＲＳＴＳＴを「１」に設定するとともに、取得データ有効フラグＦＲＳＴＥＦを「０」に設定する。
【００６９】
データ取得フラグＦＲＳＴＳＴが「１」に設定された後は、ステップＳ８３からステップＳ８７に進み、変化時間タイマＴＭＣＨＧの値が所定最大変化時間ＴＣＨＧＭＡＸ（例えば５００ｍｓｅｃ）以上であるか否かを判別する。最初はこの答は否定（ＮＯ）であるので、ステップＳ８８に進み、Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌを下回ったか否かを判別する。最初はこの答は否定（ＮＯ）であるので、直ちに処理を終了する。
【００７０】
ステップＳ８８の答が肯定（ＹＥＳ）となると、ステップＳ８９に進み、変化時間タイマＴＭＣＨＧのカウントアップを停止し、その値を「０」に戻す。ステップＳ９０では、データ取得フラグＦＲＳＴＳＴを「０」に戻すとともに、取得データ有効フラグＦＲＳＴＥＦを「１」に設定する。
【００７１】
ステップＳ８８の答が肯定（ＹＥＳ）となる前にステップＳ８７の答が肯定（ＹＥＳ）となると、変化時間タイマＴＭＣＨＧのカウントアップを停止してその値を「０」に戻す（ステップＳ９１）。ステップＳ９２では、データ取得フラグＦＲＳＴＳＴを「０」に戻すとともに、取得データ有効フラグＦＲＳＴＥＦを「０」に維持する。
【００７２】
図１０は第２実行条件判定処理のフローチャートである。この処理はＥＣＵ５のＣＰＵで所定時間毎または所定クランク角度毎に実行される。図１０の処理は、図９のステップＳ８４及びＳ８８をそれぞれステップＳ８４ａ及びＳ８８ａに代えたものである。
【００７３】
ステップＳ８４ａでは、Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌを超えたか否かを判別し、その答が肯定（ＹＥＳ）となったときにステップＳ８５に進む。またステップＳ８８ａでは、Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを超えたか否かを判別し、その答が肯定（ＹＥＳ）となったときにステップＳ８９に進む。
【００７４】
図１１は、図９及び図１０の処理を説明するためのタイムチャートであり、Ｏ２センサ出力ＳＶＯ２、データ取得フラグＦＲＳＴＳＴ、変化時間タイマＴＭＣＨＧ、及び取得データ有効フラグＦＲＳＴＥＦの推移を示す。なお、図１１（ａ）に示すＳＶＯ２Ｔは、Ｏ２センサ出力ＳＶＯ２の目標値である。
【００７５】
時刻ｔ１においてＯ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを下回ると、図９のステップＳ８５及びＳ８６が実行され、変化時間タイマＴＭＣＨＧのカウントアップが開始され、データ取得フラグＦＲＳＴＳＴが「１」に設定される（取得データ有効フラグＦＲＳＴＥＦは「０」に維持される）。時刻ｔ２においてＯ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌを下回ると、図９のステップＳ８９及びＳ９０が実行され、変化時間タイマＴＭＣＨＧの値が「０」に戻され、データ取得フラグＦＲＳＴＳＴが「０」に戻されるとともに、取得データ有効フラグＦＲＳＴＥＦが「１」に設定される。
【００７６】
時刻ｔ３においてＯ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌを超えると、図１０のステップＳ８５及びＳ８６が実行され、変化時間タイマＴＭＣＨＧのカウントアップが開始され、データ取得フラグＦＲＳＴＳＴが「１」に設定されるとともに、取得データ有効フラグＦＲＳＴＥＦが「０」に戻される。時刻ｔ４においてＯ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを超えると、図１０のステップＳ８９及びＳ９０が実行され、変化時間タイマＴＭＣＨＧの値が「０」に戻され、データ取得フラグＦＲＳＴＳＴが「０」に戻されるとともに、取得データ有効フラグＦＲＳＴＥＦが「１」に設定される。
【００７７】
時刻ｔ５においてＯ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを下回ると、図９のステップＳ８５及びＳ８６が実行され、変化時間タイマＴＭＣＨＧのカウントアップが開始され、データ取得フラグＦＲＳＴＳＴが「１」に設定されるとともに、取得データ有効フラグＦＲＳＴＥＦが「０」に戻される。その後Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌまで低下しないため、変化時間タイマＴＭＣＨＧの値が所定最大変化時間ＴＣＨＧＭＡＸに達する（時刻ｔ６）。その結果、図９のステップＳ９１及びＳ９２が実行され、変化時間タイマＴＭＣＨＧの値が「０」に戻され、データ取得フラグＦＲＳＴＳＴが「０」に戻される（取得データ有効フラグＦＲＳＴＥＦは「０」に維持される）。したがって、この場合には正常／故障の判定が行われず、判定が保留される。
時刻ｔ７〜ｔ１０における動作は、時刻ｔ１〜ｔ４における動作と同様である。
【００７８】
図１２はインバランス故障判定処理のフローチャートであり、この処理はＥＣＵ５のＣＰＵで所定クランク角度毎に実行される。
ステップＳ１０１では、データ取得フラグＦＲＳＴＳＴが「１」であるか否かを判別し、この答が否定（ＮＯ）であるときは、取得データ有効フラグＦＲＳＴＥＦが「１」であるか否かを判別する（ステップＳ１０３）。ステップＳ１０３の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００７９】
ステップＳ１０１の答が肯定（ＹＥＳ）であるときは、Ｏ２センサ出力ＳＶＯ２をサンプリングして、その検出値をメモリに格納する（ステップＳ１０２）。すなわち、データ取得フラグＦＲＳＴＳＴが「１」である期間中に（図１１，ｔ１−ｔ２，ｔ３−ｔ４，ｔ５−ｔ６，ｔ７−ｔ８、ｔ９−ｔ１０）、判定に必要なＯ２センサ出力ＳＶＯ２の取得が行われる。
【００８０】
ステップＳ１０１の答が否定（ＮＯ）でステップＳ１０３の答が肯定（ＹＥＳ）であるときは（ＦＲＳＴＳＴ＝０かつＦＲＳＴＥＦ＝１）、データ取得フラグＦＲＳＴＳＴが「１」である期間中（Ｏ２センサ出力ＳＶＯ２が所定出力範囲ＲＳＶＯ２ＦＳＴを通過している期間中）に取得されたデータを用いてＦＦＴ演算処理を実行し（ステップＳ１０４）、０．５次成分強度ＭＨＬＦＮＥを算出する。ステップＳ１０５では、０．５次成分強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨ以下であるか否かを判別し、その答が肯定（ＹＥＳ）であるときは、気筒毎の空燃比は正常と判定する（ステップＳ１０６）。一方ステップＳ１０５の答が否定（ＮＯ）であって、０．５次成分強度ＭＨＬＦＮＥが判定閾値ＭＡＧＴＨを超えているときは、インバランス故障が発生していると判定する（ステップＳ１０７）。
【００８１】
以上のように本実施形態では、空燃比フィードバック制御実行中において検出空燃比が所定空燃比範囲ＲＡＦＳＴを通過するときに、すなわちＯ２センサ出力ＳＶＯ２が所定出力範囲ＲＳＶＯ２ＳＴを通過するときに、インバランス故障判定が行われるので、空燃比フィードバック制御実行中は常に故障判定が行われ、インバランス故障を迅速に判定することができる。
【００８２】
また検出空燃比が理論空燃比よりリーン側からリッチ側へ移行する場合において、Ｏ２センサ出力ＳＶＯ２が所定下側閾値ＳＶＯ２Ｌを超えた時点から所定最大変化時間ＴＣＨＧＭＡＸ内に所定上側閾値ＳＶＯ２Ｈに達しないとき、及び検出空燃比が理論空燃比よりリッチ側からリーン側へ移行する場合において、Ｏ２センサ出力ＳＶＯ２が所定上側閾値ＳＶＯ２Ｈを下回った時点から所定最大変化時間ＴＣＨＧＭＡＸ内に所定下側閾値ＳＶＯ２Ｌに達しないときは、インバランス故障の判定が保留される。Ｏ２センサ出力ＳＶＯ２が所定出力範囲ＲＳＶＯ２ＳＴを速やかに通過しない状態では、判定精度が低下するため、判定を保留することにより、判定精度の低下を防止することができる。
【００８３】
本実施形態では、Ｏ２センサ１６が空燃比検出手段に相当し、燃料噴射弁６が燃料量制御手段の一部を構成し、ＥＣＵ５が、燃料量制御手段の一部、抽出手段、及びインバランス故障判定手段を構成する。具体的には、図１２のステップＳ１０２及びＳ１０４が抽出手段に相当し、図９及び図１０の処理、並びに図１２のステップＳ１０１、Ｓ１０３，Ｓ１０５〜Ｓ１０７がインバランス故障判定手段に相当する。
【００８４】
［変形例１］
図１３は、図１２のインバランス故障判定処理の変形例のフローチャートである。図１３の処理では、ＦＦＴ演算処理に代えてバンドパスフィルタ処理及び積算演算によって、０，５次成分強度を示す０．５次成分積算値ＩＳＶＯ２Ｆが算出され、０．５次成分積算値ＩＳＶＯ２Ｆに応じてインバランス故障判定が行われる。
【００８５】
ステップＳ１２１では、ＳＯ２フィードバック制御フラグＦＳＯ２ＦＢが「１」であるか否かを判別し、その答が否定（ＮＯ）であるときは直ちに処理を終了する。ＦＳＯ２ＦＢ＝１であるときは、図７のステップＳ５１と同様にＯ２センサ出力ＳＶＯ２に含まれる０．５次成分を抽出するバンドパスフィルタ処理を実行し、フィルタ処理後センサ出力ＳＶＯ２Ｆを算出する（ステップＳ１２２）。
【００８６】
ステップＳ１２３では、データ取得フラグＦＲＳＴＳＴが「１」であるか否かを判別し、この答が否定（ＮＯ）であるときは、取得データ有効フラグＦＲＳＴＥＦが「１」であるか否かを判別する（ステップＳ１２５）。ステップＳ１２５の答が否定（ＮＯ）であるときは直ちに処理を終了する。
【００８７】
ステップＳ１２３の答が肯定（ＹＥＳ）であるときは、前記式（２）を用いてフィルタ処理後センサ出力ＳＶＯ２Ｆを積算し、０．５次成分積算値ＩＳＶＯ２Ｆを算出する（ステップＳ１２４）。すなわち、データ取得フラグＦＲＳＴＳＴが「１」である期間中に０．５次成分積算値ＩＳＶＯ２Ｆの算出が行われる。
【００８８】
ステップＳ１２３の答が否定（ＮＯ）でステップＳ１２５の答が肯定（ＹＥＳ）であるときは、データ取得フラグＦＲＳＴＳＴが「１」である期間中（Ｏ２センサ出力ＳＶＯ２が所定出力範囲ＲＳＶＯ２ＳＴを通過している期間中）に算出された０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨ以下であるか否かを判別する（ステップＳ１２６）。その答が肯定（ＹＥＳ）であるときは、気筒毎の空燃比は正常と判定する（ステップＳ１２７）一方、ステップＳ１２６の答が否定（ＮＯ）であって、０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨを超えているときは、インバランス故障が発生していると判定する（ステップＳ１２８）。
【００８９】
図１３の処理によれば、図１２の処理において算出される０．５次成分強度ＭＨＬＦＮＥに相当する０．５次成分積算値ＩＳＶＯ２Ｆが算出され、０．５次成分積算値ＩＳＶＯ２Ｆが判定閾値ＩＳＶＯ２ＴＨを超えると、インバランス故障が発生していると判定されるので、図１２の処理と同様にインバランス故障判定を行うことができる。
本変形例では、図１３のステップＳ１２２及びＳ１２４が抽出手段に相当する。
【００９０】
［変形例２］
上述した第２の実施形態では、検出空燃比が理論空燃比よりリッチ側からリーン側へ移行するとき及びリーン側からリッチ側へ移行するときの両方において得られるＯ２センサ出力ＳＶＯ２に基づいて、インバランス故障判定を行うようにしたが、リッチ側からリーン側へ移行するときまたはリーン側からリッチ側へ移行するときの何れか一方において得られるＯ２センサ出力ＳＶＯ２に基づいて、インバランス故障判定を行うようにしてもよい。
【００９１】
なお本発明は上述した実施形態に限るものではなく、種々の変形が可能である。例えば、上述した実施形態では、ＦＦＴ演算処理により得られる０．５次成分強度ＭＨＬＦＮＥまたは０．５次成分積算値ＩＳＶＯ２Ｆと、判定閾値とを比較してインバランス故障判定を行うようにしたが、エンジン回転数ＮＥに対応する周波数（ｆＮＥ）の成分強度（１次成分強度）ＭＮＥに対する０．５次成分強度の比率、あるいは１次成分積算値ＩＳＶＯ２Ｆ１に対する０．５次成分積算値ＩＳＶＯ２Ｆの比率を、対応する判定閾値と比較してインバランス故障判定を行うようにしてもよい。
【００９２】
また上述した実施形態では、三元触媒１４の下流側に配置されたＯ２センサ１６の出力ＳＶＯ２を用いて判定を行うようにしたが、Ｏ２センサ１６を三元触媒１４の上流側に配置し、その出力を用いて判定を行うようにしてもよい。この場合、判定精度は上述した実施形態に比べて低下するが判定を行うことは可能である。
【００９３】
また上述した実施形態では、Ｏ２センサ出力ＳＶＯ２をエンジン回転に同期したタイミングでサンプリングして、０．５次成分を抽出するようにしたので、故障判定実行条件には、エンジン回転数ＮＥの変化量に関する条件が含まれていないが、判定用のデータサンプリング中におけるエンジン回転数ＮＥの変化量が例えば１０００ｒｐｍを超えたときは、判定を保留するようにしてもよい（すなわち、サンプリング中のエンジン回転数ＮＥの変化量が例えば１０００ｒｐｍ以内であるとき判定を行うようにしてもよい）。これによって、判定精度を高めることが可能となる。
【００９４】
また上述した実施形態では、吸気通路内に燃料を噴射するエンジンの空燃比制御装置に本発明を適用したが、本発明は燃焼室内に直接燃料を噴射するエンジンの空燃比制御装置にも適用可能である。また本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンなどの空燃比制御装置にも適用が可能である。
【符号の説明】
【００９５】
１  内燃機関
５  電子制御ユニット（燃料量制御手段、抽出手段、インバランス故障判定手段）
６  燃料噴射弁（燃料量制御手段）
１１  クランク角度位置センサ
１４  三元触媒（排気浄化触媒）
１６  二値型酸素濃度センサ（空燃比検出手段）
【図１】
2012229663.tif 000003
【図２】
2012229663.tif 000004
【図３】
2012229663.tif 000005
【図４】
2012229663.tif 000006
【図５】
2012229663.tif 000007
【図６】
2012229663.tif 000008
【図７】
2012229663.tif 000009
【図８】
2012229663.tif 000010
【図９】
2012229663.tif 000011
【図１０】
2012229663.tif 000012
【図１１】
2012229663.tif 000013
【図１２】
2012229663.tif 000014
【図１３】
2012229663.tif 000015