(57)【要約】      （修正有）【課題】車両の電子制御装置（ECU）に記録されたデータに基づいて車両の故障診断を行う。【解決手段】車両の故障発生時に車両の電子制御装置に記憶された複数のパラメータに関する運転データを、基準となる正常時の運転データである基準値と比較して故障診断を行う。この装置は、故障診断の対象となる車両の電子制御装置に記憶された運転データである検証用データと、運転環境別に前記パラメータごとに正常値範囲が設定されている運転環境別の基準値グループとの近似検索により、検証用データに近似する運転環境別の基準値グループを選択する。さらにこの装置は、検証用データを、選択された運転環境別の基準値グループのパラメータごとの正常値範囲と比較して正常値範囲からの乖離が大きいパラメータを識別し、識別されたパラメータに基づいて故障原因を探索する。【選択図】図１
2010137644.tif 000002
【特許請求の範囲】
【請求項１】
車両の故障発生時に該車両の電子制御装置に記憶された複数のパラメータに関する運転データを、基準となる正常時の運転データである基準値と比較して故障診断を行う診断装置であって、
故障診断の対象となる車両の電子制御装置に記憶された運転データである検証用データと、運転環境別に前記パラメータごとに正常値範囲が設定されている運転環境別の基準値グループとの近似検索により、全体として前記検証用データに近似する運転環境別の基準値グループを選択する手段と、
前記検証用データを、前記選択された運転環境別の基準値グループの前記パラメータごとの正常値範囲と比較して該正常値範囲からの乖離が大きいパラメータを識別する手段と、
を備え、前記識別されたパラメータに基づいて故障原因を探索する故障診断装置。
【請求項２】
前記運転環境別の基準値グループは、多数の車両から得られた前記複数のパラメータについての運転データをクラスタリング手法によりクラスタ化し、こうして形成された複数のクラスタのそれぞれにおいて前記複数のパラメータについて運転データの正常値範囲を設定して形成されている、請求項１に記載の故障診断装置。
【請求項３】
前記検証用データは、前記複数のパラメータの所定の時間間隔の数値ベクトルであり、前記近似する運転環境別の基準値グループを選択する手段は、それぞれの前記数値ベクトルと前記基準値グループのクラスタの重心であるコアベクトルとの距離を算出し、数値ベクトルごとに距離が最も小さい基準値グループを選択するよう構成されている、請求項２に記載の故障診断装置。
【請求項４】
前記クラスタは、前記複数のパラメータの内の一部のパラメータについてクラスタリングした１次クラスタと、該１次クラスタに属する数値ベクトルを前記一部のパラメータより多い数のパラメータについてクラスタリングした２次クラスタとを含み、前記近似する運転環境別の基準値グループを選択する手段は、前記検証用データの数値ベクトルについて１次クラスタを選択し、次いで該１次クラスタに属する２次クラスタから距離が最も小さいものを選択するよう構成されている、請求項３に記載の故障診断装置。
【請求項５】
前記正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、該正常値範囲からはずれた数値ベクトルの数と前記検証用データの数値ベクトルの数との比を少なくとも使用して判定する、請求項２に記載の故障診断装置。
【請求項６】
前記正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、あるパラメータについて、前記正常値範囲からはずれた前記検証用データの数値ベクトルの数値と正常値範囲との差を少なくとも使用して判定する、請求項２に記載の故障診断装置。
【請求項７】
前記正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、連続して正常値範囲からはずれた数値ベクトルの数と数値ベクトルの全数との比を少なくとも使用して判定する、請求項２に記載の故障診断装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両の運転中に各車両の電子制御装置（ＥＣＵ、Electronic Control Unit）の記憶装置に保存されるデータに基づいて故障を診断する装置に関する。
【背景技術】
【０００２】
自動車等の車両の故障を診断するツールとしての診断装置が知られている。近年は、過去に発生した故障情報をデータベースに登録して新たに発生した故障の原因を推定する、いわゆるエキスパートシステムを診断装置に使用することが検討されている。エキスパートシステムには、人間の経験知識をデータベースに登録しておいて検索するルールベース型推論方式と、正常時または故障時のシステムの挙動を学習しておき、シミュレーションにより故障原因を探求するモデルベース型推論方式とがある。
【０００３】
前者の方式は、仕組みが単純で比較的高い信頼性が期待できるが、知識をルール化するのが難しく、対象となるシステムに変更が加えられるたびにルールを追加または修正する必要がある。
【０００４】
一方、後者の方式では、操作するスタッフが十分な経験、知識を持っていなくても故障部位を推定することができ、対象となるシステムの変更に関してもある程度の汎用性が期待できる。特に同じ運転環境条件の下での正常時のデータと故障時のデータを比較する方法は、不具合の原因を発見する最も有効な手段の一つである。
【０００５】
しかしながら、車両の運転には様々な環境条件や走行パターンがあり、そのそれぞれの状況によって多数の各運転パラメータが取り得る正常値の範囲も個別に変化し得ることから、同じような条件下どうしでデータ比較して正確な判断をするための正常値データを得るためには、様々な運転状況の下での正常時のデータを収集しておく必要がある。
【０００６】
特許文献１には、故障の症状とこれに対応する原因の関係について正確な情報を記憶する知識データ記憶手段と、不確かな情報を記憶するレアケース記憶手段とを備えた診断装置が記載されている。
【０００７】
また、特許文献２には、設計データや過去の不具合データを解析して前向きの推論方式のＥＭＥＡとしてリレーショナルデータベースに入力し、修正ＥＭＥＡを作成して事象系列図を作成し、故障探求ツリーを作成してルールベースの参照に供し、エキスパートのノウハウを数値化してルールベースを作成することが記載されている。
【０００８】
車両で用いられる複雑な電子制御システムにおいては、運転パラメータの数が非常に多くそのそれぞれの運転パラメータの正常値範囲も運転環境(運転条件ともいう)に対応して存在しているため、この膨大な正常値データの中から診断対象となるＥＣＵデータ（検証用データ）に近い運転環境にある基準となるＥＣＵデータ（それぞれの運転パラメータが正常値範囲にあるデータ）を抽出することが大変難しい。また、多くのデバイスが協調した制御を行っており、一つの故障が発生すると、複数の運転パラメータに影響し、正常値からはずれることが少なくない。このため、正常値からはずれた運転パラメータと故障原因との関連付けに工夫が必要となる。
【０００９】
このような工夫の例として、特許文献３には、監視対象から得られたプロセスデータを定性化処理し、得られた定性化データと全事例の定性化データとの類似度を算出し、全事例のうち一定の類似度をもつものについて、類似度の高い順にその事例データを抽出することが記載されている。
【００１０】
運転に関係するパラメータの数が多いほど、故障発生時に正常値データの範囲からはずれる運転パラメータも多くなり、この中から適切に不具合発生原因に直接関係する運転パラメータを判断し、故障診断を行うことが重要である。すなわち、正常値の範囲からはずれた運転パラメータの中から着目すべきパラメータを適切に選択することが重要になる。
【特許文献１】特開昭62-261938
【特許文献２】特開平6-95881
【特許文献３】特開2003-15877
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、この発明は、車両の電子制御装置（ECU）に記録されたデータに基づいて車両の故障診断を行う診断装置において、正常値の範囲からはずれた運転パラメータの中から着目すべきパラメータを識別することができる診断装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記の課題を解決するため、この発明の装置は、車両の故障発生時に車両の電子制御装置に記憶された複数のパラメータに関する運転データを、基準となる正常時の運転データである基準値と比較して故障診断を行う。この装置は、故障診断の対象となる車両の電子制御装置に記憶された運転データである検証用データと、運転環境別に前記パラメータごとに正常値範囲が設定されている運転環境別の基準値グループとの近似検索により、全体として前記検証用データに近似する運転環境別の基準値グループを選択する手段を備える。
【００１３】
さらにこの装置は、前記検証用データを、前記選択された運転環境別の基準値グループの前記パラメータごとの正常値範囲と比較して正常値範囲からの乖離が大きいパラメータを識別する手段を備え、前記識別されたパラメータに基づいて故障原因を探索する。
【００１４】
この発明の一形態では、運転環境別の基準値グループは、多数の車両から得られた複数のパラメータについての運転データをクラスタリング手法によりクラスタ化し、こうして形成された複数のクラスタのそれぞれにおいて前記複数のパラメータについて運転データの正常値範囲を設定して形成されている。
【００１５】
さらに、この発明の一形態では、前記検証用データは、複数のパラメータの所定の時間間隔の数値ベクトルであり、前記近似する運転環境別の基準値グループを選択する手段は、それぞれの前記数値ベクトルと前記基準値グループのクラスタの重心であるコアベクトルとの距離を算出し、数値ベクトルごとに距離が最も小さい基準値グループを選択するよう構成されている。
【００１６】
この発明のもう一つの形態では、前記クラスタは、複数のパラメータの内の一部のパラメータについてクラスタリングした１次クラスタと、この１次クラスタに属する数値ベクトルを前記一部よりも多い数のパラメータについてクラスタリングした２次クラスタとを含み、前記クラスタを選択する手段は、検証用データの数値ベクトルについて１次クラスタを選択し、次いでこの１次クラスタに属する２次クラスタから距離が最も小さいものを選択するよう構成されている。
【００１７】
この発明の一形態では、前記正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、この正常値範囲からはずれた数値ベクトルの数と前記検証用データの数値ベクトルの数との比を少なくとも使用して判定する。
【００１８】
さらにこの発明の一形態では、前記正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、あるパラメータについて、正常値範囲からはずれた前記検証用データの数値ベクトルの数値と正常値範囲との差を少なくとも使用して判定する。
【００１９】
また、この発明の一形態では、正常値範囲からの乖離は、検証用データの複数の数値ベクトルのそれぞれに対応して選択された前記クラスタの正常値範囲と前記数値ベクトルとを比較し、連続して正常値範囲からはずれた数値ベクトルの数と数値ベクトルの全数との比を少なくとも使用して判定する。
【発明を実施するための最良の形態】
【００２０】
次に図面を参照して、この発明の実施形態を説明する。図１は、この発明の前提となる自動車の電子制御システムに含まれるデータ収集装置14を示す。車載ネットワーク11は、車両に搭載された複数の電子制御ユニット（ＥＣＵ）間の通信を行うためのネットワークである。この実施例では、ネットワークはＦ系統とＢ系統の２つの系統に分かれているが、一つの系統のネットワークであってもよい。Ｆ系統のネットワークは、エンジンの燃料噴射制御、点火時期制御などを行うＥＣＵ、トランスミッションの制御を行うＥＣＵ，ブレーキの制御を行うＥＣＵなどいわゆる制御系の複数のＥＣＵの間で通信を行うためのネットワークである。Ｂ系統のネットワークは、パワーウィンドウやドアロックを制御するＥＣＵ、ライトを制御するＥＣＵ、エアコンなど電装品を制御するＥＣＵなどいわゆるボディ電装系の複数のＥＣＵの間で通信を行うためのネットワークである。ＥＣＵは、基本的にはコンピュータであり、マイクロプロセッサと通信モジュールで構成される。
【００２１】
Ｆ系統のネットワークは、車速データ11A、エンジン水温データ11B、エンジン回転数データ11Cなどの制御系のデータ、およびECUが検出した不具合を示す不具合コード11Eをデータ収集装置14に送る。B系統のネットワークは、エアコンなどのアクセサリ（ACC）の状態を示すデータ11Fなどのボディ電装系のECUからのデータ、およびECUが検出した不具合を示す不具合コード11Gをデータ収集装置14に送る。
【００２２】
データ収集装置14は、それ自体がECUである。データ収集装置14は、マイクロプロセッサを主要素とするコントローラ14Hによって制御される。受信部14Aは車載ネットワーク11から車両の状態を示す最新のデータを逐次受け取り、コントローラ14Hは、このデータを車両状態データメモリ14Bに逐次一時記憶させる。車両状態データメモリ14Bは、ランダムアクセスメモリ（RAM）であり、たとえば20秒間のような所定の時間幅の最新データを記憶しており、順次ファースト・イン・ファースト・アウト（ＦＩＦＯ）のシフトレジスター式に、たとえば0.2秒ごとに新しいデータで書き替えられる。
【００２３】
不揮発性メモリ14Dは、電源オフ時にもバッテリから維持電流の供給を受けて記憶を維持するバックアップメモリ、またはEEPROMなどの書き替え可能のROMなどで構成される。コントローラ14Hは、不具合コード(DTC, Diagnosis Trouble Code)を受け取ると、不具合コード発生前15秒間のデータを車両状態データメモリ14Bから読み出して不揮発性メモリ14Dに保存する。このデータは、オンボード・スナップ・ショット（ＯＢＳ）と呼ばれる。この処理は、不具合コードが発生されるたびに実行され、不揮発性メモリ14Dは、複数の不具合コードに対応して複数のＯＢＳを保存する。
【００２４】
この車が点検、修理のためサービス店に持ち込まれると、サービススタッフが故障診断機16の接続端子をＥＣＵの出力端子に接続し、不揮発性メモリ14Dに保存されたデータを診断機に読み取って、この検証用データに対応する基準となる正常値データを抽出し、各運転パラメータの値を比較することにより、診断機を利用した故障診断を行う。
【００２５】
表１は、一つの不具合コード発生に応じて不揮発性メモリ14Dに保存されたＯＢＳの一例を示す。この例では、運転パラメータとしてR（エンジン回転数）、V（車速）およびT（エンジンの冷却水の温度）を示してある。実際には、空燃比センサの出力値、O2センサの出力値、燃料噴射時間、空燃比などの多数（車種によって異なるが、例えば50〜60）のパラメータについてのデータがＯＢＳに含まれ、これらをP4、P5、P6、・・・で示してある。
【００２６】
時間は、不具合コードの発生時を基準の０秒とし、0.2秒ずつさかのぼった時間をマイナス符号で示している。
【表１】
2010137644.tif 000003
【００２７】
ここで、まず正常値データである基準値について、その作成例をベースに基準値例を説明する。
【００２８】
基準値の作成にあたっては、運転データ蓄積装置を設けた専用のテスト車両を利用して様々の運転状況下での正常値データを収集することも可能であるが、膨大な量の走行テストが必要になり、データの収集、蓄積に大きな労力を有するため、本実施例ではOBSからデータの基準値（正常値）を抽出するようにしている。
【００２９】
以下に基準値作成（ＯＢＳからの抽出）の考え方を説明する。不具合コードが発生したときに保存されるOBSデータであっても、不具合に関係していないパラメータの値は正常である。また、不具合に関係しているパラメータの値であっても、不具合発生前15秒間の中で部分的には正常であると考えられる。したがって、多数の不具合についてOBSデータを集めて統計処理をすると、異常値は多数の正常値によって薄められ、または除外され、結果的に正常運転時のパラメータの値を抽出することができる。
【００３０】
この目的のためには、サンプル数が多ければ多いほどよい。この実施例では、サンプルとなる車の台数を13000としており、実際に市場を走行している一般ユーザの車から前述のようにしてOBSデータを得る。
【００３１】
抽出対象の正常値範囲は「ある状態（ある運転条件下）」ごとに存在すると考えられる。したがって、近似した状態にあるＯＢＳデータをクラスタ（集団）としてまとめ、このクラスタごとに適切な値の範囲を抽出すれば「ある状態」ごとの正常値範囲を抽出することができる。
【００３２】
具体的には、クラスタリング手法を用いて近似したOBSデータをクラスタ（集合）として分類する。クラスタごとにパラメータの適正な値の範囲を抽出して、これを故障診断の際に参照するための基準値とする。
【００３３】
クラスタリングは、外的基準なしにデータをグループ化するデータ解析手法で、この実施例ではK-means法と呼ばれる手法を用いる。考え方としては、データをパラメータの数に対応する次元の空間にプロットし、その距離によってデータを分類する。
【００３４】
基準データ作成装置30は、一つの車種について、たとえば13000台の車からのＯＢＳを収集（1個／台の場合）する。
【００３５】
次に、その収集したＯＢＳデータを、「エンジン回転数：Ｒ」「車速：Ｖ」「冷却水温：Ｔ」の３つのパラメータの特徴量で「２０」にクラスタリングする。（一次クラスタリング）
【００３６】
さらに、一次クラスタリングで抽出された「２０」のクラスタをさらにすべてのパラメータで「３０」にクラスタリングして「６００」のクラスタすなわち運転条件を抽出する。（二次クラスタリング）
【００３７】
１．１次クラスタリング
一次クラスタリングは、不具合発生に関係する運転パラメータのうちで特に依存度が大きいと考えられる「エンジン回転数：Ｒ」「車速：Ｖ」「冷却水温：Ｔ」の３つのパラメータで行う大まかなクラスタリングであり、まず、それぞれのＯＢＳから３つの運転パラメータの特徴量を抽出する。
【００３８】
図２および図３を参照して、基準値生成の実施例を説明する。まず、運転パラメータの特徴量の数値ベクトルを生成する（31）。特徴量として、この例では３秒間ごとのパラメータの平均値、最大値、最小値、傾きの平均値を用いる。特徴量としては、このほかに統計数学で用いられる標準偏差、振幅値、振動数、最小傾き、最大傾き、歪度、尖度などから車両の運転パラメータ解析に適したものを選択して用いることができる。n台（nは1から13000）から得られたＯＢＳデータのパラメータをRn、Vn、Tnで表し、平均値をRnav、Vnav、Tnavで表し、最大値をRnmx、Vnmx、Tnmxで表し、最小値をRnmn、Vnmn、Tnmn、で表し、傾き(inclination)の平均値をRnin、Vnin、Tninで表す。
【００３９】
なお、ここでいう傾きは、車両が加速中、減速中の程度もしくはクルーズ運転（定速運転）中であることの判断指標にもなる重要な特徴量であり、時間経過(h)に対するパラメータ値f(x) の変化量を微分することで得られる値で、以下の式で表される。ディジタル演算では、パラメータ値f(x)の差分の演算で求めることができる。
【数１】
2010137644.tif 000004
【００４０】
図３を参照すると、第１の時間帯(-14.8〜-12.0秒)では、パラメータRkについて、この時間帯での平均値Rnav-1、最大値Rnmx-1、最小値Rnmn-1、および傾きの平均値Rnin-1が生成される。同様に、パラメータVについて、平均値Vnav-1、最大値Vnmx-1、最小値Vnmn-1、傾きの平均値Vnin-1が生成され、パラメータTについて、Tnav-1、Tnmx-1、Tnmn-1、Tnin-1が生成される。第２の時間帯(-11.8〜-9.0秒)、第３の時間帯(-8.8〜-6.0秒)、第４の時間帯(-5.8〜-3.0秒)および第５の時間帯(-2.8〜0秒)についても同様に表２に示す特徴量を算出する。
【００４１】
この実施例では、「エンジン回転数：Ｒ」「車速：Ｖ」「冷却水温：Ｔ」の３つのパラメータ（Rn,Vn,Tn）の上記5つの時間帯のそれぞれにおける数値ベクトルを１次クラスタリングにより、たとえば２０個の１次クラスタDjに分類する（33）。初期条件として、２０個の１次クラスタの中心となるコアベクトルをランダムに定める。コアベクトルの初期値は限られた数の実験データから経験則に従って定めることもできる。jを1から２０の整数として、j番目のクラスタの中心となるコアベクトルを、(Rav-cj,Rmx-cj,Rmn-cj,Rin-cj,Vav-cj,Vmx-cj,Vmn-cj,Vin-cj,Tav-cj,Tmx-cj,Tmn-cj,Tin-cj)と表すと、上記の表の第１の時間帯の数値ベクトルと２０個のクラスタDjのそれぞれのコアベクトルとのマンハッタン距離D1njは、次式で計算される。
D1nj=|Rnav-1-Rav-cj|+|Rnmx-1-Rmx-cj|+|Rnmn-1-Rmn-cj|+| Rnin-1-Rin-cj|
+|Vnav-1-Vav-cj|+|Vnmx-1-Vmx-cj|+|Vnmn-1-Vmn-cj|+|Vnin-1-Vin-cj|
+|Tnav-1-Tav-cj|+|Tnmx-1-Tmx-cj|+|Tnmn-1-Tmn-cj|+|Tnin-1-Tin-cj|      (1)
【００４２】
第１時間帯での一つの数値ベクトル（Rn,Vn,Tn）について、j=1,2,3…. 20について(1)式の演算を行ってマンハッタン距離を求め、一番小さい値となったコアベクトルのクラスタDjにその数値ベクトル（Rn,Vn,Tn）を所属させる。n=1,2,3,…..,13000について同様の演算を行い、それぞれの数値ベクトル（Rn,Vn,Tn）をコアベクトルへのマンハッタン距離が一番小さいクラスタDjに所属させる。こうして、n台の車から得られたＯＢＳデータの第１時間帯の数値ベクトルが２０個のクラスタDjに分類される。
【００４３】
第２の時間帯についても同様に上記の表の第２の時間帯の数値ベクトルと第２の時間帯のクラスタD2jとのマンハッタン距離D2njは、次式で計算される。
D2nj=|Rnav-2-Rav-cj|+|Rnmx-2-Rmx-cj|+|Rnmn-2-Rmn-cj|+|Rnin-2-Rin-cj|
+|Vnav-2-Vav-cj|+|Vnmx-2-Vmx-cj|+|Vnmn-2-Vmn-cj|+|Vnin-2-Vin-cj|
+|Tnav-2-Tav-cj|+|Tnmx-2-Tmx-cj|+|Tnmn-2-Tmn-cj|+|Tnin-2-Tin-cj|        (2)
【００４４】
マンハッタン距離に基づいて、n台の車から得られたＯＢＳデータの第２時間帯の数値ベクトルが２０個の１次クラスタDjに分類される。同様に第３時間帯の数値ベクトルが２０個の１次クラスタDjに分類され、第４時間帯の数値ベクトルおよび第５時間帯の数値ベクトルがそれぞれ２０個の１次クラスタDjに分類される。
【００４５】
次いで、２０個の１次クラスタDjのそれぞれについて、所属する数値ベクトルの平均値を計算し、この平均値を各クラスタのコアベクトルとする。こうして更新されたコアベクトルを用いて、上記のクラスタリングを再度実行する。２度目のクラスタリングで各クラスタのコアベクトルが更新されると、更新されたコアベクトルを用いてさらに３度目のクラスタリングを行う。この繰り返しは、コアベクトルが収束するまで、またはあらかじめ設定した試行回数が終了するまで実行する。
【００４６】
初期設定のコアベクトルによって、収束の仕方が異なることがあるので、たとえば１０個の異なる初期設定をランダムに用意して、それぞれの初期設定を用いてクラスタリングを繰り返し、最もよく収束した試行のクラスタリング結果を採用することができる。こうして、２０個の１次クラスタDjのそれぞれについて最終的なコアベクトル（重心）が得られる。
【００４７】
１次クラスタリングは、最も重要度の高い運転パラメータを用いて実行し、近似度の高い数値ベクトルをグループ化するので、全データがまずは大まかに重要度の高い運転状態の相違ごとにグループ化がなされることになる。したがって、それぞれのグループすなわちクラスタはそれぞれ相違が比較的大きい運転状態の場合に対応して形成されている。
【００４８】
２．２次クラスタリング
次いで、２次クラスタリングに移る(35)。２次クラスタリングでは、２０個の１次クラスタDjのそれぞれにおいて、そのクラスタに含まれる全パラメータのOBS数値ベクトル（表１）に関してさらにクラスタリングを行って、各１次クラスタを３０個の２次クラスタに分類する。すなわち、それぞれ異なる運転状態に対応する２０個の１次クラスタのそれぞれを、３０個の２次クラスタに細分する。
【００４９】
それぞれの１次クラスタが２次クラスタリングされて３０個の２次クラスタを形成するので、全体では６００個（20 x 30）の２次クラスタが得られる。それぞれのOBS数値ベクトル（実施例では６５０００個のデータ）は、この６００個の２次クラスタの一つに属する。
【００５０】
２次クラスタリングに用いられる３０個の２次クラスタのコアベクトルの初期値は、１次クラスタリングと同様にランダムに定めることができる。この初期値は、過去のデータに照らして経験則にしたがって定めることもできる。このコアベクトルは、１次クラスタリングと同じ手法で更新されて３０個の最終的なコアベクトルが求められる。こうして、６００個の２次クラスタが形成される。
【００５１】
３．正常値範囲の設定
次いで、頻度算出ステップ37に移り、こうして得られた６００個の２次クラスタのデータから、パラメータごとに横軸をパラメータの値、縦軸をデータ数とする２０分割のヒストグラムを作成する（図４(A)）。縦軸の値が所定の値（たとえば全体のa%）以下の階級を除外し（図４(B)）、残った階級を隣り合うもの同士でグループとしてまとめて、グループに属するデータ数がb%以上になるようグループ化する（図4(C)）。この処理は、クラスタごとに、すなわち６００個の２次クラスタのそれぞれに含まれる数値ベクトルについて実行する。
【００５２】
このとき、２次クラスタ内でのOBSデータの散らばりの目安となるクラスタリングのパラメータ残差によって、a%、b%の値を調整する。パラメータ残差は、数値ベクトルのそれぞれのパラメータの値が、その数値ベクトルが属するクラスタの重心であるコアベクトルからどの程度離れているかを評価した値である。この実施例では、それぞれの数値ベクトルについて、その属するクラスタの重心との差をとり、その２乗平均（２乗和の平方根）で残差を表す。単純な差は、プラスまたはマイナスの符号をもつので、差の大きさを見るため２乗平均を用いる。
【００５３】
パラメータ残差が大きく、散らばりが大きいパラメータほど、a%、b%を小さくし、幅広く正常値の範囲を抽出するようにする（図４(D)）。
【００５４】
図４に関連して説明した手法を簡単な例を用いてより具体的に説明する。あるクラスタに入っているすべての数値ベクトルに対し、図３の列（パラメータ）ごとのヒストグラムを作成する。たとえば、ある運転パラメータの一つについて表２に示すようなヒストグラムが得られたとする。このクラスタには100個の数値ベクトルが含まれているとすると、カウント数の合計は100になる。
【表２】
2010137644.tif 000005
【００５５】
カウント総数のa%以下のカウントの棒を削除する。いま、a%を1%とすると、１以下のカウント数の棒は削除されるので、表３の棒が残る。図４の例では、図４(A)のヒストグラムから図４（B）のヒストグラムに移行する。
【表３】
2010137644.tif 000006
【００５６】
残った棒のうち、隣り合う棒を結合してグループ化する。この例では、表４のようにグループ化される。
【表４】
2010137644.tif 000007
【００５７】
こうしてできたグループのうち、カウント数がカウント総数のb%以下のものを削除する。たとえば、20%以下のグループを削除すると、グループIDが３のグループが削除され、表５のグループが残る。図４の例では、図４（B）のヒストグラムから図４（C）のヒストグラムに移行する。
【表５】
2010137644.tif 000008
【００５８】
次に基準値設定ステップ39に移り、こうして残ったグループにおける列、すなわち運転パラメータの範囲を正常値の範囲とする。この例では、0.0 - 0.1および0.3 - 0.7 が正常値の範囲である。データ処理を簡単にするため、正常値の範囲を一つにまとめて故障診断に用いる基準値の範囲とする。この例では、基準値の範囲は、0.0 - 0.7となる。図４の例では、図４（C）から図４（D）に移行する。
【００５９】
以上の説明のように、本実施例では６００の運転状況が異なる条件下での各運転パラメータの正常値範囲を生成することができる。すなわち、運転パラメータについて６００の運転環境別に基準値範囲を生成することができる。
【００６０】
次に、作成した６００の運転環境別の基準値範囲を利用した故障解析について説明する。
【００６１】
４．故障解析
こうして得られた正常値データを利用して車両の故障解析を行なうには、まず、診断機16（図１）で故障車両の診断対象の車両から時系列のＥＣＵデータを読み取る。このデータを検証用データと呼ぶ。検証用データの例を表６に示す。この検証用データの各行の数値の配列を数値ベクトルと呼んでいる。表６は表１のものと同様であり、検証用データのパラメータをR’、V’、T’、P4’、P5’、P6’、・・・で示している。数値ベクトルは0.2秒間隔で15秒間にわたって記録されているので、一つの車両からは、75個（15/0.2=75）の数値ベクトルが得られる。図５を参照すると、ブロック52でこの表が作成される。
【表６】
2010137644.tif 000009
【００６２】
4.1  近似する１次クラスタの検出
図５のブロック53に移り、まず、正常値範囲を設定するプロセスの１次クラスタリング段階と同じ手法により、３つのパラメータ、すなわちエンジン回転数R(rpm)、車両速度（km/h）およびエンジン冷却水温T（℃）について、数値ベクトルを３秒間ごとにまとめて平均値、最大値、最小値、平均値の傾きを算出する。こうして得られる５つの特徴量数値ベクトルを図６に示す。この図は、図３に示したものと同様であり、検証用データのパラメータをRn’、Vn’、Tn’で表し、平均値をRn’av、Vn’av、Tn’avで表し、最大値をRn’mx、Vn’mx、Tn’mxで表し、最小値をRn’mn、Vn’mn、Tn’mn、で表し、傾き(inclination)の平均値をRn’in、Vn’in、Tn’inで表す。
【００６３】
図６の５つの特徴量数値ベクトルのそれぞれについて、１次クラスタリング段階で求めた２０個の１次クラスタのコアベクトルのそれぞれとのマンハッタン距離を上述の数式(1)を検証用の特徴量数値ベクトルに適用して算出する。20個のコアベクトルのうちマンハッタン距離が最も小さいものを近似１次クラスタとして選択する。５つの特徴量数値ベクトルについてこの演算を行うので、５つの近似１次クラスタが選択される。５つの近似１次クラスタは互いに重複するものが含まれていてもよい。また、近似１次クラスタを一つの特徴量数値ベクトルあたり複数求めて、次の２次クラスタ検出に進んでもよい。
【００６４】
4.2  近似する２次クラスタの検出
次にブロック55に進む。上記のようにして選択された５つ（または、より多数）の近似１次クラスタのそれぞれは、30個の２次クラスタに細分されている。いま、図６の１行目の特徴量数値ベクトルの近似１次クラスタがVkで、同様に２行目、３行目、４行目および５行目の特徴量数値ベクトルの近似１次クラスタがそれぞれVm、Vn、Vo、Vpであるとする。１次クラスタVkは、30個の２次クラスタVk1, Vk2, … Vk30に細分される。１次クラスタVm、Vn、Vo、Vpについても同様である。
【００６５】
図６の１行目の特徴量数値ベクトルは、表６の検証用データの３秒間すなわち15行に対応する。表６の最初の15行の検証用数値ベクトルのそれぞれについて、30個の２次クラスタVk1, Vk2, … Vk30のそれぞれのコアベクトルとの距離を２次クラスタリング段階と同じ手法で演算する。この演算に基づき、それぞれの検証用数値ベクトルについて最も距離の小さい２次クラスタ・コアベクトルを選択する。
【００６６】
図６の２行目から５行目の特徴量数値ベクトルについても、同様の演算を行い、それぞれ最も距離の小さい２次クラスタ・コアベクトルを選択する。こうして75個の検証用数値ベクトルに対応して75個の２次クラスタが得られる。この２次クラスタに関して、運転パラメータのそれぞれについて正常値の範囲が設定されている（図２のブロック39）。
【００６７】
4.3  パラメータ正常判定
次にブロック57に進む。75個の検証用数値ベクトル（表６）と上記のようにして求められた75個の２次クラスタの正常値範囲とをその対応関係に従って比較し、データの値がこの正常値範囲からはずれた運転パラメータを不具合探索の候補キーとする。
【００６８】
ブロック59に進み、こうして得られた不具合探索の候補キーの運転パラメータについて、正常値からの乖離の確率（X値）、正常値範囲からの乖離の大きさ（Y値）、および連続乖離度（Z値）を算出する。次の表は、不具合探索の候補キーとなったある運転パラメータについての75個の数値ベクトルの数値（データ値）と、対応する２次クラスタにおけるこの運転パラメータの正常値範囲との比較例を示す。データ値が正常値範囲からはずれた数値ベクトルの行に異常の判定が記入されており、正常値範囲に収まっている行に正常の判定が記入されている。
【表７】
2010137644.tif 000010
【００６９】
正常値から乖離した確率（X値）は、正常値からはずれた行数の全行数に対する割合をいい、次の式で表すことができる。
X = 正常値からはずれた行数の総和 ÷ 全行数
表７の例では、 X = 5 ÷ 75 = 0.67 となる。  
【００７０】
正常値からの乖離の大きさ（Y値）は、正常値からはずれた一行データ値と正常値範囲の端までの距離を、その運転パラメータがとりうる最大値と最小値の幅、すなわち差で割って規格化(normalize)した値をいい、次の式で表すことができる。
Y = （正常値から最もはずれたデータ値 - 正常値範囲の端の値）
÷ (パラメータがとりうる値の最大値 - 最小値)
【００７１】
表７の例では、正常値と最も乖離のある数値ベクトル（行）は25行目であり、そのデータ値は15、正常値範囲は4から9である。このパラメータがとりうる最小値が0、最大値が20であるとき、乖離の大きさYは、次のようになる。
Y = (15 - 9) ÷ (20 - 0) = 0.3
【００７２】
ここで規格化について説明する。運転パラメータは、温度、電圧、角度など様々の種類があり、そのデータ値はパラメータの種類によって単位が異なり、とりうる値の範囲も大きく異なる。たとえば、エンジン回転数はrpmで、0から5000の値をとり、各種のセンサの電圧はvoltで、0から5の値をとる。パラメータのY値を比較に使うとき、これらのパラメータの幅を同じ尺度に統一する必要がある。このことから、各パラメータについて最大値と最小値との幅を１とする処理をする。これが規格化である。
【００７３】
連続乖離度（Z値）は、時系列的に連続して正常値からはずれた数値ベクトル（行数）の最大数の、全行数に対する割合で、次の式で表される。
Z = 正常値から連続して乖離している行数の最大値 ÷ 全行数
【００７４】
表７の例では、73行目、74行目、75行目の３つの行が連続して異常判定であり、他にはこれより長く連続している異常判定はない。この場合、乖離している最大行数は３である。したがって、連続乖離度Zは、次のようになる。
Z = 3 ÷ 75 = 0.04
【００７５】
車両の不具合の症状は千差万別であるが、大きく分けると次に３つである。
1)センサの断線、短絡などのように、ある時点で突然症状が発生し、この症状が継続する不具合、
2)燃料への不純物の混入のように微小な症状が長期間続く不具合、
3)接触不良のようになにかの拍子に一瞬だけでる症状が不定期に発生する不具合、
【００７６】
1)の症状では、Y値（乖離の大きさ）およびZ値（連続乖離度）が大きくなる。2)の症状では、X値（乖離の確率）やZ値（連続乖離度）が大きくなる。3)の症状では、X値（乖離の確率）およびY値（乖離の大きさ）が大きくなる。X値およびZ値は、乖離の有無についての頻度、連続性を示し、Y値は乖離の大きさを示す。
【００７７】
したがって、不具合の症状ごとに症状を特徴づけるパラメータがあり、そのX値、Y値、Z値の組み合わせがある。上記の解析により得られた故障原因を探索するキーとなる一つまたは複数のパラメータおよびそのパラメータについてのX値、Y値、Z値は、車両の整備をする技術者に診断機16のディスプレイ装置上で、またはプリンタで印刷した資料として提示される。技術者は、これらの情報から車両の不具合原因を推定し、車両の整備をすることができる。
【００７８】
診断機16は、代表的な故障事例に基づいて、X値とY値による散布図、Y値とZ値による散布図を予め用意しておき、技術者に提示して、故障箇所を突き止める作業を支援することができる。図７(A)は、X値とY値による散布図の一例で、吸気温度センサの断線故障ではX値に比べてY値が大きいことが示されている。ここでの運転パラメータは、ＩＡＴ(Intake Air Temperature、吸入空気温度)センサの電圧を用いている。図７(B)は、Y値とZ値による散布図の一例で、燃料に不純物が混入した故障では、Ｏ2センサのフィードバック電圧というパラメータについて、Y値に比べてZ値が大きいことが示されている。
【００７９】
診断機16は、上記の解析結果にアソーシエーション解析を適用して、故障原因の探求を支援することができる。故障原因と関係の深い２つのパラメータAおよびBについてX値（乖離の確率）、Y値（乖離の大きさ）、Z値（連続乖離度）が得られたとき、２つのパラメータA、BについてX値、Y値、Z値がそれぞれ同じであったならば、Y値の大きい方がランキング上位となるが、実際の故障原因とは異なることがある。
【００８０】
たとえば、アクセルの開度とインジェクタの燃料噴射量は比例関係にあり、強い相関をもっている。「アクセルを踏んでもインジェクタが正規の半分の燃料噴射しかしない」という故障があったとき、アクセル開度が正しいとすればインジェクタが故障していることになり、インジェクタの噴射量が正しいとすればアクセル開度センサが半分の開度電圧しか出さないという故障である。
【００８１】
クラスタリングでは、どちらかを正しいとしたグループに配分されるので、場合によってはインジェクタが故障原因であるのに、アクセル開度を不具合パラメータとしてしまうことが考えられる。
【００８２】
このようなケースに対応するために、X値、Y値、Z値から想定される重要なパラメータと強い相関をもつパラメータを同時に示すことで、一方のパラメータに固執して誤った判断をすることを防ぐことができる。
【００８３】
アソーシエーション解析は、運転パラメータの中でパラメータ同士の相関関係の強さを数値的に測る手法で、「信頼度」という係数をもって、あるパラメータと最も相関のあるパラメータを知ることができる。
【００８４】
アソーシエーション解析は、主成分分析から導き出されるパラメータである「負荷量」を用いる。負荷量とは、元の各パラメータに定義される値で、主成分分析で得られる主成分に対して各パラメータがどの程度関係しているかを示す値である。負荷量は、それぞれの主成分に対する各パラメータの関係に対して決まる値で、上述のECUデータ（表１）の主成分の値と、運転パラメータとの相関係数ともいうべきものである。負荷量の絶対値が大きいほど、主成分とその運転パラメータとの関係が強い。
【００８５】
アソーシエーション解析により、次のような情報を得ることができる。
【００８６】
前提        結論        信頼度          サポート
A            B            90              5
【００８７】
この記述は、「Aが、あるパラメータの組に含まれるならば（前提）、Bもまたそこに含まれる（結論）というルールの信頼度が90％で、サポートが5％である」と読む。信頼度は、前提がなりたっている条件下において、結論が成り立つ割合を示す。サポートは、全体のパラメータの組において、この前提と結論が含まれる割合をいう。
【００８８】
上の例では、Aを含むパラメータの組には90%の割合でBも含まれており、AとBを含むパラメータの組は全体の5%である。これらの結果の前提と結論に含まれるパラメータは関係が深いと考えられる。このように、この発明にアソーシエーション解析を適用して故障解析の精度を向上させることができる。
【００８９】
以上にこの発明を具体的な実施例について説明した。この発明は、このような実施例に限定されるものではない。
【図面の簡単な説明】
【００９０】
【図１】この発明の一実施例の装置の全体的な構成を示す図。
【図２】基準値生成のプロセスの流れを示す図。
【図３】運転パラメータの特徴量を表す数値ベクトルを示す図。
【図４】特徴量の数値の出現頻度を表すヒストグラム。
【図５】故障解析プロセスを示す機能ブロック図。
【図６】検証用データから作成される特徴量ベクトルの一例を示す図。
【図７】故障解析で得られるX値、Y値、Z値の散布図。
【符号の説明】
【００９１】
１４      データ収集装置
１６      診断機
３０      基準データ（正常値データ）生成装置        
【図１】
2010137644.tif 000011
【図２】
2010137644.tif 000012
【図３】
2010137644.tif 000013
【図４】
2010137644.tif 000014
【図５】
2010137644.tif 000015
【図６】
2010137644.tif 000016
【図７】
2010137644.tif 000017