以下、本発明を具体化したガスセンサのむだ時間遅れ劣化診断方法、ガスセンサのむだ時間遅れ劣化診断装置の一実施の形態について、図面を参照して説明する。まず、図1を参照し、本発明のガスセンサのむだ時間遅れ劣化診断方法を実現可能なむだ時間遅れ劣化診断装置として、ガスセンサの出力する検出信号に基づき、ガスセンサがむだ時間遅れ劣化状態にあるか否かを診断することが可能なECU(電子制御ユニット)5を例に説明する。また、ガスセンサとしては、全領域空燃比センサ1を例に説明する。図1は、ECU5と全領域空燃比センサ1との電気的な構成を説明するためのブロック図である。
なお、第1の実施の形態では、全領域空燃比センサ1とECU5との間に図示外の中継基板を介在させ、その中継基板上の一回路部として、後述するセンサ駆動回路部3を設けた場合を例に説明を行う。もっともセンサ駆動回路部3は、ECU5上の一回路部としてECU5に設けられる場合もある。したがって、本発明における「ガスセンサの出力」とは、厳密には、全領域空燃比センサ1とセンサ駆動回路部3とから構成されるセンサユニット4の出力が、それに相当するものではあるが、便宜上、全領域空燃比センサ1の出力として、以下の説明を行うものとする。
図1に示す全領域空燃比センサ1は、自動車のエンジンの排気通路(図示外)に取り付けられ、排気通路を流通する排気ガス中の特定ガス成分(第1の実施の形態では酸素)の濃度を検出するセンサであり、排気ガスの空燃比を検出するためのセンサである。全領域空燃比センサ1は、内部に細長で長尺な板状をなすセンサ素子10を、図示外のハウジング内に保持した構造を有する。全領域空燃比センサ1からは、このセンサ素子10の出力する信号を取り出すための信号線が引き出されており、全領域空燃比センサ1とは離れた位置に取り付けられる中継基板(図示外)上のセンサ駆動回路部3に電気的に接続されている。そして、全領域空燃比センサ1とセンサ駆動回路部3とから構成されるセンサユニット4の出力が、自動車のECU(電子制御ユニット)5に入力されている。ECU5では、センサユニット4からの出力、すなわち全領域空燃比センサ1の出力に基づき、エンジンの空燃比フィードバック制御が行われる。
まず、センサ素子10の構造について説明する。センサ素子10は、排気ガス中の酸素濃度を検出するための検出体28と、検出体28を加熱するためのヒータ体27とから構成されている。検出体28は、ジルコニアを主体とする固体電解質体11,13,14と、アルミナを主体とする絶縁基体12とを、固体電解質体14,13,絶縁基体12,固体電解質体11の順に積層した構造を有する。固体電解質体11の両面には、白金を主体とする一対の電極19,20がそれぞれ形成されており、同様に、固体電解質体13の両面にも一対の電極21,22がそれぞれ形成されている。また、電極22は固体電解質体13,14に挟まれ、固体電解質体中に埋設された形態となっている。固体電解質体11,13,14および絶縁基体12は、いずれも細長い板状に形成されており、図1ではその長手方向と直交する断面を示している。
絶縁基体12の長手方向の一端側には、固体電解質体11,13を一壁面としつつ、排気ガスを導入可能な中空の内部空間としてのガス検出室23が形成されている。このガス検出室23の幅方向の両端には、ガス検出室23内に排気ガスを導入する際の流入量を規制するための多孔質状の拡散律速部15が設けられている。上記した固体電解質体11上の電極20と、固体電解質体13上の電極21は、このガス検出室23内にそれぞれ露出されている。
次にヒータ体27は、アルミナを主体とし、板状をなす2枚の絶縁基体18,17を積層しつつ、両絶縁基体間に白金を主体とする発熱抵抗体26を挟んで埋設した構造を有する。ジルコニアからなる固体電解質体は常温では絶縁性を示すが、高温環境下では活性化され酸素イオン導電性を示すことが知られており、ヒータ体27は、その固体電解質体11,13,14を加熱して活性化させるため設けられている。
ヒータ体27は、検出体28の固体電解質体11側の外層に配設されている。そしてヒータ体27の絶縁基体18と、検出体28の固体電解質体11とは、長手方向の基端側で接合材を介して一体化されており、センサ素子10の長手方向の一端側における絶縁基体18と固体電解質体11との間には間隙が形成されている。この間隙内に配置された固体電解質体11上の電極19は、その表面がセラミックスからなる多孔質性の保護層24に覆われており、排気ガスに含まれるシリコン等の被毒成分によって電極19が劣化しないように保護されている。
このように構成されたセンサ素子10において、固体電解質体11とその両面に設けられた一対の電極19,20は、外部からガス検出室23内に酸素を汲み入れ、あるいはガス検出室23から外部へ酸素を汲み出す酸素ポンプセル(以下、固体電解質体11および電極19,20を総じて「Ipセル」ともいう。)として機能する。同様に、固体電解質体13とその両面に設けられた一対の電極21,22は、両電極間の酸素濃度に応じて起電力を発生させる酸素濃度検出セル(以下、固体電解質体13および電極21,22を総じて「Vsセル」ともいう。)として機能する。また、電極22は、ガス検出室23内の酸素濃度の検出のための基準となる酸素濃度を維持する酸素基準電極として機能する。なお、IpセルおよびVsセルの詳細な機能については後述する。
次に、センサ素子10に接続されるセンサ駆動回路部3の構成について説明する。センサ駆動回路部3は、ヒータ電圧供給回路31、ポンプ電流駆動回路32、電圧出力回路33、微小電流供給回路34および基準電圧比較回路35から構成され、センサ素子10から排気ガス中の酸素濃度に応じた電流値を電圧信号として得るための電気回路部である。
ヒータ電圧供給回路31は、センサ素子10のヒータ体27の発熱抵抗体26の両端に電圧Vhを印加して発熱させ、IpセルおよびVsセルの加熱を行う。微小電流供給回路34は、Vsセルの電極22から電極21側へ微小電流Icpを流し、電極22側に酸素イオンを移動させて酸素を溜め込ませることで、電極22を排気ガス中の酸素濃度を検出するための基準となる酸素基準電極として機能させる。電圧出力回路33は、Vsセルの電極21,22間に生ずる起電力Vsを検出するものである。基準電圧比較回路35は、予め定められた基準電圧(例えば450mV)と、電圧出力回路33にて検出した起電力Vsとの比較を行い、比較結果をポンプ電流駆動回路32にフィードバックするものである。ポンプ電流駆動回路32は、基準電圧比較回路35から得られた比較結果に基づき、Ipセルの電極19,20間に流すポンプ電流Ipを制御して、Ipセルによるガス検出室23内への酸素の汲み入れやガス検出室23からの酸素の汲み出しが行われるようにする。
次に、ECU5の構成について説明する。ECU5は、自動車のエンジンの駆動等を電子的に制御するための装置であり、制御プログラムの実行にしたがって燃料の噴射タイミングや点火時期の制御を行うものである。そのための情報として、ECU5には全領域空燃比センサ1の出力(検出信号)が入力される。また、その他の情報として、その他のセンサからの信号(例えば、エンジンのピストン位置や回転数を検出できるクランク角、冷却水の水温、燃焼圧などの情報)も入力される。ECU5には公知の構成のCPU6、ROM7、RAM8等を搭載したマイコンチップが用いられており、図示外の信号入出力部を介してセンサユニット4のセンサ駆動回路部3から得られる排気ガス中の酸素濃度に応じた出力(検出信号)をA/D変換した値がRAM8に記憶されて、後述するむだ時間遅れ劣化診断プログラムにて用いられる。むだ時間遅れ劣化診断プログラムはROM7に記憶されており、CPU6によって実行される。そして、むだ時間遅れ劣化診断プログラムの実行にしたがい、全領域空燃比センサ1からの出力値に基づいて、センサ素子10がむだ時間遅れ劣化状態にあるか否かの診断が行われている。また、ROM7には、むだ時間遅れ劣化診断プログラムの他に、各種の制御プログラムや初期値等も記憶されている。RAM8はむだ時間遅れ劣化診断プログラムの実行などの用途に利用され、プログラムに使用される各種変数やフラグ、カウンタ等も一時的に記憶される。
次に、全領域空燃比センサ1を用いて排気ガスの酸素濃度(空燃比)を検出する動作について簡単に説明する。まず、図1に示すように、微小電流供給回路34によりVsセルの電極22から電極21に向けて微小電流Icpを流す。この通電より、電極21側から電極22側に固体電解質体13を介して酸素が汲み込まれ、電極22が酸素基準電極として機能する。そして、電圧出力回路33により両電極21,22間に発生する起電力Vsを検出し、この起電力Vsを基準電圧比較回路35で基準電圧(例えば450mV)と比較する。ポンプ電流駆動回路32では、基準電圧比較回路35による比較結果に基づいて、起電力Vsが基準電圧となるようにIpセルの電極19,20間に流すポンプ電流Ipの大きさや向きを制御する。
なお、ガス検出室23内に流入した排気ガスの空燃比が理論空燃比よりもリッチであった場合、排気ガス中の酸素濃度が薄いため、Ipセルにおいて外部からガス検出室23内に酸素を汲み入れるように、電極19,20間に流すポンプ電流Ipが制御される。一方、ガス検出室23内に流入した排気ガスの空燃比が理論空燃比よりもリーンであった場合、排気ガス中には多くの酸素が存在するため、Ipセルにおいてガス検出室23から外部へ酸素を汲み出すように、電極19,20間に流すポンプ電流Ipが制御される。このときのポンプ電流Ipが全領域空燃比センサ1の出力(検出信号)としてECU5に出力され、そのポンプ電流Ipの大きさと向きから排気ガス中に含まれる酸素濃度、ひいては排気ガスの空燃比を検出できるのである。
ECU5では、エンジンの空燃比フィードバック制御等に係る複数のプログラムがCPU6により実行されており、そのうちの1つであるむだ時間遅れ劣化診断プログラムでは、取得した全領域空燃比センサ1の出力(検出信号)に対する演算処理等が行われ、全領域空燃比センサ1がむだ時間遅れ劣化状態にあるか否かの診断が行われる。
ここで、第1の実施の形態で行われる全領域空燃比センサ1のむだ時間遅れ劣化の診断方法の概要について、図2を参照して簡単に説明する。図2は、むだ時間遅れ劣化について説明するためのタイミングチャートである。なお、図2に示す、タイミングチャートでは、エンジンに供給される混合気の目標空燃比を太い点線で示している。また、全領域空燃比センサ1に検出される排気ガスの空燃比(実空燃比)を1点鎖線および実線で示している。また、タイミングチャートの時間軸(横軸)における各タイミングを「T」と略記する。
図2に示すように、太い点線で示す目標空燃比は、目標中心空燃比を境に、T1において、リッチ側からリーン側へ変更され、T2において、リーン側からリッチ側へ変更される。それに対応し、実空燃比が、面積基準値を境に、リッチ側からリーン側あるいはリーン側からリッチ側へ変化し始める時期は、全領域空燃比センサ1がエンジンの下流に設けられるため、1点鎖線で示すように、もともと遅れ(むだ時間遅れ)Xを生ずる。全領域空燃比センサ1に劣化が生ずると、実空燃比のむだ時間遅れYは、実線で示すように、さらに遅くなる。ここで、目標中心空燃比が、本発明における「第1特定空燃比」に相当し、面積基準値が、本発明における「第2特定空燃比」に相当するものであり、この第1の実施の形態では、第1特定空燃比と第2特定空燃比とが同じ値に設定されている。なお、後述するが、第1の実施の形態では、面積基準値は、実空燃比との間で偏差を求める際にも用いられるものであるが、その偏差を求める際の面積基準値は、本発明における「基準値」に相当することになる。
第1の実施の形態では、全領域空燃比センサ1にむだ時間遅れ劣化が生じたか否かを診断するため、このタイミングチャートにおいて実空燃比によって描かれる図形の面積を求めることによって、むだ時間遅れの有無を診断している。ここで、目標空燃比が、目標中心空燃比を境にしてリッチ側からリーン側へ変更(T1)され、リーン側からリッチ側へ変更(T2)されてから、再度、リッチ側からリーン側へ変更(T3)されるまでの1周期間を「小単位診断期間」とする。そして、その小単位診断期間で、
(1)目標空燃比がリッチ側にあるB期間において、実空燃比がリッチ側にある部分(右上がり斜線部Cで示す部分)の面積と、
(2)目標空燃比がリッチ側にあるB期間において、実空燃比がリーン側にある部分(右下がり斜線部Dで示す部分)の面積と
の少なくとも一方の面積を、劣化が生じていないときの実空燃比(1点鎖線)をもとにして定めた所定の基準値と比較して、劣化の有無を診断する。または、小単位診断期間で、
(3)目標空燃比がリーン側にあるA期間において、実空燃比がリッチ側にある部分(右下がり斜線部Eで示す部分)の面積と、
(4)目標空燃比がリーン側にあるA期間において、実空燃比がリーン側にある部分(右上がり斜線部Fで示す部分)の面積と
の少なくとも一方の面積を、劣化が生じていないときの実空燃比(1点鎖線)をもとにして定めた所定の基準値と比較して、劣化の有無を診断する。もしくは、(1)〜(4)で求まる面積の組み合わせを用いて劣化の有無を診断する。
全領域空燃比センサ1に生じ得るむだ時間遅れ劣化は、必ずしも、目標空燃比のリーン側からリッチ側への変更と、リッチ側からリーン側への変更との双方の状況において、一様に生ずるとは限らない。例えば、目標空燃比がリッチ側からリーン側へ変更される場合にのみ、むだ時間遅れが生ずる形態の劣化である場合、図2において、A期間には実線に沿って実空燃比が変化し、B期間には1点鎖線に沿って実空燃比が変化する。したがって斜線部E,Fの面積は、変わらず、斜線部Cの面積は大きくなり、斜線部Dの面積は小さくなるタイミングチャートが得られる。(1)〜(4)で求まる面積の組み合わせを用いて劣化の有無を診断すれば、こうした劣化の形態に対しても、むだ時間遅れ劣化の診断を行うことができる。
このように、小単位診断期間の間に得られる上記斜線部C,D,E,Fの面積に基づいて、むだ時間遅れ劣化の診断を行う。このため、例えば外乱ノイズ等の影響で実空燃比が一時的に通常とは異なる値をとったとしても、面積全体でみた場合、外乱ノイズ等の影響が含まれる場合と含まれない場合との面積の差は小さく、むだ時間遅れ劣化の診断精度が高い。そして、むだ時間遅れ劣化の診断精度をさらに高めるには、連続する2期間以上の小単位診断期間(「中単位診断期間」という。)において、各小単位診断期間において求めた上記の面積を合計し(「面積合計値」という。)、その面積合計値を、劣化の判定を行う基準となる基準値(「劣化判定値」という。)と比較して、むだ時間遅れ劣化の診断を行えばよい。
第1の実施の形態では、一例として、小単位診断期間が5回(5期間)連続して繰り返されるまでの期間を、中単位診断期間に設定している。そして、その中単位診断期間において、(2)にしたがって求められる斜線部Dの面積の合計値に基づく診断と、(4)にしたがって求められる斜線部Fの面積の合計値に基づく診断とを組み合わせて、むだ時間遅れ劣化の診断を行っている。以下、むだ時間遅れ劣化の診断方法について、具体的に、図3〜図5のフローチャートに示す、むだ時間遅れ劣化診断プログラムの各処理にしたがって説明を行う。その前に、むだ時間遅れ劣化診断プログラムで用いられる各種変数やフラグ、カウンタ等について説明する。
むだ時間遅れ劣化診断プログラムでは、定数として、「面積基準値」、「基準反転回数」、「リーン側劣化判定値」、「リッチ側劣化判定値」が使用される。これらの定数は、予め評価試験等により定められ、むだ時間遅れ劣化診断プログラムとともにROM7に記憶されている。また、むだ時間遅れ劣化の診断を開始する条件として、全領域空燃比センサ1が活性化したか否かを判定する際に用いられる基準値としての「センサ活性判定値」や、その他、むだ時間遅れ劣化診断プログラムの実行に使用される初期値や設定値等も、ROM7に記憶されている。
また、むだ時間遅れ劣化診断プログラムでは、変数として、「リーン側面積合計値」、「リッチ側面積合計値」、「目標空燃比」、「実空燃比」、「偏差」が用いられる。さらに、フラグとして、「運転パラメータ条件フラグ」、「初期化条件フラグ」、「劣化診断完了フラグ」、「劣化判定フラグ」、「目標空燃比フラグ」が用いられ、カウント値として、「目標空燃比反転回数」が使用される。これら変数やフラグ、カウント値の記憶エリアは、プログラムの実行時にRAM8に確保される。
第1の実施の形態のむだ時間遅れ劣化診断プログラムでは、1回のエンジンの駆動開始から停止までの間に一度、ガスセンサのむだ時間遅れ劣化の診断が行われるように、劣化診断完了フラグ、運転パラメータ条件フラグ、および初期化条件フラグを用いて、診断の実施の有無が管理されている。
「劣化診断完了フラグ」は、全領域空燃比センサ1のむだ時間遅れ劣化の診断が完了した時点で立てられるフラグであり、このフラグが成立すると、むだ時間遅れ劣化の診断は実施されない。「初期化条件フラグ」は、すでにむだ時間遅れ劣化の診断が実施された後、再度、むだ時間遅れ劣化の診断が実施されるようにするため、むだ時間遅れ劣化診断プログラムとは異なる他の制御プログラムにより、必要に応じて立てられるフラグである。このフラグが成立すると、劣化診断完了フラグを含め各フラグやカウンタ等が初期化されるため、むだ時間遅れ劣化の診断を再実施できるようになる。例えば、エンジン始動後の初回のむだ時間遅れ劣化の診断後に、むだ時間遅れ劣化診断プログラムは待機状態となるが、エンジンが不意に作動を停止(いわゆるエンスト)した場合などに初期化条件フラグが立てられ、再度、むだ時間遅れ劣化の診断が実施される。
「運転パラメータ条件フラグ」もまた、むだ時間遅れ劣化診断プログラムとは異なる別の制御プログラムにより立てられるフラグである。CPU6により実行される別の制御プログラムによりエンジンを中心としたシステム全体の稼働状況が監視され、例えばエンジンの回転数や冷却水の水温などが、予め設定された、正常とみなせる値の範囲内で所定時間(例えば1秒間)維持された場合に、エンジンの運転状況が正常であるとして、運転パラメータ条件フラグが成立される。なお、エンジンの回転数や冷却水の水温の正常とみなせる範囲として、第1の実施の形態では、エンジン回転数が2000rpm以上5000rpm以下であり、水温が80℃以上215℃以下である範囲(条件)を設定しており、このように正常とみなせる範囲にある運転状態であれば、エンジンの運転状態が定常駆動状態にあると判定できる。
また、CPU6では、むだ時間遅れ劣化診断プログラムとは別に燃料の噴射タイミングおよび噴射量を制御するプログラムが実行されており、そのプログラムにおいて、混合気の目標とする空燃比がエンジンの運転状態に応じて決定されている。「目標空燃比」は、そのプログラムにおいて使用される記憶エリアから読み込まれ、むだ時間遅れ劣化診断プログラムにおいて使用される。これに対し、「実空燃比」は、全領域空燃比センサ1に検出される排気ガスの空燃比を示す値であり、具体的には、全領域空燃比センサ1が検出信号として出力するポンプ電流IpをA/D変換した空燃比実測値に対し、所定の演算を適用して算出される排気ガスの実際の空燃比に相当する値である。空燃比実測値にフィルタリング処理等を施してなまし、外乱ノイズ等の影響を低減させる場合もある。
「面積合計値」は、上記したように、実空燃比の推移を時間に示したタイミングチャートにおいて、実空燃比と「面積基準値」とで囲まれる部分の面積を、中単位診断期間において合計した合計値として求めたものである。面積合計値は、目標空燃比がリーン側にある場合とリッチ側にある場合とで、「リーン側面積合計値」と「リッチ側面積合計値」としてそれぞれ別々に求められる。全領域空燃比センサ1の出力(検出信号)が取得されるごとに、実空燃比と面積基準値との差分である「偏差」が求められ、その偏差が中単位診断期間の間、積算されて、面積合計値として求められる。そして、リーン側面積合計値とリッチ側面積合計値とが、それぞれ、「リーン側劣化判定値」と「リッチ側劣化判定値」とに比較され、その比較結果に基づいて、むだ時間遅れ劣化の診断が行われる。
「目標空燃比反転回数」は、中単位診断期間の経過を確認するため、小単位診断期間が経過した回数をカウントするのに用いられる。小単位診断期間は、上記したように、目標空燃比が「目標中心空燃比」を境にリッチ側からリーン側へ変更されたタイミングを起点とし、再度、目標空燃比がリッチ側からリーン側へ変更されるまでの1周期間として定められている。中単位診断期間は、第1の実施の形態では、小単位診断期間5回分の期間に相当し、目標空燃比反転回数は、小単位診断期間が経過するごとに1インクリメントされる。なお、中単位診断期間の経過を確認するため目標空燃比反転回数が比較されるのは「基準反転回数」であり、この値は設定によって変更可能であるが、通常は上記のように5回が設定される。
「目標空燃比フラグ」は、目標空燃比が目標中心空燃比(第1特定空燃比)を境にリッチ側にあるかリーン側にあるかを判定した結果に応じて立てられるフラグである。目標空燃比がリッチ側にある場合には1が記憶され、リーン側にある場合に0が記憶される。「劣化判定フラグ」は、むだ時間遅れ劣化診断プログラムによって全領域空燃比センサ1がむだ時間遅れ劣化の状態にあると診断(判定)された場合に立てられるフラグである。劣化判定フラグの値はCPU6により実行される他のプログラムにおいて参照され、1が記憶されている場合には、全領域空燃比センサ1にむだ時間遅れ劣化が生じたことを運転者に報知する処理(例えば、警告ランプの点灯処理)等の実施に用いられる。
次に、図3〜図5のフローチャートにしたがって、図1および図6を参照しながら、むだ時間遅れ劣化診断プログラムの各処理について説明する。図3は、むだ時間遅れ劣化診断プログラムのメインルーチンのフローチャートである。図4は、むだ時間遅れ劣化診断プログラムのメインルーチンからコールされるむだ時間遅れ劣化診断処理のフローチャートである。図5は、むだ時間遅れ劣化診断プログラムのメインルーチンからコールされるむだ時間遅れ劣化診断処理のフローチャートであって、図4と連動したフローチャートである。図6は、全領域空燃比センサ1にむだ時間遅れ劣化が生じた場合において、実空燃比が目標空燃比の反転に追従して変化する様子の一例を示すタイミングチャートである。なお、フローチャートの各ステップについては「S」と略記する。
むだ時間遅れ劣化診断プログラムはECU5の駆動開始時に、エンジンを制御するための他のプログラムと共にCPU6により実行される。図3に示す、むだ時間遅れ劣化診断プログラムのメインルーチンが実行されると、まず初期化処理が行われ、RAM8に、むだ時間遅れ劣化診断プログラムに使用される変数やフラグ、カウンタ等の記憶エリアが確保される(S11)。
そして、むだ時間遅れ劣化診断プログラムとは別途実行されるタイマプログラム(図示外)が起動され、計時が開始される(S12)。タイマプログラムは、むだ時間遅れ劣化診断プログラムの各処理を実行するタイミングの基準となるカウント値を一定時間間隔でインクリメント(あるいはデクリメントであってもよい。)するプログラムである。むだ時間遅れ劣化診断プログラムは、メインプログラムのS13〜S26の処理を、例えば10msec毎に1度、繰り返し実行するように構成されており、タイマプログラムはその計時に用いられる。
次にセンサユニット4のセンサ駆動回路部3に指示が送信され、全領域空燃比センサ1の固体電解質体11,13,14の活性化のため、ヒータ電圧供給回路31によるヒータ体27への通電が行われる(図1参照)。そして、センサ素子10のインピーダンスを公知の手法を用いて算出し、算出されたインピーダンスが所定の活性化しきい値を下回ったか否かを判定することで全領域空燃比センサ1の活性化の有無が判断される(S13)。全領域空燃比センサ1が活性化するまでは、後述するS16,S19,S27,S29を経てS13が繰り返し実行され、10msecごとに活性化の有無が確認される(S13:NO)。
全領域空燃比センサ1が活性化すると(S13:YES)、S15に進み、初期化条件フラグが確認される(S15)。前述したように、初期化条件フラグは、むだ時間遅れ劣化の診断が終了した後、再度実施する場合に立てられるフラグであるため、通常は0となっており(S15:NO)、S18に進む。
なお、初期化条件フラグが1となったときにはS16に進み、全領域空燃比センサ1が非活性のときと同様にS16およびS19の処理が実行され、RAM8に確保されたフラグ、変数等のリセットが行われる。具体的に、S16では、診断回数、劣化判定回数の各カウント値と、劣化判定フラグ、劣化診断完了フラグ、初期化条件フラグの各フラグがリセットされる(S16)。また、S19では、目標空燃比フラグ、目標空燃比反転回数、リーン側・リッチ側面積合計値が、それぞれリセットされる(S19)。その後はS27で10msecの経過待ちが行われ(S27:NO)、経過すれば(S27:YES)、次の10msecの計時のためタイマがリセットされてからS13に戻り(S29)、S13〜S26が繰り返される。
S18に戻り、次に、運転パラメータ条件フラグが確認される(S18)。上記したように運転パラメータ条件フラグはむだ時間遅れ劣化診断プログラムとは異なる別の制御プログラムにより値が管理されており、エンジンの回転数や冷却水の水温が予め設定された正常とみなせる値の範囲に達しないうちは、初期状態、すなわち0が記憶されている(S18:NO)。この場合はS19に進み、上記した各フラグや変数の一部がリセットされつつ、運転パラメータ条件フラグが成立するまで待機する。なお、S18において、運転パラメータ条件フラグの成立をもって、むだ時間遅れ劣化の診断が行われるようにする処理が、本発明における「駆動状態判定工程」に相当し、その処理を実行するCPU6が、本発明における「駆動状態判定手段」に相当する。
エンジンの回転数や冷却水の水温が予め設定された正常とみなせる値の範囲内に収まり、その状態が所定時間維持された場合、運転パラメータ条件が成立した(換言すれば、エンジンの運転状態が定常駆動状態にある)として、上記別の制御プログラムにより運転パラメータ条件フラグに1が記憶される。するとS18の処理ではS21に進めるようになり(S18:YES)、次に、劣化診断完了フラグが確認される(S21)。上記したように、劣化診断完了フラグは、むだ時間遅れ劣化の診断が完了したときに成立されるフラグであり、むだ時間遅れ劣化の診断前であれば、S16の処理で劣化診断完了フラグがリセットされているので(S21:NO)、S22に進む。
S22では、目標空燃比の取得が行われる。ECU5では、全領域空燃比センサ1の出力として得られる排気ガスの空燃比の情報に基づいてエンジンに供給する混合気の空燃比を調整し、それにあわせ燃料の噴射量や噴射タイミングなどを制御する、いわゆる空燃比フィードバック制御が行われている。その空燃比フィードバック制御を行うためのプログラムでは、混合気の空燃比の調整のため、エンジンに供給する混合気の空燃比の目標とする目標空燃比の設定を行い、それにしたがった燃料噴射を制御している。S22の処理では、S22が実行されたタイミング(現時点)において、その空燃比フィードバック制御のプログラムで設定されている目標空燃比が取得され、RAM8に確保されている記憶エリアに変数の目標空燃比として記憶される(S22)。なお、S22において、目標空燃比の取得を行う処理が、本発明における「目標空燃比取得工程」に相当し、その処理を実行するCPU6が、本発明における「目標空燃比取得手段」に相当する。
次いで全領域空燃比センサ1の出力(検出信号)すなわち空燃比の実測値が取得される(S23)。空燃比実測値は、上記のポンプ電流Ipの大きさをA/D変換したものである。さらに、取得された空燃比実測値から、所定の計算式を用いて、実際の空燃比に相当する値が算出され、変数の実空燃比としてRAM8に記憶される(S25)。なお、S23において、空燃比実測値を取得する処理が、本発明における「検出信号取得工程」に相当し、その処理を実行するCPU6が、本発明における「検出信号取得手段」に相当する。
次に、むだ時間遅れ劣化診断処理のサブルーチン(図4,図5参照)がコールされる(S26)。ところで、むだ時間遅れ劣化診断処理のサブルーチンから戻るとS27に進み10msecの経過を待って、S13〜S26が繰り返し実行されることとなるが、全領域空燃比センサ1のむだ時間遅れ劣化の有無についての診断が完了するまで、劣化診断完了フラグは0のまま維持される。したがって、メインルーチンのS13〜S26までの処理は、以降も上記同様に10msecごとに実行されるので、以下では、S26からコールされる図4,図5のむだ時間遅れ劣化診断処理について、図6のタイミングチャートを参照しながら説明する。
上記したように、第1の実施の形態では、全領域空燃比センサ1のむだ時間遅れ劣化の診断を行うにあたって、図2のタイミングチャートの斜線部Dにより示される部分の面積と、斜線部Fにより示される部分の面積とに基づいて、むだ時間遅れ劣化の診断を行っている。つまり、目標空燃比がリッチ側にあり、実空燃比がリーン側にある(2)の場合と、目標空燃比がリーン側にあり、実空燃比もリーン側にある(4)の場合に、面積の積算が行われるように、図4のS31〜S49において、場合分けが行われる。
具体的に、図4に示す、むだ時間遅れ劣化診断処理のサブルーチンでは、まず、S31において、実空燃比が面積基準値以上か否か確認される。例えばT3〜T5や、T7〜T9(図6参照)など、実空燃比が面積基準値以上であれば、実空燃比はリーン側にあると判定され(S31:YES)、面積の積算を行うため、現在の実空燃比から面積基準値(基準値)を引いた値が算出されて、偏差として記憶される(S33)。なお、偏差を算出する際の実空燃比が、本発明における「空燃比換算値」に相当する。一方、例えばT1〜T3や、T5〜T7(図6参照)など、実空燃比が面積基準値より小さければ、実空燃比がリッチ側にあると判定され(S31:NO)、この場合は面積の積算を行わないため、偏差に0が記憶される(S35)。なお、S31において、実空燃比が面積基準値(第2特定空燃比)に対してリッチ側にあるかリーン側にあるかを判定する処理が、本発明における「実空燃比判定工程」に相当し、その処理を実行するCPU6が、本発明における「実空燃比判定手段」に相当する。また、S33またはS35で、条件(前述した(1)〜(4)の組み合わせ)に応じて異なった計算式により求められる偏差が、本発明における「第1偏差」または「第2偏差」に相当し、その偏差を算出するS33またはS35の処理が、本発明における「第1偏差算出工程」または「第2偏差算出工程」に相当する。そして、S33またはS35を実行して、条件に応じて異なった計算式により偏差を求めるCPU6が、本発明における「第1偏差算出手段」または「第2偏差算出手段」に相当する。
次に、S37で、目標空燃比フラグが確認される。前回、むだ時間遅れ劣化診断処理が実行された際に設定された目標空燃比フラグの値が、S37で参照されることになる。例えばT2〜T4や、T6〜T8(図6参照)など、目標空燃比がリーン側にあると判定されていた場合には、目標空燃比フラグが0となっており(S37:NO)、S33またはS35で求められた偏差の値が、リーン側面積合計値に積算される(S45)。なお、S45が繰り返されることによって求められるリーン側面積合計値は、基準反転回数を1回に設定した場合であれば、本発明の「第2加算値」に相当し、基準反転回数を2回以上に設定した場合であれば、本発明の「第2合計値」に相当する。そして、基準反転回数を1回に設定した場合に、S45が繰り返されることによってリーン側面積合計値が求められる処理が、本発明における「第2加算値算出工程」に相当し、その処理を実行するCPU6が、本発明における「第2加算値算出手段」に相当する。また、基準反転回数を2回以上に設定した場合に、S45が繰り返されることによってリーン側面積合計値が求められる処理が、本発明における「第2合計算出工程」に相当し、その処理を実行するCPU6が、本発明における「第2合計値算出手段」に相当する。
図6において、この期間のうちのT2〜T3やT6〜T7には、実空燃比がリッチ側にあるので偏差に0が代入されるため、リーン側面積合計値には0が積算され、グラフでは1点鎖線に示されるように、横ばい状態となる。しかし、T3〜T4やT7〜T8には、実空燃比がリーン側にあるため偏差には現在の実空燃比(空燃比換算値)と面積基準値(基準値)との差分が代入されるので、リッチ側面積合計値は、グラフにおいて上昇傾向を示すこととなる。
次に、図4に示す、S47では、現在の目標空燃比が確認され、目標中心空燃比以上であれば(S47:NO)、目標空燃比は継続してリーン側にあると判定され、そのままメインルーチンに戻る。しかし、現在の目標空燃比が目標中心空燃比より小さければ(S47:YES)、現在の目標空燃比はリッチ側にあると判定される。つまり、例えばT4やT8(図6参照)のように、以前までリーン側にあった空燃比がリッチ側に変更されたことが検知され、目標空燃比フラグにはリッチ側を示す1が記憶される(S49)。第1の実施の形態では、目標空燃比がリッチ側からリーン側へ変更されたタイミングを基準に小単位診断期間が設定されるので、目標空燃比がリーン側からリッチ側に変更された場合は、小単位診断期間の基準ではないため、そのままメインルーチンに戻る。なお、S47や、後述するS41で、現在の目標空燃比が目標中心空燃比(第1特定空燃比)に対してリッチ側にあるかリーン側にあるかを判定する処理が、本発明における「目標空燃比判定工程」に相当し、その処理を実行するCPU6が、本発明における「目標空燃比判定手段」に相当する。
一方、S37で、例えばT4〜T6や、T8〜T10(図6参照)など、前回のむだ時間遅れ劣化診断処理の実行の際に目標空燃比がリッチ側にあると判定された場合、目標空燃比フラグは1となっており(S37:YES)、S33またはS35で求められた偏差の値がリッチ側面積合計値に積算される(S39)。なお、S39が繰り返されることによって求められるリッチ側面積合計値は、基準反転回数を1回に設定した場合であれば、本発明の「第1加算値」に相当し、基準反転回数を2回以上に設定した場合であれば、本発明の「第1合計値」に相当する。そして、基準反転回数を1回に設定した場合に、S39が繰り返されることによってリッチ側面積合計値が求められる処理が、本発明における「第1加算値算出工程」に相当し、その処理を実行するCPU6が、本発明における「第1加算値算出手段」に相当する。また、基準反転回数を2回以上に設定した場合に、S39が繰り返されることによってリッチ側面積合計値が求められる処理が、本発明における「第1合計算出工程」に相当し、その処理を実行するCPU6が、本発明における「第1合計値算出手段」に相当する。
図4に示す、S39の次に、現在の目標空燃比が確認され、目標中心空燃比より小さければ(S41:NO)、目標空燃比は継続してリッチ側にあると判定され、そのままメインルーチンに戻る。しかし、現在の目標空燃比が、目標中心空燃比以上であれば(S41:YES)、現在の目標空燃比はリーン側にあると判定される。つまり、例えばT2やT6(図6参照)のように、以前までリッチ側にあった目標空燃比がリーン側に変更されたことが検知され、目標空燃比フラグにはリーン側を示す0が記憶される(S43)。そして、目標空燃比がリーン側からリッチ側へ変更されたタイミングを基準に小単位診断期間を設定するため、S51に進む。
S51に移行すると、目標空燃比反転回数が基準反転回数(第1の実施の形態では5回)以上か確認されるが、目標空燃比反転回数1回分が小単位診断期間に相当し、その5回分に相当する中単位診断期間が経過するまでは、むだ時間遅れ劣化の診断が継続される。したがって、目標空燃比反転回数が基準反転回数より小さいうちは(S51:NO)、S53〜S55の処理を経て、目標空燃比がリッチ側からリーン側へ反転するごとに、1回の小単位診断期間が終了し、目標空燃比反転回数に1が加算される(S57)。なお、目標空燃比反転回数が0である場合にのみ(S53:YES)、リーン側面積合計値およびリッチ側面積合計値のリセットが行われて、S57に進む(S55)。この処理により、例えば図6に示すように、むだ時間遅れ劣化の診断の開始時期が目標空燃比の周期とは同期しないT0に開始され、その後に小単位診断期間の開始基準となるT2を迎えたときに、T0〜T2の間に加算された分の面積合計値(図6に斜線部D0で示す。)をリセットすることができる。そして、このT2を、中単位診断期間の開始基準とすることができる。したがって、図4に示すように、目標空燃比反転回数が0でなければ(S53:NO)、中単位診断期間の最中であるため、リーン側面積合計値およびリッチ側面積合計値はリセットされず、継続して偏差が積算されることとなる。S57の処理が終わると、メインルーチンに戻る。
このように、リーン側面積合計値、およびリッチ側面積合計値は、図6に示すように、T2で一旦リセットされる。以後、目標空燃比がリッチ側にあり実空燃比がリーン側にあるときには(T4〜T5,T8〜T9など)、リッチ側面積合計値が積算され、目標空燃比がリーン側にあり実空燃比もリーン側にあるときには(T3〜T4,T7〜T8など)、リーン側面積合計値が積算されていく。また、目標空燃比がリッチ側からリーン側へ反転する度に、S57において目標空燃比反転回数が加算されていく。
そして、図4に示すように、S51の実行時に目標空燃比反転回数が基準反転回数(5回)に達していたときに(S51:YES)、中単位診断期間が終了したと判断されて、S61〜S69の処理、すなわち全領域空燃比センサ1がむだ時間遅れ劣化状態にあるか否か診断する処理が実行される。まず、リーン側面積合計値がリーン側劣化判定値と比較される。リーン側面積合計値は、図6に示す、斜線部F1〜F5の面積を合計したものであり、図5に示すように、リーン側劣化判定値よりも小さかったら(S61:YES)、劣化と判定され、すなわち全領域空燃比センサ1にむだ時間遅れ劣化が生じていると診断されて、劣化判定フラグに1が記憶される(S67)。
一方、S61で、リーン側面積合計値がリーン側劣化判定値以上であれば(S61:NO)、次に、リッチ側面積合計値がリッチ側劣化判定値と比較される。リッチ側面積合計値は、図6に示す、斜線部D1〜D5の面積を合計したものであり、図5に示すように、リッチ側面積合計値がリッチ側劣化判定値より大きければ(S63:YES)、全領域空燃比センサ1にむだ時間遅れ劣化が生じていると診断されて、劣化判定フラグに1が記憶される(S67)。しかし、リッチ側面積合計値がリッチ側劣化判定値以下であれば(S63:NO)、正常と判定され、すなわち全領域空燃比センサ1にむだ時間遅れ劣化は生じていないと診断され、劣化判定フラグは0のまま維持される(S65)。劣化判定フラグの値は、CPU6により実行される他のプログラムにおいて繰り返し参照されており、参照時に1が記憶されていれば、例えば運転者への報知等が行われる。なお、S61またはS63において、むだ時間遅れ劣化の診断が行われる処理が、本発明における「劣化診断工程」に相当し、その処理を実行するCPU6が、本発明における「劣化診断手段」に相当する。
むだ時間遅れ劣化の診断後には、劣化診断完了フラグに1が記憶され(S69)、メインルーチンに戻る。上記のようにS13〜S26の処理は10msecごとに繰り返されるが、劣化診断完了フラグが1となった後は(S21:YES)、他のプログラムにより初期化条件フラグが成立しない限り、S26のむだ時間遅れ劣化診断処理が再度実行されることはない。
次に、むだ時間遅れ劣化診断方法の第2の実施の形態について説明する。第2の実施の形態は、第1の実施の形態で用いたむだ時間遅れ劣化診断プログラムにおいて、リーン側面積合計値およびリッチ側面積合計値を求める条件を異ならせたものである。具体的には、中単位診断期間において、(1)にしたがって求められる斜線部Cの面積の合計値に基づく診断と、(4)にしたがって求められる斜線部Fの面積の合計値に基づく診断とを組み合わせて、むだ時間遅れ劣化の診断を行う例である。したがって、むだ時間遅れ劣化診断装置としてのECU5や全領域空燃比センサ1の構成については第1の実施の形態と同様であり、説明を省略する。また、むだ時間遅れ劣化診断プログラムについても、第1の実施の形態と異なる部分について説明を行い、その他の部分は省略または簡略化して説明する。
第2の実施の形態のむだ時間遅れ劣化診断プログラムは、第1の実施の形態のむだ時間遅れ劣化診断プログラムのS31〜S39の処理(図4)を、S71〜S85の処理(図7)に置き換えるとともに、S63の処理(図5)を、S87の処理(図8)に置き換えることで、上記のように、第1の実施の形態とは異なる部分の面積の合計値を得られるようにしたものである。図3のメインルーチンについては同一である。
CPU6により図3に示したむだ時間遅れ劣化診断プログラムのメインルーチンが実行され、初期化条件フラグ(S15)、運転パラメータ条件フラグ(S18)、および劣化診断完了フラグ(S21)による場合分けの各条件が揃うと、図7および図8に示す、むだ時間遅れ劣化診断処理がコールされるようになる(S26)。
図7に示すように、S71では、目標空燃比フラグが確認される。目標空燃比フラグが0で、例えばT2〜T4やT6〜T8(図9参照)など、目標空燃比がリーン側にあると判定された場合には(S71:NO)、S81に進み、次いで実空燃比が面積基準値(第2特定空燃比)以上であるか否か確認される。例えばT3〜T4やT7〜T8(図9参照)には、実空燃比が面積基準値以上となってリーン側にあると判定され(S81:YES)、この場合には面積の積算を行うため、現在の実空燃比(空燃比換算値)から面積基準値(基準値)を引いた値が算出されて、偏差として記憶される(S85)。なお、この第2の実施の形態においても、面積基準値は、本発明における「第2特定空燃比」と「基準値」とを兼ねている。一方、例えばT2〜T3やT6〜T7(図9参照)など、実空燃比が面積基準値より小さければ、実空燃比がリッチ側にあると判定され(S81:NO)、この場合は面積の積算を行わないため、偏差に0が記憶される(S83)。そして次のS45では、S83またはS85で求められた偏差の値が、リーン側面積合計値に積算される(S45)。
一方、S71において、目標空燃比フラグが1で、例えばT4〜T6やT8〜T10(図9参照)など、目標空燃比がリッチ側にあると判定された場合には(S71:YES)、S73に進み、次いで実空燃比が面積基準値(第2特定空燃比)以下であるか否かが確認される。例えばT5〜T6やT9〜T10(図9参照)には、実空燃比が面積基準値以下となってリッチ側にあると判定され(S73:YES)、この場合には面積の積算を行うため、面積基準値(基準値)から現在の実空燃比(空燃比換算値)を引いた値が算出されて、偏差として記憶される(S77)。一方、例えばT4〜T5やT8〜T9(図9参照)など、実空燃比が面積基準値より大きければ、実空燃比がリーン側にあると判定され(S73:NO)、この場合は面積の積算を行わないため、偏差に0が記憶される(S75)。そして次のS39では、S73またはS75で求められた偏差の値が、リッチ側面積合計値に積算される(S39)。
その他の処理は第1の実施の形態と同様であり、リーン側面積合計値、およびリッチ側面積合計値は、図9に示すように、T2で一旦リセットされる。以後、目標空燃比がリーン側にあり、実空燃比もリーン側にある場合には(T3〜T4,T7〜T8など)、リーン側面積合計値が積算され、目標空燃比がリッチ側にあり、実空燃比もリッチ側にある場合には(T5〜T6,T9〜T10など)、リッチ側面積合計値が積算されていく。また、目標空燃比がリッチ側からリーン側へ反転する度に(T2,T6,T10など)、目標空燃比反転回数が加算されていく。
目標空燃比反転回数が基準反転回数(5回)に達したとき、リーン側面積合計値は、図9に示す、斜線部F1〜F5の面積を合計したものとなり、リッチ側面積合計値は、斜線部C1〜C5の面積を合計したものとなる。図8に示すように、リーン側面積合計値がリーン側劣化判定値より小さかったり(S61:YES)、あるいはリッチ側面積合計値がリッチ側劣化判定値より小さかったりすれば(S87:YES)、劣化と判定され(S67)、全領域空燃比センサ1にむだ時間遅れ劣化が生じていると診断される。
このように、第2の実施の形態においては、(2)および(4)で求まる面積の組み合わせに基づくむだ時間遅れ劣化の診断を行った第1の実施の形態とは異なり、(1)および(4)で求まる面積の組み合わせに基づくむだ時間遅れ劣化の診断を行った。もちろん、(1)〜(4)の組み合わせは任意であり、組み合わせに応じて、第1,第2の実施の形態のむだ時間遅れ診断プログラムのように、偏差の算出条件、リーン側劣化判定値・リッチ側劣化判定値の設定、劣化診断の判定条件等を変更するだけで、容易に対応可能である。
なお、本発明は各種の変形が可能なことはいうまでもない。例えば、第1の実施の形態では10msecごとにむだ時間遅れ劣化診断処理が繰り返し実行されるようにしたが、必ずしも処理時間間隔を10msecに限定するものではなく、任意に設定可能である。また、前述したように、センサ駆動回路部3をECU5の一回路部として構成してもよい。あるいは、センサ駆動回路部3にマイクロコンピュータを搭載し、そのマイクロコンピュータによってむだ時間遅れ劣化診断プログラムを実行できるようにしてもよい。
また、基準反転回数を5回に設定して、中単位診断期間を、小単位診断期間5回分の期間としたが、これに限らず、1回分でも2回分でも、あるいは6回分以上であってもよい。また、1回の小単位診断期間における面積合計値に基づいて、むだ時間遅れ劣化の診断を行ってもよい。その場合には、基準反転回数を1回に設定し、劣化判定基準値を適宜定めれば実現可能である。
また、リーン側面積合計値やリッチ側面積合計値は、10msecごとに得る実空燃比と面積基準値との偏差を加算した合計値によって求めたが、偏差を乗じた値や偏差の平均値などを面積合計値として用いてもよい。面積合計値としてこうした値を用いた場合は、むだ時間遅れ劣化を診断するための劣化判定値についても、評価試験等により導き出して設定すればよい。例えば、全領域空燃比センサ1の正常時に取り得る値と、全領域空燃比センサ1が様々なむだ時間遅れ劣化の状態にある場合に取り得る値とをサンプリングし、確実に、劣化状態と正常な状態とを区別可能となる最適な値を導き出せばよい。また、偏差は、全領域空燃比センサ1から取得されるセンサ出力(検出信号)から求められる実空燃比(空燃比換算値)と面積基準値との差分で求めたが、センサ出力そのものと、別途に設定した基準値との差分で求めてもよい。
また、上記の各実施の形態において、むだ時間遅れ劣化診断プログラムでは、エンジン始動後に一度、むだ時間遅れ劣化の診断を行った後、待機状態になるとしたが、その後にも、例えばエンジンが停止されるまで継続して繰り返し、むだ時間遅れ劣化の診断を行ってもよい。
また、2期間以上の中単位診断期間(「大単位診断期間」という。)において、それぞれの中単位診断期間における診断結果に基づいて、むだ時間遅れ劣化の診断を行ってもよい。例えば、第1の実施の形態のむだ時間遅れ劣化診断プログラムの場合、図5に示す、むだ時間遅れ劣化診断処理のS61〜S69の処理を、図10に示す、S91〜S111の処理に置き換えれば対応可能である。以下に、S91〜S111の処理の詳細について説明する。図10は、むだ時間遅れ劣化診断プログラムのメインルーチンからコールされるむだ時間遅れ劣化診断処理の変形例のフローチャートである。
本変形例では、3回(3期間)の中単位診断期間を大単位診断期間として設定している。そして、1回の、中単位診断期間における全領域空燃比センサ1のむだ時間遅れ劣化の診断を、仮の診断とし、仮の診断が3回行われたときに、2回以上、むだ時間遅れ劣化が発生したと仮に診断されていれば、むだ時間遅れ劣化が実際に発生しているとの最終的な診断を行う。本変形例では、定数として、「基準繰返し回数」、「基準劣化判定回数」と、カウント値として、「劣化判定回数」、「診断回数」が使用される。
「診断回数」は、大単位診断期間の経過を確認するため、中単位診断期間が経過した回数をカウントするのに用いられ、1回の中単位診断期間が経過するごとに1インクリメントされる。大単位診断期間の経過を確認するため、診断回数は「基準繰返し回数」と比較されるが、この基準繰返し回数は設定によって変更可能であり、通常は、上記のように3回が設定される。「劣化判定回数」は、大単位診断期間中の個々の中単位診断期間において、むだ時間遅れ劣化が発生したと仮に診断された回数をカウントするのに用いられる。むだ時間遅れ劣化が実際に発生しているか、最終的な診断を行うため、大単位診断期間の経過後に、劣化判定回数は「基準劣化判定回数」と比較される。この基準劣化判定回数は設定によって変更可能であり、通常は、上記のように2回が設定される。なお、図示しないが、診断回数および基準劣化判定回数は、図3のS16においてリセットされる。
なお、本変形例において、個々の小単位診断期間および中単位診断期間に行われる各処理は、第1の実施の形態と同様である。以下、むだ時間遅れ劣化診断処理を中心に説明し、その他の部分は省略または簡略化して説明する。
第1の実施の形態と同様に、図3に示す、むだ時間遅れ劣化診断プログラムのメインルーチンが実行され、初期化条件フラグ(S15)、運転パラメータ条件フラグ(S18)、および劣化診断完了フラグ(S21)による場合分けの各条件が揃うと、図4および図10に示す、むだ時間遅れ劣化診断処理がコールされるようになる(S26)。図4のS31〜S57の処理は、前述したとおりであり、小単位診断期間の5回目が終了して中単位診断期間が終了すると(S51:NO)、図10に示す、S91に進む。
図10に示すように、S91では、まず、目標空燃比反転回数に1が記憶され(S91)、S93〜S97(後述)の後に行われるS99でリーン側面積合計値とリッチ側面積合計値とがともにリセットされることで(S99)、次回の中単位診断期間における1回目の小単位診断期間の処理を開始可能とする準備がなされる。S91の次のS93およびS95では、今回の中単位診断期間中に積算されたリーン側面積合計値がリーン側劣化判定値よりも小さい場合、またはリッチ側面積合計値がリッチ側劣化判定値よりも大きい場合の一方でも満たされると(S93:YES/S93:NO,S95:YES)、全領域空燃比センサ1にむだ時間遅れ劣化が生じていると診断されて、劣化判定回数が1加算され(S97)、S99に進む。しかし、今回の中単位診断期間中に積算されたリーン側面積合計値がリーン側劣化判定値以上で、かつ、リッチ側面積合計値がリッチ側劣化判定値以下である場合には(S93:NO,S95:NO)、今回の中単位診断期間中に、全領域空燃比センサ1のむだ時間遅れ劣化は確認されなかったとして、そのままS99に進む。なお、S93またはS95で、むだ時間遅れ劣化が生じているか仮に診断する処理が、本発明における「仮診断工程」に相当し、その処理を行うCPU6が、本発明における「仮診断手段」に相当する。
S99の次のS101では、診断回数に1が加算され(S101)、S103で、その診断回数が基準繰返し回数(本変形例では3回)に達したか確認される。ここでは初回の中単位診断期間が終わったばかりで診断回数は1回であるので(S103:NO)、そのままメインルーチンに戻り、次回の中単位診断期間における1回目の小単位診断期間の処理が開始される。
そして2回目の中単位診断期間において、5回の小単位診断期間の実施によって、新たにリーン側面積合計値とリッチ側面積合計値とが積算される。そして、中単位診断期間が終了すると、S91〜S111が、再度、実行される。上記のように、S93〜S97で、今回(2回目)の中単位診断期間において積算されたリーン側面積合計値およびリッチ側面積合計値に基づき、むだ時間遅れ劣化の診断がなされ、むだ時間遅れ劣化が生じていれば劣化判定回数に1が加算される。S99を経て、S101では診断回数に1が加算されて2回となり、ここではまだ基準繰返し回数(3回)に達していないので、メインルーチンに戻り、3回目の中単位診断期間の処理が行われる。
上記同様に、S93〜S97で、3回目の中単位診断期間に得られたリーン側面積合計値およびリッチ側面積合計値に基づくむだ時間遅れ劣化の診断がなされ、診断結果が劣化判定回数に反映される。そしてS101で診断回数が3回になると、今回は基準繰り返し回数に達するので(S103:YES)、大単位診断期間が終了し、S105で、劣化判定回数が基準劣化判定回数(本変形例では2回)以上となっていないか確認される(S105)。劣化判定回数が2回以上なら(S105:YES)、全領域空燃比センサ1にむだ時間遅れ劣化が生じていると診断されて、劣化判定フラグに1が記憶される(S107)。しかし、劣化判定回数が2回未満であれば(S105:NO)、正常と判定され、すなわち全領域空燃比センサ1にむだ時間遅れ劣化は生じていないと診断され、劣化判定フラグは0のまま維持される(S109)。他のプログラムから劣化判定フラグの値が参照されたときに1となっていれば、例えば運転者への報知等が行われる。なお、S105で、むだ時間遅れ劣化が生じているか最終的に診断する処理が、本発明における「最終診断工程」に相当し、その処理を行うCPU6が、本発明における「最終診断手段」に相当する。
S107またはS109の後は、劣化診断完了フラグに1が記憶され(S111)、メインルーチンに戻る。以降のメインルーチンでは、劣化診断完了フラグが1となっているので(S21:YES)、他のプログラムにより初期化条件フラグが成立しない限り、S26のむだ時間遅れ劣化診断処理が再度実行されることはない。
このように、大単位診断期間における3回(3期間)の中単位診断期間のうち、2回以上の中単位診断期間において、むだ時間遅れ劣化の発生が仮に診断された場合、むだ時間遅れ劣化が実際に発生しているとして最終的な診断がなされる。これにより、第1,第2の実施の形態のように、1回の中単位診断期間でむだ時間遅れ劣化の診断を行う場合よりも、むだ時間遅れ劣化の診断精度をさらに高くすることができる。
なお、基準繰り返し回数を3回に設定して、大単位診断期間を、中単位診断期間3回分の期間としたが、これに限らず、2回分でも、あるいは4回分以上としてもよい。基準劣化判定回数も2回に限らず、基準繰り返し回数以下とすれば、1回としてもよいし、3回以上としてもよい。もちろん、上記変形例は第2の実施の形態に対しても適用可能であり、その場合には、図10を図8のフローチャートと差し替えた上で、S95の不等号を反転させて用いればよい。
また、上記変形例の2回以上の中単位診断期間において、むだ時間遅れ劣化が発生したと2回以上連続して仮に診断された場合に、むだ時間遅れ劣化が発生したとして、最終的に診断してもよい。この場合、例えば上記変形例においては、図10のS95においてNOであった場合に、劣化判定回数をリセットしてからS99に進むようにする。さらに、S103とS105の処理順を入れ替え、S101の後、入れ替え後のS105へ進み、YESであればS107へ、NOであれば、入れ替え後のS103へ進む。そして、入れ替え後のS103では、YESであればS109へ、NOであれば、メインルーチンに戻るようにすれば、実現できる。