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

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

▶ 株式会社安川電機の特許一覧

特許7457752データ分析システム、データ分析方法、及びプログラム
<>
  • 特許-データ分析システム、データ分析方法、及びプログラム 図1
  • 特許-データ分析システム、データ分析方法、及びプログラム 図2
  • 特許-データ分析システム、データ分析方法、及びプログラム 図3
  • 特許-データ分析システム、データ分析方法、及びプログラム 図4
  • 特許-データ分析システム、データ分析方法、及びプログラム 図5
  • 特許-データ分析システム、データ分析方法、及びプログラム 図6
  • 特許-データ分析システム、データ分析方法、及びプログラム 図7
  • 特許-データ分析システム、データ分析方法、及びプログラム 図8
  • 特許-データ分析システム、データ分析方法、及びプログラム 図9
  • 特許-データ分析システム、データ分析方法、及びプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-19
(45)【発行日】2024-03-28
(54)【発明の名称】データ分析システム、データ分析方法、及びプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240321BHJP
【FI】
G06N20/00
【請求項の数】 12
(21)【出願番号】P 2022096452
(22)【出願日】2022-06-15
(65)【公開番号】P2023183057
(43)【公開日】2023-12-27
【審査請求日】2023-04-13
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】横矢 剛
(72)【発明者】
【氏名】橋本 純香
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2022-044416(JP,A)
【文献】国際公開第2021/095222(WO,A1)
【文献】中国特許出願公開第112462261(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
分析対象についての入力データが入力されると、当該分析対象が特定の状態であるか否かを表す出力値を出力するように、予め学習データにより学習され、パラメータが確率変数を含むデータ分析モデルと、
前記データ分析モデルに対し、前記入力データを複数回繰り返し入力する入力部と、
前記複数回それぞれで前記データ分析モデルから出力された複数の前記出力値の分布に基づいて、前記特定の状態である度合いを示す推定値を計算する計算部と、
を有するデータ分析システム。
【請求項2】
前記計算部は、前記分布がばらつくほど前記特定の状態である度合いが小さくなるように、前記推定値を計算する、
請求項1に記載のデータ分析システム。
【請求項3】
前記データ分析システムは、産業機械の機構を駆動するモータのモータ制御装置の制御データを取得する取得部を更に有し、
前記入力部は、前記データ分析モデルに対し、前記入力データとして、前記制御データを複数回繰り返し入力し、
前記計算部は、前記特定の状態として、特定の異常現象の発生度合いを示す推定値を計算する、
請求項2に記載のデータ分析システム。
【請求項4】
相異なる前記異常現象が発生しているか否かを表す前記出力値をそれぞれ出力する複数の前記データ分析モデルと、
前記入力部により前記複数のデータ分析モデルそれぞれに前記制御データを複数回繰り返して入力して複数の出力値それぞれの分布に基づいて、前記相異なる異常現象の発生度合いを示す推定値をそれぞれ計算する複数の前記計算部と、
を有する請求項3に記載のデータ分析システム。
【請求項5】
前記入力部は、
前記制御データに基づいて、前記機構に発生した単位現象を特定し、
前記データ分析モデルに対し、前記単位現象に関する単位現象データを、複数回繰り返し入力する、
請求項3又は4に記載のデータ分析システム。
【請求項6】
前記計算部は、前記分布における閾値以上又は以下の前記出力値の割合に基づいて、前記推定値を計算する、
請求項2~4の何れかに記載のデータ分析システム。
【請求項7】
前記データ分析システムは、
学習済みの前記データ分析モデルに対し、前記学習データを複数回繰り返し入力する学習データ入力部と、
前記複数回それぞれで前記学習済みのデータ分析モデルから出力された複数の前記出力値の分布に基づいて、前記閾値を決定する閾値決定部と、
を更に有する請求項6に記載のデータ分析システム。
【請求項8】
前記学習データ入力部は、前記学習済みのデータ分析モデルに対し、複数の前記学習データそれぞれを複数回繰り返し入力し、
前記閾値決定部は、
前記学習データごとに、当該学習データから得られた前記分布に基づいて、前記閾値の候補を計算し、
最大の前記候補を、前記閾値として決定する、
請求項7に記載のデータ分析システム。
【請求項9】
前記計算部は、前記分布における所定の範囲の前記出力値の割合に基づいて、前記推定値を計算する、
請求項2~4の何れかに記載のデータ分析システム。
【請求項10】
前記計算部は、
前記分布のばらつきに関する指標と前記出力値の平均値とを計算し、
前記指標及び前記平均値に基づいて、前記推定値を計算する、
請求項2~4の何れかに記載のデータ分析システム。
【請求項11】
分析対象についての入力データが入力されると、当該分析対象が特定の状態であるか否かを表す出力値を出力するように、予め学習データにより学習され、パラメータが確率変数を含むデータ分析モデルに対し、前記入力データを複数回繰り返し入力し、
前記複数回それぞれで前記データ分析モデルから出力された複数の前記出力値の分布に基づいて、前記特定の状態である度合いを示す推定値を計算する、
データ分析方法。
【請求項12】
分析対象についての入力データが入力されると、当該分析対象が特定の状態であるか否かを表す出力値を出力するように、予め学習データにより学習され、パラメータが確率変数を含むデータ分析モデルに対し、前記入力データを複数回繰り返し入力する入力部、
前記複数回それぞれで前記データ分析モデルから出力された複数の前記出力値の分布に基づいて、前記特定の状態である度合いを示す推定値を計算する計算部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ分析システム、データ分析方法、及びプログラムに関する。
【背景技術】
【0002】
特許文献1には、重みパラメータが確率分布によって規定され、出力値の確率分布の平均と分散を後段に伝播させる確率層を含む学習済みのニューラルネットワークに対し、データを入力することによって、当該データを分析する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2021/095361号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の目的の1つは、例えば、データ分析の精度を高めることである。
【課題を解決するための手段】
【0005】
本開示の一側面に係るデータ分析システムは、分析対象についての入力データが入力されると、当該分析対象が特定の状態であるか否かを表す出力値を出力するように、予め学習データにより学習され、パラメータが確率変数を含むデータ分析モデルと、前記データ分析モデルに対し、前記入力データを複数回繰り返し入力する入力部と、前記複数回それぞれで前記データ分析モデルから出力された複数の前記出力値の分布に基づいて、前記特定の状態である度合いを示す推定値を計算する計算部と、を有する。
【発明の効果】
【0006】
本開示によれば、例えば、データ分析の精度が高まる。
【図面の簡単な説明】
【0007】
図1】データ分析システムのハードウェア構成の一例を示す図である。
図2】データ分析システムの機能ブロックの一例を示す図である。
図3】データ分析システムの機能ブロックにより実行される処理の一例を示す図である。
図4】異常発生時の制御データの一例を示す図である。
図5】推定値の計算方法の一例を示す図である。
図6】データ分析モデルの学習方法の一例を示す図である。
図7】表示制御部により表示される分析結果画面の一例を示す図である。
図8】データ分析システムで実行される処理の一例を示すフロー図である。
図9】変形例における機能ブロックの一例を示す図である。
図10】変形例1における閾値の決定方法の一例を示す図である。
【発明を実施するための形態】
【0008】
[1.データ分析システムのハードウェア構成]
本開示に係るデータ分析システムの実施形態の一例を説明する。図1は、データ分析システムのハードウェア構成の一例を示す図である。例えば、データ分析システム1は、モータ制御装置10、機構20、センサ30、及びユーザ装置40を含む。
【0009】
モータ制御装置10は、産業機械の機構20を制御する装置である。例えば、モータ制御装置10は、CPU11、記憶部12、及び通信部13を含む。CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、揮発性メモリと、不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0010】
機構20は、モータ制御装置10により制御される機械である。本実施形態では、機構20の一例としてボールねじを説明するが、機構20は、任意の種類であってよく、ボールねじに限られない。例えば、機構20は、伝動ベルト又はギアであってもよい。モータ制御装置10は、少なくとも1つの機構を制御すればよく、複数の機構20を制御してもよい。
【0011】
機構20は、少なくとも1つのモータを含む。例えば、機構20は、電力線を介してモータ制御装置10に接続される。本実施形態では、機構20は、モータが連結されたボールねじ、リニアガイド、及びテーブルを含む。テーブルには、対象物が配置される。対象物は、加工又は検査といった作業の対象となる物である。対象物は、ワークと呼ばれることもある。対象物は、テーブル上に固定され、テーブルとともに移動する。
【0012】
センサ30は、機構20の制御に関する情報を検出する。本実施形態では、センサ30の一例としてトルクセンサを説明するが、センサ30は、任意の種類であってよく、トルクセンサに限られない。例えば、センサ30は、モータエンコーダ、振動センサ、モーションセンサ、超音波センサ、赤外線センサ、感圧センサ、ジャイロセンサ、加速度センサ、温度センサ、又はビジョンセンサであってもよい。
【0013】
図1の例では、センサ30は、機構20に組み込まれているものとするが、センサ30は、機構20の外部に存在してもよい。モータ制御装置10には、通信線又は信号線を介して少なくとも1つのセンサ30が接続されるようにすればよく、複数のセンサ30が接続されてもよい。センサ30は、ハブ等の装置を介してモータ制御装置10に接続されてもよい。
【0014】
ユーザ装置40は、ユーザが操作する装置である。例えば、ユーザ装置40は、パーソナルコンピュータ、タブレット端末、スマートフォン、又はサーバコンピュータである。例えば、ユーザ装置40は、CPU41、記憶部42、通信部43、操作部44、及び表示部45を含む。CPU41、記憶部42、及び通信部43は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。
【0015】
操作部44は、マウス又はキーボード等の入力デバイスである。表示部45は、液晶ディスプレイ又は有機ELディスプレイである。例えば、ユーザ装置40は、通信線を介してモータ制御装置10に接続される。例えば、ユーザは、ユーザ装置40を操作して、モータ制御装置10の設定作業又は保守作業等の各種作業を行う。
【0016】
なお、モータ制御装置10又はユーザ装置40に記憶されるプログラムは、ネットワークを介して供給されてもよい。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)、又は、外部機器と接続するための入出力部(例えば、USB端子)を介して、情報記憶媒体に記憶されたプログラムがモータ制御装置10又はユーザ装置40に供給されてもよい。
【0017】
また、モータ制御装置10及びユーザ装置40の各々のハードウェア構成は、本実施形態の例に限られない。モータ制御装置10及びユーザ装置40の各々は、任意のハードウェアを含むことができる。例えば、ASIC又はFPGAが、モータ制御装置10又はユーザ装置40に含まれてもよい。CPU11,41は、circuitryと呼ばれる構成の一例であるが、ASIC又はFPGAが、circuitryに相当してもよい。
【0018】
また、データ分析システム1に含まれる装置は、本実施形態の例に限られない。データ分析システム1は、少なくとも1つの装置を含めばよい。例えば、データ分析システム1は、モータ制御装置10だけを含んでもよい。この場合、機構20、センサ30、及びユーザ装置40は、データ分析システム1の外部に存在する。例えば、データ分析システム1は、ユーザ装置40だけを含んでもよい。この場合、モータ制御装置10、センサ30、及びユーザ装置40は、データ分析システム1の外部に存在する。
【0019】
[2.データ分析システムの概要]
本実施形態では、モータ制御装置10は、所定の位置にテーブルが移動するように、機構20を制御する。従来は、何らかの異常が機構20に発生すると、経験を積んだ技術者がモータ制御装置10の制御データを解析していた。本実施形態のデータ分析システム1は、機械学習を利用したデータ分析モデルで制御データを分析して異常現象を推定することによって、技術者の経験に頼ることのないトラブルシュートを可能としている。
【0020】
異常現象とは、異常要因がある状態で機構20を動作させた場合に、機構20が動作した結果として生じる異常な現象のことである。異常現象は、異常の物理現象ということもできる。異常現象は、発生するインシデントそのものということもできる。例えば、異常現象は、対象物若しくはテーブルのスリップ現象(直線的な滑り現象)、モータ軸のスリップ現象(回転的な滑り現象)、又は所定の振動現象である。
【0021】
データ分析モデルを利用して異常現象を推定するためには、異常現象が発生した場合の制御データを、データ分析モデルに学習させる必要がある。しかしながら、制御データに表れる特徴は、機構20自体に関する機構条件、機構20を制御するための指令に関する指令条件、及び機構20を制御するための設定に関する設定条件といった種々の条件に応じて異なる。データ分析モデルに対し、入力される制御データが、データ分析モデルの生成時に十分に学習された発生頻度の高い特徴をもつデータであっても、特徴の似た不確実なデータであっても、同様の分析結果となり、その確度が不明瞭である可能性がある。
【0022】
そこで、本実施形態では、パラメータが確率変数を含むデータ分析モデルに対し、制御データを複数回繰り返し入力することによって、データ分析の不確実性を反映した出力値を得るようにしている。これにより、データ分析モデルの不確実性を、最終的に計算される推定値に反映できるので、データ分析の精度が高まるようになっている。以降、データ分析システム1の詳細を説明する。
【0023】
[3.データ分析システムの機能]
図2は、データ分析システム1の機能ブロックの一例を示す図である。図3は、データ分析システム1の機能ブロックにより実行される処理の一例を示す図である。以降、図3を参照しつつ、図2の機能ブロックの詳細を説明する。データ分析システム1は、データ分析モデルM、入力部104、及び計算部105を少なくとも含めばよく、データ分析システム1の機能ブロックは、図2の例に限られない。
【0024】
図3のように、本実施形態では、制御データD1に基づいて、単位現象a,bの特定、単位現象データD2a,D2bの計算、異常現象x,yのデータ分析モデルMx,Myによるデータ分析、データ分析モデルMx,Myからの出力値の分布dx,dyの作成、及び異常現象x,yの度合いを示す推定値の計算が実行される。図2では省略しているが、必要に応じて、異常現象x,yの推定値から異常要因が推定されてもよい。
【0025】
単位現象とは、異常現象が細かく分割された個々の現象である。単位現象は、機構条件、指令条件、及び設定条件といった条件に依存しないように、物理的な単一の現象として定義される。このため、制御データD1から直接的に異常現象を特定しにくかったとしても、単位現象であれば特定しやすくなる。異常現象は、複数の単位現象に分割可能である。異常現象に含まれる単位現象の数は、任意の数であってよい。例えば、異常現象に含まれる単位現象は、1~5個程度であってもよいし、それ以上であってもよい。
【0026】
例えば、先述した異常現象「対象物若しくはテーブルのスリップ現象」であれば、テーブル上の可動範囲を滑る単位現象「滑り現象」と、テーブル上の可動範囲を滑った後の単位現象「衝突現象」と、に分けられる。異常現象「モータ軸のスリップ現象」であれば、少なくとも1個の単位現象「滑り現象」に分けられる、その後に単位現象「衝突現象」は発生しない。
【0027】
単位現象「滑り現象」は、トルクの観点であれば、正常時に比べてトルクが減少する現象、又は、所望のトルクを出せない現象ということもできる。単位現象「滑り現象」は、慣性の観点であれば、機構20の動作中に慣性が一時的に小さくなる現象ということもできる。単位現象「衝突現象」は、スパイク波形の発生ということもできる。他の異常現象も同様に、機構条件、指令条件、及び設定条件といった条件に依存しないように、個々の異常現象を細かく分割した単位現象が定義されるようにすればよい。
【0028】
異常要因とは、異常現象が発生した要因である。例えば、異常要因は、ヒューマンエラー又は経年劣化等により、ねじの緩み又は部品の破損等の現象が機構20に生じている状態で、異常を引き起こす原因となるものである。例えば、異常要因は、ねじが緩んでいること、加速又は減速が想定よりも大きいこと、摩擦が想定よりも弱いこと、ねじ穴に遊びがあること、テーブル等の部品のバランスが悪いこと、又はテーブル等の部品の剛性が弱いことである。
【0029】
[3-1.モータ制御装置の機能]
例えば、モータ制御装置10は、データ記憶部100、機構制御部101、取得部102、異常判定部103、入力部104、複数の計算部105、及び異常要因推定部106を含む。データ記憶部100は、記憶部12を主として実現される。機構制御部101、取得部102、異常判定部103、入力部104、複数の計算部105、及び異常要因推定部106の各々は、CPU11を主として実現される。
【0030】
[データ記憶部]
データ記憶部100は、モータ制御装置10が実行する処理に必要なデータを記憶する。例えば、データ記憶部100は、機構20を制御するためのデータと、データ分析のためのデータと、を記憶する。
【0031】
例えば、データ記憶部100は、機構20を制御するためのデータとして、モータ制御装置10の動作を示す動作プログラムと、動作プログラムにより参照される動作パラメータと、を記憶する。動作プログラム自体は、ラダー言語等を利用して作成される公知のプログラムであってよい。動作パラメータも公知のものであってよく、例えば、機構20のモータの回転方向又は回転速度等であってもよい。モータ制御装置10は、動作プログラムを実行し、必要に応じて動作パラメータを参照することによって、機構20に含まれるモータに対する電圧を制御する。
【0032】
例えば、データ記憶部100は、データ分析のためのデータとして、単位現象の特定プログラム、データ分析モデルM、推定値の計算プログラム、及び異常要因の推定プログラムを記憶する。データ記憶部100は、これらの全てのデータを記憶しなければならないわけではなく、少なくともデータ分析モデルMを記憶すればよい。
【0033】
単位現象の特定プログラムは、制御データD1から単位現象を特定するためのプログラムである。本実施形態では、単位現象の特定方法の一例として、後述の解析的手法と機械学習手法を説明する。このため、単位現象の特定プログラムは、解析的手法の処理が定義されたプログラム、又は、機械学習手法の処理が定義されたプログラムである。例えば、単位現象の特定プログラムは、特定対象となる単位現象の数だけ存在してもよいし、複数の単位現象を1つの特定プログラムで特定可能であってもよい。
【0034】
本実施形態では、単位現象の特定プログラムに、単位現象データD2を計算する処理も定義されているものとするが、この処理は、単位現象の特定プログラムとは別のプログラムに定義されていてもよい。例えば、単位現象データD2を計算する処理は、制御データD1が示す波形の大きさを取得する処理、当該大きさの平均値を計算する処理、当該大きさと閾値を比較する処理、又は当該大きさが閾値以上である期間を計算する処理が示されている。これらの処理の詳細も後述する。
【0035】
データ分析モデルMは、モータ制御装置10についての制御データD1が入力されると、当該モータ制御装置10が特定の状態であるか否かを表す出力値を出力するように、予め学習データにより学習され、パラメータが確率変数を含むモデルである。モータ制御装置10は、分析対象の一例であり、制御データD1は、入力データの一例である。このため、モータ制御装置10について説明している箇所は、分析対象と読み替えることができ、制御データD1について説明している箇所は、入力データと読み替えることができる。
【0036】
分析対象は、分析の対象となる物である。分析対象は、有体物に限られず、無体物であってもよい。例えば、分析対象は、物理的な装置ではなく、シミュレータ上で動作する架空の装置であってもよい。分析対象は、モータ制御装置10以外の他の装置であってもよい。例えば、分析対象は、モータ制御装置10を管理する上位コントローラ、数値制御装置、PLC(Programmable Logic Controller)、ロボットコントローラ、セルコントローラ、インバータ、又はコンバータであってもよい。例えば、分析対象は、装置に限られず、機構20、対象物、モータ、又はロボットであってもよい。
【0037】
入力データは、データ分析モデルMに入力されるデータである。入力データは、データ分析モデルMに直接的に入力されるデータであってもよいし、データ分析モデルMに直接的に入力されるデータを作成するための元となるデータであってもよい。本実施形態では、制御データD1が入力データに相当し、データ分析モデルMには単位現象データD2が直接的に入力されるので、入力データは、データ分析モデルMに直接的に入力される単位現象データD2を作成するための元となるデータである。この入力データは、データ分析モデルMに間接的に入力されるデータということもできる。
【0038】
なお、制御データD1ではなく、単位現象データD2が入力データに相当してもよい。この場合、入力データは、データ分析モデルMに直接的に入力されるデータである。また、単位現象データD2を特に作成することなく、制御データD1がデータ分析モデルMに直接的に入力されてもよい。この場合も、入力データは、データ分析モデルMに直接的に入力されるデータである。データ分析モデルMには、少なくとも1つの入力データが入力されるようにすればよい。例えば、データ分析モデルMには、複数の入力データが入力されてもよい。入力データは、単位現象の特徴ではなく、制御データD1の何らかの特徴を示すデータであってもよい。
【0039】
本実施形態では、データ記憶部100は、相異なる異常現象が発生しているか否かを表す出力値をそれぞれ出力する複数のデータ分析モデルMを記憶する。このため、データ記憶部100は、推定対象となる異常現象ごとに、データ分析モデルMを記憶する。推定対象となる異常現象をk(kは2以上の整数)種類とすると、データ記憶部100は、k個のデータ分析モデルMを記憶する。データ記憶部100は、少なくとも1つのデータ分析モデルMを記憶すればよく、多クラス分類を利用するのであれば、複数の異常現象を推定可能な1つのデータ分析モデルMだけを記憶してもよい。他にも例えば、異常現象を1つだけ推定したいのであれば、データ記憶部100は、1つのデータ分析モデルMだけを記憶してもよい。
【0040】
図3の例では、学習済みのデータ分析モデルMx,Myがデータ記憶部100に記憶されている。データ分析モデルMxは、異常現象xの発生を推定するためのモデルである。データ分析モデルMyは、異常現象yの発生を推定するためのモデルである。以降、異常現象x,yを区別しない時は、末尾のx,yのアルファベットを省略し、単に異常現象と記載する。同様に、データ分析モデルMx,Myを区別しない時は、単にデータ分析モデルMと記載する。
【0041】
本実施形態では、データ分析モデルMがベイジアンニューラルネットワークである場合を例に挙げる。ベイジアンニューラルネットワークは、ベイジアンネットワークをニューラルネットワークに置き換えたモデルである。ベイジアンニューラルネットワークは、パラメータ(例えば、重み)に確率変数が含まれており、確率変数に基づいてパラメータをサンプリングすることで、パラメータが確率的に変化する。パラメータのサンプリングはデータの入力の度に実施されてもよいし、事前に複数回分のパラメータをサンプリングしてメモリに保存し、データの入力の度に適用するパラメータを変更してもよい。確率的に変化するパラメータは、重みに限られず、バイアス等の他のパラメータであってもよい。ベイジアンニューラルネットワークは、推定結果だけではなく、推定結果の分布に基づいた不確実性に関する情報も出力できる。
【0042】
ベイジアンニューラルネットワークは、パラメータが確率的に変化するので、ベイジアンニューラルネットワークに対して同じデータを入力しても、ベイジアンニューラルネットワークからの出力は、確率的に変化する。例えば、不確実なデータ(訓練経験のないデータ)がベイジアンニューラルネットワークに入力される場合、ベイジアンニューラルネットワークからの出力値のばらつきが大きくなる。即ち、ある特定の範囲に出力値が集中するのではなく、出力値が広範囲にばらついた状態になる。
【0043】
なお、データ分析モデルMは、出力値が確率的に変化するモデルであればよく、ベイジアンニューラルネットワークに限られない。例えば、データ分析モデルMは、ニューラルネットワークではないベイジアンネットワークであってもよい。例えば、データ分析モデルMは、隠れマルコフモデルを利用したモデルであってもよいし、確率モデル又は確率的モデルと呼ばれる他のモデルであってもよい。
【0044】
推定値の計算プログラムは、データ分析モデルMから出力された出力値に基づいて、推定値を計算するためのプログラムである。本実施形態では、推定値の計算プログラムは、データ分析モデルMから出力された出力値を集計して分布dを作成し、当該作成された分布dに基づいて推定値を計算するためのプログラムである。推定値の計算プログラムには、後述の計算部105の処理が定義されている。
【0045】
異常要因の推定プログラムは、異常現象の推定値に基づいて、異常要因を推定するためのプログラムである。例えば、異常現象の推定値と、異常要因と、の関係を示す関係データは、予めデータ記憶部100に定義されているものとする。関係データは、任意の形式であってよく、例えば、テーブル形式、数式形式、機械学習のモデル、又はプログラムコードの一部若しくは全部であってもよい。異常要因の推定プログラムは、関係データを参照し、異常現象の推定値に関連付けられた異常要因を特定することによって、異常要因を推定する。
【0046】
なお、データ記憶部100が記憶するデータは、上記の例に限られない。データ記憶部100は、任意のデータを記憶可能である。例えば、データ記憶部100は、正常時の波形を示すマスタデータを記憶してもよい。例えば、データ記憶部100は、推定値の計算に必要な閾値を記憶してもよい。例えば、データ記憶部100は、過去に取得された制御データD1の履歴を記憶してもよい。
【0047】
[機構制御部]
機構制御部101は、データ記憶部100に記憶された動作プログラムに基づいて、機構20に含まれるモータを制御する。モータの制御方法自体は、種々の方法を利用可能である。例えば、機構制御部101は、データ記憶部100に記憶された動作プログラムを実行し、データ記憶部100に記憶された動作パラメータを参照することによって、機構20に含まれるモータに対する電圧を制御する。機構制御部101は、センサ30の検出結果に基づいて、機構20を制御してもよい。
【0048】
[取得部]
取得部102は、産業機械の機構20を駆動するモータのモータ制御装置10の制御データD1を取得する。制御データD1は、機構20の制御に関するデータである。本実施形態では、機構20の制御に関する数値が制御データD1に時系列的に示される場合を説明するが、制御データD1は、ある一時点の動作を示す瞬時値であってもよい。制御データD1は、波形データ又はトレースデータと呼ばれることもある。例えば、取得部102は、センサ30の検出信号に基づいて、制御データD1を取得する。
【0049】
図4は、異常発生時の制御データD1の一例を示す図である。図4の横軸は時間軸である。図4の縦軸はトルク等の数値を示す軸である。図4の実線は、マスタデータが示す正常時のトルク指令の波形である。図4の破線は、異常発生時の制御データD1が示すトルク指令の波形である。図4の点線は、位置指令速度である。図4の例では、位置指令速度が増加する期間である加速期間と、位置指令速度が減少する減速期間と、の各々で異常が発生している。これらの期間では、正常時と異常時のトルク指令の差が大きくなる。
【0050】
例えば、取得部102は、センサ30により検出されたトルク等の物理量を時系列的に計測し、物理量の時系列的な変化を示す制御データD1を取得する。取得部102は、任意の種類の制御データを取得可能である。取得部102が取得する制御データは、本実施形態の例に限られない。例えば、取得部102は、推定外乱トルク、位置偏差、フィードバック速度、又は振動センサの検出値といった種々の制御データを取得可能である。
【0051】
なお、取得部102は、センサ30の検出信号ではなく、動作プログラムの処理結果に基づいて、制御データD1を取得してもよい。即ち、制御データD1は、モータ制御装置10の内部的な処理の結果を示すデータであってもよい。制御データD1は、任意の形式であってよく、波形を示すデータに限られない。例えば、制御データD1は、画像形式又は表形式のデータであってもよい。
【0052】
[異常判定部]
異常判定部103は、制御データD1に基づいて、異常が発生したか否かを判定する。本実施形態では、異常判定部103は、何らかの異常が発生したか否かを判定し、具体的な異常は、データ分析モデルMにより推定される。異常判定部103は、1つの制御データD1だけに基づいて、異常が発生したか否かを判定してもよいし、互いに異なる複数の制御データD1(例えば、トルク指令を示す制御データD1と、振動センサの検出値を示す制御データD1と、の2つの制御データD1)に基づいて、異常が発生したか否かを判定してもよい。
【0053】
例えば、異常判定部103は、正常時の波形を示すマスタデータと、取得部102により取得された最新の制御データD1と、に基づいて、異常が発生したか否かを判定する。例えば、異常判定部103は、マスタデータと、最新の制御データD1と、のずれ具合が閾値未満の場合に、異常が発生していないと判定する。異常判定部103は、マスタデータと、最新の制御データD1と、のずれ具合が閾値以上の場合に、異常が発生したと判定する。このずれ具合は、任意の指標を利用可能であり、例えば、マハラノビス距離が利用されてもよい。
【0054】
なお、異常が発生したか否かを判定する方法自体は、種々の方法を利用可能である。例えば、異常判定部103は、マスタデータを利用する方法以外にも、最新の制御データD1と、それよりも前の複数の時点の各々の制御データD1の平均値と、のずれ具合が閾値以上の場合に、異常が発生したと判定してもよい。例えば、異常判定部103は、最新の制御データD1が示す数値が予め定められた閾値以上の時点が所定数以上の場合に、異常が発生したと判定してもよい。異常判定部103は、最新の制御データD1が示す数値の時系列的な変化の変化量が閾値以上の場合に、異常が発生したと判定してもよい。
【0055】
[入力部]
入力部104は、データ分析モデルMに対し、入力データを、複数回繰り返し入力する。入力データを複数回繰り返し入力するとは、入力データそのものを複数回繰り返し入力すること、又は、入力データに基づいて作成されたデータを複数回繰り返し入力することである。入力部104は、データ分析モデルMに対し、同じ入力データを、何度も入力する。入力データの入力回数は、2回以上であればよく、任意の回数であってよい。例えば、入力回数は、100回~1000回程度であってもよいし、それ以下又はそれ以上であってもよい。
【0056】
本実施形態では、制御データD1が入力データに相当するので、入力部104は、データ分析モデルMに対し、入力データとして、制御データD1を複数回繰り返し入力する。なお、入力データの一例である制御データD1がデータ分析モデルMに直接的に入力されるわけではないので、制御データD1に基づいて作成された単位現象データD2を複数回繰り返し入力することが、入力データを複数回繰り返し入力することに相当する。
【0057】
例えば、入力部104は、制御データD1に基づいて、機構20に発生した単位現象を特定し、データ分析モデルMに対し、単位現象に関する単位現象データD2を、複数回繰り返し入力する。入力部104は、単位現象の特定プログラムに基づいて、少なくとも1つの単位現象を特定する。本実施形態では、入力部104が、複数の単位現象の各々の特定プログラムに基づいて、複数の単位現象を特定可能である場合を説明するが、入力部104は、ある1つの単位現象の特定プログラムに基づいて、単位現象を1つだけ特定してもよい。
【0058】
単位現象を特定するとは、単位現象に関する情報を特定することである。例えば、単位現象の種類を特定することは、単位現象を特定することに相当する。単位現象を特定することは、単位現象の種類を特定することに限られず、例えば、単位現象のタイミング、時間間隔、又は特徴量を特定することを意味してもよい。他にも例えば、単位現象の発生回数又は発生頻度を特定すること、又は、単位現象に関する複数の情報を総合的に特定することが、単位現象を特定することに相当してもよい。
【0059】
本実施形態では、入力部104は、異常判定部103により異常が発生したと判定されない場合には、単位現象を特定する処理を実行せずに、異常判定部103により異常が発生したと判定された場合に、単位現象を特定する処理を実行する。なお、異常が発生していない場合にも、入力部104は、単位現象を特定する処理を実行し続けてもよい。この場合、モータ制御装置10は、異常判定部103を含まなくてもよい。
【0060】
図3の例であれば、入力部104は、機構20で何らかの異常が発生したと判定された場合に、制御データD1に基づいて、単位現象a,bを特定する。入力部104は、制御データD1に基づいて、単位現象a,bの特徴に関する単位現象データD2a,D2bを計算する。以降、単位現象a,bを区別しない時は、末尾のa,bのアルファベットを省略し、単に単位現象と記載する。同様に、単位現象データ2a,D2bを区別しない時は、単に単位現象データD2と記載する。
【0061】
例えば、入力部104は、単位現象の特定プログラムに基づいて、単位現象を特定して単位現象データD2を作成する。単位現象の特定プログラムには、制御データD1から単位現象を特定する処理手順が定義されている。入力部104は、制御データD1のうち、特定の区間の部分に基づいて、単位現象を特定する。例えば、入力部104は、制御データD1のうち、加速開始から減速開始までの区間と、減速開始以降の区間と、の各々の部分について、それぞれ正常データからのトルクの増減を閾値で判定して、各単位現象を判定する。任意の区間が判定対象になればよく、これら2つの区間の何れか一方のみが判定対象になってもよい。入力部104は、予め定められた解析方法によって制御データを解析する解析的手法だけではなく、機械学習を利用した機械学習手法によって単位現象を特定してもよい。
【0062】
なお、入力部104は、単位現象が発生したタイミングを特定してもよい。このタイミングは、制御データD1が示す時間軸におけるタイミングである。例えば、タイミングは、繰り返し実行される一連の動作に対する異常が発生した相対的な時点又は期間である。タイミングは、時、期間、又は区間ということもできる。図4の制御データD1の例であれば、加速期間、減速期間、定速期間、又は停止後の期間といったタイミングが存在する。
【0063】
入力部104は、制御データD1が示す時間軸の中で、単位現象が特定される根拠となった部分のタイミングを特定する。解析的手法であれば、入力部104は、制御データD1に含まれる数値又はその変化量が閾値以上になったタイミングを特定する。機械学習手法であれば、入力部104は、ヒートマップ等を利用して、機械学習モデルが単位現象を特定する根拠となった部分をタイミングとして特定する。入力部104は、全ての単位現象のタイミングを特定してもよいし、一部の単位現象のタイミングを特定してもよい。
【0064】
例えば、入力部104は、単位現象の順序を特定してもよい。この順序は、制御データD1が示す時間軸の中で、複数の単位現象の各々が発生したタイミングの順序である。即ち、この順序は、時間的な前後関係である。入力部104は、個々の単位現象のタイミングを比較することによって、複数の単位現象の各々の順序を特定する。入力部104は、全ての単位現象の順序を特定してもよいし、一部の単位現象の順序のみを特定してもよい。
【0065】
例えば、入力部104は、単位現象の時間間隔を計算してもよい。この時間間隔は、制御データD1が示す時間軸の中で、ある単位現象が発生してから次の単位現象が発生するまでの時間的な長さである。入力部104は、個々の単位現象のタイミングの時間間隔を計算する。入力部104は、全ての単位現象の時間間隔を計算してもよいし、一部の単位現象の時間間隔のみを計算してもよい。
【0066】
例えば、入力部104は、制御データD1のうち、単位現象に対応する部分に関する他の特徴量を抽出してもよい。他の特徴量は、制御データD1が示す数値又はその変化の特徴を定量化した情報であればよい。制御データD1が波形データであれば、波形の形状的な特徴は、特徴量に相当する。例えば、数値の大きさ、波形の幅、波形の形状、又はこれらの組み合わせは、特徴量に相当する。他にも例えば、数値の変化量、ある期間における平均値、又は正常データとのずれ具合といった情報が特徴量に相当してもよい。
【0067】
入力部104は、以上説明した処理結果に基づいて、単位現象データD2を作成する。単位現象データD2には、制御データD1のうちの単位現象が発生した部分の波形の大きさ、単位現象が発生したタイミング、単位現象の順序、単位現象の時間間隔、及びその他の特徴量のうちの少なくとも1つが含まれる。入力部104は、単位現象ごとに、単位現象データD2を作成する。入力部104は、データ分析モデルMに対し、制御データD1に基づいて作成した少なくとも1つの単位現象データD2を入力することによって、制御データD1を入力する。
【0068】
図3の例であれば、入力部104は、学習済みのデータ分析モデルMx,Myの各々に対し、単位現象データD2a,D2bを、複数回繰り返し入力する。データ分析モデルMx,Myの各々のパラメータは、確率的に変化するので、全く同じ単位現象データD2a,D2bを入力したとしても、データ分析モデルMx,Myの各々からの出力値は、確率的に変化する。例えば、出力値は、異常現象P1,P2の各々が発生している確率を示す。出力値は、予め定められた範囲内の数値になってもよいし、特に範囲が定められていなくてもよい。
【0069】
[計算部]
計算部105は、複数回それぞれでデータ分析モデルMから出力された複数の出力値の分布dに基づいて、特定の状態である度合いを示す推定値を計算する。本実施形態では、複数のデータ分析モデルMが用意されているので、モータ制御装置10は、入力部104により複数のデータ分析モデルMそれぞれに制御データD1を複数回繰り返して入力して複数の出力値それぞれの分布dに基づいて、相異なる異常現象の発生度合いを示す推定値をそれぞれ計算する複数の計算部105を含む。データ分析モデルMは、1つだけ用意されていてもよく、この場合には、計算部105も1つだけ存在する。
【0070】
特定の状態とは、分析対象となる状態である。本実施形態では、特定の異常現象が発生したか否かが分析されるので、特定の異常現象が発生した状態が特定の状態に相当する場合を例に挙げる。このため、特定の異常現象について説明している箇所は、特定の状態と読み替えることができる。計算部105は、特定の状態として、特定の異常現象の発生度合いを示す推定値を計算することになる。
【0071】
なお、特定の状態は、特定の異常現象以外の他の状態であってもよい。特定の状態は、特定の異常現象に限られない。例えば、特定の状態は、異常とまではいかないが、正常な状態から若干外れた状態であってもよい。即ち、特定の状態は、異常が発生しうる注意すべき状態であってもよい。例えば、データ分析モデルMによって、どの程度理想的な状態で機構20を制御できているかを分析する場合には、特定の状態は、理想的な状態であってもよい。
【0072】
特定の状態である度合いとは、特定の状態である程度である。この度合いは、特定の状態である確率、特定の状態と推定される尤度、又は特定の状態らしさということもできる。推定値は、この度合いの高さを示す指標である。本実施形態では、推定値が確率で表現される場合を説明するが、推定値は、確率以外の数値、文字、又はその他の記号で表現されてもよい。
【0073】
本実施形態では、推定値が高いほど、特定の状態である度合いが高いことを意味する場合を例に挙げるが、推定値と、特定の状態である度合いと、の関係は、本実施形態の例に限られない。例えば、本実施形態の例とは逆に、推定値が低いほど、特定の状態である度合いが高いことを意味してもよい。推定値と、特定の状態である度合いと、の間には、何らかの相関関係があればよい。例えば、計算部105は、分布dと、推定値の計算プログラムと、に基づいて、推定値を計算する。
【0074】
図3の例であれば、計算部105は、データ分析モデルMx,Myの各々からの出力値を集計することによって、分布dx,dyを取得する。図3の分布dx,dyの縦軸は、頻度(回数)である。図3の分布dx,dyの横軸は、出力値である。計算部105は、分布dx,dyの各々に基づいて、異常現象x,yの度合いを示す推定値を計算する。以降、分布dx,dyを区別しない時は、末尾のx,yのアルファベットを省略し、単に分布dと記載する。
【0075】
図5は、推定値の計算方法の一例を示す図である。図5のデータ分析モデルMに対する吹き出しの横軸は、パラメータWである。この吹き出しの縦軸は、パラメータWの確率P(W)である。本実施形態では、モータ制御装置10は、分布dのうち、閾値を超えた出力値の割合が、異常現象の度合いを示す推定値として計算する。図5では、(1)~(3)の3つのパターンが示されている。
【0076】
例えば、(1)は、出力値が大きく、不確実性が小さい場合のパターンである。(1)の推定値は、図5の中で最も高くなる。(2)は、出力値が大きく、不確実性が高い場合のパターンである。(2)の推定値は、(1)の推定値よりも低くなる。(3)は、出力値の平均は小さく、不確実性が小さい場合のパターンである。(3)の推定値は、(1)の推定値よりも低くなる。
【0077】
本実施形態では、計算部105は、分布dがばらつくほど特定の状態である度合い(例えば、異常現象である確率)が小さくなるように、推定値を計算する。分布dがはらつくとは、ある特定の出力値の頻度だけが極めて高くなるのではなく、出力値の頻度が広範囲にわたってそれなりに高くなることである。分布dがばらつくとは、分布dが散らばるということもできる。例えば、標準偏差、分散、又は変動係数が大きいことは、分布dがばらつくことに相当する。本実施形態では、標準偏差、分散、又は変動係数といった指標が計算されるわけではなく、より計算量の少ない指標が利用されるものとする。
【0078】
例えば、計算部105は、分布dにおける閾値以上又は以下の出力値の割合に基づいて、推定値を計算する。本実施形態では、ユーザが閾値を指定する場合を例に挙げるが、閾値は、後述の変形例のように、データ分析モデルMの学習データD3を利用して決定されてもよい。また、閾値は、ユーザが指定するのではなく、モータ制御装置10を製造したメーカーが指定した値であってもよい。閾値は、データ記憶部100に予め記憶されているものとする。
【0079】
本実施形態では、計算部105は、分布dを参照し、閾値以上の出力値の頻度を合計した第1合計頻度を計算する。計算部105は、分布dにおける全ての出力値の頻度を合計した第2合計頻度を計算する。第2合計頻度は、単位現象データD2をデータ分析モデルMに入力した合計回数である。例えば、計算部105は、第1合計頻度を第2合計頻度で割ることによって、分布dにおける閾値以上の出力値の割合を計算する。
【0080】
図3の例であれば、分布dxは、全体の70%が閾値以上の出力値である。分布dyは、全体の60%が閾値以上の出力値である。本実施形態では、計算部105は、上記のようにして計算された割合を、そのまま推定値として取得する場合を説明するが、計算部105は、当該計算された割合を、所定の計算式に代入することによって、最終的な推定値を計算してもよい。他にも例えば、計算部105は、第1合計頻度を、そのまま最終的な推定値として取得してもよい。
【0081】
なお、出力値と、異常現象の度合いと、の関係が本実施形態とは逆の関係である場合(出力値が低いほど、異常現象の度合いが高い場合)には、計算部105は、分布dを参照し、閾値以下の出力値の頻度を合計することによって、第1合計頻度を計算してもよい。計算部105は、第1合計頻度を、第2合計頻度で割ることによって、分布dにおける閾値以下の出力値の割合を計算してもよい。
【0082】
[異常要因推定部]
異常要因推定部106は、異常要因の推定プログラムと、異常現象の推定値と、に基づいて、異常要因を推定する。異常現象の推定値と、異常要因と、の関係は、予めデータ記憶部100に記憶されているものとする。例えば、異常要因推定部106は、異常要因の推定プログラムを実行し、異常現象の推定値に関連付けられた異常要因を推定する。異常要因推定部106は、推定した異常要因を示すデータを、データ記憶部100に記録する。このデータは、ユーザ装置40に送信される。
【0083】
[3-2.ユーザ装置の機能]
例えば、ユーザ装置40は、データ記憶部400、学習部401、及び表示制御部402を含む。データ記憶部400は、記憶部42を主として実現される。学習部401及び表示制御部402は、CPU41を主として実現される。
【0084】
[データ記憶部]
データ記憶部400は、データ分析モデルMの学習に必要なデータを記憶する。例えば、データ記憶部400は、エンジニアリングツールを記憶する。エンジニアリングツールは、ユーザによる作業を支援するためのプログラムである。エンジニアリングツールでは、モータ制御装置10に実行させる動作プログラムの作成、モータ制御装置10に記録するパラメータの設定、又はデータ分析モデルMによる分析結果に関する画面の表示が可能である。
【0085】
例えば、データ記憶部400は、学習前のデータ分析モデルMと、データ分析モデルMの学習データD3と、を記憶する。学習前のデータ分析モデルMは、パラメータが初期値のデータ分析モデルMである。学習データD3には、データ分析モデルMに実際に入力される入力データと同じ形式のデータと、当該データが入力された場合にデータ分析モデルMから出力されるべき正解となるデータと、のペアが含まれる。
【0086】
本実施形態では、学習データD3には、特定の異常現象が発生した場合の単位現象データD2と同じ形式のデータと、異常現象が発生したことを示すデータと、のペアが含まれる。例えば、ユーザは、機構20又は動作パラメータをわざと異常状態にすることによって、学習データD3を作成する。学習データD3は、わざと異常現象を発生させた時の制御データD1ということもできる。データ記憶部400は、異常現象ごとに、学習データD3を記憶する。
【0087】
なお、学習データD3の作成方法は、上記の例に限られない。例えば、わざと異常現象を発生させるのではなく、偶然異常現象が発生した場合の制御データD1が、学習データD3として取得されてもよい。他にも例えば、実際に異常現象を発生させるのではなく、シミュレータ上で異常現象が発生させた場合に収集されたシミュレータ上の制御データD1に基づいて、学習データD3が取得されてもよい。
【0088】
[学習部]
図6は、データ分析モデルMの学習方法の一例を示す図である。図6のように、学習部401は、学習データD3に基づいて、データ分析モデルMの学習を実行する。例えば、学習部401は、図3と同様にして、学習データD3から単位現象a,bを特定し、単位現象データD2a,D2bを作成する。これらの一連の流れは、単位現象の特定プログラムにより実行される。データ記憶部400には、単位現象の特定プログラムが記憶されているものとする。学習部401は、学習データD3から作成した単位現象データD2a,D2bに基づいて、データ分析モデルMx,Myの学習を実行する。
【0089】
データ分析モデルMx,Myの学習方法自体は、機械学習で利用されている種々の方法を利用可能である。例えば、学習部401は、変分推論法などの近似推論手法又は、勾配降下法又は誤差逆伝播法を利用して、データ分析モデルMの学習を実行する。学習部401は、学習データD3から作成した単位現象データD2a,D2bが入力された場合に、データ分析モデルMx,Myから異常現象が発生したことを示す出力値が出力されるように、データ分析モデルMx,Myのパラメータを調整する。学習部401は、学習済みのデータ分析モデルMx,Myをデータ記憶部100に記録する。
【0090】
なお、学習データD3は、異常現象が発生した場合のデータではなくてもよい。学習データD3は、正常な状態を示すデータであってもよい。この場合、学習部401は、正常な状態を示す学習データD3に基づいて作成された単位現象データD2が入力された場合に、データ分析モデルMから異常現象が発生していないことを示す出力値が出力されるように、データ分析モデルMのパラメータを調整すればよい。正常時の状態を示す学習データD3と、異常時の状態を示す学習データD3と、がデータ分析モデルMの学習で利用されてもよい。
【0091】
[表示制御部]
図7は、表示制御部402により表示される分析結果画面の一例を示す図である。例えば、表示制御部402は、エンジニアリングツールに基づいて、データ分析モデルMによる分析結果を示す分析結果画面Gを、表示部45に表示させる。例えば、表示制御部402は、単位現象に関する情報、異常現象に関する情報、及び異常要因に関する情報を示す分析結果画面Gを表示させる。分析結果画面Gには、これらの情報のうちの一部だけが表示されてもよい。
【0092】
[4.データ分析システムで実行される処理]
図8は、データ分析システム1で実行される処理の一例を示すフロー図である。図8の処理は、CPU11,41がそれぞれ記憶部12,42に記憶されたプログラムに基づいて動作することによって実行される。
【0093】
図8のように、ユーザ装置40は、エンジニアリングツールを起動し、学習データD3に基づいて、データ分析モデルMの学習を実行する(S1)。ユーザ装置40は、モータ制御装置10に対し、学習済みのデータ分析モデルMを送信する(S2)。モータ制御装置10は、学習済みのデータ分析モデルMを、記憶部12に記録する(S3)。モータ制御装置10は、ユーザ装置40から、単位現象の特定プログラム等のデータも受信して記憶部12に記録しているものとする。
【0094】
モータ制御装置10は、記憶部12に記憶された動作プログラム及び動作パラメータに基づいて、機構20を制御する(S4)。モータ制御装置10は、センサ30の検出信号等に基づいて、最新の制御データD1を取得する(S5)。モータ制御装置10は、S6で取得した制御データD1に基づいて、何らかの異常が発生したか否かを判定する(S6)。何らかの異常が発生したと判定されない場合(S6;N)、S4の処理に戻り、機構20の制御が継続される。
【0095】
何らかの異常が発生したと判定された場合(S6;Y)、モータ制御装置10は、最新の制御データD1と、単位現象の特定プログラムと、に基づいて、単位現象を特定し、データ分析モデルMに対し、単位現象データD2を複数回繰り返し入力する(S7)。モータ制御装置10は、S7においてデータ分析モデルMから出力された出力値を集計して分布dを作成する(S8)。
【0096】
モータ制御装置10は、S8で作成した分布dと、推定値の計算プログラムと、に基づいて、閾値以上の出力値の割合を計算することによって、異常現象の推定値を計算する(S9)。モータ制御装置10は、推定値に応じた異様要因を推定する(S10)。モータ制御装置10は、ユーザ装置40に対し、異常現象の推定値等のデータを送信する(S11)。ユーザ装置40は、データを受信すると記憶部42に記録し、分析結果画面Gを表示部45に表示させ(S12)、本処理は終了する。
【0097】
本実施形態のデータ分析システム1は、データ分析モデルMに対し、制御データD1を複数回繰り返し入力する。データ分析システム1は、複数回それぞれでデータ分析モデルMから出力された複数の出力値の分布dに基づいて、異常現象の推定値を計算する。これにより、単純にパラメータとして確率分布を有するモデルからの出力値を推定値とする場合に比べて、データ分析モデルMに複数回入力して学習過程で確率分布に含まれた分析結果の不確実性を反映した出力値を得ることができる。したがって、データ分析モデルMの分析の不確実性を推定値に反映できるので、データ分析の精度が高まる。
【0098】
また、データ分析システム1は、分布dがばらつくほど異常現象の度合いが小さくなるように、推定値を計算する。データ分析モデルMの推定結果の確実性が低い場合、出力値の平均値又は中央値が大きくても、分布dがばらつく。データ分析システム1は、そのような分布dのばらつきを、推定値に含めることができるため、データ分析の精度が高まる。
【0099】
また、データ分析システム1は、データ分析モデルMに対し、入力データとして、制御データD1を複数回繰り返し入力し、特定の状態として、特定の異常現象の発生度合いを示す推定値を計算する。モータ制御の制御データD1と、機構系の異常状態と、の相関関係には不確実性が存在しており、そのような不確実性が上手く加味できないことが異常推定の難しさを招いていたが、データ分析システム1であれば、そのような不確実性を精度良く取り込んで推定値に反映させることができる。したがって、分析精度や信頼性を向上させることができる。
【0100】
また、データ分析システム1は、相異なる異常現象が発生しているか否かを表す出力値をそれぞれ出力する複数のデータ分析モデルMと、複数のデータ分析モデルMそれぞれに制御データD1を複数回繰り返して入力して複数の出力値それぞれの分布dに基づいて、相異なる異常現象の発生度合いを示す推定値をそれぞれ計算する複数の計算部105を有する。モータ制御において機構で発生しえる異常現象は複数種類ありえ、かつそれらが排他的に現れるだけでなく、複合的に現れることもある。そのような異常現象を、推定値として不確実性を加味しつつ表すことができるため、より現実に起きている異常現象を特定できる可能性を向上させることができる。
【0101】
また、データ分析システム1は、制御データD1に基づいて、機構20に発生した単位現象を特定し、データ分析モデルMに対し、単位現象に関する単位現象データD2を、複数回繰り返し入力する。モータ制御の制御データD1と、機構系の単位現象と、の相関関係の不確実性は、異常状態ほどは不確実ではないことが多い。このため、ある程度精度よく特定できる単位現象を、制御データD1に基づいて特定する。そのうえで、データ分析モデルMに対し、単位現象データD2を複数回繰り返し入力することによって、分析精度や信頼性を、より向上させることができる。
【0102】
また、データ分析システム1は、分布dにおける閾値以上又は以下の出力値の割合に基づいて、推定値を計算する。標準偏差等の指標を計算する必要がないので、推定値の計算を高速化できる。全く同じ分布dだったとしても閾値の決め方に応じて推定値が変わるので、分析対象に応じた閾値を決めることによって、柔軟なデータ分析が可能になる。
【0103】
[5.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0104】
図9は、変形例における機能ブロックの一例を示す図である。学習データ入力部403及び閾値決定部404は、CPU11により実現される。
【0105】
[変形例1]
例えば、実施形態では、ユーザが閾値を指定する場合を説明したが、閾値は、学習済みのデータ分析モデルMと、学習で利用した学習データD3と、に基づいて決定されるようにしてもよい。変形例1のデータ分析システム1は、学習データ入力部403及び閾値決定部404を含む。
【0106】
学習データ入力部403は、学習済みのデータ分析モデルMに対し、学習データD3を複数回繰り返し入力する。学習データ入力部403は、学習済みのデータ分析モデルMに対し、同じ学習データD3を何度も入力する。変形例1では、学習データ入力部403が、学習済みのデータ分析モデルMに対し、複数の学習データD3それぞれを複数回繰り返し入力する場合を説明するが、学習データ入力部403は、学習済みのデータ分析モデルMに対し、1つの学習データD3だけを、複数回繰り返し入力してもよい。即ち、閾値を決定するために利用される学習データD3は、複数個ではなく、1つだけでもよい。
【0107】
例えば、学習データD3の数をn(nは2以上の整数)個として、個々の学習データD3がデータ分析モデルMにm(mは2以上の整数)回入力されるものとする。この場合、学習済みのデータ分析モデルMに対する入力としては、トータルでn×m回の入力が発生する。実施形態で説明したように、ベイジアンニューラルネットワークを利用したデータ分析モデルMは、パラメータが確率的に変化するので、同じ学習データD3を入力したとしても、データ分析モデルMから出力される出力値も、毎回同じではなく変化しうる。データ分析モデルMからの出力値として、n×m個の出力値が取得される。
【0108】
図10は、変形例1における閾値の決定方法の一例を示す図である。閾値決定部404は、複数回それぞれで学習済みのデータ分析モデルMから出力された複数の出力値の分布dに基づいて、閾値を決定する。変形例1では、学習済みのデータ分析モデルMに対し、複数の学習データD3が複数回繰り返し入力されるので、学習データD3ごとに、図10の分布dが取得される。例えば、学習データD3の数をn個とすると、n個の分布dが取得される。個々の学習データD3がデータ分析モデルMにm回入力されるとすると、個々の分布dにおける出力値の頻度の合計値は、mになる。
【0109】
例えば、閾値決定部404は、学習データD3ごとに、当該学習データD3から得られた分布dに基づいて、閾値の候補を計算し、最大の候補を、閾値として決定する。候補は、最終的な閾値を決定するための仮の閾値である。候補は、任意の計算式で計算可能である。例えば、閾値決定部404は、出力値の平均値μから、標準偏差σに所定の係数(例えば、2)を乗じた数値を減算した数値を、候補として計算する。閾値決定部404は、n個の学習データD3にそれぞれ対応するn個の候補の中から、最大の候補を、最終的な閾値として決定する。
【0110】
なお、閾値の決定方法は、上記の例に限られない。例えば、閾値決定部404は、平均値μから、2以外の係数を標準偏差σに乗じた数値を減算した数値を、候補として計算してもよい。例えば、閾値決定部404は、平均値μ及び標準偏差σの両方とも利用するのではなく、平均値μ又は標準偏差σの何れか一方だけを利用して候補を計算してもよい。例えば、閾値決定部404は、平均値μではなく、最頻値に基づいて候補を計算してもよい。
【0111】
例えば、閾値決定部404は、複数の候補のうちの最大の候補ではなく、2番目以降の候補を、最終的な閾値として決定してもよい。閾値決定部404は、複数の候補のうちの最小の候補を、最終的な閾値として決定してもよい。閾値決定部404は、複数の候補の平均値を、最終的な候補として決定してもよい。閾値決定部404は、複数の候補に基づいて、何らかの形で最終的な閾値を決定すればよい。閾値決定部404が決定した閾値は、モータ制御装置10のデータ記憶部100に書き込まれる。
【0112】
変形例1のデータ分析システム1は、学習済みのデータ分析モデルMに対し、学習データD3を複数回繰り返し入力し、複数回それぞれで学習済みのデータ分析モデルMから出力された複数の出力値の分布dに基づいて、閾値を決定する。これにより、学習データD3から得られた分布dの傾向に応じた最適な閾値を決定できる。例えば、学習データD3から得られた分布dにおける出力値が全体的に低いにも関わらず高めの閾値を設定してしまうと、異常現象が発生したと推定されにくくなってしまうが、学習データD3から得られた分布dの傾向に応じた閾値とすることで、このような状況を防止して最適なデータ分析が可能になる。逆に、学習データD3から得られた分布dにおける出力値が全体的に高いにも関わらず低めの閾値を設定してしまうと、どんな状態でも異常現象が発生したと推定される可能性があるが、学習データD3から得られた分布dの傾向に応じた閾値とすることで、このような状況を防止して最適なデータ分析が可能になる。
【0113】
また、データ分析システム1は、学習済みのデータ分析モデルMに対し、複数の学習データD3それぞれを複数回繰り返し入力し、学習データD3ごとに、当該学習データD3から得られた分布dに基づいて、閾値の候補を計算し、最大の候補を、閾値として決定する。これにより、学習データD3ごとに計算した閾値の候補のうちの最大の候補を、閾値として決定することにより、異常等の状態とみなす基準が甘くなりすぎるのを防止できる。例えば、本当は異常ではない現象が異常と判定されるといったことを防止できる。
【0114】
[変形例2]
例えば、実施形態では、計算部105が、閾値以上又は以下となる出力値の割合を、推定値として計算する場合を説明したが、計算部105は、分布dにおける所定の範囲の出力値の割合に基づいて、推定値を計算してもよい。所定の範囲は、第1閾値以上であり、かつ、第2閾値以下となる範囲である。第2閾値は、第1閾値よりも高いものとする。第1閾値及び第2閾値は、実施形態のようにユーザが指定してもよいし、モータ制御装置10のメーカーが指定した値であってもよい。
【0115】
他にも例えば、第1閾値及び第2閾値は、変形例1と同様に決定されてもよい。この場合、図10で説明した複数の候補のうちの最小値が第1閾値になり、複数の候補のうちの最大値が第2閾値になってもよい。他にも例えば、複数の候補のうちの最小値ではなく、2番目以降に小さい候補が第1閾値になってもよい。複数の候補のうちの最大値ではなく、2番目以降に大きい候補が第2閾値になってもよい。変形例2の計算部105は、実施形態と同様にして取得された分布dのうち、所定の範囲の出力値の頻度の合計値を、第1合計頻度として計算する。第1合計頻度を計算した後の計算部105の処理は、実施形態と同様である。
【0116】
変形例2のデータ分析システム1は、分布dにおける所定の範囲の出力値の割合に基づいて、推定値を計算する。標準偏差等の指標を計算する必要がないので、推定値の計算を高速化できる。全く同じ分布dだったとしても範囲の決め方に応じて推定値が変わるので、分析対象に応じた範囲を決めることによって、柔軟なデータ分析が可能になる。例えば、データ分析モデルMがクラスに応じた値を出力するモデルだった場合には、特定の異常現象を切り出すように所定の範囲を設定すれば、データ分析モデルMの出力値の分布dから、特定の異常現象を切り出すことができる。
【0117】
[変形例3]
例えば、実施形態では、計算部105が閾値を利用して推定値を計算する場合を説明したが、計算部105は、分布dのばらつきに関する指標と出力値の平均値μとを計算し、指標及び平均値に基づいて、推定値を計算してもよい。この指標は、分布dのばらつき具合を表現可能な指標である。変形例3では、この指標の一例として標準偏差σを説明するが、この指標自体は、種々の指標を利用可能である。例えば、この指標は、分散であってもよい。なお、平均値μは、出力値に頻度を乗じた数値を、全ての頻度でわることによって算出されるようにすればよい。
【0118】
例えば、計算部105は、平均値μと、所定の数値(例えば、1)から標準偏差σを引いた数値と、を乗じた数値を、推定値として計算してもよい。計算部105は、予め定められた計算式に基づいて、推定値を計算すればよい。この計算式には、平均値μと標準偏差σとが入力されるものとする。例えば、計算部105は、平均値μと、1以外の数値から標準偏差σを引いた数値と、を乗じた数値を、推定値として計算してもよい。例えば、計算部105は、平均値μと、所定の数値から標準偏差σを引いた数値と、の少なくとも一方に所定の係数を乗じてもよい。
【0119】
変形例3のデータ分析システム1は、分布dのばらつきに関する指標と出力値の平均値とを計算し、指標及び平均値に基づいて、推定値を計算する。分布dのばらつきに関する指標を計算することによって、分布dのばらつきをより正確に反映した推定値を計算できる。更に、指標だけではなく、分布d全体の出力値の傾向が反映された平均値を利用して、より精度の高い推定値を計算できる。
【0120】
[その他の変形例]
例えば、変形例1~3を組み合わせてもよい。
【0121】
例えば、計算部105は、実施形態で説明した閾値を利用した計算方法と、変形例3で説明した計算方法と、の何れとも異なる他の計算方法に基づいて、推定値を計算してもよい。他の計算方法としては、分布dを何らかの形で利用するものであればよい。例えば、計算部105は、分布dにおける出力値の平均値μを、そのまま推定値として計算してもよい。この場合、推定値は、分布dのばらつき具合には関係のない値となる。例えば、計算部105は、分布dにおける出力値の平均値μではなく、最頻値を、そのまま推定値として計算してもよい。
【0122】
例えば、各機能は、データ分析システム1における任意の装置で実現されるようにすればよい。モータ制御装置10で実現されるものとして説明した機能の一部又は全部は、ユーザ装置40又は他の装置で実現されてもよい。実施形態では、モータ制御装置10がデータ分析を実行する場合を説明したが、データ分析の機能は、ユーザ装置40で実現されてもよいし、モータ制御装置10を制御するコントローラで実現されてもよい。この場合、入力部104及び計算部105は、ユーザ装置40に含まれる。入力部104及び計算部105は、モータ制御装置10及びユーザ装置40以外の他の装置によって実現されてもよい。
【符号の説明】
【0123】
1 データ分析システム、10 モータ制御装置、11,41 CPU、12,42 記憶部、13,43 通信部、20 機構、30 センサ、40 ユーザ装置、44 操作部、45 表示部、100 データ記憶部、101 機構制御部、102 取得部、103 異常判定部、104 入力部、105 計算部、106 異常要因推定部、400 データ記憶部、401 学習部、402 表示制御部、403 学習データ入力部、404 閾値決定部、G 分析結果画面、M データ分析モデル、D1 制御データ、D2 単位現象データ、D3 学習データ、d 分布。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10