(57)【要約】【課題】触媒下流の起電力式の酸素濃度センサの出力値と目標空燃比相当値との偏差の時間積分値に基づいて空燃比をフィードバック制御する空燃比制御装置において、筒内吸入空気量にかかわらず時間積分値の変動幅を略一定に維持することができるものの提供。【解決手段】この装置は、目標空燃比相当値Voxsrefから触媒下流の酸素濃度センサの出力値Voxsを減じた値である偏差DVoxsと筒内吸入空気量に相当する負荷率KLとに基づく値(DVoxs・(KL/100)・Kga)を燃料噴射と同期して積算して偏差DVoxsの時間積分値SDVoxs（＝Σ(DVoxs・(KL/100)・Kga))を更新していく（ステップ１３６０を参照）。時間積分値SDVoxsが反映されるサブフィードバック補正量Vafsfbに基づいて空燃比フィードバック制御が実行される。これにより、負荷率KLが小さいほど、時間積分値SDVoxsの一更新当たりの変化量が小さくされて時間積分値SDVoxsの変化速度が小さくされる。【選択図】図１３
2007247574.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒と、
前記触媒よりも下流の前記排気通路に配設されて同触媒から流出するガスの空燃比に応じた値を出力する起電力式の酸素濃度センサと、
前記内燃機関の燃焼室内に吸気行程にて吸入された空気量に相当する値である筒内吸入空気量相当値を取得する吸入空気量取得手段と、
を備えた内燃機関に適用され、
前記酸素濃度センサの出力値と目標空燃比に相当する値との相違に起因する値である相違起因値に基づく値を燃料噴射間隔に応じた期間の経過毎に積算して更新されていく時間積分値に少なくとも基づいて、前記触媒に流入するガスの空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、
前記フィードバック補正値に基づいて前記触媒に流入するガスの空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記積算により更新されていく時間積分値の変化速度を前記筒内吸入空気量相当値に応じて変更する変化速度変更手段を備えた内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記変化速度変更手段は、
前記筒内吸入空気量相当値に応じて前記時間積分値の一更新当たりの変化量を変更することで前記時間積分値の変化速度を変更するように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項２に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記相違起因値に基づく値として、
前記相違起因値と、調整値とに基づいて得られる値を用いるとともに、
前記変化速度変更手段は、
前記筒内吸入空気量相当値に応じて前記調整値を変更することで前記時間積分値の一更新当たりの変化量を変更するように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項３に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正値算出手段は、
前記調整値として、
前記相違起因値に乗じられる値を用いるように構成された内燃機関の空燃比制御装置。
【請求項５】
請求項１に記載の内燃機関の空燃比制御装置において、
前記変化速度変更手段は、
前記筒内吸入空気量相当値に応じて前記時間積分値の更新間隔の時間を変更することで前記時間積分値の変化速度を変更するように構成された内燃機関の空燃比制御装置。
【請求項６】
請求項１乃至請求項５の何れか一項に記載の内燃機関の空燃比制御装置において、
前記変化速度変更手段は、
前記筒内吸入空気量相当値が小さいほど前記時間積分値の変化速度を小さくするように構成された内燃機関の空燃比制御装置。
【請求項７】
請求項１乃至請求項６の何れか一項に記載の内燃機関の空燃比制御装置において、
前記内燃機関は、前記内燃機関の吸気通路から吸入される空気の流量である吸入空気流量を取得する吸入空気流量取得手段を備え、
前記変化速度変更手段は、
前記吸入空気流量が小さいほど前記時間積分値の変化速度を小さくするように構成された内燃機関の空燃比制御装置。
【請求項８】
請求項１乃至請求項７の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記時間積分値が収束したか否かを判定する収束判定手段を備え、
前記変化速度変更手段は、
前記時間積分値が収束していないと判定されている間、前記時間積分値の変化速度の変更を行わないように構成された内燃機関の空燃比制御装置。
【請求項９】
請求項８に記載の内燃機関の空燃比制御装置において、
前記収束判定手段は、
前記フィードバック制御の開始から所定期間の間、前記時間積分値が収束していないと判定するように構成された内燃機関の空燃比制御装置。
【請求項１０】
請求項９に記載の内燃機関の空燃比制御装置において、
前記収束判定手段は、
前記所定期間として、
前記フィードバック制御の開始時点からの前記時間積分値の更新回数が所定回数に達するのに要する期間を用いるように構成された内燃機関の空燃比制御装置。
【請求項１１】
請求項８に記載の内燃機関の空燃比制御装置において、
前記収束判定手段は、
リーンを示す値とリッチを示す値とを交互に採りながら周期的に変動する前記酸素濃度センサの出力値について、一周期中における前記リーンを示す値に維持される時間と前記リッチを示す値に維持される時間との相違の程度が所定の程度以上のとき、前記時間積分値が収束していないと判定するように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒の下流に設けられた起電力式の酸素濃度センサの出力値に基づいて触媒に流入するガスの空燃比をフィードバック制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置が広く知られている。例えば、特許文献１に記載の空燃比制御装置（排気浄化装置）では、内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒（三元触媒）の下流に起電力式の酸素濃度センサが設けられている。この酸素濃度センサの出力値と目標空燃比（＝理論空燃比）に相当する値（目標空燃比相当値）との偏差（＝目標空燃比相当値−酸素濃度センサ出力値）を比例・積分・微分処理（ＰＩＤ処理）してフィードバック補正値が算出される。そして、このフィードバック補正値に基づいて燃料噴射量が補正されることで内燃機関に供給する混合気の空燃比（従って、触媒に流入するガスの空燃比、以下、単に「空燃比」とも称呼する。）が目標空燃比に一致するようにフィードバック制御されるようになっている。
【特許文献１】特開２００４−１８３５８５号公報
【０００３】
上記フィードバック補正値には、積分項（Ｉ項）の値、即ち、上記酸素濃度センサの出力値と目標空燃比相当値との偏差を所定期間の経過毎に積算して更新されていく時間積分値にゲインを乗じた値が含まれている。これにより、エアフローメータの出力特性のばらつき、インジェクタの噴射特性のばらつき等に起因して、実際の燃料噴射量と空燃比を目標空燃比に一致させるために必要な燃料噴射量との差（以下、「燃料噴射量の誤差」と称呼する。）が発生していても、上述したフィードバック制御の実行により、燃料噴射量の誤差が上記時間積分値（従って、積分項の値）により補償され得、この結果、空燃比を目標空燃比に一致させることができる。
【０００４】
ところで、上記起電力式の酸素濃度センサの出力値は、一旦リッチを示す値（最大値）になると、その後において触媒から比較的多量のＮＯｘが流出してくるまで同リッチを示す値に維持され触媒から比較的多量のＮＯｘが流出してきた時点でリーンを示す値（最小値）に切り換わる特性を有する。同様に、上記起電力式の酸素濃度センサの出力値は、一旦リーンを示す値になると、その後において触媒から比較的多量の未燃ＨＣ，ＣＯが流出してくるまで同リーンを示す値に維持され触媒から比較的多量の未燃ＨＣ，ＣＯが流出してきた時点でリッチを示す値に切り換わる特性を有する。
【０００５】
また、係る空燃比制御装置においては、上記酸素濃度センサの出力値がリッチを示す値に維持されている間、酸素濃度センサの出力値と目標空燃比相当値との偏差（＝目標空燃比相当値−酸素濃度センサ出力値）が空燃比をリーン側へ補正するための値に維持されて空燃比が理論空燃比よりもリーンな空燃比に維持される。以下、このような制御を「空燃比リーン制御」と称呼する。この空燃比リーン制御により触媒にＮＯｘが継続的に流入しても、触媒の酸素吸蔵機能により触媒内に吸蔵される酸素の量（酸素吸蔵量）が増大して最大量（最大酸素吸蔵量）、或いは最大酸素吸蔵量近傍に達するまで触媒から比較的多量のＮＯｘが流出することはない。
【０００６】
一方、酸素濃度センサの出力値がリーンを示す値に維持されている間、酸素濃度センサの出力値と目標空燃比相当値との偏差が空燃比をリッチ側へ補正するための値に維持されて空燃比が理論空燃比よりもリッチな空燃比に維持される。以下、このような制御を「空燃比リッチ制御」と称呼する。この空燃比リッチ制御により、触媒に未燃ＨＣ，ＣＯが継続的に流入しても、触媒の酸素吸蔵機能により触媒の酸素吸蔵量が減少して「０」、或いは「０」近傍になるまで触媒から比較的多量の未燃ＨＣ，ＣＯが流出することはない。
【０００７】
以上のことから、上述したフィードバック制御の実行により、酸素濃度センサの出力値は、空燃比リーン制御により増大する触媒の酸素吸蔵量が「０」から最大酸素吸蔵量に達するまでの期間に亘ってリッチを示す値（一定値）に維持され、触媒の酸素吸蔵量が最大酸素吸蔵量に達するとリーンを示す値に切り換わる。その後、酸素濃度センサの出力値は、空燃比リッチ制御により減少する触媒の酸素吸蔵量が最大酸素吸蔵量から「０」に達するまでの期間に亘ってリーンを示す値（一定値）に維持され、触媒の酸素吸蔵量が「０」に達するとリッチを示す値に切り換わる。
【０００８】
換言すれば、酸素濃度センサの出力値は、「０」と最大酸素吸蔵量との間を周期的に往復する触媒の酸素吸蔵量が「０」又は最大酸素吸蔵量に達する毎にリッチを示す値（最大値、一定値）又はリーンを示す値（最小値、一定値）に交互に切り換わりながら周期的に変動していく。以下、このように、酸素濃度センサの出力値が切り換わるタイミングの間隔を「一出力値維持期間」と称呼する。
【０００９】
このように、酸素濃度センサの出力値が周期的に変動すると、上記時間積分値も周期的に変動する。即ち、酸素濃度センサの出力値がリーンを示す値（最小値、一定値）に維持されている期間では、酸素濃度センサの出力値と目標空燃比相当値（通常は、上記最大値と最小値の間の一定値）との偏差（＝目標空燃比相当値−酸素濃度センサ出力値）が正の値に維持されるから時間積分値は増大していく。一方、酸素濃度センサの出力値がリッチを示す値（最大値、一定値）に維持されている期間では、酸素濃度センサの出力値と目標空燃比相当値との偏差が負の値に維持されるから時間積分値は減少していく。以上より、時間積分値は、一出力値維持期間の経過毎に増加又は減少に交互に転じながら周期的に変動する。
【００１０】
上記時間積分値が周期的に変動すると、同時間積分値（従って、上記積分項（Ｉ項）の値）に基づいて算出されるフィードバック補正値も周期的に変動し、この結果、フィードバック補正値によりフィードバック制御される空燃比も周期的に変動する（荒れる）。
【００１１】
このように、周期的に変動する時間積分値に基づくフィードバック制御により空燃比が周期的に変動する（荒れる）場合、あらゆる運転状態でフィードバック制御の安定性を保証するため等の観点から、機関の運転状態にかかわらず、時間積分値の変動に基づく空燃比の変動の幅（荒れ幅）を略一定に維持することが望ましい。このためには、機関の運転状態にかかわらず、時間積分値の変動幅（即ち、一出力値維持期間中における時間積分値の最小値と最大値の差）を略一定に維持する必要がある。
【００１２】
ところで、通常、上記空燃比制御装置では、時間積分値は、上記偏差を一定時間の経過毎に積算して更新されていく場合と、上記偏差を燃料噴射タイミングが到来する毎に（燃料噴射と同期して）積算して更新されていく場合が多い。
【００１３】
本発明者は、酸素濃度センサの出力値と目標空燃比相当値との偏差そのものを燃料噴射と同期して積算して時間積分値を更新していく場合において、上記「時間積分値の変動幅」は、機関の回転速度には依存しない一方で、一吸気行程にて燃焼室に吸入される空気量（以下、「筒内吸入空気量」と称呼する。）には大きく依存することを見出した。
【００１４】
より具体的には、本発明者は、筒内吸入空気量が小さいほど、一出力値維持期間が長くなることで時間積分値の変動幅が大きくなる傾向があることを見出した。これらの詳細については後述する。加えて、本発明者は、筒内吸入空気量にかかわらず時間積分値の変動幅を略一定に維持する手法を見出した。
【発明の開示】
【００１５】
本発明の目的は、触媒下流の起電力式の酸素濃度センサの出力値と目標空燃比相当値との偏差等に基づく値を燃料噴射間隔に応じた期間の経過毎に積算して更新されていく時間積分値に基づいて空燃比をフィードバック制御する空燃比制御装置において、筒内吸入空気量にかかわらず時間積分値の変動幅を略一定に維持することができるものを提供することにある。
【００１６】
本発明に係る空燃比制御装置は、内燃機関の排気通路に配設された酸素吸蔵機能を有する触媒と、前記触媒よりも下流の前記排気通路に配設されて同触媒から流出するガスの空燃比に応じた値を出力する起電力式の酸素濃度センサと、前記内燃機関の燃焼室内に吸気行程にて吸入された空気量に相当する値である筒内吸入空気量相当値を取得する吸入空気量取得手段とを備えた内燃機関に適用される。
【００１７】
ここにおいて、「筒内吸入空気量相当値」は、例えば、上記筒内吸入空気量そのもの、一吸気行程にて燃焼室に吸入し得る空気量の最大値に対する上記筒内吸入空気量の割合（「負荷率」とも称呼される）等であってこれらに限定されない。
【００１８】
本発明に係る空燃比制御装置は、前記酸素濃度センサの出力値と目標空燃比に相当する値（目標空燃比相当値）との相違に起因する値である相違起因値に基づく値を燃料噴射間隔に応じた期間の経過毎に積算して更新されていく時間積分値に少なくとも基づいて、前記触媒に流入するガスの空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、前記フィードバック補正値に基づいて前記触媒に流入するガスの空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段とを備える。
【００１９】
ここにおいて、「相違起因値」とは、例えば、酸素濃度センサの出力値と目標空燃比相当値との差、酸素濃度センサによる検出空燃比と目標空燃比との差等であって、これらに限定されない。また、「燃料噴射間隔に応じた期間の経過毎に積算する」とは、例えば、「燃料噴射Ｎ回当たりにＭ回積算する（Ｎ，Ｍ：自然数）」等を意味していて、即ち、「クランク角度が所定角度だけ進行する毎に積算する」ことを意味している。
【００２０】
本発明に係る空燃比制御装置の特徴は、前記フィードバック補正値算出手段が、前記筒内吸入空気量相当値に応じて、前記積算により更新されていく時間積分値の（時間に対する）変化速度を変更する変化速度変更手段を備えたことにある。この場合、前記変化速度変更手段は、前記筒内吸入空気量相当値が小さいほど前記時間積分値の（時間に対する）変化速度を小さくするように構成されることが好適である。
【００２１】
上述したように、一出力値維持期間中において増加、又は減少を続ける時間積分値における上記「時間積分値の変動幅」（即ち、一出力値維持期間中における時間積分値の最小値と最大値の差）は、筒内吸入空気量が小さいほど、一出力値維持期間が長くなることに起因して大きくなる傾向がある。
【００２２】
他方、一出力値維持期間が一定である場合、時間積分値の変動幅は、時間積分値の（時間に対する）変化速度（増加速度、或いは減少速度）が小さいほど小さくなる。以上のことを考慮すると、上記構成によれば、筒内吸入空気量が小さいほど時間積分値の変化速度を小さくすることができ、この結果、筒内吸入空気量にかかわらず時間積分値の変動幅を略一定に維持することができる。
【００２３】
この場合、前記変化速度変更手段は、前記筒内吸入空気量相当値に応じて前記時間積分値の一更新当たりの変化量を変更することで前記時間積分値の変化速度を変更するように構成されることが好適である。
【００２４】
一般に、或る変数の時間積分値の変化速度は、同変数の一更新当たりの変化量を小さくするほど、或いは、同変数の更新間隔の時間を長くするほど、小さくなる。即ち、時間積分値の変化速度は、例えば、時間積分値の一更新当たりの変化量を小さくするほど小さくすることができる。従って、上記構成によれば、例えば、筒内吸入空気量が小さいほど、時間積分値の一更新当たりの変化量を小さくすることで、時間積分値の変化速度を小さくすることができる。
【００２５】
このように、時間積分値の変化速度を変更するために時間積分値の一更新当たりの変化量が変更される場合、前記フィードバック補正値算出手段は、前記相違起因値に基づく値として、前記相違起因値と、調整値とに基づいて得られる値を用いるとともに、前記変化速度変更手段は、前記筒内吸入空気量相当値に応じて前記調整値を変更することで前記時間積分値の一更新当たりの変化量を変更するように構成されることが好適である。ここにおいて、前記調整値は、例えば、前記相違起因値に乗じられる値であってもよいし、相違起因値に加算される値であってもよい。
【００２６】
これによれば、筒内吸入空気量に応じて調整値が変更されると、相違起因値に基づく値が変更される。この結果、相違起因値に基づく値の積算により更新されていく時間積分値の一更新当たりの変化量（従って、変化速度）も変更され得る。即ち、筒内吸入空気量に応じて調整値を変更することにより、筒内吸入空気量に応じて時間積分値の変化速度を簡易に変更することができる。
【００２７】
或いは、上述したように、時間積分値の変化速度は、時間積分値の更新間隔の時間を長くすることによっても小さくすることができる。従って、前記変化速度変更手段は、前記筒内吸入空気量相当値に応じて前記時間積分値の更新間隔の時間を変更することで前記時間積分値の変化速度を変更するように構成されてもよい。これによっても、筒内吸入空気量に応じて時間積分値の更新間隔の時間を変更することにより、筒内吸入空気量に応じて時間積分値の変化速度を簡易に変更することができる。
【００２８】
上記本発明に係る空燃比制御装置においては、前記内燃機関は、前記内燃機関の吸気通路から吸入される空気の流量である吸入空気流量を取得する吸入空気流量取得手段を備え、前記変化速度変更手段は、前記吸入空気流量が小さいほど前記時間積分値の変化速度を小さくするように構成されることが好適である。
【００２９】
一般に、起電力式の酸素濃度センサ等の空燃比センサでは、排気通路を通過するガスの流量が非常に小さい場合、空燃比（具体的には、酸素濃度）の検出部に到達して反応し得る単位時間当たりのＨＣ，ＣＯの分子数、或いはＮＯｘの分子数が非常に少なくなる。このことに起因して、起電力式の酸素濃度センサが、検出されたガスの空燃比が理論空燃比よりもリッチであるにもかかわらずリーンを示す値を出力する等、空燃比に対応する値と大きく異なる値を出力する事態が発生し得る。
【００３０】
従って、排気通路を通過するガスの流量が非常に小さい場合、信頼性の低い酸素濃度センサの出力値に基づいて積極的に空燃比のフィードバック制御が行われるべきでない。従って、この場合、フィードバック補正値（従って、時間積分値）の変化速度が小さくされることが好適である。他方、排気通路を通過するガスの流量と上記吸入空気流量とは、略比例関係にある。
【００３１】
上記構成は、係る知見に基づくものである。これによれば、吸入空気流量が小さいほど（従って、排気通路を通過するガスの流量が小さいほど）、時間積分値の変化速度が小さくされ得る。従って、排気通路を通過するガスの流量が非常に小さい場合において信頼性の低い酸素濃度センサの出力値に基づいて積極的に空燃比のフィードバック制御が行われることが回避され得る。
【００３２】
上記本発明に係る空燃比制御装置においては、前記時間積分値が収束したか否かを判定する収束判定手段を備え、前記変化速度変更手段は、前記時間積分値が収束していないと判定されている間、前記時間積分値の変化速度の変更を行わないように構成されることが好適である。
【００３３】
上述した「燃料噴射量の誤差」を時間積分値（従って、積分項の値）により精度良く補償するためには、時間積分値が燃料噴射量の誤差に応じた或る収束値に収束する必要がある。このため、時間積分値が未だ収束していない段階では、時間積分値を迅速に収束させることが重要である。なお、ここにおいて「時間積分値が収束する」とは、時間積分値が収束値を中心に所定値以下の変動幅で（上記一出力値維持期間の経過毎に増加又は減少に交互に転じながら）変動することを含む。
【００３４】
上記構成は、係る観点に基づくものである。これによれば、時間積分値が未だ収束していない段階では、時間積分値の変化速度の変更が行われない。換言すれば、筒内吸入空気量が小さくても（或いは、吸入空気流量が非常に小さくても）、時間積分値の変化速度が小さくされることがない。従って、時間積分値が未だ収束していない段階では、時間積分値を上記収束値に迅速に収束させることができる。これにより、燃料噴射量の誤差がより早期に精度良く補償され得、この結果、空燃比を目標空燃比により早期に一致させることができる。
【００３５】
上記本発明に係る空燃比制御装置において前記収束判定手段を備えられている場合、前記収束判定手段は、前記フィードバック制御の開始から所定期間の間、前記時間積分値が収束していないと判定するように構成されることが好適である。ここにおいて、前記所定期間としては、前記フィードバック制御の開始時点からの前記時間積分値の更新回数が所定回数に達するのに要する期間を用いることがより好ましい。
【００３６】
一般に、機関の始動直後等のフィードバック制御の開始時点では時間積分値が上記収束値に収束していない場合が多い。換言すれば、一般に、時間積分値は、フィードバック制御の開始以降、収束値に近づいていき、その後、同収束値に収束する。以上のことから、上記のように、フィードバック制御の開始から所定期間の間、前記時間積分値が収束していないと判定するように構成すれば、時間積分値が収束していない期間を正確に検出することができる。
【００３７】
或いは、前記収束判定手段は、リーンを示す値とリッチを示す値とを交互に採りながら周期的に変動する前記酸素濃度センサの出力値について、一周期中における前記リーンを示す値に維持される時間と前記リッチを示す値に維持される時間との相違の程度が所定の程度以上のとき、前記時間積分値が収束していないと判定するように構成されてもよい。
【００３８】
ここにおいて、「一周期中における前記リーンを示す値に維持される時間と前記リッチを示す値に維持される時間との相違の程度が所定の程度以上」とは、例えば、一周期中におけるリーンを示す値に維持される時間に対するリッチを示す値に維持される時間の割合が「１」を含んだ所定の範囲の外にある場合」等である。
【００３９】
一般に、時間積分値が上記収束値に収束している期間中においては、酸素濃度センサ出力値がリーンを示す値に維持される時間（＝上記空燃比リッチ制御が継続する時間）に対する、酸素濃度センサ出力値がリッチを示す値に維持される時間（＝上記空燃比リーン制御が継続する時間）の割合が「１」に近い値となる傾向がある。
【００４０】
換言すれば、時間積分値が上記収束値に収束していない段階では、「酸素濃度センサ出力値がリーンを示す値に維持される時間に対する酸素濃度センサ出力値がリッチを示す値に維持される時間の割合が「１」から遠い値となる。上記構成は係る観点に基づくものである。これによっても、時間積分値が収束していない期間を正確に検出することができる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。この空燃比制御装置は、機関の燃料噴射量を制御する燃料噴射量制御装置でもある。
【００４２】
（第１実施形態）
図１は、本発明の第１実施形態に係る空燃比制御装置を４サイクル火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００４３】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００４４】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４５】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及びリフト量を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００４６】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットルバルブ４３及びスワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４を備えている。
【００４７】
スロットルバルブ４３は、ＤＣモータからなるスロットルバルブアクチュエータ４３ａにより吸気管４１内で回転駆動されるようになっている。ＳＣＶ４４は、ＤＣモータからなるＳＣＶアクチュエータ４４ａにより回転駆動されるようになっている。
【００４８】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００４９】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒流入ガスがほぼ理論空燃比であるとき、ＨＣ，ＣＯなどの未燃ガスを酸化するとともに、窒素酸化物（ＮＯｘ）を還元する機能を有する。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃ガス及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
【００５０】
一方、このシステムは、熱線式エアフローメータ６１（吸入空気流量取得手段に相当する）、吸気温センサ６２、スロットルポジションセンサ６３、カムポジションセンサ６４、クランクポジションセンサ６５、水温センサ６６、空燃比センサ６７、酸素濃度センサ６８、及びアクセル開度センサ６９を備えている。
【００５１】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量（吸入空気流量）Gaに応じた信号を出力するようになっている。吸気温センサ６２は、吸入空気の温度を検出し、吸気温度THAを表す信号を出力するようになっている。スロットルポジションセンサ６３は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００５２】
カムポジションセンサ６４は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６５は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６６は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００５３】
空燃比センサ６７は、排気通路であって上流側触媒５３よりも上流側に配設されている。空燃比センサ６７は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒５３に流入する排ガス中の空燃比を検出し、図２に示したように、検出した空燃比（検出空燃比）に応じた信号Vabyf(V)を出力するようになっている。
【００５４】
酸素濃度センサ６８は、排気通路であって上流側触媒５３よりも下流側であり下流側触媒５４よりも上流側に配設されている。酸素濃度センサ６８は、所謂「起電力式（濃淡電池型）の酸素濃度センサ」である。図３に示したように、酸素濃度センサ６８は、上流側触媒５３から流出するガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大値max(V)及び最小値min(V)をそれぞれ出力し、上流側触媒５３から流出するガスの空燃比が理論空燃比であるとき最大値maxと最小値minの略中間の値（目標空燃比相当値Voxsref(V)）を出力するようになっている。
【００５５】
アクセル開度センサ６９は、運転者によって操作されるアクセルペダル７１の操作量Accpを表す信号を出力するようになっている。
【００５６】
電気制御装置８０は、互いにバスで接続されたＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等からなるマイクロコンピュータである。
【００５７】
インターフェース８５は、前記センサ６１〜６９と接続され、ＣＰＵ８１にセンサ６１〜６９からの信号を供給するとともに、ＣＰＵ８１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットルバルブアクチュエータ４３ａ及びＳＣＶアクチュエータ４４ａに駆動信号を送出するようになっている。
【００５８】
（空燃比フィードバック制御の概要）
次に、上記のように構成された空燃比制御装置が行う空燃比のフィードバック制御の概要について説明する。
【００５９】
この空燃比制御装置（以下、「本装置」と称呼する。）は、酸素濃度センサ６８の出力値Voxsと上記目標空燃比相当値Voxsrefとの偏差DVoxs（＝Voxsref−Voxs、前記相違起因値）に基づいて後述するようにサブフィードバック補正量Vafsfb（前記フィードバック補正値）を求め、サブフィードバック補正量Vafsfbを空燃比センサ６７の出力値Vabyfに加えて空燃比センサ６７の出力値Vabyfを補正し、この補正した値に対応する空燃比（以下、「制御用空燃比」と称呼する。）が目標空燃比（＝理論空燃比）と一致するように空燃比をフィードバック制御する。なお、酸素濃度センサ６８の出力値Voxsに基づく空燃比フィードバック制御を、特に「サブフィードバック制御」と呼ぶこともある。
【００６０】
このサブフィードバック制御により、上流側触媒５３下流の空燃比（従って、上流側触媒５３に流入するガスの空燃比）が目標空燃比と一致するように空燃比がフィードバック制御される。以上が、本装置による空燃比フィードバック制御の概要である。
【００６１】
（偏差の時間積分値の変動幅の均一化）
本装置では、燃料噴射タイミングが到来する毎に（燃料噴射と同期して）、偏差DVoxsが取得・更新されるとともに最新の偏差DVoxsに基づいて下記(1)式に従ってサブフィードバック補正量Vafsfbが算出・更新される。
【００６２】
Vafsfb＝Kp・DVoxs＋Ki・SDVoxs＋Kd・DDVoxs  ・・・(1)
【００６３】
(1)式において、右辺第１項、第２項、第３項はそれぞれ、比例項(Ｐ項)、積分項（Ｉ項）、微分項（Ｄ項）に対応している。(1)式において、Kp，Ki，Kdはそれぞれ、比例ゲイン、積分ゲイン、微分ゲイン（それぞれ一定値）である。DDVoxsは偏差DVoxsそのものの時間微分値であり、下記(2)式に従って計算される。(2)式において、DVoxsbは偏差DVoxsの前回値（前回の燃料噴射タイミングでの値）であり、Δｔは前回の燃料噴射タイミングから今回の燃料噴射タイミングまでの時間である。
【００６４】
DDVoxs＝(DVoxs−DVoxsb)/Δｔ  ・・・(2)
【００６５】
(1)式において、SDVoxsは前記「相違起因値に基づく値」の時間積分値である。時間積分値SDVoxsは、本例では実際には、燃料噴射と同期して、後述する(5)式に従って値(DVoxs・(KL/100)・Kga)（＝「相違起因値に基づく値」）を積算して更新されていくが、説明の便宜上、先ずは、時間積分値SDVoxsは、偏差DVoxsそのものの時間積分値であり、燃料噴射と同期して、下記(3)式に従って偏差DVoxsそのものを積算して更新されていくものとして説明を続ける。
【００６６】
SDVoxs＝ΣDVoxs  ・・・(3)
【００６７】
このように、偏差DVoxs（＝Voxsref−Voxs）そのものを積算して更新されていく時間積分値SDVoxsが含まれるサブフィードバック補正量Vafsfbに基づいて空燃比フィードバック制御が行われる場合、上記背景技術の欄で説明したように、時間積分値SDVoxsの周期的な変動に起因してサブフィードバック補正量Vafsfbが周期的に変動し、この結果、サブフィードバック補正量Vafsfbによりフィードバック制御される空燃比も周期的に変動する（荒れる）。
【００６８】
本発明者は、特に、本例のように時間積分値SDVoxsが燃料噴射と同期して積算・更新されていく場合、図４、図５に示すように、空燃比の変動（荒れ）の原因となる時間積分値SDVoxsの変動の特性が、エンジン回転速度NEと、負荷率KL(％)（＝一吸気行程にて燃焼室２５内に吸入し得る空気量の最大値に対する吸気行程にて実際に燃焼室２５内に吸入された筒内吸入空気量Mcの割合、前記筒内吸入空気量相当値）とに依存することを見出した。
【００６９】
図４、図５は、サブフィードバック制御の開始以降、時間積分値SDVoxsが初期値「０」から「燃料噴射量の誤差」に応じた或る収束値α（＞０）に近づいていき（増大していき）、その後、時間積分値SDVoxsが収束値αに収束して同収束値αを中心に周期的に変動していく様子を示している。
【００７０】
図４に示すように、時間積分値SDVoxsが収束値αを中心に変動している間において、負荷率KLが一定である場合、時間積分値SDVoxsの（時間に対する）変化速度（傾き）はエンジン回転速度NEが大きいほど大きくなる一方、時間積分値SDVoxsの変動幅（振幅）はエンジン回転速度NEにかかわらず一定となる。
【００７１】
他方、図５に示すように、時間積分値SDVoxsが収束値αを中心に変動している間において、エンジン回転速度NEが一定である場合、時間積分値SDVoxsの（時間に対する）変化速度（傾き）は負荷率KLにかかわらず一定となる一方、時間積分値SDVoxsの変動幅（振幅）は負荷率KLが小さいほど大きくなる。
【００７２】
以上より、時間積分値SDVoxsの（時間に対する）変化速度は、負荷率KLには依存しない一方でエンジン回転速度NEが大きいほど大きくなる。時間積分値SDVoxsの変動幅は、エンジン回転速度NEには依存しない一方で負荷率KLが小さいほど大きくなる。以下、これらの点について図６を参照しながら更に詳細に説明する。
【００７３】
図６は、時刻ｔ１以前においてエンジン回転速度NE、負荷率KL、及び吸入空気流量Gaが一定であり、時刻ｔ１にて、スロットルバルブ４３の開度が増大されたこと等により負荷率KLが（時刻ｔ１以前での一定値に）維持されたままエンジン回転速度NE及び吸入空気流量Gaがステップ的に増大し、時刻ｔ２にて、スロットルバルブ４３の開度が増大されたこと等によりエンジン回転速度NEが（時刻ｔ１〜ｔ２での一定値に）維持されたまま負荷率KL及び吸入空気流量Gaがステップ的に増大した場合における、酸素濃度センサ６８の出力値Voxs、及び上記(3)式にて更新されていく時間積分値SDVoxsの変化の一例を示したタイムチャートである。
【００７４】
図６に示すように、加えて、上記背景技術の欄で説明したように、酸素濃度センサ６８の出力値Voxsは、上記「一出力値維持期間」の経過毎にリッチを示す値（最大値max、一定）又はリーンを示す値（最小値min、一定）に交互に切り換わりながら周期的に変動する。ここで、出力値Voxsが最小値minから最大値maxに切り換わるタイミングは上述した「空燃比リッチ制御」により上流側触媒５３の酸素吸蔵量が減少して「０」に達するタイミングに対応し、出力値Voxsが最大値maxから最小値minに切り換わるタイミングは上述した「空燃比リーン制御」により上流側触媒５３の酸素吸蔵量が増大して最大酸素吸蔵Cmaxに達するタイミングに対応する。
【００７５】
従って、出力値Voxsが最小値minに維持されている間、目標空燃比相当値Voxsref（最大値maxと最小値minの略中間の値）から出力値Voxsを減じた値である偏差DVoxs（＝Voxsref−Voxs）が正の値（≒(max−min)/2）で一定に維持され、出力値Voxsが最大値maxに維持されている間、偏差DVoxs（＝Voxsref−Voxs）が負の値（≒−(max−min)/2）で一定に維持される。
【００７６】
換言すれば、偏差DVoxsそのものを燃料噴射と同期して積算して更新されていく時間積分値SDVoxsの一更新当たりの変化量（＝｜偏差DVoxs｜）は、出力値Voxsが最大値maxと最小値minの何れに維持されているかにかかわらず一定（≒(max−min)/2）となる。
【００７７】
時間積分値SDVoxsの（時間に対する）変化速度（実際にはステップ状に変化していく時間積分値SDVoxsの平均的な変化速度）は、時間積分値SDVoxsの一更新当たりの変化量と、時間積分値SDVoxsの更新間隔の時間とで決定され、時間積分値SDVoxsの一更新当たりの変化量が大きいほど、或いは時間積分値SDVoxsの更新間隔の時間が短いほど大きくなる。
【００７８】
ここで、上述したように時間積分値SDVoxsの一更新当たりの変化量は一定である。他方、時間積分値SDVoxsの更新間隔は燃料噴射と同期しているから、時間積分値SDVoxsの更新間隔の時間は、燃料噴射の時間間隔が短いほど（即ち、エンジン回転速度NEが大きいほど）短くなる。
【００７９】
以上のことから、時間積分値SDVoxsの（時間に対する）変化速度は、エンジン回転速度NEのみに依存し、図６に示すように、エンジン回転速度NEが大きいほど大きくなる。即ち、時刻ｔ１以前に比してエンジン回転速度NEが大きい時刻ｔ１以降では、時間積分値SDVoxsの（時間に対する）変化速度が大きくなっている（変化の傾きが急になっている）。一方、負荷率KLが変化するもののエンジン回転速度NEが一定に維持される時刻ｔ２の前後では時間積分値SDVoxsの（時間に対する）変化速度は同じになる。
【００８０】
時間積分値SDVoxsの変動幅（即ち、一出力値維持期間中における時間積分値SDVoxsの最大値と最小値の差）は、時間積分値SDVoxsの一更新当たりの変化量（一定）と一出力値維持期間中における時間積分値SDVoxsの更新回数の積と等しい値となる。従って、時間積分値SDVoxsの変動幅は、一出力値維持期間中における時間積分値SDVoxsの更新回数が多いほど大きくなる。
【００８１】
ここで、上述したように、一出力値維持期間は、上流側触媒５３の酸素吸蔵量が「０」から最大酸素吸蔵量Cmax（或いは、その逆）に達するまでの期間である。上流側触媒５３の酸素吸蔵量は、燃料噴射毎に、燃料噴射の時間間隔当たりの上流側触媒５３に流入するガス中の酸素の過剰量（或いは、不足量）分だけ増大（或いは、減少）していく。以上より、一出力値維持期間中における時間積分値SDVoxsの更新回数（即ち、一出力値維持期間中における燃料噴射回数）は、燃料噴射の時間間隔当たりの上流側触媒５３に流入するガス中の酸素の過剰量（或いは、不足量）が小さいほど多くなる。
【００８２】
燃料噴射の時間間隔当たりの上流側触媒５３に流入するガス中の酸素の過剰量（或いは、不足量）は、空燃比の目標空燃比（＝理論空燃比）からの偏移量と、負荷率KLとに比例する。空燃比は、上記(1)式に従って計算されるサブフィードバック補正量Vafsfbに基づく上述した空燃比リッチ制御又は空燃比リーン制御に基づいて、上記「一出力値維持期間」の経過毎に、理論空燃比よりもリッチな空燃比又は理論空燃比よりもリーンな空燃比に交互に切り換わりながら周期的に変動する。このように変動する空燃比の一出力値維持期間中に亘る理論空燃比からの偏移量の変化の傾向は、毎回ほぼ一定であると考えられる。
【００８３】
以上のことから、燃料噴射の時間間隔当たりの上流側触媒５３に流入するガス中の酸素の過剰量（或いは、不足量）は負荷率KLのみに比例する。従って、負荷率KLが小さいほど、燃料噴射の時間間隔当たりの上流側触媒５３に流入するガス中の酸素の過剰量（或いは、不足量）が小さくなる。このことは、負荷率KLが小さいほど、一出力値維持期間中における時間積分値SDVoxsの更新回数（即ち、一出力値維持期間中における燃料噴射回数）が多くなることを意味する。即ち、負荷率KLが小さいほど一出力値維持期間が長くなって時間積分値SDVoxsの変動幅が大きくなる。
【００８４】
以上のことから、時間積分値SDVoxsの変動幅は、エンジン回転速度NEには依存しない一方で負荷率KLのみに依存し、図６に示すように、負荷率KLが小さいほど大きくなる。即ち、時刻ｔ２以前に比して負荷率KLが大きい時刻ｔ２以降では、時間積分値SDVoxsの変動幅が小さくなっている。一方、エンジン回転速度NEが変化するものの負荷率KLが一定に維持される時刻ｔ１の前後では時間積分値SDVoxsの変動幅は同じになる。
【００８５】
ところで、あらゆる運転状態でフィードバック制御の安定性を保証するため等の観点から、機関の運転状態にかかわらず、時間積分値SDVoxsの変動に基づく空燃比の変動の幅（荒れ幅）を略一定に維持することが望ましい。換言すれば、負荷率KLにかかわらず、時間積分値SDVoxsの変動幅を略一定に維持することが望ましい。
【００８６】
このためには、負荷率KLが小さいほど、時間積分値SDVoxsの変動幅を小さくなる方向へより大きく補正する必要がある。ここで、一出力値維持期間が一定である場合において時間積分値SDVoxsの変動幅を小さくするためには、時間積分値SDVoxsの（時間に対する）変化速度を小さくすればよい。ここで、時間積分値SDVoxsの（時間に対する）変化速度を小さくするための一手法としては、例えば、時間積分値SDVoxsの一更新当たりの変化量を小さくすることが考えられる。
【００８７】
以上より、負荷率KLにかかわらず、時間積分値SDVoxsの変動幅を略一定に維持するためには、負荷率KLが小さいほど時間積分値SDVoxsの一更新当たりの変化量を小さくすればよい。このためには、時間積分値SDVoxsの一更新当たりの変化量を、例えば、値（DVoxs・(KL/100)）とし、時間積分値SDVoxsを下記(4)式に従って、値（DVoxs・(KL/100)）を燃料噴射と同期して積算して更新していくことが考えられる。ここで、値(KL/100)は、前記「調整値」に相当するとともに、前記「相違起因値に乗じられる値」に相当する。
【００８８】
SDVoxs＝Σ(DVoxs・(KL/100))  ・・・(4)
【００８９】
」
図７は、上記(3)式に代えて上記(4)式にて時間積分値SDVoxsが更新されていく場合における、図６に対応するタイムチャートである。図６と図７の比較から明らかなように、時刻ｔ２以降に比して負荷率KLが小さい時刻ｔ２以前において、図７では図６に比して時間積分値SDVoxsの変化速度が小さくなることで時間積分値SDVoxsの変動幅が小さくなっている。この結果、図７では、負荷率KLにかかわらず、時間積分値SDVoxsの変動幅が略一定に維持されている。以上、上記(4)式に従って時間積分値SDVoxsを燃料噴射と同期して積算して更新することで、時間積分値SDVoxsの変動幅を負荷率KLにかかわらず均一化できる。
【００９０】
（時間積分値SDVoxsの未収束段階における時間積分値SDVoxsの変化速度の抑制の禁止）
図８は、上記(4)式に従って時間積分値SDVoxsを更新していく場合における、図５に対応する図である。図７と同様、図８では、負荷率KLにかかわらず、時間積分値SDVoxsの変動幅が略一定に維持されている。
【００９１】
しかしながら、上記(4)式に従って時間積分値SDVoxsを更新していく場合、負荷率KLが小さいほど時間積分値SDVoxsの変化速度が小さくされる。このことに起因して、図８に破線にて示すように、負荷率KLが小さいとき、時間積分値SDVoxsが未収束の段階（即ち、時間積分値SDVoxsが収束値αに近づいている段階）においても時間積分値SDVoxsの変化速度が小さくされる。
【００９２】
この結果、負荷率KLが小さい場合、時間積分値SDVoxsが初期値「０」から収束値αに達するまでに要する時間（Ｔ２）が負荷率KLが大きい場合（Ｔ１）に比して長くなる。換言すれば、負荷率KLが小さい場合、時間積分値SDVoxsが迅速に収束し得ず、この結果、空燃比が目標空燃比に早期に一致し得ない事態が発生し得る。
【００９３】
係る事態の発生を防止するためには、時間積分値SDVoxsが未収束の段階では、上述した負荷率KLに基づく時間積分値SDVoxsの変化速度の変更を行わなければよい。加えて、本例では、機関の始動後初めてサブフィードバック制御が開始された時点では時間積分値SDVoxsが初期値「０」に設定される。このことを考慮すると、機関の始動後初めてサブフィードバック制御が開始された時点から時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでの期間は、時間積分値SDVoxsが未収束であると判定することができる。
【００９４】
以上のことから、機関の始動後初めてサブフィードバック制御が開始された時点から時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでは、上記(3)式に従って時間積分値SDVoxsを燃料噴射と同期して更新していき、延べ更新回数Nfiが所定回数Nrefに達した時点から、上記(4)式に従って時間積分値SDVoxsを燃料噴射と同期して更新していくことが考えられる。
【００９５】
図９は、時間積分値SDVoxsを、時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでは上記(3)式に従って更新し、更新回数Nfiが所定回数Nrefに達した後は上記(4)式に従って更新していく場合における、図８に対応する図である。
【００９６】
図９に示すように、この場合、時間積分値SDVoxsが未収束の段階では、負荷率KLが小さくても時間積分値SDVoxsの変化速度が小さくされることがない。この結果、時間積分値SDVoxsが初期値「０」から収束値αに達するまでに要する時間（Ｔ１）が負荷率KLが大きい場合（Ｔ１）と同じになる。これにより、負荷率KLが小さくても時間積分値SDVoxsを収束値に迅速に収束させることができる。
【００９７】
（吸入空気流量が非常に小さい場合における対処）
上記発明の開示の欄で説明したように、排気通路を通過するガスの流量が非常に小さい場合（即ち、吸入空気流量Gaが非常に小さい場合）、酸素濃度センサ６８は、空燃比の検出部にて反応し得る単位時間当たりのＨＣ，ＣＯの分子数、或いはＮＯｘの分子数が非常に少なくなることに起因して、空燃比に対応する値と大きく異なる値を出力し得る。即ち、酸素濃度センサ６８の出力値Voxsの信頼性が低くなる。
【００９８】
従って、吸入空気流量Gaが非常に小さい場合、信頼性の低い酸素濃度センサ６８の出力値Voxsに基づいて積極的にサブフィードバック制御が行われるべきでない。このように吸入空気流量Gaが非常に小さい場合、サブフィードバック補正量Vafsfbの変化速度（従って、時間積分値SDVoxsの変化速度）が小さくされることが好適である。
【００９９】
以上のことから、係数Kgaを導入し、（時間積分値SDVoxsが収束したと判定されている場合）時間積分値SDVoxsを、上記(4)式に代えて下記(5)式に従って燃料噴射と同期して更新することが考えられる。ここで、係数Kgaは、図１０に示す吸入空気流量Gaと係数Kgaとの関係を規定するテーブルに従って決定される。
【０１００】
SDVoxs＝Σ(DVoxs・(KL/100)・Kga)  ・・・(5)
【０１０１】
これにより、係数Kgaは、通常「１」になる一方、吸入空気流量Gaが非常に小さい場合に限って「１」より小さい値となる。この結果、吸入空気流量Gaが非常に小さい場合、時間積分値SDVoxsの一更新当たりの変化量(DVoxs・(KL/100)・Kga)がより小さくなって時間積分値SDVoxsの変化速度が小さくされる。これにより、信頼性の低い酸素濃度センサ６８９の出力値Voxsに基づいて積極的にサブフィードバック制御が行われることが回避され得る。
【０１０２】
以上のことを全て考慮して、本装置は、機関の始動後初めてサブフィードバック制御が開始された時点から時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでは、上記(3)式に従って時間積分値SDVoxsを燃料噴射と同期して更新していき、延べ更新回数Nfiが所定回数Nrefに達した時点から、上記(5)式に従って時間積分値SDVoxsを燃料噴射と同期して更新していく。
【０１０３】
（実際の作動）
次に、上記のように構成された空燃比制御装置の実際の作動について、電気制御装置８０のＣＰＵ８１が実行するルーチン（プログラム）をフローチャートにより示した図１１〜図１３を参照しながら説明する。
【０１０４】
<空燃比フィードバック制御>
ＣＰＵ８１は、図１１に示した燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に（燃料噴射と同期して）、繰り返し実行するようになっている。従って、或る気筒（以下、「燃料噴射気筒」と称呼する。）のクランク角度が前記所定クランク角度になると、ＣＰＵ８１はステップ１１００から処理を開始してステップ１１０５に進み、エアフローメータ６１により計測されている吸入空気流量Gaとエンジン回転速度NEとに基づいて今回の吸気行程において燃焼室２５内に吸入される空気量（筒内吸入空気量Mc(k)）をマップfから求める。
【０１０５】
このマップfは、ＲＯＭ８２に予め記憶されている。なお、添え字の(k)は、今回の吸気行程に対する値であることを表す（他の物理量についての同様）。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらＲＡＭ８３に記憶されていく。このステップ１１０５は、吸入空気量取得手段に相当する。
【０１０６】
続いて、ＣＰＵ８１はステップ１１１０に進み、上記求めた筒内吸入空気量Mc(k)に係数Kcを乗じることで負荷率KL(％)を求める。係数Kcは筒内吸入空気量Mcを負荷率KLに換算するための換算値である。
【０１０７】
次いで、ＣＰＵ８１はステップ１１１５に進んで、上記求めた筒内吸入空気量Mc(k)を目標空燃比abyfr(k)（＝理論空燃比）で除することで空燃比を目標空燃比とするための基本燃料噴射量Fbaseを求める。次いで、ＣＰＵ８１はステップ１１２０に進み、燃料噴射量Fiを、上記求めた基本燃料噴射量Fbaseに後述する空燃比フィードバック補正量DFiを加えた値に設定する。
【０１０８】
そして、ＣＰＵ８１はステップ１１２５に進んで燃料噴射量Fiの燃料を噴射するための指示を燃料噴射気筒に対応するインジェクタ３９に対して行い、ステップ１１９５に進んで本ルーチンを一旦終了する。これにより、フィードバック補正された燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。ステップ１１２０、１１２５は、空燃比制御手段に相当する。
【０１０９】
<空燃比フィードバック補正量DFiの計算>
次に、先のステップ１１２０にて使用される空燃比フィードバック補正量DFiの算出について説明する。ＣＰＵ８１は図１２に示したルーチンを図１１に示したルーチンの実行と同期して（即ち、燃料噴射と同期して）繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１２００から処理を開始し、ステップ１２０５に進んで空燃比フィードバック制御条件が成立しているか否かを判定する。空燃比フィードバック制御条件は、例えば、水温センサ６６により検出される機関の冷却水温THWが第１所定温度以上であり、筒内吸入空気量Mc（負荷KL）が所定値以下であり、且つ、空燃比センサ６７が活性状態にあるときに成立する。
【０１１０】
いま、空燃比フィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、現時点の空燃比センサ６７の出力Vabyfと後述するサブフィードバック補正量Vafsfbとの和（Vabyf＋Vafsfb）及び図２に示したマップに基づいて現時点における上流側触媒５３の上流の空燃比abyfsを求める。この空燃比は、上流側触媒５３の上流におけるガスの「みかけの空燃比」であり、上述した「制御用空燃比」である。
【０１１１】
次に、ＣＰＵ８１はステップ１２１５に進み、現時点からＮストローク（Ｎ回の吸気行程）前に吸気行程を迎えた気筒の筒内吸入空気量である筒内吸入空気量Mc(k−N)を前記求めた制御用空燃比abyfsで除することにより、現時点からＮストローク前の筒内燃料供給量Fc(k−N)を求める。値Ｎは、内燃機関の排気量及び燃焼室２５から空燃比センサ６７までの距離等により異なる値である。
【０１１２】
このように、現時点からＮストローク前の筒内燃料供給量Fc(k−N)を求めるために、現時点からＮストローク前の筒内吸入空気量Mc(k−N)を制御用空燃比abyfsで除するのは、燃焼室２５内で燃焼された混合気が空燃比センサ６７に到達するまでには、Ｎストロークに相当する時間を要しているからである。
【０１１３】
次いで、ＣＰＵ８１はステップ１２２０に進み、現時点からＮストローク前の筒内吸入空気量Mc(k−N)を現時点からＮストローク前の時点における目標空燃比abyfr(k−N)（＝理論空燃比）で除することにより、現時点からＮストローク前の目標筒内燃料供給量Fcr(k−N)を求める。
【０１１４】
そして、ＣＰＵ８１はステップ１２２５に進んで筒内燃料供給量偏差DFcを目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じた値に設定する。即ち、筒内燃料供給量偏差DFcは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。次に、ＣＰＵ８１はステップ１２３０に進み、その時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ１２２５にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求める（更新する）。
【０１１５】
続いて、ＣＰＵ８１はステップ１２３５に進み、下記(6)式に基づいて空燃比フィードバック補正量DFiを求めた後、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１１６】
DFi＝（Gp・DFc＋Gi・SDFc）・KFB  …(6)
【０１１７】
上記(6)式において、Gpは比例ゲイン（定数）、Giは積分ゲイン（定数）である。なお、(6)式の係数KFBはエンジン回転速度NE及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「１」としている。
【０１１８】
以上により、空燃比フィードバック補正量DFiが比例積分制御により求められ、この空燃比フィードバック補正量DFiが前述した図１１のステップ１１２０により燃料噴射量Fiに反映される。この結果、現時点からＮストローク前の燃料供給量の過不足が補償されるので、空燃比（上流側触媒５３に流入するガスの空燃比）の平均値が目標空燃比abyfr（＝理論空燃比）と略一致せしめられる。
【０１１９】
一方、ステップ１２０５の判定時において、空燃比フィードバック制御条件が不成立であると、ＣＰＵ８１は同ステップ１２０５にて「Ｎｏ」と判定してステップ１２４０に進み、空燃比フィードバック補正量DFiの値を「０」に設定し、ステップ１２９５に進んで本ルーチンを一旦終了する。このように、空燃比フィードバック制御条件が不成立であるときは、空燃比フィードバック補正量DFiを「０」として空燃比（基本燃料噴射量Ｆbase）の補正を行わない。
【０１２０】
<サブフィードバック補正量Vafsfbの計算>
次に、酸素濃度センサ６８の出力Voxsに基づく空燃比フィードバック制御（即ち、サブフィードバック制御）について説明する。このサブフィードバック制御により、上述したサブフィードバック補正量Vafsfbが算出される。このサブフィードバック補正量Vafsfbが前記「フィードバック補正値」に対応する。
【０１２１】
ＣＰＵ８１は、サブフィードバック補正量Vafsfbを求めるために、図１３に示したルーチンを図１１に示したルーチンの実行と同期して（即ち、燃料噴射と同期して）繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１３００から処理を開始し、ステップ１３０５に進み、サブフィードバック制御条件が成立しているか否かを判定する。
【０１２２】
サブフィードバック制御条件は、例えば、前述したステップ１２０５での空燃比フィードバック制御条件が成立し、機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上であり、且つ、酸素濃度センサ６８が活性状態にあるときに成立する。
【０１２３】
いま、機関の始動後始めてサブフィードバック制御条件が成立したものと仮定する。なお、機関の始動後始めてサブフィードバック制御条件が成立した時点で、時間積分値SDVoxsが初期値「０」に設定される。この場合、ＣＰＵ８１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、機関の始動後始めてサブフィードバック制御条件が成立したか否かを判定する。
【０１２４】
現時点では、ＣＰＵ８１はステップ１３１０にて「Ｙｅｓ」と判定してステップ１３１５に進み、上述した時間積分値SDVoxsの延べ更新回数Nfiを初期値「０」に設定する。続いて、ＣＰＵ８１はステップ１３２０に進んで、偏差DVoxsを、上記目標空燃比相当値Voxsrefから酸素濃度センサ６８の出力値Voxsを減じた値に設定する。
【０１２５】
次に、ＣＰＵ８１はステップ１３２５に進み、上記延べ更新回数Nfiが上記所定回数Nref以上であるか否か（即ち、時間積分値SDVoxsが収束したか否か）を判定する。このステップ１３２５は収束判定手段に相当する。
【０１２６】
現時点では、延べ更新回数Nfiは「０」（＜Nref）である。従って、ＣＰＵ８１はステップ１３２５にて「Ｎｏ」と判定してステップ１３３０に進み、その時点における時間積分値SDVoxsに上記ステップ１３２０にて求めた偏差DVoxsそのものを加えることで時間積分値SDVoxsを更新する。この計算は、上記(3)式の計算に相当する。
【０１２７】
続いて、ＣＰＵ８１はステップ１３３５に進み、上記ステップ１３２０にて求めた偏差DVoxsと、前回の偏差DVoxsbと、上記(2)式とに基づいて偏差DVoxsの時間微分値DDVoxsを求める。前回の偏差DVoxsbとしては、前回の本ルーチン実行時において後述するステップ１３４５にて更新されている値が使用される。
【０１２８】
次に、ＣＰＵ８１はステップ１３４０に進み、上記ステップ１３２０にて求めた偏差DVoxsと、上記ステップ１３３０（或いは、後述するステップ１３６０）にて更新した時間積分値SDVoxsと、上記ステップ１３３５にて求めた偏差の時間微分値DDVoxsと、上記(1)式とに基づいてサブフィードバック補正量Vafsfbを求める。
【０１２９】
そして、ＣＰＵ８１はステップ１３４５に進んで、前回の偏差DVoxsbを上記ステップ１３２０にて求めた偏差DVoxsに設定し、続くステップ１３５０にて延べ更新回数Nfiを「１」だけインクリメントした後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１３０】
このような処理は、燃料噴射と同期してステップ１３５０にて「１」ずつインクリメントされていく延べ更新回数Nfiが所定回数Nrefに達するまで（即ち、時間積分値SDVoxsが未収束の段階にあると判定されている間）繰り返し実行される。
【０１３１】
即ち、時間積分値SDVoxsが未収束の段階にあると判定されている間、上記(3)式に従って燃料噴射と同期して更新されていく時間積分値SDVoxsに基づいてサブフィードバック補正量Vafsfbが算出・更新される。これにより、負荷率KL（及び、吸入空気流量Ga）に基づく時間積分値SDVoxsの変化速度の抑制（変更）が禁止される。
【０１３２】
一方、延べ更新回数Nfiが所定回数Nrefに達すると（即ち、時間積分値SDVoxsが収束したと判定されると）、ＣＰＵ８１はステップ１３２５に進んだとき、「Ｙｅｓ」と判定するようになり、ステップ１３５５に進み、エアフローメータ６１により計測されている吸入空気流量Gaに基づいて係数Kgaを図１０に示したマップKgaから求める。このマップKgaは、ＲＯＭ８２に予め記憶されている。
【０１３３】
続いて、ＣＰＵ８１はステップ１３６０に進み、その時点における時間積分値SDVoxsに値（DVoxs・(KL/100)・Kga）を加えることで時間積分値SDVoxsを更新する。DVoxsとしてはステップ１３２０にて求めた値が使用され、KLとしては図１１のステップ１１１０にて求められている最新値が使用され、Kgaとしてはステップ１３５５にて求めた値が使用される。この計算は、上記(5)式の計算に相当する。
【０１３４】
このように、延べ更新回数Nfiが所定回数Nrefに達すると（即ち、時間積分値SDVoxsが収束したと判定されると）、上記(5)式に従って燃料噴射と同期して更新されていく時間積分値SDVoxsに基づいてサブフィードバック補正量Vafsfbが算出・更新される。これにより、負荷率KL（及び、吸入空気流量Ga）に基づいて時間積分値SDVoxsの変化速度が抑制（変更）される。以上、図１３のルーチンは、フィードバック補正値算出手段に相当し、ステップ１３５５、１３６０は、変化速度変更手段に相当する。
【０１３５】
以上のようにサブフィードバック補正量Vafsfbが求められ、この値は前述した図１２のステップ１２１０における制御用空燃比abyfsの計算に使用される。換言すると、制御用空燃比abyfsは、空燃比センサ６７が実際に検出している空燃比に対して、酸素濃度センサ６８の出力値Voxsに基づいて求められるサブフィードバック補正量Vafsfbに相当する分だけ異なる空燃比として求められる。
【０１３６】
この結果、前述した図１２のステップ１２１５にて計算される筒内燃料供給量Fc(k−N)が酸素濃度センサ６８の出力値Voxsに応じて変化するので、ステップ１２２０〜１２３５によって空燃比フィードバック補正量DFiが酸素濃度センサ６８の出力値Voxsに応じて変更せしめられる。これにより、上流側触媒５３の下流側の空燃比が目標空燃比abyfr（＝理論空燃比）に一致するように、空燃比が制御せしめられる。
【０１３７】
例えば、平均的な空燃比がリーンであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当値Voxsrefよりも小さい値（即ち、リーン側に偏移した値）となっていると、ステップ１３２０にて求められる偏差DVoxsが正の値となるので、ステップ１３４０にて求められるサブフィードバック補正量Vafsfbは正の値となる。従って、ステップ１２１０にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリーンな値（より大きな値）として求められる。
【０１３８】
このため、ステップ１２１５にて求められる筒内燃料供給量Fc(k−N)は小さい値となり、ステップ１２２５にて求められる筒内燃料供給量偏差DFcは大きい値となる。従って、空燃比フィードバック補正量DFiが大きい正の値となる。この結果、図１１のステップ１１２０にて求められる燃料噴射量Fiは、基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチ側の値となるように制御される。
【０１３９】
反対に、平均的な空燃比がリッチであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当値Voxsrefよりも大きい値（即ち、リッチ側に偏移した値）となっていると、偏差DVoxsが負の値となるので、サブフィードバック補正量Vafsfbは負の値となる。従って、ステップ１２１０にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリッチな値（より小さな値）として求められる。
【０１４０】
従って、筒内燃料供給量Fc(k−N)は大きい値となるので、筒内燃料供給量偏差DFcは負の値となる。その結果、空燃比フィードバック補正量DFiが負の値となる。これにより、燃料噴射量Fiは、基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーン側の値となるように制御される。
【０１４１】
一方、ステップ１３０５の判定時において、サブフィードバック制御条件が不成立であると、ＣＰＵ８１は同ステップ１３０５にて「Ｎｏ」と判定してステップ１３６５に進み、サブフィードバック補正量Vafsfbの値を「０」に設定し、ステップ１３９５に進んで本ルーチンを一旦終了する。このように、サブフィードバック制御条件が不成立であるときは、サブフィードバック補正量Vafsfbを「０」としてサブフィードバック制御を行わない。
【０１４２】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第１実施形態によれば、上流側触媒５３下流の酸素濃度センサ６８の出力値Voxsと目標空燃比相当値Voxsrefとの差である偏差DVoxs(＝Voxsref−Voxs)と、負荷率KLと、吸入空気流量Gaに応じて決定される係数Kga（図１０を参照）とに基づく値(DVoxs・(KL/100)・Kga)を燃料噴射と同期して積算して偏差DVoxsの時間積分値SDVoxs（＝Σ(DVoxs・(KL/100)・Kga))が原則的に更新されていく（上記(5)式を参照）。そして、この時間積分値SDVoxsに基づいてサブフィードバック補正量Vafsfbが算出され、このサブフィードバック補正量Vafsfbに基づいて空燃比フィードバック制御が実行される。
【０１４３】
これにより、負荷率KLが小さいほど、時間積分値SDVoxsの一更新当たりの変化量が小さくされて時間積分値SDVoxsの変化速度が小さくされる。この結果、負荷率KL（筒内吸入空気量Mc）にかかわらず、時間積分値SDVoxsの変動幅を略一定に維持することができる。従って、サブフィードバック補正量Vafsfbの変動幅（従って、空燃比の変動幅）を負荷率KL（筒内吸入空気量Mc）にかかわらず略一定に維持することができる。この結果、機関の運転状態にかかわらず、空燃比フィードバック制御の安定性が保証され得る。
【０１４４】
加えて、吸入空気流量Gaが非常に小さい場合、係数Kgaが「１」より小さい値に決定されることで時間積分値SDVoxsの一更新当たりの変化量が小さくされて時間積分値SDVoxsの変化速度が小さくされる。この結果、信頼性の低い酸素濃度センサ６８の出力値Voxsに基づいて積極的にサブフィードバック制御が行われることが回避され得る。
【０１４５】
更には、時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでの間（即ち、時間積分値SDVoxsが未収束の段階にあると判定されている間）、上記値(DVoxs・(KL/100)・Kga)に代えて上記偏差DVoxsそのものを燃料噴射と同期して積算して時間積分値SDVoxs（＝Σ(DVoxs))が更新されていく（上記(3)式を参照）。これにより、負荷率KL（及び、吸入空気流量Ga）に基づく時間積分値SDVoxsの変化速度の抑制（変更）が禁止される。この結果、負荷率KLが小さくても（或いは、吸入空気流量Gaが非常に小さくても）時間積分値SDVoxsを収束値に迅速に収束させることができる。
【０１４６】
本発明は上記第１実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１実施形態においては、負荷率KLに応じて時間積分値SDVoxsの一更新当たりの変化量が連続的に変更されるように構成されているが、負荷率KLに応じて段階的に時間積分値SDVoxsの一更新当たりの変化量が変更されるように構成してもよい。
【０１４７】
また、上記第１実施形態においては、負荷率KLに応じて時間積分値SDVoxsの一更新当たりの変化量が変更されるように構成されているが、筒内吸入空気量Mcに応じて時間積分値SDVoxsの一更新当たりの変化量が変更されるように構成してもよい。
【０１４８】
加えて、上記第１実施形態においては、偏差DVoxsに値「KL/100」（＝調整値）を乗じた値「DVoxs・(KL/100)」（に基づく値「DVoxs・(KL/100)・Kga」）を積算することで時間積分値SDVoxsを更新し、負荷率KLに応じて調整値を変更することで時間積分値SDVoxsの変化速度を変更するように構成されているが、偏差DVoxs（相違起因値）に値「KL・K1・sgn(DVoxs)」（＝調整値）を加えた値「DVoxs＋(KL・K1・sgn(DVoxs)」を積算することで時間積分値SDVoxsを更新し、負荷率KL（筒内吸入空気量相当値）に応じて調整値を変更することで時間積分値SDVoxsの変化速度を変更するように構成してもよい。ここにおいて、K1は係数、sgn(DVoxs)はDVoxsが正のときに「１」を採り、負のときに「−１」を採る値である。これによっても、負荷率KLが小さいほど、時間積分値SDVoxsの一更新当たりの変化量が小さくされて時間積分値SDVoxsの変化速度が小さくされる。
【０１４９】
（第２実施形態）
次に、本発明の第２実施形態に係る内燃機関の空燃比制御装置について説明する。この第２実施形態は、時間積分値SDVoxsの（時間に対する）変化速度を小さくするために時間積分値SDVoxsの更新間隔の時間が長くされる点においてのみ、時間積分値SDVoxsの（時間に対する）変化速度を小さくするために時間積分値SDVoxsの一更新当たりの変化量が小さくされる上記第１実施形態と異なる。
【０１５０】
以下、第２実施形態に係る空燃比制御装置の実際の作動について説明する。この第２実施形態のＣＰＵ７１は、第１実施形態のＣＰＵ７１が実行する図１１〜１３に示したルーチンのうち、図１１、及び図１２に示したルーチンをそれぞれ実行するとともに、図１３に示したルーチンに代えて図１４にフローチャートにより示したルーチンを実行する。なお、図１４において、図１３に示したステップと同一のステップについては、図１３のステップ番号と同一のステップ番号を付している。以下、第２実施形態に特有の図１４に示したルーチンについて説明する。
【０１５１】
図１４に示したルーチンは、図１３のステップ１３５５、１３６０をステップ１４０５に置き換えた点においてのみ図１３に示したルーチンと異なる。ステップ１４０５は、ステップ１３２５にて「Ｙｅｓ」と判定される場合（即ち、時間積分値SDVoxsが収束したと判定された場合）に実行される。
【０１５２】
ステップ１４０５では、図示しないルーチンにてステップ１３３０と同じ計算（SDVoxs＝Σ(DVoxs)）により別途更新されている時間積分値SDVoxsの最新値が取得される。この図示しないルーチンは、図１５に示すように負荷率KLに応じて決定されるクランク角度増加量CAintだけクランク角度が進行する毎に実行されている。この図示しないルーチンが一回実行されると、その時点での時間積分値SDVoxsに偏差DVoxs(≒(max−min)/2、一定)そのものを加えて時間積分値SDVoxsが更新される。即ち、時間積分値SDVoxsの一更新当たりの変化量は一定(≒(max−min)/2)となる。
【０１５３】
これにより、負荷率KLが小さいほど、クランク角度増加量CAintがより大きい値に決定される。即ち、負荷率KLが小さいほど、時間積分値SDVoxsの更新間隔の時間が長くなり、時間積分値SDVoxsの変化速度が小さくされる。この結果、時間積分値SDVoxsが収束したと判定されている場合において、第１実施形態と同様、負荷率KLにかかわらず、時間積分値SDVoxsの変更幅を略一定とすることができる。
【０１５４】
本発明は上記第２実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第２実施形態においては、負荷率KLに応じて時間積分値SDVoxsの更新間隔の時間が連続的に変更されるように構成されているが、負荷率KLに応じて段階的に時間積分値SDVoxsの更新間隔の時間が変更されるように構成してもよい。
【０１５５】
また、上記第２実施形態においては、負荷率KLに応じて時間積分値SDVoxsの更新間隔の時間が変更されるように構成されているが、筒内吸入空気量Mcに応じて時間積分値SDVoxsの更新間隔の時間が変更されるように構成してもよい。
【０１５６】
また、上記各実施形態においては、ステップ１３２５にて「Ｎｏ」と判定される場合、即ち、機関の始動後始めてサブフィードバック制御条件が成立した時点以降における時間積分値SDVoxsの延べ更新回数Nfiが所定回数Nrefに達するまでの間、時間積分値SDVoxsが収束していないと判定されているが、機関の始動後始めてサブフィードバック制御条件が成立した時点以降における酸素濃度センサ６８の出力値Voxsの反転回数（切換回数）が所定回数に達するまでの間、時間積分値SDVoxsが収束していないと判定されてもよい。
【０１５７】
加えて、図１６に示すように、酸素濃度センサ６８の出力値Voxsがリーンを示す値minに維持される時間ＴＬに対するリッチを示す値maxに維持される時間ＴＲの割合「ＴＲ／ＴＬ」が「１」を含んだ所定の許容範囲の外にある場合、時間積分値SDVoxsが収束していないと判定するように構成されてもよい。
【０１５８】
これは、時間積分値SDVoxsが収束値に収束している期間中（収束値を中心に変動している期間中）においては上記割合「ＴＲ／ＴＬ」が「１」に近い値となる傾向があるのに対し、時間積分値SDVoxsが収束値に収束していない段階では上記割合「ＴＲ／ＴＬ」が「１」から遠い値となる傾向があることに基づく。図１６において、期間Ａは、時間積分値SDVoxsが収束していないと判定される場合（ステップ１３２５にて「Ｎｏ」と判定される場合）に対応し、期間Ｂは、時間積分値SDVoxsが収束したと判定される場合（ステップ１３２５にて「Ｙｅｓ」と判定される場合）に対応している。
【図面の簡単な説明】
【０１５９】
【図１】本発明の第１実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】図１に示した空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図１に示した酸素濃度センサの出力電圧と空燃比との関係を示したグラフである。
【図４】時間積分値が収束値を中心に変動している間において、負荷率が一定である場合、時間積分値の変化速度（傾き）はエンジン回転速度が大きいほど大きくなる一方、時間積分値の変動幅（振幅）はエンジン回転速度にかかわらず一定となる傾向があることを示す図である。
【図５】時間積分値が収束値を中心に変動している間において、エンジン回転速度が一定である場合、時間積分値の変化速度（傾き）は負荷率にかかわらず一定となる一方、時間積分値の変動幅（振幅）は負荷率が小さいほど大きくなる傾向があることを示す図である。
【図６】エンジン回転速度、負荷率、及び吸入空気流量が或るパターンで変動した場合における、酸素濃度センサの出力値、及び時間積分値の変化の一例を示したタイムチャートである。
【図７】負荷率が小さいほど時間積分値の一更新当たりの変化量を小さくすることで、負荷率にかかわらず、時間積分値の変動幅が略一定に維持されている様子を示した図６に対応するタイムチャートである。
【図８】負荷率が小さいほど時間積分値の一更新当たりの変化量を小さくすることで、負荷率にかかわらず、時間積分値の変動幅が略一定に維持されている様子を示した図５に対応する図である。
【図９】時間積分値を、時間積分値の延べ更新回数が所定回数に達するまでは(3)式に従って更新し、更新回数が所定回数に達した後は(4)式に従って更新していく場合における、図８に対応する図である。
【図１０】図１に示したＣＰＵが参照する、負荷率と係数との関係を規定するテーブルを示したグラフである。
【図１１】図１に示したＣＰＵが実行する燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが実行する空燃比フィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵが実行するサブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１４】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行するサブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１５】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが参照する、負荷率と時間積分値の更新間隔（クランク角度）との関係を規定するテーブルを示したグラフである。
【図１６】本発明の各実施形態の変形例に係る空燃比制御装置が行う時間積分値の収束判定の手法を説明するための図である。
【符号の説明】
【０１６０】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、５２…エキゾーストパイプ（排気管）、５３…三元触媒（上流側触媒）、６７…空燃比センサ、６８…酸素濃度センサ、７０…電気制御装置、７１…ＣＰＵ
【図１】
2007247574.tif 000003
【図２】
2007247574.tif 000004
【図３】
2007247574.tif 000005
【図４】
2007247574.tif 000006
【図５】
2007247574.tif 000007
【図６】
2007247574.tif 000008
【図７】
2007247574.tif 000009
【図８】
2007247574.tif 000010
【図９】
2007247574.tif 000011
【図１０】
2007247574.tif 000012
【図１１】
2007247574.tif 000013
【図１２】
2007247574.tif 000014
【図１３】
2007247574.tif 000015
【図１４】
2007247574.tif 000016
【図１５】
2007247574.tif 000017
【図１６】
2007247574.tif 000018