(57)【要約】      （修正有）【課題】バッテリ取り外した後、学習値を早期に収束させる。【解決手段】制御装置は、触媒５３よりも下流側に配設された下流側空燃比センサ６８の出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量を更新し、その第１第１フィードバック量の定常成分に応じた量となるように学習値を更新する。制御装置は、第１フィードバック量及び学習値のうちの少なくとも一方に基いて燃料噴射弁３９から噴射される燃料の量を制御する。制御装置は、学習値の学習不足状態が発生していると推定されるときにその学習値の更新速度を増大させる学習促進制御を実行する。更に、制御装置は、「空燃比変動要因制御量」を変更する機関制御量変更手段を備える。機関制御量変更手段は、学習促進制御が実行されているとき、空燃比変動要因制御量及び空燃比変動要因制御量の変化速度のうちの少なくとも一つを小さくする。【選択図】図１
2010174809.tif 000002
【特許請求の範囲】
【請求項１】
複数の気筒を有する多気筒内燃機関に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気に含まれる燃料を噴射する燃料噴射弁と、
前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサと、
所定の第１更新タイミングが到来する毎に前記下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量を同下流側空燃比センサの出力値と同下流側目標空燃比に応じた値とに基いて更新する第１フィードバック量更新手段と、
所定の第２更新タイミングが到来する毎に前記第１フィードバック量の学習値を前記第１フィードバック量の定常成分に応じた量となるように更新する学習手段と、
前記第１フィードバック量及び前記学習値のうちの少なくとも一方に基いて前記燃料噴射弁から噴射される燃料の量を制御することにより前記触媒に流入する排ガスの空燃比を制御する空燃比制御手段と、
前記学習値と同学習値が収束すべき値との差が所定値以上である学習不足状態が発生しているか否かを推定するとともに、同学習不足状態が発生していると推定されるときには同学習不足状態が発生していないと推定されるときに比較して前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段と、
前記燃料噴射弁から噴射される燃料の量以外の前記機関の制御量であって且つ変更されたときに前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を変動させる制御量である空燃比変動要因制御量を変更する機関制御量変更手段と、
を備えた多気筒内燃機関の制御装置において、
前記機関制御量変更手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量及び前記空燃比変動要因制御量の変化速度のうちの少なくとも一つを小さくするように構成されたことを特徴とする内燃機関の制御装置。
【請求項２】
請求項１に記載の多気筒内燃機関の制御装置において、
前記機関制御量変更手段は、
前記空燃比変動要因制御量の実際の値を指示信号に応じて変更するアクチュエータと、  前記空燃比変動要因制御量の目標値を前記機関の運転状態に応じて決定するとともに前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値及び前記目標値の変化速度のうちの少なくとも一つの値が小さくなるように同目標値を決定するように構成された制御装置。
【請求項３】
請求項１又は請求項２に記載の多気筒内燃機関の制御装置において、
前記空燃比変動要因制御量は、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスであって前記機関の吸気通路に導入される蒸発燃料ガスのパージ量である制御装置。
【請求項４】
請求項２に記載の多気筒内燃機関の制御装置において、
前記アクチュエータは、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するためのパージ通路部に配設され且つ前記指示信号に応じて同パージ通路部の流路断面積を変更するパージ制御弁であり、
前記指示信号付与手段は、
前記機関に吸入される吸入空気流量に対する前記蒸発燃料ガスパージ量の比、又は、前記機関に吸入される吸入空気流量と前記蒸発燃料ガスパージ量との和に対する前記蒸発燃料ガスパージ量の比、として表される蒸発燃料ガスパージ率の目標値、若しくは、前記蒸発燃料ガスパージ量の目標値、を前記空燃比変動要因制御量の目標値として決定するように構成された制御装置。
【請求項５】
請求項１に記載の多気筒内燃機関の制御装置において、
前記機関制御量変更手段は、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するためのパージ通路部に配設され且つ指示信号に応じて同パージ通路部の流路断面積を変更するパージ制御弁を備え、
前記機関に吸入される吸入空気流量に対する前記蒸発燃料ガスパージ量の比、又は、前記機関に吸入される吸入空気流量と前記蒸発燃料ガスパージ量との和に対する前記蒸発燃料ガスパージ量の比、として表される蒸発燃料ガスパージ率の目標値、若しくは、前記蒸発燃料ガスパージ量の目標値、として決定するとともに、同決定された目標値に対する基本指示信号を算出し、前記学習促進制御が実行されていないときには同算出された基本指示信号を前記指示信号として前記パージ制御弁に付与し、前記学習促進制御が実行されているときには同算出された基本指示信号に遅れながら追従する信号を算出し且つ同算出した追従する信号を前記指示信号として前記パージ制御弁に付与するように構成された制御装置。
【請求項６】
請求項１又は請求項２に記載の多気筒内燃機関の制御装置において、
前記空燃比変動要因制御量は、
前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する筒内残留ガスの量である制御装置。
【請求項７】
請求項２に記載の多気筒内燃機関の制御装置において、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間の長さであるバルブオーバーラップ量を前記空燃比変動要因制御量として変更するバルブタイミング制御装置であり、
前記指示信号付与手段は、
前記バルブオーバーラップ量の目標値を前記空燃比変動要因制御量の目標値として決定するように構成された制御装置。
【請求項８】
請求項２に記載の多気筒内燃機関の制御装置において、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期を前記空燃比変動要因制御量として変更する吸気タイミング制御装置であり、
前記指示信号付与手段は、
前記吸気弁開弁時期の目標値を前記空燃比変動要因制御量の目標値として決定するように構成された制御装置。
【請求項９】
請求項２に記載の多気筒内燃機関の制御装置において、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期を前記空燃比変動要因制御量として変更する排気タイミング制御装置であり、
前記指示信号付与手段は、
前記排気弁閉弁時期の目標値を前記空燃比変動要因制御量の目標値として決定するように構成された制御装置。
【請求項１０】
請求項１又は請求項２に記載の多気筒内燃機関の制御装置において、
前記空燃比変動要因制御量は、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管を通して同吸気通路に導入される外部ＥＧＲガスの量である制御装置。
【請求項１１】
請求項２に記載の多気筒内燃機関の制御装置において、
前記アクチュエータは、
前記機関の排気通路であって前記触媒よりも上流側の部位と前記機関の吸気通路とを接続する排気還流管に配設され且つ前記指示信号に応じて同排気還流管の流路断面積を変更するＥＧＲ弁であり、
前記指示信号付与手段は、
前記機関に吸入される吸入空気量と前記外部ＥＧＲガスの量との和に対する同外部ＥＧＲガスの量の比、又は、前記機関に吸入される吸入空気量に対する同外部ＥＧＲガスの量の比、である外部ＥＧＲ率の目標値を、前記空燃比変動要因制御量の目標値として決定するように構成された制御装置。
【請求項１２】
請求項１乃至請求項１１の何れか一項に記載の内燃機関の制御装置であって、
前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒との間の前記排気通路に配設され且つ同触媒を通過する前の排ガスが接触する拡散抵抗層及び同拡散抵抗層に接触するガスの空燃比に応じた出力値を出力する空燃比検出素子を有する上流側空燃比センサと、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比と一致させるための基本燃料噴射量を前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に少なくとも前記上流側空燃比センサの出力値と前記第１フィードバック量とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比に一致するように前記基本燃料噴射量を補正するための第２フィードバック量を更新する第２フィードバック量更新手段と、
前記第２フィードバック量により前記基本燃料噴射量を補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射指示手段と、
前記学習値に基いて前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータを取得するインバランス判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段と、
を備えた制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多気筒内燃機関の排気通路に設けられた触媒の下流側に配設された空燃比センサの出力値に基いて、前記機関に供給される混合気の空燃比を制御する多気筒内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来から知られるこの種の制御装置の一つは、機関の排気通路の上流から下流に向け、順に、上流側空燃比センサ、触媒及び下流側空燃比センサを備え、上流側空燃比センサの出力値と下流側空燃比センサの出力値とに基いて機関に供給される混合気の空燃比（以下、単に「機関の空燃比」と称呼することもある。）をフィードバック制御するようになっている。
【０００３】
より具体的に述べると、従来の空燃比制御装置（従来装置）は、下流側空燃比センサの出力値を下流側目標値（例えば、理論空燃比に相当する値）に一致させるためのサブフィードバック量（第１のフィードバック量）を、下流側空燃比センサの出力値と下流側目標値との偏差を比例・積分（又は、比例・積分・微分）処理することによって算出する。
【０００４】
更に、従来装置は、上流側空燃比センサの出力値とサブフィードバック量とに基いて、機関の空燃比を上流側目標空燃比（例えば、理論空燃比）に一致させるためのメインフィードバック量（第２のフィードバック量）を算出する。そして、従来装置は、その算出したメインフィードバック量に基づき機関の空燃比（例えば、燃料噴射量）をフィードバック制御する。
【０００５】
なお、本明細書において、メインフィードバック量を新たに算出（更新）し、そのメインフィードバック量を機関の空燃比の制御に使用することを「メインフィードバック制御を実行する」とも言う。同様に、サブフィードバック量を新たに算出（更新）し、そのサブフィードバック量を機関の空燃比の制御に使用することを「サブフィードバック制御を実行する」とも言う。
【０００６】
ところで、十分に長い期間に渡ってサブフィードバック制御が行われると、サブフィードバック量は所定の値に収束する。この所定の値を収束値と称呼する。収束値は、触媒に流入するガスの空燃比の平均値が下流側目標空燃比からどの程度乖離しているかを示す。換言すると、サブフィードバック量は、エアフローメータの空気量測定誤差、燃料噴射弁の噴射特性に起因する燃料噴射量の誤差、及び、上流側空燃比センサの空燃比検出誤差等（以下、「吸排気系の誤差」とも称呼する。）を反映した収束値へと収束する。
【０００７】
従って、例えば、下流側空燃比センサが活性化する前の期間、及び、下流側空燃比センサが活性化することに伴ってサブフィードバック制御が開始された時点からサブフィードバック量が収束値近傍の値に至る時点までの期間においては、前回の運転中に得られたサブフィードバック量の収束値を用いて機関の空燃比を制御することが好ましい。
【０００８】
そこで、従来装置は、サブフィードバック制御中において、「算出されたサブフィードバック量に応じた値」に基いて学習値を更新する「学習」を行う。「算出されたサブフィードバック量に応じた値」は、例えば、上記比例・積分処理の結果である「積分項及び／又は比例項（特に、積分項）」等の「サブフィードバック量に含まれる定常成分に応じた値」である。
【０００９】
この学習値は、従来装置が備えるバックアップＲＡＭ（スタンバイＲＡＭ）、又は、ＥＥＰＲＯＭ等の不揮発性メモリに格納される。バックアップＲＡＭには機関が搭載された車両のイグニッション・キー・スイッチの位置に拘らずバッテリから電力が供給される。バックアップＲＡＭはバッテリから電力が供給されている限り「格納した値（データ）」を保持することができる。そして、従来装置は、この学習値をも使用して機関の空燃比を制御する。
【００１０】
これにより、サブフィードバック量の定常値からのズレを学習値によって補償することができる。即ち、サブフィードバック制御の開始前或いは開始直後等において、サブフィードバック量がその収束値から偏移していたとしても、その偏移を学習値によって補償することができる。この結果、機関の空燃比は、常に適正値近傍の空燃比となるように制御され得る。
【００１１】
ところが、例えば、バッテリが車両から取り外された場合及びバッテリが放電してしまった場合等において「バッテリからバックアップＲＡＭ」への給電が停止すると、バックアップＲＡＭに格納されている学習値は消滅する（破壊される）。また、何らかの電気ノイズ等によりバックアップＲＡＭ内又は不揮発性メモリ内の学習値が破壊される場合もある。このような場合、学習値は初期値（デフォルト値）に戻されるから、学習値を早期に収束値に近づける（即ち、学習を早期に完了させる）ことが好ましい。
【００１２】
そこで、従来の空燃比制御装置は、学習値が初期値に戻された後等において、学習値の更新幅（即ち、学習値の更新速度）を大きくすることにより、学習値を早期に収束値に近づけるようになっている（特許文献１を参照。）。この結果、「上記吸排気系の誤差が補償されないことに起因して機関の空燃比が適正値から乖離し、それにより、エミッションが悪化する期間」を短縮することができる。なお、このような「学習値を早期に収束値に近づける制御」は「学習促進制御」とも称呼される。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開平５−４４５５９号公報
【発明の概要】
【００１４】
しかしながら、このような学習促進制御を実行している期間において、「機関の空燃比を過渡的に乱す状態」が発生すると、サブフィードバック量はそれに応じて収束値とは異なる値へと一時的に変化し、学習促進制御によって更新速度が高められているために学習値も本来到達すべき値から大きく乖離する場合がある。その結果、機関の空燃比が適正値から乖離する期間が長期化しエミッションが悪化する虞がある。
【００１５】
「機関の空燃比を過渡的に乱す状態」は、例えば、燃料タンク内で発生した蒸発燃料ガスを吸気系に流入させて燃焼室に供給する場合にその蒸発燃料ガスの濃度が想定した濃度から急変した場合、その蒸発燃料ガスの濃度が所定濃度よりも高い場合、内部ＥＧＲ（筒内残留ガス）の量が過大になる場合、内部ＥＧＲガス量が急変する場合、外部ＥＧＲガス（排気還流ガス）の量が過大になる場合、及び、外部ＥＧＲガス量が急変する場合等に発生する。このような機関の制御量は、本明細書及び特許請求の範囲等において「空燃比変動要因制御量」とも称呼される。
【００１６】
本発明は、上記課題に対処するためになされたものである。本発明の目的の一つは、学習促進制御を実行している期間においては、空燃比変動要因制御量による機関の空燃比への影響を小さくすることにより、学習値が適正値から大きく乖離することを回避し、その結果、エミッションが悪化することを回避することができる多気筒内燃機関の空燃比制御装置を提供することにある。
【００１７】
具体的に述べると、本発明による多気筒内燃機関の空燃比制御装置は、複数の気筒を有する多気筒内燃機関に適用され、触媒（例えば、三元触媒）と、燃料噴射弁と、下流側空燃比センサと、第１フィードバック量更新手段と、学習手段と、空燃比制御手段と、学習促進手段と、機関制御量変更手段と、を備えた内燃機関の空燃比制御装置である。
【００１８】
触媒は、前記機関の排気通路であって「前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部」よりも下流側の部位に配設される。
【００１９】
燃料噴射弁は、前記少なくとも２以上の気筒の燃焼室に供給される混合気に含まれる燃料を噴射する弁である。通常、燃料噴射弁は一つの気筒に対して一つ設けられる。
【００２０】
下流側空燃比センサは、前記排気通路であって前記触媒よりも下流側の部位に配設されるとともに、その配設された部位を流れるガスの空燃比に応じた出力値を出力するセンサである。
【００２１】
第１フィードバック量更新手段は、所定の第１更新タイミングが到来する毎に「前記下流側空燃比センサの出力値を下流側目標空燃比に応じた値に一致させるための第１フィードバック量」を「同下流側空燃比センサの出力値及び同下流側目標空燃比に応じた値」に基いて更新するようになっている。例えば、第１フィードバック量更新手段は、下流側空燃比センサの出力値」と「下流側目標空燃比に応じた値」との差である「第１偏差」に基づいて第１フィードバック量を更新する。
【００２２】
学習手段は、所定の第２更新タイミングが到来する毎に、前記第１フィードバック量の学習値を「前記第１フィードバック量の定常成分に応じた量となるように」（同第１フィードバック量に基づいて）更新する手段である。「前記第１フィードバック量の定常成分に応じた量となるように」とは「第１フィードバック量の定常成分を取り込むように」と実質的に同義であり、「第１フィードバック量が学習をしない場合に収束するであろう値に除々に接近するように」という意味である。
【００２３】
空燃比制御手段は、前記第１フィードバック量及び前記学習値のうちの少なくとも一方に基いて、「前記燃料噴射弁から噴射される燃料の量を制御する」ことにより、前記触媒に流入する排ガスの空燃比を制御するようになっている。例えば、第１フィードバック量と学習値とが燃料噴射量の補正に使用されてもよく、第１フィードバック量を更新できない場合には学習値のみに基づいて燃料噴射量が補正されてもよい。また、第１フィードバック量を更新されているときには、第１フィードバック量のみに基づいて燃料噴射量が補正されてもよい。
【００２４】
学習促進手段は、「前記学習値」と「その学習値が収束すべき値」との差（便宜上、「第２偏差」とも称呼する。）が所定値以上である状態、即ち、学習不足状態が発生しているか否かを推定するようになっている。更に、学習促進手段は、学習不足状態が発生していると推定されるとき、学習不足状態が発生していないと推定されるときに比較して、前記学習値の更新速度を増大させる学習促進制御を実行するようになっている。
【００２５】
機関制御量変更手段は、空燃比変動要因制御量を変更する。この空燃比変動要因制御量は、前記燃料噴射弁から噴射される燃料の量以外の前記機関の制御量であって、且つ、変更されたときに前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を変動させる制御量である。この空燃比変動要因制御の代表例は、蒸発燃料ガスパージに関連する量、内部ＥＧＲに関連する量（内部ＥＧＲガス量を決定するバルブオーバーラップ量、吸気弁開弁時期及び排気弁閉弁時期等を含む。）、及び、外部ＥＧＲに関連する量等である。
【００２６】
更に、前記機関制御量変更手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して、「前記空燃比変動要因制御量」及び「前記空燃比変動要因制御量の変化速度」のうちの少なくとも一つを「小さくする」ように構成されている。
【００２７】
これによれば、学習促進制御が実行されているために学習値が機関の空燃比の変動（より正確には第１フィードバック量の変化）に敏感に反応する状況（即ち、空燃比の一時的変動によって学習値がその適正値から乖離し易い状況）において、空燃比変動要因制御量の大きさ又は空燃比変動要因制御量の変化速度が小さい値に設定される。このため、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であっても学習値が適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【００２８】
この場合、
前記機関制御量変更手段は、
「前記空燃比変動要因制御量の実際の値」を指示信号に応じて変更するアクチュエータと、
「前記空燃比変動要因制御量の目標値」を前記機関の運転状態に応じて決定するとともに、「前記空燃比変動要因制御量の実際の値」を「同決定された目標値」に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して「前記目標値及び前記目標値の変化速度」のうちの少なくとも一つの値が小さくなるように同目標値を決定するように構成されていることが好適である。
【００２９】
これによれば、「空燃比変動要因制御量の目標値」又は「空燃比変動要因制御量の目標値の変化速度」が、学習促進制御中において学習促進制御が行われていない場合よりも小さくなる。従って、学習促進制御中に空燃比変動要因制御量に起因する機関の空燃比の変動が小さくなるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができるので、エミッションが悪化する期間を短くすることができる。
【００３０】
前記空燃比変動要因制御量の一つは、前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスであって前記機関の吸気通路に導入される蒸発燃料ガスのパージ量である。
【００３１】
蒸発燃料ガスは、例えば、車両が炎天下に停止された後に機関が始動された場合等において極めて高濃度となる。そのような高い濃度の蒸発燃料ガスが吸気通路に導入されると（蒸発燃料ガスパージが行われると）、機関の空燃比は一時的に変動する。これは、例えば、高濃度の蒸発燃料ガスが各気筒に互いに均等には流入しないので、各気筒の空燃比の間に不均衡が生じることにも起因すると推定される。従って、空燃比変動要因制御量として「蒸発燃料ガスのパージ量」を採用すれば、学習促進制御の実行中における「蒸発燃料ガスパージに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００３２】
一方、本発明において、
前記アクチュエータは、
前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するためのパージ通路部に配設され且つ前記指示信号に応じて同パージ通路部の流路断面積を変更するパージ制御弁であり、
前記指示信号付与手段は、
前記機関に吸入される吸入空気流量に対する前記蒸発燃料ガスパージ量の比、又は、前記機関に吸入される吸入空気流量と前記蒸発燃料ガスパージ量との和に対する前記蒸発燃料ガスパージ量の比、として表される蒸発燃料ガスパージ率の目標値、若しくは、
前記蒸発燃料ガスパージ量の目標値、
を前記空燃比変動要因制御量の目標値として決定するするように構成され得る。
【００３３】
これによれば、学習促進制御中において、蒸発燃料ガスパージ率の目標値が小さくされるか、又は、蒸発燃料ガスパージ量の目標値が小さくされる。従って、学習促進制御中において大量の蒸発燃料ガスが吸気通路に導入されないので、蒸発燃料ガスパージに起因する機関の空燃比の一時的な変動を小さくできる。従って、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００３４】
また、本発明の他の態様において、
前記機関制御量変更手段は、
「前記燃料噴射弁に供給される燃料を貯蔵する燃料タンク」内に発生した「蒸発燃料ガス」を「前記機関の吸気通路に導入するためのパージ通路部」に配設され、且つ、指示信号に応じて同パージ通路部の流路断面積を変更するパージ制御弁を備え、
「蒸発燃料ガスパージ率の目標値」又は「前記蒸発燃料ガスパージ量の目標値」を、「前記空燃比変動要因制御量の目標値」として決定するとともに、同決定された目標値に対する基本指示信号を算出し、
（１）前記学習促進制御が実行されていないときには同算出された基本指示信号を前記指示信号として前記パージ制御弁に付与し、
（２）前記学習促進制御が実行されているときには同算出された基本指示信号に遅れながら追従する信号を算出し、且つ、同算出した追従する信号を前記指示信号として前記パージ制御弁に付与する、
ように構成され得る。
【００３５】
これによれば、「蒸発燃料ガスパージ率の目標値」又は「前記蒸発燃料ガスパージ量の目標値」が変化した場合であっても、パージ制御弁に付与される指示信号が、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して緩慢に変化する。従って、蒸発燃料ガスによる空燃比の一時的な変動が小さくなり、そのような変動は触媒の下流側に現れ難いので、第１フィードバック量も大きく変化し難くなる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００３６】
更に、前記空燃比変動要因制御量の一つは、前記少なくとも２以上の気筒の燃焼室において既に燃焼したガスであって同２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室に存在する「筒内残留ガス」の量（内部ＥＧＲガス量）である。
【００３７】
内部ＥＧＲガス量は筒内に吸入される新気の量や燃焼の状態に影響を及ぼす。従って、内部ＥＧＲガス量が想定した以上に大きくなる場合又は内部ＥＧＲガス量の変化速度が大きい場合等において、機関の空燃比は一時的に変動する。これは、例えば、各気筒の内部ＥＧＲガス量が互いに均等にならないので各気筒の空燃比の間に不均衡が生じるため、或いは、不整燃焼が発生するためと推定される。従って、空燃比変動要因制御量として「内部ＥＧＲガス量（筒内残留ガスの量）」を採用すれば、学習促進制御の実行中における「筒内残留ガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００３８】
また、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間の長さであるバルブオーバーラップ量を前記空燃比変動要因制御量として変更するバルブタイミング制御装置であり、
前記指示信号付与手段は、
前記バルブオーバーラップ量の目標値を前記空燃比変動要因制御量の目標値として決定するように構成されることが好ましい。
【００３９】
バルブオーバーラップ量は内部ＥＧＲガス量（筒内残留ガス量）を大きく変化させる。従って、空燃比変動要因制御量として「バルブオーバーラップ量」を採用すれば、学習促進制御の実行中における「筒内残留ガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００４０】
また、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁の開弁時期を前記空燃比変動要因制御量として変更する吸気タイミング制御装置であり、
前記指示信号付与手段は、
前記吸気弁開弁時期の目標値を前記空燃比変動要因制御量の目標値として決定するように構成されることが好ましい。
【００４１】
一般に、吸気弁開弁時期及び排気弁閉弁時期は「バルブオーバーラップ期間」が存在するように定められている。従って、内部ＥＧＲガス量（筒内残留ガス量）は「バルブオーバーラップ期間の開始時期」である吸気弁開弁時期（例えば、吸気上死点を基準とした進角量である吸気弁開弁時期進角量により表される。）に依存して変化する。それ故、空燃比変動要因制御量として「吸気弁開弁時期」を採用すれば、学習促進制御の実行中における「筒内残留ガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００４２】
また、
前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの排気弁の閉弁時期を前記空燃比変動要因制御量として変更する排気タイミング制御装置であり、
前記指示信号付与手段は、
前記排気弁閉弁時期の目標値を前記空燃比変動要因制御量の目標値として決定するように構成されることが好ましい。
【００４３】
上述したように、吸気弁開弁時期及び排気弁閉弁時期は「バルブオーバーラップ期間」が存在するように定められている。従って、内部ＥＧＲガス量（筒内残留ガス量）は「バルブオーバーラップ期間の終了時期」である排気弁閉弁時期（例えば、吸気上死点を基準とした遅角量である排気弁閉弁遅角量により表される。）に依存して変化する。それ故、空燃比変動要因制御量として「排気弁閉弁時期」を採用すれば、学習促進制御の実行中における「筒内残留ガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００４４】
前記空燃比変動要因制御量の一つは、「前記機関の排気通路であって前記触媒よりも上流側の部位」と「前記機関の吸気通路」とを接続する「排気還流管」を通して「吸気通路に導入される外部ＥＧＲガス」の量（外部ＥＧＲガス量）である。
【００４５】
外部ＥＧＲガス量も、内部ＥＧＲガス量と同様、筒内に吸入される新気の量に影響を及ぼす。従って、外部ＥＧＲガス量が想定した以上に大きくなる場合又は外部ＥＧＲガス量の変化速度が大きい場合等において、機関の空燃比は一時的に変動する。これは、例えば、各気筒の外部ＥＧＲガス量が互いに均等にならないので各気筒の空燃比の間に不均衡が生じるため、或いは、不整燃焼が発生するためと推定される。従って、空燃比変動要因制御量として「外部ＥＧＲガス量（排気還流量）」を採用すれば、学習促進制御の実行中における「外部ＥＧＲガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００４６】
また、
前記アクチュエータは、
「前記機関の排気通路であって前記触媒よりも上流側の部位」と「前記機関の吸気通路」とを接続する「排気還流管」に配設され、且つ、「前記指示信号に応じて同排気還流管の流路断面積を変更する」ＥＧＲ弁であり、
前記指示信号付与手段は、
外部ＥＧＲ率の目標値を前記空燃比変動要因制御量の目標値として決定するように構成されることが好ましい。
【００４７】
外部ＥＧＲ率は、例えば、「前記機関に吸入される吸入空気量と前記外部ＥＧＲガスの量との和」に対する「外部ＥＧＲガスの量」の比である。外部ＥＧＲ率は、「前記機関に吸入される吸入空気量」に対する「外部ＥＧＲガスの量」の比であってもよい。
【００４８】
これによれば、学習促進制御中において、外部ＥＧＲ率の目標値又は外部ＥＧＲ率の目標値の変化速度が小さくされる。従って、学習促進制御中において大量の外部ＥＧＲガスが吸気通路に導入されない、或いは、外部ＥＧＲガス量が急増しない、ので、外部ＥＧＲに起因する機関の空燃比の一時的な変動を小さくできる。従って、第１フィードバック量の変化も穏やかになる。その結果、学習値が適正値から乖離してしまう可能性を低減することができる。
【００４９】
また、
前記空燃比制御手段は、
「前記排気集合部」又は「前記排気集合部と前記触媒との間の前記排気通路」に配設され、且つ、「前記触媒を通過する前の排ガスが接触する拡散抵抗層」及び「同拡散抵抗層に接触するガスの空燃比に応じた出力値を出力する空燃比検出素子」を有する上流側空燃比センサと、
「前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比」を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比と一致させるための基本燃料噴射量を、前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に「前記上流側空燃比センサの出力値と前記第１フィードバック量と（場合により前記学習値と）」に基づき「前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比に一致するように」、前記基本燃料噴射量を補正するための第２フィードバック量を更新する第２フィードバック量更新手段と、
前記第２フィードバック量により前記基本燃料噴射量を補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射指示手段と、
前記学習値に基いて「前記触媒を通過する前の排ガスに含まれる水素の量と前記触媒を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータ」を取得するインバランス判定用パラメータ取得手段と、
前記取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき「前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比」である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段と、
を備えることができる。
【００５０】
後に詳述するように、機関全体（前記少なくとも２つの気筒）に供給される混合気の空燃比の真の平均値が例えば理論空燃比にフィードバック制御されている場合であっても、空燃比気筒間インバランスが発生した場合に排ガスに含まれる水素の総量ＳＨ１は、空燃比気筒間インバランスが発生していない場合に排ガスに含まれる水素の総量ＳＨ２よりも、顕著に大きくなる。水素の量が多い場合、水素は他の未燃物（ＨＣ，ＣＯ）よりも迅速に「上流側空燃比センサの拡散抵抗層」内を移動するから、上流側空燃比センサは実際の空燃比よりもリッチ側の空燃比に相当する出力値を出力する。その結果、上流側空燃比センサの出力値に基づくフィードバック制御（第２フィードバック量による制御）により、機関全体に供給される混合気の空燃比の真の平均は、理論空燃比よりもリーン側に制御されてしまう。
【００５１】
一方、下流側空燃比センサには、触媒を通過した排ガスが到達する。従って、排ガスに含まれる水素は他の未燃物（ＨＣ，ＣＯ）とともに触媒において酸化（浄化）される。それ故、下流側空燃比センサの出力値は、機関全体に供給される混合気の真の空燃比に応じた値となる。従って、下流側空燃比センサの出力値を下流側目標空燃比（例えば、理論空燃比）に応じた値に一致させるように更新される第１フィードバック量及びその学習値は、上流側空燃比センサの出力値に基づくフィードバック制御による空燃比のリーン側への過補正を補う値となる。この結果、前記学習値に基くことにより、「前記触媒を通過する前の排ガスに含まれる水素の量」と「前記触媒を通過した後の排ガスに含まれる水素の量」との差が大きいほど大きくなるインバランス判定用パラメータを取得することができる。
【００５２】
また、本発明によれば、学習値は、学習促進制御中において空燃比変動要因制御量に起因する影響を受け難いので、適正値に迅速に且つ誤りなく近づく可能性が高い。従って、インバランス判定用パラメータも精度のよい値となる。
【００５３】
そして、取得されたインバランス判定用パラメータが異常判定閾値よりも大きいとき「前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比」の間に不均衡が生じていると判定することができる。
【００５４】
より具体的には、前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータを前記学習値が大きくなるに従って大きくなるように取得するように構成される。この結果、実用性の高い「空燃比気筒間インバランス判定装置」を含む空燃比制御装置が提供される。
【図面の簡単な説明】
【００５５】
【図１】本発明の各実施形態に係る空燃比制御装置が適用される内燃機関の概略構成図である。
【図２】図１に示した可変吸気タイミング制御装置の概略断面図である。
【図３】図１に示した上流側空燃比センサの出力値と、上流側空燃比と、の関係を示したグラフである。
【図４】図１に示した下流側空燃比センサの出力値と、下流側空燃比と、の関係を示したグラフである。
【図５】本発明の各実施形態に係る制御装置の作動の概要を示したフローチャートである。
【図６】本発明の第１実施形態に係る制御装置（第１制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図７】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図８】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図９】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１０】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１１】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１２】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１４】第１制御装置の変形例が使用する目標パージ率を決定するためのルックアップテーブルである。
【図１５】本発明の第２実施形態に係る制御装置の作動を説明するためのタイムチャートである。
【図１６】本発明の第２実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１７】本発明の第２実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１８】本発明の第３実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１９】本発明の第３実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２０】本発明の第３実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２１】バルブオーバーラップ期間について説明するための図である。
【図２２】本発明の第４実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２３】本発明の第５実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２４】本発明の第５実施形態の変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２５】本発明の第５実施形態の他の変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２６】本発明の第６実施形態に係る制御装置の作動を説明するためのタイムチャートである。
【図２７】本発明の第６実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２８】本発明の第７実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２９】本発明の第７実施形態の変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３０】本発明の第７実施形態の他の変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３１】本発明の第８実施形態に係る制御装置の作動を説明するためのタイムチャートである。
【図３２】本発明の第８実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３３】本発明の第９実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３４】本発明の第９実施形態に係る制御装置の変形例が使用する目標外部ＥＧＲ率を決定するためのルックアップテーブルである。
【図３５】本発明の第１０実施形態に係る制御装置の作動を説明するためのタイムチャートである。
【図３６】本発明の第１０実施形態に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３７】本発明の第１変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図３８】図１に示した上流側空燃比センサの概略断面図である。
【図３９】排ガス（被検出ガス）の空燃比が理論空燃比よりもリーン側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
【図４０】排ガスの空燃比と上流側空燃比センサの限界電流値との関係を示したグラフである。
【図４１】排ガス（被検出ガス）の空燃比が理論空燃比よりもリッチ側の空燃比である場合の上流側空燃比センサの作動を説明するための図である。
【図４２】気筒に供給された混合気の空燃比と、その気筒から排出される未燃成分と、の関係を示したグラフである。
【図４３】空燃比気筒間インバランス割合とサブフィードバック量との関係を示したグラフである。
【図４４】本発明の第２変形例に係る制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００５６】
以下、本発明による多気筒内燃機関の制御装置の各実施形態について図面を参照しながら説明する。この制御装置は、内燃機関の空燃比を制御する空燃比制御装置であり、その空燃比を変更する燃料噴射量を制御する燃料噴射量制御装置でもある。
【００５７】
第１実施形態
（構成）
図１は、本発明の第１実施形態に係る多気筒内燃機関の制御装置（以下、「第１制御装置」とも称呼する。）を、４サイクル・火花点火式・多気筒（４気筒）・内燃機関１０に適用したシステムの概略構成を示している。なお、図１は、特定気筒の断面のみを示しているが、他の気筒も同様な構成を備えている。
【００５８】
この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０と、を含んでいる。
【００５９】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１の壁面及びピストン２２の上面は、シリンダヘッド部３０の下面とともに燃焼室２５を形成している。
【００６０】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともに同インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング制御装置３３、可変吸気タイミング制御装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフトを含むとともに同エキゾーストカムシャフトの位相角を連続的に変更する可変排気タイミング制御装置３６、可変排気タイミング制御装置３６のアクチュエータ３６ａ、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射する燃料噴射弁（フューエルインジェクタ、燃料噴射手段、燃料供給手段）３９を備えている。
【００６１】
可変吸気タイミング制御装置３３（可変バルブタイミング機構）は、例えば、特開２００７−３０３４２３号公報等に記載されているように周知の装置である。以下、可変吸気タイミング制御装置３３の概略断面図である図２を参照しながら可変吸気タイミング制御装置３３について簡単に説明する。
【００６２】
可変吸気タイミング制御装置３３は、タイミングプーリ３３ｂ１、円筒状ハウジング３３ｂ２、回転軸３３ｂ３、複数個の仕切壁３３ｂ４、及び、複数個のベーン３３ｂ５を備えている。
【００６３】
タイミングプーリ３３ｂ１は、図示しないタイミングベルトを介し、機関１０のクランク軸２４によって矢印Ｒの方向に回転せしめられるようになっている。円筒状ハウジング３３ｂ２は、タイミングプーリ３３ｂ１と一体的に回転するようになっている。回転軸３３ｂ３は、インテークカムシャフトと一体的に回転し且つ円筒状ハウジング３３ｂ２に対して相対回転可能となっている。仕切壁３３ｂ４は、円筒状ハウジング３３ｂ２の内周面から回転軸３３ｂ３の外周面まで延びている。ベーン３３ｂ５は、互いに隣接する二つの仕切壁３３ｂ４の間において回転軸３３ｂ３の外周面から円筒状ハウジング３３ｂ２の内周面まで延びている。このような構造により、各ベーン３３ｂ５の両側には、進角用油圧室３３ｂ６と遅角用油圧室３３ｂ７とが形成されている。進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７は、一方に作動油が供給されたとき他方から作動油が排出されるようになっている。
【００６４】
進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７への作動油の供給制御（給排）は、作動油供給制御弁を含む図１にも示したアクチュエータ３３ａと、図示しない油圧ポンプと、によって行われる。アクチュエータ３３ａは、電磁駆動式であって指示信号（駆動信号）に応答して前記作動油の供給制御を行う。即ち、インテークカムシャフトのカムの位相を進角すべきとき、アクチュエータ３３ａは、進角用油圧室３３ｂ６に作動油を供給するとともに遅角用油圧室３３ｂ７内の作動油を排出する。このとき、回転軸３３ｂ３は、円筒状ハウジング３３ｂ２に対して矢印Ｒの方向に相対回転せしめられる。これに対し、インテークカムシャフトのカムの位相を遅角すべきとき、アクチュエータ３３ａは、遅角用油圧室３３ｂ７に作動油を供給するとともに進角用油圧室３３ｂ６内の作動油を排出する。このとき、回転軸３３ｂ３は、円筒状ハウジング３３ｂ２に対して矢印Ｒと反対の方向に相対回転せしめられる。
【００６５】
更に、アクチュエータ３３ａが進角用油圧室３３ｂ６及び遅角用油圧室３３ｂ７への作動油の給排を停止すると、円筒状ハウジング３３ｂ２に対する回転軸３３ｂ３の相対回転動作は停止せしめられ、回転軸３３ｂ３は、その時点での相対回転位置に保持される。このように、可変吸気タイミング制御装置３３は、インテークカムシャフトのカムの位相を所望の量だけ進角及び遅角させることができる。
【００６６】
可変吸気タイミング制御装置３３によれば、吸気弁３２の開弁期間の長さ（開弁クランク角度幅）は、インテークカムシャフトのカムのプロフィールによって決定されるので、一定に維持される。即ち、可変吸気タイミング制御装置３３により、吸気弁開弁時期ＩＮＯが所定角度だけ進角又は遅角させられると、吸気弁閉弁時期ＩＮＣもその所定角度だけ進角又は遅角させられる。
【００６７】
なお、上述した可変吸気タイミング制御装置３３は、例えば、特開２００４−１５０３９７号公報等に開示されている「電動式可変吸気タイミング制御装置」に置換されてもよい。この電動式可変吸気タイミング制御装置は、電磁コイルと複数の歯車とを備える。この装置は、指示信号（駆動信号）に応じて電磁コイルが発生する磁力により、その複数の歯車の相対回転位置を変化させ、もって、インテークカムシャフトのカムの位相を所望の量だけ進角又は遅角することができるようになっている。
【００６８】
再び、図１を参照すると、可変排気タイミング制御装置３６は、エキゾーストカムシャフトの端部に取り付けられている。この可変排気タイミング制御装置３６は、上述した油圧式の可変吸気タイミング制御装置３３と同様の構成を有している。更に、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６は、互いに独立して吸気弁３２及び排気弁３５の開閉時期を制御することができる。なお、この可変排気タイミング制御装置３６も、上記同様、電動式の可変排気タイミング制御装置に置換されてもよい。
【００６９】
可変排気タイミング制御装置３６によれば、排気弁３５の開弁期間の長さ（開弁クランク角度幅）は、エキゾーストカムシャフトのカムのプロフィールによって決定されるので、一定に維持される。即ち、可変排気タイミング制御装置３６により、排気弁閉弁時期ＥＸＣが所定角度だけ進角又は遅角させられると、排気弁開弁時期ＥＸＯもその所定角度だけ進角又は遅角させられる。
【００７０】
燃料噴射弁３９は、各気筒の燃焼室２５一つに対して一つずつ配設されている。燃料噴射弁３９は吸気ポート２２に設けられている。燃料噴射弁３９は、噴射指示信号に応答し、正常である場合に「その噴射指示信号に含まれる指示噴射量の燃料」を対応する吸気ポート２２内に噴射するようになっている。このように、複数の気筒のそれぞれは、他の気筒とは独立して燃料供給を行う燃料噴射弁３９を備えている。
【００７１】
吸気系統４０は、インテークマニホールド４１、吸気管４２、エアフィルタ４３、及び、スロットル弁４４を備えている。インテークマニホールド４１は、複数の枝部４１ａとサージタンク４１ｂとからなる。複数の枝部４１ａのそれぞれの一端は複数の吸気ポート３１のそれぞれに接続されている。複数の枝部４１ａの他端はサージタンク４１ｂに接続されている。吸気管４２の一端はサージタンク４１ｂに接続されている。エアフィルタ４３は吸気管４２の他端に配設されている。スロットル弁４４は、吸気管４２内にあって吸気通路の開口断面積を可変とするようになっている。スロットル弁４４は、ＤＣモータからなるスロットル弁アクチュエータ４４ａにより吸気管４２内で回転駆動されるようになっている。
【００７２】
更に、内燃機関１０は、液体ガソリン燃料を貯留する燃料タンク４５、燃料タンク４５内にて発生した蒸発燃料を吸蔵可能なキャニスタ４６、前記蒸発燃料を含むガスを燃料タンク４５からキャニスタ４６へと導くためのベーパ捕集管４７、キャニスタ４６から脱離した蒸発燃料を蒸発燃料ガスとしてサージタンク４１ｂへと導くためのパージ流路管４８、及び、パージ流路管４８に配設されたパージ制御弁４９を備えている。燃料タンク４５に貯留された燃料は、燃料ポンプ４５ａ及び燃料供給管４５ｂ等を通して燃料噴射弁３９に供給されるようになっている。ベーパ捕集管４７及びパージ流路管４８はパージ通路（パージ通路部）を構成している。
【００７３】
パージ制御弁４９は、指示信号であるデューティ比ＤＰＧを表す駆動信号により開度（開弁期間）が調節されることにより、パージ流路管４８の通路断面積を変更するようになっている。パージ制御弁４９は、デューティ比ＤＰＧが「０」であるときにパージ流路管４８を完全に閉じるようになっている。即ち、パージ制御弁４９は、パージ通路に配設されるとともに指示信号に応答して開度が変更されるように構成されている。従って、パージ制御弁４９は、蒸発燃料ガスパージ量及び蒸発燃料ガスパージ率を制御するアクチュエータである。
【００７４】
キャニスタ４６は周知のチャコールキャニスタである。キャニスタ４６は、ベーパ捕集管４７に接続されたタンクポート４６ａと、パージ流路管４８に接続されたパージポート４６ｂと、大気に曝されている大気ポート４６ｃと、が形成された筐体を備える。キャニスタ４６は、その筐体内に、蒸発燃料を吸着するための吸着剤４６ｄを収納している。キャニスタ４６は、パージ制御弁４９が完全に閉じられている期間において燃料タンク４５内で発生した蒸発燃料を吸蔵し、パージ制御弁４９が開かれている期間において吸蔵した蒸発燃料を蒸発燃料ガスとしてパージ流路管４８を通してサージタンク４１ｂ（スロットル弁４４よりも下流の吸気通路）に放出するようになっている。これにより、蒸発燃料ガスは燃焼室２５へ供給される。即ち、パージ制御弁４９が開かれることにより、蒸発燃料ガスパージ（又は、略して、エバポパージ）が行われる。
【００７５】
排気系統５０は、各気筒の排気ポート３４に一端が接続された複数の枝部を含むエキゾーストマニホールド５１、各エキゾーストマニホールド５１の枝部の他端であって総ての枝部が集合している集合部（エキゾーストマニホールド５１の排気集合部）に接続されたエキゾーストパイプ５２、エキゾーストパイプ５２に配設された上流側触媒５３、及び、上流側触媒５３よりも下流のエキゾーストパイプ５２に配設された図示しない下流側触媒を備えている。排気ポート３４、エキゾーストマニホールド５１及びエキゾーストパイプ５２は、排気通路を構成している。このように、上流側触媒５３は、排気通路の「総ての燃焼室２５（少なくとも２以上の燃焼室）から排出された排ガスが集合する排気集合部よりも下流側の部位」に配設されている。
【００７６】
上流側触媒５３及び下流側触媒のそれぞれは、所謂、白金等の貴金属からなる活性成分を担持する三元触媒装置（排気浄化触媒）である。各触媒は、各触媒に流入するガスの空燃比が理論空燃比であるとき、ＨＣ，ＣＯなどの未燃成分を酸化するとともに窒素酸化物（ＮＯｘ）を還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有し、この酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。この酸素吸蔵機能は、触媒に担持されているセリア（ＣｅＯ２）によってもたらされる。
【００７７】
更に、機関１０は、排気還流システムを備えている。排気還流システムは、外部ＥＧＲ通を構成する排気還流管５４、及び、ＥＧＲ弁５５を含んでいる。
【００７８】
排気還流管５４の一端はエキゾーストマニホールド５１の集合部に接続されている。排気還流管５４の他端はサージタンク４１ｂに接続されている。
【００７９】
ＥＧＲ弁５５は排気還流管５４に配設されている。ＥＧＲ弁５５は、ＤＣモータを駆動源として内蔵している。ＥＧＲ弁５５は、そのＤＣモータへの指示信号であるデューティ比ＤＥＧＲに応答して弁開度を変更し、それにより排気還流管５４の通路断面積を変更するようになっている。ＥＧＲ弁５５は、デューティ比ＤＥＧＲが「０」であるときに排気還流管５４を完全に閉じるようになっている。即ち、ＥＧＲ弁５５は、外部ＥＧＲ通路に配設されるとともに指示信号に応答して開度が変更されることにより、排気還流量（外部ＥＧＲガス量）を制御するように構成されている。
【００８０】
一方、このシステムは、熱線式エアフローメータ６１、スロットルポジションセンサ６２、水温センサ６３、クランクポジションセンサ６４、インテークカムポジションセンサ６５、エキゾーストカムポジションセンサ６６、上流側空燃比センサ６７、下流側空燃比センサ６８、アルコール濃度センサ６９、ＥＧＲ弁開度センサ（ＥＧＲ弁リフト量センサ）７０、及び、アクセル開度センサ７１を備えている。
【００８１】
エアフローメータ６１は、吸気管４２内を流れる吸入空気の質量流量（吸入空気流量）Ｇａに応じた信号を出力するようになっている。
【００８２】
スロットルポジションセンサ６２は、スロットル弁４４の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００８３】
水温センサ６３は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００８４】
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置８０によって機関回転速度ＮＥに変換される。
【００８５】
インテークカムポジションセンサ６５は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
【００８６】
エキゾーストカムポジションセンサ６６は、エキゾーストカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。
【００８７】
上流側空燃比センサ６７は排気通路であって「排気集合部（エキゾーストマニホールド５１の枝部の集合部）と上流側触媒５３との間」の位置に配設されている。上流側空燃比センサ６７の配設位置は、排気集合部であってもよい。上流側空燃比センサ６７は、後に詳述するように、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【００８８】
上流側空燃比センサ６７は、図３に示したように、「被検出ガス」の空燃比Ａ／Ｆに応じた電圧である出力値Vabyfsを出力するようになっている。従って、本例において、上流側空燃比センサ６７は、排気通路であって上流側空燃比センサ６７が配設されている部位を流れるガスの空燃比（即ち、上流側触媒５３に流入する排ガスの空燃比、従って、機関に供給される混合気の空燃比）に応じた出力値Vabyfsを発生するようになっている。
【００８９】
出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる（リーンとなる）ほど増大する。即ち、上流側空燃比センサ６７は、被検出ガスの空燃比の変化に対して出力が連続的に変化する。
【００９０】
後述する電気制御装置８０は、図３に示したテーブル（マップ）Mapabyfsを記憶していて、そのテーブルMapabyfsに実際の出力値Vabyfsを適用することによって空燃比を検出するようになっている。以下、上流側空燃比センサの出力値VabyfsとテーブルMapabyfsとによって取得される空燃比を、上流側空燃比abyfs又は検出空燃比abyfsとも称呼する。
【００９１】
下流側空燃比センサ６８は、排気通路であって上流側触媒５３よりも下流側であり且つ下流側触媒よりも上流側（即ち、上流側触媒５３と下流側触媒との間の排気通路）に配設されている。下流側空燃比センサ６８は、周知の起電力式の酸素濃度センサ（安定化ジルコニアを用いた周知の濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ６８は、排気通路であって下流側空燃比センサ６８が配設されている部位を流れるガスである被検出ガスの空燃比（即ち、上流側触媒５３から流出し且つ下流側触媒に流入するガスの空燃比、従って、機関に供給される混合気の空燃比の時間的平均値）に応じた出力値Voxsを発生するようになっている。
【００９２】
この出力値Voxsは、図４に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値max（例えば、約０．９Ｖ）となり、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値min（例えば、約０．１Ｖ）となり、被検出ガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Ｖst（中間電圧Ｖst、例えば、約０．５Ｖ）となる。更に、この出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変し、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
【００９３】
再び、図１を参照すると、アルコール濃度センサ６９は燃料供給管４５ｂに配設されている。アルコール濃度センサ６９は、燃料（ガソリン燃料）に含まれるアルコール（エタノール等）の濃度を検出し、その濃度ＥｔＯＨを表す信号を出力するようになっている。
【００９４】
ＥＧＲ弁開度センサ７０は、ＥＧＲ弁の開度（即ち、ＥＧＲ弁が備える弁体のリフト量）を検出し、その開度ＡＥＧＲＶactを表す信号を出力するようになっている。
【００９５】
アクセル開度センサ７１は、運転者によって操作されるアクセルペダル９１の操作量Accpを表す信号を出力するようになっている。
【００９６】
電気制御装置８０は、互いにバスで接続された「ＣＰＵ８１、ＣＰＵ８１が実行するプログラム、テーブル（マップ、関数）及び定数等を予め記憶したＲＯＭ８２、ＣＰＵ８１が必要に応じてデータを一時的に格納するＲＡＭ８３、及び、バックアップＲＡＭ８４並びにＡＤコンバータを含むインターフェース８５等」からなる周知のマイクロコンピュータである。
【００９７】
バックアップＲＡＭ８４は、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭ８４は、バッテリから電力の供給を受けている場合、ＣＰＵ８１の指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。バックアップＲＡＭ８４は、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、ＣＰＵ８１は、バックアップＲＡＭ８４への電力供給が再開されたとき、バックアップＲＡＭ８４に保持されるべきデータを初期化（デフォルト値に設定）するようになっている。
【００９８】
インターフェース８５は、センサ６１〜７１と接続され、ＣＰＵ８１にそれらのセンサからの信号を供給するようになっている。更に、インターフェース８５は、ＣＰＵ８１の指示に応じて可変吸気タイミング制御装置３３のアクチュエータ３３ａ、可変排気タイミング制御装置３６のアクチュエータ３６ａ、各気筒のイグナイタ３８、各気筒に対応して設けられた燃料噴射弁３９及びスロットル弁アクチュエータ４４ａ、パージ制御弁４９、及び、ＥＧＲ弁５５等に駆動信号（指示信号）を送出するようになっている。
【００９９】
（制御概要）
次に、上記のように構成された第１制御装置の作動の概要について説明する。なお、本明細書において、変数ｋが付された値は、今回の燃焼サイクルについての値であることを示す。即ち、変数Ｘ（ｋ）は今回の燃焼サイクルに対する値Ｘであり、Ｘ（ｋ−Ｎ）はＮ回前の燃焼サイクルに対する値Ｘである。
【０１００】
第１制御装置は、上流側空燃比センサ６７の出力値Vabyfsに基いて得られる上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるメインフィードバック制御と、下流側空燃比センサ６８の出力値Voxsを下流側目標値Voxsrefに一致させるサブフィードバック制御と、を含む空燃比フィードバック制御を実行する。
【０１０１】
実際には、第１制御装置は「上流側空燃比センサ６７の出力値Vabyfs」を「下流側空燃比センサ６８の出力値Voxsと下流側目標値Voxsrefとの出力偏差量Dvoxsを小さくするように算出されたサブフィードバック量Vafsfb（及びその学習値Vafsfbg）」により補正し、それによって「フィードバック制御用空燃比（補正検出空燃比）abyfsc」を算出し、そのフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させる空燃比フィードバック制御を行う。サブフィードバック量Vafsfbは便宜上「第１フィードバック量」とも称呼される。
【０１０２】
＜メインフィードバック制御及び最終燃料噴射量の決定＞
より具体的に述べると、第１制御装置は、フィードバック制御用出力値Vabyfcを下記（１）式に従って算出する。（１）式において、Vabyfsは上流側空燃比センサ６７の出力値、Vafsfbは下流側空燃比センサ６８の出力値Voxsに基いて算出されるサブフィードバック量、Vafsfbgはサブフィードバック量の学習値である。これらの値は、何れも現時点において得られている値である。サブフィードバック量Vafsfb及びサブフィードバック量の学習値Vafsfbgの算出方法は後述される。
Vabyfc＝Vabyfs＋Vafsfb＋Vafsfbg    …（１）
【０１０３】
第１制御装置は、下記（２）式に示したように、フィードバック制御用出力値Vabyfcを図３に示したテーブルMapabyfsに適用することによりフィードバック制御用空燃比abyfscを得る。
abyfsc＝Mapabyfs（Vabyfc）    …（２）
【０１０４】
一方、第１制御装置は、現時点にて各気筒（各燃焼室２５）に吸入される空気量である筒内吸入空気量Ｍｃ（ｋ）を求める。筒内吸入空気量Ｍｃ（ｋ）は、各気筒の吸気行程毎に、その時点のエアフローメータ６１の出力Ｇａと機関回転速度ＮＥとに基いて求められる。例えば、筒内吸入空気量Ｍｃ（ｋ）は、「エアフローメータ６１により計測された吸入空気量Ｇａ、機関回転速度ＮＥ及びルックアップテーブルMapMc」に基いて求められる。或いは、筒内吸入空気量Ｍｃ（ｋ）は、エアフローメータ６１の吸入空気量Ｇａに対して一次遅れ処理を施した値を機関回転速度ＮＥで除することにより求められられる。筒内吸入空気量Ｍｃ（ｋ）は、周知の空気モデル（吸気通路における空気の挙動を模した物理法則に従って構築されたモデル）により算出されてもよい。筒内吸入空気量Ｍｃ（ｋ）は、各吸気行程に対応されながらＲＡＭ８３内に記憶される。
【０１０５】
第１制御装置は、下記（３）式に示したように、その筒内吸入空気量Ｍｃ（ｋ）を現時点における上流側目標空燃比abyfrによって除すことにより基本燃料噴射量Ｆｂを求める。上流側目標空燃比abyfrは、機関暖機中、フューエルカット復帰後増量中及び触媒過熱防止増量中等の特殊な場合を除き、理論空燃比stoichに設定される。なお、本例において、上流側目標空燃比abyfrは常に理論空燃比stoichに設定されている。基本燃料噴射量Ｆｂ（ｋ）は、各吸気行程に対応されながらＲＡＭ８３内に記憶される。
Ｆｂ（ｋ）＝Ｍｃ（ｋ）／abyfr    …（３）
【０１０６】
第１制御装置は、下記（４）式に示したように、基本燃料噴射量Ｆｂを種々の補正係数により補正することにより、最終燃料噴射量Ｆｉを算出する。そして、第１制御装置は、最終燃料噴射量Ｆｉの燃料を吸気行程を迎えている気筒の燃料噴射弁３９から噴射する。
Ｆｉ＝ＫＧ・ＦＰＧ・ＦＡＦ・Ｆｂ（ｋ）    …（４）
【０１０７】
上記（４）式の右辺における各値は以下の通りである。
ＫＧ：メインフィードバック係数の学習値（メインＦＢ学習値ＫＧ）。
ＦＰＧ：パージ補正係数。
ＦＡＦ：メインフィードバック制御により更新（算出）されるメインフィードバック係数。
メインＦＢ学習値ＫＧ及びパージ補正係数の算出・更新方法は後述される。ここでは、メインフィードバック係数ＦＡＦの更新（算出）方法について述べる。
【０１０８】
メインフィードバック係数ＦＡＦ（便宜上、第２フィードバック量とも称呼される。）はメインフィードバック値ＤＦｉに基いて算出される。メインフィードバック値ＤＦｉは、次のようにして求められる。第１制御装置は、下記（５）式に示したように、現時点よりもＮサイクル（即ち、Ｎ・７２０°クランク角）前の時点における筒内吸入空気量Ｍｃ（ｋ−Ｎ）を、上記フィードバック制御用空燃比abyfscで除すことにより、現時点よりもＮサイクル前の時点において燃焼室２５に実際に供給された燃料の量である「筒内燃料供給量Ｆｃ（ｋ−Ｎ）」を求める。
Ｆｃ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／abyfsc    …（５）
【０１０９】
このように、現時点からＮサイクル前の筒内燃料供給量Ｆｃ（ｋ−Ｎ）を求めるために、現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）をフィードバック制御用空燃比abyfscで除すのは、燃焼室２５内で燃焼された混合気が上流側空燃比センサ６７に到達するまでにＮストロークに相当する時間を要するからである。但し、実際には、上流側空燃比センサ６７には各気筒から排出された排ガスがある程度混合された後に到達する。
【０１１０】
次に、第１制御装置は、下記（６）式に示したように、「現時点からＮストローク前の筒内吸入空気量Ｍｃ（ｋ−Ｎ）」を「現時点からＮストローク前の上流側目標空燃比abyfr（ｋ−Ｎ）」で除すことにより「現時点からＮストローク前の目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）」を求める。なお、上述したように、本例において上流側目標空燃比abyfrは一定であるので、（６）式においては単にabyfrと表記されている。
Ｆｃｒ（ｋ−Ｎ）＝Ｍｃ（ｋ−Ｎ）／abyfr    …（６）
【０１１１】
制御装置は、下記（７）式に示したように、目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）から筒内燃料供給量Ｆｃ（ｋ−Ｎ）を減じた値を筒内燃料供給量偏差ＤＦｃとして設定する。この筒内燃料供給量偏差ＤＦｃは、Ｎストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
ＤＦｃ＝Ｆｃｒ（ｋ−Ｎ）−Ｆｃ（ｋ−Ｎ）    …（７）
【０１１２】
その後、制御装置は、下記（８）式に基いてメインフィードバック値ＤＦｉを求める。この（８）式において、Ｇｐは予め設定された比例ゲイン、Ｇｉは予め設定された積分ゲインである。なお、（８）式の係数ＫＦＢは機関回転速度ＮＥ及び筒内吸入空気量Ｍｃ等により可変とすることが好適であるが、ここでは「１」としている。また、（８）式の値ＳＤＦｃは筒内燃料供給量偏差ＤＦｃの積分値である。つまり、第１制御装置は、フィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させる比例・積分制御（ＰＩ制御）によりメインフィードバック値ＤＦｉを算出する。
ＤＦｉ＝（Ｇｐ・ＤＦｃ＋Ｇｉ・ＳＤＦｃ）・ＫＦＢ    …（８）
【０１１３】
そして、第１制御装置は、メインフィードバック値ＤＦｉ及び基本燃料噴射量Ｆｂ（ｋ−Ｎ）を下記（９）式に適用することによりメインフィードバック係数ＦＡＦを算出する。即ち、メインフィードバック係数ＦＡＦは、現時点からＮストローク前の基本燃料噴射量Ｆｂ（ｋ−Ｎ）にメインフィードバック値ＤＦｉを加えた値を基本燃料噴射量Ｆｂ（ｋ−Ｎ）で除すことにより求められる。
ＦＡＦ＝（Ｆｂ（ｋ−Ｎ）＋ＤＦｉ）／Ｆｂ（ｋ−Ｎ）    …（９）
【０１１４】
メインフィードバック係数ＦＡＦは、上記（４）式に示したように基本燃料噴射量Ｆｂ（ｋ）に乗じられる。なお、メインフィードバック係数ＦＡＦは、所定の第３更新タイミングが到来する毎（例えば、第３所定時間の経過毎）に更新される。以上が、メインフィードバック制御（従って、空燃比フィードバック制御）の概要である。
【０１１５】
＜サブフィードバック制御＞
次に、上記（１）式にて使用するサブフィードバック量Vafsfbの算出方法について述べる。第１制御装置は下記（１０）式に示したように、所定の第１更新タイミングが到来する毎（例えば、第１所定時間の経過毎）に、下流側目標値Voxsrefから現時点の下流側空燃比センサ６８の出力値Voxsを減じることにより出力偏差量（第１偏差）DVoxsを求める。
DVoxs＝Voxsref−Voxs    …（１０）
【０１１６】
（１０）式における下流側目標値Voxsrefは、上流側触媒５３の浄化効率が良好となるように定められる。下流側目標値Voxsrefは、本例において理論空燃比に相当する値（理論空燃比相当値）Ｖstに設定される。
【０１１７】
第１制御装置は、下記（１１）式に基いてサブフィードバック量Vafsfbを求める。（１１）式において、Ｋｐは比例ゲイン（比例定数）、Ｋｉは積分ゲイン（積分定数）、Ｋｄは微分ゲイン（微分定数）である。また、SDVoxsは、出力偏差量DVoxsの積分値（時間積分値）、DDVoxsは出力偏差量DVoxsの微分値（時間微分値）である。
Vafsfb＝Ｋｐ・DVoxs＋Ｋｉ・SDVoxs＋ｋｄ・DDVoxs    …（１１）
【０１１８】
このように、第１制御装置は、下流側空燃比センサ６８の出力値Voxsを下流側目標値Voxsrefに一致させる比例・積分・微分制御（ＰＩＤ制御）によりサブフィードバック量Vafsfbを算出する。このサブフィードバック量Vafsfbは、上述した（１）式に示したように、フィードバック制御用出力値Vabyfcを算出するために使用される。
【０１１９】
このように、第１制御装置は、所定の第１更新タイミングが到来する毎（第１の所定時間の経過毎等）に下流側空燃比センサ６８の出力値Voxsを下流側目標空燃比に応じた値（下流側目標値Voxsref、理論空燃比に相当する値Ｖst）に一致させるための第１フィードバック量（サブフィードバック量Vafsfb）を、下流側空燃比センサ６８の出力値Voxsと下流側目標値Voxsrefに応じた値との差である第１偏差（出力偏差量DVoxs）に基いて更新する第１フィードバック量更新手段を備える。
【０１２０】
＜サブフィードバック制御の学習＞
次に、上記（１）式にて使用するサブフィードバック量の学習値Vafsfbg（サブＦＢ学習値Vafsfbg、第１フィードバック量の学習値）の算出方法について述べる。第１制御装置は、所定の第２更新タイミングが到来する毎（第２の所定時間の経過毎、或いは、下流側空燃比センサ６８の出力値Voxsが理論空燃比に相当する値Ｖstを横切る毎等）に、下記（１２）式に基いてサブフィードバック量Vafsfbの学習値Vafsfbgを更新する。（１２）式の左辺Vafsfbgnewは更新後の学習値Vafsfbgを表す。つまり、サブＦＢ学習値Vafsfbgは、所定の第２更新タイミングが到来する毎に、サブフィードバック量Vafsfbの定常成分に応じた量となるように更新される。これは、サブＦＢ学習値Vafsfbgは、「第１フィードバック量であるサブフィードバック量Vafsfbの定常成分を取り込むように」更新されるのと同義である。換言すると、サブＦＢ学習値Vafsfbgは、「第１フィードバック量であるサブフィードバック量Vafsfbが、学習値Vafsfbgの更新をしない場合に収束するであろう値」に除々に接近するように、更新される。
【０１２１】
（１２）式から明らかなように、学習値Vafsfbgはサブフィードバック量Vafsfbの積分項Ｋｉ・SDVoxsにノイズ除去のためのフィルタ処理を施した値である。（１２）式において、値pは０以上１未満の任意の値である。更新後の学習値Vafsfbgnewは学習値VafsfbgとしてバックアップＲＡＭ８４に格納される。（１２）式から明らかなように、値pが大きいほど、現時点の積分項Ｋｉ・SDVoxsが学習値Vafsfbgに大きく反映される。即ち、値pを大きくするほど、学習値Vafsfbgの更新速度を大きくすることができ、学習値Vafsfbgを収束値と等しいであろう積分項Ｋｉ・SDVoxsにより迅速に接近させることができる。なお、学習値Vafsfbgは下記の（１３）式に示したように更新されてもよい。
Vafsfbgnew＝（１−p）・Vafsfbg＋p・Ｋｉ・SDVoxs    …（１２）
Vafsfbgnew＝（１−p）・Vafsfbg＋p・Vafsfb    …（１３）
【０１２２】
＜サブフィードバック制御の学習に伴うサブフィードバック量の補正＞
上記（１）式に示したように、第１制御装置は、サブフィードバック量Vafsfb及び学習値Vafsfbgを上流側空燃比センサ６７の出力値Vabyfsに加えることにより、フィードバック制御用出力値Vabyfcを得る。学習値Vafsfbgはサブフィードバック量Vafsfbの積分項Ｋｉ・SDVoxs（定常成分）の一部を取り込んだ値である。従って、学習値Vafsfbgを更新した場合、サブフィードバック量Vafsfbをその更新分に応じて補正しないと、更新後の学習値Vafsfbgとサブフィードバック量Vafsfbとにより二重の補正が行われる。従って、学習値Vafsfbgを更新した場合、サブフィードバック量Vafsfbをその学習値Vafsfbgの更新分に応じて補正する必要がある。
【０１２３】
そこで、第１制御装置は下記（１４）及び下記（１５）式に示したように、学習値Vafsfbgを変更量ΔＧだけ増加するように更新したとき、サブフィードバック量Vafsfbを変更量ΔＧだけ減少させる修正を行う。（１４）式において、Vafsfbg0は更新直前の学習値Vafsfbgである。従って、変更量ΔＧは正の値及び負の値の何れともなる。（１５）式において、Vafsfbnewは修正後のサブフィードバック量Vafsfbである。更に、第１制御装置は、学習値Vafsfbgを変更量ΔＧだけ増加するように更新したとき、出力偏差量DVoxsの積分値を下記（１６）式のように修正しておくことが望ましい。（１６）式においてSDVoxsnewは、修正後の出力偏差量DVoxsの積分値である。但し、（１４）式乃至（１６）式による補正を行わなくてもよい。
ΔＧ＝Vafsfbg−Vafsfbg0      …（１４）
Vafsfbnew＝Vafsfb−ΔＧ      …（１５）
SDVoxsnew＝SDVoxs−ΔＧ/Ｋｉ    …（１６）
【０１２４】
以上、説明したように、第１制御装置は、サブフィードバック量Vafsfbと学習値Vafsfbgとの和だけ上流側空燃比センサ６７の出力値Vabyfsを補正し、その補正によって得られたフィードバック制御用出力値Vabyfcに基いてフィードバック制御用空燃比abyfscを取得する。そして、制御装置は、取得したフィードバック制御用空燃比abyfscを上流側目標空燃比abyfrに一致させるように燃料噴射量Ｆｉを制御する。その結果、上流側空燃比abyfsは上流側目標空燃比abyfrに近づき、同時に、下流側空燃比センサ６８の出力値Voxsは下流側目標値Voxsrefに近づく。
【０１２５】
このように、第１制御装置は、上流側空燃比センサ６７の出力値Vabyfsとサブフィードバック量Vafsfbと学習値Vafsfbgとに基づき機関の混合気の空燃比を上流側目標空燃比abyfrに一致させる空燃比フィードバック制御手段を備えている。更に、第１制御装置は、所定の第２更新タイミングが到来する毎に第１フィードバック量（サブフィードバック量Vafsfb）に基いて第１フィードバック量の学習値（学習値Vafsfbg）を更新する学習手段を備える。また、学習手段は、学習値Vafsfbgが更新されると、サブフィードバック量Vafsfbを「更新した学習値Vafsfbgに応じた分（学習値Vafsfbgの変更量ΔＧ）」により補正し、出力偏差量DVoxsの積分値SDVoxsも変更量ΔＧに応じて修正するようになっている。
【０１２６】
＜サブフィードバック量の学習促進制御＞
第１制御装置は、更に、学習不足状態が発生していると推定されるとき、学習不足状態が発生していないと推定されないときに比較して、学習値Vafsfbgの更新速度を増大させるための学習促進制御を実行する学習促進手段を備える。学習不足状態は、「学習値Vafsfbg」と「学習値Vafsfbgが収束すべき値」との差である第２偏差が所定値以上である状態である。
【０１２７】
より具体的に述べると、第１制御装置は、学習値Vafsfbgの変化量（変化速度）が所定閾値以上であるとき、学習不足状態が発生していると推定する。学習値Vafsfbgの変化量は、例えば、更新回数において所定回数だけ前の時点にて更新された過去の学習値Vafsfbgold（例えば４回前に更新された学習値Vafsfbg（４））と、今回更新された学習値Vafsfbgと、の差により取得され得る。
【０１２８】
そして、第１制御装置は、学習不足状態が発生していると推定したとき、上記（１２）式の値ｐを、学習不足状態が発生していないと推定しているときの値ｐSmallよりも大きな値ｐLargeに設定する。この結果、学習値Vafsfbgの更新速度が大きくなるので、学習値Vafsfbgは収束値により迅速に接近する。
【０１２９】
＜学習促進制御実行中における空燃比変動要因制御量の制御＞
しかしながら、空燃比変動要因制御量に起因して「機関の空燃比が過渡的に乱れる状態」が発生すると、サブフィードバック量もそれに応じて収束値とは異なる値へと一時的に変化する場合がある。このとき、学習促進制御が実行されていると、学習値もサブフィードバック量の変化に敏感に反応する。この結果、学習値が本来到達すべき値から乖離し、機関の空燃比が適正値から乖離してしまう虞がある。
【０１３０】
空燃比変動要因制御量は、前述したように、蒸発燃料ガスパージに関連する量、内部ＥＧＲに関連する量（内部ＥＧＲガス量を決定するバルブオーバーラップ量や吸気弁開弁時期等を含む。）、及び、外部ＥＧＲに関連する量等である。即ち、空燃比変動要因制御量は、「燃料噴射弁３９から噴射される燃料の量」以外の機関１０の制御量であって、且つ、それが変更されたときに機関に供給される混合気の空燃比（機関の空燃比）を変動させる制御量である。
【０１３１】
そこで、第１制御装置は、図５の概念フローチャートに示したように、先ずステップ５１０にてサブフィードバック量の学習促進要求があるか否か（学習不足状態であるか否か）を判定し、学習促進要求がななければステップ５２０に進んで空燃比変動要因制御量の通常制御を行う。なお、空燃比変動要因制御量の通常制御は、単に「非抑制制御」とも称呼される。次いで、ステップ５３０に進んでサブフィードバック量の学習を通常通り行う。即ち、第１制御装置は、ステップ５３０に進むと、上記（１２）式の値ｐを値ｐSmallに設定し、サブフィードバック量通常学習制御（学習非促進制御）を実行する。
【０１３２】
一方、ステップ５１０にてサブフィードバック量の学習促進要求がある場合、第１制御装置はステップ５４０に進み、空燃比変動要因制御量の抑制制御を行う。空燃比変動要因制御量の抑制制御とは、後に具体例をもって説明するように、非抑制制御に比較して、空燃比変動要因制御量の大きさを小さくしたり、或いは、空燃比変動要因制御量の変化速度を小さくしたり、する制御である。換言すると、空燃比変動要因制御量の抑制制御は、機関に供給される混合気の空燃比（機関の空燃比）の変動を抑制するように、空燃比変動要因制御量を決定・調整する制御である。次に、第１制御装置はステップ５５０に進み、上記（１２）式の値ｐを値ｐSmallよりも大きい値ｐLargeに設定し、サブフィードバック量の学習促進制御を実行する。
【０１３３】
この結果、学習促進制御の実行中において、空燃比変動要因制御量に起因するサブフィードバック量Vafsfbの収束値からの一時的な乖離が回避されるので、その結果として、サブＦＢ学習値Vafsfbgが大きく適正値から乖離することを回避することができる。従って、学習値Vafsfbgが収束値へと収束するまでの時間を結果的に短縮できるので、エミッションが悪化する期間を短縮することができる。
【０１３４】
（実際の作動）
次に、上記のように構成された第１制御装置の実際の作動について説明する。
＜燃料噴射量制御＞
【０１３５】
ＣＰＵ８１は、図６に示した最終燃料噴射量Ｆｉの計算及び燃料噴射の指示を行うルーチンを、所定の気筒のクランク角が吸気上死点前の所定クランク角度（例えば、ＢＴＤＣ９０°ＣＡ）となる毎に、その気筒（以下、「燃料噴射気筒」とも称呼する。）に対して繰り返し実行するようになっている。
【０１３６】
従って、所定のタイミングになると、ＣＰＵ８１はステップ６００から処理を開始し、以下に述べるステップ６１０乃至ステップ６６０の処理を順に行い、ステップ６９５に進んで本ルーチンを一旦終了する。
【０１３７】
ステップ６１０：ＣＰＵ８１は「エアフローメータ６１により計測された吸入空気量Ｇａ、及び、機関回転速度ＮＥ」をルックアップテーブルMapMcに適用することにより現時点の筒内吸入空気量Ｍｃ（ｋ）を求める。
ステップ６２０：ＣＰＵ８１は、メインＦＢ学習値ＫＧをバックアップＲＡＭ８４から読み出す。メインＦＢ学習値ＫＧは、後述する図８に示したメインフィードバック学習ルーチンにより別途求められ、バックアップＲＡＭ８４内に格納されている。
ステップ６３０：ＣＰＵ８１は上記（３）式に従って基本燃料噴射量Ｆｂ（ｋ）を求める。
【０１３８】
ステップ６４０：ＣＰＵ８１はパージ補正係数ＦＰＧを下記の（１７）式に従って求める。（１７）式において、ＰＧＴは目標パージ率である。目標パージ率ＰＧＴは、後述する図９のステップ９３０において機関１０の運転状態に基いて求められている。ＦＧＰＧは蒸発燃料ガス濃度学習値である。蒸発燃料ガス濃度学習値ＦＧＰＧは、後述する図９に示したルーチンにより求められている。パージ率は、吸入空気量Ｇａに対するパージ流量ＫＰの比である。なお、パージ率は、「吸入空気量Ｇａと蒸発燃料ガスパージ量ＫＰとの和（Ｇａ＋ＫＰ）」に対する「蒸発燃料ガスパージ量ＫＰ」の比として表されてもよい。
ＦＰＧ＝１＋ＰＧＴ（ＦＧＰＧ−１）  …（１７）
【０１３９】
ステップ６５０：ＣＰＵ８１は、基本燃料噴射量Ｆｂ（ｋ）を上記（４）式に従って補正することにより、最終的な燃料噴射量（指令噴射量）Ｆｉを求める。なお、メインフィードバック係数ＦＡＦは後述する図７に示したルーチンにより求められている。
ステップ６６０：ＣＰＵ８１は、最終燃料噴射量Ｆｉの燃料を燃料噴射気筒に対応して設けられている燃料噴射弁３９から噴射するように、その燃料噴射弁３９に指示信号を送出する。
【０１４０】
以上により、基本燃料噴射量Ｆｂがメインフィードバック値ＤＦｉ（実際にはメインフィードバック係数ＦＡＦ）等により補正され、その補正の結果である最終燃料噴射量Ｆｉの燃料が燃料噴射気筒に対して噴射される。
【０１４１】
＜メインフィードバック制御＞
ＣＰＵ８１は図７にフローチャートにより示したメインフィードバック量（第２フィードバック量）算出ルーチンを所定時間の経過毎（所定の第３更新タイミングが到来する毎）に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ７００から処理を開始し、ステップ７０５に進んでメインフィードバック制御条件（上流側空燃比フィードバック制御条件）が成立しているか否かを判定する。メインフィードバック制御条件は、例えば、フューエルカット中でなく、機関の冷却水温ＴＨＷが第１所定温度以上であり、負荷ＫＬが所定値以下であり、且つ、上流側空燃比センサ６７が活性化しているときに成立する。
【０１４２】
いま、メインフィードバック制御条件が成立しているものとして説明を続けると、ＣＰＵ８１はステップ７０５にて「Ｙｅｓ」と判定して以下に述べるステップ７１０乃至ステップ７５０の処理を順に行い、ステップ７９５に進んで本ルーチンを一旦終了する。
【０１４３】
ステップ７１０：ＣＰＵ８１は、上記（１）式に従ってフィードバック制御用出力値Vabyfcを取得する。
ステップ７１５：ＣＰＵ８１は、上記（２）式に従ってフィードバック制御用空燃比abyfscを取得する。
ステップ７２０：ＣＰＵ８１は、上記（５）式に従って筒内燃料供給量Ｆｃ（ｋ−Ｎ）を取得する。
ステップ７２５：ＣＰＵ８１は、上記（６）式に従って目標筒内燃料供給量Ｆｃｒ（ｋ−Ｎ）を取得する。
ステップ７３０：ＣＰＵ８１は、上記（７）式に従って筒内燃料供給量偏差ＤＦｃを取得する。
【０１４４】
ステップ７３５：ＣＰＵ８１は、上記（８）式に従ってメインフィードバック値ＤＦｉを取得する。なお、本例において、係数ＫＦＢは「１」に設定されている。筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃは次のステップ７４０にて求められる。
ステップ７４０：ＣＰＵ８１は、その時点における筒内燃料供給量偏差ＤＦｃの積分値ＳＤＦｃに上記ステップ７３０にて求められた筒内燃料供給量偏差ＤＦｃを加えることにより、新たな筒内燃料供給量偏差の積分値ＳＤＦｃを取得する。
ステップ７４５：ＣＰＵ８１は、上記（９）式に従ってメインフィードバック係数ＦＡＦを求める。
【０１４５】
ステップ７５０：ＣＰＵ８１は、下記（１８）式に従ってメインフィードバック係数ＦＡＦの加重平均値をメインフィードバック係数平均ＦＡＦＡＶ（以下、「補正係数平均ＦＡＦＡＶ」とも称呼する。）として求める。（１８）式においてＦＡＦＡＶnewは更新後の補正係数平均ＦＡＦＡＶであり、そのＦＡＦＡＶnewが新たな補正係数平均ＦＡＦＡＶとして格納される。また、（１８）式において、値ｑは０より大きく１より小さい定数である。この補正係数平均ＦＡＦＡＶは、後述する「メインＦＢ学習値ＫＧ及び蒸発燃料ガス濃度学習値ＦＧＰＧ」を求める際に用いられる。
ＦＡＦＡＶnew＝ｑ・ＦＡＦ＋（１−ｑ）・ＦＡＦＡＶ    …（１８）
【０１４６】
以上により、メインフィードバック値ＤＦｉが比例積分制御により求められ、このメインフィードバック値ＤＦｉがメインフィードバック係数ＦＡＦへと変換された上で前述した図６のステップ６５０において最終燃料噴射量Ｆｉに反映される。この結果、燃料供給量の過不足が補償されるので、機関の空燃比（従って、上流側触媒５３に流入するガスの空燃比）の平均値が上流側目標空燃比abyfr（特殊な場合を除き、理論空燃比）と略一致させられる。
【０１４７】
一方、ステップ７０５の判定時において、メインフィードバック制御条件が不成立であると、ＣＰＵ８１はそのステップ７０５にて「Ｎｏ」と判定してステップ７５５に進み、メインフィードバック値ＤＦｉの値を「０」に設定する。次いで、ＣＰＵ８１は、ステップ７６０にて筒内燃料供給量偏差の積分値ＳＤＦｃを「０」に設定し、ステップ７６５にてメインフィードバック係数ＦＡＦの値を「１」に設定し、ステップ７７０にて補正係数平均ＦＡＦＡＶの値を「１」に設定する。
【０１４８】
その後、ＣＰＵ８１は、ステップ７９５に進んで本ルーチンを一旦終了する。このように、メインフィードバック制御条件が不成立であるとき、メインフィードバック値ＤＦｉの値は「０」に設定され、メインフィードバック係数ＦＡＦの値は「１」に設定される。従って、基本燃料噴射量Ｆｂのメインフィードバック係数ＦＡＦによる補正は行わない。但し、このような場合であっても、基本燃料噴射量ＦｂはメインＦＢ学習値ＫＧによって補正される。
【０１４９】
＜メインフィードバック学習（ベース空燃比学習）＞
第１制御装置はパージ制御弁４９を完全に閉じた状態に維持する指示信号が同パージ制御弁に送出されている「パージ制御弁閉弁指示期間（デューティ比ＤＰＧが「０」である期間）」において、メインフィードバック係数ＦＡＦを基本値「１」に近づけるように、補正係数平均ＦＡＦＡＶに基いてメインＦＢ学習値ＫＧを更新する。
【０１５０】
このメインＦＢ学習値ＫＧの更新を行うために、ＣＰＵ８１は図８に示したメインフィードバック学習ルーチンを所定時間が経過する毎に実行するようになっている。従って、ＣＰＵ８１は所定のタイミングになるとステップ８００から処理を開始し、ステップ８０５に進んでメインフィードバック制御が実行中であるか否か（即ち、メインフィードバック条件が成立しているか否か）を判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ８０５にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。この結果、メインＦＢ学習値ＫＧの更新は行われない。
【０１５１】
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ８１０に進んで「蒸発燃料ガスパージが行われていないか否か（具体的には、後述する図９のルーチンにより求められる目標パージ率ＰＧＴが「０」か否か）」を判定する。このとき、蒸発燃料ガスパージが行われていると、ＣＰＵ８１はそのステップ８１０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。この結果、メインＦＢ学習値ＫＧの更新は行われない。
【０１５２】
他方、ＣＰＵ８１がステップ８１０に進んだ際に蒸発燃料ガスパージが行われていなければ、ＣＰＵ８１はステップ８１０にて「Ｙｅｓ」と判定してステップ８１５に進み、補正係数平均ＦＡＦＡＶの値が値１＋α（αは０より大きく１より小さい微小な所定値であり、例えば、０．０２）以上であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１＋α以上であると、ＣＰＵ８１はステップ８２０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ増大させる。その後、ＣＰＵ８１はステップ８３５に進む。
【０１５３】
これに対し、ＣＰＵ８１がステップ８１５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１＋αよりも小さいと、ＣＰＵ８１はステップ８２５に進んで補正係数平均ＦＡＦＡＶの値が値１−α以下であるか否かを判定する。このとき、補正係数平均ＦＡＦＡＶの値が値１−α以下であると、ＣＰＵ８１はステップ８３０に進んでメインＦＢ学習値ＫＧを正の所定値Ｘだけ減少させる。その後、ＣＰＵ８１はステップ８３５に進む。
【０１５４】
更に、ＣＰＵ８１はステップ８３５に進んだとき、そのステップ８３５にてメインフィードバック学習完了フラグ（メインＦＢ学習完了フラグ）ＸＫＧの値を「０」に設定する。メインＦＢ学習完了フラグＸＫＧは、その値が「１」であるときにメインフィードバック学習が完了しており、その値が「０」であるときにメインフィードバック学習が完了していないことを示す。次いで、ＣＰＵ８１はステップ８４０に進み、メイン学習カウンタＣＫＧの値を「０」に設定する。なお、メイン学習カウンタＣＫＧの値は、機関１０が搭載された車両の図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際に実行されるイニシャルルーチンにても「０」に設定されるようになっている。その後、ＣＰＵ８１はステップ８９５に進み、本ルーチンを一旦終了する。
【０１５５】
加えて、ＣＰＵ８１がステップ８２５に進んだ際、補正係数平均ＦＡＦＡＶの値が値１−αよりも大きいと（即ち、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値であると）、ＣＰＵ８１はステップ８４５に進んでメイン学習カウンタＣＫＧの値を「１」だけ増大する。
【０１５６】
次に、ＣＰＵ８１はステップ８５０に進み、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であるか否かを判定する。そして、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈ以上であれば、ＣＰＵ８１はステップ８５５に進んでメインＦＢ学習完了フラグＸＫＧの値を「１」に設定する。即ち、機関１０の始動後において補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値である回数がメイン学習カウンタ閾値ＣＫＧｔｈ以上となると、メインＦＢ学習値ＫＧの学習は完了したと見做される。その後、ＣＰＵ８１はステップ８９５に進んで、本ルーチンを一旦終了する。
【０１５７】
また、ＣＰＵ８１は、ステップ８５０に進んだとき、メイン学習カウンタＣＫＧの値が所定のメイン学習カウンタ閾値ＣＫＧｔｈよりも小さければ、ＣＰＵ８１はそのステップ８５０からステップ８９５に直接進んで本ルーチンを一旦終了する。
【０１５８】
なお、メイン学習カウンタＣＫＧの値は、ステップ８０５及びステップ８１０の何れかにおいて「Ｎｏ」と判定された際にも「０」に設定されるように、プログラムを構成してもよい。これによれば、ステップ８１５以降に進む状態（即ち、今回のメインフィードバック学習が行われている期間）において、補正係数平均ＦＡＦＡＶの値が値１−αと値１＋αの間の値である回数がメイン学習カウンタ閾値ＣＫＧｔｈ以上となったとき、メインＦＢ学習値ＫＧの学習は完了したと見做される。
【０１５９】
以上により、メインフィードバック制御中であって蒸発燃料ガスパージが行われていない間にメインＦＢ学習値ＫＧが更新される。
【０１６０】
＜パージ制御弁駆動＞
一方、ＣＰＵ７１は図９に示したパージ制御弁駆動ルーチンを所定時間の経過毎に実行するようになっている。従って、所定のタイミングになるとＣＰＵ８１はステップ９００から処理を開始し、ステップ９１０に進んでパージ条件が成立しているか否かを判定する。このパージ条件は、例えば、空燃比フィードバック制御が実行中であり、且つ、機関１０が定常運転されているとき（例えば、機関の負荷を表すスロットル弁開度ＴＡの単位時間あたりの変化量が所定値以下のとき）に成立する。
【０１６１】
いま、パージ条件が成立していると仮定する。この場合、ＣＰＵ８１は図９のステップ９１０にて「Ｙｅｓ」と判定してステップ９２０に進み、メインＦＢ学習完了フラグＸＫＧの値が「１」であるか否か（即ち、メインフィードバック学習が完了しているか否か）を判定する。このとき、メインＦＢ学習完了フラグＸＫＧの値が「１」であると、ＣＰＵ８１はステップ９２０にて「Ｙｅｓ」と判定し、以下に述べるステップ９３０乃至ステップ９７０の処理を順に行い、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１６２】
ステップ９３０：ＣＰＵ８１は、目標パージ率ＰＧＴを機関１０の運転状態（例えば、吸入空気量Ｇａ）に基いて設定する。より具体的には、ＣＰＵ８１は、後述する図１２に示したルーチンにより決定される学習促進要求フラグＸＺＬの値に基づいて、現時点が学習促進制御中であるか否か（学習促進制御中であるのか、通常学習制御中であるのか）を判定する。そして、現時点が通常学習制御中（フラグＸＺＬ＝０）であれば、ＣＰＵ８１はステップ９３０内に実線Ｃ１により示したテーブル値を有する「通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)」を選択し、その選択したテーブルMapPGTnormal(Ｇａ)に現時点の吸入空気量Ｇａを適用することによって目標パージ率ＰＧＴを決定する。
【０１６３】
これに対し、現時点が学習促進制御中（フラグＸＺＬ＝１）であれば、ＣＰＵ８１はステップ９３０内に破線Ｃ２により示したテーブル値を有する「学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)」を選択し、その選択したテーブルMapPGTsoku(Ｇａ)に現時点の吸入空気量Ｇａを適用することによって目標パージ率ＰＧＴを決定する。
【０１６４】
この「学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)」は、「そのテーブルMapPGTsoku(Ｇａ)に基づいて得られる目標ＰＧＴ」が「通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)に基づいて得られる目標ＰＧＴ」よりも小さくなるように作成されている。
【０１６５】
なお、目標パージ率ＰＧＴは、負荷ＫＬ（負荷率、充填率）ＫＬに基づいて決定されてもよい。負荷率ＫＬは、下記の（１８）式に基いて算出される。この（１８）式において、ρは空気密度（単位は（ｇ／ｌ））、Ｌは機関１０の排気量（単位は（ｌ））、４は機関１０の気筒数である。但し、負荷ＫＬは、筒内吸入空気量Ｍｃ、スロットル弁開度ＴＡ及びアクセルペダル操作量Accp等であってもよい。
ＫＬ＝｛Ｍｃ（ｋ）／（ρ・Ｌ／４）｝・１００（％）  …（１８）
【０１６６】
ステップ９４０：ＣＰＵ８１は、下記（１９）式に従って目標パージ率ＰＧＴ及び吸入空気量Ｇａから「蒸発燃料ガスの流量であるパージ流量ＫＰ」を算出する。前述したように、パージ率は、吸入空気量Ｇａに対するパージ流量ＫＰの比である。
ＫＰ＝Ｇａ・ＰＧＴ  …（１９）
【０１６７】
ステップ９５０：ＣＰＵ８１は、下記（２０）式に示したように、回転速度ＮＥ及び負荷ＫＬをマップMapPGRMXに適用することにより、全開パージ率PGRMXを求める。この全開パージ率PGRMXは、パージ制御弁４９を全開にしたときのパージ率である。マップMapPGRMXは実験又はシミュレーションの結果に基づき予め取得され、ＲＯＭ８２内に格納されている。マップMapPGRMXによれば、全開パージ率PGRMXは回転速度ＮＥが大きくなるほど、又は、負荷ＫＬが大きくなるほど、小さくなる。
PGRMX＝MapPGRMX(NE,KL)  …（２０）
【０１６８】
ステップ９６０：ＣＰＵ８１は、下記（２１）式に従って全開パージ率PGRMX及び目標パージ率ＰＧＴを用いてデューティ比ＤＰＧを算出する。
ＤＰＧ＝（ＰＧＴ／PGRMX）・１００  …（２１）
【０１６９】
ステップ９７０：ＣＰＵ８１は、パージ制御弁４９をデューティ比ＤＰＧに基いて開閉制御する。
【０１７０】
これに対し、ＣＰＵ８１は、パージ条件が成立していていない場合にはステップ９１０にて「Ｎｏ」と判定してステップ９８０に進み、メインＦＢ学習完了フラグＸＫＧの値が「０」である場合にはステップ９２０にて「Ｎｏ」と判定してステップ９８０に進む。そして、ＣＰＵ８１はステップ９８０にてパージ流量ＫＰを「０」に設定し、続くステップ９９０にてデューティ比ＤＰＧを「０」に設定した後、ステップ９７０へと進む。このとき、デューティ比ＤＰＧは「０」に設定されているからパージ制御弁４９は完全に閉じられた状態となる。その後、ＣＰＵ７１はステップ９９５に進んで本ルーチンを一旦終了する。
【０１７１】
＜蒸発燃料ガス濃度学習＞
更に、ＣＰＵ８１は、所定時間が経過する毎に図１０に示した蒸発燃料ガス濃度学習ルーチンを実行するようになっている。この蒸発燃料ガス濃度学習ルーチンの実行によって、蒸発燃料ガスパージが行われている間に蒸発燃料ガス濃度学習値ＦＧＰＧの更新が行われる。
【０１７２】
即ち、ＣＰＵ８１は所定のタイミングになるとステップ１０００から処理を開始してステップ１００５に進み、メインフィードバック制御が実行中であるか否かを判定する。このとき、メインフィードバック制御が実行されていなければ、ＣＰＵ８１はそのステップ１００５にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
【０１７３】
一方、メインフィードバック制御が実行中であるとき、ＣＰＵ８１はステップ１０１０に進んで「蒸発燃料ガスパージが行われているか否か（具体的には、図９のルーチンにより求められる目標パージ率ＰＧＴが「０」でないか否か）」を判定する。このとき、蒸発燃料ガスパージが行われていないと、ＣＰＵ８１はそのステップ１０１０にて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧの更新は行われない。
【０１７４】
他方、ＣＰＵ８１がステップ１０１０に進んだ際に蒸発燃料ガスパージが行われていると、ＣＰＵ８１はステップ１０１０にて「Ｙｅｓ」と判定してステップ１０１５に進み、補正係数平均ＦＡＦＡＶから「１」を減じた値の絶対値｜ＦＡＦＡＶ−１｜が所定値β以上であるか否かを判定する。ここで、βは０より大きく１より小さい微小な所定値であり、例えば、０．０２である。
【０１７５】
このとき、絶対値｜ＦＡＦＡＶ−１｜がβ以上であると、ＣＰＵ８１はステップ１０１５にて「Ｙｅｓ」と判定してステップ１０２０に進み、下記（２２）式に従って更新値ｔＦＧを求める。（２２）式における目標パージ率ＰＧＴは、図９のステップ９３０にて設定されている。（２２）式から明らかなように、更新値ｔＦＧは目標パージ率１％当たりの「偏差εa（ＦＡＦＡＶの１からの差＝ＦＡＦＡＶ−１）」である。その後、ＣＰＵ８１はステップ１０３０に進む。
ｔＦＧ＝（ＦＡＦＡＶ−１）／ＰＧＴ  …（２２）
【０１７６】
蒸発燃料ガスに含まれる蒸発燃料ガスの濃度が高いほど、上流側空燃比abyfsは理論空燃比よりもより小さい空燃比（理論空燃比よりもリッチ側の空燃比）となる。従って、メインフィードバック係数ＦＡＦはより小さい値になるので、補正係数平均ＦＡＦＡＶも「１」より小さい値となる。その結果、ＦＡＦＡＶ−１は負の値となるので、更新値ｔＦＧは負の値となる。更に、更新値ｔＦＧの絶対値は、ＦＡＦＡＶが小さいほど（「１」から乖離するほど）大きな値となる。つまり、蒸発燃料ガスの濃度が高いほど、更新値ｔＦＧはその絶対値の大きい負の値となる。
【０１７７】
これに対し、絶対値｜ＦＡＦＡＶ−１｜が値β以下である場合、ＣＰＵ８１はステップ１０１５にて「Ｎｏ」と判定してステップ１０２５に進み、更新値ｔＦＧを「０」に設定する。その後、ＣＰＵ８１はステップ１０３０に進む。
【０１７８】
ＣＰＵ８１は、ステップ１０３０において、下記（２３）式に従って蒸発燃料ガス濃度学習値ＦＧＰＧを更新する。（２３）式においてＦＧＰＧnewは更新後の蒸発燃料ガス濃度学習値ＦＧＰＧである。この結果、蒸発燃料ガス濃度学習値ＦＧＰＧは、蒸発燃料ガスの濃度が高いほど小さい値になる。なお、蒸発燃料ガス濃度学習値ＦＧＰＧの初期値は「１」に設定されている。
ＦＧＰＧnew＝ＦＧＰＧ＋ｔＦＧ  …（２３）
【０１７９】
次に、ＣＰＵ８１はステップ１０３５に進み、蒸発燃料ガス濃度学習値の更新回数ＣＦＧＰＧ（以下、「更新回数ＣＦＧＰＧ」とも称呼する。）を「１」だけ増大する。更新回数ＣＦＧＰＧは上述したイニシャルルーチンにおいて「０」に設定されるようになっている。
【０１８０】
次に、ＣＰＵ８１はステップ１０４０に進み、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈ以上であるか否かを判定する。このとき、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈ以上であれば、ＣＰＵ８１はステップ１０４５に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「０」に設定する。
【０１８１】
これに対し、更新回数ＣＦＧＰＧが所定の更新回数閾値ＣＦＧＰＧｔｈよりも小さければ、蒸発燃料ガスの濃度が十分には学習されていない。従って、ＣＰＵ８１は、空燃比を変動させる外乱が発生すると推定し、ステップ１０５０に進んで空燃比外乱発生フラグＸＧＩＲＮの値を「１」に設定する。空燃比外乱発生フラグＸＧＩＲＮの値は、後述する図１３に示した学習促進制御ルーチンにおいて、学習促進制御を実行すべきか禁止すべきかを決定する際に参照される。なお、空燃比外乱発生フラグＸＧＩＲＮの値は、上述したイニシャルルーチンにおいて「０」に設定されるようになっている。
【０１８２】
＜サブフィードバック量及びサブＦＢ学習値算出＞
ＣＰＵ８１は、サブフィードバック量Vafsfb及びサブフィードバック量Vafsfbの学習値Vafsfbgを算出するために、図１１に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１１００から処理を開始し、ステップ１１０５に進んでサブフィードバック制御条件が成立しているか否かを判定する。サブフィードバック制御条件は、例えば、前述した図７のステップ７０５におけるメインフィードバック制御条件が成立し、上流側目標空燃比abyfrが理論空燃比に設定され、機関の冷却水温ＴＨＷが前記第１所定温度よりも高い第２所定温度以上であり、且つ、下流側空燃比センサ６８が活性化しているときに成立する。
【０１８３】
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１はステップ１１０５にて「Ｙｅｓ」と判定し、以下に述べるステップ１１１０乃至ステップ１１６０の処理を順に行い、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１８４】
ステップ１１１０：ＣＰＵ８１は、上記（１０）式に従って下流側目標値Voxsrefと下流側空燃比センサ６８の出力値Voxs（即ち、理論空燃比相当値Ｖst）との差である出力偏差量DVoxsを取得する。出力偏差量DVoxsは「第１偏差」とも称呼される。
ステップ１１１５：ＣＰＵ８１は、上記（１１）式に従ってサブフィードバック量Vafsfbを取得する。
ステップ１１２０：ＣＰＵ８１は、その時点における出力偏差量の積分値SDVoxsに上記ステップ１１１０にて求めた出力偏差量DVoxsを加えて、新たな出力偏差量の積分値SDVoxsを取得する。
【０１８５】
ステップ１１２５：ＣＰＵ８１は、「上記ステップ１１１０にて算出した出力偏差量DVoxs」から「本ルーチンを前回実行した際に算出された出力偏差量である前回出力偏差量DVoxsold」を減じることにより、新たな出力偏差量の微分値DDVoxsを求める。
ステップ１１３０：ＣＰＵ８１は、「上記ステップ１１１０にて算出した出力偏差量DVoxs」を「前回出力偏差量DVoxsold」として格納する。
このように、ＣＰＵ８１は、下流側空燃比センサ６８の出力値Voxsを下流側目標値Voxsrefに一致させるための比例・積分・微分（ＰＩＤ）制御により「サブフィードバック量Vafsfb」を算出する。このサブフィードバック量Vafsfbは、上述した（１）式に示したように、フィードバック制御用出力値Vabyfcを算出するために使用される。
ステップ１１３５：ＣＰＵ８１は、その時点のサブＦＢ学習値Vafsfbgを更新前学習値Vafsfbg0として格納する。
【０１８６】
ステップ１１４０：ＣＰＵ８１は、上記（１２）式又は上記（１３）式に従ってサブＦＢ学習値Vafsfbgを更新する。更新されたサブＦＢ学習値Vafsfbg（＝Vafsfbgnew）はバックアップＲＡＭ８４に格納される。ここで、上記（１２）式及び上記（１３）式の値ｐは後述する図１３に示した学習促進制御ルーチンにより、学習促進制御禁止時を含む通常時にはｐSmall、学習促進制御実行時にはｐSmallよりも大きいｐLargeに設定されている。
なお、（１２）式から明らかなように、サブＦＢ学習値Vafsfbgは「サブフィードバック量Vafsfbの積分項Ｋｉ・SDVoxs」に「ノイズ除去のためのフィルタ処理」を施した値である。換言すると、サブＦＢ学習値Vafsfbgは、サブフィードバック量Vafsfbの定常成分（積分項）に応じた値である。
【０１８７】
また、（１３）式から明らかなように、サブＦＢ学習値VafsfbgはサブＦＢ学習値Vafsfbgの一次遅れ量（なまし値）である。従って、サブＦＢ学習値Vafsfbgは、サブＦＢ学習値Vafsfbgの定常成分を結果的に取り込むように更新される。
【０１８８】
ステップ１１４５：ＣＰＵ８１は、上記（１４）式に従ってサブＦＢ学習値Vafsfbgの変更量（更新量）ΔＧを算出する。
ステップ１１５０：ＣＰＵ８１は、上記（１５）式に従ってサブフィードバック量Vafsfbを変更量ΔＧにより補正する。
ステップ１１５５：ＣＰＵ８１は、上記（１６）式に従って積分項Ｋｉ・SDVoxsを変更量ΔＧに基いて補正する。なお、ステップ１１５５を省略してもよい。また、ステップ１１４５乃至ステップ１１５５を省略してもよい。
【０１８９】
ステップ１１６０：ＣＰＵ８１は、本ルーチンのステップ１１４０が３回前に実行された際に得られた学習値Vafsfbg（３）を、ステップ１１４０が４回前に実行された際に得られた学習値Vafsfbg（４）として記憶する。以下、ステップ１１４０がｎ回前に実行された際に得られた学習値Vafsfbg（ｎ）を単に「ｎ回前の学習値Vafsfbg（ｎ）」と称呼する。更に、ＣＰＵ８１は、２回前の学習値Vafsfbg（２）を３回前の学習値Vafsfbg（３）として記憶し、１回前の学習値Vafsfbg（１）を２回前の学習値Vafsfbg（２）として記憶する。そして、ＣＰＵ８１は上記ステップ１１４０にて得られた今回の学習値Vafsfbgを１回前の学習値Vafsfbg（１）として記憶する。
【０１９０】
以上の処理により、所定時間の経過毎（所定の第１更新タイミングが到来する毎、及び、所定の第２更新タイミングが到来する毎）にサブフィードバック量VafsfbとサブＦＢ学習値Vafsfbgとが更新される。
【０１９１】
一方、サブフィードバック制御条件が成立していない場合、ＣＰＵ８１は図１１のステップ１１０５にて「Ｎｏ」と判定し、以下に述べるステップ１１６５及びステップ１１７０の処理を順に行い、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１９２】
ステップ１１６５：ＣＰＵ８１はサブフィードバック量Vafsfbの値を「０」に設定する。
ステップ１１７０：ＣＰＵ８１は出力偏差量の積分値SDVoxsの値を「０」に設定する。
【０１９３】
これにより、上記（１）式から明らかなように、フィードバック制御用出力値Vabyfcは、上流側空燃比センサ６７の出力値VabyfsとサブＦＢ学習値Vafsfbgとの和となる。即ち、この場合、「サブフィードバック量Vafsfbの更新」及び「サブフィードバック量Vafsfbの最終燃料噴射量Ｆｉへの反映」は停止される。但し、少なくとも、サブフィードバック量Vafsfbの積分項に対応するサブＦＢ学習値Vafsfbgは最終燃料噴射量Ｆｉに反映される。
【０１９４】
＜サブフィードバック量のズレ大判定（学習促進制御要求判定）＞
ＣＰＵ８１は、サブＦＢ学習値の学習促進制御を実行する必要があるか否かを判定するために、図１２に示したルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１２００から処理を開始し、ステップ１２１０に進んで「現時点がサブＦＢ学習値Vafsfbgの更新直後の時点」であるか否かを判定する。このとき、現時点がサブＦＢ学習値Vafsfbgの更新直後の時点でなければ、ＣＰＵ８１はステップ１２１０からステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１９５】
これに対し、現時点がサブＦＢ学習値Vafsfbgの更新直後の時点であると、ＣＰＵ８１はステップ１２１０にて「Ｙｅｓ」と判定してステップ１２２０に進み、下記の（２４）式が成立しているか否かを判定する。
｜Vafsfbg−Vafsfbg（４）｜＞Ｖｔｈ  …（２４）
【０１９６】
即ち、ＣＰＵ８１は、所定回数前（本例においては４回前）に更新された学習値Vafsfbg（４）と今回更新された学習値Vafsfbgとの差の絶対値が、所定閾値Ｖｔｈより大きいか否かを判定する。仮に学習値Vafsfbgが収束値から「所定値」以上偏移していると、学習値Vafsfbgは更新される毎に相当に大きい量だけ更新されるので、上記（２４）式が成立する。換言すると、（２４）式が成立するとき、「学習値Vafsfbg」と「その学習値Vafsfbgが収束すべき値」との差である「第２偏差」が所定値以上である「学習不足状態」が発生していると推定される。
【０１９７】
そこで、ＣＰＵ８１は、上記（２４）式が成立するとき、ステップ１２２０にて「Ｙｅｓ」と判定してステップ１２３０に進み、ズレ判定カウンタＣＺの値を「１」だけ増大する。次いで、ＣＰＵ８１はステップ１２４０に進み、ズレ判定カウンタＣＺの値がズレ判定閾値（学習促進制御要求閾値）ＣＺｔｈ以上であるか否かを判定する。
このとき、ズレ判定カウンタＣＺの値がズレ判定閾値ＣＺｔｈよりも小さければ、ＣＰＵ８１はステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１９８】
一方、「学習値Vafsfbg」と「その学習値Vafsfbgが収束すべき値」の差が相当に大きい状態においては、ステップ１２２０の判定条件が連続的に成立する。従って、ステップ１２３０の処理が繰り返されるので、ズレ判定カウンタＣＺの値は次第に増大し、所定のタイミングにてズレ判定閾値ＣＺｔｈ以上となる。このとき、ＣＰＵ８１がステップ１２４０の処理を実行すると、ＣＰＵ８１はそのステップ１２４０にて「Ｙｅｓ」と判定してステップ１２５０に進み、学習促進要求フラグＸＺＬ（ズレ大判定フラグＸＺＬ）の値を「１」に設定する。なお、学習促進要求フラグＸＺＬは、上述したイニシャルルーチンにおいて「０」に設定されるようになっている。但し、学習促進要求フラグＸＺＬは、上述したイニシャルルーチンにおいて「１」に設定されるようになっていてもよい。
【０１９９】
他方、ステップ１２２０の判定条件（上記（２４）式）が成立しないとき、ＣＰＵ８１はそのステップ１２２０にて「Ｎｏ」と判定し、ステップ１２６０に進んでズレ判定カウンタＣＺの値を「１」だけ減少する。次いで、ＣＰＵ８１はステップ１２７０に進み、ズレ判定カウンタＣＺの値がズレ小判定閾値（学習促進制御不要閾値）ＣＺｔｈ−ＤＣＺ以下であるか否かを判定する。ここで、ＤＣＺは正の値であり、ＣＺｔｈ−ＤＣＺも正の値である。つまり、ズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）はズレ判定閾値ＣＺｔｈよりも小さい。
【０２００】
このとき、ズレ判定カウンタＣＺの値がズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）よりも大きければ、ＣＰＵ８１はステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０２０１】
一方、「学習値Vafsfbg」と「その学習値Vafsfbgが収束すべき値」の差が小さくなっている状態においては、ステップ１２２０の判定条件が連続的に不成立となる。従って、ステップ１２６０の処理が繰り返されるので、ズレ判定カウンタＣＺの値は次第に減少し、所定のタイミングにてズレ小判定閾値（ＣＺｔｈ−ＤＣＺ）以下となる。このとき、ＣＰＵ８１がステップ１２７０の処理を実行すると、ＣＰＵ８１はそのステップ１２７０にて「Ｙｅｓ」と判定してステップ１２８０に進み、学習促進要求フラグＸＺＬ（ズレ大判定フラグＸＺＬ）の値を「０」に設定する。以上により、学習促進要求フラグＸＺＬの値が設定される。
【０２０２】
＜サブＦＢ学習値の学習促進制御（その１）＞
ＣＰＵ８１は、図１３に示したサブＦＢ学習値Vafsfbgの学習促進ルーチンを所定時間の経過毎に実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ１３００から処理を開始してステップ１３１０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。
【０２０３】
このとき、学習促進要求フラグＸＺＬの値が「０」であると、ＣＰＵ８１はステップ１３１０にて「Ｎｏ」と判定してステップ１３２０に進み、図１１のステップ１１４０にて使用される上記（１２）式（又は上記（１３）式）中の値ｐを第１の値（通常学習速度対応値）ｐSmallに設定する。その後、ＣＰＵ８１はステップ１３９５に進み、本ルーチンを一旦終了する。この結果、図１１のステップ１１４０にて、学習値Vafsfbgは新たに求められた積分項Ｋｉ・SDVoxsを僅かずつ取り込むので、穏やかにサブフィードバック量Vafsfbの収束値へと接近する。或いは、図１１のステップ１１４０にて上記（１３）式が用いられると、学習値VafsfbgはサブＦＢ学習値Vafsfbgの定常値に穏やかに接近する。即ち、通常学習制御が実行される。
【０２０４】
一方、学習促進要求フラグＸＺＬの値が「１」であると、ＣＰＵ８１はステップ１３１０にて「Ｙｅｓ」と判定してステップ１３３０に進む。そして、ＣＰＵ８１は、ステップ１３３０にて、図１１のステップ１１４０にて使用される上記（１２）式（又は上記（１３）式）中の値ｐを第２の値（学習促進速度対応値）ｐLargeに設定する。この第２の値ｐLargeは第１の値ｐSmallよりも大きい。この結果、図１１のステップ１１４０にて、新たに求められた積分項Ｋｉ・SDVoxsが学習値Vafsfbgに大きな割合で取り込まれるので、学習値Vafsfbgは速やかにサブフィードバック量Vafsfbの収束値へと接近する。或いは、図１１のステップ１１４０にて上記（１３）式が用いられると、学習値VafsfbgはサブＦＢ学習値Vafsfbgの定常値に速やかに接近する。即ち、学習促進制御が実行される。
【０２０５】
以上、説明したように、第１制御装置は、学習値Vafsfbgをサブフィードバック量Vafsfbの収束値へ速やかに接近させる学習促進制御が行われている場合（即ち、学習促進要求フラグＸＺＬの値が「１」に設定されることにより学習値Vafsfbgの更新速度が大きい速度に設定されているとき）、空燃比変動要因制御量としての蒸発燃料ガスのパージ率が、学習促進制御が行われていない場合に比べて小さくなるように、そのパージ率の目標値（目標パージ率ＰＧＴ）を決定するようになっている（ステップ９３０を参照。）。従って、学習促進制御中に蒸発燃料ガスに起因する機関の空燃比の変動が小さく、サブフィードバック量Vafsfbの変動が小さいので、学習値Vafsfbgが本来収束すべき値と相違する値に変化することを回避することができる。
【０２０６】
なお、第１制御装置は、
複数の気筒を有する多気筒内燃機関１０に適用され、
前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室２５（本例では、総ての気筒の燃焼室２５）から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒５３と、
前記少なくとも２以上の気筒の燃焼室２５（本例では、総ての気筒の燃焼室２５）に供給される混合気に含まれる燃料を噴射する燃料噴射弁３９と、
前記排気通路であって前記触媒５３よりも下流側の部位に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する下流側空燃比センサ６８と、
所定の第１更新タイミング（図１１のルーチンが実行されるタイミング）が到来する毎に前記下流側空燃比センサ６８の出力値Voxsを下流側目標空燃比に応じた値（下流側目標値Voxsref＝理論空燃比相当値Ｖst）に一致させるための第１フィードバック量（サブフィードバック量Vafsfb）を、下流側空燃比センサの出力値Voxsと同下流側目標空燃比に応じた値（下流側目標値Voxsref）との差である第１偏差（出力偏差量DVoxs）に基いて更新する第１フィードバック量更新手段（図１１のルーチンの特にステップ１１０５〜ステップ１１３０を参照。）と、
所定の第２更新タイミング（図１１のルーチンが実行されるタイミング）が到来する毎に前記第１フィードバック量（サブフィードバック量Vafsfb）に基いて、「第１フィードバック量の定常成分に応じた量となる（接近する）ように」、即ち、同第１フィードバック量の定常成分を取り込むように、同第１フィードバック量の学習値（サブＦＢ学習値Vafsfbg）を更新する学習手段（図１１のルーチンの特にステップ１１３５〜ステップ１１５５を参照。）と、
前記第１フィードバック量（サブフィードバック量Vafsfb）及び前記学習値（サブＦＢ学習値Vafsfbg）のうちの少なくとも一方に基いて前記燃料噴射弁３９から噴射される燃料の量を制御することにより前記触媒５３に流入する排ガスの空燃比を制御する空燃比制御手段（図６及び図７のルーチンを参照。特に、ステップ７１０〜ステップ７４５、及びステップ６５０を参照。）と、
前記学習値と同学習値が収束すべき値との差である第２偏差が所定値以上である学習不足状態が発生しているか否かを推定する（図１１のステップ１１６０及び図１２のルーチンを参照。）とともに、同学習不足状態が発生していると推定されるとき（学習促進要求フラグＸＺＬの値が「１」のとき）同学習不足状態が発生していないと推定されるとき（学習促進要求フラグＸＺＬの値が「０」のとき）に比較して前記学習値の更新速度を増大させる学習促進制御を実行する学習促進手段（図１３のルーチン及び図１１のステップ１１４０の値ｐを参照。）と、
「前記燃料噴射弁（３９）から噴射される燃料の量」以外の前記機関の制御量であって且つ「変更されたときに前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を変動させる制御量」である空燃比変動要因制御量（機関１０の吸気通路に導入される蒸発燃料ガスの量、即ち、蒸発燃料ガスパージ量）を変更する機関制御量変更手段（図９のルーチンを参照。）と、
を備えた内燃機関の空燃比制御装置である。
【０２０７】
更に、第１制御装置において、前記機関制御量変更手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量を小さくするように構成されている（図９のステップ９３０内に示した実線Ｃ１に対する破線Ｃ２を参照。）。
【０２０８】
また、前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒（５３）との間の前記排気通路に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサ（６７）と、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比abyfrと一致させるための基本燃料噴射量Ｆｂを前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段（図６のステップ６１０及びステップ６３０を参照。）と、
所定の第３更新タイミングが到来する毎（図７のルーチンが実行されるタイミング）に前記上流側空燃比センサ（６７）の出力値Vabyfsと前記第１フィードバック量（サブフィードバック量Vafsfb）と前記学習値（サブＦＢ学習値Vafsfbg）とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比abyfrに一致するように前記基本燃料噴射量Ｆｂを補正するための第２フィードバック量（メインフィードバック係数ＦＡＦ、又は、少なくともメインフィードバック係数ＦＡＦとパージ補正係数ＦＰＧとの積（ＦＡＦ・ＦＰＧ））を更新する第２フィードバック量更新手段（図７のルーチン及び図６のステップ６５０を参照。）と、
前記第２フィードバック量により前記基本燃料噴射量（Ｆｂ）を補正することにより得られる燃料噴射量（Ｆｉ）の燃料を前記燃料噴射弁３９から噴射させる燃料噴射指示手段（図６のステップ６５０及びステップ６６０を参照。）と、
を含む。
【０２０９】
更に、第１制御装置において、
前記学習手段は、
前記学習値（サブＦＢ学習値Vafsfbg）を前記第１フィードバック量（サブフィードバック量Vafsfb）又は前記第１フィードバック量に含まれる定常成分（例えば、積分項Ｋｉ・SDVoxs）に除々に接近させるように前記学習値（サブＦＢ学習値Vafsfbg）の更新を行うように構成され（図１１のステップ１１４０を参照。）、
前記学習促進手段は、
前記第１フィードバック量（サブフィードバック量Vafsfb）の更新速度（図１１のステップ１１４０における値ｐ）を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成されている（図１３のルーチンを参照。）。
【０２１０】
更に、第１制御装置において、
前記機関制御量変更手段は、
前記空燃比変動要因制御量（蒸発燃料ガスのパージ率）の実際の値を指示信号（デューティ比ＤＰＧ）に応じて変更するアクチュエータ（パージ制御弁４９）と、
前記空燃比変動要因制御量の目標値（目標パージ率ＰＧＴ）を前記機関の運転状態（例えば、吸入空気量Ｇａ）に応じて決定するとともに（図９のステップ９３０を参照。）、前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段（図９のステップ９５０乃至ステップ９７０を参照。）と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値が小さくなるように同目標値を決定するように構成されている（図９のステップ９３０を参照。）。
【０２１１】
なお、蒸発燃料ガスのパージ率は、蒸発燃料ガスのパージ量（吸気通路に導入される蒸発燃料ガスの量）に基づいて決まる値である。従って、第１制御装置は、空燃比変動要因制御量として「蒸発燃料ガスのパージ量」を採用していると言うこともできる。
【０２１２】
更に、第１制御装置は、
前記燃料噴射弁（３９）に供給される燃料を貯蔵する燃料タンク（４６）内に発生した蒸発燃料ガスを前記機関の吸気通路に導入するためのパージ通路部（４８）に配設され且つ前記指示信号に応じて同パージ通路部の流路断面積を変更するパージ制御弁（４９）をアクチュエータとして備える。
【０２１３】
また、前記指示信号付与手段は、前記機関に吸入される吸入空気流量に対する前記蒸発燃料ガスパージ量の比、又は、前記機関に吸入される吸入空気流量と前記蒸発燃料ガスパージ量との和に対する前記蒸発燃料ガスパージ量の比、として表される蒸発燃料ガスパージ率の目標値、を前記空燃比変動要因制御量の目標値として決定するように構成されている（図９のステップ９３０を参照。）。また、前述したように、蒸発燃料ガスのパージ率は、蒸発燃料ガスのパージ量に基づいて決まる値である。従って、第１制御装置の前記指示信号付与手段は、蒸発燃料ガスのパージ量目標値を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０２１４】
なお、第１制御装置は、図９のステップ９３０にて参照する「通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)及び学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)」を、図１４に示したテーブルに代えてもよい。図１４において、通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)は実線Ｃ１により表され、学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)は破線Ｃ２により表されている。学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)によれば、吸入空気量Ｇａが所定値Ｇａ１よりも小さいとき、通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)による場合と同じ目標パージ率ＰＧＴが取得される。これに対し、吸入空気量Ｇａが所定値Ｇａ１以上となると、学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)により得られる目標パージ率ＰＧＴは一定値（上限値）ＰＧＴmaxになり、通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)により得られる目標パージ率ＰＧＴよりも小さくなる。換言すると、学習促進制御用目標パージ率テーブルMapPGTsoku(Ｇａ)は、通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)により得られる目標パージ率ＰＧＴが上限値ＰＧＴmax以上とならないように規制するテーブルである。
【０２１５】
第２実施形態
次に、本発明の第２実施形態に係る多気筒内燃機関の制御装置（以下、「第２制御装置」とも称呼する。）について説明する。第２制御装置は、目標パージ率ＰＧＴの決定方法においてのみ第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
【０２１６】
第２制御装置は、学習促進制御中であるか否かに関わらず一つの暫定目標パージ率テーブルMapPGTz(Ｇａ)を使用して暫定目標パージ率ＰＧＴを決定する。この目標パージ率テーブルMapPGTz(Ｇａ)は第１制御装置が使用する通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)と同じテーブルである。そして、現時点が通常学習制御中であれば、第２制御装置は、その暫定目標パージ率ＰＧＴを最終目標パージ率ＰＧＴｆとしてそのまま採用し、その最終目標パージ率ＰＧＴｆに基づいてパージ制御弁４９に指示信号を送出する。
【０２１７】
これに対し、現時点が学習促進制御中であれば、第２制御装置は、暫定目標パージ率テーブルMapPGTz(Ｇａ)を使用して得られた暫定的な目標パージ率ＰＧＴを、下記（２５）式に適用することにより最終目標パージ率ＰＧＴｆを求める。（２５）式においてｒは０より大きく１より小さい所定の定数であり、ＰＧＴｆoldは更新前（即ち、前回計算した）の最終目標パージ率ＰＧＴｆである。（２５）式によれば、最終目標パージ率ＰＧＴｆは暫定的な目標パージ率ＰＧＴに遅れながら接近（追従）する。
ＰＧＴｆ＝ｒ・ＰＧＴｆold + （１−ｒ）・ＰＧＴ  …（２５）
【０２１８】
これにより、学習促進制御中においては、暫定目標パージ率ＰＧＴが図１５の実線のように急激に変化した場合であっても、最終目標パージ率は図１５の破線のように緩やかに変化する。そして、第２制御装置は、このように求められる最終目標パージ率ＰＧＴｆに基づいてパージ制御弁４９に指示信号を送出する。この結果、実際の蒸発燃料ガスのパージ量が急変しないので、空燃比の一時的な変動が抑制される。従って、サブフィードバック量Vafsfbの変化も穏やかになるので、学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２１９】
次に、第２制御装置の実際の作動について説明する。第２制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンのうち図９を除くルーチンを実行するようになっている。更に、第２制御装置のＣＰＵ８１は、図９に代わる図１６及び図１７にフローチャートにより示したルーチンを実行するようになっている。なお、図１６において図９に示したステップと同一の処理を行うためのステップには、図９のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は適宜省略される。
【０２２０】
ＣＰＵ８１は、ステップ９１０及びステップ９２０を経てステップ１６１０に進んだとき、暫定目標パージ率テーブルMapPGTz(Ｇａ)に現時点の吸入空気量Ｇａを適用することによって暫定的な目標パージ率ＰＧＴを決定する。前述したように、暫定目標パージ率テーブルMapPGTz(Ｇａ)は、図９のステップ９３０にて用いられる「通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)」と同じテーブルである。
【０２２１】
次に、ＣＰＵ８１はステップ９４０にてパージ流量ＫＰを算出する。次に、ＣＰＵ８１はステップ１６２０に進むと、図１７に示したステップ１７１０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。即ち、ＣＰＵ８１はステップ１７１０にて現時点が学習促進制御中であるか否かを判定する。
【０２２２】
このとき、学習促進制御中であって学習促進要求フラグＸＺＬの値が「１」に設定されていると、ＣＰＵ８１はステップ１７１０にて「Ｙｅｓ」と判定してステップ１７２０に進み、上記（２５）式の値ｒに０より大きく１より小さい値ｒｓを代入する。その後、ＣＰＵ８１はステップ１７４０に進む。一方、現時点が学習促進制御中ではなく、通常学習制御中であって学習促進要求フラグＸＺＬの値が「０」に設定されていると、ＣＰＵ８１はステップ１７１０にて「Ｎｏ」と判定してステップ１７３０に進み、値ｒに「０」を代入する。その後、ＣＰＵ８１はステップ１７４０に進む。
【０２２３】
ＣＰＵ８１はステップ１７４０に進むと、上記（２５）式に従って最終目標パージ率ＰＧＴｆを更新する。この結果、値ｒが値ｒｓであるとき、最終目標パージ率ＰＧＴｆは暫定的な目標パージ率ＰＧＴに遅れながら接近（追従）する。一方、値ｒが「０」であるとき、最終目標パージ率ＰＧＴｆは暫定的な目標パージ率ＰＧＴそのものと一致する。
【０２２４】
次に、ＣＰＵ８１はステップ１７５０に進み、次回のステップ１７４０における計算のために「前回最終目標パージ率ＰＧＴｆold」に今回更新された最終目標パージ率ＰＧＴｆを設定する。その後、ＣＰＵ８１は図１６のステップ９５０に進み全開パージ率PGRMXを求め、次いでステップ１６３０に進んで、上記（２１）式と同様な下記（２６）式に基づいてデューティ比ＤＰＧを算出する。そして、ＣＰＵ８１はステップ９７０に進んでデューティ比ＤＰＧに応じた指示信号をパージ制御弁４９に付与し、ステップ１６９５に進んで本ルーチンを一旦終了する。
ＤＰＧ＝（ＰＧＴｆ／PGRMX）・１００  …（２６）
【０２２５】
以上、説明したように、第２制御装置は、前記空燃比変動要因制御量として蒸発燃料ガスのパージ率を採用している。このパージ率が変化すれば、蒸発燃料ガスのパージ量も変化する。従って、第２制御装置は、前記空燃比変動要因制御量として蒸発燃料ガスのパージ量を採用しているとも言うことができる。
【０２２６】
更に、第２制御装置は、
空燃比変動要因制御量（機関１０の吸気通路に導入される蒸発燃料ガスの量、即ち、蒸発燃料ガスパージ量）を変更する機関制御量変更手段（図１６のルーチンを参照。）備える。そして、その機関制御量変更手段は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して「前記空燃比変動要因制御量の変化速度」を小さくするように構成されている。即ち、第２制御装置は、最終目標パージ率ＰＧＴｆの変化速度を学習促進制御中は学習促進制御中でないときに比較して小さくすることにより、空燃比変動要因制御量としての蒸発燃料ガスのパージ率（又は蒸発燃料ガスパージ量）の変化率を小さくしている（図１６のステップ１６２０、図１７のルーチン、図１６のステップ１６３０、９７０、及び、図１５を参照。）。この結果、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０２２７】
なお、第２制御装置は、上記（２５）式を使用して最終目標パージ率ＰＧＴｆを求める代わりに次のように最終目標パージ率ＰＧＴｆを求めることもできる。
即ち、第２制御装置は、所定時間前に求められた暫定目標パージ率ＰＧＴoldと今回求められた暫定目標パージ率ＰＧＴとの差（ＰＧＴ−ＰＧＴold)が所定閾値ΔＰＧＴ（ΔＰＧＴ＞０）以上であるとき、今回の最終目標パージ率ＰＧＴｆを「所定時間前に求められた暫定目標パージ率ＰＧＴoldに閾値ΔＰＧＴを加えた値として求める。更に、第２制御装置は、その閾値ΔＰＧＴを学習促進制御中のほうが学習促進制御を実行していないときよりも小さい値に設定する。
【０２２８】
これによっても、学習促進制御中は最終目標パージ率ＰＧＴｆの変化速度が小さくなるので、実際の蒸発燃料ガスパージ量（率）の変化速度も小さくなる。従って、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０２２９】
第３実施形態
次に、本発明の第３実施形態に係る多気筒内燃機関の制御装置（以下、「第３制御装置」とも称呼する。）について説明する。第３制御装置は、目標パージ率ＰＧＴの決定方法及びデューティ比ＤＰＧの決定方法においてのみ第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
【０２３０】
第３制御装置は、学習促進制御中であるか否かに関わらず一つの目標パージ率テーブルMapPGT(Ｇａ)を使用して目標パージ率ＰＧＴを決定する。この目標パージ率テーブルMapPGT(Ｇａ)は第１制御装置が使用する通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)と同じテーブルである。そして、第３制御装置は、その目標パージ率ＰＧＴを上記（２１）式と同様の下記（２７）式に適用することにより基本デューティ比ＤＰＧｂを算出する。
ＤＰＧｂ＝（ＰＧＴ／PGRMX）・１００  …（２７）
【０２３１】
更に、第３制御装置は、現時点が通常学習制御中であれば、その基本デューティ比ＤＰＧｂを最終的なデューティ比ＤＰＧとしてそのまま採用し、そのデューティ比ＤＰＧにてパージ制御弁４９を駆動する。
【０２３２】
これに対し、第３制御装置は、現時点が学習促進制御中であれば、その基本デューティ比ＤＰＧｂを下記の（２８）式に適用することにより最終的なデューティ比ＤＰＧを求める。（２８）式においてｓは０より大きく１より小さい所定の定数であり、ＤＰＧoldは更新前（即ち、前回計算した）の最終的なデューティ比ＤＰＧである。（２８）式によれば、最終的なデューティ比ＤＰＧは、基本デューティ比ＤＰＧｂに遅れながら接近（追従）する。
ＤＰＧ＝ｓ・ＤＰＧold + （１−ｓ）・ＤＰＧｂ  …（２８）
【０２３３】
これにより、学習促進制御中においては、基本デューティ比ＤＰＧｂが図１８の実線のように急激に変化した場合であっても、最終的なデューティ比ＤＰＧは図１８の破線のように緩やかに変化する。この結果、実際の蒸発燃料ガスのパージ量が急変しないので、空燃比の一時的な変動が抑制される。従って、サブフィードバック量Vafsfbの変化も穏やかになるので、学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２３４】
次に、第３制御装置の実際の作動について説明する。第３制御のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンのうち図９を除くルーチンを実行するようになっている。更に、第３制御装置のＣＰＵ８１は、図９に代わる図１９及び図２０にフローチャートにより示したルーチンを実行するようになっている。なお、図１９において図９に示したステップと同一の処理を行うためのステップには、図９のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は適宜省略される。
【０２３５】
ＣＰＵ８１は、ステップ９１０及びステップ９２０を経てステップ１９１０に進んだとき、目標パージ率テーブルMapPGT(Ｇａ)に現時点の吸入空気量Ｇａを適用することによって目標パージ率ＰＧＴを決定する。前述したように、目標パージ率テーブルMapPGT(Ｇａ)は、図９のステップ９３０にて用いられる「通常学習制御用目標パージ率テーブルMapPGTnormal(Ｇａ)」と同じテーブルである。
【０２３６】
次に、ＣＰＵ８１はステップ９４０にてパージ流量ＫＰを算出し、ステップ９５０にて全開パージ率PGRMXを算出する。次に、ＣＰＵ８１はステップ１９２０にて上記（２７）式に従って基本デューティ比ＤＰＧｂを算出する。
【０２３７】
次に、ＣＰＵ８１はステップ１９３０に進むと、図２０に示したステップ２０１０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。即ち、ＣＰＵ８１はステップ２０１０にて現時点が学習促進制御中であるか否かを判定する。
【０２３８】
このとき、学習促進制御中であって学習促進要求フラグＸＺＬの値が「１」に設定されていると、ＣＰＵ８１はステップ２０１０にて「Ｙｅｓ」と判定してステップ２０２０に進み、上記（２８）式の値ｓに０より大きく１より小さい値ｓｓを代入する。その後、ＣＰＵ８１はステップ２０４０に進む。一方、現時点が学習促進制御中ではなく、通常学習制御中であって学習促進要求フラグＸＺＬの値が「０」に設定されていると、ＣＰＵ８１はステップ２０１０にて「Ｎｏ」と判定してステップ２０３０に進み、値ｓに「０」を代入する。その後、ＣＰＵ８１はステップ２０４０に進む。
【０２３９】
ＣＰＵ８１はステップ２０４０において、上記（２８）式に従って、最終的なデューティ比ＤＰＧを求める。この結果、値ｓが値ｓｓであるとき、最終的なデューティ比ＤＰＧは基本デューティ比ＤＰＧｂに遅れながら接近（追従）する。一方、値ｓが「０」であるとき、最終的なデューティ比ＤＰＧは基本デューティ比ＤＰＧｂそのものと一致する。次いで、ＣＰＵ８１はステップ２０５０に進み、次回のステップ２０４０における計算のために「前回の最終的なデューティ比ＤＰＧold」に今回更新された最終的なデューティ比ＤＰＧを設定する。その後、ＣＰＵ８１は図１９のステップ９７０に進んでデューティ比ＤＰＧに応じた指示信号をパージ制御弁４９に付与し、ステップ１９９５に進んで本ルーチンを一旦終了する。
【０２４０】
以上、説明したように、第３制御装置は、前記空燃比変動要因制御量として蒸発燃料ガスのパージ率を採用している。このパージ率が変化すれば、蒸発燃料ガスのパージ量も変化する。従って、第３制御装置は、前記空燃比変動要因制御量として蒸発燃料ガスのパージ量を採用しているとも言うことができる。
【０２４１】
また、第３制御装置は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較してデューティ比ＤＰＧの変化速度を小さくすることにより前記空燃比変動要因制御量としての蒸発燃料ガスのパージ率（又は、蒸発燃料ガスパージ量）の変化速度を小さくするように構成されている（図１９のステップ１９３０、図２０のルーチン、図１９のステップ９７０、及び図１８を参照。）。この結果、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０２４２】
更に、第３制御装置は以下のような機関制御量変更手段を備える。
即ち、その機関制御量変更手段は、
パージ通路部（４８）に配設され且つ指示信号（デューティ比ＤＰＧ）に応じて同パージ通路部の流路断面積を変更するパージ制御弁（４９）を備え、
「前記機関に吸入される吸入空気流量（又は、吸入空気流量と蒸発燃料ガスパージ量との和）に対する前記蒸発燃料ガスパージ量の比」である「蒸発燃料ガスパージ率」の目標値（ＰＧＴ）（又は前記蒸発燃料ガスパージ量の目標値）を「前記空燃比変動要因制御量の目標値」として決定するとともに、同決定された目標値に対する基本指示信号（基本デューティ比ＤＰＧｂ）を算出し、前記学習促進制御が実行されていないときには同算出された基本指示信号（デューティ比ＤＰＧｂ）を前記指示信号（ＤＰＧ）として前記パージ制御弁に付与し（図２０のステップ２０３０、ステップ２０４０及び図１９のステップ９７０を参照。）、前記学習促進制御が実行されているときには同算出された基本指示信号に遅れながら追従する信号を算出し（図２０のステップ２０２０及びステップ２０４０を参照。）且つ同算出した追従する信号を前記指示信号として前記パージ制御弁に付与する（図１９のステップ９７０を参照。）。
【０２４３】
これによれば、パージ制御弁４９に付与される指示信号ＤＰＧが、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して緩慢に変化する。従って、蒸発燃料ガスによる空燃比の一時的な変動が小さくなり、そのような変動は触媒の下流側に現れ難いので、第１フィードバック量（サブフィードバック量Vafsfb）も大きく変化し難くなる。その結果、サブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２４４】
第４実施形態
次に、本発明の第４実施形態に係る多気筒内燃機関の制御装置（以下、「第４制御装置」とも称呼する。）について説明する。第４制御装置は、バルブオーバーラップ期間の長さであるバルブオーバーラップ量を「空燃比変動要因制御量」として採用する。従って、以下、この相違点を中心として説明を加える。
【０２４５】
バルブオーバーラップ期間は、図２１に示したように、ある気筒に着目したとき、その気筒の「吸気弁３２及び排気弁３５」が共に開弁している期間である。このバルブオーバーラップ期間の開始時期は吸気弁３２の開弁時期ＩＮＯであり、終了時期は排気弁３５の閉弁時期ＥＸＣである。
【０２４６】
吸気弁３２の開弁時期ＩＮＯは、吸気上死点ＴＤＣからの進角度θino（θino＞０）により表される。進角度θinoの単位はクランク角（°）である。換言すると、吸気弁３２は吸気上死点前θino（ＢＴＤＣθino）にて開弁する。進角度θinoは「吸気弁開弁時期進角量、又は、吸気弁進角度」とも称呼される。
【０２４７】
排気弁３５の閉弁時期ＥＸＣは、吸気上死点ＴＤＣからの遅角度θexc（θexc＞０）により表される。遅角度θexcの単位はクランク角（°）である。換言すると、排気弁３５は吸気上死点後θexc（ＡＴＤＣθexc）にて閉弁する。遅角度θexcは「排気弁閉弁時期遅角量、又は、排気弁遅角度」とも称呼される。
【０２４８】
従って、バルブオーバーラップ期間の長さを表すバルブオーバーラップ量（単位はクランク角（°））ＶＯＬは、吸気弁開弁時期ＩＮＯを表す進角度θino（吸気弁進角度θino）と排気弁閉弁時期ＥＸＣを表す遅角度θexc（排気弁遅角度θexc）との和（ＶＯＬ＝θino＋θexc）となる。
【０２４９】
一般に、バルブオーバーラップ量ＶＯＬが大きいほど、そのバルブオーバーラップ期間中に吸気ポート３１に排出される既燃ガス（燃焼ガス、内部ＥＧＲガス）の量が増大するので、バルブオーバーラップ期間後において吸気弁３２が開弁しているときに燃焼室２５内に流入する既燃ガスの量（内部ＥＧＲガス量）も増大する。
【０２５０】
従って、バルブオーバーラップ量ＶＯＬが大きく変化すると（バルブオーバーラップ量ＶＯＬの変化速度が大きいと）、内部ＥＧＲガス量が急激に変化する。内部ＥＧＲガス量の急激な変化は、各気筒に供給される混合気の空燃比の間に過渡的な不均衡を発生させる。更に、内部ＥＧＲガス量の絶対量が大きい場合及び／又は内部ＥＧＲガス量の変化速度が大きい場合、不整燃焼が発生し、その結果、機関の空燃比が一時的に変動する。このような場合、サブフィードバック量Vafsfbも一時的に変動するので、学習値Vafsfbgの学習促進制御を実行していると、学習値Vafsfbgが適正値から乖離してしまう虞がある。
【０２５１】
そこで、第４制御装置は、学習促進制御が行われているときは学習促進制御が行われていないときに比較してバルブオーバーラップ量ＶＯＬを小さくするようにバルブオーバーラップ期間を制御する。
【０２５２】
より具体的に述べると、第４制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図２２にフローチャートにより示した「バルブタイミング制御ルーチン」を実行するようになっている。
【０２５３】
従って、所定のタイミングになると、ＣＰＵ８１は図２２のステップ２２００から処理を開始し、以下に述べるステップ２２１０乃至ステップ２２５０の処理を順に行い、ステップ２２９５に進んで本ルーチンを一旦終了する。
【０２５４】
ステップ２２１０：ＣＰＵ８１は、図１２に示したルーチンにより決定される学習促進要求フラグＸＺＬの値に基づいて、現時点が学習促進制御中であるか否か（学習促進制御中であるのか、通常学習制御中であるのか）を判定する。
【０２５５】
そして、現時点が通常学習制御中（フラグＸＺＬ＝０）であれば、ＣＰＵ８１はステップ２２１０内に実線Ｌ１０ｎ、Ｌ２０ｎ及びＬ３０ｎにより示したテーブル値を有する「通常学習制御用バルブオーバーラップ量テーブルMapVOLtgtnormal（ＫＬ，ＮＥ）」を選択し、その選択したテーブルMapVOLtgtnormal（ＫＬ，ＮＥ）に現時点の負荷ＫＬと機関回転速度ＮＥとを適用することによって目標バルブオーバーラップ量ＶＯＬｔｇｔを決定する。
【０２５６】
このテーブルMapVOLtgtnormal（ＫＬ，ＮＥ）によれば、実線Ｌ１０ｎにより囲まれた領域外における目標バルブオーバーラップ量ＶＯＬｔｇｔは最小の第１オーバーラップ量（例えば、１°クランク角）となる。また、実線Ｌ１０ｎと実線Ｌ２０ｎとの間の領域における目標バルブオーバーラップ量ＶＯＬｔｇｔは、第１オーバーラップ量よりも大きい第２オーバーラップ量（例えば、１０°クランク角）となる。更に、実線Ｌ２０ｎと実線Ｌ３０ｎとの間の領域における目標バルブオーバーラップ量ＶＯＬｔｇｔは、第２オーバーラップ量よりも大きい第３オーバーラップ量（例えば、２０°クランク角）となる。加えて、実線Ｌ３０ｎに囲まれた領域における目標バルブオーバーラップ量ＶＯＬｔｇｔは、第３オーバーラップ量よりも大きい第４（最大）オーバーラップ量（例えば、３０°クランク角）となる。
【０２５７】
これに対し、現時点が学習促進制御中（フラグＸＺＬ＝１）であれば、ＣＰＵ８１はステップ２２１０内に破線Ｌ１０ｓ及びＬ２０ｓにより示したテーブル値を有する「学習促進制御用バルブオーバーラップ量テーブルMapVOLtgtsoku（ＫＬ，ＮＥ）」を選択し、その選択したテーブルMapVOLtgtsoku（ＫＬ，ＮＥ）に現時点の負荷ＫＬと機関回転速度ＮＥとを適用することによって目標バルブオーバーラップ量ＶＯＬｔｇｔを決定する。
【０２５８】
このテーブルMapVOLtgtsoku（ＫＬ，ＮＥ）によれば、破線Ｌ１０ｓにより囲まれた領域外における目標バルブオーバーラップ量ＶＯＬｔｇｔは前記第１オーバーラップ量となる。また、破線Ｌ１０ｓと破線Ｌ２０ｓとの間の領域における目標バルブオーバーラップ量ＶＯＬｔｇｔは前記第２オーバーラップ量となる。更に、破線Ｌ２０ｓに囲まれた領域における目標バルブオーバーラップ量ＶＯＬｔｇｔは前記第３オーバーラップ量となる。
【０２５９】
破線Ｌ１０ｓは実線Ｌ１０ｎの内側の領域に存在している。破線Ｌ２０ｓは実線Ｌ２０ｎの内側の領域に存在している。また、テーブルMapVOLtgtsoku（ＫＬ，ＮＥ）によれば、第４オーバーラップ量（テーブルMapVOLtgtnormal（ＫＬ，ＮＥ）の実線Ｌ３０ｎに囲まれた領域において得られる目標バルブオーバーラップ量）が得られる領域は存在しない。
【０２６０】
このように、テーブルMapVOLtgtsoku（ＫＬ，ＮＥ）により得られる目標バルブオーバーラップ量ＶＯＬｔｇｔは、テーブルMapVOLtgtnormal（ＫＬ，ＮＥ）により得られる目標バルブオーバーラップ量ＶＯＬｔｇｔ以下となる。例えば、図２２のステップ２２１０内に示したように、運転状態が点Ｐ１から点Ｐ２に変化するとき、テーブルMapVOLtgtnormal（ＫＬ，ＮＥ）による目標バルブオーバーラップ量ＶＯＬｔｇｔは第１オーバーラップ量から第３オーバーラップ量へと変化するのに対し、テーブルMapVOLtgtsoku（ＫＬ，ＮＥ）による目標バルブオーバーラップ量ＶＯＬｔｇｔは第１オーバーラップ量から第２オーバーラップへと変化する。
【０２６１】
ステップ２２２０：ＣＰＵ８１は、ステップ２２１０にて決定された目標バルブオーバーラップ量ＶＯＬｔｇｔをテーブルMapθinotgtに適用することにより、吸気弁開弁時期ＩＮＯを表す吸気弁進角度θinoの目標値（即ち、目標吸気弁進角度θinotgt）を決定する。
【０２６２】
ステップ２２３０：ＣＰＵ８１は、ステップ２２１０にて決定された目標バルブオーバーラップ量ＶＯＬｔｇｔをテーブルMapθexctgtに適用することにより、排気弁閉弁時期ＥＸＣを表す排気弁遅角度θexcの目標値（即ち、目標排気弁遅角度θexctgt）を決定する。
【０２６３】
なお、テーブルMapθinotgt及びテーブルMapθexctgtは、それらに目標バルブオーバーラップ量ＶＯＬｔｇｔを適用したときに得られる目標吸気弁進角度θinotgtと目標排気弁遅角度θexctgtとの和が、その目標バルブオーバーラップ量ＶＯＬｔｇｔに一致するように、予め定められている。
【０２６４】
ステップ２２４０：ＣＰＵ８１は、各気筒の吸気弁３２が目標吸気弁進角度θinotgt（即ち、ＢＴＤＣθinotgt）にて開弁するように、可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示信号を送出する。
【０２６５】
ステップ２２５０：ＣＰＵ８１は、各気筒の排気弁３５が目標排気弁遅角度θexctgt（即ち、ＡＴＤＣθexctgt）にて閉弁するように、可変排気タイミング制御装置３６のアクチュエータ３６ａに指示を送出する。
【０２６６】
以上により、バルブオーバーラップ期間（従って、バルブオーバーラップ量）の制御がなされる。
【０２６７】
このように第４制御装置は、バルブオーバーラップ量を空燃比変動要因制御量として採用している。バルブオーバーラップ量は筒内残留ガス量を制御する制御量である。筒内残留ガス（内部ＥＧＲガス）は、少なくとも２以上の気筒（本例においては総ての気筒）の燃焼室２５において既に燃焼したガスであって、その２以上の気筒のそれぞれの圧縮行程の開始時に同それぞれの気筒の燃焼室２５に存在するガスである。従って、第４制御装置は、筒内残留ガス量（内部ＥＧＲガス量）を空燃比変動要因制御量として採用していると言うこともできる。
【０２６８】
更に、第４制御装置は、第１制御装置が備える各手段の他、空燃比変動要因制御量（内部ＥＧＲガス量、バルブオーバーラップ量）を変更する機関制御量変更手段（図２２のルーチン、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６）を備える。加えて、その機関制御量変更手段は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量を小さくするように構成されている（図２２のステップ２２１０と、ステップ２２２０乃至ステップ２２５０を参照。）。
【０２６９】
更に、第４制御装置の機関制御量変更手段は、
前記空燃比変動要因制御量の実際の値を指示信号に応じて変更するアクチュエータ（可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６）と、
前記空燃比変動要因制御量の目標値（目標バルブオーバーラップ量ＶＯＬｔｇｔ）を前記機関の運転状態（負荷ＫＬ、機関回転速度ＮＥ）に応じて決定するとともに（図２２のステップ２２１０を参照。）、前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段（図２２のステップ２２４０及びステップ２２５０を参照。）と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値が小さくなるように同目標値を決定するように構成されている（図２２のステップ２２１０を参照。）。
【０２７０】
また、前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁及び排気弁が共に開弁しているバルブオーバーラップ期間の長さであるバルブオーバーラップ量を前記空燃比変動要因制御量として変更するバルブタイミング制御装置（可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６）であり、
前記指示信号付与手段は、
前記バルブオーバーラップ量の目標値（目標バルブオーバーラップ量ＶＯＬｔｇｔ）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０２７１】
従って、学習促進制御中は通常学習制御中に比較して、内部ＥＧＲガス量（筒内残留ガス量）を変更するバルブオーバーラップ量は過大とならず、その時間的変化も小さくなる。それ故、学習促進制御中における「内部ＥＧＲガス（筒内残留ガス）に起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量（サブフィードバック量Vafsfb）の変化も穏やかになる。その結果、サブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２７２】
第５実施形態
次に、本発明の第５実施形態に係る多気筒内燃機関の制御装置（以下、「第５制御装置」とも称呼する。）について説明する。第５制御装置は、吸気弁開弁時期を変更するとともに排気弁閉弁時期を固定することによりバルブオーバーラップ期間を変更するようになっている。従って、第５制御装置は、可変吸気タイミング制御装置３３を備えるが、可変排気タイミング制御装置３６を備えない機関にも適用される。勿論、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６を備える機関１０にも適用され得る。
【０２７３】
第５制御装置は、バルブオーバーラップ期間の開始時期である吸気弁開弁時期ＩＮＯ（即ち、吸気弁進角度θino）を「空燃比変動要因制御量」として採用する。従って、以下、この点を中心として説明を加える。なお、第５制御装置は、可変排気タイミング制御装置３６を備えない機関に適用されるので、排気弁閉弁時期ＥＸＣはエキゾーストカムシャフトのカムプロフィールに応じて決まる。即ち、排気弁遅角度θexcは一定である。
【０２７４】
より具体的に述べると、第５制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図２３にフローチャートにより示した「バルブタイミング制御ルーチン」を実行するようになっている。
【０２７５】
従って、所定のタイミングになると、ＣＰＵ８１は図２３のステップ２３００から処理を開始し、以下に述べるステップ２３１０及びステップ２３２０の処理を順に行い、ステップ２３９５に進んで本ルーチンを一旦終了する。
【０２７６】
ステップ２３１０：ＣＰＵ８１は、図１２に示したルーチンにより決定される学習促進要求フラグＸＺＬの値に基づいて、現時点が学習促進制御中であるか否か（学習促進制御中であるのか、通常学習制御中であるのか）を判定する。
【０２７７】
そして、現時点が通常学習制御中（フラグＸＺＬ＝０）であれば、ＣＰＵ８１はステップ２３１０内に実線Ｌ１により示したテーブル値を有する「通常学習制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtno（ＫＬ）」を選択し、その選択したテーブルMapθinotgtno（ＫＬ）に現時点の負荷ＫＬを適用することによって目標吸気弁進角度θinotgtを決定する。
【０２７８】
これに対し、現時点が学習促進制御中（フラグＸＺＬ＝１）であれば、ＣＰＵ８１はステップ２３１０内に破線Ｌ２により示したテーブル値を有する「学習促進制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtso（ＫＬ）」を選択し、その選択したテーブルMapθinotgtso（ＫＬ）に現時点の負荷ＫＬを適用することによって目標吸気弁進角度θinotgtを決定する。
【０２７９】
この「学習促進制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtso（ＫＬ）」は、「そのテーブルMapθinotgtso（ＫＬ）に基づいて得られる目標吸気弁進角度θinotgt」が「通常学習制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtno（ＫＬ）に基づいて得られる目標吸気弁進角度θinotgt」よりも小さくなるように作成されている。
【０２８０】
ステップ２２４０：ＣＰＵ８１は、各気筒の吸気弁３２が目標吸気弁進角度θinotgt（即ち、ＢＴＤＣθinotgt）にて開弁するように、可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示信号を送出する。
【０２８１】
このように第５制御装置は、吸気弁開弁時期ＩＮＯ（吸気弁進角度θino）を空燃比変動要因制御量として採用している。
【０２８２】
更に、第５制御装置は、第１制御装置が備える各手段の他、空燃比変動要因制御量（吸気弁開弁時期ＩＮＯ（吸気弁進角度θino）を変更する機関制御量変更手段（図２３のルーチン及び可変吸気タイミング制御装置３３）を備える。加えて、その機関制御量変更手段は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量を小さくするように構成されている（図２３のステップ２３１０及びステップ２３２０を参照。）。
【０２８３】
更に、第５制御装置の機関制御量変更手段は、
前記空燃比変動要因制御量の実際の値を指示信号に応じて変更するアクチュエータ（可変吸気タイミング制御装置３３）と、
前記空燃比変動要因制御量の目標値（目標吸気弁進角度θinotgt）を前記機関の運転状態（負荷ＫＬ）に応じて決定するとともに（図２３のステップ２３１０を参照。）、前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段（図２３のステップ２３２０を参照。）と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値（目標吸気弁進角度θinotgt）が小さくなるように同目標値（目標吸気弁進角度θinotgt）を決定するように構成されている（図２３のステップ２３１０を参照。）。
【０２８４】
また、前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの吸気弁３２の開弁時期ＩＮＯ（吸気弁進角度θino）を前記空燃比変動要因制御量として変更する吸気タイミング制御装置（可変吸気タイミング制御装置３３）であり、
前記指示信号付与手段は、
前記吸気弁開弁時期の目標値（目標吸気弁進角度θinotgt）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０２８５】
従って、学習促進制御中は通常学習制御中に比較して、内部ＥＧＲガス量（筒内残留ガス量）を変更する吸気弁進角度θinoは過大とならず、その時間的変化も小さくなる。それ故、学習促進制御中における「内部ＥＧＲガス（筒内残留ガス）に起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量（サブフィードバック量Vafsfb）の変化も穏やかになる。その結果、サブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２８６】
なお、第５制御装置は、図２３のステップ２３１０にて参照する「テーブルMapθinotgtso（ＫＬ）及びテーブルMapθinotgtno（ＫＬ）」を、図２４のステップ２４１０に示した「学習促進制御用の目標吸気弁開弁時期進角量テーブルテーブルMapθinotgtso（ＫＬ）及び通常学習制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtno（ＫＬ）」にそれぞれ代えてもよい。図２４のステップ２４１０に示したテーブルMapθinotgtso（ＫＬ）は、テーブルMapθinotgtno（ＫＬ）により得られる目標吸気弁進角度θinotgtが所定の上限値θinotgtmax以上であるとき、目標吸気弁進角度θinotgtをその上限値θinotgtmaxに設定するテーブルである。
【０２８７】
更に、第５制御装置は、図２３のステップ２３１０にて参照する「テーブルMapθinotgtso（ＫＬ）及びテーブルMapθinotgtno（ＫＬ）」を、図２５のステップ２５１０に示した「学習促進制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtso（ＫＬ,ＮＥ）及び通常学習制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtno（ＫＬ,ＮＥ）」にそれぞれ代えてもよい。
【０２８８】
図２５のステップ２５１０において、テーブルMapθinotgtno（ＫＬ,ＮＥ）は実線Ｍ１０ｎ、Ｍ２０ｎ及びＭ３０ｎにより示されている。このテーブルMapθinotgtno（ＫＬ,ＮＥ）によれば、実線Ｍ１０ｎにより囲まれた領域外における目標吸気弁進角度θinotgtは最小の第１角度（例えば、１°クランク角）となる。また、実線Ｍ１０ｎと実線Ｍ２０ｎとの間の領域における目標吸気弁進角度θinotgtは、第１角度よりも大きい第２角度（例えば、１０°クランク角）となる。更に、実線Ｍ２０ｎと実線Ｍ３０ｎとの間の領域における目標吸気弁進角度θinotgtは、第２角度よりも大きい第３角度（例えば、２０°クランク角）となる。加えて、実線Ｍ３０ｎに囲まれた領域における目標吸気弁進角度θinotgtは、第３角度よりも大きい第４（最大）角度（例えば、３０°クランク角）となる。
【０２８９】
更に、図２５のステップ２５１０において、テーブルMapθinotgtso（ＫＬ,ＮＥ）は破線Ｍ１０ｓ及びＭ２０ｓにより示されている。このテーブルMapθinotgtso（ＫＬ,ＮＥ）によれば、破線Ｍ１０ｓにより囲まれた領域外における目標吸気弁進角度θinotgtは前記第１クランク角となる。また、破線Ｍ１０ｓと破線Ｍ２０ｓとの間の領域における目標吸気弁進角度θinotgtは前記第２クランク角となる。更に、破線Ｍ２０ｓに囲まれた領域における目標吸気弁進角度θinotgtは前記第３クランク角となる。
【０２９０】
破線Ｍ１０ｓは実線Ｍ１０ｎの内側の領域に存在している。破線Ｍ２０ｓは実線Ｍ２０ｎの内側の領域に存在している。また、テーブルMapθinotgtso（ＫＬ,ＮＥ）によれば、第４クランク角（テーブルMapθinotgtno（ＫＬ，ＮＥ）の実線Ｍ３０ｎに囲まれた領域において得られるクランク角）が得られる領域は存在しない。
【０２９１】
このように、テーブルMapθinotgtso（ＫＬ,ＮＥ）により得られる目標吸気弁進角度θinotgtは、テーブルMapθinotgtno（ＫＬ，ＮＥ）により得られる目標吸気弁進角度θinotgt以下となる。例えば、図２５のステップ２５１０内に示したように、運転状態が点Ｐ１から点Ｐ２に変化するとき、テーブルMapθinotgtno（ＫＬ，ＮＥ）による目標吸気弁進角度θinotgtは第１クランク角から第３クランク角へと変化するのに対し、テーブルMapθinotgtso（ＫＬ，ＮＥ）による目標吸気弁進角度θinotgtは第１クランク角から第２クランク角へと変化する。
【０２９２】
第６実施形態
次に、本発明の第６実施形態に係る多気筒内燃機関の制御装置（以下、「第６制御装置」とも称呼する。）について説明する。第６制御装置は、目標吸気弁開弁時期（目標吸気弁進角度θinotgt）の決定方法のみにおいて、第５制御装置と相違している。従って、以下、この相違点を中心として説明する。
【０２９３】
第６制御装置は、学習促進制御中であるか否かに関わらず一つの暫定目標吸気弁開弁時期進角量テーブルMapθinotgt（ＫＬ）を使用して暫定的な目標吸気弁進角度θinotgtを決定する。この暫定目標吸気弁開弁時期進角量テーブルMapθinotgt（ＫＬ）は第５制御装置が使用する「通常学習制御用の目標吸気弁開弁時期進角量テーブルMapθinotgtno（ＫＬ）」と同じテーブルである。そして、現時点が通常学習制御中であれば、第６制御装置は、その暫定的な目標吸気弁進角度θinotgtを最終目標吸気弁進角度θinotgtFとしてそのまま採用し、その最終目標吸気弁進角度θinotgtFに基づいて可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示信号を送出する。
【０２９４】
これに対し、現時点が学習促進制御中であれば、第６制御装置は、テーブルMapθinotgt（ＫＬ）を使用して得られた暫定的な目標吸気弁進角度θinotgtを、下記（２９）式に適用することにより最終目標吸気弁進角度θinotgtFを求める。（２９）式においてｔは０より大きく１より小さい所定の定数であり、θinotgtFoldは更新前（即ち、前回計算した）の最終目標吸気弁進角度θinotgtFである。（２９）式によれば、最終目標吸気弁進角度θinotgtFは暫定的な目標吸気弁進角度θinotgtに遅れながら接近（追従）する。
θinotgtF＝ｔ・θinotgtFold
+ （１−ｔ）・θinotgt  …（２９）
【０２９５】
これにより、学習促進制御中においては、暫定的な目標吸気弁進角度θinotgtが図２６の実線のように急激に変化した場合であっても、最終目標吸気弁進角度θinotgtFは図２６の破線のように緩やかに変化する。そして、第６制御装置は、このように求められる最終目標吸気弁進角度θinotgtFに基づいて可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示信号を送出する。この結果、実際の吸気弁進角度θinoが急変しないので、内部ＥＧＲガス量も急変しない。従って、空燃比の一時的な変動が抑制されるので、サブフィードバック量Vafsfbの変化も穏やかになる。その結果、学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０２９６】
次に、第６制御装置の実際の作動について説明する。第６制御装置のＣＰＵ８１は、第５制御装置のＣＰＵ８１が実行するルーチンのうち図２３を除くルーチンを実行するようになっている。更に、第６制御装置のＣＰＵ８１は、所定時間が経過する毎に、図２３に代わる図２７にフローチャートにより示したルーチンを実行するようになっている。
【０２９７】
従って、所定のタイミングになると、ＣＰＵ８１は図２７のステップ２７００から処理を開始してステップ２７１０に進み、暫定目標吸気弁開弁時期進角量テーブルMapθinotgt（ＫＬ）に現時点の負荷ＫＬを適用することによって暫定的な目標吸気弁進角度θinotgtを決定する。次いで、ＣＰＵ８１はステップ２７２０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。即ち、ＣＰＵ８１はステップ２７２０にて現時点が学習促進制御中であるか否かを判定する。
【０２９８】
このとき、学習促進制御中であって学習促進要求フラグＸＺＬの値が「１」に設定されていると、ＣＰＵ８１はステップ２７２０にて「Ｙｅｓ」と判定してステップ２７３０に進み、上記（２９）式にて使用される値ｔに０より大きく１より小さい値ｔｔを代入する。その後、ＣＰＵ８１はステップ２７５０に進む。一方、現時点が学習促進制御中ではなく、通常学習制御中であって学習促進要求フラグＸＺＬの値が「０」に設定されていると、ＣＰＵ８１はステップ２７４０にて「Ｎｏ」と判定してステップ２７４０に進み、値ｔに「０」を代入する。その後、ＣＰＵ８１はステップ２７５０に進む。
【０２９９】
ＣＰＵ８１はステップ２７５０において、上記（２９）式に従って、最終目標吸気弁進角度θinotgtFを更新する。次に、ＣＰＵ８１はステップ２７６０に進み、次回のステップ２７５０における計算のために「前回最終目標吸気弁進角度θinotgtFold」に今回更新された最終目標吸気弁進角度θinotgtFを設定する。その後、ＣＰＵ８１はステップ２７７０に進み、各気筒の吸気弁３２が最終目標吸気弁進角度θinotgtF（即ち、ＢＴＤＣθinotgtF）にて開弁するように、可変吸気タイミング制御装置３３のアクチュエータ３３ａに指示信号を送出する。その後、ＣＰＵ８１はステップ２７９５に進み、本ルーチンを一旦終了する。
【０３００】
以上、説明したように、第６制御装置は、第５制御装置と同様、吸気弁３２の開弁時期ＩＮＯ（吸気弁進角度θino）を前記空燃比変動要因制御量として変更するアクチュエータ（可変吸気タイミング制御装置３３）を備える。更に、第６制御装置は、前記吸気弁開弁時期の目標値（最終目標吸気弁進角度θinotgtF）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０３０１】
そして、第６制御装置は、最終目標吸気弁進角度θinotgtFの変化速度を学習促進制御中は学習促進制御中でないときに比較して小さくすることにより、空燃比変動要因制御量としての吸気弁開弁時期（最終目標吸気弁進角度θinotgtF、従って、内部ＥＧＲガス量）の変化速度を小さくしている（図２７のルーチンを参照。）。この結果、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０３０２】
第７実施形態
次に、本発明の第７実施形態に係る多気筒内燃機関の制御装置（以下、「第７制御装置」とも称呼する。）について説明する。第７制御装置は、排気弁閉弁時期を変更するとともに吸気弁開弁時期を固定することによりバルブオーバーラップ期間を変更するようになっている。従って、第７制御装置は、可変排気タイミング制御装置３６を備えるが、可変吸気タイミング制御装置３３を備えない機関にも適用される。勿論、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６を備える機関１０にも適用され得る。
【０３０３】
第７制御装置は、バルブオーバーラップ期間の終了時期である排気弁閉弁時期ＥＸＣ（即ち、排気弁遅角度θexc）を「空燃比変動要因制御量」として採用する。従って、以下、この相違点を中心として説明を加える。なお、第７制御装置は、可変吸気タイミング制御装置３３を備えない機関に適用されるので、吸気弁開弁時期ＩＮＯはインテークカムシャフトのカムプロフィールに応じて決まる。即ち、吸気弁進角度θinoは一定である。
【０３０４】
より具体的に述べると、第７制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図２８にフローチャートにより示した「バルブタイミング制御ルーチン」を実行するようになっている。
【０３０５】
従って、所定のタイミングになると、ＣＰＵ８１は図２８のステップ２８００から処理を開始し、以下に述べるステップ２８１０及びステップ２８２０の処理を順に行い、ステップ２８９５に進んで本ルーチンを一旦終了する。
【０３０６】
ステップ２８１０：ＣＰＵ８１は、図１２に示したルーチンにより決定される学習促進要求フラグＸＺＬの値に基づいて、現時点が学習促進制御中であるか否か（学習促進制御中であるのか、通常学習制御中であるのか）を判定する。
【０３０７】
そして、現時点が通常学習制御中（フラグＸＺＬ＝０）であれば、ＣＰＵ８１はステップ２８１０内に実線Ｎ１により示したテーブル値を有する「通常学習制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtno（ＫＬ）」を選択し、その選択したテーブルMapθexctgtno（ＫＬ）に現時点の負荷ＫＬを適用することによって目標排気弁遅角度θexctgtを決定する。
【０３０８】
これに対し、現時点が学習促進制御中（フラグＸＺＬ＝１）であれば、ＣＰＵ８１はステップ２８１０内に破線Ｎ２により示したテーブル値を有する「学習促進制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtso（ＫＬ）」を選択し、その選択したテーブルMapθexctgtso（ＫＬ）に現時点の負荷ＫＬを適用することによって目標排気弁遅角度θexctgtを決定する。
【０３０９】
この「学習促進制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtso（ＫＬ）」は、「そのテーブルMapθexctgtso（ＫＬ）に基づいて得られる目標排気弁遅角度θexctgt」が「通常学習制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtno（ＫＬ）に基づいて得られる目標排気弁遅角度θexctgt」よりも小さくなるように作成されている。
【０３１０】
ステップ２２４０：ＣＰＵ８１は、各気筒の排気弁３５が目標排気弁遅角度θexctgt（即ち、ＡＴＤＣθexctgt）にて開弁するように、可変排気タイミング制御装置３６のアクチュエータ３６ａに指示信号を送出する。
【０３１１】
このように第７制御装置は、排気弁閉弁時期ＥＸＣ（排気弁遅角度θexc）を空燃比変動要因制御量として採用している。
【０３１２】
更に、第７制御装置は、第１制御装置が備える各手段の他、空燃比変動要因制御量（排気弁閉弁時期ＥＸＣ（排気弁遅角度θexc）を変更する機関制御量変更手段（図２８のルーチン及び可変排気タイミング制御装置３６）を備える。加えて、その機関制御量変更手段は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量を小さくするように構成されている（図２８のステップ２８１０及びステップ２８２０を参照。）。
【０３１３】
更に、第７制御装置の機関制御量変更手段は、
前記空燃比変動要因制御量の実際の値を指示信号に応じて変更するアクチュエータ（可変排気タイミング制御装置３６）と、
前記空燃比変動要因制御量の目標値（目標排気弁遅角度θexctgt）を前記機関の運転状態（負荷ＫＬ）に応じて決定するとともに（図２８のステップ２８１０を参照。）、前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段（図２８のステップ２８２０を参照。）と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値（目標排気弁遅角度θexctgt）が小さくなるように同目標値（目標排気弁遅角度θexctgt）を決定するように構成されている（図２８のステップ２８１０を参照。）。
【０３１４】
また、前記アクチュエータは、
前記少なくとも２以上の気筒のそれぞれの排気弁３５の閉弁時期ＥＸＣ（排気弁遅角度θexc）を前記空燃比変動要因制御量として変更する排気タイミング制御装置（可変排気タイミング制御装置３６）であり、
前記指示信号付与手段は、
前記排気弁閉弁時期の目標値（目標排気弁遅角度θexctgt）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０３１５】
従って、学習促進制御中は通常学習制御中に比較して、内部ＥＧＲガス量（筒内残留ガス量）を変更する排気弁遅角度θexcは過大とならず、その時間的変化も小さくなる。それ故、学習促進制御中における「内部ＥＧＲガス（筒内残留ガス）に起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量（サブフィードバック量Vafsfb）の変化も穏やかになる。その結果、サブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０３１６】
なお、第７制御装置は、図２８のステップ２８１０にて参照する「テーブルMapθexctgtso（ＫＬ）及びテーブルMapθexctgtno（ＫＬ）」を、図２９のステップ２９１０に示した「学習促進制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtso（ＫＬ）及び通常学習制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtno（ＫＬ）」にそれぞれ代えてもよい。図２９のステップ２９１０に示したテーブルMapθexctgtso（ＫＬ）は、テーブルMapθexctgtno（ＫＬ）により得られる目標排気弁遅角度θexctgtが所定の上限値θexctgtmax以上であるとき、目標排気弁遅角度θexctgtをその上限値θexctgtmaxに設定するテーブルである。
【０３１７】
更に、第７制御装置は、図２８のステップ２８１０にて参照する「テーブルMapθexctgtso（ＫＬ）及びテーブルMapθexctgtno（ＫＬ）」を、図３０のステップ３０１０に示した「学習促進制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtso（ＫＬ,ＮＥ）及び通常学習制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtno（ＫＬ,ＮＥ）」にそれぞれ代えてもよい。
【０３１８】
図３０のステップ３０１０において、テーブルMapθexctgtno（ＫＬ,ＮＥ）は実線Ｒ１０ｎ、Ｒ２０ｎ及びＲ３０ｎにより示されている。このテーブルMapθexctgtno（ＫＬ,ＮＥ）によれば、実線Ｒ１０ｎにより囲まれた領域外における目標排気弁遅角度θexctgtは最小の第５クランク角となる。また、実線Ｒ１０ｎと実線Ｒ２０ｎとの間の領域における目標排気弁遅角度θexctgtは、第５クランク角よりも大きい第６クランク角となる。更に、実線Ｒ２０ｎと実線Ｒ３０ｎとの間の領域における目標排気弁遅角度θexctgtは、第６クランク角よりも大きい第７クランク角となる。加えて、実線Ｒ３０ｎに囲まれた領域における目標排気弁遅角度θexctgtは、第７クランク角よりも大きい第８（最大）クランク角となる。
【０３１９】
更に、図３０のステップ３０１０において、テーブルMapθexctgtso（ＫＬ,ＮＥ）は破線Ｒ１０ｓ及びＲ２０ｓにより示されている。このテーブルMapθexctgtso（ＫＬ,ＮＥ）によれば、破線Ｒ１０ｓにより囲まれた領域外における目標排気弁遅角度θexctgtは前記第５クランク角となる。また、破線Ｒ１０ｓと破線Ｒ２０ｓとの間の領域における目標排気弁遅角度θexctgtは前記第６クランク角となる。更に、破線Ｒ２０ｓに囲まれた領域における目標排気弁遅角度θexctgtは前記第７クランク角となる。
【０３２０】
破線Ｒ１０ｓは実線Ｒ１０ｎの内側の領域に存在している。破線Ｒ２０ｓは実線Ｒ２０ｎの内側の領域に存在している。また、テーブルMapθexctgtso（ＫＬ,ＮＥ）によれば、第８クランク角（テーブルMapθexctgtno（ＫＬ，ＮＥ）の実線Ｒ３０ｎに囲まれた領域において得られるクランク角）が得られる領域は存在しない。
【０３２１】
このように、テーブルMapθexctgtso（ＫＬ,ＮＥ）により得られる目標排気弁遅角度θexctgtは、テーブルMapθexctgtno（ＫＬ，ＮＥ）により得られる目標排気弁遅角度θexctgt以下となる。例えば、図３０のステップ３０１０内に示したように、運転状態が点Ｐ１から点Ｐ２に変化するとき、テーブルMapθexctgtno（ＫＬ，ＮＥ）による目標排気弁遅角度θexctgtは第５クランク角から第７クランク角へと変化するのに対し、テーブルMapθexctgtso（ＫＬ，ＮＥ）による目標排気弁遅角度θexctgtは第５クランク角から第６クランク角へと変化する。
【０３２２】
第８実施形態
次に、本発明の第８実施形態に係る多気筒内燃機関の制御装置（以下、「第８制御装置」とも称呼する。）について説明する。第８制御装置は、目標排気弁閉弁時期（目標排気弁遅角度θexctgt）の決定方法のみにおいて、第７制御装置と相違している。従って、以下、この相違点を中心として説明する。
【０３２３】
第８制御装置は、学習促進制御中であるか否かに関わらず一つの暫定目標排気弁閉弁時期遅角量テーブルMapθexctgt（ＫＬ）を使用して暫定的な目標排気弁遅角度θexctgtを決定する。この暫定目標排気弁閉弁時期遅角量テーブルMapθexctgt（ＫＬ）は第７制御装置が使用する「通常学習制御用の目標排気弁閉弁時期遅角量テーブルMapθexctgtno（ＫＬ）」と同じテーブルである。そして、現時点が通常学習制御中であれば、第８制御装置は、その暫定的な目標排気弁遅角度θexctgtを最終目標排気弁遅角度θexctgtFとしてそのまま採用し、その最終目標排気弁遅角度θexctgtFに基づいて可変排気タイミング制御装置３６のアクチュエータ３６ａに指示信号を送出する。
【０３２４】
これに対し、現時点が学習促進制御中であれば、第８制御装置は、テーブルMapθexctgt（ＫＬ）を使用して得られた暫定的な目標排気弁遅角度θexctgtを、下記（３０）式に適用することにより最終目標排気弁遅角度θexctgtFを求める。（３０）式においてｔは０より大きく１より小さい所定の定数であり、θexctgtFoldは更新前（即ち、前回計算した）の最終目標排気弁遅角度θexctgtFである。（３０）式によれば、最終目標排気弁遅角度θexctgtFは暫定的な目標排気弁遅角度θexctgtに遅れながら接近（追従）する。
θexctgtF＝ｔ・θexctgtFold
+ （１−ｔ）・θexctgt  …（３０）
【０３２５】
これにより、学習促進制御中においては、暫定的な目標排気弁遅角度θexctgtが図３１の実線のように急激に変化した場合であっても、最終目標排気弁遅角度θexctgtFは図３１の破線のように緩やかに変化する。そして、第８制御装置は、このように求められる最終目標排気弁遅角度θexctgtFに基づいて可変排気タイミング制御装置３６のアクチュエータ３６ａに指示信号を送出する。この結果、実際の排気弁遅角度θexcが急変しないので、内部ＥＧＲガス量も急変しない。従って、空燃比の一時的な変動が抑制されるので、サブフィードバック量Vafsfbの変化も穏やかになる。その結果、学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０３２６】
次に、第８制御装置の実際の作動について説明する。第８制御装置のＣＰＵ８１は、第７制御装置のＣＰＵ８１が実行するルーチンのうち図２８を除くルーチンを実行するようになっている。更に、第８制御装置のＣＰＵ８１は、所定時間が経過する毎に、図２８に代わる図３２にフローチャートにより示したルーチンを実行するようになっている。
【０３２７】
従って、所定のタイミングになると、ＣＰＵ８１は図３１のステップ３２００から処理を開始してステップ３２１０に進み、暫定目標排気弁閉弁時期遅角量テーブルMapθexctgt（ＫＬ）に現時点の負荷ＫＬを適用することによって暫定的な目標排気弁遅角度θexctgtを決定する。次いで、ＣＰＵ８１はステップ３２２０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。即ち、ＣＰＵ８１はステップ３２２０にて現時点が学習促進制御中であるか否かを判定する。
【０３２８】
このとき、学習促進制御中であって学習促進要求フラグＸＺＬの値が「１」に設定されていると、ＣＰＵ８１はステップ３２２０にて「Ｙｅｓ」と判定してステップ３２３０に進み、上記（３０）式にて使用される値ｔに０より大きく１より小さい値ｔｔを代入する。その後、ＣＰＵ８１はステップ３２５０に進む。一方、現時点が学習促進制御中ではなく、通常学習制御中であって学習促進要求フラグＸＺＬの値が「０」に設定されていると、ＣＰＵ８１はステップ３２４０にて「Ｎｏ」と判定してステップ３２４０に進み、値ｔに「０」を代入する。その後、ＣＰＵ８１はステップ３２５０に進む。
【０３２９】
ＣＰＵ８１はステップ３２５０において、上記（３０）式に従って、最終目標排気弁遅角度θexctgtFを更新する。次に、ＣＰＵ８１はステップ３２６０に進み、次回のステップ３２５０における計算のために「前回最終目標排気弁遅角度θexctgtFold」に今回更新された最終目標排気弁遅角度θexctgtFを設定する。その後、ＣＰＵ８１はステップ３２７０に進み、各気筒の排気弁３５が最終目標排気弁遅角度θexctgtF（即ち、ＡＴＤＣθexctgtF）にて開弁するように、可変排気タイミング制御装置３６のアクチュエータ３６ａに指示信号を送出する。その後、ＣＰＵ８１はステップ３２９５に進み、本ルーチンを一旦終了する。
【０３３０】
以上、説明したように、第８制御装置は、第７制御装置と同様、排気弁３５の閉弁時期ＥＸＣ（排気弁遅角度θexc）を前記空燃比変動要因制御量として変更するアクチュエータ（可変排気タイミング制御装置３６）を備える。更に、第８制御装置は、前記排気弁閉弁時期の目標値（最終目標排気弁遅角度θexctgtF）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０３３１】
そして、第８制御装置は、最終目標排気弁遅角度θexctgtFの変化速度を学習促進制御中は学習促進制御中でないときに比較して小さくすることにより、空燃比変動要因制御量としての排気弁閉弁時期（最終目標排気弁遅角度θexctgtF、従って、内部ＥＧＲガス量）の変化速度を小さくしている（図３２のルーチンを参照。）。この結果、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０３３２】
第９実施形態
次に、本発明の第９実施形態に係る多気筒内燃機関の制御装置（以下、「第９制御装置」とも称呼する。）について説明する。第９制御装置は、外部ＥＧＲ率を「空燃比変動要因制御量」として採用する。従って、以下、この相違点を中心として説明を加える。
【０３３３】
外部ＥＧＲ率が大きく変化すると（外部ＥＧＲ率の変化速度が大きいと）、外部ＥＧＲガス量が急激に変化する。外部ＥＧＲガス量の急激な変化は、各気筒に供給される混合気の空燃比の間に過渡的な不均衡を発生させる。更に、外部ＥＧＲガス量の絶対量が大きい場合及び／又は外部ＥＧＲガス量の変化速度が大きい場合、不整燃焼が発生し、その結果、機関の空燃比が一時的に変動する。このような場合、サブフィードバック量Vafsfbも一時的に変動するので、学習値Vafsfbgの学習促進制御を実行していると、学習値Vafsfbgが適正値から乖離してしまう虞がある。
【０３３４】
そこで、第９制御装置は、学習促進制御が行われているときは学習促進制御が行われていないときに比較して外部ＥＧＲ率を小さくするようにＥＧＲ弁５５を制御する。
【０３３５】
より具体的に述べると、第９制御装置のＣＰＵ８１は、第１制御装置のＣＰＵ８１が実行するルーチンに加え、所定時間が経過する毎に図３３にフローチャートにより示した「外部ＥＧＲガス制御ルーチン」を実行するようになっている。
【０３３６】
従って、所定のタイミングになると、ＣＰＵ８１は図３３のステップ３３００から処理を開始し、以下に述べるステップ３３１０乃至ステップ３３３０の処理を順に行い、ステップ３３９５に進んで本ルーチンを一旦終了する。
【０３３７】
ステップ３３１０：ＣＰＵ８１は、図１２に示したルーチンにより決定される学習促進要求フラグＸＺＬの値に基づいて、現時点が学習促進制御中であるか否か（学習促進制御中であるのか、通常学習制御中であるのか）を判定する。
【０３３８】
そして、現時点が通常学習制御中（フラグＸＺＬ＝０）であれば、ＣＰＵ８１はステップ３３１０内に実線Ｑ１０ｎ、Ｑ２０ｎ及びＱ３０ｎにより示したテーブル値を有する「通常学習制御用外部ＥＧＲ率テーブルMapREGRtgtno（ＫＬ，ＮＥ）」を選択し、その選択したテーブルMapREGRtgtno（ＫＬ，ＮＥ）に現時点の負荷ＫＬと機関回転速度ＮＥとを適用することによって目標外部ＥＧＲ率REGRtgtを決定する。
【０３３９】
このテーブルMapREGRtgtno（ＫＬ，ＮＥ）によれば、実線Ｑ１０ｎにより囲まれた領域外における目標外部ＥＧＲ率REGRtgtは最小の第１ＥＧＲ率となる。また、実線Ｑ１０ｎと実線Ｑ２０ｎとの間の領域における目標外部ＥＧＲ率REGRtgtは、第１ＥＧＲ率よりも大きい第２ＥＧＲ率となる。更に、実線Ｑ２０ｎと実線Ｑ３０ｎとの間の領域における目標外部ＥＧＲ率REGRtgtは、第２ＥＧＲ率よりも大きい第３ＥＧＲ率となる。加えて、実線Ｑ３０ｎに囲まれた領域における目標外部ＥＧＲ率REGRtgtは、第３ＥＧＲ率よりも大きい第４（最大）ＥＧＲ率となる。
【０３４０】
これに対し、現時点が学習促進制御中（フラグＸＺＬ＝１）であれば、ＣＰＵ８１はステップ３３１０内に破線Ｑ１０ｓ及びＱ２０ｓにより示したテーブル値を有する「学習促進制御用外部ＥＧＲ率テーブルMapREGRtgtso（ＫＬ，ＮＥ）」を選択し、その選択したテーブルMapREGRtgtso（ＫＬ，ＮＥ）に現時点の負荷ＫＬと機関回転速度ＮＥとを適用することによって目標外部ＥＧＲ率REGRtgtを決定する。
【０３４１】
このテーブルMapREGRtgtso（ＫＬ，ＮＥ）によれば、破線Ｑ１０ｓにより囲まれた領域外における目標外部ＥＧＲ率REGRtgtは前記第１ＥＧＲ率となる。また、破線Ｑ１０ｓと破線Ｑ２０ｓとの間の領域における目標外部ＥＧＲ率REGRtgtは前記第２ＥＧＲ率となる。更に、破線Ｑ２０ｓに囲まれた領域における目標外部ＥＧＲ率REGRtgtは前記第３ＥＧＲ率となる。
【０３４２】
破線Ｑ１０ｓは実線Ｑ１０ｎの内側の領域に存在している。破線Ｑ２０ｓは実線Ｑ２０ｎの内側の領域に存在している。また、テーブルMapREGRtgtso（ＫＬ，ＮＥ）によれば、第４ＥＧＲ率（テーブルMapREGRtgtno（ＫＬ，ＮＥ）の実線Ｑ３０ｎに囲まれた領域において得られる目標外部ＥＧＲ率）が得られる領域は存在しない。
【０３４３】
このように、テーブルMapREGRtgtso（ＫＬ，ＮＥ）により得られる目標外部ＥＧＲ率REGRtgtは、テーブルMapREGRtgtno（ＫＬ，ＮＥ）により得られる目標外部ＥＧＲ率REGRtgt以下となる。例えば、図３３のステップ３３１０内に示したように、運転状態が点Ｐ１から点Ｐ２に変化するとき、テーブルMapREGRtgtno（ＫＬ，ＮＥ）による目標外部ＥＧＲ率REGRtgtは第１ＥＧＲ率から第３ＥＧＲ率へと変化するのに対し、テーブルMapREGRtgtso（ＫＬ，ＮＥ）による目標外部ＥＧＲ率REGRtgtは第１ＥＧＲ率から第２ＥＧＲ率へと変化する。
【０３４４】
ステップ３３２０：ＣＰＵ８１は、ステップ３３１０にて決定された目標外部ＥＧＲ率REGRtgt、吸入空気量Ｇａ、機関回転速度ＮＥ及び負荷ＫＬをテーブルMapDEGRに適用することにより、ＥＧＲ弁５５に付与すべきデューティ比ＤＥＧＲを決定する。テーブルMapDEGRは予め実験により得られたデータに基づき作成されている。
【０３４５】
ステップ３３３０：ＣＰＵ８１は、ステップ３３２０にて決定されたデューティ比ＤＥＧＲに基いてＥＧＲ弁５５の開度を制御するための指示信号をＥＧＲ弁５５に付与する。
以上により、外部ＥＧＲ率（即ち、外部ＥＧＲガス量）の制御がなされる。
【０３４６】
このように第９制御装置は、外部ＥＧＲ率を空燃比変動要因制御量として採用している。外部ＥＧＲ率が変化すれば外部ＥＧＲガス量も変化する。従って、第９制御装置は、外部ＥＧＲガス量を空燃比変動要因制御量として採用していると言うこともできる。
【０３４７】
更に、第９制御装置は、第１制御装置が備える各手段の他、空燃比変動要因制御量（外部ＥＧＲガス量、外部ＥＧＲ率）を変更する機関制御量変更手段（図３３のルーチン、ＥＧＲ弁５５）を備える。加えて、その機関制御量変更手段は、前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記空燃比変動要因制御量を小さくするように構成されている（図３３のステップ３３１０乃至ステップ３３３０を参照。）。
【０３４８】
更に、第９制御装置の機関制御量変更手段は、
前記空燃比変動要因制御量の実際の値を指示信号に応じて変更するアクチュエータ（ＥＧＲ弁５５）と、
前記空燃比変動要因制御量（外部ＥＧＲ率）の目標値（目標外部ＥＧＲ率REGRtgt）を前記機関の運転状態（負荷ＫＬ、機関回転速度ＮＥ）に応じて決定するとともに（図３３のステップ３３１０を参照。）、前記空燃比変動要因制御量の実際の値を同決定された目標値に一致させるための信号を前記指示信号として前記アクチュエータに与える指示信号付与手段（図３３のステップ３３２０及びステップ３３３０を参照。）と、
を含み、更に、
前記指示信号付与手段は、
前記学習促進制御が実行されているときには前記学習促進制御が実行されていないときに比較して前記目標値が小さくなるように同目標値を決定するように構成されている（図３３のステップ３３１０を参照。）。
【０３４９】
また、前記指示信号付与手段は、
前記外部ＥＧＲ率の目標値（目標外部ＥＧＲ率REGRtgt）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０３５０】
従って、学習促進制御中は通常学習制御中に比較して、外部ＥＧＲガス量及び外部ＥＧＲ率は過大とならず、その時間的変化も小さくなる。それ故、学習促進制御中における「外部ＥＧＲガスに起因する機関の空燃比の一時的な変動」を小さくできるので、第１フィードバック量（サブフィードバック量Vafsfb）の変化も穏やかになる。その結果、サブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０３５１】
なお、第９制御装置は、図３３のステップ３３１０にて参照する「テーブルMapREGRtgtso（ＫＬ，ＮＥ）及びテーブルMapREGRtgtno（ＫＬ，ＮＥ）」を、図３４に示した「テーブルMapREGRtgtso（ＫＬ）及びテーブルMapREGRtgtno（ＫＬ）」にそれぞれ代えてもよい。図３４のステップ２９１０に示したテーブルMapREGRtgtso（ＫＬ）は、テーブルMapREGRtgtno（ＫＬ）により得られる目標外部ＥＧＲ率REGRtgtが目標外部ＥＧＲ率REGRtgtよりも常に小さくなるように、目標外部ＥＧＲ率REGRtgを決定するテーブルである。
【０３５２】
第１０実施形態
次に、本発明の第１０実施形態に係る多気筒内燃機関の制御装置（以下、「第１０制御装置」とも称呼する。）について説明する。第１０制御装置は、（目標外部ＥＧＲ率REGRtgt）の決定方法のみにおいて、第９制御装置と相違している。従って、以下、この相違点を中心として説明する。
【０３５３】
第１０制御装置は、学習促進制御中であるか否かに関わらず一つの暫定目標外部ＥＧＲ率テーブルMapREGRtgt（ＫＬ，ＮＥ）を使用して暫定的な目標外部ＥＧＲ率REGRtgtを決定する。この暫定目標外部ＥＧＲ率テーブルMapREGRtgt（ＫＬ，ＮＥ）は第９制御装置が使用する「通常学習制御用の目標外部ＥＧＲ率テーブルMapREGRtgtno（ＫＬ，ＮＥ）」と同じテーブルである。そして、現時点が通常学習制御中であれば、第１０制御装置は、その暫定的な目標外部ＥＧＲ率REGRtgtを最終目標外部ＥＧＲ率REGRtgtFとしてそのまま採用し、その最終目標外部ＥＧＲ率REGRtgtFに基づいてデューティ比ＤＥＧＲを決定し、決定したデューティ比ＤＥＧＲに基づいてＥＧＲ弁５５に指示信号を送出する。
【０３５４】
これに対し、現時点が学習促進制御中であれば、第１０制御装置は、テーブルMapREGRtgt（ＫＬ，ＮＥ）を使用して得られた暫定的な目標外部ＥＧＲ率REGRtgtを、下記（３１）式に適用することにより最終目標外部ＥＧＲ率REGRtgtFを求める。（３１）式においてｔは０より大きく１より小さい所定の定数であり、REGRtgtFoldは更新前（即ち、前回計算した）の最終目標外部ＥＧＲ率REGRtgtFである。（３１）式によれば、最終目標外部ＥＧＲ率REGRtgtFは暫定的な目標外部ＥＧＲ率REGRtgtに遅れながら接近（追従）する。
REGRtgtF＝ｔ・REGRtgtFold
+ （１−ｔ）・REGRtgt  …（３１）
【０３５５】
これにより、学習促進制御中においては、暫定的な目標外部ＥＧＲ率REGRtgtが図３５の実線のように急激に変化した場合であっても、最終目標外部ＥＧＲ率REGRtgtFは図３５の破線のように緩やかに変化する。そして、第１０制御装置は、このように求められる最終目標外部ＥＧＲ率REGRtgtFによって定まるデューティ比ＤＥＧＲに基づく指示信号をＥＧＲ弁５５に付与する。この結果、外部ＥＧＲガス量が急変しない。従って、空燃比の一時的な変動が抑制されるので、サブフィードバック量Vafsfbの変化も穏やかになる。その結果、学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。
【０３５６】
次に、第１０制御装置の実際の作動について説明する。第１０制御装置のＣＰＵ８１は、第９制御装置のＣＰＵ８１が実行するルーチンのうち図３３を除くルーチンを実行するようになっている。更に、第１０制御装置のＣＰＵ８１は、所定時間が経過する毎に、図３３に代わる図３６にフローチャートにより示したルーチンを実行するようになっている。
【０３５７】
従って、所定のタイミングになると、ＣＰＵ８１は図３６のステップ３６００から処理を開始してステップ３６１０に進み、暫定目標外部ＥＧＲ率テーブルMapREGRtgt（ＫＬ，ＮＥ）に現時点の負荷ＫＬを適用することによって暫定的な目標外部ＥＧＲ率REGRtgtを決定する。この暫定目標外部ＥＧＲ率テーブルMapREGRtgt（ＫＬ，ＮＥ）は、通常学習制御用外部ＥＧＲ率テーブルMapREGRtgtno（ＫＬ，ＮＥ）と同一のテーブルである。
【０３５８】
次いで、ＣＰＵ８１はステップ３６２０に進み、学習促進要求フラグＸＺＬの値が「１」であるか否かを判定する。即ち、ＣＰＵ８１はステップ３６２０にて現時点が学習促進制御中であるか否かを判定する。
【０３５９】
このとき、学習促進制御中であって学習促進要求フラグＸＺＬの値が「１」に設定されていると、ＣＰＵ８１はステップ３６２０にて「Ｙｅｓ」と判定してステップ３６３０に進み、上記（３１）式にて使用される値ｔに０より大きく１より小さい値ｔｔを代入する。その後、ＣＰＵ８１はステップ３６５０に進む。一方、現時点が学習促進制御中ではなく、通常学習制御中であって学習促進要求フラグＸＺＬの値が「０」に設定されていると、ＣＰＵ８１はステップ３６４０にて「Ｎｏ」と判定してステップ３６４０に進み、値ｔに「０」を代入する。その後、ＣＰＵ８１はステップ３６５０に進む。
【０３６０】
ＣＰＵ８１はステップ３６５０において、上記（３１）式に従って、最終目標外部ＥＧＲ率REGRtgtFを更新する。次に、ＣＰＵ８１はステップ３６６０に進み、次回のステップ３６５０における計算のために「前回最終目標外部ＥＧＲ率REGRtgtFold」に今回更新された最終目標外部ＥＧＲ率REGRtgtFを設定する。次に、ＣＰＵ８１は、ステップ３６７０に進み、ステップ３６５０にて決定された最終目標外部ＥＧＲ率REGRtgtF、吸入空気量Ｇａ、機関回転速度ＮＥ及び負荷ＫＬをテーブルMapDEGRに適用することにより、ＥＧＲ弁５５に付与すべきデューティ比ＤＥＧＲを決定する。その後、ＣＰＵ８１はステップ３６８０に進み、デューティ比ＤＥＧＲに応じた指示信号をＥＧＲ弁５５に付与する。その後、ＣＰＵ８１はステップ３６９５に進み、本ルーチンを一旦終了する。
【０３６１】
以上、説明したように、第１０制御装置は、第９制御装置と同様、外部ＥＧＲ率（従って、外部ＥＧＲガス量）を前記空燃比変動要因制御量として変更するアクチュエータ（ＥＧＲ弁５５）を備える。更に、第１０制御装置は、前記排気弁閉弁時期の目標値（最終目標外部ＥＧＲ率REGRtgtF）を前記空燃比変動要因制御量の目標値として決定するように構成されている。
【０３６２】
そして、第１０制御装置は、最終目標外部ＥＧＲ率REGRtgtFの変化速度を学習促進制御中は学習促進制御中でないときに比較して小さくすることにより、空燃比変動要因制御量としての最終目標外部ＥＧＲ率REGRtgtF（従って、外部ＥＧＲガス量）の変化速度を小さくしている（図３６のルーチンを参照。）。この結果、空燃比変動要因制御量による機関の空燃比の変動が小さくなるので、学習促進制御中であってもサブＦＢ学習値Vafsfbgが適正値から乖離してしまう可能性を低減することができる。その結果、エミッションが悪化する期間を短くすることができる。
【０３６３】
第１変形例
次に、本発明の各実施形態に係る空燃比制御装置の第１変形例（以下、「第１変形装置」とも称呼する。）について説明する。第１変形装置は、各実施形態のＣＰＵ８１が実行する図１３に示したルーチンに代え、図３７に示したサブＦＢ学習値Vafsfbgの学習促進ルーチン（その２）を所定時間の経過毎に実行している。なお、図３７において図１３に示したステップと同一の処理を行うためのステップには、図１３のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０３６４】
ＣＰＵ８１は、学習促進要求フラグＸＺＬの値が「０」である場合、ステップ３７００からステップ３７１０に進む。そして、ＣＰＵ８１は、そのステップ３７１０にて、比例ゲインＫｐを通常値ＫｐSmallに設定するとともに、積分ゲインＫｉを通常値ＫｉSmallに設定する。この比例ゲインＫｐ及び積分ゲインＫｉは、先に説明した図１１のステップ１１１５にて使用されるゲインである（上記（１１）式を参照。）。従って、この場合、比例ゲインＫｐ及び積分ゲインＫｉが何れも通常値（学習促進制御非実行時の値）に設定されるので、サブフィードバック量Vafsfbは比較的緩慢に変化する。その結果、学習値Vafsfbgも緩慢に変化し、学習値Vafsfbgはサブフィードバック量Vafsfbの収束値へと穏やかに接近する。即ち、通常学習制御が実行される。
【０３６５】
これに対し、ＣＰＵ８１は、学習促進要求フラグＸＺＬの値が「１」である場合、ステップ１３１０からステップ３７２０に進む。そして、ＣＰＵ８１は、そのステップ３７２０にて、比例ゲインＫｐを通常値ＫｐSmallよりも大きい促進値ＫｐLargeに設定するとともに、積分ゲインＫｉを通常値ＫｉSmallよりも大きい促進値ＫｉLargeに設定する。この結果、サブフィードバック量Vafsfbは比較的迅速に変化する。その結果、学習値Vafsfbgも迅速に変化し、学習値Vafsfbgはサブフィードバック量Vafsfbの収束値へと速やかに接近する。即ち、学習促進制御が実行される。
【０３６６】
なお、第１変形装置において、ステップ３７１０にて図１３のステップ１３２０の処理（図１１のステップ１１４０にて使用される値ｐを第１の値ｐSmallに設定する処理）を加えるとともに、ステップ３７２０にて図１３のステップ１３３０の処理（ステップ１１４０にて使用される値ｐを第２の値ｐLargeに設定する処理）を加えてもよい。
【０３６７】
以上、説明したように、第１変形装置は、
前記学習値（サブＦＢ学習値Vafsfbg）を「前記第１フィードバック量（サブフィードバック量Vafsfb）又は前記第１フィードバック量に含まれる定常成分」に除々に接近させるように前記学習値の更新を行うように構成された学習手段（図１１のルーチンの特にステップ１１３５〜ステップ１１５５を参照。）と、
前記第１フィードバック量の更新速度（比例ゲインＫｐ及び積分ゲインＫｉが大きいほど大きくなる更新速度）を、前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えることにより、学習不足状態が発生していると推定されるときには同学習不足状態が発生していないと推定されるときに比較して学習値Vafsfbgの更新速度を増大させるように構成された学習促進手段（図３７のルーチンを参照。）と、
を備える。
【０３６８】
第２変形例
次に、本発明の各実施形態に係る空燃比制御装置の第２変形例（以下、「第２変形装置、又は、判定装置」とも称呼する。）について説明する。第２変形装置は、「空燃比気筒間インバランス判定」を実行する。
ところで、前述した上流側空燃比センサ６７は、図３８に示したように、固体電解質層６７ａと、排ガス側電極層６７ｂと、大気側電極層６７ｃと、拡散抵抗層６７ｄと、隔壁部６７ｅと、ヒータ６７ｆと、を含んでいる。
【０３６９】
固体電解質層６７ａは酸素イオン導電性酸化物焼結体である。本例において、固体電解質層６７ａは、ＺｒＯ２（ジルコニア）にＣａＯを安定剤として固溶させた「安定化ジルコニア素子」である。固体電解質層６７ａは、その温度が活性温度以上であるとき、周知の「酸素電池特性」及び「酸素ポンプ特性」を発揮する。
【０３７０】
排ガス側電極層６７ｂは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。排ガス側電極層６７ｂは、固体電解質層６７ａの一つの面上に形成されている。排ガス側電極層６７ｂは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
【０３７１】
大気側電極層６７ｃは、白金（Ｐｔ）等の触媒活性の高い貴金属からなる。大気側電極層６７ｃは、固体電解質層６７ａの他の面上であって、固体電解質層６７ａを挟んで排ガス側電極層６７ｂに対向するように形成されている。大気側電極層６７ｃは、化学メッキ等により浸透性を十分に有するように（即ち、多孔質状に）形成されている。
【０３７２】
拡散抵抗層（拡散律速層）６７ｄは、多孔質セラミック（耐熱性無機物質）からなる。拡散抵抗層６７ｄは、排ガス側電極層６７ｂの外側表面を覆うように、例えば、プラズマ溶射法等により形成されている。分子径の小さい水素Ｈ２の拡散抵抗層６７ｄにおける拡散速度は、相対的に分子径の大きい「炭化水素ＨＣ及び一酸化炭素ＣＯ等」の拡散抵抗層６７ｄにおける拡散速度よりも大きい。従って、拡散抵抗層６７ｄの存在により、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等よりも「排ガス側電極層６７ｂ」に速やかに到達する。上流側空燃比センサ６７は、拡散抵抗層６７ｄの外表面が「排ガスに晒される（機関１０から排出された排ガスが接する）」ように配置される。
【０３７３】
隔壁部６７ｅは、緻密であってガスを透過させないアルミナセラミックスからなる。隔壁部６７ｅは大気側電極層６７ｃを収容する空間である「大気室６７ｇ」を形成するように構成されている。大気室６７ｇには大気が導入されている。
【０３７４】
ヒータ６７ｆは隔壁部６７ｅに埋設されている。ヒータ６７ｆは通電されたときに発熱し、固体電解質層６７ａを加熱するようになっている。
【０３７５】
上流側空燃比センサ６７は、図３９に示したように、電源６７ｈを使用する。電源６７ｈは、大気側電極層６７ｃ側が高電位となり、排ガス側電極層６７ｂが低電位となるように、電圧Ｖを印加する。
【０３７６】
図３９に示したように、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、上述した酸素ポンプ特性が利用されることにより空燃比が検出される。即ち、排ガスの空燃比が理論空燃比よりもリーン側の空燃比であるとき、排ガス中に多量に含まれる酸素分子が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。その酸素分子は電子を受け取って酸素イオンになる。酸素イオンは、固体電解質層６７ａを通過し、大気側電極層６７ｃにて電子を放出して酸素分子になる。この結果、電源６７ｈの正極から、大気側電極層６７ｃ、固体電解質層６７ａ及び排ガス側電極層６７ｂを介して電源６７ｈの負極へと電流Ｉが流れる。
【０３７７】
この電流Ｉの大きさは、電圧Ｖの大きさを所定値Ｖｐ以上に設定したとき、拡散抵抗層６７ｄの外側表面に到達した排ガスに含まれる酸素分子のうち「拡散抵抗層６７ｄを通って排ガス側電極層６７ｂへと拡散によって到達する酸素分子」の量に応じて変化する。即ち、電流Ｉの大きさは、排ガス側電極層６７ｂにおける酸素濃度（酸素分圧）に応じて変化する。排ガス側電極層６７ｂにおける酸素濃度は、拡散抵抗層６７ｄの外側表面に到達した排ガスの酸素濃度に応じて変化する。この電流Ｉは、図４０に示したように、電圧Ｖを所定値Ｖｐ以上に設定しても変化しないから、限界電流Ｉｐと呼ばれる。空燃比センサ６７は、この限界電流Ｉｐ値に基いて空燃比に応じた値を出力する。
【０３７８】
これに対し、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、図４１に示したように、上述した酸素電池特性が利用されることにより空燃比が検出される。より具体的に述べると、排ガスの空燃比が理論空燃比よりもリッチ側の空燃比であるとき、排ガス中に多量に含まれる未燃物（ＨＣ，ＣＯ及びＨ２等）が拡散抵抗層６７ｄを通って排ガス側電極層６７ｂに到達する。この場合、大気側電極層６７ｃにおける酸素濃度と排ガス側電極層６７ｂにおける酸素濃度との差（酸素分圧差）が大きくなるので、固体電解質層６７ａは酸素電池として機能する。印加電圧Ｖは、この酸素電池の起電力よりも小さくなるように設定される。
【０３７９】
従って、大気室６７ｇに存在する酸素分子は大気側電極層６７ｃにて電子を受け取って酸素イオンとなる。その酸素イオンは、固体電解質層６７ａを通過し、排ガス側電極層６７ｂへと移動する。そして、排ガス側電極層６７ｂにて未燃物を酸化し、電子を放出する。この結果、電源６７ｈの負極から、排ガス側電極層６７ｂ、固体電解質層６７ａ及び大気側電極層６７ｃを介して電源６７ｈの正極へと電流Ｉが流れる。
【０３８０】
この電流Ｉの大きさは、大気側電極層６７ｃから固体電解質層６７ａを通って排ガス側電極層６７ｂに到達する酸素イオンの量により定まる。前述したように、この酸素イオンは排ガス側電極層６７ｂにて未燃物を酸化するために使用される。従って、拡散により拡散抵抗層６７ｄを通過して排ガス側電極層６７ｂに到達する未燃物の量が多いほど、固体電解質層６７ａを通過する酸素イオンの量は多くなる。換言すると、空燃比が小さいほど（理論空燃比よりもリッチ側の空燃比であって未燃物の量が多いほど）、電流Ｉの大きさは大きくなる。但し、拡散抵抗層６７ｄの存在により、排ガス側電極層６７ｂに到達する未燃物の量は制限されるので、電流Ｉは空燃比に応じた一定値Ｉｐとなる。上流側空燃比センサ６７は、この限界電流Ｉｐ値に基いて空燃比に応じた値を出力する。この結果、上流側空燃比センサ６７は、図３に示した出力値Vabyfsを出力する。
【０３８１】
上述したように、下流側空燃比センサ６８は、周知の濃淡電池型の酸素濃度センサ（Ｏ２センサ）である。下流側空燃比センサ６８は、例えば、図３８に示した上流側空燃比センサ６７と同様な構成を備える（但し、電源６７ｈを除く。）。或いは、下流側空燃比センサ６８は、試験管状の固体電解質層と、固体電解質層の外側に形成された排ガス側電極層と、大気室（固体電解質層の内側）に露呈し且つ固体電解室層を挟んで排ガス側電極層と対向するように固体電解質層に形成された大気側電極層と、排ガス側電極層を覆い且つ排ガスが接触する（排ガス中に晒されるように配置される）拡散抵抗層と、を備えるものであってもよい。
【０３８２】
（空燃比気筒間インバランス判定の原理）
次に、上記判定装置による「空燃比気筒間インバランス判定」の原理について説明する。空燃比気筒間インバランス判定とは、気筒間における空燃比の不均一性が警告必要値以上となったか否か、換言すると、気筒別空燃比の間に（エミッション上許容できない程度の）不均衡（即ち、空燃比気筒間インバランス）が生じているか否か、を判定することである。
【０３８３】
機関１０の燃料は炭素と水素との化合物である。従って、燃料が燃焼して水Ｈ２Ｏと二酸化炭素ＣＯ２へと変化する過程において、「炭化水素ＨＣ、一酸化炭素ＣＯ及び水素Ｈ２等」の未燃物が中間生成物として生成される。
【０３８４】
燃焼に供される混合気の空燃比が理論空燃比よりも小さくなるほど（即ち、空燃比が理論空燃比よりもリッチ側の空燃比になるほど）、燃料が完全燃焼するために必要な酸素の量と実際の酸素の量との差が増大する。換言すると、リッチ側の空燃比になるほど燃焼途中における酸素の不足量が増大し、酸素濃度が低下するから、中間生成物（未燃物）が酸素と出合って結合する（酸化される）確率が急激に小さくなる。この結果、図４２に示したように、気筒から排出される未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に（二次関数的に）増大する。なお、図４２の点Ｐ１、点Ｐ２及び点Ｐ３は、ある気筒に供給される燃料の量が、その気筒の空燃比が理論空燃比に一致する場合の燃料の量に対して、それぞれ１０％（＝ＡＦ１）、３０％（＝ＡＦ２）及び４０％（＝ＡＦ３）だけ過剰となった点を示す。
【０３８５】
更に、水素Ｈ２は、炭化水素ＨＣ及び一酸化炭素ＣＯ等に比べて小さい分子である。従って、水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）に比較して、上流側空燃比センサ６７の拡散抵抗層６７ｄを迅速に拡散する。このため、ＨＣ，ＣＯ及びＨ２からなる未燃物が多量に発生すると、拡散抵抗層６７ｄにおいて水素Ｈ２の選択的拡散（優先的な拡散）が顕著に発生する。即ち、水素Ｈ２は、空燃比検出素子の表面（固体電解質層６７ａの表面に形成された排ガス側電極層６７ｂ）に「他の未燃物（ＨＣ，ＣＯ）」よりも多量に到達するようになる。この結果、水素Ｈ２の濃度と他の未燃物（ＨＣ，ＣＯ）の濃度とのバランスが崩れる。換言すると、「上流側空燃比センサ６７の空燃比検出素子（排ガス側電極層６７ｂ）に到達した排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合は、「機関１０から排出された排ガス」に含まれる全未燃成分に対する水素Ｈ２の割合よりも大きくなる。
【０３８６】
ところで、上述した上流側目標空燃比abyfrは理論空燃比stoichに設定される。更に、下流側目標値Voxsrefは理論空燃比に相当する値（０．５Ｖ）に設定される。
【０３８７】
いま、空燃比気筒間インバランスが発生していない状態において、各気筒の空燃比が一律にリッチ側に偏移した場合を想定する。このような状態は、例えば、燃料噴射量を算出する際の基本量となる「機関の吸入空気量の測定値又は推定値」が「真の吸入空気量」よりも大きくなったとき等において発生する。
【０３８８】
この場合、例えば、各気筒の空燃比が図４２に示したＡＦ２であった仮定する。ある気筒の空燃比がＡＦ２であると、ある気筒の空燃比がＡＦ２よりも理論空燃比に近い空燃比ＡＦ１である場合に比べ、より多くの未燃物（従って、水素Ｈ２）が排ガスに含まれる（点Ｐ１及び点Ｐ２を参照。）。従って、上流側空燃比センサ６７の拡散抵抗層６７ｄにおいて「水素Ｈ２の選択的拡散」が発生する。
【０３８９】
しかしながら、この場合、「各気筒が一回の燃焼行程を終了する間（クランク角７２０度に相当する期間）に機関１０に供給される混合気」の空燃比の真の平均値もＡＦ２である。更に、上述したように、図３に示した空燃比変換テーブルMapabyfsは、「水素Ｈ２の選択的拡散」を考慮して作成されている。従って、上流側空燃比センサ６７の実際の出力値Vabyfsにより表される上流側空燃比abyfs（実際の出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより得られる上流側空燃比abyfs）は、上記「空燃比の真の平均値ＡＦ２」に一致する。
【０３９０】
それ故、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比は「上流側目標空燃比abyfrである理論空燃比」に一致するように修正され、空燃比気筒間インバランスは発生していないから、各気筒の空燃比も理論空燃比に略一致する。従って、サブフィードバック量Vafsfb及びサブＦＢ学習値Vafsfbgは、空燃比の補正を大きく行う値となることはない。換言すると、空燃比気筒間インバランスが発生していない場合、サブフィードバック量Vafsfb及びサブＦＢ学習値Vafsfbgは、空燃比の補正を大きく行う値とならない。
【０３９１】
次に、「空燃比気筒間インバランスが発生した場合」の各値の挙動について、上述した「空燃比気筒間インバランスが発生していない場合」の各値の挙動と比較しながら説明する。
【０３９２】
例えば、機関１０の各気筒に吸入される空気量（重量）がＡ０であり、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０が理論空燃比（例えば、１４．５）であると仮定する。
【０３９３】
そして、吸入空気量の推定誤差等に起因して、各気筒に対して供給（噴射）される燃料量が均等に１０％だけ過剰となったと仮定する。即ち、各気筒に１．１・Ｆ０の燃料が供給されたと仮定する。このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）である。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。このとき、上流側空燃比センサの出力値は、空燃比Ａ０／（１．１・Ｆ０）に応じた出力値となる。
【０３９４】
従って、メインフィードバック制御により、各気筒に供給される燃料の量が１０％ずつ減量され（各気筒に１・Ｆ０の燃料が供給されるようになり）、機関１０全体に供給される混合気の空燃比は理論空燃比Ａ０／Ｆ０に一致させられる。
【０３９５】
これに対し、特定気筒の空燃比のみが大きくリッチ側にずれた場合を想定する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁３９の噴射特性が「指示された燃料噴射量よりも相当に多い量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁３９の異常は「燃料噴射弁のリッチずれ異常」とも称呼される。
【０３９６】
いま、ある一つの特定気筒に対して供給される燃料の量が４０％だけ過剰な量（即ち、１．４・Ｆ０）であり、残りの３気筒に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量（即ち、１・Ｆ０）であると仮定する。この場合、特定気筒の空燃比は図４２に示した「ＡＦ３」であり、残りの気筒の空燃比は理論空燃比である。
【０３９７】
このとき、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。一方、機関１０に供給される燃料の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４．４・Ｆ０（＝１．４・Ｆ０＋Ｆ０＋Ｆ０＋Ｆ０）である。
【０３９８】
従って、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４．４・Ｆ０）＝Ａ０／（１．１・Ｆ０）となる。即ち、この場合の機関１０全体に供給される混合気の空燃比の真の平均値は、上述した「各気筒に対して供給される燃料の量が均等に１０％だけ過剰である場合」と同じ値となる。
【０３９９】
しかしながら、前述したように、排ガス中の未燃物（ＨＣ、ＣＯ及びＨ２）の量は、気筒に供給される混合気の空燃比がリッチ側の空燃比になるほど急激に増大する。このため、「特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ１は、図４２によれば、ＳＨ１＝Ｈ３＋Ｈ０＋Ｈ０＋Ｈ０＝Ｈ３＋３・Ｈ０となる。これに対し、「各気筒に対して供給される燃料の量が均等に１０％だけ過剰となった場合」に排ガスに含まれる水素Ｈ２の総量ＳＨ２は、図４２によれば、ＳＨ２＝Ｈ１＋Ｈ１＋Ｈ１＋Ｈ１＝４・Ｈ１となる。このとき、量Ｈ１は量Ｈ０よりも僅かに大きいが、量Ｈ１及び量Ｈ０は共に極めて微量である。即ち、量Ｈ１と量Ｈ０とは、量Ｈ３に比べた場合、互いに略等しいと言える。従って、水素総量ＳＨ１は水素総量ＳＨ２よりも極めて大きくなる（ＳＨ１＞＞ＳＨ２）。
【０４００】
このように、機関１０全体に供給される混合気の空燃比の真の平均値が同一であっても、空燃比気筒間インバランスが発生した場合に排ガスに含まれる水素の総量ＳＨ１は、空燃比気筒間インバランスが発生していない場合に排ガスに含まれる水素の総量ＳＨ２よりも、顕著に大きくなる。
【０４０１】
従って、特定気筒に対して供給される燃料の量のみが４０％だけ過剰な量となった場合、上述した拡散抵抗層６７ｄにおける「水素Ｈ２の選択的拡散」に起因して、上流側空燃比センサの出力値Vabyfsにより表される空燃比は「機関１０全体に供給される混合気の空燃比の真の平均値（Ａ０／（１．１・Ｆ０））」よりもリッチ側の空燃比（小さい空燃比）となる。つまり、排ガスの空燃比の平均値が同じであっても、空燃比気筒間インバランスが発生している場合には、空燃比気筒間インバランスが発生していない場合よりも、上流側空燃比センサ６７の排ガス側電極層６７ｂにおける水素Ｈ２の濃度が高くなるから、上流側空燃比センサ６７の出力値Vabyfsは「空燃比の真の平均値」よりもリッチ側の空燃比を示す値となるのである。
【０４０２】
その結果、メインフィードバック制御により、機関１０全体に供給される混合気の空燃比の真の平均は、理論空燃比よりもリーン側に制御されてしまう。
【０４０３】
一方、下流側空燃比センサ６８には、上流側触媒５３を通過した排ガスが到達する。排ガスに含まれる水素Ｈ２は他の未燃物（ＨＣ，ＣＯ）とともに上流側触媒５３において酸化（浄化）される。従って、下流側空燃比センサ６８の出力値Voxsは、機関１０全体に供給される混合気の真の空燃比に応じた値となる。従って、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量等）は、上記メインフィードバック制御による空燃比のリーン側への過補正を補う値となる。そして、このようなサブフィードバック量等により、機関１０の空燃比の真の平均値は理論空燃比に一致させられる。
【０４０４】
このように、サブフィードバック制御にて算出される空燃比の制御量（サブフィードバック量）は、燃料噴射弁３９のリッチずれ異常（空燃比気筒間インバランス）に起因する「空燃比のリーン側への過補正」を補償するような値となる。また、このリーン側への過補正の程度は、リッチずれ異常を起こした燃料噴射弁３９が「指示された噴射量」に比較してより多くの量の燃料を噴射するようになるほど（即ち、特定気筒の空燃比がリッチ側の空燃比になるほど）増大する。
【０４０５】
従って、サブフィードバック量が正の値であってその大きさが大きいほど「機関の空燃比がよりリッチ側へと補正されるシステム」においては、「サブフィードバック量に応じて変化する値（実際には、例えば、サブフィードバック量の定常成分を取り込んだサブフィードバック量の学習値）」は、空燃比気筒間インバランスの程度を示す値となる。
【０４０６】
かかる知見に基づき、本判定装置は、サブフィードバック量に応じて変化する値（本例において、サブフィードバック量の学習値である「サブＦＢ学習値Vafsfbg」）を、インバランス判定用パラメータとして取得する。つまり、インバランス判定用パラメータは「上流側触媒５３を通過する前の排ガスに含まれる水素の量と、上流側触媒５３を通過した後の排ガスに含まれる水素の量と、の差が大きいほど、大きくなる値」となる。そして、判定装置は、そのインバランス判定用パラメータが「異常判定閾値」以上となった場合（即ち、サブＦＢ学習値の増減に応じて増減する値が「機関の空燃比を異常判定閾値以上リッチ側に補正することを示す値」となった場合）、空燃比気筒間インバランスが発生したと判定する。
【０４０７】
図４３の実線は、空燃比気筒間インバランスが発生して、ある一つの気筒の空燃比が理論空燃比からリッチ側及びリーン側に乖離した場合におけるサブＦＢ学習値を示している。図４３に示したグラフの横軸は「インバランス割合」である。インバランス割合とは、「理論空燃比Ｘに対する、理論空燃比Ｘとそのリッチずれした気筒の空燃比afとの差Ｙ（＝Ｘ−af）、の比（Ｙ／Ｘ）」のことである。前述したように、インバランス割合が大きくなるほど、水素Ｈ２の選択的拡散の影響が急激に大きくなる。従って、図４３の実線により示されるように、サブＦＢ学習値（従って、インバランス判定用パラメータ）は、インバランス割合が大きくなるのに従って二次関数的に増大する。
【０４０８】
なお、図４３の実線に示したように、インバランス割合が負の値である場合においても、そのインバランス割合の絶対値が増大するほど、サブＦＢ学習値は増大する。即ち、例えば、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、インバランス判定用パラメータとしてのサブＦＢ学習値（サブＦＢ学習値に応じた値）は増大する。このような状況は、例えば、特定気筒に対して備えられている燃料噴射弁３９の噴射特性が「指示された燃料噴射量よりも相当に少ない量の燃料を噴射する特性」になった場合に生じる。このような燃料噴射弁３９の異常は「燃料噴射弁のリーンずれ異常」とも称呼される。
【０４０９】
以下、一つの特定気筒の空燃比のみが大きくリーン側にずれるような空燃比気筒間インバランスが発生した場合にも、サブＦＢ学習値が増大する理由について簡単に説明する。以下の説明においても、機関１０の各気筒に吸入される空気量（重量）はＡ０であると仮定する。更に、各気筒に供給される燃料量（重量）がＦ０であるとき、空燃比Ａ０／Ｆ０は理論空燃比に一致すると仮定する。
【０４１０】
いま、ある一つの特定気筒（便宜上、第１気筒とする。）に対して供給される燃料の量が４０％だけ過小な量（即ち、０．６・Ｆ０）であり、残りの３気筒（第２、第３及び第４気筒）に対して供給される燃料の量はそれらの気筒の空燃比が理論空燃比と一致するような燃料の量、即ちＦ０）となった場合を想定する。なお、この場合、失火は発生しないものと仮定している。
【０４１１】
この場合、メインフィードバック制御により、第１気筒乃至第４気筒に供給される燃料の量は同じ所定量（１０％）だけ増大されたと仮定する。このとき、第１気筒に供給される燃料の量は０．７・Ｆ０となり、第２乃至第４気筒のそれぞれに供給される燃料の量は１．１・Ｆ０となる。
【０４１２】
係る状態においては、４気筒エンジンである機関１０に供給される空気量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される空気量）は４・Ａ０である。また、メインフィードバック制御の結果、機関１０に供給される燃料量の総量（各気筒がそれぞれ一回の燃焼行程を終了する間に機関１０全体に供給される燃料の量）は４・Ｆ０（＝０．７・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０＋１．１・Ｆ０）となる。よって、機関１０全体に供給される混合気の空燃比の真の平均値は、４・Ａ０／（４・Ｆ０）＝Ａ０／Ｆ０、即ち、理論空燃比となっている。
【０４１３】
しかしながら、この状態における「排ガスに含まれる水素Ｈ２の総量ＳＨ３」は、ＳＨ３＝Ｈ４＋Ｈ１＋Ｈ１＋Ｈ１＝Ｈ４＋３・Ｈ１となる。但し、Ｈ４は、空燃比がＡ０／（０．７・Ｆ０）であるときに発生する水素量であり、Ｈ１及びＨ０よりも小さく且つＨ０と略等しい。従って、総量ＳＨ３は、最大でも（Ｈ０＋３・Ｈ１）となる。
【０４１４】
これに対し、空燃比気筒間インバランスが発生しておらず且つ機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比である場合、「排ガスに含まれる水素Ｈ２の総量ＳＨ４」は、ＳＨ４＝Ｈ０＋Ｈ０＋Ｈ０＋Ｈ０＝４・Ｈ０となる。前述したように、Ｈ１はＨ０よりも僅かに大きい。従って、総量ＳＨ３（＝Ｈ０＋３・Ｈ１）は総量ＳＨ４（＝４・Ｈ０）よりも大きくなる。
【０４１５】
従って、「燃料噴射弁のリーンずれ異常」に起因する空燃比気筒間インバランスが発生している場合、メインフィードバック制御によって、機関１０全体に供給される混合気の空燃比の真の平均値が理論空燃比に移行されたときであっても、水素の選択的拡散の影響が上流側空燃比センサ６７の出力値Vabyfsに表れる。即ち、出力値Vabyfsを空燃比変換テーブルMapabyfsに適用することにより得られる上流側空燃比abyfsは、上流側目標空燃比abyfrである理論空燃比よりも「リッチ側（小さい）の空燃比」となる。その結果、メインフィードバック制御が更に実行され、機関１０全体に供給される混合気の空燃比の真の平均値は、理論空燃比よりもリーン側に補正されてしまう。
【０４１６】
従って、サブフィードバック制御にて算出される空燃比の制御量は、燃料噴射弁３９のリーンずれ異常（空燃比気筒間インバランス）に起因する「メインフィードバック制御による空燃比のリーン側への過補正」を補償するように増大する。よって、「サブフィードバック制御にて算出される空燃比の制御量」に基いて取得される「インバランス判定用パラメータ（例えば、サブＦＢ学習値）」は、インバランス割合が負の値であってインバランス割合の絶対値が増大するほど増大する。
【０４１７】
これにより、本判定装置は、特定気筒の空燃比が「リッチ側にずれた場合」のみならず「リーン側にずれた場合」にも、インバランス判定用パラメータ（例えば、サブＦＢ学習値の増減に応じて増減する値）が「異常判定閾値Ａth」以上となった場合に、空燃比気筒間インバランスが発生したと判定する。
【０４１８】
なお、図４３の破線は、各気筒の空燃比が理論空燃比からリッチ側に一律に乖離し且つメインフィードバック制御を中止した場合におけるサブＦＢ学習値を示している。この場合、横軸は、「空燃比気筒間インバランスが生じた場合の機関の空燃比のズレ」と同一のズレとなるように調整してある。即ち、例えば、第１気筒のみが２０％だけリッチ側にずれるような「空燃比気筒間インバランス」が生じた場合、インバランス割合は２０％である。一方、各気筒の空燃比が一律に５％（２０％／４気筒）だけずれた場合、実際にはインバランス割合は０％であるが、図４３においてはインバランス割合は２０％に相当するものとして扱われる。図４３の実線と破線との比較から、「サブＦＢ学習値が異常判定閾値Ａth以上となったとき、空燃比気筒間インバランスが発生したと判定することができる。」ことが理解される。なお、実際にはメインフィードバック制御が実行されるので、空燃比気筒間インバランスが発生していない場合、サブＦＢ学習値は実際には図４３の破線に示したほど増大しない。
【０４１９】
次に、本判定装置の実際の作動について説明する。
＜空燃比気筒間インバランス判定＞
次に、「空燃比気筒間インバランス判定」を実行するための処理について説明する。ＣＰＵ８１は、図４４に示した「空燃比気筒間インバランス判定ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ８１はステップ４４００から処理を開始し、ステップ４４０５に進んで「異常判定（空燃比気筒間インバランス判定）の前提条件（判定実施条件）」が成立しているか否かを判定する。換言すると、この前提条件が成立しない場合、空燃比気筒間インバランスの「判定禁止条件」が成立する。空燃比気筒間インバランスの「判定禁止条件」が成立すると、「サブＦＢ学習値Vafsfbgに基いて算出されるインバランス判定用パラメータ」を用いた「以下に述べる空燃比気筒間インバランス」の判定が実行されない。
【０４２０】
この異常判定（空燃比気筒間インバランス判定）の前提条件は、例えば、次の条件１とすることができる。
（条件１）上流側触媒５３の水素を酸化する能力が第１所定能力以下ではない。即ち、上流側触媒５３の水素を酸化する能力が第１所定能力より大きい場合。換言すると、この条件は、「上流側触媒５３の状態が、上流側触媒５３に流入する水素を所定量以上浄化し得る状態（即ち、水素浄化可能状態）にあること」である。
【０４２１】
この条件１を設ける理由は次の通りである。
上流側触媒５３の水素を酸化する能力が第１所定能力以下であると、水素が上流側触媒５３において十分に浄化されず、水素が上流側触媒５３の下流に流出する可能性がある。この結果、下流側空燃比センサ６８の出力値Voxsが水素の選択的拡散の影響を受ける可能性があり、或いは、上流側触媒５３の下流のガスの空燃比が「機関１０全体に供給される混合気の空燃比の真の平均値」に一致しなくなる。従って、下流側空燃比センサ６８の出力値Voxsは、「上流側空燃比センサ６７の出力値Vabyfsを用いた上記空燃比フィードバック制御により過剰に補正された空燃比の真の平均値」に応じた値を示さない可能性が高い。故に、このような状態において空燃比気筒間インバランス判定を実行すると、判定を誤る可能性が高い。
【０４２２】
上記条件１は、例えば、上流側触媒５３の酸素吸蔵量が第１閾値酸素吸蔵量以下ではない場合に成立する条件とすることができる。この場合、上流側触媒５３の水素を酸化する能力が第１所定能力よりも大きいと判定することができる。
【０４２３】
いま、上述した異常判定の前提条件が成立していると仮定する。この場合、ＣＰＵ８１はステップ４４０５にて「Ｙｅｓ」と判定し、ステップ４４１０に進んで上述した「サブフィードバック制御条件が成立しているか否か」を判定する。そして、「サブフィードバック制御条件が成立している」とき、ＣＰＵ８１は以下に述べるステップ４４１５以降の処理を実行する。ステップ４４１５以降の処理は、異常判定（空燃比気筒間インバランス判定）のための処理の一部である。従って、サブフィードバック制御条件は、「異常判定の前提条件」の一つと言うこともできる。更に、サブフィードバック制御条件は、メインフィードバック制御条件が成立しているときに成立する。従って、メインフィードバック制御条件も、「異常判定の前提条件」の一つと言うことができる。
【０４２４】
いま、サブフィードバック制御条件が成立していると仮定して説明を続ける。この場合、ＣＰＵ８１は以下に述べるステップ４４１５乃至ステップ４４６０のうちの所定のステップの処理を実行する。
【０４２５】
ステップ４４１５：ＣＰＵ８１は現時点が「サブＦＢ学習値Vafsfbgが更新された直後の時点（サブＦＢ学習値更新直後時点）」であるか否かを判定する。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点であれば、ステップ４４２０に進む。ＣＰＵ８１は、現時点がサブＦＢ学習値更新直後の時点でなければ、ステップ４４９５に直接進んで本ルーチンを一旦終了する。
【０４２６】
ステップ４４２０：ＣＰＵ８１は学習値積算カウンタＣexeの値を「１」だけ増大する。
ステップ４４２５：ＣＰＵ８１は図１１のルーチンにより算出されているサブＦＢ学習値Vafsfbgを読み込む。
【０４２７】
ステップ４４３０：ＣＰＵ８１は、サブＦＢ学習値Vafsfbgの積算値ＳVafsfbgを更新する。即ち、ＣＰＵ８１は「その時点の積算値ＳVafsfbg」に「ステップ４４２５にて読み込んだサブＦＢ学習値Vafsfbg」を加えることにより、新たな積算値ＳVafsfbgを得る。
【０４２８】
この積算値ＳVafsfbgは、イグニッション・キー・スイッチがオフ位置からオン位置に切り換えられた際に実行される図示しないイニシャルルーチンにより「０」に設定されるようになっている。更に、積算値ＳVafsfbgは、後述するステップ４４６０の処理によっても「０」に設定される。このステップ４４６０は、異常判定（空燃比気筒間インバランス判定、ステップ４４４５〜ステップ４４５５）が実行されたときに実行される。従って、積算値ＳVafsfbgは、「機関の始動後又は直前の異常判定実行後」において、「異常判定の前提条件が成立している場合」であって、且つ、「サブフィードバック制御条件が成立している場合」、におけるサブＦＢ学習値Vafsfbgの積算値となる。
【０４２９】
ステップ４４３５：ＣＰＵ８１は学習値積算カウンタＣexeの値がカウンタ閾値Ｃth以上であるか否かを判定する。ＣＰＵ８１は、学習値積算カウンタＣexeの値がカウンタ閾値Ｃthよりも小さいと、ステップ４４３５にて「Ｎｏ」と判定してステップ４４９５に直接進み、本ルーチンを一旦終了する。これに対し、ＣＰＵ８１は、学習値積算カウンタＣexeの値がカウンタ閾値Ｃth以上であると、ステップ４４３５にて「Ｙｅｓ」と判定してステップ４４４０に進む。
【０４３０】
ステップ４４４０：ＣＰＵ８１は、「サブＦＢ学習値Vafsfbgの積算値ＳVafsfbg」を「学習値積算カウンタＣexe」で除することにより、サブＦＢ学習値平均値Ａvesfbgを求める。このサブＦＢ学習値平均値Ａvesfbgは、前述したように、上流側触媒５３を通過する前の排ガスに含まれる水素の量と上流側触媒５３を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータである。
【０４３１】
ステップ４４４５：ＣＰＵ８１は、サブＦＢ学習値平均値Ａvesfbgが異常判定閾値Ａth以上であるか否かを判定する。前述したように、気筒間における空燃比の不均一性が過大となって「空燃比気筒間インバランス」が生じている場合、サブフィードバック量Vafsfbは機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値になろうとするから、それに伴って、サブＦＢ学習値Vafsfbgの平均値であるサブＦＢ学習値平均値Ａvesfbgも「機関１０に供給される混合気の空燃比を大きくリッチ側に補正する値（閾値Ａth以上の値）」となる。
【０４３２】
従って、ＣＰＵ８１は、サブＦＢ学習値平均値Ａvesfbgが異常判定閾値Ａth以上である場合、ステップ４４４５にて「Ｙｅｓ」と判定してステップ４４５０に進み、異常発生フラグＸＩＪＯの値を「１」に設定する。つまり、異常発生フラグＸＩＪＯの値が「１」であることは、空燃比気筒間インバランスが生じていることを示す。なお、この異常発生フラグＸＩＪＯの値はバックアップＲＡＭ８４に格納される。また、異常発生フラグＸＩＪＯの値が「１」に設定されたとき、ＣＰＵ８１は図示しない警告ランプを点灯してもよい。
【０４３３】
これに対し、サブＦＢ学習値平均値Ａvesfbgが異常判定閾値Ａthよりも小さい場合、ＣＰＵ８１はステップ４４４５にて「Ｎｏ」と判定してステップ４４５５に進む。そして、ＣＰＵ８１は、ステップ４４５５にて、「空燃比気筒間インバランス」が生じていないことを示すように、異常発生フラグＸＩＪＯの値を「０」に設定する。
【０４３４】
ステップ４４６０：ＣＰＵ８１は、ステップ４４５０及びステップ４４５５の何れかからステップ４４６０に進み、学習値積算カウンタＣexeの値を「０」に設定する（リセットする）とともに、サブＦＢ学習値の積算値ＳVafsfbgを「０」に設定する（リセットする）。
【０４３５】
なお、ＣＰＵ８１は、ステップ４４０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ４４９５に進んで本ルーチンを一旦終了する。また、ＣＰＵ８１は、ステップ４４０５の処理を実行したとき、異常判定の前提条件が成立していなければ、ステップ４４６０を経由してからステップ４４９５に進み、本ルーチンを一旦終了するように構成されてもよい。更に、ＣＰＵ８１は、ステップ４４１０の処理を実行したとき、サブフィードバック制御条件が成立していなければ、ステップ４４９５に直接進んで本ルーチンを一旦終了する。
【０４３６】
以上、説明したように、第２変形装置（判定装置）は、
前記学習値（サブＦＢ学習値Vafsfbg）に基いて前記触媒５３を通過する前の排ガスに含まれる水素の量と前記触媒５３を通過した後の排ガスに含まれる水素の量との差が大きいほど大きくなるインバランス判定用パラメータ（サブＦＢ学習値平均値Ａvesfbg）を取得するインバランス判定用パラメータ取得手段（図４４の特にステップ４４２０乃至ステップ４４４０）と、
前記取得されたインバランス判定用パラメータ（サブＦＢ学習値平均値Ａvesfbg）が異常判定閾値（Ａｔｈ）よりも大きいとき前記少なくとも２以上の気筒のそれぞれに供給される混合気の空燃比である気筒別空燃比の間に不均衡が生じていると判定する空燃比気筒間インバランス判定手段（図４４の特にステップ４４４５乃至ステップ４４５５）と、
を備えた空燃比制御装置である。
【０４３７】
更に、
前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータ（サブＦＢ学習値平均値Ａvesfbg）を学習値（サブＦＢ学習値Vafsfbg）が大きくなるに従って大きくなるように取得するように構成されている。
これによれば、空燃比気筒間インバランスが発生したことを検出することができる実用的な空燃比気筒間インバランス判定装置が提供される。
【０４３８】
以上、説明したように、本発明の各実施形態に係る装置は、サブＦＢ学習値Vafsfbgの学習促進制御を実行している期間においては、「機関の空燃比を過渡的に乱す空燃比変動要因制御量」及び「機関の空燃比を過渡的に乱す空燃比変動要因制御量の変化速度」のうちの少なくとも一つを小さくするようになっている。従って、サブＦＢ学習値Vafsfbgが適正値から乖離することを回避することができる。その結果、各実施形態に係る装置は、「サブＦＢ学習値Vafsfbgが適正値から乖離しているためにエミッションが悪化する期間」を短縮することができる。
【０４３９】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。以下、そのような本発明の実施形態の変形例（以下、「本装置」とも称呼する。）について列挙する。
【０４４０】
・本装置は、内部ＥＧＲ量を変更する手段として、可変吸気タイミング制御装置３３及び可変排気タイミング制御装置３６のうちの何れか一方のみを備えることができる。
【０４４１】
・本装置は、サブフィードバック量Vafsfbを算出する際に求められる「出力偏差量DVoxsの積分値に基づく値SDVoxs」をサブＦＢ学習値VafsfbgとしてバックアップＲＡＭ８４に記憶してもよい。この場合、サブＦＢ学習値Vafsfbgは例えば、下記（３２）式に基づいて更新される。（３２）式において、k3は０から１までの任意の定数であり、Vafsfbgnewは更新後のサブＦＢ学習値Vafsfbgである。
Vafsfbgnew＝k3・Vafsfbg＋（1-k3)・SDVoxs    …（３２）
【０４４２】
この場合、サブフィードバック制御が開始されるまでの期間又はサブフィードバック制御の中止期間、サブフィードバック量VafsfbとしてＫｉ・Vafsfbgを使用すればよい。このとき、上記（１）式におけるVafsfbは「０」に設定される。更に、この場合、サブフィードバック制御開始時おける出力偏差量の積分値SDVoxsの初期値としてサブＦＢ学習値Vafsfbgを採用すればよい。
【０４４３】
・本装置は、上記（１３）式により更新されるサブＦＢ学習値VafsfbgをバックアップＲＡＭ８４に記憶するとともに、上記（１）式におけるVafsfbを「０」に設定してもよい。この場合、サブフィードバック制御が開始されるまでの期間（又はサブフィードバック制御の中止期間）、サブフィードバック量VafsfbとしてサブＦＢ学習値Vafsfbgを採用すればよい。
【０４４４】
・本装置は、サブＦＢ学習値Vafsfbgの更新を、下流側空燃比センサ６８の出力値Voxsが理論空燃比相当値Ｖst（０．５Ｖ）を横切った直後（リッチ・リーン反転時）に行うように構成され得る。この場合、本装置は、例えば、機関始動後のサブＦＢ学習値Vafsfbgの更新回数が所定値以下であるか否かを判定し、機関始動後のサブＦＢ学習値Vafsfbgの更新回数が所定値以下であるとき、上述した「学習不足状態」であると推定してもよい。
【０４４５】
・本装置のパージ制御弁４９及びＥＧＲ弁５５は、デューティ信号により開度が調節されるスイッチングバルブ形式の弁、及び、ステップモータを使用して開度調整を行う弁、等であってもよい。
【０４４６】
・本装置は、例えば、Ｖ型エンジンにも適用することができる。その場合、Ｖ型エンジンは右バンクに属する気筒の排気集合部よりも下流に右バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）を備え、左バンクに属する気筒の排気集合部よりも下流に左バンク上流側触媒（前記機関の排気通路であって前記複数の気筒のうちの少なくとも２以上の気筒以外の残りの２以上の気筒の燃焼室から排出された排ガスが集合する排気集合部よりも下流側の部位に配設された触媒）と、を備えることができる。更に、Ｖ型エンジンは、右バンク上流側触媒の上流及び下流に右バンク用の上流側空燃比センサ及び下流側空燃比センサを備え、左バンク上流側触媒の上流及び下流に左バンク用の上流側空燃比センサ及び下流側空燃比センサを備えることができる。この場合、右バンク用のメインフィードバック制御及びサブフィードバック制御が実行され、それとは独立して左バンク用のメインフィードバック制御及びサブフィードバック制御が実行される。
【０４４７】
更に、上記実施形態の各制御装置は、学習促進制御中には通常学習制御中に比較して、空燃比変動要因制御量の大きさ及び／又は更新速度を小さくしていた。これに対し、本発明による制御装置は、学習促進制御中には通常学習制御中に比較して、空燃比変動要因制御量が増大するときに（即ち、空燃比を乱す方向に空燃比変動要因制御量が変化するときにのみ）にそれらを小さくし、空燃比変動要因制御量が減少するときには学習促進制御中であっても通常学習制御中と同様にそれらを変化させてもよい。
【０４４８】
また、本明細書に開示された発明は、以下のように表現することもできる。
【０４４９】
態様１．この多気筒内燃機関の制御装置において、
前記空燃比制御手段は、
前記排気集合部又は前記排気集合部と前記触媒との間の前記排気通路に配設されるとともに同配設された部位を流れるガスの空燃比に応じた出力値を出力する上流側空燃比センサと、
前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比を前記下流側目標空燃比と同じ空燃比である上流側目標空燃比と一致させるための基本燃料噴射量を前記機関の吸入空気量と同上流側目標空燃比とに基いて決定する基本燃料噴射量決定手段と、
所定の第３更新タイミングが到来する毎に前記上流側空燃比センサの出力値と前記第１フィードバック量と（場合により前記学習値）とに基づき前記少なくとも２以上の気筒の燃焼室に供給される混合気の空燃比が前記上流側目標空燃比に一致するように前記基本燃料噴射量を補正するための第２フィードバック量（メインフィードバック値ＤＦｉ、メインフィードバック係数ＦＡＦ）を更新する第２フィードバック量更新手段と、
前記第２フィードバック量により前記基本燃料噴射量を補正することにより得られる燃料噴射量の燃料を前記燃料噴射弁から噴射させる燃料噴射指示手段と、
を含む制御装置。
【０４５０】
態様２．この多気筒内燃機関の制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記学習値の前記第１フィードバック量への又は前記第１フィードバック量に含まれる定常成分への接近速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記学習手段に対して指示を与えるように構成された制御装置。
【０４５１】
態様３．この多気筒内燃機関の制御装置において、
前記学習手段は、
前記学習値を前記第１フィードバック量又は前記第１フィードバック量に含まれる定常成分に除々に接近させるように前記学習値の更新を行うように構成され、
前記学習促進手段は、
前記第１フィードバック量の更新速度を前記学習不足状態が発生していると推定されるときに前記学習不足状態が発生していないと推定されるときよりも大きくするように前記第１フィードバック量更新手段に対して指示を与えるように構成された制御装置。
【０４５２】
態様４．この多気筒内燃機関の制御装置において、
前記学習促進手段は、
前記学習値の変化速度が所定の学習値変化速度閾値以上であるとき前記学習不足状態が発生していると推定するように構成された制御装置。
【０４５３】
態様５．この多気筒内燃機関の制御装置であって、
前記インバランス判定用パラメータ取得手段は、
前記インバランス判定用パラメータを学習値が大きくなるに従って大きくなるように取得するように構成された制御装置。
【符号の説明】
【０４５４】
１０…内燃機関、２０…シリンダブロック部、２５…燃焼室、３２…吸気弁、３３…可変吸気タイミング制御装置、３３ａ…アクチュエータ、３５…排気弁、３６ａ…アクチュエータ、３６…可変排気タイミング制御装置、３９…燃料噴射弁、４５…燃料タンク、４６…キャニスタ、４９…パージ制御弁、５３…上流側触媒、５４…排気還流管、５５…ＥＧＲ弁、６７…上流側空燃比センサ、６８…下流側空燃比センサ、８０…電気制御装置、８１…ＣＰＵ。
【図１】
2010174809.tif 000003
【図２】
2010174809.tif 000004
【図３】
2010174809.tif 000005
【図４】
2010174809.tif 000006
【図５】
2010174809.tif 000007
【図６】
2010174809.tif 000008
【図７】
2010174809.tif 000009
【図８】
2010174809.tif 000010
【図９】
2010174809.tif 000011
【図１０】
2010174809.tif 000012
【図１１】
2010174809.tif 000013
【図１２】
2010174809.tif 000014
【図１３】
2010174809.tif 000015
【図１４】
2010174809.tif 000016
【図１５】
2010174809.tif 000017
【図１６】
2010174809.tif 000018
【図１７】
2010174809.tif 000019
【図１８】
2010174809.tif 000020
【図１９】
2010174809.tif 000021
【図２０】
2010174809.tif 000022
【図２１】
2010174809.tif 000023
【図２２】
2010174809.tif 000024
【図２３】
2010174809.tif 000025
【図２４】
2010174809.tif 000026
【図２５】
2010174809.tif 000027
【図２６】
2010174809.tif 000028
【図２７】
2010174809.tif 000029
【図２８】
2010174809.tif 000030
【図２９】
2010174809.tif 000031
【図３０】
2010174809.tif 000032
【図３１】
2010174809.tif 000033
【図３２】
2010174809.tif 000034
【図３３】
2010174809.tif 000035
【図３４】
2010174809.tif 000036
【図３５】
2010174809.tif 000037
【図３６】
2010174809.tif 000038
【図３７】
2010174809.tif 000039
【図３８】
2010174809.tif 000040
【図３９】
2010174809.tif 000041
【図４０】
2010174809.tif 000042
【図４１】
2010174809.tif 000043
【図４２】
2010174809.tif 000044
【図４３】
2010174809.tif 000045
【図４４】
2010174809.tif 000046