以下、本発明の実施形態について、図面を参照しながら説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明を省略する。
図1は、一実施形態に係る異常診断装置の構成を示すブロック図である。図1に示される異常診断装置1は、診断対象となるシステムである診断対象システムにおける異常診断を行う装置である。診断対象システムとしては、例えば、ガスタービン、航空エンジン、及び真空炉等の機械システムが挙げられる。このような機械システムには、システムの動作状況を確認するために、システムの各項目を計測するための複数のセンサが取り付けられている。項目は、診断対象システムの特徴量であり、例えばセンサによって計測される計測対象(監視対象)の項目である。項目は、計測対象の項目から何らかの前処理を用いて生成された特徴量であってもよい。計測対象の項目には、例えば、温度、圧力、及び回転数等が含まれる。前処理を用いて生成された特徴量には、例えば、2つの計測対象の項目間の値の差、1つの計測対象の項目の差分、2つ以上の計測対象の項目の線形結合等が含まれる。異常診断装置1は、これらのセンサからの計測値により構成される診断対象となる診断データを取得し、診断対象システムに関する複数の項目のうち、単独の項目の異常である単独異常と、異なる項目間の異常である相関異常と、を診断する。
異常診断装置1は、入力装置2及び出力装置3と通信可能に接続される。入力装置2は、例えば、キーボード、マウス、操作ボタン、及びタッチパネル等により構成され、異常診断装置1のユーザが異常診断装置1に対して操作を加える場合等に用いられる。入力装置2には、後述する設定パラメータ、単位データサンプル{xl}、診断データサンプル{yi}、タイムスタンプ{Ti}、及び異常指標{Di}が外部から入力され、これらの各データを異常診断装置1に送信する。ここで、1つの変数が{}で囲まれている場合、当該変数の数が複数であることを示すこととする。出力装置3は、例えば、ディスプレイ等により構成され、異常診断装置1による診断結果を出力する機能を有する。なお、異常診断装置1が入力装置2及び出力装置3を含んで構成されていてもよい。
異常診断装置1は、物理的には、CPU(Central Processing Unit)10と、記憶装置20と、を備えている。
記憶装置20は、例えば、RAM(Random Access Memory)、フラッシュメモリ、及びハードディスク装置等のデータの読み書きが可能な記録媒体によって構成される。記憶装置20は、設定データD1、単位データD2、学習データD3、診断データD4、診断結果データD5、検出要因データD6、及び異常診断プログラムPを記憶している。
設定データD1は、後述の処理に用いられる各設定パラメータを含む。設定パラメータとしては、例えば、異常有無判定閾値Dth、パラメータε、単独異常判定閾値Esensor_th、相関異常判定閾値Ecorr_th、及び相関有無判定閾値Ecorr_coef_th等が挙げられる。
単位データD2は、n個の単位データサンプル{xl}含むデータ群である。同じ時刻に計測された各項目の計測値を含むデータセットを「サンプル」と呼ぶ。サンプル番号lは1〜nの整数値を取り得る変数である。1つの単位データサンプルxlは、{xl[1],xl[2],…,xl[p]}を要素として有する。計測値xl[j]は、単位データサンプルxlのうち項目番号jの項目に対応した正常状態又は定常状態の計測値である。なお、項目の総数はp個であり、項目番号jは1〜pの整数値を取り得る変数である。つまり、単位データサンプルxlは、複数の項目にそれぞれ対応した正常状態又は定常状態の計測値のデータセットである。
学習データD3は、学習部12によって生成された特徴量を含む。この特徴量としては、例えば、平均値xa、標準偏差σx、及び相関行列Rが含まれる。平均値xaは、{xa[1],xa[2],…,xa[p]}を要素として有するベクトルである。平均値xa[j]は、単位データD2のうち項目番号jの項目に対応した計測値の平均値である。標準偏差σxは、{σx[1],σx[2],…,σx[p]}を要素として有するベクトルである。標準偏差σx[j]は、単位データD2のうち項目番号jの項目に対応した計測値の標準偏差である。相関行列Rは、2つの項目間の相関の強さを示す相関係数を要素として配列した行列である。
診断データD4は、m個の診断データサンプル{yi}と、タイムスタンプ{Ti}と、を含むデータ群である。サンプル番号iは1〜mの整数値を取り得る変数である。mは、1以上の整数である。1つの診断データサンプルyiは、{yi[1],yi[2],…,yi[p]}を要素として有する。計測値yi[j]は、診断データサンプルyiのうち項目番号jの項目に対応した診断対象の計測値(診断対象の値)である。つまり、診断データサンプルyiは、複数の項目にそれぞれ対応した診断対象の計測値のデータセットである。タイムスタンプ{Ti}は、{T1,T2,…,Tm}を要素として有する。タイムスタンプTiは、サンプル番号iの診断データサンプルyiが計測された時刻を示す。
診断結果データD5は、異常指標{Di}を含む。異常指標{Di}は、{D1,D2,…,Dm}を要素として有する。異常指標Diは、サンプル番号iのタイムスタンプTiによって示される時刻における診断対象システム全体の異常度を表す指標である。異常指標Diは、例えば、マハラノビス・タグチ法(MT法)によって計算され得る。この場合、異常指標Diは、マハラノビス距離(MD値)である。
検出要因データD6は、異常診断装置1による診断結果を示すデータ群である。検出要因データD6は、後述の単独異常判定部15及び相関異常判定部16による検出結果を含む。
CPU10は、機能的には、入力部11(取得部)と、学習部12と、異常有無判定部13と、正規化部14と、単独異常判定部15と、相関異常判定部16と、出力部17と、を備えている。CPU10が記憶装置20に記憶されている異常診断プログラムPを読み出して実行することにより、入力部11、学習部12、異常有無判定部13、正規化部14、単独異常判定部15、相関異常判定部16、及び出力部17の各機能が実現される。異常診断プログラムPの具体的な構成については後述する。
入力部11は、各データを取得する取得手段として機能する。具体的には、入力部11は、入力装置2から各設定パラメータを受信し、設定データD1として記憶装置20に保存する。入力部11は、入力装置2からn個の単位データサンプル{xl}を受信し、単位データD2として記憶装置20に保存する。入力部11は、入力装置2からm個の診断データサンプル{yi}と、タイムスタンプ{Ti}と、異常指標{Di}とを受信し、診断データサンプル{yi}及びタイムスタンプ{Ti}を診断データD4として記憶装置20に保存し、異常指標{Di}を診断結果データD5として記憶装置20に保存する。なお、入力部11が入力装置2から1個の診断データサンプルy1、タイムスタンプT1、及び異常指標D1を受信する場合(つまり、m=1)には、異常診断装置1はリアルタイムで異常診断を行うことが可能となる。
学習部12は、単位データD2の特徴量を計算する学習手段として機能する。学習部12は、例えば、記憶装置20から単位データD2を読み出し、各項目番号jの平均値xa[j]、各項目番号jの標準偏差σx[j]、及び相関行列Rを計算する。学習部12は、各単位データサンプルxlの項目番号jの項目に対応する計測値を取り出し、n個の計測値の平均を計算して計算結果を平均値xa[j]とする。学習部12は、各単位データサンプルxlの項目番号jの項目に対応する計測値を取り出し、n個の計測値の標準偏差を計算して計算結果を標準偏差σx[j]とする。学習部12は、p個の項目のそれぞれについて平均値xa[j]及び標準偏差σx[j]を計算し、平均値{xa}及び標準偏差{σx}を作成する。
学習部12は、n個の単位データサンプル{x
l}と、平均値{x
a}及び標準偏差{σ
x}と、を用いて相関行列Rを計算する。以下、相関行列Rの計算方法を詳細に説明する。学習部12は、式(1)に示されるように、計測値x
l[j]から平均値x
a[j]を減算して、その減算結果を標準偏差σ
x[j]で除算し、その計算結果を正規化値X
l[j]とする。
学習部12は、正規化値X
l[j]と正規化値X
l[k]とを用いて、項目番号jの項目と項目番号kの項目との相関の強さを示す相関係数r
jkを計算する。なお、項目番号kは1〜pの整数値を取り得る変数である。具体的には、学習部12は、式(2)に示されるように、各単位データサンプル{x
l}における正規化値X
l[j]と正規化値X
l[k]とを乗算し、全ての単位データサンプル{x
l}における乗算結果の総和を取ることによって、相関係数r
jkを計算する。相関係数r
jkは、−1〜1の値を取り、その絶対値が大きいほど相関が強いことを示す。
学習部12は、全ての項目のうちの2つの項目の組み合わせについて、相関係数r
jkを計算し、式(3)に示されるように相関行列Rを作成する。
学習部12は、計算した特徴量を学習データD3として記憶装置20に保存する。
異常有無判定部13は、診断データD4の異常の有無を判定する異常有無判定手段として機能する。異常有無判定部13は、記憶装置20から診断データD4及び診断結果データD5を読み出し、1つの診断データサンプルyiに対応する異常指標Diに基づいて、当該診断データサンプルyiの異常の有無を判定する。異常有無判定部13は、例えば、記憶装置20から設定データD1の異常有無判定閾値Dthを読み出し、異常有無判定閾値Dthを用いて診断データサンプルyiの異常の有無を判定する。
具体的には、異常有無判定部13は、異常指標Diが異常有無判定閾値Dthよりも小さい場合に、診断データサンプルyiには異常がないと判定し、異常指標Diが異常有無判定閾値Dth以上である場合に、診断データサンプルyiには異常があると判定する。異常有無判定閾値Dthは、例えば、20程度に設定される。異常有無判定部13は、異常があると判定した診断データサンプルyiを正規化部14に出力する。
正規化部14は、学習データD3に基づいて、診断データD4を正規化する正規化手段として機能する。学習データD3は、単位データD2に基づいて生成されるので、正規化部14は、単位データD2に基づいて、診断データD4を正規化するともいえる。正規化部14は、記憶装置20から学習データD3を読み出す。正規化部14は、例えば、学習データD3のうちの平均値xa[j]及び標準偏差σx[j]を用いて、異常有無判定部13から受信した診断データサンプル{yi}のうちの項目番号jの項目の計測値yi[j]の正規化を行う。
具体的には、正規化部14は、式(4)に示されるように、計測値y
i[j]から平均値x
a[j]を減算して、その減算結果を標準偏差σ
x[j]で除算し、その計算結果を正規化値Y
i[j]とする。正規化部14は、p個の項目のそれぞれについて正規化値Y
i[j]を計算し、正規化値{Y
i}を作成する。正規化値{Y
i}は、{Y
i[1],Y
i[2],…,Y
i[p]}を要素として有するベクトルである。正規化部14は、異常有無判定部13から受信した全ての診断データサンプル{y
i}に対して正規化処理を行う。正規化部14は、各正規化値{Y
i}を単独異常判定部15及び相関異常判定部16に出力する。
単独異常判定部15は、正規化値Yi[j]のそれぞれに基づいて、当該正規化値Yi[j]に対応する項目番号jの項目が単独異常か否かの単独異常判定を行う単独異常判定手段として機能する。
図2を参照しながら単独異常判定について説明する。図2に示されるように、他の正規化値と比較して、正規化値Yi[j]が極端に大きい場合には、その項目番号jの項目が単独異常である可能性が高い。そこで、単独異常判定部15は、記憶装置20から設定データD1の単独異常判定閾値Esensor_thを読み出し、単独異常判定閾値Esensor_thを用いて、単独異常判定を行う。単独異常判定部15は、例えば、正規化値Yi[j]の大きさ(絶対値)が単独異常判定閾値Esensor_thよりも大きい場合、項目番号jの項目が単独異常であると判定し、正規化値Yi[j]の大きさが単独異常判定閾値Esensor_th以下である場合、項目番号jの項目は単独異常でないと判定する。単独異常判定閾値Esensor_thは、例えば、3.0程度に設定される。
単独異常判定部15は、正規化値Yi[j]のそれぞれに基づいて、各項目の単独異常度Esensor[j]を計算する。単独異常度Esensor[j]は、項目番号jの項目の単独異常の程度を示す値であり、その値が大きいほど単独異常の程度が大きいことを示す。単独異常判定部15は、項目番号jの項目が単独異常であると判定した場合には、正規化値Yi[j]を単独異常度Esensor[j]とする。単独異常判定部15は、項目番号jの項目が単独異常でないと判定した場合には、単独異常度Esensor[j]を0とする。
単独異常判定部15は、p個の項目のそれぞれについて単独異常度Esensor[j]を計算し、単独異常度Esensorを作成する。単独異常度Esensorは、{Esensor[1],Esensor[2],…,Esensor[p]}を要素として有するベクトルである。単独異常判定部15は、正規化部14から受信した全ての正規化値Yiに対して、単独異常判定を行う。単独異常判定部15は、単独異常度{Esensor}を相関異常判定部16に出力する。
単独異常判定部15は、単独異常であると判定した項目について、検出結果を作成し、検出要因データD6として記憶装置20に保存する。検出結果には、タイムスタンプTi、項目番号j、単独異常度Esensor[j]、及び単独異常であることを示す異常種類情報が含まれる。
相関異常判定部16は、診断対象システムに関する複数の項目のうちの異なる2つの項目が相関異常であるか否かの相関異常判定を行う相関異常判定手段として機能する。
図3を参照しながら相関異常判定について説明する。ここでは、項目番号jの項目(第1項目)及び項目番号kの項目(第2項目)を用いて説明する。なお、相関異常判定の説明では、項目番号kは、j+1〜pの整数値を取り得るパラメータとする。相関異常判定部16は、項目番号jの項目に対応した値及び項目番号kの項目に対応した値を変数として規定される2次元空間Wにおいて、複数の正常状態の正規化値Xl[j]及び複数の正常状態の正規化値Xl[k]を用いて主成分分析する。
相関係数rjkが0より大きい(正の相関である)場合、図3の(a)に示されるような楕円状の分布Gが得られ、正の傾きを有する第1主成分ベクトルV1と、負の傾きを有する第2主成分ベクトルV2と、が得られる。第1主成分ベクトルV1は、分布Gの最大の分布幅の方向を示すベクトルであり、分布Gの長軸に沿ったベクトルである。第2主成分ベクトルV2は、第1主成分ベクトルV1と直交する方向を示すベクトルであり、分布Gの短軸に沿ったベクトルである。相関係数rjkが0より小さい(負の相関である)場合、図3の(b)に示されるような楕円状の分布Gが得られ、負の傾きを有する第1主成分ベクトルV1と、正の傾きを有する第2主成分ベクトルV2と、が得られる。
このような分布Gでは、2次元空間Wにおける正規化値Yi[j](第1値)及び正規化値Yi[k](第2値)に対応する座標点である座標点CPjkが、第1主成分ベクトルV1から離れるほど相関異常である可能性が高くなる。正規化値Yi[j]は、項目番号jの項目に対応する正規化値であり、正規化値Yi[k]は、項目番号kの項目に対応する正規化値である。
そこで、相関異常判定部16は、第1主成分ベクトルV1と座標点CP
jkとの距離z
jkに基づいて、項目番号jの項目及び項目番号kの項目が相関異常であるか否かの相関異常判定を行う。具体的には、相関異常判定部16は、まず、設定データD1の相関異常判定閾値E
corr_thと学習データD3の相関行列Rとを記憶装置20から読み出し、式(5)に示されるように、相関係数r
jk、正規化値Y
i[j]、及び正規化値Y
i[k]を用いて、第1主成分ベクトルV1と座標点CP
jkとの距離z
jkを計算する。距離z
jkは、第1主成分ベクトルV1から座標点CP
jkまでの第2主成分ベクトルV2に沿った距離である。
相関異常判定部16は、式(6)に示されるように、相関係数r
jkを用いて、第2主成分ベクトルV2に沿った分布Gの幅である幅σ
h_jkを計算する。つまり、幅σ
h_jkは、分布Gの短軸の長さの半分である。幅σ
h_jkは、距離z
jkの大きさを定量的に判断する基準として用いられる。
相関異常判定部16は、記憶装置20から設定データD1のパラメータεを読み出し、式(7)に示されるように、幅σ
h_jkとパラメータεとのいずれか大きい方で距離z
jkを除算することによって、相関異常度E
corr[j,k]を計算する。相関異常度E
corr[j,k]は、項目番号jの項目及び項目番号kの項目の相関異常の程度を示す値であり、その値が大きいほど相関異常の程度が大きいことを示す。つまり、相関異常判定部16は、相関係数r
jkと、正規化値Y
i[j]と、正規化値Y
i[k]とに基づいて、相関異常度E
corr[j,k]を計算する。パラメータεは、式(7)において幅σ
h_jkがゼロである場合に、ゼロで除算を行うことを防止するための値である。パラメータεは、例えば、1×10
−14程度に設定される。
相関異常判定部16は、相関異常度Ecorr[j,k]に基づいて、相関異常判定を行う。具体的には、相関異常判定部16は、相関異常度Ecorr[j,k]の大きさ(絶対値)が相関異常判定閾値Ecorr_thよりも大きいか否かを判定する。相関異常判定部16は、相関異常度Ecorr[j,k]の大きさが相関異常判定閾値Ecorr_th以下である場合、相関異常でないと判定する。相関異常判定閾値Ecorr_thは、例えば、3.0程度に設定される。
ここで、単独異常度Esensor[j]及び単独異常度Esensor[k]の少なくともいずれかが大きいと、相関異常度Ecorr[j,k]の大きさが大きくなることがある。このため、相関異常判定部16は、相関異常度Ecorr[j,k]と、単独異常度Esensor[j](第1単独異常度)と、単独異常度Esensor[k](第2単独異常度)と、に基づいて、単独異常と判定されるべき異常を除外する。具体的には、相関異常判定部16は、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[j]以上であり、且つ、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[k]以上であるという条件を満たしているか否かを判定することによって、単独異常と判定されるべき異常を除外する。
相関異常判定部16は、上記条件を満たしている場合に、相関異常であると判定する。つまり、相関異常判定部16は、相関異常度Ecorr[j,k]の大きさが相関異常判定閾値Ecorr_thよりも大きく、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[j]以上であり、且つ、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[k]以上である場合に、相関異常であると判定する。相関異常判定部16は、上記条件を満たしていない場合に、相関異常でないと判定する。このように、相関異常判定部16は、正規化値Yi[j]と、正規化値Yi[k]と、項目番号jの項目及び項目番号kの項目の相関係数rjkと、に基づいて、項目番号jの項目及び項目番号kの項目が相関異常であるか否かの相関異常判定を行う。
正常稼働時に相関関係を持つ項目について、診断時にその相関関係が崩れたことを相関異常という。診断データにおける相関異常の有無を判定する前に、単位データについて相関関係の有無が確認されてもよい。そのため、相関異常判定部16は、記憶装置20から相関有無判定閾値Ecorr_coef_thを読み出し、相関有無判定閾値Ecorr_coef_thと相関係数rjkとを用いて、一定程度の相関を有する項目の組み合わせについて相関異常判定を行ってもよい。この相関有無判定閾値Ecorr_coef_thは、例えば、0.5程度に設定される。
相関異常判定部16は、相関異常であると判定した項目について、検出結果を作成し、検出要因データD6として記憶装置20に保存する。検出結果には、タイムスタンプTi、相関関係にある項目の項目番号j,k、相関異常度Ecorr[j,k]、及び相関異常であることを示す異常種類情報が含まれる。
出力部17は、検出要因データD6を出力する出力手段として機能する。出力部17は、記憶装置20から検出要因データD6を読み出し、検出要因データD6を出力装置3に送信する。図4に示されるように、検出要因データD6には、タイムスタンプ、項目番号、異常度、相関項目番号、及び異常種類情報が含まれる。なお、異常種類情報の「mean」は単独異常を示し、「correlation」は相関異常を示す。出力装置3が検出要因データD6に基づいて診断結果を表示することによって、診断対象システムの整備担当者に、診断対象システムのどこを確認すべきかの具体的な情報を提供する。
次に、図5〜図8を参照して、異常診断装置1が行う異常診断方法の一例を説明する。異常診断方法の処理は、設定フェーズ、学習フェーズ、及び分析フェーズに区分される。
図5の(a)は、異常診断装置1が行う設定フェーズの一連の処理を示すフローチャートである。図5の(a)に示される一連の処理は、入力装置2が異常診断装置1に設定パラメータを送信することによって開始される。
まず、入力部11は、入力装置2から設定パラメータを受信する(ステップS11)。そして、入力部11は、受信した設定パラメータを設定データD1として記憶装置20に保存し(ステップS12)、設定フェーズの一連の処理が終了する。
図5の(b)は、異常診断装置1が行う学習フェーズの一連の処理を示すフローチャートである。図5の(b)に示される一連の処理は、入力装置2が異常診断装置1にn個の単位データサンプル{xl}を送信することによって開始される。
まず、入力部11は、入力装置2からn個の単位データサンプル{xl}を受信し、単位データD2として記憶装置20に保存する(ステップS21:取得ステップ)。続いて、学習部12は、記憶装置20から単位データD2を読み出し、平均値xa、標準偏差σx、及び相関行列Rを計算する(ステップS22)。そして、学習部12は、計算した平均値xa、標準偏差σx、及び相関行列Rを学習データD3として記憶装置20に保存し、学習フェーズの一連の処理が終了する。
図6は、異常診断装置1が行う分析フェーズの一連の処理を示すフローチャートである。図6に示される一連の処理は、入力装置2が異常診断装置1にm個の診断データサンプル{yi}と、タイムスタンプ{Ti}と、異常指標{Di}とを送信することによって開始される。
まず、入力部11は、入力装置2からm個の診断データサンプル{yi}と、タイムスタンプ{Ti}と、異常指標{Di}とを受信し、診断データサンプル{yi}及びタイムスタンプ{Ti}を診断データD4として記憶装置20に保存し、異常指標{Di}を診断結果データD5として記憶装置20に保存する(ステップS31:取得ステップ)。
続いて、異常有無判定部13は、記憶装置20から診断データD4及び診断結果データD5を読み出し、1つの診断データサンプルyiを選択する(ステップS32)。そして、異常有無判定部13は、選択した診断データサンプルyiに対応する異常指標Diに基づいて、当該診断データサンプルyiの異常の有無を判定する(ステップS33:異常有無判定ステップ)。異常有無判定部13は、例えば、記憶装置20から設定データD1の異常有無判定閾値Dthを読み出し、異常指標Diと異常有無判定閾値Dthとを比較することによって診断データサンプルyiの異常の有無を判定する。
具体的には、異常指標Diが異常有無判定閾値Dthよりも小さい場合に、異常有無判定部13は、診断データサンプルyiには異常がないと判定し(ステップS33;No)、後述するステップS37を実施する。一方、ステップS33において、異常指標Diが異常有無判定閾値Dth以上である場合に、異常有無判定部13は、診断データサンプルyiには異常があると判定し(ステップS33;Yes)、当該診断データサンプルyiを正規化部14に出力する。
続いて、正規化部14は、記憶装置20から学習データD3を読み出して、異常有無判定部13から受信した診断データサンプルyiを正規化する(ステップS34:正規化ステップ)。具体的には、正規化部14は、式(4)に示されるように、学習データD3のうちの平均値xa[j]及び標準偏差σx[j]を用いて、診断データサンプルyiのうちの項目番号jの項目の計測値yi[j]の正規化を行い、正規化値Yi[j]を得る。正規化部14は、p個の項目のそれぞれについて正規化値Yi[j]を計算し、正規化値Yiを作成する。正規化部14は、正規化値Yiを単独異常判定部15及び相関異常判定部16に出力する。
続いて、単独異常判定部15は、単独異常判定処理を行う(ステップS35:単独異常判定ステップ)。ステップS35の単独異常判定処理では、図7に示されるように、まず、単独異常判定部15は、診断対象システムに関する複数の項目から、1つの項目(項目番号j)を選択する(ステップS51)。そして、単独異常判定部15は、正規化値Yi[j]に基づいて、選択された項目番号jの項目が単独異常であるか否かを判定する(ステップS52)。
例えば、単独異常判定部15は、記憶装置20から設定データD1の単独異常判定閾値Esensor_thを読み出す。そして、単独異常判定部15は、正規化値Yi[j]の大きさが単独異常判定閾値Esensor_thよりも大きい場合、項目番号jの項目が単独異常であると判定する(ステップS52;Yes)。そして、単独異常判定部15は、正規化値Yi[j]を単独異常度Esensor[j]とする(ステップS53)。そして、単独異常判定部15は、単独異常であると判定した項目について、検出結果を作成して、検出要因データD6として記憶装置20に保存し(ステップS54)、後述するステップS56を実施する。
一方、ステップS52において、単独異常判定部15は、正規化値Yi[j]の大きさが単独異常判定閾値Esensor_th以下である場合、項目番号jの項目は単独異常でないと判定する(ステップS52;No)。そして、単独異常判定部15は、単独異常度Esensor[j]を0とし(ステップS55)、ステップS56を実施する。
続いて、単独異常判定部15は、全ての項目を処理したか否かを判定する(ステップS56)。そして、全ての項目を処理していないと判定された場合(ステップS56;No)、単独異常判定部15は、ステップS51に戻って次の項目を選択し、ステップS52〜ステップS56が再び実施される。一方、ステップS56において、全ての項目を処理したと判定された場合(ステップS56;Yes)、単独異常判定部15は、単独異常度Esensorを相関異常判定部16に出力し、単独異常判定処理が終了し、ステップS36が実施される。
続いて、相関異常判定部16は、相関異常判定処理を行う(ステップS36:相関異常判定ステップ)。ステップS36の相関異常判定処理では、図8に示されるように、まず、相関異常判定部16は、診断対象システムに関する複数の項目から、異なる2つの項目の組み合わせ(項目番号j,k)を選択する(ステップS61)。そして、相関異常判定部16は、項目番号jの項目及び項目番号kの項目が一定程度の相関を有するか否かを判定する(ステップS62)。例えば、相関異常判定部16は、記憶装置20から設定データD1の相関有無判定閾値Ecorr_coef_th及び学習データD3の相関行列Rを読み出し、相関係数rjkの大きさ(絶対値)が相関有無判定閾値Ecorr_coef_th以上であるか否かを判定する。
相関係数rjkの大きさが相関有無判定閾値Ecorr_coef_thよりも小さいと判定された場合、相関異常判定部16は、項目番号jの項目及び項目番号kの項目は相関を有しないと判定し(ステップS62;No)、後述するステップS66を実施する。一方、ステップS62において、相関係数rjkの大きさが相関有無判定閾値Ecorr_coef_th以上であると判定された場合、相関異常判定部16は、項目番号jの項目及び項目番号kの項目は相関を有すると判定し(ステップS62;Yes)、当該組み合わせの相関異常度Ecorr[j,k]を計算する(ステップS63)。具体的には、相関異常判定部16は、式(5)〜式(7)に示されるように、相関係数rjk、正規化値Yi[j]、及び正規化値Yi[k]を用いて、相関異常度Ecorr[j,k]を計算する。
続いて、相関異常判定部16は、相関異常度Ecorr[j,k]に基づいて、項目番号jの項目及び項目番号kの項目が相関異常であるか否かを判定する(ステップS64)。具体的には、相関異常判定部16は、記憶装置20から設定データD1の相関異常判定閾値Ecorr_thを読み出し、相関異常度Ecorr[j,k]の大きさが相関異常判定閾値Ecorr_thよりも大きいか否かを判定する。相関異常判定部16は、相関異常度Ecorr[j,k]の大きさが相関異常判定閾値Ecorr_th以下である場合、相関異常判定部16は、項目番号jの項目及び項目番号kの項目が相関異常でないと判定し(ステップS64;No)、後述するステップS66を実施する。
一方、相関異常度Ecorr[j,k]の大きさが相関異常判定閾値Ecorr_thよりも大きい場合、相関異常判定部16は、さらに、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[j]以上であり、且つ、相関異常度Ecorr[j,k]の大きさが単独異常度Esensor[k]以上であるという条件を満たしているか否かを判定する。そして、上記条件を満たしていないと判定された場合、相関異常判定部16は、項目番号jの項目及び項目番号kの項目が相関異常でないと判定し(ステップS64;No)、後述するステップS66を実施する。
一方、上記条件を満たしていると判定された場合、相関異常判定部16は、項目番号jの項目及び項目番号kの項目が相関異常であると判定する(ステップS64;Yes)。そして、相関異常判定部16は、相関異常であると判定した組み合わせについて、検出結果を作成し、検出要因データD6として記憶装置20に保存し(ステップS65)、ステップS66を実施する。
続いて、相関異常判定部16は、全ての組み合わせを処理したか否かを判定する(ステップS66)。そして、全ての組み合わせを処理していないと判定された場合(ステップS66;No)、相関異常判定部16は、ステップS61に戻って次の組み合わせを選択し、ステップS62〜ステップS66が再び実施される。一方、ステップS66において、全ての組み合わせを処理したと判定された場合(ステップS66;Yes)、相関異常判定処理が終了し、ステップS37が実施される。
続いて、異常有無判定部13は、全ての診断データサンプル{yi}を処理したか否かを判定する(ステップS37)。そして、全ての診断データサンプル{yi}を処理していないと判定された場合(ステップS37;No)、異常有無判定部13は、ステップS32に戻って次の診断データサンプルyi+1を選択し、ステップS33〜ステップS37が再び実施される。一方、ステップS37において、全ての診断データサンプル{yi}を処理したと判定された場合(ステップS37;Yes)、出力部17は、記憶装置20から検出要因データD6を読み出し、検出要因データD6を出力装置3に送信する(ステップS38)。以上のようにして、分析フェーズの一連の処理が終了する。
次に、図9を参照しながら、コンピュータを異常診断装置1として機能させるための異常診断プログラムPを説明する。
異常診断プログラムPは、メインモジュールP10、入力モジュールP11、学習モジュールP12、異常有無判定モジュールP13、正規化モジュールP14、単独異常判定モジュールP15、相関異常判定モジュールP16、及び出力モジュールP17を備える。メインモジュールP10は、異常診断に係る処理を統括的に制御する部分である。入力モジュールP11、学習モジュールP12、異常有無判定モジュールP13、正規化モジュールP14、単独異常判定モジュールP15、相関異常判定モジュールP16、及び出力モジュールP17を実行することにより実現される機能はそれぞれ、上記各実施形態における入力部11、学習部12、異常有無判定部13、正規化部14、単独異常判定部15、相関異常判定部16、及び出力部17の機能と同様である。
異常診断プログラムPは、CD−ROM(Compact Disk Read Only Memory)、DVD−ROM(DigitalVersatile Disk Read Only Memory)、及び半導体メモリ等の有形の記録媒体に固定的に記録された状態で提供されてもよい。または、異常診断プログラムPは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
以上説明したように、本実施形態に係る異常診断方法、異常診断装置1、及び異常診断プログラムPでは、各項目の正規化値Yi[j]に基づいて、各項目が単独異常か否かの単独異常判定が行われ、項目番号jの項目の正規化値Yi[j]と、項目番号kの項目の正規化値Yi[k]と、相関係数rjkと、に基づいて、項目番号jの項目及び項目番号kの項目が相関異常であるか否かの相関異常判定が行われる。これにより、単独異常又は相関異常である項目を特定するとともに、単独異常及び相関異常の異常の種類を特定することが可能となる。
また、相関異常判定では、相関係数rjkと正規化値Yi[j]と正規化値Yi[k]とに基づいて、相関異常度Ecorr[j,k]が計算される。一般に、第1主成分ベクトルV1から座標点CPjkまでの距離zjkが大きくなるほど、相関異常である可能性が高くなる。したがって、この距離zjkに基づいて、相関異常度Ecorr[j,k]を計算することができる。また、相関異常度Ecorr[j,k]を用いることによって、相関異常の程度を定量化できるので、相関異常判定を簡易化することが可能となる。
また、単独異常度Esensor[j]及び単独異常度Esensor[k]の少なくともいずれかが大きいと、相関異常度Ecorr[j,k]も大きくなることがある。このため、本来、単独異常と判定されるべき異常が相関異常と判定されてしまうことがある。これに対し、相関異常判定では、相関異常度Ecorr[j,k]と、単独異常度Esensor[j]と、単独異常度Esensor[k]と、に基づいて、単独異常と判定されるべき異常が除外される。これにより、単独異常と判定されるべき異常が相関異常と判定されないようにすることができる。その結果、異常の種類の特定精度を向上することが可能となる。
また、診断データサンプルyiに対応する異常指標Diに基づいて異常があると判定された診断データサンプルyiに対して、正規化処理、単独異常判定、及び相関異常判定が行われる。このため、異常がないと判定された診断データサンプルyiの正規化処理、単独異常判定、及び相関異常判定が省略されるので、計算の負荷を軽減することが可能となる。
また、各項目の計測値yi[j]は、計測対象に応じて取り得る値の範囲、及び値の大きさが異なる。このため、計測値yi[j]を正規化した正規化値Yi[j]を用いることによって、同一の基準で単独異常判定及び相関異常判定を行うことができる。これにより、計算の負荷を軽減することが可能となる。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されない。例えば、上記実施形態では、異常指標Diとして、MT法によって得られたMD値が用いられているが、他の手法によって得られた異常指標が用いられてもよい。例えば、再構成誤差法によって得られた異常指標が用いられてもよい。
また、上記実施形態では、異常診断装置1は、全項目に対して分析を行っているが、全項目のうちのいくつかを分析してもよい。例えば、異常診断装置1は、分析対象の項目を選定する選定部を備えてもよい。この選定部は、異常有無判定部13によって異常であると判定された診断データサンプルyiに対し、異常指標Diへの各項目の影響度合いに基づいて、分析対象の項目を選定する。具体的に説明すると、選定部は、例えば、貢献度法及び直交表等によって、異常指標Diへの各項目の影響度合いを計算する。そして、選定部は、各項目の影響度合いに基づいて、異常指標Diへの影響が大きい順に、いくつかの項目を選定する。正規化部14は、選定された項目の計測値yi[j]について正規化処理を行ってもよく、単独異常判定部15は、選定された項目について単独異常判定を行ってもよく、相関異常判定部16は、選定された項目について相関異常判定を行ってもよい。この場合、計算コストを低減することが可能となる。
また、学習データD3は、学習部12によって生成されなくてもよく、異常診断装置1の外部において生成された学習データD3を入力装置2が異常診断装置1に送信してもよい。この場合、入力装置2は、n個の単位データサンプル{xl}を異常診断装置1に送信しなくてもよく、異常診断装置1は、学習部12を備えていなくてもよい。
また、学習部12は、学習データD3を更新してもよい。この場合、学習データD3を更新するために、入力部11は、入力装置2からさらに受信した単位データサンプル{xl}を単位データD2に追加登録してもよい。また、入力部11は、異常有無判定部13によって異常なしと判定された診断データサンプル{yi}を単位データD2に追加登録してもよい。学習部12は、追加登録された単位データD2を用いて学習データD3を更新してもよい。
また、上記実施形態では、異常有無判定部13によって異常があると判定された診断データサンプル{yi}について、正規化処理、単独異常判定、及び相関異常判定が行われているが、これに限られない。m個の診断データサンプル{yi}に対して、正規化処理、単独異常判定、及び相関異常判定が行われてもよい。この場合、入力装置2は、異常指標{Di}を異常診断装置1に送信しなくてもよく、異常診断装置1は、異常有無判定部13を備えていなくてもよい。
また、上記実施形態では、m個の診断データサンプル{yi}に対して正規化処理が行われているが、これに限られない。例えば、各項目に対して、単独異常判定閾値Esensor_thが設定されており、異なる2つの項目の各組み合わせに対して、相関異常判定閾値Ecorr_thが設定されていれば、正規化処理を省略し得る。この場合、異常診断装置1は、正規化部14を備えていなくてもよい。