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