(57)【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設され、酸素を吸蔵する酸素吸蔵機能を備えた触媒と、
前記排気通路であって前記触媒よりも上流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記下流側空燃比センサの出力値をその目標値である下流側目標値に一致させるためのサブフィードバック量を算出するサブフィードバック量算出手段と、
前記下流側空燃比センサの出力値が前記下流側目標値を横切るように変化する毎に前記サブフィードバック量に含まれる定常成分に応じた値に基づいてサブフィードバック量の学習値を更新する学習を行うとともに同サブフィードバック量を同更新した学習値に応じて補正する学習手段と、
前記学習値の収束の程度を表す学習完了指標値を取得するとともに同学習完了指標値に基づいて前記学習が完了したか否かを判定する学習完了判定手段と、
前記上流側空燃比センサの出力値と前記補正されたサブフィードバック量と前記更新された学習値とに基づいて得られる空燃比をその目標値である上流側目標空燃比に一致させるように内燃機関に供給される混合気の空燃比を制御する空燃比フィードバック制御を実行する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記学習完了判定手段によって前記学習が完了したと判定される前の期間において前記下流側目標値を理論空燃比に相当する値に設定するとともに、前記学習完了判定手段によって前記学習が完了したと判定された後の期間において前記下流側目標値を理論空燃比とは相違する空燃比である目標非理論空燃比に相当する値に設定する下流側目標値設定手段を備えた空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記学習完了判定手段は、
前記下流側空燃比センサの出力値が理論空燃比に相当する値を横切るように変化する回数である反転回数を前記学習完了指標値として取得するとともに、同取得した反転回数が所定の閾値回数以上となったと判定したとき前記学習が完了したと判定するように構成された空燃比制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置において、
前記サブフィードバック量算出手段は、
前記学習完了判定手段によって前記学習が完了したと判定されたとき前記学習値を理論空燃比と前記目標非理論空燃比との差に応じた量だけ補正するように構成された空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路であって同排気通路に設けられた触媒（排気浄化触媒、三元触媒）の上流側及び下流側にそれぞれ配設された上流側空燃比センサ及び下流側空燃比センサの出力値に基づき機関に供給される混合気の空燃比（以下、単に「機関の空燃比」と称呼することもある。）を制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来から、内燃機関の排気通路の上流から下流に向け上流側空燃比センサ、触媒及び下流側空燃比センサを備えるとともに、上流側空燃比センサの出力値と下流側空燃比センサの出力値とに基づいて機関の空燃比を制御する空燃比制御装置が広く採用されている。
【０００３】
より具体的に述べると、従来の空燃比制御装置は、前記下流側空燃比センサの出力値を下流側目標値に一致させるためのサブフィードバック量を算出する。更に、従来の空燃比制御装置は、「前記算出されたサブフィードバック量に含まれる定常成分に応じた値」に基づいて学習値を更新する「学習」を行うとともに、そのサブフィードバック量を「更新した学習値」に応じて補正する学習制御を実行する。そして、従来の空燃比制御装置は、前記上流側空燃比センサの出力値と、サブフィードバック量と、学習値と、に基づいてメインフィードバック量を算出し、その算出したメインフィードバック量に基づき前記機関の空燃比（例えば、燃料噴射量）をフィードバック制御するようになっている。
【０００４】
なお、本明細書において、メインフィードバック量を新たに算出（更新）し、そのメインフィードバック量を機関の空燃比の制御に使用することをメインフィードバック制御を実行するとも言う。同様に、サブフィードバック量を新たに算出（更新）し、そのサブフィードバック量を機関の空燃比の制御に使用することをサブフィードバック制御を実行するとも言う。
【０００５】
上記学習値は、サブフィードバック量の定常成分に応じた値である。その学習値は、空燃比制御装置が備えるバックアップＲＡＭ（スタンバイＲＡＭ）に格納される。バックアップＲＡＭには機関が搭載された車両のイグニッション・キー・スイッチの位置に拘らずバッテリから電力が供給される。バックアップＲＡＭはバッテリから電力が供給されている限り「格納した値（データ）」を保持することができる。従って、例えば、下流側空燃比センサが活性化することに伴ってサブフィードバック制御が開始された時点からサブフィードバック量が定常値近傍に至る時点までの間、サブフィードバック量の定常値からのズレを学習値によって補償することができる。その結果、サブフィードバック制御の開始直後において、機関の空燃比が適正値近傍の空燃比となるように制御され得る。なお、学習値はＥＥＰＲＯＭ等の不揮発性メモリに記憶されてもよい。
【０００６】
ところが、例えば、バッテリが車両から取り外された場合及びバッテリが放電してしまった場合等において「バッテリからバックアップＲＡＭ」への給電が停止すると、バックアップＲＡＭに格納されている学習値は消滅する（破壊される）。また、何らかの電気ノイズ等によりバックアップＲＡＭ内又は不揮発性メモリ内の学習値が破壊される場合もある。このような場合、学習値は初期値（デフォルト値）に戻されるから、学習値を早期に適正値に近づける（即ち、学習を早期に完了させる）ことが好ましい。
【０００７】
他方、従来の空燃比制御装置は、サブフィードバック制御中に「下流側空燃比センサの出力値が理論空燃比に相当する値を横切るように変化する回数」である「反転回数」が所定の閾値回数以上となったか否かを判定するとともに、その反転回数がその閾値回数以上となったと判定したとき前記学習が完了したと判定するようになっている。
【０００８】
即ち、従来の空燃比制御装置は、下流側空燃比センサの出力値が下流側目標値に相当する下流側目標空燃比（例えば、理論空燃比）よりもリーン側の空燃比に相当する値から下流側目標空燃比よりもリッチ側の空燃比に相当する値に変化する回数（以下、「リッチ反転の回数」とも称呼する。）、及び、下流側空燃比センサの出力値が下流側目標空燃比よりもリッチ側の空燃比に相当する値から下流側目標空燃比よりもリーン側の空燃比に相当する値に変化する回数（以下、「リーン反転の回数」とも称呼する。）、の和を反転回数としてカウントし、その反転回数が閾値回数以上となったときに、学習が完了したと判定している。反転回数は、学習値の更新回数に応じた回数であり、従って、学習値が適正値に近づいている程度、即ち、学習値の収束の程度を示すからである。
【０００９】
以上のことから、従来の空燃比制御装置は、学習が完了していないと判定される場合、サブフィードバック制御が実行される機会をできるだけ多くし、それにより、学習機会が増大するように（換言すると、上記反転回数が短期間内に閾値回数に到達するように）、例えば、燃料噴射を停止するフューエルカット制御を禁止している（特許文献１を参照。）。
【特許文献１】特開２００７−１６２６２６号公報
【発明の開示】
【００１０】
ところで、触媒の浄化性能を考慮し且つ窒素酸化物（ＮＯｘ）の排出量を一層低減することを目的として、上記サブフィードバック制御に用いられる下流側目標値が理論空燃比よりもリッチ側の空燃比である目標リッチ空燃比に相当する値に設定される場合がある。この目標リッチ空燃比は、触媒の所謂「ウインドゥ」の範囲内の空燃比であって理論空燃比よりも僅かにリッチ側の空燃比である。目標リッチ空燃比は、理論空燃比とは相違する空燃比であって、本明細書において「目標非理論空燃比」とも称呼される。
【００１１】
このように下流側目標空燃値が目標リッチ空燃比に相当する値に設定されると、触媒に流入するガスの時間的平均値が理論空燃比よりも僅かにリッチ側の空燃比に制御される。このため、上記反転回数が減少するので学習が完了するまでの時間が長くなる。その結果、学習値によるサブフィードバック量の補償が適正に実行されない機会が増大し、更に、フューエルカット制御の機会が減少するので、エミッションが悪化する虞がある。
【００１２】
また、触媒の排気浄化特性及び機関から排出されるガスの排気臭等を低減すること等を目的として、上記サブフィードバック制御に用いられる下流側目標値が理論空燃比よりもリーン側の空燃比である目標リーン空燃比に相当する値に設定される場合がある。この目標リーン空燃比も、理論空燃比とは相違する空燃比であって、本明細書において「目標非理論空燃比」とも称呼される。このように下流側目標空燃値が目標リーン空燃比に相当する値に設定されると、下流側目標空燃値が目標リッチ空燃比に相当する値に設定された場合と同様、上記反転回数が減少するので学習が完了するまでの時間が長くなる。その結果、学習値によるサブフィードバック量の補償が適正に実行されない機会が増大し、更に、フューエルカット制御の機会が減少するので、エミッションが悪化する虞がある。
【００１３】
本発明は、上記課題に対処するためになされたものである。本発明の目的は、下流側目標値を目標リッチ空燃比及び目標リーン空燃比等の「目標非理論空燃比」に相当する値に設定してサブフィードバック制御を行う内燃機関の空燃比制御装置であって、サブフィードバック量の学習を短期間に完了させることが可能であり、それにより、エミッションをより改善することが可能な空燃比制御装置を提供することにある。
【００１４】
具体的に述べると、本発明による内燃機関の空燃比制御装置は、
前記内燃機関の排気通路に配設され、酸素を吸蔵する酸素吸蔵機能を備えた触媒と、
前記排気通路であって前記触媒よりも上流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
前記下流側空燃比センサの出力値をその目標値である下流側目標値に一致させるためのサブフィードバック量を算出するサブフィードバック量算出手段と、
を備える。
【００１５】
更に、この空燃比制御装置は、
前記下流側空燃比センサの出力値が前記下流側目標値を横切るように変化する毎に前記サブフィードバック量に含まれる定常成分に応じた値に基づいてサブフィードバック量の学習値を更新する学習を行うとともに同サブフィードバック量を同更新した学習値（学習値の変化分等）に応じて補正する学習手段と、
前記学習値の収束の程度を表す学習完了指標値を取得するとともに同学習完了指標値に基づいて前記学習が完了したか否かを判定する学習完了判定手段と、
前記上流側空燃比センサの出力値と前記補正されたサブフィードバック量と前記更新された学習値とに基づき基づいて得られる空燃比をその目標値である上流側目標空燃比に一致させるように内燃機関に供給される混合気の空燃比を制御する空燃比フィードバック制御を実行する空燃比制御手段と、
を備える。
【００１６】
加えて、この空燃比制御装置は、
前記学習完了判定手段によって前記学習が完了したと判定される前の期間において前記下流側目標値を理論空燃比に相当する値に設定するとともに、前記学習完了判定手段によって前記学習が完了したと判定された後の期間において前記下流側目標値を理論空燃比以外の空燃比である目標非理論空燃比に相当する値に設定する下流側目標値設定手段を備える。目標非理論空燃比は、理論空燃比よりもリッチ側の空燃比である目標リッチ空燃比、及び、理論空燃比よりもリーン側の空燃比である目標リーン空燃比の何れかである。
【００１７】
これによれば、サブフィードバック量の学習値が比較的大きく変化していて学習値の収束の程度が小さいとき、即ち、前記学習完了判定手段によって前記学習が完了したと判定される前の期間、下流側目標値は理論空燃比に相当する値に設定される。従って、機関の空燃比の時間的平均値が略理論空燃比となるので、上流側触媒から流出するガスの空燃比は理論空燃比を中心に振動する。この結果、下流側目標値を目標非理論空燃比に相当する値に設定した場合よりも「リーン反転及びリッチ反転が発生する頻度」が増大する。即ち、反転回数が早期に増加することに伴って学習値の更新機会が増大するから、学習を早期に完了することができる。
【００１８】
この場合、
前記学習完了判定手段は、
前記下流側空燃比センサの出力値が理論空燃比に相当する値を横切るように変化する回数である反転回数を前記学習完了指標値として取得するとともに、同取得した反転回数が所定の閾値回数以上となったと判定したとき前記学習が完了したと判定するように構成されることが好適である。
【００１９】
上記反転回数は学習値の更新回数に応じて増大する。従って、上記構成によれば、学習値の収束の程度を表す学習完了指標値を精度良く且つ簡単に取得することができる。
【００２０】
更に、前記サブフィードバック量算出手段は、
前記学習完了判定手段によって前記学習が完了したと判定されたとき前記学習値を理論空燃比と前記目標非理論空燃比との差に応じた量だけ補正するように構成されることが好適である。
【００２１】
学習完了判定前において得られた学習値は、下流側目標値が理論空燃比に相当する値に設定された状態下で算出されたサブフィードバック量に基づく値である。一方、学習完了判定後においては下流側目標値が「目標リッチ空燃比及び目標リーン空燃比の何れかである目標非理論空燃比」に相当する値に設定された状態下でサブフィードバック制御が実行される。従って、学習完了判定前において得られた学習値そのものは「学習完了判定後の学習値」としては適切でない。そこで、上記構成のように、前記学習完了判定手段によって前記学習が完了したと判定されたとき、前記学習値を理論空燃比と前記目標非理論空燃比との差に応じた量だけ補正する。これによれば、学習完了判定前において得られた学習値を、学習完了判定後として適切な値を有する学習値へと変換することができる。
【００２２】
（好ましい態様）
なお、この内燃機関の空燃比制御装置であって、
前記学習が完了したと判定される前にはサブフィードバック制御条件として第１条件を設定し、前記学習が完了したと判定された後には前記第１条件に更に条件が付加された第２条件を前記サブフィードバック制御条件として設定するサブフィードバック制御条件設定手段を備えるとともに、
前記サブフィードバック量算出手段は、前記サブフィードバック制御条件が成立しているときにのみサブフィードバック量を算出するように構成され、
前記学習手段は、前記サブフィードバック制御条件が成立しているときにのみ「前記学習及び前記サブフィードバック量の前記学習値に応じた補正」を行うように構成されていることが好適である。
【００２３】
これによれば、学習が完了するまでは学習完了後よりも緩和されたサブフィードバック制御条件（第１条件）が設定されるから、サブフィードバック制御が実行され易くなる。その結果、学習機会が増大するから、学習完了時期を早期化することができる。
【００２４】
更に、この内燃機関の空燃比制御装置は、
前記学習完了判定手段によって前記学習が完了したと判定される前の期間においては所定のフューエルカット条件が成立した場合であっても前記機関への燃料の供給を停止するフューエルカット制御を実行せず、前記学習完了判定手段によって前記学習が完了したと判定された後の期間においては同フューエルカット条件が成立した場合に同フューエルカット制御を実行するフューエルカット制御手段を備えることが好適である。
【００２５】
これによれば、学習が完了するまでフューエルカット制御が実行されないので、学習の機会を増大することができる。また、学習が完了した後はフューエルカット制御が実行されるので触媒の保護及びエミッションの改善を図ることができる。なお、この場合、サブフィードバック制御条件にはフューエルカット制御中でないことが含まれる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明による内燃機関の空燃比制御装置（以下、単に「制御装置」と称呼する。）の実施形態について図面を参照しながら説明する。この制御装置は、内燃機関の空燃比を制御するために燃料噴射量を制御する燃料噴射量制御装置でもある。
【００２７】
（構成）
図１は、この制御装置を４サイクル火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００２８】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
【００２９】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１の壁面及びピストン２２の上面は、シリンダヘッド部３０の下面とともに燃焼室２５を形成している。
【００３０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及びリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３１】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２及び吸気管４１内にあって吸気通路の開口断面積を可変とするスロットルバルブ４３を備えている。スロットルバルブ４３は、ＤＣモータからなるスロットルバルブアクチュエータ４３ａにより吸気管４１内で回転駆動されるようになっている。
【００３２】
排気系統５０は、各気筒の排気ポート３４に一端が接続された複数の枝部を含むエキゾーストマニホールド５１、各エキゾーストマニホールド５１の枝部の他端であって総ての枝部が集合している集合部に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、及び、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００３３】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置（排気浄化触媒）である。各触媒は、各触媒に流入するガスの空燃比が理論空燃比であるとき、ＨＣ，ＣＯなどの未燃成分を酸化するとともに窒素酸化物（ＮＯｘ）を還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア（ＣｅＯ２）によってもたらされる。
【００３４】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、上流側空燃比センサ６６、下流側空燃比センサ６７及びアクセル開度センサ６８を備えている。
【００３５】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量Ｇａに応じた信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度ＴＡを表す信号を出力するようになっている。
【００３６】
カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置７０によって機関回転速度ＮＥに変換される。
水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００３７】
上流側空燃比センサ６６は排気通路に配設されている。上流側空燃比センサ６６の配設位置は、エキゾーストマニホールド５１の枝部の集合部又はその集合部よりも下流側である。上流側空燃比センサ６６は限界電流式の酸素濃度センサである。上流側空燃比センサ６６は、図２に示したように、「被検出ガス」の空燃比Ａ／Ｆに応じた電圧である出力値Vabyfsを出力するようになっている。従って、本例において、上流側空燃比センサ６６は、排気通路であって上流側空燃比センサ６６が配設されている部位を流れるガスの空燃比（従って、上流側触媒５３に流入するガスの空燃比、及び、機関に供給される混合気の空燃比）に応じた出力値Vabyfsを発生するようになっている。
【００３８】
この出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる（リーンとなる）ほど増大する。即ち、上流側空燃比センサ６６は、被検出ガスの空燃比の変化に対して出力が連続的に変化する広域空燃比センサである。
【００３９】
後述する電気制御装置７０は、図２に示したテーブル（マップ）Mapabyfsを記憶していて、そのテーブルMapabyfsに実際の出力値Vabyfsを適用することによって空燃比を検出する（検出空燃比abyfsを取得する）ようになっている。以下、上流側空燃比センサの出力値VabyfsとテーブルMapabyfsとによって取得される空燃比を、上流側空燃比abyfsとも称呼する。
【００４０】
下流側空燃比センサ６７は、排気通路であって上流側触媒５３よりも下流側であり且つ下流側触媒５４よりも上流側（即ち、上流側触媒５３と下流側触媒５４との間の排気通路）に配設されている。下流側空燃比センサ６７は、周知の起電力式の酸素濃度センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ６７は、排気通路であって下流側空燃比センサ６７が配設されている部位を流れるガスである被検出ガスの空燃比（従って、下流側触媒５４に流入するガスの空燃比、及び、機関に供給される混合気の空燃比の時間的平均値）に応じた出力値Voxsを発生するようになっている。
【００４１】
この出力値Voxsは、図３に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値max（例えば、約０．９Ｖ）となり、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値min（例えば、約０．１Ｖ）となり、被検出ガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Vst（中間電圧Vst、例えば、約０．５Ｖ）となる。更に、この出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
【００４２】
再び、図１を参照すると、アクセル開度センサ６８は、運転者によって操作されるアクセルペダルＡＰの操作量Accpを表す信号を出力するようになっている。
【００４３】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、及び、バックアップＲＡＭ７４並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。
【００４４】
バックアップＲＡＭ７４は、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭ７４は、バッテリから電力の供給を受けている場合、ＣＰＵ７１の指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭ７４は、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、ＣＰＵ７１は、バックアップＲＡＭ７４への電力供給が再開されたとき、バックアップＲＡＭ７４に保持されるべきデータを初期化（デフォルト値に設定）するようになっている。
【００４５】
インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するようになっている。更に、インターフェース７５は、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９及びスロットルバルブアクチュエータ４３ａ等に駆動信号（指示信号）を送出するようになっている。
【００４６】
（制御概要）
次に、上記のように構成された制御装置の作動の概要について説明する。
この制御装置は、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られる上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるメインフィードバック制御と、下流側空燃比センサ６７の出力値Voxsを下流側目標値Voxsrefに一致させるサブフィードバック制御と、を含む空燃比フィードバック制御を実行する。実際には、制御装置は「上流側空燃比abyfs」を「下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxsrefとの出力偏差量Dvoxsを小さくするように算出されたサブフィードバック量Vafsfb及びその学習値Vafsfbg」により補正し、それによって「フィードバック制御用空燃比（補正検出空燃比）abyfsc」を算出し、そのフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させる空燃比フィードバック制御を行う。
【００４７】
＜メインフィードバック制御＞
より具体的に述べると、制御装置は、フィードバック制御用出力値Vabyfcを下記（１）式に従って算出する。（１）式において、Vabyfsは上流側空燃比センサ６６の出力値、Vafsfbは下流側空燃比センサ６７の出力値Voxsに基づいて算出されるサブフィードバック量、Vafsfbgはサブフィードバック量の学習値である。これらの値は、何れも現時点において得られている値である。サブフィードバック量Vafsfb及び学習値Vafsfbgの算出方法は後述される。
Vabyfc＝Vabyfs＋Vafsfb＋Vafsfbg    …（１）
【００４８】
制御装置は、下記（２）式に示したように、フィードバック制御用出力値Vabyfcを図２に示したテーブルMapabyfsに適用することによりフィードバック制御用空燃比abyfscを得る。
abyfsc＝Mapabyfs（Vabyfc）    …（２）
【００４９】
一方、制御装置は、現時点にて気筒内に吸入される空気量である筒内吸入空気量Ｍｃ（ｋ）を求める。筒内吸入空気量Ｍｃ（ｋ）は、各気筒の吸気行程毎に、その時点のエアフローメータ６１の出力Ｇａと機関回転速度ＮＥとに基いて求められ（例えば、エアフローメータ６１の出力Ｇａに対して一次遅れ処理を施した値を機関回転速度ＮＥで除することにより求められ）、各吸気行程に対応されながらＲＡＭ７３内に記憶される。筒内吸入空気量Ｍｃ（ｋ）は、周知の空気モデル（吸気通路における空気の挙動を模した物理法則に従って構築されたモデル）により算出されてもよい。
【００５０】
制御装置は、下記（３）式に示したように、その筒内吸入空気量Ｍｃ（ｋ）を現時点における上流側目標空燃比abyfr（ｋ）によって除すことにより基本燃料噴射量Ｆｂａｓｅを求める。上流側目標空燃比abyfr（ｋ）は、機関暖機中、フューエルカット復帰後増量中及び触媒過熱防止増量中等の特殊な場合を除き、理論空燃比に設定される。フューエルカット復帰後増量は、後述する燃料噴射停止（フューエルカット）が終了して燃料噴射が再開されてから所定期間（例えば、上流側触媒５３の酸素吸蔵量が上流側触媒５３の最大酸素吸蔵量Ｃmax１の半分程度以下にまで低下するまでの期間）、上流側目標空燃比abyfr（ｋ）を理論空燃比よりもリッチ側の空燃比に設定することにより行われる。なお、上流側目標空燃比abyfr（ｋ）も、各吸気行程に対応されながらＲＡＭ７３内に記憶される。
Ｆｂａｓｅ＝Ｍｃ（ｋ）／abyfr（ｋ）    …（３）
【００５１】
制御装置は、下記（４）式に示したように、基本燃料噴射量Ｆｂａｓｅをメインフィードバック量ＤＦｉにより補正する（基本燃料噴射量Ｆｂａｓｅにメインフィードバック量ＤＦｉを加える）ことにより、最終燃料噴射量Ｆｉを算出する。そして、制御装置は、最終燃料噴射量Ｆｉの燃料を吸気行程を迎えている気筒のインジェクタ３９から噴射する。
Ｆｉ＝Ｆｂａｓｅ＋ＤＦｉ    …（４）
【００５２】
上記（４）式におけるメインフィードバック量ＤＦｉは、以下のようにして求められる。制御装置は、下記（５）式に示したように、現時点よりもＮサイクル（即ち、Ｎ・７２０°クランク角）前の時点における筒内吸入空気量Ｍｃ（ｋ−Ｎ）を、上記フィードバック制御用空燃比abyfscにより除すことにより、現時点よりもＮサイクル前の時点において燃焼室２５に実際に供給された燃料の量である「筒内供給燃料量Ｆｃ（ｋ−Ｎ）」を求める。
Ｆｃ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／abyfsc    …（５）
【００５３】
このように、現時点からＮサイクル前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）をフィードバック制御用空燃比abyfscで除すのは、燃焼室２５内で燃焼された混合気が上流側空燃比センサ６６に到達するまでにＮストロークに相当する時間を要しているからである。
【００５４】
次に、制御装置は、下記（６）式に示したように、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）を現時点からＮストローク前の上流側目標空燃比abyfr（ｋ−Ｎ）で除すことにより現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を求める。
Ｆｃｒ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／abyfr（ｋ−Ｎ）    …（６）
【００５５】
制御装置は、下記（７）式に示したように、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。この筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
ＤＦｃ＝Ｆｃｒ（ｋ−Ｎ）−Ｆｃ（ｋ−Ｎ）    …（７）
【００５６】
その後、制御装置は、下記（８）式に基いてメインフィードバック量ＤＦｉを求める。この（８）式において、Ｇｐは予め設定された比例ゲイン、Ｇｉは予め設定された積分ゲインである。なお、（８）式の係数ＫＦＢは機関回転速度ＮＥ及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、（８）式の値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値である。つまり、制御装置は、フィードバック制御用空燃比abyfscと上流側目標空燃比abyfrとに基づく比例積分制御によりメインフィードバック量ＤＦｉを算出する。このメインフィードバック量ＤＦｉは上記（４）式に示したように基本燃料噴射量Ｆｂａｓｅに加えられ、それにより、最終的な燃料噴射量Ｆｉが算出される。
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ    …（８）
【００５７】
＜サブフィードバック制御＞
制御装置は上述したサブフィードバック量Vafsfbを次のように算出する。
即ち、制御装置は、下記（９）式に示したように、下流側目標値Voxsrefから現時点の下流側空燃比センサ６７の出力値Voxsを減じることにより出力偏差量DVoxsを求める。
DVoxs＝Voxsref−Voxs    …（９）
【００５８】
（９）式における下流側目標値Voxsrefは、上流側触媒５３の浄化効率が良好となるように定められる。下流側目標値Voxsrefは、後述するように、学習制御によるサブフィードバック量Vafsfbの学習が完了してないと判定されている場合（以下、「学習完了判定前」、「学習完了前」又は「学習未完了時」とも表現する。）と、学習制御によるサブフィードバック量Vafsfbの学習が完了したと判定されている場合（以下、「学習完了判定後」又は「学習完了後」とも表現する。）と、において異なる値に設定される。
【００５９】
即ち、下流側目標値Voxsrefは、学習完了判定前、「下流側空燃比センサ６７に理論空燃比のガスが定常的に到達している場合」に下流側空燃比センサ６７が出力するであろう値（図３に示した理論空燃比相当値Vst）に設定される。これに対し、下流側目標値Voxsrefは、学習完了判定後、下流側空燃比センサ６７に「触媒（上流側触媒５３及び下流側触媒５４）のウインドゥＷの範囲内（理論空燃比を含む所定の空燃比幅内）であって理論空燃比よりも僅かにリッチ側の空燃比である目標リッチ空燃比のガス」が定常的に到達している場合に下流側空燃比センサ６７が出力するであろう値（図３に示した目標リッチ空燃比相当値Vrich）に設定される。
【００６０】
制御装置は、下記（１０）式に基いてサブフィードバック量Vafsfbを求める。（１０）式において、Kpは予め設定された比例ゲイン（比例定数）、Kiは予め設定された積分ゲイン（積分定数）である。また、SDVoxsは、出力偏差量DVoxsの積分値である。積分ゲインKiは、後述するように、学習完了判定前において比較的大きい第１積分ゲインKiLargeに設定され、学習完了判定後において第１積分ゲインより小さい第２積分ゲインKiSmallに設定される（図４の（Ｄ）を参照。）。
Vafsfb＝Kp・DVoxs＋Ki・SDVoxs    …（１０）
【００６１】
このように、制御装置は、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxsrefとに基づく比例積分制御によりサブフィードバック量Vafsfbを算出する。このサブフィードバック量Vafsfbは、上述した（１）式に示したように、フィードバック制御用出力値Vabyfcを算出するために使用される。
【００６２】
＜サブフィードバック制御の学習＞
制御装置は、学習完了判定前、下記（１１）式に基づいてサブフィードバック量Vafsfbの学習値Vafsfbgを更新する。この学習値Vafsfbgの更新は、リッチ反転時及びリーン反転時に実行される。なお、（１１）式の左辺Vafsfbgnewは更新後の学習値Vafsbfbgを表す。
【００６３】
（１１）式から明らかなように、学習値Vafsfbgはサブフィードバック量Vafsfbの積分項Ki・SDVoxsにノイズ除去のためのフィルタ処理を施した値である。（１１）式において、値αは０以上１未満の任意の値である。値αを「０」に設定することにより、積分項Ki・SDVoxsを学習値Vafsfbgとしてそのまま取り込んでも良い。学習値VafsfbgはバックアップＲＡＭ７４に格納される。
Vafsfbgnew＝α・Vafsfbg＋（１−α）・Ki・SDVoxs    …（１１）
【００６４】
リーン反転とは、前述したように、下流側空燃比センサ６７の出力値Voxsが下流側目標値Voxsrefよりも大きい値から下流側目標値Voxsrefよりも小さい値に変化することを言う。リッチ反転とは、下流側空燃比センサ６７の出力値Voxsが下流側目標値Voxsrefよりも小さい値から下流側目標値Voxsrefよりも大きい値に変化することを言う。
【００６５】
＜サブフィードバック制御の学習に伴うサブフィードバック量の補正＞
上記（１）式に示したように、制御装置は、サブフィードバック量Vafsfb及び学習値Vafsfbgを上流側空燃比センサ６６の出力値Vabyfsに加えることにより、フィードバック制御用出力値Vabyfcを得る。学習値Vafsfbgはサブフィードバック量Vafsfbの積分項Ki・SDVoxs（定常成分）の全部又は一部を取り込んだ値である。従って、学習値Vafsfbgを更新した場合、サブフィードバック量Vafsfbをその更新分に応じて補正しないと、更新後の学習値Vafsfbgとサブフィードバック量Vafsfbとにより二重の補正が行われる。従って、学習値Vafsfbgを更新した場合、サブフィードバック量Vafsfbをその学習値Vafsbfbgの更新分に応じて補正する必要がある。
【００６６】
そこで、制御装置は下記（１２）及び下記（１３）式に示したように、学習値Vafsfbgを変更量ΔＧだけ増加するように更新したとき、サブフィードバック量Vafsfbを変更量ΔＧだけ減少させる。（１２）式において、Vafsfbg0は更新直前の学習値Vafsfbgである。従って、変更量ΔＧは正の値及び負の値の何れともなる。
ΔＧ＝Vafsfbg−Vafsfbg0    …（１２）
Vafsfb＝Vafsfb−ΔＧ          …（１３）
【００６７】
以上、説明したように、制御装置は、サブフィードバック量Vafsfbと学習値Vafsfbgとの和だけ上流側空燃比センサ６６の出力値Vabyfsを補正し、その補正によって得られたフィードバック制御用出力値Vabyfcに基づいてフィードバック制御用空燃比abyfscを取得する。そして、制御装置は、取得したフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させるように燃料噴射量Ｆｉを制御する。その結果、上流側空燃比センサ６６の出力値Vabyfsに相当する上流側空燃比abyfsは上流側目標空燃比abyfrに近づき、同時に、下流側空燃比センサ６７の出力値Voxsは下流側目標値Voxsrefに近づく。即ち、制御装置は、上流側空燃比センサ６６の出力値Vabyfsとサブフィードバック量Vafsfbと学習値Vafsfbgとに基づき機関の混合気の空燃比を上流側目標空燃比abyfrに一致させる空燃比フィードバック制御手段を備えている。
【００６８】
＜サブフィードバック制御の学習完了判定＞
上述したように、制御装置は、リッチ反転毎及びリーン反転毎に学習値Vafsfbgを更新する。従って、リッチ反転回数及びリーン反転回数の和（単に「反転回数Ｃ」とも称呼する。）は、学習値Vafsfbgが適正値にどの程度近づいているかを示す値、即ち、学習値Vafsfbgの収束の程度を表す学習完了指標値である。
【００６９】
そこで、制御装置は、図４のタイムチャートに示したように、学習完了判定前、サブフィードバック制御中の反転回数Ｃをカウントし、そのカウントされた反転回数Ｃが閾値回数Ｃｔｈ以上となったか否かを判定する。そして、制御装置は、反転回数Ｃが閾値回数Ｃｔｈ以上となったと判定したとき、学習が完了した（学習値Vafsfbgが適正値に到達した）と判定する（図４の時刻ｔ１を参照。）。このとき、制御装置は学習完了フラグＸＧＫの値を「０」から「１」へと変更する。即ち、学習完了フラグＸＧＫは、その値が「０」のとき学習が完了したと判定される前であることを示し、その値が「１」であるとき学習が完了したと判定された後であることを示す。なお、バックアップＲＡＭ７４への電力供給が再開されたとき、即ち、バックアップＲＡＭ７４に保持されるべき学習値Vafsfbgを含むデータが初期化されたとき、学習完了フラグＸＧＫの値は「０」に設定される。
【００７０】
＜サブフィードバック制御の学習完了判定に伴う処理＞
＜＜下流側目標値の変更＞＞
図４に示したように、学習完了判定前（図４の時刻ｔ１以前）において、制御装置は下流側目標値Voxsrefを理論空燃比に相当する値Vstに設定する。これにより、機関の空燃比の時間的平均値が略理論空燃比となるので、上流側触媒５３から流出するガスの空燃比は理論空燃比を中心に振動する。従って、下流側目標値Voxsrefを目標リッチ空燃比に相当する値Vrichに設定した場合よりも「リーン反転及びリッチ反転が発生する頻度」が増大する。即ち、反転回数が早期に増加し、学習値Vafsfbgの更新が速やかに行われる。
【００７１】
ところで、上流側触媒５３及び下流側触媒５４等の三元触媒の「未燃物の浄化率」は機関の空燃比がウインドゥＷより僅かにリッチ側に偏移しても比較的緩やかに低下するのに対し、三元触媒の「窒素酸化物の浄化率」は機関の空燃比がウインドゥＷより僅かにリーン側に偏移すると急激に低下する。従って、制御装置は、学習完了判定後（図４の時刻ｔ１以降）において、下流側目標値Voxsrefを理論空燃比よりもリッチな空燃比である「目標リッチ空燃比」に相当する値Vrichに変更する。これにより、機関の空燃比の時間的平均値が理論空燃比よりも僅かにリッチ側の空燃比（目標リッチ空燃比）となる。従って、機関の空燃比がリーン側に変位したとしても三元触媒の窒素酸化物の浄化率が低下し難くなるので、窒素酸化物の排出量が増大することを回避することができる。但し、三元触媒によっては、下流側目標値Voxsrefを理論空燃比よりもリーンな空燃比である「目標リーン空燃比」に相当する値に設定したほうが、排気浄化性能及び／又は排気臭等の観点から有利な場合もある。
【００７２】
＜＜学習値Vafsfbgの補正＞＞
更に、制御装置は、学習完了判定時（図４の時刻ｔ１）、下記（１４）式に示したように、学習値Vafsfbgを理論空燃比と目標リッチ空燃比（目標非理論空燃比）との差に応じた量βだけ補正（増大）する。
Vafsfb＝Vafsfb＋β          …（１４）
【００７３】
これは、学習完了判定前においては下流側目標値Voxsrefが理論空燃比に相当する値Vstに設定された状態にてサブフィードバック制御が実行され、その状態で学習値Vafsfbgが取得され、一方、学習完了判定後においては下流側目標値Voxsrefが目標リッチ空燃比に相当する値Vrichに設定された状態にてサブフィードバック制御が実行されるとともに学習値Vafsfbgが燃料噴射量Ｆｉの決定に使用されるからである。即ち、制御装置は、学習完了判定時、その時点までに得られた学習値Vafsfbgに補正量βを加えることにより、その時点までに得られた学習値Vafsfbgをその時点以降の空燃比制御に適切な学習値へと変換する。
【００７４】
＜＜積分ゲインの変更＞＞
加えて、制御装置は、学習完了判定前（図４の時刻ｔ１以前）において、サブフィードバック量Vafsfbの積分項Ki・SDVoxsを求める際の積分ゲインKiを比較的大きい値（第１積分ゲインKiLarge）に設定している。これにより、機関の空燃比が振動し易くなるので、リーン反転及びリッチ反転が発生する頻度が増大する。即ち、反転回数が早期に増加し、学習値Vafsfbgの更新が速やかに行われ、従って、学習の完了時期を早めることができる。
【００７５】
更に、制御装置は、学習完了判定後（図４の時刻ｔ１以降）、積分ゲインKiを第１積分ゲインKiLargeより小さい第２積分ゲインKiSmallに設定する。これにより、学習完了判定後において機関の空燃比の変動が穏やかになるので、更新される学習値Vafsfbgがより安定する。その結果、エミッションをより改善することができる。
【００７６】
（実際の作動）
次に、上記のように構成された空燃比制御装置の実際の作動について説明する。
【００７７】
＜燃料噴射量制御＞
ＣＰＵ７１は、図５に示した最終燃料噴射量Ｆｉの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、その気筒（以下、「燃料噴射気筒」とも称呼する。）に対して繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１はステップ５００から処理を開始し、ステップ５１０に進んでフューエルカット制御条件が成立しているか否かを判定する。フューエルカット制御条件が成立しているとは、以下に述べるフューエルカット開始条件が成立した後にフューエルカット復帰条件が未成立であることを言う。
【００７８】
フューエルカット開始条件は、以下に述べる条件１及び条件２が共に成立したときにのみ成立する。
（条件１）スロットルバルブ開度ＴＡが「０（又は所定開度以下）」である。即ち、スロットルバルブ４３が全閉である。なお、ＣＰＵ７１は、スロットルバルブ４３の開度を、アクセルペダルの操作量Accpが大きくなるほど大きくなるように制御している。
（条件２）機関回転速度ＮＥがフューエルカット回転速度ＮＥＦＣ以上である。
【００７９】
フューエルカット復帰条件は以下に述べる条件３及び条件４の何れかが成立したときに成立し、条件３及び条件４の双方が不成立のとき不成立となる。
（条件３）スロットルバルブ開度ＴＡが「０（前記所定開度）」より大きい。
（条件４）機関回転速度ＮＥが、フューエルカット回転速度ＮＥＦＣよりも所定回転数ΔＮだけ小さいフューエルカット復帰回転速度ＮＥＦＫ（ＮＥＦＫ＝ＮＥＦＣ−ΔＮ）より小さい。
【００８０】
いま、フューエルカット制御条件が成立していないと仮定する。この場合、ＣＰＵ７１はステップ５１０にて「Ｎｏ」と判定し、以下に述べるステップ５２０乃至ステップ５５０の処理を順に行い、ステップ５９５に進んで本ルーチンを一旦終了する。
【００８１】
ステップ５２０：ＣＰＵ７１は、エアフローメータ６１により計測された吸入空気量Ｇａと機関回転速度ＮＥとマップｆとに基いて燃料噴射気筒に吸入される空気量である筒内吸入空気量Ｍｃ（ｋ）を取得する。
ステップ５３０：ＣＰＵ７１は、上記（３）式に従って基本燃料噴射量Ｆｂａｓｅを求める。
ステップ５４０：ＣＰＵ７１は、上記（４）式に従って最終燃料噴射量Ｆｉを求める。
ステップ５５０：ＣＰＵ７１は、最終燃料噴射量Ｆｉの燃料を燃料噴射気筒に対応して設けられているインジェクタ３９から噴射する。
【００８２】
以上により、メインフィードバック量ＤＦｉによりフィードバック補正された基本燃料噴射量Ｆｂａｓｅである最終燃料噴射量Ｆｉの燃料が燃料噴射気筒に対して噴射される。
【００８３】
一方、フューエルカット制御条件が成立している場合、ＣＰＵ７１はステップ５１０にて「Ｙｅｓ」と判定してステップ５６０に進み、学習完了フラグＸＧＫの値が「１」であるか否かを判定する。
【００８４】
いま、学習完了判定前であって学習完了フラグＸＧＫの値が「０」であるとすると、ＣＰＵ７１はステップ５６０にて「Ｎｏ」と判定し、上述したステップ５２０乃至ステップ５５０の処理を順に行い、ステップ５９５に進んで本ルーチンを一旦終了する。この結果、ステップ５５０の処理が実行されるので、フューエルカット制御条件が成立している場合であっても学習完了判定前であれば、フューエルカット（燃料噴射の停止）は実行されない。
【００８５】
これに対し、ＣＰＵ７１がステップ５６０に進んだとき学習完了判定後であって学習完了フラグＸＧＫの値が「１」であると、ＣＰＵ７１はそのステップ５６０にて「Ｙｅｓ」と判定し、ステップ５９５に直接進んで本ルーチンを一旦終了する。この結果、ステップ５５０の処理が実行されないので、フューエルカットが実行される。
【００８６】
＜メインフィードバック量の算出＞
ＣＰＵ７１は図６にフローチャートにより示したメインフィードバック量算出ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ６００から処理を開始し、ステップ６０５に進んでメインフィードバック制御条件（上流側空燃比フィードバック制御条件）が成立しているか否かを判定する。メインフィードバック制御条件は、例えば、フューエルカット中でなく、機関の冷却水温ＴＨＷが第１所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、且つ、上流側空燃比センサ６６が活性化しているときに成立する。
【００８７】
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ６０５にて「Ｙｅｓ」と判定して以下に述べるステップ６１０乃至ステップ６４０の処理を順に行い、ステップ６９５に進んで本ルーチンを一旦終了する。
【００８８】
ステップ６１０：ＣＰＵ７１は、上記（１）式に従ってフィードバック制御用出力値Vabyfcを取得する。
ステップ６１５：ＣＰＵ７１は、上記（２）式に従ってフィードバック制御用空燃比abyfscを取得する。
ステップ６２０：ＣＰＵ７１は、上記（５）式に従って筒内燃料供給量Ｆｃ（ｋ−Ｎ）を取得する。
ステップ６２５：ＣＰＵ７１は、上記（６）式に従って目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を取得する。
【００８９】
ステップ６３０：ＣＰＵ７１は、上記（７）式に従って筒内燃料供給量偏差ＤＦｃを取得する。
ステップ６３５：ＣＰＵ７１は、上記（８）式に従ってメインフィードバック量ＤＦｉを取得する。なお、本例において、係数ＫＦＢは「１」に設定されている。筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃは次のステップ６４０にて求められる。
ステップ６４０：ＣＰＵ７１は、その時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ６３０にて求められた筒内燃料供給量偏差ＤＦｃを加えることにより、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを取得する。
【００９０】
以上により、メインフィードバック量ＤＦｉが比例積分制御により求められ、このメインフィードバック量ＤＦｉが前述した図５のステップ５４０により最終燃料噴射量Ｆｉに反映される。この結果、現時点からＮストローク前の燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が上流側目標空燃比abyfr（特殊な場合を除き、理論空燃比）と略一致せしめられる。
【００９１】
一方、ステップ６０５の判定時において、メインフィードバック制御条件が不成立であると、ＣＰＵ７１は同ステップ６０５にて「Ｎｏ」と判定してステップ６４５に進み、メインフィードバック量ＤＦｉの値を「０」に設定する。次いで、ＣＰＵ７１は、ステップ６５０にて筒内燃料供給量偏差の積分値ＳＤＦｃに「０」を格納する。その後、ＣＰＵ７１は、ステップ６９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック量ＤＦｉは「０」に設定される。従って、基本燃料噴射量Ｆｂａｓｅのメインフィードバック量ＤＦｉによる補正は行わない。
【００９２】
＜サブフィードバック量及び学習値の算出＞
ＣＰＵ７１は、サブフィードバック量Vafsfb及びサブフィードバック量Vafsfbの学習値Vafsfbgを算出するために、図７に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ７００から処理を開始し、ステップ７０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述したステップ６０５でのメインフィードバック制御条件が成立し、上流側目標空燃比abyfrが理論空燃比に設定され、機関の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上であり、且つ、下流側空燃比センサ６７が活性化しているときに成立する。従って、フューエルカット中及びフューエルカット復帰増量中において、サブフィードバック制御は成立しない。
【００９３】
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。更に、機関１０が搭載された車両のバッテリが車両から取り外される等の理由により、バッテリからバックアップＲＡＭ７４への電力供給が一旦遮断され且つその後に電力供給が再開され、それにより、学習値Vafsfbgが初期値に戻された直後であると仮定して説明を続ける。なお、ＣＰＵ７１は、バッテリからバックアップＲＡＭ７４への電力供給が再開されたとき、学習値Vafsfbg、学習完了フラグＸＧＫの値及び反転回数を示すカウンタ（反転回数カウンタ）Ｃの値を何れも「０」に設定するようになっている。これらの値は何れもバックアップＲＡＭ７４内に格納されるようになっている。
【００９４】
この場合、ＣＰＵ７１はステップ７０５にて「Ｙｅｓ」と判定し、以下に述べるステップ７１０乃至ステップ７２０の処理を順に行い、ステップ７２５に進む。
ステップ７１０：ＣＰＵ７１は、上記（９）式に従って下流側目標値Voxsrefと下流側空燃比センサ６７の出力値Voxsとの差である出力偏差量DVoxsを取得する。なお、この時点における下流側目標値Voxsrefは、後述する図８のステップ８１０の処理により理論空燃比相当値Vstに設定されている。
ステップ７１５：ＣＰＵ７１は、上記（１０）式に従ってサブフィードバック量Vafsfbを取得する。なお、この時点における積分ゲインKiは、後述する図８のステップ８１５の処理により第１積分ゲインKiLargeに設定されている。
ステップ７２０：ＣＰＵ７１は、その時点における出力偏差量の積分値SDVoxsに上記ステップ７１５にて求めた出力偏差量DVoxsを加えて、新たな出力偏差量の積分値SDVoxsを取得する。
【００９５】
ＣＰＵ７１は、ステップ７２５において、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後であるか否かを判定する。即ち、ＣＰＵ７１は、現時点が「下流側空燃比センサ６７の出力値Voxsが理論空燃比相当値Vstに設定されている下流側目標値Voxsrefを横切った直後の時点」であるか否かを判定する。そして、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後でなければ、ＣＰＵ７１はステップ７２５にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。
【００９６】
これに対し、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後であると、ＣＰＵ７１はステップ７２５にて「Ｙｅｓ」と判定して以下に述べるステップ７３０乃至ステップ７４５の処理を順に行い、その後、ステップ７９５に進んで本ルーチンを一旦終了する。
【００９７】
ステップ７３０：ＣＰＵ７１は、その時点の学習値Vafsfbgを更新前学習値Vafsfbg0として格納する。
ステップ７３５：ＣＰＵ７１は、上記（１１）式に従って学習値Vafsfbgを更新する。
ステップ７４０：ＣＰＵ７１は、上記（１２）式に従って学習値Vafsfbgの変更量（更新量）ΔＧを算出する。
ステップ７４５：ＣＰＵ７１は、上記（１３）式に従ってサブフィードバック量Vafsfbを変更量ΔＧにより補正する。
【００９８】
以上の処理により、所定時間の経過毎にサブフィードバック量Vafsfbが更新される。更に、リーン反転毎及びリッチ反転毎にサブフィードバック量の学習値Vafsfbgが更新され、サブフィードバック量Vafsfbが補正される。
【００９９】
ところで、ＣＰＵ７１は図８にフローチャートにより示した学習完了判定ルーチンを所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ８００から処理を開始し、ステップ８０５に進んで学習完了フラグＸＧＫの値が「０」であるか否かを判定する。即ち、ＣＰＵ７１は学習制御が未完了であるか否か（完了されたと判定されていないか否か）を判定する。
【０１００】
前述の仮定に従うと学習制御は未完了であるから、学習完了フラグＸＧＫの値は「０」である。従って、ＣＰＵ７１はステップ８０５にて「Ｙｅｓ」と判定し、ステップ８１０に進んで下流側目標値Voxsrefに理論空燃比相当値Vstを格納・設定する。次に、ＣＰＵ７１はステップ８１５に進み、積分ゲインKiに第１積分ゲインKiLargeを格納・設定する。
【０１０１】
この結果、学習完了判定がなされるまで、下流側目標値Voxsrefが理論空燃比相当値Vstに設定されるとともに積分ゲインKiが第１積分ゲインKiLargeに設定された状態にてサブフィードバック量Vafsfbが算出され且つ学習値Vafsfbgが更新されて行く。
【０１０２】
次に、ＣＰＵ７１はステップ８２０に進み、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後であるか否かを判定する。そして、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後でなければ、ＣＰＵ７１はステップ８２０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。
【０１０３】
これに対し、現時点が前述したリーン反転の直後又は前述したリッチ反転の直後であると、ＣＰＵ７１はステップ８２０にて「Ｙｅｓ」と判定してステップ８２５に進み、反転回数カウンタＣを「１」だけ増大する。次に、ＣＰＵ７１はステップ８３０に進み、反転回数カウンタＣの値が閾値回数Ｃｔｈ以上であるか否かを判定する。本例においては、学習値Vafsfbgは反転回数と同じ回数だけ更新される。従って、閾値回数Ｃｔｈは「反転回数Ｃが閾値回数Ｃｔｈに到達すれば学習値Vafsfbgが十分に更新されていて適値に到達している（学習値Vafsfbgが収束している）値」に設定されている。
【０１０４】
いま、学習の開始直後であるとすると、反転回数カウンタＣの値は閾値回数Ｃｔｈより小さい。この場合、ＣＰＵ７１は学習は未だ完了していないと判定し、ステップ８３０からステップ８９５に直接進んで本ルーチンを一旦終了する。
【０１０５】
所定の時間が経過すると、図７のルーチンのステップ７３０乃至ステップ７４５の処理が繰り返し行われるから、学習値Vafsfbgが適値へと近づき、次第に収束する。また、図８のステップ８２５の処理が繰り返し行われるから、反転回数カウンタＣの値は次第に増大して閾値回数Ｃｔｈに到達する。
【０１０６】
このとき、ＣＰＵ７１が図８のステップ８３０の処理を実行すると、ＣＰＵ７１はそのステップ８３０にて「Ｙｅｓ」と判定し（即ち、学習が完了したと判定し）、以下に述べるステップ８３５及びステップ８４０の処理を順に行った後、ステップ８９５に進んで本ルーチンを一旦終了する。
【０１０７】
ステップ８３５：ＣＰＵ７１は、学習完了フラグＸＧＫの値を「１」に設定する。
ステップ８４０：ＣＰＵ７１は、上記（１４）式に従ってサブフィードバック量Vafsfbを上述した補正量βだけ補正（増大）する。
【０１０８】
以上により、学習完了フラグＸＧＫの値は「１」に設定されるので、ＣＰＵ７１は図８のステップ８０５にて「Ｎｏ」と判定するようになる。この場合、ＣＰＵ７１は以下に述べるステップ８４５及びステップ８５０の処理を順に行い、ステップ８９５に進んで本ルーチンを一旦終了する。
【０１０９】
ステップ８４５：ＣＰＵ７１は、下流側目標値Voxsrefに目標リッチ空燃比相当値Vrich（目標非理論空燃比に対応する値）を格納・設定する。
ステップ８５０：ＣＰＵ７１は、積分ゲインKiに第２積分ゲインKiSmallを格納・設定する。
【０１１０】
この結果、学習完了判定がなされた時点以降、下流側目標値Voxsrefが目標リッチ空燃比相当値Vrichに設定されるとともに積分ゲインKiが第２積分ゲインKiSmallに設定された状態にてサブフィードバック量Vafsfbが算出されるとともに学習値Vafsfbgが更新されて行く（図７のステップ７１０乃至ステップ７４５を参照。）。
【０１１１】
なお、サブフィードバック制御条件が成立していない場合、ＣＰＵ７１は図７のステップ７０５にて「Ｎｏ」と判定し、以下に述べるステップ７５０及びステップ７５５の処理を順に行い、ステップ７９５に進んで本ルーチンを一旦終了する。
ステップ７５０：ＣＰＵ７１はサブフィードバック量Vafsfbの値を「０」に設定する。
ステップ７５５：ＣＰＵ７１は出力偏差量の積分値SDVoxsの値を「０」に設定する。
【０１１２】
これにより、上記（１）式から明らかなように、フィードバック制御用出力値Vabyfcは、上流側空燃比センサ６６の出力値Vabyfs及び学習値Vafsfbgの和となる。即ち、この場合、サブフィードバック量Vafsfbの更新及び最終燃料噴射量Ｆｉへの反映は停止される。但し、少なくとも、サブフィードバック量Vafsfbの積分項に対応する学習値Vafsfbgは最終燃料噴射量Ｆｉに反映される。
【０１１３】
以上、説明したように、本発明よる内燃機関の空燃比制御装置の実施形態は、
内燃機関の排気通路に配設され、酸素を吸蔵する酸素吸蔵機能を備えた触媒（５３）と、
上流側空燃比センサ（６６）と、
下流側空燃比センサ（６７）と、
前記下流側空燃比センサの出力値をその目標値である下流側目標値に一致させるためのサブフィードバック量を算出するサブフィードバック量算出手段（図７のステップ７１０乃至ステップ７２０）と、
前記下流側空燃比センサの出力値が前記下流側目標値を横切るように変化する毎に前記サブフィードバック量に含まれる定常成分に応じた値に基づいてサブフィードバック量の学習値を更新する学習を行う（図７のステップ７２５及びステップ７３５）とともに同サブフィードバック量を同更新した学習値に応じて補正する（図７のステップ７３０、ステップ７４０及びステップ７４５）学習手段と、
前記学習値の収束の程度を表す学習完了指標値を取得するとともに同学習完了指標値に基づいて前記学習が完了したか否かを判定する学習完了判定手段（図８のステップ８２０乃至ステップ８３５）と、
前記上流側空燃比センサの出力値Vabyfsと前記補正されたサブフィードバック量Vafsfbと前記更新された学習値Vafsfbgとに基づいて得られる空燃比をその目標値である上流側目標空燃比abyfrに一致させるように内燃機関に供給される混合気の空燃比を制御する空燃比フィードバック制御を実行する空燃比制御手段と（図６のステップ６１０乃至ステップ６４０、図５のステップ５２０乃至ステップ５５０）、
を備えた空燃比制御装置である。
【０１１４】
また、前記空燃比制御手段は、
前記上流側空燃比センサの出力値Vabyfsと、前記補正されたサブフィードバック量Vafsfbと、前記更新された学習値Vafsfbgと、に基づいて機関の空燃比を上流側目標空燃比abyfrに一致させるためのメインフィードバック量ＤＦｉを算出し、そのメインフィードバック量ＤＦｉに基づいて前記機関に供給される混合気の空燃比を制御する手段（図６のステップ６１０乃至ステップ６４０、図５のステップ５２０乃至ステップ５５０）であると表現することもできる。
【０１１５】
更に、上記制御装置は、
前記上流側空燃比センサの出力値Vabyfsに基づいて得られるフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させるためのメインフィードバック量ＤＦｉを算出するメインフィードバック量算出手段（図６のステップ６１０乃至ステップ６４０）と、
前記下流側空燃比センサの出力値を下流側目標値に一致させるためのサブフィードバック量を算出するサブフィードバック量算出手段（図７のステップ７１０乃至ステップ７２０）と、
上記学習手段（図７のステップ７２５乃至ステップ７３５、図７のステップ７４０及びステップ７４５）と、
上記学習完了判定手段（図８のステップ８２０乃至ステップ８３５）と、
前記算出されたメインフィードバック量と前記補正されたサブフィードバック量と前記更新された学習値とに基づき前記機関に供給される混合気の空燃比を制御する空燃比制御手段（図６のステップ６１０、図５のステップ５２０乃至ステップ５５０）と、
前記学習完了判定手段によって前記学習が完了したと判定される前の期間において前記下流側目標値を理論空燃比に相当する値Vstに設定するとともに、前記学習完了判定手段によって前記学習が完了したと判定された後の期間において前記下流側目標値を理論空燃比とは相違する空燃比である目標非理論空燃比（例えば、目標リッチ空燃比Vrich）に相当する値に設定する下流側目標値設定手段（図８のステップ８０５、ステップ８１０及びステップ８４５）と、
を備えた空燃比制御装置であると言うこともできる。
【０１１６】
このように構成された制御装置によれば、学習値Vafsfbgの学習が完了したと判定される前の期間、下流側目標値Voxsrefは理論空燃比に相当する値Vstに設定される。従って、機関の空燃比の時間的平均値が略理論空燃比となるので、上流側触媒５３から流出するガスの空燃比は理論空燃比を中心に振動する。この結果、下流側目標値を目標リッチ空燃比に相当する値Vrich（目標非理論空燃比に相当する値）に設定した場合よりも「リーン反転及びリッチ反転が発生する頻度」が増大する。即ち、反転回数Ｃが早期に増加することに伴って学習値の更新機会が増大するから、学習を早期に完了することができる。
【０１１７】
また、前記学習完了判定手段は、
前記下流側空燃比センサの出力値が理論空燃比に相当する値を横切るように変化する回数である反転回数Ｃを前記学習完了指標値として取得するとともに、同取得した反転回数Ｃが所定の閾値回数Ｃｔｈ以上となったと判定したとき前記学習が完了したと判定するように構成されている（図８のステップ８２０乃至ステップ８３５）。
【０１１８】
上記反転回数Ｃは学習値Vafsfbgの更新回数に応じて増大する。従って、上記制御装置によれば、学習値の収束の程度を表す学習完了指標値を精度良く且つ簡単に取得することができる。
【０１１９】
更に、前記サブフィードバック量算出手段は、
前記学習完了判定手段によって前記学習が完了したと判定されたとき前記学習値を理論空燃比と前記目標非理論空燃比（本例において、目標リッチ空燃比）との差に応じた量βだけ補正するように構成されている（図８のステップ８３０及びステップ８４０）。
【０１２０】
従って、下流側目標値Voxsrefが理論空燃比相当値Vstである学習完了判定前において得られた学習値を、下流側目標値Voxsrefが目標非理論空燃比相当値としての目標リッチ空燃比相当値Vrichである学習完了判定後において適切な値を有する学習値へと変換することができる。
【０１２１】
更に、上記制御装置は、前記学習が完了したと判定される前にはサブフィードバック制御条件として第１条件を設定し、前記学習が完了したと判定された後には前記第１条件に更に条件（本例では、フューエルカット制御条件が成立していないという条件）が付加された第２条件を前記サブフィードバック制御条件として設定するサブフィードバック制御条件設定手段を備えている。
【０１２２】
即ち、上記制御装置においては、学習完了判定前のフューエルカット制御条件は、事実上、学習完了判定後のフューエルカット制御条件に学習が完了したという条件を付加してなる条件であり（図５のステップ５１０及びステップ５６０を参照。）、サブフィードバック制御条件はフューエルカット中でないという条件を含んでいる。従って、学習完了判定後のサブフィードバック制御条件は、学習完了判定前のサブフィードバック制御条件に事実上フューエルカット制御条件が成立していないという条件を付加したものとなっている。
【０１２３】
そして、前記サブフィードバック量算出手段は、前記サブフィードバック制御条件が成立しているときにのみサブフィードバック量を算出するように構成され（図７のステップ７０５を参照。）、
前記学習手段は、前記サブフィードバック制御条件が成立しているときにのみ「前記学習及び前記サブフィードバック量の前記学習値に応じた補正」を行うように構成されている（図７のステップ７０５を参照。）。
【０１２４】
これによれば、学習完了前においては学習完了後のサブフィードバック制御条件（第２条件）よりも緩和されたサブフィードバック制御条件（第１条件）が事実上設定されるから、サブフィードバック制御が実行され易くなる。その結果、学習機会が増大するから、学習完了時期を早期化することができる。
【０１２５】
更に、この内燃機関の空燃比制御装置は、
前記学習完了判定手段によって前記学習が完了したと判定される前の期間においては所定のフューエルカット条件が成立した場合であっても前記機関への燃料の供給を停止するフューエルカット制御を実行せず、前記学習完了判定手段によって前記学習が完了したと判定された後の期間においては同フューエルカット条件が成立した場合に同フューエルカット制御を実行するフューエルカット制御手段を備える（図５のステップ５１０及びステップ５６０を参照。）。
【０１２６】
これによれば、学習完了前の期間においてフューエルカット制御が実行されず、更には、フューエルカット復帰後増量制御も実行されない。従って、学習の機会を増大することができる。また、学習完了後においてはフューエルカット制御が実行されるので触媒の保護及びエミッションの改善を図ることができる。
【０１２７】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記制御装置は、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値である筒内燃料供給量偏差ＤＦｃに基づいて基本燃料噴射量Ｆｂａｓｅを補正するメインフィードバック量ＤＦｉを算出していた。これに対し、フィードバック制御用空燃比abyfscと上流側目標空燃比abyfrとの空燃比差から基本燃料噴射量Ｆｂａｓｅを補正するメインフィードバック量を算出してもよい。
【０１２８】
更に、上記制御装置のサブフィードバック制御は、下流側空燃比センサ６７の出力値Voxsが下流側目標値Voxsrefに一致するように、上流側空燃比センサ６６によって検出される空燃比abyfsを見かけ上補正するような態様であった（上記（１）式を参照。）。これに対し、サブフィードバック制御は、特開平６−０１０７３８号公報に開示されているように、上流側空燃比センサ６６の出力値に基づいて作成される空燃比補正係数を下流側空燃比センサ６７の出力値Voxsを比例積分して求めたサブフィードバック量に基づいて変更する態様であってもよい。
【０１２９】
また、本発明による空燃比制御装置は、特開２００７−７７８６９号公報、特開２００７−１４６６６１号公報及び特開２００７−１６２５６５号公報等に開示されているように、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られる上流側空燃比abyfsと上流側目標空燃比abyfrとの差をハイパスフィルタ処理してメインフィードバック量ＫＦmainを算出するとともに、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxsrefとの偏差に対してローパスフィルタ処理を施した値を比例積分処理することによりサブフィードバック量Ｆｉｓｕｂを求めてもよい。この場合、下記（１５）式に示したように、それらのフィードバック量を互いに独立させた形態にて基本燃料噴射量Ｆｂａｓｅの補正に用い、それにより、最終燃料噴射量Ｆｉを求めるように構成されていても良い。
Ｆｉ＝ＫＦmain・Ｆｂａｓｅ＋Ｆｉｓｕｂ    …（１５）
【０１３０】
更に、図８に示したルーチンは、サブフィードバック制御条件成立中（サブフィードバック量Vafsfbが更新されるサブフィードバック制御中）にのみ実行されるように構成されてもよい。また、図７のルーチンにおいて、ステップ７２０とステップ７２５との間に「学習完了フラグＸＧＫの値が「０」であるか否か」を判定するステップを挿入し、学習完了フラグＸＧＫの値が「０」である場合にのみステップ７３０乃至ステップ７４５に進んで学習値Vafsfbgの更新を行うように構成することもできる。即ち、学習完了フラグＸＧＫの値が「１」に設定された時点以降、次に学習完了フラグＸＧＫの値が「０」に設定されるまで、学習値Vafsfbgの更新は停止されてもよい。
【０１３１】
加えて、上記実施形態に係る制御装置は、学習が完了したと判定された後の期間において下流側目標値Voxsrefを目標リッチ空燃比に相当する値Vrichに設定していた。これに代え、本発明は、触媒の排気浄化特性及び機関から排出されるガスの排気臭等を低減すること等を目的として、学習が完了したと判定された後の期間において、下流側目標値Voxsrefを理論空燃比よりもリーン側の目標リーン空燃比に相当する値に設定する装置にも適用され得る。即ち、本発明は、学習が完了したと判定された後の期間において下流側目標値Voxsrefを理論空燃比以外の空燃比である目標非理論空燃比に対応する値に設定する装置に適用される。
【０１３２】
また、本発明による制御装置は、例えば、図７のステップ７２５乃至ステップ７４５による学習値Vafsbfbgの変更及びサブフィードバック量Vafsfbの補正（即ち、学習）を、サブフィードバック制御条件が所定遅延時間Ｔａ以上継続して成立している時点以降において行うように構成されることもできる。この場合、学習が完了したと判定される前には、学習が完了したと判定された後よりも、前記所定遅延時間Ｔａを短い時間に設定することにより、学習機会（学習値Vafsbfbgを変更する機会）を増大することが望ましい。
【図面の簡単な説明】
【０１３３】
【図１】本発明の実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】空燃比と図１に示した上流側空燃比センサの出力値の関係を示したグラフである。
【図３】空燃比と図１に示した下流側空燃比センサの出力値の関係を示したグラフである。
【図４】図１に示した制御装置の作動を示すタイムチャートである。
【図５】図１に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図６】図１に示したＣＰＵがメインフィードバック量を算出するために実行するルーチンを示したフローチャートである。
【図７】図１に示したＣＰＵがサブフィードバック量及び学習値を算出するために実行するルーチンを示したフローチャートである。
【図８】図１に示したＣＰＵが学習完了判定を行うために実行するルーチンを示したフローチャートである。
【符号の説明】
【０１３４】
１０…内燃機関、２０…シリンダブロック部、２１…シリンダ、２２…ピストン、２５…燃焼室、３０…シリンダヘッド部、３１…吸気ポート、３２…吸気弁、３４…排気ポート、３５…排気弁、３７…点火プラグ、３９…インジェクタ、４０…吸気系統、４１…吸気管、４３…スロットルバルブ、５０…排気系統、５１…エキゾーストマニホールド、５２…エキゾーストパイプ、５３…上流側触媒、５４…下流側触媒、６１…熱線式エアフローメータ、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ、７４…バックアップＲＡＭ。
【図１】
0004807359.tif 000002
【図２】
0004807359.tif 000003
【図３】
0004807359.tif 000004
【図４】
0004807359.tif 000005
【図５】
0004807359.tif 000006
【図６】
0004807359.tif 000007
【図７】
0004807359.tif 000008
【図８】
0004807359.tif 000009