JP6849643B2 - 出力装置、制御装置、及び評価関数と機械学習結果の出力方法 - Google Patents

出力装置、制御装置、及び評価関数と機械学習結果の出力方法 Download PDF

Info

Publication number
JP6849643B2
JP6849643B2 JP2018211397A JP2018211397A JP6849643B2 JP 6849643 B2 JP6849643 B2 JP 6849643B2 JP 2018211397 A JP2018211397 A JP 2018211397A JP 2018211397 A JP2018211397 A JP 2018211397A JP 6849643 B2 JP6849643 B2 JP 6849643B2
Authority
JP
Japan
Prior art keywords
machine learning
evaluation function
control device
output
servo control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018211397A
Other languages
English (en)
Other versions
JP2020077310A (ja
Inventor
亮太郎 恒木
亮太郎 恒木
聡史 猪飼
聡史 猪飼
隆貴 下田
隆貴 下田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP2018211397A priority Critical patent/JP6849643B2/ja
Priority to US16/573,079 priority patent/US11592789B2/en
Priority to CN201911071925.4A priority patent/CN111176114B/zh
Priority to DE102019217130.3A priority patent/DE102019217130A1/de
Publication of JP2020077310A publication Critical patent/JP2020077310A/ja
Application granted granted Critical
Publication of JP6849643B2 publication Critical patent/JP6849643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Feedback Control In General (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Control Of Electric Motors In General (AREA)

Description

本発明は、出力装置、制御装置、及び評価関数と機械学習結果の出力方法に係り、特に、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して評価関数を用いて機械学習を行う機械学習装置で、複数の評価関数をそれぞれ用いて機械学習を行い、複数の評価関数と各評価関数の機械学習結果を出力する出力装置、この出力装置を含む制御装置、及び評価関数と機械学習結果の出力方法に関する。
本発明に関連する技術として、例えば、特許文献1に、参照指令と外部の制御対象が出力する制御量との間の偏差を所定の制御パラメータで制御する制御器に入力し、制御器が出力する操作量で制御対象を制御するフィードバック制御部と、機械学習プロセスでの学習内容に基づいて、制御パラメータを調整する調整部と、を有する制御装置の記載がある。制御装置を備えた機械制御システムとして、回転型モータの駆動を制御することによりスライダの直進移動を制御するシステムが挙げられている。制御パラメータとしては、例えば、位置ループゲイン、速度ループゲイン、速度ループ積分時定数、トルク指令フィルタ時定数、ノッチフィルタ周波数等が挙げられている。そして、機械学習プロセスで強化学習を用いることも記載されている。
国際公開第2018/151215号パンフレット
特許文献1では、強化学習を用いた機械学習プロセスでの学習内容に基づいて、制御パラメータを調整している。操作者等のユーザは機械学習に関与することができないため、制御パラメータの調整によって得られた偏差がユーザの意図どうりに抑制されない場合がある。例えば、あるユーザは偏差が十分小さくならなくとも、高周波振動の抑制を重要視し、別なユーザは高周波振動が残っても偏差を十分に小さくすることを重要視する場合がある。
また、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置の構成要素のパラメータを機械学習装置によって機械学習する場合に、通常、機械学習装置で用いられる評価関数は表示されないため、操作者は、どのような評価関数が用いられることでどのような学習効果が得られるのを知ることはできない。
本発明は、評価関数と学習結果との関係を知ることができるように、複数の評価関数と各評価関数の機械学習結果を出力する出力装置、この出力装置を含む制御装置及び評価関数と機械学習結果の出力方法を提供することを目的とする。
(1) 本発明に係る出力装置は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータ(例えば、後述のサーボモータ400)を制御するサーボ制御装置(例えば、後述のサーボ制御装置300)の構成要素のパラメータの機械学習を行う機械学習装置(例えば、後述の機械学習装置100)で用いる複数の評価関数と、各評価関数毎の機械学習結果とを出力する出力部(例えば、後述の制御部205と表示部209、制御部205と記憶部206)と、
前記機械学習結果を前記サーボ制御装置と前記機械学習装置の少なくとも一方から取得する情報取得部(例えば、後述の学習情報取得部201、サーボ情報取得部207)と、
を備えた出力装置(例えば、後述の出力装置200、200A)である。
(2) 上記(1)の出力装置において、前記出力部は、前記複数の評価関数と、各評価関数毎に取得される前記機械学習結果とを表示画面に表示する表示部(例えば、後述の表示部209)を含んでもよい。
(3) 上記(1)又は(2)の出力装置において、前記複数の評価関数を用いて機械学習された複数のパラメータから、前記複数の評価関数の各評価関数毎の機械学習結果に基づいて選択されたパラメータを、前記サーボ制御装置に出力する情報出力部(例えば、後述のサーボ情報出力部208)を備えてもよい。
(4) 上記(1)から(3)のいずれかの出力装置において、前記複数の評価関数の中から選択された評価関数又は前記複数の評価関数とは異なる評価関数への変更指示を前記機械学習装置に出力する情報出力部(例えば、後述の学習情報出力部202)を備えてもよい。
(5) 上記(1)から(4)のいずれかの出力装置において、前記学習結果は、前記サーボ制御装置における制御指令と、該制御指令に基づいて前記サーボモータを駆動したときのフィードバック情報との偏差であってもよい。
(6) 上記(4)又は(5)の出力装置において、前記機械学習装置は、評価関数を用いて機械学習時に探索された前記サーボ制御装置の構成要素のパラメータと、該パラメータを用いて前記サーボ制御装置を動作させることで得られた学習結果とを保存し、前記変更指示に基づいて前記評価関数を変更して機械学習する場合に、前記パラメータと同じパラメータが選ばれたときに、保存された前記学習結果を用いて、変更された評価関数により評価関数値を求めてもよい。
(7) 上記(4)から(6)のいずれかの出力装置において、前記異なる評価関数は、前記複数の評価関数のいずれかと重み付け係数の異なる評価関数であってもよい。
(8) 上記(1)から(7)のいずれかの出力装置において、前記複数の評価関数は、前記サーボ制御装置は、位置偏差を変数とする関数と、位置偏差の微分値を変数とする関数と、トルクの微分値を変数とする関数とをそれぞれ重み付けした和からなる評価関数を含んでもよい。
(9) 上記(3)から(7)のいずれかの出力装置において、サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータを含んでもよい。
(10) 上記(9)の出力装置において、前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含んでもよい。
(11) 本発明に係る制御装置は、上記(1)から(10)のいずれかの出力装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
サーボ制御装置に対して機械学習を行う機械学習装置と、
を備えた制御装置である。
(12) 上記(11)の制御装置において、前記出力装置は、前記サーボ制御装置及び機械学習装置の一つに含まれてもよい。
(9) 本発明に係る出力装置の評価関数と機械学習結果の出力方法は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して評価関数を用いて機械学習を行う機械学習装置で、複数の評価関数をそれぞれ用いて機械学習を行うことで得られた、各評価関数毎の機械学習結果を出力し、
前記機械学習結果を前記機械学習装置と前記サーボ制御装置の少なくとも1つから取得する、
出力装置の評価関数と機械学習結果の出力方法である。
本発明によれば、複数の評価関数と各評価関数の機械学習結果を出力することで、評価関数と学習結果との関係を確認することができる。その結果、出力装置から機械学習装置に指示することで、複数の評価関数から評価関数を選択したり、別な評価関数に変更することが可能となる。
本発明の第1実施形態の制御装置の一構成例を示すブロック図である。 本発明の第1実施形態の制御装置に含まれる出力装置の一構成例を示すブロック図である。 重み付け係数より設定される複数の評価関数と、これらの評価関数でそれぞれ学習されたパラメータに基づく位置偏差の時間応答を重ね合わせたグラフと、を表示する表示画面の一例を示す図である。 複数の評価関数、及びこれらの評価関数でそれぞれ学習されたパラメータに基づく位置偏差の時間応答を示すグラフを示す画面を並べて表示する表示画面の一例を示す図である。 被加工物の加工形状が八角形の場合の加工軌跡の一部を示す図である。 加工軌跡と位置偏差の時間応答との関係を示す特性図の一例を示す図である。 加工軌跡とトルクの時間応答特性図の一例を示す図である。 加工軌跡と位置偏差の時間応答との関係を示す特性図の一例を示す図である。 加工軌跡とトルクの時間応答特性図の一例を示す図である。 複数の評価関数でそれぞれ学習されたパラメータに基づいて取得される位置偏差の時間応答曲線を重ね合わせたグラフを表示する表示画面の一例を示す図である。 複数の評価関数でそれぞれ学習されたパラメータに基づいて取得される位置偏差の時間応答曲線を重ね合わせたグラフを表示する表示画面の一例を示す図である。 位置偏差の時間応答特性図の一例を示す図である。 位置偏差の周波数応答図の一例を示す図である。 位置偏差の時間応答特性図の一例を示す図である。 位置偏差の周波数応答図の一例を示す図である。 複数の周波数特性曲線を重ね合わせたグラフの一例を示す図である。 機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。 本発明の第1実施形態の制御装置に含まれるサーボ制御装置の一構成例を示すブロック図である。 加工形状が八角形の場合のモータの動作を説明するための図である。 加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。 本発明の第1の実施形態の機械学習装置を示すブロック図である。 本発明の第2実施形態の制御装置の一構成例を示すブロック図である。 本発明の第3実施形態の制御装置の一構成例を示すブロック図である。 他の構成の制御装置を示すブロック図である。
以下、本発明の実施形態について図面を用いて詳細に説明する。
(第1実施形態)
図1は本発明の第1実施形態の制御装置の一構成例を示すブロック図である。図1に示す制御装置10は、機械学習装置100、出力装置200、サーボ制御装置300、及びサーボモータ400を備えている。制御装置10は、工作機械、ロボット、又は産業機械等を駆動する。制御装置10は工作機械、ロボット、又は産業機械等とは別に設けられても、工作機械、ロボット、又は産業機械等に含まれてもよい。
サーボ制御装置300は、位置指令、速度指令等の制御指令に基づいてトルク指令を出力し、サーボモータ400の回転を制御する。サーボ制御装置300は、例えば、機械学習装置100により機械学習される係数を含む伝達関数で表される速度フィードフォワード処理部等の構成要素を備えている。機械学習装置100により機械学習される、サーボ制御装置300構成要素は特に速度フィードフォワード処理部に限定されず、例えば、ノッチフィルタでもよい。速度フィードフォワード処理部は、入力される位置指令に対して、数式1(以下に数1として示す)で示す伝達関数F(s)で示される処理を行い、処理結果を速度フィードフォワード項としてトルク指令に加算する。数式1の係数a、b(0≦i≦m,0≦j≦n、m,nは自然数である)の最適値は機械学習装置100で機械学習される。サーボ制御装置300の構成の詳細は後述する。
Figure 0006849643
サーボモータ400は、工作機械、ロボット又は産業機械の軸を駆動する。サーボモータ400は、例えば、工作機械、ロボット、産業機械に含まれる。サーボモータ400は検出位置又は/及び検出速度をフィードバック情報としてサーボ制御装置300へ出力する。サーボ制御装置300は位置指令と検出位置との差を位置偏差として求め、速度指令と検出速度との差を速度偏差として求める。
出力装置200は、例えば、位置指令、速度指令、トルク指令等の制御指令、及びサーボ制御装置300から出力される位置偏差、速度偏差等を含むサーボ情報を取得して、機械学習装置100へ出力する。また、出力装置は、サーボ制御装置の速度フィードフォワード処理部の伝達関数の係数(パラメータ)をサーボ制御装置300から取得して、機械学習装置100へ出力する。
機械学習装置100は、予め設定される評価関数に基づいて機械学習することで速度フィードフォワード処理部の伝達関数の係数(パラメータ)が最適値に近づくように、速度フィードフォワード処理部の伝達関数の係数を微調整した修正パラメータを、出力装置200を介してサーボ制御装置300に出力する。
サーボ制御装置300は修正パラメータに基づいて速度フィードフォワード処理部の伝達関数の係数を変更して、サーボモータ400を駆動する。そして、出力装置200は、サーボ制御装置300から、位置指令、速度指令、トルク指令等の制御指令、及び修正パラメータに基づく位置偏差、速度偏差等を含むサーボ情報を取得して機械学習装置100に出力する。
制御装置10が、以上説明した動作を繰り返すことで、機械学習装置100は、速度フィードフォワード処理部の伝達関数の係数の最適値を求める。
以上が、制御装置10が速度フィードフォワード処理部の伝達関数の係数の最適値を求めるための基本動作であるが、本実施形態では、複数の評価関数と、各評価関数に基づいた各機械学習により得られたパラメータでサーボ制御装置を駆動することで得られた、位置偏差の時間応答又は周波数応答等の学習結果とを出力装置200が出力する。位置偏差の時間応答又は周波数応答等の学習結果を、表示装置を用いて出力する場合は、複数の学習結果を評価関数毎に並べて表示画面に表示、又は重ねて表示画面に表示することができる、その結果、ユーザは評価関数毎の学習結果を比較しやすくなる。出力装置200が出力する複数の評価関数はユーザが設定してもよいし、工作機械メーカが予め複数の評価関数を設定してもよい。後述するように、複数の評価関数の一部又は全部は、重み付け係数を替えることで別な評価関数に変更することができる。出力装置200からの出力方法は、例えば、液晶表示装置での画面表示、プリンター等を用いた紙への印刷、メモリ等の記憶部への記憶、通信部を介した外部信号出力等である。
ユーザによって意図する学習結果が得られる評価関数が選択されると、出力装置200は意図する学習結果を得ることができる評価関数により得られたパラメータをサーボ制御装置300へ出力する。こうして、ユーザが意図する学習結果が得られるように、複数の評価関数から所定の評価関数を選択することができる。そして、出力装置200は、選択した評価関数の評価関数指示情報を機械学習装置100に出力する。評価関数指示情報は、評価関数の重み付け係数値、評価関数の識別情報等を含んでいる。機械学習装置100は選択した評価関数を、機械学習を行う際に用いる評価関数として設定する。
出力装置200から出力される、位置偏差の時間応答又は周波数応答等の学習結果から、ユーザが意図する学習結果が得られない場合には、ユーザの操作に基づいて、出力装置200は、複数の評価関数の一部又は全部の評価関数を変更する。評価関数の変更は、例えば、評価関数の重み付け係数を別な値に変更、又は評価関数の種類を変更することである。
出力装置200は、機械学習装置100で用いられる、評価関数の重み付け係数又は評価関数の種類を設定又は変更するために、機械学習装置100に対して評価関数指示情報を出力する。
機械学習装置100は、評価関数指示情報に基づいて評価関数を設定又は変更する。そして、機械学習装置100は、設定又は変更された評価関数を用いて、例えば速度フィードフォワード処理部の伝達関数の係数(パラメータ)が最適値に近づくように、伝達関数の係数を微調整した修正パラメータを、出力装置200を介してサーボ制御装置300に出力することで、学習する。
出力装置200は、修正パラメータに基づいて駆動されたサーボ制御装置300から、位置偏差のサーボ情報を取得し、設定又は変更された評価関数と、位置偏差の時間応答又は周波数応答等の学習結果とを含む情報を出力する。
こうして、ユーザは、ユーザの意図する学習結果が得られるように、評価関数を設定又は変更することができる。
なお、機械学習結果は、例えば位置偏差の時間応答又は周波数応答等を例示したが、これに限定されない。例えば、機械学習された係数に設定された、速度フィードフォワード処理部の伝達関数から求められる周波数応答を学習結果としてもよい。
伝達関数から周波数応答を解析できるソフトウェアは公知であって、例えば、
https://jp.mathworks.com/help/signal/ug/frequency~renponse.html
https://jp.mathworks.com/help/signal/ref/freqz.html
https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.signal.freqz.html
https://wiki.octave.org/Control_package
等を用いることができる。周波数応答から、減衰中心周波数fc、帯域幅fw、減衰係数Rを求めることができる。
機械学習結果は、位置偏差の時間応答又は周波数応答はグラフで示しても、表で示してもよい。機械学習結果が位置偏差の時間応答又は周波数応答である場合は、出力装置200は、位置偏差を機械学習装置100又はサーボ制御装置300から取得できる。機械学習結果が速度フィードフォワード処理部の伝達関数から求められる周波数応答である場合は、出力装置200は、当該伝達関数をサーボ制御装置300から取得できる。
以下、上記第1実施形態の制御装置10の各構成について更に説明する。
以下の説明において、まず、出力装置200について説明し、その後、機械学習装置及びサーボ制御装置300について説明する。
<出力装置200>
出力装置200は、複数の評価関数と、各評価関数に対応する、位置偏差の時間応答等の学習結果とを出力する出力機能を備えている。
また、出力装置200は、機械学習装置100の動作の制御(例えば、機械学習装置に対する評価関数の変更指示、及び機械学習装置に対するプログラム起動指示等)を行う調整機能を備えている。
さらに、出力装置200は、サーボ制御装置300から機械学習装置100への情報(例えば、位置指令、速度指令、トルク指令等の制御指令、位置偏差、及び速度フィードフォワード処理部の係数)、機械学習装置100からサーボ制御装置310への情報(例えば、速度フィードフォワード処理部の修正された係数a、b)の中継を行う中継機能も備えている。
動作の制御及び情報の中継は後述する学習情報取得部201,サーボ情報取得部207及び学習情報出力部202,サーボ情報出力部208を介して行われる。
図2は、本発明の第1実施形態の制御装置10に含まれる出力装置200の一構成例を示すブロック図である。図2に示すように、出力装置200は、学習情報取得部201、学習情報出力部202、作図部203、操作部204、制御部205、記憶部206、サーボ情報取得部207、サーボ情報出力部208、及び表示部209を有する。
学習情報取得部201は、機械学習装置100から修正パラメータ(例えば、速度フィードフォワード処理部308の修正された係数a、b)を取得する。
学習情報出力部202は位置指令、速度指令、トルク指令等の制御指令、及び位置偏差、速度偏差、電流偏差等のフィードバックを含むサーボ状態を示すサーボ情報、及びパラメータ(例えば、速度フィードフォワード処理部308の修正された係数a、b)を機械学習装置100へ出力する。
作図部203は、記憶部206に記憶された位置偏差の集合を読み出して表示部209に表示する時間応答特性図又は周波数応答特性図の画像情報を作成する。
操作部204は、マウス、キーボード等であって、制御部205に指示及びデータを入力する。
サーボ情報取得部207は、サーボ制御装置300から、位置指令、速度指令、トルク指令等の制御指令、及び位置偏差、速度偏差、電流偏差等のフィードバックを含むサーボ状態を示すサーボ情報、及びパラメータ(例えば、速度フィードフォワード処理部308の修正された係数a、b)を取得する。
サーボ情報出力部208は、機械学習装置100から出力された修正パラメータをサーボ制御装置300の速度フィードフォワード処理部308へ出力する。
表示部209は液晶表示装置、プリンター等であって、評価関数、及び位置偏差の時間応答特性図を含む情報を出力する。
制御部205及び表示部209は、評価関数と、この評価関数で学習されたパラメータ(例えば、速度フィードフォワード処理部の係数a、b)に基づいてサーボ制御装置300を駆動することで取得される位置偏差の時間応答を示す図とを出力する出力部となる。出力は記憶部206に記憶することも含まれ、その場合、出力部は制御部205及び記憶部206となる。
出力装置200の表示部209に表示可能で、機械学習装置100が用いることができる評価関数の例は以下の通りである。
評価関数fは、例えば、位置偏差をe、トルクをTmで示したときに、
Figure 0006849643
Figure 0006849643
Figure 0006849643
Figure 0006849643
Figure 0006849643
等を適用することができる。数式2〜数式6において、α、β及びγは重み付け係数、minは最小化、maxは最大値を示す。
また、その他、以下の評価関数を適用してもよい。
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数
∫e2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
なお、上記数式2の評価関数は、位置偏差を変数とする関数と、位置偏差の微分値を変数とする関数と、トルクの微分値を変数とする関数とをそれぞれ重み付けした和からなる評価関数である。
制御部205は、上述した評価関数の一部又は全部と、各評価関数に対応する、位置偏差の時間応答等の学習結果とを表示部209に出力する。制御部205は、ユーザからの指示により機械学習装置100で用いる評価関数の重み付け係数又は評価関数の種類を設定又は変更するための評価関数指示情報を機械学習装置100に出力する。
以下、具体例1〜5に基づいて出力装置200について更に詳細に説明する。
(具体例1:複数の重み付け係数の値が異なる複数の評価関数の例)
図3は、重み付け係数により設定される複数の評価関数と、これらの評価関数でそれぞれ学習されたパラメータに基づく位置偏差の時間応答を重ね合わせたグラフと、を表示する表示画面の一例を示す図である。
本具体例では、出力装置200が、数式2の評価関数における重み付け係数α、β、及びγに重みの値W1〜W3を設定した評価関数(以下「重みW1〜W3の評価関数」という)と、これらの重みW1〜W3の評価関数でそれぞれ学習されたパラメータに基づいてサーボ制御装置300を駆動することで取得される3つの位置偏差の時間応答を重ね合わせたグラフとを出力する際の動作について説明する。なお、評価関数の数は特に3つに限定されず、2つでも4以上であってもよい。
図3に示すように、表示画面Pは欄P1、P2、及びP3を含んでいる。
欄P1には、例えば、軸選択、パラメータ確認、プログラム確認・編集、プログラム起動、機械学習中、終了判定の選択項目が表示される。
欄P2には、例えば、速度フィードフォワード等の調整対象、データ採取中等のステータス(状態)、予め設定された当該機械学習終了までの試行回数(以下「最大試行回数」ともいう)に対する現在までの試行回数の累計を示す試行回数、及び学習の中断を選択するボタンが表示される。
欄P3には、例えば、数式2に示す評価関数と、この評価関数の重み付け係数α、β、及びγの3つの設定例(重みW1〜W3)を示す表と、この評価関数で学習されたパラメータに基づいて取得された位置偏差の重みW1〜W3毎の時間応答を重ね合わせたグラフとが表示される。なお、学習前には位置偏差の時間応答を示すグラフは表示されていない。
制御部205は、以下に説明するように、数式2に示す評価関数と、この評価関数の重み付け係数α、β、及びγの3つの設定例(重みW1〜W3)を示す表と、この評価関数で学習されたパラメータに基づいて取得された位置偏差の重みW1〜W3毎の時間応答を示す図とを表示部209に表示する。
操作者等のユーザにより、液晶表示装置等の表示部209の図3に示す表示画面Pの欄P1の「機械学習」が選択され、更に欄P3の表の、重み付け係数α、β、及びγの重みW1の列が選択されると、制御部205は重みW1の列を太字の四角で示し、その列の重み付け係数α、β、及びγを編集可能な状態とする。次に、ユーザによって、例えば、α=1、β=0、γ=0が入力され、表示画面Pの欄P3の「選択」が選択される。なお、ここでは、重み付け係数α、β、及びγはユーザによって入力されているが、予め設定されていてもよい。
制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式2の評価関数の識別情報、及び重みW1の重み付け係数(α=1、β=0、γ=0)を含む評価関数指示情報を送る。
機械学習装置100は評価関数指示情報に基づいて評価関数を重み付け係数(α=1、β=0、γ=0)の数式2の評価関数に変更し、この評価関数に基づいて機械学習を開始する。機械学習装置100は、速度フィードフォワード処理部の伝達関数の係数(パラメータ)が最適値に近づくように、速度フィードフォワード処理部の伝達関数の係数を微調整しながら、機械学習(試行)を行うため、機械学習(試行)毎に、当該機械学習(試行)で用いる修正パラメータ、及び試行回数を出力装置200(学習情報取得部201)に送る。
出力装置200(サーボ情報出力部208)は、機械学習装置100から受信した修正パラメータをサーボ制御装置300に出力する。
サーボ制御装置300は出力装置200(サーボ情報出力部208)から受信した修正パラメータに基づいて速度フィードフォワード処理部の伝達関数の係数を変更して、サーボモータ400を駆動し、機械学習(試行)する。
当該試行終了後、出力装置200(サーボ情報取得部207)は、サーボ制御装置300から、当該試行時における位置指令、速度指令、トルク指令等の制御指令、及び修正パラメータに基づく位置偏差、速度偏差、電流偏差等を含むサーボ情報を取得して、位置偏差、速度偏差等を記憶部206に記憶する。また、出力装置200(学習情報出力部202)は、取得したサーボ情報を機械学習装置100に出力する。
なお、機械学習装置100は、当該学習(試行)毎に、伝達関数の係数(パラメータ)と、このパラメータを用いてサーボ制御装置300を動作させることで得られたサーボ情報及び学習結果(位置偏差の時間応答又は周波数応答等)とを記憶部(図示せず)に保存する。そうすることで、以下に説明するように、評価関数指示情報(変更指示)に基づいて評価関数を変更して再度、伝達関数の係数(パラメータ)を機械学習する場合に、当該機械学習(試行)時に、記憶部に既に保存されたパラメータと同じパラメータが選ばれたときに、サーボモータ400を駆動せずに、保存されたサーボ状態及び学習結果を用いて、変更された評価関数により評価関数値を求めることができる。それにより、同じパラメータでサーボ制御装置300を動作させてサーボ状態及び学習結果を得る動作を省くことができ、機械学習の効率化を図ることができる。
制御部205は、図3に示す表示画面Pの欄P2の調整対象項目に速度フィードフォワードと表示し、試行回数が所定の試行回数に達していない場合は欄P2のステータス項目にデータ採取中と表示する。さらに制御部205は、欄P2の試行回数項目に、最大試行回数に対する試行回数の比を表示する。
試行回数が所定の試行回数に達していないときは、制御部205は、前述した動作を続ける。
機械学習装置100が、重み付け係数(α=1、β=0、γ=0)の数式2で示される評価関数で所定の試行回数の学習を行い、出力装置200(制御部205)が機械学習装置100からの試行回数の情報により、試行回数が所定の試行回数に達したと判断したときは、制御部205は作図部203に制御を移す。
作図部203は、記憶部206に記憶された位置偏差の集合を読み出して時間応答特性図の画像情報を作成して記憶部206に記憶し、制御部205に制御を移す。
制御部205は、位置偏差の時間応答特性図を図3に示すように表示画面Pの欄P3に表示する。
制御部205は、図3に示す重みW1の時間応答曲線を有する特性図を表示画面Pの欄P3に表示し、次に、ユーザによって、例えば、表示画面Pの欄P3の表の重みW2の列が選択されると、制御部205は、表の太字の四角で示される箇所を重みW1の列から重みW2の列に移し、重みW2の列の重み付け係数α、β、及びγを編集可能な状態とする。
ユーザによって、例えば、α=1、β=1、γ=1が入力され、表示画面Pの欄P3の「選択」が選択されると、制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式2の評価関数の識別情報、及びこの評価関数の重みW2の重み付け係数(α=1、β=1、γ=1)を含む評価関数指示情報を送る。
評価関数指示情報を受けた後の機械学習装置100と、評価関数指示情報を送った後の出力装置200との動作は、機械学習装置100が、重み付け係数(α=1、β=1、γ=1)の数式2で示される評価関数で所定の試行回数の学習を行うこと、所定の試行回数の機械学習終了後に、作図部203が、重みW1の時間応答曲線を有する特性図に、重みW2の時間応答曲線を重ねて新たな特性図の画像情報を作成すること、制御部205が重みW1の時間応答曲線と重みW2の時間応答曲線とを有する特性図を、表示画面Pの欄P3に表示することを除いて、上述した重みW1の時間応答曲線を有する特性図を得るための動作と同様である。
制御部205は、図3に示す重みW1及びW2の時間応答曲線を有する特性図が表示画面Pの欄P3に表示し、次に、ユーザによって、例えば、表示画面Pの欄P3の表の重みW3の列が選択されると、制御部205は、表の太字の四角で示される箇所を重みW2の列から重みW3の列に移し、重みW3の列の重み付け係数α、β、及びγを編集可能な状態とする。
ユーザによって、例えば、α=1、β=0.3、γ=0.5が入力され、表示画面Pの欄P3の「選択」が選択されると、制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式2の評価関数の識別情報、及びこの評価関数の重みW3の重み付け係数(α=1、β=0.3、γ=0.5)を含む評価関数指示情報を送る。
評価関数指示情報を受けた後の機械学習装置100と、評価関数指示情報を送った後の出力装置200との動作は、機械学習装置100が、重み付け係数(α=1、β=0.3、γ=0.5)の数式2で示される評価関数で所定の試行回数の学習を行うこと、所定の試行回数の機械学習終了後に、作図部203が、重みW1及びW2の時間応答曲線を有する特性図に、重みW3の時間応答曲線を重ねて新たな特性図の画像情報を作成すること、制御部205が重みW1、W2及びW3の時間応答曲線を有する特性図を、表示画面Pの欄P3に表示することを除いて、上述した重みW1の時間応答曲線を有する特性図を得るための動作と同様である。
以上のようにして、重みW1、W2及びW3の時間応答曲線を有する特性図が、表示画面Pの欄P3に表示され、出力機能及び中継機能が動作する。ユーザは複数の評価関数に対応する位置偏差の時間応答を見て、評価関数の重みを選択調整することができる。
なお、図3に示した表示画面Pにおいて、「選択」ボタンの選択は、表のW1、W2及びW3の重み係数α、β及びγの入力がすべて終了した後に行ってもよい。この場合、機械学習装置100は例えば、重みW1、W2及びW3の評価関数の順に評価関数を用いてそれぞれ所定の試行回数まで機械学習を行い、各評価関数による機械学習が所定の試行回数に達したときに評価関数を変更して機械学習を行う。出力装置200は重みW1、W2及びW3の評価関数の全ての機械学習が終了したときに、重みW1、W2及びW3のときの位置偏差の時間応答曲線を有する特性図を、表示画面Pの欄P3に表示する。
このようにすることで、例えば表示画面Pの欄P3に表示される重みW1、W2及びW3の時間応答曲線から以下の特性が分かる。
図3を参照すると、重みW1に関する位置偏差の時間応答曲線は、重みW2及びW3に関する位置偏差の時間応答曲線に比べて、低周波の位置偏差が抑制され、特性図の位置偏差面積が重みW1〜W3に関する位置偏差の時間応答曲線のうちで最も小さくなることが分かる。その反面、位置偏差の高周波振動が残ることが分かる。
また、重みW2に関する位置偏差の時間応答曲線は、重みW1及びW3に関する位置偏差の時間応答曲線に比べて、高周波の位置偏差が抑制され、特性図の位置偏差面積が重みW1〜W3に関する位置偏差の時間応答曲線のうちで最も大きくなることが分かる。その反面、曲線が滑らかとなってショックが最も抑制されることが分かる。
また、重みW3に関する位置偏差の時間応答曲線は、重みW1及びW2に関する位置偏差の時間応答曲線に比べて、中周波の位置偏差が抑制され、重みW1に関する位置偏差の時間応答曲線よりも、曲線が滑らかとなってショックが低減することが分かる。その反面、位置偏差面積は多少増えることが分かる。
以上のように、ユーザは複数の評価関数に対応する位置偏差の時間応答を見て、評価関数の重みを選択することができる。
ユーザによって、重みW1〜W3のいずれかが選択される動作は、表示画面Pの欄P3の「決定」が選択される以外は、特性図を表示するために、重みW1〜W3のいずれかが選択される動作と同様である。
すなわち、例えば重みW1を選択する場合は、ユーザによって、表示画面Pの欄P3の表の重みW1の列が選択されると、制御部205は重みW1の列を太字の四角で示す。ユーザによって表示画面Pの欄P3の「決定」が選択されると、制御部205は重み係数α=1、β=0、γ=0の重みW1の数式2の評価関数で機械学習することで得られた速度フィードフォワード処理部のパラメータをサーボ制御装置300へ送る。そうすることで、以降、サーボ制御装置300が当該パラメータにより速度フィードフォワード処理部でサーボ制御を行うことで、ユーザが意図するサーボ特性(位置偏差の時間応答等)を得ることができる。
また、制御部205は、重みW1の評価関数の識別情報を機械学習装置100へ送る。機械学習装置100が、評価関数を重みW1の評価関数に設定することで、例えば機械学習装置100が再学習を実行する場合に、重みW1の評価関数を用いることができる。
[重み付け係数を変更しての再学習]
ユーザが図3で示す表示画面Pの欄P3に表示された3つの異なる重み値以外の重み値に変更して再学習する場合の処理について説明する。
ユーザによって表示画面Pの欄P3の表の重みW1の列が選択されると、制御部205は、重みW1の列を太字の四角で示し、その列の重み付け係数α、β、及びγを編集可能な状態とする。ユーザによって、例えばα=1、β=0.1、γ=0.2が入力され、表示画面Pの欄P3の「選択」が選択されると、制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式2の評価関数の識別情報、及びこの評価関数の重みW1の重み付け係数(α=1、β=0.1、γ=0.2)を含む評価関数指示情報(変更指示となる)を送る。
機械学習装置100は評価関数指示情報に基づいて評価関数を重み付け係数(α=1、β=0.1、γ=0.2)の数式2の評価関数に変更し、この評価関数に基づいて機械学習を開始する。以降の処理は、上述した重みW1の時間応答曲線を有する特性図を得るための動作と同様であり、説明を省略する。
こうして、機械学習装置100の再学習が行われる。
(具体例2:重み付けと種類とが異なる複数の評価関数の例)
具体例1では、複数の重み付け係数により設定される複数の評価関数から評価関数を選択又は重み付け係数を修正する例について説明した。具体例2は、重み付けと種類の異なる2つの評価関数から評価関数を選択する例について説明する。
具体例2では、出力装置200が、数式2の評価関数、及びこの評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答を示す図を示す画面と、数式3の評価関数と、この評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答を示す図とを示す画面とを並べて表示する際の動作について図4を用いて説明する。
本実施形態では、被加工物の加工形状が図5に示すような、学習用の加工プログラムを用いてサーボ制御装置を駆動する。図5に示す加工形状に被加工物を加工するには、テーブルをX軸方向に駆動するサーボモータとサーボ制御装置、及びテーブルをY軸方向に駆動するサーボモータとサーボ制御装置が必要となる。
本実施形態では、機械学習装置100がテーブルをY軸方向に駆動するためのサーボ制御装置の速度フォードフォワード処理部の係数を機械学習し、出力装置200が図4に示すように、機械学習に用いる2つの評価関数と、各評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答を示す図とを表示するものとする。
図5において、直線部L1では、Y軸方向に駆動するサーボモータは等速度で回転され、点P1で速度が減速され、直線部L2で一定に減速された速度で回転する。
図4は数式2の評価関数、及びこの評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答を示す図を示す画面と、数式3の評価関数、及びこの評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答を示す図を示す画面とを並べて表示する場合の表示画面の一例を示す図である。
図4に示すように、表示画面Pは欄P4及び欄P5を含んでいる。制御部205は、欄P4に、数式3の評価関数、この評価関数の重み付け係数α及びγ、及び評価関数で学習されたパラメータに基づいて取得された位置偏差の時間応答を示す図を表示する。また、制御部205は、表示欄P5に、数式2に示す評価関数と、この評価関数の重み付け係数α、β、及びγ、及び評価関数で学習されたパラメータに基づいて取得された位置偏差の時間応答を示す図を表示する。なお、欄P4及び欄P5には、学習前には位置偏差の時間応答を示す図は表示されていない。
操作者等のユーザにより、操作部204を用いて図4に示す表示画面Pの欄P4の枠が選択されると、制御部205は欄P4の枠を太字の四角で示し、欄P4の重み付け係数α及びγを編集可能とする。ユーザによって、例えば、α=100、γ=0が入力され、表示画面Pの欄P4の「選択」が選択される。なお、重み付け係数α及びγはユーザによって入力されているが、予め設定されていてもよい。
その後は、具体例1と同様に、制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式3の評価関数の識別情報、及びこの評価関数の重みW1の重み付け係数(α=100、γ=0)を含む評価関数指示情報を送る。機械学習装置100は、重み付け係数(α=100、γ=0)の数式3の評価関数を用いて機械学習を行う。
サーボ制御装置300は機械学習中に機械学習装置100から出力される修正パラメータに基づいて速度フィードフォワード処理部の伝達関数の係数を変更して、サーボモータ400を駆動する。そして、出力装置200は、サーボ制御装置300から、位置指令、速度指令、トルク指令等の制御指令及び修正パラメータに基づく位置偏差、速度偏差等を含むサーボ情報を取得して機械学習装置100に出力するとともに、位置偏差、速度偏差等を記憶部206に記憶する。機械学習装置100は、当該学習(試行)毎に、伝達関数の係数(パラメータ)と、このパラメータを用いてサーボ制御装置300を動作させることで得られたサーボ情報及び学習結果(位置偏差の時間応答又は周波数応答等)とを記憶部(図示せず)に保存する。
機械学習装置100が、所定の試行回数の学習を行うと、出力装置200は、具体例1と同様な処理を行い、数式3の評価関数、この評価関数の重み付け係数α及びγ、及び評価関数に基づいて学習されたパラメータにより取得された位置偏差の時間応答を示す図を図4に示す表示画面Pの欄P4に表示する。
次に、ユーザにより、操作部204を用いて図4に示す表示画面Pの欄P5の枠が選択されると、制御部205は欄P5の枠を太字の四角で示し、欄P5の重み付け係数α、β及びγを編集可能とする。ユーザによって、例えば、α=100、β=10、γ=40が入力され、表示画面Pの欄P5の「選択」が選択される。なお、重み付け係数α、β及びγはユーザによって入力されているが、予め設定されていてもよい。
その後の出力装置200及び機械学習装置100の動作は、数式2の評価関数、この評価関数の重み付け係数α、β及びγ、及び当該評価関数に基づいて学習されたパラメータにより取得された位置偏差の時間応答を示す図を図4に示す表示画面Pの欄P5に表示することを除いて、前述した、数式3の評価関数、この評価関数の重み付け係数αとγ、及び位置偏差の時間応答を示す図等の情報を表示画面Pの欄P4に表示する動作と同じである。
図4の表示画面Pの欄P4に表示される位置偏差の時間応答曲線について図5及び図6A及び図6Bを用いて説明する。図6Aと図6Bは図4の表示画面Pの欄P4に示す位置偏差の時間応答特性、及びトルクの時間応答特性を示している。図6A及び図6Bに示すL1、P1及びL2は図5の直線部L1、点P1、及び直線部L2に対応している。
表示画面Pの欄P4に示す数式3の評価関数の重み係数はα=100、γ=0であるため、位置偏差に強い重みが与えられ、図5の点P1で生じた大きな位置偏差は図6Aに示すように直線部L2で迅速に減衰する。しかし、図6Bに示すように、トルクを直線部L2で急に増減させる場合があるため、位置偏差に高周波振動が残る。
一方、表示画面Pの欄P5に示す数式2の評価関数の重み係数はα=100、β=10、γ=40であるため、トルク微分値に重みが与えられ、図7Bに示すように直線部L2でトルクが滑らかになり、図7Aに示すように直線部L2で位置偏差の高周波信号は減るが、位置偏差の時間収束は緩やかになる。
ユーザは2つの評価関数に対応する位置偏差の時間応答を見て、評価関数の種類、及び重みを選択することができる。
ユーザによって、評価関数の種類及び重みを図4に示す評価関数のいずれかが選択される動作は、具体例1に示した選択動作と同様である。
すなわち、ユーザによって、例えば数式3の評価関数が選択される場合は、ユーザにより、操作部204を用いて表示画面Pの欄P4の枠が選択されると、制御部205は欄P4の枠を太字の四角で示す。ユーザにより、表示画面Pの欄P4の「決定」が選択されると、数式3の評価関数が選択される。ユーザによって重み係数α=100、γ=0が変更される場合には、重み係数の変更後に、ユーザにより、表示画面Pの欄P4の「決定」が選択される。
制御部205は、ユーザにより表示画面Pの欄P4の「決定」が選択されると、重み係数α=100、γ=0の数式3の評価関数に基づいて機械学習することで得られた速度フィードフォワード処理部のパラメータをサーボ制御装置300へ送る。サーボ制御装置300がそのパラメータに設定された速度フィードフォワード処理部でサーボ制御を行うことで、ユーザが意図するサーボ特性(位置偏差の時間応答等)を得ることができる。
また、制御部205は、ユーザにより表示画面Pの欄P4の「決定」が選択されると、重み係数α=100、γ=0と、数式3の評価関数の識別情報とを機械学習装置100へ送る。機械学習装置100が、評価関数を重み係数α=100、γ=0の数式3の評価関数に設定することで、ユーザが次に機械学習装置100で機械学習を実行したい場合に、機械学習装置100は、重み係数α=100、γ=0の数式3の評価関数で機械学習を行うことができる。
[再学習]
ユーザが表示画面Pの欄P4及び欄P5の重み付け係数の評価関数に対応する位置偏差の時間応答を見て、評価関数の重みを変更して再学習したい場合がある。
ユーザが、例えば表示画面Pの欄P4の重み付け係数の評価関数に対応する位置偏差の時間応答を評価関数の重みを変更して再学習する場合は、ユーザによって表示画面Pの欄P4の表の枠が選択されると、制御部205は枠を太字の四角で示し、枠内の重み付け係数α及びγを編集可能とする。ユーザによって、例えば、α=100、γ=20が入力され、表示画面Pの欄P4の「選択」が選択されると、制御部205は、学習情報出力部202を介して機械学習装置100に対して、数式3の評価関数の識別情報、及びこの評価関数の重み付け係数(α=100、γ=20)を含む評価関数指示情報(変更指示となる)を送る。
機械学習装置100は評価関数指示情報に基づいて評価関数を重み付け係数(α=100、γ=20)の数式3の評価関数に変更し、この評価関数に基づいて機械学習することで速度フィードフォワード処理部の伝達関数の係数(パラメータ)が最適値に近づくように、速度フィードフォワード処理部の伝達関数の係数を微調整した修正パラメータ、試行回数を出力装置200に送る。制御部205は、修正パラメータをサーボ制御装置300に出力する。こうして、機械学習装置100の再学習が行われる。
(具体例3:種類の異なる複数の評価関数の例)
具体例2では重み付けと、評価関数の種類とが異なる2つの評価関数のいずれかを選択する例について説明した。
具体例3は数式5の評価関数と数式6の評価関数を用い、位置偏差の絶対値の2乗の最小化を図る数式5の評価関数か、位置偏差の最大値を最小化する数式6の評価関数かのいずれかを選択するものである。
図8は数式5の評価関数(Type 1)と数式6の評価関数(Type 2)、及び各評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答曲線を重ねた図を表示する場合の表示画面の一例を示す図である。
評価関数の選択は、図8に示す四角に、ユーザにより操作部204を用いてチェックが入ったときに、制御部205はチェックが入った方の評価関数が選択されたものと判断する。機械学習装置100、出力装置200、及びサーボ制御装置300の動作は、具体例1と同様なので、ここでは説明を省略する。
(具体例4:積分の時間範囲の異なる複数の評価関数の例)
具体例2では、評価関数の種類と重み付けとが異なる2つの評価関数のいずれかを選択する例について説明した。
具体例3は数式4の評価関数を用い、位置偏差の絶対値の2乗の集合の時間範囲(時刻t0〜t1の範囲)を変えた複数の評価関数から評価関数を選択するものである。
図9は数式4の評価関数、評価関数の時間範囲t0とt1(Case 1及びCase 2)を示す表、及び各評価関数で学習されたパラメータに基づいて取得される位置偏差の時間応答曲線を重ねた図を表示する場合の表示画面の一例を示す図である。
機械学習装置100、出力装置200、及びサーボ制御装置300の動作は、具体例1と同様なので、ここでは説明を省略する。
(具体例5)
具体例1〜具体例4は、表示画面Pに位置偏差の時間応答特性を表示する例について説明したが、位置偏差の時間応答特性の替わりに又は位置偏差の時間応答特性とともに、位置偏差の周波数応答特性を表示してもよい。図10B及び図11Bは、図4の欄P4の特性図に対応する図10Aの時間応答特性図及び欄P5の特性図に対応する図11Aの時間応答特性図に替えて表示する周波数応答特性図を示す。
図10Bは機械学習装置100が数式3の評価関数を用いて学習することで、サーボ制御装置300から取得される位置偏差の周波数特性図、図11Bは機械学習装置100が数式2の評価関数を用いて学習することで、サーボ制御装置300から取得される位置偏差の周波数特性図を示している。図10Bに示す周波数特性図は高周波偏差が大きく、80Hz、140Hz付近にピークを有することを示している。図11Bに示す周波数特性図は低周波偏差が大きく、25Hz、75Hz付近にピークを有することを示している。
また、図10Bに示される周波数特性曲線と図11Bに示される周波数特性曲線とを重ねて表示することも可能である。図12は図10Bに示される周波数特性曲線と図11Bに示される周波数特性曲線とを重ねて表示した図である。
以上、表示部209の表示画面Pに表示する表示画面の例について説明したが、具体例1〜具体例5に示す表示画面又は表示画面に表示する特性図の一例であって、本実施形態はこれに限られない。上記に例示した項目以外の情報を表示してもよい。また、上記に例示したいくつかの項目の情報表示を省略してもよい。
また、上記説明においては、制御部205は、サーボ制御装置300から取得した位置偏差を記憶部206に記憶し、機械学習装置100の試行回数が所定の試行回数に達したときに、評価関数、及び位置偏差の時間応答を示す図等を表示部209に表示するものとしたが、これに限られない。
例えば、試行回数に関係せずに表示を行う構成例としては以下の例がある。
構成例1:操作者(オペレータ)等のユーザが表示指示をしたときに、評価関数、及び位置偏差の時間応答を示す図等を表示する。
構成例2:機械学習の中断時に評価関数、及び位置偏差の時間応答を示す図等を表示する。
次に、出力装置200の動作について図13を用いて説明する。
図13は、機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。
ステップS31において、出力装置200は、ユーザによって例えば図3に示す、表示部209の表示画面Pの欄P1の「プログラム起動」がマウス、キーボード等の操作部204で選択されると、制御部205は、プログラム起動指示を、学習情報出力部202を介して機械学習装置100に出力する。そして、サーボ制御装置300に対して、学習のためのプログラム起動指示を機械学習装置100に出力したことを通知する学習のためのプログラム起動指示通知を出力する。
ステップS32において、出力装置200は、サーボ制御装置300に学習時の加工プログラムを出力する上位装置に学習時の加工プログラムの起動指示を行う。ステップS32はステップ31の前、ステップ31と同時に行われてもよい。上位装置は学習時の加工プログラムの起動指示を受けると、位置指令を作成してサーボ制御装置300に出力する。
ステップS33において、出力装置200は評価関数の重み付け係数の値、使用すべき評価関数の識別情報等の評価関数指示情報を機械学習装置100に送る。
ステップS21において、機械学習装置100は、プログラム起動指示を受けると、機械学習を開始する。そして、機械学習装置100は、出力装置200から評価関数指示情報を受けると、指示された重み付け係数、種類の評価関数に基づいて機械学習を行う評価関数を設定する。
ステップS11において、サーボ制御装置300は、サーボモータ400を制御して、速度フィードフォワード処理部308のパラメータ(係数a、b)と、位置指令、及び位置偏差、を含むサーボ情報とを出力装置200に出力する。そして、出力装置200は、パラメータ、位置指令、及び位置偏差を機械学習装置100へ出力する。
ステップS21において、機械学習装置100は、設定された評価関数を用いて行われる機械学習動作中に報酬出力部2021で用いられる試行回数と関連づけられた状態Sに係る評価関数値、最大試行回数、試行回数及び速度フィードフォワード処理部308の伝達関数の係数a、bの修正情報(修正パラメータとなる)を含む情報を出力装置200に出力する。出力装置200は、速度フィードフォワード処理部308の伝達関数の係数a、bの修正情報をサーボ制御装置300へ出力する。
ステップS11、及びステップS21は所定の試行回数まで繰り返し行われる。
ステップS34において、出力装置200は試行回数が所定の試行回数に達し、設定された評価関数による機械学習が終了すると、ユーザによって指定される複数の評価関数による機械学習動作が終了したかどうかを判断する。複数の評価関数による学習動作が終了したと判断した場合は、出力装置200はステップS35において、表示部209の表示画面Pに、複数の評価関数と各評価関数により機械学習された学習結果(例えば、位置偏差の時間応答)を表示する。複数の評価関数による学習動作が終了していないと判断した場合は、ステップS33に戻り、次の評価関数の評価関数指示を機械学習装置100へ出力する。
ステップS36において、ユーザにより評価関数が選択されると、出力装置200は、選択された評価関数を用いた機械学習で最適化された、速度フィードフォワード処理部308の伝達関数の係数a、bをサーボ制御装置300へ送る。
ステップS12において、サーボ制御装置300は最適化された係数a、bを速度フィードフォワード処理部308の伝達関数の係数として設定(パラメータ設定)する。
次に、サーボ制御装置300について説明する。
<サーボ制御装置300>
図14は本発明の第1実施形態の制御装置に含まれるサーボ制御装置の一構成例を示すブロック図である。
図14に示すように、サーボ制御装置300は、構成要素として、減算器301、位置制御部302、加算器303、減算器304、速度制御部305、加算器306、積分器307、速度フィードフォワード処理部308、及び位置フィードフォワード処理部309を備えている。
位置指令は、減算器301、速度フィードフォワード処理部308、位置フィードフォワード処理部309、及び出力装置200に出力される。
位置指令は、サーボモータ400を動作させるプログラムに基づいて、上位装置によって作成される。サーボモータ400は、例えば工作機械に含まれる。工作機械において、被加工物(ワーク)を搭載するテーブルがX軸方向及びY軸方向に移動される場合には、X軸方向及びY軸方向に対してそれぞれ図14に示すサーボ制御装置300及びサーボモータ400が設けられる。テーブルを3軸以上の方向に移動させる場合には、それぞれの軸方向に対してサーボ制御装置300及びサーボモータ400が設けられる。
位置指令は、加工プログラムにより指定される加工形状となるように、送り速度が設定される。
減算器301は位置指令値と位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部302及び出力装置200に出力する。
位置制御部302は、位置偏差にポジションゲインKpを乗じた値を、速度指令値として加算器303に出力する。
加算器303は、速度指令値と位置フィードフォワード処理部309の出力値(位置フィードフォワード項)とを加算して、フィードフォワード制御された速度指令値として減算器304に出力する。減算器304は加算器303の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部305に出力する。
速度制御部305は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令値として加算器306に出力する。
加算器306は、トルク指令値と速度フィードフォワード処理部308の出力値(速度フィードフォワード項)とを加算して、フィードフォワード制御されたトルク指令値として不図示の電流制御部を介してサーボモータ400に出力してサーボモータ400を駆動する。
サーボモータ400の回転角度位置は、サーボモータ400に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、速度検出値は速度フィードバックとして減算器304に入力される。速度検出値は積分器307で積分されて位置検出値となり、位置検出値は位置フィードバックとして減算器301に入力される。
速度フィードフォワード処理部308は、位置指令に対して速度フィードフォワード処理を行い、処理結果を速度フィードフォワード項として加算器306に出力する。速度フィードフォワード処理部308の伝達関数は、上述した数式1で示された伝達関数F(s)である。
なお、速度フィードフォワード処理部308は、モータの逆特性(伝達関数はJs)とノッチフィルタとで示すことができる場合がある。
速度フィードフォワード処理部308がモータの逆特性(伝達関数はJs)とノッチフィルタとで示される場合は、数式1で示される伝達関数F(s)は数式7の右辺で示す数式モデルとなり、イナーシャJ、中心角周波数ω、比帯域ζ、減衰係数Rを用いて数式7の右辺のように示される。
Figure 0006849643
位置フィードフォワード処理部309は、位置指令値を微分して定数αを掛け、その処理結果を位置フィードフォワード項として、加算器303に出力する。
図14に示したサーボ制御装置300は、位置偏差を出力装置200へ出力しているが、機械学習装置100が評価関数として、位置偏差の他に、速度偏差又はトルク指令を用いる場合には、減算器304の出力となる速度偏差、又は加算器306の出力となる速度フォワード制御されたトルク指令を出力装置200に出力する。
以上のように、サーボ制御装置300は構成される。
次に機械学習装置100について説明する。
<機械学習装置100>
機械学習装置100は、予め設定された加工プログラム(以下、「学習時の加工プログラム」ともいう)を実行することで、速度フィードフォワード処理部308の伝達関数の係数を学習する。
ここで、学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が一つ置きに円弧に置き換えられた形等である。なお、学習時の加工プログラムにより指定される加工形状はこれらの加工形状に限定されず、他の加工形状であってもよい。
図15は、加工形状が八角形の場合のモータの動作を説明するための図である。図16は、加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。図15及び図16において、被加工物(ワーク)が時計まわりに加工されるようにテーブルがX軸及びY軸方向に移動するものとする。
加工形状が八角形の場合は、図15に示すように、角の位置A1で、テーブルをY軸方向に移動するモータは回転速度が遅くなり、テーブルをX軸方向に移動するモータは回転速度が速くなる。
角の位置A2で、テーブルをY軸方向に移動するモータは、回転方向が反転し、テーブルをX軸方向に移動するモータは、位置A1から位置A2及び位置A2から位置A3にかけて、同じ回転方向で、等速度で回転する。
角の位置A3で、テーブルをY軸方向に移動するモータは回転速度が速くなり、テーブルをX軸方向に移動するモータは回転速度が遅くなる。
角の位置A4で、テーブルをX軸方向に移動するモータは、回転方向が反転し、テーブルをY軸方向に移動するモータは、位置A3から位置A4及び位置A4から次の角の位置にかけて、同じ回転方向で、等速度で回転する。
加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合は、図16に示すように、角の位置B1で、テーブルをY軸方向に移動するモータは回転速度が遅くなり、テーブルをX軸方向に移動するモータは回転速度が速くなる。
円弧の位置B2で、テーブルをY軸方向に移動するモータは、回転方向が反転し、テーブルをX軸方向に移動するモータは位置B1から位置B3にかけて同じ回転方向で、等速度で回転する。図15に示した加工形状が八角形の場合と異なり、テーブルをY軸方向に移動するモータは位置B2の前後で円弧の加工形状が形成されるように、位置B2に向かって徐々に減速され、位置B2で回転が停止され、位置B2を過ぎると回転方向が徐々に増加していく。
角の位置B3で、テーブルをY軸方向に移動するモータは回転速度が速くなり、テーブルをX軸方向に移動するモータは回転速度が遅くなる。
円弧の位置B4で、テーブルをX軸方向に移動するモータは、回転方向が反転し、テーブルはX軸方向に直線反転するように移動する。また、テーブルをY軸方向に移動するモータは位置B3から位置B4、及び位置B4から次の角の位置にかけて同じ回転方向で、等速度で回転する。テーブルをX軸方向に移動するモータは位置B4の前後で円弧の加工形状が形成されるように、位置B4に向かって徐々に減速され、位置B4で回転が停止され、位置B4を過ぎると回転方向が徐々に増加していく。
本実施形態では、以上説明した、学習時の加工プログラムにより指定される加工形状の位置A1と位置A3、及び位置B1と位置B3により、線形制御において回転速度が変更されたときの振動を評価し、位置偏差に対する影響を調べることで、速度フィードフォワード処理部308の伝達関数の係数の最適化に係る機械学習を行うものとする。なお、本実施形態では用いていないが、加工形状の位置A2と位置A4、及び位置B2と位置B4により、回転方向が反転する場合に生ずる惰走(惰性で動作する)を評価し、位置偏差に対する影響を調べることもできる。
伝達関数の係数の最適化に係る機械学習は、速度フィードフォワード処理部に特に限定されるものでなく、例えば、位置フィードフォワード処理部、又はサーボ制御装置の電流フィードフォワードを行う場合に設けられる電流フィードフォワード処理部にも適用可能である。その場合、位置フィードフォワード処理部、電流フィードフォワード処理部は、速度フィードフォワード処理部と同様に係数を有する伝達関数、例えば、数式1で示された伝達関数F(s)と同様な伝達関数を有する。
次に、機械学習装置100について更に詳細に説明する。
以下の説明では機械学習装置100が強化学習を行う場合について説明するが、機械学習装置100が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
機械学習装置100に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習装置100に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Sの下で、行動Aを選択する価値Q(S,A)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態Sのとき、取り得る行動Aのなかから、価値Q(S,A)の最も高い行動Aを最適な行動として選択することを目的とする。
しかしながら、Q学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(S,A)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Q(S,A)の更新式は、例えば、次の数式8(以下に数8として示す)により表すことができる。
Figure 0006849643
上記の数式8において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した数式8は、試行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のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
ここで、Q学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(S,A)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値Q(S,A)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
以上説明をしたQ学習を機械学習装置100が行う。具体的には、機械学習装置100は、サーボ制御装置300における、速度フィードフォワード処理部308の伝達関数の各係数a、b(0≦i≦m,0≦j≦n、m,nは自然数である)の値、並びに学習時の加工プログラムを実行することで取得されるサーボ制御装置300の位置偏差、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Sとして、当該状態Sに係る、速度フィードフォワード処理部308の伝達関数の各係数a、bの値の調整を行動Aとして選択する価値Qを学習する。
機械学習装置100は、速度フィードフォワード処理部308の伝達関数の各係数a、bに基づいて、学習時の加工プログラムを実行することで前述した加工形状の位置A1と位置A3、及び位置B1と位置B3における、サーボ制御装置300の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Sを観測して、行動Aを決定する。機械学習装置100は、行動Aをするたびに報酬が返ってくる。機械学習装置100は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習装置100は、速度フィードフォワード処理部308の伝達関数の各係数a、bに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置300の位置指令及び位置偏差を含む指令、フィードバック等のサーボ状態を含む状態Sに対して、最適な行動A(すなわち、速度フィードフォワード処理部308の最適な係数a、b)を選択することが可能となる。位置A1と位置A3、及び位置B1と位置B3とでは、X軸方向及びY軸方向のサーボモータの回転方向は変わらず、機械学習装置100は線形動作時の速度フィードフォワード処理部308の伝達関数の各係数a、bの学習を行うことができる。
すなわち、機械学習装置100により学習された価値関数Qに基づいて、或る状態Sに係る速度フィードフォワード処理部308の伝達関数の各係数a、bに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動A(すなわち、速度フィードフォワード処理部308の係数a、b)を選択することが可能となる。
図17は本発明の第1の実施形態の機械学習装置100を示すブロック図である。
上述した強化学習を行うために、図17に示すように、機械学習装置100は、状態情報取得部101、学習部102、行動情報出力部103、価値関数記憶部104、及び最適化行動情報出力部105を備える。学習部102は報酬出力部1021、価値関数更新部1022、及び行動情報生成部1023を備える。
状態情報取得部101は、サーボ制御装置300における速度フィードフォワード処理部308の伝達関数の各係数a、bに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置300の位置指令及び位置偏差を含む指令、フィードバック等のサーボ状態を含む状態Sを、出力装置200を介してサーボ制御装置300から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。報酬出力部1021が評価関数として、位置偏差の他に、速度偏差、トルク指令を用いる場合には、出力装置200を介してサーボ制御装置300から速度偏差、及びトルク指令を取得する。
また、状態情報取得部101は、出力装置200から評価関数の重み付け係数又は評価関数の種類を変更するための指示情報を出力装置200から取得する。
状態情報取得部101は、取得した状態情報S及び指示情報を学習部102に対して出力する。
なお、最初にQ学習を開始する時点での速度フィードフォワード処理部308の係数a、bは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した速度フィードフォワード処理部308の係数a、bの初期設定値を、強化学習により最適なものに調整する。速度フィードフォワード処理部308の係数a、bは例えば、初期設定値として、数式1のa=1、a=0、a=0、・・・、a=0、b=1、b=0、b=0、・・・b=0とする。また、係数a、bの次数m、nを予め設定する。すなわち、aについては0≦i≦m、bについては0≦j≦nとする。
なお、係数a、bは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
学習部102は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
報酬出力部1021は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。ここで、状態Sにおける状態変数である位置偏差の集合(位置偏差集合)をPD(S)、行動情報A(速度フィードフォワード処理部308の各係数a、bの修正)により状態Sから変化した状態情報S´に係る状態変数である位置偏差集合をPD(S´)で示す。また、状態Sにおける位置偏差の値を、予め設定された評価関数f(PD(S))に基づいて算出される値とする。
最初にQ学習を開始する時点での評価関数は、予めユーザが設定するようにする。例えば、機械学習装置100は複数の評価関数、例えば数式2〜数式6等の複数の評価関数を保存し、ユーザは保存された複数の評価関数から選択することができる。また、ユーザは重み付け係数α、β及びγを設定することができる。重み付け係数α、β及びγは、最初にQ学習を開始する時点において、工作機械メーカ等が標準的な値に設定してもよい。数式2〜数式6等の複数の評価関数に識別情報が付与されている場合には、ユーザは識別情報を選択する。
なお、具体例1〜具体例5で説明したように、出力装置200は位置偏差の時間応答を得るため、ユーザによって選択された評価関数に設定するため、及び位置偏差の時間応答を再学習したい場合に、機械学習装置100に対して評価関数指示情報を出力する。評価関数指示情報は、評価関数の識別情報又は評価関数の識別情報と重み付け係数を含んでいる。評価関数指示情報は、例えば状態情報取得部101によって取得され、状態情報取得部101は評価関数指示情報を報酬出力部1021に出力する。
報酬出力部1021は、評価関数指示情報に基づいて、評価関数の重み付け係数又は評価関数の種類を設定又は変更する。例えば、報酬出力部1021は、数3に示す評価関数fの重み付け係数α、β、γを変更する指示情報を受けた場合には、指示された値に重み付け係数α、β、γを変更する。
行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード処理部308に基づいて動作したサーボ制御装置300の位置偏差の評価関数値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード処理部308に基づいて動作したサーボ制御装置300の位置偏差の評価関数値f(PD(S))よりも大きくなった場合に、報酬出力部1021は、報酬の値を負の値とする。
一方で、位置偏差の評価関数値f(PD(S´))が、位置偏差の評価関数値f(PD(S))よりも小さくなった場合に、報酬出力部1021は、報酬の値を正の値とする。
また、位置偏差の評価関数値f(PD(S´))が、位置偏差の評価関数値f(PD(S))と等しい場合は、報酬出力部1021は、報酬の値をゼロとする。
また、行動Aを実行後の状態S´の位置偏差の評価関数値f(PD(S´))が、前の状態Sにおける位置偏差の評価関数値f(PD(S))より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり位置偏差の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S´の位置偏差の評価関数値f(PD(S´))が、前の状態Sにおける位置偏差の評価関数値f(PD(S))より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまり位置偏差の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
価値関数更新部1022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部104が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移する都度、即座に価値関数Qの更新を行う学習方法である。また、バッチ学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行う学習方法である。
行動情報生成部1023は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部1023は、Q学習の過程において、サーボ制御装置300の速度フィードフォワード処理部308の各係数a、bを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部103に対して出力する。より具体的には、行動情報生成部1023は、例えば、状態Sに含まれる速度フィードフォワード処理部の各係数に対して行動Aに含まれる、速度フィードフォワード処理部308の各係数a、bをインクレメンタル(例えば0.01程度)に加算又は減算させる。
そして、行動情報生成部1023は、速度フィードフォワード処理部308の各係数a、bの増加又は減少を適用して、状態S´に遷移して、プラスの報酬(正の値の報酬)が返った場合、次の行動A´としては、速度フィードフォワード処理部308の各係数a、bに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動A´を選択する方策を取るようにしてもよい。
また、逆に、マイナスの報酬(負の値の報酬)が返った場合、行動情報生成部1023は、次の行動A´としては、例えば、速度フィードフォワード処理部の各係数a、bに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動A´を選択する方策を取るようにしてもよい。
また、行動情報生成部1023は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
行動情報出力部103は、学習部102から出力される行動情報A及び評価関数の変更報告を出力装置200に対して出力する部分である。サーボ制御装置300は上述したように、出力装置200を介して取得した、行動情報に基づいて、現在の状態S、すなわち現在設定されている速度フィードフォワード処理部308の各係数a、bを微修正することで、次の状態S´(すなわち修正された、速度フィードフォワード処理部308の各係数)に遷移する。
価値関数記憶部104は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部104に記憶された価値関数Qは、価値関数更新部1022により更新される。また、価値関数記憶部104に記憶された価値関数Qは、他の機械学習装置100との間で共有されるようにしてもよい。価値関数Qを複数の機械学習装置100で共有するようにすれば、各機械学習装置100にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部105は、価値関数更新部1022がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を速度フィードフォワード処理部308に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部105は、価値関数記憶部104が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部1022がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部105は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報を出力装置200に対して出力する。この最適化行動情報には、行動情報出力部103がQ学習の過程において出力する行動情報と同様に、速度フィードフォワード処理部308の各係数a、bを修正する情報及び評価関数の変更報告が含まれる。
以上のように、本実施形態に係る機械学習装置100を利用することで、サーボ制御装置300の速度フィードフォワード処理部308のパラメータ調整を簡易化することができる。
以上説明した実施形態においては、機械学習装置100は、X軸方向及びY軸方向のサーボモータの回転方向が変わらない線形動作時の、速度フィードフォワード処理部の係数の最適化に係る学習について説明した。
しかし、本実施形態は、線形動作時の学習に限定されず、非線形動作の学習に適用することもできる。例えば、バックラッシュ補正のために、速度フィードフォワード処理部の係数の最適化に係る学習を行う場合、前述した加工形状の位置A2と位置A4、及び位置B2と位置B4における、位置指令値と積分器108から出力される検出位置との差を位置偏差として抽出して、これを判定情報として報酬を与えて強化学習することができる。
位置A2と位置A4、及び位置B2と位置B4とでは、Y軸方向又はX軸方向のサーボモータの回転方向は反転して非線形動作となってバックラッシが生じ、機械学習装置は非線形動作時のフィードフォワード処理部の伝達関数の係数の学習を行うことができる。
以上、第1実施形態の出力装置及び制御装置について説明したが、次に第2及び第3の実施形態の出力装置及び制御装置について説明する。
(第2実施形態)
第1の実施形態では、出力装置200はサーボ制御装置300と機械学習装置100とに接続され、機械学習装置100とサーボ制御装置300との間の情報の中継、サーボ制御装置300と機械学習装置100との動作の制御を行っていた。
本実施形態では、出力装置が機械学習装置のみに接続される場合について説明する。
図18は、本発明の第2実施形態の制御装置の一構成例を示すブロック図である。制御装置10Aは、機械学習装置100、出力装置200A、サーボ制御装置300、及びサーボモータ400を備えている。
出力装置200Aは、図2に示す出力装置200と比べて、情報取得部217及び情報出力部218を備えていない。
出力装置200Aはサーボ制御装置300と接続されていないため、機械学習装置100とサーボ制御装置300との間の情報の中継、サーボ制御装置300との間での情報の送受信は行わない。具体的には、図13に示す、ステップS31の学習プログラム起動指示、ステップS33のパラメータの物理量出力、及びステップS35の再学習指示は実行するが、図13に示すその他の動作(例えば、ステップS32、S34)は行わない。そうすることで、出力装置200Aはサーボ制御装置300と接続されないため、出力装置200Aの動作が少なくなり、装置構成が簡易化できる。
(第3実施形態)
第1の実施形態では、出力装置200はサーボ制御装置300と機械学習装置100とに接続されていたが、本実施形態では、調整装置が機械学習装置100とサーボ制御装置300とに接続され、出力装置が調整装置に接続される場合について説明する。
図19は、本発明の第3実施形態の制御装置の一構成例を示すブロック図である。制御装置10Bは、機械学習装置100、出力装置200A、サーボ制御装置300及び調整装置500を備えている。図19に示した出力装置200Aは、図18に示した出力装置200Aの構成と同一であるが、情報取得部211と情報出力部212が機械学習装置100でなく、調整装置700に接続されている。
調整装置500は、図2の出力装置200の作図部203、操作部204、表示部209及び演算部2100が除かれた構成となっている。
図19に示した出力装置200Aは、第2の実施形態の図18に示した出力装置200Aと同様に、図13に示す、ステップS31の学習プログラム起動指示、ステップS33のパラメータの物理量出力、ステップS34のパラメータの微調整の指示の他に、ステップS35の再学習指示を行うが、これらの動作は、調整装置700を介して行う。調整装置500は、機械学習装置100とサーボ制御装置300との間の情報を中継する。また調整装置500は、出力装置200Aが行う、機械学習装置100に対する学習プログラム起動指示等を中継して、機械学習装置100にそれぞれ起動指示を出力する。
そうすることで、第1実施形態と比較して出力装置200の機能が、出力装置200Aと調整装置500とに分離されるので、出力装置200Aの動作が少なくなり、装置構成が簡易化できる。
以上本発明に係る各実施形態について説明したが、上記のサーボ制御装置、機械学習装置及び出力装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
プログラムは、様々なタイプの非一時的なコンピュータ読み取り可能な記録媒体(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))を含む。
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態及び実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
<出力装置がサーボ制御装置又は機械学習装置に含まれる変形例>
上述した実施形態では、機械学習装置100、出力装置200又は200A、及びサーボ制御装置300を制御装置10として構成する第1実施形態及び第2実施形態と、さらに出力装置200を出力装置200Aと調整装置500とに分離して制御装置に設けて構成した第3実施形態について説明した。これらの実施形態では、機械学習装置100、出力装置200又は200A、サーボ制御装置300、調整装置500とは別体の装置により構成しているが、これらの装置の一つを他の装置と一体に構成してもよい。例えば、出力装置200又は200Aの機能の一部又は全部を機械学習装置100、又はサーボ制御装置300により実現するようにしてもよい。
また、出力装置200又は200Aを、機械学習装置100、及びサーボ制御装置300で構成される制御装置の外部に設けてもよい。
<システム構成の自由度>
図20は他の構成の制御装置を示すブロック図である。制御装置10Cは、図20に示すように、n台の機械学習装置100−1〜100−n、出力装置200−1〜200−n、及びn台のサーボ制御装置300−1〜300−n、サーボモータ400−1〜400−n、及びネットワーク600を備えている。なお、nは任意の自然数である。n台の機械学習装置100−1〜100−nのそれぞれは図17に示した機械学習装置100に対応している。出力装置200−1〜200−nは図2に示した出力装置200又は図18に示した出力装置200Aに対応している。n台のサーボ制御装置300−1〜300−nのそれぞれは図2に示したサーボ制御装置300に対応している。図19に示した出力装置200A及び調整装置500は出力装置200−1〜200−nに対応している。
ここで、出力装置200−1とサーボ制御装置300−1とは1対1の組とされて、通信可能に接続されている。出力装置200−2〜200−nとサーボ制御装置300−2〜300−nとについても、出力装置200−1とサーボ制御装置300−1と同様に接続される。図20では、出力装置200−1〜200−nとサーボ制御装置300−1〜300−nとのn個の組は、ネットワーク600を介して接続されているが、出力装置200−1〜200−nとサーボ制御装置300−1〜300−nとのn個の組は、それぞれの組の出力装置とサーボ制御装置とが接続インタフェースを介して直接接続されてもよい。これら出力装置200−1〜200−nとサーボ制御装置300−1〜300−nとのn個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
なお、ネットワーク600は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク600における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
上述した図20の制御装置では、出力装置200−1〜200−nとサーボ制御装置300−1−300−nとが1対1の組として通信可能に接続されているが、例えば1台の出力装置200−1が複数のサーボ制御装置300−1〜300−m(m<n又はm=n)とネットワーク600を介して通信可能に接続され、1台の出力装置200−1と接続される1台の機械学習装置が各サーボ制御装置300−1〜300−mの機械学習を実施するようにしてもよい。
その際、機械学習装置100−1の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置100−1の各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズのサーボ制御装置300−1〜300−nとそれぞれ対応する複数の機械学習装置100−1〜100−nがあった場合に、各機械学習装置100−1〜100−nにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
10、10A、10B、10C 制御装置
100 機械学習装置
200 出力装置
211 情報取得部
212 情報出力部
213 作図部
214 操作部
215 制御部
216 記憶部
217 情報取得部
218 情報出力部
219 表示部
300 サーボ制御装置
400 サーボモータ
500 調整装置
600 ネットワーク

Claims (13)

  1. 工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置からサーボ情報を取得し、当該サーボ制御装置の構成要素のパラメータの機械学習を行う機械学習装置で用いる複数の評価関数と、各評価関数毎の機械学習結果とを出力する出力部と、
    前記機械学習結果を前記サーボ制御装置と前記機械学習装置の少なくとも一方から取得する情報取得部と、
    を備えた出力装置。
  2. 前記出力部は、前記複数の評価関数と、各評価関数毎に取得される前記機械学習結果とを表示画面に表示する表示部を含む請求項1に記載の出力装置。
  3. 前記複数の評価関数を用いて機械学習された複数のパラメータから、前記複数の評価関数の各評価関数毎の前記機械学習結果に基づいて選択されたパラメータを、前記サーボ制御装置に出力する情報出力部を備えた請求項1又は2に記載の出力装置。
  4. 前記複数の評価関数の中から選択された評価関数又は前記複数の評価関数とは異なる評価関数への変更指示を前記機械学習装置に出力する情報出力部を備えた請求項1から請求項3のいずれか1項に記載の出力装置。
  5. 前記機械学習結果は、前記サーボ制御装置における制御指令と、該制御指令に基づいて前記サーボモータを駆動したときのフィードバック情報との偏差である請求項1から請求項4のいずれか1項に記載の出力装置。
  6. 前記機械学習装置は、評価関数を用いて機械学習時に探索された前記サーボ制御装置の構成要素のパラメータと、該パラメータを用いて前記サーボ制御装置を動作させることで得られた機械学習結果とを保存し、前記変更指示に基づいて前記評価関数を変更して機械学習する場合に、前記パラメータと同じパラメータが選ばれたときに、保存された前記機械学習結果を用いて、変更された評価関数により評価関数値を求める請求項4に記載の制御装置。
  7. 前記異なる評価関数は、前記複数の評価関数のいずれかと重み付け係数の異なる評価関数である請求項4又は請求項6に記載の出力装置。
  8. 前記複数の評価関数は、位置偏差を変数とする関数と、位置偏差の微分値を変数とする関数と、トルクの微分値を変数とする関数とをそれぞれ重み付けした和からなる評価関数を含む請求項1から請求項7のいずれか1項に記載の出力装置。
  9. 前記サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータを含む請求項3から請求項8のいずれか1項に記載の出力装置。
  10. 前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィードフォワード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含む、請求項9に記載の出力装置。
  11. 請求項1から10のいずれか1項に記載の出力装置と、
    工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
    サーボ制御装置に対して機械学習を行う機械学習装置と、
    を備えた制御装置。
  12. 前記出力装置は、前記サーボ制御装置と前記機械学習装置のうちの一つに含まれる、請求項11に記載の制御装置。
  13. 工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置からサーボ情報を取得し、当該サーボ制御装置に対して評価関数を用いて機械学習を行う機械学習装置で、複数の評価関数をそれぞれ用いて機械学習を行うことで得られた、各評価関数毎の機械学習結果を出力し、
    前記機械学習結果を前記機械学習装置と前記サーボ制御装置の少なくともつから取得する、
    出力装置の評価関数と機械学習結果の出力方法。
JP2018211397A 2018-11-09 2018-11-09 出力装置、制御装置、及び評価関数と機械学習結果の出力方法 Active JP6849643B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018211397A JP6849643B2 (ja) 2018-11-09 2018-11-09 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
US16/573,079 US11592789B2 (en) 2018-11-09 2019-09-17 Output device, control device, and method for outputting evaluation functions and machine learning results
CN201911071925.4A CN111176114B (zh) 2018-11-09 2019-11-05 输出装置、控制装置、以及评价函数和机器学习结果的输出方法
DE102019217130.3A DE102019217130A1 (de) 2018-11-09 2019-11-06 Ausgabevorrichtung, steuervorrichtung und verfahren zum ausgeben von bewertungsfunktionen und maschinellen lernergebnissen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018211397A JP6849643B2 (ja) 2018-11-09 2018-11-09 出力装置、制御装置、及び評価関数と機械学習結果の出力方法

Publications (2)

Publication Number Publication Date
JP2020077310A JP2020077310A (ja) 2020-05-21
JP6849643B2 true JP6849643B2 (ja) 2021-03-24

Family

ID=70469171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018211397A Active JP6849643B2 (ja) 2018-11-09 2018-11-09 出力装置、制御装置、及び評価関数と機械学習結果の出力方法

Country Status (4)

Country Link
US (1) US11592789B2 (ja)
JP (1) JP6849643B2 (ja)
CN (1) CN111176114B (ja)
DE (1) DE102019217130A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117521725A (zh) * 2016-11-04 2024-02-06 渊慧科技有限公司 加强学习***
US20200125722A1 (en) * 2018-10-18 2020-04-23 Denso International America, Inc. Systems and methods for preventing runaway execution of artificial intelligence-based programs
JP7512674B2 (ja) 2020-05-22 2024-07-09 コニカミノルタ株式会社 画像処理システム、画像処理装置、プログラム、制御管理システムおよび装置
CN111832921B (zh) * 2020-06-30 2023-09-26 佛山科学技术学院 基于机器学习的工业机器人性能指标评价设备及方法
JP2022070451A (ja) * 2020-10-27 2022-05-13 セイコーエプソン株式会社 ロボットのパラメーターセットの調整を支援する方法、プログラム、および情報処理装置
US20240193329A1 (en) * 2021-04-07 2024-06-13 Augmenta, Inc. Cad device with utility element routing and related methods
JP2023032289A (ja) * 2021-08-26 2023-03-09 オムロン株式会社 温度制御装置および温度制御方法
US20230102717A1 (en) * 2021-09-24 2023-03-30 Rockwell Automation Technologies, Inc. Providing a model as an industrial automation object

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4627553B2 (ja) * 2008-03-28 2011-02-09 株式会社日立製作所 プラントの制御装置および火力発電プラントの制御装置
JP6077617B1 (ja) * 2015-09-25 2017-02-08 ファナック株式会社 最適な速度分布を生成する工作機械
JP6619192B2 (ja) * 2015-09-29 2019-12-11 ファナック株式会社 移動軸異常負荷警告機能を有するワイヤ放電加工機
JP6325504B2 (ja) 2015-10-28 2018-05-16 ファナック株式会社 学習制御器の自動調整を行う機能を有するサーボ制御装置
JP6457472B2 (ja) 2016-12-14 2019-01-23 ファナック株式会社 制御システム及び機械学習装置
JP6732676B2 (ja) * 2017-02-10 2020-07-29 三菱日立パワーシステムズ株式会社 シミュレーション結果の評価装置及び方法
JP6774637B2 (ja) * 2017-02-20 2020-10-28 株式会社安川電機 制御装置及び制御方法
JP6490127B2 (ja) 2017-03-15 2019-03-27 ファナック株式会社 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6951659B2 (ja) * 2017-05-09 2021-10-20 オムロン株式会社 タスク実行システム、タスク実行方法、並びにその学習装置及び学習方法
JP6897360B2 (ja) * 2017-06-21 2021-06-30 オムロン株式会社 制御装置、制御プログラムおよび制御システム
JP2019016216A (ja) * 2017-07-07 2019-01-31 大槻 俊明 数値制御工作機械測定装置

Also Published As

Publication number Publication date
CN111176114B (zh) 2023-02-17
US11592789B2 (en) 2023-02-28
JP2020077310A (ja) 2020-05-21
DE102019217130A1 (de) 2020-05-14
US20200150599A1 (en) 2020-05-14
CN111176114A (zh) 2020-05-19

Similar Documents

Publication Publication Date Title
JP6849643B2 (ja) 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
JP6860540B2 (ja) 出力装置、制御装置、及び学習パラメータの出力方法
JP6490127B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6860541B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
JP6474449B2 (ja) 調整装置及び調整方法
JP6784722B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
JP6697491B2 (ja) 機械学習装置、サーボモータ制御装置、サーボモータ制御システム、及び機械学習方法
JP6748135B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6474456B2 (ja) 機械学習装置、サーボ制御システム及び機械学習方法
CN110376964B (zh) 机器学习装置、控制装置以及机器学习方法
JP2019185529A (ja) 機械学習装置、制御装置、及び機械学習方法
JP7405537B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム及び機械学習方法
JP7000373B2 (ja) 機械学習装置、制御装置及び機械学習方法
JP6841801B2 (ja) 機械学習装置、制御システム及び機械学習方法
JP6806746B2 (ja) モータ制御装置
JP6978452B2 (ja) 機械学習装置、制御装置、及び機械学習の探索範囲の設定方法
JP7000371B2 (ja) 機械学習装置、制御システム及び機械学習方法
JP7101091B2 (ja) モータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法
JP6740290B2 (ja) 機械学習装置、制御装置、及び機械学習方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200410

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200714

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210304

R150 Certificate of patent or registration of utility model

Ref document number: 6849643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150