(57)【要約】【課題】燃料噴射弁の燃料噴射時間のうちの燃料噴射に寄与しない無効噴射時間のずれ量を学習補正するシステムにおいて、無効噴射時間のずれ量の学習補正のためのコストアップを抑えつつ無効噴射時間のずれ量の学習補正精度を向上させる。【解決手段】学習実行期間中に同一の運転条件で要求噴射量分の燃料を噴射する噴射回数を少なくとも２通り（例えば１回と２回）に変化させてそれぞれの噴射回数で空燃比又は空燃比ずれ量（空燃比フィードバック補正係数）を検出し、これらの検出値に基づいて無効噴射時間のずれ量を学習して該無効噴射時間を補正する。学習実行期間中に２回に分割して噴射した場合の１回当たりの噴射時間が燃料噴射弁２１の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも所定値αだけ大きくなるように学習用の目標燃圧を設定する。【選択図】図１
2011179389.tif 000002
【特許請求の範囲】
【請求項１】
燃料噴射弁の無効噴射時間のずれ量を学習補正する無効噴射時間学習手段と、要求噴射量に応じて設定した有効噴射時間に前記無効噴射時間学習手段で学習補正した無効噴射時間を加算して求めた燃料噴射時間に相当するパルス幅の噴射パルスで前記燃料噴射弁を駆動して前記要求噴射量分の燃料を噴射する燃料噴射制御手段と、空燃比検出手段で検出した排出ガスの空燃比を目標空燃比に一致させるように前記要求噴射量又は前記有効噴射時間を補正する空燃比フィードバック制御を実行する空燃比フィードバック制御手段とを備えた内燃機関の燃料噴射制御装置において、
前記燃料噴射制御手段は、要求噴射量分の燃料を１回の噴射で噴射する通常の噴射モードと複数回に分割して噴射する分割噴射モードのいずれの噴射モードでも噴射可能であり、
前記無効噴射時間学習手段は、学習実行期間中に同一の運転条件で前記燃料噴射制御手段により要求噴射量分の燃料を噴射する噴射回数を少なくとも２通りに変化させてそれぞれの噴射回数で前記空燃比検出手段により空燃比又は空燃比ずれ量を検出し、これらの検出値に基づいて前記無効噴射時間のずれ量を学習して該無効噴射時間を補正することを特徴とする内燃機関の燃料噴射制御装置。
【請求項２】
前記燃料噴射弁に供給する燃圧を制御する燃圧制御手段を備え、
前記無効噴射時間学習手段は、前記学習実行期間中に前記燃圧制御手段により燃圧を前記無効噴射時間のずれ量の学習のために設定した学習用の目標燃圧に制御することを特徴とする請求項１に記載の内燃機関の燃料噴射制御装置。
【請求項３】
前記無効噴射時間学習手段は、前記学習実行期間中に複数回に分割して噴射した場合の１回当たりの噴射時間が前記燃料噴射弁の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも所定値だけ大きくなるように前記学習用の目標燃圧を設定することを特徴とする請求項２に記載の内燃機関の燃料噴射制御装置。
【請求項４】
前記無効噴射時間学習手段は、要求噴射量分の燃料を噴射する噴射回数を変化させても燃焼状態の変化が小さい運転領域で前記無効噴射時間のずれ量を学習することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の燃料噴射制御装置。
【請求項５】
前記無効噴射時間学習手段は、予め基準となる無効噴射時間を持つ燃料噴射弁で噴射回数と空燃比のずれ量（以下「基準ずれ量」という）との関係を調べて記憶手段に記憶しておき、前記学習実行期間中に噴射回数切り替えによる前記検出空燃比の前記基準ずれ量からのずれ量の差分に基づき、無効噴射時間のずれ量を学習して補正することを特徴とする請求項１乃至４のいずれかに記載の内燃機関の燃料噴射制御装置。
【請求項６】
前記無効噴射時間学習手段は、２通りの噴射回数で前記無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第１の学習処理と、３通り以上の噴射回数で前記無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第２の学習処理とを行い、それぞれの学習処理で求められた補正量を案分して最終的な補正量を決定することを特徴とする請求項１乃至５のいずれかに記載の内燃機関の燃料噴射制御装置。
【請求項７】
前記無効噴射時間学習手段は、前記学習実行期間中に前記空燃比フィードバック制御で算出された空燃比フィードバック補正係数に基づいて前記空燃比ずれ量を算出することを特徴とする請求項１乃至６のいずれかに記載の内燃機関の燃料噴射制御装置。
【請求項８】
前記無効噴射時間学習手段は、所定値以下の燃圧で学習した前記無効噴射時間のずれ量は全燃圧領域一律のずれ量として該無効噴射時間を補正し、前記所定値より高い燃圧領域で学習した前記無効噴射時間のずれ量は、複数に区分された燃圧領域毎に該ずれ量を前記無効噴射時間の補正に反映させる反映率を記憶手段に記憶し、又は前記燃圧領域毎のずれ量と前記無効噴射時間の補正量との関係を記憶手段に記憶することを特徴とする請求項１乃至７のいずれかに記載の内燃機関の燃料噴射制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射弁の燃料噴射時間（燃料噴射パルス幅）のうちの燃料噴射に寄与しない無効噴射時間（無効噴射パルス幅）のずれ量を学習補正する機能を備えた内燃機関の燃料噴射制御装置に関する発明である。
【背景技術】
【０００２】
内燃機関の運転中は、運転条件に応じて要求噴射量を算出し、この要求噴射量に応じて設定した有効噴射時間に無効噴射時間を加算して最終的な燃料噴射時間を求め、この燃料噴射時間に相当するパルス幅の噴射パルスで燃料噴射弁を開弁駆動して要求噴射量分の燃料を噴射するようにしているが、無効噴射時間は一定ではなく、燃料噴射弁の温度変化に伴って燃料噴射弁の駆動コイルの抵抗変化や燃料の粘性変化が生じることで無効噴射時間も変化する。従って、要求噴射量分の燃料を正確に噴射するためには、燃料噴射弁の温度変化に応じて無効噴射時間を適正に変化させる必要がある。
【０００３】
そこで、従来より、無効噴射時間を学習補正する技術が幾つか提案されている。
【０００４】
例えば、特許文献１（特開平９−１９５８２７号公報）では、燃料噴射弁の開弁時期と閉弁時期を検出する開閉時期センサを設け、噴射パルスの立上がり時期から開閉時期センサで検出した実際の開弁時期までの時間と、噴射パルスの立下がり時期から開閉時期センサで検出した実際の閉弁時期までの時間との差に基づいて無効噴射時間を学習補正するようにしている。
【０００５】
また、特許文献２（特開平７−１０３０２０号公報）では、燃料噴射弁の温度を温度センサで検出又は推定して、燃料噴射弁の温度が高いほど、無効噴射時間が長くなるように補正するようにしている。
【０００６】
また、特許文献３（特開昭６４−１９１４３号公報）では、低負荷域での空燃比フィードバック補正量に基づいて無効噴射時間の補正量を学習し、高負荷域での空燃比フィードバック補正量に基づいて燃料噴射弁の流量特性値の補正量を学習し、この流量特性値の補正量で有効噴射時間（基本噴射量）を補正するようにしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−１９５８２７号公報
【特許文献２】特開平７−１０３０２０号公報
【特許文献３】特開昭６４−１９１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１では、燃料噴射弁の開弁時期と閉弁時期を検出する開閉時期センサを設ける必要があり、コストアップする欠点がある。
また、特許文献２では、燃料噴射弁の温度に対する燃料噴射弁の動特性を見込みで補正するため、十分な補正精度を確保できない。また、冷却水温センサで検出した冷却水温に基づいて燃料噴射弁の温度を推定する方法では、温度の推定誤差もあり、補正精度が更に悪くなる。その点、燃料噴射弁の温度を温度センサで直接検出する方法では、温度の検出精度を向上できるが、新たに温度センサを追加する必要があり、コストアップする欠点がある。
【０００９】
また、特許文献３では、燃料噴射時間のずれによって生じる空燃比のずれを補正するための空燃比フィードバック補正量に基づいて無効噴射時間の補正量を学習するため、無効噴射時間の学習補正精度の点では上記特許文献１，２よりも優れているが、複数の運転領域で学習が完了しないと、空燃比のずれ量を確定できないため、内燃機関の運転中に無効噴射時間の補正を適時に行うことができない。このため、内燃機関の運転中に燃料噴射弁の温度が変化しても、無効噴射時間の補正が追従できない等の問題がある。また、吸気量の異なる複数の運転領域で学習するため、吸気量センサ（エアフローメータ）の計測誤差分も無効噴射時間の補正量の学習値に含まれてしまい、これが学習誤差を大きくする要因となる。
【００１０】
そこで、本発明が解決しようとする課題は、無効噴射時間のずれ量の学習補正のためのコストアップを抑えつつ無効噴射時間のずれ量の学習補正精度を向上できる内燃機関の燃料噴射制御装置を提供することである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、請求項１に係る発明は、燃料噴射弁の無効噴射時間のずれ量を学習補正する無効噴射時間学習手段と、要求噴射量に応じて設定した有効噴射時間に前記無効噴射時間学習手段で学習補正した無効噴射時間を加算して求めた燃料噴射時間に相当するパルス幅の噴射パルスで前記燃料噴射弁を駆動して前記要求噴射量分の燃料を噴射する燃料噴射制御手段と、空燃比検出手段で検出した排出ガスの空燃比を目標空燃比に一致させるように前記要求噴射量又は前記有効噴射時間を補正する空燃比フィードバック制御を実行する空燃比フィードバック制御手段とを備えた内燃機関の燃料噴射制御装置において、前記燃料噴射制御手段は、要求噴射量分の燃料を１回の噴射で噴射する通常の噴射モードと複数回に分割して噴射する分割噴射モードのいずれの噴射モードでも噴射可能であり、前記無効噴射時間学習手段は、学習実行期間中に同一の運転条件で前記燃料噴射制御手段により要求噴射量分の燃料を噴射する噴射回数を少なくとも２通りに変化させてそれぞれの噴射回数で前記空燃比検出手段により空燃比又は空燃比ずれ量を検出し、これらの検出値に基づいて前記無効噴射時間のずれ量を学習して該無効噴射時間を補正するようにしたものである。
【００１２】
例えば、要求噴射量分の燃料を１回の噴射で噴射すると、１回分の無効噴射時間のずれ量の影響が空燃比に現れるが、要求噴射量分の燃料を２回に分割して噴射すると、２回分の無効噴射時間のずれ量の影響が空燃比に現れる。学習実行期間中に同一の運転条件で要求噴射量分の燃料を噴射する噴射回数を例えば１回と２回で変化させれば、無効噴射時間のずれ以外の様々な誤差要因（例えば吸気量計測誤差等、筒内充填空気量の誤差等）を同一にした状態で、無効噴射時間のずれ量の影響に関して、１回分のずれ量の影響を含む空燃比又は空燃比ずれ量と２回分のずれ量の影響を含む空燃比又は空燃比ずれ量を検出して、両者の検出値を比較することで、無効噴射時間のずれ以外の誤差要因をキャンセルして、１回分の無効噴射時間のずれ量の影響を抽出して、無効噴射時間のずれ量を精度良く学習することができる。しかも、無効噴射時間のずれ量の学習補正のために新たなセンサを追加する必要がなく、無効噴射時間のずれ量の学習補正のためのコストアップを抑えつつ無効噴射時間のずれ量の学習補正精度を向上できる。さらに、エンジン個別の燃料噴射弁の特性を直接検出するため、温度依存での無効噴射時間ずれ量だけでなく、無効噴射時間特性の製品毎のばらつきや、経時変化、燃料性状による粘性ばらつきの影響なども学習することができる。
【００１３】
ところで、噴射量が同じでも、燃料噴射弁に供給する燃料の圧力（燃圧）が低くなるほど、燃料噴射時間（有効噴射時間）が長くなる。また、燃料噴射時間（有効噴射時間）に対する無効噴射時間の割合が大きくなるほど、無効噴射時間のずれ量が空燃比に及ぼす影響が大きくなり、無効噴射時間のずれ量を学習しやすくなる。但し、燃料噴射時間と無効噴射時間との差（有効噴射時間）が小さくなり過ぎると、燃料噴射時間が燃料噴射弁の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも小さくなってしまう可能性がある。最小噴射時間以下の領域では、燃料噴射弁の噴射量のばらつきが大きくなって、空燃比制御性そのものが悪化し、無効噴射時間のずれ量の学習補正精度が悪化する。
【００１４】
これらの事情を考慮して、請求項２のように、燃料噴射弁に供給する燃圧を制御する燃圧制御手段を備え、学習実行期間中に前記燃圧制御手段により燃圧を無効噴射時間のずれ量の学習のために設定した学習用の目標燃圧に制御するようにすると良い。このようにすれば、要求噴射量に応じて学習用の目標燃圧を設定することで燃料噴射時間を無効噴射時間のずれ量の学習に適した範囲内に設定することができる。
【００１５】
具体的には、請求項３のように、学習実行期間中に複数回に分割して噴射した場合の１回当たりの噴射時間が燃料噴射弁の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも所定値αだけ大きくなるように学習用の目標燃圧を設定するようにすると良い。ここで、所定値αは小さい値が好ましいが、学習動作時に予想される空燃比ずれを空燃比補正係数で補正した場合にも、最小噴射時間以下とならない様に制御する必要があり、例えば、有効噴射時間の２０％程度で設定すると良い。これにより、分割噴射する場合でも、燃料噴射時間と噴射量とのリニアリティを確保でき、無効噴射時間のずれ量を精度良く学習補正できる。
【００１６】
また、請求項４のように、要求噴射量分の燃料を噴射する噴射回数を変化させても燃焼状態の変化が小さい運転領域で無効噴射時間のずれ量を学習するようにすると良い。噴射量が同じでも、噴霧形成やシリンダウェットの付着量が変化し、燃焼状態の変化が大きくなると、排出ガスの空燃比が変化して、無効噴射時間のずれ量の学習精度が低下するためである。
【００１７】
また、請求項５のように、予め基準となる無効噴射時間を持つ燃料噴射弁で噴射回数と空燃比のずれ量（以下「基準ずれ量」という）との関係を調べて記憶手段に記憶しておき、学習実行期間中に噴射回数変更時の検出空燃比のそれぞれの噴射回数に対応した前記基準ずれ量からのずれ量の差分に基づき該無効噴射時間補正量を計算して補正するようにしても良い。このようにすれば、噴射回数に応じて噴霧状態が変化し、空燃比が噴射回数によって変化する条件下であっても、無効噴射時間のずれ量を精度良く学習補正できる。
【００１８】
また、請求項６のように、２通りの噴射回数で無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第１の学習処理と、３通り以上の噴射回数で無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第２の学習処理とを行い、それぞれの学習処理で求められた補正量を案分して最終的な補正量を決定するようにしても良い。このようにすれば、無効噴射時間のずれ量の学習補正精度を更に向上させることができる。
【００１９】
また、請求項７のように、学習実行期間中に空燃比フィードバック制御で算出された空燃比フィードバック補正係数に基づいて空燃比ずれ量を算出するようにしても良い。空燃比フィードバック制御中は、空燃比検出手段で検出した排出ガスの空燃比と目標空燃比との偏差（ずれ量）に基づいて空燃比フィードバック補正係数が算出されるため、空燃比フィードバック補正係数は空燃比ずれ量と相関関係がある。従って、空燃比フィードバック補正係数に基づいて空燃比ずれ量を精度良く算出することができる。
【００２０】
また、請求項８のように、所定値以下の燃圧で学習した無効噴射時間のずれ量は全燃圧領域一律のずれ量として該無効噴射時間を補正し、前記所定値より高い燃圧領域で学習した無効噴射時間のずれ量は、複数に区分された燃圧領域毎に該ずれ量を無効噴射時間の補正に反映させる反映率を記憶手段に記憶し、又は燃圧領域毎のずれ量と無効噴射時間の補正量との関係を記憶手段に記憶するようにしても良い。つまり、燃圧が高い領域では、燃圧が高くなるほど、燃料噴射弁の開弁応答に必要な電流値が大きくなるため、燃料噴射弁のコイル温度上昇に伴う抵抗値増加による、電流立ち上がり応答時間変化の影響が大きくなり、無効噴射量の温度に対する変化量が大きくなる。反対に、燃圧が所定値よりも低い領域では、該電流立ち上がり時間変化による開弁応答変化の影響は小さくなり、燃圧に依存しない閉弁応答の変化（これは、燃料の粘性変化の影響が支配的である）の影響のみがずれ量として検出されるためである。
【図面の簡単な説明】
【００２１】
【図１】図１は本発明の実施例１におけるエンジン制御システムの概略構成を示す図である。
【図２】図２は実施例１の無効噴射時間学習補正プログラムの処理の流れを示すフローチャート（その１）である。
【図３】図３は実施例１の無効噴射時間学習補正プログラムの処理の流れを示すフローチャート（その２）である。
【図４】図４は実施例２の無効噴射時間学習補正プログラムの処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための形態を筒内噴射式の内燃機関に適用して具体化した２つの実施例１，２を説明する。
【実施例１】
【００２３】
本発明の実施例１を図１乃至図３に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。
筒内噴射式の内燃機関である筒内噴射式エンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、モータ１５によって開度調節されるスロットルバルブ１６と、このスロットルバルブ１６の開度（スロットル開度）を検出するスロットル開度センサ１７とが設けられている。
【００２４】
更に、スロットルバルブ１６の下流側には、サージタンク１８が設けられ、このサージタンク１８に、吸気管圧力を検出する吸気管圧力センサ１９が設けられている。また、サージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド２０が設けられ、エンジン１１の各気筒には、それぞれ筒内に燃料を直接噴射する燃料噴射弁２１が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２２が取り付けられ、各気筒の点火プラグ２２の火花放電によって筒内の混合気に着火される。
【００２５】
一方、エンジン１１の排気管２３には、排出ガスの空燃比を検出する空燃比センサ２４（空燃比検出手段）が設けられ、この空燃比センサ２４の下流側には、排出ガスを浄化する三元触媒等の触媒２５が設けられている。
【００２６】
また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２６や、ノッキングを検出するノックセンサ２７が取り付けられている。また、クランク軸２８の外周側には、クランク軸２８が所定クランク角回転する毎にパルスを出力するクランク角センサ２９が取り付けられ、このクランク角センサ２９の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００２７】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）３０に入力される。このＥＣＵ３０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶されたエンジン制御用の各プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２１の燃料噴射量を制御する燃料噴射制御手段として機能すると共に、空燃比センサ２４で検出した排出ガスの空燃比を目標空燃比に一致させるように燃料噴射量（要求噴射量又は有効噴射時間）を補正する空燃比フィードバック制御を実行する空燃比フィードバック制御手段としても機能する。
【００２８】
エンジン運転中は、エンジン運転条件に応じて要求噴射量を算出し、この要求噴射量に応じて設定した有効噴射時間に無効噴射時間を加算して最終的な燃料噴射時間を求め、この燃料噴射時間に相当するパルス幅の噴射パルスで燃料噴射弁２１を開弁駆動して要求噴射量分の燃料を噴射する。尚、実際には、有効噴射時間は、要求噴射量に応じた基本噴射時間に、空燃比フィードバック補正係数、空燃比学習補正係数、燃圧補正係数、水温補正係数、加減速補正係数等の各種補正係数を乗算して求められる。
【００２９】
ところで、無効噴射時間は一定ではなく、燃料噴射弁２１の温度変化に伴って燃料噴射弁２１の駆動コイルの抵抗変化や燃料の粘性変化が生じることで無効噴射時間も変化する。従って、要求噴射量分の燃料を正確に噴射するためには、燃料噴射弁２１の温度変化に応じて無効噴射時間を適正に変化させる必要がある。
【００３０】
そこで、本実施例１では、ＥＣＵ３０は、無効噴射時間を学習補正する無効噴射時間学習手段としても機能し、学習実行期間中に要求噴射量分の燃料を１回の噴射で噴射する通常の噴射モードと複数回に分割して噴射する分割噴射モードのいずれの噴射モードでも噴射可能となっている。そして、学習実行期間中に同一の運転条件で空燃比フィードバック制御を実行しながら要求噴射量分の燃料を噴射する噴射回数を少なくとも２通り（本実施例１では１回と２回）に変化させてそれぞれの噴射回数で空燃比又は空燃比ずれ量（空燃比フィードバック補正係数）を検出し、これらの検出値に基づいて無効噴射時間のずれ量を学習して該無効噴射時間を補正するようにしている。
【００３１】
例えば、要求噴射量分の燃料を１回の噴射で噴射すると、１回分の無効噴射時間のずれ量の影響が空燃比に現れるが、要求噴射量分の燃料を２回に分割して噴射すると、２回分の無効噴射時間のずれ量の影響が空燃比に現れる。学習実行期間中に同一の運転条件で要求噴射量分の燃料を噴射する噴射回数を１回と２回で変化させれば、無効噴射時間のずれ以外の様々な誤差要因（例えば吸気量計測誤差等、筒内充填空気量の誤差等）を同一にした状態で、無効噴射時間のずれ量の影響に関して、１回分のずれ量の影響を含む空燃比又は空燃比ずれ量と２回分のずれ量の影響を含む空燃比又は空燃比ずれ量を検出して、両者の検出値を比較することで、無効噴射時間のずれ以外の様々な誤差要因をキャンセルして、１回分の無効噴射時間のずれ量の影響を抽出して、無効噴射時間のずれ量を精度良く学習することができる。しかも、無効噴射時間のずれ量の学習補正のために新たなセンサを追加する必要がなく、無効噴射時間のずれ量の学習補正のためのコストアップを抑えつつ無効噴射時間のずれ量の学習補正精度を向上できる。
【００３２】
ところで、噴射量が同じでも、燃料噴射弁２１に供給する燃料の圧力（燃圧）が低くなるほど、燃料噴射時間（有効噴射時間）が長くなる。また、燃料噴射時間（有効噴射時間）に対する無効噴射時間の割合が大きくなるほど、無効噴射時間のずれ量が空燃比に及ぼす影響が大きくなり、無効噴射時間のずれ量を学習しやすくなる。但し、燃料噴射時間と無効噴射時間との差（有効噴射時間）が小さくなり過ぎると、燃料噴射時間が燃料噴射弁２１の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも小さくなってしまう可能性がある。最小噴射時間以下の領域では、燃料噴射弁２１の噴射量のばらつきが大きくなって、無効噴射時間のずれ量の学習精度が悪化する。
【００３３】
そこで、本実施例１では、ＥＣＵ３０は、燃料噴射弁２１に供給する燃圧を制御する燃圧制御手段としても機能し、学習実行期間中に燃圧を無効噴射時間のずれ量の学習のために設定した学習用の目標燃圧に制御するようにしている。このようにすれば、要求噴射量に応じて学習用の目標燃圧を設定することで燃料噴射時間を無効噴射時間のずれ量の学習に適した範囲内に設定することができる。
【００３４】
具体的には、学習実行期間中に２回に分割して噴射した場合の１回当たりの噴射時間が燃料噴射弁２１の燃料噴射時間と噴射量とのリニアリティを確保できる最小噴射時間よりも所定値αだけ大きくなるように学習用の目標燃圧を設定するようにしている。ここで、所定値αは小さい値が好ましいが、学習動作時に予想される空燃比ずれを空燃比補正係数で補正した場合にも、最小噴射時間以下とならない様に制御する必要があり、例えば、有効噴射時間の２０％程度で設定すると良い。これにより、分割噴射する場合でも、燃料噴射時間と噴射量とのリニアリティを確保でき、無効噴射時間のずれ量を精度良く学習することができる。
【００３５】
また、本実施例１では、要求噴射量分の燃料を噴射する噴射回数を変化させても燃焼状態の変化が小さい運転領域で無効噴射時間のずれ量を学習するようにしている。噴射量が同じでも、噴霧形成や、シリンダウェットの状態変化により燃焼状態の変化が大きくなると、排出ガスの空燃比が変化して、無効噴射時間のずれ量の学習精度が低下するためである。
【００３６】
以上説明した本実施例１の無効噴射時間学習補正は、ＥＣＵ３０によって図２及び図３の無効噴射時間学習補正プログラムに従って次のようにして実行される。
図２及び図３の無効噴射時間学習補正プログラムは、エンジン運転中に所定周期（例えば１０ｍｓ周期）で繰り返し実行され、特許請求の範囲でいう無効噴射時間学習手段としての役割を果たす。本プログラムが起動されると、まずステップ１０１で、学習実行条件が次の条件(1) 〜(4) 等を全て満たすか否かで判定する。
【００３７】
(1) 冷却水温センサ２６で検出した冷却水温が所定温度以上であること（噴射方式変更による空燃比変動が出ない程度に暖機できていること）
(2) エンジン回転速度と吸気量がほぼ一定であること（定常運転状態であること）
(3) エンジン運転領域（エンジン回転速度と負荷等）が予め設定した運転領域内であること
(4) 車速が所定車速以上であること
【００３８】
ここで、(1) の条件は、エンジン温度が低いと壁面付着燃料（ウェット）が多くなって燃焼に寄与する燃料量のばらつきが大きくなるため、冷却水温が所定温度以上（エンジン暖機完了後）であることを学習実行条件の１つとしている。
【００３９】
(2) の条件は、エンジン回転速度や吸気量が変化する過渡運転状態では、同じ噴射量でも噴射回数によって空燃比が変化するため、エンジン回転速度と吸気量がほぼ一定である定常運転状態であることを学習実行条件の１つとしている。
【００４０】
(3) の条件は、高回転領域では燃料噴射間隔が短くなるため、分割噴射では噴射間隔を十分に確保できないためであり、また、高負荷領域では燃料噴射量（有効噴射時間）が大きくなり、燃料噴射時間（有効噴射時間）に対する無効噴射時間の割合が小さくなって、無効噴射時間のずれ量が空燃比に及ぼす影響が小さくなるため、エンジン運転領域が予め設定した運転領域内であることを学習実行条件の１つとしている。更に、要求噴射量分の燃料を噴射する噴射回数を変化させても燃焼状態の変化が小さい運転領域で無効噴射時間のずれ量を学習することが好ましいため、エンジン運転領域が予め設定した運転領域内であることを学習実行条件の１つとしている。噴射量が同じでも、燃焼状態の変化が大きくなると、排出ガスの空燃比が変化して、無効噴射時間のずれ量の学習精度が低下するためである。
【００４１】
(4) の条件は、分割噴射に切り換えると、車室内で聞こえる燃料噴射弁２１の駆動音が変化する為、車室内の走行騒音レベルが全般的に低い状況で切り替え動作させると、切り替え時の燃料噴射弁２１の駆動音変化が運転者に違和感や不快感を与えてしまう可能性があるため、車室内の走行騒音レベルが全般的に高くなる所定車速以上であることを学習実行条件の１つとしている。
【００４２】
上述した条件(1) 〜(4) 等のうち、１つでも満たさない条件があれば、学習実行条件が不成立となり、以降の学習処理を行わずに、図３のステップ１２３に進み、学習実行フラグxlrndt.exeを学習禁止を意味する“０”に維持又はリセットして、本プログラムを終了する。
【００４３】
これに対し、上述した条件(1) 〜(4) 等を全て満たしていれば、学習実行条件が成立して、ステップ１０２に進み、学習実行フラグxlrndt.exeを学習実行を意味する“１”にセットする。
【００４４】
この学習実行フラグxlrndt.exeが“１”にセットされている期間は、噴射回数と目標燃圧を本処理内で設定した値に固定して、これらを本来の制御ルーチンで変化させないようにする。
【００４５】
この後、ステップ１０３に進み、要求噴射量分の燃料を１回で噴射する１回噴射学習期間中の目標有効噴射時間tinjtgt （目標有効噴射パルス幅）を、２回に分割して噴射する２回噴射学習期間中の１回当たりの有効噴射時間が噴射量とのリニアリティを確保できる最小の有効噴射時間tminよりも所定値αだけ大きくなるように算出する。
tinjtgt ＝（tmin＋α）×２
【００４６】
この後、ステップ１０４に進み、噴射量を変えずに目標有効噴射時間tinjtgt を実現する目標燃圧pinjtgt を次式により算出する。
pinjtgt ＝pinjtgt[i]×（tinj／tinjtgt ）2
ここで、pinjtgt[i]とtinjは、それぞれ、現在のエンジン運転条件における燃圧と有効噴射時間である。
【００４７】
この後、ステップ１０５に進み、有効噴射時間平均値tinjsmの初期値に現在の有効噴射時間tinjをセットする。
tinjsm＝tinj
【００４８】
次のステップ１０６に進み、空燃比フィードバック補正係数faf の積算回数nsamp をカウントするカウンタを初期値“０”にリセットすると共に、空燃比フィードバック補正係数faf の積算値fafsm を初期値“０”にリセットする。
nsamp ＝０
fafsm ＝０
【００４９】
この後、ステップ１０７に進み、要求噴射量分の燃料を噴射する噴射回数ninjを１回にセットした後、ステップ１０８に進み、現在、学習実行条件が成立した状態が継続しているか否かを前述したステップ１０１と同じ方法で判定し、学習実行条件が不成立となっていれば、以降の学習処理を行わずに、図３のステップ１２３に進み、学習実行フラグxlrndt.exeを学習禁止を意味する“０”にリセットする。
【００５０】
これに対し、上記ステップ１０８で、現在、学習実行条件が成立した状態が継続していると判定されれば、ステップ１０９に進み、前回の faf積算値fafsm[i-1]に今回の空燃比フィードバック補正係数faf を積算して faf積算値fafsm を更新する。
fafsm ＝fafsm[i-1]＋faf
【００５１】
この後、ステップ１１０に進み、１回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp をカウントするカウンタをカウントアップして、次のステップ１１１で、前回更新した有効噴射時間平均値tinjsm[i-1] と今回の有効噴射時間tinjとの平均値を算出して有効噴射時間平均値tinjsmを更新する。
tinjsm＝（tinjsm[i-1] ＋tinj）／２
【００５２】
尚、上式は、有効噴射時間平均値tinjsmを移動平均により算出するものであるが、相加平均により算出しても良い。或は、下記のなまし処理式により有効噴射時間平均値tinjsmを算出しても良い。
tinjsm＝（１−γ）×tinjsm[i-1] ＋γ×tinj
ここで、γはなまし係数で、０＜γ＜１である。
【００５３】
次のステップ１１２で、１回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えたか否かを判定し、まだ所定値を越えていなければ、前述したステップ１０８〜１１１の処理を繰り返す。これにより、１回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えるまで、有効噴射時間平均値tinjsmを更新する処理を繰り返す。
【００５４】
その後、１回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えた時点で、ステップ１１３に進み、 faf積算値fafsm を積算回数nsamp で割り算して１回噴射学習期間中の平均空燃比ずれ量faf1（空燃比フィードバック補正係数faf の平均値）を求める。
faf1＝ fafsm／nsamp
ここで、１回噴射学習期間中の平均空燃比ずれ量faf1は百分率［％］で算出される。
【００５５】
この後、空燃比フィードバック補正係数faf （空燃比ずれ量）の積算回数nsamp をカウントするカウンタを初期値“０”にリセットすると共に、空燃比フィードバック補正係数faf の積算値fafsm を初期値“０”にリセットする。
【００５６】
この後、ステップ１１５に進み、要求噴射量分の燃料を噴射する噴射回数ninjを２回にセットした後、図３のステップ１１６に進み、現在、学習実行条件が成立した状態が継続しているか否かを前述したステップ１０１と同じ方法で判定し、学習実行条件が不成立となっていれば、以降の学習処理を行わずに、ステップ１２３に進み、学習実行フラグxlrndt.exeを学習禁止を意味する“０”にリセットして、本プログラムを終了する。
【００５７】
これに対し、上記ステップ１１６で、現在、学習実行条件が成立した状態が継続していると判定されれば、ステップ１１７に進み、前回の faf積算値fafsm[i-1]に今回の空燃比フィードバック補正係数faf を積算して faf積算値fafsm を更新する。
fafsm ＝fafsm[i-1]＋faf
【００５８】
この後、ステップ１１８に進み、２回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp をカウントするカウンタをカウントアップして、次のステップ１１９で、前回更新した有効噴射時間平均値tinjsm[i-1] と今回の２回分の噴射時間（２×tinj）との平均値を算出して有効噴射時間平均値tinjsmを更新する。
tinjsm＝（tinjsm[i-1] ＋２×tinj）／２
【００５９】
尚、上式は、有効噴射時間平均値tinjsmを移動平均により算出するものであるが、相加平均により算出しても良い。或は、下記のなまし処理式により有効噴射時間平均値tinjsmを算出しても良い。
tinjsm＝（１−γ）×tinjsm[i-1] ＋γ×２×tinj
ここで、γはなまし係数で、０＜γ＜１である。
【００６０】
そして、次のステップ１２０で、２回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えたか否かを判定し、まだ所定値を越えていなければ、前述したステップ１１６〜１１９の処理を繰り返す。これにより、２回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えるまで、有効噴射時間平均値tinjsmを更新する処理を繰り返す。
【００６１】
その後、２回噴射学習期間中の空燃比フィードバック補正係数faf の積算回数nsamp が所定値を越えた時点で、ステップ１１３に進み、 faf積算値fafsm を積算回数nsamp で割り算して２回噴射学習期間中の平均空燃比ずれ量faf2（空燃比フィードバック補正係数faf の平均値）を求める。
faf2＝ fafsm／nsamp
ここで、２回噴射学習期間中の平均空燃比ずれ量faf2は百分率［％］で算出される。
【００６２】
この後、ステップ１２２に進み、無効噴射時間ずれ量d.b.dtを次式により算出する。
d.b.dt＝（faf2／１００−faf1／１００）×tinjsm    ……（１）
そして、次のステップ１２３で、学習実行フラグxlrndt.exeを“０”にリセットして、本プログラムを終了する。
【００６３】
以上説明した無効噴射時間学習補正プログラムで算出した無効噴射時間ずれ量d.b.dtを用いて、次式により無効噴射時間を算出する。
無効噴射時間＝ベース無効噴射時間＋無効噴射時間ずれ量d.b.dt
ここで、ベース無効噴射時間は、燃圧に応じてマップ等により設定される。
【００６４】
次に、無効噴射時間ずれ量d.b.dtを算出する上記（１）式について説明する。
空燃比ずれ率（faf ／１００）は、次式で定義される。
空燃比ずれ率＝燃料調量ずれ率＋無効噴射時間ずれ率
燃料調量ずれ率＝有効噴射時間ずれ率＋エアフローメータ計測ずれ率
無効噴射時間ずれ率＝無効噴射時間ずれ量／有効噴射時間
【００６５】
これらの関係から、１回噴射学習期間中の空燃比ずれ率（faf1／１００）は、次式で定義される。
faf1／１００＝Ｑinj ＋d.b.dt／tinjsm    ……（２）
ここで、Ｑinj は燃料調量ずれ率、tinjsmは有効噴射時間平均値である。
【００６６】
また、２回噴射学習期間中の空燃比ずれ率（faf2／１００）は、次式で定義される。
faf2／１００＝Ｑinj ＋２×d.b.dt／tinjsm    ……（３）
１回噴射学習期間と２回噴射学習期間は、同一の運転条件であるため、Ｑinj とd.b.dtは、噴射回数を変えても変化しない。
【００６７】
従って、上記（３）式から（２）式を差し引くと、次式が導き出される。
faf2／１００−faf1／１００＝d.b.dt／tinjsm    ……（４）
この（４）式を変形して、無効噴射時間ずれ量d.b.dtを算出する式が導き出される。
d.b.dt＝（faf2／１００−faf1／１００）×tinjsm
ここで、瞬時の有効噴射時間tinjは一定ではないため、学習期間中の有効噴射時間平均値tinjsmを用いる。
【００６８】
尚、図２及び図３の無効噴射時間学習補正プログラムでは、それぞれの噴射回数で検出した空燃比ずれ量を比較して無効噴射時間のずれ量を学習するようにしたが、それぞれの噴射回数で検出した空燃比を比較して無効噴射時間のずれ量を学習するようにしても良い。
【００６９】
以上説明した本実施例１によれば、学習実行期間中に同一の運転条件で空燃比フィードバック制御を実行しながら要求噴射量分の燃料を噴射する噴射回数を１回と２回に変化させてそれぞれの噴射回数で空燃比ずれ量（空燃比フィードバック補正係数）を検出し、これらの検出値に基づいて無効噴射時間のずれ量を学習するようにしたので、無効噴射時間のずれ以外の様々な誤差要因（例えば吸気量計測誤差等、筒内充填空気量の誤差等）を同一にした状態で、無効噴射時間のずれ量の影響に関して、１回分のずれ量の影響を含む空燃比ずれ量と２回分のずれ量の影響を含む空燃比ずれ量を検出して、両者の検出値を比較することで、無効噴射時間のずれ以外の様々な誤差要因をキャンセルして、１回分の無効噴射時間のずれ量の影響を抽出して、無効噴射時間のずれ量を精度良く学習することができる。しかも、無効噴射時間のずれ量の学習補正のために新たなセンサを追加する必要がなく、無効噴射時間のずれ量の学習補正のためのコストアップを抑えつつ無効噴射時間のずれ量の学習補正精度を向上できる。
【００７０】
本実施例１では、学習実行期間中に要求噴射量分の燃料を噴射する噴射回数を１回と２回に変化させたが、３回以上の噴射回数としても良い。
また、２通りの噴射回数で無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第１の学習処理と、３通り以上の噴射回数で無効噴射時間のずれ量を学習して該無効噴射時間の補正量を求める第２の学習処理とを行い、それぞれの学習処理で求められた補正量を案分して最終的な補正量を決定するようにしても良い。このようにすれば、無効噴射時間のずれ量の学習補正精度を更に向上させることができる。
【００７１】
また、予め基準となる無効噴射時間を持つ燃料噴射弁で噴射回数と燃焼空燃比のずれ量（以下「基準ずれ量」という）との関係を調べて記憶手段に記憶しておき、学習実行期間中に検出した空燃比の基準ずれ量からのずれ量に基づいて無効噴射時間のずれ量を学習した補正するようにしても良い。このようにすれば、噴射回数に応じて噴霧の形成やシリンダウェット状態変化により燃焼空燃比が変化する条件下であっても、無効噴射時間のずれ量を精度良く学習補正でき、さらに広範囲の運転条件での学習実行が可能となる。
【００７２】
また、本実施例１のフローチャート上では表現していないが、該学習動作を実行する際に目標燃圧を変化させたり、噴射回数を変化させた直後は、空燃比に乱れが発生することがあるので、学習の為の空燃比の検出値を取得する際には、これらの状態変化から所定時間のディレィを設けてから実施した方がより望ましい結果が得られる。
【実施例２】
【００７３】
図４に示す本発明の実施例２では、ＥＣＵ３０によって図４の無効噴射時間学習補正プログラムを実行することで、所定値以下の燃圧で学習した無効噴射時間のずれ量は全燃圧領域一律のずれ量として該無効噴射時間を補正し、前記所定値より高い燃圧領域で学習した無効噴射時間のずれ量は、複数に区分された燃圧領域毎に該ずれ量を無効噴射時間の補正に反映させる反映率を記憶手段に記憶し、又は燃圧領域毎のずれ量と無効噴射時間の補正量との関係を記憶手段に記憶するようにしている。
【００７４】
すなわち、燃圧が高い領域では燃料噴射弁を開弁させるのに必要な電流値が大きくなるため、燃料噴射弁のコイル抵抗の変化により電流の立ち上がりが遅くなる影響を大きく受けるのに対し、ある程度燃圧が低い領域では開弁に必要な電流値が小さいことから、電流の立ち上がり付近で、すでに燃料噴射弁が開弁することによりコイル温変化の影響をあまり受けなくなるというメカニズムの違いに着目した方法を提案している。燃圧の低い領域では燃料の粘性変化の影響が支配的となり、逆にこの影響は燃圧条件に依らず、一律の影響があると推定される。
【００７５】
以下、図４の無効噴射時間学習補正プログラムの処理内容を説明する。本プログラムは、エンジン運転中に所定周期（例えば１０ｍｓ周期）で繰り返し実行され、特許請求の範囲でいう無効噴射時間学習手段としての役割を果たす。本プログラムが起動されると、まずステップ２０１で、無効噴射時間ずれ量d.b.dtの学習が完了したか否かを判定し、無効噴射時間ずれ量d.b.dtの学習が完了していれば、ステップ２０２に進み、無効噴射時間ずれ量d.b.dtの学習値を複数の燃圧領域毎に振り分けて記憶手段に記憶する。具体的には、全運転領域の燃圧を例えば４分割して、学習時の燃圧がどの燃圧領域の学習値d.b.dt.pf(1)〜d.b.dt.pf(4)に該当するかを判定して、該当する燃圧領域に記憶する為の領域のインデックス値ｘに１〜４のいずれかの数値を割り付ける。
【００７６】
この後、ステップ２０３に進み、目標燃圧pinjtgt が所定値よりも低いか否かを判定し、目標燃圧pinjtgt が所定値よりも低いと判定されれば、ステップ２０４に進み、無効噴射時間ずれ量d.b.dtの学習値をオフセット値（全燃圧領域一律のずれ量）d.b.dt.ofst として記憶手段に記憶する。
【００７７】
そして、次のステップ２０５で、ｘ番目（ｘ＝１〜４）の燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)の記憶値がすでに学習済みか否かを判定し（既存記憶値があるかどうか）、学習済みと判定されれば、ステップ２０６に進み、ｘ番目の燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)の学習値を次式により更新する。
d.b.dt.pf(x)[i] ＝d.b.dt(x)[i-1]＋（d.b.dt.ofst[i]−d.b.dt.ofst[i-1]）
【００７８】
ここで、d.b.dt(x)[i-1]は、ｘ番目の燃圧領域の無効噴射時間ずれ量d.b.dt(x) の前回値、d.b.dt.ofst[i]とd.b.dt.ofst[i-1]は、それぞれオフセット値の今回値と前回値である。従って、上記ステップ２０６の処理により、オフセット値の今回値d.b.dt.ofst[i]と前回値d.b.dt.ofst[i-1]の差分だけ無効噴射時間ずれ量d.b.dt.pf(x)の学習値を補正することにより、オフセット分の学習をした分だけ、燃圧別の学習値を修正し、高燃圧時に学習した領域の学習値を読み出して反映する際の反映値が変わらない様に処置している。
【００７９】
この後、ステップ２１２に進み、今回更新したｘ番目の燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)に基づいて全ての燃圧領域の学習値を更新する。具体的には、今回更新したｘ番目の燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)に基づいて、他の燃圧領域でどのような傾向で無効噴射時間ずれ量が変化するかを予め設定しておき、全ての燃圧領域の学習値を更新するようにして、全ての条件での学習が完了しなくても全運転領域で好適に学習した無効噴射時間ずれ量が反映できるようにしている。或は、過去に学習した値を持っている場合は、反映率を調整して、例えば１／２ずつ更新するようにしても良い。
【００８０】
その後、ステップ２１３に進み、無効噴射時間t.dt.injを算出する。
t.dt.inj＝t.dt＋d.b.dt.ofst ＋d.b.dt.pf(x)
【００８１】
上記ステップ２０５で、ｘ番目の燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)が学習されていないと判定された場合は、上記ステップ２０６と２１２の処理を省略してステップ２１３に進み、無効噴射時間t.dt.injを算出して、本プログラムを終了する。
【００８２】
この場合、燃圧の高い領域での学習は完了していない為、無効噴射時間のずれ量は全域で同じ補正を行う、d.b.dt.ofst のみで補正されることとなる。
また、上記ステップ２０１で、無効噴射時間ずれ量d.b.dtの学習が完了していないと判定された場合も、ステップ２１３に進み、無効噴射時間t.dt.injを算出して、本プログラムを終了する。
【００８３】
一方、上記ステップ２０３で、目標燃圧pinjtgt が所定値以上と判定されれば、ステップ２０７に進み、オフセット値d.b.dt.ofst を学習済みか否かを判定し、学習済みと判定されれば、ステップ２０８に進み、無効噴射時間ずれ量d.b.dtからオフセット値d.b.dt.ofst を減算した値を、各燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)の学習値として更新する。
d.b.dt.pf(x)＝d.b.dt−d.b.dt.ofst
【００８４】
この後、ステップ２１２と２１３の処理を実行して、無効噴射時間t.dt.injを上述した方法で算出して、本プログラムを終了する。
【００８５】
これに対し、上記ステップ２０７で、オフセット値d.b.dt.ofst が学習されていないと判定されれば、ステップ２０９に進み、現在の燃圧に応じた学習係数k.pinjを算出する。この学習係数k.pinjは、無効噴射時間ずれ量d.b.dtを各燃圧領域の学習値とオフセット値に振り分ける割合を決める係数であり、０＜k.pinj＜１の範囲内で予めマップ等により設定されている。
【００８６】
この後、ステップ２１０に進み、無効噴射時間ずれ量d.b.dtに学習係数k.pinjを乗算した値を各燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)の学習値とする。
d.b.dt.pf(x)＝d.b.dt×k.pinj
【００８７】
そして、次のステップ２１１で、オフセット値d.b.dt.ofst を次式により算出する。
d.b.dt.ofst ＝d.b.dt×（１−k.pinj）
【００８８】
この後、ステップ２１２と２１３の処理を実行して、無効噴射時間t.dt.injを上述した方法で算出して、本プログラムを終了する。本処理により、低燃圧域での学習によりオフセット値の学習ができていない状態であっても、全燃圧領域について予め定めた特性に沿って学習値を振り分けることができ、好適に補正を実施することができる。この場合は、その後に低燃圧領域での学習が完了した時点で、ステップ２０５〜２０６の処理にて、実際の学習値に基づいて補正が行われていき、学習頻度が上がっていくに従い、精度良く学習結果を更新／反映できるようになる。
【００８９】
以上説明した本実施例２では、実施例１で説明した学習方法で取得した学習値を無効噴射時間のずれのメカニズムに対応した学習値に振り分け、より効果的に記憶／反映できる方法を示した。すなわち、所定値以下の燃圧で学習した無効噴射時間のずれ量は全燃圧領域一律のずれ量（オフセット値）として該無効噴射時間を補正し、前記所定値より高い燃圧領域で学習した無効噴射時間のずれ量は、複数に区分された燃圧領域毎に該ずれ量を無効噴射時間の補正に反映させる反映率（学習係数）を設定するようにしたので、無効噴射時間のずれ量を精度良く学習／反映することができる。
【００９０】
尚、前記実施例１で説明した図２の無効噴射時間学習補正プログラムのステップ１０４で、目標燃圧pinjtgt を設定する際に、同一の運転条件で複数の燃圧領域を設定し、オフセット値d.b.dt.ofst を学習した後、燃圧を高めて、当該燃圧領域の無効噴射時間ずれ量d.b.dt.pf(x)を学習する処理を燃圧領域毎に順次実行するようにしても良い。
【００９１】
その他、本発明は、図１に示すような筒内噴射エンジンに限定されず、吸気ポート噴射エンジンにも適用して実施できる等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【符号の説明】
【００９２】
１１…エンジン（内燃機関）、１２…吸気管、１６…スロットルバルブ、２１…燃料噴射弁、２２…点火プラグ、２３…排気管、２４…空燃比センサ（空燃比検出手段）、２５…触媒、３０…ＥＣＵ（無効噴射時間学習手段，燃料噴射制御手段，空燃比フィードバック制御手段）
【図１】
2011179389.tif 000003
【図２】
2011179389.tif 000004
【図３】
2011179389.tif 000005
【図４】
2011179389.tif 000006
【手続補正書】
【提出日】平成22年3月5日(2010.3.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
ここで、(1) の条件は、エンジン温度が低いと壁面付着燃料（ウェット）が多くなって燃焼に寄与する燃料量のばらつきが大きくなるため、冷却水温が所定温度以上であることを学習実行条件の１つとしている。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
また、予め基準となる無効噴射時間を持つ燃料噴射弁で噴射回数と燃焼空燃比のずれ量（以下「基準ずれ量」という）との関係を調べて記憶手段に記憶しておき、学習実行期間中に検出した空燃比の基準ずれ量からのずれ量に基づいて無効噴射時間のずれ量を学習して補正するようにしても良い。このようにすれば、噴射回数に応じて噴霧の形成やシリンダウェット状態変化により燃焼空燃比が変化する条件下であっても、無効噴射時間のずれ量を精度良く学習補正でき、さらに広範囲の運転条件での学習実行が可能となる。