(57)【要約】【課題】  本発明は内燃機関の空燃比制御装置に関し、触媒の下流に配置された酸素センサの出力信号を用いて空燃比をフィードバック制御する場合に、触媒の浄化能力を最大に活用可能なフィードバック学習値が得られた時点で学習を完了できるようにする。【解決手段】  基準信号と酸素センサの出力信号との偏差が負の値から正の値へ反転した時点から再び負の値へ反転する時点まで、フィードバック制御信号を時間積分して得られる第１積分値と、基準信号と酸素センサの出力信号との偏差が正の値から負の値へ反転した時点から再び正の値へ反転する時点まで、フィードバック制御信号を時間積分して得られる第２積分値とを求め、それぞれの絶対値の偏差が所定の判定基準値よりも小さくなったらフィードバック学習値の学習が完了したと判断する。【選択図】      図３
2006307704.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路において触媒の下流に配置された酸素センサと、
前記酸素センサの出力信号が所定の基準信号に一致するように、前記酸素センサの出力信号を用いて空燃比をフィードバック制御するフィードバック制御手段と、
前記フィードバック制御のフィードバック制御信号に含まれる定常成分をフィードバック学習値として学習する学習手段と、
前記基準信号と前記酸素センサの出力信号との偏差が負の値から正の値へ反転した時点から再び負の値へ反転する時点まで、前記フィードバック制御信号を時間積分する第１積分値算出手段と、
前記基準信号と前記酸素センサの出力信号との偏差が正の値から負の値へ反転した時点から再び正の値へ反転する時点まで、前記フィードバック制御信号を時間積分する第２積分値算出手段と、
前記第１積分値算出手段により算出された第１積分値の絶対値と、前記第２積分値算出手段により算出された第２積分値の絶対値との偏差を算出し、前記偏差が所定の判定基準値よりも小さくなったら前記フィードバック学習値の学習が完了したと判断する学習完了判定手段と、
を備えることを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記学習完了判定手段は、前記偏差が前記判定基準値よりも小さくなった状態が所定期間連続して成立した場合に、前記フィードバック学習値の学習が完了したと判断することを特徴とする請求項１記載の内燃機関の空燃比制御装置。
【請求項３】
前記学習手段は、前記学習完了判定手段により学習が完了したと判断されたときは、それ以降の前記フィードバック学習値の更新を停止することを特徴とする請求項１又は２記載の内燃機関の空燃比制御装置。
【請求項４】
前記学習手段は、前記学習完了判定手段により学習が完了したと判断されたときは、それ以降の前記フィードバック学習値の更新量を低下させることを特徴とする請求項１又は２記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の空燃比制御装置に関し、特に、触媒の下流側に酸素センサを配置し、酸素センサの出力信号に基づいて空燃比をフィードバック制御するとともに、フィードバック制御信号に含まれる定常成分を学習する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来、排気通路における触媒（三元触媒）の上流側にＡ／Ｆセンサを配置し、触媒の下流側にＯ2センサを配置し、これら２つの酸素センサの出力信号に基づいて空燃比を制御する装置が知られている（例えば特許文献１，２を参照）。Ａ／Ｆセンサは空燃比に対してリニアな出力特性を有する酸素センサであり、Ｏ2センサは空燃比に対し理論空燃比を基準にしてリッチ側とリーン側とで出力が急変する出力特性を有する酸素センサである。このような２つの酸素センサを備えた空燃比制御装置（以下、従来装置という）では、Ａ／Ｆセンサの出力信号に基づき、触媒に流入する排気ガスの空燃比が目標空燃比になるよう燃料量がフィードバック制御されている（以下、この制御をメインフィードバック制御という）。また、このメインフィードバック制御と併せて、Ｏ2センサの出力信号に基づきＡ／Ｆセンサの出力信号を補正する制御も行われている（以下、この制御をサブフィードバック制御という）。
【０００３】
従来装置は、メインフィードバック制御において、Ａ／Ｆセンサの出力信号と目標空燃比に応じた目標信号との偏差からフィードバック制御信号を算出している。メインフィードバック制御で用いられる目標空燃比は、触媒が最も効率的に排気ガスを浄化することのできる空燃比（通常は理論空燃比）に設定されている。ところが、Ａ／Ｆセンサのゼロ出力点のズレや出力特性の変化等、種々の要因により、メインフィードバック制御が実行されているにもかかわらず、排気ガスの実空燃比が理論空燃比に対してリッチ側、或いはリーン側に偏ることがある。触媒には酸素を吸蔵する能力があり、酸素の吸蔵／放出によって触媒雰囲気を理論空燃比近傍に保持している。しかし、排気空燃比が何れかの側に偏った傾向が継続すれば、やがて触媒の酸素吸蔵状態が枯渇状態になって排気ガス中のＨＣやＣＯを浄化できなくなったり（リッチ側に偏った場合）、逆に触媒の酸素吸蔵状態が飽和状態になってＮＯｘを浄化できなくなったりしてしまう（リーン側に偏った場合）。
【０００４】
サブフィードバック制御は、メインフィードバック制御を補完し、内燃機関のエミッション特性を向上させるために実行される。従来装置は、サブフィードバック制御において、Ｏ2センサの出力信号と理論空燃比に応じた基準信号との偏差からＡ／Ｆセンサ出力の補正量を算出し、Ａ／Ｆセンサの出力信号を補正している。これによれば、排気空燃比の理論空燃比からのずれがメインフィードバック制御のフィードバック制御信号に反映されることになるので、Ａ／Ｆセンサのゼロ出力点のずれ等による空燃比制御のずれを補正して正確な空燃比制御を行うことが可能になる。
【特許文献１】特開平７−１９７８３７号公報
【特許文献２】特開２００４−１８３５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、サブフィードバック制御では、そのサブフィードバック制御信号に含まれる定常的な成分をフィードバック学習値（サブＦ／Ｂ学習値）として学習することも行われている。サブＦ／Ｂ学習値がＡ／Ｆセンサの出力信号に加算されることで上記ずれを補償するように空燃比が補正され、サブフィードバック制御の開始後、すみやかに実空燃比を理論空燃比に近づけることが可能になる。
【０００６】
サブＦ／Ｂ学習値の学習は、サブフィードバック制御が実行されている間、絶えず実行することもできる。しかし、サブフィードバック制御の実行中に減速時の燃料カットや加速時の燃料増量等が行われると、触媒雰囲気は理論空燃比近傍からリーン側に或いはリッチ側に大きく変化する。そのような状況で学習が行われると、サブＦ／Ｂ学習値が荒れてしまい、Ｏ2センサの出力信号と基準信号とのずれを拡大させてしまうことになる。
【０００７】
サブＦ／Ｂ学習値の荒れを防止するためには、学習を絶えず継続するのではなく、ある時点で学習を完了してサブＦ／Ｂ学習値を固定してしまうことが望ましい。その場合、良好なエミッション特性を実現するためには、触媒の浄化能力を最大に活用できるサブＦ／Ｂ学習値が得られた時点で学習を完了することが要求される。
【０００８】
本発明は、上述のような課題を解決するためになされたもので、触媒の下流に配置された酸素センサの出力信号を用いて空燃比をフィードバック制御する場合に、触媒の浄化能力を最大に活用可能なフィードバック学習値が得られた時点で学習を完了できるようにした内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の発明は、上記の目的を達成するため、内燃機関の空燃比制御装置であって、
内燃機関の排気通路において触媒の下流に配置された酸素センサと、
前記酸素センサの出力信号が所定の基準信号に一致するように、前記酸素センサの出力信号を用いて空燃比をフィードバック制御するフィードバック制御手段と、
前記フィードバック制御のフィードバック制御信号に含まれる定常成分をフィードバック学習値として学習する学習手段と、
前記基準信号と前記酸素センサの出力信号との偏差が負の値から正の値へ反転した時点から再び負の値へ反転する時点まで、前記フィードバック制御信号を時間積分する第１積分値算出手段と、
前記基準信号と前記酸素センサの出力信号との偏差が正の値から負の値へ反転した時点から再び正の値へ反転する時点まで、前記フィードバック制御信号を時間積分する第２積分値算出手段と、
前記第１積分値算出手段により算出された第１積分値の絶対値と、前記第２積分値算出手段により算出された第２積分値の絶対値との偏差を算出し、前記偏差が所定の判定基準値よりも小さくなったら前記フィードバック学習値の学習が完了したと判断する学習完了判定手段と、
を備えることを特徴としている。
【００１０】
また、第２の発明は、第１の発明において、
前記学習完了判定手段は、前記偏差が前記判定基準値よりも小さくなった状態が所定期間連続して成立した場合に、前記フィードバック学習値の学習が完了したと判断することを特徴としている。
【００１１】
また、第３の発明は、第１又は第２の発明において、
前記学習手段は、前記学習完了判定手段により学習が完了したと判断されたときは、それ以降の前記フィードバック学習値の更新を停止することを特徴としている。
【００１２】
また、第４の発明は、第１又は第２の発明において、
前記学習手段は、前記学習完了判定手段により学習が完了したと判断されたときは、それ以降の前記フィードバック学習値の更新量を低下させることを特徴としている。
【発明の効果】
【００１３】
第１の発明によれば、基準信号と酸素センサの出力信号との偏差が負の値から正の値へ変化した時点から再び負の値へ変化するまでの期間におけるフィードバック制御信号の積分値（第１積分値）の絶対値は、触媒に吸蔵された酸素量に対応している。一方、基準信号と酸素センサの出力信号との偏差が正の値から負の値へ変化した時点から再び正の値へ変化するまでの期間における前記フィードバック制御信号の積分値（第２積分値）の絶対値は、触媒から放出された酸素量に対応している。触媒の浄化能力を最大に活用できるのは、触媒に吸蔵される酸素量と触媒から放出される酸素量とが釣り合うときであるので、第１積分値の絶対値と第２積分値の絶対値との偏差が判定基準値よりも小さくなったら学習が完了したと判断することで、触媒の浄化能力を最大に活用可能なフィードバック学習値を学習することができる。
【００１４】
第２の発明によれば、フィードバック学習値が安定していない状態で前記偏差が判定基準値よりも偶然に小さくなったような場合を、学習の完了と誤って判断してしまうことを防止することができる。
【００１５】
第３の発明によれば、第１積分値の絶対値と第２積分値の絶対値との偏差が判定基準値よりも小さくなったら、それ以降のフィードバック学習値の更新は停止されるので、燃料カットや燃料増量等の影響でフィードバック学習値が荒れてしまうことを防止することができる。
【００１６】
第４の発明によれば、第１積分値の絶対値と第２積分値の絶対値との偏差が判定基準値よりも小さくなったら、それ以降のフィードバック学習値の更新量は低下されるので、燃料カットや燃料増量等の影響を低減することができ、フィードバック学習値が荒れてしまうことを防止することができる。
【発明を実施するための最良の形態】
【００１７】
［エンジンシステムの構成］
図１は本発明の実施の形態としての内燃機関の空燃比制御装置が適用されたエンジンシステムの概略構成図である。本実施形態にかかる内燃機関２の燃焼室１６には、吸気通路４と排気通路６が接続されている。燃焼室１６と吸気通路４との接続部にはその連通状態を制御する吸気弁８が設けられ、燃焼室１６と排気通路６との接続部にはその連通状態を制御する排気弁１０が設けられている。吸気通路４にはエアクリーナ２０が配置され、エアクリーナ２０の下流には燃焼室１６内へ流入する新気の量を調整する電子制御式のスロットル弁１８が配置されている。吸気通路４の吸気弁８の近傍には、燃焼室１６に燃料を供給するためのインジェクタ１２が取り付けられている。排気通路６には排気ガス中の有害物質（ＨＣ、ＣＯ、ＮＯｘ）を浄化するための三元触媒４０が配置されている。
【００１８】
内燃機関２はその制御装置としてＥＣＵ（Electronic Control Unit）３０を備えている。ＥＣＵ３０は複数のセンサによって検出される内燃機関２の作動データに基づき内燃機関２の作動に係わる各種機器を総合的に制御する。ＥＣＵ３０の入力側にはＡ／Ｆセンサ３２、Ｏ2センサ３４、及びエアフローメータ３６が接続されている。Ａ／Ｆセンサ３２は排気通路６において三元触媒４０の上流に配置され、三元触媒４０に流入する排気ガスの空燃比にリニアに対応する信号を出力する。Ｏ2センサ３４は排気通路６において三元触媒４０の下流に配置され、三元触媒４０から流出する排気ガスの空燃比の状態（リーン或いはリッチ）を示す信号を出力する。Ｏ2センサ３４は空燃比に対し理論空燃比を基準にしてリッチ側とリーン側とで出力が急変する出力特性を有している。また、エアフローメータ３６はエアクリーナ２０の直ぐ下流部分に設けられ、吸入空気流量に応じた信号を出力する。一方、ＥＣＵ３０の出力側にはインジェクタ１２が接続されている。ＥＣＵ３０は、各センサ３２，３４，３６からの信号に基づいて燃料噴射量や燃料噴射タイミングを演算し、インジェクタ１２に駆動信号を供給している。なお、ＥＣＵ３０にはこれらのセンサ３２，３４，３６やインジェクタ１２以外にも複数のセンサや機器が接続されているが、ここではその説明は省略する。
【００１９】
［空燃比制御の説明］
ＥＣＵ３０は、内燃機関２の制御の一つとして、内燃機関２の運転中、排気ガスの空燃比が目標空燃比になるようにインジェクタ１２から噴射される燃料量を制御する空燃比制御を実施している。空燃比制御は、Ａ／Ｆセンサ３２の出力信号に基づいて燃料量を制御するメインフィードバック制御と、Ｏ2センサ３４の出力信号に基づいて燃料量を制御するサブフィードバック制御とからなる。図２はＥＣＵ３０が空燃比制御装置として機能する際の機能ブロック図である。以下、図２を参照しながら、ＥＣＵ３０により実行される空燃比制御について説明する。
【００２０】
（１）基本燃料量の算出
ＥＣＵ３０は、目標空燃比設定部１０２と基本燃料量算出部１０４を含んでいる。目標空燃比設定部１０２は、エンジン回転数やスロットル開度に基づき、内燃機関２に供給される混合気の目標空燃比afrefを設定する。基本燃料量算出部１０４は、エアフローメータ３６の出力信号から得られた吸入空気量Gaを、目標空燃比設定部１０２で設定された目標空燃比afrefで除算することにより、基本燃料量firefを算出する。なお、吸入空気量Gaはサイクル毎に取得され、ＥＣＵ３０のメモリに記憶されていく。
【００２１】
（２）最終燃料量の算出
ＥＣＵ３０は、サブ燃料量補正部１０６とメイン燃料量補正部１０８を含んでいる。サブ燃料量補正部１０６は、基本燃料量算出部１０４で得られた基本燃料量firefに、後述するサブフィードバック制御によって得られたサブＦ／Ｂ補正燃料量fisfbとサブＦ／Ｂ学習燃料量fisfbgとを加算する。メイン燃料量補正部１０８は、サブ燃料量補正部１０６で補正された燃料量に、さらに、後述するメインフィードバック制御によって得られたメインＦ／Ｂ補正燃料量fimfbを加算する。こうして、基本燃料量firefにサブＦ／Ｂ補正燃料量fisfb、サブＦ／Ｂ学習燃料量fisfbg、及びメインＦ／Ｂ補正燃料量fimfbを加算して得られる燃料量（firef＋fisfb＋fisfbg＋fimfb）が最終燃料量となり、この最終燃料量がインジェクタ１２から噴射される。
【００２２】
（３）メインＦ／Ｂ補正燃料量の算出
メインＦ／Ｂ補正燃料量fimfbは、以下に説明するメインフィードバック制御を実行することにより得られる。ＥＣＵ３０は、メインフィードバック制御のための手段として、目標燃料量設定部１１０、実燃料量算出部１１４、吸入空気量遅延部１１２、Ｆ／Ｂ対象燃料量算出部１１６、除去燃料量設定部１４６、燃料偏差量算出部１１８、及びＰＩコントローラ１２０を含んでいる。
【００２３】
本実施形態にかかるメインフィードバック制御では、フィードバック制御の目標値として目標燃料量firef(i-n)が用いられる。目標燃料量firef(i-n)は、現時点（第ｉサイクル）からｎサイクル前の基本燃料量firefである。基本燃料量firefは基本燃料量算出部１０４においてサイクル毎に算出され、ＥＣＵ３０のメモリに記憶されていく。目標燃料量設定部１１０は、メモリに記憶されている基本燃料量firefのうち、現時点からｎサイクル前の基本燃料量firef(i-n)を読み出して目標燃料量として設定する。なお、ｎはインジェクタ１２から燃料が噴射されてから、その燃料を含む排気ガスがＡ／Ｆセンサ３２に到達するまでの時間（サイクル数）に相当している。
【００２４】
メインフィードバック制御では、Ａ／Ｆセンサ３２の出力信号が用いられる。Ａ／Ｆセンサ３２の出力信号は、電圧−空燃比マップによって空燃比abyfに変換される。実燃料量算出部１１４は、吸入空気量Ga(i-n)を空燃比abyfで除算することにより、空燃比abyfを燃料量（実燃料量）fiactに換算する。吸入空気量Ga(i-n)は、吸入空気量遅延部１１２によってＥＣＵ３０のメモリから読み出される。吸入空気量遅延部１１２は、メモリに記憶されている吸入空気量Gaのうち、現時点（第ｉサイクル）からｎサイクル前の吸入空気量Ga(i-n)を読み出す。
【００２５】
Ｆ／Ｂ対象燃料量算出部１１６は、実燃料量算出部１１４で算出された実燃料量fiactから、除去対象燃料量を差し引くことにより、メインフィードバック制御の対象となる燃料量（Ｆ／Ｂ対象燃料量）fimを算出する。除去対象燃料量は、現時点（第ｉサイクル）からｎサイクル前のサブＦ／Ｂ補正燃料量fisfb(i-n)とサブＦ／Ｂ学習燃料量fisfbg(i-n)である。サブＦ／Ｂ補正燃料量fisfb及びサブＦ／Ｂ学習燃料量fisfbgは、後述するサブフィードバック制御によってサイクル毎に算出され、ＥＣＵ３０のメモリに記憶されていく。除去燃料量設定部１４２は、メモリに記憶されているサブＦ／Ｂ補正燃料量fisfb及びサブＦ／Ｂ学習燃料量fisfbgのうち、現時点からｎサイクル前のサブＦ／Ｂ補正燃料量fisfb(i-n)及びサブＦ／Ｂ学習燃料量fisfbg(i-n)を読み出して除去対象燃料量として設定する。このように、実燃料量fiactからサブＦ／Ｂ補正燃料量fisfb(i-n)及びサブＦ／Ｂ学習燃料量fisfbg(i-n)を差し引いてＦ／Ｂ対象燃料量fimとすることで、サブフィードバック制御による燃料量の補正の効果がメインフィードバック制御によって打ち消されるのを防止することができる。
【００２６】
燃料偏差量算出部１１８は、Ｆ／Ｂ対象燃料量算出部１１６で算出されたＦ／Ｂ対象燃料量fimと、目標燃料量設定部１１０で設定された目標燃料量firef(i-n)との燃料偏差量dfim（dfim＝fim−firef(i-n)）を算出する。
【００２７】
ＰＩコントローラ１２０は、次式（１）で示すように、燃料偏差量算出部１１８で算出された燃料偏差量dfimを入力信号（メインフィードバック入力信号）とし、このメインフィードバック入力信号をＰＩ制御することによってメインＦ／Ｂ補正燃料量fimfbを算出する。式（１）において、dfisumは燃料偏差量dfimの時間積分値である。また、GainpはＰ動作（比例動作）の比例ゲイン、GainiはＩ動作（積分動作）の積分ゲインである。
fimfb = Gainp・dfim + Gaini・dfisum ・・・（１）
算出されたメインＦ／Ｂ補正燃料量fimfbは、メイン燃料量補正部１０８へ出力される。
【００２８】
（４）サブＦ／Ｂ補正燃料量の算出
サブＦ／Ｂ補正燃料量fisfbは、以下に説明するサブフィードバック制御を実行することにより得られる。ＥＣＵ３０は、サブフィードバック制御のための手段として、電圧−空燃比変換マップ１４８、燃料量換算部１３４、吸入空気量遅延部１３２、基準空燃比設定部１３０、基準燃料量設定部１３６、燃料偏差量算出部１３８、及びＰＩコントローラ１４０を含んでいる。
【００２９】
Ｏ2センサ３４の出力信号は、触媒４０の下流における排気ガスの空燃比に応じて変化する。理論空燃比に対応するＯ2センサ３４の出力信号（基準信号）は０．５Ｖであり、空燃比が理論空燃比よりもリッチのときにはＯ2センサ３４の出力信号は０．５Ｖよりも大きく、空燃比が理論空燃比よりもリーンのときにはＯ2センサ３４の出力信号は０．５Ｖよりも小さくなる。電圧−空燃比変換マップ１４８は、Ｏ2センサ３４の出力信号（電圧値）を排気ガスの空燃比に変換するためのマップである。Ｏ2センサ３４の出力信号oxsは、電圧−空燃比変換マップ１４８において空燃比afoxsに変換され、燃料量換算部１３４へ出力される。
【００３０】
燃料量換算部１３４は、吸入空気量Ga(i-m)を空燃比afoxsで除算することにより、空燃比afoxsを燃料量fisに換算する。吸入空気量Ga(i-m)は、吸入空気量遅延部１３２によってＥＣＵ３０のメモリから読み出される。吸入空気量遅延部１３２は、メモリに記憶されている吸入空気量Gaのうち、現時点（第ｉサイクル）からｍサイクル前の吸入空気量Ga(i-m)を読み出す。なお、ｍはインジェクタ１２から燃料が噴射されてから、その燃料を含む排気ガスがＯ2センサ３４に到達するまでの時間（サイクル数）に相当している。
【００３１】
基準燃料量設定部１３６は、サブフィードバック制御の目標値としての基準燃料量fisrefを設定する。基準燃料量fisrefは、基準空燃比設定部１３０で設定される基準空燃比afoxsrefを吸入空気量Ga(i-m)で除算することによって算出される。基準空燃比設定部１３０は、Ｏ2センサ３４の基準信号に対応する理論空燃比を基準空燃比afoxsrefとして設定している。
【００３２】
燃料偏差量算出部１３８は、燃料量換算部１３４で空燃比afoxsから換算された燃料量fisと、基準燃料量設定部１３６で設定された基準燃料量fisrefとの燃料偏差量dfis（dfis＝fis−fisref）を算出する。この燃料偏差量dfisはＯ2センサ３４の出力信号oxsと基準信号（０．５Ｖ）との偏差に基づく値であり、この燃料偏差量dfisがサブフィードバック制御におけるサブフィードバック入力信号となる。
【００３３】
ＰＩコントローラ１４０は、次式（２）で示すように、燃料量換算部１３４で得られた燃料偏差量dfisをサブフィードバック入力信号とし、このサブフィードバック入力信号をＰＩ制御することによってサブＦ／Ｂ補正燃料量fisfbを算出する。式（２）において、Sdfisは燃料偏差量dfisの時間積分値である。また、GpsfbはＰ動作（比例動作）の比例ゲイン、GisfbはＩ動作（積分動作）の積分ゲインである。
fisfb = Gpsfb・dfis + Gisfb・Sdfis ・・・（２）
【００３４】
（５）サブＦ／Ｂ学習燃料量の算出
サブＦ／Ｂ学習燃料量（フィードバック学習値）fisfbgは、ＰＩコントローラ１４０で算出されたサブＦ／Ｂ補正燃料量（フィードバック制御信号）fisfbから学習される。ＥＣＵ３０は、学習のための手段として、サブＦ／Ｂ学習部１４２を含んでいる。サブＦ／Ｂ学習部１４２におけるサブＦ／Ｂ学習燃料量fisfbgの学習は次のようにして行われる。
【００３５】
先ず、サブＦ／Ｂ学習部１４２は、サブＦ／Ｂ学習燃料量fisfbgの更新のためのデータを算出する。学習更新用データfisfbsmは、上記の式（２）により算出されるサブＦ／Ｂ補正燃料量fisfbをなまし処理することによって得られる数値である。なまし処理には、例えばローパスフィルタを用いることができる。サブＦ／Ｂ学習部１４２は、学習更新用データfisfbsmを次式（３）によって処理することで、学習更新量のベース値dfisfbgbを算出する。
dfisfbgb = fisfbsm/M ・・・（３）
上記の式（３）は、学習更新用データfisfbsmの１／ＭがサブＦ／Ｂ学習燃料量fisfbgの更新に反映されることを表している。学習更新反映量Ｍは１より大きい数値である。
【００３６】
サブＦ／Ｂ学習部１４２におけるサブＦ／Ｂ学習燃料量fisfbgの学習は、サブフィードバック制御の実行時に絶えず行われるのではなく、所望のサブＦ／Ｂ学習燃料量fisfbgが得られた時点で、つまり、サブＦ／Ｂ学習が完了した時点で終了される。サブＦ／Ｂ学習が完了するまでの間は、上記の式（３）で算出された学習更新量のベース値dfisfbgbが、そのまま学習更新量dfisfbgとして設定される。一方、サブＦ／Ｂ学習の完了後は、学習更新量dfisfbgは０に設定される。
【００３７】
本実施形態では、サブＦ／Ｂ学習燃料量fisfbgは学習更新量dfisfbgの積算値として表される。サブＦ／Ｂ学習部１４２は、次式（４）に示すようにサブＦ／Ｂ学習燃料量の前回値fisfbg(i-1)に学習更新量dfisfbgを加算し、サブＦ／Ｂ学習燃料量fisfbgを更新する。
fisfbg(i)= fisfbg(i-1) + dfisfbg ・・・（４）
【００３８】
サブＦ／Ｂ学習燃料量fisfbgの更新後、サブＦ／Ｂ学習部１４２は、サブＦ／Ｂ学習燃料量fisfbgの分だけ二重補正にならないよう、ＰＩコントローラ１４０で算出されたサブＦ／Ｂ補正燃料量fisfbを修正する。次式（５）において左辺のfisfbは修正後のサブＦ／Ｂ補正燃料量であり、右辺のfisfbは修正前のサブＦ／Ｂ補正燃料量（式（２）で算出されるサブＦ／Ｂ補正燃料量）である。
fisfb = fisfb - dfisfbg ・・・（５）
上記の処理により、サブＦ／Ｂ学習が完了するまでの間、サブＦ／Ｂ補正燃料量fisfbに含まれる定常成分は、サブＦ／Ｂ補正燃料量fisfbからサブＦ／Ｂ学習燃料量fisfbgに移し変えられていく。
【００３９】
燃料合算部１４４は、サブＦ／Ｂ学習部１４２で更新されたサブＦ／Ｂ学習燃料量fisfbgを、式（５）により修正されたサブＦ／Ｂ補正燃料量fisfbに合算する。合算により得られる合計燃料量（fisfb＋fisfbg）が、サブフィードバック制御におけるサブフィードバック制御信号となる。燃料合算部１４４は、合計燃料量（fisfb＋fisfbg）をサブ燃料量補正部１０６へ出力する。
【００４０】
（６）サブＦ／Ｂ学習の完了判定
ＥＣＵ３０は、サブＦ／Ｂ学習の完了判定を図３に示すルーチンに従って実行する。図３は、本実施形態において、ＥＣＵ３０が実行するサブＦ／Ｂ学習の完了判定のルーチンを示すフローチャートである。
【００４１】
図３に示すルーチンの最初のステップＳ１００では、Ｏ2センサ３４の出力信号oxsに基づいてサブＦ／Ｂ補正燃料量fisfbが算出される。次のステップＳ１０２では、ステップＳ１００で算出されたサブＦ／Ｂ補正燃料量fisfbから学習更新量のベース値dfisfbgbが算出される。
【００４２】
ステップＳ１０４では、サブＦ／Ｂ学習が完了しているか否か判定される。サブＦ／Ｂ学習が完了している場合にはサブＦ／Ｂ学習完了フラグがオンになり、未完了の場合にはオフになっている。本ルーチンの初期状態では、サブＦ／Ｂ学習完了フラグはオフになっている。
【００４３】
ステップＳ１０４の判定でサブＦ／Ｂ学習が完了していない場合には、ステップＳ１０６に進む。ステップＳ１０６では、Ｏ2センサ３４の出力信号oxsがリーン側（０．５Ｖよりも小さい値）からリッチ側（０．５Ｖよりも大きい値）に、或いはリッチ側からリーン側に反転したか否か判定される。上述のサブフィードバック制御が実行されることで、Ｏ2センサ３４の出力信号oxsは周期的に変化している。
【００４４】
ステップＳ１０６の判定の結果、Ｏ2センサ３４の出力信号oxsが反転していない場合には、ステップＳ１２８に進む。ステップＳ１２８では、サブＦ／Ｂ補正燃料量fisfbの積算値sumsfbの更新が行われる。具体的には、前回サイクルの積算値sumsfb(i-1)にステップＳ１００で算出されたサブＦ／Ｂ補正燃料量fisfbを加算した値が、今回サイクルの積算値sumsfb(i)とされる。ステップＳ１２８の処理後は後述するステップ１３４に進み、学習更新量dfisfbgの設定が行われる。
【００４５】
ステップＳ１０６の判定でＯ2センサ３４の出力信号oxsが反転した場合には、ステップＳ１０８に進む。ステップＳ１０８では、前回サイクル、すなわち、Ｏ2センサ３４の出力信号oxsが反転する直前の積算値sumsfb(i-1)が読込まれ、今回反転時の反転時積算値fsumsfb(j)として記憶される。ｊはＯ2センサ３４の出力信号oxsの反転回数である。積算値sumsfb(i)は、前述のようにステップＳ１２８においてサイクル毎に更新され、ステップＳ１０８の処理が実行された後のステップＳ１１０で０にリセットされる。
【００４６】
次のステップＳ１１２では、今回反転時の反転時積算値fsumsfb(j)と、前回反転時の反転時積算値fsumsfb(j-1)との和がリッチ・リーン偏差値dlsumsfbとして算出される。Ｏ2センサ３４の出力信号oxsがリーンからリッチへ反転したときの反転時積算値（第１積分値）fsumsfbは、触媒４０に吸蔵された酸素量に対応している。一方、Ｏ2センサ３４の出力信号oxsがリッチからリーンへ反転したときの反転時積算値（第２積分値）fsumsfbは、触媒４０から放出された酸素量に対応している。今回反転時の反転時積算値fsumsfb(j)と前回反転時の反転時積算値fsumsfb(j-1)のうち、何れか一方は触媒４０に吸蔵された酸素量に対応し、もう一方は、触媒４０から放出された酸素量に対応している。したがって、リッチ・リーン偏差値dlsumsfbは、現時点における触媒４０の酸素吸蔵能力と酸素放出能力との差を示している。
【００４７】
触媒４０の浄化能力は、酸素吸蔵能力と酸素放出能力とがバランスしているときに最大となる。したがって、触媒４０の酸素吸蔵能力と酸素放出能力との差がなくなったとき、つまり、リッチ・リーン偏差値dlsumsfbが０に近づいたときにサブＦ／Ｂ学習を完了すれば、触媒４０の浄化能力を最大に活用することが可能なサブＦ／Ｂ学習燃料量fisfbgを学習することができる。そこで、ステップＳ１１４では、リッチ・リーン偏差値dlsumsfbが０に近づいた否か、具体的には０±αの範囲内にあるか否か判定される。αは誤差の許容範囲を示す判定基準値である。
【００４８】
ステップＳ１１４の判定の結果、リッチ・リーン偏差値dlsumsfbが許容範囲内にあるならば、判定連続成立回数Csfbgokがインクリメントされる（ステップＳ１１６）。この判定連続成立回数Csfbgokは、ステップＳ１１４の判定が連続して成立した回数であり、途中、一度でもステップＳ１１４の判定が不成立になった場合には、クリアされる（ステップＳ１３０）。
【００４９】
リッチ・リーン偏差値dlsumsfbが許容範囲内にあって判定連続成立回数Csfbgokがインクリメントされた場合、次のステップＳ１１８では、判定連続成立回数Csfbgokが所定の学習完了判定値β以上になった否か判定される。判定連続成立回数Csfbgokが学習完了判定値β以上になった場合には、サブＦ／Ｂ学習は完了したとみなされる（ステップＳ１２０）。一方、判定連続成立回数Csfbgokが未だ学習完了判定値βに達していない場合には、サブＦ／Ｂ学習は未完了とみなされる（ステップＳ１３２）。同様に、ステップＳ１３０で判定連続成立回数Csfbgokがクリアされた場合も、サブＦ／Ｂ学習は未完了とみなされる。
【００５０】
図４は、サブフィードバック制御が実行されたときの、Ｏ2センサ３４の出力信号oxsの変化に対する、サブＦ／Ｂ補正燃料量fisfb、その積算値sumsf、リッチ・リーン偏差値dlsumsfb、及び判定連続成立回数Csfbgokの各変化の一例を併せて示している。この図に示すように、サブフィードバック制御が実行されてサブＦ／Ｂ学習が進むことにより、リッチ・リーン偏差値dlsumsfbが０±αの範囲内に収束していく。そして、判定連続成立回数Csfbgokが学習完了判定値βに達したら、サブＦ／Ｂ学習が完了したと判定される。このように、ステップＳ１１４の判定が複数回連続して成立することをサブＦ／Ｂ学習の完了条件としたのは、サブＦ／Ｂ学習燃料量fisfbgが安定していない状態で前記判定が偶然成立した場合を、サブＦ／Ｂ学習の完了と誤って判断してしまうことを防止するためである。このような条件を設けることで、触媒４０の浄化能力を最大に活用することが可能なサブＦ／Ｂ学習燃料量fisfbgを正確に学習することができる。
【００５１】
以上のようにしてサブＦ／Ｂ学習の完了判定が行われると、その判定結果に応じて学習更新量dfisfbgの設定が変えられる。先ず、サブＦ／Ｂ学習が未完了の間は、ステップＳ１０２で算出された学習更新量のベース値dfisfbgbがそのまま学習更新量dfisfbgとして設定される（ステップＳ１３４）。これに対し、サブＦ／Ｂ学習が完了した場合は、学習更新量dfisfbgは０に設定される（ステップＳ１２２）。サブＦ／Ｂ学習が完了するとサブＦ／Ｂ学習完了フラグはオンになるので、それ以降はステップＳ１０４の判定は常時成立してステップＳ１０４からステップＳ１２２に直接進むことになる。これにより、サブＦ／Ｂ学習燃料量fisfbgの更新は停止し、サブＦ／Ｂ学習燃料量fisfbgはサブＦ／Ｂ学習の完了時点の値に保持されることになる。
【００５２】
ステップＳ１２４では、サブＦ／Ｂ学習燃料量fisfbgの更新が行われる。具体的には、前回サイクルのサブＦ／Ｂ学習燃料量fisfbg(i-1)にステップＳ１２２或いはステップＳ１３４で設定された学習更新量dfisfbgを加算した値が、今回サイクルのサブＦ／Ｂ学習燃料量fisfbg(i)とされる。また、次のステップＳ１２６では、学習更新量dfisfbgの分だけ二重補正にならないように、ステップＳ１００で算出されたサブＦ／Ｂ補正燃料量fisfbから学習更新量dfisfbgが減算される。
【００５３】
本実施形態では、ＥＣＵ３０により上記のルーチンが実行されることにより、第１の発明の「第１積分値算出手段」、「第２積分値算出手段」、及び「学習完了判定手段」が実現されている。
【００５４】
［本実施形態の空燃比制御装置の利点］
以上説明した通り、本実施形態の空燃比制御装置によれば、触媒４０の酸素吸蔵能力と酸素放出能力との偏差を示すリッチ・リーン偏差値dlsumsfbが許容範囲内まで小さくなったらサブＦ／Ｂ学習が完了したと判断することで、触媒４０の浄化能力を最大に活用することが可能なサブＦ／Ｂ学習燃料量fisfbgを学習することができる。そして、サブＦ／Ｂ学習が完了したら、それ以降のサブＦ／Ｂ学習燃料量fisfbgの更新は停止されるので、燃料カットや燃料増量等の影響でサブＦ／Ｂ学習燃料量fisfbgが荒れてしまうことを防止することができる。
【００５５】
［その他］
以上、本発明の実施の形態について説明したが、本発明は上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。例えば、上記実施形態のサブフィードバック制御では、Ｏ2センサ３４の出力信号を用いて直接、燃料量を補正しているが、メインフィードバック制御で用いるＡ／Ｆセンサの出力信号を補正することで、間接的に燃料量を補正するようにしてもよい。
【００５６】
また、上記実施形態では、サブＦ／Ｂ学習の完了後は学習更新量dfisfbgを０に設定し、サブＦ／Ｂ学習燃料量fisfbgの更新を停止するようにしているが、ベース値dfisfbgbのＮ（Ｎ＞１）分の１を学習更新量dfisfbg（dfisfbg＝dfisfbgb/N）として設定することで、サブＦ／Ｂ学習燃料量fisfbgの更新量を低下させるようにしてもよい。これによれば、燃料カットや燃料増量等の影響を低減して、サブＦ／Ｂ学習燃料量fisfbgが荒れてしまうことを防止することができるとともる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態としての内燃機関の空燃比制御装置が適用されたエンジンシステムの概略構成図である。
【図２】本発明の実施の形態においてＥＣＵが空燃比制御装置として機能する際の機能ブロック図である。
【図３】本発明の実施の形態において実行されるサブＦ／Ｂ学習の完了判定のルーチンを示すフローチャートである。
【図４】Ｏ2センサ３４の出力信号oxsの変化に対する、サブＦ／Ｂ補正燃料量fisfb、その積算値sumsf、リッチ・リーン偏差値dlsumsfb、及び判定連続成立回数Csfbgokの各変化の一例を併せて示す図である。
【符号の説明】
【００５８】
２  内燃機関
４  吸気通路
６  排気通路
１２  インジェクタ
１６  燃焼室
３０  ＥＣＵ
３２  Ａ／Ｆセンサ
３４  Ｏ2センサ
３６  エアフローメータ
４０  三元触媒
【図１】
2006307704.tif 000003
【図２】
2006307704.tif 000004
【図３】
2006307704.tif 000005
【図４】
2006307704.tif 000006