(57)【要約】【課題】空燃比フィードバック補正値の積分項に関する学習処理が作用角の領域毎に行なわれる場合において、作用角センサ異常時も、空燃比を目標空燃比近傍に維持すること。【解決手段】可変動弁機構を備え、吸入空気量が吸気弁の作用角の調整により調整される。作用角の作動範囲が小領域と大領域の２領域に区分され、領域毎に、フィードバック補正値Vafsfbの積分項に関する学習値（LearnL，LearnS）が個別に設定される。作用角センサの検出値が含まれる領域（選択領域）について学習値が個別に更新される。フィードバック補正値Vafsfbの算出に使用される制御用学習値Learnが、LearnL，LearnSを上記検出値に基づいて補間して計算される。作用角センサ異常時は、可変動弁機構への通電をＯＦＦして吸気弁の作用角が固定され、「選択領域」が小領域に固定され、制御用学習値Learnが、LearnL，LearnSを作用角の最小値Tminに基づいて補間して計算される。【選択図】  図１０
2009228498.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する内燃機関の吸気弁の最大リフト量、及び／又は前記吸気弁が開状態となるクランク角度範囲を変更する可変動弁機構と、
前記最大リフト量及び／又は前記クランク角度範囲を検出値として検出する検出手段と、
前記検出手段による検出値に基づいて前記可変動弁機構を制御して前記最大リフト量及び／又は前記クランク角度範囲を調整することで、前記内燃機関の燃焼室に吸入される空気量を制御する第１空気量制御手段と、
前記内燃機関の排気通路に配設されて排ガスの空燃比に応じた値を出力する空燃比センサと、
前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する積分値算出手段と、
前記検出手段による検出値に基づいて、前記最大リフト量及び／又は前記クランク角度範囲のとりえる範囲を区分して得られる２以上の領域のうちで前記検出値が含まれる領域を選択領域として選択する選択手段と、
前記偏差積分値に基づく値を用いて前記偏差積分値に基づく値の定常的な成分を表す学習値を前記領域毎に算出・更新するとともに前記更新による学習値の変化量に相当する分を前記偏差積分値に基づく値から差し引く学習処理を、前記選択領域について行う学習手段と、
前記選択領域を含む２つの領域についてのそれぞれの学習値を前記検出手段による検出値に基づいて補間することで前記燃焼室内の混合気の空燃比を制御するための制御用学習値を算出する制御用学習値算出手段と、
前記偏差積分値と前記制御用学習値とに少なくとも基づいて前記空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、
前記フィードバック補正値に基づいて前記空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記検出手段の異常を検出する異常検出手段を備え、
前記検出手段の異常が検出されている場合、
前記第１空気量制御手段は、前記最大リフト量及び／又は前記クランク角度範囲が固定されるように前記可変動弁機構を制御し、
前記選択手段は、前記選択領域として、前記検出値が含まれる領域に代えて前記最大リフト量及び／又は前記クランク角度範囲が最も小さい領域である最小領域を選択し、
前記制御用学習値算出手段は、前記検出値に代えて前記最小領域内の所定値を使用して前記補間を行う、
ように構成された内燃機関の空燃比制御装置。
【請求項２】
複数の気筒を有する内燃機関の吸気弁の最大リフト量、及び／又は前記吸気弁が開状態となるクランク角度範囲を変更する可変動弁機構と、
前記最大リフト量及び／又は前記クランク角度範囲を検出値として検出する検出手段と、
前記検出手段による検出値に基づいて前記可変動弁機構を制御して前記最大リフト量及び／又は前記クランク角度範囲を調整することで、前記内燃機関の燃焼室に吸入される空気量を制御する第１空気量制御手段と、
前記内燃機関の前記吸気弁の上流の吸気通路の開口面積を調整するスロットル弁と、
前記スロットル弁の開度を調整することで、前記空気量を前記最大リフト量及び／又は前記クランク角度範囲の最小値に対応する量よりも小さい範囲で制御する第２空気量制御手段と、
前記吸気弁の上流の吸気通路内の吸気圧力を取得する吸気圧力取得手段と、
前記内燃機関の排気通路に配設されて排ガスの空燃比に応じた値を出力する空燃比センサと、
前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する積分値算出手段と、
前記検出手段による検出値と前記吸気圧力とに基づいて、前記吸気圧力が大気圧力よりも低い所定圧力以上の場合に前記最大リフト量及び／又は前記クランク角度範囲のとりえる範囲を区分して得られる２以上の領域のうちで前記検出値が含まれる領域を選択領域として選択し、前記吸気圧力が前記所定圧力未満の場合に前記２以上の領域のうちで前記最大リフト量及び／又は前記クランク角度範囲が最も大きい最大領域を前記選択領域として選択する選択手段と、
前記偏差積分値に基づく値を用いて前記偏差積分値に基づく値の定常的な成分を表す学習値を前記領域毎に算出・更新するとともに前記更新による学習値の変化量に相当する分を前記偏差積分値に基づく値から差し引く学習処理を、前記選択領域について行う学習手段と、
前記吸気圧力が前記所定圧力以上の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記検出手段による検出値に基づいて補間することで前記燃焼室内の混合気の空燃比を制御するための制御用学習値を算出し、前記吸気圧力が前記所定圧力未満の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記最大領域内の所定値に基づいて補間することで前記制御用学習値を算出する制御用学習値算出手段と、
前記偏差積分値と前記制御用学習値とに少なくとも基づいて前記空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、
前記フィードバック補正値に基づいて前記空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記検出手段の異常を検出する異常検出手段を備え、
前記検出手段の異常が検出されている場合、
前記第１空気量制御手段は、前記最大リフト量及び／又は前記クランク角度範囲が固定されるように前記可変動弁機構を制御し、
前記選択手段は、前記吸気圧力が前記所定圧力以上の場合、前記選択領域として、前記検出値が含まれる領域に代えて前記最大リフト量及び／又は前記クランク角度範囲が最も小さい領域である最小領域を選択し、
前記制御用学習値算出手段は、前記吸気圧力が前記所定圧力以上の場合、前記検出値に代えて前記最小領域内の所定値を使用して前記補間を行う、
ように構成された内燃機関の空燃比制御装置。
【請求項３】
複数の気筒を有する内燃機関の吸気弁の最大リフト量、及び／又は前記吸気弁が開状態となるクランク角度範囲を変更する可変動弁機構と、
前記最大リフト量及び／又は前記クランク角度範囲を検出値として検出する検出手段と、
前記検出手段による検出値に基づいて前記可変動弁機構を制御して前記最大リフト量及び／又は前記クランク角度範囲を調整することで、前記内燃機関の燃焼室に吸入される空気量を制御する第１空気量制御手段と、
前記内燃機関の前記吸気弁の上流の吸気通路の開口面積を調整するスロットル弁と、
前記スロットル弁の開度を調整することで、前記空気量を前記最大リフト量及び／又は前記クランク角度範囲の最小値に対応する量よりも小さい範囲で制御する第２空気量制御手段と、
前記吸気弁の上流の吸気通路内の吸気圧力を取得する吸気圧力取得手段と、
前記内燃機関の排気通路に配設されて排ガスの空燃比に応じた値を出力する空燃比センサと、
前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する積分値算出手段と、
前記検出手段による検出値と前記吸気圧力とに基づいて、前記吸気圧力が大気圧力よりも低い所定圧力以上の場合に前記最大リフト量及び／又は前記クランク角度範囲のとりえる範囲を区分して得られる２以上の領域のうちで前記検出値が含まれる領域を選択領域として選択し、前記吸気圧力が前記所定圧力未満の場合に前記２以上の領域のうちで前記最大リフト量及び／又は前記クランク角度範囲が最も大きい最大領域を前記選択領域として選択する選択手段と、
前記偏差積分値に基づく値を用いて前記偏差積分値に基づく値の定常的な成分を表す学習値を前記領域毎に算出・更新するとともに前記更新による学習値の変化量に相当する分を前記偏差積分値に基づく値から差し引く学習処理を、前記選択領域について行う学習手段と、
前記吸気圧力が前記所定圧力以上の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記検出手段による検出値に基づいて補間することで前記燃焼室内の混合気の空燃比を制御するための制御用学習値を算出し、前記吸気圧力が前記所定圧力未満の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記最大領域内の所定値に基づいて補間することで前記制御用学習値を算出する制御用学習値算出手段と、
前記偏差積分値と前記制御用学習値とに少なくとも基づいて前記空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、
前記フィードバック補正値に基づいて前記空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記内燃機関がアイドリング状態にあると判定される場合において、前記吸気圧力に基づいて前記最大リフト量及び／又は前記クランク角度範囲を推定値として推定する推定手段と、
前記検出手段の異常を検出する異常検出手段と、を備え、
前記検出手段の異常が検出されている場合、
前記第１空気量制御手段は、前記最大リフト量及び／又は前記クランク角度範囲が固定されるように前記可変動弁機構を制御し、
前記選択手段は、前記吸気圧力が前記所定圧力以上の場合、前記選択領域として、前記検出値が含まれる領域に代えて前記推定値が含まれる領域を選択し、
前記制御用学習値算出手段は、前記吸気圧力が前記所定圧力以上の場合、前記検出値に代えて前記推定値を使用して前記補間を行う、
ように構成された内燃機関の空燃比制御装置。
【請求項４】
請求項１又は請求項２に記載の内燃機関の空燃比制御装置において、
前記最小領域内の所定値は、前記最小領域の最小値である、内燃機関の空燃比制御装置。
【請求項５】
請求項２又は請求項３に記載の内燃機関の空燃比制御装置において、
前記最大領域内の所定値は、前記最大領域の最大値である、内燃機関の空燃比制御装置。
【請求項６】
請求項１乃至請求項５の何れか一項に記載の内燃機関の空燃比制御装置において、
前記可変動弁機構は、前記可変動弁機構への通電をＯＦＦすることで前記最大リフト量及び／又は前記クランク角度範囲が固定されるように構成されていて、
前記検出手段の異常が検出されている場合、前記第１空気量制御手段は、前記可変動弁機構への通電をＯＦＦするように構成された内燃機関の空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設されて排ガスの空燃比に応じた値を出力する空燃比センサの出力値に基づいて内燃機関の燃焼室内の混合気の空燃比を制御する内燃機関の空燃比制御装置に関する。以下、「燃焼室内の混合気の空燃比」を、単に「空燃比」と称呼し、「内燃機関」を、単に「機関」と称呼することもある。
【背景技術】
【０００２】
従来より、この種の空燃比制御装置として、例えば、特許文献１に開示されたものが知られている。この空燃比制御装置では、排気通路に配設された触媒の上下流に上流側空燃比センサ及び下流側空燃比センサがそれぞれ配設されている。下流側空燃比センサの出力値と目標空燃比に相当する目標値との偏差を比例・積分・微分処理（ＰＩＤ処理）してフィードバック補正量が算出される。このフィードバック補正量で上流側空燃比センサの出力値を補正した値に基づいて、空燃比が目標空燃比になるようにインジェクタから噴射される燃料の量がフィードバック制御されるようになっている。
【特許文献１】特開２００５−１１３７２９号公報
【０００３】
一般に、インジェクタから噴射される燃料の量を決定するために使用されるエアフローメータにより計測される吸入空気流量と実際の空気流量との差（エアフローメータのばらつき）、インジェクタに噴射指示される指令燃料噴射量と実際に噴射された燃料の量との差（インジェクタのばらつき）等（以下、これらを「燃料噴射量の誤差」と総称する。）が不可避的に発生する。
【０００４】
上記フィードバック補正量には、積分項（Ｉ項）の値、即ち、上記偏差を積算して更新されていく偏差積分値にフィードバックゲインを乗じた値が含まれている。これにより、上記「燃料噴射量の誤差」が発生していても、上述したフィードバック制御の実行により、「燃料噴射量の誤差」が積分項（偏差積分値に基づく値）により補償され得、この結果、空燃比を目標空燃比に一致・収束させることができる。換言すれば、積分項（或いは、偏差積分値）の値は、「燃料噴射量の誤差」の大きさを表す値となり得る。
【０００５】
特許文献１に記載された装置では、このような性格を有する積分項（或いは、偏差積分値）の学習処理が実行されるようになっている。具体的には、所定のタイミングが到来する毎に、積分項の値の定常的な成分（具体的には、積分項の値をローパスフィルタ処理した値）が学習値（積分項の値の定常的な成分を表す値）を更新するための更新値として取得される。その更新値はその時点でバックアップＲＡＭ（ＳＲＡＭ）に記憶されている学習値に積算されて学習値が更新される。そして、その更新値の分がその時点での積分項の値から差し引かれる。
【０００６】
このように、所定のタイミングが到来する毎に、積分項（或いは、偏差積分値）の定常的な成分が学習値に移し変えられていく。即ち、積分項の値（或いは、偏差積分値）と学習値の和（以下、「総和値」と称呼する。）が上記フィードバック補正量における実質的な積分項の値（或いは、実質的な偏差積分値）として機能する。換言すれば、特許文献１に記載された装置では、総和値に基づく（総和値を含む）フィードバック補正量に基づいて空燃比がフィードバック制御されるようになっている。
【発明の開示】
【０００７】
ところで、近年、吸気弁の最大リフト量、及び／又は吸気弁が開状態となるクランク角度範囲（以下、これらを総称して「作用角」と称呼する。）を変更する可変動弁機構を備えた多気筒内燃機関が開発されてきている。係る可変動弁機構を備えた多気筒内燃機関では、作用角を検出するセンサ（作用角センサ）が備えられている。アクセルペダル開度等に応じて作用角センサの検出値に基づいて作用角が調整されることで、吸気通路の開口面積が制御される。これにより、吸気通路に設けられたスロットル弁の開度制御を行うことなく（或いは、スロットル弁の開度制御を補助的に行いながら）、アクセルペダル開度等に応じて燃焼室に吸入される空気量（吸入空気量）が制御されるようになっている。
【０００８】
このような可変動弁機構を備えた多気筒内燃機関では、気筒間における実際の作用角のばらつき（気筒間作用角ばらつき）が不可避的に発生し得る。この気筒間作用角ばらつきに起因して、気筒間における吸気通路の実際の開口面積（従って、実際の吸入空気量）にもばらつきが発生し得る。この結果、気筒間における空燃比のばらつき（気筒間空燃比ばらつき）が発生し得る。
【０００９】
ここで、作用角がより小さい値に調整されるほど、上述した吸気通路の開口面積のばらつきの度合い（開口面積の比率のばらつき）が大きくなる。従って、作用角（従って、吸入空気量）が小さいほど、気筒間空燃比ばらつきの程度が大きくなる。気筒間空燃比ばらつきの程度が変化すると、各気筒から延びる排気通路の集合部よりも下流における排ガスの平均的な空燃比（以下、「平均排気空燃比」と称呼する。）が変化し得る。
【００１０】
一般に、上記空燃比センサは上記集合部よりも下流に配置されているから、上記空燃比センサは上記平均排気空燃比を検出する。従って、作用角（従って、吸入空気量）が異なると、空燃比センサの出力値（の収束値）が異なり、この結果、上記学習値（の収束値）も異なる。
【００１１】
以上のことから、作用角のとりえる範囲を２以上の領域に分けて扱い、上述した学習処理を領域毎に行うことが提案されてきている。具体的には、各領域についての学習値がそれぞれ個別に設定される。所定のタイミングが到来する毎に、上記２以上の領域のうちで作用角センサの検出値が含まれる領域が選択領域として選択され、積分項（或いは、偏差積分値）の定常的な成分が選択領域についての学習値に移し変えられていく。これにより、作用角の領域毎に学習値が個別に更新されていく。
【００１２】
そして、選択領域を含む２つの領域についてのそれぞれの学習値を作用角センサの検出値に基づいて補間して得られる学習値（制御用学習値）が、上記空燃比フィードバック制御に使用される。これにより、現在の作用角に対応する適切な学習値（＝制御用学習値）が空燃比フィードバック制御に常に使用され得るから、作用角が変化しても、空燃比を安定して目標空燃比近傍に維持することができる。
【００１３】
ところで、上述のように学習処理が作用角の領域毎に行なわれる場合において、作用角センサに異常が発生した場合（故障した場合）を考える。この場合、上記選択領域が正確に特定され得なくなり、真の選択領域とは異なる領域についての学習値が更新される事態が発生し得る。加えて、上記制御用学習値を得るための上記補間が正確になされ得なくなり、制御用学習値が現在の真の作用角に対応する適切な学習値とは異なる値に決定される事態が発生し得る。この結果、空燃比フィードバック制御が適切に実行され得ず、空燃比が安定して目標空燃比近傍に維持され得なくなるという問題が発生し得る。
【００１４】
本発明の目的は、上述のように学習処理が作用角の領域毎に行なわれる内燃機関の空燃比制御装置において、作用角センサに異常が発生した場合において、空燃比を極力安定して目標空燃比近傍に維持し得るものを提供することにある。
【００１５】
本発明に係る第１の空燃比制御装置は、複数の気筒を有する内燃機関の吸気弁の最大リフト量、及び／又は前記吸気弁が開状態となるクランク角度範囲（＝前記作用角）を変更する可変動弁機構と、前記作用角を検出値として検出する検出手段と、前記検出手段による検出値に基づいて前記可変動弁機構を制御して前記作用角を調整することで前記内燃機関の燃焼室に吸入される空気量を制御する第１空気量制御手段と、前記内燃機関の排気通路に配設されて排ガスの空燃比に応じた値を出力する空燃比センサと、前記空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する積分値算出手段と、前記検出手段による検出値に基づいて前記作用角のとりえる範囲を区分して得られる２以上の領域のうちで前記検出値が含まれる領域を選択領域として選択する選択手段と、前記偏差積分値に基づく値を用いて前記偏差積分値に基づく値の定常的な成分を表す学習値を前記領域毎に算出・更新するとともに前記更新による学習値の変化量に相当する分を前記偏差積分値に基づく値から差し引く学習処理を前記選択領域について行う学習手段と、前記選択領域を含む２つの領域についてのそれぞれの学習値を前記検出手段による検出値に基づいて補間することで前記燃焼室内の混合気の空燃比を制御するための制御用学習値を算出する制御用学習値算出手段と、前記偏差積分値と前記制御用学習値とに少なくとも基づいて前記空燃比を制御するためのフィードバック補正値を算出するフィードバック補正値算出手段と、前記フィードバック補正値に基づいて前記空燃比を前記目標空燃比に一致するようにフィードバック制御する空燃比制御手段とを備える。
【００１６】
ここにおいて、前記「空燃比センサ」は、例えば、排気通路に配設された触媒（三元触媒）の上流に配設された空燃比センサ（限界電流式の酸素濃度センサ）、触媒の下流に配設された空燃比センサ（濃淡電池式の酸素濃度センサ）等である。前記「偏差積分値に基づく値」は、例えば、偏差積分値そのもの、偏差積分値にフィードバックゲインを乗じた値（＝上記積分項）等である。
【００１７】
また、前記制御用学習値算出手段は、前記検出手段による検出値に基づいて補間係数を算出し、前記補間係数を用いて前記選択領域を含む２つの領域についてのそれぞれの学習値の重み付けを行うことで前記補間を行って前記制御用学習値を算出するように構成されてもよい。
【００１８】
また、前記フィードバック補正値算出手段は、前記偏差積分値と前記制御用学習値とに加えて（即ち、前記「偏差に相当する値」についての積分項に加えて）、前記「偏差に相当する値」についての比例項、及び／又は微分項にも基づいて、前記フィードバック補正値を算出してもよい。
【００１９】
上記第１の空燃比制御装置の特徴は、前記検出手段の異常を検出する異常検出手段を備え、前記検出手段の異常が検出されている場合、以下のように構成されたことにある。
【００２０】
即ち、前記第１空気量制御手段は、前記作用角が固定されるように前記可変動弁機構を制御する。具体的には、例えば、前記可変動弁機構は、前記可変動弁機構への通電をＯＦＦすることで前記作用角が固定されるように構成されていて、前記検出手段の異常が検出されている場合、前記第１空気量制御手段は、前記可変動弁機構への通電をＯＦＦするように構成され得る。これにより、検出手段による誤った検出値に基づく可変動弁機構の誤作動の発生が防止され得る。
【００２１】
加えて、前記選択手段は、前記選択領域として、前記検出値が含まれる領域に代えて前記作用角が最も小さい領域である最小領域を選択する。一般に、車両の動力源として内燃機関が使用される場合、作用角（従って、吸入空気量）が小さい状態の頻度が、作用角が大きい状態の頻度に比べて圧倒的に多い。加えて、一般に、フェールセーフの観点から、可変動弁機構では、作用角を小さくする方向のスプリング等による弾性力を常時受ける部材の位置を前記弾性力に抗して調整することで作用角が調整される構造が採用される。従って、作用角が固定されるように可変動弁機構が制御されても、前記弾性力により、或いは、吸気弁開弁時において前記部材が受ける反力（作用角を小さくする方向の力）により、作用角が小さくなる方向に徐々にシフトしていく可能性がある。以上のことから、検出手段の異常が検出されている場合において、実際の作用角が前記最小領域内にある可能性が非常に高い。上記構成は係る観点に基づく。これにより、検出手段の異常が検出されている場合において、真の選択領域とは異なる領域についての学習値が、適切な値とは異なる値に更新されていく事態が発生し難くなる。
【００２２】
加えて、前記制御用学習値算出手段は、前記検出値に代えて前記最小領域内の所定値を使用して前記補間を行う。ここで、前記「最小領域内の所定値」は、例えば、前記最小領域の最小値（＝前記作用角のとりえる範囲の最小値）である。これによれば、実際の作用角に近い値（＝最小領域内の所定値）を使用して前記補間が実行され得るから、制御用学習値が現在の真の作用角に対応する適切な学習値に近い値に算出され得る。従って、作用角センサに異常が発生した場合において、空燃比が極力安定して目標空燃比近傍に維持され得る。
【００２３】
本発明に係る第２の空燃比制御装置は、上記第１の空燃比制御装置に対して、以下の点が異なる。前記内燃機関の前記吸気弁の上流の吸気通路の開口面積を調整するスロットル弁と、前記スロットル弁の開度を調整することで前記空気量を前記作用角の最小値に対応する量よりも小さい範囲で制御する第２空気量制御手段と、前記吸気弁の上流の吸気通路内の吸気圧力を取得する吸気圧力取得手段とが備えられている。
【００２４】
加えて、上記第２の空燃比制御装置では、前記選択手段は、前記検出手段による検出値と前記吸気圧力とに基づいて、前記吸気圧力が大気圧力よりも低い所定圧力以上の場合に前記２以上の領域のうちで前記検出値が含まれる領域を選択領域として選択し、前記吸気圧力が前記所定圧力未満の場合に前記２以上の領域のうちで前記作用角が最も大きい最大領域を前記選択領域として選択するように構成される。また、前記制御用学習値算出手段は、前記吸気圧力が前記所定圧力以上の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記検出手段による検出値に基づいて補間することで前記燃焼室内の混合気の空燃比を制御するための制御用学習値を算出し、前記吸気圧力が前記所定圧力未満の場合に前記選択領域を含む２つの領域についてのそれぞれの学習値を前記最大領域内の所定値に基づいて補間することで前記制御用学習値を算出するように構成される。ここで、前記「最大領域内の所定値」は、例えば、前記最大領域の最大値（＝前記作用角のとりえる範囲の最大値）である。
【００２５】
加えて、上記第２の空燃比制御装置では、前記検出手段の異常が検出されている場合において、前記選択手段は、前記吸気圧力が前記所定圧力以上の場合に限り上記第１の空燃比制御装置と同様に、前記選択領域として、前記検出値が含まれる領域に代えて前記最小領域を選択する。即ち、前記吸気圧力が前記所定圧力未満の場合、前記検出手段の異常が検出されても、前記選択領域として前記最大領域が選択され続ける。また、前記検出手段の異常が検出されている場合において、前記制御用学習値算出手段は、前記吸気圧力が前記所定圧力以上の場合に限り上記第１の空燃比制御装置と同様に、前記検出値に代えて前記最小領域内の所定値を使用して前記補間を行う。即ち、前記吸気圧力が前記所定圧力未満の場合、前記検出手段の異常が検出されても、前記最大領域内の所定値を使用して前記補間が行われ続ける。
【００２６】
上述のように、作用角が小さい場合に上記「気筒間空燃比ばらつき」の程度が大きくなるのは、吸入空気量が吸気弁の開口面積により支配されていることに基づく。以下、このように、吸入空気量が吸気弁の開口面積により支配されている状態を「吸気弁律速状態」と称呼する。これに対し、作用角が小さい場合であっても、スロットル弁の開口面積が吸気弁の開口面積よりも更に小さいことで吸入空気量がスロットル弁の開口面積により支配されている場合を考える。以下、このように、吸入空気量がスロットル弁の開口面積により支配されている状態を「スロットル弁律速状態」と称呼する。一般に、スロットル弁は、各気筒から延びる吸気通路の集合部よりも上流の吸気通路に配置される。従って、「スロットル弁律速状態」では、上記「気筒間作用角ばらつき」が吸入空気量に与える影響が小さくなり、上記「気筒間空燃比ばらつき」の程度が小さくなる。このことは、「スロットル弁律速状態」では、上記「平均排気空燃比」が、実際の作用角にかかわらず、上記「気筒間空燃比ばらつき」の程度が小さくなる「作用角が大きい状態」での値に近くなることを意味する。従って、「スロットル弁律速状態」では、実際の作用角にかかわらず「作用角が大きい」と仮定して、選択領域を設定し、且つ、前記補間を実行することが好ましいと考えられる。また、スロットル弁の開度が小さいほど吸気圧力が小さくなる。従って、「スロットル弁律速状態」にあるか否かは、吸気圧力が大気圧力よりも低い所定圧力未満か否かにより判定され得る。
【００２７】
上述した第２の空燃比制御装置の構成は、係る知見に基づく。これによれば、前記検出手段の異常が検出されているか否かにかかわらず、上記「気筒間空燃比ばらつき」の程度が小さい「スロットル弁律速状態」において、学習値が更新されるべき領域（＝最大領域）についての学習値が更新され得、且つ、適切な補間がなされて制御用学習値が適切な値に算出され得る。従って、「スロットル弁律速状態」において、前記検出手段の異常が検出されているか否かにかかわらず、空燃比が安定して目標空燃比近傍に維持され得る。
【００２８】
本発明に係る第３の空燃比制御装置は、上記第２の空燃比制御装置に対して、以下の点が異なる。前記内燃機関がアイドリング状態にあると判定される場合において前記吸気圧力に基づいて前記作用角を推定値として推定する推定手段が備えられている。アイドリング状態では、作用角の変化に対する吸気圧力の変化量（感度）が大きいから、吸気圧力に基づいて作用角を精度良く推定することができる。従って、上記構成によれば、前記検出手段の異常が検出されているか否かにかかわらず、アイドリング状態が到来する毎に現在の作用角を精度良く推定することができる。
【００２９】
加えて、上記第３の空燃比制御装置では、前記検出手段の異常が検出されている場合において、前記選択手段は、前記吸気圧力が前記所定圧力以上の場合（に限り）、前記選択領域として、前記最小領域（上記第２の空燃比制御装置の場合）に代えて前記推定値が含まれる領域を選択する。また、前記検出手段の異常が検出されている場合において、前記制御用学習値算出手段は、前記吸気圧力が前記所定圧力以上の場合（に限り）、前記最小領域内の所定値（上記第２の空燃比制御装置の場合）に代えて前記推定値を使用して前記補間を行う。これは、検出手段の異常が検出されている場合において、最小領域内の所定値よりも上記作用角の推定値の方が、実際の作用角により近いであろうとの観点に基づく。
【発明を実施するための最良の形態】
【００３０】
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。この空燃比制御装置は、機関の燃料噴射量を制御する燃料噴射量制御装置でもある。
【００３１】
（第１実施形態）
図１は、本発明の第１実施形態に係る空燃比制御装置を４サイクル火花点火式多気筒内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００３２】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００３３】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００３４】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角及び吸気弁３２の最大リフト量を連続的に変更する可変動弁機構３３、可変動弁機構装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８、及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。
【００３５】
可変動弁機構３３は周知の構成の１つで構成されていて、吸気弁３２の最大リフト量が大きいほど、吸気弁３２が開状態となるクランク角度範囲（作用角）が大きくなる。即ち、最大リフト量を調整することで作用角が調整可能となっていて、作用角を調整することにより吸気通路の開口断面積が制御される。以下、吸気通路の開口断面積を「吸気開口面積」とも称呼する。
【００３６】
可変動弁機構３３では、フェールセーフの観点から、吸気弁３２の作用角（最大リフト量）を小さくする方向のスプリング等による弾性力を常時受ける部材が備えられ、その部材の位置を前記弾性力に抗してモータの駆動力等により調整することで作用角が調整され得るようになっている。
【００３７】
可変動弁機構３３では、可変動弁機構３３への通電をＯＦＦすることで作用角が固定され得るように構成されている。しかしながら、可変動弁機構３３への通電がＯＦＦされても、前記スプリングの弾性力により、或いは吸気弁３２の開弁時において前記部材が受ける反力（作用角を小さくする方向の力）により、作用角が小さくなる方向に徐々にシフトしていく可能性がある。
【００３８】
吸気系統４０は、吸気ポート３１に連通し同吸気ポート３１とともに吸気通路を形成するインテークマニホールドを含む吸気管４１、吸気管４１の端部に設けられたエアフィルタ４２、及び吸気管４１内にあって吸気開口面積を可変とするスロットルバルブ４３、スロットルバルブ４３のアクチュエータ４３ａを備えている。
【００３９】
排気系統５０は、排気ポート３４に連通したエキゾーストマニホールド５１、エキゾーストマニホールド５１に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された下流側触媒５４を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。
【００４０】
上流側触媒５３及び下流側触媒５４のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置である。各触媒は、触媒流入ガスがほぼ理論空燃比であるとき、ＨＣ，ＣＯなどの未燃ガスを酸化するとともに、窒素酸化物（ＮＯｘ）を還元する機能を有する。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃ガス及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア(CeO2)によってもたらされる。
【００４１】
一方、このシステムは、熱線式エアフローメータ６１、吸気温センサ６２、スロットルポジションセンサ６３、作用角センサ６４、クランクポジションセンサ６５、水温センサ６６、空燃比センサ６７、酸素濃度センサ６８、アクセル開度センサ６９、及び吸気管圧力センサ７１を備えている。
【００４２】
エアフローメータ６１は、吸気管４１内を流れる吸入空気の質量流量（吸入空気流量）Gaに応じた信号を出力するようになっている。吸気温センサ６２は、吸入空気の温度を検出し、吸気温度THAを表す信号を出力するようになっている。スロットルポジションセンサ６３は、スロットルバルブ４３の開度（スロットルバルブ開度）を検出し、スロットルバルブ開度TAを表す信号を出力するようになっている。
【００４３】
作用角センサ６４は、吸気弁３２の作用角（最大リフト量）を検出し、作用角Tを表す信号を出力するようになっている。クランクポジションセンサ６５は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、エンジン回転速度NEを表す。水温センサ６６は、内燃機関１０の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
【００４４】
空燃比センサ６７は、排気通路であって上流側触媒５３よりも上流側に配設されている。空燃比センサ６７は、所謂「限界電流式酸素濃度センサ」であって、上流側触媒５３に流入する排ガス中の空燃比を検出し、図２に示したように、検出した空燃比（検出空燃比）に応じた信号Vabyf(V)を出力するようになっている。
【００４５】
酸素濃度センサ６８は、排気通路であって上流側触媒５３よりも下流側であり下流側触媒５４よりも上流側に配設されている。酸素濃度センサ６８は、所謂「濃淡電池型の酸素センサ」である。図３に示したように、酸素濃度センサ６８は、上流側触媒５３から流出するガスの空燃比が理論空燃比よりもリッチ及びリーンのとき最大出力値max(V)及び最小出力値min(V)をそれぞれ出力し、上流側触媒５３から流出するガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の値（目標空燃比相当目標値Voxsref(V)）を出力するようになっている。
【００４６】
アクセル開度センサ６９は、運転者によって操作されるアクセルペダルＡＰの操作量Accpを表す信号を出力するようになっている。吸気管圧力センサ７１は、吸気通路におけるスロットルバルブ４３よりも下流且つ吸気弁３２よりも上流の圧力を検出し、吸気圧力Pmを表す信号を出力するようになっている。
【００４７】
電気制御装置８０は、互いにバスで接続されたＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、電源が投入された状態でデータを格納するとともに同格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等からなるマイクロコンピュータである。
【００４８】
インターフェース８５は、前記センサ６１〜６９，７１と接続され、ＣＰＵ８１にセンサ６１〜６９，７１からの信号を供給するとともに、ＣＰＵ８１の指示に応じて可変動弁機構３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９、及びスロットルバルブアクチュエータ４３ａに駆動信号を送出するようになっている。
【００４９】
（空燃比フィードバック制御の概要）
次に、上記のように構成された第１実施形態に係る空燃比制御装置（以下、「本装置」と称呼することもある。）による空燃比フィードバック制御の概要について説明する。本装置は、吸気開口面積（従って、燃焼室２５に吸入される吸入空気量）を、主として吸気弁３２の作用角の調整（吸気弁３２の開口面積の調整）により制御し、補助的にスロットルバルブ４３の開度調整により制御する。
【００５０】
また、本装置は、上流側触媒５３から流出するガスの空燃比が目標空燃比（＝理論空燃比）となるように機関に供給される混合気の空燃比（従って、上流側触媒５３に流入するガスの空燃比、以下、単に「空燃比」とも称呼する。）を制御する。
【００５１】
具体的には、本装置は、上流側触媒５３の下流に配設された酸素濃度センサ６８の出力値Voxs(V)と理論空燃比に相当する上記目標空燃比相当目標値Voxsref(V)（一定）との偏差についてＰＩＤ処理してフィードバック補正値（サブフィードバック補正量Vafsfb(％)）を求め、サブフィードバック補正量Vafsfbに基づいて（実際には、空燃比センサ６７の出力値Vabyf(V)にも基づいて）空燃比をフィードバック制御する。なお、酸素濃度センサ６８の出力値Voxsに基づく空燃比フィードバック制御を、特に「サブフィードバック制御」と呼ぶこともある。
【００５２】
また、本装置は、上記ＰＩＤ処理における積分項（Ｉ項）について、背景技術の欄に記載した「学習処理」を所定のタイミングが到来する毎に実行し、学習値を更新・記憶する。発明の開示の欄に記載したように、上記「吸気弁律速状態」において作用角の調整により吸入空気量を調整する本装置では、上記「気筒間作用角ばらつき」が不可避的に発生し得、この結果、上記「気筒間空燃比ばらつき」が発生し得る。
【００５３】
ここで、発明の開示の欄に記載したように、吸気弁３２の作用角が小さいほど「気筒間空燃比ばらつき」の程度が大きくなることに起因して、作用角（従って、吸入空気量）が異なると、上記「平均排気空燃比」が異なる。従って、作用角が異なると、空燃比センサ６７及び酸素濃度センサ６８（特に、酸素濃度センサ６８）の出力値（の収束値）が異なり、この結果、上記学習値（の収束値）も異なる。
【００５４】
以上のことから、本装置は、図４に示すように、作用角のとりえる範囲（最小値Tmin〜最大値Tmax）を、所定値T1で区分して小領域（前記「最小領域」に対応）と大領域（前記「最大領域」に対応）の２つの領域に分けて扱い、上述した学習処理を領域毎に行う。即ち、学習値が領域毎に個別に設定され、作用角センサ６４の現在の検出値Tが含まれる領域（「選択領域」）についての学習値が個別に更新されていく。
【００５５】
そして、本装置は、上記空燃比フィードバック制御に使用する学習値（制御用学習値）として、大・小領域についてのそれぞれの学習値を作用角センサ６４から得られる作用角T（検出値）に基づいて補間して得られる学習値を原則的に使用する。
【００５６】
一方、作用角センサ６４に異常が発生した場合（故障した場合）、本装置は、可変動弁機構３３への通電をＯＦＦして吸気弁３２の作用角を固定し、「選択領域」を小領域に固定し、且つ、制御用学習値として、作用角Tに代えて作用角の最小値Tminに基づいて大・小領域についてのそれぞれの学習値を補間して得られる学習値を使用する。以上が、本装置による空燃比フィードバック制御の概要である。
【００５７】
（実際の作動）
次に、上記のように構成された第１実施形態に係る空燃比制御装置の実際の作動について、電気制御装置８０のＣＰＵ８１が実行するルーチン（プログラム）をフローチャートにより示した図５〜図１１、並びに、図１２、図１３を参照しながら説明する。
【００５８】
ＣＰＵ８１は、図５に示した作用角の制御を行うルーチンを、任意の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、繰り返し実行するようになっている。従って、或る気筒（以下、「燃料噴射気筒」と称呼する。）のクランク角度が前記所定クランク角度になると、ＣＰＵ８１はステップ５００から処理を開始してステップ５０５に進み、作用角センサ６４が正常か否かを判定する。この判定は、例えば、作用角センサ６４に係わる電気配線の断線、ショート等の有無を検出することで行われる。
【００５９】
先ず、作用角センサ６４が正常であると判定された場合について説明する。この場合、ＣＰＵ８１はステップ５１０に進んで、アクセルペダル操作量Accpと、エンジン回転速度NEと、Accp,NEを引数とするテーブルMapTtとに基づいて、吸気弁３２の目標作用角Ttを決定する。図１２に示した実線は、エンジン回転速度NEが或る値で一定の場合においてテーブルMapTtに基づいて得られる、Accpと、Ttに相当する吸気開口面積と、の関係を示す。なお、図１２に示した一点鎖線は、エンジン回転速度NEが或る値で一定の場合における、Accpと、要求される（目標とされる）吸気開口面積（以下、「Accp相当値」と称呼する。）と、の関係を示す。
【００６０】
このように、AccpがAccp1以上の場合、目標作用角Ttは、Accpが増大するにつれて最小値Tminから増大する（ただし、最大値Tmaxを超えない）ように設定され、この結果、Ttに相当する吸気開口面積がAccp相当値と一致する。一方、AccpがAccp1未満の場合、目標作用角Ttは、最小値Tmin（一定）に設定され、Ttに相当する吸気開口面積がAccp相当値よりも大きくなる。
【００６１】
次いで、ＣＰＵ８１は、ステップ５１５に進み、作用角Tが目標作用角Ttと一致するように、可変動弁機構３３のアクチュエータ３３ａを制御し、ステップ５９５に進んで本ルーチンを一旦終了する。これにより、作用角が目標作用角Ttに一致するように調整される。
【００６２】
この結果、作用角センサ６４が正常の場合において、AccpがAccp1以上のとき、作用角の調整のみにより吸気開口面積がAccp相当値に一致するように調整され得、一方、AccpがAccp1未満のとき、作用角の調整のみでは吸気開口面積がAccp相当値にまで小さくされ得ない。
【００６３】
次に、作用角センサ６４が異常であると判定された場合について説明する。この場合、ＣＰＵ８１はステップ５２０に進んで、可変動弁機構３３のアクチュエータ３３ａへの通電をＯＦＦとする。これにより、吸気弁３２の作用角が固定され得、作用角センサ６４から得られる誤った作用角Tに基づく可変動弁機構３３の誤作動の発生が防止され得る。
【００６４】
また、ＣＰＵ８１は、図６に示したスロットルバルブの制御を行うルーチンを、図５のルーチンに続いて繰り返し実行するようになっている。ＣＰＵ８１はステップ６００から処理を開始してステップ６０５に進むと、上述した図５のステップ５０５と同様、作用角センサ６４が正常か否かを判定する。
【００６５】
先ず、作用角センサ６４が正常であると判定された場合について説明する。この場合、ＣＰＵ８１はステップ６１０に進み、アクセルペダル操作量AccpがAccp1以上であるか否かを判定する。そして、図１２に破線で示したように、「Ｙｅｓ」と判定される場合（Accp≧Accp1）、ＣＰＵ８１はステップ６１５に進んで、目標スロットルバルブ開度TAtを、「Accp相当値に定数αを加えた吸気開口面積」に相当する開度に設定し、「Ｎｏ」と判定される場合（Accp＜Accp1）、ＣＰＵ８１はステップ６２０に進んで、TAtを、「Accp相当値と等しい吸気開口面積」に相当する開度に設定する。
【００６６】
次いで、ＣＰＵ８１は、ステップ６２５に進み、スロットルバルブ開度TAが目標スロットルバルブ開度TAtと一致するように、スロットルバルブアクチュエータ４３ａを制御し、ステップ６９５に進んで本ルーチンを一旦終了する。これにより、スロットルバルブ開度が目標スロットルバルブ開度TAtに一致するように調整される。
【００６７】
これにより、作用角センサ６４が正常の場合、AccpがAccp1以上のとき、作用角の調整による吸気開口面積がスロットルバルブ開度の調整による吸気開口面積よりも小さくなる。この結果、吸入空気量が作用角（吸気弁３２の開口面積）により支配される状態（上述した「吸気弁律速状態」）となる。一方、AccpがAccp1未満のとき、逆に、スロットルバルブ開度の調整による吸気開口面積が作用角の調整による吸気開口面積よりも小さくなる。この結果、吸入空気量がスロットルバルブ開度（スロットルバルブ４３の開口面積）により支配される状態（上述した「スロットル弁律速状態」）となる。
【００６８】
換言すれば、作用角センサ６４が正常の場合、AccpがAccp1以上のときは「吸気弁律速状態」を利用して、吸入吸気量が、作用角の最小値Tminに相当する量以上の範囲にて、運転状態（Accp,NE）に基づいて要求される量に作用角の調整により調整され得る。一方、AccpがAccp1未満のときは「スロットル弁律速状態」を利用して、吸入空気量が、最小値Tminに相当する量未満の範囲にて、運転状態（Accp,NE）に基づいて要求される量にスロットルバルブ開度の調整により調整され得る。
【００６９】
次に、作用角センサ６４が異常であると判定された場合について説明する。この場合、ＣＰＵ８１は、AccpとAccp1との大小関係に関係なく常にステップ６２０に進んで、目標スロットルバルブ開度TAtを、「Accp相当値と等しい吸気開口面積」に相当する開度に設定する。これにより、上述のように、作用角センサ６４の異常に起因して吸気弁３２の作用角が固定されている状態において、「スロットル弁律速状態」を利用して、吸入空気量が、運転状態（Accp,NE）に基づいて要求される量にスロットルバルブ開度の調整により調整され得る。
【００７０】
また、ＣＰＵ８１は、図７に示した補間係数Kcaの算出を行うルーチンを、図６のルーチンに続いて繰り返し実行するようになっている。後述するように、補間係数Kcaは、「選択領域」の選択、及び、「制御用学習値Learn」の算出（補間）、に使用される係数である。
【００７１】
ＣＰＵ８１はステップ７００から処理を開始してステップ７０５に進むと、上述した図５のステップ５０５、６０５と同様、作用角センサ６４が正常か否かを判定する。ＣＰＵ８１は、作用角センサ６４が正常と判定された場合、ステップ７１０に進んで、制御用作用角Tsを作用角センサ６４から得られる作用角T（検出値）と等しい値に設定する。一方、ＣＰＵ８１は、作用角センサ６４が異常と判定された場合、ステップ７１５に進んで、制御用作用角Tsを作用角の最小値Tminに設定する。ここで、最小値Tminは、前記「最小領域内の所定値」、前記「最小領域の最小値」に対応する。
【００７２】
次いで、ＣＰＵ８１はステップ７２０に進み、ステップ７１０又はステップ７１５にて設定された制御用作用角Tsと、図１３に示したテーブルMapKcaと、に基づいて補間係数Kcaを決定する。これにより、補間係数Kcaは、Tsが大きいほどより小さい値に設定される。特に、Tsが値T1（大領域と小領域との境界値、図４を参照）以下の場合にはKcaが値K1以上に設定され、Tsが値T1より大きい場合にはKcaが値K1未満に設定される。
【００７３】
次に、ＣＰＵ８１はステップ７２５に進んで、ステップ７２０にて決定された補間係数Kcaが値K1以上か否かを判定し、「Ｙｅｓ」と判定する場合にはステップ７３０にて「選択領域」を小領域に決定し、「Ｎｏ」と判定する場合にはステップ７３５にて「選択領域」を大領域に決定し、ステップ７９５に進んで本ルーチンを一旦終了する。
【００７４】
これにより、制御作用角Tsが含まれる領域が「選択領域」として選択される。より具体的には、作用角センサ６４が正常の場合、大・小領域のうちで作用角T（検出値）が含まれる方の領域が「選択領域」として選択され、作用角センサ６４が異常の場合（Kca＝１）、最小値Tminが含まれる領域である小領域が常に「選択領域」として選択される。
【００７５】
また、ＣＰＵ８１は、図８に示した燃料噴射量Fiの計算及び燃料噴射の指示を行うルーチンを、図７のルーチンに続いて繰り返し実行するようになっている。ＣＰＵ８１はステップ８００から処理を開始してステップ８０５に進むと、エアフローメータ６１により計測されている吸入空気流量Gaとエンジン回転速度NEとに基づいて今回の吸気行程において燃焼室２５内に吸入される空気量（吸入空気量Mc）をマップfから求める。
【００７６】
続いて、ＣＰＵ８１はステップ８１０に進み、上記求めた筒内吸入空気量Mcを目標空燃比abyfr（本例では、理論空燃比）で除することで空燃比を目標空燃比とするための基本燃料噴射量Fbaseを求める。次いで、ＣＰＵ８１はステップ８１５に進み、燃料噴射量Fiを、上記求めた基本燃料噴射量Fbaseに後述する空燃比フィードバック補正量DFiを加えた値に設定する。
【００７７】
そして、ＣＰＵ８１はステップ８２０に進んで燃料噴射量Fiの燃料を噴射するための指示を燃料噴射気筒に対応するインジェクタ３９に対して行い、ステップ８９５に進んで本ルーチンを一旦終了する。これにより、フィードバック補正された燃料噴射量Fiの燃料が吸気行程を迎える気筒に対して噴射される。
【００７８】
次に、上記空燃比フィードバック補正量DFiの算出について説明する。ＣＰＵ８１は図９に示したルーチンを図８のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１はステップ９００から処理を開始し、ステップ９０５に進んで空燃比フィードバック制御条件が成立しているか否かを判定する。空燃比フィードバック制御条件は、例えば、水温センサ６６により検出される機関の冷却水温THWが所定温度以上であり、機関の一回転当りの吸入空気量（負荷）が所定値以下であり、且つ、空燃比センサ６７及び酸素濃度センサ６８が活性状態にあるときに成立する。
【００７９】
先ず、空燃比フィードバック制御条件が成立している場合について説明する。この場合、ＣＰＵ８１はステップ９０５にて「Ｙｅｓ」と判定してステップ９１０に進み、現時点の空燃比センサ６７の出力値Vabyf(V)と、後述するサブフィードバック補正量Vafsfb(％)と、ステップ９１０内に記載の式とに基づいて制御用空燃比相当出力値Vabyfs(V)を求める。
【００８０】
続いて、ＣＰＵ８１はステップ９１５に進んで、上記求めた制御用空燃比相当出力値Vabyfsと、図２に示したマップに基づいて現時点における制御用空燃比abyfsを求める。この空燃比は、上流側触媒５３の上流におけるガスの「みかけの空燃比」である。
【００８１】
次に、ＣＰＵ８１はステップ９２０に進み、先のステップ８０５にて求めた最新の（今回の吸気行程についての）吸入空気量Mcを上記求めた制御用空燃比abyfsで除することにより、今回の吸気行程についての筒内燃料供給量Fcを求める。次いで、ＣＰＵ８１はステップ９２５に進み、上記筒内吸入空気量Mcを目標空燃比abyfrで除することにより、今回の吸気行程についての目標筒内燃料供給量Fcrを求める。
【００８２】
続いて、ＣＰＵ８１はステップ９３０に進んで、筒内燃料供給量偏差DFcを、目標筒内燃料供給量Fcrから筒内燃料供給量Fcを減じた値に設定する。つまり、筒内燃料供給量偏差DFcは、今回の吸気行程についての燃料の過不足分を表す量となる。
【００８３】
次に、ＣＰＵ８１はステップ９３５に進み、その時点における筒内燃料供給量偏差DFcの積分値SDFcに上記ステップ９３０にて求めた筒内燃料供給量偏差DFcを加えることで筒内燃料供給量偏差の積分値SDFcを更新する。
【００８４】
そして、ＣＰＵ８１はステップ９４０に進んで、上記ステップ９３０にて求めた筒内燃料供給量偏差DFcと、上記ステップ９３５にて更新した筒内燃料供給量偏差の積分値SDFcと、ステップ９４０内に記載の式とに基づいて空燃比フィードバック補正量DFiを求める。ここにおいて、Gpは予め設定された比例ゲイン、Giは予め設定された積分ゲインである。なお、係数KFBはエンジン回転速度NE及び筒内吸入空気量Mc等により可変とすることが好適であるが、ここでは「１」としている。そして、ＣＰＵ８１はステップ９９５に進んで本ルーチンを一旦終了する。
【００８５】
以上により、空燃比フィードバック補正量DFiが比例積分処理（ＰＩ処理）により求められ、この空燃比フィードバック補正量DFiが前述した図８のステップ８１５及びステップ８２０により燃料噴射量Fiに反映される。
【００８６】
この結果、今回の吸気行程についての燃料供給量の過不足が補償されるので、空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が目標空燃比abyfr（＝理論空燃比）と略一致せしめられる。
【００８７】
一方、空燃比フィードバック制御条件が成立していない場合、ＣＰＵ８１はステップ９０５にて「Ｎｏ」と判定してステップ９４５に進み、空燃比フィードバック補正量DFiを「０」に設定する。これにより、空燃比フィードバック制御に基づく燃料噴射量の補正（図８のステップ８１５を参照）が行われない。
【００８８】
次に、酸素濃度センサ６８の出力Voxsに基づく空燃比フィードバック制御（即ち、サブフィードバック制御）について説明する。このサブフィードバック制御により、上述したサブフィードバック補正量Vafsfb(％)が算出される。このサブフィードバック補正量Vafsfbが前記「フィードバック補正値」に対応する。
【００８９】
ＣＰＵ８１は、サブフィードバック補正量Vafsfbを求めるために、図１０に示したルーチンを図９のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１はステップ１０００から処理を開始し、ステップ１００５に進み、先のステップ９０５と同じ空燃比フィードバック制御条件が成立しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１０９５に直ちに進んで本ルーチンを一旦終了する。
【００９０】
以下、空燃比フィードバック制御条件が成立している場合について説明する。この場合、ＣＰＵ８１はステップ１００５にて「Ｙｅｓ」と判定してステップ１０１０に進み、偏差DVoxsを、目標空燃比相当目標値Voxsref（一定）から酸素濃度センサ６８の出力値Voxsを減じた値に設定する。この偏差DVoxsは、前記「偏差に相当する値」に対応する。
【００９１】
次いで、ＣＰＵ８１はステップ１０１５に進み、図７のルーチンにて逐次選択・更新されている「選択領域」が切替わった直後か否かを判定し、「Ｎｏ」と判定する場合、ステップ１０２０にて、その時点における偏差DVoxsの偏差積分値SDVoxsに上記ステップ１０１０にて求めた偏差DVoxsを加えることで、偏差積分値SDVoxsを更新する。
【００９２】
一方、ステップ１０１５にて「Ｙｅｓ」と判定された場合、ＣＰＵ８１はステップ１０２５に進んで、偏差積分値SDVoxsを「０」にクリアする。これにより、後述する「学習処理」により学習値に移し変えられていく値（＝偏差積分値SDVoxsの定常的な成分、学習値更新量DLearn）が、その「学習処理」の実行時点で「選択領域」として選択されている領域が「選択領域」として選択され続けてきた状態にて偏差DVoxsを積算して得られた偏差積分値SDVoxsに基づく値となることが保証され得る。
【００９３】
続いて、ＣＰＵ８１はステップ１０３０に進んで、上記ステップ１０１０にて求めた偏差DVoxsと、前回の偏差DVoxsbと、ステップ１０３０内に記載の式とに基づいて偏差DVoxsの時間微分値DDVoxsを求める。前回の偏差DVoxsbとしては、前回の本ルーチン実行時において後述するステップ１０４５にて更新されている値が使用される。Δｔは本ルーチンの実行間隔時間である。
【００９４】
次に、ＣＰＵ８１はステップ１０３５に進み、後述する図１１のルーチンにて個別に更新されている小領域及び大領域についてのそれぞれの学習値LearnS，LearnLと、図７のルーチンにて決定・更新されている最新の補間係数Kcaと、ステップ１０３５内に記載の式と、に基づいて、補間係数Kcaを用いて学習値LearnS，LearnLの重み付けを行うことで、空燃比制御に使用される制御用学習値Learnを算出する。
【００９５】
即ち、図７のステップ７２０にて決定される補間係数Kcaは、制御用作用角Tsに基づく値であるから（図１３を参照）、制御用学習値Learnは、学習値LearnS，LearnLを制御用作用角Tsに基づいて補間することで算出される。より具体的には、作用角センサ６４が正常な場合、制御用学習値Learnは、学習値LearnS，LearnLを作用角T（検出値）に基づいて補間することで算出され、作用角センサ６４が異常の場合（Kca＝１）、制御用学習値Learnは、学習値LearnS，LearnLを最小値Tmin（前記「最小領域内の所定値」）に基づいて補間することで算出される。実際には、作用角センサ６４が異常の場合、制御用学習値Learnは、小領域についての学習値LearnSと等しい値に算出される。
【００９６】
次に、ＣＰＵ８１はステップ１０４０に進んで、上記ステップ１０１０にて求めた偏差DVoxsと、上記ステップ１０２０又は１０２５にて更新した偏差積分値SDVoxsと、上記ステップ１０３０にて求めた偏差の時間微分値DDVoxsと、上記制御用学習値Learnと、ステップ１０４０内に記載の式とに基づいてサブフィードバック補正量Vafsfb(％)を求める。ここにおいて、Kpは予め設定された比例ゲイン、Kiは予め設定された積分ゲイン、Kdは予め設定された微分ゲインである。
【００９７】
ステップ１０４０内に記載の式において、右辺第１項「Kp・DVoxs」が比例項に、右辺第２項「Ki・SDVoxs」と右辺第４項「Ki・Learn」の和が積分項に、右辺第３項「Kd・DDVoxs」が微分項にそれぞれ対応している。即ち、サブフィードバック補正量Vafsfbは、比例項と、積分項と、微分項とに基づいて偏差DVoxsをＰＩＤ処理することで算出される。
【００９８】
そして、ＣＰＵ８１はステップ１０４５に進んで、前回の偏差DVoxsbを上記ステップ１０１０にて求めた偏差DVoxsに設定した後、ステップ１０９５に進んで本ルーチンを一旦終了する。
【００９９】
このようにして、サブフィードバック補正量Vafsfb(％)が求められ、この値は前述した図９のステップ９１０における制御用空燃比相当出力値Vabyfs(V)の計算に使用される。そして、制御用空燃比相当出力値Vabyfs(V)が図２に示したマップに基づいて制御用空燃比abyfsに変換される。換言すると、制御用空燃比abyfsは、空燃比センサ６７が実際に検出している空燃比に対して、酸素濃度センサ６８の出力値Voxsに基づいて求められるサブフィードバック補正量Vafsfb(％)に相当する分だけ異なる空燃比として求められる。
【０１００】
この結果、前述した図９のステップ９２０にて計算される筒内燃料供給量Fcが酸素濃度センサ６８の出力値Voxsに応じて変化するので、ステップ９３０〜９４０によって空燃比フィードバック補正量DFiが酸素濃度センサ６８の出力値Voxsに応じて変更せしめられる。これにより、上流側触媒５３の下流側の空燃比が目標空燃比abyfr（＝理論空燃比）に一致するように、空燃比が制御せしめられる。
【０１０１】
例えば、機関の平均的な空燃比がリーンであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも小さい値（即ち、リーン側に偏移した値）となっていると、ステップ１０１０にて求められる偏差DVoxsが正の値となるので、ステップ１０４０にて求められるサブフィードバック補正量Vafsfbは正の値となる。従って、ステップ９１５にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリーンな値（より大きな値）として求められる。
【０１０２】
このため、ステップ９２０にて求められる筒内燃料供給量Fcは小さい値となり、ステップ９３０にて求められる筒内燃料供給量偏差DFcは大きい値となる。従って、空燃比フィードバック補正量DFiが大きい正の値となる。この結果、図８のステップ８１５にて求められる燃料噴射量Fiは、基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチ側の値となるように制御される。
【０１０３】
反対に、機関の平均的な空燃比がリッチであるために酸素濃度センサ６８の出力値Voxsが目標空燃比相当目標値Voxsref（一定）よりも大きい値（即ち、リッチ側に偏移した値）となっていると、偏差DVoxs（及び積分値更新用偏差DVoxsi）が負の値となるので、サブフィードバック補正量Vafsfbは負の値となる。従って、ステップ９１５にて求められる制御用空燃比abyfsは空燃比センサ６７が実際に検出している空燃比よりもリッチな値（より小さな値）として求められる。
【０１０４】
従って、筒内燃料供給量Fcは大きい値となるので、筒内燃料供給量偏差DFcは負の値となる。その結果、空燃比フィードバック補正量DFiが負の値となる。これにより、燃料噴射量Fiは、基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーン側の値となるように制御される。
【０１０５】
次に、偏差積分値SDVoxsの学習値（LearnL，LearnS）の更新（学習）について説明する。ＣＰＵ８１は、図１１に示したルーチンを図１０のルーチンに続いて繰り返し実行するようになっている。従って、所定のタイミングになると、ＣＰＵ８１はステップ１１０５に進み、学習値の学習タイミングが到来しているか否かを判定し、「Ｎｏ」と判定する場合、ステップ１１９５に直ちに進んで本ルーチンを一旦終了する。学習タイミングは、例えば、本例では、燃料噴射回数が所定の回数に達する毎に到来する。
【０１０６】
学習値の学習タイミングが到来した場合、ＣＰＵ８１はステップ１１０５にて「Ｙｅｓ」と判定してステップ１１１０に進み、学習値更新量DLearnを、上記ステップ１０２０又は１０２５にて更新されている偏差積分値SDVoxsの最新値を値Nrefで除した値に設定する。値Nrefは、「１」以上の値であり、例えば、「１」、「２」、「４」、「８」などに設定される。ここで、学習値更新量DLearnは、前記「偏差積分値に基づく値の定常的な成分」に対応する。
【０１０７】
続いて、ＣＰＵ８１はステップ１１１５に進んで、現在の「選択領域」が小領域であるか否かを判定し、「Ｙｅｓ」と判定された場合、ステップ１１２０にて、その時点における小領域についての学習値LearnSに上記ステップ１１１０にて求めた学習値更新量DLearnを加えることで小領域についての学習値LearnSを更新する。一方、「Ｎｏ」と判定された場合、ＣＰＵ８１は、ステップ１１２５にて、その時点における大領域についての学習値LearnLに上記ステップ１１１０にて求めた学習値更新量DLearnを加えることで大領域についての学習値LearnLを更新する。
【０１０８】
このように、大領域・小領域についての学習値LearnL，LearnSがそれぞれ個別に設定され、学習タイミングが到来する毎に、偏差積分値SDVoxsの定常的な成分（＝DLearn）が「選択領域」についての学習値に移し変えられていく。これにより、領域毎に学習値が個別に更新されていく。
【０１０９】
そして、ＣＰＵ８１はステップ１１３０に進み、その時点における偏差積分値SDVoxsから上記学習値更新量DLearnを減じることで偏差積分値SDVoxsを再設定した後、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１１０】
このように、学習タイミングが到来する毎に、偏差積分値SDVoxsと学習値（LearnL又はLearnS）の和を変更することなく偏差積分値SDVoxsの学習値（LearnL又はLearnS）が更新されていく。これにより、学習タイミングが到来する毎に、偏差積分値SDVoxsが次第に「０」に近づいていく一方で、領域毎に、偏差積分値の学習値（LearnL又はLearnS）が上記「燃料噴射量の誤差」の大きさを正確に表す値（即ち、収束すべき値）にそれぞれ近づいていく。なお、偏差積分値の学習値（LearnL又はLearnS）が上記「燃料噴射量の誤差」の大きさを正確に表す値に近づいていく速度は、値Nrefが大きいほど小さくなる。
【０１１１】
以上、説明したように、本発明の第１実施形態に係る可変動弁機構３３を備えた空燃比制御装置では、吸入空気量が、原則的には上記「吸気弁律速状態」において吸気弁３２の作用角の調整により調整され、極低負荷領域（Accp＜Accp1）のみ上記「スロットル弁律速状態」においてスロットルバルブ４３の開度調整により調整される。
【０１１２】
「上流側触媒５３の下流の酸素濃度センサ６８の出力値Voxsと目標空燃比相当出力値Voxsref（一定）との偏差DVoxs」についてＰＩＤ処理してサブフィードバック補正量Vafsfbが計算され、サブフィードバック補正量Vafsfbに基づいて空燃比が理論空燃比に一致するようにフィードバック制御される。
【０１１３】
作用角のとりえる範囲（最小値Tmin〜最大値Tmax）が小領域と大領域の２つの領域に分けて扱われ、領域毎に、上記ＰＩＤ処理における積分項（Ｉ項）についての学習値（LearnL，LearnS）が個別に設定される。学習タイミングが到来する毎に「学習処理」が行われ、作用角センサ６４から得られる作用角T（検出値）が含まれる領域（＝「選択領域」）について学習値（LearnL又はLearnS）が個別に更新されていく。
【０１１４】
加えて、上記空燃比フィードバック制御に使用される（即ち、サブフィードバック補正量Vafsfbの算出に使用される）学習値（＝制御用学習値Learn）として、大・小領域についてのそれぞれの学習値LearnL，LearnSを上記作用角Tに基づいて補間して得られる学習値が使用される。
【０１１５】
これにより、現在の作用角に対応する適切な学習値（＝制御用学習値Learn）が空燃比フィードバック制御に常に使用され得るから、作用角が変化しても、空燃比を安定して目標空燃比近傍に維持することができる。
【０１１６】
一方、作用角センサ６４に異常が発生した場合、以下の処理がなされる。先ず、可変動弁機構３３への通電をＯＦＦして吸気弁３２の作用角が固定され、吸入空気量の調整は、上記「スロットル弁律速状態」を利用してスロットルバルブ４３の開度調整により行われる。これにより、作用角センサ６４から得られる誤った作用角Tに基づく可変動弁機構３３の誤作動の発生が防止され得る。
【０１１７】
加えて、「選択領域」が小領域に固定される。これは、車両の動力源として内燃機関が使用される場合、作用角（従って、吸入空気量）が小さい状態の頻度が作用角が大きい状態の頻度に比べて圧倒的に多いこと、並びに、上述したように可変動弁機構３３への通電がＯＦＦされても（作用角が固定されても）、作用角が小さくなる方向に徐々にシフトしていく可能性があること、に基づく。即ち、実際の作用角が小領域内にある可能性が非常に高い。これにより、作用角センサ６４に異常が発生した場合において、真の選択領域とは異なる領域についての学習値（LearnL又はLearnS）が、適切な値とは異なる値に更新されていく事態が発生し難くなる。
【０１１８】
更には、制御用学習値Learnとして、上記作用角Tに代えて作用角の最小値Tminに基づいて大・小領域についてのそれぞれの学習値LearnL，LearnSを補間して得られる学習値が使用される。これにより、作用角センサ６４に異常が発生した場合において、実際の作用角に近い値（＝最小領域内の所定値、本例では、最小値Tmin）を使用して前記補間が実行され得るから、制御用学習値Learnが現在の真の作用角に対応する適切な学習値に近い値に算出され得る。従って、作用角センサ６４に異常が発生した場合においても、継続して空燃比が極力安定して目標空燃比近傍に維持され得る。
【０１１９】
（第２実施形態）
次に、本発明の第２実施形態に係る空燃比制御装置について説明する。この第２実施形態は、「スロットル弁律速状態」を考慮して「選択領域」の選択、及び制御用学習値Learnの算出の際の補間を行う点においてのみ、「スロットル弁律速状態」を考慮することなく「選択領域」の選択、及び制御用学習値Learnの算出の際の補間を行う上記第１実施形態と異なる。以下、係る相違点についてのみ説明する。
【０１２０】
第２実施形態のＣＰＵ８１は、上記第１実施形態のＣＰＵ８１が実行する図５〜図１１のルーチンのうち、図７及び図１０のルーチンを除いたルーチンをそのまま実行するとともに、図７及び図１０のルーチンに代えて、図７及び図１０のルーチンにそれぞれ対応する図１４及び図１５にフローチャートにより示したルーチンをそれぞれ実行する。以降、新出のルーチンにおいて前出のルーチンのステップと同じステップについては、前出のルーチンのステップ番号と同じステップ番号を付することでそれらの説明を省略する。
【０１２１】
図１４に示したルーチンは、ステップ１４０５，１４１０，１４１５を追加し、且つ図７のステップ７２５をステップ１４２０に置き換えた点においてのみ、図７に示したルーチンと異なる。
【０１２２】
ステップ１４０５では、吸気管圧力センサ７１から得られる現時点での吸気圧力Pmと、図１６に示したテーブルMapKpmと、に基づいて補間係数Kpaを決定する。これにより、補間係数Kpaは、Pmが値Pm1（前記「所定圧力」に対応）未満では実質的に「０」に設定され、Pmが値Pm1以上では実質的に「１」に設定される。
【０１２３】
ここで、補間係数Kpaが「１」であること（Pm≧Pm1）は、スロットルバルブ４３により吸気圧力が調整されていない状態、即ち、「吸気弁律速状態」であることを意味し、補間係数Kpaが「０」であること（Pm＜Pm1）は、スロットルバルブ４３により吸気圧力が調整されている状態、即ち、「スロットル弁律速状態」であることを意味する。
【０１２４】
ステップ１４１０、１４１５は、作用角センサ６４が異常の場合にのみ実行される。ステップ１４１０では、補間係数Kpmが値K2（図１６を参照、０＜K2＜１）以上であるか否かが判定され、「Ｙｅｓ」と判定される場合（即ち、「吸気弁律速状態」）、ステップ７１５にて制御用作用角Tsが最小値Tminに設定され、「Ｎｏ」と判定される場合（即ち、「スロットル弁律速状態」）、ステップ１４１５にて制御用作用角Tsが最大値Tmaxに設定される。ここで、最大値Tmaxは、前記「最大領域内の所定値」、前記「最大領域の最大値」に対応する。
【０１２５】
なお、ここでは、「スロットル弁律速状態」において、作用角センサ６４が異常の場合にのみ制御用作用角Tsが最大値Tmaxに設定されるが、「スロットル弁律速状態」においては、常に、制御用作用角Tsが最大値Tmaxに設定されるように構成してもよい。
【０１２６】
ステップ１４２０では、「Kca・Kpm」が値K3以上か否かが判定される。値K3は、図７のステップ７２５の値K1と同じ値であってよい。これにより、Kpm＝１の場合（「吸気弁律速状態」）、Kca・Kpm＝Kcaとなる。従って、上記第１実施形態と同様、作用角センサ６４が正常の場合、作用角T（検出値）が含まれる方の領域が「選択領域」として選択され（ステップ７３０又は７３５）、作用角センサ６４が異常の場合（Kca＝１）、最小値Tminが含まれる領域である小領域が常に「選択領域」として選択される（ステップ７３０）。
【０１２７】
一方、Kpm＝０の場合（「スロットル弁律速状態」）、常に、Kca・Kpm＝０となる。従って、作用角センサ６４が正常か否かにかかわらず、最大値Tmaxが含まれる領域である大領域が常に「選択領域」として選択される（ステップ７３５）。これは、以下の理由に基づく。
【０１２８】
即ち、上述のように、作用角が小さい場合に上記「気筒間空燃比ばらつき」の程度が大きくなる現象は、「吸気弁律速状態」にある場合に発生する。これに対し、「スロットル弁律速状態」では、上記「気筒間作用角ばらつき」が吸入空気量に与える影響が小さくなり、上記「気筒間空燃比ばらつき」の程度が小さくなる。従って、「スロットル弁律速状態」では、上記「平均排気空燃比」が、実際の作用角にかかわらず、上記「気筒間空燃比ばらつき」の程度が小さい「作用角が大きい状態」での値に近くなる。よって、「スロットル弁律速状態」では、実際の作用角にかかわらず、且つ作用角センサ６４が正常か否かにかかわらず、「作用角が大きい」と仮定して、「選択領域」を大領域に選択することが好ましい。
【０１２９】
図１５に示したルーチンは、図１０のステップ１０３５をステップ１５０５に置き換えた点においてのみ、図１０に示したルーチンと異なる。
【０１３０】
ステップ１５０５では、Kcaに代えて「Kca・Kpm」を用いて学習値LearnS，LearnLの重み付けを行うことで、制御用学習値Learnを算出する。これにより、Kpm＝１の場合（「吸気弁律速状態」）、Kca・Kpm＝Kcaとなる。従って、上記第１実施形態と同様、作用角センサ６４が正常な場合、制御用学習値Learnは、学習値LearnS，LearnLを作用角T（検出値）に基づいて補間することで算出され、作用角センサ６４が異常の場合（Kca＝１）、制御用学習値Learnは、学習値LearnS，LearnLを最小値Tmin（前記「最小領域内の所定値」）に基づいて補間することで算出される。
【０１３１】
一方、Kpm＝０の場合（「スロットル弁律速状態」）、常に、Kca・Kpm＝０となる。従って、作用角センサ６４が正常か否かにかかわらず、制御用学習値Learnは、学習値LearnS，LearnLを最大値Tmax（前記「最大領域内の所定値」）に基づいて補間することで算出される。実際には、「スロットル弁律速状態」では、制御用学習値Learnは、大領域についての学習値LearnLと等しい値に算出される。これも、上述した「選択領域」の選択と同様、「スロットル弁律速状態」では「作用角が大きい」と仮定して、制御用学習値Learnの算出の際の補間を最大値Tmax（前記「最大領域内の所定値」）に基づいて行うことが好ましいことに基づく。
【０１３２】
以上、説明したように、本発明の第２実施形態に係る空燃比制御装置では、作用角センサ６４が正常か否かにかかわらず、上記「気筒間空燃比ばらつき」の程度が小さい「スロットル弁律速状態」において、学習値が更新されるべき領域（＝大領域）についての学習値LearnLが更新され得る。加えて、適切な作用角の値（＝最大値Tmax）に基づいて補間がなされて制御用学習値Learnが適切な値に算出され得る。従って、「スロットル弁律速状態」において、作用角センサ６４が正常か否かにかかわらず、空燃比が安定して目標空燃比近傍に維持され得る。
【０１３３】
（第３実施形態）
次に、本発明の第３実施形態に係る空燃比制御装置について説明する。この第３実施形態は、「吸気弁律速状態」において作用角センサ６４が異常のとき、吸気弁３２の作用角の推定値（推定作用角Test）に基づいて「選択領域」の選択、及び制御用学習値Learnの算出の際の補間を行う点においてのみ、最小値Tmin（前記「最小領域内の所定値」）に基づいて「選択領域」の選択、及び制御用学習値Learnの算出の際の補間を行う上記第２実施形態と異なる。以下、係る相違点についてのみ説明する。
【０１３４】
第３実施形態のＣＰＵ８１は、上記第２実施形態のＣＰＵ８１が実行する図５、図６、図８、図９、図１１、図１４、図１５のルーチンのうち、図１４のルーチンを除いたルーチンをそのまま実行するとともに、図１４のルーチンに代えて、図１４のルーチンに対応する図１８にフローチャートにより示したルーチンを実行し、第３実施形態に特有の図１７にフローチャートにより示したルーチンも実行する。
【０１３５】
図１７に示したルーチンも、他のルーチンに同期して繰り返し実行される。先ず、ステップ１７０５にて、アイドリング条件が成立しているか否かが判定され、「Ｎｏ」と判定された場合、ステップ１７９５にて本ルーチンが一旦終了される。アイドリング条件は、例えば、アクセルペダル操作量Accpがゼロであり、エンジン回転速度NEが所定値以下の場合に成立する。
【０１３６】
ステップ１７０５にて、アイドリング条件が成立しているものとすると、ステップ１７１０にて、吸気管圧力センサ７１から得られる現時点での吸気圧力Pmと、図１９に示したテーブルMapTestと、に基づいて推定作用角Testを決定する。これにより、推定作用角Testは、Pmが大きいほど、より小さい値（Tmin〜Tmax）に決定される。
【０１３７】
ステップ１７１５では、ステップ１７１０にて決定された推定作用角TestがバックアップＲＡＭ８４内の所定の記憶領域に格納される。これにより、バックアップＲＡＭ８４内に記憶される推定作用角Testが、アイドリング条件が到来する毎に更新される。
【０１３８】
ここで、アイドリング条件成立時に吸気弁３２の作用角を推定するのは、アイドリング状態では、作用角の変化に対する吸気圧力の変化量（感度）が大きいから、吸気圧力Pmに基づいて作用角を精度良く推定することができるからである。
【０１３９】
図１８に示したルーチンは、図１４のステップ１４１０、１４１５を削除し、且つ図１４のステップ７１５をステップ１８０５に置き換えた点においてのみ、図１４に示したルーチンと異なる。
【０１４０】
ステップ１８０５は、作用角センサ６４が異常の場合にのみ実行される。ステップ１８０５では、制御用作用角Tsが、図１７のステップ１７１５の処理によりバックアップＲＡＭ８４に格納されている推定作用角Testの最新値に設定される。
【０１４１】
これにより、Kpm＝１の場合（「吸気弁律速状態」）において作用角センサ６４が正常の場合、上記第１、第２実施形態と同様、作用角T（検出値）が含まれる方の領域が「選択領域」として選択される（ステップ７３０又は７３５）。一方、Kpm＝１の場合（「吸気弁律速状態」）において作用角センサ６４が異常の場合、推定作用角Testが含まれる方の領域が「選択領域」として選択される（ステップ７３０又は７３５）。
【０１４２】
一方、Kpm＝０の場合（「スロットル弁律速状態」）、上記第２実施形態と同様、作用角センサ６４が正常か否かにかかわらず、常に、最大値Tmaxが含まれる領域である大領域が常に「選択領域」として選択される（ステップ７３５）。
【０１４３】
加えて、図１５のステップ１５０５において、Kpm＝１の場合（「吸気弁律速状態」）において作用角センサ６４が正常の場合、上記第１、第２実施形態と同様、制御用学習値Learnは、学習値LearnS，LearnLを作用角T（検出値）に基づいて補間することで算出される。一方、Kpm＝１の場合（「吸気弁律速状態」）において作用角センサ６４が異常の場合、制御用学習値Learnは、学習値LearnS，LearnLを推定作用角Testに基づいて補間することで算出される。
【０１４４】
一方、Kpm＝０の場合（「スロットル弁律速状態」）、上記第２実施形態と同様、作用角センサ６４が正常か否かにかかわらず、常に、制御用学習値Learnは、学習値LearnS，LearnLを最大値Tmax（前記「最大領域内の所定値」）に基づいて補間することで算出される。実際には、「スロットル弁律速状態」では、制御用学習値Learnは、大領域についての学習値LearnLと等しい値に算出される。
【０１４５】
以上、説明したように、本発明の第３実施形態に係る空燃比制御装置では、「吸気弁律速状態」において作用角センサ６４が異常の場合、最小値Tmin（前記「最小領域内の所定値」）よりも推定作用角Testの方が実際の作用角により近いであろうとの観点に基づき、上記第２実施形態に比して、学習値が更新されるべき領域がより適切に選択され得、且つ、より適切な作用角の値に基づいて制御用学習値Learn算出の際の補間がなされ得る。従って、「吸気弁律速状態」において作用角センサ６４が異常の場合において、上記第２実施形態に比して、空燃比がより安定して目標空燃比近傍に維持され得る。
【０１４６】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第１、第２実施形態では、前記「最小領域内の所定値」として最小値Tminが使用されているが、前記「最小領域内の所定値」として小領域内の所定値が使用されてもよい。
【０１４７】
また、上記第２、第３実施形態では、前記「最大領域内の所定値」として最大値Tmaxが使用されているが、前記「最大領域内の所定値」として大領域内の所定値が使用されてもよい。
【０１４８】
また、上記各実施形態においては、吸気弁３２の「作用角」と吸気弁３２の「最大リフト量」とは一対一の関係にあるから、「作用角」を「最大リフト量」に置き換えてもよい。
【０１４９】
また、上記各実施形態においては、可変動弁機構３３が、最大リフト量を調整することで作用角が調整される構成を有しているが、可変動弁機構３３が、最大リフト量が固定されて作用角のみが可変とされる構成が採用されてもよい。同様に、可変動弁機構３３が、作用角が固定されて最大リフト量のみが可変とされる構成が採用されてもよい。この場合、上記各実施形態において、「作用角」を「最大リフト量」に置き換える必要がある。
【０１５０】
また、上記各実施形態においては、作用角のとりえる範囲（最小値Tmin〜最大値Tmax）が、大領域と小領域の２つの領域に分けて扱われているが、例えば、図２０に示すように、作用角のとりえる範囲（最小値Tmin〜最大値Tmax）が、小領域、中領域、大領域の３つの領域に分けて扱われてもよい。この場合、制御用学習値Learnとして、「選択領域」として選択されている領域、及び他の１つの領域についてのそれぞれの学習値を作用角T（検出値）等に基づいて補間して得られる学習値が使用され得る。
【０１５１】
加えて、上記各実施形態においては、触媒（上流側触媒５３）の下流の空燃比センサ（酸素濃度センサ６８）の出力値と目標空燃比相当出力値との偏差についての偏差積分値及び制御用学習値に基づいてフィードバック補正値（サブフィードバック補正量Vafsfb）が算出されているが、触媒（上流側触媒５３）の上流の空燃比センサ（空燃比センサ６７）の出力値と目標空燃比相当出力値との偏差についての偏差積分値及び制御用学習値に基づいてフィードバック補正値が算出されてもよい。
【図面の簡単な説明】
【０１５２】
【図１】本発明の第１実施形態に係る内燃機関の空燃比制御装置（燃料噴射量制御装置）の概略を示した図である。
【図２】図１に示した空燃比センサの出力と空燃比の関係を示したグラフである。
【図３】図１に示した酸素濃度センサの出力と空燃比の関係を示したグラフである。
【図４】吸気弁の作用角のとりえる範囲が、大領域と小領域の２つの領域に区分されていることを示す図である。
【図５】図１に示したＣＰＵが作用角の制御を行うために実行するルーチンを示したフローチャートである。
【図６】図１に示したＣＰＵがスロットルバルブの制御を行うために実行するルーチンを示したフローチャートである。
【図７】図１に示したＣＰＵが補間係数を算出するために実行するルーチンを示したフローチャートである。
【図８】図１に示したＣＰＵが実行する燃料噴射制御ルーチンを示したフローチャートである。
【図９】図１に示したＣＰＵが空燃比フィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図１０】図１に示したＣＰＵがサブフィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図１１】図１に示したＣＰＵが偏差積分値の学習値を更新するために実行するルーチンを示したフローチャートである。
【図１２】図１に示したＣＰＵが参照する、アクセルペダル操作量と、作用角及びスロットル弁開度との関係を規定するテーブルを示したグラフである。
【図１３】図１に示したＣＰＵが参照する、制御用作用角と補間係数との関係を規定するテーブルを示したグラフである。
【図１４】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが補間係数を算出するために実行するルーチンを示したフローチャートである。
【図１５】本発明の第２実施形態に係る空燃比制御装置のＣＰＵがサブフィードバック補正量を算出するために実行するルーチンを示したフローチャートである。
【図１６】本発明の第２実施形態に係る空燃比制御装置のＣＰＵが参照する、吸気圧力と補間係数との関係を規定するテーブルを示したグラフである。
【図１７】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが作用角の推定を行うために実行するルーチンを示したフローチャートである。
【図１８】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが補間係数を算出するために実行するルーチンを示したフローチャートである。
【図１９】本発明の第３実施形態に係る空燃比制御装置のＣＰＵが参照する、吸気圧力と推定作用角との関係を規定するテーブルを示したグラフである。
【図２０】吸気弁の作用角のとりえる範囲が、小領域、中領域、大領域の３つの領域に区分されていることを示す図である。
【符号の説明】
【０１５３】
２５…燃焼室、３３…可変動弁機構、３３ａ…可変動弁機構のアクチュエータ、４３…スロットルバルブ、４３ａ…スロットルバルブのアクチュエータ、３９…インジェクタ、５３…上流側触媒、６１…エアフローメータ、６４…作用角センサ、６７…空燃比センサ、６８…酸素濃度センサ、６９…アクセル開度センサ、７１…吸気管圧力センサ、８０…電気制御装置、８１…ＣＰＵ
【図１】
2009228498.tif 000003
【図２】
2009228498.tif 000004
【図３】
2009228498.tif 000005
【図４】
2009228498.tif 000006
【図５】
2009228498.tif 000007
【図６】
2009228498.tif 000008
【図７】
2009228498.tif 000009
【図８】
2009228498.tif 000010
【図９】
2009228498.tif 000011
【図１０】
2009228498.tif 000012
【図１１】
2009228498.tif 000013
【図１２】
2009228498.tif 000014
【図１３】
2009228498.tif 000015
【図１４】
2009228498.tif 000016
【図１５】
2009228498.tif 000017
【図１６】
2009228498.tif 000018
【図１７】
2009228498.tif 000019
【図１８】
2009228498.tif 000020
【図１９】
2009228498.tif 000021
【図２０】
2009228498.tif 000022