(57)【要約】【課題】触媒上流の空燃比センサ出力と、触媒下流の空燃比センサ出力に基づく積分項を含む補正量と、に基づき空燃比フィードバック制御を行う空燃比制御装置において、積分項を、平均排気空燃比のリッチ偏移を補償するため近づくべき値に適切に近づけること。【解決手段】この装置では、点火異常等による失火が発生する毎に上流側空燃比センサがリーンを示す値を出力することに起因する「平均排気空燃比のリッチ偏移」が、積分項がリーン方向に偏移することで補償され得る。ここで、積分項のリーン方向への偏移程度は、失火率が大きいほど、上流側空燃比センサ出力がリーン空燃比方向へ変化する場合の応答速度（リーン応答速度Vlean）が大きいほど、より大きくなる。このため、積分項の変化速度が、失火率の変化度合いΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、より大きい速度に設定される。【選択図】図１３
2009197683.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒と、
前記触媒よりも上流の前記排気通路に配設されて前記触媒に流入するガスの空燃比に応じた値を出力する上流側空燃比センサと、
前記触媒よりも下流の前記排気通路に配設されて前記触媒から流出するガスの空燃比に応じた値を出力する下流側空燃比センサと、
燃料を噴射する燃料噴射弁と、
を備えた内燃機関に適用され、
前記下流側空燃比センサの出力値と目標空燃比に相当する値との相違に起因する値である相違起因値に基づく値を積算して前記相違起因値に係わる時間積分値を更新し、前記更新された時間積分値に基づいて積分項を更新する積分項更新手段と、
前記上流側空燃比センサの出力と前記積分項とに少なくとも基づいて前記内燃機関の燃焼室内の混合気の空燃比が前記目標空燃比に一致するように前記燃料噴射弁から噴射される燃料量をフィードバック制御するフィードバック制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記積分項更新手段は、
失火の発生頻度を表す値を取得する失火頻度取得手段と、
前記上流側空燃比センサの出力がリーン空燃比方向へ変化する場合における前記上流側空燃比センサの出力の応答速度であるリーン応答速度を取得する応答速度取得手段と、
を備え、
前記失火の発生頻度を表す値または前記失火の発生頻度を表す値の変化度合いと、前記リーン応答速度とに基づいて前記積分項の変化速度を設定するように構成された内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記積分項更新手段は、
前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記変化速度をより大きい速度に設定するように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置において、
前記積分項更新手段は、
前記積分項の１回あたりの更新量を調整する調整値を使用して前記積分項を算出・更新し、
前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記調整値を前記１回あたりの更新量がより大きい値に設定するように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項１乃至請求項３の何れか一項に記載の内燃機関の空燃比制御装置において、
前記フィードバック制御手段は、
所定の条件が成立したと判定された場合、前記フィードバック制御を禁止し、
前記積分項更新手段は、
前記フィードバック制御が禁止された場合、前記フィードバック制御の禁止の開始時点から、前記フィードバック制御の禁止から復帰した時点から所定期間経過時点までに亘って前記積分項の更新を禁止し、
前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記所定期間をより短い期間に設定するように構成された内燃機関の空燃比制御装置。
【請求項５】
請求項１乃至請求項４の何れか一項に記載の内燃機関の空燃比制御装置において、
前記触媒は、三元触媒であり、
前記目標空燃比は、理論空燃比であり、
前記フィードバック制御手段は、
前記燃料噴射弁の異常により前記内燃機関の燃焼室内の混合気の空燃比がリーン空燃比方向の可燃限界を逸脱して発生する失火であるリーン失火が発生したか否かを判定するリーン失火判定手段を備え、
前記リーン失火が発生したと判定された場合、前記内燃機関の燃焼室内の混合気の空燃比が前記理論空燃比よりもリッチな空燃比に一致するよう前記燃料量をフィードバック制御するように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に配設された触媒の上流の排気通路に配設された上流側空燃比センサと、触媒の下流の排気通路に配設された下流側空燃比センサとを備えた内燃機関に適用され、上流側及び下流側空燃比センサの出力値に基づいて内燃機関の燃焼室内の混合気の空燃比を制御する内燃機関の空燃比制御装置に関する。以下、燃焼室内の混合気の空燃比を単に「空燃比」と称呼し、内燃機関を単に「機関」と称呼することもある。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置として、例えば特許文献１に開示されたものが知られている。この空燃比制御装置では、内燃機関の排気通路に三元触媒が配設されており、三元触媒よりも上流及び下流の排気通路に上流側空燃比センサ及び下流側空燃比センサがそれぞれ設けられている。そして、上流側及び下流側空燃比センサの出力に基づいて以下のように空燃比制御が実行される。
【特許文献１】特開平７−１９７８３７号公報
【０００３】
下流側空燃比センサの出力値と目標空燃比（上記文献に記載の装置では理論空燃比）に相当する値との相違に起因する値（相違起因値）に基づく値が積算されて、相違起因値に係わる時間積分値が更新される。この時間積分値に基づき更新される積分項に基づいて、上流側空燃比センサの出力値が補正される。そして、補正された上流側空燃比センサの出力値に基づいて燃料噴射量を補正することで、空燃比が目標空燃比に一致するようにフィードバック制御がなされる。
【０００４】
上述したフィードバック制御の実行により、エアフローメータの誤差、インジェクタの誤差、上流側空燃比センサの誤差等（以下、「吸排気系の誤差」と総称する。）が発生していても、吸排気系の誤差が上記積分項により補償され得る。この結果、空燃比が目標空燃比に一致し得る。
【発明の開示】
【０００５】
ところで、点火装置の異常（例えば、点火プラグのくすぶり等）等に起因して失火が発生する毎に、検出空燃比が排ガスの実際の空燃比（実排気空燃比）に対してリーン方向に偏移する傾向が発生し得る。このことに起因して、この失火が繰り返し発生すると、排ガスの空燃比の時間に対する平均値（平均排気空燃比）が目標空燃比に対してリッチ方向に偏移する傾向が発生し得る（詳細は後述する）。以下、このような平均排気空燃比の目標空燃比に対するリッチ方向への偏移を、単に「平均排気空燃比のリッチ偏移」とも称呼する。
【０００６】
上記「平均排気空燃比のリッチ偏移」は上記積分項により補償され得る。即ち、一定の頻度にて失火が繰り返し発生すると、積分項の変動の中心値が、上記吸排気系の誤差を補償しない値（上記文献に記載の装置では「０」）に対して減量方向に偏移し得る（詳細は後述する）。これにより、上述した失火が発生する場合であっても、空燃比が目標空燃比に一致し得る。以下、積分項が、「平均排気空燃比のリッチ偏移」を補償するために近づくべき変動の中心値を「リッチ偏移補償中心値」とも称呼する。
【０００７】
ここで、上記「リッチ偏移補償中心値」の減量方向への偏移程度が大きいほど、積分項の変化速度がより大きい速度に設定されることが好適である。これは、積分項が、上記「リッチ偏移補償中心値」に迅速に近づき得る観点に基づく。また、上記減量方向への偏移程度が小さいほど、積分項の変化速度がより小さい速度に設定されることが好適である。これは、積分項の変化速度を不必要に大きい速度に設定することを回避して、空燃比の荒れが抑制され得る観点に基づく。なお、本明細書では、「変化速度」とは、積分項の時間に対する変化勾配の平均値を意味する。
【０００８】
以上のことから、本発明は上記「リッチ偏移補償中心値」の減量方向への偏移程度を考慮して積分項の変化速度を設定し、積分項を、上記「リッチ偏移補償中心値」に適切に近づけることができる内燃機関の空燃比制御装置を提供することにある。
【０００９】
本発明にかかる第１の空燃比制御装置は、内燃機関の排気通路に配設された触媒と、前記触媒よりも上流の前記排気通路に配設されて前記触媒に流入するガスの空燃比に応じた値を出力する上流側空燃比センサと、前記触媒よりも下流の前記排気通路に配設されて前記触媒から流出するガスの空燃比に応じた値を出力する下流側空燃比センサと、燃料を噴射する燃料噴射弁とを備えた内燃機関に適用される。
【００１０】
この第１の空燃比制御装置は、上記相違起因値に係わる上記時間積分値を更新し上記更新された時間積分値に基づいて上記積分項を更新する積分項更新手段と、前記上流側空燃比センサの出力と前記積分項とに少なくとも基づいて上記空燃比が前記目標空燃比に一致するように前記燃料噴射弁から噴射される燃料量をフィードバック制御するフィードバック制御手段とを備えている。
【００１１】
この第１の空燃比制御装置の特徴は、前記積分項更新手段が、失火の発生頻度を表す値を取得する失火頻度取得手段と、前記上流側空燃比センサの出力がリーン空燃比方向へ変化する場合における前記上流側空燃比センサの出力の応答速度であるリーン応答速度を取得する応答速度取得手段とを備え、前記失火の発生頻度を表す値または前記失火の発生頻度を表す値の変化度合いと、前記リーン応答速度とに基づいて前記積分項の変化速度を設定するように構成されたことにある。
【００１２】
具体的には、例えば、前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記変化速度はより大きい速度に設定される。
【００１３】
上記「リッチ偏移補償中心値」の減量方向への偏移程度（即ち、上記「平均排気空燃比のリッチ偏移」の程度）は、失火の発生頻度及びリーン応答速度に依存する。上記減量方向への偏移程度は、失火の発生頻度が大きいほど、リーン応答速度が大きいほどより大きくなる。また、失火の発生頻度が変化した場合、失火の発生頻度の変化度合いが大きいほど、リーン応答速度が大きいほど、上記「リッチ偏移補償中心値」の変化度合いがより大きくなる（詳細は後述する）。
【００１４】
上記構成によれば、上記「リッチ偏移補償中心値」の減量方向への偏移程度、また、上記「リッチ偏移補償中心値」の変化度合いが大きいものとなる場合、積分項の変化速度が大きい速度に設定され得る。このため、積分項が上記「リッチ偏移補償中心値」に迅速に近づき得る。一方、上記減量方向への偏移程度、また、上記変化度合いが小さいものとなる場合、積分項の変化速度が小さい速度に設定され得る。このため、積分項の変化速度が不必要に大きい速度に設定されることが回避され得、空燃比の荒れが抑制され得る。以上のことから、積分項を、上記「リッチ偏移補償中心値」に適切に近づけることができる。
【００１５】
上記第１の空燃比制御装置においては、前記積分項更新手段が、前記積分項の１回あたりの更新量を調整する調整値を使用して前記積分項を算出・更新し、前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記調整値を前記１回あたりの更新量がより大きい値に設定するように構成されてもよい。
【００１６】
ここにおいて、「調整値」は、例えば、時間積分値に乗じられる値であって、時間積分値の１回あたりの更新量を調整することで積分項の１回あたりの更新量を調整する値であってもよい。また、「調整値」は、例えば、時間積分値の１回あたりの更新量が一定とされる場合、積分項そのものの１回あたりの更新量を調整する値（例えば、積分項のゲイン等）であってもよい。
【００１７】
積分項の更新間隔が一定の場合、積分項の変化速度は、積分項の１回あたりの更新量が大きいほどより大きくなる。上記構成によれば、調整値が利用されて上記１回あたりの更新量が容易に調整され得る。従って、積分項の変化速度の設定を容易に行うことができる。
【００１８】
また、上記第１の空燃比制御装置においては、前記フィードバック制御手段が、所定の条件が成立したと判定された場合前記フィードバック制御を禁止し、前記積分項更新手段が、前記フィードバック制御が禁止された場合前記フィードバック制御の禁止の開始時点から、前記フィードバック制御の禁止から復帰した時点から所定期間経過時点までに亘って前記積分項の更新を禁止し、前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記所定期間をより短い期間に設定するように構成されてもよい。
【００１９】
ここにおいて、「所定の条件が成立したと判定された場合」とは、例えば、燃料噴射弁からの燃料の噴射を禁止するフューエルカット制御の実行条件が成立したと判定された場合や、内燃機関の温度が所定温度よりも低いと判定された場合等があげられる。
【００２０】
フィードバック制御が禁止された場合、フィードバック制御の禁止から復帰した時点においても、排気空燃比が目標空燃比から大きく乖離している場合が多い。このため、フィードバック制御の禁止から復帰した時点から積分項の更新がなされると、積分項は、上記「リッチ偏移補償中心値」から乖離し得る。従って、フィードバック制御の禁止から復帰した時点から、目標空燃比から大きく乖離していた排気空燃比がある程度目標空燃比に近づくまでの期間に亘っても、積分項の更新が禁止されることが好ましい。係る知見に基づき、前記フィードバック制御の禁止から復帰した時点からの所定期間においても、積分項の更新が禁止される。
【００２１】
ここで、積分項の１回あたりの更新量が一定の場合、積分項の更新が禁止される期間が短いほど、積分項の更新回数がより大きくなる。積分項の更新回数が大きいほど、積分項の変化速度がより大きくなり得る。従って、積分項の変化速度は、上記所定期間が短いほど大きくなり得る。上記構成によれば、上記所定期間が調整されることで積分項の変化速度の設定を容易に行うことができる。
【００２２】
なお、上記第１の空燃比制御装置においては、例えば、前記積分項更新手段が、失火の発生頻度の変化度合いが所定の度合いよりも大きいと判定された場合、第１段階として前記積分項の変化速度を第１変化速度に設定し、前記第１段階において第１の条件が成立した場合、第２段階として前記変化速度を前記第１変化速度から前記第１変化速度よりも小さい第２変化速度に変更し、前記第２段階において第２の条件が成立した場合、第３段階として前記変化速度を前記第２変化速度から前記第２変化速度よりも小さい第３変化速度に変更し、前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記変化速度を大きい速度に設定するように構成されてもよい。
【００２３】
この場合、例えば、前記失火の発生頻度または前記失火の発生頻度の変化度合いが大きいほど、及び／又は前記リーン応答速度が大きいほど、前記第１段階中の前記積分項の更新回数がより大きい回数となるように設定されてもよい。
【００２４】
また、本発明に係る第２の空燃比制御装置は、三元触媒と、前記上流側空燃比センサ及び前記下流側空燃比センサとを備えた内燃機関に適用され、前記積分項更新手段と、前記フィードバック制御手段とを備えている。
【００２５】
この第２の空燃比制御装置の特徴は、前記積分項更新手段が、前記下流側空燃比センサの出力値と理論空燃比に相当する値との相違に起因する値である相違起因値に基づく値を積算して前記相違起因値に係わる時間積分値を更新し、前記更新された時間積分値に基づいて積分項を更新するように構成され、また、前記フィードバック制御手段が、前記燃料噴射弁の異常により上記空燃比がリーン空燃比方向の可燃限界を逸脱して発生する失火であるリーン失火が発生したか否かを判定するリーン失火判定手段を備え、前記リーン失火が発生したと判定された場合上記空燃比が前記理論空燃比よりもリッチな空燃比に一致するよう前記燃料量をフィードバック制御するように構成されたことにある。
【００２６】
この前記フィードバック制御手段は、例えば、前記リーン失火が発生したと判定されていない場合には、上記空燃比が前記理論空燃比に一致するよう前記燃料量をフィードバック制御するように構成されると好適である。
【００２７】
前記リーン失火が発生した場合、排気空燃比は理論空燃比に対してリーン方向へ極めて大きく偏移し得る。この場合、上流側空燃比センサの出力はリーンを示す値を出力する。この出力値に基づいて、上記空燃比が理論空燃比に一致するように燃料量が（増量方向に）フィードバック制御がなされると、平均排気空燃比が理論空燃比に対してリーン方向へ偏移し易い（詳細は後述する）。
【００２８】
平均排気空燃比が理論空燃比よりもリーンな排ガスが三元触媒に流入すると、三元触媒の酸素吸蔵量が増大する。この酸素吸蔵量が比較的大きくなると、窒素酸化物ＮＯｘ等が適切に浄化され難くなる。従って、三元触媒に流入するガスの平均排気空燃比を、理論空燃比近傍に推移させることが好ましい。前記リーン失火が発生した場合であっても、平均排気空燃比を理論空燃比近傍に推移させるためには、前記リーン失火が発生した場合に空燃比を理論空燃比よりもリッチな空燃比とすることが考えられる。
【００２９】
上記構成はかかる知見に基づくものである。これによれば、前記リーン失火が発生した場合であっても、平均排気空燃比を理論空燃比に近づけることができる。従って、リーン失火の発生の有無にかかわらず、平均排気空燃比を理論空燃比近傍に推移させることができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
【００３１】
（第１実施形態）
図１は、第１実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００３２】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これによりクランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３３】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ３９を備えている。
【００３４】
吸気系統４０は、吸気ポート３１に連通し吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、及びＤＣモータからなるスロットル弁アクチュエータ４３ａを備えている。
【００３５】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側の三元触媒５３（上流側触媒コンバータ、以下、「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側の三元触媒５４（以下、「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００３６】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、上記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、及びアクセル開度センサ６８を備えている。
【００３７】
熱線式エアフローメータ６１は、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００３８】
上流側空燃比センサ６６は、限界電流式の酸素濃度センサであり、図２に示したように、空燃比Ａ／Ｆに応じて出力される電流に応じた電圧である出力値Vabyfsを出力するようになっている。特に、空燃比が理論空燃比AFstoichであるときには出力値Vabyfsは値Vstoichになる。図２から明らかなように、上流側空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。
【００３９】
下流側空燃比センサ６７は、起電力式（濃淡電池式）の酸素濃度センサであり、図３に示したように、理論空燃比AFstoich近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ６７は、空燃比Ａ／Ｆが理論空燃比AFstoichよりもリーンのときは略０．１（Ｖ）、空燃比Ａ／Ｆが理論空燃比AFstoichよりもリッチのときは略０．９（Ｖ）、及び空燃比Ａ／Ｆが理論空燃比AFstoichのときは０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００４０】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、及びスロットル弁アクチュエータ４３ａに駆動信号を送出するようになっている。
【００４１】
（空燃比制御の概要）
次に、上記のように構成された空燃比制御装置（以下、「本装置」と云う。）が行う空燃比制御の概要について説明する。
【００４２】
本装置は、下流側空燃比センサ６７の出力値が理論空燃比AFstoichに対応する下流側目標値Voxsref（本例では、０．５（Ｖ）、図３を参照）となるように（即ち、第１触媒５３下流の平均排気空燃比が理論空燃比となるように）、上流側空燃比センサ６６の出力値Vabyfs（即ち、第１触媒５３上流の空燃比）、及び下流側空燃比センサ６７の出力値Voxs（即ち、第１触媒５３下流の空燃比）に応じて空燃比を制御する。
【００４３】
より具体的に述べると、本装置は、機能ブロック図である図４に示したように、Ａ１〜Ａ１２の各機能ブロックを含んで構成されている。以下、図４を参照しながら各機能ブロックについて説明していく。なお、以下、「フィードバック」を「ＦＢ」と称呼することもある。
【００４４】
<指令燃料噴射量の算出>
筒内吸入空気量算出手段Ａ１は、エアフローメータ６１が計測している吸入空気流量Gaと、クランクポジションセンサ６４の出力に基づいて得られる運転速度NEと、ＲＯＭ７２が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、今回の吸気行程に対する値であることを示している（以下、他の物理量についても同様。）。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００４５】
上流側目標空燃比設定手段Ａ２は、内燃機関１０の運転状態に基づいて、空燃比の目標値である現時点での上流側目標空燃比abyfr(k)を決定する。この上流側目標空燃比abyfrは、原則的には、理論空燃比AFstoichに設定されている。上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００４６】
基本燃料噴射量算出手段Ａ３は、上記筒内吸入空気量Mc(k)を上記上流側目標空燃比abyfr(k)で除することにより、空燃比を上流側目標空燃比abyfrとするための今回の吸気行程に対する基本燃料噴射量Fbaseを求める。
【００４７】
指令燃料噴射量算出手段Ａ４は、上記基本燃料噴射量Fbaseに、後述するメインＦＢ補正量DFBを加えることで、下記(1)式に基づいて指令燃料噴射量Fiを求める。
【００４８】
Fi＝Fbase＋DFB  ・・・(1)
【００４９】
このようにして、本装置は、基本燃料噴射量FbaseをメインＦＢ補正量DFBに基づいて補正することにより得られる指令燃料噴射量Fiの燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ３９に対して行う。このように燃料の噴射指示を行う手段が前記「フィードバック制御手段」に相当する。
【００５０】
<サブＦＢ補正量の取得>
下流側目標値設定手段Ａ５は、下流側目標値Voxsrefを決定する。本例では、下流側目標値Voxsrefは、理論空燃比AFstoichに対応する値（０．５（Ｖ））で一定に設定される。
【００５１】
出力偏差量算出手段Ａ６は、下記(2)式に基づいて、現時点（具体的には、今回のFiの噴射指示開始時点）での下流側目標値Voxsrefから現時点での下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。この出力偏差量DVoxsは前記相違起因値に相当する。
【００５２】
DVoxs＝Voxsref−Voxs  ・・・(2)
【００５３】
ＰＩＤコントローラＡ７は、出力偏差量DVoxsを比例・積分・微分処理（ＰＩＤ処理）することで、下記(3)式に基づいてサブＦＢ補正量Vafsfbを求める。下記(3)式において、Kpは予め設定された比例ゲイン（値Kp1、一定値）、Kiは予め設定された積分ゲイン（値Ki1、一定値）、Kdは予め設定された微分ゲイン（値Kd1、一定値）である。この値「Ki・SDVoxs」が前記積分項に相当する。ここで、ＰＩＤコントローラＡ７は積分項Ki・SDVoxsを含んでいるから、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになる。
【００５４】
Vafsfb＝Kp・DVoxs＋Ki・SDVoxs＋Kd・DDVoxs  ・・・(3)
【００５５】
上記(3)式において、DDVoxsは出力偏差量DVoxsの時間微分値であり、今回更新された出力偏差量DVoxsと前回更新されていた出力偏差量DVoxsとの偏差を更新間隔に対応する時間で除することで更新される。また、SDVoxsは出力偏差量DVoxsの時間積分値（積算値）であり、この時間積分値SDVoxsは下記(4)式に基づいて更新される。
SDVoxs＝SDVoxs＋K・DVoxs  ・・・(4)
【００５６】
上記(4)式において、Kは調整値であり、後述するように設定・変更される値である。即ち、時間積分値SDVoxsの１回あたりの更新量は、出力偏差量DVoxsに調整値Kを乗じた値K・DVoxsである。調整値Kが設定・変更されることにより、上記１回あたりの更新量K・DVoxsも設定・変更されるようになっている。また、時間積分値SDVoxsは、更新される毎にバックアップＲＡＭ７４に逐次記憶されていく。そして、記憶されている時間積分値SDVoxsの最新値が利用されて、サブＦＢ補正量Vafsfbが更新される。
【００５７】
このようにして、本装置は、下流側目標値Voxsrefと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになるように出力値Voxsに基づいて、サブＦＢ補正量Vafsfbを求める。このサブＦＢ補正量Vafsfbは、後述するように制御用空燃比abyfsの取得に用いられる。
【００５８】
<メインＦＢ補正量の取得>
制御用空燃比相当出力値算出手段Ａ８は、現時点での上流側空燃比センサ６６の出力値Vabyfsに、サブＦＢ補正量Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
【００５９】
テーブル変換手段Ａ９は、上記制御用空燃比相当出力値(Vabyfs+Vafsfb)と、先に説明した図２にグラフにて示した上流側空燃比センサ６６の出力値Vabyfsと空燃比Ａ／Ｆとの関係を規定したテーブルMapabyfsとに基づいて、現時点での（今回の）制御用空燃比abyfs(k)を求める。これにより、制御用空燃比abyfs(k)は、上流側空燃比センサ６６の出力値Vabyfsに対応する空燃比（検出空燃比）に対してサブＦＢ補正量Vafsfbに相当する分だけ異なる空燃比となる。制御用空燃比abyfs(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００６０】
目標空燃比遅延手段Ａ１０は、上流側目標空燃比設定手段Ａ２により吸気行程毎に求められＲＡＭ７３に記憶されている上流側目標空燃比abyfrのうち、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)をＲＡＭ７３から読み出す。ここで、ストローク数Ｎは、「行程遅れに係る時間」と「輸送遅れに係る時間」と「応答遅れに係る時間」の和（以下、「無駄時間Ｔ」と称呼する。）に相当するストローク数である。
【００６１】
「行程遅れに係る時間」は、燃料の噴射指示から、この噴射指示により噴射された燃料の燃焼に基づく排ガスが排気弁３５を介して燃焼室２５から排気通路へ排出されるまでの時間である。「輸送遅れに係る時間」は、排ガスが排気弁３５を介して排気通路へ排出されてから上流側空燃比センサ６６（の検出部）に到達するまでの時間である。「応答遅れに係る時間」は、上流側空燃比センサ６６（の検出部）に到達した排ガスの空燃比が上流側空燃比センサ６６の出力値Vabyfsとして現れるまでの時間である。
【００６２】
空燃比偏差算出手段Ａ１１は、下記(5)式に基づいて、今回の制御用空燃比abyfs(k)から、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)を減じることにより、空燃比偏差DAFを求める。ここで、上流側空燃比センサ６６の出力値Vabyfsが現時点から上記無駄時間Ｔだけ前の噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比を表すことを考慮すると、この空燃比偏差DAFは、現時点からＮストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
【００６３】
DAF＝abyfs(k)−abyfr(k-N)  ・・・(5)
【００６４】
ＰＩコントローラＡ１２は、上記空燃比偏差DAFを比例・積分処理（ＰＩ処理）することで、下記(6)式に基づいて、現時点からＮストローク前の燃料供給量の過不足を補償するためのメインＦＢ補正量DFBを求める。
【００６５】
DFB＝(Gp・DAF+Gi・SDAF)  ・・・(6)
【００６６】
上記(6)式において、Gpは比例ゲイン（値Gp1、一定値）、Giは積分ゲイン（値Gi1、一定値）である。SDAFは空燃比偏差DAFの時間積分値（積算値）である。なお、本例では、値Gp1及び値Gi1は、空燃比の荒れが適正範囲内の最大値となる場合に対応する値に設定されている。このように算出されるメインＦＢ補正量DFBが、上述した指令燃料噴射量算出手段Ａ４における指令燃料噴射量Fiの算出（上記(1)式を参照）に使用される。
【００６７】
以上のように、本装置では、現時点からＮストローク前の時点で筒内に供給された燃料の過不足分を補償するために、現時点での制御用空燃比abyfs(k)が現時点からＮストローク前の上流側目標空燃比abyfr(k-N)と一致するように空燃比がフィードバック制御される。
【００６８】
加えて、制御用空燃比abyfsは、上述したように、上流側空燃比センサ６６の出力値Vabyfsに対応する検出空燃比をサブＦＢ補正量Vafsfbに相当する分だけ補正した空燃比である。従って、制御用空燃比abyfsは出力偏差量DVoxsにも応じて変化する。この結果、下流側空燃比センサ６７の出力値Voxsが下流側目標値Voxsrefに一致するようにも空燃比がフィードバック制御される。このことは、第１触媒５３下流の平均排気空燃比（従って、第１触媒５３上流の平均排気空燃比）が理論空燃比AFstoichとなるように制御されることを意味する。
【００６９】
更には、ＰＩコントローラＡ１２は積分項Gi・SDAFを含んでいるので、定常状態では空燃比偏差DAFがゼロになることが保証される。換言すれば、上流側目標空燃比abyfr(k-N)と制御用空燃比abyfs(k)との定常偏差がゼロになる。このことは、定常状態において、制御用空燃比abyfsが上流側目標空燃比abyfrに一致すること、従って、第１触媒５３の上下流の空燃比が上流側目標空燃比abyfrに一致することが保証されることを意味する。
【００７０】
ところで、本装置では、所定の条件が成立したと判定された場合、フューエルカット制御（以下、「ＦＣ制御」とも称呼する。）が実行される。更に、ＦＣ制御が実行された場合には、ＦＣ制御からの復帰時点から所定期間に亘って空燃比が理論空燃比AFstoichよりもリッチな空燃比となるように制御される（以下、この制御を「ＦＣ後リッチ制御」とも称呼する。）。図５は、上述したＦＣ制御、及びＦＣ後リッチ制御が実行される場合における各種変数の変化の一例を示したタイムチャートである。
【００７１】
図５において、時刻ｔＡ〜ｔＢに亘ってＦＣ制御の実行条件が成立するものとする。ここで、ＦＣ制御の実行条件は、アクセルペダル８１の操作量Accpがゼロである等の条件である。ＦＣ制御の実行条件が成立した場合には、基本燃料噴射量算出手段Ａ３において基本燃料噴射量Fbaseはゼロに設定されるとともに、ＦＢ制御の実行が禁止（Off）される。即ち、この場合、メインＦＢ補正量DFB及びサブＦＢ補正量Vafsfbがともにゼロに設定される。これにより指令燃料噴射量Fiがゼロとなる。
【００７２】
このため、時刻ｔＡ〜ｔＢにて、ＦＣ制御により第１触媒５３の酸素吸蔵量OSAが、触媒が吸蔵し得る酸素の最大量（以下、「最大酸素吸蔵量Cmax」とも称呼する。）に推移する。ここで、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに達している場合、第１触媒５３に流入する窒素酸化物ＮＯｘが適切に浄化され難い。窒素酸化物ＮＯｘを適切に浄化するためには、ＦＣ制御からの復帰後酸素吸蔵量OSAを迅速に減少させることが好ましい。ＦＣ後リッチ制御を実行するのはかかる観点に基づく。
【００７３】
時刻ｔＢにて、ＦＢ制御が再び開始（On）されるとともにＦＣ後リッチ制御が開始される。ＦＣ後リッチ制御では、上流側目標空燃比設定手段Ａ２において、上流側目標空燃比abyfrが理論空燃比AFstoichよりもリッチな空燃比AFrich（本例では一定）に設定される。ＦＣ後リッチ制御は、酸素吸蔵量OSAが、第１触媒５３の最大酸素吸蔵量Cmaxの半分よりも小さい量となる時刻ｔＣにて終了するようになっている。
【００７４】
ＦＣ制御によりリーンを示す値を出力していた下流側空燃比センサ６７の出力値Voxsは、ＦＣ後リッチ制御中の時刻ｔＤにてリッチを示す値に反転する。これは、空燃比AFrichのリッチ度合いが大きいことに基づくと考えられる。これにより、時刻ｔＤ以降、下流側空燃比センサ６７の出力値Voxsがリッチを示す値に維持される。即ち、上記出力偏差量DVoxsが負の値となる（上記式(2)を参照）。このため、仮に、時刻ｔＤから上記式(4)に基づいて上記時間積分値SDVoxsが更新されると、時間積分値SDVoxsは減量方向に偏移していく。換言すれば、ＦＣ制御及びＦＣ後リッチ制御の実行は、時間積分値SDVoxsの収束に対して外乱となり得る。
【００７５】
従って、本装置では、ＦＣ制御から復帰した時点（時刻ｔＢ）から、ＦＣ後リッチ制御の終期（時刻ｔＣ）よりも後の時刻ｔＥまでの期間に亘って、時間積分値SDVoxsの更新が禁止(Off)されるようになっている。この期間に対応する燃料噴射回数を「更新禁止回数L」と称呼する。また、更新禁止回数Lに対応する期間が前記所定期間に相当する。なお、時刻ｔＡ〜ｔＢの期間においては、ＦＢ制御が禁止されるため時間積分値SDVoxsは、実質的に更新が禁止される。即ち、ＦＣ制御が実行された場合、ＦＣ制御の開始時点から、ＦＣ制御から復帰した時点から更新禁止回数Lに対応する期間の経過時点までに亘って、時間積分値SDVoxsの更新が禁止される。
【００７６】
本装置は、後述するように時間積分値SDVoxsの変化速度を設定・変更する。時間積分値SDVoxsの変化速度の設定・変更は、上記調整値Kの設定・変更による時間積分値SDVoxsの１回あたりの更新量K・DVoxsの設定・変更により達成される（上記式(4)を参照）。また、時間積分値SDVoxsの変化速度の設定・変更は、更新禁止回数Lの設定・変更によっても達成される。以上が、本装置が行う空燃比制御の概要である。
【００７７】
（時間積分値の変化速度の設定）
<失火率変化、及びリーン応答速度に基づく変化速度の設定>
本装置は、失火率変化ΔRmis（前記失火の頻度を表す値の変化度合いに相当）、及び上流側空燃比センサ６６のリーン応答速度Vleanに基づいて時間積分値SDVoxsの変化速度（即ち、調整値K、及び更新禁止回数L）を設定する。より具体的には、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、時間積分値SDVoxsの変化速度がより大きい速度に設定される。
【００７８】
失火率Rmis（前記失火の頻度を表す値に相当）とは、本例では、燃料噴射が所定回数だけ行われた期間内において失火が発生した回数の、前記所定回数に対する割合である。失火率変化ΔRmisは、このように定義される失火率Rmisが変化した場合における、変化前後の失火率Rmisの差（の絶対値）である。なお、本例では、エアフローメータ６１及びインジェクタ３９が正常（即ち、筒内吸入空気量Mc、及び指令燃料噴射量Fiが正常）であって、点火装置（点火プラグ３７、イグナイタ３８）の異常（例えば、点火プラグ３７のくすぶり等）に起因して発生する失火を想定している。即ち、この失火が発生すると、未燃の排ガスの空燃比は理論空燃比AFstoich（或いは、理論空燃比近傍）に維持される。以下、この失火を「ストイキ失火」とも称呼する。
【００７９】
また、リーン応答速度Vleanとは、第１触媒５３上流の実排気空燃比がリーン方向に変化することに伴って上流側空燃比センサ６６の出力Vabyfsがリーン空燃比方向（図２において増加方向）へ変化する場合における、実排気空燃比の変化に対する上流側空燃比センサ６６の出力Vabyfsの応答遅れの程度を表す。リーン応答速度Vleanが大きいとは、実排気空燃比の変化に対する上流側空燃比センサ６６の出力Vabyfsの応答遅れの程度が小さいことを意味する。
【００８０】
以下、時間積分値SDVoxsの変化速度を上述のように設定する理由について、図６及び図７を参照しながら説明する。図６は、上流側目標空燃比abyfrが理論空燃比AFstoichに設定されていて、且つ、ストイキ失火が繰り返し発生している場合における、検出空燃比、第１触媒５３上流の実排気空燃比、及びメインＦＢ補正量DFBの変化の一例を示している。図６の例では、リーン応答速度Vleanが一定であるものとする。
【００８１】
図６に示すように、ストイキ失火が発生する毎に、検出空燃比がリーン方向に偏移する傾向が発生する。なお、検出空燃比がリーン方向に偏移するタイミングがストイキ失火発生のタイミングよりも遅れているのは、上述した無駄時間Ｔに対応するものである。係るストイキ失火による検出空燃比のリーン方向への偏移は、以下の理由に基づく。
【００８２】
ストイキ失火が発生する場合、未燃の排ガスには、多量のＨＣ、及び多量の酸素Ｏ２が含まれることになる。上流側空燃比センサ６６（限界電流式の酸素濃度センサ）では、酸素Ｏ２の反応速度がＨＣの反応速度よりも大きい。従って、ストイキ失火が発生すると、ＨＣよりも多くの多量の酸素Ｏ２が上流側空燃比センサ６６と反応することで、上流側空燃比センサ６６の出力（従って、検出空燃比）は、実排気空燃比に対してリーン方向に偏移する。
【００８３】
なお、係る多量のＨＣ及び多量の酸素Ｏ２の殆どは第１触媒５３内で互いに反応するから、下流側空燃比センサ６７には上流側空燃比センサ６６のように多量の酸素Ｏ２が到達し得ない。従って、下流側空燃比センサ６７の出力Voxsがストイキ失火によりリーン方向に偏移する傾向は非常に小さい。
【００８４】
このように、検出空燃比が、ストイキ失火が発生する毎にリーン方向に偏移する傾向が発生すると、図６に示すように、メインＦＢ補正量DFBも、ストイキ失火が発生する毎に増量方向に偏移する。即ち、失火率Rmisが値Rmis1（一定）となるストイキ失火が繰り返し発生すると、平均DFBが中心値「０」に対して増量方向に偏移する。この結果、第１触媒５３上流（従って、第１触媒５３下流）の平均排気空燃比が理論空燃比AFstoichに対してリッチ方向に偏移する（図６の実線を参照）。
【００８５】
ここで、失火率Rmisが値Rmis1から値Rmis2（＞Rmis1）へ変化した場合を考える。この場合、失火率Rmisの増大により検出空燃比がリーン方向に偏移する頻度が大きくなる。このため、メインＦＢ補正量DFBも、増量方向に偏移する頻度が大きくなる。即ち、失火率Rmisが値Rmis1から値Rmis2へ増大すると、平均DFBの中心値「０」に対する増量方向の偏移程度がより大きくなる。この結果、上記「平均排気空燃比のリッチ偏移」の程度もより大きくなる（図６の破線を参照）。
【００８６】
上記「平均排気空燃比のリッチ偏移」は、サブＦＢ補正量Vafsfbにおける積分項「Ki・SDVoxs」により補償され得る。即ち、ストイキ失火が繰り返し発生すると、積分項「Ki・SDVoxs」（従って、時間積分値SDVoxs）の変動の中心値が、ストイキ失火が発生していない場合における値（本例ではゼロ）に対して減量方向に偏移する。以下、上述した平均排気空燃比のリッチ方向の偏移を補償するために、時間積分値SDVoxsが近づくべき変動の中心値を「リッチ偏移補償中心値」とも称呼する。
【００８７】
従って、失火率Rmisが値Rmis1から値Rmis2へ増大する場合、上記「平均排気空燃比のリッチ偏移」の程度の増大に伴って、上記「リッチ偏移補償中心値」もより減量方向に偏移する。失火率Rmisが値Rmis1及び値Rmis2である場合に対応する「リッチ偏移補償中心値」が、それぞれ値SDVoxs1及び値SDVoxs2（＜値SDVoxs1）であるとすると、この場合、時間積分値SDVoxsは、値SDVoxs1から値SDVoxs2に向かって偏移していく（後述する図８を参照）。
【００８８】
以上のことから、失火率変化ΔRmisが大きいほど、上記「リッチ偏移補償中心値」の変化度合いもより大きいものとなる。変化した「リッチ偏移補償中心値」に時間積分値SDVoxsを迅速に近づけるためには、失火率変化ΔRmisが大きいほど、時間積分値SDVoxsの変化速度をより大きい速度に設定することが好ましい。失火率変化ΔRmisに基づいて時間積分値SDVoxsの変化速度を設定する理由は、かかる知見に基づく。
【００８９】
図７は、失火率変化ΔRmisが一定（値Rmis1→値Rmis2）であり、リーン応答速度Vleanが変化する場合における検出空燃比、第１触媒５３上流の実排気空燃比、及びメインＦＢ補正量DFBの変化の一例を示した図６に対応する図である。ところで、リーン応答速度Vleanは、上流側空燃比センサ６６が経年変化すること等により出荷時のものに比して小さくなる場合や、大きくなる場合がある。
【００９０】
リーン応答速度Vleanが小さくなる場合は、上流側空燃比センサ６６の検出部内のジルコニアＺｒＯ２からなる拡散層に目詰まり等が発生して、排ガスが拡散層内で拡散し難くなった場合に発生し得る。即ち、分子量が比較的大きい酸素Ｏ２分子の拡散速度が特に遅くなり、上流側空燃比センサ６６の出力Vabyfs（従って、検出空燃比）がリーン空燃比方向へ変化する場合における応答性が小さくなる。また、上流側空燃比センサ６６の検出部内の貴金属からなる触媒にて一酸化炭素ＣＯ等による被毒が発生したり、検出部のヒータが異常状態となり検出部が十分に加熱されない場合にも、上記応答性が小さくなりリーン応答速度Vleanが小さくなる。
【００９１】
リーン応答速度Vleanが大きくなる場合は、上記拡散層にクラック等が発生したり、高熱による拡散層の凝縮に起因して拡散層内の平均ポーラス径が大きくなることで、排ガスが拡散層内で過度に拡散する場合に発生し得る。即ち、酸素Ｏ２分子の拡散速度が特に速くなり上記応答性が大きくなる。
【００９２】
リーン応答速度Vleanが大きい（小さい）場合、ストイキ失火が発生する毎に検出空燃比がリーン方向に偏移する程度が大きい（小さい）。具体的には、検出空燃比のリーン方向のピーク値が大きい（小さい）。このため、失火率Rmisが値Rmis1である場合、平均DFBの中心値「０」に対する増量方向の偏移程度も大きく（小さく）、「平均排気空燃比のリッチ偏移」の程度も大きい（図７の実線及びドットにて示した部分を参照）（小さい（図７の１点鎖線及び斜線にて示した部分を参照））。
【００９３】
失火率Rmisが値Rmis1から値Rmis2へ増大した場合において、リーン応答速度Vleanに依存して平均DFB及び平均排気空燃比の変化度合いが変化する。即ち、リーン応答速度Vleanが大きい場合、平均DFBの増量方向の変化度合い、及び平均排気空燃比のリッチ方向の変化度合いはそれぞれ大きくなる（図７の破線を参照）。一方、リーン応答速度が小さい場合には、平均DFBの増量方向の変化度合い、及び平均排気空燃比のリッチ方向の変化度合いはそれぞれ小さくなる（図７の２点鎖線を参照）。
【００９４】
従って、この場合、リーン応答速度Vleanが大きい（小さい）ことに起因して、上記「リッチ偏移補償中心値」の変化度合いが大きく（小さく）なる。即ち、失火率変化ΔRmisが一定の場合であっても、リーン応答速度Vleanが大きいほど、上記「リッチ偏移補償中心値」の変化度合いもより大きいものとなる。
【００９５】
従って、変化した「リッチ偏移補償中心値」に時間積分値SDVoxsを迅速に近づけるためには、リーン応答速度Vleanが大きいほど、時間積分値SDVoxsの変化速度をより大きい速度に設定することが好ましい。また、このように変化速度が設定されることで、不必要に変化速度が大きい速度に設定されることが回避され得る。リーン応答速度Vlean基づいて時間積分値SDVoxsの変化速度を設定する理由は、かかる知見に基づく。
【００９６】
<変化速度の段階的な変更>
ところで、本装置では、図８に示すように、失火率変化ΔRmisが所定の変化度合いよりも大きいと判定された場合、３つの段階（step）に分けて、時間積分値SDVoxsの変化速度が大、中、小程度の速度にそれぞれ設定・変更される。これは、上記「リッチ偏移補償中心値」の変化度合いが大きいと判定された場合に、時間積分値SDVoxsを迅速に、且つ、精度よく上記「リッチ偏移補償中心値」に近づけるためである。なお、このような段階的な時間積分値SDVoxsの変化速度の変更については、特願２００８−１３５５にて記載されている。従って、ここではその詳細な説明を省略する。
【００９７】
図８は、時刻ｔ１にて失火率Rmisが上記値Rmis1から上記値Rmis2に増大した場合における、時間積分値SDVoxsの変化の一例を示している。この場合、時刻ｔ１にて上記「リッチ偏移補償中心値」が上記値SDVoxs1から上記値SDVoxs2へ減少する。先ず、時刻ｔ１にて、時間積分値SDVoxsの変化速度が大きい速度（前記第１速度）に設定される。これは、時間積分値SDVoxsを、ある程度変化後の「リッチ偏移補償中心値」（即ち、上記値SDVoxs2）に迅速に近づけるためである。この変化速度が大きい速度に設定される段階をstep1と称呼する。
【００９８】
次に、step1の終了条件が成立する時刻ｔ２にて、時間積分値SDVoxsの変化速度が中程度の速度（前記第２速度）に変更される。これは、上述したＦＣ制御（及びＦＣ後リッチ制御）による外乱等による時間積分値SDVoxsの「リッチ偏移補償中心値」からのずれを抑制しつつ、時間積分値SDVoxsを精度よく「リッチ偏移補償中心値」に近づけるためである。この変化速度が中程度の速度に設定される段階をstep2と称呼する。
【００９９】
そして、step2の終了条件が成立する時刻ｔ３にて、時間積分値SDVoxsの変化速度が小さい速度（前記第３速度）に変更される。これは、時間積分値SDVoxsを「リッチ偏移補償中心値」近傍に安定して推移させるためである。この変化速度が小さい速度に設定される段階をstep3と称呼する。この段階的な変化速度の変更は、調整値K及び更新禁止回数Lが調整されることにより達成され得る。即ち、時間積分値SDVoxsの１回あたりの更新量「K・SDVoxs」が、step1,2,3にて、大、中、小程度の値にそれぞれ設定・変更される。また、ＦＣ制御からの復帰時点からの時間積分値SDVoxsの更新禁止回数Lが、step1,2,3にて、小、中、大程度の値にそれぞれ設定・変更される。
【０１００】
仮に、例えば、時間積分値SDVoxsの変化速度が一定の小さい速度に設定される場合を考える。この場合、上述した外乱等による時間積分値SDVoxsの「リッチ偏移補償中心値」からのずれが抑制されるものの、時間積分値SDVoxsが変化後の「リッチ偏移補償中心値」に近づくのに時間がかかる。一方、時間積分値SDVoxsの変化速度が一定の大きい速度に設定される場合、時間積分値SDVoxsを「リッチ偏移補償中心値」に精度よく近づけることが困難となる。
【０１０１】
これらに対し、本装置のように、３値的に時間積分値SDVoxsの変化速度を変更していくことで、迅速、且つ、精度よく時間積分値SDVoxsが「リッチ偏移補償中心値」に近づき得る。なお、本例では、step1における時間積分値SDVoxsの変化速度のみ、失火率変化ΔRmis及びリーン応答速度Vleanに基づいて設定される。
【０１０２】
（実際の作動）
次に、時間積分値SDVoxsの変化速度を設定・変更する際における本装置の実際の作動について、図９、図１０、及び図１２に示したフローチャートを参照しながら説明していく。
【０１０３】
以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。また、「stepY」は、stepをY（Y＝1,2,3）に設定した状態のstepを表すものとする。
【０１０４】
<サブＦＢ補正量の計算>
ＣＰＵ７１は、図９にフローチャートにより示したサブＦＢ補正量Vafsfbの計算を行うルーチンを、燃料が噴射される気筒（以下、「燃料噴射気筒」と称呼する。）について燃料噴射開始時期が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ９００から処理を開始し、ステップ９０５に進んで、ＦＢ制御が許可(On)されているか否かを判定する。
【０１０５】
本例では、ＦＢ制御条件は、冷却水温THWが所定温度以上であり、且つ、上流側空燃比センサ６６及び下流側空燃比センサ６７が正常であるときに成立し、ＦＢ制御が許可(On)される。また、ＦＣ制御が実行されている期間に亘ってもＦＢ制御が禁止(Off)される。ＦＢ制御がOffである場合、ＣＰＵ７１はステップ９０５にて「Ｎｏ」と判定した後、直ちにステップ９９５に進んで本ルーチンを一旦終了する。この場合、ＦＢ制御が実行されず、サブＦＢ補正量Vafsfbはゼロに設定されるとともに、時間積分値SDVoxsの更新がなされない。
【０１０６】
ＦＢ制御がOnである場合、ＣＰＵ７１はステップ９０５にて「Ｙｅｓ」と判定してステップ９１０に進んで、上記式(2)に基づいて出力偏差量DVoxsを更新するとともに、時間微分値DDVoxsも更新する。ここにおいて、時間微分値DDVoxsは、前回の本ルーチン実行時にて更新されていた出力偏差量DVoxsと、今回の出力偏差量DVoxsとの偏差を、本ルーチンの実行間隔に対応する時間で除したものである。
【０１０７】
次に、ＣＰＵ７１はステップ９１５に進んで、時間積分値SDVoxsの更新が許可(On)されているか否かを判定する。本例では、ＦＢ制御の禁止から復帰した時点から（例えば、上述したようにＦＣ制御が実行された場合ＦＣ制御終了直後から）更新禁止回数Lだけ時間積分値SDVoxsの更新が禁止される（図５を参照）。ステップ９１５にて「Ｙｅｓ」と判定される場合、ＣＰＵ７１はステップ９２０に進み上記式(4)に基づいて時間積分値SDVoxsを更新する。なお、これらのステップで用いられる更新禁止回数L、及び調整値Kは、後述するフローチャートにより設定されＲＡＭ７３に記憶されている最新値が用いられる。
【０１０８】
次いで、ＣＰＵ７１はステップ９２５に進み、上記式(3)、上述のように更新された出力偏差量DVoxs、時間微分値DDVoxs、及び時間積分値SDVoxsに基づいてサブＦＢ補正量Vafsfbを計算した後、ステップ９９５に進み本ルーチンを一旦終了する。これらのステップ９０５，９１５，９２０，９２５が前記積分項更新手段の一部に対応する。
【０１０９】
一方、ステップ９１５にて「Ｎｏ」と判定される場合、ＣＰＵ７１はステップ９２５に直ちに進んで時間積分値SDVoxsを更新することなくサブＦＢ補正量Vafsfbを計算した後、ステップ９９５に進み本ルーチンを一旦終了する。
【０１１０】
<stepの設定>
ＣＰＵ７１は、図１０にフローチャートにより示したstepの設定を行うルーチンを、燃料噴射気筒について燃料噴射開始時期が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ１０００から処理を開始し、ステップ１００５に進んで、ＦＢ制御が許可(On)されており、且つ、時間積分値SDVoxsの更新が許可(On)されているか否かを判定する。
【０１１１】
ステップ１００５にて「Ｎｏ」と判定される場合、ＣＰＵ７１はステップ１０９５に直ちに進んで本ルーチンを一旦終了する。一方、ステップ１０１０にて「Ｙｅｓ」と判定される場合、ＣＰＵ７１はステップ１０１０に進んで失火率Rmisが更新された直後であり、且つ、更新前後の失火率変化ΔRmisが第１失火率変化ΔRmis1よりも大きいか否かを判定する。
【０１１２】
本例では、失火の発生は周知の手法の一つに従って検出され、失火率Rmisは、燃料噴射が所定回数だけ行われる毎に取得・更新される。更新された失火率RmisはＲＡＭ７３に記憶されるようになっている。このように失火率Rmisを取得する手段が、前記失火頻度取得手段の一部に対応する。上記第１失火率変化ΔRmis1は、時間積分値SDVoxsの変化速度が設定され得る最小の値（本例では、step3にて設定される変化速度）である場合に、所定期間における空燃比の荒れの程度（空燃比の理論空燃比AFstoichからの偏移程度）が適正範囲内となる失火率変化ΔRmisの範囲の最大値である。
【０１１３】
ステップ１０１０にて「Ｙｅｓ」と判定される場合、ＣＰＵ７１はステップ１０１５に進んでstepを「１」に設定する（図８の時刻ｔ１を参照）。次に、ＣＰＵ７１はステップ１０２０に進んでカウンタIをクリアする。次いで、ＣＰＵ７１はステップ１０２５に進んでテーブルMapIref(ΔRmis,Vlean)に基づいてカウンタ目標値Irefを決定する。このカウンタ目標値Irefは、step1での時間積分値SDVoxsの更新回数に対応する値である。なお、ステップ１０１０，１０２５において、失火率変化ΔRmisとしては、失火率Rmisの最新値と、前回更新されていた値との差の絶対値が用いられる。また、ステップ１０２５においては、リーン応答速度Vleanの最新値が用いられる。
【０１１４】
本例では、リーン応答速度Vleanは、空燃比が理論空燃比AFstoichよりもリッチの所定のリッチ空燃比に維持されていて、且つ、上流側空燃比センサ６６の出力Vabyfsが所定のリッチ空燃比に対応する値に維持されている状態において、空燃比を所定のリーン空燃比にステップ的に切り替えた場合における上流側空燃比センサ６６の出力Vabyfsの応答を監視することで取得され得る。取得されたリーン応答速度VleanはＲＡＭ７３に更新・記憶されるようになっている。このようにリーン応答速度Vleanを取得する手段が、前記リーン応答速度取得手段の一部に対応する。
【０１１５】
具体的には、例えば、空燃比の切り替え時点から、上流側空燃比センサ６６の出力Vabyfsが所定のリーン空燃比に対応する値に近い基準値に達するまでに要する時間（時定数）が検出される。リーン応答速度Vleanは、この時間に反比例する値を出力する所定の関数に基づいて決定され得る。なお、最大酸素吸蔵量を取得するために空燃比を理論空燃比AFstoichから所定量だけリーン方向に偏移したリーン空燃比と理論空燃比AFstoichから同じ量だけリッチ方向に偏移したリッチ空燃比とに交互に切り替える制御（アクティブ空燃比制御）が広く知られている。リーン応答速度Vleanは、このアクティブ空燃比制御の実行により触媒（第１触媒５３等）の最大酸素吸蔵量が取得される毎に、併せて取得・更新されることが好適である。
【０１１６】
図１１は、失火率変化ΔRmis及びリーン応答速度Vleanと、カウンタ目標値Irefとの関係を規定したテーブルMapIref(ΔRmis,Vlean)を示している。これによれば、失火率変化ΔRmisが、第１失火率変化ΔRmis1よりも大きく、且つ、第２失火率変化ΔRmis2(＞ΔRmis1)以下である場合、カウンタ目標値Irefがゼロに設定される。カウンタ目標値Irefがゼロに設定されることは、step1での時間積分値SDVoxsの更新回数がゼロであることに対応する。即ち、この場合、実質的にstep1が省略されてstep2が開始される。これは、失火率変化ΔRmisがある程度小さい場合には、上記「リッチ偏移補償中心値」の変化度合いもある程度小さいため、時間積分値SDVoxsの変化速度を大きい速度に設定する必要性が小さいことに基づく。
【０１１７】
また、上記テーブルMapIref(ΔRmis,Vlean)によれば、失火率変化ΔRmisが上記第２失火率変化ΔRmis2よりも大きい場合、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、カウンタ目標値Irefがより大きい値に決定される。従って、この場合、失火率変化ΔRmis及びリーン応答速度Vleanの大きさに応じてstep1での時間積分値SDVoxsの更新回数が設定される。これは、失火率変化ΔRmis及びリーン応答速度Vleanに依存する上記「リッチ偏移補償中心値」の変化度合いが大きいほど、大きい変化速度をもって時間積分値SDVoxsを更新する回数をより大きくすることで、時間積分値SDVoxsが上記「リッチ偏移補償中心値」に迅速に近づき得るという観点に基づく。
【０１１８】
次に、ＣＰＵ７１はステップ１０３０に進んで、現在設定されているstepが「１」であるか否かを判定する。現時点は、上記ステップ１０１５にてstepが「１」に設定された直後であるとして説明する（図８の時刻ｔ１を参照）。従って、ＣＰＵ７１はステップ１０３０にて「Ｙｅｓ」と判定してステップ１０３５に進み、カウンタIがカウンタ目標値Irefよりも小さいか否かを判定する。
【０１１９】
現時点では、カウンタIはゼロに維持されている（ステップ１０２０を参照）。従って、ＣＰＵ７１はステップ１０３５にて「Ｙｅｓ」と判定してステップ１０４０に進み、カウンタIをインクリメントした後、ステップ１０９５に進んで本ルーチンを一旦終了する。以降、ＣＰＵ７１はステップ１００５，１０１０，１０３０，１０３５，１０４０の処理を繰り返し実行するようになる。これにより、カウンタIがインクリメントされていく。
【０１２０】
カウンタIがカウンタ目標値Irefに達する時刻が到来すると、上記処理を繰り返していたＣＰＵ７１はステップ１０３５に進んだとき「Ｎｏ」と判定してステップ１０４５に進んで、stepを「１」から「２」へ設定・変更する（図８の時刻ｔ２を参照）。これ以降、ステップ１０１０にて「Ｙｅｓ」と判定されない場合には、ＣＰＵ７１はステップ１０３０に進んだとき「Ｎｏ」と判定してステップ１０５０に進み、現在設定されているstepが「２」であるか否かを判定する。
【０１２１】
現時点では、stepが「２」に設定されているので、ＣＰＵ７１はステップ１０５０にて「Ｙｅｓ」と判定してステップ１０５５に進み、所定期間における時間積分値SDVoxsの変動幅（即ち、時間積分値SDVoxsの減量方向のピーク値から増量方向のピーク値までの最大幅）ΔSDVoxsが所定変動幅Zよりも大きいか否かを判定する。現時点では、「ΔSDVoxs＞Ｚ」であるとして説明する。従って、ＣＰＵ７１はステップ１０５５にて「Ｙｅｓ」と判定した後、ステップ１０９５に進んで本ルーチンを一旦終了する。以降、ＣＰＵ７１はステップ１００５，１０１０，１０３０，１０５０，１０５５の処理を繰り返し実行するようになる。
【０１２２】
上記変動幅ΔSDVoxsが上記所定変動幅Z以下となる時刻が到来すると、上記処理を繰り返していたＣＰＵ７１はステップ１０５５に進んだとき「Ｎｏ」と判定してステップ１０６０に進んで、stepを「２」から「３」へ設定・変更する（図８の時刻ｔ３を参照）。これ以降、ステップ１０１０にて「Ｙｅｓ」と判定されない場合には、ＣＰＵ７１はステップ１０５０に進んだとき「Ｎｏ」と判定してステップ１０６５に進み、上記変動幅ΔSDVoxsが上記所定変動幅Z以下であるか否かを判定する。
【０１２３】
「ΔSDVoxs≦Ｚ」である場合、ＣＰＵ７１はステップ１０６５にて「Ｙｅｓ」と判定した後、ステップ１０９５に進んで本ルーチンを一旦終了する。以降、ステップ１０１０にて「Ｙｅｓ」と判定されず、且つ、ステップ１０６５にて「Ｎｏ」と判定されない限り、ＣＰＵ７１はステップ１００５，１０１０，１０３０，１０５０，１０６５の処理を繰り返し実行するようになる。一方、「ΔSDVoxs＞Ｚ」となった場合には、上記処理を繰り返していたＣＰＵ７１はステップ１０６５に進んだとき「Ｎｏ」と判定してステップ１０７０に進み、stepを「３」から「２」へ設定・変更する。なお、stepの値は、上述のように設定・変更される毎にＲＡＭ７３にて更新・記憶されるようになっている。
【０１２４】
<調整値及び更新禁止回数の設定>
ＣＰＵ７１は、図１２にフローチャートにより示した調整値K、及び更新禁止回数Lの設定を行うルーチンを、燃料噴射気筒について燃料噴射開始時期が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ１２００から処理を開始し、ステップ１２０５に進んで、stepが更新された直後であるか否かを判定する。
【０１２５】
stepが更新された直後でない場合、ＣＰＵ７１はステップ１２０５にて「Ｎｏ」と判定してステップ１２９５に直ちに進んで本ルーチンを一旦終了する。ステップ１２０５にて「Ｙｅｓ」と判定されない限り、ＣＰＵ７１はこの処理を繰り返し実行する。
【０１２６】
stepの値が更新された直後にＣＰＵ７１がステップ１２０５に進んだとき、ステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、テーブルMapK(step,ΔRmis,Vlean)に基づいて調整値Kを決定する。次に、ＣＰＵ７１はステップ１２１５に進んで、テーブルMapL(step,ΔRmis,Vlean)に基づいて更新禁止回数Lを決定した後、ステップ１２９５に進んで本ルーチンを一旦終了する。なお、ステップ１２１０，１２１５において、step、及びリーン応答速度Vleanは最新値が用いられる。また、失火率変化ΔRmisとしては、失火率Rmisの最新値と、前回更新されていた値との差の絶対値が用いられる。
【０１２７】
図１３及び図１４は、設定されているstepの値、失火率変化ΔRmis、及びリーン応答速度Vleanと、調整値Kとの関係を規定したテーブルMapK(step,ΔRmis,Vlean)を示している。これによれば、stepが「１」である場合、図１３に示したように失火率変化ΔRmis大きいほど、リーン応答速度Vleanが大きいほど、調整値Kがより大きい値に決定される。なお、stepが「１」であって、失火率変化ΔRmisがゼロである場合には、調整値Kは値K1に設定される。調整値Kが大きいということは、時間積分値SDVoxsの１回あたりの更新量、即ち、時間積分値SDVoxsの変化速度が大きいということを意味する。
【０１２８】
stepが「２」、又は「３」である場合、図１４に示したように、失火率変化ΔRmis、及びリーン応答速度Vleanにかかわらず調整値Kが値K2（＜上記値K1）、又は値K3（＜上記値K2）にそれぞれ決定される。
【０１２９】
図１５及び図１６は、設定されているstepの値、失火率変化ΔRmis、及びリーン応答速度Vleanと、更新禁止回数Lとの関係を規定したテーブルMapL(step,ΔRmis,Vlean)を示している。これによれば、stepが「１」である場合、図１５に示したように失火率変化ΔRmis大きいほど、リーン応答速度Vleanが大きいほど、更新禁止回数Lがより小さい値に決定される。なお、stepが「１」であって、失火率変化ΔRmisがゼロである場合には、更新禁止回数Lは値L1に設定される。更新禁止回数Lが小さいということは、時間積分値SDVoxsの更新回数が大きく、即ち、時間積分値SDVoxsの変化速度が大きいということを意味する。
【０１３０】
stepが「２」、又は「３」である場合、図１６に示したように、失火率変化ΔRmis、及びリーン応答速度Vleanにかかわらず更新禁止回数Lが値L2（＞上記値L1）、又は値L3（＞上記値L2）にそれぞれ決定される。このように、失火率変化ΔRmis、及びリーン応答速度Vleanに応じてstep1における時間積分値SDVoxsの変化速度が設定される。
【０１３１】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第１実施形態によれば、失火率変化ΔRmisが第１失火率変化ΔRmis1よりも大きいと判定された場合、ストイキ失火に起因して発生し得る「平均排気空燃比のリッチ偏移」を補償するための、積分項Ki・SDVoxs（時間積分値SDVoxs）の「リッチ偏移補償中心値」の変化度合いも大きいとして、step1,step2,step3の３段階に分けて時間積分値SDVoxsの変化速度が設定・変更される。
【０１３２】
３段階のうち変化速度が最も大きいstep1では、失火率変化ΔRmisが大きいほど、上流側空燃比センサ６６のリーン応答速度Vleanが大きいほど、時間積分値SDVoxsの変化速度がより大きい速度に設定される。ここで、上記「リッチ偏移補償中心値」の変化度合いは、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、より大きくなる。
【０１３３】
上述のように時間積分値SDVoxsの変化速度が設定されることで、上記「リッチ偏移補償中心値」の変化度合いが大きい場合であっても、時間積分値SDVoxsを上記「リッチ偏移補償中心値」に迅速に近づけることができる。また、上記「リッチ偏移補償中心値」の変化度合いが小さい場合には、不必要に時間積分値SDVoxsの変化速度が大きく設定されることが回避され空燃比の荒れが抑制され得る。このように、失火率変化ΔRmis及びリーン応答速度Vleanに依存する「リッチ偏移補償中心値」の変化度合いを考慮しながら、時間積分値SDVoxsを上記「リッチ偏移補償中心値」に適切に近づけることができる。
【０１３４】
本発明は上記第１実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１実施形態においては、step1の段階のみにて、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、時間積分値SDVoxsの変化速度がより大きい速度に設定されているが、これに代えて、setp1,step2,step3の全ての段階にて、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど、時間積分値SDVoxsの変化速度がより大きい速度に設定されてもよい。
【０１３５】
また、上記第１実施形態においては、失火率変化ΔRmisが第１失火率変化ΔRmis1よりも大きいと判定された場合、step1,step2,step3の３段階に分けて時間積分値SDVoxsの変化速度が設定・変更されているが、これに代えて、このような３段階の変化速度の変更を実行せず、失火率Rmisが取得・更新される毎に、失火率変化ΔRmisが大きいほど、リーン応答速度Vleanが大きいほど時間積分値SDVoxsの変化速度がより大きい速度に設定・変更されてもよい。
【０１３６】
また、このように３段階の変化速度の変更を実行しない場合、失火率Rmisが取得・更新される毎に、失火率Rmisそのものが大きいほど、リーン応答速度Vleanが大きいほど時間積分値SDVoxsの変化速度がより大きい速度に設定・変更されてもよい。より具体的には、図１７にグラフにより示したテーブルMapK(Rmis,Vlean)に基づいて、失火率Rmisが大きいほど、リーン応答速度Vleanが大きいほど調整値Kがより大きい値に設定される。また、図１８にグラフにより示したテーブルMapL(Rmis,Vlean)に基づいて、失火率Rmisが大きいほど、リーン応答速度Vleanが大きいほど更新禁止回数Lがより小さい値に設定される。なお、失火率Rmisがゼロである場合、調整値K、及び更新禁止回数Lは、値K1、及び値L1に設定される。これによっても、時間積分値SDVoxsを「リッチ偏移補償中心値」に適切に近づけることができる。
【０１３７】
また、上記第１実施形態においては、step1における時間積分値SDVoxsの変化速度、及びstep1での時間積分値SDVoxsの更新回数が、失火率変化ΔRmis及びリーン応答速度Vleanに基づいて設定されているが、これに代えて、step1における時間積分値SDVoxsの変化速度が、失火率Rmisが大きいほど、リーン応答速度Vleanが大きいほどより大きい速度に設定され、step1での時間積分値SDVoxsの更新回数が、失火率Rmisが大きいほど、リーン応答速度Vleanが大きいほどより大きい値に設定されてもよい。
【０１３８】
加えて、上記第１実施形態においては、step1において積分項Ki・SDVoxsの積分ゲインKiが一定値（値Ki1）に設定され、失火率変化ΔRmis、及びリーン応答速度Vleanに基づいて調整値Kが設定されているが、これに代えて、調整値Kが一定値に設定され、失火率変化ΔRmis、及びリーン応答速度Vleanに基づいて積分ゲインKiが設定されてもよい。
【０１３９】
（第２実施形態）
次に、本発明の第２実施形態に係る空燃比制御装置について説明する。第２実施形態では、インジェクタ３９の異常により空燃比がリーン空燃比方向の可燃限界を逸脱して発生する失火（以下、「リーン失火」と称呼する。）が発生したと判定された場合、リーン失火が発生していない場合に比してメインＦＢ補正量の変化速度を大きい速度に設定する点においてのみ、上記第１実施形態と異なる。以下、このようにＦＢ制御を実行する理由について、図１９を参照しながら説明する。
【０１４０】
図１９は、上流側目標空燃比abyfrが理論空燃比AFstoichに設定されていて、且つ、リーン失火が繰り返し発生している場合における、検出空燃比、第１触媒５３上流の実排気空燃比、メインＦＢ補正量DFBの比例ゲインGp（及び積分ゲインGi）（上記(6)式を参照）、及びメインＦＢ補正量DFBの変化の一例を示している。
【０１４１】
図１９に示すように、リーン失火が発生する毎に、実排気空燃比がリーン方向の極大値に推移する。これに伴って、リーン失火発生のタイミングから上述した無駄時間Ｔだけ遅れて、検出空燃比が理論空燃比AFstoichに対してリーン方向に偏移する。この検出空燃比のリーン方向への偏移に応じて、メインＦＢ補正量DFBはリーン失火が発生する毎に「０」に対して増量方向に偏移する。
【０１４２】
ここで、メインＦＢ補正量DFBの比例ゲインGp及び積分ゲインGiが、上記値Gp1及び上記値Gi1に設定されているものとして説明を続ける（図１９の破線を参照）。メインＦＢ補正量DFBの増量方向への偏移に応じて、実排気空燃比は、リーン方向の極大値に推移した後に理論空燃比AFstoichに対してある程度リッチ方向に偏移する。このリッチ方向への偏移程度（ピーク値）は、リーン失火の発生に起因するリーン方向の偏移程度（ピーク値）に比して、極めて小さいものとなる。
【０１４３】
このため、リーン失火が繰り返し発生すると、第１触媒５３上流の平均排気空燃比が理論空燃比AFstoichに対してリーン方向に偏移する。この結果、第１触媒５３の酸素吸蔵量OSAが平均的に増大していく。他方、三元触媒においては、窒素酸化物ＮＯｘを適切に浄化する観点から、酸素吸蔵量が平均的に最大酸素吸蔵量の半分よりも小さい値に推移することが好ましい。以上のことから、リーン失火が発生した場合であっても、第１触媒５３上流の平均排気空燃比が理論空燃比AFstoichに近づくように制御されることが好ましい。
【０１４４】
従って、第２実施形態では、リーン失火が発生したと判定された場合、メインＦＢ補正量の比例ゲインGp及び積分ゲインGiが、値Gp1から値Gp2（＞値Gp1）及び値Gi1から値Gi2（＞値Gi1）にそれぞれ設定・変更され、所定期間に亘って値Gp2及び値Gi2に維持される。即ち、リーン失火が発生したと判定された場合、検出空燃比が理論空燃比よりもリーンである場合における燃料噴射量を増量させる方向へのメインＦＢ補正量の変化速度（増大速度）が、リーン失火が発生したと判定されていない場合における速度よりも大きい速度に設定・変更される。
【０１４５】
これにより、「Gp＝Gp1」及び「Gi＝Gi1」である場合に比して、メインＦＢ補正量DFBの増量方向への偏移程度が大きくなる（図１９の実線、及び斜線にて示される部分を参照）。これに伴って、実排気空燃比がリーン方向の極大値に推移した後に、理論空燃比AFstoichに対してリッチ方向に偏移する程度も大きくなる。この結果、平均排気空燃比が理論空燃比AFstoichに近づき得る。以上が、リーン失火が発生したと判定された場合、リーン失火が発生していない場合に比してメインＦＢ補正量の変化速度を大きい速度に設定する理由である。
【０１４６】
第２実施形態は、上述のようにＦＢ制御する点においてのみ上記第１実施形態と異なる。この相違点に基づき、第２実施形態のＣＰＵ７１は、図２０にフローチャートにより示したメインＦＢ補正量DFBの計算を行なうルーチンを実行する。以下、第２実施形態に特有の図２０に示したルーチンについて説明する。
【０１４７】
第２実施形態のＣＰＵ７１は、図２０に示したルーチンを、燃料噴射気筒について燃料噴射開始時期が到来する毎に繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１はステップ２０００から処理を開始し、ステップ２００５に進んで、ＦＢ制御が許可（On）されているか否かを判定する。
【０１４８】
ＦＢ制御が禁止(Off)されている場合、ＣＰＵ７１はステップ２００５にて「Ｎｏ」と判定した後、直ちにステップ２０９５に進んで本ルーチンを一旦終了する。この場合、ＦＢ制御が実行されず、メインＦＢ補正量DFBはゼロに設定される。
【０１４９】
ＦＢ制御がOnである場合、ＣＰＵ７１はステップ２００５にて「Ｙｅｓ」と判定してステップ２０１０に進んで、テーブルMapabyfs(Vabyfs+Vafsfb)に基づいて制御用空燃比abyfsを決定する（図２を参照）。次に、ＣＰＵ７１はステップ２０１５に進んで、上記式(5)に基づいて空燃比偏差DAFを更新する。このステップ２０１５では、ステップ２０１０にて決定された制御用空燃比abyfs(k)（の最新値）と、ＲＡＭ７３に記憶されている現時点からＮストローク前の上流側目標空燃比abyfr(k-N)とが用いられる。
【０１５０】
次いで、ＣＰＵ７１はステップ２０２０に進み、ゲイン増大条件が成立中であるか否かを判定する。本例では、「ゲイン増大条件」は、リーン失火が発生したと判定されてから上記無駄時間Ｔが経過した時点から、上流側空燃比センサ６６の出力Vabyfsがリーンを示す値からリッチを示す値へ変化したと判定された時点までの期間に亘ってのみ成立する。
【０１５１】
リーン失火が発生したか否かの判定は、例えば、以下のように実行され得る。インジェクタ３９が、インジェクタ３９内のソレノイドコイルへの給電により噴孔が開弁されるように構成されている場合、上記給電に係る電流値（又は、電圧値）を監視する。インジェクタ３９の開弁状態における上記電流値が基準値から大きく乖離する状態が発生した場合、開弁状態における噴孔の開口断面積が微小（或いは、ゼロ）であるとして、リーン失火が発生したと判定される。このようにリーン失火が発生したか否かを判定する手段が、前記リーン失火判定手段の一部に対応する。
【０１５２】
上記「ゲイン増大条件」が成立中でない場合、ＣＰＵ７１はステップ２０２０にて「Ｎｏ」と判定してステップ２０２５に進み、メインＦＢ補正量DFBの比例ゲインGp、及び積分ゲインGiを、上記値Gp1、及び上記値Gi1にそれぞれ設定する。一方、上記「ゲイン増大条件」が成立中である場合、ＣＰＵ７１はステップ２０２０にて「Ｙｅｓ」と判定してステップ２０３０に進み、メインＦＢ補正量DFBの比例ゲインGp、及び積分ゲインGiを、上記値Gp2（＞値Gp1）、及び上記値Gi2（＞値Gi1）にそれぞれ設定する。
【０１５３】
このように、ゲイン増大条件が成立中である場合にのみ、メインＦＢ補正量DFBの比例ゲインGp、及び積分ゲインGiが大きい値に設定される。これにより、メインＦＢ補正量DFBの変化速度が不必要に大きい値に設定される機会が小さくされ得る。この結果、例えば、メインＦＢ補正量DFBの変化速度が常時大きい速度に設定される場合に比して、空燃比の荒れが抑制され得る。
【０１５４】
続いて、ＣＰＵ７１はステップ２０３５に進んで、上記ステップ２０２５，２０３０のうち何れかにて設定された比例ゲインGp、及び積分ゲインGiと、上記(6)式とに基づいて、メインＦＢ補正量DFBを計算した後、ステップ２０９５に進んで本ルーチンを一旦終了する。
【０１５５】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第２実施形態によれば、インジェクタ３９の異常によりリーン失火が発生したと判定された場合、メインＦＢ補正量の比例ゲインGp及び積分ゲインGi（即ち、メインＦＢ補正量の変化速度）が、空燃比が理論空燃比AFstoichよりもリッチな空燃比となるための大きい値に設定される。これにより、リーン失火の発生に起因して実排気空燃比がリーン方向の極大値に推移した後に、実排気空燃比は理論空燃比AFstoichに対してリッチ方向に大きく偏移し得る。この結果、リーン失火が発生する場合であっても、平均排気空燃比を理論空燃比AFstoichに近づけることができる。
【０１５６】
本発明は上記第２実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第２実施形態においては、リーン失火が発生したと判定された場合、メインＦＢ補正量のゲインが、リーン失火が発生したと判定されていない場合に比して大きい値に設定されているが、これに代えて、リーン失火が発生したと判定された場合、上記ゲイン増大条件が成立する期間に対応する期間に亘って、上流側目標空燃比abyfrを理論空燃比AFstoichよりもリッチな空燃比に設定してもよい。
【０１５７】
加えて、ストイキ失火が発生する場合においては、サブＦＢ補正量Vafsfbの時間積分値SDVoxsに係る調整値K及び更新禁止回数Lを一定として、目標空燃比に相当する下流側目標値Voxsrefが、ストイキ失火の発生頻度またはストイキ失火の発生頻度の変化度合いが大きいほど、及び／又はリーン応答速度が大きいほど、目標空燃比がよりリーンな空燃比となる値に設定されてもよい。例えば、図２１に示すように、失火率Rmisが大きいほど、リーン応答速度Vleanが大きいほど、下流側目標値Voxsrefがより小さい値に設定される。なお、失火率Rmisがゼロである場合、理論空燃比AFstoichに対応する値「０．５」に設定される。これによれば、ストイキ失火の発生に起因する「平均排気空燃比のリッチ偏移」の程度に影響を与える失火率Rmis及びリーン応答速度Vleanを考慮しながら、平均空燃比を理論空燃比AFstoichに適切に近づけることができる。
【図面の簡単な説明】
【０１５８】
【図１】本発明の第１実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】図１に示した空燃比制御装置が空燃比制御を実行する際の機能ブロック図である。
【図５】フューエルカット制御、及びフューエルカット後リッチ制御が実行される場合における、各種変数の変化の一例を示した図である。
【図６】目標空燃比が理論空燃比に設定されており、リーン応答速度が一定であり、且つ、点火装置の異常に起因する失火が繰り返し発生している場合における、検出空燃比、触媒上流の実排気空燃比、及びメインＦＢ補正量の変化の一例を示した図である。
【図７】失火率変化が一定であり、且つ、リーン応答速度が変化する場合における、検出空燃比、触媒上流の実排気空燃比、及びメインＦＢ補正量の変化の一例を示した図である。
【図８】失火率が変化した場合において、サブＦＢ補正量の時間積分値の変化速度を変更していく態様を説明するための図である。
【図９】図１に示したＣＰＵが実行する、サブＦＢ補正量の計算を行うためのルーチンを示したフローチャートである。
【図１０】図１に示したＣＰＵが実行する、stepの設定を行うためのルーチンを示したフローチャートである。
【図１１】図１に示したＣＰＵが参照する、失火率変化及びリーン応答速度と、step1の更新回数に相当するカウンタ目標値との関係を規定するテーブルを表すグラフである。
【図１２】図１に示したＣＰＵが実行する、時間積分値の１回あたりの更新量を調整する調整値、及び時間積分値の更新禁止回数の設定を行うためのルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵが参照する、step1時における失火率変化及びリーン応答速度と、調整値との関係を規定するテーブルを表すグラフである。
【図１４】図１に示したＣＰＵが参照する、ste2,3時における失火率変化及びリーン応答速度と、調整値との関係を規定するテーブルを表すグラフである。
【図１５】図１に示したＣＰＵが参照する、step1時における失火率変化及びリーン応答速度と、更新禁止回数との関係を規定するテーブルを表すグラフである。
【図１６】図１に示したＣＰＵが参照する、ste2,3時における失火率変化及びリーン応答速度と、更新禁止回数との関係を規定するテーブルを表すグラフである。
【図１７】本発明の第１実施形態の変形例に係る空燃比制御装置のＣＰＵが参照する、失火率及びリーン応答速度と、調整値との関係を規定するテーブルを表すグラフである。
【図１８】本発明の第１実施形態の変形例に係る空燃比制御装置のＣＰＵが参照する、失火率及びリーン応答速度と、更新禁止回数との関係を規定するテーブルを表すグラフである。
【図１９】目標空燃比が理論空燃比に設定されていて、且つ、インジェクタの異常により空燃比がリーン空燃比方向の可燃限界を逸脱して発生する失火が繰り返し発生している場合における、検出空燃比、触媒上流の実排気空燃比、メインＦＢ補正量のゲイン、及びメインＦＢ補正量の変化の一例を示した図である。
【図２０】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行する、メインＦＢ補正量の計算を行うためのルーチンを示したフローチャートである。
【図２１】目標空燃比に相当する下流側目標値を変更する場合における、失火率及びリーン応答速度と、下流側目標値との関係を規定するテーブルを表すグラフである。
【符号の説明】
【０１５９】
１０…内燃機関、２５…燃焼室、３７…点火プラグ、３９…インジェクタ、５３…三元触媒（第１触媒）、６１…エアフローメータ、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ
【図１】
2009197683.tif 000003
【図２】
2009197683.tif 000004
【図３】
2009197683.tif 000005
【図４】
2009197683.tif 000006
【図５】
2009197683.tif 000007
【図６】
2009197683.tif 000008
【図７】
2009197683.tif 000009
【図８】
2009197683.tif 000010
【図９】
2009197683.tif 000011
【図１０】
2009197683.tif 000012
【図１１】
2009197683.tif 000013
【図１２】
2009197683.tif 000014
【図１３】
2009197683.tif 000015
【図１４】
2009197683.tif 000016
【図１５】
2009197683.tif 000017
【図１６】
2009197683.tif 000018
【図１７】
2009197683.tif 000019
【図１８】
2009197683.tif 000020
【図１９】
2009197683.tif 000021
【図２０】
2009197683.tif 000022
【図２１】
2009197683.tif 000023