発明を実施するための最良の形態について画面を参照して詳細に説明する。
図1は、本実施形態に係る分析モデル解釈装置の構成の一例を示すブロック図である。分析モデル解釈装置は、監視対象からその振る舞いとして得られたデータに基づいて構築された分析モデルを解釈するための装置である。対象とする分析モデルは例えばユーザから与えられる。分析モデルは、監視対象の状態、例えば監視対象である製品が不良か否かを判定するための数式である。分析モデルは、監視対象の製品を監視するために設置されたセンサで観測され収集された数値データおよび/または上記数値データを加工した数値データを入力とし、当該製品が不良である確率、あるいは当該製品が不良か否かの判定結果を出力する。この分析モデルを解釈することにより得られた情報は監視対象の状態を判定するのに利用することができる。モータ製造工程を例にとれば、モータの振動を示す振幅や周波数のデータを取得し、そのデータを基に分析モデルを構築し、その分析モデルを解釈することにより、不良品など異常を検知することができる。
本実施形態の分析モデル解釈装置1は、分析モデルにより監視対象の異常を判定する方法に関する情報を提示するものである。また、本実施形態の分析モデル解釈装置1は、ユーザから受理した対象分析モデルと過去に生成した分析モデルとを比較することにより、対象分析モデルの元となったデータには含まれていなかった領域で異常を検知するための特徴量を生成する方法を提示するものである。
図1を参照すると、分析モデル解釈装置1は、メモリ2、ストレージ3、メモリポート4、プロセッサ5、ネットワークI/F(Interface)6、WAN(Wide Area Network)8、およびユーザI/F9を有する。メモリポート4には適宜USB(Universal Serial Bus)メモリ7が着脱される。上記WAN8は一例であり、LAN(Local Area Network)やその他のいかなるネットワークであってもよい。ストレージ3はプログラムおよび/または各種データを格納する。ここでいうデータには、分析モデルを表すモデルデータ、分析モデルを解釈する処理に用いるパラメータや設定のデータが含まれる。ユーザI/F9は、キーボード、マウス、表示装置等であり、ユーザからの入力を受け付け、またユーザへの出力を提示する。
メモリ2は、特徴量解釈プログラム11および特徴量生成方法選出プログラム12を含む分析モデル解釈プログラム10が記憶される。プロセッサ5は、ユーザI/F9からの入力に応じて、それらのプログラムを実行し、処理結果に基づく情報をユーザI/F9へ出力する。
特徴量解釈プログラム11は、ユーザから受理した分析モデル(対象分析モデル)の特徴量を所定の複数の異常判定特徴に分類する。ここで、異常判定特徴とは、分析モデルにより監視対象が異常か否か判定するための指標である。この異常判定特徴は、分析モデルによる異常の判定に関する特徴をユーザが理解しやすいように定められる。
特徴量生成方法選出プログラム12は、ユーザから受理した分析モデル(対象分析モデル)の異常判定域と過去に生成した分析モデル(参照分析モデル)の異常判定域とを比較し、対象分析モデルに用いられたデータにおいて未収集の領域で監視対象が異常であるか否か判定するための特徴量を生成する方法を選出する。ここで、異常判定域とは、それぞれの異常判定特徴を軸とした多次元空間上において、分析モデルが不良であると判定する領域のことをいう。
なお、特徴量解釈プログラム11と特徴量生成方法選出プログラム12とは一体的に構成されてもよいし、別々に構成されてもよい。また、特徴量解釈プログラム11および/または特徴量生成方法選出プログラム12を複数のソフトウェアプログラムで実現してもよい。
図2は、本実施形態に係るモデル解釈装置の概略ブロック図である。プロセッサ5が特徴量解釈プログラム11を実行することにより特徴量解釈部100が実現される。また、プロセッサ5が特徴量生成方法選出プログラム12を実行することにより特徴量生成方法選出部200が実現される。特徴量解釈部100には特徴量抽出部101と特徴量分類部102が含まれる。特徴量生成方法選出部200には異常判定域作成部201、類似モデル選出部202、異常域差分算出部206、および特徴量生成方法抽出部207が含まれる。類似モデル選出部202には重複率算出部203とランキング作成部205が含まれ、その重複率算出部203には異常域平行移動部204が含まれる。
特徴量抽出部101は、分析モデルを作成するためのプログラムを用いて、ユーザから受理した分析モデルの特徴量を示す変数を抽出し、特徴量分類部102は、特徴量抽出部101が抽出した変数を、その変数が該当する異常判定特徴に分類する。
異常判定域作成部201は、対象分析モデルである分析モデルと良品および不良品から取得したサンプルデータとを受理し、サンプルデータを分析モデルに適用して、分析モデルの異常判定域を特定し、異常判定域記憶部33に登録する。
類似モデル選出部202は、過去に異常判定域記憶部33に登録された分析モデル(参照分析モデル)の中から、対象分析モデルと類似する分析モデル(類似分析モデル)を選出する。
異常域差分算出部206は、対象分析モデルの異常判定域と類似分析モデルの異常判定域との差分を算出する。
特徴量生成方法抽出部207は、異常域差分算出部206が算出した異常判定域の差分で特徴量生成手順記憶部30を検索し、対象分析モデルの元データが未収集の領域における特徴量を生成する方法を取得する。
重複率算出部203は、対象分析モデルと参照分析モデルとの異常判定域の重複率を算出する。ランキング作成部205は、重複率算出部203が算出した重複率が高い順に参照分析モデルを並べる。例えば重複率が所定の閾値よりも高い参照分析モデルが類似分析モデルとなる。
異常域平行移動部204は、対象分析モデルの異常判定域の始点を参照分析モデルの始点に一致させるように対象分析モデルを軸方向に平行移動する。
特徴量生成手順記憶部30は、異常判定する特徴量を生成するため手順を示す特徴量生成手順データを記憶する。
変数変換方法記憶部31は、分析モデルを作成するためのプログラム中において変数を変換する前および後の変数名と、変数を変換する関数とを示す変数変換方法データを記憶する。
変数/モデル特性記憶部32は、変数と分析モデルの異常判定特徴とを示すデータを記憶する。
異常判定域記憶部33は、分析モデルの異常判定域を示す異常判定域データを記憶する。
重複レコードペア記憶部34は、異常判定域が重複する分析モデルのペアを示す重複レコードペアデータを記憶する。
図3は、本実施形態において分析モデルを異常判定特徴に分類する処理を示すフローチャートである。
特徴量抽出部101は、分析モデルと、その分析モデルの説明変数名と、その分析モデルの元データの変数名、その分析モデルを作成するためのプログラムと、をユーザから受理し、それらを含む分析モデルのデータセットに対してモデルIDを発行する(ステップS10)。そして、特徴量抽出部101は、データセットに含まれる説明変数名の中から1種類の説明変数を選択し、処理対象とする説明変数の処理待ちの待ち行列に追加する(ステップS11)。その後、特徴量抽出部101は、待ち行列から説明変数を取り出す(ステップS12)。ここで、モデルIDとは、前記分析モデルを一意に識別する識別子である。
次に、特徴量抽出部101は、取りだした説明変数の変数名が元データ中の変数の変数名と一致するか否か判定する(ステップS13)。それらの変数名が一致しない場合、特徴量抽出部101は、分析モデルを生成するためのプログラムにおいて、その変数名の説明変数に値を代入している行を取得する(ステップS14)。次に、特徴量抽出部101は、当該行において説明変数に代入する値が他の変数から生成した値であるか否か判定する(ステップS15)。説明変数に代入する値が他の変数から生成した値である場合、特徴量抽出部101は、当該行において値が代入される説明変数を生成するのに用いられる変数(作成元変数)を、処理対象の変数を処理待ちの待ち行列に追加する(ステップS16)。作成元変数とは、説明変数に代入する値を作成するために演算処理が適用された変数を示す。特徴量抽出部101は、ステップS16を実行した後、当該行の演算処理(関数)の演算処理名と、当該行で値を代入される説明変数の変数名と、その説明変数の作成元変数の変数名とを、対象分析モデルの特徴量(変数)のリストの末尾に加える(ステップS17)。
次に、特徴量抽出部101は、待ち行列が空か否か判定する(ステップS18)。待ち行列が空であれば、特徴量抽出部101は、変数を分類する説明変数分類処理を実行する(ステップS19)。説明変数分類処理の詳細は図5を用いて後述する。待ち行列が空でなければ、特徴量抽出部101はステップS12に戻る。
特徴量抽出部101は、ステップS19を実行した後、待ち行列に追加していない変数が残っているか否か判定する(ステップS20)。待ち行列に追加していない変数が残っていれば特徴量抽出部101はステップS11に戻る。待ち行列に追加していない変数が残っていなければ特徴量抽出部101は、特徴量のリストを特徴量分類部102に出力して処理を終了する。
ステップS13において、説明変数の変数名が元データ中の変数の変数名と一致した場合、特徴量抽出部101はステップS18に進む。また、ステップS15において、説明変数に代入する値が他の変数から生成した値ではない場合、特徴量抽出部101はステップS20に進む。
以下、分析モデルを異常判定特徴に分類する処理の具体例を示す。ここでは分析モデルをy=w1*x1+w2*x2とする。分析モデルを作成するためのプログラムを図4に示す。プログラム400において、元データ401は、分析モデルを構築するために用いた元データである。すなわち、row_dataは、分析モデルの元データの変数である。特徴量402は、分析モデルの変数となった特徴量である。すなわち、x1とx2は分析モデルの説明変数である。
まず、特徴量抽出部101は、ステップS11で変数x1を待ち行列に追加する。次に、特徴量抽出部101は、ステップS12で待ち行列から変数を取りだす。このとき待ち行列には変数x1しかないので、それが取りだされる。
次に、特徴量抽出部101は、ステップS13において、取りだした変数x1が、図4に示された元データの変数row_dataと一致しないためにステップS14に移行する。
特徴量抽出部101は、ステップS14において、図4のプログラムから変数x1に値を代入している行を取得する。具体的には、特徴量抽出部101は、プログラムの4行目のx1,x2=select_freq(train_data)を取得することになる。次に、特徴量抽出部101は、ステップS15の判定において、当該行において変数x1に代入されている値は、他の変数train_dataから生成した値である、ステップ16に移行する。ステップS16では、特徴量抽出部101は他の変数train_dataを待ち行列に追加する。
続いて、特徴量抽出部101は、ステップS17において、演算処理名select_freq、変数名x1、作成元変数名train_dataをリストの末尾に加える。ステップS18の判定で待ち行列が空ではないため、特徴量抽出部101はステップS12に移る。今度は、特徴量抽出部101は、ステップS12において、待ち行列から変数名train_dataを取り出すことになる。
次いて、特徴量抽出部101は、上記ステップS11からステップS18までをもう一度繰り返し実行する。その結果、プログラムの3行目にある、演算処理名train_test_split、変数名train_data、作成元変数名freq_dataがリストの末尾に加えられる。
更に、特徴量抽出部101は、ステップS11に戻り、ステップS11からステップS18までをもう一度繰り返し実行する。その結果、プログラムの2行目にある、演算処理名FFT、変数名freq_data、作成元変数名row_dataがリストの末尾に加えられる。
続いて、特徴量抽出部101は再びステップS11に移行する。ステップS12において待ち行列から取りだされる変数は変数名row_dataなので、ステップS13において、その変数の変数名row_dataと元データの変数の変数名row_dataが一致する。そのため特徴量抽出部101はステップS18に移行する。今度はステップS18の判定で待ち行列が空であるため、特徴量抽出部101はステップS19に移行する。
ステップS19において、特徴量抽出部101は、説明変数分類処理により変数x1の分類を行う。ここでは変数x1は、異常判定特徴である定常的な周波数を示す“周波数(定常)”に分類されるものとする。
続いて、特徴量抽出部101は、ステップS20において、待ち行列に追加していない変数があるか否か確認する。ここでは変数x2をまだ待ち行列に追加されていないので、特徴量抽出部101は、ステップS11に戻り、ステップS11において変数x2を待ち行列に追加する。
その後、特徴量抽出部101は、変数x2について、上述した変数x1に対する処理と同様の処理を実行する。そして、ここではステップS19において、変数x2は“周波数(定常)”に分類されるものとする。そして、特徴量抽出部101は、ステップS20における判定で、待ち行列に追加していない変数がないので、一連の処理を終了することになる。
図5は、図3のステップS19に示された説明変数を分類する処理の詳細フローチャートである。特徴量分類部102は、特徴量抽出部101からリストを受理し、リストに蓄積されたデータを逆順に並び替えて、変数変換方法記憶部31に登録する(ステップS100)。続いて、特徴量分類部102は、各異常判定特徴の基本的な関数の適用順序(以下、この関数の適用順序を「基本形」と称する)を異常判定特徴毎のレコードとして記憶している特徴量生成手順記憶部30から、1つの異常判定特徴のレコードを選択し(ステップS101)、変数変換方法記憶部31に登録されたリストと、選択したレコードにおける基本形とを突き合わせることにより、変数変換方法記憶部31に登録されたリストと基本形(関数適用順序データ)における関数の順序が一致するか否か判定する(ステップS102)。
関数の適用順序のレコードにおける基本形は、異常判定特徴を生成するための関数のリストであり、そのリストには、関数の各レコードには関数の演算処理名が基本形における適用順に並んで記録されている。以降、この基本形のことを関数適用順序データとも呼ぶ。
なお、ここでの変数変換方法記憶部31に登録されたリストと基本形(関数適用順序データ)における関数の順序の一致は、基本形に順序付けて含まれている全ての関数が、変数変換方法記憶部31に登録されたリストにおいて、その順序で登場することを意味している。変数変換方法記憶部31に登録されたリストに、基本形に含まれていない関数が含まれていても関数の順序が一致すると判定される場合がある。ステップS102にて、変数変換方法記憶部31に登録されたリストと、選択したレコードにおける基本形のリストとを突き合わせる処理の詳細は図9を参照して後述する。
特徴量分類部102は、一致フラグが立っている場合、すなわち、ステップS102を実行した結果、変数変換方法記憶部31に登録されたリストにおける関数の順序が関数適用順序データに示された関数の順序と一致していると判定した場合(ステップS103でYES)、分析モデルのモデルIDと、変数変換方法記憶部31に記録されたリスト内の変数と、その変数が該当した異常判定特徴を示す異常判定特徴IDとを変数/モデル特性記憶部32に登録し(ステップS106)、終了する。
一方、ステップS103において、一致フラグが立っていなかった場合、特徴量分類部102は、ステップS101の処理において未だ選択していない関数適用順序データのレコードがあるか否かを確認する(ステップS104)。未だ選択していない関数適用順序データのレコードがある場合、特徴量分類部102は、ステップS101に戻って次のレコードを選択する。未だ選択していない関数適用順序データのレコードがない場合、特徴量分類部102は、変数変換方法記憶部31に記録されたリスト内の変数を、どの異常判定特徴にも分類されなかった変数(未分類データ)として変数/モデル特性記憶部32に登録し(ステップS105)、終了する。
以下、説明変数を分類する処理の具体例を示す。
ステップS100にて、特徴量分類部102は、特徴量抽出部101からリストを受理する。ここで、上記リストの各行は、3つの要素からなるリストであり、3つの要素は、先頭(左)から順に演算処理名、変数名、作成元変数名である。受理した対象分析モデル特徴量のリストが((select_freq,x1,train_data),(train_test_split,train_data,freq_data),(FFT,freq_data,row_data))であるとする。例えば、(select_freq,x1,train_data)は、関数の演算処理名がselect_freqであり、値を代入される説明変数の変数名がx1であり、その説明変数の作成元変数の変数名がtrain_dataであることを示している。そして、特徴量分類部102は、その受理したリストの特徴量を逆順に入れ替えて変数変換方法記憶部31に登録する。登録されるリストは、((FFT,freq_data,row_data),(train_test_split,train_data,freq_data),(select_freq,x1,train_data))となる。
変数変換方法記憶部31に登録されたリストは図6に示すようなものとなる。変数変換方法記憶部31には、ID310、演算処理名311、変数名312、作成元変数名313から構成されたエントリが複数登録されている。ID310は、エントリを一意に特定するための識別番号を示す。演算処理名311は、変数名312に格納された値を生成するために用いた関数の名称を示す。変数名312は、作成元変数名313に格納された値を、演算処理名311に格納された名称の関数に適用し、その出力結果を格納するための変数の名称を示す。作成元変数名313は、演算処理名311に格納された名称の関数に適用した変数の名称を示す。例えば、変数名が“row_data”である変数の値を、関数名がFFTである関数に適用し、その関数の出力を“freq_data”という名称の変数に格納した場合には、図6のID310が“1”であるエントリのように、演算処理名311が“FFT”であり、変数名312が“freq_data”であり、作成元変数名313が“row_data”であるエントリが変数変換方法記憶部31に登録される。
その後、特徴量分類部102は、ステップS101にて、特徴量生成手順記憶部30からレコードを1種類選択する。図7に特徴量生成手順記憶部30に格納されている異常判定特徴の特徴量生成手順を示すデータが示されている。図7を参照すると、特徴量生成手順記憶部30には、ID300、異常判定特徴301、基本形302から構成されたエントリが複数登録されている。ID300は、エントリを一意に特定するための識別番号を示す。異常判定特徴301は、それぞれの異常判定特徴の名前を示す。基本形302は、当該異常判定特徴を生成するために適用する関数群の各関数の名称をその関数を適用する順序に配列した関数名のリストを示す。
例えば、定常的に周波数が高いときに異常であると判定するための特徴量が、振動データにFFT(Fast Fourier Transform)を適用して生成されるものである場合、特徴量生成手順記憶部30には、異常判定特徴301が、定常的に周波数が高いときに異常判定するということを示す“周波数(定常)”であり、基本形302が“FFT”であるエントリが登録される。図7には、ID300が“1”であるエントリとして、異常判定特徴301に“周波数(定常)”、基本形302に“FFT”がそれぞれ設定されたエントリがある。
続いて、特徴量分類部102は、ステップS102~S103にて、変数変換方法記憶部31に登録されたリストの演算処理名311の欄と、特徴量生成手順記憶部30から選択したレコードの基本形302の欄とを突き合わせて関数の適用順序が一致しているか否か判定する。
ここでは、基本形302の欄にFFTのみが設定されており、演算処理名311の欄にFFTが含まれているため、関数の適用順序が一致したと判定される。そこで、特徴量分類部102は、変数/モデル特性記憶部32の変数特性記憶部32Aに、対象分析モデルのモデルID“1”、変数x1、その変数が該当した異常判定特徴の異常判定特徴ID“1”を登録する。図8には、変数特性記憶部32Aに登録された変数の分類のデータが示されている。図8を参照すると、変数特性記憶部32Aには、モデルID320、変数名321、異常判定特徴ID322から構成されたエントリが複数登録されている。
モデルID320は、分析モデルを一意に特定する識別子を示す。変数名321は、その分析モデルの変数となっている特徴量の名称を示す。異常判定特徴ID322は変数名321に示された名称の変数が該当する異常判定特徴を示す識別子を示す。異常判定特徴ID322には、図7に例示した特徴量生成手順記憶部30に登録されたID300と同じ値が格納される。例えば、モデルIDが1である分析モデルに関して、特徴量が変数x1であり、変数x1の周波数が定常的に高いときに異常と判定する場合、図8に示すように、モデルID320が“1”であり、変数名321が“x1”であり、異常判定特徴IDが“1”であるエントリが変数特性記憶部32Aに登録される。ここでは、定常的に周波数が高いときに異常と判定する異常判定特徴の異常判定特徴IDは1であるとしている。図8の1行目には、モデルID“1”、変数x1、異常判定特徴ID“1”が示されている。
図9は、図5のステップS102に示した、リストと関数適用手順データを突き合わせる処理の詳細フローチャートである。図9の処理のためにカウンタ値を格納する変数i、jが定義される。最初に、特徴量分類部102は、変数i、jに0を代入する(ステップS1000)。
次に、特徴量分類部102は、関数適用順序データにおけるある行からi番目の関数名を取得し(ステップS1001)、変数変換方法記憶部31に登録されたリストからj番目(j行目)の関数名を取得する(ステップS1002)。ここで取得される関数適用順序データはステップS101で選択されたレコードのデータである。また、ここで取得される関数名は、ステップS100にて関数を逆順にしたリストである。
関数適用順序データのi番目の関数名がリストのj番目の関数名と一致する場合(ステップS1003のYES)、特徴量分類部102は、変数iをインクリメントする(ステップS1004)。続いて、特徴量分類部102は、変数jをインクリメントする(ステップS1005)。
次に、特徴量分類部102は、変数iが関数適用順序データの要素数(関数の個数)と一致するか否か判定する(ステップS1006)。変数iが関数適用順序データの要素数と一致した場合には、特徴量分類部102は、一致フラグを立てて(ステップS1007)、終了する。
ステップS1006において、変数iが関数適用順序データの要素数(関数の個数)と一致しない場合、特徴量分類部102は、変数jが、変数変換方法記憶部31に登録されたリストの要素数(関数の個数)と一致するか否か確認する(ステップS1008)。
変数jが、変数変換方法記憶部31に登録されたリストの要素数(関数の個数)と一致する場合(ステップS1008のYES)、特徴量分類部102は、本処理を終了する。変数jが、変数変換方法記憶部31に登録されたリストの要素数(関数の個数)と一致しない場合(ステップS1008のNO)、特徴量分類部102はステップS1001に戻る。
以下、リストと関数適用順序データを突き合わせる処理の具体例を示す。
ここでは、図6に示したリストと、図7の1行目(ID300=1)に示した「周波数(定常)」という異常判定特徴の関数適用順序データとを突き合わせる例を示す。
図7を参照すると、関数順序データの基本形の関数のリストが(FFT)である。図6を参照すると、特徴量に対する関数の適用順序のリストが(FFT,train_test_split,select_freq)である。
ステップS1001にて、特徴量分類部102は、変数i=0なので、図7の関数適用順序データから0番目の関数の関数名FFTを取得する。そして、ステップS1002にて、特徴量分類部102は、変数j=0なので、図6のリストから0番目の関数の関数名FFTを取得する。
そして、特徴量分類部102は、ステップS1003で、ステップS1001で取得した関数名と、ステップS1002で取得した関数名とが一致するか否か判定する。ここでは一致するので、特徴量分類部102は、ステップS1004で、変数iをインクリメントしてi=1とし、ステップS1005で変数jをインクリメントしてj=1とする。
続いて、特徴量分類部102は、ステップS1006において、変数iと関数適用順序データの要素数とを比較する。ここでは、図7の関数適用順序データの要素はFFTだけであり、要素数が1なので、変数iと関数適用順序データの要素数が一致する。特徴量分類部102は、ステップS1007に移行し、当該関数適用順序データに対応する一致フラグを立てて処理を終了する。
図10は、本実施形態において異常判定域のデータを作成する処理のフローチャートである。
異常判定域作成部201は、ユーザから対象分析モデルと、良品および不良品から取得したサンプルデータと、不良判定閾値とを受理する(ステップS21)。不良判定閾値は、データにおける変数の値により監視対象が良品か不良品かを判定するための閾値である。
図11は、異常判定域を特定する方法の一例を説明するための図である。複数の変数がある場合には、不良判定閾値は、例えば、図11に示すように、各変数を軸とする空間において、良品の領域と不良品の領域を分ける線あるいは面として示される。図11において、縦軸の変数は50Hzにおける音圧であり、横軸の変数は20Hzにおける音圧である。不良判定閾値404は、分析モデルがサンプルデータを良品のデータか不良品のデータか判定するための境界線である。不良品データ405は、不良品から収集した振動のデータである。不良判定境界点406は、不良判定閾値404上にあり、サンプルデータを不良データか否かを判定するための境界点である。
異常判定域作成部201は、サンプルデータを1種類選択して対象分析モデルに適用する(ステップS22)。そして、異常判定域作成部201は、対象分析モデルによりサンプルデータが良品のデータと判定されるか不良品のデータと判定されるかを判定する(ステップS23)。対象分析モデルによりサンプルデータが不良品のデータであると判定した場合(ステップS23のYES)、異常判定域作成部201は、特徴量を1つ選択し(ステップS24)、不良判定境界点を算出し、異常判定域記憶部33にレコードを登録する(ステップS25)。
ここで不良判定境界点は、対象分析モデルがサンプルデータを不良品か否か判定する境界点を示す。サンプルデータが不良と判定されるように、不良判定境界点が決定される。図11の例では、サンプルデータが不良品データ405である。不良品データ405から各軸に垂直に移動し、不良判定閾値404と交差した点が不良判定境界点406である。
ステップS25実行後、異常判定域作成部201は、未だ選択していない特徴量があるか否か判定する(ステップS26)。未だ選択していない特徴量があれば異常判定域作成部201はステップS24に戻る。未だ選択していない特徴量がなれば異常判定域作成部201は、未だ選択していないサンプルデータがあるか否か判定する(ステップS27)。未だ選択していないサンプルデータがあれば異常判定域作成部201はステップS22に戻る。未だ選択していないサンプルデータがなれば異常判定域作成部201は、異常判定特徴(図11における軸)毎に合計異常判定域を算出する(ステップS28)。合計異常判定域は、各軸上における不良品データ405の値と不良判定境界点406の値との差を、各軸の分だけ合計した値である。図11の例では、横軸の(30-10)dBと、縦軸の(60-10)dBを合計した、70dBが合計異常判定域となる。
そして、異常判定域作成部201は、合計異常判定域の値の大きい順に異常判定特徴を並べてモデル特性記憶部32Bに登録し(ステップS29)、終了する。
ステップS23において、異常判定域作成部201が、サンプルデータを不良品データと判定しない場合、ステップS27に進む。
以下、異常判定域を作成する処理の具体例を示す。
ここでは、対象分析モデルのモデルIDが3であり、対象分析モデルがy=w1*x1+w2*x2と表されるものとする。サンプルデータが図11に示した不良品データ405であり、((10,60),(40,40))であるものとする。例えば、(10,60)は20Hzにおける音圧が10dBであり50Hzにおける音圧の60dBであることを示している。図11における、良品か不良品かの判定の基準は不良判定閾値404に示す曲線である。図11において不良判定閾値404上かそれよりも上側にあるデータは不良品データと判定される。ここで、上記対象分析モデルyの変数x1は20Hzに関する音圧であり、x2は50Hzに関する音圧であり、係数w1は変数x1へ加えられる重みであり、係数w2は変数x2へ加えられる重みである。サンプルデータは複数の製品から取得されたデータのリストであり、サンプルデータの各要素は1つの製品から収集した振動データの特徴量である。その要素には、20Hzにおける音圧と、50Hzにおける音圧に関する特徴量が含まれる。
図10のフローチャートにおけるステップS22において、異常判定域作成部201は、サンプルデータの中からある(10,60)というサンプルデータ405を取り出し、対象分析モデルyに代入する。図11に示すように、サンプルデータ405は不良判定閾値404よりも上側にあるので、サンプルデータ405は不良品データと判定される。
異常判定域作成部201は、ステップS24に移行し、ステップS24において、変数x1を選択する。続いて、異常判定域作成部201は、ステップS25において、図11に示すように不良判定境界点406を算出する。更に、異常判定域作成部201は、ステップS26において、変数x2が未選択であるため、ステップS24に戻る。そして、異常判定域作成部201は、ステップS25の処理を実行し、変数x2の不良判定境界点を算出する。今度は、ステップS26において未選択のサンプルデータがないために、異常判定域作成部201は、ステップS27に移行する。ステップS27において、サンプルデータ(40,40)が未だ選択されていなので、異常判定域作成部201は、ステップS22に戻ってサンプルデータ(40,40)を対象分析モデルyに適用する。
サンプルデータ(40,40)は図11に示した不良判定閾値404よりも下側に位置するので、ステップS23にて不良品データでないと判定される。したがって、異常判定域作成部201はステップS27に移行する。ステップS27において、異常判定域作成部201は、こんどは、未だ選択していないサンプルデータがないために、ステップS28に移行する。ステップS28において、異常判定域作成部201は、異常判定特徴毎に合計異常域を算出する。
ここで、“20Hzにおける音圧”という変数と、“50Hzにおける音圧”という変数は、いずれも“周波数(定常)”という異常判定特徴に該当する。各変数の異常判定域は図11に示すように、30-10=20と60-10=50である。そのため、異常判定特徴“周波数(定常)”の合計異常域は20+50=70[dB]となる。ここでは異常判定特徴が“周波数(定常)”という1つのみであるため、ステップS29においてソートされた結果は、“周波数(定常)”だけとなる。
モデル特性記憶部32Bに登録されるデータの一例を図12に示す。図12を参照すると、モデル特性記憶部32Bには、モデルID323と異常判定特徴ID324とから構成されたエントリが複数登録されている。モデルID323は、分析モデルを一意に特定する識別番号であり、図8のモデルID320と同じ値が設定される。異常判定特徴ID324は、異常判定特徴を一意に特定する識別番号であり、図8の異常判定特徴ID322と同じ値が登録される。例えば、モデルIDが1である分析モデルに関して、定常的に周波数が高いときに異常と判定する異常判定特徴と、定常的に振幅が大きいときに異常と判定する異常判定特徴とがある場合、モデルID323が“1”であり、異常判定特徴IDが“1,2”であるエントリがモデル特性記憶部32Bに登録される。ここで、定常的に周波数が高いときに異常と判定するという異常判定特徴の異常判定特徴IDは1であり、定常的に振幅が大きいときに異常と判定する異常判定特徴の異常判定特徴IDは2であるとしている。
図7に示すように、“周波数(定常)”という異常判定特徴の異常判定特徴IDが“1”なので、異常判定域作成部201は、図12に示したモデル特性記憶部32Bに、モデルIDが“3”で異常判定特徴IDが“1”であるエントリを格納する。
図13は、本実施形態において類似分析モデルを選出する処理を示すフローチャートである。
類似モデル選出部202は、対象分析モデルに関する異常判定域のレコードリストを異常判定域記憶部33から選択する(ステップS30)。更に、類似モデル選出部202は、参照分析モデルに関する異常判定域のレコードリストを異常判定域記憶部33から選択する(ステップS31)。異常判定域のレコードリストには、各異常判定特徴(軸)の異常判定域を示す情報が格納されている。類似モデル選出部202は、対象分析モデル及び参照分析モデルのレコードリストを軸名及び軸始点の複数キーによる順序に並べ替える(ステップS32)。これにより対象分析モデルの異常判定域と参照分析モデルの異常判定域とを対比しやすくなる。なお、軸には始点および/または終点が定められている場合があり、その場合それらを軸始点、軸終点と呼ぶ。
類似モデル選出部202は、それら2つの異常判定域のレコードリストを重複率算出部20に適用して異常判定域の重複率を算出する(ステップS33)。重複率を算出する処理の詳細は図15を参照して後述する。
類似モデル選出部202は、未だ選択していない参照分析モデルがあるか否か判定する(ステップS34)。未だ選択していない参照分析モデルがあれば、類似モデル選出部202は、ステップS31に戻る。
ステップS34にて未だ選択していない参照分析モデルがない場合、類似モデル選出部202は、対象分析モデルとの異常判定域の重複率が閾値以上である参照分析モデルを類似分析モデルとして抽出する(ステップS35)。その後、類似モデル選出部202は、1種類の類似分析モデルを選択し(ステップS36)、対象分析モデルと前記選択した類似分析モデルの両方のモデルIDを含むレコードを重複レコードペア記憶部34から取得する(ステップS37)。重複レコードペア記憶部34には、対象分析モデルと参照分析モデルとを重複レコードペアとし、各重複レコードペアの軸方向の相対的な調整量を示す軸差分が記録されている。ここで、軸差分とは、対象分析モデルの軸始点から参照分析モデルの軸始点を減算した値である。対象分析モデルと参照分析モデルのいずれかの軸終点が空である場合には、軸差分は空とする。
類似モデル選出部202は、取得した重複レコードペアを用いて、対象分析モデルとの差分の大きい類似分析モデルを抽出する(ステップS38)。対象分析モデルと類似分析モデルとの差分が大きいか否かは、対象分析モデルと類似分析モデルとの差分面積に基づいて決定される。対象分析モデルと類似分析モデルの差分面積は、異常判定特徴の異常判定域の重複していない領域を合計したものである。対象分析モデルとの差分の大きい類似分析モデルを抽出する処理の詳細は図17を参照して後述する。
続いて、類似モデル選出部202は、未だ選択していない類似分析モデルがあるか否か判定する(ステップS39)。未だ選択していない類似分析モデルがあれば、類似モデル選出部202はステップS36に戻り、新たな類似分析モデルを選択して処理を繰り返す。ステップS39において未だ選択していない類似分析モデルがない場合、類似モデル選出部202は、各類似分析モデルにおける対象分析モデルとの差分の大きい異常判定特徴を出力し(ステップS40)、終了する。
以下、類似分析モデルを選択する処理の具体例を示す。
図14は、異常判定域記憶部33に格納されるデータの一例を示す図である。異常判定域記憶部33には、ID330、モデルID331、軸名332、軸始点333、軸終点334、異常域始点335、異常域終点336から構成されたエントリが複数登録されている。ID330はエントリを一意に特定する識別番号を示す。モデルID331は分析モデルを一意に特定する識別番号を示し、図8のモデルID320と同じ値が設定される。軸名332は、軸に対応付けられた異常判定特徴の異常判定特徴IDを示し、図7の異常判定特徴301と同じ値が設定される。軸始点333及び軸終点334は、それぞれ、軸名332に格納された異常判定特徴を軸とした場合の軸の始点及び終点を示す。異常域始点335及び異常域終点336は、軸始点333の値から軸終点334の値までの範囲における異常判定域の始点及び終点を示す。例えば、モデルIDが1の分析モデルに関して、周波数が10Hzであり振動音が10dBから30dBまでの範囲にある場合に異常であると判定する場合、モデルID331が“1”であり、軸名332が“周波数(定常)”であり、軸始点333が“10Hz”であり、異常域始点335が“10dB”であり、異常域終点336が“30Hz”であるエントリが、異常判定域記憶部33に登録される。図14の例では、ID330が“1”であるエントリにそのデータが格納されている。この例では、軸に終点がないので、軸終点334が空(-)となっている。
ここでは、ステップS30において、類似モデル選出部202は、モデルID=3である対象分析モデルの異常判定域のレコードリストとして、図14におけるID=5のレコードと、ID=6のレコードを取得する。そして、ステップS31において、類似モデル選出部202は、モデルID=1である参照分析モデルを選択する。図14の例では、ID=1、2、3の3種類のレコードが取得される。
ステップS32を経て、ステップS33において、類似モデル選出部202が算出する対象分析モデルと参照分析モデルの異常判定域の重複率は83%である。ここではステップS34にて未選択の参照分析モデルはないものとする。
また、ここでは類似分析モデルとするか否かを判定するための重複率の閾値が60%であるとする。重複率83%が閾値60%以上であるため、ステップS35において、類似モデル選出部202は、モデルID=1の参照分析モデルを、モデルID=3の対象分析モデルの類似分析モデルとして選出する。類似モデル選出部202は、ステップS36にてその類似分析モデルを選択し、ステップS37にて、その対象分析モデルと参照分析モデルのペアについての重複レコードペアを取得する。その重複レコードペアにはそれら対象分析モデルと参照分析モデルの軸差分が記録されている。
ステップS38では、類似モデル選出部202は、軸差分を利用して、対象分析モデルと参照分析モデルとにおいて軸名が一致する軸(共通する異常判定特徴)の異常判定域の重複していない領域の面積を合計した差分面積を算出する処理(図17)を実行する。ここでは、“振幅(定常)”という異常判定特徴に関する差分面積が抽出される。その後、ステップS39にて未だ選択していない類似分析モデルはないので、類似モデル選出部202は、ステップS40において、対象分析モデルに関して、データが十分に収集されていない異常判定特徴として“振幅(定常)”を出力してユーザに提示する。またその異常判定特徴の特徴量生成方法をユーザに提示してもよい。
図15は、図13のステップS33に示した、対象分析モデルと参照分析モデルとの異常判定域の重複率を算出する処理のフローチャートである。本処理において参照分析モデルは類似分析モデルであってもよい。
重複率算出部203は、対象分析モデルに関する異常判定域のレコードリストから1種類のレコードを選択する(ステップS200)。また、重複率算出部203は、参照分析モデルに関する異常判定域のレコードリストから1種類のレコードを選択する(ステップS201)。そして、重複率算出部203は、参照分析モデルの取得したレコードに対して、取得を行ったことを示すチェックフラグを立てる(ステップS202)。
続いて、重複率算出部203は、対象分析モデルと参照分析モデルの重複面積を算出する(ステップS203)。具体手には、重複率算出部203は、まず、対象分析モデルの軸始点に参照分析モデルのレコードに示された軸始点の値を代入する。次に、重複率算出部203は、対象分析モデルのレコードにおける軸終点が空であれば、対象分析モデルのレコードにおける軸始点から参照分析モデルの軸始点を減算し、減算により得られた値を対象分析モデルの軸終点に代入する。空というのは値が存在しないことを言う。更に、重複率算出部203は、軸重複長と異常判定域重複長との積を算出し、得られた値を、対象分析モデルと参照分析モデルの重複面積とする。
ここで、軸重複長は、対象分析対象モデルと参照分析モデルのレコードにおける重複している軸上の部分の長さである。軸重複長は以下のように算出される。
(a) 対象分析モデルのレコードにおける軸終点と参照分析モデルのレコードにおける軸終点とがいずれも空(値が存在しない)でなければ、軸重複長は式(1)で算出される。
軸重複長=MIN(axis_x.tail,axis_y.tail)-MAX(axis_x.head,axis_y.head)・・・(1)
式(1)において、MIN(x,y)はxとyの値の小さい方を返す関数である。MAX(x,y)はxとyの値の大きい方を返す関数である。axis_x.tailは対象分析モデルのレコードにおける軸終点の値である。axis_y.tailは参照分析モデルのレコードにおける軸終点の値である。axis_x.headは対象分析モデルのレコードにおける軸始点の値である。axis_y.headは参照分析モデルのレコードにおける軸始点の値である。
(b) 対象分析モデルのレコードにおける軸終点と参照分析モデルのレコードにおける軸終点とのいずれか一方のみが空(値が存在しない)であり、かつ、軸終点が空でない方の軸始点の値が他方の軸始点以上軸終点以下であれば、軸重複長=1とする。
(c) 対象分析モデルのレコードにおける軸終点と参照分析モデルのレコードにおける軸終点とのいずれもが空であり、軸始点が一致する場合には軸重複長=1とする。
(d) 上記(a)~(c)のいずれにも該当しない場合には軸重複長=0とする。
また、ここで、異常判定域重複長は、特定の異常判定特徴における特定の区間または点に関して、対象分析モデルと参照分析モデルの異常判定域が重複する部分の長さである。異常判定域重複長は式(2)により算出される。
異常判定域重複長=MIN(region_x.tail,region_y.tail)-MAX(region_x.head,region_y.head)・・・(2)
式(2)において、region_x.tailは対象分析モデルのレコードの異常域終点である。region_y.tailは参照分析モデルのレコードの異常域終点である。region_x.headは対象分析モデルのレコードの異常域始点である。region_y.headは参照分析モデルのレコードの異常域始点である。異常域始点は異常判定域の始点のことである。
ステップS204にて、重複率算出部203は、重複面積が0より大きいか否か判定する。重複面積が0より大きい場合(ステップS204のYES)、重複率算出部203は、重複面積を合計重複面積に加算する(ステップS205)。更に、重複率算出部203は、対象分析モデルのモデルID、参照分析モデルのモデルID、軸差分をそれぞれ元レコードID340、先レコードID341、軸差分342として重複レコードペア記憶部34に登録する(ステップS206)。
ステップS206を実行した後、あるいはステップS204にて重複面積が0以下であったとき、重複率算出部203は、参照分析モデルのレコードリスト中にチェックフラグが立っていないレコードがあるか否か判定する。チェックフラグが立っていないレコードは、ステップS201にて選択されていないレコードである。参照分析モデルのレコードリスト中にチェックフラグの立っていないレコードがある場合(ステップS207のYES)、重複率算出部203は、ステップS201に戻ってチェックフラグが立っていないレコードを選択する。
参照分析モデルのレコードリスト中にチェックフラグの立っていないレコードがない場合(ステップS207のNO)、重複率算出部203は、参照分析モデルのレコードリスト内の全てのチェックフラグをリセットする(ステップS208)。更に、重複率算出部203は、対象分析モデルのレコードリストからステップS200にて選択してないレコードがあるか否か判定する(ステップS209)。対象分析モデルのレコードリストに選択されていないレコードがあれば、重複率算出部203は、ステップS200に戻って未だ選択されていないレコードを選択する。
ステップS209にて対象分析モデルのレコードリストに選択されていないレコードがなければ、重複率算出部203は、対象分析モデルのレコードリストのモデル面積を算出する(ステップS210)。ここでモデル面積は、対象分析モデルの全てのレコードの軸長と異常判定域長の積を合計したものである。軸長は軸始点から軸終点までの長さである。ただし軸終点が空である場合には軸長を1とする。異常判定域長は、異常域始点から異常域終点までの長さである。
更に、重複率算出部203は、上述した合計重複面積を、上述したモデル面積で除算して得られた値を重複率とする(ステップS211)。
以下、対象分析モデルと類似分析モデルの重複率を算出する処理の具体例を示す。
ここでは、対象分析モデルのモデルIDが3であり、参照分析モデルのモデルIDが1であるとする。また、モデルIDが1、2、3という3つの分析モデルに関する異常判定域のレコードが図14に示した通りであるとする。すなわち、モデルIDが1である参照分析モデルの異常判定域について、図14に示されたIDが1、2、3というレコードがある。モデルIDが3である対象分析モデルの異常判定域について、図14に示されたIDが5、6というレコードがある。
まず、ステップS200において、重複率算出部203は、図14に示されたレコードリストから、対象分析モデルのレコードとして、IDが5のレコードを選択する。続いて、ステップS201において、重複率算出部203は、図14に示されたレコードリストから、参照分析モデルのレコードとして、IDが1のレコードを選択する。そして、ステップS202において、重複率算出部203は、IDが1のレコードにチェックフラグを立てる。
ステップS203において、重複率算出部203は、図14に示された異常判定域のリストにおいて、IDが5のレコードの軸始点の値が10Hzである一方、IDが1のレコードの軸始点の値が20Hzであるため、異常域平行移動部204により、IDが5のレコードの軸始点の値に20Hzを代入して異常判定域を平行移動する。そして、重複率算出部203は、平行移動した後のIDが5のレコードとIDが1のレコードとの異常判定域の重複面積を算出する。ここで求まる重複面積はMIN(40,30)-MAX(10,10)=20となる。
重複率算出部203は、ステップS204の判定において重複面積が0より大きいためステップS205に移行する。ステップS205において、重複率算出部203は、保持している合計重複面積に、今回算出した重複面積の20を加算する。続いて、重複率算出部203は、ステップS206において、重複レコードペア記憶部34に重複レコードペアのエントリを登録する。
図16は、重複レコードペア記憶部34に格納されるデータの一例を示す図である。重複レコードペア記憶部34には、2つの分析モデル例えば対象分析モデルと参照分析モデルとの異常判定特徴の関係が示される。一方の分析モデルの異常判定特徴が元レコードとして示され、他方の分析モデルの異常判定特徴が先レコードとして示される。ここでは対象分析モデルの異常判定特徴を元レコードとして示し、参照分析モデルの異常判定域を先レコードとして示す。重複レコードペア記憶部34には、元レコードID340、先レコードID341、軸差分342から構成されたエントリが複数登録されている。元レコードID340は、対象分析モデルに関する異常判定域の各レコード(元レコード)を示す識別番号を示す。先レコードID341は、参照分析モデルに関する異常判定域の各レコード(先レコード)を示す識別番号を示す。軸差分は、それら2種類のレコードにおける異常判定特徴の軸始点333の差分を示す。ここで、元レコードおよび先レコードは、異常判定域記憶部33に格納された各レコードを示し、それらのレコードを異常判定域レコードとも呼ぶ。例えば、図14において、IDが1である異常判定域レコードと、IDが5である異常判定域レコードとに関して、その2種類のレコードの軸始点の差分が10Hzである場合、図16の重複レコードペア記憶部34には、元レコードID340が“1”であり、先レコードID341が“5”であり、軸差分342が“10Hz”であるエントリが登録される。
図15の処理において、続いて、重複率算出部203は、ステップS206において、図16に示すように、重複レコードペア記憶部34に、元レコードIDが1であり先レコードIDが5であり軸差分が10Hzであるというエントリを登録する。重複レコードペア記憶部34に格納した軸差分の10Hzは、IDが1のレコードの軸始点の値からIDが5のレコードの軸始点を減算した値である。
モデルIDが1である参照分析モデルについて、図14の異常判定域のリストにはIDが2のレコードとIDが3のレコードが未選択で残っている。したがって、ステップS207の判定がYESとなり、重複率算出部203は、上記ステップS201からステップ206までの処理を、IDが2のレコードについて実施する。さらに、重複率算出部203は、上記ステップS201からステップ206までの処理を、IDが3のレコードについても実施する。その結果、合計重複面積は50となる。その後のステップS207では、モデルIDが1である参照分析モデルの全ての異常判定域が選択され、すなわち、図14におけるIDが1、2、3のレコードに対するチェックフラグが立っているので、重複率算出部203は、ステップS208に移行してそれらのチェックフラグを、立っていない状態にリセットする。
次に、重複率算出部203は、ステップS209において、対象分析モデルについての異常判定域のレコードとして、IDが6のレコードが未選択で残っているので、ステップS200に移行する。そして、重複率算出部203は、ステップS200にてIDが6のコレードを選択し、これまでIDが5のレコードに対して実行した処理と同様の処理を実行し、それが終わるとステップS210に移行する。
ステップS210において、重複率算出部203は、IDが5の異常判定域のレコードとIDが6の異常判定域のレコードについて、異常判定域の面積を算出し、それらの合計であるモデル面積を算出する。ここではどちらのレコードも軸終点が空なので軸長は1となる。したがって、モデル面積は(40-10)+(40-10)=60となる。そして、ステップS211において、重複率算出部203は、合計重複面積=50をモデル面積=60で除算することにより、重複率83%を算出して本処理を終了する。
図17は、図13のステップS38に示した、対象分析モデルとの差分の大きい類似分析モデルを抽出する処理のフローチャートである。
異常域差分算出部206は、ステップS37において取得した重複レコードペアの情報を類似モデル選出部202から取得し、その重複レコードペアのうち1種類の重複レコードペアを選択する(ステップS212)。続いて、異常域差分算出部206は、選択した重複レコードペアの元レコードID340及び先レコードID341をキーとして異常判定域記憶部33の中を検索し、該当するレコードを特定する(ステップS213)。すなわち、異常判定域記憶部33に記憶されているレコードの中から、モデルID331が元レコードID340または先レコードID341と一致するレコードを特定する。以降、モデルID331が元レコードID340と一致した異常判定域のレコードを元レコードと呼び、モデルID331が先レコードID341と一致した異常判定域のレコードを先レコードと呼ぶことにする。
続いて、異常域差分算出部206は、元レコードと先レコードの軸名が一致するか否か判定する(ステップS214)。元レコードと先レコードの軸名が一致していたら、異常域差分算出部206は、ステップS212にて選択した重複レコードペアの軸差分が空か否かを判定する(ステップS215)。軸差分が空ではない場合、異常域差分算出部206は、異常判定域を平行移動する(ステップS216)。異常判定域の平行移動は、具体的には、元レコードの軸始点に軸差分の値を加算し、元レコードの軸終点が空ではなければ軸終点に軸差分の値を加算する処理である。
次に、異常域差分算出部206は、元レコード及び先レコードに関してそれぞれモデル面積を求め、それらの面積の和を演算し、その面積の和から、元レコードと先レコードの重複面積を減算して差分面積を算出する(ステップS217)。モデル面積の軸毎の値は、軸終点が空である場合、異常域終点から異常域始点を減算した値である。軸終点が空ではない場合、モデル面積の軸毎の値は、軸終点から軸始点を減算した値と異常域終点から異常域始点を減算した値との積である。なお、ステップS203でも差分面積を算出しているので、ステップS217では、ステップS203にて算出した差分面積を利用することにしてもよい。
異常域差分算出部206は、ステップS217で算出した差分面積を元レコードの面積で除算して、差分割合を算出する(ステップS218)。続いて、異常域差分算出部206は、差分割合が所定の閾値以上であるか否か判定する(ステップS219)。
差分割合が閾値以上であれば、異常域差分算出部206は、先レコードに対応する類似分析モデルは、元レコードに対応する対象分析モデルとの差分が大きいとし、先レコードに差分検出フラグを設定して(ステップS220)、ステップS221に移行する。差分割合が閾値以上でなければ、異常域差分算出部206は、ステップS221に移行する。そして、異常域差分算出部206は、ステップS221にて、選択していない重複レコードペアがあるか否か判定する。選択していない重複レコードペアがあれば、異常域差分算出部206はステップS212に移行する。
選択していない重複レコードペアがなければ、ステップS222にて、異常域差分算出部206は、対象分析モデルとの差分の大きい類似分析モデルを示す差分検出フラグが設定されている先レコードと、重複レコードペアの先レコードIDに含まれていない先レコードを取得し、取得した先レコードについて、軸名をキーとして、特徴量生成手順記憶部30の中を検索し、その軸名と一致する異常判定特徴を有するレコードを特定する。更に、異常域差分算出部206は、検索により特定した特徴量生成手順記憶部30のレコードから基本形の情報を取得し、軸名すなわち異常判定特徴と、その軸の軸始点および軸終点と、その異常判定特徴に対する関数の適用順序の基本形とを出力し、本処理を終了する。
ステップS214において、元レコードと先レコードの軸名が一致していなければ、異常域差分算出部206は、ステップS221に移行してそれ以降の処理を実行する。また、ステップS215において、軸差分が空であった場合、異常域差分算出部206は、ステップS217に移行してそれ以降の処理を実行する。
以下、対象分析モデルとの差分の大きい類似分析モデルを抽出する処理の具体例を示す。
ステップS212で、異常域差分算出部206は、図16の重複レコードペアのリストから、元レコードID340に“1”が格納され、先レコードIDに“5”が格納され、軸差分に“10Hz”が格納されているレコードを選択する。更に、ステップS213では、異常域差分算出部206は、図14に示された異常判定域記憶部33から、IDが1のレコードおよびIDが5のレコードを特定する。図14を参照すると、それらのレコードの軸名はともに“周波数(定常)”であるので一致し、また軸差分が空でないため、異常域差分算出部206は、ステップS216に移行する。
ステップS216においては、異常域差分算出部206は、IDが5である異常判定域のレコードの軸始点10Hzに軸差分10Hzを加算する。更にステップS217において、異常域差分算出部206は、IDが1である異常判定域のレコードと、IDが5である異常判定域のレコードとの差分面積を算出する。算出される差分面積は、(40-10)-(30-10)=10である。
ステップS218において、異常域差分算出部206は、差分割合=10/(40-10)=0.33を算出する。ここでは差分割合が閾値60%よりも小さいために、異常域差分算出部206は、ステップS221に移行する。ステップS222において、IDが3である異常判定域のレコードは重複レコードペアの先レコードIDに含まれていないため、異常域差分算出部206はそのレコードの軸名“振幅(定常)”を取得する。そして、異常域差分算出部206は、その軸名“振幅(定常)”をキーとして特徴量生成手順記憶部30を検索し、その軸名と一致する異常判定特徴の基本形“MAX”を取得する。そして、異常域差分算出部206は、“振幅(定常)”、“5dB”、“10dB”、“MAX”という情報を出力し、処理を終了する。
上述したように、重複率算出部203の異常域平行移動部204と、異常域差分算出部206は、異常判定域を平行移動する処理を実行する。本実施形態では、一例として、異常判定域が画面に表示され、ユーザが異常判定域の平行移動の様子を確認可能である。以下、異常判定域の平行移動の様子について説明する。
図18は、平行移動前の異常判定域を表示する画面の一例を示す図である。図19は、平行移動後の異常判定域を表示する画面の一例を示す図である。図18および図19には、横軸に定常的な周波数を取り、縦軸に定常的な振幅を取ったグラフに、異常判定域がハッチングされた領域として示されている。
図18の異常判定域90Aを参照すると、分析モデル1は、周波数(定常)が50Hz近傍で振幅(定常)が10~60dBの領域と、周波数(定常)が3~90Hzで振幅(定常)が50dB近傍の領域と、周波数(定常)が10Hz近傍で振幅(定常)が10~30dB近傍の領域と、に異常判定域がある。分析モデル2は、周波数(定常)が3~90Hzで振幅(定常)が4~10dBの領域に異常判定域がある。分析モデル3は、周波数(定常)が20Hz近傍で振幅(定常)が10~40dBの領域と、周波数(定常)が50Hz近傍で振幅(定常)が10~40dBの領域と、に異常判定域がある。
図18の状態から、周波数(定常)が10Hz近傍で振幅(定常)が10~30dB近傍の領域が、周波数(定常)の軸の方向に10Hzだけ平行移動すると、図19の状態となる。図19の異常判定域91Aを参照すると、分析モデル1には、周波数(定常)が10Hz近傍で振幅(定常)が10~30dB近傍の領域にあった異常判定域が、周波数(定常)が20Hz近傍で振幅(定常)が10~30dB近傍の領域に平行移動している点で、図18の異常判定域90Aと異なる。
また、上述したように、異常判定域作成部201は、対象分析モデルの異常判定域を異常判定域記憶部33に登録する。本実施形態では、一例として、ユーザは、対象分析モデルの異常判定域等の情報が表示される画面を見て確認しながら異常判定域を異常判定域記憶部33に登録することができる。
図20は、対象分析モデルの異常判定域を登録するときに表示される画面の一例を示す図である。図20の対象分析モデル表示画面91には、詳細表示欄92、登録ボタン93、編集ボタン94、および削除ボタン95が含まれている。
詳細表示欄92は、対象分析モデルの詳細情報を表示する欄である。詳細情報には、モデルID920、異常判定特徴921、目的922、不良品の良品との定量的な違い923、良品サンプルデータ924、および不良サンプルデータ925が含まれる。モデルID920は、対象分析モデルの識別番号が入力される欄である。異常判定特徴921は、対象分析モデルの異常判定特徴の名称が入力される欄である。目的922は、対象分析モデルの利用目的が入力される欄である。不良品の良品との定量的な違い923は、定量的な不良品の特徴が入力される欄である。良品サンプルデータ924は、登録された良品データを視聴したり、ダウンロードしたりするための操作欄である。不良サンプルデータ925は、登録された不良品データを視聴したり、ダウンロードしたりするための操作欄である。登録ボタン93は、対象分析モデルの詳細情報をシステムに登録するための操作ボタンである。編集ボタン94は、詳細表示欄92に記載されている情報を編集する際にクリックする操作ボタンである。削除ボタン95は、登録されている対象分析モデルに関する情報を削除するための操作ボタンである。
また、上述したように、本実施形態では、類似モデル選出部202は、類似分析モデルあるいか参照分析モデルを対象分析モデルとの重複率の高い順に表示する。
図21は、本実施形態に係る類似分析モデルの一覧を表示する画面の一例を示す図である。類似モデル一覧表示画面96は、類似モデル一覧表示欄97を含んでいる。類似モデル一覧表示欄97は、チェックボックス970、類似度971、異常判定特徴972、目的973、不良品の良品との定量的な違い974、良品サンプルデータ975、および不良サンプルデータ976を含む。
チェックボックス970は、対象分析モデルの異常判定特徴一覧表に表示する類似分析モデルを選択するためのチェックボックスである。類似度971は、対象分析モデルとの重複率を表示する欄である。異常判定特徴972は、類似分析モデルの異常判定特徴を示す欄である。目的973は、類似分析モデルの利用目的が表示される欄である。不良品の良品との定量的な違い974は、定量的な不良品の特徴が表示される欄である。良品サンプルデータ975は、登録された良品データを視聴したり、ダウンロードしたりするための操作欄である。不良サンプルデータ976は、登録された不良品データを視聴したり、ダウンロードしたりするための操作欄である。
また、本実施形態では、分析モデル解釈装置1は、各分析モデルの異常判定特徴に関する情報を一覧表示することができる。図22は、本実施形態に係る分析モデルの異常判定特徴一覧を表示する画面の一例を示す図である。分析モデルの異常判定特徴一覧表98には、異常判定特徴一覧980、モデル一覧981、特徴量生成方法982、異常判定域確認ボタン99が含まれる。異常判定特徴一覧980は、異常判定特徴の一覧を示す。モデル一覧981は、分析モデルのモデルIDの一覧を示す。異常判定域確認ボタン99は、選択された分析モデルの異常判定域90Aを表示するための操作ボタンである。特定の分析モデルに関して、ユーザがモデル一覧981にあるチェックボックスをクリックしてチェックマークを表示し、異常判定域確認ボタン99をクリックすると、分析モデルの異常判定特徴一覧表98には、チェックマークが付された分析モデルに関する異常判定域90Aが表示される。
以上、本実施形態について述べてきたが、本発明は、これらの実施形態だけに限定されるものではなく、本発明の技術思想の範囲内において、これらの実施形態を組み合わせて使用したり、一部の構成を変更したりしてもよい。また、以上述べてきた本実施形態には以下に示す事項が含まれている。ただし、本実施形態が以下に示す事項に限定されることはない。
分析モデル解釈装置1は、データの分析を支援する分析支援装置であって、振動データに基づいて生成された対象分析モデルから特徴量を抽出し、前記特徴量を、振動を表す特徴であり異常があるか否かの判定を可能にする異常判定特徴に分類する特徴量解釈部と、前記対象分析モデルの異常判定特徴における異常と判定すべき領域を異常判定域として特定する異常判定域作成部と、前記対象分析モデルと予め定められた1つ以上の参照分析モデルとで異常判定域がどの程度重複しているかを重複度合いとして算出し、前記重複度合いに基づいて、前記参照分析モデルの中から前記対象分析モデルに類似する類似分析モデルを選出する類似モデル選出部と、前記対象分析モデルと前記類似分析モデルとの異常判定域の差分を抽出する異常域差分算出部と、を有している。これによれば、対象分析モデルの特徴量を、振動を表す特徴であり異常があるか否かの判定を可能にする異常判定特徴に分類するので、対象分析モデルを分かりやすい表現で解釈することが可能となる。また、データ未収集により対象分析モデルに生じた可能性のある類似分析モデルとの差分を抽出するので、データ未収集の不良パターンの検知を考慮した分析モデルの改良に有益な情報を得ることができる。振動を表す特徴は例えば本実施形態における振幅と周波数のことである。ここでいう重複度合いは、対象分析モデルと参照分析モデルとの異常判定域がどの程度重複しているかを示す指標であればよく、本実施形態の重複率はその一例である。重複度合いは、例えば、対象分析モデルにおける異常判定域のうち参照分析モデルの異常判定域と重複している領域の割合としてもよい。あるいは、参照分析モデルにおける異常判定域のうち対象分析モデルの異常判定域と重複している領域の割合としてもよい。
また、前記異常判定域作成部は、前記異常判定域を、複数の異常判定特徴をそれぞれ軸とする多次元空間における領域として特定することにしてもよい。これによれば、複数の異常判定特徴による多次元空間の領域として異常判定域を特定し、類似分析モデルの選出および差分の抽出に利用するので、多次元空間でのデータ未収集の不良パターンの検知のために有益な情報を得ることができる。振動音の周波数と振幅は、モータ製品の異常判定特徴の典型的な例である。
また、前記特徴量解釈部は、前記特徴量を、前記特量量へ適用する関数およびその適用順序に基づいて、異常判定特徴に分類することにしてもよい。これによれば、特徴量を、その特徴量へ適用する関数およびその適用順序に基づいて異常判定特徴に分類するので、特徴量への演算の性質により特徴量を適切に分類することができる。
また、前記特徴量解釈部は、前記特徴量を、振幅と周波数を含む異常判定特徴に分類することにしてもよい。対象分析モデルの特徴量を振幅および周波数という振動を表す異常判定特徴に分類するので、対象分析モデルを分かりやすい表現で解釈することが可能となる。
また、前記特徴量解釈部は、前記特徴量を、振幅と周波数の少なくとも一方の時系列変化を更に含む異常判定特徴に分類することにしもよい。対象分析モデルの特徴量を、振幅および周波数とその少なくとも一方の時系列変化という振動を表す異常判定特徴に分類するので、定常的な指標だけでなく時間変化する指標を用いて、対象分析モデルを分かりやすい表現で解釈することが可能となる。
また、前記異常判定域作成部は、前記対象分析モデルに、変数の値を含むサンプルデータを入力し、異常があると判定されたサンプルデータの変数の値を前記異常判定域に登録することにより、前記対象分析モデルの前記異常判定域を特定することにしてもよい。サンプルデータを対象分析モデルに入力することにより容易に異常判定域を特定することができる。
また、前記類似モデル選出部は、前記対象分析モデルの異常判定域における異常判定特徴の軸での始点を、前記類似分析モデルの異常判定域の前記軸での始点と一致させるように、前記対象分析モデルの異常判定域を前記軸の方向に平行移動した後、前記重複度合いを算出することにしてもよい。対象分析モデルと参照分析モデルとで不良パターンが異常判定特徴の軸方向にシフトしていても適切に類似分析モデルを選出することができる。
また、前記類似モデル選出部は、前記対象分析モデルの類似分析モデルを前記重複度合いの高い順にランキングすることにしてもよい。重複度合いの高い類似分析モデルを優先的に扱って分析モデルの改良に有益な情報を提示することができる。
また、分析支援装置は、前記対象分析モデルに類似する前記類似分析モデルに関する情報を、前記類似分析モデルを前記重複度合いの高い順に並べて、表示する表示部を更に有するものであってもよい。
また、前記表示部は、前記類似分析モデルの前記差分に関する情報を表示するものであってもよい。
また、分析支援装置である分析モデル解釈装置1は、プロセッサと記憶装置を有し、記憶装置に格納されたソフトウェアプログラムを実行することにより、図2にてプロセッサ5の内部構成として示した各部を実現するものであってもよい。