(57)【特許請求の範囲】
【請求項１】
空燃比を目標空燃比に近づけるべく燃料噴射量のフィードバック補正を行う内燃機関に適用され、
機関運転条件を複数の学習ゾーンに区分し、各学習ゾーンでの運転において検出した空燃比と目標空燃比とのずれを燃料噴射量のフィードバック補正量に基づいて検出した後、このずれを補正するための学習値を各学習ゾーンに対応させて学習し、その学習途中の中間結果を逐次中間学習値として更新するとともに、各学習ゾーンに対応する学習値を中間学習値に基づいて設定更新し得るようにした内燃機関の空燃比学習制御方法であって、
機関運転条件が変化して、一の学習ゾーンから他の学習ゾーンに移行した後所定時間内においては、移行時点で存在している一の学習ゾーンについての中間学習値を、他の学習ゾーンに対応して記憶されている学習値に漸近させるように変化させつつ、この中間学習値を燃料噴射量設定の要因の１つとして燃料噴射量を補正する一方、
機関運転の高負荷領域に対応させて設定してある学習ゾーンに移行した場合には、移行した時点で、前記中間学習値を移行後の学習ゾーンの学習値に等しく設定するようにしたことを特徴とする内燃機関の空燃比学習制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主として自動車用の内燃機関の空燃比のフィードバック制御方法に関し、特に運転条件に応じて実空燃比と目標空燃比とのずれを学習し、これをフィードバック制御に反映させる内燃機関の空燃比学習制御方法に関する。
【０００２】
【従来の技術】
内燃機関の電子制御燃料噴射システムにおいては、内燃機関の運転が最適な効率や排気条件に保たれる目標空燃比となるように、機関運転状況に応じた燃料の基本噴射量すなわち燃料噴射弁の基本噴射時間を予め設定し、この基本噴射量を基準にして目標空燃比となるように燃料噴射量にフィードバック補正をかけている。ところが、機器類のばらつきや、経時変化、運転条件、環境の変化等により、前記燃料の基本噴射量から得られる空燃比と目標空燃比との平均的なずれが大きくなると、燃料噴射のフィードバック補正量が増大し、ひいては空燃比制御の制御性を悪化させることになる。そこで、特開平７−２４７８８９号公報等に記載されているように、前記ずれを補正するための補正量を、その時の運転条件とともに学習値として記憶しておくとともに、同一運転条件となった時に記憶されている前記学習値を用いて、予め基本噴射量に補正を加えておくことにより、ずれを小さくし空燃比制御の制御性を良好にする空燃比学習制御が行われている。この学習は、例えば特開平９−６８０７６号公報に記載されているように、前記燃料基本噴射量と機関回転数とをパラメータとする前記運転条件を、図６に示すような複数（例えば４つ）の学習ゾーンに区分して、各学習ゾーン毎に学習完了条件、即ち目標空燃比近傍となった状態での燃料噴射のフィードバック補正量に基づいて学習値を設定し更新することにより行われるものであり、学習中の途中結果は逐次中間学習値として更新記憶されている。
【０００３】
しかして、従来、一の学習ゾーンから他の学習ゾーンへの移行後、所定時間内においては、その移行時点での中間学習値を、他の学習ゾーンに対応して記憶されている学習値に漸近させるようにして、その値を急変させないようにしている。これは、中間学習値が、学習ゾーン移行時等での燃料噴射量設定の要因の１つとなっているためで、中間学習値の急変により、燃料噴射量が突然変化するのを防止するためである。
【０００４】
【発明が解決しようとする課題】
ところが、今仮にエンジン回転数がアイドル回転数付近で、運転条件が図６における学習ゾーン１にあり、しかも、大きなフィードバック補正量を必要とする条件下  （アイドル状態で放置され、吸気温が上昇している場合等）で、スロットル全開にされ、高負荷領域に対応させて設定されている学習ゾーン４に移行した場合、学習ゾーン４では吸気温等の影響が少ないため、大きなフィードバック補正量を必要とせず、上述したように中間学習値を、徐々に変化させたのでは、この中間学習値が、学習ゾーン４の学習値近傍に到達するまでの間、空燃比がリーン状態となる。そしてその結果、排気温上昇や、レスポンス不良等のドライバビリティ上の不具合を招くおそれが生じる。
【０００５】
【課題を解決するための手段】
本発明は、このような課題に着目してなされたものであって、機関運転の高負荷領域に対応させて設定してある学習ゾーンへのゾーン移行が行われた場合には、中間学習値を除変させるのではなく、移行した時点で一気に当該学習ゾーンの学習値に等しく設定するようにして、ゾーン移行直後に生じ得る空燃比リーン状態を回避することを主たる目的としている。
【０００６】
【発明の実施の形態】
すなわち、本発明に係る内燃機関の空燃比学習制御方法は、機関運転条件を複数の学習ゾーンに区分し、各学習ゾーンでの運転において検出した空燃比と目標空燃比とのずれを燃料噴射量のフィードバック補正量に基づいて検出した後、このずれを補正するための学習値を各学習ゾーンに対応させて学習し、その学習途中の中間結果を逐次中間学習値として更新するとともに、各学習ゾーンに対応する学習値を中間学習値に基づいて設定更新し得るようにした内燃機関の空燃比学習制御方法であって、機関運転条件が変化して、一の学習ゾーンから他の学習ゾーンに移行した後所定時間内においては、移行時点で存在している一の学習ゾーンについての中間学習値を、他の学習ゾーンに対応して記憶されている学習値に漸近させるように変化させつつ、この中間学習値を燃料噴射量設定の要因の１つとして燃料噴射量を補正する一方、機関運転の高負荷領域に対応させて設定してある学習ゾーンに移行した場合には、移行した時点で、前記中間学習値を移行後の学習ゾーンの学習値に等しく設定するようにしたことを特徴とする。
【０００７】
このようなものであれば、機関運転の高負荷領域に対応させて設定してある学習ゾーンにゾーン移行した時点で、中間学習値は即座に、当該学習ゾーンに対応して記憶してある学習値に等しくなるため、高負荷領域に対応させて設定してある学習ゾーンへのゾーン移行時における空燃比リーン状態の現出を防止できる。その結果、空燃比リーン状態で生じる排気温上昇や、レスポンス不良等のドライバビリティ上の不具合を回避することができるようになる。
【０００８】
【実施例】
以下本発明の一実施例を、図１から図４を参照して説明する。なお、本実施例では、自動車の内燃機関たるエンジン１００への適用例について述べるが、本発明は自動車用のエンジン１００に限定されるものではない。
図１に概略的に示したエンジン１００は、その吸気系１に図示しないアクセルペダルに応動して開閉するスロットルバルブ２を配設し、その下流側にサージタンク３を設けたものである。サージタンク３に連通する吸気系１の吸気マニホールド４の一方の端部近傍には、さらに燃料噴射弁５が設けてあり、この燃料噴射弁５を電子制御装置６により制御するようにしている。また排気系２０には、排気ガス中の酸素濃度を測定するためのＯ2センサ２１を、図示しないマフラに至るまでの管路に配設された三元触媒２２の上流の位置に取り付けている。このＯ２センサ２１は酸素濃度に応じた値を有する酸素濃度信号ｂを出力するものである。
【０００９】
電子制御装置６は、中央演算処理部７と、記憶部８と、入力インタフェース９と、出力インタフェース１１とを具備してなり、エンジンコントロールコンピュータとして知られているものである。入力インタフェース９には、エンジン回転数センサ１４から出力されるエンジン回転数信号ａ、Ｏ２センサ２１から出力される酸素濃度信号ｂ、スロットル開度センサ１６から出力されるスロットル開度信号ｃ等を入力している。出力インタフェース１１からは、少なくとも燃料噴射弁５を駆動する燃料噴射信号ｄを出力するようにしている。また、記憶部８は、通常知られているようにＲＯＭとＲＡＭとから構成しているが、本実施例においては、ＲＡＭの一部を、電子制御装置６内に組み込まれた補助バッテリによってバックアップさせ、電子制御装置６の電源が切られてもその記憶内容を保持しておくようにしたバッテリバックアップ方式のものにしている。
【００１０】
このような構成のエンジン１００に対して適用した本実施例の空燃比学習制御は、予め電子制御装置６の記憶部８にプログラミングしたソフトウェアに基づいて行われるもので、基本的に、実空燃比を目標空燃比に近づけるべく燃料噴射量ＴＡＵのフィードバック制御を行う際の制御性を良好にすることを目的とした学習制御に係るものである。学習の結果は学習値ＫＧに反映されるが、本ソフトウェアにおいては、学習を円滑なものとすべく、学習値ＫＧの更新において一時学習値ＫＧＴという学習値ＫＧのバッファ的な変数を用いている。しかして、請求項１に記載の学習値の概念には、この一時学習値ＫＧＴも含まれる。このソフトウェアを図２〜図５に示す一連のフローチャートを参照して説明する。なお燃料噴射量ＴＡＵの設定は、燃料噴射弁５の開成時間を制御することにより行っている。
【００１１】
このフローチャートに記載したルーチンは、１制御サイクル内に行われる種々の制御のうち、本実施例に関係する学習値ＫＧ等の更新部分を特に抜粋したものである。そして、この学習値ＫＧ等の更新は、このような制御サイクルを繰り返すことにより行われる。なお、添字ｎは、当該制御サイクルでの値を示し、添字ｎ−１は１つ前の制御サイクルでの値を示すものである。
【００１２】
まず、図示しないがこの制御サイクルにおいて、燃料の基本噴射量ＴＰが、その時のスロットル開度ＴＡとエンジン回転数ＮＥとをパラメータとしたエンジン運転状況に応じて設定される。
次にステップＳ１において、エンジン回転数ＮＥと燃料の基本噴射量ＴＰとをパラメータとするエンジン１００の運転条件から、当該制御サイクルにおけるエンジン運転条件が、図６に示すように、予め区分しておいた４つの学習ゾーンＫＧＪＣＥＬＬ（ＫＧＪＣＥＬＬ＝１、２、３、４）のいずれに属するのかを判定し、ステップＳ２に進む。
【００１３】
ステップＳ２〜ステップＳ１０は、主として学習更新の時間をエンジン１００の負荷状況に応じて変えるための部分であり、関係する主な変数としては更新タイマーである変数ＣＴＲＣＩＳ、更新カウンタである変数ＣＴＲＣＩＮＴ等がある。概略的には、図７に示すように、変数ＣＴＲＣＩＳは０から所定値づつインクリメントされ、エンジン１００の負荷によって定められる変数ＣＩＮＴＳＫＰの値に到達すると０に復帰し、再びインクリメントされる。しかして変数ＣＴＲＣＩＳの値が０になった時点で変数ＣＴＲＣＩＮＴの値が１づつインクリメントされる。このようにして変数ＣＴＲＣＩＮＴの値がインクリメントされる間隔が、エンジン１００の負荷によって定められる変数ＣＴＲＣＩＳの値で定められるようにしている。なお後述する学習が行なわれるのは、変数ＣＴＲＣＩＳの値が０の時だけである。
【００１４】
詳述すると、ステップＳ２では、エンジン１００の負荷状況である吸入空気量ＣＬＦＬＯＷに応じて変数ＣＩＮＴＳＫＰの値を設定し、ステップＳ３に進む。ステップＳ３では、本制御サイクルでの学習ゾーンＫＧＪＣＥＬＬnが前制御サイクルでの学習ゾーンＫＧＪＣＥＬＬn-1から変化したという第１条件、及び変数ＣＴＲＣＩＳが変数ＣＩＮＴＳＫＰ以上であるという第２条件の成否を判定する。いずれかの条件が成立すれば、ステップＳ５に進み、そうでなければステップＳ４に進む。
【００１５】
ステップＳ４では、変数ＣＴＲＣＩＳnの値を、前制御サイクルでの変数ＣＴＲＣＩＳn-1の値に１３．３を加えたものに更新し、ステップＳ６に進む。なお、この変数ＣＴＲＣＩＳの上限値は３３９１．５である。
ステップＳ５では、変数ＣＴＲＣＩＳの値を０とし、ステップＳ６に進む。
ステップＳ６では、本制御サイクルでの学習ゾーンＫＧＪＣＥＬＬnが前制御サイクルでの学習ゾーンＫＧＪＣＥＬＬn-1から変化したという第１条件、及びフィードバック状態ではない（ＣＬＦＵＥＬ＝０）という第２条件の成否を判定する。いずれかの条件が成立すれば、ステップＳ７に進み、変数ＣＴＲＣＩＮＴの値を０に設定した後、ステップＳ８に進む。そうでなければステップＳ８に進む。
【００１６】
ステップＳ８では、変数ＣＴＲＣＩＳが０であるかどうかを判定する。０であればステップＳ９に進み、そうでなければ図３に示すステップ１１に進む。
ステップＳ９では、変数ＣＴＲＣＩＮＴの値を１だけ増加させる。ただし上限は２５５である。そしてステップＳ１０に進む。
ステップＳ１０では、空燃比偏差ＤＡＦ、空燃比偏差積分量ＤＡＦＴＯＴＡＬ、空燃比偏差微分量ＤＤＡＦの値を図中に示した式によって更新する。そして、ステップＳ１１に進む。ここでＤＡＦとは、空燃比フィードバック補正量ＦＡＦの平均値ＩＮＴと目標空燃比との偏差を示す値であり、ＤＡＦＴＯＴＡＬとは偏差ＤＡＦの時間積分量を示すものであり、ＤＤＡＦとは偏差ＤＡＦの時間変化量を示すものである。
【００１７】
ステップＳ１１では、空燃比偏差積分量ＤＡＦＴＯＴＡＬの値を一定範囲に制限する。そしてステップＳ１２に進む。
ステップＳ１２、Ｓ１３では、本制御サイクルでの学習ゾーンＫＧＪＣＥＬＬnが前制御サイクルでの学習ゾーンＫＧＪＣＥＬＬn-1から変化した場合に限り、前記空燃比偏差積分量ＤＡＦＴＯＴＡＬの値を、次式（１）にしたがって、後述する一時学習値ＫＧＴKGJCELLnを用いて設定し直す。そしてステップＳ１４に進む。
【００１８】
ＤＡＦＴＯＴＡＬn＝（ＫＧＴKGJCELLn−１．０）／ＫＩＫＧ…（１）
ここでＫＩＫＧは係数である。
ステップＳ１４では、本制御サイクルでの学習ゾーンＫＧＪＣＥＬＬnが前制御サイクルでの学習ゾーンＫＧＪＣＥＬＬn-1から変化し、かつフラグＴＭＰＯＫの値が１であるという条件を満たすかどうかを判定する。条件を満たす場合はステップＳ１５に進み、そうでない場合は図４に示すステップＳ１６に進む。フラグＴＭＰＯＫについては後述する。
【００１９】
ステップＳ１５においては、前制御サイクルでの学習ゾーンＫＧＪＣＥＬＬn-1に対応する一時学習値ＫＧＴKGJCELLn-1を前制御サイクルでの中間学習値ＫＧＸn-1と等しい値に更新する。そしてステップＳ１６に進む。
ステップＳ１６では、変数ＣＴＲＣＩＳの値が０か否かを判定する。０であれば、ステップＳ１７に進み、そうでなければステップＳ２３に進む。
【００２０】
ステップＳ１７〜ステップＳ２２は、実際に学習を行なう部分である。
すなわち、ステップＳ１７では、変数ＣＴＲＣＩＮＴの値が、予め定めてある定数ＫＫＧＪＳＰ（本実施例では８）よりも大きいかどうかを判定する。大きければ、学習ゾーン移行が行われてから所定時間経過したと判断し、ステップＳ１８に進み、そうでなければ、学習ゾーン移行が行われてから所定時間内であると判断し、ステップＳ２０に進む。
【００２１】
ステップＳ１８では、変数ＣＯＯＬＤＥＧが、ＫＧＸ計算可能とするしきい値である定数ＫＤＥＧＫＧＸ以上かどうかを判断し、以上であれば、ステップＳ１９に進み、そうでなければ図５に示すステップＳ２３に進む。
ステップＳ１９では、図示しないフィードバック制御ルーチンにより行われている空燃比フィードバック補正量ＦＡＦの変化に基づいて、中間学習値ＫＧＸを次式（２）にしたがって更新する。いわば中間学習値ＫＧＸのＰＩＤ制御ともいえる部分である。また一方で、フラグＴＭＰＯＫの値を１に設定する。そして図５に示すステップＳ２３に進む。
【００２２】
ＫＧＸn＝ＫＧＰn＋ＫＧＩn＋ＫＧＤn・・・（２）
ここで、ＫＧＰn＝ＫＰＫＧ＊ＤＡＦn（比例項）
ＫＧＩn＝ＫＩＫＧ＊ＤＡＦＴＯＴＡＬn＋１．０（積分項）
ＫＧＤn＝ＫＤＫＧ＊ＤＤＡＦn（派生項）
ＫＰＫＧ、ＫＩＫＧ、ＫＤＫＧ・・・係数
一方、ステップＳ２０では、変数ＣＴＲＣＩＮＴが０であり、かつ学習ゾーンＫＧＪＣＥＬＬnが４（最もエンジンの高負荷領域に設定されたもの）であるという条件が成立するかどうかを判定する。成立すれば、ステップＳ２２に進み、そうでなければ、ステップＳ２１に進む。
【００２３】
ステップＳ２１では、中間学習値ＫＧＸを次式（３）にしたがって更新するとともに、フラグＴＭＰＯＫの値を０に設定する。そしてステップＳ２３に進む。
ＫＧＸn＝（ＫＧＸn-1＋ＫＧＩn）／２・・・（３）
ここで、ＫＧＰn＝０．０
ＫＧＩn＝ＫＧＴKGJCELLn
ＫＧＤn＝０．０
ステップＳ２２では、中間学習値ＫＧＸnに一時学習値ＫＧＴ4を代入し、ステップＳ２３に進む。
【００２４】
ステップＳ２３、Ｓ２４では変数ＣＴＲＣＩＳの値が０の場合にのみ中間学習値ＫＧＸの上下限ガード処理を行ない、ステップＳ２５に進む。
ステップＳ２５では、所定の学習完了条件が整った時に、学習値ＫＧを設定したり、あるいは、燃料噴射量を学習値ＫＧ等を利用してフィードバック補正するなどの処理を行ない、本ルーチンを終了する。
【００２５】
このように構成した本実施例によれば、エンジン運転条件が変化して、一の学習ゾーンＫＧＪＣＥＬＬから高負荷領域に対応させて設定してある他の学習ゾーン４に移行した場合（ステップＳ１４の条件成立時）、ステップＳ２０の条件が成立して、ステップＳ２０に進み、この時点で即座に中間学習値ＫＧＸの値が学習ゾーン４の一時学習値ＫＧＴ4に等しく設定される。
【００２６】
このため、ゾーン移行直後に生じ得る空燃比リーン状態の現出を防止することが可能になる。そしてその結果、従来学習ゾーン４への移行直後に生じていた空燃比リーン状態を起因とする排気温上昇や、レスポンス不良等のドライバビリティ上の不具合を回避することができるようになる。
なお、本発明は上述した実施例に限定されるものではなく種々の変形が可能である。例えば、上記実施例では学習値ＫＧの更新の促進を図るために、学習値ＫＧのバッファ的な役割を果たす一時学習値ＫＧＴという変数を取り入れ、学習ゾーン４へのゾーン移行時に中間学習値ＫＧＸを一時学習値ＫＧＴに等しく設定しているが、一時学習値ＫＧＴを用いない制御方法のものであれば、中間学習値ＫＧＸを学習値ＫＧに等しく設定するようにしても構わない。また学習ゾーンは４つに限らず、これをさらに細かく区分したり、ゾーン領域を変更するなどしてもよい。さらに、種々の演算も、上記実施例に限定されるわけではなく、本発明と同様の効果を奏するものであればよい。
その他、各部の構成は図示例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形が可能である。
【００２７】
【発明の効果】
以上詳述したように、本発明によれば、機関運転の高負荷領域に対応させて設定してある学習ゾーンにゾーン移行した時点で、中間学習値は即座に、当該学習ゾーンに対応して記憶してある学習値に等しくなるため、高負荷領域に設定してある前記学習ゾーンへのゾーン移行時において、従来生じ得た空燃比リーン状態の現出を防止できる。その結果、空燃比リーン状態で生じる排気温上昇や、レスポンス不良等のドライバビリティ上の不具合を回避することができるようになる。
【図面の簡単な説明】
【図１】  本発明の一実施例を示す制御方法を適用したエンジンの全体図。
【図２】  同実施例の制御フローチャート。
【図３】  同実施例の制御フローチャート。
【図４】  同実施例の制御フローチャート。
【図５】  同実施例の制御フローチャート。
【図６】  同実施例及び従来例の学習ゾーンを示すマップ。
【図７】  同実施例の変数ＣＴＲＣＩＮＴ等の変化を示すタイミングチャート。
【符号の説明】
１００・・・内燃機関
ＫＧ・・・学習値
ＫＧＸ・・・中間学習値
ＫＧＪＣＥＬＬ・・・学習ゾーン
【図１】
0003751447.tif 000002
【図２】
0003751447.tif 000003
【図３】
0003751447.tif 000004
【図４】
0003751447.tif 000005
【図５】
0003751447.tif 000006
【図６】
0003751447.tif 000007
【図７】
0003751447.tif 000008