次に図面を参照してこの発明の実施の形態を説明する。図1は、この発明の一実施形態に従う、内燃機関(以下、エンジンと呼ぶ)およびその制御装置の全体的な構成図である。
電子制御ユニット(以下、「ECU」)という)1は、中央演算処理装置(CPU)およびメモリを備えるコンピュータである。メモリには、車両の様々な制御を実現するためのコンピュータ・プログラムおよび該プログラムの実施に必要なデータ(マップを含む)を格納することができる。ECU1は、車両の各部から信号を受取ると共に、該メモリに記憶されたデータおよびプログラムに従って演算を行い、車両の各部を制御するための制御信号を生成する。
エンジン2は、複数の気筒を有するエンジンである。エンジン2には、吸気通路3および排気通路4が連結されている。吸気通路3には、スロットル弁5が設けられている。スロットル弁5の開度は、ECU1からの制御信号に従って制御される。スロットル弁5の開度を制御することにより、エンジン2に吸入される空気の量を制御することができる。スロットル弁5には、スロットル弁の開度を検出するスロットル弁開度(θTH)センサ6が連結されており、この検出値は、ECU1に送られる。
燃料噴射弁7が、エンジン2とスロットル弁5との間であって、エンジン2の吸気弁(図示せず)の少し上流側に、気筒ごとに設けられている。燃料噴射弁7は、燃料タンク29に接続されており、燃料タンク29からの燃料を噴射する。燃料噴射弁7の燃料噴射時期および燃料噴射量は、ECU1からの制御信号に従って変更される。
スロットル弁5の上流には、吸気通路3を流れる空気の量を検出するエアフローメータ(AFM)8が設けられている。
スロットル弁5の下流には、絶対圧(PB)センサ10が設けられており、吸気通路3内の圧力PBを検出する。また、絶対圧センサ10の下流には吸気温(TA)センサ11が設けられており、吸気通路3内の温度を検出する。これらの検出値は、ECU1に送られる。また、エンジン2には、エンジンの水温TWを検出するためのエンジン水温センサ12が設けられており、該センサの検出値は、ECU1に送られる。
ECU1には、エンジン1のクランク軸の回転角度を検出するクランク角センサ13が接続されており、該センサの検出値はECU1に供給される。クランク角センサ13は、所定のクランク角度(たとえば30度)毎に1パルス(CRKパルス)を発生し、該パルスにより、クランク軸の回転角度位置を特定することができる。ECU1は、該CRKパルスに基づいてエンジン回転数NEを算出する。また、クランク角センサ13は、ピストンの上死点(TDC)位置に関連したクランク角度で、TDC信号をECU1に出力する。
排気通路4には、たとえば種々の触媒によって実現されることのできる排ガス浄化装置(CAT)15が設けられており、各気筒から排気通路4に流出される排ガスを浄化して、大気に放出する。
排ガス浄化装置15の上流には、空燃比を検出する手段として空燃比(LAF)センサ16が設けられている。空燃比センサ16は、混合気のリーンからリッチにわたる領域の空燃比をリニアに検出してECU1に送る。この実施例では、空燃比センサ16の出力から、検出当量比KACTが検出される。検出当量比KACTは、空燃比を示す信号であり、「空燃比/理論空燃比」によって算出される。検出当量比KACTの値が1より小さければ、空燃比がリーンであることを示し、1より大きければリッチであることを示す。
EGR通路18が、吸気通路3と排気通路4の間に接続されており、EGR通路18を介して、排気通路4の排ガスを吸気通路3に還流し、各気筒に供給することができる。還流率(還流する排ガスの量/新気の吸入空気量)は、EGR弁19により調整することができる。EGR弁19の開度は、ECU1からの制御信号に従って変更される。
燃料タンク29は、チャージ通路20を介してキャニスタ21に接続されている。キャニスタ21は、燃料タンク29内で発生する蒸発燃料を吸着する吸着剤22を内蔵すると共に、外気取り込み口23を有する。
キャニスタ21は、パージ通路27を介して吸気通路3のスロットル弁5の下流側に接続されている。パージ通路27にはパージ制御弁28が設けられている。パージ制御弁28は、ECU1からの制御信号に従って、デューティ制御される。制御信号すなわちデューティ信号で表される開弁(オン)時間と閉弁(オフ)時間の比率(デューティ比)を変更することにより、パージ制御弁28の開弁量を連続的に制御することができる。こうして、パージ制御弁28は、パージ通路27を吸気通路3に向けて流れる蒸発燃料の量を制御する。
以上のように、燃料噴射弁7からの燃料、EGR通路18からのEGRガス、パージ通路27からの蒸発燃料、および吸気通路3からの空気の混合気が、エンジン2の燃焼室内で燃焼する。
ECU1は、上記各種センサからの入力信号に応じて、メモリに記憶されたプログラムおよびデータ(マップを含む)に従い、エンジン2の運転状態を検出すると共に、スロットル弁5、燃料噴射弁7、EGR弁19およびパージ制御弁28等を制御するための制御信号を生成する。
ここで、本願発明の、複数の気筒間における空燃比のばらつきを判断する手法の基本的な考え方を説明する。
図2を参照すると、直列4気筒エンジンにおいて、空燃比センサ16によって検出された空燃比を当量比KACTで表したグラフが示されている。前述したように、検出当量比KACTは、値1より大きければ混合気がリッチであることを示し、値1より小さければ混合気がリーンであることを示す。図に示す1サイクルは、第1気筒〜第4気筒について燃焼が順番に実行されるサイクル(より具体的には、第1気筒―>第3気筒―>第4気筒―>第2気筒の順番)を示し、この実施例では、720度のクランク角度期間に対応する。したがって、クランク角度180度毎に、いずれか1つの気筒の燃焼が行われる。
(a)は、4気筒間において空燃比が均衡されている状態(バランス状態とも呼ばれる)を示しており、検出当量比KACTが、すべての気筒において、矢印101で示すような所定のレンジ(この例では、0.01のレンジ)内に収まっている。
(b)は、4気筒間において空燃比がばらついている、すなわち不均衡になっている状態(インバランス状態とも呼ばれる)を示しており、1サイクルにおいて、検出当量比KACTが、(a)に示すような所定のレンジ内に収まっていない部分がある。この例では、第1気筒のみが、他の気筒よりも20%だけ空燃比がリッチになるよう燃料が噴射された場合を示している。このように、インバランス状態は、少なくとも1つの気筒についての空燃比と、他の気筒の空燃比との間に不均衡(ずれ)がある状態を示し、たとえば、燃料噴射弁7、パージ制御弁28等を含む蒸発燃料を処理する装置、EGR制御弁19等を含むEGRガスを処理する装置に関する構成要素の不具合等に起因して起こり得る。
図から明らかなように、バランス状態においては、検出当量比KACTに周期的な変動がほとんど生じないが、インバランス状態においては、周期的な変動が生じている。したがって、検出当量比KACTから、変動する周波数成分(変動成分)を抽出することにより、インバランス状態かどうかを判断することができる。
以下、直列4気筒エンジンとV型6気筒エンジンを例にあげて、インバランス状態を判断する手法の原理について説明する。
図3の(a)は、図1のエンジン2が、直列4気筒エンジンである場合の、空燃比(LAF)センサ16の配置を説明するための概略図である。このエンジンでは、4つの気筒2aから2dが設けられ、吸気通路3の集合部32で分岐された吸気管3aから3dは各気筒に連結され、各気筒の排気管4a〜4bは、集合部31において排気通路4に連結されている。空燃比センサ16は、該排気通路4に設けられている。
図3の(b)は、図1のエンジン2がV型6気筒エンジンである場合の、空燃比(LAF)センサの配置を説明するための概略図である。このエンジンでは、第1のバンクおよび第2のバンクのそれぞれに3個の気筒2a〜2cおよび2d〜2fが設けられている。第1のバンクについて、吸気通路3の集合部32で分岐された吸気管3aから3cが各気筒に連結され、各気筒からの排気管4aから4cは、集合部31aにおいて排気通路35aに連結されており、該排気通路35aに1個の空燃比センサ16aが設けられている。第2のバンクについても、同様の構成を有する。
図4は、図3(a)に示されるような直列4気筒エンジンの場合を示し、当該エンジンでは、1サイクルの間(クランク角度720度期間)に、#1―>#3―>#4―>#2の気筒の順番で燃料が噴射される。(a)は、気筒間において空燃比が均衡されている状態(バランス状態)の検出当量比KACTの周波数スペクトルを示す。横軸の「0.5次」は、エンジン回転数の0.5次周波数成分を示し、「1次」は、エンジン回転数の1次周波数成分を示す。
(b)〜(d)は、気筒間において空燃比が不均衡となっている状態(インバランス状態)を示し、(b)は、第1の気筒のみをリッチにし、他の気筒をリーンにした場合、(c)は、燃料噴射が連続する2つの気筒(この例では、第1および第3気筒)においてリッチにし、他の気筒をリーンにした場合、(d)は、燃料噴射が不連続の2つの気筒(この例では、第1および第4の気筒であり、以下、対向2気筒と呼ぶ)においてリッチにし、他の気筒をリーンにした場合を示し、それぞれの場合について、リッチおよびリーンを示す信号、検出当量比KACT、および検出当量比KACTの周波数スペクトルが示されている。
図に示されるように、(b)のように1つの気筒のみについて空燃比がずれている場合には、エンジン回転数の0.5次周波数成分において出力が高くなっている。(c)のように連続2気筒について空燃比がずれている場合にも、0.5次周波数成分において出力が高くなっている。(d)のように対向2気筒について空燃比がずれている場合には、エンジン回転数の1次の周波数成分において出力が高くなっている。
仮に、エンジン回転数が1000rpmとすると、1次周波数は、(1000/60)Hzであり、よって、60ミリ秒(クランク角度360度の期間=1/2サイクル)の周期に対応し、0.5次周波数は、(1000/120)Hzであり、よって、120ミリ秒(クランク角度720度の期間=1サイクル)の周期に対応する。エンジン回転数が3000rpmの場合には、1次周波数は20ミリ秒(クランク角度360度の期間)の周期に対応し、0.5次周波数は40ミリ秒(クランク角度720度の期間)の周期に対応する。したがって、(b)および(c)の場合には、検出当量比KACTが1サイクルの周期で変動し、(d)の場合には、検出当量比KACTが、2分の1サイクルの周期で変動する。
このように、直列4気筒のエンジンの場合には、エンジン回転数の0.5次周波数および1.0次周波数成分を空燃比センサの出力から抽出することにより、空燃比の不均衡に起因して変動する周波数成分を良好に抽出することができ、よってインバランス状態を判断することができる。
図5は、図3(b)に示すようなV型6気筒型のエンジンの場合を示す。当該エンジンでは、1サイクルの間(クランク角度720度期間)に、#1―>#4―>#2―>#5―>#3―>#6の気筒の順番で燃料が噴射される。前述したように、V型エンジンの場合には、バンクごとに空燃比センサが設けられるので、図には、第1〜第3気筒を備える第1のバンクについての検出当量比KACTの波形が示されている。当然ながら、第2のバンクについても同様のことがあてはまる。
(a)は、気筒間において空燃比が均衡されている状態(バランス状態)の検出当量比KACTの周波数スペクトルを示す。(b)および(c)は、気筒間において空燃比が不均衡となっている状態(インバランス状態)を示し、(b)は、第1の気筒のみをリッチにし、他の気筒をリーンにした場合、(c)は、燃料噴射が連続する2つの気筒(この例では、第1および第2気筒)においてリッチにし、他の気筒をリーンにした場合の、リッチおよびリーンを示す信号、検出当量比KACT、および検出当量比KACTの周波数スペクトルを示す。1つのバンクの気筒数が3個であるので、図4(d)のような対向2気筒のケースは存在しない。したがって、エンジン回転数の0.5次の周波数成分のみを抽出すれば、気筒間における空燃比のインバランス状態を判断することができる。
図6は、本願発明の一実施形態に従う、気筒間において空燃比がインバランス状態にあるかどうかを診断するための制御装置のブロック図を示す。
診断条件判定部51は、インバランス状態を見極める診断プロセスの実行を許可するための所定の条件が満たされたかどうかを、エンジンの運転状態に基づいて判断する。この実施例では、該所定の条件には、空燃比センサ16の応答性に依存した条件が含まれる。これは、主に、空燃比センサ16の応答性の劣化程度や、エンジン回転数NEと吸気管圧力PBに基づいて決まる。
ここで、図7を参照すると、エンジン回転数NEと吸気管圧力PBとに基づく空燃比センサの応答性の概略が示されている。この例では、所定範囲のエンジン回転数を4つのレンジに分けており、NE1〜NE4に向かって回転数の値は高くなっている。また、所定範囲の吸気管圧力を4つのレンジに分けており、PB1からPB4に向かって吸気管圧力の値は高く(すなわち負荷が高く)なっている。なお、ここで示すレンジの数は一例であり、他の数のレンジを設定してもよい。
低回転数および低負荷(低吸気管圧力)の領域では、排ガスのボリュームが不足するため、空燃比センサの出力が小さすぎて、後続の診断が困難となるおそれがある。また、高回転数の領域では、1サイクルの時間長が短いので、空燃比センサの出力が実際の空燃比変化に追従することが難しく(空燃比センサの応答性の限界領域である)、よって後続の診断が困難となるおそれがある。したがって、エンジンの現在の運転状態がこれらの領域にあるときには、診断プロセスの実行を禁止するのが好ましい。反対に、エンジンの現在の運転状態が、これらの領域以外の診断可能領域にあるときには、診断プロセスの実行を許可する。
上記では、排ガスボリューム不足となる領域を、吸気管圧力およびエンジン回転数に基づいて説明したが、排ガスボリュームが不足しているかどうかは、吸気管圧力およびエンジン回転数とは異なる運転状態パラメータに基づいて判断してもよい。たとえば、吸入空気量(これは、AFM8により検出されることができる)に基づいて判断してもよいし、燃料噴射量に基づいて判断してもよい。また、吸入空気量および燃料噴射量から排ガスボリュームの値を算出し、該算出した排ガスボリュームの値に基づいて判断してもよい。
診断プロセスの実行を許可するかどうかの上記所定の条件には、他の条件を含めることができ、この具体例については後述される。
図6に戻り、上記所定の条件が満たされたことに応じて、診断モードが開始する。診断モードは、所定期間にわたって継続する。診断モードが開始したことに応じて、目標空燃比設定部53は、所定値(典型的には、理論空燃比)である目標空燃比に、空燃比センサ16によって検出される空燃比をフィードバック制御する通常の空燃比フィードバック制御を停止し、目標空燃比を、図8に示すような、所定の周波数faすなわち所定の周期Taで、所定の空燃比値を中心に変動する周期波として設定する。ここで、該所定の周波数faは、前述した、0.5次および1次の周波数値とは異なる値を持つ。より好ましくは、該所定の周波数faは、0.5次の周波数値より小さく、かつ、アクセルペダルの踏み込み量の負荷変動では発生し得ない周波数値(たとえば、4〜8Hz)を持つよう設定される。
この実施形態では、周波数faが4Hz(よって、周期Taは、250ミリ秒)であり、理論空燃比(14.7)よりも若干リッチな空燃比値を中心として変動する正弦波として、目標空燃比を設定する。こうすることにより、診断モードにおいて上記のように目標空燃比を変動させた場合でも、NOxの排出を防ぐことができる。
なお、目標空燃比の当該周期波の周波数および波形は、これに限定されるものではなく、他の周波数の、たとえば矩形波およびのこぎり波のような周期波で、目標空燃比を設定してもよい。目標空燃比を周期波として設定する理由は、後述される空燃比センサの応答性を補償するためであり、より詳細な理由については、後述される。
こうして設定された目標空燃比は、該診断モードが継続する所定期間にわたり、所定の制御周期で実行される空燃比フィードバック制御によってサンプリングされ(図には、今回の制御周期kおよび次の制御周期(k+1)でサンプリングされる様子が示されている)、該サンプリングされた値の目標空燃比に、空燃比センサ16によって検出される空燃比が収束するように、燃料の量が算出され、該算出された量の燃料が燃料噴射弁7を介して噴射される。その結果としての空燃比が、空燃比センサ16により検出される。検出される空燃比は、目標空燃比の変動に合わせて、所定の周期Taで変動することとなる。
図6に戻り、検出空燃比取得部55は、該空燃比センサ16の出力を、後続の第1および第2のバンドパスフィルタ61および71によるフィルタリング処理の周期に同期してサンプリングすることで、検出された空燃比すなわち当量比KACTを取得する。
第1のバンドパスフィルタ61は、該取得された当量比KACTから、エンジン回転数の0.5次の周波数成分を抽出するよう構成されている。当該バンドバスフィルタのフィルタ式の一例を、以下に示す。該フィルタは、この実施例では、再帰型デジタルフィルタとして実現される。ここで、a
0〜a
Nおよびb
1〜b
Mは、シミュレーション等によって決定されることができるフィルタ係数を示す。xは、空燃比センサからの検出当量比KACTを示す。yは、フィルタの出力値を示す。nは、制御周期を示し、各制御周期の長さは、この実施例では、その後に続く積算の周期と等しいか、またはそれ以下の長さを持つよう設定される。
検出当量比KACTが第1のバンドパスフィルタ61によってフィルタリングされることにより、第1のフィルタ済み当量比が算出される。ここで、図9を参照すると、第1のフィルタ済み当量比の一例が(a)に示されている。この例では、フィルタリングの周期は、その後に続く積算の周期に等しい。
図6に戻り、第1の積算部63は、前述したエンジン回転数の0.5次周波数に対応する周期毎に、第1のフィルタ済み当量比を積算して、第1の積算値を算出する。具体的には、該周期毎に、第1のフィルタ済み当量比を受け取り、該第1のフィルタ済み当量比を第1の積算値の前回値に加算することにより、第1の積算値の今回値を算出する。こうして、図9の(b)に示されるように、第1の積算値は、該周期毎にステップ状に増加していく。第1の積算値の初期値はゼロに設定されることができる。
第1の積算部63による周期毎の積算処理は、前述した診断モードが継続する所定期間にわたって行われる。該所定期間は、予め設定されることができる(たとえば、20周期に相当する期間であり、エンジン回転数が3000rpmの場合には、0.8秒)。
第1の積算値は、図2〜図5を参照して説明したように、気筒間の空燃比におけるばらつきの程度を示す。したがって、該所定期間経過後の第1の積算値が所定のしきい値より大きければ、気筒間において空燃比がインバランス状態にあると判断することができ、また、該第1の積算値が該しきい値以下であれば、気筒間において空燃比がバランス状態にあると判断することができる。
しかしながら、図7のような診断可能領域においても、同じ実空燃比に対し、空燃比センサは様々な応答性(空燃比センサの出力の大きさで表される)を呈示し、該応答性の劣化程度に応じて、所定期間後の第1の積算値の大きさに違いが生じる。たとえば、空燃比センサ自体の経年劣化のみならず、エンジン回転数が高くなるほど、1サイクルの時間長が短くなるので、空燃比センサの応答性は小さくなり、また、低負荷になるほど(吸気管圧力が低くなるほど)、排ガスボリュームが小さくなるので、応答性は小さくなる。空燃比センサの応答性が劣化するほど、所定期間後の第1の積算値は小さくなる。なお、ここでの「劣化」は、後述するように、実空燃比が変化したときに、空燃比センサの出力が、該変化後の実空燃比に至るまでの時間が遅く、結果として、該センサによって検出される空燃比値の大きさが小さくなる現象を示す。そして、診断モードで補償される「劣化」は、その程度が比較的小さく、「故障」と判定されない程度のものを指す。「劣化」の程度が所定以上進むと(たとえば、空燃比センサ16の実際の出力が、本来出力すべき値(実空燃比の値)に対して、所定値以上の差を有する場合)、故障と判定されることとなり、この場合には補償は行われない(たとえば、図16のS13)。
この点について、図10を参照すると、(a1)は、空燃比センサの応答性が良好な場合(基準となる場合であり、実空燃比にほぼ等しい値が検出される場合)における、気筒間の空燃比がバランス状態にある場合とインバランス状態にある場合の、所定期間経過後の第1の積算値の一例を棒グラフで示し、(b1)は、空燃比センサの応答性が(a1)に比べて劣化した場合における、気筒間の空燃比がバランス状態にある場合とインバランス状態にある場合の、所定期間経過後の第1の積算値の一例を棒グラフで示す。ここで、インバランス状態を生じさせている原因は、(a1)と(b1)の場合で同じであると仮定する。
応答性が劣化するほど、空燃比センサ16の出力は小さくなるので、(b1)に示される第1の積算値は、(a1)に示される第1の積算値よりも低い。仮に、符号105で示されるような所定のしきい値を設定し、第1の積算値がしきい値より大きい場合にはインバランス状態と判断し、第1の積算値がしきい値以下である場合にはバランス状態と判断する診断を行うと、(a1)の場合には、正しい診断結果が得られることとなるが、(b1)の場合には、両方の第1の積算値についてインバランス状態と診断されることとなり、誤った診断結果となる。
このような空燃比の応答性の劣化に起因した誤った診断を防止するため、本願発明では、さらに、応答性を補償する機能ブロックを制御装置に設け、これは、図6の実施形態では、第2のバンドパスフィルタ71、第2の積算部73、および正規化部81を含む。
第2のバンドパスフィルタ71は、空燃比センサ16を介して検出された当量比KACTから、目標空燃比設定部53で設定された、目標空燃比が変動する周期Taに対応する周波数faの成分(以下、単に、目標空燃比変動の周波数成分と呼ぶことがある)を抽出するよう構成されている。前述したように、診断モードでは、目標空燃比は、所定の周期すなわち所定の周波数で変動する周期波として設定され、この実施形態では、周波数が4Hzの正弦波である。したがって、第2のバンドパスフィルタ73は、検出当量比KACTから、4Hzの周波数成分を抽出するよう構成されている。検出当量比KACTが第2のバンドパスフィルタ73によりフィルタリングされることにより、第2のフィルタ済み当量比が算出される。第2の積算部73は、第2のフィルタ済み当量比を積算する。
第2のバンドパスフィルタ71および第2の積算部73の処理は、それぞれ、第1のバンドパスフィルタ61および第1の積算部63の処理と同期して行われる。すなわち、第1および第2のバンドパスフィルタの入力は、同じ時点で検出されて検出空燃比取得部55により取得された当量比KACTであり、第1および第2の積算は、同じタイミングで、すなわち0.5次の周波数に対応する周期毎に行われる。そして、第2の積算も、第1の積算と同様に、前述した所定期間にわたって行われる。
正規化部81は、診断モードの当該所定期間が経過した後、第1の積算部63によって最終的に算出された第1の積算値を、第2の積算部73によって最終的に算出された第2の積算値で正規化することにより、第1の結果値を算出する。具体的には、以下の式(2)に従って、第1の結果値を算出する。
第1の結果値=
所定期間経過後の第1の積算値/所定期間経過後の第2の積算値 (2)
このような正規化により、空燃比センサの応答性の劣化に依存しない第1の結果値を得ることができる。したがって、診断部83は、該第1の結果値を、所定の第1のしきい値Th1と比較する。第1の結果値が第1のしきい値Th1より大きければ、検出当量比KACTの変動が大きいことを示すので、気筒間において空燃比がインバランス状態にあると判断する。第1の結果値が第1のしきい値Th以下であれば、検出当量比KACTの変動が小さいことを示すので、気筒間において空燃比がバランス状態にあると判断する。なお、インバランス状態と判断した場合には、たとえば所定の警告灯を点灯させることにより、気筒間の空燃比に不均衡が生じていることをユーザに報知することができる。
ここで再び図10を参照すると、(a2)は、空燃比センサ16の応答性が良好な場合の第2の積算値の一例を、(a3)は、(a1)の第1の積算値と(a2)の第2の積算値に基づいて算出された第1の結果値を、棒グラフで示す。(b2)は、空燃比センサ16の応答性が劣化した場合の第2の積算値の一例を、(b3)は、(b1)の第1の積算値と(b2)の第2の積算値に基づいて算出された第1の結果値を、棒グラフで示す。
前述したように、空燃比センサが劣化すると、該センサの出力が小さくなるため、第2の積算値は、(a2)よりも(b2)の方が小さい。しかしながら、(a2)および(b2)のいずれにおいて、バランス状態およびインバランス状態間において、第2の積算値の値はほぼ同じである。すなわち、第2の積算値は、目標空燃比変動の周波数成分に基づく空燃比センサの出力を示しているので、気筒間の空燃比のばらつきには影響されない。したがって、第2の積算値は、気筒間の空燃比のばらつきに関係なく、空燃比センサの劣化の程度を表しているといえる。そのため、第1の積算値を第2の積算値で正規化することにより、第1の結果値は、空燃比センサの劣化に影響されることなく、気筒間のばらつきを表す値として取得されることができる。したがって、(a3)および(b3)に示すように、所定の第1のしきい値Th1により、空燃比センサが劣化した場合でも、気筒間の空燃比のバランスおよびインバランス状態を良好な精度で判断することができる。
第1のしきい値Thは、或る気筒と他の気筒との間の空燃比のずれの量について、バランス状態とインバランス状態の境界を予め設定し、該境界のずれ量に対応するよう設定されるのが好ましい。たとえば、図11を参照すると、図7で示した診断可能領域における第1の結果値の分布(度数)について、シミュレーション結果の一例が示されている。この例は、吸気管圧力が、図7に示すPB2の値であって、エンジン回転数が、図7に示すNE2の値である場合のものである。符号111および112は、それぞれ、第1および第2気筒を他の気筒に比べて10%リッチにした場合を示し、符号121および122は、それぞれ、第1および第2気筒を他の気筒に比べて20%リッチにした場合を示す。
図から明らかなように、或る気筒と他の気筒との間の空燃比のずれが10%以下であればバランス状態と判断し、或る気筒と他の気筒との間の空燃比のずれが20%以上であればインバランス状態と判断する場合には、符号111および112で表される結果値と、符号121および122で表される結果値との間に、符号131に示されるようなしきい値を設定すればよい。このように、何パーセントのずれを境にバランス状態およびインバランス状態を区別するかに応じて、しきい値を設定することができる。
上記において、第2の積算値は、空燃比センサ16の応答性を表している。第2の積算値が大きいほど、空燃比センサの応答性が良好なことがわかる。したがって、応答性に応じて第1のしきい値Thを求め、該求めた第1のしきい値Th1を、第1の積算値と比較してもよい。この代替の実施形態が、図12に示されている。図6と異なるのは、正規化部81に代えて、しきい値設定部85が設けられている点である。たとえば、図13に示すようなマップを、予めメモリ等の記憶装置に記憶し、しきい値設定部85は、診断モードの上記所定期間経過後、第2の積算部73によって最終的に算出された第2の積算値に基づいて該マップを参照し、対応する第1のしきい値Th1を求める。第2の積算値が大きいほど、大きい値の第1のしきい値Th1が求められる。
診断部83は、該所定期間経過後、第1の積算部63によって最終的に算出された第1の積算値と、こうしてマップから求めた第1しきい値Th1とを比較する。該第1の積算値が該第1のしきい値Th1より大きければ、検出当量比KACTの変動が大きいことを示すので、気筒間において空燃比がインバランス状態にあると判断する。該第1の積算値が第1のしきい値Th1以下であれば、検出当量比KACTの変動が小さいことを示すので、気筒間において空燃比がバランス状態にあると判断する。
ここで、本願発明の、上記のような空燃比センサの応答性を補償する構成に至った原理を説明する。本願発明者の知見によれば、空燃比センサは、一次遅れ要素でモデル化することができる。周知の如く、一次遅れ要素の伝達関数G(s)は、以下の式(3)で表され、ここで、sはラプラス演算子を示し、Tは時定数を示す。
伝達関数G(s)を、周波数伝達関数G(jω)で表すと、s=jωであるので、式(4)のようになる。
周波数fの入力信号を与えたときの、空燃比センサの出力の振幅は、周波数伝達関数G(jω)のゲインとして考えることができるので、以下の式(5)のようになる。ここで、ω=2πfである。
応答性が劣化しているかどうかを判断するのに使用される、目標空燃比変動の周波数および0.5次の周波数の領域は、たとえばエンジン回転数が3000rpmのような高い場合を考慮しても、4〜25Hz程度であるので、ωT>>1とみなすことができる。したがって、上記の式(5)は、以下の式(6)のように近似することができる。
時定数Tは、周知の如く、伝達関数で表されるシステムの出力が最終値の約63.2%に達するまでの時間(秒)を表している。したがって、上記伝達関数G(jω)の時定数は、空燃比センサ16の出力(検出当量比KACT)が、最終値(実空燃比の値)の約63.2%の値に達するまでの時間を表している。空燃比センサの応答性が劣化するほど、出力の立ち上がりが遅くなり、よって時定数Tの値は大きくなる。
ここで、図14を参照すると、実空燃比が符号141で示すように時間t1でVだけ変化したときの、空燃比センサの応答性が良好である場合の空燃比センサの出力(当量比KACT)の立ち上がりの推移143と、応答性が劣化した場合の空燃比センサの出力の立ち上がりの推移145の一例が示されている。出力143が、最終値の約63.2%(すなわち、V×63.2%の値)に到達するまでの時定数がT1で表され、出力145が、最終値Vの約63.2%に到達するまでの時定数がT2で表されている。
前述したように、空燃比センサの出力が所定の周期でサンプリングされることにより、検出空燃比取得部55(図6等)は検出空燃比を取得する。図14に示すように、たとえば時間t2で空燃比センサの出力がサンプリングされたとすると、応答性が良好な場合には、V1によって示されるように、最終値に近い、すなわち出力の大きい値が取得されるが、応答性が劣化した場合には、V2によって示されるように、最終値から離れた、すなわち出力の小さい値が取得される。結果として、同じ時期にサンプリングされた検出空燃比の大きさは、センサの応答性が劣化するほど小さくなるおそれがある。
このように、応答性が良好な場合と劣化した場合との空燃比センサの出力の大きさの違いは、主に、時定数の大きさの違いに起因していると考えることができる。したがって、時定数の影響を排除するように、結果値を算出するようにすればよい。本願発明では、第2の積算値を用いることによって、時定数に影響されない結果値を算出することができる。
このことを、以下の計算結果に示す。上記の伝達関数G(jω)を用いて、応答性が良好な場合のバランス状態とインバランス状態の第1の結果値と、応答性が劣化した場合のバランス状態とインバランス状態の第1の結果値とを、計算する。ここで、バランス状態において、0.5次周波数に対する空燃比センサの出力振幅は、式(6)で示される理論値(これは、気筒間において空燃比の不均衡が全くない理想の状態での出力振幅を示す)に対し、1.1倍の振幅で変動すると仮定する。また、インバランス状態において、0.5次周波数に対する空燃比センサの出力振幅は、該理論値に対し、1.3倍の振幅で変動すると仮定する。さらに、目標空燃比変動の周波数に対する空燃比センサの出力振幅は、該理論値に対し、1.05倍の振幅で変動すると仮定する。
エンジン回転数を、ここでは1500rpmと仮定する。したがって、エンジン回転数の0.5次の周波数は、12.5Hzであり、これに対応する角周波数を、ω12.5Hzで表す。また、目標空燃比変動の周波数は、前述したように4Hzとし、これに対応する角周波数を、ω4Hzで表す。
1)応答性が良好な場合のバランス状態の結果値:
応答性が良好なので、時定数はT1(たとえば、0.12秒)が用いられる。第1の積算値は、0.5次の周波数成分の信号が空燃比センサに入力されたときの、該空燃比センサの出力振幅に相当すると考えることができる。バランス状態にあるため、第1の積算値の該出力振幅は、上記の理論値よりも1.1倍される。また、第2の積算値は、目標空燃比変動の周波数の信号が空燃比センサに入力されたときの、該空燃比センサの出力振幅に相当すると考えることができる。したがって、第1の結果値(=第1の積算値/第2の積算値)は、以下の式(7)のように表される。
2)応答性が良好な場合のインバランス状態の結果値:
上記1)と同様に求められるが、インバランス状態であるため、第1の積算値における出力振幅は、1.3倍となる。したがって、以下の式(8)のような計算結果となる。
3)応答性が劣化した場合のバランス状態の結果値:
上記1)と異なるのは、時定数がT2(たとえば、0.15秒)となることである。したがって、以下の式(9)のようになる。
4)応答性が劣化した場合のインバランス状態の結果値:
上記2)と異なるのは、時定数がT2となることである。したがって、以下の式(10)のようになる。
上記の計算結果からもわかるように、時定数がT1かT2かにかかわらず、第2の積算値で正規化することにより、時定数は打ち消され、第1の結果値には時定数が反映されなくなる。したがって、応答性の程度に関係のない結果値を算出することができる。結果として、本願発明の応答性補償の手法を用いることにより、気筒間の空燃比のバランスないしインバランスの状態を判断するSN比を向上させることができ、該気筒間の空燃比のばらつきを、より良好な精度で検出することができる。
図15は、本願発明の他の実施形態に従う制御装置のブロック図である。図6と異なるのは、図3を参照して前述した直列4気筒エンジンの対向2気筒の空燃比ずれについても検出可能なように、第3のバンドパスフィルタ91と第3の積算部93がさらに設けられている点である。
第3のバンドパスフィルタは、空燃比センサ16を介して検出された当量比KACTから、エンジン回転数の1次周波数成分を抽出するよう構成されており、第3のフィルタ済み当量比を算出する。第3の積算部93は、第3のフィルタ済み当量比を、該1次周波数に対応する周期毎に積算し、第3の積算値を算出する。第3のバンドパスフィルタ91は、第1のバンドパスフィルタの式(1)と同様に構成されることができ、そのフィルタリング処理は、該1次周波数に対応する周期毎に行ってもよいし、該周期より短い周期で行ってもよい。また、第3の積算部93による処理は、第1の積算部63による処理と同様に、診断モードの所定期間にわたって行うことができる。
第2のバンドパスフィルタ71および第2の積算部73は、図6を参照して説明した処理とは別個に、第3の積算値用の処理を行う。すなわち、第3のバンドパスフィルタ91が検出当量比KACTをフィルタリングするのと同じタイミングで、第2のバンドパスフィルタ71は該検出当量比KACTをフィルタリングして第4のフィルタ済み当量比を算出し、第3の積算部93が積算するのと同じタイミングで、第2の積算部73は該第4のフィルタ済み当量比を積算して、第4の積算値を算出する。
なお、1次周波数に対応する周期の長さは、0.5次周波数に対応する周期の長さの半分であるので、第4のフィルタ済み当量比が2回算出されるたびに、1回の第2のフィルタ済み当量比が算出され、同じタイミングで算出された第2および第4のフィルタ済み当量比は同じ値となる。したがって、1次周波数に対応する周期で算出される第4のフィルタ済み当量比を、0.5次周波数に対応する周期で取得して、これを、第2のフィルタ済み当量比として用いてもよい。
正規化部81は、図6を参照して説明した処理とは別個に、診断モードが実施される所定期間経過後に、第3の積算値を、第4の積算値で正規化する。すなわち、第3の積算値を、第4の積算値で除算することにより、第2の結果値を算出する。
診断部83は、図6を参照したのと同様に、第1の結果値を、第1のしきい値Th1と比較すると共に、第2の結果値を、第2のしきい値Th2と比較する。ここで、図4に示されるように、0.5次周波数成分における値の大きさと、1次周波数成分における値の大きさとは異なることがあるので、第1および第2のしきい値は、別個に設定されることができる。この場合、第2のしきい値Th2も、図11を参照して説明したのと同様の手法で設定されることができる。
診断部83は、第1の結果値が第1のしきい値Th1より大きいこと、および第2の結果値が第2のしきい値Th2より大きいこと、の少なくとも一方が満たされたならば、気筒間の空燃比がインバランス状態にあると判断する。また、診断部83は、第1の結果値が第1のしきい値Th1以下であること、および第2の結果値が第2のしきい値Th2以下であること、の両方が満たされたならば、気筒間の空燃比がバランス状態にあると判断する。
当然ながら、図12に示した、第1のしきい値を設定する実施形態を、図15の実施形態に適用し、第2のしきい値Th2を設定することができる。この場合、図13に示されるのと同様のマップを、第2のしきい値Th2および第4の積算値に基づいて予め作成してメモリ等の記憶装置に記憶し、診断モードの所定期間経過後、最終的に算出された第4の積算値に基づいて該マップを参照することによって、対応する第2のしきい値Th2を求める。診断部83は、該所定期間経過後、最終的に算出された第3の積算値を、該マップから求めた第2のしきい値Th2と比較する。診断部83は、第1の積算値が、図12のマップから求めた第1のしきい値Th1より大きいこと、および第3の積算値が、同様にマップから求めた第2のしきい値Th2より大きいこと、の少なくとも一方が満たされたならば、気筒間の空燃比がインバランス状態にあると判断する。また、診断部83は、第1の積算値が、該第1のしきい値Th以下であること、および第3の積算値が第2のしきい値Th2以下であること、の両方が満たされたならば、気筒間の空燃比がバランス状態にあると判断する。
上記の実施形態では、0.5次周波数に対応する周期の単位で積算処理が行われて第1および第2の積算値が算出され(図6、図12)、また、1次周波数に対応する周期の単位で積算処理が行われて第3および第4の積算値が算出される(図15)。代替的に、フィルタ済み当量比(第1〜第4のフィルタ済み当量比を含む)の絶対値を積算、またはフィルタ済み当量比(第1〜第4のフィルタ済み当量比を含む)の二乗値を積算するようにしてもよい。絶対値および二乗値にするのは、正の値に変換するためである。このとき、検出当量比KACTをサンプリングする周期は、1次周波数に対応する周期の半分よりも十分短い時間(たとえば、1〜2ミリ秒)とし、該周期に同期して、すべてのフィルタリングおよび積算処理を行うことができる。こうすることにより、0.5次周波数用の第2の積算値および1次周波数用の第4の積算値を別個に算出する必要をなくすことができ、該周期で算出された第2の積算値を、0.5次周波数および1次周波数の両方に併用することができる。こうして、0.5次周波数に基づく第1の積算値と目標空燃比変動に基づく第2の積算値とに基づいて、上記のような手法で診断を行うと共に、1次周波数に基づく第3の積算値と該第2の積算値とに基づいて、上記のような手法で診断を行うことができる。
図16は、本願発明の一実施形態に従う、診断条件を判断するプロセスのフローを示す。このプロセスは、ECU1のCPUにより、より具体的には図6、12および15の診断条件判定部51により、所定の周期で実行される。一実施例では、後述する診断プロセスの周期と同じタイミングで実行することができる。
ステップS1において、エンジン回転数NEが所定範囲内にあるかどうかを判断する。また、ステップS2において、吸気管圧力PBが、所定値より大きいかどうかを判断する。これは、図7を参照して述べたように、現在の運転状態が診断可能領域内にあるかどうかを判断するための処理である。診断可能領域にあれば、ステップS3に進む。診断可能領域内になければ、ステップS15に進み、診断条件フラグをゼロに設定して診断を禁止する。
前述したように、排ガスボリュームについては、エンジン回転数および吸気管圧力を用いず、吸入空気量および(または)燃料噴射量を用いてもよい。この場合には、たとえばステップS1において、AFM8によって検出される吸入空気量が所定値以上かどうかを判断し、所定値以上ならば、エンジンの運転状態が、排ガスボリュームが不足している領域にはないと判断することができるので、ステップS2に進む。あるいは、燃料噴射量が所定値以上かどうかを判断し、該所定値以上ならば、ステップS2に進むようにしてもよい。さらに、吸入空気量および燃料噴射量から排ガスボリュームを算出し、これが所定値以上ならば、ステップS2に進むようにしてもよい。そして、これらの場合、ステップS2では、エンジンの運転状態が、空燃比センサの応答性限界領域にないかどうかを判断するため、たとえば図7に示すように、エンジン回転数が所定値より低いかどうかを判断することができる。エンジン回転数が所定値より低ければ、ステップS3に進む。
ステップS3において、空燃比センサ16が活性化しているかどうかを判断する。活性化していなければ、空燃比センサから正確な出力を得ることはできないので、ステップS15において診断を禁止する。
ステップS4において、所定値(たとえば、理論空燃比)である目標空燃比に収束させるための通常の空燃比フィードバック(FB)制御が実行されているかどうかを判断する。該通常の空燃比フィードバック制御は、任意の制御手法で実現されることができる。これを判断する理由は、前述したように、目標空燃比を理論空燃比よりも若干リッチな空燃比値を中心に所定の周期で変動させる期間においても空燃比フィードバック制御を実行するが、該制御中で使用するフィードバック係数が算出されているか否かを判断するためである。したがって、通常の空燃比フィードバック制御中でないときには、診断を禁止する(S15)。
ステップS5において、エンジン水温TWが所定値より大きいかどうかを判断する。エンジン水温TWが低いと、燃料の付着によって検出当量比にスパイク状の変動が生じるおそれがあるので、診断を禁止する(S15)。
ステップS6およびS7において、エンジン回転数の変動ΔNEおよび吸気管圧力ΔPBの変動が所定値より小さいかどうかを判断する。これらの変動が大きいと、空燃比センサの出力が安定しないおそれがあるので、診断を禁止する(S15)。変動ΔNEは、たとえば、前回の周期と今回の周期の間の回転数NEの差により表されることができ、変動ΔPBは、前回の周期と今回の周期の間の吸気管圧力PBの差により表されることができる。
ステップS8において、燃料を増量する制御が行われているかどうかを判断する。燃料を増量する制御が行われていると、該燃料の増量によって空燃比のバランスが崩れやすくなるので、診断を禁止する(S15)。
ステップS9において、パージ制御弁28のデューティ比が、エンジン回転数NEと同期しているかどうかを判断する。パージ制御弁は、前述したように、所定のデューティ比で開閉される。この開閉の周期が、エンジン回転数と同期していると(たとえば、パージ制御弁の開閉の周期とエンジン回転数の周期とが同じ時間長であるとき)、気筒に導入される蒸発燃料が増加して空燃比のバランスを崩すおそれがある。したがって、このような時には診断を禁止する(S15)。
ステップS10において、EGRの還流率が所定値より高いかどうかを判断する。EGR還流率は、EGR弁19の開度によって制御されることができる。EGRの還流が動作中でないと、EGR弁19の故障等の、EGR還流に関する故障に起因した気筒間の空燃比のインバランス状態を検出することができない。また、EGR還流率が所定値より高くないと、該EGR還流に関する故障に起因したインバランス状態が空燃比センサに現れないおそれがある。したがって、EGR還流率が該所定値以下の場合には、診断を禁止する(S15)。
ステップS11において、空燃比センサの出力が、所定の上限値または下限値に張り付いているかどうかを判断する。上限値または下限値に張り付いていると、空燃比センサから周期的な波形が得られないので、診断を禁止する(S15)。
ステップS12では、エンジンが気筒休止機構を備えている場合において、気筒休止が行われている最中であるかどうかを判断する。気筒の休止中は、該休止している気筒の空燃比にずれが生じていても故障と判断されないおそれがある。したがって、このような時には診断を禁止する(S15)。
ステップS13において、空燃比センサの応答性が故障と判断されるくらい劣化しているか否かを調べ、該応答性が、該故障と判断される程度に悪い場合(たとえば、空燃比センサ16により検出される空燃比値と、該センサ16が本来出力すべき値(実空燃比の値であるが、目標空燃比値を用いてよい)との差が所定値以上である場合)に、空燃比センサが正常でないと判断することができる。正常でないと判断した場合には、診断を禁止する(S15)。
ステップS1〜S13のすべての条件が満たされたならば、ステップS14において診断条件フラグに1を設定し、診断を許可する。いずれかの条件が満たされなければ、ステップS15において、診断条件フラグにゼロを設定し、診断を禁止する。
図17は、図6、12および15に示される実施形態に従う、目標空燃比設定プロセスのフローを示す。このプロセスは、ECU1のCPUにより、より具体的には目標空燃比設定部53により、所定の周期で実行される。一実施例では、後述する診断プロセスの周期と同じタイミングで実行されることができる。
ステップS21において、図16を参照して述べた診断条件フラグにゼロが設定されているならば、診断が禁止されるため、ステップS22において、所定値(前述したように、たとえば理論空燃比)である目標空燃比に、空燃比センサ16によって検出される空燃比を収束させる通常の空燃比フィードバック制御は継続する。診断条件フラグに1が設定されているならば、診断モードを開始するため、ステップS23に進む。
診断モードの開始時には、ステップS23の、目標空燃比の周期波としての変動がまだ開始されていないため、ステップS24に進む。ステップS24において、通常の空燃比フィードバック制御を停止し、前述したように、目標空燃比の周期波としての変動を開始するため、図8に示すような所定の周期Taで変動する周期波として目標空燃比を設定する。これにより、別個の空燃比フィードバック制御プロセス(図示せず)が開始され、該プロセスにより、所定時間間隔で、該目標空燃比がサンプリングされ、該サンプリングした値の目標空燃比に、空燃比センサ16によって検出される空燃比が収束するよう燃料噴射量が算出され、該算出された量の燃料が噴射される(ここで、ステップS4を参照して前述したように、通常の空燃比フィードバック制御で使用されていたフィードバック係数を用いることができる)。こうして、診断モードが継続する所定期間にわたって、目標空燃比は、所定の周期で変動するようになり、結果としての実空燃比も、所定の周期で変動するようになる。
当該プロセスが次に実行されたときには、ステップS23の判断はYesとなるため、そのまま当該プロセスを抜ける。また、後述するように、診断モード中に図16の診断条件が満たされなくなって診断条件フラグがゼロにリセットされたときには、ステップS21の判断がNoとなり、ステップS22において、周期波として目標空燃比を変動させることは停止され、通常の空燃比フィードバック制御を再開する。
図18は、図6に示される実施形態に従う、診断プロセスのフローを示す。このプロセスは、ECU1のCPUにより、より具体的には図6の検出空燃比取得部55、第1のバンドパスフィルタ61、第1の積算部63、第2のバンドパスフィルタ71、第2の積算部73、正規化部81および診断部83により、前述した0.5次周波数に対応する周期で実行される。
ステップS31において、通常の空燃比フィードバック制御が停止されて目標空燃比の周期波としての変動が開始されているかどうかを判断する。この判断がNoであれば、診断モードが開始されていないことを示すので、当該プロセスを抜ける。この判断がYesであれば、後続の診断プロセスを実行する。
ステップS32において、空燃比センサ16を介して検出された当量比KACTを取得する。ステップS33において、検出当量比KACTに第1のバンドパスフィルタを適用することにより、第1のフィルタ済み当量比を算出する。第1のフィルタ済み当量比は、前述したように、当量比KACTから抽出されたエンジン回転数の0.5次周波数成分を表している。ステップS34において、該第1のフィルタ済み当量比を、第1の積算値の前回値(初期値は、ゼロとすることができる)に加算することにより、第1の積算値の今回値を算出する。
ステップS35において、上記の取得された検出当量比KACTに第2のバンドパスフィルタを適用することにより、第2のフィルタ済み当量比を算出する。第2のフィルタ済み当量比は、前述したように、目標空燃比変動の周波数成分を表している。ステップS36において、該第2のフィルタ済み当量比を、第2の積算値の前回値(初期値は、ゼロとすることができる)に加算することにより、第2の積算値の今回値を算出する。
ステップS37において、診断モードの上記所定期間が経過したかどうかを判断する。該所定期間は、診断条件フラグに1が設定された時から所定のタイマ(図示せず)で計時されている。該所定期間が経過していなければ、当該プロセスを抜ける。
該所定期間が経過したならば、ステップS38で、第1の積算値を第2の積算値で除算することにより、第1の積算値を正規化して、第1の結果値を算出する。
ステップS39において、算出された第1の結果値を所定の第1のしきい値Th1と比較する。第1の結果値が第1のしきい値Th1より大きければインバランス状態と判断して、NGフラグに1を設定する(S40)。そうでなければ、バランス状態と判断してOKフラグに1を設定する(S41)。
前述した図15に示す実施形態のように、エンジン回転数の1次周波数をも抽出する場合には、ステップS32〜S36の処理と平行に、1次周波数成分について、第3のバンドパスフィルタ91および第3の積算部93による第3のフィルタ済み当量比および第3の積算値の算出と、第2のバンドパスフィルタ71および第2の積算部73による第4のフィルタ済み当量比および第4の積算値の算出とを行えばよい。
ここで、1次周波数については、その周期の長さが、0.5次周波数の半分であるので、当該プロセスを、1次周波数に対応する周期毎に実行して、1次周波数についての第3および第4の積算値を算出すると共に、該プロセスが2回繰り返されるたびに、0.5次周波数についてのステップS32〜S36を1回だけ実行して、第1および第2の積算値を算出するようにすることができる。この場合、0.5次周波数についての第2のフィルタ済み当量比は、同じタイミングで算出された1次周波数についての第4のフィルタ済み当量比と同じであるので、第2および第4のフィルタ済み当量比のどちらかの演算のみを行えばよい。
そして、ステップ37において所定期間が経過したならば、ステップS38において、第1の結果値を算出すると共に、第3の積算値を第4の積算値で除算することにより第2の結果値を算出する。ステップS39において、第1の結果値と第1のしきい値Th1とを比較すると共に、第2の結果値と第2のしきい値Th2とを比較する。第1および第2の結果値の少なくとも一方が、対応するしきい値より大きければ、ステップS40に進み、インバランス状態であると判断してNGフラグをセットする。第1および第2の結果値の両方が、対応するしきい値以下ならば、ステップS41に進み、バランス状態であると判断してOKフラグをセットする。
図19は、図12に示される代替の実施形態に従う、診断プロセスのフローを示す。このプロセスは、ECU1のCPUにより、より具体的には図12の検出空燃比取得部55、第1のバンドパスフィルタ61、第1の積算部63、第2のバンドパスフィルタ71、第2の積算部73、しきい値設定部85、および診断部83により、前述した0.5次周波数に対応する周期で実行される。
ステップS31〜S37は、図18のものと同じであるので、説明を省略する。ステップ37において、所定期間が経過したと判断されたならば、ステップS48において、第2の積算値に基づいて、図13に示すようなマップを参照し、対応する第1のしきい値Th1を求める。ステップS49において、第1の積算値と該求めた第1のしきい値Th1とを比較する。第1の積算値が第1のしきい値Th1より大きければインバランス状態と判断して、NGフラグに1を設定する(S40)。そうでなければ、バランス状態と判断してOKフラグに1を設定する(S41)。
前述した図12に示す実施形態のように、エンジン回転数の1次周波数をも抽出する場合には、図18を参照して説明したのと同様に、ステップS32〜S36の処理と平行に、1次周波数成分について、第3のフィルタ済み当量比および第4のフィルタ済み当量比の算出と、第3の積算値および第4の積算値の算出を行えばよい。この場合も、当該プロセスを、1次周波数に対応する周期毎に実行して、1次周波数についての第3および第4の積算値を算出すると共に、該プロセスが2回繰り返されるたびに、0.5次周波数についてのステップS32〜S36を1回だけ実行して、第1および第2の積算値を算出するようにすることができる。0.5次周波数についての第2のフィルタ済み当量比は、同じタイミングで算出された1次周波数についての第4のフィルタ済み当量比と同じであるので、第2および第4のフィルタ済み当量比の算出のどちらかの演算のみを行えばよい。
そして、ステップS37において所定期間が経過したならば、ステップS48において、第1の積算値に基づいて、対応する第1のしきい値Th1を求めると共に、第4の積算値に基づいて、対応する第2のしきい値Th2を求める。ステップS49において、第1の積算値と、該求めた第1のしきい値Th1とを比較すると共に、第3の積算値と、該求めた第2のしきい値Th2とを比較する。第1および第3の結果値の少なくとも一方が、対応するしきい値より大きければ、インバランス状態であると判断してNGフラグをセットする(S40)。第1および第3の積算値の両方が、対応するしきい値以下ならば、バランス状態であると判断してOKフラグをセットする(S41)。
上記の診断プロセスにおいて、所定期間経過後にバランスないしインバランス状態が判断された後は、診断モードを解除して(診断条件フラグのゼロへのリセット)、通常の空燃比フィードバック制御が再開される。
なお、フローには図示していないが、上記の所定期間中に、或る周期で図16の所定の診断条件が満たされなくなってステップS21の判断がNoとなり、よってステップS31の判断がNoとなったときには、前回の周期で算出された積算値(第1〜第4の積算値を含む)を、たとえばメモリ等の記憶装置に保持するのが好ましい。その後、該所定期間中に、該条件が満たされてステップS21およびS31がYesになったことに応じて、該保持された積算値を記憶装置から読み出して、積算を再開する。または、上記の所定期間中に、或る周期で図16の所定の診断条件が満たされなくなってステップS21の判断がNoとなり、よってステップS31の判断がNoとなったときには、前回の周期で算出された積算値(第1〜第4の積算値を含む)を、リセットしても良い。その後、該所定期間中に、該条件が満たされてステップS21およびS31がYesになったことに応じて、再度積算を開始する。これにより、診断結果を、より確実に得ることができる。なお、該条件が満たされなかった間の時間は、該所定期間に含めないようにするのがよい。そうすることにより、所定期間の長さにわたって積算された結果を確実に用いた診断を行うことができ、診断精度を向上させることができる。
図20〜図22を参照して、本願発明の手法に従うシミュレーション結果のいくつかの例を説明する。なお、これらの例は、0.5次周波数についての図6の実施形態に基づいている。
図20は、気筒間において空燃比がバランス状態にある場合のシミュレーション結果を示す。エンジン回転数NEの上限および下限は、図16のステップS1における所定範囲に相当し、吸気管圧力PBの下限は、図16のステップS2における所定値に相当している。また、空燃比センサ16からの検出当量比KACTは、この図ではほぼ直線状に示されているが、より詳細に見ると、目標空燃比の変動に合わせて、所定の周期(この実施形態では、4Hz)で変動している。
安定待ちタイマ(空燃比センサの出力を安定させるための時間を計時するタイマである)によって所定時間が計時された後、時間t1において、図16に示すような所定の診断条件が満たされたことに応じて診断条件フラグがゼロから1に変化し、診断モードが開始する。図には示されていないが、診断フラグが1に変化したことに応じて、診断モードの所定期間を計時するタイマが作動する。
時間t1から時間t2までの所定期間(診断モード)にわたり、前述したように、目標空燃比を、所定の周期で変動させると共に、0.5次周波数に対応する周期で、空燃比センサからの検出当量比KACTを第1および第2のバンドパスフィルタでフィルタリングした当量比をそれぞれ積算して第1および第2の積算値を算出する、というプロセスが繰り返される。これにより、第1および第2の積算値は、所定期間t1〜t2にわたって、それぞれ符号151および153で示されるように、増加していく(図には直線で示されているが、より詳細に見ると、図9に示すように周期毎にステップ状に増加する)。
所定期間が経過した時間t2において、第1の積算値を第2の積算値で除算することにより正規化を行い、得られた第1の結果値を第1のしきい値Th1と比較する。この例では、第1の結果値が該第1のしきい値Th1以下であるので、OKフラグに1が設定され、バランス状態であると判断される。
図21は、気筒間の空燃比がインバランス状態の場合のシミュレーション結果例を示し、図20と同様に、第1および第2の積算値の推移が、それぞれ、符号151および153で示されている。空燃比センサからの検出当量比KACTは、図20に比べて大きな変動を示している。そのため、時間t1からt2までの所定期間にわたり、第1の積算値が増大する量は、図20よりも大きい。第2の積算値は、図20と同様に推移する。
所定期間が経過した時間t2において、第1の積算値を第2の積算値で除算することにより正規化を行い、第1の結果値を算出する。第1の結果値を第1のしきい値Th1と比較する。この例では、第1の結果値が第1のしきい値Th1より大きいので、NGフラグに1が設定され、インバランス状態であると判断される。
図22は、気筒間の空燃比がインバランス状態の場合のシミュレーション結果の他の例を示す。図21と異なるのは、時間t2において、吸気管圧力PBに変動が生じている点である。該変動ΔPBは、前述した診断条件を満たさない大きさの変動である(図16のステップS7)。したがって、該変動が生じたことに応じて、診断条件判定プロセス(図16)において診断条件フラグがゼロに設定される。したがって、目標空燃比の周期波としての変動は停止され(図17)、その後に続く診断プロセス(図18)は実行されない。診断が停止されている間、該停止の直前の周期で算出されていた第1および第2の積算値は、たとえばECU1のメモリに保持される。また、時間t2で診断条件フラグがゼロに設定されたことに応じて、上記所定期間を計時するタイマは、値を保持したまま停止する。
その後の周期の診断条件判定プロセスにおいて診断条件フラグが1に設定されると(時間t3)、再び、上記所定期間を計時するタイマを作動させると共に、目標空燃比を周期波として変動させることが再開され(図17)、後続の診断プロセス(図18)が開始される。すなわち、検出当量比KACTが第1および第2のバンドパスフィルタによりフィルタリングされた第1および第2のフィルタ済み当量比は、メモリに保持されていた第1および第2の積算値にそれぞれ加算される。こうして、時間t4において所定期間の計時が満了すると(すなわち、(t1〜t2)+(t3〜t4)=所定期間であり、これは、図20,21の所定期間と同じ時間長さである)、第1の積算値を第2の積算値で除算することにより正規化を行い、第1の結果値を算出する。該第1の結果値を第1のしきい値Th1と比較することによって、インバランス状態かどうかの判断が行われる。この例では、第1の結果値が第1のしきい値Th1を超えたので、インバランス状態と判断され、NGフラグが1に設定される。
なお、図6、12および15に示されるフィルタおよび積算部は、コンピュータプログラムによって実現してもよいし、ハードウェア構成要素によって実現してもよい。
以上にこの発明を具体的な実施例について説明したが、この発明はこのような実施例に限定されるものでなく、また、ガソリンエンジン、ディーゼルエンジンのいずれに対しても使用することができる。