本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
<A.適用例>
まず、本発明が適用される場面の一例について説明する。
本実施の形態に係る予測機能を有する制御システムの主要な局面について説明する。以下の説明においては、主として、制御システムが有している異常検知機能に注目して説明するので、制御システム全体を「異常検知システム」とも称する。
図1は、本実施の形態に係る異常検知システム1の全体構成例を示す模式図である。図1を参照して、本実施の形態に係る異常検知システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続されるサポート装置200とを含む。
制御装置100は、PLC(プログラマブルコントローラ)などの、一種のコンピュータとして具現化されてもよい。制御装置100は、フィールドバス2を介してフィールド装置群10と接続されるとともに、フィールドバス4を介して1または複数の表示装置400と接続されてもよい。なお、表示装置400はオプショナルな構成であり、異常検知システム1に必須ではない。
制御装置100は、設備や機械を制御するための各種演算を実行する制御ロジック(以下、「PLCエンジン」とも称す。)を有している。PLCエンジンに加えて、制御装置100は、フィールド装置群10にて計測され、制御装置100へ転送されるデータ(以下、「入力データ」とも称す。)を収集する収集機能を有している。さらに、制御装置100は、収集した入力データに基づいて異常を検知する異常検知機能も有している。
具体的には、制御装置100に実装される時系列データベース(以下、「TSDB(Time Series Data Base)」とも記す。)130が収集機能を提供し、制御装置100に実装される異常検知エンジン150が異常検知機能を提供する。TSDB140および異常検知エンジン150の詳細については後述する。
フィールドバス2およびフィールドバス4は、産業用の通信プロトコルを採用することが好ましい。このような通信プロトコルとしては、EtherCAT(登録商標)、EtherNet/IP(登録商標)、DeviceNet(登録商標)、CompoNet(登録商標)などが知られている。
フィールド装置群10は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)から入力データを収集する装置を含む。このような入力データを収集する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群10は、制御装置100にて生成される指令(以下、「出力データ」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、フィールドバス2を介して、制御装置100との間で、入力データおよび出力データを含む任意のデータをやり取りする。
図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
リモートI/O装置12は、フィールドバス2を介して通信を行う通信部と、入力データの収集および出力データの出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力データおよび出力データがやり取りされる。図1には、リレー群14を介して、入力データおよび出力データとして、デジタル信号がやり取りされる例が示されている。
I/Oユニットは、フィールドバスに直接接続されるようにしてもよい。図1には、フィールドバス2にI/Oユニット16が直接接続されている例を示す。
画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
サーボドライバ22は、制御装置100からの出力データ(例えば、位置指令など)に従って、サーボモータ24を駆動する。
上述のように、フィールドバス2を介して、制御装置100とフィールド装置群10との間で任意のデータがやり取りされることになるが、これらのやり取りされるデータは、数百μsecオーダ~数十msecオーダのごく短い周期で更新されることになる。なお、このようなやり取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
フィールドバス4を介して制御装置100と接続される表示装置400は、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での演算結果などをグラフィカルに表示する。
サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する情報処理装置(コンピュータの一例)である。具体的には、サポート装置200は、制御装置100で実行されるユーザプログラムの開発を支援する機能(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)の設定を支援する機能、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
本実施の形態に係るサポート装置200は、制御装置100に実装される異常検知エンジン150(異常検知モデルを用いて実現される)の生成および更新を支援するための機能を有している。すなわち、サポート装置200は、検知対象に生じ得る異常を検知するための異常検知モデルを生成する。
サポート装置200は、ネットワークなどを介してモデル情報サーバ300に接続可能になっている。
モデル情報サーバ300は、異常検知エンジン150を実現するために必要な異常検知モデルを生成するための情報を提供する。より具体的には、モデル情報サーバ300は、異常検知モデルの生成に用いられるモデル生成情報を格納したモデル情報データベース330を有している。モデル情報データベース330は、モデル生成情報を格納した情報格納手段に相当する。
なお、モデル情報サーバ300は、インターネット6などを介してクラウド上に配置してもよいし、サポート装置200の一部として実装してもよい。すなわち、モデル情報サーバ300の実装形態はどのようなものであってもよい。
異常検知モデルを作成する場合には、まず、フィールド装置群10から検知対象に関する時系列データである実績データが収集されて、TSDB140に格納される((1)実績データ収集)。TSDB140は、検知対象に関する実績データを収集する収集手段に相当する。TSDB140に格納された実績データは、サポート装置200へ転送される((2)実績データ取得)。
ユーザは、サポート装置200を操作することで、モデル情報サーバ300のモデル情報データベース330を参照して、適切なモデル生成情報を取得する((3)モデル情報DB参照)。そして、サポート装置200は、ユーザ操作に応じて、異常検知モデルを生成し((4)モデル生成)、制御装置100に転送する((5)異常検知モデル転送)。これによって、制御装置100に異常検知エンジン150が実現される。
図2は、本実施の形態に係る異常検知システム1における異常検知モデルの生成処理の概略を示す模式図である。図2を参照して、異常検知エンジン150を実現するための異常検知モデルの生成処理について概略する。
先に、異常検知の対象となる機構の耐久性などを事前実験することで、データ分布などを取得して、モデル生成情報として、モデル情報サーバ300のモデル情報データベース330に登録する(ST1)。すなわち、モデル生成情報は、対象の機構を実験して得られた結果に基づいて生成される。モデル情報データベース330に登録されるモデル生成情報は、可能な限り充実していることが好ましい。
任意の検知対象について異常検知モデルを生成する場合には、まず、当該検知対象に関する実績データを収集する(ST2)。収集された実績データは、制御装置100のTSDB140に書き込まれる。
サポート装置200は、ユーザ操作に応じて、モデル情報サーバ300のモデル情報データベース330に登録されているモデル生成情報のうち適切なモデル生成情報を取得するとともに、制御装置100のTSDB140から対象の実績データを取得する。そして、サポート装置200は、異常検知モデルを生成する(ST3)。
本実施の形態に係る異常検知システム1において、異常検知モデルは、異常検知用パラメータおよび学習データセットを含む。そのため、以下の説明においては、異常検知モデルを生成する処理は、異常検知用パラメータおよび学習データセットを生成する処理を含む。
本明細書において、「学習データセット」は、異常検知エンジン150において参照される教師データの集合を意味する。基本的には、「学習データセット」は、検知対象の本来の状態あるいは通常の状態を示す情報(すなわち、正常状態の情報)の集合である。但し、「学習データセット」は、検知対象の本来とは異なる状態あるいは通常とは異なる状態を示す情報(すなわち、異常状態の情報)を含んでいてもよい。この場合には、各情報について、正常状態あるいは異常状態のいずれであるかのラベルが付与される。
本明細書において、「異常検知用パラメータ」は、正常状態であるか異常状態であるかを判断する(あるいは、識別する)ためのしきい値を含む。「異常検知用パラメータ」は、正常状態であるか異常状態であるかを判断するために使用される特徴量などを指定する情報を含んでいてもよい。
本明細書において、「特徴量」は、検知対象に関連付けられた時系列データに含まれる任意情報を包含する用語であり、検知対象の状態を代表する1または複数次元の値を意味する。「特徴量」は、例えば、検知対象に関連付けられた時系列データについての、最大値、最小値、中間値、平均値、標準偏差、分散などを含み得る。なお、「特徴量」は、検知対象に関連付けられた時系列データそのものも含み得る。
なお、異常検知用パラメータおよび学習データセットの具体例については後述する。
生成された異常検知モデルは、サポート装置200から制御装置100へ転送される。
制御装置100は、サポート装置200から提供された異常検知モデルを用いて、異常検知エンジン150を実現する。これによって、制御装置100では、異常検知の運用が開始される(ST4)。
制御装置100の異常検知エンジン150は、生成された異常検知モデルに基づいて検知対象に何らかの異常が発生しているか否かを判断する異常検知手段に相当する。より具体的には、異常検知エンジン150は、異常検知モデルに含まれる異常検知用パラメータに従って、1または複数の入力データから1または複数の特徴量を算出し、算出された1または複数の特徴量に基づいて、異常の有無を判断する。この異常の有無の判断には、異常検知モデルに含まれる学習データセットが参照される。
<B.ハードウェア構成例>
次に、本実施の形態に係る異常検知システム1を構成する主要な装置のハードウェア構成例について説明する。
(b1:制御装置100のハードウェア構成例)
図3は、本実施の形態に係る異常検知システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。図3を参照して、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、ネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ122と、フィールドバスコントローラ118,120と、I/Oユニット124-1,124-2,…とを含む。
プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、PLCエンジン130および異常検知エンジン150を実現する。チップセット104は、プロセッサ102と各コンポーネントとのデータ伝送などを制御する。
二次記憶装置108には、PLCエンジン130および異常検知エンジン150を実現するためのシステムプログラム126に加えて、PLCエンジン130を利用して実行されるユーザプログラム132が格納される。さらに、二次記憶装置108には、TSDB140を実現するための記憶領域も確保される。
ネットワークコントローラ110は、ネットワークを介した別の装置とのデータのやり取りを制御する。USBコントローラ112は、USB接続を介したサポート装置200とのデータのやり取りを制御する。
メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124-1,124-2,…との間でデータをやり取りするインターフェイスである。
フィールドバスコントローラ118は、フィールドバス2を介した別の装置とのデータのやり取りを制御する。同様に、フィールドバスコントローラ120は、フィールドバス4を介した別の装置とのデータのやり取りを制御する。
図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
(b2:サポート装置200のハードウェア構成例)
本実施の形態に係るサポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
図4は、本実施の形態に係る異常検知システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。図4を参照して、サポート装置200は、CPUやMPUなどのプロセッサ202と、光学ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ローカルネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントは、バス220を介して接続される。
プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような異常検知モデルの生成処理を含む各種処理を実現する。
二次記憶装置208は、例えば、HDD(Hard Disk Drive)やSSD(Flash Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したユーザプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための開発プログラム222と、ユーザに対してデータを提示するとともに、ユーザからの指示を受け付けるPLCインターフェイスプログラム224と、異常検知モデルの生成などを実現するためのモデル生成プログラム226と、OS228とが格納される。すなわち、PLCインターフェイスプログラム224およびモデル生成プログラム226は、検知対象に生じ得る異常を検知するための異常検知モデルを生成するための情報処理プログラムに相当する。なお、二次記憶装置208には、図4に示すプログラム以外の必要なプログラムが格納されてもよい。
サポート装置200は、光学ドライブ204を有しており、コンピュータ読取可能なプログラムを非一過的に格納する記録媒体205(例えば、DVD(Digital Versatile Disc)などの光学記録媒体)から、その中に格納されたプログラムが読み取られて二次記憶装置208などにインストールされる。
サポート装置200で実行される各種プログラムは、コンピュータ読取可能な記録媒体205を介してインストールされてもよいが、ネットワーク上の任意のサーバからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に係るサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
USBコントローラ212は、USB接続を介して制御装置100とのデータのやり取りを制御する。ローカルネットワークコントローラ214は、任意のネットワークを介した別の装置とのデータのやり取りを制御する。
入力部216は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部218は、ディスプレイ、各種インジケータ、プリンタなどで構成され、プロセッサ202からの処理結果などを出力する。
図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
<C.ソフトウェア構成例/機能構成例>
次に、本実施の形態に係る異常検知システム1を構成する制御装置100およびサポート装置200のソフトウェア構成例および機能構成例について説明する。
図5は、本実施の形態に係る異常検知システム1を構成する制御装置100およびサポート装置200のソフトウェア構成例を示すブロック図である。
図5を参照して、制御装置100は、主要な機能構成として、PLCエンジン130と、TSDB140と、異常検知エンジン150とを含む。
PLCエンジン130は、ユーザプログラム132を逐次解釈して、指定された制御演算を実行する。PLCエンジン130は、フィールド装置群10などから収集される入力データを変数138の形で管理しており、変数138の値は所定周期毎に更新される。PLCエンジン130は、制御装置100のプロセッサ102がシステムプログラム126(図3)を実行することで実現されてもよい。
異常検知機能の一部として、ユーザプログラム132は、特徴量生成命令134および書込命令136を含む。
特徴量生成命令134は、予め定められた1または複数の入力データから予め定められた1または複数の特徴量(例えば、所定時間に亘る平均値、最大値、最小値など)を生成するための命令を含む。生成された1または複数の特徴量は、異常検知エンジン150における異常検知処理に与えられる。
書込命令136は、フィールド装置群10などから収集された1または複数の入力データをTSDB140に順次書き込むための命令を含む。
TSDB140に順次書き込まれる1または複数の入力データの一部または全部は、実績データ142として出力することもできる。実績データ142は、サポート装置200における異常検知モデルの生成処理でも利用される。
異常検知エンジン150は、異常検知用パラメータ160および学習データセット162を参照することで、異常検知機能を実現する。但し、異常検知エンジン150の基本的な処理自体は、制御装置100のプロセッサ102がシステムプログラム126(図3)を実行することで実現されてもよい。
異常検知エンジン150は、検知対象の1または複数の特徴量が学習データセット162に含まれる正常状態を示す特徴量の集合から乖離している度合いを算出するとともに、異常検知用パラメータ160に含まれるしきい値などを判断基準として、何らかの異常が発生しているか否かを判断する。異常検知エンジン150は、何らかの異常が発生していると判断(異常を検知)すると、その旨をPLCエンジン130へ通知し、あるいは、変数138のうち予め定められた値を、異常を示す値に変更する。
一方、サポート装置200は、主要な機能構成として、PLCインターフェイス機能230と、解析機能240とを含む。
PLCインターフェイス機能230は、制御装置100から実績データ142を取得する処理、および、生成した異常検知モデル(異常検知用パラメータ160および学習データセット162)を制御装置100へ転送する処理などを担当する。PLCインターフェイス機能230は、典型的には、サポート装置200のプロセッサ202がPLCインターフェイスプログラム224(図4)を実行することで実現される。
解析機能240は、モデル情報サーバ300から取得したモデル生成情報と、制御装置100から取得した実績データ142とを用いて、異常検知モデル(異常検知用パラメータ160および学習データセット162)を生成する。すなわち、解析機能240は、モデル情報サーバ300に格納されたモデル生成情報のうち検知対象に適したモデル生成情報に、検知対象に関する実績データ142を適用することで、異常検知モデルを生成するモデル生成手段に相当する。解析機能240は、典型的には、サポート装置200のプロセッサ202がモデル生成プログラム226(図4)を実行することで実現される。
より具体的には、解析機能240は、特徴量生成モジュール242と、取得モジュール244と、異常検知モジュール246と、モデル生成モジュール248とを含む。
特徴量生成モジュール242は、制御装置100の特徴量生成命令134と同様に、実績データ142に含まれる1または複数の入力データから予め定められた1または複数の特徴量を生成する。
取得モジュール244は、モデル情報サーバ300のモデル情報データベース330にアクセスして、モデル情報データベース330に格納されている1または複数のモデル生成情報を取得する。すなわち、取得モジュール244は、異常検知モデルの生成に用いられるモデル生成情報を格納したモデル情報データベース330にアクセスするアクセス手段に相当する。
異常検知モジュール246は、制御装置100の異常検知エンジン150と同様に、特徴量生成モジュール242により生成された1または複数の特徴量に基づいて、何らかの異常が発生しているか否かを判断する。
モデル生成モジュール248は、異常検知モデル(異常検知用パラメータ160および学習データセット162)を生成する。
<D.モデル生成情報>
次に、本実施の形態に係る異常検知システム1において使用されるモデル生成情報の一例について説明する。
図6は、本実施の形態に係る異常検知システム1において使用されるモデル生成情報340の一例を説明するための図である。図6には、任意の検知対象(図6に示す例では、機構A)から取得された特徴量(例えば、機構Aの速度の最大値など)の時間的変化50の一例を示す。検知対象の正常状態と異常状態との間で値により大きな変化を生じる特徴量を異常検知に使用することが好ましい。
図6に示す時間的変化50においては、時間経過とともに、特徴量が全体的により大きな値を示すような傾向が見られる。検知対象の初期動作期間52における特徴量の変化は、検知対象の正常状態の挙動とみなすことができる。一方、時間経過によって、検知対象が劣化等することで何らかの異常が発生したとする。検知対象に何らかの異常が発生した異常発生期間54における特徴量の変化は、検知対象の異常状態の挙動とみなすことができる。
図6には、初期動作期間52における特徴量の分布を示すヒストグラム56と、異常発生期間54における特徴量の分布を示すヒストグラム58とを示す。図6に示す例では、正常状態を示すヒストグラム56と、異常状態を示すヒストグラム58とを識別できる異常検知モデルを生成すればよい。また、正常状態から異常状態への変化を示す劣化関数60を決定できる。劣化関数60に基づいて、正常状態であるか異常状態であるかを判断するためのしきい値を決定できる。
後述するように、任意の機構についての実験を行うことで、図6に示すような特徴量の時間的変化50を取得し、正常状態および異常状態の情報を含むモデル生成情報340を生成する。
より具体的には、モデル生成情報340は、一例として、特徴量情報342と、機構情報344と、異常検知性能346と、劣化情報348と、分布情報350とを含む。
特徴量情報342は、対象の機構から取得されるいずれの情報を特徴量とするかを規定する情報を含む。すなわち、特徴量情報342は、検知対象について算出される特徴量を特定する情報に相当する。例えば、特徴量情報342には、対象の機構の速度の最大値などが設定される。
機構情報344は、対象の機構を特定するための情報を含む。例えば、機構情報344は、機構のタイプ、機構のメーカ、機構の形式、機構の運転方式などを含む。
異常検知性能346は、モデル生成情報340を生成したときに算出された異常検知の能力を示す値(例えば、AUC)を含む。
劣化情報348は、劣化関数60を規定する1または複数のパラメータを含む。すなわち、劣化関数60は、対象の機構が正常状態から異常状態へ変化する特性を特定する情報に相当する。劣化関数60としては、どのような関数形式を採用してもよい。例えば、劣化関数60を高次関数としてもよいし、指数関数を含むものとしてもよい。
分布情報350は、正常状態における特徴量の分布(図6を示すヒストグラム56)を規定する情報を含む。分布情報350は、対象の機構から取得される実績データについての相対的な挙動を示す情報である。
より具体的には、分布情報350は、分布形状情報352と、分布生成手法354と、分布パラメータ群356と、しきい値情報358とを含む。
分布形状情報352は、特徴量の分布の形状を示す情報を含む。例えば、分布形状情報352には「正規分布」と規定される。
分布生成手法354は、特徴量の分布を生成(あるいは、規定)する手法を示す情報を含む。例えば、分布生成手法354には「標準」と規定される。あるいは、特徴量を平均化やフィルタリングした上で、分布を生成する場合には、分布生成手法354には、そのような手法を用いることが規定される。
分布パラメータ群356は、分布を定義する1または複数のパラメータを含む。例えば、正規分布を考慮すると、分布パラメータ群356は、平均値μ、標準偏差σ、形状パラメータα,βなどを含んでいてもよい。形状パラメータα,βは、平均値μと標準偏差σとの関係を規定する情報である。すなわち、形状パラメータα,βは、平均値μと標準偏差σとの関係を規格化したものであり、任意の平均値μおよび標準偏差σが与えられると、形状パラメータα,βに従って、正規分布を決定できる。
このように、モデル生成情報340は、対象の機構を特定するための情報と、対象の機構の正常状態における特徴量の分布を規定する情報とを含む。
検知対象の機構を事前に解析して、異常検知に用いる特徴量の種類や、分布の情報を示す情報が取得される。これらの事前情報を参照することで、任意の検知対象から取得される情報を解析することなく、当該検知対象についての異常検知モデルを容易に生成できる。
以下、本実施の形態に係る異常検知モデルの生成方法のより詳細な手順について説明する。
<E.モデル生成情報の事前準備(ST1)>
次に、本実施の形態に係る異常検知モデルの生成方法に必要な処理として、モデル生成情報の事前準備について説明する。
(e1:処理手順)
図7は、本実施の形態に係る異常検知モデルの生成方法のうちモデル生成情報の事前準備に係る処理手順を示すフローチャートである。図7に示す処理は、基本的には、ユーザ操作に応じてモデル情報サーバ300において実行されるが、ユーザ自身が実行してもよい。
図7を参照して、まず、検査対象になり得る同一の機構をN(N≧1)個用意する(ステップS11)。ユーザは、仕様環境を想定して当該機構を配置した上で、初期状態から何らかの異常が発生する(例えば、壊れる)まで稼動させて、1または複数の値についての時系列データ(以下、「実験データ」とも称す。)を収集する(ステップS12)。
その後、ユーザは、機構から収集した1または複数の実験データのうち、当該機構の異常あるいは劣化を検知するのに適した特徴量を選択する(ステップS13)。このとき、様々な条件変動(環境温度や負荷など)にロバストな特徴量を選択することが好ましい。あるいは、特定の条件においてロバストな特徴量を選択してもよい。
続いて、モデル情報サーバ300は、ユーザ操作に応じて、選択した特徴量の分布を規定する情報である分布情報を決定する(ステップS14)とともに、劣化関数を決定する(ステップS15)。ここで、分布情報は、特徴量の分布を再現するための1または複数のパラメータを含む。劣化関数60は、劣化の傾向を示す情報を含む。
さらに、モデル情報サーバ300は、ユーザ操作に応じて、決定した分布情報および劣化関数に基づく異常検知を、収集した実験データの少なくとも一部に適用して(すなわち、収集した実験データに基づく検定を行って)、異常検知性能を算出する(ステップS16)。
モデル情報サーバ300は、ユーザ操作に応じて、算出した情報と検知対象を特定する情報とを対応付けて、モデル生成情報としてモデル情報データベース330に登録する(ステップS17)。検知対象を特定する情報は、機構のタイプ、機構のメーカ、機構の形式、機構の運転方式などを含む。さらに、モデル生成情報は、異常検知モデルの仕様として、異常検知モデルの適用条件、異常検知モデルの現地調整の要否、異常検知モデルの調整方法、特徴量の算出式、特徴量の分布情報、劣化関数、異常検知性能、収集した実験データそのものを含んでいてもよい。
異常検知モデルに用いる分布および劣化関数については、検知対象に応じて様々なものを用いることができる。
図8は、本実施の形態に係る異常検知モデルの生成方法に従って生成されたモデル生成情報のいくつかの例を示す図である。図8(A)には、1つの特徴量についての正規分布に基づく異常検知モデルの例を示す。図8(B)には、1つの特徴量についての許容範囲を規定した分布に基づく異常検知モデルの例を示す。図8(C)には、2つの特徴量についての分布に基づく異常検知モデルの例を示す。
図8(A)~図8(C)にそれぞれ示される異常検知モデルに限らず、任意の異常検知モデルを用いることができる。
さらに、同一の機構であっても、条件を異ならせて複数のモデル生成情報を登録してもよい。
例えば、(1)特定の適用条件(環境温度が25℃±5℃)で使用できる異常検知性能の高い異常検知モデルに対応するモデル生成情報と、(2)特定の適用条件より広い適用条件(環境温度が25℃±15℃)で使用できるが、異常検知性能が劣る異常検知モデルに対応するモデル生成情報と、を登録するようにしてもよい。
また、(1)現地調整は不要であるが、検知性能が劣る異常検知モデルに対応するモデル生成情報と、(2)現地調整が必要ではあるが、検知性能が高い異常検知モデルに対応するモデル生成情報と、を登録するようにしてもよい。
以下、モデル生成情報を派生して登録するいくつかの方法について説明する。すなわち、以下に示すような方法によって、対象の機構を実験して得られた結果を拡張することで、適用条件の異なる複数のモデル生成情報が生成されてもよい。
(e2:データ拡張によるモデル生成情報の充実化)
図9は、本実施の形態に係る異常検知モデルの生成方法に従って収集された実験データおよび異常検知モデルの一例を示す図である。図9には、異常検知の対象の機構をエアーシリンダとした場合の例を示す。図9に示す特徴量1は、エアーシリンダの押込時間に依存する値であり、特徴量2は、エアーシリンダの引抜時間に依存する値である。
図9に示すグラフにおいて、等高線は、異常の度合いを示しており、外側にいくほど異常の度合いが高いことを意味する。
図9(A)は、例えば、適用条件として、環境温度が25℃±5℃の範囲で収集された2つの特徴量を2次元座標360Aにプロットしたものである。図9(A)には、環境温度が20℃における正常状態を示す特徴量の組(学習データ)に加えて、ロッドリーク量が許容限界を超えたときの特徴量の組(ロッドリーク限界)、および、ピストンリーク量が許容限界を超えたときの特徴量の組(ピストンリーク限界)を示す。
これらの情報に基づいて、異常状態を示す識別境界362Aと、異常状態に近い注意状態を示す識別境界364Aとを決定できる。すなわち、識別境界362Aおよび識別境界364Aは、特定の適用条件(環境温度が25℃±5℃)で使用できる異常検知モデルの一部を意味する。
検知対象から測定された実験データであるテストデータを識別境界362Aおよび識別境界364Aに適用することで、ロッドリーク異常およびピストンリング異常を検知できる(すなわち、ロッドリーク異常およびピストンリング異常に対応する座標は識別境界362Aの外側に位置する)。
このとき、環境温度が10℃における正常状態、および、環境温度が40℃における正常状態に対応する座標も識別境界362Aの内側に位置しているので、特定の適用条件(環境温度が25℃±5℃)外においても、一応は適用可能である。但し、正常状態の実験データ(特徴量の組)を収集できていないので、誤検知の可能性は否定できない。
そこで、収集された実験データを拡張した学習データセット162を生成した上で、新たな異常検知モデルを生成した結果を図9(B)に示す。図9(B)の2次元座標360Bに示される異常検知モデルにおいては、異常状態を示す識別境界362Bおよび異常状態に近い注意状態を示す識別境界364Bは、識別境界362Aおよび識別境界364A(図9(A)参照)に比較して広くなっている。すなわち、正常状態であると判定される範囲が拡大(条件が緩和)されていることを意味する。
このようなデータ拡張によって得られた異常検知モデルは、環境温度の変化への適応範囲が拡大している一方で、検知性能は劣る場合がある。
図9(B)に示す例では、ロッドリーク異常およびピストンリング異常の一部が異常状態を示す識別境界362Bの範囲内に位置しているため、これらの異常を検知できないことになる。
図9(A)に示されるような異常検知モデルに対応するモデル生成情報と、図9(B)に示されるような異常検知モデルに対応するモデル生成情報とを、検知対象や要求される仕様などに応じて、適切に選択することになる。
(e3:モデル生成情報のロバスト性拡張)
収集された実験データの拡張によるモデル生成情報の充実化に限らず、特徴量の変動要因を調査した上で、変動要因別にモデル生成情報を用意してもよい。
図10は、本実施の形態に係る異常検知モデルの生成方法におけるロバスト性拡張の一例を説明するための図である。図10には、エアーシリンダの取付方向を異ならせた場合の要因分析の例を示す。図10(A)には垂直上方向に設置した場合を示し、図10(B)には垂直下方向に設置した場合を示し、図10(C)には水平方向に設置した場合を示す。図10(A)~図10(C)に示す特徴量1は、エアーシリンダの押込時間に依存する値であり、特徴量2は、エアーシリンダの引抜時間に依存する値である。
図10(A)~図10(C)に示すように、取得される特徴量に変化を与える要因としては、(1)負荷の影響、(2)温度の影響、(3)リークの影響が想定される。
(1)負荷の影響としては、シリンダ内の空気圧が発生する力と負荷方向とが反対である場合には、空気圧が発生する力を打消すことになり、移動速度は低下する。一方、シリンダ内の空気圧が発生する力と負荷方向とが同じである場合には、空気圧が発生する力より大きな力が発生することになり、移動速度は増加する。また、空気圧が発生する力は、エアーシリンダの取付方向に依存する。
(2)温度の影響としては、グリスの粘度、ロッドとシリンダチューブとの摩擦、ピストンとシリンダチューブとの摩擦などが考えられる。
グリスの粘度は、温度が高くなると粘性が低くなり、柔らかくなる。これによって、摩擦力が低下して、移動速度は増加する。
ロッドとシリンダチューブとの間については、ロッドが炭素鋼であり、シリンダチューブがステンレスである場合には、材質の違いにより線膨張係数が異なるため、温度が高くなると抵抗値が低下して、移動速度は増加する。
ピストンとシリンダチューブとの間については、ピストンがアルミであり、シリンダチューブがステンレスである場合には、材質の違いにより線膨張係数が異なるため、温度が高くなると抵抗値が増加して、移動速度は低下する。
(3)リークの影響としては、ロッドリークが大きければ、残圧が早く抜けることになり、押込速度は増加する一方で、内圧が分散するので、引抜速度は低下する。また、ピストンリークが大きければ、内圧が分散するので、押込速度および引抜速度とも低下する。
上述したような要因に加えて、測定される特徴量の変化方向は取付方向に応じて異なる
ことになる。そのため、変動要因別にモデル生成情報を用意してもよい。
例えば、負荷率を0-25%,25-50%,50-75%,75-100%と異ならせた異常検知モデルを用意してもよい。また、環境温度を15℃±5℃,25℃±5℃,35℃±5℃,20℃±10℃,30℃±10℃,25℃±15℃と異ならせたモデル生成情報を用意してもよい。
条件毎および仕様毎に用意されるモデル生成情報の集合のうち、検知対象や要求される仕様などに応じて、適切なモデル生成情報が選択される。
<F.実績データ収集(ST2)>
次に、本実施の形態に係る異常検知モデルの生成方法に必要な処理として、実績データ収集の処理について説明する。
任意の検知対象を現実に設置した後、ユーザは、サポート装置200を操作するなどして、制御装置100が当該検知対象に関する実績データを収集するように設定する。当該検知対象を含む製造装置や生産ラインが所定期間あるいは所定サイクルに亘って動作したときの1または複数の実績データを制御装置100で収集する。
異常検知モデルの異常検知性能を高めるためには、収集する実績データは多い方が好ましいが、試運転の期間を長く取れないことも多いので、収集する実績データの量は状況に応じて決定されてもよい。
制御装置100は、収集した実績データをTSDB140に格納する。TSDB140に格納された実績データは、ユーザ操作に応じて、サポート装置200に転送される。サポート装置200に転送された実績データが異常検知モデルの生成に用いられる。
<G.異常検知モデルの生成(ST3)>
次に、本実施の形態に係る異常検知モデルの生成方法に必要な処理として、異常検知モデルを生成する処理について説明する。
図11は、本実施の形態に係る異常検知モデルの生成方法のうち異常検知モデルの生成に係る処理手順を示すフローチャートである。図11に示す処理は、基本的には、ユーザ操作に応じてサポート装置200において実行される。この場合、サポート装置200のプロセッサ202がPLCインターフェイスプログラム224およびモデル生成プログラム226を実行することで、後述するような処理が実現される。
図11を参照して、まず、サポート装置200は、ユーザ操作に応じて、検知対象の機構の仕様情報(機構のタイプ、機構のメーカ、機構の形式、機構の運転方式など)に基づいて、モデル情報サーバ300のモデル情報データベース330から対象のモデル生成情報を取得する(ステップS31)。
通常、ユーザは、現地調整の要否、適用条件の範囲、異常検知性能などを考慮して、モデル生成情報を選択する。但し、モデル情報サーバ300に検索機能を実装しておき、ユーザが検知対象の機構の仕様情報および要望などを入力すると、当該ユーザの入力に対応するモデル生成情報を検索して、ユーザへ提示するようにしてもよい。
また、サポート装置200は、ユーザ操作に応じて、制御装置100のTSDB140に格納されている検知対象から収集された実績データを取得する(ステップS32)。
サポート装置200は、ユーザ操作に応じて、取得したモデル生成情報に従って、検知対象から取得された実績データに基づいて学習データセット162を生成する(ステップS33)。また、サポート装置200は、取得したモデル生成情報に従って、異常検知用パラメータ160を生成する(ステップS34)。
そして、サポート装置200は、検知対象から収集された実績データを、生成した異常検知用パラメータ160および学習データセット162に適用して、異常検知性能を算出する(ステップS35)。
さらに、ユーザは、サポート装置200が算出した異常検知性能を確認して、必要に応じて、異常検知用パラメータ160を調整する(ステップS36)。
ユーザが異常検知性能を確認して、制御装置100への転送を指示すると(ステップS37においてYES)、制御装置100は、生成された異常検知用パラメータ160および学習データセット162(異常検知モデル)を制御装置100へ転送する(ステップS38)。制御装置100では、検知対象についての異常検知の運用が開始される。
ここで、学習データセットの生成方法の一例について説明する。
図12は、本実施の形態に係る異常検知モデルの生成方法における学習データセットを生成する方法を説明するための図である。図12(A)および図12(B)に示すように、サポート装置200は、モデル生成情報に含まれる特徴量の分布を規定する情報に基づいて、学習データセット162を生成する。
図12(A)には、検知対象から取得された実績データ142に基づいて学習データセット162を生成する例を示す。この場合、サポート装置200は、検知対象に関する実績データに基づいて算出される統計量をモデル生成情報に含まれる特徴量の分布を規定する情報に反映することで、学習データセットを生成する。より具体的には、学習データセット162に規定される分布情報350に従って、実績データ142から複数の特徴量を算出するとともに、算出した複数の特徴量についての平均値および標準偏差(統計量の一例)を算出する。算出した平均値および標準偏差に従う正規分布乱数を学習データセット162として決定する。
図12(B)には、モデル生成情報340のみから学習データセット162を生成する例を示す。より具体的には、学習データセット162に含まれる平均値および標準偏差を抽出する。抽出した平均値および標準偏差に従う正規分布乱数を学習データセット162として決定する。
このように、環境条件に応じて取得される特徴量が変化するような検知対象については、図12(A)に示すような手順で異常検知モデルを決定し、環境条件によらず取得される特徴量が変化しない検知対象については、図12(B)に示すような手順で異常検知モデルを決定してもよい。
なお、上述の説明においては、ユーザが予め登録されたモデル生成情報を選択する例を示したが、要求に応じて、モデル生成情報を動的に生成するようにしてもよい。
図13は、本実施の形態に係る異常検知モデルの生成方法のうち異常検知モデルの生成に係る別の処理手順を示すフローチャートである。図13に示す処理は、基本的には、ユーザ操作に応じてサポート装置200において実行される。この場合、サポート装置200のプロセッサ202がPLCインターフェイスプログラム224およびモデル生成プログラム226を実行することで、後述するような処理が実現される。
図13を参照して、まず、ユーザは、検知対象の機構の仕様情報(機構のタイプ、機構のメーカ、機構の形式、機構の運転方式など)を入力して、モデル情報サーバ300のモデル情報データベース330に登録されている1または複数のモデル生成情報を抽出する(ステップS301)。そして、ユーザは、異常検知を行う環境を示す環境条件を入力する(ステップS302)。
すると、要求された環境条件に適合する異常検知モデルを含むモデル生成情報が生成される(ステップS303)。要求された環境条件に適合する異常検知モデルを含むモデル生成情報の生成は、異常検知モデルの生成を担当するユーザ(モデル登録者)が手動で行ってもよいし、モデル情報サーバ300が自動的に行ってもよい。
上述したように、実験データに対応する環境条件に適合するように、特徴量を選択するとともに、指定された環境において異常検知性能がより高くなる異常検知モデルを決定してもよい。
そして、サポート装置200は、ユーザ操作に応じて、生成された異常検知モデルを含むモデル生成情報を取得する(ステップS304)。
このようにモデル生成情報を決定することで、異常検知を適用する環境により合致させた形で異常検知を実施できるようになる。
ステップS32以降の処理は、図11と同様である。
<H.異常検知の運用(ST4)>
次に、本実施の形態に係る異常検知モデルの生成方法に必要な処理として、制御装置100における異常検知の運用の処理について説明する。
上述したように、サポート装置200から制御装置100には、異常検知モデル(異常検知用パラメータ160および学習データセット162)が転送される。制御装置100において周期的に実行されるユーザプログラム132は、異常検知用パラメータ160により指定された1または複数の特徴量を生成するための命令(特徴量生成命令134)を含んでおり、周期的に算出される1または特徴量を異常検知モデルに適用することで、検知対象に何らかの異常が発生したか否かを推定できる。
なお、異常検知機能は、ユーザプログラム132に含まれる命令によって、所定条件が満たされた場合に限って有効化するようにしてもよいし、任意のタイミングで有効化/無効化できるようにしてもよい。
また、検知対象に何らの異常も発生していない状態で、異常検知機能が異常の発生と判断する場合、および、検知対象に何らかの異常が発生している状態で、異常検知機能が異常の発生を検知できなかった場合には、異常検知モデルを再生成するようにしてもよい。
異常検知性能がより高くなるように、異常検知モデルの再学習や再調整を行ってもよい。また、異常検知の運用によって得られた実績データを用いて、追加のモデル生成情報を生成してもよい。
<I.変形例>
上述の実施の形態においては、典型的には、サポート装置200が異常検知モデルを生成し、生成した異常検知モデルを制御装置100へ転送する構成例について説明したが、サポート装置200が有している機能の一部を制御装置100に実装してもよい。また、サポート装置200が有している機能の一部をクラウド環境などで実装してもよい。
このように、本実施の形態に係る異常検知システム1は、要求される性能や利用可能なリソースなどに応じて、任意の形態で実装できる。
<J.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
検知対象に生じ得る異常を検知するための異常検知モデル(160,162)の生成に用いられるモデル生成情報(340)を格納した情報格納手段(330)を備え、前記モデル生成情報は、対象の機構を特定するための情報(344)と、当該対象の機構の正常状態における特徴量の分布を規定する情報(350)とを含み、
前記情報格納手段に格納されたモデル生成情報のうち前記検知対象に適したモデル生成情報に、前記検知対象に関する実績データを適用することで、前記異常検知モデルを生成するモデル生成手段(240;248)と、
前記生成された異常検知モデルに基づいて前記検知対象に何らかの異常が発生しているか否かを判断する異常検知手段(150)とを備える、異常検知システム。
[構成2]
前記モデル生成情報は、前記検知対象について算出される特徴量を特定する情報(342)を含む、構成1に記載の異常検知システム。
[構成3]
前記モデル生成情報は、前記対象の機構が前記正常状態から異常状態へ変化する特性を特定する情報(348)を含む、構成1または2に記載の異常検知システム。
[構成4]
前記検知対象に関する実績データを収集する収集手段(140)をさらに備える、構成1~3のいずれか1項に記載の異常検知システム。
[構成5]
前記モデル生成手段は、前記モデル生成情報に含まれる前記特徴量の分布を規定する情報に基づいて、学習データセット(162)を生成する、構成1~4のいずれか1項に記載の異常検知システム。
[構成6]
前記モデル生成手段は、前記検知対象に関する実績データに基づいて算出される統計量を前記モデル生成情報に含まれる前記特徴量の分布を規定する情報に反映することで、前記学習データセットを生成する、構成5に記載の異常検知システム。
[構成7]
前記モデル生成情報は、前記対象の機構を実験して得られた結果に基づいて生成される、構成1~6のいずれか1項に記載の異常検知システム。
[構成8]
前記対象の機構を実験して得られた結果を拡張することで、適用条件の異なる複数の前記モデル生成情報が生成される、構成7に記載の異常検知システム。
[構成9]
検知対象に生じ得る異常を検知するための異常検知モデル(160,162)を生成するための情報処理装置(200)であって、
検知対象に生じ得る異常を検知するための異常検知モデルの生成に用いられるモデル生成情報を格納した情報格納手段にアクセスするアクセス手段(240;244)を備え、前記モデル生成情報は、対象の機構を特定するための情報(344)と、当該対象の機構の正常状態における特徴量の分布を規定する情報(350)とを含み、
前記情報格納手段に格納されたモデル生成情報のうち前記検知対象に適したモデル生成情報に、前記検知対象に関する実績データを適用することで、前記異常検知モデルを生成するモデル生成手段(240;248)を備える、情報処理装置。
[構成10]
検知対象に生じ得る異常を検知するための異常検知モデル(160,162)を生成するための情報処理プログラム(222,224)であって、前記情報処理プログラムは、コンピュータ(200)に、
検知対象に生じ得る異常を検知するための異常検知モデルの生成に用いられるモデル生成情報を格納した情報格納手段にアクセスするステップ(S31)を実行させ、前記モデル生成情報は、対象の機構を特定するための情報(344)と、当該対象の機構の正常状態における特徴量の分布を規定する情報(350)とを含み、
前記情報格納手段に格納されたモデル生成情報のうち前記検知対象に適したモデル生成情報に、前記検知対象に関する実績データを適用することで、前記異常検知モデルを生成するステップ(S33)を実行させる、情報処理プログラム。
<K.利点>
本実施の形態に係る異常検知システムにおいては、任意の機構について事前実験することで、データ分布を取得する。この取得されたデータ分布を含むモデル生成情報と、実際の検知対象から取得された実績データとに基づいて、当該検知対象における異常を検知するための異常検知モデルを容易に生成できる。そのため、異常検知モデルを生成する際に、高度な専門知識が必要ではないので、専門知識が少ないユーザであっても、異常検知モデルを容易に作成できる。これによって、生産設備における異常検知機能をより容易に実現できる。
また、生成される異常検知モデルの異常検知性能についても、個人のスキルに依存することなく、ある程度の精度を確保できる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。