(57)【要約】【課題】モータのエラー量を容易に最小化できる機械学習装置及び方法並びに該機械学習装置を備えたモータ制御装置を実現する。【解決手段】モータ制御装置における指令に対する補正量に関連付けられる条件を学習する機械学習装置１は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令及び電流指令のうちいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する状態観測部１１と、状態変数によって構成される訓練データセットに従って、上記指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習部１２とを備える。【選択図】図１
2017102613.tif 000002
【特許請求の範囲】
【請求項１】
モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習装置であって、
前記モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、前記モータ制御装置の動作プログラムと、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、前記モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、前記モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する状態観測部と、
前記状態変数によって構成される訓練データセットに従って、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習部と、
を備えることを特徴とする機械学習装置。
【請求項２】
前記工作機械の状態は、前記工作機械の温度、前記工作機械の振動のうちの少なくとも１つを含む請求項１に記載の機械学習装置。
【請求項３】
前記学習部は、
前記エラー量に基づいて報酬を計算する報酬計算部と、
前記状態変数および前記報酬に基づいて、前記補正量を計算するための関数を更新する関数更新部と、
を備える請求項１または２に記載の機械学習装置。
【請求項４】
前記報酬計算部は、前記エラー量が、現在の前記エラー量よりも前に前記状態観測部により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らす請求項３に記載の機械学習装置。
【請求項５】
前記報酬計算部は、前記エラー量が、規定範囲内であるときは報酬を増やし、前記規定範囲外であるときは報酬を減らす請求項３に記載の機械学習装置。
【請求項６】
前記関数更新部は、前記状態変数および前記報酬に基づいて、ニューラルネットワークモデルに従って、前記補正量を計算するための関数を更新する請求項３〜５のいずれか一項に記載の機械学習装置。
【請求項７】
前記学習部は、
前記エラー量に基づいて誤差を計算する誤差計算部と、
前記状態変数および前記誤差に基づいて、前記補正量を計算するための学習モデルを更新する学習モデル更新部と、
を備える請求項１または２に記載の機械学習装置。
【請求項８】
前記学習部は、複数のモータ制御装置に対して取得される前記訓練データセットに従って、前記条件を学習するように構成される請求項１〜７のいずれか一項に記載の機械学習装置。
【請求項９】
請求項１〜８のいずれか一項に記載の機械学習装置を備えた、モータ制御装置であって、
前記学習部が前記訓練データセットに従って学習した結果に基づいて、現在の前記状態変数の入力に応答して、前記補正量を決定する意思決定部と、
前記意思決定部が決定した補正量を用いて、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正する補正部と、
前記補正部により補正された前記指令に基づいて、モータへ駆動電力を供給するモータ電力供給部と、
送り機構部の実位置を検出する位置検出部と、
ロータに対する位置指令と前記実位置との誤差である前記エラー量を測定するエラー量測定部と、
をさらに備えることを特徴とするモータ制御装置。
【請求項１０】
モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習方法であって、
前記モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、前記モータ制御装置の動作プログラムと、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、前記モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、前記モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する状態観測ステップと、
前記状態変数によって構成される訓練データセットに従って、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習ステップと、
を備えることを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの制御に用いられる位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習装置および方法ならびに該機械学習装置を備えたモータ制御装置に関する。
【背景技術】
【０００２】
工作機械などの機械の送り軸の送りの滑らかさは、モータのロータに対する位置指令と、送り軸を動作させるためのモータとこれに付随する各種器具とからなる送り機構部の実位置と、の誤差であるエラー量によって定量的に捉えることができ、例えば機械の送り軸の送りの滑らかさが悪化するほどエラー量は大きくなる。ここで、送り機構部の実位置には、フルクローズ制御が適用される場合において外部センサ（リニアスケール）によって取得される加工部の実位置、および、セミクローズ制御が適用される場合においてモータに設けられたパルスエンコーダによって取得されるロータの実位置が含まれる。
【０００３】
機械の送り軸の送りの滑らかさの悪化要因には様々なものがある。例えば、ロータに発生するコギングトルクやモータのロータ回転方向による違いといったモータ起因のもの、モータの制御に用いられる動作プラグラムやトルク指令の大きさとったモータ制御装置起因のものなどがある。またあるいは、モータを駆動源とする工作機械におけるワーク加工条件、工作機械による加工時における切削負荷の大きさ、工作機械の温度、複数の駆動軸を有する工作機械において各駆動軸が動作することで発生する振動なども、機械の送り軸の送りの滑らかさの悪化の要因となる。
【０００４】
例えば、トルクリップルはモータの電気角の各一回転に対して一回発生することから、トルクリップルに起因する送りの滑らかさの悪化は周期性のあるものとなる。
【０００５】
従来より、トルクリップル起因の周期性のある送りの滑らかさの悪化については、トルクリップルに対して逆位相の補正量を予め補償することによって低減することが行われている。図１１は、トルクリップルに対する逆位相の補正量による補償を説明する図である。図１１において、ロータに発生するトルクリップルを実線で示し、トルクリップル補正量を点線で示し、トルクリップルに対するトルクリップル補正量による補償後の波形を一点鎖線で示す。ロータに発生するトルクリップルに対し、逆位相のトルクリップル補正量を予めトルク指令に重畳することによりトルクリップルを除去することができ、これにより送りの滑らかさの悪化を低減することができる。
【０００６】
また例えば、トルクリップルにより発生する送りの滑らかさの悪化を低減するために、速度ループ補正器を備えた速度ループ中において、トルク変化相当分を補償することでトルクコマンドを補正するものがある（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−２８４２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、トルクリップルに起因する送りの滑らかさの悪化は周期性があるので、送りの滑らかさの悪化を低減するための、トルクリップルに対して逆位相となるような補正量の生成は容易である。しかしながら、モータを駆動源とする工作機械におけるワーク加工条件、該工作機械による加工時における切削負荷の大きさ、工作機械の温度、複数の駆動軸を有する工作機械において各駆動軸が動作することで発生する振動などに起因する送りの滑らかさの悪化は、ある程度の再現性はあるものの、周期性はない。図１２は、周期性のないエラー量を例示する図である。周期性のないエラー量については、トルクリップルに起因するエラー量のような逆位相の補正量では補正することはできない。
【０００９】
従って本発明の目的は、上記問題に鑑み、モータに対するロータ位置指令と送り機構部の実位置との誤差であるエラー量を容易に最小化することができる機械学習装置および方法ならびに該機械学習装置を備えたモータ制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を実現するために、本発明によれば、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習装置は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する状態観測部と、状態変数によって構成される訓練データセットに従って、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習部と、を備える。
【００１１】
ここで、工作機械の状態には、工作機械の温度、工作機械の振動のうちの少なくとも１つを含んでもよい。
【００１２】
また、学習部は、エラー量に基づいて報酬を計算する報酬計算部と、状態変数および報酬に基づいて、補正量を計算するための関数を更新する関数更新部と、を備えてもよい。
【００１３】
また、報酬計算部は、エラー量が、現在のエラー量よりも前に状態観測部により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らすようにしてもよい。
【００１４】
また、報酬計算部は、エラー量が、規定範囲内であるときは報酬を増やし、規定範囲外であるときは報酬を減らすようにしてもよい。
【００１５】
また、関数更新部は、状態変数および報酬に基づいて、ニューラルネットワークモデルに従って、補正量を計算するための関数を更新するようにしてもよい。
【００１６】
また、学習部は、複数のモータ制御装置に対して取得される訓練データセットに従って、上記条件を学習するように構成されてもよい。
【００１７】
また、学習部は、エラー量に基づいて誤差を計算する誤差計算部と、状態変数および上記誤差に基づいて、補正量を計算するための学習モデルを更新する学習モデル更新部と、を備えてもよい。
【００１８】
また、上述の機械学習装置を備えたモータ制御装置は、学習部が訓練データセットに従って学習した結果に基づいて、現在の状態変数の入力に応答して、補正量を決定する意思決定部と、意思決定部が決定した補正量を用いて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正する補正部と、補正部により補正された指令に基づいて、モータへ駆動電力を供給するモータ電力供給部と、モータのロータの実位置を検出する位置検出部と、ロータに対する位置指令と送り機構部の実位置との誤差であるエラー量を測定するエラー量測定部と、をさらに備える。
【００１９】
また、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習方法は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する状態観測ステップと、状態変数によって構成される訓練データセットに従って、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習ステップと、を備える。
【発明の効果】
【００２０】
本発明によれば、モータに対するロータ位置指令と送り機構部の実位置との誤差であるエラー量を容易に最小化することができる機械学習装置および方法ならびに該機械学習装置を備えたモータ制御装置を実現することができる。
【００２１】
本発明によれば、モータ制御装置が動作している状態において、モータを駆動源とする工作機械におけるワーク加工条件、該工作機械による加工時における切削負荷の大きさ、工作機械の温度、複数の駆動軸を有する工作機械において各駆動軸が動作することで発生する振動などに合わせて、機械学習装置がロータ位置指令とロータ実位置との誤差であるエラー量を最小化する指令に対する補正量を自ら学習して調整していくので、周囲環境が変動しても各補正量をリアルタイムに変更することができ、エラー量を的確に最小化することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施例による機械学習装置の原理ブロック図である。
【図２】モータ制御装置内の駆動指令生成部の構成を概略的に示すブロック図である。
【図３】本発明の実施例による機械学習方法の動作フローを示すフローチャートである。
【図４】本発明の実施例による、強化学習を適用した機械学習装置の原理ブロック図である。
【図５】本発明の実施例による、強化学習を適用した機械学習方法の動作フローを示すフローチャートである。
【図６】本発明の実施例による、強化学習を適用した機械学習装置を備えるモータ制御装置を示す原理ブロック図である。
【図７】本発明の実施例による、強化学習を適用した機械学習装置を備えるモータ制御装置の動作フローを示すフローチャートである。
【図８】ニューロンのモデルを示す模式図である。
【図９】Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【図１０】本発明の実施例による、教師あり学習を適用した機械学習装置を備えるモータ制御装置を示す原理ブロック図である。
【図１１】トルクリップルに対する逆位相の補正量による補償を説明する図である。
【図１２】周期性のないエラー量を例示する図である。
【発明を実施するための形態】
【００２３】
図１は、本発明の実施例による機械学習装置の原理ブロック図である。以降、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。
【００２４】
本発明の実施例による機械学習装置１は、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量を学習するものとして構成される。
【００２５】
機械学習装置１は、状態観測部１１と学習部１２とを備える。
【００２６】
状態観測部１１は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する。ここで、送り機構部は、送り軸を動作させるためのモータとこれに付随する各種器具とからなる。送り機構部の実位置には、フルクローズ制御が適用される場合において外部センサ（リニアスケール）によって取得される加工部の実位置、および、セミクローズ制御が適用される場合においてモータに設けられたパルスエンコーダによって取得されるロータの実位置が含まれる。
【００２７】
状態観測部１１によって状態変数として観測されるロータの位置指令と送り機構部の誤差であるエラー量に関するデータは、モータ制御装置に格納された動作プログラムの内部データとして利用されるものであり、モータ制御装置から取得されるものである。モータ制御装置の動作プログラム、ならびにモータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令も、モータ制御装置から取得される。また、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータは、工作機械から取得される。ここで、工作機械の状態は、工作機械の温度、工作機械の振動のうちの少なくとも１つを含む。工作機械の温度に関するデータは、工作機械内の任意の箇所に設けられた温度センサから取得される。工作機械の振動に関するデータは、工作機械内の任意の箇所に設けられた振動センサから取得される。
【００２８】
学習部１２は、状態変数によって構成される訓練データセットに従って、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する。なお、訓練データセットを、複数のモータ制御装置の場合について取得してもよく、この場合、学習部１２は、複数のモータ制御装置に対して作成される訓練データセットに従って、エラー量を最小化する補正量を学習する。なお、学習部１２は、当該学習部１２が備えられる機械学習装置１とは異なる機械学習装置内の学習部が学習した結果に基づいて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を学習するようにしてもよい。
【００２９】
ここで、モータ制御装置における位置指令、速度指令および電流指令について図２を参照して説明する。図２は、モータ制御装置内の駆動指令生成部の構成を概略的に示すブロック図である。
【００３０】
工作機械の駆動源として用いられる交流モータを駆動するための駆動電力を供給する逆変換器を制御する駆動指令を生成する駆動指令生成部５０は、位置制御ループ、速度制御ループおよび電流制御ループから構成される。位置制御ループにおいては、三相交流モータ３００に取り付けられた位置検出部１６により検出された三相交流モータ３００のロータ実位置に関する情報（位置フィードバック値）と位置指令作成部（図示せず）で作成された位置指令とに基づいて、速度指令作成部２１３により速度指令を作成する。速度制御ループにおいては、三相交流モータ３００に取り付けられた速度検出部１８により検出された三相交流モータ３００のロータ速度に関する情報（速度フィードバック値）と速度指令作成部２１３により作成された速度指令とに基づいて、電流指令作成部２１２により電流指令を作成する。電流制御ループにおいては、電流検出部１９により検出されたモータ電力制御部１５内の逆変換器から三相交流モータ３００へ流れ込む電流に関する情報（電流フィードバック値）と電流指令作成部２１２により作成された電流指令値とに基づいて、電流制御部２１１を用いてモータ電力制御部１５内の逆変換器を電力変換動作を制御するための駆動指令（例えばＰＷＭ制御信号）を作成する。モータ電力制御部１５内の逆変換器は、例えば内部に設けられたスイッチング素子のスイッチング動作により直流電力を交流電力に変換するモータ電力供給用のインバータであり、受信した駆動指令により、モータ電力制御部１５内の逆変換器内のスイッチング素子のスイッチング動作を制御することで直流電力を三相交流モータ３００の駆動用の交流電力に変換する変換動作を制御する。三相交流モータ３００は、モータ電力制御部１５内の逆変換器から出力された交流電力を駆動電力として動作するので、モータ電力制御部１５内の逆変換器から出力される交流電力を制御すれば、三相交流モータ３００の速度、トルク、もしくは回転子の位置を駆動制御することができる。三相交流モータ３００を駆動することで工作機械の可動部を駆動する。
【００３１】
このように、モータ制御装置における指令として、位置指令、速度指令および電流指令が存在する。学習部１２により学習される補正量は、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる。
【００３２】
図３は、本発明の実施例による機械学習方法の動作フローを示すフローチャートである。モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習方法は、状態観測ステップＳ１０１と、学習ステップＳ１０２とを備える。
【００３３】
状態観測ステップＳ１０１は、状態観測部１１により実行されるものであり、すなわち、モータ制御装置により駆動制御されるモータのロータに対する位置指令とロータの実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する。
【００３４】
学習ステップＳ１０２は、学習部１２によって実行されるものであり、すなわち、状態変数によって構成される訓練データセットに従って、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する。
【００３５】
学習部１２が用いる学習アルゴリズムはどのようなものを用いてもよい。機械学習装置１は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。その手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習（ディープラーニング：Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）」と呼ばれる手法がある。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ ｃｏｍｐｕｔｉｎｇ ｏｎ Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔｓ）や大規模ＰＣクラスター等を適用することにより実現される。
【００３６】
以下、一例として、強化学習を用いた場合について図４および図５を参照して説明する。「教師あり学習」、「教師なし学習」等については、後述する。
【００３７】
図４は、本発明の実施例による、強化学習を適用した機械学習装置の原理ブロック図である。学習部１２は、報酬計算部２１と関数更新部２２とを備える。なお、報酬計算部２１および関数更新部２２以外の構成要素については図１に示す構成要素と同様であるので、同一の構成要素には同一符号を付して当該構成要素についての詳細な説明は省略する。
【００３８】
報酬計算部２１は、モータ制御装置により駆動制御されるモータのロータに対する位置指令とロータの実位置との誤差であるエラー量に基づいて報酬を計算する。報酬計算部２１は、エラー量が小さいほど、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量が好影響を及ぼしていると捉えて、高報酬を与える。例えば、報酬計算部２１は、状態観測部１１によって観測されたエラー量が、現在のエラー量よりも前に状態観測部１１により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らすようにすればよい。また例えば、報酬計算部２１は、状態観測部１１によって観測されたエラー量が、規定範囲内であるときは報酬を増やし、規定範囲外であるときは報酬を減らすようにしてもよい。ここで、規定範囲については、作業者が、モータや工作機械の製造コストや使用環境など種々の要因を考慮して適宜設定すればよい。
【００３９】
関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数（行動価値テーブル）を更新する。
【００４０】
学習部１２が、状態観測部１１で観測された状態変数を多層構造で演算し、関数（行動価値テーブル）をリアルタイムで更新してもよい。例えば、関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、ニューラルネットワークモデルに従って、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数を更新するようにしてもよい。ここで、状態変数を多層構造で演算する方法として、例えば、後述する図９に示すような多層ニューラルネットワークを用いることができる。
【００４１】
図５は、本発明の実施例による、強化学習を適用した機械学習方法の動作フローを示すフローチャートである。
【００４２】
まず、状態観測ステップＳ１０１において、状態観測部１１は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、モータ制御装置の動作プログラムと、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、モータ制御装置を有する工作機械の状態に関するデータと、のうちの少なくとも１つから構成される状態変数を観測する。
【００４３】
次いで、報酬計算ステップＳ１０２−１において、報酬計算部２１は、モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に基づいて報酬を計算する。
【００４４】
次いで、関数更新ステップＳ１０２−２において、関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数（行動価値テーブル）を更新する。
【００４５】
続いて、上述の機械学習装置を備えるモータ制御装置について説明する。
【００４６】
図６は、本発明の実施例による、強化学習を適用した機械学習装置を備えるモータ制御装置を示す原理ブロック図である。ここでは、工作機械内にモータ制御装置１００が設けられ、工作機械の駆動軸の駆動源となる三相交流モータ３００を、モータ制御装置１００で制御する場合について説明する。
【００４７】
本発明の実施例によるモータ制御装置は、上述の機械学習装置１と、意思決定部１３と、補正部１４と、モータ電力供給部１５と、位置検出部１６と、エラー量測定部１７と、温度測定部３１と、振動測定部３２とを備える。なお、図６では、図２において示した速度検出部および電流検出部については図示を省略している。なお、上述のように送り機構部の実位置には、フルクローズ制御が適用される場合において外部センサ（リニアスケール）によって取得される加工部の実位置、および、セミクローズ制御が適用される場合においてモータに設けられたパルスエンコーダによって取得されるロータの実位置が含まれるが、図６では、送り機構部の実位置として、モータ３００に設けられた位置検出部１６（パルスコーダ）によって検出されるモータ３００のロータの実位置を用いている。
【００４８】
モータ電力供給部１５は、駆動指令生成部５０において生成された駆動指令に基づいて、モータ１０４へ駆動電力を供給する。モータ電力供給部１５は、例えば、交流電源側から供給された交流電力を直流電力に変換してＤＣリンクへ出力する整流器と、ＤＣリンクに接続され、ＤＣリンクにおける直流電力を交流電力に変換して三相交流モータ３００へ供給する逆変換器（インバータ）とからなる。用いられる整流器の実施形態は特に限定されず、例えばダイオード整流器、あるいはＰＷＭ制御方式の整流器などがある。また、逆変換器についても実施形態は特に限定されず、一般的には交直双方向に変換可能である電力変換器であり、例えばＰＷＭインバータがある。ＰＷＭインバータは、スイッチング素子およびこれに逆並列に接続されたダイオードのブリッジ回路からなり、駆動指令生成部５０において生成された駆動指令に基づいてスイッチング素子のスイッチング動作がＰＷＭ制御される。すなわち、モータ電力供給部１５内の逆変換器は、ＤＣリンク側から供給される直流電力を、駆動指令生成部５０から受信した駆動指令に基づき内部のスイッチング素子をスイッチング動作させ、三相交流モータ３００を駆動するための所望の電圧および所望の周波数の三相交流電力に変換する。これにより、三相交流モータ３００は、供給された電圧可変および周波数可変の三相交流電力に基づいて動作することになる。また、三相交流モータ３００の減速時には回生電力が発生するが、この場合は駆動指令生成部５０から受信した電動機駆動指令に基づき、三相交流モータ３００で発生した交流の回生電力を直流電力へ変換してＤＣリンクへ戻す。
【００４９】
位置検出部１６は、三相交流モータ３００のロータの実位置を検出するものであり、三相交流モータ３００に設けられたパルスコーダからなる。
【００５０】
エラー量測定部１７は、駆動指令生成部５０から取得された三相交流モータ３００のロータに対する位置指令と位置検出部１６により検出された実位置との誤差であるエラー量を測定する。エラー量測定部１７により測定されたエラー量に関するデータは機械学習装置１内の状態観測部１１に入力される。
【００５１】
温度測定部３１は、モータ制御装置１００が設けられる工作機械モータ内の任意の箇所に設置される温度センサであり、工作機械の温度を測定する。温度測定部３１は、工作機械内の複数の箇所に設置されて当該複数の箇所の温度を測定してもよい。温度測定部３１により測定された工作機械の温度に関するデータは機械学習装置１内の状態観測部１１に入力される。
【００５２】
振動測定部３２は、モータ制御装置１００が設けられる工作機械内の任意の箇所に設置される振動センサであり、工作機械内で発生する振動を測定する。振動測定部３２は、工作機械内の複数の箇所に設置されて当該複数の箇所の温度を測定してもよい。振動測定部３２により測定された工作機械の振動に関するデータは機械学習装置１内の状態観測部１１に入力される。
【００５３】
モータ制御装置１００内の機械学習装置１は、上述したように、状態観測部１１と学習部１２とを備える。
【００５４】
状態観測部１１は、エラー量測定部１７により測定されたエラー量に関するデータと、モータ制御装置１００の動作プログラムと、駆動指令生成部５０から取得したモータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置１００が設けられた工作機械におけるワーク加工条件に関するデータと、モータ制御装置１００が設けられた工作機械の状態に関するデータとから構成される状態変数を観測する。観測された状態変数は訓練データセットとして学習部１２における学習に用いられる。なお、ここでは、モータ制御装置１００が設けられた工作機械の状態に関するデータを、温度測定部３１により測定された工作機械の温度に関するデータ、および振動測定部３２により測定された工作機械の振動に関するデータとしたが、これら以外の工作機械の状態に関するデータを状態変数として用いてもよい。また、モータ制御装置１００の動作プログラムは、モータ制御装置１００の動作を統括制御する制御部（図示せず）から取得すればよい。また、モータ制御装置１００が設けられた工作機械におけるワーク加工条件に関するデータは、モータ制御装置１００の動作を統括制御する制御部（図示せず）から取得されてもよく、またあるいは作業者により入力装置（図示せず）を介して入力されてもよい。
【００５５】
学習部１２内の報酬計算部２１は、状態観測部１１によって観測されたエラー量に基づいて報酬を計算する。例えば、報酬計算部２１は、状態観測部１１によって観測されたエラー量が、現在のエラー量よりも前に状態観測部１１により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らす。また例えば、報酬計算部２１は、状態観測部１１によって観測されたエラー量が、規定範囲内であるときは報酬を増やし、規定範囲外であるときは報酬を減らす。
【００５６】
学習部１２内の関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数（行動価値テーブル）を更新する。
【００５７】
意思決定部１３は、学習部１２が訓練データセットに従って学習した結果に基づいて、現在の状態変数の入力に応答して、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を決定する。本実施例では、一例として学習アルゴリズムとして強化学習を用いているので、学習部１２内の報酬計算部２１によって算出された報酬に基づいて学習部１２内の関数更新部２２は、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数を更新し、意思決定部１３は、更新された関数に基づき、報酬が最も多く得られる補正量を選択する。
【００５８】
補正部１４は、意思決定部１３が決定した補正量を用いて、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正する。補正量により補正される指令は、位置指令、速度指令および電流指令のいずれでもあってもよい。
【００５９】
駆動指令生成部５０は、補正された指令（位置指令、速度指令および電流指令のいずれか）に基づいて、モータ電力供給部１５による三相交流モータ３００への電力供給を制御するための駆動指令を生成する。モータ制御装置１００内の駆動指令生成部５０の構成については、図２に示した通りである。すなわち、駆動指令生成部５０は、位置制御ループ、速度制御ループおよび電流制御ループから構成される。位置制御ループにおいては、三相交流モータ３００に取り付けられた位置検出部１６により検出された三相交流モータ３００のロータ実位置に関する情報（位置フィードバック値）と位置指令作成部（図示せず）で作成された位置指令とに基づいて、速度指令作成部２１３により速度指令を作成する。速度制御ループにおいては、三相交流モータ３００に取り付けられた速度検出部１８により検出された三相交流モータ３００のロータ速度に関する情報（速度フィードバック値）と速度指令作成部２１３により作成された速度指令とに基づいて、電流指令作成部２１２により電流指令を作成する。電流制御ループにおいては、電流検出部１９により検出されたモータ電力供給部１５内の逆変換器から三相交流モータ３００へ流れ込む電流に関する情報（電流フィードバック値）と電流指令作成部２１２により作成された電流指令値とに基づいて、電流制御部２１１を用いてモータ電力供給部１５内の逆変換器を駆動するための駆動指令（例えばＰＷＭ制御信号）を作成する。上述のようにモータ電力供給部１５内の逆変換器は、例えば内部に設けられたスイッチング素子のスイッチング動作により直流電力を交流電力に変換するモータ電力供給用のＰＷＭインバータであり、受信した駆動指令により、モータ電力供給部１５内の逆変換器内のスイッチング素子のスイッチング動作を制御することで直流電力を三相交流モータ３００の駆動用の交流電力に変換する変換動作を制御する。三相交流モータ３００は、モータ電力供給部１５内の逆変換器から出力された交流電力を駆動電力として動作するので、モータ電力供給部１５内の逆変換器から出力される交流電力を制御すれば、三相交流モータ３００の速度、トルク、もしくは回転子の位置を駆動制御することができる。三相交流モータ３００を駆動することで工作機械の駆動軸を駆動する。
【００６０】
図７は、本発明の実施例による、強化学習を適用した機械学習装置を備えるモータ制御装置の動作フローを示すフローチャートである。
【００６１】
一般に、強化学習では行動の初期値はランダムに選択される。本発明の実施例では、ステップＳ２０１において、行動である指令（位置指令、速度指令および電流指令のいずれか）に対する補正量をランダムに選択する。
【００６２】
ステップＳ２０２では、駆動指令生成部５０は、設定された補正量を用いて補正された指令（位置指令、速度指令および電流指令のいずれか）に基づいて、三相交流モータ３００の動作プログラム、モータ電力供給部１５の三相交流モータ３００側の交流電流もしくは交流電圧および／または三相交流モータ３００の回転速度などを用いて、三相交流モータ３００の速度、トルク、もしくは回転子の位置を制御するための駆動指令を生成する。これにより、モータ電力供給部１５は、交流電力を直流電力に変換する力行動作（順変換動作）および直流電力を交流電力に変換する回生動作（逆変換動作）を行い、三相交流モータ３００は、供給された交流の駆動電力により駆動することになる。この間、位置検出部１６は、位置検出部１６は、三相交流モータ３００のロータの実位置を検出し、エラー量測定部１７は、駆動指令生成部５０から取得された三相交流モータ３００のロータに対する位置指令と位置検出部１６により検出された記実位置との誤差であるエラー量を測定し、速度検出部１８は、三相交流モータ３００のロータ速度を検出し、電流検出部１９は、モータ電力供給部１５内の逆変換器から三相交流モータ３００へ流れ込む電流を検出する。また、温度測定部３１は、モータ制御装置１００が設けられる工作機械の温度を測定し、振動測定部３２は、モータ制御装置１００が設けられる工作機械内で発生する振動を測定する。
【００６３】
ステップＳ２０３において、状態観測部１１は、エラー量測定部１７により測定されたエラー量に関するデータと、モータ制御装置１００の動作プログラムと、駆動指令生成部５０から取得したモータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令と、モータ制御装置１００が設けられた工作機械におけるワーク加工条件に関するデータと、モータ制御装置１００が設けられた工作機械の状態に関するデータとから構成される状態変数を観測する。
【００６４】
ステップＳ２０４では、状態観測部１１は、エラー量に関するデータに基づき、当該エラー量が、規定範囲α内であるか否かを判別する。状態観測部１１によりエラー量が規定範囲α内であると判定されたときは、ステップＳ２０５において報酬計算部２１は報酬を増やす。一方、状態観測部１１によりエラー量が規定範囲α外であると判定されたときは、ステップＳ２０６において報酬計算部２１は報酬を減らす。なお、図７に示す例では、報酬計算部２１は、エラー量が、規定範囲α内であるときは報酬を増やし、規定範囲α外であるときは報酬を減らすとしたが、この代替例として、報酬計算部２１は、エラー量が、現在のエラー量よりも前に状態観測部１１により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らすようにしてもよい。
【００６５】
ステップＳ２０７では、関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数を更新する。
【００６６】
続くステップＳ２０８では、意思決定部１３は、ステップＳ２０７において更新された関数に基づいて、報酬が最も多く得られる補正量を選択する。その後、ステップＳ２０２へ戻り、これ以降、ステップＳ２０２〜Ｓ２０８の処理が繰り返し実行される。これにより、機械学習装置１は、エラー量を最小化することができる補正量を学習していく。なお、訓練データセットを、複数のモータ制御装置１００から取得してもよく、この場合、学習部１２は、複数のモータ制御装置１００に対して取得される訓練データセットに従って、ステップＳ２０１〜Ｓ２０８の処理を繰り返し実行し、補正量を学習していく。複数のモータ制御装置１００に対して訓練データセットが取得されると機械学習装置１の学習精度は向上する。
【００６７】
次に、機械学習装置１についてより詳細に説明する。機械学習装置１は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力するとともに、知識の学習を行う機能を有する。上述のように、機械学習装置１の学習アルゴリズムとして、大別すると「教師あり学習」、「教師なし学習」、「強化学習」がある。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ ｃｏｍｐｕｔｉｎｇ ｏｎ Ｇｒａｐｈｉｃｓ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔｓ）や大規模ＰＣクラスター等を適用することにより実現される。
【００６８】
「教師あり学習」とは、ある入力と結果（ラベル）のデータの組を大量に機械学習装置１に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得するものである。この教師あり学習を本実施形態に適用する場合、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算する部分などに用いることができる。後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００６９】
「教師なし学習」とは、入力データのみを大量に機械学習装置１に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。例えば、それらのデータセットにある特徴を似たものどうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。
【００７０】
また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際にモータ制御装置を動作させなくても取得することができるデータ（例えばシミュレーションのデータ）を教師なし学習で利用し、学習を効率的に行うことができる。
【００７１】
まず、機械学習装置１の学習アルゴリズムを強化学習とした例について説明する。
【００７２】
強化学習の問題設定として、次のように考える。
・モータ制御装置は環境の状態を観測し、行動を決定する。
・環境は何らかの規則に従って変化し、さらに自分の行動が、環境に変化を与えることもある。
・行動するたびに報酬信号が帰ってくる。
・最大化したいのは将来にわたっての（割引）報酬の合計である。
・行動が引き起こす結果を全く知らない、または不完全にしか知らない状態から学習はスタートする。すなわち、モータ制御装置は実際に動作して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００７３】
ここで、「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習する方法である。このことは、本実施形態において、ロータ位置指令と送り機構部の実位置との誤差を最小化する（エラー量を最小化する）といった、未来に影響を及ぼすような行動を獲得できることを表している。例えばＱ学習の場合で説明を続けるが、それに限るものではない。
【００７４】
Ｑ学習は、ある環境状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法である。つまり、ある状態ｓのとき、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェント（行動主体）は、ある状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して報酬が与えられる。それにより、エージェントはより良い行動の選択、すなわち正しい価値Ｑ（ｓ，ａ）を学習していく。
【００７５】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σγtｒt］となるようにすることを目指す。ここで、期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、それは分かっていないので、探索しながら学習することになる。そのような価値Ｑ（ｓ，ａ）の更新式は、例えば式１により表すことができる。
【００７６】
【数１】
2017102613.tif 000003
【００７７】
上記の式１において、ｓtは時刻ｔにおける環境の状態を表し、ａtは時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。ｒt+1は、その状態の変化により貰える報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。γは、０＜γ≦１のパラメータで、割引率と呼ばれる。αは学習係数で、０＜α≦１の範囲とする。
【００７８】
式１は、試行ａtの結果帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。状態ｓにおける行動ａの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1＋行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ（ｓt+1，ｍａｘ ａt+1）の方が大きければ、Ｑ（ｓt，ａt）を大きくするし、反対に小さければ、Ｑ（ｓt，ａt）も小さくする事を示している。つまり、ある状態におけるある行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近づけるようにしている。
【００７９】
ここで、Ｑ（ｓ，ａ）の計算機上での表現方法は、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブル（行動価値テーブル）として保持しておく方法と、Ｑ（ｓ，ａ）を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することができる。近似関数としては、後述のニューラルネットワークを用いることができる。
【００８０】
また、教師あり学習、教師なし学習、および強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。ニューラルネットワークは、たとえば図８に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置およびメモリ等で構成される。図８は、ニューロンのモデルを示す模式図である。
【００８１】
図８に示すように、ニューロンは、複数の入力ｘ（図８では、一例として、入力ｘ1〜入力ｘ3）に対する出力ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、式２により表現される出力ｙを出力する。なお、入力ｘ、出力ｙおよび重みｗは、すべてベクトルである。また、下記の式２において、θはバイアスであり、ｆkは活性化関数である。
【００８２】
【数２】
2017102613.tif 000004
【００８３】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図９を参照して説明する。図９は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。
【００８４】
図９に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００８５】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。
【００８６】
ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。図９において、これらｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。
【００８７】
ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。図９において、これらｚ２１、ｚ２２は、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
【００８８】
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００８９】
ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいてモータ制御装置の行動判断を行う。なお、便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能なのはいうまでもない。
【００９０】
ここで、予測モードで実際にモータ制御装置を動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。あるいは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００９１】
また、重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション：Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００９２】
このようなニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００９３】
そこで、本実施形態の機械学習装置１は、上述のＱ学習を実施すべく、例えば図６に示すように状態観測部１１、学習部１２、および意思決定部１３を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではないのは前述したとおりである。すなわち、機械学習装置で用いることができる手法である「教師あり学習」、「教師なし学習」、「半教師あり学習」および「強化学習」等といった様々な手法が適用可能である。なお、これらの機械学習（機械学習装置１）は、例えば、ＧＰＧＰＵや大規模ＰＣクラスター等を適用することで実現可能である。例えば教師あり学習を適用する場合、価値関数は学習モデル、報酬は誤差に対応する。なお、この行動価値テーブルとして、前述のニューラルネットワークを用いて近似した関数を用いることも可能であり、これはｓおよびａの情報量が莫大であるときは特に有効である。
【００９４】
続いて、機械学習装置１の学習アルゴリズムを教師あり学習とした例について説明する。
【００９５】
図１０は、本発明の実施例による、教師あり学習を適用した機械学習装置を備えるモータ制御装置を示す原理ブロック図である。図１０と、上述した図６の比較から明らかなように、図１０に示す教師あり学習を適用した機械学習装置を備えるモータ制御装置を備えるモータ駆動装置は、図６に示すＱ学習（強化学習）を適用した機械学習装置を備えるモータ制御装置に対して、さらに、結果（ラベル）提供部４０を備える。また、図１０における機械学習装置１は、状態観測部１１、誤差計算部２３および学習モデル更新部２４を含む学習部４１、ならびに、意思決定部４２を備える。
【００９６】
図１０に示す教師あり学習を適用した機械学習装置を備えるモータ制御装置において、誤差計算部２３および学習モデル更新部２４は、それぞれ、図６に示すＱ学習を適用したモータ制御装置における報酬計算部２１および関数更新部２２に対応する。ただし、誤差計算部２３には、結果提供部４０から結果（ラベル）が入力されるようになっている。なお、その他の構成は、上述した図６と同様であり、その説明は省略する。また、図１０では、図２において示した速度検出部および電流検出部については図示を省略している。
【００９７】
結果提供部４０は、ラベル付きデータ（結果）を学習部４１の誤差計算部２３に提供（入力）し、誤差計算部２３は、状態観測部１１からの信号とともに、結果提供部４０からのラベル付きデータを受け取って誤差計算を行い、さらに、学習モデル更新部２４は、学習モデルの更新を行う。ここで、結果提供部４０は、例えば、モータ制御装置１００による処理が同一の場合には、例えば、モータ制御装置１００を駆動させる所定日の前日までに得られたラベル付きデータを保持し、その所定日に、結果提供部４０に保持されたラベル付きデータを誤差計算部２３に提供することができる。
【００９８】
あるいは、モータ制御装置１００の外部で行われたシミュレーション等により得られたデータ、または、他のモータ制御装置のラベル付きデータを、メモリカードや通信回線により、そのモータ制御装置１００の誤差計算部２３に提供することも可能である。さらに、結果提供部４０をフラッシュメモリ（Ｆｌａｓｈ Ｍｅｍｏｒｙ）等の不揮発性メモリで構成し、結果提供部（不揮発性メモリ）４０を学習部４１に内蔵し、その結果提供部４０に保持されたラベル付きデータを、そのまま学習部４１で使用することもできる。
【００９９】
図１０に示すモータ制御装置１００に備わる機械学習装置１の動作は、ロータ位置指令と送り機構部の実位置との誤差を最小化する（エラー量を最小化する）、モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を取得するために、例えば、誤差計算部２３が、結果提供部４０から入力された結果により、状態変数に起因するエラー量に基づいて誤差を計算し、学習モデル更新部２４における学習モデルを更新する。
【０１００】
なお、本発明における機械学習装置１としては、上述した強化学習（例えば、Ｑ学習）または教師あり学習を適用したものに限定されず、様々な機械学習のアルゴリズムを適用することが可能である。
【０１０１】
上述した状態観測部１１、学習部１２、４１、および意思決定部１３、４２は、例えばソフトウェアプログラム形式で構築されてもよく、あるいは各種電子回路とソフトウェアプログラムとの組み合わせで構築されてもよい。例えばこれらをソフトウェアプログラム形式で構築する場合は、モータ制御装置１００内にある演算処理装置をこのソフトウェアプログラムに従って動作させることで上述の各部の機能が実現される。またあるいは、状態観測部１１および学習部１２、４１を備える機械学習装置１を、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路として実現してもよい。またあるいは、状態観測部１１および学習部１２、４１を備える機械学習装置１のみならず意思決定部１３、４２も含めた形で、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路を実現してもよい。また、補正部１４および駆動指令生成部５０についても、一般的なモータ制御装置と同様、例えばソフトウェアプログラム形式で構築されてもよく、あるいは各種電子回路とソフトウェアプログラムとの組み合わせで構築されてもよい。
【０１０２】
また、本発明による機械学習処理は、モータ制御装置１００が三相交流モータ３００の駆動制御のために本来的に備えるエラー量測定部１７により取得されるエラー量に関するデータ、温度測定部３１により測定されるモータ制御装置１００が設けられる工作機械内の温度に関するデータ、振動測定部３２により測定されるモータ制御装置１００が設けられる工作機械内で発生する振動に関するデータを用いて実行されるので、従来技術のように新たなハードウェア装置を設ける必要がないことから、既存のモータ制御装置にも後付けで適用することも可能である。この場合、機械学習装置１や意思決定部１３、４２の各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路を当該既存のモータ制御装置に組み込んだり、機械学習装置１や意思決定部１３、４２の各部の機能を実現するソフトウェアプログラムそのものを当該既存のモータ制御装置内の演算処理装置に追加的にインストールすればよい。また、あるモータ制御装置に関して補正量を学習した機械学習装置１を、これとは別のモータ制御装置に取り付け、当該別のモータ制御装置に関して補正量を再学習して更新するようにしてもよい。
【符号の説明】
【０１０３】
１    機械学習装置
１１    状態観測部
１２、４１    学習部
１３、４２    意思決定部
１４    補正部
１５    モータ電力供給部
１６    位置検出部
１７    エラー量測定部１
１８    速度検出部
１９    電流検出部
２１    報酬計算部
２２    関数更新部
２３    誤差計算部
２４    学習モデル更新部
３１    温度測定部
３２    振動測定部
４０    結果（ラベル）提供部
５０    駆動指令生成部
１００    モータ制御装置
２１１    電流制御部
２１２    電流指令生成部
２１３    速度指令生成部
３００    三相交流モータ
【図１】
2017102613.tif 000005
【図２】
2017102613.tif 000006
【図３】
2017102613.tif 000007
【図４】
2017102613.tif 000008
【図５】
2017102613.tif 000009
【図６】
2017102613.tif 000010
【図７】
2017102613.tif 000011
【図８】
2017102613.tif 000012
【図９】
2017102613.tif 000013
【図１０】
2017102613.tif 000014
【図１１】
2017102613.tif 000015
【図１２】
2017102613.tif 000016
【手続補正書】
【提出日】平成29年4月14日(2017.4.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
工作機械の駆動源として用いられる交流モータを駆動するための駆動電力を供給する逆変換器を制御する駆動指令を生成する駆動指令生成部５０は、位置制御ループ、速度制御ループおよび電流制御ループから構成される。位置制御ループにおいては、三相交流モータ３００に取り付けられた位置検出部１６により検出された三相交流モータ３００のロータ実位置に関する情報（位置フィードバック値）と位置指令作成部（図示せず）で作成された位置指令とに基づいて、速度指令生成部２１３により速度指令を作成する。速度制御ループにおいては、三相交流モータ３００に取り付けられた速度検出部１８により検出された三相交流モータ３００のロータ速度に関する情報（速度フィードバック値）と速度指令生成部２１３により作成された速度指令とに基づいて、電流指令生成部２１２により電流指令を作成する。電流制御ループにおいては、電流検出部１９により検出されたモータ電力供給部１５内の逆変換器から三相交流モータ３００へ流れ込む電流に関する情報（電流フィードバック値）と電流指令生成部２１２により作成された電流指令値とに基づいて、電流制御部２１１を用いてモータ電力供給部１５内の逆変換器の電力変換動作を制御するための駆動指令（例えばＰＷＭ制御信号）を作成する。モータ電力供給部１５内の逆変換器は、例えば内部に設けられたスイッチング素子のスイッチング動作により直流電力を交流電力に変換するモータ電力供給用のインバータであり、受信した駆動指令により、モータ電力供給部１５内の逆変換器内のスイッチング素子のスイッチング動作を制御することで直流電力を三相交流モータ３００の駆動用の交流電力に変換する変換動作を制御する。三相交流モータ３００は、モータ電力供給部１５内の逆変換器から出力された交流電力を駆動電力として動作するので、モータ電力供給部１５内の逆変換器から出力される交流電力を制御すれば、三相交流モータ３００の速度、トルク、もしくは回転子の位置を駆動制御することができる。三相交流モータ３００を駆動することで工作機械の可動部を駆動する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
モータ電力供給部１５は、駆動指令生成部５０において生成された駆動指令に基づいて、モータ３００へ駆動電力を供給する。モータ電力供給部１５は、例えば、交流電源側から供給された交流電力を直流電力に変換してＤＣリンクへ出力する整流器と、ＤＣリンクに接続され、ＤＣリンクにおける直流電力を交流電力に変換して三相交流モータ３００へ供給する逆変換器（インバータ）とからなる。用いられる整流器の実施形態は特に限定されず、例えばダイオード整流器、あるいはＰＷＭ制御方式の整流器などがある。また、逆変換器についても実施形態は特に限定されず、一般的には交直双方向に変換可能である電力変換器であり、例えばＰＷＭインバータがある。ＰＷＭインバータは、スイッチング素子およびこれに逆並列に接続されたダイオードのブリッジ回路からなり、駆動指令生成部５０において生成された駆動指令に基づいてスイッチング素子のスイッチング動作がＰＷＭ制御される。すなわち、モータ電力供給部１５内の逆変換器は、ＤＣリンク側から供給される直流電力を、駆動指令生成部５０から受信した駆動指令に基づき内部のスイッチング素子をスイッチング動作させ、三相交流モータ３００を駆動するための所望の電圧および所望の周波数の三相交流電力に変換する。これにより、三相交流モータ３００は、供給された電圧可変および周波数可変の三相交流電力に基づいて動作することになる。また、三相交流モータ３００の減速時には回生電力が発生するが、この場合は駆動指令生成部５０から受信した電動機駆動指令に基づき、三相交流モータ３００で発生した交流の回生電力を直流電力へ変換してＤＣリンクへ戻す。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
学習部１２内の関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数（行動価値テーブル）を更新する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
意思決定部１３は、学習部１２が訓練データセットに従って学習した結果に基づいて、現在の状態変数の入力に応答して、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を決定する。本実施例では、一例として学習アルゴリズムとして強化学習を用いているので、学習部１２内の報酬計算部２１によって算出された報酬に基づいて学習部１２内の関数更新部２２は、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数を更新し、意思決定部１３は、更新された関数に基づき、報酬が最も多く得られる補正量を選択する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
駆動指令生成部５０は、補正された指令（位置指令、速度指令および電流指令のいずれか）に基づいて、モータ電力供給部１５による三相交流モータ３００への電力供給を制御するための駆動指令を生成する。モータ制御装置１００内の駆動指令生成部５０の構成については、図２に示した通りである。すなわち、駆動指令生成部５０は、位置制御ループ、速度制御ループおよび電流制御ループから構成される。位置制御ループにおいては、三相交流モータ３００に取り付けられた位置検出部１６により検出された三相交流モータ３００のロータ実位置に関する情報（位置フィードバック値）と位置指令作成部（図示せず）で作成された位置指令とに基づいて、速度指令生成部２１３により速度指令を作成する。速度制御ループにおいては、三相交流モータ３００に取り付けられた速度検出部１８により検出された三相交流モータ３００のロータ速度に関する情報（速度フィードバック値）と速度指令生成部２１３により作成された速度指令とに基づいて、電流指令生成部２１２により電流指令を作成する。電流制御ループにおいては、電流検出部１９により検出されたモータ電力供給部１５内の逆変換器から三相交流モータ３００へ流れ込む電流に関する情報（電流フィードバック値）と電流指令生成部２１２により作成された電流指令値とに基づいて、電流制御部２１１を用いてモータ電力供給部１５内の逆変換器を駆動するための駆動指令（例えばＰＷＭ制御信号）を作成する。上述のようにモータ電力供給部１５内の逆変換器は、例えば内部に設けられたスイッチング素子のスイッチング動作により直流電力を交流電力に変換するモータ電力供給用のＰＷＭインバータであり、受信した駆動指令により、モータ電力供給部１５内の逆変換器内のスイッチング素子のスイッチング動作を制御することで直流電力を三相交流モータ３００の駆動用の交流電力に変換する変換動作を制御する。三相交流モータ３００は、モータ電力供給部１５内の逆変換器から出力された交流電力を駆動電力として動作するので、モータ電力供給部１５内の逆変換器から出力される交流電力を制御すれば、三相交流モータ３００の速度、トルク、もしくは回転子の位置を駆動制御することができる。三相交流モータ３００を駆動することで工作機械の駆動軸を駆動する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
ステップＳ２０２では、駆動指令生成部５０は、設定された補正量を用いて補正された指令（位置指令、速度指令および電流指令のいずれか）に基づいて、三相交流モータ３００の動作プログラム、モータ電力供給部１５の三相交流モータ３００側の交流電流もしくは交流電圧および／または三相交流モータ３００の回転速度などを用いて、三相交流モータ３００の速度、トルク、もしくは回転子の位置を制御するための駆動指令を生成する。これにより、モータ電力供給部１５は、交流電力を直流電力に変換する力行動作（順変換動作）および直流電力を交流電力に変換する回生動作（逆変換動作）を行い、三相交流モータ３００は、供給された交流の駆動電力により駆動することになる。この間、位置検出部１６は、三相交流モータ３００のロータの実位置を検出し、エラー量測定部１７は、駆動指令生成部５０から取得された三相交流モータ３００のロータに対する位置指令と位置検出部１６により検出された実位置との誤差であるエラー量を測定し、速度検出部１８は、三相交流モータ３００のロータ速度を検出し、電流検出部１９は、モータ電力供給部１５内の逆変換器から三相交流モータ３００へ流れ込む電流を検出する。また、温度測定部３１は、モータ制御装置１００が設けられる工作機械の温度を測定し、振動測定部３２は、モータ制御装置１００が設けられる工作機械内で発生する振動を測定する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
ステップＳ２０７では、関数更新部２２は、状態観測部１１によって観測された状態変数および報酬計算部２１によって計算された報酬に基づいて、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を計算するための関数を更新する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
図１０に示すモータ制御装置１００に備わる機械学習装置１の動作は、ロータ位置指令と送り機構部の実位置との誤差を最小化する（エラー量を最小化する）、モータ制御装置１００における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量を取得するために、例えば、誤差計算部２３が、結果提供部４０から入力された結果により、状態変数に起因するエラー量に基づいて誤差を計算し、学習モデル更新部２４における学習モデルを更新する。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習装置であって、
前記モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、前記モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、前記モータ制御装置を有する工作機械の状態に関するデータと、から構成される状態変数を観測する状態観測部と、
前記状態変数によって構成される訓練データセットに従って、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習部と、
を備えることを特徴とする機械学習装置。
【請求項２】
前記工作機械の状態は、前記工作機械の温度、前記工作機械の振動のうちの少なくとも１つを含む請求項１に記載の機械学習装置。
【請求項３】
前記学習部は、
前記エラー量に基づいて報酬を計算する報酬計算部と、
前記状態変数および前記報酬に基づいて、前記補正量を計算するための関数を更新する関数更新部と、
を備える請求項１または２に記載の機械学習装置。
【請求項４】
前記報酬計算部は、前記エラー量が、現在の前記エラー量よりも前に前記状態観測部により観測されたエラー量よりも、小さいときは報酬を増やし、大きいときは報酬を減らす請求項３に記載の機械学習装置。
【請求項５】
前記報酬計算部は、前記エラー量が、規定範囲内であるときは報酬を増やし、前記規定範囲外であるときは報酬を減らす請求項３に記載の機械学習装置。
【請求項６】
前記関数更新部は、前記状態変数および前記報酬に基づいて、ニューラルネットワークモデルに従って、前記補正量を計算するための関数を更新する請求項３〜５のいずれか一項に記載の機械学習装置。
【請求項７】
前記学習部は、
前記エラー量に基づいて誤差を計算する誤差計算部と、
前記状態変数および前記誤差に基づいて、前記補正量を計算するための学習モデルを更新する学習モデル更新部と、
を備える請求項１または２に記載の機械学習装置。
【請求項８】
前記学習部は、複数のモータ制御装置に対して取得される前記訓練データセットに従って、前記条件を学習するように構成される請求項１〜７のいずれか一項に記載の機械学習装置。
【請求項９】
請求項１〜８のいずれか一項に記載の機械学習装置を備えた、モータ制御装置であって、
前記学習部が前記訓練データセットに従って学習した結果に基づいて、現在の前記状態変数の入力に応答して、前記補正量を決定する意思決定部と、
前記意思決定部が決定した補正量を用いて、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正する補正部と、
前記補正部により補正された前記指令に基づいて、モータへ駆動電力を供給するモータ電力供給部と、
送り機構部の実位置を検出する位置検出部と、
ロータに対する位置指令と前記実位置との誤差である前記エラー量を測定するエラー量測定部と、
をさらに備えることを特徴とするモータ制御装置。
【請求項１０】
モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令に対する補正量に関連付けられる条件を学習する機械学習方法であって、
前記モータ制御装置により駆動制御されるモータのロータに対する位置指令と送り機構部の実位置との誤差であるエラー量に関するデータと、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令と、前記モータ制御装置を有する工作機械におけるワーク加工条件に関するデータと、前記モータ制御装置を有する工作機械の状態に関するデータと、から構成される状態変数を観測する状態観測ステップと、
前記状態変数によって構成される訓練データセットに従って、前記モータ制御装置における位置指令、速度指令および電流指令のうちのいずれかの指令を補正するのに用いられる補正量に関連付けられる条件を学習する学習ステップと、
を備えることを特徴とする機械学習方法。