(57)【要約】【課題】エンジンの空燃比制御装置において、燃料学習値が、補正された目標空燃比の値に左右されることがなく、精度の高い燃料噴射量の学習制御を実施可能とすることにある。【解決手段】基本燃料噴射量設定部と、目標空燃比補正制御部と、空燃比フィードバック処理部と、燃料学習制御部と、少なくとも空燃比フィードバック処理部から算出されたフィードバック補正量と燃料学習制御部から算出された燃料学習値とに応じて基本燃料噴射量設定部から予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部とを備え、この燃料噴射量算出部の実行時には、燃料学習制御部での燃料学習値を、空燃比フィードバック処理部から算出されたフィードバック補正量の値に左右されないように算出する制御手段を設けている。【選択図】図１
2005090427.tif 000002
【特許請求の範囲】
【請求項１】
エンジンの排気通路に触媒装置を設け、前記触媒装置の上流側の前記排気通路にリニア空燃比センサを設け、前記排気装置の下流側の前記排気通路に酸素センサを設けたエンジンの空燃比制御装置において、基本燃料噴射量を予め設定する基本燃料噴射量設定部と、空燃比フィードバック制御条件が成立しているときには前記酸素センサの出力値により目標空燃比を補正する目標空燃比補正制御部と、この補正された目標空燃比と前記リニア空燃比センサの出力値からフィードバック補正量を算出する空燃比フィードバック処理部と、燃料学習値を算出する燃料学習制御部と、少なくとも前記空燃比フィードバック処理部から算出されたフィードバック補正量と前記燃料学習制御部から算出された燃料学習値とに応じて前記基本燃料噴射量設定部から予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部とを備え、この燃料噴射量算出部の実行時には、前記燃料学習制御部での燃料学習値を、前記空燃比フィードバック処理部から算出されたフィードバック補正量の値に左右されないように算出する制御手段を設けたことを特徴とするエンジンの空燃比制御装置。
【請求項２】
前記フィードバック補正量は、空燃比フィードバック補正係数と前記空燃比フィードバック処理部により補正された値とから算出されることを特徴とする請求項１に記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、エンジンの空燃比制御装置に係り、特に触媒装置の上流側の排気通路にリニア空燃比センサを設け、触媒装置の下流側の排気通路に酸素センサを設け、酸素センサの出力値によりリニア空燃比センサの目標空燃比を補正して燃料学習制御するエンジンの空燃比制御装置に関するものである。
【背景技術】
【０００２】
車両においては、エンジンの排気通路に触媒装置を設け、触媒装置の上流側の排気通路にリニア空燃比（ＬＡＦ）センサを設け、触媒装置の下流側の排気通路に酸素（リヤＯ２）センサを設け、酸素センサの出力値（指示値）によりリニア空燃比センサの目標空燃比を補正して燃料学習制御するエンジンの空燃比制御装置を設けたものがある。
【０００３】
従来、エンジンの空燃比制御装置においては、触媒の高い浄化率を最大限に引き出すため、排気系デバイスとして触媒装置の上流側にリニア空燃比センサを設けるとともに、触媒装置の下流側に酸素センサを設け、この下流側の酸素センサの出力値が設定値に収束するように、上流側のリニア空燃比センサの目標空燃比を、目標空燃比基本値からリッチ側又はリーン側に制御しているものがある。
【特許文献１】特開平２−６７４４３号公報
【０００４】
また、従来、目標空燃比補正制御においては、下流側の酸素センサの出力値によって上流側のリニア空燃比センサの目標空燃比（ＡＦＴＲＧＴ）が補正された場合でも、複数に分割された各運転領域で、燃料学習値（ＫＬＲＮ）に補正された目標空燃比に対するフィードバック補正量を反映させていた。しかしながら、これでは、同一の運転領域でも目標空然比（ＡＦＴＲＧＴ）が異なれば、燃料学習値（ＫＬＲＮ）も変わってしまう。このため、燃料学習に許容できない変動が生じて、アイドル学習値が変動した等の場合は、排ガス値の変動、ドライバビリティの悪化を招いており、対策の必要があった。
【０００５】
更に、触媒装置の上流側にリニア空燃比センサを設け、触媒装置の下流側に酸素センサを配設したシステムとしての目標空燃比補正制御する空燃比制御装置には、エンジンの運転状態に応じて運転領域を複数に分割し、各運転領域に応じた目標空燃比の学習値を運転領域毎に記憶させ、これにより、目標空燃比を補正し、運転状態の変動による下流側の酸素センサの目標空燃比への収束性を良好とし、排気効率の向上を図るものがある。
【特許文献２】特開平５−３２１７２４号公報
【０００６】
更にまた、触媒の上流側にフロント酸素センサを設け、下流側にリヤ酸素センサを配設したシステムとしての空燃比制御装置には、アイドル時学習領域条件中のエンジン回転数判定項目を行う際に、エンジン回転数がＩＳＣ（アイドルスピードコントロール）目標回転数と固定値あるいはエンジン水温毎にテーブルにて設定される変動値からなる所定値とを加算した値以下になった場合に、エンジン回転数判定項目が成立したと判断し、エンジン始動完爆後の空燃比補正を適正に行うものがある。
【特許文献３】特開平１１−５０８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところが、従来、エンジンの空燃比制御装置においては、ある分割された運転領域において、下流側の酸素センサが必ず同一の出力値の電圧であるとは限らなく、その直前の運転状態が、例えば、理論空燃比フィードバック運転はもちろんのこと、燃料カットや高負荷時のエンリッチ運転など様々であり、触媒内を理論空燃比に保つために、上記運転の後に生じる下流側の酸素センサの出力値の変化に応じて、上流側のリニア空燃比センサから算出された目標空燃比を、リッチ側又はリーン側に補正する必要があり、よって、この方法でも、直前の運転状態の如何により、燃料学習に許容できない変動が生じていたという不都合があった。
【課題を解決するための手段】
【０００８】
この発明は、エンジンの排気通路に触媒装置を設け、前記触媒装置の上流側の前記排気通路にリニア空燃比センサを設け、前記排気装置の下流側の前記排気通路に酸素センサを設けたエンジンの空燃比制御装置において、基本燃料噴射量を予め設定する基本燃料噴射量設定部と、空燃比フィードバック制御条件が成立しているときには前記酸素センサの出力値により目標空燃比を補正する目標空燃比補正制御部と、この補正された目標空燃比と前記リニア空燃比センサの出力値からフィードバック補正量を算出する空燃比フィードバック処理部と、燃料学習値を算出する燃料学習制御部と、少なくとも前記空燃比フィードバック処理部から算出されたフィードバック補正量と前記燃料学習制御部から算出された燃料学習値とに応じて前記基本燃料噴射量設定部から予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部とを備え、この燃料噴射量算出部の実行時には、前記燃料学習制御部での燃料学習値を、前記空燃比フィードバック処理部から算出されたフィードバック補正量の値に左右されないように算出する制御手段を設けたことを特徴とする。
【発明の効果】
【０００９】
この発明の空燃比制御装置においては、燃料噴射量算出部の実行時に、燃料学習制御部での燃料学習値を、空燃比フィードバック処理部から算出されたフィードバック補正量の値に左右させないようにすることから、燃料学習値が、補正された目標空燃比の値に左右されることがなく、精度の高い燃料噴射量の学習制御を実施可能とすることができる。
【発明を実施するための最良の形態】
【００１０】
この発明は、精度の高い燃料噴射量の学習制御を実施可能とするという目的を、燃料学習値が、補正された目標空燃比の値に左右されないようにすることで実現するものである。
以下、図面に基づいてこの発明の実施例を詳細且つ具体的に説明する。
【実施例】
【００１１】
図１〜図８は、この発明の実施例を示すものである。図８において、２は車両（図示せず）に搭載されるエンジン、４はシリンダブロック、６はシリンダヘッド、８はピストン、１０は燃焼室である。
【００１２】
シリンダヘッド６には、吸気ポート１２と排気ポート１４とが形成されているとともに、吸気口１６と排気口１８とを開閉する吸気弁２０と排気弁２２とが設けられている。また、シリンダヘッド６には、吸気ポート１２に連通する吸気通路２４を形成した吸気管２６が連結されているとともに、排気ポート１４に連通する排気通路２８を形成した排気管３０が連結されている。
【００１３】
エンジン２の燃焼室１０には、燃料噴射制御装置３２によって燃料が噴射される。この燃料噴射制御装置３２は、吸気弁２０側に指向して吸気管２６の噴射弁取付部３４に取り付けられた燃料噴射弁３６を有している。
【００１４】
シリンダヘッド６には、燃焼室１０の上部で点火制御装置３８の点火栓４０が取り付けられている。
【００１５】
排気管３０で形成された排気通路２８の途中には、触媒装置４２の触媒コンバータ４４が設けられている。この触媒装置４２の上流側の排気通路２８には、空燃比（ＡＦ）を検出してその検出値を出力値として出力するリニア空燃比（ＬＡＦ）センサ４６が取り付けられている。また、排気装置４２の下流側の排気通路２８には、排気中の酸素濃度を検出してその検出値を出力値としての電圧を出力する酸素（リアＯ２）センサ４８が設けられている。
【００１６】
燃料噴射弁３６と点火栓４０とリニア空燃比センサ４６と酸素センサ４８とは、制御手段（ＥＣＵ）５０に連絡している。また、この制御手段５０には、吸入空気量を検出するエアフローセンサ５２と、エンジン水温を検出する水温センサ５４と、クランク角状態からエンジン回転数を検出するクランク角センサ５６と、吸気管圧力をエンジン負荷として検出する吸気管絶対圧力センサ５８とが連絡している。
【００１７】
制御手段５０は、基本燃料噴射量を予め設定する基本燃料噴射量設定部５０Ａと、空燃比フィードバック制御条件が成立しているときには酸素センサ４８の出力値により目標空燃比を補正する目標空燃比補正制御部５０Ｂと、この目標空燃比補正制御部５０Ｂで補正された目標空燃比とリニア空燃比センサ４６の出力値からフィードバック補正量を算出する空燃比フィードバック処理部５０Ｃと、燃料学習値を算出する燃料学習制御部５０Ｄと、少なくとも空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量と燃料学習制御部５０Ｄから算出された燃料学習値とに応じて基本燃料噴射量設定部５０Ａから予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部５０Ｅとを備え、この燃料噴射量算出部５０Ｅの実行時には、燃料学習制御部５０Ｄでの燃料学習値を、空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量の値に左右されないように算出するものである。
【００１８】
前記フィードバック補正量は、空燃比フィードバック補正係数と空燃比フィードバック処理部５０Ｃにより補正された値とから算出されるものである。
【００１９】
次に、この実施例の作用を説明する。
【００２０】
図２に示す如く、空燃比フィードバック処理として、空燃比フィードバック補正係数（ＫＦＢ）の算出ルーチンにおいて、プログラムがスタートすると（ステップ１０２）、先ず、空燃比フィードバック制御条件が成立しているか否かを判断する（ステップ１０４）。つまり、リニア空燃比センサ４６が、活性しているか、あるいは、運転領域が、ある設定された範囲に収まっているか等により、空燃比フィードバック制御条件が成立しているか否かが判定される。
【００２１】
このステップ１０４がＹＥＳの場合には、リニア空燃比センサ４６からの出力値（ＡＦ）を読み込み（ステップ１０６）、そして、エンジン回転数とエンジン負荷の値の関数である目標空燃比基本値（ＡＦＴＲＧＴＭ）マップを検索して（ステップ１０８）、目標空燃比基本値（ＡＦＴＲＧＴＭ）を算出する。
【００２２】
そして、酸素センサ４８が活性しているか否かを判断する（ステップ１１０）。つまり、酸素センサ４８の出力値の電圧（ＶＲＯ２）が、上限値（ＶＲＯ２Ｈ）以上を所定時間（ＶＲＯ２ＴＭ）以上継続して出力しているか等により、酸素センサ４８が活性しているか否かが判定される。
【００２３】
このステップ１１０がＹＥＳの場合には、目標空燃比補正制御を行う（ステップ１１２）。
【００２４】
この目標空燃比補正制御においては、図３に示す如く、プログラムがスタートすると（ステップ２０２）、酸素センサ４８の出力値の電圧（ＶＲＯ２）が、上限値（ＶＲＯ２Ｈ）以上であるか、又は、下限値（ＶＲＯ２Ｌ）以下であるかを判断、つまり、ＶＲＯ２＞ＶＲＯ２Ｈ、又は、ＶＲＯ２＜ＶＲＯ２Ｌを判断する（ステップ２０４）。
【００２５】
このステップ２０４がＹＥＳの場合には、エンジン回転数の関数である目標電圧（ＶＲＯ２ＴＲＧＴ）テーブルを検索し（ステップ２０６）、酸素センサ４８の制御すべき目標電圧（ＶＲＯ２ＴＲＧＴ）を算出する。そして、酸素センサ４８の出力値の電圧（ＶＲＯ２）と酸素センサ４８の制御すべき目標電圧（ＶＲＯ２ＴＲＧＴ）との電圧差（△Ｖ）を、△Ｖ＝ＶＲＯ２−ＶＲＯ２ＴＲＧＴで算出する（ステップ２０８）。
【００２６】
そして、この電圧差（△Ｖ）の関数である目標空燃比（ＡＦＴＲＧＴ）テーブルを検索して、目標空燃比基本値（ＡＦＴＲＧＴＭ）からの目標空燃比シフト量（ＡＦＴＲＧＴＳＦＴ）を算出する（ステップ２１０）。
【００２７】
このステップ２１０で目標空燃比シフト量（ＡＦＴＲＧＴＳＦＴ）を算出した後は、目標空燃比（ＡＦＴＲＧＴ）を、目標空燃比基本値（ＡＦＴＲＧＴＭ）と目標空燃比シフト量（ＡＦＴＲＧＴＳＦＴ）との和で算出、つまり、ＡＦＴＲＧＴ＝ＡＦＴＲＧＴＭ＋ＡＦＴＲＧＴＳＦＴで算出し（ステップ２１２）、プログラムをリターンする（ステップ２１４）。
【００２８】
一方、前記ステップ２０４がＮＯの場合には、前記ステップ２１０で算出された目標空燃比シフト量（ＡＦＴＲＧＴＳＦＴ）に零（０）を代入し、つまり、ＡＦＴＲＧＴＳＦＴ＝０とし（ステップ２１６）、そして、前記ステップ２１２に移行する。
【００２９】
この目標空燃比補正制御の後は、図２のステップ１１４において、目標空燃比（ＡＦＴＲＧＴ）と現在の空燃比（ＡＦ）とから、別途定義された空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）の算出ルーチンにより、積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）を算出する。
【００３０】
そして、積分項（ＫＦＢＩ）からフィードバック量補正値（ＫＲＯ２ＨＯＳ）を、図４の算出ルーチンで算出する（ステップ１１６）。
【００３１】
このフィードバック量補正値（ＫＲＯ２ＨＯＳ）の算出においては、図４の算出ルーチンに示す如く、プログラムがスタートすると（ステップ３０２）、先ず、リッチ／リーン状態判定を行う（ステップ３０４）。
【００３２】
このリッチ／リーン状態判定は、リッチ／リーン状態が変化したかを判定するものであり、図５のリッチ／リーン状態判定ルーチンにおいて、プログラムがスタートすると（ステップ４０２）、現在の空燃比（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）よりも小さいか否かを判断、つまり、ＡＦ＜ＡＦＴＲＧＴか否かを判断し（ステップ４０４）、そして、このステップ４０４がＹＥＳの場合には、リッチ／リーン状態判定値（ＲＬＣＤＴＮ（ｎ））に１を代入、つまり、ＲＬＣＤＴＮ（ｎ）＝１（ＲＩＣＨ）とする（ステップ４０６）。
【００３３】
一方、前記ステップ４０４がＮＯの場合には、リッチ／リーン状態判定値（ＲＬＣＤＴＮ（ｎ））に零（０）を代入、つまり、ＲＬＣＤＴＮ（ｎ）＝０（ＬＥＡＮ）とする（ステップ４０８）。
【００３４】
このステップ４０６及びステップ４０８の処理後は、今回算出したリッチ／リーン状態判定値（ＲＬＣＤＴＮ（ｎ））から前回算出したリッチ／リーン状態判定値（ＲＬＣＤＴＮ（ｎ−１））を減算した値が零（０）か否かを判断、つまり、ＲＬＣＤＴＮ（ｎ）−ＲＬＣＤＴＮ（ｎ−１）＝０か否かを判断する（ステップ４１０）。
【００３５】
このステップ４１０がＹＥＳの場合には、リッチ／リーン状態が変化していないと判定し、つまり、リッチ／リーン状態変化フラグ（ＲＬＣＨＮＧ）を零（０）とし、つまり、ＲＬＣＨＮＧ＝０とし（ステップ４１２）、プログラムをリターンする（ステップ４１４）。
【００３６】
一方、前記ステップ４１０がＮＯの場合には、リッチ／リーン状態が変化したと判定し、つまり、リッチ／リーン状態変化フラグ（ＲＬＣＨＮＧ）を１とし、つまり、ＲＬＣＨＮＧ＝１とし（ステップ４１６）、プログラムをリターンする（ステップ４１４）。
【００３７】
このように、リッチ／リーン状態が判定されたら、図４のステップ３０６において、ＲＬＣＨＮＧ＝１か否かを判断し、このステップ３０６がＹＥＳで、リッチ／リーン状態が変化したと判断した場合には、フィードバック量補正値（ＫＲＯ２ＨＯＳ（ｎ））を、ＫＲＯ２ＨＯＳ（ｎ）＝Ｋ３＊ＡＦＴＲＧＴＭ／ＡＦＴＲＧＴ−１で算出し（ステップ３０８）、プログラムをリターンする（ステップ３１０）。
【００３８】
一方、前記ステップ３０６でＮＯの場合には、今回算出されたフィードバック量補正値（ＫＲＯ２ＨＯＳ（ｎ））に前回算出されたフィードバック量補正値（ＫＲＯ２ＨＯＳ（ｎ−１））を代入し、つまり、ＫＲＯ２ＨＯＳ（ｎ）＝ＫＲＯ２ＨＯＳ（ｎ−１）とし（ステップ３１２）、プログラムをリターンする（ステップ３１０）。
【００３９】
このように、フィードバック量補正値（ＫＲＯ２ＨＯＳ）を算出したならば、図２のステップ１１８において、積分項（ＫＦＢＩ）からフィードバック量補正値（ＫＲＯ２ＨＯＳ）を減算して最終的な空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ２）を算出し、つまり、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳを計算し、プログラムをリターンする（ステップ１２０）。
【００４０】
前記ステップ１１０がＮＯの場合には、目標空燃比補正制御を実施せず、目標空燃比（ＡＦＴＲＧＴ）に目標空燃比基本値（ＡＦＴＲＧＴＭ）を代入し、つまり、ＡＦＴＲＧＴ＝ＡＦＴＲＧＴＭとし（ステップ１２２）、目標空燃比（ＡＦＴＲＧＴ）と現在の空燃比（ＡＦ）とから、別途定義された空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）の算出ルーチンにより、積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）を算出し（ステップ１２４）、その後、フィードバック量補正値（ＫＲＯ２ＨＯＳ）に零（０）を代入し、つまり、ＫＲＯ２ＨＯＳ＝０とし（ステップ１２６）、前記ステップ１１８へ移行し、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳを計算し、プログラムをリターンする（ステップ１２０）。
【００４１】
一方、前記ステップ１０４がＮＯの場合には、空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）とフィードバック量補正値（ＫＲＯ２ＨＯＳ）とに零（０）を夫々代入し、つまり、ＫＦＢＩ＝０とし（ステップ１２８）、また、ＫＦＢＰ＝０とし（ステップ１３０）、そして、ＫＲＯ２ＨＯＳ＝０とし（ステップ１３２）、前記ステップ１１８へ移行し、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳを計算し、プログラムをリターンする（ステップ１２０）。
【００４２】
次いで、燃料学習制御について説明すると、図１の制御ルーチンにおいて、プログラムがスタートすると（ステップ５０２）、先ず、空燃比フィードバック制御中か否かを判断する（ステップ５０４）。
【００４３】
このステップ５０４がＹＥＳの場合には、エンジン回転数及びエンジン負荷の値の関数である運転領域（ＺＯＮＥ（ｎ））マップから、運転領域（ＺＯＮＥ（ｎ））を算出して確認し（ステップ５０６）、今回算出した運転領域（ＺＯＮＥ（ｎ））と前回算出した運転領域（ＺＯＮＥ（ｎ−１））とが同じか否かを判断、つまり、（ＺＯＮＥ（ｎ））＝（ＺＯＮＥ（ｎ−１））か否かを判断する（ステップ５０８）。
【００４４】
このステップ５０８がＹＥＳの場合には、運転領域番号（ｋ）に運転領域（ＺＯＮＥ（ｎ））を代入し、つまり、ｋ＝ＺＯＮＥ（ｎ）とし（ステップ５１０）、そして、リッチ／リーン状態判定を行う（ステップ５１２）。このリッチ／リーン状態判定は、上述した図５の判定ルーチンで同じように行われる。
【００４５】
そして、リッチ／リーン状態変化フラグ（ＲＬＣＨＮＧ）が、ＲＬＣＨＮＧ＝１か否かを判断し（ステップ５１４）、このステップ５１４がＹＥＳの場合には、上記の図２の空燃比フィードバック処理ルーチンにより算出された積分項（ＫＦＢＩ２）を読み込む（ステップ５１６）。
【００４６】
この積分項（ＫＦＢＩ２）を読み込んだ後は、該積分項（ＫＦＢＩ２）を、リッチ／リーンの切り替わり時に、補正値（ＫＦＢＣＨＮＧ（ＲＬＣＮＴ））に代入、つまり、ＫＦＢＣＨＮＧ（ＲＬＣＮＴ）＝ＫＦＢＩ２とし（ステップ５１８）、リッチ／リーン状態変化回数（ＲＬＣＮＴ）が所定値に到達したか否か、つまり、ＲＬＣＮＴ＝Ｎ１か否かを判断する（ステップ５２０）。
【００４７】
このステップ５２０がＹＥＳの場合には、燃料学習値（ＫＬＲＮ）を算出する条件が成立したとして判断し、ＫＦＢＣＨＮＧ（０）〜ＫＦＢＣＨＮＧ（Ｎ１）まで、Ｎ１＋１回分の空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ２）の平均値（ＫＦＢＡＶＲＧ）を算出する（ステップ５２２）。
【００４８】
そして、この平均値（ＫＦＢＡＶＲＧ）の関数である燃料学習更新値（ＴＫＤＫＬ）テーブルから、燃料学習更新値（ＴＫＤＫＬ）を算出し（ステップ５２４）、その後、前回算出した燃料学習値（ＫＬＲＮｋ（ｎ−１））に燃料学習更新値（ＴＫＤＫＬ）を加算し、燃料学習値（ＫＬＲＮｋ（ｎ））を、ＫＬＲＮｋ（ｎ）＝ＫＬＲＮｋ（ｎ−１）＋ＴＫＤＫＬで算出する（ステップ５２６）。
【００４９】
その後、リッチ／リーン状態変化回数（ＲＬＣＮＴ）に零（０）を代入し、つまり、ＲＬＣＮＴ＝０とし（ステップ５２８）、プログラムをリターンする（ステップ５３０）。
【００５０】
前記ステップ５０４及びステップ５０８でＮＯの場合には、直ぐに、前記ステップ５２８に移行し、リッチ／リーン状態変化回数（ＲＬＣＮＴ）に零（０）を代入し、つまり、ＲＬＣＮＴ＝０とし、そして、プログラムをリターンする（ステップ５３０）。
【００５１】
また、前記ステップ５２０がＮＯの場合には、リッチ／リーン状態変化回数（ＲＬＣＮＴ）に１を代入し、つまり、ＲＬＣＮＴ＝ＲＬＣＮＴ＋１とし（ステップ５３２）、プログラムをリターンする（ステップ５３０）。
【００５２】
更に、前記ステップ５１４がＮＯの場合には、直ぐに、プログラムをリターンする（ステップ５３０）。
【００５３】
次いで、この実施例における制御例を、図７のタイムチャートに基づいて説明する。
【００５４】
図７に示す如く、時間ｔ１未満では、酸素センサ４８の出力値（ＶＲＯ２）が上限値（ＲＯ２Ｈ）と下限値（ＲＯ２Ｌ）との中間の目標電圧（ＲＯ２ＴＲＧＴ）で一定であり、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）付近で一定に増減変化し、空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ２）が零（０）付近で一定に増減変化し、燃料学習値（ＫＬＲＮ）が一定であり、また、フィードバック量補正値（ＫＲＯ２ＨＯＳ）が零（０）で一定である。
【００５５】
そして、時間ｔ１になると、酸素センサ４８の出力値（ＶＲＯ２）が上限値（ＲＯ２Ｈ）側に増加し始め、そして、時間ｔ２になると、酸素センサ４８の出力値（ＶＲＯ２）が上限値（ＲＯ２Ｈ）を超えて増加し、このとき、目標空燃比（ＡＦＴＲＧＴ）が増加するとともに、リニア空燃比センサ４６の出力値（ＡＦ）が増加し、目標空燃比（ＡＦＴＲＧＴ）が増加し、また、積分項（ＫＦＢＩ２）が低下し始める。一方、燃料学習値（ＫＬＲＮ）は、一定である。
【００５６】
その後、時間ｔ３になると、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）を横切る。このとき、酸素センサ４８の出力値（ＶＲＯ２）が最大になってから漸次減少し始め、また、フィードバック量補正値（ＫＲＯ２ＨＯＳ）が急激に低下して第１値（Ｌ１）となり、積分項（ＫＦＢＩ２）が、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳとなって増加する。このときも、燃料学習値（ＫＬＲＮ）は、一定である。
【００５７】
そして、時間ｔ４になると、酸素センサ４８の電圧の低下と共に、目標空燃比（ＡＦＴＲＧＴ）がリッチ側に動き、フィードバック量補正値（ＫＲＯ２ＨＯＳ）が増加して、第１値（Ｌ１）よりも少し零（０）側の第２値（Ｌ２）となる。このときも、燃料学習値（ＫＬＲＮ）は、一定である。
【００５８】
その後、時間ｔ５になると、酸素センサ４８の出力値（ＶＲＯ２）が上限値（ＲＯ２Ｈ）まで減少し、目標空燃比（ＡＦＴＲＧＴ）が元に戻り、フィードバック量補正値（ＫＲＯ２ＨＯＳ）が元の零（０）に戻る。このときも、燃料学習値（ＫＬＲＮ）は、一定である。
【００５９】
そして、時間ｔ６になると、酸素センサ４８の出力値（ＶＲＯ２）が電圧（ＲＯ２ＴＲＧＴ）で一定になり、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）に収束し始める。このときも、燃料学習値（ＫＬＲＮ）は、一定である。
【００６０】
つまり、この図７における制御例においては、運転状態の変化により触媒装置４２の下流側の酸素センサ４８の出力値の電圧（ＶＲＯ２）が、ＶＲＯ２＞ＲＯ２Ｈとなると（図７の時間ｔ２で示す）、目標空燃比補正制御により、酸素センサ４８の出力値の電圧（ＶＲＯ２）に応じた目標空燃比（ＡＦＴＲＧＴ）（図７の破線で示す）が設定される。
【００６１】
そして、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）を横切った時点で、フィードバック量補正値（ＫＲＯ２ＨＯＳ）は、ＫＲＯ２ＨＯＳ＝Ｋ３＊ＡＦＴＲＧＴＭ／ＡＦＴＲＧＴ−１で更新され（Ｋ３：所定値、ＡＦＴＲＧＴＭ：目標空燃比基本値）、直後に、上記の図２の空燃比フィードバック処理ルーチンで得られた積分項（ＫＦＢＩ２）を、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳで減算処理する（図７の時間ｔ３で示す）。
【００６２】
そして、燃料学習制御により、目標空燃比（ＡＦＴＲＧＴ）に対してリニア空燃比センサ４６の出力値（ＡＦ）が横切る度に、減算処理された後の積分項（ＫＦＢＩ２）を（Ｎ１＋１）回積算し、その平均値（ＫＦＢＡＶＲＧ）から燃料学習更新値（ＴＫＤＫＬ）を算出して燃料学習値（ＫＬＲＮ）に反映させる。この図７の制御例の場合に、目標空燃比（ＡＦＴＲＧＴ）は、変動しているが、燃料学習値（ＫＬＲＮ）は、変動要因がないため、変更されていない。
【００６３】
フィードバック量補正値（ＫＲＯ２ＨＯＳ）は、ＫＲＯ２ＨＯＳ＝Ｋ３＊ＡＦＴＲＧＴＭ／ＡＦＴＲＧＴ−１で算出され、目標空燃比基本値（ＡＦＴＲＧＴＭ）と目標空燃比（ＡＦＴＲＧＴ）との比により算出される。Ｋ３は、調整値であり、整合性が図られるような所定値に設定される。
【００６４】
これは、従来、排ガスを浄化する触媒装置の高い浄化率を引き出すため、空燃比フィードバック補正係数（ＫＦＢ）の積分項（ＫＦＢＩ）及び比例項（ＫＦＢＰ）から生じる振幅挙動により、燃料噴射パルス幅（ＴＩＯＵＴｉ）の振幅（△ＴＩ）が、ある所定値となるように、空燃比フィードバック補正係数（ＫＦＢ）が設定されている（図６参照）。この実施例による燃料噴射パルス幅（ＴＩＯＵＴｉ）は、ＴＩＯＵＴｉ＝ＴＩＢＡＳＥｉ＊（１＋ＫＦＢ＋ＫＲＯ２ＨＯＳ）＊（１＋ＫＬＲＮ）＊Ｋ１＋Ｋ２で算出され、フィードバック量補正値（ＫＲＯ２ＨＯＳ）を、空燃比フィードバック補正係数（ＫＦＢ）との和とすることにより、燃料噴射パルス幅（ＴＩＯＵＴｉ）の振幅（△ＴＩ）を崩すことなく、触媒装置４２の高い浄化率を引き出すことが可能である。フィードバック量補正値（ＫＲＯ２ＨＯＳ）を空燃比フィードバック補正係数（ＫＦＢ）との積とした場合には、燃料噴射パルス幅（ＴＩＯＵＴｉ）の振幅（△ＴＩ）を、ある所定値に制御することは、非常に困難となるものである。
【００６５】
よって、この実施例においては、酸素センサ４８の出力値（ＶＲＯ２）によって目標空燃比（ＡＦＴＲＧＴ）が補正された場合でも、燃料噴射量を正確に学習することができることを目的としたものである。このため、制御手段５０は、基本燃料噴射量を予め設定する基本燃料噴射量設定部５０Ａと、空燃比フィードバック制御条件が成立しているときには酸素センサ４８の出力値により目標空燃比（ＡＦＴＲＧＴ）を補正する目標空燃比補正制御部５０Ｂと、この目標空燃比補正制御部５０Ｂで補正された目標空燃比（ＡＦＴＲＧＴ）とリニア空燃比センサ４６の出力値からフィードバック補正量を算出する空燃比フィードバック処理部５０Ｃと、燃料学習値（ＫＬＲＮ）を算出する燃料学習制御部５０Ｄと、少なくとも空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量と燃料学習制御部５０Ｄから算出された燃料学習値（ＫＬＲＮ）とに応じて基本燃料噴射量設定部５０Ａから予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部５０Ｅとを備え、この燃料噴射量算出部５０Ｅの実行時には、燃料学習制御部５０Ｄでの燃料学習値（ＫＬＲＮ）を、空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量の値に左右されないように算出する。
【００６６】
そして、目標空燃比（ＡＦＴＲＧＴ）が補正されている時は、空燃比フィードバック補正値（積分項）から空燃比フィードバック処理部５０Ｃにより算出された補正値を減算処理し、この補正値を上記の算出結果により得られた空燃比フィードバック補正値（積分項）に加算したものを空燃比フィードバック補正係数（ＫＦＢ）に加算したものをフィードバック補正量として基本燃料噴射パルス幅に乗算することにより、酸素センサ４８の出力値（ＶＲＯ２）による目標空燃比（ＡＦＴＲＧＴ）の補正分が燃料学習値（ＫＬＲＮ）に反映されないようにすることができ、目標空燃比（ＡＦＴＲＧＴ）が大きく補正された場合でも、燃料学習値（ＫＬＲＮ）が変動することがない。
【００６７】
つまり、エンジン２の完爆判定後の燃料噴射パルス幅（ＴＩＯＵＴｉ）は、ＴＩＯＵＴｉ＝ＴＩＢＡＳＥｉ＊（１＋ＫＦＢ＋ＫＲＯ２ＨＯＳ）＊（１＋ＫＬＲＮ）＊Ｋ１＋Ｋ２で与えられる。
【００６８】
ここで、フィードバック量補正値（ＫＲＯ２ＨＯＳ）は、図７に示す如く、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）を横切ったときに更新される。空燃比フィードバック補正係数（ＫＦＢ）は、ＫＦＢ＝ＫＦＢＰ（比例項）＋ＫＦＢＩ２（積分項）で算出される。積分項（ＫＦＢＩ）は、従来のＰＩ（比例積分）制御（説明省略）で算出される。積分項（ＫＦＢＩ２）は、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳの処理により、積分項（ＫＦＢＩ）からフィードバック量補正値（ＫＲＯ２ＨＯＳ）を減算した値である。
【００６９】
また、燃料学習値（ＫＬＲＮ）は、燃料学習制御により算出されたものであり、運転領域毎に値を持つものである。基本燃料噴射時間（ＴＩＢＡＳＥｉ）は、エンジン回転数、吸気管絶対圧力、吸入空気量偏差により設定される。Ｋ１、Ｋ２は、各種エンジンパラメータ信号により算出される補正係数である。
【００７０】
この結果、制御手段５０は、基本燃料噴射量を予め設定する基本燃料噴射量設定部５０Ａと、空燃比フィードバック制御条件が成立しているときには酸素センサ４８の出力値により目標空燃比（ＡＦＴＲＧＴ）を補正する目標空燃比補正制御部５０Ｂと、この目標空燃比補正制御部５０Ｂで補正された目標空燃比（ＡＦＴＲＧＴ）とリニア空燃比センサ４６の出力値からフィードバック補正量を算出する空燃比フィードバック処理部５０Ｃと、燃料学習値（ＫＬＲＮ）を算出する燃料学習制御部５０Ｄと、少なくとも空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量と燃料学習制御部５０Ｄから算出された燃料学習値（ＫＬＲＮ）とに応じて基本燃料噴射量設定部５０Ａから予め設定された基本燃料噴射量を補正するとともにこの補正された燃料噴射量に基づいて燃料噴射量を算出する燃料噴射量算出部５０Ｅとを備え、この燃料噴射量算出部５０Ｅの実行時には、燃料学習制御部５０Ｄでの燃料学習値（ＫＬＲＮ）を、空燃比フィードバック処理部５０Ｃから算出されたフィードバック補正量の値に左右されないように算出することから、つまり、目標空燃比（ＡＦＴＲＧＴ）が補正されたときに、そのフィードバック補正量を燃料学習値（ＫＬＲＮ）の算出に直接反映させないように、リッチ／リーンの変化の回数を条件とし、リッチ／リーンの変化の回数が一定値となったときには空燃比フィードバック処理部５０Ｂで算出された、空燃比フィードバック補正係数積分項（ＫＦＢＩ２）の平均値（ＫＦＢＡＶＲＧ）から燃料学習更新値（ＴＫＤＫＬ）を算出して燃料学習値（ＫＬＲＮ）に反映させることから、燃料学習値（ＫＬＲＮ）が、補正された目標空燃比の値に左右されることがなく、精度の高い燃料噴射量の学習制御を実施可能とすることができる。
【００７１】
また、前記フィードバック補正量は、空燃比フィードバック補正係数（ＫＦＢ）と空燃比フィードバック処理部５０Ｃにより補正された値とから算出されたことから、燃料噴射パルス幅が最適な振幅挙動を示すことができ、触媒装置４２の浄化性能を最大限に引き出すことが可能となる。
【００７２】
つまり、目標空燃比補正制御による基本燃料噴射量のズレを、図２の空燃比フィードバック処理内で補正するものであり、そのフィードバック量補正値（ＫＲＯ２ＨＯＳ）は、ＫＲＯ２ＨＯＳ＝Ｋ３＊ＡＦＴＲＧＴＭ／ＡＦＴＲＧＴ−１で算出されることから、目標空燃比（ＡＦＴＲＧＴ）が如何なる値であっても、ベース（基本）燃料噴射量からのズレを示す燃料学習値（ＫＬＲＮ）を正確に算出でき、目標空燃比（ＡＦＴＲＧＴ）の変動による燃料学習値（ＫＬＲＮ）の変動を抑えることができる。
【００７３】
また、図２の空燃比フィードバック処理ルーチン後の積分項（ＫＦＢＩ２）の値を使用して燃料学習値（ＫＬＲＮ）を算出することから、目標空燃比（ＡＦＴＲＧＴ）の変動代による積分項（ＫＦＢＩ２）への影響を除くことができる。
【００７４】
更に、フィードバック量補正値（ＫＲＯ２ＨＯＳ）は、図２の空燃比フィードバック処理ルーチンにおいて、図７に示す如く、リニア空燃比センサ４６の出力値（ＡＦ）が目標空燃比（ＡＦＴＲＧＴ）を横切ったときにのみ更新され、積分項（ＫＦＢＩ２）は、ＫＦＢＩ２＝ＫＦＢＩ−ＫＲＯ２ＨＯＳで算出され、これにより、積分項（ＫＦＢＩ２）は、常に、ベース燃料噴射量からのズレ量を表すことができる。
【００７５】
更にまた、フィードバック量補正値（ＫＲＯ２ＨＯＳ）を、図２の空燃比フィードバック補正係数（ＫＦＢ）との和として、燃料噴射パルス幅（ＴＩＯＵＴｉ）を、ＴＩＯＵＴｉ＝ＴＩＢＡＳＥｉ＊（１＋ＫＦＢ＋ＫＲＯ２ＨＯＳ）＊（１＋ＫＬＲＮ）＊Ｋ１＋Ｋ２により算出し、空燃比フィードバック補正係数（ＫＦＢ）は、触媒装置４２が排ガスを高い浄化率で浄化できるようにするため、燃料噴射パルス幅（ＴＩＯＵＴｉ）が最適な振幅挙動を示すように設定されている。フィードバック量補正値（ＫＲＯ２ＨＯＳ）を空燃比フィードバック補正係数（ＫＦＢ）との和とするように設定することにより、目標空燃比（ＡＦＴＲＧＴ）が如何なる値でも、燃料噴射パルス幅（ＴＩＯＵＴｉ）を、最適な振幅挙動に制御できる。
【００７６】
なお、この発明においては、燃料学習値（ＫＬＲＮ）の許容できないような大きなフィードバック補正量が頻繁に発生した場合に、多くの情報を得て判定ができるように、判定範囲を広げ、そして、平均値を求めて適正な値を算出することも可能である。また、この平均値を算出する際に、極端に大きな値を無視し、平均値の適正化を図ることも可能である。また、フィードバック量補正値（ＫＲＯ２ＨＯＳ）の算出の際に、なましを入れることにより、つまり、フィードバック量補正値（ＫＲＯ２ＨＯＳ）を、ＫＲＯ２ＨＯＳ（ｎ）＝ＫＨＯＳ＊ＫＲＯ２ＨＯＳ（ｎ）＋（１−ＫＨＯＳ）＊ＫＲＯ２ＨＯＳ（ｎ−１）により算出することにより、燃料学習値の適正化を図ることも可能である。ここで、ＫＨＯＳは、ゲイン補正値である。
【産業上の利用可能性】
【００７７】
燃料学習値が、補正された目標空燃比の値に左右されないようにすることで、精度の高い燃料噴射量の学習制御を実施可能とするもので、他の空燃比制御にも用いることができる。
【図面の簡単な説明】
【００７８】
【図１】燃料学習制御のフローチャートである。
【図２】空燃比フィードバック処理のフローチャートである。
【図３】目標空燃比補正制御のフローチャートである。
【図４】フィードバック量補正値のフローチャートである。
【図５】リッチ／リーン状態判定のフローチャートである。
【図６】燃料噴射パルス幅の振幅挙動の説明図である。
【図７】制御例のタイムチャートである。
【図８】空燃比制御装置のシステム構成図である。
【符号の説明】
【００７９】
２  エンジン
６  シリンダヘッド
２８  排気通路
３０  排気管
３２  燃料噴射装置
３６  燃料噴射弁
４２  触媒装置
４６  リニア空燃比センサ
４８  酸素センサ
５０  制御手段
５６  クランク角センサ
５８  吸気管絶対圧力センサ
【図１】
2005090427.tif 000003
【図２】
2005090427.tif 000004
【図３】
2005090427.tif 000005
【図４】
2005090427.tif 000006
【図５】
2005090427.tif 000007
【図６】
2005090427.tif 000008
【図７】
2005090427.tif 000009
【図８】
2005090427.tif 000010