(57)【要約】【課題】複数のインジェクタの何れかの燃料圧力センサが異常になった場合でも、センサ異常インジェクタに対する噴射指令信号の補正を、実施可能にする。【解決手段】内燃機関の気筒毎の各インジェクタに設けられている燃料圧力センサからの信号に基づいて、そのインジェクタへの噴射指令信号を補正するための学習値を算出する燃料噴射制御装置では、何れかのインジェクタのセンサ異常を検出すると（Ｓ３１０：ＹＥＳ）、そのセンサ異常インジェクタについて、異常検出直前に算出されている学習値を基準値として設定し（Ｓ３２０）、他のセンサ正常インジェクタのうち、過去の学習値変化状態がセンサ異常インジェクタの学習値変化状態に最も近いものを、模範インジェクタとして選択する（Ｓ３３０）。その後は、センサ異常検出時点からの模範インジェクタの学習値変化量を上記基準値に加算した値を、センサ異常インジェクタの学習値の代替値とする。【選択図】図６
2014122595.tif 000002
【特許請求の範囲】
【請求項１】
燃料ポンプ（２０）によって圧送される燃料を蓄える蓄圧容器（３０）と、
内燃機関（２）の複数の各気筒についてそれぞれ設けられ、前記蓄圧容器から供給される燃料を、与えられる噴射指令信号に従い前記気筒に噴射する複数のインジェクタ（４０）と、
前記各インジェクタにそれぞれ設けられ、そのインジェクタ内部の燃料通路の燃料圧力を検出して、該燃料圧力を表すセンサ信号を出力する燃料圧力センサ（４１）と、
を備えた燃料噴射システム（１０）に適用され、
前記各インジェクタへ、前記燃料の噴射開始タイミング及び噴射量を指令する前記噴射指令信号を出力する噴射指令手段（５１，５５，Ｓ１３０〜Ｓ１５０）と、
前記各インジェクタについて、前記噴射指令手段が前記噴射指令信号を補正するために用いる学習値を、前記燃料圧力センサからのセンサ信号に基づき算出する学習値算出手段（５１，Ｓ２１０）と、
前記各インジェクタについて、前記燃料圧力センサの異常を検出する異常検出手段（５１，Ｓ３１０）と、
前記異常検出手段により、前記各インジェクタのうちの何れかに設けられた前記燃料圧力センサの異常が検出されると、該燃料圧力センサの異常が検出されたインジェクタであるセンサ異常インジェクタについて、前記異常が検出される前の特定時点で算出されている前記学習値を、基準値として設定する設定手段（５１，Ｓ３２０）と、
前記異常検出手段により前記異常が検出された後は、前記センサ異常インジェクタ以外の前記インジェクタであるセンサ正常インジェクタの、前記特定時点からの前記学習値の変化量から、前記センサ異常インジェクタの、前記特定時点からの前記学習値の変化量を推定した推定変化量を算出し、その推定変化量を前記基準値に加算した値を、前記センサ異常インジェクタの前記学習値の代替値として設定して、前記噴射指令手段が前記センサ異常インジェクタへの前記噴射指令信号を補正するために前記代替値を用いるようにする代替値設定手段（５１，Ｓ３３０，Ｓ４１０，Ｓ４２０，Ｓ４３０）と、
を備えることを特徴とする燃料噴射制御装置。
【請求項２】
請求項１に記載の燃料噴射制御装置において、
前記インジェクタの数は３以上であり、
前記代替値設定手段は、前記異常検出手段により前記異常が検出されると、前記センサ正常インジェクタのうちの１つを、模範インジェクタとして選択する選択手段（Ｓ３３０）を備え、該選択手段により選択した前記模範インジェクタの、前記特定時点からの前記学習値の変化量を、前記推定変化量として算出すること、
を特徴とする燃料噴射制御装置。
【請求項３】
請求項２に記載の燃料噴射制御装置において、
前記選択手段は、前記センサ正常インジェクタのうち、前記異常が検出される前における前記学習値の変化状態が、前記センサ異常インジェクタの前記学習値の変化状態に最も近いインジェクタを、前記模範インジェクタとして選択すること、
を特徴とする燃料噴射制御装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の燃料噴射制御装置において、
前記インジェクタの数は３以上であり、
前記インジェクタに供給される前記燃料に異物が混入している状態であるか否かを判定する異物判定手段（５１，Ｓ５１０〜Ｓ５４０）を備え、
前記代替値設定手段は、前記異物判定手段により前記燃料に異物が混入している状態であると判定されている場合には、前記センサ正常インジェクタの、前記特定時点からの前記学習値の変化量を、平均した値を、前記推定変化量として算出すること、
を特徴とする燃料噴射制御装置。
【請求項５】
請求項１ないし請求項４の何れか１項に記載の燃料噴射制御装置において、
前記代替値は、前記噴射指令信号が表す前記噴射量を補正するために用いられ、
前記内燃機関がアイドル状態と減速状態との両方又は一方である特定運転状態の場合に、前記各インジェクタについて、前記噴射指令信号が表す前記噴射量を補正するための微小噴射量学習値を算出する微小噴射量学習処理を行う微小噴射量学習手段（５１，Ｓ５２０）と、
前記内燃機関が前記特定運転状態の場合には、前記センサ異常インジェクタについて算出されている前記微小噴射量学習値を、前記代替値の下限値とするか、あるいは、前記代替値設定手段に代わって、前記微小噴射量学習値を前記代替値として設定する代替値制限手段（５１，Ｓ６２０）と、
を備えることを特徴とする燃料噴射制御装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の燃料噴射制御装置において、
前記特定時点は、前記異常が検出される直前に前記学習値算出手段が前記学習値を算出した時点であり、前記設定手段は、前記異常が検出される前に算出されている前記センサ異常インジェクタの前記学習値のうち、最新の学習値を、前記基準値として設定すること、
を特徴とする燃料噴射制御装置。
【請求項７】
請求項４に記載の燃料噴射制御装置において、
前記蓄圧容器から前記各インジェクタに供給される燃料の圧力である供給燃料圧力が目標値となるように、前記燃料ポンプを制御するポンプ制御手段（５１，Ｓ１１０）を備え、
前記異物判定手段（５１，Ｓ５１０，Ｓ５４０）は、前記供給燃料圧力の前記目標値に対する追従状態に基づいて、前記燃料に異物が混入している状態であるか否かを判定すること、
を特徴とする燃料噴射制御装置。
【請求項８】
請求項４又は請求項７に記載の燃料噴射制御装置において、
前記蓄圧容器には、当該蓄圧容器内の燃料の圧力が所定値を超えた場合に開弁して該燃料の圧力を下げる圧力制御弁（３４）が設けられており、
前記異物判定手段（５１，Ｓ５２０，Ｓ５４０）は、前記圧力制御弁の作動状態に基づいて、前記燃料に異物が混入している状態であるか否かを判定すること、
を特徴とする燃料噴射制御装置。
【請求項９】
請求項４、請求項７及び請求項８の何れか１項に記載の燃料噴射制御装置において、
前記異物判定手段（５１，Ｓ５３０，５４０）は、前記学習値算出手段により算出される前記学習値の変化状態に基づいて、前記燃料に異物が混入している状態であるか否かを判定すること、
を特徴とする燃料噴射制御装置。
【請求項１０】
請求項１に記載の燃料噴射制御装置において、
前記インジェクタの数は３以上であり、
前記インジェクタに供給される前記燃料に異物が混入している状態であるか否かを判定する異物判定手段（５１，Ｓ５１０〜Ｓ５４０）を備え、
前記代替値設定手段（５１，Ｓ４２０，Ｓ４３０）は、前記異物判定手段により前記燃料に異物が混入している状態であると判定されている場合に動作すると共に、前記センサ正常インジェクタの、前記特定時点からの前記学習値の変化量を平均した値を、前記推定変化量として算出すること、
を特徴とする燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射制御装置に関する。
【背景技術】
【０００２】
ディーゼルエンジンの燃料噴射システムでは、燃料ポンプによって圧送される高圧の燃料が蓄圧容器としてのコモンレールに蓄えられ、そのコモンレールから各気筒のインジェクタに燃料が供給される。そして、各インジェクタは、燃料噴射制御装置から与えられる噴射指令信号に従って気筒に燃料を噴射する。
【０００３】
更に、各インジェクタに、該インジェクタ内部の燃料通路の燃料圧力であって、燃料噴射に伴い変動する燃料圧力を検出するための燃料圧力センサを設けておき、燃料噴射制御装置が、その燃料圧力センサからのセンサ信号に基づきインジェクタの実際の噴射状態を検出して、その検出結果を燃料噴射制御（具体的には、インジェクタの制御）にフィードバックして用いる、といったことが考えられている（例えば特許文献１参照）。
【０００４】
例えば、検出する実際の噴射状態としては、燃料の噴射開始タイミングや噴射量がある。そして、燃料噴射制御装置は、その検出した実際の噴射状態に基づいて、インジェクタへの噴射指令信号を補正するための学習値を算出し、その算出した学習値を用いて、噴射指令信号が表す噴射開始タイミングや噴射量を補正することにより、インジェクタの噴射特性の経時変化を補償する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８５０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の燃料噴射制御装置では、何れかのインジェクタの燃料圧力センサが異常になった場合に、その燃料圧力センサが異常になったインジェクタについては、燃料圧力センサからのセンサ信号に基づく噴射指令信号の補正を止めるしかない。
【０００７】
そこで、本発明は、複数のインジェクタのうちの何れかの燃料圧力センサが異常になった場合でも、その燃料圧力センサが異常になったインジェクタに対する噴射指令信号の補正を、実施可能にすることを目的としている。
【課題を解決するための手段】
【０００８】
本発明の燃料噴射制御装置が適用される燃料噴射システムは、燃料ポンプによって圧送される燃料を蓄える蓄圧容器と、内燃機関の複数の各気筒についてそれぞれ設けられ、前記蓄圧容器から供給される燃料を、与えられる噴射指令信号に従い前記気筒に噴射する複数のインジェクタと、各インジェクタにそれぞれ設けられ、そのインジェクタ内部の燃料通路の燃料圧力を検出して、該燃料圧力を表すセンサ信号を出力する燃料圧力センサと、を備える。
【０００９】
そして、燃料噴射制御装置は、各インジェクタへ、燃料の噴射開始タイミング及び噴射量を指令する噴射指令信号を出力する噴射指令手段と、各インジェクタについて、噴射指令手段が噴射指令信号を補正するために用いる学習値を、前記燃料圧力センサからのセンサ信号に基づき算出する学習値算出手段と、各インジェクタについて、前記燃料圧力センサの異常を検出する異常検出手段と、を備える。
【００１０】
更に、この燃料噴射制御装置は、設定手段と代替値設定手段とを備える。
設定手段は、異常検出手段により、各インジェクタのうちの何れかに設けられた燃料圧力センサの異常が検出されると、該燃料圧力センサの異常が検出されたインジェクタであるセンサ異常インジェクタについて、前記異常が検出される前の特定時点で算出されている学習値を、基準値として設定する。
【００１１】
そして、代替値設定手段は、異常検出手段により前記異常が検出された後は、センサ異常インジェクタ以外のインジェクタであるセンサ正常インジェクタの、前記特定時点からの学習値の変化量から、センサ異常インジェクタの、前記特定時点からの学習値の変化量を推定した推定変化量を算出し、その推定変化量を前記基準値に加算した値を、センサ異常インジェクタの学習値の代替値として設定して、噴射指令手段がセンサ異常インジェクタへの噴射指令信号を補正するために前記代替値を用いるようにする。
【００１２】
このような燃料噴射制御装置によれば、複数のインジェクタのうちの何れかの燃料圧力センサが異常になった場合でも、その燃料圧力センサが異常になったインジェクタ（センサ異常インジェクタ）に対する噴射指令信号の補正を、中止することなく引き続き実施することができ、延いては、燃料噴射の精度を良好にすることができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態の燃料噴射システムを表す構成図である。
【図２】第１実施形態の燃料圧力制御処理を表すフローチャートである。
【図３】第１実施形態の噴射制御処理を表すフローチャートである。
【図４】第１実施形態の噴射特性学習処理を表すフローチャートである。
【図５】第１実施形態の作用を説明する説明図である。
【図６】第１実施形態の異常検出処理を表すフローチャートである。
【図７】第１実施形態の代替学習値算出処理を表すフローチャートである。
【図８】第２実施形態の作用を説明する説明図である。
【図９】燃料に異物が混入した場合の、燃料圧力の制御性能低下を説明する説明図である。
【図１０】第２実施形態の異物判定処理を表すフローチャートである。
【図１１】第２実施形態の代替学習値算出処理を表すフローチャートである。
【図１２】第３実施形態の他の学習処理を表すフローチャートである。
【図１３】第３実施形態の追加処理を表すフローチャートである。
【発明を実施するための形態】
【００１４】
［第１実施形態］
図１に示す燃料噴射システム１０は、例えば、自動車用の４気筒のディーゼルエンジン（以下単に、エンジンともいう）２に燃料を噴射するためのものである。
【００１５】
燃料噴射システム１０は、燃料フィルタ１４と、燃料ポンプ２０と、コモンレール３０と、インジェクタ（燃料噴射弁）４０と、燃料噴射制御装置としての電子制御装置（以下、ＥＣＵ（Electronic Control Unit）という）５０とを備えている。
【００１６】
燃料フィルタ１４は、燃料タンク１２から燃料ポンプ２０が吸入する燃料中の異物をフィルタエレメントで捕集して除去する。
燃料ポンプ２０は、燃料タンク１２から燃料を汲み上げるフィードポンプを内蔵している。燃料ポンプ２０は、エンジン２が備えるカムシャフトのカムの回転に伴いプランジャが往復移動することにより、上記フィードポンプから加圧室に吸入した燃料を加圧する公知のポンプである。
【００１７】
燃料ポンプ２０の吸入側には、調量アクチュエータとしての調量弁２２が設置されている。調量弁２２は、ＥＣＵ５０によって駆動電流が制御されることにより、燃料ポンプ２０のプランジャが吸入行程で吸入する燃料吸入量を調節する。燃料吸入量が調節されることにより、燃料ポンプ２０のプランジャによる燃料吐出量が調節される。尚、燃料ポンプ２０の吐出側に設置される調量弁により、燃料ポンプ２０の燃料吐出量を調節してもよい。
【００１８】
コモンレール３０は、燃料ポンプ２０から吐出されて圧送される燃料を蓄える中空の蓄圧容器である。コモンレール３０には、当該コモンレール３０内の燃料圧力（以下、コモンレール圧という）を低下させるための圧力制御弁３４が設けられている。
【００１９】
圧力制御弁３４は、ＥＣＵ５０から駆動電流が供給されることにより開弁して、コモンレール３０内の燃料を燃料タンク１２に排出する。尚、圧力制御弁３４に代えて、コモンレール圧が所定圧力を超えると自動的に開弁してコモンレール３０内の燃料を排出するプレッシャリミッタを設けた構成でも良い。
【００２０】
インジェクタ４０は、エンジン２の各気筒に設けられており、コモンレール３０から供給される燃料を気筒内に噴射する。インジェクタ４０は、例えば、噴孔を開閉するノズルニードルがコイルへの通電によりリフトして開弁する公知の電磁式燃料噴射弁である。
【００２１】
インジェクタ４０からの燃料の噴射開始タイミング及び噴射量は、ＥＣＵ５０からインジェクタ４０に与えられる噴射指令信号によって制御される。
本実施形態において、噴射指令信号は、インジェクタ４０のコイルに流す駆動電流であり、その駆動電流の供給期間（噴射指令信号のパルス幅に相当）が長くなるほど、噴射量が増加することとなる。
【００２２】
また、インジェクタ４０において、コモンレール３０からの燃料を取り込む燃料流入口には、インジェクタ４０内部の燃料通路の燃料圧力を検出して、該燃料圧力を表すセンサ信号（以下、燃料圧信号という）を出力する燃料圧力センサ４１が設けられている。そして、各インジェクタ４０の燃料圧力センサ４１が出力する燃料圧信号は、ＥＣＵ５０に入力される。
【００２３】
燃料圧力センサ４１により検出される燃料圧力は、インジェクタ４０の燃料噴射動作に伴って変動する。このため、ＥＣＵ５０では、燃料圧力センサ４１からの燃料圧信号の波形を解析することにより、インジェクタ４０の実際の噴射状態（噴射開始タイミングや噴射量）を検出することができる。
【００２４】
また、インジェクタ４０が燃料を噴射していないときにおいて、燃料圧力センサ４１により検出される燃料圧力は、コモンレール圧と同じになる。このため、ＥＣＵ５０では、インジェクタ４０に燃料を噴射させていないときの燃料圧信号により、コモンレール圧も検出することができる。尚、コモンレール圧を検出するためのセンサを、コモンレール３０に設けても良い。
【００２５】
エンジン２には、運転状態を検出するセンサとして、エンジン２の所定の回転角度毎に回転角信号を発生する回転角センサ４２が設けられている。ＥＣＵ５０は、回転角センサ４２からの回転角信号に基づいてエンジン回転数を算出する。したがって、回転角センサ４２は回転数センサとして機能する。
【００２６】
また、図示は省略しているが、燃料噴射システム１０には、エンジン２の運転状態を検出する他のセンサとして、例えば、運転者によるアクセルペダルの操作量であるアクセル開度を検出するアクセルセンサ、冷却水の温度（水温）、吸入空気の温度（吸気温）をそれぞれ検出する温度センサ等が設けられている。そして、それらのセンサからの信号も、ＥＣＵ５０に入力される。
【００２７】
ＥＣＵ５０は、プログラムを実行するＣＰＵ５１、実行対象のプログラムや各種のマップが記憶されたＲＯＭ５２、ＣＰＵ５１による演算結果等が記憶されるＲＡＭ５３、及びデータの書き換えが可能な不揮発性メモリ（本実施形態では例えばＥＥＰＲＯＭ）５４、噴射指令信号を出力するためのタイマ回路５５等を有するマイクロコンピュータにて、主に構成されている。
【００２８】
そして、ＥＣＵ５０では、ＣＰＵ５１が、ＲＯＭ５２内のプログラムを実行することにより、燃料噴射システム１０における各種制御の処理を行う。
次に、ＣＰＵ５１が行う処理について説明する。
【００２９】
ＣＰＵ５１は、図２に示す燃料圧力制御処理を、例えば一定時間毎に実行する。
図２に示すように、ＣＰＵ５１は、燃料圧力制御処理では、まずＳ１１０にて、燃料を噴射させていないインジェクタ４０の燃料圧力センサ４１からの燃料圧信号に基づいて、コモンレール圧を検出すると共に、そのコモンレール圧がエンジン２の運転状態（例えばエンジン回転数やアクセル開度等）に応じた目標値となるように、燃料ポンプ２０を制御する。具体的には、ＣＰＵ５１は、コモンレール圧が目標値となるように、燃料ポンプ２０の調量弁２２に出力する駆動電流を制御して、燃料ポンプ２０からコモンレール３０への燃料吐出量を調節する。ＣＰＵ５１は、調量弁２２を制御する電流値と燃料吐出量との相関を表すＲＯＭ５２内のマップに基づいて、調量弁２２に出力する駆動電流を設定する。その駆動電流は、例えばデューティ比により決定される。尚、コモンレール圧は、コモンレール３０から各インジェクタ４０に供給される燃料の圧力（供給燃料圧力）に該当する。
【００３０】
また、ＣＰＵ５１は、次のＳ１２０にて、上記Ｓ１１０と同様に、コモンレール圧を検出し、その検出したコモンレール圧が目標値よりも大きい所定値を超えた場合には、圧力制御弁３４に駆動電流を供給して該圧力制御弁３４を開弁させることにより、コモンレール圧を低下させる。この場合、圧力制御弁３４を、例えば、所定時間だけ開弁させたり、あるいは、コモンレール圧が所定値低下するまで開弁させたり、あるいは、コモンレール圧が目標値よりも低い所定値となるまで開弁させる。
【００３１】
そして、ＣＰＵ５１は、上記Ｓ１２０の処理を行った後、当該燃料圧力制御処理を終了する。
また、ＣＰＵ５１は、各インジェクタ４０について（換言すれば、各気筒について）、図３に示す噴射制御処理を、例えば一定時間毎に実行する。尚、以下の噴射制御処理の説明では、処理の対象としているインジェクタ４０のことを、制御対象インジェクタ４０Ｃ、あるいは単に、インジェクタ４０Ｃという。
【００３２】
図３に示すように、ＣＰＵ５１は、噴射制御処理では、まずＳ１３０にて、制御対象インジェクタ４０Ｃが設けられている気筒について、燃料の噴射開始タイミングと噴射量を、エンジン回転数やアクセル開度等の運転状態に基づいて算出する。尚、このＳ１３０で算出されるのは、実現すべき目標の噴射開始タイミング及び噴射量である。また、ＥＣＵ５０からインジェクタ４０Ｃに対して、噴射開始タイミングは、噴射指令信号の出力開始タイミングとして指令され、噴射量は、噴射指令信号の出力継続時間として指令される。
【００３３】
次に、ＣＰＵ５１は、Ｓ１４０にて、Ｓ１３０で算出した噴射開始タイミング及び噴射量を、制御対象インジェクタ４０Ｃについて既に算出している噴射特性補償用の学習値を用いて補正する。
【００３４】
例えば、本実施形態において、噴射特性補償用の学習値は２種類ある。
一方の学習値は、インジェクタ４０Ｃに噴射指令信号を出力してからインジェクタ４０Ｃが燃料噴射を開始するまでの噴射開始遅れを補償するための学習値であって、インジェクタ４０Ｃに指令する噴射開始タイミング（即ち、噴射指令信号の出力開始タイミング）をどれだけ遅らせるかを示す噴射開始タイミング補償用の学習値である。
【００３５】
他方の学習値は、噴射量を補償するための学習値であって、インジェクタ４０Ｃに指令する噴射量（即ち、噴射指令信号の出力継続時間）をどれだけ増やすかを示す噴射量補償用の学習値である。
【００３６】
そして、何れの学習値も、正負符号付きの値である。このため、ＣＰＵ５１は、Ｓ１４０では、例えば、Ｓ１３０で算出した噴射開始タイミングに噴射開始タイミング補償用の学習値を加算した時刻を、補正後の噴射開始タイミング（即ち、インジェクタ４０Ｃに対して実際に指令する噴射開始タイミング）とし、同様に、Ｓ１３０で算出した噴射量に噴射量補償用の学習値を加算した噴射量を、補正後の噴射量（即ち、インジェクタ４０Ｃに対して実際に指令する噴射量）とする。
【００３７】
ＣＰＵ５１は、次のＳ１５０にて、噴射指令信号の出力継続時間（Ｔ）と噴射量（Ｑ）との相関を示すＲＯＭ５２内のマップ（所謂ＴＱマップ）から、Ｓ１４０で補正した後の噴射量に対応する噴射指令信号の出力継続時間を取得する。更に、ＣＰＵ５１は、Ｓ１４０で補正した後の噴射開始タイミングから上記取得した出力継続時間の間、ＥＣＵ５０から制御対象インジェクタ４０Ｃに噴射指令信号が出力されるようにするための出力処理を行う。具体的には、制御対象インジェクタ４０Ｃへ噴射指令信号を出力するためのタイマ回路５５に、噴射指令信号の出力開始タイミング（＝補正後の噴射開始タイミング）と出力継続時間をセットする。
【００３８】
そして、ＣＰＵ５１は、上記Ｓ１５０の処理を行った後、当該噴射制御処理を終了する。
尚、本実施形態では、学習値によって目標の噴射開始タイミングと噴射量を補正しているが、結果的には、制御対象インジェクタ４０Ｃへの噴射指令信号を補正していることになる。また、目標の噴射量を補正する代わりに、噴射指令信号の出力継続時間を学習値により直接的に補正するようになっていても良い。
【００３９】
一方、Ｓ１３０で算出される目標の噴射開始タイミングと噴射量は、制御対象インジェクタ４０Ｃの製造時に測定された初期特性に基づく固定の補正値によっても補正されるが、その補正については、本発明に直接関係が無いため説明を省略している。また、ＣＰＵ５１は、メイン噴射の前にパイロット噴射、プレ噴射、メイン噴射の後にアフター噴射、ポスト噴射等を実施する多段噴射のパターンも制御するが、多段噴射の制御についても、本発明に直接関係が無いため説明を省略している。
【００４０】
また、噴射特性補償用の学習値としては、前述した通り２種類あるが、以下の説明では、処理内容を分かりやすくするために、学習値とは、特に断らなければ、噴射量補償用の学習値であるとする。但し、以下に説明する処理のうち、図１３の処理以外は、噴射開始タイミング補償用の学習値についても同様に適用できるものである。
【００４１】
次に、ＣＰＵ５１は、各インジェクタ４０について、図４に示す噴射特性学習処理を、例えば一定時間ｔｌ毎に実行する。
尚、ＥＣＵ５０では、各インジェクタ４０の燃料圧力センサ４１からの燃料圧信号が、Ａ／Ｄ変換器により一定のサンプリング間隔ｔｓでＡ／Ｄ変換される。そして、各インジェクタ４０について、最新の所定数のＡ／Ｄ変換値が、ＲＡＭ５３に更新して保存される。サンプリング間隔ｔｓは、噴射特性学習処理の実行間隔ｔｌよりも十分に短く、燃料圧信号の波形をトレースするような短い時間（例えば１０μｓ）に設定されている。また、以下の噴射特性学習処理の説明では、処理の対象としているインジェクタ４０のことを、学習対象インジェクタ４０Ｌという。
【００４２】
図４に示すように、ＣＰＵ５１は、噴射特性学習処理では、まずＳ２１０にて、学習対象インジェクタ４０Ｌについて、前述した学習値を算出する。
具体的には、学習対象インジェクタ４０Ｌについて、そのインジェクタ４０Ｌを駆動した期間を含む特定の噴射状態監視期間における燃料圧信号のＡ／Ｄ変換値から、実際の噴射開始タイミングや噴射量などの噴射状態を検出し、その検出結果から学習値を算出する。
【００４３】
例えば、学習対象インジェクタ４０Ｌに対して指令した噴射量である指令噴射量から、実際の噴射量を引いた値を、噴射量補償用の学習値として算出する。また、学習対象インジェクタ４０Ｌに対する噴射指令信号の出力を開始したタイミングから実際の噴射開始タイミングまでの遅れ時間である実遅れ時間を算出し、所定の遅れ基準値から実遅れ時間を引いた値を、噴射開始タイミング補償用の学習値として算出する。例えば遅れ基準値が０であれば、実遅れ時間の正負符号を反転させた値が、噴射開始タイミング補償用の学習値として算出されることとなる。そして、このＳ２１０で算出された学習値は、前述した図３のＳ１４０で用いられる。
【００４４】
次に、ＣＰＵ５１は、Ｓ２２０にて、学習値の履歴記憶タイミングであるか否かを判定する。履歴記憶タイミングは、例えば、当該噴射特性学習処理の実行間隔ｔｌ（即ち、学習値の算出間隔）を所定数倍した一定時間ｔｈ毎のタイミングである。
【００４５】
そして、ＣＰＵ５１は、履歴記憶タイミングでないと判定した場合には、そのまま当該噴射特性学習処理を終了するが、履歴記憶タイミングであると判定した場合には、Ｓ２３０にて、今回のＳ２１０で算出した学習値を、学習対象インジェクタ４０Ｌについての学習値履歴として、例えばＲＡＭ５３又はＥＥＰＲＯＭ５４の履歴用記憶領域に記憶する。そして、その後、当該噴射特性学習処理を終了する。
【００４６】
学習値履歴としての学習値は、各インジェクタ４０について、新しいもの順のＮ個（Ｎは２以上の整数）が更新して記憶される。
例えば、Ｎが３であるとし、図５における一定時間ｔｈ毎の時刻Ｔ１，Ｔ２，Ｔ３が履歴記憶タイミングであるとすると、時刻Ｔ３の履歴記憶タイミングでは、その時点での学習値と、時刻Ｔ２，Ｔ１での各学習値とが、学習値履歴として上記履歴用記憶領域に記憶されることとなる。そして、時刻Ｔ３から一定時間ｔｈが経過した次の履歴記憶タイミングでは、その時点から３回前の時刻Ｔ１にて学習値履歴として記憶された学習値が上記履歴用記憶領域から消去されることとなる。
【００４７】
尚、図面及び以下の説明において、「＃ｎ」とは、エンジン２のｎ番気筒（ｎは１〜４の何れか）を意味している。また、図５において、「＃ｎＩＮＪ」と矢印付きで示された各線は、ｎ番気筒用インジェクタ４０＃ｎ（ｎ番気筒に設けられたインジェクタ４０＃ｎ）の学習値を示しており、このことは、後述する他の図についても同様である。
【００４８】
次に、ＣＰＵ５１は、各インジェクタ４０について、図６に示す異常検出処理を、例えば一定時間毎に実行する。尚、以下の異常検出処理の説明では、処理の対象としているインジェクタ４０のことを、診断対象インジェクタ４０Ｄという。
【００４９】
図６に示すように、ＣＰＵ５１は、異常検出処理では、まずＳ３１０にて、診断対象インジェクタ４０Ｄの燃料圧力センサ４１が異常であるか否かを判定する。
診断方法としては、例えば、診断対象インジェクタ４０Ｄからの燃料圧信号の電圧値が正常範囲内か否かを判定し、燃料圧信号の電圧値が正常範囲から外れていれば、診断対象インジェクタ４０Ｄの燃料圧力センサ４１が異常であると判定する。また、他の診断方法としては、例えば、燃料を噴射していない時の各インジェクタ４０からの燃料圧信号を比較して、診断対象インジェクタ４０Ｄからの燃料圧信号だけ、他のインジェクタ４０からの燃料圧信号との差が所定値以上であれば、診断対象インジェクタ４０Ｄの燃料圧力センサ４１が異常であると判定する、といった方法を採ることもできる。
【００５０】
そして、ＣＰＵ５１は、Ｓ３１０にて、燃料圧力センサ４１が異常ではない（正常である）と判定した場合には、そのまま当該異常検出処理を終了するが、Ｓ３１０にて、燃料圧力センサ４１が異常であると判定した場合には、Ｓ３２０に進む。
【００５１】
尚、診断対象インジェクタ４０Ｄの燃料圧力センサ４１が異常であると判定された場合、その診断対象インジェクタ４０Ｄは、燃料圧力センサ４１の異常が検出されたインジェクタ（以下、センサ異常インジェクタ４０Ａという）ということになる。
【００５２】
ＣＰＵ５１は、Ｓ３２０では、センサ異常インジェクタ４０Ａについて、異常検出直前の学習値を、基準値Ｌｓとして設定する。具体的には、例えばＲＡＭ５３又はＥＥＰＲＯＭ５４における基準値用記憶領域に、異常検出直前の学習値を、基準値Ｌｓとして記憶する。
【００５３】
尚、異常検出直前の学習値とは、センサ異常インジェクタ４０Ａについて、上記Ｓ３１０で燃料圧力センサ４１の異常が検出される直前に、図４のＳ２１０で算出されている最新の学習値であり、つまり、センサ異常検出時点（燃料圧力センサ４１の異常を検出した時点）での最新の学習値である。また、以下では、基準値Ｌｓとしての学習値が算出された時点のことを、基準値算出時点という。
【００５４】
次に、ＣＰＵ５１は、Ｓ３３０にて、センサ異常インジェクタ４０Ａ以外のインジェクタ（即ち、燃料圧力センサ４１が正常なインジェクタであり、以下、センサ正常インジェクタ４０Ｎという）のうち、過去の学習値変化状態が、センサ異常インジェクタ４０Ａの過去の学習値変化状態に最も近いインジェクタ４０を、模範インジェクタ４０Ｍとして選択する。尚、「過去の」とは、「燃料圧力センサ４１の異常が検出される前の」ということである。
【００５５】
具体的には、例えば下記＜１＞，＜２＞の手順で、模範インジェクタ４０Ｍを選定する。
＜１＞各インジェクタ４０について、前述の学習値履歴として記憶されている学習値のうちから特定の２つの学習値を選択すると共に、その２つの学習値うち、新しい方から古い方を引いた値である学習値変化量を、過去の学習値変化状態として算出する。
【００５６】
尚、特定の２つの学習値としては、例えば、最も新しいものと２番目に新しいものでも良いし、最も新しいものと最も古いものでも良いし、２番目に新しいものと最も古いものでも良い。
【００５７】
＜２＞３つのセンサ正常インジェクタ４０Ｎについて算出した学習値変化状態のうち、センサ異常インジェクタ４０Ａについて算出した学習値変化状態に最も近い学習値変化状態を選択し、その選択した学習値変化状態に対応するセンサ正常インジェクタ４０Ｎを、模範インジェクタ４０Ｍとする。
【００５８】
更に、ＣＰＵ５１は、Ｓ３３０では、選択した模範インジェクタ４０Ｍについても、上記基準値Ｌｓと同じ時点での学習値（即ち、基準値算出時点での学習値であり、センサ異常検出時点での学習値でもある）を、例えばＲＡＭ５３又はＥＥＰＲＯＭ５４における所定領域に記憶する。尚、このときに記憶される模範インジェクタ４０Ｍの学習値は、後述する図７のＳ４１０で用いられる。
【００５９】
そして、ＣＰＵ５１は、上記３３０の処理を行った後、当該異常検出処理を終了する。
更に、ＣＰＵ５１は、異常検出処理（図６）のＳ３１０により、何れかのインジェクタ４０について、燃料圧力センサ４１の異常を検出すると、その後は、センサ異常インジェクタ４０Ａについては、噴射特性学習処理（図４）に代えて、図７に示す代替学習値算出処理を実行することにより、センサ異常インジェクタ４０Ａの学習値の代替値（以下、代替学習値ともいう）を算出する。
【００６０】
図７のＳ４１０に示すように、ＣＰＵ５１は、代替学習値算出処理では、まず、模範インジェクタ４０Ｍについて、前述の基準値算出時点から現在までの学習値変化量（学習値の変化量）を算出する。具体的には、模範インジェクタ４０Ｍの現在の学習値から、図６のＳ３３０で記憶しておいた基準値算出時点での学習値を引いた値を、学習値変化量として算出する。そして、ＣＰＵ５１は、その学習値変化量を前述の基準値Ｌｓに加算した値を、センサ異常インジェクタ４０Ａの代替学習値として設定する。具体的には、ＲＡＭ５３又はＥＥＰＲＯＭ５４の記憶領域のうち、センサ異常インジェクタ４０Ａについて、噴射制御処理（図３）におけるＳ１４０の補正処理で用いられる学習値が記憶される領域に、上記代替学習値を記憶する。このため、センサ異常インジェクタ４０Ａについての噴射制御処理（図３）では、センサ異常インジェクタ４０Ａへの噴射指令信号を補正するために、代替学習値を用いることとなる。
【００６１】
つまり、インジェクタ４０の噴射特性（噴射開始遅れや噴射量のずれ）には、経時変化（構成部品のなじみや劣化等に伴う変化）がある。よって、噴射特性は時間経過と共に緩やかに変化していく。また、各インジェクタ４０の使用環境は同じであるため、各インジェクタ４０の噴射特性の変化傾向は同じなる。但し、噴射特性の変化速度（ある時間あたりの変化量）に関しては各インジェクタ４０で違いが生じると考えられる。そして、各インジェクタ４０の噴射特性の変化は、図５に示すように、算出される学習値の変化として現れる。
【００６２】
こうしたことを踏まえて、ＥＣＵ５０では、何れかのインジェクタ４０の燃料圧力センサ４１が異常であることを検出すると、その異常を検出した時点でのセンサ異常インジェクタ４０Ａの学習値を基準値Ｌｓとして設定すると共に、センサ正常インジェクタ４０Ｎのうち、過去の学習値変化状態が、センサ異常インジェクタ４０Ａの過去の学習値変化状態に最も近いインジェクタ４０を、模範インジェクタ４０Ｍとして選択している。
【００６３】
そして、その後は、センサ異常検出時点からの模範インジェクタ４０Ｍの学習値変化量を、センサ異常検出時点からのセンサ異常インジェクタ４０Ａの学習値変化量を推定した推定変化量とし、その推定変化量を基準値Ｌｓに加算した値を、センサ異常インジェクタ４０Ａの学習値の推定値としている。そして更に、その推定値を代替学習値としている。尚、学習値の推定値とは、燃料圧力センサ４１が正常であると仮定した場合に算出されると予想される学習値のことである。
【００６４】
例えば、図５において、時刻Ｔ３の後の時刻Ｔａで、１番気筒用インジェクタ４０＃１の燃料圧力センサ４１の異常が検出されたとする。
その場合、時刻Ｔａより前の、直近３回の履歴記憶タイミングである時刻Ｔ１，Ｔ２，Ｔ３の各々で学習値履歴として記憶された各インジェクタ４０の学習値の変化量が比較される。そして、図５の例では、２〜４番気筒用インジェクタ４０＃２〜４０＃４のうち、学習値の変化量が１番気筒用インジェクタ４０＃１の学習値の変化量に最も近い３番気筒用インジェクタ４０＃３が、模範インジェクタ４０Ｍとして選択されることとなる。
【００６５】
そして、時刻Ｔａ以降の例えば時刻Ｔｂでは、３番気筒用インジェクタ４０＃３の時刻Ｔｂでの学習値Ｌ＃３ｂから、３番気筒用インジェクタ４０＃３の時刻Ｔａでの学習値Ｌ＃３ａを引いた値（＝Ｌ＃３ｂ−Ｌ＃３ａ）が、時刻Ｔａから時刻Ｔｂまでの３番気筒用インジェクタ４０＃３の学習値変化量として算出され、その学習値変化量を、時刻Ｔａでの１番気筒用インジェクタ４０＃１の学習値Ｌ＃１ａ（＝基準値Ｌｓ）に加えた値が、時刻Ｔｂでの１番気筒用インジェクタ４０＃１の代替学習値ＳＬ＃１ｂとして設定されることとなる。
【００６６】
以上のようなＥＣＵ５０によれば、複数のインジェクタ４０のうちの何れかの燃料圧力センサ４１が異常になった場合でも、センサ異常インジェクタ４０Ａに対する噴射指令信号の補正を、中止することなく引き続き実施することができ、センサ異常インジェクタ４０Ａの噴射特性の経時変化を補償して燃料噴射の精度を良好にすることができる。
【００６７】
特に、図６のＳ３３０では、複数のセンサ正常インジェクタ４０Ｎのうち、センサ異常検出前における学習値変化状態が、センサ異常インジェクタ４０Ａの学習値変化状態に最も近いインジェクタ４０を、代替学習値の設定に使用する模範インジェクタ４０Ｍとして選択するため、代替学習値の妥当性を良好にすることができ、延いては、センサ異常インジェクタ４０Ａが設けられている気筒への燃料噴射精度を良好にすることができる。
【００６８】
また、上記第１実施形態では、センサ異常インジェクタ４０Ａについて、燃料圧力センサ４１の異常を検出する直前に算出されていた学習値（異常検出時点での学習値）を、基準値Ｌｓとして設定した。換言すれば、基準値Ｌｓとして用いる学習値が算出される異常検出前の特定時点は、異常が検出された時に最も近い学習値算出タイミングであった。このため、燃料圧力センサ４１の異常を検出した後は、センサ異常インジェクタ４０Ａについて、異常検出前の最新の学習値を基準値Ｌｓとして代替学習値を設定することができ、このことによっても、代替学習値の妥当性を良好にすることができる。
【００６９】
［第２実施形態］
次に、第２実施形態のＥＣＵについて説明するが、そのＥＣＵの符号としては、第１実施形態と同じ“５０”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。そして、このことは、後述する他の実施形態についても同様である。
【００７０】
インジェクタ４０の噴射特性は、経時変化の他に、燃料に異物が混入することによっても変化する。
例えば、燃料フィルタ１４の異物捕集能力が低下したり、粗悪な燃料フィルタ１４を使用したりした場合、燃料ポンプ２０が吸引する燃料に異物が混入し、その燃料内異物がインジェクタ４０内に入り込む可能性がある。そして、インジェクタ４０の可動部に燃料内異物が噛み込むと、噴射特性が経時変化よりも急に変化する可能性がある。その燃料内異物による噴射特性の変化は、発生タイミング及び変化量がランダムであり、インジェクタ４０間での関連性も無いと考えられる。但し、燃料に異物が混入した状態が継続することで  何れのインジェクタ４０においても噴射特性の変化量は全体としては増加していく傾向となる。そして、燃料内異物による噴射特性の変化も、インジェクタ４０の学習値の変化として現れる。
【００７１】
よって、インジェクタ４０に供給される燃料に異物が混入した場合、図８に示すように、各インジェクタ４０の学習値は、一定の変化傾向を示すことなくランダムに、且つ、インジェクタ４０の経時変化に伴う変化（図５参照）よりも急に大きく変化することとなる。
【００７２】
このため、インジェクタ４０に供給される燃料に異物が混入している状態（以下、燃料内異物混入状態という）であるか否かは、インジェクタ４０の学習値の変化状態に基づいて判定することができる。
【００７３】
また、インジェクタ４０への燃料に異物が混入するには、前述の通り燃料ポンプ２０が吸引する燃料に異物が混入することとなるが、燃料ポンプ２０が吸引する燃料に異物が混入すると、燃料圧力の制御性能が低下する。
【００７４】
具体的な現象について説明する。まず、燃料圧力制御処理では、図９に示すように、アクセル開度が増加してエンジン回転数が上昇する加速時においては、コモンレール圧の目標値を増加させ、また、アクセル開度が減少してエンジン回転数が下降する減速時においては、コモンレール圧の目標値を減少させる。そして、燃料圧力制御処理では、前述したように、コモンレール圧の実値（検出値）がその目標値となるように、燃料ポンプ２０を制御（詳しくは調量弁２２の駆動電流を制御）する。ここで、燃料ポンプ２０への燃料に異物が混入して燃料ポンプ２０の摺動面の抵抗が増加すると、上記加速時や減速時において、コモンレール圧の実値が目標値に追従しきれずに、コモンレール圧の目標値に対するアンダーシュートやオーバーシュートが発生することとなり、つまりは、コモンレール圧の制御性能が低下することになる。
【００７５】
このため、燃料内異物混入状態であるか否かは、コモンレール圧の目標値に対する追従状態に基づいても判定することができる。
また、コモンレール圧の目標値に対するオーバーシュートが発生して、コモンレール圧が所定値を超えると、前述の圧力制御弁３４が作動される。
【００７６】
このため、燃料内異物混入状態であるか否かは、圧力制御弁３４の作動状態に基づいても判定することができる。
以上のことを踏まえて、第２実施形態のＥＣＵ５０では、第１実施形態のＥＣＵ５０と比較すると、下記（２−１）〜（２−３）の点が異なっている。
【００７７】
（２−１）ＣＰＵ５１は、燃料内異物混入状態であるか否かを判定するために、図１０の異物判定処理を、例えば一定時間毎に実行する。
図１０に示すように、ＣＰＵ５１は、異物判定処理では、まずＳ５１０にて、コモンレール圧の目標値と実値との差（詳しくは、差の絶対値）が所定値以上である状態が、所定時間以上継続したか否かを判定する。尚、コモンレール圧の目標値と実値は、例えば、燃料圧力制御処理で取得している値を用いる。そして、このＳ５１０で肯定判定（ＹＥＳと判定）した場合には、Ｓ５４０に移行して、燃料内異物混入状態であると判定する。具体的な処理としては、例えば、燃料内異物混入状態であることを示す状態フラグをセットする。そして、その後、当該異物判定処理を終了する。
【００７８】
つまり、Ｓ５１０では、コモンレール圧の目標値に対するオーバーシュート又はアンダーシュートが発生しているか否かを判定しており、オーバーシュート又はアンダーシュートが発生していると判定した場合には、燃料内異物混入状態であると判定している。このＳ５１０では、燃料内異物混入状態であるか否かを、コモンレール圧の目標値に対する追従状態に基づいて判定している。
【００７９】
また、ＣＰＵ５１は、上記Ｓ５１０で否定判定（ＮＯと判定）した場合には、Ｓ５２０に進み、圧力制御弁３４の作動時間、又は、単位時間あたりの作動回数が、所定の閾値以上であるか否かを判定する。尚、圧力制御弁３４の作動時間としては、連続作動時間であっても良いし、合計時間（延べ時間）であっても良い。また、圧力制御弁３４の作動時間又は作動回数は、例えば、燃料圧力制御処理におけるＳ１２０の処理結果に基づいて算出することができる。そして、このＳ５２０で肯定判定した場合には、Ｓ５４０に移行して、燃料内異物混入状態であると判定し、その後、当該異物判定処理を終了する。
【００８０】
つまり、Ｓ５２０では、圧力制御弁３４の作動時間又は単位時間あたりの作動回数を、作動頻度の指標としており、その指標が閾値以上であると判定した場合には、燃料内異物混入状態であると判定している。このＳ５２０では、燃料内異物混入状態であるか否かを、圧力制御弁３４の作動状態に基づいて判定している。
【００８１】
また、ＣＰＵ５１は、上記Ｓ５２０で否定判定した場合には、Ｓ５３０に進み、複数のセンサ正常インジェクタ４０Ｎの学習値に急変化があったか否かを判定する。具体的には、単位時間あたりの学習値の変化量が所定値以上であるか否か、あるいは、学習値の変化傾向が反転（減少から増加へ反転、又は、増加から減少へ反転）したか否かを判定する。そして、このＳ５３０で肯定判定した場合には、Ｓ５４０に移行して、燃料内異物混入状態であると判定し、その後、当該異物判定処理を終了する。
【００８２】
つまり、Ｓ５３０では、燃料内異物混入状態であるか否かを、インジェクタ４０の学習値の変化状態に基づいて判定している。
尚、燃料に異物が混入した場合、複数のインジェクタ４０が影響を受ける（即ち、複数のインジェクタ４０の学習値に急変化が現れる）と考えられるが、Ｓ５３０では、少なくとも１つのセンサ正常インジェクタ４０Ｎの学習値に急変化があったか否かを判定しても良い。また、Ｓ５３０で判定の対象とする学習値は、エンジン２の同じ運転領域での学習値とすることが好ましい。
【００８３】
一方、ＣＰＵ５１は、上記Ｓ５３０で否定判定した場合には、燃料内異物混入状態であると判定せずに、当該異物判定処理を終了する。
（２−２）ＣＰＵ５１は、図６の異常検出処理におけるＳ３３０では、模範インジェクタ４０Ｍ以外のセンサ正常インジェクタ４０Ｎの各々についても、上記基準値Ｌｓと同じ時点での学習値（即ち、基準値算出時点での学習値）を、例えばＲＡＭ５３又はＥＥＰＲＯＭ５４における所定領域に記憶する。
【００８４】
（２−３）ＣＰＵ５１は、図７の代替学習値算出処理に代えて、図１１に示す代替学習値算出処理を実行する。
図１１に示すように、ＣＰＵ５１は、代替学習値算出処理では、まずＳ４０５にて、前述の状態フラグを参照することにより、燃料内異物混入状態であるか否かを判定する。
【００８５】
そして、ＣＰＵ５１は、燃料内異物混入状態ではないと判定した場合には、図７と同じＳ４１０にて、センサ異常インジェクタ４０Ａの代替学習値を設定した後、当該代替学習値算出処理を終了する。
【００８６】
また、ＣＰＵ５１は、燃料内異物混入状態であると判定した場合には、Ｓ４２０に進み、各センサ正常インジェクタ４０Ｎについて、前述の基準値算出時点から現在までの学習値変化量を算出する。具体的には、各センサ正常インジェクタ４０Ｎについて、現在の学習値から、図６のＳ３３０で記憶しておいた基準値算出時点での学習値を引いた値を、基準値算出時点からの学習値変化量（センサ異常検出時点からの学習値変化量でもある）として算出する。更に、ＣＰＵ５１は、各センサ正常インジェクタ４０Ｎの基準値算出時点からの学習値変化量を平均した値（以下、学習値変化量平均値という）を算出する。そして、ＣＰＵ５１は、次のＳ４３０にて、Ｓ４３０で算出した学習値変化量平均値を前述の基準値Ｌｓに加算した値を、センサ異常インジェクタ４０Ａの代替学習値として設定し、その後、当該代替学習値算出処理を終了する。
【００８７】
このため、ＣＰＵ５１は、例えば、燃料内異物混入状態であると判定している場合に、図８における時刻Ｔａで１番気筒用インジェクタ４０＃１の燃料圧力センサ４１の異常を検出したとすると、時刻Ｔａ以降の例えば時刻Ｔｂでは、時刻Ｔａから時刻Ｔｂまでの２番〜４番気筒用インジェクタ４０＃２〜４０＃４の学習値変化量を平均し、その学習値変化量平均値を、時刻Ｔａでの１番気筒用インジェクタ４０＃１の学習値Ｌ＃１ａ（＝基準値Ｌｓ）に加えた値を、時刻Ｔｂでの１番気筒用インジェクタ４０＃１の代替学習値ＳＬ＃１ｂとして設定することとなる。尚、２番〜４番気筒用インジェクタ４０＃２〜４０＃４の時刻Ｔａでの各学習値を、Ｌ＃２ａ，Ｌ＃３ａ，Ｌ＃４ａとし、２番〜４番気筒用インジェクタ４０＃２〜４０＃４の時刻Ｔｂでの各学習値を、Ｌ＃２ｂ，Ｌ＃３ｂ，Ｌ＃４ｂとすると、この例で算出される学習値変化量平均値は、「｛（Ｌ＃２ｂ−Ｌ＃２ａ）＋（Ｌ＃３ｂ−Ｌ＃３ａ）＋（Ｌ＃４ｂ−Ｌ＃４ａ）｝／３」となる。また、ＣＰＵ５１は、何れかのインジェクタ４０の燃料圧力センサ４１の異常を検出した後に、燃料内異物混入状態であると判定した場合にも、図１１におけるＳ４２０，Ｓ４３０の処理により、センサ異常インジェクタ４０Ａの代替学習値を設定することとなる。
【００８８】
以上のような第２実施形態のＥＣＵ５０では、各インジェクタ４０間での学習値変化の相関性が低くなる燃料内異物混入状態においては、センサ異常検出時点からの各センサ正常インジェクタ４０Ｎの学習値変化量を平均した値を、センサ異常検出時点からのセンサ異常インジェクタ４０Ａの学習値変化量を推定した推定変化量とし、その推定変化量を基準値Ｌｓに加算した値を、センサ異常インジェクタ４０Ａの代替学習値としている（Ｓ４２０，Ｓ４３０）。このため、燃料内異物混入状態において、センサ異常インジェクタ４０への噴射指令信号を補正しないようにするよりも、また、センサ正常インジェクタ４０Ｎのうちの１つを模範インジェクタ４０Ｍとするよりも、センサ異常インジェクタ４０Ａが設けられた気筒に対する燃料噴射精度を良くすることができる。
【００８９】
［第３実施形態］
第３実施形態のＥＣＵ５０では、第１又は第２実施形態のＥＣＵ５０と比較すると、下記（３−１），（３−２）の点が異なっている。
【００９０】
（３−１）ＣＰＵ５１は、各インジェクタ４０について、図１２に示す他の学習処理を、例えば一定時間毎に実行する。
図１２に示すように、ＣＰＵ５１は、他の学習処理では、まずＳ５１０にて、エンジン２の運転状態が微小噴射量学習値を算出するための特定運転状態であるか否かを判定する。その特定運転状態は、アイドル状態と減速状態との両方又は一方である。そして、ＣＰＵ５１は、特定運転状態でないと判定した場合には、そのまま当該他の学習処理を終了するが、特定運転状態であると判定した場合には、次のＳ５２０にて、微小噴射量学習処理を行い、その後、当該他の学習処理を終了する。
【００９１】
微小噴射量学習処理は、その処理の対象としているインジェクタ（以下、インジェクタ４０Ｂという）について、微小な噴射量を指令する噴射指令信号の出力継続時間（即ち、噴射量）を補正するための微小噴射量学習値を算出する処理である。例えば、微小噴射量学習処理は、上記特定運転状態において、ある決まった噴射量を指令する噴射指令信号をインジェクタ４０Ｂに与え、そのときのエンジン２のトルク変化や回転速度変化から実際の噴射量を推定し、その推定値と指令した噴射量との差分から、微小噴射量学習値を算出する処理である。尚、微小噴射量学習処理の詳細な内容については、既に様々なものが提案されていて公知である。
【００９２】
（３−２）ＣＰＵ５１は、図７又は図１１の代替学習値算出処を終了した直後に、図１３の追加処理を実行する。
図１３に示すように、ＣＰＵ５１は、追加処理では、まずＳ６１０にて、微小噴射量学習値を適用可能な運転状態（具体的には前述の特定運転状態）であるか否かを判定する。
【００９３】
そして、ＣＰＵ５１は、このＳ６１０にて、否定判定した場合には、そのまま当該追加処理を終了するが、微小噴射量学習値を適用可能な運転状態であると判定した場合には、Ｓ６２０に進み、センサ異常インジェクタ４０Ａについて算出されている微小噴射量学習値を、そのセンサ異常インジェクタ４０Ａについて設定された代替学習値（詳しくは、噴射量補償用の方の代替学習値）の下限値とする。つまり、図７におけるＳ４１０、あるいは、図１１におけるＳ４１０又はＳ４３０の処理で設定された代替学習値が、微小噴射量学習値未満であれば、その微小噴射量学習値を、代替学習値として設定し直して、代替学習値が微小噴射量学習値未満にならないようにする。そして、ＣＰＵ５１は、このＳ６２０の処理を行った後、当該追加処理を終了する。
【００９４】
他の処理例として、Ｓ６２０では、センサ異常インジェクタ４０Ａについて算出されている微小噴射量学習値を、そのセンサ異常インジェクタ４０Ａの代替学習値（詳しくは、噴射量補償用の方の代替学習値）として設定し直しても良い。
【００９５】
第３実施形態のＥＣＵ５０によれば、ＣＰＵ５１が図１３の追加処理を行うため、噴射量補償用の代替学習値が微小噴射量学習値未満にならず、その代替学習値が小さすぎてセンサ異常インジェクタ４０Ａからの噴射量が過小になってしまうことを防止できる。よって、噴射量が過小になることで生じるエンジン２の振動増加や、燃焼音増加や、失火によるトルク不足等を回避することができる。例えば、多段噴射におけるパイロット噴射の噴射量が不足するとエンジン２の振動や燃焼音が増加し、メイン噴射の噴射量が不足するとトルク不足が発生するが、そのような不都合を回避することができる。
【００９６】
［変形例］
前述の特定時点は、例えば、燃料圧力センサ４１の異常検出時から一定時間前の時点でも良い。その場合、図６のＳ３２０では、燃料圧力センサ４１の異常検出時から一定時間前の時点で算出された学習値を、基準値Ｌｓとして設定することとなり、その一定時間前の時点が、基準値算出時点となる。
【００９７】
図６のＳ３３０では、複数のセンサ正常インジェクタ４０Ｎのうちの１つを、過去の学習値変化状態に拘わらず、模範インジェクタ４０Ｍとして選択しても良い。例えば、センサ異常インジェクタ４０Ａが設けられている気筒の番号と特定の関係にある気筒番号（例えば、次の気筒番号）のインジェクタ４０を、模範インジェクタ４０Ｍとして選択する等、予め定めた規則で模範インジェクタ４０Ｍを選択するように構成しても良い。
【００９８】
第１実施形態において、図７のＳ４１０では、第２実施形態における図１１のＳ４２０，Ｓ４３０と同じ処理により、代替学習値を設定しても良い。この場合、センサ異常検出時点からの各センサ正常インジェクタ４０Ｎの学習値変化量を平均した値を、前述の推定変化量として算出することとなる。
【００９９】
インジェクタ４０の数は、４に限らず、例えば２でも良いし、３でも良いし、４以上でも良い。例えば、インジェクタ４０の数が２の場合、図６のＳ３３０では、インジェクタ４０の過去の学習値変化状態に拘わらず、センサ異常インジェクタ４０Ａでない方のインジェクタ４０を、模範インジェクタ４０Ｍとして選択すれば良い。
【０１００】
第２実施形態において、図１１の代替学習値算出処理から、Ｓ４１０の処理を削除し、ＣＰＵ５１は、燃料内異物混入状態であると判定している場合には、Ｓ４２０，Ｓ４３０の処理で代替学習値を設定し、燃料内異物混入状態でないと判定している場合には、代替学習値を設定せずに、例えばセンサ異常インジェクタ４０Ａについて噴射指令信号の補正を中止しても良い。
【０１０１】
内燃機関は、ガソリンエンジンでも良い。
以上、本発明の一実施形態及び変形例について説明したが、本発明はこうした実施形態等に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。また、前述した実施形態及び変形例の内容は、矛盾が生じない範囲で適宜組み合わせることができる。
【符号の説明】
【０１０２】
２…エンジン、１０…燃料噴射システム、２０…燃料ポンプ、３０…コモンレール、３４…圧力制御弁、４０…インジェクタ、４１…燃料圧力センサ、５０…ＥＣＵ（電子制御装置）、５１…ＣＰＵ
【図１】
2014122595.tif 000003
【図２】
2014122595.tif 000004
【図３】
2014122595.tif 000005
【図４】
2014122595.tif 000006
【図５】
2014122595.tif 000007
【図６】
2014122595.tif 000008
【図７】
2014122595.tif 000009
【図８】
2014122595.tif 000010
【図９】
2014122595.tif 000011
【図１０】
2014122595.tif 000012
【図１１】
2014122595.tif 000013
【図１２】
2014122595.tif 000014
【図１３】
2014122595.tif 000015