(57)【要約】【課題】異常監視処理に加えて、生データの保存をより効率的に実現できる構成が要望されている。【解決手段】制御システムは、データセットを単位区間毎に生成する生成部と、データセットに基づいて特徴量データを生成する特徴抽出部と、学習データを参照して、特徴量データの学習データに対する外れ度合いを示すスコアを算出するスコア算出部とを含む。特徴量データおよびスコアは、データセットの圧縮結果として出力される。制御システムは、圧縮結果に含まれるスコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元する復元部を含む。【選択図】図３
2020067730.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成する生成部と、
前記データセットに基づいて特徴量データを生成する特徴抽出部と、
特定のクラスがラベル付けされた特徴量データからなる学習データを参照して、前記特徴量データの前記学習データに対する外れ度合いを示すスコアを算出するスコア算出部とを備え、前記特徴量データおよび前記スコアは、前記データセットの圧縮結果として出力され、
予め用意されたクラス毎のパターンデータを参照して、前記圧縮結果に含まれる前記スコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元する復元部を備える、制御システム。
【請求項２】
複数の前記圧縮結果が連続的に出力され、
前記復元部は、前記圧縮結果の各々からデータセットの時間的変化を連続的に復元する、請求項１に記載の制御システム。
【請求項３】
前記特徴量データは、前記データセットについての平均値および標準偏差を含み、
前記復元部は、前記データセットについての平均値および標準偏差に基づいて、対応するパターンデータを逆正規化することで、当該データセットの時間的変化を復元する、請求項１または２に記載の制御システム。
【請求項４】
前記圧縮結果に含まれる前記スコアが予め定められた値を超える場合に、当該圧縮結果に対応するデータセットの時間的変化を抽出するサンプリング部をさらに備える、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記サンプリング部は、前記予め用意されたパターンデータからの前記抽出したデータセットの時間的変化の乖離度が、予め定められた値を超える場合に、当該抽出したデータセットの時間的変化を前記復元部が参照するパターンデータとして追加する、請求項４に記載の制御システム。
【請求項６】
前記特徴量データおよび前記スコアに加えて、前記サンプリング部により追加されたパターンデータが前記圧縮結果として出力される、請求項５に記載の制御システム。
【請求項７】
前記復元部は、前記予め用意されたパターンデータに加えて、前記サンプリング部により追加されたパターンデータを参照して、データセットの時間的変化を復元する、請求項５または６に記載の制御システム。
【請求項８】
前記スコアに基づいて、前記１または複数の入力値に関連する監視対象に異常が発生しているかを判定する判定部をさらに備える、請求項１〜７のいずれか１項に記載の制御システム。
【請求項９】
制御対象を制御する制御装置と、
前記制御装置と通信可能な外部装置とを備え、
前記生成部、前記特徴抽出部および前記スコア算出部は、前記制御装置に配置され、
前記復元部は、前記外部装置に配置される、請求項１〜８のいずれか１項に記載の制御システム。
【請求項１０】
制御対象を制御する制御装置を含む制御システムにおいて実行される制御方法であって、
１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成するステップと、
前記データセットに基づいて特徴量データを生成するステップと、
特定のクラスがラベル付けされた特徴量データからなる学習データを参照して、前記特徴量データの前記学習データに対する外れ度合いを示すスコアを算出するステップとを備え、前記特徴量データおよび前記スコアは、前記データセットの圧縮結果として出力され、
予め用意されたクラス毎のパターンデータを参照して、前記圧縮結果に含まれる前記スコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元するステップを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力値の時間的変化を保存可能な制御システムおよび制御方法に関する。
【背景技術】
【０００２】
様々な生産現場において、機械や装置などに発生する異常を早期に検知して設備稼働率を向上させたいというニーズが存在する。典型的な異常監視の方法としては、機械や装置からデータを収集するとともに、収集されたデータに基づいて、何らかの異常が生じているか否かを判断する。
【０００３】
一方で、何らかの異常が発生していると判断された場合であっても、現実には、何らの異常も発生していないようなこともある。そのため、監視結果に加えて、機械や装置から収集されたデータ（以下、「生データ」とも称す。）を保存しておくことが要求されることが多い。このような保存された生データを事後的に解析することで、異常監視のアルゴリズムやしきい値などのチューニングに利用できる。
【０００４】
一般的に、長期間の生データの保存には大量の保存領域が必要となる。そのため、保存領域を可能な限り削減したいというニーズが存在する。
【０００５】
例えば、特開平０５−０８９００９号公報（特許文献１）は、圧縮データを送受信するネットワークコントローラを開示する。特許文献１に開示されるネットワークコントローラは、データ圧縮すべきか否かのデータが設定されるレジスタを備え、送信の際、レジスタに設定された内容を参照することにより、生データもしくは圧縮回路経由のデータをトランシーバへ出力し、受信の際、レシーバ経由で受信されたデータを判定ロジックによって解読された内容に従い、生データとしてもしくは復元回路経由で内部へ取り込むという構成を採用する。
【０００６】
また、国際公開第２０１６／０６８８９５号（特許文献２）は、文脈知識に基づいて、圧縮アルゴリズムの選択およびパラメータの調整を行いつつ、生データを圧縮する方法を開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０５−０８９００９号公報
【特許文献２】国際公開第２０１６／０６８８９５号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
通常、異常監視の処理自体にリソースを割り当てる必要があり、特許文献１および特許文献２に開示されるようなデータ圧縮のための処理を追加的に実行できない場合もある。そこで、異常監視処理に加えて、生データの保存をより効率的に実現できる構成が要望されている。
【課題を解決するための手段】
【０００９】
本発明の一例に従う制御システムは、１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成する生成部と、データセットに基づいて特徴量データを生成する特徴抽出部と、特定のクラスがラベル付けされた特徴量データからなる学習データを参照して、特徴量データの学習データに対する外れ度合いを示すスコアを算出するスコア算出部とを含む。特徴量データおよびスコアは、データセットの圧縮結果として出力される。制御システムは、予め用意されたクラス毎のパターンデータを参照して、圧縮結果に含まれるスコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元する復元部を含む。
【００１０】
本構成によれば、制御システムは、異常監視にも用いられる特徴量データおよびスコアをデータセットの圧縮結果として出力することで、１または複数の入力値の時間的変化からなるデータセットをそのまま保存する場合に比較して、必要な保存領域を大幅に低減できる。また、圧縮結果に含まれるスコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元することで、データ復元処理を簡素化できる。
【００１１】
上記の構成において、複数の圧縮結果が連続的に出力され、復元部は、圧縮結果の各々からデータセットの時間的変化を連続的に復元するようにしてもよい。
【００１２】
本構成によれば、複数の単位区間に亘る時間的変化であっても、適切に圧縮および復元が可能となる。
【００１３】
上記の構成において、特徴量データは、データセットについての平均値および標準偏差を含み、復元部は、データセットについての平均値および標準偏差に基づいて、対応するパターンデータを逆正規化することで、当該データセットの時間的変化を復元するようにしてもよい。
【００１４】
本構成によれば、平均値および標準偏差を用いることで、再現性の高いデータ復元を実現できる。
【００１５】
上記の構成において、制御システムは、圧縮結果に含まれるスコアが予め定められた値を超える場合に、当該圧縮結果に対応するデータセットの時間的変化を抽出するサンプリング部をさらに含む。
【００１６】
本構成によれば、予め用意されたクラス毎のパターンデータとは異なる時間的変化が生じた場合であっても、新たなパターンデータを追加することで、復元される時間的変化の再現性能を高めることができる。
【００１７】
上記の構成において、サンプリング部は、予め用意されたパターンデータからの抽出したデータセットの時間的変化の乖離度が、予め定められた値を超える場合に、当該抽出したデータセットの時間的変化を復元部が参照するパターンデータとして追加する。
【００１８】
本構成によれば、サンプリング部により抽出されたパターンデータのうち、予め用意されたパターンデータとは異なるものだけを新たに追加するので、保存領域および処理を効率化できる。
【００１９】
上記の構成において、特徴量データおよびスコアに加えて、サンプリング部により追加されたパターンデータが圧縮結果として出力される。
【００２０】
本構成によれば、予め用意されたパターンデータとは異なる時間的変化が生じた場合であっても、復元部において、追加されたパターンデータを参照できるため、再現性を高めることができる。
【００２１】
上記の構成において、復元部は、予め用意されたパターンデータに加えて、サンプリング部により追加されたパターンデータを参照して、データセットの時間的変化を復元する。
【００２２】
本構成によれば、復元部は、予め用意されたパターンデータに加えて、サンプリング部により追加されたパターンデータを参照するので、再現性を高めることができる。
【００２３】
上記の構成において、制御システムは、スコアに基づいて、１または複数の入力値に関連する監視対象に異常が発生しているかを判定する判定部をさらに含む。
【００２４】
本構成によれば、１または複数の入力値の時間的変化からなるデータセットの保存および復元の処理に加えて、同一の情報を用いて、監視対象における異常の有無の監視を実現できる。
【００２５】
上記の構成において、制御装置システムは、制御対象を制御する制御装置と、制御装置と通信可能な外部装置とを含む。生成部、特徴抽出部およびスコア算出部は、制御装置に配置され、復元部は、外部装置に配置されてもよい。
【００２６】
本構成によれば、制御装置においては、１または複数の入力値の時間的変化からなるデータセットの保存処理を実行するとともに、外部装置において、保存されたデータセットを復元できる。
【００２７】
本発明の別の一例に従えば、制御対象を制御する制御装置を含む制御システムにおいて実行される制御方法が提供される。制御方法は、１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成するステップと、データセットに基づいて特徴量データを生成するステップと、特定のクラスがラベル付けされた特徴量データからなる学習データを参照して、特徴量データの学習データに対する外れ度合いを示すスコアを算出するステップとを含む。特徴量データおよびスコアは、データセットの圧縮結果として出力される。制御方法は、予め用意されたクラス毎のパターンデータを参照して、圧縮結果に含まれるスコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元するステップを含む。
【００２８】
本構成によれば、制御システムは、異常監視にも用いられる特徴量データおよびスコアをデータセットの圧縮結果として出力することで、１または複数の入力値の時間的変化からなるデータセットをそのまま保存する場合に比較して、必要な保存領域を大幅に低減できる。また、圧縮結果に含まれるスコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化として復元することで、データ復元処理を簡素化できる。
【発明の効果】
【００２９】
本発明によれば、異常監視処理に加えて、生データの保存をより効率的に実現できる構成を実現できる。
【図面の簡単な説明】
【００３０】
【図１】本実施の形態に従う異常監視システムの全体構成例を示す模式図である。
【図２】本実施の形態に従う異常監視システムにおける異常監視処理を実現するための機能ブロック図である。
【図３】本実施の形態に従う異常監視システムにおける生データの圧縮および復元に係る処理手順を示す模式図である。
【図４】図３に示す生データの圧縮および復元に係る処理の処理内容の一例を示す模式図である。
【図５】本実施の形態に従う異常監視システムを構成する制御装置のハードウェア構成例を示すブロック図である。
【図６】本実施の形態に従う異常監視システムを構成するサポート装置のハードウェア構成例を示すブロック図である。
【図７】本実施の形態に従う異常監視システムにおける生データの圧縮および復元に係るパターンデータの動的管理が可能な処理手順を示す模式図である。
【図８】本実施の形態に従う異常監視システムにおける正常時の生データの圧縮処理を説明するための図である。
【図９】本実施の形態に従う異常監視システムにおける正常時の生データの復元処理を説明するための図である。
【図１０】本実施の形態に従う異常監視システムにおける異常時の生データの圧縮処理を説明するための図である。
【図１１】本実施の形態に従う異常監視システムにおける異常時の生データの復元処理を説明するための図である。
【図１２】本実施の形態に従う異常監視処理における監視結果のみを表示する表示例を示す模式図である。
【図１３】本実施の形態に従う異常監視処理における復元された生データを表示する表示例を示す模式図である。
【図１４】本実施の形態に従う異常監視処理を利用した生データの圧縮処理の処理手順を示すフローチャートである。
【図１５】本実施の形態に従う異常監視処理を利用した生データの復元処理の処理手順を示すフローチャートである。
【図１６】本実施の形態の変形例に従う異常監視システムの全体構成例を示す模式図である。
【図１７】本実施の形態の別の変形例に従う異常監視システムの全体構成例を示す模式図である。
【発明を実施するための形態】
【００３１】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３２】
＜Ａ．適用例＞
まず、本発明が適用される場面の一例について説明する。
【００３３】
本実施の形態に従う異常監視処理を実行可能な制御システムの機能的な構成例について説明する。以下の説明においては、主として、制御システムが有している異常監視処理に注目して説明するので、制御システム全体を「異常監視システム」とも称する。
【００３４】
まず、本実施の形態に従う異常監視システム１の全体構成例について説明する。
図１は、本実施の形態に従う異常監視システム１の全体構成例を示す模式図である。図１を参照して、異常監視システム１は、主たる構成要素として、制御対象を制御する制御装置１００と、制御装置１００に接続され得るサポート装置２００とを含む。異常監視システム１は、オプショナルな構成として、上位サーバ３００および表示装置（ＨＭＩ：Human Machine Interface；以下、「ＨＭＩ」とも称す。）４００をさらに含んでいてもよい。
【００３５】
制御装置１００は、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す判定結果を生成する。制御装置１００は、ＰＬＣ（プログラマブルコントローラ）などの、一種のコンピュータとして具現化されてもよい。
【００３６】
より具体的には、制御装置１００は、第１フィールドバス２を介してフィールド装置群１０と接続されるとともに、第２フィールドバス４を介して１または複数のＨＭＩ４００と接続される。さらに、制御装置１００は、ローカルネットワーク６を介して上位サーバ３００に接続される。制御装置１００は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。
【００３７】
制御装置１００は、設備や機械を制御するための各種演算を実行する制御演算実行エンジンを有している。制御演算実行エンジンに加えて、制御装置１００は、フィールド装置群１０にて取得され、制御装置１００へ転送されるデータ（以下、「入力データ」とも称す。）を取得する取得機能を有している。そして、制御装置１００は、取得した入力データなどに基づいて、制御対象における異常発生の有無を監視する異常監視機能も有している。これらの機能が制御装置１００に実装されることで、制御対象で生じる異常をより短い周期で監視できる。
【００３８】
このような異常監視の機能に関して、制御装置１００に実装される異常監視エンジン１５０が監視機能を提供し、制御装置１００内に実装される内部データベース（以下、「内部ＤＢ」とも記す。）１４０が各種データの格納機能を提供する。内部ＤＢ１４０および異常監視エンジン１５０の詳細については後述する。
【００３９】
第１フィールドバス２および第２フィールドバス４としては、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、ＥｔｈｅｒＣＡＴ（登録商標）などが知られている。
【００４０】
フィールド装置群１０は、制御対象または制御に関連する製造装置や生産ラインなど（以下、「フィールド」とも総称する。）の状態値を入力データとして収集する装置を含む。このような状態値を取得する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群１０は、さらに、制御装置１００にて生成される指令値（以下、「出力データ」とも称す。）に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群１０は、第１フィールドバス２を介して、制御装置１００との間で、入力データおよび出力データを含むデータを遣り取りする。
【００４１】
図１に示す構成例においては、フィールド装置群１０は、リモートＩ／Ｏ（Input/Output）装置１２と、リレー群１４と、画像センサ１８およびカメラ２０と、サーボドライバ２２およびサーボモータ２４とを含む。
【００４２】
リモートＩ／Ｏ装置１２は、第１フィールドバス２を介して通信を行う通信部と、入力データの取得および出力データの出力を行うための入出力部（以下、「Ｉ／Ｏユニット」とも称す。）とを含む。このようなＩ／Ｏユニットを介して、制御装置１００とフィールドとの間で入力データおよび出力データが遣り取りされる。図１には、リレー群１４を介して、入力データおよび出力データとして、デジタル信号が遣り取りされる例が示されている。
【００４３】
Ｉ／Ｏユニットは、フィールドバスに直接接続されるようにしてもよい。図１には、第１フィールドバス２にＩ／Ｏユニット１６が直接接続されている例を示す。
【００４４】
画像センサ１８は、カメラ２０によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置１００へ送信する。
【００４５】
サーボドライバ２２は、制御装置１００からの出力データ（例えば、位置指令など）に従って、サーボモータ２４を駆動する。
【００４６】
上述のように、第１フィールドバス２を介して、制御装置１００とフィールド装置群１０との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μｓｅｃオーダ〜数十ｍｓｅｃオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理は、Ｉ／Ｏリフレッシュ処理とも称される。
【００４７】
サポート装置２００は、制御装置１００が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置２００は、制御装置１００で実行されるプログラムの開発環境（プログラム作成編集ツール、パーサ、コンパイラなど）、制御装置１００および制御装置１００に接続される各種デバイスのパラメータ（コンフィギュレーション）を設定するための設定環境、生成したユーザプログラムを制御装置１００へ送信する機能、制御装置１００上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。さらに、サポート装置２００は、制御装置１００に実装される異常監視エンジン１５０による異常監視処理を定義するパラメータおよび学習データを設定する機能なども提供する。
【００４８】
上位サーバ３００は、制御装置１００とローカルネットワーク６を介して接続され、制御装置１００との間で必要なデータを遣り取りする。上位サーバ３００は、例えば、データベース機能を有しており、制御装置１００の内部ＤＢ１４０に格納されるデータを定期的またはイベント的に収集する。ローカルネットワーク６には、イーサネット（登録商標）などの汎用プロトコルが実装されてもよい。
【００４９】
ＨＭＩ４００は、第２フィールドバス４を介して制御装置１００と接続され、ユーザからの操作を受けて、制御装置１００に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置１００での処理結果などをグラフィカルに表示する。
【００５０】
次に、本実施の形態に従う異常監視処理について説明する。
図２は、本実施の形態に従う異常監視システム１における異常監視処理を実現するための機能ブロック図である。図２を参照して、制御装置１００の異常監視エンジン１５０は、制御対象から１または複数の入力値（入力値１，入力値２，・・・，入力値ｎ）を取得し、特徴量などを生成することで、異常の発生有無などを含む監視結果を出力する。
【００５１】
本実施の形態においては、制御対象に含まれる監視対象に何らかの異常が発生しているかを判定する単位区間として「フレーム」という概念を導入する。フレームは、監視対象に何らかの異常が発生しているか否かを判定する単位区間を意味する。そのため、監視対象に何らかの異常が発生しているか否かの判定は、フレーム毎に行われることになる。
【００５２】
より具体的には、異常監視エンジン１５０は、主たる機能構成として、データセット生成部１５２と、特徴抽出部１５４と、スコア算出部１５６と、クラス決定部１５８とを含む。
【００５３】
データセット生成部１５２は、生成部に相当し、フレーム情報に従って、制御対象から１または複数の入力値（入力値１，入力値２，・・・，入力値ｎ）の時間的変化からなるデータセットをフレーム毎に生成する。
【００５４】
特徴抽出部１５４は、データセット生成部１５２により生成されるデータセットに基づいて、予め定められた処理に従って、１または複数の特徴量（特徴量１，特徴量２，・・・，特徴量ｍ）からなる特徴量データを生成する。特徴量としては、例えば、フレーム内における平均値、最大値、中間値、最小値、標準偏差などを用いることができる。
【００５５】
スコア算出部１５６は、予め用意された学習データ１３０を参照して、特徴抽出部１５４により生成される特徴量データ（１または複数の特徴量）の学習データ１３０に対する外れ度合いを示す値（以下、「スコア」とも称す。）を算出する。ここで、学習データ１３０は、特定のクラス（例えば、正常や異常）がラベル付けされた特徴量データからなる。典型的には、学習データ１３０は正常時の特徴量データからなり、この場合には、スコアは、監視対象に何らかの異常が発生している可能性を示す値を意味することになる。
【００５６】
異常監視エンジン１５０での異常監視のアルゴリズムの一例として、超空間上における正常値群に対する特徴量データの外れ度合いに基づいて、当該特徴量データに対応するスコアを算出する方法を採用する。この場合には、学習データ１３０は、超空間上における正常値群を示すものとなり、これは監視対象を示す「モデル」に相当する。
【００５７】
このような外れ度合いに基づく異常監視の手法としては、各点から正常値群までの最短距離に基づいて異常を検知する手法（ｋ近傍法）、正常値群を含むクラスタを含めて距離を評価する局所外れ値因子（ＬｏＦ：local outlier factor）法、パス長さから算出されるスコアを用いるｉＦｏｒｅｓｔ（isolation forest）法などが知られている。
【００５８】
外れ度合いに基づく異常監視の手法を採用した場合には、学習データ１３０は、正常時に得られる特徴量の群を含むようになり、異常監視エンジン１５０は、学習データ１３０に含まれる特徴量群に対する対象の特徴量の外れ度合いに基づいて、監視対象に何らかの異常が発生している可能性を示す値であるスコアを算出する。
【００５９】
クラス決定部１５８は、スコア算出部１５６により算出されるスコアと予め定められたしきい値とを比較して、当該算出されたスコアがいずれかのクラスに属するのかを決定する。異常監視の処理においては、典型的には、算出されたスコアがしきい値により定められる範囲内であるか否かに基づいて、監視対象に何らかの異常が発生していないというクラスと、監視対象に何らかの異常が発生しているというクラスとのいずれに分類されるかを決定する。このような決定されるクラスを判定結果として出力する。
【００６０】
すなわち、クラス決定部１５８は、スコアに基づいて、１または複数の入力値に関連する監視対象に異常が発生しているかを判定する判定部として動作する。
【００６１】
なお、本実施の形態に従う異常監視処理の監視結果としては、監視対象に異常が発生しているか否かを示す判定結果に加えて、スコア算出部１５６により算出されたスコアを含めるようにしてもよい。
【００６２】
以上のような機能構成によって、本実施の形態に従う異常監視処理が実現される。
次に、本実施の形態に従う異常監視処理を利用した生データの圧縮および復元に係る処理について説明する。
【００６３】
本実施の形態においては、異常監視エンジン１５０による算出結果を活用することで、生データを大幅に不可逆圧縮する。また、圧縮された生データは、特定の演算手順により復元することができ、このように復元された生データを用いることで、何らかの異常が発生したと判定された場合に、各種解析を行うことができる。
【００６４】
図３は、本実施の形態に従う異常監視システム１における生データの圧縮および復元に係る処理手順を示す模式図である。図３を参照して、本実施の形態に従う異常監視システム１における生データの圧縮および復元に係る処理は、データ圧縮フェーズ５０およびデータ復元フェーズ６０を有している。
【００６５】
制御装置１００は、異常監視エンジン１５０（データセット生成部１５２、特徴抽出部１５４、スコア算出部１５６、およびクラス決定部１５８）を有している。データ圧縮フェーズ５０においては、制御装置１００は、データセット区間（フレーム）毎に入力された生データに対して圧縮結果を出力する。異常監視エンジン１５０は、圧縮処理を兼ねており、特徴抽出および異常監視などによって得られる、異常監視エンジン１５０による監視結果に相当する圧縮結果１６２を用いて、生データの圧縮結果が生成される。
【００６６】
異常監視エンジン１５０によるデータセット（生データ１６０）の圧縮結果１６２としては、例えば、監視対象に何らかの異常が発生している可能性を示す値であるスコア１６４と、対象のフレームにおける平均値や標準偏差などの特徴量データ１６６とを含む。すなわち、特徴量データ１６６およびスコア１６４は、データセットの圧縮結果１６２として出力される。
【００６７】
一方、外部装置の一例である上位サーバ３００は、データ復元器２４０を有している。データ復元フェーズ６０においては、データ復元器２４０を用いて、異常監視エンジン１５０からの圧縮結果１６２を生データ１７０に復元する。データ復元器２４０による生データ１７０への復元は、パターンデータ１６８が参照される。パターンデータ１６８は、生データのフレームに相当する波形であり、複数種類が予め用意される。
【００６８】
データ復元器２４０は、異常監視エンジン１５０からの圧縮結果１６２に基づいて、パターンデータ１６８のうち対応するものを順次選択して結合することで、生データ１７０に復元する。このように、データ復元器２４０は、異常監視エンジン１５０による圧縮結果１６２と復元のためのパターンデータ１６８とを利用する。
【００６９】
本実施の形態に従う異常監視システム１においては、異常監視処理により生成される監視結果でもある圧縮結果１６２を用いて、生データを圧縮および復元できるので、異常監視処理および生データの保存という２つの処理を効率的に実現できる。
【００７０】
図４は、図３に示す生データの圧縮および復元に係る処理の処理内容の一例を示す模式図である。まず、図４に示すような生データ１６０を想定する。生データ１６０の波形を完全に表現できるデータ容量を１００％とする。データ圧縮器としても機能する異常監視エンジン１５０は、生データ１６０から特徴量データ１６６を算出し、算出した特徴量データ１６６に基づいてスコア１６４を算出する。一例として、特徴量データ１６６は、各フレームにおける平均値を示す第１特徴量データ１６６１および各フレームの標準偏差を示す第２特徴量データ１６６２を含む。
【００７１】
さらに、異常監視エンジン１５０は、各フレームについて算出されるスコア１６４に対して、いずれのクラスに属するのかを決定する。この例では、２つのクラス（クラスＡおよびクラスＢ）の分類問題としている。典型的には、クラスＡは、監視対象に何らかの異常が発生している状態に相当し、クラスＢは、監視対象に何らかの異常が発生していない状態に相当する。
【００７２】
パターンデータ１６８は、クラス毎に予め用意されているものとする。図４に示す例では、クラスＡに属するフレームの波形およびクラスＢに属するフレームの波形を含む。
【００７３】
このように、生データ１６０を圧縮して得られる情報は、特徴量データ１６６（第１特徴量データ１６６１および第２特徴量データ１６６２）と、スコア１６４と、パターンデータ１６８とを含むことになる。
【００７４】
一方、データ復元器２４０においては、生データ１６０の圧縮結果を、パターンデータ１６８に含まれる分類された各クラスに属するフレーム毎の波形（生データの時間的変化）に基づいて、元の時間波形に復元する。図４に示す例では、スコア１６４に含まれるフレーム毎のクラス分類に応じて、クラスＡに属するフレームの波形、および、クラスＢに属するフレームの波形のいずれかを選択的に適用することで、生データ１７０に復元する。
【００７５】
図４に示すように、生データ１６０についての複数の圧縮結果が連続的に出力され、データ復元器２４０は、圧縮結果の各々からデータセット（生データ１６０）の時間的変化を連続的に復元する。
【００７６】
例えば、監視対象として製造装置を想定すると、当該製造装置が安定稼働状態になることで、正常時には同一のパターン波形の繰り返しとなり、異常時には異なるパターン波形が現れることになる。
【００７７】
本実施の形態に従う異常監視システム１におけるデータ圧縮の効果の一例は、以下のように試算できる。
【００７８】
例えば、Ｉ／Ｏリフレッシュ処理が２５０μｓ周期（サンプリング周波数４ｋＨｚ）で実行されるとして、異常監視処理に用いられる入力データを１０変数（各２ｂｙｔｅｓ）とすると、保存しなければならないデータ量は、４ｋＨｚ×１０変数×２ｂｙｔｅｓ＝８０ｋｂｙｔｅｓ／ｓｅｃとなる。
【００７９】
また、異常監視処理のフレーム長を１００ｍｓｅｃ（１つのデータセットの長さ：監視周波数１０Ｈｚ）とし、算出される特徴量を各変数について平均値および標準偏差の２種類（各２ｂｙｔｅｓ）とすると、生成される特徴量のデータ量は、１０Ｈｚ×１０変数×２種類×ｂｙｔｅｓ＝４０ｂｙｔｅｓ／ｓｅｃとなる。すなわち、生データ１６０の約０．５％に圧縮できる。また、スコア１６４についても同様の計算によって、生データ１６０の約０．２５％に圧縮できる。また、パターンデータ１６８に含まれる各クラスに属する波形は、生データ１６０の総データ容量に対して約８％の大きさと見積もることができる。
【００８０】
これらの圧縮率を総合すると、異常監視エンジン１５０を用いることで、生データ１６０を約８％に圧縮して保存できる。
【００８１】
以上のように、本実施の形態に従う異常監視システム１においては、異常監視エンジン１５０での特徴抽出、スコア算出、クラス決定などの処理を利用することで、生データ１６０を大幅に圧縮することができる。
【００８２】
＜Ｂ．各装置のハードウェア構成例＞
次に、本実施の形態に従う異常監視システム１を構成する主要な装置のハードウェア構成例について説明する。
【００８３】
（ｂ１：制御装置１００のハードウェア構成例）
図５は、本実施の形態に従う異常監視システム１を構成する制御装置１００のハードウェア構成例を示すブロック図である。図５を参照して、制御装置１００は、ＣＰＵ（Central Processing Unit）やＭＰＵ（Micro-Processing Unit）などのプロセッサ１０２と、チップセット１０４と、主記憶装置１０６と、二次記憶装置１０８と、ローカルネットワークコントローラ１１０と、ＵＳＢ（Universal Serial Bus）コントローラ１１２と、メモリカードインターフェイス１１４と、内部バスコントローラ１２２と、フィールドバスコントローラ１１８，１２０と、Ｉ／Ｏユニット１２４−１，１２４−２，…とを含む。
【００８４】
プロセッサ１０２は、二次記憶装置１０８に格納された各種プログラムを読み出して、主記憶装置１０６に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット１０４は、プロセッサ１０２とともに、各コンポーネントを制御することで、制御装置１００全体としての処理を実現する。
【００８５】
二次記憶装置１０８には、制御装置１００が提供する機能を実現するためのシステムプログラム１２６（制御プログラムに相当）に加えて、システムプログラム１２６が提供する実行環境を利用して実行されるユーザプログラムが格納される。システムプログラム１２６は、内部ＤＢ１４０および異常監視エンジン１５０を実現するためのプログラムも格納される。
【００８６】
ローカルネットワークコントローラ１１０は、ローカルネットワーク６を介した他の装置との間のデータの遣り取りを制御する。ＵＳＢコントローラ１１２は、ＵＳＢ接続を介してサポート装置２００との間のデータの遣り取りを制御する。
【００８７】
メモリカードインターフェイス１１４は、メモリカード１１６を着脱可能に構成されており、メモリカード１１６に対してデータを書き込み、メモリカード１１６から各種データ（ユーザプログラムやトレースデータなど）を読み出すことが可能になっている。
【００８８】
内部バスコントローラ１２２は、制御装置１００に搭載されるＩ／Ｏユニット１２４−１，１２４−２，…との間でデータを遣り取りするインターフェイスである。
【００８９】
フィールドバスコントローラ１１８は、第１フィールドバス２を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ１２０は、第２フィールドバス４を介した他の装置との間のデータの遣り取りを制御する。
【００９０】
図５には、プロセッサ１０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）など）を用いて実装してもよい。あるいは、制御装置１００の主要部を、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のＯＳ（Operating System）を並列的に実行させるとともに、各ＯＳ上で必要なアプリケーションを実行させるようにしてもよい。
【００９１】
（ｂ２：サポート装置２００のハードウェア構成例）
次に、本実施の形態に従うサポート装置２００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコン）を用いてプログラムを実行することで実現される。
【００９２】
図６は、本実施の形態に従う異常監視システム１を構成するサポート装置２００のハードウェア構成例を示すブロック図である。図６を参照して、サポート装置２００は、ＣＰＵやＭＰＵなどのプロセッサ２０２と、ドライブ２０４と、主記憶装置２０６と、二次記憶装置２０８と、ＵＳＢコントローラ２１２と、ローカルネットワークコントローラ２１４と、入力部２１６と、表示部２１８とを含む。これらのコンポーネントはバス２２０を介して接続される。
【００９３】
プロセッサ２０２は、二次記憶装置２０８に格納された各種プログラムを読み出して、主記憶装置２０６に展開して実行することで、後述するような各種処理を実現する。
【００９４】
二次記憶装置２０８は、例えば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成される。二次記憶装置２０８には、典型的には、サポート装置２００において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発プログラムと、データマイニングツール２５０と、データ復元ツール２６０とを含む各種プログラムが格納される。二次記憶装置２０８には、ＯＳおよび他の必要なプログラムが格納されてもよい。
【００９５】
ドライブ２０４は、記憶媒体２０５に対してデータを書き込み、記憶媒体２０５から各種データ（ユーザプログラム、トレースデータまたは時系列データなど）を読み出すことが可能になっている。記憶媒体２０５は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体２０５（例えば、ＤＶＤ（Digital Versatile Disc）などの光学記憶媒体）を含む。メモリカード１１６または記憶媒体２０５から、その中に格納されたプログラムまたはデータが読み取られて二次記憶装置２０８などの内部の記憶領域にインストールされる。
【００９６】
サポート装置２００で実行される各種プログラムは、コンピュータ読取可能なメモリカード１１６または記憶媒体２０５を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置２００が提供する機能は、ＯＳが提供するモジュールの一部を利用する形で実現される場合もある。
【００９７】
ＵＳＢコントローラ２１２は、ＵＳＢ接続を介して制御装置１００との間のデータの遣り取りを制御する。ローカルネットワークコントローラ２１４は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
【００９８】
入力部２１６は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部２１８は、ディスプレイ、各種インジケータなどで構成され、プロセッサ２０２からの処理結果などを出力する。サポート装置２００には、プリンタが接続されてもよい。
【００９９】
図６には、プロセッサ２０２がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路（例えば、ＡＳＩＣまたはＦＰＧＡなど）を用いて実装してもよい。
【０１００】
（ｂ３：上位サーバ３００のハードウェア構成例）
本実施の形態に従う上位サーバ３００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用サーバ）を用いてプログラムを実行することで実現される。そのハードウェア構成は、図６に示すサポート装置２００のハードウェア構成と同様であるので、詳細な説明は繰り返さない。
【０１０１】
（ｂ４：ＨＭＩ４００のハードウェア構成例）
本実施の形態に従うＨＭＩ４００は、一例として、汎用的なアーキテクチャに従うハードウェア（例えば、汎用パソコンをベースとした産業用パソコン）を用いてプログラムを実行することで実現される。そのハードウェア構成は、図６に示すサポート装置２００のハードウェア構成と同様であるので、詳細な説明は繰り返さない。
【０１０２】
＜Ｃ．データ圧縮およびデータ復元＞
本実施の形態に従う異常監視システム１においては、上述の特許文献２に開示されるような最適なアルゴリズムを選択することで圧縮性能を向上させるのではなく、最適なパターンデータを用意することで、圧縮性能を向上させている。特に、パターンデータを用いて生データを復元するにあたっては、異常監視処理の監視結果（圧縮結果１６２）を利用することで、データの圧縮および復元に係る専用の処理をなくして、最適なパターンデータを選択できるようにしている。
【０１０３】
このようなパターンデータは、（１）事前に収集したパターンデータの集合を用いる方法（静的管理）、ならびに、（２）制御装置１００において、ランダムに設定されるサンプル区間の波形、および、異常が発生している可能性が高い区間の波形の両者を組み合わせてパターンデータとする方法（動的管理）、によって管理できる。（２）の動的管理を採用することで、異常が発生した場合のデバッグ性能および不可逆圧縮のデータ保存／復元方法に対するデータ信憑性の改善に有効である。
【０１０４】
動的管理においては、制御装置１００からデータ復元を行う処理主体（上位サーバ３００、ＨＭＩ４００、サポート装置２００など）へパターンデータを含む必要な情報が送信される。処理主体（上位サーバ３００、ＨＭＩ４００、サポート装置２００など）は、制御装置１００と通信可能な外部装置に相当する。典型例として、パターンデータを含む必要な情報は、上位サーバ３００へ送信される。説明の便宜上、パターンデータを含む必要な情報が上位サーバ３００へ送信されることを前提として説明を進めるが、送信先は上位サーバ３００に限らず、任意の処理主体、あるいは制御装置１００自身であってもよい。
【０１０５】
（１）静的管理
事前に収集したパターンデータの集合を用いる場合には、各フレームがいずれのクラスに属するのかを先に決定する。各クラスにおいて、フレームの波形を複数収集した上で、各クラスを代表する波形を選択してパターンデータとして決定する。各クラスを代表する波形を選択する方法としては、同一のクラスに属する複数のフレームの間で、いずれかのフレームの波形を用いて他のフレームを復元した結果の再現性が最も高くなるものを探索することで実現される。最も再現性が高くなる波形は、フレームを復元した結果と元の生データとの間の自己相関が最も高くなるものを探索することで決定できる。
【０１０６】
（２）動的管理
制御装置１００において必要なパターンデータを収集して追加する場合には、異常時の波形、スコアのしきい値、上位サーバ３００へ送信するしきい値などの設定が、上位サーバ３００から事前設定される。制御装置１００から追加パターンデータを受信した上位サーバ３００は、（１）静的管理において説明したようアルゴリズムを用いて、制御装置１００からの追加パターンデータを実際に登録するか否かを判定する。すなわち、追加パターンデータを用いることで、復元した結果の再現性を高められると判定された場合に、当該追加パターンデータが上位サーバ３００に登録されることになる。
【０１０７】
図７は、本実施の形態に従う異常監視システム１における生データの圧縮および復元に係るパターンデータの動的管理が可能な処理手順を示す模式図である。図７に示す処理手順は、図３に示す処理手順に加えて、パターン設定器１８０およびパターンデータサンプリング器１８２が追加されたものである。また、圧縮結果１６２は、追加パターンデータ１６９をさらに含む。
【０１０８】
パターンデータサンプリング器１８２は、生データ１６０に現れる波形をパターンデータとして抽出し、追加パターンデータ１６９として出力する。パターンデータサンプリング器１８２は、パターン設定器１８０により抽出する波形が指定されることになる。
【０１０９】
パターンデータサンプリング器１８２は、異常監視エンジン１５０により算出されるスコア１６４が予め定められたしきい値を超える場合に限って、当該スコア１６４の算出に用いられたフレームの波形を追加パターンデータ１６９として抽出するようにしてもよい。すなわち、パターンデータサンプリング器１８２は、圧縮結果１６２に含まれるスコア１６４が予め定められた値を示す場合に、圧縮結果１６２に対応するデータセットの時間的変化（生データ）を抽出する。そして、特徴量データ１６６およびスコア１６４に加えて、パターンデータサンプリング器１８２により追加されたパターンデータが圧縮結果として出力される。
【０１１０】
例えば、フレーム毎に算出されるスコアの値をｘとし、スコアのしきい値をｙとすると、スコアｘ＞しきい値ｙ、あるいは、（スコアｘ／しきい値ｙ）＞１などの条件が成立した場合に、当該フレームの波形をパターンデータとして抽出するようにしてもよい。
【０１１１】
あるいは、０〜１の乱数を発生する関数ｒａｎｄｏｍ（ｔ）を用いて、ｒａｎｄｏｍ（ｔ）＞Σ（ｘ／ｙ）などの条件が成立した場合に、当該フレームの波形をパターンデータとして抽出するようにしてもよい。このような条件を採用することで、何らかの異常が発生した場合だけではなく、正常時においても追加パターンデータ１６９を抽出できる。
【０１１２】
上述のような処理によって抽出された追加パターンデータ１６９は、上位サーバ３００へ送信され、上位サーバ３００は必要に応じてパターンデータ１６８を更新する。
【０１１３】
図７に示すような構成を採用することで、スコアが相対的に高い（すなわち、何らかの異常が発生しているフレーム）について、必要に応じてパターンデータを追加または更新することができる。このようなパターンデータを追加または更新する仕組みを採用することで、異常時の生データの再現性を高めることができ、あるいは、異常時の新たな波形が現れた場合への対応も可能となる。
【０１１４】
＜Ｄ．処理例＞
次に、本実施の形態に従う異常監視システム１におけるデータ圧縮およびデータ復元の処理例について説明する。
【０１１５】
（ｄ１：正常時の生データの圧縮処理／復元処理）
まず、正常時の生データの圧縮処理／復元処理について説明する。上述したように、異常監視処理の監視結果（圧縮結果１６２）を利用することで、元の生データに対して大幅にデータ量を削減できる（例えば、１０％以下）。
【０１１６】
図８は、本実施の形態に従う異常監視システム１における正常時の生データの圧縮処理を説明するための図である。図８を参照して、生データ１６０が異常監視エンジン１５０（異常監視エンジン１５０）に入力されて特徴量データ１６６が算出される。また、算出された特徴量データ１６６は、学習データ１３０とともに異常監視エンジン１５０に入力され、スコア１６４が算出される。算出される特徴量データ１６６およびスコア１６４は、時系列データとして内部ＤＢ１４０などに保存される。
【０１１７】
このように、正常時（すなわち、スコア１６４が正常範囲にある区間）の生データ１６０は、学習データ１３０を生成するために用いられた正常時の波形に相当する、パターンデータを用いて圧縮される。なお、一般的な異常監視処理においては、大部分の区間が正常な状態であり、ネットワーク帯域および保存領域を削減するためには、正常時の生データ１６０を保存ないし外部出力しないようにすることが好ましい。
【０１１８】
次に、正常時の生データを圧縮して得られた圧縮データを生データに復元する処理について説明する。
【０１１９】
復元処理においては、圧縮データに基づいて、逆正規化の手順に従って生データを復元する。本実施の形態に従うデータ圧縮は、不可逆圧縮であるため、復元された生データは元の生データとは完全には一致しないが、異常時の波形を認識するため、あるいは、他のシステムとの連携などに利用される。
【０１２０】
図９は、本実施の形態に従う異常監視システム１における正常時の生データの復元処理を説明するための図である。図９を参照して、圧縮データとして、スコア１６４および特徴量データ１６６の時系列データがデータ復元器２４０に入力される。データ復元器２４０は、学習データ１３０を生成するために用いられた正常時の波形に相当する、パターンデータを用いて復元される。
【０１２１】
但し、本来の生データ１６０は、通常、パターンデータに示される波形とは振幅およびバイアスが一致しない。そのため、特徴量データ１６６に含まれる平均値および標準偏差を用いることで、振幅およびバイアスを調整した上で、生データに復元する（特徴量を用いた逆正規化）。
【０１２２】
より具体的には、復元される生データ１７０の位置ｉの変位ｘｉ’は、パターンデータの対応する位置ｉの変位ｘｉ、パターンデータの平均値Ｅ（ｘ）、パターンデータの標準偏差Ｓ（ｘ）、特徴量データ１６６の平均値μ、および、特徴量データ１６６の標準偏差σを用いて、以下に示される逆正規化により算出される。
【０１２３】
ｘｉ’＝（ｘｉ−Ｅ（ｘ）／Ｓ（ｓ））×σ＋μ
このように、特徴量データ１６６は、データセット（各フレームの生データ）についての平均値μおよび標準偏差σを含み、データ復元器２４０は、データセット（各フレームの生データ）についての平均値μおよび標準偏差σに基づいて、対応するパターンデータを逆正規化することで、対象のデータセットの時間的変化を復元する。
【０１２４】
なお、複数のパターンデータが登録されている場合には、自己相関が最も高くなるパターンデータを選択して、生データに復元するようにしてもよい。
【０１２５】
このように、データ復元器２４０は、予め用意されたクラス毎のパターンデータを参照して、圧縮結果に含まれるスコア１６４に応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データ１６６を用いて調整した上で、監視結果（圧縮結果１６２）に対応するデータセットの時間的変化として復元する。
【０１２６】
以上のような圧縮処理および復元処理によって、正常時の生データ１６０を効率的に圧縮および復元できる。
【０１２７】
（ｄ２：異常時の生データの圧縮処理／復元処理）
次に、異常時の生データの圧縮処理／復元処理について説明する。異常時の生データは、異常の原因解析および予兆解析などの目的で有益である。そのため、発生した異常において現れた波形が既知の異常時のパターンデータ（波形）と同様であるか否かを判定し、必要に応じて、追加パターンデータとして抽出することで、より高い精度で圧縮および復元が可能となる。
【０１２８】
図１０は、本実施の形態に従う異常監視システム１における異常時の生データの圧縮処理を説明するための図である。図１０を参照して、生データ１６０が異常監視エンジン１５０（異常監視エンジン１５０）に入力されて特徴量データ１６６が算出される。また、算出された特徴量データ１６６は、正常時の波形から生成された学習データ１３０（正常）とともに異常監視エンジン１５０に入力され、スコア１６４が算出される。算出される特徴量データ１６６およびスコア１６４は、時系列データとして内部ＤＢ１４０などに保存される。
【０１２９】
さらに、算出されたスコア１６４がしきい値を超える場合には、パターンデータサンプリング器１８２が既知のパターンデータ（異常時の波形から生成された学習データ１３１（異常））からの乖離度を判定する。そして、既知のパターンデータからの乖離度が大きい波形については、追加パターンデータ１６９として抽出される。すなわち、パターンデータサンプリング器１８２は、予め用意されたパターンデータからの抽出したデータセットの時間的変化の乖離度が、予め定められた値を超える場合に、当該抽出したデータセットの時間的変化をデータ復元器２４０が参照するパターンデータとして追加する。なお、必要に応じて、抽出された追加パターンデータ１６９は上位サーバ３００へ送信されてもよいし、制御装置１００内に保存されてもよい。
【０１３０】
このように、異常時（すなわち、スコア１６４が異常範囲にある区間）の生データ１６０は、学習データ１３１を生成するために用いられた異常時の波形に相当する、パターンデータを用いて圧縮される。あるいは、異常監視処理の過程において抽出された追加パターンデータ１６９を用いて圧縮される。
【０１３１】
次に、異常時の生データを圧縮して得られた圧縮データを生データに復元する処理について説明する。
【０１３２】
異常時の生データの復元処理と同様に、圧縮データに基づいて、パターンデータを利用して逆正規化の手順に従って生データを復元する。復元に利用されるパターンデータは、既知のパターンデータであってもよいし、異常時の新たな波形が生じた場合には、当該新たな波形に対応するパターンデータ（追加パターンデータ１６９）を用いてもよい。
【０１３３】
図１１は、本実施の形態に従う異常監視システム１における異常時の生データの復元処理を説明するための図である。図１１を参照して、圧縮データとして、スコア１６４および特徴量データ１６６の時系列データがデータ復元器２４０に入力される。データ復元器２４０は、異常時の波形から生成された学習データ１３１に含まれるパターンデータを用いて復元される。必要に応じて、特定の区間については、追加パターンデータ１６９を用いて復元されることもある。
【０１３４】
このように、データ復元器２４０は、予め用意されたパターンデータに加えて、パターンデータサンプリング器１８２により追加された追加パターンデータ１６９を参照して、データセットの時間的変化（生データ）を復元する。
【０１３５】
このとき、正常時の生データの復元処理と同様に、特徴量データ１６６に含まれる平均値および標準偏差を用いることで、振幅およびバイアスを調整した上で、生データに復元する（特徴量を用いた逆正規化）。具体的な手順については、図９に示す正常時の生データの復元処理と同様であるので、詳細な説明は繰り返さない。
【０１３６】
このように、データ復元器２４０は、予め用意されたクラス毎のパターンデータを参照して、圧縮結果に含まれるスコア１６４に応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データ１６６を用いて調整した上で、圧縮結果１６２（監視結果）に対応するデータセットの時間的変化として復元する。
【０１３７】
以上のような圧縮処理および復元処理によって、異常時の生データ１６０を効率的に圧縮および復元できる。
【０１３８】
（ｄ３：表示例）
次に、本実施の形態に従う異常監視処理における生データの保存機能を利用した利点などについて説明する。
【０１３９】
図１２は、本実施の形態に従う異常監視処理における監視結果のみを表示する表示例を示す模式図である。図１３は、本実施の形態に従う異常監視処理における復元された生データを表示する表示例を示す模式図である。
【０１４０】
図１２を参照して、本実施の形態に従う異常監視処理においては、入力データから算出される特徴量データ１６６、および、特徴量データ１６６から算出されるスコア１６４を用いて、異常の有無を監視する。一方で、これらのデータのみを表示しただけでは、なぜ異常であるのか、および、異常が発生したときにどのようなことが生じているのかといったことを推測することが容易ではない。
【０１４１】
これに対して、図１３に示すような復元された生データを併せて表示することで、異常が発生したときにどのようなことが生じているのかを一見して把握できる。さらに、発生した異常の真の要因を過去の実績などと照らし合わせて確認することもできる。
【０１４２】
何らかの異常が発生した場合には、当該異常との判定に用いた情報（特徴量およびスコア）だけではなく、当該異常が生じたときの生データ（波形）を復元して表示することにより、ユーザは、現実の制御対象の状態を容易に理解あるいは推測できるようになる。
【０１４３】
＜Ｅ．処理手順＞
次に、本実施の形態に従う異常監視処理を利用した生データの圧縮および復元に係る処理について説明する。
【０１４４】
（ｅ１：圧縮処理）
図１４は、本実施の形態に従う異常監視処理を利用した生データの圧縮処理の処理手順を示すフローチャートである。図１４には、制御装置１００および上位サーバ３００でそれぞれ処理が実行される例を示す。典型的には、制御装置１００のプロセッサ１０２がシステムプログラム１２６を実行することで、制御装置１００の各ステップは実現され、同様に、上位サーバ３００のプロセッサが必要なプログラムを実行することで、上位サーバ３００の各ステップは実現される。
【０１４５】
図１４を参照して、制御装置１００は、フレームを開始するための条件が成立したか否かを判断する（ステップＳ１００）。フレームを開始するための条件が成立していなければ（ステップＳ１００においてＮＯ）、ステップＳ１００の処理が繰り返される。
【０１４６】
フレームを開始するための条件が成立していれば（ステップＳ１００においてＹＥＳ）、制御装置１００は、予め定められた入力データを収集する（ステップＳ１０２）。
【０１４７】
続いて、制御装置１００は、フレームを終了するための条件が成立したか否かを判断する（ステップＳ１０４）。フレームを終了するための条件が成立していれば（ステップＳ１０４においてＮＯ）、ステップＳ１０２以下の処理が繰り返される。
【０１４８】
フレームを終了するための条件が成立していれば（ステップＳ１０４においてＹＥＳ）、制御装置１００は、ステップＳ１０２において収集した入力データからなるデータセットから特徴量データ１６６を算出する（ステップＳ１０６）。そして、制御装置１００は、学習データ１３０を参照して、特徴量データ１６６からスコアを算出する（ステップＳ１０８）。
【０１４９】
制御装置１００は、算出したスコアに基づいていずれのクラスに属するのかを決定する（ステップＳ１１０）。典型的には、監視対象が正常であるのか、あるいは、何らかの異常が発生しているのかを判断する。
【０１５０】
算出したスコアが異常のクラスに属すると判断されると（ステップＳ１００において「異常」）、制御装置１００は、対象のデータセットの予め登録されている学習データ１３１に含まれるパターンデータからの乖離度を算出する（ステップＳ１１２）。そして、制御装置１００は、算出された乖離度が予め定められたしきい値を超えているか否かを判断する（ステップＳ１１４）。
【０１５１】
算出された乖離度が予め定められたしきい値を超えていれば（ステップＳ１１４においてＹＥＳ）、制御装置１００は、対象のデータセットを追加パターンデータ１６９として抽出する（ステップＳ１１６）。制御装置１００は、抽出した追加パターンデータ１６９を自装置内に保存し、あるいは、上位サーバ３００へ送信する。
【０１５２】
算出された乖離度が予め定められたしきい値を超えていなければ（ステップＳ１１４においてＮＯ）、ステップＳ１１６の処理はスキップされる。
【０１５３】
一方、算出したスコアが正常のクラスに属すると判断されると（ステップＳ１００において「正常」）、ステップＳ１１２〜Ｓ１１６の処理はスキップされる。
【０１５４】
以上の一連の処理が終了すると、ステップＳ１００以下の処理が繰り返される。
また、上位サーバ３００は、制御装置１００から追加パターンデータ１６９を受信したか否かを判断する（ステップＳ２００）。制御装置１００から追加パターンデータ１６９を受信していなければ（ステップＳ２００においてＮＯ）、ステップＳ２００の処理が繰り返される。
【０１５５】
制御装置１００から追加パターンデータ１６９を受信していれば（ステップＳ２００においてＹＥＳ）、上位サーバ３００は、制御装置１００から受信した追加パターンデータ１６９を格納する（ステップＳ２０２）。
【０１５６】
以上の一連の処理が終了すると、ステップＳ２００以下の処理が繰り返される。
（ｅ２：復元処理）
図１５は、本実施の形態に従う異常監視処理を利用した生データの復元処理の処理手順を示すフローチャートである。図１５には、上位サーバ３００において復元処理が実行される例を示す。典型的には、上位サーバ３００のプロセッサが必要なプログラムを実行することで、上位サーバ３００の各ステップは実現される。
【０１５７】
図１５を参照して、上位サーバ３００は、ユーザからの要求または予め定められた条件の成立によって、制御装置１００に格納されている圧縮結果（特徴量およびスコアの時系列データ）を取得する（ステップＳ１５０）。
【０１５８】
そして、上位サーバ３００は、復元対象のフレームのうちいずれかのフレームを対象として選択し（ステップＳ１５２）、当該対象として選択したフレームのスコアに基づいて、当該対象として選択したフレームが正常および異常のいずれのクラスに属するのかを判断する（ステップＳ１５４）。
【０１５９】
当該対象として選択したフレームが正常のクラスに属すると判断されると（ステップＳ１５４において「正常」）、上位サーバ３００は、正常時の波形から生成された学習データ１３０に対応付けられるパターンデータを用いて、対象フレームの区間の生データ（波形）を復元する（ステップＳ１５６）。
【０１６０】
一方、当該対象として選択したフレームが正常のクラスに属すると判断されると（ステップＳ１５４において「異常」）、上位サーバ３００は、異常時の波形から生成された学習データ１３０に対応付けられるパターンデータ、または、追加パターンデータ１６９を用いて、対象フレームの区間の生データ（波形）を復元する（ステップＳ１５８）。
【０１６１】
そして、上位サーバ３００は、復元対象のフレームのすべてについて生データの復元が完了したか否かを判断する（ステップＳ１６０）。復元対象のフレームのうちいずれかの生データの復元が完了していなければ（ステップＳ１６０においてＮＯ）、上位サーバ３００は、次のフレームを対象として選択し（ステップＳ１６２）、ステップＳ１５４以下の処理を繰り返す。
【０１６２】
復元対象のフレームのすべてについて生データの復元が完了していれば（ステップＳ１６０においてＹＥＳ）、上位サーバ３００は、復元した生データを出力する（ステップＳ１６４）。そして、データ復元の処理は完了する。
【０１６３】
＜Ｆ．変形例＞
以下、いくつかの変形例について説明する。
【０１６４】
（ｆ１：制御装置１００で実行される復元処理）
上述の説明においては、制御装置１００以外の処理主体（上位サーバ３００、ＨＭＩ４００、サポート装置２００など）がデータ復元器２４０を有している構成例を説明したが、これに限らず、制御装置１００にデータ復元器２４０を配置するようにしてもよい。制御装置１００にデータ復元器２４０を配置することで、復元された生データを利用できるようになるので、各種のデータ活用が可能となる。
【０１６５】
図１６は、本実施の形態の変形例に従う異常監視システム１の全体構成例を示す模式図である。図１６に示す異常監視システム１においては、フィールド側で生データを圧縮し、制御装置１００で復元することが可能になっている。これにより、制御装置１００は、復元された生データを活用できる。
【０１６６】
より具体的には、図１６を参照して、リモートＩ／Ｏ装置１２はデータ圧縮部１９０を有している。データ圧縮部１９０は、フィールドから取得される入力データ（生データ）に対して、特徴抽出およびスコア算出の処理を実行する。データ圧縮部１９０は、スコア１６４および特徴量データ１６６を含む圧縮結果１９２を生成し、制御装置１００へ送信する。
【０１６７】
なお、フィールド側にデータ圧縮部１９０を実装するにあたっては、プロセッサを用いて実現するだけではなく、ＦＰＧＡなどの処理を高速化できるデバイスを用いてもよい。このようなデバイスを採用することで、プログラムのリアルタイム性を確保できる。
【０１６８】
制御装置１００は、データ復元器２４０を有しており、データ復元器２４０は、圧縮結果１９２を生データ１７０に復元する。これにより、制御装置１００において、復元された生データ１７０にアクセス可能になる。典型的には、制御装置１００で実行されるユーザプログラム１２８は、復元された生データ１７０を活用できる。
【０１６９】
例えば、ユーザプログラム１２８は、復元された生データ１７０に基づいて、フレーム中の波形の立ち上がりに要する時間などを算出し、当該算出した時間が予め定められたしきい値を下回るような急激なものである場合には、任意のアクチュエータを制御して、適切な時間に補正するといった処理を実現できる。
【０１７０】
このように、図１６に示す異常監視システム１においては、制御装置１００において生データ１７０へ復元できるので、ユーザプログラム１２８などから有効な情報を参照できる。
【０１７１】
さらに、図１６に示す異常監視システム１においては、フィールドバスを介して接続される任意のデバイスと制御装置１００と間のデータ転送量に制約があるような場合にも有効である。例えば、デバイスでのサンプリング周期が短い場合や、伝送すべき情報が大量に存在する場合などに有効である。
【０１７２】
図１６に示す異常監視システム１においては、フィールド側で何らかの異常が生じた場合の情報を制御装置１００側に保存することができる。このような情報の保存によって、トレーサビリティを有するデータ管理を実現できる。
【０１７３】
また、何らかの異常が発生した特定のフレームのデータをトリガとする処理をユーザプログラム１２８に含めることで、異常時の特殊処理や自己診断機能などを容易に実現できる。
【０１７４】
（ｆ２：サポート装置２００で実行される復元処理）
制御装置１００において、入力データから算出される特徴量データに基づいて制御を実行することも可能であるが、このような制御を実行するユーザプログラム１２８のデバッグは困難なものとなる。そこで、サポート装置２００において、生データに復元するとともに、当該復元した生データを参照することによりデバッグの効率を高めることができる。
【０１７５】
すなわち、ユーザプログラム１２８は特徴量データに基づいて処理を実行するが、ユーザプログラム１２８自体は、サポート装置２００を用いて、オンラインのデバッグ時などに復元された生データなどを確認できるようにすることで、その妥当性の確認を容易化する。
【０１７６】
図１７は、本実施の形態の別の変形例に従う異常監視システム１の全体構成例を示す模式図である。図１７に示す異常監視システム１においては、フィールド側で生データを圧縮し、サポート装置２００で復元することが可能になっている。これにより、サポート装置２００側で復元された生データを活用できる。
【０１７７】
より具体的には、図１７を参照して、リモートＩ／Ｏ装置１２はデータ圧縮部１９０を有している。データ圧縮部１９０は、フィールドから取得される入力データ（生データ）に対して、特徴抽出およびスコア算出の処理を実行する。データ圧縮部１９０は、スコア１６４および特徴量データ１６６を含む圧縮結果１９２を生成し、制御装置１００へ送信する。
【０１７８】
なお、フィールド側にデータ圧縮部１９０を実装するにあたっては、プロセッサを用いて実現するだけではなく、ＦＰＧＡなどの処理を高速化できるデバイスを用いてもよい。このようなデバイスを採用することで、プログラムのリアルタイム性を確保できる。
【０１７９】
制御装置１００で実行されるユーザプログラム１２８は、圧縮結果１９２に含まれる特徴量データ１６６に基づいて処理を実行する。
【０１８０】
また、圧縮結果１９２はサポート装置２００へ転送され、あるいは、サポート装置２００は制御装置１００が保持する圧縮結果１９２を参照することができる。サポート装置２００は、データ復元器２４０を有しており、データ復元器２４０は、圧縮結果１９２を生データ１７０に復元する。これにより、サポート装置２００において、復元された生データ１７０を参照可能になる。典型的には、制御装置１００で実行されるユーザプログラム１２８をサポート装置２００上でデバッグするような場面において、復元された生データ１７０を参照でき、デバッグを効率化できる。
【０１８１】
このように、特徴量データを用いて処理を実行するユーザプログラム１２８では、ユーザプログラム１２８単体のデバッグしかできず、生データとの整合性などを確認する統合デバッグが行えない。これに対して、データ復元器２４０をサポート装置２００に実装することで、復元された生データの確認および記録が可能となり、生データに対するユーザプログラム１２８の挙動が適正であるかを容易に確認できる。
【０１８２】
例えば、特徴量データ１６６のうち、分散を利用して、バラツキを監視するようなユーザプログラム１２８を作成することがあり得る。このような場合、分散を条件とするユーザプログラム１２８について、単体テストとして動作確認は可能であるが、現実のデータに対して正しく判断がなされているのかを確認することは難しい。このような課題に対して、従来では、制御装置１００に搭載れるデータトレース機能を用いたデバッグや、実際のセンサなどに計測器を接続して確認する方法などが想定されるが、前者についてはフィライトバス上のデバイスでのデータ圧縮には対応できず、後者については手間がかかるという課題がある。
【０１８３】
このような課題に対して、上述したような手法を採用することで、より容易にデバッグが可能となる。
【０１８４】
＜Ｇ．付記＞
上述したような本実施の形態は、以下のような技術思想を含む。
【０１８５】
［構成１］
１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成する生成部（１５２）と、
前記データセットに基づいて特徴量データ（１６６）を生成する特徴抽出部（１５４）と、
特定のクラスがラベル付けされた特徴量データからなる学習データ（１３０）を参照して、前記特徴量データの前記学習データに対する外れ度合いを示すスコア（１６４）を算出するスコア算出部（１５６）とを備え、前記特徴量データ（１６６）および前記スコア（１６４）は、前記データセットの圧縮結果（１６２）として出力され、
予め用意されたクラス毎のパターンデータ（１６８）を参照して、前記圧縮結果に含まれる前記スコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化（１７０）として復元する復元部（２４０）を備える、制御システム。
【０１８６】
［構成２］
複数の前記圧縮結果が連続的に出力され、
前記復元部は、前記圧縮結果の各々からデータセットの時間的変化を連続的に復元する、構成１に記載の制御システム。
【０１８７】
［構成３］
前記特徴量データは、前記データセットについての平均値（１６６１）および標準偏差（１６６２）を含み、
前記復元部は、前記データセットについての平均値および標準偏差に基づいて、対応するパターンデータを逆正規化することで、当該データセットの時間的変化を復元する、構成１または２に記載の制御システム。
【０１８８】
［構成４］
前記圧縮結果に含まれる前記スコアが予め定められた値を超える場合に、当該圧縮結果に対応するデータセットの時間的変化を抽出するサンプリング部（１８２）をさらに備える、構成１〜３のいずれか１項に記載の制御システム。
【０１８９】
［構成５］
前記サンプリング部は、前記予め用意されたパターンデータからの前記抽出したデータセットの時間的変化の乖離度が、予め定められた値を超える場合に、当該抽出したデータセットの時間的変化を前記復元部が参照するパターンデータ（１６９）として追加する、構成４に記載の制御システム。
【０１９０】
［構成６］
前記特徴量データおよび前記スコアに加えて、前記サンプリング部により追加されたパターンデータ（１６９）が前記圧縮結果として出力される、構成５に記載の制御システム。
【０１９１】
［構成７］
前記復元部は、前記予め用意されたパターンデータに加えて、前記サンプリング部により追加されたパターンデータ（１６９）を参照して、データセットの時間的変化を復元する、構成５または６に記載の制御システム。
【０１９２】
［構成８］
前記スコアに基づいて、前記１または複数の入力値に関連する監視対象に異常が発生しているかを判定する判定部（１５８）をさらに備える、構成１〜７のいずれか１項に記載の制御システム。
【０１９３】
［構成９］
制御対象を制御する制御装置（１００）と、
前記制御装置と通信可能な外部装置（２００；３００：４００）とを備え、
前記生成部（１５２）、前記特徴抽出部（１５４）および前記スコア算出部（１５６）は、前記制御装置に配置され、
前記復元部（２４０）は、前記外部装置に配置される、構成１〜８のいずれか１項に記載の制御システム。
【０１９４】
［構成１０］
制御対象を制御する制御装置（１００）を含む制御システム（１）において実行される制御方法であって、
１または複数の入力値の時間的変化からなるデータセットを単位区間毎に生成するステップ（Ｓ１００，Ｓ１０２，Ｓ１０４）と、
前記データセットに基づいて特徴量データ（１６６）を生成するステップ（Ｓ１０６）と、
特定のクラスがラベル付けされた特徴量データからなる学習データ（１３０）を参照して、前記特徴量データの前記学習データに対する外れ度合いを示すスコアを算出するステップ（Ｓ１０８）とを備え、前記特徴量データ（１６６）および前記スコア（１６４）は、前記データセットの圧縮結果（１６２）として出力され、
予め用意されたクラス毎のパターンデータ（１６８）を参照して、前記圧縮結果に含まれる前記スコアに応じて決定されるクラスに対応するパターンデータを選択するとともに、当該圧縮結果に含まれる特徴量データを用いて調整した上で、当該圧縮結果に対応するデータセットの時間的変化（１７０）として復元するステップ（Ｓ１５２，Ｓ１５４，Ｓ１５６，Ｓ１５８，Ｓ１６０）を備える、制御方法。
【０１９５】
＜Ｈ．利点＞
本実施の形態に従う異常監視システムにおいては、異常監視処理を利用して、生データを圧縮した上での保存を実現できる。また、圧縮された生データは、パターンデータを用いて適切に復元できる。このように、異常監視処理およびデータの圧縮および復元の処理を共通の処理として実行できるので、データ保存に係る処理負荷の増大を防止するとともに、効率的な生データの蓄積を実現できる。
【０１９６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１９７】
１  異常監視システム、２  第１フィールドバス、４  第２フィールドバス、６  ローカルネットワーク、１０  フィールド装置群、１２  リモートＩ／Ｏ装置、１４  リレー群、１６，１２４  Ｉ／Ｏユニット、１８  画像センサ、２０  カメラ、２２  サーボドライバ、２４  サーボモータ、５０  データ圧縮フェーズ、６０  データ復元フェーズ、１００  制御装置、１０２，２０２  プロセッサ、１０４  チップセット、１０６，２０６  主記憶装置、１０８，２０８  二次記憶装置、１１０，２１４  ローカルネットワークコントローラ、１１２，２１２  ＵＳＢコントローラ、１１４  メモリカードインターフェイス、１１６  メモリカード、１１８，１２０  フィールドバスコントローラ、１２２  内部バスコントローラ、１２６  システムプログラム、１２８  ユーザプログラム、１３０，１３１  学習データ、１４０  内部ＤＢ、１５０  異常監視エンジン、１５２  データセット生成部、１５４  特徴抽出部、１５６  スコア算出部、１５８  クラス決定部、１６０，１７０  生データ、１６２，１９２  圧縮結果、１６４  スコア、１６６  特徴量データ、１６８  パターンデータ、１６９  追加パターンデータ、１８０  パターン設定器、１８２  パターンデータサンプリング器、１９０  データ圧縮部、２００  サポート装置、２０４  ドライブ、２０５  記憶媒体、２１６  入力部、２１８  表示部、２２０  バス、２４０  データ復元器、２５０  データマイニングツール、２６０  データ復元ツール、３００  上位サーバ、４００  ＨＭＩ、１６６１  第１特徴量データ、１６６２  第２特徴量データ。
【図１】
2020067730.tif 000003
【図２】
2020067730.tif 000004
【図３】
2020067730.tif 000005
【図４】
2020067730.tif 000006
【図５】
2020067730.tif 000007
【図６】
2020067730.tif 000008
【図７】
2020067730.tif 000009
【図８】
2020067730.tif 000010
【図９】
2020067730.tif 000011
【図１０】
2020067730.tif 000012
【図１１】
2020067730.tif 000013
【図１２】
2020067730.tif 000014
【図１３】
2020067730.tif 000015
【図１４】
2020067730.tif 000016
【図１５】
2020067730.tif 000017
【図１６】
2020067730.tif 000018
【図１７】
2020067730.tif 000019