(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を代入し、ステップＳ２３に進む。
【００２６】
ステップＳ２３、Ｓ２４では変数ＣＴＲＣＩＳの値が０の場合にのみ中間学習値ＫＧＸの上下限ガード処理を行ない、ステップＳ２５に進む。
ステップＳ２５では、所定の学習完了条件が整った時に、学習値ＫＧを設定したり、あるいは、燃料噴射量を学習値ＫＧ等を利用してフィードバック補正するなどの処理を行ない、本ルーチンを終了する。
【００２７】
係る本実施例によれば、原則的に、一の学習ゾーンＫＧＪＣＥＬＬでの学習値ＫＧKGJCELLの更新に至るまでにエンジン運転条件が変化して他の学習ゾーンＫＧＪＣＥＬＬに移行した場合（ステップＳ１４の条件成立時）には、その移行直前までに学習した途中結果である中間学習値ＫＧＸn-1をもって当該学習ゾーンＫＧＪＣＥＬＬでの一時学習値ＫＧＴKGJCELLn-1を更新する（ステップＳ１５）。しかしながら、このステップＳ１４が条件成立するためには、上述したように学習ゾーンＫＧＪＣＥＬＬの移行の他にフラグＴＭＰＯＫの値が１であることが必要である。このフラグＴＭＰＯＫの値は、一の学習ゾーンＫＧＪＣＥＬＬから他の学習ゾーンＫＧＪＣＥＬＬに移行した移行時点から所定時間内（ステップＳ１７の条件非成立時）には、０に設定されている（ステップＳ２１）。このため、この所定時間内に他の学習ゾーンから、さらにゾーン移行（ステップＳ１４の条件成立時）が行われても、当該他の学習ゾーンＫＧＪＣＥＬＬでの一時学習値ＫＧＴKGJCELLn-1の更新は行われないことになる。しかして、中間学習値ＫＧＸn-1による一時学習値ＫＧＴKGJCELLn-1の更新が行なわれるのは、所定時間経過後（ステップＳ１７の条件成立時）、中間学習値をＫＧＸをフィードバック補正量（ＤＡＦ等）によって更新している場合（ステップＳ１９）のみとなる。
【００２８】
したがって、頻繁にゾーン移行が行われ、ゾーン移行から所定時間内にさらにゾーン移行するという状況が現出しても、その場合には一時学習値ＫＧＴの更新は行なわれないため、全ての一時学習値ＫＧＴが１つの値に収束してしまうことを防止でき、各学習ゾーンＫＧＪＣＥＬＬでの要求学習量を失うことを回避できる。そしてその結果、排ガス性能やドライバビリティ上の不具合を防止することができる。
【００２９】
なお、本発明は上述した実施例に限定されるものではなく種々の変形が可能である。例えば、学習ゾーンは４つに限られず、これをさらに細かく区分したり、ゾーン領域を変更するなどしてもよい。また、種々の演算も、これに限定されるわけではなく、本発明と同様の効果を奏するものであればよい。
その他、各部の構成は図示例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形が可能である。
【００３０】
【発明の効果】
以上詳述したように、本発明によれば、一の学習ゾーンから他の学習ゾーンへの移行後所定時間内、すなわち、前記一の学習ゾーンで設定された中間学習値を、前回当該他の学習ゾーンにおいて一時記憶した一時学習値に漸近させている間に、さらにゾーン移行が行われた場合には、当該他の学習ゾーンでの一時学習値の更新を行わないため、頻繁にゾーン移行が行われても、全ての一時学習値が１つの値に収束してしまうことを防止でき、各学習ゾーンでの要求学習量を失うことを回避できる。そしてその結果、排ガス性能やドライバビリティ上の不具合を防止することができる。
【図面の簡単な説明】
【図１】  本発明の一実施例を示す制御方法を適用したエンジンの全体図。
【図２】  同実施例の制御フローチャート。
【図３】  同実施例の制御フローチャート。
【図４】  同実施例の制御フローチャート。
【図５】  同実施例の制御フローチャート。
【図６】  同実施例及び従来例の学習ゾーンを示すマップ。
【図７】  同実施例の変数ＣＴＲＣＩＮＴ等の変化を示すタイミングチャート。
【符号の説明】
１００・・・内燃機関
ＫＧ４・・・学習値
ＫＧＴ・・・一時学習値
ＫＧＸ・・・中間学習値
ＫＧＪＣＥＬＬ・・・学習ゾーン
【図１】
0003751446.tif 000002
【図２】
0003751446.tif 000003
【図３】
0003751446.tif 000004
【図４】
0003751446.tif 000005
【図５】
0003751446.tif 000006
【図６】
0003751446.tif 000007
【図７】
0003751446.tif 000008