"内燃機関の排気通路の上流側および下流側にそれぞれ設けられた上流触媒および下流触媒と、これら上流触媒および下流触媒の温度をそれぞれ検出するための上流温度センサおよび下流温度センサと、前記上流温度センサによって検出された前記上流触媒の検出温度に基づき前記下流触媒の温度を推定する温度推定手段と、前記温度推定手段によって推定された前記下流触媒の推定温度と、前記下流温度センサによって検出された前記下流触媒の検出温度とに基づき、使用燃料の硫黄濃度を推定する硫黄濃度推定手段と、を備えたことを特徴とする燃料性状判定装置。前記硫黄濃度推定手段は、所定時期における前記下流触媒の推定温度と検出温度との差、または所定期間内における前記差の積算値に基づき、使用燃料の硫黄濃度を推定することを特徴とする請求項1に記載の燃料性状判定装置。前記硫黄濃度推定手段は、前記差またはその積算値が所定値以上のとき、使用燃料の硫黄濃度が所定値以上であると推定することを特徴とする請求項2に記載の燃料性状判定装置。前記硫黄濃度推定手段は、前記上流触媒の検出温度の前記所定時期における値または前記所定期間内における平均値もしくは積算値に応じて前記所定値を可変設定することを特徴とする請求項3に記載の燃料性状判定装置。前記硫黄濃度推定手段は、前記上流触媒の検出温度の前記所定時期における値または前記所定期間内における平均値もしくは積算値が高いほど、前記所定値を大きな値に設定することを特徴とする請求項4に記載の燃料性状判定装置。請求項1~5のいずれか一項に記載の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記上流触媒の上流側の空燃比をリーンおよびリッチに交互に制御するアクティブ空燃比制御を実行するアクティブ空燃比制御手段と、前記空燃比のリーン制御中およびリッチ制御中に前記上流触媒が吸放出する酸素量を計測する計測手段と、前記計測手段によって計測された複数の酸素量に基づき前記上流触媒が正常か異常かを判定する判定手段と、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、前記上流触媒に対する硫黄影響を低減するための制御変更を実行する制御変更手段と、を備えたことを特徴とする触媒異常診断装置。前記アクティブ空燃比制御のうち、その開始から所定回数分のリーン制御またはリッチ制御が無効回であり、当該無効回については、前記計測手段が計測を行わず、または計測を行っても当該計測値を前記判定手段が判定の基礎とせず、前記制御変更は、前記使用燃料の硫黄濃度が所定値未満の場合に比べ、前記無効回の数を増加させること、前記無効回における前記リッチ制御の振幅を増加させること、および前記無効回における前記リッチ制御から前記リーン制御への切り替えタイミングを遅らせることの少なくとも一つからなることを特徴とする請求項6に記載の触媒異常診断装置。請求項1~5のいずれか一項に記載の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記上流触媒の上流側の空燃比をリーンおよびリッチに交互に制御するアクティブ空燃比制御を実行するアクティブ空燃比制御手段と、前記空燃比のリーン制御中およびリッチ制御中に前記上流触媒が吸放出する酸素量を計測する計測手段と、前記計測手段によって計測された複数の酸素量に基づき前記上流触媒が正常か異常かを判定する判定手段と、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、少なくとも前記計測手段による計測の前に、前記上流触媒の温度を上昇させるための昇温制御を実行する昇温制御手段と、を備えたことを特徴とする触媒異常診断装置。前記昇温制御が、前記内燃機関の点火時期を遅角する遅角制御、および前記内燃機関の各気筒の空燃比を強制的にばらつかせるインバランス制御の少なくとも一つからなることを特徴とする請求項8に記載の触媒異常診断装置。請求項1~5のいずれか一項に記載の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、診断を禁止することを特徴とする触媒異常診断装置。上記誤診断を防止するためには、燃料性状、特に燃料の硫黄濃度を推定ないし判定するのが好適である。かかる推定ないし判定を行えば、燃料が高硫黄濃度であると判定したときに必要な措置を執ることができ、誤診断を未然に防止できるからである。そこで本発明はこのような実情に鑑みてなされたもので、その目的は、燃料の硫黄濃度を好適に推定することができる燃料性状判定装置、及びこれを備えた触媒異常診断装置を提供することにある。本発明の第1の態様によれば、内燃機関の排気通路の上流側および下流側にそれぞれ設けられた上流触媒および下流触媒と、これら上流触媒および下流触媒の温度をそれぞれ検出するための上流温度センサおよび下流温度センサと、前記上流温度センサによって検出された前記上流触媒の検出温度に基づき前記下流触媒の温度を推定する温度推定手段と、前記温度推定手段によって推定された前記下流触媒の推定温度と、前記下流温度センサによって検出された前記下流触媒の検出温度とに基づき、使用燃料の硫黄濃度を推定する硫黄濃度推定手段と、を備えたことを特徴とする燃料性状判定装置が提供される。好ましくは、前記硫黄濃度推定手段は、所定時期における前記下流触媒の推定温度と検出温度との差、または所定期間内における前記差の積算値に基づき、使用燃料の硫黄濃度を推定する。好ましくは、前記硫黄濃度推定手段は、前記差またはその積算値が所定値以上のとき、使用燃料の硫黄濃度が所定値以上であると推定する。好ましくは、前記硫黄濃度推定手段は、前記上流触媒の検出温度の前記所定時期における値または前記所定期間内における平均値もしくは積算値に応じて前記所定値を可変設定する。好ましくは、前記硫黄濃度推定手段は、前記上流触媒の検出温度の前記所定時期における値または前記所定期間内における平均値もしくは積算値が高いほど、前記所定値を大きな値に設定する。本発明の第2の態様によれば、前記第1の態様の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記上流触媒の上流側の空燃比をリーンおよびリッチに交互に制御するアクティブ空燃比制御を実行するアクティブ空燃比制御手段と、前記空燃比のリーン制御中およびリッチ制御中に前記上流触媒が吸放出する酸素量を計測する計測手段と、前記計測手段によって計測された複数の酸素量に基づき前記上流触媒が正常か異常かを判定する判定手段と、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、前記上流触媒に対する硫黄影響を低減するための制御変更を実行する制御変更手段と、を備えたことを特徴とする触媒異常診断装置が提供される。好ましくは、前記アクティブ空燃比制御のうち、その開始から所定回数分のリーン制御またはリッチ制御が無効回であり、当該無効回については、前記計測手段が計測を行わず、または計測を行っても当該計測値を前記判定手段が判定の基礎とせず、前記制御変更は、前記使用燃料の硫黄濃度が所定値未満の場合に比べ、前記無効回の数を増加させること、前記無効回における前記リッチ制御の振幅を増加させること、および前記無効回における前記リッチ制御から前記リーン制御への切り替えタイミングを遅らせることの少なくとも一つからなる。本発明の第3の態様によれば、前記第1の態様の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記上流触媒の上流側の空燃比をリーンおよびリッチに交互に制御するアクティブ空燃比制御を実行するアクティブ空燃比制御手段と、前記空燃比のリーン制御中およびリッチ制御中に前記上流触媒が吸放出する酸素量を計測する計測手段と、前記計測手段によって計測された複数の酸素量に基づき前記上流触媒が正常か異常かを判定する判定手段と、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、少なくとも前記計測手段による計測の前に、前記上流触媒の温度を上昇させるための昇温制御を実行する昇温制御手段と、を備えたことを特徴とする触媒異常診断装置が提供される。好ましくは、前記昇温制御が、前記内燃機関の点火時期を遅角する遅角制御、および前記内燃機関の各気筒の空燃比を強制的にばらつかせるインバランス制御の少なくとも一つからなる。本発明の第4の態様によれば、前記第1の態様の燃料性状判定装置を備えると共に、前記上流触媒が正常か異常かを診断する触媒異常診断装置であって、前記硫黄濃度推定手段により前記使用燃料の硫黄濃度が所定値以上であると推定されたとき、診断を禁止することを特徴とする触媒異常診断装置が提供される。本発明によれば、燃料の硫黄濃度を好適に推定することができる燃料性状判定装置、及びこれを備えた触媒異常診断装置を提供することができるという、優れた効果が発揮される。以下、本発明の好適実施形態を添付図面に基づき説明する。図1は、本実施形態の構成を示す概略図である。図示されるように、内燃機関たるエンジン1は、シリンダブロック2に形成された燃焼室3の内部で燃料および空気の混合気を燃焼させ、燃焼室3内でピストン4を往復移動させることにより動力を発生する。本実施形態のエンジン1は自動車用多気筒エンジン1気筒のみ図示であり、火花点火式内燃機関、より具体的にはガソリンエンジンである。エンジン1のシリンダヘッドには、吸気ポートを開閉する吸気弁Viと、排気ポートを開閉する排気弁Veとが気筒ごとに配設されている。各吸気弁Viおよび各排気弁Veは図示しないカムシャフトによって開閉させられる。また、シリンダヘッドの頂部には、燃焼室3内の混合気に点火するための点火プラグ7が気筒ごとに取り付けられている。各気筒の吸気ポートは吸気マニホールドを介して吸気集合室であるサージタンク8に接続されている。サージタンク8の上流側には吸気集合通路をなす吸気管13が接続されており、吸気管13の上流端にはエアクリーナ9が設けられている。そして吸気管13には、上流側から順に、エンジンに流入する空気量すなわち吸入空気量を検出するためのエアフローメータ5と、電子制御式スロットルバルブ10とが設けられている。なお吸気ポート、吸気マニホールド、サージタンク8及び吸気管13により吸気通路が形成される。吸気通路、特に吸気ポート内に燃料を噴射するインジェクタすなわち燃料噴射弁12が気筒ごとに配設される。インジェクタ12から噴射された燃料は吸入空気と混合されて混合気をなし、この混合気が吸気弁Viの開弁時に燃焼室3に吸入され、ピストン4で圧縮され、点火プラグ7で点火燃焼させられる。一方、各気筒の排気ポートは、排気マニホールドを介して排気集合通路をなす排気管6に接続されている。これら排気ポート、排気マニホールド及び排気管6により排気通路が形成される。排気管6には、その上流側と下流側に、酸素吸蔵能を有する三元触媒からなる触媒、即ち上流触媒11及び下流触媒19が直列に設けられている。例えば、上流触媒11は排気マニホールドの直後に配置され、下流触媒19は車両の床下などに配置される。上流触媒11の上流側及び下流側に、それぞれ、酸素濃度に基づいて排気ガスの空燃比を検出する空燃比センサ、即ち触媒前センサ17及び触媒後センサ18が設けられている。図5に示すように、触媒前センサ17は所謂広域空燃比センサからなり、比較的広範囲に亘る空燃比を連続的に検出可能で、その空燃比に比例した値の信号を出力する。他方、触媒後センサ18は所謂O2センサからなり、理論空燃比を境に出力値が急変する特性Z特性を持つ。上述の点火プラグ7、スロットルバルブ10及びインジェクタ12等は、制御手段としての電子制御ユニット以下ECUと称す20に電気的に接続されている。ECU20は、何れも図示されないCPU、ROM、RAM、入出力ポート、および記憶装置等を含むものである。またECU20には、図示されるように、前述のエアフローメータ5、触媒前センサ17、触媒後センサ18のほか、エンジン1のクランク角を検出するクランク角センサ14、アクセル開度を検出するアクセル開度センサ15、その他の各種センサが図示されないA/D変換器等を介して電気的に接続されている。ECU20は、各種センサの検出値等に基づいて、所望の出力が得られるように、点火プラグ7、インジェクタ12、スロットルバルブ10等を制御し、点火時期、燃料噴射量、燃料噴射時期、スロットル開度等を制御する。さらにECU20には、上流触媒11及び下流触媒19の温度をそれぞれ検出するための上流温度センサ21および下流温度センサ22が図示されないA/D変換器等を介して電気的に接続されている。上流触媒11及び下流触媒19は、これに流入する排気ガスの空燃比A/Fが理論空燃比ストイキ、例えばA/Fs=14.6のときにNOx,HCおよびCOを同時に高効率で浄化する。よってこの特性に合わせて、ECU20は、エンジンの通常運転時、上流触媒11に流入する排気ガスの空燃比がストイキに一致するよう、燃焼室3に供給される混合気の空燃比具体的にはインジェクタ12からの燃料噴射量を触媒前センサ17および触媒後センサ18の出力に基づきフィードバック制御する。ここで、異常診断の対象となる上流触媒11についてより詳細に説明する。なお下流触媒19も上流触媒11と同様に構成されている。図2に示すように、触媒11においては、図示しない担体基材の表面上にコート材31が被覆され、このコート材31に微粒子状の触媒成分32が多数分散配置された状態で担持され、触媒11内部で露出されている。触媒成分32は主にPt,Pd等の貴金属からなり、NOx,HCおよびCOといった排ガス成分を反応させる際の活性点となる。他方、コート材31は、排気ガスと触媒成分32との界面における反応を促進させる助触媒の役割を担うと共に、雰囲気ガスの空燃比に応じて酸素を吸放出可能な酸素吸蔵成分を含む。酸素吸蔵成分は例えば二酸化セリウムCeO2やジルコニアからなる。なお、吸蔵と同義で吸収または吸着を用いることもある。例えば、触媒内の雰囲気ガスが理論空燃比よりリーンであると、触媒成分32の周囲に存在する酸素吸蔵成分が雰囲気ガスから酸素を吸収し、この結果NOxが還元され、浄化される。他方、触媒内の雰囲気ガスが理論空燃比よりリッチであると、酸素吸蔵成分に吸蔵されていた酸素が放出され、この放出された酸素によりHCおよびCOが酸化され、浄化される。この酸素吸放出作用により、通常のストイキ空燃比制御に際して実際の空燃比がストイキに対して多少ばらついたとしても、このばらつきを吸収することができる。ところで、新品状態の触媒11では前述したように多数の触媒成分32が均等に分散配置されており、排気ガスと触媒成分32との接触確率が高い状態に維持されている。しかしながら、触媒11が劣化してくると、一部の触媒成分32に消失が見られるほか、触媒成分32同士が排気熱で焼き固まって焼結状態になるものがある図の破線参照。こうなると排気ガスと触媒成分32との接触確率が低下し、浄化率を落としめる原因となる。そしてこのほかに、触媒成分32の周囲に存在するコート材31の量、即ち酸素吸蔵成分の量が減少し、酸素吸蔵能自体が低下する。このように、触媒11の劣化度と触媒11の酸素吸蔵能低下度との間には相関関係がある。そこで本実施形態では、特にエミッションへの影響が大きい上流触媒11の酸素吸蔵能を検出することにより、上流触媒11の劣化度を検出し、上流触媒11の異常を診断することとしている。ここで触媒11の酸素吸蔵能は、現状の触媒11が吸蔵し得る最大酸素量である酸素吸蔵容量OSC;O2StorageCapacity、単位はgの大きさによって表される。本実施形態の触媒異常診断は前述のCmax法によるものを基本とする。そして異常診断に際しては、ECU20によりアクティブ空燃比制御が実行される。すなわちECU20は、触媒11に供給される排気ガスの空燃比、具体的には燃焼室3内の混合気の空燃比を、中心空燃比であるストイキA/Fsを境にリッチ及びリーンに交互に且つアクティブに切り替える。また、アクティブ空燃比制御および診断は、所定の前提条件が満たされているときに限って実行される。この前提条件については後述する。以下、図3及び図4を用いて、上流触媒11の酸素吸蔵容量の計測方法を説明する。図3Aにおいて、破線は目標空燃比A/Ft、実線は触媒前センサ17の出力但し触媒前空燃比A/Ffへの換算値を示す。また図3Bにおいて、実線は触媒後センサ18の出力但しその出力電圧Vrを示す。図示するように、時刻t1より前では、空燃比をリーンに切り替えるリーン制御が実行され、目標空燃比A/Ftはリーン空燃比A/Fl例えば15.1とされ、触媒11には、目標空燃比A/Ftと等しい空燃比のリーンガスが供給されている。このとき触媒11は酸素を吸蔵し続けているが、飽和状態即ち満杯まで酸素を吸蔵した時点でそれ以上酸素を吸蔵できなくなる。この結果、リーンガスが触媒11を通り抜けて触媒11の下流側に流れ出す。こうなると触媒後センサ18の出力がリーン側に変化し、出力電圧Vrが所定のリーン判定値VL例えば0.21Vに達した時点t1で、目標空燃比A/Ftがリッチ空燃比A/Fr例えば14.1に切り替えられる。これによりリッチ制御が開始され、目標空燃比A/Ftと等しい空燃比のリッチガスが供給されるようになる。リッチガスが供給されると、触媒11は吸蔵酸素を放出し続ける。やがて触媒11から吸蔵酸素が放出され尽くすとその時点で触媒11は酸素を放出できなくなり、リッチガスが触媒11を通り抜けて触媒11の下流側に流れ出す。こうなると触媒後センサ18の出力がリッチ側に変化し、出力電圧Vrが所定のリッチ判定値VR例えば0.59Vに達した時点t2で、目標空燃比A/Ftがリーン空燃比A/Fl例えば15.1に切り替えられる。これにより再びリーン制御が開始され、目標空燃比A/Ftと等しい空燃比のリーンガスが供給されるようになる。再び、触媒11が満杯まで酸素を吸蔵し、触媒後センサ18の出力電圧Vrがリーン判定値VLに達すると、その時点t3で、目標空燃比A/Ftがリッチ空燃比A/Frに切り替えられ、リッチ制御が開始される。こうして、触媒後センサ18の出力が反転する毎に、リーン制御とリッチ制御とが交互に繰り返し実行される。このアクティブ空燃比制御の実行中、次の方法で触媒11の酸素吸蔵容量OSCが計測される。触媒11の有する酸素吸蔵容量が大きいほど、酸素を吸蔵或いは放出し続けることのできる時間が長くなる。つまり、触媒が劣化していない場合は触媒後センサ出力Vrの反転周期例えばt1からt2までの時間が長くなり、触媒の劣化が進むほどその反転周期は短くなる。そこで、このことを利用して酸素吸蔵容量OSCが次のようにして計測される。図4に示すように、時刻t1で目標空燃比A/Ftがリッチ空燃比A/Frに切り替えられた直後、僅かに遅れて実際値としての触媒前空燃比A/Ffがリッチ空燃比A/Frに切り替わる。そして触媒前空燃比A/FfがストイキA/Fsに達した時点t11から、次に触媒後センサ出力Vrが反転する時点t2まで、次式1により、所定の演算周期毎の酸素吸蔵容量dOSCが逐次的に算出され、且つこの酸素吸蔵容量dOSCが時刻t11から時刻t2まで逐次的に積算される。こうして、リッチ制御時における最終積算値としての酸素吸蔵容量OSC、すなわち図4にOSCbで示す放出酸素量が計測される。Qは燃料噴射量であり、空燃比差ΔA/Fに燃料噴射量Qを乗じるとストイキに対し不足又は過剰分の空気量を算出できる。σは空気に含まれる酸素割合約0.23を表す定数である。リーン制御時にも同様に酸素吸蔵容量、すなわち図4にOSCaで示す吸蔵酸素量が計測される。そしてリッチ制御とリーン制御が交互に行われる度に、放出酸素量と吸蔵酸素量が交互に計測される。ここで分かるように、酸素吸蔵容量とは放出酸素量と吸蔵酸素量を総称する用語である。また放出酸素量とはリッチ制御中に触媒11が放出する酸素量をいい、吸蔵酸素量とはリーン制御中に触媒11が吸蔵する酸素量をいう。こうして複数ずつの放出酸素量と吸蔵酸素量との計測値が得られたならば、次の方法により触媒の正異常判定が行われる。まずECU20は、これら放出酸素量と吸蔵酸素量との計測値の平均値OSCavを算出する。そしてこの平均値OSCavを所定の異常判定値αと比較する。ECU20は、平均値OSCavが異常判定値αより大きいときには触媒11を正常と判定し、平均値OSCavが異常判定値α以下のときには触媒11を異常と判定する。なお触媒を異常と判定した場合、その事実をユーザに知らせるため、チェックランプ等の警告装置図示せずを起動させるのが好ましい。次に、本実施形態における燃料性状判定、具体的には燃料の硫黄濃度の推定について説明する。ここで、予め使用が予定されている硫黄濃度が低い燃料、即ち硫黄濃度が所定値未満の燃料を低S燃料という。また硫黄濃度が高い燃料、即ち硫黄濃度が当該所定値以上の燃料を高S燃料という。一般に、触媒温度が低いほど触媒への硫黄影響は増加する。すなわち、燃料の硫黄濃度が一定であっても、触媒温度が低いほど触媒のS被毒度合いは大きくなり、また触媒の硫黄蓄積量は増加する。また、上流触媒11と下流触媒19を比較した場合、下流触媒19の方がより低温の排気ガスが供給されるので、より低温となる傾向がある。従って、燃料の硫黄濃度が一定の場合、上流触媒11の温度と下流触媒19の温度との間には一定の相関関係がある。これを図示したのが図6である。図6において、菱形および実線は低S燃料使用時のデータであり、四角および破線は高S燃料使用時のデータである。まず、燃料の硫黄濃度に拘わらず、下流触媒温度T2は常に上流触媒温度T1よりも低い。そして燃料の硫黄濃度が一定の場合、すなわち低S燃料使用時と高S燃料使用時のいずれにおいても、下流触媒温度T2は上流触媒温度T1に対し比例関係にある。さらに、上流触媒温度T1が一定の場合、高S燃料使用時の下流触媒温度T2は低S燃料使用時の下流触媒温度T2よりも低い。この理由は、上流触媒11よりも低温な下流触媒19において、高S燃料による硫黄影響が大きくなり、S被毒度合いが大きくなり、触媒の反応熱が少なくなるからである。そこで本実施形態では、この特性を利用して燃料の硫黄濃度をECU20により推定する。すなわち、図示の如き低S燃料使用時の上流触媒温度と下流触媒温度の関係を予めマップ関数でもよい。以下同様の形でECU20に記憶しておく。そして、上流温度センサ21によって検出された実際の上流触媒温度上流触媒検出温度というT1aに対応した下流触媒温度を、当該マップから推定する。この下流触媒温度の推定値下流触媒推定温度というT2bは、図6の実線上の値となる。次いで下流触媒推定温度T2bと、下流温度センサ22によって検出された実際の下流触媒温度下流触媒検出温度というT2aとに基づき、使用燃料の硫黄濃度を推定する。具体的には、所定時期ないし所定の演算時期における下流触媒推定温度T2bと下流触媒検出温度T2aの差ΔT2=|T2b-T2a|、またはその所定期間内ないし複数演算周期間内における積算値ΣΔT2が所定値以上のとき、使用燃料の硫黄濃度が所定値以上である、すなわち使用燃料が高S燃料であると推定する。他方、差ΔT2またはその積算値ΣΔT2が所定値未満のときには、使用燃料の硫黄濃度が所定値未満である、すなわち使用燃料が低S燃料であると推定する。低S燃料使用時であれば、低S燃料を前提とした下流触媒推定温度T2bと下流触媒検出温度T2aの差ΔT2が小さい筈なので、この場合には使用燃料を低S燃料と推定できる。しかしながら、高S燃料使用時であれば、低S燃料を前提とした下流触媒推定温度T2bと下流触媒検出温度T2aの差ΔT2が大きくなる。よってこの場合には使用燃料を高S燃料と推定する。この推定方法には次の利点がある。まず、使用燃料の硫黄濃度を硫黄濃度センサにより検出する場合に比べ、二つの温度センサ21,22が比較的安価なため、装置構成を比較的低廉に抑えられるという利点がある。次に、上流触媒11および下流触媒19の一方のみの検出温度低下量に基づき燃料の硫黄濃度を推定することが考えられるが、これだと、触媒劣化に起因する温度低下なのか、あるいは硫黄影響に起因する温度低下なのかを区別することができない。しかし、本実施形態の推定方法によれば、上流触媒11および下流触媒19の両方の検出温度ないし情報を利用する。特に上流触媒検出温度T1に基づき推定された下流触媒推定温度T2bと下流触媒検出温度T2aとの差ΔT2を利用する。よって、触媒劣化原因を排除し、硫黄影響原因のみに基づいて硫黄濃度を推定できる。従って好適でしかも高精度な方法により燃料の硫黄濃度を推定することが可能である。ここで好ましくは、ECU20は、差ΔT2または積算値ΣΔT2の比較対象である所定値を、所定時期の上流触媒検出温度T1または所定期間内の上流触媒検出温度T1の平均値もしくは積算値に応じて可変設定する。具体的には、所定時期の上流触媒検出温度T1または所定期間内の上流触媒検出温度T1の平均値もしくは積算値が高いほど、所定値を大きな値に設定する。この設定は予め定めたマップを利用して行うことができる。図6から理解されるように、下流触媒推定温度T2bと下流触媒検出温度T2aとの差ΔT2は、高S燃料使用時においては、上流触媒温度T1が高くなるほど大きくなる傾向がある。よってこの傾向に合わせて、所定時期の上流触媒検出温度T1または所定期間内の上流触媒検出温度T1の平均値もしくは積算値が高いほど、所定値を大きくすることにより、図6の特性をより反映し、推定精度を一層向上することが可能となる。なお、ここでの例では硫黄濃度を高低の二段階で推定したが、差ΔT2またはその積算値ΣΔT2に応じて硫黄濃度を無段階で推定してもよい。また差ΔT2に代わって、下流触媒推定温度T2bと下流触媒検出温度T2aの比R=T2b/T2aを用いてもよい。この場合比Rが大きいほど高い硫黄濃度を推定することになる。ところで、使用燃料が高S燃料であることを推定した場合、硫黄影響を考慮して触媒の異常診断を実施するのが好ましい。そこで以下にはそのような異常診断の好適例を示す。まず図7には、異常診断処理の前提として行われる燃料性状判定処理のルーチンを示す。このルーチンはECU20により所定の演算周期例えば16msec毎に繰り返し実行される。まずステップS101において、イグニッションスイッチIGがオフからオンになったか否か、すなわち今回がIGオンのタイミングであるか否かが判断される。IGオンのタイミングである場合、ステップS102で高S燃料フラグ詳しくは後述がオンされ、ステップS103に進む。他方、IGオンのタイミングでない場合、ステップS102をスキップしてステップS103に進む。すなわち、IGオンのタイミングとなる初回だけ、高S燃料フラグがオンされる。ステップS103では、燃料性状判定処理をするのに適した前提条件が成立しているか否かが判断される。例えば、1エンジンが暖機状態にあり、2上流触媒11および下流触媒19が暖機状態にあり、3フューエルカットが実行中でなく、4フューエルカットからの復帰後所定時間例えば5秒以上経過している場合には、前提条件が成立する。条件1の成否は図示しない水温センサの検出値に基づき判断され、例えば当該検出値が75°C以上だと条件成立となる。条件2の成否は上流触媒検出温度T1aと下流触媒検出温度T2aに基づき判断される。なお前提条件についてはこれ以外の例も可能である。前提条件が成立していない場合には処理が終了され、他方、前提条件が成立している場合にはステップS104に進む。ステップS104では、今回の下流触媒推定温度T2bと下流触媒検出温度T2aの差ΔT2が算出されると共に、この差ΔT2が積算される。次いでステップS105では、積算回数が所定値N以上であるか否か、すなわち積算回数が所定値Nに達したか否かが判断される。所定値Nは比較的大きな正の値である。積算回数が所定値Nに達していない場合には処理が終了され、他方、積算回数が所定値Nに達した場合にはステップS106に進む。ステップS106では、差ΔT2の積算値ΣΔT2が所定値すなわち所定の高S判定値βと比較される。積算値ΣΔT2が高S判定値βより小さい場合、ステップS107に進んで高S燃料フラグがオフされると共に、積算値ΣΔT2がクリアされ、処理が終了される。他方、積算値ΣΔT2が高S判定値β以上の場合、ステップS108に進んで高S燃料フラグがオンされると共に、積算値ΣΔT2がクリアされ、処理が終了される。これから分かるように、高S燃料フラグは、使用燃料が高S燃料であると推定されたときにオンされ、使用燃料が高S燃料でない低S燃料であると推定されたときにオフされるフラグである。ステップS102においては、便宜上、IGオンのタイミングで高S燃料フラグをオンしている。この理由は、使用燃料が高S燃料か低S燃料か不明な状態のとき、低S燃料を前提として異常診断が通常通り実行されてしまうのを防止するためである。次に、図8を参照しつつ、触媒異常診断処理の第1実施例を説明する。図示するルーチンはECU20により所定の演算周期例えば16msec毎に繰り返し実行される。まずステップS201では、触媒異常診断処理をするのに適した前提条件が成立しているか否かが判断される。例えば、1エンジンが暖機状態にあり、2上流触媒11および下流触媒19が暖機状態にあり、3触媒前センサ17および触媒後センサ18が活性状態にあり、4エンジンが定常運転状態にあり、5高S燃料フラグがオフの場合には、前提条件が成立する。条件3の成否は、触媒前センサ17および触媒後センサ18の素子インピーダンスに基づく素子温度の検出値に基づき判断される。条件4の成否は、例えば吸入空気量Ga及びエンジン回転速度Neの所定期間内における変動幅が所定範囲内に収まっているか否かによって判断される。なお吸入空気量Gaはエアフローメータ5により検出され、エンジン回転速度Neはクランク角センサ14の出力から計算される。条件5は、図7の燃料性状判定処理の結果に基づく。なお前提条件についてはこれ以外の例も可能である。前提条件が成立していない場合には処理が終了され、他方、前提条件が成立している場合にはステップS202に進む。ステップS202では、アクティブ空燃比制御が実行されると共に、酸素吸蔵容量OSCの値が計測される。すなわちリッチ制御とリーン制御が交互に複数回ずつ行われ、リッチ制御時には放出酸素量の値が、リーン制御時には吸蔵酸素量の値が計測される。ステップS203では、酸素吸蔵容量OSCの計測が完了したか否かが判断される。すなわち本実施形態では複数である所定数の酸素吸蔵容量OSCの値を計測するようにしており、この所定数の酸素吸蔵容量OSCの値を計測し終えたならば計測が完了する。ステップS204では、所定数の酸素吸蔵容量計測値の平均値OSCavが算出され、この平均値OSCavが所定の異常判定値αと比較される。平均値OSCavが異常判定値αより大きい場合には、ステップS205に進んで上流触媒11が正常と判定され、処理が終了される。他方、平均値OSCavが異常判定値α以下の場合には、ステップS206に進んで上流触媒11が異常と判定され、処理が終了される。ところでこの第1実施例においては、ステップS201の前提条件に5高S燃料フラグがオフであるという条件が含まれている。つまり、使用燃料が低S燃料と推定された場合のみステップS202以降の実質的な診断処理が実行され、使用燃料が高S燃料と推定された場合には、直ちに処理が終了され、ステップS202以降の実質的な診断処理は実行されない。言い換えれば、使用燃料が高S燃料と推定された場合、診断が禁止される。従って高S燃料使用時に誤った診断結果が得られるのを防止し、誤診断を未然に且つ確実に防止することができる。特に、本来異常でない触媒を誤って異常と診断してしまうことを防止できる。なお、低S燃料使用時には通常通り診断を行うことができるので、診断頻度確保との両立も図れる。次に、図9を参照しつつ、触媒異常診断処理の第2実施例を説明する。図示するルーチンもECU20により所定の演算周期例えば16msec毎に繰り返し実行される。この第2実施例の主な特徴は、使用燃料を高S燃料と推定した場合、上流触媒11に対する硫黄影響を低減するための制御変更を実行する点にある。まずステップS301では、前記ステップS201と同様、触媒異常診断処理をするのに適した前提条件が成立しているか否かが判断される。但しここでの前提条件は、前記ステップS201の前提条件と異なり、前記ステップS201の前提条件から5高S燃料フラグがオフという条件を除いたものとなっている。前提条件が成立していない場合には処理が終了され、他方、前提条件が成立している場合にはステップS302に進む。ステップS302では、高S燃料フラグがオンか否かが判断される。オンであればステップS303に進んで制御変更が実行され、その後ステップS304に進む。他方、オフであれば、ステップS303をスキップしてステップS304に進む。ステップS304~S308は前記ステップS202~S206と同様である。ここで、制御変更に関する幾つかの例を示す。まず図10を用いて第1例を説明する。図10には、図4に示した如き、アクティブ空燃比制御実行時の目標空燃比A/Ft、触媒前センサ出力但し触媒前空燃比A/Ffへの換算値、および酸素吸蔵容量計測値OSCii=1,2,3,を示す。時刻t1がアクティブ空燃比制御の開始時である。本実施形態では、アクティブ空燃比制御のうち、その開始から所定回数分のリーン制御またはリッチ制御は無効回所謂捨て山とされている。そして当該無効回については、酸素吸蔵容量の計測が行われず、または計測が行われたとしても当該計測値が触媒正異常判定の基礎に用いられない。つまり無効回においては、実質的にアクティブ空燃比制御が実行されているだけである。図示例において、OSC1に対応する1回目はリーン制御が実行され、OSC2に対応する2回目はリッチ制御が実行されている以下同様。本実施形態において、例えば最初から2回分のリーン制御およびリッチ制御つまり2回目のリッチ制御までが無効回である。図示例ではこれら無効回の酸素吸蔵容量OSC1,OSC2が計測されているが、これらは計測しなくてもよい。OSC3に対応する3回目のリーン制御から酸素吸蔵容量の計測が開始される。この計測は、例えば10回目のリッチ制御でOSC10が計測し終わった時点で終了される同時にアクティブ空燃比制御も終了。無効回分を除いた残余の8個の酸素吸蔵容量計測値OSC3~OSC10OSC8まで図示に基づいて酸素吸蔵容量平均値OSCavが算出される。この例では合計で10回のリーン制御およびリッチ制御が実行され、このうち最初の2回が無効回であり、残余の8回が有効回である。このように無効回の基準値は2であり、これを基準無効回という。かかる無効回を設ける理由は、アクティブ空燃比制御開始前のエンジン運転状態の相違による触媒状態のばらつきを低減し、触媒状態を安定化させるためである。なお当然ながら、基準無効回の数は任意に定め得る。基準無効回の数は、ベース燃料としての低S燃料を前提として設定されている。これに対し、高S燃料フラグがオン、すなわち使用燃料が高S燃料と推定されたときには、無効回の数が基準無効回の数より増加され、例えば4とされる。この増加された無効回を増加無効回という。増加無効回の数も当然ながら任意に定めることが可能である。この場合、残余の酸素吸蔵容量計測値OSC5~OSC10に基づき酸素吸蔵容量平均値OSCavが算出されることとなる。一般に、触媒の硫黄被毒は、触媒が高温であるほど、また触媒雰囲気がリッチであるほど、解消する傾向にある。この第1例によれば、使用燃料が高S燃料と推定されたときに無効回の数を増加させるので、低S燃料使用時に比べ、計測前のリーン制御およびリッチ制御の数を増やすことができる。特にリッチ制御の数を増やすことで、無効回を実施する間に触媒の硫黄被毒を解消し、その上で計測を開始することができる。よって結果的に触媒に対する硫黄影響を低減し、誤差の少ない計測値を得て、精度の良い診断を実行することが可能である。そして本来異常でない触媒を誤って異常と診断してしまう誤診断を未然に防止することができる。なお、低S燃料使用時には基準無効回を用いて通常通り診断を行うことができる。この第1例において、無効回の増加分だけ計測回数を増加し、低S燃料使用時と同じ計測値の数を担保するようにしてもよい。例えば無効回が2だけ増加されたら、計測回数も2だけ増加し、低S燃料使用時と同じ8つの計測値を確保する。次に、制御変更の第2例を図11を用いて説明する。図11は図10と同様の図である。この第2例において、基準無効回の数は4であり、合計で10回のリーン制御およびリッチ制御が実行され、判定の基礎とされる酸素吸蔵容量計測値はOSC5~OSC10OSC8まで図示の6回分である。この第2例では、使用燃料が高S燃料と推定された場合、無効回の数を増加するのではなく、代わり無効回におけるリッチ制御の振幅を増加させる。すなわち、図11に示すように、使用燃料が高S燃料と推定された場合には、リッチ制御の振幅が、低S燃料を前提とした基準値Arから、所定値ΔArだけ増加され、Ar’とされる。Arを基準振幅といい、Ar’を増加振幅といい、ΔArを振幅増加量という。例えば、Ar=0.5、Ar’=0.8、ΔAr=0.3である。ストイキA/Fsを14.6とした場合、低S燃料を前提とした基準時のリッチ空燃比A/Frは14.1、振幅増加時のリッチ空燃比A/Fr’は13.8である。但しこれらの値は任意に定め得る。なおリーン制御については変更がない。前述したように、触媒の硫黄被毒は、触媒が高温であるほど、また触媒雰囲気がリッチであるほど、解消する傾向にある。この第2例によれば、使用燃料が高S燃料と推定されたときに無効回におけるリッチ制御の振幅を増加させるので、無効回を実施する間に触媒の硫黄被毒を解消し、その上で計測を開始することができる。よって結果的に触媒に対する硫黄影響を低減し、誤差の少ない計測値を得て、精度の良い診断を実行することが可能である。そして本来異常でない触媒を誤って異常と診断してしまう誤診断を未然に防止することができる。なお、低S燃料使用時には無効回においても基準振幅Arを用いて通常通り診断を行うことができる。次に、制御変更の第3例を図12を用いて説明する。図12も図10と同様の図である。この第3例においても、基準無効回の数は4であり、合計で10回のリーン制御およびリッチ制御が実行され、判定の基礎とされる酸素吸蔵容量計測値はOSC5~OSC10OSC8まで図示の6回分である。この第3例では、使用燃料が高S燃料と推定された場合、無効回におけるリッチ制御からリーン制御への切り替えタイミングが遅らせられる。すなわち、低S燃料使用時もしくは使用燃料が低S燃料と推定された場合には、図3および図4に示したように、触媒後センサ出力Vrがリッチ判定値VRに達したタイミングで、リッチ制御からリーン制御への切り替えがなされる。しかしながら、図12に示すように、高S燃料使用時もしくは使用燃料が高S燃料と推定された場合には、触媒後センサ出力Vrがリッチ判定値VRに達したタイミングt2,t3よりも所定のディレー時間Δtdだけ遅れたタイミングt2’,t3’で、リッチ制御からリーン制御への切り替えがなされる。ディレー時間Δtdは例えば数秒である。なおリーン制御については変更がない。前述したように、触媒の硫黄被毒は、触媒が高温であるほど、また触媒雰囲気がリッチであるほど、解消する傾向にある。この第3例によれば、使用燃料が高S燃料と推定されたときに無効回におけるリッチ制御からリーン制御への切り替えタイミングを遅らせる。よって無効回においてより長い時間リッチ制御を行うことができ、無効回を実施する間に触媒の硫黄被毒を解消し、その上で計測を開始することができる。よって結果的に触媒に対する硫黄影響を低減し、誤差の少ない計測値を得て、精度の良い診断を実行することが可能である。そして本来異常でない触媒を誤って異常と診断してしまう誤診断を未然に防止することができる。なお、低S燃料使用時には無効回における切り替えタイミングを通常とし、通常通り診断を行うことができる。図示例では、無効回におけるリッチ制御の最中に、触媒後センサ出力Vrがリッチ判定値VRに達する通常のタイミングで酸素吸蔵容量OSC2,OSC4の計測を終了させている。しかしながら、無効回における計測値は正異常判定の基礎とされないので、ディレー時間経過後のタイミングt2’,t3’で計測を終了させてもよい。既に述べたように、無効回における計測を行わなくてもよい。上記の第1例~第3例は適宜組み合わせることも可能である。次に、図13を参照しつつ、触媒異常診断処理の第3実施例を説明する。図示するルーチンもECU20により所定の演算周期例えば16msec毎に繰り返し実行される。この第3実施例の主な特徴は、使用燃料を高S燃料と推定した場合、少なくとも酸素吸蔵容量の計測前に、上流触媒11の温度を上昇させるための昇温制御を実行する点にある。まずステップS401では、前記ステップS201と同様、触媒異常診断処理をするのに適した前提条件が成立しているか否かが判断される。但しここでの前提条件は、前記ステップS201の前提条件と異なり、前記ステップS201の前提条件から5高S燃料フラグがオフという条件を除いたものとなっている。前提条件が成立していない場合には処理が終了され、他方、前提条件が成立している場合にはステップS402に進む。ステップS402では高S燃料フラグがオンか否かが判断される。オンであればステップS403に進んで昇温制御が実行され、その後ステップS404において昇温制御が終了したか否かが判断される。終了していればステップS405に進み、終了していなければ処理が終了される。他方、ステップS402において高S燃料フラグがオフであれば、ステップS403,S404をスキップしてステップS405に進む。ステップS405~S409は前記ステップS202~S206と同様である。ここで、昇温制御に関する幾つかの例を示す。まず第1例は、エンジン1の点火時期を遅角する遅角制御である。この遅角制御により、エンジン1の点火時期は、低S燃料を前提とした基準点火時期から所定クランク角だけ遅角される。前述したように、触媒の硫黄被毒は、触媒が高温であるほど、また触媒雰囲気がリッチであるほど、解消する傾向にある。この第1例によれば、使用燃料が高S燃料と推定されたときに点火時期が基準点火時期より遅角させられる。すると燃焼室3内の燃焼が緩慢となり、燃焼室3から排出される排気ガスにHC,COといった未燃成分がより多く含まれるようになる。この未燃成分が上流触媒11内で酸化、燃焼されるので、上流触媒11は昇温される。これにより上流触媒11の硫黄被毒を解消し、その上で計測を開始することができる。よって結果的に触媒に対する硫黄影響を低減し、誤差の少ない計測値を得て、精度の良い診断を実行することが可能である。そして本来異常でない触媒を誤って異常と診断してしまう誤診断を未然に防止することができる。なお、低S燃料使用時にはかかる遅角制御を行わず通常通り診断を行うことができる。次に、昇温制御の第2例を説明する。この第2例は、エンジン1の各気筒の空燃比を強制的にばらつかせるインバランス制御である。通常、各気筒の空燃比は、目標空燃比例えばストイキA/Fsに一致するよう制御されており、またそうなるように各気筒の燃料噴射量が制御されている。一方、インバランス制御が実行されると、全気筒のうち所定の一部気筒例えば1気筒の空燃比のみが目標空燃比から外れた所定空燃比に制御され、またそうなるように各気筒の燃料噴射量が制御される。これにより、各気筒の空燃比は強制的にばらつかせられることとなる。前述したように、触媒の硫黄被毒は、触媒が高温であるほど、また触媒雰囲気がリッチであるほど、解消する傾向にある。この第2例によれば、使用燃料が高S燃料と推定されたときに各気筒の空燃比が強制的にばらつかせられる。すると、上流触媒11に供給される排気ガスの空燃比が1エンジンサイクル間でリーン側およびリッチ側に変化するので、その度に酸化還元反応が行われ、上流触媒11が活発化し、上流触媒11が昇温する。これにより上流触媒11の硫黄被毒を解消し、その上で計測を開始することができる。よって結果的に触媒に対する硫黄影響を低減し、誤差の少ない計測値を得て、精度の良い診断を実行することが可能である。そして本来異常でない触媒を誤って異常と診断してしまう誤診断を未然に防止することができる。なお、低S燃料使用時にはかかるインバランス制御を行わず通常通り診断を行うことができる。本実施例においては図13に示したように、高S燃料と推定された場合、アクティブ空燃比制御の開始前に昇温制御を所定時間の間行う。そしてアクティブ空燃比制御開始後、基準数の無効回を経た後、酸素吸蔵容量の計測が実質的に開始される。しかしながら、アクティブ空燃比制御開始後の無効回の最中に昇温制御を行ってもよい。要は、酸素吸蔵容量の実質的な計測開始前に昇温制御が実行されていればよい。上記の第1例および第2例は組み合わせることも可能である。また第3実施例を第2実施例と組み合わせることも可能である。具体的には、第3実施例の第1例および第2例の少なくとも一つを、第2実施例の第1例~第3例の少なくとも一つと組み合わせることが可能である。以上、本発明の実施形態について詳細に述べたが、本発明の実施形態は他にも様々なものが考えられる。例えば内燃機関の用途や形式等は任意であり、自動車用以外であってもよいし、直噴式等であってもよい。本発明には、特許請求の範囲によって規定される本発明の思想に包含されるあらゆる変形例や応用例、均等物が含まれる。従って本発明は、限定的に解釈されるべきではなく、本発明の思想の範囲内に帰属する他の任意の技術にも適用することが可能である。"