(57)【特許請求の範囲】
【請求項１】
内燃機関の制御装置であって、
前記機関の排気通路に配設された三元触媒である上流側触媒と、
前記排気通路であって前記上流側触媒の上流又は下流の位置に配設された微粒子捕集フィルタと、
前記上流側触媒及び前記微粒子捕集フィルタのうちの前記排気通路の上流側に配設された方に流入するガスの空燃比である上流側空燃比を取得する上流側空燃比取得手段と、
前記上流側触媒及び前記微粒子捕集フィルタのうちの前記排気通路の下流側に配設された方から流出するガスの空燃比である下流側空燃比を取得する下流側空燃比取得手段と、
前記取得される上流側空燃比及び前記取得される下流側空燃比に基づいて機関に供給される混合気の空燃比が理論空燃比を含む所定の空燃比範囲内の空燃比となるように前記機関に供給される混合気の空燃比である機関の空燃比をフィードバック制御するフィードバック制御手段と、
前記微粒子捕集フィルタを再生させる要求が発生したか否かを判定するフィルタ再生要求発生判定手段と、
前記フィルタ再生要求が発生したと判定された場合、前記空燃比フィードバック制御手段による前記フィードバック制御を中止するとともに、前記取得される下流側空燃比が理論空燃比よりもリッチ側の空燃比であるときに前記機関の空燃比を前記所定の空燃比範囲外であって理論空燃比よりもリーン側の空燃比である強制リーン空燃比に設定し、その後前記取得される下流側空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比に変化したときに前記機関の空燃比を前記所定の空燃比範囲外であって理論空燃比よりもリッチ側の空燃比である強制リッチ空燃比に設定し、その後前記取得される下流側空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比に変化したときに前記機関の空燃比を前記強制リーン空燃比に再び設定する動作を所定期間に渡って繰り返す空燃比強制振動制御を実行する空燃比強制振動制御手段と、
を備えた内燃機関の制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置において、
前記強制リーン空燃比と前記理論空燃比との差の大きさが、前記強制リッチ空燃比と前記理論空燃比との差の大きさよりも大きく設定されている制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の制御装置であって、
前記空燃比強制振動制御中であって前記機関の空燃比が前記強制リーン空燃比に設定されている第１期間において前記機関から排出された酸素の過剰量の総量に対応する量を酸素吸蔵量として取得し、前記空燃比強制振動制御中の前記第１期間に連続する期間であって前記機関の空燃比が前記強制リッチ空燃比に設定されている第２期間において前記機関から排出された酸素の不足量の総量に対応する量を酸素脱離量として取得し、同取得された酸素吸蔵量と同取得された酸素脱離量とに基づいて前記微粒子捕集フィルタの再生状態を特定するフィルタ再生状態特定手段、
を備えた制御装置。
【請求項４】
請求項３に記載の内燃機関の制御装置において、
前記フィルタ再生状態特定手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差が正常判定閾値より大きいか否かを判定し、同酸素量差が同正常判定閾値より大きいと判定されたときに前記微粒子捕集フィルタの再生が正常に実行されたと判定する正常判定手段を含むことを特徴とする制御装置。
【請求項５】
請求項４に記載の内燃機関の制御装置において、
前記フィルタ再生状態特定手段は、
前記第１期間における酸素吸蔵量を、所定時間あたりに前記機関から排出された酸素の過剰量を前記微粒子捕集フィルタの温度に対応する温度及び前記微粒子捕集フィルタに流入するガスの空燃比のうちの少なくとも一方に応じて補正した量を同第１期間に渡って積算することにより、算出するように構成された制御装置。
【請求項６】
請求項４に記載の内燃機関の制御装置において、
前記空燃比強制振動制御手段は、
前記正常判定手段が前記微粒子捕集フィルタの再生が正常に実行されたと判定した後において前記酸素量差のうちの最新の値が強制振動終了判定閾値より小さいか否かを判定し、同酸素量差のうちの最新の値が同強制振動終了判定閾値より小さいと判定されたときに前記空燃比強制振動制御を終了するように構成された制御装置。
【請求項７】
請求項３に記載の内燃機関の制御装置において、
前記空燃比強制振動制御手段は、
前記第１期間と前記第２期間とからなる空燃比制御サイクルを複数サイクルに渡って実行するように構成され、
前記フィルタ再生状態特定手段は、
前記空燃比強制振動制御中、前記空燃比制御サイクルの各サイクルにおいて前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差を取得し、同各サイクルに対して取得された酸素量差からなる複数の酸素量差のうちの最大値が異常判定閾値より小さいか否かを判定し、同最大値が同異常判定閾値より小さいと判定されたときに前記微粒子捕集フィルタの再生が正常に実行されていないと判定する異常判定手段を含むことを特徴とする制御装置。
【請求項８】
請求項３に記載の内燃機関の制御装置において、
前記フィルタ再生状態特定手段は、
前記酸素脱離量に基づき且つ前記酸素吸蔵量に基づくことなく前記上流側触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量に基づいて同上流側触媒が劣化しているか否かを判定する触媒劣化判定手段を含むことを特徴とする制御装置。
【請求項９】
請求項３に記載の内燃機関の制御装置において、
前記フィルタ再生状態特定手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差が所定値以下であるか否かを判定し、同酸素量差が所定値以下である場合、前記酸素吸蔵量と前記酸素脱離量とに基づいて前記上流側触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量に基づいて同上流側触媒が劣化しているか否かを判定する触媒劣化判定手段を含むことを特徴とする制御装置。
【請求項１０】
請求項３に記載の内燃機関の制御装置において、
空燃比強制振動制御手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差に基づいて前記微粒子捕集フィルタが過熱状態に至るか否かを判定する過熱判定手段を含むとともに、同微粒子捕集フィルタが同過熱状態に至ると判定されたときに前記空燃比強制振動制御を終了するように構成された制御装置。
【請求項１１】
請求項１０に記載の内燃機関の制御装置において、
前記過熱判定手段は、前記酸素量差が所定の過熱判定閾値より大きいか否かを判定するとともに、同酸素量差が同過熱判定閾値より大きいと判定されたとき前記微粒子捕集フィルタが前記過熱状態に至ると判定するように構成された制御装置。
【請求項１２】
請求項１１に記載の内燃機関の制御装置であって、
前記過熱判定手段は、前記微粒子捕集フィルタの温度に応じて大きくなるフィルタ温度対応値を取得するとともに、同取得したフィルタ温度対応値が大きいほど前記過熱判定閾値を小さくするように構成された制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排気通路に微粒子捕集フィルタと三元触媒とを備えた内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来より、ディーゼル機関から排出される微粒子（パティキュレート・マター（ＰＭ）、即ち、ＳＯＦ及びＳｏｏｔ等のナノ微粒子）を、排気通路に配設した微粒子捕集フィルタ（パティキュレート・フィルタ）により捕集するとともに、所定の条件が成立したときに微粒子捕集フィルタに捕集された微粒子を燃焼させることにより微粒子捕集フィルタを再生させる内燃機関の制御装置が知られている。このような従来の制御装置の一つは、微粒子捕集フィルタの上流側空燃比と下流側空燃比とを検出し、それらの検出された空燃比により微粒子捕集フィルタが再生されている最中であるか否か（捕集された微粒子が燃焼している状態にあるか否か）を判定し、その判定結果に基づいてエンジンの運転モードを切り換えるようになっている（例えば、特許文献１を参照。）。
【特許文献１】特開２００５−２４０７１９号公報
【発明の開示】
【０００３】
ところで、微粒子捕集フィルタに捕集された微粒子を燃焼させるためには、微粒子捕集フィルタが高温であること、及び、微粒子捕集フィルタに酸素が供給されること、が必要である。上記従来の制御装置は、供給される混合気の空燃比が非常にリーン（希薄）であるディーゼル機関に適用される。従って、微粒子捕集フィルタには微粒子を燃焼させるための酸素が十分に供給されている。そこで、上記従来の制御装置は、燃料噴射時期の遅角、燃料噴射量の増大及び吸気絞り弁による吸気量の減少等を実行することによって微粒子捕集フィルタの温度を上昇させ、以って、捕集した微粒子を燃焼させている。
【０００４】
ところで、近年においては、ガソリン機関から排出される微粒子の量を低減するため、ガソリン機関の排気通路にも微粒子捕集フィルタを配設することが検討されている。一方、一般のガソリン機関においては、未燃物（ＨＣ及びＣＯ等）の大気中への排出量及び窒素酸化物（ＮＯｘ）の大気中への排出量を低減することを目的として排気通路に三元触媒が備えられ、機関に供給される混合気の空燃比（以下、「機関の空燃比」とも称呼する。）が理論空燃比近傍の空燃比となるように燃料量が制御されている。
【０００５】
前述したように、微粒子捕集フィルタを再生させる（微粒子を燃焼させる）ためには、微粒子捕集フィルタに酸素が供給されなければならない。ところが、機関の空燃比が理論空燃比近傍の空燃比に制御されていると、微粒子捕集フィルタに酸素が殆ど供給されない。特に、微粒子捕集フィルタの上流に三元触媒である上流側触媒が備えられている場合、上流側触媒により酸素が消費及び吸蔵されるから、微粒子捕集フィルタに流入する酸素量は極めて少なくなる。従って、ガソリン機関において微粒子捕集フィルタを再生させることを目的として、機関の空燃比を理論空燃比よりもリーン側の空燃比に一時的に制御することが考えられる。しかしながら、機関の空燃比を理論空燃比よりもリーン側の空燃比に単に設定すると、機関の空燃比がリーン空燃比であるときに機関から多く排出される窒素酸化物を三元触媒によって浄化できない場合が生じ、窒素酸化物が大気中へ多く排出されてしまうという問題が発生する。
【０００６】
従って、本発明の目的の一つは、排気通路に微粒子捕集フィルタと三元触媒とを備えた内燃機関（ガソリン機関）の制御装置であって、窒素酸化物の排出量を増大させることなく微粒子捕集フィルタを再生させる（微粒子捕集フィルタに捕集された微粒子を燃焼させる）ことができる制御装置を提供することにある。
【０００７】
上記目的を達成するための本発明による内燃機関の制御装置は、上流側触媒と、微粒子捕集フィルタと、上流側空燃比取得手段と、下流側空燃比取得手段と、フィードバック制御手段と、フィルタ再生要求発生判定手段と、空燃比強制振動制御手段と、を備えている。
【０００８】
前記上流側触媒は、排気通路に配設されている。この上流側触媒は三元触媒であって触媒機能及び酸素吸蔵機能を有する。内燃機関が多気筒内燃機関である場合、上流側触媒は各気筒に接続されたエキゾーストマニホールドの集合部（エキゾーストマニホールドの各気筒に接続された枝部が集合している部分）より下流の排気通路に介装される。
【０００９】
前記微粒子捕集フィルタは、前記内燃機関の排気通路であって、前記上流側触媒の上流又は下流の位置に配設されている。この微粒子捕集フィルタは、上流側触媒と同様、前記内燃機関が多気筒内燃機関である場合、前記エキゾーストマニホールドの集合部より下流の排気通路に介装される。なお、微粒子捕集フィルタは上流側触媒の下流に設けられることがより好ましい。
【００１０】
前記上流側空燃比取得手段は、「前記上流側触媒及び前記微粒子捕集フィルタ」のうちの「前記排気通路の上流側に配設された方」に流入するガスの空燃比である上流側空燃比を取得するようになっている。
【００１１】
前記下流側空燃比取得手段は、「前記上流側触媒及び前記微粒子捕集フィルタ」のうちの「前記排気通路の下流側に配設された方」から流出するガスの空燃比である下流側空燃比を取得するようになっている。
【００１２】
前記フィードバック制御手段は、前記取得される上流側空燃比及び前記取得される下流側空燃比に基づいて機関に供給される混合気（空気及び燃料を含む混合気）の空燃比が「理論空燃比を含む所定の空燃比範囲内の空燃比」となるように、同機関に供給される混合気の空燃比である「機関の空燃比」をフィードバック制御するようになっている。この制御は「理論空燃比近傍制御」とも称呼される。
【００１３】
上記「理論空燃比を含む所定の空燃比範囲」とは、三元触媒である上流側触媒が有する触媒機能により、未燃物（ＨＣ，ＣＯ）及び窒素酸化物（ＮＯｘ）のそれぞれが所定率以上の高浄化率（高転化率）にて同時に浄化され得る空燃比範囲のことである。この空燃比範囲は一般に触媒のウインドウＷと称呼される。従って、上記フィードバック制御によれば、機関から排出される未燃物及び窒素酸化物は上流側触媒により高い効率にて浄化される。
【００１４】
前記フィルタ再生要求発生判定手段は、前記微粒子捕集フィルタを再生させる要求（以下、「フィルタ再生要求」とも称呼する。）が発生したか否かを判定するようになっている。例えば、フィルタ再生要求発生判定手段は、機関の運転状態（吸入空気量（負荷）、機関の空燃比、走行距離及びエンジン運転時間等）に基づき、前記微粒子捕集フィルタを再生させる要求が発生したか否かを判定する。
【００１５】
より具体的に述べると、フィルタ再生要求発生判定手段は、車両の工場出荷時点、微粒子捕集フィルタが新品の微粒子捕集フィルタに交換された時点及び前回のフィルタ再生制御が終了した時点等の「微粒子捕集フィルタに捕集されている微粒子の量が極めて微量な時点（捕集微粒子少量時点）」からの積算吸入空気量、積算走行距離及び積算機関運転時間等が所定値以上となったとき、フィルタ再生要求が発生したと判定する。代替として、吸入空気量及び機関の空燃比から単位時間あたりに機関から排出される微粒子量を推定し、その単位時間当たりの微粒子量を「捕集微粒子少量時点」から時間積分することにより得られる微粒子捕集量（微粒子捕集フィルタに捕集されているであろう微粒子の量の推定値）が所定値以上となったとき、フィルタ再生要求が発生したと判定する。
【００１６】
前記空燃比強制振動制御手段は、前記フィルタ再生要求が発生したと判定された場合、前記空燃比フィードバック制御手段による前記フィードバック制御を中止するとともに、機関の空燃比を「理論空燃比よりもリッチ側の空燃比（強制リッチ空燃比）」と「理論空燃比よりもリーン側の空燃比（強制リーン空燃比）」とに交互に変更する（振動させる）空燃比強制振動制御を実行するようになっている。
【００１７】
より具体的に述べると、前記空燃比強制振動制御手段は、
（１）前記取得される下流側空燃比が理論空燃比よりもリッチ側の空燃比であるときに前記機関の空燃比を前記所定の空燃比範囲外であって理論空燃比よりもリーン側の空燃比である強制リーン空燃比に設定し、
（２）その後前記取得される下流側空燃比が理論空燃比よりもリッチ側の空燃比からリーン側の空燃比に変化したときに前記機関の空燃比を前記所定の空燃比範囲外であって理論空燃比よりもリッチ側の空燃比である強制リッチ空燃比に設定し、
（３）その後前記取得される下流側空燃比が理論空燃比よりもリーン側の空燃比からリッチ側の空燃比に変化したときに前記機関の空燃比を前記強制リーン空燃比に再び設定する、
動作を所定期間に渡って繰り返すようになっている。
【００１８】
これによれば、前記フィルタ再生要求が発生したと判定されたとき、空燃比強制振動制御が実行される。従って、空燃比強制振動制御中において機関の空燃比が上流側触媒のウインドウ幅を超える強制リーン空燃比に設定されたとき、多量且つ過剰な酸素が機関から排出され、微粒子捕集フィルタに流入する。この結果、微粒子捕集フィルタには酸素が供給されるので、微粒子捕集フィルタに捕集されていた微粒子が燃焼して微粒子捕集フィルタが再生される。
【００１９】
更に、空燃比強制振動制御中、機関には強制リーン空燃比の混合気と強制リッチ空燃比の混合気とが交互に供給される。加えて、強制リーン空燃比から強制リッチ空燃比への切換え時点は「取得された下流側空燃比」が「理論空燃比よりリッチ側の空燃比からリーン側の空燃比へと変化した時点」であり、且つ、強制リッチ空燃比から強制リーン空燃比への切換え時点は「取得された下流側空燃比」が「理論空燃比よりリーン側の空燃比からリッチ側の空燃比へと変化した時点」である。従って、ある程度の時間幅（空燃比強制振動制御において一回の強制リーン空燃比とそれに続く一回の強制リッチ空燃比とが設定される１サイクル以上の時間）における機関の空燃比の平均は、結局、理論空燃比近傍の値となる。この結果、機関から排出される窒素酸化物及び未燃物（ＨＣ，ＣＯ等）を酸素吸蔵機能を有する上流側触媒により（酸素吸蔵機能を有する下流側触媒が備えられている場合には更に同下流側触媒により）ある程度浄化することができる。それ故、機関の空燃比を単純にリーン空燃比に設定する場合に比較して、エミッションを良好にしながら、微粒子捕集フィルタを再生させることができる。
【００２０】
更に、前記制御装置において、
前記強制リーン空燃比と前記理論空燃比との差の大きさが、前記強制リッチ空燃比と前記理論空燃比との差の大きさよりも大きく設定されていることが好ましい。
【００２１】
機関から排出される微粒子の量（排出微粒子量）は、吸入空気量が一定である場合、機関の空燃比が理論空燃比よりもリッチ側である場合の方が理論空燃比よりもリーン側の空燃比である場合より多くなる。更に、排出微粒子量は、機関の空燃比が理論空燃比から遠ざかるほど多くなる。従って、振幅の中心を理論空燃比に一致させて機関の空燃比を振動させた場合（図１４の幅ＡＣ１を参照。）より、振幅の中心を理論空燃比よりもリーン側の空燃比に一致させて機関の空燃比を振動させた場合（図１４の幅ＡＣ２を参照。）の方が排出微粒子量は少なくなる。即ち、前記強制リーン空燃比と前記理論空燃比との差の大きさが、前記強制リッチ空燃比と前記理論空燃比との差の大きさよりも大きく設定されていれば（空燃比強制振動が理論空燃比に対して非対称であって、リーン側に偏移した振動であれば）、空燃比強制振動制御中における排出微粒子量を低減することができる。
【００２２】
更に、微粒子捕集フィルタ内において、微粒子はより多くの酸素が供給されるほどより高い効率で燃焼する（図１５を参照。）。従って、前記強制リーン空燃比と前記理論空燃比との差の大きさが、前記強制リッチ空燃比と前記理論空燃比との差の大きさよりも大きく設定されていれば、空燃比強制振動制御中においてより効率良く微粒子を燃焼させることができる。それ故、空燃比強制制御を短時間内に終了させ、空燃比強制制御中よりもエミッションが良好となるフィードバック制御の期間を長くすることができる。その結果、上記内燃機関の制御装置は、エミッションを極力良好に維持しつつ微粒子捕集フィルタの再生を実行することができる。
【００２３】
更に、本制御装置は、
（１）前記空燃比強制振動制御中の「前記機関の空燃比が前記強制リーン空燃比に設定されている第１期間」において「前記機関から排出された酸素の過剰量の総量に対応する量」を酸素吸蔵量として取得し、
（２）前記空燃比強制振動制御中の期間であって前記第１期間に連続する「前記機関の空燃比が前記強制リッチ空燃比に設定されている第２期間」において「前記機関から排出された酸素の不足量の総量に対応する量」を酸素脱離量として取得し、
（３）前記取得された酸素吸蔵量と前記取得された酸素脱離量とに基づいて（例えば、前記酸素吸蔵量から前記酸素脱離量を減じた酸素量差に基づいて）、前記微粒子捕集フィルタの再生状態を特定する、
フィルタ再生状態特定手段を備えていることが好適である。
なお、第２期間は、第１期間の直後の期間であっても第１期間の直前の期間であってもよい。
【００２４】
より具体的に述べると、フィルタ再生状態特定手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差が正常判定閾値より大きいか否かを判定し、同酸素量差が同正常判定閾値より大きいと判定されたときに前記微粒子捕集フィルタの再生が正常に実行されたと判定する正常判定手段を含むように構成される。
【００２５】
上記酸素吸蔵量は、微粒子捕集フィルタ内における微粒子の燃焼により消費された酸素の量に対応する量と、上流側触媒に吸蔵された酸素の量と、の和である。
上記酸素脱離量は、上流側触媒から脱離した（未燃物を酸化させるために同未燃物に供給された）酸素の量である。
【００２６】
従って、前記第１期間（機関の空燃比が強制リーン空燃比に設定されている期間）において取得された酸素吸蔵量から、その第１期間に連続する第２期間（機関の空燃比が強制リッチ空燃比に設定されている期間）において取得された酸素脱離量を減じた量である「酸素量差」は、微粒子捕集フィルタにおける酸素の消費量に対応した量、即ち、微粒子捕集フィルタにおいて燃焼した微粒子の量を表す量である。
【００２７】
一方、微粒子捕集フィルタ内において捕集されていた微粒子が正常に燃焼すれば、相当量の酸素が消費されるはずである。
そこで、上記構成のように、前記酸素量差が正常判定閾値より大きいと判定されたときには、前記微粒子捕集フィルタの再生が正常に実行されたと判定することができる。
【００２８】
この場合、前記フィルタ再生状態特定手段は、
前記第１期間における酸素吸蔵量を、「所定時間あたりに前記機関から排出された酸素の過剰量」を「前記微粒子捕集フィルタの温度に対応する温度」及び「前記微粒子捕集フィルタに流入するガスの空燃比」のうちの少なくとも一方に応じて「補正した量」を同第１期間に渡って積算することにより、算出するように構成されることが好適である。
【００２９】
微粒子捕集フィルタ内に捕集されている微粒子は、微粒子捕集フィルタに「ある一定の酸素量の酸素」が供給された場合であっても、微粒子捕集フィルタの温度が高いほど効率良く燃焼する。換言すると、微粒子捕集フィルタの温度が高いほど、機関から排出された過剰の酸素のうち、より多くの酸素が微粒子を燃焼させるために使用され、より少ない酸素が上流側触媒に吸蔵される。
【００３０】
また、微粒子捕集フィルタ内に捕集されている微粒子は、微粒子捕集フィルタに「ある一定の酸素量の酸素」が供給された場合であっても、その酸素濃度が高いほど効率良く燃焼する。換言すると、微粒子捕集フィルタに流入するガスの空燃比が大きくなる（よりリーンなガスである）ほど、機関から排出された過剰の酸素のうち、より多くの酸素が微粒子を燃焼させるために使用され、より少ない酸素が上流側触媒に吸蔵される。
【００３１】
従って、上記構成のように、第１期間における前記酸素吸蔵量を算出する基礎となる量を、「所定時間あたりに前記機関から排出された酸素の過剰量を前記微粒子捕集フィルタの温度に対応する温度に応じて補正された量」及び／又は「所定時間あたりに前記機関から排出された酸素の過剰量を前記微粒子捕集フィルタに流入するガスの空燃比に応じて補正した量」とすることにより、微粒子の燃焼量をより精度良く表す前記酸素吸蔵量（従って、微粒子の燃焼量をより精度良く表す酸素量差）を取得することができる。
【００３２】
更に、前記空燃比強制振動制御手段は、
前記正常判定手段が前記微粒子捕集フィルタの再生が正常に実行されたと判定した後において前記酸素量差のうちの最新の値が強制振動終了判定閾値より小さいか否かを判定し、同酸素量差のうちの最新の値が同強制振動終了判定閾値より小さいと判定されたときに前記空燃比強制振動制御を終了するように構成されることが好適である。
【００３３】
微粒子捕集フィルタの再生が正常に行われれば、空燃比強制振動制御の後期において燃焼する微粒子の量は低下するはずである。従って、上記構成のように、前記酸素量差のうちの最新の値が強制振動終了判定閾値より小さいと判定されたときには、微粒子捕集フィルタの再生が完了したと判断できるので、前記空燃比強制振動制御を適切なタイミングにて終了することができる。
【００３４】
一方、前記空燃比強制振動制御手段は、
前記第１期間と前記第２期間とからなる空燃比制御サイクルを複数サイクルに渡って実行するように構成され、
前記フィルタ再生状態特定手段は、
前記空燃比強制振動制御中、前記空燃比制御サイクルの各サイクルにおいて「前記第１期間において取得された酸素吸蔵量」から「前記第２期間において取得された酸素脱離量」を減じた量である「酸素量差」を取得し、同各サイクルに対して取得された酸素量差からなる「複数の酸素量差」のうちの最大値が異常判定閾値より小さいか否かを判定し、同最大値が同異常判定閾値より小さいと判定されたときに前記微粒子捕集フィルタの再生が正常に実行されていないと判定する異常判定手段を含むことが好適である。
【００３５】
空燃比強制振動制御は、前記フィルタ再生要求が発生したと判定されたときに実行される。従って、前述したように、微粒子捕集フィルタの再生が正常に行われれば前記酸素量差は正常判定閾値より大きくなる。換言すると、空燃比強制振動制御中に得られる前記酸素量差のうちの最大値が、異常判定閾値（正常判定閾値より一般に小さい）より小さければ、前記微粒子捕集フィルタの再生が正常に実行されていないと判定することができる。なお、この場合においても、一つの空燃比制御サイクルを構成する第１期間と第２期間とは、第１期間が第２期間よりも先であってもよく、第１期間が第２期間の後であってもよい。
【００３６】
また、前記フィルタ再生状態特定手段は、
前記酸素脱離量に基づき且つ前記酸素吸蔵量に基づくことなく前記上流側触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量に基づいて同上流側触媒が劣化しているか否かを判定する触媒劣化判定手段を含むことが好適である。
【００３７】
上述したように、上記酸素吸蔵量は、微粒子捕集フィルタ内における微粒子の燃焼により消費された酸素の量と、上流側触媒に吸蔵された酸素の量と、の和である。従って、上記酸素吸蔵量は、微粒子捕集フィルタ内において燃焼した微粒子の量に依存して変化するので、上流側触媒の最大酸素吸蔵量を正確に表していない場合がある。これに対し、上記酸素脱離量は、上流側触媒から脱離した（未燃物を酸化させるために同未燃物に供給された）酸素の量である。即ち、酸素脱離量は微粒子捕集フィルタ内において燃焼した微粒子及び微粒子捕集フィルタ内に残存する微粒子の量に依存せず、上流側触媒の最大酸素吸蔵量を精度良く表す。従って、上記構成のように、前記酸素吸蔵量に基づくことなく前記酸素脱離量に基づいて求められた「前記上流側触媒の最大酸素吸蔵量」に基づいて、上流側触媒が劣化しているか否かを判定することにより、上流側触媒が劣化しているか否かを精度良く判定することができる。更に、これによれば、微粒子捕集フィルタの再生と、重要な制御項目である上流側触媒の劣化判定とを同時に実行することができる。
【００３８】
また、前記フィルタ再生状態特定手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差が所定値以下であるか否かを判定し、同酸素量差が所定値以下である場合、前記酸素吸蔵量と前記酸素脱離量とに基づいて前記上流側触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量に基づいて同上流側触媒が劣化しているか否かを判定する触媒劣化判定手段を含むこともできる。
【００３９】
前記酸素量差が所定値以下である場合、上流側触媒及び微粒子捕集フィルタに流入した酸素は微粒子捕集フィルタ内において殆ど消費されていない（微粒子が微粒子捕集フィルタ内において殆ど燃焼していない）ことを意味する。従って、この場合には、上記構成のように、前記酸素吸蔵量と前記酸素脱離量とに基づいて前記上流側触媒の最大酸素吸蔵量を取得するとともに同取得された最大酸素吸蔵量に基づいて同上流側触媒が劣化しているか否かを判定することができる。換言すると、上流側触媒の最大酸素吸蔵量を「酸素吸蔵量と酸素脱離量との両者」を用いてより精度良く求めることができるので、上流側触媒が劣化しているか否かを精度良く判定することができる。
【００４０】
更に、空燃比強制振動制御手段は、
前記第１期間において取得された酸素吸蔵量から前記第２期間において取得された酸素脱離量を減じた量である酸素量差に基づいて前記微粒子捕集フィルタが過熱状態に至るか否かを判定する過熱判定手段を含むとともに、同微粒子捕集フィルタが同過熱状態に至ると判定されたときに前記空燃比強制振動制御を終了するように構成されることが好適である。より具体的には、前記過熱判定手段は、前記酸素量差が所定の過熱判定閾値より大きいか否かを判定するとともに、同酸素量差が同過熱判定閾値より大きいと判定されたとき前記微粒子捕集フィルタが前記過熱状態に至ると判定するように構成され得る。
【００４１】
微粒子が微粒子捕集フィルタ内において燃焼すれば、当然に熱が発生する。その熱の量は、燃焼した微粒子の量に応じる。一方、前記酸素吸蔵量と前記酸素脱離量との差（酸素量差）は微粒子捕集フィルタ内において燃焼した微粒子の量を表す。従って、例えば、前記酸素吸蔵量から前記酸素脱離量を減じた値である酸素量差が過熱判定閾値より大きいか否かを判定するとともに、同酸素量差が同過熱判定閾値より大きいと判定されたとき前記微粒子捕集フィルタが前記過熱状態に至ると判定することができる。そして、上記構成によれば、微粒子捕集フィルタが過熱状態に至ると判定されたとき、前記空燃比強制振動制御が終了されるので、微粒子捕集フィルタ内における微粒子のそれ以上の燃焼が停止する。この結果、微粒子捕集フィルタの再生中に微粒子捕集フィルタが過熱状態となって劣化或は破損することを回避することができる。
【００４２】
更に、この場合、前記過熱判定手段は、前記微粒子捕集フィルタの温度に応じて大きくなるフィルタ温度対応値を取得するとともに、同取得したフィルタ温度対応値が大きいほど前記過熱判定閾値を小さくするように構成されていることが好適である。
【００４３】
微粒子捕集フィルタの温度が限界温度以上になると微粒子捕集フィルタは破損或は劣化する虞がある。従って、微粒子捕集フィルタの温度が上昇すれば、微粒子捕集フィルタを再生させるために「微粒子捕集フィルタ内において燃焼させることができる微粒子」の量は少なくなる。燃焼する微粒子の量が多いほど発熱量は大きくなり、微粒子の燃焼による微粒子捕集フィルタの温度上昇分が大きくなるからである。更に、微粒子捕集フィルタの温度が上昇するほど、微粒子は効率良く燃焼する（単位時間あたりに燃焼する微粒子の量が増大する）。
【００４４】
これらのことから、前記空燃比強制振動制御中において、微粒子捕集フィルタの温度が高いほど、微粒子捕集フィルタは過熱状態に至り易い。そこで、上記構成のように、取得した微粒子捕集フィルタの温度が大きいほど過熱判定閾値を小さくする。これによれば、吸入空気量及び排ガス温度等により変化する微粒子捕集フィルタの温度に拘らず、微粒子捕集フィルタが過熱状態に陥ることが前記酸素量差に基づいて精度良く予測でき、その場合に空燃比強制振動制御を中止することができる。従って、微粒子捕集フィルタの再生中に微粒子捕集フィルタが過熱状態となって劣化或は破損することを回避することができる。
【発明を実施するための最良の形態】
【００４５】
以下、本発明による内燃機関の制御装置の各実施形態について図面を参照しつつ説明する。
【００４６】
（第１実施形態）
図１は、第１実施形態に係る内燃機関の制御装置（以下、「第１制御装置」とも称呼する。）を火花点火式多気筒（本例では４気筒）内燃機関（ガソリンエンジン）１０に適用したシステムの概略構成を示している。この内燃機関１０は、シリンダブロック、シリンダブロックロワーケース及びオイルパン等を含むシリンダブロック部２０と、シリンダブロック部２０の上に固定されるシリンダヘッド部３０と、シリンダブロック部２０にガソリン混合気を供給するための吸気系統４０と、シリンダブロック部２０からの排ガスを外部に放出するための排気系統５０とを含んでいる。
【００４７】
シリンダブロック部２０は、シリンダ２１、ピストン２２、コンロッド２３及びクランク軸２４を含んでいる。ピストン２２はシリンダ２１内を往復動し、ピストン２２の往復動がコンロッド２３を介してクランク軸２４に伝達され、これにより同クランク軸２４が回転するようになっている。シリンダ２１とピストン２２のヘッドは、シリンダヘッド部３０とともに燃焼室２５を形成している。
【００４８】
シリンダヘッド部３０は、燃焼室２５に連通した吸気ポート３１、吸気ポート３１を開閉する吸気弁３２、吸気弁３２を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置３３、可変吸気タイミング装置３３のアクチュエータ３３ａ、燃焼室２５に連通した排気ポート３４、排気ポート３４を開閉する排気弁３５、排気弁３５を駆動するエキゾーストカムシャフト３６、点火プラグ３７、点火プラグ３７に与える高電圧を発生するイグニッションコイルを含むイグナイタ３８及び燃料を吸気ポート３１内に噴射するインジェクタ（燃料噴射手段）３９を備えている。燃料噴射手段としてのインジェクタ３９は、噴射指示信号に応答して同噴射指示信号に含まれる指示噴射量の燃料を噴射するようになっている。
【００４９】
吸気系統４０は、インテークマニホールド４１、吸気管（吸気ダクト）４２、エアフィルタ４３、スロットル弁４４及びスロットル弁アクチュエータ４４ａを備えている。
【００５０】
インテークマニホールド４１は、各気筒の燃焼室２５の吸気ポート３１に接続されている。より詳細には、図２に示したように、インテークマニホールド４１は各吸気ポートに接続された複数の枝部４１ａと、それらの枝部４１ａが集合したサージタンク部４１ｂと、を備えている。図１及び図２に示したように、吸気管４２はサージタンク部４１ｂに接続されている。インテークマニホールド４１及び吸気管４２は吸気通路を構成している。図１に示したエアフィルタ４３は吸気管４２の端部に設けられている。スロットル弁４４は吸気管４２に回動可能設けられ、回動することにより吸気管４２が形成する吸気通路の開口断面積を変更するようになっている。スロットル弁アクチュエータ（スロットル弁駆動手段）４４ａは、ＤＣモータからなり、指示信号に応答してスロットル弁４４を回転駆動するようになっている。
【００５１】
排気系統５０は、エキゾーストマニホールド５１、エキゾーストパイプ（排気管）５２、上流側触媒５３、微粒子捕集フィルタ５４及び下流側触媒５５を備えている。
【００５２】
エキゾーストマニホールド５１は、図１に示したように、各気筒の燃焼室２５の排気ポート３４に接続されている。より詳細には、図２に示したように、エキゾーストマニホールド５１は各排気ポートに接続された複数の枝部５１ａと、それらの枝部５１ａが集合した集合部５１ｂと、を備えている。エキゾーストパイプ５２は、エキゾーストマニホールド５１の集合部５１ｂに接続されている。エキゾーストマニホールド５１及びエキゾーストパイプ５２は排気経路を構成している。なお、本明細書において、エキゾーストマニホールド５１の集合部５１ｂとエキゾーストパイプ５２とが形成する排気経路を、便宜上「排気通路」と称呼する。
【００５３】
上流側触媒５３は、セラミックからなる担持体に「触媒物質である貴金属」及び「セリア（CeO2)」を担持していて、酸素吸蔵・放出機能（単に「酸素吸蔵機能」又は「Ｏ２ストレージ機能」とも称呼する。）を有する三元触媒である。上流側触媒５３はエキゾーストパイプ５２に配設（介装）されている。換言すると、上流側触媒５３は排気通路の集合部（エキゾーストマニホールド５１の集合部５１ｂ）よりも下流の排気通路に配設されている。上流側触媒５３は、スタート・キャタリティック・コンバータ（ＳＣ）又は第１触媒とも称呼される。
【００５４】
微粒子捕集フィルタ５４はセラミックからなる周知の微粒子フィルタであり、機関１０から排出される微粒子を捕集するようになっている。微粒子捕集フィルタ５４は、上流側触媒５３よりも下流の位置において排気通路（エキゾーストパイプ５２）に配設（介装）されている。微粒子捕集フィルタ５４はパティキュレート・マター・フィルタ（ＰＭＦ）とも称呼される。なお、微粒子捕集フィルタ５４は、上流側触媒５３よりも上流の位置であって、排気通路の集合部（エキゾーストマニホールド５１の集合部５１ｂ）よりも下流の排気通路に配設されていてもよい。
【００５５】
下流側触媒５５は、上流側触媒５３と同様、セラミックからなる担持体に貴金属（触媒物質）及びセリア（CeO2)を担持していて、酸素吸蔵機能を有する三元触媒である。下流側触媒５５は微粒子捕集フィルタ５４よりも下流の位置において排気通路（エキゾーストパイプ５２）に配設（介装）されている。即ち、排気通路には、上流側触媒５３、微粒子捕集フィルタ５４及び下流側触媒５５が、上流から下流に向けて順に直列に配設されている。下流側触媒５５は、車両のフロア下方に配設されているため、アンダ・フロア・キャタリティック・コンバータ（ＵＦＣ）又は第２触媒とも称呼される。
【００５６】
上流側触媒５３及び下流側触媒５５を構成する三元触媒は、図３に示したように、三元触媒に流入するガスの空燃比が所謂「ウインドウＷ」の範囲内にあるとき、未燃物（ＨＣ，ＣＯ等）を酸化するとともに窒素酸化物（ＮＯｘ）を還元することにより、これらの有害成分を高い効率で浄化する特性（触媒機能）を有する。
【００５７】
また、三元触媒は、酸素吸蔵機能により、空燃比が理論空燃比からある程度まで偏移したとしても、ＨＣ、ＣＯ及びＮＯｘを浄化することができる。即ち、機関の空燃比が理論空燃比よりもリーン側の空燃比となって三元触媒に流入するガスにＮＯｘが多量に含まれると、触媒はＮＯｘから酸素分子を奪って（ＮＯｘを還元し）、その奪った酸素分子を吸蔵する。このような状態は、三元触媒が「実質的に還元剤（還元成分）を保持している状態である。」と表現することもできる。また、機関の空燃比が理論空燃比よりもリッチ側の空燃比になって三元触媒に流入するガスにＨＣ,ＣＯ等の未燃物（還元成分）が多量に含まれると、三元触媒は吸蔵している酸素分子をこれらの未燃物に対して与え、これらの成分を酸化（浄化）する。このような状態は、三元触媒が「実質的に酸化剤（酸化成分）を保持している状態である。」と表現することもできる。
【００５８】
更に、このシステムは、図１に示したように、熱線式エアフローメータ６１、スロットルポジションセンサ６２、カムポジションセンサ６３、クランクポジションセンサ６４、水温センサ６５、上流側空燃比センサ６６、下流側空燃比センサ６７及びアクセル開度センサ６８を備えている。
【００５９】
熱線式エアフローメータ６１は、吸気管４２内を流れる吸入空気の質量流量を検出し、その質量流量（機関１０の単位時間あたりの吸入空気量）Ｇａを表す信号を出力するようになっている。
スロットルポジションセンサ６２は、スロットル弁４４の開度を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００６０】
カムポジションセンサ６３は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。この信号はＧ２信号とも称呼される。
クランクポジションセンサ６４は、クランク軸２４が１０°回転する毎に幅狭のパルスを有するとともにクランク軸２４が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。クランクポジションセンサ６４から出力されるパルスは後述する電気制御装置７０により機関回転速度ＮＥを表す信号に変換されるようになっている。更に、電気制御装置７０は、カムポジションセンサ６３及びクランクポジションセンサ６４からの信号に基いて、機関１０のクランク角度（絶対クランク角）を取得するようになっている。
水温センサ６５は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。
【００６１】
上流側空燃比センサ６６は、図２に示したように、エキゾーストマニホールド５１の集合部５１ｂと上流側触媒５３との間の位置においてエキゾーストマニホールド５１及びエキゾーストパイプ５２の何れか（即ち、排気通路）に配設されている。上流側空燃比センサ６６は、上流側空燃比センサ６６が配設された排気通路内の部位を流れる排ガス（被検出ガス）の空燃比に応じた出力値を出力するようになっている。
【００６２】
より具体的に述べると、上流側空燃比センサ６６は限界電流式の酸素濃度センサである。上流側空燃比センサ６６は、図４に示したように、被検出ガスの空燃比Ａ／Ｆ（従って、機関に供給される混合気の空燃比）に応じた電圧である出力値Vabyfsを出力するようになっている。この出力値Vabyfsは、被検出ガスの空燃比が理論空燃比であるときに値Vstoichに一致する。出力値Vabyfsは、被検出ガスの空燃比が大きくなる（リーンとなる）ほど増大する。
【００６３】
後述する電気制御装置７０は、図４により示したテーブル（マップ）Mapabyfsを記憶していて、そのテーブルに実際の出力値Vabyfsを適用することによって空燃比を検出する（検出空燃比を取得する）ようになっている。即ち、上流側空燃比センサ６６は、上流側触媒５３及び微粒子捕集フィルタ５４のうちの排気通路の上流側に配設された方（本例においては上流側触媒５３）に流入するガスの空燃比である上流側空燃比を取得する上流側空燃比取得手段の一部を構成している。
【００６４】
下流側空燃比センサ６７は、図１及び図２に示したように、微粒子捕集フィルタ５４と下流側触媒５５との間の位置においてエキゾーストパイプ５２（排気通路）に配設されている。下流側空燃比センサ６７は、下流側空燃比センサ６７が配設された排気通路内の部位を流れる排ガス（被検出ガス）の空燃比に応じた出力値を出力するようになっている。即ち、下流側空燃比センサ６７は、上流側触媒５３及び微粒子捕集フィルタ５４のうちの排気通路の下流側に配設された方（本例においては微粒子捕集フィルタ５４）から流出するガスの空燃比である下流側空燃比afdownを取得する下流側空燃比取得手段の一部を構成している。
【００６５】
より具体的に述べると、下流側空燃比センサ６７は起電力式（濃淡電池式）の酸素濃度センサである。従って、下流側空燃比センサ６７は、酸素濃度センサ６７とも称呼される。下流側空燃比センサ６７は、図５に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力する。即ち、下流側空燃比センサ６７は、被検出ガスの空燃比が理論空燃比よりも大きくリーン側の空燃比であるときに略０．１（Ｖ）、被検出ガスの空燃比が理論空燃比よりも大きくリッチ側の空燃比であるときに略０．９（Ｖ）、空燃比が理論空燃比のときは０．５（Ｖ）の電圧を出力するようになっている。更に、下流側空燃比センサ６７は、被検出ガスの空燃比が理論空燃比近傍の空燃比（前述した、三元触媒のウインドウＷに実質的に対応する空燃比）であるとき、被検出ガスの空燃比がリッチからリーンに変化するに従って急激に減少する（略０．９（Ｖ）から略０．１（Ｖ）に向けて変化する）電圧を出力するようになっている。なお、下流側空燃比センサ６７の出力値Voxsに基づいて得られる下流側空燃比afdownは、図５に示した出力値Voxsと下流側空燃比afdownとの関係を表す関数をｆとするとき、afdown＝ｆ(Voxs)により求められる。
【００６６】
再び、図１を参照すると、アクセル開度センサ６８は、運転者によって操作されるアクセルペダル８１の操作量を検出し、アクセルペダル８１の操作量Accpを表す信号を出力するようになっている。
【００６７】
電気制御装置７０は、互いにバスで接続されたＣＰＵ７１、ＣＰＵ７１が実行するルーチン（プログラム）、テーブル（ルックアップテーブル、マップ）及び定数等を予め記憶したＲＯＭ７２、ＣＰＵ７１が必要に応じてデータを一時的に格納するＲＡＭ７３、電源が投入された状態でデータを格納するとともに格納したデータを電源が遮断されている間も保持するバックアップＲＡＭ７４、並びに、ＡＤコンバータを含むインターフェース７５等からなるマイクロコンピュータである。
【００６８】
インターフェース７５は、前記センサ６１〜６８と接続され、ＣＰＵ７１にセンサ６１〜６８からの信号を供給するとともに、ＣＰＵ７１の指示に応じて可変吸気タイミング装置３３のアクチュエータ３３ａ、イグナイタ３８、インジェクタ３９及びスロットル弁アクチュエータ４４ａ等に駆動信号（指示信号）を送出するようになっている。
【００６９】
（空燃比制御の概要）
次に、上記のように構成された第１制御装置による空燃比制御の概要について説明する。第１制御装置は、メインフィードバック制御及びサブフィードバック制御等を含む空燃比制御（燃料噴射量制御）を実行する。
【００７０】
＜メインフィードバック制御の概要＞
第１制御装置は、メインフィードバック制御条件が成立したとき、上流側空燃比センサ６６の出力値Vabyfsに基づいて取得された上流側空燃比abyfsが上流側目標空燃比abyfr（メインフィードバック目標値）に一致するように機関に供給される混合気の空燃比をフィードバック制御（メインフィードバック制御）する。本例において、メインフィードバック制御条件は、上流側空燃比センサ６６が活性化しているときに成立し、その他の場合に不成立となる。なお、メインフィードバック制御条件には、他の条件が加えられてもよい。
【００７１】
上流側目標空燃比abyfrは「通常空燃比フィードバック制御時」において「理論空燃比を含む所定の空燃比範囲内の空燃比（本例においては理論空燃比）」に設定される。この「理論空燃比を含む所定の空燃比範囲」とは、上述した「ウインドウＷ」のことである。
【００７２】
更に、上流側目標空燃比abyfrは、図６に示したように、後に詳述する「空燃比強制振動制御時」において「強制リーン空燃比afenL」及び「強制リッチ空燃比afenR」に時間の経過に伴って交互に変化させられる。
【００７３】
＜サブフィードバック制御の概要＞
第１制御装置は、サブフィードバック制御条件が成立したとき、下流側空燃比センサ６７の出力値Voxsが、下流側目標空燃比に相当する値である下流側目標値Voxsrefに一致するように、機関に供給される混合気の空燃比をフィードバック制御（サブフィードバック制御）する。換言すると、サブフィードバック制御は、下流側空燃比センサ６７の出力値Voxsにより表される下流側空燃比afdownが、下流側目標値Voxsrefにより表される下流側目標空燃比に一致するように機関に供給される混合気の空燃比（燃料量）を調整するフィードバック制御である。サブフィードバック制御は、例えば、下流側空燃比センサ６７の出力値Voxsと下流側目標値Voxsrefとの偏差（出力偏差量DVoxs）をＰＩ（比例・積分）制御又はＰＩＤ（比例・積分、微分）制御によって「０」に一致させようとする制御である。本例において、サブフィードバック制御条件は、下流側空燃比センサ６７が活性化していて、且つ、上記通常空燃比フィードバック制御が実行中であるときに成立し、その他の場合に不成立となる。なお、サブフィードバック制御条件には、他の条件が加えられてもよい。
【００７４】
下流側目標値Voxsrefは、図５に示したように、下流側空燃比センサ６７が配設された位置を通過するガス（被検出ガス）の空燃比が理論空燃比より僅かな所定値ΔＡＦだけリッチ側の空燃比ＡＦＲに相当する空燃比であるときに下流側空燃比センサ６７が出力するべき値（例えば、Voxsref＝Vrich＝０．５５Ｖ）に設定されている。これにより、機関１０に供給される混合気の空燃比、即ち、下流側触媒５５に流入するガスの空燃比の平均（中心、中央値）は理論空燃比よりも僅かにリッチ側の空燃比（以下、「弱リッチ空燃比ＡＦＲ」とも称呼する。）に一致させられる。
【００７５】
この弱リッチ空燃比ＡＦＲは、図３に示したように、ウインドウＷの範囲内であって理論空燃比よりも僅かにリッチ側の空燃比である。このように、機関に供給される混合気の空燃比の平均を弱リッチ空燃比ＡＦＲに制御するのは、下流側触媒５５及び上流側触媒５３等の三元触媒の「未燃物の浄化率」が、機関の空燃比がウインドウＷの範囲より僅かにリッチ側に偏移しても比較的緩やかに低下するのに対し、三元触媒の「窒素酸化物の浄化率」は機関の空燃比がウインドウＷの範囲より僅かにリーン側に偏移すると急激に低下するからである。
【００７６】
なお、上流側目標空燃比abyfrが理論空燃比に設定された状態にてメインフィードバック制御が実行され、且つ、下流側目標値Voxsrefが弱リッチ空燃比ＡＦＲに相当する値Vrichに設定された状態にてサブフィードバック制御が実行される空燃比制御は、「通常空燃比フィードバック制御」、「空燃比弱リッチ制御」又は「理論空燃比近傍制御」とも称呼される。
【００７７】
更に、下流側目標値Voxsrefは、下流側空燃比センサ６７が配設された位置を通過するガス（被検出ガス）の空燃比が理論空燃比であるときに下流側空燃比センサ６７が出力するべき値（以下、「理論空燃比相当値Voxsst」とも称呼し、例えば、Voxsref＝Voxsst＝０．５）に設定されてもよい。これにより、機関１０に供給される混合気の空燃比、即ち、下流側触媒５５に流入するガスの空燃比の平均（中心、中央値）は理論空燃比に一致させられる。上流側目標空燃比abyfrが理論空燃比に設定された状態にてメインフィードバック制御が実行され、且つ、下流側目標値Voxsrefが理論空燃比に相当する値Voxsstに設定された状態にてサブフィードバック制御が実行される空燃比制御は、「通常空燃比フィードバック制御」又は「理論空燃比近傍制御」とも称呼される。
【００７８】
＜空燃比強制振動制御（微粒子捕集フィルタ再生制御）＞
ところで、微粒子捕集フィルタ５４は微粒子を捕集するほと微粒子の捕集能力が低下する。逆に、微粒子捕集フィルタ５４に捕集された微粒子を微粒子捕集フィルタ５４内において燃焼させれば、微粒子捕集フィルタ５４の微粒子捕集能力は復帰する。即ち、微粒子捕集フィルタ５４を再生させることができる。微粒子捕集フィルタ５４内に捕集された微粒子を燃焼させるためには、
（１）微粒子捕集フィルタ５４内が高温であること、及び、
（２）微粒子捕集フィルタ５４に酸素が供給されること、
が必要である。
【００７９】
一般に、理論空燃比近傍の空燃比にて運転されるガソリン機関が通常の運転状態（始動直後等を除く運転状態）にあるとき、微粒子捕集フィルタ５４内の温度は捕集された微粒子を燃焼させるのに十分な程度の高い温度になる。一方、フューエルカット制御が行われると、機関１０から多量の酸素を含む空気が排出される。従って、フューエルカット制御が所定時間以上継続して実行されると、上流側触媒５３の酸素吸蔵量ＯＳＡ１は上流側触媒５３の最大酸素吸蔵量Ｃmax１に到達し、酸素が上流側触媒５３から流出し始める。上流側触媒５３から流出した酸素は微粒子捕集フィルタ５４内に流入する。
【００８０】
この結果、微粒子捕集フィルタ５４内は高温であり且つ微粒子捕集フィルタ５４に酸素が供給されるので、微粒子捕集フィルタ５４に捕集されていた微粒子が微粒子捕集フィルタ５４内において燃焼し、微粒子捕集フィルタ５４は再生される。しかしながら、フューエルカット制御がどのような頻度にて実行されるか、及び、フューエルカット制御時間がどの程度に及ぶか、は機関１０の運転がどのように行われるかに依存する。従って、フューエルカット制御のみによって微粒子捕集フィルタ５４を再生させることを常に期待することは適当ではない。
【００８１】
そこで、フューエルカット制御が実行されていないときに機関１０の空燃比を強制的にリーン空燃比に設定することにより、機関１０から比較的多量の酸素を排出させ、それによって微粒子捕集フィルタ５４に酸素を供給する（微粒子を燃焼させて微粒子捕集フィルタ５４を再生させる）ことが有効であると考えられる。
【００８２】
ところで、このように機関の空燃比をリーン空燃比に設定する場合においても、微粒子捕集フィルタ５４に酸素を供給するためには、先ず、上流側触媒５３の酸素吸蔵量ＯＳＡ１を上流側触媒５３の最大酸素吸蔵量Ｃmax１に到達させることにより、上流側触媒５３から酸素を流出させなければならない。しかしながら、上流側触媒５３の酸素吸蔵量ＯＳＡ１が上流側触媒５３の最大酸素吸蔵量Ｃmax１に到達し、且つ、機関の空燃比がウインドウＷ外のリーン空燃比であると、上流側触媒５３はＮＯｘを効果的に浄化することができない。更に、機関の空燃比はリーン空燃比に設定されているから、機関からは多量のＮＯｘが排出される。
【００８３】
このとき、下流側触媒５５の酸素吸蔵量ＯＳＡ２が下流側触媒５５の最大酸素吸蔵量Ｃmax２よりもある程度小さければ、下流側触媒５５はＮＯｘ浄化能力を有するので、上流側触媒５３から流出したＮＯｘを浄化することができる。これに対し、フューエルカット復帰直後のように、下流側触媒５５の酸素吸蔵量ＯＳＡ２が、下流側触媒５５の最大酸素吸蔵量Ｃmax２に到達していたり、或は、最大酸素吸蔵量Ｃmax２に近い量になっていたりすると、下流側触媒５５はＮＯｘを十分に浄化ですることができず、多量のＮＯｘが大気中に放出されてしまうという問題が生じる。更に、ＮＯｘが多量に排出されないようにするように、微粒子捕集フィルタの再生のために設定される空燃比を非常に希薄な空燃比（リーン度合いの大きいリーン空燃比）に設定しないようにすると、微粒子捕集フィルタに供給される過剰な酸素量が少なくなる。その結果、微粒子捕集フィルタの再生に時間を要するという問題も生じる。
【００８４】
そこで、第１制御装置は、微粒子捕集フィルタを再生する要求（フィルタ再生要求）が発生したと判定されたとき、「機関の空燃比を強制リーン空燃比afenLと強制リーン空燃比afenLとに制御する上記空燃比強制振動制御」を所定期間に渡って実行する。これにより、機関の空燃比が強制リーン空燃比afenLに設定されている間に機関１０から排出される過剰な酸素が微粒子捕集フィルタ５４に供給される。その結果、微粒子捕集フィルタ５４が再生される。この空燃比強制振動制御は、「空燃比アクティブ制御」、「微粒子捕集フィルタ再生制御」又は「フィルタ再生制御」とも称呼される。
【００８５】
強制リーン空燃比afenLは、図６に示したように、前記所定の空燃比範囲外（ウインドウＷの範囲外）であって理論空燃比stoichよりもリーン側の空燃比である。より具体的には、強制リーン空燃比afenLは、理論空燃比stoichに第１空燃比幅ΔafL（ΔafL＞０）を加えた空燃比（afenL＝stoich＋ΔafL）である。強制リーン空燃比afenLは、空燃比強制振動制御中において、取得される下流側空燃比afdownが理論空燃比よりもリーン側の空燃比からリッチ側の空燃比に変化した時点（以下、「リッチ反転時点」と称呼する。）から、取得される下流側空燃比afdownが理論空燃比よりもリッチ側の空燃比からリーン側の空燃比に変化する時点（以下、「リーン反転時点」と称呼する。）までの期間に設定される空燃比である。リッチ反転時点は、下流側空燃比センサ６７の出力値Voxsが理論空燃比相当値Voxsstより小さい値から理論空燃比相当値Voxsstより大きい値へと変化した時点であり、「下流側空燃比センサ６７の出力値Voxsにより示される空燃比がリーン空燃比からリッチ空燃比へと変化した時点」とも表現される。リーン反転時点は、下流側空燃比センサ６７の出力値Voxsが理論空燃比相当値Voxsstより大きい値から理論空燃比相当値Voxsstより小さい値へと変化した時点であり、「下流側空燃比センサ６７の出力値Voxsにより示される空燃比がリッチ空燃比からリーン空燃比へと変化した時点」とも表現される。
【００８６】
図６において、リッチ反転時点は時刻ｔ１、時刻ｔ３及び時刻ｔ５であり、リーン反転時点は時刻ｔ２、時刻ｔ４及び時刻ｔ６である。このように、強制リーン空燃比afenLは、空燃比強制振動制御中であって且つ取得される下流側空燃比afdownが理論空燃比よりもリッチ側の空燃比である場合（例えば、図６の時刻ｔ１−ｔ２、時刻ｔ３−ｔ４及び時刻ｔ５−ｔ６）に上流側目標空燃比abyfrとして設定される空燃比である。
【００８７】
強制リッチ空燃比afenRは、前記所定の空燃比範囲外（ウインドウＷの範囲外）であって理論空燃比よりもリッチ側の空燃比である。より具体的には、強制リッチ空燃比afenRは、理論空燃比stoichから第２空燃比幅ΔafR（ΔafR＞０）を減じた空燃比（afenR＝stoich−ΔafR）である。第１制御装置において、第１空燃比幅ΔafLと第２空燃比幅ΔafRは実質的に等しい。強制リッチ空燃比afenRは、空燃比強制振動制御中において、リーン反転時点からリッチ反転時点まで期間に設定される空燃比である。換言すると、強制リッチ空燃比afenRは、空燃比強制振動制御中であって且つ取得される下流側空燃比afdownが理論空燃比よりもリーン側の空燃比である場合（例えば、図６の時刻ｔ２−ｔ３及び時刻ｔ４−ｔ５）に上流側目標空燃比abyfrとして設定される空燃比である。
【００８８】
このように、上流側目標空燃比abyfr（結果として、機関の空燃比）は、理論空燃比stoichに対して実質的に対称な波形を有する空燃比となる。但し、機関の空燃比が強制リーン空燃比afenLに設定されている期間、微粒子捕集フィルタ５４内にて微粒子の燃焼のために酸素が消費されるので、機関の空燃比が強制リーン空燃比afenLに制御される「リッチ反転時からリーン反転時までの期間（例えば、時刻ｔ１−ｔ２）」は、機関の空燃比が強制リッチ空燃比afenRに制御される「リーン反転時からリッチ反転時までの期間（例えば、時刻ｔ２−ｔ３）」よりも長くなる。
【００８９】
この空燃比強制振動制御中、機関１０には強制リーン空燃比afenLの混合気と強制リッチ空燃比afenRの混合気とが交互に供給される。加えて、強制リーン空燃比afenLから強制リッチ空燃比afenRへの切換え時点は前記リーン反転時点であり、且つ、強制リッチ空燃比afenRから強制リーン空燃比afenLへの切換え時点は前記リッチ反転時点である。従って、ある程度の時間幅（空燃比強制振動制御の１サイクル以上の時間）における機関の空燃比の平均は、結局、理論空燃比近傍の値に設定することができる。即ち、空燃比強制振動制御において一回の強制リーン空燃比とそれに続く一回の強制リッチ空燃比とが設定される１サイクル以上の時間幅にて機関の空燃比の平均（或いは、下流側触媒５５に流入するガスの空燃比の平均）をとれば、その平均は略理論空燃比となる。この結果、機関から排出される窒素酸化物及び未燃物（ＨＣ，ＣＯ等）を上流側触媒５３及び下流側触媒５５により、ある程度浄化することができる。それ故、第１制御装置は、機関の空燃比を単純にリーン空燃比に設定する場合に比較して、エミッションを良好にしながら、微粒子捕集フィルタを再生させることができる。以上が、空燃比制御の概要である。
【００９０】
＜作用＞
第１制御装置のＣＰＵ７１は、図７に示したフローチャート示した手順に沿って上述した各種の制御を行うようになっている。ＣＰＵ７１は、図７に示した手順を所定時間の経過毎に繰り返すようになっている。なお、以下の説明において、上流側空燃比センサ６６及び下流側空燃比センサ６７は共に活性化していると仮定する。
【００９１】
ＣＰＵ７１は、所定のタイミングにてステップ７００から処理を開始し、ステップ７１０に進んでフィルタ再生要求フラグＸＰＭの値が「１」であるか否かを判定する。フィルタ再生要求フラグＸＰＭの値は、微粒子捕集フィルタ５４を再生する要求（フィルタ再生要求）が発生しているときに「１」に設定され、微粒子捕集フィルタ５４を再生する必要がないとき「０」に設定される。フィルタ再生要求フラグＸＰＭの操作については後述する（図８を参照。）。
【００９２】
いま、フィルタ再生要求フラグＸＰＭの値が「０」であると仮定する。この場合、ＣＰＵ７１はステップ７１０にて「Ｎｏ」と判定し、ステップ７２０に進んで上述した「通常空燃比フィードバック制御」を実行する。
【００９３】
より具体的に述べると、ＣＰＵ７１は、ステップ７２０において、メインフィードバック制御及びサブフィードバック制御の両方を実行する。この場合、メインフィードバック制御の上流側目標空燃比abyfrは理論空燃比stoichに設定され、サブフィードバック制御の下流側目標値Voxsrefは弱リッチ空燃比ＡＦＲに相当する値Vrichに設定される。上述したように、メインフィードバック制御は、上流側空燃比センサ６６の出力値Vabyfsに基づいて得られる上流側空燃比abyfsを上流側目標空燃比abyfrに一致させるフィードバック制御である。サブフィードバック制御は、下流側空燃比センサ６７の出力値Voxsを下流側目標値Voxsrefに一致させるフィードバック制御である。その後、ＣＰＵ７１はステップ７９５に進み、本ルーチンを一旦終了する。この結果、機関の空燃比は実質的に理論空燃比に一致する。即ち、下流側触媒５５に流入するガスの空燃比の平均は弱リッチ空燃比ＡＦＲに一致する。つまり、上流側空燃比abyfs及び下流側空燃比afdownに基づいて、機関に供給される混合気の空燃比が理論空燃比を含む所定の空燃比範囲内の空燃比となるように、機関の空燃比がフィードバック制御される。
【００９４】
ここで、上記通常空燃比フィードバック制御の実施態様について説明する。
【００９５】
（燃料噴射量の決定）
上述したように上流側触媒５３は酸素吸蔵機能を有する。従って、上流側触媒５３の上流の空燃比変化は所定の遅れ時間が経過した後に上流側触媒５３の下流の空燃比変化となって現れる。従って、サブフィードバック制御のみでは過渡的な空燃比変動を抑制することが困難である。そこで、第１制御装置のＣＰＵ７１は、上記メインフィードバック制御を実行し、過渡的な空燃比変動を抑制する。このとき、ＣＰＵ７１は、メインフィードバック制御とサブフィードバック制御との間に制御上の干渉が発生することがないように、以下に述べるようにメインフィードバック制御及びサブフィードバック制御を実行する。
【００９６】
ＣＰＵ７１は、エアフローメータ６１が計測している吸入空気量Ｇａと、クランクポジションセンサ６４の出力に基づいて得られる機関回転速度ＮＥと、ＲＯＭ７２が記憶しているテーブルMapMcと、に基づき今回の吸気行程を迎える気筒の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の（k）は、今回の吸気行程に対する値であることを示している。筒内吸入空気量Mc(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。筒内吸入空気量Mc(k)は機関１０の吸気通路における空気の挙動をモデル化した周知の空気量推定モデル（空気モデル）を用いて求められてもよい。
【００９７】
ＣＰＵ７１は、次に、下記（１）式に従って、機関の空燃比を上流側目標空燃比abyfr(k)に一致させるための「今回の吸気行程に対する基本燃料噴射量Fbase(k)」を求める。基本燃料噴射量Fbase(k)は各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。
Fbase(k)＝Mc(k)／abyfr(k)      …（１）
【００９８】
更に、ＣＰＵ７１は、下記（２）式に従って、基本燃料噴射量Fbase(k)と、別途求められているメインフィードバック補正値KFmainと、別途求められているサブフィードバック補正値Fisubと、を用いて今回の最終燃料噴射量Fi(k)を求める。最終燃料噴射量Fi(k)は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されていく。ＣＰＵ７１は、この最終燃料噴射量Fi(k)の燃料が、今回の吸気行程を迎える気筒のインジェクタ３９から噴射されるように、そのインジェクタ３９に対して噴射指示信号を送出する。
Fi(k)＝Fbase(k)・KFmain＋Fisub  …（２）
【００９９】
（サブフィードバック補正値の算出）
ＣＰＵ７１は、下記（３）式に従って、現時点の下流側目標値Voxsrefから同現時点の下流側空燃比センサ６７の出力値Voxsを減じることにより出力偏差量DVoxsを求める。
DVoxs＝Voxsref−Voxs  …（３）
【０１００】
そして、ＣＰＵ７１は、出力偏差量DVoxsに対して、下記（４）式の伝達関数Ｆ１（ｓ）により表されるローパスフィルタ（一次のデジタルフィルタ）処理を施し、ローパスフィルタ通過後出力偏差量DVoxslowを求める。（４）式において、ｓはラプラス演算子であり、τ1は時定数である。このローパスフィルタ処理は、周波数（１／τ1）以下の低周波数成分のみを通過させ、周波数（１／τ1）以上の高周波数成分が通過することを実質的に禁止する。
Ｆ１（ｓ）＝１／（１+τ1・s）  …（４）
【０１０１】
次いで、ＣＰＵ７１は、ローパスフィルタ通過後出力偏差量DVoxslowを下記（５）式に基づいて比例・積分・微分処理（ＰＩＤ処理）し、サブフィードバック補正値Fisubを求める。この（５）式において、Kpは予め設定された比例ゲイン（比例定数）、Kiは予め設定された積分ゲイン（積分定数）、Kdは予め設定された微分ゲイン（微分定数）である。また、SDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間積分値であり、DDVoxslowはローパスフィルタ通過後出力偏差量DVoxslowの時間微分値である。
Fisub＝Kp・DVoxslow＋Ki・SDVoxslow＋Kd・DDVoxslow  …（５）
【０１０２】
（メインフィードバック補正値の算出）
前述したように、上流側触媒５３は触媒機能及び酸素吸蔵機能を有している。従って、上流側触媒５３の上流の排ガスの空燃比の変動における「比較的周波数の高い高周波数成分（前記周波数１／τ1以上の高周波数成分）」及び「比較的周波数が低く且つ振幅が比較的小さい低周波数成分（前記周波数１／τ1以下の周波数にて変動するとともに理論空燃比からの偏移量が比較的小さい低周波成分）」は、上流側触媒５３の触媒機能及び酸素吸蔵機能により吸収されるから、上流側触媒５３の下流の排ガスの空燃比の変動として現れ難い。
【０１０３】
従って、例えば、排ガスの空燃比が前記周波数（１／τ1）以上の高周波数で大きく変動するような「過渡運転状態における空燃比の急変」に対する補償は、サブフィードバック制御により行われ得ない。それ故、「過渡運転状態における空燃比の急変」に対する補償を確実に行うためには、上流側空燃比センサ６６の出力値Vabyfsに基づいたメインフィードバック制御を行う必要がある。このメインフィードバック制御の結果として得られるメインフィードバック補正値は以下に述べるようにして求められる。
【０１０４】
ＣＰＵ７１は、上流側空燃比センサ６６の出力値Vabyfsと、図４に示したテーブルMapabyfsと、に基づいて、上流側空燃比センサ６６が検出している現時点の検出空燃比（上流側空燃比）abyfs(k)を求める。
【０１０５】
次に、ＣＰＵ７１は、各気筒の吸気行程に対応されながらＲＡＭ７３に記憶されている上流側目標空燃比abyfrのうち、現時点からＮストローク（Ｎ回の吸気行程）前の時点の上流側目標空燃比abyfrをＲＡＭ７３から読み出し、これを上流側目標空燃比abyfr(k-N)として設定する。ここで、添え字の（k-N）は、今回の吸気行程からＮストローク（４気筒エンジンにおいて、Ｎ・１８０°ＣＡ、ＣＡ；クランク角）前の吸気行程に対した値であることを示している。上流側目標空燃比abyfr(k-N)は、現時点からＮストローク前に吸気行程を迎えた気筒の基本燃料噴射量Fbase(k-N)（＝Mc(k-N)／abyfr(k-N)）を算出するために用いられた上流側目標空燃比である（上記（１）式を参照。）。なお、前述したように、通常空燃比フィードバック制御中において、上流側目標空燃比abyfrは理論空燃比stoichであるから、abyfr(k-N)とabyfr(k)とは等しい。
【０１０６】
ここで、前記値Ｎは、内燃機関１０の排気量及び燃焼室２５から上流側空燃比センサ６６までの距離等により異なる値である。このように、現時点からＮストローク前の上流側目標空燃比abyfr(k-N)をメインフィードバック補正値の算出に用いるのは、インジェクタ３９から噴射された燃料を含み且つ燃焼室２５内で燃焼された混合気が上流側空燃比センサ６６に到達するまでには、Ｎストロークに相当する無駄時間Ｌ１を要するからである。なお、値Ｎは、機関回転速度ＮＥが大きいほど小さくなり、且つ、機関の負荷（例えば、筒内吸入空気量Mc）が大きくなるほど小さくなるように変更されることが望ましい。
【０１０７】
更に、ＣＰＵ７１は、下記（６）式に基づいて、目標空燃比abyfr(k-N)から現時点の検出空燃比abyfs(k)を減じることにより、空燃比偏差Dafを求める。この空燃比偏差Dafは、Ｎストローク前の時点において筒内に供給された混合気の空燃比の「目標空燃比からの偏差」を表す量である。
Daf＝abyfr(k-N)−abyfs(k)  …（６）
【０１０８】
次いで、ＣＰＵ７１は、空燃比偏差Dafに対し、下記（７）式の伝達関数Ｆ２（ｓ）により表されるハイパスフィルタ処理を施すことにより、メインフィードバック制御用偏差DafHiを求める。（７）式において、ｓはラプラス演算子であり、τ1は時定数である。時定数τ1は上記ローパスフィルタ処理を表す伝達関数Ｆ１（ｓ）における時定数τ1と同一の時定数である。（７）式のハイパスフィルタ処理は、周波数（１／τ1）以上の高周波数成分のみを通過させ、周波数（１／τ1）以下の低周波数成分が通過することを実質的に禁止する。
Ｆ２（ｓ）＝{１−１／（１+τ1・s）}  …（７）
【０１０９】
そして、ＣＰＵ７１は、下記（８）式に従って、メインフィードバック制御用偏差DafHiを比例処理する。即ち、ＣＰＵ７１は、メインフィードバック制御用偏差DafHiに比例ゲインGpHiを乗じることにより、メインフィードバック補正値KFmainを求める。
KFmain＝１＋GpHi・DafHi  …（８）
【０１１０】
なお、ＣＰＵ７１は、下記（９）式に基いて、メインフィードバック制御用偏差DafHiを比例・積分処理（ＰＩ処理）することにより、メインフィードバック補正値KFmainを求めてもよい。（９）式において、Gphiは予め設定された比例ゲイン（比例定数）、Gihiは予め設定された積分ゲイン（積分定数）である。SDafHiはメインフィードバック制御用偏差DafHiの時間積分値である。
KFmain＝Gphi・DafHi＋Gihi・SDafHi  …（９）
【０１１１】
このように、第１制御装置のＣＰＵ７１は、メインフィードバック制御系とサブフィードバック制御系とを並列且つ独立に実行する。更に、前述したように、メインフィードバック制御用偏差DafHiは、空燃比偏差Dafにハイパスフィルタ処理を施した値であって上流側触媒５３の下流には現れない空燃比変動を反映した値である。従って、メインフィードバック補正値KFmainとサブフィードバック補正値Fisubとは、機関に供給される混合気の空燃比の変動を互いに干渉するように補正することがない。加えて、メインフィードバック制御により過渡運転状態における空燃比の急変が抑制され、サブフィードバック制御により「上流側触媒５３の下流の空燃比の変動として現れる緩やかな空燃比の偏移」が解消される。更に、サブフィードバック制御によって、「上流側空燃比センサ６６の特性ズレ」及び「上流側空燃比センサ６６の配設位置」等に起因する「空燃比の平均に対する検出誤差」により「機関に供給される混合気の空燃比の平均」がウインドウＷから外れてしまうことを回避することができる。
【０１１２】
この通常空燃比フィードバック制御により、上流側触媒５３及び下流側触媒５５に流入するガスの空燃比はウインドウＷの範囲内の理論空燃比近傍空燃比となるから、未燃物（ＨＣ，ＣＯ等）及び窒素酸化物（ＮＯｘ）は、高い浄化率にて浄化される。なお、このような空燃比フィードバック制御の詳細については、例えば、特開２００５−２７３５２４に開示されている。以上が、通常空燃比フィードバック制御の実施態様である。
【０１１３】
ところで、ＣＰＵ７１は図８にフローチャートにより示した「フィルタ再生要求判定ルーチン」を所定時間の経過毎に実行するようになっている。従って、ＣＰＵ７１は所定のタイミングにてステップ８００から処理を開始し、ステップ８１０に進んで「前回の空燃比強制振動制御（フィルタ再生制御）を終了してからの吸入空気量Ｇａの積算値ＳＧａ」が所定の閾値（フィルタ再生制御実行閾値）ＳＧａｔｈ以上となっているか否かを判定する。
【０１１４】
この積算値ＳＧａは所定時間Δｔｓの経過毎に実行される図示しない吸入空気量積算ルーチンにより更新されている。即ち、ＣＰＵ７１は、所定時間Δｔｓの経過毎に、その時点の積算値ＳＧａにその時点にてエアフローメータ６１により検出されている吸入空気量Ｇａを加えることにより、積算値ＳＧａを更新する。積算値ＳＧａはバックアップＲＡＭ７４内に格納される。機関１０の運転によって発生する微粒子の量は吸入空気量Ｇａが大きくなるほど大きくなるので、積算値ＳＧａは微粒子捕集フィルタ５４に捕集された微粒子の量を表す量となる。なお、積算値ＳＧａは空燃比強制振動制御（フィルタ再生制御）の実行が完了すると、吸入空気量積算ルーチンによって「０」に設定（クリア）されるようになっている。
【０１１５】
この時点において、積算値ＳＧａが閾値ＳＧａｔｈより小さいと、ＣＰＵ７１はステップ８１０からステップ８９５に直接進んで本ルーチンを一旦終了する。この結果、フィルタ再生要求フラグＸＰＭの値は「０」に維持されるので、通常空燃比フィードバック制御が続行され、空燃比強制振動制御は開始されない（図７のステップ７１０及びステップ７２０を参照。）。
【０１１６】
これに対し、図８のステップ８１０の処理時において、積算値ＳＧａが閾値ＳＧａｔｈ以上であると、ＣＰＵ７１はステップ８１０からステップ８２０に進んでフィルタ再生要求フラグＸＰＭの値を「１」に設定し、その後、ステップ８９５に進んで本ルーチンを一旦終了する。このとき、ＣＰＵ７１が図７のステップ７１０の処理を実行すると、ＣＰＵ７１はステップ７１０にて「Ｙｅｓ」と判定し、ステップ７３０に進んで前述した「空燃比強制振動制御（空燃比アクティブ制御、フィルタ再生制御）」を実行する。この空燃比強制振動制御は、前述した第１空燃比幅ΔafLと第２空燃比幅ΔafRとが実質的に等しいことから、空燃比対称アクティブ制御とも称呼される。
【０１１７】
より具体的に述べると、ＣＰＵ７１は、ステップ７３０において、メインフィードバック制御を実行し、且つ、サブフィードバック制御を中止する。この場合、ＣＰＵ７１は、下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリーン側の空燃比に対応する値となっていると（即ち、下流側空燃比センサ６７の出力値Voxsが理論空燃比相当値Voxsstより小さいと）、メインフィードバック制御の上流側目標空燃比abyfrを強制リッチ空燃比afenRに設定する。これに対し、この場合、ＣＰＵ７１は、下流側空燃比センサ６７の出力値Voxsが理論空燃比よりもリッチ側の空燃比に対応する値となっていると（即ち、下流側空燃比センサ６７の出力値Voxsが理論空燃比相当値Voxsstより大きいと）、メインフィードバック制御の上流側目標空燃比abyfrを強制リーン空燃比afenLに設定する。また、サブフィードバック制御は中止されるので、上述したサブフィードバック補正値Fisubは「０」に設定される（上記（２）式を参照。）。
【０１１８】
次いで、ＣＰＵ７１はステップ７４０に進んで強制振動制御実行フラグＸＡＣＴの値を「１」に設定し、ステップ７９５に進んで本ルーチンを一旦終了する。この強制振動制御実行フラグＸＡＣＴは、図示しないイグニッション・キー・スイッチがオフ位置からオン位置へと変更された際に実行されるイニシャルルーチンにて「０」に設定される。
【０１１９】
この状態が継続すると、ＣＰＵ７１は再び図７のステップ７００から処理を開始し、ステップ７１０にて「Ｙｅｓ」と判定してステップ７３０に進む。そして、ＣＰＵ７１は、その時点が、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていて、且つ、リッチ反転時点であると、上流側目標空燃比abyfrを強制リーン空燃比afenLに設定する。また、その時点が、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていて、且つ、リーン反転時点であると、上流側目標空燃比abyfrを強制リッチ空燃比afenRに設定する。更に、その時点が、リッチ反転時点及びリーン反転時点の何れでもなければ、ＣＰＵ７１はその時点において設定されている上流側目標空燃比abyfrを維持する。その後、ＣＰＵはステップ７４０及びステップ７９５に進み、本ルーチンを一旦終了する。
【０１２０】
その後、上述したステップ７３０の処理が繰り返される。以上の結果、図６に示した空燃比強制振動制御が実行される。従って、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されている間、機関１０から過剰な酸素が排出される。その酸素は、先ず、上流側触媒５３の酸素吸蔵量ＯＳＡ１を上流側触媒５３の最大酸素吸蔵量Ｃmax１に到達させるように上流側触媒５３によって吸蔵され、その後、微粒子捕集フィルタ５４に供給される。その結果、微粒子捕集フィルタ５４に捕集されていた微粒子が燃焼し、微粒子捕集フィルタ５４が再生される。
【０１２１】
また、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されている間、機関１０から過剰な未燃物が排出される。その未燃物は、上流側触媒５３に吸蔵されている酸素により浄化される。従って、上流側触媒５３の酸素吸蔵量ＯＳＡ１は「０」に到達する。その後、リッチ反転時点となるので、上流側目標空燃比abyfrが強制リーン空燃比afenLに再び設定される。
【０１２２】
このように空燃比強制振動制御中、機関１０には強制リーン空燃比afenLの混合気と強制リッチ空燃比afenRの混合気とが機関に交互に供給されるので、ある程度の時間幅における機関の空燃比の平均は理論空燃比近傍の値に一致する。この結果、機関から排出される窒素酸化物及び未燃物（ＨＣ，ＣＯ等）を上流側触媒５３及び下流側触媒５５により浄化することができる。
【０１２３】
更に、ＣＰＵ７１は図９に示した「最大酸素量差取得ルーチン」及び図１０に示した「微粒子捕集フィルタ異常判定ルーチン（フィルタ異常判定ルーチン）」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵ７１はステップ９００から処理を開始し、ステップ９０５に進んで強制振動制御実行フラグＸＡＣＴの値が「１」であるか否かを判定する。
【０１２４】
ここで、機関の始動後から一度も上述した空燃比強制振動制御が実行されていない（換言すると、フィルタ再生要求フラグＸＰＭの値が機関始動後から「０」に維持されたままである）と仮定する。この仮定下においては、図７のステップ７４０が実行されないから、強制振動制御実行フラグＸＡＣＴの値は「０」に維持されている。従って、ＣＰＵ７１はステップ９０５にて「Ｎｏ」と判定してステップ９１０に進み、変数（酸素量差サンプル数）ｎの値を「０」に設定する。そして、ＣＰＵ７１はステップ９９５に進み本ルーチンを一旦終了する。
【０１２５】
加えて、所定のタイミングになると、ＣＰＵ７１は図１０のステップ１０００から処理を開始し、ステップ１００５に進んで強制振動制御実行フラグＸＡＣＴの値が「１」であるか否かを判定する。前述した仮定に従うと、強制振動制御実行フラグＸＡＣＴの値は「０」である。従って、ＣＰＵ７１はステップ１００５にて「Ｎｏ」と判定してステップ１０９５に直接進み、本ルーチンを一旦終了する。
【０１２６】
このような状態において、図８のステップ８２０にてフィルタ再生要求フラグＸＰＭの値が「１」に変更されたと仮定する。この場合、ＣＰＵ７１は図７のステップ７１０、ステップ７３０及びステップ７４０を実行する。従って、強制振動制御実行フラグＸＡＣＴの値は「１」に変更される。
【０１２７】
このため、ＣＰＵ７１は図９のステップ９０５に進んだとき、同ステップ９０５にて「Ｙｅｓ」と判定してステップ９１５に進み、空燃比強制振動制御の１サイクルが経過したか否かを判定する。空燃比強制振動制御の１サイクルとは、例えば、図６のｔ１−ｔ３の期間に相当する期間である。即ち、空燃比強制振動制御の１サイクルとは、空燃比強制振動制御中において、下流側空燃比センサ６７の出力値Voxsにより示される空燃比が、リーン空燃比からリッチ空燃比へと変化した時点（前回のリッチ反転時）から、リッチ空燃比からリーン空燃比に変化し（前回のリーン反転時）、更に、リーン空燃比からリッチ空燃比へと変化した時点（今回のリッチ反転時）までの期間である。換言すると、ＣＰＵ７１は、ステップ９１５において、現時点が「前回のリッチ反転時点後においてリーン反転時点となり、更に、その後、今回のリッチ反転時点（最新のリッチ反転時点）となった時点」の直後であるか否かを判定する。このとき、現時点が最新のリッチ反転時の直後でなければ、ＣＰＵ７１はステップ９１５にて「Ｎｏ」と判定してステップ９９５に直接進み、本ルーチンを一旦終了する。
【０１２８】
この時点において、ＣＰＵ７１が図１０のステップ１０００から処理を開始すると、強制振動制御実行フラグＸＡＣＴの値は「１」であるから、ＣＰＵ７１はステップ１００５にて「Ｙｅｓ」と判定してステップ１０１０に進み、変数ｎの値が閾値（所定値）ｎｔｈ（閾値ｎｔｈは２又は３以上の整数）以上であるか否かを判定する。変数ｎの値は、図９のステップ９１０にて「０」に設定されたままである。従って、ＣＰＵ７１はステップ１０１０にて「Ｎｏ」と判定してステップ１０９５に直接進み、本ルーチンを一旦終了する。この流れは、変数ｎの値が閾値ｎｔｈ以上となるまで繰り返し実行される。
【０１２９】
このような状態が継続すると、空燃比強制振動制御により、空燃比強制振動制御の１サイクルが経過する。この場合、ＣＰＵ７１は図９のステップ９００及びステップ９０５に続くステップ９１５にて「Ｙｅｓ」と判定し、ステップ９２５に進んで現時点が空燃比強制振動制御を開始してから最初の１サイクルが経過した時点であるか否かを判定する。そして、現時点が空燃比強制振動制御を開始してから最初の１サイクルが経過した時点であれば、ＣＰＵ７１はステップ９３０に進んで変数ｎの値に「１」を設定する。これに対し、現時点が空燃比強制振動制御を開始してから最初の１サイクルが経過した時点でなければ（即ち、２サイクル目又はそれ以上のサイクルが経過した時点であれば）、ＣＰＵ７１はステップ９２５にて「Ｎｏ」と判定してステップ９３５に進み、変数ｎの値を「１」だけ増大する。これにより、変数ｎの値は空燃比強制振動制御を開始した後のサイクル数を示す。
【０１３０】
次に、ＣＰＵ７１はステップ９４０に進み、現時点までに経過した最新の１サイクル（例えば、図６の時刻ｔ１−ｔ３）内において、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていた期間（強制リーン空燃比設定中、例えば、図６の時刻ｔ１−ｔ２）の酸素吸蔵量OSAKZを読込み、且つ、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていた期間（強制リッチ空燃比設定中、例えば、図６の時刻ｔ２−ｔ３）の酸素脱離量OSADRを読込む。
【０１３１】
酸素吸蔵量OSAKZは、空燃比強制振動制御における連続する「一回の強制リーン空燃比設定中」において、機関１０から排出された酸素の過剰量の積分値である。換言すると、酸素吸蔵量OSAKZは、一回の強制リーン空燃比設定中において、上流側触媒５３に吸蔵された酸素の量と、微粒子捕集フィルタ５４において微粒子を燃焼させるために消費された酸素の量と、の和である。酸素吸蔵量OSAKZは、図示しないルーチンにおいて、以下の手法によって求められる。
【０１３２】
（ステップ１）ＣＰＵ７１は、所定時間（計算周期tsample）の経過毎に、下記（１０）式に基いて酸素吸蔵量の変化量ΔOSAKZを算出する。この（１０）式において、値「０．２３」は大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間（計算周期tsample）内の燃料噴射量Ｆｉの合計量（計算周期tsample内において機関１０に供給された燃料の総量）である。stoichは理論空燃比（例えば、１４．７）である。abyfsは所定時間tsampleにおいて上流側空燃比センサ６６により測定された空燃比である。なお、abyfsは計算周期tsample内の上流側空燃比センサ６６により検出された空燃比の平均値に置換してもよい。
ΔOSAKZ＝０．２３・ｍｆｒ・（abyfs − stoich）    …（１０）
【０１３３】
（ステップ２）ＣＰＵ７１は、下記（１１）式に基づいて変化量ΔOSAKZを時点ｔａから時点ｔｂまでの間（即ち、強制リーン空燃比設定期間）において積算（時間積分）することにより酸素吸蔵量OSAKZを算出する。積算の開始時点ｔａは前回のリッチ反転時点（例えば、現時点が図６の時刻ｔ３とすると時刻ｔ１）であり、積算の終了時点ｔｂは前回のリーン反転時点（例えば、図６の時刻ｔ２）である。
酸素吸蔵量OSAKZ＝ΣΔOSAKZ（区間ｔ＝ｔａ〜ｔｂ）          …（１１）
【０１３４】
酸素脱離量OSADRは、空燃比強制振動制御における連続する「一回の強制リッチ空燃比設定中」において、機関１０から排出された酸素の不足量の積分値である。換言すると、酸素脱離量OSADRは、一回の強制リッチ空燃比設定中において、上流側触媒５３から未燃物（HC、CO等）を酸化するために放出された（上流側触媒５３から脱離した）酸素の量である。酸素脱離量OSADRは、図示しないルーチンにおいて、以下の手法によって求められる。
【０１３５】
（ステップ１）ＣＰＵ７１は、所定時間（計算周期tsample）の経過毎に、下記（１２）式に基いて酸素吸蔵量の変化量ΔOSADRを算出する。この（１２）式の右辺の各変数は上記（１）に関して述べたとおりである。この場合においても、abyfsは計算周期tsample内の上流側空燃比センサ６６により検出された空燃比の平均値に置換してもよい。
ΔOSADR＝０．２３・ｍｆｒ・（stoich − abyfs）    …（１２）
【０１３６】
（ステップ２）ＣＰＵ７１は、下記（１３）式に基づいて変化量ΔOSADRを時点ｔｂから時点ｔｃまでの間（即ち、強制リッチ空燃比設定期間）において積算（時間積分）することにより酸素脱離量OSADRを算出する。積算の開始時点ｔｂは前回のリーン反転時点（例えば、図６の時刻ｔ２）である。積算の終了時点ｔｃは今回のリッチ反転時点（例えば、図６の時刻ｔ３）である。
酸素脱離量OSADR＝ΣΔOSADR（区間ｔ＝ｔｂ〜ｔｃ）          …（１３）
【０１３７】
再び、図９を参照すると、ＣＰＵ７１はステップ９４０に続いてステップ９４５に進み、酸素吸蔵量OSAKZから酸素脱離量OSADRを減じることによって最新の１サイクルにおける酸素量差DOSAを求める。次に、ＣＰＵ７１はステップ９５０に進み、変数ｎの値が「１」であるか否かを判定する。このとき、変数ｎの値が「１」であると、ＣＰＵ７１はステップ９５０にて「Ｙｅｓ」と判定してステップ９５５に進み、酸素量差DOSAの最大値である最大酸素量差DOSAmaxに上記ステップ９４５にて得られた酸素量差DOSAを格納する。その後、ＣＰＵ７１はステップ９７０に進む。
【０１３８】
これに対し、変数ｎの値が「１」でなければ、ＣＰＵ７１はステップ９５０にて「Ｎｏ」と判定してステップ９６０に進み、上記ステップ９４５にて得られた酸素量差DOSAがその時点の最大酸素量差DOSAmaxより大きいか否かを判定する。そして、酸素量差DOSAが最大酸素量差DOSAmaxより小さければＣＰＵ７１はステップ９７０に直接進む。一方、酸素量差DOSAが最大酸素量差DOSAmaxより大きければ、ＰＵ７１はステップ９６０にて「Ｙｅｓ」と判定してステップ９６５に進み、最大酸素量差DOSAmaxに上記ステップ９４５にて得られた酸素量差DOSAを格納する。その後、ＣＰＵ７１はステップ９７０に進む。このように、ステップ９５０乃至ステップ９６５は、一回の空燃比強制振動制御における酸素量差DOSAの最大値（最大酸素量差）DOSAmaxを求めるためのステップである。
【０１３９】
その後、ＣＰＵ７１はステップ９７０にて、酸素吸蔵量OSAKZの値を「０」に設定するとともに、酸素脱離量OSADRの値を「０」に設定し、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１４０】
以降、空燃比強制振動制御が継続されると変数ｎの値が閾値ｎｔｈに到達する（図９のステップ９３５を参照。）。このとき、ＣＰＵ７１が図１０のステップ１０００から処理を開始すると、ＣＰＵ７１はステップ１０００に続くステップ１０１０にて「Ｙｅｓ」と判定し、ステップ１０１５に進んで最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上であるか否かを判定する。
【０１４１】
ところで、前述したフィルタ再生要求は微粒子捕集フィルタ５４に相当量の微粒子が捕集されたと考えられる時点にて発生する（図８を参照。）。つまり、微粒子捕集フィルタ５４に相当量の微粒子が捕集されたと考えられる時点にて、図８のステップ８２０によってフィルタ再生要求フラグＸＰＭの値が「１」に設定され、それにより図７のステップ７３０（空燃比強制振動制御）が実行される。従って、空燃比強制振動制御によって微粒子捕集フィルタ５４の再生が正常に進めば、強制リーン空燃比設定中において相当量の微粒子が燃焼し、それに応じた酸素が消費されるはずである。微粒子捕集フィルタ５４の再生が正常に進むとは、微粒子捕集フィルタ５４が破損等しておらず、相当量の微粒子を捕集していることを含む。
【０１４２】
更に、前述したように、酸素吸蔵量OSAKZは、一回の強制リーン空燃比設定中において、上流側触媒５３に吸蔵された酸素の量と、微粒子捕集フィルタ５４において微粒子を燃焼させるために消費された酸素の量と、の和である。この強制リーン空燃比の設定は、リッチ反転時点に行われる。リッチ反転時点において、上流側触媒５３の酸素吸蔵量ＯＳＡ１は「０」である。また、この強制リーン空燃比の設定は、リーン反転時点にて終了する。リーン反転時点において、上流側触媒５３の酸素吸蔵量ＯＳＡ１は最大酸素吸蔵量Ｃmax１である。よって、酸素吸蔵量OSAKZに合算されている（含まれている）上流側触媒５３に吸蔵された酸素の量は、上流側触媒５３の最大酸素吸蔵量Ｃmax１と等しい。
【０１４３】
一方、前述したように、酸素脱離量OSADRは、一回の強制リッチ空燃比設定中において、上流側触媒５３から未燃物（HC、CO等）を酸化するために上流側触媒５３から脱離した酸素の量である。この強制リッチ空燃比の設定はリーン反転時点に行われ、リッチ反転時点にて終了する。前述したように、上流側触媒５３の酸素吸蔵量ＯＳＡ１は、リーン反転時点において最大酸素吸蔵量Ｃmax１であり、リッチ反転時点において「０」である。従って、酸素脱離量OSADRは、上流側触媒５３の最大酸素吸蔵量Ｃmax１と等しい。
【０１４４】
これらのことから、空燃比強制振動制御の１サイクル（前回のリッチ反転時点から今回のリッチ反転時点まで）における酸素量差DOSAは、その１サイクルにおいて微粒子捕集フィルタ５４内にて燃焼した微粒子の量を表す。従って、空燃比強制振動制御によって微粒子捕集フィルタ５４の再生が正常に進めば、複数のサイクルにおける酸素量差DOSAの最大値（即ち、最大酸素量差DOSAmax）は正常判定閾値SEIJOth以上となるはずである。
【０１４５】
そこで、ＣＰＵ７１は、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上である場合、
ステップ１０１５にて「Ｙｅｓ」と判定してステップ１０２０に進み、微粒子捕集フィルタ５４の再生が正常に行われたと判定する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「１」に、フィルタ再生異常フラグＸＩＪＯの値を「０」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定する。これらのフラグの値は空燃比強制振動制御が実行される毎に、実行された空燃比強制振動制御に対応されながら、バックアップＲＡＭ７４内に格納される。また、これらのフラグの値は、図示しない電気制御装置７０の外部接続端子から外部の測定器に取り出され得るように構成されている。
【０１４６】
フィルタ再生正常フラグＸＳＥＩは、その値が「１」であるとき、微粒子捕集フィルタ５４の再生が正常に行われたこと（微粒子捕集フィルタ５４が正常であることを含む）を示す。
フィルタ再生異常フラグＸＩＪＯは、その値が「１」であるとき、微粒子捕集フィルタ５４の再生が正常に行われなかったこと（微粒子捕集フィルタ５４が異常であることを含む）を示す。
フィルタ再生判定保留フラグＸＨＲＹは、その値が「１」であるとき、微粒子捕集フィルタの再生が正常に行われたのか異常であったのかを判定できない（判定を保留すべき）状態にあることを示す。
【０１４７】
次に、ＣＰＵ７１はステップ１０２５に進み、図９のステップ９４５にて得られている最新の酸素量差DOSAが（空燃比）強制振動制御終了閾値（制御完了閾値、フィルタ再生制御完了閾値）KANth以下となっているか否かを判定する。現時点は、ステップ１０１５及びステップ１０２０にてフィルタ再生が正常であったと判定された後である。このように、フィルタ再生が正常に進行すると、微粒子捕集フィルタ５４に捕集されていた微粒子の殆どが燃焼するから、微粒子捕集フィルタ５４内に残存する微粒子の量は減少し、その結果、空燃比強制振動制御の１サイクルにおいて燃焼する微粒子の量も減少する。従って、最新の酸素量差DOSAが強制振動終了判定閾値KANth以下となっていれば、殆どの微粒子が燃焼しており、よって、空燃比強制振動制御を終了しても良いと判断することができる。
【０１４８】
いま、フィルタ再生が正常に行われ、微粒子捕集フィルタ５４に捕集されていた微粒子の殆どが燃焼したと仮定する。この場合、最新の酸素量差DOSAは強制振動終了判定閾値KANth以下となる。従って、ＣＰＵ７１はステップ１０２５にて「Ｙｅｓ」と判定してステップ１０３０に進み、過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているか否かを判定する。このステップ１０３０は、燃焼が完全に終了していることを確認するためのステップであり、省略することができる。
【０１４９】
そして、過去Ｎサイクル（空燃比制御サイクル最新のＮサイクル、Ｎは２以上の整数）内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、ＣＰＵ７１はステップ１０３０にて「Ｙｅｓ」と判定してステップ１０３５に進み、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定し、ステップ１０９５に進んで本ルーチンを一旦終了する。この結果、ＣＰＵ７１は図７のステップ７１０にて「Ｎｏ」と判定してステップ７２０に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
【０１５０】
これに対し、フィルタ再生が正常に行われていても、微粒子捕集フィルタ５４に捕集されていた微粒子が相当量残存していると、最新の酸素量差DOSAが強制振動終了判定閾値KANthより大きいか、又は、過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下とはならない。このような場合、ＣＰＵ７１はステップ１０２５及びステップ１０３０の何れかにおいて「Ｎｏ」と判定し、ステップ１０９５に直接進んで本ルーチンを一旦終了する。この結果、空燃比強制振動制御が継続される。その後、過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となると、上述したように空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
【０１５１】
以上は、フィルタ再生が正常に行われた場合についての作動である。これに対し、フィルタ再生が正常に行われていないと仮定する。この場合、最大酸素量差DOSAmaxは、正常判定閾値SEIJOth以上とならず、且つ、正常判定閾値SEIJOthより小さい異常判定閾値IJOthより小さくなる。従って、ＣＰＵ７１が図１０のステップ１０００から処理を開始すると、ＣＰＵ７１はステップ１０００に続くステップ１０１０にて「Ｙｅｓ」と判定し、ステップ１０１５にて「Ｎｏ」と判定し、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定するステップ１０４０にて「Ｙｅｓ」と判定してステップ１０４５に進む。
【０１５２】
そして、ＣＰＵ７１はステップ１０４５にて、微粒子捕集フィルタ５４の再生状態が異常であると判定する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「１」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１０５０に進み、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定し、ステップ１０９５に進んで本ルーチンを一旦終了する。この結果、ＣＰＵ７１は図７のステップ７１０にて「Ｎｏ」と判定してステップ７２０に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。これは、微粒子捕集フィルタ５４に何らかの異常が発生しているのであるから、空燃比強制振動制御をこれ以上継続して微粒子捕集フィルタ５４の再生を継続することは無駄となるからである。
【０１５３】
ところで、ステップ１０４０にて最大酸素量差DOSAmaxが異常判定閾値IJOth以上であると判定される場合（即ち、最大酸素量差DOSAmaxが、正常判定閾値SEIJOthと異常判定閾値IJOthとの間の値である場合）、ＣＰＵ７１はステップ１０４０にて「Ｎｏ」と判定してステップ１０５５に進み、微粒子捕集フィルタ５４の再生状態を正常であるとも異常であるとも判定できなかったと判断する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「０」に、フィルタ再生判定保留フラグＸＨＲＹの値を「１」に設定する。
【０１５４】
次いで、ＣＰＵ７１は前述したステップ１０２５以降に進み、今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、ステップ１０３５に進む。この結果、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
【０１５５】
以上、説明したように、第１制御装置は、取得される上流側空燃比abyfs及び取得される下流側空燃比afdown（又はVoxs）に基づいて機関に供給される混合気の空燃比が「理論空燃比を含む所定の空燃比範囲（ウインドウＷ）内の空燃比」となるように、機関の空燃比をフィードバック制御するフィードバック制御手段を備えている（図７のステップ７２０を参照。）。従って、第１制御装置は、機関１０から排出される未燃物及び窒素酸化物を上流側触媒５３及び下流側触媒５５により高い効率にて浄化させることができる。
【０１５６】
更に、第１制御装置は、フィルタ再生要求が発生したと判定されたとき（フィルタ再生要求フラグＸＰＭの値が「１」に設定されたとき）、上記フィードバック制御手段によるフィードバック制御を中止するとともに、機関の空燃比を「理論空燃比よりもリッチ側の空燃比（ウインドウＷを超える強制リッチ空燃比）」と「理論空燃比よりもリーン側の空燃比（ウインドウＷを超える強制リーン空燃比）」とに交互に変更する（振動させる）空燃比強制振動制御手段（図６のステップ７１０及びステップ７３０を参照。）を備えている。
【０１５７】
これによれば、フィルタ再生要求が発生したと判定されたときに実行される空燃比強制振動制御中において、機関の空燃比が上流側触媒５３のウインドウＷを超える強制リーン空燃比に設定されたとき、多量且つ過剰な酸素が機関から排出され、微粒子捕集フィルタ５４に流入する。この結果、微粒子捕集フィルタ５４には酸素が供給されるので、微粒子捕集フィルタ５４に捕集されていた微粒子が燃焼して微粒子捕集フィルタ５４が再生される。
【０１５８】
更に、空燃比強制振動制御中、機関１０には強制リーン空燃比の混合気と強制リッチ空燃比の混合気とが機関に交互に供給される。加えて、強制リーン空燃比から強制リッチ空燃比への切換え時点は「リーン反転時点」であり、且つ、強制リッチ空燃比から強制リーン空燃比への切換え時点は「リッチ反転時点」である。従って、ある程度の時間幅における機関の空燃比の平均は理論空燃比近傍の値となる。この結果、機関１０から排出される窒素酸化物及び未燃物を上流側触媒５３及び下流側触媒５５により、ある程度浄化することができる。それ故、第１制御装置は、機関の空燃比を単純にリーン空燃比に設定する場合に比較して、エミッションを良好にしながら、微粒子捕集フィルタ５４を再生させることができる。
【０１５９】
更に、第１制御装置は、
（１）前記空燃比強制振動制御中であり且つ前記機関の空燃比が前記強制リーン空燃比に設定されている第１期間において前記機関から排出された酸素の過剰量の総量を酸素吸蔵量OSAKZとして取得し（図９のステップ９４０、上記（１０）式及び（１１）式を参照。）、
（２）前記空燃比強制振動制御中であり且つ同第１期間に連続する期間であって前記機関の空燃比が前記強制リッチ空燃比に設定されている第２期間において前記機関から排出された酸素の不足量の総量を酸素脱離量OSADRとして取得し（図９のステップ９４０、上記（１２）式及び（１３）式を参照。）、
（３）その取得された酸素吸蔵量OSAKZとその取得された酸素脱離量OSADRとに基づいて微粒子捕集フィルタ５４の再生状態を特定する（図９のステップ９４５、図１０のステップ１０１０〜ステップ１０２０、ステップ１０４０〜ステップ１０５５を参照。）、
フィルタ再生状態特定手段を備えている。
【０１６０】
より具体的に述べると、前記フィルタ再生状態特定手段は、
空燃比強制振動制御中の第１期間において取得された酸素吸蔵量OSAKZから、その第１期間に続く（連続する、直後の）第２期間において取得された酸素脱離量OSADRを減じた量である酸素量差DOSA（実際には、所定数のサイクル内における酸素量差DOSAの最大値である最大酸素量差DOSAmax）が正常判定閾値SEIJOthより大きいか否かを判定し、酸素量差DOSAが正常判定閾値SEIJOthより大きいと判定されたときに微粒子捕集フィルタ５４の再生が正常に実行されたと判定する正常判定手段（図１０のステップ１０１５及びステップ１０２０）を含むように構成されている。
【０１６１】
上述したように、酸素量差DOSAは微粒子捕集フィルタ５４における酸素の消費量、即ち、微粒子捕集フィルタ５４において燃焼した微粒子の量を表す量である。更に、微粒子捕集フィルタ５４内において捕集されていた微粒子が正常に燃焼すれば、相当量の酸素が消費されるはずである。従って、酸素量差DOSA（実際には最大酸素量差DOSAmax）が正常判定閾値SEIJOthより大きくなったと判定されたときには、微粒子捕集フィルタ５４の再生が正常に実行されたと判定することができる。
【０１６２】
更に、前記空燃比強制振動制御手段は、
前記正常判定手段が前記微粒子捕集フィルタ５４の再生が正常に実行されたと判定した後において（図１０のステップ１０２０を参照。）、酸素量差DOSAのうちの最新の値が強制振動終了判定閾値KANthより小さいか否かを判定し（図１０のステップ１０２５を参照。）、最新の酸素量差DOSAが強制振動終了判定閾値KANthより小さいと判定されたときに前記空燃比強制振動制御を終了するように構成されている（図１０のステップ１０３５を参照。）。
【０１６３】
微粒子捕集フィルタ５４の再生が正常に行われれば、空燃比強制振動制御の後期において燃焼する微粒子の量は低下するはずである。従って、上記構成のように最新の酸素量差DOSAが強制振動終了判定閾値KANthより小さいと判定されたときには、微粒子捕集フィルタ５４の再生が完了したと判断できる。この結果、空燃比強制振動制御を適切なタイミングにて終了することができる。
【０１６４】
また、前記空燃比強制振動制御は、前記第１期間と前記第２期間とからなる空燃比制御サイクルを複数サイクルに渡って実行するように構成されていて、
前記フィルタ再生状態特定手段は、前記空燃比強制振動制御中、
前記空燃比制御サイクルの各サイクルにおいて、「前記第１期間において取得された酸素吸蔵量OSAKZ」から「前記第２期間において取得された酸素脱離量OSADR」を減じた量である「酸素量差DOSA」を取得し、「各サイクルに対して取得された複数の酸素量差のうちの最大値、即ち、最大酸素量差DOSAmax」が異常判定閾値IJOthより小さいか否かを判定し（図９のステップ９４０〜ステップ９６５、及び、図１０のステップ１０４０を参照。）、最大値DOSAmaxが異常判定閾値IJOthより小さいと判定されたときに微粒子捕集フィルタ５４の再生が正常に実行されていないと判定する異常判定手段を含んでいる（図１０のステップ１０４５を参照。）。
【０１６５】
空燃比強制振動制御は、前記フィルタ再生要求が発生したと判定されたとき（フィルタ再生要求フラグＸＰＭの値が「０」から「１」に変更されたとき）、実行される。従って、前述したように、微粒子捕集フィルタ５４の再生が正常に行われれば酸素量差DOSAは正常判定閾値SEIJOthより大きくなる。換言すると、空燃比強制振動制御中に得られる酸素量差DOSAのうちの最大値である最大酸素量差DOSAmaxが、異常判定閾値（正常判定閾値より小さい値）IJOthより小さければ、微粒子捕集フィルタ５４の再生が正常に実行されていないと判定することができる。
【０１６６】
（第１制御装置の変形例）
次に、第１制御装置の変形例について説明する。この変形例は、ＣＰＵ７１が図８に代えて図１１に示した「フィルタ再生要求判定ルーチン」を所定時間の経過毎に実行する点のみにおいて、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
【０１６７】
所定のタイミングになると、ＣＰＵ７１はステップ１１００から処理を開始し、以下に述べるステップ１１１０及びステップ１１２０の処理を順に行い、ステップ１１３０に進む。
【０１６８】
ステップ１１１０：現時点の上流側空燃比センサ６６の出力値Vabyfsに基づいて得られる現時点の検出空燃比abyfsと、ステップ１１１０内に示したマップと、に基づいて係数ｋ１を求める。このマップによれば、検出空燃比abyfsが理論空燃比ＳＴから遠ざかるほど係数ｋ１が大きくなる。特に、検出空燃比abyfsが理論空燃比ＳＴよりリッチ側の領域において理論空燃比ＳＴからある量Δだけ遠ざかる場合、検出空燃比abyfsが理論空燃比ＳＴよりリーン側の領域において理論空燃比ＳＴからある量Δだけ遠ざかる場合よりも係数ｋ１はより大きくなる。このように係数ｋ１を定めるのは、吸入空気量Ｇａが一定であったとしても、機関の空燃比が理論空燃比ＳＴから乖離するほど、更には、機関の空燃比がリッチ側の空燃比になるほど、機関１０から発生する微粒子の量が増大することに依拠している。
【０１６９】
ステップ１１２０：ＣＰＵ７１は、現時点の微粒子捕集量ＳＰＭ（微粒子捕集フィルタ５４に捕集されている微粒子の量（総量）の推定値）に、上記係数ｋ１と現時点においてエアフローメータ６１が計測している吸入空気量Ｇａとの積（ｋ１・Ｇａ）を加えた値を、新たな微粒子捕集量ＳＰＭとして設定する。この微粒子捕集量ＳＰＭはバックアップＲＡＭ７４内に格納される。
【０１７０】
次に、ＣＰＵ７１は、ステップ１１３０に進み、前記ステップ１１２０にて更新（推定）された微粒子捕集量ＳＰＭが閾値（空燃比強制振動制御開始閾値）ＳＰＭｔｈ以上であるか否かを判定する。このとき、微粒子捕集量ＳＰＭが閾値ＳＰＭｔｈより小さければ、ＣＰＵ７１はステップ１１３０にて「Ｎｏ」と判定してステップ１１５０に直接進む。この結果、フィルタ再生要求フラグＸＰＭの値は「０」に維持されるので、通常空燃比フィードバック制御が続行され、空燃比強制振動制御は開始されない（図７のステップ７１０及びステップ７２０を参照。）。
【０１７１】
これに対し、粒子捕集量ＳＰＭが閾値ＳＰＭｔｈ以上であれば、ＣＰＵ７１は図１１のステップ１１３０にて「Ｙｅｓ」と判定してステップ１１４０に進んでフィルタ再生要求フラグＸＰＭの値を「１」に設定し、その後、ステップ１１５０に進む。この結果、ＣＰＵ７１が図７のステップ７１０の処理を実行すると、ＣＰＵ７１はステップ７１０にて「Ｙｅｓ」と判定し、ステップ７３０に進んで前述した「空燃比強制振動制御（空燃比アクティブ制御、フィルタ再生制御）」を実行する。
【０１７２】
次に、ＣＰＵ７１は図１１のステップ１１５０にて、空燃比強制振動制御が終了した直後であるか否かを判定する。ＣＰＵ７１は、空燃比強制振動制御が終了した直後である場合、ステップ１１５０にて「Ｙｅｓ」と判定してステップ１１６０に進み、微粒子捕集量ＳＰＭの値を「０」に設定し、ステップ１１９５に進んで本ルーチンを一旦終了する。これに対し、空燃比強制振動制御が終了した直後でない場合、ＣＰＵ７１はステップ１１５０にて「Ｎｏ」と判定してステップ１１９５に直接進み、本ルーチンを一旦終了する。このステップ１１５０及びステップ１１６０の処理は、空燃比強制振動制御により微粒子捕集フィルタ５４に捕集されていた微粒子が燃焼したことに基づく処理である。
【０１７３】
この変形例によれば、微粒子捕集量ＳＰＭがより精度良く推定される。従って、この変形例は、第１制御装置に比較して、より適切なタイミングにて空燃比強制振動制御を実行することができるので、より適切なタイミングにて微粒子捕集フィルタ５４の再生を行うことができる。
【０１７４】
（第２実施形態）
次に、本発明の第２実施形態に係る内燃機関の制御装置（以下、「第２制御装置」とも称呼する。）について説明する。第２制御装置は、第１制御装置のＣＰＵ７１が実行するルーチンのうちの図７に示したルーチンを図１２に示したルーチンに置換した点のみにおいて、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図１２において図７に示したステップと同一の処理を行うためのステップには、図７のそのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０１７５】
所定のタイミングになると、ＣＰＵ７１は図１２のステップ１２００から処理を開始し、ステップ７１０に進んでフィルタ再生要求フラグＸＰＭの値が「１」であるか否かを判定する。フィルタ再生要求フラグＸＰＭの値が「０」であれば、ＣＰＵ７１はステップ７１０にて「Ｎｏ」と判定してステップ７２０に進み、上述した「通常空燃比フィードバック制御」を実行する。
【０１７６】
これに対し、フィルタ再生要求フラグＸＰＭの値が「１」であると、ＣＰＵ７１はステップ７１０にて「Ｙｅｓ」と判定してステップ１２１０に進み、「空燃比強制振動制御（空燃比アクティブ制御、フィルタ再生制御）」を実行する。この空燃比強制振動制御は、、空燃比非対称アクティブ制御とも称呼される。
【０１７７】
より具体的に述べると、このステップ１２１０により実行される空燃比強制振動制御（空燃比非対称アクティブ制御）は、設定される強制リッチ空燃比afenR及び強制リーン空燃比afenLが、第１制御装置による空燃比強制振動制御（空燃比対称アクティブ制御）中に設定される強制リッチ空燃比afenR及び強制リーン空燃比afenLとそれぞれ異なる点のみにおいて、第１制御装置による空燃比強制振動制御と相違している。
【０１７８】
即ち、図６に示したように、第１制御装置による空燃比強制振動制御において、強制リーン空燃比afenLと理論空燃比stoichとの差である第１空燃比幅ΔafLは、理論空燃比stoichと強制リッチ空燃比afenRとの差である第２空燃比幅ΔafRと略等しい。これに対し、図１３及び下記の（１４）式に示したように、第２制御装置による空燃比強制振動制御において、強制リーン空燃比afenLと理論空燃比stoichとの差である第３空燃比幅ΔafLL（ΔafLL＞０）は、理論空燃比stoichと強制リッチ空燃比afenRとの差である第４空燃比幅ΔafRS（ΔafRS＞０）よりも所定値だけ大きい。
ΔafLL＝afenL−stoich＞ΔafRS＝stoich−afenR    …（１４）
【０１７９】
換言すると、第１制御装置による空燃比対称アクティブ制御において機関の空燃比（実際は、上流側目標空燃比abyfr）は振幅がＡＣ１／２であり且つ振動中心が略理論空燃比となるように振動させられる。これに対し、第２制御装置による空燃比非対称アクティブ制御において機関の空燃比（実際は、上流側目標空燃比abyfr）は振幅がＡＣ２／２であり且つ振幅中心が理論空燃比よりもリーン側となるように振動させられる。
【０１８０】
即ち、第２制御装置の空燃比非対称アクティブ制御においては、上流側目標空燃比abyfr（結果として、機関の空燃比）は、理論空燃比stoichに対して実質的に非対称な波形を有する空燃比となる。この場合、第３空燃比幅ΔafLLが第４空燃比幅ΔafRSに対して相当量だけ大きく設定されているので、微粒子捕集フィルタ５４内における微粒子の燃焼により酸素が消費されるにも関わらず、機関の空燃比が強制リーン空燃比afenLに制御される期間（リッチ反転時からリーン反転時までのリッチ期間、例えば、図１３の時刻ｔ１−ｔ２）は、機関の空燃比が強制リッチ空燃比afenRに制御される期間（リーン反転時からリッチ反転時までの期間、例えば、時刻ｔ２−ｔ３）よりも短くなる。
【０１８１】
この結果、図１４から理解されるように、第２制御装置は、空燃比強制振動制御中において機関１０から排出される微粒子の量（排出微粒子量）を第１制御装置の空燃比強制振動制御中の排出微粒子量よりも低下させることができる（図１４における矢印ＤＮを参照。）。この理由は以下の通りである。
【０１８２】
排出微粒子量は、吸入空気量が一定である場合、機関の空燃比が理論空燃比よりもリッチ側である場合の方が理論空燃比よりもリーン側の空燃比である場合より多くなる。更に、排出微粒子量は、機関の空燃比が理論空燃比から遠ざかるほど多くなる。従って、空燃比強制振動制御における空燃比の振幅の中心を理論空燃比に一致させて機関の空燃比を振動させた場合（図１４の幅ＡＣ１を参照。）より、空燃比の振幅の中心を理論空燃比よりもリーン側の空燃比に一致させて機関の空燃比を振動させた場合（図１４の幅ＡＣ２を参照。）の方が排出微粒子量は少なくなる。
【０１８３】
更に、図１５から理解されるように、微粒子捕集フィルタ５４内に捕集されている微粒子は、機関の空燃比がよりリーン側の空燃比に設定されることに基づいて、より多くの酸素が微粒子捕集フィルタ５４に供給されるほど、より高い効率で燃焼する。一方、第２制御装置の空燃比強制振動制御における強制リーン空燃比afenLは、第１制御装置の空燃比強制振動制御における強制リーン空燃比afenLよりも、よりリーン側である。以上のことから、第２制御装置は、第１制御装置よりも効率良く微粒子を燃焼させることができる（図１５における矢印ＵＰを参照。）。それ故、第２制御装置は、空燃比強制振動制御を短時間内に終了させ、その空燃比強制振動制御よりもエミッションが良好となるフィードバック制御の期間を長くすることができる。
【０１８４】
（第３実施形態）
次に、本発明の第３実施形態に係る内燃機関の制御装置（以下、「第３制御装置」とも称呼する。）について説明する。第３制御装置は、第１制御装置（又は第２制御装置）の機能に加え、上流側触媒５３が劣化しているか否かを判定する機能（触媒劣化判定機能）を備えている点のみにおいて、第１制御装置（又は第２制御装置）と相違している。従って、以下、この相違点を中心として説明を加える。
【０１８５】
第３制御装置は、第１制御装置のＣＰＵ７１が実行するルーチンのうちの図９及び図１０に示したルーチンを図１６及び図１７に示したルーチンにそれぞれ置換した点のみにおいて、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図１６及び図１７において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０１８６】
図１６に示した最大酸素量差取得ルーチンは、図９に示したルーチンに対して、ステップ１６１０及びステップ１６２０が追加されている。ステップ１６１０はステップ９３０とステップ９４０の間に挿入されている。ステップ１６２０は、ステップ９５５の次に、又はステップ９６０にて「Ｎｏ」と判定されたときに、又は、ステップ９６５の次に、実行される位置であって、ステップ９７０の直前に設けられている。
【０１８７】
従って、ＣＰＵ７１は、図１６のステップ９２５にて、現時点が空燃比強制振動制御を開始してから最初の１サイクルが経過した時点であると判定すると、ステップ９３０に進んで変数ｎの値に「１」を設定し、更に、ステップ１６１０に進んで酸素脱離量積算値SDRを「０」に設定する。即ち、酸素脱離量積算値SDRは、空燃比強制振動制御の２サイクル目が始まる時点にて「０」に設定される。
【０１８８】
更に、ＣＰＵ７１は、図１６のステップ９５０〜９６５の処理によって最大酸素量差DOSAmaxを更新した後にステップ１６２０に進み、その時点の酸素脱離量積算値SDRに先のステップ９４０にて読み込んだ最新の酸素脱離量OSADRを加えた値を、新たな酸素脱離量積算値SDRとして格納する。但し、ＣＰＵ７１は、変数ｎの値が「１」のときには、ステップ１６２０にて酸素脱離量積算値SDRを「０」に設定しておく。
【０１８９】
以上により、ＣＰＵ７１は、空燃比強制振動制御の２サイクル目以降の各サイクル（前回のリーン反転時点から今回（最新）のリーン反転時点まで）における酸素脱離量OSADRの合計値を、酸素脱離量積算値SDRとして取得する。
【０１９０】
図１７に示したフィルタ異常判定ルーチンは、図１０に示したルーチンに対して、ステップ１７１０が２箇所に追加されている。ステップ１７１０のうちの一つは、ステップ１０３５とステップ１７９５との間に挿入され、ステップ１７１０のうちの他の一つは、ステップ１０５０とステップ１７９５との間に挿入されている。
【０１９１】
従って、ＣＰＵ７１は、図１７のステップ１０２５及びステップ１０３０において、今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっていると判定した場合、ステップ１０３５に進んで強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定する。次いで、ＣＰＵ７１はステップ１７１０に進み、上流側触媒５３の劣化判定処理（便宜上、「触媒劣化判定１」と称呼する。）を実行する。
【０１９２】
即ち、ＣＰＵ７１はステップ１７１０に進むと、その詳細を示した図１８の「触媒劣化判定１ルーチン」の処理をステップ１８００から開始する。次に、ＣＰＵ７１はステップ１８１０に進み、酸素脱離量積算値SDRを変数ｎ−１（変数ｎは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素脱離量積算値SDRに積算された酸素脱離量OSADRのサンプル数＋１である。）で除することによって、上流側触媒５３の最大酸素吸蔵量Ｃmax１を求める。換言すると、第３制御装置は、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値を上流側触媒５３の最大酸素吸蔵量Ｃmax１として取得する。
【０１９３】
そして、ＣＰＵ７１はステップ１８２０に進み、先のステップ１８１０にて求められた最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxth以下であるか否かを判定する。このとき、最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxth以下であれば、ＣＰＵ７１は「上流側触媒５３が劣化している」と判定し、ステップ１８３０に進んで上流側触媒劣化フラグＸＲの値を「１」に設定する。これに対し、最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxthより大きければ、ＣＰＵ７１は「上流側触媒５３は劣化していない」と判定し、ステップ１８４０に進んで上流側触媒劣化フラグＸＲの値を「０」に設定する。その後、ＣＰＵ７１はステップ１８９５を介して図１７のステップ１７９５へと進む。
【０１９４】
加えて、ＣＰＵ７１は図１７のステップ１０４５にて、フィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「１」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定し、更に、ステップ１０５０にて、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定した後においてもステップ１７１０に進み、図１８の「触媒劣化判定１ルーチン」の処理を行う。即ち、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値を上流側触媒５３の最大酸素吸蔵量Ｃmax１として取得し、その最大酸素吸蔵量Ｃmax１と触媒劣化判定閾値Ｃmaxthとの比較に基づいて上流側触媒５３が劣化しているか否かを判定する。
【０１９５】
以上、説明したように、第３制御装置もフィルタ再生状態特定手段（図１７を参照。）を備える。そのフィルタ再生状態特定手段は、酸素吸蔵量OSAKZに基づくことなく酸素脱離量OSADRに基づいて（即ち、酸素脱離量OSADRのみを用いて）上流側触媒５３の最大酸素吸蔵量Ｃmax１を取得するとともに（図１６のステップ９３０、ステップ９３５、ステップ１６１０、ステップ９４０、ステップ１６２０、図１７のステップ１７１０及び図１８のステップ１８１０を参照。）、その取得された最大酸素吸蔵量Ｃmax１に基づいて上流側触媒５３が劣化しているか否かを判定する触媒劣化判定手段を含んでいる（図１７のステップ１７１０及び図１８を参照。）。
【０１９６】
上述したように、酸素吸蔵量OSAKZは、微粒子捕集フィルタ５４内における微粒子の燃焼により消費された酸素の量と、上流側触媒５３に吸蔵された酸素の量と、の和である。従って、酸素吸蔵量OSAKZは、微粒子捕集フィルタ５４内において燃焼した微粒子の量に依存して変化するので、上流側触媒５３の最大酸素吸蔵量Ｃmax１を正確に表していない場合がある。これに対し、酸素脱離量OSADRは、上流側触媒５３から脱離した（未燃物を酸化させるために未燃物に供給された）酸素の量である。即ち、酸素脱離量OSADRは微粒子捕集フィルタ５４内において燃焼した微粒子及び微粒子捕集フィルタ５４内に残存する微粒子の量に依存せず、上流側触媒５３の最大酸素吸蔵量Ｃmax１を精度良く表す。
【０１９７】
従って、第３制御装置のように、酸素脱離量OSADRに基づいて求められた上流側触媒５３の最大酸素吸蔵量Ｃmax１に基づいて、上流側触媒５３が劣化しているか否かを判定することにより、上流側触媒５３が劣化しているか否かを精度良く判定することができる。更に、これによれば、微粒子捕集フィルタ５４の再生と、重要な制御項目である上流側触媒５３の劣化判定とを同時に実行することができる。なお、第３制御装置は、酸素脱離量OSADRの平均値（ステップ１８１０を参照。）に基づいて上流側触媒５３の最大酸素吸蔵量Ｃmax１を取得しているが、空燃比強制振動制御中のあるサイクルにおける酸素脱離量OSADRを上流側触媒５３の最大酸素吸蔵量Ｃmax１として取得してもよい。
【０１９８】
（第４実施形態）
次に、本発明の第４実施形態に係る内燃機関の制御装置（以下、「第４制御装置」とも称呼する。）について説明する。第４制御装置は、第３制御装置のＣＰＵ７１が実行するルーチンのうちの図１６及び図１７に示したルーチンを図１９及び図２０に示したルーチンにそれぞれ置換した点のみにおいて、第３制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図１９及び図２０（更に、図２１）において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０１９９】
図１９に示した最大酸素量取得ルーチンは、図１６のステップ１６１０をステップ１９１０に置換するとともに、図１６のステップ１６２０をステップ１９２０に置換した点のみにおいて、図１６に示したルーチンと相違している。
【０２００】
従って、ＣＰＵ７１は、図１９のステップ９２５にて、現時点が空燃比強制振動制御を開始してから最初の１サイクルが経過した時点であると判定すると、ステップ９３０に進んで変数ｎの値に「１」を設定し、更に、ステップ１９１０に進んで酸素脱離量積算値SDRを「０」に設定するとともに、酸素吸蔵量積算値SKZを「０」に設定する。即ち、酸素脱離量積算値SDR及び酸素吸蔵量積算値SKZは、空燃比強制振動制御の２サイクル目が始まる時点にて共に「０」に設定される。
【０２０１】
更に、ＣＰＵ７１は、図１９のステップ９５０〜９６５の処理によって最大酸素量差DOSAmaxを更新した後にステップ１９２０に進み、
・その時点の酸素脱離量積算値SDRに先のステップ９４０にて読み込んだ最新の酸素脱離量OSADRを加えた値を、新たな酸素脱離量積算値SDRとして格納し、且つ、
・その時点の酸素吸蔵量積算値SKZに先のステップ９４０にて読み込んだ最新の酸素吸蔵量OSAKZを加えた値を、新たな酸素吸蔵量積算値SKZとして格納する。
但し、ＣＰＵ７１は、変数ｎの値が「１」のときには、ステップ１９２０にて酸素脱離量積算値SDRを「０」に設定し、且つ、酸素吸蔵量積算値SKZを「０」に設定する。
【０２０２】
以上により、ＣＰＵ７１は、空燃比強制振動制御の２サイクル目以降の各サイクル（前回のリーン反転時点から今回（最新）のリーン反転時点まで）における酸素脱離量OSADRの合計値及び酸素吸蔵量OSAKZの合計値を、酸素脱離量積算値SDR及び酸素吸蔵量積算値SKZとしてそれぞれ取得する。
【０２０３】
図２０に示したフィルタ異常判定ルーチンは、図１７のステップ１０５０に続くステップ１７１０を、図２０のステップ１０５０に続くステップ２０１０に置換した点のみにおいて、図１７に示したルーチンと相違している。
【０２０４】
従って、ＣＰＵ７１は、図２０のステップ１０４０において最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいと判定すると、ステップ１０４５に進んでフィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「１」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定する。更に、ＣＰＵ７１は、ステップ１０５０にて、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定し、ステップ２０１０に進んで上流側触媒５３の劣化判定処理（便宜上、「触媒劣化判定２」と称呼する。）を実行する。
【０２０５】
即ち、ＣＰＵ７１はステップ２０１０に進むと、その詳細を示した図２１の「触媒劣化判定２ルーチン」の処理をステップ２１００から開始する。次に、ＣＰＵ７１はステップ２１１０に進み、酸素脱離量積算値SDRを変数ｎ−１（変数ｎは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素脱離量積算値SDRに積算された酸素脱離量OSADRのサンプル数＋１である。）で除することによって、酸素脱離量平均値DRavを算出する。次に、ＣＰＵ７１はステップ２１２０に進み、同様に、酸素吸蔵量積算値SKZを変数ｎ−１（変数ｎは、終了しようとしている今回の空燃比強制振動制御のサイクル数であって、酸素吸蔵量積算値SKZに積算された酸素吸蔵量OSAKZのサンプル数＋１である。）で除することによって、酸素吸蔵量平均値KZavを算出する。
【０２０６】
次に、ＣＰＵ７１はステップ２１３０に進み、酸素脱離量平均値DRavと酸素吸蔵量平均値KZavとの平均値を求め、その平均値を上流側触媒５３の最大酸素吸蔵量Ｃmax１として格納する。換言すると、第４制御装置は、空燃比強制振動制御中に得られた複数の酸素脱離量OSADRの平均値と、空燃比強制振動制御中に得られた複数の酸素吸蔵量OSAKZの平均値と、の平均値を上流側触媒５３の最大酸素吸蔵量Ｃmax１として取得する。
【０２０７】
そして、ＣＰＵ７１はステップ２１４０に進み、先のステップ２１３０にて求められた最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxth以下であるか否かを判定する。このとき、最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxth以下であれば、ＣＰＵ７１は「上流側触媒５３が劣化している」と判定し、ステップ２１５０に進んで上流側触媒劣化フラグＸＲの値を「１」に設定する。これに対し、最大酸素吸蔵量Ｃmax１が触媒劣化判定閾値Ｃmaxthより大きければ、ＣＰＵ７１は「上流側触媒５３は劣化していない」と判定し、ステップ２１６０に進んで上流側触媒劣化フラグＸＲの値を「０」に設定する。その後、ＣＰＵ７１はステップ２１９５を介して図２０のステップ２０９５へと進む。
【０２０８】
以上、説明したように、第４制御装置もフィルタ再生状態特定手段（図２０を参照。）を備える。そのフィルタ再生状態特定手段は、酸素量差DOSAが所定値以下であるか否かを判定し（実際には、図２０のステップ１０４０にて最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定し）、酸素量差DOSAが所定値以下である場合、酸素吸蔵量OSAKZと酸素脱離量OSADRとに基づいて上流側触媒５３の最大酸素吸蔵量Ｃmax１を取得する（図１９のステップ１９２０及び図２１のステップ２１１０〜ステップ２１３０等を参照。）。そして、第４制御装置は、その取得された最大酸素吸蔵量Ｃmax１に基づいて上流側触媒５３が劣化しているか否かを判定する触媒劣化判定手段を含んでいる（図２０のステップ２１４０〜ステップ２１６０を参照。）。
【０２０９】
酸素量差DOSAが所定値IJOth以下である場合、上流側触媒５３及び微粒子捕集フィルタ５４に流入した酸素は微粒子捕集フィルタ５４内において殆ど消費されていないことを意味する。従って、この場合には、上記第４制御装置のように、酸素吸蔵量OSAKZと酸素脱離量OSADRとに基づいて上流側触媒５３の最大酸素吸蔵量Ｃmax１を取得するとともに、その取得された最大酸素吸蔵量Ｃmax１に基づいて上流側触媒５３が劣化しているか否かを判定することができる。これにより、最大酸素吸蔵量Ｃmax１を「酸素吸蔵量OSAKZと酸素脱離量OSADRとの両者」を用いてより精度良く求めることができる（最大酸素吸蔵量Ｃmax１を求めるためのデータ数が増大する）ので、上流側触媒５３が劣化しているか否かを精度良く判定することができる。なお、第４制御装置は、酸素脱離量OSADRの平均値である酸素脱離量平均値DRav（ステップ２１１０を参照。）と、酸素吸蔵量OSAKZの平均値である酸素吸蔵量平均値KZavとに基づいて上流側触媒５３の最大酸素吸蔵量Ｃmax１を取得しているが（ステップ２１３０を参照。）、空燃比強制振動制御中のあるサイクルにおける酸素脱離量OSADRと酸素吸蔵量OSAKZとの平均値を上流側触媒５３の最大酸素吸蔵量Ｃmax１として取得してもよい。
【０２１０】
（第５実施形態）
次に、本発明の第５実施形態に係る内燃機関の制御装置（以下、「第５制御装置」とも称呼する。）について説明する。第５制御装置は、第１制御装置のＣＰＵ７１が実行するルーチンのうちの図１０に示したルーチンを図２２に示したルーチンに置換した点のみにおいて、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。なお、図２２において既に説明したステップと同一の処理を行うためのステップには、そのようなステップに付された符号と同一の符号が付されている。これらのステップについての詳細な説明は省略される。
【０２１１】
所定のタイミングになると、ＣＰＵ７１は図２２のステップ２２００から処理を開始し、ステップ７１０に進んで強制振動制御実行フラグＸＡＣＴの値が「１」であるか否かを判定する。強制振動制御実行フラグＸＡＣＴの値が「１」でなければ、ＣＰＵ７１はステップ７１０にて「Ｎｏ」と判定し、ステップ２２９５に直接進んで本ルーチンを一旦終了する。
【０２１２】
一方、強制振動制御実行フラグＸＡＣＴの値が「１」に設定されていると、ＣＰＵ７１はステップ７１０にて「Ｙｅｓ」と判定してステップ２２１０に進み、空燃比強制振動制御開始後の吸入空気量Ｇａの積算値ＳＧａを読み込む。
【０２１３】
この積算値ＳＧａは所定時間Δｔｓの経過毎に実行される図示しない吸入空気量積算ルーチンにより更新されている。即ち、ＣＰＵ７１は、所定時間Δｔｓの経過毎に、その時点の積算値ＳＧａにその時点にてエアフローメータ６１により検出されている吸入空気量Ｇａ（又はΔｔｓ・Ｇａであってもよい。）を加えることにより、積算値ＳＧａを更新する。更に、ＣＰＵ７１は、空燃比強制振動制御が実行されていないとき（即ち、通常空燃比フィードバック制御中）、積算値ＳＧａを常に「０」に設定する。その結果、積算値ＳＧａは、空燃比強制振動制御開始後の吸入空気量Ｇａの積算値となる。
【０２１４】
次に、ＣＰＵ７１はステップ２２２０に進み、積算値ＳＧａが所定値（フィルタ再生状態判定実行閾値）ＳＧａｔｈより小さいか否かを判定する。
【０２１５】
いま、空燃比強制振動制御を開始した後であって、積算値ＳＧａが所定値ＳＧａｔｈよより小さいと仮定する。この場合、ＣＰＵ７１はステップ２２２０にて「Ｙｅｓ」と判定しステップ１０１５に進み、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上であるか否かを判定する。そして、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上である場合、ＣＰＵ７１はステップ１０１５にて「Ｙｅｓ」と判定してステップ１０２０に進み、微粒子捕集フィルタ５４の再生が正常に行われたと判定する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「１」に、フィルタ再生異常フラグＸＩＪＯの値を「０」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定する。これらのフラグの値はバックアップＲＡＭ７４内に格納される。
【０２１６】
次に、ＣＰＵ７１は、前述したステップ１０２５以降に進み、今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となっているとき、フィルタ再生要求フラグＸＰＭの値及び強制振動制御実行フラグＸＡＣＴの値を共に「０」に設定することによって、空燃比強制振動制御を終了し且つ通常空燃比フィードバック制御を再開する（図２２のステップ１０２５〜ステップ１０３５、図７のステップ７１０及びステップ７２０を参照。）。
【０２１７】
これに対し、ステップ１０１５の判定時において、最大酸素量差DOSAmaxが正常判定閾値SEIJOthより小さければ、ＣＰＵ７１はステップ１０１５にて「Ｎｏ」と判定し、ステップ２２９５に直接進んで本ルーチンを一旦終了する。
【０２１８】
ところで、上記ステップ２２２０の所定値（フィルタ再生状態判定実行閾値）ＳＧａｔｈは、吸入空気量の積算値ＳＧａが所定値ＳＧａｔｈに到達するまでに、微粒子捕集フィルタ５４内において微粒子が十分に燃焼する機会があるように定められている。換言すると、所定値ＳＧａｔｈは、微粒子捕集フィルタ５４の再生が正常である限り、積算値ＳＧａが所定値ＳＧａｔｈに到達するまでに、
・最大酸素量差DOSAmaxが正常判定閾値SEIJOthより大きくなることにより微粒子捕集フィルタ５４の再生が正常であったとの判定がなされ（ステップ１０１５及びステップ１０２０を参照。）、且つ、
・今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となることにより、空燃比強制振動制御が終了される（ステップ１０２５〜ステップ１０３５を参照。）、
であろう値に設定されている。
【０２１９】
換言すると、微粒子捕集フィルタ５４の再生状態が正常ではない場合、吸入空気量の積算値ＳＧａが所定値ＳＧａｔｈに到達するまでに、最大酸素量差DOSAmaxが正常判定閾値SEIJOthより大きくならない。従って、ステップ１０３５が実行されることがないので、空燃比強制振動制御中において吸入空気量の積算値ＳＧａが所定値ＳＧａｔｈに到達する。
【０２２０】
この場合、ＣＰＵ７１はステップ２２２０に進んだとき、同ステップ２２２０にて「Ｎｏ」と判定してステップ１０４０に進み、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さいか否かを判定する。そして、最大酸素量差DOSAmaxが異常判定閾値IJOthより小さければ、ＣＰＵ７１はステップ１０４０にて「Ｙｅｓ」と判定してステップ１０４５に進み、微粒子捕集フィルタ５４の再生状態が異常であると判定する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「１」に、フィルタ再生判定保留フラグＸＨＲＹの値を「０」に設定する。
【０２２１】
次いで、ＣＰＵ７１はステップ１０５０に進み、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定し、ステップ２２９５に進んで本ルーチンを一旦終了する。この結果、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される（図７のステップ７１０及びステップ７２０を参照。）。これは、微粒子捕集フィルタ５４に何らかの異常が発生しているのであるから、空燃比強制振動制御を継続して微粒子捕集フィルタ５４の再生を継続することは無駄となるからである。
【０２２２】
一方、ＣＰＵ７１がステップ１０４０に進んだとき、最大酸素量差DOSAmaxが異常判定閾値IJOth以上であると、ＣＰＵ７１はステップ１０４０にて「Ｎｏ」と判定してステップ２２３０に進み、フィルタ再生正常フラグＸＳＥＩの値が「１」であるか否かを判定する。即ち、今回の空燃比強制振動制御の開始後から吸入空気量の積算値ＳＧａが所定値ＳＧａｔｈに到達するまでに、今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下とはならなかったが、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上となり、微粒子捕集フィルタ５４の再生が正常であると判定されていたか否かを判定する。
【０２２３】
そして、フィルタ再生正常フラグＸＳＥＩの値が「１」であれば、ＣＰＵ７１はステップ２２３０にて「Ｙｅｓ」と判定してステップ１０５０に直接進み、空燃比強制振動制御を終了する。これに対し、フィルタ再生正常フラグＸＳＥＩの値が「０」であれば、ＣＰＵ７１はステップ２２３０にて「Ｎｏ」と判定してステップ１０５５に進み、微粒子捕集フィルタ５４の再生状態を正常であるとも異常であるとも判定できなかったと判断する。即ち、ＣＰＵ７１はフィルタ再生正常フラグＸＳＥＩの値を「０」に、フィルタ再生異常フラグＸＩＪＯの値を「０」に、フィルタ再生判定保留フラグＸＨＲＹの値を「１」に設定する。その後、ＣＰＵ７１はステップ１０５０に進み、空燃比強制振動制御を終了するための処理を行う（図７のステップ７１０及びステップ７２０を参照。）。
【０２２４】
以上、説明したように、第５制御装置は、空燃比強制振動制御を開始した後であって吸入空気量の積算値ＳＧａが所定値ＳＧａｔｈに到達するまでに、最大酸素量差DOSAmaxが正常判定閾値SEIJOth以上となることに基づいて微粒子捕集フィルタ５４の再生が正常であると判定された場合には、今回及び過去Ｎサイクル内の酸素量差DOSAの総てが強制振動終了判定閾値KANth以下となったときに空燃比強制振動制御を終了して通常空燃比フィードバック制御を再開するように構成されている。これにより、空燃比強制振動制御が必要以上に実行され続けることが回避される。この結果、通常空燃比フィードバック制御が実行される期間を長くすることができるので、エミッションを良好にすることができる。
【０２２５】
（第６実施形態）
次に、本発明の第６実施形態に係る内燃機関の制御装置（以下、「第６制御装置」とも称呼する。）について説明する。第６制御装置は、第１制御装置等における酸素吸蔵量OSAKZの算出方法を変更することにより、空燃比強制振動制御中において微粒子捕集フィルタ５４内で燃焼した微粒子の量をより正確に表す酸素量差DOSA（DOSA＝OSAKZ−OSADR）を算出する点のみにおいて、第１制御装置等と相違している。
【０２２６】
より具体的に述べると、第６制御装置は、上述した（１０）式乃至（１３）式に基づいて酸素吸蔵量OSAKZ及び酸素脱離量OSADRを算出する代わりに、図２３にフローチャートにより示したルーチンを所定時間（計算周期tsample）の経過毎に実行することに基づいてこれらの算出を行う。より詳細には、第６制御装置は、酸素吸蔵量OSAKZの算出方法を第１制御装置による算出方法から変更し、酸素脱離量OSADRの算出方法は第１制御装置による算出方法と同一の方法を用いている。
【０２２７】
ＣＰＵ７１は、所定のタイミングになるとステップ２３００から処理を開始し、ステップ２３０５に進んで強制振動制御実行フラグＸＡＣＴの値が「１」であるか否かを判定する。このとき、強制振動制御実行フラグＸＡＣＴの値が「０」であると、ＣＰＵ７１はステップ２３０５にて「Ｎｏ」と判定し、ステップ２３９５に直接進んで本ルーチンを一旦終了する。
【０２２８】
一方、現時点において強制振動制御実行フラグＸＡＣＴの値が「１」であると、ＣＰＵ７１はステップ２３０５にて「Ｙｅｓ」と判定し、ステップ２３１０に進んで現時点における上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されているか否かを判定する。
【０２２９】
ここで、現時点における上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されていると仮定する。この場合、ＣＰＵ７１はステップ２３１０にて「Ｙｅｓ」と判定し、以下に述べるステップ２３１５乃至ステップ２３３５の処理を順に行い、ステップ２３９５に進んで本ルーチンを一旦終了する。
【０２３０】
ステップ２３１５：ＣＰＵ７１は、微粒子捕集フィルタ５４に流入するガスの温度（以下、「フィルタ流入ガス温度」と称呼する。）TempPMを、現時点の機関回転速度ＮＥ、現時点の機関負荷KL（吸入空気量Ｇａ又はアクセルペダル操作量Accpでもよい。）及び現時点の点火時期ＡigをテーブルMapTempPM(NE,KL,Ａig)に適用することにより推定する。テーブルMapTempPM(NE,KL,Ａig)は、予め実験により求められ、ＲＯＭ７２内に格納されている。なお、微粒子捕集フィルタ５４の排ガスの流入口に温度センサを配設し、ＣＰＵ７１はその温度センサの出力に基づいてフィルタ流入ガス温度TempPMを取得してもよい。
【０２３１】
ステップ２３２０：ＣＰＵ７１は、上記ステップ２３１５にて取得されたフィルタ流入ガス温度TempPMをステップ２３２０内に示した「フィルタ流入ガス温度TempPMと温度補正係数Ktpmとの関係を示すテーブル」に適用することにより、温度補正係数Ktpmを決定する。このテーブルによれば、フィルタ流入ガス温度TempPMが所定温度T0以下の場合、温度補正係数Ktpmは略０に設定される。所定温度T0は微粒子捕集フィルタ５４に酸素が供給された状態において微粒子が燃焼することができる最低の温度である。また、このテーブルによれば、フィルタ流入ガス温度TempPMが所定温度T0よりも大きくなるほど、温度補正係数Ktpmは大きくなるように設定される。これは、微粒子捕集フィルタ５４の温度が高いほど、微粒子の燃焼効率が大きくなることに基づいている。
【０２３２】
ステップ２３２５：ＣＰＵ７１は、上流側空燃比センサ６６が検出している現時点の検出空燃比（上流側空燃比）abyfsを、ステップ２３２５内に示した「上流側空燃比abyfsと流入ガス空燃比補正係数（以下、単に「空燃比補正係数」とも称呼する。）Kafとの関係を示すテーブル」に適用することにより、空燃比補正係数Kafを決定する。このテーブルによれば、上流側空燃比abyfsが理論空燃比stoichよりもリッチ側の空燃比である場合、空燃比補正係数Kafは０に設定される。上流側空燃比abyfsが理論空燃比stoichよりもリッチ側の空燃比であると、微粒子捕集フィルタ５４に酸素が供給されないので、微粒子は燃焼しないからである。また、空燃比補正係数Kafは、上流側空燃比abyfsが理論空燃比stoichよりもリーンな空燃比になるほど（空燃比が大きくなるほど）、大きくなるように決定される。これは、微粒子捕集フィルタ５４内に捕集されている微粒子は、微粒子捕集フィルタ５４に「ある一定の酸素量の酸素」が供給された場合であっても、その酸素濃度が高いほど効率良く燃焼することに基づく。換言すると、微粒子捕集フィルタ５４に流入するガスの空燃比が大きくなる（よりリーンなガスである）ほど、機関１０から排出された過剰の酸素のうち、より多くの酸素が微粒子を燃焼させるために使用され、より少ない酸素が上流側触媒５３に吸蔵されることに基づく。
【０２３３】
ステップ２３３０：ＣＰＵ７１は、下記（１５）式に従って、酸素吸蔵量の変化量ΔOSAKZを算出する。（１５）式において、値「０．２３」は大気中に含まれる酸素の重量割合である。ｍｆｒは所定時間（計算周期tsample）内の燃料噴射量Ｆｉの合計量（計算周期tsample内において機関１０に供給された燃料の総量）である。stoichは理論空燃比（例えば、１４．７）である。abyfsは計算周期（所定時間）tsampleにおいて上流側空燃比センサ６６により測定された空燃比である。なお、abyfsは計算周期tsample内の上流側空燃比センサ６６により検出された空燃比の平均値に置換してもよい。
ΔOSAKZ＝Ktpm・Kaf・｛０．２３・ｍｆｒ・（abyfs − stoich）｝    …（１５）
【０２３４】
ステップ２３３５：ＣＰＵ７１は、現時点の酸素吸蔵量OSAKZに、上記ステップ２３３０にて求められた酸素吸蔵量の変化量ΔOSAKZ（又は、ΔOSAKZ・tsampleであってもよい。）を加えた値を、酸素吸蔵量OSAKZとして設定する。
【０２３５】
このような処理は、上流側目標空燃比abyfrが強制リーン空燃比afenLに設定されている間、繰り返し実行される。更に、酸素吸蔵量OSAKZは、空燃比強制振動制御の１サイクル（前回のリッチ反転時点〜今回のリッチ反転時点）が経過した直後において「０」に設定される（図９のステップ９１５及びステップ９７０を参照。）従って、ＣＰＵ７１は、ステップ２３１５乃至ステップ２３３５の処理により、空燃比強制振動制御の１サイクルにおける酸素吸蔵量OSAKZを下記（１６）式に従って求めることになる。（１６）式における積算の開始時点ｔａは前回のリッチ反転時点であり、積算の終了時点ｔｂは前回のリーン反転時点である。
酸素吸蔵量OSAKZ＝ΣΔOSAKZ（区間ｔ＝ｔａ〜ｔｂ）          …（１６）
【０２３６】
一方、現時点が空燃比強制振動制御中であって上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されていると仮定する。この場合、ＣＰＵ７１はステップ２３１０にて「Ｎｏ」と判定し、以下に述べるステップ２３４０乃至ステップ２３４５の処理を順に行い、ステップ２３９５に進んで本ルーチンを一旦終了する。
【０２３７】
ステップ２３４０：ＣＰＵ７１は、上記（１２）式と同一の式である下記（１７）式に従って、酸素脱離量の変化量ΔOSADRを算出する。（１７）式における各値は上記（１２）式における各値と同一である。
ΔOSADR＝０．２３・ｍｆｒ・（stoich − abyfs）    …（１７）
【０２３８】
ステップ２３４５：ＣＰＵ７１は、現時点の酸素脱離量OSADRに、上記ステップ２３４０にて求められた酸素脱離量の変化量ΔOSADR（又は、ΔOSADR・tsampleであってもよい。）を加えた値を、酸素脱離量OSADRとして設定する。
【０２３９】
このような処理は、上流側目標空燃比abyfrが強制リッチ空燃比afenRに設定されている間、繰り返し実行される。更に、酸素脱離量OSADRは、空燃比強制振動制御の１サイクル（前回のリッチ反転時点〜今回のリッチ反転時点）が経過した直後において「０」に設定される（図９のステップ９１５及びステップ９７０を参照。）従って、ＣＰＵ７１は、ステップ２３４０及びステップ２３４５の処理により、空燃比強制振動制御の１サイクルにおける酸素脱離量OSADRを上記（１３）式と同一の式である下記（１８）式に従って求めることになる。（１８）式における積算の開始時点ｔｂは前回のリーン反転時点であり、積算の終了時点ｔｃは今回のリッチ反転時点である。
酸素脱離量OSADR＝ΣΔOSADR（区間ｔ＝ｔｂ〜ｔｃ）          …（１８）
【０２４０】
以上、説明したように、第６制御装置は、
空燃比強制振動制御中の第１期間（上流側目標空燃比が強制リーン空燃比afenLに設定されている期間）における酸素吸蔵量OSAKZを、「所定時間あたりに機関１０から排出された酸素の過剰量（０．２３・ｍｆｒ・（abyfs − stoich）)」を、
・微粒子捕集フィルタの温度に対応する温度（フィルタ流入ガス温度TempPM）及び
・微粒子捕集フィルタ５４に流入するガスの空燃比（上流側空燃比センサ６６が検出している現時点の検出上流側空燃比abyfs）、
に応じて補正した量を、第１期間に渡って積算することにより、算出するように構成されている（図２３を参照。）。
【０２４１】
この結果、算出される酸素吸蔵量OSAKZは、機関１０から排出された過剰の酸素のうちの微粒子の燃焼に使用された量（機関１０から排出された過剰の酸素のうち上流側触媒５３に吸蔵された酸素ではない酸素の量）をより精度良く表す。その結果、酸素量差DOSA及び最大酸素量差DOSAmaxが、燃焼した微粒子の量をより精度良く表す値となるので、微粒子捕集フィルタ５４の再生が正常に行われたのか、異常であったのか、をより精度良く判定することができる。
【０２４２】
なお、ステップ２３１５及びステップ２３２０におけるフィルタ流入ガス温度は、微粒子捕集フィルタ５４の温度の代用値であるから、微粒子捕集フィルタ５４内の温度（微粒子捕集フィルタ５４の床温）を検出する温度センサを配設し、その温度センサから取得される温度により置換してもよい。
【０２４３】
（第７実施形態）
次に、本発明の第７実施形態に係る内燃機関の制御装置（以下、「第７制御装置」とも称呼する。）について説明する。第７制御装置は、空燃比強制振動制御中（微粒子捕集フィルタの再生中）において微粒子捕集フィルタ５４の温度が異常高温になると予想される場合に空燃比強制振動制御を直ちに終了する機能が追加さている点のみにおいて、第１制御装置と相違している。従って、以下、この相違点を中心として説明を加える。
【０２４４】
第７制御装置のＣＰＵ７１は、第１制御装置のＣＰＵ７１が実行するルーチンを実行するようになっている。但し、第７制御装置のＣＰＵ７１は、図９に示したルーチンのステップ９４５とステップ９５０との間に、図２４に示した「微粒子捕集フィルタ過熱防止ルーチン」を実行するようになっている。
【０２４５】
より具体的に説明すると、第７制御装置のＣＰＵ７１は、図９のステップ９４５にて空燃比強制振動制御中の１サイクル内における酸素量差DOSAを取得した後、図２４のステップ２４１０に進み、その時点にてエアフローメータ６１により検出されている吸入空気量Ｇａを読み込む。この吸入空気量Ｇａは、排気温度が高いほど大きくなり、従って、微粒子捕集フィルタ５４の温度に応じて大きくなる。換言すると、吸入空気量Ｇａは、微粒子捕集フィルタ５４の温度が高いほど大きくなる「フィルタ温度対応値」として取得される。
【０２４６】
次いで、ＣＰＵ７１は、ステップ２４２０に進み、上記ステップ２４１０にて読み込んだ吸入空気量Ｇａを、吸入空気量Ｇａと異常高温判定閾値（過熱判定閾値）Ｄｔｈとの関係を定めたステップ２４２０のブロック内に示したテーブルに適用することにより、異常高温判定閾値Ｄｔｈを決定する。このテーブルによれば、吸入空気量Ｇａが大きいほど異常高温判定閾値Ｄｔｈが小さくなるように定められる。この理由につては後述する。
【０２４７】
次に、ＣＰＵ７１はステップ２４３０に進み、図９のステップ９４５にて求められている酸素量差DOSAが上記ステップ２４２０にて決定された異常高温判定閾値Ｄｔｈ以上であるか否かを判定する。そして、酸素量差DOSAが異常高温判定閾値Ｄｔｈ以上であると、ＣＰＵ７１は微粒子捕集フィルタ５４が過熱状態に至ると判断してステップ２４３０からステップ２４４０に進み、強制振動制御実行フラグＸＡＣＴの値を「０」に設定するとともにフィルタ再生要求フラグＸＰＭの値を「０」に設定する。その後、ＣＰＵ７１は図９のステップ９５０以降に進む。この結果、ＣＰＵ７１は図７のステップ７１０にて「Ｎｏ」と判定してステップ７２０に進むようになる。従って、空燃比強制振動制御が終了され、通常空燃比フィードバック制御が再開される。
【０２４８】
これに対し、酸素量差DOSAが異常高温判定閾値Ｄｔｈより小さければ、ＣＰＵ７１はステップ２４４０に進まず、ステップ２４３０から図９のステップ９５０以降に進む。この結果、強制振動制御実行フラグＸＡＣＴの値及びフィルタ再生要求フラグＸＰＭの値は、何れも「１」に維持されるので、空燃比強制振動制御が継続される。
【０２４９】
以上、説明したように、第７制御装置は、酸素吸蔵量OSAKZと酸素脱離量OSADRとの差（酸素量差DOSA）に基づいて微粒子捕集フィルタ５４が過熱状態に至るか否かを判定する過熱判定手段（ステップ２４３０）を含むとともに、微粒子捕集フィルタ５４が過熱状態に至ると判定されたときに空燃比強制振動制御を終了するように構成された「空燃比強制振動制御手段」を備えている（ステップ２４３０及びステップ２４４０を参照。）。
【０２５０】
微粒子が微粒子捕集フィルタ５４内において燃焼すれば、当然に熱が発生する。その熱の量は、微粒子捕集フィルタ５４内において燃焼した微粒子の量に応じる。一方、酸素吸蔵量OSAKZと酸素脱離量OSADRと（実際にはこれらの差（酸素量差DOSA））は微粒子捕集フィルタ５４内において燃焼した微粒子の量を表す。従って、例えば、酸素量差DOSAが異常高温判定閾値（過熱判定閾値）Ｄｔｈより大きいと判定されたとき微粒子捕集フィルタ５４が過熱状態に至ると判定することができる。そして、第７制御装置は、微粒子捕集フィルタ５４が過熱状態に至ると判定されたとき、空燃比強制振動制御を直ちに終了し、微粒子捕集フィルタ５４内における微粒子のそれ以上の燃焼を停止させる。この結果、微粒子捕集フィルタ５４の再生中に微粒子捕集フィルタ５４が過熱状態となって劣化或は破損することを回避することができる。
【０２５１】
更に、第７制御装置は、微粒子捕集フィルタ５４の温度に応じて大きくなるフィルタ温度対応値（吸入空気量Ｇａ）を取得するとともに、取得したフィルタ温度対応値が大きいほど過熱判定閾値（異常高温判定閾値Ｄｔｈ）を小さくするように構成されている。
【０２５２】
微粒子捕集フィルタ５４の温度が限界温度以上になると、微粒子捕集フィルタ５４は破損或は劣化する虞がある。従って、微粒子捕集フィルタ５４の温度が上昇すれば、微粒子捕集フィルタ５４の温度を限界温度に到達させないようにするために、「微粒子捕集フィルタ５４内において燃焼させることができる微粒子の量（より厳密には単位時間あたりに燃焼する微粒子の量）」は少なくなる。燃焼する微粒子の量が多いほど発熱量は大きくなり、微粒子の燃焼による微粒子捕集フィルタ５４の温度上昇分が大きくなるからである。更に、微粒子捕集フィルタ５４の温度が上昇するほど、微粒子は効率良く燃焼する（単位時間あたりに燃焼する微粒子の量が増大する）。
【０２５３】
これらのことから、空燃比強制振動制御中において、微粒子捕集フィルタ５４の温度が高いほど、微粒子捕集フィルタ５４は過熱状態に至り易い。そこで、第７制御装置のように、取得した微粒子捕集フィルタの温度に対応する値（吸入空気量Ｇａ）が大きいほど過熱判定閾値Ｄｔｈを小さくする。これによれば、吸入空気量及び排ガス温度等により変化する微粒子捕集フィルタ５４の温度に拘らず、微粒子捕集フィルタ５４が過熱状態に陥ると予測でき、その場合に空燃比強制振動制御を中止することができる。従って、微粒子捕集フィルタ５４の再生中に微粒子捕集フィルタ５４が過熱状態となって劣化或は破損することを回避することができる。
【０２５４】
なお、ステップ２４１０及びステップ２４２０にて用いる吸入空気量Ｇａは、微粒子捕集フィルタ５４の温度の代用値であるから、排気温度、或は、機関１０の負荷等に置換してもよい。また、微粒子捕集フィルタ５４内の温度（微粒子捕集フィルタ５４の床温）を検出する温度センサを配設し、ステップ２４１０及びステップ２４２０にて用いる吸入空気量Ｇａに代えてその温度センサから取得される温度を使用してもよい。
【０２５５】
以上、説明したように、本発明の実施形態に係る内燃機関の制御装置は、空燃比強制振動制御を採用することにより、エミッションを過度に悪化させることなく、微粒子捕集フィルタを再生させることができる。また、各実施形態に係る制御装置は、微粒子捕集フィルタ５４が正常に再生されているか否か、微粒子捕集フィルタ５４の再生状態が異常であるか否かを判定することができる。従って、微粒子捕集フィルタ５４のメンテナンスに役立つ情報を制御装置の外部に提供することができる。
【０２５６】
本発明は上記各実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、サブフィードバック制御は、特開２００７−２７８１８６号公報に開示されているように下流側空燃比センサ６７の出力値Voxsが下流側目標値に一致するように、上流側空燃比センサ６６によって検出される空燃比を見かけ上補正するような態様であってもよい。また、サブフィードバック制御は、特開平０６−０１０７３８号公報に開示されているように、下流側空燃比センサ６７の出力値Voxsに基づいて、上流側空燃比センサ６６の出力値に基づいて作成される空燃比補正係数を変更する態様であってもよい。なお、微粒子捕集フィルタの再生状態を特定するために使用する酸素脱離量を取得する第２期間は、微粒子捕集フィルタの再生状態を特定するために使用する酸素吸蔵量を取得した第１期間に「連続」している期間であることが好ましい。この場合、第２期間は、第１期間の直後の期間であっても第１期間の直前の期間であってもよい。また、微粒子捕集フィルタの再生状態を特定するために使用する酸素脱離量を取得する第２期間は、微粒子捕集フィルタの再生状態を特定するために使用する酸素吸蔵量を取得した第１期間と同じ一回の空燃比強制振動制御内の期間であればよい。
【図面の簡単な説明】
【０２５７】
【図１】本発明の第１実施形態に係る制御装置（第１制御装置）を適用した内燃機関の概略図である。
【図２】図１に示した内燃機関の概略構成図である。
【図３】図１に示した上流側触媒及び下流側触媒の空燃比に対する未燃成分及び窒素酸化物の浄化率を示したグラフである。
【図４】図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図５】図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図６】第１制御装置の作動を説明するためのタイムチャートである。
【図７】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図８】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図９】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１０】第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１１】第１制御装置の変形例に係るＣＰＵが実行するルーチンを示したフローチャートである。
【図１２】本発明の第２実施形態に係る制御装置（第２制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】第２制御装置の作動を説明するためのタイムチャートである。
【図１４】機関の空燃比と同機関から排出される微粒子の量（排出微粒子量）との関係を示したグラフである。
【図１５】機関の空燃比と微粒子捕集フィルタにおいて燃焼される微粒子の量（微粒子燃焼量）との関係を示したグラフである。
【図１６】本発明の第３実施形態に係る制御装置（第３制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図１７】第３制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１８】第３制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１９】本発明の第４実施形態に係る制御装置（第４制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図２０】第４制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２１】第４制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図２２】本発明の第５実施形態に係る制御装置（第５制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図２３】本発明の第６実施形態に係る制御装置（第６制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図２４】本発明の第７実施形態に係る制御装置（第７制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【符号の説明】
【０２５８】
１０…内燃機関（ガソリンエンジン）、２０…シリンダブロック部、２５…燃焼室、３０…シリンダヘッド部、３１…吸気ポート、３２…吸気弁、３４…排気ポート、３５…排気弁、３９…インジェクタ、４０…吸気系統、４１…インテークマニホールド、４４…スロットル弁、５０…排気系統、５１…エキゾーストマニホールド、５１ａ…枝部、５１ｂ…集合部、５２…エキゾーストパイプ、５３…上流側触媒、５４…微粒子捕集フィルタ、５５…下流側触媒、６１…熱線式エアフローメータ、６６…上流側空燃比センサ、６７…下流側空燃比センサ、６８…アクセル開度センサ、７０…電気制御装置、７１…ＣＰＵ。
【図１】
0004930722.tif 000002
【図２】
0004930722.tif 000003
【図３】
0004930722.tif 000004
【図４】
0004930722.tif 000005
【図５】
0004930722.tif 000006
【図６】
0004930722.tif 000007
【図７】
0004930722.tif 000008
【図８】
0004930722.tif 000009
【図９】
0004930722.tif 000010
【図１０】
0004930722.tif 000011
【図１１】
0004930722.tif 000012
【図１２】
0004930722.tif 000013
【図１３】
0004930722.tif 000014
【図１４】
0004930722.tif 000015
【図１５】
0004930722.tif 000016
【図１６】
0004930722.tif 000017
【図１７】
0004930722.tif 000018
【図１８】
0004930722.tif 000019
【図１９】
0004930722.tif 000020
【図２０】
0004930722.tif 000021
【図２１】
0004930722.tif 000022
【図２２】
0004930722.tif 000023
【図２３】
0004930722.tif 000024
【図２４】
0004930722.tif 000025