(57)【要約】【課題】  本発明は内燃機関の空燃比制御装置に関し、燃料カット等によりサブフィードバック制御が頻繁に停止される状況であっても、サブフィードバック制御における学習値の学習を速やかに完了できるようにする。【解決手段】  所定の学習許可条件が成立しているか否かを判定し、学習許可条件が成立している間は、サブ酸素センサからの出力信号と基準値との偏差から学習値の更新量を算出し、所定の更新タイミングが到来する度に更新量を学習値に積算して学習値を更新する。一方、学習許可条件が不成立と判定されたときには、更新タイミングが到来していない場合であっても、学習許可条件が不成立となる直前の更新量を学習値に積算することで学習値を更新する。その後、学習許可条件が再び成立するまで、学習値の更新は禁止する。【選択図】      図２
2006104978.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路において触媒の上流に配置されたメイン酸素センサと、
前記触媒の下流に配置されたサブ酸素センサと、
前記触媒に流入する排気ガスの空燃比が目標空燃比と一致するように、前記メイン酸素センサからの出力信号を用いて燃料噴射量をフィードバック制御するメインフィードバック手段と、
前記サブ酸素センサからの出力信号を前記メインフィードバック手段による燃料噴射量の制御に反映させるサブフィードバック手段と、
前記メイン酸素センサからの出力信号に含まれる恒常的な誤差を補償するための学習値を、前記サブ酸素センサからの出力信号と基準値との偏差に基づいて学習する学習手段とを備え、
前記学習手段は、
前記偏差から学習値の更新量を算出する更新量演算手段と、
所定の更新タイミングが到来する度に前記更新量を前記学習値に積算して前記学習値を更新する第１の学習値更新手段と、
所定の学習許可条件が成立しているか否かを判定する学習許可判定手段と、
前記学習許可判定手段により前記学習許可条件が不成立と判定されている間、前記第１の学習値更新手段による前記学習値の更新を禁止する学習禁止手段と、
前記学習許可条件が不成立になったとき、前記学習許可条件が不成立となる直前の前記更新量を前記学習値に積算して前記学習値を更新する第２の学習値更新手段とを含むことを特徴とする内燃機関の空燃比制御装置。
【請求項２】
前記学習許可条件の成立時には、前記学習値は所定の燃料噴射回数毎に更新され、
前記学習許可条件が不成立になったとき、前記更新量は、前回の前記学習値の更新時点から前記学習許可条件が不成立になった時点までの燃料噴射回数と、前記所定の燃料噴射回数との比に応じて補正され、補正された前記更新量によって前記学習値が更新されることを特徴とする請求項１記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は内燃機関の空燃比制御装置に関し、特に、触媒の上流側と下流側とにそれぞれ酸素センサを配置し、これら酸素センサの出力信号に基づいて燃料供給量を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来、排気通路における触媒の上流側にＡ／Ｆセンサを配置し、触媒の下流側にＯ2センサを配置し、これら２つの酸素センサの出力信号に基づいて空燃比を制御する装置が知られている。Ａ／Ｆセンサは空燃比に対してリニアな出力特性を示す酸素センサであり、Ｏ2センサは空燃比に対し理論空燃比を基準にしてリッチ側とリーン側とで出力が急変するいわゆるＺ特性を示す酸素センサである。このような２つの酸素センサを備えた制御装置では、まず、Ａ／Ｆセンサからの出力信号（空燃比信号）に基づき、触媒に流入する排気ガスの空燃比が目標空燃比になるよう燃料噴射量がフィードバック制御されている（以下、この制御をメインフィードバック制御という）。また、このメインフィードバック制御と併せて、Ｏ2センサからの出力信号を燃料噴射量にフィードバックする制御も行われている（以下、この制御をサブフィードバック制御という）。
【０００３】
サブフィードバック制御は、メインフィードバック制御を補完し、内燃機関のエミッション特性を向上させるために実行される。メインフィードバック制御において用いられる目標空燃比は、触媒が最も効率的に排気ガスを浄化することのできる空燃比に設定され、メインフィードバック制御では、Ａ／Ｆセンサからの空燃比信号と目標空燃比との偏差に応じてフィードバック補正量を算出している。しかしながら、センサのゼロ出力点のズレ等、種々の要因により、メインフィードバック制御が実行されているにもかかわらず、排気ガスの実空燃比が目標空燃比に対してリッチ側、或いはリーン側に偏ることがある。このような傾向が継続すれば、やがて触媒の酸素吸蔵状態が枯渇状態になってＨＣやＣＯを浄化できなくなったり（リッチ側に偏った場合）、逆に触媒の酸素吸蔵状態が飽和状態になってＮＯｘを浄化できなくなったりしてしまう（リーン側に偏った場合）。
【０００４】
サブＯ2センサからの出力信号は、この触媒の酸素吸蔵状態を代表しており、触媒の酸素吸蔵状態が枯渇状態になった場合にはＯ2センサからの出力信号はリッチ出力となり、触媒の酸素吸蔵状態が飽和状態になった場合にはＯ2センサからの出力信号はリーン出力となる。したがって、Ｏ2センサからの出力信号がリッチ出力に反転したら、触媒に流入する排気ガスの実空燃比はリッチ側に偏っていると判断することができ、逆にＯ2センサからの出力信号がリーン出力に反転したら、実空燃比はリーン側に偏っていると判断することができる。
【０００５】
サブフィードバック制御では、Ｏ2センサからの出力信号に基づきサブＦ/Ｂ補正量を算出し、このサブＦ/Ｂ補正量をメインフィードバック制御にフィードバックすることで、Ａ／Ｆセンサからの空燃比信号と目標空燃比との偏差を補正している。これによれば、Ａ／Ｆセンサからの空燃比信号と目標空燃比との偏差を現実の空燃比と目標空燃比との偏差に近づけることが可能であり、メインフィードバック制御による空燃比の制御精度を高めることができる。
【０００６】
また、サブフィードバック制御では、サブＦ／Ｂ補正量に含まれる定常的な成分が学習値として学習される。この学習値は、Ａ／Ｆセンサからの出力信号に含まれる恒常的な誤差に対応している。学習値がメインフィードバック制御にフィードバックされることで上記誤差が補償され、サブフィードバック制御による空燃比補正の開始後、すみやかに実空燃比を目標空燃比に近づけることが可能になる。
【０００７】
空燃比制御においてサブフィードバック制御を行い、同時にサブＦ／Ｂ補正量から学習値を学習する制御装置としては、従来、例えば、特許文献１に開示されている制御装置が知られている。この制御装置におけるサブフィードバック制御では、Ｏ2センサからの出力信号に基づいてサブＦ/Ｂ補正量が算出され、サブＦ/Ｂ補正量をなました値を所定の周期で学習値として取り込むようになっている。また、特許文献１に記載の技術では、燃料カット時のようにサブフィードバック制御が停止され、サブＦ/Ｂ補正量がクリアされるときには、停止直前のサブＦ/Ｂ補正量のなまし値を一時的に記憶するようになっている。そして、停止からの復帰後は、一時的に記憶しておいた値を初期値としてサブＦ/Ｂ補正量のなまし値を演算することで、頻繁に燃料カット等が行われる場合の学習の遅れを防止している。
【特許文献１】特開２００３−２５４１２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
内燃機関の始動後、或いは、上記のように燃料カット等からの復帰後、サブフィードバック制御における学習を速やかに完了して排気エミッションの悪化を防止するためには、学習の周期は可能な限り短くしたい。しかし、ハンチング等によるサブＦ/Ｂ補正量の変動の影響は、そのなまし値にもある程度現れる。このため、特許文献１に記載の技術のようにサブＦ/Ｂ補正量のなまし値をそのまま学習値として取り込む場合、学習値の精度の悪化を防止するためには学習の周期は長くせざるを得ない。
【０００９】
このような問題点に鑑み、本出願人は、サブＦ/Ｂ補正量のなまし値を学習値としてそのまま取り込むのではなく、なまし値に所定の係数１／ｍ（ｍ＞１）を掛けた値を学習更新量として算出し、この学習更新量を所定の周期で積算していくことによって学習値を演算する方法を創案した。この方法によれば、なまし値の変動の影響は係数によって１／ｍに抑制されるので、学習周期を短くしても学習値の精度の悪化を招くことがない。
【００１０】
ところが、上記方法においても、燃料カットや加速時の燃料増量等が行われる場合には、サブフィードバック制御は中止される。また、サブフィードバック制御の再開後もしばらくは燃料カット等に伴う空燃比のずれの影響が残るため、その影響がなくなるまではサブＦ/Ｂ補正量からの学習値の学習は中止せざるをえない。このため、燃料カット等が頻繁に行われる状況では、学習値の更新機会が少なくなってしまう。学習を速やかに完了して排気エミッションの悪化を防止するためには、学習値の更新機会は、学習値の精度を維持できる範囲内で可能な限り増やしたい。
【００１１】
本発明は、上述のような課題を解決するためになされたもので、燃料カット等によりサブフィードバック制御が頻繁に停止される状況であっても、サブフィードバック制御における学習値の学習を速やかに完了できるようにした内燃機関の空燃比制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の発明は、上記の目的を達成するため、内燃機関の空燃比制御装置であって、
内燃機関の排気通路において触媒の上流に配置されたメイン酸素センサと、
前記触媒の下流に配置されたサブ酸素センサと、
前記触媒に流入する排気ガスの空燃比が目標空燃比と一致するように、前記メイン酸素センサからの出力信号を用いて燃料噴射量をフィードバック制御するメインフィードバック手段と、
前記サブ酸素センサからの出力信号を前記メインフィードバック手段による燃料噴射量の制御に反映させるサブフィードバック手段と、
前記メイン酸素センサからの出力信号に含まれる恒常的な誤差を補償するための学習値を、前記サブ酸素センサからの出力信号と基準値との偏差に基づいて学習する学習手段とを備え、
前記学習手段は、
前記偏差から学習値の更新量を算出する更新量演算手段と、
所定の更新タイミングが到来する度に前記更新量を前記学習値に積算して前記学習値を更新する第１の学習値更新手段と、
所定の学習許可条件が成立しているか否かを判定する学習許可判定手段と、
前記学習許可判定手段により前記学習許可条件が不成立と判定されている間、前記第１の学習値更新手段による前記学習値の更新を禁止する学習禁止手段と、
前記学習許可条件が不成立になったとき、前記学習許可条件が不成立となる直前の前記更新量を前記学習値に積算して前記学習値を更新する第２の学習値更新手段とを含むことを特徴としている。
【００１３】
第２の発明は、上記第１の発明において、前記学習許可条件の成立時には、前記学習値は所定の燃料噴射回数毎に更新され、
前記学習許可条件が不成立になったとき、前記更新量は、前回の前記学習値の更新時点から前記学習許可条件が不成立になった時点までの燃料噴射回数と、前記所定の燃料噴射回数との比に応じて補正され、補正された前記更新量によって前記学習値が更新されることを特徴としている。
【発明の効果】
【００１４】
第１の発明によれば、学習許可条件が成立している間は所定の更新タイミングが到来する度に学習値の更新が行われ、燃料カットや加速時の燃料増量等により学習許可条件が不成立になった場合には、更新タイミングの到来にかかわらず、学習許可条件が不成立となる直前の更新量によって学習値の更新が行われる。これにより、燃料カット等によりサブフィードバック制御が頻繁に停止される状況であっても学習値の更新機会を確保することができ、学習値の学習を速やかに完了することが可能になる。
【００１５】
また、第２の発明によれば、学習許可条件が不成立になったときに学習値に取り込まれる更新量は、前回の学習値の更新タイミングから学習許可条件が不成立になった時点までの燃料噴射回数と、学習許可条件の成立時に学習値が更新される場合の燃料噴射回数との比に応じて補正される。これにより、データサンプリング期間の長短にかかわらずハンチング等によるセンサ出力の変動の影響を抑制することができ、学習値の精度の悪化を防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図１乃至図６を参照して、本発明の実施の形態について説明する。
図１は本発明の実施の形態としての内燃機関の空燃比制御装置が適用されたエンジンシステムの概略構成図である。本実施形態にかかる内燃機関２の燃焼室１６には、吸気通路４と排気通路６が接続されている。燃焼室１６と吸気通路４との接続部にはその連通状態を制御する吸気弁８が設けられ、燃焼室１６と排気通路６との接続部にはその連通状態を制御する排気弁１０が設けられている。吸気通路４にはエアクリーナ２０が配置され、エアクリーナ２０の下流には燃焼室１６内へ流入する新気の量を調整する電子制御式のスロットル弁１８が配置されている。吸気通路４の吸気弁８の近傍には、燃焼室１６に燃料を供給するためのインジェクタ１２が取り付けられている。排気通路６には排気ガス中の有害物質（ＨＣ、ＣＯ、ＮＯｘ）を浄化するための三元触媒４０が配置されている。
【００１７】
内燃機関２はその制御装置としてＥＣＵ（Electronic Control Unit）３０を備えている。ＥＣＵ３０は複数のセンサによって検出される内燃機関２の作動データに基づき内燃機関２の作動に係わる各種機器を総合的に制御する。ＥＣＵ３０の入力側にはＡ／Ｆセンサ３２、Ｏ2センサ３４、エアフローメータ３６、及び回転数センサ３８が接続されている。Ａ／Ｆセンサ３２は排気通路６において三元触媒４０の上流に配置され、三元触媒４０に流入する排気ガスの空燃比にリニアに対応する空燃比信号を出力する。Ｏ2センサ３４は排気通路６において三元触媒４０の下流に配置され、三元触媒４０から流出する排気ガスの空燃比の状態（リーン或いはリッチ）を示す信号を出力する。エアフローメータ３６はエアクリーナ２０の直ぐ下流部分に設けられ、吸入空気流量に応じた信号を出力する。また、回転数センサ３８はクランク軸２２の近傍に取り付けられ、機関回転速度に応じた信号を出力する。一方、ＥＣＵ３０の出力側にはインジェクタ１２が接続されている。ＥＣＵ３０は、各センサ３２，３４，３６，３８からの信号に基づいて燃料噴射量や燃料噴射タイミングを演算し、インジェクタ１２に駆動信号を供給している。なお、ＥＣＵ３０にはこれらのセンサ３２，３４，３６，３８やインジェクタ１２以外にも複数のセンサや機器が接続されているが、ここではその説明は省略する。
【００１８】
ＥＣＵ３０は、内燃機関２の制御の一つとして、燃焼室１６内の混合気の空燃比を所望の目標空燃比にするための空燃比フィードバック制御を実施している。空燃比フィードバック制御は、内燃機関２の運転中、Ａ／Ｆセンサ３２により検出される排気空燃比が目標空燃比（例えば１４．６）になるようにインジェクタ１２からの燃料噴射量を制御するものであり、Ａ／Ｆセンサ３２からの信号に基づくメインフィードバック制御と、Ｏ2センサ３４からの信号に基づいてメインフィードバック制御を補正するサブフィードバック制御とからなる。本実施形態の空燃比制御装置は、サブフィードバック制御の方法、特に、サブフィードバック制御における学習値（以下、サブＦ/Ｂ学習値）の学習方法に特徴を有している。
【００１９】
以下では、図２乃至図５を参照しながら、ＥＣＵ３０により実行されるサブＦ/Ｂ学習値の学習方法について説明する。図２は、ＥＣＵ３０により実行される学習の動作を説明するためのフローチャートである。図２に示すルーチンは、一定のクランク角毎に繰り返し実行される。
【００２０】
最初のステップ１００では、現在の内燃機関２の運転状態が燃料カット（Ｆ／Ｃ）中か否か、燃料増量中か否か判定される。燃料カット中は、三元触媒４０に流入する空燃比は大きくリーン側にずれ、三元触媒４０の酸素吸蔵量は一時的に飽和状態になる。逆に、燃料増量中は、三元触媒４０に流入する空燃比は大きくリッチ側にずれ、三元触媒４０の酸素吸蔵量は一時的に枯渇状態になる。このような状況ではＯ2センサ３４の信号は基準信号に対してリーン側或いはリッチ側に大きく偏ることになるが、この偏りは機器の製造誤差や経時変化のようなサブフィードバック制御による本来の補正目的とは異なる要因によるものである。このため、燃料カット中や燃料増量中にはサブフィードバック制御は実行されない。
【００２１】
燃料カットも燃料増量も行われていない場合には、次のステップ１０２においてサブフィードバック制御を実行するための他の条件が成立しているか否か判定される。他の条件とは、例えば、温度の低下によりＯ2センサ３４が非活性状態になって信号が出力されない場合や、メインフィードバック制御がオープンループになった場合などである。これら実行条件が成立している場合には、サブフィードバック制御によるメインフィードバック制御の補正が実行される（ステップ１０６）。
【００２２】
サブフィードバック制御では、次式（１）に示すように、Ｏ2センサ３４からの出力信号OXSと基準信号SFBOとの偏差をＰＩ制御することよってサブＦ／Ｂ補正量evafsfbが算出される。次式（１）においてGainPはＰ項（比例項）の比例ゲインであり、GainIはＩ項（積分項）の積分ゲインである。
evafsfb = (SFBO - OXS) * GainP + Σ(SFBO - OXS) * GainI ・・・（１）
サブＦ／Ｂ学習値は、後述するように上記のサブＦ／Ｂ補正量evafsfbから算出される。
【００２３】
次のステップ１０６では、サブＦ／Ｂ学習値の学習許可が成立しているか否か判定される。学習許可は、ステップ１００，１０２においてサブフィードバック制御の実行条件が成立してからの燃料噴射回数が所定回数以上になることをその成立条件としている。具体的には、ＥＣＵ３０は、図３に示すルーチンを図２に示すルーチンと並行して実行している。図３に示すルーチンは、燃料噴射タイミング毎（４気筒エンジンの場合には１８０°ＣＡ毎）に実行されるルーチンであり、ルーチンの実行の度に学習許可カウンタCsfbgex（ステップ２００）と学習更新間隔カウンタCsfbgt（ステップ２０２）がそれぞれ１ずつインクリメントされるようになっている。ステップ１０６では、学習許可カウンタCsfbgexが判定値（すなわち所定の燃料噴射回数）αに達したか否か判定され、判定値α以上の場合にはステップ１０８以下の処理が実行される。なお、判定値αは、燃料カット等からの復帰後、燃料カット等に伴う空燃比のずれが収まるまでに必要な燃料噴射回数を考慮して設定されている。
【００２４】
ステップ１０８では、サブＦ／Ｂ学習値の更新のためのデータが算出される。学習更新用データevafsfbsmは、上記の式（１）により算出されるサブＦ／Ｂ補正量evafsfbをなまし処理することによって得られる数値である。サブＦ／Ｂ補正量evafsfbのなまし処理には、例えばローパスフィルタを用いることができる。なまし処理によって、サブＦ／Ｂ補正量evafsfbに含まれる高周波の変動成分は概ねカットされる。
【００２５】
次のステップ１１０では、サブＦ／Ｂ学習値の更新タイミングが到来したか否か判定される。サブＦ／Ｂ学習値の更新は、図３に示すルーチンで演算される学習更新間隔カウンタCsfbgtが判定値（すなわち所定の燃料噴射回数）βに達したときに実行される。ステップ１１０では学習更新間隔カウンタCsfbgtが判定値βと比較され、学習更新間隔カウンタCsfbgtが判定値βに達したらステップ１１２の処理が実行される。なお、判定値βはデータのサンプリング回数が学習精度に与える影響を考慮して設定されている。
【００２６】
ステップ１１２では、サブＦ／Ｂ学習値の更新処理が実行される。図４は、ステップ１１２で実行される処理を複数の処理に分けて詳細に示したフローチャートである。まず、最初のステップ１３０では、次式（２）によって学習更新量edvafsfbgが算出される。
edvafsfbg = evafsfbsm / m ・・・（２）
上記の式（２）は、学習更新用データevafsfbsmの１／ｍがサブＦ／Ｂ学習値の更新に反映されることを表している。学習更新反映量ｍは１より大きい数値であり、学習更新反映量ｍを大きい値に設定するほど、サブＦ／Ｂ補正量evafsfbの変動がサブＦ／Ｂ学習値に与える影響は小さくなる。したがって、学習更新反映量ｍが大きいほど、前述の判定値βを小さく、すなわち、学習周期を短く設定することができる。
【００２７】
上記の式（２）で算出された学習更新量edvafsfbgは、サブＦ／Ｂ学習値evafefbgの更新量である。本実施形態では、サブＦ／Ｂ学習値evafefbgは学習更新量edvafsfbgの積算値として表される。ステップ１３２では、次式（３）に示すようにサブＦ／Ｂ学習値の前回値evafefbg(i-1)に学習更新量edvafsfbgが加算され、サブＦ／Ｂ学習値evafefbgの更新が行われる。
evafsfbg = evafsfbg(i-1) + edvafsfbg ・・・（３）
【００２８】
サブＦ／Ｂ学習値evafsfbgの更新後、次のステップ１３４では、サブＦ／Ｂ学習値evafsfbgの分だけ二重補正にならないように各種の処理が行われる。まず、次式（４）によってサブＦ／Ｂ補正量evafsfbの修正が行われる。次式（４）において左辺のevafsfbは修正後のサブＦ／Ｂ補正量であり、右辺のevafsfbは修正前のサブＦ／Ｂ補正量（式（１）で算出されるサブＦ／Ｂ補正量）である。
evafsfb = evafsfb - edvafsfbg ・・・（４）
【００２９】
また、次式（５）によって偏差積分値esumvoの修正が行われる。偏差積分値esumvoは、上記式（１）におけるＯ2センサ３４からの出力信号OXSと基準信号SFBOとの偏差の積分値Σ(SFBO - OXS)である。次式（５）において右辺のesumvo(i-1)は偏差積分値esumvoの前回値を示している。
esumvo = esumvo(i-1)  (edvafsfbg / GainI) ・・・（５）
【００３０】
さらに、次式（６）によって学習更新用データevafsfbsmの修正が行われる。次式（５）において左辺のevafsfbsmは修正後の学習更新用データであり、右辺のevafsfbsmは修正前の学習更新用データ（サブＦ／Ｂ補正量evafsfbのなまし値）である。
evafsfbsm = evafsfbsm  edvafsfbg ・・・（６）
ステップ１３２及びステップ１３４の処理により、Ａ／Ｆセンサ３２の出力信号に含まれる恒常的な誤差を補正するための補正量は、サブＦ／Ｂ補正量evafsfbからサブＦ／Ｂ学習値evafefbgに移し変えられる。
【００３１】
上記のステップ１１２にかかる一連の処理の終了後、学習更新間隔カウンタCsfbgtの値はクリアされる（ステップ１１４）。クリアされた学習更新間隔カウンタCsfbgtは、図３に示すルーチンによって燃料噴射タイミング毎に再びインクリメントされていく。
【００３２】
以上説明したフローに従い、ステップ１００，１０２の条件が成立し、且つ、ステップ１０６の判定において学習許可条件が成立している間は、学習更新量edvafsfbgが周期的にサブＦ／Ｂ学習値evafefbgに取り込まれることで学習が進んでいく。しかし、ステップ１００において燃料カット或いは燃料増量中と判定された場合、或いはステップ１０２においてその他のサブＦ／Ｂ制御の実行条件が不成立と判定された場合、学習許可条件も不成立となる。学習許可条件が不成立になった場合には、以下に説明するような処理が実行される。
【００３３】
ステップ１００或いはステップ１０２の条件が不成立と判定された場合、サブフィードバック制御は停止され、ステップ１１６乃至ステップ１２２の処理が実行される。図５は、ステップ１１６で実行される処理と後述するステップ１２２で実行される処理を詳細に示したフローチャートである。ステップ１１６の処理は、ステップ１４０とステップ１４２に分けて説明することができる。まず、ステップ１４０では、次式（７）によって学習更新量edvafsfbgが算出される。
edvafsfbg = evafsfbsm * (Csfbgt / β)/ m ・・・（７）
【００３４】
学習許可条件が不成立となった後の最初の処理では、上記式（７）における右辺のevafsfbsmは、学習許可条件が不成立となる直前に算出された学習更新用データの値となる。つまり、学習更新タイミングが到来していない場合でも、学習許可条件が不成立となったときには、その直前の学習更新用データevafsfbsmから学習更新量edvafsfbgが算出される。Csfbgt/βは、前回の学習更新タイミングからの経過期間内における実燃料噴射回数と、通常の更新期間内での燃料噴射回数との比を表している。このCsfbgt/βが係数としてevafsfbsm/mに掛けられることで、実燃料噴射回数が少ない場合には、学習更新量edvafsfbgも小さく設定されることになる。これにより、データのサンプリング期間が短い場合のセンサ出力の変動の影響を抑制することができ、学習値の精度の悪化を防止することができる。
【００３５】
ステップ１４０で算出された学習更新量edvafsfbgは、次式（８）に示すようにサブＦ／Ｂ学習値の前回値evafefbg(i-1)に加算される（ステップ１４２）。
evafsfbg = evafsfbg(i-1) + edvafsfbg ・・・（８）
学習許可条件が不成立となったとき、以上説明したステップ１１６（ステップ１４０，１４２）の処理が実行されることによって、通常の学習周期での更新（ステップ１１２の処理による更新）とは別に、学習許可条件が不成立となる直前の学習更新用データevafsfbsmに基づいてサブＦ／Ｂ学習値evafefbgの更新が行われる。
【００３６】
次に、サブＦ／Ｂ補正量evafsfbがクリアされ（ステップ１１８）、学習許可カウンタCsfbgexもクリアされる（ステップ１２０）。ステップ１１０及びステップ１１２においてサブフィードバック制御の実行条件が成立するまでは、サブＦ／Ｂ補正量evafsfbはゼロに維持されることになり、その間、サブフィードバック制御は停止される。また、その間、学習許可カウンタCsfbgexもインクリメントされることなく、ゼロに維持される。
【００３７】
次のステップ１２２では、サブＦ／Ｂ補正量evafsfbの更新にかかるデータがクリアされる。具体的には、偏差積分値esumvoと学習更新用データevafsfbsmがそれぞれクリアされる。学習更新用データevafsfbsmがクリアされることで、次回サイクルでは、ステップ１４０で算出される学習更新量edvafsfbgはゼロになり、ステップ１４２で算出されるサブＦ／Ｂ学習値evafefbgは前回値evafsfbg(i-1)に維持される。つまり、学習許可条件が不成立になった場合、学習許可条件が不成立となる直前の学習更新用データevafsfbsmに基づいて学習を行った後は、サブＦ／Ｂ学習値evafefbgの学習は禁止される。また、偏差積分値esumvoがゼロに設定されることで、サブＦ／Ｂ補正量evafsfbへの誤差の蓄積が防止される。ステップ１２２の処理の後、学習更新間隔カウンタCsfbgtもクリアされる（ステップ１１４）。
【００３８】
ステップ１２２の処理は、ステップ１０６において学習許可カウンタCsfbgexが判定値αに達し、学習許可条件が成立するまでの間は実行され続ける。したがって、サブフィードバック制御の実行条件が成立してサブフィードバック制御が再開された後も、暫くの間は学習更新用データevafsfbsmはゼロに維持され、サブＦ／Ｂ学習値evafefbgの学習は禁止される。サブフィードバック制御の実行条件（ステップ１００，１０２）が成立し、さらに、学習許可条件（ステップ１０６）が成立することを条件に学習更新用データevafsfbsmの計算が再開され、サブＦ／Ｂ学習値evafefbgの学習が再開される。
【００３９】
図６は、図２に示すルーチンがＥＣＵ３０により実行されることで実現されるサブＦ/Ｂ学習値の学習動作の一例をタイムチャートで示したものである。図６中、チャート（Ａ）はＯ2センサ３４の出力の時間変化、チャート（Ｂ）はサブＦ／Ｂ補正量の時間変化、チャート（Ｃ）は学習更新用データの時間変化、チャート（Ｄ）はサブＦ／Ｂ学習値の時間変化、チャート（Ｅ）は学習更新間隔カウンタの時間変化、チャート（Ｆ）は学習許可カウンタの時間変化、チャート（Ｇ）はサブフィードバック制御の制御状態の時間変化、そして、チャート（Ｈ）は燃料カットの実行を示すＦＣフラグのオン／オフの時間変化を示している。ここでは、燃料カットが実行された場合を例にとって、図２に示すルーチンの実行により実現されるサブＦ/Ｂ学習値の学習動作について説明する。
【００４０】
燃料カットが実行される前は、チャート（Ｅ）に示す学習更新間隔カウンタが判定値βに達する度に、チャート（Ｄ）に示すサブＦ/Ｂ学習値の更新が行われる（時点t2）。また、上記ルーチンでは説明を省略したが、チャート（Ａ）に示すＯ2センサ３４の出力がリーンからリッチ、或いはリッチからリーンへ反転したときにも、サブＦ/Ｂ学習値の更新を行うようにしてもよい（時点t1）。
【００４１】
チャート（Ｈ）に示すＦＣフラグがオンになると（時点t3）、学習更新間隔カウンタの値にかかわらず、その時点における学習更新用データに基づいてサブＦ/Ｂ学習値の更新が行われる。サブＦ/Ｂ学習値の更新の後、チャート（Ｂ）に示すサブＦ／Ｂ補正量はクリアされ、サブフィードバック制御は禁止される。また、チャート（Ｆ）に示す学習許可カウンタがクリアされ、チャート（Ｃ）に示す学習更新用データもクリアされる。
【００４２】
燃料カットからの復帰（ＦＣフラグがオフ）の後、サブフィードバック制御が許可され（時点t4）、サブＦ／Ｂ補正量の計算が再開される。また、ＦＣフラグのオンに伴ってクリアされた学習許可カウンタのインクリメントが開始される。学習許可カウンタの値は、三元触媒４０の酸素吸蔵状態を代表しており、学習許可カウンタがゼロのときには三元触媒４０の酸素吸蔵量は最大（Cmax）になり、学習許可カウンタがインクリメントされるにつれ酸素吸蔵量は低下していく。前述の判定値αは、学習の再開が可能な酸素吸蔵量に対応している。
【００４３】
学習許可カウンタが判定値αに達したら（時点t5）、サブＦ/Ｂ学習値の学習が許可され、学習更新間隔カウンタのインクリメントが再開される。また、学習更新用データの計算も再開される。学習許可が成立した後は、燃料カット前と同じく、学習更新間隔カウンタが判定値βに達する度に、また、Ｏ2センサ３４の出力が反転する度にサブＦ/Ｂ学習値の更新が行われる（時点t6、t7、t8）。
【００４４】
以上のように、本実施形態においてＥＣＵ３０により実行されるサブＦ/Ｂ学習値の学習方法によれば、学習許可条件が成立している間は所定の更新タイミングが到来する度にサブＦ／Ｂ学習値の更新が行われ、燃料カットや加速時の燃料増量等により学習許可条件が不成立になった場合には、更新タイミングの到来にかかわらず、学習許可条件が不成立となる直前の学習更新用データに基づいてサブＦ／Ｂ学習値の更新が行われる。これにより、燃料カット等によりサブフィードバック制御が頻繁に停止される状況であっても、サブＦ／Ｂ学習値の更新機会を確保することができ、サブＦ／Ｂ学習値の学習を速やかに完了することが可能になる。また、学習許可条件が不成立になったときにサブＦ／Ｂ学習値に取り込まれる学習更新量は、前回の学習更新タイミングからの経過期間内における燃料噴射回数と、通常の更新期間内における燃料噴射回数との比（Csfbgt/β）に応じて補正されるので、データのサンプリング回数が少ない場合であってもサブＦ／Ｂ学習値の学習精度が悪化することはない。
【００４５】
なお、上述した実施の形態においては、ＥＣＵによる図２のルーチンの実行により、第１の発明の「学習手段」が実現されている。特に、ＥＣＵによる上記ステップ１３０或いは１４０の処理の実行により、第１の発明の「更新量演算手段」が実現され、上記ステップ１３２の処理の実行により、第１の発明の「第１の学習値更新手段」が実現されている。また、ＥＣＵによる上記ステップ１００、１０２及び１０６の処理の実行により、第１の発明の「学習許可判定手段」が実現され、上記ステップ１２２の処理の実行により、第１の発明の「学習禁止手段」が実現されている。さらに、ＥＣＵによる上記ステップ１４２の処理の実行により、第１の発明の「第２の学習値更新手段」が実現されている。
【００４６】
以上、本発明の実施の形態について説明したが、本発明は上記実施形態に限定されず、本発明の趣旨を逸脱しない範囲において変形して実施することもできる。例えば、上記実施形態では、サブ酸素センサとしてＯ2センサを用いているが、メイン酸素センサと同様にＡ／Ｆセンサを用いてもよい。
【００４７】
また、上記実施形態では、メインフィードバック制御の方法については省略しているが、メインフィードバック制御は、排気空燃比が目標空燃比に一致するように、Ａ／Ｆセンサからの空燃比信号と目標空燃比との偏差に基づき燃料噴射量をフィードバック制御するものであればよい。サブフィードバック制御の方法も上記実施形態に限定されるものではない。例えば、Ｏ2センサからの出力信号と基準値との偏差をＰＩＤ制御することによってサブＦ／Ｂ補正量を算出してもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施の形態としての内燃機関の空燃比制御装置が適用されたエンジンシステムの概略構成図である。
【図２】本発明の実施の形態において実行されるサブＦ/Ｂ学習ルーチンのフローチャートである。
【図３】本発明の実施の形態において図２のルーチンとともに実行されるカウンタのカウントルーチンのフローチャートである。
【図４】図２のルーチンのステップ１１２で実行される処理を複数の処理に分けて詳細に示したフローチャートである。
【図５】図２のルーチンのステップ１１６、１２２で実行される処理を詳細に示したフローチャートである。
【図６】図２のルーチンの実行により実現される学習動作の一例を示すタイムチャートである。
【符号の説明】
【００４９】
２  内燃機関
４  吸気通路
６  排気通路
１２  インジェクタ
１６  燃焼室
３０  ＥＣＵ
３２  Ａ／Ｆセンサ
３４  Ｏ2センサ
４０  三元触媒
【図１】
2006104978.tif 000003
【図２】
2006104978.tif 000004
【図３】
2006104978.tif 000005
【図４】
2006104978.tif 000006
【図５】
2006104978.tif 000007
【図６】
2006104978.tif 000008