(57)【要約】【課題】イベント発生の時間差を考慮してイベントの因果関係を把握する。【解決手段】イベントログを収集するイベントログ収集部と、イベントログをイベントマトリクスに変換して保存するイベントログ保存部と、イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、処理対象の機器イベントについて、発生順序により親ノード候補となる機器イベントを限定し、処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、時間差情報と共に出力する解析部とを備えたイベント解析装置。【選択図】図１
2014211837.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置であって、
発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、
前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、
前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、
処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、
前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部と、
を備えたことを特徴とするイベント解析装置。
【請求項２】
前記イベント発生順序決定部は、前記イベントマトリクスを、所定時間幅のタイムウィンドウに分割し、各タイムウィンドウ内における機器イベントの発生順序に基づいて機器イベント全体の発生順序を決定することを特徴とする請求項１に記載のイベント解析装置。
【請求項３】
前記ベイジアンネットワーク生成部は、親ノードが選出されている機器イベントに、さらに未選出親ノード候補の中から親ノードを選出する場合には、選出済の親ノードを選出時の前記処理対象の機器イベントに対する相対シフト量を維持させた状態で、前記処理対象の機器イベントとセットで単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することを特徴とする請求項２に記載のイベント解析装置。
【請求項４】
前記シフト量の最大値は、前記タイムウィンドウの時間幅と等しいことを特徴とする請求項３に記載のイベント解析装置。
【請求項５】
複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置としてコンピュータを動作させるコンピュータプログラムであって、
発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、
前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、
前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、
処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、
前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラント等で発生したアラームやオペレータの操作手順等のイベントを解析し、発生時間差を考慮してイベントの因果関係を抽出するイベント解析装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
プラント等に分散配置されたフィールドコントローラ等の制御システムを用いてセンサやアクチュエータ等のフィールド機器群を制御する分散制御システム等において、プラント等で発生したアラームやオペレータの操作手順等のイベントを取得し、解析するイベント解析装置が知られている。
【０００３】
図１４は、従来のイベント解析装置の構成を説明するブロック図である。本図に示すように、イベント解析装置３００は、イベントログ収集部３１０とイベントログ解析部３２０と解析結果出力部３３０とを備えている。
【０００４】
制御システム３６０に対するオペレータの操作記録やアラーム等のイベントは、制御システム３６０がログとして保存する場合と、ヒストリアン３７０が保存する場合があるが、イベントログ収集部３１０は、いずれか、あるいは双方からイベントログを収集してイベント解析装置３００の内部または外部に設けられたイベントログデータベース３４０に記録する。
【０００５】
イベントログ解析部３２０は、イベントログデータベース３４０に記録されたイベント群に対して、各イベントの発生頻度や発生割合演算等の統計処理を行ない、解析結果出力部３３０を介して、イベントのリストや発生状況のヒストグラム、統計処理の結果等を表示装置３５０に表示する。ユーザは、表示装置３５０に表示されるこれらの情報を参照することにより、プラント操業の効率向上等を図ることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２１６１４８号公報
【非特許文献】
【０００７】
【非特許文献１】J.Pearl  "Probailistic  Reasoning  in  Intelligent  Systems:  Networks  of  Plausible  Inference",  Morgran  Kaufman  1988
【発明の概要】
【発明が解決しようとする課題】
【０００８】
プラントで発生したアラームやオペレータの操作手順等の制御システムにおけるイベントは、独立したものでなく互いに関連性を持っていることが多い。例えば、あるアラームが特定の操作に起因している場合や、あるアラームに引き続き他のアラームが発生する場合等である。
【０００９】
従来は、イベント解析装置において簡単な統計処理等の解析しか行なわれていなかったため、イベント間の関係はユーザが判断しなければならなかったが、発生したイベントの因果関係が把握できるような解析ができるようになると、イベントの原因推定、イベントの後に発生するイベントの予測が容易となり便利である。
【００１０】
また、プラント内の制御システムにおける各種イベントの相互の関連性は、一定の遅れ時間を持っていることも多いため、イベント発生の時間差を考慮してイベントの因果関係を把握できるようにすることが望ましい
そこで、本発明は、イベント発生の時間差を考慮してイベントの因果関係を把握することができるイベント解析装置およびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明の第１の態様であるイベント解析装置は、複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置であって、発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部とを備えたことを特徴とする。
ここで、前記イベント発生順序決定部は、前記イベントマトリクスを、所定時間幅のタイムウィンドウに分割し、各タイムウィンドウ内における機器イベントの発生順序に基づいて機器イベント全体の発生順序を決定することができる。
また、前記ベイジアンネットワーク生成部は、親ノードが選出されている機器イベントに、さらに未選出親ノード候補の中から親ノードを選出する場合には、選出済の親ノードを選出時の前記処理対象の機器イベントに対する相対シフト量を維持させた状態で、前記処理対象の機器イベントとセットで単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することができる。
このとき、前記シフト量の最大値は、前記タイムウィンドウの時間幅と等しい値とすることができる。
上記課題を解決するため、本発明の第２の態様であるコンピュータプログラムは、複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置としてコンピュータを動作させるコンピュータプログラムであって、発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、イベント発生の時間差を考慮してイベントの因果関係を把握することができるイベント解析装置およびコンピュータプログラムが提供される。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係るイベント解析装置の構成を示すブロック図である。
【図２】イベントログ収集部とイベントログ保存部の動作について説明するフローチャートである。
【図３】イベントログの例を示す図である。
【図４】イベントマトリクスの例を示す図である。
【図５】イベント発生順序決定部が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について説明するフローチャートである。
【図６】機器イベント発生順を決定する手順を説明する図である。
【図７】ベイジアンネットワーク生成部が、ベイジアンネットワークを生成する処理について説明するフローチャートである。
【図８】イベントマトリクスをタイムブロック化する処理を説明する図である。
【図９】親ノード候補毎に最大評価値を算出する処理の詳細について説明するフローチャートである。
【図１０】未選出親ノード候補毎に最大評価値を算出する処理の詳細について説明するフローチャートである。
【図１１】シフトして評価値を算出する処理について説明する図である。
【図１２】構築されたベイジアンネットワークを説明する図である。
【図１３】解析部がベイジアンネットワークを用いて解析を行なう処理について説明するフローチャートである。
【図１４】従来のイベント解析装置の構成を説明するブロック図である。
【発明を実施するための形態】
【００１４】
本発明の実施の形態について図面を参照して説明する。図１は、本実施形態に係るイベント解析装置の構成を示すブロック図である。本図に示すように、イベント解析装置１００は、イベントログ収集部１１０とイベントログ保存部１２０とイベント解析部１３０と解析結果出力部１４０とを備えている。
【００１５】
イベント解析装置１００は、パーソナルコンピュータ、サーバコンピュータ等の汎用的な情報処理装置を用いて構成することができる。すなわち、情報処理装置は、以下に説明するような処理を行なうためのコンピュータプログラムを実行することにより、イベント解析装置１００として機能することができる。もちろん、イベント解析装置１００は、専用装置として構成してもよい。
【００１６】
イベントログ収集部１１０は、従来と同様に、接続された制御システム、ヒストリアン等からイベントログを収集する。イベントログには、イベント発生した日時、イベントが発生した機器の識別子（タグ）、イベント種類の識別子等が含まれる。
【００１７】
イベントログ保存部１２０は、イベントログ収集部１１０が収集したイベントログを、イベント解析装置１００の内部あるいは外部に設けられたイベントログＤＢ２１０に記録する。イベントログ保存部１２０は、イベントログを記録する際に、イベントログをイベント解析部１３０が行なう解析に適した形式に変換したデータも記録する。
【００１８】
具体的には、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器の識別子とイベント種類の識別子とを結合した項目を並べたマトリクスを作成する。そして、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換する。
【００１９】
以降では、イベントログを変換したデータを「イベントマトリクス」と称し、機器とイベント種類との組み合わせを「機器イベント」と称する。例えば、機器「ＴＡＧ１」で発生した「ＡＬＡＲＭ１」は、機器イベント「ＴＡＧ１：ＡＬＡＲＭ１」と表わされ、「ＴＡＧ２」に対する操作「ＯＰ１」は、機器イベント「ＴＡＧ２：ＯＰ１」と表わされる。
【００２０】
イベントマトリクスを記録するイベントログＤＢ２１０は、大容量のイベントマトリクスを記録でき、水平スケーラビリティに柔軟性のあるＮｏＳＱＬ等の分散ＤＢを用いることが好ましい。これはイベントマトリクスが大容量であることや、プラント操業中に機器の数が変化するなど柔軟性を求められる場合があるからである。もちろん、汎用的なリレーションＤＢを用いることも可能である。
【００２１】
イベント解析部１３０は、ベイジアンネットワークを利用した機器イベント間の因果関係を、機器イベント発生の時間差を考慮して解析する機能部である。具体的には、イベントログ保存部１２０が作成したイベントマトリクスに基づいてベイジアンネットワークを構築する処理と、解析対象の機器イベントに対して、その原因となる機器イベントと予測される機器イベントとをベイジアンネットワークを用いて解析する処理と、解析結果を、解析結果出力部１４０を介して表示装置２３０等に出力する処理とを行なう。
【００２２】
これらの処理を行なうため、イベント解析部１３０は、イベント発生順序決定部１３１、ベイジアンネットワーク生成部１３２、解析部１３３を備えている。各機能ブロックの処理内容については後述する。また、イベント解析装置１００の内部あるいは外部には、生成したベイジアンネットワークを保存するためのベイジアンネットワークＤＢ２２０が設けられている。
【００２３】
ベイジアンネットワークは、因果関係を確率により記述するグラフィカルモデルの１つで、複雑な因果関係の推論を有向グラフ構造により表わすとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。
【００２４】
因果的な特徴を有向グラフによるネットワークとして表し、その上で確率推論を行なうことで、複雑でかつ不確実な事象の起こりやすさやその可能性を予測することができる。これまで蓄積された情報をもとに、起こり得る確率をそれぞれの場合について求め、それらを起こる経路に従って計算することで、複雑な経路を伴った因果関係の発生確率を定量的に表わすことが可能となる。
【００２５】
このため、ベイジアンネットワーク利用することで、ある機器イベントの原因となる機器イベントを確率的に表わすことができるようになる。また、ある機器イベントが発生した後に発生し得る機器イベントを確率的に表わすことができるようになる。さらに、長期間のイベントログを使用してベイジアンネットワークを構築することで、季節変動や定期修繕などの要素も解析に含めることが可能となる。
【００２６】
従来、ベイジアンネットワークは、Ｋ２アルゴリズムに代表されるように、複数事象の同時発生状況を調べることにより、事象間の因果関係を抽出することで構築するが、プラント内の制御システムにおける機器イベントの相互の関連性は、必ずしも同時に発生するものではなく、一定の遅れ時間を持っているものが多い。そこで、本実施形態では、Ｋ２アルゴリズムを改良し、機器イベント発生の時間差を考慮してベイジアンネットワークを構築するようにしている。
【００２７】
次に、イベント解析装置１００の動作について説明する。まず、イベントログ収集部１１０とイベントログ保存部１２０の動作について図２のフローチャートを参照して説明する。イベントログ収集部１１０は、所定の収集タイミングになると（Ｓ１０１：Ｙｅｓ）、制御システム、ヒストリアン等からイベントログを収集する（Ｓ１０２）。
【００２８】
イベントログは、図３に一例を示すように、イベントが発生した日時、機器識別子（タグ）、イベント識別子を含んでいる。さらに、「操作」「アラーム」等のイベントタイプの情報を含めるようにしてもよい。本図の例では、２０１２年１０月２１日１８時００分００秒に、機器「ＴＡＧ１」で、アラーム「ＡＬＲＭ１」が発生し、同０３秒に、機器「ＴＡＧ２」に対して操作「ＯＰ１」を行なったこと等が示されている。
【００２９】
イベントログを収集するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【００３０】
イベントログを収集すると、イベントログ保存部１２０が、イベントログに基づいてイベントマトリクスを作成する（Ｓ１０３）。上述のように、イベントマトリクスは、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器イベントを並べたマトリクスを作成し、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換したものである。
【００３１】
図４は、図３に示したイベントログを変換したイベントマトリクスを示している。ここでは、イベントログの最小時間単位を１秒としているため、イベントマトリクスの縦方向は、１秒間刻みとなっている。また、横方向は、機器の識別子とイベント種類の識別子とを結合した機器イベントを並べるため、「ＴＡＧ１：ＡＬＲＭ１」「ＴＡＧ２：ＡＬＡＲＭ３」「ＴＡＧ２：ＯＰ１」といったカラムが生成されている。実際には、横方向に、機器とイベント種類との組合わせ分のカラムが作成される。
【００３２】
本例では、２０１２年１０月２１日１８時００分００秒に、機器「ＴＡＧ１」で、アラーム「ＡＬＲＭ１」が発生しているため、対応するカラムに機器イベントが発生した旨を示す情報として「１」が入力されている。同様に、２０１２年１０月２１日１８時００分０３秒に、機器「ＴＡＧ２」に対して操作「ＯＰ１」が行なわれているため、対応するカラムに「１」が入力されている。なお、機器イベントが発生していないカラムには「０」が入力されている。
【００３３】
イベントマトリクスを作成すると、イベントログ保存部１２０は、作成したイベントマトリクスをイベントログと共に、イベントログＤＢ２１０に記録する（Ｓ１０４）。このとき、過去のデータも使用できるように、追加記録していくことが望ましい。そして、イベントログ収集部１１０が次の収集タイミングを待つ（Ｓ１０１）。
【００３４】
次に、イベント解析部１３０がイベントマトリクスに基づいてベイジアンネットワークを構築する処理について説明する。イベント解析部１３０がベイジアンネットワークを構築する処理は、イベント解析部１３０のイベント発生順序決定部１３１が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理と、イベント解析部１３０のベイジアンネットワーク生成部１３２がベイジアンネットワークを生成する処理とに分けることができる。
【００３５】
まず、イベント発生順序決定部１３１が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について、図５のフローチャートを参照して説明する。ベイジアンネットワークの構築には、親ノードになり得る候補を限定する必要がある。このため、イベント発生順序決定部１３１が、イベントマトリクスに基づいて機器イベントの発生順序を決定するようにしている。なお、原因側の機器イベントを親ノードと称し、結果側の機器イベントを子ノードと称すものとする。
【００３６】
イベントの発生順序を決定するためのアルゴリズムとして、特許文献１に記載されているように、相互相関関数の最大相関値に基づいた算出法がある。しかし、相互相関関数の計算には時間がかかるため、本実施形態では、以下に示すような手順で、より高速に機器イベントの発生順序を決定する。
【００３７】
イベント解析部１３０のイベント発生順序決定部１３１は、所定の更新タイミングになると、イベントログＤＢ２１０に記録されているイベントマトリクスを読み込む（Ｓ２０１）。すなわち、ベイジアンネットワークは、所定のタイミングで更新されることになる。ベイジアンネットワークを更新するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【００３８】
次に、イベントマトリクスを所定の時間幅で切り出して、タイムウィンドウに分割する（Ｓ２０２）。タイムウィンドウの時間幅は、相互に関連する機器イベント間において想定される発生時間差の最大値とする。例えば、因果関係を有する機器イベント同士の発生時間差が１時間を超えることが無いと想定されるプラントであれば、タイムウィンドウの時間幅を１時間とすればよい。
【００３９】
タイムウィンドウの時間幅は、解析対象のプラントや解析目的等に応じて変化させることができる。例えば、流量、圧力など遅れ要素が少ない機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を短くしたり、温度など一次遅れ要素が多い機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を長くすることができる。
【００４０】
イベントマトリクスをタイムウィンドウに分割すると、タイムウィンドウ毎に、機器イベントの発生順序を記録する（Ｓ２０３）。例えば、図６（ａ）に示すような順序で機器イベントが発生しているイベントマトリクス（本図では直線状に表現している。また、「機器イベント」を単に「イベント」と表記している。）を４つのタイムウィンドウに切り出したとすると、図６（ｂ）に示すように、１番目のタイムウィンドウでは、機器イベントＡが１番目に発生し、機器イベントＣが２番目に発生した旨を記録する。同様に、３番目のタイムウィンドウでは、機器イベントＡ、機器イベントＢ、機器イベントＣの順序で発生した旨を記録する。
【００４１】
次に、機器イベントを組み合わせた機器イベントペアを作成し、各機器イベントペアについて発生順序をカウントする（Ｓ２０４）。機器イベントペアはすべての機器イベントを対象に作成する。発生順序のカウントは、例えば、機器イベントＡ、機器イベントＢの機器イベントペアに注目したときは、両方の機器イベントが発生しているタイムウィンドウを対象に、機器イベントＡが先に発生している回数、機器イベントＢが先に発生している回数、同時に発生している回数をそれぞれカウントする。
【００４２】
例えば、図６（ｂ）に示した例では、図６（ｃ）に示すように、機器イベントＡと機器イベントＣとの機器イベントペアＰａｉｒ｛Ａ，Ｂ｝について、機器イベントＡが先に発生している回数は、機器イベントＢが先に発生している回数とも１がカウントされる。機器イベントペアＰａｉｒ｛Ａ，Ｃ｝について、機器イベントＡが先に発生している回数は２、機器イベントＢが先に発生している回数は０、同時に発生している回数は１とカウントされる。また、機器イベントペアＰａｉｒ｛Ｂ，Ｃ｝について、機器イベントＢが先に発生している回数が３とカウントされる。
【００４３】
そして、カウント数に基づいて、機器イベントペア毎に発生順序を決定する（Ｓ２０５）。発生順序は、機器イベントペア毎に、最も回数の多い発生順序をその機器イベントペアの発生順とする。
【００４４】
例えば、図６（ｄ）に示すように機器イベントペアＰａｉｒ｛Ａ，Ｃ｝について、機器イベントＡが先に発生した回数が２回、機器イベントＡと機器イベントＣとが同時に発生した回数が１回、機器イベントＣが先に発生した回数が０回となっているため、機器イベントＡと機器イベントＣの発生順序は、Ａ→Ｃと決定する。
【００４５】
なお、機器イベントペアＰａｉｒ｛Ａ，Ｂ｝のように、機器イベントＡが先に発生した回数と、機器イベントＢが先に発生した回数とが等しい場合には、イベントマトリクスにおいて、最先に発生した機器イベントを先とした順序に決定する。本例では、図６（ａ）に示すように、機器イベントＡが最先に発生しているため、機器イベントＡと機器イベントＢの発生順序は、Ａ→Ｂと決定する。
【００４６】
各機器イベントペアについて発生順序が決定すると、その順序に基づいて、機器イベント全部についての順序を決定する（Ｓ２０６）。順序の決定は、汎用的なソートアルゴリズム等を用いることができる。機器イベントの順序を決定することにより、各機器イベントについて、親ノード候補を限定することができる。すなわち、自身より順序が先の機器イベントが親ノード候補となる。
【００４７】
以上、イベント発生順序決定部１３１が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について説明した。
【００４８】
次に、イベント解析部１３０のベイジアンネットワーク生成部１３２が、ベイジアンネットワークを生成する処理について説明する。本実施形態のベイジアンネットワークを生成する処理は、代表的なベイジアンネットワーク構築法であるＫ２アルゴリズムを改良したものであり、各機器イベントについて、機器イベントの発生順序決定により限定された親ノード候補の中から親ノードを選出する。親ノードを選出するための評価値としては、条件付き確率Ｐ（子ノード｜親ノード）に基づいたＭＤＬ（Minimum Description Length）等の情報量基準を用いるものとする。
【００４９】
図７は、ベイジアンネットワーク生成部１３２が、ベイジアンネットワークを生成する処理について説明するフローチャートである。
【００５０】
時間差を持って相互に関連する機器イベントであっても、機器イベントの発生タイミング差は一定ではなくブレがあると考えられる。このため、イベントマトリクスの最小時間単位を基準にベイジアンネットワークを生成すると、機器イベント間の関連性が十分評価できない可能性がある。そこで、本実施形態では、ベイジアンネットワーク構築用にイベントマトリクスの時間単位をより長い時間単位にまとめる処理を行なうようにしている（Ｓ３００）。この処理をイベントマトリクスのタイムブロック化と称する。以下の処理では、タイムブロック化したイベントマトリクスを用いて処理を行なうものとする。
【００５１】
図８は、イベントマトリクスの最小時間単位１秒を、１分単位にタイムブロック化した例を示している。タイムブロック化により、タイムブロックの時間幅に発生した機器イベントの回数が表現される。なお、タイムブロック化を行なうことなく、イベントマトリクスの最小時間単位でベイジアンネットワークを構築するようにしてもよい。また、タイムブロックの単位時間は、解析対象のプラントや解析目的等に応じて任意に定めることができる。
【００５２】
また、プラントに様々な機器が存在する場合には、単一の単位時間でなく、複数の単位時間を定めて、それぞれの時間幅に応じたベイジアンネットワークを構築して解析を行なうようにしてもよい。この処理を容易にするため、イベントマトリクスは、イベントログの最小時間単位で時間軸を展開している。
【００５３】
ところで、ベイジアンネットワークの生成にあたり、従来のＫ２アルゴリズムをそのまま適用すると、タイムブロック化したイベントマトリクス内で同時に発生した機器イベントの条件付き確率を計算し、各機器イベントの親ノードを選出することになるが、機器イベントの発生時間差がタイムブロックの時間単位よりも大きい場合には、因果関係を評価することができなくなる。そこで、本実施形態では、機器イベント間の発生時間差を考慮するために、時間をシフトした仮想的な機器イベントを用いて各機器イベントの親ノードを選出する。
【００５４】
ただし、機器イベントの発生時間は無制限にシフトさせるのではなく、相互に関連する機器イベント間において想定される発生時間差の最大値を限度として、機器イベントの発生時間をシフトする。この最大シフト幅は、タイムウィンドウの時間幅と一致する。また、シフトは、タイムブロックの単位時間で、シフト量０から最大シフト幅まで行ない、それぞれのシフト量で評価を行なうものとする。
【００５５】
これらの処理について、詳細に説明すると、まず、処理対象の子ノードを設定する（Ｓ３０１）。処理対象の子ノードは、任意の順序で機器イベントの中から設定する。
【００５６】
処理対象として設定された子ノードについて、親ノードがない場合の情報量基準による評価値を計算する（Ｓ３０２）。また、親ノード候補のリストを作成する（Ｓ３０３）。親ノード候補は、処理対象の子ノードよりも発生順番が前の機器イベントである。
【００５７】
そして、親ノード候補毎に最大評価値を算出する（Ｓ３０４）。この処理の詳細について、図９のフローチャートを参照して説明する。
【００５８】
まず、親ノード候補リストの中から任意の順序で評価対象親ノード候補ＰＮを設定する（Ｓ３０４１）。始めに、シフト量Ｓｔを０として（Ｓ３０４２）、子ノードＣＮと親ノード候補ＰＮとで評価値を算出する（Ｓ３０４３）。
【００５９】
次に、シフト量を１つ増やして（Ｓ３０４５）、シフト量分前にシフトさせた子ノードＣＮ（Ｓｔ）と親ノード候補ＰＮとで評価値を算出する（Ｓ３０４３）。すなわち、子ノードがシフト量Ｓｔ分前に発生したと仮定した場合の評価値を算出する。
【００６０】
シフト量分前にシフトさせた子ノードＣＮ（Ｓｔ）と親ノードＰＮとで評価値を算出する処理（Ｓ３０４３）は、シフト量Ｓｔを増やしながら（Ｓ３０４５）、シフト量Ｓｔが最大になるまで繰り返す（Ｓ３０４４）。
【００６１】
これにより、評価対象親ノード候補ＰＮついて、評価値の最大値とその時のシフト量Ｓｔとを得ることができるため、最大評価値とその時の子ノードＣＮのシフト量Ｓｔとを記録する（Ｓ３０４６）。
【００６２】
例えば、図１１（ａ）におけるタイムブロック化したイベントマトリクスにおいて、機器イベントＣを処理対象子ノードとし、機器イベントＢを評価対象親ノードとしたときに、図１１（ｂ）は、機器イベントＣをシフト量Ｓｔ＝１とした場合に評価値が最大になったことを示している。
【００６３】
以上の処理をすべての親ノード候補に対して繰り返す（Ｓ３０４７）ことで、親ノード候補毎に最大評価値を算出する処理（Ｓ３０４）が行なわれる。
【００６４】
図７のフローチャートの説明に戻って、親ノード候補のうち、最大評価値が最も高い親ノード候補をその時のシフト量Ｓｔと共に抽出する（Ｓ３０５）。この評価値が、親ノード無しのときの評価値よりも高くなければ（Ｓ３０６：Ｎｏ）、処理対象子ノードをルートとして決定し、次の処理対象子ノードを設定して（Ｓ３１４、Ｓ３０１）、上記の処理を繰り返す。
【００６５】
抽出された親ノード候補の最大評価値が、親ノード無しのときの評価値よりも高ければ（Ｓ３０６：Ｙｅｓ）、抽出した親ノード候補を、処理対処の子ノードの親としてシフト量と共に選出する（Ｓ３０８）。
【００６６】
親ノード候補リストの中に未選出の親ノード候補があるかどうかを調べ、親ノード候補がない場合（Ｓ３０９：Ｎｏ）は、その子ノードに対する処理を終了し、次の処理対象子ノードを設定して（Ｓ３１４、Ｓ３０１）、上記の処理を繰り返す。
【００６７】
親ノード候補リストの中に未選出の親ノード候補がある場合（Ｓ３０９：Ｙｅｓ）は、未選出親ノード候補毎に最大評価値を算出する（Ｓ３１０）。すなわち、既に選出された親ノードに、別の親ノード候補を加えた評価を行なう。この処理の詳細について図１０のフローチャートを参照して説明する。
【００６８】
まず、親ノード候補リストの未選出親ノード候補の中から評価対象親ノード候補ＰＮを設定する（Ｓ３１０１）。始めに、シフト量Ｓｔを０として（Ｓ３１０２）、すなわち、実際の子ノードの発生時点で、子ノードＣＮと選出済親ノードと親ノード候補ＰＮとで評価値を算出する（Ｓ３１０３）。このとき、選出済親ノードは、その親ノードが選出されたときの子ノードＣＮに対する相対シフト量を維持した状態で評価値を算出する。例えば、ある親ノードが選出されたときの子ノードＣＮのシフト量が３であれば、その選出済の親ノードは子ノードＣＮに対してシフト量−３の状態であるため、子ノードＣＮのシフト量０、選出済親ノードのシフト量−３、評価対象親ノード候補のシフト量０で評価値を算出する。
【００６９】
次に、シフト量を１つ増やして（Ｓ３１０５）、シフト量分前にシフトさせた子ノードＣＮと選出済親ノードと評価対象親ノード候補ＰＮとで評価値を算出する（Ｓ３１０３）。このとき、子ノードＣＮと選出済親ノードとはセットでシフトさせる。すなわち、選出済親ノードは、その親ノードが選出されたときの子ノードＣＮに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【００７０】
例えば、親ノードが選出されたときのシフト量が３（相対シフト量−３）であれば、子ノードＣＮのシフト量は１、選出済親ノードのシフト量は−３＋１＝−２、評価対象親ノード候補ＰＮのシフト量は０で評価値を算出する。選出済親ノードが複数の場合も、それぞれの選出済親ノードが選出されたときの、子ノードに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【００７１】
シフト量分前にシフトさせた子ノードＣＮと相対シフト量を維持した選出済親ノードと評価対象親ノード候補ＰＮとで評価値を算出する（Ｓ３１０３）処理は、シフト量Ｓｔを増やしながら（Ｓ３１０５）、シフト量Ｓｔが最大になるまで繰り返す（Ｓ３１０４）。
【００７２】
これにより、評価対象親ノード候補ＰＮついて、評価値の最大値とその時の子ノードＣＮのシフト量Ｓｔとを得ることができるため、最大評価値とその時のシフト量Ｓｔとを記録する（Ｓ３１０６）。
【００７３】
例えば、図１１（ｃ）は、シフト量Ｓｔ＝１で機器イベントＢが機器イベントＣの親ノードとして選出されている場合に、機器イベントＡを評価対象親ノード候補とした場合の例である。機器イベントＢの選出時の機器イベントＣに対する相対シフト量は−１であり、機器イベントＣと相対シフト量−１の機器イベントＢとをセットでシフト量Ｓｔ＝３としたときに評価値が最大になったことを示している。この場合、機器イベントＢ自身のシフト量は３−１＝２となる。
【００７４】
以上の処理をすべての未選出親ノード候補に対して繰り返す（Ｓ３１０７）ことで、未選出親ノード候補毎に最大評価値を算出する処理（Ｓ３１０）が行なわれる。
【００７５】
図７のフローチャートの説明に戻って、未選出親ノード候補のうち、最大評価値が最も高い親未選出ノード候補をその時のシフト量Ｓｔと共に抽出する（Ｓ３１１）。この評価値が、未選出親ノードを加える前の評価値よりも高くなければ（Ｓ３０６：Ｎｏ）、未選出親ノードを加えずに、次の処理対象子ノードを設定して（Ｓ３１４、Ｓ３０１）、上記の処理を繰り返す。
【００７６】
抽出された親ノード候補の最大評価値が、未選出親ノードを加える前の評価値よりも高ければ（Ｓ３１２：Ｙｅｓ）、抽出した未選出親ノード候補を、処理対処の子ノードの親としてシフト量の情報を含めて追加する（Ｓ３１３）。
【００７７】
親ノード候補リストの中に未選出の親ノード候補があれば（Ｓ３０９）、未選出親ノード候補毎に最大評価値を算出する処理（Ｓ３１０）以降を繰り返す。
【００７８】
以上の処理を、未処理の子ノードが無くなるまで繰り返す（Ｓ３１４）ことで、ベイジアンネットワークがシフト量の情報を含んで構築される。構築されたベイジアンネットワークは、図１２に示すように、従来のベイジアンネットワークと同様に、機器イベント間の因果関係を確率付き有向グラフで表わすことができる。さらに、親ノード選出時におけるシフト量に基づいて、子ノードと親ノードとの間の発生時間差を求めることができるため、機器イベント間の発生時間差も定量的に表わすことができる。
【００７９】
以上では、Ｋ２アルゴリズムを改良したベイジアンネットワーク構築の手順を説明したが、本発明は、ＭＷＳＴアルゴリズム等のＫ２アルゴリズム以外のベイジアンネットワーク構築法に適用することも可能である。
【００８０】
次に、解析部１３３がベイジアンネットワークを用いて解析を行なう処理について図１３のフローチャートを参照して説明する。
【００８１】
解析部１３３は、ユーザから解析リクエストを受け付けると（Ｓ４０１：Ｙｅｓ）、ベイジアンネットワークを利用した解析を行なう（Ｓ４０２）。ユーザは、例えば、発生したアラームや頻発するアラーム、これから行なおうとする操作等を対象に、解析部１３３に解析リクエストを行なうことができる。また、プラントの効率改善等のためにオフラインで解析リクエストを行なうこともできる。
【００８２】
ベイジアンネットワークを利用した解析では、確率推論を利用して解析対象の機器イベントの原因となる機器イベントと、今後発生し得る機器イベントとを確率も含めて算出することができる。代表的な確率推論アルゴリズムとして確率伝搬法がある。
【００８３】
本実施形態では、機器イベントの原因を推定するために、ベイジアンネットワークの構造を参照して、観測された機器イベントからルートまで辿って、ルート位置にある機器イベントを主原因候補として抽出し、確率推論により主原因候補の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から主原因候補の発生時間を推定する。
【００８４】
例えば、図１２に示したベイジアンネットワークにおいて、機器イベントＣが観測された場合、機器イベントＣを引き起こす原因は、機器イベントＡまたは機器イベントＢである可能性があり、確率伝搬法に基づいた計算を行なうことで、３分前に機器イベントＡが発生した確率は４１％、１分前に機器イベントＢが発生した確率は５３％であると推定することができる。
【００８５】
また、観測された機器イベントから将来起きうる機器イベントを予測するために、ベイジアンネットワークの構造を参照して、観測された機器イベントの子ノードおよび子孫ノードを今後起きうる機器イベントの候補として抽出し、確率推論により機器イベント候補毎の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から予測する機器イベントの発生時間を推定する。
【００８６】
例えば、図１２に示したベイジアンネットワークにおいて、機器イベントＡが観測された場合、確率伝搬法に基づいた計算を行なうことで、３分後に機器イベントＣが発生する確率は６３％であると予測することができ、機器イベントＢが観測された場合、確率伝搬法に基づいた計算を行なうことで、１分後に機器イベントＣが発生する確率は８１％であると予測することができる。
【００８７】
ベイジアンネットワークを利用した解析の解析結果は、解析結果出力部１４０を介して表示装置２３０に表示したり、図示しない印刷装置を利用して印刷したり、電子データとして出力したりすることができる（Ｓ４０３）。
【００８８】
出力する情報は、原因推定、事象予想に限られない。例えば、アラーム／操作感の因果関係およびそれらの発生時間差に基づいて定型的な一連操作のシーケンスを抽出して、解析結果として出力するようにしてもよい。抽出されたシーケンスは、定常的に繰り返される操作を自動化させるための情報となり、プラント運転の安定化、効率化を図ることできる。
【００８９】
また、ベイジアンネットワークの構築により機器イベントの因果関係のみならず、機器イベントのグルーピングの補助に用いることもできる。具体的には、共連れアラーム等の同時発生の確率が高く連動性が高いと考えられるアラーム同士を組み合わせて扱うことで、プラントにおけるアラームの発生回数を減らすことも可能となる。
【００９０】
また、機器イベントの因果関係に基づいて不要なアラームの発生原因を特定したり、重要アラームの発生確率や発生時刻を予報したり、アラーム発生時に、過去に行なった対応操作を提示できるようにもなる。さらには、アラーム発生からオペレータが対応するまでの猶予時間を把握することができるようにもなる。
【符号の説明】
【００９１】
１００…イベント解析装置、１１０…イベントログ収集部、１２０…イベントログ保存部、１３０…イベント解析部、１３１…イベント発生順序決定部、１３２…ベイジアンネットワーク生成部、１３３…解析部、１４０…解析結果出力部、２１０…イベントログＤＢ、２２０…ベイジアンネットワークＤＢ、２３０…表示装置、３００…イベント解析装置、３１０…イベントログ収集部、３２０…イベントログ解析部、３３０…解析結果出力部、３４０…イベントログデータベース、３５０…表示装置、３６０…制御システム、３７０…ヒストリアン
【図１】
2014211837.tif 000003
【図２】
2014211837.tif 000004
【図３】
2014211837.tif 000005
【図４】
2014211837.tif 000006
【図５】
2014211837.tif 000007
【図６】
2014211837.tif 000008
【図７】
2014211837.tif 000009
【図８】
2014211837.tif 000010
【図９】
2014211837.tif 000011
【図１０】
2014211837.tif 000012
【図１１】
2014211837.tif 000013
【図１２】
2014211837.tif 000014
【図１３】
2014211837.tif 000015
【図１４】
2014211837.tif 000016