(57)【特許請求の範囲】
【請求項１】
排気通路に直列に配置されたフロント三元触媒と流入する排気の空燃比に応じてＮＯｘの吸収と放出を行う作用を行う作用を有するリア三元触媒と、
前記リア三元触媒を昇温すべき条件を判断する昇温条件判断手段と、
前記フロント三元触媒に流入する排気の空燃比を理論空燃比をまたいでリッチ側とリーン側とに周期的に変動させる空燃比制御手段と、
前記リア三元触媒を昇温すべき条件のときに、空燃比制御手段による空燃比変動の振幅を増大させる空燃比振幅制御手段と、
前記リア三元触媒に吸収されたＳＯｘを放出すべき条件を判断するＳＯｘ放出条件判断手段と、
エンジンの始動を検出する始動検出手段と、
を備え、
前記昇温条件判断手段は、リア三元触媒に吸収されたＳＯｘを放出すべき条件のときにリア三元触媒を昇温すべき条件が成立したと判断し、
前記ＳＯｘ放出条件判断手段は、エンジンの始動を検出したときに吸収されたＳＯｘを放出すべき条件が成立したと判断することを特徴とするエンジンの排気浄化装置。
【請求項２】
排気通路に直列に配置されたフロント三元触媒と流入する排気の空燃比に応じてＮＯｘの吸収と放出を行う作用を行う作用を有するリア三元触媒と、
前記リア三元触媒を昇温すべき条件を判断する昇温条件判断手段と、
前記フロント三元触媒に流入する排気の空燃比を理論空燃比をまたいでリッチ側とリーン側とに周期的に変動させる空燃比制御手段と、
前記リア三元触媒を昇温すべき条件のときに、空燃比制御手段による空燃比変動の振幅を増大させる空燃比振幅制御手段と、
前記リア三元触媒に吸収されたＳＯｘを放出すべき条件を判断するＳＯｘ放出条件判断手段と、
前記リア三元触媒から流出する排気のＮＯｘ濃度を検出するＮＯｘ濃度検出手段と、
前記リア三元触媒に吸収されたＮＯｘ量を推定するＮＯｘ吸収量推定手段と、
を備え、
前記昇温条件判断手段は、リア三元触媒に吸収されたＳＯｘを放出すべき条件のときにリア三元触媒を昇温すべき条件が成立したと判断し、
前記ＳＯｘ放出条件判断手段は、検出したＮＯｘ濃度と推定したＮＯｘ吸収量とに基づいてリア三元触媒に吸収されたＳＯｘを放出すべき条件を判断することを特徴とするエンジンの排気浄化装置。
【請求項３】
前記ＳＯｘ放出条件判断手段は、リア三元触媒に吸収されたＮＯｘ量が所定量以上となった時点で検出したＮＯｘ濃度が所定の許容濃度より大きくなったときに吸収されたＳＯｘを放出すべき条件が成立したと判断することを特徴とする請求項２に記載のエンジンの排気浄化装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、エンジンの排気浄化装置に関し、特に、触媒の昇温制御を行う排気浄化装置に関する。
【０００２】
【従来の技術】
排気の空燃比に応じてＮＯｘの吸収あるいは脱離を行うＮＯｘ吸蔵還元型触媒を備えたエンジンの排気浄化装置が知られている。
【０００３】
このＮＯｘ吸蔵還元型触媒は、エンジンをリーン空燃比で運転したときに排気中に含まれるＮＯｘを吸収する一方で、エンジンの運転が理論空燃比ないしリッチ空燃比に切り替えられると吸収したＮＯｘを脱離させるものであり、脱離したＮＯｘは排気中のＨＣ、ＣＯなどの還元成分によって浄化される。
【０００４】
しかしながら、燃料や潤滑油中には硫黄分が含まれており、例えばリーン空燃比での運転が長時間続くと、排気中のＳＯｘ（硫黄酸化物）がＮＯｘ吸蔵還元型触媒に堆積し、いわゆる硫黄被毒が進行する。この硫黄被毒の進行はＮＯｘ吸蔵還元型触媒のＮＯｘ吸収能力を低下させ、排気組成の悪化につながる。
【０００５】
そこで、硫黄被毒を解除するための方策が各種試みられており、例えば、特開平10-54274号では、ＮＯｘ吸蔵還元型触媒が排気中のＳＯｘを吸収してＮＯｘ吸収能力が低下したときには、所定期間リーン失火を発生させてＮＯｘ吸蔵還元型触媒に未燃の燃料を供給し、この燃料を触媒上で燃焼させることにより、あるいは、点火時期を遅角させて排気温度を上昇させることにより触媒温度を上昇させ、堆積したＳＯｘを放出させている。
【０００６】
【発明が解決しようとしている問題点】
しかしながら、点火時期の遅角により触媒温度を上昇させる場合、排気温度を上昇させることで間接的に加熱しているため昇温効果が小さい。
【０００７】
また、リーン失火を発生させて触媒温度を上昇させる場合は、触媒上で燃料の燃焼が起こるので昇温効果は非常に大きくなるものの、触媒に未燃のまま送りこむ燃料の量を正確に制御することが困難で、送りこむ燃料量が多い場合には耐久性を損なうほど触媒の温度を上昇させてしまう恐れもある。
【０００８】
一方、エンジン始動直後のエミッションを改善する技術として、始動後の昇温特性が良好な排気マニホールド位置に触媒（マニ触媒）を配置することが知られている。
【０００９】
しかしながら、このようなマニ触媒とＮＯｘ吸蔵還元型触媒とを併用する場合、排気通路の上流側にマニ触媒が位置し、下流側にＮＯｘ吸蔵還元型触媒が配置されることになるので、従来技術の方法で下流側のＮＯｘ吸蔵還元型触媒をＳＯｘ放出温度まで昇温させＳＯｘを放出させようとすると、いずれの方法でも上流側のマニ触媒の温度がそれ以上の温度まで上昇してしまい、マニ触媒の劣化を早めてしまう。
【００１０】
【問題点を解決するための手段】
第１の発明は、排気通路に直列に配置されたフロント三元触媒と流入する排気の空燃比に応じてＮＯｘの吸収と放出を行う作用を行う作用を有するリア三元触媒と、前記リア三元触媒を昇温すべき条件を判断する昇温条件判断手段と、前記フロント三元触媒に流入する排気の空燃比を理論空燃比をまたいでリッチ側とリーン側とに周期的に変動させる空燃比制御手段と、前記リア三元触媒を昇温すべき条件のときに、空燃比制御手段による空燃比変動の振幅を増大させる空燃比振幅制御手段と、前記リア三元触媒に吸収されたＳＯｘを放出すべき条件を判断するＳＯｘ放出条件判断手段と、エンジンの始動を検出する始動検出手段と、を備え、前記昇温条件判断手段は、リア三元触媒に吸収されたＳＯｘを放出すべき条件のときにリア三元触媒を昇温すべき条件が成立したと判断し、前記ＳＯｘ放出条件判断手段は、エンジンの始動を検出したときに吸収されたＳＯｘを放出すべき条件が成立したと判断することを特徴とするものである。
【００１１】
第２の発明は、排気通路に直列に配置されたフロント三元触媒と流入する排気の空燃比に応じてＮＯｘの吸収と放出を行う作用を行う作用を有するリア三元触媒と、前記リア三元触媒を昇温すべき条件を判断する昇温条件判断手段と、前記フロント三元触媒に流入する排気の空燃比を理論空燃比をまたいでリッチ側とリーン側とに周期的に変動させる空燃比制御手段と、前記リア三元触媒を昇温すべき条件のときに、空燃比制御手段による空燃比変動の振幅を増大させる空燃比振幅制御手段と、前記リア三元触媒に吸収されたＳＯｘを放出すべき条件を判断するＳＯｘ放出条件判断手段と、前記リア三元触媒から流出する排気のＮＯｘ濃度を検出するＮＯｘ濃度検出手段と、前記リア三元触媒に吸収されたＮＯｘ量を推定するＮＯｘ吸収量推定手段と、を備え、前記昇温条件判断手段は、リア三元触媒に吸収されたＳＯｘを放出すべき条件のときにリア三元触媒を昇温すべき条件が成立したと判断し、前記ＳＯｘ放出条件判断手段は、検出したＮＯｘ濃度と推定したＮＯｘ吸収量とに基づいてリア三元触媒に吸収されたＳＯｘを放出すべき条件を判断することを特徴とするものである。
【００１２】
第３の発明は、第２の発明において、前記ＳＯｘ放出条件判断手段は、リア三元触媒に吸収されたＮＯｘ量が所定量以上となった時点で検出したＮＯｘ濃度が所定の許容濃度より大きくなったときに吸収されたＳＯｘを放出すべき条件が成立したと判断することを特徴とするものである。
【００３１】
【作用及び効果】
第１の発明によると、リア三元触媒を昇温させる際には、フロント三元触媒に流入する排気の空燃比変動の振幅を増大させるので、フロント三元触媒を通過するＨＣ、ＣＯ、ＮＯｘの量が増大し、リア三元触媒で反応するＨＣ、ＣＯ、ＮＯｘ、Ｏ2の量が増大する。これにより、フロント三元触媒の温度上昇を抑えつつ、リア三元触媒上で行われる酸化還元反応の反応熱によりリア三元触媒を昇温させることができる。
また、リーン空燃比運転時にフロント触媒で浄化されなかった排気中のＮＯｘはリア三元触媒において吸収される。吸収されたＮＯｘは、排気中に含まれる未燃のＨＣやＣＯによって還元され浄化される。
また、リア三元触媒にＳＯｘが堆積し、硫黄被毒が進行するとリア三元触媒の昇温制御が行われる。これにより、リア三元触媒に堆積したＳＯｘが放出され、ＮＯｘ浄化性能の低下を抑えることができる。
また、エンジン始動直後にリア三元触媒のＳＯｘ放出条件が成立したと判断され、リア三元触媒の昇温制御が行われる。これにより、エンジンを運転する毎に必ず１回のＳＯｘ放出制御を行うことになる。
【００３２】
また、第２、第３の発明によると、リア三元触媒を昇温させる際には、フロント三元触媒に流入する排気の空燃比変動の振幅を増大させるので、フロント三元触媒を通過するＨＣ、ＣＯ、ＮＯｘの量が増大し、リア三元触媒で反応するＨＣ、ＣＯ、ＮＯｘ、Ｏ2の量が増大する。これにより、フロント三元触媒の温度上昇を抑えつつ、リア三元触媒上で行われる酸化還元反応の反応熱によりリア三元触媒を昇温させることができる。
また、リーン空燃比運転時にフロント触媒で浄化されなかった排気中のＮＯｘはリア三元触媒において吸収される。吸収されたＮＯｘは、排気中に含まれる未燃のＨＣやＣＯによって還元され浄化される。
また、リア三元触媒にＳＯｘが堆積し、硫黄被毒が進行するとリア三元触媒の昇温制御が行われる。これにより、リア三元触媒に堆積したＳＯｘが放出され、ＮＯｘ浄化性能の低下を抑えることができる。
また、リア三元触媒下流のＮＯｘ濃度に基づきリア三元触媒に吸収されているＮＯｘの量が推定され、この推定ＮＯｘ吸収量とＮＯｘ濃度とに基づきＳＯｘ放出条件が判断される。
【００５０】
【発明の実施の形態】
以下、添付図面に基づき本発明の実施の形態を説明する。
【００５１】
図１は、本発明を適用可能なエンジン排気浄化装置の一例を示す。エンジン１の吸気通路２には、吸入空気量を検出するエアフロメータ３と、吸入空気量を調節するスロットル弁４と、吸気通路２に燃料を噴射する燃料噴射弁５とが設けられている。燃料噴射弁５はエンジン１のシリンダ内に燃料を直接噴射するものであってもよい。
【００５２】
一方、エンジン１の排気通路７には、排気浄化用触媒としてのフロント三元触媒８及びリア三元触媒９が直列に設けられている。フロント三元触媒８はいわゆる三元触媒であり、理論空燃比運転時に最大の変換効率をもって排気中のＮＯｘの還元とＨＣ、ＣＯの酸化を行う。一方、その下流に位置するリア三元触媒９は、空燃比に応じてＮＯｘの吸収、放出を行う作用を有するＮＯｘ吸蔵還元型の三元触媒であり、リーン空燃比運転域で発生するＮＯｘを吸収し、理論空燃比ないしリッチ空燃比で運転して排気中の酸素濃度を低下させると、リーン空燃比運転域で吸着したＮＯｘを脱離させるとともに排気中に含まれるＨＣ、ＣＯにより脱離したＮＯｘを還元する。なお、後述するリア三元触媒９の昇温制御を行う際に、フロント三元触媒８を通過する排気中のＨＣ、ＣＯ、ＮＯｘ、Ｏ2の量を増やすために、フロント三元触媒８のＯ2ストレージ能力はリア三元触媒９のＯ2ストレージ能力よりも低く設定されている。
【００５３】
また、フロント三元触媒８の上流にはフロントＯ2センサ１０、下流にはリアＯ2センサ１１がそれぞれ設けられており、フロント三元触媒８に流入する排気とフロント三元触媒８から流出する排気の空燃比が理論空燃比よりも濃いか薄いかを検出することができる。なお、Ｏ2センサ１０、１１に代えて空燃比を連続的に検出することが可能なリニア空燃比センサを備えてもよい。一方、リア三元触媒９には、その温度を検出する触媒温度センサ１２が設けられている。
【００５４】
コントローラ６には、上記エアフロメータ３、Ｏ2センサ１０、１１、触媒温度センサ１２からの信号の他、冷却水温センサ１３からの冷却水温信号、クランク角センサ１４からのＲｅｆ信号とＰｏｓ信号、アクセルポジションセンサ１５からのアクセル操作量信号、車速センサ１６からの車速信号、スタータスイッチ１７からのエンジン始動信号等が入力され、コントローラ６はこれら各種信号に基づき上記スロットル弁４、燃料噴射弁５や点火プラグ６を制御する。
【００５５】
また、エンジン１がリーン空燃比運転を続けるとリア三元触媒９にＳＯｘが堆積し、リア三元触媒９のＮＯｘ浄化性能が低下する。そこでコントローラ６は、リア三元触媒９に堆積したＳＯｘ量を推定し、その推定ＳＯｘ量に基づきＳＯｘを放出すべき条件を判断する。そして、ＳＯｘ放出すべき条件が成立した場合には、堆積したＳＯｘを放出すべくリア三元触媒９を昇温させる。
【００５６】
具体的には、空燃比フィードバック制御による空燃比変動の振幅を増大させることによって、フロント三元触媒８を通過するＣＯ、ＨＣ、ＮＯｘ、Ｏ2の量を増大させてリア三元触媒９に流入するＣＯ、ＨＣ、ＮＯｘ、Ｏ2の量を増大させる。そして、それらをリア三元触媒９上で反応させることによりリア三元触媒９を昇温させ、堆積したＳＯｘを放出させる。
【００５７】
このとき、ＨＣ、ＣＯ、ＮＯｘがリア三元触媒９上で最大効率で酸化還元され、反応熱が最大となるよう空燃比の中央値を理論空燃比にフィードバック制御する。さらに、リア三元触媒９の昇温効果を高めるべくエンジン１の点火時期を遅らせたり、排気弁の開時期を進角させたりする。
【００５８】
ここでコントローラ６におけるＳＯｘ放出制御に関する部分をブロック図で表すと図２のようになる。この図に示すように、コントローラ６は、ＳＯｘ放出条件判断部Ｂ１、昇温条件判断部Ｂ２、リッチ化条件判断部Ｂ３、空燃比制御値設定部Ｂ４、α算出部Ｂ５、目標空燃比設定部Ｂ６、Ｔｉ、ＴＩＴＭ算出部Ｂ７、ＡＤＶ設定部Ｂ８及びＥＶＯ設定部Ｂ９から構成される。以下、図３から図２４を参照しながらこれら各要素における処理について詳しく説明する。
【００５９】
まず、ＳＯｘ放出条件判断部Ｂ１における処理について説明する。
【００６０】
ＳＯｘ放出条件判断部Ｂ１は、リア三元触媒９に吸収されたＳＯｘ量を推定し、その推定ＳＯｘ吸収量に基づきＳＯｘを放出すべき条件の成立、不成立を判断し、フラグＦｓｏｘのセットを行うものである。
【００６１】
図３はＳＯｘ放出条件判断部Ｂ１の制御ルーチンを示したフローチャートであり、所定時間毎（例えば１０ｍｓｅｃ毎）に実行される。
【００６２】
これについて説明すると、まず、ステップＳ１０１では、触媒温度センサ１２の出力をＡ／Ｄ変換してリア三元触媒９の触媒温度Ｔｃａｔが求められ、クランク角センサ１４の所定信号（例えば、Ｒｅｆ信号）の発生間隔時間に基づいてエンジン回転数Ｎが求められる。さらに、アクセルポジションセンサ１５の出力に基づいてエンジン負荷Ｔ（例えば、アクセル踏み込み量に応じたエンジン１の目標発生トルク）が求められる。
【００６３】
ステップＳ１０２では、ステップＳ１０１で求めた触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２以下か否かが判断される。そして、触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２以下の場合は、リア三元触媒９がＳＯｘを吸収する状態であると判断してステップＳ１０３へ進み、触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２より大きいときは、リア三元触媒９がＳＯｘを放出する状態であると判断してステップＳ１０７へ進む。
【００６４】
ステップＳ１０３では、所定時間（ここではルーチン実行時間の１０ｍｓｅｃ）あたりにリア三元触媒９に吸収されるＳＯｘ量ΔＳＯＸａが次式、
ΔＳＯＸａ＝（所定時間あたりにリア三元触媒９に流入するＳＯｘ量）×（リア三元触媒９のＳＯｘ吸収率）        ・・・（１）
により算出される。
【００６５】
所定時間あたりにリア三元触媒９に流入するＳＯｘ量は、例えば、エンジン回転数Ｎ、エンジン負荷Ｔ、平均空燃比をパラメータとして算出することができる。また、リア三元触媒９のＳＯｘ吸収率（単位時間あたりに吸収されるＳＯｘ量／単位時間あたりに流入するＳＯｘ量）は、例えば、現在のＳＯｘ吸収量ＳＯＸｚ（前回算出したＳＯｘ吸収量の推定値）、触媒温度Ｔｃａｔ、平均空燃比をパラメータとして算出される。平均空燃比としては、例えば、後述する目標空燃比設定部Ｂ６で設定される目標当量比ＴＦＢＹＡを用いることができる。
【００６６】
リア三元触媒９のＳＯｘ吸収率は、ゼロ以上１以下の値で、各パラメータ対して次のような特性を有する。
・リア三元触媒９のＳＯｘ吸収量ＳＯＸが少ないほどＳＯｘ吸収率は大きくなり、ＳＯｘ吸収量ＳＯＸがゼロのときにＳＯｘ吸収率は最大となる。
・リア三元触媒９の温度Ｔｃａｔが所定温度のときＳＯｘ吸収率は最大となるが、所定温度より低くなると小さくなり、触媒活性温度以下でゼロとなる。また、所定温度より高くなっても小さくなり、ＳＯｘ放出温度Ｔｃａｔ２以上でＳＯｘ吸収率はゼロとなる。
・リーンの度合いが小さくなるほどＳＯｘ吸収率は小さくなり、理論空燃比よりリッチ側の空燃比ではＳＯｘ吸収率はゼロとなる。
【００６７】
このようにして所定時間に吸収されるＳＯｘ量ΔＳＯＸａを算出したらステップＳ１０４へ進み、前回算出した推定ＳＯｘ吸収量ＳＯＸｚにΔＳＯＸａを加えて最新の推定ＳＯｘ吸収量ＳＯＸを算出する。
【００６８】
ステップＳ１０５では、推定ＳＯｘ吸収量ＳＯＸが許容値ＳＯＸｍａｘより大きいか否かが判断され、許容値ＳＯＸｍａｘよりも大きければステップＳ１０６へ進み、フラグＦｓｏｘにＳＯｘ放出条件成立を示す１がセットされる。なお、許容値ＳＯＸｍａｘはリア三元触媒９に所定のＮＯｘ吸収容量ＮＯＸｔｈが残るように設定される。
【００６９】
一方、ステップＳ１０２で触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２より高いと判断されて進んだステップＳ１０７では、所定時間（ここでは１０ｍｓｅｃ）あたりにリア三元触媒９から放出されるＳＯｘ量ΔＳＯＸｒが次式、
ΔＳＯＸｒ＝（所定時間）×（リア三元触媒９のＳＯｘ放出率）・・・（２）により算出される。
【００７０】
ここでリア三元触媒９のＳＯｘ放出率は、単位時間あたりにリア三元触媒９から放出されるＳＯｘの量であり、例えば、現在のＳＯｘ吸収量ＳＯＸｚ（前回算出したＳＯｘ吸収量の推定値）、触媒温度Ｔｃａｔ、平均空燃比をパラメータとして算出される。
【００７１】
平均空燃比としては、後述する目標空燃比設定部Ｂ６で設定される目標当量比ＴＦＢＹＡを用いることができる。ただし、被毒解除制御中はＴＦＢＹＡ＝１としつつ空燃比フィードバック制御の制御中央値をシフトさせることによって平均空燃比を理論空燃比よりもリッチ側にシフトさせることがあるので、その場合はリッチシフト量も考慮する。
【００７２】
リア三元触媒９のＳＯｘ放出率は各パラメータに対して以下のような特性となる。
・リア三元触媒９のＳＯｘ吸収量ＳＯＸが少ないほどＳＯｘ放出率は小さくなり、ＳＯｘ吸収量ＳＯＸがゼロのときＳＯｘ放出率はゼロとなる。
・リア三元触媒９の触媒温度Ｔｃａｔが低くなるほどＳＯｘ放出率は小さくなり、ＳＯｘ放出温度Ｔｃａｔ２以下ではＳＯｘ放出率はゼロとなる。
・リッチの度合いが小さくなるほどＳＯｘ放出率が小さくなり、リーン空燃比ではＳＯｘ放出率はゼロとなる。
【００７３】
リア三元触媒９から放出されるＳＯｘ量ΔＳＯＸｒを算出したらステップＳ１０８に進み、前回算出した推定ＳＯｘ吸収量ＳＯＸｚからΔＳＯＸｒを減じて最新の推定ＳＯｘ吸収量ＳＯＸを算出する。
【００７４】
ステップＳ１０９では、推定ＳＯｘ吸収量ＳＯＸが所定値ＳＯＸｍｉｎより小さいか否かが判断され、所定値ＳＯＸｍｉｎよりも小さい場合はステップＳ１１０へ進んでフラグＦｓｏｘにＳＯｘ放出条件不成立を示すゼロがセットされる。なお、所定値ＳＯＸｍｉｎはゼロ近傍の小さな値に設定される。
【００７５】
したがって、このフローを処理することにより、ＳＯｘ放出条件判断部Ｂ１は、触媒温度Ｔｃａｔに基づき所定時間あたりのリア三元触媒９のＳＯｘ吸収量ΔＳＯＸａあるいは放出量ΔＳＯＸｒを演算し、それらを累積演算することによりＳＯｘ吸収量ＳＯＸを推定する。そして、この推定ＳＯｘ吸収量ＳＯＸが一旦許容量ＳＯＸｍａｘを越えたら、ＳＯｘがほぼ完全に放出されるまでＦｓｏｘ＝１を維持し、それを後述する昇温条件判断部Ｂ２、リッチ化条件判断部Ｂ３及び空燃比制御値設定部Ｂ４に出力する。このようにＳＯｘがほぼ完全に放出されるまでＦｓｏｘ＝１を維持するようにしているのは、被毒解除制御のＯＮ／ＯＦＦが頻繁に繰り返されるのを防止するためである。
【００７６】
なお、リア三元触媒９に吸収されたＳＯｘは、エンジン１の停止後もリア三元触媒９内に吸収されたままとなるので、推定ＳＯｘ吸収量ＳＯＸはエンジン停止後もコントローラ６内のメモリに記憶され、次回エンジン始動時に推定ＳＯｘ吸収量ＳＯＸの初期値として読み込まれ、以降の推定ＳＯｘ吸収量ＳＯＸの算出に用いられる。
【００７７】
また、ここではＳＯｘ吸収量ＳＯＸを所定時間におけるＳＯｘ吸収量の変化量ΔＳＯＸａ、ΔＳＯＸｒを累積演算することで推定しているが、これを簡略化し、例えば、ステップＳ１０３、Ｓ１０７を省略してステップＳ１０４、Ｓ１０８のΔＳＯＸａ、ΔＳＯＸｒを固定値としてもよい。
【００７８】
次に、昇温条件判断部Ｂ２における処理について説明する。
【００７９】
昇温条件判断部Ｂ２は、ＳＯｘ放出条件判断部Ｂ１からのフラグＦｓｏｘの値、リア三元触媒９の触媒温度Ｔｃａｔ等に基づき、リア三元触媒９を昇温すべき条件の成立、不成立を判断してフラグＦｈｅａｔのセットを行うものである。
【００８０】
図４は昇温条件判断部Ｂ２の制御ルーチンを示したフローチャートであり、所定時間毎（例えば１０ｍｓｅｃ毎）に実行される。
【００８１】
これについて説明すると、まず、ステップＳ２０１では、触媒温度センサ１２の出力をＡ／Ｄ変換してリア三元触媒９の触媒温度Ｔｃａｔ、クランク角センサ１４の所定信号の発生間隔時間に基づいてエンジン回転数Ｎを求める。さらに、アクセルポジションセンサ１５の出力に基づいてエンジン負荷Ｔを求める。
【００８２】
ステップＳ２０２では、上記ＳＯｘ放出条件判断部Ｂ１からのフラグＦｓｏｘの値に基づき、リア三元触媒９に吸収されたＳＯｘを放出すべき条件が成立しているか否かを判断する。そして、ＳＯｘを放出すべき条件が成立している場合（Ｆｓｏｘ＝１）はステップＳ２０３へ進み、成立していない場合（Ｆｓｏｘ＝０）はステップＳ２０７へ進んでフラグＦｈｅａｔに昇温すべき条件が不成立であることを示すゼロをセットする。
【００８３】
ステップＳ２０３では、触媒温度Ｔｃａｔが所定値Ｔｃａｔ１より大きいか否かを判断し、触媒温度Ｔｃａｔが所定値Ｔｃａｔ１より大きい場合はステップＳ２０４へ進み、そうでない場合はステップＳ２０７へ進んでフラグＦｈｅａｔにゼロをセットする。
【００８４】
ここで、所定値Ｔｃａｔ１はＳＯｘ放出温度Ｔｃａｔ２より低い温度に設定される。これは、触媒温度ＴｃａｔがＴｃａｔ１以下のときにＳＯｘ放出温度Ｔｃａｔ２以上に昇温させようとすると、触媒昇温のための特別な制御が長時間に及び、エミッションあるいは燃費悪化への影響が大きくなるので、Ｔｃａｔ１以下のときは昇温制御を行わないようにするためである。
【００８５】
ただし、エンジン回転数Ｎとエンジン負荷Ｔが所定の領域（例えば図５の領域Ｂ）内にあり、昇温制御によって速やかに触媒温度が上昇すると考えられる場合は、触媒温度ＴｃａｔがＴｃａｔ１以下であっても昇温制御を許可するようにしてもよい。
【００８６】
ステップＳ２０４では、エンジン回転数Ｎとエンジン負荷Ｔが図５の領域Ａ内にあるか否かを判断し、エンジン回転数Ｎとエンジン負荷Ｔが領域Ａ内にあればステップＳ２０５へ進み、それ以外はステップＳ２０７へ進んでフラグＦｈｅａｔにゼロをセットする。ここで領域Ａは、リア三元触媒９の昇温制御を行った場合に触媒温度ＴｃａｔをＳＯｘ放出温度Ｔｃａｔ２以上に上昇させ得る領域である。
【００８７】
なお、エンジンによっては、通常リーン運転領域（ＴＦＢＹＡ＜１）に設定される領域でも昇温制御を行えば触媒温度ＴｃａｔをＳＯｘ放出温度Ｔｃａｔ２以上に上昇させることができる場合もあり得る。そのような場合は、昇温可能な領域と理論空燃比運転領域（ＴＦＢＹＡ＝１）との重複部分だけを領域Ａに設定してもよいし、昇温可能な領域をすべて領域Ａに設定し、触媒に吸収されたＳＯｘを放出すべき条件の成立中（Ｆｓｏｘ＝１）はリーン運転よりも触媒昇温制御を優先して行うようにしてもよい。
【００８８】
ステップＳ２０５では、触媒温度Ｔｃａｔが許容温度Ｔｃａｔ３以下か否かを判断し、許容温度Ｔｃａｔ３以下の場合はステップＳ２０６へ進み、そうでない場合はステップＳ２０７へ進む。
【００８９】
ここで所定値Ｔｃａｔ３は、ＳＯｘ放出温度Ｔｃａｔ２より大きい高温の値に設定される。これは、リア三元触媒９は温度が高いほどＳＯｘを放出しやすくなるが、過剰に触媒温度を上昇させるとリア三元触媒９の耐久性を損なうことになるので、触媒温度ＴｃａｔがＴｃａｔ３より大きいときは昇温制御を行わないようにするためである。
【００９０】
ステップＳ２０６ではフラグＦｈｅａｔにリア三元触媒の昇温すべき条件が成立したことを示す１をセットする。
【００９１】
したがって、このフローを処理することにより、昇温条件判断部Ｂ２は、ＳＯｘ放出条件判断部Ｂ１からのフラグＦｓｏｘと、リア三元触媒９の触媒温度Ｔｃａｔ、運転条件に基づき、リア三元触媒９を昇温すべき条件の成立、不成立を判断し、リア三元触媒９を昇温すべき条件の成立時にＦｈｅａｔ＝１、不成立時にＦｈｅａｔ＝０とする。
【００９２】
具体的には、ＳＯｘ放出条件が成立しており、運転領域が領域Ａ内にあって、かつリア三元触媒の温度Ｔｃａｔが所定値Ｔｃａｔ１とＴｃａｔ３の間にあるときに昇温条件成立と判断され、フラグＦｈｅａｔに１がセットされる。
【００９３】
次に、リッチ化条件判断部Ｂ３における処理について説明する。
【００９４】
リッチ化条件判断部Ｂ３は、フラグＦｓｏｘと触媒温度Ｔｃａｔに基づき、空燃比をリッチ化すべき条件の成立、不成立を判断してフラグＦｒｉｃｈのセットを行うものである。
【００９５】
図６はリッチ化条件判断部Ｂ３の制御ルーチンを示したフローチャートであり、所定時間毎（例えば１０ｍｓｅｃ毎）に実行される。
【００９６】
これについて説明すると、まず、ステップＳ３０１では、触媒温度センサ１２の出力をＡ／Ｄ変換して触媒温度Ｔｃａｔを求める。
【００９７】
ステップＳ３０２では、上記ＳＯｘ放出条件判断部Ｂ１からのフラグＦｓｏｘの値に基づき、リア三元触媒９に吸収されたＳＯｘを放出すべき条件が成立しているか否かを判断し、ＳＯｘを放出すべき条件が成立している場合（Ｆｓｏｘ＝１）はステップＳ３０３へ進む。そうでない場合（Ｆｓｏｘ＝０）はステップＳ３０５へ進み、フラグＦｒｉｃｈにリッチ化条件不成立を示すゼロをセットする。
【００９８】
ステップＳ３０３では、触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２より大きいか否かを判断し、触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２より大きいときはステップＳ３０４へ進み、フラグＦｒｉｃｈにリッチ化すべき条件が成立したことを示す１をセットする。一方、触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２より大きくない場合は、ステップＳ３０５へ進んでフラグＦｒｉｃｈにリッチ条件不成立を示すゼロをセットする。
【００９９】
したがって、このフローを処理することにより、リッチ化条件判断部Ｂ３は、フラグＦｓｏｘと触媒温度Ｔｃａｔに基づき、空燃比をリッチ化すべき条件の成立、不成立を判断し、空燃比をリッチ化すべき条件の成立時にＦｒｉｃｈ＝１、不成立時にＦｒｉｃｈ＝０とする。
【０１００】
具体的には、ＳＯｘ放出条件が成立しており、かつリア三元触媒の温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２よりも高いときにリッチ化すべき条件が成立したと判断され、フラグＦｒｉｃｈに１がセットされる。
【０１０１】
次に、空燃比制御値設定部Ｂ４における処理について説明する。
【０１０２】
空燃比制御値設定部Ｂ４は、フラグＦｓｏｘ、Ｆｈｅａｔ、Ｆｒｉｃｈの値に基づき、基本制御定数ＰＬ１、ＰＲ１、及び補正値ＰＨＯＳを設定するものである。
【０１０３】
ここで基本制御定数ＰＬ１、ＰＲ１は、空燃比フィードバック制御の補正係数αを算出する際の比例制御の基本制御定数（ＰＬ１：リッチ化比例ゲイン、ＰＲ１：リーン化比例ゲイン）であり、基本制御定数ＰＬ１、ＰＲ１の値が大きくなるほど空燃比フィードバック制御による空燃比変動の振幅が大きくなる。
【０１０４】
また、補正値ＰＨＯＳは、後述する空燃比フィードバック補正係数αの算出時に、リッチ化比例制御とリーン化比例制御とのバランスを変化させる補正値で、補正値ＰＨＯＳの値が正のとき空燃比フィードバック制御の制御中央値（＝触媒に流入する排気の平均空燃比）はリッチ側にシフトし、補正値ＰＨＯＳの値が負のとき制御中央値はリーン側にシフトする。
【０１０５】
なお、本実施形態では、リア三元触媒９に吸収されたＳＯｘを放出すべき条件が成立していない通常運転時には、リアＯ2センサ１１出力に基づいて補正値ＰＨＯＳの値をフィードバック制御するいわゆるデュアルＯ2センサフィードバック制御を行う一方、ＳＯｘ放出条件成立期間中はオープン制御で補正値ＰＨＯＳに値を設定する。
【０１０６】
この空燃比制御値設定部Ｂ４で設定されたＰＬ１、ＰＲ１、ＰＨＯＳは、後述するα算出部Ｂ５で使用される。
【０１０７】
図７は空燃比制御値設定部Ｂ４の制御ルーチンを示したフローチャートであり、所定時間毎（例えば１０ｍｓｅｃ毎）に実行される。
【０１０８】
これについて説明すると、ステップＳ４０１ではフラグＦｓｏｘの値に基づきＳＯｘ放出条件が成立しているか否かを判断し、ステップＳ４０２ではフラグＦｈｅａｔの値に基づき昇温条件が成立しているか否かを判断し、ステップＳ４０３、Ｓ４０６ではフラグＦｒｉｃｈの値に基づきリッチ化条件を判断する。フラグＦｓｏｘ、Ｆｈｅａｔ、Ｆｒｉｃｈのとる値によってそれ以降に進むステップが分かれるので、場合▲１▼〜▲５▼に分けて説明する。
【０１０９】
▲１▼Ｆｓｏｘ＝１、Ｆｈｅａｔ＝１かつＦｒｉｃｈ＝１の場合
ＳＯｘ放出条件、昇温条件及びリッチ化条件がすべて成立している場合は、ステップＳ４０４へ進み、ＰＬ１、ＰＲ１に値ＰＬｂ、ＰＲｂを設定し、ＰＨＯＳに値ＰＨＯＳＲを設定する。
【０１１０】
ここで値ＰＬｂ、ＰＲｂは、リア三元触媒９の昇温を行うときの比例制御の基本制御定数の大きさを定めた値で、フロント三元触媒８に流入する排気の空燃比変動の振幅を、フロント三元触媒８に適した振幅（フロント三元触媒８がＨＣ、ＣＯ、ＮＯｘを良好に浄化しうる振幅）より大きい振幅とすると共に、リア三元触媒９に流入する排気の空燃比変動の振幅をリア三元触媒９に適した振幅（リア三元触媒９がＨＣ、ＣＯ、ＮＯｘを良好に浄化しうる振幅）以下とする大きさの値である。
【０１１１】
また、基本制御定数ＰＬ１、ＰＲ１のみ（補正値ＰＨＯＳを付加しない状態）で空燃比フィードバック制御を行ったときに、制御中央値がほぼ理論空燃比となるようＰＬｂ、ＰＲｂの値を設定する。一般的には、ＰＬｂとＰＲｂの大きさをほぼ等しくすればよい。値ＰＬｂ、ＰＲｂはそれぞれ単一の固定値として、または、それぞれエンジン回転数と負荷に応じた複数の固定値としてコントローラ６内のメモリ（ＲＯＭ）に記憶される。
【０１１２】
なお、値ＰＬｂ、ＰＲｂは通常運転時の比例制御の基本制御定数の大きさを定めた値（ＰＬａ、ＰＲａ）を所定の比率、所定の補正量で増大補正して求めてもよく、また、値ＰＬｂ、ＰＲｂを、フロント三元触媒８の劣化の度合いに応じて可変に設定してもよい。その場合はコントローラ６内の書き換え可能なメモリ（ＲＡＭ）に値を記憶する。
【０１１３】
一方、補正値ＰＨＯＳＲは、排気の平均空燃比を理論空燃比よりリッチ側にシフトさせる値である。ＰＨＯＳＲには単一の固定値として、あるいはエンジン回転数と負荷に応じた複数の固定値としてコントローラ６内のメモリ（ＲＯＭ）に記憶される。あるいは、補正値ＰＨＯＳＲをＳＯｘの放出量にあわせて可変に設定してもよく、その場合は書き換え可能なメモリ（ＲＡＭ）に値を記憶する。
【０１１４】
▲２▼Ｆｓｏｘ＝１、Ｆｈｅａｔ＝１かつＦｒｉｃｈ＝０の場合
ＳＯｘ放出条件と昇温条件が成立しているものの、リッチ化条件が成立していない場合はステップＳ４０５へ進み、基本制御定数ＰＬ１、ＰＲ１に値ＰＬｂ、ＰＲｂを設定し、補正値ＰＨＯＳに値ＰＨＯＳＳを設定する。
【０１１５】
ここで、値ＰＬｂ、ＰＲｂはステップＳ４０４で設定するものと同じである。一方、値ＰＨＯＳＳは、フロント三元触媒８に流入する排気の平均空燃比を理論空燃比にする値である。値ＰＨＯＳＳは、単一の固定値として、または、エンジン回転数と負荷に応じた複数の固定値としてコントローラ６内のメモリ（ＲＯＭ）に記憶される。
【０１１６】
なお、基本制御定数ＰＬ１、ＰＲ１のみで空燃比フィードバック制御を行ったときに制御中央値がほぼ理論空燃比となるように値ＰＬｂ、ＰＲｂの値を設定しているので、ＰＨＯＳＳ＝０でもよい。
【０１１７】
また、本実施形態では通常運転時にデュアルＯ2センサフィードバック制御を行って排気の空燃比が理論空燃比となるように補正値ＰＨＯＳの算出を行っているので、そのときに得られる補正値ＰＨＯＳの平均値をＰＨＯＳＳとしてもよい。
【０１１８】
▲３▼Ｆｓｏｘ＝１、Ｆｒｉｃｈ＝１、Ｆｈｅａｔ＝０の場合
Ｓｏｘ放出条件とリッチ化条件が成立するものの、昇温条件が不成立の場合はステップＳ４０７へ進み、基本制御定数ＰＬ１、ＰＲ１に値ＰＬａ、ＰＲａを設定し、補正値ＰＨＯＳに値ＰＨＯＳＲを設定する。
【０１１９】
値ＰＨＯＳＲはステップＳ４０４で設定したものと同じである。一方、値ＰＬａ、ＰＲａは、通常運転時の比例制御の基本制御定数の大きさを定めた値で、排気の空燃比変動の振幅をフロント三元触媒８に適した振幅（フロント三元触媒８がＨＣ、ＣＯ、ＮＯｘを良好に浄化しうる振幅）以下とする大きさの値である。
【０１２０】
また、基本制御定数ＰＬ１、ＰＲ１のみ（補正値ＰＨＯＳを付加しない状態）で空燃比フィードバック制御を行ったときに、制御中央値がほぼ理論空燃比となるよう値ＰＬａ、ＰＲａの値を設定する。一般的には、ＰＬａとＰＲａの大きさをほぼ等しくすればよい。
【０１２１】
値ＰＬａ、ＰＲａはそれぞれ単一の固定値として、または、それぞれエンジン回転数と付加に応じた複数の固定値としてコントローラ６内のメモリ（ＲＯＭ）に記憶される。なお、ＰＬａ、ＰＲａをフロント三元触媒８の劣化の度合いに応じて可変に設定してもよく、その場合は書き換え可能なメモリ（ＲＡＭ）に値を設定する。
【０１２２】
▲４▼Ｆｓｏｘ＝１、Ｆｈｅａｔ＝０、Ｆｒｉｃｈ＝０の場合
ＳＯｘ放出条件のみが成立、昇温条件とリッチ化条件が不成立の場合、ステップＳ４０８へ進み、基本制御定数ＰＬ１、ＰＲ１に値ＰＬａ、ＰＲａを設定し、補正値ＰＨＯＳに値ＰＨＯＳＳを設定する。値ＰＬａ、ＰＲａはステップＳ４０７で設定したものと同一であり、値ＰＨＯＳＳはステップＳ４０５で設定したものと同一である。
【０１２３】
▲５▼Ｆｓｏｘ＝０、Ｆｈｅａｔ＝０、Ｆｒｉｃｈ＝０の場合
ＳＯｘ放出条件、昇温条件、リッチ化条件のいずれも不成立の場合は、ステップＳ４０９へ進み、基本制御定数ＰＬ１、ＰＲ１に値ＰＬａ、ＰＲａを設定し、リアＯ2センサ１１の出力に基づいてリア三元触媒９に流入する排気の平均空燃比が理論空燃比となるように補正値ＰＨＯＳの値を算出する。通常運転時、デュアルＯ2センサフィードバック制御を行わない実施形態では、ＰＨＯＳ＝ＰＨＯＳＳとすればよい。
【０１２４】
なお、ここでは本ルーチンが所定時間に実行されるとしたが、このルーチンで設定されたＰＬ１、ＰＲ１、ＰＨＯＳが実際のフィードバック制御に反映されるのは、後述するα設定部Ｂ５におて空燃比フィードバック補正係数αを算出するときの比例制御実行時だけなので、比例制御実行のタイミングにあわせてこのルーチンを実行するようにしてもよい。
【０１２５】
基本制御定数ＰＬ１、ＰＲ１にＰＬｂ、ＰＲｂの値を設定して空燃比フィードバック制御を行うと、空燃比変動の振幅が大きくなり、エンジン１から排出されるＨＣ、ＣＯ、ＮＯｘ、Ｏ2量が増加すると共にフロント三元触媒８での浄化率が低下する。すなわち、フロント三元触媒８を通過するＨＣ、ＣＯ、ＮＯｘ、Ｏ2量が増加する。
【０１２６】
フロント三元触媒８を通過するＨＣ、ＣＯ、ＮＯｘ、Ｏ2量が増加すると、リア三元触媒９での触媒反応量が増加し、このときの反応熱によってリア三元触媒９の温度が上昇する。一方、フロント三元触媒８での触媒反応は増加しないので、フロント三元触媒８の温度は上昇しない（図８の矢印Ｃの状態）。
【０１２７】
フロント三元触媒８にリア三元触媒９よりＯ2ストレージ能力の小さいものが使用されており、フロント三元触媒８に適した空燃比変動振幅がリア三元触媒９に適した空燃比変動振幅よりも小さくなるので、ＰＬａ、ＰＲａより十分に大きな（リア三元触媒９を速やかに昇温させる量のＨＣ、ＣＯ、ＮＯｘ、Ｏ2をリア三元触媒９に供給できる）ＰＬｂ、ＰＲｂを設定することができる。
【０１２８】
ただし、フロント三元触媒８に適した空燃比変動幅がリア三元触媒９に適した空燃比変動振幅となる２つの触媒を用いる場合でも、空燃比変動がフロント三元触媒８とその後の排気通路中でなまされることを考慮すると、フロント三元触媒８の入り口でフロント三元触媒８に適した空燃比変動振幅より大きい振幅となり、リア三元触媒９の入り口でリア三元触媒９に適した空燃比変動振幅以下となるＰＬｂ、ＰＲｂを設定することは可能である。
【０１２９】
なお、値ＰＬｂ、ＰＲｂをフロント三元触媒８の劣化の度合いに応じて可変に設定する場合は図９に示すような処理をさらに行う。
【０１３０】
これについて説明すると、まず、ステップＳ４１１では、フロント三元触媒８の劣化検出が行われた否かを判断する。フロント三元触媒８の劣化検出は、例えば、
・Ｆ／Ｂ条件が成立している。
・エンジン回転数と負荷が所定の劣化検出運転領域にある。
・エンジン回転数と負荷の変動が所定の許容範囲にある。
ことを条件として実行される。
【０１３１】
ここでＦ／Ｂ条件成立とは下記の３つの条件、
・フロントＯ2センサ１０の活性が完了している。
・各種燃料増量補正係数ＣＯＥＦ＝１（エンジン始動直後の各種燃料増量制御が終了している。）
・目標当量比ＴＦＢＹＡ＝１（目標空燃比が理論空燃比）
がすべて成立しているときを指す。
【０１３２】
フロントＯ2センサ１０が規定回転数反転する間のリアＯ2センサ１１の反転回数をＨＺＲＡＴＥとすると、ＨＺＲＡＴＥが大きいほどフロント三元触媒８の劣化の度合いが大きいことになる。ここでは、新たなＨＺＲＡＴＥが算出されたときに「劣化検出が行われた」と判断してステップＳ４１２を実行する。新たなＨＺＲＡＴＥの算出がない間は、前回設定値を保持する。
【０１３３】
ステップＳ４１２では、ＨＺＲＡＴＥを関数ｆ８、ｆ９に代入することによってＰＬｂ、ＰＲｂの値を算出する。フロント三元触媒８が劣化し、そのＯ2ストレージ能力が小さくなると、空燃比変動の振幅が同じであってもフロント三元触媒８を通過するＨＣ、ＣＯ、ＮＯｘの量が増加するので、リア三元触媒９の昇温特性を同程度にするためには昇温制御時の空燃比変動の振幅を図１０に示すように小さくする必要がある。そこで、関数ｆ８、ｆ９は、フロント三元触媒８の劣化度合いＨＺＲＡＴＥが大きくなるほどＰＬｂ、ＰＲｂの大きさが小さくなる特性となるよう定められる。
【０１３４】
また、最初の触媒劣化検出が行われるまでは、ＰＬｂ、ＰＲｂを劣化のない触媒に対応する値（ｆ８（０）、ｆ９（０））に設定する。
【０１３５】
さらに、値ＰＨＯＳＲをＳＯｘの放出量にあわせて可変に設定する場合には、図１１に示す処理を行う。
【０１３６】
これについて説明すると、まず、ステップＳ４２１では、フラグＦｒｉｃｈの値に基づき空燃比をリッチ化すべき条件が成立しているか否かを判断し、リッチ化すべき条件が成立している場合（Ｆｒｉｃｈ＝１）はステップＳ４２２へ進み、そうでない場合（Ｆｒｉｃｈ＝０）は本ルーチンを終了する。
【０１３７】
ステップＳ４２２では、リア三元触媒９のＳＯｘ吸収量ＳＯＸと触媒温度Ｔｃａｔを関数ｆ３に代入することによってＰＨＯＳＲの値を算出する。関数ｆ３は、ＰＨＯＳＲによるリッチシフトの度合いが各パラメータに対して以下のような特性となるように定められる。
・リア三元触媒９のＳＯｘ吸収量ＳＯＸが少ないほどリッチシフトの度合いが小さくなり、ＳＯｘ吸収量ＳＯＸがゼロのときゼロとなる。
・リア三元触媒９の触媒温度Ｔｃａｔが低くなるほどリッチシフトの度合いが小さくなり、ＳＯｘ放出温度Ｔｃａｔ２以下ではゼロとなる。
【０１３８】
したがって、このフローを処理することにより、値ＰＨＯＳＲがＳＯｘの放出量にあわせて可変に設定される。ここで、ＳＯｘの脱離量はリッチ化制御開始からの時間に応じて図１２に示すように変化し、ＳＯｘ吸収量は時間が経つにつれて減少するので、リッチシフトの度合いはリッチ化制御開始からの経過時間が長くなるほど小さくなる。
【０１３９】
次に、α算出部Ｂ５について説明する。
【０１４０】
α算出部Ｂ５は、空燃比フィードバック制御における補正係数αを算出するものである。図１３は、α算出部Ｂ５の制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１４１】
これについて説明すると、まず、ステップＳ５０１では、フロントＯ2センサ１０の出力をＡ／Ｄ変換して酸素濃度信号ＯＳＦ１を求める。
【０１４２】
ステップＳ５０２では、Ｆ／Ｂ条件が成立しているか否かを判断し、Ｆ／Ｂ条件が成立している場合はステップＳ５０３へ進み、そうでない場合はステップＳ５１３へ進む
ステップＳ５０３からＳ５１２では、酸素濃度信号ＯＳＦ１とスライスレベルＳＬＦ１との比較結果に基づき、基本制御定数（リッチ化比例ゲインＰＬ１、リーン化比例ゲインＰＲ１）と補正値ＰＨＯＳを用いた比例制御、及び、基本制御定数（リッチ化積分ゲインＩＬ、リーン化積分ゲインＩＲ）を用いた積分制御によって空燃比フィードバック補正係数αを算出する。なお、フローチャート中の補正係数αに付けられている添え字ｚは前回値（１０ｍｓｅｃ前に算出した値）を表す。
【０１４３】
一方、ステップＳ５０２でＦ／Ｂ条件が成立していないと判断されて進んだステップＳ５２３では，補正係数αを１にクランプする。
【０１４４】
このα算出部Ｂ５において算出された補正係数αは、後述するＴｉ、ＴＩＴＭ算出部Ｂ７において燃料噴射量の演算時に使用される。
【０１４５】
次に、目標空燃比設定部Ｂ６における処理について説明する。目標空燃比設定部Ｂ６は、運転条件やリッチ化条件の成立、不成立に応じて目標空燃比（目標当量比）を設定するものである。
【０１４６】
図１４は目標空燃比設定部Ｂ６における制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１４７】
これについて説明すると、まず、ステップＳ６０１ではクランク角センサ１４の所定信号の発生間隔時間に基づいてエンジン回転数Ｎが求められ、アクセルポジションセンサ１５の出力に基づいてエンジン負荷Ｔが求められる。
【０１４８】
ステップＳ６０２では図５に示した目標当量比設定マップを参照することにより、エンジン回転数Ｎ、エンジン負荷Ｔに応じた目標当量比ＴＦＢＹＡが設定される。ここで目標当量比ＴＦＢＹＡとは理論空燃比と目標空燃比の比（理論空燃比／目標空燃比）であり、
ＴＦＢＹＡ＝１・・・理論空燃比
＞１・・・リッチ空燃比
＜１・・・リーン空燃比
となる。
【０１４９】
ステップＳ６０３では、フラグＦｒｉｃｈの値に基づき空燃比をリッチシフトさせる条件が成立しているが否かが判断される。空燃比をリッチシフトさせる条件が成立している場合（Ｆｒｉｃｈ＝１）はステップＳ６０４へ進み、ステップＳ６０２で設定したＴＦＢＹＡが１より小さいか否かが判断される。そして、ＴＦＢＹＡが１よりも小さいときはステップＳ６０５へ進み、ＴＦＢＹＡに１がセットされる。
【０１５０】
したがって、目標空燃比設定部Ｂ６は運転条件に応じて目標当量比ＴＦＢＹＡを設定するが、空燃比をリッチシフトさせる条件が成立しているときには、運転条件がリーン空燃比運転領域内であっても目標当量比ＴＦＢＹＡに１をセットする。すなわち、一旦被毒解除制御が開始されたら、被毒解除が可能な間（触媒温度がＳＯｘ放出温度以上である間）はリーン運転には移行せず、リッチシフト制御が継続される。
【０１５１】
ここで設定された目標当量比ＴＦＢＹＡは、後述するＴｉ、ＴＩＴＭ算出部Ｂ７に出力され、燃料噴射量の演算時に使用されるほか、空燃比を代表する値として各ルーチンで使用される。
【０１５２】
次に、Ｔｉ、ＴＩＴＭ算出部Ｂ７における処理について説明する。Ｔｉ、ＴＩＴＭ算出部Ｂ７は、上記目標空燃比設定部Ｂ６で設定された目標当量比ＴＦＢＹＡを実現すべく燃料噴射量Ｔｉ、燃料噴射時期ＴＩＴＭを算出するものである。
【０１５３】
図１５はＴｉ、ＴＩＴＭ算出部Ｂ７における制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１５４】
これについて説明すると、まず、ステップＳ７０１ではエアフロメータ３の出力に基づき吸入空気量Ｑａが求められ、クランク角センサ１４の所定信号の発生間隔時間に基づいてエンジン回転数Ｎが求められる。
【０１５５】
ステップＳ７０２では吸入空気量Ｑａ、エンジン回転数Ｎに基づき次式、
Ｔｐ＝Ｋ×Ｑａ／Ｎ                                  ・・・（３）
により基本燃料噴射量Ｔｐ、すなわち理論空燃比相当の燃料量が算出される。Ｋは所定の係数である。
【０１５６】
ステップＳ７０３では、目標空燃比設定部Ｂ６で設定された目標当量比ＴＦＢＹＡ、燃料増量補正係数ＣＯＥＦ、α算出部Ｂ５で設定された空燃比フィードバック補正係数αで基本燃料噴射量Ｔｐが補正され、燃料噴射量Ｔｉが次式、
Ｔｉ＝Ｔｐ×ＴＦＢＹＡ×ＣＯＥＦ×α                ・・・（４）
により算出される。
【０１５７】
ここで燃料増量補正係数ＣＯＥＦは始動後燃料増量補正係数、水温増量補正係数等をまとめて表したもので、冷機時にＣＯＥＦ＞１となり、エンジン１の暖機完了後にＣＯＥＦ＝１となる。
【０１５８】
そして、ステップＳ７０４では、ステップＳ７０３で算出された燃料噴射量Ｔｉと、エンジン回転数Ｎとに基づき、燃料噴射時期ＴＩＴＭが算出される。算出された燃料噴射量Ｔｉ、燃料噴射時期ＴＩＴＭは、コントローラ６内のメモリにストアされ、エンジン１の回転に同期して実行される燃料噴射ルーチンで読み出されて使用される。例えば、燃料噴射時期ＴＩＴＭによって定められるクランク角度で燃料噴射弁５への開弁信号の印加が開始され、燃料噴射量Ｔｉに無効噴射量Ｔｓを加えた量の燃料を噴射すべく開弁信号が印加される。
【０１５９】
なお、本実施形態では、リーン空燃比運転を行う場合に燃焼形態を成層燃焼とし、理論空燃比運転比運転あるいはリッチ空燃比運転を行う場合に燃焼形態を均質燃焼とするので、リーン空燃比運転時は燃料噴射時期ＴＩＴＭが圧縮行程中に設定され、理論空燃比運転時あるいはリッチ空燃比運転時は燃料噴射時期ＴＩＴＭが圧縮行程中に設定される。
【０１６０】
次に、ＡＤＶ設定部Ｂ８について説明する。
【０１６１】
ＡＤＶ設定部Ｂ８は、昇温条件判断部Ｂ２からのフラグＦｈｅａｔに基づき、点火時期ＡＤＶを設定するものである。
【０１６２】
図１６はＡＤＶ設定部における制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１６３】
これについて説明すると、まず、ステップＳ８０１では、昇温条件判断部Ｂ２からのフラグＦｈｅａｔの値に基づき、リア三元触媒９を昇温すべき条件が成立しているか否かを判断する。そして昇温すべき条件が成立している場合（Ｆｈｅａｔ＝１）はステップＳ８０２へ進み、そうでない場合（Ｆｈｅａｔ＝０）はステップＳ８０３へ進む。
【０１６４】
ステップＳ８０２では、運転条件（エンジン回転数Ｎ、エンジン負荷Ｔ）に応じて予め設定される点火時期ＡＤＶＣから所定の遅角補正値ＲＴＤを減算して点火時期ＡＤＶを算出する。ここで点火時期ＡＤＶＣは、例えば、ノッキングが発生しない範囲でエンジンの出力がもっとも大きくなる時期に設定される。このように点火時期をＡＤＶＣから遅角すると、燃焼の時期が遅れて排気温度が上昇する。なお、遅角量と排気温度との関係は図１７に示すようになり、遅角量が多いほど排気温度は上昇する。
【０１６５】
一方、昇温すべき条件が成立していないとして進んだステップＳ８０３では、点火時期ＡＤＶをＡＤＶＣに設定する。
【０１６６】
したがって、このフローを処理することにより、ＡＤＶ設定部Ｂ８は昇温条件判断部Ｂ２からのフラグＦｈｅａｔの値に基づき、リア三元触媒９を昇温すべき条件が成立、不成立を判断し、昇温条件が成立している場合は排気温度を上昇させるべく点火時期ＡＤＶを所定量ＲＴＤだけ遅角させる。そして、そのＡＤＶに基づき、図示しない点火制御ルーチンで点火プラグ６に点火信号が出力される。
【０１６７】
次に、ＥＶＯ設定部Ｂ９について説明する。
【０１６８】
ＥＶＯ設定部Ｂ９は、昇温条件判断部Ｂ２からのフラグＦｈｅａｔに基づき、排気弁の開時期ＥＶＯを設定するものである。
【０１６９】
図１８はＥＶＯ設定部における制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１７０】
これについて説明すると、まず、ステップＳ９０１では、昇温条件判断部Ｂ２からのフラグＦｈｅａｔの値に基づきリア三元触媒９を昇温すべき条件が成立しているか否かを判断し、昇温すべき条件が成立している場合（Ｆｈｅａｔ＝１）はステップＳ９０２へ進み、そうでない場合（Ｆｈｅａｔ＝０）はステップＳ９０３へ進む。
【０１７１】
ステップＳ９０２では、排気弁閉時期ＥＶＯを通常時より進角した位置に設定する。排気弁開時期ＥＶＯをこのように進角すると、膨張行程末期のガスが排気通路７に流出するので排気温度が上昇する。排気弁開時期ＥＶＯと排温との関係は図１９に示すようになり、排気弁開時期ＥＶＯの進角量が多くなるほど排気温度が上昇する。
【０１７２】
一方、リア三元触媒９を昇温すべき条件が成立していない場合（Ｆｈｅａｔ＝０）は、ステップＳ９０３へ進み、排気弁閉時期ＥＶＯを通常時の位置に設定する。
【０１７３】
したがって、このフローを処理することにより、ＥＶＯ設定部Ｂ９は、昇温条件判断部Ｂ２からのフラグＦｈｅａｔに基づきリア三元触媒９を昇温すべき条件の成立、不成立を判断し、昇温すべき条件が成立している場合は排気弁開時期を進角させ、排気温度を上昇させる。そして、ＥＶＯ設定部９は、排気弁閉時期が設定したＥＶＯとなるように、図示しない動弁制御ルーチンでエンジン１の可変動弁機構に駆動信号を出力する。
【０１７４】
以上、コントローラ６の各要素における処理について説明したが、次に、全体の作用について説明する。
【０１７５】
本実施形態に係るエンジンの排気浄化装置においては、エンジン１からの排気に含まれるＣＯ、ＨＣ及びＮＯｘは、理論空燃比運転時はフロント三元触媒８でほぼ浄化されるが、リーン空燃比運転時にフロント三元触媒８で浄化しきれなかったＮＯｘは、ＮＯｘ吸蔵還元型の三元触媒であるリア三元触媒９において浄化される。
【０１７６】
しかしながら、エンジン１がリーン空燃比運転を続けるとリア三元触媒９にＳＯｘが堆積し、リア三元触媒９のＮＯｘ浄化性能が低下する。そこでコントローラ６は、リア三元触媒９に堆積したＳＯｘを放出すべき条件を判断し、ＳＯｘ放出すべき条件が成立した場合には、リア三元触媒９のＳＯｘ放出制御（硫黄被毒解除制御）を行う。
【０１７７】
具体的には、フロント三元触媒８に流入する排気の空燃比変動の振幅を増大させることによって、フロント三元触媒８を通過し、リア三元触媒９に流入するＣＯ、ＨＣ、ＮＯｘ、Ｏ2の量を増大させる。そして、それらがリア三元触媒９上で反応するときの反応熱によりリア三元触媒９を昇温させ、堆積したＳＯｘを放出させる。
【０１７８】
このとき、ＣＯ、ＨＣ、ＮＯｘをリア三元触媒９上で最大効率で反応させてリア三元触媒９の昇温効果を高めるために、リア三元触媒９に流入する排気の空燃比の中央値を理論空燃比にフィードバック制御する。そして、リア三元触媒９の昇温効果をさらに高めるべくエンジン１の点火時期を遅らせ、排気弁の開時期を進角させ、排気温度を上昇させる。
【０１７９】
リア三元触媒９を十分に昇温させた後は、空燃比をリッチ側にシフトし、放出されたＳＯｘの還元浄化を行う。
【０１８０】
図２０はＳＯｘ放出制御が行われているときの各種パラメータの変化の様子を示したタイムチャートである。ただし、ここでは説明を簡単にするため、運転条件は常に領域Ａ内にあるとする。
【０１８１】
これについて説明すると、まず、時刻ｔ１では、リア三元触媒９に堆積したＳＯｘ量が所定量を超え、ＳＯｘを放出すべき条件が成立する（Ｆｓｏｘ＝１）。
【０１８２】
しかしながら、時刻ｔ１〜ｔ２ではリア三元触媒９の温度Ｔｃａｔが低いため通常制御を行い、触媒温度Ｔｃａｔが上昇するのを待つ。通常制御時に理論空燃比運転を行う場合、空燃比フィードバック制御による空燃比変動の振幅は通常の大きさとなる。
【０１８３】
時刻ｔ２でリア三元触媒９の温度が所定値Ｔｃａｔ１を超えるとリア三元触媒９を昇温すべき条件が成立し（Ｆｈｅａｔ＝１）、時刻ｔ２〜ｔ３では、基本制御定数ＰＬ１、ＰＲ１に値ＰＬｂ、ＰＲｂを設定して、空燃比フィードバック制御による空燃比変動の振幅を増大させる。
【０１８４】
また、補正値ＰＨＯＳに値ＰＨＯＳＳを設定し、空燃比フィードバック制御の制御中央値（＝フロント三元触媒８及びリア三元触媒９に流入する排気の平均空燃比）をほぼ理論空燃比に制御する。フロント三元触媒８の浄化率は空燃比変動の振幅大のため低下しているので、フロント三元触媒８を通過してリア三元触媒９に流入するＨＣ、ＣＯ、ＮＯｘ、Ｏ2の量が増大し、また、このように空燃比を理論空燃比に制御することによりリア三元触媒９上の反応効率が最大となり、リア三元触媒９の昇温効果が高められる。
【０１８５】
また、これと同時に点火時期の遅角制御と排気弁開時期の進角制御も行うことで排気温度を上昇させ、リア三元触媒９の昇温効果をさらに高める。
【０１８６】
時刻ｔ３でリア三元触媒９の温度がＳＯｘ放出温度Ｔｃａｔ２を超えるとリッチ化条件が成立する（Ｆｒｉｃｈ＝１）ので、時刻ｔ３〜ｔ４では、今度は補正値ＰＨＯＳに値ＰＨＯＳＲを設定し、フロント及びリア三元触媒９に流入する排気の平均空燃比を理論空燃比よりリッチ側にシフトする。このリッチシフトにより、リア三元触媒９からのＳＯｘ放出が促進され、かつ、放出されたＳＯｘが未燃の燃料で還元浄化される。
【０１８７】
リア三元触媒９に流入する空燃比が理論空燃比からリッチ側にずれることにより、昇温効果は若干減少する可能性があるが、既に触媒温度ＴｃａｔがＳＯｘ放出温度Ｔｃａｔ２に達しているので問題は無く、また、緩やかに温度が上昇するのでリア三元触媒９の熱劣化が抑えられる。
【０１８８】
しかしながら時刻ｔ４で触媒温度ＴｃａｔがＴｃａｔ３を超えてしまうとリア三元触媒９が劣化してしまう可能性が出てくる。そこで、時刻ｔ４〜ｔ５では、基本制御定数ＰＬ１、ＰＲ１にＰＬａ、ＰＲａを設定して空燃比フィードバック制御による空燃比変動の振幅を通常の大きさとし、リア三元触媒９の触媒温度がＴｃａｔ３を越えて過剰に上昇するのを抑制する。また、点火時期、排気弁開時期を通常に戻し、リア三元触媒９の温度上昇を押さえる。なお、補正値ＰＨＯＳには値ＰＨＯＳＲが設定されるので、フロント及びリア三元触媒９に流入する排気のリッチシフトは継続される。
【０１８９】
時刻ｔ５で触媒温度ＴｃａｔがＴｃａｔ３より低くなると、再び昇温条件が成立し（Ｆｈｅａｔ＝１）、時刻ｔ５〜ｔ６では時刻ｔ３〜ｔ４と同じく、空燃比変動が大きく設定されるとともに、点火時期の遅角、排気弁開時期の進角が行われ、リア三元触媒９の昇温が行われる。そして、フロント三元触媒８及びリア三元触媒９に流入する排気の平均空燃比を理論空燃比よりリッチ側にシフトして放出されたＳＯｘの還元浄化を促進する。
【０１９０】
時刻ｔ６で触媒温度Ｔｃａｔが再びＴｃａｔ３を超えるとフラグＦｈｅａｔの値がゼロになり、時刻ｔ６〜ｔ７では時刻ｔ４〜ｔ５と同じく、空燃比フィードバック制御による空燃比変動の振幅、点火時期、排気弁開時期が通常の大きさに戻され、リア三元触媒９の温度上昇が抑えられる。
【０１９１】
そして、時刻ｔ７でリア三元触媒９に堆積したＳＯｘがほぼ放出されたと判断されてＳＯｘ放出条件が不成立になると（Ｆｓｏｘ＝０）、リッチ化条件も不成立となり（Ｆｒｉｃｈ＝０）、平均空燃比を理論空燃比に戻してＳＯｘ被毒解除を完了する。
【０１９２】
続いて、第２の実施形態について説明する。
【０１９３】
第２の実施形態は、第１の実施形態と異なり、リア三元触媒９後方に設けられたＮＯｘセンサの出力に基づきＳＯｘ放出条件を判断するものであり、第１の実施形態に対し、ＳＯｘ放出条件判断部Ｂ１における処理のみ異なる。
【０１９４】
図２１は、ＳＯｘ放出条件判断部Ｂ１の制御ルーチンを示したフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０１９５】
これについて説明すると、ステップＳ１５１では、ＮＯｘセンサの出力をＡ／Ｄ変換してＮＯｘの濃度信号ＮＯＸＳを求め、触媒温度センサ１２の出力をＡ／Ｄ変換して触媒温度Ｔｃａｔを求める。さらにクランク角センサ１４の所定信号の発生間隔時間に基づいてエンジン回転数Ｎを求め、アクセルポジションセンサ１５の出力に基づいてエンジン負荷Ｔを求める。
【０１９６】
ステップＳ１５２では、目標空燃比設定部Ｂ６からの目標当量比ＴＦＢＹＡの値に基づき、空燃比がリーン側に制御されているか否かを判断し、リーン側に制御されている場合（ＴＦＢＹＡ＜１）はステップＳ１５３へ進み、そうでない場合はステップＳ１６０へ進む。
【０１９７】
ステップＳ１５３では、所定時間（ここでは１０ｍｓｅｃ）あたりにリア三元触媒９に吸収されるＮＯｘ量ΔＮＯＸを次式、
ΔＮＯＸ＝（所定時間当たりにリア三元触媒９に流入するＮＯｘ量）×（リア三元触媒９のＮＯｘ吸収率）          ・・・（５）
により算出する。
【０１９８】
所定時間当たりにリア三元触媒９に流入するＮＯｘ量は、例えば、エンジン１の回転数Ｎ、エンジン負荷Ｔ、平均空燃比をパラメータとして算出される。
【０１９９】
リア三元触媒９のＮＯｘ吸収率（単位時間あたりに吸収されるＮＯｘ量／単位時間あたりに流入するＮＯｘ量）は、例えば、現在のＮＯｘ吸収量（前回算出したＮＯｘ吸収量の推定値）ＮＯＸｚ、触媒温度Ｔｃａｔ、平均空燃比をパラメータとして算出される。
【０２００】
平均空燃比としては，目標空燃比設定部Ｂ６で設定される目標当量比ＴＦＢＹＡを用いることができる。リア三元触媒９のＮＯｘ吸収率は、ゼロ以上１以下の値で、各パラメータに対して以下のような特性となる。
・リア三元触媒９のＮＯｘ吸収量ＮＯＸが少ないほどＮＯｘ吸収率が大きくなり、ゼロのときＮＯｘ吸収率は最大となる。
・リア三元触媒９の触媒温度Ｔｃａｔが所定温度のときＮＯｘ吸収率が最大で、所定温度より低くなるほど小さくなり、触媒活性温度以下ではゼロ。所定温度より高くなるほど小さくなる。
・リーンの度合いが小さくなるほどＮＯｘ吸収率が小さくなり、理論空燃比よりリッチ側の空燃比ではゼロとなる。
【０２０１】
ステップＳ１５４では、前回算出した推定ＮＯｘ量ＮＯＸｚにΔＮＯＸを加えて最新の推定ＮＯｘ量ＮＯＸを算出する。
【０２０２】
ステップＳ１５５では、推定ＮＯｘ量ＮＯＸが所定量ＮＯＸｔｈ以上となったか否かを判断し、所定量ＮＯＸｔｈ以上の場合はステップＳ１５６へ進み、そうでない場合は本ルーチンを終了する。ここで所定量ＮＯＸｔｈは、リア三元触媒９のＮＯｘ吸収許容量あるいはそれより若干小さい値に設定される。
【０２０３】
ステップＳ１５６では、リア三元触媒９に吸収されたＮＯｘを放出すべき条件の成立を示すフラグＦｎｏｘに１をセットする。そしてフラグＦｎｏｘが１となったら、図示しないリッチスパイク制御ルーチンによって空燃比を一時的にリッチ化する制御を行う。
【０２０４】
ステップＳ１５７では、ＮＯｘ濃度信号ＮＯＸＳが許容値ＮＯＸＳｔｈ以上か否かを判断する。リア三元触媒９のＮＯｘ吸収率は、リア三元触媒９に吸収されたＮＯｘとＳＯｘの総量が増加するほど低下するので、図２２に示すように、ＮＯｘとＳＯｘの総量が増加するとリア三元触媒９の下流のＮＯｘ濃度が高くなる。
【０２０５】
そのため、許容量のＳＯｘと所定量のＮＯＸｔｈのＮＯｘがリア三元触媒９に吸収されているときに下流に流出するＮＯｘ量に対応するＮＯｘ濃度を許容値ＮＯＸＳｔｈとして設定することにより、許容量以上のＳＯｘ被毒が発生しているか否かを判断することができる。
【０２０６】
ステップＳ１５８では、空燃比をリッチ化すべき条件が成立してからの経過時間を計測するためのカウンタＴｒｉｃｈをゼロにリセットし、ステップＳ１５９ではフラグＦｓｏｘにＳＯｘ放出条件が成立したことを示す１をセットする。
【０２０７】
一方、ステップＳ１５２で空燃比がリーン側に設定されていないとして進んだステップＳ１６０では、推定ＮＯｘ吸収量ＮＯＸをゼロとする。これは、空燃比が理論空燃比もしくはリッチに制御されると、リア三元触媒９に吸収されたＮＯｘは速やかに放出されるためである。そしてステップＳ１６１では、フラグＦｎｏｘをゼロにする。
【０２０８】
ステップＳ１６２では、空燃比をリッチ化すべき条件が成立しているか否かを判断し、リッチ化すべき条件が成立している場合（Ｆｒｉｃｈ＝１）はステップＳ１６３へ進んでカウンタＴｒｉｃｈをカウントアップする。そうでない場合（Ｆｒｉｃｈ＝０）は本ルーチンを終了する。
【０２０９】
ステップＳ１６４では、空燃比をリッチ化すべき条件が成立してからの経過時間Ｔｒｉｃｈが所定時間Ｔｒｔｈを超えたか否かを判断し、所定時間Ｔｒｔｈより大きい場合は、所定時間のリッチ化によりリア三元触媒９の被毒が解除されたと判断し、ステップＳ１６５へ進んでフラグＦｓｏｘにＳＯｘ放出条件不成立を示すゼロをセットする。
【０２１０】
なお、ＮＯＸの算出は、より簡便に行ってもよく、例えば、ステップＳ１５３を省略しステップＳ１５４のΔＮＯＸを固定値としてもよい。
【０２１１】
したがって、このフローを処理することにより、ＳＯｘ放出条件判断部Ｂ１は、リア三元触媒９下流に設けられたＮＯｘセンサの出力に基づきリア三元触媒９のＳＯｘ放出制御を行うか否かを判断することができる。
【０２１２】
具体的には、リア三元触媒９に吸収されたＮＯｘ量が所定量を超え、かつリア三元触媒９下流のＮＯｘ濃度が所定値を超えるとＳＯｘ放出条件が成立したと判断される。そして、リッチ化条件が成立してから所定時間Ｔｒｔｈ経過した後にＳＯｘ放出条件が不成立と判断される。
【０２１３】
なお、この第２実施形態において、ＰＨＯＳＲを可変に設定する場合には図２３に示す処理をさらに行う。
【０２１４】
これについて説明すると、まず、ステップＳ２５１では、空燃比をリッチ化すべき条件が成立しているか否かを判断し、リッチ化条件が成立している場合（Ｆｒｉｃｈ＝１）はステップＳ２５２へ進み、そうでない場合は本ルーチンを終了する。
【０２１５】
そして、ステップＳ２５２では関数ｆ７によってＰＨＯＳＲの値を算出する。ここで関数ｆ７は、値ＰＨＯＳＲによって決まるリッチシフトの度合いが各パラメータに対し、
・空燃比をリッチ化すべき条件が成立してからの経過時間Ｔｒｉｃｈが長くなるほどリッチシフトの度合いが小さくなり、Ｔｒｉｃｈ＝Ｔｒｔｈのときゼロとなる。
・リア三元触媒９の触媒温度Ｔｃａｔが低くなるほどリッチシフトの度合いが小さくなり、触媒温度ＴｃａｔがＳＯｘ放出温度以下ではゼロとなる。
といった特性を有するよう定められる。
【０２１６】
続いて、本発明の第３の実施形態について説明する。
【０２１７】
第３の実施形態は、第１の実施形態に対し、ＳＯｘ放出条件判断部Ｂ１における処理のみ異なる。
【０２１８】
図２４はそのＳＯｘ放出条件判断部Ｂ１における処理を示すフローチャートであり、所定時間毎（例えば、１０ｍｓｅｃ毎）に実行される。
【０２１９】
これについて説明すると、まず、ステップＳ１７１では、スタータスイッチ１７からの出力信号の変化に基づき、エンジン始動直後か否かが判断される。スタータスイッチ１７からの出力信号がＯＦＦからＯＮに変化し、エンジン始動直後であると判断された場合はステップＳ１７１へ進み、そうでない場合はステップＳ１７４へ進む。
【０２２０】
ステップＳ１７２では変数Ｔｒｉｃｈにゼロをセットし、ステップＳ１７３ではフラグＦｓｏｘに１をセットする。
【０２２１】
そして、ステップＳ１７４では、空燃比をリッチ化すべき条件が成立しているか否かをフラグＦｒｉｃｈの値に基づき判断し、空燃比をリッチ化すべき条件が成立している（Ｆｒｉｃｈ＝１）と判断した場合は、ステップＳ１７５へ進み、そうでない場合（Ｆｒｉｃｈ＝０）は本ルーチンを終了する。
【０２２２】
ステップＳ１７５ではＴｒｉｃｈをカウントアップし、ステップＳ１７６ではＴｒｉｃｈが所定値Ｔｒｔｈを超えたか否かが判断する。ＴｒｉｃｈがＴｒｔｈを超えたと判断した場合はステップＳ１７７へ進み、フラグＦｓｏｘにＳＯｘ放出条件不成立を示すゼロをセットする。そうでない場合は本ルーチンを終了する。
【０２２３】
したがって、このフローチャートを処理することにより、ＳＯｘ放出条件判断部Ｂ１は、エンジン始動直後からリッチ化条件成立後所定期間経過するまで、ＳＯｘ放出条件が成立したと判断する。
【０２２４】
以上、本発明の実施の形態について説明したが、本発明が適用可能な範囲は、上記実施形態のようにＳＯｘ放出制御のために触媒を昇温させる排気浄化装置に限定されるものではなく、触媒の昇温制御を行うものに対して広く適用可能なものである。
【図面の簡単な説明】
【図１】本発明が適用されるエンジン排気浄化装置の概略構成図である。
【図２】コントローラのＳＯｘ放出制御に関する部分の構成を示すブロック図である。
【図３】ＳＯｘ放出条件判断部の制御ルーチンを示すフローチャートである。
【図４】昇温条件判断部の制御ルーチンを示すフローチャートである。
【図５】目標当量比設定マップである。
【図６】リッチ化条件判断部の制御ルーチンを示すフローチャートである。
【図７】空燃比制御値設定部の制御ルーチンを示すフローチャートである。
【図８】空燃比変動の振幅と触媒温度との関係を示した図である。
【図９】ＰＬｂ、ＰＲｂをフロント三元触媒の劣化の度合いに応じて可変に設定する場合の処理を示すフローチャートである。
【図１０】リア三元触媒のＯ2ストレージ能力と必要とされる空燃比変動の振幅との関係を示した図である。
【図１１】ＰＨＯＳＲをＳＯｘの放出量にあわせて可変に設定する場合の処理を示すフローチャートである。
【図１２】リッチ化制御開始からの経過時間とＳＯｘ脱離量との関係を示した図である。
【図１３】α算出部の制御ルーチンを示すフローチャートである。
【図１４】目標空燃比設定部の制御ルーチンを示すフローチャートである。
【図１５】Ｔｉ、ＴＩＴＭ算出部の制御ルーチンを示すフローチャートである。
【図１６】ＡＤＶ設定部の制御ルーチンを示すフローチャートである。
【図１７】点火時期の遅角量と排気温度との関係を示す図である。
【図１８】ＥＶＯ設定部の制御ルーチンを示すフローチャートである。
【図１９】排気弁開時期と排気温度との関係を示す図である。
【図２０】本発明の作用を示すタイミングチャートである。
【図２１】第２実施形態におけるＳＯｘ放出条件判断部の制御ルーチンを示すフローチャートである。
【図２２】リア三元触媒に吸収されたＮＯｘとＳＯｘの総量とリア三元触媒下流のＮＯｘ濃度との関係を示す図である。
【図２３】第２実施形態においてＰＨＯＳＲを可変に設定する場合の処理を示すフローチャートである。
【図２４】第３実施形態のＳＯｘ放出条件判断部における処理を示すフローチャートである。
【符号の説明】
１  エンジン
２  吸気通路
３  エアフロメータ
６  コントローラ
７  排気通路
８  フロント三元触媒
９  リア三元触媒
１０、１１  Ｏ2センサ
１２  触媒温度センサ
１４  クランク角センサ
１７  スタータスイッチ
【図１】
0004158268.tif 000002
【図２】
0004158268.tif 000003
【図３】
0004158268.tif 000004
【図４】
0004158268.tif 000005
【図５】
0004158268.tif 000006
【図６】
0004158268.tif 000007
【図７】
0004158268.tif 000008
【図８】
0004158268.tif 000009
【図９】
0004158268.tif 000010
【図１０】
0004158268.tif 000011
【図１１】
0004158268.tif 000012
【図１２】
0004158268.tif 000013
【図１３】
0004158268.tif 000014
【図１４】
0004158268.tif 000015
【図１５】
0004158268.tif 000016
【図１６】
0004158268.tif 000017
【図１７】
0004158268.tif 000018
【図１８】
0004158268.tif 000019
【図１９】
0004158268.tif 000020
【図２０】
0004158268.tif 000021
【図２１】
0004158268.tif 000022
【図２２】
0004158268.tif 000023
【図２３】
0004158268.tif 000024
【図２４】
0004158268.tif 000025