(57)【特許請求の範囲】
【請求項１】
内燃機関のアイドル時における目標回転変動と実回転変動との偏差に基づいて気筒毎の補正量を設定し、該補正量により燃料供給量指令値を気筒毎に補正することで、内燃機関が目標回転変動状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置であって、
前記補正量が基準範囲を越えた気筒が存在した場合に、前記燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、全気筒を燃料供給系の異常判定を実行する対象気筒とし、前記対象気筒のうち所定の気筒について異常判定を行う際には、前記所定の気筒における燃料供給系に対して、前記補正量の増加又は減少を強制的に実行する一方、前記所定の気筒以外の気筒に対しては前記補正量を維持することにより、内燃機関が前記強制的な補正量の増加又は減少に対応した回転変動を生じた場合には前記所定の気筒の燃料供給系は正常と判定し、前記強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には前記所定の気筒の燃料供給系は異常と判定する異常判定実行手段を備えた
ことを特徴とする内燃機関の燃料供給系異常検出装置。
【請求項２】
内燃機関のアイドル時における目標回転変動と実回転変動との偏差に基づいて気筒毎の補正量を設定し、該補正量により燃料供給量指令値を気筒毎に補正することで、内燃機関が目標回転変動状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置であって、
前記補正量が基準範囲を越えた気筒が存在した場合に、前記燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、全気筒の内で該当気筒を含む一部の気筒を燃料供給系の異常判定を実行する対象気筒とし、前記対象気筒のうち所定の気筒について異常判定を行う際には、前記所定の気筒における燃料供給系に対して、前記補正量の増加又は減少を強制的に実行する一方、前記所定の気筒以外の気筒に対しては前記補正量を維持することにより、内燃機関が前記強制的な補正量の増加又は減少に対応した回転変動を生じた場合には前記所定の気筒の燃料供給系は正常と判定し、前記強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には前記所定の気筒の燃料供給系は異常と判定する異常判定実行手段を備えた
ことを特徴とする内燃機関の燃料供給系異常検出装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の燃料供給系異常検出装置において、
前記異常判定実行手段は、前記補正量の増加又は減少を強制的に実行するに際しては、徐々に増加又は減少させる
ことを特徴とする内燃機関の燃料供給系異常検出装置。
【請求項４】
請求項１〜請求項３のいずれか一項に記載の内燃機関の燃料供給系異常検出装置において、
前記異常判定実行手段は、前記補正量の増加又は減少を強制的に実行した後に、元の前記補正量に戻すに際しては、徐々に戻す
ことを特徴とする内燃機関の燃料供給系異常検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の目標回転状態と実回転状態との偏差に基づいて補正量を設定し、該補正量により燃料供給量指令値を補正することで、内燃機関が目標回転状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置に関する。
【０００２】
【従来の技術】
希薄燃焼を実行するガソリン式エンジンの回転変動から各気筒の燃焼状態が良好か不良かを判定し、良好な気筒に対しては燃料濃度が低くなる方に補正し、不良な気筒に対しては燃料濃度が高くなる方に補正する希薄燃焼制御及び故障判定装置が知られている（特許第２９０７００１号公報）。この装置では、燃料濃度を高くする方向への空燃比の変更が所定回数行われた場合に、この気筒に対する燃料供給系又は点火系に故障が発生したと判定している。
【０００３】
【発明が解決しようとする課題】
このように、フィードバック制御では補正しきれない場合に故障と判定する手法であると、弁体の固着などにより完全に燃料供給がストップした場合等では空燃比を高くする方向の補正が継続するので異常として検出される。しかし例えば、燃料噴射弁のシート不良による燃料漏出や弁体の摺動抵抗の増加等により開弁時間調整機能が悪化したような場合においては、アイドル時などの特定の運転状態ではフィードバック制御により正常に燃料供給がなされることがある。しかし、他の運転状態では燃料噴射弁の開弁時間調整機能の悪化が燃料供給量に大きく影響するようになり、運転状態に十分に対応することができず正常に燃料供給ができなくなる場合がある。
【０００４】
またアイドル時において燃料濃度を高くする方向への空燃比の変更が所定回数行われた燃料噴射弁であっても、開閉動作に問題がなければ、他の運転状態においてもアイドル時に得られた補正量を反映させることにより問題なく燃料供給を実行できる場合がある。
【０００５】
したがって、従来技術のごとくの故障判定では、燃料供給系の異常を正確に捉えることができずに、異常であっても運転継続を許してしまい、不良な燃焼状態が継続し、燃費やエミッションの悪化などの問題を生じるおそれがある。また、逆に正常であっても異常と判断されて通常の運転ができなくなる場合がある。
【０００６】
本発明は、内燃機関の燃料供給系の正確な異常検出を可能とする燃料供給系異常検出装置の提供を目的とするものである。
【０００７】
【課題を解決するための手段】
以下、上記目的を達成するための手段及びその作用効果について記載する。
請求項１に記載の内燃機関の燃料供給系異常検出装置は、内燃機関のアイドル時における目標回転変動と実回転変動との偏差に基づいて気筒毎の補正量を設定し、該補正量により燃料供給量指令値を気筒毎に補正することで、内燃機関が目標回転変動状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置であって、前記補正量が基準範囲を越えた気筒が存在した場合に、前記燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、全気筒を燃料供給系の異常判定を実行する対象気筒とし、前記対象気筒のうち所定の気筒について異常判定を行う際には、前記所定の気筒における前記燃料供給系に対して、前記補正量の増加又は減少を強制的に実行する一方、前記所定の気筒以外の気筒に対しては前記補正量を維持することにより、内燃機関が前記強制的な補正量の増加又は減少に対応した回転変動を生じた場合には前記所定の気筒の燃料供給系は正常と判定し、前記強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には前記所定の気筒の燃料供給系は異常と判定する異常判定実行手段を備えたことを特徴とする。
【０００８】
このように異常判定実行手段は、アイドル時の燃料供給系のフィードバック制御における補正量が基準範囲を越えたことで異常であると判定しているのではない。異常判定実行手段は、補正量が基準範囲を越えた気筒が存在した場合に、燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、全気筒を燃料供給系の異常判定を実行する対象気筒とし、対象気筒のうち所定の気筒について異常判定を行う際には、所定の気筒における燃料供給系に対して、補正量の増加又は減少を強制的に実行する一方、所定の気筒以外の気筒に対しては補正量を維持すること（以下、「燃料供給系に対する調整」）により生じる内燃機関の回転変動に基づいて、所定の気筒の燃料供給系の異常判定を行うようにしている。このように燃料供給系に対する調整を強制的に行うことで異常判定を実行しているため、燃料噴射弁の固着ばかりでなく開弁時間調整機能の悪化等の開閉動作の異常も判明し、燃料供給系の異常検出を正確に実行することが可能となる。この強制的な調整も、補正量が基準範囲を越えている気筒が存在することにより同気筒の燃料供給系の異常の可能性が高い場合に行っているので、異常検出精度も一層高いものとなる。
【０００９】
更に、補正量が基準範囲を越えた気筒が存在した場合に限って、燃料供給系に対する強制的な調整を行っているため、徒に燃焼状態が変化することが無く、燃費やエミッションに対する悪影響を抑制することができる。また内燃機関の回転状態の変化に伴う振動も抑制することができる。
【００１５】
また、異常判定実行手段は、補正量が基準範囲を越えた気筒が存在した場合に、燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、各気筒における燃料供給系に対する調整を強制的に行うことで異常判定を実行している。このため高精度な異常検出が迅速に実行できる。
【００１６】
請求項２に記載の内燃機関の燃料供給系異常検出装置では、内燃機関のアイドル時における目標回転変動と実回転変動との偏差に基づいて気筒毎の補正量を設定し、該補正量により燃料供給量指令値を気筒毎に補正することで、内燃機関が目標回転変動状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置であって、前記補正量が基準範囲を越えた気筒が存在した場合に、前記燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、全気筒の内で該当気筒を含む一部の気筒を燃料供給系の異常判定を実行する対象気筒とし、前記対象気筒のうち所定の気筒について異常判定を行う際には、前記所定の気筒における燃料供給系に対して、前記補正量の増加又は減少を強制的に実行する一方、前記所定の気筒以外の気筒に対しては前記補正量を維持することにより、内燃機関が前記強制的な補正量の増加又は減少に対応した回転変動を生じた場合には前記所定の気筒の燃料供給系は正常と判定し、前記強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には前記所定の気筒の燃料供給系は異常と判定する異常判定実行手段を備えたことを特徴とする。
【００１７】
異常判定実行手段は、補正量が基準範囲を越えた気筒が存在した場合にフィードバック制御を停止し、該当気筒（補正量が基準範囲を越えた気筒）を含む一部の気筒を燃料供給系の異常判定を実行する対象気筒とし、対象気筒のうち所定の気筒について異常判定を行う際には、各気筒における燃料供給系に対する調整を強制的に行うことで異常判定を実行している。このように異常判定実行手段は、異常の可能性の高い気筒を含めた一部の気筒にて異常判定しているため、高精度な異常検出が迅速に実行できる。このことにより、燃費やエミッションに対する悪影響を一層抑制することができ、内燃機関の回転状態の変化に伴う振動も更に抑制することができる。
【００２１】
所定の気筒における燃料供給系に対して各気筒毎に補正量の増加又は減少を強制的に実行する一方、所定の気筒以外の気筒に対しては補正量を維持すると、燃料供給系の開閉動作などが正常であれば、内燃機関は強制的な補正量の増加又は減少に対応した回転変動を生じる。このため、強制的な補正量の増加又は減少に対応した回転変動を生じた場合には所定の気筒の燃料供給系は正常と判定し、強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には所定の気筒の燃料供給系は異常と判定することができる。
【００２２】
請求項３に記載の内燃機関の燃料供給系異常検出装置では、請求項１又は請求項２に記載の構成において、前記異常判定実行手段は、前記補正量の増加又は減少を強制的に実行するに際しては、徐々に増加又は減少させることを特徴とする。
【００２３】
このように強制的な補正量の増加又は減少を徐々に実行することにより、内燃機関の回転状態の変化に伴う振動を効果的に抑制することができる。
請求項４に記載の内燃機関の燃料供給系異常検出装置では、請求項１〜請求項３のいずれか一項に記載の構成において、前記異常判定実行手段は、前記補正量の増加又は減少を強制的に実行した後に、元の前記補正量に戻すに際しては、徐々に戻すことを特徴とする。
【００２４】
強制的な補正量の増加又は減少を実行した後に元の補正量に戻すに際して、補正量を徐々に戻すことにより、内燃機関の回転状態の変化に伴う振動を効果的に抑制することができる。
【００２５】
【発明の実施の形態】
［実施の形態１］
図１は、実施の形態１としての蓄圧式ディーゼルエンジン（コモンレール型ディーゼルエンジン）２とその制御系統を示す概略構成図である。本蓄圧式ディーゼルエンジン２は車両駆動用エンジンとして車両に搭載されているものである。
【００２６】
ディーゼルエンジン２には、複数の気筒（本実施の形態では４気筒であるが、１気筒のみ図示している）♯１，＃２，＃３，♯４が設けられており、各気筒♯１〜♯４の燃焼室に対して燃料噴射弁４がそれぞれ設けられている。燃料噴射弁４からディーゼルエンジン２の各気筒♯１〜♯４への燃料噴射は、燃料噴射制御用電磁弁４ａのオン・オフにより制御される。
【００２７】
燃料噴射弁４は、各気筒共通の蓄圧配管としてのコモンレール６に接続されており、前記燃料噴射制御用電磁弁４ａが開いている間、コモンレール６内の燃料が燃料噴射弁４より各気筒♯１〜♯４に噴射される。前記コモンレール６には、燃料噴射圧に相当する比較的高い圧力が蓄積されている。この蓄圧を実現するために、コモンレール６は供給配管８を介してサプライポンプ１０の吐出ポート１０ａに接続されている。サプライポンプ１０は、吸入ポート１０ｂを介して燃料タンク１２に接続されており、その途中にはフィルタ１４が設けられている。サプライポンプ１０は、燃料タンク１２からフィルタ１４を介して燃料を吸入し、ディーゼルエンジン２の回転に同期する図示しないカムによってプランジャを往復運動させて燃料圧力を要求される所定圧にまで高めることで、高圧燃料をコモンレール６に供給している。
【００２８】
ディーゼルエンジン２の燃焼室には、吸気通路１８および排気通路２０がそれぞれ接続されている。吸気通路１８にはスロットルバルブ（図示略）が設けられており、このスロットルバルブをディーゼルエンジン２の運転状態により開度調整することにより、燃焼室内に導入される吸入空気の流量が調整される。
【００２９】
また、ディーゼルエンジン２の燃焼室内には、グロープラグ２２が配設されている。このグロープラグ２２は、ディーゼルエンジン２の始動直前にグローリレー２２ａにて電流が流されることにより赤熱し、これに燃料噴霧の一部が吹きつけられることで着火・燃焼が促進される始動補助装置である。
【００３０】
ディーゼルエンジン２には、以下の各種センサ等が設けられており、これらは、本実施の形態１において、ディーゼルエンジン２の運転状態を検出する。すなわち、アクセルペダル２４の近傍には、アクセル開度ＡＣＣＰＦを検出するためのアクセルセンサ２６が設けられ、更にアクセルセンサ２６の近傍には、アクセルペダル２４の踏込量がゼロの場合に全閉信号（オン）を出力する全閉スイッチ２８が設けられている。またディーゼルエンジン２には、ディーゼルエンジン２を始動させるためのスタータ３０が設けられている。このスタータ３０には、その作動状態を検知するスタータスイッチ３０ａが設けられている。ディーゼルエンジン２のシリンダブロックには、その冷却水の温度（冷却水温ＴＨＷ）を検出するための水温センサ３２が設けられている。更にオイルパン（図示略）にはエンジンオイルの温度ＴＨＯを検出する油温センサ３４が設けられている。また前記リターン配管１６には、燃料温度ＴＨＦを検出するための燃温センサ３６が設けられている。また、前記コモンレール６にはコモンレール６内の燃料の圧力を検出するために燃圧センサ３８が設けられている。ディーゼルエンジン２のクランクシャフト（図示略）に設けられたパルサ（図示略）の近傍には、エンジン回転数センサ４０が設けられている。
【００３１】
クランクシャフトの回転は、吸気弁１８ａおよび排気弁２０ａを開閉動作させるためのカムシャフト（図示略）にタイミングベルト等を介して伝達される。このカムシャフトは、クランクシャフトの１／２回転の回転数で回転するよう設定されている。このカムシャフトに設けられたパルサ（図示略）の近傍には、気筒判別センサ４２が設けられている。そして、本実施の形態１ではこれら両センサ４０，４２から出力されるパルス信号により、エンジン回転数ＮＥ、クランク角ＣＡ、気筒♯１の吸気上死点（ＴＤＣ）が算出されている。トランスミッション４４には、シフトポジションセンサ４６が設けられて、トランスミッション４４のシフト状態を検出している。またトランスミッション４４の出力軸側には、出力軸の回転数から車速ＳＰＤを検出する車速センサ４８が設けられている。またディーゼルエンジン２の出力により駆動するエアコン装置（図示略）が設けられると共に、このエアコン装置の駆動を指示するためのエアコンスイッチ５０が設けられている。
【００３２】
本実施の形態１においては、ディーゼルエンジン２の各種制御を司るための電子制御装置（ＥＣＵ）５２が設けられており、このＥＣＵ５２により、燃料噴射量制御やグロー制御等のディーゼルエンジン２を制御するための処理、更に燃料供給系異常検出処理等が行われる。ＥＣＵ５２は、中央処理制御装置（ＣＰＵ）、各種プログラムやマップ等を予め記憶した読出専用メモリ（ＲＯＭ）、ＣＰＵの演算結果等を一時記憶するランダムアクセスメモリ（ＲＡＭ）、演算結果や予め記憶されたデータ等を保存するバックアップＲＡＭ、タイマカウンタ、入力インターフェース、出力インターフェース等を備えたマイクロコンピュータを中心として構成されている。前述したアクセルセンサ２６、水温センサ３２、油温センサ３４、燃温センサ３６、燃圧センサ３８等は、それぞれバッファ、マルチプレクサ、Ａ／Ｄ変換器（いずれも図示略）を介してＥＣＵ５２の入力インターフェースに接続されている。また、エンジン回転数センサ４０、気筒判別センサ４２、車速センサ４８等は、波形整形回路（図示略）を介してＥＣＵ５２の入力インターフェースに接続されている。更に全閉スイッチ２８、スタータスイッチ３０ａ、シフトポジションセンサ４６、エアコンスイッチ５０等はＥＣＵ５２の入力インターフェースに直接接続されている。これ以外にバッテリ電圧Ｖｂおよびオルタネータの制御デューティＤＦ等がＥＣＵ５２に入力されて、その値が読み込まれている。ＣＰＵは上記各センサやスイッチ類の信号を、入力インターフェースを介して読み込む。また燃料噴射制御用電磁弁４ａ、圧力制御弁１０ｃ、グローリレー２２ａ等は、それぞれ駆動回路を介してＥＣＵ５２の出力インターフェースに接続されている。ＣＰＵは、入力インターフェースを介して読み込んだ入力値に基づき制御演算を行い、出力インターフェースを介して燃料噴射制御用電磁弁４ａ、圧力制御弁１０ｃ、グローリレー２２ａ等を好適に制御する。
【００３３】
図２のフローチャートにＥＣＵ５２により実行される燃料噴射量制御処理を示す。本処理は一定クランク角毎、ここでは４気筒であるのでクランク角度１８０°毎の割り込みで実行される。なお個々の処理に対応するフローチャート中のステップを「Ｓ〜」で表す。
【００３４】
処理が開始されると、まずエンジン回転数ＮＥ、アクセル開度ＡＣＣＰＦ等を用い、予め設定されている演算式に従い燃料噴射量指令値ＱＦＩＮを算出する（Ｓ１１０）。次に後述する気筒毎補正量算出処理にて算出されている今回の燃料噴射の対象となっている第Ｋ番（以下、この順番は行程順序を表す）気筒に対して算出されている気筒毎補正量ｑｃｙ［Ｋ］により、次式１に示すごとく燃料噴射量指令値ＱＦＩＮを補正する（Ｓ１２０）。
【００３５】
【数１】
ＱＦＩＮ  ←  ＱＦＩＮ  ＋  ｑｃｙ［Ｋ］      …  ［式１］
そして次にこのようにして補正された燃料噴射量指令値ＱＦＩＮに基づいて、燃料噴射対象である第Ｋ番気筒に設けられている燃料噴射弁４における燃料噴射制御用電磁弁４ａの開弁時間を設定し（Ｓ１３０）、一旦本処理を終了する。
【００３６】
上述した燃料噴射量制御処理が繰り返されることにより、燃料噴射タイミングとなった気筒に対して燃料噴射弁４からディーゼルエンジン２の運転状態に応じた適切な量の燃料が噴射される。
【００３７】
次に図３のフローチャートにＥＣＵ５２により実行される気筒毎補正量算出処理を示す。本処理は一定クランク角毎、ここでは４気筒であるのでクランク角度１８０°毎の割り込みで実行される。本処理が開始されると、まず気筒毎補正量算出許可フラグＸｑｃｙが「ＯＮ」か否かが判定される（Ｓ２００）。ここでＸｑｃｙ＝「ＯＦＦ」であれば（Ｓ２００で「ＮＯ」）、このまま一旦本処理を終了する。
【００３８】
一方、Ｘｑｃｙ＝「ＯＮ」であれば（Ｓ２００で「ＹＥＳ」）、次にディーゼルエンジン２がアイドル安定状態にあるか否かが判定される（Ｓ２１０）。ここでアイドル安定状態とは、車速ＳＰＤ＝０ｋｍ／ｈで、かつアクセルペダル２４が完全に戻されて（アクセル開度ＡＣＣＰＦ＝０％、全閉スイッチ２８が「ＯＮ」）から十分な時間が経過してエンジン回転数が安定したアイドル状態となっている状態を表している。
【００３９】
アイドル安定状態でなければ（Ｓ２１０で「ＮＯ」）、このまま一旦本処理を終了する。
一方、アイドル安定状態であれば（Ｓ２１０で「ＹＥＳ」）、次に、ＮＥ≒ＮＦ、すなわち現在のエンジン回転数ＮＥが目標アイドル回転数ＮＦにほぼ等しいか否か、すなわちエンジン回転数ＮＥが目標アイドル回転数ＮＦに対して基準範囲内にあるか否かを判定する（Ｓ２２０）。本判定処理は、ディーゼルエンジン２の負荷となるエアコン用コンプレッサ等の外部機器の作動状態が切り換えられた直後か否かを判定するためのものである。このような外部機器の作動状態の切り換え直後であれば、エンジン回転数ＮＥが目標アイドル回転数ＮＦを含む基準範囲から外れることからエンジン回転数ＮＥが安定していない。逆に外部機器の作動状態の切り換え直後以外であれば、エンジン回転数ＮＥは目標アイドル回転数ＮＦに対して基準範囲内にあり、エンジン回転数ＮＥは安定している。
【００４０】
したがって、ＮＥ≒ＮＦでなければ（Ｓ２２０で「ＮＯ」）、このまま一旦本処理を終了する。
一方、ＮＥ≒ＮＦであれば（Ｓ２２０で「ＹＥＳ」）、今回算出対象となっている第Ｋ番気筒の回転変動偏差ＤＮＥ［Ｋ］を次式２のごとく算出する（Ｓ２３０）。
【００４１】
【数２】
ＤＮＥ［Ｋ］  ←  ＴＮＨ［Ｋ］  −  ＴＮＨ［Ｋ−１］  …  ［式２］
ここでＴＮＨ（Ｋ）は第Ｋ番気筒の燃焼による最高回転速度（以下、気筒最高回転速度という）を表し、ＴＮＨ（Ｋ−１）はＴＮＨ（Ｋ）の１つ前に燃焼行程となる気筒での気筒最高回転速度を表している。
【００４２】
これらの気筒最高回転速度ＴＮＨは、図４に構成を示したパルサ４１からエンジン回転数センサ４０が出力する特定数のパルス信号間の時間間隔を示すものである。すなわち、電磁ピックアップコイルよりなるエンジン回転数センサ４０は、ディーゼルエンジン２のクランク軸に取り付けられて回転するパルサ４１の外周面に対向して取り付けられている。このエンジン回転数センサ４０は、パルサ４１の外周面に形成された歯が横切る度に検出信号を出力する。そして、この検出信号からディーゼルエンジン２の回転数ＮＥを検出する。パルサ４１の歯は、３６個を等間隔に配列した状態から、１カ所において連続した２歯を欠歯部４１ａとして除いた３４個からなっている。このためディーゼルエンジン２が回転すると、図５に波形整形後の検出出力で示すように、１０°ＣＡ毎に、各歯によるエンジン回転パルスが出力される。尚、欠歯部４１ａの位置では、パルス間隔は３０°となり、このような欠歯部４１ａを示すパルス間隔が３６０°ＣＡ毎に現れる。また、前述したごとくカムシャフトの回転から気筒判別センサ４２が基準位置を検出することから、これら両センサ４０，４２から出力されるパルス信号により、気筒♯１（ここではＫ＝２）の吸気上死点（ＴＤＣ）からのクランク角ＣＡが決定できる。
【００４３】
したがって、各気筒の燃焼により最も回転速度が高くなる等クランク角度間隔の４カ所のタイミングにおいてエンジン回転数センサ４０から出力される特定数のパルス間隔（図５では３つ分のパルスの時間間隔を用いている）を、気筒最高回転速度ＴＮＨとして表すことができる。そして、このことにより、前記式２は気筒間の回転変動を算出していることになる。
【００４４】
このようにして回転変動偏差ＤＮＥ［Ｋ］が算出されると、次に、図６で示す１次元マップを用いて回転変動偏差ＤＮＥ（Ｋ）に応じた積分補正量ｄｑｃｙを算出する（Ｓ２４０）。このマップでは、回転変動偏差ＤＮＥ（Ｋ）が大きくなるに従い積分補正量ｄｑｃｙが増加するように、回転変動偏差ＤＮＥ（Ｋ）と積分補正量ｄｑｃｙとの関係が予め設定されている。
【００４５】
このようにして算出された積分補正量ｄｑｃｙを次式３に示すごとく積算することにより気筒毎補正量ｑｃｙ［Ｋ］が算出され（Ｓ２５０）、一旦本処理を終了する。
【００４６】
【数３】
ｑｃｙ［Ｋ］  ←  ｑｃｙ［Ｋ］  ＋  ｄｑｃｙ    …  ［式３］
このことにより、ディーゼルエンジン２の気筒間の回転変動が大きい場合には、積分補正量ｄｑｃｙが気筒毎補正量ｑｃｙ［Ｋ］に積算される。そしてこのように積算された気筒毎補正量ｑｃｙ［Ｋ］にて、前記燃料噴射量制御処理（図２）のステップＳ１２０にて、各気筒毎に燃料噴射量指令値ＱＦＩＮを調整することにより、ディーゼルエンジン２の回転変動を無くすように制御される。すなわちディーゼルエンジン２の回転変動が小さくなるように燃料供給系がフィードバック制御される。
【００４７】
例えば、回転変動偏差ＤＮＥ［Ｋ］がマイナスの場合、すなわち第Ｋ番気筒の燃焼による回転数が直前の気筒の燃焼による回転数より高くなった場合には、積分補正量ｄｑｃｙがマイナスとなり気筒毎補正量ｑｃｙ［Ｋ］にはマイナスの値が積算される。この結果、第Ｋ番気筒に対する燃料噴射量指令値ＱＦＩＮは小さくなる方向に補正される。
【００４８】
また回転変動偏差ＤＮＥ［Ｋ］がプラスの場合、すなわち第Ｋ番気筒の燃焼による回転数が直前の気筒の燃焼による回転数より低くなった場合には、積分補正量ｄｑｃｙがプラスとなり気筒毎補正量ｑｃｙ［Ｋ］にはプラスの値が積算される。この結果、第Ｋ番気筒に対する燃料噴射量指令値ＱＦＩＮは大きくなる方向に補正される。
【００４９】
また回転変動偏差ＤＮＥ（Ｋ）の絶対値が比較的小さい場合、すなわち第Ｋ番気筒の燃焼による回転数と直前の気筒の燃焼による回転数とがほとんど同じ場合には、積分補正量ｄｑｃｙ＝０となって、気筒毎補正量ｑｃｙ［Ｋ］の値は変化しない。この結果、第Ｋ番気筒に対する燃料噴射量指令値ＱＦＩＮは同じ値が維持される。
【００５０】
次に、燃料供給系異常検出予備判定処理及び燃料供給系異常検出処理について説明する。図７，８のフローチャートに燃料供給系異常検出予備判定処理を示す。本処理はクランク角度１８０°毎に繰り返し実行される処理である。
【００５１】
燃料供給系異常検出予備判定処理が開始されると、まずディーゼルエンジン２がアイドル安定状態か否かが判定される（Ｓ３１０）。この判定処理は前述した気筒毎補正量算出処理（図３）のステップＳ２１０と同じ処理である。アイドル安定状態で有れば（Ｓ３１０で「ＹＥＳ」）、次にエンジン回転数ＮＥ≒目標アイドル回転数ＮＦか否かが判定される（Ｓ３２０）。この判定処理は前述した気筒毎補正量算出処理（図３）のステップＳ２２０と同じ処理である。
【００５２】
ステップＳ３１０又はステップＳ３２０のいずれかにより「ＮＯ」と判定されると、ディレイカウンタＤｃｎｔがクリアされる（Ｓ３３０）。一方、ステップＳ３１０及びステップＳ３２０の両方で「ＹＥＳ」と判定されると、ディレイカウンタＤｃｎｔがインクリメントされる（Ｓ３４０）。すなわち、ディレイカウンタＤｃｎｔはアイドル安定状態でかつＮＥ≒ＮＦである状態の継続時間（実際には積算回転数に対応した値）を表す。
【００５３】
ステップＳ３３０又はステップＳ３４０の処理が終わると、次にディレイカウンタＤｃｎｔの値が基準値Ｔｄより大きいか否かが判定される（Ｓ３５０）。この基準値Ｔｄは、前述した気筒毎補正量算出処理（図３）のステップＳ２３０〜Ｓ２５０が繰り返されて、全気筒について判定に適した気筒毎補正量ｑｃｙ［Ｋ］が得られるまでの期間を設定するものである。
【００５４】
Ｄｃｎｔ≦Ｔｄであれば（Ｓ３５０で「ＮＯ」）、気筒判別値ｋに「１」を設定して（Ｓ３７０）、一旦本処理を終了する。
アイドル安定状態でかつＮＥ≒ＮＦである状態（Ｓ３１０で「ＹＥＳ」、Ｓ３２０で「ＹＥＳ」）が継続することで、ディレイカウンタＤｃｎｔのインクリメント（Ｓ３４０）が継続し、Ｄｃｎｔ＞Ｔｄとなると（Ｓ３５０で「ＹＥＳ」）、次に異常検査中フラグＸｔｓｔが「ＯＦＦ」か否かが判定される（Ｓ３８０）。最初は初期設定により、Ｘｔｓｔ＝「ＯＦＦ」であることから（Ｓ３８０で「ＹＥＳ」）、次に気筒毎補正量算出処理（図３）のステップＳ２５０にて求められた気筒毎補正量ｑｃｙ［ｋ］が０以上か否かが判定される（Ｓ３９０）。最初、ｋ＝１であるので、最初に第１番気筒における気筒毎補正量ｑｃｙ［１］が判定対象とされる。
【００５５】
ｑｃｙ［１］≧０であれば（Ｓ３９０で「ＹＥＳ」）、気筒毎符号判定フラグｅｘｐｌｕｓ［１］に「ＯＮ」が設定される（Ｓ４００）。ｑｃｙ［１］＜０であれば（Ｓ３９０で「ＮＯ」）、気筒毎符号判定フラグｅｘｐｌｕｓ［１］に「ＯＦＦ」が設定される（Ｓ４１０）。
【００５６】
ステップＳ４００又はステップＳ４１０の次には、気筒毎補正量ｑｃｙ［１］の絶対値が異常予備判定値Ａ以下か否かが判定される（Ｓ４２０）。｜ｑｃｙ［１］｜≦Ａであれば（Ｓ４２０で「ＹＥＳ」）、次に気筒判別値ｋがインクリメントされる（Ｓ４３０）。したがってｋ＝２に設定される。
【００５７】
一方、｜ｑｃｙ［１］｜＞Ａであれば（Ｓ４２０で「ＮＯ」）、次に異常検査中フラグＸｔｓｔに「ＯＮ」が設定される（Ｓ４４０）。そして、この後、気筒判別値ｋがインクリメントされる（Ｓ４３０）。
【００５８】
ステップＳ４３０の次にはディーゼルエンジン２は４気筒であることから、ｋ≦４か否かが判定される（Ｓ４５０）。今回はｋ＝２であるので（Ｓ４５０で「ＹＥＳ」）、ステップＳ３９０の処理に戻る。次にｋ＝２、すなわちｋ＝１で対象となった気筒の次に燃焼行程となる第２番気筒の気筒毎補正量ｑｃｙ［２］について、前述したステップＳ３９０〜Ｓ４５０の処理が繰り返される。そして、気筒毎補正量ｑｃｙ［２］についてステップＳ３９０〜Ｓ４５０の処理が終了すれば、第３番気筒の補正量ｑｃｙ［３］及び第４番気筒の補正量ｑｃｙ［４］について順次ステップＳ３９０〜Ｓ４５０の処理がなされる。
【００５９】
こうして、ｋ＝５となると（Ｓ４５０で「ＮＯ」）、次に異常検査中フラグＸｔｓｔが「ＯＮ」に設定されているか否かが判定される（Ｓ４７０）。
Ｘｔｓｔ＝「ＯＦＦ」であれば（Ｓ４７０で「ＮＯ」）、ディレイカウンタＤｃｎｔがクリアされ（Ｓ４７５）、このまま一旦本処理を終了する。Ｘｔｓｔ＝「ＯＦＦ」であるということは、４気筒全てについて、｜ｑｃｙ［ｋ］｜≦Ａ（Ｓ４２０で「ＹＥＳ」）であったことを示している。このため、再度、Ｄｃｎｔ＝０の状態から燃料供給系異常検出予備判定処理を繰り返すことになる。
【００６０】
一方、  Ｘｔｓｔ＝「ＯＮ」であれば（Ｓ４７０で「ＹＥＳ」）、すなわち、ｋ＝１〜４の１つ以上にて、｜ｑｃｙ［ｋ］｜＞Ａと判定されていれば、次に、後述する加減算項ｄｔｓｔをクリアする（Ｓ４８０）。そして、この時の気筒毎補正量ｑｃｙ［１］〜ｑｃｙ［４］の値を、それぞれ変数ｑｃｙｏｒｇ［１］〜ｑｃｙｏｒｇ［４］に退避させて（Ｓ４９０）、一旦本処理を終了する。
【００６１】
そして、次の制御周期ではＸｔｓｔ＝「ＯＮ」であることから（Ｓ３８０で「ＮＯ」）、このまま一旦本処理を終了する。以後、ステップＳ３１０で「ＹＥＳ」、ステップＳ３２０で「ＹＥＳ」及びステップＳ３５０で「ＹＥＳ」との判定が継続していても、Ｘｔｓｔ＝「ＯＮ」が維持されている限り、ステップＳ３９０〜Ｓ４９０の処理は実行されない。
【００６２】
次に、図９，１０のフローチャートに燃料供給系異常検出処理を示す。本処理はクランク角度１８０°毎に繰り返し実行される処理である。
燃料供給系異常検出処理が開始されると、まず次に徐変戻しフラグＸｒｅｔが「ＯＦＦ」か否かを判定する（Ｓ５００）。最初は初期設定によりＸｒｅｔ＝「ＯＦＦ」であることから（Ｓ５００で「ＹＥＳ」）、次にディーゼルエンジン２がアイドル安定状態か否かが判定される（Ｓ５１０）。この判定処理は前述した気筒毎補正量算出処理（図３）のステップＳ２１０と同じ処理である。アイドル安定状態で有れば（Ｓ５１０で「ＹＥＳ」）、次にエンジン回転数ＮＥ≒目標アイドル回転数ＮＦか否かが判定される（Ｓ５２０）。この判定処理は前述した気筒毎補正量算出処理（図３）のステップＳ２２０と同じ処理である。
【００６３】
ステップＳ５１０又はステップＳ５２０のいずれかにより「ＮＯ」と判定されると、異常検査中フラグＸｔｓｔに「ＯＦＦ」を設定し（Ｓ５２５）、更にディレイカウンタＤｃｎｔをクリアする（Ｓ５２６）。そして、気筒毎補正量算出許可フラグＸｑｃｙに「ＯＮ」を設定し（Ｓ５３０）、気筒判別値ｍに１を設定して（Ｓ５４０）、一旦本処理を終了する。したがって、この時にはＸｔｓｔ＝「ＯＦＦ」となることから、前述した燃料供給系異常検出予備判定処理（図７，８）のステップＳ３８０にて「ＹＥＳ」と判定されて、ステップＳ３９０〜Ｓ４９０の処理が実行され得る状態に戻る。また、Ｘｑｃｙ＝「ＯＮ」であることから、前述した気筒毎補正量算出処理（図３）のステップＳ２００では「ＹＥＳ」と判定されて、気筒毎補正量ｑｃｙ［Ｋ］を更新し得る状態となる。
【００６４】
ディーゼルエンジン２がアイドル安定状態であり（Ｓ５１０で「ＹＥＳ」）、更にＮＥ≒ＮＦであった場合には（Ｓ５２０で「ＹＥＳ」）、次に異常検査中フラグＸｔｓｔが「ＯＮ」か否かが判定される（Ｓ５５０）。Ｘｔｓｔ＝「ＯＦＦ」であれば（Ｓ５５０で「ＮＯ」）、気筒毎補正量算出許可フラグＸｑｃｙに「ＯＮ」を設定し（Ｓ５３０）、気筒判別値ｍに１を設定して（Ｓ５４０）、一旦本処理を終了する。
【００６５】
一方、Ｘｔｓｔ＝「ＯＮ」であれば（Ｓ５５０で「ＹＥＳ」）、次に気筒毎補正量算出許可フラグＸｑｃｙに「ＯＦＦ」を設定する（Ｓ５６０）。このことにより、前述した気筒毎補正量算出処理（図３）のステップＳ２００では「ＮＯ」と判定される。このため気筒毎補正量算出処理（図３）での気筒毎補正量ｑｃｙ［ｋ］の更新はなされなくなる。
【００６６】
次に加減算項ｄｔｓｔが次式４に示すごとく算出される。
【００６７】
【数４】
ｄｔｓｔ  ←  ｄｔｓｔ  ＋  ｄｑ    …  ［式４］
ここで徐変値ｄｑは、加減算項ｄｔｓｔの値を徐々に増加させるために設けられている値である。
【００６８】
そして次に符号判定フラグｅｘｐｌｕｓ［ｍ］が「ＯＮ」か否かが判定される（Ｓ５８０）。最初はｍ＝１であることから符号判定フラグｅｘｐｌｕｓ［１］が「ＯＮ」か否かが判定される。ｅｘｐｌｕｓ［１］＝「ＯＮ」であれば（Ｓ５８０で「ＹＥＳ」）、ｑｃｙ［ｍ］が次式５のごとく更新される（Ｓ５９０）。
【００６９】
【数５】
ｑｃｙ［ｍ］  ←  ｑｃｙｏｒｇ［ｍ］  −  ｄｔｓｔ    …  ［式５］
一方、ｅｘｐｌｕｓ［ｍ］＝「ＯＦＦ」であれば（Ｓ５８０で「ＮＯ」）、ｑｃｙ［ｍ］が次式６のごとく更新される（Ｓ６００）。
【００７０】
【数６】
ｑｃｙ［ｍ］  ←  ｑｃｙｏｒｇ［ｍ］  ＋  ｄｔｓｔ    …  ［式６］
すなわち、ｑｃｙ［ｍ］≧０の場合は、徐々に増加する加減算項ｄｔｓｔによりｑｃｙ［ｍ］の減少処理がなされて、実際の燃料噴射量は徐々に減少する。また、ｑｃｙ［ｍ］＜０の場合は、徐々に増加する加減算項ｄｔｓｔにより気筒毎補正量ｑｃｙ［ｍ］の増加処理がなされて、実際の燃料噴射量は徐々に増加する。
【００７１】
ステップＳ５９０又はステップＳ６００の処理が終了すると、次に回転変動偏差ＤＮＥ［ｍ］を次式７に示すごとく算出する（Ｓ６１０）。
【００７２】
【数７】
ＤＮＥ［ｍ］  ←  ＴＮＨ［ｍ］  −  ＴＮＨ［ｍ−１］  …  ［式７］
この式７は、気筒毎補正量算出処理（図３）のステップＳ２３０における式２と同じ処理を示している。
【００７３】
次に、上記式７にて求められた回転変動偏差ＤＮＥ［ｍ］の絶対値が回転変動量判定値Ｂより大きいか否かが判定される（Ｓ６２０）。｜ＤＮＥ［ｍ］｜≦Ｂであれば（Ｓ６２０で「ＮＯ」）、次に加減算項ｄｔｓｔが加減算限界値Ｄより大きいか否かが判定される（Ｓ６３０）。ｄｔｓｔ≦Ｄであれば（Ｓ６３０で「ＮＯ」）、このまま一旦本処理を終了する。したがって、前記ステップＳ５９０，Ｓ６００の処理により、燃料噴射量の漸増または漸減処理がなされている期間に、回転変動偏差ＤＮＥ［ｍ］の絶対値が回転変動量判定値Ｂ以下であり（Ｓ６２０で「ＮＯ」）、かつ加減算項ｄｔｓｔが加減算限界値Ｄ以下である（Ｓ６３０で「ＮＯ」）間は、気筒毎補正量ｑｃｙ［ｍ］の徐変がなされるのみである。すなわち、燃料噴射量制御処理（図２）で説明した式１の気筒毎補正量ｑｃｙ［Ｋ］が徐々に増加あるいは減少されることで、１つの気筒について燃料噴射量指令値ＱＦＩＮの増加あるいは減少が徐々になされる。
【００７４】
そして気筒毎補正量ｑｃｙ［ｍ］の徐変の結果、ｄｔｓｔ＞Ｄとなる前に、気筒間の回転変動が大きくなり、｜ＤＮＥ［ｍ］｜＞Ｂとなると（Ｓ６２０で「ＹＥＳ」）、加減算項ｄｔｓｔによるｑｃｙ［ｍ］の増減処理により、気筒間の回転変動が予想通りに大きくなったことから、第ｍ番気筒の燃料供給系は正常であると判定する（Ｓ６４０）。次に気筒判別値ｍをインクリメントする（Ｓ６５０）。例えば、ｍ＝１について正常との判定がなされた（Ｓ６４０）場合には、ｍは「２」に設定される。
【００７５】
そして、気筒判別値ｍが４以下か否かが判定される（Ｓ６６０）。ここではｍ＝２であるので（Ｓ６６０で「ＹＥＳ」）、次に加減算項ｄｔｓｔがクリアされる（Ｓ６７０）。そして、徐変戻しフラグＸｒｅｔに「ＯＮ」を設定して（Ｓ６８０）、一旦本処理を終了する。
【００７６】
次の制御周期では、Ｘｒｅｔ＝「ＯＮ」であることから（Ｓ５００で「ＮＯ」）、燃料供給系異常検出処理（図９，１０）では実質的な処理はなされなくなる。そして、後述する徐変戻し処理の実質的な処理がなされて、気筒毎補正量ｑｃｙ［１］の値が徐々に元の値である変数ｑｃｙｏｒｇ［１］の値まで戻される。
【００７７】
気筒毎補正量ｑｃｙ［１］の値が元の値に戻ると、後述する徐変戻し処理にてＸｒｅｔ＝「ＯＦＦ」とされるので（Ｓ５００で「ＹＥＳ」）、次はｍ＝２にて前述した処理が実行される。すなわち、第２番気筒毎補正量ｑｃｙ［２］についても符号判定フラグｅｘｐｌｕｓ［２］の内容に応じて徐々に増減されて（Ｓ５９０，Ｓ６００）、回転変動偏差ＤＮＥ［２］の絶対値が判定される（Ｓ６２０）。
【００７８】
そして、気筒毎補正量ｑｃｙ［２］の徐変の結果、ｄｔｓｔ＞Ｄとなる前に、気筒間の回転変動が大きくなり、｜ＤＮＥ［２］｜＞Ｂとなると（Ｓ６２０で「ＹＥＳ」）、加減算項ｄｔｓｔによるｑｃｙ［２］の増減処理により、気筒間の回転変動が予想通りに大きくなったことから、第２番気筒燃料供給系は正常であると判定する（Ｓ６４０）。次に気筒判別値ｍをインクリメントする（Ｓ６５０）。今度は、ｍは「３」に設定される。そして、気筒判別値ｍが４以下か否かが判定される（Ｓ６６０）。ここではｍ＝３であるので（Ｓ６６０で「ＹＥＳ」）、次に加減算項ｄｔｓｔがクリアされる（Ｓ６７０）。そして、徐変戻しフラグＸｒｅｔに「ＯＮ」を設定して（Ｓ６８０）、一旦本処理を終了する。
【００７９】
次の制御周期では、Ｘｒｅｔ＝「ＯＮ」であることから（Ｓ５００で「ＮＯ」）、燃料供給系異常検出処理（図９，１０）では実質的な処理はなされなくなる。そして、後述する徐変戻し処理の実質的な処理がなされて、気筒毎補正量ｑｃｙ［２］の値が徐々に元の値である変数ｑｃｙｏｒｇ［２］の値まで戻される。
【００８０】
気筒毎補正量ｑｃｙ［２］の値が元の値に戻ると、Ｘｒｅｔ＝「ＯＦＦ」とされるので（Ｓ５００で「ＹＥＳ」）、次はｍ＝３にて前述した処理が実行される。すなわち、第３番気筒毎補正量ｑｃｙ［３］についても、前記第１，２番気筒の場合と同様に符号判定フラグｅｘｐｌｕｓ［３］の内容に応じて徐々に増減されて（Ｓ５９０，Ｓ６００）、回転変動偏差ＤＮＥ［３］の絶対値が判定される（Ｓ６２０）。
【００８１】
そして、｜ＤＮＥ［３］｜＞Ｂとなって（Ｓ６２０で「ＹＥＳ」）、第３番気筒燃料供給系は正常であると判定すると、気筒毎補正量ｑｃｙ［３］を徐々に元に戻す。そして、第４番気筒毎補正量ｑｃｙ［４］についても、同様に符号判定フラグｅｘｐｌｕｓ［４］の内容に応じて徐々に増減されて（Ｓ５９０，Ｓ６００）、回転変動偏差ＤＮＥ［４］の絶対値が判定される（Ｓ６２０）。
【００８２】
そして、｜ＤＮＥ［４］｜＞Ｂとなって（Ｓ６２０で「ＹＥＳ」）、第４番気筒燃料供給系は正常であると判定すると（Ｓ６４０）、次に気筒判別値ｍのインクリメントにより（Ｓ６５０）、ｍ＝５に設定される。このため、ステップＳ６６０では「ＮＯ」と判定され、徐変戻しフラグＸｒｅｔに「ＯＮ」を設定し（Ｓ６８０）、一旦本処理を終了する。このことにより、後述する徐変戻し処理により気筒毎補正量ｑｃｙ［４］を徐々に元に戻る。
【００８３】
気筒毎補正量ｑｃｙ［４］が元に戻れば、徐変戻し処理により気筒毎補正量算出許可フラグＸｑｃｙは「ＯＮ」となり、異常検査中フラグＸｔｓｔは「ＯＦＦ」となる。Ｘｑｃｙ＝「ＯＮ」となるので、気筒毎補正量算出処理（図３）の実質的な処理の実行が可能となる。またＸｔｓｔ＝「ＯＦＦ」となるので燃料供給系異常検出予備判定処理（図７，８）の実質的な処理が開始され、燃料供給系異常検出処理（図９，１０）の実質的な処理は停止する。
【００８４】
次に図１１のフローチャートに徐変戻し処理を示す。本処理はクランク角度１８０°毎に繰り返し実行される処理である。
徐変戻し処理が実行されると、まず、徐変戻しフラグＸｒｅｔが「ＯＮ」か否かが判定される（Ｓ８１０）。Ｘｒｅｔ＝「ＯＦＦ」であれば（Ｓ８１０で「ＮＯ」）、このまま、一旦本処理を終了する。
【００８５】
燃料供給系異常検出処理（図９，１０）のステップＳ６８０にて徐変戻しフラグＸｒｅｔに「ＯＮ」が設定されると（Ｓ８１０で「ＹＥＳ」）、次に符号判定フラグｅｘｐｌｕｓ［ｍ−１］が「ＯＮ」か否かが判定される（Ｓ８２０）。例えば、燃料供給系異常検出処理（図９，１０）にて第１番気筒について燃料供給系は正常であると判定された場合には（Ｓ６２０で「ＹＥＳ」，Ｓ６４０）、Ｘｒｅｔ＝「ＯＮ」となる（Ｓ６８０）が、この時、ステップＳ６５０の処理によりｍ＝２となっている。
【００８６】
したがって、ｍ＝２では、符号判定フラグｅｘｐｌｕｓ［ｍ−１］は第１番気筒における符号判定フラグｅｘｐｌｕｓ［１］が「ＯＮ」か否かを判定することになる。ｅｘｐｌｕｓ［ｍ−１］＝「ＯＮ」であれば（Ｓ８２０で「ＹＥＳ」）、次に気筒毎補正量ｑｃｙ［ｍ−１］が次式８のごとく更新される（Ｓ８３０）。
【００８７】
【数８】
ｑｃｙ［ｍ−１］  ←  ｑｃｙ［ｍ−１］  ＋  ｄｒｅｔ    …  ［式８］
戻し量ｄｒｅｔは気筒毎補正量ｑｃｙ［ｍ−１］を徐々に元に戻すための徐変量である。戻し量ｄｒｅｔは、前述した徐変値ｄｑと同じ値を用いても良い。
【００８８】
すなわち、燃料供給系異常検出処理（図９，１０）のステップＳ５９０によりｑｃｙ［ｍ−１］が徐々に減少されていた場合には戻し量ｄｒｅｔにより、徐々に増加して元に戻す処理が行われる。
【００８９】
そして次に気筒毎補正量ｑｃｙ［ｍ−１］が元の値を表す変数ｑｃｙｏｒｇ［ｍ−１］以上となったか否かを判定する（Ｓ８４０）。ｑｃｙ［ｍ−１］＜ｑｃｙｏｒｇ［ｍ−１］であれば（Ｓ８４０で「ＮＯ」）、まだ気筒毎補正量ｑｃｙ［ｍ−１］が元の値に戻っていないものとして、このまま一旦本処理を終了する。
【００９０】
なお、ｅｘｐｌｕｓ［ｍ−１］＝「ＯＦＦ」であれば（Ｓ８２０で「ＮＯ」）、次に気筒毎補正量ｑｃｙ［ｍ−１］が次式９のごとく更新される（Ｓ８５０）。
【００９１】
【数９】
ｑｃｙ［ｍ−１］  ←  ｑｃｙ［ｍ−１］  −  ｄｒｅｔ    …  ［式９］
戻し量ｄｒｅｔについては前述したごとくである。
【００９２】
すなわち、燃料供給系異常検出処理（図９，１０）のステップＳ６００によりｑｃｙ［ｍ−１］が徐々に増加されていた場合には戻し量ｄｒｅｔにより、徐々に減少して元に戻す処理が行われる。
【００９３】
そして次に気筒毎補正量ｑｃｙ［ｍ−１］が元の値を表す変数ｑｃｙｏｒｇ［ｍ−１］以下となったか否かを判定する（Ｓ８６０）。ｑｃｙ［ｍ−１］＞ｑｃｙｏｒｇ［ｍ−１］であれば（Ｓ８６０で「ＮＯ」）、まだ気筒毎補正量ｑｃｙ［ｍ−１］が元の値に戻っていないものとして、このまま一旦本処理を終了する。
【００９４】
こうして、以後、ステップＳ８３０又はステップＳ８５０の処理を繰り返すことにより、気筒毎補正量ｑｃｙ［ｍ−１］が次第に元の値に戻り、ステップＳ８４０又はステップＳ８６０の判定が「ＹＥＳ」となると、次に気筒毎補正量ｑｃｙ［ｍ−１］に変数ｑｃｙｏｒｇ［ｍ−１］の値を設定して（Ｓ８７０）、徐変戻しフラグＸｒｅｔに「ＯＦＦ」を設定する（Ｓ８８０）。
【００９５】
そして次にｍ−１＝４か否かが判定される（Ｓ８９０）。次に現在ｍ＝２であることから（Ｓ８９０で「ＮＯ」）、一旦本処理を終了する。
次の制御周期では、Ｘｒｅｔ＝「ＯＦＦ」であることから（Ｓ８１０で「ＮＯ」）、徐変戻し処理（図１１）では実質的な処理はなされない。そして燃料供給系異常検出処理（図９，１０）ではＸｒｅｔ＝「ＯＦＦ」となったことから、ステップＳ５００にて「ＹＥＳ」と判定されるようになり、ｍ＝２であることから、前述したごとく第２番気筒について燃料供給系の異常検出が行われる。
【００９６】
そして燃料供給系異常検出処理（図９，１０）にて第２番気筒についての燃料供給系異常検出が正常であるとの判断で終了すれば、徐変戻しフラグＸｒｅｔ＝「ＯＮ」となって（Ｓ６８０）、次にｍ＝３にて、前述のごとく徐変戻し処理（図１１）が繰り返される。そして、徐変戻し処理（図１１）が終了すると次に第３番気筒について燃料供給系の異常検出が行われる。第３番気筒について燃料供給系が正常であれば、ｍ＝４にて前述のごとく徐変戻し処理（図１１）が繰り返される。そして、徐変戻し処理（図１１）が終了すると次に第４番気筒について燃料供給系の異常検出が行われる。第４番気筒について燃料供給系が正常であれば、ｍ＝５にて前述のごとく徐変戻し処理（図１１）の処理が繰り返される。
【００９７】
このｍ＝５での徐変戻し処理（図１１）において、気筒毎補正量ｑｃｙ［４］の戻しが終了して（Ｓ８７０）、徐変戻しフラグＸｒｅｔに「ＯＦＦ」を設定した（Ｓ８８０）後、ｍ−１＝４か否かの判定（Ｓ８９０）では「ＹＥＳ」と判定される。このため、気筒毎補正量算出許可フラグＸｑｃｙは「ＯＮ」に設定され（Ｓ９００）、異常検査中フラグＸｔｓｔに「ＯＦＦ」を設定する（Ｓ９１０）。そしてディレイカウンタＤｃｎｔをクリアして（Ｓ９１１）、一旦本処理を終了する。
【００９８】
次の徐変戻し処理（図１１）の制御周期では、Ｘｒｅｔ＝「ＯＦＦ」であるので実質的な処理はなされなくなる。また、Ｘｑｃｙ＝「ＯＮ」となるので、気筒毎補正量算出処理（図３）の実質的な処理の実行が可能となる。またＸｔｓｔ＝「ＯＦＦ」となるので燃料供給系異常検出予備判定処理（図７，８）の実質的な処理が開始され、燃料供給系異常検出処理（図９，１０）の実質的な処理は停止する。
【００９９】
このようにいずれの気筒の燃料供給系に異常が認められなかった場合には、再度、気筒毎補正量算出処理（図３）及び燃料供給系異常検出予備判定処理（図７，８）の実質的な処理が開始され、上述した処理が繰り返される。
【０１００】
いずれの気筒の燃料供給系にても異常が認められなかった場合のタイミングチャートを図１２に示す。図１２では時刻ｔ１にて、燃料供給系異常検出予備判定処理（図７，８）においてディレイカウンタＤｃｎｔが基準値Ｔｄを越えることにより（Ｓ３５０で「ＹＥＳ」）、ステップＳ３９０〜Ｓ４５０の処理が実行され、この結果、気筒毎補正量ｑｃｙ［２］の絶対値が異常予備判定値Ａを越えていたため（Ｓ４２０で「ＮＯ」）、異常検査中フラグＸｔｓｔに「ＯＮ」が設定される（Ｓ４４０）。
【０１０１】
そして、燃料供給系異常検出処理（図９，１０）にて気筒毎補正量算出許可フラグＸｑｃｙに「ＯＦＦ」が設定される（Ｓ５６０）とともに、第１番気筒についてはｑｃｙ［１］≧０であるので燃料噴射量の漸減処理（時刻ｔ１〜ｔ２）と漸増処理（時刻ｔ２〜ｔ３）がなされる。第１番気筒については異常がないので、次に第２番気筒についてはｑｃｙ［２］≧０であることから、燃料噴射量の漸減処理（時刻ｔ３〜ｔ４）と漸増処理（時刻ｔ４〜ｔ５）がなされる。この第２番気筒についても異常がないので、次に第３番気筒についてはｑｃｙ［３］＜０であることから、燃料噴射量の漸増処理（時刻ｔ５〜ｔ６）と漸減処理（時刻ｔ６〜ｔ７）がなされる。この第３番気筒についても異常がないので、次に第４番気筒についてはｑｃｙ［４］≧０であることから、燃料噴射量の漸減処理（時刻ｔ７〜ｔ８）と漸増処理（時刻ｔ８〜ｔ９）がなされる。この第４番気筒についても異常がないので、徐変戻しフラグＸｒｅｔは「ＯＦＦ」に戻され（Ｓ８８０）、気筒毎補正量算出許可フラグＸｑｃｙは「ＯＮ」に戻され（Ｓ９００）、異常検査中フラグＸｔｓｔは「ＯＦＦ」に戻される（Ｓ９１０）。このことにより気筒毎補正量算出処理（図３）及び燃料供給系異常検出予備判定処理（図７，８）の実質的な処理が開始され、燃料供給系異常検出処理（図９，１０）の実質的な処理は停止する。
【０１０２】
次に、上述した各処理を繰り返す内に、例えば第２番気筒における燃料噴射弁４の燃料噴射量調整、すなわち燃料噴射制御用電磁弁４ａの開弁時間調整機能が悪化した場合を考える。この場合、気筒毎補正量算出処理（図３）のステップＳ２３０にて、第２番気筒の気筒最高回転速度ＴＮＨ［２］は第１番気筒の気筒最高回転速度ＴＮＨ［１］より大きくなったものとする。このため、前記式２により回転変動偏差ＤＮＥ［２］にはプラスの値が設定される（Ｓ２３０）。そして図６に示すマップから、積分補正量ｄｑｃｙにプラスの値が設定される（Ｓ２４０）。この積分補正量ｄｑｃｙが、気筒毎補正量ｑｃｙ［２］に積算される（Ｓ２５０）。このことにより、燃料供給系異常検出予備判定処理（図７，８）にて気筒毎補正量ｑｃｙ［２］の絶対値が異常予備判定値Ａより大きくなったと判定されると（Ｓ４２０で「ＮＯ」）、異常検査中フラグＸｔｓｔに「ＯＮ」が設定される（Ｓ４４０）。
【０１０３】
異常検査中フラグＸｔｓｔ＝「ＯＮ」となったことにより、燃料供給系異常検出処理（図９，１０）の実質的な処理が始まり、最初に第１番気筒の燃料供給系の異常検出が、第１番気筒の燃料噴射弁４から噴射される燃料量を徐変することにより実行される。ここで、第１番気筒の燃料供給系については異常が無いことから、加減算項ｄｔｓｔが加減算限界値Ｄより大きくなる前に、回転変動偏差ＤＮＥ［１］の絶対値が回転変動量判定値Ｂを越える（Ｓ６２０で「ＹＥＳ」）。このため、第１番気筒の燃料供給系は正常であると判定される（Ｓ６４０）。第１番気筒の噴射量を元に戻した後、次に第２番気筒について燃料供給系異常検出処理（図９，１０）が実行される。ここでは第２番気筒における燃料噴射制御用電磁弁４ａの開弁時間調整機能が悪化している。このため、加減算項ｄｔｓｔを徐々に大きくすることで、第２番気筒の燃料噴射弁４から噴射される燃料量を徐々に減少させても（Ｓ５９０）、すなわち燃料噴射制御用電磁弁４ａの開弁時間を徐々に短くしても、第２番気筒での燃料噴射量は指令通りに変化しない。
【０１０４】
したがって、回転変動偏差ＤＮＥ［２］が回転変動量判定値Ｂより大きくなる前に、加減算項ｄｔｓｔが加減算限界値Ｄを越えてしまう（Ｓ６３０で「ＹＥＳ」）。図１２では一点鎖線で示すごとく、時刻ｔａにて加減算項ｄｔｓｔが加減算限界値Ｄを越える。
【０１０５】
このため第２番気筒の燃料供給系は異常であると判定する（Ｓ６９０）。そして次に異常時処理の実行を設定する（Ｓ７００）。このことにより、通常のエンジン制御は停止されて、リンプホーム処理などの異常時の退避処理の実行が開始される。そして異常検査中フラグＸｔｓｔを「ＯＦＦ」にして（Ｓ７１０）、一旦本処理を終了する。
【０１０６】
上述した実施の形態１の構成において、気筒毎補正量算出処理（図３）が燃料供給系フィードバック制御手段としての処理に、燃料供給系異常検出予備判定処理（図７，８）、燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）が異常判定実行手段としての処理に相当する。
【０１０７】
以上説明した本実施の形態１によれば、以下の効果が得られる。
（イ）．燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）は、燃料供給系に対する調整を強制的に行うことで各気筒の燃料供給系における異常を検出している。このように気筒毎補正量算出処理（図３）にて算出される気筒毎補正量ｑｃｙ［ｋ］のみにより異常を判断していないので、燃料噴射制御用電磁弁４ａの固着ばかりでなく開弁時間調整機能の悪化等の開閉動作の異常も判明し、燃料供給系の正確な異常検出が可能となる。
【０１０８】
また、このような燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）は、気筒毎補正量算出処理（図３）にて算出される気筒毎補正量ｑｃｙ［ｋ］の絶対値が異常予備判定値Ａを越えた場合に実行される。すなわち気筒毎補正量ｑｃｙ［ｋ］が基準範囲を越えていることにより燃料供給系の異常の可能性が高い場合に、燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）を実行している。このため、異常検出精度も一層高くなる。
【０１０９】
更に、気筒毎補正量ｑｃｙ［ｋ］が基準範囲を越えた場合に限って、燃料供給系に対する強制的な調整を行っているため、徒に燃焼状態が変化することが無く、燃費やエミッションに悪影響を与えることがない。またディーゼルエンジン２の回転変動に伴う振動も抑制することができる。
【０１１０】
（ロ）．燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）では、気筒毎補正量ｑｃｙ［ｋ］が基準範囲を越えた場合に、気筒毎補正量算出処理（図３）を停止する。そして、各気筒を制御対象として各気筒の燃料供給系に対して気筒毎補正量ｑｃｙ［ｋ］の増加又は減少を強制的に実行する。したがって、このことにより生じるディーゼルエンジン２の回転変動に基づいて各気筒の燃料供給系の異常判定を実行することができる。
【０１１１】
そして、異常判定においては強制的な気筒毎補正量ｑｃｙ［ｋ］の増加又は減少に対応して、ディーゼルエンジン２が回転変動を生じた場合には該気筒の燃料供給系は正常と判定し、強制的な補正量の増加又は減少に対応した回転変動を生じなかった場合には該気筒の燃料供給系は異常と判定している。このことにより、迅速にかつ一層高精度に異常が検出される。
【０１１２】
（ハ）．強制的な気筒毎補正量ｑｃｙ［ｋ］の増加又は減少は、徐々になされる。このことにより、ディーゼルエンジン２の回転変動に伴う振動を効果的に抑制することができる。更に強制的な気筒毎補正量ｑｃｙ［ｋ］の増加又は減少を元に戻す場合においても、徐々に戻しているので、ディーゼルエンジン２の回転変動に伴う振動を一層効果的に抑制することができる。
【０１１３】
［その他の実施の形態］
・前記実施の形態１においては、１つの気筒における気筒毎補正量ｑｃｙ［ｋ］が基準範囲を越えた場合に、全気筒に対して燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）を実行していたが、燃料供給系が異常な気筒の影響は、行程順序において前後の気筒の気筒毎補正量ｑｃｙ［ｋ］に大きく影響することから、気筒毎補正量ｑｃｙ［ｋ］が基準範囲を越えた気筒と、この気筒の前後に行程順序が存在する気筒とを、燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）の対象としても良い。このように異常の可能性の高い一部の気筒を検出対象とすれば、燃料供給系異常検出処理（図９，１０）及び徐変戻し処理（図１１）を短時間で終了させることができる。このためディーゼルエンジン２の振動やエミッションに与える影響を一層少なくすることができる。
【０１１４】
・前記実施の形態１の燃料供給系異常検出処理（図９，１０）では、異常な燃料供給系の気筒が検出されると（Ｓ６３０で「ＹＥＳ」，Ｓ６９０）、その時点で燃料供給系異常検出処理（図９，１０）を中断して、異常時処理を実行していたが、図１０の代わりに図１３のごとくの処理としても良い。図１３では、異常な燃料供給系の気筒が検出されても（Ｓ６３０で「ＹＥＳ」，Ｓ６９０）、ステップＳ６９０の次にステップＳ６５０に移行することにより、全気筒について燃料供給系異常検出を完了する。したがって異常な燃料供給系の気筒が複数有った場合にはいずれの気筒が異常かが明確に検出できる。そして、１つでも異常な気筒が見つかれば、例えば、徐変戻し処理（図１１）の代わりに図１４の処理を実行する。すなわち、ｍ−１＝４となった場合に（Ｓ８９０で「ＹＥＳ」）、ステップＳ９００〜Ｓ９１１の次に異常気筒が有るか否かを判定する（Ｓ９１２）。異常な気筒が１つもなければ（Ｓ９１２で「ＮＯ」）、このまま一旦終了する。しかし、ステップＳ６９０で燃料供給系の異常が判定された気筒が１つでも有れば（Ｓ９１２で「ＹＥＳ」）、前記実施の形態１のステップＳ７００と同じく、異常時処理の実行を設定する（Ｓ９１４）。このことにより、燃料供給系が異常な気筒が１つでも有れば通常のエンジン制御は停止されて、リンプホーム処理などの異常時の退避処理の実行が開始される。
【０１１５】
・前記実施の形態１では、各気筒の気筒毎補正量ｑｃｙ［ｋ］を強制的に徐変させる処理は、それぞれ１度のみ実行した。そして、この実行により気筒毎補正量ｑｃｙ［ｋ］の変化に対応した回転変動が生じなければ対象気筒の燃料供給系に異常が生じていると判断した。しかし、これ以外に、次のようにして、より正確な異常判定とすることができる。すなわち、同一気筒に対して２回以上、強制的な気筒毎補正量ｑｃｙ［ｋ］の徐変を実行して、全て異常であった場合に、該気筒を異常と判断しても良い。また全てではなく、正常と判定された回数と異常と判定された回数の内で多い方の回数にて判断しても良い。あるいは１度でも異常が見つかれば、該気筒を異常と判断しても良い。
【０１１６】
・前記実施の形態１ではディーゼルエンジンの例を示したが、ガソリンエンジンでも同様に適用できる。
以上、本発明の実施の形態について説明したが、本発明の実施の形態には、次のような形態を含むものであることを付記しておく。
【０１１７】
（１）．内燃機関の目標回転状態と実回転状態との偏差に基づいて補正量を設定し、該補正量により燃料供給量指令値を補正することで、内燃機関が目標回転状態となるように燃料供給系をフィードバック制御する燃料供給系フィードバック制御手段を備えた内燃機関の燃料供給系異常検出装置であって、
前記燃料供給系に対する調整を強制的に行うことで異常判定を実行する異常判定実行手段を備えたことを特徴とする内燃機関の燃料供給系異常検出装置。
【０１１８】
（２）．請求項２の構成において、前記異常判定実行手段は、前記補正量が基準範囲を越えた気筒が存在した場合に、前記燃料供給系フィードバック制御手段によるフィードバック制御を停止するとともに、該当気筒及び該当気筒に対して行程順序の前後に存在する気筒における燃料供給系に対する調整を強制的に行うことで異常判定を実行することを特徴とする内燃機関の燃料供給系異常検出装置。
【０１１９】
（３）．請求項５記載の構成において、前記異常判定実行手段は、異常判定が実行される対象気筒における燃料供給系に対して、各気筒毎に前記補正量の増加又は減少を強制的に実行することにより、内燃機関の回転変動が基準回転変動よりも大きくなった場合には該気筒の燃料供給系は正常と判定し、基準回転変動よりも大きくならなかった場合には該気筒の燃料供給系は異常と判定することを特徴とする内燃機関の燃料供給系異常検出装置。
【図面の簡単な説明】
【図１】実施の形態１としての蓄圧式ディーゼルエンジンとその制御系統を示す概略構成図。
【図２】実施の形態１のＥＣＵが実行する燃料噴射量制御処理のフローチャート。
【図３】同じく気筒毎補正量算出処理のフローチャート。
【図４】実施の形態１のエンジン回転数センサとパルサとの配置構成説明図。
【図５】実施の形態１の蓄圧式ディーゼルエンジンの回転変動を示すタイミングチャート。
【図６】上記気筒毎補正量算出処理において回転変動偏差ＤＮＥ（Ｋ）から積分補正量ｄｑｃｙを算出するためのマップ構成説明図。
【図７】実施の形態１のＥＣＵが実行する燃料供給系異常検出予備判定処理のフローチャート。
【図８】同じく燃料供給系異常検出予備判定処理のフローチャート。
【図９】同じく燃料供給系異常検出処理のフローチャート。
【図１０】同じく燃料供給系異常検出処理のフローチャート。
【図１１】同じく徐変戻し処理のフローチャート。
【図１２】実施の形態１における制御の一例を示すタイミングチャート。
【図１３】前記燃料供給系異常検出処理の変形例のフローチャート。
【図１４】前記徐変戻し処理の変形例のフローチャート。
【符号の説明】
２…ディーゼルエンジン、４…燃料噴射弁、４ａ…燃料噴射制御用電磁弁、６…コモンレール、８…供給配管、８ａ…逆止弁、１０…サプライポンプ、１０ａ…吐出ポート、１０ｂ…吸入ポート、１０ｃ…圧力制御弁、１０ｄ…リターンポート、１２…燃料タンク、１４…フィルタ、１６…リターン配管、１８…吸気通路、１８ａ…吸気弁、２０…排気通路、２０ａ…排気弁、２２…グロープラグ、２２ａ…グローリレー、２４…アクセルペダル、２６…アクセルセンサ、２８…全閉スイッチ、３０…スタータ、３０ａ…スタータスイッチ、３２…水温センサ、３４…油温センサ、３６…燃温センサ、３８…燃圧センサ、４０…エンジン回転数センサ、４１…パルサ、４１ａ…欠歯部、４２…気筒判別センサ、４４…トランスミッション、４６…シフトポジションセンサ、４８…車速センサ、５０…エアコンスイッチ、５２…ＥＣＵ。
【図１】
0004306123.tif 000002
【図２】
0004306123.tif 000003
【図３】
0004306123.tif 000004
【図４】
0004306123.tif 000005
【図５】
0004306123.tif 000006
【図６】
0004306123.tif 000007
【図７】
0004306123.tif 000008
【図８】
0004306123.tif 000009
【図９】
0004306123.tif 000010
【図１０】
0004306123.tif 000011
【図１１】
0004306123.tif 000012
【図１２】
0004306123.tif 000013
【図１３】
0004306123.tif 000014
【図１４】
0004306123.tif 000015