以下、本発明の実施の形態について、図面を参照して説明する。
まず、構成について説明する。
本実施の形態に係る内燃機関の故障診断装置は、図1に示すように、多気筒の内燃機関において各気筒に独立して燃料を噴射する燃料噴射システムに装備されている。なお、本実施の形態においては、#1気筒2a、#2気筒2b、#3気筒2cおよび#4気筒2dの4気筒を有するディーゼル機関により内燃機関としてのエンジン1が構成される場合について説明する。なお、以下の説明において各気筒の区別を必要としない場合には、気筒2として説明する。また、図1においては4つの気筒のうちの1つを気筒2として図示している。
この燃料噴射システムには、エンジン1で使用される燃料、例えば軽油を貯留する燃料タンク11と、エンジン1から伝達される動力により燃料タンク11中の燃料を汲み上げて吐出するフィードポンプ12と、エンジン1から伝達される動力によりフィードポンプ12から吐出された燃料をさらに高圧に加圧することができる加圧ポンプ15と、調量指令信号入力に応じて開度を変化させる公知の可変絞り要素として構成されるとともにフィードポンプ12と加圧ポンプ15の間に介装され、加圧ポンプ15への燃料の吸入量を当該調量指令信号入力に応じて変化させる調量弁13と、加圧ポンプ15により加圧され吐出された燃料を高圧で蓄圧・貯留可能なコモンレール17と、エンジン1の複数の気筒2に対応して設けられた4つの電磁駆動式あるいは圧電駆動式のインジェクタ18と、を備えている。
フィードポンプ12は、歯車ポンプなど公知の低圧燃料ポンプにより構成されている。また、調量弁13は、フィードポンプ12からの燃料供給圧がその調量弁体の開弁方向に作用するようになっており、内部コイルへの非通電時には最大開度に開放され、一方、内部コイルへの通電時にはその通電量である調量指令信号入力に応じて開度を減じることができる可変絞り要素により構成されている。
なお、フィードポンプ12と調量弁13の間には、フィードポンプ12から吐出された燃料のうち余剰の燃料を燃料タンク11側に戻すことができる図示しないリリーフ弁が設けられている。
加圧ポンプ15は、詳細な構造を図示しないが、ポンプハウジング内に、往復移動可能なプランジャと、このプランジャを駆動する入力軸としてのカムシャフト15aと、カムシャフト15aの内端側の偏心カム部分に回転自在に外装されたカムリングとを有する公知のポンプにより構成されており、ポンプハウジングとプランジャの間に、プランジャの往復移動によって燃料の吸入と加圧および吐出作業とを行う少なくとも1つの加圧室が画成されている。この加圧ポンプ15は、図示しない吸入ポート側および吐出ポート側のチェック弁を内蔵しており、加圧ポンプ15からフィードポンプ12側への燃料の逆流が吸入ポート側の逆止弁により阻止されるとともに、コモンレール17から加圧ポンプ15側への燃料の逆流が吐出側のチェック弁により阻止されるようになっている。なお、加圧ポンプ15は、フィードポンプ12と一体となって燃料供給ポンプを構成するものであってもよい。
コモンレール17は、加圧ポンプ15により加圧され吐出された燃料を負荷やエンジン回転数に依存せずに高圧で蓄圧・貯留し、各インジェクタ18に安定した圧力で燃料を供給する蓄圧手段として機能するようになっている。コモンレール17には、その内部の燃料の圧力である実コモンレール圧を予め設定された上限値までに制限する図示しないリリーフ弁が装着されている。
複数のインジェクタ18は、これらの駆動ユニットであるEDU(Electronic Distribution Unit)20に配線接続された電磁弁部18aと、各気筒2の燃焼室3内に露出する噴孔を先端に有するとともに高圧配管19を介してコモンレール17に接続される燃料噴射部18bとを有している。燃料噴射部18bは、電磁弁部18aへの通電時に開弁駆動され、噴孔から気筒2内に燃料が噴射されるようになっている。
EDU20は、複数のインジェクタ18の電磁弁部18aに対して例えば容量放電式の噴射駆動用電子配電を行う公知のユニットにより構成されており、EDU20は、エンジン1を電子制御する電子制御ユニット、すなわちECU(Electronic Control Unit)30からの噴射指令信号に従って、複数のインジェクタ18をそれぞれ対応する気筒2の噴射時期に独立して開弁駆動するようになっている。
ECU30は、具体的なハードウェア構成を図示しないが、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)および不揮発性メモリ等のバックアップ用メモリを有している。ECU30は、さらに、A/D変換器等を含む入力インターフェース回路と、ドライバやリレースイッチを含む出力インターフェース回路と、他の車載ECU、例えば自動変速機を制御するトランスミッションECU(以下、T−ECUという)との通信インターフェースなどを有している。
ECU30は、エンジン1の回転速度や負荷に応じた最適な噴射時期および噴射量を算出したり、調量弁13の開度を調節してコモンレール17内の燃料の圧力をエンジン1の運転状態に適した目標燃料圧力に追従させたりするための制御プログラム(以下、これらの制御プログラム全体を指して燃料噴射制御プログラムという)をROMに記憶している。そして、ECU30は、エンジン1の複数の気筒2のうち圧縮行程がほぼ完了した噴射時期の気筒2中に、メイン噴射に先立つ少なくとも1回のパイロット噴射およびメイン噴射を含む第1の噴射モードと、パイロット噴射が無くメイン噴射のみの第2の噴射モードと、メイン噴射の後にポスト噴射を実行する第3の噴射モードとのうち、任意の1つの噴射モードで燃料を噴射させるように噴射指令信号を生成するようになっている。
また、ECU30には、エンジン1を搭載した車両上でアクセル開度を検出するアクセル開度センサ21と、コモンレール17に装着された燃料圧力センサ22と、エンジン1のクランク軸5の回転速度を例えばカムシャフト15aに装着された磁性歯車式のパルサ23bを用いて検出するクランク角センサ23と、が接続されている。ECU30は、燃料圧力センサ22の検知信号Pcを取り込んで、コモンレール17内の燃料の圧力、すなわち実コモンレール圧を検出するとともに、エンジン1の運転状態、例えばアクセル開度センサ21およびクランク角センサ23の検知信号に応じて目標コモンレール圧を設定する。そして、ECU30は、目標コモンレール圧と実コモンレール圧とを比較して、コモンレール17内の実コモンレール圧が目標コモンレール圧と一致するように調量弁13の開度を調節するようになっている。
ECU30には、さらに、車速を検出する車速センサ24や冷却水温度を検出する水温センサ25等のセンサ群と、図示しない変速機のニュートラルポジションインジケータを点灯させるニュートラルスイッチ26や車載空調装置の電源を投入するエアコンスイッチ27等のスイッチ類が接続されている。
このECU30は、前記センサ群の検出情報や前記スイッチ類の予めバックアップ用メモリに格納されている設定値情報に基づいて、例えばクランク角センサ23からのパルス信号をエンジン1の回転速度信号および圧縮行程から燃焼行程に移行する気筒を判別可能な気筒判別信号として取り込むとともにアクセル開度信号を取り込んで、エンジン1の運転時におけるコモンレール17の目標レール圧を設定するとともに、エンジン1の運転状態に応じた噴射時期および燃料噴射量を算出するようになっている。なお、気筒判別信号は、例えばパルサ23bの欠歯位置に対応する欠歯信号あるいはクランク軸5に装着された気筒判別用突起の検出信号、あるいは吸気カムシャフトや排気カムシャフトの回転角度を表す検出信号でもよい。そして、ECU30は、算出した噴射時期および燃料噴射量に応じて調量弁13に開度調整信号Iv(図1参照)を出力したり、インジェクタ18の電磁弁部18aに噴射指令信号Iqを適時に出力するようになっている。
また、故障診断装置を構成するECU30は、クランク角センサ23と協働しエンジン1のクランク軸5の回転速度を予め設定された検出単位角度、例えば10度毎に検出する回転速度検出手段としての機能を発揮するのに加えて、後述する条件判定部31、仕事量相当値算出部32、補正量算出部34、ラフアイドル判定部35および異常気筒検出部36の各機能を発揮するためのプログラムおよびマップ、設定値情報等を有している。
具体的には、条件判定部31は、気筒2毎の燃料噴射量の算出に際して予め設定されたラフアイドル異常検出処理の前提条件が成立するか否かを判定する前提条件判定手段となっている。ここにいうラフアイドル異常検出処理の前提条件とは、イグニッションON、エンジン1の始動から一定時間が経過したアイドル安定状態、例えばアクセル開度が0[%]で、エンジン1の後段に位置する自動変速機がニュートラル状態であることを示すニュートラルスイッチ26がONであり、かつ、噴射量学習処理が可能な冷却水温レベルに達し、いわゆるアイドルアップ運転中でなく、補機負荷の切り替えであるエアコンスイッチ27の切り替えがなく、車速が0[km/h]で、これらの条件の検出に関わるセンサ群に異常がない状態であることである。なお、前提条件として、さらに、エンジン1のパイロット噴射回数の切り替え(例えばパイロット噴射2回、1回、パイロット噴射無し、ポスト噴射有りといった複数の噴射パターンのうち任意の噴射パターンへの切り替え)等のような燃焼変動を惹起する処理がなされていない安定したアイドル運転状態であることが含まれていてもよい。
仕事量相当値算出部32は、一定噴射量以上となる運転状態ではクランク角センサ23からの回転速度信号(以下、回転速度Neという)を各気筒2の燃焼周期に応じて帯域フィルタ相当の内蔵のフィルタ処理部に取り込むとともに、そのフィルタ処理部において各時点の回転変動成分のみを抽出した瞬時トルク相当値を算出し、その瞬時トルク相当値を積分処理部に取り込んで各気筒2の燃焼周期毎の区間で積分することにより各気筒2のトルク積算値である仕事量相当値を各気筒2毎に算出するようになっている。積分処理部における積分区間は、各気筒2の燃焼周期に応じて、例えばBTDC90°からATDC90°までの180°CAの範囲に設定されている。なお、BTDCは上死点前、ATDCは上死点後であり、CAはクランク回転角度[度]である。したがって、仕事量相当値算出部32は、仕事量算出手段を構成している。
具体的には、図2に示すように、仕事量相当値算出部32は、回転速度Neをクランク角センサ23の出力パルスの周期、例えば10°CA毎にサンプリングし、単位角度回転に要する単位角度回転時間である10°CA時間を算出する。そして、仕事量相当値算出部32は、10°CA時間に対し欠け歯補正を行う。欠け歯補正は、例えば、欠け歯部分の近傍においてサンプリングされた値から得られる波形と、欠け歯部分より180°CA前の近傍においてサンプリングされた値から得られる波形とを比較し、欠け歯部分の近傍の波形を、欠け歯部分より180°CA前の近傍においてサンプリングされた値から得られる波形に近づけるよう360°CAごとに補正するようになっている。
仕事量相当値算出部32は、補正された波形を30°CA時間ごとに瞬時エンジン回転数に変換する。すなわち瞬時Neを算出する。
また、仕事量相当値算出部32は、次式(1)を離散化した伝達関数を有する内蔵のフィルタ処理部においてフィルタ処理を実行し、クランク回転速度の回転変動周波数領域から外れる高周波成分と低周波成分を除去した各時点の回転変動成分である瞬時トルク相当値Nefltを算出するようになっている。
なお、(1)式中で、ζは、減衰係数、ωは、エンジン1の燃焼周波数に対応する応答周波数、sは、ラプラス演算子である。また、燃焼周波数は、4サイクルのエンジン1の燃焼周期(燃焼角度周期720°CA/気筒数nに対応する時間)の逆数から設定される。以下の説明では、燃焼角度周期が180°CAであるものとして説明する。
図3に示すように、仕事量相当値算出部32の積分処理部では、回転速度Ne(実線51)から上述のように瞬時トルク値Neflt(破線52)を算出すると、30°CA毎の周期で瞬時トルク値Nefltを取り込み、各気筒2の燃焼周期相当の一定周期毎の180°CA区間で積分することにより、気筒2毎の瞬時トルク値の積算値である略気筒別の仕事量W(#1)〜W(#4)を算出するようになっている。なお、#1〜#4は気筒番号であり、エンジン1の燃焼は#1、#3、#4、#2の順序で繰り返される。また、気筒の区別をしない場合には、#kとして説明する。
また、仕事量相当値算出部32は、算出した仕事量W(#1)〜W(#4)に基づいて基準となる仕事量平均値Wnominalを設定し、気筒別の仕事量W(#1)〜W(#4)と仕事量平均値Wnominalとの差を各気筒2における仕事量相当値Sneflt(#1)〜Sneflt(#4)として算出するようになっている。ここで、仕事量相当値算出部32により算出された仕事量W(#1)〜W(#4)は、各気筒2の実燃料噴射量にばらつきが無い場合においても、ねじり振動などに起因して値が変化する。そのため、仕事量相当値算出部32は、回転速度Neおよび燃料噴射量Qに基づいて各気筒2に対する仕事量平均値Wnominalを補正するようにしてもよい。この場合、回転速度Neおよび燃料噴射量Qと補正値との対応は、予め実験的な測定により求められており、ROMに記憶されている。
異常気筒検出部36は、仕事量相当値算出部32により算出された気筒2毎の仕事量相当値Sneflt(#1)〜Sneflt(#4)を、判定閾値th1と比較して、仕事量相当値が判定閾値th1を下回る場合には、その気筒2において故障が発生していると判定するとともに、異常気筒フラグexdcyl(#k)をONにするようになっている。なお、後述するように、特定の条件下においては、気筒2において故障が発生していないにもかかわらず、仕事量相当値Snefltが判定閾値th1を下回る場合がある。そこで、本実施の形態においては、このような条件下であっても、異常気筒検出部36が気筒2に故障が発生していると誤判定することを防止するようになっている。
補正量算出部34は、エンジン1のアイドル時における振動抑制のために、各気筒2の燃焼行程における瞬時最高回転速度の差が縮まるよう、気筒2毎の燃料噴射量Qを補正するようになっている。この補正量算出部34は、上述した仕事量相当値算出部32と同様に、回転速度Neをクランク角センサ23の出力パルスの周期、すなわち10°CA毎にサンプリングし、欠け歯補正により補正された10°CA時間を算出する。また、補正量算出部34は、算出された10°CA時間に基づいて、10°CAごとあるいはその2倍または3倍の周期で瞬時Neに変換する。
そして、補正量算出部34は、図4に示すように、瞬時Neの波形から各気筒2における瞬時最高回転速度Nemax(#1)〜Nemax(#4)を算出し、燃焼行程が前後する気筒2の瞬時最高回転速度の差分、すなわち回転偏差を算出する。補正量算出部34は、直前に燃焼行程を迎えた気筒の瞬時最高回転速度Nemax(#k)に対し今回燃焼行程を迎えた気筒の瞬時最高回転速度Nemax(#k+1)が大きければ、今回燃焼行程を迎えた気筒に対する気筒間補正量QCYをマイナスにし、直前に燃焼行程を迎えた気筒の瞬時最高回転速度Nemax(#k)に対し今回燃焼行程を迎えた気筒の瞬時最高回転速度Nemax(#k+1)が小さければ、燃料噴射量Qに対する気筒間補正量QCYをプラスにする。
このとき、補正量算出部34は、すべての気筒2に対する気筒間補正量QCYの平均値が0の近傍になるよう調整するようになっている。
また、補正量算出部34は、各燃料噴射の値が急激に変動することを防止するため、今回の燃料噴射より前の噴射量補正値と今回算出された噴射量補正値との平均値をとり、この平均値の値を次回の燃料噴射量に対する気筒間補正量QCYとする、いわゆるなまし処理を実行するようになっている。
ここで、例えば#1気筒2aにおいて、燃料噴射部18bの噴孔詰まりや開弁ひっかかりなどの故障が発生し、一時的に実燃料噴射量が低下したと仮定する。この場合、異常気筒検出部36は、仕事量相当値Sneflt(#1)が判定閾値th1を下回り、後述する異常継続時間カウンタecrhidl(#1)が所定値以上となったと判断すると、異常気筒フラグexdcyl(#1)をONにする。一方、実燃料噴射量の低下に起因して瞬時最高回転速度Nemax(#1)が低下するため、#1気筒2aは、直前に燃焼行程を迎える#2気筒2bに対し回転偏差がマイナスの値となる。そのため、補正量算出部34は、燃料噴射量Q(#1)に対する気筒間補正量QCY(#1)を増加させる。
同時に、補正量算出部34は、#1気筒2aの次に燃焼行程を迎える#3気筒2cの回転偏差が、#1気筒2aに対しプラスの値となるため、#3気筒2cに対する気筒間補正量QCY(#3)をマイナスの値とする。
その後#1気筒2aにおける噴孔詰まりや開弁ひっかかりが解消し正常状態に復帰したとする。このとき、異常気筒検出部36は、異常気筒フラグexdcyl(#1)をONからOFFに切り替えるものの、気筒間補正量QCY(#1)は、なまし処理の効果により暫くは増加された状態となるため、#1気筒2aは燃料を過剰に噴射することになり、仕事量W(#1)が増加し、これに伴い仕事量平均値Wnominalも増加する。一方、気筒間補正量QCY(#3)は、なまし処理の効果により暫くはマイナスの値が継続するため、仕事量W(#3)が仕事量平均値Wnominalよりも低い値となり、仕事量W(#3)と仕事量平均値Wnominalとの差により表される仕事量相当値Sneflt(#3)が判定閾値th1よりも小さくなる。
そのため、従来の故障診断装置においては、#3気筒2cが正常であるにもかかわらず、仕事量相当値Sneflt(#3)が判定閾値th1よりも小さくなったことにより、#3気筒2cに故障が発生したと誤検出するようになっていた。
図5は、このような誤検出の原因を説明するための図であり、時刻T1において#1気筒2aに噴孔詰まりが発生したとする。この場合、仕事量相当値Sneflt(#1)がマイナスの値に低下するとともに、瞬時最高回転速度Nemax(#1)を増加させるために気筒間補正量QCY(#1)がプラスの値となる。なお、図5においては、噴孔詰まりが発生しているため、気筒間補正量QCY(#1)の増加にかかわらず、仕事量相当値Sneflt(#1)はマイナスの値となっている。
そして、異常継続時間カウンタecrhidl(#1)が所定値以上となる時刻T2において、異常気筒フラグexdcyl(#1)がONとなり、OBDに#1気筒1aが異常である旨が記録される。
その後、時刻T3において、#1気筒2aに発生していた噴孔詰まりが解消したとする。このとき、気筒間補正量QCY(#1)はなまし処理によりプラスの値を取り続けているため、仕事量相当値Sneflt(#1)もプラスの値になっている。
一方、気筒間補正量QCY(#3)は、#1気筒2aに噴孔詰まりが発生したT1〜T2において、#1気筒2aと#3気筒2cとの回転偏差が小さくなるようマイナスの値を取っている。そのため、時刻T3において、#1気筒2aに発生していた噴孔詰まりが解消した後も、暫くはマイナスの値を取り続ける。したがって、#3気筒2cにおける仕事量W(#3)は、仕事量平均値Wnominalと比較して小さくなり仕事量相当値Sneflt(#3)がマイナスの値となる。このため、従来の故障診断装置においては、時刻T4において異常継続時間カウンタecrhidl(#3)が所定値以上となり、#3気筒2cが故障していないにもかかわらず異常気筒フラグexdcyl(#1)がONとなっていた。
これに対し、本実施の形態においては、異常気筒検出部が、#1気筒2aに対する異常気筒フラグexdcyl(#1)がONからOFFに変化したことを条件に、各気筒2に対する正常復帰後の継続時間Txr(#k)を積算し、この正常復帰後の継続時間Txr(#k)が所定値以上となった場合に異常継続時間カウンタecrhidl(#k)の積算を実行するようになっている。この所定値は、いずれかの気筒2が故障から復帰してから、当該気筒以外の気筒に対する気筒間補正量QCYの値が収束することにより仕事量相当値Sneflt(#k)も収束するまでに必要となる時間より長い時間として設定されている。本実施の形態においては、この所定値は3秒に設定されており、図5におけるT3からT5までの時間に相当する。ここで、収束とは、気筒間補正量QCYの値が、いずれの気筒2においても故障が発生しなかった場合に本来設定されていた気筒間補正量QCYの値に一致したことあるいは誤検出が発生し得ない値に近づいたことを意味する。
これにより、本実施の形態に係る故障診断装置は、故障が発生していた気筒が復帰したことに起因して、当該気筒の次に燃焼行程を迎える気筒に対する異常継続時間カウンタecrhidl(#k)の積算が停止されるので、気筒2に対する故障の誤検出が発生することを防止するようになっている。
また、異常気筒検出部36は、正常復帰後の継続時間Txr(#k)が3秒以上となった場合、異常継続時間カウンタecrhidl(#k)を積算するようになっており、本発明に係る計時手段を構成する。そして、異常気筒検出部36は、異常継続時間カウンタecrhidl(#k)が所定値以上となった場合に、異常気筒フラグexdcyl(#k)をONにするようになっており、本発明に係る故障判定手段を構成する。
また、ラフアイドル判定部35は、異常気筒フラグexdcyl(#k)がONになると、この気筒2にラフアイドルの原因となる異常が発生していると判定し、ラフアイドル異常検出フラグをONにする。そして、ラフアイドル判定部35は、ラフアイドルの異常を表す信号をOBDにより表示させるようになっている。なお、ラフアイドル判定部35は、ラフアイドルの異常を表す信号をオフボードの故障診断ツールに表示させるようにしてもよい。
次に、本実施の形態に係る故障診断制御処理について図6および図7を参照して説明する。
なお、以下の処理は、ECU30を構成するCPUによって所定の時間間隔で実行されるとともに、CPUによって処理可能なプログラムを実現する。
図6に示すように、まず、ECU30は、クランク角センサ23から入力される回転速度信号に基づいて各気筒2に対する仕事量相当値Sneflt(#1)〜Sneflt(#4)を上述した方法により算出する(ステップS1)。
次に、ECU30は、ラフアイドル異常検出処理を行うための前提条件が成立しているか否かを判定する(ステップS2)。前提条件としては、上述したように、イグニッションON、エンジン始動後、ニュートラルスイッチON、アクセル開度が全閉状態、車速が0、電気負荷の変化時ではない、シフト位置の切替時でない、などの条件があげられる。
ECU30は、前提条件が成立していると判定した場合には(ステップS2でYES)、ステップS3に移行する。一方、前提条件が成立していないと判定した場合には(ステップS2でNO)、ステップS7に移行する。
次に、ECU30は、ステップS1において算出した各気筒2に対する仕事量相当値Sneflt(#k)と判定閾値th1とをそれぞれ比較し(ステップS3)、いずれかの気筒2における仕事量相当値Sneflt(#k)が判定閾値h1未満であると判定した場合には(ステップS3でYES)、ステップS4に移行する。一方、すべての気筒2に対する仕事量相当値Sneflt(#k)が判定閾値th1以上であると判定した場合には(ステップS3でNO)、ステップS7に移行する。
次に、ECU30は、正常復帰後の継続時間算出処理を実行し(ステップS4)、今回より前の処理において異常と判定されていた気筒2が正常に復帰してから経過した時間、すなわち正常復帰後の継続時間Txr(k)を算出する。
ECU30は、図7に示すように、この正常復帰後の継続時間算出処理において、まず異常気筒フラグexdcyl(#k)がONからOFFに変化したか否かをそれぞれの気筒2について判定する(ステップS21)。ECU30は、いずれかの異常気筒フラグexdcyl(#k)がONからOFFに変化したと判定した場合には(ステップS21でYES)、ステップS22に移行し、当該異常気筒フラグexdcyl(#k)に対応する気筒2に対し、正常復帰後継続時間Txr(#k)をクリアする。
一方、ECU30は、異常気筒フラグexdcyl(#k)がONからOFFに変化していない、すなわち正常に復帰した状態が継続していると判定した場合には(ステップS21でNO)、ステップS23に移行し、正常復帰後継続時間Txr(#k)を積算する。
図6に戻り、ECU30は、正常復帰後継続時間Txr(#k)が所定値以上となったか否かを判定する(ステップS5)。なお、本実施の形態においては、ECU30は正常復帰後継続時間Txr(#k−1)が3秒以上になったか否かを判定するようになっている。
ECU30は、正常復帰後継続時間Txr(#k−1)が3秒以上になったと判定すると(ステップS5においてYES)、異常継続時間カウンタecrhidl(#k)の積算を行い(ステップS6)、ステップS9に移行する。
一方、ECU30は、正常復帰後継続時間Txr(#k−1)が3秒未満であると判定すると(ステップS5においてNO)、ステップS7に移行し、異常継続時間カウンタecrhidl(#k)をクリアする。そして、ラフアイドル異常検出フラグをOFFにする(ステップS8)。
ステップS9に移行した場合、ECU30は、異常継続時間カウンタecrhidl(#k)が所定値以上となったか否かを判定する。なお、本実施の形態においては、ECU30は異常継続時間カウンタecrhidl(#k)が2秒以上になったか否かを判定するようになっている。
ECU30は、異常継続時間カウンタecrhidl(#k)が2秒以上になったと判定すると(ステップS9でYES)、異常気筒フラグexdcyl(#k)をONにする(ステップS10)。そして、ラフアイドル異常検出フラグをONにし(ステップS12)、ステップS13に移行する。
一方、ECU30は、異常継続時間カウンタecrhidl(#k)が2秒に達していないと判断した場合には(ステップS9でNO)、ステップS11に移行し、異常気筒フラグexdcyl(#k)をOFFにするとともに(ステップS11)、ラフアイドル異常検出フラグをOFFにする(ステップS8)。
ステップS13に移行した場合、ECU30は、ラフアイドル異常検出フラグがONであるか否かを判定する(ステップS13)。ECU30は、ラフアイドル異常検出フラグがONであると判定した場合には(ステップS13でYES)、ステップS14に移行し、ラフアイドル異常を通告する。
一方、ECU30は、ラフアイドル異常検出フラグがOFFであると判定した場合には、(ステップS13でNO)、ステップS15に移行し、ラフアイドル正常を通告する。
以上のように、本発明の実施の形態に係る内燃機関の故障診断装置は、いずれかの気筒2が異常から正常に復帰することに起因して、当該気筒2以外の気筒2における仕事量相当値Sneflt(#k)に変動が生じる可能性がある場合には、仕事量相当値Sneflt(#k)に基づく故障判定を中断するので、これらの気筒2に異常が発生したと誤判定することを防止できる。したがって、気筒2の異常を精度よく判定することができる。
また、エンジン1がアイドル運転中であることを条件に異常継続時間カウンタecrhidl(#k)が所定継続時間以上である気筒2を異常と判定するので、エンジン1のアイドル運転中にラフアイドルの原因となる気筒2の異常を精度よく判定することができる。
また、いずれかの気筒2に異常が発生したことを表示できるので、運転者に気筒2の異常発生を認識させることができる。
なお、以上の説明においては、エンジン1が4気筒のディーゼルエンジンにより構成される場合について説明した。しかしながら、エンジン1は、4気筒以外の複数の気筒を有していてもよく、また、各気筒に独立して燃料を噴射可能であれば、ガソリンエンジンにより構成されていてもよい。
以上のように、本発明に係る内燃機関の故障診断装置は、各気筒に対する故障判定精度を高めることができるという効果を奏するものであり、各気筒の故障を検出する内燃機関の故障診断装置に有用である。