以下、本発明の第1の実施形態に係る事象推定システム及び事象推定方法を、図1~7を参照して説明する。
図1は、本発明の第1の実施形態に係る事象推定システム1の1例を示す全体外観図である。ここで、「事象推定システム」とは、任意の制御系において、制御対象機器2に何らかの事象が生じたこと、又は生じなかったことを推定するシステムを指している。そのため、事象推定システム1では、オペレータなどの人手による点検や観察に頼ることなく、制御系に生じた変化を早期に且つマンパワーをかけることなく検出することが企図されている。
図1に典型的に示されているように、事象推定システム1には、制御対象機器2と、下位コントローラ3、上位コントローラ4の2種のコントローラが含まれ、制御対象機器2と下位コントローラ3とは第1の回線5で、下位コントローラ3と上位コントローラ4とは第2の回線6で互いに接続されている。
ここで、コントローラは、FAに用い得る機器であって、何らかの他の機器(制御対象機器2)を制御し、あるいは他の機器と情報の入出力を行う機能を有する機器を指している。図1に示した例では、下位コントローラ3はいわゆるサーボコントローラとして、また、上位コントローラ4はPLC(プログラマブルロジックコントローラ)として示しているが、その他の機器、例えば、シングルボードマイコンや一般的なPC(パーソナルコンピュータ)等のコンピュータ等であってもよい。なお、コントローラは、その現実の用途がFAに限定されるわけではなく、生産設備はもちろん、車両やアミューズメント機器など、各種の装置に組み込まれ利用されてよい。
また、制御対象機器2は、下位コントローラ3により制御され、あるいはその機器の状態を示す情報を入出力する機器である。図1の例では、制御対象機器3としてサーボモータを示しており、以降本明細書では、制御対象機器2として、サーボモータを例示して説明する。なお、制御対象機器2としては、その他の形式の回転電動機(例えば、ステッピングモータ等)やリニアモータ、ソレノイド、空圧機器などの各種のアクチュエータ、スイッチやセンサ等であってもよい。また、下位コントローラ3に接続される制御対象機器2は1つである必要はなく、複数の制御対象機器2が接続されていてよい。
下位コントローラ3は、図1に示されているように、直接対象となる制御対象機器3を制御することにより特徴づけられる。そのため、第1の回線5は、制御対象機器3を制御するために必要な通信速度や、電力の供給に十分な能力を有する。本例のように、制御対象機器2がサーボモータである場合、その制御周期は数~数十マイクロ秒であり、この制御周期ごとに、下位コントローラ3からは第1の回線5を通じて電力が供給され、また、制御対象機器2からはエンコーダなど制御対象機器2に設けられた各種センサからの出力値が送信される。
上位コントローラ4は、下位コントローラ3を制御することにより、間接的に制御対象機器3を制御することにより特徴づけられる。なお、図1では1つの上位コントローラ4に対し、1つの下位コントローラ3のみが接続されている場合を図示しているが、複数の下位コントローラ3が上位コントローラ4に接続されていてもよい。また、上位コントローラ4が、さらに、スイッチなどの(図示されていない、別の)制御対象機器と接続され、これを直接制御していても差し支えない。いずれにせよ、下位コントローラ3と上位コントローラ4とは、第2の回線6により接続され、この第2の回線6は、下位コントローラ3を制御するために必要な通信速度に十分な能力を有する。図示の例のように、上位コントローラ4がPLCである場合、その制御周期(いわゆるスキャンタイム)は一般的に、数百マイクロ秒~数十ミリ秒であるから、第2の回線6は、この制御周期ごとの指令や、情報の伝達が可能なものとされる。
したがって、多くのケースでは、単純に通信速度の観点から第1の回線5と第2の回線6を比較すると、第1の回線の方がより高速である。つまり、下位コントローラ3におけて作動情報を取得する速度の方が、上位コントローラ4において作動情報を受信する速度よりも高速である。したがって、制御対象機器2から下位コントローラ3が収集するすべての情報をリアルタイムに上位コントローラ4に送信することは困難であることが予想される。
図2は、本実施形態に係る事象推定システム1の制御対象機器2と下位コントローラ3のハードウェア構成例を示すブロック図である。制御対象機器2はここではサーボモータであり、三相電動機201と、センサ202を備えている。三相電動機201は電動機の一例として示したものであり、その相数に特に限定はなく、二相あるいは四相以上の多相であっても差し支えない。また、センサ202には、典型的にはロータリエンコーダが含まれるが、その他にも、温度計や振動計、電流・電圧計、トルクセンサといった各種のセンサが含まれていてよく、また、ロータリエンコーダに代えてレゾルバなど他の形式の回転角検出器を用いるものであってもよい。電動機の形式にも限定はなく、誘導電動機、永久磁石同期電動機その他各種形式の電動機を使用してもよい。
また、下位コントローラ3は、サーボアンプ301と制御回路302を含んでいる。サーボアンプ301は、AC/DC変換器303により変換された直流を、インバータ304によって、三相電動機201の駆動に適した3相交流に変換し出力する。インバータ304の制御は制御回路302によりなされ、制御回路302では、メモリ305に記憶された各種の情報に基づいて、プロセッサ306がインバータ304に対してする制御指令
(典型的には電流指令値)を決定する。また、センサ202により検出された、三相電動機201の回転角やその他情報は、制御回路302に入力され、三相電動機201の制御に用いられる。本例では、メモリ305には三相電動機201の動作波形を決定するための各種パラメータや動作のパターンが記憶されている他、後述するように、センサ202からの情報も保存される。
図2に示されるように、制御対象機器2と下位コントローラ3とは第1の回線5により接続され、第1の回線5には、サーボアンプ301から三相電動機201に電力を供給する電力供給線と、センサ202から制御回路302に情報を伝送する情報通信回線の両方が含まれる。一方、下位コントローラ3の入出力307を通じて、上位コントローラ4と制御回路302が情報通信可能となるよう、第2の回線6により接続されている。本例では、第1の回線5に含まれる情報通信回線の通信速度は第2の回線6の通信速度より高速であり、センサ202により取得される情報と、制御回路302よりインバータ304に指示される制御指令とを、リアルタイムに上位コントローラ4に送信することはできない場合を想定するものとする。
図3は、本実施形態に係る事象推定システム1の上位コントローラ4のハードウェア構成例を示すブロック図である。上位コントローラ4は、プロセッサ403及びメモリ402を含む制御回路401を有する。制御回路401は、入出力404を介して接続された種々の機器に対し、メモリ402上に記憶されたプログラムに従って、必要な指示等の出力をし、また、種々の機器からの情報の入力を受け、制御に必要とされる演算を行ったり、メモリ402に保存したりする。前述の通り、本例では、上位コントローラ4から下位コントローラ3とは、入出力404を介して、第2の回線6により接続されている。
以上説明の通り、下位コントローラ3及び上位コントローラ4は、それぞれ、制御回路
(制御回路302及び制御回路401)を備えており、メモリ(メモリ305及びメモリ403)とプロセッサ(プロセッサ306及びプロセッサ402)を有している。しかしながら、両者の情報処理能力には違いがあり、一般的な演算能力で比較すると、上位コントローラ4の方が下位コントローラ3よりも優れていることが通常である。
下位コントローラ3は、接続される制御対象機器2の制御に特に適するように設計されているから、そのメモリ305及びプロセッサ306の性能も、制御対象機器1の制御に十分であれば足るため、それをはるかに上回る性能を持たせることは、冗長であって単にコスト増を招くにすぎず、通常はなされない。一方、上位コントローラ4は、汎用品として設計され、その用途も多岐にわたり限定されていないことから、機器の利用が想定できる最も負荷の高い情報処理に対応できるように設計されるため、演算性能には余裕が持たされることが通常である。
本例はこのような場合を仮定し、下位コントローラ3は、制御対象機器1の制御に関しては、低負荷の追加の情報処理は可能であるが、高負荷の追加の情報処理を行う余裕はない一方で、上位コントローラ4は、下位コントローラ3に対する制御に加え、ある程度の高負荷の情報処理を行う余力が残されているものとする。
図4は、本実施形態に係る事象推定システム1の全体の構成を示す機能ブロック図である。図4に示されたブロックの一部はハードウェアにより実現され、また一部はプロセッサ306、ブロセッサ402、メモリ305及びメモリ403といったハードウェア資源を用いてソフトウェアにより実現される。
制御対象機器2は、その状態を検出して下位コントローラ3に出力するセンサ202を有している。また、下位コントローラ3には、制御対象機器2の制御にあたり、必要な指令をし、あるいは動力(電力)を供給する機器制御部308が設けられている。この機器制御部308から制御対象機器2に適切な指令を送り、センサ202からの情報を受けてフィードバック制御などの適切な手法により、機器制御部308からの指令を調整することで、下位コントローラ2は制御対象機器2の制御を行っている。
この時、制御対象機器2の状態は、センサ202からの出力と、機器制御部308からの指令との関係から推定できると考えられる。そのため、下位コントローラ3には、作動情報取得部309が設けられ、センサ202からの出力と、機器制御部308からの指令の両方の情報を取得する。このセンサ202からの出力と、機器制御部308からの指令を含む、制御対象機器2の状態を推定するための情報を以降では、「作動情報」と呼ぶこととする。すなわち、作動情報取得部309は、制御対象機器2の作動情報を取得するといえる。
取得された作動情報には、本例のように制御対象機器2がサーボモータである場合、電流波形や速度波形といった、サーボモータの動作時の記録が含まれる。このような作動情報から、サーボモータの異常の検出や、摩耗などの経年変化による余寿命の予測が行えると、定期的な点検や部品交換等のメンテナンスの手間とコストを大幅に抑えることができ、また、故障などに起因する事故等を未然に防止することに役立つと考えられる。このような、作動情報から間接的に制御対象機器2の状態を推定することは、人間にとっては一般にむつかしいが、ニューラルネットワークモデル等を利用した機械学習の得意とするところであると予測される。
そのため、下位コントローラ3には、さらに、機械学習モデルである、下位ニューラルネットワークモデル311を有する異常推定部310が設けられる。ここで、「下位」と称しているのは、後述する上位ニューラルネットワークモデル407との区別のためである。
下位ニューラルネットワークモデル311は、いわゆるディープラーニングの手法による学習済みのニューラルネットワークモデルであり、作動情報を入力とし、異常情報を出力とする計算モデルである。下位ニューラルネットワークモデル311の形式には特に限定はなく、作動情報の種類に適したネットワークモデルを採用すればよく、いわゆるCNN(畳み込みニューラルネットワーク)であっても、RNN(再帰型ニューラルネットワーク)であっても、その他の形式のニューラルネットワークモデルであってもよい。本例では、作動情報は時系列情報を含むため、下位ニューラルネットワークモデル311はLSTM(長短期記憶)によるRNNを用いている。
ところで、下位コントローラ3のプロセッサ306は、演算能力の余力が乏しいことは前述したとおりである。そして、一般に、ニューラルネットワークモデルを用いた機械学習モデルによる演算は、大規模並列演算であり、その演算負荷が大きい。そのため、下位ニューラルネットワークモデル311は、プロセッサ306の限られた演算能力により十分に演算が可能なように、その演算量が小さく、規模の小さいものとなるように設計されている。この下位ニューラルネットワークモデル311の規模については、上位ニューラルネットワークモデル407との比較において後ほど詳細に説明する。
また、異常情報は、制御対象機器2に何らかの注目すべき状態の変化が生じたこと、又は生じていないことを推定しうる情報である。そして、制御対象機器2に何らかの注目すべき状態の変化が生じた状態をここでは「異常」と呼ぶこととする。したがって、異常情報は異常の有無を推定する情報である。なお、本明細書でいう異常は、必ずしも悪影響を及ぼすものであることを意味しない。これに対し、制御対象機器2に生じた状態の変化そのものを、以降、「事象」と呼ぶこととする。異常情報は、制御対象機器2に何らかの注目すべき状態の変化が生じたか否かは推定するが、どのような状態の変化が生じたかは必ずしも推定しない。すなわち、異常情報は、異常の有無を推定するものではあるものの、必ずしも事象を推定するものであるとは限らない。もちろん、異常情報が、一部の、あるいはすべての事象を推定しうるものであってもよい。
本実施形態では、異常情報は、0~1の範囲を持つ数値であり、何らかの事象が生じたことの確からしさを示している。この異常情報の値に所定の閾値を設定しておき、異常情報がかかる閾値を超えた場合に、何らかの事象が生じた可能性があると判断すればよい。例えば、閾値として0.6を設定した場合を想定し、ある瞬間の作動情報を下位ニューラルネットワークモデル311に入力して異常情報として0.1が出力された場合、何らの事象は生じていないと判断できる。あるいは、異常情報として0.7が出力されれば、何らかの事象が生じている可能性があると判断できる。このようにして、異常推定部310は、異常の有無を推定している。
なお、異常推定部310は、下位ニューラルネットワークモデル311に作動情報を適した形式で入力するための前処理、下位ニューラルネットワークモデル311からの出力を異常情報として適した形式で出力するための後処理を行っていてよく、それら前処理、後処理を行う部分は図4には示していない。
異常情報が何らかの事象が生じていることを示しているか否かの判断は、異常推定部310により行ってもよいが、本例では、作動情報送信部312によりなされている。作動情報送信部は、異常推定部310から出力された異常情報に基づいて、かかる異常情報が異常を示している、すなわち、何らかの事象が生じている可能性がある場合に、作動情報を上位コントローラ4に送信する。ここで出力される作動情報は、異常推定部310の下位ニューラルネットワークモデル311に入力され、異常を示す異常情報が出力される原因となった作動情報である。
下位コントローラ3では、異常推定部310において下位ニューラルネットワークモデル311による異常の推定のための演算が行われている間にも、時々刻々と作動情報取得部309による新たな作動情報の取得が進行している。そのため、作動情報送信部312から出力される作動情報は、リアルタイムで取得される作動情報ではなく、下位ニューラルネットワークモデル311に入力された過去の作動情報でなければならない。
そこで、下位コントローラ3には、作動情報保持部313が設けられ、一定期間にわたる過去の作動情報を保持している。作動情報保持部313は、少なくとも、下位ニューラルネットワークモデル311に入力された作動情報について、その作動情報に基づく異常情報の出力がなされるまでの期間保持していなければならない。なぜならば、出力された異常情報に基づいて、作動情報送信部312が、作動情報保持部313から当該異常情報に係る作動情報を読み出す必要があるためである。
現実的には、作動情報保持部313による作動情報の保持期間は、作動情報送信部312から上位コントローラ4への情報の伝送の遅延などを考慮して、余裕を持った期間が設定される。すでに述べたとおり、下位コントローラ3と上位コントローラ4との間の第2の回線6の通信速度は低速であるため、作動情報を上位コントローラ4に送信し終えるまでに時間がかかると考えられるためである。
また、作動情報取得部309により取得されるすべての作動情報を保存しようとすると、作動情報保持部313の記憶容量を極めて大容量としなければならず、現実的でない。そのため、本実施形態では、作動情報保持部313はいわゆるリングバッファであり、所定の容量を超えて新たな作動情報を保存しようとすると、古い作動情報から破棄され、常に最新の作動情報が蓄積されるようになっている。
上位コントローラ4は、下位コントローラ3の作動情報送信部312から送信された作動情報を作動情報受信部405で受信する。この時、作動情報送信部312は、異常推定部310から得られた異常情報を併せて作動情報受信部405に送信してもよい。
作動情報受信部405により作動情報が受信されたということは、下位コントローラ3で異常が検出された、すなわち、何らかの事象が生じている可能性があると判断されたということである。もちろん、併せて異常情報を受信している場合には、この異常情報の値を加味して判断しても差し支えない。いずれにせよ、下位コントローラ3の異常推定部310による異常の推定では、この事象がなんであるかを必ずしも特定することはできず、また、真に対処の必要な事象であるか否かを正確に推定することはできない。
そこで、上位コントローラ4には、上位ニューラルネットワークモデル407を有する事象推定部406が設けられる。上位ニューラルネットワークモデル407もまた、いわゆるディープラーニングの手法による学習済みのニューラルネットワークモデルであり、作動情報を入力とし、事象情報を出力とする計算モデルである。上位ニューラルネットワークモデル407の形式にもまた特に限定はなく、作動情報の種類に適したネットワークモデルを採用すればよく、CNN、RNN、その他のいかなる形式のニューラルネットワークモデルであってもよいが、ここでは、下位ニューラルネットワークモデル311と同形式のモデルであることが望ましい。本例では、上位ニューラルネットワークモデル407は、下位ニューラルネットワークモデル311と同様にLSTMによるRNNを用いている。
ここで、事象情報とは、制御対象機器2に生じた注目すべき状態の変化、すなわち事象を推定しうる情報である。事象情報は、ベクトル値であってよい。一例として、事象情報より推定される事象が、物理的損傷、経年劣化、潤滑油不足、暖機不足の4種であるならば、事象情報は4次元ベクトルであってよい。具体的な例として、事象推定部より得られた事象情報が(0.1,0.7,0.3,0.2)であり、それぞれの事象が生じていることを示す閾値が0.6であれば、事象として、経年劣化が生じており、物理的損傷、潤滑油不足及び暖機不足は生じていないと推定できる。もちろん、事象情報の形式はこの例に限られず、他の形式であっても差し支えない。事象推定部406は、このように事象情報を得ることによって事象を推定する。
そして、上位ニューラルネットワークモデル407は、下位ニューラルネットワークモデル311と比較して、演算量が多く、大規模であることによって特徴づけられる。すなわち、下位コントローラ3のプロセッサ306は、演算能力の余力が乏しく、高負荷の演算ができないため、規模の小さい下位ニューラルネットワークモデル311を使用して、簡易かつ高速に異常情報を得る。そのため、異常情報の精度は必ずしも高くなく、また、生じた事象を個別に特定する必要は必ずしもない。これに対し、上位コントローラ4のプロセッサ402は、演算能力に十分な余力があり、高負荷の演算ができるため、下位ニューラルネットワークモデル311より規模の大きい上位ニューラルネットワークモデル407を使用して、事象情報を得る。これにより、異常情報のみでは知り得なかった個別の事象の特定をより正確に行うことができる。
事象推定部406による上位ニューラルネットワークモデル407を用いた事象の推定は、作動情報受信部405により作動情報が受信された場合になされる。すなわち、下位コントローラ3の作動情報送信部312にて、異常情報が異常ありと判断された場合になされるから、事象推定部406は、異常情報に応じて動作していることになる。これにより、事象推定部406は、制御対象機器2のセンサ202と、下位コントローラ3の機器制御部308から時々刻々と得られる作動情報の全てに対して事象の推定をする必要はなく、異常情報が異常ありと判断された場合の作動情報に対してのみ事象の推定をすればよいから、リアルタイムに得られる作動情報の全てを上位コントローラ4に送る必要がなく、比較的低速な通信速度を持つ第2の回線6を用いて必要な作動情報を送ることが十分に可能である。また、大規模な上位ニューラルネットワークモデル407を用い、制御対象機器2の制御周期に比して十分長い演算時間を費やして、より正確な事象情報を得ることが可能となる。
なお、本明細書でいうニューラルネットワークモデルの規模とは、コントローラにおける演算負荷の大きさを意味し、その算定は、実機での演算負荷に即したものであればいかなるものであってもよい。本明細書では、ニューラルネットワークにおいて入力から出力が得られるまでに必要な演算数に、各演算の桁数(ビット数)を乗じたものにより算定する。これをニューラルネットワークモデルの規模ファクターSFと書くこととすると、規模ファクターSFは次の式により計算できる。
ここで、Lはニューラルネットワークモデルの層数、nkは、入力層を第1層、出力層を第L層、第2~(L-1)層を隠れ層としたときの第k層のノード数、Bkは、第k層の演算のビット数である。
一例として、図5に示す4層、入出力層のノード数が4で隠れ層のノード数が5、各層の演算は32ビットとすると、規模ファクターSFは、
下位ニューラルネットワークモデル311と上位ニューラルネットワークモデル407の層数や各層のノード数は必ずしも一致している必要はないが、単純には、上位ニューラルネットワークモデル407の演算のビット数を減ずることにより、規模の小さい下位ニューラルネットワークモデル311が得られる。具体例としては、上位ニューラルネットワークモデル407の各層の演算ビット数が32ビットであるのに対し、下位ニューラルネットワークモデル311の演算ビット数を4ビットとするなどである。また、下位ニューラルネットワークモデル311の出力層のノード数を1として異常情報としてスカラー値のみを出力するようにしたり、隠れ層数やノード数を削減したりすることにより所望の規模の下位ニューラルネットワークモデル311が得られる。
ニューラルネットワークモデルがRNNの場合には、入力されるデータあるいは出力されるデータにより再帰処理の回数が異なりうるため、ある入力データに対して必要な演算数は必ずしも一定でない。このような場合には、再帰処理の1ステップに対する規模ファクターSFによりニューラルネットワークモデルの規模を評価するとよい。
一例として、図6に代表的なRNNの構成を示す。同図で、xは入力ベクトル、oは出力ベクトル、sはニューラルネットワークの隠れ要素(内部状態)、Wは再帰計算を示す。規模ファクターSFは、再帰計算Wを考慮することなく、図中の破線枠で示した部分について計算して、ニューラルネットワークモデルの規模を評価するとよい。
図4に戻り、事象推定部406により得られた事象情報は、推定結果処理部408に受け渡され、推定された事象に応じた処理がなされる。例えば、物理的損傷が推定された場合には、オペレータに警告を発し、部品の交換を指示し、経年劣化が推定された場合には、余寿命予測に基づく部品交換時期を表示し、潤滑油不足が推定された場合にはオペレータに潤滑油の補充を指示するなどである。暖機不足や、特定の事象が検出されなかった場合には、制御対象機器2の運転に取り立てて支障はないため、特に何らの動作を行わないか、参考情報として事象の推定結果の表示をすればよい。
また、以上の説明より明らかなように、規模の小さい下位ニューラルネットワークモデル311を用いた異常推定部310による異常の推定よりも、規模の大きい上位ニューラルネットワークモデル407を用いた事象推定部406による事象の推定の方が推定の精度が高く、正確である。そのため、異常推定部310によっては異常ありと推定されたが、同じ作動情報を用いた事象推定部406による推定の結果では、その事象が暖機不足などの運転に支障のないものや、事象そのものが検出されないなど、本来異常ありと推定する必要のないものが含まれる。
そこで、本実施形態では、事象推定部406によるより正確な事象情報に基づいて、下位ニューラルネットワークモデル311の学習を動的に行い、異常推定部310の異常の推定の精度をより高める。
すなわち、上位コントローラ4には、学習用ニューラルネットワークモデル410を有する学習部409が設けられ、事象推定部406において、上位ニューラルネットワークモデル407に入力された作動情報と、上位ニューラルネットワークモデル407から出力された事象情報に基づく学習用ニューラルネットワークモデル410の学習が行われる。
学習用ニューラルネットワークモデル410は、その学習成果が、下位コントローラ3の下位ニューラルネットワークモデル311に反映されうる形式のモデルであればどのようなものであってもよく、特に限定はされない。本実施形態では、学習の正確さを考慮して、下位ニューラルネットワークモデル311と同じ層数を持ち、各層のノード数が等しく、かつ、各層の演算のビット数が大きいモデルを学習用ニューラルネットワークモデル410として用いている。本例では、学習用ニューラルネットワークモデル410の演算ビット数は、上位ニューラルネットワークモデル407と同じく32ビットである。
学習部409は、事象推定部406による事象の推定がなされると、かかる事象の推定に用いられた作動情報を例題とし、上位ニューラルネットワークモデル407から出力された事象情報に基づいて作成したデータを解答とする教師データを用いて、逆誤差伝播法などの既存の手法により学習用ニューラルネットワークモデル410の学習を行う。これにより、学習用ニューラルネットワークモデル410の内部パラメータが更新される。
本例では、教師データの解答は、異常情報に相当するものである(ただし、ビット数は下位ニューラルネットワークモデル311で用いられる4ビットのものに比べ、32ビットである)。この解答の作成は、例えば、上位ニューラルネットワークモデル407により得られた事象情報が、対処の必要のある事象の発生を示している場合に1とし、そうでない場合は0とすることができる。あるいは、上位ニューラルネットワークモデル407により得られた事象情報のベクトル値の内、対処が必要な事象を示す元を合計又は平均することにより解答を作成してもよいし、事象の性質に応じて重みづけを行ってもよい。例えば、より重大な事象を示す元はより大きな値として、それほどでもない事象を示す元は小さな値として合算するなどしてよい。
学習がなされ、更新された学習用ニューラルネットワークモデル410は、更新部411へと送られ、まず、更新有無判断部434により、この更新された学習用ニューラルネットワークモデル410によって、下位コントローラ3の下位ニューラルネットワークモデル311を更新すべきか否かが判断される。
この判断は、更新された学習用ニューラルネットワークモデル410による異常情報(に相当するもの。以降単に「異常情報」と称する)の推定の精度が向上したか否かに基づいてなされる。すなわち、学習により、異常情報をより正確に推定できるようになったのであれば、下位ニューラルネットワークモデル311を更新する意味があるが、そうでなければ、下位ニューラルネットワークモデル311を更新する必要はない。
したがって、更新有無判断部434は、更新された学習用ニューラルネットワークモデル410による異常情報の推定の精度が向上した場合に、かかる学習用ニューラルネットワークモデル410を演算桁数削減部312へと送り、そうでない場合には何もしない。なお、更新有無判断部434による精度の向上の判断の手法は特に限定されないが、一例として、更新有無判断部434があらかじめ用意されたテストデータである例題を複数保持しており、かかるテストデータによる学習用ニューラルネットワークモデル410による異常情報の推定結果の正解率を評価する手法が挙げられる。学習前の学習用ニューラルネットワークモデル410による正解率を、学習後の学習用ニューラルネットワークモデル410による正解率が上回れば、精度が向上したと判断できる。
なお、更新有無判断部434は必ずしも必須の構成ではなく、これを省略して、更新された学習用ニューラルネットワークモデル410を常に演算桁数削減部412に送るものとしてもよい。
演算桁数削減部では、各層の演算ビット数が下位ニューラルネットワークモデル311のものと等しくなるよう演算桁数が削減される。本例では、32ビットの内部パラメータが、4ビットに削減される。これにより、学習用ニューラルネットワークモデル410は、形式の上では、下位ニューラルネットワークモデル311と等しくなる。
そして、演算桁数の削減された学習用ニューラルネットワークモデル410は、更新モデル送信部413により、下位コントローラ3に送信され、異常推定部310の下位ニューラルネットワークモデル311を置き換える形で更新する。この動作が繰り返されることにより、下位ニューラルネットワークモデル311は、上位ニューラルネットワークモデル407における事象推定の結果を反映し、より精度よく異常情報を出力できるように学習していくと考えられる。
図7は、本実施形態に係る事象推定システム1の動作を説明するフロー図である。制御系全体が動作している中、下位コントローラ3は、作動情報取得部309により制御対象機器2の作動情報を取得する(ST01)。取得された作動情報は、作動情報保持部313に所定の期間保持される(ST02)。
さらに、取得された作動情報に基づいて、異常推定部310が異常情報を演算する。異常情報が異常なしを示す場合には、引き続き制御対象機器の作動情報を取得する。なお、図7では、図示の都合上、ST01にて作動情報を取得した後、ST03にて異常なしと判断されるまで作動情報の取得がなされないかのように示されているが、作動情報の取得は、異常の推定中や、判定中もリアルタイムに継続して行われている。
ST03にて異常情報が異常ありを示している場合、作動情報送信部312が、作動情報保持部313に保持されている作動情報を上位コントローラ4に送信する(ST04)。そのため、作動情報時部313に作動情報が保持されている期間Tは、少なくとも異常推定部310による異常の推定がされるまで、すなわち、下位ニューラルネットワーク311から異常情報の出力がなされるまで、好ましくは、図示しているように、作動情報送信部312からの作動情報の送信が完了するまでとするとよい。なお、リングバッファである作動情報保持部313の容量の削減のため、作動情報送信部312に別のバッファを設けて送信すべき作動情報を記憶させることで、作動情報の送信に要する時間の間、作動情報保持部313による作動情報の保持を不要としてもよい。その場合には、作動情報保持部313から必要な作動情報が作動情報送信部312に読みだされれば、古い作動情報は直ちに削除してしまって差し支えないことになる。
上位コントローラ4は、作動情報受信部405により下位コントローラ3から送信された作動情報を受信する(ST11)。受信された作動情報に基づいて、事象推定部406が事象情報を演算し、事象の推定が行われる(ST12)。推定された事象に基づいて、適切な処理が、推定結果処理部408により行われる(ST13)。
さらに、受信された作動情報及び、得られた事象情報に基づいて、学習部409による学習用ニューラルネットワークモデル410の学習が行われる(ST14)。更新された学習用ニューラルネットワークモデル410は、更新有無判断部434により、その異常情報の推定の精度が向上したか否か判断される(ST15)。精度の向上があれば、演算桁数などの調整がなされた後、更新部411により、下位コントローラ3に送信され(ST15)、そうでなければ下位コントローラ3への送信はなされない。なお、図示の都合上、ST13の処理とST14~ST16の処理は直列に示されているが、これらの処理は同時並行で行ってよい。
下位コントローラ3は、送信されたニューラルネットワークモデルを受け取り、異常推定部310の下位ニューラルネットワークモデル311を更新する(ST05)。以降この動作を繰り返すことで、制御対象機器2が接続された下位コントローラ3と、下位コントローラ3に接続された上位コントローラ4がある制御系において、機械学習を利用して、制御対象機器2の故障や異常などの事象を推定する事象推定システム1が実現される。
また、本例で説明した実施形態によれば、下位コントローラ3で異常推定を行うため、上位コントローラ4へ全ての作動情報を送信する必要がなく、下位コントローラ3と上位コントローラ4とを接続する高速の通信回線は不要である。また、上位コントローラ4は、下位コントローラ3が異常ありを示した場合にのみ、事象の推定を行うため、上位コントローラ4の演算負荷は低減される。
さらに、下位コントローラ3で用いる下位ニューラルネットワークモデル311を小規模なものとすることで、下位コントローラ3の演算能力に対する要求を低く抑えられるため、下位コントローラ3のコスト増が抑制される。一方で、上位コントローラ4で用いる上位ニューラルネットワークモデル407を大規模なものとすることで、上位コントローラ4の余剰演算能力を有効活用し、かつ、高精度な事象の推定がなされる。
また、上位ニューラルネットワークモデル407による高精度な事象の推定結果に基づいて、下位ニューラルネットワークモデル311の追加学習及び更新をするため、下位コントローラ3における異常推定の精度の向上がなされ、また、制御対象機器2の機差を吸収することが期待できる。
図8は、上記説明した第1の実施形態の第1の変形例に係る事象推定システム101の全体の構成を示す機能ブロック図である。同図は、先の実施形態の説明において参照した図4に相当する図である。また、事象推定システム101のハードウェア構成は、先の実施形態と同一であるから、図1~3は本変形例のものとして援用するとともに、先の実施形態と共通する構成については同符号を付してその重複する説明を省略する。
本変形例では、先の実施形態に係る事象推定システム1とは、学習部409及び更新部411においてのみ相違がある。まず、学習部409において、学習用ニューラルネットワークモデル410は、先の実施形態では下位ニューラルネットワークモデル311より規模の大きいものを用いていたが、本変形例では、下位ニューラルネットワークモデル311と規模が等しい。すなわち、学習用ニューラルネットワークモデル410は、その層数、各層のノード数、各層の演算ビット数のいずれもが下位ニューラルネットワークモデル311と等しく、換言すれば、下位ニューラルネットワークモデル311のミラーモデルとなっている。
そのため、学習部409による学習用ニューラルネットワークモデル410の追加学習がなされた後、学習用ニューラルネットワークモデル410の演算桁数を削減する必要がない。したがって、更新部411には演算桁数削減部は設けられず、更新有無判断部434により下位ニューラルネットワークモデル311の更新の有無が判断された後、更新モデル送信部413により、単に学習用ニューラルネットワークモデル410が下位コントローラ3に送信され、異常推定部310の下位ニューラルネットワークモデル311を置き換える形で更新する。
本変形例では、先の実施形態に比して、学習の精度の点で若干劣るものの、上位コントローラ4における情報処理の負荷が低減され、また、学習用ニューラルネットワークモデル410の記憶に必要なメモリ容量が低減される。
図9は、さらに、上記説明した第1の実施形態の第2の変形例に係る事象推定システム102の全体の構成を示す機能ブロック図である。同図もまた、先の実施形態の説明において参照した図4に相当する図である。また、事象推定システム102のハードウェア構成は、先の実施形態と同一であるから、図1~3は本変形例のものとして援用するとともに、先の実施形態と共通する構成については同符号を付してその重複する説明を省略する。
本変形例では、上位コントローラ4の事象推定部406が有する上位ニューラルネットワークモデル407が、学習部409における学習用ニューラルネットワークモデル410と同一のニューラルネットワークモデルであり、上位ニューラルネットワークモデル407自体も更新される点が先の実施形態及び第1の変形例と異なっている。
すなわち、本変形例では、上位ニューラルネットワークモデル407自体も、追加学習により更新され、事象推定の精度をより高めるように設計されている。そのため、事象推定部406において、上位ニューラルネットワークモデル407による事象情報の演算がなされた後、その事象の推定結果に対するフィードバックが教師データとして学習部409に活用され、学習用ニューラルネットワークモデル410の追加学習が行われる。
フィードバックとしては、例えば、推定結果処理部408において、制御対象機器2の実機の現実の状態がどうであったかをオペレータが入力することにより、その結果を解答として用いたり、上位ニューラルネットワークモデル407により得られた事象情報を別途設けられたサーバなどで解析して解答を得たりすることが考えられる。サーバでは、多数の同種の制御対象機器2の現実の故障やメンテナンス情報を蓄積し、常に最新の解答を返せるようにしておくとよい。
すなわち、学習部409は、上位ニューラルネットワークモデル407に入力された作動情報を例題として、フィードバックにより得られた解答と組み合わせて教師データを作成し、学習用ニューラルネットワークモデル410の追加学習を行う。そのため、上位ニューラルネットワークモデル407による事象の推定も、機差や、最新の知見を反映したより正確なものとなっていくことが期待できる。
学習により更新された学習用ニューラルネットワークモデル410は、更新有無判断部434により更新の有無が判断され、更新ありと判断された場合、事象推定部406の上位ニューラルネットワークモデル407を置き換える形で更新する。また同時に、更新部411の演算桁数削減部412に送られ、演算桁数の削減がなされた後、更新モデル送信部413により下位コントローラ3に送信される。すなわち、本変形例における、下位コントローラ3の異常推定部310で使用される下位ニューラルネットワークモデル311は、上位ニューラルネットワークモデル407の演算桁数を削減したものである。
続いて、本発明の第2の実施形態に係る事象推定システム及び事象推定方法を、図10~13を参照して説明する。
図10は、本発明の第2の実施形態に係る事象推定システム7の1例を示す全体外観図である。なお、以降の説明で、先に説明した第1の実施形態と共通する、または対応する構成については同符号を付すこととし、重複する説明についてはこれを省略する。
第2の実施形態に係る事象推定システム7の特徴は、上位コントローラ4に複数の下位コントローラ3が接続されており、また、複数の下位コントローラ3により制御される制御対象機器2は、必ずしも独立ではなく、互いに関連しているという点である。図10には、そのような系の典型的な例として、産業用ロボット8と、ロボットコントローラ9とが第1の回線5により接続されている様子を示している。
産業用ロボット8は、実務上は単一の装置として取り扱われるが、制御の観点からは、その軸数に応じた数のサーボモータの集合体である。図10に示した産業用ロボット8は6軸のものであるから、この産業用ロボット8には6基のサーボモータが搭載されていることになる。また、ロボットコントローラ9は、それぞれのサーボモータに対するサーボコントローラと、それらサーボコントローラを統括する上位のコント―ラをひとまとめにして筐体に収めたものである。従って、ロボットコントローラ9には、サーボモータに代表される制御対象機器2と同数の下位コントローラ3と、それら下位コントローラを制御する上位コントローラ4が収められていることになる。
図11は、本実施形態に係る事象推定システム7の物理的な構成を示す構成図である。複数の制御対象機器2(本例ではサーボモータ)とそれぞれ対応する複数の下位コントローラ3とが第1の回線5により接続され、複数の下位コントローラ3が第2の回線6により、1台の上位コントローラ4と接続されている。なお、図11では第2の回線6の接続の態様として、いわゆるスター接続がなされているものとして示しているが、接続の態様は図示のものに限定されず、他の形式、例えば、カスケード接続あるいはデイジーチェーン接続等であってもよい。第1の回線5についても同様であり、動力線は図示の通りの個別接続とする一方、ロータリエンコーダなどのセンサからの出力は、カスケード接続あるいはデイジーチェーン接続としても差し支えない。以降の図においても同様である。また、制御対象機器2、下位コントローラ3及び上位コントローラ4のハードウェア構成は、第1の実施形態のものと同一であるので、図2及び図3を本実施形態の説明に援用する。
図12は、本実施形態に係る事象推定システム7の全体の構成を示す機能ブロック図である。図12に示されたブロックの一部はハードウェアにより実現され、また一部はプロセッサ306、ブロセッサ402、メモリ305及びメモリ403といったハードウェア資源を用いてソフトウェアにより実現される。また、制御対象機器2の機能構成、及び、下位コントローラ3の機能構成は、第1の実施形態にて示したものと同一であるから、その詳細は図4を援用することとし、図12には必要な部分のみを簡潔に示している。
図12において、上位コントローラ4に含まれる、作動情報受信部405、第1の事象推定部414と第1の上位ニューラルネットワークモデル415、第1の学習部416と第1の学習用NNモデル417、第1の更新部418、更新有無判断部435、演算桁数削減部419、更新モデル送信部420、及び、推定結果処理部408は、それぞれ、第1の実施形態における、作動情報受信部405、事象推定部406と上位ニューラルネットワークモデル407、第1の学習部409と学習用NNモデル410、更新部411、更新有無判断部434、演算桁数削減部412、更新モデル送信部413、及び、推定結果処理部408と同一の機能を有しており、差異はない。
図12に示した例では、複数の下位コントローラ3と上位コントローラ4が接続されている様子を示しているため、図の上では、作動情報受信部405は複数の下位コントローラ3と接続されてそれぞれの作動情報を受信しており、また、更新モデル送信部420は、複数の下位コントローラ3と接続され、必要な下位コントローラ3に更新されたニューラルネットワークモデルを送信し、下位ニューラルネットワークモデル311を更新するように示されている。
第1の上位ニューラルネットワークモデル415は、下位コントローラ3毎に、すなわち、接続される下位コントローラ3と同数用意されていてもよいし、対象となる制御対象機器2の種類ごとに用意されていてもよい。例えば、制御対象機器2として、容量の異なる2種類のサーボモータが使用されている場合、それぞれの機種ごとに対応した、2つの第1の上位ニューラルネットワークモデル415が用意される。
第1の学習用ニューラルネットワークモデル417は、下位コントローラ3毎に、すなわち、接続される下位コントローラ3と同数が用意され、それぞれの第1の学習用ニューラルネットワークモデル417によって、対応する制御対象機器2の機差が学習されるようになっている。
本実施形態の第1の事象推定部414における第1の上位ニューラルネットワークモデル415は、作動情報の入力を受け、第1の事象情報を出力するよう設計されている。ここで、第1の事象情報は、事象推定の対象となる制御対象機器2に生じた変化を推定しうる情報であるという点では、第1の実施形態における事象情報と何ら変わりはない。本実施形態では、それに加えて、第1の事象情報には、他の作動情報が必要である旨を示す、他作動情報要求が含まれる。
この点についてより詳しく説明すると、本実施形態のように、複数の制御対象機器2が事象推定システム7に含まれ、かつ、複数の制御対象機器2が互いに関連している場合、制御対象機器2に生じた事象を正確に推定するためには、単一の制御対象機器2に係る作動情報だけでは不足する場合が想定される。例えば、本実施形態の例に即して説明すると、ある制御対象機器2にて異常を検出したが、生じている事象が産業用ロボット8のアームの変形であって、複数の制御対象機器2であるサーボモータにまたがって影響を生じるような場合には、複数の制御対象機器2の作動情報を総合的に参照しなければ、正確な事象の特定をすることができないと考えられる。
第1の上位ニューラルネットワークモデル415は、単一の制御対象機器2の作動情報について第1の事象情報を求めるものであるから、これによっては、複数の制御対象機器2にまたがって生じる事象を十分に正確に特定することはむつかしい。従って、第1の上位ニューラルネットワークモデル415は、単一の制御対象機器2について独立に生じる事象を示す出力のほか、他の制御対象機器2の作動情報を併せて解析することにより事象を推定する必要があることを示す、他作動情報要求を同時に出力するように設計される。
具体的な例で説明すると、第1の事象情報より推定される事象が、物理的損傷、経年劣化、潤滑油不足、暖機不足に加え、他作動情報要求の5種であるならば、第1の事象情報は5次元ベクトルとなる。そして、第1の事象情報の値が、例えば、(0.1,0.3,0.3,0.2,0.7)であり、それぞれの事象が生じていることを示す閾値が0.6であれば、事象として、事象推定の対象となった制御対象機器2については、物理的損傷、経年劣化、潤滑油不足及び暖機不足は生じていないが、他の制御対象機器2の作動情報をも含めて解析しなければならない何らかの事象が生じていると推定される(他作動情報要求の値が0.7であり、閾値を超えているため)。
したがって、本実施形態に係る事象推定システム7では、このように他作動情報要求がなされた(その値が、所定の閾値を超えた)場合には、他の制御対象機器2、具体的には、全ての制御対象機器2についての作動情報に基づいて、事象を推定するための構成が設けられている。以下、その構成について説明する。
作動情報追加受信部421は、第1の事象情報が他作動情報要求を示している場合に、他の下位コントローラ3から、作動情報を追加で受信する。なお、第1の事象情報が他作動情報要求を示していない場合には、作動情報の追加の受信の必要はないため、第1の事象情報を推定結果処理部408へと送り、必要な処理を行う。
作動情報追加受信部421が他の下位コントローラ3からの作動情報を受信すると、かかる作動情報は、第2の事象推定部422へと送られ、第2の事象推定部422が有する第2の上位ニューラルネットワークモデル423に入力される。第2の上位ニューラルネットワークモデル423は、複数の作動情報を入力とし、第2の事象情報を出力するニューラルネットワークであり、第1の上位ニューラルネットワークモデル415と同等か、それ以上の規模のニューラルネットワークモデルである。また、第2の事象情報は、複数の制御対象機器2にまたがって生じる事象を推定しうる情報である。
得られた第2の事象情報は推定結果処理408へと送られ、第1の事象情報の場合と同様に、第2の事象情報により推定された事象に応じた適切な処理がなされる。
なお、本例では、作動情報追加受信部421は、他の全ての下位コントローラ3から作動情報を受信するものとしたが、これに限られず、第1の事象情報から得られる他作動情報要求に応じて、他の下位コントローラ3の一部から作動情報を受信するようにしてもよい。すなわち、第1の事象情報から、推定しようとする事象に関係する制御対象機器2が特定できる場合には、関係する制御対象機器2についての作動情報のみを受信すればよいからである。また、第2の上位ニューラルネットワークモデル423は、本例では、全ての作動情報を入力とする単一のものとして説明したが、推定しようとする事象に応じて複数の第2の上位ニューラルネットワークモデル423を用意してもよい。例えば、制御対象機器が6つある場合に、1番目から3番目までの制御対象機器2に関連する事象が推定される場合には、1番目から3番目までの制御対象機器2についての作動情報を入力とする第2の上位ニューラルネットワークモデル423を使用し、4番目から6番目までの制御対象機器2に関連する事象が推定される場合には、4番目から6番目までの制御対象機器2についての作動情報を入力とする別の第2の上位ニューラルネットワークモデル423を使用するといったことが考えられる。
また、第2の事象情報に基づいて、下位ニューラルネットワークモデル311の学習を動的に行うための構成として、第2の学習部424及び第2の更新部426が設けられている。
第2の学習部424は、下位コントローラ3毎に対応して設けられた第2の学習用ニューラルネットワークモデル425を有している。そして、それぞれの第2の学習用ニューラルネットワークモデル425に対応する作動情報を例題とし、第2の事象情報から得られる解答を組み合わせて得られる教師データにより、各第2の学習用ニューラルネットワークモデル425に対する追加学習を行う。
第2の学習用ニューラルネットワークモデル425は、第1の学習用ニューラルネットワークモデル417と同等のモデルである(両者を共用してもよい)。従って、学習により更新された第2の学習用ニューラルネットワークモデル425は、第2の更新部426へと送られ、更新有無判断部436により更新の有無を判断され、演算桁数削減部427により演算桁数を削減されてその規模を小さくされた後、更新モデル送信部428より、それぞれ対応する下位コントローラ3へと送信され、それぞれの下位ニューラルネットワークモデル311を置き換える形で更新する。
以上説明した構成をとることにより、本実施形態では、複数の制御対象機器2にまたがって生じる、複合的な事象が高精度に推定される。また、下位コントローラ3で時々刻々と取得される作動情報の全てを常に上位コントローラ4に送信する必要はないため、下位コントローラ3と上位コントローラ4とを接続する第2の回線5を高速なものとする必要がなく、また、上位コントローラ4における複合的な事象の推定は、下位コントローラ3にて異常が推定され、さらに上位コントローラ4にて他作動情報要求がなされた場合に行われるから、上位コントローラ4における演算負荷は低減される。
さらに、本実施形態の構成によれば、一の下位コントローラ3における異常の推定に対しても、上位コントローラ4による複合的な事象の推定がなされるため、複合的な事象が、例えば劣化や損傷を示す場合においても、その初期段階における検出が期待でき、早期の対応がなされうる。また、複合的な事象に基づく下位ニューラルネットワークモデル311の追加学習がなされるから、下位コントローラ3における複合的な事象に対する異常推定の精度の向上が見込める。
図13は、本実施形態に係る事象推定システム7の動作を説明するフロー図である。事象推定システム7では、複数の下位コントローラ3が制御系に含まれており、6軸の産業用ロボット8を例示する本例では、下位コントローラ3は6台が上位コントローラ4に接続されているが、同図では、特に注目する1台の下位コントローラ3を「一の下位コントローラ」として中央のフローに、他の5台の下位コントローラ3は「他の下位コントローラ」として右側のフローにまとめて示している。また、左側のフローは上位コントローラ4のフローである。
図13のフローでは、一の下位コントローラ3により、複合的な事象、すなわち、複数の制御対象機器2に跨って発生する事象に起因する以上の検出がなされた場合の事象推定システム7の動作を示している。まず、ST21にて、一の下位コントローラ3は、作動情報取得部309により制御対象機器2の作動情報を取得し、ST22にて、作動情報保持部313に所定の期間保持させる。同時に、他の下位コントローラ3もまた、ST31にてそれぞれの作動情報保持部309により制御対象機器2の作動情報を取得し、ST32にて、それぞれの作動情報保持部313に所定の期間保持させる。
一の下位コントローラ3において、取得された作動情報に基づいて、異常推定部310が異常情報を演算し、異常の有無をST23にて判断する。ここでは、異常ありと判断されたとして、次のST24へと進み、作動情報送信部312が、作動情報保持部313に保持されている作動情報を上位コントローラ4に送信するものとする。なお、ST23にて異常なしと判断された場合には、ST21へと戻り、引き続き、作動情報の取得を継続する。なお、作動情報の取得と保存は、制御対象機器2の動作の間、継続的に行われる点は、第1の実施形態の場合と同様である。
他の下位コントローラ3においても、同様に、取得された作動情報に基づいて、それぞれの異常推定部310が異常情報を演算し、異常の有無をST33にて判断する。ここでは、異常なしと判断されたとして、ST31へと戻り、引き続き、作動情報の取得が継続されるものとする。なお、ST33にて異常ありと判断された場合には、ST34にて、一の下位コントローラ3と同様に、それぞれの作動情報送信部312が、作動情報保持部313に保持されている作動情報を上位コントローラ4に送信することになる。図13では、ST34が実行されない場合を想定しているので、同図では、ST34を破線で示した。また、他の下位コントローラ3においても、作動情報の取得と保存は、制御対象機器2の動作の間、継続的に行われる点は、第1の実施形態の場合と同様である。
上位コントローラ4は、作動情報受信部405により一の下位コントローラ3から送信された作動情報を受信する(ST41)。受信された作動情報に基づいて、第1の事象推定部414が第1の事象情報を演算し、他作動情報要求の有無をST42にて判断する。他作動情報が不要である場合、すなわち、他作動情報要求が無いと判断された場合には、推定結果処理部408にて推定された事象に基づく適切な処理がなされ(ST46)、受信された作動情報及び、得られた第1の事象情報に基づいて、第1の学習部416による第1の学習用ニューラルネットワークモデル417の追加学習が行われ(ST47)、更新有無判断部435により精度の向上の有無が判断される(ST48)。精度が向上している場合には、演算桁数などの調整がなされた後、第1の更新部426により、一の下位コントローラ3に送信され(ST49)、そうでなければ送信はなされない。この、他作動情報要求が無いと判断された場合のST46~ST49までの動作は、第1の実施形態について、図7に示したST13~ST16までの動作と同様である。一の下位コントローラ3は、送信されたニューラルネットワークモデルを受け取り、異常推定部310の下位ニューラルネットワークモデル311を更新する(ST25)。
一方、ST42にて、他作動情報が必要である、すなわち、他作動情報要求が有ると判断された場合には、ST43にて、作動情報追加受信部421から、他の下位コントローラ3それぞれに対し、作動情報を送信するよう要求する。ここでは、他の下位コントローラ3に係る作動情報をまとめて、他作動情報と称している。作動情報の要求を受けた他の下位コントローラ3は、ST35にて、上位コントローラ4に、作動情報保持部313に保持した作動情報を作動情報送信部312から送信する。送信された他作動情報は、ST44にて、作動情報追加受信部421により受信される。
図13のフローより明らかなように、ST35にて、他の下位コントローラ3から上位コントローラ4に他作動情報を送信するためには、他の下位コントローラ3において、作動情報保持部313に作動情報が保持される期間Tは、少なくとも、上位コントローラ4からの他作動情報要求がなされるまでとする必要があり、好ましくは、図示しているように、作動情報送信部312からの作動情報の送信が完了するまでとすると良い。上位コントローラ4において、他作動情報要求は、ST42において、第1の事象推定部414により第1の事象情報が得られ、かかる第1の事象情報が他作動情報要求を含むことが判明次第直ちになされるから、かかる期間Tは、少なくとも、第1の事象推定部414において、第1の上位ニューラルネットワークモデルからの第1の事象情報の出力がなされるまでの期間であると言い換えてもよい。
なお、第1の実施形態における説明と同様に、リングバッファである作動情報保持部313の容量の削減のため、作動情報送信部312に別のバッファを設けて送信すべき作動情報を記憶させることで、作動情報の送信に要する時間の間、作動情報保持部313による作動情報の保持を不要としてもよい。
また、本例の説明にあたり、図13では複数の下位コントローラ3を一の下位コントローラ3と、他の下位コントローラ4とに区別して示したが、下位コントローラ3自身は、上位コントローラ4からの他作動情報要求を受けるまでは、自分が一の下位コントローラ3に該当するのか、他の下位コントローラ3に該当するのかを知るすべはない。なぜなら、ある下位コントローラ3が異常ありの判定をしたとしても、上位コントローラ4は、かかる異常に基づいて他作動情報要求をするとは限らず、また、同時に別の下位コントローラ3が同じく異常ありの判定をし、かかる異常に基づいて、上位コントローラ4から他作動情報要求を受ける場合も有り得るからである。
したがって、下位コントローラ3は、結果的に、自身が一の下位コントローラ3に該当するか、他の下位コントローラ3に該当するかにかかわらず、少なくとも期間Tの間、作動情報保持部313に作動情報を保持している。
上位コントローラ4は、続けて、ST45において、第2の事象推定部422により、受信した作動情報全てを第2の上位ニューラルネットワークモデル423に入力して演算し、第2の事象情報を得る。
第2の事象情報により推定される事象に基づき、推定結果処理部408にて適切な処理がなされ(ST46)、また、一の下位コントローラ3及び他の下位コントローラ3から受信した作動情報及び、第2の事象情報に基づいて、第2の学習部424により第2の学習用ニューラルネットワークモデル425の追加学習が行われ(ST47)、更新有無判断部436により精度の向上の有無が判断される(ST48)。精度が向上している場合には、演算桁数などの調整がなされた後、第2の更新部426により、それぞれ適切な下位コントローラ3に送信される(ST49)。図示したフローでは、ST25において、一の下位コントローラ3の下位ニューラルネットワークモデル311が更新され、ST36において、他の下位コントローラ3の下位ニューラルネットワークモデル311が更新される。
以降この動作を繰り返すことで、第1の実施形態として説明した事象推定システム7により得られる効果に加え、前述の、本実施形態特有の効果がさらに得られる。なお、本実施形態においても、第1の実施形態の第1の変形例及び第2の変形例として示した例と同様の変形を加えてもよい。その際に得られる技術的効果についても、それぞれの変形例にて説明したものと同様である。
以上の第1の実施形態に係る事象推定システム1及び第2の実施形態に係る事象推定システム7において、事象推定部406の上位ニューラルネットワークモデル407(第2の実施形態では、第1の事象推定部414の第1の上位ニューラルネットワークモデル415及び第2の事象推定部422の第2の上位ニューラルネットワークモデル423)と、学習部409の学習用ニューラルネットワークモデル410(第2の実施形態では、第1の学習部416の第1の学習用ニューラルネットワークモデル417及び第2の学習部424の第2の学習用ニューラルネットワークモデル425)とは、第1の実施形態の第2の変形例を除き、互いに独立したニューラルネットワークモデルとして用意されていた。
これに替えて、上位ニューラルネットワークモデル407と学習用ニューラルネットワークモデル410とを、一部を共通とするモデルにて構成してもよい。図14は、一部を共通化した上位ニューラルネットワークモデル407と学習用ニューラルネットワークモデル410の構成を示す概念図である。
図14に示すように、上位ニューラルネットワークモデル407は、入力層429と、隠れ層431を含む共通層430に、事象出力層432が結合された形式を有している。事象出力層432は、隠れ層431からの出力を、事象情報として出力する出力層である。なお、事象出力層432は、単層の出力層であってもよいし、出力層の前に任意の隠れ層を含むものであってもよい。
そして、学習用ニューラルネットワークモデル410は、上位ニューラルネットワークモデル407と同一の、入力層429と、隠れ層431を含む共通層430に、異常出力層433が結合された形式を有している。異常出力層433は、隠れ層431からの出力を、異常情報として出力する出力層であり、事象出力層432と同様に、単層の出力層であってもよいし、出力層の前に任意の隠れ層を含むものであってもよい。
したがって、上位ニューラルネットワークモデル407と学習用ニューラルネットワークモデル410は、共通層431を共通で使用し、その後段のニューラルネットワーク層として、事象出力層432を使用すれば上位ニューラルネットワークモデル407として機能し、異常出力層433を使用すれば学習用ニューラルネットワークモデル410として機能するものである。
この構成では、学習用ニューラルネットワークモデル410における学習は、上位ニューラルネットワークモデル407から得られた事象情報に対するフィードバックを解答として作動情報と対にして教師データとし、上位ニューラルネットワークモデル407の事象出力層432を異常出力層433に差し替えて生成した学習用ニューラルネットワークモデル410により追加学習を行う。したがって、この構成における学習における教師データの生成は、すでに説明した第1の実施形態の第2の変形例と同様としてよく、フィードバックとして、推定結果処理部408において、制御対象機器2の実機の現実の状態がどうであったかをオペレータが入力することにより、その結果を解答として用いたり、上位ニューラルネットワークモデル407により得られた事象情報を別途設けられたサーバなどで解析して解答を得たりしてよい。
そして、学習用ニューラルネットワークモデル410において学習がなされ、共通層431が更新されると、同じ共通層431を使用している上位ニューラルネットワークモデル407もまた更新され、学習が進むことになり、上位ニューラルネットワークモデル407の追加学習が実現される。
また、下位コントローラ3における下位ニューラルネットワークモデル311の更新は、学習用ニューラルネットワークモデル410の演算桁数を削減することのほか、更新された共通層431に基く転移学習を行うことによってもなされる。このような構成をとることにより、上位コントローラ4におけるニューラルネットワークモデルの記憶に必要な容量の削減が図られる。
以上説明した第1の実施形態及び第2の実施形態では、下位コントローラ3の異常推定部310は、ニューラルネットワークモデルである下位ニューラルネットワークモデル311を用いて異常情報を得ることにより、異常の推定を行うものとしていた。かかる構成をとることにより、作動情報から単純に異常の有無の推定を行うことがむつかしい場合であっても、機械学習を利用することで異常の推定を高い精度で行うものである。
これらの実施形態に替え、下位コントローラ3においては機械学習によるニューラルネットワークモデルを使用しなくともよい場合も想定することができる。以下、図15を参照して本発明の第3の実施形態を説明する。
図15は、本発明の第3の実施形態に係る事象推定システム10の全体の構成を示す機能ブロック図である。図15に示した例では、第1の実施形態について図4で示したと同様に制御対象機器2及び下位コントローラ3がそれぞれ1台の場合であるが、これらがそれぞれ複数台であってもよい点については、第1の実施形態や第2の実施形態の場合と同様である。また、説明を簡略化するため、先の実施形態と同様のまたは対応する構成については同符号を付して、その詳細な説明を省略するか、もしくは必要な部分のみ追加で説明を加えることとする。さらに、事象推定システム10の物理的な外観も限定するものではなく、第1の実施形態について図1で示したように、個々の制御対象機器2に下位コントローラ3が接続されているものであっても、図2で示したように、複数の制御対象機器3が関連付けられているものであっても、またそれらの組み合わせであってもよい点は、先の実施形態と同様である。
本実施形態に係る事象推定システム10では、異常推定部310は、ニューラルネットワークモデルを用いた機械学習によらず、他の方式により異常の有無の推定を行っている。そのような方式としては、例えば、作動情報のある特定の値またはその組み合わせに対して、あらかじめ与えられた閾値と比較するものであってよい。より具体的には、電流の値や温度の値が所定の閾値を超えた場合に異常有りと推定したり、2以上のパラメータの組み合わせが所定の領域に入った場合、または入らなかった場合に異常有りと推定したりすることなどが考えられる。あるいは、単に制御対象機器2から異常信号の入力を受けた場合に異常有りと推定してもよく、これら複数の推定方法の組み合わせであってもよい。
いずれにせよ、異常の有無を示す情報は、異常信号として、作動情報送信部312に送られ、異常推定部310により推定された異常の有無に基づいて、作動情報送信部312は作動情報保持部313に保持された作動情報を上位コントローラ4に送信する。上位コントローラ4では、作動情報受信部405により受信された作動情報に基づいて、事象推定部406において、上位ニューラルネットワークモデル407により得られた事象情報により事象の推定がなされ、推定結果処理部508において適切な処理がなされる点は、先の実施形態の場合と同様である。
本実施形態の構成であっても、第1の実施形態の場合と同様に、下位コントローラ3で異常推定を行うため、上位コントローラ4へ全ての作動情報を送信する必要がなく、下位コントローラ3と上位コントローラ4とを接続する高速の通信回線は不要である。また、上位コントローラ4は、下位コントローラ3が異常ありを示した場合にのみ、事象の推定を行うため、上位コントローラ4の演算負荷は低減されることになる。
図16は、本発明のさらなる別の実施形態である、第4の実施形態に係る事象推定システム11の全体の構成を示す機能ブロック図である。本実施形態においても、説明を簡略化するため、先の実施形態と同様のまたは対応する構成については同符号を付して、その詳細な説明を省略するか、もしくは必要な部分のみ追加で説明を加えることとする。
事象推定システム11の全体構成は、すでに説明した第2の実施形態に係る事象推定システム9と類似しており、制御対象機器2、下位コントローラ3及び上位コントローラ4の個々の構成に違いはない。一方、第2の実施形態では、一の上位コントローラ4に対して複数の下位コントローラ3及び制御対象機器2が接続されているのに対し、本実施形態では、必ずしも下位コントローラ3及び制御対象機器2が複数であることを要さない点に相違がある。そのため、図16では理解を容易とするため、下位コントローラ3及び制御対象機器2がそれぞれ1台のみである場合を示したが、これらが複数であっても差し支えない。
本実施形態に係る事象推定システム11においても、第1の事象推定部414の第1の上位ニューラルネットワークモデル415は、他の作動情報が必要である旨を示す他作動情報要求を含む第1の事象情報を出力する。ただし、本実施形態では、他の作動情報には、下位コントローラ3が取得した作動情報であって、第1の上位ニューラルネットワークモデル415への入力に必要とされたもの以外が含まれる。
この点より詳しく説明すると、下位コントローラ3は、制御対象機器2から連続的に多量の作動情報を得ており、それらは作動情報保持部313に保持される(図4等参照)。しかしながら、下位ニューラルネットワークモデル311における異常情報の出力及び、第1の上位ニューラルネットワークモデルにおける第1の事象情報の出力にはそれらの全てが必要ではなく、その一部分が使用される。例えば、制御対象機器2の電流波形、トルク波形、振動波形、温度変化を作動情報として収集しているが、下位ニューラルネットワークモデル311及び第1の上位ニューラルネットワークモデル415では、その一部期間の電流波形のみを用いているといった場合である。
かかる一部分の作動情報のみで十分に事象の推定ができる場合には、その推定結果に基づいて、推定結果処理部408による適切な処理を実行すればよい。しかしながら、そうでない場合、すなわち、第1の事象情報において、他作動情報要求がなされていると判断される場合には、作動情報追加受信部421により、さらなる作動情報が追加で受信される。
この追加で受信される作動情報は、あらかじめ定めておいてもよいし、他作動情報要求に応じたものとしてもよい。例えば、他作動情報要求がなされれば、すでに送信済みの電流波形以外の情報である、トルク波形、振動波形及び温度波形を要求して受信するようにあらかじめ定めておいたり、すでに受信された一部期間の作動情報では、より正確に事象を推定するための十分な期間にわたる作動情報が不足しているとして、より長い期間にわたる作動情報を追加で受信するように定めておいたりするなどすることができる。
あるいは、他作動情報要求に応じて追加で受信すべき作動情報の種別を選択したり、追加で受信すべき作動情報の期間を定めたりすることができる。その場合、他作動情報要求は多次元のベクトル値であってよい。
また、図16では図示していないが、他作動情報要求は、さらに、第2の実施形態と同様に、他の下位コントローラ3からの作動情報を追加で要求することを示してもよい。第2の事象推定部422は、追加で受信された作動情報に応じて、使用すべき第2の上位ニューラルネットワークモデル423を選択し、第2の事象情報を得る。
本実施形態の構成では、下位コントローラ3が得る多量の作動情報の一部分に基づいて異常の有無を推定し、さらに上位コントローラ4で追加の作動情報の必要の有無を判断するため、全体として上位コントローラ4へ送信しなければならない作動情報が低減され、下位コントローラ3と上位コントローラ4とを接続する高速の通信回線が不要となり、また、上位コントローラ4の演算負荷は低減されることになる。
さらに、図17に、本発明の別の実施形態である、第5の実施形態に係る事象推定システム12の全体の構成を示す機能ブロック図を示す。説明を簡略化するため、先の実施形態と同様のまたは対応する構成については同符号を付して、その詳細な説明を省略するか、もしくは必要な部分のみ追加で説明を加えることとする点については、本実施形態においても同様である。
本実施形態では、これまでに説明した先の実施形態と異なり、事象の推定を上位コントローラ4でなく、上位機器13にて実行するようにしている点が異なる。この点説明すると、上位コントローラ4は、すでに述べたように、下位コントローラ3を制御することにより間接的に制御対象機器3を制御するコントローラである。そして、事象推定システム12の制御系の構成によっては、上位コントローラ4による下位コントローラ3の制御それ自体には負荷の高い演算が必要ない場合が想定でき、そのような場合には、上位コントローラ4として演算能力のそれほど高くない機器が選定されることがありうる。
そのような場合等においては、上位コントローラ4に、ニューラルネットワークモデルを用いた事象推定を行う演算能力の余裕がないと考えられる。そのため、本実施形態に係る事象推定システム12では、上位コントローラ4とは別に、事象推定を行う上位機器13を設置している。上位機器13は、ニューラルネットワークモデルを用いた事象推定を行う演算能力を有する情報処理装置であればどのようなものであってもよく、一般的なPCや、遠隔地に設置されたサーバ等の任意の機器を上位機器13として用いてよい。
逆説的な言い方とはなるが、本明細書では、ニューラルネットワークモデルを用いた事象推定を行う演算能力を有する情報処理装置を上位機器と称している。この意味においては、すでに説明した第1~4の実施形態における上位コントローラ4は、いずれも上位機器としても機能していることになる。すなわち、ここでいう上位機器は、上位コントローラと対置される概念ではなく、上位コントローラを含むものである。
上位機器13は、上位コントローラ4と同様に下位コントローラ3から作動情報の送信を受け、受信する。図17では、下位コントローラ3からも上位コントローラ4と同系統の通信回線を介して上位機器13にも作動情報が送信されるものとして図示している。このような通信回線としては、複数機器の接続に適した一般的なものを使用してよく、例えば、イーサネット(登録商標)のような汎用通信回線や、メカトロリンク(登録商標)のようなFA用の通信回線を用いてよい。あるいは、下位コントローラ3から上位コントローラ4への接続回線と、下位コントローラ3から上位機器13への接続回線が互いに独立していたり、異なるものであったりしてもよい。本実施形態では、通信回線の態様によらず、下位コントローラ3から上位コントローラ4への接続回線及び、下位コントローラ3から上位機器13への接続回線をまとめて第2の回線6として示している。
上位コントローラ4は、本例では、下位コントローラ3から作動情報を受信し、下位コントローラ3の機器制御部308に対して適宜のタイミングで指示を送信するものであり、FA用途に用いられる一般的なコントローラとその機能および動作に違いがないため、その詳細の説明は割愛する。
上位機器13は、先の実施形態において説明した作動情報受信部405、事象推定部406、推定結果処理部408、学習部409及び更新部411を備えており、その機能および動作もまた先に説明したものと同様である。
本例のように、上位コントローラ4とは別に上位機器13を設置することで、上位コントローラ4に機械学習を用いた事象の推定を行うための十分な演算能力の余裕がない場合であっても、機械学習を用いた事象の推定を行う事象推定システム12を構築することができる。また、本例の場合は、上位機器13として遠隔地に設置され、演算能力の高いサーバを事象の推定に利用できる。このような構成ではサーバである上位機器13を単独の事象推定システム13に用いるだけでなく、複数の事象推定システム12に共通に用いることができるため、複数の事象推定システム12を運用するような場合には、全体のコストの低減や、事象推定システム12の構築の手間が軽減されることが期待できる。
あるいは、次に示す第6の実施形態のように、上位機器としての機能を複数の機器に分離してもよい。図18に、本発明の別の実施形態である、第6の実施形態に係る事象推定システム14の全体の構成を示す機能ブロック図を示す。説明を簡略化するため、先の実施形態と同様のまたは対応する構成については同符号を付して、その詳細な説明を省略するか、もしくは必要な部分のみ追加で説明を加えることとする点については、本実施形態においても同様である。
本実施形態では、事象の推定を上位コントローラ4で行いつつ、得られた事象情報に基づく学習による下位コントローラ3の下位ニューラルネットワークモデル311の更新は別の機器で実行するようにしている点が異なる。すなわち、図18に示すように、本実施形態に係る事象推定システム14の上位機器は、作動情報受信部405と事象推定部406及び推定結果処理部408を有する第1の上位機器15と、学習部409と更新部411を有する第2の上位機器16の2つに分離されている。
第1の上位機器15は、下位コントローラ3を制御することにより間接的に制御対象機器3を制御する上位コントローラ4でもあり、通常は、制御対象機器3や下位コントローラ3の近くに設置され、推定結果処理部408による処理結果を受けて、例えば、オペレータが適切な処置を迅速にとれるようになっている。
第2の上位機器16は、演算能力が高い情報処理装置であり、一般的なPCはもちろん、遠隔地に設置されたいわゆる計算サーバであってもよい。なお、第1の上位機器15及び第2の上位機器16の配置位置は任意であり、制限されるものではない。
本実施形態の構成では、上位コントローラ4でもある第1の上位機器15が下位コントローラ3から作動情報を受信し、事象推定部406において事象情報を出力して事象の推定を行う。また、得られた事象情報に基づいて、推定結果書部408により適切な処理がなされる。
それとともに、第1の上位機器15は、事象情報に基づいて、作動情報と事象情報を第2の上位機器16に送信する。第2の上位機器16では、送られてきた作動情報と事象情報に基づいて学習部409にて学習用ニューラルネットワークモデル410の学習を行う。学習が行われた学習用ニューラルネットワークモデル410は、更新部411にて、更新有無判断部434により更新の有無を判断され、演算桁数削減部412によりその演算桁数が削減された後、更新モデル送信部413により下位コントローラ3へと送られ、下位ニューラルネットワークモデル311を更新する。この一連の流れは、第1の実施形態にて説明したものと同様である。
本例のように、上位コントローラ4に加え、第2の上位機器16を用いることで、特に大量の演算が必要となるニューラルネットワークモデルの学習については、演算能力に優れた専用の機器にこれをさせ、第1の上位機器15である上位コントローラ4では事象の推定を行うことにより、事象推定システム14に必要な演算が、それぞれの機器の演算能力に応じた適正な負荷となるように分散される。
なお、以上示した第1~第6の実施形態は、互いに相いれないものではなく、当業者がその必要に応じて、その要素を取捨選択して適宜組み合わせ、必要な変形を施すことができるものであり、本発明は、そのようにして得られる各種の組み合わせや変形例を含むものとして理解される。
また、第1の実施形態における下位ニューラルネットワークモデル311は上位ニューラルネットワークモデル407より規模が小さく、第2の実施形態及び第4の実施形態において、下位ニューラルネットワークモデル311は第1の上位ニューラルネットワークモデル415より規模が小さいものとしたが、これは一般に下位コントローラ3よりも上位コントローラ4のほうが演算能力が高いことに鑑みた設計であり、必ずもこの通りでなくともよい。すなわち、下位ニューラルネットワークモデル311と上位ニューラルネットワークモデル407又は第1の上位ニューラルネットワークモデル415の規模が同等であるか、下位ニューラルネットワークモデル311の規模が大きくても差し支えない。
下位コントローラ3の演算能力が十分に高ければ、このような設計も可能である。その場合には、下位ニューラルネットワークモデル311は異常情報の出力に、上位ニューラルネットワークモデル407又は第1の上位ニューラルネットワークモデル415は事象情報又は第1の事象情報の出力に特に適したものとすることで、事象推定システム全体としての演算負荷を下げつつ、事象推定の精度が向上するものと期待できる。