図1は、実施例1の故障予兆検知システムのブロック図である。
実施例1の故障予兆検知システムは、計算機101、機器113、機器監視システム111、発生警報履歴DB107、故障情報DB108、及び、機器接続情報DB109を含む。
機器監視システム111は、機器113を監視するシステムである。計算機101は、機器監視システム111による監視結果を分析する装置である。
計算機101は、ネットワーク105を介して計算機102と接続される。計算機101、及び、計算機102は、一般的なコンピュータを想定し、プロセッサ、メモリ及びインターフェースを備える。
計算機101及び計算機102におけるプロセッサは、メモリに記憶されたプログラムを処理することによって、各種処理を実行する。メモリは、処理を実行するためのプログラム及びデータを記憶する。インターフェースは、キーボード、マウスなどの入力装置に接続するインターフェース、ディスプレイ等の表示装置に接続するインターフェース、及び、ネットワーク105を介して、計算機101及び102と接続するインターフェース、などを含む。
また、計算機101は、ネットワーク106を介して発生警報履歴DB107、故障情報DB108、及び、機器接続情報DB109と接続される。発生警報履歴DB107、故障情報DB108、及び、機器接続情報DB109はネットワーク110を介して機器監視システム111と接続される。
発生警報履歴DB107とは、機器113が過去に発した警報を示す情報(発生警報履歴)を保持するDBである。
図2は、実施例1の発生警報履歴DB107を示す説明図である。
発生警報履歴DB107は、発生警報履歴として、警報ID1071、警報発生日時1072、警報発生機器名1073、警報情報1074、及び、詳細情報1075を含む。
警報ID1071は、機器113において発生する警報を一位に識別する識別子である。警報ID1071が示す識別子は、機器113、警報発生日時1072及び警報情報1074の一つの組み合わせに一つの識別子が定められる。
警報発生日時1072は、警報ID1071が示す警報が発生した日時を示す。警報発生機器名1073は、警報ID1071が示す警報が発生した機器113を示す。
警報情報1074は、警報ID1071が示す警報の種類を示す。以下において記載される警報の種類は、警報情報1074が示す警報情報と同義である。
詳細情報1075は、警報ID1071が示す警報の詳細を示し、例えば、通知されるメッセージを示す。
故障情報DB108とは、機器113が故障した際の状況等を示す情報(故障情報)を保持するDBである。
発生警報履歴DB107は、機器監視システム111から送信された情報を蓄積してもよい。
図3は、実施例1の故障情報DB108を示す説明図である。
故障情報DB108は、故障情報として、故障ID1081、故障発生日時1082、故障発生機器1083、故障部品1084、現象1085、及び、原因1086を含む。
故障ID1081は、故障内容の組み合わせを一位に識別する識別子を示す。本実施例において、故障内容とは、故障発生機器1083、故障部品1084、現象1085、及び、原因1086が示す内容である。
故障発生日時1082は、故障ID1081が示す故障が発生した日時を示す。故障発生機器1083は、故障ID1081が示す故障が発生した機器113を示す。
故障部品1084は、故障ID1081が示す故障が発生した部品を示す。現象1085は、故障ID1081が示す故障の内容を示す。原因1086は、故障ID1081が示す故障の原因を示す。
故障情報DB108は、機器監視システム111の利用者によって情報を追加及び更新されてもよい。
機器接続情報DB109とは、接続される機器113間を示すトポロジ情報(機器接続情報)を保持するDBである。
図4は、実施例1の機器接続情報DB109を示す説明図である。
図4(a)は、実施例1の機器接続情報DB109の一つの例を示す説明図である。
図4(b)は、実施例1の機器接続情報DB109の他の例を示す説明図である。
機器接続情報DB109は、機器名1(1091)及び機器名2(1092)を含む。機器接続情報DB109は、接続関係にある二つの機器を、機器名1(1091)及び機器名2(1092)に示す。
データ統合処理部115は、機器接続情報DB109に基づいて、一つの機器113と、当該機器113と直接又は間接的に接続する機器113を取得することができる。
図4(a)に示す機器接続情報DB109は、直列に接続された機器113の接続を示す。図4(b)に示す機器接続情報DB109は、ツリー型に接続された機器113の接続を示す。
機器監視システム111は、例えば一般的なコンピュータに実装され、プロセッサ、メモリ及びインターフェースを備える。機器監視システム111におけるプロセッサは、メモリに記憶されたプログラムを処理することによって、各種処理を実行する。メモリは、処理を実行するためのプログラム及びデータを記憶する。
機器監視システム111のインターフェースは、キーボード、マウスなどの入力装置に接続するインターフェース、ディスプレイ等の表示装置に接続するインターフェースを含む。また、機器監視システム111のインターフェースは、ネットワーク110を介して発生警報履歴DB107、故障情報DB108、及び、機器接続情報DB109と接続するネットワークインターフェース、ネットワーク112を介して複数の機器113と接続するネットワークインターフェース等を含む。
機器113は、機器監視システム111による監視対象であり、例えば、携帯電話の基地局等の通信機器である。機器113間は、リング型、スター型等、様々な形態(トポロジー)によって接続される。各機器113の接続情報は機器接続情報DB109が保持する。
計算機101は、データ統合処理部115、警報故障確率算出部116、及び、故障確率算出部117等の機能部、並びに、統合DB120、及び、警報故障確率DB121等の情報を含む。データ統合処理部115、警報故障確率算出部116、及び、故障確率算出部117は、プログラムとして計算機101のメモリに格納され、計算機101のプロセッサに実行されてもよいし、計算機101の物理的な集積回路によって実装されてもよい。
統合DB120、及び、警報故障確率DB121は、計算機101の補助記憶装置に格納され、必要に応じて計算機101のメモリに読み出されてもよい。統合DB120は、関連のある警報を示す警報リストを格納する。警報故障確率DB121は、警報と故障との関係を示す確率を示す情報を格納する。
データ統合処理部115は、発生警報履歴DB107、故障情報DB108、及び、機器接続情報DB109から取得するデータに基づき、故障した機器113の警報と接続関係にある機器113の警報とから、関連のある警報リストを生成し、統合DB120に登録する機能を持つ。
警報故障確率算出部116は、統合DB120から警報と故障との組を取得し、警報と故障との関係を示す確率を算出し、警報故障確率DB121に登録する機能を持つ。
故障確率算出部117は、警報故障確率DB121に登録されている警報故障確率に基づき、現在の警報発生状況から故障に至る確率を算出する機能を持つ。
図5は、実施例1の故障予兆検知システムの処理の概要を示すフローチャートである。
以下において、故障した機器113を機器R0と記載し、機器R0と接続する機器113を、機器R1、…、RMと記載する。また、機器R0において発生した故障内容を故障内容F0と記載する。
まず、データ統合処理部115は、故障した機器R0において発生した警報と、機器R1、…、RMにおいて発生した警報とから、関連する複数の警報の組み合わせを示す故障警報リストLAAを生成する。そして、{F0,LAA}の組を統合DB120に登録する(S201)。
次に、警報故障確率算出部116は、統合DB120から複数の警報と故障内容との組{F0,LAA}を取得し、複数の警報と故障内容との関係を示す確率を算出し、警報故障確率DB121に登録する(S202)。
最後に、故障確率算出部117は、警報故障確率DB121に登録される警報故障確率に基づき、現在または指定期間(後述するf日間)の警報発生状況から故障に至る確率を算出する(S203)。
図6は、実施例1の警報発砲状況を示す説明図である。
また、図6は、データ統合処理部115による処理のイメージを示す。データ統合処理部115は、発生警報履歴DB107、故障情報DB108、機器接続情報DB109から取得する情報(発生警報履歴501、故障情報502、機器接続情報503)に図7及び図8の処理を実行することによって、警報リストLAA504を生成する。
図7及び図8は、ステップS201の手順の詳細の一例を示すフローチャートである。
図7は、実施例1の故障した機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
なお、以下において、機器R0が故障(故障内容F0)した日時(故障発生日時1082)をD0と記載する。また、実施例1において、基準の警報と関連する複数の警報は、基準の警報が発生する日時の前後の時間d(2d)の間に発生する警報である。
また、データ統合処理部115は、故障情報DB108のエントリを一つ抽出し、抽出したエントリに対して、図7の処理を開始する。そして、故障情報DB108に格納されるエントリについて、図7の処理を実行する。
データ統合処理部115は、まず、空の警報リストLAAを生成する(S300)。D0からf日前までに機器R0において警報Anに関する警報リストLA={A1,A2,…,An,…,AN}を、発生警報履歴DB107から取得する。
ここで、データ統合処理部115は、警報Anとして、発生警報履歴DB107から警報発生日時1072及び警報情報1074を取得する。
すなわち、An={警報発生日時Dn0,警報情報In}、1≦n≦Nであり、nは、機器R0における警報の通し番号であり、Nは、機器R0においてD0の前f日間に発生した警報の総数である。
図6に示す例において、データ統合処理部115は、警報A1〜A4に関する発生警報履歴を、警報リストLAとして取得する。また、警報A1〜A4の各々の警報発砲日時は、D10〜D40である。また、fは、任意の日数及び時間であり、計算機101を用いて故障内容を分析する運用者が指定してもよい(S301)。
ステップS301の後、データ統合処理部115は、機器接続情報DB109から機器R0と接続関係にある機器113のリストLR0={R1,R2,…,Rm,…,RM}を取得する(S302)。ここで、1≦m≦Mである。そして、mは、故障が起きた機器R0に接続する機器113の通し番号であり、Mは、機器R0と接続する機器113の総数である。
なお、機器R0と接続関係にある機器113には、直接機器R0と接続される機器113だけであってもよく、また、間接的に機器R0と接続される機器113が含まれてもよい。リストLR0に間接的に接続される機器113を含めることによって、データ統合処理部115は、故障が発生した機器R0と間接的に接続する機器113における警報から、機器R0における警報と関連する警報を特定できる。
ただし、データ統合処理部115は、間接的に機器R0と接続される機器113をリストLR0に含める場合、間接的に接続される機器113として、後述するX層(予め与えられる)までの機器113を取得してもよい。これによって、データ統合処理部115は、管理者又は運用者が指定した接続範囲までの機器113における警報を、関連する警報として特定できる。
そして、データ統合処理部115は、これによって、直接接続する機器113のスペックが十分にあるために直接接続する機器113において警報が発生しない場合にも、機器R0と接続関係にある機器113における警報発生状況を取得することができる。
図6に示す例において、データ統合処理部115は、機器R0と機器R1とが直接接続し、機器R0と機器R2とが直接接続することを示す機器接続情報DB109から、リストLR0を取得する。
ステップS302の後、データ統合処理部115は、ステップS304〜S312をN回繰り返す(S303)。より具体的には、データ統合処理部115は、ステップ302の後、初期値としてnに1を格納する。そして、ステップS303においてnがN以下であるかを判定し、nがN以下である場合、ステップS304を実行する。nがNより大きい場合、データ統合処理部115は、機器R0において発生したすべての警報について、関連する警報を特定し終わったため、ステップS313を実行する。
ステップ304において、データ統合処理部115は、警報リストLAから警報Anを取得する(S304)。これによって、データ統合処理部115は、基準となる警報Anを取得する。
ステップS304の後、データ統合処理部115は、ステップS306〜S311をM回繰り返す(S305)。具体的には、ステップ304の後、初期値として1を含む引数mを生成する。そして、引数mがM以下であるか、及び、機器RmについてのステップS306の処理を実行済かを判定する。
引数mがM以下である場合、かつ、機器RmについてのステップS306の処理が実行されていない場合、データ統合処理部115は、ステップ306を実行する。引数mがMより大きい場合、及び、機器RmにステップS306の処理を実行済である場合のいずれか一方の場合、機器R0と直接接続する機器113において発生した警報から、機器R0において発生した警報Anと関連する警報を特定し終えたため、データ統合処理部115は、ステップS312を実行する。
ステップS312において、データ統合処理部115は、nに1を加算し、その後ステップS303に戻る。
ステップS306において、データ統合処理部115は、警報Anから警報発生日時Dn0及び警報情報Inを取得する。そして、Dn0−d≦Dn0≦Dn0+dの期間において機器R0において発生した警報An0と、機器Rmにおいて発生した警報AAmのリストLAm={A1m,A2m,…,Akm,…,AKm}と、を発生警報履歴DB107から取得する。
ここで、1≦k≦Kであり、kは、機器R0と直接接続する機器Rmにおいて発生した警報であり、Dn0−d≦Dn0≦Dn0+dの期間において発生した警報の通し番号である。KはDn0−d≦Dn0≦Dn0+dの期間においてRmにおいて発生した警報AAmの総数である。なお、ここで取得されるリストLAmは、警報An0と関連する警報のリストである。
図6に示す例においてnが3であり、引数mが1である場合、データ統合処理部115はステップ306において、警報An0=A3と、リストLA1={A21,A31}とを取得する。また、nが2であり、引数mが2である場合、データ統合処理部115はステップ306において、警報An0=A2と、リストLA2={A12}とを取得する。また、図6に示す例において、Mは2である。
ステップS306の後、データ統合処理部115は、ステップS308、S309、及び、S401〜S411をK回繰り返す(S307)。具体的には、ステップS306の後、初期値である1を格納した引数kを生成し、引数kがK以下であるかを判定する。そして、データ統合処理部115は、引数kがK以下である場合、ステップS308を実行する。
また、引数kがKより大きい場合、機器Rmにおいて発生した警報であり、かつ、警報An0と関連する警報のすべてにステップS308を実行したため、ステップS309を実行する。
ここで、リストLAm={A1m,A2m,…,Akm,…,AKm}の各警報AAmの警報発生日時を警報発生日時Dkと記載する。
ステップS308において、データ統合処理部115は、Dn0<Dkの場合警報リストLAAに{R0,An,Rm,Akm}を追加する。Dn0>Dkの場合警報リストLAAに{Rm,Akm,R0,An}を追加する(S308)。これによって、発生順を示す警報リストLAAを生成できる。ステップS308の後、データ統合処理部115は、引数kに1を加算し、ステップS307に戻る。
図6に示す例においてnが3であり、引数mが1である場合、データ統合処理部115は、ステップS308を繰り返すことにより、{R1,A21,R0,A3}、及び、{R1,A21,R0,A3}をリストLAAに追加する。ステップS308によって、データ統合処理部115は、警報Anと関連して発生する警報Aを、機器R0と直接接続する機器113において発生した警報から抽出できる。
引数kがKを超えた場合、データ統合処理部115は、ステップS401〜S411を予め与えられたX層まで実行する(S309)。予め与えられた層の数Xは、機器R0に接続する機器113の階層の数であり、故障した機器R0において発生した警報に関連する警報を抽出する機器113の範囲を示す。特に、X層は、機器R0と直接接続されていない機器113のうち、関連する警報を抽出する機器113の範囲を示す。
例えば、データ統合処理部115は、X=1の場合、機器R0と直接接続される機器R1及び機器R2における関連する警報を抽出する。また、X=2の場合、機器R0と機器R2のみを介して間接的に接続される機器113(図6において機器R3)において発生した関連する警報を抽出する。X=1の場合については、図7に示す処理において実行済であるため、データ統合処理部115は、ステップS401〜S411における処理においてX=2以上の処理を実行する。
なお、図7に示す処理の後、データ統合処理部115は、ステップS311を実行する。ステップS311において、データ統合処理部115は、引数mに1を加算し、その後ステップS305に戻る。
図8は、実施例1の故障した機器113に接続する機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
ステップS401において、データ統合処理部115は、Dn0の前後d時間の間(Dn0−d≦Dn0≦Dn0+d)に機器Rmにおいて発生した警報リストLAm={A1m,A2m,…,Apm,…,APm}を発生警報履歴DB107から取得する。ここで、警報Apm={警報発生日時Dpm,警報情報Ipm}と記載し、1≦p≦Pである(S401)。pは、機器R0と関連する警報の通し番号であり、Pは、Dn0の前後d時間の間に機器において発生した警報の総数である。
データ統合処理部115は、機器接続情報DB109から機器Rmと接続関係にある機器リストLRm={R1m,R2m,…,Rqm,…,RQm}を取得する。1≦q≦Qであり、qは、機器Rmと接続関係にある機器113の通し番号である。Qは、機器Rmと接続関係にある機器113の総数である(S402)。
なお、データ統合処理部115は、機器リストLRmに、機器R0を含めない。また、機器Rmと接続関係にある機器113には、直接機器Rmと接続される機器113だけが含まれてもよく、また、間接的に機器Rmと接続される機器113(例えば、X層まで)が含まれてもよい。機器リストLRmに間接的に接続される機器113を含めることによって、機器R0における警報と関連する警報に、さらに関連する警報を、機器R0と間接的に接続する機器113における警報から特定できる。そして、例えば、接続順に従って異常が発生する状況を取得することができる。
データ統合処理部115は、ステップS404〜S411をP回繰り返す(S403)。具体的には、ステップS402の後、データ統合処理部115は、初期値を1とした引数pを生成する。そして、ステップS403において、引数pがP以下かを判定する。そして、引数pがP以下である場合、ステップS404を実行する。
また、引数pがPを超えており、警報リストLAmのすべての警報Apmと関連のある警報を、機器Rqmの警報から抽出した場合、データ統合処理部115は、図8に示す処理を終了し、図7に示すステップS311を実行する。
ステップS404において、データ統合処理部115は、警報リストLAmから警報Apmを取得する(S404)。そして、ステップS406〜S410をQ回繰り返す(S405)。
具体的には、ステップS404の後、データ統合処理部115は、初期値を1とする引数qを生成する。そして、ステップS405において、引数qがQ以下であるか、機器RqmがステップS406の処理を実行済であるかを判定する。
引数qがQ以下であり、かつ、機器RqmにステップS406の処理をまだ実行していない場合、データ統合処理部115は、ステップS406を実行する。一方、引数qがQを超える場合、及び、機器RqmにステップS406の処理を実行した場合のいずれか一方の場合、データ統合処理部115は、引数pに1を加算し(S411)、ステップ403に戻る。
ステップS406において、データ統合処理部115は、警報Apmから警報発生日時Dpmを取得する。そして、Dpm−d≦Dpm≦Dpm+dの期間に機器Rqmにおいて発生した警報のリストLAqm={A1q,A2q,…,Ahq,…,AHq}を発生警報履歴DB107から取得する。Ahq={警報発生日時Dhq,警報情報Ihq}であり、1≦h≦Hである(S406)。
hは、機器Rqmにおいて発生した警報のうち、警報Apmに関連する警報の通し番号である。Hは、Dpm−d≦Dpm≦Dpm+dの期間に機器Rqmにおいて発生した警報の総数である。
ステップS406の後、データ統合処理部115は、ステップS408、S409をH回繰り返す(S407)。具体的には、ステップS406の後、データ統合処理部115は、初期値を1とする引数hを生成し、ステップS407において、引数hがH以下であるかを判定する。
引数hがH以下である場合、データ統合処理部115は、ステップS408を実行する。引数hがHを超える場合、データ統合処理部115は、引数qに1を加算し(S410)、ステップS405に戻る。
なお、引数hがHを超え、かつ、機器Rqmに機器Rm以外で接続する機器113がある場合、データ統合処理部115は、予め与えられたX層まで、図8の処理を実行したかを判定する。そして、実行していない場合、図8におけるDn0をDpmに置き換え、機器Rmを機器Rqmに置き換え、機器Rqmを機器Rqmに接続する機器に置き換えることによって、図8に示す処理を実行する。そしてX層までの処理が終了した後、ステップS410を実行する。
データ統合処理部115は、ステップS408において、Dpm<Dhqの場合、警報リストLAAに{Rm,Apm,Rqm,Ahq}を追加する。そして、Dpm>Dhqの場合、警報リストLAAに{Rqm,Ahq,Rm,Apm}を追加する(S408)。なお、Dpm=Dhqの場合、いずれの形式で警報リストLAAに格納してもよい。
ステップS408の後、データ統合処理部115は、引数hに1を加算し(S409)、ステップS407に戻る。
ステップS303において、引数nがNを越え、機器R0において発生したすべての警報について、関連する警報を抽出した場合、データ統合処理部115は、{F0,LAA}の組を統合DB120に登録する(S313)。
図9は、実施例1の統合DB120を示す説明図である。
統合DB120とは、故障内容と警報との関係を保持するDBである。統合DB120は、故障ID125、及び、警報リストLAA126を含む。故障ID125は、故障内容を識別するための識別子を示す。故障ID125は、故障情報DB108の故障ID1081に対応し、故障内容を一意に示す。
警報リストLAA126は、図7及び図8に示す処理によって生成された警報リストLAAを含む。警報リストLAA126は、先に発生した警報及び当該警報が発生した機器113の組み合わせ{機器1、警報1}と、後に発生した警報及び当該警報が発生した機器113の組み合わせ{機器2、警報2}とを示す。
データ統合処理部115が、図7及び図8に示す処理によって統合DB120に値を格納した後、警報故障確率算出部116は、ステップS202を実行する。ステップS202において、警報故障確率算出部116は、統合DB120に基づいて警報リストLAAが示す組み合わせによって警報が発生する確率を算出する。そして、算出した確率を、警報故障確率DB121に格納する。
図10は、実施例1の警報故障確率DB121を示す説明図である。
警報故障確率DB121とは、機器113が発する警報の警報情報間の関係(時間的な発生順序)と確率とを示す情報を保持するDBである。警報故障確率DB121は、時間的に前に発生した{機器1、警報情報1}と時間的に後に発生した{機器2、警報情報2}を示す。
警報故障確率DB121は、番号131、故障ID137、機器1(132)、警報情報1(133)、機器2(134)、警報2(135)、及び、確率136を含む。番号131は、{機器1、警報情報1}と{機器2、警報情報2}との組み合わせ及び順番を一意に示す識別子である。番号131は、数字以外の文字列によって表現されてもよい。
故障ID137は、故障内容を一意に識別する。故障ID137は、統合DB120の故障ID125に対応する。
機器1(132)は、先に警報が発生した機器113を示す。機器1(132)は、警報リストLAA126が示す1番目に警報が発生する機器113に相当する。
警報情報1(133)は、機器1(132)から発生した警報の種類(警報情報1074に相当)を示し、警報リストLAA126が示す1番目に発生する警報の種類に相当する。
機器2(134)は、後に警報が発生した機器113を示す。機器2(134)は、警報リストLAA126が示す2番目の機器113に相当する。
警報2(135)は、機器2(134)から発生した警報の種類(警報情報1074に相当)を示し、警報リストLAA126が示す2番目の警報に相当する。
確率138は、機器1(132)、警報情報1(133)、機器2(134)及び警報2(135)が示す組み合わせによって、警報が発生する確率を示す。
警報故障確率算出部116は、統合DB120の警報リストLAAが示す組み合わせに基づいて、故障に対して各組み合わせが発生する確率を算出できればいかなる方法を用いてもよいが、以下に具体的な例を示す。
警報故障確率算出部116は、例えば、警報リストLAAが示す組み合わせを、警報故障確率DB121からすべて抽出し、さらに、抽出した組み合わせの警報情報1074を発生警報履歴DB107から特定する。そして、{機器1、警報情報1}及び{機器2、警報情報2}が同じである組み合わせの数の総数と、{機器1、警報情報1}及び{機器2、警報情報2}が同じである組み合わせの故障IDごとの数とを算出する。そして、組み合わせの数の総数によって、故障IDごとの組み合わせの数を除算した結果を確率(確率136)として算出する。
これによって、警報故障確率算出部116は、故障内容毎に、{機器1、警報情報1}及び{機器2、警報情報2}が発生した割合を算出することができる。そして、この割合を、後述する処理において、{機器1、警報情報1}及び{機器2、警報情報2}が発生した場合に故障が発生する確率として用いることにより、故障の発生確率を予測することができる。
そして、警報故障確率算出部116は、算出した確率を確率138に格納し、{機器1、警報情報1}及び{機器2、警報情報2}を、機器1(132)、警報情報1(133)、機器2(134)及び警報情報2(135)に格納する。
図11は、実施例1の故障確率算出部117の処理を示す説明図である。
図11は、図5のステップS203に示す、警報発生状況から故障に至る確率を算出する手順を示す。
故障確率算出部117は、まず、発生する故障の確率を算出したい期間の警報状況を取得する(S1101)。図11に示す入力1101は、ステップS1101において取得される警報状況のイメージである。故障確率算出部117は、計算機101が有する入力インターフェースを介して警報状況を取得してもよいし、計算機102から入力された警報状況を取得してもよい。
入力1101は、機器R3における警報A23、機器R2における警報A12、機器R1における警報A11、及び、機器R0における警報A2の順で警報が発生することを示す。
ステップS1101の後、故障確率算出部117は、警報故障確率DB121から警報故障確率を故障ID毎に取得し、取得した警報故障確率と、入力された警報状況とに基づいて故障に至る確率を故障ID毎に算出する(S1102)。
故障確率算出部117が故障に至る確率を算出する方法はいかなる方法であってもよいが、以下に例を示す。
故障確率算出部117は、例えば、入力された警報状況が示す警報のうち、所定の期間dの間に発生し、異なる機器113において発生した二つの警報の警報情報を、発生順に{機器1、警報情報1}及び{機器2、警報情報2}として抽出する。そして、抽出した組み合わせを警報故障確率DB121(機器1(132)、警報情報1(133)、機器2(134)及び警報情報2(135))が示す場合、抽出した組み合わせの確率を警報故障確率DB121から特定する。
具体的には、故障確率算出部117は、図11に示す入力1101から、{機器1、警報情報1}及び{機器2、警報情報2}の組み合わせとして、{R3,I23}及び{R2,I12}の組み合わせ、{R2,I12}及び{R1,I11}の組み合わせ、並びに、{R1,I11}及び{R0,I2}の組み合わせを抽出する。そして、これらの組み合わせを示す機器1(132)、警報情報1(133)、機器2(134)及び警報情報2(135)のエントリの確率136を、故障ID137毎に特定する。
そして、故障確率算出部117は、特定した確率136を、故障ID137毎に乗算する。より具体的には、故障確率算出部117は、警報故障確率DB121を故障ID137毎に参照し、{R3,I23}及び{R2,I12}の組み合わせの確率136と、{R2,I12}及び{R1,I11}の組み合わせの確率136と、{R1,I11}及び{R0,I2}の組み合わせの確率136とを乗算する。
そして、故障確率算出部117は、乗算した結果を故障ID137毎に、故障の発生確率として出力する。図11に示す故障確率算出結果1102は、ステップS1102によって出力された故障の発生確率を、故障ID毎に示す。
実施例1によれば、複数の機器における警報と故障の関係を確率的に表現することが可能となり、また、故障確率算出部117の処理によって、現在または指定期間での複数の警報の発生状況に応じて、故障の発生確率を算出し、故障予兆検知が可能となる。
また、故障が発生した機器R0における警報と関連する警報を、当該機器と直接又は間接的に接続する機器から取得することが可能であるため、複数の機器がいかなる接続状態である機器システムにおいても、故障と関連がある可能性のある警報をすべて取得することができる。そして、これに基づいて故障の発生確率を求めることができるため、精度よく発生確率を求めることができる。
実施例1では、異なる警報の出現頻度で警報と故障の確率を算出していた。この場合、複数の警報のパターン(同じ種類の警報が連続して、又は、周期的に発生する等)を考慮することができない。実施例2では、警報のパターンを用いた警報と故障の確率を算出する。
実施例2の故障予兆検知システムの構成は、図1に示す実施例1の故障予兆検知システムと同じである。ただし、実施例2のデータ統合処理部115は、実施例1のデータ統合処理部115と異なる処理を実行する。また、これに伴い警報故障確率算出部116は、異なるデータを処理する。
図12は、実施例2の警報発砲状況を示す説明図である。
図12は、実施例2のデータ統合処理部115による処理のイメージを示す。データ統合処理部115は、発生警報履歴DB107、故障情報DB108、機器接続情報DB109から取得する情報(発生警報履歴1401、故障情報1402、機器接続情報1403)に図13及び図14の処理を実行することによって、警報リストLAA1404を生成する。
図12に示す警報A1〜A3は、同じ種類であり、かつ、機器R0において連続して発生する。
図13及び図14は、実施例2のデータ統合処理部115が、図5のステップS201において実行する処理を示す。
図13は、実施例2の故障した機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
ステップS1200は、図7に示すステップS300と同じである。
実施例2のデータ統合処理部115は、ステップS301と同じく、D0からf日前までの機器R0の警報リストLA={A1,A2,…,An,…,AN}を発生警報履歴DB107から取得する。An={警報発生日時Dn0,警報情報In}、1≦n≦Nである。
ここで、実施例2のデータ統合処理部115は、警報リストLAに含まれる各要素{R0,An}をキーとした連想配列を警報リストLAAに追加する(S1201)。特に、実施例2のデータ統合処理部115は、警報リストLAに含まれる警報を警報情報I毎にソートする。そして、警報と、同じ警報情報の警報の数と、を示す連想配列を生成する。
なお、ステップS1201において警報リストLAAに追加された複数の警報は、機器R0においてD0からf日前までに発生した警報であり、本実施例の警報群である。データ統合処理部115は、警報群を関連する複数の機器として取得する。
例えば、データ統合処理部115は、図12に示す機器R0の警報のリストとして、警報リストLA={R0,A1,A2,A3,A4}を抽出する。ここで、警報A1、A2、A3の警報情報は、すべて警報情報I1であり、かつ、連続して発生する。この場合、データ統合処理部115は、抽出した{R0,A1,A2,A3,A4}を警報情報毎にソートし、例えば{R0,A1,3,A2}など、警報情報と繰り返し回数とを示すリストを生成し、警報リストLAAに追加する。
また、データ統合処理部115は、警報リストLAが同じ警報情報の警報が周期的に発生することを示す場合、同じ警報情報の警報が発生する時間間隔を示す情報を、警報群に含めて、警報リストLAAに格納してもよい。
ステップS1201の後、データ統合処理部115は、ステップS302と同じく、機器接続情報DB109から機器R0と接続関係にある機器リストLR0={R1,R2,…,Rm,…,RM}を取得し、1≦m≦Mとする(S1202)。ここで、実施例2のデータ統合処理部115は、警報リストLAに含まれる各要素{Rm,An}をキーとした連想配列を警報リストLAAに追加する。
例えば、データ統合処理部115は、図12に示す機器R1の警報のリストとして、{R1,A11,A21,A31,A41}を抽出する。そして、警報の繰り返しがないため、抽出したリストを機器R1の警報群として取得する。そして、取得した警報群を警報リストLAAに追加する。
ステップS1202の後、データ統合処理部115は、ステップS1203〜ステップS1213を実行する。ステップS1203〜ステップS1207は、図7に示すステップ303〜ステップS307と同じである。
ステップS1206の後、データ統合処理部115は、ステップS307と同じく、ステップS1208、及びS1209をK回繰り返す(S1207)。そして、データ統合処理部115は、引数kがK以下である場合、ステップS1208を実行し、引数kがKより大きい場合、ステップS1209を実行する。
ステップS1208において、データ統合処理部115は、Dn0<Dkmの場合LAAのキー{R0,An}のリストの末尾に{Rm,Akm}を追加する。Dn0>Dkmの場合LAAのキー{R0,An}のリストの先頭に{Rm,Akm}を追加する(S1208)。ステップS1208は、リストの末尾又は先頭に{Rm,Akm}を追加する点において、実施例1のステップS308と異なる。
図12における例において、n=3であり、m=1である場合、ステップS1208におけるデータ統合処理部115は、{R0,A3}のリストの先頭に{R1,A21}を追加し、次のステップS1208において、{R0,A3}のリストの先頭に{R1,A31}を追加する。この結果、データ統合処理部115は、{R1,A31,R1,A21,R0,A3}を生成する。
ステップS1210〜ステップS1213は、図7のステップS310〜ステップS313と同じである。ステップS1209において、データ統合処理部115は、図14に示す処理をX層まで実行する。
図14は、実施例2の故障した機器113に接続する機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
図14におけるステップS1301〜S1307は、図8に示すステップS401〜S407と同じである。なお、ステップS1302において、機器Rqmにおいて発生した警報リストの連想配列が警報リストLAAに含まれていない場合、データ統合処理部115は、当該連想配列を警報リストLAAに格納する。
ステップS1306の後、データ統合処理部115は、ステップ407と同じく、S1308、S1309をH回繰り返す(S1307)。
引数hがH以下である場合、データ統合処理部115は、ステップS1308を実行する。引数hがHを超える場合、データ統合処理部115は、引数qに1を加算し(S1310)、ステップS1305に戻る。
なお、引数hがHを超え、かつ、機器Rqmに機器Rm以外で接続する機器113がある場合、データ統合処理部115は、実施例1と同じく、予め与えられたX層まで、図13及び図14の処理を実行したかを判定する。そして、実行していない場合、機器Rqmに機器Rm以外で接続する機器113を機器Rmとし、図14に示す処理を実行する。そして次の階層への処理が終了した後、ステップS1310を実行する。
データ統合処理部115は、ステップS1308において、Dn0<Dhqの場合LAAのキー{R0,An}及び{Rm,Apm}が含まれるリストの末尾に{Rqm,Apm}を追加する。また、Dn0>Dhqの場合LAAのキー{R0,An}及び{Rm,Apm}が含まれるリストの先頭に{Rqm,Apm}を追加する。ステップS1308は、リストの末尾又は先頭に{Rqm,Apm}を追加する点において、実施例1のステップS408と異なる。
ステップS1308の後、データ統合処理部115は、ステップ1309を実行する。ステップ1309〜S1311は、図8のステップ409〜S1311と同じである。
ステップS1203において、引数nがNを越え、機器R0において発生したすべての警報について、関連する警報を抽出した場合、データ統合処理部115は、{F0,LAA}の組を統合DB120に登録する(S1213)。
図15は、実施例2の統合DB120を示す説明図である。
実施例2の統合DB120は、実施例1の統合DB120と同じく、故障ID125及び警報リストLAA126を含む。
警報故障確率算出部116は、ステップS202において、統合DB120から故障ID125毎に、警報リストLAAが示す機器113と警報との組み合わせを取得する。そして、警報の警報情報1074に基づいて警報の種類(警報情報)の組み合わせを特定し、特定した警報の種類の組み合わせが発生する確率(確率136)を、故障内容毎に算出する。
ここで、警報故障確率算出部116は、警報リストLAA126が示す発生順どおりに発生する警報情報の組み合わせを抽出してもよい。そして、同じ組み合わせの総数によって、故障内容ごとの同じ組み合わせの数を除算することによって、確率を算出してもよい。
また、警報故障確率算出部116は、発生順は考慮せず、発生する警報情報の組み合わせに基づいて確率を算出してもよい。
また、繰り返して同じ警報情報の警報が発生している場合、所定の警報情報が繰り返した回数が一致する組み合わせを同じ組み合わせとして抽出してもよいし、所定の範囲の回数警報が繰り返す組み合わせを同じ組み合わせとして抽出してもよい。
また、周期的に同じ警報情報の警報が発生している場合、警報故障確率算出部116は、警報が周期的に発生する時間間隔の差が所定の範囲内である組み合わせを同じ組み合わせとして抽出してもよい。
そして、警報故障確率算出部116は、ステップS202において、故障内容と、警報情報の組み合わせと、算出した確率とを警報故障確率DB121に格納する。
故障確率算出部117は、ステップS203において、取得した警報状況が示す複数の警報から、警報故障確率DB121が示す警報群と同じ警報情報の複数の警報を抽出する。そして、警報状況から抽出される複数の警報の警報群の確率に基づいて、故障内容毎に確率を算出する。
これによって、例えば、故障確率算出部117は、警報群に含まれる警報と同じ警報情報の警報が、警報群が示す回数(連続して)発生した場合の、故障内容ごとの発生確率を算出できる。
実施例2によれば、複数機器113の警報の発生パターン(機器113間の警報発生パターン)及び単一機器の警報の発生パターン(同じ警報情報の警報が連続して、又は、周期的に発生する等)を考慮して、故障に関連する警報を抽出できる。これにより、正確に警報の発生状況を取得できるため、故障の確率を精度よく算出することが可能となる。
実施例1及び2では、所定の時間範囲で警報を取得し、確率算出及びパターンを生成した。この場合、故障が発生した機器において警報が発生した時刻の所定の時間範囲外の警報については考慮できない。実施例3では、警報因果関係を用いて所定の時間範囲外の警報も考慮可能とした警報と故障の確率を算出する。
図16は、実施例3の故障予兆検知システムのブロック図である。
実施例1及び2の故障予兆検知システムと、実施例3の故障予兆検知システムとの相違点は、実施例3の故障予兆検知システムが、警報因果関係DB122を備える点である。
その他の点は、実施例1及び2の故障予兆検知システムと、実施例3の故障予兆検知システムとは同じである。
実施例3のデータ統合処理部115は、発生警報履歴DB107、故障情報DB108、機器接続情報DB109及び警報因果関係DB122から入手するデータに基づき、故障した機器の警報と接続関係にある機器の警報とから、関連のある警報リストを作成し、統合DB120に登録する機能を持つ。
警報因果関係DB122とは、関係がある警報の警報情報(種類)と警報の警報情報とを示すDBである。
図17は、実施例3の警報因果関係DB122を示す説明図である。
図17(a)は、警報因果関係DB122を示す説明図である。図17(b)は、警報因果関係DB122の異なる例を示す説明図である。
図17(a)に示す警報因果関係DB122aは、関連する複数の警報を示す。警報因果関係DB122aは、警報情報1(1221a)及び警報情報2(1222a)を含む。警報情報1(1221a)は、警報の警報情報を示し、警報情報2(1222a)は、警報情報1(1221a)が示す警報情報の警報と関連する警報の警報情報を示す。
図17(b)に示す警報因果関係DB122bは、関連する複数の警報と、当該複数の警報の発生条件を示す。警報因果関係DB122bは、警報情報1(1221b)、警報情報2(1222b)及び関係1223bを含む。
警報情報1(1221b)は、警報の警報情報を示し、警報情報2(1222b)は、警報情報1(1221b)が示す警報情報の警報と関連する警報の警報情報を示す。関係1223bは、警報情報1(1221b)が示す警報情報の警報と、警報情報2(1222b)が示す警報情報の警報とが関連して発生する条件を示す。
関係1223bは、例えば、警報情報1(1221b)が示す警報情報の警報が発生した時刻の前後d1時間の間に警報情報2(1222b)が示す警報情報の警報が発生した場合、データ統合処理部115は、当該警報情報1(1221b)が示す警報情報の警報と当該警報情報2(1222b)が示す警報情報の警報とを、関連する警報として特定することを示す。
故障予兆検知システムの管理者又は運用者は、設計時に警報因果関係DB122を設定してもよいし、過去の警報発生履歴に基づいて随時更新してもよい。
図18は、実施例3の警報発砲状況を示す説明図である。
また、図18は、実施例3のデータ統合処理部115の処理イメージを示す。データ統合処理部115は、発生警報履歴DB107、故障情報DB108、機器接続情報DB109、及び、警報因果関係DB122から取得する情報(発生警報履歴2001、故障情報2002、機器接続情報2003、及び、警報因果関係2004)に図19及び図20の処理を実行することによって、警報リストLAA2005を生成する。
図19及び図20は、ステップS201の手順の詳細の一例を示すフローチャートである。
図19は、実施例3の故障した機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
ステップS1700〜ステップS1705は、図7に示すステップS300〜ステップ305と同じである。
ステップS1705において、引数mがM以下である場合、かつ、機器RmについてのステップS306の処理が実行されていないと判定した場合、データ統合処理部115は、ステップS1706を実行する。
データ統合処理部115は、ステップS1706において、機器Rmにおいて、D0からf日前までに発生した警報リストLfmを発生警報履歴DB107から取得する。そして、警報リストLAの全警報の中から任意の警報(警報A)を取得し、さらに、警報リストLfmの全警報の中から任意の警報(警報B)を取得し、警報Aの警報情報と警報Bの警報情報との組が、警報因果関係DB122に含まれるか判定する。含まれる場合、警報Aと、警報Bと、故障内容F0との組み合わせを発生順に警報リストLAAに追加する(S1706)。
これによって、データ統合処理部115は、警報リストLAと警報リストLfmとから、関連する警報の組み合わせを取得し、取得した組み合わせと故障内容F0とを警報リストLAAに追加する。そして、これによって、発生日時によらず関連のある警報を特定することができる。
例えば、図18に示す警報発砲状況において警報因果関係2004は、警報情報I21の警報と警報情報I3の警報とが関連することを示す。そして、図18において、警報A21の警報情報は警報情報I21であり、警報A3の警報情報は、警報情報I3である。
このため、データ統合処理部115は、ステップS1706において、警報リストLA{A1,A2,A3,A4}と、警報リストLfm{A11,A21,A31}とから、関連する警報A及び警報Bとして警報A3及び警報A21を取得する。そして、発生順に、{R1,A21,R0,A3}を、警報リストLAAに追加する。
ステップS1706の後、データ統合処理部115は、ステップS1707を実行する。ステップS1707〜ステップS1714は、図7のステップS306〜ステップS313と同じである。ステップ1710において、データ統合処理部115は、図20に示す処理を、X層まで実行する。
図20は、実施例3の故障した機器113に接続する機器113から発した警報と、他の機器113から発した警報との関係を特定する処理を示すフローチャートである。
ステップS1801〜ステップS1805は、図8に示すステップS401〜ステップS405と同じである。引数qがQ以下であり、かつ、機器RqmにステップS1806の処理をまだ実行していない場合、データ統合処理部115は、ステップS1806を実行する。
ステップS1806において、データ統合処理部115は、機器RqmのD0からf日前までの警報のリストLqmを発生警報履歴DB107から取得する。機器R0の警報リストLAの全警報の中から任意の警報(警報A)を取得し、さらに、警報リストLqmの全警報の中から任意の警報(警報B)を取得し、警報Aの警報情報と警報Bの警報情報との組が、警報因果関係DB122に含まれるか判定する。含まれる場合、警報Aと、警報Bと、故障内容F0との組み合わせを発生順に警報LAAに追加する。
これによって、データ統合処理部115は、機器R0と間接的に接続する機器Rにおいて発生した、警報因果関係DB122が示す関連のある警報を特定することができる。そして、これによって、発生日時によらず関連のある警報を特定することができる。
ステップS1806の後、データ統合処理部115は、ステップS1807を実行する。ステップS1807〜ステップ1814は、図8のステップS406〜ステップS413と同じである。
実施例3によれば、設定された警報因果関係DB122を用いて、所定の時間範囲外の警報も関連する警報として抽出でき、この関連する警報に基づいて故障の確率の算出が可能となる。これによって、時間差以外の条件によって関連する警報を抽出でき、故障に関連する警報の発生状況を正確に取得することができるため、精度よく故障の発生確率を算出できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除又は置換をすることが可能である。
また、上記の各構成、機能及び処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル又はファイル等の情報は、メモリ、ハードディスク、若しくはSSD(Solid State Drive)等の記録装置、又は、ICカード、若しくはSDカード等の記録媒体に置くことができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。