図20は、「上述した従来装置」及び「本発明による燃料供給量制御装置」による空燃比制御の様子を破線及び実線によりそれぞれ表したタイムチャートである。図20に示した例においては、時刻t0にて、下流側空燃比センサの出力値Voxsが中央値Vmidよりも小さい値から中央値Vmidよりも大きい値に変化している。前述したように、従来装置は、下流側目標値Voxsrefを中央値Vmidに設定している。
従って、時刻t0以降における出力値Voxsは中央値Vmidよりも大きくなるので、従来装置によって算出されるサブフィードバック量は基本燃料噴射量を減少(減量補正)する値になる。これにより、触媒流入ガスの空燃比は理論空燃比よりもリーン側の空燃比へと制御される。以下、理論空燃比よりもリーン側の空燃比を、単に「リーン空燃比」とも称呼する。
この結果、触媒流入ガスには過剰な酸素が含まれるので、触媒に吸蔵されている酸素の量(以下、「酸素吸蔵量OSA」とも称呼する。)は増加する。触媒の酸素吸蔵量OSAが比較的小さい場合、触媒は酸素を効率良く吸蔵することができる。従って、時刻t0における酸素吸蔵量OSAが比較的小さい場合、時刻t0以降において触媒流入ガスに含まれる過剰な酸素の殆どは触媒に吸蔵される。その結果、触媒流出ガスに酸素が殆ど含まれていない状態が継続するので、下流側空燃比センサの出力値Voxsは最大出力値Vmaxに向けて増大し続ける。
その後、時刻t1において触媒の酸素吸蔵量OSAが所定の上限値CHiに到達すると、触媒は酸素を効率良く吸蔵することができなくなる。よって、触媒流出ガスに比較的多量の酸素が含まれ始める。この結果、時刻t1の直後の時点である時刻t2から下流側空燃比センサの出力値Voxsは最小出力値Vminに向けて減少し始める。
ところが、時刻t2からその後の時刻t5までの期間、出力値Voxsは中央値Vmid(従来装置の下流側目標値Voxsref)よりも大きいので、従来装置によるサブフィードバック量は基本燃料噴射量を減少する値になり続ける。この結果、時刻t2以降においても酸素吸蔵量OSAは増大し続け、時刻t5よりも前の時刻t4にて最大酸素吸蔵量Cmaxに到達する。
このとき、触媒流入ガスの空燃比は理論空燃比よりリーン側の空燃比であり、従って、機関に供給される混合気の空燃比(以下、単に「機関の空燃比」とも称呼する。)も理論空燃比よりリーン側の空燃比である。このため、触媒流入ガスには多量のNOx(窒素酸化物)が含まれている。ところが、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに到達しているから、触媒はNOxを充分に浄化することができない。この結果、時刻t4から時刻t5までの期間において、比較的多量のNOxが触媒の下流に排出される場合がある。
このように、従来装置は、触媒による排気浄化作用にとって不必要な「燃料噴射量の減量補正」を行う場合がある(図20の触媒流入ガスの空燃比のハッチング部を参照。)。換言すると、従来装置によれば、触媒流入ガスの空燃比が「触媒の排気浄化効率を良好な値に維持するために必要とされる空燃比(以下、「触媒流入ガス要求空燃比」とも称呼する。)」よりもリーン側の空燃比に制御されてしまう場合が発生する。
一方、下流側空燃比センサの出力値Voxsが「中央値Vmidに設定された下流側目標値Voxsref」よりも小さくなると、従来装置によって算出されるサブフィードバック量は基本燃料噴射量を増大(増量補正)する値となる。それにより、触媒流入ガスの空燃比は理論空燃比よりもリッチ側の空燃比に制御される。以下、理論空燃比よりもリッチ側の空燃比を、単に「リッチ空燃比」とも称呼する。
この結果、触媒流入ガスには過剰な未燃物(CO、HC及びH2等)が含まれるので、触媒に吸蔵されている酸素はその未燃物の浄化に使用される。従って、酸素吸蔵量OSAは減少する。しかしながら、従来装置によれば、下流側空燃比センサの出力値Voxsが下流側目標値Voxsrefよりも小さくなった時点直後等において、酸素吸蔵量OSAは最大酸素吸蔵量Cmax近傍となっている(図20の時刻t5の直後等を参照。)。そのため、微量ではあるものの触媒流入ガスに含まれる酸素はそのまま触媒下流に流出する。更には、下流側空燃比センサの近傍又は下流側空燃比センサの拡散抵抗層に残存する酸素を完全に消費するのに充分な量の未燃物が触媒下流に流出しない。その結果、下流側空燃比センサの出力値Voxsは下流側目標値Voxsrefよりも小さい値を維持する。
その後、触媒の酸素吸蔵量OSAが所定の下限値CLo(<CHi)にまで減少すると、触媒は触媒流入ガスに含まれる微量な酸素を効率良く吸蔵し始めるとともに触媒流入ガスに含まれる未燃物を完全には浄化できなくなる。よって、触媒流出ガスに酸素が含まれなくなるとともに、比較的多量の未燃物が含まれ始める。この未燃物により、下流側空燃比センサの近傍又は下流側空燃比センサの拡散抵抗層に残存する酸素が消費される。この結果、下流側空燃比センサの出力値Voxsは最大出力値Vmaxに向けて増大し始める。
ところが、その時点から暫くの間、出力値Voxsは下流側目標値Voxsref(中央値Vmid)よりも小さいから、従来装置によるサブフィードバック量は基本燃料噴射量を増大する値になり続ける。この結果、触媒の酸素吸蔵量OSAは減少し続け「0」に到達してしまう。
このとき、触媒流入ガスの空燃比は理論空燃比よりリッチ側の空燃比であり、従って、機関の空燃比も理論空燃比よりリッチ側の空燃比である。このため、触媒流入ガスには多量の未燃物が含まれている。更に、酸素吸蔵量OSAが「0」に達しているから、触媒はその未燃物を充分に浄化することができない。この結果、多量の未燃物が触媒の下流に排出される場合がある。
このように、従来装置は、触媒による排気浄化作用にとって不必要な「燃料噴射量の増量補正」を行う場合がある。換言すると、従来装置によれば、触媒流入ガスの空燃比が「触媒流入ガス要求空燃比」よりもリッチ側の空燃比に制御されてしまう場合が発生する。
そこで、本発明者は、実際の触媒流入ガスの空燃比が「触媒流入ガス要求空燃比」に出来るだけ一致するように「機関に供給される混合気の空燃比」を制御することにより、エミッションを更に改善することができる内燃機関の燃料供給量制御装置を開発している。以下、この開発中の燃料供給量制御装置を「本発明装置」と称呼する。本発明装置によれば、触媒を廉価とするために触媒が担持する貴金属の量を予め低減することにより、新品の状態にある触媒の最大酸素吸蔵量Cmaxを低下させても、長期に渡って「エミッションが悪化することを回避すること」が可能である。
ここで、本発明装置の空燃比制御の概要について説明する。本発明装置は、下流側空燃比センサの出力値Voxsの変化速度ΔVoxsは触媒の状態(酸素吸蔵状態)を表すので、出力値Voxsの変化速度ΔVoxsに基づいて「触媒流入ガスの空燃比(即ち、機関に供給される混合気の空燃比)」を制御することにより、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比」に一致させることができるとの知見に基づく。なお、出力値Voxsの変化速度ΔVoxsとは、単位時間あたりの出力値Voxsの変化量、即ち、出力値Voxsの時間微分値(dVoxs/dt)に相当する値のことである。
以下、下流側空燃比センサの出力値Voxsの変化速度ΔVoxsが「触媒の状態を表す」理由について場合分けしながら説明する。
(1)酸素吸蔵量OSAが上述した下限値CLo(即ち、「0」に近い所定値)以下である状態の触媒(酸素不足状態にある触媒、酸素不足触媒)に、リーン空燃比の燃焼ガス(排ガス)を供給した場合。
この場合、図4に模式的に示したように、燃焼ガスである触媒流入ガスには「微量の未燃物(HC等)」と「多量且つ過剰な酸素(O2)」とが含まれている。酸素は触媒43中の酸素吸蔵材(例えば、セリア(CeO2))と結合することにより触媒43に吸蔵される。未燃物は「触媒流入ガス中の酸素又は触媒43に残存している酸素」と結合する。このように、触媒流入ガスに含まれる酸素は触媒43内において吸蔵又は消費されるので、触媒流出ガス中に酸素は殆ど存在しない。この結果、下流側空燃比センサの出力値Voxsは最大出力値Vmax近傍の値となる。
但し、リーン空燃比の触媒流入ガスに含まれる酸素の量はリッチ空燃比の触媒流入ガスに含まれる酸素の量よりも非常に多いので、このような酸素不足状態にある触媒にリーン空燃比の触媒流入ガスが流入すると、酸素が極微量ではあるが触媒から漏れ出す。よって、下流側空燃比センサの出力値Voxsは、最大出力値Vmaxよりも僅かに低下した値(但し、中央値Vmidよりもかなり大きい値)になる(図3の点P1を参照。)。
(2)触媒にリーン空燃比の燃焼ガスを供給し続けることにより、酸素吸蔵量OSAが上述した上限値CHi(即ち、最大酸素吸蔵量Cmaxに近い所定値)以上となった場合。
この場合、図5に模式的に示したように、燃焼ガスである触媒流入ガスには「微量の未燃物」と「多量且つ過剰な酸素」とが含まれている。この状態において、触媒43の酸素を吸蔵する余力は小さくなっているので、触媒流入ガス中の酸素は、その一部が触媒43に吸蔵されるものの、残りの多くは触媒43の下流に流出し始める。未燃物は「触媒43に吸蔵されている酸素」と結合する。従って、触媒流出ガスが過剰の酸素を含み始める。よって、下流側空燃比センサの出力値Voxsは最小出力値Vmin近傍に向けて急激に減少し始め、その後、最小出力値Vminに到達する。
以上の説明から理解されるように、理論空燃比よりもリーン側の空燃比の燃焼ガスを触媒に供給している場合に下流側空燃比センサの出力値Voxsが減少を開始した時、触媒の酸素吸蔵量OSAは相当に大きくなっている。従って、この状態において、触媒に「理論空燃比よりもリーン側の空燃比のガス」を供給し続けることは適切でない。換言すると、下流側空燃比センサの出力値Voxsが比較的迅速に減少している場合(即ち、出力値Voxsが減少しかつ出力値Voxsの変化速度ΔVoxsの絶対値が所定の閾値よりも大きい場合)、たとえ出力値Voxsが中央値Vmidよりも大きくても、「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
(3)酸素吸蔵量OSAが上述した上限値CHi以上である状態の触媒(酸素過剰状態にある触媒、酸素過剰触媒)に、リッチ空燃比の燃焼ガスを供給した場合。
この場合、図6に模式的に示したように、燃焼ガスである触媒流入ガスには「多量且つ過剰な未燃物」と「微量の酸素」とが含まれている。未燃物は「触媒43に吸蔵されている酸素」と結合するから、触媒43の下流に漏れ出さない。一方、触媒流入ガス中の微量な酸素は触媒43に吸蔵されることなく触媒43を通過し、触媒43の下流に流出する。この結果、下流側空燃比センサの出力値Voxsは最小出力値Vmin近傍の値であって、最小出力値Vminよりも僅かに増大した値(但し、中央値Vmidよりはかなり小さい値)になる(図3の点P2を参照。)。
(4)触媒にリッチ空燃比の燃焼ガスを供給し続けることにより、酸素吸蔵量OSAが上述した下限値CLo(即ち、「0」に近い所定値)以下となった場合。
この場合、図7に模式的に示したように、燃焼ガスである触媒流入ガスには「多量且つ過剰な未燃物」と「微量の酸素」とが含まれている。このとき、それまでに吸蔵していた酸素を未燃物に対して与える「触媒43の余力」は小さくなっているので、触媒流入ガス中の未燃物は、その一部が「触媒43に吸蔵されている酸素」と結合し且つ他の一部が「触媒流入ガス中の酸素」と結合するものの、残りの多くは触媒43の下流に流出し始める。更に、触媒流入ガス中の酸素は触媒43に吸蔵される。従って、触媒流出ガスには酸素が含まれず、未燃物が含まれ始める。よって、下流側空燃比センサの出力値Voxsは最大出力値Vmax近傍に向けて急激に増大し、その後、最大出力値Vmaxに到達する。
以上の説明から理解されるように、理論空燃比よりもリッチ側の空燃比の燃焼ガスを触媒に供給している場合に下流側空燃比センサの出力値Voxsが増大を開始した時、触媒の酸素吸蔵量OSAは相当に小さくなっている。従って、この状態において、触媒に「理論空燃比よりもリッチ側の空燃比のガス」を供給し続けることは適切でない。換言すると、下流側空燃比センサの出力値Voxsが比較的迅速に増大している場合、(即ち、出力値Voxsが増大しかつ出力値Voxsの変化速度ΔVoxsの絶対値が所定の閾値よりも大きい場合)、たとえ出力値Voxsが中央値Vmidよりも小さくても、「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリーン側の空燃比である。
但し、出力値Voxsが最大出力値Vmax近傍の値である場合には、変化速度ΔVoxsに拘わらず触媒43の状態は酸素不足状態(酸素吸蔵量OSAが実質的に「0」である状態)であると考えられる。従って、その場合の「触媒流入ガス要求空燃比」は、理論空燃比又は理論空燃比よりもリーン側の空燃比である。
同様に、出力値Voxsが最小出力値Vmin近傍の値である場合には、変化速度ΔVoxsに拘わらず触媒43の状態は酸素過剰状態(酸素吸蔵量OSAが実質的に最大酸素吸蔵量Cmaxである状態)であると考えられる。従って、その場合の「触媒流入ガス要求空燃比」は、理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
本発明装置は、このような知見に基づいてなされたものであり、触媒流出ガスに含まれる酸素の濃度(酸素分圧)に応じた出力値Voxsを出力する濃淡電池型の酸素濃度センサ(下流側空燃比センサ)と、その酸素濃度センサの出力値Voxsと変化速度ΔVoxsとに基づいて「機関に供給される混合気の空燃比(機関の空燃比)」を制御する燃料供給量制御手段と、を備える。
より具体的には、前記燃料供給量制御手段は、
(A1)出力値Voxsが「所定の低側閾値」と「前記低側閾値よりも大きい所定の高側閾値」との間にある場合、以下に述べる第1期間において、前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の所定の第1リーン空燃比となるように、機関の空燃比を制御する。
前記第1期間の開始時点は、前記出力値Voxsが増大しているときの前記出力値の変化速度の絶対値|ΔVoxs|が所定の第1変化速度閾値以上となった時点である。
前記第1期間の終了時点は、前記出力値Voxsが減少しているときの前記出力値の変化速度の絶対値|ΔVoxs|が所定の第2変化速度閾値以上となる時点、及び、前記出力値Voxsが前記高側閾値以上になる時点、の何れかである。
更に、前記燃料供給量制御手段は、
(A2)出力値Voxsが「前記低側閾値」と「前記高側閾値」との間にある場合、以下に述べる第2期間において、前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の所定の第1リッチ空燃比となるように、機関の空燃比を制御する。
前記第2期間の開始時点は、前記出力値Voxsが減少しているときの前記出力値の変化速度の絶対値|ΔVoxs|が前記第2変化速度閾値以上となった時点である。
前記第2期間の終了時点は、前記出力値Voxsが増大しているときの前記出力値の変化速度の絶対値|ΔVoxs|が前記第1変化速度閾値以上となる時点、及び、前記出力値Voxsが前記低側閾値以下となる時点、の何れかである。
なお、前記低側閾値は前記中央値Vmidと前記最小出力値Vminとの間の所定値であり、前記高側閾値は前記中央値Vmidと前記最大出力値Vmaxとの間の所定値である。更に、前記第1変化速度閾値及び前記第2変化速度閾値は何れも正の所定値であり、両者は互いに同一であっても異なっていてもよい。
前述したように、下流側空燃比センサ(酸素濃度センサ)の出力値Voxsが比較的迅速に増大している場合、たとえ下流側空燃比センサの出力値が中央値Vmidよりも小さいときであっても、触媒の酸素吸蔵量OSAは最大酸素吸蔵量Cmaxの近傍ではなく、寧ろ、「0」に近い値にまで減少している。従って、下流側空燃比センサの出力値が比較的迅速に増大している場合(より具体的には、下流側空燃比センサの出力値の変化速度ΔVoxsが正であり且つその絶対値|ΔVoxs|が第1変化速度閾値よりも大きいとき)、触媒流入ガス要求空燃比は理論空燃比よりリーン側の空燃比である。
それ故、上記構成(A1)によれば、酸素吸蔵量OSAが「0」に到達する前の時点において「触媒流入ガスの空燃比」を「理論空燃比よりもリーン側の空燃比(第1リーン空燃比)」に設定することができ、それにより酸素吸蔵量OSAを増大させ始めることができる(図20の時刻t7以降における実線を参照。)。即ち、本発明装置は、従来装置のように不必要な燃料噴射量の増量補正を行わないので、多量の未燃物が排出されることを回避することができる。
加えて、前述したように、下流側空燃比センサ(酸素濃度センサ)の出力値Voxsが比較的迅速に減少している場合、たとえ下流側空燃比センサの出力値が中央値Vmidよりも大きいときであっても、触媒の酸素吸蔵量OSAは「0」近傍の量ではなく、寧ろ、最大酸素吸蔵量Cmaxに近い値にまで増大している。従って、下流側空燃比センサの出力値が比較的迅速に減少している場合(より具体的には、下流側空燃比センサの出力値の変化速度ΔVoxsが負であり且つその絶対値|ΔVoxs|が第2変化速度閾値よりも大きいとき)、触媒流入ガス要求空燃比は理論空燃比よりもリッチ側の空燃比である。
それ故、上記構成(A2)によれば、酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに到達する前の時点において「触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比(第1リッチ空燃比)」に設定することができ、それにより酸素吸蔵量OSAを減少させ始めることができる(図20の時刻t3以降における実線を参照。)。即ち、本発明装置は、従来装置のように不必要な燃料噴射量の減量補正を行わないので、多量のNOxが触媒の下流に排出されることを回避することができる。
この結果、本発明装置は、図8に示したように、フューエルカット制御の終了直後及び触媒過熱防止増量の終了直後等を除く「通常のフィードバック制御中」、出力値Voxsが高側閾値と低側閾値との間において緩慢に変化するように機関の空燃比を制御することができる。即ち、本発明装置によれば、触媒の酸素吸蔵量OSAが「0」又は最大酸素吸蔵量Cmaxに到達しないように機関の空燃比を制御することができるので、換言すると、酸素吸蔵量OSAが「0」よりも大きい値と最大酸素吸蔵量Cmaxよりも小さい値との間で変化するように機関の空燃比を制御することができるので、エミッションを良好に維持することができる。
ところで、前述したように、前記高側閾値は、中央値Vmidと最大出力値Vmaxとの間の値に設定される。例えば、前記高側閾値は、「触媒流入ガスの空燃比」が「理論空燃比よりもリーン側の空燃比」であり且つ触媒の酸素吸蔵量OSAが増大している場合であって、「触媒流出ガスの空燃比」が「理論空燃比」であるときの出力値Voxs(上限値Vjogen)又はその上限値Vjogenよりも中央値Vmidに近い値となるように設定される。
触媒の酸素吸蔵量OSAが「0」又は実質的に「0」である場合(触媒が酸素不足状態である場合)、酸素は触媒の下流に流出しないか(図7を参照。)又は酸素は極めて僅かな量だけ触媒の下流に流出する(図4を参照。)。従って、触媒が酸素不足状態であるとき、出力値Voxsは最大出力値Vmax又は最大出力値Vmax近傍の値となるので、出力値Voxsは前記高側閾値以上となる。
従って、そのような場合(出力値Voxsが前記高側閾値よりも大きい場合)には、「触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比」に設定しないほうがよい。換言すると、この場合の「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリーン側の空燃比である。
そこで、前記燃料供給量制御手段は、更に、
(B)出力値Voxsが前記高側閾値以上である場合、
前記触媒流入ガスの空燃比が理論空燃比よりもリーン側の第2リーン空燃比となるように、機関の空燃比を制御するように構成されている。
これによれば、触媒過熱防止及び出力確保等のための燃料増量が行われることにより酸素吸蔵量OSAが「0」に達し、その後、増量が不要となった場合において、酸素吸蔵量OSAを速やかに増大させることができる。更に、上記(A1)及び上記(A2)に従った空燃比の制御中において、出力値Voxsが高側閾値以上となった場合にも、酸素吸蔵量OSAを速やかに増大させ、出力値Voxsを高側閾値と低下側閾値との間に戻すことができる(図9を参照。)。
これに対し、前記低側閾値は、中央値Vmidと最小出力値Vminとの間の値に設定される。例えば、前記低側閾値は、「触媒流入ガスの空燃比」が「理論空燃比よりもリッチ側の空燃比」であり且つ触媒の酸素吸蔵量OSAが減少している場合であって、「触媒流出ガスの空燃比」が「理論空燃比」であるときの出力値Voxs(下限値Vkagen)又はその下限値Vkagenよりも中央値Vmidに近い値となるように設定される。
触媒の酸素吸蔵量OSAが最大酸素吸蔵量Cmax又は実質的に最大酸素吸蔵量Cmaxである場合(触媒が酸素過剰状態である場合)、酸素が触媒の下流に多量に流出するか(図5を参照。)又は酸素が触媒の下流に少量だけ流出する(図6を参照。)。従って、触媒が酸素過剰状態であるとき、出力値Voxsは最小出力値Vmin又は最小出力値Vmin近傍の値となるので、出力値Voxsは前記低側閾値以下となる。
従って、そのような場合(出力値Voxsが前記低側閾値よりも小さい場合)には、「触媒流入ガスの空燃比」を「理論空燃比よりもリーン側の空燃比」に設定しないほうがよい。換言すると、この場合の「触媒流入ガス要求空燃比」は理論空燃比又は理論空燃比よりもリッチ側の空燃比である。
そこで、前記燃料供給量制御手段は、更に、
(C)出力値Voxsが前記低側閾値以下である場合、前記触媒流入ガスの空燃比が理論空燃比よりもリッチ側の第2リッチ空燃比となるように、機関の空燃比を制御するように構成されている。
これによれば、例えば、フューエルカット運転が行われることにより酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに達し、その後、フューエルカット運転が終了した場合において、酸素吸蔵量OSAを速やかに減少させることができる。更に、上記(A1)及び上記(A2)に従った空燃比の制御中において、出力値Voxsが低側閾値以下となった場合にも、酸素吸蔵量OSAを速やかに減少させ、出力値Voxsを高側閾値と低下側閾値との間に戻すことができる(図10を参照。)。
図11は、フューエルカット制御の終了後における「本発明装置による出力値Voxsの変化」の様子を拡大して示したタイムチャートである。この例において、フューエルカット制御は時刻t1にて終了している。従って、前記(C)に従った制御により、時刻t1以降、触媒流入ガスの空燃比は第2リッチ空燃比に制御される。その後、時刻t2において、出力値Voxsは低側閾値と高側閾値との間の値であり且つ出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が「通常の第1変化速度閾値ΔV1th=ΔV1mid」を超える。従って、前記(A1)に従った制御により、時刻t2以降、触媒流入ガスの空燃比は第1リーン空燃比に制御される。
前述したように、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が第1変化速度閾値ΔV1thを超えたとき、触媒の状態は既に酸素不足状態へとなっている。従って、通常のフィードバック制御(フューエルカット終了直後を除く期間におけるフィードバック制御)において、絶対値|ΔVoxs|が第1変化速度閾値ΔV1th以上となる時刻t2にて「触媒流入ガスの空燃比」を「第1リーン空燃比」に設定することは、「触媒流入ガス要求空燃比」に合致した空燃比制御であると言える。
しかしながら、この時刻t2においては、触媒に担持されている酸素吸蔵材は酸素を放出していて「還元状態となっている」が、触媒に担持されている「触媒物質である貴金属」は充分に還元状態に至っていない。即ち、貴金属はフューエルカット制御中の多量の酸素によって酸化された状態にあり、貴金属がこの状態を脱するためには、酸素吸蔵材から「フューエルカット制御中に吸蔵した過剰な酸素」を放出させるのに必要な未燃物よりも多くの未燃物が必要である。従って、仮に、時刻t2にて空燃比を第2リッチ空燃比から第1リーン空燃比へと変更してしまうと、貴金属が充分に還元できていない(酸素被毒状態である)ので、その後の触媒浄化効率が低下する可能性がある。
そこで、本発明装置の燃料供給量制御手段は、
フューエルカット終了時点(即ち、フューエルカット終了条件が成立することによりフューエルカット制御が終了されて機関への燃料の供給が再開される時点)から、出力値Voxsが増大しているときの出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が前記第1変化速度閾値ΔV1th以上となる時点までの期間(この期間は「フューエルカット制御終了後期間」とも称呼される。)において、その第1変化速度閾値ΔV1thを、フューエルカット制御終了後期間の経過後(即ち、通常のフィードバック制御)における値ΔV1midよりも大きい値ΔV1largeに設定するように構成されている。
これによれば、フューエルカット制御終了後期間において、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が「フューエルカット制御終了後期間の経過後における第1変化速度閾値(=ΔV1mid)よりも大きい値に設定された第1変化速度閾値(=ΔV1large)」以上となる時点(図11の時刻t3)まで、触媒流入ガスの空燃比は第2リッチ空燃比に維持される。この結果、フューエルカット制御終了後期間において、触媒の酸素吸蔵量OSAを迅速に増大させることができるとともに、触媒の貴金属が「フューエルカット制御による酸化状態」から脱して還元状態となるまで、触媒流入ガスの空燃比をリッチ空燃比(第2リッチ空燃比)に設定することができる。従って、フューエルカット制御終了後期間の経過後において、エミッションを良好に維持することができる。
以下、本発明の実施形態に係る内燃機関の燃料供給量制御装置について図面を参照しながら説明する。
(構成)
図1は、本発明の実施形態に係る燃料供給量制御装置(以下、「本制御装置」とも称呼する。)が適用される内燃機関10の概略構成を示している。機関10は、4サイクル・火花点火式・多気筒(本例において4気筒)・ガソリン燃料機関である。機関10は、本体部20、吸気系統30及び排気系統40を備えている。
本体部20は、シリンダブロック部とシリンダヘッド部とを備えている。本体部20は、ピストン頂面、シリンダ壁面及びシリンダヘッド部の下面からなる複数(4個)の燃焼室(第1気筒#1乃至第4気筒#4)21を備えている。
シリンダヘッド部には、各燃焼室(各気筒)21に「空気及び燃料からなる混合気」を供給するための吸気ポート22と、各燃焼室21から排ガス(既燃ガス)を排出するための排気ポート23と、が形成されている。吸気ポート22は図示しない吸気弁により開閉され、排気ポート23は図示しない排気弁により開閉されるようになっている。
シリンダヘッド部には複数(4個)の点火プラグ24が固定されている。各点火プラグ24は、その火花発生部が各燃焼室21の中央部であってシリンダヘッド部の下面近傍位置に露呈するように配設されている。各点火プラグ24は、点火信号に応答して火花発生部から点火用火花を発生するようになっている。
シリンダヘッド部には更に複数(4個)の燃料噴射弁(インジェクタ)25が固定されている。燃料噴射弁25は、各吸気ポート22に一つずつ(即ち、一つの気筒に対して一つ)設けられている。燃料噴射弁25は、噴射指示信号に応答し、「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート22内に噴射するようになっている。
更に、シリンダヘッド部には、吸気弁制御装置26が設けられている。この吸気弁制御装置26は、インテークカムシャフト(図示せず)とインテークカム(図示せず)との相対回転角度(位相角度)を油圧により調整・制御する周知の構成を備えている。吸気弁制御装置26は、指示信号(駆動信号)に基いて作動し、吸気弁の開弁タイミング(吸気弁開弁タイミング)を変更することができるようになっている。
吸気系統30は、インテークマニホールド31、吸気管32、エアフィルタ33、スロットル弁34及びスロットル弁アクチュエータ34aを備えている。
インテークマニホールド31は、各吸気ポート22に接続された複数の枝部と、それらの枝部が集合したサージタンク部と、を備えている。吸気管32はサージタンク部に接続されている。インテークマニホールド31、吸気管32及び複数の吸気ポート22は、吸気通路を構成している。エアフィルタ33は吸気管32の端部に設けられている。スロットル弁34はエアフィルタ33とインテークマニホールド31との間の位置において吸気管32に回動可能に取り付けられている。スロットル弁34は、回動することにより吸気管32が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ34aは、DCモータからなり、指示信号(駆動信号)に応答してスロットル弁34を回動させるようになっている。
排気系統40は、エキゾーストマニホールド41、エキゾーストパイプ(排気管)42、上流側触媒43及び下流側触媒44を備えている。
エキゾーストマニホールド41は、各排気ポート23に接続された複数の枝部41aと、それらの枝部41aが集合した集合部(排気集合部)41bと、からなっている。エキゾーストパイプ42は、エキゾーストマニホールド41の集合部41bに接続されている。エキゾーストマニホールド41、エキゾーストパイプ42及び複数の排気ポート23は、排ガスが通過する通路を構成している。なお、本明細書において、エキゾーストマニホールド41の集合部41b及びエキゾーストパイプ42により形成される通路を、便宜上、「排気通路」と称呼する。
上流側触媒43は、セラミックからなる担持体に「触媒物質である貴金属(パラジウムPd及び白金Pt、ロジウムRd等の一種類以上)」及び「酸素吸蔵材であるセリア(CeO2)」を担持していて、酸素吸蔵・放出機能(酸素吸蔵機能)を有する三元触媒である。上流側触媒43はエキゾーストパイプ42に配設(介装)されている。上流側触媒43は所定の活性温度に到達すると、「未燃物(HC、CO及びH2等)と窒素酸化物(NOx)とを同時に浄化する触媒機能」及び「酸素吸蔵機能」を発揮する。上流側触媒43は、スタート・キャタリティック・コンバータ(SC)又は第1触媒とも称呼される。
下流側触媒44は、上流側触媒43と同様の三元触媒である。下流側触媒44は、上流側触媒43よりも下流においてエキゾーストパイプ42に配設(介装)されている。下流側触媒44は、車両のフロア下方に配設されているため、アンダ・フロア・キャタリティック・コンバータ(UFC)又は第2触媒とも称呼される。なお、本明細書において、単に「触媒」と言うとき、その「触媒」は上流側触媒43を意味する。
本制御装置は、熱線式エアフローメータ51、スロットルポジションセンサ52、機関回転速度センサ53、水温センサ54、上流側空燃比センサ55、下流側空燃比センサ56及びアクセル開度センサ57を備えている。
熱線式エアフローメータ51は、吸気管32内を流れる吸入空気の質量流量を検出し、その質量流量(機関10の単位時間あたりの吸入空気量)Gaを表す信号を出力するようになっている。
スロットルポジションセンサ52は、スロットル弁34の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。
機関回転速度センサ53は、インテークカムシャフトが5°回転する毎に幅狭のパルスを有するとともにインテークカムシャフトが360°回転する毎に幅広のパルスを有する信号を出力するようになっている。機関回転速度センサ53から出力される信号は後述する電気制御装置60により機関回転速度NEを表す信号に変換されるようになっている。更に、電気制御装置60は、機関回転速度センサ53及び図示しないクランク角センサからの信号に基いて、機関10のクランク角度(絶対クランク角)を取得するようになっている。
水温センサ54は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ55は、エキゾーストマニホールド41の集合部41bと上流側触媒43との間の位置においてエキゾーストマニホールド41及びエキゾーストパイプ42の何れか(即ち、排気通路)に配設されている。上流側空燃比センサ55は、例えば、特開平11−72473号公報、特開2000−65782号公報及び特開2004−69547号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
上流側空燃比センサ55は、図2に示したように、上流側空燃比センサ55の配設位置を流れる排ガスの空燃比(触媒43に流入するガスである「触媒流入ガス」の空燃比、検出上流側空燃比abyfs)に応じた出力値Vabyfsを出力する。出力値Vabyfsは触媒流入ガスの空燃比が大きくなるほど(即ち、触媒流入ガスの空燃比がリーン側の空燃比になるほど)増大する。
電気制御装置60は、図2に示した空燃比変換テーブル(マップ)Mapabyfsを記憶している。電気制御装置60は、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより、実際の上流側空燃比abyfsを検出する(検出上流側空燃比abyfsを取得する)ようになっている。
再び、図1を参照すると、下流側空燃比センサ56は、上流側触媒43と下流側触媒44との間の位置においてエキゾーストパイプ42(即ち、排気通路)に配設されている。下流側空燃比センサ56は、周知の濃淡電池型の酸素濃度センサ(O2センサ)である。下流側空燃比センサ56は、例えば、固体電解質層と、固体電解質層の外側に形成された排ガス側電極層と、大気室(固体電解質層の内側)に露呈し且つ固体電解室層を挟んで排ガス側電極層と対向するように固体電解質層の内側に形成された大気側電極層と、排ガス側電極層を覆い且つ排ガスが接触する(排ガス中に晒されるように配置される)拡散抵抗層と、を備える。固体電解質層は試験管状であってもよく、板状であってもよい。下流側空燃比センサ56は、下流側空燃比センサ56の配設位置を流れる排ガス(即ち、触媒43から流出するガスである「触媒流出ガス」)の空燃比(下流側空燃比afdown)に応じた出力値Voxsを出力するようになっている。
下流側空燃比センサ56の出力値Voxsは、図3に示したように、触媒流出ガス(被検出ガス)の空燃比が理論空燃比よりもリッチ側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が小さいとき最大出力値Vmax(例えば、約0.9〜1.0V)となる。即ち、下流側空燃比センサ56は、触媒流出ガスに過剰の酸素が含まれていないときに最大出力値Vmaxを出力する。
また、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比であって、触媒流出ガスの酸化平衡後のガスの酸素分圧が大きいとき最小出力値min(例えば、約0〜0.1V)となる。即ち、下流側空燃比センサ56は触媒流出ガスに過剰の酸素が含まれているとき最小出力値Vminを出力する
更に、この出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比へと変化する際に最大出力値Vmaxから最小出力値Vminへと急激に減少する。逆に、出力値Voxsは、触媒流出ガスの空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比へと変化する際に最小出力値Vminから最大出力値Vmaxへと急激に増大する。なお、最小出力値Vminと最大出力値Vmaxとの平均値は中央値Vmid(=(Vmax+Vmin)/2)と称呼される。
図1に示したアクセル開度センサ57は、運転者によって操作されるアクセルペダルAPの操作量を検出し、アクセルペダルAPの操作量Accpを表す信号を出力するようになっている。
電気制御装置60は、「CPU、ROM、RAM、バックアップRAM、並びに、ADコンバータを含むインターフェース等」からなる「周知のマイクロコンピュータ」を含む電子回路である。
電気制御装置60が備えるバックアップRAMは、機関10を搭載した車両の図示しないイグニッション・キー・スイッチの位置(オフ位置、始動位置及びオン位置等の何れか)に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップRAMは、バッテリから電力の供給を受けている場合、CPUの指示に応じてデータを格納する(データが書き込まれる)とともに、そのデータを読み出し可能となるように保持(記憶)する。バックアップRAMは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。即ち、それまでに保持していたデータが消失(破壊)される。
電気制御装置60のインターフェースは、前記センサ51〜57と接続され、CPUにセンサ51〜57からの信号を供給するようになっている。更に、そのインターフェースは、CPUの指示に応じて、各気筒の点火プラグ24、各気筒の燃料噴射弁25、吸気弁制御装置26及びスロットル弁アクチュエータ34a等に指示信号(駆動信号)等を送出するようになっている。なお、電気制御装置60は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度TAが大きくなるように、スロットル弁アクチュエータ34aに指示信号を送出するようになっている。
(本制御装置による触媒状態の判定及び空燃比フィードバック制御の概要)
本制御装置は、以下のように触媒の状態(酸素吸蔵状態)を判定するとともに、判定された触媒の状態に基づいて触媒流入ガスの空燃比(従って、機関に供給される混合気の空燃比)をフィードバック制御する。この制御において、本制御装置は、少なくとも下流側空燃比センサ56の出力値Voxs及びその出力値Voxsの変化速度ΔVoxs(出力値Voxsの時間微分値に相当する値、単位時間あたりの出力値Voxsの変化量)を使用する。更に、本制御装置は、低側閾値VLth、高側閾値VHth、第1変化速度閾値ΔV1th及び第2変化速度閾値ΔV2thを使用する。
低側閾値VLthは、中央値Vmidと最小出力値Vminとの間の所定値である。
高側閾値VHthは、中央値Vmidと最大出力値Vmaxとの間の所定値である。
第1変化速度閾値ΔV1th及び第2変化速度閾値ΔV2thは何れも正の所定値である。第1変化速度閾値ΔV1th及び第2変化速度閾値ΔV2thは、互いに同一であってもよく異なっていてもよい。第1変化速度閾値ΔV1thは、フューエルカット制御終了後期間において、そのフューエルカット制御終了後期間が経過した後の通常の空燃比フィードバック期間における値(ΔV1mid)よりも、大きい値(ΔV1large)に設定される。
<判定1>
(A1)本制御装置は、下流側空燃比センサ56の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合、出力値Voxsが増大しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が第1変化速度閾値ΔV1th以上となった時点から、出力値Voxsが減少しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が第2変化速度閾値ΔV2th以上となる時点までの期間、触媒43の状態が「酸素過剰状態にはない(リーン否定フラグXNOTlean=1)」と判定する。そして、本制御装置は、この期間、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する(図8の時刻t2〜t4及び時刻t6〜t8を参照。)。このときのリーン空燃比は便宜上「第1リーン空燃比」とも称呼される。
(A2)本制御装置は、下流側空燃比センサ56の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合、出力値Voxsが減少しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が第2変化速度閾値ΔV2th以上となった時点から、出力値Voxsが増大しているときの「その出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が第1変化速度閾値ΔV1thとなる時点までの期間、触媒43の状態が「酸素不足状態にはない(リッチ否定フラグXNOTrich=1)」と判定する。そして、本制御装置は、この期間、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する(図8の時刻t4〜t6を参照。)。このときのリッチ空燃比は便宜上「第1リッチ空燃比」とも称呼される。
この制御によれば、前述したように、酸素吸蔵量OSAが減少を開始した後、相当に小さい値になったが「0」には至っていない時点(図8の時刻t2及び時刻t6を参照。)において、触媒流入ガスの空燃比(従って、機関の空燃比)をリーン空燃比に設定することができる。更に、酸素吸蔵量OSAが増大を開始した後、相当に大きい値になったが最大酸素吸蔵量Cmaxには至っていない時点(図8の時刻t4及び時刻t8を参照。)にて、触媒流入ガスの空燃比(従って、機関の空燃比)をリッチ空燃比に設定することができる。従って、エミッションが良好になる。
<判定2>
(B)本制御装置は、出力値Voxsが高側閾値VHth以上である場合、触媒43の状態が酸素不足状態である(リッチフラグXCCROrich=1)と判定し、触媒流入ガスの空燃比がリーン空燃比となるように機関の空燃比を制御する。このときのリーン空燃比は便宜上「第2リーン空燃比」とも称呼される(図9の時刻t1〜時刻t2を参照。)。
(C)本制御装置は、出力値Voxsが低側閾値VLth以下である場合、触媒43の状態は酸素過剰状態である(リーンフラグXCCROlean=1)と判定し、触媒流入ガスの空燃比がリッチ空燃比となるように機関の空燃比を制御する。このときのリッチ空燃比は便宜上「第2リッチ空燃比」とも称呼される(図10の時刻t1〜時刻t2を参照。)。
なお、本例において、第1リーン空燃比及び第2リーン空燃比は、互いに同じ空燃比であるが、異なっていてもよい。同様に、本例において、第1リッチ空燃比及び第2リッチ空燃比は、互いに同じ空燃比であるが、異なっていてもよい。
(D)本制御装置は、下流側空燃比センサ56の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合であって、上記(A1)及び上記(A2)により触媒の状態が判定されていないとき、出力値Voxsが中央値Vmidよりも小さければ触媒は酸素過剰状態であると暫定的に判定する(暫定リーンフラグXZlean=1)。このとき、本制御装置は、触媒流入ガスの空燃比が第1リッチ空燃比又は第2リッチ空燃比となるように機関の空燃比を制御する。なお、このような場合は、例えば、出力値Voxsが低側閾値VLthよりも小さい値から低側閾値VLthよりも大きい値へと変化し、且つ、変化速度ΔVoxsの絶対値|ΔVoxs|が第1変化速度閾値ΔV1thを超えていない場合に発生する(図10の時刻t3〜時刻t4を参照。)。
(E)本制御装置は、下流側空燃比センサ56の出力値Voxsが低側閾値VLthと高側閾値VHthとの間にある場合であって、上記(A1)及び上記(A2)により触媒の状態が判定されていないとき、出力値Voxsが中央値Vmidよりも大きければ触媒は酸素不足状態であると暫定的に判定する(暫定リッチフラグXZrich=1)。このとき、本制御装置は、触媒流入ガスの空燃比が第1リーン空燃比又は第2リーン空燃比となるように機関の空燃比を制御する。なお、このような場合は、例えば、出力値Voxsが高側閾値VHthよりも大きい値から高側閾値VHthよりも小さい値へと変化し、且つ、変化速度ΔVoxsの絶対値|ΔVoxs|が第2変化速度閾値ΔV2thを超えていない場合に発生する(図9の時刻t2〜時刻t3を参照。)。
これらの制御によれば、図9に示したように、触媒過熱防止のための燃料増量制御が時刻t1以前において実行されることにより酸素吸蔵量OSAが「0」に到達し、その後、燃料増量制御が終了したとき、出力値Voxsは高側閾値VHth以上であるので(図9の時刻t1を参照。)、触媒流入ガスの空燃比はリーン空燃比(第2リーン空燃比)に設定される。その後、酸素吸蔵量OSAが増大を開始した後に相当に大きい値になったが最大酸素吸蔵量Cmaxには至っていない時点(図9の時刻t3を参照。)にて変化速度ΔVoxsの絶対値|ΔVoxs|が第2変化速度閾値ΔV2thを超えるので、触媒流入ガスの空燃比がリッチ空燃比(第1リッチ空燃比)に設定される。
更に、例えば、図10に示したように、フューエルカット運転が時刻t1以前において実行されることにより酸素吸蔵量OSAが最大酸素吸蔵量Cmaxに到達し、その後、フューエルカット運転が終了したとき、出力値Voxsは低側閾値VLth以下であるので(図10の時刻t1を参照。)、触媒流入ガスの空燃比はリッチ空燃比(第2リッチ空燃比)に設定される。その後、変化速度ΔVoxsの絶対値|ΔVoxs|が「フューエルカット制御終了後において大きい値(後述する値ΔV1large)に設定されている第1変化速度閾値ΔV1th」を超えるので、触媒流入ガスの空燃比はリーン空燃比(第1リーン空燃比)に設定される(図10の時刻t4を参照。)。
より詳細に述べると、図11に示したように、時刻t1以降(フューエルカット制御終了後)において、第1変化速度閾値ΔV1thが通常の値(通常フィードバック制御中の値)ΔV1midに設定されていれば、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|は時刻t2にてΔV1mid以上となるので、時刻t2以降において触媒流入ガスの空燃比は第1リーン空燃比に設定される。
しかし、フューエルカット制御終了後において、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が閾値ΔV1midを超えたとき(時刻t2)、触媒43に担持されている酸素吸蔵材は「フューエルカット制御中に吸蔵した多量の酸素」を放出していて「還元状態となっている」が、触媒43に担持されている「触媒物質である貴金属」は充分に還元状態に至っていない。即ち、触媒43の貴金属はフューエルカット制御中の多量の酸素によって酸化された状態にあり、貴金属がこの状態を脱するためには、酸素吸蔵材から「フューエルカット制御中に吸蔵した過剰な酸素」を放出させるのに必要な未燃物よりも多くの未燃物が必要である。
そこで、本制御装置は、フューエルカット制御終了後、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が最初に第1変化速度閾値ΔV1thを超えるまでの期間(フューエルカット制御終了後期間)、その第1変化速度閾値ΔV1thを値ΔV1midよりも大きい値ΔV1large(この値を、「フューエルカット制御終了後第1変化速度閾値」とも称呼する。)に設定する。この結果、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|は、時刻t2よりも遅い時刻t3にて第1変化速度閾値ΔV1th(=ΔV1large)を超える。そして、この時刻t3までに、触媒43の貴金属が酸化状態から還元状態へと変化する。よって、その後のフィードバック制御において、触媒43の貴金属が酸素被毒状態となってしまわないので、触媒43の浄化率を高い値に維持することができる。その結果、エミッションを良好にすることができる。
(作動)
次に、本制御装置の実際の作動の詳細について説明する。
<燃料噴射制御>
CPUは、図12にフローチャートにより示した最終燃料噴射量Fiの計算及び噴射指示を行うルーチンを、各気筒のクランク角が各気筒の吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、CPUはステップ1200から処理を開始し、以下に述べるステップ1210乃至ステップ1260の処理を順に行ってステップ1295に進む。
ステップ1210:CPUは、テーブルMapMc(Ga,NE)に基づいて「今回の吸気行程を迎える気筒」に吸入される筒内吸入空気量Mc(k)を取得(推定・決定)する。今回の吸気行程を迎える気筒は「燃料噴射気筒」とも称呼される。Gaは、エアフローメータ51が計測している吸入空気量である。NEは、別途求められている機関回転速度である。筒内吸入空気量Mc(k)は、各気筒の吸気行程に対応されながらRAMに記憶されていく。なお、CPUは周知の「空気モデル」を用いて筒内吸入空気量Mc(k)を推定してもよい。
ステップ1220:CPUは、筒内吸入空気量Mc(k)を上流側目標空燃比abyfrで除することにより、機関の空燃比を上流側目標空燃比abyfrに一致させるための基本燃料噴射量Fbaseを求める。この場合、上流側目標空燃比abyfrは、通常時において理論空燃比stoich(本例においては14.7)に設定されている。従って、基本燃料噴射量Fbaseは機関の空燃比を理論空燃比に一致させるためのフィードフォワード量となる。なお、上流側目標空燃比abyfrは、例えば、冷却水温THWが所定値以下である場合、及び、機関10の運転状態から推定される触媒43の温度が所定温度以上である場合、理論空燃比よりも小さい空燃比(リッチ空燃比)に設定される。
ステップ1230:CPUは、基本燃料噴射量Fbaseを、メインフィードバック量DFmain及びサブフィードバック量KFsubに基づいて補正することにより、最終燃料噴射量Fiを算出する。即ち、CPUは、基本燃料噴射量Fbaseにサブフィードバック量KFsubを乗じて得られる値にメインフィードバック量DFmainを加えることによって最終燃料噴射量Fiを求める。なお、メインフィードバック量DFmain及びサブフィードバック量KFsubは、基本燃料噴射量Fbaseを補正する補正量であるので、それぞれ単独で又は両者を合わせて「空燃比補正量」とも称呼される。
ステップ1240:CPUはフューエルカットフラグXFCの値が「1」であるか否かを判定する。フューエルカットフラグXFCの値は、後述する図13にフローチャートにより示したフューエルカット条件判定ルーチンにより、フューエルカット条件(燃料供給遮断条件、フューエルカット開始条件)が成立したときに「1」に設定され、フューエルカットフラグXFCの値が「1」であるときにフューエルカット終了条件が成立すると「0」に設定される。
CPUは、フューエルカットフラグXFCの値が「1」であるとき、ステップ1240にて「Yes」と判定してステップ1250に進み、最終燃料噴射量Fiを「0」に設定してからステップ1260に進む。これに対し、フューエルカットフラグXFCの値が「0」であるとき、CPUはステップ1240にて「No」と判定してステップ1260に直接進む。
ステップ1260:CPUは、最終燃料噴射量(指示噴射量)Fiの燃料が燃料噴射気筒に対する燃料噴射弁25から噴射されるように、その燃料噴射弁25に対して噴射指示を行う。従って、フューエルカットフラグXFCの値が「1」であるとき最終燃料噴射量Fiは「0」であるから、燃料噴射(機関10への燃料供給)は実行されない。
<フューエルカット条件判定>
本制御装置のCPUは、上述したフューエルカットフラグXFCの値を設定するために、図13にフローチャートにより示した「フューエルカット条件判定ルーチン」を所定時間が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図14のステップ1300から処理を開始してステップ1310に進み、現時点におけるフューエルカットフラグXFCの値が「0」であるか否かを判定する。即ち、CPUは、現時点がフューエルカット制御中でないか否かを判定する。
いま、フューエルカットフラグXFCの値が「0」であると仮定する。この場合、CPUはステップ1310にて「Yes」と判定してステップ1320に進み、フューエルカット条件(フューエルカット開始条件)が成立しているか否かを判定する。
より具体的に述べると、フューエルカット条件は、アクセルペダル操作量Accp又はスロットル弁開度TAが「0」であり、且つ、機関回転速度NEがフューエルカット回転速度NEFCth以上であるときに成立する。
そして、フューエルカット条件が成立していなければ、CPUはステップ1320にて「No」と判定してステップ1395に直接進んで本ルーチンを一旦終了する。これに対し、フューエルカット条件が成立していると、CPUはステップ1320にて「Yes」と判定してステップ1330に進み、フューエルカットフラグXFCの値を「1」に設定する。これにより、フューエルカット制御が開始する。その後、CPUはステップ1395に進んで本ルーチンを一旦終了する。
このような状態(フューエルカットフラグXFCの値が「1」に設定された状態)において、再び、CPUがステップ1300から処理を開始すると、CPUはステップ1310にて「No」と判定する。そして、CPUはステップ1340に進み、フューエルカット終了条件が成立しているか否かを判定する。
より具体的に述べると、フューエルカット終了条件は、フューエルカットフラグの値が「1」であるときに(フューエルカット制御中)において、アクセルペダル操作量Accp又はスロットル弁開度TAが「0」でなくなるか、若しくは、機関回転速度NEがフューエルカット復帰回転速度(=NEFCth−ΔNE、ΔNE>0)以下となったときに成立する。なお、フューエルカット復帰回転速度はフューエルカット回転速度NEFCよりも小さい。
このとき、フューエルカット終了条件が成立していなければ、CPUはステップ1340にて「No」と判定し、ステップ1395に直接進んで本ルーチンを一旦終了する。これに対し、フューエルカット終了条件が成立していると、CPUはステップ1340にて「Yes」と判定してステップ1350に進み、フューエルカットフラグXFCの値を「0」に設定する。これにより、フューエルカット制御が終了され、燃料噴射(機関10への燃料供給)が再開される。次に、CPUはステップ1360に進み、フューエルカット制御終了フラグXFCFKの値を「1」に設定する(図11の時刻t1を参照。)。その後、CPUはステップ1395に進んで本ルーチンを一旦終了する。なお、フューエルカット制御終了フラグXFCFKの値は、後述する図15のステップ1540において第1変化速度閾値ΔV1thの値を設定する際に参照される。
<下流側空燃比センサの出力値の変化速度ΔVoxsの取得>
CPUは、所定時間tsが経過する毎に図14にフローチャートにより示した「下流側空燃比センサ出力値変化速度取得ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図14のステップ1400から処理を開始してステップ1410に進み、「現時点における下流側空燃比センサ56の出力値Voxs」から「所定時間ts前の出力値Voxsである前回出力値Voxsold」を減じた値を「下流側空燃比センサ56の出力値Voxsの変化速度ΔVoxs」として取得する。
次に、CPUはステップ1420に進み、現時点における下流側空燃比センサ56の出力値Voxsを前回出力値Voxsoldとして記憶する。その後、CPUはステップ1495に進んで本ルーチンを一旦終了する。
<触媒状態判定(1)>
CPUは、触媒状態の判定を行うために、図15にフローチャートにより示したルーチンを所定時間が経過する毎に実行するようになっている。従って、所定のタイミングになると、CPUは図15のステップ1500から処理を開始してステップ1505に進み、下流側空燃比センサ56の出力値Voxsが高側閾値VHth以上であるか否かを判定する。そして、CPUは、出力値Voxsが高側閾値VHth以上であればステップ1510に進んでリッチフラグXCCROrichの値を「1」に設定し、出力値Voxsが高側閾値VHth未満であればステップ1515に進んでリッチフラグXCCROrichの値を「0」に設定する。なお、ステップ1505及びステップ1510の処理は、上述した判定2の(B)の機能を実現するステップである。
次に、CPUはステップ1520にて、下流側空燃比センサ56の出力値Voxsが低側閾値VLth以下であるか否かを判定する。そして、CPUは、出力値Voxsが低側閾値VLth以下であればステップ1525に進んでリーンフラグXCCROleanの値を「1」に設定し、出力値Voxsが低側閾値VLthよりも大きければステップ1530に進んでリーンフラグXCCROleanの値を「0」に設定する。なお、ステップ1520及びステップ1525の処理は、上述した判定2の(C)の機能を実現するステップである。
次に、CPUはステップ1535に進み、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であるか否かを判定する。このとき、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値でなければ、CPUはステップ1535にて「No」と判定し、ステップ1595に直接進んで本ルーチンを一旦終了する。
これに対し、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であると、CPUはステップ1535にて「Yes」と判定してステップ1540に進み、フューエルカット制御終了フラグXFCFKの値が「1」であるか否かを判定する。
いま、フューエルカット制御終了フラグXFCFKの値が「1」でないと仮定する。この場合、CPUはステップ1540にて「No」と判定してステップ1545に進み、第1変化速度閾値ΔV1thに第1通常閾値ΔV1midを設定するとともに、第2変化速度閾値ΔV2thに第2通常閾値ΔV2midを設定する。第1通常閾値ΔV1mid及び第2変化速度閾値ΔV2thは、何れも正の所定値である。
一方、CPUがステップ1540の処理を行う時点においてフューエルカット制御終了フラグXFCFKの値が「1」であると、CPUはそのステップ1540にて「Yes」と判定してステップ1550に進み、第1変化速度閾値ΔV1thに「閾値(フューエルカット制御終了後第1変化速度閾値)ΔV1large」を設定するとともに、第2変化速度閾値ΔV2thに第2通常閾値ΔV2midを設定する。
フューエルカット制御終了後第1変化速度閾値ΔV1largeは第1通常閾値ΔV1midよりも大きい所定値である。この値ΔV1largeは、フューエルカット制御終了後において出力値Voxsが低側閾値VLth以上となり、且つ、出力値Voxsが増大していてその変化速度ΔVoxsの絶対値|ΔVoxs|が値ΔV1large以上となったとき、触媒43の酸素吸蔵材のみならず貴金属も充分に還元状態となっているような値に選択されている。
次に、CPUはステップ1555に進み、下流側空燃比センサ56の出力値Voxsの変化速度ΔVoxsが「0」以上であるか否かを判定する。即ち、CPUは出力値Voxsが増大しているか否かを判定する。
このとき、出力値Voxsの変化速度ΔVoxsが「0」以上であると、CPUはステップ1560に進んで「出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が上述したステップ1545又はステップ1550にて設定した第1変化速度閾値ΔV1th以上であるか否かを判定する。
そして、変化速度ΔVoxsの絶対値|ΔVoxs|が第1変化速度閾値ΔV1th以上であれば、CPUはステップ1560にて「Yes」と判定し、ステップ1565に進んでリーン否定フラグXNOTleanの値を「1」に設定するとともに、ステップ1570に進んでリッチ否定フラグXNOTrichの値を「0」に設定する。
次いで、CPUはステップ1572に進み、フューエルカット制御終了フラグXFCFKの値を「0」に設定し、ステップ1595に進んで本ルーチンを一旦終了する。このように、フューエルカット制御終了フラグXFCFKの値は、フューエルカット制御終了時において「1」に設定され、その後、出力値Voxsが低側閾値VLthを超え且つ変化速度ΔVoxsの絶対値|ΔVoxs|が「フューエルカット制御終了後第1変化速度閾値ΔV1largeに設定された第1変化速度閾値ΔV1th」以上となったときに「0」に設定される(図11の時刻t1〜t3を参照。)。このフューエルカット制御終了フラグXFCFKの値が「1」である期間は、フューエルカット制御終了後期間と称呼される。
一方、CPUがステップ1560の処理を行う時点において、変化速度ΔVoxsの絶対値|ΔVoxs|が第1変化速度閾値ΔV1th未満であれば、CPUはそのステップ1560にて「No」と判定し、ステップ1595に直接進んで本ルーチンを一旦終了する。
更に、CPUがステップ1555の処理を行う時点において、下流側空燃比センサ56の出力値Voxsの変化速度ΔVoxsが「0」未満あると(即ち、出力値Voxsが減少していると)、CPUはステップ1575に進んで「出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|」が上述したステップ1545又はステップ1550にて設定した第2変化速度閾値ΔV2th(=ΔV2mid)以上であるか否かを判定する。
そして、変化速度ΔVoxsの絶対値|ΔVoxs|が第2変化速度閾値ΔV2th以上であれば、CPUはステップ1575にて「Yes」と判定し、ステップ1580に進んでリーン否定フラグXNOTleanの値を「0」に設定するとともに、ステップ1585に進んでリッチ否定フラグXNOTrichの値を「1」に設定する。
他方、CPUがステップ1575の処理を行う時点において、変化速度ΔVoxsの絶対値|ΔVoxs|が第2変化速度閾値ΔV2th未満であれば、CPUはそのステップ1575にて「No」と判定し、ステップ1595に直接進んで本ルーチンを一旦終了する。なお、ステップ1535乃至ステップ1585の処理は、上述した判定1の(A1)及び(A2)の機能を実現するステップである。
<触媒状態判定(2)>
更に、CPUは、所定時間が経過する毎に図16にフローチャートにより示したルーチンを実行するようになっている。従って、所定のタイミングになると、CPUは図16のステップ1600から処理を開始してステップ1605に進み、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であるか否かを判定する。このとき、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値でなければ、CPUはそのステップ1605にて「No」と判定し、ステップ1695に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ1605の処理を行う時点において、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であると、CPUは、そのステップ1605にて「Yes」と判定してステップ1610に進み、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの総てが「0」であるか否かを判定する。即ち、CPUは、出力値Voxsが低側閾値VLthと高側閾値VHthとの間の値であって、且つ、触媒状態が判定されていない状態であるか否かを判定する。
このとき、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの総てが「0」であると、CPUはステップ1610にて「Yes」と判定してステップ1615に進み、下流側空燃比センサ56の出力値Voxsが中央値Vmid以上であるか否かを判定する。そして、出力値Voxsが中央値Vmid以上であると、CPUはステップ1620に進んで暫定リッチフラグXZrichの値を「1」に設定するとともに、ステップ1625にて暫定リーンフラグXZleanの値を「0」に設定する。
一方、CPUがステップ1615の処理を行う時点において、下流側空燃比センサ56の出力値Voxsが中央値Vmidよりも小さいと、CPUはステップ1630に進んで暫定リッチフラグXZrichの値を「0」に設定するとともに、ステップ1635にて暫定リーンフラグXZleanの値を「1」に設定する。
更に、CPUがステップ1610の処理を実行する時点において、リッチフラグXCCROrich、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及びリーン否定フラグXNOTleanの何れかが「1」であると、CPUはステップ1640に進んで進んで暫定リッチフラグXZrichの値を「0」に設定するとともに、ステップ1645にて暫定リーンフラグXZleanの値を「0」に設定する。なお、図16のルーチンは、上述した判定2の(D)及び(E)の機能を実現するステップである。また、この場合、CPUは図15のステップ1510にてリッチフラグXCCROrich以外のフラグの値を「0」に設定し、ステップ1525にてリーンフラグXCCROlean以外のフラグの値を「0」に設定してもよい。
<メインフィードバック量の算出>
CPUは、所定時間が経過する毎に図17にフローチャートにより示した「メインフィードバック量算出ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図17のステップ1700から処理を開始してステップ1705に進み、「メインフィードバック制御条件(上流側空燃比フィードバック制御条件)」が成立しているか否かを判定する。
メインフィードバック制御条件は以下の総ての条件が成立したときに成立する。
(A−1)上流側空燃比センサ55が活性化している。
(A−2)機関の負荷(負荷率)KLが閾値KLth以下である。
(A−3)フューエルカット中でない。
なお、負荷率KLは、KL=(Mc(k)/(ρ・L/4))・100%なる式により求められる。この式において、Mc(k)は筒内吸入空気量であり、ρは空気密度(単位は(g/l))、Lは機関10の排気量(単位は(l))、「4」は機関10の気筒数である。なお、機関の負荷として、負荷率KLに代え、アクセルペダル操作量Accpが用いられても良い。
いま、メインフィードバック制御条件が成立していると仮定して説明を続ける。この場合、CPUはステップ1705にて「Yes」と判定して以下に述べるステップ1710乃至ステップ1735の処理を順に行い、ステップ1795に進んで本ルーチンを一旦終了する。
ステップ1710:CPUは、上流側空燃比センサ55の出力値Vabyfsを図2に示したテーブルMapabyfsに適用することにより、検出上流側空燃比abyfsを取得する。
ステップ1715:CPUは、「現時点よりもNサイクル前の時点において燃焼室21に実際に供給された燃料の量」である「筒内燃料供給量Fc(k−N)」を求める。即ち、CPUは、「現時点よりもNサイクル(即ち、N・720°クランク角)前の時点における筒内吸入空気量Mc(k−N)」を「検出上流側空燃比abyfs」にて除すことにより、筒内燃料供給量Fc(k−N)を求める。このように、筒内燃料供給量Fc(k−N)を求めるために、現時点からNストローク前の筒内吸入空気量Mc(k−N)を検出上流側空燃比abyfsで除すのは、「燃焼室21内での混合気の燃焼により生成された排ガス」が上流側空燃比センサ55に到達するまでに「Nストロークに相当する時間」を要しているからである。
ステップ1720:CPUは、現時点からNストローク前の筒内吸入空気量Mc(k−N)を上流側目標空燃比abyfr(本例において、理論空燃比)で除すことにより、目標筒内燃料供給量Fcr(k−N)を求める。目標筒内燃料供給量Fcr(k−N)は、現時点よりもNサイクル前の時点において燃焼室21に供給されるべきであった燃料の量である。
ステップ1725:CPUは、目標筒内燃料供給量Fcr(k−N)から筒内燃料供給量Fc(k−N)を減じることにより、筒内燃料供給量偏差DFcを求める。この筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
ステップ1730:CPUは、筒内燃料供給量偏差DFcに予め設定された比例ゲインGpを乗じることにより、メインフィードバック量DFmainを求める。これにより、検出上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるための「メインフィードバック量DFmain」が算出される。
ステップ1735:CPUは、図18に示したルーチンを実行することによって、メインフィードバック量DFmainを「触媒流入ガス要求空燃比」に応じて補正(制限)する。図18に示したルーチンについては後述する。
以上により、メインフィードバック量DFmainが求められ、このメインフィードバック量DFmainが前述した図12のステップ1230の処理により最終燃料噴射量Fiに反映される。なお、CPUは、「筒内燃料供給量偏差DFcの積分値SDFcに積分ゲインGiを乗じた積分項Gi・SDFc」を「上記比例項であるGp・DFc」に加えることにより、メインフィードバック量DFmainを求めてもよい。
一方、図17のステップ1705の判定時において、メインフィードバック制御条件が不成立であると、CPUはそのステップ1705にて「No」と判定してステップ1740に進み、メインフィードバック量DFmainの値を「0」に設定する。その後、CPUは、ステップ1795に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック量DFmainは「0」に設定される。従って、基本燃料噴射量Fbaseのメインフィードバック量DFmainによる補正は行われない。
<メインフィードバック量の制限>
更に、前述したように、CPUは、図17のステップ1735に進んだとき、図18にフローチャートにより示した「メインフィードバック量制限(補正)ルーチン」を実行するようになっている。
従って、所定のタイミングになると、CPUは図18のステップ1800から処理を開始してステップ1810に進み、メインフィードバック量DFmainが正であるか否かを判定する。即ち、CPUは、ステップ1810にて「メインフィードバック量DFmainが、基本燃料噴射量Fbaseを増量補正する値(「機関の空燃比と等しい触媒流入ガスの空燃比」を「理論空燃比よりもリッチ側の空燃比へと補正しようとする値」)」であるか否かを判定する。
このとき、メインフィードバック量DFmainの値が正であると(即ち、メインフィードバック量DFmainが触媒流入ガスの空燃比をリッチ空燃比に移行させようとする値であると)、CPUはステップ1810にて「Yes」と判定してステップ1820に進み、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichのうちの少なくとも一つが「1」であるか否かを判定する。換言すると、CPUはステップ1820にて、触媒43の状態が「酸素不足状態」及び「酸素過剰状態でない状態」の何れかであって、触媒流入ガス要求空燃比がリーン空燃比であるか否かを判定する。
このとき、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichのうちの少なくとも一つが「1」であると、CPUはステップ1820にて「Yes」と判定してステップ1830に進み、メインフィードバック量DFmainの値を「0」に設定する。これにより、メインフィードバック量DFmainが、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比(この場合、リーン空燃比)」とは異なる空燃比(リッチ空燃比)に補正することがないように制限(補正)される。
なお、CPUはステップ1830にて、メインフィードバック量DFmainに「1」より小さい正の係数を乗じた値を最終的なメインフィードバック量DFmainとして設定してもよい。即ち、CPUはステップ1830にてメインフィードバック量DFmainの大きさを小さくしてもよい。
これに対し、CPUがステップ1820に進んだとき、リッチフラグXCCROrich、リーン否定フラグXNOTlean及び暫定リッチフラグXZrichの総てが「0」であると、CPUはステップ1820にて「No」と判定し、ステップ1895に直接進んで本ルーチンを一旦終了する。
一方、CPUがステップ1810に進んだとき、メインフィードバック量DFmainの値が負(又は0)であると(即ち、メインフィードバック量DFmainが触媒流入ガスの空燃比をリーン空燃比に移行させようとする値であると)、CPUはステップ1810にて「No」と判定してステップ1840に進み、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanのうちの少なくとも一つが「1」であるか否かを判定する。換言すると、CPUはステップ1840にて、触媒43の状態が「酸素過剰状態」及び「酸素不足状態でない状態」の何れかであって、触媒流入ガス要求空燃比がリッチ空燃比であるか否かを判定する。
このとき、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanのうちの少なくとも一つが「1」であると、CPUはステップ1840にて「Yes」と判定してステップ1850に進み、メインフィードバック量DFmainの値を「0」に設定する。これにより、メインフィードバック量DFmainが、触媒流入ガスの空燃比を「触媒流入ガス要求空燃比(この場合、リッチ空燃比)」とは異なる空燃比(リーン空燃比)に補正することがないように制限(補正)される。
なお、CPUはステップ1850にて、メインフィードバック量DFmainに「1」より小さい正の係数を乗じた値を最終的なメインフィードバック量DFmainとして設定してもよい。即ち、CPUはステップ1850にてメインフィードバック量DFmainの大きさを小さくしてもよい。
これに対し、CPUがステップ1840に進んだとき、リーンフラグXCCROlean、リッチ否定フラグXNOTrich及び暫定リーンフラグXZleanの総てが「0」であると、CPUはステップ1840にて「No」と判定し、ステップ1895に直接進んで本ルーチンを一旦終了する。
<サブフィードバック量の算出>
CPUは、所定時間が経過する毎に図19にフローチャートにより示した「サブフィードバック量算出ルーチン」を実行するようになっている。従って、所定のタイミングになると、CPUは図19のステップ1900から処理を開始してステップ1905に進み、「サブフィードバック制御条件(下流側空燃比フィードバック制御条件)」が成立しているか否かを判定する。
サブフィードバック制御条件は以下の総ての条件が成立したときに成立する。
(B−1)メインフィードバック制御条件が成立している。
(B−2)下流側空燃比センサ56が活性化している。
(B−3)上流側目標空燃比abyfrが理論空燃比stoichに設定されている。
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、CPUはステップ1905にて「Yes」と判定してステップ1910に進み、リッチフラグXCCROrich及び暫定リッチフラグXZrichのうちの少なくとも一つが「1」であるか否かを判定する。換言すると、CPUはステップ1910にて、触媒43の状態が「酸素不足状態」であって、触媒流入ガス要求空燃比がリーン空燃比であるか否かを判定する。
このとき、リッチフラグXCCROrich及び暫定リッチフラグXZrichの両者が「0」であると、CPUはステップ1910にて「No」と判定し、ステップ1920に直接進む。
これに対し、リッチフラグXCCROrich及び暫定リッチフラグXZrichのうちの少なくとも一つが「1」であると、CPUはステップ1910にて「Yes」と判定してステップ1915に進み、サブフィードバック量KFsubの値を所定値A2に設定する。この所定値A2は、「0」よりも大きく「1」よりも小さい一定値であり、第2リーン空燃比に相当する空燃比を実現する値である。その後、CPUはステップ1920に進む。なお、このとき、CPUはステップ1995に進んでもよい。
CPUはステップ1920にてリーン否定フラグXNOTleanの値が「1」であるか否かを判定する。このとき、リーン否定フラグXNOTleanの値が「0」であると、CPUはステップ1920にて「No」と判定し、ステップ1930に直接進む。
これに対し、リーン否定フラグXNOTleanの値が「1」であると、CPUはステップ1920にて「Yes」と判定してステップ1925に進み、サブフィードバック量KFsubの値を所定値A1に設定する。この所定値A1は、「0」よりも大きく「1」よりも小さい一定値であり、第1リーン空燃比に相当する空燃比を実現する値である。その後、CPUはステップ1930に進む。なお、本例において、所定値A1と所定値A2とは等しい値である(即ち、第1リーン空燃比と第2リーン空燃比とは等しい。)。また、ステップ1925の処理後、CPUはステップ1995に進んでもよい。
CPUはステップ1930において、リーンフラグXCCROlean及び暫定リーンフラグXZleanのうちの少なくとも一つが「1」であるか否かを判定する。換言すると、CPUはステップ1930にて、触媒43の状態が「酸素過剰状態」であって、触媒流入ガス要求空燃比がリッチ空燃比であるか否かを判定する。
このとき、リーンフラグXCCROlean及び暫定リーンフラグXZleanの両者が「0」であると、CPUはステップ1930にて「No」と判定し、ステップ1940に直接進む。
これに対し、リーンフラグXCCROlean及び暫定リーンフラグXZleanのうちの少なくとも一つが「1」であると、CPUはステップ1930にて「Yes」と判定してステップ1935に進み、サブフィードバック量KFsubの値を所定値B2に設定する。この所定値B2は、「1」よりも大きい一定値であり、第2リッチ空燃比に相当する空燃比を実現する値である。その後、CPUはステップ1940に進む。なお、このとき、CPUはステップ1995に進んでもよい。
CPUはステップ1940にてリッチ否定フラグXNOTrichの値が「1」であるか否かを判定する。このとき、リッチ否定フラグXNOTrichの値が「0」であると、CPUはステップ1940にて「No」と判定し、ステップ1995に直接進んで本ルーチンを一旦終了する。
これに対し、リッチ否定フラグXNOTrichの値が「1」であると、CPUはステップ1940にて「Yes」と判定してステップ1945に進み、サブフィードバック量KFsubの値を所定値B1に設定する。この所定値B1は、「1」よりも大きい一定値であり、第1リッチ空燃比に相当する空燃比を実現する値である。その後、CPUはステップ1995に進んで本ルーチンを一旦終了する。なお、本例において、所定値B1と所定値B2とは等しい値である(即ち、第1リッチ空燃比と第2リッチ空燃比とは等しい。)。
このようにして求められたサブフィードバック量KFsubは、前述した図12のステップ1230の処理により、理論空燃比を得るための基本燃料噴射量Fbaseに乗じられる。従って、サブフィードバック量KFsubが「1」より大きいとき、機関の空燃比(従って、触媒流入ガスの空燃比)は「サブフィードバック量KFsubが大きいほどより理論空燃比との差の大きさが大きいリッチ空燃比」に制御される。また、サブフィードバック量KFsubが「1」より小さいとき、機関の空燃比は「サブフィードバック量KFsubが小さいほどより理論空燃比との差の大きさが大きいリーン空燃比」に制御される。
一方、CPUがステップ1905の処理を行う時点において、サブフィードバック制御条件が成立していない場合、CPUはそのステップ1905にて「No」と判定してステップ1950に進み、サブフィードバック量KFsubを「1.0」に設定する。その後、CPUはステップ1995に進んで本ルーチンを一旦終了する。この結果、サブフィードバック制御条件が成立していないとき、基本燃料噴射量Fbaseはサブフィードバック量KFsubによって補正されない。
以上の処理により、CPUは、機関の空燃比(従って、触媒流入ガスの空燃比)を上記各フラグの値に応じて以下に述べるように制御する。
(1)リーン否定フラグXNOTleanの値が「1」のとき、CPUは機関の空燃比を第1リーン空燃比(一定の空燃比)に制御する。
(2)リッチフラグXCCROrich及び暫定リッチフラグXZrichの値のうちの一方が「1」であるとき、CPUは機関の空燃比を第2リーン空燃比(一定の空燃比)に制御する。
(3)リッチ否定フラグXNOTrichの値が「1」のとき、CPUは機関の空燃比を第1リッチ空燃比(一定の空燃比)に制御する。
(4)リーンフラグXCCROlean及び暫定リーンフラグXZleanの値のうちの一方が「1」であるとき、CPUは機関の空燃比を第2リッチ空燃比(一定の空燃比)に制御する。
以上、説明したように、本制御装置によれば、出力値Voxsと、出力値Voxs及び変化速度ΔVoxsの絶対値|ΔVoxs|と、に基づいて触媒43の状態を推定し、それに応じて、触媒流入ガスの空燃比を制御する。従って、触媒43の酸素吸蔵量OSAが「0」よりも大きく最大酸素吸蔵量Cmaxよりも小さい範囲において出来るだけ変化するように、機関の空燃比を制御することができる。その結果、エミッションを良好に維持することができる。
なお、図12のステップ1210〜1240、1260、図13〜19の各ルーチンは、出力値Voxsに基づいて触媒43に流入するガスである触媒流入ガスの空燃比を変更するように10機関に供給される燃料の量を制御する燃料供給量制御手段を構成している。
更に、図13のルーチン及び図12のステップ1240及びステップ1250は、所定のフューエルカット条件が成立したとき機関10への燃料の供給を停止するフューエルカット制御を行い且つ同フューエルカット制御中に所定のフューエルカット終了条件が成立したとき同フューエルカット制御を終了して前記燃料供給量制御手段による前記機関への燃料の供給を再開する(燃料供給の再開を許容する)フューエルカット手段を構成している。
更に、本制御装置は、フューエルカット制御終了後期間における第1変化速度閾値ΔV1thを、それ以外の期間における第1変化速度閾値ΔV1th(=ΔV1mid)よりも大きい値(ΔV1large)に設定する。これにより、フューエルカット制御終了後において、触媒43の貴金属を還元状態に戻してから、触媒流入ガスの空燃比をリーン空燃比に制御することができる。従って、フューエルカット制御後においても触媒43の浄化効率を高い値に維持できるので、エミッションを良好に維持することができる。
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、第1リーン空燃比及び第2リーン空燃比は可変であってもよい。例えば、第1リーン空燃比は、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が大きいほど、より理論空燃比から離れたリーン空燃比であってもよい。
即ち、例えば、第1リーン空燃比は、変化速度ΔVoxsが増大している期間においてその変化速度ΔVoxsの絶対値|ΔVoxs|が大きいほど「第1リーン空燃比と理論空燃比との偏差の絶対値」が大きくなる値に設定され得る。この場合、サブフィードバック量KFsubは、絶対値|ΔVoxs|に正の微分ゲイン(正の定数)kdを乗じた値を「1」から減算して得られる値(1−kd・|ΔVoxs|)等に設定される。但し、値(1−kd・|ΔVoxs|)は、「0」よりも大きい値である。更に、第1リーン空燃比は、変化速度ΔVoxsが減少している期間において一定値となる空燃比であってもよい。第2リーン空燃比は、出力値Voxsと中央値Vmidとの差の大きさに比例したリーン空燃比であってもよい。
第1リッチ空燃比及び第2リッチ空燃比は可変であってもよい。例えば、第1リッチ空燃比は、出力値Voxsの変化速度ΔVoxsの絶対値|ΔVoxs|が大きいほど、より理論空燃比から離れたリッチ空燃比であってもよい。即ち、例えば、第1リッチ空燃比は、変化速度ΔVoxsが減少している期間においてその変化速度ΔVoxsの絶対値|ΔVoxs|が大きいほど「第1リッチ空燃比と理論空燃比との偏差の絶対値」が大きくなる値に設定され得る。この場合、サブフィードバック量KFsubは、絶対値|ΔVoxs|に正の微分ゲイン(正の定数)kdを乗じた値を「1」に加算して得られる値(1+kd・|ΔVoxs|)等に設定される。更に、第1リッチ空燃比は、変化速度ΔVoxsが増大している期間において一定値となる空燃比であってもよい。第2リッチ空燃比は、出力値Voxsと中央値Vmidとの差の大きさに比例したリッチ空燃比であってもよい。