JP6860540B2 - 出力装置、制御装置、及び学習パラメータの出力方法 - Google Patents

出力装置、制御装置、及び学習パラメータの出力方法 Download PDF

Info

Publication number
JP6860540B2
JP6860540B2 JP2018200820A JP2018200820A JP6860540B2 JP 6860540 B2 JP6860540 B2 JP 6860540B2 JP 2018200820 A JP2018200820 A JP 2018200820A JP 2018200820 A JP2018200820 A JP 2018200820A JP 6860540 B2 JP6860540 B2 JP 6860540B2
Authority
JP
Japan
Prior art keywords
output
control device
machine learning
learning
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
JP2018200820A
Other languages
English (en)
Other versions
JP2020067874A (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 JP2018200820A priority Critical patent/JP6860540B2/ja
Priority to US16/563,116 priority patent/US20200133226A1/en
Priority to DE102019216081.6A priority patent/DE102019216081A1/de
Priority to CN201911011700.XA priority patent/CN111103849B/zh
Publication of JP2020067874A publication Critical patent/JP2020067874A/ja
Application granted granted Critical
Publication of JP6860540B2 publication Critical patent/JP6860540B2/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/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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/402Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for positioning, e.g. centring a tool relative to a hole in the workpiece, additional detection means to correct position
    • 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/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35524Approach data and machining data

Landscapes

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

Description

本発明は、出力装置、制御装置、及び学習パラメータの出力方法に係り、特に、サーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置から、機械学習中又は機械学習後のパラメータ(学習パラメータという)を取得して、この学習パラメータから操作者等のユーザが分かりやすい情報を出力する出力装置、この出力装置を含む制御装置及び学習パラメータの出力方法に関する。
本発明に関連する技術として、例えば、特許文献1に、機械学習手段により乗算係数パターン習熟手法を用いて目的とする乗算係数パターンを求め、この乗算係数パターンを用いてデジタルフィルタ演算を行い、デジタルフィルタ出力を表示する出力部を備えた信号変換器が記載されている。
具体的には、特許文献1は、信号入力部と、入力信号データに基づいて信号データの特徴化をする機能を持った演算処理部と、演算処理部からの出力を表示する出力部とを備えている信号変換器にあって、演算処理部は、入力ファイルと、学習手段と、デジタルフィルタと、パラメータ設定手段を備え、学習手段では、機械学習手段により乗算係数パターン習熟手法を用いて目的とする乗算係数パターンを求めることを開示している。
特開平11−31139号公報
特許文献1では、演算処理部からの出力を表示しているが、機械学習手段で機械学習されたパターンを出力しておらず、操作者等のユーザは機械学習の経過又は結果を確認することができないという課題があった。
また、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置の制御パラメータを機械学習装置によって機械学習する場合に、通常、学習パラメータ及び機械学習装置で用いられる評価関数値は表示されないため、ユーザは、機械学習の経過又は結果を確認することができない。また、学習パラメータ又は評価関数値が表示されても、ユーザは学習パラメータからサーボ制御装置の特性がどのように最適化されるのかを理解するのは難しい。
本発明は、学習パラメータを取得して、この学習パラメータから操作者等のユーザが分かりやすい情報を出力する出力装置、この出力装置を含む制御装置及び学習パラメータの出力方法を提供することを目的とする。
(1) 本発明に係る出力装置は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータ(例えば、後述のサーボモータ400、410)を制御するサーボ制御装置(例えば、後述のサーボ制御装置300、310)に対して機械学習を行う機械学習装置(例えば、後述の機械学習装置200、210)から、学習中又は学習された、前記サーボ制御装置の構成要素のパラメータ又は第1の物理量を取得する情報取得部(例えば、後述の情報取得部211)と、
取得した前記第1の物理量と取得した前記パラメータから求めた第2の物理量とのいずれか1つの物理量、前記サーボ制御装置の構成要素の時間応答特性、及び前記サーボ制御装置の構成要素の周波数応答特性のうち少なくとも1つを出力する出力部(例えば、後述の制御部215と表示部219、制御部215と記憶部216)と、を備え、
前記時間応答特性及び前記周波数応答特性は、前記パラメータ、前記第1の物理量又は前記第2の物理量を用いて求める出力装置(例えば、後述の出力部200、200A,210)である。
(2) 上記(1)の出力装置において、前記出力部は、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性を表示画面に表示する表示部を含んでもよい。
(3) 上記(1)又は(2)の出力装置において、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性に基づく前記サーボ制御装置の構成要素のパラメータ又は第1の物理量の調整指示を、前記サーボ制御装置に対して行ってもよい。
(4) 上記(1)から(3)のいずれかの出力装置において、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性に基づく前記サーボ制御装置の構成要素のパラメータ又は第1の物理量の機械学習を、学習範囲を変更又は選択して行う機械学習指示を、前記機械学習装置に対して行ってもよい。
(5) 上記(1)から(4)のいずれかの出力装置において、前記機械学習装置の学習で用いる評価関数値を出力してもよい。
(6) 上記上記(1)から(5)のいずれかの出力装置において、前記サーボ制御装置から出力される位置偏差に関する情報を出力してもよい。
(7) 上記上記(1)から(6)のいずれかの出力装置において、前記サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータであってもよい。
(8) 上記上記(1)から(7)のいずれかの出力装置において、前記前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含んでもよい。
(9) 本発明に係る制御装置は、上記(1)から(8)のいずれかの出力装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
サーボ制御装置に対して機械学習を行う機械学習装置と、
を備えた制御装置である。
(10) 上記(9)の制御装置において、前記出力装置は、前記サーボ制御装置、機械学習装置、及び数値制御装置の一つに含まれてもよい。
(11) 本発明に係る出力装置の学習パラメータの出力方法は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対する機械学習装置で機械学習された、出力装置のパラメータの出力方法において、
機械学習装置から、学習中又は学習された、前記サーボ制御装置の構成要素のパラメータ又は第1の物理量を取得し、
取得した第1の物理量と取得したパラメータから求めた第2の物理量とのいずれか1つの物理量、前記サーボ制御装置の構成要素の時間応答特性、及び前記サーボ制御装置の構成要素の周波数応答特性のうちの少なくとも1つを出力し、
前記時間応答特性及び前記周波数応答特性は、前記パラメータ、前記第1の物理量又は前記第2の物理量を用いて求める、出力装置の学習パラメータの出力方法である。
本発明によれば、機械学習中又は機械学習後のパラメータを取得して、このパラメータを操作者等のユーザが分かりやすい情報に変えて出力することができる。
本発明の第1実施形態の制御装置の一構成例を示すブロック図である。 第1実施例の制御装置の全体構成及びサーボ制御装置の構成を示すブロック図である。 入力信号となる速度指令と出力信号となる検出速度とを示す図である。 入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。 本発明の第1実施形態の機械学習装置を示すブロック図である。 共振のない理想的な特性を有するサーボ制御装置の規範モデルを示す図である。 規範モデルのサーボ制御装置と、学習前及び学習後のサーボ制御装置との入出力ゲインの周波数特性を示す特性図である。 本発明の第1実施例の制御装置に含まれる出力装置の一構成例を示すブロック図である。 機械学習中の評価関数値及び評価関数値の最小値の推移を示す特性図及び学習中の制御パラメータの値を表示する場合の表示画面の一例を示す図である。 機械学習中に、機械学習の進捗状況に合わせて、状態Sに係る制御パラメータの物理量を、表示部に表示する場合の表示画面の一例を示す図である。 本発明の第1実施例の機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。 本発明の第2実施例の制御装置の全体構成及びサーボ制御装置の構成を示すブロック図である。 学習時の加工プログラムにより指定される加工形状が八角形の場合を示す図である。 加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合を示す図である。 極と零点の探索範囲を示した複素平面を示す図である。 速度フィードフォワード処理部の周波数応答特性図及び位置偏差の特性を示す図である。 本発明の第2実施例の機械学習終了指示後の出力装置の動作を示すフロー図である。 中心周波数を変えた場合の速度フィードフォワード処理部の周波数応答特性図及び位置偏差の特性を示す図である。 速度フィードフォワード処理部がモータ逆特性、ノッチフィルタ、ローパスフィルタで構成される場合を示す図である。 本発明の第2実施形態の制御装置の一構成例を示すブロック図である。 本発明の第3実施形態の制御装置の一構成例を示すブロック図である。 他の構成の制御装置を示すブロック図である。
以下、本発明の実施形態について図面を用いて詳細に説明する。
(第1実施形態)
図1は本発明の第1実施形態の制御装置の一構成例を示すブロック図である。図1に示す制御装置10は、機械学習装置100、出力装置200、サーボ制御装置300、及びサーボモータ400を備えている。
機械学習装置100は、出力装置200から、サーボ制御装置300に入力される位置指令、速度指令等の制御指令及びサーボ制御装置300から出力される位置偏差等のサーボ情報、又は制御指令及びサーボ情報から得られる情報(例えば、入出力ゲイン及び位相遅れ)等の機械学習に用いる情報を取得する。図1では一例として機械学習装置100が制御指令及びサーボ情報を取得する例を示している。また、機械学習装置100は、出力装置200から、サーボ制御装置300から出力される数式モデルのパラメータ又はフィルタのパラメータを取得する。機械学習装置100は、入力された情報に基づいて、サーボ制御装置300の数式モデル又はフィルタのパラメータを機械学習して、出力装置200へ数式モデル又はフィルタの学習パラメータを出力する。学習パラメータは、例えば、サーボ制御装置300に設けられたノッチフィルタの係数、又は速度フィードフォワード処理部の係数である。本実施形態では機械学習部100は強化学習を行うものとして説明するが、機械学習部100が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
出力装置200は機械学習装置100の機械学習中又は機械学習後の数式モデル又はフィルタの学習パラメータを取得し、これらの学習パラメータから操作者等のユーザが理解しやすい物理量、時間応答または周波数応答を示す情報を出力する。出力方法は、例えば、液晶表示装置での画面表示、プリンター等を用いた紙への印刷、メモリ等の記憶部への記憶、通信部を介した外部信号出力等である。
操作者は、数式モデル又はフィルタの学習パラメータが、例えば、ノッチフィルタの係数、速度フィードフォワード処理部の係数である場合、それ自体を見ても、ノッチフィルタ、又は速度フィードフォワード処理部の特性を把握するのが難しく、また機械学習装置による学習でどのように特性が最適化されるのかの把握が難しい。また、機械学習装置100が強化学習を行う場合に、報酬を与えるための評価関数値を出力装置200に出力することができるが、評価関数値だけではパラメータがどのように最適化されるのかの把握が難しい。そこで、出力装置200はユーザが理解しやすいパラメータの物理量(例えば、中心周波数、帯域幅fw、減衰係数(ダンピング)等)、数式モデル若しくはフィルタの時間応答または周波数応答を示す情報を出力する。このように出力装置200はユーザが理解しやすい情報を出力することで、操作者が機械学習の経過及び結果を容易に理解できるようにする。
なお、機械学習装置110から出力される学習パラメータは、それ自体が、ユーザが理解しやすい物理量である場合は、出力装置はその情報を出力し、学習パラメータが、ユーザが理解しにくい情報である場合は、出力装置はユーザが理解しやすい物理量、数式モデル若しくはフィルタの時間応答又は周波数応答に変えて出力する。
物理量は、例えば、イナーシャ、質量、粘性、剛性、共振周波数、減衰中心周波数、減衰率、減衰周波数幅、時定数、カットオフ周波数のいずれか1つ又は組み合わせである。
また、出力装置200は、機械学習装置100とサーボ制御装置300との間の情報(制御指令、制御パラメータ及びサーボ情報等)の中継、機械学習装置100とサーボ制御装置300との動作の制御を行う調整装置としても機能する。
サーボ制御装置300は、位置指令、速度指令等の制御指令に基づいて電流指令を出力し、サーボモータ400の回転を制御する。サーボ制御装置300は、例えば、ノッチフィルタ、又は数式モデルで表される速度フィードフォワード処理部を備えている。
サーボモータ400は、例えば、工作機械、ロボット、産業機械に含まれる。制御装置10は、工作機械、ロボット、産業機械等に含まれてもよい。サーボモータ400は検出位置又は/及び検出速度をフィードバック情報としてサーボ制御装置300へ出力する。
以下、上記第1実施形態の制御装置の具体的な構成について第1実施例〜第4実施例に基づいて説明する。
<第1実施例>
本実施例は、機械学習装置110がサーボ制御装置310に含まれるフィルタの係数を学習し、出力装置210がフィルタの周波数応答の推移を表示部に表示する例である。
図2は、第1実施例の制御装置の全体構成及びサーボ制御装置の構成を示すブロック図である。
制御装置11は、機械学習装置110、出力装置210、サーボ制御装置310、及びサーボモータ410を備えている。図2に示す、機械学習装置110、出力装置210、サーボ制御装置310及びサーボモータ410は図1の機械学習装置100、出力装置200、サーボ制御装置300及びサーボモータ400に対応している。
なお、機械学習装置110と出力装置210のうちの一つ又は全部はサーボ制御装置310内に設けてもよい。
サーボ制御装置310は、構成要素として減算器311、速度制御部312、フィルタ313、電流制御部314及び測定部315を備えている。測定部315はサーボ制御装置310の外に設けてもよい。減算器311、速度制御部312、フィルタ313、電流制御部314、及びサーボモータ410は速度フィードバックループを構成する。
減算器311は、入力された速度指令と速度フィードバックされた検出速度との差を求め、その差を速度偏差として速度制御部312に出力する。減算器311と測定部315には、周波数を変化させた正弦波信号が速度指令として入力される。周波数を変化させた正弦波信号は、上位装置から入力されるが、サーボ制御装置310が周波数を変化させた正弦波信号を生成する周波数生成部を備えていてもよい。
速度制御部312は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令としてフィルタ313に出力する。
フィルタ313は特定の周波数成分を減衰させるフィルタで、例えばノッチフィルタが用いられる。モータで駆動される工作機械等の機械では共振点が存在し、サーボ制御装置310で共振が増大する場合がある。ノッチフィルタを用いることで共振を低減することができる。フィルタ313の出力はトルク指令として電流制御部314に出力される。
数式1(以下に数1として示す)は、フィルタ313の伝達関数G(s)を示す。制御パラメータは係数a,a,a,b,b,bとなる。フィルタがノッチフィルタであるときは、b=a,b=a=1となる。
Figure 0006860540
以下の説明では、フィルタがノッチフィルタであって、数式1において、b=a,b=a=1であり、機械学習装置110は、係数a,a,bを機械学習するものとして説明する。
電流制御部314はトルク指令に基づいてサーボモータ410を駆動するための電流指令を生成し、その電流指令をサーボモータ410に出力する。
サーボモータ410の回転角度位置は、サーボモータ410に設けられたロータリーエンコーダ(図示せず)によって検出され、速度検出値は速度フィードバックとして減算器311に入力される。
測定部315には、周波数を変化させた正弦波信号が速度指令として入力される。測定部315は、入力信号となる速度指令(正弦波)と、ロータリーエンコーダ(図示せず)から出力された出力信号となる検出速度(正弦波)とを用いて、速度指令により規定される各周波数ごとに、入力信号と出力信号との振幅比(入出力ゲイン)と位相遅れとを求める。図3は入力信号となる速度指令と出力信号となる検出速度とを示す図である。図4は入力信号と出力信号との振幅比と、位相遅れとの周波数特性を示す図である。
以上のようにサーボ制御装置310は構成されるが、フィルタの最適なパラメータを機械学習し、当該パラメータの周波数応答を出力するために、制御装置11は、機械学習装置110、及び出力装置210を更に備える。
機械学習装置110は、出力装置210から出力される入出力ゲイン(振幅比)と位相遅れを用いて、フィルタ313の伝達関数の係数a,a,bを機械学習(以下、学習という)する。機械学習装置110による学習は出荷前に行われるが、出荷後に再学習を行ってもよい。
以下、機械学習装置110の構成及び動作の詳細について更に説明する。
機械学習装置110に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習装置110に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、機械端の振動を抑制するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態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)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
Figure 0006860540
上記の数式2において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した数式2は、試行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学習を機械学習装置110が行う。具体的には、機械学習装置110は、フィルタ313の伝達関数の各係数a,a,bの値、出力装置210から出力された入出力ゲイン(振幅比)と位相遅れを状態Sとして、当該状態Sに係る、フィルタ130の伝達関数の各係数a,a,bの値の調整を行動Aとして選択する価値Qを学習する。
機械学習装置110は、フィルタ313の伝達関数の各係数a,a,bに基づいて、前述した周波数が変化する正弦波である速度指令を用いてサーボ制御装置310を駆動することで出力装置210から得られた、各周波数ごとの入出力ゲイン(振幅比)と位相遅れとを含む状態情報Sを観測して、行動Aを決定する。機械学習装置110は、行動Aをするたびに報酬が返ってくる。機械学習装置110は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習装置110は、フィルタ313の伝達関数の各係数a,a,bに基づいて、周波数が変化する正弦波である速度指令を用いてサーボ制御装置310を駆動することで出力装置210から得られた、各周波数ごとの入出力ゲイン(振幅比)と位相遅れとを含む状態Sに対して、最適な行動A(すなわち、フィルタ313の伝達関数の最適な係数a,a,b)を選択することが可能となる。
すなわち、機械学習装置110により学習された価値関数Qに基づいて、或る状態Sに係るフィルタ313の伝達関数の各係数a,a,bに対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、加工プログラムを実行することで生ずる機械端の振動が最小になるような行動A(すなわち、フィルタ313の伝達関数の各係数a,a,b)を選択することが可能となる。
図5は本発明の第1実施形態の機械学習装置110を示すブロック図である。
上述した強化学習を行うために、図5に示すように、機械学習装置110は、状態情報取得部111、学習部112、行動情報出力部113、価値関数記憶部114、及び最適化行動情報出力部115を備える。学習部112は報酬出力部1121、価値関数更新部1122、及び行動情報生成部1123を備える。
状態情報取得部111は、フィルタ313の伝達関数の各係数a,a,bに基づいて、速度指令(正弦波)を用いてサーボモータ410を駆動することで得られた、入出力ゲイン(振幅比)と位相遅れとを含む状態Sを出力装置210から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。
状態情報取得部111は、取得した状態情報Sを学習部112に対して出力する。
なお、最初にQ学習を開始する時点でのフィルタ313の伝達関数の各係数a,a,bは、予めユーザが生成するようにする。本実施例では、ユーザが作成したフィルタ313の伝達関数の各係数a,a,bの初期設定値を、強化学習により最適なものに調整する。
なお、係数a,a,bは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
学習部112は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。
報酬出力部1121は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。
報酬出力部1121は、フィルタ313の伝達関数の各係数a,a,bを修正した場合において測定した入出力ゲインGsを、予め設定した規範モデルの各周波数ごとの入出力ゲインGbと比較する。報酬出力部1121は、測定した入出力ゲインGsが規範モデルの入出力ゲインGbよりも大きい場合には、負の報酬を与える。一方、報酬出力部1121は、測定した入出力ゲインGsが規範モデルの入出力ゲインGb以下である場合には、位相遅れが小さくなるときは正の報酬を与え、位相遅れが大きくなるときは負の報酬を与え、位相遅れが変わらないときはゼロの報酬を与える。
まず、報酬出力部1121が、測定した入出力ゲインGsが規範モデルの入出力ゲインGbよりも大きい場合に、負の報酬を与える動作について図6及び図7を用いて説明する。
報酬出力部1121は、入出力ゲインの規範モデルを保存している。規範モデルは、共振のない理想的な特性を有するサーボ制御装置のモデルである。規範モデルは、例えば、図6に示すモデルのイナーシャJa、トルク定数K、比例ゲインK、積分ゲインK、微分ゲインKから計算で求めることができる。イナーシャJaはモータイナーシャと機械イナーシャとの加算値である。
図7は、規範モデルのサーボ制御装置と、学習前及び学習後のサーボ制御装置310との入出力ゲインの周波数特性を示す特性図である。図7の特性図に示すように、規範モデルは、一定の入出力ゲイン以上、例えば、−20dB以上での理想的な入出力ゲインとなる周波数領域である領域Aと、一定の入出力ゲイン未満となる周波数領域である領域Bとを備えている。図7の領域Aにおいて、規範モデルの理想的な入出力ゲインを曲線MC(太線)で示す。図7の領域Bにおいて、規範モデルの理想的な仮想入出力ゲインを曲線MC11(破線の太線)で示し、規範モデルの入出力ゲインを一定値として直線MC12(太線)で示す。図7の領域A及びBにおいて、学習前及び学習後のサーボ制御部との入出力ゲインの曲線をそれぞれ曲線RC、RC2で示す。
報酬出力部1121は、領域Aでは、測定した入出力ゲインの学習前の曲線RCが規範モデルの理想的な入出力ゲインの曲線MCを超えた場合は第1の負の報酬を与える。
入出力ゲインが十分小さくなる周波数を超える領域Bでは、学習前の入出力ゲインの曲線RCが規範モデルの理想的な仮想入出力ゲインの曲線MC11を超えたとしても安定性への影響が小さくなる。そのため領域Bでは、上述したように、規範モデルの入出力ゲインは理想的なゲイン特性の曲線MC11ではなく、一定値の入出力ゲイン(例えば、−20dB)の直線MC12を用いる。しかし、学習前の測定した入出力ゲインの曲線RCが一定値の入出力ゲインの直線MC12を超えた場合には不安定になる可能性があるため、報酬として第1の負の値を与える。
次に、報酬出力部1121が、測定した入出力ゲインGsが規範モデルの入出力ゲインGb以下である場合に、位相遅れの情報に基づいて報酬を決める動作について説明する。
以下の説明において、状態情報Sに係る状態変数である位相遅れをD(S)、行動情報A(フィルタ313の伝達関数の各係数a,a,bの修正)により状態Sから変化した状態S´に係る状態変数である位相遅れをD(S´)で示す。
報酬出力部1121が、位相遅れの情報に基づいて報酬を決める方法は、例えば、以下方法がある。なお、位相遅れの情報に基づいて報酬を決める方法は以下に説明する方法に特に限定されるものではない。
状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなるか、小さくなるか、又は同じになるかで報酬を決める。ここでは、位相遅れが180度の場合を取り上げたが、特に180度に限定されず他の値であってもよい。
例えば、位相遅れが図4に示した位相線図で示されたときに、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が小さくなるように(図4のX方向に)曲線が変わると、位相遅れは大きくなる。一方、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなるように(図4のX方向に)曲線が変わると、位相遅れが小さくなる。
よって、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が小さくなったとき、位相遅れD(S)<位相遅れD(S´)と定義して、報酬出力部1121は、報酬の値を第2の負の値とする。なお第2の負の値の絶対値は第1の負の値よりも小さくする。
一方で、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が大きくなったとき、位相遅れD(S)>位相遅れD(S´)と定義して、報酬出力部1121は、報酬の値を正の値とする。
また、状態Sから状態S´となった場合に、位相遅れが180度となる周波数が変わらないとき、位相遅れD(S)=位相遅れD(S´)と定義して、報酬出力部1121は、報酬の値をゼロの値とする。
なお、行動Aを実行後の状態S´の位相遅れD(S´)が、前の状態Sにおける位相遅れD(S)より大きくなったと定義した場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。例えば、上述した方法において、周波数が小さくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S´の位相遅れD(S´)が、前の状態Sにおける位相遅れD(S)より小さくなったと定義した場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。例えば、上述した第1の方法において、周波数が大きくなった度合いに応じて正の値が大きくなるようにするとよい。
価値関数更新部1122は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部114が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移する都度、即座に価値関数Qの更新を行う学習方法である。また、バッチ学習は、或る行動Aを現在の状態Sに適用することにより、状態Sが新たな状態S´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行う学習方法である。
行動情報生成部1123は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部1123は、Q学習の過程において、フィルタ313の伝達関数の各係数a,a,bを修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部113に対して出力する。
より具体的には、行動情報生成部1123は、例えば、状態Sに含まれるフィルタ313の伝達関数の各係数a,a,bに対して行動Aに含まれる、フィルタ313の伝達関数の各係数a,a,bをインクレメンタルに加算又は減算させる。
そして、行動情報生成部1123は、フィルタ313の伝達関数の各係数a,a,bの増加又は減少を適用して、状態S´に遷移して、プラスの報酬(正の値の報酬)が返った場合、次の行動A´としては、フィルタ313の伝達関数の各係数a,a,bに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、測定した位相遅れが前回の位相遅れよりも小さくなるように行動A´を選択する方策を取るようにしてもよい。
また、逆に、マイナスの報酬(負の値の報酬)が返った場合、行動情報生成部1123は、次の行動A´としては、例えば、フィルタ313の伝達関数の各係数a,a,bに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、測定した入出力ゲインが規範モデルの入出力ゲインよりも大きい場合には前回よりも入力ゲインの差がより小さくなるように、又は測定した位相遅れが前回の位相遅れよりも小さくなるように行動A´を選択する方策を取るようにしてもよい。
また、行動情報生成部1123は、現在の推定される行動Aの価値の中で、最も価値Q(S,A)の高い行動A´を選択するグリーディ法や、ある小さな確率εでランダムに行動A´選択し、それ以外では最も価値Q(S,A)の高い行動A´を選択するεグリーディ法といった公知の方法により、行動A´を選択する方策を取るようにしてもよい。
行動情報出力部113は、学習部112から出力される行動情報Aをフィルタ313に対して送信する部分である。フィルタ313は上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されている各係数a,a,bを微修正することで、次の状態S´(すなわち修正された、フィルタ313の各係数)に遷移する。
価値関数記憶部114は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部114に記憶された価値関数Qは、価値関数更新部1122により更新される。また、価値関数記憶部114に記憶された価値関数Qは、他の機械学習装置110との間で共有されるようにしてもよい。価値関数Qを複数の機械学習装置110で共有するようにすれば、各機械学習装置110にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部115は、価値関数更新部1122がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作をフィルタ313に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部115は、価値関数記憶部114が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部1122がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部115は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報をフィルタ313に対して出力する。この最適化行動情報には、行動情報出力部113がQ学習の過程において出力する行動情報と同様に、フィルタ313の伝達関数の各係数a,a,bを修正する情報が含まれる。
フィルタ313では、この行動情報に基づいて伝達関数の各係数a,a,bが修正される。
機械学習装置110は、以上の動作で、フィルタ313の伝達関数の各係数a,a,bの最適化を行い、機械端の振動を抑制するように動作することができる。
以上のように、本実施例に係る機械学習装置110を利用することで、フィルタ313のパラメータ調整を簡易化することができる。
また、上述した実施形態では、サーボモータ410により駆動される機械に1つの共振点がある場合について説明したが、機械に複数の共振点がある場合もある。機械に複数の共振点がある場合には、各共振点に対応するようにフィルタを複数個設けて、直列に接続することで、すべての共振を減衰させることができる。機械学習装置は、複数のフィルタのそれぞれの係数a,a,bについて、順次、共振点を減衰させる最適値を機械学習により求めていく。
次に、出力装置210について説明する。
図8は、本発明の第1実施例の制御装置に含まれる出力装置の一構成例を示すブロック図である。図8に示すように、出力装置210は、情報取得部211、情報出力部212、作図部213、操作部214、制御部215、記憶部216、情報取得部217、情報出力部218、表示部219、及び演算部220を有する。
情報取得部211は、機械学習装置110から学習パラメータを取得する情報取得部となる。制御部215及び表示部219は、学習パラメータの物理量を出力する出力部となる。出力部の表示部219は液晶表示装置、プリンター等を用いることができる。出力は記憶部216に記憶することも含まれ、その場合、出力部は制御部215及び記憶部216となる。
出力装置210は、機械学習装置110の機械学習中又は機械学習後の制御パラメータ(学習パラメータ)の物理量及びこの物理量を用いて求められた周波数応答、例えば、フィルタの伝達関数G(s)の、中心周波数(減衰中心周波数ともいう)、帯域幅、及び減衰係数、並びにフィルタの周波数応答を図で示す出力機能を備えている。
また、出力装置210は、サーボ制御装置310と機械学習装置との間の情報(例えば、入出力ゲインと位相遅れ)、機械学習装置1100とサーボ制御装置310との間の情報(例えば、フィルタ313の係数の修正情報)の中継、サーボ制御装置310に対する制御(例えば、フィルタ313の微調整)、機械学習装置100の動作の制御(例えば、機械学習装置に対する学習プログラム起動指示)を行う調整機能を備えている。これらの情報の中継及び動作の制御は情報取得部211,217及び情報出力部212,218を介して行われる。
まず出力装置210が、機械学習中の制御パラメータの物理量を出力する場合について図9A及び図9Bを用いて説明する。
図9Aは、機械学習中の評価関数値及び評価関数値の最小値の推移を示す特性図及び学習中の制御パラメータの値を表示する場合の表示画面の一例を示す図である。図9Bは機械学習中に、機械学習の進捗状況に合わせて、状態Sに係る制御パラメータの物理量を、表示部219に表示する場合の表示画面の一例を示す図である。
図9Aの示すように、機械学習中の評価関数値及び評価関数値の最小値及び数式1の伝達関数の係数a,a,a,b,b,bを表示部219の表示画面に表示しても、ユーザは評価関数及び制御パラメータの物理的意味が分からず、サーボ制御装置の特性の学習経過及び結果を理解するのは難しい。そこで、本実施例では以下に説明するように、制御パラメータを操作者等のユーザが分かりやすい情報に変えて出力する。第2実施例から第4実施例でも同様に、制御パラメータを操作者等のユーザが分かりやすい情報に変えて出力する。図9Aに示した表示画面の、例えば、「変換」のボタンを押下することで、図9Bに示す表示画面を表示することでユーザが分かりやすい情報を出力するようにしてもよい。
図9Bに示すように、表示部219の表示画面Pは例えば調整フローの欄P1に、軸選択、パラメータ確認、プログラム確認・編集、プログラム起動、機械学習中、終了判定の選択項目を表示する。
また、表示画面Pは、例えばフィルタ等の調整対象、データ採取中等のステータス(状態)、予め設定された当該機械学習終了までの試行回数(以下「最大試行回数」ともいう)に対する現在までの試行回数の累計を示す試行回数、及び学習の中断を選択するボタンを示す欄P2を表示する。
また、表示画面Pは、フィルタの伝達関数G(s)、フィルタの伝達関数G(s)の中心周波数fc、帯域幅fw、及び減衰係数Rの表、並びに現在のフィルタの周波数応答特性及び学習中で最も優れたフィルタの周波数応答特性を示す図を含む欄P3を表示する。さらに、中心周波数(減衰中心周波数)fcの学習ステップに対する推移を示す図を含む欄P4を表示する。なお、表示画面Pに表示する情報は一例であって、これらの情報の一部、例えば、フィルタの周波数応答特性及び学習中で最も優れたフィルタの周波数応答特性を示す図のみを表示してもよく、また、その他の情報を追加してもよい。
操作者等のユーザが、液晶表示装置等の表示部219の図9Bに示す表示画面の「調整フロー」の欄P1の「機械学習」をマウス、キーボード等の操作部214で選択すると、制御部215は、情報出力部212を介して機械学習装置110に対して、試行回数で関連付けられる状態Sに係る係数a,a,b、当該機械学習の調整対象(学習対象)に関する情報、試行回数、最大試行回数を含む情報等の出力指示を送る。
情報取得部211が、機械学習装置110から、試行回数で関連付けられる状態Sに係る係数a,a,b、当該機械学習の調整対象(学習対象)に関する情報、試行回数、最大試行回数を含む情報等を受信すると、制御部215は、記憶部216に受信した情報を記憶するとともに、演算部220に制御を移す。
演算部220は、機械学習装置110の機械学習中での制御パラメータ、具体的には強化学習時又は強化学習後の制御パラメータ(例えば上述した状態Sに係る係数a,a,b)からフィルタ313の特性(中心周波数fc、帯域幅fw、減衰係数R)及びフィルタ313の周波数応答を求める。中心周波数fc、帯域幅fw、減衰係数Rは係数a,a,b)から求めた第2の物理量となる。
係数a,a,bから中心周波数fc、帯域幅fw、減衰係数(ダンピング)Rを求めるには、数式3から中心角周波数ωn、比帯域ζ、減衰係数Rを求め、さらにωn=2πfc、ζ=fw/fcから、中心周波数fc、帯域幅fwを求める。
Figure 0006860540
その結果、中心周波数fc、帯域幅fw、減衰係数Rは数式4で求めることができる。
Figure 0006860540
なお、中心周波数fc、帯域幅fw、減衰係数Rは、数式3の右式の伝達関数をフィルタ313の伝達関数とし、中心角周波数ωn、比帯域ζ、減衰係数Rのパラメータを機械学習装置110で機械学習し、求めた中心角周波数ωn、比帯域ζ、減衰係数Rからωn=2πfc、ζ=fw/fcを用いて算出してもよい。この場合、中心周波数fc、帯域幅fw、減衰係数Rは第1の物理量となる。この第1の物理量を後述する第2の物理量に変えて表示してもよい。
演算部220が中心周波数fc、帯域幅fw、減衰係数Rを算出し、数式3の右式の、中心角周波数ωn、比帯域ζ、減衰係数Rを含む伝達関数を求めると、制御部215に制御を移す。
なお、ここではフィルタがノッチフィルタである場合について説明しているが、フィルタが数式1で示すような、一般式の形をとる場合でも、フィルタはゲインの谷を持つため、中心周波数fc、帯域幅fw、減衰係数Rを求めることができる。また、一般にどのように高い次数のフィルタでも同様に、一つ以上の減衰する中心周波数fc、帯域幅fw、減衰係数Rを求めることができる。
制御部215は、中心周波数fc、帯域幅fw、減衰係数Rの物理量、及び中心角周波数ωn、比帯域ζ、減衰係数Rを含む伝達関数を記憶部216に記憶し、作図部213に処理を移す。
作図部213は、試行回数と関連づけられた状態Sに係る、係数a,a,bを含む伝達関数、若しくは中心角周波数ωn、比帯域ζ、減衰係数R(第1の物理量となる)を含む伝達関数又は係数a,a,bから求められた中心角周波数ωn、比帯域ζ、減衰係数R(第2の物理量となる)を含む伝達関数からフィルタ313の周波数応答を求めて、周波数−ゲイン特性図を作成し、その周波数−ゲイン特性図に学習中で最も優れたフィルタの周波数応答特性を加える処理を行い、最も優れたフィルタの周波数応答特性を加えた周波数−ゲイン特性図の画像情報を作成し、さらに、中心周波数(減衰中心周波数)fcの学習ステップに対する推移を示す図を作成し、その図の画像情報を作成し、制御部215に制御を移す。フィルタ313の周波数応答は、数式3の右式の伝達関数から求めることができる。伝達関数から周波数応答を解析できるソフトウェアは公知であって、例えば、
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
等を用いることができる。
制御部215は、周波数−ゲイン特性図(周波数応答特性となる)、中心周波数fcと帯域幅fwと減衰係数(ダンピング)Rと(第2の物理量となる)からなる表、フィルタの伝達関数G(s)、中心周波数(減衰中心周波数)fcの学習ステップに対する推移を示す図を図9Bに示すように表示する。なお、ここでは第2の物理量となる中心周波数fcと帯域幅fwと減衰係数(ダンピング)R、及び周波数応答特性となる周波数−ゲイン特性図の両方を示しているが、いずれか一方を表示してもよい。周波数応答特性となる周波数−ゲイン特性図に変えて又は周波数応答特性となる周波数−ゲイン特性図とともに時間応答特性となる時間−ゲイン特性図を表示してもよい。この点は後述する第2実施例〜第4実施例においても同様である。
また制御部215は、例えばノッチフィルタが調整対象であることを示す情報に基づいて、図9Bに示す表示画面Pの欄P2の調整対象項目にノッチフィルタと表示し、試行回数が最大試行回数に達していない場合は表示画面のステータス項目にデータ採取中と表示する。さらに制御部215は、表示画面の試行回数項目に、最大試行回数に対する試行回数の比を表示する。
なお、図9Bに記載の表示画面は、一例であって、これに限られない。上記に例示した項目以外の情報を表示してもよい。また、上記に例示したいくつかの項目の情報表示を省略してもよい。
また、上記説明においては、制御部215は、機械学習装置110から受信した情報を、記憶部216に記憶するとともにリアルタイムに、試行回数で関連付けられる状態Sに係るフィルタ313の周波数応答に関する情報等を表示部219に表示するものとしたが、これに限られない。
例えば、リアルタイムで表示しない実施例としては以下の例がある。
変形例1:操作者(オペレータ)が表示指示をしたときに、図9Bに記載の情報を表示する。
変形例2:(学習開始時からの)試行回数の累計が、予め設定した所定の回数に達したときに、図9Bに記載の情報を表示する。
変形例3:機械学習の中断時又は終了時に図9Bに記載の情報を表示する。
以上の変形例1〜3においても、上述したリアルタイムでの表示の動作と同様に、情報取得部211が、機械学習装置110から、試行回数で関連付けられる状態Sに係る係数a,a,b、当該機械学習の調整対象(学習対象)に関する情報、試行回数、最大試行回数を含む情報等を受信すると、制御部215は、記憶部216に受信した情報を記憶する。その後は、変形例1では操作者(オペレータ)が表示指示をしたとき、変形例2では、試行回数の累計が、予め設定した所定の回数に達したとき、変形例3では、機械学習の中断時又は終了時に、制御部215は演算部220、作図部213に制御を移す動作を行う。
次に、出力装置210の上記出力機能と調整機能とについて説明する。
図10は、機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。
ステップS31において、出力装置210は、操作者が図9Bに示す、表示部219の表示画面の「調整フロー」の欄P1の「プログラム起動」をマウス、キーボード等の操作部214で選択すると、制御部215は、学習プログラム起動指示を、情報出力部212を介して機械学習装置110に出力する。そして、サーボ制御装置310に対して、学習プログラム起動指示を機械学習装置110に出力したことを通知する学習プログラム起動指示通知を出力する。
ステップS32において、出力装置210は、サーボ制御装置310に正弦波を出力する上位装置に正弦波出力指示を行う。ステップS32はステップ31の前、ステップ31と同時に行われてもよい。上位装置は正弦波出力指示を受けると、周波数を変化させた正弦波信号をサーボ制御装置310に出力する。
ステップS21において、機械学習装置110は、学習プログラム起動指示を受けると、機械学習を開始する。
ステップS11において、サーボ制御装置310は、サーボモータ410を制御して、パラメータ情報、入力ゲインと位相遅れ、及びフィルタ313の伝達関数の係数a,a,b(パラメータ情報となる)を含む情報を出力装置210に出力する。そして、出力装置210は、パラメータ情報、入力ゲイン及び位相遅れを機械学習装置110へ出力する。
機械学習装置110は、ステップS21で行われる機械学習動作中に報酬出力部2021で用いられる試行回数と関連づけられた状態Sに係るフィルタ313の伝達関数の係数a,a,b、最大試行回数、試行回数及びフィルタ313の伝達関数の係数a,a,bの修正情報(パラメータ修正情報となる)を含む情報を出力装置210に出力する。
ステップS33で、出力装置210は、上述した出力機能により、図9Bに示す表示画面の「調整フロー」の欄P1の「機械学習」が選択されると、機械学習装置110における機械学習中のフィルタ313の伝達関数の係数の修正情報を操作者等のユーザが分かりやすい物理量(中心周波数fc、帯域幅fw、減衰係数R)、中心周波数(減衰中心周波数)fcの学習ステップに対する推移を示す図及び周波数応答特性図に変えて表示部219に出力する。出力装置210は、ステップS33で、又はステップS33の後若しくは前に、サーボ制御装置310にフィルタ313の伝達関数の係数の修正情報を送る。ステップS11、ステップS21、ステップS33は機械学習の終了まで繰り返し行われる。
ここでは、機械学習中の制御パラメータに係るフィルタ313の伝達関数の係数の物理量(中心周波数fc、帯域幅fw、減衰係数R)及び周波数応答特性図に係る情報をリアルタイムで表示部219に出力する場合について説明しているが、既に、リアルタイムで表示しない場合の例として説明した変形例1〜変形例3のような場合に、フィルタ313の伝達関数の係数の物理量及び周波数応答特性図に係る情報をリアルタイムで表示部219に出力するようにしてもよい。
ステップS34において、出力装置210は試行回数が最大試行回数に達したかどうかを判断し、最大試行回数が達したときは、出力装置210はステップS35において、機械学習装置210に終了指示を送る。最大試行回数が達していない場合は、ステップS33に戻る。
ステップS35において、機械学習装置210は終了指示を受けると機械学習を終了する。
以上、第1実施形態の出力装置及び制御装置の第1実施例について説明したが、次に第2実施例について説明する。
<第2実施例>
本実施例は、機械学習装置110がサーボ制御装置320に含まれる速度フィードフォワード処理部の係数を学習し、出力装置210が速度フィードフォワード処理部の周波数応答と位置偏差の推移を表示部に表示する例である。
図11は、本発明の第2実施例の制御装置の全体構成及びサーボ制御装置の構成を示すブロック図である。本実施例の制御装置は図1に示した制御装置と比べて、サーボ制御装置の構成及び機械学習装置、出力装置の動作が異なる。本実施例の機械学習装置、出力装置の構成は、図5及び図8を用いて説明した、第1実施例の機械学習装置、出力装置の構成と同じである。
図11に示すように、サーボ制御装置320は、構成要素として、減算器321、位置制御部322、加算器323、減算器324、速度制御部325、加算器326、積分器327、速度フィードフォワード処理部328、及び位置フィードフォワード処理部329を備えている。加算器326は不図示の電流制御部を介してサーボモータ410に接続されている。速度フィードフォワード処理部328は2回微分器3281とIIRフィルタ3282とを備えている。なお、ここでは、位置フィードフォワード処理部329はIIRフィルタを備えていないが、IIRフィルタを設けて速度フィードフォワード処理部328と同様に、IIRフィルタの係数を学習して、後述するように、出力装置210を用いてIIRフィルタの周波数応答と、位置偏差の時間応答及び周波数応答等の情報を出力してよい。すなわち、出力装置210を用いて、速度フィードフォワード処理部328及び位置フィードフォワード処理部329のいずれか一方又は両方のIIRフィルタの周波数応答と、位置偏差の時間応答及び周波数応答等の情報を出力してよい。
位置指令は、減算器321、速度フィードフォワード処理部328、位置フィードフォワード処理部329、及び出力装置210に出力する。
減算器321は位置指令値と位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部322及び出力装置210に出力する。
位置指令は、サーボモータ410を動作させるプログラムに基づいて、上位装置によって作成される。サーボモータ410は、例えば工作機械に含まれる。工作機械において、被加工物(ワーク)を搭載するテーブルがX軸方向及びY軸方向に移動される場合には、X軸方向及びY軸方向に対してそれぞれ図11に示すサーボ制御装置320及びサーボモータ410が設けられる。テーブルを3軸以上の方向に移動させる場合には、それぞれの軸方向に対してサーボ制御装置320及びサーボモータ410が設けられる。
位置指令は、加工プログラムにより指定される加工形状となるように、送り速度が設定される。
位置制御部322は、位置偏差にポジションゲインKpを乗じた値を、速度指令値として加算器323に出力する。
加算器323は、速度指令値と位置フィードフォワード処理部329の出力値(位置フィードフォワード項)とを加算して、フィードフォワード制御された速度指令値として減算器324に出力する。減算器324は加算器323の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部325に出力する。
速度制御部325は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令値として加算器326に出力する。
加算器326は、トルク指令値と速度フィードフォワード処理部328の出力値(速度フィードフォワード項)とを加算して、フィードフォワード制御されたトルク指令値として不図示の電流制御部を介してサーボモータ410に出力してサーボモータ410を駆動する。
サーボモータ410の回転角度位置は、サーボモータ410に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、速度検出値は速度フィードバックとして減算器324に入力される。速度検出値は積分器327で積分されて位置検出値となり、位置検出値は位置フィードバックとして減算器102に入力される。
速度フィードフォワード処理部328の2回微分器3281は、位置指令値を2回微分して定数βを掛け、IIRフィルタ3282は2回微分器3281の出力に、数式5(以下に数1として示す)で示された伝達関数VFF(z)で示されるIIRフィルタ処理を行い、その処理結果を速度フィードフォワード項として、加算器326に出力する。数式5の係数c、c、d〜dはIIRフィルタ3282の伝達関数の各係数である。なお、ここでは、伝達関数VFF(z)の分母及び分子は、ともに2次関数となっているが特に2次関数に限定されず、3次関数以上であってもよい。
Figure 0006860540
位置フィードフォワード処理部329は、位置指令値を微分して定数αを掛け、その処理結果を位置フィードフォワード項として、加算器323に出力する。
以上のように、サーボ制御装置320は構成される。
機械学習装置110は、予め設定された加工プログラム(以下、「学習時の加工プログラム」ともいう)を実行することで、速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数の係数を学習する。
ここで、学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が一つ置きに円弧に置き換えられた形等である。なお、学習時の加工プログラムにより指定される加工形状はこれらの加工形状に限定されず、他の加工形状であってもよい。
図12は、加工形状が八角形の場合のモータの動作を説明するための図である。図13は、加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。図12及び図13において、被加工物(ワーク)が時計まわりに加工されるようにテーブルがX軸及びY軸方向に移動するものとする。
加工形状が八角形の場合は、図12に示すように、角の位置A1で、テーブルをY軸方向に移動するモータは回転速度が遅くなり、テーブルをX軸方向に移動するモータは回転速度が速くなる。 角の位置A2で、テーブルをY軸方向に移動するモータは、回転方向が反転し、テーブルをX軸方向に移動するモータは、位置A1から位置A2及び位置A2から位置A3にかけて、同じ回転方向で、等速度で回転する。
角の位置A3で、テーブルをY軸方向に移動するモータは回転速度が速くなり、テーブルをX軸方向に移動するモータは回転速度が遅くなる。
角の位置A4で、テーブルをX軸方向に移動するモータは、回転方向が反転し、テーブルをY軸方向に移動するモータは、位置A3から位置A4及び位置A4から次の角の位置にかけて、同じ回転方向で、等速度で回転する。
加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合は、図13に示すように、角の位置B1で、テーブルをY軸方向に移動するモータは回転速度が遅くなり、テーブルをX軸方向に移動するモータは回転速度が速くなる。
円弧の位置B2で、テーブルをY軸方向に移動するモータは、回転方向が反転し、テーブルをX軸方向に移動するモータは位置B1から位置B3にかけて同じ回転方向で、等速度で回転する。図12に示した加工形状が八角形の場合と異なり、テーブルをY軸方向に移動するモータは位置B2の前後で円弧の加工形状が形成されるように、位置B2に向かって徐々に減速され、位置B2で回転が停止され、位置B2を過ぎると回転方向が徐々に増加していく。
角の位置B3で、テーブルをY軸方向に移動するモータは回転速度が速くなり、テーブルをX軸方向に移動するモータは回転速度が遅くなる。
円弧の位置B4で、テーブルをX軸方向に移動するモータは、回転方向が反転し、テーブルはX軸方向に直線反転するように移動する。また、テーブルをY軸方向に移動するモータは位置B3から位置B4、及び位置B4から次の角の位置にかけて同じ回転方向で、等速度で回転する。テーブルをX軸方向に移動するモータは位置B4の前後で円弧の加工形状が形成されるように、位置B4に向かって徐々に減速され、位置B4で回転が停止され、位置B4を過ぎると回転方向が徐々に増加していく。
本実施形態では、以上説明した、学習時の加工プログラムにより指定される加工形状の位置A1と位置A3、及び位置B1と位置B3により、線形制御において回転速度が変更されたときの振動を評価し、位置偏差に対する影響を調べることで、速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数の係数の最適化に係る機械学習を行うものとする。なお、IIRフィルタの伝達関数の係数の最適化に係る機械学習は、速度フィードフォワード処理部に特に限定されるものでなく、例えば、IIRフィルタを有する位置フィードフォワード処理部、又はサーボ制御装置の電流フィードフォワードを行う場合に設けられる、IIRフィルタを有する電流フィードフォワード処理部にも適用可能である。
以下、機械学習装置110について更に詳細に説明する。
本実施形態の機械学習装置110は、機械学習の一例として、速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数の係数の最適化に係る強化学習を行うものとして説明する。なお、本発明における機械学習は強化学習に限定されず、他の機械学習(例えば教師あり学習)を行う場合にも適用できる。
機械学習装置110は、速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜b、並びに機械学習時の加工プログラムを実行することで取得されるサーボ制御装置320の位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Sとして、当該状態Sに係る、IIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜bの調整を行動Aとして選択する価値Qを機械学習(以下、学習という)する。
具体的には、本発明の実施形態に係る機械学習装置110は、伝達関数VFF(z)の零点及び極を極座標で表した半径rと角度θとをそれぞれ所定の範囲内を探索して学習することで、IIRフィルタ3282の伝達関数VFF(z)の係数を設定する。なお、極は伝達関数VFF(z)が無限大になるzの値、零点は、伝達関数VFF(z)が0になるzの値である。
このため、伝達関数VFF(z)の分子における係数を次のように変形する。
+b−1+b−2=b(1+(b/b)z−1+(b/b)z−2
以下、特に断らない限り(b/b)及び(b/b)をそれぞれb´及びb´で表して説明する。
そして、機械学習装置110は、位置偏差が最小になるような半径rと角度θを学習して、伝達関数VFF(z)の係数a、a、b´及びb´を設定する。
係数bは例えば半径r及び角度θをそれぞれ最適な値r及びθに設定した後、機械学習して求めてもよい。係数bは角度θと同時に学習してもよい。また、半径rと同時に学習するようにしてもよい。
機械学習装置110は、IIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜bの値に基づいて、学習時の加工プログラムを実行することで前述した加工形状の位置A1と位置A3、及び位置B1と位置B3における、サーボ制御装置320の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Sを観測して、行動Aを決定する。機械学習装置110は、行動Aをするたびに報酬が返ってくる。機械学習装置110は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習装置110は、IIRフィルタ3282の伝達関数VFF(z)の零点、極の値に基づいて算出される係数の値に基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置320の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Sに対して、最適な行動A(すなわち、IIRフィルタ3282の伝達関数VFF(z)の最適な零点及び極の値)を選択することが可能となる。位置A1と位置A3、及び位置B1と位置B3とでは、X軸方向及びY軸方向のサーボモータの回転方向は変わらず、機械学習装置110は線形動作時のIIRフィルタ3282の伝達関数VFF(z)の零点及び極の値の学習を行うことができる。
すなわち、機械学習装置110により学習された価値関数Qに基づいて、或る状態Sに係るIIRフィルタ3282の伝達関数VFF(z)に対して適用される行動Aのうち、Qの値が最大となるような行動Aを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動A(すなわち、IIRフィルタ3282の伝達関数VFF(z)の零点及び極の値)を選択することが可能となる。
位置偏差が最小になるような、IIRフィルタ3282の伝達関数VFF(z)の零点及び極を極座標で表した半径rと角度θを学習して、伝達関数VFF(z)の係数a、a、b´、b´を求める方法、及び係数bを求める方法について以下に説明する。
機械学習装置110は、IIRフィルタ3282から取得した、数式5の伝達関数VFF(z)が無限大になるzである極、伝達関数VFF(z)が0になるzである零点を設定する。
機械学習装置110は、極及び零点を求めるために、数式5の分母及び分子にzを掛けて、数式6(以下に数6として示す)を求める。
Figure 0006860540
極は数式6の分母が0となるz、即ちz+az+a=0となるzであり、零点は数式6の分子が0となるz、即ちz+b´z+b´=0となるzである。
本実施形態では極及び零点を極座標で表し、極座標で表された極と零点を探索する。
振動を抑制するためには零点が重要であり、機械学習装置110は、まず、極を固定して、分子(z+b´z+b´)において
z=reiθ及びその共役複素数z=re-iθを零点(角度θは所定の範囲内、0≦r≦1)とした場合に算出される係数b´(=−reiθ−re-iθ)及びb´(=r)を伝達関数VFF(z)の係数として設定することで、極座標で零点reiθを探索して最適な係数b´、b´の値を学習する。半径rは減衰率に依存し、角度θは振動を抑える周波数に依存している。その後、零点を最適な値に固定して、係数bの値を学習してもよい。次に、伝達関数VFF(z)の極を極座標で表し、極座標で表された極の値reiθを、前述した零点と同様の方法で探索する。そうすることで、伝達関数VFF(z)の分母の最適な係数a、aの値を学習することができる。
なお、極を固定して伝達関数VFF(z)の分子における係数を学習する場合、高周波側のゲインを抑えることができれば十分であり、例えば、極は2次のローパスフィルタ相当とする。例えば、2次のローパスフィルタの伝達関数は数式7(以下に数7として示す)で示される。ωはフィルタのピークゲイン周波数である。
Figure 0006860540
なお、極を3次のローパスフィルタとする場合には、伝達関数が、1/(1+Ts)で示される一次のローパスフィルタ(Tはフィルタの時定数である)を3個設けて構成したり、この一次のローパスフィルタと数式5の2次のローパスフィルタとを組み合わせて構成することができる。
なお、z領域における伝達関数は上記のs領域の伝達関数を双一次変換を用いて求めるものとする。
なお、伝達関数VFF(z)の極と零点とは同時に探索することができるが、極と零点とを別に探索して別に学習することで、機械学習量を低減し、学習時間を短縮することができる。
極と零点の探索範囲は図14の複素平面において、半径rを、例えば0≦r≦1の範囲とし、角度θを、速度ループの応答できる周波数範囲で規定して、斜線領域で示す所定の探索範囲に絞ることができる。周波数の範囲は、例えば、速度ループの共振で生ずる振動は110Hz程度であるため、周波数範囲の上限を110Hzとすることができる。探索範囲は工作機械等の制御対象の共振特性で決められるが、サンプリング周期を1msecとしたときに、角度θは約250Hzで90度に対応するため、周波数範囲の上限を110Hzとすると、図14の複素平面のような角度θの探索範囲となる。このように探索範囲を所定の範囲に絞ることで、機械学習量を低減し、機械学習の収束時間を短縮化することができる。
極座標で零点を探索する場合、まず、係数bを例えば1に固定し、半径rを、(0≦r≦1)の範囲内の任意の値に固定し、上記の図14で示す探索範囲において角度θを試行的に設定してz及びその共役複素数zが、(z+b´z+b´)の零点となるような係数b´(=−rejθ−re-jθ)及びb´(=r)を設定する。角度θの初期設定値は図14で示す探索範囲で設定される。
機械学習装置110は、求めた係数b´及びb´の調整情報を行動AとしてIIRフィルタ3282に送り、IIRフィルタ3282の伝達関数VFF(z)の分子の係数b´及びb´を設定する。係数bは上記のように例えば1に設定されている。機械学習装置110が角度θの探索を行う学習により価値Qの値が最大となるような、好適な角度θが決定されると、その後に、角度θをその角度θに固定して半径rを可変とし、IIRフィルタ3282の伝達関数VFF(z)の分子の係数b´(=−rejθ−re-jθ)及びb´(=r)を設定する。半径rの探索を行う学習により、価値Qの値が最大となるような、最適な半径rが決定される。角度θ及び半径rにより係数b´及びb´が設定され、その後、bについて学習することで、伝達関数VFF(z)の分子の係数b、b´及びb´が決定される。
極座標で極を探索する場合についても、伝達関数VFF(z)の分子と同様に学習することができる。まず、半径rを(例えば、0≦r≦1)の範囲の値に固定し、零点の探索と同様に、上記の探索範囲において角度θを探索して、学習によりIIRフィルタ3282の伝達関数VFF(z)の極の好適な角度θが決定されると、その後に、角度θをその角度に固定して半径rを探索して学習することにより、IIRフィルタ3282の伝達関数VFF(z)の極の好適な角度θ及び好適な半径rが決定される。そうすることで、極の好適な角度θ及び好適な半径rに対応する最適な係数a、aが決定される。なお、既に述べたように、半径rは減衰率に依存し、角度θは振動を抑える周波数に依存しており、振動を抑制するためには角度θを半径よりも先に学習することが望ましい。
以上のようにして、位置偏差が最小になるように、IIRフィルタ3282の伝達関数VFF(z)の零点及び極を極座標で表した半径rと角度θとをそれぞれ所定の範囲内を探索して学習することで、伝達関数VFF(z)の係数a、a、b、b´及びb´の最適化を、係数a、a、b、b´及びb´を直接学習するよりも、効率よく行うことができる。
なお、IIRフィルタ3282の伝達関数VFF(z)の係数bの学習に際しては、例えば、係数bの初期値を1にして、その後行動Aに含まれる、伝達関数VFF(z)の係数bをインクレメンタルに加算又は減算させる。係数bの初期値は1に限られない。係数bの初期値は任意の値に設定することができる。機械学習装置110は、行動Aをするたびに位置偏差に基づいて報酬を与え、将来にわたっての報酬の合計が最大になるように最適な行動Aを試行錯誤的に探索する強化学習により価値Qの値が最大となるような好適な値に伝達関数VFF(z)の係数bを調整する。係数bの学習は、ここでは半径rの学習後としているが、角度θと同時学習でもよいし、半径rと同時学習でもよい。
なお、半径rと角度θと係数bは同時に学習してもよいが、別々に学習することで、機械学習量を低減し、機械学習の収束時間を短縮化することができる。
図11の機械学習装置110の構成は図5に示した構成と同じなので、以下、図5を参照して説明する。
状態情報取得部111は、サーボ制御装置320における速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜bの値に基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置320の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Sを、サーボ制御装置320から取得する。この状態情報Sは、Q学習における、環境状態Sに相当する。
状態情報取得部111は、取得した状態情報Sを学習部112に対して出力する。また、状態情報取得部111は、零点及び極を極座標で表した角度θ、半径rと、これに対応する係数a、a、b´、b´と、を行動情報生成部1123から取得して記憶しており、サーボ制御装置320から取得した係数a、a、b´、b´に対応する零点及び極を極座標で表した角度θ、半径rも合わせて学習部112に対して出力する。
なお、最初にQ学習を開始する時点でのIIRフィルタ3282の伝達関数VFF(z)の初期設定は、予めユーザが設定するようにする。本実施形態では、その後、ユーザが初期設定したIIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜bを、前述したとおり、零点及び極を極座標で表した半径r及び角度θをそれぞれ所定の範囲内を探索する強化学習により最適なものに調整する。速度フィードフォワード処理部328の2回微分器3281の係数αは固定値とし、例えばα=1とする。また、IIRフィルタ3282の伝達関数VFF(z)の分母の初期設定については、数5で示したもの(を双一次変換のより変換されたz領域の伝達関数)とする。また、伝達関数VFF(z)の分子の係数b〜bの初期設定については、例えばb=1、rを0≦r≦1の範囲内の値、θを前述した所定の探索範囲内の値とすることができる。
また、係数a、a、b〜b及び係数c、c、d〜dは予め操作者が工作機械を調整している場合には、調整済の伝達関数の零点及び極を極座標で表した半径rと角度θの値を初期値として機械学習してもよい。
学習部112は、或る環境状態Sの下で、ある行動Aを選択する場合の価値Q(S,A)を学習する部分である。なお行動Aは、例えば、係数bを1として固定し、IIRフィルタ3282の伝達関数VFF(z)の分子の係数b´、b´の修正情報を、伝達関数VFF(z)の零点を極座標で表した半径rと角度θの修正情報に基づいて算出する。以下の説明では、係数bが例えば1として初期設定され、行動情報Aが係数b´、b´の修正情報である場合を例として説明する。
報酬出力部1121は、或る状態Sの下で、行動Aを選択した場合の報酬を算出する部分である。ここで、状態Sにおける状態変数である位置偏差の集合(位置偏差集合)をPD(S)、行動情報Aにより状態Sから変化した状態情報S´に係る状態変数である位置偏差集合をPD(S´)で示す。また、状態Sにおける位置偏差の値を、予め設定された評価関数f(PD(S))に基づいて算出される値とする。
評価関数fとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数
∫e2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
等を適用することができる。
このとき、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S))よりも大きくなった場合に、報酬出力部1121は、報酬の値を負の値とする。
一方で、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S))よりも小さくなった場合に、報酬出力部1121は、報酬の値を正の値とする。
なお、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード処理部328に基づいて動作したサーボ制御装置320の位置偏差の値f(PD(S))と等しい場合は、報酬出力部1121は、報酬の値をゼロとする。
また、行動Aを実行後の状態S´の位置偏差の値f(PD(S´))が、前の状態Sにおける位置偏差の値f(PD(S))より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり位置偏差の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Aを実行後の状態S´の位置偏差の値f(PD(S´))が、前の状態Sにおける位置偏差の値f(PD(S))より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまり位置偏差の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
価値関数更新部1122は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部114が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
行動情報生成部1123は、現在の状態Sに対して、Q学習の過程における行動Aを選択する。行動情報生成部1123は、Q学習の過程において、サーボ制御装置320のIIRフィルタ3282の伝達関数VFF(z)の係数b´、b´を、零点を極座標で表した半径rと角度θに基づいて修正する動作(Q学習における行動Aに相当)を行わせるために、行動情報Aを生成して、生成した行動情報Aを行動情報出力部113に対して出力する。
より具体的には、行動情報生成部1123は、例えば、極座標で零点を探索するために、数式6の伝達関数VFF(z)の係数a、a、bが固定された状態で、分子(z+b´z+b´)においてzの零点をreiθとして、状態情報取得部111から受けた半径rを固定した状態で、状態情報取得部111から受けた角度θを図14の探索範囲内で増加又は減少させる。そして、固定した半径r及び増加又は減少させた角度θにより、零点とするz及びその共役複素数zを設定し、当該零点に基づいて係数b´、b´を新たに求める。
行動情報生成部1123は、角度θを増加又は減少させて、IIRフィルタ3282の伝達関数VFF(z)の係数b´、b´を新たに設定することで状態S´に遷移して、プラスの報酬(正の値の報酬)が返った場合、次の行動A´としては、角度θを前回のアクションと同様に増加又は減少等、位置偏差の値がより小さくなるような行動A´を選択する方策を取るようにしてもよい。
また、逆に、マイナスの報酬(負の値の報酬)が返った場合、行動情報生成部1123は、次の行動A´としては、例えば、角度θを、前回のアクションとは逆に減少又は増加等、位置偏差が前回の値よりも小さくなるような行動A´を選択する方策を取るようにしてもよい。
行動情報生成部1123は、角度θの探索を続けて、最適化行動情報出力部115からの後述する最適化行動情報によって、学習により価値Qの値が最大となるような好適な角度θが決定されると、その後に、角度θをその角度θに固定して半径rを0≦r≦1の範囲内で探索し、角度θの探索と同様にIIRフィルタ3282の伝達関数VFF(z)の分子の係数b´、b´を設定する。行動情報生成部1123は、半径rの探索を続けて、最適化行動情報出力部115からの後述する最適化行動情報によって、学習により、価値Qの値が最大となるような好適な半径rが決定されると、分子の最適な係数b´、b´が決定される。その後、前述したように、係数bを学習することで、伝達関数VFF(z)の分子の係数の最適値が学習される。
その後、行動情報生成部1123は、伝達関数VFF(z)の分母に係る伝達関数の係数を上記同様に極を極座標で表した半径r及び角度θに基づいて探索する。なお、その学習は、IIRフィルタ3282の伝達関数VFF(z)の分子の場合と同様に極を極座標で表した半径r及び角度θを強化学習により最適なものに調整する。その際、伝達関数VFF(z)の分子の場合と同様に角度θを学習した後に半径rを学習する。学習方法は伝達関数VFF(z)の零点の探索の場合と同様のため、詳細な説明は省略する。
行動情報出力部113は、学習部112から出力される行動情報Aをサーボ制御装置320に対して送信する部分である。サーボ制御装置320は上述したように、この行動情報に基づいて、現在の状態S、すなわち現在設定されているIIRフィルタ3282の伝達関数VFF(z)の零点を極座標で表した半径r及び角度θを微修正することで、次の状態S´(すなわち修正された零点に対応する、IIRフィルタ3282の伝達関数VFF(z)の係数b´、b´)に遷移する。
価値関数記憶部114は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態S、行動A毎にテーブル(以下、行動価値テーブルと呼ぶ)として格納してもよい。価値関数記憶部114に記憶された価値関数Qは、価値関数更新部1122により更新される。また、価値関数記憶部114に記憶された価値関数Qは、他の機械学習装置110との間で共有されるようにしてもよい。価値関数Qを複数の機械学習装置110で共有するようにすれば、各機械学習装置110にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部115は、価値関数更新部1122がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を速度フィードフォワード処理部328に行わせるための行動情報A(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部115は、価値関数記憶部114が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部1122がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部115は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報をサーボ制御装置320(速度フィードフォワード処理部328のIIRフィルタ3282)に対して出力する。この最適化行動情報には、行動情報出力部113がQ学習の過程において出力する行動情報と同様に、角度θ、半径r及び係数bの学習によって、IIRフィルタ3282の伝達関数VFF(z)の係数を修正する情報が含まれる。
サーボ制御装置320では、角度θ、半径r及び係数bに基づく、行動情報に基づいてIIRフィルタ3282の伝達関数VFF(z)の分子に係る伝達関数の係数が修正される。
機械学習装置110は、以上の動作で、IIRフィルタ3282の伝達関数VFF(z)の分子の係数の最適化を行った後に、その最適化と同様に、角度θ及び半径rの学習によって、IIRフィルタ3282の伝達関数VFF(z)の分母の係数の最適化を行う。
以上のように、本発明に係る機械学習装置110を利用することで、サーボ制御装置320の速度フィードフォワード処理部328のパラメータ調整を簡易化することができる。
本実施形態においては、報酬出力部1121は、報酬の値を、状態Sにおける位置偏差PD(S)を入力として予め設定された評価関数f(PD(S))に基づいて算出される状態Sの位置偏差の値f(PD(S))と、状態S´における位置偏差PD(S´)を入力として評価関数fに基づいて算出される状態S´の位置偏差の値f(PD(S´))とを比較することで算出した。
しかし、報酬の値の算出にあたっては位置偏差以外の他の要素を加えてもよい。
例えば、機械学習装置110に、減算器102の出力となる位置偏差の他に、加算器323の出力となる位置フォワード制御された速度指令、位置フォワード制御された速度指令と速度フィードバックとの差、及び加算器326の出力となる位置フォワード制御されたトルク指令等の少なくとも1つが加えられてもよい。
次に、出力装置210について説明するが、構成は図8に示した第1実施例の出力装置210と同じであるため、動作の相違点についてのみ説明する。本実施例の表示部219の表示画面は、第1実施例で示した図9Bの表示画面Pの欄P3の内容(フィルタの周波数応答特性図等)が、図15に示す、速度フィードフォワード処理部の周波数応答特性図及び位置偏差の特性を示す図に置き換わっている点を除いて、第1実施例で示した図9Bの表示画面と同じである。
本実施例では、出力装置210は、速度フィードフォワード処理部328のIIRフィルタ3282の伝達関数VFF(z)の係数a、a、b〜b、並びにサーボ制御装置320の位置偏差、及び位置指令を含む、指令及びフィードバック等のサーボ状態を機械学習装置110へ出力する。このとき、制御部215は、減算器321から出力される位置偏差を、時刻情報ととともに記憶部216に記憶する。
操作者が、表示部219の図9Bに示す表示画面の「調整フロー」の欄P1の「機械学習」をマウス、キーボード等の操作部214で選択すると、制御部215は、情報出力部212を介して機械学習装置110に対して、試行回数で関連付けられる状態Sに係る係数a、a、b〜b、当該機械学習の調整対象(学習対象)に関する情報、試行回数、最大試行回数を含む情報、評価関数値等の出力指示を送る。
情報取得部211が、機械学習装置110から、試行回数で関連付けられる状態Sに係る係数a、a、b〜b、当該機械学習の調整対象(学習対象)に関する情報、試行回数、最大試行回数、評価関数値を含む情報等を受信すると、制御部215は、記憶部216に受信した情報を記憶するとともに、演算部220に制御を移す。
演算部220は、機械学習装置110の機械学習中での制御パラメータ、具体的には強化学習時又は強化学習後の制御パラメータ(例えば上述した状態Sに係る、数式6の伝達関数VFF(z)の係数a、a、b〜bから速度フィードフォワード処理部328のIIRフィルタ3282の特性(中心周波数fc、帯域幅fw、減衰係数R)を求める。
伝達関数VFF(z)の零点及び極から中心周波数fc、帯域幅fw、減衰係数(ダンピング)Rを求めることができ、演算部220が中心周波数fc、帯域幅fw、減衰係数Rを算出し、中心周波数fc、帯域幅fw、減衰係数Rを含む伝達関数VFF(z)を求めると、制御部215に制御を移す。
制御部215は、中心周波数fc、帯域幅fw、減衰係数Rのパラメータ、及び中心角周波数ωn、比帯域ζ、減衰係数Rを含む伝達関数VFF(z)を記憶部216に記憶し、作図部213に処理を移す。
作図部213は、第1実施例で説明したと同様に、中心角周波数ωn、比帯域ζ、減衰係数Rを含む伝達関数からIIRフィルタ3282の周波数応答を求めて、周波数−ゲイン特性図を作成する。伝達関数からIIRフィルタ3282の周波数応答を求める方法は第1実施例と同様な方法を用いることができる。そして、作図部213は、中心周波数fc、帯域幅fw、減衰係数(ダンピング)Rのそれぞれの値を表にして、周波数−ゲイン特性図と組み合わせる。これが図15のVFF(z)に関する情報となる。作図部213は、記憶部216に記憶された位置偏差と位置指令とに基づいて位置偏差の周波数特性を求めて、周波数−位置偏差特性図を作成する。また位置偏差とその時刻情報とに基づいて、位置偏差の時間応答特性図を求める。そして、サンプリングタイム毎の位置偏差値の二乗平均平方根(RMS)、位置偏差を周波数領域で見たときの周波数ピークである誤差ピーク周波数、及び評価関数を、周波数−位置偏差特性図及び位置偏差の時間応答特性図を組み合わせる。これが図15の位置偏差に関する情報となる。サンプリングタイム毎の位置偏差値の二乗平均平方根(RMS)及び誤差ピーク周波数は演算部220で求めてもよい。
作図部213は、VFF(z)に関する情報と位置偏差に関する情報とを結合した画像情報を作成し、制御部215に制御を移す。
制御部215は、図15のVFF(z)に関する情報と位置偏差に関する情報を図9Bの欄P3に表示する。
また制御部215は、例えば速度フィードフォワード処理部が調整対象であることを示す情報に基づいて、図9Bに示すように、表示画面の調整対象項目に速度フィードフォワード処理部と表示し、試行回数が最大試行回数に達していない場合は表示画面のステータス欄にデータ採取中と表示する。さらに制御部215は、表示画面の試行回数欄に、最大試行回数に対する試行回数の比を表示する。
機械学習装置110が、係数a、a、b〜bの学習を行い評価関数値が変わらなくとも、例えば、工作機械の加工処理後の停止状態においても、停止後の振動により位置偏差の時間応答、又は周波数応答が変わる場合がある。出力装置210は学習後に、図15の表示部の表示画面を見て位置偏差の時間応答、又は周波数応答の変化を観察した操作者の指示により、速度フィードフォワード処理部の係数の調整又は機械学習装置110に対して再学習を指示する。
図16は、本発明の第2実施例の機械学習終了指示後の出力装置の動作を示すフロー図である。
本実施例における、機械学習の開始から機械学習終了指示までの、出力装置を中心とした制御装置の動作を示すフローはステップS31からS35までは、図10に示したフローと、状態情報が入力ゲイン、位相遅れ、ノッチフィルタの係数でなく、位置指令、位置偏差、速度フィードフォワード処理部の係数であること、行動情報が速度フィードフォワード処理部の係数の修正情報であることを除いて同様である。
図15の位置偏差の時間応答特性図、周波数−位置偏差特性図は停止後の振動により、位置偏差が増大した場合を示している。
図15において、操作者が「調整」のボタンを選択すると、中心周波数fc、帯域幅fw、減衰係数(ダンピング)Rの表のそれぞれの値は変更可能となる。図15の位置偏差の時間応答特性図、周波数−位置偏差特性図を見て、操作者が表の中心周波数fcを480Hzから500Hzに変える。
すると、図16のステップS36において、制御部215は、調整と判断し、ステップS37において、サーボ制御装置310にIIRフィルタ3282の修正パラメータ(係数a、a、b〜bの変更値)を含む修正指示を出力する。サーボ制御装置310は、ステップS11に戻り、変更された係数a、a、b〜bで工作機械を駆動し、位置偏差を出力装置210に出力する。
ステップS38において、出力装置210は図17に示すように、変更された中心周波数fcに基づいて、IIRフィルタ3282の周波数応答を求めて、周波数−ゲイン特性図を表示部219の表示画面に表示し、また位置偏差の時間応答特性、周波数−位置偏差特性を示す時間応答特性図、周波数−位置偏差特性図を表示部219の表示画面に表示する。
こうして、操作者はIIRフィルタ3282の周波数応答と、位置偏差の時間応答及び周波数応答を観察して、必要に応じて中心周波数fc、帯域幅fw、減衰係数(ダンピング)Rのうちの1つ又は複数を変更して、IIRフィルタ3282の周波数応答特性と、位置偏差の時間応答特性及び周波数応答特性とを微調整することができる。
一方、操作者が、図15に示す「再学習」のボタンを選択すると、図16のステップS36において、制御部215は、再学習と判断して、ステップS39において、機械学習装置110に480Hzを中心とした再学習を指示する。機械学習装置110は、ステップS21に戻り、480Hzを中心とした再学習を実行する。このとき、図14に示した探索範囲は、480Hzを中心とした範囲となるように変更、又は広い範囲から狭い範囲に選択される。
ステップS40において、出力装置210は図17に示すように、機械学習装置から送られる制御パラメータに基づいて、IIRフィルタ3282の周波数応答を求めて、周波数−ゲイン特性図を表示部219の表示画面に表示し、また位置偏差の時間応答特性、周波数−位置偏差特性を示す時間応答特性図、周波数−位置偏差特性図を表示部219の表示画面に表示する。
こうして、操作者はIIRフィルタ3282の周波数応答と、位置偏差の時間応答及び周波数応答を観察して、機械学習装置110による再学習を行い、IIRフィルタ3282の周波数応答特性と、位置偏差の時間応答特性及び周波数応答特性とを調整する再学習を行うことができる。
以上、第1実施形態の出力装置及び制御装置の第2実施例について説明したが、次に第3実施例について説明する。
<第3実施例>
本実施例は、第2実施例の制御装置の速度フィードフォワード処理部の係数をユーザが理解できるように物理的意味を持つ値、具体的には、図18の示す、数式モデルとなるモータ逆特性、ノッチフィルタ、及びローパスフィルタの係数、具体的には、慣性J、中心角周波数(ノッチ周波数)ωn、比帯域(ノッチ減衰)、減衰係数(ノッチ深さ)R、時定数τに変換して出力する。本実施例における出力装置の構成は図8に示した出力装置210の構成と同じである。第2実施例では、極座標を用いて学習を行ったが本実施例では第1実施例と同様に極座標を用いずに学習を行う。
速度フィードフォワード処理部328の伝達関数F(s)は、数式モデルとなるモータ逆特性3281A、ノッチフィルタ3282A、及びローパスフィルタ3283Aを用いて表すと、数式8で示すことができる。
Figure 0006860540
数式8から、b=J、b=2JRζω、b=0、b=0、a=τ
=(2ζωτ+2τ)、a=(ω τ+4ζωτ+1)、a=(2ζω +2ζω)、a=ω に相当する。そのとき、減衰中心周波数ωは、
Figure 0006860540
で示される。比帯域(ノッチ減衰)、減衰係数(ノッチ深さ)R、時定数τも同様にして計算される。
このようにして、出力装置210は、伝達関数F(s)の係数から、操作者等のユーザが分かりやすい物理量、例えば、比帯域(ノッチ減衰)、減衰係数(ノッチ深さ)R、時定数τを求めて、表示部219の表示画面に表示することができる。また、比帯域(ノッチ減衰)、減衰係数(ノッチ深さ)R、時定数τを含む伝達関数から周波数応答特性を求めて表示画面に表示することができる。
以上、第1実施形態の出力装置及び制御装置の第3実施例について説明したが、次に第4実施例について説明する。
<第4実施例>
第1実施例〜第3実施例では、サーボ制御装置の構成要素の伝達関数が、数1、数5及び数8で示されるように特性される場合について説明したが、サーボ制御装置の構成要素の伝達関数が例えば、数式10(nは自然数)で示されるような、一般式の伝達関数である場合にも、本実施形態は適用できる。サーボ制御装置の構成要素は、例えば、速度フィードフォワード処理部、位置フィードフォワード処理部、又は電流フィードフォワード処理部である。
例えば、位置偏差が減少するように機械学習装置110が最適な係数a、bを機械学習で求める。
Figure 0006860540
そして、求めた係数a、b又は求めた係数a、bを含む伝達関数F(s)に基づいて、ユーザが理解しやすい物理量、時間応答または周波数応答を示す情報を出力装置210で出力することができる。
周波数応答を求める場合、伝達関数から周波数応答を解析できる公知のソフトウェアを用いて、求めた係数a、bを含む伝達関数F(s)の周波数応答を求め、出力装置210は周波数応答特性を表示部219の表示画面に表示することができる。
伝達関数から周波数応答を解析できるソフトウェアとしては、例えば、第1実施例で説明した、以下のソフトウェアを用いることができる。
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
以上、本発明の第1実施形態の出力装置及び制御装置の第1実施例〜第4実施例について説明したが、次に本発明の第2実施形態及び第3の実施形態について説明する。
(第2実施形態)
第1の実施形態では、出力装置200はサーボ制御装置300と機械学習装置100とに接続され、機械学習装置100とサーボ制御装置300との間の情報の中継、サーボ制御装置300と機械学習装置100との動作の制御を行っていた。
本実施形態では、出力装置が機械学習装置のみに接続される場合について説明する。
図19は、本発明の第2実施形態の制御装置の一構成例を示すブロック図である。制御装置10Aは、機械学習装置100、出力装置200A、サーボ制御装置300、及びサーボモータ400を備えている。
出力装置200Aは、図8に示す出力装置200と比べて、情報取得部217及び情報出力部218を備えていない。
出力装置200Aはサーボ制御装置300と接続されていないため、機械学習装置100とサーボ制御装置300との間の情報の中継、サーボ制御装置300との間での情報の送受信は行わない。具体的には、図10に示す、ステップS31の学習プログラム起動指示、ステップS33のパラメータの物理量出力、及びステップS35の再学習指示は実行するが、図10に示すその他の動作(例えば、ステップS32、S34)は行わない。そうすることで、出力装置200Aはサーボ制御装置300と接続されないため、出力装置200Aの動作が少なくなり、装置構成が簡易化できる。
(第3実施形態)
第1の実施形態では、出力装置200はサーボ制御装置300と機械学習装置100とに接続されていたが、本実施形態では、調整装置が機械学習装置100とサーボ制御装置300とに接続され、出力装置が調整装置に接続される場合について説明する。
図20は、本発明の第3実施形態の制御装置の一構成例を示すブロック図である。制御装置10Bは、機械学習装置100、出力装置200A、サーボ制御装置300及び調整装置500を備えている。図20に示した出力装置200Aは、図19に示した出力装置200Aの構成と同一であるが、情報取得部211と情報出力部212が機械学習装置100でなく、調整装置700に接続されている。
調整装置500は、図8の出力装置200の作図部213、操作部214、表示部219及び演算部220が除かれた構成となっている。
図20に示した出力装置200Aは、第2の実施形態の図19に示した出力装置200Aと同様に、図10に示す、ステップ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))を含む。
上述した実施形態及び実施例は、本発明の好適な実施形態及び実施例ではあるが、上記実施形態及び実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
例えば、図9Bではノッチフィルタの周波数応答、図15及び図16ではIIRフィルタの周波数応答等の周波数応答特性を示しているが、ノッチフィルタの時間応答、IIRフィルタの時間応答等の時間応答特性を示してもよい。時間応答とは、例えば、ステップ状の入力を与えたときのステップ応答、インパルス状の入力を与えたときのインパルス応答、入力が無変化の状態から一定速度で変化する状態に移行したときのランプ応答である。ステップ応答、インパルス応答、及びランプ応答は、中心角周波数ωn、比帯域ζ、減衰係数Rを含む伝達関数を含む伝達関数から求めることができる。
<出力装置がサーボ制御装置又は機械学習装置に含まれる変形例>
上述した実施形態では、機械学習装置100、出力装置200又は200A、及びサーボ制御装置300を制御装置として構成する例と、さらに出力装置200を出力装置200Aと調整装置500とに分離して制御装置に設けて構成した例について説明した。これらの例では、機械学習装置100、出力装置200又は200A、サーボ制御装置300、調整装置500とは別体の装置により構成しているが、これらの装置の一つを他の装置と一体に構成してもよい。例えば、出力装置200又は200Aの機能の一部又は全部を機械学習装置100、又はサーボ制御装置300により実現するようにしてもよい。
また、出力装置200又は200Aを、機械学習装置100、及びサーボ制御装置3で構成される制御装置の外部に設けてもよい。
<システム構成の自由度>
図21は他の構成の制御装置を示すブロック図である。制御装置10Cは、図21に示すように、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のそれぞれは図5に示した機械学習装置100に対応している。出力装置200−1〜200−nは図8に示した出力装置210又は図19に示した200Aに対応している。n台のサーボ制御装置300−1〜300−nのそれぞれは図2又は図11に示したサーボ制御装置300に対応している。図20に示した出力装置200A及び調整装置500は出力装置200−1〜200−nに対応している。
ここで、出力装置200−1とサーボ制御装置300−1とは1対1の組とされて、通信可能に接続されている。出力装置200−2〜200−nとサーボ制御装置300−2〜300−nとについても、出力装置200−1とサーボ制御装置300−1と同様に接続される。図21では、出力装置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における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
上述した図21の制御装置では、出力装置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 制御装置
100、110 機械学習装置
200、200A、210 出力装置
211 情報取得部
212 情報出力部
213 作図部
214 操作部
215 制御部
216 記憶部
217 情報取得部
218 情報出力部
219 表示部
220 演算部
300、310 サーボ制御装置
400、410 サーボモータ
500 調整装置
600 ネットワーク

Claims (11)

  1. 工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置から、学習中又は学習された、前記サーボ制御装置の構成要素のパラメータ又は第1の物理量を取得する情報取得部と、
    取得した前記第1の物理量と取得した前記パラメータから求めた第2の物理量とのいずれか1つの物理量、前記サーボ制御装置の構成要素の時間応答特性、及び前記サーボ制御装置の構成要素の周波数応答特性の3つのうちの少なくとも1つを出力する出力部と、を備え、
    前記時間応答特性及び前記周波数応答特性は、前記パラメータ、前記第1の物理量又は前記第2の物理量を用いて求め
    前記第1及び第2の物理量は、イナーシャ、質量、粘性、剛性、共振周波数、減衰中心周波数、減衰率、減衰周波数幅、時定数、カットオフ周波数のいずれか1つ又は組み合わせである出力装置。
  2. 前記出力部は、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性を表示画面に表示する表示部を含む請求項1に記載の出力装置。
  3. ユーザの指示に基づいて、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性に基づく前記サーボ制御装置の構成要素のパラメータ又は前記第1の物理量の調整指示を、前記サーボ制御装置に対して行う請求項1又は2に記載の出力装置。
  4. ユーザの指示に基づいて、前記第1の物理量、前記第2の物理量、前記時間応答特性又は前記周波数応答特性に基づく前記サーボ制御装置の構成要素のパラメータ又は前記第1の物理量の機械学習を、学習範囲を変更又は選択して行う機械学習指示を、前記機械学習装置に対して行う請求項1から3のいずれか1項に記載の出力装置。
  5. 前記機械学習装置の学習で用いる評価関数値を出力する請求項1から請求項4のいずれか1項に記載の出力装置。
  6. 前記サーボ制御装置から出力される位置偏差に関する情報を出力する、請求項1から請求項5のいずれか1項に記載の出力装置。
  7. 前記サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータである請求項1から請求項6のいずれか1項に記載の出力装置。
  8. 前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィードフォワード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含む、請求項7に記載の出力装置。
  9. 請求項1から8のいずれか1項に記載の出力装置と、
    工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
    サーボ制御装置に対して機械学習を行う機械学習装置と、
    を備えた制御装置。
  10. 前記出力装置は、前記サーボ制御装置と前記機械学習装置のうちの一つに含まれる、請求項9に記載の制御装置。
  11. 工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対する機械学習装置で機械学習された、出力装置のパラメータの出力方法において、
    前記機械学習装置から、学習中又は学習された、前記サーボ制御装置の構成要素のパラメータ又は第1の物理量を取得し、
    取得した前記第1の物理量と取得した前記パラメータから求めた第2の物理量とのいずれか1つの物理量、前記サーボ制御装置の構成要素の時間応答特性、及び前記サーボ制御装置の構成要素の周波数応答特性の3つのうちの少なくとも1つを出力し、
    前記時間応答特性及び前記周波数応答特性は、前記パラメータ、前記第1の物理量又は前記第2の物理量を用いて求め
    前記第1及び第2の物理量は、イナーシャ、質量、粘性、剛性、共振周波数、減衰中心周波数、減衰率、減衰周波数幅、時定数、カットオフ周波数のいずれか1つ又は組み合わせである出力装置の学習パラメータの出力方法。
JP2018200820A 2018-10-25 2018-10-25 出力装置、制御装置、及び学習パラメータの出力方法 Active JP6860540B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018200820A JP6860540B2 (ja) 2018-10-25 2018-10-25 出力装置、制御装置、及び学習パラメータの出力方法
US16/563,116 US20200133226A1 (en) 2018-10-25 2019-09-06 Output device, control device and method of outputting learning parameter
DE102019216081.6A DE102019216081A1 (de) 2018-10-25 2019-10-18 Ausgabevorrichtung, Steuervorrichtung und Verfahren zum Ausgeben eines Lernparameters
CN201911011700.XA CN111103849B (zh) 2018-10-25 2019-10-23 输出装置、控制装置、以及学习参数的输出方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018200820A JP6860540B2 (ja) 2018-10-25 2018-10-25 出力装置、制御装置、及び学習パラメータの出力方法

Publications (2)

Publication Number Publication Date
JP2020067874A JP2020067874A (ja) 2020-04-30
JP6860540B2 true JP6860540B2 (ja) 2021-04-14

Family

ID=70326603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018200820A Active JP6860540B2 (ja) 2018-10-25 2018-10-25 出力装置、制御装置、及び学習パラメータの出力方法

Country Status (4)

Country Link
US (1) US20200133226A1 (ja)
JP (1) JP6860540B2 (ja)
CN (1) CN111103849B (ja)
DE (1) DE102019216081A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020129283A1 (ja) * 2018-12-21 2020-06-25 株式会社島津製作所 材料試験機、及び材料試験機の制御方法
JP7057312B2 (ja) * 2019-04-02 2022-04-19 ファナック株式会社 工作機械
JP7000373B2 (ja) * 2019-04-15 2022-01-19 ファナック株式会社 機械学習装置、制御装置及び機械学習方法
JP7512674B2 (ja) 2020-05-22 2024-07-09 コニカミノルタ株式会社 画像処理システム、画像処理装置、プログラム、制御管理システムおよび装置
WO2022269664A1 (ja) * 2021-06-21 2022-12-29 三菱電機株式会社 加工条件探索装置および加工条件探索方法
US20230261772A1 (en) * 2022-02-17 2023-08-17 Qualcomm Incorporated Relay characteristic reporting and control
US11915731B1 (en) 2022-08-25 2024-02-27 Western Digital Technologies, Inc. Data storage device with notch filter calibration based on multi-rate excitation and error rejection
US11817122B1 (en) * 2022-08-25 2023-11-14 Western Digital Technologies, Inc. Data storage device with notch filter calibration based on multi-rate excitation and error rejection
JP2024060341A (ja) * 2022-10-19 2024-05-02 株式会社日立製作所 プラント制御システム及びプラント制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5058607B2 (ja) * 2006-02-08 2012-10-24 キヤノン株式会社 撮像装置、その制御方法、及びプログラム
JP2012141903A (ja) * 2011-01-05 2012-07-26 Nec Corp 情報処理端末とその制御方法
JP6203701B2 (ja) * 2014-11-13 2017-09-27 東芝機械株式会社 電動機械およびプログラム
US9513193B2 (en) * 2014-12-12 2016-12-06 Nicolas Olmedo Soft soil sampling device and system
WO2016191024A1 (en) * 2015-05-22 2016-12-01 Halliburton Energy Services, Inc. Improved pulse generation for downhole logging
JP6515844B2 (ja) * 2016-03-14 2019-05-22 オムロン株式会社 シミュレーション装置、シミュレーション方法、制御プログラム、および記録媒体
JP6386523B2 (ja) * 2016-12-15 2018-09-05 ファナック株式会社 Nandフラッシュメモリの寿命を予測する機械学習装置、寿命予測装置、数値制御装置、生産システム、及び機械学習方法
JP6571704B2 (ja) * 2017-02-13 2019-09-04 ファナック株式会社 診断用データ取得システム、診断用システム、及び診断用データ取得プログラム
JP6774637B2 (ja) * 2017-02-20 2020-10-28 株式会社安川電機 制御装置及び制御方法
JP6645994B2 (ja) * 2017-03-02 2020-02-14 ファナック株式会社 ゲインの最適化を学習する機械学習装置及び機械学習装置を備えた電動機制御装置並びに機械学習方法
JP6418264B2 (ja) * 2017-03-10 2018-11-07 オムロン株式会社 評価装置、評価方法、および制御装置
JP6490127B2 (ja) * 2017-03-15 2019-03-27 ファナック株式会社 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法

Also Published As

Publication number Publication date
CN111103849A (zh) 2020-05-05
JP2020067874A (ja) 2020-04-30
US20200133226A1 (en) 2020-04-30
CN111103849B (zh) 2024-03-15
DE102019216081A1 (de) 2020-04-30

Similar Documents

Publication Publication Date Title
JP6860540B2 (ja) 出力装置、制御装置、及び学習パラメータの出力方法
JP6849643B2 (ja) 出力装置、制御装置、及び評価関数と機械学習結果の出力方法
JP6697491B2 (ja) 機械学習装置、サーボモータ制御装置、サーボモータ制御システム、及び機械学習方法
JP6860541B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
JP6901450B2 (ja) 機械学習装置、制御装置及び機械学習方法
JP7000373B2 (ja) 機械学習装置、制御装置及び機械学習方法
JP6748135B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6784722B2 (ja) 出力装置、制御装置、及び評価関数値の出力方法
US11029650B2 (en) Machine learning device, control system, and machine learning method
JP2020119295A (ja) フィルタの係数を最適化する機械学習システム、制御装置及び機械学習方法
JP6978452B2 (ja) 機械学習装置、制御装置、及び機械学習の探索範囲の設定方法
CN111722530B (zh) 机器学习装置、控制***以及机器学习方法
JP6740290B2 (ja) 機械学習装置、制御装置、及び機械学習方法
WO2022030346A1 (ja) 制御支援装置、制御システム及び制御支援方法
WO2021210483A1 (ja) 機械学習装置、制御装置及び機械学習方法
WO2023067787A1 (ja) 安定余裕の設定支援装置、制御システム及び設定支援方法
WO2021251226A1 (ja) 制御支援装置、制御装置及び制御支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200323

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200616

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201208

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: 20210224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210326

R150 Certificate of patent or registration of utility model

Ref document number: 6860540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150