(57)【特許請求の範囲】
【請求項１】
エンジン運転状態を検出する手段と、エンジン運転状態に基づいて燃料噴射量を演算する手段と、エンジンのアイドル状態を判定する手段と、アイドル状態での各種パラメータを検出する手段と、アイドル状態でのエンジン回転数が目標回転数となるように燃料噴射量を補正する手段と、前記検出した各種パラメータに基づいてアイドル状態での目標回転数を維持するのに必要な燃料噴射量に相当する実相当噴射量を演算する手段、アイドル状態において所定の条件が成立したときに燃料噴射量誤差の学習許可を判定する手段と、所定の運転条件において燃料噴射ノズルの作動状態を検出する手段と、このノズル作動状態並びに運転条件とに応じてノズル誤差補正値を演算する手段と、前記学習の許可時に前記補正噴射量と実相当噴射量の偏差を演算して学習し、この学習値と前記ノズル誤差補正値とから噴射量誤差を演算する噴射量誤差演算手段と、前記燃料噴射量から前記噴射量誤差を取り除いて各種制御パラメータの制御に用いる噴射量信号とする演算手段と、を備えることを特徴とするディーゼルエンジンの制御装置。
【請求項２】
前記ノズル誤差補正値演算手段が、前記学習許可時に、燃料噴射ノズルの初期リフト量に基づいてノズル誤差補正値を演算する請求項１に記載のディーゼルエンジンの制御装置。
【請求項３】
前記ノズル誤差補正値演算手段が、前記学習許可時に、燃料噴射ノズルのリフト開始時期に基づいてノズル誤差補正値を演算する請求項１に記載のディーゼルエンジンの制御装置。
【請求項４】
前記ノズル誤差補正値演算手段が、前記学習許可時に、燃料噴射ノズルに対して燃料を圧送する燃料噴射ポンプの燃料噴射時期が所定値のときの燃料噴射ノズルのリフト開始時期を検出し、この検出リフト開始時期と基準クランク角度位置との偏差を求め、この偏差に応じてノズル誤差補正値を算出する請求項３に記載のディーゼルエンジンの制御装置。
【請求項５】
前記ノズル誤差補正値演算手段が、運転状態がアイドル状態に近づくほど補正幅が少なくなるような特性の基本補正値に基づいて前記ノズル誤差補正値を修正する請求項２〜４のいずれか一つに記載のディーゼルエンジンの制御装置。
【請求項６】
前記学習許可の判定手段が、少なくともエンジンが所定の基準回転数範囲にあるアイドル状態であって、かつ補機負荷等が無負荷であり、この状態が所定時間以上継続しているときに学習許可を判定する請求項１に記載のディーゼルエンジンの制御装置。
【請求項７】
前記噴射量誤差演算手段が、エンジン回転数の積算値、走行距離、経過時間に関連する重み係数のうち少なくとも一つを用いて、前記補正噴射量と実噴射量との偏差を加重平均処理する請求項１に記載のディーゼルエンジンの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はディーゼルエンジンの燃料噴射量を制御信号として用いてディーゼルエンジンの種々の制御パラメータを制御する装置に関する。
【０００２】
【従来の技術】
従来、例えば特開昭６３−２３０９４４号公報にもあるように、ディーゼルエンジンのＥＧＲ量（排気還流量）を運転状態に応じて制御するにあたり、エンジンへの燃料噴射量を制御信号として用い、燃料噴射量に対応してＥＧＲ量を制御することが知られている。
【０００３】
この場合、燃料噴射量はエンジンの負荷や回転数に基づいて決定されるが、この制御目標となる燃料噴射量と、実際にエンジンに供給される燃料噴射量とは、燃料噴射ポンプの特性のバラツキなどにより正確に一致しないことがあり、この場合には目標噴射量を基準にしてＥＧＲ量を制御すると、スモークが増えたりすることなどがある。
【０００４】
このような燃料噴射量の誤差を把握するため、例えばアイドル運転時などに目標とする所定の回転数を維持するのに必要な燃料噴射量の補正量を算出し、この補正量に基づいて実際の噴射量と一致するように目標噴射量を修正し、この修正された目標噴射量に基づいてＥＧＲ量を制御している。このようにすると、燃料噴射ポンプに特性上のバラツキ等があっても、目標噴射量と実際の噴射量とが対応するので、ＥＧＲ時の排気組成が目標値よりも悪化するような問題が回避できる。
【０００５】
【発明が解決しようとする課題】
ところが、このようにアイドル状態での燃料噴射量の補正量を算出している場合、例えばエアコンやパワステなどの負荷がエンジンに加わった状態では、同じ目標回転数を維持するのに必要な燃料の噴射量が相違し、補正量にその負荷分の誤差を生じてしまう。
【０００６】
また、アイドル状態での燃料噴射量の噴射量誤差は、生産バラツキや経時変化によって変動する燃料噴射ノズルの初期リフト量や開弁圧の変化によっても大きな影響を受ける。このため、アイドル状態での種々の条件を考慮に入れて燃料噴射量誤差を求めるにしても、これら初期リフト量や開弁圧の影響を加味しないと、あらゆる運転条件において適正な補正量とはならない。
【０００７】
これらの場合には、この目標噴射量に基づいて行われる種々の制御、例えばＥＧＲ、燃料噴射時期やスワール制御弁の制御が、実際の燃料噴射量に対応しなくなり、排気組成の悪化が避けられなくなる。
【０００８】
本発明はこのような問題を解決するために提案されたもので、制御信号となる目標噴射量の信頼性を高め、ディーゼルエンジンの種々の制御パラメータの制御精度を向上させることを目的とする。
【０００９】
【課題を解決するための手段】
第１の発明は、エンジン運転状態を検出する手段と、エンジン運転状態に基づいて燃料噴射量を演算する手段と、エンジンのアイドル状態を判定する手段と、アイドル状態での各種パラメータを検出する手段と、アイドル状態でのエンジン回転数が目標回転数となるように燃料噴射量を補正する手段と、前記検出した各種パラメータに基づいてアイドル状態での目標回転数を維持するのに必要な燃料噴射量に相当する実相当噴射量を演算する手段、アイドル状態において所定の条件が成立したときに燃料噴射量誤差の学習許可を判定する手段と、所定の運転条件において燃料噴射ノズルの作動状態を検出する手段と、このノズル作動状態並びに運転条件とに応じてノズル誤差補正値を演算する手段と、前記学習の許可時に前記補正噴射量と実相当噴射量の偏差を演算して学習し、この学習値と前記ノズル誤差補正値とから噴射量誤差を演算する噴射量誤差演算手段と、前記燃料噴射量から前記噴射量誤差を取り除いて各種制御パラメータの制御に用いる噴射量信号とする演算手段と、を備える。
【００１０】
第２の発明は、前記ノズル誤差補正値演算手段が、燃料噴射ノズルの初期リフト量に基づいてノズル誤差補正値を演算する。
【００１１】
第３の発明は、前記ノズル誤差補正値演算手段が、燃料噴射ノズルのリフト開始時期に基づいてノズル誤差補正値を演算する。
【００１２】
第４の発明は、前記ノズル誤差補正値演算手段が、燃料噴射ノズルに対して燃料を圧送する燃料噴射ポンプの燃料噴射時期が所定値のときの燃料噴射ノズルのリフト開始時期を検出し、この検出リフト開始時期と基準クランク角度位置との偏差を求め、この偏差に応じてノズル誤差補正値を算出する。
【００１３】
第５の発明は、前記ノズル誤差補正値演算手段が、運転状態がアイドル状態に近づくほど補正幅が少なくなるような特性の基本補正値に基づいて前記ノズル誤差補正値を修正する。
【００１４】
第６の発明は、前記学習許可の判定手段が、少なくともエンジンが所定の基準回転数範囲にあるアイドル状態であって、かつ補機負荷等が無負荷であり、この状態が所定時間以上継続しているときに学習許可を判定する。
【００１５】
第７の発明は、前記噴射量誤差演算手段が、エンジン回転数の積算値、走行距離、経過時間に関連する重み係数のうち少なくとも一つを用いて、前記補正噴射量と実噴射量との誤差を加重平均処理する。
【００１６】
【作用・効果】
第１の発明において、もし、アイドル状態における補機負荷等を一切考慮しなければ、一定のアイドル回転数を維持するのに必要な燃料補正量は、そのまま目標噴射量と実際の噴射量との誤差分に相当する。
【００１７】
しかし、アイドル回転数を一定に維持するのに必要な補正量は、そのときエンジンにかかる補機負荷の状態等によっても変化する。目標とする燃料噴射量と実際の噴射量とが一致していたとしても、補機負荷状態によって燃料の補正量が相違する。したがって、これら補機負荷状態等に応じて予想される燃料噴射量に相当するアイドル回転数を一定に維持するのに必要なアイドル実相当噴射量を設定しておき、これと補正後の燃料噴射量を比較すれば、補機負荷等の影響を除いた燃料噴射量の差分が正しく判断できる。
【００１８】
さらに、この差分を燃料噴射量の誤差とするにあたり、これを燃料噴射ノズルの作動特性に基づいて算出するノズル誤差補正値により修正する。このため、燃料噴射ノズルの生産バラツキや経時変化などがあり、これらに起因して燃料噴射量の誤差が発生している場合でも、この誤差分を正確に反映して精度よく燃料噴射量誤差を算出することができる。
【００１９】
基本の燃料噴射量をこのようにして求めた噴射量誤差に基づいて修正し、目標噴射量とすれば、これは実際の燃料噴射量と一致し、したがって、この目標噴射量に基づいて各種の制御パラメータを制御することにより、実際の燃焼状態に応じての各種パラメータ制御が行え、排気特性や燃費特性を悪化させることなく、最良の制御が実現できる。
【００２０】
なお、実相当噴射量は各種パラメータの入力状態に応じて決定され、したがって補機負荷、電気負荷等に対応した、実際のアイドル噴射量を正確に反映したものとなり、また、噴射量誤差は順次学習されていくので、燃料噴射特性の経時変化などを含む変動要因を補償し、常に精度よく噴射量誤差を算出できる。
【００２１】
第２の発明において、噴射ノズルの初期リフトが設定値よりも小さくなるほど燃料噴射量が少なくなり、したがって、これに応じてノズル誤差補正値を設定することで、燃料噴射ノズルの生産バラツキ、あるいは経時変化があっても、常にに正確にノズル噴射量誤差を演算できる。
【００２２】
第３、第４の発明において、燃料圧送時期を一定としたときの噴射ノズルのリフト開始時期が設定値よりも早くなるほど、ノズル開弁圧力が低く、燃料噴射量が多くなる。したがって、このリフト開始時期に応じてノズル誤差補正値を設定することで、噴射量誤差をそれだけ正確に演算できる。
【００２３】
第５の発明において、ノズル誤差の影響は、噴射ノズルのリフト及び開弁時間の大きくなる運転条件において大きく、アイドル状態に近づくほど小さくなり、したがって、これに応じた基本補正値により、ノズル誤差補正値を修正することで、あらゆる運転領域においてノズル誤差の影響を相対的に小さくできる。
【００２４】
第６の発明において、学習許可が、エンジン回転がアイドル状態の無負荷で安定しているときにのみ行われるので、外乱による誤差の影響をそれだけ小さくして、制御の安定性を高められる。
【００２５】
第７の発明において、補正噴射量と実噴射量の偏差を演算するにあたり、エンジンの生産後の回転数の積算値、走行距離、あるいは経過時間など、燃料噴射ノズルからの噴射量が変動する要因を基にして、加重平均処理するので、補正噴射量と実噴射量との偏差を正確に演算することができる。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態について添付図面に基づいて説明する。
【００２７】
図３８において、エンジン回転に同期して回転駆動される燃料噴射ポンプ１の入力軸６ａには、燃料を予圧するフィードポンプ６が取付けられ、さらに同軸上には入力軸６ａと同一的に回転すると共に、軸方向に往復運動するように連結されたプランジャ２が配置される。
【００２８】
フィードポンプ６はポンプ室７に加圧した燃料を送り出し、かつ余剰燃料は図示しない燃料タンクへと還流され、ポンプ室７の圧力を一定に維持する。
【００２９】
プランジャ２には気筒数に対応したカム山をもつフェイスカム２ａが同軸に設けられ、フェイスカム２ａがローラ８ａに乗り上げる毎にプランジャ２が軸方向に往復運動する。例えば６気筒エンジンならば、入力軸６ａが１回転すると、この間にフェイスカム２ａが６回だけローラ８ａに乗り上げ、プランジャ２が６回往復運動する。プランジャ２が往復運動すると、その都度、プランジャ室２ｂに燃料を吸込み、加圧する。なお、２ｋはフェイスカム２ａに対抗してプランジャ２を押し戻すリタンースプリングである。
【００３０】
プランジャ２の伸び出し行程において、プランジャ室２ｂには、前記ポンプ室７からの燃料が、燃料停止弁１０及びプランジャ２に設けたスリット２ｊを経由して吸入される。
【００３１】
これに対して、プランジャ２の圧縮行程でプランジャ室２ｂの加圧燃料を燃料噴射ノズルに圧送するため、プランジャ２の軸心に沿って、プランジャ室２ｂと連通する連通路２ｃが形成され、この連通路２ｃは途中において半径方向に分岐する高圧通路２ｄをもち、またその先端部において同じく半径方向に貫通する放出通路２ｅが形成される。
【００３２】
プランジャ２の回転位置に応じて高圧通路２ｄと選択的に接続するように、プランジャ２の周囲のシリンダ２ｆの内周には、エンジン気筒数に対応した数のポート２ｇが均等に配置され、各ポート２ｇにはそれぞれデリバリバルブ２ｈ（１つだけしか図示していない）が接続し、このデリバリバルブ２ｈから図示しない燃料噴射ノズルへと燃料が圧送される。
【００３３】
プランジャ２は１回転する度に６回往復し、その都度吸入した燃料を加圧するが、加圧燃料が連通路２ｃから高圧通路２ｄに押し込まれ、このときプランジャ２の回転位置により連通するポート２ｇに加圧燃料が送り込まれ、対応するデリバリバルブ２ｈを介して燃料噴射ノズルに燃料が圧送される。
【００３４】
一方、プランジャ２の外周にはコントロールスリーブ３が摺動自在に嵌合し、通常は前記放出通路２ｅを被覆して閉じているが、プランジャ２の圧縮方向への移動により、やがて放出通路２ｅを解放する。これにより、プランジャ室２ｂの圧力が解放され、デリバリバルブ２ｈから燃料噴射ノズル１１への燃料の圧送が終了する。
【００３５】
したがって、燃料噴射ノズルに送り込まれる燃料量は、コントロールスリーブ３の位置により変化し、プランジャ２の圧縮方向への移動時に、早期に放出通路２ｅを解放すれば、燃料噴射量は少なく、逆に放出通路２ｅの解放時期が遅くなると、燃料噴射量は多くなる。
【００３６】
この燃料噴射量を制御するため、コントロールスリーブ３の位置を自由に変化させるロータリソレノイド４が設けられ、このロータリソレノイド４にはコントローラ１８からの燃料の噴射信号が供給され、これに応じてコントロールスリーブ３の位置を変える。なお、コントロールスリーブ３の位置は位置センサ５によって検出され、コントローラ１８にフィードバックされる。
【００３７】
次に、前記したフェイスカム２ａが乗り上げるローラ８ａは、タイマピストン８によって、そのフェイスカム２ａの円周方向の位置が制御される。なお、図示したタイマピストン８は、説明の便宜上、実際の位置から９０度だけ回転させてある。タイマピストン８の両側には、低圧室８ｂと高圧室８ｃとが設けられ、高圧室８ｃの圧力は、コントロールバルブ９によって高圧燃料の一部を低圧室８ｂに逃がす量を制御することにより調整され、これによってタイマピストン８の位置が変化する。
【００３８】
タイマピストン８の位置が変化し、フェイスカム２ａの回転方向にローラ８ａの位置を進めると、フェイスカム２ａがローラ８ａに乗り上げる位置が相対的に遅れ、プランジャ２による燃料の加圧開始時期、つまり燃料の噴射時期が遅くなり、逆にフェイスカム２ａの回転と反対方向にローラ８ａの位置を遅らせると、プランジャ２による加圧開始時期が早まり、燃料噴射時期が早くなる。
【００３９】
前記したコントローラ１８からの信号により、運転状態に応じてコントロールバルブ９の作動が制御され、タイマピストン８の位置が調整され、燃料噴射時期が進角、遅角制御される。
【００４０】
コントローラ１８には、燃料噴射ノズル１１の開弁時期及びリフト量を検出するノズルリフトセンサ１２と、燃料噴射ポンプ１に供給される燃料温度を検出する燃料温度センサ１５と、エンジン冷却水温を検出する冷却水温センサ１３と、アクセル開度を検出するアクセル開度センサ１６と、ポンプ回転数を検出する回転数センサ１４などからの信号が入力し、これらに基づいて燃料噴射量、噴射時期の制御信号を演算し、出力する。
【００４１】
そして、本発明では、このコントローラ１８によって制御される燃料噴射量について、運転状態に応じて決まる目標噴射量と、この目標噴射量信号に基づいて実際に噴射される噴射量とが一致するように、この目標噴射量を以下のようにして修正する。
【００４２】
図１は、コントローラ１８で実行されるこの制御動作の内容をブロック図として表しものであり、図において、１０１はエンジン回転数やアクセル開度（負荷）などを含む運転状態を検知する手段であり、１０２はこれらの各出力から基本となる燃料噴射量を演算する手段である。また、１０３はアイドルスイッチなどの出力からアイドル運転状態を判定する手段、１０４は例えばスタータスイッチ、イグニッションスイッチ、パワステスイッチ、電気負荷信号、ニュートラルスイッチ、エアコンスイッチや、燃料温度、エンジン冷却水温、車速、電源電圧、エンジン回転数センサからの各種パラメータを入力する手段である。
【００４３】
１０５は各種パラメータ入力手段１０４の出力に基づいて、さまざまな条件下において、アイドル運転時に目標回転数を維持するため、実際に噴射していると予想される噴射量を演算する実相当噴射量の演算手段である。
【００４４】
例えばエアコンの作動しているときは、非作動時に比較して、アイドル回転数を目標回転数に維持するのに必要な燃料の噴射量は大きくなり、これに応じて実相当噴射量も大きくなる。
【００４５】
１０６は上記した燃料噴射量演算手段１０２、アイドル状態判定手段１０３，各種パラメータ入力手段１０４からの信号に基づいてアイドル運転時に目標回転数と一致するように噴射量を補正する手段である。また、１０７はアイドル状態判定手段１０３と各種パラメータ入力手段１０４の出力に基づいて、後述するように、アイドル運転状態での特定の条件においてのみ燃料噴射量誤差の学習を行うべく、学習の許可判定を行う手段である。
【００４６】
１１１は燃料噴射ノズルの初期リフト量あるいは開弁圧（噴射時期に対応）などの作動状態を検出する手段であり、１１２はこのノズル作動状態検出手段１１１の出力を基にして、ノズル作動状態に応じたノズル噴射量誤差の補正値であるノズル誤差反映ゲインを演算する手段である。
【００４７】
そして、１０８はアイドル燃料補正手段１０６と、実相当噴射量演算手段１０５と、ノズル誤差反映ゲイン演算手段１１２と、学習許可判定手段１０７との出力に基づいて、学習が許可された運転状態において、補正されたアイドル燃料噴射量と実際の噴射量との偏差と、これに対する噴射ノズルの誤差反映ゲインとから噴射量誤差を演算する誤差演算手段である。
【００４８】
１０９は基本燃料噴射量をこの噴射量誤差に基づいて修正し、制御パラメータ制御用の噴射量を演算する手段であり、１１０はこの制御用噴射量にしたがって各制御パラメータ、例えばＥＣＲ、燃料噴射時期、スワール制御弁などを制御する制御手段である。
【００４９】
次に、上記構成の制御動作について、フローチャートにしたがって、さらに詳しく説明する。
【００５０】
まず、図２は基本燃料噴射量を演算するフローであり、エンジン回転に同期したタイミングで処理が行われる（Ｒｅｆ同期演算）。
【００５１】
ステップ１、２でエンジン回転数Ｎｅとアクセル開度Ｃｌを読み込み、ステップ３では、これらＮｅとＣｌに基づいて、図３に示すようなマップから燃料噴射量を設定し、これをＭｑｄｒｖとする。ステップ４ではこの燃料噴射量Ｍｑｄｒｖについてエンジン冷却水温等による増量補正を行い、基本燃料噴射量Ｑｓｏｌ１とする。そして、ステップ５ではアイドル状態を判定するスイッチ、例えばアクセルの全閉位置を検出するスイッチの出力に基づいてアイドル状態を判定する。アイドル状態であるときは、ステップ６に進み、エンジン回転数Ｎｅがアイドル状態での目標回転数Ｎｓｅｔとなるように燃料噴射量を補正し、この補正後の値をＱｓｏｌ２とする。
【００５２】
なお、目標アイドル回転数Ｎｓｅｔの設定については、図４で説明する。
【００５３】
これに対して、アイドル状態に無いときは、そのままＱｓｏｌ１をＱｓｏｌ２として処理を終了する。
【００５４】
図４はアイドル運転状態において、目標アイドル回転数Ｎｓｅｔを設定するフローである（Ｒｅｆ同期演算）。
【００５５】
ステップ１で水温Ｔｗを読み込み、ステップ２では、図５のようなテーブルから、Ｔｗに基づいて目標アイドル回転数Ｎｓｅｔを設定し（水温が低いほど目標回転数は高くなる）、処理を終了する。
【００５６】
次に図６は、実際の噴射量と一致するように噴射量の誤差分を取り除いた燃料噴射量を演算するフローである（Ｒｅｆ同期演算）。
【００５７】
ステップ１で各種センサやスイッチ類の信号を読み込み、ステップ２では燃料噴射量の誤差を学習するか否かの許可判定を行う。ただし、この学習許可判定については、図２４、図２５で詳しく説明する。
【００５８】
ステップ３では燃料噴射量の誤差を演算するが、この噴射量誤差の具体的な演算内容については、図２６で詳しく説明する。
【００５９】
そして、ステップ４では誤差分を修正された制御目標噴射量Ｑｓｏｌ＿ｒｅａｌを演算して、処理を終了する。この噴射量Ｑｓｏｌ＿ｒｅａｌの演算については、この後の図７で説明する。
【００６０】
図７は目標噴射量Ｑｓｏｌ＿ｒｅａｌを演算するためのフローである（Ｒｅｆ同期演算）。
【００６１】
ここでは、まずステップ１で、図３４で求めた燃料噴射量の誤差学習値Ｄｑｓｏｌ１と、基本噴射量Ｑｓｏｌ２を読み込む。次にＱｓｏｌ２からＤｑｓｏｌ１を除いた値（差し引いた値）を目標噴射量Ｑｓｏｌ＿ｒｅａｌとして、処理を終了する。つまり、後述するように求めた噴射量誤差の学習値Ｄｑｓｏｌ１に基づいて基本燃料噴射量を補正し、制御噴射量信号とする。
【００６２】
次に、図８から図１５によって、制御目標噴射量Ｑｓｏｌ＿ｒｅａｌを用いて各種制御パラメータ、つまりＥＧＲ率や燃料噴射時期、吸気スワール等を制御するための手順について説明する。
【００６３】
まず、図８は目標噴射量Ｑｓｏｌ＿ｒｅａｌを用いて目標のＥＧＲ率を設定するためのフローである（Ｒｅｆ同期演算）。
【００６４】
始めにステップ１で、エンジン回転数Ｎｅ、目標噴射量Ｑｓｏｌ＿ｒｅａｌ、エンジン冷却水温Ｔｗを読み込む。ステップ２ではエンジン回転数Ｎｅと目標噴射量Ｑｓｏｌ＿ｒｅａｌとから、図９示すようなマップを検索し、基本目標ＥＧＲ率Ｍｅｇｒｂを演算する。この場合、目標ＥＧＲ率は、エンジンの使用頻度の高い領域、つまり低回転、低負荷（低噴射量）になるほど大きくなり、スモークが発生しやすい高出力時には小さくする。
【００６５】
次にステップ３で冷却水温Ｔｗから図１０で示すような、エンジン冷却水温に対応して目標ＥＧＲ率を補正する係数テーブルを検索し、補正係数Ｋｅｇｒ＿ｔｗを演算する。そして、ステップ４において、基本目標ＥＧＲ率と補正係数とから、目標ＥＧＲ率Ｍｅｇｒを次式により算出する。
【００６６】
Ｍｅｇｒｂ＝Ｍｅｇｒｂ＊Ｋｅｇｒ＿ｔｗ
ステップ５ではエンジンの状態が完爆状態か否かを判定する。ただし、この完爆状態の判定は、図１１で説明する。ステップ６では完爆状態と判定されたときは、そのまま終了し、完爆状態ではないと判定されたときは、目標ＥＧＲ率Ｍｅｇｒを０として処理を終了する。
【００６７】
これにより、エンジンの完爆後にＥＧＲの制御が行われ、完爆前は安定した始動性を確保するためにもＥＧＲは行われない。
【００６８】
図１１はエンジンの完爆を判定するフローで、例えば１０ｍｓ毎に時間同期したタイミングで演算される。
【００６９】
ステップ１でエンジン回転数Ｎｅを読み込み、ステップ２で完爆回転数に相当する完爆判定スライスレベルＮＲＰＭＫと比較し、Ｎｅの方が大きいときは完爆と判断し、ステップ３に進む。ここでは、完爆判定後のカウンタＴｍｒｋｂと所定時間ＴＭＲＫＢＰとを比較し、Ｔｍｒｋｂが所定時間よりも大きいときは、ステップ４に進み、完爆したものとして処理を終了する。
【００７０】
これに対して、ステップ２でＮｅの方が小さいときは、ステップ６に進み、カウンタＴｍｒｋｂ＝０にクリアし、ステップ７で完爆状態には無いものとして処理を終了する。また、ステップ２でＮｅよりも大きいときでも、ステップ３でカウンタＴｍｒｋｂが所定時間よりも小さいときは、ステップ５でカウンタをインクリメントし、Ｔｍｒｋｂ＝Ｔｍｒｋｂ＋１とし、完爆で無いと判断する。
【００７１】
これらにより、エンジン回転数が所定値（例えば４００ｒｐｍ）以上であって、かつこの状態が所定時間にわたり継続されたときに完爆したものと判定するのである。
【００７２】
図１２は制御目標噴射量Ｑｓｏｌ＿ｒｅａｌを用いて、燃料噴射時期を設定するフローである（１０ｍｓ同期演算）。
【００７３】
ステップ１ではエンジン回転数Ｎｅ、目標噴射量Ｑｓｏｌ＿ｒｅａｌを読み込み、ステップ２では、これらに基づいて例えば図１３に示すような、噴射時期マップから目標噴射時期Ｍｉｔを検索する。この検索したＭｉｔに対して、ステップ３で各種補正を行い、最終的な目標噴射時期Ｉｔｓｏｌを設定して処理を終了する。
【００７４】
また、図１４は制御目標噴射量Ｑｓｏｌ＿ｒｅａｌを用いて、吸気系のスワール制御弁の開度を制御するフローである（１０ｍｓ同期演算）。
【００７５】
ステップ１ではエンジン回転数Ｎｅ、目標噴射量Ｑｓｏｌ＿ｒｅａｌを読み込み、ステップ２ではＮｅから、例えば図１５に示すように設定したスワール制御弁切換スライスレベルＱｓｃｖを演算し、ステップ３でＱｓｏｌ＿ｒｅａｌとＱｓｃｖとを比較し、もし、Ｑｓｏｌ＿ｒｅａｌが大きいときは、ステップ４に進み、スワール制御弁をオフにし、逆にＱｓｏｌ＿ｒｅａｌが小さいときは、ステップ５に移行してスワール制御弁をオンにして処理を終了する。
【００７６】
次ぎに図１６は、基本燃料噴射量をＱｓｏｌ２を許容最大噴射量との関係に基づいて規制し、エンジンに供給する最終的な燃料噴射量を設定するためのフローで、エンジン回転に同期して演算される。
【００７７】
ステップ１で目標噴射量Ｑｓｏｌ２と、図１８、図１９に示すようにして求める最大噴射量Ｑｆｕｌを比較し、Ｑｓｏｌ２がこれよりも大きいときにはステップ２に進み、燃料噴射量ＱｓｏｌにＱｆｕｌを設定し、これに対してＱｓｏｌ２が小さいときには、ステップ３に進みＱｓｏｌにＱｓｏｌ２を設定し、処理を終了する。
【００７８】
なお、図１７は、このようにして求めた燃料噴射量Ｑｓｏｌから、実際に噴射量を制御する出力信号に変換するためのマップで、Ｑｓｏｌが大きくなるほど出力信号（電圧）Ｕαｓｏｌは大きくなる。
【００７９】
図１８は燃料噴射量の最大値を規制するため許容最大噴射量を演算する基本フローである（Ｒｅｆ同期演算）。
【００８０】
まず、ステップ１で各種センサやスイッチ等の信号を読み込み、ステップ２で誤差学習許可判定を行う（図２４、図２５で後で説明する）。ステップ３で噴射量誤差を演算し（図２６によって後で説明する）、ステップ４で最大噴射量を演算して処理を終える。ただし、これについては図１９で説明する。
【００８１】
図１９は最終的な最大燃料噴射量Ｑｆｕｌを演算するためのフローである（Ｒｅｆ同期演算）。
【００８２】
ステップ１でエンジン回転数Ｎｅを読み込み、ステップ２ではこのＮｅに基づいて、例えば図２０に示すようなテーブルから、限界空気過剰率Ｋｌａｍｂを設定する。ステップ３では後述（図２１、図２３参照）するようにして求めた１シリンダ当たりの吸入空気量Ｑａｃを読み込み、ステップ４でこれらＱａｃ、Ｋｌａｍｂ、噴射量誤差Ｄｑｓｏｌｌを用いて、最大噴射量を次式のようにして算出する。
【００８３】
Ｑｆｕｌ＝（Ｑａｃ／Ｋｌａｍｂ）／１４．７＋Ｄｑｓｏｌｌ
このようにしてＱｆｕｌを演算したら処理を終了する。
【００８４】
図２１は吸入空気量を演算するためのフローである。
【００８５】
ステップ１でエアフローメータの出力電圧Ｕｓを読み込み、ステップ２で図２２に示すような、電圧流量変換テーブルから、このＵｓに基づいて、吸入空気量Ｑａｓ０＿ｄに変換する。さらに、ステップ３でこのＱａｓ０＿ｄの加重平均処理を行い、Ｑａｓ０を求め、処理を終了する。なお、この処理は、例えば４ｍｓｅｃＪＯＢ等の所定時間間隔で実行する。
【００８６】
図２３はこの吸入空気量に基づいてシリンダに流入する空気量を演算するフローである。（Ｒｅｆ同期演算）。
【００８７】
ステップ１ではエンジン回転数Ｎｅを読み込み、ステップ２では前記した空気量Ｑａｓ０とＮｅとから、次式のようにして、１吸気行程当たりの吸入空気量Ｑａｃ０に変換する。
【００８８】
Ｑａｃ０＝（Ｑａｓ０／Ｎｅ）×ＫＣ    ただし、ＫＣは定数
ステップ３ではエアフローメータ（吸入空気量計測手段）から吸気コレクタまでの輸送遅れ分のディレイ処理を、Ｑａｃ＝Ｑａｃ０ｎ−Ｌとして行う。ただしＬは定数。そして、ステップ４では、次式のようにして、コレクタ内でのダイナミクス相当の遅れ処理を行い、１シリンダ当たりの吸入空気量Ｑａｃを算出するのである。
【００８９】
Ｑａｃ＝Ｑａｃｎ−１×（１−ＫＶ）＋Ｑａｃｎ×ＫＶ  ただし、ＫＶは定数
このようにして、処理を行い終了する。
【００９０】
次に図２４から図３７によって、本発明の要点でもある、燃料噴射量の誤差の演算、学習について説明する。
【００９１】
まず、図２４、図２５は燃料噴射量の誤差を学習することを許可するかどうかを判定するためのフローである（Ｒｅｆ同期演算）。
【００９２】
この許可判定は、次のようにしてアイドル回転時における種々の条件を検出して行われるもので、まず、ステップ１でエンジンのスタートスイッチＳＴＳＷがオンかどうか判断し、オン（始動中）のときはステップ１６に進み、学習許可カウンタＣｔｒｌｒｎを所定値ＴＭＲＬＲＮ＃に設定する。これに対して、オンでないときは、ステップ２に進み、イグニッションスイッチＩＧＮＳＷがオンかどうか判断する。オフ（エンジン停止）のときは、上記したステップ１６に進むが、オンのときは、ステップ３でアイドルスイッチＩＤＬＥＳＷがオンかどうかを判断する。
【００９３】
アイドルスイッチオンのときは、ステップ４に進んで車速ＶＳＰがゼロかどうか判断するが、否のときは上記と同じくステップ１６に進む。車速がゼロのときは（車両停車状態）、ステップ５に進み、エンジン回転数Ｎｅが、アイドル目標回転Ｎｓｅｔに所定値ＮＬＲＮＨ＃を加えた値よりも小さいかどうかを判断する。もし、回転数が低いときは、ステップ６に進むが、否のときはステップ１６に移行する。
【００９４】
ステップ６においては、エンジン回転数Ｎｅをアイドル目標回転Ｎｓｅｔから所定値ＮＬＲＮＬ＃を引いた値よりも大きいかどうか判断する。回転数がこれよりも高いときは、ステップ７に進むが、そうでないときは、ステップ１６に移行する。
【００９５】
このようにして、アイドル回転数が、目標アイドル回転数を基準にして所定の範囲内にあるときはステップ７に進む。
【００９６】
ステップ７では電源電圧Ｖｂを所定値ＶＢＬＲＮ＃と比較し、電源電圧が所定値以上のときは、ステップ８に進み、否のときはステップ１６に移行する。
【００９７】
ステップ８ではエンジン冷却水温Ｔｗを所定値ＴＷＬＲＮＨ＃と比較し、所定値よりも低いときは、ステップ９に進むが、そうでないときはステップ１６に移行する。ステップ９では冷却水温Ｔｗを、前記したＴＷＬＲＮＨ＃よりも低い所定値ＴＷＬＲＮＬ＃と比較し、これよりも高いとき、つまりエンジン冷却水温が所定の範囲にあるときはステップ１０に進むが、そうでないときはステップ１６に移る。
【００９８】
ステップ１０では燃料温度Ｔｆｎを所定値ＴＦＬＲＮＨ＃と比較し、もしこれより低いときはステップ１１に進むが、高いときはステップ１６に移行する。
【００９９】
ステップ１１では、燃料温度Ｔｆｎを、前記ＴＦＬＲＮＨ＃よりは低い所定値ＴＦＬＲＮＬ＃と比較し、これよりも高いとき、つまり、燃料温度が所定の範囲にあるときは、ステップ１２に進むが、そうでないときは、やはりステップ１６に移行する。
【０１００】
ステップ１２で電源電圧ＶｂがＶＢＱＬＬ＃よりも高いことを確認したら、ステップ１３に進み、パワステスイッチＰＷＳＴＳＷがオンかどうか判断し、オフのとき、つまりパワーステアリングが非作動のときは、ステップ１４に進み、ここで電気負荷、例えばヘッドライトやディフォッガ等がオフのときにステップ１５に進むが、ステップ１３、１４において、補機等を含む負荷があるときは、ステップ１６に移行する。
【０１０１】
そして、アイドル回転中であって、補機などの負荷が無い状態では、ステップ１５において、学習許可状態カウンタＣｔｒｌｒｎをデクリメントし、つまりＣｔｒｌｒｎ＝Ｃｔｒｌｒｎ−１とし、ステップ１７でカウンタＣｔｒｌｒｎがゼロよりも大きいかどうかを判断する。もし、ゼロならば、ステップ１８に進んで学習許可フラグをセット、すなわち、Ｆｌｇｑｌｎ＝１とするが、ゼロよりも大きいときは、ステップ１９に進み、学習許可フラグをクリアし、Ｆｌｇｑｌｎ＝０にして処理を終了する。
【０１０２】
このようにして、エンジンが適正な範囲のアイドル回転中であって、後述するようにニュートラルスイッチ、エアコンスイッチを除く、補機等の負荷がかからない状態にあり、かつこの状態が所定時間継続したときに学習許可フラグがセットされ、燃料噴射量の誤差学習が許可される。
【０１０３】
図２６は燃料噴射量の誤差を演算するための基本フローである（Ｒｅｆ同期演算）。
【０１０４】
まず、ステップ１では、後で詳しく説明する燃料噴射ノズルの作動特性に応じた学習値反映ゲイン補正量Ｇｌｑｆｈを演算する。ステップ２で前記した学習許可フラグＦｌｇｑｌｎの状態を見て、フラグＦｌｇｑｌｎ＝１の学習許可時ならば、ステップ３に進み、クリアされていたらステップ５に移行する。
【０１０５】
ステップ３ではアイドル状態において目標回転数を維持するのに必要な、実際に供給していると考えられる燃料噴射量Ｑｓｏｌｉｂを演算する（図３３で詳しく説明する）。さらにステップ４では図３４に示すようにして、噴射量の誤差学習値Ｄｑｓｏｌ￥を演算する。
【０１０６】
そして、ステップ５で噴射量誤差Ｄｑｓｏｌｌを、誤差学習値と学習値反映ゲイン補正量とを乗じて、Ｄｑｓｏｌｌ＝Ｄｑｓｏｌ￥×Ｇｌｑｆｈとして算出する。
【０１０７】
なお、学習許可フラグが立っていないときは、ステップ２から５に進み、前回の学習値と学習値反映ゲイン補正量とから噴射量誤差を算出する。
【０１０８】
いずれにしても、後述するように、燃料噴射ノズルの作動特性に応じて学習値反映ゲイン補正量を用いて噴射量誤差を修正することにより、ノズル噴射特性に起因しての誤差分を修正し、アイドル状態以外での噴射量誤差を正確に求められる。
【０１０９】
図２７には燃料噴射ノズルの作動状態に応じた学習値反映ゲイン補正量を演算するフローの一実施形態を示す。
【０１１０】
ここでは噴射ノズルの初期リフトの大きさに応じての補正分を算出するもので、ステップ１で学習許可フラグＦｌｇｑｌｎがセットされているかどうかを判断したら、ステップ２でノズルの初期噴射量（初期リフト量）を検出する。そして、ステップ３では、例えば図２８に示すような特性の学習値反映ゲイン補正量Ｋ＿Ｇｌｑｆｈが、初期リフト量に基づいて読み込まれ、Ｋ＿Ｇｌｑｆｈ￥としてメモリに格納される。なお、￥はバックアップＲＡＭを意味する。
【０１１１】
なお、補正量Ｋ＿Ｇｌｑｆｈが図２８のように、初期ノズルリフト量が標準値に近いときは１．０に近づき、標準よりも小さいときは、１．０より小さく、逆に標準よりも大きいときは１．０よりも大きくなる。例えば、標準値よりも実際の初期ノズルリフト量が小さいと、燃料の噴射量は不足する。この場合にはアイドル回転数が低下するので、目標アイドル回転数を維持するために、実際の噴射量を目標噴射量に近づけるように、燃料噴射量信号が増量補正される。この状態では、見かけ上の噴射量と実際の噴射量との間には誤差が生じるので、この噴射量補正値Ｑｓｏｌ２をＥＧＲ量やスワール弁の制御のために用いると、実際の噴射量には対応しない制御となる。したがって、初期ノズルリフト量が標準値よりも小さい場合、換言すると、見かけ上の噴射量が大きい場合は、このノズル誤差を補償するための補正値Ｋ＿Ｇｌｑｆｈを１．０よりも小さくし、同じく初期ノズルリフト量が標準値よりも大きい場合は、Ｋ＿Ｇｌｑｆｈを１．０より大きくする必要がある。なお、Ｋ＿Ｇｌｑｆｈが１．０の場合は、実質的に学習反映ゲインの補正は行われない。
【０１１２】
次ぎに、図２９には、燃料噴射ノズル作動状態に応じた学習値反映ゲイン補正量を演算する他の実施形態を示す。
【０１１３】
ここでは、噴射ノズルの開弁時期に応じての補正分を算出するもので、まず、ステップ１で学習許可フラグＦｌｇｑｌｎがセットされているかどうか判断し、学習許可の場合には、ステップ２以下に進むが、Ｆｌｇｑｌｎ＝１でない場合には、そのまま処理を終了する。
【０１１４】
ステップ２では燃料噴射ポンプの燃料圧送開始時期（噴射時期）を一定値に固定する信号が出力され、これは例えば、噴射時期を制御するタイマピストンの位置が一定となるように、タイマピストン制御電磁弁の制御デューティを制御することにより行う。ステップ３では燃料噴射ノズルのリフト開始時期が読み込まれ、ステップ４で基準クランク角度位置が読み込まれる。そして、ステップ５ではノズルリフト開始時期と基準クランク角度位置との差として、噴射開始時期ＤＩＴが演算される。なお、基準クランク角度位置は、上死点後の所定のオフセット角度位置に設定されるので、リフト開始時期が早くなるほど、ＤＩＴは大きくなる（進角側になる）。
【０１１５】
そして、ステップ６において、図３０に示すような特性に設定した学習値反映ゲイン補正量Ｋ＿Ｇｌｑｆｈが、このＤＩＴに基づいて読み出され、Ｋ＿Ｇｌｑｆｈ￥として、メモリに格納され、処理を終了する。
【０１１６】
燃料の圧送期間を一定に設定した場合、例えばノズルの開弁圧が設定値より低いほど、噴射が開始される時期が早くなり、噴射量が増加する。したがって、ノズルの開弁圧が設定値より低い場合は、実際の噴射量が設定噴射量よりも多くなり、アイドル回転数が上昇するため、目標回転数を維持するために燃料噴射量を減少するような噴射量補正値ＱＳｏｌ２となり、見かけ上は燃料噴射量が小さくなる。また、ノズル開弁圧が高いときはこれとは逆の状態になる。この噴射量補正値ＱＳｏｌ２を前記のようにそのままＥＧＲ制御などに用いると、誤差が生じるので、これを補正するための補正値Ｋ＿Ｇｌｑｆｈは、図３０のように、燃料噴射ノズルのリフト開始時期が設定値よりも早い（進角）場合には、つまり見かけ上の噴射量が実際よりも小さいときは、これを補正するために、進み度合いに応じて１．０よりも大きくし、逆にリフト開始時期が設定値よりも遅く、見かけ上の噴射量が大きいときは、１．０よりも遅れ度合いに応じて小さくするのである。
【０１１７】
なお、図２７と２９のフローは、ノズルリフト信号による割込演算であり、周期的にはＲＥＦ信号に同期して行われる。
【０１１８】
図３１は学習値反映ゲインＧｌｑｆｈを演算するためのフローであり、時間同期またはバックグウンドＪＯＢとして実行される。
【０１１９】
ステップ１ではアイドルスイッチがオンかどうか判断し、否ならばステップ４に移行するが、オンのときはステップ２で車速がゼロかどうか判定する。もし車速がゼロでないときは、ステップ４に移るが、ゼロのときはステップ３で学習反映ゲインＧｌｑｆｈ＝１．０として処理を終了する。
【０１２０】
車速ゼロでないときは、ステップ４で、例えば図３２に示すような基本学習値反映ゲインマップから、エンジン回転数Ｎｅと噴射量Ｑｓｏｌとから、基本学習値反映ゲインＢ＿Ｇｌｑｆｈを読み込み、さらにステップ５で前述した学習値反映ゲインＫ＿Ｇｌｑｆｈを読み込み、ステップ６で基本学習値反映ゲインＢ＿Ｇｌｑｆｈと学習値反映ゲインＫ＿Ｇｌｑｆｈを掛けて学習値反映ゲイン補正量Ｇｌｑｆｈを演算し、処理を終了する。
【０１２１】
なお、基本学習値反映ゲインＢ＿Ｇｌｑｆｈは、運転条件がアイドル状態に近いほど１．０に近づき、高負荷、高回転域になるほど小さくなる。
【０１２２】
次ぎに図３３は、アイドル運転状態で実際に噴射している想定される実相当噴射量Ｑｓｏｌｉｂを演算するためのフローである（Ｒｅｆ同期演算）。
【０１２３】
ステップ１では変速機のニュートラルスイッチＮｅｕｔＳＷがオンかどうか判断し、オンでニュートラル状態ならばステップ２に進み、オフならばステップ５に進む。
【０１２４】
ステップ２ではエアコンスイッチＡ／ＣＳＷがオンかどうか判断し、オフならばステップ３に進んで、噴射量Ｑｓｏｌｉｂ＝ＱＳＯＬＬ０＃とし、またオンならばＱｓｏｌｉｂ＝ＱＳＯＬＬ１＃とする。
【０１２５】
一方、ステップ５ではエアコンスイッチがオンかどうかを見て、オフならばステップ６に進み、噴射量Ｑｓｏｌｉｂ＝ＱＳＯＬＬ２＃とし、オンならばステップ７に進んでＱｓｏｌｉｂ＝ＱＳＯＬＬ３＃とし、処理を終了する。
【０１２６】
噴射量Ｑｓｏｌｉｂは、ニュートラルでないときの方が相対的に大きく、またエアコンスイッチがオンのときの方が相対的に大きくなる。
【０１２７】
なお、これらの噴射量は、アイドル回転数を目標回転数に維持するために必要な、予め設計等により想定されたアイドル運転状態での予想噴射量であり、補機負荷等が増えればそれだけ噴射量は増加する。
【０１２８】
ところで、前記した学習許可の判定条件からは、ニュートラルスイッチとエアコンスイッチからの信号は除外されており、したがって、学習が許可されたアイドル状態において、この例では４つの条件について、それぞれ実相当噴射量が設定されることになる。そして、後述するように、噴射量誤差の学習は、制御の安定性、信頼性を高めるために、これら４つの条件ついて行われたものの荷重平均がとられるようになっている。
【０１２９】
なお、この例では、ニュートラルスイッチとエアコンスイッチとから条件を判定し、実相当噴射量を算出しているが、この他に、例えばパワステスイッチ、電気負荷信号、ニュートラルスイッチ、エアコンスイッチや、燃料温度、エンジン冷却水温、電源電圧、エンジン回転数センサ等に基づいて、各条件下においてそれぞれ予想されるアイドル運転状態での実相当噴射量を、同じようにして設定することができ、条件が増えるほど、学習精度の安定性が高まる。
【０１３０】
ただし、これら入力パラメータが変わるときは、学習許可条件もそれぞれ相違し、実相当噴射量の入力条件に入ったものについては、学習条件から除外されることになる。
【０１３１】
そして、図３４は基本燃料噴射量と実相当噴射量とに基づいて、噴射量誤差学習値Ｄｑｓｏｌ￥を演算するためのフローである（Ｒｅｆ同期演算）。
【０１３２】
まず、ステップ１では生産時からのエンジン回転の積分値ＳＮｅから加重平均時定数補正係数（回転積分重み補正係数）Ｋｌｓｎｅを、図３５のようなテーブルに基づいて設定する。
【０１３３】
なお、このテーブル特性はエンジン初期作動時の不安定な状態での学習ゲインを小さくし、経時的にエンジンの作動が安定してきた状態では、補正係数が１．０（補正無し）になる。
【０１３４】
ステップ２では生産時からの走行距離ＳＶｓｐから加重平均時定数補正係数（走行距離重み補正係数）ＫＬｓｖｓｐを、例えば図３６のようなテーブルから設定する。このテーブル特性についても、エンジン初期作動時の不安定要素を取り除くためのもので、走行距離に応じて補正係数が１．０に近づく。
【０１３５】
ステップ３ではエンジン生産時からの経過時間ＳＳｔｔｍからの加重平均時定数補正係数（経過時間重み補正係数）Ｋｌｓｓｔを、図３７のようなテーブルから設定する。この場合にも、エンジン初期作動時の不安定な状態での学習ゲインが小さくなるように設定してある。
【０１３６】
なお、これら各重み補正係数Ｋｌｓｎｅ、ＫＬｓｖｓｐ、Ｋｌｓｓｔについては、必ずしも全部でなく、少なくとも一つ求めればよい。
【０１３７】
次ぎにステップ４でニュートラルスイッチＮｅｕｔＳＷがオンかどうか判断し、オンならばステップ５に、またオフならばステップ８に進み、それぞれにおいて、エアコンスイッチＡ／ＣＳＷがオンかどうか判断する。
【０１３８】
ステップ５において、エアコンスイッチがオンならばステップ６に進み、加重平均時定数相当基本値ＫｌｃｏｎをＫＬＣ０＃とし、オフならばステップ７に進んでＫｌｃｏｎをＫＬＣ１＃にする。また、ステップ８において、エアコンスイッチがオンのときは、ステップ９に進み、加重平均時定数相当基本値ＫｌｃｏｎをＫＬＣ２＃にとし、オフのときはステップ１０に進んで、ＫｌｃｏｎをＫＬＣ３＃にする。
【０１３９】
このようにして補機負荷等の条件によって、学習ゲインを調整し、条件が相違したときの学習誤差の影響を小さくする。
【０１４０】
そして、ステップ１１で、この加重平均時定数相当基本値Ｋｌｃｏｎと、上記した重み補正係数Ｋｌｓｎｅ、ＫＬｓｖｓｐ、Ｋｌｓｓｔとから、加重平均時定数相当値Ｋｌｃを、Ｋｌｃ＝Ｋｌｃｏｎ×Ｋｌｓｎｅ×ＫＬｓｖｓｐ×Ｋｌｓｓｔとして演算する。ステップ１２では、このＫｌｃを０以上１以下の値となるように制限、つまりこの範囲を越えるときには、最小値で０、最大値で１となるように制限する。
【０１４１】
ステップ１３では基本燃料噴射量Ｑｓｏｌ２と、実相当噴射量Ｑｓｏｌｉｂとの差をとり、その偏差をＤｑｓｏｌ０とする。すなわち、Ｄｑｓｏｌ０＝Ｑｓｏｌ２−Ｑｓｏｌｉｂとする。
【０１４２】
つまり、所定のアイドル運転状態において、目標回転数を維持するのに必要な燃料噴射量と、そのときの実相当噴射量とから、燃料噴射量のずれ分Ｄｑｓｏｌ０を算出するのである。
【０１４３】
そして、ステップ１４では噴射量誤差学習値Ｄｑｓｏｌ￥を、これらずれ分Ｄｑｓｏｌ０と荷重平均時定数相当値Ｋｌｃとを用いて加重平均処理を行って求める。つまり、Ｄｑｓｏｌ￥＝Ｄｑｓｏｌ￥ｎ−１×（１−Ｋｌｃ）＋Ｄｑｓｏｌ０×Ｋｌｃとして演算する。
【０１４４】
このようにして、学習が許可された所定のアイドル運転状態において、そのときの目標アイドル回転数を維持するために補正された燃料噴射量と、補機負荷等に応じて設定された実相当噴射量との偏差に基づいて、燃料噴射量の偏差が求められ、これに補正値が乗算され、さらに加重平均されることにより、燃料噴射量誤差の学習値が求められるのである。
【０１４５】
次に全体的な作用について説明する。
【０１４６】
一般に、エンジンの生産バラツキ、燃料噴射ポンプや燃料噴射ノズルの生産バラツキ、あるいはこれらの経時劣化等があるため、基本的な燃料噴射量に対して実際の燃料噴射量との間には誤差が生じる。
【０１４７】
もし、この基本燃料噴射量に基づいて、各種制御パラメータ、例えば排気還流率、燃料噴射時期、吸気スワールなどを制御すれば、実際の燃料噴射量との誤差分だけ、エンジンの実際の燃焼条件とは対応しなくなる。したがって、そのときの実際の燃料噴射量に対しては過剰な排気還流が行われたり、あるいは噴射時期がずれ、これらにより排気中のスモークが増大したりする。
【０１４８】
各種制御パラメータを制御するための制御信号としての燃料噴射量が、実際の噴射量を正しく反映するならば、これらの問題が避けられる。
【０１４９】
そこで、本発明においては、次のようにして、この制御信号の信頼性を高めている。アイドル運転状態において、基本的な燃料噴射量が設定され、燃料噴射ポンプより各気筒の燃料噴射ノズルに燃料が圧送され、噴射される。このときアイドル回転数を一定に維持するため、エンジン回転数が検出され、この検出した回転数が目標とする一定回転数と一致するように、燃料噴射量が補正される。
【０１５０】
この場合、アイドル回転数を一定に維持するために演算された目標燃料噴射量と実際に供給される噴射量とが一致していれば、補正量はゼロとなるはずだが、誤差があればそれに対応して補正量が算出される。ただし、補機負荷等があれば、この補機負荷に応じて燃料を増量しないとアイドル回転数を一定に維持できない。このため、燃料噴射量の補正分には実際の噴射量とのずれ分に補機負荷等の変化分が含まれてくる。
【０１５１】
したがって、アイドル回転数を目標回転数とするために演算された燃料噴射量と実際の燃料噴射量との誤差は、単純に補正量だけからは判断できない。
【０１５２】
そこで、アイドル状態における各種パラメータ、例えばニュートラルスイッチ、エアコンスイッチ、パワステスイッチ、電気負荷信号、冷却水温、燃料温度などに基づいて、これらの入力条件下において、一定のアイドル回転数を維持するのに必要な、実際の燃料噴射量に相当する実相当噴射量を求める。これは、補機負荷等があったときに、それぞれの場合においてアイドル回転数を一定に維持するのに必要な噴射量を予測したものである。
【０１５３】
パワステスイッチやエアコンスイッチが入っている状態では、エンジンに負荷がかかり、アイドル回転数を一定に維持するのに必要な燃料噴射量は相対的に増加する。したがって、これらに応じて求めた実相当噴射量は、それだけ実際の燃料噴射量に近くなる。
【０１５４】
次に、このアイドル条件下において、実際のアイドル回転数を一定に維持するために補正した燃料噴射量と、この実相当噴射量との偏差に基づいて、噴射量のずれ分を演算する。実相当噴射量はそのときの補機負荷等の条件によって異なった値となり、したがって、補正後の噴射量からこの実相当噴射量を差し引いたものは、補機負荷分等を含まない噴射量のずれ分にのみ相当したものとなる。
【０１５５】
この噴射量のずれ分は燃料噴射ノズルの生産バラツキ、あるいは経時劣化等、さまざまな原因によって変動する。このため、上記した噴射量のずれ分については、燃料噴射ノズルの特性により、運転状態がアイドル状態から変化すると変動する可能性がある。
【０１５６】
そこで、燃料噴射量と実相当噴射量とのずれ分から噴射量の誤差を求めるのにあたり、このずれ分を燃料噴射ノズルの作動特性に基づいて算出するノズル誤差補正値により修正し、これを噴射量誤差とする。
【０１５７】
例えば、噴射ノズルの初期リフトが設定値よりも小さいときは、実際の燃料噴射量は相対的に少なくなる。あるいは、燃料圧送時期を一定としたときに、噴射ノズルのリフト開始時期が設定値よりも早くなれば、ノズル開弁圧力が低いことを意味し、この場合には燃料噴射量が相対的に大きくなる。
【０１５８】
これらの場合、アイドル状態ではある誤差分が生じていたとしても、エンジン負荷や回転数が大きくなり、燃料噴射量が相対的に増大する領域にあっては、さらに誤差が大きくなる。
【０１５９】
したがって、これら、初期リフト値やリフト開始時期に応じてノズル誤差補正値を設定し、これに基づいて燃料噴射量と実相当噴射量との偏差を修正すれば、アイドル状態以外でも噴射量誤差をそれだけ正確に求められる。
【０１６０】
このようにして、燃料噴射ノズルの作動状態に応じてノズル誤差補正値を設定することで、燃料噴射ノズルの生産バラツキ、あるいは経時変化があっても、常にに正確にノズル噴射量誤差を演算できる。
【０１６１】
そして、燃料噴射量にこの噴射量誤差に基づく補正を加え、この補正した噴射量を制御信号として、各種制御用パラメータ、例えば、排気還流率、燃料噴射時期、あるいはスワール制御弁の制御に利用することで、実際の燃料噴射量に対応した精度のよい制御を実現でき、排気還流や燃料噴射時期の誤差によるスモークの増大などが確実に避けられる。
【０１６２】
ところで、燃料噴射量の誤差分の演算については、一定の学習条件が成立した状態で行っているが、この学習許可条件として、エンジンの補機負荷や電気負荷などが少なく、また、エンジン冷却水温や燃料温度、あるいは電源電圧等が所定の範囲にあり、かつこれらが所定の時間にわたり継続しているときを選ぶことにより、エラーの少ない安定した状態のもとで学習が行える。
【０１６３】
また一方、いくつかの入力パラメータ、例えばニュートラルスイッチとエアコンスイッチとを条件にして、各条件下において場合分けし、それぞれ求めた実相当噴射量との比較して噴射量の誤差を求め、かつその荷重平均値として最終的な噴射量誤差を演算し、学習しているので、学習値のバラツキが小さく、さらにこの学習にあたり、エンジンの回転数の積算値、走行距離、生産後の経過時間などを補正値として取り込んでいるので、経時劣化による変動分を加味され、学習値の安定性や信頼性がそれだけ高められる。
【図面の簡単な説明】
【図１】本発明の実施形態の構成を示すブロック図。
【図２】基本燃料噴射量を演算するためのフローチャート。
【図３】基本燃料噴射量特性を示す特性図。
【図４】目標アイドル回転数を設定するためのフローチャート。
【図５】目標アイドル回転数の特性図。
【図６】制御パラメータ制御用燃料噴射量を演算するためのフローチャート。
【図７】同じくフローチャート。
【図８】目標排気還流率を演算するためのフローチャート。
【図９】目標排気還流率の特性図。
【図１０】目標排気還流率を補正する特性図。
【図１１】エンジン完爆を判定するためのフローチャート。
【図１２】燃料噴射時期を設定するためのフローチャート。
【図１３】燃料噴射時期の特性図。
【図１４】スワール制御弁を制御するためのフローチャート。
【図１５】スワール制御弁の作動特性図。
【図１６】燃料噴射量を設定するためのフローチャート。
【図１７】燃料噴射量の電圧変換特性図。
【図１８】許容最大燃料噴射量を演算するためのフローチャート。
【図１９】最終の最大燃料噴射量を演算するためのフローチャート。
【図２０】限界空気過剰率の特性図。
【図２１】吸入空気量を検知するためのフローチャート。
【図２２】吸入空気量の電圧変換特性図。
【図２３】シリンダ吸入空気量を演算するためのフローチャート。
【図２４】燃料噴射量誤差の学習許可を判定するためのフローチャート。
【図２５】同じくフローチャート。
【図２６】燃料噴射量誤差を演算するためのフローチャート。
【図２７】学習値反映ゲイン補正量を演算するための一実施形態のフローチャート。
【図２８】学習値反映ゲインの特性図。
【図２９】学習値反映ゲイン補正量を演算するための他の実施形態のフローチャート。
【図３０】学習値反映ゲインの特性図。
【図３１】学習値反映ゲインを演算するためのフローチャート。
【図３２】学習値反映ゲインの特性図。
【図３３】実相当燃料噴射量を演算するためのフローチャート。
【図３４】誤差学習値を演算するためのフローチャート。
【図３５】学習重み係数の特性図。
【図３６】同じく特性図。
【図３７】同じく特性図。
【図３８】本発明の実施形態の燃料噴射ポンプの概略構成図。
【符号の説明】
１０２  燃料噴射量演算手段
１０３  アイドル状態判定手段
１０４  各種パラメータの検出手段
１０５  実相当噴射量演算手段
１０６  燃料噴射量補正手段
１０７  燃料噴射量誤差の学習許可判定手段
１０８  噴射量誤差演算手段
１０９  制御パラメータの制御用噴射量の演算手段
１１１  燃料噴射ノズル作動状態の検出手段
１１２  ノズル誤差補正値の演算手段
【図１】
0003612992.tif 000002
【図２】
0003612992.tif 000003
【図３】
0003612992.tif 000004
【図４】
0003612992.tif 000005
【図５】
0003612992.tif 000006
【図６】
0003612992.tif 000007
【図７】
0003612992.tif 000008
【図８】
0003612992.tif 000009
【図９】
0003612992.tif 000010
【図１０】
0003612992.tif 000011
【図１１】
0003612992.tif 000012
【図１２】
0003612992.tif 000013
【図１３】
0003612992.tif 000014
【図１４】
0003612992.tif 000015
【図１５】
0003612992.tif 000016
【図１６】
0003612992.tif 000017
【図１７】
0003612992.tif 000018
【図１８】
0003612992.tif 000019
【図１９】
0003612992.tif 000020
【図２０】
0003612992.tif 000021
【図２１】
0003612992.tif 000022
【図２２】
0003612992.tif 000023
【図２３】
0003612992.tif 000024
【図２４】
0003612992.tif 000025
【図２５】
0003612992.tif 000026
【図２６】
0003612992.tif 000027
【図２７】
0003612992.tif 000028
【図２８】
0003612992.tif 000029
【図２９】
0003612992.tif 000030
【図３０】
0003612992.tif 000031
【図３１】
0003612992.tif 000032
【図３２】
0003612992.tif 000033
【図３３】
0003612992.tif 000034
【図３４】
0003612992.tif 000035
【図３５】
0003612992.tif 000036
【図３６】
0003612992.tif 000037
【図３７】
0003612992.tif 000038
【図３８】
0003612992.tif 000039