(57)【特許請求の範囲】
【請求項１】
噴射パルス信号によって駆動されて機関に燃料を噴射供給する電磁駆動式の燃料噴射弁と、
機関の運転状態に応じて基本噴射パルス幅を演算する基本噴射パルス幅演算手段と、
空燃比を検出し、検出された空燃比を目標空燃比に近づけるように空燃比フィードバック補正値を増減設定する空燃比フィードバック補正値設定手段と、
基本噴射パルス幅と空燃比フィードバック補正値とに基づいて噴射パルス幅を演算する噴射パルス幅演算手段と、
噴射パルス幅−噴射量特性の直線性を補償すべく噴射パルス幅に応じて該噴射パルス幅を補正するための直線性学習補正値を記憶した直線性学習補正値記憶手段と、
前記記憶手段を参照して、前記噴射パルス幅演算手段により演算された噴射パルス幅から、対応する直線性学習補正値を検索し、前記噴射パルス幅を前記直線性学習補正値により補正する噴射パルス幅補正手段と、
前記補正後の噴射パルス幅を持つ噴射パルス信号を出力して前記燃料噴射弁を駆動する燃料噴射弁駆動手段と、
を備える内燃機関の燃料噴射制御装置において、
前記直線性学習補正値記憶手段を書換え可能に構成する一方、
所定の学習条件にて、外部負荷を強制的に変化させて、噴射パルス幅を変化させる学習時外部負荷制御手段と、
前記噴射パルス幅を変化させた学習条件にて、前記空燃比フィードバック補正値の状態を学習し、これに基づいて、前記直線性学習補正値記憶手段における当該噴射パルス幅に対応する直線性学習補正値を更新する学習手段と、
を設けたことを特徴とする内燃機関の燃料噴射制御装置。
【請求項２】
前記外部負荷制御手段は、複数の外部負荷の駆動パターンを変化させることにより噴射パルス幅を複数段に変化可能であることを特徴とする請求項１記載の内燃機関の燃料噴射制御装置。
【請求項３】
前記所定の学習条件は、少なくとも外部診断装置から学習要求があるときとすることを特徴とする請求項１又は請求項２記載の内燃機関の燃料噴射制御装置。
【請求項４】
前記所定の学習条件は、少なくとも変速機がニュートラル位置でかつパーキングブレーキが作動中のときとすることを特徴とする請求項１〜請求項３のいずれか１つに記載の内燃機関の燃料噴射制御装置。
【請求項５】
所定の学習クリア条件にて、前記直線性学習補正値記憶手段における直線性学習補正値のデータをクリアして初期値に戻す学習クリア手段を設けたことを特徴とする請求項１〜請求項４のいずれか１つに記載の内燃機関の燃料噴射制御装置。
【請求項６】
前記所定の学習クリア条件は、外部診断装置から学習クリア要求があるときとすることを特徴とする請求項５記載の内燃機関の燃料噴射制御装置。
【請求項７】
前記所定の学習クリア条件は、前記直線性学習補正値記憶手段を構成するバックアップＲＡＭの異常を検出したときとすることを特徴とする請求項５又は請求項６記載の内燃機関の燃料噴射制御装置。
【請求項８】
前記初期値は、燃料噴射弁の平均的な噴射パルス幅−噴射量特性に基づいて予め設定された値であることを特徴とする請求項５〜請求項７のいずれか１つに記載の内燃機関の燃料噴射制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の燃料噴射制御装置に関し、特に電磁駆動式の燃料噴射弁（インジェクタ）の噴射パルス幅−噴射量特性において直線性が失われる低パルス幅領域での燃料噴射制御を可能とする技術に関する。
【０００２】
【従来の技術】
（１）特開平９−２０９８０３号公報
これは、噴射パルス幅−噴射量特性の非直線領域である低パルス幅領域での燃料噴射制御を可能にするため、直線性を補償すべく噴射パルス幅に応じて該噴射パルス幅を補正するための直線性補正係数を記憶したテーブルを予め備えておき、噴射パルス幅Ｔｉ０が算出されると、テーブルを参照して、Ｔｉ０から直線性補正係数ＫLNを求め、最終的な噴射パルス幅Ｔｉを、Ｔｉ＝Ｔｉ０×ＫLNにより求めて制御するものである。
【０００３】
（２）特開昭６０−９０９４４号公報、特開昭６１−１９０１４２号公報
これらは、空燃比の学習制御装置に関するもので、機関運転状態（機関回転数及び負荷）のエリア毎に、空燃比フィードバック制御中の空燃比フィードバック補正係数の基準値からの偏差に基づいて、ベース空燃比を学習し、この学習結果（エリア別の学習補正係数）に基づいて噴射パルス幅を補正することで、空燃比制御の制御性を向上するものである。
【０００４】
【発明が解決しようとする課題】
燃料噴射弁の噴射パルス幅−噴射量特性は、概ね、図９に示されるごとくとなり、低パルス幅側で直線性が失われる。尚、図９の縦軸の噴射量は、１０００回噴射した時の合計噴射燃料流量（cc）である。また、低パルス幅側では個体バラツキも大きく、例えば６気筒エンジンで６本の燃料噴射弁について平均の噴射量と個々の噴射量とのずれを割合でみると、最大±１０％近くにも達する。
【０００５】
このため、燃料噴射弁は、噴射パルス幅に対して噴射量が直線的に比例する領域を用いて、燃料噴射制御するようにしている。
ところで、昨今、燃料を直接筒内へ噴射して成層燃焼を行うようなエンジンでは、極めて少ない量の燃料で燃焼が可能となり、これにより燃費を大幅に低減できる。
【０００６】
しかしながら、上記の通り、少量の燃料を噴射する場合においては、直線性を示さず、かつ個体バラツキも大きいことから、計算した量の燃料を適切に噴射することが難しい。
そこで、前記従来の技術（１）にて提示した方法で、直線性を補償することが考えられが、直線性補正係数を予め設定しておく構成では、非直線領域（低パルス幅領域）では個体バラツキが大きいため、予め設定されている直線性補正係数では、個体バラツキまで補正できず、十分な効果が得られないという問題点があった。
【０００７】
また、前記従来の技術（２）にて提示したベース空燃比の学習制御において学習エリアを細分化することで直線性を補償したり、更には、前記従来の技術（１）の直線性補正係数を前記従来の技術（２）のような手法で学習したりすることも考えられるが、エリア別学習を当該エリアに入った場合に行う構成では、そのエリアに入らない限り、学習されることはなく、学習精度を高めるためにエリアを細分化するほど、全エリアの学習を完了するまでに時間がかかり、学習速度が遅いために、いつまでも適正な燃料噴射が行われないという問題点があった。
【０００８】
本発明は、このような実状に鑑み、燃料噴射弁の噴射パルス幅−噴射量特性の直線性を補償すべく学習を行うようにして、個体バラツキまで補正可能とする一方、学習の機会を作為的に増やして、学習速度を早め、早期に適正な燃料噴射が行われるようすることを目的とする。
【０００９】
【課題を解決するための手段】
このため、請求項１の発明では、噴射パルス信号によって駆動されて機関に燃料を噴射供給する電磁駆動式の燃料噴射弁と、機関の運転状態に応じて基本噴射パルス幅を演算する基本噴射パルス幅演算手段と、空燃比を検出し、検出された空燃比を目標空燃比に近づけるように空燃比フィードバック補正値を増減設定する空燃比フィードバック補正値設定手段と、基本噴射パルス幅と空燃比フィードバック補正値とに基づいて噴射パルス幅を演算する噴射パルス幅演算手段と、噴射パルス幅−噴射量特性の直線性を補償すべく噴射パルス幅に応じて該噴射パルス幅を補正するための直線性学習補正値を記憶した直線性学習補正値記憶手段と、前記記憶手段を参照して、前記噴射パルス幅演算手段により演算された噴射パルス幅から、対応する直線性学習補正値を検索し、前記噴射パルス幅を前記直線性学習補正値により補正する噴射パルス幅補正手段と、前記補正後の噴射パルス幅を持つ噴射パルス信号を出力して前記燃料噴射弁を駆動する燃料噴射弁駆動手段と、を備える内燃機関の燃料噴射制御装置において、
前記直線性学習補正値記憶手段を書換え可能に構成する一方、所定の学習条件にて、外部負荷を強制的に変化させて、噴射パルス幅を変化させる学習時外部負荷制御手段と、前記噴射パルス幅を変化させた学習条件にて、前記空燃比フィードバック補正値の状態を学習し、これに基づいて、前記直線性学習補正値記憶手段における当該噴射パルス幅に対応する直線性学習補正値を更新する学習手段と、を設けたことを特徴とする。
【００１０】
請求項２の発明では、前記外部負荷制御手段は、複数の外部負荷の駆動パターンを変化させることにより噴射パルス幅を複数段に変化可能であることを特徴とする。
請求項３の発明では、前記所定の学習条件は、少なくとも外部診断装置から学習要求があるときとすることを特徴とする。
【００１１】
請求項４の発明では、前記所定の学習条件は、少なくとも変速機がニュートラル位置でかつパーキングブレーキが作動中のときとすることを特徴とする。
請求項５の発明では、所定の学習クリア条件にて、前記直線性学習補正値記憶手段における直線性学習補正値のデータをクリアして初期値に戻す学習クリア手段を設けたことを特徴とする。
【００１２】
請求項６の発明では、前記所定の学習クリア条件は、外部診断装置から学習クリア要求があるときとすることを特徴とする。
請求項７の発明では、前記所定の学習クリア条件は、前記直線性学習補正値記憶手段を構成するバックアップＲＡＭの異常を検出したときとすることを特徴とする。
【００１３】
請求項８の発明では、前記初期値は、燃料噴射弁の平均的な噴射パルス幅−噴射量特性に基づいて予め設定された値であることを特徴とする。
【００１４】
【発明の効果】
請求項１の発明によれば、燃料噴射弁の噴射パルス幅−噴射量特性の直線性を補償すべく学習を行うことで、個体バラツキまで補正可能となる一方、外部負荷（ヘッドライト、デフォッガー、ブロアファン等）を強制的に制御することにより、運転者の運転によらず学習できる機会を作為的に作り出すことができるので、学習を確実かつ早く実施できる。これにより学習の効果を速やかに発揮させることができ、燃費や排気性能の向上が可能となる。
【００１５】
請求項２の発明によれば、複数の外部負荷の駆動パターンを変化させて噴射パルス幅を複数段に変化させることで、様々な噴射パルス幅での学習を行うことができる。
請求項３の発明によれば、外部診断装置から学習要求があるときに学習することで、運転者が予期しないときに学習が行われるのを防止することができる。
【００１６】
請求項４の発明によれば、変速機がニュートラル位置でかつパーキングブレーキが作動中のときに学習することで、走行中に学習が行われるのを防止刷ることができる。
請求項５の発明によれば、所定の学習クリア条件にて、直線性学習補正値のデータをクリアして初期値に戻すことで、学習をやり直す場合の学習速度を早めることができる。
【００１７】
請求項６の発明によれば、外部診断装置から学習クリア要求があるときに直線性学習補正値のデータをクリアすることで、勝手にクリアされることを防止することができる。
請求項７の発明によれば、直線性学習補正値を記憶しているバックアップＲＡＭの異常を検出したときにそのデータをクリアすることで、信頼性を向上させることができる。
【００１８】
請求項８の発明によれば、クリアする場合に、初期値として、燃料噴射弁の平均的な噴射パルス幅−噴射量特性に基づいて予め設定された値にするので、たとえ学習が行われないとしても、最低限、前記従来の技術（１）と同等の効果は確保することができる。
【００１９】
【発明の実施の形態】
以下に本発明の実施の形態を図面に基づいて説明する。
図１は本発明の一実施形態を示す内燃機関（以下エンジンという）のシステム図である。
エンジン１の吸気通路２には吸入空気量を制御する電制スロットル弁３が設置され、エンジン１の燃焼室４には燃料噴射弁５と点火プラグ６とが設置されており、これらはエンジンコントロールユニット（以下ＥＣＵという）７により駆動される。
【００２０】
燃料噴射弁５は、電磁駆動式で、ソレノイドに通電されることにより開弁して燃料を噴射し、通電停止されることで閉弁して燃料噴射を停止するもので、ＥＣＵ７からの噴射パルス信号のパルス幅（噴射時間）により燃料噴射量が制御される。
ＥＣＵ７には、アクセルペダルセンサ８により検出されるアクセル開度ＡＰＯ、スロットルセンサ９により検出される電制スロットル弁３の開度ＴＶＯ、吸気通路２の電制スロットル弁３上流に設けたエアフローメータ１０により検出される吸入空気量Ｑａ、クランク角センサ１１により検出されるエンジン回転数Ｎｅ、水温センサ１２により検出されるエンジン冷却水温Ｔｗ、排気通路１３の排気浄化触媒１４上流に設けた空燃比センサ１５により排気中の酸素濃度を介して検出されるエンジン吸入混合気の空燃比、更にバッテリ電圧（ＢＡＴＴ）などが入力されている。尚、アクセルペダルセンサ８及び／又はスロットルセンサ９には全閉位置でＯＮとなるアイドルスイッチが付設されており、その信号も入力されている。
【００２１】
また、車両には、ＥＣＵ７の他、各種のコントロールユニットが設けられるが、本実施形態では、図２に示すように、ＣＡＮ（Controller Area Network ）システムを採用している。
ＣＡＮとは、リアルタイム・アプリケーション向けのシリアル通信（時分割多重通信）で、各種のコントロールユニット、すなわち、ＥＣＵ７、コンビネーションメータ２１、自動変速機（Ａ／Ｔ）用コントロールユニット２２などの他、コネクタ２３を介して接続可能な非車載の外部診断装置２４を、２本の通信線（ＣＡＮ−Ｈ線、ＣＡＮ−Ｌ線）でつなぐことにより、多くの情報を少ない配線で通信することが可能である。
【００２２】
また、各コントロールユニットは、それぞれデータの送受信を行い、通信しているデータの中の必要としているデータだけを取込む。
ここにおいて、コンビネーションメータ２１は、外部負荷であるヘッドライト、デフォッガー、ブロアファン等のＯＮ／ＯＦＦを制御すると共に、パーキングブレーキを含むブレーキ類のＯＮ／ＯＦＦ状態を検出しており、ＣＡＮ通信により、ＥＣＵ７からコンビネーションメータ２１に対し、外部負荷に対する投入要求を発することができると共に、コンビネーションメータ２１からＥＣＵ７へ、パーキングブレーキ等のＯＮ／ＯＦＦ状態を入力することができる。
【００２３】
Ａ／Ｔ用コントロールユニット２２は、自動変速機の制御を行うもので、ＣＡＮ通信により、Ａ／Ｔ用コントロールユニット２２からＥＣＵ７へ、変速機のギア位置などを入力することができる。
外部診断装置２４は、特にＥＣＵ７に対し、各種診断のための運転要求を発することができるもので、本実施形態では、この外部診断装置２４からの学習要求をトリガーとして、ＥＣＵ７にて学習を行うようにしている。
【００２４】
次にＥＣＵ７での燃料噴射制御について図３〜図７のフローチャートに従って説明する。
図３は噴射パルス幅演算ルーチンのフローチャートであり、所定時間毎又は所定回転毎に実行される。
Ｓ１では、エンジン運転状態として、吸入空気量Ｑａ、エンジン回転数Ｎｅなどを読込み。この部分が運転状態検出手段に相当する。
【００２５】
Ｓ２では、次式により、基本噴射量に対応する基本噴射パルス幅Ｔｐを演算する。この部分が基本パルス幅演算手段に相当する。
Ｔｐ＝（Ｋ×Ｑａ／Ｎｅ）×ＴＦＢＹＡ
Ｋは定数である。ＴＦＢＹＡはエンジン運転状態により定められる目標空燃比を基に理論空燃比／目標空燃比として求められる目標燃空比である。
【００２６】
Ｓ３では、基本噴射パルス幅Ｔｐを基に、次式により、噴射量に対応する噴射パルス幅Ｔｉ０を演算する。この部分が噴射パルス幅演算手段に相当する。
Ｔｉ０＝Ｔｐ×ＣＯＥＦ×α＋Ｔｓ
ＣＯＥＦは各種補正係数であり、水温Ｔｗに基づく低水温時の水温増量補正係数Ｋtw、始動及び始動後経過時間に基づく始動及び始動後増量補正係数Ｋas、外部負荷の投入に基づく外部負荷増量補正係数Ｋacなどを含んで、次式により算出される。
【００２７】
ＣＯＥＦ＝１＋Ｋtw＋Ｋas＋Ｋac＋…
αは空燃比フィードバック補正値（ここでは空燃比フィードバック補正係数）
であり、空燃比フィードバック制御のため、後述する図４のルーチンにより設定される。
Ｔｓは電圧補正分（無効噴射時間）であり、バッテリ電圧に基づいて算出される。
【００２８】
Ｓ４では、燃料噴射弁毎に、その噴射パルス幅−噴射量特性の直線性を補償すべく噴射パルス幅Ｔｉ０に応じて直線性学習補正値（ここでは直線性学習補正係数）Ｋinj を予め定めて記憶させ、かつ学習により更新（書換え）可能とした直線性学習補正値記憶手段としてのバックアップＲＡＭ上のテーブルを参照し、Ｓ３で演算した噴射パルス幅Ｔｉ０より、燃料噴射弁毎の直線性学習補正係数Ｋinj を検索する。この部分が直線性学習補正値検索手段に相当する。
【００２９】
Ｓ５では、次式のごとく、噴射パルス幅Ｔｉ０を燃料噴射弁毎の直線性学習補正係数Ｋinj により補正して、最終的な噴射パルス幅Ｔｉを算出する。この部分が噴射パルス幅補正手段に相当する。
Ｔｉ＝Ｔｉ０×Ｋinj
このようにして、最終的な噴射パルス幅Ｔｉが算出されると、所定の燃料噴射時期において、このＴｉのパルス幅を持つ噴射パルス信号が燃料噴射弁に出力されて、燃料噴射が行われる。この部分が燃料噴射弁駆動手段に相当する。
【００３０】
図４は空燃比フィードバック制御（空燃比フィードバック補正係数設定）ルーチンのフローチャートであり、所定時間毎に実行される。本ルーチンが空燃比フィードバック補正値設定手段に相当する。
Ｓ１１では、所定の空燃比フィードバック制御条件か否かを判定し、空燃比フィードバック制御条件の場合にＳ１２以降へ進む。
【００３１】
Ｓ１２では、空燃比センサからの信号に基づいて、実際の空燃比を検出する。
この部分が空燃比検出手段に相当する。
Ｓ１３では、検出された空燃比を目標空燃比と比較し、目標空燃比よりリーンの場合は、Ｓ１４へ進んで、空燃比フィードバック補正係数αを所定の積分分Ｉ増大させる（α＝α＋Ｉ）。但し、リッチからリーンに反転した初回は、空燃比フィードバック補正係数αを比較的大きな所定の比例分Ｐ増大させる（α＝α＋Ｐ；Ｐ＞Ｉ）。
【００３２】
逆に、目標空燃比よりリッチの場合は、Ｓ１５へ進んで、空燃比フィードバック補正係数αを所定の積分分Ｉ減少させる（α＝α−Ｉ）。但し、リーンからリッチに反転した初回は、空燃比フィードバック補正係数αを比較的大きな所定の比例分Ｐ減少させる（α＝α−Ｐ；Ｐ＞Ｉ）。
図５は学習メインルーチンのフローチャートであり、所定時間毎又は所定回転毎に実行される。
【００３３】
Ｓ２１では、初回電源投入時か否かを判定する。
初回電源投入時の場合は、Ｓ２２へ進んで、バックアップＲＡＭがＮＧ（バックアップＲＡＭ上のデータに異常がある）か否かを判定する。
この判定でバックアップＲＡＭがＮＧの場合は、Ｓ２７へ進んで、後述する図７の学習サブルーチンにおいて用いられる学習パターン完了フラグＦｉ（ｉ＝１〜６）を全てクリアする。更にＳ２８へ進んで、バックアップＲＡＭ上の直線性学習補正係数テーブルのデータをクリアし、初期値として、予めＲＯＭに記憶させて保持してある設定値をセットすることで、バックアップＲＡＭ上のデータを初期化する。尚、ここでの初期値は、燃料噴射弁の平均的な噴射パルス幅−噴射量特性に基づいて予め設定された値である。この部分が学習クリア手段に相当する。
【００３４】
初回電源投入時でない場合は、Ｓ２３へ進む。
Ｓ２３では、後述する図６の学習条件判定サブルーチンに従って、学習条件判定、詳しくは、学習条件及び学習クリア条件の成立の有無を判定する。ここで、後述するが学習条件の成立時は学習条件フラグが１にセットされ、学習クリア条件の成立時には学習クリア条件が１にセットされる。
【００３５】
Ｓ２４では、学習条件フラグ＝１か否かを判定し、また、Ｓ２６では、学習クリア条件フラグ＝１か否かを判定する。これらの判定の結果、いずれも０であれば、そのまま本ルーチンを終了する。
Ｓ２４での判定で、学習条件フラグ＝１の場合、すなわち学習条件の場合は、Ｓ２５へ進む。
【００３６】
Ｓ２５では、後述する図７の学習サブルーチンに従って、直線性学習（直線性学習補正係数Ｋinj の学習）を行う。
Ｓ２６での判定で、学習クリア条件フラグ＝１の場合、すなわち学習クリア条件の場合は、Ｓ２７、Ｓ２８へ進む。
Ｓ２７では、後述する図７の学習サブルーチンにおいて用いられる学習パターン完了フラグＦｉ（ｉ＝１〜６）を全てクリアする。更にＳ２８では、バックアップＲＡＭ上の直線性学習補正係数テーブルのデータをクリアし、初期値として予めＲＯＭに記憶させて保持してある設定値をセットすることで、バックアップＲＡＭ上のデータを初期化する。
【００３７】
図６は学習条件判定サブルーチンのフローチャートであり、図５のフローのＳ２３にて実行される。本サブルーチンが学習条件及び学習クリア条件判定手段に相当する。
Ｓ３１では、外部診断装置との通信はＯＫ（通信手段に故障無し）か否かを判定し、ＯＫ（故障無し）の場合にＳ３２へ進む。ＮＧ（故障有り）の場合はそのまま本サブルーチンを終了する。
【００３８】
Ｓ３２では、外部診断装置より直線性学習についての学習要求があるか否かを判定する。
学習要求がない場合は、Ｓ４８へ進んで、外部診断装置より直線性学習についての学習クリア要求があるか否かを判定し、学習クリア要求がある場合は、Ｓ４９へ進み、学習クリア条件フラグ＝１として、本サブルーチンを終了する。
【００３９】
学習クリア要求がない場合（すなわち学習要求及び学習クリア要求のいずれもない場合）は、Ｓ４７へ進んで、学習条件フラグ＝０、かつ学習クリア条件フラグ＝０として、本サブルーチンを終了する。
Ｓ３２での判定で、学習要求がある場合は、学習可能か否か、また学習精度の向上のため安定したアイドル状態か否か等の判定のため、Ｓ３３以降へ進む。
【００４０】
Ｓ３３では、水温Ｔｗが所定値以上の暖機完了後であるか否かを判定する。
また、Ｓ３４では、空燃比フィードバック（ＦＢ）制御中か否かを判定する。
また、Ｓ３５では、空燃比センサ信号の反転周期がＯＫ（正常範囲内）か否かを判定する。
また、Ｓ３６では、空燃比センサ信号のＰ−Ｐ値（ピーク−ピーク値；反転周期における最大値と最小値との差）がＯＫ（正常範囲内）か否かを判定する。
【００４１】
また、Ｓ３７では、燃料系部品の故障無し（自己診断により故障検出時にセットされるＮＧフラグがクリアされている）か否かを判定する。
更に、Ｓ３８では、アイドル状態か否かの判定のため、アイドル回転数制御（ＩＳＣ制御）中か否かを判定する。
また、Ｓ３９では、アイドルスイッチがＯＮとなってから所定時間以上経過しているか否かを判定する。
【００４２】
また、Ｓ４０では、空燃比フィードバック補正係数αのＰ−Ｐ値（ピーク−ピーク値；最大値と最小値との差）がＯＫ（正常範囲内）か否かを判定する。
また、Ｓ４１では、燃料タンク内の蒸発燃料を吸着しているキャニスタから吸気系へ蒸発燃料をパージさせているパージ制御中ではないか否かを判定する。
また、Ｓ４２では、バッテリ電圧がＯＫ（正常範囲内）か否かを判定する。
【００４３】
また、Ｓ４３では、自動変速機のギア位置がニュートラルであるか否かを判定する。
また、Ｓ４４では、パーキングブレーキがＯＮか否かを判定する。
更に、Ｓ４５では、外部負荷との通信はＯＫ（通信手段に故障無し）か否かを判定する。学習時には後述するように外部負荷を操作するので、外部負荷を制御しているコンビネーションメータに対し、投入要求を指示することが可能か否かを判定するためである。
【００４４】
上記Ｓ３３〜Ｓ４５の判定の全てにおいてＹＥＳの場合は、安定した学習が可能なため、Ｓ４６へ進んで、学習条件フラグ＝１として、本サブルーチンを終了する。
これに対し、上記Ｓ３３〜Ｓ４５の判定のいずれかにおいてＮＯの場合は、学習不能か、学習できたとしても誤学習するおそれがあるため、Ｓ４７へ進んで、学習条件フラグ＝０、かつ学習クリア条件＝０として、本サブルーチンを終了する。
【００４５】
図７は直線性学習サブルーチンのフローチャートであり、図５のフローのＳ２５にて実行される。本サブルーチンが学習手段に相当する。
Ｓ５１では、先ず学習パターン番号ｉを１にセットする。
Ｓ５２では、学習パターン完了フラグＦｉ＝１（パターン番号ｉの学習パターンでの学習が完了している）か否かを判定する。
【００４６】
Ｆｉ＝０（パターン番号ｉの学習パターンでの学習が未完了）の場合は、学習パターンｉでの学習のため、Ｓ５５以降へ進む。
尚、ここでの判定で、Ｆｉ＝１の場合は、Ｓ５３へ進んで、学習パターン番号ｉを１アップし（ｉ＝ｉ＋１）、次のＳ５４で学習パターン番号ｉが最大値ｉmax （この例では６）を超えたか否かを判定し、ｉ＞ｉmax のときは本サブルーチンを終了するが、ｉ≦ｉmax であれば、Ｓ５２へ戻る。
【００４７】
Ｓ５５では、学習パターンｉの負荷パターンを読込む。
これは、例えば図８（ａ）に示すように、パターン番号ｉ＝１の場合は外部負荷を全てＯＦＦ、パターン番号ｉ＝２の場合はヘッドライトＯＮ、パターン番号ｉ＝３の場合はデフォッガーＯＮ、パターン番号ｉ＝４の場合はヘッドライトとブロアファンＯＮ、パターン番号ｉ＝５の場合はデフォッガーとブロアファンＯＮ、パターン番号ｉ＝６の場合はヘッドライトとデフォッガーとブロアファンＯＮと決めておき、このように外部負荷のＯＮ／ＯＦＦの組み合わせを変えることで、噴射パルス幅を同図（ｂ）に示すように段階的に変化（増大）させる。
【００４８】
Ｓ５６では、読込んだ負荷パターンに従って、外部負荷を強制的にＯＮ／ＯＦＦする。この部分が学習時外部負荷制御手段に相当する。
Ｓ５７では、空燃比フィードバック制御中の空燃比フィードバック補正係数αの増減方向が変化してから次に変化するまでの間における最大値αmax 及び最小値αmin を入力し、α平均値＝（αmax ＋αmin ）／２を算出する。
【００４９】
Ｓ５８では、α平均値が基準値である１に略等しいか否かを判定する。
α平均値≒１でない場合は、Ｓ５９へ進み、α平均値＞１か否かを判定する。
α平均値＞１の場合は、ベース空燃比がリーン側にずれているので、Ｓ６０へ進み、直線性学習補正係数テーブルにおける現在の噴射パルス幅Ｔｉ０に対応する直線性学習補正係数Ｋinj の値を所定の微少値ΔＫ増大させ（Ｋinj ＝Ｋinj ＋ΔＫ）、テーブルデータを書換える。
【００５０】
Ｓ５９での判定でＮＯ、すなわちα平均値＜１の場合は、ベース空燃比がリッチ側にずれているので、Ｓ６１へ進み、直線性学習補正係数テーブルにおける現在の噴射パルス幅Ｔｉ０に対応する直線性学習補正係数Ｋinj の値を所定の微少値ΔＫ減少させ（Ｋinj ＝Ｋinj −ΔＫ）、テーブルデータを書換える。
尚、このように所定値増減させる他、α平均値の基準値からの偏差に比例した値増減するようにしてもよい。
【００５１】
上記のような学習補正係数Ｋinj の更新により、α平均値≒１となると、Ｓ５８での判定で、Ｓ６２へ進む。
Ｓ６２では、α平均値≒１の状態が所定時間以上連続したか否かを判定し、連続した場合に、Ｓ６３へ進んで、学習パターン番号ｉについての学習パターン完了フラグＦｉを１にセットする。
【００５２】
以上のように制御することで、直線性学習により個体バラツキまで補正可能となる一方、学習時の外部負荷の制御により、様々な噴射パルス幅での学習の機会を作為的に増やして、学習速度を早め、早期に適正な燃料噴射が行われるようにすることができる。
尚、燃料噴射弁を交換した場合などに、外部診断装置から学習要求を与えることで、速やかに適合可能となる。また、これに先立って、学習クリア要求を与えて、学習値をクリアしてから学習を行わせることで、学習をやり直す場合の学習速度を早めることができる。
【図面の簡単な説明】
【図１】  本発明の一実施形態を示すエンジンのシステム図
【図２】  ＣＡＮシステムの概略図
【図３】  噴射パルス演算ルーチンのフローチャート
【図４】  空燃比フィードバック制御ルーチンのフローチャート
【図５】  学習メインルーチンのフローチャート
【図６】  学習条件判定サブルーチンのフローチャート
【図７】  直線性学習サブルーチンのフローチャート
【図８】  学習パターンの説明図
【図９】  噴射パルス幅−噴射量特性図
【符号の説明】
１  エンジン
３  電制スロットル弁
５  燃料噴射弁
６  点火プラグ
７  ＥＣＵ
１０  エアフローメータ
１１  クランク角センサ
１５  空燃比センサ
２１  コンビネーションメータ
２２  Ａ／Ｔ用コントロールユニット
２３  コネクタ
２４  外部診断装置
【図１】
0004016633.tif 000002
【図２】
0004016633.tif 000003
【図３】
0004016633.tif 000004
【図４】
0004016633.tif 000005
【図５】
0004016633.tif 000006
【図６】
0004016633.tif 000007
【図７】
0004016633.tif 000008
【図８】
0004016633.tif 000009
【図９】
0004016633.tif 000010