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