(57)【要約】  【課題】  日常的に市中等を走行している通常の車両に蓄積されている不具合発生時等の走行データを利用して、正常運転時のデータを生成する。  【解決手段】  車両の不具合発生時に該車両の電子制御装置（ECU）の記憶装置に保存された不具合発生時の複数の運転パラメータについての時系列ECUデータを、基準値と比較して該車両の故障診断を行う。多数の車両から得られる前記時系列ECUデータを逐次蓄積して保存し、蓄積された時系列ECUデータの数値ベクトルを生成する。数値ベクトルをクラスタリングして、特徴に応じた複数のクラスタに分類し、複数のクラスタのそれぞれにおいて、それぞれの運転パラメータごとに該パラメータの値について出現頻度の高い値の範囲を求め、得られた、出現頻度の高い値の範囲を運転パラメータの正常値の範囲として保存し、正常値の範囲を故障診用の基準値とする。   【選択図】図１
2010089760.tif 000002
【特許請求の範囲】
【請求項１】
車両の不具合発生時に該車両の電子制御装置（ECU）の記憶装置に保存された不具合発生時の複数の運転パラメータについての時系列ECUデータを、基準値と比較して該車両の故障診断を行う故障診断用の基準値生成装置であって、
多数の車両から得られる前記時系列ECUデータを逐次蓄積して保存する蓄積装置と、
前記蓄積装置に蓄積された時系列ECUデータの数値ベクトルを生成する手段と、
前記数値ベクトルをクラスタリングして、特徴に応じた複数のクラスタに分類するクラスタリング手段と、
前記複数のクラスタのそれぞれにおいて、それぞれの運転パラメータごとに該パラメータの値について出現頻度の高い値の範囲を求める、頻度算出手段と、
前記頻度算出手段で得られた、出現頻度の高い値の範囲を前記運転パラメータの正常値の範囲として保存する手段と、
を備え、前記正常値の範囲を故障診用の基準値とする、基準値生成装置。
【請求項２】
前記時系列ECUデータは、車両の不具合発生前の所定の時間における、エンジン回転数、車両の速度および冷却水温の少なくとも一つを含む複数の運転パラメータに関するデータである、請求項１に記載の基準値生成装置。
【請求項３】
前記数値ベクトルを生成する手段は、前記時系列ECUデータをレコードごとに複数の時間帯に分割して、時間帯ごとに前記運転パラメータの特徴量を算出して、該特徴量の数値ベクトルを生成する、請求項２に記載の基準値生成装置。
【請求項４】
前記クラスタリング手段は、異なる初期値をもつ第１の複数のコアベクトルを中心として、前記時間帯ごとの数値ベクトルと該複数のコアベクトルとの近似度を算出して、各数値ベクトルを最も近似度の高いコアベクトルを中心とするクラスタに所属させ、前記第１の複数のクラスタを生成する、請求項３に記載の基準値生成装置。
【請求項５】
a)前記クラスタごとに、所属する複数の数値ベクトルの前記特徴量ごとの平均をとり、該平均で該クラスタの中心である前記コアベクトルの数値を置換し、
b)こうして得られたコアベクトルを用いて、再度前記時間帯ごとの数値ベクトルと複数のコアベクトルとの近似度を算出し、各数値ベクトルを最も近似度の高いコアベクトルを中心とするクラスタに所属させる、
請求項４に記載の基準値生成装置。
【請求項６】
c)前記コアベクトルの中心が収束するまで、または予め定めた試行回数を終了するまで、前記a)およびb)の処理を繰り返す、請求項５に記載の基準値生成装置。
【請求項７】
前記第１の複数のクラスタに数値ベクトルを所属させる処理は、所定の一つまたは複数の運転パラメータについて実行し、こうして得られた前記第１の複数のクラスタに所属する数値ベクトルに関し、より多数の運転パラメータについて前記第１の複数のクラスタごとに第２の複数の数のクラスタに２次クラスタリングする、請求項６に記載の基準値生成装置。
【請求項８】
前記２次クラスタリングで得られたクラスタごとに、所属する数値ベクトルについて前記運転パラメータごとの出現頻度を算出し、該出現頻度の高い数値範囲をそれぞれの運転パラメータの基準値とする、請求項７に記載の基準値生成装置。
【請求項９】
車両の不具合発生時に該車両の電子制御装置（ECU）の記憶装置に保存された不具合発生時の複数の運転パラメータについての時系列ECUデータを、基準値と比較して該車両の故障診断を行う故障診断用の基準値を生成する方法であって、
多数の車両から得られる前記時系列ECUデータを逐次蓄積して保存し、
前記保存された時系列ECUデータの数値ベクトルを生成し、
前記数値ベクトルをクラスタリングして、特徴に応じた複数のクラスタに分類し、
前記複数のクラスタのそれぞれにおいて、それぞれの運転パラメータごとに該パラメータの値について出現頻度の高い値の範囲を求め、
前記頻度算出手段で得られた、出現頻度の高い値の範囲を前記運転パラメータの正常値の範囲として保存し、
前記正常値の範囲を故障診用の基準値とする、基準値の生成方法。
【請求項１０】
前記時系列ECUデータは、車両の不具合発生前の所定の時間における、エンジン回転数、車両の速度および冷却水温の少なくとも一つを含む複数の運転パラメータに関するデータである、請求項９に記載の基準値の生成方法。
【請求項１１】
前記数値ベクトルの生成は、前記時系列ECUデータをレコードごとに複数の時間帯に分割して、時間帯ごとに前記運転パラメータの特徴量を算出して、該特徴量の数値ベクトルを生成することにより行われる、請求項１０に記載の基準値の生成方法。
【請求項１２】
前記クラスタリングは、異なる初期値をもつ第１の複数のコアベクトルを中心として、前記時間帯ごとの数値ベクトルと該複数のコアベクトルとの近似度を算出して、各数値ベクトルを最も近似度の高いコアベクトルを中心とするクラスタに所属させ、前記第１の複数のクラスタを生成する、請求項１１に記載の基準値の生成方法。
【請求項１３】
a)前記クラスタごとに、所属する複数の数値ベクトルの前記特徴量ごとの平均をとり、該平均で該クラスタの中心である前記コアベクトルの数値を置換し、
b)こうして得られたコアベクトルを用いて、再度前記時間帯ごとの数値ベクトルと複数のコアベクトルとの近似度を算出し、各数値ベクトルを最も近似度の高いコアベクトルを中心とするクラスタに所属させる、
請求項１２に記載の基準値の生成方法。
【請求項１４】
c)前記コアベクトルの中心が収束するまで、または予め定めた試行回数を終了するまで、前記a)およびb)の処理を繰り返す、請求項１３に記載の基準値の生成方法。
【請求項１５】
前記第１の複数のクラスタに数値ベクトルを所属させる処理は、所定の一つまたは複数の運転パラメータについて実行し、こうして得られた前記第１の複数のクラスタに所属する数値ベクトルに関し、より多数の運転パラメータについて前記第１の複数のクラスタごとに第２の複数の数のクラスタに２次クラスタリングする、請求項１４に記載の基準値の生成方法。
【請求項１６】
前記２次クラスタリングで得られたクラスタごとに、所属する数値ベクトルについて前記運転パラメータごとの出現頻度を算出し、該出現頻度の高い数値範囲をそれぞれの運転パラメータの基準値とする、請求項１５に記載の基準値の生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両の運転中に各車両の電子制御装置（ＥＣＵ、Electronic Control Unit）の記憶装置に保存されるデータを収集して、故障診断の基準となる各種運転パラメータの正常値データを生成することに関する。
【背景技術】
【０００２】
自動車等の車両の故障を診断するツールとしての診断装置が知られている。近年は、過去に発生した故障情報をデータベースに登録して新たに発生した故障の原因を推定する、いわゆるエキスパートシステムを診断機に使用することが検討されている。エキスパートシステムには、人間の経験知識をデータベースに登録しておいて検索するルールベース型推論方式と、正常時または故障時のシステムの挙動を学習しておき、シミュレーションにより故障原因を探求するモデルベース型推論方式とがある。
【０００３】
前者の方式は、仕組みが単純で比較的高い信頼性が期待できるが、知識をルール化するのが難しく、対象となるシステムに変更が加えられるたびにルールを追加または修正する必要がある。
【０００４】
一方、後者の方式では、操作するスタッフが十分な経験、知識を持っていなくても故障部位を推定することができ、対象となるシステムの変更に関してもある程度の汎用性が期待できる。特に同じ運転環境条件の下での正常時のデータと故障時のデータを比較する方法は、不具合の原因を発見する最も有効な手段の一つである。
【０００５】
しかしながら、車両の運転には様々な環境条件や走行パターンがあり、そのそれぞれの状況によって多数の各運転パラメータが取り得る正常値の範囲も個別に変化し得ることから、同じような条件下どうしでデータ比較して正確な判断をするための正常値データを得るためには、様々な運転状況の下での正常時のデータを収集しておく必要がある。
【０００６】
このためには、運転データ蓄積装置を設けた専用のテスト車両を利用して膨大な量の走行テストを行う必要があり、データの収集、蓄積に大きな労力を要する。
【０００７】
特許文献１には、故障の症状とこれに対応する原因の関係について正確な情報を記憶する知識データ記憶手段と、不確かな情報を記憶するレアケース記憶手段とを備えた診断装置が記載されている。
【０００８】
また、特許文献２には、設計データや過去の不具合データを解析して前向きの推論方式のＥＭＥＡとしてリレーショナルデータベースに入力し、修正ＥＭＥＡを作成して事象系列図を作成し、故障探求ツリーを作成してルールベースの参照に供し、エキスパートのノウハウを数値化してルールベースを作成することが記載されている。
【特許文献１】特開昭62-261938
【特許文献２】特開平6-95881
【発明の開示】
【発明が解決しようとする課題】
【０００９】
運転データの蓄積装置を設けたテスト車両の走行によるデータ収集の代わりに、日常に市中等を走行している通常の車両から多くの運転データを得ることができれば、テスト車両走行によるデータ収集は不要になる。
【００１０】
しかしながら、通常の車両で行われている運転データの蓄積は、不具合発生時にECUに診断用の情報として記録される不具合発生時のデータに限られている。
【００１１】
ところで、このようにECUに不具合発生時のデータとして記録・蓄積されるデータは様々な運転パラメータの集合体であるが、不具合に関係する一部のパラメータが異常値となるものの、その他の多くのパラメータは正常値である場合がほとんどである。
【００１２】
したがって、この発明は、日常的に市中等を走行している通常の車両に蓄積されている不具合発生時等の走行データを利用して、正常運転時のデータを生成する装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、この発明は、車両の不具合発生時に該車両の電子制御装置（ECU）の記憶装置に保存された不具合発生時の複数の運転パラメータについての時系列ECUデータを、基準値と比較して該車両の故障診断を行う故障診断用の基準値生成装置を提供する。この基準値生成装置は、多数の車両から得られる前記時系列ECUデータを逐次蓄積して保存する蓄積装置と、前記蓄積装置に蓄積された時系列ECUデータの数値ベクトルを生成する手段と、を備える。
【００１４】
前記数値ベクトルをクラスタリングして、特徴に応じた複数のクラスタに分類し、前記複数のクラスタのそれぞれにおいて、それぞれの運転パラメータごとに該パラメータの値について出現頻度の高い値の範囲を求め、前記頻度算出手段で得られた、出現頻度の高い値の範囲を前記運転パラメータの正常値の範囲として保存し、前記正常値の範囲を故障診用の基準値とする。
【００１５】
一実施形態では、前記数値ベクトルを生成する手段は、前記時系列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に保存されたデータを、本発明の適用対象となる走行データとしてデータ蓄積装置20に蓄積する。データ蓄積装置20に関連して基準データ作成装置30が設けられている。
【００２２】
なお、不揮発メモリ14Dに保存されたデータは、車がサービス店に持ち込まれるのを待つことなく、車載の通信装置からデータ蓄積装置20に送られるようにすることもできる。
【００２３】
表１は、一つの不具合コード発生に応じて不揮発性メモリ14Dに保存されたＯＢＳの一例を示す。この例では、運転パラメータとしてR（エンジン回転数）、V（車速）およびT（エンジンの冷却水の温度）を示してあるが、空燃比センサの出力値、O2センサの出力値、燃料噴射時間、空燃比などの多数（車種によって異なるが、例えば50〜60）のパラメータについてのデータがＯＢＳに含まれる。
【００２４】
時間は、不具合コードの発生時を基準の０秒とし、0.2秒ずつさかのぼった時間をマイナス符号で示している。
【表１】
2010089760.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)の差分の演算で求めることができる。
【数１】
2010089760.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になる。
【表２】
2010089760.tif 000005
【００４９】
カウント総数のa%以下のカウントの棒を削除する。いま、a%を1%とすると、１以下のカウント数の棒は削除されるので、表３の棒が残る。図４の例では、図４(A)のヒストグラムから図４（B）のヒストグラムに移行する。
【表３】
2010089760.tif 000006
【００５０】
残った棒のうち、隣り合う棒を結合してグループ化する。この例では、表４のようにグループ化される。
【表４】
2010089760.tif 000007
【００５１】
こうしてできたグループのうち、カウント数がカウント総数のb%以下のものを削除する。たとえば、20%以下のグループを削除すると、グループIDが３のグループが削除され、表５のグループが残る。図４の例では、図４（B）のヒストグラムから図４（C）のヒストグラムに移行する。
【表５】
2010089760.tif 000008
【００５２】
次に基準値設定ステップ39に移り、こうして残ったグループにおける列、すなわち運転パラメータの特徴量の範囲を正常値の範囲とする。この例では、0.0 − 0.1および0.3 − 0.7 が正常値の範囲である。データ処理を簡単にするため、正常値の範囲を一つにまとめて故障診断に用いる基準値の範囲とする。この例では、基準値の範囲は、0.0 − 0.7となる。図４の例では、図４（C）から図４（D）に移行する。
【００５３】
以上の説明のように、本実施例では６００の運転状況が異なる条件下での各運転パラメータの正常値範囲を生成することができる。
【００５４】
この正常値データを利用して故障車両の診断を行なうには、まず、診断機で故障車両の診断対象ＥＣＵデータを読み取って、正常値データ（異なる運転状況としての６００の運転状況データ）の中から最も類似する運転状況データを検索する。次に、この検索結果の正常値データと診断対象のＥＣＵデータを比較することにより、同じ運転条件下で各運転パラメータのうちでどのパラメータが基準値（正常値範囲）からはずれているかが判別され、この判別に基づいて不具合箇所の探索を行うことができる。
【００５５】
なお、最も類似する運転状況データの検索手法はいろいろあるが、一例としては、本実施例で説明したようにＥＣＵデータの各運転パラメータの特徴量を算出し、このＥＣＵデータと類似する正常値データを６００個の正常値データの中から近似検索することによって対象となる正常値データを選択することができる。
【００５６】
以上にこの発明を具体的な実施例について説明した。この発明は、このような実施例に限定されるものではない。
【図面の簡単な説明】
【００５７】
【図１】この発明の一実施例の装置の全体的な構成を示す図。
【図２】基準値生成のプロセスの流れを示す図。
【図３】運転パラメータの特徴量を表す数値ベクトルを示す図。
【図４】特徴量の数値の出現頻度を表すヒストグラム。
【符号の説明】
【００５８】
１４      データ収集装置
１６      診断機
２０      データ蓄積装置
３０      基準データ生成装置
【図１】
2010089760.tif 000009
【図２】
2010089760.tif 000010
【図３】
2010089760.tif 000011
【図４】
2010089760.tif 000012