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

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

▶ ファナック株式会社の特許一覧

特許7405537機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法
<>
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図1
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図2
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図3
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図4
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図5
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図6
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図7
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図8
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図9
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図10
  • 特許-機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法
(51)【国際特許分類】
   G05B 19/19 20060101AFI20231219BHJP
   G05B 19/4155 20060101ALI20231219BHJP
   G05B 11/36 20060101ALI20231219BHJP
   G05B 13/02 20060101ALI20231219BHJP
   G05D 3/12 20060101ALI20231219BHJP
【FI】
G05B19/19 L
G05B19/4155 V
G05B11/36 D
G05B13/02 L
G05D3/12 305Z
【請求項の数】 9
(21)【出願番号】P 2019161883
(22)【出願日】2019-09-05
(65)【公開番号】P2021039648
(43)【公開日】2021-03-11
【審査請求日】2022-05-17
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】梁 瑶
(72)【発明者】
【氏名】恒木 亮太郎
【審査官】野口 絢子
(56)【参考文献】
【文献】特開2017-102617(JP,A)
【文献】特開平08-314517(JP,A)
【文献】特開2019-008472(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B19/18-19/416
G05B11/36
G05B13/02
G05D 3/00- 3/20
(57)【特許請求の範囲】
【請求項1】
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部に対して、機械学習を行う機械学習装置であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数との少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力する行動情報出力部と、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、
を備えている、機械学習装置。
【請求項2】
前記第1のサーボ制御情報は、前記第1のサーボ制御部の位置指令と位置フィードバック情報、又は前記第1のサーボ制御部の第1の位置偏差を含み、
前記評価関数は、前記第1のサーボ制御情報に含まれる前記第1のサーボ制御部の位置指令と位置フィードバック情報とから求められる前記第1の位置偏差からなる集合又は前記第1のサーボ制御情報に含まれる前記第1のサーボ制御部の第1の位置偏差からなる集合に含まれる、該第1の位置偏差の絶対値又は該絶対値の2乗を含む値の集合により評価関数値を算出する評価関数であって、
前記報酬出力部は、前記評価関数によって算出される前記評価関数値に基づいて前記報酬の値を出力する請求項1に記載の機械学習装置。
【請求項3】
前記第2のサーボ制御部の位置指令に関する変数は、前記第2のサーボ制御部の、前記位置指令、前記位置指令の1回微分及び前記位置指令の2回微分の少なくとも1つであり、前記第2のサーボ制御部の位置フィードバック情報に関する変数は、前記第2のサーボ制御部の、前記位置フィードバック情報、前記位置フィードバック情報の1回微分及び前記位置フィードバック情報の2回微分の少なくとも1つである、請求項1又は2に記載の機械学習装置。
【請求項4】
前記第1及び前記第2のサーボ制御部を制御する学習時の加工プログラムは、機械学習時に、前記干渉を与える軸を動かし、前記干渉を受ける軸を静止させる、請求項1から3のいずれか1項に記載の機械学習装置。
【請求項5】
前記価値関数更新部により更新された価値関数に基づいて、前記補正部の前記係数の調整情報を出力する最適化行動情報出力部を備えた請求項1から4のいずれか1項に記載の機械学習装置。
【請求項6】
請求項1から5のいずれか1項に記載の機械学習装置と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御装置。
【請求項7】
請求項1から5のいずれか1項に記載の機械学習装置と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部を含むサーボ制御装置と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御システム。
【請求項8】
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部に対して、機械学習を行う機械学習装置の機械学習方法であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習方法は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力し、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法。
【請求項9】
更新された前記価値関数に基づいて、最適化行動情報となる、前記補正部の前記係数の調整情報を出力する請求項8に記載の機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部に対して、機械学習を行う機械学習装置、この機械学習装置を含むサーボ制御装置とサーボ制御システム、及び機械学習方法に関する。
【背景技術】
【0002】
複数の軸を有する機械を駆動する複数のモータを制御する複数のサーボ制御部を有する装置は、例えば特許文献1及び特許文献2に記載されている。
特許文献1には、工作機械、ロボット、又は産業機械に係る第1の軸を駆動する第1のモータを制御する第1のモータ制御部と、第1の軸と異なる方向の第2の軸を駆動する第2のモータを制御する第2のモータ制御部と、を含む制御装置が記載されている。そして、特許文献1には、制御装置に係る動作特性を評価するための、第1及び第2のモータ制御部を動作させる評価用プログラムであって、第1及び第2のモータで駆動される第1及び第2の軸によって移動する制御対象の移動軌跡の形状が少なくとも、第1及び第2のモータの回転方向がともに反転しない角(かど)のある形状と、第1及び第2のモータの一方が一方向に回転し、且つ第1及び第2のモータの他方の回転方向が反転する弧を描く形状とを備えるように、第1及び第2のモータ制御部を動作させる評価用プログラムが記載されている。
【0003】
特許文献2には、一つの位置指令制御装置と、各サーボモータ毎に設けられた複数個の位置駆動制御部を有し、位置指令制御装置より位置指令を与えられる位置駆動制御装置と、を具備した位置駆動制御システムにおいて、各軸の制御状態データを格納する共有メモリを有し、位置駆動制御部は、多軸の同期・同調制御時には、他軸の制御状態データを共有メモリより取得して他軸の負荷変動に応じた軸間修正指令値を算出する軸間修正速度・トルク制御部を有し、この軸間修正速度・トルク制御部により算出された軸間修正指令値により自軸の指令値を修正する位置駆動制御システムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-003404号公報
【文献】特開2001-100819号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の軸を駆動する複数のモータを複数のサーボ制御部で制御する場合、一つのサーボ制御部が一つの軸を駆動した場合に、その一の軸の駆動が、他のサーボ制御部が駆動する他の軸の駆動に干渉する場合がある。
干渉を受ける側のサーボ制御部における指令追従性を向上させるには、その干渉を補正することが望まれる。
【課題を解決するための手段】
【0006】
(1) 本開示の第1の態様は、複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部に対して、機械学習を行う機械学習装置であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得する状態情報取得部と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力する行動情報出力部と、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力する報酬出力部と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部と、
を備えている、機械学習装置である。
【0007】
(2) 本開示の第2の態様は、上記(1)に記載の機械学習装置と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御装置である。
【0008】
(3) 本開示の第3の態様は、上記(1)項に記載の機械学習装置と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部を含むサーボ制御装置と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御システムである。
【0009】
(4) 本開示の第4の態様は、複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部に対して、機械学習を行う機械学習装置の機械学習方法であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部は、干渉を与える軸に関する第2のサーボ制御部の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部を備え、
前記機械学習方法は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力し、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法である。
【発明の効果】
【0010】
本開示の各態様によれば、干渉を受ける軸に関するサーボ制御部において、煩雑な調整を回避しつつ、軸間干渉を補正し、指令追従性を向上させることができる。
【図面の簡単な説明】
【0011】
図1】本開示の第1の実施形態のサーボ制御装置を示すブロック図である。
図2】工作機械となる4軸加工機の主軸を移動する主軸移動機構の部分構成図である。
図3】工作機械となる5軸加工機のワークを搭載するテーブル機構を示す部分構成図である。
図4】本開示の一実施形態の機械学習部を示すブロック図である。
図5図2に示した4軸加工機を駆動する場合の機械学習による係数調整前の位置フィードバック情報の変動を示す特性図である。
図6図2に示した4軸加工機を駆動する場合の機械学習による係数調整前の位置フィードバック情報の変動を示す特性図である。
図7図3に示した5軸加工機を駆動する場合の機械学習による係数調整前の回転軸とX軸の位置フィードバック情報の変動を示す特性図である。
図8図3に示した5軸加工機を駆動する場合の機械学習による係数調整前の回転軸とX軸の位置フィードバック情報の変動を示す特性図である。
図9】本開示の一実施形態の機械学習部の動作を説明するフローチャートである。
図10】本開示の一実施形態の機械学習部の最適化行動情報出力部の動作を説明するフローチャートである。
図11】サーボ制御装置と機械学習装置とを含むサーボ制御システムの一構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本開示の実施形態について図面を用いて詳細に説明する。
【0013】
(第1の実施形態)
図1は本開示の第1の実施形態のサーボ制御装置を示すブロック図である。
図1に示すように、サーボ制御装置10は、サーボ制御部100、200と、機械学習部300とを備えている。機械学習部300は機械学習装置となる。機械学習部300はサーボ制御部100又はサーボ制御部200内に設けられてもよい。工作機械20はサーボ制御部100、200によって駆動される。
サーボ制御部100及び200の制御対象として、ここでは工作機械20を取り上げて説明するが、制御対象となる機械は工作機械に限定されず、例えばロボット,産業機械等であってもよい。サーボ制御部100及び200は、工作機械、ロボット、産業機械等の機械の一部として設けられてもよい。
【0014】
サーボ制御部100及び200は工作機械20の2軸を制御する。工作機械は例えば、3軸加工機、4軸加工機又は5軸加工機であり、2軸は、例えば、Y軸とZ軸等の2つの直線軸、又はX軸とB軸等の直線軸と回転軸である。工作機械20の具体的な構成については後述する。
【0015】
サーボ制御部100は、減算器101、加算器102、位置制御部103、加算器104、減算器105、速度制御部106、加算器107、サーボモータ108、ロータリーエンコーダ109、積分器110、位置偏差補正部111、速度指令補正部112及びトルク指令補正部113を備えている。
サーボ制御部200は、減算器201、位置制御部202、加算器203、減算器204、速度制御部205、サーボモータ206、ロータリーエンコーダ207、積分器208、及び位置フィードフォワード部209を備えている。
サーボ制御部100は干渉を受ける軸に関する第1のサーボ制御部、サーボ制御部200は干渉を与える軸に関する第2のサーボ制御部に対応する。
【0016】
サーボ制御部100とサーボ制御部200との違いは、サーボ制御部100が位置偏差補正部111、速度指令補正部112及びトルク指令補正部113を備えていることである。位置偏差補正部111、速度指令補正部112及びトルク指令補正部113は、サーボ制御部200が工作機械20の一つの軸を駆動した場合に、その一の軸の駆動が、サーボ制御部100が駆動する他の軸の駆動に干渉するために、当該一の軸の駆動の影響をサーボ制御部100で補正するために設けられる。
図1では、位置フィードフォワード部209はサーボ制御部200に設けられているが、設けられなくともよい。また、位置フィードフォワード部209はサーボ制御部100に設けられても、サーボ制御部100とサーボ制御部200の両方に設けられてもよい。
【0017】
以下、サーボ制御装置10の各部及び工作機械20について更に説明する。まず、サー干渉を与える軸に関するサーボ制御部200について説明する。なお、干渉を受ける軸に関するサーボ制御部100は後述する。
【0018】
<サーボ制御部200>
位置指令xは、上位制御装置又は外部入力装置等で、所定の加工プログラムに従って、サーボモータ206の速度を変化させるためにパルス周波数を変えるように生成される。位置指令xは制御指令となる。位置指令xは、減算器201、位置フィードフォワード部209、位置偏差補正部111、速度指令補正部112、トルク指令補正部113及び機械学習部300に出力される。
【0019】
減算器201は、位置指令xと位置フィードバック(位置FB)された検出位置(位置フィードバック情報x’となる)との差を求め、その差を位置偏差として位置制御部202に出力する。
【0020】
位置制御部202は、位置偏差にポジションゲインKpを乗じた値を、速度指令として加算器203に出力する。
【0021】
加算器203は、速度指令と位置フィードフォワード部209の出力値(位置フィードフォワード項)とを加算して、フィードフォワード制御された速度指令として減算器204に出力する。
減算器204は加算器203の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部205に出力する。
【0022】
速度制御部205は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令としてサーボモータ206に出力する。
積分器208はロータリーエンコーダ207から出力される速度検出値を積分して位置検出値を出力する。
ロータリーエンコーダ207は速度検出値を速度フィードバック情報として減算器204に出力する。積分器129は速度検出値から位置検出値を求め、その位置検出値を位置フィードバック(位置FB)情報x’として減算器201に出力する。位置フィードバック(位置FB)情報x’は、機械学習部300、位置偏差補正部111、速度指令補正部112及びトルク指令補正部113にも出力される。
ロータリーエンコーダ207及び積分器208は検出器となり、サーボモータ206は、回転運動をするモータであっても、直線運動をするリニアモータであってもよい。
【0023】
位置フィードフォワード部209は、位置指令値を微分して定数を掛けた値に、位置フィードフォワード係数を掛けた値を位置フィードフォワード項として、加算器203に出力する。
以上のように、サーボ制御部200は構成される。
【0024】
<サーボ制御部100>
位置指令yは、上位制御装置や外部入力装置等で、所定の加工プログラムに従って、サーボモータ108の速度を変化させるためにパルス周波数を変えるように生成される。位置指令yは制御指令となる。位置指令yは、減算器101及び機械学習部300に出力される。
【0025】
減算器101は、位置指令yと、位置フィードバックされた検出位置(位置フィードバック情報y’となる)との差を求め、その差を位置偏差として加算器102に出力する。
加算器102は、位置偏差と、位置偏差補正部111から出力される位置偏差補正値との差を求めて、その差を補正された位置偏差として位置制御部103に出力する。
【0026】
位置制御部103は、補正された位置偏差にポジションゲインKpを乗じた値を、速度指令として加算器104に出力する。
【0027】
加算器104は、速度指令と、速度指令補正部112から出力される速度指令補正値との差を求めて、その差を補正された速度指令として減算器105に出力する。
減算器105は加算器104の出力と、速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部106に出力する。
【0028】
速度制御部106は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令として加算器107へ出力する。
加算器107は、トルク指令と、トルク指令補正部113から出力されるトルク指令補正値との差を求めて、その差を補正されたトルク指令としてサーボモータ108に出力する。
【0029】
積分器110はロータリーエンコーダ109から出力される速度検出値を積分して位置検出値を出力する。
ロータリーエンコーダ109は速度検出値を速度フィードバック情報として減算器105に出力する。積分器110は速度検出値から位置検出値を求め、その位置検出値を位置フィードバック情報y’として減算器101及び機械学習部300に出力する。
ロータリーエンコーダ109及び積分器110は検出器となり、サーボモータ108は、回転運動をするモータであっても、直線運動をするリニアモータであってもよい。
【0030】
位置偏差補正部111は、サーボ制御部200の積分器208から出力される位置フィードバック情報x’、サーボ制御部200へ入力される位置指令x、及び機械学習部300から出力される以下の数式1(以下の数1)で示される関数の係数a~aの変更量を受け、数式1を用いて、位置偏差補正値Errcompを求めて加算器102に出力する。
【数1】
【0031】
速度指令補正部112は、サーボ制御部200の積分器208から出力される位置フィードバック情報x’、サーボ制御部200へ入力される位置指令x、及び機械学習部300から出力される以下の数式2(以下の数2)で示される関数の係数b~bの変更量を受け、数式2を用いて、速度指令補正値Vcmdcompを求めて加算器104に出力する。
【数2】
【0032】
トルク指令補正部113は、サーボ制御部200の積分器208から出力される位置フィードバック情報x’、サーボ制御部200へ入力される位置指令x、及び機械学習部300から出力される以下の数式3(以下の数3)で示される関数の係数c~cの変更量を受け、数式3を用いて、トルク指令補正値Tcmdcompを求めて加算器107に出力する。
【数3】
【0033】
位置偏差補正部111、速度指令補正部112及びトルク指令補正部113は、補正部に対応し、サーボ制御部200の位置指令x、位置フィードバック情報x’を用いてサーボ制御部100の位置偏差の補正値Errcomp、速度指令の補正値Vcmdcomp及びトルク指令の補正値Tcmdcompを作成する。サーボ制御部100の位置偏差、速度指令及びトルク指令には、方向を無視して補正値Errcomp、速度指令の補正値Vcmdcomp及びトルク指令の補正値Tcmdcompのスカラ値が加算される。このようにして、サーボ制御部100の位置偏差、速度指令及びトルク指令からサーボ制御部200によって駆動される軸による干渉量を削除することができる。位置偏差補正部111、速度指令補正部112及びトルク指令補正部113は全て設ける必要はなく、必要に応じて、位置偏差補正部111、速度指令補正部112及びトルク指令補正部113のうちの1つ又は2つを設けてもよい。
【0034】
なお、数式1~3はそれぞれ位置指令x、位置指令xの1回微分、位置指令xの2回微分、位置フィードバック情報x’、位置フィードバック情報x’の1回微分、位置フィードバック情報x’の2回微分を変数として含む式となっている。しかし、数式1~3はこれらの変数を全て含まなくてもよく、適宜1つ又は複数を選択してもよい。例えば、位置指令xの2回微分と位置フィードバック情報x’の2回微分、すなわち、位置指令xの加速度と位置フィードバック情報x’の加速度とから位置偏差の補正値Errcomp、速度指令の補正値Vcmdcomp及びトルク指令の補正値Tcmdcompを求めてよい。
位置指令x、位置指令xの1回微分、位置指令xの2回微分はそれぞれ位置指令に関する変数、位置フィードバック情報x’、位置フィードバック情報x’の1回微分、位置フィードバック情報x’の2回微分はそれぞれ位置指令に関する変数となる。
以上のように、サーボ制御部100は構成される。
【0035】
<工作機械20>
工作機械20は、例えば、3軸加工機、4軸加工機、5軸加工機である。
図2は、4軸加工機の主軸を移動する主軸移動機構の部分構成図である。図3は5軸加工機のワークを搭載するテーブル機構を示す部分構成図である。
工作機械20が図2に示す4軸加工機20Aである場合に、例えばサーボ制御部200はY軸の直線移動を制御し、サーボ制御部100はZ軸の直線移動を制御する。この場合、サーボ制御部200は干渉を与える軸に関するサーボ制御部、サーボ制御部100は干渉を受ける軸に関するサーボ制御部となる。
【0036】
図2に示すように、X軸移動台22が静止台21上にX軸方向に移動可能に載置され、Y軸移動柱23がX軸移動台22上にY軸方向に移動可能に載置される。また、主軸取り付け台24がY軸移動柱23の側面に取り付けられ、主軸25が主軸取り付け台24に対して、B軸について回動可能に、且つZ軸方向に移動可能に取り付けられる。例えば、Y軸移動柱23のY軸方向の加減速時に、主軸25のZ軸方向の駆動がY軸から干渉を受ける。
【0037】
工作機械20が図3に示す5軸加工機20Bである場合に、例えばサーボ制御部200は回転軸の回転を制御し、サーボ制御部100は直線軸となるX軸の直線移動を制御する。図3に示すように、偏心荷重のある回転割出テーブル28の回転軸が直線軸上に配置された場合、相互に影響を与え干渉を生ずる。この干渉を排除するために、サーボ制御部100とサーボ制御部200との少なくとも一方に補正部を設ける。ここでは、サーボ制御部100に補正部として位置偏差補正部111、速度指令補正部112、トルク指令補正部113が設けられている。図2に示す4軸加工機20Aと同様に、サーボ制御部200は干渉を与える軸のサーボ制御部、サーボ制御部100は干渉を受ける軸のサーボ制御部となる。サーボ制御部200に入力される位置指令は回転軸の回転角度を規定する指令である。
【0038】
図3に示すように、X軸移動台27が静止台26上にX軸方向に移動可能に載置され、回転割出テーブル28がX軸移動台27上で回動可能に載置される。回転割出テーブル28に搭載されるワーク又はワーク保持具の影響により、回転軸の中心からずれた位置に偏心荷重29が形成される場合がある。偏心荷重29が形成されると、X軸移動台27と回転割出テーブル28との間に相互に干渉を生ずる。
【0039】
なお、サーボ制御部100及びサーボ制御部200の構成は、図2に示した4軸加工機20Aを駆動する場合でも、図3に示した5軸加工機20Bを駆動する場合でも構成は同じである。ただし、サーボ制御部100の位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの値は、Y軸がZ軸に干渉する図2に示した4軸加工機20Aと、回転軸とX軸とが相互に干渉する図3に示す5軸加工機20Bとでは互いに異なる。
【0040】
<機械学習部300>
機械学習部300は、予め設定された加工プログラム(以下、「学習時の加工プログラム」ともいう)を実行し、サーボ制御部100から出力される位置指令y及び位置フィードバック(位置FB)情報yを用いて、位置偏差補正部111の係数a~a、速度指令補正部112の係数b~b及びトルク指令補正部113の係数c~cを機械学習(以下、学習という)する。機械学習部300は機械学習装置となる。機械学習部300による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
以下では、工作機械20として4軸加工機20Aを用い、サーボ制御部200が、学習時の加工プログラムによりサーボモータ206を制御し、サーボモータ206が4軸加工機20AのY軸を駆動するものとする。またサーボ制御部100は、学習時の加工プログラムによりサーボモータ108を制御し、サーボモータ108が4軸加工機20AのZ軸を駆動するものとする。
4軸加工機20Aを駆動する学習時の加工プログラムは、干渉を与える軸のサーボ制御部200を制御することでY軸を往復移動させればよく、干渉を受ける軸のサーボ制御部100を制御することでZ軸を往復移動させてもさせなくともよい。以下の説明ではZ軸を移動させない場合について説明する。
学習時の加工プログラムによって、上位制御装置又は外部入力装置は、サーボ制御部200にY軸を往復移動させる位置指令を出力し、サーボ制御部100にはZ軸を静止させる位置指令が出力される。しかし、Z軸を静止させる位置指令が入力されても、サーボ制御部100は、Y軸の移動による干渉によって、サーボ制御部100の位置偏差、速度指令、及びトルク指令が影響を受ける。そこで、機械学習部300は、位置偏差補正部111の係数a1~a6、速度指令補正部112の係数b1~b6及びトルク指令補正部113の係数c1~c6を学習することで位置偏差、速度指令、及びトルク指令の補正値を最適な値に設定する。
【0041】
以下、機械学習部300について更に詳細に説明する。
以下の説明では機械学習部300が強化学習を行う場合について説明するが、機械学習部300が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【0042】
機械学習部300に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習部300に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【0043】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、干渉を受ける軸に関するサーボ制御部において、軸間干渉を補正するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【0044】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
【0045】
しかしながら、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
【0046】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式4(以下に数4として示す)により表すことができる。
【0047】
【数4】
【0048】
上記の数式4において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
【0049】
上述した数式3は、試行Aの結果、返ってきた報酬rt+1を元に、状態Sにおける行動Aの価値Q(S,A)を更新する方法を表している。
この更新式は、状態Sにおける行動Aの価値Q(S,A)よりも、行動Aによる次の状態St+1における最良の行動の価値max Q(St+1,A)の方が大きければ、Q(S,A)を大きくし、逆に小さければ、Q(S,A)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【0050】
ここで、Q学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(S,A)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
【0051】
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(S,A)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
【0052】
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
【0053】
以上説明をしたQ学習を機械学習部300が行う。具体的には、機械学習部300は、学習時の加工プログラムを実行することでサーボ制御部200から位置指令xの集合と位置フィードバック情報x’の集合を取得する。また、機械学習部300は、学習時の加工プログラムを実行することでサーボ制御部100の位置指令yの集合と位置フィードバック情報y’の集合を取得する。位置指令yと位置フィードバック情報y’とは第1のサーボ制御情報となり、位置指令xと位置フィードバック情報x’とは第2のサーボ制御情報となる。位置指令yはZ軸の静止を指令する。位置指令xの集合と位置フィードバック情報x’ の集合、及び位置指令yの集合と位置フィードバック情報y’の集合は状態Sとなる。そして、機械学習部300は、当該状態Sに係る、サーボ制御部100の位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの値の調整を行動Aとして選択する価値Qを学習する。
【0054】
サーボ制御部200は、学習時の加工プログラムを実行し、Y軸を駆動するサーボモータ206のサーボ制御を行う。また、サーボ制御部100は、学習時の加工プログラムを実行し、係数a~aを備えた数式1、係数b~bを備えた数式2、係数c~cを備えた数式3で求められる位置偏差補正値、速度指令補正値、トルク指令補正値を用いて位置偏差、速度指令、トルク指令を補正しつつ、位置指令に基づいてZ軸が静止するようにサーボモータ108のサーボ制御を行う。
【0055】
機械学習部300は、学習時の加工プログラムを実行することで取得される、位置指令xの集合と位置フィードバック情報x’の集合、及び位置指令yの集合と位置フィードバック情報y’の集合を含む状態Sの情報を観測して、行動Aを決定する。機械学習部300は、行動Aをするたびに報酬を与える。機械学習部300は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習部300は、学習時の加工プログラムを実行することで取得される位置指令xの集合と位置フィードバック情報x’の集合、及び係数a~a、係数b~b、係数c~cに基づいて、学習時の加工プログラムを実行することで取得される位置指令yの集合と位置フィードバック情報y’の集合を含む状態Sに対して、最適な行動A(すなわち、係数a~a、係数b~b、係数c~c)を選択することが可能となる。
【0056】
すなわち、機械学習部300により学習された価値関数Qに基づいて、或る状態Sに係る係数a~a、係数b~b、係数c~cに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、学習時の加工プログラムを実行することで生ずる軸間干渉を補正するような行動A(すなわち、係数a~a、係数b~b、係数c~c)を選択することが可能となる。
【0057】
図4は本開示の一実施形態の機械学習部300を示すブロック図である。
上述した強化学習を行うために、図7に示すように、機械学習部300は、状態情報取得部301、学習部302、行動情報出力部303、価値関数記憶部304、及び最適化行動情報出力部305を備える。学習部302は報酬出力部3021、価値関数更新部3022、及び行動情報生成部3023を備える。
【0058】
状態情報取得部301は、学習時の加工プログラムを実行することで取得される、サーボ制御部200の位置指令xの集合と位置フィードバック情報x’(第2のサーボ制御情報となる)の集合、及び位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cに基づいて、学習時の加工プログラムを実行することで取得される、サーボ制御部100の位置指令yの集合と位置フィードバック情報y’ の集合を含む状態Sを取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。なお、図4においては、係数a~a、係数b~b、係数c~cは、簡略化のために係数a、b、cと示している。
状態情報取得部301は、取得した状態情報Sを学習部302に対して出力する。
【0059】
なお、最初にQ学習を開始する時点での位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した係数a~a、係数b~b、係数c~cの初期設定値を、強化学習により最適なものに調整する。
なお、係数a~a、係数b~b、係数c~cは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【0060】
学習部302は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
【0061】
報酬出力部3021は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。行動A(係数a~a、係数b~b、係数c~cの修正)により状態Sから変化した状態を状態S’で示す。
報酬出力部3021は、状態S及び状態S’における、位置指令yと位置フィードバック情報y’の差(y-y’)を求める。報酬出力部3021で、位置指令yと位置フィードバック情報y’の差により求められた位置偏差は第の位置偏差となる。差(y-y’)の集合を位置偏差集合と呼び、状態Sにおける位置偏差集合をPD(S)、状態S’における位置偏差集合をPD(S’)で示す。
【0062】
評価関数fとしては、干渉を受ける軸のサーボ制御部100の位置偏差(y-y’)を位置偏差eで示すとき、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数、
∫e2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
等を適用することができる。
位置偏差集合PD(S)により求められた評価関数fの値を評価関数値f(PD(S))、位置偏差集合PD(S’)により求められた評価関数fの値を評価関数値f(PD(S’))とする。
サーボ制御部100に入力される位置指令yが、Z軸を静止させる指令でなく、Z軸を報復移動させる指令であっても、評価関数は上記評価関数fを用いることができる。
【0063】
このとき、行動情報Aにより修正された状態情報S’に係る修正後の位置偏差補正部111、速度指令補正部112及びトルク指令補正部113に基づいてサーボ制御部100が動作したときの評価関数値f(PD(S’))が、行動情報Aにより修正される前の状態情報Sに係る修正前の位置偏差補正部111、速度指令補正部112及びトルク指令補正部113に基づいてサーボ制御部100が動作したときの評価関数値f(PD(S))よりも大きくなった場合に、報酬出力部3021は、報酬の値を負の値とする。
【0064】
一方で、評価関数値f(PD(S’))が、評価関数値f(PD(S))よりも小さくなった場合に、報酬出力部3021は、報酬の値を正の値とする。
なお、評価関数f(PD(S’))が、評価関数値f(PD(S))と等しい場合は、報酬出力部3021は、報酬の値をゼロとする。
【0065】
また、行動Aを実行後の状態S’の評価関数値f(PD(S’))が、前の状態Sにおける評価関数値f(PD(S))より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまりf(PD(S’))の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S’の評価関数値f(PD(S’))が、前の状態Sにおける評価関数値f(PD(S))より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまりf(PD(S’))の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
【0066】
価値関数更新部3022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S’と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部304が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
【0067】
オンライン学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S’に遷移する都度、即座に価値関数Qの更新を行う学習方法である。また、バッチ学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S’に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行う学習方法である。
【0068】
行動情報生成部3023は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部3023は、Q学習の過程において、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部303に対して出力する。より具体的には、行動情報生成部3023は、例えば、状態Sに含まれる位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cに対して行動Aに含まれる、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cをインクレメンタルに加算又は減算させる。
【0069】
そして、行動情報生成部3023は、係数a~a、係数b~b、係数c~cの増加又は減少を適用して、状態S’に遷移して、プラスの報酬(正の値の報酬)が返った場合、次の行動A´としては、係数a~a、係数b~b、係数c~cに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、評価関数fの値がより小さくなるような行動A´を選択する方策を取るようにしてもよい。
【0070】
また、逆に、マイナスの報酬(負の値の報酬)が返った場合、行動情報生成部3023は、次の行動A´としては、例えば、係数a~a、係数b~b、係数c~cに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、評価関数が前回の値よりも小さくなるような行動A´を選択する方策を取るようにしてもよい。
【0071】
また、行動情報生成部3023は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
【0072】
行動情報出力部303は、学習部302から出力される行動情報Aを位置偏差補正部111、速度指令補正部112、トルク指令補正部113に対して送信する部分である。位置偏差補正部111、速度指令補正部112、トルク指令補正部113は上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されている係数a~a、係数b~b及び係数c~cを微修正することで、次の状態S’(すなわち修正された、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~c)に遷移する。
【0073】
価値関数記憶部304は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部304に記憶された価値関数Qは、価値関数更新部3022により更新される。また、価値関数記憶部304に記憶された価値関数Qは、他の機械学習部300との間で共有されるようにしてもよい。価値関数Qを複数の機械学習部300で共有するようにすれば、各機械学習部300にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【0074】
最適化行動情報出力部305は、価値関数更新部3022がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を位置偏差補正部111、速度指令補正部112、トルク指令補正部113に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部305は、価値関数記憶部304が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部3022がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部305は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報を位置偏差補正部111、速度指令補正部112、トルク指令補正部113に対して出力する。この最適化行動情報には、行動情報出力部303がQ学習の過程において出力する行動情報と同様に、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cを修正する情報が含まれる。
【0075】
位置偏差補正部111、速度指令補正部112、トルク指令補正部113この行動情報に基づいて係数a~a、係数b~b、係数c~cが修正される。
機械学習部300は、以上の動作で、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの最適化を行い、軸間干渉を補正し、指令追従性を向上させるように動作することができる。
【0076】
図5図2に示した4軸加工機20Aを駆動する場合の機械学習による係数(パラメータ)調整前の位置フィードバック(位置FB)情報の変動を示す特性図である。図6図2に示した4軸加工機20Aを駆動する場合の機械学習による係数(パラメータ)調整前の位置フィードバック(位置FB)情報の変動を示す特性図である。
図5及び図6は、Y軸を往復移動させ、Z軸を静止するようにサーボ制御部200及び100を駆動したときのサーボ制御部100の位置フィードバック情報の変動の変動を示している。図6の特性図に示すように、機械学習による係数(パラメータ)調整によって、図5の特性図の位置変動が改善され、指令追従性が向上されることが分かる。
【0077】
図7図3に示した5軸加工機20Bを駆動する場合の機械学習による係数(パラメータ)調整前の回転軸とX軸の位置フィードバック(位置FB)情報の変動を示す特性図である。図8図3に示した5軸加工機20Bを駆動する場合の機械学習による係数(パラメータ)調整前の回転軸とX軸の位置フィードバック(位置FB)情報の変動を示す特性図である。図7及び図8において、右縦軸は直線軸となるX軸の位置フィードバック(位置FB)情報の値を示し、左縦軸は回転軸の位置フィードバック(位置FB)情報の値を示す。
図7及び図8は、回転軸を回転させ、X軸を静止するようにサーボ制御部200及び100を駆動したときのサーボ制御部100の位置フィードバック情報の変動の変動を示している。図8の特性図に示すように、機械学習による係数(パラメータ)調整によって、図7の特性図のX軸の位置変動が改善され、指令追従性が向上されることが分かる。
【0078】
以上のように、本実施形態に係る機械学習部300を利用することで、位置偏差補正部111、速度指令補正部112、トルク指令補正部113の係数の調整を簡易化することができる。
【0079】
以上、サーボ制御装置10に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、サーボ制御装置10は、CPU(Central Processing Unit)等の演算処理装置を備える。また、サーボ制御装置10は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0080】
そして、サーボ制御装置10において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0081】
機械学習部300については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0082】
次に、図9のフローチャートを参照して本実施形態におけるQ学習時の機械学習部300の動作について説明をする。
【0083】
ステップS11において、状態情報取得部301がサーボ制御部100及び200から最初の状態情報Sを取得する。取得した状態情報は、価値関数更新部3022や行動情報生成部3023に対して出力される。上述したように、この状態情報Sは、Q学習における状態に相当する情報である。
【0084】
最初にQ学習を開始する時点での状態Sにおける、位置指令xの集合及び位置指令yの集合は上位制御装置若しくは外部入力装置、又はサーボ制御部200及びサーボ制御部100から得られる。状態Sにおける、位置フィードバック情報x’の集合及び位置フィードバック情報y’の集合は、学習時の加工プログラムでサーボ制御部100及びサーボ制御部200を動作させることで得られる。サーボ制御部200に入力される位置指令xの集合は、Y軸を往復移動させる指令であり、サーボ制御部100に入力される位置指令yの集合は、Z軸を静止させる指令である。位置指令xは、位置フィードフォワード部209、減算器201、位置偏差補正部111、速度指令補正部112、トルク指令補正部113及び機械学習部300に入力される。位置指令yは、減算器101及び機械学習部300に入力される。位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの初期値は予めユーザが生成し、機械学習部300に係数a~a、係数b~b及び係数c~cの初期値が送られる。例えば、初期値は係数a~aの全てを0、係数b~bの全てを0及び係数c~cの全てを0とされる。なお、機械学習部300において、前述した状態Sにおける、位置指令xの集合と位置フィードバック情報x’の集合、位置指令yの集合と位置フィードバック情報y’ の集合を抽出するようにしてもよい。
【0085】
ステップS12において、行動情報生成部3023は新たな行動情報Aを生成し、生成した新たな行動情報Aを、行動情報出力部303を介して位置偏差補正部111、速度指令補正部112、及びトルク指令補正部113に対して出力する。行動情報生成部3023は前述した方策に基づいて、新たな行動情報Aを出力する。なお、行動情報Aを受信したサーボ制御部100は、受信した行動情報に基づいて現在の状態Sに係る位置偏差補正部111、速度指令補正部112、及びトルク指令補正部113係数a~a、係数b~b、係数c~cを修正した状態S’により、サーボモータ108を含む工作機械を駆動させる。上述したように、この行動情報は、Q学習における行動Aに相当するものである。現在の状態Sは、最初にQ学習を開始する時は状態Sとなる。
【0086】
ステップS13において、状態情報取得部301は、新たな状態S’における、位置指令xの集合と位置フィードバック情報x’の集合、位置指令yの集合と位置フィードバック情報y’の集合、係数a~a、係数b~b、及び係数c~cを取得する。こうして、状態情報取得部301は、状態S’における係数a~a、係数b~b、及び係数c~cであるときの、位置指令xの集合と位置フィードバック情報x’の集合、位置指令yの集合と位置フィードバック情報y’の集合を取得する。取得した状態情報は、報酬出力部3021に対して出力される。
【0087】
ステップS14において、報酬出力部3021は、状態S’における評価関数値f(PD(S’))と状態Sにおける評価関数値f(PD(S))との大小関係を判断し、f(PD(S’))>f(PD(S))の場合には、ステップS15において、報酬を負の値とする。f(PD(S’))<f(PD(S))の場合には、ステップS16において、報酬を正の値とする。f(PD(S’))=f(PD(S))の場合には、ステップS17において、報酬をゼロとする。なお、報酬の負の値、正の値について重みづけを行うようにしてもよい。なお、状態SはQ学習を開始する時点では状態Sとなる。
【0088】
ステップS15、ステップS16及びステップS17の何れかが終了すると、ステップS18において、この何れかのステップにて算出された報酬の値に基づいて、価値関数更新部3022が、価値関数記憶部304に記憶している価値関数Qを更新する。そして、再度ステップS12に戻り、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。なお、上述した処理を、所定回数繰り返したことや、所定時間繰り返したことを条件として処理を終了するようにしてもよい。
なお、ステップS18はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
【0089】
以上、図9を参照して説明した動作により、本実施形態では、機械学習部300を利用することで、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの調整のための、適切な価値関数を得ることができ、係数a~a、係数b~b、及び係数c~cの最適化を簡易化することができる、という効果を奏する。
次に、図10のフローチャートを参照して、最適化行動情報出力部305による最適化行動情報の生成時の動作について説明をする。
まず、ステップS21において、最適化行動情報出力部305は、価値関数記憶部304に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部3022がQ学習を行うことにより更新したものである。
【0090】
ステップS22において、最適化行動情報出力部305は、この価値関数Qに基づいて、最適化行動情報を生成し、生成した最適化行動情報をサーボ制御部100に対して出力する。
【0091】
また、図10を参照して説明した動作により、本実施形態では、機械学習部300により学習することにより求められる価値関数Qに基づいて、最適化行動情報を生成し、この最適化行動情報に基づいて、現在設定されている位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cの調整を簡易化し、ワークの加工面の品位を向上させることができる。
【0092】
上記のサーボ制御部及び機械学習部に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のモータ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0093】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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))を含む。
【0094】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【0095】
例えば、上述した実施形態では、機械学習部300は、評価関数fの値を求めるために、干渉を受ける軸のサーボ制御部100の位置指令yと位置フィードバック情報y’の差を求めているが、サーボ制御部100の減算器101の出力である位置偏差(y-y’)を用いて評価関数fの値を求めてもよい。サーボ制御部100の減算器101の出力である位置偏差(y-y’)は第1の位置偏差となる。
【0096】
また、上述した実施形態では、機械学習部300が、位置偏差補正部111の数式1の係数a~a、速度指令補正部112の数式2の係数b~b、トルク指令補正部113の数式3の係数c~cを同時に学習する例について説明したが、機械学習部300は、係数a~a、係数b~b、及び係数c~cのうちの一つの係数を先に学習して最適化した後に、他方の係数を順次学習して最適化してもよい。
【0097】
また、上述した実施形態では、機械学習部300の報酬出力部3021は、評価関数として、位置偏差を用いているが、速度偏差又は加速度偏差を用いてよい。
速度偏差は位置偏差の時間微分、加速度偏差は位置偏差の時間微分から求めることができる。速度偏差は加算器104の出力である速度指令と速度フィードバック情報との差、又は減算器105の出力を用いてもよい。
【0098】
(第2の実施形態)
第1の実施形態では、機械学習部はサーボ制御装置の一部として設けられている例について説明したが、本実施形態では、機械学習部がサーボ制御装置の外に設けられてサーボ制御システムを構成する例について説明する。以下、機械学習部はサーボ制御装置と独立して設けられるため、機械学習装置と呼ぶ。
図11はサーボ制御装置と機械学習装置とを含むサーボ制御システムの一構成例を示すブロック図である。図11に示すサーボ制御システム30は、n(nは2以上の自然数)個のサーボ制御装置10-1~10-nと、n個の機械学習装置300A-1~300A-nと、サーボ制御装置10-1~10-nとn個の機械学習装置300A-1~300A-nとを接続するネットワーク400とを備えている。n(nは2以上の自然数)個のサーボ制御装置10-1~10-nはn個の工作機械20-1~20-nと接続されている。
サーボ制御装置10-1~10-nの各々は機械学習部を備えていない点を除き、図1のサーボ制御装置10と同じ構成を有している。機械学習装置300A-1~300A-nは図5に示した機械学習部300と同じ構成を有している。
【0099】
ここで、サーボ制御装置10-1と、機械学習装置300A-1とは1対1の組とされて、通信可能に接続されている。サーボ制御装置10-2~10-nと、機械学習装置300A-2~300A-nについてもサーボ制御装置10-1と機械学習装置300A-1と同様に接続される。図11では、サーボ制御装置10-1~10-nと、機械学習装置300A-1~300A-nとのn個の組は、ネットワーク400を介して接続されているが、サーボ制御装置10-1~10-nと、機械学習装置300A-1~300A-nとのn個の組は、それぞれの組のサーボ制御装置と機械学習装置とが接続インタフェースを介して直接接続されてもよい。これらサーボ制御装置10-1~10-nと機械学習装置300A-1~300A-nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【0100】
なお、ネットワーク400は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク400における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【0101】
<システム構成の自由度>
上述した実施形態では、サーボ制御装置10-1~10-nと、機械学習装置300A-1~300A-nとはそれぞれ1対1の組とされて通信可能に接続されているが、例えば1台の機械学習装置が複数のモータ制御装置及び複数の加速度センサとネットワーク400を介して通信可能に接続され、各モータ制御装置と各工作機械の機械学習を実施するようにしてもよい。
その際、1台の機械学習装置の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、1台の機械学習装置の各機能を実現してもよい。
【0102】
また、n台の同じ型名、同一仕様、又は同一シリーズのサーボ制御装置10-1~10-nとそれぞれ対応するn個の機械学習装置300A-1~300A-nがあった場合に、各機械学習装置300A-1~300A-nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【0103】
本開示による機械学習装置、制御システム及び機械学習方法、上述した実施形態を含め、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の一態様は、複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部(例えば、サーボ制御部100、200)に対して、機械学習を行う機械学習装置(例えば、機械学習部300、機械学習装置300-1~300-n)であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部(例えば、サーボ制御部100)は、干渉を与える軸に関する第2のサーボ制御部(例えば、サーボ制御部200)の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部(例えば、位置偏差補正部111、速度指令補正部112、トルク指令補正部113)を備え、
前記機械学習装置は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得する状態情報取得部(例えば、状態情報取得部301)と、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力する行動情報出力部(例えば、行動情報出力部303)と、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力する報酬出力部(例えば、報酬出力部3021)と、
前記報酬出力部により出力される報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する価値関数更新部(例えば、価値関数更新部3022)と、
を備えている、機械学習装置である。
この機械学習装置によれば、軸間干渉を補正するサーボ制御部の補正部の係数の最適化を図ることができ、サーボ制御部における煩雑な調整を回避しつつ、サーボ制御部の指令追従性を向上させることができる。
【0104】
(2) 前記第1のサーボ制御情報は、前記第1のサーボ制御部の位置指令と位置フィードバック情報、又は前記第1のサーボ制御部の第1の位置偏差を含み、
前記評価関数は、前記第1のサーボ制御部の位置指令と位置フィードバック情報とから求められる第2の位置偏差又は前記第1の位置偏差、該第1又は第2の位置偏差の絶対値又は該絶対値の2乗を含む値に基づいて前記報酬の値を出力する、上記(1)に記載の機械学習装置。
【0105】
(3) 前記第2のサーボ制御部の位置指令に関する変数は、前記第2のサーボ制御部の、前記位置指令、前記位置指令の1回微分及び前記位置指令の2回微分の少なくとも1つであり、前記第2のサーボ制御部の位置フィードバック情報に関する変数は、前記第2のサーボ制御部の、前記位置フィードバック情報、前記位置フィードバック情報の1回微分及び前記位置フィードバック情報の2回微分の少なくとも1つである、上記(1)又は(2)に記載の機械学習装置。
【0106】
(4) 前記第1及び前記第2のサーボ制御部を制御する学習時の加工プログラムは、機械学習時に、前記干渉を与える軸を動かし、前記干渉を受ける軸を静止させる、上記(1)から(3)のいずれかに記載の機械学習装置。
【0107】
(5) 前記価値関数更新部により更新された価値関数に基づいて、前記補正部の前記係数の調整情報を出力する最適化行動情報出力部を備えた上記(1)から(4)のいずれかに記載の機械学習装置。
【0108】
(6) 本開示の他の一態様は、上記(1)から(5)のいずれかに記載に記載の機械学習装置(例えば、機械学習部300)と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部(例えば、サーボ制御部100、200)と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部(例えば、サーボ制御部100)は、干渉を与える軸に関する第2のサーボ制御部(例えば、サーボ制御部200)の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部(例えば、位置偏差補正部111、速度指令補正部112、トルク指令補正部113)を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御装置(例えば、サーボ制御装置10)である。
このサーボ制御装置によれば、サーボ制御部において、煩雑な調整を回避しつつ、軸間干渉を補正し、指令追従性を向上させることができる。
【0109】
(7) 本開示の他の一態様は、上記(1)から(5)のいずれかに記載の機械学習装置と、
複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部(例えば、サーボ制御部100、200)を含むサーボ制御装置(例えば、サーボ制御装置10-1~10-n)と、を含み、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部(例えば、サーボ制御部100)は、干渉を与える軸に関する第2のサーボ制御部(例えば、サーボ制御部200)の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部(例えば、位置偏差補正部111、速度指令補正部112、トルク指令補正部113)を備え、
前記機械学習装置は前記係数の調整情報を含む行動情報を前記補正部に出力する、サーボ制御システム(例えば、サーボ制御システム30)である。
このサーボ制御システムによれば、サーボ制御部において、煩雑な調整を回避しつつ、軸間干渉を補正し、指令追従性を向上させることができる。
【0110】
(8) 本開示の他の一態様は、複数の軸を有し、該複数の軸のうちの1つの軸が他の少なくとも1つの軸の動きによって干渉を受ける機械を駆動する複数のモータを制御する複数のサーボ制御部(例えば、サーボ制御部100、200)に対して、機械学習を行う機械学習装置(例えば、機械学習部300、機械学習装置300-1~300-n)の機械学習方法であって、
前記複数のサーボ制御部のうちの、干渉を受ける軸に関する第1のサーボ制御部(例えば、サーボ制御部100)は、干渉を与える軸に関する第2のサーボ制御部(例えば、サーボ制御部200)の位置指令に関する変数と位置フィードバック情報に関する変数の少なくとも1つを含む関数に基づいて、前記第1のサーボ制御部の位置偏差と速度指令とトルク指令との少なくとも1つを補正する補正値を求める補正部(例えば、位置偏差補正部111、速度指令補正部112、トルク指令補正部113)を備え、
前記機械学習方法は、前記第1のサーボ制御部の第1のサーボ制御情報と、前記第2のサーボ制御部の第2のサーボ制御情報と、前記関数の係数と、を含む状態情報を取得し、
前記状態情報に含まれる前記係数の調整情報を含む行動情報を前記補正部に出力し、
前記第1のサーボ制御情報の関数となる評価関数を用いた、強化学習における報酬の値を出力し、
前記報酬の値と、前記状態情報と、前記行動情報とに基づいて価値関数を更新する、機械学習方法である。
この機械学習方法によれば、軸間干渉を補正するサーボ制御部の補正部の係数の最適化を図ることができ、サーボ制御部における煩雑な調整を回避しつつ、サーボ制御部の指令追従性を向上させることができる。
【0111】
(9) 更新された前記価値関数に基づいて、最適化行動情報となる、前記補正部の前記係数の調整情報を出力する上記(8)に記載の機械学習装置。
【符号の説明】
【0112】
10、10-1~10-n サーボ制御装置
20、20-1~20-n 工作機械
100、200 サーボ制御部
101、201 減算器
102 加算器
103、202 位置制御部
104、203 加算器
105、204 減算器
106、205 速度制御部
107 加算器
108、206 サーボモータ
109、207 ロータリーエンコーダ
110、208 積分器
111 位置偏差補正部
112 速度指令補正部
113 トルク指令補正部
209 位置フィードフォワード部
300 機械学習部
300A-1~300A-n 機械学習装置
400 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11