(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
本発明の実施形態は、プリプロセッサと異常予兆診断処理部を含む異常予兆診断装置あるいは異常予兆診断システムである。その実施形態の例として、プリプロセッサと異常予兆診断処理部は、一般的なコンピュータであって、プログラムにしたがって処理するソフトウェアの実装であってもよいし、一般的なコンピュータではなく専用のハードウェアの実装であってもよい。
【0015】
また、コンピュータに専用のハードウェアを組み込み、ソフトウェアの実装とハードウェアの実装を組み合わせて実装してもよい。プリプロセッサは、異常予兆診断処理部の前処理として外部接続されてもよいし、異常予兆診断処理部の中に組み込まれて内部接続されてもよいし、他のデータ処理と兼用されるモジュールとして外部接続されてもよい。以下、実施形態について図面を用いて説明する。
【0016】
時刻の経過にしたがって変化するセンサデータを、複数の区間に分割し、各区間あるいは複数の区間をまとめた分割点間をそれぞれに診断する例を説明する。
図1は、異常予兆診断システムの例を示す図である。
【0017】
図1に示すように、異常予兆診断システムの例は、異常予兆診断処理部2と、その前処理装置であるプリプロセッサ1と、多次元センサ3を備える。多次元センサ3は、多次元のセンサデータを時系列に出力するものであり、異常予兆診断システムの外にあってもよく、プリプロセッサ1と異常予兆診断処理部2は異常予兆診断装置であってもよい。
【0018】
プリプロセッサ1は、区間設定部11、データ分割処理部12、分割点併合処理部13、分割結果表示制御部14、データ抽出処理部15、分割点抽出処理部16、特徴量計算部17を備える。また、異常予兆診断処理部2は、異常予兆診断装置21、分割点時刻異常診断処理部22、異常予兆診断装置23、診断結果総合判定処理部24を備える。
【0019】
プリプロセッサ1では、監視装置となる多次元センサ3から収集したセンサデータに対し、センサデータの変動(トレンド)を表現する時間変化すなわちセンサデータをグラフで表した場合の傾きの時刻による変化を求める。このために、区間設定部11は、1つの傾きで表される時間の範囲を区間として求め、その区間ごとにセンサデータの傾きを求めることにより、センサデータの時刻による変化を得る。
【0020】
ここで、1つの傾きの値は正、負、ゼロ付近の値のいずれかである。データ分割処理部12は、連続する同じ傾きの値の区間を1つにまとめて、まとめられた区間の境界点となる傾きの値の変化する点を分割点として求める。分割点併合処理部13は、分割点間の距離(時間)または分割点の数の条件によって分割点の前後を併合する。すなわち、分割点を削除して、分割されていた2つの時間を1つに併合する。
【0021】
分割結果表示制御部14は、センサデータと分割点を画面に表示し、ユーザによる分割の修正を受け付け、修正内容をパラメータ(係数)として区間設定部11に送信し、区間設定部11に再処理させる。
【0022】
データ抽出処理部15は分割点間ごとにセンサデータを抽出して異常予兆診断処理部2へ送信する。分割点抽出処理部16は、分割点の時刻を抽出して異常予兆診断処理部2へ送信する。特徴量計算部17は、分割点間ごとのセンサデータの特徴量を計算して異常予兆診断処理部2へ送信する。特徴量については
図18を用いて後で説明する。
【0023】
異常予兆診断処理部2は、プリプロセッサ1からセンサデータ、分割点の時刻、特徴量を受信する。異常予兆診断装置21は、分割点間ごとのセンサデータを用いて、従来のクラスタリング手法により異常診断する。分割点時刻異常診断処理部22は、分割点の時刻を用いて異常診断する。異常予兆診断装置23は、分割点間ごとの特徴量を用いて、従来のクラスタリング手法により異常診断する。
【0024】
診断結果総合判定処理部24は、異常予兆診断装置21と分割点時刻異常診断処理部22と異常予兆診断装置23の異常診断した結果に基づいて、分割点間ごとにセンサデータが異常か否かを総合的に判定する。
【0025】
図2は、区間の変更による影響の例を示す図である。区間設定部11が設定する区間すなわち1つの傾きで表される時間が変わると、センサデータの変動(トレンド)の表現精度に影響する。グラフ30は、縦軸がセンサデータの値であって横軸が時刻であり、センサデータはノイズを含むため、センサデータの値に乱れがある。
【0026】
このグラフ30のセンサデータに対して、区間を「3」、「11」、「31」に設定し、それぞれの区間ごとにセンサデータの値から1つの傾きを計算し、計算された傾きと時刻との関係を時間変化として表したグラフをグラフ31、32、33に示す。
【0027】
グラフ31は区間を「3」に設定したときのグラフである。グラフ31に示すように、区間が短すぎると、傾きの計算へのノイズの影響が大きく、センサデータのトレンドとノイズの区別がつかないため、センサデータのトレンドを正確に反映しない。
【0028】
グラフ32は区間を「11」に設定したときのグラフである。グラフ32に示すように、適切な区間が設定されると、センサデータのトレンドを正確に反映する。その理由は、区間を長く設定すれば、より多くのデータを用いて線形回帰による傾きを計算することになり、平均化の効果があるためである。すなわち、ノイズの影響は、トレンドを表す多くのセンサデータにより薄まる。
【0029】
しかし、区間が長すぎると、過度の平均化の効果が生じて悪影響が出る。グラフ33は区間を「33」に設定したときのグラフである。グラフ33に示すように、ノイズのみならず元のセンサデータに含まれるセンサデータの一部のトレンドまでもなくなり、センサデータのトレンドを正確に反映しない。
【0030】
このような状況であるので、ノイズの影響と過度の平均化の効果の影響の両方を低減するために、区間を最適化する必要がある。センサデータによってノイズとデータのトレンドの幅が異なるので、最適な区間は異なる。次に、区間の最適化に使用する評価指標について説明する。
【0031】
なお、多次元センサ3が何らかの装置の状態を検出する場合、時間30aにおけるセンサデータのように、センサデータが急に変化し、その変化のパターンがその装置固有の一定のパターンを示す場合がある。例えば、装置の電源を投入したときのセンサデータのパターン(例えば、立上り波形)は一定である場合があり、このパターンの発生がセンサデータの時刻の基準となってもよい。この一定のパターンはセンサデータの値が「0」からの変化であってもよい。
【0032】
図3、4は、区間設定部11の評価指標の例を示す図である。これらの評価指標は、ノイズの影響と過度の平均化の効果の影響の両方を低減するために、両者の影響を評価する指標の例であるが、これらの例に限定されるものではなく、様々な統計量や計算式を評価指標として使用してもよい。
【0033】
図3に示した例は、ある区間(時間)が設定され、区間内に含まれる複数のセンサデータから1つの傾きを正(+)か負(−)の符号として計算し、評価の対象となる時間(複数の区間を含む時間)内の隣接異符号ペア数を、ノイズの影響の評価のための指標として使用する。例えば、ノイズの影響が大きい場合は、計算した傾きも大きく変動し、隣接異符号ペア数が多くなる。
【0034】
図3において、ある第1の時間を区間とすると、センサデータから計算される傾きは、その区間内は直線となる折れ線35aで表され、直線が右上がりの部分は傾きが正(+)、直線が右下がりの部分は傾きが負(−)となる。そして、隣接する正(+)37と負(−)38のペアが隣接異符号ペアである。ここでは、正(+)37の左隣りの負(−)と正(+)37とも隣接異符号ペアとする。
【0035】
区間を長くすると、この指標は減るので、傾きの長く続く部分が有利となる。第1の時間より長い区間の場合は、例えば直線36aのような傾きになる。以下では、この指標を指標Aと呼ぶ。指標Aを計算するために、
図6に後述する時刻に応じて変化する傾きを計算する。
【0036】
線形回帰法を用いて各区間のセンサデータから傾きを計算する時、線形回帰法で計算された直線とセンサデータとの残差の和が計算される。その残差は、区間内のセンサデータのトレンドを1つの直線で表現したときのトレンドと実際のセンサデータとの誤差を表す。そして、区間内のセンサデータが同じトレンドにしたがう場合、残差は実際のセンサデータに含まれるノイズが原因となって生じる誤差である。
【0037】
区間が長すぎて、1つの区間に異なるトレンドのセンサデータが含まれると、残差に、そのトレンドの異なるという現象も誤差として含まれるので、残差が通常より大きくなる傾向がある。このような特徴があるので、本実施例では残差を指標として過度の平均化の効果の影響評価に使用する。
【0038】
図4において、ある第2の時間を区間とすると、センサデータから計算される傾きは、少なくともその区間内は直線となる折れ線35bで表され、例えば、センサデータが2つの異なるトレンドを含む場合、折れ線35bは第1のトレンドを左側で傾きが正(+)で表し、第2のトレンドを右側で傾きが負(−)で表す。
【0039】
また、第2の時間より長い区間の場合は、例えば、2つのトレンドを跨る直線36bのような傾きになり、領域39内の細かな正(+)と負(−)の傾きにともなう残差がノイズによるものであるとしても、領域39の左端と右端のように第1のトレンドを表すセンサデータや第2のトレンドを表すセンサデータとの間にも残差が発生してしまう。
【0040】
このように、この指標は、区間を長くすると値が増加するので、指標Aの逆で、傾きの短く続く部分が有利となる。以下では、この指標を指標Bと呼ぶ。指標Bを計算するために、
図6に後述する時刻に応じて変化する傾きを計算する。そして、指標Aと指標Bの両方を用いることにより、区間を最適化することができる。
【0041】
図5は、区間設定部11の処理フローの例を示す図である。この処理では、指標Aと指標Bを用いて区間の長さを最適化する。このために、区間の長さと位置を変更しながら指標Aと指標Bを計算し、区間の長さと位置の組み合わせに対する指標Aと指標Bを得て、区間の長さを決定する。
【0042】
予め、区間の長さの最適化範囲が値「3」〜「51」として設定されており、その範囲内のすべての奇数値「3」、「5」、「7」、...、「49」、「51」に対して計算するため、区間設定部11は、最適化範囲の中から計算にまだ使用されていない区間の長さを1つ取り出して、計算対象の区間の長さに設定する(ステップ51)。このために、ステップ51の1回目の実行では奇数値「3」が設定され、2回目の実行では奇数値「5」が設定されてもよい。
【0043】
また、予め、最適化に使用されるセンサデータの時間(例えば8時間など、センサデータが検出する対象の稼働時間など)が設定されており、その時間内のすべての時刻に、区間の位置を移動しながら計算するため、区間設定部11は、設定された時間の中から計算にまだ使用されていない時刻を1つ取り出して、計算対象の区間の位置すなわち区間の中心の時刻に設定する(ステップ52)。この設定については
図6を用いて後述する。
【0044】
区間設定部11は、ステップ51、52で設定された区間におけるセンサデータのグラフの傾きを計算して、指標Bを計算し(ステップ53)、指標Aを計算する(ステップ54)。そして、予め設定された時間の最後のセンサデータまで計算の対象となったかを判定し(ステップ55)、最後のセンサデータまで計算の対象となっていないと判定すると、ステップ52へ戻って、次のセンサデータの位置を含むように区間を移動し、最後のセンサデータまで計算の対象となっていると判定すると、ステップ56へ進む。
【0045】
図6は、区間の設定の例を示す図である。区間が設定される時刻を移動しながら、区間に含まれるセンサデータの傾きが計算されるため、計算された傾きの値は時間変化を表すことになる。この例では、センサデータが一定の時間ごとに存在し、区間の長さは5個のデータであって、区間の時間的な長さも一定である。
【0046】
計算対象となる区間の中心のセンサデータの前後((区間の長さ−1)/2)個のデータに対して、(式3)の公式となる線形回帰を行う。
【0047】
S=a×T+b (式3)
ここで、(式3)は縦軸をS、横軸をTとしたときに直線を表す式であり、S(従属変数)はセンサデータに対応する値、T(独立変数)は時刻であり、係数aは傾き、係数bは区間の端(切片)のセンサデータに対応する値である。
【0048】
図6において、Sとなるセンサデータ61からセンサデータ63、およびTとなるこれらのセンサデータの時刻から、係数aとなる傾きの値65が計算される。係数bも計算されてもよい。次回のステップ52の実行では区間が次の位置に設定され、センサデータ62からセンサデータ64が傾きの値66の計算に使用される。
【0049】
予め設定された最適化に使用されるセンサデータの時間(評価の対象となる時間)の最初と最後のセンサデータに対して、その前後のセンサデータが不足して計算できないので、ゼロまたは傾きと区別できる値が設定されてもよい。
図6の例ではこのような値67などとして「×」を設定した。また、本実施例では、予め設定された時間のセンサデータそれぞれに対して計算するとしたが、計算時間を短縮するために数個のセンサデータを飛ばしながら傾きを計算し、計算しない時刻の傾きは隣の計算した傾きの平均値で補足してもよい。
【0050】
また、本実施例では、区間の中心の傾きを計算すると定義したが、実装の状況によって区間内の他の位置と定義してもよい。例えば、リアルタイムで計算する場合に、計算時点の傾きを、計算時点から前の区間に含まれるセンサデータで計算すると定義してもよい。さらに、以上を処理の前に、外れ値処理や正規化処理などの前処理が行われてもよい。
【0051】
ここで、ステップ53の指標Bの計算は、例えば、センサデータ61からセンサデータ63およびTから(式3)の係数aと係数bが計算された後、計算された係数aと係数bを用いてセンサデータ61の時刻をTとする(式3)のSを計算し、計算されたSとセンサデータ61の値との差(残差に相当)を計算し、このような差の計算をセンサデータ63まで繰り返して、計算された5つの差の合計であってもよい。
【0052】
ステップ54の指標Aの計算は、値65を記憶し、値66を記憶するときに、記憶された値65と値66が異符号ペアであるかを判定して、異符号ペアであると判定した場合は異符号ペアの個数をカウントアップし、このような記憶と判定とカウントアップの処理を値66以降でも実行してもよい。
【0053】
図5へ戻り、ステップ56で区間設定部11は、最適化範囲の最後の長さまで完了したかを判定する。例えば奇数値「3」、「5」、「7」、...、「49」、「51」においては、奇数値「51」まで完了したかを判定する。完了していないと判定するとステップ51へ戻って、次の奇数値を設定し、完了したと判定するとステップ57へ進む。ステップ51〜56で計算された指標Aと指標Bの例を
図7に示す。
【0054】
既に説明したように、指標Aは区間が短くなると増加し、指標Bは区間が長くなると増加する。このため、指標Aに係数Aを乗じた値の実線71、72も区間が短くなると上昇し、指標Bに係数Bを乗じた値の破線73も区間が長くなると上昇する。
図7の例で、実線71、72と破線73の交わる点の区間の長さ74、75を最適化された区間の長さとしてもよい(ステップ57)。
【0055】
このようにすると、係数Aと係数Bの設定によって、指標Aと指標Bそれぞれの重要度を変更することができ、最適化された区間の長さに影響を与えられる。例えば、実線71に対して係数Aを増加させると実線72となって、指標Aの影響度が大きくなり、区間の長さ74が区間の長さ75へと変化して、区間が長くなる傾向を示す。係数Aと係数Bは、ユーザによって設定されてもよいし、テストデータの分割結果によって 設定されてもよい。
【0056】
別の最適化の評価の例を(式1)と(式2)で説明する。
評価値C = 指標A×係数A + 指標B×係数B (式1)
評価値D = 指標A×指標B (式2)
(式1)により計算された評価値Cが最小となる区間の長さが、最適化された区間の長さとされてもよい。また、(式2)により計算される評価値Dが最大となる区間の長さが、最適化された区間の長さとされてもよい。
図7に示した最適化と(式1)を用いた最適化と(式2)を用いた最適化とは選択可能であってもよい。
【0057】
本実施例では、ユーザが分割結果を修正した結果によって係数Aと係数Bを調整する手段を提供する。これにより、ユーザが分割処理のメカニズムを理解しなくても、手軽に分割プロセスをカスタマイズすることができる。詳細については後述する。
【0058】
図8は、データ分割処理部12の処理フローの例を示す図である。データ分割処理部12は、区間設定部11が設定した区間の情報を用いて、センサデータを時刻で分割する。このため、本実施例では、時刻の流れに沿って傾き値の正、負、ゼロ付近の間で変化する時刻を分割点とする。
【0059】
ただし、ゼロ付近については、実際のセンサデータにノイズが含まれるために完全なゼロの点が少ないので、予め設定された閾値より傾き値の絶対値が小さい場合は、上昇でも降下でもない定常トレンドを表現するゼロ付近と定義する。この定義に応じて、同じ閾値より傾き値の絶対値が大きい場合に、正または負と定義してもよい。
【0060】
データ分割処理部12は、まず、時刻的に最初の区間の傾き値を傾きAに設定し、最初の区間の代表時刻を始点と終点の両方に設定して、最初の区間を以下の処理の対象区間に設定する(ステップ81)。区間の代表時刻は、区間の中の中心のセンサデータに対応する時刻であってもよいし、区間の中の他のセンサデータに対応する時刻であってもよい。
【0061】
データ分割処理部12は、ステップ81あるいは(ステップ82からステップ87のループにおける)前回のステップ82で設定された対象区間の時刻的に次の区間を新たな対象区間に設定し、その新たな対象区間の傾き値と代表時刻をそれぞれ傾きBと時点Bに設定する。
【0062】
データ分割処理部12は、傾きAと傾きBが同じ傾き値であるかを判定し、同じ傾き値であると判定すると、ここでの終点では分割しないため、時点Bを新たな仮の終点とすべく、時点Bの時刻を終点に設定して、終点を更新する(ステップ84)。また、同じ傾き値ではないと判定すると、ここでの終点で分割するため、ステップ85へ進む。
【0063】
データ分割処理部12は、傾きAと始点と終点それぞれの値を保存し(ステップ85)、終点で分割したことを記録する。そして、傾きBの値を傾きAに設定し、時点Bの値を始点と終点の両方に設定して、傾きAと始点と終点を更新し(ステップ86)、新たな分割点を見つけるための基準とする。
【0064】
データ分割処理部12は、対象区間が時刻的に最後の区間であるかを判定し(ステップ87)、最後の区間ではないと判定するとステップ82へ戻り、対象区間の次の区間を新たな対象区間に設定して処理を繰り返し、最後の区間であると判定すると分割の処理を終了する。このステップ87における対象区間はステップ82で設定された対象区間である。また、ステップ84からステップ87へ進んで分割の処理を終了する場合、傾きAと始点と終点それぞれの値が保存されてもよい。
【0065】
なお、1回のステップ85の実行において保存された始点と終点はそれぞれ分割点であり、この始点と終点との間を分割点間と呼ぶことにする。そして、分割点間が複数の区間を含む場合、含まれる区間の傾き値の正、負、ゼロ付近は同じであるので、1つの分割点間は1つのトレンドを表す可能性が高い。
【0066】
また、分割点間と時刻的に次の分割点間とでは、前者の分割点間の終点である分割点と後者の分割点間の始点である分割点の2つの分割点が隣接するため、隣接する2つの内のいずれか一方の分割点を、前者の分割点間と後者の分割点間との間の1つの分割点とみなしてもよい。
【0067】
図9は、分割点併合処理部13の処理フローの例を示す図である。分割点併合処理部13は、隣接する分割点間を併合し、分割点を少なくして分割点間を長くする。例えば、区間設定部11で区間を設定することにより、ノイズの影響を低減できるが、ノイズが原因で生じる短くて無用な分割点間がいくつか残る可能性があり、これを解決するために併合する。
【0068】
また、分割点間の数が既知の場合に、分割点間を併合することで分割の精度を向上することができる。例えば、センサデータを3つに分割するという条件が予め設定されている場合、分割点間を短い順で併合し、最後に3つの分割点間にまとめてもよい。本実施例では、最も短い分割点間から隣接する分割点間と併合する。
【0069】
このために、分割点併合処理部13は、まず、データ分割処理部12がステップ85などで保存した分割点に基づく分割点間の中で最も短い分割点間を見つけ出す(ステップ91)。この例では、見つけた分割点間に時刻的に前と後に隣接する2つの分割点間の中で短い方の分割点間を併合対象として選択する(ステップ92)。そして、この選択された併合対象の分割点間と最も短い分割点間とを併合する(ステップ93)。
【0070】
この例のステップ92において、併合対象は短い方を選択する場合について説明したが、実際のデータによっては長い方を選択してもよい。または、ユーザにより設定された他の併合対象選択基準に基づいて選択してもよい。
【0071】
併合された分割点間は1つの分割点間として保存され、分割の条件を満足するかを判定し(ステップ94)、満足しないと判定した場合は、ステップ91へ戻り、併合された分割点間も1つの分割点間として、最も短い分割点間を見つけ出すという処理を、分割の条件を満足するまで繰り返す。
【0072】
分割の条件は、例えば、最も短い分割点間に含まれるセンサデータ数が「5」以上であるという条件であってもよいし、分割点間の数が「3」であるという条件であってもよいし、他の条件であってもよい。また、分割の目的によっては、この併合処理をスキップしてもよく、スキップした場合、データ分割処理部12の出力は分割結果表示制御部14に送信される。さらに、分割の条件を満たす場合、分割点併合処理部13は、データ分割処理部12で分割した分割点を併合することなく分割結果表示制御部14に送信してもよい。
【0073】
図10は、分割結果表示制御部14のGUI画面の例を示す図である。本実施例のGUI画面には、設定画面141と監視画面145が切り替え可能に含まれる。分割結果の表示は、設定画面141の表示部分1411のように、横軸を時刻で縦軸をセンサデータの値として複数のセンサデータと各分割点を表示する。
【0074】
過去の分割結果を表示するために、横軸のスクロールバーが表示される。また、5個以上のセンサに関して、分割結果を表示するため、表示部分1411に縦軸のスクロールバーが表示される。スクロールせずに表示の対象となる時間は、表示範囲1412で30分、1時間、1日などの選択メニューが表示される。監視ボタン1413へのクリック(タッチ)が検出されると、監視画面145に切り替えて表示する。
【0075】
監視画面145には、表示部分1453のような簡潔な画面で、選択されたセンサの分割結果が拡大されて表示される。選択メニュー1451は選択されるセンサの識別子が表示される。表示範囲1452は表示範囲1412と同様の選択を可能にする表示である。設定ボタン1454へのクリックが検出されると、設定画面141に切り替えて表示する。なお、監視画面145を表示するときには、ユーザによる修正の操作がないので、センサデータと分割点の情報をそのまま次の処理部に送信する。
【0076】
設定画面141はユーザが分割結果を修正するための画面であるが、分割点を直接に修正するには、分割処理のメカニズムが分からなければならないので、ユーザにとって修正の難しいケースもある。それを解決するために、本実施例は、直観的に理解できるパラメータを提供する。例えば、計算パラメータ設定1420に示すように、トレンド表現精度とノイズ抑制強度のスライドを表示し、スライドの移動を検出してスライドの位置に応じた値の入力を可能にする。
【0077】
スライドに位置に応じて入力された値は、分割処理のためのパラメータに変換される。例えば、トレンド表現精度の値を増加するスライドの操作を検出すると、区間設定部11の処理に使用される(式1)の係数Bの値を増加し、指標Bの影響度が増加する。また、ノイズ抑制強度の値を増加するスライドの操作を検出すると、区間設定部11の処理に使用される(式1)の係数Aの値を増加し、指標Aの影響度が増加する。これらにより、ユーザが簡単に分割処理の動作を制御することができる。なお、パラメータが変更された結果の分割の状態は、リアルタイムに表示部分1416へ表示されてもよい。
【0078】
より便利な入力の機能は、ユーザによる分割結果の画面での直接修正を受け付けることである。選択メニュー1414は選択されるセンサの識別子が表示され、選択メニュー1414で選択されたセンサのセンサデータと分割結果の拡大図が、表示部分1416に表示される。ここで、表示範囲1415は表示範囲1412と同様の選択を可能にする表示である。
【0079】
表示部分1416において、縦破線が分割点の例であり、縦破線がユーザにより指定されることで、指定された縦破線に対応する分割点が修正の対象となる。移動ボタン1417、追加ボタン1418、削除ボタン1419は、分割点の位置にオフセットを設定する修正、分割点を追加する修正、分割点を削除する修正をそれぞれ指示されるためのボタンである。表示部分1416における縦破線の指定あるいは縦破線の無い時刻の指定を検出し、各ボタンへのクリックを検出して、これらの検出に基づく処理を行う。
【0080】
例えば、ユーザが分割結果を観察すると、1つ重要な変動が、その変動の幅の小さいことが原因で分割されなかったことが分かる。その時、ユーザが追加ボタン1418をクリックして、設定画面141の表示部分1416で分割点を追加したい位置をクリックすれば、これらのクリックの情報を得た分割結果表示制御部14が、クリックにより指定された分割点の位置で分割するようなパラメータを探す。
【0081】
このような分割点の追加の場合は、計算区間が長すぎて過度の平均効果が起こっている可能性があるため、(式1)の係数Bの増加により、追加された分割点を算出されるまで指標Bの影響度が増加されてもよい。ユーザの修正を実現できるパラメータが見つかったら、パラメータは区間設定部11に送信され、それ以降の分割処理に反映されてもよい。
【0082】
さらに設定画面141では、修正されたパラメータを複数のセンサのデータへ適用する指示のための全部適用ボタン1421、修正されたパラメータを1つのセンサのデータへ適用する指示のための単一適用ボタン1422、修正されたパラメータを保存する指示のための保存ボタン1423、保存されたパラメータを読込む読込ボタン1424も表示される。
【0083】
図11は、複数のセンサにおけるセンサデータの分割の例を示す図である。複数のセンサによるセンサデータを分割する場合に、センサごとに分割結果の異なる可能性がある。例えば、分割した区間の数が異なる、または分割点の時刻が互いにずれる。これに対して、選択された代表センサの分割に基づいて、他のセンサのセンサデータが分割されてもよい。
【0084】
例えば、複数のセンサデータを区間ごとにクラスタリングする場合は、データ欠損があれば多次元空間で表現できないので、データ欠損のないセンサのセンサデータ分割点と一致しなければならない。そのため、ここでの分割は、選択された代表センサのセンサデータの分割点がすべてのセンサデータに適用される。
【0085】
図11の例では、「センサA」が代表センサであり、「センサA」のセンサデータ111に基づいて計算された分割点114、115が、「センサB」のセンサデータ112と「センサC」のセンサデータ113に適用され、それぞれ分割点116、117と分割点118、119になる。
【0086】
代表センサを選択する処理として、各センサのセンサデータのSN比を計算し、一番高いSN比を持つセンサが代表センサであってもよい。また、各センサのセンサデータのサンプルが分割され、分割された区間の数が一番多いセンサが代表センサであってもよい。また、過去の異常予兆診断事例によって異常を検出する感度の高いセンサが代表センサであってもよい。
【0087】
図12は、複数のセンサにけるセンサデータの分割の別の例を示す図である。複数のセンサによるセンサデータを分割する場合に、センサごとに分割結果が異なってもよい。異常予兆診断の内容によっては、センサごとのセンサデータの分割点が比較される場合や、センサごとに特徴量が計算される場合もあり、このような場合はセンサごとにセンサデータが分割されてもよい。
【0088】
図12の例では、「センサA」のセンサデータ121の分割点の個数は「2」であり、「センサB」のセンサデータ122の分割点の個数は「4」であり、「センサC」のセンサデータ123の分割点の個数は「6」であって、個数が異なる。また、分割点の時刻においても、分割点124と分割点125と分割点126とでは時刻が異なる。
【0089】
図13から
図15を用いて、プリプロセッサ1から異常予兆診断処理部2へ分割データを送信する手順の例を説明する。分割データは、各分割点間のセンサデータの状態を表すデータであり、センサデータの分割点の時刻情報(タイムスタンプ)またはセンサデータ内での順番(位置)を表すインデックスを含み、後述する分割ベクトルであってもよい。各分割データは時刻順に送信され、異常予兆診断処理部2の設定によって、分割データのそれぞれが識別できるように送信される。
【0090】
図13は、分割データを連続して送信する例を示す図である。この例では、プリプロセッサ1が異常予兆診断処理部2へ、1つの分割点間に対応する1つの分割データ1301を送信すると、分割点間の送信終了を示す完了信号1302を送信し、次の分割データ1303を送信すると、完了信号1304を送信する。
図14は、分割データの送信ごとに応答する例を示す図である。プリプロセッサ1が異常予兆診断処理部2へ分割データ1305を送信すると、通信はいったんアイドリング1306の状態となり、プリプロセッサ1は異常予兆診断処理部2から送信可信号1307を受信すると、次の分割データを送信する。
【0091】
図15は、分割データを並列に送信する例を示す図である。プリプロセッサ1は異常予兆診断処理部2へ複数の分割データ1308、1309を並列に送信する。
図13、14を用いて説明した送信の手順と組み合わせて、並列の送信に加えて、並列の送信を繰り返してもよい。
【0092】
図16は、分割点ベクトルの例を示す図である。分割点の情報は、予兆診断で処理されやすい分割点ベクトルに変換される。
図16の例では、分割結果が、センサデータ内の順番、分割点間の始点の時刻、分割点間の終点の時刻、分割点間のセンサデータの傾きを表す状態から成り、分割点ベクトルは分割点間の始点の時刻をベクトルとして表現したものである。
【0093】
ここで、さらに処理をしやすいように、時刻あるいはインデックスは実数に変換される。
図16の例では始点や終点の時刻を整数で示したが、一般に時刻は例えば「2015年03月01日08時10分00秒」などというフォーマットの情報で表される。このような情報に対して、分割点間の関係を維持する線形的な実数にマッピングする。
【0094】
これにより、例えば、分割点間の始点の時刻である「2015年03月01日08時10分00秒」は、予め設定された基準時刻の「2015年01月01日00時00分00秒」と比較され、両者の秒単位の時間差が計算されて、「5127000」という実数に変換される。
【0095】
なお、
図16の分割結果からも明らかなように、ある分割点間の終点と、次の分割点間の始点とは隣接するので、これらの時刻も昇順に並ぶため、分割点ベクトルの実数も昇順に並ぶ。また、分割点ベクトルは、分割点間の終点の時刻に関するベクトルであってもよい。
【0096】
図17は、分割点ベクトルを用いた異常予兆診断の処理フローの例を示す図である。
図17の例は、正常データのベクトルを用いてクラスタリングなどにより学習し、学習したベクトルと新しく取得されたセンサデータの分割点ベクトルとを比較するため、類似度を算出して、新しく取得されたセンサデータが異常であるか否かを判定する。なお、この分割点ベクトルの異常診断には、さまざまな種類の機械学習が適用されてもよい。
【0097】
正常データは変動パターン(トレンドパターン)に規則性があり、正常な状態の実際のセンサデータと正常データを同じ処理により分割すると、変動パターンを表す分割結果すなわち分割点ベクトルには、大きな差は発生しない。しかし、異常な状態の実際のセンサデータすなわち異常データには正常データとは異なる変動があり、その変動は新たな分割点を発生させる可能性があるので、その分割点の差により異常を検出することが可能となる。その分割点の差には、例えば分割点の数の差や位置の差がある。
【0098】
まず、分割点時刻異常診断処理部22は学習処理として、正常データを用いて正常クラスを作成する(ステップ1701)。クラスの作成は、そのクラスに所属するデータにそのクラスのラベルを付ける。このため、正常クラスは正常というラベルが付けられたデータの集合であり、特には、各要素に正常というラベルが付けられた分割点ベクトルである。以下では、診断対象のセンサデータの分割点ベクトルと区別するために、正常クラスの分割点ベクトルを正常ベクトルと呼ぶ。
【0099】
正常データは複数種類あり、正常ラベルも複数種類あってもよい。例えば、センサの検出モードが複数種類ある、またはセンサの検出対象となる装置などに動作モードが複数種類あり、異なる検出モードまたは動作モードに応じて異なる変動パターンが正常パターンとして存在してもよい。
【0100】
異常データの変動パターンが予め判明している場合は、異常クラスを作成してもよい。また、複数の異常状態があり、複数種類の異常データが判明している場合は、例えば異常Aクラス、異常Bクラス、異常Cクラスのように、複数のクラスを作成してもよい。なお、ステップ1701のクラスの作成は、異常診断より前に予め実行されていてもよい。
【0101】
診断対象となるセンサデータの分割点ベクトルと正常データの正常ベクトルを比較するために分割点時刻異常診断処理部22は、類似度を計算する(ステップ1702)。類似度の計算の具体的な処理は、後述するステップ1711からステップ1714である。そして、計算された類似度が予め設定された閾値より低いかを判定し(ステップ1703)、低いと判定すると、診断結果を異常とする(ステップ1704)。このために、異常ということを表す値を所定の記憶領域に格納するなどしてもよい。
【0102】
類似度を計算するため、まず分割点時刻異常診断処理部22は、複数の正常ベクトルを含む正常クラスから、それまでに抽出されていない正常ベクトルを1つ抽出する(ステップ1711)。そして、抽出された正常ベクトルと分割点ベクトルとの距離を計算する。距離の計算の具体的な処理は、後述するステップ1721からステップ1724である。
【0103】
分割点時刻異常診断処理部22は、正常クラスに抽出されていない正常ベクトルが残っており、抽出が完了していないと判定すると(ステップ1713)、ステップ1711へ戻り、他の正常ベクトルを抽出する。また、ステップ1713で抽出が完了したと判定すると、複数の正常ベクトルそれぞれと計算された距離の中で最小値を特定し、特定された最小値の逆数を計算して類似度とする(ステップ1714)。
【0104】
距離を計算するため、まず分割点時刻異常診断処理部22は、複数のデータを含む分割点ベクトルから、それまでに抽出されていないデータを1つ抽出する(ステップ1721)。そして、ステップ1711で抽出された正常ベクトル内の最も値の近いデータとの差を計算する(ステップ1722)。
【0105】
分割点時刻異常診断処理部22は、分割点ベクトルに抽出されていないデータが残っており、抽出が完了していないと判定すると(ステップ1723)、ステップ1721へ戻り、他のデータを抽出する。また、ステップ1723で抽出が完了したと判定すると、ステップ1722で計算された差の合計を計算して距離とする。
【0106】
以上の処理において、例えば、診断対象となるセンサデータの分割点ベクトルをSDとし、3つの正常ベクトル(正常クラスの分割点ベクトル)をND−A、ND−B、ND−Cとし、これらの分割点ベクトルのそれぞれは、
図16を用いて説明した複数の区間の始点(分割点)を含む分割点ベクトルであって、「2015年01月01日00時00分00秒」の代わりに、それぞれの(センサ)データの取得される当日の「00時00分00秒」が基準時刻であってもよい。
【0107】
また、予め分割点ベクトルの一部のパターン(例えば、立上り波形)が設定されており、
図2を用いて説明したように、その設定されたパターンと一致する分割点ベクトルの時刻を基準時刻として、分割点ベクトル内の他の時刻(区間の始点に対応する実数)を再変換してもよい。
【0108】
そして、分割点ベクトルに含まれるデータは、変換された実数であるから、2つの実数の差が距離の一部として計算され、差の値の小さい組み合わせが近いと特定されてもよい。2つの実数の差の合計が計算され、SDとND−Aの距離がDIST−A、SDとND−Bの距離がDIST−B、SDとND−Cの距離がDIST−Cとした場合、類似度は1/min(DIST−A、DIST−B、DIST−C)と計算されてもよい。
【0109】
ここで、距離の計算は、分割点数の違いと分割点位置(時刻あるいは変換された実数)の違いとの両方が反映する計算であってもよい。ND−A、ND−B、ND−Cは、正常の度合いの異なる正常Aクラス、正常Bクラス、正常Cクラスという複数のクラスであり、正常の度合いが最低の正常Cクラスとの類似度が高い場合は、異常の可能性が高くなっていると判定されてもよい。このように複数のクラスとの類似度を判定することで、より正確な診断に役立ち、異常の種類や原因の判断に役立つ。
【0110】
図18は、センサデータの特徴量の計算の例を示す図である。この特徴量は、ある分割点間におけるセンサデータの変動の量である。例えば、特徴量計算部17は、
図18に示した1つの分割点間の範囲内の「極大値」と「極小値」を算出し、算出された「極大値」と「極小値」との「差」を計算する。ここで、計算された差は時系列ではなく、1つの分割点間に対して1つの値となり、
図18に示した「傾き」や「時間間隔」に依存しない。
【0111】
異常予兆診断装置23は、計算された特徴量を多次元データとして、クラスタリング手法により異常診断する。例えば、正常なサンプルとして学習用の複数のセンサデータそれぞれを複数の分割点間に分割し、複数のセンサデータにおいて対応する分割点間ごとにK−Meansを用いて正常クラスタを予め求めておく。
【0112】
そして、異常予兆診断装置23は、各分割点間に分割された診断対象のセンサデータを、分割点間ごとに正常クラスタと比較して、クラスタの中心からの最短距離が所定の閾値を超えれば、診断対象のセンサデータは異常であると判定する。
【0113】
図19は、複数の診断結果の利用の例を示す図である。
図19の例では、診断対象となるセンサデータ191の内容に応じて「データA」から「データE」であり、異常予兆診断装置21あるいは異常予兆診断装置23の診断結果192と、分割点時刻異常診断処理部22の診断結果193が各データに対応して判定された状態において、診断結果総合判定処理部24が診断結果194を総合的に判定する。
【0114】
この例での診断結果192、193、194は「正常」か「異常」のいずれか1つであり、「データC」と「データD」と「データE」のように、診断結果192、193のいずれかが「異常」であれば、診断結果194は「異常」と判定される。また、「データA」と「データB」のように、診断結果192、193の両方が「正常」であれば、診断結果194は「正常」と判定される。
【0115】
ここでは、2つの診断結果192、193から診断結果194を判定する例を示したが、3つ以上の診断結果に基づいて総合的な診断結果が判定されてもよい。データ抽出処理部15の出力するセンサデータに応じた異常予兆診断装置21の診断結果と、分割点抽出処理部16の出力する分割点に応じた分割点時刻異常診断処理部22の診断結果と、特徴量計算部17の出力する特徴量に応じた異常予兆診断装置23の診断結果とに基づいて総合的な診断結果が判定されてもよい。
【0116】
また、診断結果総合判定処理部24は、総合的な判定として、統計的な手法の処理を実行してもよい。例えば、複数の診断結果に占める「異常」の割合が、予め設定されたパーセント以上であれば、「異常」と判定してもよいし、複数の診断結果それぞれに重みを付けて、「異常」の割合を計算して、予め設定されたパーセント以上であれば、「異常」と判定してもよい。
【0117】
以上で説明したように、指標Aと指標Bを用いて区間を設定するため、センサデータのノイズを抑えたデータ分割が可能になる。また、同じ傾きの状態となる区間をまとめることにより、トレンドを表すことができ、異なる傾きの状態となる区間に分割点を設定することにより、トレンドの変化を表すことができる。そして、短い分割点間を他の分割点間と併合することにより、ノイズの影響をさらに低減できる。
【0118】
また、センサデータと分割点を表示することにより、ユーザが分割点を確認することが可能になり、ユーザによる分割点の変更に操作に応じて係数Aと係数Bを変更するため、ユーザが分割の処理に関する知識を持たない場合でも容易に分割点を修正することが可能になる。さらに、複数のセンサのセンサデータのそれぞれに対しても分割点を設定することが可能であり、複数種類の診断結果に基づいて総合的に判定することも可能になる。
センサデータを前処理するプリプロセッサにおいて、時系列のセンサデータを取得し、センサデータに含まれるノイズに対して異なる影響を示す第1の指標と第2の指標を計算し、第1の指標と第2の指標に応じてノイズの影響が抑えられた区間を設定する区間設定部と、前記区間設定部で設定された区間であって、ノイズの影響が抑えられた区間単位で、センサデータの傾向が変化する分割点を設定する分割処理部と、前記分割処理部で設定された分割点の時刻から分割点ベクトルを生成して出力する分割点抽出処理部と、を備える。