(57)【要約】【課題】フィルタの特性を決定するパラメータの設定を容易にする。【解決手段】モータの回転を制御するサーボ制御装置に設けられた少なくとも１つのフィルタの係数を最適化する機械学習を行う機械学習装置であって、フィルタは特定の周波数成分を減衰させるフィルタであり、サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置の測定情報に基づいて前記フィルタの係数を最適化する。【選択図】図１
2020057211.tif 000002
【特許請求の範囲】
【請求項１】
モータの回転を制御するサーボ制御装置に設けられた少なくとも１つのフィルタの係数を最適化する機械学習を行う機械学習装置であって、
前記フィルタは特定の周波数成分を減衰させるフィルタであり、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置の測定情報に基づいて前記フィルタの係数を最適化する機械学習装置。
【請求項２】
前記周波数が変わる入力信号は、周波数が変わる正弦波であって、
該正弦波は周波数生成装置によって生成され、該周波数生成装置は前記サーボ制御装置内又は外に設けられる、請求項１に記載の機械学習装置。
【請求項３】
前記測定情報と、前記フィルタの係数と、を含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部と、
前記測定情報に基づく強化学習における報酬の値を出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部と、
を備えた請求項１又は２に記載の機械学習装置。
【請求項４】
前記測定情報は、前記入出力ゲインと前記入出力の位相遅れとを含み、
前記報酬出力部は、前記測定情報に含まれる、前記サーボ制御装置の入出力ゲインが、前記サーボ制御装置の特性から算出される入出力ゲインの規範モデルの該入出力ゲイン以下である場合に、前記入出力の位相遅れによる報酬を計算する、請求項３に記載の機械学習装置。
【請求項５】
前記規範モデルの入出力ゲインは、所定の周波数以上では一定値である、請求項４に記載の機械学習装置。
【請求項６】
前記報酬出力部は、前記入出力の位相遅れが小さくなるように報酬を計算する、請求項４又は５に記載の機械学習装置。
【請求項７】
前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部を備えた請求項３から６のいずれか１項に記載の機械学習装置。
【請求項８】
請求項１から請求項７のいずれか１項に記載の機械学習装置と、
特定の周波数成分を減衰させる少なくとも１つのフィルタを有する、モータの回転を制御するサーボ制御装置と、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置と、
を備えた制御装置。
【請求項９】
モータの回転を制御するサーボ制御装置に設けられた、特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する機械学習を行う機械学習装置の機械学習方法であって、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置の測定情報に基づいて前記フィルタの係数を最適化する機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械、ロボット又は産業機械等のモータの回転を制御するサーボ制御装置におけるフィルタの係数を最適化する機械学習を行う機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法に関する。
【背景技術】
【０００２】
フィルタの特性を自動的に調整する装置は、例えば特許文献１及び特許文献２に記載されている。
特許文献１は、モータの速度を制御する速度フィードバックループを有し、この速度フィードバックループにノッチフィルタ手段を挿入して機械共振を除去するサーボアクチュエータにおいて、速度フィードバックループの周波数応答特性を示すデータを取得するデータ収集手段と、データ収集手段で取得されたデータを移動平均処理する移動平均手段と、この移動平均手段で得られたデータと、データ収集手段で得られたデータとを比較して、速度フィードバックループの共振特性を抽出する比較手段と、比較手段で抽出された共振特性に基づいてノッチフィルタ手段の周波数及びＱ値を設定するノッチフィルタ設定手段と、を備えるサーボアクチュエータを記載している。
【０００３】
特許文献２は、チューニングモード時には、周波数をスイープした交流信号を速度指令値の信号に重畳させ、重畳の結果、速度制御部から得られたトルク指令値信号の振幅を検出し、振幅の変化率が正から負に転じたときにおけるトルク指令値信号の周波数をノッチフィルタの中心周波数として設定するサーボアクチュエータを記載している。
【０００４】
特許文献３は、ノッチ周波数とノッチ幅を含むノッチフィルタパラメータの変更が可能であるノッチフィルタと、振動周波数を推定する振動周波数推定手段を有し、ノッチフィルタのノッチ周波数と推定された振動周波数との間の周波数をノッチフィルタの新たなノッチ周波数として設定するとともに、元のノッチ周波数成分と推定された周波数成分が減衰するようノッチ幅を変更するノッチフィルタパラメータ設定手段を有する、電動機の制御装置を記載している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１０４４３９号公報
【特許文献２】特開平５−１９８５８号公報
【特許文献３】特開２００８−３１２３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１のサーボアクチュエータは速度フィードバックループの周波数応答特性に基づいてノッチフィルタの特性を調整し、特許文献２のサーボアクチュエータはトルク指令値信号を用いてノッチフィルタの特性を調整し、特許文献３では、ノッチフィルタのノッチ周波数と推定された振動周波数との間の周波数をノッチフィルタの新たなノッチ周波数として設定するとともに、元のノッチ周波数成分と推定された周波数成分が減衰するようノッチ幅を変更することでノッチフィルタの特性を調整している。
しかしながら、ノッチフィルタの特性を決めるときには、減衰係数、除去したい帯域の中心周波数、及び帯域幅等の複数のパラメータを決めることが求められ、これらのパラメータを調整して最適値を求めることは容易ではない。そして、これらのパラメータの設定が適正でないと、共振を十分に抑制できなかったり、サーボ制御部の位相遅れが増大してサーボ制御性能が劣化する場合がある。
【０００７】
本発明は、サーボ制御装置に係るフィルタの最適なパラメータの設定を可能とする機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）  本発明に係る機械学習装置は、モータ（例えば、後述のサーボモータ１５０）の回転を制御するサーボ制御装置（例えば、後述のサーボ制御部１００）に設けられた少なくとも１つのフィルタの係数を最適化する機械学習を行う機械学習装置（例えば、後述の機械学習部４００）であって、
前記フィルタは特定の周波数成分を減衰させるフィルタ（例えば、後述のフィルタ１３０）であり、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置（例えば、後述の測定部３００）の測定情報に基づいて前記フィルタの係数を最適化する機械学習装置である。
【０００９】
（２）  上記（１）の機械学習装置において、前記周波数が変わる入力信号は、周波数が変わる正弦波であって、該正弦波は周波数生成装置によって生成され、該周波数生成装置は前記サーボ制御装置内又は外に設けられてもよい。
【００１０】
（３）  上記（１）又は（２）の機械学習装置において、前記測定情報と、前記フィルタの係数と、を含む状態情報を取得する状態情報取得部（例えば、後述の状態情報取得部４０１）と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部（例えば、後述の行動情報出力部４０３）と、
前記測定情報に基づく強化学習における報酬の値を出力する報酬出力部（例えば、後述の報酬出力部４０２１）と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部（例えば、後述の価値関数更新部４０２２）と、
を備えてもよい。
【００１１】
（４）  上記（３）の機械学習装置において、前記測定情報は、前記入出力ゲインと前記入出力の位相遅れとを含み、
前記報酬出力部は、前記測定情報に含まれる、前記サーボ制御装置の入出力ゲインが、前記サーボ制御装置の特性から算出される入出力ゲインの規範モデルの該入出力ゲイン以下である場合に、前記入出力の位相遅れによる報酬を計算してもよい。
【００１２】
（５）  上記（４）の機械学習装置において、前記規範モデルの入出力ゲインは、所定の周波数以上では一定値であってもよい。
【００１３】
（６）  上記（４）又は（５）の機械学習装置において、前記報酬出力部は、前記入出力の位相遅れが小さくなるように報酬を計算してもよい。
【００１４】
（７）  上記（３）から（６）のいずれかの機械学習装置において、前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部（例えば、後述の最適化行動情報出力部４０５）を備えてもよい。
【００１５】
（８）  本発明に係る制御装置は、上記（１）から（７）のいずれかの機械学習装置（例えば、後述の機械学習部４００）と、特定の周波数成分を減衰させる少なくとも１つのフィルタを有する、モータの回転を制御するサーボ制御装置（例えば、後述のサーボ制御部１００）と、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置（例えば、後述の測定部３００）と、
を備えた制御装置（例えば、後述の制御装置１０）である。
【００１６】
（９）  本発明に係る機械学習方法は、モータ（例えば、後述のサーボモータ１５０）の回転を制御するサーボ制御装置（例えば、後述のサーボ制御部１００）に設けられた、特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する機械学習を行う機械学習装置（例えば、後述の機械学習部４００）の機械学習方法であって、
前記サーボ制御装置における、周波数が変わる入力信号と出力信号とに基づいて、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを測定する測定装置（例えば、後述の測定部３００）の測定情報に基づいて前記フィルタの係数を最適化する機械学習方法である。
【発明の効果】
【００１７】
本発明によれば、サーボ制御装置に係るフィルタの最適なパラメータの設定を可能とする機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態の機械学習装置を含む制御装置を示すブロック図である。
【図２】入力信号となる速度指令と出力信号となる検出速度とを示す図である。
【図３】入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
【図４】本発明の一実施形態の機械学習部を示すブロック図である。
【図５】入出力ゲインの規範モデルを算出するためのモデルとなるブロック図である。
【図６】規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部との入出力ゲインの周波数特性を示す特性図である。
【図７】フィルタの帯域幅と、ゲイン及び位相との関係を示す特性図である。
【図８】フィルタの減衰係数と、ゲイン及び位相との関係を示す特性図である。
【図９】本実施形態におけるＱ学習時の機械学習部の動作を示すフローチャートである。
【図１０】本発明の一実施形態の機械学習部の最適化行動情報出力部の動作を説明するフローチャートである。
【図１１】複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。
【図１２】制御装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面を用いて詳細に説明する。
【００２０】
図１は本発明の一実施形態の機械学習装置を含む制御装置を示すブロック図である。制御装置１０の制御対象は、例えば、工作機械、ロボット、産業機械である。制御装置１０は、工作機械、ロボット、産業機械等の制御対象の一部として設けられてもよい。
【００２１】
制御装置１０は、サーボ制御部１００、周波数生成部２００、測定部３００及び機械学習部４００を備えている。サーボ制御部１００はサーボ制御装置に対応し、測定部３００は測定装置に対応し、機械学習部４００は機械学習装置に対応する。
なお、周波数生成部２００、測定部３００及び機械学習部４００のうちの一つ又は複数はサーボ制御部１００の内に設けてもよい。
【００２２】
サーボ制御部１００は、減算器１１０、速度制御部１２０、フィルタ１３０、電流制御部１４０、及びサーボモータ１５０を備えている。減算器１１０、速度制御部１２０、フィルタ１３０、電流制御部１４０、及びサーボモータ１５０は速度フィードバックループを構成する。
【００２３】
減算器１１０は、入力された速度指令と速度フィードバックされた検出速度との差を求め、その差を速度偏差として速度制御部１２０に出力する。
【００２４】
速度制御部１２０は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令としてフィルタ１３０に出力する。
【００２５】
フィルタ１３０は特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタが用いられる。モータで駆動される工作機械等の機械では共振点が存在し、サーボ制御部１００で共振が増大する場合がある。ノッチフィルタを用いることで共振を低減することができる。フィルタ１３０の出力はトルク指令として電流制御部１４０に出力される。
数式１（以下に数１として示す）は、フィルタ１３０としてのノッチフィルタの伝達関数Ｆ(ｓ)を示す。パラメータは係数ωｃ、τ、ｋを示す。
数式１の係数ｋは減衰係数、係数ωｃは中心角周波数、係数τは比帯域である。中心周波数をｆｃ、帯域幅をｆｗとすると、係数ωｃはωｃ＝２πｆｃ、係数τはτ＝ｆｗ／ｆｃで表される。
【数１】
2020057211.tif 000003
【００２６】
電流制御部１４０はトルク指令に基づいてサーボモータ１５０を駆動するための電流指令を生成し、その電流指令をモータ１５０に出力する。
サーボモータ１５０の回転角度位置は、サーボモータ１５０に設けられたロータリーエンコーダ（図示せず）によって検出され、速度検出値は速度フィードバックとして減算器１１０に入力される。
以上のようにサーボ制御部１００は構成されるが、フィルタの最適なパラメータを機械学習するために、制御装置１０は、周波数生成部２００、測定部３００及び機械学習部４００を更に備える。
【００２７】
周波数生成部２００は、周波数を変化させながら正弦波信号を速度指令として、サーボ制御部１００の減算器１１０及び測定部３００に出力する。
【００２８】
測定部３００は、周波数生成部２００で生成された、入力信号となる速度指令（正弦波）と、ロータリーエンコーダ（図示せず）から出力された出力信号となる検出速度（正弦波）とを用いて、速度指令により規定される各周波数ごとに、入力信号と出力信号との振幅比（入出力ゲイン）と位相遅れとを求める。図２は入力信号となる速度指令と出力信号となる検出速度とを示す図である。図３は入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
図２に示すように、周波数生成部２００から出力された速度指令は周波数が変化し、図３に示すような、入出力ゲイン（振幅比）と位相遅れについての周波数特性が得られる。
【００２９】
機械学習部４００は、測定部３００から出力される入出力ゲイン（振幅比）と位相遅れを用いて、フィルタ１３０の伝達関数の係数ωｃ、τ、ｋを機械学習（以下、学習という）する。機械学習部４００による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
以下、機械学習部４００の構成及び動作の詳細について更に説明する。
【００３０】
＜機械学習部４００＞
以下の説明では機械学習部４００が強化学習を行う場合について説明するが、機械学習部４００が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【００３１】
機械学習部４００に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習部４００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００３２】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、機械端の振動を抑制するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００３３】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Ｓの下で、行動Ａを選択する価値Ｑ（Ｓ，Ａ）を学習する方法であるＱ学習（Q-learning）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００３４】
しかしながら、Ｑ学習を最初に開始する時点では、状態Ｓと行動Ａとの組合せについて、価値Ｑ（Ｓ，Ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００３５】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式２（以下に数２として示す）により表すことができる。
【００３６】
【数２】
2020057211.tif 000004
【００３７】
上記の数式２において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００３８】
上述した数式２は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
この更新式は、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）よりも、行動Ａｔによる次の状態Ｓｔ＋１における最良の行動の価値ｍａｘａ  Ｑ（Ｓｔ＋１，Ａ）の方が大きければ、Ｑ（Ｓｔ，Ａｔ）を大きくし、逆に小さければ、Ｑ（Ｓｔ，Ａｔ）を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬ｒｔ＋１のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【００３９】
ここで、Ｑ学習では、すべての状態行動ペア（Ｓ，Ａ）についてのＱ（Ｓ，Ａ）のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのＱ（Ｓ，Ａ）の値を求めるには状態数が多すぎて、Ｑ学習が収束するのに多くの時間を要してしまう場合がある。
【００４０】
そこで、公知のＤＱＮ（Deep Q-Network）と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Ｑを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Ｑを適当なニューラルネットワークで近似することにより価値Ｑ（Ｓ，Ａ）の値を算出するようにしてもよい。ＤＱＮを利用することにより、Ｑ学習が収束するのに要する時間を短くすることが可能となる。なお、ＤＱＮについては、例えば、以下の非特許文献に詳細な記載がある。
【００４１】
＜非特許文献＞
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著［ｏｎｌｉｎｅ］、［平成２９年１月１７日検索］、インターネット〈ＵＲＬ：http://files.davidqiu.com/research/nature14236.pdf〉
【００４２】
以上説明をしたＱ学習を機械学習部４００が行う。具体的には、機械学習部４００は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの値、測定部３００から出力された入出力ゲイン（振幅比）と位相遅れを状態Ｓとして、当該状態Ｓに係る、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの値の調整を行動Ａとして選択する価値Ｑを学習する。
【００４３】
機械学習部４００は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに基づいて、前述した周波数が変化する正弦波である速度指令を用いてサーボ制御回路１００を駆動することで測定部３００から得られた、各周波数ごとの入出力ゲイン（振幅比）と位相遅れとを含む状態情報Ｓを観測して、行動Ａを決定する。機械学習部４００は、行動Ａをするたびに報酬が返ってくる。機械学習部４００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習部４００は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに基づいて、周波数が変化する正弦波である速度指令を用いてサーボ制御部１００を駆動することで測定部３００から得られた、各周波数ごとの入出力ゲイン（振幅比）と位相遅れとを含む状態Ｓに対して、最適な行動Ａ（すなわち、フィルタ１３０の伝達関数の最適な係数ωｃ、τ、ｋ）を選択することが可能となる。
【００４４】
すなわち、機械学習部４００により学習された価値関数Ｑに基づいて、或る状態Ｓに係るフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、加工プログラムを実行することで生ずる機械端の振動が最小になるような行動Ａ（すなわち、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋ）を選択することが可能となる。
【００４５】
図４は本発明の一実施形態の機械学習部４００を示すブロック図である。
上述した強化学習を行うために、図４に示すように、機械学習部４００は、状態情報取得部４０１、学習部４０２、行動情報出力部４０３、価値関数記憶部４０４、及び最適化行動情報出力部４０５を備える。学習部４０２は報酬出力部４０２１、価値関数更新部４０２２、及び行動情報生成部４０２３を備える。
【００４６】
状態情報取得部４０１は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに基づいて、速度指令（正弦波）を用いてサーボモータ１５０を駆動することで得られた、入出力ゲイン（振幅比）と位相遅れとを含む状態Ｓを測定部３００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部４０１は、取得した状態情報Ｓを学習部４０２に対して出力する。
【００４７】
なお、最初にＱ学習を開始する時点でのフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋは、予めユーザが生成するようにする。本実施形態では、ユーザが作成したフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの初期設定値を、強化学習により最適なものに調整する。
なお、係数ωｃ、τ、ｋは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【００４８】
学習部４０２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。
【００４９】
報酬出力部４０２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬を算出する部分である。
報酬出力部４０２１は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋを修正した場合において測定した入出力ゲインＧｓを、予め設定した規範モデルの各周波数ごとの入出力ゲインＧｂと比較する。報酬出力部４０２１は、測定した入出力ゲインＧｓが規範モデルの入出力ゲインＧｂよりも大きい場合には、負の報酬を与える。一方、報酬出力部４０２１は、測定した入出力ゲインＧｓが規範モデルの入出力ゲインＧｂ以下である場合には、位相遅れが小さくなるときは正の報酬を与え、位相遅れが大きくなるときは負の報酬を与え、位相遅れが変わらないときはゼロの報酬を与える。
【００５０】
まず、報酬出力部４０２１が、測定した入出力ゲインＧｓが規範モデルの入出力ゲインＧｂよりも大きい場合に、負の報酬を与える動作について図５及び図６を用いて説明する。
報酬出力部４０２１は、入出力ゲインの規範モデルを保存している。規範モデルは、共振のない理想的な特性を有するサーボ制御部のモデルである。規範モデルは、例えば、図５に示すモデルのイナーシャＪａ、トルク定数Ｋｔ、比例ゲインＫｐ、積分ゲインＫＩ、微分ゲインＫＤから計算で求めることができる。イナーシャＪａはモータイナーシャと機械イナーシャとの加算値である。
図６は、規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部１００との入出力ゲインの周波数特性を示す特性図である。図６の特性図に示すように、規範モデルは、一定の入出力ゲイン以上、例えば、−２０ｄＢ以上での理想的な入出力ゲインとなる周波数領域である領域Ａと、一定の入出力ゲイン未満となる周波数領域である領域Ｂとを備えている。図６の領域Ａにおいて、規範モデルの理想的な入出力ゲインを曲線ＭＣ１（太線）で示す。図６の領域Ｂにおいて、規範モデルの理想的な仮想入出力ゲインを曲線ＭＣ１１(破線の太線）で示し、規範モデルの入出力ゲインを一定値として直線ＭＣ１2(太線)で示す。図６の領域Ａ及びＢにおいて、学習前及び学習後のサーボ制御部との入出力ゲインの曲線をそれぞれ曲線ＲＣ１、ＲＣ2で示す。
【００５１】
報酬出力部４０２１は、領域Ａでは、測定した入出力ゲインの学習前の曲線ＲＣ１が規範モデルの理想的な入出力ゲインの曲線ＭＣ１を超えた場合は第１の負の報酬を与える。
入出力ゲインが十分小さくなる周波数を超える領域Ｂでは、学習前の入出力ゲインの曲線ＲＣ１が規範モデルの理想的な仮想入出力ゲインの曲線ＭＣ１1を超えたとしても安定性への影響が小さくなる。そのため領域Ｂでは、上述したように、規範モデルの入出力ゲインは理想的なゲイン特性の曲線ＭＣ１1ではなく、一定値の入出力ゲイン（例えば、−２０ｄＢ）の直線ＭＣ１2を用いる。しかし、学習前の測定した入出力ゲインの曲線ＲＣ１が一定値の入出力ゲインの直線ＭＣ１2を超えた場合には不安定になる可能性があるため、報酬として第１の負の値を与える。
【００５２】
次に、報酬出力部４０２１が、測定した入出力ゲインＧｓが規範モデルの入出力ゲインＧｂ以下である場合に、位相遅れの情報に基づいて報酬を決める動作について説明する。
以下の説明において、状態情報Ｓに係る状態変数である位相遅れをＤ（Ｓ）、行動情報Ａ（フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの修正）により状態Ｓから変化した状態Ｓ´に係る状態変数である位相遅れをＤ（Ｓ´）で示す。
【００５３】
報酬出力部４０２１が、位相遅れの情報に基づいて報酬を決める方法は、例えば、以下の３つがある。
第１の方法は、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が大きくなるか、小さくなるか、又は同じになるかで報酬を決める方法である。ここでは、位相遅れが１８０度の場合を取り上げたが、特に１８０度に限定されず他の値であってもよい。
例えば、位相遅れが図３に示した位相線図で示されたときに、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が小さくなるように（図３のＸ２方向に）曲線が変わると、位相遅れは大きくなる。一方、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が大きくなるように（図３のＸ１方向に）曲線が変わると、位相遅れが小さくなる。
【００５４】
よって、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が小さくなったとき、位相遅れＤ（Ｓ）＜位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を第２の負の値とする。なお第２の負の値の絶対値は第１の負の値よりも小さくする。
一方で、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が大きくなったとき、位相遅れＤ（Ｓ）＞位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を正の値とする。
また、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度となる周波数が変わらないとき、位相遅れＤ（Ｓ）＝位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値をゼロの値とする。
【００５５】
第２の方法は、状態Ｓから状態Ｓ´となった場合に、入出力ゲインが０ｄＢにクロスするときの位相遅れの絶対値が大きくなるか、小さくなるか、又は同じになるかで報酬を決める方法である。
例えば、状態Ｓにおける、入力ゲインが図３に示したゲイン線図で示されたときに、０ｄＢにクロスする点（以下、「ゼロクロス点」という）に対応する、図３に示した位相線図の位相遅れは−９０度となる。
【００５６】
状態Ｓから状態Ｓ´となった場合に、ゼロクロス点の位相遅れの絶対値が大きくなったとき、位相遅れＤ（Ｓ）＜位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を第２の負の値とする。
一方で、状態Ｓから状態Ｓ´となった場合に、ゼロクロス点の位相遅れの絶対値が小さくなったときには、位相遅れＤ（Ｓ）＞位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を正の値とする。
また、状態Ｓから状態Ｓ´となった場合に、ゼロクロス点の位相遅れの絶対値が変わらないとき、位相遅れＤ（Ｓ）＝位相遅れＤ（Ｓ´）として、報酬出力部４０２１は、報酬の値をゼロの値とする。
【００５７】
第３の方法は、状態Ｓから状態Ｓ´となった場合に、位相余裕が大きくなるか、小さくなるか、又は同じになるかで報酬を決める方法である。位相余裕とは、ゲインが０ｄＢのとき、位相が−１８０度から何度あるかを示したものが位相余裕である。例えば、図３では、ゲインが０ｄＢのとき、位相が−９０度なので、位相余裕は９０度となる。
状態Ｓから状態Ｓ´となった場合に、位相余裕が小さくなったとき、位相遅れＤ（Ｓ）＜位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を第２の負の値とする。
一方で、状態Ｓから状態Ｓ´となった場合に、位相余裕が大きくなったときには、位相遅れＤ（Ｓ）＞位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値を正の値とする。
また、状態Ｓから状態Ｓ´となった場合に、位相余裕が変わらないときには、位相遅れＤ（Ｓ）＝位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、報酬の値をゼロの値とする。
【００５８】
なお、行動Ａを実行後の状態Ｓ´の位相遅れＤ（Ｓ´）が、前の状態Ｓにおける位相遅れＤ（Ｓ）より大きくなったと定義した場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。例えば、上述した第１の方法において、周波数が小さくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Ａを実行後の状態Ｓ´の位相遅れＤ（Ｓ´）が、前の状態Ｓにおける位相遅れＤ（Ｓ）より小さくなったと定義した場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。例えば、上述した第１の方法において、周波数が大きくなった度合いに応じて正の値が大きくなるようにするとよい。
【００５９】
価値関数更新部４０２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値と、に基づいてＱ学習を行うことにより、価値関数記憶部４０４が記憶する価値関数Ｑを更新する。
価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移する都度、即座に価値関数Ｑの更新を行う学習方法である。また、バッチ学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行う学習方法である。
【００６０】
行動情報生成部４０２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部４０２３は、Ｑ学習の過程において、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部４０３に対して出力する。
より具体的には、行動情報生成部４０２３は、例えば、状態Ｓに含まれるフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに対して行動Ａに含まれる、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋをインクレメンタルに加算又は減算させる。
【００６１】
そして、行動情報生成部４０２３は、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、測定した位相遅れが前回の位相遅れよりも小さくなるように行動Ａ´を選択する方策を取るようにしてもよい。
【００６２】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部４０２３は、次の行動Ａ´としては、例えば、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、測定した入出力ゲインが規範モデルの入出力ゲインよりも大きい場合には前回よりも入力ゲインの差がより小さくなるように、又は測定した位相遅れが前回の位相遅れよりも小さくなるように行動Ａ´を選択する方策を取るようにしてもよい。
【００６３】
なお、各係数ωｃ、τ、ｋは全てを修正してもよいが、一部の係数を修正してもよい。共振を生ずる中心周波数ｆｃは見つけやすく、中心周波数ｆｃは特定しやすい。そこで、行動情報生成部４０２３は、中心周波数ｆｃを仮に固定して、帯域幅ｆｗ及び減衰係数ｋを修正、すなわち、係数ωｃ（＝２πｆｃ）を固定し、係数τ（＝ｆｗ／ｆｃ）と及び減衰係数ｋを修正する動作を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部４０３に対して出力してもよい。
なお、フィルタ１３０の特性は図７に示すように、フィルタ１３０の帯域幅ｆｗによって、ゲイン及び位相が変わる。図７において、破線は帯域幅ｆｗが大きい場合を示し、実線は帯域幅ｆｗが小さい場合を示す。また、フィルタ１３０の特性は図８に示すように、フィルタ１３０の減衰係数ｋによって、ゲイン及び位相が変わる。図８において、破線は減衰係数ｋが小さい場合を示し、実線は減衰係数ｋが大きい場合を示す。
【００６４】
また、行動情報生成部４０２３は、現在の推定される行動Ａの価値の中で、最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するグリーディ法や、ある小さな確率εでランダムに行動Ａ´選択し、それ以外では最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するεグリーディ法といった公知の方法により、行動Ａ´を選択する方策を取るようにしてもよい。
【００６５】
行動情報出力部４０３は、学習部４０２から出力される行動情報Ａをフィルタ１３０に対して送信する部分である。フィルタ１３０は上述したように、この行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されている各係数ωｃ、τ、ｋを微修正することで、次の状態Ｓ´（すなわち修正された、フィルタ１３０の各係数）に遷移する。
【００６６】
価値関数記憶部４０４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部４０４に記憶された価値関数Ｑは、価値関数更新部４０２２により更新される。また、価値関数記憶部４０４に記憶された価値関数Ｑは、他の機械学習部４００との間で共有されるようにしてもよい。価値関数Ｑを複数の機械学習部４００で共有するようにすれば、各機械学習部４００にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【００６７】
最適化行動情報出力部４０５は、価値関数更新部４０２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値Ｑ（Ｓ，Ａ）が最大となる動作をフィルタ１３０に行わせるための行動情報Ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
より具体的には、最適化行動情報出力部４０５は、価値関数記憶部４０４が記憶している価値関数Ｑを取得する。この価値関数Ｑは、上述したように価値関数更新部４０２２がＱ学習を行うことにより更新したものである。そして、最適化行動情報出力部４０５は、価値関数Ｑに基づいて、行動情報を生成し、生成した行動情報をフィルタ１３０に対して出力する。この最適化行動情報には、行動情報出力部４０３がＱ学習の過程において出力する行動情報と同様に、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋを修正する情報が含まれる。
【００６８】
フィルタ１３０では、この行動情報に基づいて伝達関数の各係数ωｃ、τ、ｋが修正される。
機械学習部４００は、以上の動作で、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの最適化を行い、機械端の振動を抑制するように動作することができる。
以上のように、本発明に係る機械学習部４００を利用することで、フィルタ１３０のパラメータ調整を簡易化することができる。
【００６９】
以上、制御装置１０に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、制御装置１０は、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、制御装置１０は、アプリケーションソフトウェアやＯＳ（Operating System）等の各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置も備える。
【００７０】
そして、制御装置１０において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００７１】
機械学習部４００については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００７２】
次に、図９のフローチャートを参照して本実施形態におけるＱ学習時の機械学習部４００の動作について説明をする。
【００７３】
ステップＳ１１において、状態情報取得部４０１がサーボ制御部１００及び周波数生成部２００から最初の状態情報Ｓを取得する。取得した状態情報は、価値関数更新部４０２２や行動情報生成部４０２３に対して出力される。上述したように、この状態情報Ｓは、Ｑ学習における状態に相当する情報である。
【００７４】
最初にＱ学習を開始する時点での状態Ｓ０における入出力ゲイン（振幅比）Ｇｓ（Ｓ０）、及び位相遅れＤ（Ｓ０）は、周波数が変化する正弦波である速度指令を用いてサーボ制御回路１００を駆動することで、測定部３００から得られる。速度指令と検出速度は測定部３００に入力され、測定部３００から出力される入出力ゲイン（振幅比）Ｇｓ（Ｓ０）、及び位相遅れＤ（Ｓ０）が、状態情報取得部４０１に最初の状態情報として入力される。フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの初期値は予めユーザが生成し、状態情報取得部４０１その係数ωｃ、τ、ｋの初期値が最初の状態情報として送られる。
【００７５】
ステップＳ１２において、行動情報生成部４０２３は新たな行動情報Ａを生成し、生成した新たな行動情報Ａを、行動情報出力部４０３を介してフィルタ１３０に対して出力する。行動情報生成部４０２３は前述した方策に基づいて、新たな行動情報Ａを出力する。なお、行動情報Ａを受信したサーボ制御部１００は、受信した行動情報に基づいて現在の状態Ｓに係るフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋを修正した状態Ｓ´により、周波数が変化する正弦波である速度指令を用いてサーボモータ１５０を駆動する。上述したように、この行動情報は、Ｑ学習における行動Ａに相当するものである。
【００７６】
ステップＳ１３において、状態情報取得部４０１は、新たな状態Ｓ´における、入出力ゲイン（振幅比）Ｇｓ(Ｓ´）、及び位相遅れＤ（Ｓ´）及びフィルタ１３０から伝達関数の各係数ωｃ、τ、ｋを新たな状態情報として取得する。取得した新たな状態情報は、報酬出力部４０２１に対して出力される。
【００７７】
ステップＳ１４において、報酬出力部４０２１は、状態Ｓ´における各周波数の入出力ゲインＧｓ（Ｓ´）が、規範モデルの各周波数の入出力ゲインＧｂ以下かどうかを判断する。各周波数の入出力ゲインＧｓ（Ｓ´）が、規範モデルの各周波数の入出力ゲインＧｂより大きければ（ステップＳ１４のＮＯ）、ステップＳ１５において、報酬出力部４０２１は、報酬を第１の負の値とし、ステップＳ１２に戻る。
【００７８】
報酬出力部４０２１は、状態Ｓ´における各周波数の入出力ゲインＧｓ（Ｓ´）が、規範モデルの各周波数の入出力ゲインＧｂ以下であれば（ステップＳ１４のＹＥＳ）、位相遅れＤ（Ｓ´）が位相遅れＤ（Ｓ）と比べて小さくなるときは正の報酬を与え、位相遅れＤ（Ｓ´）が位相遅れＤ（Ｓ）と比べて大きくなるときは負の報酬を与え、位相遅れＤ（Ｓ´）が位相遅れＤ（Ｓ）と比べて変わらないときはゼロの報酬を与える。前述したように位相遅れが小さくなるように報酬を決める方法は例えば３つの方法が挙げられるが以下の例では第１の方法を取り上げて説明する。
ステップＳ１６において、具体的には、例えば、図３の位相線図において、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度のときの周波数が小さくなったときには、位相遅れＤ（Ｓ）＜位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、ステップＳ１７で、報酬の値を第２の負の値とする。なお第２の負の値の絶対値は第１の負の値よりも小さくする。状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度のときの周波数が大きくなったときには、位相遅れＤ（Ｓ）＞位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、ステップＳ１８で報酬の値を正の値とする。また、状態Ｓから状態Ｓ´となった場合に、位相遅れが１８０度のときの周波数が変わらないときには、位相遅れＤ（Ｓ）＝位相遅れＤ（Ｓ´）と定義して、報酬出力部４０２１は、ステップＳ１９で報酬の値をゼロの値とする。
【００７９】
ステップＳ１７、ステップＳ１８及びステップＳ１９の何れかが終了すると、ステップＳ２０において、この何れかのステップにて算出された報酬の値に基づいて、価値関数更新部４０２２が、価値関数記憶部４０４に記憶している価値関数Ｑを更新する。そして、再度ステップＳ１１に戻り、上述した処理を繰り返すことにより、価値関数Ｑは適切な値に収束していく。なお、上述した処理を、所定回数繰り返したことや、所定時間繰り返したことを条件として処理を終了するようにしてもよい。
なお、ステップＳ２０はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
【００８０】
以上、図９を参照して説明した動作により、本実施形態では、機械学習部４００を利用することで、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの調整のための、適切な価値関数を得ることができ、フィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの最適化を簡易化することができる、という効果を奏する。
次に、図１０のフローチャートを参照して、最適化行動情報出力部４０５による最適化行動情報の生成時の動作について説明をする。
まず、ステップＳ２１において、最適化行動情報出力部４０５は、価値関数記憶部４０４に記憶している価値関数Ｑを取得する。価値関数Ｑは、上述したように価値関数更新部４０２２がＱ学習を行うことにより更新したものである。
【００８１】
ステップＳ２２において、最適化行動情報出力部４０５は、この価値関数Ｑに基づいて、最適化行動情報を生成し、生成した最適化行動情報をフィルタ１３０に対して出力する。
【００８２】
また、図１０を参照して説明した動作により、本実施形態では、機械学習部４００により学習することにより求められる価値関数Ｑに基づいて、最適化行動情報を生成し、この最適化行動情報に基づいて、現在設定されているフィルタ１３０の伝達関数の各係数ωｃ、τ、ｋの調整を簡易化するとともに、機械端の振動を抑制し、ワークの加工面の品位を向上させることができる。
【００８３】
上記の制御装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００８４】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。
【００８５】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００８６】
また、上述した実施形態では、サーボモータ１５０により駆動される機械に１つの共振点がある場合について説明したが、機械に複数の共振点がある場合もある。機械に複数の共振点がある場合には、各共振点に対応するようにフィルタを複数個設けて、直列に接続することで、すべての共振を減衰させることができる。図１１は複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。図１１において、ｍ個（ｍは２以上の自然数）の共振点がある場合に、フィルタ１３０は、ｍ個のフィルタ１３０−１〜１３０−ｍを直列接続して構成する。ｍ個のフィルタ１３０−１〜１３０−ｍのそれぞれの係数ωｃ、τ、ｋについて、順次、共振点を減衰させる最適値を機械学習により求めていく。
【００８７】
また、制御装置の構成は図１の構成以外にも以下の構成がある。
＜機械学習部がサーボ制御部の外部に設けられた変形例＞
図１２は制御装置の他の構成例を示すブロック図である。図１２に示す制御装置１０Ａが、図１に示した制御装置１０と異なる点は、ｎ（ｎは２以上の自然数）個のサーボ制御部１００Ａ−１〜１００Ａ−ｎが、ネットワーク５００を介してｎ個の機械学習部４００Ａ−１〜４００Ａ−ｎに接続されていること、及びそれぞれ周波数生成部２００と測定部３００を備えていることである。機械学習部４００Ａ−１〜４００Ａ−ｎは図４に示した機械学習部４００と同じ構成を有している。サーボ制御部１００Ａ−１〜１００Ａ−ｎはそれぞれサーボ制御装置に対応しており、また機械学習部４００Ａ−１〜４００Ａ−ｎはそれぞれ機械学習装置に対応している。なお、周波数生成部２００と測定部３００の一方又は両方をサーボ制御部１００Ａ−１〜１００Ａ−ｎの外に設けてもよいことは勿論である。
【００８８】
ここで、サーボ制御部１００Ａ−１と、機械学習部４００Ａ−１とは１対１の組とされて、通信可能に接続されている。サーボ制御部１００Ａ−２〜１００Ａ−ｎと、機械学習部４００Ａ−２〜４００Ａ−ｎについてもサーボ制御部１００Ａ−１と機械学習部４００Ａ−１と同様に接続される。図１１では、サーボ制御部１００Ａ−１〜１００Ａ−ｎと、機械学習部４００Ａ−１〜４００Ａ−ｎとのｎ個の組は、ネットワーク５００を介して接続されているが、サーボ制御部１００Ａ−１〜１００Ａ−ｎと、機械学習部４００Ａ−１〜４００Ａ−ｎとのｎ個の組は、それぞれの組のサーボ制御部と機械学習部とが接続インタフェースを介して直接接続されてもよい。これらサーボ制御部１００Ａ−１〜１００Ａ−ｎと機械学習部４００Ａ−１〜４００Ａ−ｎとのｎ個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【００８９】
なお、ネットワーク５００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク５００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００９０】
＜システム構成の自由度＞
上述した実施形態では、サーボ制御部１００Ａ−１〜１００Ａ−ｎと、機械学習部４００Ａ−１〜４００Ａ−ｎとはそれぞれ１対１の組とされて通信可能に接続されているが、例えば１台の機械学習部が複数のサーボ制御部とネットワーク５００を介して通信可能に接続され、各サーボ制御部の機械学習を実施するようにしてもよい。
その際、１台の機械学習部の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、１台の機械学習部の各機能を実現してもよい。
【００９１】
また、ｎ台の同じ型名、同一仕様、又は同一シリーズのサーボ制御部１００Ａ−１〜１００Ａ−ｎとそれぞれ対応するｎ個の機械学習部４００Ａ−１〜４００Ａ−ｎがあった場合に、各機械学習部４００Ａ−１〜４００Ａ−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【符号の説明】
【００９２】
１０、１０Ａ  制御装置
１００、１００−１〜１００−ｎ  サーボ制御部
１１０  減算器
１２０  速度制御部
１３０  フィルタ
１４０  電流制御部
１５０  サーボモータ
２００  周波数生成部
３００  測定部
４００  機械学習部
４００Ａ−１〜４００Ａ−ｎ  機械学習部
４０１  状態情報取得部
４０２  学習部
４０３  行動情報出力部
４０４  価値関数記憶部
４０５  最適化行動情報出力部
５００  ネットワーク
【図１】
2020057211.tif 000005
【図２】
2020057211.tif 000006
【図３】
2020057211.tif 000007
【図４】
2020057211.tif 000008
【図５】
2020057211.tif 000009
【図６】
2020057211.tif 000010
【図７】
2020057211.tif 000011
【図８】
2020057211.tif 000012
【図９】
2020057211.tif 000013
【図１０】
2020057211.tif 000014
【図１１】
2020057211.tif 000015
【図１２】
2020057211.tif 000016