(57)【要約】【課題】機械特性が条件で変わる場合でも、フィルタ特性の最適な調整が可能とする。【解決手段】モータを制御するサーボ制御装置が複数の条件で駆動され、サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置の算出結果と、フィルタの係数と、複数の条件とを含む状態情報を取得する状態情報取得部と、状態情報に含まれる係数の調整情報を含む行動情報をフィルタに出力する行動情報出力部と、算出結果に基づいて複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、報酬出力部により出力される報酬の値と、状態情報と、行動情報とに基づいて行動価値関数を更新する価値関数更新部と、を備える。【選択図】図１
2020177257.tif 000002
【特許請求の範囲】
【請求項１】
モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部と、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部と、
を備えた機械学習装置。
【請求項２】
前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の複数の位置である、請求項１に記載の機械学習装置。
の機械学習装置。
【請求項３】
前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸の複数の位置である、請求項１に記載の機械学習装置。
【請求項４】
前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸を駆動するサーボ制御装置の複数の速度ゲインである、請求項１に記載の機械学習装置。
【請求項５】
前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れの少なくとも１つを算出する、請求項１から４のいずれか１項に記載の機械学習装置。
【請求項６】
前記複数の条件の各条件に応じて各評価値の重みを設定する、請求項１から５のいずれか１項に記載の機械学習装置。
【請求項７】
前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部を備えた請求項１から６のいずれか１項に記載の機械学習装置。
【請求項８】
請求項１から請求項７のいずれか１項に記載の機械学習装置と、
少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタを有する、モータを制御するサーボ制御装置と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置と、
を備えた制御装置。
【請求項９】
モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置の機械学習方法であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、
求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータを制御するサーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法に関する。
【背景技術】
【０００２】
フィルタの特性を調整する装置は、例えば特許文献１〜特許文献４に記載されている。
特許文献１には、ロボットの各軸ごとに設けられ、入力制御信号に応じてロボット軸を駆動するロボット軸駆動源と、制御信号からロボット軸の固有振動数に対応する周波数成分を除去する信号処理手段とを有し、信号処理手段で信号処理された制御信号をロボット軸駆動源に加えることにより、ロボット軸で発生する振動を低減させるロボットの振動低減装置において、ロボット各軸の現在位置を入力することにより、ロボット各軸の固有振動数を演算出力し、これを信号処理手段に加えるニューラルネットワークを設け、ニューラルネットワークから出力されるロボット軸の固有振動数に対応する周波数成分を、制御信号から除去するようにしたロボットの振動低減装置が記載されている。そして、特許文献１には、信号処理手段は、ノッチフィルタであり、ニューラルネットワークから出力されるロボット軸の固有振動数に応じてノッチ周波数が変化されることも記載されている。
【０００３】
特許文献２には、テーブル上に縦横交叉する可動ガイドおよび、その交叉点に移動ステージがそれぞれ配備されたＸＹステージの制御装置であって、移動ステージの共振運動のゲインを吸収するためのノッチ周波数が可変設定可能な可変ノッチフィルタと、テーブル上における移動ステージの位置情報を入力してノッチフィルタのノッチ周波数を切り換える切換信号を出力するための切換手段とを含んで成るＸＹステージ制御装置が記載されている。
【０００４】
特許文献３には、回転運動または往復運動を行う運動体を駆動するサーボアンプをトルク指令または電流指令に基づいて制御し、速度制御ゲインの調整時にサーボアンプへのトルク指令または電流指令をサンプリングする指令サンプリングと、速度制御ゲインの調整時に、トルク指令または電流指令のサンプリング値を、周波数における運動体のトルクの強さへ変換し、運動体のトルクの強さがピークとなる周波数帯域を発振帯域と判断する発振帯域判断と、速度制御ゲインの調整時に、発振帯域における運動体のトルクの強さを減衰させるように帯域阻止フィルタを設定するフィルタ設定と、を実行する演算処理部を備えた実施形態によるサーボ制御装置が記載されている。
【０００５】
特許文献４には、速度指令作成部と、トルク指令作成部と、速度検出部と、速度制御ループと、速度制御ループゲイン設定部と、トルク指令値の特定の帯域除去を行う少なくとも１つのフィルタと、速度制御ループへの正弦波掃引を行う正弦波外乱入力部と、速度制御ループ入出力信号の利得と位相を推定する周波数特性算出部と、共振周波数検出部と、共振周波数に応じてフィルタを調整するフィルタ調整部と、ゲイン調整部と、共振周波数の検出、速度制御ループゲインの調整、並びにフィルタの調整をオンラインで自動的に実施するシーケンス制御部と、調整状態表示部と、を具備し、調整状態表示部はシーケンス制御部の調整段階及び進行状況を表示するサーボ制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０７−２６１８５３号公報
【特許文献２】特開昭６２−１２６４０２号公報
【特許文献３】特開２０１３−１２６２６６号公報
【特許文献３】特開２０１７−０２２８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一つの軸のサーボ制御装置のノッチフィルタ等のフィルタの特性を決めるときに、機械特性が他の軸の位置又は他の軸のサーボ制御装置の速度ゲインの影響を受ける場合には、他の軸のある位置又はある速度ゲインでフィルタの特性を最適化しても、他の位置又は速度ゲインでは発振してしまう場合がある。また、他の軸の位置の影響を受けない場合においても、自軸の位置によっては、発振してしまう場合がある。
よって、機械特性が自軸の位置で変わる場合又は他の軸の影響を受ける場合でも、フィルタ特性の最適な調整を行うことが望まれている。
【課題を解決するための手段】
【０００８】
（１）  本開示の一態様は、モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部と、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部と、
を備えた機械学習装置である。
【０００９】
（２）  本開示の他の態様は、上記（１）の機械学習装置と、
少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタを有する、モータを制御するサーボ制御装置と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置と、
を備えた制御装置である。
【００１０】
（３）  本開示の更に他の態様は、モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタの係数を最適化する強化学習を行う機械学習装置の機械学習方法であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、
求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法である。
【発明の効果】
【００１１】
本開示の各態様によれば、工作機械、ロボット、産業機械等の機械特性が条件で変わる場合、例えば機械特性が１つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
【図面の簡単な説明】
【００１２】
【図１】本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。
【図２】入力信号となる速度指令と出力信号となる検出速度とを示す図である。
【図３】入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
【図４】制御装置の制御対象の一例を示す、５軸の工作機械を示す斜視図である。
【図５】Ｘ軸の左端でのＸ軸の周波数特性の一例を示す特性図である。
【図６】Ｘ軸の中央でのＸ軸の周波数特性の一例を示す特性図である。
【図７】Ｘ軸の右端でのＸ軸の周波数特性の一例を示す特性図である。
【図８】一方の軸のサーボ剛性で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。
【図９】一方の軸の位置で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。
【図１０】本開示の一実施形態の機械学習部を示すブロック図である。
【図１１】入出力ゲインの規範モデルを算出するためのモデルとなるブロック図である。
【図１２】規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部との入出力ゲインの周波数特性を示す特性図である。
【図１３】フィルタの帯域幅と、ゲイン及び位相との関係を示す特性図である。
【図１４】フィルタの減衰係数と、ゲイン及び位相との関係を示す特性図である。
【図１５】本実施形態におけるＱ学習時の機械学習部の動作を示すフローチャートである。
【図１６】本発明の一実施形態の機械学習部の最適化行動情報出力部の動作を説明するフローチャートである。
【図１７】複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。
【図１８】制御装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本開示の実施形態について図面を用いて詳細に説明する。
【００１４】
図１は本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。制御装置１０の制御対象５００は、例えば、工作機械、ロボット、産業機械である。制御装置１０は、工作機械、ロボット、産業機械等の制御対象の一部として設けられてもよい。
【００１５】
制御装置１０は、サーボ制御部１００、周波数生成部２００、周波数特性算出部３００及び機械学習部４００を備えている。サーボ制御部１００はサーボ制御装置に対応し、周波数特性算出部３００は周波数特性算出装置に対応し、機械学習部４００は機械学習装置に対応する。
なお、周波数生成部２００、周波数特性算出部３００及び機械学習部４００のうちの一つ又は複数はサーボ制御部１００の内に設けてもよい。周波数特性算出部３００は機械学習部４００内に設けられてもよい。
【００１６】
サーボ制御部１００は、減算器１１０、速度制御部１２０、フィルタ１３０、電流制御部１４０、及びサーボモータ１５０を備えている。減算器１１０、速度制御部１２０、フィルタ１３０、電流制御部１４０、及びサーボモータ１５０は速度フィードバックループを構成する。サーボモータ１５０は、直線運動をするリニアモータ、回転軸を有するモータ等を用いることができる。サーボモータ１５０は制御対象５００の一部として設けられてもよい。
【００１７】
減算器１１０は、入力された速度指令と速度フィードバックされた検出速度との差を求め、その差を速度偏差として速度制御部１２０に出力する。
【００１８】
速度制御部１２０は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令としてフィルタ１３０に出力する。
【００１９】
フィルタ１３０は特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタ又はローパスフィルタが用いられる。モータで駆動される工作機械等の機械では共振点が存在し、サーボ制御部１００で共振が増大する場合がある。ノッチフィルタ等のフィルタを用いることで共振を低減することができる。フィルタ１３０の出力はトルク指令として電流制御部１４０に出力される。
数式１（以下に数１として示す）は、フィルタ１３０としてのノッチフィルタの伝達関数Ｆ(ｓ)を示す。パラメータは係数ωｃ、τ、ｋを示す。
数式１の係数ｋは減衰係数、係数ωｃは中心角周波数、係数τは比帯域である。中心周波数をｆｃ、帯域幅をｆｗとすると、係数ωｃはωｃ＝２πｆｃ、係数τはτ＝ｆｗ／ｆｃで表される。
【数１】
2020177257.tif 000003
【００２０】
電流制御部１４０はトルク指令に基づいてサーボモータ１５０を駆動するための電流指令を生成し、その電流指令をサーボモータ１５０に出力する。
サーボモータ１５０がリニアモータの場合、可動部の位置は、サーボモータ１５０に設けられたリニアスケール（図示せず）によって検出され、位置検出値を微分することで速度検出値を求め、求められた速度検出値は速度フィードバックとして減算器１１０に入力される。
サーボモータ１５０が回転軸を有するモータの場合、回転角度位置は、サーボモータ１５０に設けられたロータリーエンコーダ（図示せず）によって検出され、速度検出値は速度フィードバックとして減算器１１０に入力される。
以上のようにサーボ制御部１００は構成されるが、フィルタの最適なパラメータを機械学習するために、制御装置１０は、周波数生成部２００、周波数特性算出部３００及び機械学習部４００を更に備える。
【００２１】
周波数生成部２００は、周波数を変化させながら正弦波信号を速度指令として、サーボ制御部１００の減算器１１０及び周波数特性算出部３００に出力する。
【００２２】
周波数特性算出部３００は、周波数生成部２００で生成された、入力信号となる速度指令（正弦波）と、ロータリーエンコーダ（図示せず）から出力された出力信号となる検出速度（正弦波）又はリニアスケールから出力される出力信号となる検出位置の積分（正弦波）とを用いて、速度指令により規定される各周波数ごとに、入力信号と出力信号との振幅比（入出力ゲイン）と位相遅れとを求める。図２は入力信号となる速度指令と出力信号となる検出速度とを示す図である。図３は入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
図２に示すように、周波数生成部２００から出力された速度指令は周波数が変化し、図３に示すような、入出力ゲイン（振幅比）と位相遅れについての周波数特性が得られる。
【００２３】
機械学習部４００は、周波数特性算出部３００から出力される入出力ゲイン（振幅比）と位相遅れを用いて、フィルタ１３０の伝達関数の係数ωｃ、τ、ｋを機械学習（以下、学習という）する。機械学習部４００による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
制御対象５００となる工作機械は、例えば、Ｘ軸、Ｙ軸及びＺ軸の直線３軸と、Ｂ軸、Ｃ軸の回転２軸を備えた、５軸の加工機である。図４は制御装置１０の制御対象の一例を示す、５軸の工作機械を示す斜視図である。図４では、サーボモータ１５０が制御対象５００となる工作機械に含まれた例を示している。
制御対象５００となる図４に示す工作機械は、Ｘ軸方向、Ｚ軸方向及びＹ軸方向にテーブル５１１、５２１、及び５３１をそれぞれ直線移動させるリニアモータ５１０、５２０、及び５３０を備えている。Ｙ軸のリニアモータ５３０はＺ軸のリニアモータ５２０上に載っている。また、工作機械は、Ｃ軸方向、Ｂ軸方向にテーブル５４１及び５５１をそれぞれ回転させるビルトインモータ５４０及び５５０を備えている。リニアモータ５１０、５２０、及び５３０は、テーブル５１１、５２１、及び５３１が可動部となっている。また、ビルトインモータ５４０及び５５０はテーブル５４１及び５５１が可動部となっている。よって、リニアモータ５１０、５２０、及び５３０、ビルトインモータ５４０及び５５０は、テーブル５１１、５２１、及び５３１、テーブル５４１及び５５１を、ギア等を介さずにダイレクト駆動する。リニアモータ５１０、５２０、及び５３０、ビルトインモータ５４０及び５５０は、それぞれサーボモータ１５０に対応する。
なお、テーブル５１１、５２１、及び５３１は、モータの回転軸を、カップリングを介してボールねじに接続し、このボールねじと螺合されるナットによって駆動されてもよい。
以下、機械学習部４００の構成及び動作の詳細について更に説明する。以下の説明では制御対象５００として図４に示した工作機械を例にとって説明する。
【００２４】
＜機械学習部４００＞
以下の説明では機械学習部４００が強化学習を行う場合について説明するが、機械学習部４００が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【００２５】
機械学習部４００に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習部４００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００２６】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、機械端の振動を抑制するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００２７】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Ｓの下で、行動Ａを選択する価値Ｑ（Ｓ，Ａ）を学習する方法であるＱ学習（Q-learning）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００２８】
しかしながら、Ｑ学習を最初に開始する時点では、状態Ｓと行動Ａとの組合せについて、価値Ｑ（Ｓ，Ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００２９】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式２（以下に数２として示す）により表すことができる。
【００３０】
【数２】
2020177257.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）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク６００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００９５】
＜システム構成の自由度＞
上述した実施形態では、サーボ制御部１００Ａ−１〜１００Ａ−ｎと、機械学習部４００Ａ−１〜４００Ａ−ｎとはそれぞれ１対１の組とされて通信可能に接続されているが、例えば１台の機械学習部が複数のサーボ制御部とネットワーク６００を介して通信可能に接続され、各サーボ制御部の機械学習を実施するようにしてもよい。
その際、１台の機械学習部の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、１台の機械学習部の各機能を実現してもよい。
【００９６】
また、ｎ台の同じ型名、同一仕様、又は同一シリーズのサーボ制御部１００Ａ−１〜１００Ａ−ｎとそれぞれ対応するｎ個の機械学習部４００Ａ−１〜４００Ａ−ｎがあった場合に、各機械学習部４００Ａ−１〜４００Ａ−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【００９７】
本開示による機械学習装置、制御装置及び機械学習方法は、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
（１）  モータ（サーボモータ１５０）を制御するサーボ制御装置（サーボ制御部１００）が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタ（フィルタ１３０）の係数を最適化する強化学習を行う機械学習装置（機械学習部４００）であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置（周波数特性算出部３００）の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部（状態情報取得部４０１）と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部（行動情報出力部４０３）と、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部（報酬出力部４０２１）と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部（価値関数更新部４０２２）と、
を備えた機械学習装置。
この機械学習装置によれば、機械特性が条件で変わる場合、例えば機械特性が１つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
【００９８】
（２）  前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の複数の位置である、上記（１）に記載の機械学習装置。
の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸の複数の位置によって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
【００９９】
（３）  前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸の複数の位置である、上記（１）に記載の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸上に載せられた又は前記一つの軸下の他の軸の複数の位置によって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
【０１００】
（４）  前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸を駆動するサーボ制御装置の複数の速度ゲインである、上記（１）に記載の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸上に載せられた又は前記一つの軸下の他の軸を駆動するサーボ制御装置の複数の速度ゲインによって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
【０１０１】
（５）  前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れの少なくとも１つを算出する、上記（１）から（４）のいずれかに記載の機械学習装置。
【０１０２】
（６）  前記複数の条件の各条件に応じて各評価値の重みを設定する、上記（１）から（５）のいずれかに記載の機械学習装置。
この機械学習装置によれば、複数の条件の各条件が機械特性に与える影響が異なる場合でも、その影響の程度によって各評価値の重みを設定することができる。
【０１０３】
（７）  前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部（最適化行動情報出力部４０５）を備えた、上記（１）から（６）のいずれかに記載の機械学習装置。
【０１０４】
（８）  上記（１）から（７）のいずれかに記載の機械学習装置（機械学習部４００）と、
少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタを有する、モータを制御するサーボ制御装置（サーボ制御部１００）と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出する周波数特性算出装置（周波数特性算出部３００）と、
を備えた制御装置。
この制御装置によれば、機械特性が条件で変わる場合、例えば機械特性が１つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
【０１０５】
（９）  モータ（サーボモータ１５０）を制御するサーボ制御装置（サーボ制御部１００）が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも１つの特定の周波数成分を減衰させる少なくとも１つのフィルタ（フィルタ１３０）の係数を最適化する強化学習を行う機械学習装置（機械学習部４００）の機械学習方法であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも１つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、
求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法。
この機械学習方法によれば、機械特性が条件で変わる場合、例えば機械特性が１つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
【符号の説明】
【０１０６】
１０、１０Ａ  制御装置
１００、１００−１〜１００−ｎ  サーボ制御部
１１０  減算器
１２０  速度制御部
１３０  フィルタ
１４０  電流制御部
１５０  サーボモータ
２００  周波数生成部
３００  周波数特性算出部
４００  機械学習部
４００Ａ−１〜４００Ａ−ｎ  機械学習部
４０１  状態情報取得部
４０２  学習部
４０３  行動情報出力部
４０４  価値関数記憶部
４０５  最適化行動情報出力部
５００  制御対象
６００  ネットワーク
【図１】
2020177257.tif 000005
【図２】
2020177257.tif 000006
【図３】
2020177257.tif 000007
【図４】
2020177257.tif 000008
【図５】
2020177257.tif 000009
【図６】
2020177257.tif 000010
【図７】
2020177257.tif 000011
【図８】
2020177257.tif 000012
【図９】
2020177257.tif 000013
【図１０】
2020177257.tif 000014
【図１１】
2020177257.tif 000015
【図１２】
2020177257.tif 000016
【図１３】
2020177257.tif 000017
【図１４】
2020177257.tif 000018
【図１５】
2020177257.tif 000019
【図１６】
2020177257.tif 000020
【図１７】
2020177257.tif 000021
【図１８】
2020177257.tif 000022