(57)【特許請求の範囲】
【請求項１】
車両に搭載された複数の診断対象箇所を含む排気システムの異常の有無を診断するシステム異常診断手段と、
前記排気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定する異常箇所特定手段と、
通常は前記システム異常診断手段により排気システム異常診断を実行する通常診断モードに設定し、整備工場等において前記異常箇所特定手段により異常箇所を特定する異常箇所特定モードに切り換える診断モード切換手段とを備え、
前記異常箇所特定手段は、前記システム異常診断手段で異常有りと診断された排気システムの異常箇所を特定する際に、走行性能、排気浄化性能等が悪化する特定の運転条件に設定して異常箇所を特定することを特徴とする車両の異常診断装置。
【請求項２】
前記システム異常診断手段、前記異常箇所特定手段及び前記診断モード切換手段として機能するプログラムを実行するコンピュータが車両に搭載され、
前記コンピュータは、外部から診断モード切換信号が入力されたときに診断モードを前記異常箇所特定モードに切り換えることを特徴とする請求項１に記載の車両の異常診断装置。
【請求項３】
前記排気システムは、排出ガス浄化用の触媒と、排気通路中に設置された排出ガスセンサとを有する排気システムであって、
前記システム異常診断手段は、前記排気システムの異常の有無を診断し、
前記異常箇所特定手段は、前記触媒と前記排出ガスセンサのいずれが異常であるか特定することを特徴とする請求項１又は２に記載の車両の異常診断装置。
【請求項４】
前記システム異常診断手段は、前記排気システムの異常診断を行う際に、前記触媒のリッチ／リーン成分吸着量が飽和吸着量を越えないように空燃比のリッチ／リーンを制御することで、排気浄化性能等に悪影響を及ぼさない運転条件下で前記排出ガスセンサの出力に基づいて前記排気システムの異常の有無を診断することを特徴とする請求項３に記載の車両の異常診断装置。
【請求項５】
前記異常箇所特定手段は、前記排気システムの異常箇所を特定する際に、前記触媒のリッチ／リーン成分吸着量が飽和状態となるように空燃比のリッチ／リーンを制御することで、前記触媒の影響を排除又は低減した運転条件下で前記排出ガスセンサの出力に基づいて前記触媒と前記排出ガスセンサのいずれが異常であるか特定することを特徴とする請求項３又は４に記載の車両の異常診断装置。
【請求項６】
前記異常箇所特定手段は、前記排気システムの異常箇所を特定する際に、前記排出ガスセンサの異常の有無を判定し、該排出ガスセンサが異常でないと判定されたときに、前記触媒の異常と判定することを特徴とする請求項５に記載の車両の異常診断装置。
【請求項７】
前記異常箇所特定手段は、前記触媒のリッチ／リーン成分吸着量が飽和状態となるように空燃比のリッチ／リーンを制御する際に、前記システム異常診断手段による前記排気システムの異常診断のときよりも燃料噴射量の増減量を大きく設定することを特徴とする請求項５又は６に記載の車両の異常診断装置。
【請求項８】
車両に搭載された複数の診断対象箇所を含む吸気システムの異常の有無を診断するシステム異常診断手段と、
前記吸気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定する異常箇所特定手段と、
通常は前記システム異常診断手段により吸気システム異常診断を実行する通常診断モードに設定し、整備工場等において前記異常箇所特定手段により異常箇所を特定する異常箇所特定モードに切り換える診断モード切換手段とを備え、
前記吸気システムは、スロットル開度を検出するスロットル開度センサと、吸気管圧力を検出する吸気管圧力センサと、吸入空気量を検出する吸入空気量センサとを有する吸気システムであって、
前記システム異常診断手段は、前記スロットル開度センサで検出したスロットル開度と前記吸気管圧力センサで検出した吸気管圧力が両方とも走行性能、排気浄化性能等に悪影響を及ぼさない範囲の運転条件のときに、前記吸入空気量センサの出力に基づいて前記吸気システムの異常の有無を診断し、
前記異常箇所特定手段は、前記吸気システムの異常箇所を特定する際に、スロットル開度を強制的に変化させて、前記スロットル開度センサと前記吸気管圧力センサと前記吸入空気量センサのそれぞれの出力が前記スロットル開度の変化に追従して変化しているか否かで前記スロットル開度センサと前記吸気管圧力センサと前記吸入空気量センサのうちのいずれが異常であるか特定することを特徴とする車両の異常診断装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、相互に影響し合う複数の診断対象箇所の中から実際に異常となっている箇所を特定する機能を備えた車両の異常診断装置及び異常診断方法に関するものである。
【０００２】
【従来の技術】
近年の車両の排出ガス浄化システムでは、排出ガス浄化用の触媒の上流側と下流側に、排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサ（空燃比センサ又は酸素センサ）を設置し、これらの排出ガスセンサの出力に基づいて空燃比をフィードバック制御して触媒の排出ガス浄化効率を高めるようにしたものがある。このような排出ガス浄化システムにおいては、排出ガスセンサが劣化して空燃比制御精度が低下した状態（排出ガス浄化効率が低下した状態）で運転が続けられるのを防ぐために、排出ガスセンサの出力の挙動から当該排出ガスセンサの劣化診断を行うようにしたものがある。
【０００３】
しかし、触媒の劣化度合や活性度合によって触媒から流出する排出ガスの空燃比（触媒下流側の排出ガスセンサの出力）の挙動が変化するため、触媒が劣化していたり、未活性であったりすると、正常な排出ガスセンサを劣化と誤診断してしまう可能性がある。
【０００４】
そこで、特開平９−３３４７８号公報に示すように、触媒下流側の排出ガスセンサの劣化判定に用いる劣化判定値を、触媒の劣化度合と活性度合に応じて設定するようにしたものがある。
【０００５】
【発明が解決しようとする課題】
しかし、上記従来公報の技術では、触媒の上流側と下流側の排出ガスセンサの出力変動周波数を比較して触媒の劣化度合を判定するようにしているので、どちらかの排出ガスセンサが劣化してその応答性が低下している場合は、触媒の劣化度合の判定精度も低下して、触媒下流側の排出ガスセンサの劣化判定値を精度良く設定することができない。このため、触媒の劣化を排出ガスセンサの劣化と誤診断する可能性があり、排出ガス浄化システムの異常箇所を精度良く特定することができない。
【０００６】
このような場合、従来は、整備工場で、触媒と排出ガスセンサのいずれか一方を正常に機能する部品と取り替えて異常診断を行い、それでも異常有りと診断されれば、他方の部品が異常と判断して、再度、その部品を取り替えて異常診断を行うという手間のかかる作業を繰り返さなければならず、甚だ面倒であった。特に、診断対象部品の数が３つ以上になれば、異常部品を特定するための部品取替え回数と異常診断の繰り返し回数が更に増え、異常部品の特定に多くの労力と長い時間を要することになる。
【０００７】
ところで、触媒下流側の排出ガスセンサの劣化診断精度を向上させるために、エンジン運転中に一時的に空燃比のフィードバック制御を禁止して空燃比を大きくリッチ側に振ることで、触媒のリッチ成分吸着量を速やかに飽和状態にして、触媒上流側の排出ガスの空燃比変化が、触媒の劣化度合の影響をあまり受けずに触媒下流側の空燃比変化として応答良く現れるようにすることが考えられる。しかし、通常のエンジン運転中に空燃比のフィードバック制御を禁止して空燃比を大きくリッチ側に振ると、走行性能や排気浄化性能が悪化してしまうという不具合が発生する。
【０００８】
本発明はこれらの事情を考慮してなされたものであり、従ってその目的は、通常の運転中の走行性能や排気浄化性能に悪影響を及ぼすことなく、システムの異常箇所を精度良く且つ簡単に特定することができる車両の異常診断装置及び異常診断方法を提供することにある。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１の車両の異常診断装置は、車両に搭載された複数の診断対象箇所を含む排気システムの異常の有無を診断するシステム異常診断手段と、前記排気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定する異常箇所特定手段とを備え、診断モード切換手段によって、通常は前記システム異常診断手段により排気システム異常診断を実行する通常診断モードに設定し、整備工場等において前記異常箇所特定手段により異常箇所を特定する異常箇所特定モードに切り換えるようにしたものである。
【００１０】
このようにすれば、通常は複数の診断対象箇所を含むシステム全体としての異常診断を行うだけであるので、通常は、走行性能や排気浄化性能等に悪影響を及ぼさない範囲の運転条件で運転しながら、システム全体としての異常の有無を診断することができる。そして、システムに異常有りと判定された車両が整備工場等に持ち込まれた場合は、診断モードを通常診断モードから異常箇所特定モードに切り換えれば、走行性能や排気浄化性能よりも異常箇所の特定を優先し、異常箇所を特定しやすい運転条件で運転して、異常有りと診断されたシステムの複数の診断対象箇所の中から実際に異常となっている箇所を特定することができる。
これにより、通常の運転中の走行性能や排気浄化性能を悪化させることなく、整備工場等で、部品の取り替えを行わずに、システムの異常箇所を精度良く且つ簡単に特定することができる。また、請求項１の発明では、異常箇所特定モードに切り換えてシステムの異常箇所を特定する際に、走行性能、排気浄化性能等が悪化する特定の運転条件に設定して異常箇所を特定するようにした。このようにすれば、異常箇所特定モードでは、異常箇所の特定に最も適した運転条件に設定することができ、異常箇所の特定をより正確に且つより簡単に行うことができる。
【００１１】
本発明は、例えば、システム異常診断手段としての機能を車載コンピュータに組み込み、異常箇所特定手段としての機能をオフボード診断装置に組み込み、整備工場等で、このオフボード診断装置を車載コンピュータに接続して異常箇所の特定を行うようにしても良いが、請求項２のように、システム異常診断手段、異常箇所特定手段及び診断モード切換手段として機能するプログラムを実行するコンピュータを車両に搭載し、外部から該コンピュータに診断モード切換信号を入力することで、診断モードを異常箇所特定モードに切り換えるようにすると良い。このようにすれば、整備工場等で、車載コンピュータに診断モード切換信号を入力するだけで、車載コンピュータによってシステムの異常箇所を特定することができ、システムの異常診断から異常箇所特定までの一連の診断処理をオンボードで行うことができる。
【００１４】
一般に、排気システムに含まれる触媒と排出ガスセンサのいずれが異常であるか特定する場合には、走行性能や排気浄化性能が悪化する運転条件で運転しないと、異常箇所を正確に特定しにくいため、請求項３のように、通常診断モードで排気システムの異常の有無を診断し、その結果、排気システムの異常有りと診断された場合には、異常箇所特定モードに切り換えて、触媒と前記排出ガスセンサのいずれが異常であるか特定するようにすれば良い。これにより、通常の運転中に走行性能や排気浄化性能を悪化させることなく、排気システムの異常箇所を精度良く特定することができる。
【００１５】
この場合、請求項４のように、通常診断モードで排気システムの異常の有無を診断する際には、触媒のリッチ／リーン成分吸着量が飽和吸着量を越えないように空燃比のリッチ／リーンを制御することで、排気浄化性能等に悪影響を及ぼさない運転条件下で、排出ガスセンサの出力に基づいて排気システムの異常の有無を診断するようにすると良い。触媒のリッチ／リーン成分吸着量が飽和吸着量を越えないように空燃比のリッチ／リーンを制御すれば、排気システムの異常診断中でも、触媒で排出ガスを十分に浄化することができ、排気浄化性能等に悪影響を及ぼさずに済む。
【００１６】
また、請求項５のように、異常箇所特定モードで排気システムの異常箇所を特定する際には、触媒のリッチ／リーン成分吸着量が飽和状態となるように空燃比のリッチ／リーンを制御することで、触媒の影響を排除又は低減した運転条件下で排出ガスセンサの出力に基づいて触媒と排出ガスセンサのいずれが異常であるか特定するようにすると良い。触媒のリッチ／リーン成分吸着量が飽和状態となるように空燃比のリッチ／リーンを制御すれば、触媒の上流側の空燃比の変化が触媒の下流側の空燃比の変化として応答良く現れるようになり、触媒の影響を排除又は低減した運転条件とすることができるため、この運転条件下で、排出ガスセンサの出力に基づいて排出ガスセンサの異常の有無を診断すれば、触媒の影響を受けずに排出ガスセンサの異常の有無を精度良く判定することができる。
【００１７】
その結果、排出ガスセンサが異常でないと判定されたときには、触媒の異常と判定するようにすれば良い（請求項６）。これにより、排気システムの異常箇所が排出ガスセンサか触媒かを精度良く特定することができる。
【００１８】
更に、請求項７のように、触媒のリッチ／リーン成分吸着量が飽和状態となるように空燃比のリッチ／リーンを制御する際に、システム異常診断手段による排気システムの異常診断のときよりも燃料噴射量の増減量を大きく設定すると良い。これにより、触媒のリッチ／リーン成分吸着量が速やかに飽和状態となるように空燃比のリッチ／リーンを制御することができる。
【００２１】
また、上記目的を達成するために、本発明の請求項８の車両の異常診断装置は、車両に搭載された複数の診断対象箇所を含む吸気システムの異常の有無を診断するシステム異常診断手段と、吸気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定する異常箇所特定手段と、通常はシステム異常診断手段により吸気システム異常診断を実行する通常診断モードに設定し、整備工場等において異常箇所特定手段により異常箇所を特定する異常箇所特定モードに切り換える診断モード切換手段とを備え、前記吸気システムはスロットル開度を検出するスロットル開度センサと、吸気管圧力を検出する吸気管圧力センサと、吸入空気量を検出する吸入空気量センサとを有する吸気システムであって、システム異常診断手段は、スロットル開度センサで検出したスロットル開度と前記吸気管圧力センサで検出した吸気管圧力が両方とも走行性能、排気浄化性能等に悪影響を及ぼさない範囲の運転条件のときに、吸入空気量センサの出力に基づいて前記吸気システムの異常の有無を診断し、異常箇所特定手段は、吸気システムの異常箇所を特定する際に、スロットル開度を強制的に変化させて、スロットル開度センサと吸気管圧力センサと吸入空気量センサのそれぞれの出力が前記スロットル開度の変化に追従して変化しているか否かでスロットル開度センサと吸気管圧力センサと吸入空気量センサのうちのいずれが異常であるか特定するものである。これにより、通常の運転中に走行性能や排気浄化性能を悪化させることなく、吸気システムの異常箇所を精度良く特定することができる。また、走行性能や排気浄化性能を悪化させることなく、吸気システムの異常の有無を診断することができる。
【００２２】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１乃至図９に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ等の吸入空気量検出センサ１４が設けられている。このエアフローメータ１４の下流側には、スロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００２３】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７に、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００２４】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を低減させる三元触媒等の上流側触媒２３と下流側触媒２４が設けられ、上流側触媒２３の上流側と下流側触媒２４の下流側に、それぞれ排出ガスの空燃比又はリーン／リッチ等を検出する排出ガスセンサ２５，２６（空燃比センサ、酸素センサ等）が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２７や、エンジン回転速度を検出するクランク角センサ２８が取り付けられている。
【００２５】
これら各種センサの出力は、エンジン制御装置２９に入力される。このエンジン制御装置２９は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種の制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御する。
【００２６】
その際、エンジン制御装置２９は、ＲＯＭに記憶された空燃比フィードバック（以下「空燃比Ｆ／Ｂ」と表記する）制御プログラムを実行することで、上流側の排出ガスセンサ２５の出力に基づいて上流側触媒２３の上流側の排出ガスの空燃比を目標空燃比に一致させるように空燃比（燃料噴射量）を補正すると共に、下流側の排出ガスセンサ２６の出力に基づいて触媒２３，２４の排出ガス浄化率を高めるように前記目標空燃比を補正する。
【００２７】
また、エンジン制御装置２９は、ＲＯＭに記憶された図２乃至図７の異常診断用の各プログラムを実行することで、触媒２３，２４と排出ガスセンサ２５，２６とを含む排気システムの異常診断を次のようにして実行する。
【００２８】
通常は、通常診断モードに設定され、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、エンジン制御装置２９が排気システム全体としての異常の有無を診断し、その結果、異常有りと判定した場合には、警告ランプ３０を点灯させて運転者に警告する。
【００２９】
運転者は、この警告ランプ３０の点灯を見て異常発生を知ると、それを修理するために、車両をディーラー等の整備工場に持ち込む。整備工場では、持ち込まれた車両のエンジン制御装置２９に異常診断用のツール（図示せず）を接続して診断モード切換信号を入力すると、診断モードが異常箇所特定モードに切り換えられる。この異常箇所特定モードでは、走行性能や排気浄化性能よりも異常箇所の特定を優先し、異常箇所を特定しやすい運転条件でエンジン１１を運転しながら、エンジン制御装置２９が所定の異常箇所特定処理を行って触媒２３，２４と排出ガスセンサ２５，２６の中から異常箇所を特定する。
【００３０】
尚、診断モード切換信号をエンジン制御装置２９に入力する手段は、異常診断用ツールに限定されず、例えば、診断モード切換用の隠しスイッチ等を車両に搭載したり、車両に搭載された他の用途のスイッチ類を特殊操作することで、診断モード切換信号をエンジン制御装置２９に入力するようにしても良い。
以下、エンジン制御装置２９が実行する図２乃至図７の異常診断用の各プログラムの処理内容を説明する。
【００３１】
［異常診断］
図２に示す異常診断プログラムは、イグニッションスイッチのオン後に所定周期で実行され、まず、ステップ１０１で、通常診断モードか否かを、異常箇所特定モードフラグＤＭＦが「０」か否かによって判定する。
【００３２】
この異常箇所特定モードフラグＤＭＦは、通常は異常箇所特定モードではない（つまり通常診断モードである）ことを意味する「０」にリセットされた状態に維持されている。そして、整備工場に備えられた異常診断用ツール等により診断モード切換信号をエンジン制御装置２９に入力すると、異常箇所特定モードフラグＤＭＦが異常箇所特定モードであることを意味する「１」にセットされる。この異常箇所特定モードフラグＤＭＦは、エンジン制御装置２９のバックアップＲＡＭ（図示せず）に記憶され、エンジン停止中も異常箇所特定モードフラグＤＭＦのデータが保持される。
【００３３】
ステップ１０１で、通常診断モードと判定された場合には、ステップ１０２に進み、後述する図３の排気システム異常診断プログラムを実行して、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、排気システム全体としての異常の有無を診断し、排気システムの異常有りと判定されたときに、排気システム異常フラグＸＥＸを「１」にセットする。
【００３４】
一方、異常診断用ツール等により診断モード切換信号がエンジン制御装置２９に入力されて、異常箇所特定モードフラグＤＭＦが「１」にセットされると、ステップ１０１で、異常箇所特定モードと判定されて、ステップ１０３に進み、排気システムの異常箇所特定モードが選択されているか否かを、エンジン制御装置２９のバックアップＲＡＭに記憶されている排気システム異常フラグＸＥＸが「１」か否かによって判定する。尚、排気システムの異常箇所特定モードについても、異常診断用ツール等により切り換えるようにしても良い。
【００３５】
ステップ１０３で、排気システムの異常箇所特定モードが選択されていると判定された場合には、ステップ１０４に進み、後述する図４乃至図７の排気システム異常箇所特定用の各プログラムを実行して、走行性能や排気浄化性能よりも異常箇所の特定を優先した運転条件でエンジン１１を運転しながら、所定の箇所特定処理を実行して触媒２３，２４と排出ガスセンサ２５，２６の中から異常箇所を特定する。
尚、ステップ１０１の処理が特許請求の範囲でいう診断モード切換手段としての役割を果たす。
【００３６】
［排気システム異常診断］
図３に示す排気システム異常診断プログラム（図２のステップ１０２）は、触媒２３，２４のリッチ／リーン成分吸着量が飽和吸着量を越えないように空燃比のリッチ／リーンを制御することで、排気浄化性能や走行性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、上流側排出ガスセンサ２５の出力変化と下流側排出ガスセンサ２６の出力変化との位相差ＣＭを検出し、この位相差ＣＭの平均値ＴＣＭ／ＣＮが所定値βよりも小さいか否かによって排気システム全体としての異常の有無を判定するプログラムである。
【００３７】
本プログラムは、診断モードが通常診断モードに設定されているときに所定周期で実行され、特許請求の範囲でいうシステム異常診断手段としての役割を果たす。本プログラムが起動されると、まず、ステップ２０１で、異常診断実行条件が成立しているか否かを判定する。ここで、異常診断実行条件は、例えば、触媒２３，２４と排出ガスセンサ２５，２６が全て活性状態（暖機状態）であること、定常運転状態であること、空燃比フィードバック制御中であること等である。これらの条件を全て満たせば、異常診断実行条件が成立するが、いずれか１つでも満たさない条件があれば、異常診断実行条件が不成立となる。
【００３８】
もし、異常診断実行条件が不成立であれば、ステップ２１０に進み、初期化処理を実行して、後述する位相差積算値ＴＣＭ、積算回数カウンタＣＮ、位相差検出時間ＣＣを全て「０」にリセットして、本プログラムを終了する。
【００３９】
一方、ステップ２０１で、異常診断実行条件が成立していると判定された場合には、排気システムの異常診断処理（ステップ２０２〜２０８）を次のようにして実行する。まず、ステップ２０２で、上流側排出ガスセンサ２５の出力変化と下流側排出ガスセンサ２６の出力変化との位相差ＣＭを、上流側排出ガスセンサ２５の出力がリッチからリーンに反転してから下流側排出ガスセンサ２６の出力がリッチからリーンに反転するまでの遅れ時間として検出する。
【００４０】
この後、ステップ２０３に進み、前回までの位相差積算値ＴＣＭに今回の位相差ＣＭを加算して位相差積算値ＴＣＭを更新した後、ステップ２０４に進み、積算回数カウンタＣＮのカウント値を「１」だけカウントアップする。
【００４１】
この後、ステップ２０５に進み、位相差ＣＭの検出を開始してからの経過時間である位相差検出時間ＣＣが所定値α以上になったか否かを判定する。位相差検出時間ＣＣが所定値αに達していなければ、所定値α以上になるまで、上流側排出ガスセンサ２５の出力変化と下流側排出ガスセンサ２６の出力変化との位相差ＣＭを検出して、位相差積算値ＴＣＭを算出すると共に、積算回数カウンタＣＮをカウントアップする処理（ステップ２０２〜２０４）を繰り返す。
【００４２】
その後、ステップ２０５で、位相差検出時間ＣＣが所定値α以上と判定された時点で、ステップ２０６に進み、位相差積算値ＴＣＭを積算回数カウンタＣＮで割り算して求めた平均位相差ＴＣＭ／ＣＮが所定の異常判定値βよりも小さいか否かを判定する。
【００４３】
このステップ２０６で、平均位相差ＴＣＭ／ＣＮが異常判定値βよりも小さいと判定された場合には、ステップ２０７に進み、排気システムの異常有りと判定して、排気システム異常フラグＸＥＸを「１」にセットしてエンジン制御装置２９のバックアップＲＡＭに記憶すると共に、次のステップ２０８で、警告ランプ３０を点灯して運転者に警告する。そして、初期化処理（ステップ２１０）を実行して、本プログラムを終了する。
【００４４】
これに対して、ステップ２０６で、平均位相差ＴＣＭ／ＣＮが異常判定値β以上と判定された場合には、ステップ２０９に進み、排気システムの異常無し（正常）と判定して、排気システム異常フラグＸＥＸを「０」に維持（又はリセット）すると共に、初期化処理（ステップ２１０）を実行して、本プログラムを終了する。
【００４５】
尚、異常診断実行中は、空燃比フィードバック制御が継続されるため、触媒２３，２４の状態がストイキ付近となるように空燃比が制御され、触媒２３，２４のリッチ／リーン成分吸着量が飽和吸着量を越えないように制御される。
【００４６】
［排気システム異常箇所特定］
次に、図４に示す排気システム異常箇所特定プログラム（図２のステップ１０４）によって実行する排気システムの異常箇所特定処理について説明する。図８のタイムチャートに示すように、診断モードが通常診断モードから異常箇所特定モードに切り換えられると、排気システムの異常箇所を特定するために、空燃比Ｆ／Ｂ制御を停止し、空燃比を理論空燃比よりもリッチ側に制御するリッチ制御と、空燃比を理論空燃比よりもリーン側に制御するリーン制御とを一定周期で交互に繰り返す。
【００４７】
その際、リッチ制御では、触媒２３，２４のリッチ成分吸着量が速やかに飽和状態となるように空燃比をリッチ側に制御し、リーン制御では、触媒２３，２４のリーン成分吸着量が速やかに飽和状態となるように空燃比をリーン側に制御する。これにより、触媒２３，２４の上流側の排出ガスの空燃比の変化が、触媒２３，２４の劣化度合の影響をあまり受けずに、触媒２３，２４の下流側の空燃比の変化として応答良く現れるようにする。このようにして触媒２３，２４の影響を排除又は低減した状態で、上流側排出ガスセンサ２５の出力と下流側排出ガスセンサ２６の出力とに基づいて上流側排出ガスセンサ２５と下流側排出ガスセンサ２６の異常の有無を判定して、排気システムの異常箇所を特定する。
【００４８】
図４の排気システム異常箇所特定プログラムは、図３の排気システム異常診断プログラムで排気システムに異常有りと診断され、且つ、診断モードが異常箇所特定モードに切り換えられているときに所定周期で実行され、特許請求の範囲でいう異常箇所特定手段としての役割を果たす。本プログラムが起動されると、まず、ステップ３０１で、空燃比Ｆ／Ｂ制御を停止した後、ステップ３０２〜３１１の処理を実行して、次のようにして所定時間Ｔ１が経過する毎にリッチ制御とリーン制御とを交互に切り換える。
【００４９】
まず、ステップ３０２で、リッチ制御中か否かを、リッチ制御中フラグＸＲＩＣＨが「１」にセットされているか否かによって判定する。リッチ制御中は、ステップ３０２からステップ３０３に進み、経過時間カウンタＣtimeの値（リッチ制御時間）が所定時間Ｔ１未満であるか否かを判定し、経過時間カウンタＣtimeの値が所定時間Ｔ１に達するまで、ステップ３０４〜３０６の処理、つまり、燃料噴射量を増量補正して、経過時間カウンタＣtimeのカウント値を「１」ずつカウントアップすると共に、リッチ制御中フラグＸＲＩＣＨを「１」に維持する処理を繰り返す。尚、ステップ３０４の処理における燃料噴射量の増量補正量は、通常診断モードにおける排気システム異常診断時の燃料噴射量の増量補正量よりも大きい値に設定される。
【００５０】
その後、ステップ３０３で、経過時間カウンタＣtimeの値（リッチ制御時間）が所定時間Ｔ１に達したと判定された時点で、ステップ３０７に進み、リッチ制御回数カウンタＣrichのカウント値を「１」だけカウントアップした後、ステップ３０９に進み、燃料噴射量を減量補正してリーン制御に移行する。尚、リッチ制御からリーン制御に移行したときに、経過時間カウンタＣtimeが「０」にリセットされる。
【００５１】
リーン制御中は、ステップ３０２からステップ３０８に進み、経過時間カウンタＣtimeの値（リーン制御時間）が所定時間Ｔ１未満であるか否かを判定し、経過時間カウンタＣtimeの値が所定時間Ｔ１に達するまで、ステップ３０９〜３１１の処理、つまり、燃料噴射量を減量補正して、経過時間カウンタＣtimeのカウント値を「１」ずつカウントアップすると共に、リッチ制御中フラグＸＲＩＣＨを「０」に維持する処理を繰り返す。尚、ステップ３０９の処理における燃料噴射量の減量補正量は、通常診断モードにおける排気システム異常診断時の燃料噴射量の減量補正量よりも大きい値に設定される。
【００５２】
その後、ステップ３０８で、経過時間カウンタＣtimeの値（リーン制御時間）が所定時間Ｔ１に達したと判定された時点で、ステップ３０４に進み、前述したリッチ制御に移行する。尚、リーン制御からリッチ制御に移行したときに、経過時間カウンタＣtimeが「０」にリセットされる。
【００５３】
ステップ３０６又は３１１からステップ３１２に進み、後述する図５の上流側排出ガスセンサ応答時間積算値算出プログラムを実行して、上流側排出ガスセンサ２５の応答時間積算値ＴＣＦrespを算出した後、ステップ３１３に進み、後述する図６の下流側排出ガスセンサ応答時間積算値算出プログラムを実行して、下流側排出ガスセンサ２６の応答時間積算値ＴＣＲrespを算出する。
【００５４】
この後、ステップ３１４に進み、後述する図７の異常箇所判定プログラムを実行して、上流側排出ガスセンサ２５の平均応答時間Ｆtimeと下流側排出ガスセンサ２６の平均応答時間Ｒtimeを算出し、これら平均応答時間Ｆtime，Ｒtimeに基づいて上流側排出ガスセンサ２５と下流側排出ガスセンサ２６の異常の有無を判定して、排気システムの異常箇所を特定する。
【００５５】
［上流側排出ガスセンサ応答時間積算値算出］
図５に示す上流側排出ガスセンサ応答時間積算値算出プログラム（図４のステップ３１２）は、図９のタイムチャートに示すように、リッチ制御からリーン制御に切り換えられた時点から上流側排出ガスセンサ２５の出力がリーン側に変化するまでのリーン応答時間ＣＦLeanと、リーン制御からリッチ制御に切り換えられた時点から上流側排出ガスセンサ２５の出力がリッチ側に変化するまでのリッチ応答時間ＣＦRichとを積算して、上流側排出ガスセンサ２５の応答時間積算値ＴＣＦrespを算出すると共に、その積算回数ＣＣＦをカウントするプログラムである。
【００５６】
本プログラムが起動されると、まず、ステップ４０１で、リッチ制御中フラグＸＲＩＣＨ(i) が「０」であるか否かによって、リーン制御中であるか否かを判定する。リーン制御中と判定された場合には、ステップ４０２に進み、前回がリッチ制御で今回がリーン制御であるか否か、つまり、リッチ制御からリーン制御に切り換えられたタイミングであるか否かを判定し、リッチ制御からリーン制御に切り換えられたタイミングで、ステップ４０３に進み、応答時間算出フラグＸＲＥＳＰＦを応答時間算出中を意味する「１」にセットする。
【００５７】
この後、ステップ４０４に進み、応答時間算出フラグＸＲＥＳＰＦ＝１（応答時間算出中）であるか否かを判定し、応答時間算出フラグＸＲＥＳＰＦ＝１であれば、ステップ４０５に進み、上流側排出ガスセンサ２５の出力がリーン判定値Ａよりも小さくなったか否かを判定する。このリーン判定値Ａは、リッチ制御からリーン制御への切り換えに伴って上流側排出ガスセンサ２５の出力がリーン側に変化したと判断できる値に設定される（上流側排出ガスセンサ２５が酸素センサである場合は、リーン判定値Ａは最低電圧である０Ｖよりも少し大きい値に設定される）。
【００５８】
このステップ４０５で、上流側排出ガスセンサ２５の出力がリーン判定値Ａよりも小さくなったと判定されたときに、その時点の経過時間カウンタＣtimeのカウント値を読み込んで上流側排出ガスセンサ２５のリーン応答時間ＣＦLeanとする。この後、ステップ４０６に進み、前回までの応答時間積算値ＴＣＦresp(i-1) に今回のリーン応答時間ＣＦLeanを加算して応答時間積算値ＴＣＦresp(i) を更新すると共に、積算回数カウンタＣＣＦのカウント値を「１」だけカウントアップした後、ステップ４０７に進み、応答時間算出フラグＸＲＥＳＰＦを「０」にリセットして、本プログラムを終了する。
【００５９】
一方、上記ステップ４０１で、リッチ制御中と判定された場合には、ステップ４０８に進み、前回がリーン制御で今回がリッチ制御であるか否か、つまり、リーン制御からリッチ制御に切り換えられたタイミングであるか否かを判定し、リーン制御からリッチ制御に切り換えられたタイミングで、ステップ４０９に進み、応答時間算出フラグＸＲＥＳＰＦを応答時間算出中を意味する「１」にセットする。
【００６０】
この後、ステップ４１０に進み、応答時間算出フラグＸＲＥＳＰＦ＝１（応答時間算出中）であるか否かを判定し、応答時間算出フラグＸＲＥＳＰＦ＝１であれば、ステップ４１１に進み、上流側排出ガスセンサ２５の出力がリッチ判定値Ｂを越えたか否かを判定する。このリッチ判定値Ｂは、リーン制御からリッチ制御への切り換えに伴って上流側排出ガスセンサ２５の出力がリッチ側に変化したと判断できる値に設定されている（上流側排出ガスセンサ２５が酸素センサである場合には、リッチ判定値Ｂは最大電圧である１Ｖよりも少し小さい値に設定される）。
【００６１】
このステップ４１１で、上流側排出ガスセンサ２５の出力がリッチ判定値Ｂを越えたと判定されたときに、その時点の経過時間カウンタＣtimeのカウント値を読み込んで上流側排出ガスセンサ２５のリッチ応答時間ＣＦRichとする。この後、ステップ４１２に進み、前回までの応答時間積算値ＴＣＦresp(i-1) に今回のリッチ応答時間ＣＦRichを加算して応答時間積算値ＴＣＦresp(i) を更新すると共に、積算回数カウンタＣＣＦのカウント値を「１」だけカウントアップした後、ステップ４１３に進み、応答時間算出フラグＸＲＥＳＰＦを「０」にリセットして、本プログラムを終了する。
【００６２】
［下流側排出ガスセンサ応答時間積算値算出］
図６に示す下流側排出ガスセンサ応答時間積算値算出プログラム（図４のステップ３１３）は、図９のタイムチャートに示すように、下流側排出ガスセンサ２６の出力がリーンからリッチに反転した時点から再びリーンに反転するまでのリッチ区間時間ＣＲRichと、下流側排出ガスセンサ２６の出力がリッチからリーンに反転した時点から再びリッチに反転するまでのリーン区間時間ＣＲLeanとを積算して下流側排出ガスセンサ２６の応答時間積算値ＴＣＲrespを算出すると共に、その積算回数ＣＣＲをカウントするプログラムである。
【００６３】
本プログラムが起動されると、まず、ステップ５０１で、下流側排出ガスセンサ２６の出力がリッチからリーンに反転したか否かを、下流側排出ガスセンサ２６の出力がリッチ／リーン反転判定値を越えたか否かによって判定する。このリッチ／リーン反転判定値は、下流側排出ガスセンサ２６の理論空燃比に相当する出力電圧に設定される（下流側排出ガスセンサ２６が酸素センサである場合には、リッチ／リーン反転判定値は０．５Ｖ付近の値に設定される）。
【００６４】
下流側排出ガスセンサ２６の出力がリッチからリーンに反転したと判定された時点で、ステップ５０２に進み、下流側排出ガスセンサ２６の出力がリーンからリッチに反転してから再びリーンに反転するまでの下流側排出ガスセンサ２６のリッチ区間時間ＣＲRich（図９参照）を読み込む。その後、ステップ５０３に進み、前回までの応答時間積算値ＴＣＲresp(i-1) に今回のリッチ区間時間ＣＲRichを加算して応答時間積算値ＴＣＲresp(i) を更新すると共に、積算回数カウンタＣＣＲのカウント値を「１」だけカウントアップして、本プログラムを終了する。
【００６５】
一方、上記ステップ５０１で、「Ｎｏ」と判定された場合には、ステップ５０４に進み、下流側排出ガスセンサ２６の出力がリーンからリッチに反転したか否かを、下流側排出ガスセンサ２６の出力がリッチ／リーン反転判定値以下になったか否かによって判定する。
【００６６】
下流側排出ガスセンサ２６の出力がリーンからリッチに反転したと判定された時点で、ステップ５０５に進み、下流側排出ガスセンサ２６の出力がリッチからリーンに反転してから再びリッチに反転するまでの下流側排出ガスセンサ２６のリーン区間時間ＣＲLean（図９参照）を読み込む。その後、ステップ５０６に進み、前回までの応答時間積算値ＴＣＲresp(i-1) に今回のリーン区間時間ＣＲLeanを加算して応答時間積算値ＴＣＲresp(i) を更新すると共に、積算回数カウンタＣＣＲのカウント値を「１」だけカウントアップして、本プログラムを終了する。
【００６７】
［異常箇所判定］
図７に示す異常箇所判定プログラム（図４のステップ３１４）は、上流側排出ガスセンサ２５の平均応答時間Ｆtimeと下流側排出ガスセンサ２６の平均応答時間Ｒtimeを算出し、上流側排出ガスセンサ２５の平均応答時間Ｆtimeに基づいて上流側排出ガスセンサ２５の異常の有無を判定すると共に、下流側排出ガスセンサ２６の平均応答時間Ｒtimeに基づいて下流側排出ガスセンサ２６の異常の有無を判定して、排気システムの異常箇所を特定するプログラムである。本プログラムは、特許請求の範囲でいう異常箇所判定手段としての役割を果たす。
【００６８】
本プログラムが起動されると、まず、ステップ６０１で、リッチ制御回数カウンタＣrichが所定値Ｃよりも大きいか否かを判定し、リッチ制御回数カウンタＣrichが所定値Ｃよりも大きくなった時点で、ステップ６０２に進み、上流側排出ガスセンサ２５の応答時間積算値ＴＣＦrespを積算回数ＣＣＦで除算して上流側排出ガスセンサ２５の平均応答時間Ｆtimeを算出する。
Ｆtime＝ＴＣＦresp／ＣＣＦ
【００６９】
この後、ステップ６０３に進み、下流側排出ガスセンサ２６の応答時間積算値ＴＣＲrespを積算回数ＣＣＲで割り算して下流側排出ガスセンサ２６の平均応答時間Ｒtimeを算出する。
Ｒtime＝ＴＣＲresp／ＣＣＲ
【００７０】
この後、ステップ６０４に進み、上流側排出ガスセンサ２５の平均応答時間Ｆtimeが異常判定値αよりも短いか否かを判定する。もし、上流側排出ガスセンサ２５の平均応答時間Ｆtimeが異常判定値α以上であれば、上流側排出ガスセンサ２５の応答性が低下していると判断して、ステップ６０５に進み、上流側排出ガスセンサ２５の異常と判定して、本プログラムを終了する。
【００７１】
一方、ステップ６０４で、上流側排出ガスセンサ２５の平均応答時間Ｆtimeが異常判定値αよりも短いと判定された場合には、上流側排出ガスセンサ２５が正常と判断して、ステップ６０６に進み、下流側排出ガスセンサ２６の平均応答時間Ｒtimeが異常判定値βよりも長いか否かを判定する。もし、下流側排出ガスセンサ２６の平均応答時間Ｒtimeが異常判定値β以下であれば、下流側排出ガスセンサ２６の反転周期が速すぎると判断して、ステップ６０７に進み、下流側排出ガスセンサ２６の異常と判定して、本プログラムを終了する。
【００７２】
また、ステップ６０６で、下流側排出ガスセンサ２６の平均応答時間Ｒtimeが異常判定値βよりも長いと判定された場合には、上流側排出ガスセンサ２５と下流側排出ガスセンサ２６が両方とも正常と判断して、ステップ６０８に進み、触媒２３，２４の異常と判定して、本プログラムを終了する。
【００７３】
一般に、上流側排出ガスセンサ２５と下流側排出ガスセンサ２６が両方とも同時に異常になる確率は極めて低いため、図７の異常箇所判定プログラムでは、上流側排出ガスセンサ２５の異常と判定した場合には、下流側排出ガスセンサ２６の異常の有無を判定することなく、異常箇所判定プログラムを終了するようにしたが、常に、上流側排出ガスセンサ２５と下流側排出ガスセンサ２６の両方について異常の有無を判定するようにしても良いことは言うまでもない。
【００７４】
以上説明した本実施形態（１）によれば、通常は、診断モードを通常診断モードに設定して、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、排気システム全体としての異常の有無を診断し、その結果、異常有りと判定した場合には、警告ランプ３０を点灯させて運転者に警告する。その後、この車両が整備工場に持ち込まれたときに、診断モードを異常箇所特定モードに切り換えて、走行性能や排気浄化性能よりも異常箇所の特定を優先した運転条件でエンジン１１を運転しながら、異常箇所特定処理を行って触媒２３，２４と排出ガスセンサ２５，２６の中から異常箇所を特定する。これにより、通常の運転中に異常有りと診断された排気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定することができ、通常の運転中の走行性能や排気浄化性能を悪化させることなく、整備工場等で、部品の取り替えを行わずに、排気システムの異常箇所を精度良く且つ簡単に特定することができる。
【００７５】
しかも、本実施形態（１）では、エンジン制御装置２９の自己診断機能に、排気システムの異常診断から異常箇所特定までの一連の診断処理を行う機能を持たせるようにしたので、整備工場等で、エンジン制御装置２９に診断モード切換信号を入力するだけで、エンジン制御装置２９によって排気システムの異常箇所を特定することができ、排気システムの異常診断から異常箇所特定までの一連の診断処理をオンボードで行うことができる。
【００７６】
しかしながら、本発明は、エンジン制御装置２９の自己診断機能に、排気システムの異常診断の機能のみを追加し、異常箇所特定の機能は、オフボード診断装置に組み込んで、整備工場等で、このオフボード診断装置をエンジン制御装置２９に接続して排気システムの異常箇所の特定を行うようにしても良い。
【００７７】
《実施形態（２）》
上記実施形態（１）では、排気システムの異常診断を行うようにしたが、図１０乃至図１４に示す本発明の実施形態（２）では、吸気システムの異常診断を行うようにしている。
【００７８】
本実施形態（２）では、エンジン制御装置２９は、ＲＯＭに記憶された図１０乃至図１４の異常診断用の各プログラムを実行することで、吸入空気量センサ１４とスロットル開度センサ１６と吸気管圧力センサ１８とを含む吸気システムの異常診断を次のようにして行う。
【００７９】
通常は、通常診断モードに設定され、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、エンジン制御装置２９が吸気システム全体としての異常の有無を診断し、その結果、異常有りと判定した場合には、警告ランプ３０を点灯させて運転者に警告する。
【００８０】
運転者は、この警告ランプ３０の点灯を見て異常発生を知ると、それを修理するために、車両をディーラー等の整備工場に持ち込む。整備工場では、持ち込まれた車両のエンジン制御装置２９に異常診断用ツール等により診断モード切換信号を入力すると、診断モードが異常箇所特定モードに切り換えられる。この異常箇所特定モードでは、走行性能や排気浄化性能よりも異常箇所の特定を優先し、異常箇所を特定しやすい運転条件で、エンジン１１を運転しながら、エンジン制御装置２９が所定の異常箇所特定処理を行って吸入空気量センサ１４とスロットル開度センサ１６と吸気管圧力センサ１８との中から異常箇所を特定する。
【００８１】
［異常診断］
図１０に示す異常診断プログラムは、イグニッションスイッチのオン後に所定周期で実行され、まず、ステップ７０１で、通常診断モードか否かを、異常箇所特定モードフラグＤＭＦが「０」か否かによって判定する。その結果、通常診断モードと判定された場合には、ステップ７０２に進み、後述する図１１の吸気システム異常診断プログラムを実行して、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、吸気システム全体としての異常の有無を診断し、吸気システムの異常有りと判定されたときに、吸気システム異常フラグＸＩＮを「１」にセットする。
【００８２】
一方、異常診断用ツール等により診断モード切換信号がエンジン制御装置２９に入力されて、異常箇所特定モードフラグＤＭＦが「１」にセットされると、ステップ７０１で、異常箇所特定モードと判定されて、ステップ７０３に進み、吸気システムの異常箇所特定モードが選択されているか否かを、エンジン制御装置２９のバックアップＲＡＭに記憶されている吸気システム異常フラグＸＩＮが「１」か否かによって判定する。尚、吸気システムの異常箇所特定モードについても、異常診断用ツール等により切り換えるようにしても良い。
【００８３】
ステップ７０３で、吸気システムの異常箇所特定モードが選択されていると判定された場合には、ステップ７０４に進み、後述する図１２乃至１４の吸気システム異常箇所特定用の各プログラムを実行して、走行性能や排気浄化性能よりも異常箇所の特定を優先した運転条件でエンジン１１を運転しながら、所定の異常箇所特定処理を実行して吸入空気量センサ１４とスロットル開度センサ１６と吸気管圧力センサ１８の中から異常箇所を特定する。
【００８４】
［吸気システム異常診断］
図１１に示す吸気システム異常診断プログラム（図１０のステップ７０２）は、通常診断モードのときに所定周期で実行され、特許請求の範囲でいうシステム異常診断手段としての役割を果たす。本プログラムが起動されると、まず、ステップ８０１〜８０３で、第１の異常診断実行条件が成立しているか否かを判定する。ここで、第１の異常診断実行条件は、例えば、次の▲１▼〜▲３▼の条件を全て満たすことである。
【００８５】
▲１▼クランク角センサ２８で検出したエンジン回転速度ＮＥが所定値ｋＮＥ１よりも高いこと（ステップ８０１）
▲２▼スロットル開度センサ１６で検出したスロットル開度ＴＨが所定値ｋＴＨ１よりも大きいこと（ステップ８０２）
▲３▼吸気管圧力センサ１８で検出した吸気管圧力ＰＭが所定値ｋＰＭ１よりも高いこと（ステップ８０３）
これら▲１▼〜▲３▼の条件は、走行性能、排気浄化性能等に悪影響を及ぼさない範囲で、吸入空気量ＡＭが多くなる運転条件である。
【００８６】
上記▲１▼〜▲３▼の条件を全て満たせば、第１の異常診断実行条件が成立するが、上記▲１▼〜▲３▼の条件のうち１つでも満たさない条件があれば、第１の異常診断実行条件が不成立となる。
【００８７】
第１の異常診断実行条件が成立した場合には、ステップ８０４に進み、吸入空気量センサ１４で検出した吸入空気量ＡＭが判定値ｋＡＭ１よりも少ないか否かを判定する。
【００８８】
このステップ８０４で、第１の異常診断実行条件（吸入空気量ＡＭが多くなる運転条件）が成立しているにも拘らず、吸入空気量センサ１４で検出した吸入空気量ＡＭが異常判定値ｋＡＭ１よりも少ないと判定された場合には、ステップ８０５に進み、吸気システムの異常有りと判定して、吸気システム異常フラグＸＩＮを「１」にセットすると共に、警告ランプ３０を点灯して運転者に警告し（ステップ８１２）、本プログラムを終了する。
【００８９】
これに対して、ステップ８０４で、吸入空気量ＡＭが判定値ｋＡＭ１以上と判定された場合には、ステップ８０６に進み、吸気システムの異常無し（正常）と判定して、吸気システム異常フラグＸＩＮを「０」にリセットして、本プログラムを終了する。
【００９０】
一方、上記ステップ８０１〜８０３で、第１の異常診断実行条件が不成立と判定された場合は、次のステップ８０７〜８０９で、第２の異常診断実行条件が成立しているか否かを判定する。ここで、第２の異常診断実行条件は、例えば、次の▲１▼〜▲３▼の条件を全て満たすことである。
【００９１】
▲１▼クランク角センサ２８で検出したエンジン回転速度ＮＥが所定値ｋＮＥ２よりも低いこと（ステップ８０７）
▲２▼スロットル開度センサ１６で検出したスロットル開度ＴＨが所定値ｋＴＨ２よりも小さいこと（ステップ８０８）
▲３▼吸気管圧力センサ１８で検出した吸気管圧力ＰＭが所定値ｋＰＭ２よりも低いこと（ステップ８０９）
これら▲１▼〜▲３▼の条件は、走行性能、排気浄化性能等に悪影響を及ぼさない範囲で、吸入空気量ＡＭが少なくなる運転条件である。
【００９２】
上記▲１▼〜▲３▼の条件を全て満たせば、第２の異常診断実行条件が成立するが、上記▲１▼〜▲３▼の条件のうち１つでも満たさない条件があれば、第２の異常診断実行条件が不成立となる。
【００９３】
第２の異常診断実行条件が成立した場合には、ステップ８１０に進み、吸入空気量センサ１４で検出した吸入空気量ＡＭが判定値ｋＡＭ２よりも多いか否かを判定する。
【００９４】
このステップ８１０で、第２の異常診断実行条件（吸入空気量ＡＭが少なくなる運転条件）が成立しているにも拘らず、吸入空気量ＡＭが異常判定値ｋＡＭ２以上と判定された場合には、ステップ８０５に進み、吸気システムの異常有りと判定して、吸気システム異常フラグＸＩＮを「１」にセットすると共に、警告ランプ３０を点灯して運転者に警告し（ステップ８１２）、本プログラムを終了する。
【００９５】
これに対して、ステップ８１０で、吸入空気量ＡＭが異常判定値ｋＡＭ２よりも少ないと判定された場合には、ステップ８１１に進み、吸気システムの異常無し（正常）と判定して、吸気システム異常フラグＸＩＮを「０」にリセットして、本プログラムを終了する。
【００９６】
［吸気システム異常箇所特定］
次に、図１２に示す吸気システム異常箇所特定プログラム（図１０のステップ７０４）で実行する吸気システムの異常箇所特定処理について説明する。診断モードが通常診断モードから異常箇所特定モードに切り換えられると、吸気システムの異常箇所を特定するために、目標スロットル開度を強制的にアイドルスロットル開度から所定開度ずつ増加させ、そのときのエンジン回転速度ＮＥ−吸気管圧力ＰＭの変化特性（以下「ＮＥ−ＰＭ特性」と表記する）と、エンジン回転速度ＮＥ−吸入空気量ＡＭの変化特性（以下「ＮＥ−ＡＭ特性」と表記する）と、エンジン回転速度ＮＥ−スロットル開度ＴＨの変化特性（以下「ＮＥ−ＴＨ特性」と表記する）に基づいて、吸気管圧力センサ１８、吸入空気量センサ１４、スロットル開度センサ１６の異常の有無を判定して、吸気システムの異常箇所を特定する。
【００９７】
図１２に示す吸気システム異常箇所特定プログラムは、図１１の吸気システム異常診断プログラムで吸気システムに異常有りと診断され、且つ、診断モードが異常箇所特定モードに切り換えられているときに所定周期で実行される。本プログラムが起動されると、まず、ステップ９０１で、異常箇所判定が未終了であるか否かを、異常箇所判定終了フラグＸＤＬＭＥＮＤが「０」にリセットされているか否かによって判定する。もし、異常箇所判定が既に終了していれば、そのまま本プログラムを終了する。
【００９８】
一方、異常箇所判定が未終了と判定された場合には、次のステップ９０２、９０３で、異常箇所判定実行条件が成立しているか否かを判定する。ここで、異常箇所判定実行条件は、例えば、次の▲１▼と▲２▼の条件を両方とも満たすことである。
【００９９】
▲１▼冷却水温が所定温度（例えば８０℃）以上であること（ステップ９０２）
▲２▼シフトレバーがニュートラルにシフトされていること（ステップ９０３）
上記▲１▼と▲２▼の条件のうち一方でも満たさない条件があれば、異常箇所判定実行条件が不成立となり、そのまま本プログラムを終了する。
【０１００】
一方、上記▲１▼と▲２▼の条件を両方とも満たした場合には、異常箇所判定実行条件が成立して、ステップ９０４に進み、後述するステップ９１０で徐々に増加されるスロットル開度増加量ＣＴＨが上限値（例えば６０ｄｅｇ）よりも小さいか否かを判定する。このスロットル開度増加量ＣＴＨの初期値は「０」に設定されている。
【０１０１】
もし、スロットル開度増加量ＣＴＨが上限値（例えば６０ｄｅｇ）よりも小さければ、ステップ９０５に進み、現在のアイドルスロットル開度にスロットル開度増加量ＣＨＴを加算して目標スロットル開度を更新した後、ステップ９０６に進み、目標スロットル開度の更新後の経過時間を計測する経過時間カウンタＣtimeのカウント値を「１」だけカウントアップする。
【０１０２】
この後、ステップ９０７に進み、経過時間カウンタＣtimeが所定時間（例えば５ｓｅｃ）を越えた否かを判定し、経過時間カウンタＣtimeが所定時間（例えば５ｓｅｃ）を越えたと判定された時点で、ステップ９０８に進み、クランク角センサ２８で検出したエンジン回転速度ＮＥと、吸気管圧力センサ１８で検出した吸気管圧力ＰＭと、吸入空気量センサ１４で検出した吸入空気量ＡＭと、スロットル開度センサ１６で検出したスロットル開度ＴＨをそれぞれエンジン制御装置２９のＲＡＭ（図示せず）に記憶する。
【０１０３】
この後、ステップ９０９に進み、経過時間カウンタＣtimeのカウント値を「０」にリセットした後、ステップ９１０に進み、スロットル開度増加量ＣＴＨを所定開度（例えば５ｄｅｇ）だけ大きくする。
【０１０４】
以上説明したステップ９０４〜９１０の処理を繰り返すことで、スロットル開度増加量ＣＴＨが上限値（例えば６０ｄｅｇ）に到達するまで、所定時間（例えば５ｓｅｃ）毎に目標スロットル開度を所定開度（例えば５ｄｅｇ）ずつ増加させ、その都度、エンジン回転速度ＮＥ、吸気管圧力ＰＭ、吸入空気量ＡＭ、スロットル開度ＴＨを検出してエンジン制御装置２９のＲＡＭに記憶するという処理を繰り返す。以下、このようにしてエンジン制御装置２９のＲＡＭに記憶されたデータを「診断データ」という。
【０１０５】
その後、ステップ９０４で、スロットル開度増加量ＣＴＨが上限値（例えば６０ｄｅｇ）に到達したと判定されたときに、ステップ９１１に進み、スロットル開度増加量ＣＴＨを「０」にリセットする。
【０１０６】
この後、９１２に進み、後述する図１３及び図１４の異常箇所判定プログラムを実行して、エンジン制御装置２９のＲＡＭに記憶されているエンジン回転速度ＮＥ、吸気管圧力ＰＭ、吸入空気量ＡＭ、スロットル開度ＴＨの各診断データに基づいてＮＥ−ＰＭ特性、ＮＥ−ＡＭ特性、ＮＥ−ＴＨ特性を算出し、これらＮＥ−ＰＭ特性、ＮＥ−ＡＭ特性、ＮＥ−ＴＨ特性に基づいて、吸気管圧力センサ１８、吸入空気量センサ１４、スロットル開度センサ１６の異常の有無を判定して、吸気システムの異常箇所を特定する。
【０１０７】
この後、ステップ９１３に進み、異常箇所判定終了フラグＸＤＬＭＥＮＤを異常箇所判定終了を意味する「１」にセットして、本プログラムを終了する。
尚、本プログラムは、ステップ９１２で実行される図１３及び図１４の異常箇所判定プログラムと共に、特許請求の範囲でいう異常箇所特定手段としての役割を果たす。
【０１０８】
［異常箇所判定］
図１２のステップ９１３で、図１３及び図１４に示す異常箇所判定プログラムが起動されると、まず、ステップ１００１で、エンジン制御装置２９のＲＡＭに記憶されているエンジン回転速度ＮＥと吸気管圧力ＰＭの診断データに基づいてＮＥ−ＰＭ特性線を作成し、その特性線の傾きＫ(NE-PM) を算出する。
【０１０９】
この後、ステップ１００２に進み、エンジン回転速度ＮＥと吸入空気量ＡＭの診断データに基づいてＮＥ−ＡＭ特性線を作成し、その特性線の傾きＫ(NE-AM) を算出する。
【０１１０】
この後、ステップ１００３に進み、エンジン回転速度ＮＥとスロットル開度ＴＨの診断データに基づいてＮＥ−ＴＨ特性線を作成し、その特性線の傾きＫ(NE-TH) を算出する。
【０１１１】
尚、ステップ１００１〜１００３で算出する各特性線の傾きＫは、特性線の所定の２点間の傾きを算出するようにしても良いが、特性線の複数箇所の傾きを算出し、その平均値としても良い。
【０１１２】
各特性線の傾きＫを算出した後、図１４のステップ１００４に進み、エンジン制御装置２９のＲＯＭに記憶されている標準傾きＫＫ(NE-PM) 、ＫＫ(NE-AM) 、ＫＫ(NE-TH) を読み込む。この標準傾きＫＫ(NE-PM) 、ＫＫ(NE-AM) 、ＫＫ(NE-TH) は、それぞれ特性線の傾きＫ(NE-PM) 、Ｋ(NE-AM) 、Ｋ(NE-TH) の標準値であり、予め正常に作動する標準的な吸気システムを用いて測定したＮＥ−ＰＭ特性線、ＮＥ−ＡＭ特性線、ＮＥ−ＴＨ特性線の傾き（ばらつき中央値）を標準傾きＫＫ(NE-PM) 、ＫＫ(NE-AM) 、ＫＫ(NE-TH) として設定している。
【０１１３】
この後、ステップ１００５に進み、ＮＥ−ＰＭ特性線の傾きＫ(NE-PM) と標準傾きＫＫ(NE-PM) との差の絶対値が異常判定値Ｋ１よりも大きいか否かを判定する。もし、ＮＥ−ＰＭ特性線の傾きＫ(NE-PM) と標準傾きＫＫ(NE-PM) との差の絶対値が異常判定値Ｋ１よりも大きければ、ステップ１００６に進み、吸気管圧力センサ１８の異常と判定して、本プログラムを終了する。
【０１１４】
一方、ステップ１００５で、ＮＥ−ＰＭ特性線の傾きＫ(NE-PM) と標準傾きＫＫ(NE-PM) との差の絶対値が異常判定値Ｋ１以下と判定された場合には、吸気管圧力センサ１８が正常と判断して、ステップ１００７に進み、ＮＥ−ＡＭ特性線の傾きＫ(NE-AM) と標準傾きＫＫ(NE-AM) との差の絶対値が異常判定値Ｋ２よりも大きいか否かを判定する。もし、ＮＥ−ＡＭ特性線の傾きＫ(NE-AM) と標準傾きＫＫ(NE-AM) との差の絶対値が異常判定値Ｋ２よりも大きければ、ステップ１００８に進み、吸入空気量センサ１４の異常と判定して、本プログラムを終了する。
【０１１５】
また、ステップ１００７で、ＮＥ−ＡＭ特性線の傾きＫ(NE-AM) と標準傾きＫＫ(NE-AM) との差の絶対値が異常判定値Ｋ２以下と判定された場合には、吸入空気量センサ１４が正常と判断して、ステップ１００９に進み、ＮＥ−ＴＨ特性線の傾きＫ(NE-TH) と標準傾きＫＫ(NE-TH) との差の絶対値が異常判定値Ｋ３よりも大きいか否かを判定する。もし、ＮＥ−ＴＨ特性線の傾きＫ(NE-TH) と標準傾きＫＫ(NE-TH) との差の絶対値が異常判定値Ｋ３よりも大きければ、ステップ１０１０に進み、スロットル開度センサ１６の異常と判定して、本プログラムを終了する。
【０１１６】
尚、ステップ１００９で、ＮＥ−ＴＨ特性線の傾きＫ(NE-TH) と標準傾きＫＫ(NE-TH) との差の絶対値が異常判定値Ｋ３以下と判定された場合には、スロットル開度センサ１６が正常と判断して、ステップ１０１１に進み、吸気管圧力センサ１８と吸入空気量センサ１４とスロットル開度センサ１６は、全て正常と判定して、本プログラムを終了する。
【０１１７】
一般に、吸気管圧力センサ１８と吸入空気量センサ１４とスロットル開度センサ１６のうちの２つ以上が同時に異常になる確率は極めて低いため、本プログラムでは、吸気管圧力センサ１８と吸入空気量センサ１４とスロットル開度センサ１６のうちの１つを異常と判定した時点で、プログラムを終了するようにしたが、常に、吸気管圧力センサ１８と吸入空気量センサ１４とスロットル開度センサ１６の全てについて異常の有無を判定するようにしても良い。
【０１１８】
以上説明した本実施形態（２）においても、通常は、診断モードを通常診断モードに設定して、走行性能や排気浄化性能に悪影響を及ぼさない範囲の運転条件でエンジン１１を運転しながら、吸気システム全体としての異常の有無を診断し、その結果、異常有りと判定した場合には、警告ランプ３０を点灯させて運転者に警告する。その後、この車両が整備工場に持ち込まれたときに、診断モードを異常箇所特定モードに切り換えて、異常箇所の特定を優先した運転条件でエンジン１１を運転しながら、異常箇所特定処理を行って、吸気管圧力センサ１８と吸入空気量センサ１４とスロットル開度センサ１６の中から異常箇所を特定する。これにより、通常の運転中に異常有りと診断された吸気システムの複数の診断対象箇所の中から実際に異常となっている箇所を特定することができ、通常の運転中の走行性能や排気浄化性能を悪化させることなく、整備工場等で、部品の取り替えを行わずに、オンボードで吸気システムの異常箇所を精度良く且つ簡単に特定することができる。
【０１１９】
尚、本実施形態（２）では、エンジン制御装置２９の自己診断機能に、吸気システムの異常診断から異常箇所特定までの一連の診断処理を行う機能を持たせるようにしたが、エンジン制御装置２９の自己診断機能に、吸気システムの異常診断の機能のみを追加し、異常箇所特定の機能は、オフボード診断装置に組み込んで、整備工場等で、このオフボード診断装置をエンジン制御装置２９に接続して吸気システムの異常箇所の特定を行うようにしても良い。
【０１２０】
更には、前記実施形態（１）の排気システムの異常診断と前記実施形態（２）の吸気システムの異常診断の両方を組み合わせて実施するようにしても良い。
また、エンジン制御装置２９とは別に異常診断専用のコンピュータを設け、この異常診断専用のコンピュータに前記異常診断用の各プログラムを実行させるようにしても良い。
【０１２１】
また、システムの異常箇所を特定する際に、当該システムの複数の診断対象箇所を１つずつ順番に診断すると共に、１つの箇所を診断する際に、他の箇所の影響を排除又は低減するような運転条件に設定するようにしても良い。このようにすれば、他の箇所の影響を排除又は低減しながら個々の診断対象箇所の異常の有無を精度良く診断することができ、異常箇所の特定精度を更に向上することができる。
【０１２２】
その他、本発明は、システムの異常診断方法や異常箇所特定方法を適宜変更したり、異常診断の対象となるシステムや部品を変更しても良い等、車両に搭載された種々のシステムの異常診断に広く適用して実施できる。
【０１２３】
例えば、エバポガスパージシステム（燃料蒸発ガス処理システム）の異常診断に本発明を適用する場合は、通常診断モードのときに、エバポガスパージシステムの異常診断をエンジン運転中に行っても良いが、エンジン停止中に行うようにしても良い。
【図面の簡単な説明】
【図１】本発明の実施形態（１）を示すエンジン制御システム全体の概略構成図
【図２】実施形態（１）の異常診断プログラムの処理の流れを示すフローチャート
【図３】実施形態（１）の排気システム異常診断プログラムの処理の流れを示すフローチャート
【図４】実施形態（１）の排気システム異常箇所特定プログラムの処理の流れを示すフローチャート
【図５】実施形態（１）の上流側排出ガスセンサ応答時間積算値算出プログラムの処理の流れを示すフローチャート
【図６】実施形態（１）の下流側排出ガスセンサ応答時間積算値算出プログラムの処理の流れを示すフローチャート
【図７】実施形態（１）の異常箇所判定プログラムの処理の流れを示すフローチャート
【図８】実施形態（１）の実行例を示すタイムチャート
【図９】実施形態（１）の排出ガスセンサの応答時間の算出方法を説明するためのタイムチャート
【図１０】実施形態（２）の異常診断プログラムの処理の流れを示すフローチャート
【図１１】実施形態（２）の吸気システム異常診断プログラムの処理の流れを示すフローチャート
【図１２】実施形態（２）の吸気システム異常箇所特定プログラムの処理の流れを示すフローチャート
【図１３】実施形態（２）の異常箇所判定プログラムの処理の流れを示すフローチャート（その１）
【図１４】実施形態（２）の異常箇所判定プログラムの処理の流れを示すフローチャート（その２）
【符号の説明】
１１…エンジン（内燃機関）、１２…吸気管、１４…吸入空気量センサ、１５…スロットルバルブ、１６…スロットル開度センサ、１８…吸気管圧力センサ、２０…燃料噴射弁、２１…点火プラグ、２２…排気管、２３，２４…触媒、２５，２６…排出ガスセンサ、２９…エンジン制御装置（異常診断手段、異常箇所特定手段）、３０…警告ランプ。
【図１】
0004350931.tif 000002
【図２】
0004350931.tif 000003
【図３】
0004350931.tif 000004
【図４】
0004350931.tif 000005
【図５】
0004350931.tif 000006
【図６】
0004350931.tif 000007
【図７】
0004350931.tif 000008
【図８】
0004350931.tif 000009
【図９】
0004350931.tif 000010
【図１０】
0004350931.tif 000011
【図１１】
0004350931.tif 000012
【図１２】
0004350931.tif 000013
【図１３】
0004350931.tif 000014
【図１４】
0004350931.tif 000015