(57)【要約】      （修正有）【課題】機関の運転状態が過渡運転状態となったこと等に起因して下流側空燃比センサの出力値がリッチとなったとき、空燃比のフィードバック制御と触媒の反応とに起因して空燃比を更にリッチに設定することを防止する。【解決手段】空燃比制御装置は、下流側空燃比センサ５６の出力値Voxsがリッチ判定閾値以上となったときに触媒４３に流入するガスがリーン空燃比となり、且つ、出力値Voxsがリーン判定閾値以下となったとき触媒流入ガスがリッチ空燃比となるように空燃比のフィードバック制御を行う。更に、上流側空燃比が所定値以下となり、且つ、その後に取得される下流側空燃比センサ５６の出力値Voxsの極大値がある範囲内の値であるとき、下流側空燃比センサ５６の出力値Voxsが「触媒４３の状態が酸素過剰状態となる前」に低下すると予測し、酸素過剰状態であると判定するためのリーン判定閾値を通常値よりも小さくする。【選択図】図１
2012163080.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された三元触媒と、
前記排気通路の前記三元触媒よりも下流に配設された濃淡電池型の酸素濃度センサである下流側空燃比センサと、
前記下流側空燃比センサの出力値に基づいて前記三元触媒に流入するガスである触媒流入ガスの空燃比を変更するように前記機関に供給される混合気の空燃比をフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記空燃比制御手段は、
前記三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かを前記機関の運転状態を示すパラメータに基づいて判定する判定手段と、
前記下流側空燃比センサの出力値の極大値を取得する極大値取得手段と、
前記一酸化炭素漏出状態となったと判定された後に前記極大値取得手段により最初に取得された極大値が、前記下流側空燃比センサの出力値の最大値よりも第１所定値だけ小さい高側閾値と、前記高側閾値よりも第２所定値だけ小さい低側閾値と、の間の値であったとき、前記最初に取得された極大値の発生時点から所定の条件が成立する時点までの特定期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均が、前記特定期間以外の期間において前記下流側空燃比センサの出力値が前記特定期間の下流側空燃比センサの出力値と同じであったとした場合に同特定期間以外の期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均よりも大きくなるように、前記空燃比のフィードバック制御を変更する制御変更手段と、
を含む空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記判定手段は、
前記排気通路の前記三元触媒よりも上流に配設された上流側空燃比センサを含み、
前記上流側空燃比センサの出力値に基づいて検出された上流側空燃比が理論空燃比よりも小さい所定の空燃比以下となったとき、前記一酸化炭素漏出状態となったと判定するように構成された空燃比制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置において、
前記空燃比制御手段は、
前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比であるリーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比であるリッチ空燃比となるように、前記空燃比のフィードバック制御を行うように構成され、
前記制御変更手段は、
前記特定期間の開始後において前記リーン判定閾値を前記特定期間以外の期間における値よりも小さい値に設定するように構成された空燃比制御装置。
【請求項４】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置において、
前記空燃比制御手段は、
前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比である第１リーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比である第１リッチ空燃比となるように、前記空燃比フィードバック制御を行うように構成され、
前記制御変更手段は、
前記特定期間において前記下流側空燃比センサの出力値が前記リーン判定閾値以下となったとき、前記触媒流入ガスの空燃比が前記第１リッチ空燃比よりも大きく且つ理論空燃比よりも小さい空燃比である第２リッチ空燃比になるように前記空燃比のフィードバック制御を変更するように構成された空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に三元触媒を備えた内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、内燃機関から排出される排ガスを浄化するために同機関の排気通路に三元触媒が配設されている。三元触媒は、周知のように、その三元触媒に流入するガス（触媒流入ガス）に過剰の酸素が含まれているときその酸素を吸蔵するとともにＮＯｘを浄化する。三元触媒は、触媒流入ガスに過剰な未燃物が含まれているとき、吸蔵している酸素を放出して未燃物を浄化する。以下、三元触媒は単に「触媒」とも称呼される。
【０００３】
従来の空燃比制御装置（従来装置）は、機関の排気通路であって触媒の下流に配設された下流側空燃比センサを備える。従来装置は、その下流側空燃比センサの出力値に基づいて、触媒の状態（触媒の酸素吸蔵状態）を実質的に判定し、その判定した触媒の状態に基づいて触媒流入ガスの空燃比を変更する。
【０００４】
より具体的に述べると、下流側空燃比センサは図３に示した出力値Voxsを出力する。下流側空燃比センサは濃淡電池型の酸素濃度センサとも称呼される。
【０００５】
この下流側空燃比センサの出力値Voxsは、触媒から流出するガス（以下、「触媒流出ガス」とも称呼される。）の空燃比が理論空燃比よりも小さい場合（理論空燃比よりもリッチ側の空燃比である場合）、即ち、触媒流出ガスに過剰な酸素が含まれていない場合、最大値Vmax又は最大値Vmax近傍の値となる。この場合、触媒の状態は、酸素不足状態である（触媒内に酸素が殆ど吸蔵されていない）と判断することができる。従って、この場合、触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比（リーン空燃比）となるように、即ち、触媒に過剰な酸素が流入するように、機関に供給される混合気の空燃比（機関の空燃比）を制御すべきである。
【０００６】
一方、下流側空燃比センサの出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりも大きい場合（理論空燃比よりもリーン側の空燃比である場合）、即ち、触媒流出ガスに過剰の酸素が含まれている場合、最小値Vmin又は最小値Vmin近傍の値となる。この場合、触媒の状態は、酸素過剰状態である（触媒内に吸蔵されている酸素の量が、最大酸素吸蔵量Ｃmaxに近い）と判断することができる。従って、この場合、触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比（リッチ空燃比）となるように、即ち、触媒に過剰な未燃物が流入するように、機関の空燃比を制御すべきである。
【０００７】
そこで、従来装置は、出力値Voxsが「最大値Vmaxと最小値Vminとの平均値（中央の値）である中央値Vmid＝（Vmax＋Vmin）／２に設定された下流側目標値Voxsref」に一致するように空燃比のフィードバック量を比例・積分制御（ＰＩ制御）等に基づいて算出する。この空燃比のフィードバック量は、便宜上「サブフィードバック量」とも称呼される。従来装置は、「理論空燃比を得るための基本燃料噴射量又は触媒流入ガスの目標空燃比」を「サブフィードバック量」により補正することにより、機関に供給される混合気の空燃比をフィードバック制御し、以って、触媒流入ガスの空燃比を制御している（特許文献１及び特許文献２を参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−１５５４０１号公報
【特許文献２】特開平８−１５８９１５号公報
【発明の概要】
【０００９】
ところで、酸素濃度センサである下流側空燃比センサの出力値Voxsは、その大きさに依存して３つの状態に分けることができる。３つの状態のうちの一つは、出力値Voxsが、最大値Vmaxに近い値（最大値Vmaxから第１値を減じた値よりも大きい値であり、例えば、０．８Ｖ以上の値）となっている状態である。この場合、酸素濃度センサが有する「触媒層及び／又は拡散層」は実質的に還元状態にある。つまり、この場合、触媒から十分な量の還元成分（未燃物）が流出していると考えることができ、従って、触媒は酸素不足状態（リッチ状態）にあると判定することができる。
【００１０】
３つの状態のうちの他の一つは、出力値Voxsが、最小値Vminに近い値（最小値Vminに第２値を加えた値より小さい値であり、例えば、０．４Ｖ以下の値）となっている状態である。この場合、酸素濃度センサが有する「触媒層及び／又は拡散層」は実質的に酸化状態にある。つまり、この場合、触媒から十分な量の酸素が流出していると考えることができ、従って、触媒は酸素過剰状態（リーン状態）にあると判定することができる。
【００１１】
３つの状態のうちの残りの一つは、出力値Voxsが、最大値Vmaxにも近くなく且つ最小値Vminにも近くない値（最大値Vmaxから第１値を減じた値と、最小値Vminに第２値を加えた値と、の間の値であり、例えば、０．４Ｖ〜０．８Ｖの値）となっている状態である。この場合、出力値Voxsの履歴により、触媒の状態が酸素不足状態であったり酸素過剰状態であったりする。
【００１２】
このため、従来装置のように、下流側空燃比センサの出力値Voxsが中央値Vmid以上である場合に触媒の状態が酸素不足状態（リッチ状態）であるとみなして触媒流入ガスの空燃比をリーン空燃比に設定し、出力値Voxsが中央値Vmid未満である場合に触媒の状態が酸素過剰状態（リーン状態）であるとみなして触媒流入ガスの空燃比をリッチ空燃比に設定すると、触媒流入ガスの空燃比が触媒に要求される空燃比と必ずしも一致しないためにエミッションが悪化する場合がある。
【００１３】
特に、機関の運転状態が過渡運転状態となったこと等に起因して機関の空燃比が一時的に過度にリッチ側の空燃比となる場合（触媒に一時的に過小な空燃比の排ガスが流入する場合）、一酸化炭素（ＣＯ）が触媒を吹き抜ける場合がある。この場合、一酸化炭素が下流側空燃比センサの「触媒層及び／又は拡散層」に吸着され、その「触媒層及び／又は拡散層」は弱い還元状態となる場合がある。
【００１４】
このとき、下流側空燃比センサの出力値Voxsは中央値Vmidよりも大きくなる。よって、従来装置は触媒の状態が酸素不足状態（リッチ状態）であると判定し、触媒流入ガスの空燃比をリーン空燃比に設定する。これにより、触媒から一酸化炭素が流出してこなくなるので、「触媒層及び／又は拡散層」に吸着されていた一酸化炭素は「触媒層及び／又は拡散層」から離脱する。この結果、下流側空燃比センサの出力値Voxsは、最小値Vminに向けて変化する。このため、従来装置は、触媒の状態は実際には未だ酸素過剰状態（リーン状態）には至っていないにも拘わらず、触媒の状態が酸素過剰状態（リーン状態）となったと誤判定し、触媒流入ガスの空燃比をリッチ空燃比に設定する。その結果、過剰な一酸化炭素が触媒に流入し、一酸化炭素が触媒にて浄化されることなく排出される（エミッションが悪化する）。
【００１５】
本発明の内燃機関の空燃比制御装置は、上述した課題に対処するためになされたものであって、
内燃機関の排気通路に配設された三元触媒と、
前記排気通路の前記三元触媒よりも下流に配設された濃淡電池型の酸素濃度センサである下流側空燃比センサと、
前記下流側空燃比センサの出力値に基づいて前記三元触媒に流入するガスである触媒流入ガスの空燃比を変更するように前記機関に供給される混合気の空燃比をフィードバック制御する空燃比制御手段と、
を備える。
【００１６】
更に、前記空燃比制御手段は、
前記三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かを前記機関の運転状態を示すパラメータに基づいて判定する判定手段と、
前記下流側空燃比センサの出力値の極大値を取得する極大値取得手段と、
前記一酸化炭素漏出状態となったと判定された後に前記極大値取得手段により最初に取得された極大値が、
前記下流側空燃比センサの出力値の最大値よりも第１所定値だけ小さい高側閾値と、
前記高側閾値よりも第２所定値だけ小さい低側閾値と、
の間の値であったとき、
「前記最初に取得された極大値の発生時点から所定の条件が成立する時点までの特定期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均」が、「前記特定期間以外の期間において前記下流側空燃比センサの出力値が前記特定期間の下流側空燃比センサの出力値と同じであったとした場合に同特定期間以外の期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均」よりも大きくなるように、前記空燃比のフィードバック制御を変更する制御変更手段と、
を含む。
【００１７】
より具体的に述べると、本発明の態様の一つにおいて、
前記判定手段は、
前記排気通路の前記三元触媒よりも上流に配設された上流側空燃比センサを含み、
前記上流側空燃比センサの出力値に基づいて検出された上流側空燃比が理論空燃比よりも小さい所定の空燃比以下となったとき、前記一酸化炭素漏出状態となったと判定するように構成される。
【００１８】
更に、本発明の態様の一つにおいて、
前記空燃比制御手段は、
前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比であるリーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比であるリッチ空燃比となるように、前記空燃比のフィードバック制御を行うように構成され、
前記制御変更手段は、
前記特定期間の開始後において前記リーン判定閾値を前記特定期間以外の期間における値よりも小さい値に設定するように構成される。
【００１９】
更に、本発明の態様の一つにおいて、
前記空燃比制御手段は、
前記下流側空燃比センサの出力値がリッチ判定閾値以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比である第１リーン空燃比となり、且つ、前記下流側空燃比センサの出力値が前記リッチ判定閾値以下のリーン判定閾値以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比である第１リッチ空燃比となるように、前記空燃比フィードバック制御を行うように構成され、
前記制御変更手段は、
前記特定期間において前記下流側空燃比センサの出力値が前記リーン判定閾値以下となったとき、前記触媒流入ガスの空燃比が前記第１リッチ空燃比よりも大きく且つ理論空燃比よりも小さい空燃比である第２リッチ空燃比になるように前記空燃比のフィードバック制御を変更するように構成される。
【００２０】
これによれば、機関の運転状態を示すパラメータに基づいて、前記三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かが判定される。例えば、前記機関の運転状態を示すパラメータは上流側空燃比センサの出力値であってもよい。その場合、上流側空燃比センサの出力値に基づいて検出された上流側空燃比が、理論空燃比よりも小さい所定空燃比（例えば、「リッチ空燃比に設定された上流側の目標空燃比」よりも所定空燃比だけ小さい空燃比）以下になる場合、一酸化炭素漏出状態となったと判定される。
【００２１】
更に、一酸化炭素漏出状態となったと判定された後に「前記極大値取得手段により最初に取得された下流側空燃比センサの出力値の極大値」が、「上記高側閾値と上記低側閾値」との間の値であった場合、触媒から漏出した一酸化炭素が下流側空燃比センサに一時的に吸着されたと見做される。この場合、下流側空燃比センサの出力値は「触媒の状態が酸素不足状態である場合の下流側空燃比センサの出力値」に近しい値となるので、空燃比のフィードバック制御により触媒には過剰な一酸化炭素が供給されなくなる。よって、触媒からの一酸化炭素の漏出が停止する。このため、下流側空燃比センサに吸着した前記一酸化炭素が下流側空燃比センサから離脱する状態が生じる。この結果、触媒の状態は実際には酸素過剰状態（リーン状態）へと変化していないにも拘わらず、下流側空燃比センサの出力値は「触媒の状態が酸素過剰状態になった場合」と同様に変化する（低下する）。
【００２２】
そこで、このような場合、本空燃比制御装置は、前記最初に取得された極大値の発生時点から所定の条件が成立する時点までの特定期間において、リーン判定閾値を小さくする（触媒の状態が酸素過剰状態であると判定し難くする）か、及び／又は、触媒の状態が酸素過剰状態であると判定されている場合の触媒流入ガスの空燃比を「リッチ空燃比ではあるが理論空燃比により近い値」へと修正すること等により、触媒流入ガスの空燃比の平均を通常時（特定期間以外の期間）よりも大きくする。
【００２３】
この結果、触媒からの一酸化炭素の一時的漏出に起因して、触媒に過剰な未燃物が大量に流入する事態が発生しないので、一酸化炭素の排出量を低減することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１実施形態に係る内燃機関の空燃比制御装置（第１制御装置）を適用した内燃機関の概略図である。
【図２】図２の（Ａ）は図１に示した下流側空燃比センサの素子部の概略断面図であり、図２の（Ｂ）は素子部の拡大概略断面図である。
【図３】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】比較装置の作動を説明するためのタイムチャートある。
【図５】第１制御装置の作動を説明するためのタイムチャートある。
【図６】第１制御装置のＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図７】第１制御装置のＣＰＵが実行する触媒リッチ状態判定ルーチンを示したフローチャートである。
【図８】第１制御装置のＣＰＵが実行する触媒リーン状態判定ルーチンを示したフローチャートである。
【図９】第１制御装置のＣＰＵが実行する極大値取得ルーチンを示したフローチャートである。
【図１０】第１制御装置のＣＰＵが実行する一酸化炭素漏出判定ルーチン（その１）を示したフローチャートである。
【図１１】第１制御装置のＣＰＵが実行する一酸化炭素漏出判定ルーチン（その２）を示したフローチャートである。
【図１２】本発明の第２実施形態に係る内燃機関の空燃比制御装置（第２制御装置）の作動を説明するためのタイムチャートある。
【図１３】第２制御装置のＣＰＵが実行する触媒リーン状態判定ルーチンを示したフローチャートである。
【図１４】第２制御装置のＣＰＵが実行する触媒リッチ状態判定ルーチンを示したフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の各実施形態に係る内燃機関の空燃比制御装置について図面を参照しながら説明する。
【００２６】
＜第１実施形態＞
（構成）
図１は、本発明の第１実施形態に係る空燃比制御装置（以下、「第１制御装置」とも称呼する。）が適用される内燃機関１０の概略構成を示している。機関１０は、４サイクル・火花点火式・多気筒（本例において４気筒）・ガソリン燃料機関である。機関１０は、本体部２０、吸気系統３０及び排気系統４０を備えている。
【００２７】
本体部２０は、シリンダブロック部とシリンダヘッド部とを備えている。本体部２０は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数（４個）の燃焼室（第１気筒＃１乃至第４気筒＃４）２１を備えている。
【００２８】
シリンダヘッド部には、各燃焼室（各気筒）２１に「空気及び燃料からなる混合気」を供給するための吸気ポート２２と、各燃焼室２１から排ガス（既燃ガス）を排出するための排気ポート２３と、が形成されている。吸気ポート２２は図示しない吸気弁により開閉され、排気ポート２３は図示しない排気弁により開閉されるようになっている。
【００２９】
シリンダヘッド部には複数（４個）の点火プラグ２４が固定されている。各点火プラグ２４は、その火花発生部が各燃焼室２１の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ２４は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。
【００３０】
シリンダヘッド部には更に複数（４個）の燃料噴射弁（インジェクタ）２５が固定されている。燃料噴射弁２５は、各吸気ポート２２に一つずつ（即ち、一つの気筒に対して一つ）設けられている。燃料噴射弁２５は、噴射指示信号に応答し、「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート２２内に噴射するようになっている。
【００３１】
更に、シリンダヘッド部には、吸気弁制御装置２６が設けられている。この吸気弁制御装置２６は、インテークカムシャフト（図示せず）とインテークカム（図示せず）との相対回転角度（位相角度）を油圧により調整・制御する周知の構成を備えている。吸気弁制御装置２６は、指示信号（駆動信号）に基いて作動し、吸気弁の開弁タイミング（吸気弁開弁タイミング）を変更することができるようになっている。
【００３２】
吸気系統３０は、インテークマニホールド３１、吸気管３２、エアフィルタ３３、スロットル弁３４及びスロットル弁アクチュエータ３４ａを備えている。
【００３３】
インテークマニホールド３１は、各吸気ポート２２に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管３２はサージタンク部に接続されている。インテークマニホールド３１、吸気管３２及び複数の吸気ポート２２は、吸気通路を構成している。エアフィルタ３３は吸気管３２の端部に設けられている。スロットル弁３４はエアフィルタ３３とインテークマニホールド３１との間の位置において吸気管３２に回動可能に取り付けられている。スロットル弁３４は、回動することにより吸気管３２が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ３４ａは、ＤＣモータからなり、指示信号（駆動信号）に応答してスロットル弁３４を回動させるようになっている。
【００３４】
排気系統４０は、エキゾーストマニホールド４１、エキゾーストパイプ（排気管）４２、上流側触媒４３及び下流側触媒４４を備えている。
【００３５】
エキゾーストマニホールド４１は、各排気ポート２３に接続された複数の枝部４１ａと、それらの枝部４１ａが集合した集合部（排気集合部）４１ｂと、からなっている。エキゾーストパイプ４２は、エキゾーストマニホールド４１の集合部４１ｂに接続されている。エキゾーストマニホールド４１、エキゾーストパイプ４２及び複数の排気ポート２３は、排ガスが通過する通路を構成している。なお、本明細書において、エキゾーストマニホールド４１の集合部４１ｂ及びエキゾーストパイプ４２により形成される通路を、便宜上、「排気通路」と称呼する。
【００３６】
上流側触媒４３は、セラミックからなる担持体に「触媒物質である貴金属（パラジウムＰｄ及び白金Ｐｔ、ロジウムＲｄ等）」及び「酸素吸蔵材であるセリア（CeO2)」を担持していて、酸素吸蔵・放出機能（酸素吸蔵機能）を有する三元触媒である。上流側触媒４３はエキゾーストパイプ４２に配設（介装）されている。上流側触媒４３は所定の活性温度に到達すると、「未燃物（ＨＣ、ＣＯ及びＨ２等）と窒素酸化物（ＮＯｘ）とを同時に浄化する触媒機能」及び「酸素吸蔵機能」を発揮する。上流側触媒４３は、スタート・キャタリティック・コンバータ（ＳＣ）又は第１触媒とも称呼される。
【００３７】
下流側触媒４４は、上流側触媒４３と同様の三元触媒である。下流側触媒４４は、上流側触媒４３よりも下流においてエキゾーストパイプ４２に配設（介装）されている。下流側触媒４４は、車両のフロア下方に配設されているため、アンダ・フロア・キャタリティック・コンバータ（ＵＦＣ）又は第２触媒とも称呼される。なお、本明細書において、単に「触媒」と言うとき、その「触媒」は上流側触媒４３を意味する。
【００３８】
本制御装置は、熱線式エアフローメータ５１、スロットルポジションセンサ５２、機関回転速度センサ５３、水温センサ５４、上流側空燃比センサ５５、下流側空燃比センサ５６及びアクセル開度センサ５７を備えている。
【００３９】
熱線式エアフローメータ５１は、吸気管３２内を流れる吸入空気の質量流量を検出し、その質量流量（機関１０の単位時間あたりの吸入空気量）Ｇａを表す信号を出力するようになっている。
【００４０】
スロットルポジションセンサ５２は、スロットル弁３４の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００４１】
機関回転速度センサ５３は、インテークカムシャフトが５°回転する毎に幅狭のパルスを有するとともにインテークカムシャフトが３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。機関回転速度センサ５３から出力される信号は後述する電気制御装置６０により機関回転速度ＮＥを表す信号に変換されるようになっている。更に、電気制御装置６０は、機関回転速度センサ５３及び図示しないクランク角センサからの信号に基いて、機関１０のクランク角度（絶対クランク角）を取得するようになっている。
【００４２】
水温センサ５４は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００４３】
上流側空燃比センサ５５は、エキゾーストマニホールド４１の集合部４１ｂと上流側触媒４３との間の位置においてエキゾーストマニホールド４１及びエキゾーストパイプ４２の何れか（即ち、排気通路）に配設されている。上流側空燃比センサ５５は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【００４４】
上流側空燃比センサ５５は、上流側空燃比センサ５５の配設位置を流れる排ガスの空燃比（触媒４３に流入するガスである「触媒流入ガス」の空燃比、上流側空燃比abyfs）に応じた出力値Vabyfsを出力する。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど（即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど）増大する。
【００４５】
電気制御装置６０は、出力値Vabyfsと上流側空燃比abyfsとの関係を規定した空燃比変換テーブル（マップ）Mapabyfsを記憶している。電気制御装置６０は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する（検出上流側空燃比abyfsを取得する）ようになっている。
【００４６】
下流側空燃比センサ５６は、上流側触媒４３と下流側触媒４４との間の位置においてエキゾーストパイプ４２（即ち、排気通路）に配設されている。下流側空燃比センサ５６は、周知の濃淡電池型の酸素濃度センサ（Ｏ２センサ）である。
【００４７】
下流側空燃比センサ５６は、図２の（Ａ）に示した試験管状の素子部を備える。素子部は、図２の（Ｂ）に示したように、固体電解質層５６ａと、固体電解質層５６ａの外側に形成された排ガス側電極層５６ｂと、基準ガスとしての大気が導入される大気室ＡＲ（固体電解質層５６ａの内側）に露呈し且つ固体電解質層５６ａを挟んで排ガス側電極層５６ｂと対向するように固体電解質層５６ａの内側に形成された大気側電極層５６ｃと、排ガス側電極層５６ｂを覆う拡散層５６ｄと、その拡散層５６ｄを覆う触媒層５６ｅと、触媒層５６ｅを覆うとともに排ガスが接触する（図示しない保護カバーの貫通孔を通過して保護カバー内に流入した排ガス中に晒されるように配置される）保護層（トラップ層）５６ｆを備える。なお、固体電解質層５６ａ等は板状であってもよい。
【００４８】
触媒４３から流出ガス（触媒流出ガス）Ｅｘは、図示しない保護カバーの貫通孔を通過してその保護カバー内に流入し、次いで、保護層５６ｆ、触媒層５６ｅ及び拡散層５６ｄを通過して排ガス側電極層５６ｂに到達する。固体電解質層５６ａは、その排ガス側電極層５６ｂに到達したガスの酸素分圧と、大気側電極層５６ｃに到達している大気の酸素分圧と、の差に応じた起電力を、下流側空燃比センサ５６の出力値Voxsとして発生する。
【００４９】
即ち、下流側空燃比センサ５６の出力値Voxsは、図３に示したように、触媒流出ガス（被検出ガス）の空燃比が理論空燃比よりもリッチ側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が小さく且つ触媒流出ガス中に多量の還元成分（未燃物）が含まれているとき、最大値Vmax（例えば、約０．９〜１．０Ｖ）となる。
【００５０】
加えて、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が大きいとき（触媒流出ガス中に多量の酸素が含まれているとき）、最小値Vmin（例えば、約０〜０．１Ｖ）となる。
【００５１】
更に、この出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比へと変化する際に最大値Vmaxから最小値Vminへと急激に減少する。逆に、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比へと変化する際に最小値Vminから最大値Vmaxへと急激に増大する。なお、最小値Vminと最大値Vmaxとの平均値は中央値Vmid（＝（Vmax＋Vmin）／２）又は理論空燃比相当電圧Ｖstと称呼される。
【００５２】
図１に示したアクセル開度センサ５７は、運転者によって操作されるアクセルペダルＡＰの操作量を検出し、アクセルペダルＡＰの操作量Accpを表す信号を出力するようになっている。
【００５３】
電気制御装置６０は、「ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ、並びに、ＡＤコンバータを含むインターフェース等」からなる「周知のマイクロコンピュータ」を含む電子回路である。
【００５４】
電気制御装置６０が備えるバックアップＲＡＭは、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭは、バッテリから電力の供給を受けている場合、ＣＰＵの指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。即ち、それまでに保持していたデータが消失（破壊）される。
【００５５】
電気制御装置６０のインターフェースは、前記センサ５１〜５７と接続され、ＣＰＵにセンサ５１〜５７からの信号を供給するようになっている。更に、そのインターフェースは、ＣＰＵの指示に応じて、各気筒の点火プラグ２４、各気筒の燃料噴射弁２５、吸気弁制御装置２６及びスロットル弁アクチュエータ３４ａ等に指示信号（駆動信号）等を送出するようになっている。なお、電気制御装置６０は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度ＴＡが大きくなるように、スロットル弁アクチュエータ３４ａに指示信号を送出するようになっている。
【００５６】
（第１制御装置による空燃比のフィードバック制御の概要）
第１制御装置は、以下のように触媒４３の状態（酸素吸蔵状態）を判定するとともに、判定された触媒４３の状態に基づいて触媒４３に流入する排ガス（触媒流入ガス）の空燃比（従って、機関１０に供給される混合気の空燃比）をフィードバック制御する。触媒４３の状態は、触媒４３が酸素をその最大酸素吸蔵量に近い値まで吸蔵している状態（即ち、酸素過剰状態、リーン状態）、及び、触媒４３が酸素を殆ど吸蔵していない状態（即ち、酸素不足状態、還元状態、リッチ状態）の何れかであるとして判定される。
【００５７】
第１制御装置による空燃比フィードバック制御を説明するために、先ず、本発明が適用されていない比較装置による空燃比フィードバック制御について説明する。比較装置は、図４のタイムチャートに示したように、下流側空燃比センサ５６の出力値Voxsが中央値Vmid以上であるとき触媒４３の状態が酸素不足状態（リッチ状態）であると判定し、機関の空燃比（目標空燃比abyfr）を所定のリーン空燃比afLeanに設定する（図４の時刻ｔ１以前、時刻ｔ２−ｔ３、時刻ｔ４−ｔ５、及び、時刻ｔ６−ｔ７に対応する期間を参照。）。この結果、機関の空燃比がリーン空燃比afLeanに設定される各時点から僅かな時間が経過した後に上流側空燃比（触媒流入ガスの空燃比）がリーン空燃比afLeanに変化する。
【００５８】
加えて、比較装置は、図４のタイムチャートに示したように、下流側空燃比センサ５６の出力値Voxsが中央値Vmid未満であるときに触媒４３の状態が酸素過剰状態（リーン状態）であると判定し、機関の空燃比（目標空燃比abyfr）を所定のリッチ空燃比afRichに設定する（図４の時刻ｔ１−ｔ２、時刻ｔ３−ｔ４、時刻ｔ５−ｔ６、及び、時刻ｔ７−ｔ８に対応する期間を参照。）。この結果、機関の空燃比がリッチ空燃比afRichに設定される各時点から僅かな時間が経過した後に上流側空燃比（触媒流入ガスの空燃比）がリッチ空燃比afRichに変化する。
【００５９】
ところで、図４の破線の円ＥＮ内に示したように、機関の空燃比（目標空燃比abyfr）がリッチ空燃比afRichに設定されている場合に機関１０の運転状態が過渡運転状態（加速状態又は減速状態）等になったとき、実際の上流側空燃比がリッチ空燃比afRichよりも更に小さい空燃比に一時的に変化することがある。
【００６０】
この場合、触媒４３に多量の「一酸化炭素を含む未燃物」が流入し、触媒４３によって浄化（酸化）されないまま触媒４３の下流に流出する場合がある。即ち、一酸化炭素が触媒４３を吹き抜ける場合がある。このとき、触媒４３から流出した一酸化炭素が下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に到達して吸着されると、「触媒層５６ｅ及び／又は拡散層５６ｄ」は弱い還元状態となるため、下流側空燃比センサ５６の出力値Voxsは時刻ｔ４の直後に示したように中央値Vmidよりも大きくなる。
【００６１】
この結果、比較装置は「触媒４３の状態が酸素不足状態（リッチ状態）である。」と判定し、機関の空燃比をリーン空燃比afLeanに設定する。従って、触媒４３に「一酸化炭素を含む未燃物」が流入しなくなるので、触媒４３から一酸化炭素が流出しなくなる。これにより、下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に吸着されていた一酸化炭素は「触媒層５６ｅ及び／又は拡散層５６ｄ」から離脱する。この一酸化炭素の離脱により、触媒４３の状態が未だ酸素過剰状態（リーン状態）に到達していないにも拘わらず、下流側空燃比センサ５６の出力値Voxsは最小値Vminに向けて変化を開始する。その結果、図４の時刻ｔ５に示したように、出力値Voxsは中央値Vmidよりも小さくなるので、比較装置は「触媒４３の状態が酸素過剰状態（リーン状態）である。」と判定し、機関の空燃比をリッチ空燃比afRichに設定する。
【００６２】
しかしながら、時刻ｔ５の時点における触媒４３の状態は酸素過剰状態（リーン状態）ではないので、機関の空燃比がリッチ空燃比afRichに設定されることによっ、触媒４３に「一酸化炭素を含む未燃物」が流入することにより、図４の時刻ｔ５−ｔ７に示したように、触媒４３は流入する未燃物を浄化できず、一酸化炭素の排出量が多くなる（エミッションが悪化する）という問題が生じる。
【００６３】
そこで、第１制御装置は、このような「一酸化炭素の触媒４３からの一時的な漏出」に起因する下流側空燃比センサ５６の出力値Voxsの減少が生じるか否かを予測し、そのような出力値Voxsの減少が生じると予測できる場合には、リーン判定閾値（即ち、触媒４３の状態が酸素過剰状態であるか否か判定するために出力値Voxsと比較される閾値）を、通常時の値（＝本例において、中央値Vmid）よりも所定値αだけ小さい値VLsp（=Vmid−α）に設定する（図５を参照。）。
【００６４】
これにより、触媒４３の状態が酸素過剰状態（リーン状態）であると判定される時点（換言すると、機関の空燃比がリッチ空燃比afRichに設定される時点）が図５の時刻ｔ６から時刻ｔ７へと変化する（遅れる）。即ち、触媒４３の状態が酸素過剰状態となっている可能性がより一層高くなった時点以降において機関の空燃比がリッチ空燃比afRichに設定されるので、触媒４３に過剰な未燃物が流入する可能性が低下する。その結果、一酸化炭素の排出量が多くなる（エミッションが悪化する）という問題を回避することができる（図５の時刻ｔ６−ｔ８を参照。）。
【００６５】
ここで、第１制御装置は、以下の両条件が共に成立したとき、「一酸化炭素の触媒４３からの一時的な漏出」に起因する下流側空燃比センサ５６の出力値Voxsの減少、が生じると予測する。
【００６６】
（１）「上流側空燃比センサ５５の出力値Vabyfsに基づいて取得される実際の上流側空燃比abyfs」がリッチ空燃比afRichよりも所定値afth以上小さくなった。即ち、触媒４３から所定量以上の一酸化炭素が漏出する状態（一酸化炭素漏出状態）が生じた。実際には、更に、その後において下流側空燃比センサ５６の出力値Voxsが中央値Vmidを超えた。
【００６７】
（２）一酸化炭素漏出状態が生じたと判定された後に最初に取得された下流側空燃比センサ５６の出力値Voxsの極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間である。
【００６８】
高側閾値VHithは、中央値Vmidよりも大きく、且つ、最大値Vmaxから第１所定値d1を減じた値（＝Vmax−d1）である。高側閾値VHithは、例えば、０．８Ｖであり、出力値Voxsが高側閾値VHith以上であれば、触媒４３は明らかに酸素不足状態であって、下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」は強い還元状態にあると考えることができる。
【００６９】
低側閾値VLothは、中央値Vmidよりも大きく、且つ、高側閾値ＶHithから第２所定値d2を減じた値（＝VHith−d2＝Vmax−d1−d2）である。低側閾値ＶLothは、例えば、０．６５Ｖであり、最小値Vminに所定値を加えた値でもある。
【００７０】
そして、第１制御装置は、上記（２）の条件が成立した時点（即ち、高側閾値VHithと低側閾値VLothとの間の極大値Vlocalmaxが漏出一酸化炭素影響残存期間内に取得された時点）から、リーン判定閾値を値VLsp（＝Vmid−α）に設定する。更に、下流側空燃比センサ５６の出力値Voxsが「値VLspよりも大きい値から値VLspよりも小さい値へと変化する時点」までの期間が経過した後、第１制御装置はリーン判定閾値を通常時の値である中央値Vmidに戻す。
【００７１】
リーン判定閾値を値VLspから中央値Vmidへと戻すタイミングは、出力値Voxsが「値VLspよりも大きい値から値VLspよりも小さい値へと変化した時点」の直後であってもよいし、その後、出力値Voxsが中央値Vmidよりも小さい値から中央値Vmidよりも大きい値へと変化した直後であってもよい。更には、その後、新たな極大値Vlocalmaxが得られた直後であってもよい。
【００７２】
上記（２）の条件が成立した時点（即ち、リーン判定閾値が値VLspに設定された時点）から、出力値Voxsが「値VLspよりも大きい値から値VLspよりも小さい値へと変化した時点」までの期間は、特定期間Ｔとも称呼される。
【００７３】
（実際の作動）
次に、第１制御装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、「a1,a2,…を引数とするテーブル」であって「値Xを求めるためのテーブル」を表すものとする。
【００７４】
＜燃料噴射制御＞
第１制御装置のＣＰＵは、図６に示した燃料噴射制御ルーチンを、任意の気筒のクランク角度が吸気上死点前の所定クランク角度となる毎に、その気筒に対して繰り返し実行するようになっている。前記所定クランク角度は、例えば、ＢＴＤＣ９０°ＣＡ（吸気上死点前９０°クランク角度）である。クランク角度が前記所定クランク角度に一致した気筒は「燃料噴射気筒」とも称呼される。ＣＰＵは、この燃料噴射制御ルーチンにより、指示燃料噴射量（最終燃料噴射量）Ｆｉの計算及び燃料噴射の指示を行う。
【００７５】
任意の気筒のクランク角度が吸気上死点前の所定クランク角度と一致すると、ＣＰＵはステップ６００から処理を開始し、ステップ６０５にてフューエルカットフラグＸＦＣの値が「０」であるか否かを判定する。フューエルカットフラグＸＦＣの値は、フューエルカット開始条件が成立したときに「１」に設定され、フューエルカットフラグＸＦＣの値が「１」であるときにフューエルカット終了条件が成立したときに「０」に設定される。フューエルカットフラグＸＦＣの値は更にイニシャルルーチンにおいて「０」に設定されるようになっている。イニシャルルーチンは、機関１０が搭載された車両のイグニッション・キー・スイッチがオフからオンに変更されたときにＣＰＵにより実行されるルーチンである。
【００７６】
フューエルカット開始条件は、スロットル弁開度ＴＡが「０」であり且つ機関回転速度ＮＥがフューエルカット回転閾値速度ＮＥＦＣ以上であるとき成立する。フューエルカット終了条件は、スロットル弁開度ＴＡが「０」でなくなるか、又は、機関回転速度ＮＥがフューエルカット終了回転閾値速度ＮＥＲＴ以下となったとき、成立する。フューエルカット終了回転閾値速度ＮＥＲＴはフューエルカット回転閾値速度ＮＥＦＣよりも小さい。
【００７７】
いま、フューエルカットフラグＸＦＣの値が「０」であると仮定する。この場合、ＣＰＵは、ステップ６０５にて「Ｙｅｓ」と判定してステップ６１０に進み、「エアフローメータ５１により計測された吸入空気量Ｇａ、機関回転速度センサ５３の信号に基いて取得された機関回転速度ＮＥ、及び、ルックアップテーブルMapMc（Ｇａ，ＮＥ）」に基いて「燃料噴射気筒に吸入される空気量（即ち、筒内吸入空気量）Ｍｃ）」を取得する。筒内吸入空気量Ｍｃは、周知の空気モデル（吸気通路における空気の挙動を模した物理法則に従って構築されたモデル）により算出されてもよい。
【００７８】
次に、ＣＰＵはステップ６１５に進み、フィードバック制御フラグＸＦＢの値が「１」であるか否かを判定する。このフィードバック制御フラグＸＦＢの値は、フィードバック制御条件が成立しているときに「１」に設定され、フィードバック制御条件が成立していないときに「０」に設定される。フィードバック制御条件は、例えば、以下の総ての条件が成立したときに成立する。
（Ａ１）上流側空燃比センサ５５が活性化している。
（Ａ２）下流側空燃比センサ５６が活性化している。
（Ａ３）機関の負荷ＫＬが閾値ＫＬｔｈ以下である。
（Ａ４）フューエルカットフラグＸＦＣの値が「０」である。
【００７９】
このとき、フィードバック制御フラグＸＦＢの値が「１」でなければ、ＣＰＵはステップ６１５にて「Ｎｏ」と判定してステップ６２０に進み、目標空燃比abyfrを理論空燃比stoich（例えば、１４．６）に設定する。
【００８０】
次に、ＣＰＵは以下に述べるステップ６２５乃至ステップ６４０の処理を順に行い、ステップ６９５に進んで本ルーチンを一旦終了する。
【００８１】
ステップ６２５：ＣＰＵは、筒内吸入空気量Ｍｃを目標空燃比abyfrで除することによって基本燃料噴射量Ｆｂａｓｅを算出する。基本燃料噴射量Ｆｂａｓｅは、機関の空燃比を目標空燃比abyfrに一致させるために必要な燃料噴射量のフィードフォワード量である。
【００８２】
ステップ６３０：ＣＰＵは、図示しないルーチンにより別途計算されているメインフィードバック量ＫＦmainを読み込む。メインフィードバック量ＫＦmainは、検出上流側空燃比abyfsが目標空燃比abyfrに一致するように周知のＰＩＤ制御に基づいて算出される。なお、メインフィードバック量ＫＦmainは、フィードバック制御フラグＸＦＢの値が「０」であるとき「１」に設定される。更に、メインフィードバック量ＫＦmainは常に「１」に設定されてもよい。即ち、メインフィードバック量ＫＦmainを用いたフィードバック制御は本実施形態において必須ではない。
【００８３】
ステップ６３５：ＣＰＵは、基本燃料噴射量Ｆｂａｓｅをメインフィードバック量ＫＦmainにより補正することによって指示燃料噴射量Ｆｉを算出する。より具体的に述べると、ＣＰＵは、基本燃料噴射量Ｆｂａｓｅにメインフィードバック量ＫＦmainを乗じることによって指示燃料噴射量Ｆｉを算出する。
【００８４】
ステップ６４０：ＣＰＵは、「指示燃料噴射量Ｆｉの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁２５」から噴射させるための噴射指示信号を、その燃料噴射弁２５に送出する。
【００８５】
この結果、機関の空燃比を目標空燃比abyfrに一致させるために必要な量の燃料が燃料噴射気筒の燃料噴射弁２５から噴射させられる。即ち、ステップ６２５乃至ステップ６４０は、「機関の空燃比が目標空燃比abyfrに一致するように指示燃料噴射量Ｆｉを制御する」指示燃料噴射量制御手段を構成している。
【００８６】
一方、ＣＰＵがステップ６１５の処理を行う時点において、フィードバック制御フラグＸＦＢの値が「１」であると、ＣＰＵはそのステップ６１５にて「Ｙｅｓ」と判定してステップ６４５に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」であるか否かを判定する。触媒リーン状態表示フラグＸCCROLeanの値は後述するルーチンにより設定される。
【００８７】
触媒リーン状態表示フラグＸCCROLeanの値が「１」であると、ＣＰＵはステップ６４５にて「Ｙｅｓ」と判定してステップ６５０に進み、目標空燃比abyfrを「所定のリッチ空燃比afRich（理論空燃比よりも小さい一定の空燃比、例えば、１４．２）」に設定する。その後、ＣＰＵはステップ６２５以降に進む。従って、機関の空燃比はリッチ空燃比afRichに一致させられる。
【００８８】
これに対し、ＣＰＵがステップ６４５の処理を実行する時点において、触媒リーン状態表示フラグＸCCROLeanの値が「０」であると、ＣＰＵはステップ６４５にて「Ｎｏ」と判定してステップ６５５に進み、目標空燃比abyfrを「所定のリーン空燃比afLean（理論空燃比よりも大きい一定の空燃比、例えば、１５．０）」に設定する。その後、ＣＰＵはステップ６２５以降に進む。従って、機関の空燃比はリーン空燃比afLeanに一致させられる。
【００８９】
一方、ＣＰＵがステップ６０５の処理を実行する時点において、フューエルカットフラグＸＦＣの値が「１」であると、ＣＰＵはそのステップ６０５にて「Ｎｏ」と判定してステップ６９５に直接進み、本ルーチンを一旦終了する。この場合、ステップ６４０の処理による燃料噴射が実行されないので、フューエルカット制御（燃料供給停止制御）が実行される。即ち、機関１０の運転状態はフューエルカット運転状態となる。
【００９０】
＜触媒リッチ状態判定＞
ＣＰＵは図７にフローチャートにより示した「触媒リッチ状態判定ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ７００から処理を開始してステップ７１０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」であるか否かを判定する。換言すると、ＣＰＵは現在の触媒４３の状態が「リーン状態（酸素過剰状態）である」か否かを判定する。
【００９１】
このとき、触媒リーン状態表示フラグＸCCROLeanの値が「０」であると、ＣＰＵはステップ７１０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。従って、触媒リーン状態表示フラグＸCCROLeanの値は「０」に維持される。
【００９２】
これに対し、ＣＰＵがステップ７１０の処理を実行する時点において、触媒リーン状態表示フラグＸCCROLeanの値が「１」であると、ＣＰＵはそのステップ７１０にて「Ｙｅｓ」と判定してステップ７２０に進み、下流側空燃比センサ５６の出力値Voxsが「中央値Vmidに設定されたリッチ判定閾値ＶRth」以上であるか否かを判定する。
【００９３】
このとき、出力値Voxsが中央値Vmid未満であれば、ＣＰＵはステップ７２０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。従って、この場合、触媒リーン状態表示フラグＸCCROLeanの値は「０」に維持される。
【００９４】
これに対し、ＣＰＵがステップ７２０の処理を実行する時点において、出力値Voxsが中央値Vmid以上であると、ＣＰＵはステップ７２０にて「Ｙｅｓ」と判定してステップ７３０に進み、触媒リーン状態表示フラグＸCCROLeanの値を「０」に設定する。即ち、ＣＰＵは、出力値Voxsが中央値Vmid以上であるとき、触媒４３の状態がリッチ状態（酸素不足状態）であると判定する。その後、ＣＰＵはステップ７９５に進んで本ルーチンを一旦終了する。
【００９５】
＜触媒リーン状態判定＞
ＣＰＵは図８にフローチャートにより示した「触媒リーン状態判定ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ８００から処理を開始してステップ８１０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「０」であるか否かを判定する。換言すると、ＣＰＵは現在の触媒４３の状態が「リッチ状態（酸素不足状態）である」か否かを判定する。
【００９６】
このとき、触媒リーン状態表示フラグＸCCROLeanの値が「１」であると、ＣＰＵはステップ８１０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。従って、触媒リーン状態表示フラグＸCCROLeanの値は「１」に維持される。
【００９７】
これに対し、ＣＰＵがステップ８１０の処理を実行する時点において、触媒リーン状態表示フラグＸCCROLeanの値が「０」であると、ＣＰＵはそのステップ８１０にて「Ｙｅｓ」と判定してステップ８２０に進み、一酸化炭素漏出フラグＸＣＯの値が「１」であるか否かを判定する。
【００９８】
一酸化炭素漏出フラグＸＣＯの値は上述したイニシャルルーチンにおいて「０」に設定されるようになっている。更に、一酸化炭素漏出フラグＸＣＯの値は後述するルーチンにより操作されるようになっている。一酸化炭素漏出フラグＸＣＯの値は、触媒４３に一時的に過大な量の未燃物（一酸化炭素を含む。）が流入し、且つ、その未燃物に含まれる一酸化炭素が触媒４３を通過して下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に吸着された可能性が高いと推測・判定されたとき「１」に設定される。即ち、一酸化炭素漏出フラグＸＣＯの値が「１」であることは、三元触媒から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となっていることを示す。
【００９９】
いま、一酸化炭素漏出フラグＸＣＯの値が「０」であると仮定する。この場合、ＣＰＵはステップ８２０にて「Ｎｏ」と判定してステップ８３０に進み、リーン判定閾値ＶLthを中央値Vmidに一致させる。
【０１００】
次に、ＣＰＵはステップ８４０に進み、出力値Voxsがリーン判定閾値ＶLth（ここでは中央値Vmidと等しい値）よりも小さいか否かを判定する。そして、ＣＰＵは出力値Voxsがリーン判定閾値ＶLthより小さければ、ステップ８４０にて「Ｙｅｓ」と判定してステップ８５０に進み、触媒リーン状態表示フラグＸCCROLeanの値を「１」に設定する。即ち、出力値Voxsがリーン判定閾値ＶLthより小さければ、ＣＰＵは触媒４３の状態がリーン状態（酸素過剰状態）であると判定する。
【０１０１】
次いで、ＣＰＵはステップ８６０に進んで一酸化炭素漏出フラグＸＣＯの値を「０」に設定し、ステップ８６５に進んで極大値取得完了フラグXVlocalgetの値を「０」に設定する。極大値取得完了フラグXVlocalgetの値は、後述するように、目標空燃比abyfrがリーン空燃比afLeanに設定されているときに、出力値Voxsの極大値Vlocalmaxが取得されたとき「１」に設定される。次に、ＣＰＵはステップ８９５に進んで本ルーチンを一旦終了する。なお、ＣＰＵはステップ８６５の後に「リーン判定閾値ＶLthを中央値Vmidに一致させる処理」を行った後、ステップ８９５に進んでもよい。
【０１０２】
一方、ＣＰＵがステップ８４０の処理を行う時点において、出力値Voxsがリーン判定閾値ＶLth以上であると、ＣＰＵはそのステップ８４０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。よって、この場合、触媒リーン状態表示フラグＸCCROLeanの値は「０」に維持される。
【０１０３】
次に、一酸化炭素漏出フラグＸＣＯの値が「１」に設定された場合のＣＰＵの作動について説明する。この場合、ＣＰＵは図８のステップ８２０に進んだとき、そのステップ８２０にて「Ｙｅｓ」と判定してステップ８２５に進み、極大値取得完了フラグXVlocalgetの値が「１」に設定されているか否かを判定する。このとき、極大値取得完了フラグXVlocalgetの値が「０」であれば、ＣＰＵはステップ８２５にて「Ｎｏ」と判定してステップ８３０に進む。
【０１０４】
これに対し、ＣＰＵがステップ８２５の処理を実行する時点において、極大値取得完了フラグXVlocalgetの値が「１」に設定されていると、ＣＰＵはそのステップ８２５にて「Ｙｅｓ」と判定してステップ８７０に進み、後述するルーチンにより取得されている出力値Voxsの極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間であるか否かを判定する。高側閾値VHith及び低側閾値VLothは上述したとおりの値である。そして、極大値Vlocalmaxが、高側閾値VHithと低側閾値VLothとの間である場合、ＣＰＵはステップ８７０にて「Ｙｅｓ」と判定してステップ８８０に進み、リーン判定閾値ＶLthを「通常時におけるリーン判定閾値（中央値Vmid）よりも小さい値（中央値Vmidよりも所定値αだけ小さい値）VLsp」に設定する。その後、ＣＰＵはステップ８４０以降に進む。
【０１０５】
これによれば、ステップ８２０、ステップ８２５及びステップ８７０の条件が総て成立するとき、リーン判定閾値が通常時の値（＝中央値Vmid）よりも小さい値VLspに設定されるので、下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に付着した一酸化炭素が離脱することにより出力値Voxsが低下したとしても、触媒リーン状態表示フラグＸCCROLeanの値が「１」に設定されるタイミング（触媒４３の状態が酸素過剰状態であると判定されるタイミング）が遅れる。換言すると、上流側空燃比abyfsがリーン空燃比afLeanに維持される期間が長くなり、上流側空燃比abyfsがリッチ空燃比afRichに変更されるタイミングが遅れる。その結果、一酸化炭素が多量に排出することを防止することができる。
【０１０６】
なお、ＣＰＵがステップ８７０の処理を実行する時点において、極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間でない場合、ＣＰＵはステップ８７０にて「Ｎｏ」と判定してステップ８３０に進み、リーン判定閾値ＶLthを中央値Vmidに一致させる。
【０１０７】
＜極大値Vlocalmaxの取得＞
ＣＰＵは、所定時間が経過する毎に図９にフローチャートにより示した「極大値取得ルーチン」を実行するようになっている。従って、所定のタイミングになると、ＣＰＵは図９のステップ９００から処理を開始してステップ９１０に進み、現時点が「触媒リーン状態表示フラグＸCCROLeanの値が「１」から「０」へと変化した時点の直後」であるか否かを判定する。
【０１０８】
現時点が「触媒リーン状態表示フラグＸCCROLeanの値が「１」から「０」へと変化した時点の直後」である場合、ＣＰＵはステップ９１０からステップ９２０に進んで極大値Vlocalmaxの値を「０」に設定し、ステップ９２５に進んで極大値取得完了フラグXVlocalgetの値を「０」に設定し、その後、ステップ９３０へと進む。
【０１０９】
これに対し、現時点が「触媒リーン状態表示フラグＸCCROLeanの値が「１」から「０」へと変化した時点の直後」でない場合、ＣＰＵはステップ９１０からステップ９３０へと直接進む。即ち、極大値Vlocalmax及び極大値取得完了フラグXVlocalgetは、触媒リーン状態表示フラグＸCCROLeanの値が「１」から「０」へと変化した直後に「０」にリセットされる。
【０１１０】
ＣＰＵはステップ９３０にて触媒リーン状態表示フラグＸCCROLeanの値が「０」であるか否かを判定する。換言すると、現時点の空燃比要求がリーン要求であって、それ故に、目標空燃比abyfrがリーン空燃比afLeanに設定されているか否かが判定される。このとき、触媒リーン状態表示フラグＸCCROLeanの値が「０」でなければ、ＣＰＵはステップ９３０にて「Ｎｏ」と判定してステップ９３５に進み、極大値取得完了フラグXVlocalgetの値を確認的に「０」に設定し、その後、ステップ９９５に直接進んで本ルーチンを一旦終了する。従って、極大値Vlocalmaxは取得されない。
【０１１１】
一方、ＣＰＵがステップ９３０の処理を行う時点において、触媒リーン状態表示フラグＸCCROLeanの値が「０」であると、ＣＰＵはステップ９３０にて「Ｙｅｓ」と判定してステップ９４０に進み、現時点の出力値Voxsが極大値Vlocalmaxよりも大きいか否かを判定する。そして、現時点の出力値Voxsが極大値Vlocalmaxよりも大きい場合、ＣＰＵはステップ９４０にて「Ｙｅｓ」と判定してステップ９５０に進み、極大値Vlocalmaxとして現時点の出力値Voxsを格納する。
【０１１２】
これに対し、現時点の出力値Voxsが極大値Vlocalmax以下の場合、ＣＰＵはステップ９４０にて「Ｎｏ」と判定してステップ９６０に進み、極大値取得完了フラグXVlocalgetの値を「１」に設定する。次いで、ＣＰＵは、ステップ９９５に直接進んで本ルーチンを一旦終了する。以上の処理により、触媒リーン状態表示フラグＸCCROLeanの値が「０」であるときに極大値Vlocalmaxが取得され、極大値Vlocalmaxが取得されると極大値取得完了フラグXVlocalgetの値が「１」に設定される。
【０１１３】
＜一酸化炭素漏出判定＞
次に、ＣＰＵが一酸化炭素漏出フラグＸＣＯの値を操作する際の作動について説明する。ＣＰＵは、所定時間が経過する毎に図１０及び図１１にフローチャートにより示したルーチンを実行するようになっている。
【０１１４】
従って、所定のタイミングになると、ＣＰＵは図１０のステップ１０００から処理を開始してステップ１０１０に進み、一酸化炭素漏出フラグＸＣＯの値が「０」であるか否かを判定する。一酸化炭素漏出フラグＸＣＯの値が既に「１」に設定されている場合、ＣＰＵはステップ１０１０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１１５】
これに対し、ＣＰＵがステップ１０１０の処理を実行する時点において、一酸化炭素漏出フラグＸＣＯの値が「０」であると、ＣＰＵはそのステップ１０１０にて「Ｙｅｓ」と判定してステップ１０２０に進み、計時実行フラグＸTimerの値が「０」であるか否かを判定する。計時実行フラグＸTimerの値は上述したイニシャルルーチンにおいて「０」に設定されるようになっている。計時実行フラグＸTimerは、後述するタイマカウンタＣＴが所定時間の経過毎に「１」ずつ増大されることにより、計時動作を行っている場合に「１」に設定される（後述するステップ１０５０を参照。）。計時実行フラグＸTimerの値が「１」であるとき、ＣＰＵはステップ１０２０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１１６】
計時実行フラグＸTimerの値が「０」であるとき、ＣＰＵはステップ１０２０にて「Ｙｅｓ」と判定してステップ１０３０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」であるか否かを判定する。即ち、ＣＰＵは目標空燃比abyfrがリッチ空燃比afRichであるか否かを判定する。触媒リーン状態表示フラグＸCCROLeanの値が「０」であるとき、ＣＰＵはステップ１０３０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１１７】
触媒リーン状態表示フラグＸCCROLeanの値が「１」であるとき（即ち、目標空燃比abyfrがリッチ空燃比afRichであるとき）、ＣＰＵはステップ１０３０にて「Ｙｅｓ」と判定してステップ１０４０に進み、目標空燃比abyfr（この場合、リッチ空燃比afRich）から検出上流側空燃比abyfsを減じた値が所定空燃比afthよりも大きいか否かを判定する。換言すると、ＣＰＵは、実際の上流側空燃比abyfsがリッチ空燃比afRichよりも所定空燃比afth以上さらにリッチ側の空燃比になっているか否かを判定する。このような状態は、機関１０の運転状態が過渡運転状態にある場合等において発生する。ステップ１０４０の判定条件が成立していなければ、ＣＰＵはステップ１０４０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。
【０１１８】
これに対し、ステップ１０４０の判定条件が成立していると、ＣＰＵはステップ１０４０にて「Ｙｅｓ」と判定してステップ１０５０に進み、計時実行フラグＸTimerの値を「１」に設定する。次いで、ＣＰＵはステップ１０６０に進み、タイマカウンタＣＴの値を「０」に設定する。その後、ＣＰＵはステップ１０９５に進む。
【０１１９】
一方、ＣＰＵは、所定のタイミングになると、図１１のステップ１１００から処理を開始してステップ１１１０に進み、計時実行フラグＸTimerの値が「１」であるか否かを判定する。このとき、計時実行フラグＸTimerの値が「０」であると、ＣＰＵはステップ１１１０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。
【０１２０】
これに対し、計時実行フラグＸTimerの値が図１０のステップ１０５０にて「１」に設定されると、ＣＰＵはステップ１１１０にて「Ｙｅｓ」と判定してステップ１１２０に進み、タイマカウンタＣＴを「１」だけ増大する。次いで、ＣＰＵはステップ１１３０に進み、タイマカウンタＣＴの値が所定閾値ＣＴｔｈ以下であるか否かを判定する。
【０１２１】
タイマカウンタＣＴの値が所定閾値ＣＴｔｈ以下である場合、ＣＰＵはステップ１１３０にて「Ｙｅｓ」と判定してステップ１１４０に進み、下流側空燃比センサ５６の出力値Voxsが中央値Vmidよりも大きいか否かを判定する。このステップは、触媒４３から漏出した一酸化炭素が下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に到達することによって下流側空燃比センサ５６が「弱い還元状態」となり、それにより出力値Voxsがリッチ空燃比に対応する値へと変化したことを確認するステップである。
【０１２２】
いま、出力値Voxsが中央値Vmidよりも大きくなっていると、ＣＰＵはステップ１１４０にて「Ｙｅｓ」と判定してステップ１１５０に進み、一酸化炭素漏出フラグＸＣＯの値を「１」に設定する。次いで、ＣＰＵはステップ１１６０に進み、計時実行フラグＸTimerの値を「０」に設定する。この結果、ＣＰＵが所定時間の経過後にステップ１１１０に再び進んだとき、ＣＰＵはそのステップ１１１０にて「Ｎｏ」と判定し、ステップ１１９５に直接進むようになる。
【０１２３】
これに対し、ＣＰＵがステップ１１４０の処理を実行する時点において、出力値Voxsが中央値Vmid以下であると、ＣＰＵはそのステップ１１４０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。
【０１２４】
また、ＣＰＵがステップ１１３０の処理を実行する時点において、タイマカウンタＣＴの値が所定閾値ＣＴｔｈよりも大きい場合、ＣＰＵはステップ１１３０にて「Ｎｏ」と判定してステップ１１７０に進み、計時実行フラグＸTimerの値を「０」に設定する。
【０１２５】
以上、説明したように、目標空燃比abyfrがリッチ空燃比afRichである場合に実際の上流側空燃比abyfsが目標空燃比abyfr（リッチ空燃比afRich）に対して所定空燃比afth以上小さくなると、タイマカウンタＣＴによる計時が開始される。そして、タイマカウンタＣＴの値が所定閾値ＣＴｔｈに到達するまでの期間において出力値Voxsが中央値Vmidよりも大きくなったとき、一酸化炭素漏出フラグＸＣＯの値は「１」に設定される。一酸化炭素漏出フラグＸＣＯの値が「１」に設定されている期間は、漏出一酸化炭素影響残存期間とも称呼される。
【０１２６】
そして、図８を参照しながら説明したように、一酸化炭素漏出フラグＸＣＯの値が「１」に設定されている場合において極大値Vlocalmaxが取得され、その極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間である場合、リーン判定閾値ＶLthが通常時よりも小さい値（＝VLsp）に設定される。その結果、一酸化炭素が触媒４３から漏出することに起因する過剰な未燃物の触媒４３への供給が回避されるので、未燃物の排出量を低減することができる。
【０１２７】
以上、説明したように、第１制御装置は、
濃淡電池型の酸素濃度センサである下流側空燃比センサ５６の出力値Voxsに基づいて三元触媒４３に流入するガスである触媒流入ガスの空燃比を変更するように、機関１０に供給される混合気の空燃比をフィードバック制御する空燃比制御手段（図６乃至図８を参照。）を備えた内燃機関の空燃比制御装置である。
【０１２８】
更に、前記空燃比制御手段は、
三元触媒４３から所定量以上の一酸化炭素が漏出する状態である一酸化炭素漏出状態となったか否かを機関１０の運転状態を示すパラメータ（上流側空燃比abyfs）に基づいて判定する判定手段（図１０及び図１１のルーチンを参照。）と、
下流側空燃比センサ５６の出力値Voxsの極大値Vlocalmaxを取得する極大値取得手段（図９のルーチンを参照。）と、
前記一酸化炭素漏出状態となったと判定された後に前記極大値取得手段により最初に取得された極大値Vlocalmaxが、下流側空燃比センサ５６の出力値Voxsの最大値Vmaxよりも第１所定値だけ小さい高側閾値VHithと、（中央値Vmidよりも大きく且つ）高側閾値VHithよりも第２所定値だけ小さい低側閾値VLothと、の間の値であったとき、前記最初に取得された極大値Vlocalmaxの発生時点から所定の条件が成立する時点（出力値Voxsがリーン判定閾値ＶLth以下となった後、再び、出力値Voxsが中央値Vmid（＝リッチ判定閾値ＶRth）より大きくなる時点）までの特定期間において「前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均」が、「前記特定期間以外の期間において前記下流側空燃比センサの出力値が前記特定期間の下流側空燃比センサの出力値と同じであったとした場合に同特定期間以外の期間において前記空燃比のフィードバック制御により得られる前記触媒流入ガスの空燃比の平均」よりも大きくなるように、前記空燃比のフィードバック制御を変更する（実際には、リーン判定閾値ＶLthを通常時におけるリーン判定閾値（＝中央値Vmid）よりも小さい値VLsp（＝Vmid−α）」に設定する）制御変更手段（図８のステップ８２０、ステップ８２５、ステップ８７０及びステップ８８０）と、を含む。
【０１２９】
更に、前記判定手段は、上流側空燃比センサ５５を含み、上流側空燃比センサ５５の出力値Vabyfsに基づいて検出された上流側空燃比abyfsが理論空燃比よりも小さい所定の空燃比以下となったとき（実際には、上流側空燃比abyfsがリッチ空燃比afRichよりも値afthだけ小さい空燃比以下となったとき）、前記一酸化炭素漏出状態となったと判定するように構成されている（図１０を参照。）。
【０１３０】
加えて、前記空燃比制御手段は、
下流側空燃比センサ５６の出力値Voxsがリッチ判定閾値ＶRth以上となったときに前記触媒流入ガスの空燃比が理論空燃比よりも大きい空燃比であるリーン空燃比afLeanとなり（図６及び図７において、触媒リーン状態表示フラグＸCCROLeanの値が「０」に設定される場合）、且つ、下流側空燃比センサ５６の出力値Voxsが「リッチ判定閾値ＶRth以下のリーン判定閾値ＶLth」以下となったとき前記触媒流入ガスの空燃比が理論空燃比よりも小さい空燃比であるリッチ空燃比afRichとなるように（図６及び図８において、触媒リーン状態表示フラグＸCCROLeanの値が「１」に設定される場合）、前記空燃比のフィードバック制御を行うように構成され、
前記制御変更手段は、
前記特定期間の開始後において前記リーン判定閾値を前記特定期間以外の期間における値（＝Vmid）よりも小さい値VLsp（＝Vmid−α）に設定するように構成されている（図８の特徴にステップ８８０を参照。）。
【０１３１】
これによれば、触媒４３に一時的に多量の一酸化炭素が流入したことにより、一酸化炭素が触媒４３を吹き抜けて下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に到達して吸着され、その後、その一酸化炭素が「触媒層５６ｅ及び／又は拡散層５６ｄ」から離脱することによって、触媒４３の状態が酸素過剰状態でないにもかかわらず出力値Voxsが減少する場合、触媒４３の状態が酸素過剰状態であると判定するタイミングを遅らせ、機関の空燃比が過度に小さくならないように（即ち、触媒４３に過剰の未燃物が流入しないように）することができる。従って、エミッションを良好にすることができる。
【０１３２】
なお、一酸化炭素漏出フラグＸＣＯの値は、一酸化炭素漏出フラグＸＣＯの値が「１」に設定されてから所定時間が経過したときに「０」に戻されても良い。
【０１３３】
＜第２実施形態＞
次に、本発明の第２実施形態に係る空燃比制御装置（以下、「第２制御装置」とも称呼する。）について説明する。
【０１３４】
第２制御装置は、出力値Voxsがリーン判定閾値ＶLthよりも小さくなったとき、目標空燃比abyfrを「理論空燃比よりも小さい第１リッチ空燃比afRich1」に設定する。更に、第２制御装置は、第１制御装置と同様、「一酸化炭素の触媒４３からの一時的な流出」に起因する下流側空燃比センサ５６の出力値Voxsの減少が生じるか否かを予測する。そして、第２制御装置は、そのような出力値Voxsの減少が生じると予測される場合に出力値Voxsがリーン判定閾値ＶLthよりも小さくなったとき、目標空燃比abyfrを「理論空燃比よりは小さいが、第１リッチ空燃比afRich1よりは大きい第２リッチ空燃比afRich2」に設定する（図１２の時刻ｔ５−時刻ｔ６を参照。）。
【０１３５】
これにより、図１２の破線の円ＥＮ内に示したように、実際の上流側空燃比が第１リッチ空燃比afRich1よりも更に小さい空燃比になり、それにより、触媒４３を一酸化炭素が通過し（吹き抜け）、その一酸化炭素が下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に吸着されその後離脱することに起因して、触媒４３の状態が酸素過剰状態（リーン状態）でないにも拘わらず出力値Voxsが低下して酸素過剰状態と判定された場合であっても、触媒４３に過剰な未燃物が流入することを回避することができる。その結果、一酸化炭素の排出量が増大することを回避することができる。
【０１３６】
（作動）
第２制御装置のＣＰＵは、図６と、図９乃至図１１と、に示されたルーチンを実行する。更に、第２制御装置のＣＰＵは、所定時間が経過する毎に図１３及び図１４にフローチャートにより示したルーチンを実行するようになっている。図６と、図９乃至図１１と、に示したルーチンについては説明済みである。従って、以下、図１３及び図１４のルーチンについて説明する。
【０１３７】
図１３に示したルーチンは図８に示したルーチンと類似している。図１３に示したステップであって図８にも示されたステップには、図８に示されたステップと同一の符号が付されている。これらのステップの詳細な説明は適宜省略される。図１３に示したルーチンは、図８に示した「ステップ８３０及びステップ８８０」を「ステップ１３１０及びステップ１３２０」によりそれぞれ置換した点においてのみ図８に示したルーチンと相違している。
【０１３８】
より具体的に述べると、ＣＰＵは、一酸化炭素漏出フラグＸＣＯの値が「０」である場合（ステップ８２０での「Ｎｏ」との判定を参照。）と、極大値Vlocalmaxが取得されない場合（ステップ８２５での「Ｎｏ」との判定を参照。）と、取得された極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間でない場合（ステップ８７０での「Ｎｏ」との判定を参照。）と、において、ステップ１３１０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」である場合に設定される目標空燃比abyfrを「理論空燃比stoichよりも小さい第１リッチ空燃比afRich1」に設定する。
【０１３９】
これに対し、ＣＰＵは、一酸化炭素漏出フラグＸＣＯの値が「１」であり、極大値Vlocalmaxが取得され、且つ、その極大値Vlocalmaxが高側閾値VHithと低側閾値VLothとの間である場合（ステップ８２０、ステップ８２５及びステップ８７０の総てのステップでの「Ｙｅｓ」との判定を参照。）においてステップ１３２０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」である場合に設定される目標空燃比abyfrを第２リッチ空燃比afRich2に設定する。この第２リッチ空燃比afRich2は、前述したように、第１リッチ空燃比afRich1と理論空燃比stoichとの間の空燃比である。
【０１４０】
一方、図１４に示したルーチンは図７に示したルーチンと類似している。図１４に示したステップであって図７にも示されたステップには、図７に示されたステップと同一の符号が付されている。これらのステップの詳細な説明は適宜省略される。図１４に示したルーチンは、図７に示したステップ７３０の直後にステップ１４１０を追加した点においてのみ図７に示したルーチンと相違している。
【０１４１】
より具体的に述べると、ＣＰＵは、触媒リーン状態表示フラグＸCCROLeanの値が「１」であり、且つ、出力値Voxsが「リッチ判定閾値ＶRthとして設定された中央値Vmid」以上である場合、ステップ７３０にて触媒リーン状態表示フラグＸCCROLeanの値を「０」に設定する。次いで、ＣＰＵはステップ１４１０に進み、触媒リーン状態表示フラグＸCCROLeanの値が「１」である場合に設定される目標空燃比abyfrを第１リッチ空燃比afRich1に設定する。
【０１４２】
これは、目標空燃比が第２リッチ空燃比afRich2に設定された場合、その後、触媒リーン状態表示フラグＸCCROLeanの値が「０」に戻される際に、次に触媒リーン状態表示フラグＸCCROLeanの値が「１」となった場合に設定される目標空燃比を第１リッチ空燃比afRich1へと戻しておくためである（図１２の時刻ｔ５以降を参照。）。
【０１４３】
以上、説明したように、第２制御装置が備える空燃比制御手段は、
下流側空燃比センサ５６の出力値Voxsがリッチ判定閾値ＶRth以上となったときに触媒流入ガスの空燃比が「理論空燃比よりも大きい空燃比である第１リーン空燃比afLean」となり、且つ、下流側空燃比センサ５６の出力値Voxsが「リッチ判定閾値ＶRth以下のリーン判定閾値ＶLth」以下となったとき前記触媒流入ガスの空燃比が「理論空燃比よりも小さい空燃比である第１リッチ空燃比afRich1」となるように、空燃比フィードバック制御を行うように構成される（図６のステップ６４５乃至ステップ６５５、図１３のステップ１３１０、図１４のステップ１４１０）。
【０１４４】
更に、第２制御装置が備える制御変更手段は、
前記特定期間（極大値Vlocalmaxの発生時点から所定の条件が成立する時点までの期間）において下流側空燃比センサ５６の出力値Voxsがリーン判定閾値ＶLth（＝Vmid）以下となったとき、前記触媒流入ガスの空燃比が「前記第１リッチ空燃比afRichよりも大きく且つ理論空燃比より小さい空燃比」である第２リッチ空燃比afRich2になるように前記空燃比のフィードバック制御を変更するように構成されている（図１３のステップ１３２０）。
【０１４５】
これによれば、触媒４３に一時的に多量の一酸化炭素が流入したことにより、下流側空燃比センサ５６の「触媒層５６ｅ及び／又は拡散層５６ｄ」に到達し、その一酸化炭素が「触媒層５６ｅ及び／又は拡散層５６ｄ」から離脱することによって、触媒４３の状態が酸素過剰状態でないにもかかわらず出力値Voxsが減少する場合、仮に、触媒４３の状態が酸素過剰状態であると判定されたとしても、その際の触媒流入ガスの空燃比は「第１リッチ空燃比afRich1よりも大きい第２リッチ空燃比afRich2」である。従って、触媒流入ガスの空燃比が過小になることを回避することができるので、エミッションを良好にすることができる。
【０１４６】
以上、説明したように、本発明による空燃比制御手段の各実施形態は、触媒４３から一時的に一酸化炭素が流出する運転状態が発生し、それにより下流側空燃比センサ５６の出力値Voxsが触媒４３の状態と乖離する状態が発生した場合においても、その後において多量の未燃物が触媒４３に流入することを回避できるので、エミッションを良好にすることができる。
【０１４７】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、第１実施形態と第２実施形態を組み合すこともできる。即ち、前記特定期間において、リーン判定閾値ＶLthを「通常時におけるリーン判定閾値（＝中央値Vmid）よりも小さい値VLsp（＝Vmid−α）」に設定するとともに、出力値Voxsがその値VLspよりも小さくなったときの目標空燃比を第１リッチ空燃比afRich1に代えて第２リッチ空燃比afRich2に設定してもよい。
【符号の説明】
【０１４８】
１０…内燃機関、２１…燃焼室、２３…排気ポート、２５…燃料噴射弁、４１…エキゾーストマニホールド、４１ｂ…集合部、４２…エキゾーストパイプ、４３…上流側触媒（三元触媒）、４４…下流側触媒、５５…上流側空燃比センサ、５６…下流側空燃比センサ、６０…電気制御装置。
【図１】
2012163080.tif 000003
【図２】
2012163080.tif 000004
【図３】
2012163080.tif 000005
【図４】
2012163080.tif 000006
【図５】
2012163080.tif 000007
【図６】
2012163080.tif 000008
【図７】
2012163080.tif 000009
【図８】
2012163080.tif 000010
【図９】
2012163080.tif 000011
【図１０】
2012163080.tif 000012
【図１１】
2012163080.tif 000013
【図１２】
2012163080.tif 000014
【図１３】
2012163080.tif 000015
【図１４】
2012163080.tif 000016