<システム構成>
図1は、本実施形態に係る分析システム1の構成の一例を示す図である。分析システム1は、例えば、工場、発電所、油田等の資源の採掘場、又は公共インフラシステム(インフラ=インフラストラクチャー(infrastructure)。例えば、水道の配管、ガスの配管、道路、自動車、鉄道、航空機。)等の、複数の装置5が設けられている所定のシステム(以下、分析対象システム10という)を管理する事業体に導入される情報システムである。
分析システム1は、分析対象システム10に関する分野の専門知識(例えば、分析の専門知識)を持たない利用者110であっても、分析対象システム10の分析を可能とするシステムである。例えば、分析システム1は、その利用又は経年劣化により装置5が破損又は故障する可能性を分析することができる。
すなわち、利用者110は、分析システム1に設けられた情報処理装置(コンピュータ)であるシステム分析装置120に対して、後述する稼動データ及び状態データを含む処理データ102と、利用者110が要求する分析に関連する情報である分析対象データ104とを含む分析要求100を入力する。すると、システム分析装置120は、分析モデル108と、分析モデル108の妥当性を示すデータ(例えば、システム特性を示す情報、分析モデル108の生成に利用したアルゴリズムやそのアルゴリズムに適用されたパラメータ、適用されたアルゴリズムの順番と組合せ等)である根拠データ105とを含むデータである分析結果106を出力し、利用者110に提示する。
なお、分析対象データ104には、例えば、各装置5の過去の故障日時又は故障箇所、利用者110が分析の対象とする装置5(以下、分析対象装置という。)等が含まれる。
また、装置5は、例えば、工場や発電所で利用される装置、油田その他の資源の採掘現場で利用される機器、配管、道路、自動車、鉄道、航空機等であり、複数の装置5のそれぞれが単独で、又は連携して対応する処理又は動作を行っている。
また、装置5のそれぞれには、それぞれの装置5の状態又は動作を随時(例えば、所定の時間間隔又は所定のタイミングで)監視している所定のセンサ6(例えば、監視カメラ、温度計、電圧計、電流計、振動計、速度計等)が設けられている。
<システム分析装置120の構成>
次に、システム分析装置120の構成について説明する。
図1に示すように、システム分析装置120は、分析対象システム10における各装置5について、その装置5が稼働中か否かを示すデータ(以下、稼動データという。)、及び、各センサ6が装置5から取得した、当該装置5の状態を示すデータ(状態データ。以下、センシングデータともいう。)を用いることで、分析対象システム10の特性(以下、システム特性という。例えば、分析対象システム10の規模、各装置5の配置、装置5が行う処理の順序などの特徴。)を推定し、推定したシステム特性を用いることで、分析対象システム10における装置5の状態を予測、分析するためのモデルである分析モデル108を作成する。
稼動データは、各装置5について、その装置5が稼動中又は停止中であった期間を示すデータである。本実施形態では、稼動データは時系列のデータであり、装置5が停止中であった期間の稼動データには0が設定され、装置5が稼動中であった期間の稼動データには0以外の値が設定されるものとする。稼動データは、例えば、装置5が記憶している、電源投入又は電源切断の履歴のデータである。
センシングデータは、センサ6が取得する時系列のデータであり、例えば、装置5の電源の状態、生産量、装置の状態、温度、電圧等の時間変化を示す時系列データ、又は、速度、材料の投入量の時間変化を示す時系列データである。
分析モデル108は、機械学習によって生成される数値モデルであり、例えば、各装置5とその故障時期との関係を表す数式等を記憶している。これにより、利用者110は、分析要求100をシステム分析装置120に入力することで、自身の専門性の如何によらず、各装置5の現在の状態が故障にどれだけ近いかを知ることができる。このような分析モデル108を利用するプロセスは、機械学習の分野では診断と呼ばれる。
なお、図2は、システム分析装置120が備えるハードウェア構成の一例を示す図である。同図に示すように、システム分析装置120は、CPU(Central Processing Unit)等からなるプロセッサ11と、RAM(Random Access Memory)、ROM(Read Only Memory)、又はNVRAM(Non-Volatile RAM)等の主記憶装置12と、ハードディスク(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置13と、タッチパネルや操作ボタン等の入力装置14と、液晶ディスプレイ、プリンタ等の出力装置15と、他の情報処理装置と通信するための通信装置16とを備える。
次に、図1に示すように、システム分析装置120は、稼動装置抽出部125、装置分類部130(故障関与センサ出力部)、先後関係推定部135(時刻相関抽出部)、分析モデル生成部142、情報入力部143、分析モデル出力部145、状態予測出力部147の各機能を備える。
まず、装置分類部130は、複数の装置を含んで構成される所定のシステム(分析対象システム10)において、前記装置の状態を時系列的に示すデータである状態データを前記複数の装置のそれぞれについて取得し、取得した前記状態データに基づき、前記複数の装置のそれぞれを、前記装置の状態の変化の特徴に応じて少なくとも1つ以上のグループに分類する。
ここで、稼動装置抽出部125は、前記装置が稼動中又は停止中であることを示すデータである稼動データを取得し、取得した前記稼動データと前記取得した状態データとに基づき、分析対象の前記状態データを取得する。そして前記装置分類部130は、前記取得した分析対象の状態データに基づき、前記複数の装置のそれぞれを、前記少なくとも1つ以上のグループ(以下、センサグループという。)に分類する。
先後関係推定部135は、前記取得した状態データに基づき、前記グループにおける各前記装置が行う処理の時間的先後関係を推定する。
分析モデル生成部142は、前記分類したグループ、及び前記推定した時間的先後関係に基づき、前記グループにおける各装置の状態の時間的変化を予測するモデルである分析モデル(分析モデル108)を生成する。
前記分析モデル生成部142は、先後関係推定部135が前記推定した時間的先後関係に基づき、前記所定のシステムを特徴付けるパラメータである特性値を算出するパラメータ最適化部140を備える。前記分析モデル生成部142は、前記算出した特性値に基づき、修正した前記分析モデルを生成する。
例えば、前記パラメータ最適化部140は、前記特性値として、前記装置間の処理の時間的先後関係を示すパラメータを算出し、算出した前記パラメータに基づき、前記先後関係を満たす、前記修正した分析モデルを生成する。
また、例えば、前記パラメータ最適化部140は、前記特性値として、前記所定のシステムにおける全ての前記処理が終了するまでに要する時間を示すパラメータを算出し、算出した前記パラメータが所定の閾値を超える場合に、前記時間のうち一部の期間における前記状態データを特定し、特定した前記状態データに基づき、前記修正した分析モデルを算出する。
また、例えば、前記パラメータ最適化部140は、前記特性値として、前記装置が所定の状態に達していた頻度を示すパラメータを算出し、算出したパラメータに基づき前記分析モデルの分析期間を特定し、特定した分析期間における前記分析モデルを前記修正した分析モデルとして生成する。
また、例えば、前記パラメータ最適化部140は、前記特性値として、所定のイベントの前後の所定期間における前記状態データの特徴の違いを示すパラメータを算出し、算出した前記パラメータが所定の条件を満たす場合に、前記所定のイベントの前後の時期における前記分析モデルを、前記修正した分析モデルとしてそれぞれ算出する。
情報入力部143は、前記装置の過去の所定の状態を示す情報の入力を受け付ける。
分析モデル出力部145は、分析モデル生成部142が前記生成した分析モデルの内容を示す情報を出力する。
状態予測出力部147は、前記入力された装置の状態の情報、及び前記生成した分析モデルに基づき、前記装置が前記所定の状態に達する時間を推定し、推定した前記時間に関する情報を出力する。
また、システム分析装置120は、履歴データ150を記憶している。
<履歴データ>
図3は、履歴データ150の構成の一例を説明する図である。履歴データ150は、履歴データ管理テーブル510、特性種別管理テーブル520、データ管理テーブル530、特性値管理テーブル540、及び作業管理テーブル550の各データベースを含んで構成されているリレーショナルデータベースである。
このうち履歴データ管理テーブル510は、分析要求100及び分析結果106の内容を記憶しているテーブルであり、入力されてきた分析要求100ごと(分析処理ごと)に割り当てられた識別子(以下、履歴IDという。)が格納される履歴ID511、他のテーブルとの対応付けのための情報(以下、参照IDという。)が格納される参照ID512、履歴ID511の分析要求100の直前に入力されてきた分析要求100の履歴IDが格納される前回分析ID513(なお、初回の分析の場合は「0」が設定される。)、履歴ID511の分析要求100に対応して算出された故障相関度(分析結果106の品質を表す値。詳細は後述する。)が格納される故障相関度514、及び、故障相関度514が示す故障相関度に対する利用者110の評価が格納される採用フラグ515(例えば、利用者110が当該分析結果106に満足した場合には利用者110等によって「1」が格納され、満足しない場合には「0」が格納される。)の各項目を有する。
特性種別管理テーブル520は、分析モデル108を生成する際に用いられる、システム特性を判定するための式(以下、特性判定式という。)を格納するためのテーブルである。特性種別管理テーブル520は、各特性判定式に割り当てられた識別子(以下、特性判定式IDという。)が格納される特性判定式ID521、特性判定式ID521の特性判定式の内容(例えば、計算式、プログラム、又はプログラムを呼び出すためのAPI(Application Programming Interface))が格納される特性判定式522、特性判定式522に格納される特性判定式の処理方法に関する情報が格納される特性区分523、及び、特性判定式522に格納される特性判定式を用いて行う処理を特定する情報が格納される判定後処理524(例えば、計算式、プログラム、又はプラグラムを呼び出すためのAPIの情報が格納される。具体的には、例えば、稼動装置抽出部125、装置分類部130、又は先後関係推定部135を特定する情報が格納される。)の各項目を有する。
なお、特性判定式522には、後述する、装置間順序特性値を算出する特性判定式、装置間距離特性値を算出する特性判定式、システム規模特性値を算出する特性判定式、故障頻度特性値を算出する特性判定式、及び、特性変化特性値を算出する特性判定式等が格納される。
また、特性区分523には、例えば、パラメータ最適化部140が繰り返して行う所定の処理に使用されるパラメータが格納される。例えば、特性判定式により算出された値が前回算出された値と異なった場合に、その両者の値が同一の値とみなしてよい場合を特定するための情報が格納される。例えば、特性区分523に所定の値が格納されている場合には、前記の両者の値が一致しているものとみなされる。
データ管理テーブル530は、システム分析装置120が処理するデータ(例えば、各計算処理で用いられるデータ、装置5に関する設定値、システム分析装置120から出力されるデータ等)を管理するテーブルである。データ管理テーブル530は、データごとに割り当てられた識別子(以下、データIDという)が格納されるデータID531、参照IDが格納される参照ID532、データID531のデータを処理する装置を特定する情報が格納される装置種別533、データID531のデータを処理する機能部(具体的には、例えば、稼動装置抽出部125、装置分類部130、先後関係推定部135、分析モデル生成部142、パラメータ最適化部140)を特定する情報が格納される機能種別534、データID531のデータの種別を特定する情報が格納されるデータ種別535、データID531のデータの内容、格納場所、又は取得先(例えばAPI)を特定する情報が格納されるデータ536の各項目を有する。
特性値管理テーブル540は、特定判定式により算出される、システム特性を示すパラメータ(以下、特性値という。)を格納するためのテーブルである。特性値管理テーブル540は、特性値ごとに割り当てられた識別子(以下、特性値IDという。)が格納される特性値ID541、参照IDが格納される参照ID542、特性判定式IDが格納される特性判定式ID543、及び、特性判定式ID543で特定される特性判定式における特性値が格納される特性値544の各項目を有する。
<特性値について>
ここで、特性値の具体例を説明する。特性値は、特性判定式等に基づき算出されるパラメータであり、特性値には、例えば、装置間順序特性値、装置間距離特性値、システム規模特性値、故障頻度特性値、及び特性変化特性値がある。
まず、装置間順序特性値は、センサ6間の状態データの時間変化に時間差がある場合、又はセンサグループ間の状態データの時間変化に時間的な先後関係がある場合に、これらの時間的な先後関係(即ち装置5間の順序)を表す特性値である。
装置間距離特性値は、前記の先後関係が存在する場合において、センサ6間、又はセンサグループ間の状態データの時間変化の時間差から算出される、装置5間の距離を表す特性値である。この特性値により、センサ6(装置5)が複数のブロックに分類されると共に、分析対象システム10が複数の装置5から構成されていることが推測される。
システム規模特性値は、分析対象システム10や装置5の規模(例えば、空間的広さ)を示す特性値であり、例えば、分析対象システム10の装置5への材料やエネルギーの入力時から、分析対象システム10から製品やエネルギーが出力されるまでの時間である。なお、システム規模特性値は、例えば、装置5間の距離を用いて算出される。
故障頻度特性値は、装置5の故障頻度を示す特性値であり、所定の日時以前に1件以上の故障が発生していた頻度又は回数を示す値である。故障頻度特性値の算出方法の詳細は後述する。
特性変化特性値は、所定のイベント(例えば、装置5の停止期間や所定の時期、季節等)の前後の期間での分析対象システム10の挙動の違いを示す特性値である。特性変化特性値は、例えば、前記所定のイベントの前の所定の期間における、センサ6又はセンサグループの状態データ(以下、停止前データという。)と、前記所定のイベントの後の所定の期間における、センサ6又はセンサグループの状態データ(以下、停止後データという。)との相関関係を示す値である。特性変化特性値は、停止前データと停止後データの間の相関係数が所定の閾値以上であった場合(例えば、停止前に0.5以下であったものが停止後に0.8以上に増加したり、停止前に0.8以上であったものが停止後に0.5以下になった場合等)に、所定の値が設定される。
次に、作業管理テーブル550は、システム分析装置120で繰り返し行われる最適化処理に係るパラメータを格納するためのテーブルである。作業管理テーブル550は、各最適化処理ごとに割り当てられた識別子(以下、サブ履歴IDという。)が格納されるサブ履歴ID551、履歴IDが格納される履歴ID552、参照IDが格納される参照ID553、前回行われた最適化処理のサブ履歴IDが格納される前回分析ID554、サブ履歴ID551の最適化処理によって算出された故障相関度が格納される故障相関度555、及び、各回の最適化処理のうちサブ履歴ID551の最適化処理の結果が最も適切であると判断された場合に所定の値が格納される採用フラグ556(なお、採用フラグ556には、最適化処理の結果の適切さの順位が格納されてもよい。)の各項目を有する。
なお、以上の履歴データ150は、稼動装置抽出部125、装置分類部130(故障関与センサ出力部)、先後関係推定部135(時刻相関抽出部)、及び分析モデル生成部142が行った処理やその処理に使用されたデータをさらに記憶してもよい。
以上のシステム分析装置120の機能は、システム分析装置120のハードウエアによって、もしくは、システム分析装置120のプロセッサ11が、主記憶装置12又は補助記憶装置13に記憶されているプログラムを読み出して実行することにより実現される。
<処理>
次に、システム分析装置120が行う処理について説明する。まず、分析システム1の処理の概要について説明する。
<処理の概要>
図4は、分析システム1が行う処理の概要を説明する図である。まず、システム分析装置120は、分析要求100の入力を受け付け、入力を受け付けた分析要求100の内容を解析する(s10)。そして、システム分析装置120は、解析した内容に基づき、分析要求100のデータの品質を高めるための処理(以下、データクレンジングという。)を行う(s20)。
具体的には、システム分析装置120はまず、状態データ等に基づき、装置5が稼動していた期間を特定し、その期間における装置5の状態データを抽出する処理(以下、時間軸方向クレンジングという。)を行う(s21)。なお、この処理は、主に稼動装置抽出部125によって行われる。
次に、システム分析装置120は、時間軸方向クレンジングを行った装置5のうち、故障した装置5又は故障に関連していた装置5を特定する処理(以下、不要センサ除外という。)を行う(s22)。なお、この処理は、主に装置分類部130によって行われる。
また、システム分析装置120は、不要センサ除外を行った装置5(装置5に対応するセンサ6)を、少なくとも1つ以上のグループ(センサグループ)に分類する処理(以下、センサ選択という。)を行う(s23)。なお、この処理は、主に装置分類部130によって行われる。
システム分析装置120は、センサ選択により分類したセンサグループについて、各センサグループによって行われる処理相互の時間的な先後関係を特定する処理(以下、時刻オフセットという。)を行う(s24)。なお、この処理は、主に先後関係推定部135によって行われる。
以上のようにしてデータクレンジングが終了すると、システム分析装置120は、データクレンジングがなされた各グループの状態データの分析を行って分析モデル108を生成し、その分析モデル108を最適化する処理(以下、最適化処理という。)を行う(s30)。なお、システム分析装置120は、最適化処理の結果に基づき、繰り返しデータクレンジングを行う場合がある。なお、この最適化処理は、主に分析モデル生成部142(パラメータ最適化部140)によって行われる。
システム分析装置120は、最適化処理が終了すると、根拠データ105及び分析モデル108を含む分析結果106を出力して利用者110に提示する(s40)。
次に、システム分析装置120が行う処理を説明する。
<分析処理>
図5、図6、図7は、システム分析装置120が分析要求100に基づき分析モデル108を生成すると共に、分析結果106を出力する処理(以下、分析処理という。)の一例を説明する図である。この処理は、例えば、システム分析装置120に対して、利用者110により所定の入力が行われたことを契機に開始される。
まず、システム分析装置120の情報入力部143は、利用者110から分析要求100の入力を受け付ける(s210)。
(時間軸方向クレンジング)
次に、システム分析装置120の稼動装置抽出部125は、分析要求100における稼動データを参照することにより、装置5が稼動又は停止していた期間を全て特定する(s215)。具体的には、例えば、稼動装置抽出部125は、その値が0、又は0から所定値以上離れた値を稼動データとして有する期間を特定する。
次に、稼動装置抽出部125は、分析要求100に含まれている装置5の故障日時の情報に基づき、その故障日時における各装置5の状態データを取得する(s220)。
なお、稼動装置抽出部125は、稼動データを取得するセンサ6を利用者110に選択させてもよい(s230)。また、稼動装置抽出部125は、取得する状態データを利用者110に選択させてもよい。
次に、稼動装置抽出部125は、s215及びs220の処理の結果を履歴データ150に記憶する(s227)。具体的には、例えば、稼動装置抽出部125は、データ管理テーブル530に新たなレコードを生成し、生成したレコードに、各装置5の停止期間、稼動期間、及び故障日時を特定する情報(例えば、稼動期間又は停止期間の境界時刻と、故障日時との関係)を格納する。
また、稼動装置抽出部125は、s215及びs220の処理で用いられた各種のデータやパラメータを履歴データ150に格納する(s227)。具体的には、例えば、稼動装置抽出部125は、データ管理テーブル530に新たなレコードを生成し、生成したレコードのデータ536に状態データを格納する。
そして、稼動装置抽出部125は、s220で抽出した各センサ6(装置5)の状態データ(例えば、過去の停止期間以外の各センサ6(装置5)の状態データ)を、装置分類部130に送信する(s229)。
ここで、図8は、以上の時間軸方向クレンジングの処理の一例を説明する図である。例えば、稼動装置抽出部125は、稼動データに基づき特定される、装置5が正常に停止していた期間801を特定する。そして、稼動装置抽出部125は、その期間801以外の期間を、当該装置5が稼動していた期間(稼動期間)とみなす。稼動装置抽出部125は、その稼動期間における各装置5の状態データ802を全て抽出する。
このように、稼動装置抽出部125は、稼動中の装置5の状態データ(センシングデータ)を抽出する。センシングデータは通常、データ収集開始時刻から全期間にわたって収集されるが、分析対象システム10は、実際の運用において常に稼動しているとは限らない。例えば、装置5は、計画的な停止、故障による停止、又は省エネルギー実践のための停止等を受ける場合がある。このような場合、全期間のセンシングデータが後述する分析モデル108の生成に利用されると、装置5は正常に停止しているにもかかわらず故障により停止していると判定される等することにより、分析モデル108の精度が低下することがある。したがって、分析モデル108の精度を低下させるような、正常に停止している装置5のセンシングデータは事前に除外しておくことが望ましい。従来、このような除外処理は利用者110が専門知識を備えていることを前提に当該利用者110が手作業で行っていた。しかし、稼動装置抽出部125によれば、このような除外処理を、利用者110が専門知識を有しているか否かにかかわらず自動で行うことができる。
(不要センサ除外及びセンタ選択)
次に、図5に示すように、装置分類部130は、稼動装置抽出部125から受信した各センサ6の状態データの時間的変化の特徴(パターン)を解析する(s235)。具体的には、例えば、装置分類部130は、回帰分析法や、主成分分析法などに基づき状態データの時間的変化の特徴の解析を行う。
そして、装置分類部130は、s235で解析した各特徴の違いに基づき(例えば、状態データ間の類似度や相関係数に基づき)、各装置5を複数のグループ(センサグループ)に分類する(s240)。具体的には、例えば、装置分類部130は、回帰分析法により、互いに相関係数の高い(例えば相関係数が所定の閾値を超える)状態データの時間的変化を有する装置5のグループを同一のセンサグループに分類する。また、例えば、装置分類部130は、K-means法などに基づき、状態データの時間的変化の特徴が類似する装置5を同一のセンサグループに分類する。
なお、装置分類部130は、その値が所定期間中0である状態データが存在する場合には、その状態データに対応するセンサ6を解析の対象(センサグループの対象)から除外する。
装置分類部130は、各センサグループの装置5が正常に稼動していた過去の期間(以下、正常稼動期間という。)を設定する(s245)。具体的には、例えば、装置分類部130は、分析要求100に含まれている情報が示す故障発生日時の半年前から、その1年以上前の所定の日時までの期間を、正常稼動期間として設定する。
そして、装置分類部130は、s245で設定した正常稼動期間における各センサグループの状態データと、特性値管理テーブル540に記録されているシステム特性とに基づき、分析モデル108を生成する(s250)。
すなわち、装置分類部130は、分析対象システム10の特徴に応じた、各センサ6の状態データが示す装置5の状態と、装置5がその状態にある時期との関係について、正常稼動期間を学習期間とした機械学習を行い、これに基づく分析モデル108を生成する。
なお、装置分類部130は、システム特性を、例えば、特性種別管理テーブル520又は特性値管理テーブル540から取得し、又は、後述する最適化処理により算出された特性値から取得する。また、装置分類部130は、例えば、回帰分析法、K-means法、又はK近傍法に基づき分析モデル108を生成してもよい。
装置分類部130は、s250で生成した分析モデル108と、故障日時の情報等と各センサグループにおける状態データとに基づき、時間軸方向クレンジングで抽出した全期間を対象に、センサグループの異常度を算出する処理(以下、異常診断という。)を行う(s255)。なお、装置分類部130は、s250における分析モデル108の生成に採用したアルゴリズムと同様のアルゴリズムによって異常診断を行う。
異常度とは、状態データ間の解離の程度を示す値である。例えば、ある時点における異常度は、対象とするセンサグループにおけるある時点での状態データの値と、全センサグループにおける正常稼動期間での状態データの値との間の差異として規定することができる。例えば、異常診断のアルゴリズムに回帰分析法を用いた場合、装置分類部130は、前記異常度を、回帰曲線からの距離として算出する。
次に、図6のs320に示すように装置分類部130は、異常診断の結果に基づき、所定の日時の故障に対する各センサグループの関与の高さを示す指標(以下、故障相関度という。)を算出する。なお、ここで算出される故障相関度は、例えば、故障日時の異常度を、学習期間の異常度の平均値で除した値である。
そして装置分類部130は、この故障相関度が最も高い(例えば、故障相関度が所定の閾値を超える)センサグループを特定する。故障相関度の値が高いセンサグループは、分析対象装置の故障との関係が大きいと推定される。
なお、この処理で算出される故障相関度の値は、例えば、不要センサ除外及びセンサ選択において用いられるパラメータの内容によって異なる。例えば、前記の回帰分析法が用いられる場合、故障相関度は、s235のパターン解析の対象とした状態データの期間によって異なる。そこで、例えば、s320において高い値の故障相関度(例えば10以上の故障相関度)が得られなかった場合は、装置分類部130は、s235のパターン解析に用いた状態データの期間を変更して再度、同処理を繰り返してもよい。なお、このような解析処理の繰り返しに関しては、例えばシステム分析装置120等のリソースに余裕がある場合は、それぞれの解析処理が並列に実行されてもよい。また、装置分類部130は、解析処理に充分に時間をかけてもよい場合は、より高度な条件が満たされるまで(例えば、より高い値の故障相関度が得られるまで)、各解析処理を行ってもよい。さらに、装置分類部130は、複数回行った解析処理のうちもっとも高い故障相関度が得られた解析処理において分類されたセンサグループを、最終的なセンサグループとしてもよい。
また、s245〜s320における処理(以下、本段落では本処理という。)においては、センサグループの識別子、学習期間、センサグループの分類におけるクラスタ数、又は機械学習で採用したアルゴリズムなどの各パラメータが用いられる。これらのパラメータは、本処理において互いに依存しない関係にあるため、装置分類部130は、システム分析装置120等のリソースに余裕がある場合、これらのパラメータの値を変えた様々な組み合わせによる本処理を並列的に実行して分析モデル108を生成し、生成したこれらの分析モデル108のうち最も故障相関度が高かったパラメータの組み合わせに基づく分析モデル108を最終的に選択してもよい。また、装置分類部130は、上記組み合わせに基づき算出された故障相関度のランキングを作成して利用者110に提示し、利用者110に上記組み合わせを選択させることで、最終的な分析モデル108を特定してもよい。
装置分類部130は、s235〜s320で使用したデータ、パラメータ、及び分析モデル108の内容等を、履歴データ150に格納する(s322)。例えば、装置分類部130は、履歴データ管理テーブル510に新たな履歴IDのレコードを生成し、生成したレコードの故障相関度514に、s320で算出した故障相関度を格納する。また、装置分類部130は、履歴データ管理テーブル510に新たなデータIDのレコードを生成し、生成したレコードのデータ536に、s235〜s320で使用したデータを格納する。
装置分類部130は、s240でグループ化したセンサ6(装置5)の情報及び状態データを先後関係推定部135に送信する(s323)。
なお、図9は、不要センサ除外及びセンサ選択に係る処理の一例を説明する図である。同図に示すように、センサ選択により、その時間的変化の特徴が類似する状態データ901及び状態データ903が「グループ1」のセンサグループに分類され(状態データ901及び状態データ903の相関度が高い)、状態データ902及び状態データ904が「グループ2」のセンサグループに分類される(状態データ902及び状態データ904の相関度が高い)。また、不要センサ除外により、その値が0である状態データ905はセンサグループから除外される(いずれの状態データとの相関度も低い)。
このように、装置分類部130は、状態データの時間的変化の特徴に応じてセンサ6(装置5)をグループ化する。センサ6は、故障の要因を特定するために様々な位置の装置5に設けられるので、分析対象システム10が小規模である場合にはセンサ6同士が同様のデータ傾向を示す可能性が高いが、装置5が大規模な工場に設けられている場合等は、センサ6が同種のセンサであっても、その状態データの変化は、センサ6が設けられる箇所によって異なる傾向を示す可能性がある。したがって、装置5の状態を正しく把握するためには、センサ6の位置ではなくセンサ6の状態データの傾向に基づきセンサ6をグループ化することで、センサ6が取り付けられている装置5の空間的な特徴や機能的な特徴を把握することができ、装置5の故障の予兆を効果的に発見することができる。従来、このような装置5(センサ6)のグループ化は、当該分野の専門知識を有する者が手作業で行っていた。しかし、装置分類部130は、そのような者に依存することなく、装置5(センサ6)のグループ化を自動的に適切に行うことができる。
(時刻オフセット)
次に、図6のs325に示すように、先後関係推定部135は、s323により受信した状態データ及び各センサグループの情報に基づき、各センサグループについて、最も故障に対する寄与が高いセンサ6(分析要求100で特定される故障日時における故障に対する寄与が高いセンサ6)を特定する。なお、あるセンサ6の寄与度は、例えば、そのセンサ6が属するセンサグループの状態データの平均値の時間変化に対する、そのセンサ6の状態データの時間変化の類似度に基づき算出される。
そして、先後関係推定部135は、前記で特定した各センサ6のそれぞれの状態データについて、それぞれの状態データを正又は負の時間軸方向に所定時間シフトさせた状態データ(以下、シフト後状態データという。)をそれぞれ生成し、これらのシフト後状態データの間の相関度(例えば、相関係数等)を算出する。
先後関係推定部135は、このように、正又は負の時間軸方向に様々な時間分シフトさせた計算を複数回行い、このうちで相関係数が最も高かった計算(例えば、0.8以上の相関係数が得られた場合の計算)におけるシフトにより生成された各状態データ(すなわち、時刻オフセットを行った状態データ。なお、シフトの対象とならなかった他の状態データも同様にシフトを行ってもよい。)、及びその他s325の処理で使用したデータやパラメータを履歴データ150に格納する(s327)。また、先後関係推定部135は、s325で生成した状態データ(時間をシフトさせた状態データ)をパラメータ最適化部140に送信する(s328)。
以上のような時刻オフセットを行う意義は次の通りである。すなわち、分析対象システム10の規模等によっては、ある装置5で発生した障害の影響が別の装置5で発現するまでに一定の時間を要する場合がある。この場合、ある時間における装置5間の状態データの相関はそれほど高くない場合でも、この発現にかかるまでの時間を考慮することで当該相関が高くなる場合がある。時刻オフセットは、このような場合に対応する処理である。
なお、前記の相関関係の算出はそれぞれ独立して行うことができるため、システム分析装置120等のリソースに余裕がある場合、先後関係推定部135は、これらの算出を並列的に実行してもよい。また、先後関係推定部135は、これらの計算結果を出力して利用者110に提示してもよい。
ここで、図10は、時刻オフセットの処理の内容の一例を説明する図である。同図に示すように、センサグループ1001(グループ1)及びセンサグループ1002(グループ2)が、時刻xに処理を行う装置である装置aに取り付けられたセンサ6に関連するセンサグループであり、センサグループ1003(グループ3)及びセンサグループ1004(グループ4)が、時刻x+tに処理を行う装置である装置nに取り付けられたセンサ6に関連するグループであるとする。この場合、センサグループ1001及びセンサグループ1002の状態データの時間変化を時刻tずらすと、それぞれセンサグループ1003及びセンサグループ1004の状態データの時間変化に類似する。したがって、先後関係推定部135は、グループ1及びグループ3は同一のセンサグループであり、グループ2及びグループ4は同一のセンサグループであると設定することができる。
このように、先後関係推定部135は、各センサグループ(センサ6)の状態データを時間軸方向にシフトする。すなわち、分析対象システム10が小規模でありセンサ6間の距離が近い場合等は、実際に発生した各装置5の故障発生時期は各センサ6で観測される状態データの変動時期と同時、又は同一のサンプリング区間内であるが、分析対象システム10が大規模である場合(例えば工場等に分散配置された装置の場合)は、ある装置5で起きた故障と、別の装置5で観測した故障とは、それぞれのセンサ6において同時に又は同一のサンプリング区間内で観測されず、その結果、装置5の故障の時期を正しく特定できない可能性がある。そこで、装置5が故障か否かを判断する場合においては、この故障の伝搬にかかる時間の考慮(時間差の考慮)が必要になる場合がある。先後関係推定部135は、このような時間差を状態データをシフトさせることで自動的に考慮し、調整することができる。
(最適化処理)
次に、図6のs330に示すように、パラメータ最適化部140は、履歴データ管理テーブル510を参照することにより、今回算出した故障相関度と、前回までの処理で算出した故障相関度(履歴データ管理テーブル510から取得される故障相関度)とを比較する。そしてパラメータ最適化部140は、今回算出した故障相関度の方が前回までの処理で算出した故障相関度より低い場合に、以下の最適化処理を行う。
すなわち、パラメータ最適化部140は、特性種別管理テーブル520を参照することにより、特性判定式における特性値を算出し、算出した特性値に基づき最適化処理を行う。
例えば、装置間順序特性値の場合、パラメータ最適化部140は、各センサグループ(又はセンサ6)の状態データの時間変化の特徴を解析し、解析した時間変化の特徴が現れる順に各センサグループ(又はセンサ6)を整列することにより装置間順序特性値を算出する。そしてパラメータ最適化部140は、この特性値に基づき、再度データクレンジング(具体的には、例えば、装置分類部130以降の処理)を実行させる。
また、装置間距離特性値の場合、パラメータ最適化部140は、算出した装置間順序特性値に基づき、センサ6間、又はセンサグループ間の状態データの時間変化の時間差を、装置間距離特性値として算出する。そしてパラメータ最適化部140は、この特性値に基づき、再度データクレンジング(具体的には、例えば、装置分類部130以降の処理)を実行させる。
また、故障頻度特性値の場合、パラメータ最適化部140は、装置分類部130が算出したセンサグループのうち、分析要求100が示す故障日時以前に、所定の閾値以上の故障相関度を有するセンサグループがあった時期(時間帯)を全て特定し、特定した時期(時間帯)の数を故障頻度特性値として算出する。そしてパラメータ最適化部140は、この故障頻度特性値が1以上であった場合に、特定した各時期(時間帯)の前後の所定期間を、分析モデル108の生成の対象とする期間(学習期間)から除外することを前提とするデータクレンジング(具体的には、例えば、稼動装置抽出部125以降の処理)を再度実行させる。
また、特性変化特性値の場合、例えば、パラメータ最適化部140は、装置5について発生した停止期間のそれぞれについて特性変化特性値を算出し、算出した特性変化特性値に基づき、その特定変化特性値に係る装置5の停止期間の前後で、異なる分析モデル108を生成することを前提とするデータクレンジング(具体的には、例えば、稼動装置抽出部125以降の処理)を再度実行させる。これにより、例えば、装置5の停止前後や季節変動により装置5の動作の傾向が変わった場合であっても、システム分析装置120は適切な分析モデル108を生成することができる。
また、システム規模特性値の場合、例えば、パラメータ最適化部140は、算出したシステム規模特性値が所定の閾値を超える場合には、学習期間のうち、状態データの変動が少ない又は無い期間(例えば、状態データの変動幅が所定値未満の期間)を特定し、特定した期間の前の所定期間におけるセンサ6の状態データに基づき分析モデル108を生成することを前提とするデータクレンジングを再度実行させる。すなわち、分析対象システム10の規模が大きい場合、処理の前段にある装置5の障害が解決すれば後段の処理を行う装置5の障害に影響しなくなる可能性が高いため、前段の処理を行う装置5に関してのみ機械学習を行って分析モデル108を生成するデータクレンジング(具体的には、例えば、装置分類部130以降の処理)を再度実行させる。
なお、図11は、最適化処理の内容の一例を説明する図である。同図に示すように、最適化処理は、前記に説明した装置間順序特性値、装置間距離特性値、システム規模特性値、故障頻度特性値、又は特性変化特性値により特定されるシステム特性に基づき、データクレンジング及び分析モデル108の生成を行う。
パラメータ最適化部140は、以上のような最適化処理を、前記で説明したように、故障相関度の向上が見込めなくなるまで繰り返す(s410)。
このように、パラメータ最適化部140は、稼動装置抽出部125、装置分類部130、及び先後関係推定部135の各機能部の処理結果に基づきシステム特性を推定し、この各機能部の少なくともいずれかにパラメータ上の制約を与えることで、分析モデル108を最適化する。このような処理の繰り返し(最適化処理)は、従来、システム分析の技術者が、専門技術者と議論しながら行ってきたため、負荷の高い作業であったが、パラメータ最適化部140は、このような最適化処理を自動的にかつ的確に行うことができる。
すなわち、システム分析装置120は、従来は専門分野の技術者等が知識や経験に基づき与えていた機器やシステムの特性を自動的に発見し、さらにその結果に基づき最適化処理を行うことで、分析システムにおける装置5の状態やシステム特性を的確に把握することができる。また、この最適化処理において算出された特性値は、履歴テーブル140により、履歴IDや分析結果と対応づけて管理されるため、システム分析装置120は、過去の分析結果と現在の分析結果との比較を行うことで、さらなる最適化を行い各パラメータを調整することができる。これにより、分析モデル108の最適化にかかる時間を減じることができる。
次に、パラメータ最適化部140は、作業管理テーブル550に登録されている各種のデータやパラメータのうち、分析結果106(根拠データ105及び分析モデル108)を構成するデータ及びパラメータを、履歴データ管理テーブル510に登録する(s415)。
具体的には、例えば、パラメータ最適化部140は、ある参照IDの値が参照ID553に格納されている作業管理テーブル550のレコードの各項目を、履歴データ管理テーブル510の新たなレコードの各項目に格納し、また、履歴データ管理テーブル510のレコードの参照ID512に前記の参照IDの値を格納する。
そして、パラメータ最適化部140は、分析結果106を出力し、利用者110に提示するよう、分析モデル出力部145及び状態予測出力部147に指示する(s420)。具体的には、例えば、パラメータ最適化部140は、生成した分析モデル108の内容を出力するよう分析モデル出力部145に指示し、分析モデル出力部145はその内容を出力する。例えば、分析モデル出力部145は、分析モデル108により推定される、分析対象装置が故障する時期を示す情報を出力する。
また、パラメータ最適化部140は、s415で履歴データ150に保管した内容を根拠データ105として出力するよう状態予測出力部147に指示し、状態予測出力部147はその内容を出力する。
利用者110は、出力された分析結果106を確認し、適切な分析モデル108が作成されていることを確認する(s425)。
パラメータ最適化部140は、適切な分析モデル108が作成されているか否かの入力を利用者110から受け付ける。適切な分析モデル108が作成された旨の入力がなされた場合(「OK」)、パラメータ最適化部140は、履歴データ管理テーブル510の採用フラグ515に所定の値を格納する。
一方、適切な分析モデル108が作成されていない旨の入力がなされた場合(「Retry」)、パラメータ最適化部140は、履歴データ管理テーブル510に新たなレコードを生成し、生成したレコードの各項目に、参照ID内の情報作業管理テーブル550にコピーした後に、s330からの処理を再度実行する(s430)。
以上に説明したように、本実施形態のシステム分析装置120によれば、状態データを複数の装置5について取得し、複数の装置5のそれぞれを、装置5の状態の変化の特徴に応じてグループ(センサグループ)に分類し、各グループにおける各装置5が行う処理の時間的先後関係を推定し、グループにおける各装置5の状態の時間的変化を予測する分析モデル108を生成し、その内容を示す情報を出力するので、利用者110等は、この分析モデル108に基づき、状態変化のパターンが類似する装置5のグループごとに、装置5の状態の時間的変化を推定することができる。このように、本実施形態のシステム分析装置120によれば、作業者等は、システム(分析対象システム10)について専門的な知識を有していなくても、システムの状態を的確に分析することが可能となる。例えば、従来、機器やシステムの故障箇所や故障の予兆を発見する場合は、機器やシステムの特性を熟知した技術者と、分析技術に熟知した技術者が不可欠であり、この専門領域の異なる両者が密に連携し、試行錯誤を経て分析モデルを作成する必要があった。そのため、その分析モデルの作成は当該分野の技術者の知識や経験に依存し、かつ開発に長い期間が必要だったが、本実施形態のシステム分析装置120によれば、そのような負担を軽減することができる。そして、このように、機器やプラントの故障やその予兆を迅速に把握することで、これらの運用者は、人員や交換部品に関わるコストの低減を行い、故障に伴うシステムへの影響やエンドユーザからの賠償といったリスクを低減させることが可能となる。
また、本実施形態のシステム分析装置120は、装置5の過去の所定の状態を示す情報の入力を受け付け、生成した分析モデル108に基づき、装置5が所定の状態に達する時間を推定し、推定した時間に関する情報を出力するので、利用者110等は、例えば装置5の過去の故障日時の情報を入力すれば、その装置5が将来故障する時期を予測することができる。これにより、利用者110等は、システム(分析対象システム10)について専門的な知識を有していなくても、システムの状態を的確に予測することが可能となる。
また、本実施形態のシステム分析装置120は、稼動データを取得し、取得した稼動データと状態データとに基づき分析対象の状態データを取得し、取得した状態データに基づき、複数の装置5のそれぞれをグループに分類するので、稼働中の又は適切に停止している装置5のみに基づく分析モデル108を生成することができる。これにより、例えば、装置5に関して適切な分析を行った分析モデル108を生成することができる。
また、本実施形態のシステム分析装置120は、状態データに基づき、所定のシステム(分析対象システム10)を特徴付けるパラメータである特性値を算出し、算出した特性値に基づき、修正した分析モデル108を生成するので、分析対象システム10の特徴に応じた最適な分析モデル108を生成することができる。これにより、利用者110等は、システムについて専門的な知識を有していなくても、システムの状態を的確に分析することが可能となる。
例えば、本実施形態のシステム分析装置120は、特性値として、装置5間の処理の時間的先後関係を示すパラメータ(装置間順序特性値)を算出し、算出したパラメータに基づき、前記先後関係を満たす、修正した分析モデル108を生成するので、分析対象システム10における装置5の処理順序を正しく反映した分析モデル108を生成することができる。
また、例えば、本実施形態のシステム分析装置120は、特性値として、所定のシステム(分析対象システム10)における全ての処理が終了するまでに要する時間を示すパラメータ(システム規模特性値)を算出し、算出したパラメータが所定の閾値を超える場合に、前記時間のうち一部の期間における状態データに基づき修正した分析モデル108を算出するので、分析対象システム10の規模が大きい場合であっても必要な期間の状態データのみに基づき迅速に分析モデル108を生成することができる。
また、例えば、本実施形態のシステム分析装置120は、特性値として、装置5が所定の状態に達していた頻度を示すパラメータ(故障頻度特性値)を算出し、算出したパラメータに基づき分析モデル108の分析期間を特定し、特定した分析期間における分析モデル108を修正した分析モデル108として生成するので、分析モデル108を機械学習させる場合に適切な期間(例えば装置5が故障していた期間を除外した区間)のみに基づき分析モデル108を生成することで、より適切な分析モデル108を生成することができる。
また、例えば、本実施形態のシステム分析装置120は、特性値として、所定のイベントの前後の所定期間における状態データの特徴の違いを示すパラメータ(特性変化特性値)を算出し、算出したパラメータが所定の条件を満たす場合に、所定のイベントの前後の時期における分析モデル108を、修正した分析モデル108としてそれぞれ算出するので、例えば、所定のイベントとして装置5の停止期間や所定の季節等の期間を指定することで、その期間の特徴の違いに応じた適切な種類の分析モデル108を生成することができる。
なお、特性値は、各専門分野の技術者の知見を一般化した情報である。従来の分析方法では、専門技術者の知見を一般化又はルール化するには、当該分野ごとの専門技術者が、専門的な用語や定義をそのつど解釈してこれらを数式その他プログラムで処理可能な形式に変換する必要があったが、このような抽象化や抽出の作業は非常に困難であった。しかし、本実施形態のシステム分析装置120は、このような抽象化や抽出の工程を加味した汎用性の高い特性値を利用しているため、様々な専門分野においてこれらを適用することができる。
<分析システム1の他のシステム構成>
ところで、以上に説明した分析システム1では、利用者110が、センサ6に関する情報を含む分析要求100をシステム分析装置120に入力することを前提としていたが、システム分析装置120は、分析要求100を、分析対象システム10から自動的に取得するようにしてもよい。
図12は、分析システム1の他の構成の一例を示す図である。同図に示すように、この分析システム1は、センサ6が所定のタイミング又は所定の時間間隔等で装置5の状態データを稼動データと共に取得し、取得したこれらのデータを処理データ102としてシステム分析装置120に送信する。また、システム分析装置120と異なる情報処理装置8が、所定のタイミング又は所定の時間間隔等で分析対象データ104をシステム分析装置120に送信する。このような分析システム1の構成によれば、利用者110等は、システムの状態を迅速かつ的確に分析することが可能となる。
以上、本発明は、上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、本実施形態では、分散履歴データ150の実装の例として、ソフトウェア的に実現されるリレーショナルデータベース(DB)を挙げたが、リレーショナルDBは、データ間の関係を記述するために用い、実際のデータはファイルサーバやキーバリューストア、又は時系列データベース等に格納し又は管理するようにしてもよい。
また、本実施形態で説明した特性値は、本実施形態で説明した内容に限らず、状態データから計算式やプログラムに基づき算出される特性値であれば、どのような特性値でもよい。
また、本実施形態の分析システム1は、各専門分野の技術者が従来行ってきたパラメータの調整作業を機械化し、様々なパラメータの設定パターンを並列実行して分析モデル108を生成することが好ましいので、複数の物理サーバや仮想サーバから構成される分散実行環境を備えていることが望ましい。例えば、本実施形態で説明したシステム分析装置120の各機能は、物理サーバ、仮想サーバ、又はコンテナを利用した一台または複数台の情報処理装置により実現されてもよい。ここで物理サーバは、CPU、メモリ、バス、記憶装置、OS(Operating System)、ネットワークインタフェース等から構成される計算機システムであり、仮想サーバは上記のCPU、メモリ、バス、記憶装置、OS、ネットワークインタフェース等を、ソフトウェアによる論理的分割や、ハードウェアを用いた回路的分割を行うことで、一台のサーバを複数台のサーバに見せかけて動作させるものである。コンテナはOS上のプロセス空間を分離し、OS上のアプリケーションが個別のOS上で動作しているように見せかけて動作させる技術である。