(57)【要約】【課題】  触媒上流側空燃比センサの出力値をハイパスフィルタ処理した後の値に基づく空燃比制御において、同空燃比制御による空燃比の急変に対応する迅速な補償を阻害することなく基本燃料噴射量の誤差を迅速に補償すること。【解決手段】  筒内吸入空気量が一定であるとの仮定の下、指令燃料噴射量Fi(k−ＭＢ)と検出空燃比abyfs(k)の積は機関の実際の空燃比を目標空燃比abyfr(k)とするための目標基本燃料噴射量Fbasetと目標空燃比abyfr(k)の積に等しくなる関係から、Fbaset＝Fi(k−ＭＢ)・abyfs(k)／abyfr(k)を求め、基本燃料噴射量補正係数KF＝Fbaset／Fbaseb(k)より補正前基本燃料噴射量Fbaseb(k)を補正していく。このKF算出にあたり行うローパスフィルタ処理の時定数を、パージの開始・停止等に基づいて空燃比制御系に大きな外乱が発生した時点以降の所定期間だけ小さくする。【選択図】  図５
2007077869.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒と、
前記触媒よりも上流の前記排気通路に配設された上流側空燃比センサと、
指示に応じて燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用され、
前記内燃機関の運転状態に基づいて目標空燃比を得るための燃料の量である基本燃料噴射量を取得する基本燃料噴射量取得手段と、
前記上流側空燃比センサの出力値に基づく値であってハイパスフィルタ処理された値に基づいてフィードバック補正量を算出するフィードバック補正量算出手段と、
前記基本燃料噴射量の燃料の噴射指示を受けたときに前記燃料噴射手段が実際に噴射する燃料の量が前記内燃機関に供給される混合気の実際の空燃比を前記目標空燃比とするために必要な量となるように、同基本燃料噴射量を補正するための値であってローパスフィルタ処理された値で同基本燃料噴射量を補正する基本燃料噴射量補正手段と、
前記補正された基本燃料噴射量を前記フィードバック補正量で補正することで指令燃料噴射量を算出する指令燃料噴射量算出手段と、
前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで前記内燃機関に供給される混合気の空燃比をフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、
前記内燃機関に供給される混合気の実際の空燃比の前記目標空燃比からの偏移をもたらす同内燃機関の運転状態の変化があった時点以降における所定期間に亘って前記ローパスフィルタ処理の時定数を小さくするように構成された内燃機関の空燃比制御装置。
【請求項２】
請求項１に記載の内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、前記基本燃料噴射量を補正するための値として、
前記上流側空燃比センサの出力値と、前記目標空燃比と、前記指令燃料噴射量と、前記基本燃料噴射量とに基づいて算出されるパラメータ値を用いるように構成された内燃機関の空燃比制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置であって、
前記内燃機関は、
燃料タンク中で蒸発した燃料に基づく燃料ガスを前記内燃機関の吸気通路に導入する燃料ガス導入路と、
前記吸気通路に導入される燃料ガスの導入状態を前記内燃機関の運転状態に基づいて制御するパージ制御弁とを更に備え、
前記基本燃料噴射量補正手段は、前記内燃機関の運転状態の変化があった時点として、
前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点を用いるように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項３に記載の内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、
前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点として、
前記パージ制御弁の制御により前記燃料ガスの導入が開始された時点、及び／又は停止された時点を用いるように構成された内燃機関の空燃比制御装置。
【請求項５】
請求項３又は請求項４に記載の内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、
前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点として、
前記燃料ガスの導入が継続している期間において前記吸気通路における空気流量が変化した時点を用いるように構成された内燃機関の空燃比制御装置。
【請求項６】
請求項３乃至請求項５の何れか一項に記載の内燃機関の空燃比制御装置であって、
前記燃料ガスが前記パージ制御弁から前記内燃機関の燃焼室に到達するまでの時間である輸送遅れ時間を取得する輸送遅れ時間取得手段を更に備え、
前記基本燃料噴射量補正手段は、
前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点から前記輸送遅れ時間が経過した時点から前記所定期間を開始するように構成された内燃機関の空燃比制御装置。
【請求項７】
請求項１乃至請求項６の何れか一項に記載の内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、前記ローパスフィルタ処理を行うローパスフィルタとしてディジタルフィルタを用いるとともに、同ローパスフィルタ処理に使用される応答性に関する値を変更することで前記ローパスフィルタ処理の時定数を小さくするように構成された内燃機関の空燃比制御装置。
【請求項８】
請求項１乃至請求項６の何れか一項に記載の内燃機関の空燃比制御装置において、
前記基本燃料噴射量補正手段は、前記ローパスフィルタ処理を行うローパスフィルタとしてディジタルフィルタを用いるとともに、前記基本燃料噴射量を補正するための値に対して前記ローパスフィルタ処理を行う周期を短くすることで前記ローパスフィルタ処理の時定数を小さくするように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒（三元触媒）の少なくとも上流側の排気通路に空燃比センサを備え、同空燃比センサの出力値に基づいて機関の空燃比をフィードバック制御する内燃機関の空燃比制御装置に関する。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置が広く知られている。係る装置として、内燃機関（以下、単に「機関」と称呼することもある。）の排気通路に配設された触媒よりも上流側及び下流側の排気通路にそれぞれ上流側空燃比センサ、及び下流側空燃比センサを介装しているものがある。この場合、係る装置は、下流側空燃比センサの出力値と所定の下流側目標値との差に基づいて（例えば、差を比例・積分・微分処理（ＰＩＤ処理）して）サブフィードバック補正量を算出するとともに、上流側空燃比センサの出力値と所定の上流側目標値との差に基づいて（例えば、差を比例・積分処理（ＰＩ処理）して）メインフィードバック補正量を算出する。
【０００３】
そして、係る装置は、機関の運転状態（例えば、アクセル開度、運転速度等）に基づいて取得される、目標空燃比を得るための燃料の量（基本燃料噴射量）を、上記メインフィードバック補正量と上記サブフィードバック補正量とに基づいて補正して得られる指令燃料噴射量を計算するとともに、同指令燃料噴射量の燃料の噴射指示をインジェクタに対して行うことで機関に供給される混合気の空燃比（以下、単に「空燃比」と称呼することもある。）をフィードバック制御するようになっている。
【０００４】
ところで、触媒（三元触媒）は、通常、流入する排ガスの空燃比がリーン空燃比のとき同排ガス中の窒素酸化物（ＮＯｘ）を還元して同窒素酸化物から奪った酸素を内部に貯蔵するとともに同流入する排ガスの空燃比がリッチ空燃比のとき同貯蔵している酸素により同排ガス中のＨＣ，ＣＯ等の未燃成分を酸化する所謂酸素吸蔵機能を有している。
【０００５】
従って、触媒上流の排ガスの空燃比の変動における比較的周波数の高い高周波成分、及び比較的周波数が低くて振幅（理論空燃比からの偏移量）が比較的小さい低周波成分は触媒が有する酸素吸蔵機能により完全に吸収され得ることにより触媒下流の排ガスの空燃比の変動として現れることはない。
【０００６】
一方、触媒上流の排ガスの空燃比の変動における比較的周波数が低くて振幅が比較的大きい低周波数成分は前記触媒の酸素吸蔵機能では完全には吸収されず、少し遅れて触媒下流の排ガスの空燃比の変動として現れる。この結果、上流側空燃比センサの出力値と下流側空燃比センサの出力値とが理論空燃比に対して互いに逆方向に偏移した空燃比を示す値となる場合が発生する。この場合、メインフィードバック制御（メインフィードバック補正量）に基づく機関の空燃比制御とサブフィードバック制御（サブフィードバック補正量）に基づく機関の空燃比制御とが互いに干渉することになるので良好な機関の空燃比制御を行うことができない。
【０００７】
以上のことから、上流側空燃比センサの出力値の変動における各周波数成分のうち触媒下流の空燃比の変動として現れ得る程度の周波数成分（即ち、所定の周波数以下の低周波数成分）をカットした後の同上流側空燃比センサの出力値をメインフィードバック制御に使用すれば、前記機関の空燃比制御の干渉が発生することを回避することができる。
【０００８】
このような知見に基づき、下記特許文献１に記載のエンジン制御装置（空燃比制御装置）は、上流側空燃比センサの出力値をハイパスフィルタ処理した後の値と、下流側空燃比センサの出力値（この例では、同出力値をローパスフィルタ処理した後の値）とに基づいて空燃比制御を実行するようになっている。これによれば、上述した機関の空燃比制御の干渉が発生することを回避できるとともに、触媒下流の空燃比の変動として現れ得る程度の所定の周波数以下の空燃比の変動に対する空燃比制御（定常的な空燃比制御）はサブフィードバック制御により確実に行われ得る。
【特許文献１】特開平５−１８７２９７号公報
【０００９】
また、上流側空燃比センサの出力値の変動における前記所定の周波数以上の高周波数成分はハイパスフィルタを通過するからハイパスフィルタ処理した後の値として現れる。従って、内燃機関が過渡運転状態にあって排ガスの空燃比が上記所定の周波数以上の高周波数で大きく変動するような場合、同所定の周波数以上の空燃比の変動に対する空燃比制御（即ち、過渡運転状態における空燃比の急変に対する補償）はメインフィードバック制御により迅速、且つ確実に行われ得る。
【００１０】
ところで、一般に、基本燃料噴射量を取得するために使用されるエアフローメータにより計測される吸気通路における空気流量と実際の空気流量との差、燃料を噴射するインジェクタに対する指令燃料噴射量と実際の燃料噴射量との差（以下、これらを「基本燃料噴射量の誤差」と総称する。）が不可避的に発生する。係る基本燃料噴射量の誤差を補償しつつ空燃比を目標空燃比に収束させる（具体的には、空燃比センサの出力値と前記所定の目標値との定常偏差を「０」にする）ためには、上記メインフィードバック制御及び前記サブフィードバック制御の少なくとも一方において、空燃比センサの出力値と前記所定の目標値との偏差の時間積分値に基づいてフィードバック補正量を算出する処理（即ち、積分処理（Ｉ処理））が実行される必要がある。
【００１１】
ところが、ハイパスフィルタ処理は微分処理（Ｄ処理）と同等の機能を達成する処理である。従って、上記文献に記載の装置においては、メインフィードバック制御が上記積分処理を含んだ処理（例えば、比例・積分処理（ＰＩ処理））を実行するものであっても、同メインフィードバック制御において実質的に上記積分処理が実行され得ない。従って、この場合、サブフィードバック制御において上記積分処理が実行される必要がある。
【００１２】
しかしながら、上述した触媒の酸素吸蔵機能の影響により機関に供給される混合気の空燃比の変化は少し遅れて触媒下流の排ガスの空燃比の変化として現れる。よって、上記基本燃料噴射量の誤差が急に増大する場合においては、サブフィードバック制御のみでは同基本燃料噴射量の誤差を迅速に補償することができず、その結果、エミッションの排出量が増大する場合が発生するという問題がある。
【００１３】
このため、メインフィードバック制御、及びサブフィードバック制御とは別に、基本燃料噴射量の誤差を迅速に補償するために、基本燃料噴射量を補正する手段を設ける必要がある。この場合、安定した基本燃料噴射量の補正（基本燃料噴射量補正）を実現するため、基本燃料噴射量補正に使用される値（以下、「基本燃料噴射量補正値」と称呼する。）にローパスフィルタ処理を施す必要がある。このローパスフィルタ処理の時定数は、基本燃料噴射量の誤差の補償における迅速性を阻害しない範囲で可能な限り大きいほうが好ましい。
【００１４】
一方、ローパスフィルタ処理の時定数を常に大きい値に設定すると、実際の空燃比の目標空燃比からの急変（以下、単に「空燃比の急変」と称呼することもある。）をもたらすような機関の運転状態の変化があった場合（即ち、空燃比制御系に大きな外乱が発生した場合）、ローパスフィルタ処理の応答遅れが大きいことから、上記基本燃料噴射量補正値が、一時的に適切な値と大きく異なる場合が発生し得る。この場合、上述したメインフィードバック制御による空燃比の急変に対応する迅速な補償が逆に阻害され、この結果、一時的にエミッションの排出量が増大する場合が発生するという問題がある。
【発明の開示】
【００１５】
従って、本発明の目的は、基本燃料噴射量の誤差を迅速に補償しつつ、空燃比制御系に大きな外乱が発生した場合であっても、エミッションの排出量の増大を抑制することができる内燃機関の空燃比制御装置を提供することにある。
【００１６】
本発明に係る空燃比制御装置は、内燃機関の排気通路に配設された触媒と、前記触媒よりも上流の前記排気通路に配設された上流側空燃比センサと、指示に応じて燃料を噴射する燃料噴射手段と、を備えた内燃機関に適用される。
【００１７】
本発明に係る空燃比制御装置は、前記内燃機関の運転状態に基づいて目標空燃比を得るための燃料の量である基本燃料噴射量を取得する基本燃料噴射量取得手段と、前記上流側空燃比センサの出力値に基づく値であってハイパスフィルタ処理された値に基づいてフィードバック補正量（以下、「上流側フィードバック補正量」と称呼する。）を算出するフィードバック補正量算出手段と、前記基本燃料噴射量の燃料の噴射指示を受けたときに前記燃料噴射手段が実際に噴射する燃料の量が前記内燃機関に供給される混合気の実際の空燃比を前記目標空燃比とするために必要な量となるように、同基本燃料噴射量を補正するための値であってローパスフィルタ処理された値（即ち、上記基本燃料噴射量補正値）で同基本燃料噴射量を補正する基本燃料噴射量補正手段と、前記補正された基本燃料噴射量を前記フィードバック補正量で補正することで指令燃料噴射量を算出する指令燃料噴射量算出手段と、前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで前記内燃機関に供給される混合気の空燃比をフィードバック制御する空燃比制御手段とを備えている。
【００１８】
これによれば、基本燃料噴射量補正手段により、基本燃料噴射量取得手段により取得された基本燃料噴射量が上記基本燃料噴射量補正値で補正される。換言すれば、上記上流側フィードバック制御とは別に基本燃料噴射量の誤差を迅速に補償することができる。上述したように、上記基本燃料噴射量補正値に施されているローパスフィルタ処理の時定数は、係る基本燃料噴射量の誤差の補償における迅速性を阻害しない範囲内で可能な限り大きい値に設定されることが好適である。
【００１９】
本発明に係る内燃機関の空燃比制御装置の特徴は、前記基本燃料噴射量補正手段が、前記内燃機関に供給される混合気の実際の空燃比の前記目標空燃比からの偏移をもたらす同内燃機関の運転状態の変化があった時点以降における所定期間に亘って前記ローパスフィルタ処理の時定数を小さくするように構成されたことにある。
【００２０】
これによれば、空燃比制御系に大きな外乱が発生した時点以降の所定期間だけローパスフィルタ処理の時定数が小さくされてローパスフィルタ処理の応答遅れが小さくなる。従って、所定期間を空燃比に大きな乱れが発生し得る期間と一致するように設定することで、上述した「基本燃料噴射量補正値が一時的に適切な値と大きく異なる場合」が発生し難くなる。この結果、上記上流側フィードバック制御による空燃比の急変に対する迅速な補償が阻害され難くなって、一時的なエミッションの排出量の増大を抑制することができる。
【００２１】
また、所定期間が経過した後（即ち、空燃比が目標空燃比に収束した後）はローパスフィルタ処理の時定数が再び上記大きい値に戻され得る。これにより、上記基本燃料噴射量補正値による安定した基本燃料噴射量の補正が再び開始される。
【００２２】
ここで、ローパスフィルタは、アナログフィルタであってもディジタルフィルタであってもよい。ローパスフィルタとしてディジタルフィルタが用いられる場合、前記基本燃料噴射量補正手段は、ローパスフィルタ処理に使用される応答性に関する値（例えば、後述する鈍し制御定数）を変更することで前記ローパスフィルタ処理の時定数を小さくするように構成されても、前記基本燃料噴射量補正値に対して前記ローパスフィルタ処理を行う周期（以下、「演算周期」と称呼する。）を短くすることで前記ローパスフィルタ処理の時定数を小さくするように構成されてもよい。これらは、ディジタルフィルタの時定数は、後述する鈍し制御定数と演算周期の積に比例することに基づく。
【００２３】
なお、上記本発明に係る空燃比制御装置においては、触媒よりも下流の排気通路に配設された下流側空燃比センサの出力値に基づく値に基づいて下流側フィードバック補正量を算出する下流側フィードバック補正量算出手段を更に備え、前記指令燃料噴射量算出手段は、前記補正された基本燃料噴射量を前記上流側フィードバック補正量と前記下流側フィードバック補正量とで補正することで前記指令燃料噴射量を算出するように構成されてもよい。この場合、前記下流側空燃比センサの出力値に基づく値は、ローパスフィルタ処理された値であってもよい。
【００２４】
また、上記本発明の内燃機関の空燃比制御装置においては、前記基本燃料噴射量補正手段が、前記基本燃料噴射量補正値として、前記上流側空燃比センサの出力値と、前記目標空燃比と、前記指令燃料噴射量と、前記基本燃料噴射量とに基づいて算出されるパラメータ値を用いるように構成されることが好適である。
【００２５】
一般に、筒内（燃焼室内）に吸入される筒内吸入空気量が一定であるという仮定のもと、燃料噴射量と、空燃比（従って、排ガスの空燃比）の積は一定となる。従って、上記指令燃料噴射量と、上流側空燃比センサの出力値に相当する空燃比（以下、「検出空燃比」と称呼することもある。）の積は、機関に供給される混合気の実際の空燃比を目標空燃比とするために必要な基本燃料噴射量（燃料噴射手段への噴射指令値。以下、「目標基本燃料噴射量」と称呼することもある。）と、目標空燃比の積に等しい、という関係が成立する。
【００２６】
従って、既知である指令燃料噴射量、検出空燃比、及び目標空燃比の各値と、上記関係とに基づいて上記目標基本燃料噴射量を算出することができる。上記目標基本燃料噴射量が算出できれば、この目標基本燃料噴射量と、既知である基本燃料噴射量（即ち、基本燃料噴射量取得手段により取得された値そのもの）との比較結果に基づいて基本燃料噴射量補正用のパラメータ値（例えば、補正係数）を算出することができる。
【００２７】
このようにして算出され得るパラメータ値は、基本燃料噴射量の燃料の噴射指示を受けたときに燃料噴射手段が実際に噴射する燃料の量が実際の空燃比を目標空燃比とするために必要な量となるように基本燃料噴射量を補正するための値（即ち、基本燃料噴射量を上記目標基本燃料噴射量に一致させるための値）となる。
【００２８】
従って、上記構成のように、係るパラメータ値を用いて基本燃料噴射量を補正するように構成すれば、簡易な計算で、且つ精度良く、基本燃料噴射量を目標基本燃料噴射量に一致するように補正することができる。
【００２９】
ところで、一般に、内燃機関においては、燃料タンク中で液体燃料が蒸発して燃料ガス（以下、「エバポガス」と称呼することもある。）が発生するので、エバポガスが大気中に放出されることを防止するために、エバポガスの機関の吸気通路への導入（以下、「パージ」と称呼することもある。）を行うための蒸発燃料処理機構が設けられている。
【００３０】
この蒸発燃料処理機構は、パージを制御するパージ制御弁を備えており、機関の運転状態に基づいてパージ制御弁を制御することで、吸気通路に導入されるエバポガスの導入状態（例えば、パージ率）を制御するようになっている。ここで、パージ率＝エバポガス流量／（エバポガス流量＋エアフローメータ検出空気流量）：単位は質量％、である。このエバポガスの導入状態の急変は、空燃比制御系における大きな外乱となり得る。
【００３１】
そこで、内燃機関が、燃料タンク中で蒸発した燃料に基づく燃料ガスを前記内燃機関の吸気通路に導入する燃料ガス導入路と、前記吸気通路に導入される燃料ガスの導入状態を前記内燃機関の運転状態に基づいて制御するパージ制御弁とを更に備えている場合、前記基本燃料噴射量補正手段は、前記内燃機関の運転状態の変化があった時点として、前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点を用いるように構成されることが好適である。
【００３２】
これによれば、空燃比制御系における大きな外乱となり得るエバポガスの導入状態の急変（例えば、パージ率の急変）が発生した時点以降の所定期間だけローパスフィルタの時定数が小さくされる。従って、エバポガスの導入状態の急変に基づく一時的なエミッションの排出量の増大を確実に抑制することができる。
【００３３】
「燃料ガスの導入状態がパージ制御弁の制御により変化した時点」としては、例えば、前記パージ制御弁の制御により前記燃料ガスの導入が開始された時点（パージ制御開始時点）、及び／又は停止された時点（パージ制御終了時点）が挙げられる。
【００３４】
更には、燃料ガスの導入状態（例えば、パージ率）は、吸気通路における空気流量に応じて変化するように制御される場合が多い。この場合、前記燃料ガスの導入が継続している期間において前記吸気通路における空気流量が変化した時点も、「燃料ガスの導入状態がパージ制御弁の制御により変化した時点」となり得る。
【００３５】
なお、内燃機関が、燃料タンク中で蒸発した燃料に基づく燃料ガスを前記内燃機関の吸気通路に導入する燃料ガス導入路と、前記吸気通路に導入される燃料ガスの導入状態を前記内燃機関の運転状態に基づいて制御するパージ制御弁とを更に備えている場合、前記基本燃料噴射量取得手段は、前記燃料ガス中の燃料の量を考慮して基本燃料噴射量を取得するように構成してもよい。
【００３６】
また、上記本発明に係る空燃比制御装置においては、前記燃料ガスが前記パージ制御弁から前記内燃機関の燃焼室に到達するまでの時間である輸送遅れ時間を取得する輸送遅れ時間取得手段を更に備え、前記基本燃料噴射量補正手段は、前記吸気通路に導入される燃料ガスの導入状態が前記パージ制御弁の制御により変化した時点から前記輸送遅れ時間が経過した時点から前記所定期間を開始するように構成されることが好適である。
【００３７】
パージ時、エバポガスは、パージ制御弁を介して吸気通路へ流入し、吸気通路を移動していくことで機関の筒内に到達する。即ち、エバポガスがパージ制御弁から機関の筒内に到達するためには所定の時間（即ち、上記輸送遅れ時間）を要する。
【００３８】
従って、燃料ガスの導入状態の変化は、上記輸送遅れ時間経過後に空燃比制御系における外乱として現れる。換言すれば、ローパスフィルタの時定数が小さくされる前記所定期間を、燃料ガスの導入状態が変化した時点から輸送遅れ時間が経過した時点から開始すればよい。
【００３９】
上記構成は係る知見に基づくものである。これによれば、燃料ガスの導入状態が変化した時点から直ちに所定期間が開始する場合に比して、所定期間を短くすることができる。換言すれば、ローパスフィルタの時定数が上述した可能な限り大きい値に維持される期間を長くすることができ、この結果、安定した基本燃料噴射量の補正が実現される期間を長くすることができる。
【００４０】
この場合、前記輸送遅れ時間取得手段は、機関の運転状態に応じて前記輸送遅れ時間を変更するように構成されることが好適である。前記輸送遅れ時間は、例えば、筒内吸入空気量等、機関の運転状態に応じて変化する。従って、上記構成によれば、内燃機関の運転状態にかかわらず前記輸送遅れ時間を正確に取得することができるから、より適切に所定期間の開始時期を設定することができる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明による内燃機関の空燃比制御装置（以降の説明では単に「空燃比制御装置」と略称することがある。）の各実施形態（本願の出願時点において最良と考えられる実施形態）について図面を参照しつつ説明する。
【００４２】
（第１実施形態の内燃機関の概要）
図１は、第１実施形態による空燃比制御装置を火花点火式多気筒（４気筒）内燃機関１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排気ガスを外部に放出するための排気系統５０とを含んでいる。
【００４３】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３、及びクランク軸２４を含んでいる。このシリンダブロック部２０においては、ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより当該クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４４】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに当該インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００４５】
吸気系統４０は、吸気ポート３１に連通し当該吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、吸気管４１内にあって吸気通路の開口断面積を可変とするスロットル弁４３、スロットル弁駆動手段を構成するＤＣモータからなるスロットル弁アクチュエータ４３ａ、スワールコントロールバルブ（以下、「ＳＣＶ」と称呼する。）４４、ＤＣモータからなるＳＣＶアクチュエータ４４ａ、液体燃料を貯蔵する燃料タンク４５、所定量の燃料ガスを吸蔵可能なキャニスタ４６、燃料タンク４５内で蒸発した燃料ガスをキャニスタ４６へ導入するためのベーパー捕集管４７、キャニスタ４６から脱離した燃料ガスを吸気管４１に導入するためのパージ流路４８、及びパージ流路４８（燃料ガス導入路）に介装された常閉開閉弁であるパージ制御弁４９を備えている。ここで、吸気ポート３１、及び吸気管４１は、吸気通路を構成している。
【００４６】
キャニスタ４６は、周知のチャコールキャニスタであって、ベーパー捕集管４７に接続されたタンクポート４６ａと、パージ流路４８に接続されたパージポート４６ｂと、大気ポート４６ｃとが形成された筐体内に、燃料ガスを吸着するための吸着剤４６ｄを収納することにより構成されている。
【００４７】
機関停止中における日光等による加熱によって燃料タンク４５中で発生した燃料ガスは、当該燃料タンク４５，ベーパー捕集管４７，キャニスタ４６，及びパージ流路４８のパージ制御弁４９よりもエバポガスの流れにおける上流側（キャニスタ４６側）によって形成される閉空間内に充満する。そして、この閉空間内に充満した燃料ガスは、吸着剤４６ｄに吸着されることでキャニスタ４６内に吸蔵されるようになっている。
【００４８】
なお、大気ポート４６ｃは、パージ制御弁４９が開放された場合に、吸気管４１にて生じる負圧により、パージ流路４８にて吸気管４１に向かうガスの流れが生じるように、外部の空気をキャニスタ４６内に導入するための大気連通孔である。
【００４９】
加えて、キャニスタ４６は、タンクポート４６ａからパージポート４６ｂへの直接のガス流路を有している。そして、このガス流路により、内燃機関１０の運転中であってパージ制御弁４９が開放された場合に、燃料タンク４５にて発生した燃料ガスがタンクポート４６ａから当該キャニスタ４６の内部に流入した後に吸着剤４６ｄに吸着されることなくそのままパージポート４６ｂから排出され得るようになっている。
【００５０】
即ち、このシステムにおいては、パージ制御弁４９が開放された場合にタンクベーパー流路とキャニスタパージ流路とが同時に形成されるようになっている。ここで、「タンクベーパー流路」とは、燃料タンク４５からベーパー捕集管４７を経てタンクポート４６ａに至るガス流路、当該タンクポート４６ａから吸着剤４６ｄの内部を通らずにキャニスタ４６の筐体内部を通って直接パージポート４６ｂに至るガス流路、及び当該パージポート４６ｂからパージ流路４８を経て吸気管４１に至るガス流路を接続した、燃料タンク４５から吸気管４１に至るガス流路をいう。また、「キャニスタパージ流路」とは、大気ポート４６ｃから吸着剤４６ｄの内部を通ってパージポート４６ｂに至り、当該パージポート４６ｂからパージ流路４８を経て吸気管４１に至るガス流路をいう。
【００５１】
パージ制御弁４９は、周知のＶＳＶ（バキュームスイッチングバルブ）により構成されている（本実施形態の以下の説明では、パージ制御弁４９を「ＶＳＶ４９」と略称する。）。ＶＳＶ４９は、後述するパージ実行条件が成立したとき開放されるようになっている。このＶＳＶ４９が開放された場合、吸気管４１にて生じる負圧により、前記タンクベーパー流路を通る第１のガス流（タンクベーパー）と、前記キャニスタパージ流路を通る第２のガス流（キャニスタパージガス）とが混合したエバポガスが、パージ制御弁４９を通って吸気管４１に吸入され得る構成となっている。
【００５２】
また、上述したパージ率（＝（エバポガス流量／（エバポガス流量＋エアフローメータ検出空気流量））：単位は質量％）の目標値である目標パージ率ＰＧＲは、後述するエアフローメータ６１により計測される吸入空気量（流量）Gaと、吸入空気流量Gaと目標パージ率ＰＧＲとの関係を規定するテーブルMapＰＧＲ(Ga)とに基づいて、吸入空気流量Gaが大きくなるほど大きくなるように決定されるようになっている。そして、後述する電気制御装置７０の指示によりＶＳＶ４９がデューティ制御されることにより、実際のパージ率が目標パージ率ＰＧＲに一致するように制御されるようになっている。
【００５３】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１（実際には、各排気ポート３４に連通した各々のエキゾーストマニホールド５１が集合した集合部）に接続されたエキゾーストパイプ（排気管）５２、エキゾーストパイプ５２に配設（介装）された上流側触媒装置５３（上流側触媒コンバータ、又はスタート・キャタリティック・コンバータとも云うが、以下「第１触媒５３」と称呼する。）、及びこの第１触媒５３の下流のエキゾーストパイプ５２に配設（介装）された下流側触媒装置５４（車両のフロア下方に配設されるため、アンダ・フロア・キャタリティック・コンバータとも云うが、以下「第２触媒５４」と称呼する。）を備えている。排気ポート３４、エキゾーストマニホールド５１、及びエキゾーストパイプ５２は、排気通路を構成している。
【００５４】
一方、このシステムは、エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、第１触媒５３の上流の排気通路（本例では、前記各々のエキゾーストマニホールド５１が集合した集合部）に配設された空燃比センサ６６（以下、「上流側空燃比センサ６６」と称呼する。）、第１触媒５３の下流であって第２触媒５４の上流の排気通路に配設された空燃比センサ６７（以下、「下流側空燃比センサ６７」と称呼する。）、アクセル開度センサ６８、及び燃料タンク４５内の燃料温度を検知するための温度センサである燃料温センサ６９を備えている。
【００５５】
エアフローメータ６１は、周知の熱線式エアフローメータにより構成されており、吸気管４１内を流れる吸入空気の単位時間あたりの質量流量に応じた電圧Vgを出力するようになっている。かかるエアフローメータ６１の出力Vgと、計測された吸入空気量（流量）Gaとの関係は、図２に示したとおりである。スロットルポジションセンサ６２は、スロットル弁４３の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ６３は、インテークカムシャフトが９０°回転する毎に（即ち、クランク軸２４が１８０°回転する毎に）一つのパルスを有する信号（Ｇ２信号）を発生するようになっている。クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに当該クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００５６】
上流側空燃比センサ６６は、限界電流式の酸素濃度センサであり、図３に示したように、空燃比Ａ／Ｆに応じた電流を出力し、この電流に応じた電圧である出力値Vabyfsを出力するようになっていて、特に、空燃比が理論空燃比であるときには出力値Vabyfsは上流側目標値Vstoichになる。図３から明らかなように、上流側空燃比センサ６６によれば、広範囲にわたる空燃比Ａ／Ｆを精度良く検出することができる。
【００５７】
下流側空燃比センサ６７は、起電力式（濃淡電池式）の酸素濃度センサであり、図４に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ６７は、空燃比が理論空燃比よりもリーンのときは略０．１（Ｖ）、空燃比が理論空燃比よりもリッチのときは略０．９（Ｖ）、及び空燃比が理論空燃比のときは０．５（Ｖ）の電圧を出力するようになっている。アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、当該アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００５８】
更にこのシステムは、電気制御装置７０を備えている。電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）、及びパラメータ等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに当該格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びにＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。インターフェース７５は、前記センサ６１〜６９と接続され、ＣＰＵ７１にセンサ６１〜６９からの信号を供給するとともに、同ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、スロットル弁アクチュエータ４３ａ、ＳＣＶアクチュエータ４４ａ、及びＶＳＶ４９に駆動信号を送出するようになっている。
【００５９】
（空燃比制御の概要）
次に、上述のように構成された空燃比制御装置が行う機関の空燃比制御の概要について説明する。
【００６０】
第１触媒５３（第２触媒５４も同様である。）は、周知の通り、金属製の筐体内に所謂三元触媒を配置することで構成されており、この第１触媒５３に流入するガスの空燃比が略理論空燃比であるときに、前記三元触媒によってＨＣ,ＣＯを酸化するとともにＮＯｘを還元し、これらの有害成分を高い効率で浄化する。また、第１触媒５３に備えられる三元触媒は、酸素を吸蔵・放出する機能（酸素吸蔵機能、酸素吸蔵・放出機能）を有し、この酸素吸蔵・放出機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ,ＣＯ、及びＮＯｘを浄化することができる。即ち、燃焼室に供給される混合気の空燃比（以下、「空燃比」と云うこともある。）の空燃比がリーンとなって第１触媒５３に流入するガスにＮＯｘが多量に含まれると、第１触媒５３に備えられた前記三元触媒はＮＯｘから酸素分子を奪って同酸素分子を吸蔵するとともに同ＮＯｘを還元し、これによりＮＯｘを浄化する。また、機関の空燃比がリッチになって第１触媒５３に流入するガスにＨＣ,ＣＯが多量に含まれると、前記三元触媒は吸蔵している酸素分子を放出してＨＣ,ＣＯに与えることでＨＣ,ＣＯを酸化し、これによりＨＣ,ＣＯを浄化する。
【００６１】
従って、第１触媒５３が連続的に流入する多量のＨＣ,ＣＯを効率的に浄化するためには、同第１触媒５３に備えられた三元触媒が酸素を多量に貯蔵していなければならず、逆に連続的に流入する多量のＮＯｘを効率的に浄化するためには、同三元触媒が酸素を十分に貯蔵し得る状態になければならないことになる。以上のことから、第１触媒５３の浄化能力は、同三元触媒が貯蔵し得る最大の酸素量（最大酸素吸蔵量）に依存する。
【００６２】
一方、第１触媒５３に備えられる三元触媒は、燃料中に含まれる鉛や硫黄等による被毒、或いは触媒に加わる熱により劣化し、これに伴い最大酸素吸蔵量が次第に低下してくる。この結果、触媒ウィンドウの範囲も狭くなってくる。このように最大酸素吸蔵量が低下して触媒ウィンドウが狭くなった場合であっても、エミッションの排出量を継続的に抑制するには、第１触媒５３から排出されるガスの空燃比（従って、第１触媒５３に流入するガスの平均空燃比）が、理論空燃比に極めて近い状態となるように精度よく制御する必要がある。
【００６３】
そこで、本実施形態の空燃比制御装置は、上流側空燃比センサ６６の出力値を用いた上流側フィードバック（以下メインフィードバックと称する）及び下流側空燃比センサ６７の出力値を用いた下流側フィードバック（以下サブフィードバックと称する）という２つの空燃比フィードバック制御を行っている。しかも、これらのフィードバック制御だけでは迅速かつ充分に補償することが困難な基本燃料噴射量の誤差は、基本燃料噴射量を補正することで補償される。
【００６４】
より具体的に述べると、この空燃比制御装置（以下、「本装置」と云うこともある。）は、機能ブロック図である図５及び図８に示したように、Ａ１〜Ａ１９の各機能ブロックを含んで構成されている。以下、各図を参照しながら各機能ブロックについて説明していく。
【００６５】
<基本燃料噴射量の算出>
先ず、筒内吸入空気量算出手段Ａ１は、エアフローメータ６１が計測している吸入空気流量Gaと、クランクポジションセンサ６４の出力に基づいて得られる運転速度NEと、ＲＯＭ７２が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、今回の吸気行程に対する値であることを示している（以下、他の物理量についても同様。）。
【００６６】
上流側目標空燃比設定手段Ａ２は、内燃機関１０の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて所定の上流側目標値に相当する上流側目標空燃比abyfr(k)を決定する。この上流側目標空燃比abyfr(k)は、例えば、内燃機関１０の暖機終了後においては、特殊な場合を除き理論空燃比に設定されている。また、上流側目標空燃比abyfrは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【００６７】
非パージ時基本燃料噴射量算出手段Ａ３は、筒内吸入空気量算出手段Ａ１により求められた筒内吸入空気量Mc(k)を上流側目標空燃比設定手段Ａ２により設定された上流側目標空燃比abyfr(k)で除することにより、非パージ時における空燃比を同上流側目標空燃比abyfr(k)とするための今回の非パージ時基本燃料噴射量Fbaseb0(k)を求める。
【００６８】
補正前基本燃料噴射量算出手段Ａ４は、非パージ時基本燃料噴射量算出手段Ａ３により求められた今回の非パージ時基本燃料噴射量Fbaseb0(k)に、後述するパージ補正係数設定手段Ａ１６により求められているパージ補正係数KPのうち、パージ補正係数遅延手段Ａ１７により読み出された現時点からＭＡストローク（ＭＡ回の吸気行程）前のパージ補正係数KP(k−ＭＡ)を乗じることで、エバポガス中の燃料の量を考慮した今回の補正前基本燃料噴射量Fbaseb(k)を求める。パージ補正係数設定手段Ａ１６及びパージ補正係数遅延手段Ａ１７については後に詳述する。以上、非パージ時基本燃料噴射量算出手段Ａ３、及び補正前基本燃料噴射量算出手段Ａ４が前記基本燃料噴射量取得手段に相当する。
【００６９】
補正後基本燃料噴射量算出手段Ａ５は、補正前基本燃料噴射量算出手段Ａ４により求められた今回の補正前基本燃料噴射量Fbaseb(k)に、後述する基本燃料噴射量補正係数設定手段Ａ１８により（前回の吸気行程にて既に）求められている基本燃料噴射量補正係数KFを乗じることで、補正後基本燃料噴射量Fbaseを求める。ここで、基本燃料噴射量補正係数設定手段Ａ１８にて用いられる、後述するローパスフィルタ時定数（単に「時定数」と称呼することもある）τは、鈍し制御定数設定手段Ａ１９により設定された鈍し制御定数ｎに基づいて決定される。基本燃料噴射量補正係数設定手段Ａ１８及び鈍し制御定数設定手段Ａ１９については後に詳述する。
【００７０】
このように、本装置は、筒内吸入空気量算出手段Ａ１、上流側目標空燃比設定手段Ａ２、非パージ時基本燃料噴射量算出手段Ａ３、補正前基本燃料噴射量算出手段Ａ４、補正後基本燃料噴射量算出手段Ａ５、パージ補正係数設定手段Ａ１６、パージ補正係数遅延手段Ａ１７、基本燃料噴射量補正係数設定手段Ａ１８、及び鈍し制御定数設定手段Ａ１９を利用して、補正後基本燃料噴射量Fbaseを求める。この補正後基本燃料噴射量Fbaseは、後に詳述するように、前回の吸気行程にて求められた基本燃料噴射量の誤差を補償して、今回の吸気行程における実際の空燃比を今回の上流側目標空燃比abyfr(k)と一致させるようにするためにインジェクタ３９に指示すべき（メイン及びサブフィードバック前の）燃料噴射量（前記目標基本燃料噴射量）である。
【００７１】
<指令燃料噴射量の算出>
指令燃料噴射量算出手段Ａ６は、前記補正後基本燃料噴射量Fbaseに後述するメインフィードバック補正量DFi_main、及びサブフィードバック補正量DFi_subを加えることで、下記(1)式に基づいて今回の指令燃料噴射量Fi(k)を求める。指令燃料噴射量Fi(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。この指令燃料噴射量算出手段Ａ６は、前記指令燃料噴射量算出手段に相当する。
Fi(k)＝Fbase＋DFi_main＋DFi_sub  ・・・(1)
【００７２】
本装置は、このようにして、指令燃料噴射量算出手段Ａ６により、補正後基本燃料噴射量Fbaseをメインフィードバック補正量DFi_mainとサブフィードバック補正量DFi_subとに基づいて補正することにより得られる指令燃料噴射量Fi(k)の燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ３９に対して行う。このように燃料の噴射指示を行う手段が前記空燃比制御手段に相当する。
【００７３】
<サブフィードバック制御>
先ず、下流側目標値設定手段Ａ７は、上述した上流側目標空燃比設定手段Ａ２と同様、内燃機関１０の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて下流側目標空燃比に対応する下流側目標値（所定の下流側目標値）Voxs_refを決定する。この下流側目標値Voxs_refは、例えば、内燃機関１０の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である０．５（Ｖ）に設定されている（図４を参照。）。また、本例では、下流側目標値Voxs_refは、同下流側目標値Voxs_refに対応する下流側目標空燃比が上述した上流側目標空燃比abyfr(k)と常時一致するように設定される。
【００７４】
出力偏差量算出手段Ａ８は、下記(2)式に基づいて、下流側目標値設定手段Ａ７により設定されている現時点（具体的には、今回のFi(k)の噴射指示開始時点）での下流側目標値Voxs_refから同現時点での下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
DVoxs＝Voxs_ref−Voxs  ・・・(2)
【００７５】
ローパスフィルタＡ９は、その特性をラプラス演算子sを用いて表した下記(3)式に示すように、一次のフィルタである。下記(3)式において、Ｔは時定数である。ローパスフィルタＡ９は、周波数（１／Ｔ）以上の高周波数成分が通過することを実質的に禁止する。ローパスフィルタＡ９は、前記出力偏差量算出手段Ａ８により求められた前記出力偏差量DVoxsの値を入力するとともに、下記(3)式に従って同出力偏差量DVoxsの値をローパスフィルタ処理した後の値であるローパスフィルタ通過後出力偏差量DVoxs_lowを出力する。
１／（１＋Ｔ・s）  ・・・(3)
【００７６】
ＰＩＤコントローラＡ１０は、ローパスフィルタＡ９の出力値であるローパスフィルタ通過後出力偏差量DVoxs_lowを比例・積分・微分処理（ＰＩＤ処理）することで、下記(4)式に基づいてサブフィードバック補正量DFi_subを求める。
DFi_sub＝Kp・DVoxs_low＋Ki・SDVoxs_low＋Kd・DDVoxs_low  ・・・(4)
【００７７】
前記(4)式において、Kpは予め設定された比例ゲイン（比例定数）、Kiは予め設定された積分ゲイン（積分定数）、Kdは予め設定された微分ゲイン（微分定数）である。また、SDVoxs_lowはローパスフィルタ通過後出力偏差量DVoxs_lowの時間積分値であり、DDVoxs_lowはローパスフィルタ通過後出力偏差量DVoxs_lowの時間微分値である。
【００７８】
このようにして、本装置は、下流側目標値Voxs_refと下流側空燃比センサ６７の出力値Voxsとの偏差である出力偏差量DVoxs（実際には、ローパスフィルタ通過後出力偏差量DVoxs_low）に基づいて、サブフィードバック補正量DFi_subを求め、前記補正後基本燃料噴射量Fbaseに同サブフィードバック補正量DFi_subを加えることで、後述するメインフィードバック制御による(前記メインフィードバック補正量DFi_mainによる)補正後基本燃料噴射量Fbaseの補正とは独立に同補正後基本燃料噴射量Fbaseを補正する。
【００７９】
例えば、平均的な空燃比がリーンであるために下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリーンである空燃比に対応した値を示すと、出力偏差量算出手段Ａ８により求められる出力偏差量DVoxsが正の値となるので（図４を参照。）、ＰＩＤコントローラＡ１０にて求められるサブフィードバック補正量DFi_subは正の値となる。これにより、指令燃料噴射量算出手段Ａ６にて求められる指令燃料噴射量Fi(k)は補正後基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチとなるように制御される。
【００８０】
反対に、平均的な空燃比がリッチであるために下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリッチである空燃比に対応した値を示すと、出力偏差量算出手段Ａ８により求められる出力偏差量DVoxsが負の値となるので、ＰＩＤコントローラＡ１０にて求められるサブフィードバック補正量DFi_subは負の値となる。これにより、指令燃料噴射量算出手段Ａ６にて求められる指令燃料噴射量Fi(k)は補正後基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーンとなるように制御される。
【００８１】
また、ＰＩＤコントローラＡ１０は積分項Ki・SDVoxs_lowを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxs_refと下流側空燃比センサ６７の出力値Voxsとの定常偏差がゼロになる。また、定常状態では、出力偏差量DVoxsがゼロになることで比例項Kp・DVoxs_low、微分項Kd・DDVoxs_lowが共にゼロとなるから、サブフィードバック補正量DFi_subは積分項Ki・SDVoxs_lowの値と等しくなる。この値は、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxs_refとの偏差の時間積分値に基づく値である。
【００８２】
ＰＩＤコントローラＡ１０においてかかる積分処理が実行されることにより、上述した基本燃料噴射量の誤差が補償され得、且つ、定常状態において第１触媒５３の下流の空燃比（従って、空燃比）が前記下流側目標値Voxs_refに対応する下流側目標空燃比（即ち、理論空燃比）に収束し得る。
【００８３】
<メインフィードバック制御>
先に説明したように、第１触媒５３は酸素吸蔵機能を有している。従って、第１触媒５３の上流の排気ガスの空燃比の変動における比較的周波数の高い（例えば、前記周波数（１／Ｔ）以上の）高周波数成分、及び比較的周波数が低くて（例えば、前記周波数（１／Ｔ）以下であって）振幅（理論空燃比からの偏移量）が比較的小さい低周波数成分は第１触媒５３が有する酸素吸蔵機能により完全に吸収されることにより第１触媒５３の下流の排気ガスの空燃比の変動として現れることはない。従って、例えば、内燃機関１０が過渡運転状態にあって排気ガスの空燃比が前記周波数（１／Ｔ）以上の高周波数で大きく変動するような場合、同空燃比の変動が下流側空燃比センサ６７の出力値Voxsに現れないから、同周波数（１／Ｔ）以上の空燃比の変動に対する空燃比制御（即ち、過渡運転状態等における空燃比の急変に対する補償）はサブフィードバック制御により実行することができない。従って、過渡運転状態等における空燃比の急変に対する補償を確実に行うためには、上流側空燃比センサ６６の出力値Vabyfsに基づいた空燃比制御であるメインフィードバック制御を行う必要がある。
【００８４】
一方、第１触媒５３の上流の排気ガスの空燃比の変動における比較的周波数が低くて（例えば、前記周波数（１／Ｔ）以下であって）振幅が比較的大きい低周波数成分は第１触媒５３の酸素吸蔵機能では完全には吸収されず、少し遅れて第１触媒５３の下流の排気ガスの空燃比の変動として現れる。この結果、上流側空燃比センサ６６の出力値Vabyfsと下流側空燃比センサ６７の出力値Voxsとが理論空燃比に対して互いに逆方向に偏移した空燃比を示す値となる場合が存在する。従って、この場合、メインフィードバック制御（後述するメインフィードバック補正量DFi_main）に基づく機関の空燃比制御とサブフィードバック制御（従って、前記サブフィードバック補正量DFi_sub）に基づく機関の空燃比制御とを同時に行うと、２つの空燃比制御が互いに干渉することになるので良好な機関の空燃比制御を行うことができない。
【００８５】
以上のことから、上流側空燃比センサ６６の出力値Vabyfsの変動における各周波数成分のうち第１触媒５３の下流の空燃比の変動として現れ得る程度の周波数成分である所定の周波数（本例では、周波数（１／Ｔ））以下の低周波数成分をカットした後の同上流側空燃比センサ６６の出力値Vabyfsをメインフィードバック制御に使用すれば、前記機関の空燃比制御の干渉が発生することを回避することができるとともに、過渡運転状態における空燃比の急変に対する補償を確実に行うことができる。
【００８６】
そこで、本システムは、前述の図５に示したように、Ａ１１〜Ａ１５の各機能ブロックを含んで構成されている。以下、図５を参照しながら各機能ブロックについて説明していく。
【００８７】
<<メインフィードバック補正量の算出>>
先ず、テーブル変換手段Ａ１１は、上流側空燃比センサ６６の出力値Vabyfsと、先に説明した図３に示した上流側空燃比センサ出力値Vabyfsと空燃比Ａ／Ｆとの関係を規定したテーブルとに基づいて、上流側空燃比センサ６６が検出する現時点（具体的には、今回のFi(k)の噴射指示開始時点）における今回の検出空燃比abyfs(k)を求める。
【００８８】
目標空燃比遅延手段Ａ１２は、上流側目標空燃比設定手段Ａ２により吸気行程毎に求められＲＡＭ７３に記憶されている目標空燃比abyfrのうち、現時点からＭＢストローク（ＭＢ回の吸気行程）前の目標空燃比abyfrをＲＡＭ７３から読み出し、これを目標空燃比abyfr(k−ＭＢ)として設定する。この値ＭＢについては後述する。
【００８９】
上流側空燃比偏差算出手段Ａ１３は、下記(5)式に基づいて、今回の検出空燃比abyfs(k)から目標空燃比遅延手段Ａ１２により求められた現時点からＭＢストローク前の目標空燃比abyfr(k−ＭＢ)を減じることにより、現時点からＭＢストローク前の上流側空燃比偏差DAFを求める。
DAF＝abyfs(k)−abyfr(k−ＭＢ)  ・・・(5)
【００９０】
このように、現時点からＭＢストローク前の上流側空燃比偏差DAFを求めるために、今回の検出空燃比abyfs(k)から現時点からＭＢストローク前の目標空燃比abyfr(k−ＭＢ)を減じるのは、燃焼室２５内で燃焼された混合気が上流側空燃比センサ６６に到達するまでには、ＭＢストロークに相当する遅れ時間ＬＢ（詳細は後述する。）を要しているからである。この上流側空燃比偏差DAFは、ＭＢストローク前の時点で筒内に供給された燃料の過不足量に対応する値である。
【００９１】
ハイパスフィルタＡ１４は、その特性をラプラス演算子sを用いて表した下記(6)式に示すように、一次のフィルタである。下記(6)式において、Ｔは前記ローパスフィルタＡ９の時定数Ｔと同一の時定数である。ハイパスフィルタＡ１４は、周波数（１／Ｔ）以下の低周波数成分が通過することを実質的に禁止する。
１−１／（１＋Ｔ・s）  ・・・(6)
【００９２】
ハイパスフィルタＡ１４は、前記上流側空燃比偏差算出手段Ａ１３により求められた上流側空燃比偏差DAFの値を入力するとともに、前記(6)式に従って上流側空燃比偏差DAFの値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後上流側空燃比偏差DAFhiを出力する。従って、ハイパスフィルタ通過後上流側空燃比偏差DAFhiは、上流側空燃比センサ６６の出力値Vabyfsと上流側目標値との偏差に基づく値をハイパスフィルタ処理した後の値である。
【００９３】
ＰコントローラＡ１５は、ハイパスフィルタＡ１４の出力値であるハイパスフィルタ通過後上流側空燃比偏差DAFhiを比例処理（Ｐ処理）することで、下記(7)式に基づいてＭＢストローク前の燃料供給量の過不足（における周波数（１／Ｔ）以上の高周波数成分のみの過不足）を補償するためのメインフィードバック補正量DFi_mainを求める。
DFi_main＝Gphi・DAFhi  ・・・(7)
【００９４】
前記(7)式において、Gphiは予め設定された比例ゲイン（比例定数）である。係るメインフィードバック補正量DFi_mainは、先に述べたように指令燃料噴射量算出手段Ａ６により指令燃料噴射量Fi(k)を求める際に使用される。
【００９５】
このようにして、本装置は、メインフィードバック制御回路とサブフィードバック制御回路とを内燃機関１０に対して並列に接続している。そして、本装置は、上流側目標空燃比abyfrに対応する上流側目標値と上流側空燃比センサ６６の出力値Vabyfsとの偏差に基づく値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後上流側空燃比偏差DAFhiに基づいて、メインフィードバック補正量DFi_mainを求め、前記補正後基本燃料噴射量Fbaseに同メインフィードバック補正量DFi_mainを加えることで、上述したサブフィードバック制御による(サブフィードバック補正量DFi_subによる)補正後基本燃料噴射量Fbaseの補正とは独立に同補正後基本燃料噴射量Fbaseを補正する。
【００９６】
例えば、空燃比が急変してリーンとなると、テーブル変換手段Ａ１１にて求められる今回の検出空燃比abyfs(k)は上流側目標空燃比設定手段Ａ２により設定されている現時点からＭＢストローク前の上流側目標空燃比abyfr(k−ＭＢ)よりもリーンな値（より大きな値）として求められる。このため、上流側空燃比偏差DAFは大きい正の値として求められる。また、空燃比の急変によりこの上流側空燃比偏差DAFを示す信号には前記周波数（１／Ｔ）以上の高周波数成分が存在するから、ハイパスフィルタＡ１４を通過した後のハイパスフィルタ通過後上流側空燃比偏差DAFhiも大きい正の値となる。従って、メインフィードバック補正量DFi_mainが大きい正の値となる。これにより、指令燃料噴射量算出手段Ａ６にて求められる指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチとなるように制御される。
【００９７】
反対に、空燃比が急変してリッチとなると、今回の検出空燃比abyfs(k)は現時点からＭＢストローク前の上流側目標空燃比abyfr(k−ＭＢ)よりもリッチな値（より小さな値）として求められる。このため、上流側空燃比偏差DAFは負の値として求められる。また、空燃比の急変によりこの上流側空燃比偏差DAFを示す信号には前記周波数（１／Ｔ）以上の高周波数成分が存在するから、ハイパスフィルタ通過後上流側空燃比偏差DAFhiも負の値となる。従って、メインフィードバック補正量DFi_mainが負の値となる。これにより、指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーンとなるように制御される。以上、テーブル変換手段Ａ１１、目標空燃比遅延手段Ａ１２、上流側空燃比偏差算出手段Ａ１３、ハイパスフィルタＡ１４、及びＰコントローラＡ１５は前記フィードバック補正量算出手段に相当する。
【００９８】
このようにして、第１触媒５３の下流の空燃比の変動として現れ得る程度の周波数（１／Ｔ）以下の空燃比の変動に対する定常的な空燃比制御はサブフィードバック制御により確実に行われ得るとともに、同周波数（１／Ｔ）以下の低周波数成分はハイパスフィルタＡ１４を通過し得ずＰコントローラＡ１５に入力されないから前述した機関の空燃比制御の干渉が発生することを回避できる。また、空燃比の変動（従って、上流側空燃比センサ６６の出力値Vabyfsの変動）における前記周波数（１／Ｔ）以上の高周波数成分はハイパスフィルタＡ１４を通過するから、過渡運転状態における空燃比の急変に対する補償はメインフィードバック制御により迅速、且つ確実に行われ得る。
【００９９】
<パージ補正係数の設定>
パージ補正係数設定手段Ａ１６は、パージ実行条件（本例では、機関運転中であって、（ア）エンジン暖気後、（イ）空燃比フィードバック制御中、（ウ）今回の吸気行程における現在の筒内吸入空気量Mcの領域における現在のKFmem(m)の更新（後に詳述する）終了）が成立しパージ実行中の場合において、エバポガスに含まれる燃料の量を考慮して非パージ時基本燃料噴射量Fbaseb0を（減量）補正するためのパージ補正係数KPを設定する。以下、パージ補正係数設定手段Ａ１６による係るパージ補正係数KPの設定方法について説明する。
【０１００】
上述したように、非パージ時基本燃料噴射量Fbaseb0(k)にパージ補正係数KPを乗じた値が補正前基本燃料噴射量Fbaseb(k)と等しくなるように同パージ補正係数KPが設定されるから、同パージ補正係数KPは下記(8)式にて表すことができる。
KP＝Fbaseb(k)／Fbaseb0(k)  ・・・(8)
【０１０１】
ここで、補正前基本燃料噴射量Fbaseb(k)は、非パージ時基本燃料噴射量Fbaseb0(k)から今回の吸気行程において筒内に吸入されるエバポガスに含まれる燃料の量（以下、「パージ余剰燃料量ΔFbase」と称呼する。）を減じた量（＝Fbaseb0(k)−ΔFbase）と等しい。また、上述したように、非パージ時基本燃料噴射量Fbaseb0(k)は筒内吸入空気量Mc(k)を上流側目標空燃比abyfr(k)で除することで取得される。従って、これらの関係を利用すると、パージ補正係数KPは、下記(9)式にて表すことができる。
KP＝1−(ΔFbase・abyfr(k)／Mc(k))  ・・・(9)
【０１０２】
パージ余剰燃料量ΔFbaseは、下記(10)式で表されるように今回の吸気行程において筒内に吸入されるエバポガスの量（以下、「エバポガス量Geva」と称呼する。）とエバポガス濃度Cevaの積で表される。エバポガス濃度Cevaの取得方法については、後述する。他方、今回の吸気行程における実際のパージ率（＝目標パージ率ＰＧＲ）は、機関１０が定常運転状態にある場合、下記(11)式にて表すことができる。下記(10)式と下記(11)式からエバポガス量Gevaを消去してΔFbaseについて解いた式を前記(9)式に代入することで下記(12)式が導かれる。
ΔFbase＝Geva・Ceva  ・・・(10)
ＰＧＲ＝Geva／（Geva＋Mc(k)）  ・・・(11)
KP＝1−（ＰＧＲ／（1−ＰＧＲ））・Ceva・abyfr(k)  ・・・(12)
【０１０３】
パージ補正係数設定手段Ａ１６は、前記(12)式に従って、パージ補正係数KP(k)を設定する。パージ補正係数KPは、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。前記(12)式によれば、パージが実行されない場合、目標パージ率ＰＧＲの値が「０」に設定されるから、パージ補正係数KPは「１」となる（即ち、非パージ時基本燃料噴射量Fbaseb0は減量補正されず、補正前基本燃料噴射量Fbasebは、非パージ時基本燃料噴射量Fbaseb0と一致する。）。一方、パージが実行される場合、パージ補正係数KPは「０」より大きく「１」以下の値となり、この結果、補正前基本燃料噴射量Fbasebは、パージ余剰燃料量ΔFbaseの分だけ非パージ時基本燃料噴射量Fbaseb0から減量した値となる。
【０１０４】
パージ補正係数遅延手段Ａ１７は、パージ補正係数設定手段Ａ１６により吸気行程毎に求められＲＡＭ７３に記憶されているパージ補正係数KPのうち、現時点からＭＡストローク（ＭＡ回の吸気行程）前の値をＲＡＭ７３から読み出し、この値を今回の非パージ時基本燃料噴射量Fbaseb0(k)に乗じるためのパージ補正係数KP(k−ＭＡ)として設定する。
【０１０５】
このように、今回の非パージ時基本燃料噴射量Fbaseb0に乗じるためのパージ補正係数KPとして、現時点からＭＡストローク前のパージ補正係数KP(k−ＭＡ)を用いるのは、エバポガスがＶＳＶ４９から燃焼室２５に到達するためにはＭＡストロークに相当する時間（輸送遅れ時間ＬＡ）を要するからである。この輸送遅れ時間ＬＡ（従って、ストローク数ＭＡ）は、筒内吸入空気量Mcの増加に応じて短くなる傾向がある。従って、ストローク数ＭＡは、筒内吸入空気量Mc(k)と、図６にグラフにより示した、筒内吸入空気量Mcとストローク数ＭＡとの関係を規定するテーブルMapＭＡ(Mc)とに基づいて求めることができる。以上がパージ補正係数KPの設定方法である。パージ補正係数遅延手段Ａ１７は、前記輸送遅れ時間取得手段に相当する。
【０１０６】
<基本燃料噴射量補正係数の設定>
先に説明したように、ＰＩＤコントローラＡ１０において積分処理が実行されることにより、サブフィードバック制御において基本燃料噴射量の誤差が補償され得る。しかしながら、上述した第１触媒５３の酸素吸蔵機能の影響により空燃比の変化は少し遅れて第１触媒５３の下流の排気ガスの空燃比の変化として現れるから、基本燃料噴射量の誤差が急に増大する場合においては、サブフィードバック制御のみでは基本燃料噴射慮の誤差を直ちに補償することができず、その結果、一時的にエミッションの排出量が増大する場合が発生するという問題がある。
【０１０７】
加えて、ＰコントローラＡ１５では積分処理が実行されないから、メインフィードバック制御においては基本燃料噴射量の誤差が補償され得ない。以上のことから、メインフィードバック制御、及びサブフィードバック制御によることなく基本燃料噴射量を直ちに補償する必要がある。
【０１０８】
このためには、指令燃料噴射量Fiを決定する値のうちメインフィードバック補正量DFi_main、及びサブフィードバック補正量DFi_sub以外の値である補正後基本燃料噴射量Fbaseが、実際の空燃比を目標空燃比abyfrとするために吸気行程を迎える気筒のインジェクタ３９に噴射指示すべき燃料の量（以下、「目標基本燃料噴射量Fbaset」と称呼する。）と一致する（近づく）ように補正された値となる必要がある。
【０１０９】
そのためには、図５から理解できるように、今回の前記補正前基本燃料噴射量Fbaseb(k)に上述した基本燃料噴射量補正係数設定手段Ａ１８により設定される基本燃料噴射量補正係数KFを乗じた値が前記目標基本燃料噴射量Fbasetと一致する（近づく）ように同基本燃料噴射量補正係数KFが設定される必要がある。以下、基本燃料噴射量補正係数設定手段Ａ１８による係る基本燃料噴射量補正係数KFの設定方法について説明する。
【０１１０】
一般に、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもとでは、燃料噴射量と、燃焼室に供給される混合気の空燃比（従って、排気ガスの空燃比）の積は一定となる。従って、係る仮定のもとでは、一般に、前記指令燃料噴射量Fiと、上流側空燃比センサ６６による検出空燃比abyfsの積は、燃焼室に供給される混合気の実際の空燃比を今回の目標空燃比abyfr(k)とするために必要な前記目標基本燃料噴射量Fbasetと、目標空燃比abyfr(k)の積に等しい、という関係が成立する。従って、目標基本燃料噴射量Fbasetは、一般に、下記(13)式に従って表すことができる。
Fbaset＝(abyfs／abyfr(k))・Fi  ・・・(13)
【０１１１】
ここで、上述したように、今回の補正前基本燃料噴射量Fbaseb(k)に基本燃料噴射量補正係数KFを乗じた値が前記(13)式に従って求められる目標基本燃料噴射量Fbasetと等しくなるように同補正係数KFが設定されるから、同補正係数KFは下記(14)式に従って設定することができる。
KF＝Fbaset／Fbaseb(k)  ・・・(14)
【０１１２】
ところで、燃料の噴射（噴射指示）は、吸気行程中（或いは吸気行程よりも前の時点）にて実行され、噴射された燃料は、その後に到来する圧縮上死点近傍の時点で燃焼室内にて着火（燃焼）させられる。この結果、発生する排ガスは、排気弁を介して燃焼室から排気通路へと排出され、その後、排気通路内を移動していくことで上流側空燃比センサ（の検出部）に到達する。更に、上流側空燃比センサの検出部に到達した排ガスの空燃比の変化が同センサの出力値の変化として現れるまでには所定の時間を要する。
【０１１３】
以上のことから、燃料の噴射指示から、同噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比が上流側空燃比センサ６６の出力値Vabyfsとして現れるまでには、燃焼行程に係わる遅れ（行程遅れ）、排気通路内での排ガスの移動に係わる遅れ（輸送遅れ）、及び上流側空燃比センサの応答に係わる遅れ（応答遅れ）の和として表される遅れ時間ＬＢが必要である。換言すれば、上流側空燃比センサ６６による検出空燃比abyfsは、遅れ時間ＬＢ前に実行された燃料の噴射指示に基づいて発生した排ガスの空燃比を表す値となる。
【０１１４】
従って、前記(13)式に従って目標基本燃料噴射量Fbasetが計算される際、検出空燃比abyfsとして今回の検出空燃比abyfs(k)が使用される一方で、指令燃料噴射量Fiとしては、現時点（具体的には、今回のFi(k)の噴射指示開始時点）から遅れ時間ＬＢに相当するＭＢストローク（ＭＢ回の吸気行程）前に実行された燃料の噴射指示に係わる指令燃料噴射量である現時点からＭＢストローク前の指令燃料噴射量Fi(k−ＭＢ)が使用されることが好ましい。
【０１１５】
そして、上述した行程遅れ、及び輸送遅れに係る時間は、筒内吸入空気量Mcの増加に応じて短くなるとともに、輸送遅れに係る時間は、運転速度NEの上昇に応じて短くなる傾向がある。従って、前記遅れ時間ＬＢ（従って、ストローク数ＭＢ）は、筒内吸入空気量Mc(k)と、運転速度NEと、図７にグラフにより示した、運転速度NE及び筒内吸入空気量Mcと、ストローク数ＭＢとの関係を規定するテーブルMapＭＢ(Mc,NE)と、に基づいて求めることができる。
【０１１６】
また、機関が過渡運転状態にある場合、検出空燃比abyfs、指令燃料噴射量Fi、及び補正前基本燃料噴射量Fbasebが別個独立に所定の周波数以上の高周波数で大きく変動し得る。このような場合、前記(13)式、及び前記(14)式に示した関係が維持され得なくなる可能性がある。従って、安定した基本燃料噴射量の補正を実現するためにローパスフィルタ処理を用いることが好ましい。以上のことから、基本燃料噴射量補正係数設定手段Ａ１８は、その機能ブロック図である図８に示したようにＡ１８ａ〜Ａ１８ｄの各機能ブロックを含んで構成されている。
【０１１７】
指令燃料噴射量遅延手段Ａ１８ａは、ＲＯＭ７２に記憶されている上述したテーブルMapＭＢ(Mc,NE)と、今回の筒内吸入空気量Mc(k)と、現時点での運転速度NEとに基づいて上述のストローク数ＭＢを求める。そして、指令燃料噴射量遅延手段Ａ１８ａは、指令燃料噴射量算出手段Ａ６により吸気行程毎に求められＲＡＭ７３に記憶されている指令燃料噴射量Fiのうち、現時点からＭＢストローク前の値をＲＡＭ７３から読み出し、これを指令燃料噴射量Fi(k−ＭＢ)として設定する。
【０１１８】
目標基本燃料噴射量算出部Ａ１８ｂは、前記(13)に相当する下記(15)式に従って、検出空燃比abyfs(k)の値を今回の目標空燃比abyfr(k)で除することで得られる値に、指令燃料噴射量Fi(k−ＭＢ)の値を乗じることで目標基本燃料噴射量Fbasetを求める。
Fbaset＝(abyfs(k)／abyfr(k))・Fi(k−ＭＢ)  ・・・(15)
【０１１９】
基本燃料噴射量補正係数設定部Ａ１８ｃは、上記(14)に相当する下記(16)式に従って、目標基本燃料噴射量算出部Ａ１８ｂにより求められた目標基本燃料噴射量Fbasetを補正前基本燃料噴射量Fbaseb(k)で除することで、ローパスフィルタ処理前の基本燃料噴射量補正係数KFbを求める。
KFb＝Fbaset／Fbaseb(k)  ・・・（16）
【０１２０】
ローパスフィルタＡ１８ｄは、ラプラス演算子sを用いてその特性を表した下記(17)式に示すように、一次のフィルタである。下記(17)式において、τは時定数である。このローパスフィルタＡ１８ｄは、ディジタルフィルタであって、後述する鈍し制御定数設定手段Ａ１９により変更・設定される鈍し制御定数ｎ（応答性に関する値）に応じて時定数τが変更されるようになっている。
１／（１＋τ・s）  ・・・(17)
【０１２１】
ローパスフィルタＡ１８ｄは、基本燃料噴射量補正係数設定部Ａ１８ｃにより求められたローパスフィルタ処理前の基本燃料噴射量補正係数KFbの値を入力とし、下記(18)式に従って、前記KFbの値をローパスフィルタ処理した後の値である基本燃料噴射量補正係数KF(k)を出力する。下記(18)式において、KF(k−1)は、前回の出力値である。ｎは、前記鈍し制御定数であって、「１」以上の値に設定される。時定数τは、鈍し制御定数ｎと上記演算周期の積に比例するから、鈍し制御定数ｎの値が大きいほど時定数τが大きくなる。
KF(k)＝((ｎ−1)／ｎ)・KF(k−1)＋(1／ｎ)・KFb  ・・・（18）
【０１２２】
以上が基本燃料噴射量補正係数の設定方法であり、補正後基本燃料噴射量算出手段Ａ５、及び基本燃料噴射量補正係数設定手段Ａ１８が前記基本燃料噴射量補正手段に相当する。
【０１２３】
<基本燃料噴射量補正係数の記憶処理>
内燃機関の暖気運転中等、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においては、検出空燃比abyfsが排気ガスの空燃比を精度良く表す値とならない。このような場合、検出空燃比abyfsの値を使用して前記(15)式〜(18)式に従って算出される基本燃料噴射量補正係数KFの値も、補正前基本燃料噴射量Fbaseb(k)を、目標基本燃料噴射量Fbasetになるように精度良く補正するための値とならない。従って、このような場合、前記(15)式〜(18)式に従って算出される基本燃料噴射量補正係数KFは補正前基本燃料噴射量Fbaseb(k)の補正に使用されるべきでない。
【０１２４】
そこで、本装置は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合（具体的には、後述するメインフィードバック条件が成立する場合）」に限り、前記(15)式〜(18)式に従って計算された基本燃料噴射量補正係数KFを使用して補正前基本燃料噴射量Fbaseb(k)を補正していくとともに、計算された基本燃料噴射量補正係数KFの値を逐次バックアップＲＡＭ７４に記憶・更新していく。
【０１２５】
ここで、吸入空気流量Gaが増大（従って筒内吸入空気量Mcも増大）すると、エアフローメータ６１によるGaの測定誤差も当然大きくなる等、基本燃料噴射量の誤差が筒内吸入空気量Mcに応じて増大していく（従って、基本燃料噴射量補正係数KFの値が筒内吸入空気量Mcに応じて増大していく）傾向がある。そこで、本装置は、図９に示すように、筒内吸入空気量Mcのとり得る範囲を複数の（本例では、４つの）分類に区分する。そして、本システムは、新たな基本燃料噴射量補正係数KFを計算する毎に、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、同選択された分類に対応する基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)の値を前記計算された新たな基本燃料噴射量補正係数KFの値に更新・記憶していく。
【０１２６】
一方、本装置は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合（具体的には、後述するメインフィードバック条件が成立しない場合）」においては、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)のうち同選択された分類に対応する値を基本燃料噴射量補正係数記憶値KFmemとして設定する。
【０１２７】
そして、前記(15)式〜(18)式に従って計算される基本燃料噴射量補正係数KF(k)に代えて基本燃料噴射量補正係数記憶値KFmemを利用して補正前基本燃料噴射量Fbaseb(k)を補正していく。これにより、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」においても、補正前基本燃料噴射量Fbaseb(k)を、ある程度正確に目標基本燃料噴射量Fbasetに一致させていくことができ、この結果、基本燃料噴射量の誤差がある程度補償されていく。
【０１２８】
但し、パージが行われている場合、このパージによる空燃比制御系に対する外乱が入った状態の基本燃料噴射量補正係数KFの値は、「上流側空燃比センサ６６の出力値Vabyfsが正常な値とならない場合」のための補正値として使用すべきでない。従って、パージが行われていない場合に限り、上述の基本燃料噴射量補正係数KFのバックアップＲＡＭ７４への記憶・更新が行われる。
【０１２９】
<エバポガス濃度の取得>
先に説明した通り、パージ補正係数KPを算出するためにエバポガス濃度Cevaが取得される必要がある。本装置は、下記(19)式に従って、エバポガス濃度Cevaを取得する。下記(19)式は、前記(10)式と前記(11)式からエバポガス量Gevaを消去してエバポガス濃度Cevaについて解くことで得られる。以下、パージ余剰燃料量ΔFbaseの取得方法について説明する。
Ceva＝((１−ＰＧＲ)／(Mc(k)・ＰＧＲ))・ΔFbase  ・・・(19)
【０１３０】
筒内吸入空気量Mc(k)が一定である場合、非パージ時とパージ時との間の目標基本燃料噴射量Fbaset（＝KF(k)・KP(k−ＭＡ)・Fbaseb0(k)）の差は、基本燃料噴射量の誤差の影響が除外された、純粋なパージ余剰燃料量ΔFbaseと一致する。また、筒内吸入空気量Mc(k)が一定である場合、非パージ時基本燃料噴射量Fbaseb0(k)は一定である。従って、非パージ時では、パージ補正係数KP(k−ＭＡ)＝１となることを考慮するとともに、非パージ時のKF値をKFnonpurge、パージ時のKF値をKFpurgeとすると、パージ余剰燃料量ΔFbaseは下記(20)式にて表すことができる。
ΔFbase＝（KFnonpurge−KFpurge・KP(k−ＭＡ)）・Fbaseb0(k)  ・・・（20）
【０１３１】
従って、パージ時の定常運転状態において、KFpurgeの値を現時点での基本燃料噴射量補正係数KF(k)の値に、KFnonpurgeの値を、現時点での筒内吸入空気量Mc(k)に対応する上記基本燃料噴射量補正係数記憶値KFmemに設定することにより前記(20)式に従ってパージ余剰燃料量ΔFbaseが求められる。以上が、エバポガス濃度Cevaの取得方法である。エバポガス濃度Cevaは、後述するタイミング毎に更新されていく。このようにして更新されるエバポガス濃度Cevaの最新値（以下、「エバポガス濃度学習値」と称呼する。）が、前記(12)式にて使用されて、パージ補正係数設定手段Ａ１６は、パージ補正係数KP(k)を設定する。
【０１３２】
<ローパスフィルタの時定数の設定・変更>
基本燃料噴射量補正係数KFによる安定した基本燃料噴射量の補正を実現するためには、基本燃料噴射量補正係数設定手段Ａ１８内のローパスフィルタＡ１８ｄの時定数τは、基本燃料噴射量の誤差の補償における迅速性を阻害しない範囲で可能な限り大きい値（以下、「値τ１」と称呼する。）に設定されることが好ましい。
【０１３３】
ところで、上述したエバポガス濃度学習値には必ず推定誤差が含まれている。従って、エバポガス濃度学習値を使用して上記(12)式に従って設定されるパージ補正係数KPにはパージ時においてエバポガス濃度学習値の誤差に起因する誤差が含まれている。このことは、パージが開始された場合において空燃比制御系における大きな外乱となる。
【０１３４】
また、パージの開始・停止により、目標パージ率ＰＧＲがステップ状に変化することで上記(12)式に従って設定されるパージ補正係数KPもステップ状に変化する。一方、パージされたエバポガスが吸気通路中においてＶＳＶ４９から燃焼室２５まで流動する過程におけるエバポガスの分散等の影響により、燃焼室２５に吸入されるガスの実際のパージ率は、ステップ状に変化する目標パージ率ＰＧＲに或る遅れをもって追従する。
【０１３５】
従って、目標パージ率ＰＧＲを使用して上記(12)式に従って設定されるパージ補正係数KPにはパージの開始・停止後のそれぞれの短期間内において上記吸気通路でのエバポガスの分散に起因する誤差が含まれている。このことは、パージが開始・停止された場合において空燃比制御系における大きな外乱となる。
【０１３６】
以上のようなパージ補正係数KPの誤差に基づく空燃比制御系における大きな外乱が発生した場合においてもローパスフィルタＡ１８ｄの時定数τが前記値τ１に維持されると、ローパスフィルタＡ１８ｄの応答遅れが大きいことから、基本燃料噴射量補正係数KFが一時的に適切な値と大きく異なる場合が発生し得る。この場合、上記メインフィードバック制御による空燃比の急変に対する迅速な補償が逆に阻害され、この結果、一時的に空燃比が目標空燃比abyfrから大きく偏移する事態が発生し得る。
【０１３７】
そこで、鈍し制御定数設定手段Ａ１９は、前記(18)式に使用される鈍し制御定数ｎを、通常、前記値τ１に相当する値ｎ0に設定するとともに、パージが開始・停止された時点以降、一時的に小さくする。以下、このことを図１０を参照しながら説明する。
【０１３８】
図１０は、吸入空気流量Gaが一定の場合において、時刻ｔ１にてパージが開始され、時刻ｔ１以降継続していたパージが時刻ｔ４にて停止された場合における各種変数等の変化の一例を示したタイムチャートである。（Ｂ）に示すＸＰＧは、上述したパージ実行条件が成立しているとき（即ち、パージ時）には「１」に設定され、パージ実行条件が成立していないとき（即ち、非パージ時）には「０」に設定されるパージ実行フラグである。
【０１３９】
この例では、パージが開始される時刻ｔ１以前において、(Ｇ)に示すように、空燃比Ａ／Ｆが目標空燃比abyfrに維持されていて、(Ｆ)に示すように、基本燃料噴射量補正係数KFが値KF0に維持されている。この値KF0の「１」に対する偏移量は、基本燃料噴射量の誤差の大きさに相当している。また、この例では、エバポガス濃度学習値が真値より大きい方向にずれた誤差を含んでいるものとする。
【０１４０】
この場合、（Ｃ）に示すように、パージ補正係数KP(k)は、フラグＸＰＧの値に連動して、非パージ時である時刻ｔ１以前と時刻ｔ４以降は「１」に維持され、パージ時である時刻ｔ１〜ｔ４の間は、エバポガス濃度学習値と、吸入空気流量Ga（一定）から決定される目標パージ率ＰＧＲ（≠０、一定）とを使用して上記(12)式に従って設定される値KP0(０＜KP0＜１)に維持される。
【０１４１】
従って、（Ｄ）に実線にて示すように、補正前基本燃料噴射量Fbasebの算出（従って、指令燃料噴射量Fiの算出）に使用されるパージ補正係数KP(k−ＭＡ)は、パージが開始された時刻ｔ１からＭＡストロークに相当する輸送遅れ時間Ｌ１が経過した時刻ｔ２にて「１」から値KP0にステップ状に変化し、パージが停止された時刻ｔ４からＭＡストロークに相当する輸送遅れ時間Ｌ２が経過した時刻ｔ５にて値KP0から「１」にステップ状に変化する。
【０１４２】
一方、(Ｄ)の一点鎖線は、真のエバポガス濃度の値と、燃焼室２５に吸入されるガスの実際のパージ率とを使用して上記(12)式に従って設定されるパージ補正係数（以下、「必要パージ補正係数」と称呼する。）の変化を示している。この必要パージ補正係数は、上述した「エバポガス濃度学習値の誤差」、及び「吸気通路でのエバポガスの分散」に起因するパージ補正係数KPの誤差の影響が除外された、パージ時における空燃比を目標空燃比abyfrとするために非パージ時基本燃料噴射量Fbaseb0に乗算されるべき真のパージ補正係数である。
【０１４３】
(Ｄ)に一点鎖線にて示すように、必要パージ補正係数は、時刻ｔ２以降の短期間内において、上述した吸気通路でのエバポガスの分散等に起因して、ステップ状に減少したパージ補正係数KP(k−ＭＡ)に或る遅れをもって追従する。加えて、エバポガス濃度学習値は真のエバポガス濃度の値より大きい方向にずれているから、時刻ｔ２以降において、必要パージ補正係数は、「１」から前記値KP0よりも大きい値KP1（0＜KP1＜1）に収束していく。
【０１４４】
この結果、時刻ｔ２の直後から、パージ補正係数KP(k−ＭＡ)は必要パージ補正係数よりも小さくなり、パージ補正係数KPに空燃比を目標空燃比abyfrよりもリーンとする方向の誤差が発生する。このことは、空燃比制御系における大きな外乱となる。
【０１４５】
これにより、(Ｇ)に示すように、時刻ｔ２まで目標空燃比abyfrに維持されていた空燃比Ａ／Ｆが、時刻ｔ２の直後からリーン方向へ偏移を開始する。この結果、(Ｆ)に示すように、時刻ｔ２まで値KF0に維持されていた基本燃料噴射量補正係数KFが、時刻ｔ２の直後から、値KF1（＞値KF0）に向けて変化を開始する。この基本燃料噴射量補正係数KFの値KF0から値KF1への変化は、エバポガス濃度学習値の誤差に起因するパージ補正係数KPの誤差（値KP0の値KP1からの偏移）に基づくものである。
【０１４６】
ここで、(Ｅ)に破線にて示すように、鈍し制御定数ｎが常に前記値ｎ0に維持される場合について考える。この場合、ローパスフィルタＡ１８ｄの応答遅れが大きいことから、(Ｆ)に破線にて示すように、基本燃料噴射量補正係数KFは、メインフィードバック制御による空燃比の急変に対する迅速な補償を阻害しながら緩やかに値KF1に向けて収束していく。この結果、(Ｇ)に破線にて示すように、空燃比Ａ／Ｆが、時刻ｔ２の直後からリーン方向へ一時的に大きく偏移する。
【０１４７】
これに対し、鈍し制御定数設定手段Ａ１９は、(Ｅ)に実線にて示すように、時刻ｔ２から所定期間α１だけ鈍し制御定数ｎを値ｎ0から値ｎ1（＜ｎ0）に切換える。これにより、ローパスフィルタＡ１８ｄの時定数τが小さくなって応答遅れが小さくなるから、(Ｆ)に実線にて示すように、基本燃料噴射量補正係数KFは、メインフィードバック制御による空燃比の急変に対する迅速な補償をほとんど阻害することなく比較的急激に値KF1に向けて収束していく。この結果、(Ｇ)に実線にて示すように、空燃比Ａ／Ｆが時刻ｔ２の直後からリーン方向へ一時的に大きく偏移する程度を小さくすることができる。
【０１４８】
同様に、時刻ｔ５以降の短期間内において、(Ｄ)に一点鎖線にて示すように、前記必要パージ補正係数は上述した吸気通路でのエバポガスの分散等に起因して、ステップ状に増加したパージ補正係数KP(k−ＭＡ)に或る遅れをもって追従する。この結果、時刻ｔ５の直後から、パージ補正係数KP(k−ＭＡ)は必要パージ補正係数よりも大きくなり、パージ補正係数KPに空燃比を目標空燃比abyfrよりもリッチとする方向の誤差が発生する。このことは、空燃比制御系における大きな外乱となる。
【０１４９】
これにより、(Ｇ)に示すように、時刻ｔ５まで目標空燃比abyfrに維持されていた空燃比Ａ／Ｆが、時刻ｔ５の直後からリッチ方向へ偏移を開始する。この結果、(Ｆ)に示すように、時刻ｔ５まで値KF1に維持されていた基本燃料噴射量補正係数KFが、時刻ｔ５の直後から、値KF0に向けて変化を開始する。
【０１５０】
この場合、鈍し制御定数設定手段Ａ１９は、(Ｅ)に実線にて示すように、時刻ｔ５から所定期間α２だけ鈍し制御定数ｎを値ｎ0から値ｎ2（＝ｎ1）に切換える。これにより、基本燃料噴射量補正係数KF、及び空燃比Ａ／Ｆは、(Ｆ)，(Ｇ)に実線にて示すように変化する。
【０１５１】
この結果、(Ｅ)，(Ｆ)，(Ｇ)に破線にて示される「鈍し制御定数ｎが前記値ｎ0に維持される場合」に比して、上述した時刻ｔ２の直後の場合と同様の理由により、空燃比Ａ／Ｆが時刻ｔ５の直後からリッチ方向へ一時的に大きく偏移する程度を小さくすることができる。
【０１５２】
このように、鈍し制御定数設定手段Ａ１９は、鈍し制御定数ｎを、通常、「ローパスフィルタＡ１８ｄの時定数τが前記値τ１となる」値ｎ0に設定するとともに、パージが開始された時点から輸送遅れ時間Ｌ１が経過した時点からの所定期間α１、及びパージが停止された時点から輸送遅れ時間Ｌ２が経過した時点からの所定期間α２だけ、鈍し制御定数ｎを値ｎ0よりも小さくすることでローパスフィルタＡ１８ｄの時定数τを前記値τ１よりも小さくする。
【０１５３】
なお、前記所定期間α１，α２は、空燃比Ａ／Ｆに乱れが発生してから空燃比Ａ／Ｆが目標空燃比abyfrに収束するまでに要する時間に設定され、本例では、鈍し制御定数ｎが値ｎ1（＝ｎ2）の場合のローパスフィルタＡ１８ｄの時定数τの３倍に設定されている。以上が、本装置による空燃比制御の概要である。
【０１５４】
（実際の作動）
次に、前記空燃比制御装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
【０１５５】
<空燃比フィードバック制御>
ＣＰＵ７１は、図１１にフローチャートにより示した指令燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が前記所定クランク角度になると、ＣＰＵ７１は「Fiの計算・噴射」ルーチン１１００の処理を開始する。
【０１５６】
まず、ステップ１１０５にて、テーブルMapMc(NE,Ga)に基づいて、今回の吸気行程を迎える気筒（以下、「燃料噴射気筒」と云うこともある。）に吸入された今回の筒内吸入空気量Mc(k)が推定・決定される。次に、ＣＰＵ７１はステップ１１１０に進んで、前記筒内吸入空気量Mc(k)を今回の目標空燃比abyfr(k)で除することにより、今回の非パージ時基本燃料噴射量Fbaseb0(k)を決定する。
【０１５７】
次いで、ＣＰＵ７１はステップ１１１５に進み、テーブルMapＭＡ(Mc(k))（図６を参照）に基づいてストローク数ＭＡを決定する。続いて、ＣＰＵ７１はステップ１１２０に進んで、後述するルーチンにて算出され吸気行程毎にＲＡＭ７３に記憶されているパージ補正係数KPのうち、現時点からＭＡストローク前のパージ補正係数KP(k−ＭＡ)を先のステップ１１１０にて決定された非パージ時基本燃料噴射量Fbaseb0(k)に乗じることにより、今回の補正前基本燃料噴射量Fbaseb(k)を求める。
【０１５８】
次に、ＣＰＵ７１はステップ１１２５に進んで、メインフィードバック条件が成立しているか否かを判定する。ここで、メインフィードバック条件は、例えば、機関の冷却水温THWが第１所定温度以上であって、上流側空燃比センサ６６が正常（活性状態となっていることを含む）であって、機関の一回転当りの吸入空気量（負荷）が所定値以下であるときに成立する。即ち、メインフィードバック条件が成立することは、上述した「上流側空燃比センサ６６の出力値Vabyfsが正常な値となる場合」に対応する。
【０１５９】
メインフィードバック条件が成立している場合（ステップ１１２５＝「Ｙｅｓ」）、ＣＰＵ７１はステップ１１３０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、後述するルーチンにて求められている基本燃料噴射量補正係数KF(k)の最新値を乗じることにより補正後基本燃料噴射量Fbaseを決定する。
【０１６０】
一方、メインフィードバック条件が成立していない場合（ステップ１１２５＝「Ｎｏ」）、ＣＰＵ７１はステップ１１３５に進み、基本燃料噴射量補正係数記憶値KFmemを、バックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)のうち筒内吸入空気量Mc(k)の値から選択されたKFmem(m)の値に決定する。続いて、ＣＰＵ７１はステップ１１４０に進み、前記補正前基本燃料噴射量Fbaseb(k)に、前記基本燃料噴射量補正係数記憶値KFmemを乗じることにより補正後基本燃料噴射量Fbaseを決定する。
【０１６１】
次に、ＣＰＵ７１はステップ１１４５に進み、前記(1)式に従って、上述のように求めた補正後基本燃料噴射量Fbaseに、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のメインフィードバック補正量DFi_mainと、後述するルーチンにて（前回の燃料噴射時点にて）求められている最新のサブフィードバック補正量DFi_subとを加えることにより今回の指令燃料噴射量Fi(k)を決定する。この、指令燃料噴射量Fi(k)の値は、上述したように、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【０１６２】
続いて、ＣＰＵ７１はステップ１１５０に進んで、前記指令燃料噴射量Fi(k)の燃料の噴射指示を行った後、ステップ１１９５に進んで本ルーチンを一旦終了する。以上により、補正前基本燃料噴射量Fbaseb(k)が上述した目標基本燃料噴射量Fbasetに一致するように補正されるとともに、同補正された補正前基本燃料噴射量Fbaseb(k)（即ち、補正後基本燃料噴射量Fbase）がメインフィードバック補正、及びサブフィードバック補正された後の指令燃料噴射量Fi(k)の燃料の噴射指示が燃料噴射気筒に対してなされる。
【０１６３】
<メインフィードバック補正量の計算>
次に、前記メインフィードバック制御において前記メインフィードバック補正量DFi_mainを算出する際の作動について説明すると、ＣＰＵ７１は図１２にフローチャートにより示した「メインフィードバック補正量DFi_mainの計算」ルーチン１２００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１２００の処理を開始し、まず、ステップ１２０５にて、メインフィードバック条件が成立しているか否かを判定する。このメインフィードバック条件は、先の図１１のステップ１１２５におけるメインフィードバック条件と同一である。
【０１６４】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１２０５にて「Ｙｅｓ」と判定してステップ１２１０に進み、テーブルMapabyfs(Vabyfs)（図３を参照）に基づいて、今回の検出空燃比abyfs(k)を求める。
【０１６５】
次に、ＣＰＵ７１はステップ１２１５に進んで、テーブルMapＭＢ(Mc(k),NE)（図７を参照）に基づいて、ストローク数ＭＢを決定する。次いで、ＣＰＵ７１はステップ１２２０に進み、前記求めた検出空燃比abyfs(k)から現時点からＭＢストローク（ＭＢ回の吸気行程）前の目標空燃比であるabyfr(k−ＭＢ)を減ずることにより、上流側空燃比偏差DAFを求める。
【０１６６】
続いて、ＣＰＵ７１はステップ１２２５に進み、前記上流側空燃比偏差DAFをハイパスフィルタＡ１４によりハイパスフィルタ処理してハイパスフィルタ通過後上流側空燃比偏差DAFhiを取得する。次に、ＣＰＵ７１はステップ１２３０に進んで、前記(7)式に従ってメインフィードバック補正量DFi_mainを求めた後、ステップ１２９５に進んで本ルーチンを一旦終了する。
【０１６７】
以上により、メインフィードバック補正量DFi_mainが求められ、このメインフィードバック補正量DFi_mainが前述した図１１のステップ１１４５により指令燃料噴射量Fi(k)に反映されることで上述したメインフィードバック制御に基づく機関の空燃比制御が実行される。
【０１６８】
一方、ステップ１２０５の判定時において、メインフィードバック条件が不成立であると、ＣＰＵ７１は同ステップ１２０５にて「Ｎｏ」と判定してステップ１２３５に進んでメインフィードバック補正量DFi_mainの値を「０」に設定し、その後ステップ１２９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック条件が不成立であるときは、メインフィードバック補正量DFi_mainを「０」としてメインフィードバック制御に基づく空燃比の補正を行わない。
【０１６９】
<サブフィードバック補正量の計算>
次に、前記サブフィードバック制御において前記サブフィードバック補正量DFi_subを算出する際の作動について説明すると、ＣＰＵ７１は図１３にフローチャートにより示した「サブフィードバック補正量DFi_subの計算」ルーチン１３００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１３００の処理を開始し、まず、ステップ１３０５にて、サブフィードバック条件が成立しているか否かを判定する。サブフィードバック条件は、例えば、前述したステップ１１２５（及び、ステップ１２０５）でのメインフィードバック条件に加え、機関の冷却水温THWが前記第１所定温度よりも高い第２所定温度以上のときに成立する。
【０１７０】
いま、サブフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１３０５にて「Ｙｅｓ」と判定してステップ１３１０に進み、前記(2)式に従って、下流側目標値Voxs_refから現時点の下流側空燃比センサ６７の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
【０１７１】
次に、ＣＰＵ７１はステップ１３１５に進んで、前記出力偏差量DVoxsをローパスフィルタＡ９によりローパスフィルタ処理してローパスフィルタ通過後出力偏差量DVoxs_lowを取得し、続くステップ１３２０にて、下記(21)式に基づきローパスフィルタ通過後出力偏差量DVoxs_lowの微分値DDVoxs_lowを求める。
DDVoxs_low＝(DVoxs_low−DVoxs_low1)／dt  ・・・(21)
【０１７２】
前記(21)式において、DVoxs_low1は前回の本ルーチン実行時において後述するステップ１３３５にて設定（更新）されたローパスフィルタ通過後出力偏差量DVoxs_lowの前回値である。また、dtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。
【０１７３】
次いで、ＣＰＵ７１はステップ１３２５に進み、前記(4)式に従って、サブフィードバック補正量DFi_subを求めた後、ステップ１３３０に進んで、その時点におけるローパスフィルタ通過後出力偏差量の積分値SDVoxs_lowに前記ステップ１３１５にて求めたローパスフィルタ通過後出力偏差量DVoxs_lowを加えて、新たなローパスフィルタ通過後出力偏差量の積分値SDVoxs_lowを求め、続くステップ１３３５にて、前記ステップ１３１５にて求めたローパスフィルタ通過後出力偏差量DVoxs_lowをローパスフィルタ通過後出力偏差量DVoxs_lowの前回値DVoxs_low1として設定した後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１７４】
以上により、サブフィードバック補正量DFi_subが求められ、このサブフィードバック補正量DFi_subが前述した図１１のステップ１１４５により指令燃料噴射量Fi(k)に反映されることで上述したサブフィードバック制御に基づく機関の空燃比制御が実行される。
【０１７５】
一方、ステップ１３０５の判定時において、サブフィードバック条件が不成立であると、ＣＰＵ７１は同ステップ１３０５にて「Ｎｏ」と判定してステップ１３４０に進んでサブフィードバック補正量DFi_subの値を「０」に設定し、その後、ステップ１３９５に進んで本ルーチンを一旦終了する。このように、サブフィードバック条件が不成立であるときは、サブフィードバック補正量DFi_subを「０」としてサブフィードバック制御に基づく空燃比の補正を行わない。
【０１７６】
<鈍し制御定数の設定>
次に、前記鈍し制御定数ｎを設定・変更する際の作動について説明すると、ＣＰＵ７１は図１４にフローチャートにより示した「鈍し制御定数ｎの設定」ルーチン１４００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１４００の処理を開始し、まず、ステップ１４０２にて、メインフィードバック条件が成立しているか否かを判定する。このメインフィードバック条件は、先の図１１のステップ１１２５（及び、図１２のステップ１２０５）におけるメインフィードバック条件と同一である。
【０１７７】
いま、メインフィードバック条件が成立していて、且つ、パージ実行条件が成立したもの（図１０の時刻ｔ１を参照）として説明を続けると、ＣＰＵ７１はステップ１４０２にて「Ｙｅｓ」と判定してステップ１４０４に進み、パージ実行条件が成立中か否かを判定する。現時点は、パージ実行条件が成立した直後である。従って、ＣＰＵ７１はステップ１４０４にて「Ｙｅｓ」と判定してステップ１４０６に進み、「０」に維持されていたパージ実行フラグＸＰＧの値を「１」に変更する。
【０１７８】
次に、ＣＰＵ７１はステップ１４０８に進んで、パージ実行フラグＸＰＧの値が「０」から「１」に変化したか否かを判定する。現時点は、パージ実行フラグＸＰＧの値が「０」から「１」に変更された直後であるから、ＣＰＵ７１はステップ１４０８にて「Ｙｅｓ」と判定してステップ１４１０に進み、上記輸送遅れＬ１（図１０を参照）に相当するストローク数Ｍ１を、先の図１１のステップ１１１５にて決定されたストローク数ＭＡに設定する。
【０１７９】
次いで、ＣＰＵ７１はステップ１４１２に進んで、パージ開始時点からのストローク数をカウントするためのカウンタｚの値を「０」とする。続いて、ＣＰＵ７１はステップ１４１４に進み、カウンタｚが前記ストローク数Ｍ１以上であるか否かを判定する。
【０１８０】
現時点では、カウンタｚが「０」であるから、ＣＰＵ７１はステップ１４１４にて「Ｎｏ」と判定してステップ１４１６に進んで、鈍し制御定数ｎを前記値ｎ0に設定する。そして、ＣＰＵ７１はステップ１４９５に進み、本ルーチンを一旦終了する。以降、ＣＰＵ７１は、ステップ１４０８に進む毎に「Ｎｏ」と判定してステップ１４１８に進んでカウンタｚを「１」づつインクリメントするようになる。即ち、ステップ１４１８にてインクリメントされていくカウンタｚがストローク数Ｍ１に達しない限りにおいて、ＣＰＵ７１は、ステップ１４０２〜１４０８,１４１８,１４１４,１４１６の処理を繰り返して実行する。この結果、鈍し制御定数ｎは値ｎ0に維持される（図１０の時刻ｔ１〜ｔ２を参照）。
【０１８１】
カウンタｚがストローク数Ｍ１に達すると（図１０の時刻ｔ２を参照）、ＣＰＵ７１はステップ１４１４に進んだとき「Ｙｅｓ」と判定してステップ１４２０に進んで、鈍し制御定数ｎを値ｎ1（＜値ｎ0）に設定する。
【０１８２】
次に、ＣＰＵ７１はステップ１４２２に進んで、カウンタｚがストローク数Ｍ１に達した時点からの経過時間ＴＩＭＥ１を取得する。経過時間ＴＩＭＥ１は、電気制御装置７０に内蔵された図示しないタイマによって計時される。次いで、ＣＰＵ７１はステップ１４２４に進み、経過時間ＴＩＭＥ１が前記所定期間α１より短いか否かを判定する。
【０１８３】
現時点では、カウンタｚがストローク数Ｍ１に達した直後であるから、ＣＰＵ７１はステップ１４２４にて「Ｙｅｓ」と判定してステップ１４９５に進み、本ルーチンを一旦終了する。以降、経過時間ＴＩＭＥ１が所定期間α１より短い限りにおいて、ＣＰＵ７１はステップ１４０２〜１４０８,１４１８,１４１４〜１４２４の処理を繰り返し実行する。この結果、鈍し制御定数ｎは値ｎ1に維持される（図１０の時刻ｔ２〜ｔ３を参照）。
【０１８４】
経過時間ＴＩＭＥ１が所定期間α１に達すると（図１０の時刻ｔ３を参照）、ＣＰＵ７１はステップ１４２４に進んだとき「Ｎｏ」と判定して、上述した１４１６に進み、鈍し制御定数ｎを値ｎ1に代えて値ｎ0に設定するようになる。以降、パージ実行条件が成立中である限りにおいて、ＣＰＵ７１はステップ１４０２〜１４０８,１４１８,１４１４〜１４２４,１４１６の処理を繰り返し実行する。この結果、鈍し制御定数ｎは値ｎ0に維持される（図１０の時刻ｔ３〜ｔ４を参照）。
【０１８５】
次に、この状態にて、パージ実行条件が成立しなくなった場合（図１０の時刻ｔ４を参照）について説明する。この場合、ＣＰＵ７１はステップ１４０４に進んだとき「Ｎｏ」と判定してステップ１４２６以降の処理を実行するようになる。
【０１８６】
ここで、ステップ１４２６〜ステップ１４３６の処理は、上述したステップ１４０６〜ステップ１４１６にそれぞれ対応しているから、これらの詳細な説明は省略する。これにより、上述したパージ実行条件成立中の場合と同様、鈍し制御定数ｎは、カウンタｚが上記輸送遅れ時間Ｌ２（図１０を参照）に相当するストローク数Ｍ２に達するまでの間は値ｎ0に維持され（図１０の時刻ｔ４〜ｔ５を参照）、カウンタｚがストローク数Ｍ２に達した時点から前記所定期間α２が経過するまでの間は値ｎ2（＝ｎ1）に維持され（図１０の時刻ｔ５〜ｔ６を参照）、所定期間α２が経過した時点以降は値ｎ0に戻される（図１０の時刻ｔ５以降、並びに、時刻ｔ１以前を参照）。
【０１８７】
一方、ステップ１４０２の判定時において、メインフィードバック条件が不成立であると、ＣＰＵ７１は同ステップ１４０２にて「Ｎｏ」と判定して直ちにステップ１４９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック条件が不成立であるときは、鈍し制御定数ｎの値は、前回の本ルーチン実行時に設定された値に維持される。このように設定される鈍し制御定数ｎは、後述する基本燃料噴射量補正係数KFの計算に用いられる。
【０１８８】
<パージ補正係数の計算>
次に、前記パージ補正係数KPを計算する際の作動について説明すると、ＣＰＵ７１は図１５にフローチャートにより示した「パージ補正係数KPの計算」ルーチン１５００を、燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行するようになっている。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１５００の処理を開始し、まず、ステップ１５０５にて、パージ実行フラグＸＰＧの値が「１」であるか否かを判定する。
【０１８９】
先ず、パージ実行フラグＸＰＧの値が「０」である場合（即ち、パージ実行条件が成立していない場合。図１０の時刻ｔ１以前、及び時刻ｔ４以降を参照。）について説明する。この場合、ＣＰＵ７１はステップ１５０５にて「Ｎｏ」と判定してステップ１５１０に進み、目標パージ率ＰＧＲを「０」に設定する。これにより、ＶＳＶ４９は閉状態に維持される。
【０１９０】
次いで、ＣＰＵ７１はステップ１５１５に進んで、パージ補正係数KP(k)を「１」に設定した後、ステップ１５９５に進んで本ルーチンを一旦終了する。このように、パージ実行条件が成立していない場合、パージ補正係数KP(k)は「１」に維持される。このパージ補正係数KP(k)の値（＝１）は、上述したように、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【０１９１】
次に、パージ実行フラグＸＰＧの値が「１」である場合（即ち、パージ実行条件が成立している場合。図１０の時刻ｔ１〜ｔ４を参照。）について説明する。この場合、ＣＰＵ７１はステップ１５０５にて「Ｎｏ」と判定してステップ１５２０に進み、テーブルMapＰＧＲ(Ga)に基づいて目標パージ率ＰＧＲを求める。これにより、ＶＳＶ４９は、実際のパージ率が現時点での吸入空気流量Gaに応じた目標パージ率ＰＧＲ（≠０）に一致するようにデューティ制御され、この結果、パージが実行される。
【０１９２】
続いて、ＣＰＵ７１はステップ１５２５に進んで、エバポガス濃度学習値の更新条件が成立したか否かを判定する。上述したように、エバポガス濃度学習値の更新は、パージ実行中において基本燃料噴射量補正係数KFの値が安定している定常運転状態において実行される必要がある。本例では、エバポガス濃度学習値の更新条件は、機関１０が所定の定常運転状態（例えば、運転速度NE、及びアクセルペダル操作量Accpの変動幅が現時点までの所定期間に亘って所定値以下の状態）にあって、パージ補正係数KP(k−ＭＡ)≠１であり、且つ、前記経過時間ＴＩＭＥ１（図１４のステップ１４２２を参照）が時間αz（≫α１）に達した時点（図１０では、時刻ｔ２から時間αzが経過した時点（即ち、時刻ｔ３〜ｔ４の或る時点））で成立する。ここで、時間αzは、基本燃料噴射量補正係数KFに乱れが発生してから基本燃料噴射量補正係数KFが十分に収束するまでに要する時間である。
【０１９３】
ステップ１５２５の判定において、エバポガス濃度学習値の更新条件が成立していない場合、ＣＰＵ７１はステップ１５２５にて「Ｎｏ」と判定してステップ１５４５に直ちに進み、先のステップ１５２０にて求められた目標パージ率ＰＧＲと、後述するステップ１５４０にて更新されているエバポガス濃度Cevaの最新値（エバポガス濃度学習値）と、前記目標空燃比abyfr(k)と、前記(12)式とに基づいてパージ補正係数KP(k)を計算する。このパージ補正係数KP(k)の値（０＜KP(k)≦１）は、上述したように、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
【０１９４】
一方、ステップ１５２５の判定において、エバポガス濃度学習値の更新条件が成立した場合、ＣＰＵ７１はステップ１５２５にて「Ｙｅｓ」と判定してステップ１５３０に進み、基本燃料噴射量補正係数記憶値KFmemを、後述するルーチンの実行によりバックアップＲＡＭ７４に記憶されている基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)のうち図１１のステップ１１０５にて推定・決定された筒内吸入空気量Mc(k)の値から選択された値に設定する。
【０１９５】
次いで、ＣＰＵ７１はステップ１５３５に進んで、前記基本燃料噴射量補正係数記憶値KFmemと、後述するルーチンにて計算されている基本燃料噴射量補正係数KF(k)の最新値と、ＲＡＭ７３に記憶されている現時点からＭＡストローク前のパージ補正係数KP(k−ＭＡ)と、図１１のステップ１１１０にて決定された非パージ時基本燃料噴射量Fbaseb0(k)と、前記(20)式に相当する式とに基づいてパージ余剰燃料量ΔFbaseを求める。
【０１９６】
そして、ＣＰＵ７１はステップ１５４０に進み、前記目標パージ率ＰＧＲと、前記筒内吸入空気量Mc(k)と、前記パージ余剰燃料量ΔFbaseと、前記(19)式とに基づいてエバポガス濃度Cevaを更新（即ち、エバポガス濃度学習値を更新）した後、前述のステップ１５４５に進む。
【０１９７】
このように、パージ補正係数KP(k)が計算・記憶されていき、ＲＡＭ７３に記憶されている現時点からＭＡストローク前のパージ補正係数KP(k−ＭＡ)が図１１のステップ１１２０にて使用されていく。加えて、パージ補正係数KP(k)の計算に使用されるエバポガス濃度学習値は、１回のパージ実行期間中において、エバポガス濃度学習値の更新条件が成立した場合に１回のみ更新される。
【０１９８】
<基本燃料噴射量補正係数の計算、及び記憶>
次に、前記基本燃料噴射量補正係数KFを計算する際の作動について説明すると、ＣＰＵ７１は図１６にフローチャートにより示した「基本燃料噴射量補正係数KFの計算」ルーチン１６００を、所定の演算周期Δｔ0（本例では、８msec）の経過毎に、繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ７１は前記ルーチン１６００の処理を開始し、まず、ステップ１６０５にて、メインフィードバック条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１６９５に直ちに進んで本ルーチンを一旦終了する。この場合、基本燃料噴射量補正係数KFの計算、及び基本燃料噴射量補正係数KFの値のバックアップＲＡＭ７４への記憶処理が実行されない。このメインフィードバック条件は、上記ステップ１１２５,１２０５,１４０２におけるメインフィードバック条件と同一である。
【０１９９】
いま、メインフィードバック条件が成立しているものとして説明を続けると、ＣＰＵ７１はステップ１６０５にて「Ｙｅｓ」と判定してステップ１６１０に進み、テーブルMapＭＢ(Mc(k),NE)に基づいてストローク数ＭＢを決定する。
【０２００】
次に、ＣＰＵ７１はステップ１６１５に進んで、図１２のステップ１２１０にて求められている検出空燃比abyfs(k)の最新値と、図１１のステップ１１１０にて使用された目標空燃比abyfr(k)の最新値と、ＲＡＭ７３に記憶されている現時点からＭＢストローク前の指令燃料噴射量Fi(k−ＭＢ)と、前記(15)式とに基づいて目標基本燃料噴射量Fbasetを求める。
【０２０１】
次いで、ＣＰＵ７１はステップ１６２０に進み、前記目標基本燃料噴射量Fbasetと、図１１のステップ１１２０にて求められている補正前基本燃料噴射量Fbaseb(k)の最新値と、前記(16)式とに基づいてローパスフィルタ処理前の基本燃料噴射量補正係数KFbを求める。
【０２０２】
続いて、ＣＰＵ７１はステップ１６２５に進んで、基本燃料噴射量補正係数KF(k−1)と、図１４のステップ１４１６,１４２０,１４３６,１４４０の何れかにて設定されている鈍し制御定数ｎの最新値と、前記ローパスフィルタ処理前の基本燃料噴射量補正係数KFbと、前記(18)式とに基づいて、前記ローパスフィルタ処理前の基本燃料噴射量補正係数KFbをローパスフィルタ処理して基本燃料噴射量補正係数KF(k)を求める。ここで、基本燃料噴射量補正係数KF(k−1)としては、前回の本ルーチン実行時において後述するステップ１６４０にて既に更新されている最新値を使用する。
【０２０３】
次に、ＣＰＵ７１はステップ１６３０に進んで、KF値記憶条件が成立したか否かを判定する。基本燃料噴射量補正係数KF値の記憶処理は、非パージ実行中において基本燃料噴射量補正係数KFの値が安定している定常運転状態において実行されることが好ましい。本例では、KF値記憶条件は、機関１０が所定の定常運転状態（例えば、運転速度NE、及びアクセルペダル操作量Accpの変動幅が現時点までの所定期間に亘って所定値以下の状態）にあって、パージ補正係数KP(k−ＭＡ)＝１であり、且つ、前記経過時間ＴＩＭＥ２（図１４のステップ１４４２を参照）が前記所定期間α２以上である場合（図１０では、時刻ｔ６以降）で成立する。
【０２０４】
いま、KF値記憶条件が成立しているものとすると、ＣＰＵ７１はステップ１６３０にて「Ｙｅｓ」と判定してステップ１６３５に進んで、前記筒内吸入空気量Mc(k)の最新値から選択されるKFmem(m)(m:1,2,3,4)の値を先のステップ１６２５にて求めた基本燃料噴射量補正係数KF(k)の値に更新し、同更新されたKFmem(m)の値をバックアップＲＡＭ７４の対応するメモリに記憶した後、ステップ１６４０に進む。一方、ＣＰＵ７１はステップ１６３０にて「Ｎｏ」と判定した場合、ステップ１６３５の処理を実行することなく直ちにステップ１６４０に進む。
【０２０５】
ＣＰＵ７１はステップ１６４０に進むと、前記KF(k−1)の値を、今回の本ルーチン実行時において先のステップ１６２５で求められたKF(k)の値に更新し、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０２０６】
これにより、メインフィードバック条件が成立している場合において、所定の演算周期Δｔ0の経過毎に、基本燃料噴射量補正係数KF(k)の計算（更新）が実行されていく。そして、前述した図１１のルーチンのステップ１１３０にて、上述のように計算（更新）される基本燃料噴射量補正係数KF(k)の最新値が使用されることで、補正前基本燃料噴射量Fbaseb(k)が補正されていく。加えて、KF値記憶条件が成立している場合、基本燃料噴射量補正係数KF(k)の値のバックアップＲＡＭ７４への記憶処理が実行されていく。
【０２０７】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第１実施形態によれば、燃焼室内に吸入される筒内吸入空気量が一定であるという仮定のもと、指令燃料噴射量Fi(k−ＭＢ）と、上流側空燃比センサ６６による検出空燃比abyfs(k)の積は、実際の空燃比を目標空燃比abyfr(k)とするために噴射指示すべき燃料の量である目標基本燃料噴射量Fbasetと、目標空燃比abyfr(k)の積に等しい、という関係から目標基本燃料噴射量Fbaset(＝(abyfs(k)／abyfr(k))・Fi(k−ＭＢ))が求められる。この目標基本燃料噴射量Fbasetを補正前基本燃料噴射量Fbaseb(k)で除した値KFb(＝Fbaset／Fbaseb(k))をディジタルフィルタである時定数τのローパスフィルタＡ１８ｄでローパスフィルタ処理して基本燃料噴射量補正係数KF(k)が求められる（図８を参照）。
【０２０８】
そして、この基本燃料噴射量補正係数KF(k)を補正前基本燃料噴射量Fbaseb(k)に乗じることで補正前基本燃料噴射量Fbaseb(k)が補正されていく（即ち、補正後基本燃料噴射量Fbaseが決定されていく）。従って、補正後基本燃料噴射量Fbaseが、空燃比を目標空燃比abyfrとするために噴射指示すべき燃料の量と一致する（近づく）ように決定されていき、この結果、メインフィードバック制御及びサブフィードバック制御とは別に基本燃料噴射量の誤差が迅速に補償されていく。
【０２０９】
加えて、ローパスフィルタＡ１８ｄの時定数τに比例する鈍し制御定数ｎは、通常、「時定数τが基本燃料噴射量の誤差の補償における迅速性を阻害しない範囲で可能な限り大きい値τ１となる」値ｎ0に設定される。一方、鈍し制御定数ｎは、空燃比に大きな乱れが発生し得る期間である、パージが開始された時点から輸送遅れ時間Ｌ１が経過した時点からの所定期間α１、及びパージが停止された時点から輸送遅れ時間Ｌ２が経過した時点からの所定期間α２だけ、値ｎ0よりも小さくされ、これにより時定数τが前記値τ１よりも小さくされる（図１０を参照）。この結果、通常は、上記基本燃料噴射量補正係数KF(k)による安定した基本燃料噴射量の補正が実現されるとともに、パージの開始・停止に伴って空燃比に大きな乱れが発生し得る場合、メインフィードバック制御による空燃比の急変に対する迅速な補償が阻害され難くなって、一時的なエミッションの排出量の増大を抑制することができる。
【０２１０】
（第２実施形態）
次に、本発明の第２実施形態に係る空燃比制御装置について説明する。この第２実施形態は、実際の空燃比の目標空燃比abyfrからの偏移をもたらす機関１０の運転状態の変化があった時点以降における所定期間に亘って鈍し制御定数ｎを変更することで前記ローパスフィルタＡ１８ｄの時定数τを小さくする点では第１実施形態と同じであるが、前記機関１０の運転状態の変化があった時点として、パージ時において吸入空気流量Gaが急変した時点を用いる点で第１実施形態と異なる。
【０２１１】
前述したように、目標パージ率ＰＧＲは、吸入空気流量が大きくなるほど大きくなるように決定される。従って、パージ時において吸入空気流量Gaが急変すると、目標パージ率ＰＧＲがステップ状に変化し、この結果、上記(12)式に従って設定されるパージ補正係数KPもステップ状に変化する。これにより、前述したパージの開始・停止の直後と同様、上記吸気通路でのエバポガスの分散等の影響により、燃焼室２５に吸入されるガスの実際のパージ率は、ステップ状に変化する目標パージ率ＰＧＲに或る遅れをもって追従する。
【０２１２】
従って、パージ補正係数KPには吸入空気流量Gaの急変後の短期間内において上記吸気通路でのエバポガスの分散に起因する誤差が含まれることになり、このことは、空燃比制御系における大きな外乱となる。以下、このことを、図１０に対応する図１７を参照しながら説明する。
【０２１３】
図１７は、パージ実行中であって、時刻ｔ１１以前において、(Ａ)に示すように、値Ga0に維持されていた吸入空気流量Gaが、時刻ｔ１１にて値Ga0から値Ga1（＞Ga0）に急増し、その後値Ga1に維持される場合における各種変数等の変化の一例を示したタイムチャートである。
【０２１４】
この例では、吸入空気流量Gaが急増する時刻ｔ１１以前において、(Ｇ)に示すように、空燃比Ａ／Ｆが目標空燃比abyfrに維持されていて、(Ｆ)に示すように、基本燃料噴射量補正係数KFが値KF2に維持されている。この値KF2の「１」に対する偏移量は、基本燃料噴射量の誤差の大きさに相当している。また、この例では、上記エバポガス濃度学習値が誤差を含んでいないものとする。
【０２１５】
この場合、（Ｃ）に示すように、吸入空気流量Gaに基づいて決定される目標パージ率ＰＧＲを使用して上記(12)式に従って設定されるパージ補正係数KP(k)は、時刻ｔ１１以前は、値Ga0に対応する値KP2に維持され、時刻ｔ１１以降は、値Ga1に対応する値KP3に維持される。
【０２１６】
従って、（Ｄ）に実線にて示すように、補正前基本燃料噴射量Fbasebの算出（従って、指令燃料噴射量Fiの算出）に使用されるパージ補正係数KP(k−ＭＡ)は、吸入空気流量Gaが急増した時刻ｔ１１からＭＡストロークに相当する輸送遅れ時間Ｌ３が経過した時刻ｔ１２にて値KP2から値KP3にステップ状に減少する。
【０２１７】
一方、(Ｄ)の一点鎖線は、図１０(Ｄ)と同様、前記必要パージ補正係数の変化を表している。この必要パージ補正係数は、時刻ｔ１２以降の短期間内において、上述した吸気通路でのエバポガスの分散等に起因して、ステップ状に減少したパージ補正係数KP(k−ＭＡ)に或る遅れをもって追従する。この例では、エバポガス濃度学習値が誤差を含んでいないから、必要パージ補正係数は、パージ補正係数KP(k−ＭＡ)の値そのもの（＝KP3）に収束していく。
【０２１８】
この結果、時刻ｔ１２の直後からの短期間、パージ補正係数KP(k−ＭＡ)は必要パージ補正係数よりも小さくなり、パージ補正係数KPに空燃比を目標空燃比abyfrよりもリーンとする方向の誤差が発生する。このことは、空燃比制御系における大きな外乱となる。
【０２１９】
これにより、(Ｇ)に示すように、時刻ｔ１２まで目標空燃比abyfrに維持されていた空燃比Ａ／Ｆが、時刻ｔ１２の直後からリーン方向へ偏移を開始する。この結果、(Ｆ)に示すように、時刻ｔ１２まで値KF2に維持されていた基本燃料噴射量補正係数KFが、時刻ｔ１２の直後から、大きくなる方向へ変化を開始する。
【０２２０】
この場合、第２実施形態の鈍し制御定数設定手段Ａ１９は、(Ｅ)に実線にて示すように、時刻ｔ１２から所定期間α３だけ鈍し制御定数ｎを値ｎ0から値ｎ3（＜ｎ0）に切換える。これにより、基本燃料噴射量補正係数KF、及び空燃比Ａ／Ｆは、(Ｆ)，(Ｇ)に実線にて示すように変化する。
【０２２１】
この結果、(Ｅ)，(Ｆ)，(Ｇ)に破線にて示される「鈍し制御定数ｎが前記値ｎ0に維持される場合」に比して、上述した図１０の時刻ｔ２の直後の場合と同じ理由により、空燃比Ａ／Ｆが時刻ｔ１２の直後からリーン方向へ一時的に大きく偏移する程度を小さくすることができる。
【０２２２】
このように、第２実施形態の鈍し制御定数設定手段Ａ１９は、パージが実行中であって、吸入空気流量Gaが急変した時点から輸送遅れ時間Ｌ３が経過した時点からの所定期間α３だけ、鈍し制御定数ｎを値ｎ0よりも小さくすることでローパスフィルタＡ１８ｄの時定数τを前記値τ１よりも小さくする。
【０２２３】
なお、前記所定期間α３は、上述した所定期間α１,α２と同様、空燃比Ａ／Ｆに乱れが発生してから空燃比Ａ／Ｆが目標空燃比abyfrに収束するまでに要する時間に設定され、本例では、鈍し制御定数ｎが値ｎ３の場合のローパスフィルタＡ１８ｄの時定数τの３倍に設定されている。
【０２２４】
（第２実施形態の実際の作動）
次に、第２実施形態に係る空燃比制御装置の実際の作動について説明する。この第２実施形態のＣＰＵ７１は、第１実施形態のＣＰＵ７１が実行する図１１〜図１６に示したルーチンのうち、図１４に示したルーチン以外のルーチンをそれぞれ実行するとともに、図１４のルーチンに代えて図１８にフローチャートにより示したルーチンを実行する。以下、第２実施形態に特有の図１８に示したルーチンについて説明する。
【０２２５】
ＣＰＵ７１は、図１８に示した「鈍し制御定数ｎの設定」ルーチンを燃料噴射気筒について燃料噴射開始時期（噴射指示開始時点）が到来する毎に、繰り返し実行する。従って、燃料噴射気筒について燃料噴射開始時期が到来すると、ＣＰＵ７１は前記ルーチン１８００の処理を開始し、まず、ステップ１８０５にて、メインフィードバック条件が成立しているか否かを判定する。このメインフィードバック条件は、図１４のステップ１４０２の条件と同一である。
【０２２６】
いま、メインフィードバック条件が成立していて、パージ実行中であって、且つ、吸入空気流量Gaが急変していないもの（図１７の時刻ｔ１１以前を参照）として説明を続ける。また、後述するステップに示すＸＡＴは、吸入空気流量Gaが急変したと判定された時点で「０」から「１」に変更される空気過渡判定フラグである。
【０２２７】
この場合、ＣＰＵ７１はステップ１８０５にて「Ｙｅｓ」と判定してステップ１８１０に進み、空気過渡判定フラグＸＡＴが「１」であるか否かを判定する。現時点は、吸入空気流量Gaが急変しておらず空気過渡判定フラグＸＡＴは「０」に維持されている。従って、ＣＰＵ７１はステップ１８１０にて「Ｎｏ」と判定してステップ１８１５に進み、現時点においてエアフローメータ６１により計測された吸入空気流量Ga(k)から前回の本ルーチン実行時において計測されていた吸入空気流量Ga(k−1)を減ずることにより吸入空気流量偏差ΔGaを求める。
【０２２８】
次に、ＣＰＵ７１はステップ１８２０に進んで、パージ実行フラグＸＰＧが「１」であるか否かを判定し、「Ｎｏ」と判定する場合、ステップ１８２５に進んで鈍し制御定数ｎを前記値ｎ0に設定した後、ステップ１８９５に進んで本ルーチンを一旦終了する。現時点では、パージ実行フラグＸＰＧの値は「１」であるから、ＣＰＵ７１はステップ１８２０にて「Ｙｅｓ」と判定してステップ１８３０に進み、前記吸入空気流量偏差ΔGaの絶対値が所定値βより大きいか否か、即ち、吸入空気流量Gaが急変したか否かを判定する。現時点では、吸入空気流量Gaが急変しておらず吸入空気流量偏差ΔGaの絶対値が所定値β以下である。従って、ＣＰＵ７１はステップ１８３０にて「Ｎｏ」と判定して前述のステップ１８２５に進む。以降、ステップ１８３０の条件が成立しない限りにおいて、ＣＰＵ７１は、ステップ１８０５,１８１０〜１８２０,１８３０,１８２５の処理を繰り返して実行する。この結果、鈍し制御定数ｎは値ｎ0に維持される（図１７の時刻ｔ１１以前を参照）。
【０２２９】
次に、吸入空気流量Gaが急変した場合（即ち、吸入空気流量偏差ΔGaの絶対値が所定値βより大きくなった場合、図１７の時刻ｔ１１を参照）について説明する。この場合、ＣＰＵ７１はステップ１８３０に進んだとき「Ｙｅｓ」と判定してステップ１８３５に進んで、空気過渡判定フラグＸＡＴの値を「０」から「１」に変更し、続くステップ１８４０以降の処理を実行する。ここで、ステップ１８４０〜ステップ１８８０の処理は、上述した図１４のステップ１４０８〜ステップ１４２４にそれぞれ対応しているから、これらの詳細な説明は省略する。以降、空気過渡判定フラグＸＡＴの値は「１」になっているから、ＣＰＵ７１はステップ１８１０に進むごとに「Ｙｅｓ」と判定し、ステップ１８１５〜ステップ１８３５の処理を実行することなく直ちにステップ１８４０以降の処理を実行するようになる。
【０２３０】
これにより、上述した図１４の場合と同様、鈍し制御定数ｎは、カウンタｚが上記輸送遅れ時間Ｌ３（図１７を参照）に相当するストローク数Ｍ３に達するまでの間は値ｎ0に維持され（図１７の時刻ｔ１１〜ｔ１２を参照）、カウンタｚがストローク数Ｍ３に達した時点から前記所定期間α３が経過するまでの間は値ｎ3に維持され（図１７の時刻ｔ１２〜ｔ１３を参照）、所定期間α３が経過した時点以降は値ｎ0に戻される（図１７の時刻ｔ１３以降を参照）。なお、カウンタｚがストローク数Ｍ３に達した時点から所定期間α３が経過した時点で、ＣＰＵ７１はステップ１８８０にて「Ｎｏ」と判定し、ステップ１８６０に進む前にステップ１８８５に進んで、空気過渡判定フラグＸＡＴの値を「１」から「０」に変更する。
【０２３１】
一方、ステップ１８０５の判定時において、メインフィードバック条件が不成立であると、ＣＰＵ７１は同ステップ１８０５にて「Ｎｏ」と判定して直ちにステップ１８９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック条件が不成立であるときは、鈍し制御定数ｎの値は、前回の本ルーチン実行時に設定された値に維持される。このように設定される鈍し制御定数ｎは、上述した図１６に示す基本燃料噴射量補正係数KFの計算に用いられる。
【０２３２】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第２実施形態によれば、ローパスフィルタＡ１８ｄの時定数τに比例する鈍し制御定数ｎは、空燃比に大きな乱れが発生し得る期間である、パージ時において吸入空気流量Gaが急変した時点から輸送遅れ時間Ｌ３が経過した時点からの所定期間α３だけ、前記値ｎ0よりも小さくされ、これにより時定数τが前記値τ１よりも小さくされる（図１７を参照）。この結果、通常は、上記基本燃料噴射量補正係数KF(k)による安定した基本燃料噴射量の補正が実現されるとともに、パージ時における吸入空気流量Gaの急変に伴って空燃比に大きな乱れが発生し得る場合、メインフィードバック制御による空燃比の急変に対する迅速な補償が阻害され難くなって、一時的なエミッションの排出量の増大を抑制することができる。
【０２３３】
（第３実施形態）
次に、本発明の第３実施形態に係る空燃比制御装置について説明する。この第３実施形態は、その機能ブロック図である図１９に示すように、図５に機能ブロック図が示される上記第１実施形態に対して、鈍し制御定数設定手段Ａ１９に代えて演算周期設定手段Ａ２０を使用する点で異なる。
【０２３４】
より具体的に述べると、前述のように、ローパスフィルタＡ１８ｄの時定数τは、前述の鈍し制御定数ｎと、ローパスフィルタＡ１８ｄによる基本燃料噴射量補正係数KFに対するローパスフィルタ処理が行われる周期（即ち、「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期、前記演算周期Δｔ）の積に比例する。
【０２３５】
第１実施形態は、演算周期Δｔである図１６に示した「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期を前記演算周期Δｔ0に維持し、鈍し制御定数ｎの値を値ｎ0から変更することでローパスフィルタＡ１８ｄの時定数τを値τ１から変更していた。
【０２３６】
これに対し、第３実施形態は、鈍し制御定数ｎの値を値ｎ0に維持し、演算周期Δｔである「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期を前記演算周期Δｔ0から変更することでローパスフィルタＡ１８ｄの時定数τを値τ１から変更する。
【０２３７】
この相違点に基づき、第３実施形態のＣＰＵ７１は、第１実施形態のＣＰＵ７１が実行する図１１〜図１６に示したルーチンのうち、図１１〜図１３、及び図１５に示したルーチンをそれぞれ実行するとともに、図１４、図１６のルーチンに代えて図１４、図１６のルーチンにそれぞれ対応する図２０、図２１にフローチャートにより示したルーチンをそれぞれ実行する。なお、図２０、及び図２１において、図１４、及び図１６に示したステップと同一のステップについては図１４、及び図１６のステップ番号と同一のステップ番号を付している。以下、第３実施形態に特有の図２０、及び図２１に示したルーチンについて、順に説明する。
【０２３８】
図２０に示した「演算周期Δｔの設定」ルーチンは、後述する図２１に示す「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期である演算周期Δｔを設定・変更するためのルーチンである。図２０に示したルーチンは、ステップ２０１６,２０３６にて演算周期Δｔを演算周期Δｔ0に設定する点と、ステップ２０２０にて演算周期Δｔを演算周期Δｔ1（＜Δｔ0）に設定する点と、ステップ２０４０にて演算周期Δｔを演算周期Δｔ2（＝Δｔ1）に設定する点とを除き図１４に示したルーチンと同じであるので、ここではその詳細な説明を省略する。
【０２３９】
図２１に示した「基本燃料噴射量補正係数KFの計算」ルーチンは、前述の図２０のステップ２０１６,２０２０,２０３６,２０４０の何れかにて設定されている演算周期Δｔの経過毎に繰り返し実行される。このルーチンは、ステップ２１２５にて、前記(18)式において使用される鈍し制御定数ｎとして、前記値ｎ0（一定）を使用する点を除き図１６に示したルーチンと同じであるので、ここではその詳細な説明を省略する。
【０２４０】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第３実施形態によれば、ローパスフィルタＡ１８ｄの時定数τに比例する演算周期Δｔは、通常、「時定数τが基本燃料噴射量の誤差の補償における迅速性を阻害しない範囲で可能な限り大きい値τ１となる」演算周期Δｔ0に設定される。一方、演算周期Δｔは、空燃比に大きな乱れが発生し得る期間である、パージが開始された時点から輸送遅れ時間Ｌ１が経過した時点からの所定期間α１、及びパージが停止された時点から輸送遅れ時間Ｌ２が経過した時点からの所定期間α２だけ、演算周期Δｔ0よりも短くされ、これにより時定数τが前記値τ１よりも小さくされる（図１０を参照）。この結果、第１実施形態と同じ効果を奏する。
【０２４１】
（第４実施形態）
次に、本発明の第４実施形態に係る空燃比制御装置について説明する。この第４実施形態は、前記第３実施形態と同様に、鈍し制御定数ｎの値を値ｎ0から変更することに代えて演算周期Δｔである「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期を前記演算周期Δｔ0から変更することでローパスフィルタＡ１８ｄの時定数τを値τ１から変更する点で第２実施形態と異なる。
【０２４２】
この相違点に基づき、第４実施形態のＣＰＵ７１は、第２実施形態のＣＰＵ７１が実行する図１１〜図１３、図１５、図１６、及び図１８に示したルーチンのうち、図１１〜図１３、及び図１５に示したルーチンをそれぞれ実行するとともに、図１６のルーチンに代えて第３実施形態のＣＰＵ７１が実行する上述した図２１に示したルーチンを実行し、図１８のルーチンに代えて図２２にフローチャートにより示したルーチンを実行する。なお、図２２において、図１８に示したステップと同一のステップについては図１８のステップ番号と同一のステップ番号を付している。以下、第４実施形態に特有の図２２に示したルーチンについて、説明する。
【０２４３】
図２２に示した「演算周期Δｔの設定」ルーチンは、図２１に示す「基本燃料噴射量補正係数KFの計算」ルーチンの実行周期である演算周期Δｔを設定・変更するためのルーチンである。図２２に示したルーチンは、ステップ２２２５,２２６０にて演算周期Δｔを演算周期Δｔ0に設定する点と、ステップ２２７０にて演算周期Δｔを演算周期Δｔ3（＜Δｔ0）に設定する点とを除き図１８に示したルーチンと同じであるので、ここではその詳細な説明を省略する。
【０２４４】
以上、説明したように、本発明による内燃機関の空燃比制御装置の第４実施形態によれば、ローパスフィルタＡ１８ｄの時定数τに比例する演算周期Δｔは、通常、第３実施形態と同様、演算周期Δｔ0に設定される。一方、演算周期Δｔは、空燃比に大きな乱れが発生し得る期間である、パージ時において吸入空気流量Gaが急変した時点から輸送遅れ時間Ｌ３が経過した時点からの所定期間α３だけ、演算周期Δｔ0よりも短くされ、これにより時定数τが前記値τ１よりも小さくされる（図１７を参照）。この結果、第２実施形態と同じ効果を奏する。
【０２４５】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１実施形態においては、図１４のステップ１４２０,１４４０で、鈍し制御定数ｎとして使用される値ｎ1と値ｎ2が等しい値とされているが、値ｎ1と値ｎ2を異ならせてもよい。同様に、第３実施形態においては、図２０のステップ２０２０,２０４０で、演算周期Δｔとして使用される演算周期Δｔ1と演算周期Δｔ2が等しい値とされているが、演算周期Δｔ1と演算周期Δｔ2を異ならせるように構成してもよい。
【０２４６】
また、上記第１、第３実施形態においては、ローパスフィルタＡ１８ｄの時定数τを値τ１から小さくする期間である所定期間α１を一定としているが、パージ開始時点でのパージ補正係数KP(k)の変動幅に応じて所定期間α１を変更してもよい。同様に、上記第１、第３実施形態においては、パージ停止時点でのパージ補正係数KP(k)の変動幅に応じて所定期間α２を変更してもよい。更には、上記第２、第４実施形態においては、吸入空気流量Gaが急変した時点でのパージ補正係数KP(k)の変動幅に応じて所定期間α３を変更してもよい。
【０２４７】
また、上記各実施形態においては、パージが開始・停止された時点、又はパージ時において吸入空気流量Gaが急変した時点から輸送遅れ時間ＬＡが経過した時点から所定期間に亘って、ローパスフィルタＡ１８ｄの時定数τを値τ１から小さくするように構成したが、パージが開始・停止された時点、及びパージ時において吸入空気流量Gaが急変した時点からの所定期間に亘って、ローパスフィルタＡ１８ｄの時定数τを値τ１から小さくするように構成してもよい。
【０２４８】
また、上記各実施形態においては、輸送遅れ時間ＬＡに相当するストローク数ＭＡを筒内吸入空気量Mcに基づいて求め、輸送遅れ時間ＬＡの経過をストローク数がＭＡ回に達したことで判定しているが、輸送遅れ時間ＬＡそのものを機関１０の運転状態（例えば、筒内吸入空気量Mcと、運転速度NE等）に基づいて求めてもよい。
【０２４９】
また、上記第２、第４実施形態においては、図１８（図２２）のステップ１８３０において吸入空気流量Gaが急変したか否かを判定する場合に吸入空気流量偏差ΔGaと比較される前期所定値βを一定値としているが、機関１０の運転状態（例えば、エバポガス濃度学習値）に応じて所定値βを変更するように構成してもよい。
【０２５０】
また、上記各実施形態においては、補正前基本燃料噴射量Fbasebの算出に使用される現時点からＭＡストローク前のパージ補正係数KP（k−ＭＡ)についての値ＭＡ（輸送遅れ時間ＬＡに相当する値）を、図６に示すテーブルMapＭＡ（Mc(k)）に基づいて求めているが、値ＭＡを所定の一定値としてもよい。
【０２５１】
また、上記各実施形態においては、基本燃料噴射量補正係数KFを求める際に使用される現時点からＭＢストローク前の指令燃料噴射量Fi(k−ＭＢ)についての値ＭＢ（遅れ時間ＬＢに相当する値）を、図７に示すテーブルMapＭＢ（Mc(k),NE）に基づいて求めているが、値ＭＢを所定の一定値としてもよい。
【０２５２】
また、上記各実施形態においては、図８（図１６、及び図２１のルーチン）に示すように、基本燃料噴射量補正係数設定手段Ａ１８に備えられたローパスフィルタＡ１８ｄは、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−ＭＢ)、及び補正前基本燃料噴射量Fbaseb(k)の各値そのものからローパスフィルタ処理前基本燃料噴射量補正係数KFb(＝(abyfs(k)・Fi(k−ＭＢ))／(abyfr(k)・Fbaseb(k)))を求め、同ローパスフィルタ処理前基本燃料噴射量補正係数KFbをローパスフィルタＡ１８ｄによりローパスフィルタ処理することで基本燃料噴射量補正係数KFを求めるように構成したが、これに代えて、検出空燃比abyfs(k)、指令燃料噴射量Fi(k−ＭＢ)、及び補正前基本燃料噴射量Fbaseb(k)をローパスフィルタＡ１８ｄによりそれぞれ各別にローパスフィルタ処理した後の各値を用いて基本燃料噴射量補正係数KFを求めるようにしてもよい。
【０２５３】
また、上記各実施形態においては、図８に示すように、今回の検出空燃比abyfs(k)、現時点からＭＢストローク前の指令燃料噴射量Fi(k−ＭＢ)、今回の目標空燃比abyfr(k)、及び今回の補正前基本燃料噴射量Fbaseb(k)に基づいて基本燃料噴射量補正係数KFを求めているが、今回の検出空燃比abyfs(k)、現時点からＭＢストローク前の指令燃料噴射量Fi(k−ＭＢ)、現時点からＭＢストローク前の目標空燃比abyfr(k−ＭＢ)、及び現時点からＭＢストローク前の補正前基本燃料噴射量Fbaseb(k−ＭＢ)に基づいて基本燃料噴射量補正係数KFを求めるように構成してもよい。
【０２５４】
また、上記実施形態においては、メインフィードバック制御において、上流側空燃比センサ６６による今回の検出空燃比abyfs(k)から現時点からＭＢストローク前の目標空燃比abyfr(k−ＭＢ)を減じた値に基づいてメインフィードバック補正量DFi_mainを求めているが、現時点からＭＢストローク前の筒内吸入空気量Mc(k−ＭＢ)を現時点からＭＢストローク前の目標空燃比abyfr(k−ＭＢ)で除した値である現時点からＭＢストローク前の目標筒内燃料供給量Fcr(k−ＭＢ)から、現時点からＭＢストローク前の筒内吸入空気量Mc(k−ＭＢ)を現時点での検出空燃比abyfs(k)で除した値である現時点からＭＢストローク前の実際の筒内燃料供給量Fc(k−ＭＢ)を減じた値である筒内燃料供給量偏差DFcに基づいてメインフィードバック補正量DFi_mainを求めるように構成してもよい。
【０２５５】
また、上記各実施形態においては、パージを行うための蒸発燃料処理機構が備えられていたが、本発明は、蒸発燃料処理機構が備えられていない内燃機関にも適用される。この場合、例えば、吸入空気流量Gaが急変したと判定された時点（例えば、図１８のステップ１８３０の条件が成立した時点）から所定期間に亘ってローパスフィルタＡ１８ｄの時定数τを値τ１から小さくするように構成してもよい。
【０２５６】
これにより、エアフローメータ６１により計測される吸入空気流量Gaが、ステップ状に変化する真の吸入空気流量に応答遅れをもって追従することに基づく空燃比制御系における大きな外乱が発生した場合であっても、一時的なエミッションの排出量の増大を抑制することができる。
【図面の簡単な説明】
【０２５７】
【図１】本発明の第１実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。
【図２】図１に示したエアフローメータの出力電圧と計測された吸入空気流量との関係を示したグラフである。
【図３】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図５】図１に示した空燃比制御装置が空燃比フィードバック制御を実行する際の機能ブロック図である。
【図６】図１に示したＣＰＵが参照する、筒内吸入空気量と、輸送遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。
【図７】図１に示したＣＰＵが参照する、運転速度及び筒内吸入空気量と、遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。
【図８】図５に示した基本燃料噴射量補正係数設定手段が基本燃料噴射量補正係数を設定する際の機能ブロック図である。
【図９】計算された基本燃料噴射量補正係数が筒内吸入空気量に応じて分類されてバックアップＲＡＭのメモリに記憶されている様子を示した図である。
【図１０】図１に示した空燃比制御装置が空燃比フィードバック制御を実行する際の各種変数等の変化の一例を示したタイムチャートである。
【図１１】図１に示したＣＰＵが実行する指令燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが実行するメインフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１３】図１に示したＣＰＵが実行するサブフィードバック補正量を計算するためのルーチンを示したフローチャートである。
【図１４】図１に示したＣＰＵが実行する鈍し制御定数を設定するためのルーチンを示したフローチャートである。
【図１５】図１に示したＣＰＵが実行するパージ補正係数を計算するためのルーチンを示したフローチャートである。
【図１６】図１に示したＣＰＵが実行する基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。
【図１７】本発明の第２実施形態に係る空燃比制御装置が空燃比フィードバック制御を実行する際の各種変数等の変化の一例を示したタイムチャートである。
【図１８】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが実行する鈍し制御定数を設定するためのルーチンを示したフローチャートである。
【図１９】本発明の第２実施形態に係る空燃比制御装置が空燃比フィードバック制御を実行する際の機能ブロック図である。
【図２０】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが実行する演算周期を設定するためのルーチンを示したフローチャートである。
【図２１】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが実行する基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。
【図２２】本発明の第４実施形態に係る空燃比制御装置のＣＰＵが実行する演算周期を設定するためのルーチンを示したフローチャートである。
【符号の説明】
【０２５８】
１０…内燃機関、２５…燃焼室、３９…インジェクタ、４８…パージ流路、４９…パージ制御弁（ＶＳＶ）、５１…エキゾーストマニホールド、５３…三元触媒（第１触媒）、６６…上流側空燃比センサ、６７…下流側空燃比センサ、７０…電気制御装置、７１…ＣＰＵ、７４…バックアップＲＡＭ
【図１】
2007077869.tif 000003
【図２】
2007077869.tif 000004
【図３】
2007077869.tif 000005
【図４】
2007077869.tif 000006
【図５】
2007077869.tif 000007
【図６】
2007077869.tif 000008
【図７】
2007077869.tif 000009
【図８】
2007077869.tif 000010
【図９】
2007077869.tif 000011
【図１０】
2007077869.tif 000012
【図１１】
2007077869.tif 000013
【図１２】
2007077869.tif 000014
【図１３】
2007077869.tif 000015
【図１４】
2007077869.tif 000016
【図１５】
2007077869.tif 000017
【図１６】
2007077869.tif 000018
【図１７】
2007077869.tif 000019
【図１８】
2007077869.tif 000020
【図１９】
2007077869.tif 000021
【図２０】
2007077869.tif 000022
【図２１】
2007077869.tif 000023
【図２２】
2007077869.tif 000024