(57)【要約】      （修正有）【課題】噴射パルス時間に対する実際の噴射量バラツキを定量的に把握する。【解決手段】アイドル運転での燃料噴射圧力を複数の異なる燃料噴射圧力水準に変更し、複数の異なる燃料噴射圧力水準でインジェクタの噴射パルス時間に対する実際の噴射量のズレに対応した噴射量補正量を、学習前提条件および学習実行条件の成立時に算出された学習制御時噴射量を均等に分割してｎ回の分割噴射を実施しながら、ＦＣＣＢ補正およびＩＳＣ補正を行い各気筒毎で算出する。具体的には、各噴射のＦＣＣＢ補正量（ΔＱｃ／ｎ）と各噴射のＩＳＣ補正量（ＱＩＳＣ／ｎ）とを加算した値を噴射量の学習値として更新し記憶している。なお、この学習値は、各噴射の無負荷燃費／ｎの噴射量指令値（ｔｏｔａｌＱ／ｎ）に加算する各気筒毎の噴射量補正量として算出される。【選択図】図１４
2008101625.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの運転状態または運転条件に応じて設定される燃料噴射量と燃料噴射圧力とからインジェクタの指令噴射パルス時間を算出し、その算出された指令噴射パルス時間に応じて前記インジェクタを駆動する内燃機関用噴射量制御装置において、
（ａ）前記エンジンの燃焼状態がアイドル安定状態であるとともに、前記エンジンのアイドル無負荷燃費が想定値となり得る環境条件となっていることが検出されており、さらに前記エンジン回転速度が安定状態となっている学習前提条件が成立し、
かつ、所定のエンジンの運転状態または運転条件による学習実行条件が成立した際に、前記エンジンの運転状態に応じて学習制御時噴射量を算出する噴射量決定手段と
（ｂ）この噴射量決定手段によって設定された前記学習制御時噴射量を略均等にｎ回に分割し、ｎ回の分割噴射を行ないながら、
各気筒毎の回転速度変動を検出し、全気筒の回転速度変動の平均値と比較し、各気筒間の回転速度変動を平滑化するように、各気筒毎への噴射量を個々に補正する回転速度変動気筒間補正を行なうと共に、
前記学習前提条件および前記学習実行条件の成立した場合に、前記エンジンのアイドル安定目標回転速度を固定し、
前記ｎ回の分割噴射を行ないながら、平均エンジン回転速度を検出し、前記アイドル安定目標回転速度と比較し、前記平均エンジン回転速度を前記アイドル安定目標回転速度に維持するように、全気筒一律に噴射量を補正する平均エンジン回転速度補正を行なう均等分割噴射量補正手段と、
（ｃ）各気筒毎の回転速度変動の検出値と全気筒の回転速度変動の平均値との偏差が所定値以内となったときの気筒毎の第１噴射量補正量を算出する第１補正量算出手段と、
（ｄ）前記平均エンジン回転速度を前記アイドル安定目標回転速度で安定したときの全気筒一律の第２噴射量補正量を算出する第２補正量算出手段と、
（ｅ）前記気筒毎の第１噴射量補正量のｎ等分の値と前記全気筒一律の第２噴射量補正量のｎ等分の値と前回学習値とを加算した値を各気筒毎に学習値として更新し記憶する学習値記憶手段と
を備えたことを特徴とする内燃機関用噴射量制御装置。
【請求項２】
請求項１に記載の内燃機関用噴射量制御装置において、
前記第１補正量算出手段および前記第２補正量算出手段は、複数の異なる燃料噴射圧力水準で前記気筒毎の第１噴射量補正量および前記全気筒一律の第２噴射量補正量を算出し、
前記学習値記憶手段は、前記複数の異なる燃料噴射圧力水準での学習値を更新し記憶することを特徴とする内燃機関用噴射量制御装置。
【請求項３】
請求項２に記載の内燃機関用噴射量制御装置において、
前記学習値記憶手段によって記憶された前記複数の異なる燃料噴射圧力水準での学習値を補正値として各気筒毎の前記燃料噴射量の算出に反映させる学習値反映手段を備え、
前記学習値反映手段は、前記複数の異なる燃料噴射圧力水準以外の燃料噴射圧力に関して補完を行なうことを特徴とする内燃機関用噴射量制御装置。
【請求項４】
請求項１ないし請求項３のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記学習値は、前記エンジンの各気筒毎の、および各燃料噴射圧力毎の、前記インジェクタの指令噴射パルス時間に対する実際の噴射量のズレ量であることを特徴とする内燃機関用噴射量制御装置。
【請求項５】
請求項１ないし請求項４のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記回転速度変動気筒間補正および平均エンジン回転速度補正を行ないながら、前記学習値を算出した後に前記学習値を更新し記憶する学習制御を複数回実施し、
前記学習制御を複数回実施して算出した複数回分の学習値を更新し記憶する学習値記憶手段を備え、
それらの複数回分の学習値のうち各燃料噴射圧力および各気筒毎での最小値を最終学習値とすることを特徴とする内燃機関用噴射量制御装置。
【請求項６】
請求項１ないし請求項５のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記学習実行条件以外で、前記全気筒一律の第２噴射量補正量が所定値よりも小さい時に、再び始めから学習制御を実施するように指令を出力することを特徴とする内燃機関用噴射量制御装置。
【請求項７】
請求項１ないし請求項５のうちいずれかに記載の内燃機関用噴射量制御装置において、
前回の学習値と今回の学習値との差が所定範囲外の際、あるいは積算学習量が所定値を越えた際に、今回の学習値を記憶せず、再び始めから学習制御を実施するように、あるいは学習制御を禁止または中断するように指令を出力することを特徴とする内燃機関用噴射量制御装置。
【請求項８】
請求項１ないし請求項５のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記全気筒一律の第２噴射量補正量が学習制御開始時よりも所定値以上大きくなった時点で、学習制御を禁止または中断するように指令を出力することを特徴とする内燃機関用噴射量制御装置。
【請求項９】
請求項１ないし請求項８のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記学習値に、燃料噴射系の特性を考慮した補正係数を加味した値を学習補正量とする学習値補正手段を備えたことを特徴とする内燃機関用噴射量制御装置。
【請求項１０】
請求項１ないし請求項９のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記所定のエンジンの運転状態において算出される前記学習値を、前記第１噴射量補正量と前記第２噴射量補正量の和から、前記エンジンの負荷および燃焼状態変動に対応して設定されるエンジン要求噴射量の変化量を減算または加算して求める学習値算出手段を備えたことを特徴とする内燃機関用噴射量制御装置。
【請求項１１】
請求項１ないし請求項１０のうちいずれかに記載の内燃機関用噴射量制御装置において、
前回の学習制御時に前記学習実行条件の不成立により学習制御が中断された際に、前記学習実行条件が成立した後の今回の学習制御は前記学習制御が中断された時点の学習状態から学習制御を開始することを特徴とする内燃機関用噴射量制御装置。
【請求項１２】
請求項１に記載の内燃機関用噴射量制御装置において、
無負荷燃費状態を検出する無負荷燃費検出手段を備え、
前記学習実行条件は、前記無負荷燃費検出手段によって無負荷燃費状態が検出された時、
あるいはイグニッションスイッチのオフ回数、あるいは車両の走行距離、あるいは前記エンジンの運転時間、あるいは噴射量経時劣化量が所定の条件を満足した時に成立することを特徴とする内燃機関用噴射量制御装置。
【請求項１３】
請求項１２に記載の内燃機関用噴射量制御装置において、
前記イグニッションスイッチのオフ回数または前記車両の走行距離または前記エンジンの運転時間または前記噴射量経時劣化量またはインジェクタ経時劣化量に応じて前記学習値の算出頻度または補正頻度を切り替える学習値算出頻度切替手段を備えたことを特徴とする内燃機関用噴射量制御装置。
【請求項１４】
請求項１ないし請求項１３のうちいずれかに記載の内燃機関用噴射量制御装置において、
前記エンジンの圧縮行程中に、前記インジェクタの駆動を複数回実施するパイロット噴射量制御装置を備え、
前記パイロット噴射量制御装置は、前記学習値記憶手段によって記憶された学習値を、前記エンジンの運転状態および前記燃料噴射量に応じて設定されるパイロット、メイン、アフター、ポスト等の各噴射の噴射量の算出に反映させる学習値反映手段を有することを特徴とする内燃機関用噴射量制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの運転状態に応じて設定される指令噴射量とセンサ等により検出される燃料噴射圧力から算出された指令噴射パルス時間に応じてインジェクタを駆動する内燃機関用噴射量制御装置に関するもので、特にエンジンの圧縮行程中に、インジェクタの駆動を複数回実施することで、メイン噴射の前に１回以上の微少のパイロット噴射を行なうことが可能なパイロット噴射量制御装置に係わる。
【背景技術】
【０００２】
従来より、コモンレールに蓄圧した高圧燃料を多気筒ディーゼルエンジンの各気筒内に噴射供給するコモンレール式燃料噴射システムが知られている。このコモンレール式燃料噴射システムには、主噴射の開始時から安定した燃焼を行なって燃焼騒音やエンジン振動の低減、更には排気ガス性能の向上を目的として、エンジントルクと成り得る主噴射（メイン噴射）の前に複数回の微少の先立ち噴射（パイロット噴射）を実施している。
【０００３】
通常、燃料噴射量は、インジェクタの噴射指令パルス時間（ＴＱパルス幅）に対する実際の噴射量のバラツキを各気筒のインジェクタ個々の調整等により保証されているが、パイロット噴射はそのパイロット噴射量自体が主に５ｍｍ３／ｓｔ以下と非常に小さいため、噴射指令パルス時間に対する実際の噴射量のバラツキや、噴射量経時変化等によるインジェクタの性能（機能）の劣化によって、パイロット噴射が消失したり、過大となり過ぎることにより、その効果が十分発揮できないという課題がある。特に、高噴射圧力下では、インジェクタの噴射指令パルス時間に対する実際の噴射量のバラツキは大きくなる傾向にあり、１ｍｍ３／ｓｔ程度の微少噴射量では、インジェクタの単品保証も非常に困難であるという課題もあった。
【０００４】
それらの課題に対し、公知の技術である回転速度変動気筒間噴射量補正（ＦＣＣＢ）が知られている。
【０００５】
また、特許文献１には、パイロット噴射−メイン噴射の２回噴射における噴射量補正量の案分法が提案されている
【特許文献１】特開平２−２３２５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の回転速度変動気筒間噴射量補正（ＦＣＣＢ）は、一般的に、アイドル運転での燃料噴射圧力に限定した補正であり、実際に車両走行中に主に使用される燃料噴射圧力や課題である高噴射圧力下ではその補正を正確に行なうことができないという問題があった。
【０００７】
また、上述の特許文献１においても、上記ＦＣＣＢと同様に、アイドル運転での燃料噴射圧力に限定した補正であり、その補正を正確に行なうことができないという問題がある。そして、パイロット噴射量とメイン噴射量とのトータル噴射量の噴射量比により案分するため、見込みの噴射量補正量となり、インジェクタの噴射指令パルス時間に対する噴射量のズレを定量的に把握できない等の問題もあった。
【０００８】
本発明の目的は、インジェクタの噴射指令パルス時間に対する実際の噴射量のズレを定量的に把握することのできる内燃機関用噴射量制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明によれば、エンジンの燃焼状態がアイドル安定状態であるとともに、エンジンのアイドル無負荷燃費が想定値となり得る環境条件となっていることが検出されており、さらにエンジン回転速度が安定状態となっている学習前提条件が成立し、かつ、所定のエンジンの運転状態または運転条件による学習実行条件が成立した際に、エンジンの運転状態に応じて学習制御時噴射量を算出し、その学習制御時噴射量を略均等にｎ回に分割し、ｎ回の分割噴射を行ないながら、エンジンの各気筒毎の回転速度変動を検出し、各気筒毎の回転速度変動の検出値と全気筒の回転速度変動の平均値とを比較し、各気筒間の回転速度変動を平滑化するように各気筒毎への噴射量を個々に調整する回転速度変動気筒間補正を行なう。
【００１０】
また、上記した学習前提条件および学習実行条件の成立した場合に、エンジンのアイドル安定目標回転速度を固定し、ｎ回の分割噴射を行ないながら、平均エンジン回転速度を検出し、平均エンジン回転速度をエンジンの上記アイドル安定目標回転速度に維持するように、全気筒一律に噴射量を補正する平均エンジン回転速度補正を行なう。
【００１１】
そして、各気筒毎の回転速度変動の検出値と全気筒の回転速度変動の平均値との偏差に応じた気筒毎の第１噴射量補正量を算出し、また、平均エンジン回転速度をアイドル安定目標回転速度に維持するのに必要な全気筒一律の第２噴射量補正量を算出し、気筒毎の第１噴射量補正量のｎ等分の値と全気筒一律の第２噴射量補正量のｎ等分の値とを加算した値を算出することにより、インジェクタの指令噴射パルス時間に対する実際の噴射量のバラツキ量や噴射量経時変化によるインジェクタの性能劣化量を各気筒毎に定量的に把握することができる。そして、そのバラツキ量と前回学習値との和を燃料噴射量の各気筒毎の学習値として更新して記憶することにより、理想的な指令噴射パルス時間と燃料噴射量との相関が得られるようになる。
【００１２】
請求項２に記載の発明によれば、複数の異なる燃料噴射圧力水準で気筒毎の第１噴射量補正量および全気筒一律の第２噴射量補正量を算出し、複数の異なる燃料噴射圧力水準での学習値を更新し記憶することにより、インジェクタ単品でも保証が難しい高噴射圧力で、且つ燃料噴射量が微少噴射量の場合でも、エンジン運転時に、インジェクタの噴射指令パルス時間に対する実際の噴射量のズレを定量的に把握することができる。
【００１３】
請求項３に記載の発明によれば、複数の異なる燃料噴射圧力水準以外の燃料噴射圧力に関して補完を行なうことにより、学習制御時の燃料噴射圧力以外の燃料噴射圧力水準を含め実車における燃料噴射圧力の使用領域全域で、学習値記憶手段によって記憶された学習値を補正値として各気筒毎の燃料噴射量の算出に反映させることができる。これにより、常に、理想的な指令噴射パルス時間と燃料噴射量との相関が得られるようになる。
【００１４】
また、請求項４に記載の発明によれば、学習値は、エンジンの各気筒毎の、および各燃料噴射圧力毎の、インジェクタの指令噴射パルス時間に対する実際の噴射量のズレ量であることを特徴としている。
【００１５】
請求項５に記載の発明によれば、エンジン負荷要因によるエンジン要求噴射量の変化分が含まれた学習値がある場合には、その学習値は、他の学習値に比べて異常に大きな値をとることが分かっている。そのため、学習制御時噴射量を略均等にｎ回に分割し、回転速度変動気筒間補正および平均エンジン回転速度補正を行ないながら、気筒毎の第１噴射量補正量または第１補正量のｎ等分の値と全気筒一律の第２噴射量補正量または第２補正量のｎ等分の値とを加算した値を（例えば噴射量の）学習値として算出した後にその学習値を更新し記憶する学習制御を複数回実施し、学習制御を複数回実施して算出した複数回分の学習値を更新し記憶する学習値記憶手段を備え、更新し記憶した複数回分の学習値のうち各燃料噴射圧力および各気筒毎での最小値を最終学習値とすることにより、各学習値が正常な値か異常な値かを識別することができる。また、誤学習（誤補正）または過学習（過補正）による過剰な燃料噴射量の補正を防止できるので、エンジンの燃焼騒音やエンジン振動や排気エミッション等の悪化を防止できる。それによって、複数回分の学習値のうちの最小値、つまり適正な学習値を最終学習値（補正値）として燃料噴射量に反映させることができる。
【００１６】
請求項６に記載の発明によれば、インジェクタの指令噴射パルス時間に対する実際の噴射量のバラツキ量や噴射量経時変化によるインジェクタの性能劣化量に対応した学習値の学習精度（＝補正精度）を向上するために、複数の異なる燃料噴射圧力水準の学習値を算出する場合や、複数回分の学習値のうちの最小値を最終学習値として算出する場合に、常時学習値の算出を行なうことは、高圧噴射による燃焼騒音の増加等の問題となるため、所定の学習値の算出頻度または所定の補正頻度で学習値の算出を行なうことが望ましい。しかし、所定の学習値の算出頻度または所定の補正頻度のみで学習値の算出を行なうと、想定していない急な噴射量経時変化が発生した場合や、電気負荷等のエンジン負荷が加わっている状態を検出できずに学習値の算出を行なった場合等、次の学習値の算出までの間、狙い通りの燃料噴射量とならない状態が続き、エンジン性能が悪化することが問題となる。
【００１７】
そこで、学習実行条件以外で、全気筒一律の第２噴射量補正量または第２補正量が所定値よりも小さい時に、再び始めから、回転速度変動気筒間補正および平均エンジン回転速度補正を行ないながら、学習値を算出した後に学習値を更新し記憶する学習制御を実施するように指令を出力することにより、誤学習の判定精度の向上を図ることができ、且つ誤学習後の再学習により、次の学習値の算出までの間も、狙い通りの燃料噴射量となり、エンジン性能の悪化を防止できる。なお、再学習制御時に、電気負荷等のエンジン負荷が加わっていない状態を検出することができれば、学習制御を１回再実施して算出した学習値を最終学習値とすることで、学習制御を複数回実施して算出した複数回分の学習値のうちの最小値を最終学習値として設定する上記の学習制御と比べて、最終学習値の算出時間を非常に短縮することができる。
【００１８】
請求項７に記載の発明によれば、前回の学習値と今回の学習値との差が所定範囲外の際、あるいは積算学習量が所定値を越えた際に、今回の学習値を記憶せず、再び始めから学習制御を実施するように、あるいは学習制御を禁止または中断することを特徴としている。これにより、誤学習または過学習を防止することができる。
【００１９】
また、請求項８に記載の発明によれば、全気筒一律の第２噴射量補正量または第２補正量が学習制御開始時よりも所定値以上大きくなった時点で、学習制御を禁止または中断することを特徴としている。これにより、誤学習または過学習を防止することができる。
【００２０】
請求項９に記載の発明によれば、学習制御時以外の領域に学習値を反映する場合において、その燃料噴射量、燃料噴射圧力、エンジン回転速度の影響により学習値そのものでは誤補正、過補正となり得る場合があるという問題がある。そこで、学習値または仮学習値に、燃料噴射系の特性を考慮した補正係数を加味した値を学習補正量とすることにより、誤補正または過補正による過剰な燃料噴射量の補正を防止できる。それによって、エンジンの燃焼騒音やエンジン振動や排気エミッション等の悪化を防止でき、適正な学習補正量を補正値として燃料噴射量に反映させることができる。
【００２１】
請求項１０に記載の発明によれば、所定のエンジンの運転状態または無負荷燃費に対応したアイドル時噴射量（学習制御時噴射量）にエンジン負荷要因によるエンジン要求噴射量の増量分が含まれていると、噴射量のバラツキや噴射量経時劣化量以外にエンジン要求噴射量の増量分を含んだ学習値を算出してしまい誤学習するという問題がある。そこで、無負荷燃費に対応したアイドル時噴射量（学習制御時噴射量）の学習値を、第１噴射量補正量または第１補正量と第２噴射量補正量または第２補正量の和から、エンジンの負荷変動に対応して設定されるエンジン要求噴射量の変化量を減算または加算して求めることにより、無負荷燃費からの噴射量のズレ量を識別でき、且つ噴射量のバラツキ、噴射量経時劣化量からエンジン要求噴射量の変化量の影響を除外することができる。したがって、誤学習（誤補正）または過学習（過補正）による過剰な燃料噴射量の補正を防止できる。それによって、エンジンの燃焼騒音やエンジン振動や排気エミッション等の悪化を防止でき、適正な学習噴射量を補正値として燃料噴射量に反映させることができる。
【００２２】
請求項１１に記載の発明によれば、学習制御時噴射量を略均等にｎ回に分割し、回転速度変動気筒間補正および平均エンジン回転速度補正を行ないながら、気筒毎の第１噴射量補正量または第１補正量のｎ等分の値と全気筒一律の第２噴射量補正量または第２補正量のｎ等分の値とを加算した値を（例えば噴射量の）学習値として算出した後にその学習値を更新し記憶する学習制御を実施した場合、その学習制御途中に、アクセルペダルを踏んだり、エアコンスイッチをＯＮしたりする等の運転操作が行なわれ、学習実行条件の不成立により学習制御の中断が頻繁に起こると、いつまでも学習制御が終了せず、噴射量のバラツキや噴射量経時変化等によるインジェクタの性能（機能）劣化を補正学習できないという問題がある。
【００２３】
そこで、前回の学習制御時に学習実行条件の不成立により学習制御が中断された際に、学習実行条件が成立した後の今回の学習制御は学習制御が中断された時点の学習状態から学習制御を開始することにより、学習制御の終了時間を短縮できるので、頻繁に学習制御が中断された場合でも、確実に学習制御を終了することができる。また、気筒毎の第１噴射量補正量または第１補正量のｎ等分の値と全気筒一律の第２噴射量補正量または第２補正量のｎ等分の値とを加算した値を噴射量の学習値として算出した後にその学習値を更新し記憶する学習制御を複数回実施する場合でも、学習実行条件が成立した後の今回の学習制御を、学習制御が中断された時点の仮学習状態から学習制御を開始することにより、最初の学習値の算出に戻ることなく、常に次の学習値の算出に移行できるので、確実に学習制御を終了することができる。
【００２４】
請求項１２に記載の発明によれば、学習実行条件は、無負荷燃費状態が検出された時、あるいはイグニッションスイッチのオフ回数、あるいは車両の走行距離、あるいはエンジンの運転時間、あるいは噴射量経時変化によりインジェクタ性能やインジェクタ機能が劣化した噴射量経時劣化量が所定の条件を満足した時に成立し、それ以外の時は不成立となることを特徴としている。なお、エンジン補機類の駆動負荷や電気負荷等のエンジン負荷が増減した際、あるいはセレクトレバーがＮレンジまたはＰレンジにセットされていることを検出した際、あるいは運転者（ドライバー）がクラッチペダルを踏んでいることを検出した際等の入力情報を組み合わせると、より効果的にエンジンの無負荷燃費状態を検出できる。
【００２５】
請求項１３に記載の発明によれば、例えば噴射量経時劣化量が時間に対して一定ではない経時変化特性のインジェクタの場合、学習値の算出頻度または補正頻度が小さ過ぎると、噴射量経時変化を学習補正できなくなり、学習値の算出頻度または補正頻度が大き過ぎると、学習値の算出時（学習制御時）の異常挙動（噴射圧力が高くなることによる燃焼騒音の増加等）が頻繁に起こるという問題がある。そこで、イグニッションスイッチのオフ回数または車両の走行距離またはエンジンの運転時間または噴射量経時劣化量またはインジェクタ経時劣化量に応じて学習値の算出頻度または補正頻度を適正な頻度となるように切り替えることにより、イグニッションスイッチのオフ回数または車両の走行距離または噴射量経時劣化量に合わせて学習値の算出頻度または補正頻度を設定できる。
【００２６】
請求項１４に記載の発明によれば、学習値記憶手段によって記憶された学習値を、エンジンの運転状態および燃料噴射量に応じて設定されるパイロット、メイン、アフター、ポスト等の各噴射の噴射量の算出に反映させることにより、インジェクタ単品でも保証が非常に困難な高噴射圧力、微少噴射量（例えば１〜５ｍｍ３／ｓｔ以下）であっても、エンジン運転時に、インジェクタの指令噴射パルス時間に対する実際の噴射量のバラツキ量や噴射量経時変化によるインジェクタの性能劣化量に対応した学習値を補正値として適正な燃料噴射量（噴射量指令値）を求めることができる。
【発明を実施するための最良の形態】
【００２７】
本発明の実施の形態を、以下に示す各実施例に基づき図面を参照して説明する。
【００２８】
［第１実施例の構成］
図１ないし図１６は本発明の第１実施例を示したもので、図１はコモンレール式燃料噴射システムの全体構成を示した図である。
【００２９】
本実施例のコモンレール式燃料噴射システムは、４気筒ディーゼルエンジン等の内燃機関（以下エンジンと言う）１の各気筒に噴射供給する燃料噴射圧力に相当する高圧燃料を蓄圧する蓄圧容器としてのコモンレール２と、吸入した燃料を加圧してコモンレール２内に圧送する燃料供給ポンプとしてのサプライポンプ３と、コモンレール２内に蓄圧された高圧燃料をエンジン１の各気筒内に噴射供給する複数個（本例では４個）のインジェクタ４と、サプライポンプ３および複数個のインジェクタ４を電子制御する電子制御ユニット（以下ＥＣＵと呼ぶ）１０とを備えている。
【００３０】
エンジン１は、４個の気筒およびオイルパン等から構成された４サイクル４気筒エンジンである。なお、エンジン１の各気筒（シリンダ）は、シリンダブロックとシリンダヘッド等により形成されている。そして、各シリンダの吸気ポートは、吸気弁（インテークバルブ）１１により開閉され、排気ポートは、排気弁（エキゾーストバルブ）１２により開閉される。また、各シリンダ内には、連接棒を介してクランクシャフト（図示せず）に連結されたピストン１３が摺動自在に配設されている。そして、エンジン１を収容するエンジンルーム（図示せず）内の走行風を受け易い場所には、ラジエータ１４が配設されている。ラジエータ１４には、エンジン１を冷却する冷却水の温度（エンジン冷却水温）を検出する冷却水温センサ３７が設置されている。
【００３１】
ここで、エンジン１の運転中に、シリンダ内で燃焼した排気ガスは、排気管１５を通り、バリアブル・ジアメトリ・ターボ（ＶＧＴ）１６のタービンの駆動源となった後に、触媒（図示せず）、マフラー（図示せず）を経て排出される。上記のＶＧＴ１６の制御は、吸気圧センサと過給圧力センサ４４とＶＧＴポジションセンサ４７の信号とに基づいて行なわれる。過給（圧縮）され高温になった吸入空気は、インタクーラ１８で冷却された後に、エンジン１の吸気ポートを経てシリンダ内へ導入される。
【００３２】
そして、吸気管１７の途中には、吸気管１７内の吸気通路を開閉してエンジン１に供給する吸入空気量（吸気量）を調整するための吸気絞り弁（スロットルバルブ）１９が配設され、このスロットルバルブ１９の弁開度は、ＥＣＵ１０からの信号により作動するアクチュエータ２０によって調節される。なお、アクチュエータ２０内には、スロットルバルブ１９の弁開度を検出するスロットルポジションセンサ（図示せず）が装備されている。スロットルポジションセンサとしては、スロットルバルブ１９の弁開度を全閉のアイドリング時と全開に近い高負荷時に分けて感知し、ＥＣＵ１０へ送信するセンサを用いても良い。
【００３３】
また、吸気管１７の吸気ポート近傍には、ＥＣＵ１０からの信号により作動する渦流制御弁（スワールコントロールバルブ：以下ＳＣＶと言う）２１が配設されている。そのＳＣＶ２１は、吸気温センサ４５を設置した吸気通路２２を迂回するバイパス路２３内に設置され、低負荷時に通電停止（ＯＦＦ）されて閉弁し、高負荷時に通電（ＯＮ）されて開弁する。
【００３４】
また、本実施例の吸気管１７には、排気管１５を流れる排気ガスの一部の排気ガス（排気再循環ガス：ＥＧＲガス）を吸気管１７へ導く排気ガス還流管２４が接続されている。そして、吸気管１７と排気ガス還流管２４との合流部には、排気ガス再循環装置用バルブ（ＥＧＲバルブ）２５が設置されている。したがって、シリンダ内に吸い込まれる吸入空気は、窒素酸化物（ＮＯｘ）の生成量を少なくする目的で、エンジン１の運転状態毎に設定された排気ガス還流量になるようにＥＧＲバルブ２５の弁開度を制御し、排気管１５からの排気ガスとミキシングされることになる。なお、排気ガス還流量（ＥＧＲ量）は、吸入空気量センサ４３と吸気温センサ４５と排気Ｏ２センサ４８とＥＧＲポジションセンサ４６からの信号で、所定値を保持できるようにフィードバック制御している。
【００３５】
コモンレール２には、連続的に燃料噴射圧力に相当する高圧燃料が蓄圧される必要があり、そのためにコモンレール２に蓄圧される高圧燃料は、高圧配管２６を介してサプライポンプ３から供給されている。なお、コモンレール２から燃料タンクへ燃料をリリーフするリリーフ配管（図示せず）には、燃料噴射圧力が限界設定圧を越えることがないように、圧力を逃がすためのプレッシャリミッタ２７が取り付けられている。また、コモンレール２内に蓄圧された燃料噴射圧力に相当する燃料圧（コモンレール圧とも言う）は、噴射圧力検出手段としてのコモンレール圧センサ３０によって測定される。そのコモンレール圧センサ３０としては、図示しないシリコン基板（回路基板）上にピエゾ抵抗素子等のセンサ検出部を形成した半導体圧力センサが用いられ、燃料噴射圧力に対応した電気信号（電圧信号）を出力する。
【００３６】
サプライポンプ３は、図示しない燃料タンクから燃料を汲み上げるフィードポンプ（図示せず）、およびコモンレール２への高圧燃料の圧送量（吐出量）を調整するための電磁弁（例えば吸入調量弁）等のアクチュエータ（図示せず）を内蔵する高圧供給ポンプである。このサプライポンプ３内には、燃料タンクから吸入される燃料温度を検出する燃料温度センサ３６が設置されている。
【００３７】
インジェクタ４は、エンジン１のシリンダブロックに（各気筒＃１〜＃４に個別に対応して）取り付けられ、各気筒毎のシリンダ内に高圧燃料を噴射する燃料噴射ノズル、この燃料噴射ノズルのノズルニードルを開弁方向に駆動する電磁弁等のアクチュエータ、およびノズルニードルを閉弁方向に付勢するスプリング等の付勢手段などから構成された電磁式燃料噴射弁である。
【００３８】
これらのインジェクタ４からエンジン１への燃料噴射は、例えば電磁弁が開弁している間、コモンレール２に蓄圧された高圧燃料がエンジン１の各気筒のシリンダ内に噴射供給されることで成される。ここで、インジェクタ４からのリーク燃料またはノズルニードルの背圧制御室からの排出燃料（リターン燃料）は、燃料還流路を経て燃料タンクに還流するように構成されている。なお、インジェクタ４のノズルニードルの開弁時間（燃料噴射期間）が長い程、エンジン１の各気筒毎のシリンダ内に噴射される燃料噴射量が多くなり、ノズルニードルの開弁時間が短い程、燃料噴射量が少なくなる。
【００３９】
ＥＣＵ１０には、制御処理、演算処理を行なうＣＰＵ、各種プログラムおよびデータを保存する記憶装置（ＲＯＭ、スタンバイＲＡＭまたはＥＥＰＲＯＭ、ＲＡＭ等のメモリ）、入力回路、出力回路、電源回路、インジェクタ駆動回路およびポンプ駆動回路等の機能を含んで構成される周知の構造のマイクロコンピュータが設けられている。そして、コモンレール圧センサ３０からの電圧信号や、その他の各種センサからのセンサ信号は、Ａ／Ｄ変換器でＡ／Ｄ変換された後に、ＥＣＵ１０に内蔵されたマイクロコンピュータに入力されるように構成されている。また、ＥＣＵ１０は、エンジン１をクランキングさせた後にエンジンキーをＩＧ位置に戻して、図示しないイグニッションスイッチがオン（ＯＮ）すると、メモリ内に格納された制御プログラムに基づいて、例えばサプライポンプ３やインジェクタ４等の各制御部品のアクチュエータを電子制御するように構成されている。
【００４０】
ここで、本実施例の気筒判別手段は、エンジン１のカムシャフトに対応して回転するシグナルロータ（例えばクランクシャフトが２回転する間に１回転する回転体）３１と、このシグナルロータ３１の外周に設けられた各気筒に対応した気筒歯（突起部）と、これらの気筒歯の接近と離間によって気筒判別信号パルス（Ｇ）を発生する気筒判別センサ（電磁ピックアップ）３２とから構成されている。
【００４１】
また、本実施例の回転速度検出手段は、エンジン１のクランクシャフトに対応して回転するシグナルロータ（例えばクランクシャフトが１回転する間に１回転する回転体）３３と、このシグナルロータ３３の外周に多数形成されたクランク角検出用の歯（突起部）と、これらの歯の接近と離間によってＮＥ信号パルスを発生するクランク角センサ（電磁ピックアップ）３４とから構成されている。このクランク角センサ３４は、シグナルロータ３３が１回転（クランクシャフトが１回転）する間に複数のＮＥ信号パルスを出力する。なお、特定のＮＥ信号パルスは、各＃１〜＃４気筒のピストンの上死点（ＴＤＣ）の位置に対応している。そして、ＥＣＵ１０は、ＮＥ信号パルスの間隔時間を計測することによってエンジン回転速度（ＮＥ：以下エンジン回転数とも言う）を検出する。
また、ＥＣＵ１０は、エンジン回転速度が所定値（例えばＮＥ＝１０００ｒｐｍ）以下、アクセル開度が所定値（例えばＡＣＣＰ＝０％）以下、車両の走行速度（以下車速と言う）が所定値（例えばＳＰＤ＝０ｋｍ／ｈ）以下、指令噴射量が所定値（例えばＱＦＩＮ＝５ｍｍ３／ｓｔ＝無負荷燃費）、トランスミッションのギアポジションがＮ（ニュートラル）であることを検出した際に、低負荷低回転状態、つまりアイドル安定状態（無負荷燃費状態）であることを検出する無負荷燃費検出手段の機能を含んで構成されている。
【００４２】
なお、パーキングブレーキのＯＮ信号を検出した際、オルタネータ、ウォータポンプ、オイルポンプ等のエンジン補機類の駆動負荷や、ヘッドライト、カーオーディオ、エアコンスイッチ、ヒータスイッチや送風用ファンスイッチ等の電気負荷等のエンジン負荷が増減した際、あるいはセレクトレバーがＮレンジまたはＰレンジにセットされていることを検出した際、あるいは運転者（ドライバー）がクラッチペダルを踏んでいることを検出した際等の入力情報を組み合わせると、より効果的にエンジン１のアイドル安定状態（無負荷燃費状態）を検出できる。
【００４３】
そして、ＥＣＵ１０は、エンジン１の運転条件に応じた最適な燃料噴射圧力（＝コモンレール圧）を演算し、ポンプ駆動回路を介してサプライポンプ３の電磁弁を駆動する吐出量制御手段（ＳＣＶ制御手段）を有している。すなわち、ＥＣＵ１０は、クランク角センサ３４等の回転速度検出手段によって検出されたエンジン回転速度（ＮＥ）およびアクセル開度センサ３５によって検出されたアクセル開度（ＡＣＣＰ）等のエンジン運転情報から目標燃料噴射圧力（Ｐｔ）を算出し、この目標燃料噴射圧力（Ｐｔ）を達成するために、サプライポンプ３の電磁弁へのポンプ駆動信号（駆動電流値）を調整して、サプライポンプ３より吐出される燃料の圧送量（ポンプ吐出量）を制御するように構成されている。
【００４４】
さらに、より好ましくは、燃料噴射量の制御精度を向上させる目的で、コモンレール圧センサ３０によって検出される燃料噴射圧力（Ｐｃ）がエンジン運転情報によって決定される目標燃料噴射圧力（Ｐｔ）と略一致するように、サプライポンプ３の電磁弁へのポンプ駆動信号をフィードバック制御することが望ましい。なお、電磁弁への駆動電流値（ＳＣＶ通電値）の制御は、デューティ（ｄｕｔｙ）制御により行なうことが望ましい。すなわち、目標燃料噴射圧力（Ｐｔ）に応じて単位時間当たりのポンプ駆動信号のオン／オフの割合（通電時間割合・デューティ比）を調整して、電磁弁の弁開度を変化させるデューティ制御を用いることで、高精度なデジタル制御が可能になる。
【００４５】
また、ＥＣＵ１０は、各気筒のインジェクタ４から噴射される燃料噴射量を個別に制御する噴射量制御装置に相当する。これは、クランク角センサ３４等の回転速度検出手段によって検出されたエンジン回転速度（ＮＥ）とアクセル開度センサ３５によって検出されたアクセル開度（ＡＣＣＰ）と予め実験等により測定して作成した特性マップ（図２参照）とによって最適な基本噴射量（Ｑ）を算出する基本噴射量決定手段と、燃料温度センサ３６によって検出された燃料温度（ＴＨＦ）および冷却水温センサ３７によって検出された冷却水温（ＴＨＷ）等の運転条件により基本噴射量（Ｑ）に噴射量補正量を加味して指令噴射量（ＱＦＩＮ）を算出する指令噴射量決定手段と、コモンレール圧（燃料噴射圧力：Ｐｃ）と指令噴射量（ＱＦＩＮ）と予め実験等により測定して作成した特性マップ（図３参照）から噴射指令パルス幅（噴射指令パルス時間、噴射指令パルス長さ：ＴＱ）を算出する噴射期間決定手段と、インジェクタ駆動回路（ＥＤＵ）を介して各気筒のインジェクタ４の電磁弁にパルス状のインジェクタ駆動電流（噴射指令パルス、ＴＱパルス）を印加するインジェクタ駆動手段とから構成されている。ここで、図４は特定気筒（例えば＃１気筒）の噴射指令パルス時間（＝噴射量指令値：ＴＱ）、この噴射指令パルス時間に対応して特定気筒（例えば＃１気筒）のインジェクタ４の電磁弁に出力されるインジェクタ駆動電流波形、および特定気筒（例えば＃１気筒）の燃料噴射率を示したタイミングチャートである。
【００４６】
ここで、本実施例では、エンジン１の運転条件を検出する運転状態検出手段として、クランク角センサ３４等の回転速度検出手段およびアクセル開度センサ３５を用いて基本噴射量（Ｑ）、噴射時期（Ｔ）、目標燃料噴射圧力（Ｐｔ）を演算するようにしているが、コモンレール圧センサ３０によって検出される燃料噴射圧力（Ｐｃ）、あるいは運転状態検出手段としてのその他のセンサ類（例えば燃料温度センサ３６、冷却水温センサ３７、燃料リーク温度センサ３８、油温センサ３９、アイドルアクセル位置センサ４０、大気圧センサ４１、大気温（外気温）センサ４２、吸入空気量センサ４３、過給圧力センサ４４、吸気温センサ４５、ＥＧＲポジションセンサ４６、ＶＧＴポジションセンサ４７、排気Ｏ２センサ４８、排気温センサ４９、排気圧センサ５０、スロットルポジションセンサ、吸気圧センサ、噴射時期センサ等）からの検出信号（エンジン運転情報）を加味して基本噴射量（Ｑ）、噴射時期（Ｔ）および目標燃料噴射圧力（Ｐｔ）を補正するようにしても良い。
【００４７】
そして、ＥＣＵ１０には、エンジンキーをシリンダ内に差し込んでＳＴ位置まで回すと、スタータスイッチがオン（ＯＮ）してスタータを通電するスタータ通電回路が接続されている。また、ＥＣＵ１０には、エンジン１により駆動されるトランスミッションのギアポジションを示す信号、運転者（ドライバー）がクラッチペダルを踏んだことを検出する信号、スタータへの通電信号、車速センサからの車速信号、エアコン用電磁クラッチ、エアコンのコンデンサ用電動ファン、エアコンの室内送風用ファン、ラジエータ用電動ファンやヘッドライト等の電気負荷、エアコン用コンプレッサやパワーステアリングやオイルポンプ等の駆動負荷等の車両情報を検出する信号が入力するように構成されている。
【００４８】
ここで、本実施例のコモンレール式燃料噴射システムにおいては、エンジン１の特定気筒のインジェクタ４においてエンジン１の１周期（１行程：吸気行程−圧縮行程−燃焼行程（爆発行程）−排気行程）中、つまりエンジン１のクランクシャフトが２回転（７２０°ＣＡ）する間、特にエンジン１の各気筒の１燃焼行程中に２回以上のマルチ噴射（例えば複数回のパイロット噴射・メイン噴射）を行なうことが可能である。
【００４９】
したがって、ＥＣＵ１０は、エンジン１の運転状態（運転情報）と基本噴射量とから、マルチ噴射の各々の燃料噴射量、つまりパイロット噴射量およびメイン噴射量を算出する噴射量決定手段と、エンジン回転速度とパイロット噴射量からパイロット噴射とメイン噴射との間のインターバル、およびエンジン回転速度とパイロット噴射量からパイロット噴射とパイロット噴射との間のインターバルを算出するインターバル決定手段と、パイロット噴射量と燃料噴射圧力よりパイロット噴射期間、メイン噴射量と燃料噴射圧力よりメイン噴射期間を算出する噴射期間決定手段とを有している。
【００５０】
ここで、本実施例のＥＣＵ１０は、エンジン１のアイドル運転（アイドル安定状態）時に、エンジン１の各気筒の爆発行程毎の回転速度変動を検出し、エンジン１の各気筒毎の回転速度変動の検出値と全気筒の回転速度変動の平均値とを比較し、エンジンの気筒間の回転速度変動を平滑化するように、エンジンの各気筒毎への最適な燃料噴射量を個々に調整する回転速度変動気筒間補正（ＦＣＣＢ）を実施するように構成されている。
【００５１】
具体的には、クランク角センサ３４より取り込んだＮＥ信号パルスの間隔時間を計算することで、エンジン１の各気筒の爆発行程毎の瞬時回転速度を算出し、ＢＴＤＣ９０°ＣＡ〜ＡＴＤＣ９０°ＣＡ間のＮＥ信号パルスの間隔時間の最大値を当該気筒の瞬時回転速度の最低回転速度（以下最低回転数と言う：Ｎｌ）として読み込む。また、ＢＴＤＣ９０°ＣＡ〜ＡＴＤＣ９０°ＣＡ間のＮＥ信号パルスの間隔時間の最小値を当該気筒の瞬時回転速度の最高回転速度（以下最高回転数と言う：Ｎｈ）として読み込む。但し、Ｎｌ、Ｎｈは必ずしも最低回転速度、最高回転速度である必要はなく、当該気筒の回転速度変動を代表する低回転速度、高回転速度であっても良い。
【００５２】
そして、これらの計算を各気筒毎に行なった後に、各気筒毎の最高回転数（Ｎｈ）と各気筒毎の最低回転数（Ｎｌ）との気筒毎回転数差分（ΔＮｋ）を算出する。これにより、エンジン１の各気筒毎の回転速度変動の検出値を算出する。そして、エンジン１の全気筒の回転速度変動の平均値（ΣΔＮｋ）を算出する。つまり、エンジン１の全気筒の回転速度変動を平均化して、全気筒の回転速度変動の平均値を算出した後に、各気筒毎の回転速度変動の検出値と全気筒の回転速度変動の平均値から各気筒間の回転速度変動の偏差を算出する。そして、エンジン１の各気筒間の回転速度変動が平滑化するように、各気筒毎に算出される各噴射の噴射量に、各気筒間の回転速度変動を平滑化する方向への第１補正量（ＦＣＣＢ補正量とも言う）を各気筒毎に付加する（第１補正量算出手段）。
【００５３】
また、本実施例のＥＣＵ１０は、エンジン１のアイドル運転（アイドル安定状態）時に、現在のエンジン回転速度である平均エンジン回転速度（平均アイドリング回転速度）を目標回転速度（目標アイドリング回転速度）に合わせるために、平均エンジン回転速度と目標回転速度との偏差（ΔＮＥ）に対して全気筒一律に平均エンジン回転速度補正（ＩＳＣ）を実施するように構成されている。具体的には、エンジン１の実際の回転速度（エンジン回転速度：ＮＥ）と目標回転速度（ＩＳＣ目標ＮＥ）とを比較し、その回転速度差に応じた第２噴射量補正量を算出する。そして、平均エンジン回転速度が目標回転速度に略一致するように、各気筒毎に算出される第１補正量によって補正された各噴射の噴射量に、目標回転速度に合わせるのに必要な第２補正量（ＩＳＣ補正量とも言う）を全気筒一律に付加する（第２補正量算出手段）。
【００５４】
また、本実施例のＥＣＵ１０は、後記するパイロット噴射量の学習制御が終了した後の通常のアイドル運転時に、アイドリング回転速度が低下することで、運転者（ドライバー）に不快なエンジン振動を与えたり、エンジンストールを起こしたりしないように、あるいはアイドリング回転速度が上昇することで、エンジン騒音、燃料消費率を悪化させたりしないように、エンジン負荷トルクが変化しても、目標アイドル回転速度（ＩＳＣ目標ＮＥ）を維持するのに必要な噴射量に制御する通常のアイドリング回転速度制御（ＩＳＣ）を実施するように構成されている。なお、現在のエンジン回転速度が目標回転速度に略一致するように燃料噴射量をフィードバック制御することが望ましい。
【００５５】
［第１実施例の制御方法］
次に、本実施例のパイロット噴射量の学習制御方法を図１ないし図１６に基づいて簡単に説明する。ここで、図５はパイロット噴射量の学習制御方法を示したフローチャートである。この図５の制御ルーチンは、イグニッションスイッチがＯＮとなった後に、所定のタイミング毎に繰り返される。
【００５６】
図５の制御ルーチンに進入するタイミングになると、学習前提条件が成立しているか否かを判定する（ステップＳ１）。この判定結果がＮＯの場合には、図５の制御ルーチンを抜ける。
【００５７】
すなわち、（１）先ず、エンジン１または車両に取り付けられたエンジン１の運転状態を検出できる各種センサ、スイッチからの信号によりエンジン１の燃焼状態がアイドル安定状態であるか否かを確認する。この判定結果がＮＯの場合には、図５の制御ルーチンを抜ける。なお、エンジン１の運転状態を検出できる各種センサ、スイッチとは、ギアポジション、クラッチ、スタータ、コモンレール圧センサ３０、クランク角センサ３４、アクセル開度センサ３５、アイドルアクセル位置センサ４０、ＥＧＲポジションセンサ４６、ＶＧＴポジションセンサ４７、排気温センサ４９、スロットルポジションセンサ等がある。
【００５８】
（２）次に、エンジン１または車両に取り付けられた環境条件を検出できる各種センサからの信号がエンジン１のアイドル無負荷燃費が想定値となり得るように事前に定められた範囲内にあるか否かを確認する。なお、環境条件を検出できる各種センサとしては、燃料温度センサ３６、冷却水温センサ３７、燃料リーク温度センサ３８、油温センサ３９、アイドルアクセル位置センサ４０、大気圧センサ４１、大気温（外気温）センサ４２、吸入空気量センサ４３、過給圧力センサ４４、吸気温センサ４５、排気Ｏ２センサ４８、排気温センサ４９、排気圧センサ５０、スロットルポジションセンサ等がある。
【００５９】
（３）次に、エンジン１または車両に取り付けられたエンジン１の負荷状態を検出できる各種センサ、スイッチ、制御指令値からの信号によりエンジン負荷が所定の範囲内であることを確認する。これらの例としては、ラジエータ用電動ファン、電気ヒータ、ヘッドライト、電磁ブレーキ等の電気負荷を検出可能なスイッチ、センサ、エアコン、パワーステアリング等のコンプレッサ、ポンプ負荷を検出できるスイッチ、センサやアイドル回転速度変化またはアイドル回転速度を所定値に保つために必要なＩＳＣ噴射量の変化量等がある。
【００６０】
（４）最後にエンジン回転速度が安定していることを示す、噴射量指令値、ＦＣＣＢ補正量、ＩＳＣ補正量、燃料噴射圧力、噴射時期指令値等が所定の範囲内であることを確認する。上記の（１）〜（４）を全て満足し、別途規定する実施禁止条件ではない時に学習前提条件を成立（ＯＮ）とする。
【００６１】
例えば、図６に示したように、学習温度条件成立（例えばエンジン冷却水温の場合は６０〜９０℃の範囲内が成立条件）、アイドル安定状態成立（例えばギアポジションがニュートラル（Ｎ）に設定されていると成立）、車速条件成立（例えばＳＰＤ＝０ｋｍ／ｈ以下が成立条件）、アクセル開度が全閉状態（例えばＡＣＣＰ＝０％以下が成立条件）、アイドル回転速度安定状態（例えばＮＥ＝１０００ｒｐｍ以下が成立条件）、エンジン回転速度条件成立（例えばＮＥ＝１０００ｒｐｍ以下が成立条件）、燃料噴射圧力条件成立（例えばＰｃ＝１００ＭＰａ以下が成立条件）、指令噴射量条件成立（例えばＱＦＩＮ＝５ｍｍ３／ｓｔ＝無負荷燃費以下が成立条件）、大気圧条件成立（例えば高地は不成立）、吸入空気量学習条件非成立時、ＩＳＣ補正量安定（ＩＳＣ補正量にハンチングが起きていると不成立）、学習値正常範囲内の時は成立、仮学習終了前は成立、エンジン安定（エンジン負荷変動が無く、エンジン回転速度が安定状態で成立）、サービスツール用学習正常終了前、エアコンスイッチをＯＦＦ、ラジエータ用電動ファンのリレーをＯＦＦ、ヘッドライト等の電気負荷（エンジン負荷）が無し、時間連続経過の全ての条件が成立している時に、学習前提条件が成立（ＯＮ）となる。また、図６の条件以外の時に学習前提条件が不成立（ＯＦＦ）となる。
また、ステップＳ１の判定結果がＹＥＳの場合、つまり学習前提条件が成立（ＯＮ）の場合には、学習実行条件が成立しているか否かを判定する（ステップＳ２）。この判定結果がＮＯの場合には、図５の制御ルーチンを抜ける。
【００６２】
例えば、図７に示したように、エンジン１の運転時間、イグニッションスイッチのオフ（ＩＧ・ＯＦＦ）回数、車両走行距離、エンジン運転時間を検出または算出し、またはそれに負荷（燃料噴射圧力・エンジン回転速度・噴射量・噴射回数等）の重み付けを行ない、その値が所定値を越えた場合に学習実行条件を成立（ＯＮ）させる。あるいは、上記のステップＳ１の成立時の第１噴射量補正量（ＦＣＣＢ補正量）、第２噴射量補正量（ＩＳＣ補正量）、もしくはエンジン回転速度変化量、回転速度変動量が所定値を越えた場合にも、学習実行条件を成立（ＯＮ）させる。あるいは外部からの信号により学習実行条件を強制的に成立（ＯＮ）させることも可能である。
【００６３】
あるいは、噴射量経時変化等によるインジェクタ４の性能（機能）の劣化量が所定値以上か否かを判定する噴射量経時変化判定時、スタータ通電フラグ（ＸＳＴＡ）がＯＮからＯＦＦとなった時点から所定時間が経過している時（エンジン始動後に所定時間が経過している時）、パイロット学習要求（ライン用）時またはパイロット学習要求（市場サービス用）時または誤学習判定時、学習実行前提条件成立、コモンレール式燃料噴射システムの正常運転時、手動学習実行の条件が成立している時に、学習実行条件を成立（ＯＮ）させても良い。なお、図７の条件以外の時に学習実行条件が不成立（ＯＦＦ）となる。
【００６４】
また、ステップＳ２の判定結果がＹＥＳの場合、つまり学習実行条件が成立（ＯＮ）の場合には、エンジン１の燃焼状態を安定させるために、図８に示したように、特定気筒の１燃焼行程中の噴射回数をｎ回（本例ではアイドル運転時のトータル噴射量が５ｍｍ３／ｓｔであり、噴射回数を５回にセットすると、パイロット噴射量が１ｍｍ３／ｓｔとなる）にセットすると共に、エンジン１のアイドル安定目標回転速度、過給圧目標値、ＳＣＶ２１の弁開度、スロットルバルブ（吸気絞り弁）１９の弁開度、ＥＧＲ目標値、燃料噴射圧力（Ｐｆｉｎ）、ｎ回噴射の各噴射タイミング（または各パイロット噴射間のインターバル）等の各制御指令値を固定する（均等分割噴射実施手段：ステップＳ３）。
【００６５】
次に、ｎ回噴射が均等にｎ分割される噴射量指令値を算出する。この噴射量指令値は、図９および下記の数１の式に示したように、エンジン回転速度（ＮＥ）とアクセル開度（ＡＣＣＰ）との関係を予め実験により測定して作成した特性マップ（図２参照）または演算式から算出される基本噴射量に対し、冷却水温や燃料温度等の各種補正を加えた通常アイドル運転で噴射量制御に用いる無負荷燃費（Ｑｉｄｌｅ）の１／ｎの噴射量指令値（学習制御時噴射量）を算出する（噴射量決定手段）。そして、無負荷燃費（Ｑｉｄｌｅ）の１／ｎの噴射量指令値であるＱｉｄｌｅ／ｎをベースとし、各噴射間のインターバルの影響、各噴射の開始時期（タイミング）による気筒内圧の影響、燃料噴射圧力の影響等を考慮し、図１０に示したように、ｎ回噴射が実際に等量の噴射量となるように各噴射量指令値（ＱＰＬ１＝ＱＰＬ２＝ＱＰＬ３＝Ｑｍａｉｎ＝Ｑｆｕｐ＝ｔｏｔａｌＱ／ｎ）を補正する（均等分割噴射量補正手段：ステップＳ４）。
【００６６】
［数１］
パイロット噴射量＝Ｑｉｄｌｅ／ｎ＋ＱＰＬＣＰＱ＋ＱＩＮＴ
＋前回学習値×補正
但し、Ｑｉｄｌｅはエンジン回転速度（ＮＥ）とアクセル開度（ＡＣＣＰ）と基本噴射量との関係を予め実験等により測定して作成した特性マップまたは演算式より算出される適合値で、ＱＰＬＣＰＱは気筒内圧補正係数で、ＱＩＮＴはインターバル依存性補正係数である。ここで、ＱＰＬＣＰＱおよびＱＩＮＴは噴射量補正値ではなく、ＴＱパルスの補正値であっても良い。
【００６７】
次に、図１１に示したように、エンジン１の各気筒間の回転速度変動量差（ΔＮＥまたはΔＴ）に応じて、各気筒の燃料噴射量を増減する回転速度変動気筒間補正（回転速度変動気筒間噴射量補正、気筒間回転変動補正：以下ＦＣＣＢ補正と言う）により、各気筒間の回転速度変動が平滑化するように、各気筒毎の各噴射の無負荷燃費／ｎの噴射量指令値に、各気筒間の回転速度変動を平滑化する方向への第１噴射量補正量（ＦＣＣＢ補正量：ΔＱｃ）をそれぞれ付加する（均等分割噴射量補正手段、第１補正量算出手段：ステップＳ５）。このとき、各気筒毎の各噴射のＦＣＣＢ補正量は、ｎ等分しｎ回の各噴射の無負荷燃費／ｎの噴射量指令値（ｔｏｔａｌＱ／ｎ）＝（Ｑｉｄｌｅ／ｎ）にそれぞれΔＱｃ／ｎずつ反映させる。
【００６８】
次に、同じく、図１１に示したように、各気筒毎の平均エンジン回転速度を目標回転速度に合わせるために、全気筒一律に平均エンジン回転速度補正（平均回転数補正：以下ＩＳＣ補正と言う）を行ない、各気筒毎の各噴射のＦＣＣＢ補正量（ΔＱｃ／ｎ）に、目標回転速度に合わせるための第２噴射量補正量（ＩＳＣ補正量：ＱＩＳＣ）を全気筒一律に付加する（均等分割噴射量補正手段、第２補正量算出手段：ステップＳ６）。このとき、ＩＳＣ補正量は、ｎ等分しｎ回の各噴射の無負荷燃費／ｎの噴射量指令値（Ｑｉｄｌｅ／ｎ）と各気筒毎の各噴射のＦＣＣＢ補正量（ΔＱｃ／ｎ）の和にＱＩＳＣ／ｎを各気筒毎に反映させる。また、ＩＳＣ補正は、例えば５０〜７０ｍｓｅｃ間隔で１ｍｍ３／ｓｔずつ全気筒に一律に付加して所定時間またはＩＳＣ補正量（ＱＩＳＣ）が安定（平均エンジン回転速度が目標回転速度に略一致）するまで継続して実行される。
【００６９】
次に、図１２に示したように、エアコンやパワーステアリング等のエンジン負荷変動を検出できる各種センサ、スイッチからの信号およびＩＳＣ補正量の積算量により、学習制御実施中のエンジン負荷変動量が負荷変動判定値（所定値）を越えていないか否かを判定する（ステップＳ７）。この判定結果がＮＯの場合、つまりエンジン負荷変動量が負荷変動判定値を越えている場合には、誤学習を防止するために、パイロット噴射量の学習制御を中断して、図５の制御ルーチンを抜ける。
【００７０】
また、ステップＳ７の判定結果がＹＥＳの場合、つまりエンジン負荷変動量が負荷変動判定値まで到達していないと判断した場合には、エンジンが安定して運転されているか否かを判定する。すなわち、図１３に示したように、パイロット学習実行時であるか否か、更に、ＩＳＣ補正量の変化量、あるいはＦＣＣＢ補正量の変化量、あるいは燃料噴射圧力の変動量、あるいはエンジン１の回転速度変動量がそれぞれ所定値内であるか否かを判定する（ステップＳ８）。この判定結果がＮＯの場合、つまりエンジン１が安定して運転されていないと判断した場合には、パイロット噴射量の学習制御を中止して、図５の制御ルーチンを抜ける。
【００７１】
また、ステップＳ８の判定結果がＹＥＳの場合、つまりエンジン１が安定して運転されていると判断した場合には、図１４に示したように、今回学習値を算出する。この今回学習値は、ステップＳ５の各噴射のＦＣＣＢ補正量（ΔＱｃ／ｎ）とステップＳ６の各噴射のＩＳＣ補正量（ＱＩＳＣ／ｎ）により下記の数２の式で表わされ、各気筒毎に算出する（ステップＳ９）。
【００７２】
［数２］
今回学習値＝ΔＱｃ／ｎ＋ＱＩＳＣ／ｎ＋前回学習値
なお、今回学習値は各噴射の無負荷燃費／ｎの噴射量指令値（ｔｏｔａｌＱ／ｎ）に加算する噴射量補正量として算出される。
【００７３】
次に、ステップＳ９にて算出された今回学習値の水準判定（学習値ガード判定）を行ない、今回学習値の水準を管理する。つまり、ステップＳ９にて算出された今回学習値の過学習または誤学習を防ぐために、図１５に示したように、学習初期値から今回学習値までのトータル学習量が所定値を越えているか否かを判定すると共に、前回学習値と今回学習値との差（学習制御１回当たりの変更可能量）が学習値正常範囲内であるか否かを判定する（ステップＳ１０）。この判定結果がＮＯの場合、つまり今回学習値が異常値であると判断した場合には、その学習は無効とし、図５の制御ルーチンを抜ける。
【００７４】
次に、１水準の燃料噴射圧力での学習が終了したら、設定された別の圧力に燃料噴射圧力を変更し、ステップＳ３から再度学習を繰り返す。設定する圧力水準は任意に設定可能である（ステップＳ１１）。次に、設定された圧力水準での学習が終了したら、順次学習値を図１６の形式のマップに書き込み、メモリに記憶（バックアップ）する（学習値記憶手段：ステップＳ１２）。次に、格納された学習値を噴射量補正量として、下記の数３の式に基づくパイロット噴射量の算出時に反映させる。なお、学習制御で使用した燃料噴射圧力以外の燃料噴射圧力に関しては補完を行ない、エンジン１の使用領域全域で噴射量補正量の反映を可能にする（ステップＳ１３）。
【００７５】
［数３］
パイロット噴射量＝（ＱＰＬＢ＋ＱＩＳＣ×ＫＩＳＣ）×ＱＫＴＨＦ
＋ＱＦＣＣＢ×ＫＦＣＣＢ＋学習値×ＱＫＰＣ×ＱＫＮＥ
＋ＱＰＬＣＰＱ＋ＱＩＮＴ
但し、ＱＰＬＢは適合値（エンジン回転速度（ＮＥ）とアクセル開度（ＡＣＣＰ）と基本噴射量との関係を予め実験等により測定して作成した特性マップより算出）で、ＱＩＳＣはＩＳＣ補正量で、ＫＩＳＣはＩＳＣ補正量反映係数で、ＱＫＴＨＦは燃料温度補正係数で、ＱＦＣＣＢはＦＣＣＢ補正量で、ＫＦＣＣＢはＦＣＣＢ補正量反映係数で、ＱＫＰＣは学習値圧力感度補正係数で、ＱＫＮＥは学習値エンジン回転速度感度補正係数で、ＱＰＬＣＰＱは気筒内圧補正係数で、ＱＩＮＴはインターバル依存性補正係数である。学習値は、メモリに記憶された図１６のマップから算出する。学習制御で使用した燃料噴射圧力以外は補完にて算出する。ここで、ＱＰＬＣＰＱおよびＱＩＮＴは噴射量補正値ではなく、ＴＱパルスの補正値であっても良い。
【００７６】
ここで、アイドル運転（低負荷低回転域）でのアイドル時噴射量（無負荷燃費）はエンジン回転速度、吸排気（ＥＧＲ・過給圧）等の環境条件を安定させることにより、ほぼ一定値になることが分かっている。したがって、アイドル運転（低負荷低回転域）でそのような状態の時に、公知の技術であるＩＳＣ補正、ＦＣＣＢ補正を実施することにより、平均エンジン回転速度が目標エンジン回転速度で安定し、且つ気筒間の回転速度変動量のバラツキが所定値以内の場合には、各気筒の噴射量はほぼ正確に無負荷燃費に一致する。そのときに、正確に１噴射をｎ等分に均等分割噴射を行ない、ＩＳＣ補正、ＦＣＣＢ補正を実施すれば正確にアイドル制御時噴射量／ｎ＝無負荷燃費／ｎの噴射量を噴射するための噴射量指令値を求めることができる。
【００７７】
例えば、アイドル制御時噴射量＝無負荷燃費＝５ｍｍ３／ｓｔの時に、噴射回数を５回にセットすれば５／５＝１ｍｍ３／ｓｔとなる。また、アイドル制御時噴射量＝無負荷燃費＝６ｍｍ３／ｓｔの時に、噴射回数を６回にセットすれば６／６＝１ｍｍ３／ｓｔとなり、噴射回数を２回にセットすれば６／２＝３ｍｍ３／ｓｔとなるので、正確に無負荷燃費／ｎの噴射量を噴射するための噴射量指令値（＝ＴＱパルスのズレ）を求めることができる。特に、インジェクタ単品でも保証が難しい高噴射圧力、低噴射量（１ｍｍ３／ｓｔ）もエンジン運転時にＴＱパルスのズレを求めることで正確に補正ができるようになる。
【００７８】
［第１実施例の効果］
以上のように、本実施例のコモンレール式燃料噴射システムにおいては、従来の方法がアイドル運転での燃料噴射圧力に限定した補正であったものに対し、アイドル運転（低負荷低回転域）での燃料噴射圧力を複数の異なる燃料噴射圧力水準に変更し、複数の異なる燃料噴射圧力水準でインジェクタ４の指令噴射パルス時間（ＴＱパルス時間）に対する実際の噴射量のズレや噴射量経時変化に対応した噴射量補正量を、無負荷燃費に相当する学習制御時噴射量を均等にｎ回に分割し、このｎ回の分割噴射を行ないながら、ＦＣＣＢ補正およびＩＳＣ補正を実施することで各気筒毎に算出するようにしている。
【００７９】
具体的には、上記の数２の式に示したように、各噴射のＦＣＣＢ補正量（ΔＱｃ／ｎ）と各噴射のＩＳＣ補正量（ＱＩＳＣ／ｎ）とを加算した値を各気筒毎の学習値として算出するようにしている。なお、この学習値は、上述したように、各噴射の無負荷燃費／ｎの噴射量指令値（ｔｏｔａｌＱ／ｎ）に加算する各気筒毎の噴射量補正量として算出される。そして、各気筒毎の噴射量補正量を学習値として更新しメモリに記憶している。
【００８０】
また、複数の異なる燃料噴射圧力水準以外の燃料噴射圧力に関しては補完を行なうことにより、学習制御時の燃料噴射圧力以外の燃料噴射圧力水準を含め実車における燃料噴射圧力の使用領域全域で、メモリに記憶された学習値を噴射量補正値としてパイロット噴射量の算出に反映させることができる。これにより、常に、理想的な指令噴射パルス時間とパイロット噴射量との相関が得られるようになる。
【００８１】
また、上記の学習補正によってトータルの学習量が所定値以上であったり、前回学習値と今回学習値との差が所定範囲外であったりした場合には、ＴＱパルス時間に対して所定値以上の噴射量のバラツキがあることを検出できるので、インジェクタ単品個々の故障も検出できる。また、以上のことから、インジェクタ単品でも保証が難しい高噴射圧力で、且つ指令噴射量（パイロット噴射量）が微少噴射量の場合でも、エンジン運転時に、インジェクタ４の噴射指令パルス時間（ＴＱパルス時間）に対する実際の噴射量のズレ量やインジェクタ４の噴射量経時劣化量を定量的に把握して、精度良く噴射量補正を実施することができる。また、算出した学習値を、指令噴射量（パイロット噴射量）に対する噴射量の学習値とすることで、学習制御時と異なる燃料噴射圧力（コモンレール圧）、噴射量においても、学習値を含めてインジェクタ４の噴射指令パルス時間（ＴＱパルス時間）の算出を行なうようにしているため、燃料噴射直前での燃料噴射圧力の読み込み等、燃料噴射圧力、噴射量に対する高感度の補正を自動的に行なうことができる。
【００８２】
［第２実施例］
図１７は本発明の第２実施例を示したもので、パイロット噴射量の学習制御方法を示したフローチャートである。なお、図５の制御ルーチンと同様な処理には同番号を付し、説明を省略する。
【００８３】
ここで、第１実施例に示したように、ＩＳＣ補正およびＦＣＣＢ補正を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時劣化量（インジェクタ経時機能劣化量）に応じた噴射量補正を行なう場合、ＩＳＣ補正量とＦＣＣＢ補正量の和をパイロット噴射量とメイン噴射量のトータルの噴射量（アイドル時噴射量＝無負荷燃費＝５ｍｍ３／ｓｔ（通常））により案分する方式で学習値が算出される。このため、学習制御中に、エアコンＯＮ等の電気負荷やパワーステアリングＯＮ等の駆動負荷等のエンジン負荷が変化した場合、アイドル運転時の要求噴射量（アイドル時噴射量）に、エンジン負荷要因によるエンジン要求噴射量の増量分を含んだ形で、学習値（＝ＱＩＳＣ／ｎ＋ΔＱｃ／ｎ＋前回学習値）を誤学習してしまうという問題がある。
【００８４】
そこで、本実施例では、エンジン負荷等によるエンジン要求噴射量の変化は、ＩＳＣ補正量やＦＣＣＢ補正量に含まれていることに着目し、各種スイッチや各種センサからの信号に基づき可変であるエンジン要求噴射量変化オフセットを設け、ＩＳＣ補正量とＦＣＣＢ補正量の和からエンジン要求噴射量の変化量を減算または加算することで、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化（インジェクタ経時機能劣化）に対応した噴射量補正量としての学習値からエンジン要求噴射量の変化量の影響を除外することができる。
【００８５】
具体的には、図１７の制御ルーチンに示したように、ステップＳ５のＦＣＣＢ補正を実施し、ステップＳ６のＩＳＣ補正を実施した後に、エンジン燃焼状態変化やエンジン負荷変動（例えばエアコンのＯＮ／ＯＦＦやパワーステアリングの作動時／非作動時）によるエンジン要求噴射量補正量（ＱＮＬｏｆｆｓｅｔ）を算出する（ステップＳ１４）。その後に、ステップＳ７の処理に進む。
【００８６】
次に、エンジン要求噴射量補正量の算出方法を以下に述べる。アイドル安定状態にて無負荷要求噴射量＝無負荷燃費（Ｑｉｄｌｅ）がＡｍｍ３／ｓｔのエンジン１において１噴射をＫ回均等に分割噴射している場合を考えると、ＴＱパルス時間に対するインジェクタ４の噴射量のバラツキやインジェクタ４の経時機能劣化がなければ、噴射量指令値Ａであれば実際の噴射量もＡｍｍ３／ｓｔである。
【００８７】
［数４］
ａ１＋ａ２＋…＋ａＫ＝Ａ
但し、ａ１、ａ２…ａＫはＫ回分割噴射の各噴射量指令値で、Ａは無負荷要求噴射量＝トータル噴射量（ｔｏｔａｌＱ）の噴射量指令値である。
【００８８】
特定気筒（例えば＃１気筒）のインジェクタ４の噴射指令パルス時間（ＴＱ）に対して噴射量のバラツキＱ１が存在する場合、噴射指令値Ａでも実際の噴射量はＡ−Ｑ１しか噴射できない。その上、例えばエアコンやパワーステアリング等のエンジン負荷がＱ２相当分かかったとする。
【００８９】
［数５］
ａ１＋ａ２＋…＋ａＫ＝実際の噴射量Ａ−（Ｑ１×Ｋ）＋Ｑ２
となる。
【００９０】
また、平均エンジン回転速度補正（ＩＳＣ補正）および回転速度変動気筒間補正（ＦＣＣＢ補正）を行なうと、
［数６］
ａ１＋ａ２＋…＋ａＫ＋（ＱＩＳＣ＋ＱＦＣＣＢ）＝実際の噴射量Ａ＋Ｑ２
となり、
［数７］
（ＱＩＳＣ＋ＱＦＣＣＢ）＝Ｑ１×Ｋ＋Ｑ２
となる。
【００９１】
ここで、エンジン負荷変動等によるエンジン要求噴射量補正量（ＱＮＬｏｆｆｓｅｔ）を設定すると、補正学習すべき量は、
［数８］
ＱＩＳＣ＋ＱＦＣＣＢ＋ＱＮＬｏｆｆｓｅｔ＝Ｑ１×Ｋ＋Ｑ２
をＫ回に案分されたものが学習補正量となる。
エンジン負荷変動等によるエンジン要求噴射量補正量（ＱＮＬｏｆｆｓｅｔ）は可変定数であり、エンジン搭載車両に取り付けられた各種スイッチからの信号、各種センサからの信号、およびエンジン負荷検出ロジック等により算出される。したがって、この場合には、ＱＮＬｏｆｆｓｅｔ≒Ｑ２が算出され、結果として
［数９］
ＱＩＳＣ＋ＱＦＣＣＢ＋ＱＮＬｏｆｆｓｅｔ（≒Ｑ２）＝Ｑ１×Ｋ＋Ｑ２
［数１０］
Ｑ１＝（ＱＩＳＣ＋ＱＦＣＣＢ）／Ｋ
となり、正しくＴＱパルス時間に対する実際の噴射量のバラツキ、噴射量経時劣化に対応した噴射量補正量であるＱ１を算出することが可能となる。
【００９２】
［第３実施例］
図１８ないし図２０は本発明の第３実施例を示したもので、図１８はインジェクタの噴射指令パルス時間（ＴＱパルス時間）に対する指令噴射量（Ｑ）の関係を示した特性図である。
【００９３】
ここで、学習値に対する誤補正防止のための補正係数を考慮する場合、ＴＱ−Ｑ特性による補正係数をＱＰＬＰＣＱ、エンジン回転速度による補正係数をＱＰＬＮＥと設定すると、ＴＱ−Ｑ特性は、図１８のように示すことができる。この図１８から、傾きが小さい領域で学習した場合、学習制御時よりも大きな噴射量で使用する時、特性の違いから学習値に対する補正が必要となってくる。そのＴＱ−Ｑ特性のズレを考慮するため、図１９に示したように、燃料噴射圧力（Ｐｃ）と指令噴射量（Ｑ）の２次元マップにより補正係数（ＱＰＬＰＣＱ）を求める。
【００９４】
また、前記補正係数を求めるに際し、例えば温度条件等３次元マップにより補正係数を求めることもできる。通常、コモンレール式燃料噴射システムにおいては噴射量制御には回転依存性を考慮していないが、僅かながら回転依存性があることが知られている。そのため、上記と同様に、エンジン回転速度依存性（回転依存性）については、図２０に示したように、エンジン回転速度（ＮＥ）に対する１次元マップより、補正係数（ＱＰＬＮＥ）を求める。ここで、上記の補正係数（ＱＰＬＰＣＱ）と補正係数（ＱＰＬＮＥ）とから、１回噴射に対する学習補正量を算出すると、
［数１１］
学習補正量＝ＱＰＬＰＣＱ×ＱＰＬＮＥ
となり、噴射系（ＴＱ−Ｑ）特性や回転依存性等を考慮し、領域毎に正しい学習補正量を持つことが可能となる。
【００９５】
以上により、平均エンジン回転速度補正（ＩＳＣ補正）および回転速度変動気筒間補正（ＦＣＣＢ補正）を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時劣化量（インジェクタ経時機能劣化量）の補正を行なう場合、ＩＳＣ補正量とＦＣＣＢ補正量の和をパイロット噴射量とメイン噴射量のトータルの噴射量により案分する方式で学習値が算出される。
【００９６】
学習制御時以外の領域に学習値を反映する場合において、その噴射量、燃料噴射圧力、エンジン回転速度の影響により学習値そのものでは誤補正、過補正となり得る場合があるという問題があったが、その算出した学習値に噴射系（ＴＱ−Ｑ）特性や回転依存性等を考慮した補正係数を持つことで、誤補正による過剰な噴射量補正による燃焼騒音、エンジン振動、エミッション等の悪化を防止することができる。また、適正な学習値をパイロット噴射量の算出に反映させることができる。
【００９７】
［第４実施例］
図２１ないし図２４は本発明の第４実施例を示したもので、図２１は補正頻度を走行距離に応じて設定するための補正頻度設定方法を示したフローチャートである。
【００９８】
ここで、第１実施例に示したように、ＩＳＣ補正およびＦＣＣＢ補正を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化（インジェクタ経時機能劣化）に対応した噴射量補正を行なう場合、アイドル安定状態の時に学習値を算出し、他の運転使用領域へも反映している。しかし、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化がアイドル運転時とアイドル運転以外の時との間で相関がない場合、各運転条件毎（例えば燃料噴射圧力）に学習値を算出する必要がある。
【００９９】
また、第１実施例のパイロット噴射量の学習制御では、一定の補正頻度（例えば走行距離）にて学習値を算出する構成を採用しているが、例えば噴射量経時劣化量が時間に対し一定でない特性のインジェクタ４の場合、補正頻度が小さ過ぎると噴射量経時変化を補正できくなり、補正頻度が大き過ぎると学習値の算出時の異常挙動（燃料噴射圧力が高くなることによる燃焼騒音の増加等）が頻繁に起こるという問題がある。
【０１００】
上記の問題に対し、インジェクタ４の経時変化特性等に合わせて学習補正量の算出頻度を設定できるような構成とすることで、最適な学習補正頻度を得ることができる。例えば走行距離で学習補正頻度を決定する場合、トータル走行距離に応じて学習補正を行なう走行距離（前回学習値算出後の走行距離）を変更する。
【０１０１】
１）トータル走行距離＜Ｋ１時には、学習補正実行距離＝Ｋ２
２）トータル走行距離≧Ｋ１時には、学習補正実行距離＝Ｋ３
但し、Ｋ１は学習補正頻度切替走行距離（例えば１００００ｋｍ）で、Ｋ２は学習補正頻度１（例えば１０００ｋｍ）で、Ｋ３は学習補正頻度２（例えば５０００ｋｍ）である。
【０１０２】
図２１の制御ルーチンに進入するタイミングになると、学習実行条件（アイドル安定、車速＝０、環境条件範囲内等、安定して学習補正を実行するための条件）が成立しているか否かを判定する（ステップＳ２１）。この判定結果がＮＯの場合、つまり学習実行条件が不成立の場合には、図２１の制御ルーチンを抜ける。また、ステップＳ２１の判定結果がＹＥＳの場合、つまり学習実行条件が成立している場合には、トータル走行距離がＫ１未満であるか否かを判定する（ステップＳ２２）。なお、本実施例では、Ｋ１の値を例えば１００００ｋｍに設定しているが、インジェクタ４の経時変化特性に合わせて学習補正頻度を切り替えるべき値に設定する。
【０１０３】
そのステップＳ２２の判定結果がＮＯの場合、つまりトータル走行距離がＫ１以上である場合には、前回学習補正後の走行距離がＫ３を越えているか否かを判定する（ステップＳ２３）。この判定結果がＹＥＳの場合には、ステップＳ２５に進み、学習値の算出を行う。また、ステップＳ２３の判定結果がＮＯの場合には、図２１の制御ルーチンを抜ける。また、ステップＳ２２の判定結果がＹＥＳの場合、つまりトータル走行距離がＫ１未満である場合には、前回学習補正後の走行距離がＫ２を越えているか否かを判定する（ステップＳ２４）。この判定結果がＮＯの場合には、図２１の制御ルーチンを抜ける。また、ステップＳ２３の判定結果がＹＥＳの場合、あるいはステップＳ２４の判定結果がＹＥＳの場合には、例えば図５または図１７の制御ルーチンのステップＳ３からステップＳ１２までの処理を実施して、今回の学習値の算出を行なう（ステップＳ２５）。次に、今回の学習値を算出したら、学習補正後の走行距離をクリアし（ステップＳ２６）、図２１の制御ルーチンを抜けて終了する。
【０１０４】
以上のように、Ｋ２、Ｋ３にて２段階の学習補正頻度を噴射量経時変化等の特性に合わせて補正を行なうべき頻度に設定する。この設定イメージを図２２および図２３に示す。したがって、インジェクタ４の経時変化特性等に合わせて学習補正量の算出頻度を設定できるような構成とすることで、最適な学習補正頻度を得ることができる。なお、本実施例では、学習補正頻度を走行距離にて設定しているが、噴射量経時変化等の特性と相関のとれる要素（例えば運転時間）であれば、同様に実施可能である。また、学習補正頻度の切り替え方法として定数による２段階の切り替えとしたが、図２４に示したように、トータル走行距離に対し、演算式やマップ等により連続的に学習補正頻度を設定すれば、更に最適な頻度に設定することができる。
【０１０５】
［第５実施例］
図２５ないし図２８は本発明の第５実施例を示したもので、図２５および図２６は誤学習または過学習防止方法を示したフローチャートである。
【０１０６】
ここで、第１実施例に示したように、ＩＳＣ補正およびＦＣＣＢ補正を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化（インジェクタ経時機能劣化）に対応した噴射量の補正を行なう場合、学習値を算出する際にＩＳＣ補正やＦＣＣＢ補正によって求められた学習値を単純にパイロット噴射量に反映させると、例えば電気負荷の作動等により燃料消費量が増加している状態や、燃焼不安定な状態で学習値を算出すると、誤学習となり、パイロット噴射量が消失したり、異常に増加したりすることになり、十分なエンジン性能が得られないという問題がある。そこで、算出された学習値の絶対値および前回学習値からの変化量により正常値であるか異常値であるかを判定し、学習値が異常値である場合、再学習を指令したり、正常範囲値でガードすることによって誤学習を防止し、最適なエンジン性能を得ることを目的として、以下の制御ルーチンを実施する。
【０１０７】
図２５の制御ルーチンに進入するタイミングになると、学習値算出頻度が成立しており、アイドル安定状態（無負荷燃費状態）で、且つエンジン安定状態等の学習実行条件が成立しているか否かを判定する（ステップＳ３１）。この判定結果がＮＯの場合には、図２５の制御ルーチンを抜ける。また、ステップＳ３１の判定結果がＹＥＳの場合、つまり学習実行条件が成立している場合には、学習値算出用噴射、燃焼パターン（５分割噴射、ＥＧＲカット等）を実行する（ステップＳ３２）。
【０１０８】
次に、第１実施例と同様にして、ＩＳＣ補正量およびＦＣＣＢ補正量が安定するまで、平均エンジン回転速度補正（ＩＳＣ補正）および回転速度変動気筒間補正（ＦＣＣＢ補正）を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時劣化量（インジェクタ経時機能劣化量）の学習補正を行なう（ステップＳ３３）。この判定結果がＹＥＳの場合には、学習値算出気筒Ｎｏ（ｉ）＝１をセットする（ステップＳ３４）。次に、全気筒が終了したか否かを判定する（ステップＳ３５）。この判定結果がＹＥＳの場合には、図２５の制御ルーチンを抜ける。
【０１０９】
また、ステップＳ３５の判定結果がＮＯの場合には、仮学習値変化量（ＱＰＧＤ）を算出する。ここで、仮学習値変化量とは、現状の学習値に対する変化量であり、前回学習値の算出後に噴射量経時劣化量となる（ステップＳ３６）。次に、仮学習値変化量（ＱＰＧＤ）に現状の学習値（ＱＰＧＦ：前回算出した学習値）を加算し、今回の仮学習値（ＱＰＧ）を算出する（ステップＳ３７）。次に、図２６の制御ルーチンに進み、仮学習値変化量（ＱＰＧＤ）から変化量が正常であるか否かを判定する。すなわち、ＱＰＧＤ≧Ｋ１ｏｒＱＰＧＤ≦Ｋ２であるか否かを判定する（ステップＳ３８）。
【０１１０】
この判定結果がＹＥＳの場合、つまり仮学習値変化量ＱＰＧＤが減量側最大変化量Ｋ１よりも大きく、増量側最大変化量Ｋ２よりも小さければ、正常と判断して、ステップＳ４０に進む。ここでのＫ１、Ｋ２とは、例えば学習値の算出を行う学習補正頻度（例えば１００００ｋｍ毎）に対する噴射量経時変化パターンより噴射量のバラツキを含めた最大変化量を設定することで、電気負荷等の作動による異常な噴射量変化を防止することが可能な値を設定できる。この設定イメージを図２７に示す。また、ステップＳ３８の判定結果がＮＯの場合、つまり異常と判断された場合には、最大の変化量範囲内でガードした値をＱＰＧとする（ステップＳ３９）。その後にステップＳ４０に進む。図２８に示した変化量ガードを行う意図は、想定していたバラツキ異常の噴射量経時変化が発生した場合でも、正常範囲内までは学習補正を行うためである。しかし、誤学習の可能性を最小限にするには、ガードをかけずに今回の学習値の噴射量への反映を行わず、前回学習値のままとするようにしても良い。
【０１１１】
次に、今回の仮学習値ＱＰＧから学習値の絶対値が正常であるか否かを判定する。すなわち、ＱＰＧ≧Ｋ３ｏｒＱＰＧ≦Ｋ４であるか否かを判定する（ステップＳ４０）。この判定結果がＹＥＳの場合、今回の仮学習値ＱＰＧが最小値Ｋ３よりも大きく、最大値Ｋ４よりも小さければ、正常と判断して、仮学習値（ＱＰＧ）を最終学習値（ＱＰＧＦ）とする（ステップＳ４１）。また、ステップＳ４０の判定結果がＮＯの場合、正常と判断されなかった場合には、仮学習値（ＱＰＧ）をＫ３、Ｋ４にてガードした値を最終学習値（ＱＰＧＦ）とする（ステップＳ４２）。ここでも、変化量での判定と同じく、今回の学習値の噴射量への反映を行わず、前回学習値のままとするようにしても良い。
【０１１２】
ステップＳ４１またはステップＳ４２が終了したら、気筒Ｎｏｉをカウントアップし（ステップＳ４３）、ステップＳ３５以下の処理を実行することで、次の気筒の最終学習値（ＱＰＧＦ）を同様に算出し、最終気筒の算出が完了したら、処理を終了する。なお、本実施例以外にも下記のような方法を用いても良い。本実施例では、各気筒毎に算出した学習値の異常を判断し、処理を行っているが、単気筒でも異常があった場合、全気筒の学習値を反映することなく、前回学習値のままとしても良い。また、その場合は学習値算出未完了とし、直ぐに再学習を実施するようにしても良い。
【０１１３】
本実施例では、異常時の処理として学習値のガードや噴射量への反映を行わないようにしているが、数回連続で異常判定が続いた場合、インジェクタ４が異常状態（開弁異常または閉弁異常）である可能性が高いため、ウォーニングランプ等により異常を通知し、インジェクタ４の交換を促すようにしても良い。その場合、異常の判定値を数段階に分けても良い。また、本実施例では、仮学習値（ＱＰＧ）の変化量、絶対値の２段階で異常判定しているが、片方だけでも良い。また、本実施例では、異常判定値Ｋ１〜Ｋ４を固定値として用いているが、第４実施例に示したように、噴射量の経時変化特性に合わせた可変値としても良い。例えば走行距離に対する演算式や１次元マップから求めるようにしても良い。
【０１１４】
［第６実施例］
図２９および図３０は本発明の第６実施例を示したもので、図２９はパイロット噴射量の学習制御方法を示したフローチャートである。
【０１１５】
ここで、第１実施例に示したように、ＩＳＣ補正およびＦＣＣＢ補正を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化（インジェクタ経時機能劣化）に対応した噴射量の補正を行なう場合、ＩＳＣ補正量とＦＣＣＢ補正量の和をパイロット噴射量とメイン噴射量のトータルの噴射量により案分する方式で学習値が算出されるため、アイドル運転時の要求噴射量（アイドル時噴射量）に、エンジン負荷要因によるエンジン要求噴射量の増量分を含んだ形で誤学習してしまうという問題がある。すなわち、インジェクタ４のバラツキ、噴射量経時劣化量が同じ場合でも、エンジン負荷要因によるエンジン要求噴射量の増量分が含まれてしまうため、本来欲しい学習値に対し、過剰な噴射量補正値をとることになる。
【０１１６】
そこで、本実施例では、学習を数回実行し、そのＮ回学習した仮学習値のうちの各燃料噴射圧力水準および各気筒毎の最小値を最終学習値とすることで、過剰な噴射量補正を防止することができる。また、エンジン負荷要因による要求噴射量の変化分が含まれた学習値がある場合、その学習値は、他の学習値に比べて異常な値をとるため、異常学習値と正常学習値の層別ができ、その異常学習値を除外した仮学習値の平均値でも良い。ここで、誤学習による過剰な噴射量補正を防止するための具体的な方法を示す。学習制御の処理手順を図２９のフローチャートに基づき説明する。
【０１１７】
図２９の制御ルーチンに進入するタイミングになると、例えば走行距離、エンジン運転時間、噴射量経時変化判定、ＩＧ・ＯＦＦ回数、アイドル安定状態等により設定される学習実行条件が成立しているか否かを判定する（ステップＳ５１）。この判定結果がＮＯの場合には、図２９の制御ルーチンを抜ける。また、ステップＳ５１の判定結果がＹＥＳの場合には、例えば図５または図１７の制御ルーチンのステップＳ３からステップＳ８までの処理を実施し（ステップＳ５２）、次に、例えば図５または図１７の制御ルーチンのステップＳ９と同様にして、学習値（学習補正値）の算出を実行する（ステップＳ５３）。
【０１１８】
次に、算出した学習補正値を仮学習値とし図３０（ａ）の形式のマップに書き込み、一時的にメモリに記憶（バックアップ）する（仮学習値記憶手段：ステップＳ５４）。次に、仮学習値の算出（バックアップ）回数がＮ回（例えば３〜５回）に達したか否かを判定する（ステップＳ５５）。この判定結果がＮＯの場合には、仮学習値の算出（バックアップ）回数がＮ回に達するまで繰り返して学習し、算出した学習補正値を仮学習値とし図３０（ａ）〜（ｃ）の形式のマップに順次書き込み、一時的にメモリに記憶する。
【０１１９】
また、ステップＳ５５の判定結果がＹＥＳの場合、つまり仮学習値の算出（バックアップ）回数がＮ回に達した場合には、Ｎ回分の仮学習値を比較し、Ｎ回分の仮学習値のうちで最小値を最終学習値とする。例えば図３０に示したように、＃１気筒の燃料噴射圧力水準が３５ＭＰａの時の仮学習値がＡ、Ｂ、Ｃの場合に、最終学習値としてＭＩＮ（Ａ，Ｂ，Ｃ）を採用する（ステップＳ５６）。次に、最終学習値が求まったら、その最終学習値をパイロット噴射量の算出に反映する（ステップＳ５７）。その後に、図２９の制御ルーチンを抜ける。
【０１２０】
本実施例は、学習制御実行中にエンジン負荷（パワーステアリング、電気負荷、エアコン等）により、エンジン要求噴射量が変化した時のことを考慮するため、学習を数回繰り返し実行させる。ここでいう繰り返しとは連続とは限らず、ある一定条件が成立したときでも良い。この繰り返し学習をさせることで、エンジン負荷要因による要求噴射量の変化分が含まれた学習値がある場合、その学習値は、他の学習値に比べて異常な値をとる。これにより、学習値が正常か異常かを識別することができ、誤学習による過剰な噴射量補正による燃焼騒音、エンジン振動、エミッション等の悪化を防止でき、適正な学習値を噴射量に反映させることができる。
【０１２１】
また、本実施例では、誤学習または過学習を防止するために、Ｎ回の仮学習値のうちの最小値を最終学習値としてメモリに記憶し、パイロット噴射量の算出に反映させるようにしている。この理由は、エンジン負荷変動の影響が大きい程、仮学習値は増大側となるので、そのエンジン負荷変動の影響を排除するために最終学習値として３回の仮学習値の最小値を採用している。しかるに、今回の学習制御が誤学習または過学習であると判断した場合には、直ぐに１回だけ再学習（例えば図５または図１７の制御ルーチンのステップＳ３からステップＳ８までの処理を実施）し、１回の仮学習値を最終学習値としてメモリに記憶するようにしている。この理由は、上記の３回の仮学習値の最小値を最終学習値として採用するものは、図５のステップＳ１０の学習値算出水準判定処理で誤学習または過学習として判断できなかったものの中の誤学習または過学習を見つけるためのもので、図５のステップＳ１０の処理で誤学習または過学習として正確に判断できれば再学習制御後の仮学習値は必ず、正常な学習値であるからである。
【０１２２】
［第７実施例］
図３１は本発明の第７実施例を示したもので、パイロット噴射量の学習終了時間を短縮するための制御の概略を示したタイミングチャートである。
【０１２３】
ここで、第１実施例に示したように、ＩＳＣ補正およびＦＣＣＢ補正を用いて、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化（インジェクタ経時機能劣化）に対応した噴射量の補正を行なうパイロット噴射量の学習制御の場合、アイドル運転中の学習補正の途中にアクセルペダルを踏んだり、エアコンスイッチ、ヒータスイッチまたは送風ファンスイッチをＯＮしたりする等の操作が行なわれ、学習実行条件の不成立により学習中断が頻繁に起こると、いつまでもパイロット噴射量の学習補正が終了せず、上記の噴射量のバラツキや噴射量経時変化に対応した噴射量の補正が実施できないという問題がある。
【０１２４】
また、第６実施例に示したように、学習実行条件が成立したら、複数の異なる噴射圧力水準で、且つ各気筒毎の仮学習値を算出し、図３０（ａ）の形式のマップに書き込み、一時的にメモリに記憶する方式の場合、仮学習値を一時的にメモリに記憶したら、学習実行条件を一旦外れる行為、つまり学習実行条件の不成立となる行為（例えばアクセルペダルを踏んだり、所定の距離だけ車両を走行させたりする等）を行なった後に、再度次回の仮学習値を算出するようにして、今回の仮学習値と次回の仮学習値とが同じ値、つまり同じ環境条件をとらないようにすることが望ましい。この場合にも、学習実行条件を一旦外れたら、再度最初から図３０（ａ）の形式のマップに書き込む仮学習値の算出を行なうようにすると、いつまでもパイロット噴射量の学習補正が終了せず、上記の噴射量のバラツキや噴射量経時変化に対応した噴射量の補正が実施できないという問題がある。
そこで、本実施例では、インジェクタ４の噴射指令パルス時間（ＴＱパルス時間）に対する実際の噴射量のバラツキや噴射量経時変化を補正学習するロジックに対し、前回の学習補正時に学習実行条件の不成立により学習補正が中断された場合、今回の学習開始は前回の学習補正が中断した時点の学習状態から学習を開始するようにすることで、学習終了時間を短縮でき、頻繁に学習中断が行なわれた場合でも、パイロット噴射量の学習補正を終了できる。
【０１２５】
具体的には、図３１に示したように、1)時刻から学習補正が開始され、2)時刻において学習実行条件が不成立により学習補正が中断された場合、中断時点の学習値Ａをメモリに記憶しておく。その後に、3)時刻において再度学習実行条件が成立した場合、学習開始の初期値を前回学習中断時点の学習値Ａとする。その後に、4)時刻において学習実行条件が不成立により再度学習補正が中断された場合、中断時点の学習値Ｂをメモリに記憶しておく。その後に、5)時刻において再度学習実行条件が成立した場合、学習開始の初期値を前回学習中断時点の学習値Ｂとする。
【０１２６】
以上のように、学習が中断された時点の学習値を次回の学習開始時の初期値とすることで、学習終了時間を短縮することができるため、頻繁に学習が中断された場合でも、あるいは仮学習値を算出した後に次の仮学習値の算出に移る前に一旦学習実行条件を外れて学習が中断した場合でも、確実にパイロット噴射量の学習補正を終了できる。また、学習制御時の初期値をとる場合に、今回の学習開始時点のエンジン運転状態と前回の学習終了時点のエンジン運転状態とを比較して、エンジン運転状態に大きく変化があった場合は、初期値を０にリセットするように選択処理を追加したり、前回の学習終了時点の学習値に補正をして初期値とする処理を追加しても良い。
【０１２７】
［第８実施例］
図３２および図３３は本発明の第８実施例を示したもので、図３２はＩＳＣ補正量の誤補正判定方法を示したフローチャートである。
【０１２８】
ここで、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化の補正精度を向上するために、コモンレール圧として複数の異なる噴射圧力水準の補正量を算出する場合、常時噴射量補正量の算出を行なうことは、アイドル運転時に高圧噴射を実施することによる燃焼騒音の増加等が問題となるため、所定の補正頻度で噴射量補正量の算出を行なうことが望ましい。しかし、所定の補正頻度のみで噴射量補正量の算出を行なうと、想定していない急な噴射量経時変化が発生した場合や、電気負荷等がかかっている状態を検出できずに噴射量補正量の算出を行なった場合等、次の噴射量補正量の算出までの間、狙い通りのパイロット噴射量とならない状態が続き、エンジン性能が悪化することが問題となる。この問題点に対して学習制御時ではないアイドル運転時にＩＳＣ補正量から電気負荷等による誤補正を判定する方法が考えられるが、誤補正量が大きいと通常のアイドル運転時と噴射パターンが相違してしまい判定精度が低下するという問題がある。
【０１２９】
そこで、本実施例では、学習補正終了後のアイドル運転時の噴射パターンを固定することで、誤学習の判定精度の向上を図る目的で、上記のパイロット噴射量の学習制御を終了した後は、アイドル運転時に、エンジン負荷に対応した目標回転速度とアイドリング回転速度との比較結果に応じて、インジェクタ４に印加するインジェクタ駆動電流値（噴射量指令値＝インジェクタ通電期間：ＴＱパルス時間）をフィードバック制御する通常のアイドリング回転速度（ＩＳＣ）制御に移行するように構成されている。なお、アイドル回転速度を目標アイドル回転速度に維持するために、各気筒のインジェクタ４の噴射回数をＮ回（例えば５回）に固定し、且つ噴射指令値としての指令噴射量（ＱＦＩＮ）＝ｔｏｔａｌＱ＝０ｍｍ３／ｓｔが出力可能な特性マップを有している。
【０１３０】
図３２の制御ルーチンに進入するタイミングになると、エンジン回転速度が所定値（例えばＮＥ＝１０００ｒｐｍ）以下、アクセル開度が所定値（例えばＡＣＣＰ＝０％）以下、車両の走行速度（以下車速と言う）が所定値（例えばＳＰＤ＝０ｋｍ／ｈ）以下等のアイドル運転中であるか否かを判定する（ステップＳ６１）。この判定結果がＮＯの場合には、図３２の制御ルーチンを抜ける。
【０１３１】
また、ステップＳ６１の判定結果がＹＥＳの場合、つまりアイドル運転中であると判断した場合には、噴射回数をＮ回（例えば５回）に固定する（ステップＳ６２）。通常、噴射回数は最低噴射量によって制限する必要があり、例えば最低噴射量がａであった場合、ａ×４以下の噴射量の場合、４回噴射以下に噴射回数を制限しないと、最低噴射量以下で５回噴射してしまうことになる。ここでの誤学習というのは、電気負荷等によってエンジン負荷が増加した状態でパイロット噴射量を算出した場合であるため、アイドル運転でのアイドル時噴射量は増加し、噴射量指令値としては無負荷燃費よりも誤学習分小さい値となる。
したがって、通常通り噴射回数を制限してしまうと、ＩＳＣ補正量（ＱＩＳＣ）の誤補正量が大きい場合、例えば最低噴射量＝ａ、無負荷燃費＝ｂ、誤補正量＝ｃがａ＝０．５ｍｍ３／ｓｔ、ｂ＝５ｍｍ３／ｓｔ、ｃ＝３ｍｍ３／ｓｔであると、アイドル運転時の噴射量指令値はｂ−ｃとなり、最低噴射量により４回噴射に制限される。このようになると、ＩＳＣ補正量（ＱＩＳＣ）の誤補正量の影響が４／５となるため、誤学習の判定レベルが設定した値通りにならなくなる。しかし、アイドル運転時はエンジン負荷の無負荷状態に対し、必要な噴射量が減少することはないので、噴射量小による噴射回数制限を実施する必要はないため、５回の固定が可能となる。
【０１３２】
次に、ＩＳＣ補正量（ＱＩＳＣ）が０よりも小さいか否かを判定する（ステップＳ６３）。この判定結果がＹＥＳの場合、つまりＩＳＣ補正量（ＱＩＳＣ）が０よりも小さい場合には、全噴射にＩＳＣ補正量（ＱＩＳＣ）を略均等に反映する（ステップＳ６４）。また、ステップＳ６３の判定結果がＮＯの場合、つまりＩＳＣ補正量（ＱＩＳＣ）が０以上の場合には、メイン噴射のみにＩＳＣ補正量（ＱＩＳＣ）を反映する（ステップＳ６５）。次に、ＩＳＣ補正量（ＱＩＳＣ）が所定値（誤補正判定値）Ｋ２よりも小さいか否かを判定する（ステップＳ６６）。この判定結果がＮＯの場合には、図３２の制御ルーチンを抜ける。また、ステップＳ６６の判定結果がＹＥＳの場合には、再度図５の制御ルーチンに示す学習制御を実施し、再度学習値を算出する（ステップＳ６７）。その後に、図３２の制御ルーチンを抜ける。
【０１３３】
ここでの考え方は、通常エンジン負荷の増加時にパイロット噴射の噴射量が増加することを防止するため、メイン噴射のみにＩＳＣ補正を行なっているが、誤補正している場合、メイン噴射のみにＩＳＣ補正量（ＱＩＳＣ）を反映するとメイン噴射以外のパイロット噴射の実噴射量が大きいため、メイン噴射量は減少する。そうなると、誤補正量をＩＳＣ補正量で正しく判定できない可能性がある。しかし、ＱＩＳＣ＜０の場合、上記と同様の考え方でアイドル運転時の無負荷噴射量（＝無負荷燃費）が減少することはないので、エンジン負荷の増加でＩＳＣ補正量を誤補正している状態と判断できる。したがって、ＱＩＳＣ＜０の場合には全噴射略均等にＩＳＣ補正量（ＱＩＳＣ）を各噴射量の算出に反映することができる。以上の噴射回数の固定、ＩＳＣ補正量の反映方法の変更により、図３３（ａ）〜（ｃ）に示したように、ＩＳＣ補正量の誤補正後でも通常時と同様の噴射パターンでの噴射が可能となり、ＩＳＣ補正量による誤補正の判定精度を向上できる。但し、エンジン性能に問題のない場合、エンジン負荷の増加時にパイロット噴射を含む全噴射に略均等にＩＳＣ補正を行なっても、本実施例の効果を得ることができるので、そのようにしても構わない。
【０１３４】
［第９実施例］
図３４ないし図３６は本発明の第９実施例を示したもので、図３４はパイロット噴射量の学習制御方法を示したフローチャートである。
【０１３５】
ここで、ＴＱパルス時間に対する実際の噴射量のバラツキや噴射量経時変化の補正精度を向上するために、コモンレール圧として複数の異なる噴射圧力水準の補正量を算出する場合、常時補正量の算出を行なうことは、アイドル運転時に高圧噴射を実施することによる燃焼騒音の増加等が問題となるため、所定の補正頻度で学習値の算出を行なうことが望ましい。しかし、所定の補正頻度のみで補正量の算出を行なうと、想定していない急な噴射量経時変化が発生した場合や、電気負荷等がかかっている状態を検出できずに補正量の算出を行なった場合等、次の補正量の算出までの間、狙い通りのパイロット噴射量とならない状態が続き、エンジン性能が悪化することが問題となる。
【０１３６】
そこで、本実施例では、アイドル安定状態の時に、パイロット噴射量の学習制御により算出されるＦＣＣＢ補正量、ＩＳＣ補正量から噴射量経時変化や電気負荷等による誤学習を判定し、再度、ＦＣＣＢ補正量、ＩＳＣ補正量および学習値の算出を行なうことで、ＴＱパルス時間に対する実際の噴射量のズレや噴射量経時変化分のズレを学習補正し、最適なエンジン性能を得ることを目的として、学習実行条件の成立以外のアイドル安定状態時に、図３４の制御ルーチンを実行するようにしている。
【０１３７】
図３４の制御ルーチンに進入するタイミングになると、全気筒一律のＩＳＣ補正量（ＱＩＳＣまたはＱＩＳＣ／ｎ）と各気筒毎のＦＣＣＢ補正量（ΔＱｃまたはΔＱｃ／ｎ）から噴射量経時変化および誤補正を判定する。すなわち、ＩＳＣ補正量が所定値Ｋ１よりも大きいか否かを判定する。あるいはＩＳＣ補正量が所定値Ｋ２よりも小さいか否かを判定する。あるいはＦＣＣＢ補正量が所定値Ｋ３よりも大きいか否かを判定する。あるいはＦＣＣＢ補正量が所定値Ｋ４よりも小さいか否かを判定する（ステップＳ７１）。この判定結果がＮＯの場合には、図３４の制御ルーチンを抜ける。
【０１３８】
また、ステップＳ７１の判定結果がＹＥＳの場合、つまりＩＳＣ補正量が所定値Ｋ１よりも大きいか、またはＦＣＣＢ補正量がＫ３よりも大きい場合、あるいはＩＳＣ補正量が所定値Ｋ２よりも小さいか、またはＦＣＣＢ補正量がＫ４よりも小さい場合には、噴射量経時変化および誤補正であると判断して、噴射量経時変化、誤補正判定フラグをセット（ＯＮ）し（ステップＳ７２）、直ちに、図５の制御ルーチンに示す学習制御を実施し、再度学習値を算出する（ステップＳ７３）。その後に、ステップＳ７１以下の処理を繰り返す。
【０１３９】
次に、図３５に基づいて経時変化パターンについて説明する。先ず、噴射量経時変化の場合、ＩＳＣ補正量の算出が完了した時点（Ａ時刻）では、噴射量のバラツキ分を噴射量補正量として持つために、ＩＳＣ補正量は０となる。そこで、例えば噴射量減少方向に噴射量経時変化が生じるとアイドル回転速度が低下し、アイドル無負荷噴射量（無負荷燃費）まで噴射量を増量しようとＩＳＣが作動し、ＩＳＣ補正量としては増加する。したがって、ＩＳＣ補正量＝噴射量経時劣化量となるため、この値をある所定値と比較することで噴射量経時変化を判定できる。
【０１４０】
ここで、所定値Ｋ１〜Ｋ４の考え方としては、ＩＳＣ補正量のバラツキ、つまりＩＳＣ補正量の算出を行なった条件と全く同じであればＩＳＣ補正量＝０となるが、実際には環境条件、エンジン運転状態による指令噴射量、エンジン負荷等のバラツキによりＩＳＣ補正量は０にならないので、このバラツキ以上の値に設定する必要がある。あとは、噴射量経時変化によるインジェクタ性能への悪化が許容できるレベル以下に設定すれば良い。なお、ＦＣＣＢ補正量があまりに大きな値を持つ場合には、その気筒のインジェクタ４が故障と判定できるので、交換を促すようにウォーニングランプを点灯させるようにしても良い。
【０１４１】
ここで、ＩＳＣ補正量、ＦＣＣＢ補正量での判定の違いの意味は、ＩＳＣ補正の場合、多気筒の噴射量経時変化しか判定できないが、ＦＣＣＢ補正であれば１気筒毎の噴射量経時変化でも判定できる。例えばバラツキにより判定値＝ａ以上に設定する必要がある場合、ＩＳＣ補正量で判定するにはａ×気筒分の噴射量経時変化が必要であるが、ＦＣＣＢ補正量の場合、単気筒がａ以上となればその気筒の噴射量経時変化を判定できる。
【０１４２】
次に、図３６に基づいて電気負荷等による誤補正パターンについて説明する。電気負荷がＯＮの状態でＩＳＣ補正量の算出を行なうと、求めるべき補正量に対し、電気負荷分の噴射量を誤補正してしまう。その後に、電気負荷がＯＦＦされると、アイドル運転時の無負荷噴射量（＝無負荷燃費）は減少することになり、エンジン回転速度は上昇するため、噴射量を減少させようとＩＳＣが作動し、ＩＳＣ補正量は減少する。したがって、ＩＳＣ補正量＝誤補正量となるため、この値をある所定値と比較することで、誤補正を判定できる。ＩＳＣ補正量が所定値よりも小さいかだけで判定できるのは、Ｋ２のみが対象となる。
【０１４３】
なお、本実施例の方法以外にも、下記のような方法を用いても良い。コモンレール圧に応じて複数異なる噴射圧力水準のＩＳＣ補正量を算出する場合、例えば２水準目だけ維持変化が大きい場合や、２水準目だけ電気負荷ＯＮで誤補正した場合に判定できないため、その場合は、コモンレール圧を変更して各噴射圧力での噴射量経時変化、誤補正を判定するようにしても良い。
【０１４４】
［変形例１］
本実施例では、本発明をディーゼルエンジン用のコモンレール式燃料噴射システムのパイロット噴射量学習制御装置に適用した例を示したが、本発明をコモンレールを備えず、電子制御方式の分配型燃料噴射ポンプまたは電子制御方式の列型燃料噴射ポンプ等を備えた内燃機関用噴射量制御装置に適用しても良い。また、本実施例では、電磁式燃料噴射弁よりなるインジェクタを用いた例を説明したが、圧電方式の燃料噴射弁よりなるインジェクタを用いても良い。また、メイン噴射に先立って行なわれるパイロット噴射（プレ噴射とも言う）の回数は、１回以上任意に設定しても良く、また、メイン噴射の後に行なわれるパイロット噴射（アフター噴射とも言う）の回数も、０回または１回以上任意に設定しても良い。
【０１４５】
［変形例２］
本実施例では、図５の制御ルーチンのステップＳ４に示す分割噴射を正確に均等にＮ回に分割する均等分割噴射としたが、これは必ずしも正確に均等にＮ回に分割する均等分割噴射に限定しなくても良い。あるいは、Ｎ回均等分割噴射を、例えばｔｏｔａｌＱ＝５ｍｍ３／ｓｔの場合、１ｍｍ３／ｓｔ、１ｍｍ３／ｓｔ、１ｍｍ３／ｓｔ、２ｍｍ３／ｓｔの４回に略均等に分割噴射し、図１１に示すＦＣＣＢ補正量（第１噴射量補正量または第１補正量）、ＩＳＣ補正量（第２噴射量補正量または第２補正量）の各噴射への反映を分割方法に応じて適切に（例えば１：１：１：２の比例配分または各々１／４等）反映し、図５の制御ルーチンのステップＳ９に示す学習値の算出を行なっても良い。以上のような変形例２で本発明を実施しても、概ね上記実施例と同等の効果を達成することができる。
【０１４６】
［変形例３］
本実施例では、仮学習値記憶手段および学習値記憶手段としてスタンバイＲＡＭまたはＥＥＰＲＯＭを用いたが、スタンバイＲＡＭまたはＥＥＰＲＯＭを用いずに、ＥＰＲＯＭ、フラッシュ・メモリ等の不揮発性メモリ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、あるいはフレキシブル・ディスクのような他の記憶媒体を用いて、前回の学習制御により更新した前回の学習値を記憶するようにしても良い。この場合にも、イグニッションスイッチをオフ（ＩＧ・ＯＦＦ）した後、あるいはエンジンキーをキーシリンダより抜いた後も、記憶した内容は保存される。
【０１４７】
［変形例４］
本実施例では、本発明の一例として、エンジン１の特定気筒のインジェクタ４の電磁弁を複数回駆動して、エンジン１の燃焼行程中に２回以上のマルチ噴射（例えばパイロット噴射・メイン噴射）を行なうことが可能なコモンレール式燃料噴射システムを適用した例を説明したが、エンジン１の燃焼行程中に３回のマルチ噴射（例えばパイロット噴射・メイン噴射・アフター噴射またはパイロット噴射・プレ噴射・メイン噴射）を行なうことが可能な内燃機関用燃料噴射装置に適用しても良い。あるいは、エンジン１の燃焼行程中に４回のマルチ噴射（例えばパイロット噴射・メイン噴射・アフター噴射・ポスト噴射またはパイロット噴射・プレ噴射・メイン噴射・アフター噴射）を行なうことが可能な内燃機関用燃料噴射装置に適用しても良い。あるいは、エンジン１の燃焼行程中に５回のマルチ噴射（例えばパイロット噴射・プレ噴射・メイン噴射・アフター噴射・ポスト噴射または３回のパイロット噴射・メイン噴射・アフター噴射）を行なうことが可能な内燃機関用燃料噴射装置に適用しても良い。あるいは、エンジン１の燃焼行程中に６回以上のマルチ噴射（例えば４回以上のパイロット噴射・メイン噴射・アフター噴射または３回以上のパイロット噴射・メイン噴射・２回以上のアフター噴射）を行なうことが可能な内燃機関用燃料噴射装置に適用しても良い。
【図面の簡単な説明】
【０１４８】
【図１】コモンレール式燃料噴射システムの全体構成を示した概略図である（第１実施例）。
【図２】エンジン回転速度とアクセル開度と基本噴射量との関係を示した特性図である（第１実施例）。
【図３】指令噴射量とコモンレール圧と噴射指令パルス時間との関係を示した特性図である（第１実施例）。
【図４】ＴＱパルス、インジェクタ駆動電流波形および燃料噴射率を示したタイミングチャートである（第１実施例）。
【図５】パイロット噴射量の学習制御方法を示したフローチャートである（第１実施例）。
【図６】学習前提条件のＯＮ条件を示したブロック図である（第１実施例）。
【図７】学習実行条件のＯＮ条件を示したブロック図である（第１実施例）。
【図８】均等分割噴射の噴射パターンを示した説明図である（第１実施例）。
【図９】パイロット噴射量の学習補正方法を示したモデル図である（第１実施例）。
【図１０】噴射挙動および制御内容概要を示したモデル図である（第１実施例）。
【図１１】噴射挙動および制御内容概要を示したモデル図である（第１実施例）。
【図１２】エンジン負荷変動に対するＩＳＣ補正量の変化を示したタイミングチャートである（第１実施例）。
【図１３】学習中止条件のＯＮ条件を示したブロック図である（第１実施例）。
【図１４】噴射挙動および制御内容概要を示したモデル図である（第１実施例）。
【図１５】学習値ガードを示した説明図である（第１実施例）。
【図１６】各気筒毎の、複数の異なる噴射圧力水準の各学習値を記憶するマップである（第１実施例）。
【図１７】パイロット噴射量の学習制御方法を示したフローチャートである（第２実施例）。
【図１８】指令噴射量とＴＱパルス時間との関係を示した特性図である（第３実施例）。
【図１９】燃料噴射圧力と指令噴射量と補正係数との関係を示した特性図である（第３実施例）。
【図２０】エンジン回転速度と補正係数との関係を示した特性図である（第３実施例）。
【図２１】補正頻度設定方法を示したフローチャートである（第４実施例）。
【図２２】経時変化量の変更点を示したタイミングチャートである（第４実施例）。
【図２３】補正実行走行距離（頻度）とトータル走行距離との関係を示した説明図である（第４実施例）。
【図２４】補正実行走行距離（頻度）とトータル走行距離との関係を示した説明図である（第４実施例）。
【図２５】誤学習または過学習防止方法を示したフローチャートである（第５実施例）。
【図２６】誤学習または過学習防止方法を示したフローチャートである（第５実施例）。
【図２７】経時変化量と学習値算出頻度との関係を示した説明図である（第５実施例）。
【図２８】変化量ガードと絶対値ガードを示した説明図である（第５実施例）。
【図２９】パイロット噴射量の学習制御方法を示したフローチャートである（第６実施例）。
【図３０】（ａ）〜（ｃ）は各気筒毎の、複数の異なる噴射圧力水準の各仮学習値を記憶するマップである（第６実施例）。
【図３１】パイロット噴射量の学習終了時間を短縮するための制御の概略を示したタイミングチャートである（第７実施例）。
【図３２】ＩＳＣ補正量の誤補正判定方法を示したフローチャートである（第８実施例）。
【図３３】（ａ）〜（ｃ）は通常時と誤補正時とのアイドル運転時の噴射パターンを示したモデル図である（第８実施例）。
【図３４】パイロット噴射量の学習制御方法を示したフローチャートである（第９実施例）。
【図３５】経時変化パターンを示した説明図である（第９実施例）。
【図３６】誤補正パターンを示した説明図である（第９実施例）。
【符号の説明】
【０１４９】
１  エンジン（内燃機関）
２  コモンレール（蓄圧容器）
３  サプライポンプ（燃料供給ポンプ）
４  インジェクタ（電磁式燃料噴射弁）
１０  ＥＣＵ（噴射量決定手段、均等分割噴射量補正手段、第１補正量算出手段、第２補正量算出手段、学習値記憶手段）
【図１】
2008101625.tif 000003
【図２】
2008101625.tif 000004
【図３】
2008101625.tif 000005
【図４】
2008101625.tif 000006
【図５】
2008101625.tif 000007
【図６】
2008101625.tif 000008
【図７】
2008101625.tif 000009
【図８】
2008101625.tif 000010
【図９】
2008101625.tif 000011
【図１０】
2008101625.tif 000012
【図１１】
2008101625.tif 000013
【図１２】
2008101625.tif 000014
【図１３】
2008101625.tif 000015
【図１４】
2008101625.tif 000016
【図１５】
2008101625.tif 000017
【図１６】
2008101625.tif 000018
【図１７】
2008101625.tif 000019
【図１８】
2008101625.tif 000020
【図１９】
2008101625.tif 000021
【図２０】
2008101625.tif 000022
【図２１】
2008101625.tif 000023
【図２２】
2008101625.tif 000024
【図２３】
2008101625.tif 000025
【図２４】
2008101625.tif 000026
【図２５】
2008101625.tif 000027
【図２６】
2008101625.tif 000028
【図２７】
2008101625.tif 000029
【図２８】
2008101625.tif 000030
【図２９】
2008101625.tif 000031
【図３０】
2008101625.tif 000032
【図３１】
2008101625.tif 000033
【図３２】
2008101625.tif 000034
【図３３】
2008101625.tif 000035
【図３４】
2008101625.tif 000036
【図３５】
2008101625.tif 000037
【図３６】
2008101625.tif 000038