(57)【要約】      （修正有）【課題】排気通路に配設された触媒の酸素吸蔵量を推定するとともに、その推定酸素吸蔵量を使用して機関を制御する。【解決手段】制御装置は、機関の運転中に機関停止要求が発生したか否かを判定し、機関停止要求が発生した場合に「触媒の実際の酸素吸蔵量」が「最大の量又は最小の量」になるように、その触媒に「過剰な酸素又は過剰な未燃物」を供給する。そして、制御装置は、触媒の酸素吸蔵量が「前記最大の量又は前記最小の量」に到達したと推定される時点にて、前記機関の回転を停止させる。加えて、制御装置は、機関の回転を停止させた時点にて推定酸素吸蔵量を、予め取得された最大酸素吸蔵量に基く値又は最小酸素吸蔵量である「０」に設定することにより、推定酸素吸蔵量を初期化する。【選択図】図１
2012062795.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の排気通路に配設された触媒の酸素吸蔵量を推定する酸素吸蔵量推定手段を備えるとともに前記酸素吸蔵量推定手段により推定される酸素吸蔵量を使用して前記機関を制御するように構成された内燃機関の制御装置であって、
前記機関の運転中に前記機関の運転を停止する要求である機関停止要求が発生したか否かを判定する停止要求発生判定手段と、
前記機関停止要求が発生した場合に前記触媒の実際の酸素吸蔵量が最大の量又は最小の量に到達するように前記触媒に過剰な酸素又は過剰な未燃物を供給する制御手段と、
前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したか否かを判定するとともに、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定したとき前記推定される酸素吸蔵量を前記触媒の最大酸素吸蔵量又は前記触媒の最小酸素吸蔵量に設定する推定酸素吸蔵量初期化手段と、
を備える制御装置。
【請求項２】
請求項１に記載の内燃機関の制御装置において、
前記制御手段は、
前記機関停止要求発生時における前記触媒の温度を推定するとともに、前記推定した触媒の温度に基いて前記触媒に前記過剰な酸素又は前記過剰な未燃物を供給する供給継続時間を決定し、前記機関停止要求発生時から前記決定された供給継続時間が経過した時点にて前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定するように構成された制御装置。
【請求項３】
請求項１又は請求項２に記載の内燃機関の制御装置において、
前記制御手段は、
前記機関停止要求が発生した時点から前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定される時点まで前記機関を回転させることにより同機関を通して前記触媒に前記過剰な酸素又は前記過剰な未燃物を供給し、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定されたとき前記機関の回転を停止させるように構成された制御装置。
【請求項４】
請求項１乃至請求項３の何れか一項に記載の内燃機関の制御装置において、
前記制御手段は、
前記機関停止要求が発生した場合、前記触媒の実際の酸素吸蔵量を前記最大の量に到達させるべく前記機関への燃料の供給を停止し且つ前記機関を前記機関以外の動力源により強制的に回転させることにより前記触媒に過剰な酸素を含む大気を供給するとともに、前記触媒の実際の酸素吸蔵量が前記最大の量に到達したと判定されたとき前記機関以外の動力源による前記機関の強制的な回転を停止することにより前記機関の回転を停止させるように構成され、
前記推定酸素吸蔵量初期化手段は、
前記触媒の実際の酸素吸蔵量が前記最大の量に到達したと判定したとき前記推定される酸素吸蔵量を前記触媒の最大酸素吸蔵量に設定するように構成された制御装置。
【請求項５】
請求項１乃至請求項３の何れか一項に記載の内燃機関の制御装置において、
前記制御手段は、
前記機関停止要求が発生した場合、前記触媒の実際の酸素吸蔵量を前記最小の量に到達させるべく前記機関に供給される混合気に含まれる燃料の量を同混合気の空燃比が理論空燃比よりも小さい空燃比となるように制御することにより前記触媒に過剰な未燃物を供給するとともに、前記触媒の実際の酸素吸蔵量が前記最小の量に到達したと判定されたとき前記機関への燃料の供給を停止することにより前記機関の回転を停止させるように構成され、
前記推定酸素吸蔵量初期化手段は、
前記触媒の実際の酸素吸蔵量が前記最小の量に到達したと判定したとき前記推定される酸素吸蔵量を前記触媒の最小酸素吸蔵量に設定するように構成された制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の排気通路に配設された触媒の酸素吸蔵量を機関の制御（例えば、空燃比制御）に使用する内燃機関の制御装置に関する。
【背景技術】
【０００２】
従来の内燃機関の制御装置の一つ（以下、「従来装置」と称呼する。）は、内燃機関の排気通路に配設された触媒（三元触媒）の酸素吸蔵量を推定し、その推定される酸素吸蔵量に基いて機関に供給される混合気の空燃比を制御するようになっている（例えば、特許文献１を参照。）。この従来装置は、触媒の下流側に配設された下流側空燃比センサの出力値が「リッチ空燃比に相当する値」になったとき、推定される酸素吸蔵量を「０」にリセットするようになっている。なお、本明細書において、推定される酸素吸蔵量は「推定酸素吸蔵量」とも称呼される。更に、理論空燃比よりも大きい空燃比（理論空燃比よりもリーンな空燃比）は「リーン空燃比」とも称呼され、理論空燃比よりも小さい空燃比（理論空燃比よりもリッチな空燃比）は「リッチ空燃比」とも称呼される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２３９７８９号公報
【発明の概要】
【０００４】
しかしながら、酸素吸蔵量の推定は必ずしも精度良く行えない場合があり、且つ、機関の運転が停止される時点において下流側空燃比センサの値が常にリッチ空燃比に相当する値となるとは限らないので、例えば、機関運転停止時から短時間のうちに機関の運転が再開されるような場合、その機関の始動時における推定酸素吸蔵量が真の酸素吸蔵量から乖離し、その結果、機関の制御（例えば、空燃比制御）が望ましい制御にならないという問題がある。このような状況は、機関のみを動力源として有する通常の車両のみならず、例えば、機関とモータとを動力源として備えたハイブリッド車両、或いは、車両停止時に機関の運転を自動的に停止するとともに車両発進時に機関を自動的に始動させる「自動運転停止・自動運転再開システム」を搭載した車両、等において顕著に発生する。
【０００５】
本発明は、上述した課題に対処するために為されたものである。即ち、本発明の目的の一つは、機関の運転を停止する場合に触媒の酸素吸蔵量を最大の量又は最小の量に強制的に移行させるとともに推定酸素吸蔵量を最大酸素吸蔵量又は最小酸素吸蔵量に一致させることにより、その後の機関始動時における推定酸素吸蔵量を真の酸素吸蔵量にできるだけ近づけることができる内燃機関の制御装置を提供することにある。
【０００６】
本発明の内燃機関の制御装置（以下、単に「本発明装置」とも称呼する。）は、前記機関の排気通路に配設された触媒（三元触媒装置）の酸素吸蔵量を推定する酸素吸蔵量推定手段を備えるとともに前記酸素吸蔵量推定手段により推定される酸素吸蔵量（推定酸素吸蔵量）を使用して前記機関を制御する内燃機関の制御装置であり、停止要求発生判定手段と、制御手段と、推定酸素吸蔵量初期化手段と、を備える。
【０００７】
前記停止要求発生判定手段は、前記機関の運転中に前記機関の運転を停止する要求（即ち、機関停止要求）が発生したか否かを判定する。機関停止要求は、車両のイグニッション・キー・スイッチがオン位置からオフ位置に変更されたときに発生する。或いは、機関がハイブリッド車両に搭載されている場合、及び、自動運転停止・自動運転再開システムが採用された車両等に搭載されている場合、機関停止要求は所定の条件が満たされたときに自動的に発生する。
【０００８】
前記制御手段は、前記機関停止要求が発生した場合、前記触媒の実際の酸素吸蔵量が最大の量（即ち、その時点の触媒が吸蔵できる酸素の最大の量）又は最小の量（即ち、ゼロ）に到達するように前記触媒に過剰な酸素又は過剰な未燃物を供給する。後述するように、前記過剰な酸素は、「機関への燃料供給を停止した上で同機関を同機関以外の動力源により回転させ、前記機関から前記触媒へと大気を供給すること」により前記触媒へと供給され得る。或いは、前記過剰な酸素は、「前記排気通路の前記触媒の上流側に設けられた二次空気供給装置を作動させること」により前記触媒へと供給され得る。更に、前記過剰な未燃物は、「機関への燃料供給を継続するとともに機関に供給される混合気の空燃比をリッチ空燃比に設定すること」により前記触媒へと供給され得る。或いは、前記過剰な未燃物は、「前記排気通路の前記触媒の上流側に設けられた還元剤供給装置を作動させること」により前記触媒へと供給され得る。
【０００９】
前記推定酸素吸蔵量初期化手段は、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したか否かを判定する。
【００１０】
例えば、前記排気通路の前記触媒の下流側に下流側空燃比センサが備えられている場合、前記推定酸素吸蔵量初期化手段は、その下流側空燃比センサの出力値に基いて前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したか否かを判定することができる。より具体的に述べると、本発明装置の一態様においては、前記触媒に前記過剰な酸素が供給されている場合、前記下流側空燃比センサの出力値がリーン空燃比に相当する値となったか否かを判定することにより、前記触媒の実際の酸素吸蔵量が前記最大の量に到達したか否かを判定する。本発明装置の他の態様においては、前記触媒に前記過剰な未燃物が供給されている場合、前記下流側空燃比センサの出力値がリッチ空燃比に相当する値となったか否かを判定することにより、前記触媒の実際の酸素吸蔵量が前記最小の量に到達したか否かを判定する。
【００１１】
加えて、前記推定酸素吸蔵量初期化手段は、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定したとき、前記推定される酸素吸蔵量を、「前記触媒の最大酸素吸蔵量（前記触媒に過剰な酸素が供給されていた場合）」又は「前記触媒の最小酸素吸蔵量（前記触媒に過剰な未燃物が供給されていた場合）」に設定する。
【００１２】
前記推定酸素吸蔵量として設定される前記触媒の最大酸素吸蔵量は、前記機関の通常の運転中に別途取得される最大酸素吸蔵量（通常運転時最大酸素吸蔵量）、及び、前記通常運転時最大酸素吸蔵量に基く量、の何れかに設定することができる。前記通常運転時最大酸素吸蔵量に基く量の一例は、前記通常運転時最大酸素吸蔵量と前記機関停止要求発生時における触媒の温度とに基いて算出される最大酸素吸蔵量である。前記推定酸素吸蔵量として設定される前記触媒の最小酸素吸蔵量の一例は「０」である。
【００１３】
これによれば、機関停止要求が発生した場合、触媒の実際の酸素吸蔵量が最大の量又は最小の量へと移行させられる。そして、触媒の実際の酸素吸蔵量が最大の量又は最小の量に到達したと判定（推定）されたとき、推定酸素吸蔵量は「触媒に過剰な酸素が供給されてきた場合には触媒の最大酸素吸蔵量」に一致させられ、或いは、推定酸素吸蔵量は「触媒に過剰な未燃物が供給されてきた場合には触媒の最小酸素吸蔵量」に一致させられる。即ち、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定されたとき、推定酸素吸蔵量が最大酸素吸蔵量及び最小酸素吸蔵量の何れかに初期化される。
【００１４】
この推定酸素吸蔵量の初期化により、推定酸素吸蔵量と実際の酸素吸蔵量とを高い精度をもって一致させることができるので、その後の機関始動時点から推定酸素吸蔵量と実際の酸素吸蔵量との差を小さくすることができる。この結果、推定酸素吸蔵量を用いた機関の制御を機関の始動直後から適切に行うことができる。更に、推定酸素吸蔵量の初期化に伴う作動が機関停止要求の発生後に行われるので、推定酸素吸蔵量の初期化に伴う作動が前記機関を搭載した車両の走行に悪影響を及ぼすことを回避することもできる。
【００１５】
ところで、触媒の実際の酸素吸蔵量が最大の量に到達したか否かの判定は、触媒の下流に設けられた空燃比センサ（下流側空燃比センサ）の出力値がリーン空燃比に相当する値になったか否かにより判定することができる。或いは、触媒の実際の酸素吸蔵量が最小の量に到達したか否かの判定は、下流側空燃比センサの出力値がリッチ空燃比に相当する値になったか否かにより判定することができる。
【００１６】
一方、触媒が吸蔵（又は放出）することができる酸素の量は触媒の温度に依存して変化する。従って、例えば、機関停止要求発生後に触媒に過剰な未燃物を供給する場合において、下流側空燃比センサの出力値がリッチ空燃比に相当する値となった場合であっても、触媒の酸素吸蔵量は必ずしも最小の量になっていない場合がある。これは、触媒の温度が相対的に低い場合、触媒が酸素を依然として吸蔵している場合であっても、触媒流入ガスに含まれる未燃物がその触媒に吸蔵されている酸素と結合することなく触媒を通過する現象（所謂「吹き抜け現象」）が生じる場合があるからである。
【００１７】
或いは、機関停止要求発生後に触媒に過剰な酸素を供給する場合において、下流側空燃比センサの出力値がリーン空燃比に相当する値となった場合であっても、触媒の酸素吸蔵量は必ずしも最大の量になっていない場合がある。これは、触媒の温度が相対的に低い場合、触媒が酸素を吸蔵する余力をもっている場合であっても、触媒流入ガスに含まれる酸素が触媒に吸蔵されることなく触媒を通過する現象が生じる場合があるからである。
【００１８】
そこで、本発明装置の一つの態様において、前記制御手段は、
前記機関停止要求発生時における前記触媒の温度を推定するとともに、前記推定した触媒の温度に基いて「前記触媒に前記過剰な酸素又は前記過剰な未燃物を供給する供給継続時間」を決定し、前記機関停止要求発生時から前記決定された供給継続時間が経過した時点にて前記触媒の実際の酸素吸蔵量が「前記最大の量又は前記最小の量」に到達したと判定するように構成される。
【００１９】
これによれば、機関停止要求発生時の触媒の温度に関わらず、前記触媒の実際の酸素吸蔵量が「前記最大の量又は前記最小の量」に到達した時点を精度良く判定することができる。この結果、前記初期化により、推定酸素吸蔵量と実際の酸素吸蔵量との差を一層小さくすることができる。
【００２０】
更に、前記制御手段は、
前記機関停止要求が発生した時点から前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定される時点まで前記機関を回転させることにより同機関を通して前記触媒に前記過剰な酸素又は前記過剰な未燃物を供給し、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達したと判定されたとき前記機関の回転を停止させるように構成される。
【００２１】
これによれば、機関を通して「過剰な酸素又は過剰な未燃物」が触媒に供給されるので、二次空気供給装置及び還元剤供給装置等の追加的装置を必ずしも必要としない。従って、機関全体を廉価にすることができる。更に、前記触媒の実際の酸素吸蔵量が前記最大の量又は前記最小の量に到達した後に機関の回転を停止させるので、機関を回転させるためのエネルギーが無駄に消費されることを回避することができる。
【００２２】
更に、本発明装置の一つの態様において、
前記制御手段は、前記機関停止要求が発生した場合、前記触媒の実際の酸素吸蔵量を前記最大の量に到達させるべく前記機関への燃料の供給を停止し且つ前記機関を前記機関以外の動力源により強制的に回転させることにより前記触媒に過剰な酸素を含む大気を供給するように構成される。加えて、前記制御手段は、前記触媒の実際の酸素吸蔵量が前記最大の量に到達したと判定されたとき前記機関以外の動力源による前記機関の強制的な回転を停止することにより前記機関の回転を停止させるように構成される。
【００２３】
この場合、前記推定酸素吸蔵量初期化手段は、前記触媒の実際の酸素吸蔵量が前記最大の量に到達したと判定したとき、前記推定される酸素吸蔵量を前記触媒の最大酸素吸蔵量に設定するように構成される。
【００２４】
これによれば、機関停止要求発生後において、機関の回転によって機関から触媒へと大気が供給される。大気は多量の酸素を含む。従って、機関停止要求発生後において、触媒の酸素吸蔵量を最大の量に短時間にて到達させることができる。この結果、機関停止要求発生後において機関を回転させておく時間を短くすることができ、他の動力源により消費されるエネルギー量を少なくすることができる。更に、この構成によれば、二次空気供給装置等の追加的装置を必ずしも必要としないので、機関全体を廉価にすることができる。なお、他の動力源は、例えば機関が所謂ハイブリッド車両に搭載されている場合、そのハイブリッド車両の車両駆動力を発生するためのモータであってもよく、機関が通常の車両に搭載されている場合、その車両のスタータモータであってもよい。
【００２５】
更に、本発明装置の一つの態様において、
前記制御手段は、前記機関停止要求が発生した場合、前記触媒の実際の酸素吸蔵量を前記最小の量に到達させるべく前記機関に供給される混合気に含まれる燃料の量を同混合気の空燃比が理論空燃比よりも小さい空燃比（リッチ空燃比）となるように制御するように構成される。これにより、機関は自身の発生するトルクにより回転を続け、且つ、機関から触媒に過剰な未燃物が供給される。加えて、前記制御手段は、前記触媒の実際の酸素吸蔵量が前記最小の量に到達したと判定されたとき、前記機関への燃料の供給を停止することにより前記機関の回転を停止させるように構成される。
【００２６】
この場合、前記推定酸素吸蔵量初期化手段は、前記触媒の実際の酸素吸蔵量が前記最小の量に到達したと判定したとき、前記推定される酸素吸蔵量を前記触媒の最小酸素吸蔵量に設定するように構成される。
【００２７】
これによれば、機関停止要求発生後において、過剰の未燃物が機関自身の発生するエネルギーにより触媒に供給される。従って、機関停止要求後において機関を回転させておくためのエネルギー源及び動力源を別途準備する必要がない。更に、この構成によれば、還元剤供給装置等の追加的装置を必ずしも必要としないので、機関全体を廉価にすることができる。
【００２８】
本発明装置の他の目的、他の特徴及び付随する利点は、以下の図面を参照しつつ記述される本発明装置の各実施形態についての説明から容易に理解されるであろう。
【図面の簡単な説明】
【００２９】
【図１】図１は、本発明の第１実施形態に係る制御装置（第１制御装置）を適用した内燃機関の概略図である。
【図２】図２は、図１に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図３】図３は、図１に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。
【図４】図４は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図５】図５は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図６】図６は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図７】図７は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図８】図８は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図９】図９は、第１制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１０】図１０は、本発明の第２実施形態に係る制御装置（第２制御装置）の作動を説明するためのタイムチャートである。
【図１１】図１１は、第２制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１２】図１２は、第２制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１３】図１３は、第２制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１４】図１４は、本発明の第３実施形態に係る制御装置（第３制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図１５】図１５は、本発明の第４実施形態に係る制御装置（第４制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図１６】図１６は、第４制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【図１７】図１７は、本発明の第５実施形態に係る制御装置（第５制御装置）のＣＰＵが実行するルーチンを示したフローチャートである。
【図１８】図１８は、第５制御装置のＣＰＵが実行するルーチンを示したフローチャートである。
【発明を実施するための形態】
【００３０】
以下、本発明の各実施形態に係る内燃機関の制御装置（以下、単に「制御装置」とも称呼する。）について図面を参照しながら説明する。この制御装置は、内燃機関に供給される混合気の空燃比（機関の空燃比）を制御する空燃比制御装置（燃料噴射量制御装置）の一部でもある。また、制御装置は、結果的にエミッションを良好にすることを目的とする装置であるので内燃機関の排気浄化装置でもあり、触媒の酸素吸蔵量を推定する酸素吸蔵量推定装置でもある。
【００３１】
＜第１実施形態＞
（構成）
図１は、第１実施形態に係る制御装置（以下、「第１制御装置」とも称呼する。）を、４サイクル・火花点火式・多気筒（直列４気筒）・内燃機関１０に適用したシステムの概略構成を示している。
【００３２】
内燃機関１０は、機関本体部２０と、吸気系統３０と、排気系統４０と、を含む。
【００３３】
機関本体部２０は、シリンダブロック部及びシリンダヘッド部を含む。機関本体部２０は、複数の気筒（燃焼室）２１を備えている。各気筒は、図示しない「吸気ポート及び排気ポート」と連通している。吸気ポートと燃焼室２１との連通部は図示しない吸気弁により開閉される。排気ポートと燃焼室２１との連通部は図示しない排気弁により開閉される。各燃焼室２１には図示しない点火プラグが配設されている。点火プラグは、図示しない「イグナイタ及びイグニッションコイル」と接続されている。
【００３４】
機関本体部２０は、更に、機関１０を回転駆動する（強制回転する）ためのモータ２２を備えている。モータ２２は、例えば、スタータモータであってもよい。モータは図示しないバッテリから供給される電力により回転し、機関１０を回転させるようになっている。
【００３５】
吸気系統３０は、インテークマニホールド３１、吸気管３２、複数の燃料噴射弁３３、及び、スロットル弁３４を備えている。
【００３６】
インテークマニホールド３１は、複数の枝部３１ａとサージタンク３１ｂとを備えている。複数の枝部３１ａのそれぞれの一端は、複数の吸気ポートのそれぞれに接続されている。複数の枝部３１ａの他端はサージタンク３１ｂに接続されている。
【００３７】
吸気管３２の一端はサージタンク３１ｂに接続されている。吸気管３２の他端には図示しないエアフィルタが配設されている。
【００３８】
燃料噴射弁３３は、一つの気筒（燃焼室）２１に対して一つずつ配設されている。燃料噴射弁３３は吸気ポートに設けられている。即ち、複数の気筒のそれぞれは、他の気筒とは独立して燃料供給を行う燃料噴射弁３３を備えている。燃料噴射弁３３は、噴射指示信号に応答し、正常である場合に「その噴射指示信号に含まれる指示燃料噴射量の燃料」を吸気ポート（従って、燃料噴射弁３３に対応する気筒）内に噴射するようになっている。
【００３９】
より具体的に述べると、燃料噴射弁３３は、指示燃料噴射量に応じた時間だけ開弁する。燃料噴射弁３３に供給されている燃料の圧力は、その燃料の圧力と吸気ポート内の圧力との差圧が一定になるように図示しないプレッシャレギュレータにより制御されている。従って、燃料噴射弁３３は指示燃料噴射量と等量の燃料を噴射する。
【００４０】
スロットル弁３４は、吸気管３２内に回動可能に配設されている。スロットル弁３４は、吸気通路の開口断面積を可変とするようになっている。スロットル弁３４は、図示しないスロットル弁アクチュエータにより吸気管３２内で回転駆動されるようになっている。
【００４１】
排気系統４０は、エキゾーストマニホールド４１、エキゾーストパイプ４２、エキゾーストパイプ４２に配設された上流側触媒４３、電気加熱ヒータ４４、及び、上流側触媒４３よりも下流においてエキゾーストパイプ４２に配設された「図示しない下流側触媒」を備えている。
【００４２】
エキゾーストマニホールド４１は、複数の枝部４１ａと集合部４１ｂとを備えている。複数の枝部４１ａのそれぞれの一端は、複数の排気ポートのそれぞれに接続されている。複数の枝部４１ａのそれぞれの他端は集合部４１ｂに集合している。この集合部４１ｂは、複数（２以上であり、本例では４つ）の気筒から排出された排ガスが集合する部分であるから、排気集合部ＨＫとも称呼される。
【００４３】
エキゾーストパイプ４２は集合部４１ｂに接続されている。排気ポート、エキゾーストマニホールド４１及びエキゾーストパイプ４２は、排気通路を構成している。
【００４４】
上流側触媒４３は、セラミックの一種であるコージェライトからなり且つアルミナのコート層によりコーティングされた担持体を備え、その担持体に「白金、ロジウム及びパラジウム等」の貴金属（触媒物質）からなる活性成分を担持する三元触媒装置（排気浄化用の触媒）である。各触媒は、各触媒に流入するガスの空燃比が「三元触媒のウインドウ内の空燃比（例えば、理論空燃比）」であるとき、ＨＣ，ＣＯ，Ｈ２などの未燃成分を酸化するとともに窒素酸化物（ＮＯｘ）を還元する機能を有する。この機能は触媒機能とも称呼される。更に、各触媒は、酸素を吸蔵（貯蔵）する酸素吸蔵機能を有する。各触媒は、酸素吸蔵機能により空燃比が理論空燃比から偏移したとしても未燃成分及び窒素酸化物を浄化することができる。つまり、酸素吸蔵機能により、ウインドウの幅が拡大する。酸素吸蔵機能は、担持体に担持されているセリア（ＣｅＯ２）等の酸素吸蔵材によってもたらされる。
【００４５】
電気加熱ヒータ（触媒ヒータ）４４は、電気加熱手段を構成する。電気加熱ヒータは通電されることにより（電力が供給されることにより）発熱し、上流側触媒４３の温度（上流側触媒４３の触媒床温）を上昇させるようになっている。以下、上流側触媒４３の温度を単に「触媒の温度」とも称呼する。電気加熱ヒータ４４の発熱量は、電気加熱ヒータ４４に供給される電力（実際には電流）により制御されるようになっている。電気制御装置７０は、電気加熱ヒータ４４に供給される電力を調整・制御することにより、触媒の温度を調整するようになっている。
【００４６】
図示しない下流側触媒は、上流側触媒４３と同様の三元触媒装置である。なお、本明細書において、「触媒」は特に断りのない限り上流側触媒４３を指す。
【００４７】
このシステムは、熱線式エアフローメータ５１、スロットルポジションセンサ５２、水温センサ５３、クランクポジションセンサ５４、インテークカムポジションセンサ５５、上流側空燃比センサ５６、下流側空燃比センサ５７、アクセル開度センサ５８、及び、バッテリ残量センサ５９を備えている。
【００４８】
エアフローメータ５１は、吸気管３２内を流れる吸入空気の質量流量（吸入空気流量）Ｇａに応じた信号を出力するようになっている。即ち、吸入空気量Ｇａは、単位時間あたりに機関１０に吸入される吸入空気量を表す。
【００４９】
スロットルポジションセンサ５２は、スロットル弁３４の開度（スロットル弁開度）を検出し、スロットル弁開度ＴＡを表す信号を出力するようになっている。
【００５０】
水温センサ５３は、内燃機関１０の冷却水の温度を検出し、冷却水温ＴＨＷを表す信号を出力するようになっている。冷却水温ＴＨＷは、機関１０の暖機状態（機関１０の温度）を表すパラメータである。
【００５１】
クランクポジションセンサ５４は、クランク軸が１０°回転する毎に幅狭のパルスを有するとともに同クランク軸が３６０°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、後述する電気制御装置７０によって機関回転速度ＮＥに変換される。
【００５２】
インテークカムポジションセンサ５５は、インテークカムシャフトが所定角度から９０度、次いで９０度、更に１８０度回転する毎に一つのパルスを出力するようになっている。後述する電気制御装置７０は、クランクポジションセンサ５４及びインテークカムポジションセンサ５５からの信号に基づいて、基準気筒（例えば第１気筒）の圧縮上死点を基準とした絶対クランク角度ＣＡを取得するようになっている。この絶対クランク角度ＣＡは、基準気筒の圧縮上死点において「０°クランク角度」に設定され、クランク軸の回転角度に応じて７２０°クランク角度まで増大し、その時点にて再び０°クランク角度に設定される。
【００５３】
上流側空燃比センサ５６は、エキゾーストマニホールド４１の集合部４１ｂ（排気集合部ＨＫ）と上流側触媒４３との間の位置において「エキゾーストマニホールド４１及びエキゾーストパイプ４２の何れか」に配設されている。上流側空燃比センサ５６は、単に「空燃比センサ」とも称呼される。
【００５４】
上流側空燃比センサ５６は、例えば、特開平１１−７２４７３号公報、特開２０００−６５７８２号公報及び特開２００４−６９５４７号公報等に開示された「拡散抵抗層を備える限界電流式広域空燃比センサ」である。
【００５５】
上流側空燃比センサ５６は、図２に示したように、上流側空燃比センサ５６の配設位置を流れる排ガスの空燃比（上流側空燃比abyfs）に応じた出力値Vabyfsを「空燃比センサ出力」として出力する。この出力値Vabyfsは、上流側空燃比センサ５６に到達している排ガスの空燃比が大きくなるほど（リーンとなるほど）増大する。出力値Vabyfsは、上流側空燃比センサ５６に到達している排ガスの空燃比が理論空燃比であるとき、理論空燃比相当値Ｖstoichに一致する。
【００５６】
後述する電気制御装置７０は、図２に示された関係を「空燃比変換テーブルMapabyfs(Vabyfs)」としてＲＯＭ内に格納していて、実際の出力値Vabyfsを空燃比変換テーブルMapabyfs(Vabyfs)に適用することにより上流側空燃比abyfs（検出空燃比abyfs）を取得するようになっている。
【００５７】
再び、図１を参照すると、下流側空燃比センサ５７は、エキゾーストパイプ４２内に配設されている。下流側空燃比センサ５７の配設位置は、上流側触媒４３よりも下流側であり、且つ、下流側触媒よりも上流側（即ち、上流側触媒４３と下流側触媒との間の排気通路）である。下流側空燃比センサ５７は、周知の起電力式の酸素濃度センサ（安定化ジルコニア等の固体電解質を用いた濃淡電池型の酸素濃度センサ）である。下流側空燃比センサ５７は、排気通路であって下流側空燃比センサ５７が配設されている部位を通過するガスである被検出ガスの空燃比（下流側空燃比）に応じた出力値Voxsを発生するようになっている。換言すると、出力値Voxsは、上流側触媒４３から流出し且つ下流側触媒に流入するガスの空燃比（下流側空燃比afdown）に応じた値である。
【００５８】
この出力値Voxsは、図３に示したように、被検出ガスの空燃比が理論空燃比よりもリッチのとき最大出力値max（例えば、約０．９Ｖ〜１．０Ｖ）となる。出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリーンのとき最小出力値min（例えば、約０．１Ｖ〜０Ｖ）となる。更に、出力値Voxsは、被検出ガスの空燃比が理論空燃比であるとき最大出力値maxと最小出力値minの略中間の電圧Ｖst（中間電圧Ｖst、理論空燃比相当電圧Ｖst、例えば、約０．５Ｖ）となる。出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリッチな空燃比からリーンな空燃比へと変化する際に最大出力値maxから最小出力値minへと急変する。同様に、出力値Voxsは、被検出ガスの空燃比が理論空燃比よりもリーンな空燃比からリッチな空燃比へと変化する際に最小出力値minから最大出力値maxへと急変する。
【００５９】
図１に示したアクセル開度センサ５８は、運転者によって操作されるアクセルペダルＡＰの操作量Accp（アクセルペダル操作量、アクセルペダルＡＰの開度）を表す信号を出力するようになっている。アクセルペダル操作量Accpは、アクセルペダルＡＰの操作量が大きくなるとともに大きくなる。
【００６０】
バッテリ残量センサ５９は、図示しない車両に搭載されたバッテリの残量を検出するようになっている。このバッテリから電気加熱ヒータ４４に電力が供給される。バッテリ残量センサ５９は、バッテリの電解液濃度を検出するセンサであってもよく、バッテリ電圧を検出するセンサであってもよい。
【００６１】
電気制御装置７０は、「ＣＰＵ、ＣＰＵが実行するプログラム、ルックアップテーブル（マップ）、関数及び定数等を予め記憶したＲＯＭ、ＣＰＵが必要に応じてデータを一時的に格納するＲＡＭ、バックアップＲＡＭ、並びに、ＡＤコンバータを含むインターフェース等」からなる周知のマイクロコンピュータである。
【００６２】
バックアップＲＡＭは、機関１０を搭載した車両の図示しないイグニッション・キー・スイッチの位置（オフ位置、始動位置及びオン位置等の何れか）に関わらず、車両に搭載されたバッテリから電力の供給を受けるようになっている。バックアップＲＡＭは、バッテリから電力の供給を受けている場合、ＣＰＵの指示に応じてデータを格納する（データが書き込まれる）とともに、そのデータを読み出し可能となるように保持（記憶）する。従って、バックアップＲＡＭは、機関１０の運転停止中においてもデータを保持することができる。
【００６３】
バックアップＲＡＭは、バッテリが車両から取り外される等によりバッテリからの電力供給が遮断されると、データを保持することができない。そこで、ＣＰＵは、バックアップＲＡＭへの電力供給が再開されたとき、バックアップＲＡＭに保持されるべきデータを初期化（デフォルト値に設定）するようになっている。なお、バックアップＲＡＭは、ＥＥＰＲＯＭ等の読み書き可能な不揮発性メモリであってもよい。
【００６４】
電気制御装置７０は、上述したセンサ等と接続され、ＣＰＵにそれらのセンサからの信号を供給するようになっている。更に、電気制御装置７０は、ＣＰＵの指示に応じて、各気筒に対応して設けられた点火プラグ（実際にはイグナイタ）、モータ２２、各気筒に対応して設けられた燃料噴射弁３３、電気加熱ヒータ４４、及び、スロットル弁アクチュエータ等に駆動信号（指示信号）を送出するようになっている。
【００６５】
なお、電気制御装置７０は、取得されたアクセルペダルの操作量Accpが大きくなるほどスロットル弁開度ＴＡが大きくなるように、スロットル弁アクチュエータに指示信号を送出するようになっている。即ち、電気制御装置７０は、運転者により変更される機関１０の加速操作量（アクセルペダル操作量Accp）に応じて「機関１０の吸気通路に配設されたスロットル弁３４」の開度を変更するスロットル弁駆動手段を備えている。
【００６６】
（第１制御装置による制御の概要）
第１制御装置は、機関の始動後において（即ち、機関の運転中）、後述する周知の手法に従って触媒４３の酸素吸蔵量を推定する。即ち、第１制御装置は、推定酸素吸蔵量を算出する。加えて、第１制御手段は、機関の運転中、上流側触媒４３が吸蔵し得る酸素の最大値である最大酸素吸蔵量（通常運転時最大酸素吸蔵量）を周知の手法に従って取得する。更に、第１制御装置は、機関の運転中、図示しないイグニッション・キー・スイッチがオン位置からオフ位置に変更されること等により機関停止要求が発生されると、機関１０への燃料供給（燃料噴射）を停止する。同時に、第１制御装置は、モータ２２によって機関１０を回転駆動する。これにより、機関１０を通して大気（即ち、過剰な酸素を多量に含むガス）が触媒４３に送り込まれる。そして、第１制御装置は、下流側空燃比センサの出力値Voxsが最小出力値minとなった時点（又は、出力値Voxsが最小出力値minとなっている継続時間が所定時間となった時点）にて「触媒４３の酸素吸蔵量が最大の量に到達した」と推定し、モータ２２による機関１０の回転駆動を停止する。このとき、第１制御装置は、推定酸素吸蔵量を通常運転時最大酸素吸蔵量に設定する（初期化する）。
【００６７】
（実際の作動）
次に、第１制御装置の実際の作動について説明する。
【００６８】
＜燃料噴射制御＞
第１制御装置のＣＰＵは、図示しないイグニッション・キー・スイッチがオン位置にあるとき（或いは、常時）、所定時間が経過する毎に図４にフローチャートにより示した「燃料噴射フラグ操作ルーチン」を実行するようになっている。
【００６９】
従って、所定のタイミングになると、ＣＰＵは図４のステップ４００から処理を開始してステップ４１０に進み、機関始動要求が発生したか否かを判定する。機関始動要求は、イグニッション・キー・スイッチがオフ位置からオン位置に変更されたときに発生する。なお、機関１０がハイブリッド車両に搭載されている場合、及び、自動運転停止・自動運転再開システムが採用された車両に搭載されている場合等、において、機関始動要求は所定の条件が満たされたときに発生する。
【００７０】
＜燃料噴射制御＞
更に、ＣＰＵは、図５に示した燃料噴射制御ルーチンを「任意の気筒のクランク角度が吸気上死点前の所定クランク角度に一致する毎に」その気筒に対して繰り返し実行するようになっている。前記所定クランク角度は、例えば、ＢＴＤＣ９０°ＣＡ（吸気上死点前９０°クランク角度）である。クランク角度が前記所定クランク角度に一致した気筒は「燃料噴射気筒」とも称呼される。ＣＰＵは、この燃料噴射制御ルーチンにより、指示燃料噴射量Ｆｉの計算及び燃料噴射の指示を行う。
【００７１】
任意の気筒のクランク角度が吸気上死点前の所定クランク角度と一致すると、ＣＰＵはステップ５００から処理を開始し、ステップ５１０にて燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。
【００７２】
いま、燃料噴射フラグＸｉｎｊの値が「１」であると仮定する。この場合、ＣＰＵは、ステップ５１０にて「Ｙｅｓ」と判定し、以下に述べるステップ５２０乃至ステップ５５０の処理を順に行い、ステップ５９５に進んで本ルーチンを一旦終了する。
【００７３】
ステップ５２０：ＣＰＵは、「エアフローメータ５１により計測された吸入空気量Ｇａ、クランクポジションセンサ５４の信号に基いて取得された機関回転速度ＮＥ、及び、ルックアップテーブルMapMc」に基いて「燃料噴射気筒の１回の吸気行程において、その燃料噴射気筒に吸入される空気量」である「筒内吸入空気量Ｍｃ（ｋ）」を取得する。筒内吸入空気量Ｍｃ（ｋ）は、各吸気行程に対応されながらＲＡＭ内に記憶される。筒内吸入空気量Ｍｃ（ｋ）は、周知の空気量推定モデル（吸気通路における空気の挙動を模した物理法則に従って構築されたモデル）により算出されてもよい。
【００７４】
ステップ５３０：ＣＰＵは、筒内吸入空気量Ｍｃ（ｋ）を目標空燃比abyfrで除することにより基本燃料噴射量Ｆｂａｓｅを求める。従って、基本燃料噴射量Ｆｂａｓｅは、機関の空燃比（従って、上流側触媒４３に流入する排ガスの空燃比）を目標空燃比abyfrに一致させるために計算上必要な燃料噴射量のフィードフォワード量である。このステップ５４０は、機関に供給される混合気の空燃比を目標空燃比abyfrに一致させるためのフィードフォワード制御手段（基本燃料噴射量算出手段）を構成している。目標空燃比abyfrは、特別な場合を除き、触媒のウインドウの範囲内の基準空燃比（例えば、理論空燃比stoich＝１４．６）に設定されている。
【００７５】
ステップ５４０：ＣＰＵは、基本燃料噴射量Ｆｂａｓｅを空燃比フィードバック量ＦＦＢ（酸素吸蔵量フィードバック量ＦＦＢ）により補正する。この空燃比フィードバック量ＦＦによる補正は、空燃比フィードバック制御又は酸素吸蔵量フィードバック制御とも称呼される。より具体的には、ＣＰＵは、基本燃料噴射量Ｆｂａｓｅに空燃比フィードバック量ＦＦＢを加えることにより、指示燃料噴射量（最終燃料噴射量）Ｆｉを算出する。空燃比フィードバック量ＦＦＢは、後述するルーチンにより別途算出されている推定酸素吸蔵量ＯＳＣを目標酸素吸蔵量に一致させるように変更される。目標酸素吸蔵量は、本例において、通常運転時最大酸素吸蔵量Ｃmaxの１／２（通常運転時最大酸素吸蔵量Ｃmaxの半分）である。空燃比フィードバック量ＦＦＢの算出方法については後述する。
【００７６】
なお、通常運転時最大酸素吸蔵量Ｃmaxは、上流側触媒４３が吸蔵し得る酸素の量の最大値であり、前回又はそれ以前の機関１０の運転時において、所謂「アクティブ空燃比制御」によって別途取得されている。通常運転時最大酸素吸蔵量Ｃmaxは、上流側触媒４３の劣化が進むほど小さくなる。アクティブ空燃比制御は、例えば、特開平５−１３３２６４号公報等に記載された周知の制御である。例えば、通常運転時最大酸素吸蔵量Ｃmaxは、次のようにして取得される。
【００７７】
・上流側触媒４３の温度が所定の温度であるとき、上流側触媒４３に理論空燃比stoichよりもリッチな空燃比の排ガスを流入し続けて上流側触媒４３の酸素吸蔵量を「０」に一致させる。このとき、下流側空燃比センサ５７の出力値Voxsは最大出力値maxとなる。
・その時点から上流側触媒４３に理論空燃比stoichよりもリーンな空燃比の排ガスを流入し続け、その時点から下流側空燃比センサ５７の出力値Voxsが理論空燃比相当相当電圧Vstよりも小さい値（又は最小出力値min）となる時点までの期間において「上流側空燃比センサ５６の出力値Vabyfsに基いて推定される三元触媒４３に吸蔵される酸素吸蔵量変化量ΔＯＳＣ（＝（単位時間あたりの燃料量）・０．２３・（abyfs−stoich））」を積算することにより求める。この求められた値が通常運転時最大酸素吸蔵量Ｃmaxである。通常運転時最大酸素吸蔵量Ｃmaxは、取得される毎に、通常運転時最大酸素吸蔵量Ｃmaxを取得した期間における触媒の温度とともに、バックアップＲＡＭに記憶・更新される。
【００７８】
ステップ５５０：ＣＰＵは、「指示燃料噴射量Ｆｉの燃料」を「燃料噴射気筒に対応して設けられている燃料噴射弁３３」から噴射させるための噴射指示信号を、その燃料噴射弁３３に送出する。なお、ＣＰＵは、噴射指示信号を送出している期間（即ち、燃料噴射を行う期間、所定のタイミングにて点火を行うようにイグナイタに点火指示信号を送出する。
【００７９】
この結果、推定酸素吸蔵量ＯＳＣを目標酸素吸蔵量に一致させるために計算上必要な量（必要と推定される量）の燃料が燃料噴射気筒の燃料噴射弁３３から噴射させられる。即ち、ステップ５２０乃至ステップ５５０は、推定酸素吸蔵量ＯＳＣを使用しながら指示燃料噴射量Ｆｉ（機関１０）を制御する指示燃料噴射量制御手段を構成している。
【００８０】
一方、ＣＰＵがステップ５１０の処理を実行する時点において、燃料噴射フラグＸｉｎｊの値が「０」に設定されていると、ＣＰＵはそのステップ５１０にて「Ｎｏ」と判定し、ステップ５９５に直接進んで本ルーチンを一旦終了する。この場合、ステップ５５０の処理による燃料噴射が実行されないので、燃料の供給（燃料噴射）が停止される運転（フューエルカット）が実行される。燃料供給が停止すると、後述する「機関の強制回転」が実行されない場合、機関１０は回転を停止する。従って、触媒には大気が送り込まれない。
【００８１】
＜空燃比フィードバック量の算出＞
ＣＰＵは図６にフローチャートにより示した「フィードバック量算出ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ６００から処理を開始し、ステップ６１０に進んで推定酸素吸蔵量ＯＳＣを読み込む。推定酸素吸蔵量ＯＳＣは、後述する図７に示したルーチンにより別途算出され、バックアップＲＡＭ内に格納されている。
【００８２】
次に、ＣＰＵはステップ６２０に進み、通常運転時最大酸素吸蔵量Ｃmaxを読み込む。前述したように、通常運転時最大酸素吸蔵量Ｃmaxは別途算出されている。その後、ＣＰＵはステップ６３０に進み、推定酸素吸蔵量ＯＳＣが目標酸素吸蔵量（＝Ｃmax／２）以上であるか否かを判定する。
【００８３】
このとき、推定酸素吸蔵量ＯＳＣが目標酸素吸蔵量（＝Ｃmax／２）以上であれば、ＣＰＵはステップ６３０にて「Ｙｅｓ」と判定してステップ６４０に進み、空燃比フィードバック量ＦＦＢを一定値ｄｆだけ大きくする。この処理が繰り返されることにより指示燃料噴射量Ｆｉが増大するので、機関の空燃比が理論空燃比stoichよりも小さいリッチ空燃比となる。その結果、触媒４３に過剰な未燃物が流入するので、酸素吸蔵量は減少して目標酸素吸蔵量に近づく。その後、ＣＰＵはステップ６９５に進み、本ルーチンを一旦終了する。
【００８４】
一方、ＣＰＵがステップ６３０の処理を行う時点において、推定酸素吸蔵量ＯＳＣが目標酸素吸蔵量（＝Ｃmax／２）未満であれば、ＣＰＵはステップ６３０にて「Ｎｏ」と判定してステップ６５０に進み、空燃比フィードバック量ＦＦＢを一定値ｄｆだけ小さくする。この処理が繰り返されることにより指示燃料噴射量Ｆｉが減少するので、機関の空燃比が理論空燃比stoichよりも大きいリーン空燃比となる。その結果、触媒４３に過剰な酸素が流入するので、酸素吸蔵量は増大して目標酸素吸蔵量に近づく。その後、ＣＰＵはステップ６９５に進み、本ルーチンを一旦終了する。
【００８５】
＜推定酸素吸蔵量ＯＳＣの算出＞
ＣＰＵは図７にフローチャートにより示した「推定酸素吸蔵量ＯＳＣ算出ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ７００から処理を開始し、ステップ７１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ７１０にて「Ｎｏ」と判定し、ステップ７９５に直接進んで本ルーチンを一旦終了する。
【００８６】
これに対し、ＣＰＵがステップ７１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」であると（即ち、燃料噴射が実行されることにより機関１０に燃料が供給されていると）、ＣＰＵはステップ７１０にて「Ｙｅｓ」と判定して以下に述べるステップ７２０乃至ステップ７４０の処理を順に行い、その後、ステップ７９５に進んで本ルーチンを一旦終了する。
【００８７】
ステップ７２０：ＣＰＵは、下記の（１）式に従って、所定の単位時間内の酸素吸蔵量変化量ΔＯＳＣ（酸素吸蔵量の増大量）を算出する。（１）式において、値「０．２３」は大気中に含まれる酸素の重量割合である。ＳＦｉは前記単位時間内の指示燃料噴射量Ｆｉの合計である。abyfsは、上流側空燃比センサ５６の出力値Vabyfsを図２に示した空燃比変換テーブルMapabyfs(Vabyfs)に適用することにより求められた上流側空燃比abyfs（即ち、触媒４３に流入するガスの空燃比）である。stoichは、理論空燃比（例えば、１４．６）である。
ΔＯＳＣ＝０．２３・ＳＦｉ・（abyfs−stoich）  …（１）
【００８８】
（１）式に示したように、単位時間内の指示燃料噴射量Ｆｉの合計に、同単位時間における触媒流入ガスの空燃比の理論空燃比からの偏移（abyfs−stoich）を乗じることにより、同単位時間における空気の過不足量が求められ、この空気の過不足量に酸素の重量割合を乗じることにより同単位時間における酸素吸蔵量変化量ΔＯＳＣが求められる。
【００８９】
ステップ７３０：ＣＰＵは、下記の（２）式に示したように、酸素吸蔵量変化量ΔＯＳＣを積算することにより、触媒４３の酸素吸蔵量ＯＳＣを推定する（推定酸素吸蔵量ＯＳＣを算出する。）。（２）式の左辺のＯＳＣは更新後の推定酸素吸蔵量ＯＳＣであり、（２）式の右辺のＯＳＣは更新前の推定酸素吸蔵量ＯＳＣである。
ＯＳＣ＝ＯＳＣ＋ΔＯＳＣ  …（２）
【００９０】
ステップ７４０：ＣＰＵは、ステップ７３０にて算出された推定酸素吸蔵量ＯＳＣを、「０」と通常運転時最大酸素吸蔵量Ｃmaxとの間の値に制限する。より具体的に述べると、酸素吸蔵量は「０」以下にはなり得ないので、推定酸素吸蔵量ＯＳＣが「０」以下となった場合には推定酸素吸蔵量ＯＳＣは「０」に設定される。更に、酸素吸蔵量は通常運転時最大酸素吸蔵量Ｃmax以上にはなり得ないので、推定酸素吸蔵量ＯＳＣが最大酸素吸蔵量Ｃmax以上となった場合には推定酸素吸蔵量ＯＳＣは通常運転時最大酸素吸蔵量Ｃmaxに設定される。
【００９１】
なお、ＣＰＵは、下流側空燃比センサ５７の出力値Voxsが０．７（Ｖ）以上となったとき、即ち、触媒４３の下流側空燃比が明白なリッチ空燃比となったとき、推定酸素吸蔵量ＯＳＣを「０」に設定してもよい。
【００９２】
＜機関停止時制御の開始＞
ＣＰＵは図８にフローチャートにより示した「機関停止時制御開始ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ８００から処理を開始し、ステップ８１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ８１０にて「Ｎｏ」と判定してステップ８９５に直接進み、本ルーチンを一旦終了する。
【００９３】
一方、ＣＰＵがステップ８１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」に設定されていると（即ち、燃料噴射が実行されていて機関１０に燃料が供給されていると）、ＣＰＵはそのステップ８１０にて「Ｙｅｓ」と判定してステップ８２０に進み、機関強制回転フラグＸＭの値が「０」であるか否かを判定する。後述するように、機関強制回転フラグＸＭの値は、モータ２２による機関１０の強制回転を開始したときに「１」に設定され、モータ２２による機関１０の強制回転を終了したときに「０」に設定される。
【００９４】
ＣＰＵがステップ８２０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」に設定されていると（即ち、モータ２２による機関１０の強制回転が行われていると）、ＣＰＵはそのステップ８２０にて「Ｎｏ」と判定してステップ８９５に直接進み、本ルーチンを一旦終了する。
【００９５】
一方、ＣＰＵがステップ８２０の処理を行う時点において、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはそのステップ８２０にて「Ｙｅｓ」と判定してステップ８３０に進み、機関停止要求が発生したか否か（現時点が、機関停止要求が発生した直後であるか否か）を判定する。このとき、機関停止要求が発生していなければ、ＣＰＵはステップ８３０にて「Ｎｏ」と判定し、ステップ８９５に直接進んで本ルーチンを一旦終了する。
【００９６】
一方、ＣＰＵがステップ８３０の処理を行う時点において、機関停止要求が発生していると、ＣＰＵはそのステップ８３０にて「Ｙｅｓ」と判定し、以下に述べるステップ８４０乃至ステップ８６０の処理を順に行い、その後、ステップ８９５に進んで本ルーチンを一旦終了する。
【００９７】
ステップ８４０：ＣＰＵは、燃料噴射フラグＸｉｎｊの値を「０」に設定する。これにより、ＣＰＵは図５のステップ５１０にて「Ｎｏ」と判定するので、燃料噴射（即ち、機関１０への燃料の供給）が停止する。従って、機関１０は、それ自身で回転するトルクを発生することができない。
【００９８】
ステップ８５０：ＣＰＵは、モータ２２を用いて機関１０を強制的に回転させる。これにより、機関１０を通じて大気が吸気通路から排気通路へと送出される。その結果、触媒４３に大気（多量の酸素を含むガス）が供給される。従って、触媒４３の酸素吸蔵量は急速に増大する。
ステップ８６０：ＣＰＵは、機関強制回転フラグＸＭの値を「１」に設定する。
【００９９】
＜機関停止時制御の終了＞
ＣＰＵは図９にフローチャートにより示した「機関停止時制御終了ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ９００から処理を開始し、ステップ９１０に進んで機関強制回転フラグＸＭの値が「１」であるか否かを判定する。このとき、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはステップ９１０にて「Ｎｏ」と判定してステップ９９５に直接進み、本ルーチンを一旦終了する。
【０１００】
一方、ＣＰＵがステップ９１０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」に設定されていると（即ち、機関１０がモータ２２によって強制的に回転させられていると）、ＣＰＵはそのステップ９１０にて「Ｙｅｓ」と判定してステップ９２０に進み、下流側空燃比センサ５７の出力値Voxsが最小出力値min以下となったか否かを判定する。換言すると、ＣＰＵは、出力値Voxsが明白なリーン空燃比を示す値となったか否かを判定する。触媒４３の実際の酸素吸蔵量が最大の量に到達していると、触媒４３からは多量の酸素が流出するので、出力値Voxsは明白なリーン空燃比を示す値となる。なお、ＣＰＵは、ステップ９２０において、出力値Voxsが最小出力値min以下となっている継続時間が所定時間以上となったか否かを判定することにより、触媒４３の実際の酸素吸蔵量が最大の量に到達したか否かを判定してもよい。
【０１０１】
ＣＰＵがステップ９２０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていなければ、ＣＰＵはそのステップ９２０にて「Ｎｏ」と判定し、ステップ９９５に直接進んで本ルーチンを一旦終了する。この結果、モータ２２による機関１０の強制的な回転は継続される。
【０１０２】
一方、ＣＰＵがステップ９２０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていると、ＣＰＵは酸素吸蔵量が最大の量に到達したと判定する。即ち、この場合、ＣＰＵはステップ９２０にて「Ｙｅｓ」と判定し、以下に述べるステップ９３０乃至ステップ９５０の処理を順に行い、その後、ステップ９９５に進んで本ルーチンを一旦終了する。
【０１０３】
ステップ９３０：ＣＰＵは、モータ２２の回転を停止させ、モータ２２による機関１０の強制回転を終了する。
ステップ９４０：ＣＰＵは、機関強制回転フラグＸＭの値を「０」に設定する。
ステップ９５０：ＣＰＵは、推定酸素吸蔵量ＯＳＣを「通常運転時最大酸素吸蔵量Ｃmax」に設定する（ＯＳＣ＝Ｃmax）。即ち、ＣＰＵは、推定酸素吸蔵量ＯＳＣを通常運転時最大酸素吸蔵量Ｃmaxに一致させる「推定酸素吸蔵量ＯＳＣの初期化」を行う。
【０１０４】
以上、説明したように、第１制御装置は、内燃機関１０の排気通路に配設された触媒４３の酸素吸蔵量ＯＳＣを推定する（推定酸素吸蔵量ＯＳＣを算出する）酸素吸蔵量推定手段を備え（図７を参照。）、前記酸素吸蔵量推定手段により推定される酸素吸蔵量ＯＳＣを使用して前記機関１０を制御するように構成された内燃機関の制御装置（図６、及び、図５のステップ５４０及び５５０等を参照。）であって、
前記機関の運転中に前記機関の運転を停止する要求である機関停止要求が発生したか否かを判定する停止要求発生判定手段（図８のステップ８３０）と、
前記機関停止要求が発生した場合に前記触媒４３の実際の酸素吸蔵量が最大の量に到達するように前記触媒４３に過剰な酸素（過剰な酸素を含む大気）を供給する制御手段（図８のステップ８４０、ステップ８５０、及び、図５のステップ５１０での「Ｎｏ」との判定を参照。）と、
前記触媒４３の実際の酸素吸蔵量が前記最大の量に到達したか否かを判定するとともに（図９のステップ９２０）、前記触媒４３の実際の酸素吸蔵量が前記最大の量に到達したと判定したとき前記推定される酸素吸蔵量（推定酸素吸蔵量ＯＳＣ）を前記触媒４３の最大酸素吸蔵量（通常運転時最大酸素吸蔵量Ｃmaxに基く値）に設定する推定酸素吸蔵量初期化手段（図９のステップ９５０）と、
を備える。
【０１０５】
即ち、前記制御手段は、
前記機関停止要求が発生した時点から前記触媒４３の実際の酸素吸蔵量が前記最大の量に到達したと判定される時点まで前記機関１０を回転させることにより（図８のステップ８３０及びステップ８５０、図９のステップ９２０及びステップ９３０）、前記機関１０を通して前記触媒４３に過剰な酸素を供給し、前記触媒４３の実際の酸素吸蔵量が前記最大の量に到達したと判定されたとき前記機関の回転を停止させるように構成されている（図９のステップ９２０及びステップ９３０）。
【０１０６】
換言すると、前記制御手段は、
前記機関停止要求が発生した場合、前記触媒４３の実際の酸素吸蔵量を前記最大の量に到達させるべく前記機関１０への燃料の供給を停止し（図８のステップ８３０、ステップ８４０及び図５のステップ５１０での「Ｎｏ」との判定を参照。）、且つ、前記機関１０を前記機関以外の動力源（モータ２２）により強制的に回転させる（図８のステップ８３０及びステップ８５０）ことにより前記触媒４３に過剰な酸素を含む大気を供給するとともに、前記触媒４３の実際の酸素吸蔵量が前記最大の量に到達したと判定されたとき（図９のステップ９２０での「Ｙｅｓ」との判定を参照。）、前記機関以外の動力源（モータ２２）による前記機関１０の強制的な回転を停止することにより前記機関の回転を停止させるように構成され（図９のステップ９３０）、
前記推定酸素吸蔵量初期化手段は、
前記触媒の実際の酸素吸蔵量が前記最大の量に到達したと判定したとき（図９のステップ９２０での「Ｙｅｓ」との判定を参照。）前記推定される酸素吸蔵量を前記触媒４３の最大酸素吸蔵量（通常時最大酸素吸蔵量に基く値）に設定するように構成されている（図９のステップ９５０）。
【０１０７】
この第１制御装置によれば、機関停止要求が発生した場合、機関１０の回転がモータ２２によって継続されるとともに、触媒４３に機関から大気が送り込まれ、触媒４３の実際の酸素吸蔵量が最大の量となるように移行させられる。そして、触媒の実際の酸素吸蔵量が最大の量へと移行したと推定される時点にて、推定酸素吸蔵量ＯＳＣが通常運転時最大酸素吸蔵量Ｃmaxに基く値（最大酸素吸蔵量）へと一致させられる。
【０１０８】
これにより、機関１０の回転が停止した時点において推定酸素吸蔵量ＯＳＣと実際の酸素吸蔵量とを高い精度をもって一致させることができるので、その後の機関始動時点から推定酸素吸蔵量ＯＳＣと実際の酸素吸蔵量との差を小さくすることができる。この結果、推定酸素吸蔵量ＯＳＣを用いた機関の制御（例えば空燃比制御）を、機関１０の始動直後から適切に行うことができる。更に、推定酸素吸蔵量ＯＳＣの初期化に伴う作動（モータ２２による機関１０の強制回転）が機関停止要求の発生後に行われるので、推定酸素吸蔵量ＯＳＣの初期化に伴う作動が「機関１０を搭載した車両の走行」に悪影響を及ぼすことを回避することもできる。
【０１０９】
更に、第１制御装置によれば、機関停止要求発生後において触媒４３に多量の酸素が短時間にて供給されるので、触媒４３の酸素吸蔵量を最大の量に短時間にて一致させることができる。この結果、機関停止要求後において機関を回転させておく時間を短くすることができ、他の動力源（モータ２２）により消費されるエネルギーの量（例えば、バッテリからのエネルギーの消費量）を少なくすることができる。なお、他の動力源は、例えば機関が所謂ハイブリッド車両に搭載されている場合、そのハイブリッド車両のモータであってもよく、機関が通常の車両に搭載されている場合、その車両のスタータモータであってもよい。
【０１１０】
＜第２制御装置＞
次に、本発明の第２実施形態に係る制御装置（以下、「第２制御装置」とも称呼する。）について説明する。この第２制御装置は、機関停止要求が発生したとき、燃料噴射を停止するとともに、電気加熱ヒータ４４に通電することにより触媒４３の温度を所定値（目標温度）にまで上昇させる。そして、触媒の温度が所定値となってから、モータ２２によって機関１０を強制的に回転させることにより触媒４３に酸素（実際には大気）を供給する。その他の点は第１制御装置と同様である。
【０１１１】
より具体的に述べると、第２制御装置は、図１０に示したように作動する。即ち、時刻ｔ１にて機関始動要求が発生すると、燃料噴射フラグＸｉｎｊが「１」に設定され、燃料噴射が開始する。
【０１１２】
この状態において（即ち、機関の運転中）、時刻ｔ２にて機関停止要求が発生すると、ヒータ通電フラグＸＨの値が「１」に設定され、電気加熱ヒータ４４が通電される。これにより、触媒の温度は上昇して時刻ｔ３にて目標温度Ｔｔｇｔに到達する。
【０１１３】
時刻ｔ３にて触媒の温度が目標温度Ｔｔｇｔに到達すると、燃料噴射フラグＸｉｎｊの値は「０」に設定されるので、燃料噴射が停止する。なお、燃料噴射フラグＸｉｎｊの値は時刻ｔ２にて「０」に設定されてもよい。即ち、時刻ｔ２にて燃料噴射が停止されてもよい。
【０１１４】
更に、時刻ｔ３において、機関強制回転フラグＸＭの値が「１」に設定される。これにより、モータ２２によって機関１０が強制的に回転させられる。その結果、機関１０を通じて大気が吸気通路から排気通路へと送出されるので、触媒４３に大気（多量の酸素を含むガス）が供給される。従って、触媒４３の酸素吸蔵量は急速に増大する。
【０１１５】
その後、時刻ｔ４にて下流側空燃比センサ５７の出力値Voxsは最小出力値minに到達する。このとき、機関強制回転フラグＸＭの値は「０」に設定され、それにより、モータ２２による機関１０の強制回転が終了する。このとき、推定酸素吸蔵量ＯＳＣは最大酸素吸蔵量に設定される。
【０１１６】
（実際の作動）
次に、第２制御装置の実際の作動について説明する。第２制御装置のＣＰＵは、図４乃至図７、及び、図１１乃至図１３にフローチャートにより示したルーチンを実行する。図４乃至図７に示したルーチンについては説明済みである。従って、以下、図１１乃至図１３に示したルーチンを参照しながら説明する。
【０１１７】
＜触媒温度制御制御の開始＞
ＣＰＵは図１１にフローチャートにより示した「触媒温度制御開始ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１１００から処理を開始し、ステップ１１１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ１１１０にて「Ｎｏ」と判定してステップ１１９５に直接進み、本ルーチンを一旦終了する。
【０１１８】
一方、ＣＰＵがステップ１１１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」に設定されていると（即ち、燃料噴射が実行されていて機関１０に燃料が供給されていると）、ＣＰＵはそのステップ１１１０にて「Ｙｅｓ」と判定してステップ１１２０に進み、機関強制回転フラグＸＭの値が「０」であるか否かを判定する。
【０１１９】
ＣＰＵがステップ１１２０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」であると、ＣＰＵはそのステップ１１２０にて「Ｎｏ」と判定してステップ１１９５に直接進み、本ルーチンを一旦終了する。
【０１２０】
一方、ＣＰＵがステップ１１２０の処理を行う時点において、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはそのステップ１１２０にて「Ｙｅｓ」と判定してステップ１１３０に進み、ヒータ通電フラグＸＨの値が「０」であるか否かを判定する。後述するように、ヒータ通電フラグＸＨの値は、電気加熱ヒータ４４への通電を開始したとき（触媒４３の加熱を開始したとき）に「１」に設定され、電気加熱ヒータ４４への通電を終了したときに「０」に設定される。
【０１２１】
ＣＰＵがステップ１１３０の処理を行う時点において、ヒータ通電フラグＸＨの値が「１」であると、ＣＰＵはそのステップ１１３０にて「Ｎｏ」と判定してステップ１１９５に直接進み、本ルーチンを一旦終了する。
【０１２２】
一方、ＣＰＵがステップ１１３０の処理を行う時点において、ヒータ通電フラグＸＨの値が「０」であると、ＣＰＵはそのステップ１１３０にて「Ｙｅｓ」と判定してステップ１１４０に進み、機関停止要求が発生したか否か（現時点が、機関停止要求が発生した直後であるか否か）を判定する。このとき、機関停止要求が発生していなければ、ＣＰＵはステップ１１４０にて「Ｎｏ」と判定し、ステップ１１９５に直接進んで本ルーチンを一旦終了する。
【０１２３】
一方、ＣＰＵがステップ１１４０の処理を行う時点において、機関停止要求が発生していると、ＣＰＵはそのステップ１１４０にて「Ｙｅｓ」と判定し、以下に述べるステップ１１５０及びステップ１１６０の処理を順に行い、その後、ステップ１１９５に進んで本ルーチンを一旦終了する。
【０１２４】
ステップ１１５０：ＣＰＵは、電気加熱ヒータ４４への通電を開始するとともに、実際の触媒温度が目標温度Ｔｔｇｔに一致するように、電気加熱ヒータ４４に供給する電力（実際には、電気加熱ヒータ４４のヒータを流れる電流）を制御する。電気加熱ヒータ４４が通電されているときの触媒温度は、電気加熱ヒータ４４の抵抗値及び電流から推定することができる。なお、触媒４３内に触媒温度センサを配設しておき、ＣＰＵはその触媒温度センサの出力値に基づいて触媒温度を取得してもよい。
ステップ１１６０：ＣＰＵは、ヒータ通電フラグＸＨの値を「１」に設定する。
【０１２５】
このように、ＣＰＵは、燃料噴射（燃料供給）が実行されていて、モータ２２による機関強制回転が実行されておらず、且つ、電気加熱ヒータ４４による触媒の加熱が実行されていない場合に機関停止要求が発生すると、電気加熱ヒータ４４への通電を開始し、触媒の温度を目標温度Ｔｔｇｔに一致させる。
【０１２６】
＜機関強制回転開始＞
ＣＰＵは図１２にフローチャートにより示した「機関強制回転開始ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１２００から処理を開始し、ステップ１２１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ１２１０にて「Ｎｏ」と判定してステップ１２９５に直接進み、本ルーチンを一旦終了する。
【０１２７】
一方、ＣＰＵがステップ１２１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」に設定されていると（即ち、燃料噴射が実行されていて機関１０に燃料が供給されていると）、ＣＰＵはそのステップ１２１０にて「Ｙｅｓ」と判定してステップ１２２０に進み、機関強制回転フラグＸＭの値が「０」であるか否かを判定する。
【０１２８】
ＣＰＵがステップ１２２０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」であると、ＣＰＵはそのステップ１２２０にて「Ｎｏ」と判定してステップ１２９５に直接進み、本ルーチンを一旦終了する。
【０１２９】
一方、ＣＰＵがステップ１２２０の処理を行う時点において、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはそのステップ１２２０にて「Ｙｅｓ」と判定してステップ１２３０に進み、ヒータ通電フラグＸＨの値が「１」であるか否かを判定する。このとき、ヒータ通電フラグＸＨの値が「０」であると、ＣＰＵはステップ１２３０にて「Ｎｏ」と判定してステップ１２９５に直接進み、本ルーチンを一旦終了する。
【０１３０】
一方、ＣＰＵがステップ１２３０の処理を行う時点において、ヒータ通電フラグＸＨの値が「１」であると、ＣＰＵはそのステップ１２３０にて「Ｙｅｓ」と判定してステップ１２４０に進み、触媒の温度が目標温度Ｔｔｇｔの近傍であるか否か（目標温度Ｔｔｇｔから所定値αを減じた値以上であり且つ目標温度Ｔｔｇｔに所定値αを加えた値以下であるか否か）を判定する。このとき、触媒の温度が目標温度Ｔｔｇｔの近傍でなければ、ＣＰＵはステップ１２４０にて「Ｎｏ」と判定してステップ１２９５に直接進み、本ルーチンを一旦終了する。
【０１３１】
一方、ＣＰＵがステップ１２４０の処理を行う時点において、触媒の温度が目標温度Ｔｔｇｔの近傍であると、ＣＰＵはそのステップ１２４０にて「Ｙｅｓ」と判定し、以下に述べるステップ１２５０乃至ステップ１２７０の処理を順に行い、その後、ステップ１２９５に直接進んで本ルーチンを一旦終了する。
【０１３２】
ステップ１２５０：ＣＰＵは、燃料噴射フラグＸｉｎｊの値を「０」に設定する。これにより、ＣＰＵは図５のステップ５１０にて「Ｎｏ」と判定するので、燃料噴射（即ち、機関１０への燃料の供給）が停止する。従って、機関１０は、それ自身で回転するトルクを発生することができない。
【０１３３】
ステップ１２６０：ＣＰＵは、モータ２２に用いて機関１０を強制的に回転させる。これにより、機関１０を通じて大気が吸気通路から排気通路へと送出される。その結果、触媒４３に大気（多量の酸素を含むガス）が供給される。従って、触媒４３の酸素吸蔵量は急速に増大する。
ステップ１２７０：ＣＰＵは、機関強制回転フラグＸＭの値を「１」に設定する。
【０１３４】
このように、ＣＰＵは、燃料噴射（燃料供給）が実行されていて、モータ２２による機関強制回転が実行されておらず、且つ、電気加熱ヒータ４４による触媒の加熱が実行されている場合に触媒の温度が目標温度Ｔｔｇｔに実質的に一致すると、燃料噴射を停止するとともにモータ２２による機関強制回転を開始する。
【０１３５】
＜機関停止時制御の終了＞
ＣＰＵは図１３にフローチャートにより示した「機関停止時制御終了ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１３００から処理を開始し、ステップ１３１０に進んで燃料噴射フラグＸｉｎｊの値が「０」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「１」であると、ＣＰＵはステップ１３１０にて「Ｎｏ」と判定してステップ１３９５に直接進み、本ルーチンを一旦終了する。
【０１３６】
一方、ＣＰＵがステップ１３１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「０」に設定されていると、ＣＰＵはそのステップ１３１０にて「Ｙｅｓ」と判定してステップ１３２０に進み、機関強制回転フラグＸＭの値が「１」であるか否かを判定する。このとき、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはステップ１３２０にて「Ｎｏ」と判定してステップ１３９５に直接進み、本ルーチンを一旦終了する。
【０１３７】
一方、ＣＰＵがステップ１３２０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」に設定されていると（即ち、機関１０がモータ２２によって強制的に回転させられていると）、ＣＰＵはそのステップ１３２０にて「Ｙｅｓ」と判定してステップ１３３０に進み、ヒータ通電フラグＸＨの値が「１」であるか否かを判定する。このとき、ヒータ通電フラグＸＨの値が「０」であると、ＣＰＵはステップ１３３０にて「Ｎｏ」と判定してステップ１３９５に直接進み、本ルーチンを一旦終了する。
【０１３８】
一方、ＣＰＵがステップ１３３０の処理を行う時点において、ヒータ通電フラグＸＨの値が「１」に設定されていると、ＣＰＵはそのステップ１３３０にて「Ｙｅｓ」と判定してステップ１３４０に進み、下流側空燃比センサ５７の出力値Voxsが最小出力値min以下となったか否かを判定する。換言すると、ＣＰＵは、出力値Voxsが明白なリーン空燃比を示す値となったか否かを判定する。触媒４３の実際の酸素吸蔵量が最大の量に到達していると、触媒４３からは多量の酸素が流出するので、出力値Voxsは明白なリーン空燃比を示す値となる。なお、ＣＰＵは、ステップ１３４０において、出力値Voxsが最小出力値min以下となっている継続時間が所定時間以上となったか否かを判定することにより、触媒４３の実際の酸素吸蔵量が最大の量に到達したか否かを判定してもよい。
【０１３９】
ＣＰＵがステップ１３４０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていなければ、ＣＰＵはそのステップ１３４０にて「Ｎｏ」と判定し、ステップ１３９５に直接進んで本ルーチンを一旦終了する。この結果、モータ２２による機関１０の強制的な回転は継続される。
【０１４０】
一方、ＣＰＵがステップ１３４０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていると、ＣＰＵは触媒４３の酸素吸蔵量が最大の量に到達したと判定する。即ち、この場合、ＣＰＵはそのステップ１３４０にて「Ｙｅｓ」と判定し、以下に述べるステップ１３５０乃至ステップ１３９０の処理を順に行い、その後、ステップ１３９５に進んで本ルーチンを一旦終了する。
【０１４１】
ステップ１３５０：ＣＰＵは、モータ２２の回転を停止させ、モータ２２による機関１０の強制回転を終了する。
ステップ１３６０：ＣＰＵは、機関強制回転フラグＸＭの値を「０」に設定する。
ステップ１３７０：ＣＰＵは、電気加熱ヒータ４４への通電を停止する。即ち、電気加熱ヒータ４４のヒータ電流を「０」に設定することにより、電気加熱ヒータ４４への電力の供給を停止する。
ステップ１３８０：ＣＰＵは、ヒータ通電フラグＸＨの値を「０」に設定する。
ステップ１３９０：ＣＰＵは、推定酸素吸蔵量ＯＳＣを通常運転時最大酸素吸蔵量Ｃmaxに設定する（ＯＳＣ＝Ｃmax）。即ち、推定酸素吸蔵量ＯＳＣを通常運転時最大酸素吸蔵量Ｃmaxに一致させる。なお、第２制御装置において、通常運転時最大酸素吸蔵量Ｃmaxは「機関１０が通常の運転を行っている場合であって且つ触媒の温度が目標温度Ｔｔｇｔであるとき」に取得されるようになっている。
【０１４２】
このように、ＣＰＵは、燃料噴射（燃料供給）が停止されており、モータ２２による機関強制回転が実行されていて、且つ、電気加熱ヒータ４４による触媒の加熱が実行されている場合に、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す状態になったとき、モータ２２による機関強制回転を停止するとともに、電気加熱ヒータ４４への通電を停止する。更に、ＣＰＵは推定酸素吸蔵量ＯＳＣを最大酸素吸蔵量（通常運転時最大酸素吸蔵量Ｃmaxに基く値）に設定する。
【０１４３】
以上、説明したように、第２制御装置は、機関停止要求が発生した場合に電気加熱ヒータ４４を用いて前記触媒の温度を所定温度（目標温度Ｔｔｇｔ）へと上昇させるとともに、前記触媒の温度を所定温度（目標温度Ｔｔｇｔ）へと上昇させた状態にて（前記触媒の温度が目標温度Ｔｔｇｔとなったとき）、機関の燃料噴射（燃料供給）を停止した状態にてモータ２２により機関１０を強制回転させる。
【０１４４】
触媒４３が吸蔵し得る酸素の最大の量は、触媒の温度に依存して変化する。従って、モータ２２により機関１０を強制回転させている場合の触媒の温度が機関停止要求発生時間において相違すると、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す値となった時点における触媒４３の実際の酸素吸蔵量が、「機関１０が通常の運転を行っている場合であって且つ触媒の温度が目標温度Ｔｔｇｔであるとき」に取得された通常運転時最大酸素吸蔵量Ｃmaxと必ずしも一致しない。
【０１４５】
これに対し、第２制御装置は、機関停止要求の発生後に触媒の温度を目標温度Ｔｔｇｔに実質的に一致させた状態にてモータ２２により機関１０を強制回転させることにより、触媒４３に酸素を供給する。従って、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す値となった時点（触媒４３の酸素吸蔵量が最大の量に到達したと推定される時点）における実際の酸素吸蔵量が通常運転時最大酸素吸蔵量Ｃmaxに近しい値となる。加えて、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す値となった時点にて、推定酸素吸蔵量ＯＳＣが通常運転時最大酸素吸蔵量Ｃmaxに一致させられる。その結果、推定酸素吸蔵量ＯＳＣを真の酸素吸蔵量に精度良く一致させることができる（推定酸素吸蔵量ＯＳＣを精度良く初期化させることができる）。なお、第２制御手段は、通常時最大酸素吸蔵量Ｃmaxを触媒の温度が目標温度Ｔｔｇｔ以外の温度Ｔotherであるときに取得し、その温度Ｔotherと目標温度Ｔｔｇｔと通常運転時最大酸素吸蔵量Ｃmaxとに基き、触媒４３の酸素吸蔵量が最大の量に到達したと推定される時点にて推定酸素吸蔵量ＯＳＣに設定される最大酸素吸蔵量を求めてもよい。
【０１４６】
＜第３制御装置＞
次に、本発明の第３実施形態に係る制御装置（以下、「第３制御装置」とも称呼する。）について説明する。この第３制御装置は、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す値となった時点（触媒の酸素吸蔵量が最大の量に到達したと推定される時点）にてモータ２２による機関の強制回転を終了し、その時点の触媒の温度を取得する。更に、第３制御装置は、その取得した触媒の温度に基いて「その時点の触媒の最大酸素吸蔵量Ｃmax（その時点の触媒の酸素吸蔵量）」を取得し、推定酸素吸蔵量ＯＳＣを「その取得した最大酸素吸蔵量Ｃmax」に一致させる。第３制御装置は、その他の点において第１制御装置と同様である。
【０１４７】
（実際の作動）
次に、第３制御装置の実際の作動について説明する。第３制御装置のＣＰＵは、図４乃至図８、及び、図１４にフローチャートにより示したルーチンを実行する。図４乃至図８に示したルーチンについては説明済みである。従って、以下、図１４に示したルーチンを参照しながら説明する。
【０１４８】
ＣＰＵは図１４にフローチャートにより示した「機関停止時制御終了ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１４００から処理を開始し、ステップ１４１０に進んで機関強制回転フラグＸＭの値が「１」であるか否かを判定する。このとき、機関強制回転フラグＸＭの値が「０」であると、ＣＰＵはステップ１４１０にて「Ｎｏ」と判定してステップ１４９５に直接進み、本ルーチンを一旦終了する。
【０１４９】
一方、ＣＰＵがステップ１４１０の処理を行う時点において、機関強制回転フラグＸＭの値が「１」に設定されていると（即ち、機関１０がモータ２２によって強制的に回転させられていると）、ＣＰＵはそのステップ１４１０にて「Ｙｅｓ」と判定してステップ１４２０に進み、下流側空燃比センサ５７の出力値Voxsが最小出力値min以下となったか否かを判定する。換言すると、ＣＰＵは、出力値Voxsが明白なリーン空燃比を示す値となったか否かを判定する。触媒４３の実際の酸素吸蔵量が最大の量に到達していると、触媒４３からは多量の酸素が流出するので、出力値Voxsは明白なリーン空燃比を示す値となる。なお、ＣＰＵは、ステップ１４２０において、出力値Voxsが最小出力値min以下となっている継続時間が所定時間以上となったか否かを判定することにより、触媒４３の実際の酸素吸蔵量が最大の量に到達したか否かを判定してもよい。
【０１５０】
ＣＰＵがステップ１４２０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていなければ、ＣＰＵはそのステップ１４２０にて「Ｎｏ」と判定し、ステップ１４９５に直接進んで本ルーチンを一旦終了する。この結果、モータ２２による機関１０の強制的な回転は継続される。
【０１５１】
一方、ＣＰＵがステップ１４２０の処理を行う時点において、出力値Voxsが最小出力値min以下となっていると、ＣＰＵは酸素吸蔵量が最大の量に到達したと判定する。即ち、この場合、ＣＰＵはそのステップ１４２０にて「Ｙｅｓ」と判定し、以下に述べるステップ１４３０乃至ステップ１４８０の処理を順に行い、その後、ステップ１４９５に進んで本ルーチンを一旦終了する。
【０１５２】
ステップ１４３０：ＣＰＵは、モータ２２の回転を停止させ、モータ２２による機関１０の強制回転を終了する。
ステップ１４４０：ＣＰＵは、機関強制回転フラグＸＭの値を「０」に設定する。
【０１５３】
ステップ１４５０：ＣＰＵは、図示しないルーチンにより別途推定されている触媒温度Ｔｅｍｐｃｃｒｏを取得する（読み込む）。触媒温度Ｔｅｍｐｃｃｒｏは、機関１０の負荷ＫＬ及び機関回転速度ＮＥに基づいて推定される。即ち、ＣＰＵはルックアップテーブルＭａｐＴｅｘ（ＫＬ，ＮＥ）に実際の「負荷ＫＬ及び機関回転速度ＮＥ」を適用することにより排ガス温度Ｔｅｘを所定時間が経過する毎に推定する。その後、ＣＰＵは、下記の（３）式に従って触媒温度Ｔｅｍｐｃｃｒｏを推定する。（３）式の値ｐは「０」より大きく「１」より小さい定数である。（３）式の左辺のＴｅｍｐｃｃｒｏが新たに更新された触媒温度Ｔｅｍｐｃｃｒｏであり、（３）式の右辺のＴｅｍｐｃｃｒｏｐは更新前の触媒温度Ｔｅｍｐｃｃｒｏである。なお、モータ２２により機関が強制回転させられているとき、ＣＰＵは排ガス温度Ｔｅｘに大気温度を代入する。大気温度は、図示されていない大気温度センサにより取得される。
Ｔｅｍｐｃｃｒｏ＝ｐ・Ｔｅｍｐｃｃｒｏ＋（１−ｐ）・Ｔｅｘ  …（３）
【０１５４】
なお、上流側触媒４３内に触媒温度センサを配設しておき、ＣＰＵはその触媒温度センサの出力値に基づいて触媒温度Ｔｅｍｐｃｃｒｏを取得してもよい。
【０１５５】
ステップ１４６０：ＣＰＵは、機関１０の通常の運転中に図示しないルーチンにより別途算出しておいた通常運転時最大酸素吸蔵量を読み込む。この通常運転時最大酸素吸蔵量は、便宜上、最大酸素吸蔵量の基準値Ｃmax０とも称呼される。基準値Ｃmax０は、触媒温度Ｔｅｍｐｃｃｒｏが特定温度であるときに取得される最大酸素吸蔵量Ｃmaxである。
【０１５６】
ステップ１４７０：ＣＰＵは、現時点における触媒の酸素吸蔵量（即ち、最大酸素吸蔵量Ｃmax）を、ステップ１４５０にて取得した触媒温度Ｔｅｍｐｃｃｒｏと、ステップ１４６０にて取得した最大酸素吸蔵量の基準値Ｃmax０と、に基いて推定する。より具体的に述べると、ＣＰＵは、触媒温度Ｔｅｍｐｃｃｒｏと最大酸素吸蔵量の基準値Ｃmax０とをルックアップテーブルＭａｐＣmax（Ｔｅｍｐｃｃｒｏ，Ｃmax０）に適用することにより、最大酸素吸蔵量Ｃmaxを推定する。このテーブルによれば、触媒温度Ｔｅｍｐｃｃｒｏが高いほど、且つ、最大酸素吸蔵量の基準値Ｃmax０が大きいほど、最大酸素吸蔵量Ｃmaxは大きい値となるように求められる。
【０１５７】
ステップ１４８０：ＣＰＵは、推定酸素吸蔵量ＯＳＣを「ステップ１４７０にて算出した最大酸素吸蔵量Ｃmax」に設定する（ＯＳＣ＝Ｃmax）。即ち、推定酸素吸蔵量ＯＳＣを最大酸素吸蔵量Ｃmaxに一致させる。
【０１５８】
以上、説明したように、第３制御装置は、機関停止要求の発生後に燃料供給を停止し且つモータ２２により機関１０を強制回転させることにより触媒に酸素を供給する。更に、下流側空燃比センサ５７の出力値Voxsが明白なリーン空燃比を示す値となった時点（触媒の酸素吸蔵量が最大の量に到達したと推定される時点）における触媒温度Ｔｅｍｐｃｃｒｏに基いて、その時点の最大酸素吸蔵量Ｃmaxを「酸素吸蔵量の基準値Ｃmax０及び触媒温度Ｔｅｍｐｃｃｒｏ」に基いて算出し、推定酸素吸蔵量ＯＳＣをその算出した最大酸素吸蔵量Ｃmaxに一致させる。その結果、触媒の酸素吸蔵量が最大の量に到達したと推定される時点における触媒温度Ｔｅｍｐｃｃに関わらず、推定酸素吸蔵量ＯＳＣを真の酸素吸蔵量に精度良く一致させることができる（推定酸素吸蔵量ＯＳＣを精度良く初期化させることができる）。
【０１５９】
＜第４制御装置＞
次に、本発明の第４実施形態に係る制御装置（以下、「第４制御装置」とも称呼する。）について説明する。この第４制御装置は、機関の運転中に機関停止要求が発生すると、目標空燃比abyfrを「理論空燃比stoichよりも小さいリッチ空燃比africh」に設定し、空燃比フィードバック制御を停止し、且つ、燃料噴射（燃料供給）を継続する。これにより、機関停止要求が発生した時点以降において機関に供給される混合気の空燃比が理論空燃比stoichよりも小さい（リッチな）空燃比となるので触媒４３に過剰な未燃物が流入する。よって、触媒４３の酸素吸蔵量は減少する。
【０１６０】
更に、第４制御装置は、下流側空燃比センサ５７の出力値Voxsが最大出力値maxに到達したとき（触媒の酸素吸蔵量が最小の量に到達したと推定される時点）、触媒４３の酸素吸蔵量が最小酸素吸蔵量である「０」に到達したと判定し、推定酸素吸蔵量ＯＳＣを「０」に設定する。第４制御装置は、その他の点において第１制御装置と同様である。
【０１６１】
（実際の作動）
次に、第４制御装置の実際の作動について説明する。第４制御装置のＣＰＵは、図４乃至図７、図１５及び図１６にフローチャートにより示したルーチンを実行する。図４乃至図７に示したルーチンについては説明済みである。従って、以下、図１５及び図１６に示したルーチンを参照しながら説明する。
【０１６２】
ＣＰＵは図１５にフローチャートにより示した「機関停止時制御開始ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１５００から処理を開始し、ステップ１５１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ１５１０にて「Ｎｏ」と判定してステップ１５９５に直接進み、本ルーチンを一旦終了する。
【０１６３】
一方、ＣＰＵがステップ１５１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」に設定されていると、ＣＰＵはそのステップ１５１０にて「Ｙｅｓ」と判定してステップ１５２０に進み、リッチ化フラグＸrichの値が「０」であるか否かを判定する。リッチ化フラグＸrichは、後述するように、目標空燃比abyfrが「理論空燃比stoichよりも小さいリッチ空燃比africh」に設定されたとき「１」に設定され、目標空燃比abyfrが理論空燃比stoichに設定されたとき「０」に設定される。
【０１６４】
ＣＰＵがステップ１５２０の処理を行う時点においてリッチ化フラグＸrichの値が「１」であると、ＣＰＵはステップ１５２０にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。
【０１６５】
一方、ＣＰＵがステップ１５２０の処理を行う時点において、リッチ化フラグＸrichの値が「０」に設定されていると、ＣＰＵはそのステップ１５２０にて「Ｙｅｓ」と判定してステップ１５３０に進み、機関停止要求が発生したか否か（現時点が、機関停止要求が発生した直後であるか否か）を判定する。このとき、機関停止要求が発生していなければ、ＣＰＵはステップ１５３０にて「Ｎｏ」と判定し、ステップ１５９５に直接進んで本ルーチンを一旦終了する。
【０１６６】
一方、ＣＰＵがステップ１５３０の処理を行う時点において、機関停止要求が発生していると、ＣＰＵはそのステップ１５３０にて「Ｙｅｓ」と判定し、以下に述べるステップ１５４０乃至ステップ１５６０の処理を順に行い、その後、ステップ１５９５に進んで本ルーチンを一旦終了する。
【０１６７】
ステップ１５４０：ＣＰＵは、目標空燃比abyfrを「理論空燃比stoichよりも小さいリッチ空燃比africh」に設定する。
ステップ１５５０：ＣＰＵは、リッチ化フラグＸrichの値を「１」に設定する。
ステップ１５６０：ＣＰＵは、空燃比フィードバック量ＦＦＢを「０」に設定し、空燃比フィードバック制御を停止する。
【０１６８】
この結果、図５のステップ５３０及びステップ５４０の処理によって、指示燃料噴射量Ｆｉは、機関の空燃比をリッチ空燃比africhに一致させるために必要な量となる。従って、触媒４３に過剰な未燃物が流入するので、触媒４３の酸素吸蔵量は減少して行く。
【０１６９】
ＣＰＵは図１６にフローチャートにより示した「機関停止時制御終了ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１６００から処理を開始し、ステップ１６１０に進んでリッチ化フラグＸrichの値が「１」であるか否かを判定する。このとき、リッチ化フラグＸrichの値が「０」であると、ＣＰＵはステップ１６１０にて「Ｎｏ」と判定してステップ１６９５に直接進み、本ルーチンを一旦終了する。
【０１７０】
一方、ＣＰＵがステップ１６１０の処理を行う時点において、リッチ化フラグＸrichの値が「１」に設定されていると（即ち、機関の空燃比がリッチ空燃比africhに一致させられていると）、ＣＰＵはそのステップ１６１０にて「Ｙｅｓ」と判定してステップ１６２０に進み、下流側空燃比センサ５７の出力値Voxsが最大出力値max以上となったか否かを判定する。換言すると、ＣＰＵは、出力値Voxsが明白なリッチ空燃比を示す値となったか否かを判定する。触媒４３の実際の酸素吸蔵量が「０」に到達していると、触媒４３からは多量の未燃物が流出するので、出力値Voxsは明白なリッチ空燃比を示す値となる。なお、ＣＰＵは、ステップ１６２０において、出力値Voxsが最大出力値max以上となっている継続時間が所定時間以上となったか否かを判定することにより、触媒４３の実際の酸素吸蔵量が「０」に到達したか否かを判定してもよい。
【０１７１】
ＣＰＵがステップ１６２０の処理を行う時点において、出力値Voxsが最大出力値max以上となっていなければ、ＣＰＵはそのステップ１６２０にて「Ｎｏ」と判定し、ステップ１６９５に直接進んで本ルーチンを一旦終了する。この結果、燃料噴射（燃料供給）が継続されるとともに、機関の空燃比はリッチ空燃比africhに一致させられ続ける。
【０１７２】
一方、ＣＰＵがステップ１６２０の処理を行う時点において、出力値Voxsが最大出力値max以上となっていると、ＣＰＵは酸素吸蔵量が最小の量に到達したと判定する。即ち、この場合、ＣＰＵはそのステップ１６２０にて「Ｙｅｓ」と判定し、以下に述べるステップ１６３０乃至ステップ１６６０の処理を順に行い、その後、ステップ１６９５に進んで本ルーチンを一旦終了する。
【０１７３】
ステップ１６３０：ＣＰＵは、燃料噴射フラグＸｉｎｊの値を「０」に設定する。これにより、燃料噴射（燃料供給）が停止されるので、機関１０の回転が停止する。
ステップ１６４０：ＣＰＵは、目標空燃比abyfrを理論空燃比stoichに設定する。
ステップ１６５０：ＣＰＵは、リッチ化フラグＸrichの値を「０」に設定する。
ステップ１６６０：ＣＰＵは、推定酸素吸蔵量ＯＳＣを最小酸素吸蔵量である「０」に設定する（ＯＳＣ＝０）。即ち、推定酸素吸蔵量ＯＳＣを「０」に一致させる。
【０１７４】
以上、説明したように、第４制御装置は、内燃機関１０の排気通路に配設された触媒４３の酸素吸蔵量ＯＳＣを推定する（推定酸素吸蔵量ＯＳＣを算出する）酸素吸蔵量推定手段を備え（図７を参照。）、前記酸素吸蔵量推定手段により推定される酸素吸蔵量ＯＳＣを使用して前記機関１０を制御するように構成された内燃機関の制御装置（図６、及び、図５のステップ５４０及び５５０等を参照。）であって、
前記機関の運転中に前記機関の運転を停止する要求である機関停止要求が発生したか否かを判定する停止要求発生判定手段（図１５のステップ１５３０）と、
前記機関停止要求が発生した場合に前記触媒４３の実際の酸素吸蔵量が最小の量に到達するように前記触媒４３に過剰な未燃物を供給する制御手段（図１５のステップ１５３０乃至ステップ１５６０、図５の特にステップ５３０乃至ステップ５５０を参照。）と、
前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したか否かを判定するとともに（図１６のステップ１６２０）、前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したと判定したとき前記推定される酸素吸蔵量（推定酸素吸蔵量ＯＳＣ）を前記触媒４３最小酸素吸蔵量（「０」）に設定する推定酸素吸蔵量初期化手段（図１６のステップ１６６０）と、
を備える。
【０１７５】
即ち、第４制御装置の制御手段は、
前記機関停止要求が発生した時点から前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したと判定される時点まで前記機関１０を（同機関１０自体が発生するトルクに基づいて）回転させることにより機関１０を通して前記触媒４３に前記過剰な未燃物を供給し（図１５のステップ１５４０乃至ステップ１５６０、図５の特にステップ５３０乃至ステップ５５０を参照。）、前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したと判定されたとき前記機関の回転を停止させるように構成されている（図１６のステップ１６２０及びステップ１６３０、図５のステップ５１０での「Ｎｏ」との判定を参照。）。
【０１７６】
換言すると、この制御手段は、
前記機関停止要求が発生した場合、前記触媒４３の実際の酸素吸蔵量を前記最小の量に到達させるべく前記機関１０に供給される混合気に含まれる燃料の量を「その混合気の空燃比が理論空燃比よりも小さい空燃比（リッチ空燃比africh）となるように」制御することにより前記触媒に過剰な未燃物を供給するとともに（図１５のステップ１５３０乃至ステップ１５６０、図５の特にステップ５３０乃至ステップ５５０を参照。）、前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したと判定されたとき（図１６のステップ１６２０での「Ｙｅｓ」との判定を参照。）、前記機関１０への燃料の供給を停止することにより前記機関の回転を停止させるように構成され（図１６のステップ１６３０及び図５のステップ５１０での「Ｎｏ」との判定を参照。）、
前記推定酸素吸蔵量初期化手段は、
前記触媒４３の実際の酸素吸蔵量が前記最小の量に到達したと判定したとき（図１６のステップ１６２０での「Ｙｅｓ」との判定を参照。）前記推定される酸素吸蔵量を前記触媒４３の最小酸素吸蔵量に設定するように構成されている（図１６のステップ１６６０）。
【０１７７】
この第４制御装置によれば、機関停止要求が発生した場合、機関１０の回転が「機関１０に燃料が供給され続けること」によって継続されるとともに、触媒の実際の酸素吸蔵量が最小の量へと移行させられる。そして、触媒の実際の酸素吸蔵量が最小の量へと移行したと推定される時点にて、推定酸素吸蔵量ＯＳＣが最小酸素吸蔵量（「０」）へと一致させられる。
【０１７８】
これにより、機関１０の回転が停止した時点において推定酸素吸蔵量ＯＳＣと実際の酸素吸蔵量とを高い精度をもって一致させることができるので、その後の機関始動時点から推定酸素吸蔵量ＯＳＣと実際の酸素吸蔵量との差を小さくすることができる。この結果、推定酸素吸蔵量ＯＳＣを用いた機関の制御（例えば空燃比制御）を、機関１０の始動直後から適切に行うことができる。更に、推定酸素吸蔵量ＯＳＣの初期化に伴う作動（機関停止要求後の機関１０の継続的な回転）が機関停止要求の発生後に行われるので、推定酸素吸蔵量ＯＳＣの初期化に伴う作動が「機関１０を搭載した車両の走行」に悪影響を及ぼすことを回避することもできる。
【０１７９】
更に、第４制御装置によれば、機関停止要求発生後において、過剰の未燃物が機関自身の発生するエネルギーにより触媒４３に供給される。従って、機関停止要求後において機関を回転させておくためのエネルギーの供給源を別途準備する必要がない。
【０１８０】
＜第５制御装置＞
次に、本発明の第５実施形態に係る制御装置（以下、「第５制御装置」とも称呼する。）について説明する。この第５制御装置は、第４制御装置と同様、機関の運転中に機関停止要求が発生すると目標空燃比abyfrを「理論空燃比stoichよりも小さいリッチ空燃比africh」に設定し、空燃比フィードバック制御を停止し、且つ、燃料噴射（燃料供給）を継続する。これにより、機関停止要求が発生した時点以降において、触媒４３の酸素吸蔵量は減少する。
【０１８１】
更に、第５制御装置は、機関停止要求の発生時に触媒温度Ｔｅｍｐｃｃｒｏを取得し、その触媒温度Ｔｅｍｐｃｃｒｏに基いてリッチ制御時間Ｔrichを決定する。このリッチ制御時間Ｔrichは、目標空燃比abyfrをリッチ空燃比africhに設定することにより機関の空燃比をリッチ空燃比africhに維持し続ける時間（即ち、機関停止要求が発生した後に触媒４３の酸素吸蔵量を最小の量に到達させるのに必要な時間）である。リッチ制御時間Ｔrichは、供給継続時間とも称呼される。
【０１８２】
ところで、触媒４３が吸蔵することができる酸素量は触媒の温度に依存して変化する。更に、下流側空燃比センサ５７の出力値Voxsが最大出力値maxとなった場合であっても、触媒４３の温度が相対的に低い場合には、触媒の酸素吸蔵量は必ずしも最小の量になっていない場合がある。これは、触媒の温度が相対的に低い場合には、「触媒流入ガスに含まれる未燃物が触媒４３に吸蔵されている酸素と結合することなく触媒を通過する現象（所謂「吹き抜け現象」）」が発生する場合があるからである。
【０１８３】
そこで、第５制御装置は、下流側空燃比センサ５７の出力値Voxsが最大出力値maxに到達していても、機関停止要求の発生時点から機関の空燃比をリッチ空燃比africhに維持し続けた時間（リッチ制御継続時間、機関回転続行時間）がリッチ制御時間Ｔrich（供給継続時間）に到達していなければ、機関の空燃比をリッチ空燃比africhに維持し続ける。そして、第５制御装置は、供給継続時間がリッチ制御時間Ｔrichに到達したとき、触媒４３の酸素吸蔵量が最小酸素吸蔵量である「０」に到達したと判定し、推定酸素吸蔵量ＯＳＣを「０」に設定する。第５制御装置は、その他の点において第４制御装置と同様である。
【０１８４】
（実際の作動）
次に、第５制御装置の実際の作動について説明する。第５制御装置のＣＰＵは、図４乃至図７、図１７及び図１８にフローチャートにより示したルーチンを実行する。図４乃至図７に示したルーチンについては説明済みである。従って、以下、図１７及び図１８に示したルーチンを参照しながら説明する。
【０１８５】
ＣＰＵは図１７にフローチャートにより示した「機関停止時制御開始ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１７００から処理を開始し、ステップ１７１０に進んで燃料噴射フラグＸｉｎｊの値が「１」であるか否かを判定する。このとき、燃料噴射フラグＸｉｎｊの値が「０」であると、ＣＰＵはステップ１７１０にて「Ｎｏ」と判定してステップ１７９５に直接進み、本ルーチンを一旦終了する。
【０１８６】
一方、ＣＰＵがステップ１７１０の処理を行う時点において、燃料噴射フラグＸｉｎｊの値が「１」に設定されていると、ＣＰＵはそのステップ１７１０にて「Ｙｅｓ」と判定してステップ１７２０に進み、リッチ化フラグＸrichの値が「０」であるか否かを判定する。このとき、リッチ化フラグＸrichの値が「１」であると、ＣＰＵはステップ１７２０にて「Ｎｏ」と判定し、ステップ１７９５に直接進んで本ルーチンを一旦終了する。
【０１８７】
一方、ＣＰＵがステップ１７２０の処理を行う時点において、リッチ化フラグＸrichの値が「０」に設定されていると、ＣＰＵはそのステップ１７２０にて「Ｙｅｓ」と判定してステップ１７３０に進み、機関停止要求が発生したか否か（現時点が、機関停止要求が発生した直後であるか否か）を判定する。このとき、機関停止要求が発生していなければ、ＣＰＵはステップ１７３０にて「Ｎｏ」と判定し、ステップ１７９５に直接進んで本ルーチンを一旦終了する。
【０１８８】
一方、ＣＰＵがステップ１７３０の処理を行う時点において、機関停止要求が発生していると、ＣＰＵはそのステップ１７３０にて「Ｙｅｓ」と判定し、以下に述べるステップ１７４０乃至ステップ１７８０の処理を順に行い、その後、ステップ１７９５に進んで本ルーチンを一旦終了する。
【０１８９】
ステップ１７４０：ＣＰＵは、触媒温度Ｔｅｍｐｃｃｒｏを取得する。触媒温度Ｔｅｍｐｃｃｒｏは上記（３）式を用いて別途算出されている。触媒温度Ｔｅｍｐｃｃｒｏは、触媒温度センサの出力値に基いて取得されてもよい。
【０１９０】
ステップ１７５０：ＣＰＵは、ステップ１７４０にて取得した触媒温度Ｔｅｍｐｃｃｒｏに基いてリッチ制御時間Ｔrichを決定する。実際には、ＣＰＵはルックアップテーブルＭａｐＴrich（Ｔｅｍｐｃｃｒｏ）に「ステップ１７４０にて取得した触媒温度Ｔｅｍｐｃｃｒｏ」を適用することによりリッチ制御時間Ｔrichを求める。このテーブルＭａｐＴrich（Ｔｅｍｐｃｃｒｏ）によれば、リッチ制御時間Ｔrichは触媒温度Ｔｅｍｐｃｃｒｏの高いほど短くなるように決定される。但し、リッチ制御時間Ｔrichは触媒温度Ｔｅｍｐｃｃｒｏ高いほど長くなるように定められる場合もあり得る。
【０１９１】
ステップ１７６０：ＣＰＵは、目標空燃比abyfrを「理論空燃比stoichよりも小さいリッチ空燃比africh」に設定する。
ステップ１７７０：ＣＰＵは、リッチ化フラグＸrichの値を「１」に設定する。
ステップ１７８０：ＣＰＵは、空燃比フィードバック量ＦＦＢを「０」に設定し、空燃比フィードバック制御を停止する。
【０１９２】
この結果、図５のステップ５３０及びステップ５４０の処理によって、指示燃料噴射量Ｆｉは、機関の空燃比をリッチ空燃比africhに一致させるために必要な量となる。従って、触媒４３の酸素吸蔵量は減少して行く。
【０１９３】
ＣＰＵは図１８にフローチャートにより示した「機関停止時制御終了ルーチン」を所定時間の経過毎に繰り返し実行している。従って、所定のタイミングになると、ＣＰＵはステップ１８００から処理を開始し、ステップ１８１０に進んでリッチ化フラグＸrichの値が「１」であるか否かを判定する。このとき、リッチ化フラグＸrichの値が「０」であると、ＣＰＵはステップ１８１０にて「Ｎｏ」と判定してステップ１８９５に直接進み、本ルーチンを一旦終了する。
【０１９４】
一方、ＣＰＵがステップ１８１０の処理を行う時点において、リッチ化フラグＸrichの値が「１」に設定されていると（即ち、機関の空燃比がリッチ空燃比africhに一致させられていると）、ＣＰＵはそのステップ１８１０にて「Ｙｅｓ」と判定してステップ１８２０に進み、下流側空燃比センサ５７の出力値Voxsが最大出力値max以上となったか否かを判定することにより、触媒４３の酸素吸蔵量が最小の量に到達した可能性が高いか否かを判定する。なお、ＣＰＵは、ステップ１８２０において、出力値Voxsが最大出力値max以上となっている継続時間が所定時間以上となったか否かを判定してもよい。
【０１９５】
ＣＰＵがステップ１８２０の処理を行う時点において、出力値Voxsが最大出力値max以上となっていなければ、ＣＰＵはそのステップ１８２０にて「Ｎｏ」と判定し、ステップ１８９５に直接進んで本ルーチンを一旦終了する。この結果、燃料噴射（燃料供給）が継続されるとともに、機関の空燃比はリッチ空燃比africhに一致させられ続ける。
【０１９６】
一方、ＣＰＵがステップ１８２０の処理を行う時点において、出力値Voxsが最大出力値以上となっていると、ＣＰＵはそのステップ１８２０にて「Ｙｅｓ」と判定してステップ１８３０に進み、リッチ化フラグＸrichが「０」から「１」へと変化してからの経過時間（即ち、リッチ制御継続時間、機関回転続行時間）がリッチ制御時間Ｔrichに到達したか否かを判定する。このとき、リッチ制御継続時間がリッチ制御時間Ｔrichよりも短いと、ＣＰＵはステップ１８３０にて「Ｎｏ」と判定してステップ１８９５に直接進み、本ルーチンを一旦終了する。
【０１９７】
一方、ＣＰＵがステップ１８３０の処理を行う時点において、リッチ制御継続時間がリッチ制御時間Ｔrich以上であると、ＣＰＵはそのステップ１８３０にて「Ｙｅｓ」と判定し、以下に述べるステップ１８４０乃至ステップ１８７０の処理を順に行い、その後、ステップ１８９５に進んで本ルーチンを一旦終了する。
【０１９８】
ステップ１８４０：ＣＰＵは、燃料噴射フラグＸｉｎｊの値を「０」に設定する。これにより、燃料噴射（燃料供給）が停止されるので、機関１０の回転が停止する。
ステップ１８５０：ＣＰＵは、目標空燃比abyfrを理論空燃比stoichに設定する。
ステップ１８６０：ＣＰＵは、リッチ化フラグＸrichの値を「０」に設定する。
ステップ１８７０：ＣＰＵは、推定酸素吸蔵量ＯＳＣを最小酸素吸蔵量である「０」に設定する（ＯＳＣ＝０）。即ち、推定酸素吸蔵量ＯＳＣを「０」に一致させる。
【０１９９】
以上、説明したように、第５制御装置は、
前記機関停止要求発生時における前記触媒４３の温度を推定するとともに（図１７のステップ１７４０）、前記推定した触媒４３の温度に基いて前記触媒４３に過剰な未燃物を供給する供給継続時間（リッチ制御時間Ｔrich）を決定し、前記機関停止要求発生時から前記決定された供給継続時間が経過した時点にて前記触媒の実際の酸素吸蔵量が前記最小の量に到達したと判定するように構成された制御手段（図１８のステップ１８３０を参照。）を備える。
【０２００】
換言すると、第５制御装置は、機関停止要求発生時における触媒の温度（触媒温度Ｔｅｍｐｃｃｒｏ）を推定するとともに（図１７のステップ１７４０）、前記推定した触媒の温度に基いて前記機関停止要求発生時から前記機関の回転を停止させる時点までの時間（機関回転続行時間）を変更するように構成される（図１７のステップ１７５０及び図１８のステップ１８３０を参照。）。
【０２０１】
触媒が吸蔵（又は放出）することができる酸素量は触媒４３の温度に依存して変化する。従って、機関停止要求発生後に触媒４３に過剰な未燃物を供給させている場合において、下流側空燃比センサ５７の出力値Voxsが「理論空燃比よりも小さいリッチ空燃比」に相当する値（例えば、最大出力値max）となった場合であっても、触媒４３の酸素吸蔵量は必ずしも最小の量になっていない場合がある。これは、触媒４３の温度が相対的に低い場合には触媒流入ガスに含まれる未燃物が触媒４３に吸蔵されている酸素と結合することなく触媒４３を通過する現象（所謂「吹き抜け現象」）が生じる場合があるからである。
【０２０２】
そこで、第５制御装置のように、機関回転続行時間を触媒温度Ｔｅｍｐｃｃｒｏに応じて変化させることにより、機関１０の回転停止時（機関停止要求発生後の燃料供給の停止時）における触媒の酸素吸蔵量を「最小酸素吸蔵量」に確実に到達させることができる。この結果、推定酸素吸蔵量ＯＳＣの精度をより向上することができる。
【０２０３】
なお、第１制御装置のように、機関停止要求の発生後において燃料供給を停止し且つモータ２２により機関を強制回転させる場合において、下流側空燃比センサの出力値が「理論空燃比よりも大きいリーン空燃比」に相当する値（例えば、最小出力値min）となったときであっても、触媒４３の酸素吸蔵量は必ずしも最大の量でない場合がある。これは、触媒の温度が相対的に低い場合には触媒流入ガスに含まれる酸素が触媒に吸蔵されることなく触媒を通過する現象が生じる場合があるからである。
【０２０４】
そこで、第１制御装置においても、機関停止要求が発生した時点の触媒温度Ｔｅｍｐｃｃｒｏを取得し、その触媒温度Ｔｅｍｐｃｃｒｏに基いて「モータ２２によって機関１０を強制回転させ続ける時間」を決定することが好ましい。
【０２０５】
これによれば、触媒４３の酸素吸蔵量が確実に最大の量に到達した時点にてモータ２２による機関１０の強制回転を停止させることができる。換言すると、モータ２２による機関１０の強制回転の停止時において、触媒の酸素吸蔵量を最大の量に確実に一致させることができる。従って、モータ２２による機関１０の強制回転の停止時に推定酸素吸蔵量ＯＳＣを最大酸素吸蔵量Ｃmaxに設定することにより、推定酸素吸蔵量ＯＳＣを実際の酸素吸蔵量に精度良く一致させることができる。
【０２０６】
以上、説明したように、本発明の各実施形態に係る内燃機関の制御装置によれば、推定酸素吸蔵量ＯＳＣを機関停止要求の発生後において適正な値に初期化することができる。従って、その後に続く機関始動時における推定酸素吸蔵量を真の酸素吸蔵量にできるだけ近づけることができる。
【０２０７】
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、機関１０は、ハイブリッド車両（機関１０が電動モータと共に車両駆動力を発生するように構成された車両）に搭載されていてもよい。この場合、機関停止要求が発生した時点にてハイブリッド車両に搭載された電動モータによって機関１０を強制回転させることにより、触媒４３に過剰な酸素を供給してもよい。
【０２０８】
更に、上記幾つかの実施形態において、触媒４３への過剰な酸素の供給は、「機関１０への燃料供給を停止した上で機関１０を機関１０以外の動力源により回転させ、機関１０から触媒４３へと大気を供給すること」により行われていた。これに代え、又は、これに加え、触媒４３への過剰な酸素の供給は、「排気通路の触媒４３の上流側に設けられた二次空気供給装置を作動させること」により行われてもよい。更に、触媒４３への過剰な酸素の供給は、「機関１０への燃料供給を機関停止要求発生後において継続するとともに機関１０に供給される混合気の空燃比をリーン空燃比に設定するように指示燃料噴射量Ｆｉを制御すること」により行われてもよい。
【０２０９】
更に、上記幾つかの実施形態において、触媒４３への過剰な未燃物の供給は、「機関１０への燃料供給を機関停止要求発生後において継続するとともに機関１０に供給される混合気の空燃比をリッチ空燃比に設定すること」により行われていた。これに代え、又は、これに加え、触媒４３への過剰な未燃物の供給は、「排気通路の触媒４３の上流側に設けられた還元剤供給装置を作動させること」により行われてもよい。
【０２１０】
また、上記各実施形態において、推定酸素吸蔵量ＯＳＣを用いた機関１０の制御は、推定酸素吸蔵量ＯＳＣを目標酸素吸蔵量に一致させる空燃比フィードバック制御であったが、これ以外の制御であってもよい。例えば、推定酸素吸蔵量ＯＳＣを用いた機関１０の制御は、推定酸素吸蔵量ＯＳＣを用いて触媒４３に供給すべき排ガスの空燃比を決定し、その排ガスの空燃比をもたらす指示燃料噴射量Ｆｉを決定するような制御であってもよい。
【符号の説明】
【０２１１】
１０…内燃機関、２１…燃焼室、２２…モータ、３０…吸気系統、３３…燃料噴射弁、４０…排気系統、４１…エキゾーストマニホールド、４１ｂ…集合部（排気集合部ＨＫ）、４２…エキゾーストパイプ、４３…上流側触媒（触媒）、４４…電気加熱ヒータ、５６…上流側空燃比センサ、５７…下流側空燃比センサ、７０…電気制御装置。
【図１】
2012062795.tif 000003
【図２】
2012062795.tif 000004
【図３】
2012062795.tif 000005
【図４】
2012062795.tif 000006
【図５】
2012062795.tif 000007
【図６】
2012062795.tif 000008
【図７】
2012062795.tif 000009
【図８】
2012062795.tif 000010
【図９】
2012062795.tif 000011
【図１０】
2012062795.tif 000012
【図１１】
2012062795.tif 000013
【図１２】
2012062795.tif 000014
【図１３】
2012062795.tif 000015
【図１４】
2012062795.tif 000016
【図１５】
2012062795.tif 000017
【図１６】
2012062795.tif 000018
【図１７】
2012062795.tif 000019
【図１８】
2012062795.tif 000020