特許第5769138号(P5769138)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 横河電機株式会社の特許一覧

特許5769138イベント解析装置およびコンピュータプログラム
<>
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000002
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000003
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000004
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000005
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000006
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000007
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000008
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000009
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000010
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000011
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000012
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000013
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000014
  • 特許5769138-イベント解析装置およびコンピュータプログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5769138
(24)【登録日】2015年7月3日
(45)【発行日】2015年8月26日
(54)【発明の名称】イベント解析装置およびコンピュータプログラム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20150806BHJP
【FI】
   G05B23/02 302Y
   G05B23/02 301V
【請求項の数】5
【全頁数】26
(21)【出願番号】特願2013-89031(P2013-89031)
(22)【出願日】2013年4月22日
(65)【公開番号】特開2014-211837(P2014-211837A)
(43)【公開日】2014年11月13日
【審査請求日】2014年6月11日
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(72)【発明者】
【氏名】劉 琢
(72)【発明者】
【氏名】櫻庭 祐一
【審査官】 稲垣 浩司
(56)【参考文献】
【文献】 特開2005−216148(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置であって、
発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、
前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、
前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、
処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、
前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部と、
を備えたことを特徴とするイベント解析装置。
【請求項2】
前記イベント発生順序決定部は、前記イベントマトリクスを、所定時間幅のタイムウィンドウに分割し、各タイムウィンドウ内における機器イベントの発生順序に基づいて機器イベント全体の発生順序を決定することを特徴とする請求項1に記載のイベント解析装置。
【請求項3】
前記ベイジアンネットワーク生成部は、親ノードが選出されている機器イベントに、さらに未選出親ノード候補の中から親ノードを選出する場合には、選出済の親ノードを選出時の前記処理対象の機器イベントに対する相対シフト量を維持させた状態で、前記処理対象の機器イベントとセットで単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することを特徴とする請求項2に記載のイベント解析装置。
【請求項4】
前記シフト量の最大値は、前記タイムウィンドウの時間幅と等しいことを特徴とする請求項3に記載のイベント解析装置。
【請求項5】
複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置としてコンピュータを動作させるコンピュータプログラムであって、
発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、
前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、
前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、
処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、
前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プラント等で発生したアラームやオペレータの操作手順等のイベントを解析し、発生時間差を考慮してイベントの因果関係を抽出するイベント解析装置およびコンピュータプログラムに関する。
【背景技術】
【0002】
プラント等に分散配置されたフィールドコントローラ等の制御システムを用いてセンサやアクチュエータ等のフィールド機器群を制御する分散制御システム等において、プラント等で発生したアラームやオペレータの操作手順等のイベントを取得し、解析するイベント解析装置が知られている。
【0003】
図14は、従来のイベント解析装置の構成を説明するブロック図である。本図に示すように、イベント解析装置300は、イベントログ収集部310とイベントログ解析部320と解析結果出力部330とを備えている。
【0004】
制御システム360に対するオペレータの操作記録やアラーム等のイベントは、制御システム360がログとして保存する場合と、ヒストリアン370が保存する場合があるが、イベントログ収集部310は、いずれか、あるいは双方からイベントログを収集してイベント解析装置300の内部または外部に設けられたイベントログデータベース340に記録する。
【0005】
イベントログ解析部320は、イベントログデータベース340に記録されたイベント群に対して、各イベントの発生頻度や発生割合演算等の統計処理を行ない、解析結果出力部330を介して、イベントのリストや発生状況のヒストグラム、統計処理の結果等を表示装置350に表示する。ユーザは、表示装置350に表示されるこれらの情報を参照することにより、プラント操業の効率向上等を図ることができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−216148号公報
【非特許文献】
【0007】
【非特許文献1】J.Pearl "Probailistic Reasoning in Intelligent Systems: Networks of Plausible Inference", Morgran Kaufman 1988
【発明の概要】
【発明が解決しようとする課題】
【0008】
プラントで発生したアラームやオペレータの操作手順等の制御システムにおけるイベントは、独立したものでなく互いに関連性を持っていることが多い。例えば、あるアラームが特定の操作に起因している場合や、あるアラームに引き続き他のアラームが発生する場合等である。
【0009】
従来は、イベント解析装置において簡単な統計処理等の解析しか行なわれていなかったため、イベント間の関係はユーザが判断しなければならなかったが、発生したイベントの因果関係が把握できるような解析ができるようになると、イベントの原因推定、イベントの後に発生するイベントの予測が容易となり便利である。
【0010】
また、プラント内の制御システムにおける各種イベントの相互の関連性は、一定の遅れ時間を持っていることも多いため、イベント発生の時間差を考慮してイベントの因果関係を把握できるようにすることが望ましい。
そこで、本発明は、イベント発生の時間差を考慮してイベントの因果関係を把握することができるイベント解析装置およびコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するため、本発明の第1の態様であるイベント解析装置は、複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置であって、発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部とを備えたことを特徴とする。
ここで、前記イベント発生順序決定部は、前記イベントマトリクスを、所定時間幅のタイムウィンドウに分割し、各タイムウィンドウ内における機器イベントの発生順序に基づいて機器イベント全体の発生順序を決定することができる。
また、前記ベイジアンネットワーク生成部は、親ノードが選出されている機器イベントに、さらに未選出親ノード候補の中から親ノードを選出する場合には、選出済の親ノードを選出時の前記処理対象の機器イベントに対する相対シフト量を維持させた状態で、前記処理対象の機器イベントとセットで単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することができる。
このとき、前記シフト量の最大値は、前記タイムウィンドウの時間幅と等しい値とすることができる。
上記課題を解決するため、本発明の第2の態様であるコンピュータプログラムは、複数の機器で発生するアラームと前記機器を対象とした操作とを含むイベントを解析するイベント解析装置としてコンピュータを動作させるコンピュータプログラムであって、発生日時と機器識別子とイベント種別識別子とを含むイベントログを収集するイベントログ収集部と、前記イベントログを、機器識別子とイベント種別識別子とを結合した機器イベント毎に発生の有無を時系列で示したイベントマトリクスに変換して保存するイベントログ保存部と、前記イベントマトリクスに基づいて、機器イベントの発生順序を決定するイベント発生順序決定部と、処理対象の機器イベントについて、前記発生順序により親ノード候補となる機器イベントを限定し、限定された親ノード候補を対象に、前記処理対象の機器イベントを単位時間毎にシフトさせた仮想機器イベントとの情報量基準による評価値を算出することで、親ノードとなる機器イベントを、シフト量と共に選出してベイジアンネットワークを生成するベイジアンネットワーク生成部と、前記ベイジアンネットワークを利用して、解析対象の機器イベントの原因と考えられる機器イベントあるいは後に発生すると考えられる機器イベントを、前記シフト量に基づいた時間差情報と共に出力する解析部としてコンピュータを機能させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、イベント発生の時間差を考慮してイベントの因果関係を把握することができるイベント解析装置およびコンピュータプログラムが提供される。
【図面の簡単な説明】
【0013】
図1】本実施形態に係るイベント解析装置の構成を示すブロック図である。
図2】イベントログ収集部とイベントログ保存部の動作について説明するフローチャートである。
図3】イベントログの例を示す図である。
図4】イベントマトリクスの例を示す図である。
図5】イベント発生順序決定部が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について説明するフローチャートである。
図6】機器イベント発生順を決定する手順を説明する図である。
図7】ベイジアンネットワーク生成部が、ベイジアンネットワークを生成する処理について説明するフローチャートである。
図8】イベントマトリクスをタイムブロック化する処理を説明する図である。
図9】親ノード候補毎に最大評価値を算出する処理の詳細について説明するフローチャートである。
図10】未選出親ノード候補毎に最大評価値を算出する処理の詳細について説明するフローチャートである。
図11】シフトして評価値を算出する処理について説明する図である。
図12】構築されたベイジアンネットワークを説明する図である。
図13】解析部がベイジアンネットワークを用いて解析を行なう処理について説明するフローチャートである。
図14】従来のイベント解析装置の構成を説明するブロック図である。
【発明を実施するための形態】
【0014】
本発明の実施の形態について図面を参照して説明する。図1は、本実施形態に係るイベント解析装置の構成を示すブロック図である。本図に示すように、イベント解析装置100は、イベントログ収集部110とイベントログ保存部120とイベント解析部130と解析結果出力部140とを備えている。
【0015】
イベント解析装置100は、パーソナルコンピュータ、サーバコンピュータ等の汎用的な情報処理装置を用いて構成することができる。すなわち、情報処理装置は、以下に説明するような処理を行なうためのコンピュータプログラムを実行することにより、イベント解析装置100として機能することができる。もちろん、イベント解析装置100は、専用装置として構成してもよい。
【0016】
イベントログ収集部110は、従来と同様に、接続された制御システム、ヒストリアン等からイベントログを収集する。イベントログには、イベント発生した日時、イベントが発生した機器の識別子(タグ)、イベント種類の識別子等が含まれる。
【0017】
イベントログ保存部120は、イベントログ収集部110が収集したイベントログを、イベント解析装置100の内部あるいは外部に設けられたイベントログDB210に記録する。イベントログ保存部120は、イベントログを記録する際に、イベントログをイベント解析部130が行なう解析に適した形式に変換したデータも記録する。
【0018】
具体的には、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器の識別子とイベント種類の識別子とを結合した項目を並べたマトリクスを作成する。そして、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換する。
【0019】
以降では、イベントログを変換したデータを「イベントマトリクス」と称し、機器とイベント種類との組み合わせを「機器イベント」と称する。例えば、機器「TAG1」で発生した「ALARM1」は、機器イベント「TAG1:ALARM1」と表わされ、「TAG2」に対する操作「OP1」は、機器イベント「TAG2:OP1」と表わされる。
【0020】
イベントマトリクスを記録するイベントログDB210は、大容量のイベントマトリクスを記録でき、水平スケーラビリティに柔軟性のあるNoSQL等の分散DBを用いることが好ましい。これはイベントマトリクスが大容量であることや、プラント操業中に機器の数が変化するなど柔軟性を求められる場合があるからである。もちろん、汎用的なリレーションDBを用いることも可能である。
【0021】
イベント解析部130は、ベイジアンネットワークを利用した機器イベント間の因果関係を、機器イベント発生の時間差を考慮して解析する機能部である。具体的には、イベントログ保存部120が作成したイベントマトリクスに基づいてベイジアンネットワークを構築する処理と、解析対象の機器イベントに対して、その原因となる機器イベントと予測される機器イベントとをベイジアンネットワークを用いて解析する処理と、解析結果を、解析結果出力部140を介して表示装置230等に出力する処理とを行なう。
【0022】
これらの処理を行なうため、イベント解析部130は、イベント発生順序決定部131、ベイジアンネットワーク生成部132、解析部133を備えている。各機能ブロックの処理内容については後述する。また、イベント解析装置100の内部あるいは外部には、生成したベイジアンネットワークを保存するためのベイジアンネットワークDB220が設けられている。
【0023】
ベイジアンネットワークは、因果関係を確率により記述するグラフィカルモデルの1つで、複雑な因果関係の推論を有向グラフ構造により表わすとともに、個々の変数の関係を条件つき確率で表す確率推論のモデルである。
【0024】
因果的な特徴を有向グラフによるネットワークとして表し、その上で確率推論を行なうことで、複雑でかつ不確実な事象の起こりやすさやその可能性を予測することができる。これまで蓄積された情報をもとに、起こり得る確率をそれぞれの場合について求め、それらを起こる経路に従って計算することで、複雑な経路を伴った因果関係の発生確率を定量的に表わすことが可能となる。
【0025】
このため、ベイジアンネットワーク利用することで、ある機器イベントの原因となる機器イベントを確率的に表わすことができるようになる。また、ある機器イベントが発生した後に発生し得る機器イベントを確率的に表わすことができるようになる。さらに、長期間のイベントログを使用してベイジアンネットワークを構築することで、季節変動や定期修繕などの要素も解析に含めることが可能となる。
【0026】
従来、ベイジアンネットワークは、K2アルゴリズムに代表されるように、複数事象の同時発生状況を調べることにより、事象間の因果関係を抽出することで構築するが、プラント内の制御システムにおける機器イベントの相互の関連性は、必ずしも同時に発生するものではなく、一定の遅れ時間を持っているものが多い。そこで、本実施形態では、K2アルゴリズムを改良し、機器イベント発生の時間差を考慮してベイジアンネットワークを構築するようにしている。
【0027】
次に、イベント解析装置100の動作について説明する。まず、イベントログ収集部110とイベントログ保存部120の動作について図2のフローチャートを参照して説明する。イベントログ収集部110は、所定の収集タイミングになると(S101:Yes)、制御システム、ヒストリアン等からイベントログを収集する(S102)。
【0028】
イベントログは、図3に一例を示すように、イベントが発生した日時、機器識別子(タグ)、イベント識別子を含んでいる。さらに、「操作」「アラーム」等のイベントタイプの情報を含めるようにしてもよい。本図の例では、2012年10月21日18時00分00秒に、機器「TAG1」で、アラーム「ALRM1」が発生し、同03秒に、機器「TAG2」に対して操作「OP1」を行なったこと等が示されている。
【0029】
イベントログを収集するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【0030】
イベントログを収集すると、イベントログ保存部120が、イベントログに基づいてイベントマトリクスを作成する(S103)。上述のように、イベントマトリクスは、縦または横の一方向にイベントログの最小時間単位の時間軸を展開し、他方向に機器イベントを並べたマトリクスを作成し、イベントログに含まれるイベントについて、発生した日時と発生した機器およびイベント種類とに対応するカラムにイベントが発生した旨を示す情報を入力した形式に変換したものである。
【0031】
図4は、図3に示したイベントログを変換したイベントマトリクスを示している。ここでは、イベントログの最小時間単位を1秒としているため、イベントマトリクスの縦方向は、1秒間刻みとなっている。また、横方向は、機器の識別子とイベント種類の識別子とを結合した機器イベントを並べるため、「TAG1:ALRM1」「TAG2:ALARM3」「TAG2:OP1」といったカラムが生成されている。実際には、横方向に、機器とイベント種類との組合わせ分のカラムが作成される。
【0032】
本例では、2012年10月21日18時00分00秒に、機器「TAG1」で、アラーム「ALRM1」が発生しているため、対応するカラムに機器イベントが発生した旨を示す情報として「1」が入力されている。同様に、2012年10月21日18時00分03秒に、機器「TAG2」に対して操作「OP1」が行なわれているため、対応するカラムに「1」が入力されている。なお、機器イベントが発生していないカラムには「0」が入力されている。
【0033】
イベントマトリクスを作成すると、イベントログ保存部120は、作成したイベントマトリクスをイベントログと共に、イベントログDB210に記録する(S104)。このとき、過去のデータも使用できるように、追加記録していくことが望ましい。そして、イベントログ収集部110が次の収集タイミングを待つ(S101)。
【0034】
次に、イベント解析部130がイベントマトリクスに基づいてベイジアンネットワークを構築する処理について説明する。イベント解析部130がベイジアンネットワークを構築する処理は、イベント解析部130のイベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理と、イベント解析部130のベイジアンネットワーク生成部132がベイジアンネットワークを生成する処理とに分けることができる。
【0035】
まず、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について、図5のフローチャートを参照して説明する。ベイジアンネットワークの構築には、親ノードになり得る候補を限定する必要がある。このため、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定するようにしている。なお、原因側の機器イベントを親ノードと称し、結果側の機器イベントを子ノードと称すものとする。
【0036】
イベントの発生順序を決定するためのアルゴリズムとして、特許文献1に記載されているように、相互相関関数の最大相関値に基づいた算出法がある。しかし、相互相関関数の計算には時間がかかるため、本実施形態では、以下に示すような手順で、より高速に機器イベントの発生順序を決定する。
【0037】
イベント解析部130のイベント発生順序決定部131は、所定の更新タイミングになると、イベントログDB210に記録されているイベントマトリクスを読み込む(S201)。すなわち、ベイジアンネットワークは、所定のタイミングで更新されることになる。ベイジアンネットワークを更新するタイミングは、一定周期、ユーザからの指示、所定のトリガー等とすることができ、あらかじめ定めておくようにする。
【0038】
次に、イベントマトリクスを所定の時間幅で切り出して、タイムウィンドウに分割する(S202)。タイムウィンドウの時間幅は、相互に関連する機器イベント間において想定される発生時間差の最大値とする。例えば、因果関係を有する機器イベント同士の発生時間差が1時間を超えることが無いと想定されるプラントであれば、タイムウィンドウの時間幅を1時間とすればよい。
【0039】
タイムウィンドウの時間幅は、解析対象のプラントや解析目的等に応じて変化させることができる。例えば、流量、圧力など遅れ要素が少ない機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を短くしたり、温度など一次遅れ要素が多い機器が中心となるプラントを解析する場合は、タイムウィンドウの時間幅を長くすることができる。
【0040】
イベントマトリクスをタイムウィンドウに分割すると、タイムウィンドウ毎に、機器イベントの発生順序を記録する(S203)。例えば、図6(a)に示すような順序で機器イベントが発生しているイベントマトリクス(本図では直線状に表現している。また、「機器イベント」を単に「イベント」と表記している。)を4つのタイムウィンドウに切り出したとすると、図6(b)に示すように、1番目のタイムウィンドウでは、機器イベントAが1番目に発生し、機器イベントCが2番目に発生した旨を記録する。同様に、3番目のタイムウィンドウでは、機器イベントA、機器イベントB、機器イベントCの順序で発生した旨を記録する。
【0041】
次に、機器イベントを組み合わせた機器イベントペアを作成し、各機器イベントペアについて発生順序をカウントする(S204)。機器イベントペアはすべての機器イベントを対象に作成する。発生順序のカウントは、例えば、機器イベントA、機器イベントBの機器イベントペアに注目したときは、両方の機器イベントが発生しているタイムウィンドウを対象に、機器イベントAが先に発生している回数、機器イベントBが先に発生している回数、同時に発生している回数をそれぞれカウントする。
【0042】
例えば、図6)に示した例では、図6(c)に示すように、機器イベントAと機器イベントとの機器イベントペアPair{A,B}について、機器イベントAが先に発生している回数は、機器イベントBが先に発生している回数とも1がカウントされる。機器イベントペアPair{A,C}について、機器イベントAが先に発生している回数は2、機器イベントが先に発生している回数は0、同時に発生している回数は1とカウントされる。また、機器イベントペアPair{B,C}について、機器イベントBが先に発生している回数が3とカウントされる。
【0043】
そして、カウント数に基づいて、機器イベントペア毎に発生順序を決定する(S205)。発生順序は、機器イベントペア毎に、最も回数の多い発生順序をその機器イベントペアの発生順とする。
【0044】
例えば、図6(d)に示すように機器イベントペアPair{A,C}について、機器イベントAが先に発生した回数が2回、機器イベントAと機器イベントCとが同時に発生した回数が1回、機器イベントCが先に発生した回数が0回となっているため、機器イベントAと機器イベントCの発生順序は、A→Cと決定する。
【0045】
なお、機器イベントペアPair{A,B}のように、機器イベントAが先に発生した回数と、機器イベントBが先に発生した回数とが等しい場合には、イベントマトリクスにおいて、最先に発生した機器イベントを先とした順序に決定する。本例では、図6(a)に示すように、機器イベントAが最先に発生しているため、機器イベントAと機器イベントBの発生順序は、A→Bと決定する。
【0046】
各機器イベントペアについて発生順序が決定すると、その順序に基づいて、機器イベント全部についての順序を決定する(S206)。順序の決定は、汎用的なソートアルゴリズム等を用いることができる。機器イベントの順序を決定することにより、各機器イベントについて、親ノード候補を限定することができる。すなわち、自身より順序が先の機器イベントが親ノード候補となる。
【0047】
以上、イベント発生順序決定部131が、イベントマトリクスに基づいて機器イベントの発生順序を決定する処理について説明した。
【0048】
次に、イベント解析部130のベイジアンネットワーク生成部132が、ベイジアンネットワークを生成する処理について説明する。本実施形態のベイジアンネットワークを生成する処理は、代表的なベイジアンネットワーク構築法であるK2アルゴリズムを改良したものであり、各機器イベントについて、機器イベントの発生順序決定により限定された親ノード候補の中から親ノードを選出する。親ノードを選出するための評価値としては、条件付き確率P(子ノード|親ノード)に基づいたMDL(Minimum Description Length)等の情報量基準を用いるものとする。
【0049】
図7は、ベイジアンネットワーク生成部132が、ベイジアンネットワークを生成する処理について説明するフローチャートである。
【0050】
時間差を持って相互に関連する機器イベントであっても、機器イベントの発生タイミング差は一定ではなくブレがあると考えられる。このため、イベントマトリクスの最小時間単位を基準にベイジアンネットワークを生成すると、機器イベント間の関連性が十分評価できない可能性がある。そこで、本実施形態では、ベイジアンネットワーク構築用にイベントマトリクスの時間単位をより長い時間単位にまとめる処理を行なうようにしている(S300)。この処理をイベントマトリクスのタイムブロック化と称する。以下の処理では、タイムブロック化したイベントマトリクスを用いて処理を行なうものとする。
【0051】
図8は、イベントマトリクスの最小時間単位1秒を、1分単位にタイムブロック化した例を示している。タイムブロック化により、タイムブロックの時間幅に発生した機器イベントの回数が表現される。なお、タイムブロック化を行なうことなく、イベントマトリクスの最小時間単位でベイジアンネットワークを構築するようにしてもよい。また、タイムブロックの単位時間は、解析対象のプラントや解析目的等に応じて任意に定めることができる。
【0052】
また、プラントに様々な機器が存在する場合には、単一の単位時間でなく、複数の単位時間を定めて、それぞれの時間幅に応じたベイジアンネットワークを構築して解析を行なうようにしてもよい。この処理を容易にするため、イベントマトリクスは、イベントログの最小時間単位で時間軸を展開している。
【0053】
ところで、ベイジアンネットワークの生成にあたり、従来のK2アルゴリズムをそのまま適用すると、タイムブロック化したイベントマトリクス内で同時に発生した機器イベントの条件付き確率を計算し、各機器イベントの親ノードを選出することになるが、機器イベントの発生時間差がタイムブロックの時間単位よりも大きい場合には、因果関係を評価することができなくなる。そこで、本実施形態では、機器イベント間の発生時間差を考慮するために、時間をシフトした仮想的な機器イベントを用いて各機器イベントの親ノードを選出する。
【0054】
ただし、機器イベントの発生時間は無制限にシフトさせるのではなく、相互に関連する機器イベント間において想定される発生時間差の最大値を限度として、機器イベントの発生時間をシフトする。この最大シフト幅は、タイムウィンドウの時間幅と一致する。また、シフトは、タイムブロックの単位時間で、シフト量0から最大シフト幅まで行ない、それぞれのシフト量で評価を行なうものとする。
【0055】
これらの処理について、詳細に説明すると、まず、処理対象の子ノードを設定する(S301)。処理対象の子ノードは、任意の順序で機器イベントの中から設定する。
【0056】
処理対象として設定された子ノードについて、親ノードがない場合の情報量基準による評価値を計算する(S302)。また、親ノード候補のリストを作成する(S303)。親ノード候補は、処理対象の子ノードよりも発生順番が前の機器イベントである。
【0057】
そして、親ノード候補毎に最大評価値を算出する(S304)。この処理の詳細について、図9のフローチャートを参照して説明する。
【0058】
まず、親ノード候補リストの中から任意の順序で評価対象親ノード候補PNを設定する(S3041)。始めに、シフト量Stを0として(S3042)、子ノードCNと親ノード候補PNとで評価値を算出する(S3043)。
【0059】
次に、シフト量を1つ増やして(S3045)、シフト量分前にシフトさせた子ノードCN(St)と親ノード候補PNとで評価値を算出する(S3043)。すなわち、子ノードがシフト量St分前に発生したと仮定した場合の評価値を算出する。
【0060】
シフト量分前にシフトさせた子ノードCN(St)と親ノードPNとで評価値を算出する処理(S3043)は、シフト量Stを増やしながら(S3045)、シフト量Stが最大になるまで繰り返す(S3044)。
【0061】
これにより、評価対象親ノード候補PNついて、評価値の最大値とその時のシフト量Stとを得ることができるため、最大評価値とその時の子ノードCNのシフト量Stとを記録する(S3046)。
【0062】
例えば、図11(a)におけるタイムブロック化したイベントマトリクスにおいて、機器イベントCを処理対象子ノードとし、機器イベントBを評価対象親ノードとしたときに、図11(b)は、機器イベントCをシフト量St=1とした場合に評価値が最大になったことを示している。
【0063】
以上の処理をすべての親ノード候補に対して繰り返す(S3047)ことで、親ノード候補毎に最大評価値を算出する処理(S304)が行なわれる。
【0064】
図7のフローチャートの説明に戻って、親ノード候補のうち、最大評価値が最も高い親ノード候補をその時のシフト量Stと共に抽出する(S305)。この評価値が、親ノード無しのときの評価値よりも高くなければ(S306:No)、処理対象子ノードをルートとして決定し、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0065】
抽出された親ノード候補の最大評価値が、親ノード無しのときの評価値よりも高ければ(S306:Yes)、抽出した親ノード候補を、処理対象の子ノードの親としてシフト量と共に選出する(S308)。
【0066】
親ノード候補リストの中に未選出の親ノード候補があるかどうかを調べ、親ノード候補がない場合(S309:No)は、その子ノードに対する処理を終了し、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0067】
親ノード候補リストの中に未選出の親ノード候補がある場合(S309:Yes)は、未選出親ノード候補毎に最大評価値を算出する(S310)。すなわち、既に選出された親ノードに、別の親ノード候補を加えた評価を行なう。この処理の詳細について図10のフローチャートを参照して説明する。
【0068】
まず、親ノード候補リストの未選出親ノード候補の中から評価対象親ノード候補PNを設定する(S3101)。始めに、シフト量Stを0として(S3102)、すなわち、実際の子ノードの発生時点で、子ノードCNと選出済親ノードと親ノード候補PNとで評価値を算出する(S3103)。このとき、選出済親ノードは、その親ノードが選出されたときの子ノードCNに対する相対シフト量を維持した状態で評価値を算出する。例えば、ある親ノードが選出されたときの子ノードCNのシフト量が3であれば、その選出済の親ノードは子ノードCNに対してシフト量−3の状態であるため、子ノードCNのシフト量0、選出済親ノードのシフト量−3、評価対象親ノード候補のシフト量0で評価値を算出する。
【0069】
次に、シフト量を1つ増やして(S3105)、シフト量分前にシフトさせた子ノードCNと選出済親ノードと評価対象親ノード候補PNとで評価値を算出する(S3103)。このとき、子ノードCNと選出済親ノードとはセットでシフトさせる。すなわち、選出済親ノードは、その親ノードが選出されたときの子ノードCNに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【0070】
例えば、親ノードが選出されたときのシフト量が3(相対シフト量−3)であれば、子ノードCNのシフト量は1、選出済親ノードのシフト量は−3+1=−2、評価対象親ノード候補PNのシフト量は0で評価値を算出する。選出済親ノードが複数の場合も、それぞれの選出済親ノードが選出されたときの、子ノードに対する相対シフト量を維持しながら子ノードとセットでシフトさせる。
【0071】
シフト量分前にシフトさせた子ノードCNと相対シフト量を維持した選出済親ノードと評価対象親ノード候補PNとで評価値を算出する(S3103)処理は、シフト量Stを増やしながら(S3105)、シフト量Stが最大になるまで繰り返す(S3104)。
【0072】
これにより、評価対象親ノード候補PNついて、評価値の最大値とその時の子ノードCNのシフト量Stとを得ることができるため、最大評価値とその時のシフト量Stとを記録する(S3106)。
【0073】
例えば、図11(c)は、シフト量St=1で機器イベントBが機器イベントCの親ノードとして選出されている場合に、機器イベントAを評価対象親ノード候補とした場合の例である。機器イベントBの選出時の機器イベントCに対する相対シフト量は−1であり、機器イベントCと相対シフト量−1の機器イベントBとをセットでシフト量St=3としたときに評価値が最大になったことを示している。この場合、機器イベントB自身のシフト量は3−1=2となる。
【0074】
以上の処理をすべての未選出親ノード候補に対して繰り返す(S3107)ことで、未選出親ノード候補毎に最大評価値を算出する処理(S310)が行なわれる。
【0075】
図7のフローチャートの説明に戻って、未選出親ノード候補のうち、最大評価値が最も高い親未選出ノード候補をその時のシフト量Stと共に抽出する(S311)。この評価値が、未選出親ノードを加える前の評価値よりも高くなければ(S306:No)、未選出親ノードを加えずに、次の処理対象子ノードを設定して(S314、S301)、上記の処理を繰り返す。
【0076】
抽出された親ノード候補の最大評価値が、未選出親ノードを加える前の評価値よりも高ければ(S312:Yes)、抽出した未選出親ノード候補を、処理対象の子ノードの親としてシフト量の情報を含めて追加する(S313)。
【0077】
親ノード候補リストの中に未選出の親ノード候補があれば(S309)、未選出親ノード候補毎に最大評価値を算出する処理(S310)以降を繰り返す。
【0078】
以上の処理を、未処理の子ノードが無くなるまで繰り返す(S314)ことで、ベイジアンネットワークがシフト量の情報を含んで構築される。構築されたベイジアンネットワークは、図12に示すように、従来のベイジアンネットワークと同様に、機器イベント間の因果関係を確率付き有向グラフで表わすことができる。さらに、親ノード選出時におけるシフト量に基づいて、子ノードと親ノードとの間の発生時間差を求めることができるため、機器イベント間の発生時間差も定量的に表わすことができる。
【0079】
以上では、K2アルゴリズムを改良したベイジアンネットワーク構築の手順を説明したが、本発明は、MWSTアルゴリズム等のK2アルゴリズム以外のベイジアンネットワーク構築法に適用することも可能である。
【0080】
次に、解析部133がベイジアンネットワークを用いて解析を行なう処理について図13のフローチャートを参照して説明する。
【0081】
解析部133は、ユーザから解析リクエストを受け付けると(S401:Yes)、ベイジアンネットワークを利用した解析を行なう(S402)。ユーザは、例えば、発生したアラームや頻発するアラーム、これから行なおうとする操作等を対象に、解析部133に解析リクエストを行なうことができる。また、プラントの効率改善等のためにオフラインで解析リクエストを行なうこともできる。
【0082】
ベイジアンネットワークを利用した解析では、確率推論を利用して解析対象の機器イベントの原因となる機器イベントと、今後発生し得る機器イベントとを確率も含めて算出することができる。代表的な確率推論アルゴリズムとして確率伝搬法がある。
【0083】
本実施形態では、機器イベントの原因を推定するために、ベイジアンネットワークの構造を参照して、観測された機器イベントからルートまで辿って、ルート位置にある機器イベントを主原因候補として抽出し、確率推論により主原因候補の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から主原因候補の発生時間を推定する。
【0084】
例えば、図12に示したベイジアンネットワークにおいて、機器イベントCが観測された場合、機器イベントCを引き起こす原因は、機器イベントAまたは機器イベントBである可能性があり、確率伝搬法に基づいた計算を行なうことで、3分前に機器イベントAが発生した確率は41%、1分前に機器イベントBが発生した確率は53%であると推定することができる。
【0085】
また、観測された機器イベントから将来起きうる機器イベントを予測するために、ベイジアンネットワークの構造を参照して、観測された機器イベントの子ノードおよび子孫ノードを今後起きうる機器イベントの候補として抽出し、確率推論により機器イベント候補毎の発生確率を計算する。さらに、機器イベント間の発生時間差情報に基づいて、観測された機器イベントの発生時刻から予測する機器イベントの発生時間を推定する。
【0086】
例えば、図12に示したベイジアンネットワークにおいて、機器イベントAが観測された場合、確率伝搬法に基づいた計算を行なうことで、3分後に機器イベントCが発生する確率は63%であると予測することができ、機器イベントBが観測された場合、確率伝搬法に基づいた計算を行なうことで、1分後に機器イベントCが発生する確率は81%であると予測することができる。
【0087】
ベイジアンネットワークを利用した解析の解析結果は、解析結果出力部140を介して表示装置230に表示したり、図示しない印刷装置を利用して印刷したり、電子データとして出力したりすることができる(S403)。
【0088】
出力する情報は、原因推定、事象予想に限られない。例えば、アラーム/操作感の因果関係およびそれらの発生時間差に基づいて定型的な一連操作のシーケンスを抽出して、解析結果として出力するようにしてもよい。抽出されたシーケンスは、定常的に繰り返される操作を自動化させるための情報となり、プラント運転の安定化、効率化を図ることできる。
【0089】
また、ベイジアンネットワークの構築により機器イベントの因果関係のみならず、機器イベントのグルーピングの補助に用いることもできる。具体的には、共連れアラーム等の同時発生の確率が高く連動性が高いと考えられるアラーム同士を組み合わせて扱うことで、プラントにおけるアラームの発生回数を減らすことも可能となる。
【0090】
また、機器イベントの因果関係に基づいて不要なアラームの発生原因を特定したり、重要アラームの発生確率や発生時刻を予報したり、アラーム発生時に、過去に行なった対応操作を提示できるようにもなる。さらには、アラーム発生からオペレータが対応するまでの猶予時間を把握することができるようにもなる。
【符号の説明】
【0091】
100…イベント解析装置、110…イベントログ収集部、120…イベントログ保存部、130…イベント解析部、131…イベント発生順序決定部、132…ベイジアンネットワーク生成部、133…解析部、140…解析結果出力部、210…イベントログDB、220…ベイジアンネットワークDB、230…表示装置、300…イベント解析装置、310…イベントログ収集部、320…イベントログ解析部、330…解析結果出力部、340…イベントログデータベース、350…表示装置、360…制御システム、370…ヒストリアン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14