図1は、本発明の一実施の形態に係る内燃機関EGを示すブロック図であり、一つの気筒についての構成を模式的に示す図である。実際の内燃機関EGには、シリンダブロック及びシリンダヘッドを含む内燃機関の本体に一又は複数の気筒が設けられ、一つの気筒には一又は複数の吸気通路111と一又は複数の排気通路125が設けられる。
本例の内燃機関EGの吸気通路111には、エアーフィルタ112、吸入空気流量を検出するエアフローメータ113、吸入空気流量を制御するスロットルバルブ114およびコレクタ115が設けられている。スロットルバルブ114には、当該スロットルバルブ114の開度を調整するDCモータ等のアクチュエータ116が設けられている。このスロットルバルブアクチュエータ116は、運転者のアクセルペダル操作量等に基づき演算される要求トルクを達成するように、コントロールユニット11からの駆動信号に基づき、スロットルバルブ114の開度を電子制御する。また、スロットルバルブ114の開度を検出するスロットルセンサ117が設けられて、その検出信号をコントロールユニット11へ出力する。
また、コレクタ115から各気筒(図1では省略する)に分岐した吸気通路111aに臨ませて、燃料噴射バルブ118が設けられている。燃料噴射バルブ118は、コントロールユニット11において設定される駆動パルス信号によって開弁駆動され、図外の燃料ポンプから圧送されてプレッシャレギュレータにより所定圧力に制御された燃料を吸気通路(以下、燃料噴射ポートともいう)111a内に噴射する。なお、燃料噴射バルブ118を燃焼室123に臨ませて、燃料を直接燃焼室123内へ噴射する直噴型の内燃機関であってもよい。
一つの気筒において、シリンダ119と、当該シリンダ内を往復移動するピストン120の冠面と、吸気バルブ121及び排気バルブ122が設けられたシリンダヘッド134とで囲まれる空間が燃焼室123を構成する。点火プラグ124は、各気筒の燃焼室123に臨んで装着され、コントロールユニット11からの点火信号に基づいて吸入混合気に対して点火を行う。
一方、排気通路125には、排気中の特定成分、たとえば酸素濃度を検出することにより排気中の酸素濃度と密接な関係にある吸入混合気の空燃比を検出する空燃比センサ126が設けられ、その検出信号はコントロールユニット11へ出力される。この空燃比センサ126は、リッチ・リーン出力する酸素センサであってもよいし、空燃比をリニアに広域に亘って検出する広域空燃比センサであってもよい。
空燃比センサ126として周知の限界電流式酸素センサを用いることができ、この電界電流式酸素センサは、濃淡電池式酸素センサの検出部に拡散律速層と呼ばれるセラミック層を備えることにより排気中の酸素濃度に応じた出力電流が得られるセンサである。すなわち、排気中の酸素濃度と密接な関係にある空燃比が理論空燃比である場合には、その出力電流は「0」になり、空燃比がリッチになるにつれて出力電流は負の方向に大きくなり、空燃比がリーンになるにつれて出力電流は正の方向に大きくなる。このため、この空燃比センサ126の出力に基づき、排気浄化触媒127の上流側の空燃比についてそのリーン度合いやリッチ度合いを検出することができる。
また、排気通路125には、排気を浄化するための排気浄化触媒127が設けられている。この排気浄化触媒127としては、ストイキ(理論空燃比,λ=1、空気重量/燃料重量=14.7)近傍での燃焼が行われる状態において、排気中の一酸化炭素COと炭化水素HCを酸化するとともに、窒素酸化物NOxの還元を行って排気を浄化することができる三元触媒を用いることができる。また、この排気浄化触媒127は、通過する排気の空燃比が理論空燃比よりもリーンの時には排気中の酸素を吸蔵し、同空燃比が理論空燃比よりもリッチのときには吸蔵した酸素を放出する、いわゆる酸素ストレージ機能を備える。
排気通路125の排気浄化触媒127の下流側には、排気中の特定成分、たとえば酸素濃度を検出し、リッチ・リーン出力する酸素センサ128が設けられ、その検出信号はコントロールユニット11へ出力される。酸素センサ128として、周知の濃淡電池式の酸素センサを用いることができ、この濃淡電池式酸素センサの出力特性は、空燃比が理論空燃比よりもリッチのときには1V程度の出力が得られ、空燃比が理論空燃比よりもリーンのときには0V程度の出力が得られ、理論空燃比近傍でその出力電圧が大きく変化するように構成されている。このため、この酸素センサ128の出力に基づき、排気浄化触媒127の下流側の空燃比がリーンとなっているかリッチとなっているかを検出することができる。
酸素センサ128は、排気浄化触媒127での排気浄化作用の状態を監視するために排気浄化触媒127の下流側の排気通路125に臨んで設けられている。そして、空燃比センサ126の出力がリッチを示している場合に酸素センサ128の出力がリーンとなっている場合には、排気浄化触媒127から酸素が放出され、排気浄化触媒127での酸化作用が促進されていることを把握することができる。また、空燃比センサ126の出力がリーンを示している場合に酸素センサ128の出力がリッチとなっている場合には、排気浄化触媒127に酸素が吸蔵され、排気浄化触媒127での還元作用が促進されていることを把握することができる。
なお、図1において129はマフラである。また、酸素センサ128とマフラ129との間に、HCトラップ機能を有する排気浄化触媒を設けてもよい。
内燃機関EGのクランク軸130にはクランク角センサ131が設けられ、コントロールユニット11は、クランク角センサ131から機関回転と同期して出力されるクランク単位角信号を一定時間カウントすることで、又は、クランク基準角信号の周期を計測することで、機関回転速度Neを検出することができる。
内燃機関EGのウォータジャケット132には、水温センサ133が当該ウォータジャケットに臨んで設けられ、ウォータジャケット132内の冷却水温度Twを検出し、これをコントロールユニット11へ出力する。
さて、上述した排気浄化触媒127は、燃焼する混合気の空燃比が理論空燃比の近傍の狭い範囲でのみ、排気中の主要有害成分(HC、CO、NOx)のすべてを酸化還元反応により効率的に浄化する。こうした排気浄化触媒127を有効に機能させるには、混合気の空燃比を理論空燃比の近傍の狭い範囲の中心に合わせこむ、厳密な空燃比制御が必要とされる。
この空燃比の制御は、コントロールユニット11により実行される。コントロールユニット11には、エアフローメータ113、空燃比センサ126、酸素センサ128、アクセルペダルの踏み込み量を検出する図示しないアクセルセンサ、クランク角センサ131を始めとする各種センサ類の検出信号が入力される。そして、それらセンサ類の検出信号より把握される内燃機関EGや車両の運転状況に応じて、スロットルバルブ114や燃料噴射バルブ118等を駆動制御し、空燃比の制御を実行する。以下、コントロールユニット11による空燃比制御の概要を説明する。
まずコントロールユニット11は、アクセルペダルの踏み込み量や内燃機関の回転速度の検出結果に応じて把握される吸入空気量の要求量を求め、それに応じた吸入空気量が得られるようにスロットルバルブ114の開度を調整する。その一方、エアフローメータ113により検出される吸入空気量の実測値に対して、理論空燃比が得られるだけの燃料量を求め、それにより燃料噴射バルブ118からの燃料噴射量を調整する。これにより、燃焼室123で燃焼される混合気の空燃比を、ある程度に理論空燃比に近づけることができる。
これに加えて、コントロールユニット11は、排気浄化触媒127の上流側の空燃比センサ126の検出結果と、下流側の酸素センサ128の検出結果とに基づいて、燃料噴射バルブ118からの燃料噴射量を補正することにより、要求される空燃比制御の精度が確保されることになる。
ところで、排気浄化触媒127の上流側及び下流側に設けた空燃比センサ126と酸素センサ128とによって空燃比を目標空燃比に精度良く合わせ込むにあたり、上述した従来の内燃機関の制御装置では、排気浄化触媒127上流側の空燃比センサ126の検出結果により、排気浄化触媒127の上流側の空燃比についてその実測値を把握し、この実測値と目標空燃比(すなわち理論空燃比)との乖離度合に基づいて算出される空燃比フィードバック補正量に基づいて、燃料噴射バルブ118の燃料噴射量をフィードバック補正する。また、排気浄化触媒127の下流側の酸素センサ128の検出結果より、排気浄化触媒127の酸素吸蔵状態、あるいは酸素放出状態を推定し、この推定に基づいて空燃比フィードバック補正量に対する修正を行う。この修正処理では、酸素センサ128の出力に基づいて算出されるサブフィードバック補正量が増減補正され、同サブフィードバック補正量によって空燃比フィードバック補正量が修正される。
しかしながら、排気浄化触媒127は酸素吸蔵・放出機能を有するため、上述したフィードバック制御を行うと、図2Bに示すように排気浄化触媒127の下流側の酸素センサ128の出力がオーバーシュートとアンダーシュートを繰り返し、この酸素センサ128の出力に基づいてサブフィードバック補正量が算出され、結果的に空燃比フィードバック補正量が修正されるので、同図に示すように目標空燃比が理論空燃比に収束せず、周期的かつ比較的長い時間リーンの空燃比になる。その結果、排気浄化触媒127の酸素吸蔵量が周期的に増加してその間のNOx排出量が多くなるという問題がある。
これに対して、本例のコントロールユニット11は、酸素センサ128により検出される検出値と予め設定された目標値との偏差に基づき、排気浄化触媒127の上流側の目標空燃比を、期間が定められた間欠的なリッチ空燃比またはリーン空燃比に設定するとともに、当該リッチ空燃比またはリーン空燃比に設定した期間の前後の排気浄化触媒127の上流側の目標空燃比を、理論空燃比に設定する。
以下、この制御について図2A,図3A〜図3D,図4〜図6を参照しながら説明する。まず、本例の空燃比制御の概要を図2Aのタイミングチャートで説明すると、排気浄化触媒127の下流側の酸素センサ128の出力(検出値)と、予め定められた目標値との偏差を演算し、当該偏差が所定値より大きいか否かを判断する。この目標値は、図2Aの「酸素センサ出力」のグラフに示すように、リッチ側の上限値Aとリーン側の下限値Bとの間の範囲(酸素センサ128の不感帯となる)であり、この範囲と酸素センサ128の出力値との偏差を演算する。すなわち、酸素センサ128の出力値XがB≦X≦Aの場合は偏差=0とし、A<Xの場合は偏差=X−A,X<Bの場合は偏差=X−Bとなる。そして、偏差がプラスの値である場合はリッチ側の偏差であり、マイナスの値である場合はリーン側の偏差となる。
なお、酸素センサ128の出力と、予め定められた目標値との偏差は、上述したように演算する以外にも、上限値Aと下限値Bの平均値(A+B)/2に対する検出値Xの差、すなわち偏差=X−(A+B)/2とし、この偏差の絶対値が(A−B)/2を超えるか否かを判断してもよい。
図2Aに示すように、横軸の時間t0〜t1の酸素センサ128の出力値XはB≦X≦Aであるから、同図の「目標空燃比」をストイキ(理論空燃比)に設定するが、時間t1において酸素センサ128の出力値Xが目標値の上限値Aを超えたことを検出すると、コントロールユニット11は、目標空燃比を間欠的なリーン空燃比に設定し、燃料噴射バルブ118からの燃料噴射量を当該リーン空燃比に応じた値に設定する。
時間t1〜t2のリーン空燃比の設定において、間欠的な設定時間A1(=t2−t1)と、リーン度合いA2は、i)酸素センサ128の出力値Xが目標値A〜Bを超えた直後であるか否か、ii)酸素センサ128の出力値Xと目標値A〜Bとの偏差の絶対値、iii)酸素センサ128の出力値Xと目標値A〜Bとの偏差の変化量(傾き)などに応じて設定する。
たとえば、時間t1では、酸素センサ128の出力値Xが目標値A〜Bを超えた直後であるため、時間t3の場合に比べて、リーン度合いA2を大きくする(空燃比の値を大きくする)又は間欠的設定時間A1を長く設定する。または、酸素センサ128の出力値Xと目標値A〜Bとの偏差の絶対値が大きいほど、リーン度合いA2を大きくする(空燃比の値を大きくする)又は間欠的設定時間A1を長く設定する。または、酸素センサ128の出力値Xと目標値A〜Bとの偏差の変化量(傾き)が大きいほど、リーン度合いA2を大きくする(空燃比の値を大きくする)又は間欠的設定時間A1を長く設定する。
こうした間欠的な設定時間A1及びリーン度合いA2の設定値と酸素センサ128の出力値Xとの関係は予め制御マップにて定義し、コントロールユニット11に記憶しておく。図4に、リーン度合い及びリッチ度合いに関する制御マップの一例を示す。同図に示す例では、リッチ空燃比に設定する場合は、リッチ度合いが大きい空燃比Kと、これよりリッチ度合いが小さい空燃比Jが定義され、同様にリーン空燃比に設定する場合は、リーン度合いが大きい空燃比Iと、これよりリーン度合いが小さい空燃比Hが定義されている。
また図5に、酸素センサ128の出力値X及び目標値A〜Bとの偏差の変化量(傾き)と間欠的設定時間(同図ではスパイク時間ともいう)に関する制御マップの一例を示す。この制御マップでは、酸素センサ128の出力値Xと目標値A〜Bとの偏差の変化量(傾き)が大きいほど、リーン度合いA2を大きくする(空燃比の値を大きくする)又は間欠的設定時間A1を長く設定する。また、図2Aに示す時間t3〜t4のように、前回の間欠的リーン空燃比又はリッチ空燃比の設定では酸素センサ128の出力値Xが目標値に入らない場合に再度間欠的リーン空燃比又はリッチ空燃比の設定を行う場合の設定時間を一定値にする。
時間t1〜t2において間欠的なリーン空燃比の設定を終えた後は、再び目標空燃比をストイキに設定するが、ストイキに戻してから所定のインターバル時間A3の間は、リーン空燃比又はリッチ空燃比の設定を禁止し、ストイキを維持する。所定のインターバル時間A3とは、リーン空燃比(又はリッチ空燃比)の設定による燃焼の排気ガスが排気通路125を流下して酸素センサ128に至るまでの時間をいい、排気ガスの流量、内燃機関の回転速度又は内燃機関の負荷に応じて決定される。
すなわち、排気ガスの流量、内燃機関の回転速度又は内燃機関の負荷が大きいほどリーン空燃比又はリッチ空燃比の設定による燃焼の排気ガスが短時間で酸素センサ128の出力値Xに反映されるので、インターバル時間A3を短く設定する。また、酸素センサ128の検出感度が鋭敏なほどインターバル時間A3を短く設定してもよい。こうした排気ガスの流量、内燃機関の回転速度、内燃機関の負荷又は酸素センサ128の検出感度とインターバル時間A3との関係は予め制御マップに定義し、コントロールユニット11に記憶しておく。図6に、排気ガスの流量、内燃機関の回転速度又は内燃機関の負荷とインターバル時間A3に関する制御マップの一例を示す。
時間t1〜t2にてリーン空燃比の設定を行うと、インターバル時間A3の間に酸素センサ128の出力値Xがストイキ側に変化するが、インターバル時間A3を過ぎても酸素センサ128の出力値Xと目標値A〜Bとの偏差が所定値より大きい場合、換言すれば酸素センサ128の出力値Xが目標値の上限値Aよりもリッチ側である場合は、時間t3〜t4にて再度間欠的なリーン空燃比の設定を行う。上述したとおり、時間t3においては、酸素センサ128の出力値Xが目標値A〜Bを超えた直後ではないため、時間t1の場合に比べて、リーン度合いを小さくする(空燃比の値を小さくする)又は間欠的設定時間t4−t3を短く設定する。時間t4にてリーン空燃比の設定を終了したら、再び目標空燃比をストイキに設定する。この時間t3〜t4のリーン空燃比の設定により酸素センサ128の出力値Xは目標値A〜Bに入ることになる。
なお、時間t3〜t4において間欠的なリーン空燃比の設定を終えた後は、再び目標空燃比をストイキに設定するが、ストイキに戻してから所定のインターバル時間A3の間は、リーン空燃比又はリッチ空燃比の設定を禁止し、ストイキを維持する。
時間t5において、酸素センサ128の出力値Xが目標値の下限値Bを下回ったことを検出すると、コントロールユニット11は、目標空燃比を間欠的なリッチ空燃比に設定し、燃料噴射バルブ118からの燃料噴射量を当該リッチ空燃比に応じた値に設定する。この時間t5〜t6のリッチ空燃比の設定においても、間欠的な設定時間A4(=t6−t5)と、リーン度合いA5は、i)酸素センサ128の出力値Xが目標値A〜Bを下回った直後であるか否か、ii)酸素センサ128の出力値Xと目標値A〜Bとの偏差の絶対値、iii)酸素センサ128の出力値Xと目標値A〜Bとの偏差の変化量(傾き)などに応じて設定する。
たとえば、時間t5では、酸素センサ128の出力値Xが目標値A〜Bを下回った直後であるため、その後に目標値A〜Bを下回った場合に比べて、リッチ度合いA5を大きくする(空燃比の値を小さくする)又は間欠的設定時間A4を長く設定する。または、酸素センサ128の出力値Xと目標値A〜Bとの偏差の絶対値が大きいほど、リッチ度合いA5を大きくする(空燃比の値を小さくする)又は間欠的設定時間A4を長く設定する。または、酸素センサ128の出力値Xと目標値A〜Bとの偏差の変化量(傾き)が大きいほど、リッチ度合いA5を大きくする(空燃比の値を小さくする)又は間欠的設定時間A4を長く設定する。こうした間欠的な設定時間A4及びリッチ度合いA5の設定値と酸素センサ128の出力値Xとの関係は予め制御マップにて定義し、コントロールユニット11に記憶しておく。
時間t5〜t6において間欠的なリッチ空燃比の設定を終えた後は、再び目標空燃比をストイキに設定するが、ストイキに戻してから所定のインターバル時間A3の間は、リーン空燃比又はリッチ空燃比の設定を禁止し、ストイキを維持する。
以上のとおり、本例のコントロールユニット11は、酸素センサ128による検出値Xと予め設定された目標値A〜Bとの偏差に基づき、排気浄化触媒127の上流側の目標空燃比を、期間が定められた間欠的なリッチ空燃比またはリーン空燃比に設定するとともに、当該リッチ空燃比またはリーン空燃比に設定した期間t1〜t2,t3〜t4,t5〜t6の前後t0〜t1,t4〜t5,t6〜の排気浄化触媒127の上流側の目標空燃比を、理論空燃比に設定するので、図2Bに示す従来の酸素センサ128によるフィードバック制御に比べて、酸素センサ128の出力値Xのオーバーシュートやアンダーシュートが抑制され、これにより目標空燃比のオーバーシュートやアンダーシュートが抑制できる。
その結果、図2Aの「HC濃度」及び「NOx濃度」のグラフに示されるように、リーン空燃比の設定t1〜t2,t3〜t4を行った直後は、排気浄化触媒127の酸素吸蔵量が瞬間的に増加してNOx濃度が若干上昇するが、その前後の目標空燃比はストイキに設定されているのでNOx排出量を抑制することができる。また、リッチ空燃比の設定t5〜t6を行った直後は、排気浄化触媒127の酸素吸蔵量が瞬間的に減少してHC濃度が若干上昇するが、その前後の目標空燃比はストイキに設定されているのでHC排出量を抑制することができる。
また本例のコントロールユニット11は、酸素センサ128の出力値Xが所定範囲の目標値A〜Bの場合には、間欠的なリーン空燃比又はリッチ空燃比の設定を禁止し目標空燃比をストイキに設定するので、無理に排気浄化触媒127の上流側の目標空燃比を変動させることによる排気浄化性能の低下を抑制することができる。
また本例のコントロールユニット11は、インターバル時間A3の間はストイキを維持し、間欠的リーン空燃比又はリッチ空燃比の設定を禁止するので、設定した間欠的リーン空燃比又はリッチ空燃比による燃焼ガスの反映を待って次の動作を行うことができ、これによってもオーバーシュート及びアンダーシュートを抑制することができる。
また本例のコントロールユニット11は、排気ガスの流量、内燃機関の回転速度又は内燃機関の負荷が大きいほど、インターバル時間A3を短く設定するので、設定した間欠的リーン空燃比又はリッチ空燃比による燃焼ガスの反映の待ち時間が必要かつ十分な時間となり、オーバーシュート及びアンダーシュートを効率的に抑制することができる。
また本例のコントロールユニット11は、酸素センサ128の出力値Xが目標値A〜Bである所定範囲を超えた直後に間欠的なリッチ空燃比又は間欠的なリーン空燃比の設定を行う場合に、それ以降の間欠的なリッチ空燃比又はリーン空燃比の設定に比べて、少なくとも間欠的な空燃比の設定時間を長い値に設定するか又はリッチ空燃比を小さい値に設定するか若しくはリーン空燃比を大きい値に設定するので、短時間で酸素センサ128の出力値Xを目標値A〜Bに戻すことができる。
また本例のコントロールユニット11は、酸素センサ128の出力値Xと目標値A〜Bとの偏差の時間的変化量が大きいほど、間欠的な空燃比の設定時間を長い値に設定するか又はリッチ空燃比を小さい値に設定するか若しくはリーン空燃比を大きい値に設定するので、短時間で酸素センサ128の出力値Xを目標値A〜Bに戻すことができる。
次に、図3A〜図3Dを参照してコントロールユニット11の具体的制御手順の一例について説明する。まず図3AのステップS1にて、リーン空燃比又はリッチ空燃比の設定による間欠的燃料噴射(以下、スパイクともいう)を実行中か否かを判断する。図2Aに示す時間軸と合わせるため、最初にスパイク中でない(ステップS1にてNo→3Bへ)場合を説明する。
図3BのステップS14では、酸素センサ128の出力値Xが目標値の上限値Aを超えているか否かを判断し、超えている場合はステップS15へ進み、前回スパイク時の酸素センサ128の出力値Xが目標値の下限値Bを下回っていたか否かを判断する。そして、前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていた場合はステップS16へ進み、リーン空燃比Iを目標空燃比に設定し、ステップS17にて当該リーン空燃比Iによるスパイクを実行する。ステップS18では、ステップS17で設定したリーン空燃比Iによるスパイク時間を、直前の一定時間の酸素センサ128の出力変化量の関数から決定し、変化量が大きいほどスパイク時間を長くする。最後にステップS19にてスパイクタイマをクリヤすることによりスパイクを終了する。
前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていた場合は、図3Cに示すように間欠的なリッチ空燃比によるスパイクを実行するので、排気浄化触媒127の酸素吸蔵量は減少気味にある。このため、相対的に大きいリーン空燃比Iによってスパイクすることで排気浄化触媒127の酸素吸蔵量を調整する。
ステップS15に戻り、前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていなかった場合はステップS20へ進み、インターバル時間A3のタイマカウントアップ値がC(=A3)未満であるか否かを判断し、タイマカウントアップ値がC未満である場合は、ステップS21へ進み、ステップS14にて酸素センサ128の出力値Xが上限値Aを超えていてもリーン空燃比に設定することなく、目標空燃比をストイキに設定する。そして、ステップS22にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS20にて、インターバル時間A3のタイマカウントアップ値がC(=A3)以上である場合はステップS23へ進み、前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていたか否かを判断する。そして、出力値Xが上限値Aを超えていた場合はステップS24へ進み、超えていなかった場合はステップS28へ進む。
前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていた場合は、ステップS24にて、目標空燃比を相対的に小さいリーン空燃比Hに設定し、ステップS25にて当該リーン空燃比Hによるスパイクを実行する。ステップS26では、ステップS25で設定したリーン空燃比Hによるスパイク時間を、酸素センサ128の出力値Xと目標値との偏差関数から決定し、偏差が大きいほどスパイク時間を長くする。最後にステップS27にてスパイクタイマをクリヤすることによりスパイクを終了する。
一方、前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていなかった場合は、ステップS28にて、目標空燃比を相対的に大きいリーン空燃比Iに設定し、ステップS29にて当該リーン空燃比Iによるスパイクを実行する。ステップS30では、ステップS29で設定したリーン空燃比Iによるスパイク時間を、酸素センサ128の出力変化量の関数から決定し、出力変化量が大きいほどスパイク時間を長くする。最後にステップS31にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS23にて、前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていたか否かを判断するのは、前回スパイク時に酸素センサ128の出力値Xが上限値Aを超えていた場合には、それによってリーン空燃比によるスパイクを実行しているので、排気浄化触媒127の酸素吸蔵量が増加気味となっていると推察され、このため、相対的に小さいリーン空燃比Hによってスパイクすることで排気浄化触媒127の酸素吸蔵量を調整するためである。
図3BのステップS14⇒S15⇒S16⇒S17⇒S18⇒S19が、図2Aの時間t1〜t2に相当し、図3BのステップS14⇒S15⇒S20⇒S23⇒S24⇒S25⇒S26⇒S26が、図2Aの時間t3〜t4に相当し、図3BのステップS14⇒S15⇒S20⇒S21⇒S22が、図2Aの時間t2〜t3に相当する。
ステップS14に戻り、酸素センサ128の出力値Xが目標値の上限値Aを超えていない場合は、図3CのステップS32へ進み、酸素センサ128の出力値Xが目標値の下限値Bを下回っているか否かを判断する。酸素センサ128の出力値Xが下限値Bを下回っている場合はステップS33へ進み、前回スパイク時の酸素センサ128の出力値Xが目標値の上限値Aを超えていたか否かを判断する。そして、前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていた場合はステップS34へ進み、リッチ空燃比Kを目標空燃比に設定し、ステップS35にて当該リッチ空燃比Kによるスパイクを実行する。ステップS36では、ステップS35で設定したリッチ空燃比Kによるスパイク時間を、直前の一定時間の酸素センサ128の出力変化量の関数から決定し、変化量が大きいほどスパイク時間を長くする。最後にステップS37にてスパイクタイマをクリヤすることによりスパイクを終了する。
前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていた場合は、図3Bに示すように間欠的なリーン空燃比によるスパイクを実行するので、排気浄化触媒127の酸素吸蔵量は増加気味にある。このため、相対的に大きいリッチ空燃比Kによってスパイクすることで排気浄化触媒127の酸素吸蔵量を調整する。
ステップS33に戻り、前回スパイク時の酸素センサ128の出力値Xが上限値Aを超えていなかった場合はステップS38へ進み、インターバル時間A3のタイマカウントアップ値がC(=A3)未満であるか否かを判断し、タイマカウントアップ値がC未満である場合は、ステップS39へ進み、ステップS32にて酸素センサ128の出力値Xが下限値Bを下回っていてもリッチ空燃比に設定することなく、目標空燃比をストイキに設定する。そして、ステップS40にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS38にて、インターバル時間A3のタイマカウントアップ値がC(=A3)以上である場合はステップS41へ進み、前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていたか否かを判断する。そして、出力値Xが下限値Bを下回っていた場合はステップS42へ進み、下回っていなかった場合はステップS46へ進む。
前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていた場合は、ステップS42にて、目標空燃比を相対的にリッチ度合いが小さいリッチ空燃比Jに設定し、ステップS43にて当該リッチ空燃比Jによるスパイクを実行する。ステップS44では、ステップS42で設定したリッチ空燃比Jによるスパイク時間を、酸素センサ128の出力値Xと目標値との偏差関数から決定し、偏差が大きいほどスパイク時間を長くする。最後にステップS45にてスパイクタイマをクリヤすることによりスパイクを終了する。
一方、前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていなかった場合は、ステップS46にて、目標空燃比を相対的にリッチ度合いが大きいリッチ空燃比Kに設定し、ステップS47にて当該リッチ空燃比Kによるスパイクを実行する。ステップS48では、ステップS46で設定したリッチ空燃比Kによるスパイク時間を、酸素センサ128の出力変化量の関数から決定し、出力変化量が大きいほどスパイク時間を長くする。最後にステップS49にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS41にて、前回スパイク時の酸素センサ128の出力値Xが下限値Bを下回っていたか否かを判断するのは、前回スパイク時に酸素センサ128の出力値Xが下限値Bを下回っていた場合には、それによってリッチ空燃比によるスパイクを実行しているので、排気浄化触媒127の酸素吸蔵量が減少気味になっていると推察され、このため、相対的にリッチ度合いが小さいリッチ空燃比Jによってスパイクすることで排気浄化触媒127の酸素吸蔵量を調整するためである。
なお、ステップS32にて、酸素センサ128の出力値Xが下限値B以上である場合は、ステップS50へ進み、目標空燃比をストイキに設定したのち、ステップS51にてインターバル時間A3のインターバルタイマをCに設定する。図3CのステップS32⇒S33⇒S34⇒S35⇒S36⇒S37が、図2Aの時間t5〜t6に相当し、図3CのステップS32⇒S33⇒S38⇒S39⇒S40が、図2Aの時間t6〜に相当する。
図3AのステップS1へ戻り、ステップS1にてスパイク中であると判断された場合にはステップS2へ進み、現在の目標空燃比がリーン空燃比I又はHのいずれかであるか否かを判断する。目標空燃比がリーン空燃比I又はHである場合はステップS3へ進み、酸素センサ128の出力値Xが目標値の下限値Bを下回っているか否かを判断する。
ステップS2にて目標空燃比がリーン空燃比I又はHに設定されているにも拘らず、スパイク中に酸素センサ128の出力値Xが下限値Bを下回った場合には、ステップS4にて目標空燃比を、リッチ度合いが相対的に大きいリッチ空燃比Kに設定し、ステップS5にて当該リッチ空燃比Kによるスパイクを実行する。ステップS6では、ステップS4で設定したリッチ空燃比Iによるスパイク時間を、酸素センサ128の出力変化量の関数から決定し、出力変化量が大きいほどスパイク時間を長くする。最後にステップS7にてスパイクタイマをクリヤすることによりスパイクを終了する。
一方、ステップS3にて、酸素センサ128の出力値Xが下限値Bを下回っていない場合はステップ8へ進み、インターバル時間A3のタイマカウントアップ値がC(=A3)未満であるか否かを判断し、タイマカウントアップ値がC未満である場合は、ステップS9へ進み、目標空燃比をリーン空燃比I又はHを維持する。そして、ステップS10にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS8にて、インターバル時間A3のタイマカウントアップ値がC(=A3)以上である場合はステップS11へ進み、目標空燃比をストイキに設定する。そして、ステップS12にて、インターバル時間Cを、排気ガス流量、内燃機関の回転数又は内燃機関の負荷の関数として決定し、最後にステップS13にてインターバル時間をクリヤする。
ステップS2へ戻り、目標空燃比がリーン空燃比I又はHではない場合には、図3DのステップS52へ進む。そして、ステップS1のスパイク中において、ステップS52では酸素センサ128の出力値Xが目標値の上限値Aを超えているか否かを判断し、超えている場合はステップS53へ進み、目標空燃比をリーン空燃比Iに設定し、ステップS54にて当該リーン空燃比Iによるスパイクを実行する。ステップS55では、ステップS53で設定したリーン空燃比Iによるスパイク時間を、直前の一定時間の酸素センサ128の出力変化量の関数から決定し、変化量が大きいほどスパイク時間を長くする。最後にステップS56にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS52にて、酸素センサ128の出力値Xが目標値の上限値Aを超えていない場合はステップS57へ進み、インターバル時間A3のタイマカウントアップ値がC(=A3)未満であるか否かを判断し、タイマカウントアップ値がC未満である場合は、ステップS58へ進み、目標空燃比を前回の値に維持する。そして、ステップS59にてスパイクタイマをクリヤすることによりスパイクを終了する。
ステップS57にて、インターバル時間A3のタイマカウントアップ値がC(=A3)以上である場合はステップS60へ進み、目標空燃比をストイキに設定する。そして、ステップS61にて、インターバル時間Cを、排気ガス流量、内燃機関の回転数又は内燃機関の負荷の関数として決定し、最後にステップS62にてインターバル時間をクリヤする。
上記空燃比センサ126は本発明に係る上流排気ガスセンサに相当し、上記酸素センサ128は本発明に係る下流排気ガスセンサに相当し、上記コントロールユニット11は本発明に係る制御手段に相当する。