図面 (/)
課題
解決手段
モータを制御するサーボ制御装置が複数の条件で駆動され、サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置の算出結果と、フィルタの係数と、複数の条件とを含む状態情報を取得する状態情報取得部と、状態情報に含まれる係数の調整情報を含む行動情報をフィルタに出力する行動情報出力部と、算出結果に基づいて複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、報酬出力部により出力される報酬の値と、状態情報と、行動情報とに基づいて行動価値関数を更新する価値関数更新部と、を備える。
概要
背景
フィルタの特性を調整する装置は、例えば特許文献1〜特許文献4に記載されている。
特許文献1には、ロボットの各軸ごとに設けられ、入力制御信号に応じてロボット軸を駆動するロボット軸駆動源と、制御信号からロボット軸の固有振動数に対応する周波数成分を除去する信号処理手段とを有し、信号処理手段で信号処理された制御信号をロボット軸駆動源に加えることにより、ロボット軸で発生する振動を低減させるロボットの振動低減装置において、ロボット各軸の現在位置を入力することにより、ロボット各軸の固有振動数を演算出力し、これを信号処理手段に加えるニューラルネットワークを設け、ニューラルネットワークから出力されるロボット軸の固有振動数に対応する周波数成分を、制御信号から除去するようにしたロボットの振動低減装置が記載されている。そして、特許文献1には、信号処理手段は、ノッチフィルタであり、ニューラルネットワークから出力されるロボット軸の固有振動数に応じてノッチ周波数が変化されることも記載されている。
特許文献2には、テーブル上に縦横交叉する可動ガイドおよび、その交叉点に移動ステージがそれぞれ配備されたXYステージの制御装置であって、移動ステージの共振運動のゲインを吸収するためのノッチ周波数が可変設定可能な可変ノッチフィルタと、テーブル上における移動ステージの位置情報を入力してノッチフィルタのノッチ周波数を切り換える切換信号を出力するための切換手段とを含んで成るXYステージ制御装置が記載されている。
特許文献3には、回転運動または往復運動を行う運動体を駆動するサーボアンプをトルク指令または電流指令に基づいて制御し、速度制御ゲインの調整時にサーボアンプへのトルク指令または電流指令をサンプリングする指令サンプリングと、速度制御ゲインの調整時に、トルク指令または電流指令のサンプリング値を、周波数における運動体のトルクの強さへ変換し、運動体のトルクの強さがピークとなる周波数帯域を発振帯域と判断する発振帯域判断と、速度制御ゲインの調整時に、発振帯域における運動体のトルクの強さを減衰させるように帯域阻止フィルタを設定するフィルタ設定と、を実行する演算処理部を備えた実施形態によるサーボ制御装置が記載されている。
特許文献4には、速度指令作成部と、トルク指令作成部と、速度検出部と、速度制御ループと、速度制御ループゲイン設定部と、トルク指令値の特定の帯域除去を行う少なくとも1つのフィルタと、速度制御ループへの正弦波掃引を行う正弦波外乱入力部と、速度制御ループ入出力信号の利得と位相を推定する周波数特性算出部と、共振周波数検出部と、共振周波数に応じてフィルタを調整するフィルタ調整部と、ゲイン調整部と、共振周波数の検出、速度制御ループゲインの調整、並びにフィルタの調整をオンラインで自動的に実施するシーケンス制御部と、調整状態表示部と、を具備し、調整状態表示部はシーケンス制御部の調整段階及び進行状況を表示するサーボ制御装置が記載されている。
概要
機械特性が条件で変わる場合でも、フィルタ特性の最適な調整が可能とする。モータを制御するサーボ制御装置が複数の条件で駆動され、サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置の算出結果と、フィルタの係数と、複数の条件とを含む状態情報を取得する状態情報取得部と、状態情報に含まれる係数の調整情報を含む行動情報をフィルタに出力する行動情報出力部と、算出結果に基づいて複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、報酬出力部により出力される報酬の値と、状態情報と、行動情報とに基づいて行動価値関数を更新する価値関数更新部と、を備える。
目的
よって、機械特性が自軸の位置で変わる場合又は他の軸の影響を受ける場合でも、フィルタ特性の最適な調整を行うことが望まれている
効果
実績
- 技術文献被引用数
- 0件
- 牽制数
- 0件
この技術が所属する分野
(分野番号表示ON)※整理標準化データをもとに当社作成
請求項1
モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部と、前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部と、前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部と、を備えた機械学習装置。
請求項2
請求項3
前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸の複数の位置である、請求項1に記載の機械学習装置。
請求項4
前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸を駆動するサーボ制御装置の複数の速度ゲインである、請求項1に記載の機械学習装置。
請求項5
前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れの少なくとも1つを算出する、請求項1から4のいずれか1項に記載の機械学習装置。
請求項6
前記複数の条件の各条件に応じて各評価値の重みを設定する、請求項1から5のいずれか1項に記載の機械学習装置。
請求項7
前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部を備えた請求項1から6のいずれか1項に記載の機械学習装置。
請求項8
請求項1から請求項7のいずれか1項に記載の機械学習装置と、少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタを有する、モータを制御するサーボ制御装置と、前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置と、を備えた制御装置。
請求項9
モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置の機械学習方法であって、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法。
技術分野
0001
本発明は、モータを制御するサーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置、この機械学習装置を含む制御装置、及び機械学習方法に関する。
背景技術
0002
フィルタの特性を調整する装置は、例えば特許文献1〜特許文献4に記載されている。
特許文献1には、ロボットの各軸ごとに設けられ、入力制御信号に応じてロボット軸を駆動するロボット軸駆動源と、制御信号からロボット軸の固有振動数に対応する周波数成分を除去する信号処理手段とを有し、信号処理手段で信号処理された制御信号をロボット軸駆動源に加えることにより、ロボット軸で発生する振動を低減させるロボットの振動低減装置において、ロボット各軸の現在位置を入力することにより、ロボット各軸の固有振動数を演算出力し、これを信号処理手段に加えるニューラルネットワークを設け、ニューラルネットワークから出力されるロボット軸の固有振動数に対応する周波数成分を、制御信号から除去するようにしたロボットの振動低減装置が記載されている。そして、特許文献1には、信号処理手段は、ノッチフィルタであり、ニューラルネットワークから出力されるロボット軸の固有振動数に応じてノッチ周波数が変化されることも記載されている。
0003
特許文献2には、テーブル上に縦横交叉する可動ガイドおよび、その交叉点に移動ステージがそれぞれ配備されたXYステージの制御装置であって、移動ステージの共振運動のゲインを吸収するためのノッチ周波数が可変設定可能な可変ノッチフィルタと、テーブル上における移動ステージの位置情報を入力してノッチフィルタのノッチ周波数を切り換える切換信号を出力するための切換手段とを含んで成るXYステージ制御装置が記載されている。
0004
特許文献3には、回転運動または往復運動を行う運動体を駆動するサーボアンプをトルク指令または電流指令に基づいて制御し、速度制御ゲインの調整時にサーボアンプへのトルク指令または電流指令をサンプリングする指令サンプリングと、速度制御ゲインの調整時に、トルク指令または電流指令のサンプリング値を、周波数における運動体のトルクの強さへ変換し、運動体のトルクの強さがピークとなる周波数帯域を発振帯域と判断する発振帯域判断と、速度制御ゲインの調整時に、発振帯域における運動体のトルクの強さを減衰させるように帯域阻止フィルタを設定するフィルタ設定と、を実行する演算処理部を備えた実施形態によるサーボ制御装置が記載されている。
0005
特許文献4には、速度指令作成部と、トルク指令作成部と、速度検出部と、速度制御ループと、速度制御ループゲイン設定部と、トルク指令値の特定の帯域除去を行う少なくとも1つのフィルタと、速度制御ループへの正弦波掃引を行う正弦波外乱入力部と、速度制御ループ入出力信号の利得と位相を推定する周波数特性算出部と、共振周波数検出部と、共振周波数に応じてフィルタを調整するフィルタ調整部と、ゲイン調整部と、共振周波数の検出、速度制御ループゲインの調整、並びにフィルタの調整をオンラインで自動的に実施するシーケンス制御部と、調整状態表示部と、を具備し、調整状態表示部はシーケンス制御部の調整段階及び進行状況を表示するサーボ制御装置が記載されている。
先行技術
0006
特開平07−261853号公報
特開昭62−126402号公報
特開2013−126266号公報
特開2017−022855号公報
発明が解決しようとする課題
0007
一つの軸のサーボ制御装置のノッチフィルタ等のフィルタの特性を決めるときに、機械特性が他の軸の位置又は他の軸のサーボ制御装置の速度ゲインの影響を受ける場合には、他の軸のある位置又はある速度ゲインでフィルタの特性を最適化しても、他の位置又は速度ゲインでは発振してしまう場合がある。また、他の軸の位置の影響を受けない場合においても、自軸の位置によっては、発振してしまう場合がある。
よって、機械特性が自軸の位置で変わる場合又は他の軸の影響を受ける場合でも、フィルタ特性の最適な調整を行うことが望まれている。
課題を解決するための手段
0008
(1) 本開示の一態様は、モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部と、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部と、
を備えた機械学習装置である。
0009
(2) 本開示の他の態様は、上記(1)の機械学習装置と、
少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタを有する、モータを制御するサーボ制御装置と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置と、
を備えた制御装置である。
0010
(3) 本開示の更に他の態様は、モータを制御するサーボ制御装置が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタの係数を最適化する強化学習を行う機械学習装置の機械学習方法であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、
求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法である。
発明の効果
0011
本開示の各態様によれば、工作機械、ロボット、産業機械等の機械特性が条件で変わる場合、例えば機械特性が1つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
図面の簡単な説明
0012
本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。
入力信号となる速度指令と出力信号となる検出速度とを示す図である。
入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
制御装置の制御対象の一例を示す、5軸の工作機械を示す斜視図である。
X軸の左端でのX軸の周波数特性の一例を示す特性図である。
X軸の中央でのX軸の周波数特性の一例を示す特性図である。
X軸の右端でのX軸の周波数特性の一例を示す特性図である。
一方の軸のサーボ剛性で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。
一方の軸の位置で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。
本開示の一実施形態の機械学習部を示すブロック図である。
入出力ゲインの規範モデルを算出するためのモデルとなるブロック図である。
規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部との入出力ゲインの周波数特性を示す特性図である。
フィルタの帯域幅と、ゲイン及び位相との関係を示す特性図である。
フィルタの減衰係数と、ゲイン及び位相との関係を示す特性図である。
本実施形態におけるQ学習時の機械学習部の動作を示すフローチャートである。
本発明の一実施形態の機械学習部の最適化行動情報出力部の動作を説明するフローチャートである。
複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。
制御装置の他の構成例を示すブロック図である。
実施例
0013
以下、本開示の実施形態について図面を用いて詳細に説明する。
0014
図1は本開示の一実施形態の機械学習装置を含む制御装置を示すブロック図である。制御装置10の制御対象500は、例えば、工作機械、ロボット、産業機械である。制御装置10は、工作機械、ロボット、産業機械等の制御対象の一部として設けられてもよい。
0015
制御装置10は、サーボ制御部100、周波数生成部200、周波数特性算出部300及び機械学習部400を備えている。サーボ制御部100はサーボ制御装置に対応し、周波数特性算出部300は周波数特性算出装置に対応し、機械学習部400は機械学習装置に対応する。
なお、周波数生成部200、周波数特性算出部300及び機械学習部400のうちの一つ又は複数はサーボ制御部100の内に設けてもよい。周波数特性算出部300は機械学習部400内に設けられてもよい。
0016
サーボ制御部100は、減算器110、速度制御部120、フィルタ130、電流制御部140、及びサーボモータ150を備えている。減算器110、速度制御部120、フィルタ130、電流制御部140、及びサーボモータ150は速度フィードバックループを構成する。サーボモータ150は、直線運動をするリニアモータ、回転軸を有するモータ等を用いることができる。サーボモータ150は制御対象500の一部として設けられてもよい。
0019
フィルタ130は特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタ又はローパスフィルタが用いられる。モータで駆動される工作機械等の機械では共振点が存在し、サーボ制御部100で共振が増大する場合がある。ノッチフィルタ等のフィルタを用いることで共振を低減することができる。フィルタ130の出力はトルク指令として電流制御部140に出力される。
数式1(以下に数1として示す)は、フィルタ130としてのノッチフィルタの伝達関数F(s)を示す。パラメータは係数ωc、τ、kを示す。
数式1の係数kは減衰係数、係数ωcは中心角周波数、係数τは比帯域である。中心周波数をfc、帯域幅をfwとすると、係数ωcはωc=2πfc、係数τはτ=fw/fcで表される。
0020
電流制御部140はトルク指令に基づいてサーボモータ150を駆動するための電流指令を生成し、その電流指令をサーボモータ150に出力する。
サーボモータ150がリニアモータの場合、可動部の位置は、サーボモータ150に設けられたリニアスケール(図示せず)によって検出され、位置検出値を微分することで速度検出値を求め、求められた速度検出値は速度フィードバックとして減算器110に入力される。
サーボモータ150が回転軸を有するモータの場合、回転角度位置は、サーボモータ150に設けられたロータリーエンコーダ(図示せず)によって検出され、速度検出値は速度フィードバックとして減算器110に入力される。
以上のようにサーボ制御部100は構成されるが、フィルタの最適なパラメータを機械学習するために、制御装置10は、周波数生成部200、周波数特性算出部300及び機械学習部400を更に備える。
0021
周波数生成部200は、周波数を変化させながら正弦波信号を速度指令として、サーボ制御部100の減算器110及び周波数特性算出部300に出力する。
0022
周波数特性算出部300は、周波数生成部200で生成された、入力信号となる速度指令(正弦波)と、ロータリーエンコーダ(図示せず)から出力された出力信号となる検出速度(正弦波)又はリニアスケールから出力される出力信号となる検出位置の積分(正弦波)とを用いて、速度指令により規定される各周波数ごとに、入力信号と出力信号との振幅比(入出力ゲイン)と位相遅れとを求める。図2は入力信号となる速度指令と出力信号となる検出速度とを示す図である。図3は入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
図2に示すように、周波数生成部200から出力された速度指令は周波数が変化し、図3に示すような、入出力ゲイン(振幅比)と位相遅れについての周波数特性が得られる。
0023
機械学習部400は、周波数特性算出部300から出力される入出力ゲイン(振幅比)と位相遅れを用いて、フィルタ130の伝達関数の係数ωc、τ、kを機械学習(以下、学習という)する。機械学習部400による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
制御対象500となる工作機械は、例えば、X軸、Y軸及びZ軸の直線3軸と、B軸、C軸の回転2軸を備えた、5軸の加工機である。図4は制御装置10の制御対象の一例を示す、5軸の工作機械を示す斜視図である。図4では、サーボモータ150が制御対象500となる工作機械に含まれた例を示している。
制御対象500となる図4に示す工作機械は、X軸方向、Z軸方向及びY軸方向にテーブル511、521、及び531をそれぞれ直線移動させるリニアモータ510、520、及び530を備えている。Y軸のリニアモータ530はZ軸のリニアモータ520上に載っている。また、工作機械は、C軸方向、B軸方向にテーブル541及び551をそれぞれ回転させるビルトインモータ540及び550を備えている。リニアモータ510、520、及び530は、テーブル511、521、及び531が可動部となっている。また、ビルトインモータ540及び550はテーブル541及び551が可動部となっている。よって、リニアモータ510、520、及び530、ビルトインモータ540及び550は、テーブル511、521、及び531、テーブル541及び551を、ギア等を介さずにダイレクト駆動する。リニアモータ510、520、及び530、ビルトインモータ540及び550は、それぞれサーボモータ150に対応する。
なお、テーブル511、521、及び531は、モータの回転軸を、カップリングを介してボールねじに接続し、このボールねじと螺合されるナットによって駆動されてもよい。
以下、機械学習部400の構成及び動作の詳細について更に説明する。以下の説明では制御対象500として図4に示した工作機械を例にとって説明する。
0024
<機械学習部400>
以下の説明では機械学習部400が強化学習を行う場合について説明するが、機械学習部400が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
0025
機械学習部400に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習部400に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
0026
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、機械端の振動を抑制するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
0027
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
0028
しかしながら、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
0029
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γt)rt]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rtは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
0030
0031
上記の数式2において、Stは、時刻tにおける環境の状態を表し、Atは、時刻tにおける行動を表す。行動Atにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
0032
上述した数式2は、試行Atの結果、返ってきた報酬rt+1を元に、状態Stにおける行動Atの価値Q(St,At)を更新する方法を表している。
この更新式は、状態Stにおける行動Atの価値Q(St,At)よりも、行動Atによる次の状態St+1における最良の行動の価値maxa Q(St+1,A)の方が大きければ、Q(St,At)を大きくし、逆に小さければ、Q(St,At)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
0033
ここで、Q学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(S,A)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
0034
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(S,A)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
0035
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
0036
以上説明をしたQ学習を機械学習部400が行う。具体的には、機械学習部400は、フィルタ130の伝達関数の各係数ωc、τ、kの値、周波数特性算出部300から出力された入出力ゲイン(振幅比)と位相遅れを状態Sとして、当該状態Sに係る、フィルタ130の伝達関数の各係数ωc、τ、kの値の調整を行動Aとして選択する価値Qを学習する。
0037
機械学習部400は、フィルタ130の伝達関数の各係数ωc、τ、kに基づいて、前述した周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで周波数特性算出部300から得られた、各周波数ごとの入出力ゲイン(振幅比)と位相遅れとを含む状態情報Sを観測して、行動Aを決定する。機械学習部400は、行動Aをするたびに報酬が返ってくる。
機械学習部400は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習部400は、フィルタ130の伝達関数の各係数ωc、τ、kに基づいて、周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで周波数特性算出部300から得られた、各周波数ごとの入出力ゲイン(振幅比)と位相遅れとを含む状態Sに対して、最適な行動A(すなわち、フィルタ130の伝達関数の最適な係数ωc、τ、k)を選択することが可能となる。
0038
すなわち、機械学習部400により学習された価値関数Qに基づいて、或る状態Sに係るフィルタ130の伝達関数の各係数ωc、τ、kに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、周波数が変化する正弦波信号を生成するプログラムを実行することで生ずる機械端の振動が最小になるような行動A(すなわち、フィルタ130の伝達関数の各係数ωc、τ、k)を選択することが可能となる。
0039
状態Sは、フィルタ130の伝達関数の各係数ωc、τ、kの値、複数の条件の条件毎にサーボ制御部を駆動することで、周波数特性算出部300から出力される条件毎の入出力ゲイン(振幅比)と位相遅れ、及び複数の条件を含んでいる。
機械学習部400は、状態Sに含まれる、複数の条件の各条件での、入出力ゲイン(振幅比)と位相遅れとに基づいて、各条件で評価値を求め、各条件での評価値を加算することで報酬を求める。報酬を求める方法の詳細については後述する。
行動Aは、フィルタ130の伝達関数の各係数ωc、τ、kの修正情報である。
0040
複数の条件は、例えば、以下の3つの例を挙げることができる。
(a)サーボ制御部100によって制御される軸(例えばX軸)の複数の位置
複数の位置は、サーボ制御部100によって変えられた複数の位置、例えば200mm等の所定のピッチで規定される軸の複数の位置である。軸の左端、中央、右端のように決められた複数の位置であってもよい。複数の位置は4点以上であってもよい。
ここで、軸の位置は工作機械の場合は例えばテーブルの位置に対応する。サーボ制御部100によって制御されるX軸の位置は、サーボモータ150がリニアモータの場合、リニアスケールによって検出された、リニアモータの可動部(テーブル)の検出位置により判断される。可動部の検出位置はリニアスケールから機械学習部400に入力される。サーボモータ150が回転軸を有するモータの場合、例えば、モータの回転軸がカップリングを介してボールねじに接続され、ボールねじと螺合されたナットがテーブルを駆動する。そのため、サーボ制御部100によって制御される軸の位置は、テーブルに取り付けられたリニアスケールでテーブルの移動によって検出され、この検出位置により判断される。テーブルの検出位置(軸の位置)は機械学習部400に状態Sとして入力される。図1では制御対象500の一部となるテーブルに取り付けられたテーブルの検出位置(軸の位置)が機械学習部400に入力される様子を示している。状態Sは、フィルタ130の伝達関数の各係数ωc、τ、kの値、及び複数の条件(X軸の複数の位置)の条件毎にサーボ制御部を駆動することで、周波数特性算出部300から出力される、条件毎の入出力ゲイン(振幅比)と位相遅れの他に、各条件に対応する、テーブルの検出位置(軸の位置)を含んでいる。
0041
図5〜図7は、X軸の左端、中央、右端でのX軸の周波数特性(入出力ゲイン、位相遅れの周波数特性)の一例を示す特性図である。図5及び図7の入出力ゲインの周波数特性の点線で囲まれた領域に示すように、X軸の左端及び右端で共振が増大し、図6の入出力ゲインの周波数特性の点線で囲まれた領域に示すように、X軸の中央で共振が小さい。
機械学習部400は、状態Sに含まれる、各条件に対応する、X軸の複数の位置(例えば、X軸の左端、中央、右端)における、入出力ゲイン(振幅比)と位相遅れとに基づいて、各条件での評価値を求め、評価値の和により報酬を求める。
0042
(b)サーボ制御部100によって制御される軸(例えばY軸)とは異なる軸(例えばZ軸)を制御するサーボ制御部の複数の速度ゲイン
図8は一方の軸のサーボ剛性で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。ここで、サーボ剛性とは外乱に対する強さを示し、図8では、サーボ剛性が低いほど、一方の軸のサーボ剛性で他方の軸の入出力ゲインの周波数特性の変化が大きいことを示している。Z軸を制御するサーボ制御部の速度ゲインが小さい場合、Y軸のサーボ剛性が低く、Z軸を制御するサーボ制御部の速度ゲインが大きい場合、Y軸のサーボ剛性が高くなる。
よって、複数の速度ゲインは、図8に示すサーボ剛性の特性を考慮して設定される。
なお、ここでは、Z軸を制御するサーボ制御部の速度ゲインが異なる場合の、Y軸の周波数特性について説明したが、Z軸を制御するサーボ制御部の3つ以上の速度ゲインを設定してもよい。
0043
Z軸を制御するサーボ制御部の速度ゲインは、Y軸のサーボ制御部100のフィルタの係数を最適化する機械学習部400に状態Sとして入力される。状態Sは、フィルタ130の伝達関数の各係数ωc、τ、kの値、及び複数の条件(複数の速度ゲイン)の条件毎にサーボ制御部を駆動することで、周波数特性算出部300から出力される、条件毎の入出力ゲイン(振幅比)と位相遅れの他に、各条件に対応する、Z軸を制御するサーボ制御部の速度ゲインを含んでいる。
機械学習部400は、状態Sに含まれる、各条件に対応する、Z軸を制御するサーボ制御部の速度ゲインにおけるY軸の、入出力ゲイン(振幅比)と位相遅れとに基づいて、各条件での評価値を求め、評価値の和により報酬を求める。
0044
(c)サーボ制御部100によって制御される軸(例えばZ軸)とは異なる軸(例えばY軸)の複数の位置
サーボ制御部100によって制御される1つの軸の周波数特性が、他の軸の位置によって変わる場合がある。例えば、図4に示すように、Y軸がZ軸に上に載っており、Y軸の複数の位置によってZ軸の周波数特性が変わる場合である。複数の位置は、Y軸のサーボ制御部(不図示)によって変えられ、例えば200mm等の所定のピッチで規定される軸上の複数の位置である。Y軸の上端、下端のように決められた複数の位置であってもよい。複数の位置は3点以上であってもよい。サーボ制御部によって制御されるY軸の位置は、サーボモータ150がリニアモータの場合、リニアスケールによって検出された、リニアモータの可動部の検出位置により判断される。可動部の検出位置は、リニアスケールから、Z軸のサーボ制御部100のフィルタの係数を最適化する機械学習部400に入力される。
0045
サーボモータ150が回転軸を有するモータの場合、例えば、モータの回転軸がカップリングを介してボールねじに接続され、ボールねじと螺合されたナットが制御対象のテーブルを駆動する。そのため、サーボ制御部によって制御されるY軸の位置は、テーブルに取り付けられたリニアスケールでテーブルの移動が検出され、この検出位置により判断される。テーブルの検出位置は、状態Sとして、Z軸のサーボ制御部のフィルタの係数を最適化する機械学習部400に入力される。
図9は一方の軸の位置で他方の軸の入出力ゲインの周波数特性が変わる様子を示す模式的特性図である。図9では、一方の軸の位置(図9の軸位置Aと軸位置B)によって他方の軸の入出力ゲインの盛り上がりの位置及び大きさが変化する様子を示している。
0046
状態Sは、フィルタ130の伝達関数の各係数ωc、τ、kの値、及び複数の条件(Y軸の複数の位置)の条件毎にサーボ制御部を駆動することで、周波数特性算出部300から出力される、条件毎の入出力ゲイン(振幅比)と位相遅れの他に、各条件に対応する、Y軸のテーブルの検出位置(軸の位置)を含んでいる。
機械学習部400は、状態Sに含まれる、Y軸のそれぞれの位置(例えば、Y軸の上端、下端)でのZ軸の、入出力ゲイン(振幅比)と位相遅れとに基づいて、各条件に対応する、Y軸の複数の位置の各位置で評価値を求め、評価値の和を報酬とする。
機械学習部400は、状態Sに含まれる、Y軸の複数の位置(例えば、Y軸の上端、下端)でのZ軸の周波数特性の複数の条件の各条件(Y軸の上端又は下端)における、入出力ゲイン(振幅比)と位相遅れとに基づいて、各条件での評価値を求め、評価値の和により報酬を求める。
0047
上述した(b)では、Z軸を制御するサーボ制御部の速度ゲインによって、Y軸の周波数特性が変わる場合について説明したが、Y軸を制御するサーボ制御部の速度ゲインによって、Y軸の下のZ軸の周波数特性が変わる場合もある。また、上述した(c)では、サーボ制御部100によって制御されるZ軸の周波数特性が、Y軸の位置によって変わる場合について説明したが、サーボ制御部100によって制御されるY軸の周波数特性が、Z軸の位置によって変わる場合もある。
0048
上記のように例示される(a)〜(c)のいずれかの複数の条件における各評価値の和である報酬を用いて、機械学習部400が学習を行うことで、複数の条件によって周波数特性(入出力ゲイン、位相遅れの周波数特性)が変わる機械でもフィルタ130の伝達関数の最適な係数ωc、τ、kの調整を行うことが可能となる。
0049
評価値は、計算された入出力ゲインが規範モデルの入出力ゲイン以下である場合に、位相遅れが小さくなるときに与えられる正の値、位相遅れが大きくなるときに与えられる負の値、若しくは位相遅れが変わらないときに与えられるゼロの値である。規範モデルは、共振のない理想的な特性を有するサーボ制御部のモデルである。規範モデルの入出力ゲインについては後述する。
複数の条件における各評価値の和により報酬を求めることで、複数の各条件で入出力ゲインの周波数特性又は位相遅れが変わる場合でも、安定したフィルタ調整を行う学習を効率的に行うことができる。
0050
なお、複数の条件の各条件に応じた評価値に重みを与えてもよい。このように、評価値に重みを与えることで、各条件が機械特性に与える影響が異なる場合でも、その影響に応じた報酬を設定することができる。
例えば、上述した(a)において、X軸の左端、中央、右端の位置で、それぞれ求めた評価値をEs(L),Es(C),Es(R)とし、報酬をReとする。評価値Es(L),Es(C),Es(R)の重み付け係数を係数a、b、cとして、Re=a×Es(L)+b×Es(C)+c×Es(R)により報酬Reを求める。係数a、b、cは適宜決定してよく、例えば、X軸の中央で共振が発生しにくい工作機械の場合は係数bを係数a、cに比べて小さくしてもよい。
0051
各条件に応じた各評価値の和により報酬を求める場合、一つの評価値が負の値となっても、他の評価値が正の値となり、報酬が正の値となる可能性がある。
そこで、全ての評価値の値が0又は正の値となるときのみ、各条件に応じた各評価値の和により報酬を求めてもよい。そして、全ての評価値の中に一つでも負の値がある場合は、報酬を負の値とする。この負の値は大きな値(例えば−∞)として全ての評価値の中に一つでも負の値がある場合が選択されないようにすることが望ましい。こうすることで、どこの位置でも安定してフィルタ調整を行う学習を効率的に行うことができる。
0052
図10は本開示の一実施形態の機械学習部400を示すブロック図である。
上述した強化学習を行うために、図10に示すように、機械学習部400は、状態情報取得部401、学習部402、行動情報出力部403、価値関数記憶部404、及び最適化行動情報出力部405を備える。学習部402は報酬出力部4021、価値関数更新部4022、及び行動情報生成部4023を備える。
0053
状態情報取得部401は、フィルタ130の伝達関数の各係数ωc、τ、kに基づいて、速度指令(正弦波)を用いてサーボ制御部100を駆動することで得られた、各条件での入出力ゲイン(振幅比)と位相遅れとを含む状態Sを周波数特性算出部300から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。
状態情報取得部401は、取得した状態情報Sを学習部402に対して出力する。
0054
なお、最初にQ学習を開始する時点でのフィルタ130の伝達関数の各係数ωc、τ、kは、予めユーザが生成するようにする。本実施形態では、ユーザが作成したフィルタ130の伝達関数の各係数ωc、τ、kの初期設定値を、強化学習により最適なものに調整する。
なお、係数ωc、τ、kは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
0055
学習部402は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
0056
報酬出力部4021は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。
報酬出力部4021は、フィルタ130の伝達関数の各係数ωc、τ、kを修正した場合において各条件で計算された各入出力ゲインGsを、予め設定した規範モデルの各周波数ごとの入出力ゲインGbと比較する。報酬出力部4021は、計算された入出力ゲインGsが規範モデルの入出力ゲインGbよりも大きい場合には、第1の負の評価値を与える。一方、報酬出力部4021は、計算された入出力ゲインGsが規範モデルの入出力ゲインGb以下である場合には、位相遅れが小さくなるときは正の評価値を与え、位相遅れが大きくなるときは第2の負の評価値を与え、位相遅れが変わらないときはゼロの評価値を与える。なお、第2の負の値の絶対値は第1の負の値の絶対値よりも小さくして、計算された入出力ゲインGsが規範モデルの入出力ゲインGbよりも大きい場合が選択されないようにすることが望ましい。
0057
まず、報酬出力部4021が、計算された入出力ゲインGsが規範モデルの入出力ゲインGbよりも大きい場合に、負の評価値を与える動作について図11及び図12を用いて説明する。
報酬出力部4021は、入出力ゲインの規範モデルを保存している。規範モデルは、共振のない理想的な特性を有するサーボ制御部のモデルである。規範モデルは、例えば、図11に示すモデルのイナーシャJa、トルク定数Kt、比例ゲインKp、積分ゲインKI、微分ゲインKDから計算で求めることができる。イナーシャJaはモータイナーシャと機械イナーシャとの加算値である。
図12は、規範モデルのサーボ制御部と、学習前及び学習後のサーボ制御部100との入出力ゲインの周波数特性を示す特性図である。図12の特性図に示すように、規範モデルは、一定の入出力ゲイン以上、例えば、−20dB以上での理想的な入出力ゲインとなる周波数領域である領域Aと、一定の入出力ゲイン未満となる周波数領域である領域Bとを備えている。図12の領域Aにおいて、規範モデルの理想的な入出力ゲインを曲線MC1(太線)で示す。図12の領域Bにおいて、規範モデルの理想的な仮想入出力ゲインを曲線MC11(破線の太線)で示し、規範モデルの入出力ゲインを一定値として直線MC12(太線)で示す。図12の領域A及びBにおいて、学習前及び学習後のサーボ制御部との入出力ゲインの曲線をそれぞれ曲線RC1、RC2で示す。
0058
報酬出力部4021は、領域Aでは、計算された入出力ゲインの学習前の曲線RC1が規範モデルの理想的な入出力ゲインの曲線MC1を超えた場合は第1の負の評価値を与える。
入出力ゲインが十分小さくなる周波数を超える領域Bでは、学習前の入出力ゲインの曲線RC1が規範モデルの理想的な仮想入出力ゲインの曲線MC11を超えたとしても安定性への影響が小さくなる。そのため領域Bでは、上述したように、規範モデルの入出力ゲインは理想的なゲイン特性の曲線MC11ではなく、一定値の入出力ゲイン(例えば、−20dB)の直線MC12を用いる。しかし、学習前の計算された入出力ゲインの曲線RC1が一定値の入出力ゲインの直線MC12を超えた場合には不安定になる可能性があるため、評価値として第1の負の値を与える。
0059
次に、報酬出力部4021が、計算された入出力ゲインGsが規範モデルの入出力ゲインGb以下である場合に、各条件で計算された各位相遅れの情報に基づいて評価値を求め、評価値の和により報酬を決める動作について説明する。
以下の説明において、状態情報Sに係る状態変数である位相遅れをD(S)、行動情報A(フィルタ130の伝達関数の各係数ωc、τ、kの修正)により状態Sから変化した状態S´に係る状態変数である位相遅れをD(S´)で示す。
0060
報酬出力部4021は、各条件で、それぞれ評価値を求め、各条件での評価値の和を求めて報酬とする。
報酬出力部4021が、位相遅れの情報に基づいて評価値を決める方法は、例えば、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなるか、小さくなるか、又は同じになるかで評価値を決める方法を適用することができる。ここでは、位相遅れが180度の場合を取り上げたが、特に180度に限定されず他の値であってもよい。
例えば、位相遅れが図3に示した位相線図で示されたときに、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が小さくなるように(図3のX2方向に)曲線が変わると、位相遅れは大きくなる。一方、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなるように(図3のX1方向に)曲線が変わると、位相遅れが小さくなる。
0061
よって、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が小さくなったとき、位相遅れD(S)<位相遅れD(S´)と定義して、報酬出力部4021は、評価値の値を第2の負の値とする。なお第2の負の値の絶対値は第1の負の値よりも小さくする。
一方で、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなったとき、位相遅れD(S)>位相遅れD(S´)と定義して、報酬出力部4021は、評価値の値を正の値とする。
また、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が変わらないとき、位相遅れD(S)=位相遅れD(S´)と定義して、報酬出力部4021は、評価値の値をゼロの値とする。
位相遅れの情報に基づいて評価値を決める方法は上記の方法に限定されず、他の方法を適用することができる。
0062
なお、行動Aを実行後の状態S´の位相遅れD(S´)が、前の状態Sにおける位相遅れD(S)より大きくなったと定義した場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。例えば、上述した第1の方法において、周波数が小さくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S´の位相遅れD(S´)が、前の状態Sにおける位相遅れD(S)より小さくなったと定義した場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。例えば、上述した第1の方法において、周波数が大きくなった度合いに応じて正の値が大きくなるようにするとよい。
0063
報酬出力部4021は、各条件で、それぞれ評価値を求める。
そして、報酬出力部4021は、各条件での評価値を加算した報酬を求める。この報酬が、工作機械の各条件における各評価値の和となる。報酬出力部4021は、既に説明したように、計算された入出力ゲインの学習前の曲線RC1が規範モデルの理想的な入出力ゲインの曲線MC1を超えた場合は第1の負の評価値を与える。報酬出力部4021は、計算された入出力ゲインの学習前の曲線RC1が規範モデルの理想的な入出力ゲインの曲線MC1を超えた場合は位相遅れに基づく評価値を求めないため、計算された入出力ゲインの学習前の曲線RC1が規範モデルの理想的な入出力ゲインの曲線MC1を超えた場合は、評価値は第1の負の評価値となる。
0064
価値関数更新部4022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして算出された報酬と、に基づいてQ学習を行うことにより、価値関数記憶部404が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移する都度、即座に価値関数Qの更新を行う学習方法である。また、バッチ学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行う学習方法である。
0065
行動情報生成部4023は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部4023は、Q学習の過程において、フィルタ130の伝達関数の各係数ωc、τ、kを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部403に対して出力する。
より具体的には、行動情報生成部4023は、例えば、状態Sに含まれるフィルタ130の伝達関数の各係数ωc、τ、kに対して行動Aに含まれる、フィルタ130の伝達関数の各係数ωc、τ、kをインクレメンタルに加算又は減算してもよい。
0066
なお、各係数ωc、τ、kは全てを修正してもよいが、一部の係数を修正してもよい。共振を生ずる中心周波数fcは見つけやすく、中心周波数fcは特定しやすい。そこで、行動情報生成部4023は、中心周波数fcを仮に固定して、帯域幅fw及び減衰係数kを修正、すなわち、係数ωc(=2πfc)を固定し、係数τ(=fw/fc)と及び減衰係数kを修正する動作を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部403に対して出力してもよい。
なお、フィルタ130の特性は図13に示すように、フィルタ130の帯域幅fwによって、ゲイン及び位相が変わる。図13において、破線は帯域幅fwが大きい場合を示し、実線は帯域幅fwが小さい場合を示す。また、フィルタ130の特性は図14に示すように、フィルタ130の減衰係数kによって、ゲイン及び位相が変わる。図14において、破線は減衰係数kが小さい場合を示し、実線は減衰係数kが大きい場合を示す。
0067
また、行動情報生成部4023は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
0068
行動情報出力部403は、学習部402から出力される行動情報Aをフィルタ130に対して送信する部分である。フィルタ130は上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されている各係数ωc、τ、kを微修正することで、次の状態S´(すなわち修正された、フィルタ130の各係数)に遷移する。
0069
価値関数記憶部404は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部404に記憶された価値関数Qは、価値関数更新部4022により更新される。また、価値関数記憶部404に記憶された価値関数Qは、他の機械学習部400との間で共有されるようにしてもよい。価値関数Qを複数の機械学習部400で共有するようにすれば、各機械学習部400にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
0070
最適化行動情報出力部405は、価値関数更新部4022がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作をフィルタ130に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部405は、価値関数記憶部404が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部4022がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部405は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報をフィルタ130に対して出力する。この最適化行動情報には、行動情報出力部403がQ学習の過程において出力する行動情報と同様に、フィルタ130の伝達関数の各係数ωc、τ、kを修正する情報が含まれる。
0071
フィルタ130では、この行動情報に基づいて伝達関数の各係数ωc、τ、kが修正される。
機械学習部400は、以上の動作で、フィルタ130の伝達関数の各係数ωc、τ、kの最適化を行い、機械端の振動を抑制するように動作することができる。
そして、機械学習部400は、機械特性が条件で変わる場合、例えば機械特性が1つの軸の位置で変わる場合又は他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
以上のように、本開示の機械学習部400を利用することで、フィルタ130のパラメータ調整を簡易化することができる。
0072
以上、制御装置10に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、制御装置10は、CPU(Central Processing Unit)等の演算処理装置を備える。また、制御装置10は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
0073
そして、制御装置10において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
0074
機械学習部400については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
0075
次に、図15のフローチャートを参照して本実施形態におけるQ学習時の機械学習部400の動作について説明をする。
0076
ステップS11において、状態情報取得部401がサーボ制御部100及び周波数生成部200から最初の状態情報Sを取得する。取得した状態情報は、価値関数更新部4022や行動情報生成部4023に対して出力される。上述したように、この状態情報Sは、Q学習における状態に相当する情報である。
0077
最初にQ学習を開始する時点での状態S0における、各条件での入出力ゲイン(振幅比)Gs(S0)、及び位相遅れD(S0)は、周波数が変化する正弦波である速度指令を用いてサーボ制御部100を駆動することで、周波数特性算出部300から得られる。速度指令と検出速度は周波数特性算出部300に入力され、周波数特性算出部300から出力される、各条件での、入出力ゲイン(振幅比)Gs(S0)、及び位相遅れD(S0)が、順次、状態情報取得部401に最初の状態情報として入力される。フィルタ130の伝達関数の各係数ωc、τ、kの初期値は予めユーザが生成し、状態情報取得部401その係数ωc、τ、kの初期値が最初の状態情報として送られる。
0078
ステップS12において、行動情報生成部4023は新たな行動情報Aを生成し、生成した新たな行動情報Aを、行動情報出力部403を介してフィルタ130に対して出力する。行動情報生成部4023は前述した方策に基づいて、新たな行動情報Aを出力する。なお、行動情報Aを受信したサーボ制御部100は、受信した行動情報に基づいて現在の状態Sに係るフィルタ130の伝達関数の各係数ωc、τ、kを修正した状態S´により、周波数が変化する正弦波である速度指令を用いてサーボモータ150を駆動する。上述したように、この行動情報は、Q学習における行動Aに相当するものである。
0079
ステップS13において、状態情報取得部401は、新たな状態S´における、入出力ゲイン(振幅比)Gs(S´)、及び位相遅れD(S´)及びフィルタ130から伝達関数の各係数ωc、τ、kを新たな状態情報として取得する。取得した新たな状態情報は、報酬出力部4021に対して出力される。
0080
ステップS14において、報酬出力部4021は、状態S´における各周波数の入出力ゲインGs(S´)が、規範モデルの各周波数の入出力ゲインGb以下かどうかを判断する。各周波数の入出力ゲインGs(S´)が、規範モデルの各周波数の入出力ゲインGbより大きければ(ステップS14のNO)、ステップS15において、報酬出力部4021は、評価値を第1の負の値とし、ステップS12に戻る。
0081
報酬出力部4021は、状態S´における各周波数の入出力ゲインGs(S´)が、規範モデルの各周波数の入出力ゲインGb以下であれば(ステップS14のYES)、位相遅れD(S´)が位相遅れD(S)と比べて小さくなるときは正の評価値を与え、位相遅れD(S´)が位相遅れD(S)と比べて大きくなるときは負の評価値を与え、位相遅れD(S´)が位相遅れD(S)と比べて変わらないときはゼロの評価値を与える。位相遅れが小さくなるように評価値を決める方法は例えば前述した方法が挙げられるが、特にこの方法に限定されず、他の方法を用いてもよい。
0082
ステップS16において、具体的には、例えば、図3の位相線図において、状態Sから状態S´となった場合に、位相遅れが180度のときの周波数が小さくなったときには、位相遅れD(S)<位相遅れD(S´)と定義して、報酬出力部4021は、ステップS17で、評価値の値を第2の負の値とする。なお第2の負の値の絶対値は第1の負の値よりも小さくする。状態Sから状態S´となった場合に、位相遅れが180度のときの周波数が大きくなったときには、位相遅れD(S)>位相遅れD(S´)と定義して、報酬出力部4021は、ステップS18で評価値の値を正の値とする。また、状態Sから状態S´となった場合に、位相遅れが180度のときの周波数が変わらないときには、位相遅れD(S)=位相遅れD(S´)と定義して、報酬出力部4021は、ステップS19で評価値の値をゼロの値とする。
0083
ステップS17、ステップS18及びステップS19の何れかが終了すると、ステップS20において、ステップ20において、複数の条件で評価値を求めたかどうかを判断し、複数の条件で評価値を求めていない、すなわち、複数の条件うちで評価値を求めていない条件があるときは、ステップS13に戻り、評価値を求めていない条件に変えて状態情報を取得する。複数の条件で評価値を求めた場合には、ステップS21で、複数の条件のそれぞれに対して求めた評価値(ステップS17、ステップS18及びステップS1のいずれかにて算出された評価値)を加算し、評価値の和を報酬とする。
次に、ステップS22において、ステップS21にて算出された報酬の値に基づいて、価値関数更新部4022が、価値関数記憶部404に記憶している価値関数Qを更新する。そして、再度ステップS12に戻り、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。なお、上述した処理を、所定回数繰り返したことや、所定時間繰り返したことを条件として処理を終了するようにしてもよい。
なお、ステップS21はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
0084
以上、図15を参照して説明した動作により、本実施形態では、機械学習部400を利用することで、フィルタ130の伝達関数の各係数ωc、τ、kの調整のための、適切な価値関数を得ることができ、フィルタ130の伝達関数の各係数ωc、τ、kの最適化を簡易化することができる、という効果を奏する。
次に、図16のフローチャートを参照して、最適化行動情報出力部405による最適化行動情報の生成時の動作について説明をする。
まず、ステップS23において、最適化行動情報出力部405は、価値関数記憶部404に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部4022がQ学習を行うことにより更新したものである。
0085
ステップS24において、最適化行動情報出力部405は、この価値関数Qに基づいて、最適化行動情報を生成し、生成した最適化行動情報をフィルタ130に対して出力する。
0086
また、図16を参照して説明した動作により、本実施形態では、機械学習部400により学習することにより求められる価値関数Qに基づいて、最適化行動情報を生成し、この最適化行動情報に基づいて、現在設定されているフィルタ130の伝達関数の各係数ωc、τ、kの調整を簡易化するとともに、機械端の振動を抑制し、ワークの加工面の品位を向上させることができる。
0087
以上の説明した実施形態では、上述した(a)、(b)又は(c)の複数の条件、入出力ゲイン、位相遅れの周波数特性が変わる場合の学習を例にとって説明した。
しかし、上述した(a)、(b)及び(c)の複数の条件は適宜組み合わせて機械学習部400が学習することもできる。例えば、Y軸の周波数特性は、Y軸自身の位置、Z軸の位置及びZ軸のサーボ制御部の速度ゲインの影響を受ける可能性があるが、これらを組み合わせて複数の条件を設定することができる。具体的には、Y軸の機械学習部400は、例えば、Y軸自身の左端、中央、右端位置の第1の複数の条件と、Z軸の左端、中央、右端位置の第2の複数の条件と、Z軸のサーボ制御部の速度ゲインの第3の複数の条件のうちから適宜複数の条件を組み合わせて学習を行ってもよい。
0088
上記の制御装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
0089
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。
0090
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
0091
また、上述した実施形態では、サーボモータ150により駆動される機械に1つの共振点がある場合について説明したが、機械に複数の共振点がある場合もある。機械に複数の共振点がある場合には、各共振点に対応するようにフィルタを複数個設けて、直列に接続することで、すべての共振を減衰させることができる。図17は複数のフィルタを直接接続してフィルタを構成した例を示すブロック図である。図17において、m個(mは2以上の自然数)の共振点がある場合に、フィルタ130は、m個のフィルタ130−1〜130−mを直列接続して構成する。m個のフィルタ130−1〜130−mのそれぞれの係数ωc、τ、kについて、順次、共振点を減衰させる最適値を機械学習により求めていく。
0092
また、制御装置の構成は図1の構成以外にも以下の構成がある。
<機械学習部がサーボ制御部の外部に設けられた変形例>
図18は制御装置の他の構成例を示すブロック図である。図18に示す制御装置10Aが、図1に示した制御装置10と異なる点は、n(nは2以上の自然数)個のサーボ制御部100A−1〜100A−nが、ネットワーク600を介してn個の機械学習部400A−1〜400A−nに接続されていること、及びそれぞれ周波数生成部200と周波数特性算出部300を備えていることである。機械学習部400A−1〜400A−nは図10に示した機械学習部400と同じ構成を有している。サーボ制御部100A−1〜100A−nはそれぞれサーボ制御装置に対応しており、また機械学習部400A−1〜400A−nはそれぞれ機械学習装置に対応している。なお、周波数生成部200と周波数特性算出部300の一方又は両方をサーボ制御部100A−1〜100A−nの外に設けてもよいことは勿論である。
0093
ここで、サーボ制御部100A−1と、機械学習部400A−1とは1対1の組とされて、通信可能に接続されている。サーボ制御部100A−2〜100A−nと、機械学習部400A−2〜400A−nについてもサーボ制御部100A−1と機械学習部400A−1と同様に接続される。図18では、サーボ制御部100A−1〜100A−nと、機械学習部400A−1〜400A−nとのn個の組は、ネットワーク600を介して接続されているが、サーボ制御部100A−1〜100A−nと、機械学習部400A−1〜400A−nとのn個の組は、それぞれの組のサーボ制御部と機械学習部とが接続インタフェースを介して直接接続されてもよい。これらサーボ制御部100A−1〜100A−nと機械学習部400A−1〜400A−nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
0094
なお、ネットワーク600は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク600における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
0095
<システム構成の自由度>
上述した実施形態では、サーボ制御部100A−1〜100A−nと、機械学習部400A−1〜400A−nとはそれぞれ1対1の組とされて通信可能に接続されているが、例えば1台の機械学習部が複数のサーボ制御部とネットワーク600を介して通信可能に接続され、各サーボ制御部の機械学習を実施するようにしてもよい。
その際、1台の機械学習部の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、1台の機械学習部の各機能を実現してもよい。
0096
また、n台の同じ型名、同一仕様、又は同一シリーズのサーボ制御部100A−1〜100A−nとそれぞれ対応するn個の機械学習部400A−1〜400A−nがあった場合に、各機械学習部400A−1〜400A−nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
0097
本開示による機械学習装置、制御装置及び機械学習方法は、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
(1)モータ(サーボモータ150)を制御するサーボ制御装置(サーボ制御部100)が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタ(フィルタ130)の係数を最適化する強化学習を行う機械学習装置(機械学習部400)であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置(周波数特性算出部300)の算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得する状態情報取得部(状態情報取得部401)と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力する行動情報出力部(行動情報出力部403)と、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として出力する報酬出力部(報酬出力部4021)と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新部(価値関数更新部4022)と、
を備えた機械学習装置。
この機械学習装置によれば、機械特性が条件で変わる場合、例えば機械特性が1つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
0098
(2) 前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の複数の位置である、上記(1)に記載の機械学習装置。
の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸の複数の位置によって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
0099
(3) 前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸の複数の位置である、上記(1)に記載の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸上に載せられた又は前記一つの軸下の他の軸の複数の位置によって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
0100
(4) 前記モータは、工作機械、ロボット、又は産業機械の一つの軸を駆動し、
前記複数の条件は、前記軸の上に載せられた又は前記軸の下の他の軸を駆動するサーボ制御装置の複数の速度ゲインである、上記(1)に記載の機械学習装置。
この機械学習装置によれば、工作機械、ロボット、又は産業機械の一つの軸上に載せられた又は前記一つの軸下の他の軸を駆動するサーボ制御装置の複数の速度ゲインによって機械特性が変わる場合でも、フィルタ特性の最適な調整が可能となる。
0101
(5) 前記周波数特性算出装置は、周波数が変わる正弦波の入力信号と、前記サーボ制御装置の速度フィードバック情報とを用いて、前記入出力ゲインと前記入出力の位相遅れの少なくとも1つを算出する、上記(1)から(4)のいずれかに記載の機械学習装置。
0102
(6) 前記複数の条件の各条件に応じて各評価値の重みを設定する、上記(1)から(5)のいずれかに記載の機械学習装置。
この機械学習装置によれば、複数の条件の各条件が機械特性に与える影響が異なる場合でも、その影響の程度によって各評価値の重みを設定することができる。
0103
(7) 前記価値関数更新部により更新された価値関数に基づいて、前記係数の調整情報を出力する最適化行動情報出力部(最適化行動情報出力部405)を備えた、上記(1)から(6)のいずれかに記載の機械学習装置。
0104
(8) 上記(1)から(7)のいずれかに記載の機械学習装置(機械学習部400)と、
少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタを有する、モータを制御するサーボ制御装置(サーボ制御部100)と、
前記サーボ制御装置における、前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出する周波数特性算出装置(周波数特性算出部300)と、
を備えた制御装置。
この制御装置によれば、機械特性が条件で変わる場合、例えば機械特性が1つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
0105
(9)モータ(サーボモータ150)を制御するサーボ制御装置(サーボ制御部100)が複数の条件で駆動され、前記サーボ制御装置に設けられた少なくとも1つの特定の周波数成分を減衰させる少なくとも1つのフィルタ(フィルタ130)の係数を最適化する強化学習を行う機械学習装置(機械学習部400)の機械学習方法であって、
前記サーボ制御装置の入出力ゲインと入出力の位相遅れの少なくとも1つを算出した算出結果と、前記フィルタの係数と、前記複数の条件とを含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記フィルタに出力し、
前記算出結果に基づいて、前記複数の条件における評価値をそれぞれ求め、これらの評価値の和の値を報酬として求め、
求められた前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する、機械学習方法。
この機械学習方法によれば、機械特性が条件で変わる場合、例えば機械特性が1つの軸の位置で変わる場合又は機械特性が他の軸の影響を受ける場合でも、フィルタ特性の最適な調整が可能となる。
0106
10、10A制御装置
100、100−1〜100−nサーボ制御部
110減算器
120速度制御部
130フィルタ
140電流制御部
150サーボモータ
200周波数生成部
300周波数特性算出部
400機械学習部
400A−1〜400A−n 機械学習部
401状態情報取得部
402 学習部
403行動情報出力部
404価値関数記憶部
405 最適化行動情報出力部
500制御対象
600 ネットワーク