(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154548
(43)【公開日】2024-10-31
(54)【発明の名称】異常診断装置、異常診断方法及びプログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20241024BHJP
【FI】
G05B23/02 T
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023068413
(22)【出願日】2023-04-19
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】原 慎大
(72)【発明者】
【氏名】林 伸治
(72)【発明者】
【氏名】徳増 匠
(72)【発明者】
【氏名】吉見 浩一郎
(72)【発明者】
【氏名】アダモ サンタナ
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA01
3C223AA11
3C223AA14
3C223BA03
3C223CC02
3C223DD03
3C223FF04
3C223FF14
3C223FF16
3C223FF22
3C223FF26
3C223GG01
3C223HH02
(57)【要約】
【課題】バッチプロセスの異常診断を精度良く行うことができる技術を提供すること。
【解決手段】本開示の一態様による異常診断装置は、バッチプロセスの異常診断を行う異常診断装置であって、前記バッチプロセスの状態を表す運転データの集合を第1の学習用データ集合として取得する第1の取得部と、前記運転データの状態変数毎に、前記第1の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第1の変動率として算出する第1の算出部と、前記状態変数毎に、前記第1の変動率を正規化する第1の正規化部と、正規化後の前記第1の変動率を用いて、前記異常診断を行うための第1の異常診断モデルを作成する第1のモデル作成部と、を有する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
バッチプロセスの異常診断を行う異常診断装置であって、
前記バッチプロセスの状態を表す運転データの集合を第1の学習用データ集合として取得する第1の取得部と、
前記運転データの状態変数毎に、前記第1の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第1の変動率として算出する第1の算出部と、
前記状態変数毎に、前記第1の変動率を正規化する第1の正規化部と、
正規化後の前記第1の変動率を用いて、前記異常診断を行うための第1の異常診断モデルを作成する第1のモデル作成部と、
を有する異常診断装置。
【請求項2】
前記第1の学習用データ集合とは異なる運転データの集合を第2の学習用データ集合として取得する第2の取得部と、
前記状態変数毎に、前記第2の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第2の変動率として算出する第2の算出部と、
前記状態変数毎に、前記第2の変動率を正規化する第2の正規化部と、
正規化後の前記第2の変動率を用いて、前記異常診断を行うための第2の異常診断モデルを作成する第2のモデル作成部と、
を有する請求項1に記載の異常診断装置。
【請求項3】
前記第2の取得部は、
直近の過去所定の期間における運転データの集合を前記第2の学習用データ集合として取得する、請求項2に記載の異常診断装置。
【請求項4】
異常診断対象の運転データを診断用データとして取得する第3の取得手段と、
前記状態変数毎に、前記診断用データの状態変数値を時間により2階微分した値の絶対値を第3の変動率として算出する第3の算出部と、
前記状態変数毎に、前記状態変数に対応する前記第1の変動率の最大値及び最小値を用いて、前記第3の変動率を正規化する第3の正規化部と、
正規化後の前記第3の変動率と、前記第1の異常診断モデルと、前記第2の異常診断モデルとを用いて、前記異常診断を行う診断部と、
を有する請求項2又は3に記載の異常診断装置。
【請求項5】
前記異常診断装置は、
前記第1の取得部による前記第1の学習用データ集合の取得と、前記第1の算出部による前記第1の変動率の算出と、前記第1の正規化部による前記第1の変動率の正規化と、前記第1のモデル作成部による前記第1の異常診断モデルの作成とを所定の第1の時間幅毎に実行し、
前記第2の取得部による前記第2の学習用データ集合の取得と、前記第2の算出部による前記第2の変動率の算出と、前記第2の正規化部による前記第2の変動率の正規化と、前記第2のモデル作成部による前記第2の異常診断モデルの作成とを、前記第1の時間幅よりも短い所定の第2の時間幅毎に実行する、請求項4に記載の異常診断装置。
【請求項6】
バッチプロセスの異常診断を行うコンピュータが、
前記バッチプロセスの状態を表す運転データの集合を第1の学習用データ集合として取得する第1の取得手順と、
前記運転データの状態変数毎に、前記第1の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第1の変動率として算出する第1の算出手順と、
前記状態変数毎に、前記第1の変動率を正規化する第1の正規化手順と、
正規化後の前記第1の変動率を用いて、前記異常診断を行うための第1の異常診断モデルを作成する第1のモデル作成手順と、
を実行する異常診断方法。
【請求項7】
バッチプロセスの異常診断を行うコンピュータに、
前記バッチプロセスの状態を表す運転データの集合を第1の学習用データ集合として取得する第1の取得手順と、
前記運転データの状態変数毎に、前記第1の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第1の変動率として算出する第1の算出手順と、
前記状態変数毎に、前記第1の変動率を正規化する第1の正規化手順と、
正規化後の前記第1の変動率を用いて、前記異常診断を行うための第1の異常診断モデルを作成する第1のモデル作成手順と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常診断装置、異常診断方法及びプログラムに関する。
【背景技術】
【0002】
化学、石油、薬品、鉄鋼、鋳造、食品、半導体等の分野の製造プロセスでは、原料や中間製品の一定量を製造単位としてまとめて、製造単位毎に繰り返し製造処理を行う。このような製造プロセスはバッチプロセスと称される。従来、バッチプロセスの異常診断を行う技術が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、バッチプロセスの異常診断を行う従来技術では、一般に、バッチプロセスの正常状態を表す波形パターンを定義した情報(これはプロファイル等とも呼ばれる。)を用いて正常モデルを作成している。このため、例えば、バッチプロセスの正常状態を表す波形パターンが多数存在する場合にはプロファイルを定義できず、精度の良い正常モデルの作成が困難なことがある。
【0005】
本開示は、上記の点に鑑みてなされたもので、バッチプロセスの異常診断を精度良く行うことができる技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様による異常診断装置は、バッチプロセスの異常診断を行う異常診断装置であって、前記バッチプロセスの状態を表す運転データの集合を第1の学習用データ集合として取得する第1の取得部と、前記運転データの状態変数毎に、前記第1の学習用データ集合に含まれる各運転データの状態変数値を時間により2階微分した値の絶対値を第1の変動率として算出する第1の算出部と、前記状態変数毎に、前記第1の変動率を正規化する第1の正規化部と、正規化後の前記第1の変動率を用いて、前記異常診断を行うための第1の異常診断モデルを作成する第1のモデル作成部と、を有する。
【発明の効果】
【0007】
バッチプロセスの異常診断を精度良く行うことができる技術が提供される。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る異常診断システムの全体構成の一例を示す図である。
【
図2】本実施形態に係る異常診断装置のハードウェア構成の一例を示す図である。
【
図3】本実施形態に係る異常診断装置の機能構成の一例を示す図である。
【
図4】本実施形態に係る第1の異常診断モデル作成処理の一例を示すフローチャートである。
【
図5】本実施形態に係る異常診断処理の一例を示すフローチャートである。
【
図6】本実施形態に係る第2の異常診断モデル作成又は更新処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の一実施形態について説明する。以下の実施形態では、バッチプロセスにより何等かの処理を行う設備や機器、装置等を対象として、その異常診断を精度良く行うことができる異常診断システム1について説明する。本実施形態に係る異常診断システム1により、特に、例えば、バッチプロセスの正常状態を表す波形パターンが多数存在し、プロファイルの定義が困難な場合であっても、精度の良い異常診断が可能になる。ここで、バッチプロセスの正常状態を表す波形パターンが多数存在する場合としては、例えば、少量多品種生産のため波形パターンが多様な場合、バッチの長さが毎回異なる場合等が挙げられる。なお、プロファイルとは、バッチプロセスの正常状態を表す波形パターンを定義した情報のことである。
【0010】
ここで、本実施形態に係る異常診断システム1では、正常状態における異常診断対象から収集した運転データの2階微分値の絶対値を正規化したデータ(以下、振動率データともいう。)を作成し、それらの振動率データから異常診断モデル(以下、第1の異常診断モデルという。)を作成する。また、本実施形態に係る異常診断システム1では、直近の異常診断対象から収集した運転データの2階微分値の絶対値を正規化した振動率データを作成し、それらの振動率データからも異常診断モデル(以下、第2の異常診断モデルという。)を作成する。そして、本実施形態に係る異常診断システム1は、異常診断対象から取得した運転データの2階微分値の絶対値を正規化した振動率データを用いて、第1の異常診断モデルと第2の異常診断モデルにより異常診断を行う。これにより、プロファイルの定義が不要となるため、バッチプロセスの正常状態を表す波形パターンが多数存在する場合であっても、精度の良い異常診断モデルの作成が可能になる。また、第1の異常診断モデルだけでなく、直近の異常診断対象から収集した運転データを用いて第2の異常診断モデルも作成するため、例えば、運転データの特性変動等に起因する異常診断精度の低下も抑止することができる。
【0011】
なお、異常診断対象には各種センサ等の計測器が設置されており、これらのセンサによって当該異常診断対象の状態(より正確には、当該異常診断対象が実行するバッチプロセスの状態)を表す物理量が計測され、運転データはそれらの物理量の計測値で構成される。運転データを構成する各計測値が表す物理量又はその物理量の計測値が格納される変数は「プロセス変数」又は「状態変数」とも呼ばれる。以下では、運転データを構成する計測値が表す物理量又はその物理量の計測値が格納される変数を「状態変数」と呼ぶことにする。状態変数としては様々なものが挙げられるが、例えば、温度、圧力、流量、電流、電圧等が挙げられる。
【0012】
以下、異常診断対象から取得又は収集される運転データを構成する状態変数の数をNとして、各状態変数をxn(1≦n≦N)と表し、運転データを縦ベクトルで表現してx=(x1,・・・,xN)Τと表す。また、運転データxが得られた時刻tを明示する場合は、x(t)=(x1(t),・・・,xN(t))Τと表す。ここで、Τは転置を表す記号である。
【0013】
<異常診断システム1の全体構成例>
本実施形態に係る異常診断システム1の全体構成例を
図1に示す。
図1に示すように、本実施形態に係る異常診断システム1には、異常診断装置10と、施設20と、オペレータ端末30とが含まれる。ここで、異常診断装置10と後述する制御装置23は、例えば、LAN(Local Area Network)等を含む通信ネットワークを介して相互に通信可能に接続される。同様に、異常診断装置10とオペレータ端末30は、例えば、LAN等を含む通信ネットワークを介して相互に通信可能に接続される。
【0014】
異常診断装置10は、施設20から取得又は収集した運転データを用いて第1の異常診断モデル及び第2の異常診断モデルの作成と後述する異常診断対象21に対する異常診断とを行うと共に、その異常診断の結果をオペレータ端末30に通知する汎用サーバやPC(パーソナルコンピュータ)等といった各種情報処理装置である。なお、異常診断装置10は、例えば、複数台の汎用サーバやPC等で構成されるシステムであってもよい。
【0015】
施設20は、例えば、工場等といった各種施設である。施設20には、異常診断対象21と、1以上の計測器22と、制御装置23とが含まれる。異常診断対象21は、バッチプロセスにより何等かの処理(例えば、製造、生産、加工、化学反応等といった処理)を行うプラント、生産設備、産業用機器、各種装置等である。ただし、これらは一例であって、異常診断対象21はこれらに限定されるものではなく、バッチプロセスにより何等かの処理を行う設備、機器、装置等であればよい。計測器22は、センサ等であり、異常診断対象21の各種状態(より正確には、異常診断対象21が実行するバッチプロセスの各種状態)を表す物理量を計測し、その計測値が含まれる計測データを制御装置23に送信する。制御装置23は、各計測器22から収集した計測データに含まれる計測値で構成される運転データを異常診断装置10に送信すると共に、これらの運転データに基づいてバッチプロセスに関する既知のプロセス制御方式により異常診断対象21を制御する。
【0016】
オペレータ端末30は、施設20を監視・運用するオペレータが利用するPCやスマートフォン、タブレット端末等の各種端末である。オペレータは、異常診断装置10から通知された異常診断結果をオペレータ端末30で確認することができる。これにより、その異常診断結果に応じて、例えば、オペレータは手動で異常診断対象21の運転を停止したり、縮退運転に切り替えたりすることができる。
【0017】
なお、
図1に示す異常診断システム1の全体構成は一例であって、これに限られるものではない。例えば、異常診断装置10とオペレータ端末30とが一体で構成されていてもよいし、異常診断装置10と制御装置23とが一体で構成されていてもよい。又は、例えば、異常診断装置10は仮想マシン(VM:Virtual Machine)で実現されるものであってもよいし、異常診断装置10が複数台の情報処理装置で構成されるシステムである場合にその一部の情報処理装置が仮想マシンで実現されるものであってもよい。
【0018】
<異常診断装置10のハードウェア構成例>
本実施形態に係る異常診断装置10のハードウェア構成例を
図2に示す。
図2に示すように、本実施形態に係る異常診断装置10は、入力装置101と、表示装置102と、外部I/F103と、通信I/F104と、RAM(Random Access Memory)105と、ROM(Read Only Memory)106と、補助記憶装置107と、プロセッサ108とを有する。これらの各ハードウェアは、それぞれがバス109を介して通信可能に接続される。
【0019】
入力装置101は、例えば、キーボード、マウス、タッチパネル、物理ボタン等である。表示装置102は、例えば、ディスプレイ、表示パネル等である。なお、異常診断装置10は、例えば、入力装置101及び表示装置102のうちの少なくとも一方を有していなくてもよい。
【0020】
外部I/F103は、記録媒体103a等の外部装置とのインタフェースである。記録媒体103aとしては、例えば、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等が挙げられる。
【0021】
通信I/F104は、異常診断装置10を通信ネットワークに接続するためのインタフェースである。RAM105は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。ROM106は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。補助記憶装置107は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の不揮発性の記憶装置である。プロセッサ108は、例えば、CPU(Central Processing Unit)等の各種演算装置である。
【0022】
なお、
図2に示すハードウェア構成は一例であって、異常診断装置10のハードウェア構成はこれに限られるものではない。例えば、異常診断装置10は、複数の補助記憶装置107や複数のプロセッサ108を有していてもよいし、図示したハードウェアの一部を有していなくてもよいし、図示したハードウェア以外の種々のハードウェアを有していてもよい。
【0023】
<異常診断装置10の機能構成例>
本実施形態に係る異常診断装置10の機能構成例を
図3に示す。
図3に示すように、本実施形態に係る異常診断装置10は、変動率データ作成部201と、モデル作成部202と、異常診断部203と、運転データ記憶部204と、変動率データ記憶部205と、モデル記憶部206とを有する。変動率データ作成部201、モデル作成部202及び異常診断部203は、例えば、異常診断装置10にインストールされた1以上のプログラムが、プロセッサ108等に実行させる処理により実現される。また、運転データ記憶部204、変動率データ記憶部205及びモデル記憶部206は、例えば、補助記憶装置107等により実現される。なお、運転データ記憶部204、変動率データ記憶部205及びモデル記憶部206のうちの少なくとも一部の記憶部が、例えば、異常診断装置10と通信ネットワークを介して接続されるデータベースサーバ等が備える記憶装置により実現されてもよい。
【0024】
変動率データ作成部201は、運転データ記憶部204に記憶されている1以上の運転データから1以上の変動率データを作成し、それら1以上の変動率データを変動率データ記憶部205に保存する。ここで、変動率データ作成部201には、運転データ取得部211と、変動率算出部212と、正規化部213とが含まれる。運転データ取得部211は、運転データ記憶部204に記憶されている1以上の運転データを取得する。変動率算出部212は、運転データ取得部211によって取得された運転データの状態変数毎に、その状態変数値を時刻(時間)で2階微分した値の絶対値を変動率として算出する。正規化部213は、運転データの状態変数毎に、変動率算出部212によって算出された各変動率を0以上1以下に正規化する。
【0025】
モデル作成部202は、変動率データ記憶部205に記憶されている複数の変動率データから異常診断モデル(第1の異常診断モデル、第2の異常診断モデル)を作成し、それらの異常診断モデルをモデル記憶部206に保存する。ここで、モデル作成部202には、モデル作成用データ取得部221と、作成部222とが含まれる。モデル作成用データ取得部221は、変動率データ記憶部205に記憶されている1以上の変動率データを取得する。作成部222は、モデル作成用データ取得部221によって取得された1以上の変動率データから異常診断モデルを作成する。
【0026】
異常診断部203は、変動率データ記憶部205に記憶されている変動率データとモデル記憶部206に記憶されている異常診断モデル(第1の異常診断モデル、第2の異常診断モデル)から異常診断対象21に対する異常診断を行い、その異常診断結果をオペレータ端末30に通知する。ここで、異常診断部203には、診断用データ取得部231と、モデル作成・更新判定部232と、診断部233と、診断結果通知部234とが含まれる。診断用データ取得部231は、変動率データ記憶部205に記憶されている変動率データを取得する。モデル作成・更新判定部232は、第2の異常診断モデルを作成又は更新するか否かを判定する。診断部233は、診断用データ取得部231によって取得された変動率データを用いて、異常診断モデル(第1の異常診断モデル、第2の異常診断モデル)により異常診断対象21(より正確には、その異常診断対象21が実行しているバッチプロセス)の異常診断を行う。診断結果通知部234は、診断部233による異常診断結果(例えば、異常有無等)をオペレータ端末30に通知する。
【0027】
運転データ記憶部204は、施設20に含まれる制御装置23から受信した運転データを記憶する。なお、これらの運転データは異常診断対象21の状態(より正確には、当該異常診断対象21が実行しているバッチプロセスの状態)を表しているため、「バッチプロセスの運転データ」とも呼ばれる。
【0028】
変動率データ記憶部205は、変動率データ作成部201によって作成された変動率データを記憶する。
【0029】
モデル記憶部206は、モデル作成部202によって作成された異常診断モデル(第1の異常診断モデル、第2の異常診断モデル)を記憶する。
【0030】
<異常診断装置10が実行する各種処理の詳細>
以下、本実施形態に係る異常診断装置10が実行する各種処理の詳細について説明する。
【0031】
≪第1の異常診断モデル作成処理≫
以下、本実施形態に係る第1の異常診断モデル作成処理について、
図4を参照しながら説明する。第1の異常診断モデル作成処理は、例えば、予め決められた所定の第1の時間幅Δ
1毎に繰り返し実行される。当該第1の時間幅Δ
1としては任意の時間幅を設定することが可能であるが、例えば、1か月~数か月程度の時間幅とすることが考えられる。
【0032】
変動率データ作成部201の運転データ取得部211は、第1の異常診断モデルの作成に用いる運転データ集合を運転データ記憶部204から取得する(ステップS101)。以下、本ステップで取得された運転データ集合を「第1の学習用データ集合」ともいう。また、以下では、一例として、教師なし学習の手法によって第1の異常診断モデルを作成することを想定し、本ステップでは正常状態におけるバッチプロセスの運転データの集合が第1の学習用データ集合として取得されたものとする。以下、当該第1の学習用データ集合をD1={x(t)|t∈T1}と表す。T1は第1の学習用データ集合D1に含まれる運転データの時刻集合である。なお、教師なし学習の手法としては、例えば、多変量統計的プロセス管理(MSPC:Multivariate Statistical Process Control)の手法(参考文献1)、LOF(Local Outlier Factor)、One Class SVM、分離フォレスト(isolation Forest)、INNE(isolation using Nearest Neighbour Ensemble)等を用いることが可能である。
【0033】
ただし、教師なし学習の手法ではなく、例えば、単変量監視等の手法によって第1の異常診断モデルが作成されてもよい。この場合、異常診断モデルは、監視対象の状態変数と、その状態変数に対する閾値(上限値、下限値、又はその両方)とで構成される。
【0034】
変動率データ作成部201の変動率算出部212は、上記のステップS101で取得された第1の学習用データ集合D1に含まれる運転データx(t)を用いて、状態変数xn毎に、状態変数値xn(t)を時刻tで2階微分した値の絶対値を変動率として算出する(ステップS102)。以下、x(t)∈D1に含まれる状態変数値xn(t)を時刻tで2階微分した値の絶対値を変動率an(t)とする。これにより、変動率集合{an(t)|t∈T1,n=1,・・・,N}が得られる。
【0035】
変動率データ作成部201の正規化部213は、状態変数xn毎に、その状態変数xnに対応する変動率an(t)(t∈T1)を0以上1以下に正規化する(ステップS103)。すなわち、変動率an(t)(t∈T1)の最大値をan
(max)、最小値をan
(min)として、正規化部213は、状態変数xn毎に、(an(t)-an
(min))/(an
(max)-an
(min))により、その状態変数xnに対応する変動率an(t)(t∈T1)を正規化する。以下、正規化後の変動率an(t)(t∈T1)を変動率cn(t)(t∈T1)とする。これにより、正規化後の変動率集合{cn(t)|t∈T1,n=1,・・・,N}が得られる。
【0036】
変動率データ作成部201の正規化部213は、正規化後の変動率c1(t),・・・,cN(t)で構成される変動率データc(t)(t∈T1)を第1のモデル作成用データとして、第1のモデル作成用データ集合を変動率データ記憶部205に保存する(ステップS104)。すなわち、正規化部213は、変動率データc(t)=(c1(t),・・・,cN(t))Τ(t∈T1)を第1のモデル作成用データとして、第1のモデル作成用データ集合E1={c(t)|t∈T1}を変動率データ記憶部205に保存する。
【0037】
モデル作成部202のモデル作成用データ取得部221は、変動率データ記憶部205に記憶されている第1のモデル作成用データ集合E1を取得する(ステップS105)。
【0038】
モデル作成部202の作成部222は、上記のステップS105で取得された第1のモデル作成用データ集合E1に含まれる変動率データc(t)を用いて、教師なし学習の手法によって第1の異常診断モデルを作成する(ステップS106)。また、このとき、作成部222は、既知の手法(例えば、3σ法等)により、第1の異常診断モデルによる異常診断時に利用する第1の閾値th1を算出する。ただし、当該第1の閾値th1は、例えば、ユーザ等によって与えられてもよい。
【0039】
モデル作成部202の作成部222は、上記のステップS106で作成された第1の異常診断モデルをモデル記憶部206に保存する(ステップS107)。また、このとき、作成部222は、上記のステップS106で算出された第1の閾値th1を第1の異常診断モデルと対応付けてモデル記憶部206に保存する。ただし、第1の異常診断モデル及び第1の閾値th1がモデル記憶部206に既に保存されている場合、作成部222は、上記のステップS106で作成及び算出された第1の異常診断モデル及び第1の閾値th1によって既に保存されている第1の異常診断モデル及び第1の閾値th1を上書き保存(更新)する。
【0040】
以上により、第1の異常診断モデルが構築され、当該第1の異常診断モデルとその異常診断時に利用する第1の閾値th1とがモデル記憶部206に保存される。
【0041】
≪異常診断処理≫
以下、本実施形態に係る異常診断処理について、
図5を参照しながら説明する。異常診断処理は、例えば、予め決められた所定の第2の時間幅Δ
2毎に繰り返し実行される。当該第2の時間幅Δ
2としては任意の時間幅を設定することが可能であるが、例えば、数分~10分程度の時間幅とすることが考えられる。なお、以下では、モデル記憶部206には少なくとも第1の異常診断モデル及び第1の閾値th
1が保存されているものとする。
【0042】
変動率データ作成部201の運転データ取得部211は、異常診断対象21の異常診断に用いる運転データx(t)を運転データ記憶部204から取得する(ステップS201)。なお、運転データ取得部211は、例えば、異常診断対象21の異常診断に用いる運転データx(t)として、運転データ記憶部204に記憶されている運転データのうち最新時刻の運転データを取得すればよい。以下、本ステップで取得された運転データx(t)をxs(t)=(x1
s(t),・・・,xN
s(t))Τと表すことにする。
【0043】
変動率データ作成部201の変動率算出部212は、上記のステップS201で取得された運転データx
s(t)を用いて、状態変数x
n毎に、状態変数値x
n
s(t)を時刻tで2階微分した値の絶対値を変動率として算出する(ステップS202)。以下、状態変数値x
n
s(t)を時刻tで2階微分した値の絶対値を変動率a
n
s(t)とする。これにより、変動率集合{a
n
s(t)|n=1,・・・,N}
変動率データ作成部201の正規化部213は、状態変数x
n毎に、その状態変数x
nに対応する変動率a
n
s(t)を0以上1以下に正規化する(ステップS203)。すなわち、正規化部213は、状態変数x
n毎に、(a
n
s(t)-a
n
(min))/(a
n
(max)-a
n
(min))により、その状態変数x
nに対応する変動率a
n
s(t)を正規化する。ここで、a
n
(max)及びa
n
(min)は
図4のステップS103で説明したものであり、それぞれ変動率a
n(t)(t∈T
1)の最大値及び最小値である。以下、正規化後の変動率a
n
s(t)を変動率c
n
s(t)とする。これにより、正規化後の変動率集合{c
n
s(t)|n=1,・・・,N}が得られる。
【0044】
変動率データ作成部201の正規化部213は、正規化後の変動率c1
s(t),・・・,cN
s(t)で構成される変動率データcs(t)を診断用データとして、変動率データ記憶部205に保存する(ステップS204)。すなわち、正規化部213は、変動率データcs(t)=(c1
s(t),・・・,cN
s(t))を診断用データとして、変動率データ記憶部205に保存する。
【0045】
異常診断部203の診断用データ取得部231は、上記のステップS204で保存された診断用データcs(t)を変動率データ記憶部205から取得する(ステップS205)。
【0046】
異常診断部203の診断部233は、上記のステップS205で取得された診断用データcs(t)を用いて、第1の異常診断モデルと第1の閾値th1により異常診断対象21の異常診断を行う(ステップS206)。また、このとき、診断部233は、その異常診断結果に対するプロセス変数の重要度(以下、変数重要度ともいう。)も算出する。
【0047】
すなわち、診断部233は、例えば、診断用データcs(t)と第1の異常診断モデルから異常度等と呼ばれる指標値を算出した上で、この指標値が第1の閾値th1を超えている場合は異常、そうでない場合は正常と診断する。また、診断部233は、既知の手法により、その異常診断結果(以下、第1の異常診断結果ともいう。)に対する変数重要度も算出する。
【0048】
なお、指標値としては、例えば、異常診断モデルがMSPCの手法により作成されたものである場合、Q統計量やT2統計量等が挙げられる。また、変数重要度は、例えば、異常診断モデルがMSPCの手法により作成されたものである場合、Q統計量やT2統計量等に対する各プロセス変数の寄与度が挙げられる。一方で、例えば、異常診断モデルがMSPC以外の手法で作成されたものである場合、変数重要度は、LIME、SHAP、VAE等といったモデル解釈技術により算出すればよい。
【0049】
異常診断部203のモデル作成・更新判定部232は、第2の異常診断モデルを作成又は更新するか否かを判定する(ステップS207)。ここで、モデル作成・更新判定部232は、第2の異常診断モデルが未だ作成されていない場合(つまり、第2の異常診断モデルがモデル記憶部206に記憶されていない場合)、第2の異常診断モデルを作成する判定する。一方で、第2の異常診断モデルが作成済である場合(つまり、第2の異常診断モデルがモデル記憶部206に記憶されている場合)、モデル作成・更新判定部232は、例えば、第2の異常診断モデルが作成又は前回更新された後に予め決められた所定の第33の時間幅Δ3(ただし、Δ3<Δ1)が経過したときに第2の異常診断モデルを更新すると判定する。当該第3の時間幅Δ3としては任意の時間幅を設定することが可能であるが、例えば、1週間~数週間程度の時間幅とすることが考えられる。
【0050】
上記のステップS207で第2の異常診断モデルを作成又は更新すると判定された場合、異常診断装置10は、第2の異常診断モデル作成又は更新処理を実行する(ステップS208)。第2の異常診断モデル作成又は更新処理の詳細については後述する。以下では、第2の異常診断モデルとその異常診断時に利用する第2の閾値th2とが作成及び算出され、モデル記憶部206に保存されたものとして説明を続ける。
【0051】
上記のステップS207で第2の異常診断モデルを作成又は更新すると判定されなかった場合、又は、上記のステップS208に続いて、異常診断部203の診断部233は、上記のステップS205で取得された診断用データcs(t)を用いて、第2の異常診断モデルと第2の閾値th2により異常診断対象21の異常診断を行う(ステップS209)。また、このとき、診断部233は、その異常診断結果に対するプロセス変数の変数重要度も算出する。
【0052】
すなわち、診断部233は、例えば、診断用データcs(t)と第2の異常診断モデルから異常度等と呼ばれる指標値を算出した上で、この指標値が第2の閾値th2を超えている場合は異常、そうでない場合は正常と診断する。また、診断部233は、既知の手法により、その異常診断結果(以下、第2の異常診断結果ともいう。)に対する変数重要度も算出する。
【0053】
そして、異常診断部203の診断結果通知部234は、上記のステップS206における第1の異常診断結果とそれに対する変数重要度と、上記のステップS209における第2の異常診断結果とそれに対する変数重要度とをオペレータ端末30に通知する(ステップS210)。これにより、オペレータ端末30を利用するオペレータは、異常診断対象21が実行するバッチプロセスに異常が発生したか否かを確認することが可能となり、その結果に応じて適切な対象(例えば、手動で異常診断対象21の運転を停止したり、縮退運転に切り替えたりする等)を行うことが可能となる。また、オペレータは、変数重要度を参照することにより、例えば、当該バッチプロセスに異常が発生している場合にどの物理量が異常の原因となっているのかを知ることができる。更に、オペレータは、第1の異常診断結果と第2の異常診断結果との両方が通知されることにより、より精度の良い異常診断結果を得ることが可能となる。
【0054】
≪第2の異常診断モデル作成及び更新処理≫
以下、上記のステップS208における第2の異常診断モデル作成又は更新処理について、
図6を参照しながら説明する。
【0055】
変動率データ作成部201の運転データ取得部211は、第1の学習用データ集合とは異なる運転データ集合を運転データ記憶部204から取得する(ステップS301)。以下、本ステップで取得された運転データ集合を「第2の学習用データ集合」ともいう。また、以下では、一例として、教師なし学習の手法によって第2の異常診断モデルを作成することを想定し、本ステップでは正常状態におけるバッチプロセスの運転データの集合が第2の学習用データ集合として取得されたものとする。以下、当該第2の学習用データ集合をD2={x(t)|t∈T2}と表す。T2は第2の学習用データ集合D2に含まれる運転データの時刻集合である。
【0056】
なお、第2の学習用データ集合としては、例えば、直近の時間幅K×Δ3(つまり、現在によりも時間幅K×Δ3前の時刻から現在時刻までの時間幅)おける運転データの集合とすることが考えられる。ここで、Kは予め設定された1以上の整数である。
【0057】
変動率データ作成部201の変動率算出部212は、上記のステップS301で取得された学習用データ集合D2に含まれる運転データx(t)を用いて、状態変数xn毎に、状態変数値xn(t)を時刻tで2階微分した値の絶対値を変動率として算出する(ステップS302)。以下、x(t)∈D2に含まれる状態変数値xn(t)を時刻tで2階微分した値の絶対値を変動率bn(t)とする。これにより、変動率集合{bn(t)|t∈T2,n=1,・・・,N}が得られる。
【0058】
変動率データ作成部201の正規化部213は、状態変数xn毎に、その状態変数xnに対応する変動率bn(t)(t∈T2)を0以上1以下に正規化する(ステップS303)。すなわち、変動率bn(t)(t∈T2)の最大値をbn
(max)、最小値をbn
(min)として、正規化部213は、状態変数xn毎に、(bn(t)-bn
(min))/(bn
(max)-bn
(min))により、その状態変数xnに対応する変動率bn(t)(t∈T2)を正規化する。以下、正規化後の変動率bn(t)(t∈T2)を変動率cn(t)(t∈T2)とする。これにより、正規化後の変動率集合{cn(t)|t∈T2,n=1,・・・,N}が得られる。
【0059】
変動率データ作成部201の正規化部213は、正規化後の変動率c1(t),・・・,cN(t)で構成される変動率データc(t)(t∈T2)を第2のモデル作成用データとして、第2のモデル作成用データ集合を変動率データ記憶部205に保存する(ステップS304)。すなわち、正規化部213は、変動率データc(t)=(c1(t),・・・,cN(t))Τ(t∈T2)を第2のモデル作成用データとして、第2のモデル作成用データ集合E2={c(t)|t∈T2}を変動率データ記憶部205に保存する。
【0060】
モデル作成部202のモデル作成用データ取得部221は、変動率データ記憶部205に記憶されている第2のモデル作成用データ集合E2を取得する(ステップS305)。
【0061】
モデル作成部202の作成部222は、上記のステップS305で取得された第2のモデル作成用データ集合E2に含まれる変動率データc(t)を用いて、教師なし学習の手法によって第2の異常診断モデルを作成する(ステップS306)。また、このとき、作成部222は、既知の手法(例えば、3σ法等)により、第2の異常診断モデルによる異常診断時に利用する第2の閾値th2を算出する。ただし、当該第2の閾値th2は、例えば、ユーザ等によって与えられてもよい。なお、教師なし学習の手法ではなく、例えば、単変量監視等の手法によって第2の異常診断モデルが作成されてもよい。また、第2の異常診断モデルは、第1の異常診断モデルと同様の手法により作成されてもよいし、第1の異常診断モデルとは異なる手法により作成されてもよい。
【0062】
モデル作成部202の作成部222は、上記のステップS306で作成された第2の異常診断モデルをモデル記憶部206に保存する(ステップS307)。また、このとき、作成部222は、上記のステップS306で算出された第2の閾値th2を第2の異常診断モデルと対応付けてモデル記憶部206に保存する。ただし、第2の異常診断モデル及び第2の閾値th2がモデル記憶部206に既に保存されている場合、作成部222は、上記のステップS306で作成及び算出された第2の異常診断モデル及び第2の閾値th2によって既に保存されている第2の異常診断モデル及び第2の閾値th2を上書き保存(更新)する。これにより、第2の異常診断モデルとその異常診断時に利用する第2の閾値th2とが作成又は更新される。
【0063】
<まとめ>
以上のように、本実施形態に係る異常診断装置10は、バッチプロセスを対象として、正常状態における異常診断対象21から収集した運転データの2階微分値の絶対値を正規化した振動率データを用いて、異常診断モデルを作成する。これにより、本実施形態に係る異常診断装置10では、例えば、バッチプロセスの正常状態を表す波形パターンが多数存在する場合であっても、当該バッチプロセスの異常診断を行うことが可能となる。また、それに加えて、バッチ単位ではなく、バッチの途中であっても異常診断を行うことが可能となる。
【0064】
また、本実施形態に係る異常診断装置10は、第1の時間幅Δ1毎に第1の異常診断モデルを作成すると共に、第3の時間幅Δ3(ただし、Δ3<Δ1)毎に直近の運転データを利用して第2の異常診断モデルを作成する。これにより、第2の異常診断モデルを直近の運転データを利用して半自動的に随時更新することができるため、例えば、運転データの特性変動等に起因する異常診断精度の低下を抑制することが可能となり、高精度な異常診断を実現することができる。
【0065】
更に、本実施形態に係る異常診断装置10は、例えば、MSPC等といった教師なし学習の手法により異常診断モデルを構築することができるため、複数の状態変数(特に、3つ以上の状態変数)を同時に監視して異常診断を行うことができる。
【0066】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0067】
[参考文献]
参考文献1:加納 学,「多変量統計的プロセス管理」,インタネット<URL:http://manabukano.brilliant-future.net/research/report/Report2005_MSPC.pdf>
【符号の説明】
【0068】
1 異常診断システム
10 異常診断装置
20 施設
21 異常診断対象
22 計測器
23 制御装置
30 オペレータ端末
101 入力装置
102 表示装置
103 外部I/F
103a 記録媒体
104 通信I/F
105 RAM
106 ROM
107 補助記憶装置
108 プロセッサ
109 バス
201 変動率データ作成部
202 モデル作成部
203 異常診断部
204 運転データ記憶部
205 変動率データ記憶部
206 モデル記憶部
211 運転データ取得部
212 変動率算出部
213 正規化部
221 モデル作成用データ取得部
222 作成部
231 診断用データ取得部
232 モデル作成・更新判定部
233 診断部
234 診断結果通知部