従って、本発明の目的は、張り付き判定における判定精度を高くすることができる内燃機関の空燃比制御装置を提供することにある。
本発明に係る第1の空燃比制御装置は、空燃比センサ(上流側空燃比センサ、及び/又は下流側空燃比センサ)と、燃料噴射手段(インジェクタ)とを備えた内燃機関に適用される。
上記第1の空燃比制御装置では、基本燃料噴射量取得手段により、内燃機関の運転状態に基づいて上記基本燃料噴射量が取得される。
フィードバック補正値取得手段により、前記空燃比センサの出力値に基づいて前記基本燃料噴射量を補正するためのフィードバック補正値が取得される。ここにおいて、前記フィードバック補正値は、例えば、前記空燃比センサの出力値に基づく値と前記目標空燃比に相当する値との偏差に相当する値を逐次積算して更新されていく偏差積分値そのものであってもよいし、前記「偏差に相当する値」をPID処理等して得られる値であってもよい。前記「空燃比センサの出力値に基づく値」は、例えば、上流側空燃比センサの出力値そのもの、下流側空燃比センサの出力値そのもの、上流側空燃比センサの出力値を下流側空燃比センサの出力値に基づいて補正した値等である。また、前記「偏差に相当する値」は、例えば、空燃比センサの出力値と目標空燃比相当出力値との偏差、空燃比センサによる検出空燃比と目標空燃比との偏差等である。
ガード処理実行手段により、前記フィードバック補正値が予め設定されたガード値を超えた場合に同フィードバック補正値を同ガード値に制限するガード処理が行われる。
指令燃料噴射量算出手段により、前記基本燃料噴射量を前記ガード処理されたフィードバック補正値に基づいて補正することで指令燃料噴射量が算出される。そして、空燃比制御手段により、前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで空燃比が前記目標空燃比に一致するようにフィードバック制御される。
上記第1の空燃比制御装置の特徴は、張り付き判定用フィードバック補正値取得手段と、張り付き判定手段とを備えたことにある。
張り付き判定用フィードバック補正値取得手段は、前記フィードバック補正値にローパスフィルタ処理を施して張り付き判定用フィードバック補正値を取得する。これにより、張り付き判定用フィードバック補正値の変動が抑制されて、張り付き判定用フィードバック補正値の変動幅がフィードバック補正値の変動幅よりも小さくなる。
なお、張り付き判定用フィードバック補正値は、ガード処理されたフィードバック補正値にローパスフィルタ処理を施した値であってもよいし、ガード処理される前のフィードバック補正値そのものにローパスフィルタ処理を施した値であってもよい。張り付き判定用フィードバック補正値がガード処理される前のフィードバック補正値そのものにローパスフィルタ処理を施した値である場合、張り付き判定用フィードバック補正値に上記ガード処理と同じガード処理を行ってもよいし、行わなくてもよい。
張り付き判定手段は、前記張り付き判定用フィードバック補正値が所定期間に亘って前記ガード値以上に維持された場合に前記フィードバック補正値が前記ガード値に張り付いたと判定する。これにより、上述のように変動が抑制された張り付き判定用フィードバック補正値を用いて「張り付き判定」が行われる。
従って、「張り付き判定」において「張り付き」と判定されるべき場合、張り付き判定用フィードバック補正値がガード値に達した後同ガード値以上に維持され易くなり、この結果、「張り付き」と判定され易くなる。換言すれば、「張り付き判定」における判定精度を高くすることができる。
加えて、この張り付き判定用フィードバック補正値は基本燃料噴射量の補正(即ち、指令燃料噴射量の算出)には使用されない。即ち、上述したように、基本燃料噴射量の補正には上記ガード処理されたフィードバック補正値そのもの(即ち、ローパスフィルタ処理されていない値)が使用される。従って、空燃比フィードバック制御そのものにローパスフィルタ処理による悪影響が及ぼされることはない。
ところで、フィードバック補正値に施されるローパスフィルタ処理におけるカットオフ周波数(以下、単に「カットオフ周波数」とも称呼する。)が小さいほど(即ち、ローパスフィルタ処理における時定数が大きいほど)、張り付き判定用フィードバック補正値の応答遅れの程度が大きくなる。この結果、上述した「空燃比制御系の異常」が発生した後、フィードバック補正値がガード値に達するまでの時間が長くなる。このことは、「空燃比制御系の異常」が発生した後において「張り付き」と判定される時期が遅れることを意味する。従って、「張り付き」と判定される時期の遅れを抑制する観点からは、カットオフ周波数は大きい方が好ましい。
一方、空燃比センサの出力値の変動(従って、フィードバック補正値の変動)における周波数分布のうちの主たる部分は、或る周波数帯域(以下、「変動周波数レンジ」と称呼する。)内に集中する傾向がある。従って、張り付き判定用フィードバック補正値の変動を確実に抑制する観点からは、カットオフ周波数を「変動周波数レンジ」の下限値以下とすることが好ましい。
以上、上述した2つの観点を鑑みれば、カットオフ周波数は、「変動周波数レンジ」の下限値近傍に設定されることが最適であると考えられる。ここで、「変動周波数レンジ」は、以下に述べるように、機関の運転状態に応じて移動する。従って、カットオフ周波数は、機関の運転状態に応じて変更されることが好適である。
具体的には、例えば、筒内吸入空気量(吸気行程において燃焼室に吸入された空気の量)、及び機関の運転速度に応じてカットオフ周波数が変更されることが好ましい。空燃比センサ(特に、上流側空燃比センサ)の出力値の変動周波数は、機関の運転速度が大きくなるほど、或いは機関の負荷(即ち、筒内吸入空気量)が大きくなるほど、大きくなる傾向がある。換言すれば、「変動周波数レンジ」は、機関の運転速度が大きくなるほど、或いは筒内吸入空気量が大きくなるほど、より高周波数側に移動する。
従って、機関の運転速度が大きくなるほど、或いは筒内吸入空気量が大きくなるほど、カットオフ周波数をより大きい値に設定することが好ましい。上記構成は、係る知見に基づくものである。
また、フィードバック補正値を取得するために使用されるフィードバックゲインが機関の運転状態に応じて変更されるように構成されている場合、そのフィードバックゲインに応じてカットオフ周波数が変更されることが好ましい。
フィードバックゲインが大きいほど、フィードバック補正値の変動幅が大きくなる。一方、カットオフ周波数が小さいほど(即ち、時定数が大きいほど)、張り付き判定用フィードバック補正値の変動を抑制する程度を大きくすることができる。以上より、張り付き判定用フィードバック補正値の変動を確実に抑制するためには、フィードバックゲインが大きいほど、カットオフ周波数をより小さい値に設定することが好ましい。上記構成は、係る知見に基づくものである。
また、空燃比センサの劣化状態が取得される場合、取得された空燃比センサの劣化状態に応じてカットオフ周波数が変更されることが好ましい。空燃比センサの出力値の変動周波数は、その空燃比センサの劣化の程度が大きくなるほど小さくなる傾向がある。換言すれば、「変動周波数レンジ」は、空燃比センサの劣化の程度が大きくなるほど、より低周波数側に移動する。従って、空燃比センサの劣化の程度が大きくなるほど、カットオフ周波数をより小さい値に設定することが好ましい。上記構成は、係る知見に基づくものである。
また、空燃比センサの活性状態を表す値が取得される場合、取得された空燃比センサの活性状態を表す値に応じてカットオフ周波数が変更されることが好ましい。空燃比センサの出力値の変動周波数は、その空燃比センサの活性状態が完全活性状態に近づくにつれて大きくなる傾向がある。換言すれば、「変動周波数レンジ」は、空燃比センサの活性状態が完全活性状態に近づくにつれてより高周波数側に移動する。従って、空燃比センサの活性状態が完全活性状態に近づくにつれて、カットオフ周波数をより大きい値に設定することが好ましい。上記構成は、係る知見に基づくものである。ここにおいて、「空燃比センサの活性状態を表す値」としては、例えば、機関の冷却水の温度、空燃比センサそのものの温度、始動後における筒内吸入空気量の積算値、始動後における述べ燃料噴射回数等が挙げられる。
また、前記フィードバック補正値の取得に使用される空燃比センサとして下流側空燃比センサが含まれている場合であって触媒の活性状態を表す値が取得される場合、取得された触媒の活性状態を表す値に応じてカットオフ周波数が変更されることが好ましい。下流側空燃比センサの出力値の変動周波数は、その下流側空燃比センサの上流に配設された触媒の活性状態が完全活性状態に近づくにつれて小さくなる傾向がある。換言すれば、「変動周波数レンジ」は、触媒の活性状態が完全活性状態に近づくにつれてより低周波数側に移動する。従って、触媒の活性状態が完全活性状態に近づくにつれて、カットオフ周波数をより小さい値に設定することが好ましい。上記構成は、係る知見に基づくものである。ここにおいて、「触媒の活性状態を表す値」としては、例えば、機関の冷却水の温度、触媒そのものの温度、始動後における筒内吸入空気量の積算値、始動後における述べ燃料噴射回数等が挙げられる。
また、前記フィードバック補正値の取得に使用される空燃比センサとして下流側空燃比センサが含まれている場合であって触媒の劣化状態が取得される場合、取得された触媒の劣化状態に応じてカットオフ周波数が変更されることが好ましい。下流側空燃比センサの出力値の変動周波数は、その下流側空燃比センサの上流に配設された触媒の劣化の程度が大きくなるほど大きくなる傾向がある。換言すれば、「変動周波数レンジ」は、触媒の劣化の程度が大きくなるほど、より高周波数側に移動する。従って、触媒の劣化の程度が大きくなるほど、カットオフ周波数をより大きい値に設定することが好ましい。上記構成は、係る知見に基づくものである。
また、機関が、運転状態に応じて複数の気筒のうちの一部を動力の発生に寄与しない「休止気筒」とする一部気筒休止機構を備えている場合、「休止気筒」の数に応じてカットオフ周波数が変更されることが好ましい。空燃比センサ(特に、全ての気筒からの排ガスが集合する箇所よりも下流の上流側空燃比センサ)の出力値の変動周波数は、「休止気筒」の数が大きくなるほど小さくなる傾向がある。換言すれば、「変動周波数レンジ」は、「休止気筒」の数が大きくなるほど、より低周波数側に移動する。従って、「休止気筒」の数が大きくなるほど、カットオフ周波数をより小さい値に設定することが好ましい。上記構成は、係る知見に基づくものである。
次に、本発明に係る第2の空燃比制御装置について説明する。近年、本発明者により、上流側空燃比センサの出力値に基づいて得られる、基本燃料噴射量を補正するための値(即ち、指令燃料噴射量の算出に使用される値)として、上記「基本燃料噴射量の誤差」を補償するための値(以下、「基本燃料噴射量補正値」と称呼する。)と、過渡の外乱に対する補正を行うためのフィードバック補正値とを使用する技術が提案されてきている(例えば、特開2005−273524を参照)。
ここにおいて、上記フィードバック補正値は、上流側空燃比センサの出力値に基づく値であってハイパスフィルタ処理された値に基づいて取得される。一方、上記基本燃料噴射量補正値は、指令燃料噴射量が基本燃料噴射量と等しい場合において実際に噴射される燃料の量が空燃比を目標空燃比とするために必要な量となるように基本燃料噴射量を補正するための値、であってローパスフィルタ処理された値であり、上流側空燃比センサの出力値と、目標空燃比と、(過去の)指令燃料噴射量と、基本燃料噴射量とに基づいて取得される。
このように、上記基本燃料噴射量補正値は、既にローパスフィルタ処理された後の値である。加えて、上記「空燃比制御系の異常」が発生・継続した場合、基本燃料噴射量補正値は大きい値(基本燃料噴射量を補正する程度が大きい値)に維持され得る。以上のことから、基本燃料噴射量補正値そのものにガード処理を施すとともに、ガード処理された基本燃料噴射量補正値を用いて上記「張り付き判定」を行っても、上記第1の空燃比制御装置と同様、「張り付き判定」における判定精度を高くすることができる。
上記第2の空燃比制御装置は係る知見に基づくものである。即ち、上記第2の空燃比制御装置は、少なくとも上流側空燃比センサを備えた機関に適用され、第1の空燃比制御装置のものと同じ基本燃料噴射量取得手段と、上記過渡の外乱に対する補正を行うための「フィードバック補正値」を取得するフィードバック補正値取得手段と、上記「基本燃料噴射量の誤差」を補償するための「基本燃料噴射量補正値」を取得する基本燃料噴射量補正値取得手段と、前記基本燃料噴射量補正値が予め設定されたガード値を超えた場合に同基本燃料噴射量補正値を同ガード値に制限するガード処理を行うガード処理実行手段と、前記基本燃料噴射量を、前記ガード処理された基本燃料噴射量補正値と、前記フィードバック補正値と、に基づいて補正することで前記指令燃料噴射量を算出する指令燃料噴射量算出手段と、上記第1の空燃比装置のものと同じ空燃比制御手段と、前記ガード処理された基本燃料噴射量補正値が所定期間に亘って前記ガード値に維持された場合に前記基本燃料噴射量補正値が前記ガード値に張り付いたと判定する張り付き判定手段とを備えている。
この第2の空燃比装置においても、上記第1の空燃比装置と同じ理由により、基本燃料噴射量補正値に施されているローパスフィルタ処理のカットオフ周波数を、機関の運転状態に応じて変更することが好適である。
具体的には、上記カットオフ周波数は、筒内吸入空気量、及び機関の運転速度に応じて、例えば、機関の運転速度が大きくなるほど、或いは筒内吸入空気量が大きくなるほど、より大きい値に設定されることが好ましい。
また、上記カットオフ周波数は、上流側空燃比センサの劣化状態に応じて、例えば、上流側空燃比センサの劣化の程度が大きくなるほど、より小さい値に設定されることが好ましい。
また、上記カットオフ周波数は、上流側空燃比センサの活性状態を表す値に応じて、例えば、上流側空燃比センサの活性状態が完全活性状態に近づくにつれて、より大きい値に設定されることが好ましい。
また、上記カットオフ周波数は、「休止気筒」の数に応じて、例えば、「休止気筒」の数が大きくなるほど、より小さい値に設定されることが好ましい。
次に、本発明に係る第3の空燃比制御装置について説明する。この第3の空燃比制御装置は、張り付き判定用フィードバック補正値の取得方法においてのみ、上記第1の空燃比制御装置と異なる。
即ち、上記第3の空燃比制御装置では、張り付き判定用フィードバック補正値は、指令燃料噴射量の算出に使用される(従って、基本燃料噴射量の補正に使用される)前記フィードバック補正値と等しい値に原則的に決定される。一方、張り付き判定用フィードバック補正値(=前記フィードバック補正値)が所定の程度まで前記ガード値に近づいた場合、張り付き判定用フィードバック補正値は、前記フィードバック補正値に代えて、前記フィードバック補正値の取得に使用されるフィードバックゲインよりも小さいフィードバックゲインを使用して前記フィードバック補正値を取得した場合に前記フィードバック補正値として得られる値に決定される。
一般に、フィードバック補正値の算出に使用されるフィードバックゲインが小さいほど、フィードバック補正値の変動幅が小さくなる。従って、上記構成によれば、張り付き判定用フィードバック補正値がガード値に近づくと、張り付き判定用フィードバック補正値の変動幅が前記フィードバック補正値そのものの変動幅よりも小さくなる。即ち、このように変動が抑制された張り付き判定用フィードバック補正値を用いて「張り付き判定」を行っても、上記第1の空燃比制御装置と同様、「張り付き判定」における判定精度を高くすることができる。
なお、この場合も、上記第1の空燃比制御装置と同様、張り付き判定用フィードバック補正値に上記ガード処理と同じガード処理を行ってもよいし、行わなくてもよい。
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、第1実施形態による空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これによりクランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
吸気系統40は、吸気ポート31に連通し吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51(実際には、各排気ポート34に連通した各々のエキゾーストマニホールド51が集合した集合部)に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された上流側の三元触媒53(上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第1触媒53」と称呼する。)、及びこの第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側の三元触媒54(車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、上記各々のエキゾーストマニホールド51が集合した集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、及びアクセル開度センサ68を備えている。
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともにクランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の酸素濃度センサであり、図2に示したように、空燃比A/Fに応じた電流を出力し、この電流に応じた電圧である出力値Vabyfsを出力するようになっていて、特に、空燃比が理論空燃比であるときには出力値Vabyfsは上流側目標値Vstoichになる。図2から明らかなように、上流側空燃比センサ66によれば、広範囲にわたる空燃比A/Fを精度良く検出することができる。
下流側空燃比センサ67は、起電力式(濃淡電池式)の酸素濃度センサであり、図3に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ67は、空燃比が理論空燃比よりもリーンのときは略0.1(V)、空燃比が理論空燃比よりもリッチのときは略0.9(V)、及び空燃比が理論空燃比のときは0.5(V)の電圧を出力するようになっている。アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜68と接続され、CPU71にセンサ61〜68からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
(空燃比フィードバック制御の概要)
次に、上記のように構成された空燃比制御装置が行う空燃比のフィードバック制御の概要について説明する。
この空燃比制御装置は、下流側空燃比センサ67の出力値が理論空燃比に対応する下流側目標値Voxsref(=0.5(V))となるように、上流側空燃比センサ66の出力値Vabyfs(即ち、第1触媒53上流の空燃比)、及び下流側空燃比センサ67の出力値Voxs(即ち、第1触媒53下流の空燃比)に応じて空燃比を制御する。
より具体的に述べると、この空燃比制御装置(以下、「本装置」と云うこともある。)は、機能ブロック図である図4に示したように、A1〜A17の各機能ブロックを含んで構成されている。以下、図4を参照しながら各機能ブロックについて説明していく。
<基本燃料噴射量の算出>
先ず、筒内吸入空気量算出手段A1は、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られる運転速度NEと、ROM72が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の(k)は、今回の吸気行程に対する値であることを示している(以下、他の物理量についても同様。)。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
上流側目標空燃比設定手段A2は、内燃機関10の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて上流側目標空燃比abyfr(k)を決定する。この上流側目標空燃比abyfr(k)は、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に設定されている。また、上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
基本燃料噴射量算出手段A3は、上記筒内吸入空気量Mc(k)を上記上流側目標空燃比abyfr(k)で除することにより、空燃比を上流側目標空燃比abyfr(k)とするための今回の吸気行程に対する目標筒内燃料供給量Fcr(k)(即ち、基本燃料噴射量Fbase)を求める。目標筒内燃料供給量Fcrは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。この基本燃料噴射量算出手段A3は、「基本燃料噴射量取得手段」に相当する。
<指令燃料噴射量の算出>
指令燃料噴射量算出手段A4は、上記基本燃料噴射量Fbaseに、後述する(ガード処理された)上流側フィードバック補正値DFiを加えることで、下記(1)式に基づいて指令燃料噴射量Fiを求める。この指令燃料噴射量算出手段A4は、「指令燃料噴射量算出手段」に相当する。
Fi=Fbase+DFi ・・・(1)
このようにして、本装置は、基本燃料噴射量Fbaseを(ガード処理された)上流側フィードバック補正値DFiに基づいて補正することにより得られる指令燃料噴射量Fiの燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ39に対して行う。このように燃料の噴射指示を行う手段が「空燃比制御手段」に相当する。
<下流側フィードバック補正値の取得>
先ず、下流側目標値設定手段A5は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である0.5(V)に設定されている(図3を参照。)。また、本例では、下流側目標値Voxsrefは、下流側目標値Voxsrefに対応する空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
出力偏差量算出手段A6は、下記(2)式に基づいて、現時点(具体的には、今回のFiの噴射指示開始時点)での下流側目標値Voxsrefから現時点での下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
DVoxs=Voxsref−Voxs ・・・(2)
PIDコントローラA7は、出力偏差量DVoxsを比例・積分・微分処理(PID処理)することで、下記(3)式に基づいて下流側フィードバック補正値Vafsfbを求める。下記(3)式において、Kpは予め設定された比例ゲイン(一定値)、Kiは予め設定された積分ゲイン(一定値)、Kdは予め設定された微分ゲイン(一定値)である。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs ・・・(3)
また、SDVoxsは出力偏差量DVoxsの時間積分値であり、DDVoxsは出力偏差量DVoxsの時間微分値である。ここで、PIDコントローラA7は積分項Ki・SDVoxsを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの定常偏差がゼロになる。
このようにして、本装置は、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの定常偏差がゼロになるように出力値Voxsに基づいて、下流側フィードバック補正値Vafsfbを求める。この下流側フィードバック補正値Vafsfbは、後述するように制御用空燃比abyfsの取得に用いられる。ここで、下流側目標値設定手段A5、出力偏差量算出手段A6、及びPIDコントローラA7は、下流側フィードバック補正値取得手段に相当する。
<制御用空燃比の取得>
制御用空燃比相当出力値算出手段A8は、現時点での上流側空燃比センサ66の出力値Vabyfsに、下流側フィードバック補正値Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
テーブル変換手段A9は、上記制御用空燃比相当出力値(Vabyfs+Vafsfb)と、先に説明した図2にグラフにより示した上流側空燃比センサの出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルMapabyfsとに基づいて、現時点における制御用空燃比abyfsを求める。これにより、制御用空燃比abyfsは、上流側空燃比センサ66の出力値Vabyfsから得られる空燃比に対して下流側フィードバック補正値Vafsfbに相当する分だけ異なる空燃比となる。ここで、制御用空燃比相当出力値算出手段A8、及びテーブル変換手段A9は、制御用空燃比取得手段に相当する。
<上流側フィードバック補正値の取得>
筒内吸入空気量遅延手段A10は、筒内吸入空気量算出手段A1により吸気行程毎に求められRAM73に記憶されている筒内吸入空気量Mcのうち、現時点からNストローク前に吸気行程を迎えた気筒の筒内吸入空気量Mc(k-N)をRAM73から読み出す。ここで、ストローク数Nは、「行程遅れに係る時間」と「輸送遅れに係る時間」と「応答遅れに係る時間」の和(以下、「無駄時間L」と称呼する。)に相当するストローク数である。
「行程遅れに係る時間」は、燃料の噴射指示から、この噴射指示により噴射された燃料の燃焼に基づく排ガスが排気弁35を介して燃焼室25から排気通路へ排出されるまでの時間である。「輸送遅れに係る時間」は、排ガスが排気弁35を介して排気通路へ排出されてから上流側空燃比センサ66(の検出部)に到達するまでの時間である。「応答遅れに係る時間」は、上流側空燃比センサ66(の検出部)に到達した排ガスの空燃比の変化が上流側空燃比センサ66の出力値Vabyfsの変化として現れるまでの時間である。
筒内燃料供給量算出手段A11は、上記現時点からNストローク前の筒内吸入空気量Mc(k-N)を今回の制御用空燃比abyfsで除することで、現時点からNストローク前の制御用筒内燃料供給量Fc(k-N)を求める。
このように、現時点からNストローク前の制御用筒内燃料供給量Fc(k-N)を求めるために、現時点からNストローク前の筒内吸入吸気量Mc(k-N)を今回の制御用空燃比abyfsで除するのは、燃料の噴射指示から、その噴射指示に対応する燃料の燃焼に基づく排ガスの空燃比の変化が上流側空燃比センサ66の出力値Vabyfsの変化として現れるまでには、Nストロークに相当する無駄時間Lを要しているからである。
目標筒内燃料供給量遅延手段A12は、基本燃料噴射量算出手段A3により吸気行程毎に求められRAM73に記憶されている目標筒内燃料供給量Fcrのうち、現時点からNストローク前の目標筒内燃料供給量Fcr(k-N)をRAM73から読み出す。
筒内燃料供給量偏差算出手段A13は、下記(4)式に基づいて、上記現時点からNストローク前の目標筒内燃料供給量Fcr(k-N)から上記現時点からNストローク前の制御用筒内燃料供給量Fc(k-N)を減じることにより、筒内燃料供給量偏差DFcを求める。この筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
DFc=Fcr(k-N)-Fc(k-N) ・・・(4)
PIコントローラA14は、上記筒内燃料供給量偏差DFcを比例・積分処理(PI処理)することで、下記(5)式に基づいてNストローク前の燃料供給量の過不足を補償するための上流側フィードバック補正値DFi(ガード処理される前の値)を求める。
DFi=(Gp・DFc+Gi・SDFc)・KFB ・・・(5)
上記(5)式において、Gpは比例ゲイン、Giは積分ゲインである。SDFcは筒内燃料供給量偏差DFcの時間積分値(前記「偏差積分値」に対応する)である。後述するように、比例ゲインGp、積分ゲインGiは運転状態に応じて変更される。また、係数KFBは、運転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、本例では「1」としている。
上記(5)式にて求められる上流側フィードバック補正値DFiが前記「偏差積分値に少なくとも基づく、基本燃料噴射量を補正するためのフィードバック補正値」に対応する。ここで、筒内吸入空気量遅延手段A10、筒内燃料供給量算出手段A11、目標筒内燃料供給量遅延手段A12、筒内燃料供給量偏差算出手段A13、及びPIコントローラA14は上流側フィードバック補正値算出手段に相当する。加えて、上記下流側フィードバック補正値取得手段(A5〜A7)、上記制御用空燃比取得手段(A8〜A9)、及び上記上流側フィードバック補正値算出手段(A10〜A14)が前記「フィードバック補正値取得手段」に相当する。
<ガード処理>
ガード処理実行手段A15は、上記(5)式にて求められた上流側フィードバック補正値DFiが予め設定された下限ガード値を下回った場合に上流側フィードバック補正値DFiを下限ガード値に制限し、上記(5)式にて求められた上流側フィードバック補正値DFiが予め設定された上限ガード値を超えた場合に上流側フィードバック補正値DFiを上限ガード値に制限する処理(以下、「ガード処理」と称呼する。)を行う。ここにおいて、上限ガード値は、可燃領域に対応する空燃比範囲のリッチ側限界値に相当する値であり、下限ガード値は、可燃領域に対応する空燃比範囲のリーン側限界値に相当する値である。
このようにガード処理された上流側フィードバック補正値DFiが、先に述べたように指令燃料噴射量算出手段A4により指令燃料噴射量Fiを求める際に使用される。これにより、上述した「空燃比制御系の異常」が発生した場合等において、指令燃料噴射量Fiに対応する空燃比が可燃領域から逸脱する事態の発生が回避され得る。このガード処理実行手段A15が前記「ガード処理実行手段」に相当する。
このように、本装置は、現時点からNストローク前の目標筒内燃料供給量Fcr(k-N)と現時点からNストローク前の制御用筒内燃料供給量Fc(k-N)とが一致するように上流側空燃比センサ66の出力値Vabyfsに基づいて空燃比をフィードバック制御する。換言すれば、上記現時点での制御用空燃比が(現時点からNストローク前の)上流側目標空燃比abyfrと一致するように空燃比がフィードバック制御される。
加えて、制御用空燃比abyfsは、上述したように、上流側空燃比センサ66の出力値Vabyfsから得られる空燃比を下流側フィードバック補正値Vafsfbに相当する分だけ補正した空燃比である。従って、制御用空燃比abyfsは出力偏差量DVoxsにも応じて変化する。この結果、下流側空燃比センサ67の出力値Voxsが下流側目標値Voxsrefに一致するようにも空燃比がフィードバック制御される。
加えて、PIコントローラA14は積分項Gi・SDFcを含んでいるので、定常状態では筒内燃料供給量偏差DFcがゼロになることが保証される。換言すれば、現時点からNストローク前の目標筒内燃料供給量Fcr(k-N)と現時点からNストローク前の制御用筒内燃料供給量Fc(k-N)との定常偏差がゼロになる(即ち、上流側目標空燃比abyfr(k-N)と制御用空燃比abyfsとの定常偏差がゼロになる)。このことは、定常状態において、制御用空燃比abyfsが上流側目標空燃比abyfrに一致すること、従って、第1触媒53の上下流の空燃比が上流側目標空燃比abyfrに一致することが保証されることを意味する。
また、定常状態では、筒内燃料供給量偏差DFcがゼロになることで比例項Gp・DFcがゼロとなるから、上流側フィードバック補正値DFiは積分項Gi・SDFcの値と等しくなる。この積分項Gi・SDFcの値は、「基本燃料噴射量の誤差」に応じた値になる。これにより、「基本燃料噴射量の誤差」を補償することができる。
<張り付き判定>
ローパスフィルタA16は、その特性をラプラス演算子sを用いて表した下記(6)式に示すように、一次のディジタルフィルタである。下記(6)式において、ωcutはカットオフ周波数である。ローパスフィルタA16は、上記ガード処理された上流側フィードバック補正値DFiを入力するとともに、下記(6)式に従って張り付き判定用上流側フィードバック補正値DFilowを出力する。
1/(1+(1/ωcut)・s) ・・・(6)
カットオフ周波数ωcutは、上流側空燃比センサ66の出力値Vabyfsの変動(従って、上流側フィードバック補正値DFiの変動)における周波数分布のうちの主たる部分が集中する周波数範囲(以下、「変動周波数レンジ」と称呼する。)の下限値近傍の値に設定される。これにより、張り付き判定用上流側フィードバック補正値DFilowでは、上記ガード処理された上流側フィードバック補正値DFiにおける主たる変動が確実に除去されている。
従って、張り付き判定用上流側フィードバック補正値DFilowの変動幅は、上記ガード処理された上流側フィードバック補正値DFiの変動幅よりも小さくなる。なお、上記「変動周波数レンジ」が機関の運転状態に応じて変化することに対応して、カットオフ周波数ωcutは、後述するように、機関の運転状態に応じて変更される。このローパスフィルタA16が前記「張り付き判定用フィードバック補正値取得手段」に相当する。
張り付き判定手段A17は、上記張り付き判定用フィードバック補正値DFilowが所定期間に亘って上記上限ガード値、又は上記下限ガード値に維持された場合に「フィードバック補正値DFiがガード値に張り付いた」(即ち、上記「張り付き」が発生した)と判定する。本装置では、「張り付き」と判定された場合、空燃比フィードバック制御が中止される。
図5は、「上流側フィードバック補正値DFiが上限ガード値に張り付いた」と判定されるべき場合における、上記ガード処理された上流側フィードバック補正値DFi、及び張り付き判定用上流側フィードバック補正値DFilowの変化の一例を示したタイムチャートである。このような状況は、例えば、上述した「空燃比制御系の異常」の発生等により上記筒内燃料供給量偏差DFcが大きい値に維持され続け、この結果、上記時間積分値SDFc(従って、上流側フィードバック補正値DFi)(上記(5)式を参照)が次第に増大していく場合に発生する。
図5に示したように、張り付き判定用上流側フィードバック補正値DFilowは、上記ガード処理された上流側フィードバック補正値DFiに比して、ガード値に達した後において同ガード値に維持され易い。従って、この場合、上記ガード処理された上流側フィードバック補正値DFiよりも張り付き判定用上流側フィードバック補正値DFilowを用いて「張り付き判定」を行った方が「張り付き」と判定され易くなる。
即ち、張り付き判定手段A17によれば、張り付き判定用上流側フィードバック補正値DFilowを用いて「張り付き判定」が行われるから、「張り付き判定」における判定精度を高くすることができる。この張り付き判定手段A17が前記「張り付き判定手段」に相当する。以上が、上記のように構成された空燃比制御装置が行う空燃比のフィードバック制御の概要である。
(実際の作動)
次に、前記空燃比制御装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
<空燃比フィードバック制御>
CPU71は、図6にフローチャートにより示した燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、CPU71はステップ600から処理を開始してステップ605に進み、テーブルMapMc(NE,Ga)に基づいて今回の吸気行程を迎える気筒(以下、「燃料噴射気筒」と云うこともある。)に吸入された今回の筒内吸入空気量Mc(k)を推定・決定する。
次に、CPU71はステップ610に進んで、上記筒内吸入空気量Mc(k)を今回の目標空燃比abyfr(k)で除することにより、基本燃料噴射量Fbaseを決定する。次いで、CPU71はステップ615に進み、今回の目標筒内燃料供給量Fcr(k)を上記基本燃料噴射量Fbaseと等しい値に決定する。
続いて、CPU71はステップ620に進み、上記(1)式に従って上記基本燃料噴射量Fbaseに後述するルーチンにて(前回の燃料噴射時点にて)求められている最新の(ガード処理された)上流側フィードバック補正値DFiを加えることにより指令燃料噴射量Fiを決定する。
そして、CPU71はステップ625に進んで、上記指令燃料噴射量Fiの燃料の噴射指示を行った後、CPU71はステップ695に進んで本ルーチンを一旦終了する。以上により、基本燃料噴射量Fbaseがフィードバック補正された後の指令燃料噴射量Fiの燃料の噴射指示が燃料噴射気筒に対してなされる。
<上流側フィードバック補正値の計算>
次に、(ガード処理された)上流側フィードバック補正値DFiを算出する際の作動について説明すると、CPU71は図7にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ700から処理を開始し、ステップ705に進んで、後述するルーチンにより「DFi張り付き」と判定されているか否かを判定する。
いま、「DFi張り付き」と判定されていないものとして説明を続けると、CPU71はステップ705にて「No」と判定してステップ710に進み、テーブルMapN(Mc(k),NE)に基づいて上記ストローク数Nを決定する。これは、ストローク数Nが、筒内吸入空気量Mc(k)が大きいほど、或いは運転速度NEが大きいほど小さくなることに基づく。
次に、CPU71はステップ715に進んで、現時点の上流側空燃比センサ66の出力値Vabyfsと後述するルーチンにて求められている下流側フィードバック補正値Vafsfbの最新値との和である合成空燃比相当出力値(Vabyfs+Vafsfb)をテーブルMapabyfs(Vabyfs+Vafsfb)に基づいて変換することにより、現時点における制御用空燃比abyfsを求める(図2を参照)。
次いで、CPU71はステップ720に進み、現時点からNストローク(N回の吸気行程)前に吸気行程を迎えた気筒の吸入空気量である筒内吸入空気量Mc(k-N)を上記制御用空燃比abyfsで除することにより、現時点からNストローク前の実際の筒内燃料供給量Fc(k-N)を求める。
続いて、CPU71はステップ725に進んで、現時点からNストローク前の筒内吸入空気量Mc(k-N)を現時点からNストローク前の目標空燃比abyfr(k-N)で除することにより、現時点からNストローク前の目標筒内燃料供給量Fcr(k-N)を求める。
次に、CPU71はステップ730に進んで、上記(4)式に従って、上記目標筒内燃料供給量Fcr(k-N)から前記筒内燃料供給量Fc(k-N)を減じることにより筒内燃料供給量偏差DFcを求める。つまり、筒内燃料供給量偏差DFcは、Nストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
次いで、CPU71はステップ735に進み、テーブルMapGp(Mc(k),NE)に基づいて比例ゲインGpを決定し、テーブルMapGi(Mc(k),NE)に基づいて積分ゲインGiを決定する。このように、比例ゲインGp、及び積分ゲインGiは、筒内吸入空気量Mc(k)、及び運転速度NEに応じて変更される。
次に、CPU71はステップ740に進んで、上記(5)式に基づいて上流側フィードバック補正値DFiを求め、続くステップ745にて上流側フィードバック補正値DFiに上記ガード処理(下限ガード値≦DFi≦上限ガード値)を行い、続くステップ750にてその時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ730にて求めた筒内燃料供給量偏差DFcを加えて、新たな筒内燃料供給量偏差の積分値SDFcを求めた後、ステップ795に進んで本ルーチンを一旦終了する。
以上により、ガード処理された上流側フィードバック補正値DFiが求められ、このガード処理された上流側フィードバック補正値DFiが前述した図6のステップ620により指令燃料噴射量Fiに反映されることで空燃比フィードバック制御が実行される。
一方、ステップ705の判定時において、「DFi張り付き」と判定されている場合、CPU71はステップ705にて「Yes」と判定してステップ755に進んで上流側フィードバック補正値DFiの値を「0」に設定し、その後ステップ795に進んで本ルーチンを一旦終了する。このように、「DFi張り付き」と判定されている場合、上流側フィードバック補正値DFiを「0」として基本燃料噴射量Fbaseの補正を行わない。
<下流側フィードバック補正量の計算>
次に、下流側フィードバック補正値Vafsfbを算出する際の作動について説明すると、CPU71は図8にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ800から処理を開始し、ステップ805に進んで、上記(2)式に従って、下流側目標値Voxsrefから現時点の下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。次に、CPU71はステップ810に進んで、下記(7)式に基づき出力偏差量DVoxsの微分値DDVoxsを求める。
DDVoxs=(DVoxs−DVoxs1)/Δt ・・・(7)
上記(7)式において、DVoxs1は前回の本ルーチン実行時において後述するステップ825にて更新された出力偏差量DVoxsの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。
次いで、CPU71はステップ815に進み、上記(3)式に基づいて下流側フィードバック補正値Vafsfbを求める。
続いて、CPU71はステップ820に進んで、その時点における出力偏差量の積分値SDVoxsに上記ステップ805にて求めた出力偏差量DVoxsを加えて、新たな出力偏差量の積分値SDVoxsを求め、続くステップ825にて、出力偏差量DVoxsの前回値DVoxs1を上記ステップ805にて求めた出力偏差量DVoxsと等しい値に設定した後、ステップ895に進んで本ルーチンを一旦終了する。
以上により、下流側フィードバック補正値Vafsfbが求められる。この下流側フィードバック補正値Vafsfbは、前述した図7のルーチンの次回の実行時においてステップ715にて制御用空燃比abyfsを求めるのに用いられる。
<DFiの張り付き判定>
次に、上流側フィードバック補正値DFiの張り付き判定を行う際の作動について説明すると、CPU71は図9にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。以下、上流側空燃比センサ66の出力値Vabyfs、及び下流側空燃比センサ67の出力値Voxsの変動(従って、上流側フィードバック補正値DFiの変動)における周波数分布のうちの主たる部分が集中する周波数帯域を「変動周波数レンジ」と称呼する。
燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ900から処理を開始し、ステップ905に進んで、テーブルMapω1(Mc(k),NE)に基づいて周波数ω1を決定する。この周波数ω1は、筒内吸入空気量Mc(k)、及び運転速度NEの観点から設定される「変動周波数レンジ」の下限値である。
これにより、周波数ω1は、筒内吸入空気量Mc(k)が大きいほど、或いは運転速度NEが大きいほどより大きい値に設定される。これは、筒内吸入空気量Mc(k)が大きいほど、或いは運転速度NEが大きいほど、上流側空燃比センサ66の変動周波数が大きくなり、これにより、「変動周波数レンジ」がより高周波数側に移動する傾向があることに基づく。
続いて、CPU71はステップ910に進み、テーブルMapω2(τres)に基づいて周波数ω2を決定する。この周波数ω2は、上流側空燃比センサ66の応答時定数τresの観点から設定される「変動周波数レンジ」の下限値である。応答時定数τresは、上流側空燃比センサ66の劣化状態を表す値である。
これにより、周波数ω2は、応答時定数τresが大きいほどより小さい値に設定される。これは、上流側空燃比センサ66の応答時定数τresが大きいほど(即ち、上流側空燃比センサ66の劣化の程度が大きいほど)、上流側空燃比センサ66の変動周波数が小さくなり、これにより、「変動周波数レンジ」がより低周波数側に移動する傾向があることに基づく。なお、応答時定数τresは、例えば、ステップ応答法等を用いた周知の手法の1つを利用して所定のタイミング毎に取得・更新され得る。このステップ910は、前記「センサ劣化状態取得手段」に相当する。
次いで、CPU71はステップ915に進み、テーブルMapω3(THW)に基づいて周波数ω3を決定する。この周波数ω3は、冷却水温THWの観点から設定される「変動周波数レンジ」の下限値である。冷却水温THWは、上流側空燃比センサ66の活性状態を表す値であり、且つ、第1触媒53の活性状態を表す値でもある。
これにより、周波数ω3は、冷却水温THWに応じた値に変更される。これは、上流側空燃比センサ66の活性状態が完全活性状態に近づくにつれて(即ち、冷却水温THWが高くなるにつれて)上流側空燃比センサ66の変動周波数が大きくなり、これにより、「変動周波数レンジ」がより高周波数側に移動する傾向、並びに、第1触媒53の活性状態が完全活性状態に近づくにつれて(即ち、冷却水温THWが高くなるにつれて)下流側空燃比センサ67の変動周波数が小さくなり、これにより、「変動周波数レンジ」がより低周波数側に移動する傾向があることに基づく。このステップ915は、前記「センサ活性状態指標値取得手段」及び前記「触媒活性状態指標値取得手段」に相当する。
続いて、CPU71はステップ920に進み、テーブルMapω4(Cmax)に基づいて周波数ω4を決定する。この周波数ω4は、第1触媒53が吸蔵し得る酸素の量の最大値である最大酸素吸蔵量Cmaxの観点から設定される「変動周波数レンジ」の下限値である。最大酸素吸蔵量Cmaxは、第1触媒53の劣化状態を表す値である。
これにより、周波数ω4は、最大酸素吸蔵量Cmaxが小さいほどより大きい値に設定される。これは、第1触媒53の最大酸素吸蔵量Cmaxが小さいほど(即ち、第1触媒53の劣化の程度が大きいほど)、下流側空燃比センサ67の変動周波数が大きくなり、これにより、「変動周波数レンジ」がより高周波数側に移動する傾向があることに基づく。なお、最大酸素吸蔵量Cmaxは、例えば、下流側空燃比センサ67の出力値Voxsが反転するタイミングで空燃比を所定のリッチ・リーン空燃比の一方から他方に切り換える所謂アクティブ空燃比制御等、周知の手法の1つを利用して所定のタイミング毎に取得・更新され得る。このステップ920は、前記「触媒劣化状態取得手段」に相当する。
次に、CPU71はステップ925に進み、テーブルMapω5(Gp,Gi)に基づいて周波数ω5を決定する。この周波数ω5は、比例ゲインGp、及び積分ゲインGiの観点から設定される値である。これにより、周波数ω5は、比例ゲインGp、及び積分ゲインGiが大きいほどより小さい値に設定される。これは、比例ゲインGp、及び積分ゲインGiが大きいほど、張り付き判定用上流側フィードバック補正値DFilowの変動を抑制する程度を大きくする必要があることに基づく。
次いで、CPU71はステップ930に進んで、張り付き判定用上流側フィードバック補正値DFilowを求めるために施されるローパスフィルタ処理におけるカットオフ周波数ωcutを、上記求めた周波数ω1〜ω5のうちの最小値に決定する。換言すれば、カットオフ周波数ωcutは、上記4つの観点からそれぞれ設定される「変動周波数レンジ」の下限値のうちの最小値と、比例ゲインGp及び積分ゲインGiの観点から設定される周波数ω5と、のうち小さい方の値に決定される。
このように、カットオフ周波数ωcutは、種々の観点から設定される値のうちの最小値に決定されるから、張り付き判定用上流側フィードバック補正値DFilowにおける変動(特に、「変動周波数レンジ」内の変動)が確実に抑制され得る。
次に、CPU71はステップ935に進み、図7のルーチンのステップ745にて取得される「ガード処理された上流側フィードバック補正値DFi」を、上記決定されたカットオフ周波数ωcutを用いてローパスフィルタ処理して張り付き判定用上流側フィードバック補正値DFilowを取得する。
続いて、CPU71はステップ940に進んで、上記張り付き判定用上流側フィードバック補正値DFilowが下限ガード値以下、又は上限ガード値以上であるか否か(即ち、下限ガード値、又は上限ガード値に維持されているか否か)を判定する。
ステップ940にて「No」と判定される場合、CPU71はステップ945に進んで、カウンタzを初期値「0」に設定した後、ステップ995に進んで本ルーチンを一旦終了する。一方、ステップ940にて「Yes」と判定される場合、CPU71はステップ950に進んで、カウンタzを「1」だけインクリメントする。即ち、カウンタzは、上記張り付き判定用上流側フィードバック補正値DFilowが下限ガード値、又は上限ガード値に維持されている時間を表す。
CPU71はステップ955に進むと、カウンタzが所定値z1に達したか否か、即ち、上記張り付き判定用上流側フィードバック補正値DFilowが下限ガード値、又は上限ガード値に上記所定期間に亘って維持されたか否かを判定し、「No」と判定する場合、ステップ995に直ちに進む。一方、ステップ955にて「Yes」と判定される場合、CPU71はステップ960に進んで「DFi張り付き」と判定する。
このように、「DFi張り付き」と判定されると、以降、CPU71は図7のステップ705に進んだとき「Yes」と判定するようになる。この結果、上流側フィードバック補正値DFiが「0」に設定されて、基本燃料噴射量Fbaseの補正(従って、空燃比フィードバック制御)が中止される。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、第1触媒53上流の上流側空燃比センサ66の出力値Vabyfsに基づく空燃比を第1触媒53下流の下流側空燃比センサ67の出力値Voxsに基づいて補正して得られる制御用空燃比abyfsと、目標空燃比abyfrと、の偏差をPI処理して上流側フィードバック補正値DFiが求められる。この上流側フィードバック補正値DFiにはガード処理が行われる。指令燃料噴射量Fiは、基本燃料噴射量Fbaseに、ガード処理された上流側フィードバック補正値DFiを加えた値に決定される。これにより、ガード処理された上流側フィードバック補正値DFiに基づいて空燃比が目標空燃比abyfrに一致するようにフィードバック制御される。
他方、ガード処理された上流側フィードバック補正値DFiをカットオフ周波数ωcutを用いてローパスフィルタ処理して張り付き判定用上流側フィードバック補正値DFilowが取得される。この張り付き判定用上流側フィードバック補正値DFilowが所定期間に亘ってガード値(具体的には、上限ガード値、又は下限ガード値)に維持された場合に「DFi張り付き」と判定され、空燃比フィードバック制御が中止される。
このように、ローパスフィルタ処理により変動が抑制された張り付き判定用上流側フィードバック補正値DFilowを用いて「張り付き判定」が行われるため、「空燃比制御系の異常」等の発生に起因して「DFi張り付き」と判定されるべき場合において、「DFi張り付き」と判定され得ない事態の発生を抑制できる。
加えて、この張り付き判定用フィードバック補正値DFilowは、基本燃料噴射量Fbaseの補正(即ち、指令燃料噴射量Fiの算出)には使用されない。従って、空燃比フィードバック制御そのものに上記ローパスフィルタ処理による悪影響が及ぼされることはない。
更には、張り付き判定用上流側フィードバック補正値DFilowの変動における周波数分布において除去されるべき「変動周波数レンジ」が機関の運転状態に応じて変化することに対応して、上記カットオフ周波数ωcutが、「変動周波数レンジ」の下限値近傍で推移するように、機関の運転状態に応じて変更される。従って、張り付き判定用上流側フィードバック補正値DFilowの応答遅れに起因して「DFi張り付き」と判定される時期が遅れることを抑制しつつ、張り付き判定用フィードバック補正値DFilowの変動を確実に抑制できる。
本発明は上記第1実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第1実施形態においては、ガード処理された上流側フィードバック補正値DFiにローパスフィルタ処理を施して張り付き判定用上流側フィードバック補正値DFilowが取得されているが、ガード処理される前の上流側フィードバック補正値DFiそのものにローパスフィルタ処理を施して張り付き判定用上流側フィードバック補正値DFilowを取得してもよい。
この場合、張り付き判定用フィードバック補正値DFilowそのものを用いて「張り付き判定」を行ってもよいし、張り付き判定用フィードバック補正値DFilowに上記ガード処理と同じガード処理を行った値を用いて「張り付き判定」を行ってもよい。
また、上記第1実施形態においては、ローパスフィルタ処理におけるカットオフ周波数ωcutを機関の運転状態に応じて変更しているが、カットオフ周波数ωcutを一定値としてもよい。この場合、カットオフ周波数ωcutは、この第1実施形態において採り得る範囲の最小値に設定されることが好ましい。
(第2実施形態)
次に、本発明の第2実施形態に係る空燃比制御装置について説明する。図10は、この第2実施形態の機能ブロック図である。図10に示すように、第2実施形態は、ハイパスフィルタA18を挿入した点、PIコントローラA14に代えてPコントローラA19を使用する点、基本燃料噴射量補正係数設定手段A20及び補正前基本燃料噴射量補正手段A21を加えた点、ローパスフィルタA16及び張り付き判定手段A17に代えて張り付き判定手段A22を使用する点、下流側フィードバック補正値DFisubが基本燃料噴射量Fbaseに直接加えられる点で、図4に機能ブロック図が示される第1実施形態と異なる。以下、係る相違点を中心として説明する。
ハイパスフィルタA18は、その特性をラプラス演算子sを用いて表した下記(8)式に示すように、一次のディジタルフィルタである。下記(8)式において、ω1はカットオフ周波数である。ハイパスフィルタA18は、上記筒内燃料供給量偏差DFcを入力するとともに、下記(8)式に従ってハイパスフィルタ処理後筒内燃料供給量偏差DFchiを出力する。
1−(1/(1+τ1・s)) ・・・(8)
PコントローラA19は、上記ハイパスフィルタ処理後筒内燃料供給量偏差DFchiを比例処理(P処理)することで、下記(9)式に基づいて、過渡の外乱に対する基本燃料噴射量Fbaseの補正を行うための上流側フィードバック補正値DFimainを求める。下記(9)式において、Gpは比例ゲインである。この上流側フィードバック補正値DFimainが前記「フィードバック補正値」に相当する。
DFimain=Gp・DFchi ・・・(9)
PコントローラA19は、第1実施形態のPIコントローラA14と異なり積分項を含んでいないので、上記「基本燃料噴射量の誤差」が補償され得ない。従って、上流側フィードバック補正値DFmainによる補正とは別に、「基本燃料噴射量の誤差」が補償される必要がある。このためには、例えば、基本燃料噴射量算出手段A3により算出される基本燃料噴射量Fbaseそのものを補正した値である補正後基本燃料噴射量が、実際の空燃比を目標空燃比abyfrとするために吸気行程を迎える気筒のインジェクタ39に噴射指示すべき燃料の量(以下、「目標基本燃料噴射量Fbaset」と称呼する。)と一致する(近づく)ように基本燃料噴射量Fbaseを補正する必要がある。以下、基本燃料噴射量算出手段A3により算出される基本燃料噴射量を「補正前基本燃料噴射量Fbaseb(k)」と称呼する。
そこで、第2実施形態では、図10に示すように、基本燃料噴射量補正係数KFが導入される。即ち、基本燃料噴射量補正係数設定手段A20により設定される基本燃料噴射量補正係数KFを補正前基本燃料噴射量補正手段A21により補正前基本燃料噴射量Fbaseb(k)に乗じた値(以下、「補正後基本燃料噴射量Fbase」と称呼する。)が、上記目標基本燃料噴射量Fbasetと一致する(近づく)ように、基本燃料噴射量補正係数KFが設定される。そして、この補正後基本燃料噴射量Fbaseが指令燃料噴射量算出手段A4による指令燃料噴射量Fiの算出に使用される。以下、基本燃料噴射量補正係数設定手段A20、及び補正後基本燃料噴射量算出手段A21について説明する。
一般に、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもとでは、燃料噴射量と、空燃比(従って、排気ガスの空燃比)の積は一定となる。従って、係る仮定のもとでは、一般に、現時点から無駄時間Lに相当する上記Nストローク(N回の吸気行程)前の指令燃料噴射量Fi(k-N)と上流側空燃比センサ66により得られる現時点での空燃比(以下、「検出空燃比abyfd(k)」と称呼する。)の積は、現時点からNストローク前の上記目標基本燃料噴射量Fbasetと現時点からNストローク前の目標空燃比abyfr(k-N)の積に等しい、という関係が成立する。従って、現時点からNストローク前の目標基本燃料噴射量Fbasetは、一般に、下記(10)式に従って表すことができる。
Fbaset=(abyfd(k)/abyfr(k-N))・Fi(k−N) ・・・(10)
このように、現時点からNストローク前の目標基本燃料噴射量Fbasetが計算される際、燃料噴射量Fi及び目標空燃比abyfrとしては、Nストローク前の値である燃料噴射量Fi(k−N)及び目標空燃比abyfr(k-N)が使用される一方、検出空燃比abyfdとして今回の検出空燃比abyfd(k)が使用される。これは、燃料の噴射指示から燃焼室25内での燃焼に基づく排ガスが上流側空燃比センサ66に到達するまでには、Nストロークに相当する無駄時間Lを要しているからである。
係る知見に基づいて、基本燃料噴射量補正係数設定手段A20は、上記(10)式を利用して基本燃料噴射量補正係数KFを設定する。加えて、機関が過渡運転状態にある場合、検出空燃比abyfd、燃料噴射量Fi、及び補正前基本燃料噴射量Fbasebが別個独立に所定の周波数以上の高周波数で大きく変動し得る。このような場合、上記(10)式に示した関係が維持され得なくなる可能性がある。従って、安定した補正前基本燃料噴射量Fbasebの補正を実現するためには、基本燃料噴射量補正係数KFはローパスフィルタ処理された後の値であることが好ましい。
更には、この第2実施形態では、基本燃料噴射量補正係数KFがローパスフィルタ処理された後の値であることを利用して、基本燃料噴射量補正係数KFにガード処理が行われ、ガード処理された基本燃料噴射量補正係数KFを用いて「張り付き判定」が行われる。
以上のことから、基本燃料噴射量補正係数設定手段A20は、その機能ブロック図である図11に示したようにA20a〜A20gの各機能ブロックを含んで構成されている。即ち、指令燃料噴射量遅延手段A20aは、指令燃料噴射量算出手段A4により吸気行程毎に求められRAM73に記憶されている指令燃料噴射量Fiのうち、現時点からNストローク前の指令燃料噴射量Fi(k−N)をRAM73から読み出す。
目標空燃比遅延手段A20bは、上流側目標空燃比設定手段A2により吸気行程毎に求められRAM73に記憶されている目標空燃比abyfrのうち、現時点からNストローク前の目標空燃比(k−N)をRAM73から読み出す。
目標基本燃料噴射量算出手段A20cは、上記(10)式に従って、今回の検出空燃比abyfd(k)の値を上記Nストローク前の目標空燃比abyfr(k-N)で除した値に、上記Nストローク前の指令燃料噴射量Fi(k-N)の値を乗じることで目標基本燃料噴射量Fbasetを求める。
補正前基本燃料噴射量遅延手段A20dは、基本燃料噴射量算出手段A3により吸気行程毎に求められRAM73に記憶されている補正前基本燃料噴射量Fbasebのうち、現時点からNストローク前の補正前基本燃料噴射量Fbaseb(k-N)をRAM73から読み出す。
基本燃料噴射量補正係数算出手段A20eは、下記(11)式に従って、上記目標基本燃料噴射量Fbasetを上記Nストローク前の補正前基本燃料噴射量Fbaseb(k-N)で除することで、ローパスフィルタ処理前基本燃料噴射量補正係数KF1を求める。
KF1=Fbaset/Fbaseb(k-N) ・・・(11)
ローパスフィルタA20fは、上記第1実施形態におけるローパスフィルタA16と同様の、カットオフ周波数ωcutを用いたローパスフィルタである。ローパスフィルタA20fは、上記ローパスフィルタ処理前基本燃料噴射量補正係数KF1の値を入力し、上記(6)式と同じ下記(12)式に従って、上記KF1の値をローパスフィルタ処理した後の値である基本燃料噴射量補正係数KFを出力する。このカットオフ周波数ωcutも、上記第1実施形態におけるローパスフィルタA16におけるカットオフ周波数ωcutと同様、後述するように、機関の運転状態に応じて変更される。この基本燃料噴射量補正係数KFが前記「基本燃料噴射量補正値」に相当する。
1/(1+(1/ωcut)・s) ・・・(12)
ガード処理実行手段A20gは、上記基本燃料噴射量補正係数KFが予め設定された下限ガード値を下回った場合に基本燃料噴射量補正係数KFを下限ガード値に制限し、上記基本燃料噴射量補正係数KFが予め設定された上限ガード値を超えた場合に基本燃料噴射量補正係数KFを上限ガード値に制限する処理(ガード処理)を行う。上記第1実施形態と同様、上限ガード値は、可燃領域に対応する空燃比範囲のリッチ側限界値に相当する値であり、下限ガード値は、可燃領域に対応する空燃比範囲のリーン側限界値に相当する値である。このようにガード処理された基本燃料噴射量補正係数KFが基本燃料噴射量補正係数設定手段A20から出力される。
そして、補正前基本燃料噴射量補正手段A21は、基本燃料噴射量算出手段A3により求められた補正前基本燃料噴射量Fbaseb(k)に、基本燃料噴射量補正係数設定手段A20から出力されるガード処理された基本燃料噴射量補正係数KFを乗じることで、下記(13)式に基づいて補正後基本燃料噴射量Fbaseを求める。
Fbase=KF・Fbaseb(k) ・・・(13)
指令燃料噴射量算出手段A4は、このように求められた補正後基本燃料噴射量Fbaseに、上記PコントローラA19から出力される上流側フィードバック補正値DFimainと、上記第1実施形態のものと同じPIDコントローラA7から出力される下流側フィードバック補正値DFisubと、を加えて指令燃料噴射量Fiを算出する。
このように、第2実施形態では、上流側空燃比センサ66の出力値Vabyfsに基づいて得られる、補正前基本燃料噴射量Fbasebを補正するための値(即ち、指令燃料噴射量Fiの算出に使用される値)として、「基本燃料噴射量の誤差」を補償するための値である基本燃料噴射量補正係数KFと、過渡の外乱に対する補正を行うための上流側フィードバック補正値DFimainとが使用される。
また、第2実施形態における張り付き判定手段A22は、上記基本燃料噴射量補正係数KF(即ち、カットオフ周波数ωcutを用いてローパスフィルタ処理されている値)が所定期間に亘って上記上限ガード値、又は上記下限ガード値に維持された場合に「基本燃料噴射量補正係数KFがガード値に張り付いた」(即ち、上記「張り付き」が発生した)と判定する。第2実施形態でも、上記第1実施形態と同様、「張り付き」と判定された場合、空燃比フィードバック制御が中止される。
(第2実施形態における実際の作動)
第2実施形態のCPU71は、上記第1実施形態のCPU71が実行する図6〜図9に示したルーチンに代えて、図12〜図17にフローチャートにより示したルーチンを実行する。以下、図12以降のルーチンにおいて、前出のルーチンのステップと同じステップについては前出のルーチンのステップ番号と同じステップ番号を付すことでそれらの説明に代える。
図12は、図6に対応するルーチンである。図12において、ステップ1205は図6のステップ610に対応し、ステップ1210は図6のステップ615に対応し、ステップ1220は図6のステップ620に対応する。図12のルーチンは、図6のルーチンと類似しているので、その詳細な説明を省略する。
図13は、図7に対応するルーチンである。図13において、ステップ1305は図7のステップ705に対応し、ステップ1310は図7のステップ715に対応し、ステップ1315は図7のステップ720に対応し、ステップ1325は図7のステップ735に対応し、ステップ1330は図7のステップ740に対応し、ステップ1335は図7のステップ755に対応する。
図13に示すように、「KF張り付き」と判定されている場合、ステップ1305にて「No」と判定されてステップ1335にて上流側フィードバック補正値DFimainが「0」に設定される。即ち、この場合、図12のステップ1220において上流側フィードバック補正値DFimainによる補正後基本燃料噴射量Fbaseの補正が行われない。図13のルーチンは、図7のルーチンと類似しているので、その詳細な説明を省略する。
図14は、図8に対応するルーチンである。図14において、ステップ1410は図8のステップ815に対応する。図14に示すように、「KF張り付き」と判定されている場合、ステップ1405にて「No」と判定されてステップ1415にて下流側フィードバック補正値DFisubが「0」に設定される。即ち、この場合、図12のステップ1220において下流側フィードバック補正値DFisubによる補正後基本燃料噴射量Fbaseの補正が行われない。
図15は、基本燃料噴射量補正係数KFを求めるためのルーチンである。図15において、ステップ1510は、図11の目標基本燃料噴射量算出手段A20cに対応し、ステップ1515は、図11の基本燃料噴射量補正係数算出手段A20eに対応する。
ステップ1520では、図16に示したルーチンの実行によりカットオフ周波数ωcutが設定される。図16において、ステップ1605〜1615は図9のステップ905〜915にそれぞれ対応し、ステップ1620は図9のステップ930に対応する。これにより、上記第1実施形態と同様、カットオフ周波数ωcutが機関の運転状態に応じて変更される。
ステップ1525は、図11のローパスフィルタA20fに対応し、ステップ1530は、図11のガード処理実行手段A20gに対応する。
加えて、図15に示すように、「KF張り付き」と判定されている場合、ステップ1505にて「No」と判定されてステップ1535にて基本燃料噴射量補正係数KFが「1」に設定される。即ち、この場合、図12のステップ1215において基本燃料噴射量補正係数KFによる補正前基本燃料噴射量Fbasebの補正が行われない。
以上のように、第2実施形態では、「KF張り付き」と判定されている場合、上流側フィードバック補正値DFimain=「0」、下流側フィードバック補正値DFisub=「0」、基本燃料噴射量補正係数KF=「1」となり、補正前基本燃料噴射量Fbasebの補正が行われない。即ち、指令燃料噴射量Fi=Fbasebとなる。
図17は、図9に対応する、基本燃料噴射量補正係数KFの張り付き判定を行うためのルーチンである。図17において、ステップ1705〜1725は図9のステップ940〜960にそれぞれ対応する。これにより、基本燃料噴射量補正係数KFの値そのものを用いて「張り付き判定」が行われる。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第2実施形態によれば、補正前基本燃料噴射量Fbasebの補正に使用される、既にローパスフィルタ処理されているガード処理された基本燃料噴射量補正係数KFを用いて「張り付き判定」が行われる。この結果、上記第1の空燃比制御装置と同様、「張り付き判定」における判定精度を高くすることができる。
更には、上記第1実施形態と同様、上記ローパスフィルタ処理におけるカットオフ周波数ωcutが、上記「変動周波数レンジ」の下限値近傍で推移するように、機関の運転状態に応じて変更され得る。従って、基本燃料噴射量補正係数KFの応答遅れに起因して「KF張り付き」と判定される時期が遅れることを抑制しつつ、基本燃料噴射量補正係数KFの変動を確実に抑制できる。
本発明は上記第1、第2実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第1、第2実施形態が、運転状態に応じて複数の気筒のうちの一部を「休止気筒」とする一部気筒休止機構を備えている機関に適用される場合、「休止気筒」の数が大きいほど、前記ローパスフィルタ処理におけるカットオフ周波数ωcutをより小さい値に設定することが好ましい。
具体的には、例えば、運転状態に応じて6気筒のうちの3気筒を「休止気筒」とする一部気筒休止機構を備えているV型6気筒内燃機関に適用される場合では、3気筒が「休止気筒」となっている場合、全ての気筒が稼動している場合に比して、前記ローパスフィルタ処理におけるカットオフ周波数ωcutをより小さい値に設定することが好ましい。これは、「休止気筒」の数が大きくなるほど、上流側空燃比センサ66(全ての気筒からの排ガスが集合する箇所よりも下流の空燃比センサ)の変動周波数が小さくくなり、これにより、「変動周波数レンジ」がより低周波数側に移動する傾向があることに基づく。
(第3実施形態)
次に、本発明の第3実施形態に係る空燃比制御装置について説明する。図18は、この第3実施形態の機能ブロック図である。図18に示すように、第3実施形態は、ローパスフィルタA16及び張り付き判定手段A17に代えて、ゲイン低減処理を行うPIコントローラA23及び張り付き判定手段A24を使用する点で、図4に機能ブロック図が示される第1実施形態と異なる。以下、係る相違点を中心として説明する。
PIコントローラA23の機能は、図19にフローチャートにより示したルーチンの実行により達成され、張り付き判定手段A24の機能は、図20にフローチャートにより示したルーチンの実行により達成される。
第3実施形態のCPU71は、上記第1実施形態のCPU71が実行する図6〜図9に示したルーチンのうち図6〜図8に示したルーチンをそのまま実行し、図19に示したルーチンを追加的に実行し、図9のルーチンに代えて図20に示したルーチンを実行する。以下、第3実施形態に特有の図19、図20に示したルーチンについて順に説明する。
図19は、張り付き判定用フィードバック補正値DFisを計算するためのルーチンである。図19において、ステップ1905では、後述する「ゲイン低減処理」の実行中であるか否かが判定される。ここで、後述するように、「ゲイン低減処理」中でない場合、値β=1となっている。
「ゲイン低減処理」中でない場合(β=1)、ステップ1910にて、張り付き判定用フィードバック補正値DFisの前回値DFisbが、(下限ガード値・α1)より小さいか、或いは、(上限ガード値・α1)よりも大きいか否かが判定される。ここで、値α1は「1」より小さい「1」に近い正の値であり、例えば、「0.8」である。即ち、ここでは、張り付き判定用フィードバック補正値DFisがガード値に近づいたか否かが判定される。
ステップ1910にて「Yes」と判定される場合、ステップ1915にて、値β=aに設定される。ここで値aは、「1」よりも小さい正の値である。この値β(<1)が「ゲイン低減処理」に使用される。ステップ1910にて「No」と判定される場合、値β=1に維持される。
一方、「ゲイン低減処理」中である場合(β=a<1)、ステップ1920にて、張り付き判定用フィードバック補正値DFisの前回値DFisbが(下限ガード値・α2)より大きいか、或いは、(上限ガード値・α2)よりも小さいか否かが判定される。ここで、値α2は、値α1よりも小さい正の値であり、例えば、「0.6」である。即ち、ここでは、ガード値に近づいていた張り付き判定用フィードバック補正値DFisがガード値から離れたか否かが判定される。
ステップ1920にて「Yes」と判定される場合、ステップ1925にて、値β=1に戻される。ステップ1920にて「No」と判定される場合、値β=a(<1)に維持される。
ステップ1930では、比例ゲインGpsが、図7のステップ735にて決定されている比例ゲインGpに上記値βを乗じた値に設定され、積分ゲインGisが、図7のステップ735にて決定されている積分ゲインGiに上記値βを乗じた値に設定される。
これにより、「ゲイン低減処理」が実行されていない間(即ち、張り付き判定用フィードバック補正値DFisがガード値に近づいていない間、即ち、値β=1のとき)、比例ゲインGps及び積分ゲインGisは、比例ゲインGp及び積分ゲインGiと等しい値にそれぞれ設定される。一方、「ゲイン低減処理」が実行されている間(即ち、張り付き判定用フィードバック補正値DFisがガード値に近づいている間、即ち、値β=a(<1)のとき)、比例ゲインGps及び積分ゲインGisは、比例ゲインGp及び積分ゲインGiよりも小さい値にそれぞれ設定される。
ステップ1935では、PIコントローラA14に対応する上記(5)式において、比例ゲインGp及び積分ゲインGiを、比例ゲインGps及び積分ゲインGisにそれぞれ置き換えて得られる下記(14)式に従って張り付き判定用上流側フィードバック補正値DFisが求められる。ここにおいて、DFcとしては、図7のステップ730にて決定されている値が使用され、SDFcとしては、図7のステップ750にて更新されている値が使用される。
DFis=(Gps・DFc+Gis・SDFc)・KFB ・・・(14)
これにより、「ゲイン低減処理」が実行されていない間(即ち、値β=1のとき)、張り付き判定用上流側フィードバック補正値DFisは、上流側フィードバック補正値DFiと等しい値に決定される。一方、「ゲイン低減処理」が実行されている間(即ち、値β=a(<1)のとき)、上流側フィードバック補正値DFiの算出に使用されるフィードバックゲインGp,Giよりも小さいフィードバックゲインGps,Gisを使用して張り付き判定用上流側フィードバック補正値DFisが算出されるから、張り付き判定用上流側フィードバック補正値DFisの変動幅が上流側フィードバック補正値DFiの変動幅よりも小さくなる。
ステップ1940では、図7のステップ745と同様に、張り付き判定用上流側フィードバック補正値DFisにガード処理が行われる。ステップ1945では、張り付き判定用フィードバック補正値DFisの前回値DFisbがステップ1940にて得られたガード処理された張り付き判定用上流側フィードバック補正値DFisと等しい値に設定される。この前回値DFisbが次回の本ルーチン実行時において上記ステップ1910、1920にて使用される。
図20は、図9に対応する、上流側フィードバック補正値DFiの張り付き判定を行うためのルーチンである。図20において、ステップ2005〜2025は図9のステップ940〜960にそれぞれ対応する。これにより、ガード処理された張り付き判定用上流側フィードバック補正値DFisを用いて「張り付き判定」が行われる。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第3実施形態によれば、張り付き判定用上流側フィードバック補正値DFisがガード値に近づくと、張り付き判定用上流側フィードバック補正値DFisの変動幅が上流側フィードバック補正値DFiの変動幅よりも小さくなる。即ち、このように変動が抑制された張り付き判定用上流側フィードバック補正値DFisを用いて「張り付き判定」を行っても、上記第1の空燃比制御装置と同様、「張り付き判定」における判定精度を高くすることができる。
本発明は上記第3実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第3実施形態においては、ガード処理された張り付き判定用上流側フィードバック補正値DFisを用いて「張り付き判定」が行われているが、ガード処理される前の張り付き判定用上流側フィードバック補正値DFisを用いて「張り付き判定」が行われてもよい。
また、上記各実施形態においては、ガード処理におけるガード値(具体的には、上限ガード値、及び下限ガード値)が一定であるが、ガード処理におけるガード値が機関の運転状態に応じて変更されてもよい。
10…内燃機関、25…燃焼室、39…インジェクタ、52…エキゾーストパイプ(排気管)、53…三元触媒(第1触媒)、65…水温センサ、66…上流側空燃比センサ、67…下流側空燃比センサ、70…電気制御装置、71…CPU