IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社日立ハイテクソリューションズの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】異常検知装置および方法
(51)【国際特許分類】
   G05B 23/02 20060101AFI20240820BHJP
【FI】
G05B23/02 302Z
【請求項の数】 10
(21)【出願番号】P 2020175150
(22)【出願日】2020-10-19
(65)【公開番号】P2022066668
(43)【公開日】2022-05-02
【審査請求日】2023-06-09
(73)【特許権者】
【識別番号】301078191
【氏名又は名称】株式会社日立ハイテクソリューションズ
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】渋谷 久恵
(72)【発明者】
【氏名】岡部 淳
(72)【発明者】
【氏名】本屋 俊弘
(72)【発明者】
【氏名】鈴木 敦久
(72)【発明者】
【氏名】古賀 陸樹
【審査官】今井 貞雄
(56)【参考文献】
【文献】特開2018-112852(JP,A)
【文献】特開2016-200949(JP,A)
【文献】特開2019-070930(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
(57)【特許請求の範囲】
【請求項1】
環境内の設備に設けられた複数のセンサから複数のセンサ信号を入力し、
前記環境内の気温または気温以外のパラメータによる季節変動値の信号を入力し、
前記複数のセンサ信号を、前記季節変動値との相関が高い第1種センサ信号と低い第2種センサ信号とに分類し、
前記複数のセンサ信号から、時刻毎の特徴ベクトルを抽出し、
前記時刻毎の特徴ベクトルに基づいて、指定された学習期間での前記特徴ベクトルを学習データとして、時刻毎の異常測度を算出し、
前記異常測度を、しきい値と比較することにより、時刻毎の前記複数のセンサ信号で表される前記設備の状態が正常か異常かを判定し、
前記第1種センサ信号を用いて、前記判定された異常が、季節変動に起因するものかどうかを判別し、
前記季節変動に起因するものと判別した場合、前記設備の状態から前記季節変動の影響を除去した検知結果を作成し、出力する、
異常検知装置。
【請求項2】
請求項1記載の異常検知装置において、
前記判定された異常について、前記季節変動値と前記第1種センサ信号との関係での2次元の頻度分布を調べ、学習時の正常分布領域に基づいて、前記季節変動値と前記第1種センサ信号との相関が維持されている相関維持範囲を算出し、前記頻度分布のデータ値が、前記相関維持範囲内で前記正常分布領域に含まれている場合には「異常なし」ステータスと判別し、前記相関維持範囲内で前記正常分布領域の外にある場合には「季節変動」ステータスと判別し、前記相関維持範囲の外にある場合には「異常あり」ステータスと判別する、
異常検知装置。
【請求項3】
請求項2記載の異常検知装置において、
前記判定された異常について、前記季節変動値と前記第1種センサ信号との関係での2次元の頻度分布を表す分布密度画像を作成し、前記分布密度画像上に前記異常と判定されたデータ値をプロットした異常プロット画像を作成し、
画面に、前記異常プロット画像を表示する、
異常検知装置。
【請求項4】
請求項2記載の異常検知装置において、
前記季節変動の影響を除去した検知結果を作成する際に、前記「季節変動」ステータスに該当するデータ値を除去した検知結果を作成する、
異常検知装置。
【請求項5】
請求項1記載の異常検知装置において、
画面に、前記季節変動の影響を除去する前のデータと、除去した後のデータとを、切り替え操作に応じて表示する、もしくは並列に表示する、
異常検知装置。
【請求項6】
請求項1記載の異常検知装置において、
前記複数のセンサにおける2個のセンサの各組合せで、前記2個のセンサの関係での2次元の頻度分布を表す第1分布密度画像を作成し、
前記第1分布密度画像毎に、前記2個のセンサの組合せでの孤立度を算出し、
前記2個のセンサの組合せでの孤立度に基づいて、前記センサ毎の孤立度を算出し、
前記センサ毎の孤立度に基づいて、前記異常との関連性が高いセンサを特定し、
画面に、前記異常との関連性が高いセンサの情報を表示する、
異常検知装置。
【請求項7】
請求項1記載の異常検知装置において、
画面に、前記異常測度、前記しきい値、および前記設備の状態の判定結果または検知結果のグラフと、前記第1種センサ信号のグラフとを表示する、
異常検知装置。
【請求項8】
請求項1記載の異常検知装置において、
前記季節変動値は、気温、降水量、風向・風速、日射量、気圧、および湿度のうちの少なくともいずれか1つである、
異常検知装置。
【請求項9】
請求項1記載の異常検知装置において、
前記学習期間は、少なくとも1週間以上で、1年未満の期間とする、
異常検知装置。
【請求項10】
異常検知装置における異常検知方法であって、
前記異常検知装置が実行するステップとして、
環境内の設備に設けられた複数のセンサから複数のセンサ信号を入力するステップと、
前記環境内の気温または気温以外のパラメータによる季節変動値の信号を入力するステップと、
前記複数のセンサ信号を、前記季節変動値との相関が高い第1種センサ信号と低い第2種センサ信号とに分類するステップと、
前記複数のセンサ信号から、時刻毎の特徴ベクトルを抽出するステップと、
前記時刻毎の特徴ベクトルに基づいて、指定された学習期間での前記特徴ベクトルを学習データとして、時刻毎の異常測度を算出するステップと、
前記異常測度を、しきい値と比較することにより、時刻毎の前記複数のセンサ信号で表される前記設備の状態が正常か異常かを判定するステップと、
前記第1種センサ信号を用いて、前記判定された異常が、季節変動に起因するものかどうかを判別するステップと、
前記季節変動に起因するものと判別した場合、前記設備の状態から前記季節変動の影響を除去した検知結果を作成し、出力するステップと、
を有する、異常検知方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検知の技術に関し、プラント等の設備が出力する複数の時系列センサ信号に基づいて異常を早期に検知するための技術に関する。
【背景技術】
【0002】
例えば、電力会社では、ガスタービンの廃熱等を利用した地域暖房用温水の供給や、工場向けに高圧蒸気や低圧蒸気の供給を行っている。このようにガスタービン等を用いた各種プラント等の設備において、設備の不具合等またはその不具合等の兆候を異常として検知する異常検知や予防保全の技術は、社会への損害を最小限に抑えるためにも極めて重要である。対象となる設備は、ガスタービンや蒸気タービンのみならず、水力発電所での水車、風力発電所の風車、原子力発電所の原子炉、航空機や重機のエンジン、鉄道車両や軌道、エスカレータ、エレベータ、および各種の機器・部品のレベルも挙げられる。これらの設備でも、例えば搭載電池の劣化・寿命等による不具合が生じ得る。このため、上記異常検知や予防保全を必要とする設備には枚挙に暇がない。対象設備には、様々な物理情報を取得するための複数のセンサが設けられる。各センサは、時系列センサ信号を出力する。上記異常検知等のためのシステムは、センサ毎の監視基準に従って、対象設備の状態が正常か異常か等を判定・検知する。
【0003】
上記異常検知等に係わる先行技術例としては、特開2014―142697号公報(特許文献1)が挙げられる。特許文献1には、過去の正常データの学習に基づいて算出される異常測度をしきい値と比較することによって異常の有無を検知する方法が開示されている。さらに、特許文献1には、検知した異常について、対策・調査等の次の行動の決定を支援する情報を提示することを目的として、センサ信号の二次元の分布に基づいて異常に関連するセンサを特定する旨の方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2014―142697号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記異常検知等を行う従来技術では、設備を含む環境において、日本の四季のように、季節に応じて気温等が変動する季節変動がある場合に、季節変動の影響によって設備の状態を誤検知する可能性がある。特許文献1の異常検知方法では、学習した正常データから逸脱したデータを異常として検知する。そのため、この方法では、学習期間が1年未満の場合、季節変動に起因したセンサ信号値の逸脱を異常として検知してしまう。すなわち、設備の異常が実際には無いのに異常として検知してしまうという誤検知が発生する。また、この方法では、設備の異常の真の要因は抽出されない。
【0006】
従来の異常判定・検知のための学習では、例えば少なくとも1週間以上の期間を学習期間として学習処理が必要である。その学習期間を超える比較的長期の期間で、季節変動として気温等の変動がある場合、異常判定・検知に誤りが発生する場合がある。
【0007】
また、上記のような課題に対し、学習期間を長くすることで対処を図ることも一案である。すなわち、季節変動の影響を学習できるように、季節変動が反映される長さの期間(例えば1年以上)を学習期間とすることが挙げられる。しかし、学習期間がそのように長期となる場合、計算機の負荷も高くなり、データ量も多くなるので、現実的ではなく、季節変動の影響を除去できる高精度な異常判定・検知ができるようになるまでの準備期間が長くなってしまう。
【0008】
本発明の目的は、上記異常検知等の技術に関して、季節変動を考慮して異常判定・検知の誤りを低減できる技術を提供することである。
【課題を解決するための手段】
【0009】
本発明のうち代表的な実施の形態は、以下に示す構成を有する。実施の形態の異常検知装置は、環境内の設備に設けられた複数のセンサから複数のセンサ信号を入力し、前記環境内の気温または他のパラメータによる季節変動値の信号を入力し、前記複数のセンサ信号を、前記季節変動値との相関が高い第1種センサ信号と低い第2種センサ信号とに分類し、前記複数のセンサ信号から、時刻毎に特徴ベクトルを抽出し、指定された学習期間での前記特徴ベクトルを学習データとして、時刻毎の異常測度を算出し、前記異常測度を、しきい値と比較することにより、時刻毎の前記複数のセンサ信号で表される前記設備の状態が正常か異常かを判定し、前記第1種センサ信号を用いて、前記判定された異常が、季節変動に起因するものかどうかを判別し、前記季節変動に起因するものと判別した場合、前記設備の状態から前記季節変動の影響を除去した検知結果を作成し、出力する。
【発明の効果】
【0010】
本発明のうち代表的な実施の形態によれば、上記異常検知等の技術に関して、季節変動を考慮して異常判定・検知の誤りを低減できる。
【図面の簡単な説明】
【0011】
図1】本発明の実施の形態1の異常検知装置を含む、システムの構成を示す。
図2】実施の形態1で、サーバの構成例を示す。
図3】実施の形態1で、サーバの機能ブロック構成例を示す。
図4】実施の形態1で、複数のセンサのセンサリスト表を示す。
図5】実施の形態1で、異常検知装置が行う学習時の処理フローを示す。
図6】実施の形態1で、異常検知装置が行う異常検知時の処理フローを示す。
図7】実施の形態1で、学習時の異常測度算出処理のフローを示す。
図8】実施の形態1で、局所部分空間法による異常測度算出処理の説明図である。
図9】実施の形態1で、第1分布密度画像の作成処理のフローを示す。
図10】実施の形態1で、第1分布密度画像の作成方法の説明図である。
図11】実施の形態1で、第1分布密度画像の例を示す。
図12】実施の形態1で、第1分布密度画像の例を示す。
図13】実施の形態1で、第2分布密度画像の作成処理のフローを示す。
図14】実施の形態1で、第2分布密度画像の例を示す。
図15】実施の形態1で、異常検知処理のフローを示す。
図16】実施の形態1で、孤立度算出処理のフローを示す。
図17】実施の形態1で、孤立度算出方法の説明図である。
図18】実施の形態1で、関連センサ特定処理のフローを示す。
図19】実施の形態1で、季節変動判別処理のフローを示す。
図20】実施の形態1で、季節変動除去処理のフローのその1を示す。
図21】実施の形態1で、季節変動除去処理のフローのその2を示す。
図22】実施の形態1で、オフライン解析条件設定画面を示す。
図23】実施の形態1で、オンライン解析結果表示対象指定画面を示す。
図24】実施の形態1で、センサ分類結果表示画面を示す。
図25】実施の形態1で、異常検知結果全体表示画面を示す。
図26】実施の形態1で、異常検知結果全体表示画面を示す。
図27】実施の形態1で、関連センサ特定結果表示画面を示す。
図28】実施の形態1で、異常プロット画像の例を示す。
【発明を実施するための形態】
【0012】
<実施の形態1>
図1図28を用いて、本発明の実施の形態1の異常検知装置等について説明する。実施の形態1の異常検知方法は、実施の形態1の異常検知装置で実行されるステップを有する方法である。
【0013】
実施の形態1の異常検知装置は、設備の複数のセンサ信号に基づいて設備の状態(特に異常)を判定・検知する際に、季節変動が反映され得る、少なくとも1週間以上で1年未満の期間のセンサ信号を対象として、季節変動の影響を加味した判定・検知を行う。実施の形態1の異常検知装置は、センサ信号値と気温等の季節変動値との相関に基づいて、複数のセンサ信号値で表される設備の状態が、季節変動の影響によるものかを判断し、季節変動の影響によるものである場合、季節変動の影響を除去した結果を作成・出力する。
【0014】
実施の形態1の異常検知装置は、環境内の設備に設けられた複数のセンサから出力される時系列の複数のセンサ信号を入力・蓄積し、また環境内の気温の信号を入力し、入力の複数のセンサ信号を、気温との相関が高いものと低いものとに分類する。異常検知装置は、複数のセンサ信号から時刻毎に特徴ベクトルを抽出し、指定された学習期間の特徴ベクトルを学習データとして、時刻毎の異常測度を算出する。異常検知装置は、算出した異常測度を、しきい値と比較することにより、時刻毎の複数のセンサ信号で表される設備の状態が異常か正常かを判定する。異常検知装置は、気温との相関が高いセンサ信号を用いて、検出された異常が季節変動起因か否かを判別する。異常検知装置は、検出された異常が季節変動起因であった場合、設備の状態から季節変動の影響を除去した検知結果を作成・出力する。
【0015】
実施の形態1の異常検知装置によれば、気温との相関が高いセンサ信号を調べ、そのセンサ信号を用いて、検出された異常が季節変動起因か否かを自動的に判別する。そのため、この異常検知装置によれば、1年未満(例えば数週間から数か月)の比較的短い学習期間でも、設備の異常として、季節変動に起因する異常と季節変動起因ではない異常とを区別できる。さらに、この異常検知装置は、季節変動起因であった場合に、季節変動の影響を除去した検知結果を出力する。したがって、この異常検知装置によれば、設備に異常が無い場合には正常と判断して誤検知を防ぐことができ、異常が有る場合には季節変動起因以外の真の要因を見つけることができる。
【0016】
[システム]
図1は、実施の形態1の異常検知装置を含む、システムの構成を示す。図1のシステム(言い換えると異常検知システム)は、異常検知装置1と、異常検知を含む状態判定の対象である複数の設備101とを有する。異常検知装置1は、通信網9を介して、各設備101または通信デバイス150と接続される。それぞれの工場等の環境において、プラント等の設備101を有する。図1の例では、複数の環境として環境#1,#2,……を有するが、これに限らず、対象は1つの環境の1つの設備101でもよい。対象となる設備101は、例えばガスタービンや蒸気タービン等を含むプラントである。設備はプラントを含む概念である。
【0017】
環境内の設備101には、複数のセンサ5が設置されている。複数のセンサ5は、複数の種類の物理情報を検出するための複数の種類のセンサである。各センサ5は、設備101に内蔵されてもよいし、外付けされてもよい。各センサ5は、時系列のセンサ信号102を出力する。センサ5は、所定の物理情報の測定値を含む、設備101の状態を表すセンサ値を、時系列のセンサ信号102として出力する。また、環境内には、気温センサ6が設けられている。気温センサ6は、設備101の環境の気温を検出する。気温センサ6は、時系列での気温信号104を出力する。
【0018】
環境#1の設備101の複数のセンサ5は、吹き出しで示すように、例えば、複数の種類のセンサ5の数をm個とすると、センサS1,S2,……,Smを有する。なお、複数(m)のセンサ5{S1~Sm}と気温センサ6とを区別する。複数(m)のセンサ5{S1~Sm}の中には、対象箇所の温度を測定する温度センサを含んでもよい。
【0019】
図1の異常検知装置1(言い換えると異常検知システム)は、主に、サーバ10等の計算機で実装されている。以下ではサーバ10を異常検知装置10と呼ぶ場合がある。サーバ10には、ユーザU1が使用するPC等のクライアント端末20と通信で接続される。また、サーバ10は、各環境の設備101の通信デバイス50と通信で接続される。ユーザU1は、設備101の異常検知や予防保全に係わる管理者等の人である。
【0020】
通信デバイス50は、サーバ10との通信のために設けられている。なお、環境内にサーバ10等の計算機が設けられる場合、通信デバイス50を省略できる。通信デバイス50は、設備101の各センサ5からのセンサ信号102を取得し、また、気温センサ6からの気温信号104を取得する。そして、通信デバイス50は、複数のセンサ信号102および気温信号104を含むデータを、通信信号150として、サーバ10へ送信する。サーバ10は、各通信デバイス50から受信・取得したデータをデータベース(DB)に格納する。なお、通信デバイス50が、設定されたタイミングで自動的にサーバ10へ通信信号150を送信する形態でもよい。あるいは、サーバ10が通信デバイス50にデータを要求し、それに対する応答として通信デバイス50が通信信号150をサーバ10へ送信する形態でもよい。
【0021】
サーバ10には、異常検知処理機能が実装されている。サーバ10は、自身が保持するプログラム、または外部のプログラム配信サーバから配信されるプログラムに従って、異常検知処理機能を実現する。サーバ10は、設備101から取得したデータや、各種の処理情報等を、DBに格納し管理する。サーバ10は、ユーザU1のクライアント端末20に対し、設備101の異常等の状態に関する検知結果(出力情報)160等の情報を提供する。例えば、サーバ10は、検知結果160を含むWebページを、クライアント端末20に提供する。クライアント端末20は、そのWebページを表示画面に表示する。
【0022】
サーバ10は、例えば常時に通信デバイス10と通信接続してリアルタイムで処理を行ってもよい。これにより、サーバ10は、設備101の異常を検知した時に即時にユーザU1のクライアント端末20等の所定の宛先へ通知やアラートを行ってもよい。サーバ10は、ユーザU1から指示入力があった時、あるいは、予め設定された時など、所定の時間のみ、通信デバイス50と通信接続してもよい。
【0023】
なお、図1の構成例には限られない。異常検知装置1は、1台以上の計算機等で実装される。1つの環境内において1つの設備101に1つの異常検知装置1が設けられてもよい。通信デバイス50がその異常検知装置であってもよい。各環境に設けられた各異常検知装置が通信網9を介して連携して機能を実現してもよい。異常検知装置1は、複数台の計算機によって通信網9上のクラウドコンピューティングシステム等で実装されてもよい。サーバ10に対し、ストレージ装置やDBサーバ等が接続されてもよい。
【0024】
[異常検知装置(1)]
図2は、異常検知装置1を主に構成する図1のサーバ10のコンピュータシステムとしての構成例を示す。このコンピュータシステムは、サーバ10と、それに接続される入力装置205や表示装置206とを有する。サーバ10は、プロセッサ201、メモリ202、通信インタフェース装置203、入出力インタフェース装置204、およびそれらを相互に接続するバス等で構成されている。入出力インタフェース装置204には、入力装置205や表示装置206が接続されている。入力装置205は、例えばキーボードやマウス等である。表示装置206は、例えば液晶ディスプレイ等である。これに限らず、入力装置205や表示装置206は、サーバ10に一体とされた構成でもよいし、クライアント端末20を用いる場合には省略されてもよい。通信インタフェース装置203は、所定の通信インタフェースで、図1の通信デバイス50やクライアント端末20等との通信を行う。
【0025】
プロセッサ201は、例えばCPU、ROM、RAM等で構成され、サーバ10のコントローラを構成する。プロセッサ201は、ソフトウェアプログラム処理に基づいて、所定の機能として異常検知処理機能等を実現する。プロセッサ201は、通信デバイス50から通信信号150のデータを受信・取得し、そのデータに含まれるセンサ信号102や気温信号104を、センサ信号データD1や気温信号データD2としてメモリ202に格納する。プロセッサ201は、それらのデータに基づいて、各設備101の異常等の状態に関する判定・検知を行う。言い換えると、プロセッサ201は、それらのデータに基づいて、学習や解析を行う。プロセッサ201は、学習データD3や解析データD4をメモリ202に格納する。プロセッサ201は、異常等の状態の検知結果を、検知結果データ(言い換えると出力情報)D5として作成し、メモリ202に格納する。プロセッサ201は、各種の画面データも作成する。プロセッサ201は、検知結果データD5等に基づいた検知結果等の情報(例えばWebページやメール)を、クライアント端末20に送信する。
【0026】
メモリ202は、不揮発性記憶装置等で構成され、プロセッサ201等が使用する各種のデータや情報を記憶・保持する。メモリ202には、制御プログラム202A、設定情報202B、上記センサ信号データD1、気温信号データD2、学習データD3、解析データD4、および検知結果データD5等が格納される。制御プログラム201Aは、サーバ10の機能を実現するためのプログラムである。設定情報202Bは、制御プログラム201AやユーザU1の設定情報である。ユーザU1は、クライアント端末20またはサーバ10の入力装置205を操作し、クライアント端末20または表示装置206の画面を見ながら必要な情報を設定や確認することができる。
【0027】
図2のコンピュータシステムの構成例に限らず可能である。サーバ10は、外部から制御プログラム201A等のコンピュータプログラムが配信されてインストールされてもよい。コンピュータプログラムは、非一過性のコンピュータ読み取り可能な記録媒体に格納されてもよい。
【0028】
クライアント端末20は、同様に、CPU等によるプロセッサ、メモリ、通信インタフェース、入出力インタフェース、入力デバイス、表示デバイス、およびバス等で構成される。クライアント端末20は、プログラムの処理に基づいて、サーバ10の異常検知処理機能の一部としてクライアントアプリケーションとしての機能を実現する。クライアント端末20は、サーバ10に対し、HTTP等のプロトコルで通信し、サーバ10から検知結果160等のWebページを取得し、表示デバイスの画面に表示する。クライアント端末20は、画面のGUIに対するユーザU1の入力を受け付けて、入力情報をサーバ10に送信する。
【0029】
[異常検知装置(2)]
図3は、異常検知装置であるサーバ10の機能ブロック構成例を示す。図2のプロセッサ201によるプログラム処理等によって図3の機能ブロックが実現される。異常検知装置であるサーバ10は、データ蓄積部103、センサ分類部105、信号入力部106、特徴ベクトル抽出部107、異常測度算出部108、しきい値算出部109、分布密度画像作成部110、学習結果蓄積部111、異常検知部112、関連センサ特定部113、季節変動判別部114、季節変動除去部115、および検知結果出力部116を有する。
【0030】
サーバ10は、対象の設備101の複数のセンサ5からのセンサ信号102を、通信デバイス50を通じて、通信信号150として、例えば所定の時間毎に、言い換えると周期的に、入力・取得する。また、サーバ10は、対象の設備101の環境の気温センサ6からの気温信号103を、通信デバイス50を通じて、通信信号150として、所定の時間毎に、言い換えると周期的に、入力・取得する。
【0031】
サーバ10は、設備101の通信デバイス50からの通信信号150を略リアルタイムで入力・取得する。サーバ10は、通信信号150に基づいて取得した時系列信号であるセンサ信号102および気温信号104を、一旦、データ蓄積部103に蓄積する。データ蓄積部103はバッファとしても機能する。信号入力部106は、データ蓄積部103からセンサ信号102を入力する。センサ分類部105は、データ蓄積部103からセンサ信号102や気温信号104を入力する。信号入力部106やセンサ分類部105は、通信信号150から各信号を直接的に入力してもよい。
【0032】
センサ分類部105は、気温信号104の気温を参照し、また、設備101の複数のセンサ信号102の複数のセンサ値を参照する。センサ分類部105は、気温とセンサ信号との相関の判断に基づいて、複数のセンサ信号102を、気温との相関が高いセンサ信号(第1種センサ信号とする)と、気温との相関が低いセンサ信号(第2種センサ信号とする)とに分類する。この分類は、相対的なものである。
【0033】
信号入力部106は、設備101の複数のセンサ信号102を入力し、前処理等を行ってから、特徴ベクトル抽出部107へ送る。特徴ベクトル抽出部107は、入力の複数のセンサ信号102に基づいて、特徴ベクトルを抽出し、異常測度算出部108へ送る。異常測度算出部108は、予め指定された学習期間の特徴ベクトルを用いて、所定の時間毎(以下、各時刻と表現する場合もある)の特徴ベクトル毎に、異常測度を算出する。学習期間はユーザU1が設定できる。学習期間は、季節変動が反映される期間として、少なくとも1週間以上で、1年未満の期間とすればよい。しきい値算出部109は、異常測度算出部108による学習データの異常測度に基づいて、しきい値(Hとする)を算出する。しきい値Hは、異常判定用の1つ以上のしきい値であり、範囲等の条件を構成する。
【0034】
分布密度画像作成部110は、学習期間のセンサ信号102に基づいて、2個のセンサ5をペアとした総当りの組合せでの分布密度画像(第1分布密度画像とする)を作成し記憶する。また、分布密度画像作成部110は、センサ分類部105から、気温との相関が高い第1種センサ信号を取得し、横軸を気温とし縦軸をそのセンサ信号とした分布密度画像(第2分布密度画像とする)を作成する。
【0035】
学習結果蓄積部111は、特徴ベクトル抽出部107で抽出された学習期間の特徴ベクトル、しきい値算出部109で算出されたしきい値H、分布密度画像作成部110で作成された分布密度画像、およびその他の異常検知時に必要となるデータを、学習結果(図2では学習データD3)として保存する。
【0036】
異常検出部112は、異常測度算出部108からの異常検知対象期間での各特徴ベクトルの異常測度と、しきい値算出部109で算出されたしきい値とを比較することで、設備101の異常等の状態を判定・検出する。言い換えると、異常検出部112は、設備101の異常の有無、あるいは異常の可能性の度合い等を表す情報を出力する。
【0037】
関連センサ特定部113は、異常検出部112で異常を検出した場合、分布密度画像作成部110で作成された総当りの第1分布密度画像を用いて、異常区間毎に、異常関連センサを特定する。異常関連センサは、異常に関連すると推定されるセンサ5である。関連センサ特定部113は、異常関連センサについて、分布密度画像に異常をプロットした画像を作成する。
【0038】
季節変動判別部114は、分布密度画像作成部110で作成された横軸が気温である第2分布密度画像を用いて、異常区間毎に、検出された異常が季節変動に起因するものかどうかを判別する。言い換えると、季節変動判別部114は、異常を、季節変動起因の異常と、季節変動起因ではない異常とに区別し、季節変動判別結果として出力する。
【0039】
季節変動除去部115は、上記異常測度、異常有無、異常関連センサ特定結果、および季節変動判別結果等に基づいて、異常区間毎に、季節変動の影響を除去するように処理する。季節変動除去部115は、季節変動の影響の除去後の処理結果を、異常関連センサ情報等を含む検知結果として出力する。具体的には、除去前の異常関連センサのうち、季節変動起因と判別されたセンサについては、季節変動起因の旨の出力とともに除去され、季節変動起因以外の異常有無の情報が出力される。
【0040】
検知結果出力部116は、上記検知結果に基づいて、ユーザU1に対し出力するための検知結果データD5(図2)を作成し、例えば季節変動除去後の検知結果等を表示するWebページを、ユーザU1のクライアント端末20に提供する。検知結果出力部116は、例えば、クライアント端末20に、検知結果データD7に基づいたWebページを送信する。検知結果出力部116は、設備101の状態が異常である場合、即時にアラート等を所定の宛先へ出力してもよい。出力は、画面表示に限らず、所定の出力デバイスを用いて、音声出力やランプ発光等としてもよい。
【0041】
[用語説明]
用語について簡単に説明する。特徴ベクトル(feature vector)とは、複数のセンサ5による複数のセンサ値である各物理情報の測定値(図1での値s1,s2,……,sm)を、1つのベクトル値、言い換えると1次元配列として表現したものである。記号で表すと、特徴ベクトルをVとして、V={s1,s2,……,sm}である。
【0042】
異常測度(abnormally measure)は、注目する特徴ベクトル(言い換えると判定対象のベクトル)についての、指定された期間での特徴ベクトル(言い換えると判定基準となるベクトル)からの偏移量ないし距離のことである。異常区間とは、異常が連続して検知されるとみなす区間のことである。
【0043】
分布密度画像(distribution density image)とは、第1分布密度画像の場合、ペアとなる2個のセンサ5の組合せでの、2つのセンサ信号値の2次元ヒストグラムを画像で表したものである。この画像の各画素値は、頻度値に応じた画素値である。同様に、第2分布密度画像の場合、気温とセンサ信号値との組合せでの2次元ヒストグラムを画像で表したものである。
【0044】
孤立度(isolation index)とは、センサ信号値が学習データからどれだけ乖離しているかを表すパラメータであり、異常との関連性の強さを表すものである。孤立度が大きいほど、異常との関連性が強い。孤立度は、後述するが、複数の種類がある。単一のセンサ5(例えばSx)のセンサ信号値(例えばsx)の孤立度をIA(例えばIx)とし、2個のセンサ5のペア(例えばSx,Sy)の孤立度をIB(例えばIxy)とする。また、これらの孤立度I(IA,IB)の概念については、季節変動影響の除去の前後が区別される。
【0045】
異常関連センサ(関連センサともいう)とは、異常との関連性が大きいと推定されるセンサであり、具体的には、特徴ベクトルの異常測度がしきい値Hを超えることで異常として検知された原因となったセンサ5である。
【0046】
異常プロット画像とは、分布密度画像に重ねて、異常区間のセンサ信号値に対応する位置の画素に、正常を表す色(例えばグレイ)とは異なる異常を表す色(例えば赤色)をプロットした画像である。
【0047】
なお、実施の形態1の異常検知装置は、設備101の状態として、少なくとも正常(異常なし)か異常(異常あり)かを判定するが、これに限らず、設備101の状態は、3つ以上の状態や度合いとして判定されてもよい。
【0048】
[センサリスト表]
図4は、複数のセンサ5の複数のセンサ信号102をリストにして表形式で表したデータ例(センサリスト表と記載する場合がある)を示す。サーバ10は、このようなセンサリスト表400を保持する。図4のセンサリスト表400は、項目として、日時401、センサ402を有し、行毎に日時毎のデータが格納されている。センサ402項目は、各センサ5の項目を有し、項目毎にセンサ値が格納されている。図1等の複数のセンサ信号102は、物理特性の異なる複数の物理情報が所定の間隔の時間毎に取得される多次元の時系列信号である。
【0049】
センサ5の数(m)は、数百から数千といった多数になる場合もある。1種類のセンサ毎に複数個のセンサがあってもよい。センサ5の種類に応じて、例えば、シリンダやオイルや冷却水等の温度、オイルや冷却水の圧力、軸の回転速度、運転時間等がセンサ値として得られる。センサ値は、設備101の部分毎の出力や状態を表すのみならず、何かの状態をある値(例えば目標値)に制御するための制御信号となる場合もある。例えば、プラントのコントローラは、あるセンサ値を制御信号としてプラント制御を行う場合がある。サーバ10または通信デバイス50は、設備101のコントローラ等からそのようなセンサ値を取得してもよい。
【0050】
異常検知装置1の動作には、データ蓄積部103に蓄積されたセンサ信号102や気温信号104を用いてセンサ5を分類する「センサ分類」処理と、データ蓄積部103等に蓄積されたデータを用いて学習データの生成・保存を行う「学習」処理と、入力信号に基づいて学習データとの比較で設備101の異常を検知する「異常検知」処理との各フェーズがある。実施の形態1では、基本的に、「センサ分類」および「学習」は、「オフライン」処理として行われ、「異常検知」は、「オンライン」処理として行われる。「オフライン」処理は、設備101の状態について、一旦、学習および解析対象データを取得・記憶した後、まとめて異常判定・検知を実行することに相当する。「オンライン」処理は、設備101の状態について、予め学習した学習データに基づいて、略リアルタイムで異常判定・検知を実行することに相当する。ただし、「異常検知」を「オフライン」処理とすることも可能である。以下の説明では、これらを、大別して、「学習時」、「異常検知時」と記載する場合がある。
【0051】
[処理フロー(1)]
図5は、異常検知装置1の特にサーバ10が行う学習時の処理概要のフローを示す。図5のフローは、大別すると、(a)の学習時のセンサ分類処理500と、(b)の学習時の異常測度算出処理510とを有する。(a)の学習時のセンサ分類処理500において、まずステップS501で、サーバ10は、指定された学習期間でのセンサ信号102を入力する。ステップS502で、サーバ10は、学習期間での気温信号104のデータを入力する。ステップS503で、サーバ10は、気温とセンサ信号との相関を相関値として算出する。ステップS504で、サーバ10は、その相関に応じて、複数のセンサ5(例えば図1のS1~Sm)およびセンサ信号102(s1~sm)を第1種センサ信号値と第2種センサ信号値とに分類する。具体的には、サーバ10は、相関値が予め指定した基準値を超えたセンサ5を、気温との相関が高い第1種センサとして分類する。
【0052】
(b)の学習時の異常測度算出処理510において、まずステップS511で、サーバ10は、学習期間でのセンサ信号102を入力する。ステップS512で、サーバ10は、センサ信号102を用いて、特徴ベクトルを抽出する。ステップS513で、サーバ10は、特徴ベクトルについての異常測度を算出する。ステップS514で、サーバ10は、しきい値Hを算出する。ステップS515で、サーバ10は、2個のセンサのペア毎の総当り分布密度画像(第1分布密度画像)を作成する。そして、ステップS516で、サーバ10は、横軸が気温の分布密度画像(第1分布密度画像)を作成する。
【0053】
[処理フロー(2)]
図6は、異常検知装置1の特にサーバ10が行う異常検知時の処理概要のフローを示す。図6のフローは、(c)の異常検知時の異常判定処理600を有する。異常判定処理600において、まずステップS601で、サーバ10は、対象期間での検知対象のセンサ信号102を入力する。ステップS602で、サーバ10は、センサ信号102を用いて、特徴ベクトルを抽出する。ステップS603で、サーバ10は、特徴ベクトルについての異常測度を算出する。ステップS604で、サーバ10は、算出した異常測度を、図5のステップS514で算出されたしきい値Hと比較することにより、対象の設備101についての正常/異常の状態を判定する。ステップS605で、サーバ10は、異常区間を抽出する。ステップS606で、サーバ10は、孤立度として、異常区間毎に孤立度ベクトルを算出する。ステップS607で、サーバ10は、この孤立度に基づいて、異常関連センサを特定する。ステップS608で、サーバ10は、横軸を気温とし、縦軸をセンサ信号値とした異常プロット画像を作成する。ステップS609で、サーバ10は、季節変動の影響による異常であるかどうかの季節変動判別を行う。ステップS610で、サーバ10は、検知結果から季節変動の影響を除去する季節変動除去を行う。
【0054】
[処理詳細]
以下、図5の(b)の学習時の異常測度算出処理510と、図6の(c)の異常検知時の異常判定処理600とについて順に説明する。各処理の詳細なフローは、図7以降で示される。
【0055】
[学習時の異常測度算出処理の詳細]
図7は、図5の(b)の学習時の異常測度算出処理510の詳細処理例を示す。最初にステップS701で、サーバ10は、図3の信号入力部106において、データ蓄積部103に蓄積されたセンサ値のうち指定された学習期間のセンサ信号を入力する。ここでは、学習期間として、予めユーザU1によって、設備101が正常な状態であった期間が指定されるものとする。次にステップS702で、サーバ10は、図3の特徴ベクトル抽出部107において、入力されたセンサ信号を正準化(normalization)する。この正準化は、単位およびスケールの異なる複数のセンサ信号を同様に扱うために行う処理である。具体的には、この正準化では、各センサ信号の、学習期間の平均と標準偏差を用いて、平均が0、分散が1となるように、各センサ信号が変換される。サーバ10は、異常検知時に同じ変換ができるように、各センサ信号の平均と標準偏差を記憶しておく。あるいは、この正準化では、各センサ信号の、学習期間の最大値と最小値を用いて、最大が1、最小が0となるように、各センサ信号が変換される。あるいは、この正準化では、最大値と最小値の代わりに、予め設定した上限値と下限値を用いてもよい。この場合は、異常検知時に同様の変換ができるように、サーバ10は、各センサ信号の最大値と最小値、または上限値と下限値を、学習結果蓄積部111に記憶しておく。
【0056】
次に、ステップS703で、サーバ10は、図3の特徴ベクトル抽出部107において、各時刻の特徴ベクトルを抽出する。この特徴ベクトルは、正準化されたセンサ信号値をそのまま要素として並べた配列である。あるいは、この処理では、ある時刻(0とする)に対し、±1,±2,……といったウィンドウを設け、ウィンドウ幅(3,5,……)×センサ数(m)の特徴ベクトルとすることで、センサ信号の時間変化を表す特徴を抽出してもよい。例えばウィンドウ幅=3とは、(-1,0,+1)という3つの時刻による時間幅を指す。また、特徴ベクトルの抽出は、離散ウェーブレット変換(DWT:Discrete Wavelet Transform)を施して周波数成分に分解することとしてもよい。
【0057】
次に、サーバ10は、図3の異常測度算出部108において、学習期間の異常測度を算出する。このために、ステップS704で、サーバ10は、まず学習期間を複数の区間に分割する。この区間分割は、例えば1日毎の区間とする。あるいは、この区間分割は、化学プラントのようなバッチ処理の場合には、バッチ毎としてもよいし、加工装置の場合には、加工対象個体毎としてもよいし、MRIのような医療装置の場合には、検査対象者毎としてもよい。サーバ10は、ステップS705からのループで、抽出した全特徴ベクトルについて、以下の処理を繰り返す。ステップS706で、サーバ10は、複数の区間に対応して順次に選択した特徴ベクトルを注目ベクトルとして、その注目ベクトルと同じ区間の特徴ベクトルを除く学習期間のデータを、学習データとする。ステップS707で、サーバ10は、注目ベクトルと学習データとを用いて、異常測度を算出する。この異常測度の算出処理には、局所部分空間法(LSC:Local Sub-space Classifier)や投影距離法(PDM:Projection Distance Method)を用いることができる。
【0058】
[異常測度算出処理(1)]
図8は、上記ステップS707に関して局所部分空間法を用いた場合の異常測度算出処理の説明図を示す。局所部分空間法は、注目ベクトルqに対するk個の近傍ベクトルを選択し、選択したk個の近傍ベクトルが張るk-1次元のアフィン部分空間へ注目ベクトルqを投影した場合の投影距離を測る方法である。図8では、k=3個の近傍ベクトルx1,x2,x3によって、アフィン部分空間801が形成された場合を示す。グレイの四角点で示す近傍ベクトルx1~x3は、アフィン部分空間801の平面にある。白の四角点で示す他のベクトルは、アフィン部分空間801の平面に対し上下に距離を置いてある。丸点で示す注目ベクトルqは、アフィン部分空間801の平面に対し、上側に距離802を置いてある。そして、注目ベクトルqに最も近いアフィン部分空間801上の黒の点Xbが、投影点(基準ベクトルともいう)となる。注目ベクトルqから基準ベクトルXbまでの投影距離である距離802が、異常測度である。
【0059】
異常測度についての具体的な算出法を説明する。注目ベクトルqを評価データqとする。サーバ10は、評価データqとk個の近傍ベクトルxi(i=1,……,k)とから、評価データqをk個並べた行列Qと、近傍ベクトルxiを並べた行列Xとを作成する。サーバ10は、下記の式1から、両者の相関行列Cを求める。なお記号は転置行列を示す。
式1: C=(Q-X)(Q-X)
【0060】
次に、サーバ10は、下記の式2から、近傍ベクトルxiの重み付けを表す係数ベクトルbを計算する。
式2: b=(C-1)/(1 -1
【0061】
異常測度をdとすると、異常測度dは、ベクトル(q-Xb)のノルムまたはそのノルムの2乗により算出される。ノルムは、√(X1+……+Xm)のような演算である。
【0062】
なお、図8では、近傍ベクトル数としてk=3の場合を示したが、この数は、特徴ベクトルの次元数よりも十分小さければ、いくつでもよい。k=1の場合は、最近傍法と等価の処理になる。
【0063】
[異常測度算出処理(2)]
投影距離法を用いた場合の異常測度算出処理は以下のようになる。投影距離法は、選択された特徴ベクトルに対し独自の原点を持つ部分空間、すなわちアフィン部分空間(これは分散が最大の空間である)を作成する方法である。サーバ10は、何らかの方法で、注目ベクトルに対応する複数の特徴ベクトルを選択し、以下の方法でアフィン部分空間を算出する。
【0064】
まず、サーバ10は、選択された特徴ベクトルの平均μと共分散行列Σとを算出する。次に、サーバ10は、共分散行列Σの固有値問題を解いて、値の大きい方から予め指定したr個の固有値に対応する固有ベクトルを並べた行列Uを、アフィン部分空間の正規直交基底とする。数rは、特徴ベクトルの次元よりも小さく、かつ選択データ数より小さい数とする。あるいは、数rを固定した数とせず、固有値の大きい方から累積した寄与率が予め指定した割合を超えたときの値を数rとして用いてもよい。図8のように、注目ベクトルから最も近いアフィン部分空間上の点が基準ベクトルとなる。また、注目ベクトルから基準ベクトルを引いたもの(q-Xb)が、残差ベクトルとなる。その残差ベクトルのノルムまたはそのノルムの2乗が、異常測度となる。
【0065】
ここで、複数の特徴ベクトルの選択方法としては、予め指定した数十から数百の数の特徴ベクトルを注目ベクトルから近い順に選択する方法がある。また、学習対象の特徴ベクトルを予めクラスタリングしておき、注目ベクトルに最も近いクラスタに含まれる特徴ベクトルを選択する方法もある。他には、注目ベクトルqのk個の近傍ベクトルの平均ベクトルまでの距離を異常測度とする局所平均距離法や、ガウシアンプロセス等の方法を用いてもよい。
【0066】
図7で、サーバ10は、ループでの全特徴ベクトルについての異常測度算出処理後、ステップS708で、図3のしきい値算出部109において、しきい値Hを算出する。このしきい値Hは、異常検出部112に入力する異常測度との比較で、設備101の正常/異常の判定に用いられる。しきい値算出部109は、正常な学習データを異常と判定しないようなしきい値Hを算出する。言い換えれば、しきい値算出部109は、正常な学習データから得られる異常測度の最大値を、しきい値Hとして算出する。あるいは、しきい値算出部109は、正常な学習データを予め定めた割合より多く正常と判定するしきい値Hを算出してもよい。この場合は、正常な学習データから得られる異常測度をソートし、異常測度が低い方から前述の予め定めた割合に到達するところの異常測度を、しきい値Hとして採用する。
【0067】
図7の学習処理(学習時の異常測度算出処理)においては、サーバ10は、図3の学習結果蓄積部111に学習結果を保存しておく。学習結果として保存されるデータには、少なくとも、特徴ベクトル抽出のためのパラメータ、異常測度算出のためのパラメータ、センサ信号正準化のためのパラメータ、抽出した全特徴ベクトルデータ、異常判定用のしきい値を含む。特徴ベクトル抽出のためのパラメータおよび異常測度算出のためのパラメータは、学習時に指定されたものと共通である。センサ信号正準化のためのパラメータは、信号入力部107がステップS702の処理で算出した各センサ信号の平均、標準偏差、最大値、および最小値等である。
【0068】
[第1分布密度画像の作成処理]
次に、図3の分布密度画像作成部110による、図5のステップS515の総当り分布密度画像の作成処理の詳細を説明する。図9は、学習時の総当り分布密度画像作成処理のフローを示す。初めにステップS901で、サーバ10は、指定された学習期間のセンサ信号を入力する。サーバ10は、ステップS902からの第1ループにおいて、各センサ信号について、ステップS903~S906の処理を繰り返す。
【0069】
まずステップS903で、サーバ10は、データの最大値MAXと最小値MINとを算出する。次にステップS904で、サーバ10は、最小値MINから最大値MAXまでの範囲を、指定された数Nで分割する際の刻み幅Sを算出する。これは、S=(MAX-MIN)/Nで算出できる。次にステップS905で、サーバ10は、最小値MINから最大値MAXまでの範囲を外側に拡大し、二次元ヒストグラム算出の処理範囲を算出する。ここで範囲の拡大は、例えば最小値MINを(MIN-S×M)、最大値MAXを(MAX+S×M)に変更することが挙げられる。Mは、予め決められた1以上の整数である。
【0070】
次にステップS906で、サーバ10は、学習期間の全データについて、次の式3により、センサ信号値(Fとする)からビン番号(BNOとする)を算出する。ただし、下記の関数INT(X)は、Xの整数部を表す。ビン番号BNOを用いることで、各センサ信号値Fは、最小値0から最大値Nまでの(N+1)段階の整数値に変換される。
式3: BNO=INT(N*(F-MIN)/(MAX-MIN))
【0071】
次に、サーバ10は、複数のセンサ5から2個のセンサ5の組合せをペアとして取り出し、それぞれのセンサ信号の組合せに基づいて、総当りでの第1分布密度画像を作成する。すなわち、サーバ10は、ステップS907からの第2ループで、全てのセンサ5の組合せ(全ペア)について、ステップS908~S910の処理を繰り返す。ここで、2個のセンサ5の組合せの中には、同一のセンサ5の組合せを含めるとする。従って、センサ組合せ数(対応する繰り返し数)は、センサ数をmとすると、m×(m+1)/2となる。
【0072】
まずステップS908で、サーバ10は、二次元ヒストグラム算出用の二次元配列を確保し、その配列の全ての要素に0をセットする。この配列のサイズはNであるとする。ステップS909で、サーバ10は、学習期間の全データについて、ペアの2個のセンサ信号のビン番号BNOに対応する配列の要素に1を加算する。すなわち、サーバ10は、一方のセンサ信号のビン番号を列の要素に対応させ、他方のセンサ信号のビン番号を行の要素に対応させる。この処理により、2個のセンサ5による信号の二次元ヒストグラムが算出される。ステップS910で、サーバ10は、このヒストグラムを画像に変換して保存する。この変換方法については後述する。なお、上記ビン番号は、ヒストグラムおよび画像を作成する際の単位であり、センサ信号値から区分・変換された値である。この単位は、広義ではセンサ信号値を用い、実装例としてビン番号を用いる。
【0073】
[センサ信号と第1分布密度画像]
図10は、時系列センサ信号と第1分布密度画像との関係を表す説明図である。図10では、左側のセンサXとセンサYとの2個のセンサ5の信号について、右側の分布密度画像1000では、横軸をセンサXとし、縦軸をセンサYとしてとって示している。分布密度画像1000は、総当り分布密度画像の1つであり、言い換えると2次元ヒストグラムである。この分布密度画像1000の各画素値は、センサXの信号値とセンサYの信号値との組の頻度値であり、2次元分布での密度に相当する。頻度値は、画素値として例えばグレイ階調で表される。このような分布密度画像が、センサ5の組合せ(対応するペア)毎に作成される。
【0074】
[画像変換方法(S910)]
図9のステップS910の分布密度画像作成における画像変換方法の例を説明する。初めに、サーバ10は、配列要素の最大値、すなわち最大頻度を求める。画像サイズは配列サイズと同じとし、各要素の値から対応する座標の画素値を、例えば、255×[配列の要素値]/[最大頻度]とする。数値255は、画素値を8ビットで表す場合の最大値であり、この値を用いれば、そのままビットマップ形式で保存できる。あるいは、画素値を255×LOG([配列の要素値]+1)/LOG([最大頻度]+1)としてもよい。ただし、関数LOG(X)は、Xの対数を表す。このような変換式を用いれば、最大頻度が大きい場合でも、非ゼロの頻度に非ゼロの画素値を対応させることができる。
【0075】
[第1分布密度画像の例]
図11図12は、総当り分布密度画像(第1分布密度画像)の例を示す。この分布密度画像は、横軸に一方のセンサ5であるセンサAの信号値(対応するビン番号)をとり、縦軸にもう一方のセンサ5であるセンサBの信号値(対応するビン番号)をとった画像である。図9の処理により得られる画像は、二次元の特徴空間上で密度が高いところが高い画素値で表されている。ここでは、この分布密度画像は、画素値の0を白、255を黒としたグレイスケール画像である。この分布密度画像は、2つのセンサ5の相関の強さに応じて、画像の分布密度の形状等のパターンが変化する。図11は、相関が強い場合の画像例であり、図12は、相関が弱い場合の画像例である。図11の画像では、密度が高い領域が線形の形状となっており、それに対し、図12の画像では、密度が高い領域が広く分布している。
【0076】
分布密度画像の作成方法は上記方法に限定されない。例えば、単純な頻度分布ではなく、1個のデータにガウス分布や他の重みつきフィルタを割り当ててそれを重畳する方法でもよい。あるいは、上記方法で得られた画像に所定サイズの最大値フィルタをかける方法や、平均フィルタ、その他の重みつきフィルタをかける方法でもよい。また、8ビットに限らず、16ビット等に変換する方法でもよい。また、必ずしも画像形式で保存する必要はなく、二次元配列を変換せずにバイナリあるいはテキスト形式で保存する方法でもよい。
【0077】
[第2分布密度画像の作成処理]
次に、図13は、図3の分布密度画像作成部110による学習時における横軸が気温の第2分布密度画像の作成処理(図5のステップS516)のフローを示す。図13のステップS1302~S1305の処理は、図9のステップS903~S906の処理と同じ方法で行われる。初めにステップS1301で、サーバ10は、指定された学習期間の気温信号を入力する。ステップS1302で、サーバ10は、気温信号の最大値MAXと最小値MINとを算出し、ステップS1303で、最小値MINから最大値MAXまでの範囲を指定された数Nで分割する際の刻み幅Sを算出する。次にステップS1304で、サーバ10は、最小値MINから最大値MAXまでの範囲を外側に拡大し、二次元ヒストグラム算出の処理範囲を算出する。次にステップS1305で、サーバ10は、学習期間の全データについて、センサ信号値(F)からビン番号(BNO)を算出する。これらの処理により、気温データは、最小値0から最大値Nまでの(N+1)段階の整数値に変換される。
【0078】
次に、ステップS1306からのループでは、サーバ10は、ステップS504で分類された気温との相関が高い第1種センサ信号について、ステップS1307~S1309の処理を繰り返し、それぞれのセンサ信号と気温との組合せに基づいて分布密度画像を作成する。
【0079】
まずステップS1307で、サーバ10は、二次元ヒストグラム算出用の二次元配列を確保し、全ての要素に0をセットする。配列のサイズはNとする。ステップS1308で、サーバ10は、学習期間の全データについて、気温およびセンサ信号のビン番号に対応する配列の要素に1を加算する。すなわち、気温のビン番号は列の要素に対応させ、センサ信号のビン番号は行の要素に対応させる。ここで、センサ信号のビン番号は、図9のステップS906で算出されたものを用いる。ステップS1309で、サーバ10は、上記処理により得られる二次元ヒストグラムを画像(第2分布密度画像)に変換して保存する。この変換方法は、ステップS910と同様である。最後にステップS1310で、サーバ10は、相関維持の範囲を決定・設定する。
【0080】
[第2分布密度画像の例]
図14は、横軸が気温である第2分布密度画像の例を示す。この画像1400の縦軸は、気温との相関が高いセンサ5の信号値(対応するビン番号)である。そのため、この画像1400では、密度が高いグレイで表される正常データは、傾斜のある帯上に分布している。相関維持とは、正常データ分布の長手方向(本例では図示の矢印のような右斜め上方向)の延長上の範囲内にデータがあることを指す。破線の矩形で表した範囲1401は、その相関維持の範囲である。サーバ10は、横軸が気温である第2分布密度画像に基づいて、このような相関維持の範囲1401を自動的に算出する。相関維持範囲の算出方法は、例えば、元のデータから最小二乗法による直線近似やハフ変換で中心の軸を算出し、全データに対して予め決められた比率のデータが含まれるように左右に広げていく方法が適用できる。あるいは、軸を数度の範囲で回転させて、同様のことを行い、最も幅の狭いものを選ぶ方法が適用できる。
【0081】
変形例として、異常検知装置1は、分布密度画像に対し相関維持範囲をユーザU1が設定できるようにしてもよい。例えば、ユーザU1は、クライアント端末20の画面に表示される図14のような分布密度画像を確認し、その画像上に、マウス等の操作によって、矩形や楕円等の基本図形のシフトや拡大や回転、任意の点や線の指定等に基づいて、相関維持範囲を設定する。
【0082】
図9および図13の処理においては、サーバ10は、二次元配列のサイズおよびステップS904,S905,S1303,S1304で算出した各センサ信号および気温の処理対象範囲と刻み幅を、学習結果蓄積部111に記録しておく。また、サーバ10は、第1分布密度画像および第2分布密度画像と、ステップS1310で設定した相関維持範囲とについても、学習結果蓄積部111に記録しておく。
【0083】
[異常検知時の異常判定処理]
次に、図6の(c)の異常検知時の異常判定処理600の詳細について、図15図21を用いて説明する。図15は、図3の異常検出部112による図6の異常検知処理(ステップS601~S604)の詳細のフローを示す。ここでは、サーバ10は、データ蓄積部103に蓄積されたデータのうち指定された期間のデータ、または新たに観測されたデータについて、特徴ベクトル抽出部107による特徴ベクトルの抽出(S602)、異常測度算出部108による異常測度の算出(S603)を行う。そして、サーバ10は、その異常測度をしきい値算出部109によるしきい値Hと比較して、異常検出部112による正常/異常の判定を行う(S604)。
【0084】
ステップS1501で、特徴ベクトル抽出部107は、学習結果蓄積部111のDBから学習時に保存した学習結果を読み出す。その際、学習時の異常測度やしきい値に基づいて、ユーザU1が適切な処理番号を選択し、サーバ10は、その処理番号に対応付けられた学習結果を用いる。ステップS1501で、信号入力部106は、データ蓄積部103または設備101からのセンサ信号102を入力し、ステップS1503で、センサ信号毎に正準化する。この際には、図7のステップS702での正準化の処理に用いたパラメータが用いられる。次にステップS1504で、特徴ベクトル抽出部107は、選択したセンサ信号から、図7のステップS703の処理と同じ方法で特徴ベクトルを抽出する。
【0085】
次にステップS1505からのループでは、サーバ10は、全特徴ベクトルについて、ステップS1506~S1508の処理を行う。ステップS1506で、異常測度算出部108は、注目ベクトルと学習データとを用いて、異常測度を算出する。この処理は、図7のステップS707と同じ方法で行われるが、学習データを全て用いる。ステップS1507で、異常検出部112は、ステップS1501で読み出したしきい値Hと、ステップS1506で算出した異常測度とを比較する。異常検出部112は、異常測度がしきい値H以下である場合には、設備101の状態を「正常」と判定し、異常測度がしきい値Hより大きい場合には、「異常」と判定する。続いてステップS1508で、サーバ10は、残差ベクトルを算出する。残差ベクトルとは、注目ベクトルと異常測度算出の際の基準ベクトルとの差のベクトルの各要素を2乗したものとする。図8の局所部分空間法の場合では、注目ベクトルがq、基準ベクトルがXb、差のベクトルが(q-Xb)である。異常測度は、差のベクトル(q-Xb)のノルムの2乗と定義する。この定義により、残差ベクトルの要素の和が異常測度となる。残差ベクトルは、この後の季節変動除去処理で用いられる。
【0086】
[孤立度算出処理]
図16は、図3の関連センサ特定部113による図6の孤立度算出処理(ステップS605~S607)の詳細のフローを示す。ここでは、サーバ10は、異常が連続して検知されたとみなす異常区間を抽出し、異常区間毎に、学習データから乖離していることを表す孤立度ベクトルを算出し、この孤立度ベクトルに基づいて異常関連センサを特定する。
【0087】
ステップS1601で、異常検出部111は、処理対象のセンサ信号を入力し、ステップS1602で、全データについて、各センサ信号に対応するビン番号を算出する。この算出の際には、サーバ10は、図15のステップS1501で読み出された分布密度画像作成のパラメータ、具体的には、二次元配列のサイズ、センサ毎の処理対象範囲、および刻み幅を用いて、図9のステップS906と同様の方法で、ビン番号を算出する。次にステップS1603で、異常検出部111は、算出した異常測度データを入力し、ステップS1604で、この異常測度データに基づいて、異常が連続して検知されている異常区間を抽出する。この異常区間を算出する際には、予め指定された長さの許容間隙以下の中断(異常が検知されないこと)については、連続している異常区間とみなされる。逆に、日付が変わる等、予め決められたデータの切れ目では、異常検知が続いていたとしても別の異常区間とする。
【0088】
次にステップS1605からの第1ループでは、サーバ10は、各異常区間について、ステップS1606~S1613の孤立度算出および関連センサ特定の処理を繰り返す。まずステップS1601で、サーバ10は、2個のセンサ5の全ての組合せについての孤立度を0にリセットする。ペアの一方のセンサをiで表し、ペアのもう一方のセンサをjで表すとする。ステップS1607からの第2ループでは、サーバ10は、各センサiの全てについて、孤立度(Iiとする)を算出する。ステップS1608からの第3ループでは、サーバ10は、各センサjの全てについて、孤立度(Ijとする)を算出する。各孤立度(Ii,Ij)は、前述の単一のセンサ5の単位での孤立度である。
【0089】
第2ループおよび第3ループの各ループでは、サーバ10は、ステップS1609からの第4ループで、着目する異常区間内の全データについて処理を行う。ステップS1610で、サーバ10は、着目するペアのセンサi,jの分布密度画像から、ステップS1602で算出した各センサi,jのビン番号に対応する座標の画素値(対応する頻度値)を読み込む。ステップS1611で、サーバ10は、画素値が0である場合、着目するセンサi,jの孤立度(Iijとする)に1を加算する。このセンサi,jの孤立度(Iij)は、前述のペアの単位での孤立度である。
【0090】
上記処理により、2個のセンサ5の各組合せについて、着目する異常区間の孤立度が算出される。孤立度は、二次元ヒストグラム上で対応する2個のセンサ5の信号値の組合せが学習データに無い場合に高くなる。ここで、第4ループと、第2ループおよび第3ループとは、逆の順番としてもよい。
【0091】
ステップS1612で、サーバ10は、2個のセンサ5の各組合せの孤立度(Iij)に基づいて、1個のセンサ5毎の孤立度(Ii,Ij)を算出する。例えば、センサiの孤立度Iiは、センサiを固定して、全てのセンサjについて、センサi,jの孤立度(Iij)を合計することにより、算出される。センサjの孤立度Ijは、センサjを固定して、全てのセンサiについて、センサi,jの孤立度(Iij)を合計することにより、算出される。サーバ10は、各センサ5の孤立度(Ii,Ij)を全センサ分まとめたものを、孤立度ベクトルとする。例えば、センサS1~Smについて、孤立度ベクトル={I1,I2,……,Im}のようになる。
【0092】
次にステップS1613で、サーバ10は、上記孤立度ベクトルに基づいて、異常関連センサを特定する。異常が検知されるのは、評価対象データが学習データから乖離しているためである。このことから、サーバ10は、異常検知された時刻のセンサ信号の孤立度が高くなるセンサ5を、異常関連センサとして抽出する。
【0093】
上記処理中の孤立度の算出(S1610,S1611)と異常関連センサの特定(S1613)との詳細について以下に説明する。
【0094】
[孤立度]
図17は、より具体的な孤立度算出方法についての説明図である。図17の(A)は、異常検知時に例えば3個のセンサS1~S3から入力するセンサ信号等を示す。丸印は、ある時刻でのセンサ信号値である。サーバ10は、各センサ信号の特徴ベクトルから異常測度を算出し、その異常測度がしきい値Hを超えた時点(例えば破線で示す時刻)を「異常」として判定・検知する。図17の(B)は、学習データから予め作成した第1分布密度画像であり、2個のセンサ5の全組合せについて、学習データのセンサ信号値分布を画素値で表している。横軸をセンサiの信号値、縦軸をセンサjの信号値とすると、本例では、図示のように、i=1~3、j=1~3で、3×3=9通りの組合せの画像{画像g11,g12,……,g33}が存在する。
【0095】
サーバ10は、(A)で得た異常検知時の各センサS1~S3の信号値を、(B)の該当する分布密度画像の該当する座標位置にプロットする。サーバ10は、プロット位置において画素値を読み込み、画素値が0である場合には、そのセンサ(i,j)の組合せの孤立度Iijを1とする。×印は、孤立度Iijが1である箇所を示す。例えばセンサ(i=1,j=3)の組合せでの画像G13は、プロット位置で画素値が0であるため、孤立度Iijが1である。サーバ10は、画素値が0以外の場合には、丸印で示すように孤立度Iijを0とする。サーバ10は、このようにしてセンサ5毎に組合せの相手を変えた孤立度Iijを合計することで、センサ5毎の孤立度(例えばI1,I2,I3)を算出する。例えば、センサS1の孤立度I1は、I11+I12+I13=0+0+1=1となる。同様に、センサS2の孤立度I2が0、センサS3の孤立度I3が1となる。本例では、センサS1とセンサS3との組合せ(I13,I31)のみにおいて孤立している、すなわち孤立度が1(×印)である。
【0096】
[異常関連センサ特定]
図18は、上記孤立度に基づいて異常関連センサを特定する処理のフローを示す。このフローは、ステップS1801からの第1ループで、所定の回数または条件を満たすまでの繰り返し処理である。最初にステップS1802で、サーバ10は、孤立度が最大のセンサ5、すなわち図16のステップS1612で算出した孤立度ベクトルのうちの最大要素(センサ毎の孤立度が最大のもの)に対応するセンサ5を探索する。探索の結果見つかったセンサ5、言い換えると孤立度最大センサを、ここではセンサAとする。
【0097】
次にステップS1803で、サーバ10は、センサAとの組合せで孤立度(Iij)が最大となる他方のセンサ5を探索する。探索の結果見つかったセンサ5を、ここではセンサBとする。ここでの探索対象は、図16のステップS1607の第2ループの処理終了時に算出されている2個のセンサ5の組合せに対する孤立度(Iij)である。また、見つかったセンサA,Bの組合せでの孤立度(Iij)の値を、ここではISOとする。
【0098】
ステップS1804で、サーバ10は、ISOが0より大きい場合(Y)にはステップS1805に進み、そうでない場合(N)、すなわちISOが0である場合には、第1ループを抜けて、本フロー処理を終了する。ステップS1805で、サーバ10は、センサAとセンサBを、異常関連センサとして抽出する。また、ステップS1806で、サーバ10は、センサAおよびセンサBのそれぞれの第2分布密度画像に、異常データをプロットした画像を、異常プロット画像として作成する。その際、サーバ10は、画像において正常データがグレイスケールで表されているのに対し、異常データについては区別しやすいように例えば彩度の高い色(例えば赤色)で表す。また、サーバ10は、正常データと重なりの無い画素と重なりの有る画素とについては、異なる色で表現する。
【0099】
次にステップS1807からの第2ループでは、サーバ10は、全てのセンサiについて、ステップS1808~S1811の処理を繰り返す。ステップS1808で、サーバ10は、センサiの孤立度(Ii)から、センサi,Aの組合せの孤立度(IiA)を差し引く。またステップS1809で、サーバ10は、センサAとセンサBが異なる場合(Y)にはステップS1810に進み、同じである場合(N)にはステップS1810を省略する。
【0100】
ステップS1810で、サーバ10は、センサiの孤立度(Ii)からセンサi,Bの組合せでの孤立度(IiB)も差し引く。さらにステップS1811で、サーバ10は、センサAとセンサBの孤立度を0とする。
【0101】
ステップS1807~S1811の処理は、ステップS1805で異常関連センサとして抽出したセンサA,Bの影響を取り除くために行われる処理である。以後、サーバ10は、第1ループを同様に繰り返し、残りの孤立度ベクトルのうちで孤立度が最大となるセンサA,Bを新たな異常関連センサとして抽出する。このようにして、複数の異常関連センサを漏れなく抽出できる。
【0102】
[季節変動判別処理]
図19は、図3の季節変動判別部114による季節変動判別処理(図6のステップS608~S609)の詳細のフローを示す。この処理は、ステップS1901からの第1ループで、異常区間毎に、ステップS1902からの第2ループで、気温との相関の高いセンサについて、繰り返す処理である。初めにステップS1903で、サーバ10は、図13のステップS1309で作成した横軸が気温の第2分布密度画像を取得する。ステップS1904で、サーバ10は、その第2分布密度画像に、異常データをプロットして、横軸が気温である異常プロット画像を作成する。続いてステップS1905で、サーバ10は、相関の状態に基づいて、以下の3つのステータスのいずれであるかを判別する。具体的には、サーバ10は、異常データが正常データ分布に含まれている場合には、「異常なし」ステータスと判別する。サーバ10は、異常データが、正常データ分布の外で、ステップS1310で設定した相関維持範囲内に含まれている場合には、「季節変動」ステータスと判別する。サーバ10は、異常データが、相関維持範囲の外である場合には、「異常あり」ステータスと判別する。「季節変動」ステータスは、季節変動起因による異常であることを表す。
【0103】
図14の例で言うと、画像1400のうち、点Aは、グレイで示す正常データ分布に含まれているので、「異常なし」ステータスとされる。点Bは、相関維持の範囲1401の外にあるので、「異常あり」ステータスとされる。点Cは、相関維持の範囲1401のうち、正常データ分布以外の領域に含まれているので、「季節変動」ステータスとされる。サーバ10は、複数のセンサ信号の組合せによる設備101の状態について、図3の異常検出部112で判定した異常有無(「正常」/「異常」)を、さらに、「季節変動」ステータスを含む3つのステータスに判別する。
【0104】
[季節変動除去処理]
図20および図21は、図3の季節変動除去部115による季節変動除去処理(図6のステップS610)の詳細のフローを示す。この処理は、ステップS2001からの第1ループで、異常区間毎に、季節変動の影響を除去した孤立度の算出、異常関連センサの特定、異常測度の算出、および異常判定を繰り返す処理である。サーバ10は、季節変動の影響を除去した検知結果を作成する際に、「季節変動」ステータスに該当するデータ値を取り除いた検知結果を作成する。
【0105】
ステップS2002で、サーバ10は、季節変動の影響を除去した孤立度の算出のために、図16のステップS1607の第2ループの終了までに作成された2個のセンサ5の全ての組合せの孤立度(Ii,Ij)を取得する。ステップS2003からの第2ループで、サーバ10は、全てのセンサiについて、ステップS2004~S2008の処理を繰り返す。まずステップS2004で、サーバ10は、センサiの孤立度を0とする。次にステップS2005で、サーバ10は、センサiが、図19のステップS1905で「季節変動」ステータスと判別されていない場合(Y)、すなわち「異常なし」または「異常あり」と判別されている場合、ステップS2006に進み、判別されている場合(N)、第2ループの最後に進む。ステップS2006からの第3ループで、サーバ10は、全てのセンサjについて、処理を行う。ステップS2007で、サーバ10は、センサjが、図19のステップS1905で「季節変動」ステータスと判別されていない場合(Y)、ステップS2008に進み、判別されている場合(N)、ステップS2008を省略する。ステップS2008で、サーバ10は、センサ(i,j)の組合せの孤立度(Iij)を、センサiの孤立度(Ii)に加算する。その後、第2ループ、第3ループが終了する。すべてのセンサ5の孤立度の算出後、ステップS2009で、サーバ10は、図18のフローにより異常関連センサの特定を行う。
【0106】
なお、上記ステップS2008等の処理では、サーバ10は、孤立度に関して、上書き更新処理を行っている。これにより、季節変動の影響が除去された孤立度が得られる。影響を除去する前の孤立度は消去されている。このような処理例に限らず可能である。すなわち、サーバ10は、季節変動の影響を除去する前の孤立度と、季節変動の影響を除去した後の孤立度との両方を計算して記憶や出力してもよい。同様に、異常測度等に関しても、季節変動の影響を除去する前後の値を、記憶や出力してもよい。
【0107】
図21は、図20の続きである。ステップS2010からの第4ループで、サーバ10は、季節変動の影響を除去した異常測度の算出のために、区間内の全データについて、ステップS2011~S2016の処理を繰り返す。ステップS2011で、サーバ10は、異常測度を0とする。ステップS2012からの第5ループで、サーバ10は、全てのセンサiについて、処理を行う。ステップS2013で、サーバ10は、センサiが、図19のステップS1905で「季節変動」ステータスと判別されていない場合(Y)、ステップS2014に進み、判別されている場合(N)、ステップS2014を省略する。ステップS2014で、サーバ10は、図15のステップS1508で算出した残差を、異常測度に加算する。その後、第5ループが終了する。
【0108】
ステップS2015で、サーバ10は、図20のステップS2003の第2ループの終了後に算出されている孤立度がすべて0であるか、または、異常測度がしきい値以下である場合(Y)、ステップS2016に進み、そうではない場合(N)、ステップS2016を省略する。ステップS2016で、サーバ10は、判別の状態を、「異常なし」ステータスに変更する。その後、第4ループ、第1ループが終了し、本フローの終了となる。以上の処理により、サーバ10は、季節変動の影響を除去した結果を出力できる。
【0109】
[GUI(1)]
次に、異常検知装置1において上記処理・動作に伴って提供するユーザインタフェース、特にグラフィカル・ユーザ・インタフェース(GUI)の構成例を説明する。異常検知装置1のユーザU1(図1)は、サーバ10から提供されるデータに基づいてクライアント端末20に表示される各画面を閲覧して操作する。例えばWebページによる画面は、ウィンドウ、ボタン、スクロールバー、リストボックス等のGUI要素を用いて構成される。
【0110】
図22は、第1画面例として、オフライン解析条件設定画面である画面2201を示す。この画面2201は、オフライン解析の実施のための学習期間、および処理パラメータを含む解析条件を設定するGUIを有する。オフライン解析は、任意のタイミングでのユーザの指示に応じた解析(図3等の一連の処理を含む)である。この画面では、算出された学習結果をオフライン解析条件のレシピとして登録することもできる。過去のセンサ信号102は、設備IDおよび時刻と対応付けられてデータ蓄積部103のDBに保存されているものとする。
【0111】
この画面2201では、対象設備、学習期間、評価期間、および異常測度算出パラメータ等を入力できる。設備ID欄2202では、対象とする設備101のIDが入力される。設備リスト表示ボタン2203の押下により図3のデータ蓄積部103に保存されているデータに基づいて設備IDリストが表示される。ユーザU1はそのリストから設備IDを選択入力できる。異常検知装置1に接続される設備101が1台のみの場合には、設備ID欄2202の表示は不要である。学習期間欄2204では、学習データを抽出したい期間である学習期間の開始日と終了日を入力できる。評価期間欄2205では、異常検知の解析対象としたい期間である評価期間の開始日と終了日を入力できる。センサ選択欄2206では、処理に使用するセンサ(対応するセンサID)を入力できる。リスト表示ボタン2207の押下によりセンサリスト2208が表示される。センサリスト2208には、設備101に関連付けられる複数のセンサ5の情報が候補として表示される。ユーザU1は、そのリストから1つ以上のセンサを選択入力できる。センサ選択欄2206では、除外するセンサを指定できるようにしてもよい。図3のセンサ信号102の入力時には、ここで選択されたセンサの情報のみが入力される。
【0112】
センサ分類パラメータ欄2209では、図5のステップS504で使用する基準値を入力できる。本例では、この基準値は、相関値のしきい値である。相関値がこの基準値を超えたセンサ5が、気温との相関が高い第1種センサとして分類される。異常測度算出パラメータ欄2210では、異常測度の算出において使用するパラメータを入力できる。本例は、局所部分空間法を採用した場合の例であり、近傍ベクトル数と正則化パラメータを入力できる。正則化パラメータは、式2において相関行列Cの逆行列が算出できことを防ぐため、対角成分に加算する小さい数である。
【0113】
分布密度画像作成パラメータ欄2211(言い換えると二次元ヒストグラム算出パラメータ欄)では、分布密度画像の作成において使用するパラメータとして、例えば画像サイズ、およびそのうちの正常範囲に対応するサイズの情報を入力できる。異常区間抽出パラメータ欄2212では、異常区間の抽出において異常検知が連続しているとみなす中断期間(言い換えると許容間隙)の最大長さを入力できる。
【0114】
以上のようなオフライン解析条件情報の入力・確定後、ユーザU1は、実行ボタン2214によって、上記オフライン解析条件でのオフライン解析を実行させるように異常検知装置1に指示できる。異常検知装置1は、実行指示に従い、まず、学習期間の気温およびセンサ信号を用いて、図5に従ってセンサ分類を行う。続いて、異常検知装置1は、図7図9図13に従って、学習を実行する。
【0115】
異常検知装置1は、学習の結果として、下記のようなデータ・情報を、学習結果蓄積部111に保存しておく。
・ステップS702で算出された、センサ信号毎の平均と標準偏差
・ステップS703で抽出された、学習期間の全特徴ベクトルのデータ
・ステップS708で算出された、しきい値
・ステップS904,S905で算出された、各センサ信号の処理対象範囲と刻み幅
・ステップS910で作成された、総当り分布密度画像
・ステップS1303,S1304で算出された、気温データの処理対象範囲と刻み幅
・ステップS1309で作成された、横軸が気温の分布密度画像
・ステップS1310で設定された、相関維持範囲。
【0116】
さらに、異常検知装置1は、学習期間および評価期間のセンサ信号を用いて、図15に従って、異常測度を算出し、正常/異常の判定を行い、判定結果を、異常測度およびしきい値と併せて保存しておく。ただし、学習期間のデータについては、図7のステップS707で算出した異常測度を用いて、正常か異常かの判定が行われる。
【0117】
次に、異常検知装置1は、図16に従って、異常区間を抽出し、異常区間毎に孤立度を算出して、異常関連センサを特定する。異常検知装置1は、表示のため、各異常区間の開始時刻、終了時刻、孤立度、特定された関連センサ名、および異常プロット画像を保存しておく。
【0118】
次に、異常検知装置1は、図19に従って、異常区間毎に、気温との相関が高い各センサについて、異常なし、季節変動、異常あり、のいずれのステータスかを判別する。異常検知装置1は、処理結果として、ステップS1904で作成した横軸が気温の異常プロット画像、およびステップS1905の判別結果を保存しておく。
【0119】
さらに、異常検知装置1は、図20図21に従って、異常区間毎に、季節変動の影響を除去した孤立度の算出、異常関連センサの特定、異常測度の算出、および異常/正常の判定を行う。
【0120】
異常検知装置1は、上記のようなオフライン解析の終了後、後述する結果表示画面を表示する。ユーザU1によるその結果表示画面での確認が終了した後、図22のオフライン解析条件設定画面に戻る。画面2201のレシピ名欄2213では、上記のような学習結果および解析結果と入力情報とで構成されるオフライン解析条件を、レシピとして設定できる。ユーザU1は、レシピ名欄2213でレシピ名を入力し、登録ボタン2215によって、レシピとして登録/更新できる。異常検知装置1は、学習結果および解析結果等によるオフライン解析条件を、設備IDやレシピ名と対応付けて、学習結果蓄積部111に保存する。上記学習結果(対応するオフライン解析条件)には、学習実行により作成・保存されたデータの他に、上記各欄で入力されたセンサ分類パラメータ、異常測度算出パラメータ、分布密度画像作成パラメータ、および異常区間抽出パラメータが含まれる。
【0121】
異常検知装置1は、終了ボタン2216に応じて、本画面を終了する。この終了の際に、学習結果および解析結果のデータがある場合には、それらのデータが削除されるか、もしくは、残しておいたデータが次回に実行される学習・解析によって上書きされる。
【0122】
上記画面2201で登録された学習結果(対応するオフライン解析条件のレシピ)は、活性か不活性かのラベルを付けて管理される。ユーザU1は、複数の学習結果(対応するオフライン解析条件のレシピ)のそれぞれに対し、ラベルを設定できる。活性ラベルが付いたオフライン解析条件は、オンライン解析でもオンライン解析条件として適用される。
【0123】
上記のようにしてレシピが登録された以降では、指定された評価期間について、オンライン解析が自動的に実行される。オンライン解析では、異常検知装置1は、新しく入力されたセンサ信号102等のデータに対し、設備IDが一致する活性の学習結果等のオンライン解析条件情報を用いて、図15図16図19図20図21等の処理を行う。異常検知装置1は、処理結果を、レシピ名および処理日時等と対応付けて、学習結果蓄積部111に保存しておく。これらのオンライン解析の処理は、対象の設備101等に応じて、予め設定された期間や日時で、例えば定期として1日毎に実行される。サンプリング間隔が短い設備101やリアルタイム性が求められる設備101については、オンライン解析の実行の間隔は、1日よりももっと短い間隔(例えば1時間等)に設定できる。
【0124】
[GUI(2)]
図23は、第2画面例として、オンライン解析結果の表示対象を指定するための画面2301を示す。ユーザU1は、この画面2301で、表示対象の設備101、レシピ、および期間を指定できる。初めに、ユーザU1は、設備ID選択欄2302で設備IDを選択する。次に、ユーザU1は、レシピ名選択欄2303で、設備ID選択欄2302の設備IDを対象としたレシピのリストから、表示対象のレシピを選択する。
【0125】
データ記録期間欄2304では、入力されたレシピを用いて処理され記録が残されている期間であるデータ記録期間の開始日と終了日が表示される。結果表示期間欄2305では、オンライン解析結果を表示したい期間である結果表示期間の開始日と終了日を指定・入力できる。表示ボタン2306に応じて、画面2301での表示対象指定に従って、オンライン解析での異常検知処理の検知結果が表示される。終了ボタン2307に応じて画面2301が終了する。
【0126】
[GUI(3-1)]
図24図27は、異常検知装置1による解析結果(オフラインまたはオンラインでの検知結果)を表示する各画面例を示す。図24図27の画面は、上部に複数のタブを有する。ユーザU1によるタブの選択に応じて、タブ毎に対応付けられた図24図27のような画面のいずれかに切り替えられて表示される。図24はセンサ分類結果表示画面2400、図25は異常検知結果全体表示画面2500、図26は異常検知結果拡大表示画面2600、図27は関連センサ特定結果表示画面2700を示す。
【0127】
図24のセンサ分類結果表示画面2400では、気温信号データと、気温との相関が高い第1種センサの時系列グラフと、横軸が気温である第2分布密度画像とが表示される。期間表示欄2401には、オフライン解析結果を表示する場合、図22で指定された学習期間および評価期間が表示される。期間表示欄2401には、オンライン解析結果を表示する場合、レシピに対応する学習期間および評価期間が表示される。本例では、学習期間は2009年1月1日から3月31日までの3か月である。評価期間は、2009年4月1日から11月30日までの8か月である。
【0128】
気温表示欄2402には、学習期間および評価期間の気温データ2402aが時系列グラフとして表示される。第1センサ信号表示欄2403には、気温との相関が最も高いセンサ信号2403aの時系列グラフと、そのセンサ信号を縦軸、気温を横軸とした分布密度画像2403bとが表示される。第2センサ信号表示欄2404には、気温との相関が2番目に高いセンサについて同様の情報(2404a,2404b)が表示される。第3センサ信号表示欄2405には、気温との相関が3番目に高いセンサについて同様の情報(2405a,2405b)が表示される。本例では、ある設備101の複数(m=16)のセンサ5(センサ00,01,……,15)のうち、気温との相関が高い順に、「センサ15」、「センサ11」、「センサ02」である。本例では、センサ信号表示欄の数が3であるが、これに限らず、この数は、気温との相関が高いセンサとして分類された数と同数になり、データおよび基準値に応じてこの欄の表示が自動的に変化する。
【0129】
日付バー2406には、時系列グラフの横軸の時間に対応する日付が表示されている。期間が長いために画面内に表示しきれない場合には、スクロールバー等によってユーザU1が表示する期間を選択できる。終了ボタン2407に応じて本画面が終了する。なお、変形例として、センサ分類画面2400では、他に、複数のセンサ信号の情報(2403~2405)について、気温との相関の順序や、相関値を表示してもよい。
【0130】
[GUI(3-2)]
図25の異常検知結果全体表示画面2500では、指定された期間での異常測度、しきい値、および判定結果、ならびにセンサ信号の時系列グラフが表示される。期間表示欄2501には、オフライン解析結果を表示する場合には図22で指定された学習期間および評価期間が表示され、オンライン解析結果を表示する場合には図23で指定された結果表示期間が表示される。表示内容欄2502では、欄2502aで、表示中の解析結果が季節変動除去前のものか除去後のものかが表示される。除去前とは、図6のステップS607までに相当する。除去後とは、ステップS610までの処理を行った後に相当する。
【0131】
欄2502aは、最初、「季節変動除去前」となっている。すなわち、この時の異常検知結果全体表示画面2500では、季節変動除去前のデータが表示される。切替ボタン2502bにより、欄2502aの表示内容を「季節変動除去前」に切り替えることができる。切り替えに伴い、異常検知結果全体表示画面2500には、季節変動除去後のデータが表示される。この切り替えは、他のタブの、異常検知結果拡大表示画面2600や関連センサ特定結果表示画面2700にも反映される。図示しないが、季節変動除去後の画面でのデータの表示では、「季節変動」ステータスに該当するデータ部分が除去されており、異常測度2504a、判定結果2504c、各センサ信号のグラフの値や形状が、除去前とは異なるものとなる。
【0132】
異常測度欄2504には、指定された期間(学習期間・評価期間あるいは結果表示期間)での異常測度2504aの時系列グラフ、しきい値2504b、および判定結果2504cが表示される。判定結果2504cは、例えば「異常なし」を値0、「異常あり」を値1(例えば赤色)として、時点毎に2値の線で表示される。
【0133】
第1センサ信号欄2505には、センサ欄2505aで指定されたセンサ5について、上記指定された期間での時系列センサ信号2505bのグラフが表示される。第2センサ信号欄2506、第3センサ信号欄2507でも、同様に、それぞれ指定されたセンサについての情報が表示される。ユーザU1は、任意のセンサ5を指定して情報を表示可能である。本例では、第1センサ信号欄2505に「センサ11」の情報、第2センサ信号欄2506に「センサ00」の情報、第3センサ信号欄2507に「センサ15」の情報が表示されている。本例ではセンサ信号欄の数を3としたが、これに限らずに表示可能である。日付バー2508には、時系列グラフの横軸の時間に対応する日付が表示されている。カーソル2509は、時刻指定ボタンであり、後述の拡大表示の際の起点を表し、ユーザU1によるマウス等の操作によって移動できる。表示日数指定欄2510には、解析結果拡大表示画面2600での拡大表示の起点から終点までの日数が表示日数として表示され、この欄でも入力・指定可能である。日付表示欄2511には、カーソル2509の位置での日付や日時が表示される。終了ボタンに応じて画面が終了する。
【0134】
ユーザU1は、上記画面を見ることで、異常測度、しきい値、および設備状態の判定結果または検知結果のグラフ(2504)と、気温との相関が高い第1種センサ信号のグラフとの比較で詳細を確認できる。変形例として以下も可能である。上記のような画面では、季節変動の除去前と除去後の情報を並列に表示し、比較できるようにしてもよい。例えば、縦や横の方向で、同種の情報が単位等を揃えて並べて表示される。ユーザU1は、上記切り替えや並列の表示によって、除去前後の情報をわかりやすく確認できる。
【0135】
[GUI(3-3)]
図26の異常検知結果拡大表示画面2600では、異常検知結果全体表示画面2500のカーソル2509で指定された日付を起点として表示日数指定欄2510で指定された表示日数の期間における、異常測度、しきい値、判定結果、およびセンサ信号の時系列グラフが表示される。すなわち、異常測度欄2604およびセンサ信号欄2605~2607では、図25と同様の情報が、指定された期間で拡大表示される。日付バー2608は、例えば表示日数が2日であり、6月22日と23日が表示されている。異常検知結果拡大表示画面2600では、スクロールバー2611およびスクロールバー領域2612が追加表示されている。スクロールバー領域2612の全体の長さは、異常検知結果全体表示画面2500での表示期間に相当する長さである。スクロールバー2611の長さは、表示日数指定欄2510で指定された日数に対応した長さとされている。スクロールバー2611の左端が拡大表示の起点に対応し、右端が拡大表示の終点に対応する。ユーザU1はスクロールバー2611の操作によって、拡大表示の起点を変更できる。この変更は、異常検知結果全体表示画面2500のカーソル2509の位置と日付表示欄2511の表示にも反映される。
【0136】
[GUI(3-4)]
図27の関連センサ特定結果表示画面2700では、指定された期間の異常測度、しきい値、および判定結果と、選択された異常区間の異常関連センサ特定結果と、季節変動判別結果とが表示される。この関連センサ特定結果表示画面2700は、異常区間番号欄2701、関連センサ特定欄2702、および季節変動判別結果欄2706を有する。
【0137】
期間表示欄2501、表示内容欄2502、および異常測度欄2503は、異常検知結果全体表示画面2500での表示と同じものである。この画面でも、切替ボタンによって、季節変動除去前と季節変動除去後とを切り替え可能であり、その切り替えは他のタブの画面にも反映される。
【0138】
異常区間番号欄2701には、選択中の異常区間を表す番号と、その異常区間の日時とが表示される。最初は、日付バー上のカーソル2509で示された日付の最初の異常区間が選択表示されている。その日付の異常区間が無い場合には、空白となり、関連センサ特定結果、および季節変動判別結果ともに表示されない。ユーザU1は、異常区間番号欄2701内の矢印ボタンによって、前または次の異常区間を選択できる。空白の場合には、カーソル2509で示された日付の前または後で最も近い異常区間が選択表示される。また、ユーザU1は異常区間番号を直接入力して指定することもできる。カーソル2509の位置は、選択中の異常区間の日付に変更される。この変更は、他のタブの画面にも反映される。
【0139】
関連センサ特定欄2702は、孤立度欄2703、および異常プロット画像欄2704を有する。孤立度欄2703には、選択された異常区間での孤立度が表示される。この欄のグラフの横軸は複数のセンサ5の各センサ名やセンサID(例えばセンサ00,01,……,15)等であり、縦軸はセンサ5毎の孤立度である。この孤立度は、表示内容欄2502での表示が「季節変動除去前」である場合には、図16で算出される孤立度、「季節変動除去後」である場合には図20で算出される孤立度が表示される。
【0140】
異常プロット画像欄2704では、選択された異常区間での異常プロット画像として、例えば異常プロット画像2704a,2704b,2704cが表示される。この異常プロット画像は、「季節変動除去前」である場合には図16のステップS1613、「季節変動除去後」である場合には図20のステップS2009で作成された異常プロット画像が表示される。本例では、これらの異常プロット画像は、2個のセンサ5の組合せでの第1分布密度画像上に異常のデータ値がプロットされた画像である。また、複数の異常プロット画像は、図18のステップS1801の第1ループにおいてステップS1806で作成される順序で例えば左から右に向かって表示される。異常プロット画像の数は区間によって異なる。画面内に複数の画像が表示しきれない場合には、異常プロット画像欄2704の矢印ボタン等の操作によって、表示される異常プロット画像を左または右にずらす等の変更ができる。
【0141】
季節変動判別結果欄2706では、選択された異常区間について、図19のステップS1904で作成された、気温が横軸である異常プロット画像、例えば異常プロット画像2706a,2706b,2706cが表示される。この異常プロット画像では、前述の図14のように相関維持範囲を表す画像を重ねて表示してもよい。また併せて、各異常プロット画像には、図19のステップS1905の判別結果のステータス2708として、「季節変動」、「異常あり」等が表示される。なお、季節変動判別結果欄2706での複数の異常プロット画像の表示の数や順序は、図24の複数のセンサ信号のデータの表示と同様に、例えば気温との相関が高い順序等で統一する。ユーザU1は、このような異常プロット画像を見ることで、気温との相関が高いセンサ信号、異常データ値、および判別結果ステータス等をわかりやすく確認できる。また、ユーザU1は、関連センサ特定欄2702(2703,2704)の表示を併せて見ることで、季節変動除去前後の検知結果についての詳細を確認できる。
【0142】
[異常プロット画像の例]
図28は、異常プロット画像の一例を示す。ユーザU1は、図27のような画面で、異常プロット画像を選択し、画面に詳細表示させて確認することもできる。(A)は異常プロット画像2701a、(B)は異常プロット画像2701b、(C)は異常プロット画像2701cの詳細表示である。(A)の異常プロット画像2701aで、破線枠で示す部分2801は、分布密度が高い正常データに相当し、グレイで表示されている。部分2802は、赤色で表示されている。この部分2802は、図14の相関維持の範囲1401内の点Cと同様に、相関維持範囲2803内にあり、相関が維持されているデータ例である。そのため、このデータは、「季節変動」ステータスと判別されている。
【0143】
(B)の異常プロット画像2701bで、部分2811は、正常データに相当し、グレイで表示されている。部分2812は、赤色で表示されている。この部分2812は、部分2811から離れ、対応する相関維持範囲2813の外に出る部分を有し、相関が維持されていないデータ例である。そのため、このデータは、「季節変動」ではなく、「異常あり」と判別されている。(C)の異常プロット画像2701cで、部分2821は、正常データに相当し、グレイで表示されている。部分2822は、赤色で表示されている。この部分2822は、部分2821から離れ、対応する相関維持範囲2823の外に出る部分を有し、相関が維持されていないデータ例である。そのため、このデータは、「季節変動」ではなく、「異常あり」と判別されている。
【0144】
[効果等]
以上説明したように、実施の形態1の異常検知装置等によれば、設備101が出力する複数の時系列センサ信号に基づいた異常検知等の際に、季節変動を考慮して異常判定・検知の誤りを低減できる。また、実施の形態1によれば、学習期間を1年以上と長期にする必要無く、設備101の異常について、季節変動に起因する異常とそうではない異常とを自動的に判別でき、季節変動の影響を低減・除去した結果を出力できる。
【0145】
実施の形態1によれば、気温との相関に基づいてセンサ5を分類するので、学習期間が1年未満であっても、季節変動の影響を受けるセンサ5を知ることができる。実施の形態1によれば、それらのセンサ5と気温との相関が維持されているかどうかを調べる。これにより、実施の形態1では、異常有無(正常/異常)の判定結果から、さらに、「季節変動」と、季節変動起因ではない異常有無(「異常なし」/「異常あり」)とに判別できる。実施の形態1によれば、季節変動判別結果として、横軸が気温である異常プロット画像を画面に表示でき、気温との相関が維持されているかどうかや、季節変動起因による異常であるかどうか等をユーザU1が確認・納得しやすい。実施の形態1によれば、季節変動の除去前と除去後との各検知結果を画面に表示できるので、ユーザU1が季節変動の影響の有無等を確認でき、除去後では季節変動以外の要因による異常現象を把握できる。
【0146】
以上では、季節によって変動するパラメータ(季節変動値)として気温を用いる例を説明した。その他にも、降水量、風向・風速、日射量、気圧、湿度等のパラメータについても、季節によって変動するパラメータである。実施の形態1での気温を、これらの季節変動値のうちのいずれかと置き換えた形態も、同様に可能である。また、複数の季節変動値を入力として、同様の処理を行い、季節変動判別および季節変動除去等を行う形態も、同様に可能である。
【0147】
また、気温あるいは他の季節変動値について、図1のように設備101の付近に専用のセンサ(例えば気温センサ6)を設置してデータを取得する形態としてもよいが、これに限らず可能である。異常検知装置1(例えばサーバ10)は、設備101の外部、例えば通信網9上の気象庁のホームページ(Webサービス)等から、定期的に、各地の気温や季節変動値のデータをダウンロードして取得しDBに格納しておく形態でもよい。
【0148】
以上、本発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されず、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【0149】
1…異常検知装置、5…センサ、9…通信網、10…サーバ、20…クライアント端末、50…通信デバイス、101…設備、102…センサ信号、103…データ蓄積部、104…気温信号、105…センサ分類部、106…信号入力部、107…特徴ベクトル抽出部、108…異常測度算出部、109…しきい値算出部、110…分布密度画像作成部、111…学習結果蓄積部、112…異常検出部、113…関連センサ特定部、114…季節変動判別部、115…季節変動除去部、116…検知結果出力部、150…通信信号、160…検知結果、U1…ユーザ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28