(57)【特許請求の範囲】
【請求項１】
エンジン始動後に排出ガス浄化用の触媒の暖機を促進する触媒暖機手段と、
エンジン始動時から前記触媒が活性化するまでに必要とした熱量に基づいて前記触媒の劣化を検出する劣化検出手段と、
前記触媒暖機手段による触媒暖機制御が禁止されたときに前記劣化検出手段による触媒劣化検出を禁止する劣化検出禁止手段と
を備える触媒劣化検出装置。
【請求項２】
前記触媒暖機手段は、エンジンの点火時期を遅角制御することにより前記触媒の暖機を促進することを特徴とする請求項１に記載の触媒劣化検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、エンジン始動後に排出ガス浄化用の触媒の暖機を促進する触媒暖機制御を行うシステムにおいて、触媒劣化を検出する機能を備えた触媒劣化検出装置に関するものである。
【０００２】
【従来の技術】
車両の排出ガス浄化システムでは、触媒が劣化して排出ガス浄化能力が低下した状態で運転が続けられるのを防ぐため、触媒の劣化を検出する触媒劣化検出装置が開発されている（例えば特開平２−１３６５３８号公報や特開平３−２５３７１４号公報参照）。従来の触媒劣化検出装置は、いずれも触媒が活性化温度（一般には３００〜４００℃以上）に暖機された後の排出ガス浄化能力の低下から触媒の劣化を検出するようになっている。
【０００３】
【発明が解決しようとする課題】
ところで、エンジン始動後に触媒が活性化温度に暖機されるまでは、正常な触媒でも排出ガス浄化能力が低く、まして、劣化した触媒では、排出ガス浄化能力が更に低下して排出ガス中の有害成分（エミッション）が増加することになる。しかし、従来の触媒劣化検出方法では、いずれも触媒活性化後の排出ガス浄化能力の低下から触媒の劣化を検出するため、触媒活性化前のエミッション増加度合を考慮した触媒劣化検出を行うことは困難であり、触媒活性化前のエミッション増加により本来は劣化状態であると判定されるべき触媒が劣化無しと判定されるおそれがある。
【０００４】
この対策として、本出願人は、先に出願した特願平７−２３１６１号においてエンジン始動時から触媒が活性化するまでに必要とした熱量を始動時からの積算吸気量又は積算燃料量によって算出し、その熱量に基づいて触媒劣化を検出する装置を提案している。これは、触媒暖機時には、触媒は排気熱で加熱されると同時に、触媒内でのＨＣ，ＣＯの酸化反応による反応熱によって触媒内部からも加熱されるが、触媒が劣化するに従って、触媒内部の反応熱が減少して、触媒の活性化が遅れ、触媒が活性化するまでに必要な排気熱量が増加するという原理を利用して触媒劣化を検出するものである。
【０００５】
また、触媒活性化前のエミッションを低減するには、エンジン始動後に触媒をできるだけ短時間で暖機する必要があり、そのために、例えば特開昭５５−１６１９３７号公報に示すように、エンジン始動後にエンジンの点火時期を遅角制御することで、排気温度を上昇させ、触媒の温度上昇を早める触媒暖機制御を実行するようにしたものがある。
【０００６】
このような触媒暖機制御を行うシステムでは、触媒暖機制御が触媒活性化まで実行され続けた時と、何等かの原因でこの触媒暖機制御が禁止又は制限された時とでは触媒に与えられる熱量が異なる。このため、本出願人が先に出願した、熱量で触媒劣化を検出する装置では、触媒暖機制御が禁止又は制限された時に正確な劣化判定を行うことができないおそれがある。
【０００７】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、触媒暖機制御に左右されない触媒劣化検出を可能にする触媒劣化検出装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の触媒劣化検出装置によれば、エンジン始動後に触媒暖機手段により触媒の暖機を促進して、触媒活性化前のエミッションを低減すると共に、エンジン始動時から触媒が活性化するまでに必要とした熱量に基づいて触媒の劣化を劣化検出手段により検出することで、触媒活性化前のエミッション増加度合を考慮した触媒劣化検出を行う。この際、触媒暖機手段による触媒暖機制御が禁止されたときに劣化検出手段による触媒劣化検出を劣化検出禁止手段により禁止する。これにより、何等かの原因で触媒暖機制御が禁止された場合には、触媒劣化検出が禁止され、触媒劣化の誤検出が未然に防止される。
【００１１】
また、請求項２では、触媒暖機手段は、エンジンの点火時期を遅角制御することにより触媒の暖機を促進する。遅角制御により排出ガス温度を高めて触媒を効率良く暖機することができる。
【００１２】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１〜図１８に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。エンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側には、吸気温度Ｔａｍを検出する吸気温センサ１４と、吸入空気量ＱＡを検出するエアフローメータ１０とが設けられている。このエアフローメータ１０の下流側には、スロットルバルブ１５とスロットル開度ＴＨを検出するスロットル開度センサ１６とが設けられている。更に、スロットルバルブ１５の下流側には、吸気管圧力ＰＭを検出する吸気管圧力センサ１７が設けられ、この吸気管圧力センサ１７の下流側にサージタンク１８が設けられている。このサージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が接続され、この吸気マニホールド１９の各気筒の分岐管部にそれぞれ燃料を噴射するインジェクタ２０が取り付けられている。
【００１３】
また、エンジン１１には各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１には、点火回路２２で発生した高圧電流がディストリビュータ２３を介して供給される。このディストリビュータ２３には、７２０℃Ａ（クランク軸２回転）毎に例えば２４個のパルス信号を出力するクランク角センサ２４が設けられ、このクランク角センサ２４の出力パルス間隔によってエンジン回転数Ｎｅを検出するようになっている。また、エンジン１１には、エンジン冷却水温Ｔｈｗを検出する水温センサ３８が取り付けられている。
【００１４】
一方、エンジン１１の排気ポート（図示せず）には、排気マニホールド２５を介して排気管２６（排気通路）が接続され、この排気管２６の途中に、排出ガス中の有害成分（ＣＯ，ＨＣ，ＮＯｘ等）を低減させる三元触媒等の触媒２７が設けられている。この触媒２７の上流側には、排出ガスの空燃比λに応じたリニアな空燃比信号を出力する上流側空燃比センサ２８が設けられている。また、触媒２７の下流側には、排出ガスの空燃比λが理論空燃比（λ＝１）に対してリッチかリーンかによって出力電圧ＶＯＸ２が反転する下流側酸素センサ２９が設けられている。この下流側酸素センサ２９には、該酸素センサ２９の活性化を促進するためのヒータ３９が内蔵されている。
【００１５】
上述した各種のセンサの出力は電子制御回路３０内に入力ポート３１を介して読み込まれる。電子制御回路３０は、マイクロコンピュータを主体として構成され、ＣＰＵ３２、ＲＯＭ３３、ＲＡＭ３４、バックアップＲＡＭ３５を備え、各種センサ出力から得られたエンジン運転状態パラメータを用いて燃料噴射量ＴＡＵや点火時期Ｉｇ等を演算し、その演算結果に応じた信号を出力ポート３６からインジェクタ２０や点火回路２２に出力してエンジン１１の運転を制御する。
【００１６】
また、この電子制御回路３０は、後述する各種プログラムを実行することで、エンジン始動後に遅角制御により触媒２７の暖機を促進する触媒暖機手段として機能すると共に、触媒２７の劣化を検出する劣化検出手段としても機能し、劣化検出時には出力ポート３６から警告ランプ３７に点灯信号を出力し、警告ランプ３７を点灯して運転者に異常発生を警告する。更に、この電子制御回路３０は、遅角制御（触媒暖機制御）が禁止されたときに触媒劣化検出を禁止する劣化検出禁止手段としても機能する。以下、これら各手段に対応する処理を主として説明する。
【００１７】
［点火時期制御］
まず、電子制御回路３０が実行する点火時期制御を図２に示すフローチャートに従って説明する。この点火時期制御では、冷間始動時に遅角制御することで、触媒２７の暖機を促進すると共に、遅角制御によりエンジン回転が不安定になる場合、例えば、揮発性が悪い燃料（以下「重質燃料」という）を使用している場合には、遅角制御を禁止し、通常の点火制御を行う。
【００１８】
具体的には、まずステップ１０１で、イグニッションスイッチ（図示せず）がＯＮされてエンジン１１が始動状態であるか否かを判定し、始動状態であれば、ステップ１０２に進んで、水温センサ３８からの出力信号によりエンジン１１が所定温度以下（冷機時）であるか否かを判定する。冷機時でなければ、触媒２７の温度も高く、触媒２７の暖機が不要であるので、ステップ１０８へ進み、通常の点火進角制御を実行し、本ルーチンを終了する。
【００１９】
これに対し、冷機時であれば、触媒２７の温度が低く、触媒２７の暖機が必要であるので、ステップ１０３に進み、後述する図４の燃料性状判定ルーチンで供給燃料が重質燃料と判定されたか否かを判定し、重質燃料と判定されていれば、遅角制御による触媒暖機制御を禁止し、ステップ１０８へ進み、通常の点火進角制御を実行し、遅角制御によりエンジン回転が不安定になるのを防ぐ。
【００２０】
一方、供給燃料が重質燃料でなければ、ステップ１０４に進み、エンジン始動後の経過時間が遅角制御開始時間（例えば始動から８秒後）に到達するまで待機する。これは、エンジン始動が完了してから遅角制御を開始することで、始動性を低下させないようにするためである。その後、エンジン始動後の経過時間が遅角制御開始時間に到達すると、ステップ１０５に進み、アイドル時（スロットル全閉時）であるか否かを判定する。アイドル時でなければ、遅角制御による触媒暖機制御を禁止し、ステップ１０８へ進み、通常の点火進角制御を実行するが、アイドル時であれば、ステップ１０６へ進み、後述する図３に示す遅角制御を実行して、遅角制御により触媒２７の暖機を促進する。
【００２１】
この遅角制御による触媒２７の暖機は、ステップ１０７の処理により、エンジン始動後の経過時間が遅角制御終了時間（例えば始動から１８秒）に到達するまで実行され、その間に、スロットルバルブ１５が開かれてエンジン回転数が上昇すれば、遅角制御を中止して、ステップ１０８へ進み、通常の点火進角制御を実行する。これに対し、遅角制御による触媒２７の暖機が遅角制御終了時間まで続けられると、遅角制御を終了し、ステップ１０８へ進み、通常の点火進角制御を実行し、本ルーチンを終了する。
【００２２】
［遅角制御］
次に、図３に示す遅角制御ルーチンの処理の流れを説明する。まず、ステップ１１１で、エンジン回転数Ｎｅ及び冷却水温Ｔｈｗをパラメータとして予め設定されたマップ（図示せず）より基本進角量を算出する。そして、次のステップ１１２で、予め設定された目標遅角量と遅角徐変時間を用いて、次式により演算ルーチン１回毎の遅角量を算出する。
１回の遅角量＝目標遅角量×演算周期／遅角徐変時間
【００２３】
この後、ステップ１１３で、上記ステップ１１１で算出された基本進角量又は前回算出さた進角量から１回の演算周期毎に１回の遅角量を減算して求めた値（補正遅角量）にて、実際に点火時期を遅角する。そして、次のステップ１１４で、減じた遅角量の合計が目標遅角量に到達したか否かを判定し、目標遅角量に到達していなければ、ステップ１１３に戻り、補正遅角量にて点火時期を遅角する処理を繰り返す。
【００２４】
その後、減じた遅角量の合計が目標遅角量に到達すれば、ステップ１１５に進み、遅角制御を実施する所定期間（例えば始動から２０秒）内であるか否かを判定し、所定期間内であれば、ステップ１１３に戻り、補正遅角量にて点火時期を遅角する処理を繰り返し、遅角制御による触媒２７の暖機を継続する。その後、所定期間が経過すると本ルーチンを終了する。
【００２５】
［燃料性状判定］
まず、燃料性状の判定方法を図５及び図６に基づいて簡単に説明する。図５は燃料性状と始動後のエンジン回転数Ｎｅの経時的変化との関係を示す図、図６は燃料性状と始動後のエンジン回転数積算値ＮＴの経時的変化との関係を示す図である。燃料性状としては、通常燃料、重質＋通常燃料（混合燃料）、重質燃料の３種類が図示されている。
【００２６】
図５に示すように、始動から設定回転数ＮＯに上昇するまでのエンジン回転数Ｎｅの立ち上がりは、燃料性状による影響をほとんど受けないが、設定回転数ＮＯに到達した後のエンジン回転数Ｎｅは、燃料性状による影響を大きく受け、通常燃料の場合と比較して、重質燃料の割合が増えるほどエンジン回転数Ｎｅが低下する。この関係で、図６に示すように、始動後のエンジン回転数積算値ＮＴが燃料性状によって異なり、重質燃料の割合が増えるほどエンジン回転数積算値ＮＴが低下する。この特性に着目し、本実施形態では、エンジン回転数積算値ＮＴを設定回転数積算値ＮＯＴと比較し、その差が判定値ＶＴＨを越えた時に重質燃料と判定する。
【００２７】
以下、この燃料性状判定処理を図４のフローチャートに従って説明する。本ルーチンは、所定クランク角毎（例えば１８０℃Ａ毎）又は所定時間毎（例えば１０ｍｓ毎）に繰り返し実行される。本ルーチンの処理が開始されると、まずステップ１２１で、クランク角センサ２４からのパルス信号の間隔からエンジン回転数Ｎｅを算出し、続くステップ１２２で、水温センサ３８により検出した冷却水温が例えば０℃より高いか否かを判定する。
【００２８】
この判定を行う１つ目の理由は、０℃以下の低温側では始動性を確保するために予めリッチ側の空燃比となるように燃料噴射量が元々設定されており、重質燃料でも所定のドライバビリティを確保できることから、燃料性状の判定処理を行う必要がないためである。そして、２つ目の理由は、リッチ側の空燃比にて回転落ちがあった時に、この回転落ちで重質燃料と誤判定してしまうおそれがあるからである。
【００２９】
上記ステップ１２２で、冷却水温が０℃より高いと判定されたときには、ステップ１２３に進み、エンジン始動後からＴＳ時間以上経過しているか否かを判定する。このＴＳ時間は、図５に示すようにエンジン始動から完爆回転数ＮＳに達するまでの時間（推定値）に設定されている。ＴＳ時間以上経過している場合には、ステップ１２４に移行し、エンジン始動後の経過時間がエンジン１１の暖機完了時間に相当するＴＥ時間未満であるか否かを判定する。
【００３０】
この判定を行う理由は、重質燃料でも、始動後ＴＥ時間が経過すれば、エンジン１１が暖機されることで燃焼が安定し、エンジン回転数Ｎｅも安定するため、ＴＥ時間を越えて揮発性を判定する意味がないからである。尚、上記ステップ１２２〜１２４のいずれかで「Ｎｏ」と判定された場合には、ステップ１３４に移行し、実行中フラグを「０」にリセットして本ルーチンを終了する。
【００３１】
エンジン始動後の経過時間がＴＥ時間未満（エンジン１１の暖機完了前）である場合には、ステップ１２５に移行し、図５に示すように、エンジン回転数Ｎｅが、一旦、予め設定されている設定回転数（目標回転数）ＮＯを越えた後に設定回転数ＮＯ以下となっているか否かを判定し、「Ｙｅｓ」であれば、実行中フラグを「１」にセットし（ステップ１２６）、「Ｎｏ」であれば、ステップ１２７に進み、実行中フラグが「１」であるか否かを判定する。ここで、実行中フラグが「１」でなければ、燃料性状を判定する条件が不成立であるので、ステップ１３４に移行し、実行中フラグを再リセットして本ルーチンを終了する。
【００３２】
実行中フラグが「１」である場合には、ステップ１２８に移行し、要求点火時期と実点火時期との偏差ＴＮＥＳＡ（点火時期差）に基づきエンジン回転数補正量ＮＥＳＡを図７に示すマップに従って算出する。この後、ステップ１２９で、要求ＩＳＣ開度と実ＩＳＣ開度との偏差ＴＮＩＳＣ（ＩＳＣ開度差）に基づきエンジン回転数補正量ＮｌＳＣを図８に示すマップに従って算出する。ここで、ＩＳＣ開度は、アイドル・スピード・コントロール・バルブの開度であり、このＩＳＣ開度を調整することでアイドル回転数が安定化される。
【００３３】
この後、ステップ１３０で、前回までのエンジン回転数積算値ＮＴ(i-1) に対して、今回のエンジン回転数Ｎｅと、ステップ１２８で算出されたエンジン回転数補正量ＮＥＳＡと、ステップ１２９で算出されたエンジン回転数補正量ＮＩＳＣとを加算して、その加算値を今回のエンジン回転数積算値ＮＴ(i) とする。これにより、エンジン回転数積算値ＮＴに対して、エンジン回転数挙動に起因する点火時期補正及びＩＳＣ開度補正が加えられることで、精度良く燃料性状を判定することができる。
【００３４】
そして、次のステップ１３１で、今回の設定回転数ＮＯを前回までの設定回転数積算値ＮＯＴ(i-1) に加算して、その加算値を今回の設定回転数積算値ＮＯＴ(i) とする。続くステップ１３２で、ステップ１３１で求められた設定回転数積算値ＮＯＴとステップ１３０で求められたエンジン回転数積算値ＮＴとの偏差（ＮＯＴ−ＮＴ）が、重質燃料判定用のオフセット値ＶＴＨを越えているか否かを判定する。
【００３５】
つまり、図６に示すように、通常燃料のときには、エンジン回転数Ｎｅは常に設定回転数ＮＯの近傍にあるため、そのエンジン回転数積算値ＮＴは設定回転数積算値Ｎ０Ｔとほぼ等しくなる。一方、重質燃料や通常燃料十重質燃料では、通常燃料のときに比べてエンジン回転数積算値ＮＴが低下するため、ＮＯＴ−ＮＴを設定回転数積算値ＮＯＴからの重質燃料判定用のオフセット値ＶＴＨと比較することにより通常燃料か否かを判定することができるのである。尚、本実施形態では、設定回転数積算値ＮＯＴをルーチン通過毎に求めているが、設定回転数ＮＯは予め分かっているため、始動後の経過時間に関するデータテーブルを設定しても良い。
【００３６】
そして、ステップ１３２で、Ｎ０Ｔ−ＮＴ＞ＶＴＨと判定されれば、ステップ１３３に進み、供給燃料が重質であると判定して本ルーチンを終了する。一方、Ｎ０Ｔ−ＮＴ≦ＶＴＨと判定された場合（通常燃料の場合）には、そのまま本ルーチンを終了する。
【００３７】
尚、ステップ１３３で重質判定されたときには、本実施形態には示されていないが、インジェクタ２０の噴射燃料の増量補正を実施したり、ＩＳＣバルブの開度増大補正等を実施することで、エンジン１１の燃焼を安定化させれば良い。
【００３８】
［触媒劣化の検出方法］
次に、触媒２７の劣化を検出する手法について図９のタイムチャートを用いて説明する。尚、図９中、「ＸＳＯ２Ｌ」は下流側酸素センサ２９により検出される空燃比がリーンである旨を示すリーン判定フラグ、「ＸＳＯ２ＡＣＴ」は下流側酸素センサ２９が活性化した旨を示す酸素センサ活性フラグ、「ＸＣＡＴＡＣＴ」は触媒２７が活性化した旨を示す触媒活性フラグ、「ＦＡＦ」は空燃比制御におけるフィードバック補正係数、「ＱＡＳＵＭ」は吸入空気量ＱＡをエンジン始動時から積算した積算吸気量、「ＸＣＡＴＤＴ」は触媒２７が劣化している旨を示す触媒劣化フラグである。
【００３９】
図９において、時間ｔ１で、スタータ（図示せず）が始動されてエンジン１１が始動される。これにより、下流側酸素センサ２９のヒータ３９がＯＮされて下流側酸素センサ２９の加熱が開始される。そして、時間ｔ２で下流側酸素センサ２９の出力電圧ＶＯＸ２が所定電圧（０．４５Ｖ）に達すると、下流側酸素センサ２９が活性化したと判定される。その後、時間ｔ３で、空燃比フィードバック制御が開始される。
【００４０】
その後、時間ｔ４で、下流側酸素センサ２９の反転周期の遅れに基づき触媒２７の活性化が判定される。すなわち、時間ｔ１〜ｔ４において、触媒２７が活性化する前に下流側酸素センサ２９が活性化すると、下流側酸素センサ２９の検出信号は触媒２７よりも上流側の空燃比挙動から遅れなく応答する。しかし、時間ｔ４にて触媒２７が活性化すると、その後は触媒２７のストレージ能力により空燃比変化に対して下流側酸素センサ２９の応答が遅れ、そのリッチ／リーンの反転周期が長くなる。
【００４１】
また、時間ｔ４では、触媒２７の活性化に要した熱量に相当する積算吸気量ＱＡＳＵＭを劣化判定値ＱＡＣＤＴと比較して触媒２７の劣化が判定される。すなわち、触媒２７の活性時において、それまでの積算吸気量ＱＡＳＵＭが多い場合は触媒２７は劣化しており、少ない場合は劣化していないと判断される。以上説明した触媒２７の劣化を検出する処理を以下に説明する。
【００４２】
［燃料噴射量算出］
図１０に示す燃料噴射量算出ルーチンにおいては、まずステップ１４１で、基本噴射量Ｔｐを算出する。この基本噴射量Ｔｐは例えばＲＯＭ３３に予め記憶されている噴射量マップを用い、その時のエンジン回転数Ｎｅ及び吸気管圧力ＰＭに応じて算出される。そして、次のステップ１４２で、空燃比λのフィードバック条件が成立しているか否かを判別する。ここで、フィードバック条件とは冷却水温Ｔｈｗが所定値以上で、且つ高回転・高負荷でないときに成立する。
【００４３】
このフィードバック条件が成立している場合（図９の時間ｔ３以降）、ステップ１４３に進み、目標空燃比λTGを設定し、続くステップ１４４で、空燃比λを目標空燃比λTGに合わせるようにフィードバック補正係数ＦＡＦを設定する。ここで、フィードバック補正係数ＦＡＦは下記の（１）式と（２）式を用いて算出される。尚、このフィードバック補正係数ＦＡＦの設定に関しては、特開平１一１１０８５３号公報に詳細に記載されている。
【００４４】
【数１】
0003770417.tif 000002
【００４５】
上式において、ｋは最初のサンプリング開始からの制御回数を示す変数、Ｋ1 〜Ｋn+1 は最適フィードバックゲイン、ＺＩ（ｋ）は積分項、Ｋａは積分定数である。
一方、上記ステップ１４２でフィードバック条件が不成立の場合、ステップ１４５に進み、フィードバック補正係数ＦＡＦを「１．０」に設定する。
【００４６】
以上のようにしてステップ１４４又は１４５でフィードバック補正係数ＦＡＦを設定した後、ステップ１４６に進み、次の（３）式を用いて基本噴射量Ｔｐ、フィードバック補正係数ＦＡＦ及びその他の補正係数（水温、電気負荷等の各種補正係数）ＦＡＬＬから燃料噴射量ＴＡＵを設定し、本ルーチンを終了する。
ＴＡＵ＝Ｔｐ×ＦＡＦ×ＦＡＬＬ        ……（３）
【００４７】
［下流側酸素センサ活性化判定］
図１１に示す下流側酸素センサ２９の活性化判定ルーチンにおいては、まずステップ２０１で、いま現在、酸素センサ活性フラグＸＳＯ２ＡＣＴが「０」にクリアされているか否か、すなわち下流側酸素センサ２９が活性化した旨が未だ判定されていないか否かを判定し、ＸＳＯ２ＡＣＴ＝１（活性化の判定後）であればそのまま本ルーチンを終了する。
【００４８】
これに対し、ＸＳＯ２ＡＣＴ＝０（活性化の判定前）であれば、ステップ２０２に進み、下流側酸素センサ２９の出力電圧ＶＯＸ２が０．４５Ｖを越えているか否かを判定する。ここで、ＶＯＸ２＞０．４５Ｖであれば、ステップ２０４に進み、酸素センサ活性フラグＸＳＯ２ＡＣＴに活性化を示す「１」をセットして本ルーチンを終了する（図９の時間ｔ２のタイミング）。
【００４９】
また、ＶＯＸ２≦０．４５Ｖであれば、ステップ２０３に進み、下流側酸素センサ２９のヒータ３９がＯＮされてから所定時間ＴACT （本実施形態では３０秒）が経過したか否かを判定し、所定時間ＴACT の経過前であれば、そのまま本ルーチンを終了する。所定時間ＴACT が経過していれば、ステップ２０４に進み、酸素センサ活性フラグＸＳＯ２ＡＣＴに活性化を示す「１」をセットして本ルーチンを終了する。つまり、ＶＯＸ２≦０．４５Ｖであっても、ヒータ３９が所定時間ＴACT 以上ＯＮされていれば、下流側酸素センサ２９は活性化しているとみなされる。
【００５０】
［下流側酸素センサ反転周期算出］
図１２に示す下流側酸素センサ２９の反転周期算出ルーチンにおいては、まずステップ３０１で、前述の酸素センサ活性フラグＸＳＯ２ＡＣＴに活性化を示す「１」がセットされているか否かを判定し、ＸＳＯ２ＡＣＴ＝１であれば、ステップ３０２に進む（図９の時間ｔ２以降）。そして、次のステップ３０２で、下流側酸素センサ２９の出力電圧ＶＯＸ２がリーン側許容値ＫＶＬとリッチ側許容値ＫＶＲとの範囲内に収束しているか否か（ＫＶＬ＜ＶＯＸ２＜ＫＶＲであるか否か）を判定し、ＫＶＬ＜ＶＯＸ２＜ＫＶＲであれば、ステップ３０３に進む（但し、ＫＶＬ＝０．４５−α、ＫＶＲ＝０．４５＋αである）。つまり、上記ステップ３０１，３０２で共に「Ｙｅｓ」と判定された場合に、ステップ３０３に進む。
【００５１】
このステップ３０３では、丁流側酸素センサ２９の出力電圧ＶＯＸ２が０．４５Ｖを越えているか否か、すなわち下流側空燃比がリッチであるか否かを判定する。そして、ＶＯＸ２＞０．４５Ｖ（すなわちリッチ）であれば、ステップ３０４に進み、前回処理時の下流側空燃比の判定結果を示すリーン判定フラグＸＳＯ２Ｌに基づき（ＸＳＯ２Ｌ＝１はリーン判定を示す）、前回処理時の空燃比と今回処理時の空燃比とがリーン→リッチで反転したか否かを判定する。つまり、ステップ３０３が「Ｙｅｓ」で、ステップ３０４が「Ｎｏ」の場合には、前回及び今回が共にリッチであることを意味し、ステップ３０５に進んで反転周期ＴＶを「１」インクリメントする。ここで、反転周期ＴＶは同一側の空燃比（リッチ或はリーン）が継続された時間を計測するものである。
【００５２】
また、ステッブ３０３，３０４が共に「Ｙｅｓ」の場合には、前回がリーンで今回がリッチであることを意味し、ステップ３０６に進んでリーン判定フラグＸＳＯ２Ｌを「０」にクリアして、ステップ３１０に進み、次の（４）式を用いて反転周期ＴＶのなまし値ＴＶＳＭを算出する。
ＴＶＳＭ＝（ＴＶ＋３・ＴＶＳＭ(i-1) ）／４    ……（４）
ここで、ＴＶＳＭ(i-1) はなまし値ＴＶＳＭの前回値を示す。
そして、次のステップ３１１で、反転周期ＴＶを「０」にクリアして本ルーチンを終了する。
【００５３】
一方、前記ステップ３０３でＶＯＸ２≦０．４５Ｖ、すなわちリーン判定された場合には、ステップ３０７に進み、リーン判定フラグＸＳＯ２Ｌに基づき前回処理時の空燃比と今回処理時の空燃比とがリッチ→リーンで反転したか否かを判定する。つまり、ステップ３０３，３０７が共に「Ｎｏ」の場合には、前回及び今回が共にリーンであることを意味し、ステップ３０８に進んで反転周期ＴＶを「１」インクリメントする。
【００５４】
また、ステップ３０３が「Ｎｏ」で、ステップ３０７が「Ｙｅｓ」の場合には、前回がリッチで今回がリーンであることを意味し、ステップ３０９に進んでリーン判定フラグＸＳＯ２Ｌに「１」をセットして、ステップ３１０に進み、前述した（４）式を用いてなまし値ＴＶＳＭを算出し、続くステップ３１１で、反転周期ＴＶを「０」にクリアして本ルーチンを終了する。
【００５５】
上記ステップ３０１又は３０２が「Ｎｏ」の場合には、ステップ３１２に進み、反転周期ＴＶ及びそのなまし値ＴＶＳＭを共に「０」にクリアして、本ルーチンを終了する。つまり、下流側酸素センサ２９の活性化前、及び空燃比が理想空燃比に対して大きく外れた場合には、反転周期ＴＶの検出が禁止され、誤検出が防止される。
【００５６】
［触媒活性化判定］
図１３に示す触媒活性化判定ルーチンにおいては、まずステップ４０１で、始動時における冷却水温Ｔｈｗが低温側許容値ＴＷＬ（本実施形態では３０℃）と高温側許容値ＴＷＨ（本実施形態では１００℃）との範囲内に収束しているか否か（ＴＷＬ＜Ｔｈｗ＜ＴＷＨであるか否か）を判定し、ＴＷＬ＜Ｔｈｗ＜ＴＷＨであれば、ステップ４０２に進む。このステップ４０２では、前述の図１０の燃料噴射量算出ルーチンによる空燃比フィードバック処理を実行中であるか否かを判定し、実行中であれば、ステップ４０３に進む。
【００５７】
このステップ４０３では、触媒活性フラグＸＣＡＴＡＣＴが「０」にクリアされているか否か、すなわち触媒２７が活性化している旨が未だ判定されていないか否かを判定し、ＸＣＡＴＡＣＴ＝０（活性化の判定前）であれば、ステップ４０４に進む。以上のステップ４０１〜４０３のいずれかで「Ｎｏ」と判定された場合には、直ちに本ルーチンを終了する。
【００５８】
ステップ４０４では、下流側酸素センサ２９の出力電圧ＶＯＸ２の反転周期ＴＶが所定の判定値ＫＴＶを越えているか否かを判定し、ＴＶ≦ＫＴＶであれば、ステップ４０５に進み、反転周期ＴＶのなまし値ＴＶＳＭが所定の判定値ＫＳＭを越えているか否かを判定し、ＴＶＳＭ≦ＫＳＭであれば、そのまま本ルーチンを終了し、ＴＶＳＭ＞ＫＳＭであればステップ４０６に進む。一方、ステップ４０４で、ＴＶ＞ＫＴＶとされた場合には、ステップ４０５を飛び越してステップ４０６へ移行する。
【００５９】
このステップ４０６では、触媒活性フラグＸＣＡＴＡＣＴに活性化を示す「１」をセットして、本ルーチンを終了する。つまり、触媒２７の活性化前（図９の時間ｔ４以前）では、下流側酸素センサ２９の出力電圧ＶＯＸ２は上流側空燃比に遅れなく追従し、その反転周期ＴＶ及びなまし値ＴＶＳＭはステップ４０４，４０５の判定値ＫＴＶ，ＫＳＭを越えることはない。しかし、触媒２７が活性化すると（図９の時間ｔ４以降）、下流側酸素センサ２９の出力電圧ＶＯＸ２がリッチ／リーンの反転をしなくなるため、その反転周期ＴＶ及びなまし値ＴＶＳＭはステップ４０４，４０５の判定値ＫＴＶ，ＫＳＭを越えることになる。従って、ステップ４０４，４０５のいずれかで「Ｙｅｓ」と判定されることで触媒２７が活性化したと判定され、触媒活性フラグＸＣＡＴＡＣＴに活性化を示す「１」がセットされる。
【００６０】
［積算吸気量］
図１４に示す積算吸気量算出ルーチンでは、まずステップ６０１で、例えばイグニションスイッチがＯＮであるか否かでエンジン始動後であるか否かを判定し、エンジン始動前であれば、以降の処理を行うことなく本ルーチンを終了する。エンジン始動後であれば、ステップ６０２に進み、エアフローメータ１０による検出結果に基づき演算された吸入空気量ＱＡをその時の積算吸気量ＱＡＳＵＭに加算して積算吸気量ＱＡＳＵＭを更新して本ルーチンを終了する。尚、積算吸気量ＱＡＳＵＭはエンジン始動時に「０」に初期化される。
【００６１】
本実施形態では、エアフローメータ２８の検出結果から吸入空気量ＱＡを求めているが、吸気管圧力センサ１７による吸気管圧力ＰＭ及びクランク角センサ２４によるエンジン回転数Ｎｅから吸入空気量ＱＡを推定する方法を用いることもできる。
【００６２】
［遅角制御禁止フラグセット］
図１５に示す遅角制御禁止フラグセットルーチンにおいては、まずステップ７０１で、遅角制御禁止フラグＸＤＬＹＳＴＰが「１」（遅角制御制御禁止）であるか否かを判定し、ＸＤＬＹＳＴＰ＝１の場合には、以降の処理を行うことなく本ルーチンを終了する。この場合には、ＸＤＬＹＳＴＰ＝１が維持される。
【００６３】
これに対し、ＸＤＬＹＳＴＰ＝０の場合には、ステップ７０２に進み、遅角制御が禁止されているか否かを判定する。この判定は、図２に示す点火時期制御ルーチンの処理結果を利用して行われる。すなわち、供給燃料が重質燃料と判定された場合又は遅角制御の途中でスロットルバルブ１５が開放された場合には、遅角制御が禁止され、ステップ７０３に進み、遅角制御禁止フラグＸＤＬＹＳＴＰを「１」にセットして、本ルーチンを終了する。一方、遅角制御が禁止されていない場合には、ステップ７０３の処理を行わず、ＸＤＬＹＳＴＰ＝０を維持して本ルーチンを終了する。
【００６４】
［触媒劣化判定］
図１６に示す触媒劣化判定ルーチンにおいては、まずステップ５０１で触媒活性フラグＸＣＡＴＡＣＴが「０」から「１」に変化したか否かを判別し、「０」→「１」の変化時であれば、ステップ５０２に進み、積算吸気量ＱＡＳＵＭを「ＱＡＣＬＯ」として記憶する。ここで、積算吸気量ＱＡＳＵＭとは、エンジン始動後における吸入空気量ＱＡの積算値であり、図１４に示す積算吸気量算出ルーチンにより算出される。この後、ステップ５０３で、「ＱＡＣＬＯ」が所定の劣化判定値ＱＡＣＤＴを越えているか否かを判定し、ＱＡＣＬＯ≦ＱＡＣＤＴであれば、そのまま本ルーチンを終了する。もし、ＱＡＣＬＯ＞ＱＡＣＤＴであれば、ステップ５０４に進み、触媒劣化フラグＸＣＡＴＤＴに触媒劣化を示す「１」をセットする。
【００６５】
そして、次のステップ５０５で、図１５のルーチンでセットされる遅角制御禁止フラグＸＤＬＹＳＴＰが「１」（遅角制御禁止）であるか否かを判定し、ＸＤＬＹＳＴＰ≠１（遅角制御が禁止されていない）の場合には、ステップ５０６に進み、警告ランプ３７を点灯して、運転者に触媒２７の劣化を警告すると共に、触媒劣化の情報をバックアップＲＡＭ３５に記憶する等、所定のダイアグ処理を実行する。もし、ＸＤＬＹＳＴＰ＝１（遅角制御禁止）の場合には、触媒劣化検出（ダイアグ処理）を禁止し、警告ランプ３７を点灯することなく、本ルーチンを終了する。これにより、遅角制御による触媒２７の暖機が禁止され場合に、触媒劣化検出も禁止され、触媒劣化の誤検出が未然に防止される。
【００６６】
一方、前記ステップ５０１で「Ｎｏ」と判定された場合には、ステップ５０７に進んで、エンジン始動時（触媒２７の暖機開始時）から所定時間（例えば５０秒）が経過したか否かを判定する。つまり、触媒２７の劣化が進むと、触媒２７の活性化が遅れ、前述した図１３の触媒活性化判定ルーチンによる活性化判定に要する時間が長くなる。そこで、エンジン始動時から所定時間が経過していれば触媒２７が活性化されたものとみなし、ステップ５０２以降の劣化判定を実施する。
【００６７】
ここで、積算吸気量ＱＡＳＵＭと触媒２７の劣化度合との関係は図１７に示すようになっており、予め劣化判定レベルに応じて劣化判定値ＱＡＣＤＴが設定されている。図１７は、触媒２７の活性化（暖機完了時）までに要する積算吸気量ＱＡＳＵＭが多くなるほど、触媒２７の劣化度合が大きくなることを示している。つまり、触媒２７の劣化が進行すると、触媒２７内で発生するＨＣ，ＣＯの酸化反応の反応熱が減少して活性化（暖機）が遅れ、触媒２７の活性化に必要な熱量が増大する。このとき、図１８に示すように、触媒２７に与える熱量は積算吸気量ＱＡＳＵＭに対してほぼ比例関係にあるため、触媒２７の活性時（図９の時間ｔ４）における積算吸気量ＱＡＳＵＭを用いることで、触媒劣化の判定が可能となる。
【００６９】
《実施形態（２）》
上記実施形態（１）では、遅角制御による触媒２７の暖機が禁止され場合に、触媒劣化検出を禁止することで、触媒劣化の誤検出を未然に防止するようにしたが、図１９及び図２０に示す実施形態（２）では、遅角制御による触媒２７の暖機が禁止され場合に、それを考慮して、触媒２７の活性化に必要な熱量を算出することで、遅角制御禁止時でも触媒２７の活性化に必要な熱量（積算吸気量ＱＡＳＵＭ）を劣化判定値と比較して、触媒２７の劣化を精度良く検出できるようにしている。
【００７０】
ここで、積算吸気量ＱＡＳＵＭと、触媒２７に与えられる熱量との関係は、図２０に示されている。遅角制御禁止時には排出ガス温度が遅角制御時よりも低下するため、図２０に示すように、積算吸気量ＱＡＳＵＭと熱量との関係を示す直線の傾きは、遅角制御禁止時の傾きが遅角制御時の傾きよりも小さくなる。この関係を利用し、遅角制御時の傾きと遅角制御禁止時の傾きとの比ＫＳＴＰ＝ＱＡＣＤＴ／ＫＱＡＣＤＴ２（ここで、ＱＡＣＤＴは遅角制御時に触媒２７を活性化させるまでに必要な積算吸気量、ＫＱＡＣＤＴ２は遅角制御禁止時に触媒２７を活性化させるまでに必要な積算吸気量）を用いて、遅角制御禁止時の吸入空気量ＱＡを遅角制御時の吸入空気量に換算して積算吸気量ＱＡＳＵＭを算出する。
【００７１】
この積算吸気量ＱＡＳＵＭの算出は、図１９に示す積算吸気量算出ルーチンによって行われる（本ルーチンは特許請求の範囲でいう必要熱量算出手段として機能する）。本ルーチンでは、まずステップ８０１で、例えばイグニションスイッチがＯＮであるか否かでエンジン始動後であるか否かを判定し、エンジン始動前であれば、以降の処理を行うことなく本ルーチンを終了する。エンジン始動後であれば、ステップ８０２に進み、遅角制御禁止フラグＸＤＬＹＳＴＰが「１」（遅角制御禁止）であるか否かを判定し、ＸＤＬＹＳＴＰ＝０（遅角制御時）の場合には、ステップ８０３に進み、エアフローメータ１０による検出結果に基づき演算された吸入空気量ＱＡをその時の積算吸気量ＱＡＳＵＭに加算して積算吸気量ＱＡＳＵＭを更新し、本ルーチンを終了する。
【００７２】
これに対し、ＸＤＬＹＳＴＰ＝１（遅角制御禁止時）の場合には、ステップ８０４に進み、エアフローメータ１０による検出結果に基づき演算された吸入空気量ＱＡに補正係数ＫＳＴＰを乗算することで、遅角制御禁止時の吸入空気量ＱＡを遅角制御時の吸入空気量に換算し、これをその時の積算吸気量ＱＡＳＵＭに加算して積算吸気量ＱＡＳＵＭを更新し、本ルーチンを終了する。これ以外の各ルーチンは、前記実施形態（１）と同じである。
【００７３】
以上説明した実施形態（２）では、遅角制御禁止時には、積算吸気量ＱＡＳＵＭ（必要熱量）が遅角制御時の値に換算されて算出されるため、算出した積算吸気量ＱＡＳＵＭが遅角制御禁止時の触媒暖機状態を反映したものとなり、遅角制御禁止時でも触媒２７の劣化を精度良く検出できて、触媒暖機状態に左右されない触媒劣化検出が可能となる。
【００７４】
《実施形態（３）》
上記実施形態（２）では、遅角制御禁止時に積算吸気量ＱＡＳＵＭ（必要熱量）が遅角制御時の値に換算されて算出されるが、図２１及び図２２に示す実施形態（３）では、遅角制御禁止時に劣化判定値ＱＡＣＤＴが変更される。
【００７５】
この劣化判定値ＱＡＣＤＴの変更は、図２１に示す劣化判定値算出ルーチンによって行われる（本ルーチンは特許請求の範囲でいう劣化判定値変更手段として機能する）。本ルーチンでは、まずステップ８０１で、遅角制御禁止フラグＸＤＬＹＳＴＰが「０」から「１」に切り替えられたか否か、つまり遅角制御が禁止に切り替えられたか否かを判定し、「Ｎｏ」の場合には、以降の処理を行うことなく本ルーチンを終了する。この場合には、劣化判定値ＱＡＣＤＴは変更されない（劣化判定値ＱＡＣＤＴの初期値は遅角制御時の劣化判定値である）。
【００７６】
一方、遅角制御禁止フラグＸＤＬＹＳＴＰが「０」から「１」に切り替えられた場合（つまり遅角制御が禁止に切り替えられた場合）には、ステップ９０２に進み、劣化判定値ＱＡＣＤＴに補正係数ＫＤＬＹＳＴＰを乗算して劣化判定値ＱＡＣＤＴを変更し、本ルーチンを終了する。ここで用いる補正係数ＫＤＬＹＳＴＰは、ＫＤＬＹＳＴＰ＝ＫＱＡＣＤＴ２／ＱＡＣＤＴ（図２２参照）である。従って、ステップ９０２の処理は、次のようになる。
0003770417.tif 000003
【００７７】
従って、ステップ９０２では、劣化判定値ＱＡＣＤＴに補正係数ＫＤＬＹＳＴＰを乗算する処理に代えて、劣化判定値ＱＡＣＤＴをＫＱＡＣＤＴ２に置き換える処理を行うようにしても良い。ここで、ＫＱＡＣＤＴ２は、遅角制御禁止時に触媒２７を活性化させるまでに必要な積算吸気量である。これ以外の各ルーチンは前記実施形態（１）と同じである。
【００７８】
以上説明した実施形態（３）では、遅角制御禁止時に劣化判定値ＱＡＣＤＴが変更されるため、前記実施形態（２）と同じく、遅角制御禁止時でも触媒２７の劣化を精度良く検出できて、触媒暖機状態に左右されない触媒劣化検出が可能となる。
【００７９】
以上説明した実施形態（１）〜（３）では、エンジン始動時からの積算吸気量に基づき触媒２７の活性化に必要な熱量を推定するようにしたが、エンジン始動時からの燃料噴射量の積算値を算出し、この燃料噴射量の積算値に基づき触媒２７の活性化に必要な熱量を推定するようにしても良い。更に、エンジン始動時からの積算吸気量と燃料噴射量積算値の双方を用いて触媒２７の活性化に必要な熱量を推定するようにしても良い。
【００８０】
また、上記実施形態（１）〜（３）では、遅角制御により触媒２７を暖機するようにしているが、噴射ディザ制御（燃料噴射量を小刻みに増減補正する制御）等、他の触媒暖機制御を用いても良い。
【図面の簡単な説明】
【図１】本発明の実施形態（１）を示すエンジン制御システム全体の概略構成図
【図２】点火時期制御ルーチンの処理の流れを示すフローチャート
【図３】遅角制御ルーチンの処理の流れを示すフローチャート
【図４】燃料性状判定ルーチンの処理の流れを示すフローチャート
【図５】燃料性状と始動後のエンジン回転数変動との関係を示す図
【図６】燃料性状と始動後のエンジン回転数の積算値との関係を示す図
【図７】（要求点火時期−実点火時期）ＴＮＥＳＥとエンジン回転数補正量ＮＥＳＡとの関係を示す図
【図８】（要求ＩＳＣ開度−実ＩＳＣ開度）ＴＮＩＳＣとエンジン回転数補正量ＮＩＳＣとの関係を示す図
【図９】エンジン始動後の挙動を示すタイムチャート
【図１０】燃料噴射量算出ルーチンの処理の流れを示すフローチャート
【図１１】下流側酸素センサの活性化判定ルーチンの処理の流れを示すフローチャート
【図１２】下流側酸素センサの反転周期算出ルーチンの処理の流れを示すフローチャート
【図１３】触媒活性化判定ルーチンの処理の流れを示すフローチャート
【図１４】積算吸気量算出ルーチンの処理の流れを示すフローチャート
【図１５】遅角制御禁止フラグセットルーチンの処理の流れを示すフローチャート
【図１６】触媒劣化判定ルーチンの処理の流れを示すフローチャート
【図１７】積算吸気量ＱＡＳＵＭと触媒劣化度合との関係を示す図
【図１８】積算吸気量ＱＡＳＵＭと触媒に与える熱量との関係を示す図
【図１９】本発明の実施形態（２）における積算吸気量算出ルーチンの処理の流れを示すフローチャート
【図２０】遅角制御禁止時に用いる吸入空気量ＱＡの補正係数ＫＳＴＰの求め方を概念的に示す図
【図２１】本発明の実施形態（３）における劣化判定値算出ルーチンの処理の流れを示すフローチャート
【図２２】遅角制御禁止時に用いる劣化判定値ＱＡＣＤＴの補正係数ＫＤＬＹＳＴＰの求め方を概念的に示す図
【符号の説明】
１０…エアフローメータ、１１…エンジン、１７…吸気管圧力センサ、２４…クランク角センサ、２６…排気管（排気通路）、２７…触媒、２８…上流側空燃比センサ、２９…下流側酸素センサ、３０…電子制御回路（触媒暖機手段，劣化検出手段，劣化検出禁止手段，必要熱量算出手段，判定値変更手段）、３７…警告ランプ。
【図１】
0003770417.tif 000004
【図２】
0003770417.tif 000005
【図３】
0003770417.tif 000006
【図４】
0003770417.tif 000007
【図５】
0003770417.tif 000008
【図６】
0003770417.tif 000009
【図７】
0003770417.tif 000010
【図８】
0003770417.tif 000011
【図９】
0003770417.tif 000012
【図１０】
0003770417.tif 000013
【図１１】
0003770417.tif 000014
【図１２】
0003770417.tif 000015
【図１３】
0003770417.tif 000016
【図１４】
0003770417.tif 000017
【図１５】
0003770417.tif 000018
【図１６】
0003770417.tif 000019
【図１７】
0003770417.tif 000020
【図１８】
0003770417.tif 000021
【図１９】
0003770417.tif 000022
【図２０】
0003770417.tif 000023
【図２１】
0003770417.tif 000024
【図２２】
0003770417.tif 000025