JP2019181635A - 情報処理装置及び情報処理方法 - Google Patents

情報処理装置及び情報処理方法 Download PDF

Info

Publication number
JP2019181635A
JP2019181635A JP2018077077A JP2018077077A JP2019181635A JP 2019181635 A JP2019181635 A JP 2019181635A JP 2018077077 A JP2018077077 A JP 2018077077A JP 2018077077 A JP2018077077 A JP 2018077077A JP 2019181635 A JP2019181635 A JP 2019181635A
Authority
JP
Japan
Prior art keywords
learning
motor
program
machining program
machining
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.)
Granted
Application number
JP2018077077A
Other languages
English (en)
Other versions
JP6836540B2 (ja
Inventor
勇作 於保
Yusaku Obo
勇作 於保
亮太郎 恒木
Ryotaro Tsuneki
亮太郎 恒木
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 JP2018077077A priority Critical patent/JP6836540B2/ja
Priority to DE102019002573.3A priority patent/DE102019002573A1/de
Priority to US16/377,531 priority patent/US11022951B2/en
Priority to CN201910285793.9A priority patent/CN110390402A/zh
Publication of JP2019181635A publication Critical patent/JP2019181635A/ja
Application granted granted Critical
Publication of JP6836540B2 publication Critical patent/JP6836540B2/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
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/27Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device
    • G05B19/29Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control
    • G05B19/291Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • 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
    • 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
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • 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
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • G05B19/41825Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell machine tools and manipulators only, machining centre
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42152Learn, self, auto tuning, calibrating, environment adaptation, repetition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

【課題】駆動部を有する装置に関する学習を、より簡便に行う。【解決手段】プログラム生成装置400は、加工プログラム記憶領域403と、学習用プログラム生成部405とを備える。加工プログラム記憶領域403は、工作機械、ロボット、又は産業機械のモータ201、モータ202を動作させるための加工プログラムを記憶する。学習用プログラム生成部405は、加工プログラム記憶領域403が記憶する前記加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、前記モータの動作特性に基づいた学習をするための学習用プログラムを生成する。【選択図】図1

Description

本発明は、機械学習に関する情報処理を行う、情報処理装置及び情報処理方法に関する。
従来、工作機械、ロボット、及び産業機械といった駆動部を有する装置の動作特性を、機械学習によって学習することが行われている。機械学習の学習結果に基づいた制御を行うことにより、これら装置をより適切に制御することが可能となる。
このような機械学習に関する技術が、例えば、特許文献1に開示されている。この特許文献1に開示の技術では、円弧、多角形、又はそれらの組み合わせからなる加工形状を加工する制御システムにおいて、サンプリング周期毎に検出されたサーボモータの位置フィードバックと、位置指令との偏差等に基づいて学習制御を行う。
特開2012−58824号公報
ところで、例えば、上述したような位置偏差等に基づいた機械学習は、ワークの加工に実際に使用する加工プログラムそのものを用いて行うことが望ましい。
しかしながら、ワークの加工に実際に使用する加工プログラムを繰り返し動作させて学習するには多くの時間を要してしまう。また、ワークの加工に実際に使用する加工プログラムのデータ量が多い場合には、学習を行うために、大容量のメモリ等を用意する必要がある。
本発明は、このような状況に鑑みてなされたものであり、駆動部を有する装置に関する学習を、より簡便に行うための、情報処理装置及び情報処理方法を提供することを目的とする。
(1) 本発明に係る情報処理装置(例えば、後述のプログラム生成装置400)は、工作機械、ロボット、又は産業機械のモータ(例えば、後述のモータ201、モータ202)を動作させるための加工プログラムを記憶する記憶部(例えば、後述の加工プログラム記憶領域403)と、前記記憶部が記憶する前記加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、前記モータの動作特性に基づいた学習をするための学習用プログラムを生成する生成部(例えば、後述の学習用プログラム生成部405)と、を備える。
(2) 上記(1)に記載の情報処理装置を、前記生成部の生成した学習用プログラムに基づいて前記モータを動作させ、該モータの動作特性に基づいた学習をする学習部(例えば、後述の学習部302)と、前記学習部による学習結果に基づいて、前記モータの制御パラメータを調整する調整部(例えば、後述の最適化行動情報出力部305)を更に備えるようにしてもよい。
(3) 上記(1)又は(2)に記載の情報処理装置を、前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、モータ速度の反転を伴う動作を前記モータに行わせるための加工プログラム、停止から動作への切り換え及び動作から停止への切り換えを伴う動作を前記モータに行わせるための加工プログラム、及びモータ速度の反転を伴わない加速度変化のある動作を前記モータに行わせるための加工プログラムの、少なくとも何れかを含む加工プログラムを抜き出すようにしてもよい。
(4) 上記(1)又は(2)に記載の情報処理装置を、前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、前記モータを動作させた場合に、位置偏差が閾値を超える動作を前記モータに行わせる加工プログラムを抜き出すようにしてもよい。
(5) 上記(4)に記載の情報処理装置を、前記生成部は、前記モータを前記加工プログラムに基づいて動作させた結果に基づいて、前記位置偏差が閾値を超えるか否かを判定するようにしてもよい。
(6) 上記(1)又は(2)に記載の情報処理装置を、前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、位置偏差の変化を時系列に沿って示す情報、又は、前記モータの動作における移動軌跡の情報、を参照したユーザから指定された一部の加工プログラムを抜き出すようにしてもよい。
(7) 上記(1)から(6)までの何れか1に記載の情報処理装置を、前記生成部の抜き出した前記一部の加工プログラムを表示する表示部(例えば、後述のユーザインタフェース部406)を更に備えるようにしてもよい。
(8)本発明に係る情報処理方法は、コンピュータ(例えば、後述のプログラム生成装置400)が行う情報処理方法であって、工作機械、ロボット、又は産業機械のモータ(例えば、後述のモータ201、モータ202)を動作させるための加工プログラムを記憶する記憶ステップと、前記記憶ステップにて記憶する前記加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、前記モータの動作特性に基づいた学習をするための学習用プログラムを生成する判定ステップと、を前記コンピュータが行う。
本発明によれば、駆動部を有する装置に関する学習を、より簡便に行うための、情報処理装置及び情報処理方法を提供することができる。
本発明の一実施形態の学習用プログラムにより動作するCNC装置の構成、モータ、機械学習装置、及びプログラム生成装置を示すブロック図である。 モータ制御部の一構成例を示すブロック図である。 プログラム生成装置の一構成例を示すブロック図である。 加工形状が、円弧(円)からなる形状である例を示す説明図である。 加工形状が、四角からなる形状である例を示す説明図である。 加工形状が、角R付き四角からなる形状である例を示す説明図である。 加工形状が、一部の角(かど)を円弧とした八角形からなる形状である第1の構成例を示す説明図である。 加工形状が、図7に示した第1の構成例の一部の角(かど)を円弧とした八角形を半分にした形状をそれぞれ端部に有する十字形からなる形状である第2の構成例を示す説明図である。 加工形状が、角R付き十字形からなる形状である第3の構成例を示す説明図である。 加工形状が、凸状の円弧と凹状の円弧とで構成される十字形からなる形状である第4の構成例を示す説明図である。 加工形状が、星形からなる形状である第5の構成例を示す説明図である。 加工プログラムから抜き出した部分についてのハイライト表示の一例を示す模式図である。 CNC装置の他の構成例の一部の構成を示すブロック図である。 第1の実施形態の機械学習装置300を示すブロック図である。
以下、本発明の実施形態について図面を用いて詳細に説明する。
本実施形態では、工作機械、ロボット、又は産業機械のモータを動作させるための加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、モータの動作特性に基づいた学習をするための学習用プログラムを生成する。
また、本実施形態では、加工プログラムそのものではなく、このように特徴的な要素を含むようにして生成された学習用プログラムを用いて学習をする。例えば、学習用プログラムを、制御装置となるCNC(Computerized Numerical Control)装置で動作させ、モータをフィードフォワード制御することで、フィードフォワード制御に係る制御パラメータについて学習をする。
本実施形態では、このように特徴的な要素を含むようにした学習用プログラムを生成して学習を行うことから、ワークの加工に実際に使用する加工プログラムそのもので学習する場合と比べて、短時間で、より多くの学習を行うことができる。また、加工プログラムよりもデータ量が少ない学習用プログラムを用いることから、学習を行うために必要なメモリの容量を削減することができる。
つまり、本実施形態によれば、駆動部(ここでは、一例としてモータ)を有する装置に関する学習を、より簡便に行うことができる。
<システム構成>
上述した学習用プログラムの生成についての説明に先立って、学習用プログラムにより動作するCNC装置を含むシステム全体の構成についてまず説明する。
図1は本発明の一実施形態に係る、CNC装置100の構成、モータ201、モータ202、機械学習装置300、及びプログラム生成装置400を示すブロック図である。
CNC装置100、機械学習装置300、及びプログラム生成装置400は、相互に通信可能に接続される。また、CNC装置100には、制御対象となるモータ201、モータ202に対して電流指令値(トルク指令値)を出力可能に、モータ201、モータ202が接続される。
なお、本実施形態では、機械学習装置300が速度フィードフォワードに係る制御パラメータの調整(学習)を行う場合を例に取って説明する。ただし、これは一例に過ぎず、本実施形態は、他の制御パラメータの調整(学習)場合にも適用できる。例えば、位置フィードフォワードに係る制御パラメータ、静摩擦に係る制御パラメータ、及び反転時のバックラッシに係る制御パラメータ等の調整(学習)にも本実施形態を適用することができる。
<CNC装置100、モータ201及びモータ202>
CNC装置100は、記憶部101、数値制御情報処理部102、及びサーボ制御装置を構成するモータ制御部103、モータ制御部104を備える。CNC装置100は、モータ制御部103によりモータ201を制御し、モータ制御部104によりモータ202を制御する。
CNC装置100は工作機械、ロボット又は産業機械等に用いられるが、本実施形態では工作機械に用いる場合を例に取って説明する。
記憶部101は、加工プログラムを記憶する。この加工プログラムは、切削加工やレーザービーム加工等の加工によって、実際にワークを加工するためのプログラムである。加工プログラムは、設計者が、CAD(Computer Aided Design)やCAM(Computer Aided Manufacturing)を利用して生成し、記憶部101に格納する。
数値制御情報処理部102は、ワーク加工時には、記憶部101から加工プログラムを読み出して、読み出した加工プログラムを実行する。具体的に、数値制御情報処理部102は、加工プログラムにより指定される加工形状となるように、加工プログラム中に含まれるコードに基づいて、軸方向の移動距離、送り速度等を設定し、X軸及びY軸の位置指令値を作成する。
また、数値制御情報処理部102は、学習時には、プログラム生成装置400から入力される学習用プログラムを読み出して、読み出した学習用プログラムを実行する。具体的に、数値制御情報処理部102は、学習用プログラムに基づいて、軸方向の移動距離、送り速度等を設定し、X軸及びY軸の位置指令値を作成する。
そして、ワーク加工時、及び学習時の双方において、数値制御情報処理部102は、生成したX軸の位置指令値を、モータ制御部103に対して出力する。更に、数値制御情報処理部102は、生成したY軸の位置指令値を、モータ制御部104に対して出力する。
モータ制御部103はX軸の位置指令値と、モータ201からフィードバックされる位置検出値とに基づいて電流指令値(トルク指令値)を作成してモータ201に出力する。
モータ制御部104はY軸の位置指令値と、モータ202からフィードバックされる位置検出値とに基づいて電流指令値(トルク指令値)を作成してモータ202に出力する。
モータ201、モータ202は、それぞれモータ制御部103、モータ制御部104から入力された電流指令値(トルク指令値)に基づいて回転する。
モータ201、モータ202には、それぞれボールネジが接続されている。モータ201、モータ202に接続された2つのボールネジはモータ201、モータ202の回転運動を直線運動に換えてテーブルをX軸方向及びY軸方向に駆動する。
これにより、モータ201は、加工対象となるワークを搭載するテーブルをX軸方向に駆動する。また、モータ202は、加工対象となるワークを搭載するテーブルをY軸方向に駆動する。
なお、ここでは制御される軸がX軸とY軸との2軸の場合について説明するが、これは一例に過ぎず、制御される軸が3軸以上であってもよい。制御される軸が3軸以上ある場合は軸の数に応じた数のモータが更に設けられる。また、モータ制御部の数も、モータの数に対応して更に設けられる。また、モータ201、モータ202としては、例えば、サーボモータ又はスピンドルモータを用いることができる。
モータ201、モータ202に関連付けられた、位置検出部(例えば、ロータリーエンコーダ)によって、モータ201、モータ202の回転角度位置が検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分され、位置フィードバックされる位置検出値として利用される。
モータ制御部103、モータ制御部104の、より具体的な構成について図2を参照して説明する。以下では、モータ制御部103を例にとって説明するが、モータ制御部104も同様な構成を備えている。そのため、モータ制御部104についての重複する説明は省略する。
図2はモータ制御部103の一構成例を示すブロック図である。図2に示すように、モータ制御部103は、減算器1001、位置制御部1002、加算器1003、減算器1004、速度制御部1005、加算器1006、積分器1007、位置フィードフォワード計算部1008、及び速度フィードフォワード計算部1009を備えている。
数値制御情報処理部102は、加工プログラムや、後述の学習用プログラム中に含まれるコードに基づいて位置指令値を作成し、位置指令値を減算器1001と位置フィードフォワード計算部1008に出力する。
減算器1001は、位置指令値と位置フィードバックされた位置検出値との差を求め、その差を位置偏差として位置制御部1002に出力する。学習時には、位置偏差は機械学習装置300にも出力される。学習用プログラムによる学習後に、加工プログラムを動作する場合には位置偏差は機械学習装置300に出力しない。
位置制御部1002は、位置偏差にポジションゲインKpを乗じた値を、速度指令値として加算器1003に出力する。位置フィードフォワード計算部1008は位置指令値を微分してフィードフォワード係数を掛けた値を、加算器1003と速度フィードフォワード計算部1009に出力する。
加算器1003は、速度指令値と位置フィードフォワード計算部1008の出力値とを加算して、フィードフォワード制御された速度指令値として減算器1004に出力する。減算器1004は加算器1003の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部1005に出力する。
速度制御部1005は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令値として加算器1006に出力する。
速度フィードフォワード計算部1009は、例えば数式1(以下に数1として示す)で示す伝達関数Gf(s)で示される速度フィードフォワード計算処理を行い加算器1006に出力する。
Figure 2019181635
加算器1006は、トルク指令値と速度フィードフォワード計算部1009の出力値とを加算して、加算器1006に出力する。加算器1006は加算値を電流指令値(トルク指令値)としてモータ201に出力する。
モータ201の回転角度位置は、モータ201に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分器1007で積分され、位置フィードバックされる位置検出値として利用される。
<機械学習装置300>
本実施形態では、機械学習装置300が、機械学習として強化学習を行う場合を例に取って説明する。ただし、これは一例に過ぎず、機械学習装置300が、強化学習以外の機械学習を行うようにしてもよい。例えば、教師あり学習や、半教師あり学習等の機械学習を行うようにしてもよい。
機械学習装置300が、機械学習として強化学習を行う場合、伝達関数Gf(s)の次元を予め設定された値とし、各係数a、b(i,j≧0)に任意の値を設定したうえで、学習用プログラムをCNC装置100で動作させることにより、当該制御パラメータa、bに係るCNC装置100の制御で動作するモータ201、モータ202の動作特性を観測する。そうすることで、任意の値に設定された各係数a、bの集合の中から、学習用プログラムにより工作機械を動作させたときの工作機械の動作特性が最適となる係数a、bを機械学習装置300により調整(学習)することができる。
このため、機械学習装置300は、モータ201、モータ202からフィードバックされる位置検出値等を用いて、フィードフォワード補正のための制御パラメータa、bを学習し、モータ制御部103、モータ制御部104に対して最適な制御パラメータを設定する。
より具体的には、機械学習装置300は、制御パラメータa、b(i,j≧0)に基づいて、学習用プログラムを実行することで取得されるCNC装置100の動作特性としての位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Sを観測して、当該状態Sに係る制御パラメータa、bの調整(行動A)を行う。
行動情報Aにより状態情報Sが状態情報S´に修正された場合、状態情報S´に係る修正後の制御パラメータa´、b´に基づいて動作したCNC装置100の位置偏差の値が、行動情報Aにより修正される前の状態情報Sに係る修正前の制御パラメータa、bに基づいて動作したCNC装置100の位置偏差の値よりも大きくなった場合に、報酬rの値を負の値とする。他方、行動情報Aにより修正された状態情報S´に係る修正後の制御パラメータa´、b´に基づいて動作したCNC装置100の位置偏差の値が、行動情報Aにより修正される前の状態情報Sに係る修正前の制御パラメータa、bに基づいて動作したCNC装置100の位置偏差の値よりも小さくなった場合に、報酬rの値を正の値とする。
機械学習装置300は、将来にわたっての報酬rの合計が最大になる最適な行動Aを試行錯誤的に探索する。そうすることで、機械学習装置300は、制御パラメータa、bに基づいて、学習用プログラムを実行することで取得されるCNC装置100の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Sに対して、最適な行動A(すなわち、最適な制御パラメータa、b)を選択することが可能となる。
なお、機械学習装置300による、機械学習については、後述の補足において、より詳細に説明する。
<プログラム生成装置400>
図3は、プログラム生成装置400の構成を示すブロック図である。図3に示すように、プログラム生成装置400は、加工プログラム取得部401、記憶部402、加工プログラム記憶領域403、学習用プログラム記憶領域404、学習用プログラム生成部405、ユーザインタフェース部406、及び学習指示部407を備える。
プログラム生成装置400は、上述したように、加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、モータ201、モータ202の動作特性に基づいた学習をするための学習用プログラムを生成する装置である。
加工プログラム取得部401は、記憶部101が記憶する加工プログラムを取得する。また、加工プログラム取得部401は、取得した加工プログラムを記憶部402に設けられている加工プログラム記憶領域403に記憶させる。
記憶部402は、加工プログラム記憶領域403及び学習用プログラム記憶領域404を有する記憶部である。記憶部402は、加工プログラム取得部401から入力された加工プログラムを加工プログラム記憶領域403に記憶する。また、記憶部402は、学習用プログラム生成部405が生成した学習用プログラムを学習用プログラム記憶領域404に記憶する。
学習用プログラム生成部405は、加工プログラム記憶領域403に記憶されている加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、モータ201、モータ202の動作特性に基づいた学習をするための学習用プログラムを生成する。また、学習用プログラム生成部405は、生成した学習用プログラムを学習用プログラム記憶領域404に記憶させる。
学習用プログラム生成部405による学習用プログラムの生成の詳細については、図4から図11までを参照して後述する。
ユーザインタフェース部406は、プログラム生成装置400を利用するユーザから操作を受け付けるためのユーザインタフェースを表示する機能を有する。また、ユーザインタフェース部406は、ユーザインタフェースを参照したユーザからの操作を受け付ける機能も有する。ユーザの操作は、例えば、学習用プログラムの生成指示や、生成した学習用プログラムを用いた機械学習の開始指示等である。ユーザインタフェース部406は、受け付けた操作内容を、学習用プログラム生成部405や学習指示部407に対して出力する。すると、学習用プログラム生成部405や学習指示部407は、入力された操作内容に応じた処理を行う。
学習指示部407は、機械学習装置300による学習開始を指示する。具体的に、学習指示部407は、学習用プログラム記憶領域404に記憶されている学習用プログラムを読み出す。そして、学習指示部407は、読み出した学習用プログラムを数値制御情報処理部102に対して出力することにより、機械学習装置300による学習開始を指示する。
学習用プログラムを入力された数値制御情報処理部102は、記憶部101が記憶している加工プログラムに代えて、入力された学習用プログラムに基づいてX軸及びY軸それぞれの位置指令値を生成する。そして、数値制御情報処理部102は、生成した位置指令を、モータ制御部103、モータ制御部104に対して出力する。これにより、モータ201、モータ202は、学習用プログラムに基づいた動作を開始する。また、このモータ201、モータ202の動作特性を示す情報(例えば、本実施形態では、位置偏差)が、機械学習装置300に出力される。これにより、学習用プログラムに基づいた、機械学習装置300による学習が実現される。
このようにして、特徴的な要素を含む一部加工プログラムから学習用プログラムを生成することにより、フィードフォワードに係る制御パラメータa、bの調整のために観測する動作特性を追加することができる。そのため、フィードフォワードに係る制御パラメータa、bをより正確かつ効率的に調整(学習)することができる。
<学習用プログラムの生成>
次に、学習用プログラム生成部405による学習用プログラムの生成の詳細について説明する。
学習用プログラム生成部405は、制御パラメータa、bを調整(学習)するに際して、加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出す。例えば、学習用プログラム生成部405は、特徴的な要素を含む一部の加工プログラムとして、例えば、モータ速度の反転を伴う動作を前記モータに行わせるための加工プログラム、停止から動作への切り換え及び動作から停止への切り換えを伴う動作を前記モータに行わせるための加工プログラム、及びモータ速度の反転を伴わない加速度変化のある動作を前記モータに行わせるための加工プログラムの、少なくとも何れかを含む加工プログラムを抜き出す。
このような特徴的な要素を含む一部の加工プログラムは、例えば、円弧、四角形、及びR付四角形の形状に加工する加工プログラムである。ここで、R付四角とは、角(かど)が、円弧状となっている四角形を意味する。
そして、学習用プログラム生成部405は、抜き出した加工プログラムを含むようにして学習用プログラムを生成する。
ここで、学習用プログラム生成部405は、抜き出した加工プログラムのみで、学習用プログラムを生成できる場合には、抜き出した加工プログラムのみで、学習用プログラムを生成する。
しかしながら、加工プログラムは、そもそもワークを加工するために作成されたものであり、その一部を抜き出して利用することを想定して作成されたものではない。そのため、抜き出した加工プログラムのみでは、適切にモータ201、モータ202を動作させて、学習を行うことができない場合がある。
そこで、このような場合には、学習用プログラム生成部405は、抜き出した加工プログラムを実行するために必要となる処理(以下「前処理」と称する。)及び抜き出した加工プログラムを実行した後に必要となる処理(以下「後処理」と称する。)を行うためのプログラムを、抜き出した加工プログラムに追加することにより、学習用プログラムを生成する。
前処理とは、例えば、抜き出した加工プログラムの開始位置に相当する位置まで、加工対象となるワークを搭載するテーブルをX軸方向及びY軸方向に駆動する処理である。また、前処理とは、例えば、工具を抜き出した加工プログラムを開始可能な状態とする処理である。
また、後処理とは、例えば、抜き出しを行う前の加工プログラムの終了位置に相当する位置まで、加工対象となるワークを搭載するテーブルをX軸方向及びY軸方向に駆動する処理である。また、後処理とは、例えば、工具を、抜き出しを行う前の加工プログラムの終了状態と同じ状態とする処理である。
次に、図4から図11までを参照して、学習用プログラム生成部405が特徴的な要素を含む一部の加工プログラムとして、どのような加工プログラムを抜き出すのかを具体例を用いて説明する。なお、図4から図11までは、加工プログラムに基づいた加工形状を図示する。この加工形状はモータ201、モータ202で駆動されるX軸及びY軸によって移動する制御対象となるワークの移動軌跡の形状に対応している。また、各図における加工は時計まわり方向に行われているものとする。ただし、時計回り方向の加工に加えて反時計回りの方向に行うようにしてもよい。
加工形状が円弧(円)の場合は、例えば、図4に示すA点で、テーブルをX軸方向に移動するサーボモータは回転方向が反転し、テーブルはX軸方向に直線反転するように移動する。すなわち、A点は、モータ速度の反転を伴う特徴的な要素であるので、学習用プログラム生成部405は、A点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が四角の場合は、例えば、図5に示すB点の角(かど)で、テーブルをY軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルをX軸方向に移動するサーボモータは、回転から停止に移り、テーブルはX軸方向の直線動作からY軸方向の直線動作に移る。すなわち、B点は、停止から動作への切り換えを伴う特徴的な要素であるので、学習用プログラム生成部405は、B点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が角R付き四角の場合においても、例えば、図6に示すC1点で、テーブルをY軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルはX軸方向の直線動作から円弧動作からに移る。また、図6に示すC2点で、テーブルをX軸方向に移動するサーボモータは、回転から停止動作に移り、テーブルは円弧動作からY軸方向の直線動作に移る。すなわち、C点は、停止から動作への切り換え及び動作から停止への切り換えを伴う特徴的な要素であるので、学習用プログラム生成部405は、C点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
以上説明したように、指定される加工形状により、回転方向が反転したり、回転状態から停止したりする場合に生ずる惰走(惰性で動作する)を評価し、位置偏差に対する影響を調べることができる。
また、学習用プログラム生成部405は、これらの加工形状に加えて、例えば、2つのモータとも反転しない角(かど)における動作、停止から停止前と同じ方向に移動を開始する形状における動作、及び2つのモータとも反転する角(かど)における動作の特性を観測することができる加工形状に対応する加工プログラムから、一部の加工プログラムを抜き出すようにしてもよい。
例えば、図7から図11までに示すような、加工形状に対応する加工プログラムから、一部の加工プログラムを抜き出すようにしてもよい。
加工形状が、一部の角(かど)を円弧とした八角形からなる形状である場合は、例えば、図7に示すD点で、円弧上での反転時の動作特性に加えて、速度が不連続に変化する。すなわち、D点は、モータ速度の反転や加速度変化の伴う特徴的な要素であるので、学習用プログラム生成部405は、D点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が、一部の角(かど)を円弧とした八角形を半分にした形状をそれぞれ端部に有する十字形からなる形状である場合は、例えば、図8に示すE点で、X軸を駆動するモータは減速から停止する動作を行い、他方、Y軸を駆動するモータは停止状態から回転する動作を行う。すなわち、E点は、モータ速度の反転を伴わない加速度変化の伴う特徴的な要素であるので、学習用プログラム生成部405は、E点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が、角R付き十字形からなる形状である場合は、例えば、図9に示すF1点で、X軸を駆動するモータにおいて停止前と同じ方向に回転を開始する切換が行われる。また、F2点で、X軸を駆動するモータのモータが停止前と同じ方向に回転している時にY軸を駆動するモータが停止する切換が行われる。すなわち、F1点及びF2点は、停止から動作への切り換えを伴う及び動作から停止への切り換えを伴う特徴的な要素であるので、学習用プログラム生成部405は、F1点及びF2点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が、凸状の円弧と凹状の円弧とで構成される十字形からなる形状である場合は、例えば、図10に示すH1点で、X軸を駆動するモータが回転の停止から直ぐに同じ方向に回転を始める。また、H2点で、それぞれY軸を駆動するモータが回転の停止から直ぐに同じ方向に回転を始める。すなわち、G1点及びG2点は、停止から動作への切り換えを伴う及び動作から停止への切り換えを伴う特徴的な要素であるので、学習用プログラム生成部405は、G1点及びG2点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
加工形状が、星形からなる形状である場合は、例えば、図11に示すI点で、X軸を駆動するモータとY軸を駆動するモータとの両方の回転方向が反転する。すなわち、H点は、モータ速度の反転を伴う特徴的な要素であるので、学習用プログラム生成部405は、H点を含む加工形状(例えば、図中に破線で示す加工形状)となるようにワークの加工を行わせるための加工プログラムを、学習用プログラムを生成するために抜き出す。
以上説明したように、学習用プログラム生成部405は、特徴的な要素を含む一部の加工プログラムとして、例えば、モータ速度の反転を伴う動作を前記モータに行わせるための加工プログラム、停止から動作への切り換え及び動作から停止への切り換えを伴う動作を前記モータに行わせるための加工プログラム、及びモータ速度の反転を伴わない加速度変化のある動作を前記モータに行わせるための加工プログラムの、少なくとも何れかを含む加工プログラムを抜き出す。
そして、このような特徴的な要素に基づいて作成された学習用プログラムにより、モータ201、モータ202を動作させることによって、速度フィードフォワードに係る制御パラメータa、bの調整のために観測するための、特徴的な動作特性を得ることができる。そのため、速度フィードフォワードに係る制御パラメータa、bをより正確かつ効率的に学習することができる。
また、このように特徴的な一部の要素にのみ基づいて学習を行ったとしても、過学習等の問題は、実用上、発生しない。なぜならば、前提として、CNC装置100の制御構造は、広い範囲で安定になるように構成されているからである。
以上説明したように、本実施形態では、工作機械、ロボット、又は産業機械のモータを動作させるための加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、モータの動作特性に基づいた学習をするための学習用プログラムを生成する。
また、本実施形態では、加工プログラムそのものではなく、このように特徴的な要素を含むようにして生成された学習用プログラムを用いて学習をする。例えば、学習用プログラムを、制御装置となるCNC装置100で動作させ、モータ201、モータ202をフィードフォワード制御することで、フィードフォワード制御に係る制御パラメータについて学習をする。
本実施形態では、このように特徴的な要素を含むようにして生成された学習用プログラムを生成して学習を行うことから、ワークの加工に実際に使用する加工プログラムそのもので学習する場合と比べて、短時間で、より多くの学習を行うことができる。また、加工プログラムよりもデータ量が少ない学習用プログラムを用いることから、学習を行うために必要なメモリの容量を削減することができる。そのため、例えば、組み込み装置のようなメモリの容量が少ない装置であっても、本実施形態を実現することが可能となる。
つまり、本実施形態によれば、駆動部(ここでは、一例としてモータ)を有する装置に関する学習を、より簡便に行うことができる。
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。例えば、上述した実施形態は、以下に説明するような変形例のように種々の変更を施した形態での実施が可能である。
<第1変形例>
上述の実施形態では、例えば、図4から図11までに示すような、様々な特徴的な要素に基づいて作成された学習用プログラムにより、学習を行うことを想定した。これに限らず、様々な特徴的な要素それぞれを、同一又は類似の特徴的な要素毎に分類し、分類した特徴的な要素毎に学習を行うようにしてもよい。つまり、分類した特徴的な要素毎に、それぞれ別個の学習モデルを構築するようにしてもよい。
この場合、構築する学習モデルの数に対応する数だけ機械学習装置300を用意する。あるいは、構築する学習モデルの数に対応する数だけ学習部を備えた機械学習装置300を用意する。
そして、学習用プログラム生成部405は、様々な特徴的な要素それぞれを、同一又は類似の特徴的な要素毎に分類し、分類した特徴的な要素毎に、学習用プログラムを生成する。また、学習用プログラム生成部405は、このようにして、分類した特徴的な要素毎に作成された複数の学習用プログラムによる学習を、それぞれ異なる機械学習装置300(又はそれぞれ異なる学習部)に行わせる。
これにより、分類した特徴的な要素毎に、それぞれ別個の学習モデルが構築される。
また、加工プログラムによる加工時に、学習モデルを利用したパラメータ調整を行う場合には、例えば、数値制御情報処理部102が、加工プログラムを実行前に先読みし、どのような特徴的な要素が含まれた加工プログラムであるかを判定する。そして、数値制御情報処理部102が、判定結果に基づいて、パラメータ調整を行うために利用する学習モデルを選択する。
これにより、分類した特徴的な要素それぞれに対応した学習モデルを構築し、加工プログラムに含まれる特徴的な要素に対応した学習モデルを利用することができる。
なお、加工プログラムの先読み及び学習モデルの選択を行う機能は、上述したように数値制御情報処理部102が有していてもよいが、このような機能を有する機能ブロックを、機械学習装置300や、プログラム生成装置400が備えるようにしてもよい。
<第2変形例>
上述の実施形態では、学習用プログラム生成部405が、加工プログラムを読み込み、読み込んだ加工プログラムに特徴的な要素を含む部分が存在していた場合に、これを抜き出して学習用プログラムを生成していた。つまり、加工プログラムを解析することにより、学習用プログラムを生成していた。これに限らず、実際に加工プログラムを動作させ、その際の動作特性に基づいて、学習用プログラムを生成するようにしてもよい。
この場合、例えば、学習用プログラム生成部405は、実際に加工プログラムを動作させ、その際の動作特性を示す情報(例えば、CNC装置100で検出される位置偏差や速度偏差)を取得する。そして、学習用プログラム生成部405は、例えば、位置偏差や速度偏差が大きい動作に対応する部分の加工プログラムを抜き出して、学習用プログラムを生成する。これにより、予め定めた、「反転を伴う」、「加速度変化を伴う」等の基準とは、異なる基準で学習用プログラムを生成することができる。
なお、位置偏差や速度偏差が大きいか否かについての判定は、予め所定の閾値を規定しておき、CNC装置100で検出される位置偏差や速度偏差が、この所定の閾値を超えた場合に、位置偏差や速度偏差が大きいと判定することにより実現できる。
<第3変形例>
上述の実施形態の処理に加えて、更に学習用プログラム生成部405が、学習用プログラムを生成するために、加工プログラムから抜き出した部分が、加工プログラム全体のどの部分に相当するのかをユーザに対して出力するようにしてもよい。この場合、ユーザ他に対する出力は、例えば、ユーザインタフェース部406への表示により行うことができる。
表示の方法としては、様々な方法があるが、例えば、加工プログラムから抜き出した部分を、他の部分の区別可能にハイライト表示するようにするとよい。ハイライト表示の一例を図12に示す。
図12に示す例では、加工プログラムを構成するコード全体を表示すると共に、学習用プログラムを生成するために加工プログラムから抜き出した部分に対応するコードをハイライト表示している。この表示を参照することにより、ユーザは、加工プログラムから抜き出した部分が、加工プログラム全体のどの部分に相当するのかを把握することができる。なお、図12に示す表示は、一例であり、これに限られない。
例えば、偏差の変化を時系列に沿って示す情報を表示し、この表示において、学習用プログラムを生成するために加工プログラムから抜き出した部分に対応する部分をハイライト表示するようにしてもよい。偏差の変化を時系列に沿って示す情報としては、例えば、横軸を時間とし、縦軸を偏差(例えば、位置偏差や速度偏差)とした、波形データを利用することができる。
また、例えば、図4から図11までに示したような、モータの動作における移動軌跡の情報を表示し、この表示において、学習用プログラムを生成するために加工プログラムから抜き出した部分に対応する部分をハイライト表示するようにしてもよい。例えば、図4から図11までに示した破線部分をハイライト表示するようにしてもよい。
また、抜き出した部分と、それ以外の部分を区別可能な表示であれば、ハイライト表示以外の表示を行うようにしてもよい。
<第4変形例>
上述の実施形態では、学習用プログラム生成部405が、加工プログラムから抜き出す部分を決定していたが、ユーザからの抜き出し部分の指定に基づいて、抜き出す部分を決定するようにしてもよい。
この場合、例えば、図12に示す例のように、加工プログラムを構成するコード全体を表示し、この表示を参照したユーザから、ユーザインタフェース部406を介して抜き出し部分の指定を受け付ける。そして、学習用プログラム生成部405は、指定を受け付けた部分に対応する加工プログラムを抜き出すことにより学習用プログラムを生成する。
このようにすれば、ユーザの意図に沿った学習用プログラムを生成することができる。
なお、ユーザからの抜き出し部分の指定を、他の方法で受け付けるようにしてもよい。例えば、上述した第3変形例で説明したような、偏差の変化を時系列に沿って示す情報を表示し、この表示を参照したユーザから、ユーザインタフェース部406を介して抜き出し部分の指定を受け付けるようにしてもよい。
また、例えば、図4から図11までに示したような、モータの動作における移動軌跡の情報を表示し、この表示を参照したユーザから、ユーザインタフェース部406を介して抜き出し部分の指定を受け付けるようにしてもよい。
<他の変形例>
また、本実施形態では、学習用プログラムにより動作させたときの工作機械の動作特性を観測することで、速度フィードフォワードに係る制御パラメータa、bの調整(学習)を効率よく行うことができる機械学習を例示したが、学習用プログラムの適用は、速度フィードフォワードに係る制御パラメータa、bの調整(学習)に限定されない。例えば、位置フィードフォワードに係る制御パラメータ、静摩擦に係る制御パラメータ、及び反転時のバックラッシに係る制御パラメータの調整(学習)にも適用できる。
また、上述した機械学習装置300は、学習用プログラムをCNC装置100に実行させることにより、動作特性として位置偏差を観測したが、フィードバック情報は位置偏差に限定されず、位置偏差に加えて位置指令及び位置フィードバック(位置検出値)のうちの少なくとも1つを含んでもよい。
また、動作指令として、速度指令、速度フィードバック、速度偏差、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも1つを加えてもよい。ここで、位置指令は数値制御情報処理部102の出力、位置フィードバックは積分器1007の出力がそれぞれ対応する。速度指令は加算器1003の出力、速度フィードバック(速度検出値)はモータに関連付けられたロータリーエンコーダの出力、速度偏差は減算器1004の出力がそれぞれ対応する。電流指令は加算器1006の出力、電流フィードバックはモータに流す電流の検出値、電流偏差は減算器1010の出力がそれぞれ対応する。
またフィードフォワードの調整は、速度フィードフォワード計算部1009における調整(学習)に限定されない。例えば、速度フィードフォワード計算部1009に加えて、又は速度フィードフォワード計算部1009に換えて、位置フィードフォワード計算部1008及び/又は電流フィードフォワード計算部1013の伝達関数の係数(制御パラメータ)について調整(学習)を行ってもよい。
例えば、図13はCNC装置100の他の構成例の一部の構成を示すブロック図である。図13は図9に示したCNC装置に、減算器1010、電流制御部1011、加算器1012、及び電流フィードフォワード計算部1013をさらに追加したCNC装置を示している。
また、機械学習ではなく、操作者が制御パラメータa、bを例えば、制御表示盤等を介して適宜入力して、当該学習用プログラムを動作させて、動作特性を観察することにより、制御パラメータa、bを調整するようにしてもよい。
また、学習用プログラムにより動作させたときの工作機械の動作特性を観測することで、(フィードフォワードに係る制御パラメータa、bの調整(学習)に替えて)バックラッシ補正及び/又はバックラッシ加速補正に係る制御パラメータの調整(学習)を行ってもよい。例えば、図7に示した第1の構成例並びに図8に示した第2の構成例におけるA点における反転時の動作特性、及び図11に示した第5の構成例におけるI点における反転時の動作特性の観測は特に有効である。
また、学習用プログラムにより動作させたときの工作機械の動作特性を観測することで、(フィードフォワードに係る制御パラメータa、bの調整(学習)に替えて)静摩擦補正に係る制御パラメータの調整(学習)を行ってもよい。例えば、図5に示した第2の構成例のC点における動作特性は、特に有効である。
<補足説明>
最後に、補足説明として機械学習装置300による機械学習(強化学習)について、より詳細に説明する。
図14は本発明の第1の実施形態の機械学習装置300を示すブロック図である。
上述した強化学習を行うために、図14に示すように、機械学習装置300は、状態情報取得部301、学習部302、行動情報出力部303、価値関数記憶部304、及び最適化行動情報出力部305を備える。学習部302は報酬出力部3021、価値関数更新部3022、及び行動情報生成部3023を備える。
<エージェント>
エージェント(本実施形態における機械学習装置300に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境を変化させ、環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
<状態S>
CNC装置100における速度フィードフォワード計算部1009の伝達関数G(s)の各係数a、b(i,j≧0)の値、並びに学習時の学習用プログラムを実行することで取得されるCNC装置100の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態Sとする。状態情報取得部301は、状態Sを取得する。
<行動A>
状態Sに係る速度フィードフォワード計算部1009の制御パラメータa、bの調整(例えば、制御パラメータa、bをランダムに微修正する)を行動Aとする。なお、制御パラメータa、bは例えば、初期設定値として、[数1]のa=1、a=0、b=0、b=制御対象のイナーシャ値とする。また、係数a、bの次元m、nを予め設定する。学習部302における行動情報生成部3023は、行動Aを生成して、行動情報出力部303は、状態Sにおける行動AをCNC装置100に対して出力する。
<報酬r>
状態Sにおける状態変数である位置偏差の集合(位置偏差集合)をPD(s)、行動情報A(速度フィードフォワード計算部の各係数a、b(i,jは0及び正の整数を示す)の修正)により状態Sから変化した状態情報S´に係る状態変数である位置偏差集合をPD(s´)で示す。また、状態Sにおける位置偏差の値を、予め設定された評価関数f(PD(s))に基づいて算出される値とする。
評価関数fとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数、
∫e2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
等を適用することができる。
このとき、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))よりも大きくなった場合に、報酬rの値を負の値とする。
一方で、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))よりも小さくなった場合に、報酬rの値を正の値とする。
なお、行動情報Aにより修正された状態情報S´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報Aにより修正される前の状態情報Sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))と等しい場合は、報酬rの値をゼロとする。
学習部302における報酬出力部3021は、状態Sに対して行動Aを適用した場合の報酬rを算出する。
<価値関数Q>
或る環境の状態Sの下で、行動Aを選択する場合の価値をQ(S,A)とする。このように、Q(S,A)は、状態Sと行動Aを入力とする関数である。
学習を最初に開始する時点では、状態Sと行動Aとの組合せについて、価値Q(S,A)の正しい値は全く分かっていない。そこで、エージェントは、或る状態Sの下で様々な行動Aを選択し、その時の行動Aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(S,A)を学習していく。
このような価値Q(S,A)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
Figure 2019181635
上記の数式2において、Sは、時刻tにおける環境の状態を表し、Aは、時刻tにおける行動を表す。行動Aにより、状態はSt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態St+1の下で、その時に分かっている最もQ値の高い行動Aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
学習では、すべての状態行動ペア(S,A)についてのQ(S,A)のテーブルを作成して、学習を行う方法がある。学習部302における価値関数更新部3022は、状態Sと、行動Aと、行動Aを状態Sに適用した場合の状態S´と、報酬出力部3021により算出された報酬rの値と、に基づいて学習を行うことにより、価値関数記憶部304が記憶する価値関数Qを更新する。
以上のようにして、機械学習装置300により学習された価値関数Qに基づいて、或る状態Sに係る速度フィードフォワード計算部1009の伝達関数の各係数a、bに対して適用される行動Aのうち、Q(S,A)の値が最大となるような行動Aを選択することで、学習用プログラムを実行することで取得される位置偏差が最小になるような行動A(すなわち、速度フィードフォワード計算部1009の係数a、b)を選択することが可能となる。
最適化行動情報出力部305は、価値関数更新部3022が学習を行うことにより更新した価値関数Qに基づいて、価値Q(S,A)が最大となる動作を速度フィードフォワード計算部1009に行わせるための行動情報Aである最適化行動情報を生成する。
以上、本実施形態における機械学習について補足説明したが、ここで説明した機械学習は、学習用プログラムによる評価を観測して、調整(学習)するための1つの例であって、調整(学習)は、これに限定されない。例えば、オペレータが、学習用プログラムを使用して、制御パラメータを調整してもよい。
上述の実施形態の説明において、CNC装置100、機械学習装置300、及びプログラム生成装置400の機能について説明した。これらの機能を実現するために、CNC装置100、機械学習装置300、及びプログラム生成装置400は、それぞれCPU(Central Processing Unit)等の演算処理装置を備える。また、CNC装置100、機械学習装置300、及びプログラム生成装置400は、それぞれアプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
そして、CNC装置100、機械学習装置300、及びプログラム生成装置400は、それぞれ演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
また、機械学習装置300については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
上述した実施形態において、CNC装置100、機械学習装置300、及びプログラム生成装置400に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
この場合、ソフトウェアは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、ソフトウェアは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
100 CNC(Computerized Numerical Control)装置
101 記憶部
102 数値制御情報処理部
103、104 モータ制御部
201、202 モータ
300 機械学習装置
400 プログラム生成装置
401 加工プログラム取得部
402 記憶部
403 加工プログラム記憶領域
404 学習用プログラム記憶領域
405 学習用プログラム生成部
406 ユーザインタフェース部
407 学習指示部

Claims (8)

  1. 工作機械、ロボット、又は産業機械のモータを動作させるための加工プログラムを記憶する記憶部と、
    前記記憶部が記憶する前記加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、前記モータの動作特性に基づいた学習をするための学習用プログラムを生成する生成部と、
    を備える情報処理装置。
  2. 前記生成部の生成した学習用プログラムに基づいて前記モータを動作させ、該モータの動作特性に基づいた学習をする学習部と、
    前記学習部による学習結果に基づいて、前記モータの制御パラメータを調整する調整部を更に備える請求項1に記載の情報処理装置。
  3. 前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、
    モータ速度の反転を伴う動作を前記モータに行わせるための加工プログラム、停止から動作への切り換え及び動作から停止への切り換えを伴う動作を前記モータに行わせるための加工プログラム、及びモータ速度の反転を伴わない加速度変化のある動作を前記モータに行わせるための加工プログラムの、少なくとも何れかを含む加工プログラムを抜き出す請求項1又は2に記載の情報処理装置。
  4. 前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、
    前記モータを動作させた場合に、位置偏差が閾値を超える動作を前記モータに行わせる加工プログラムを抜き出す請求項1又は2に記載の情報処理装置。
  5. 前記生成部は、前記モータを前記加工プログラムに基づいて動作させた結果に基づいて、前記位置偏差が閾値を超えるか否かを判定する請求項4に記載の情報処理装置。
  6. 前記生成部は、前記特徴的な要素を含む一部の加工プログラムとして、
    位置偏差の変化を時系列に沿って示す情報、又は、前記モータの動作における移動軌跡の情報、を参照したユーザから指定された一部の加工プログラムを抜き出す請求項1又は2に記載の情報処理装置。
  7. 前記生成部の抜き出した前記一部の加工プログラムを表示する表示部を更に備える請求項1から請求項6までの何れか1項に記載の情報処理装置。
  8. コンピュータが行う情報処理方法であって、
    工作機械、ロボット、又は産業機械のモータを動作させるための加工プログラムを記憶する記憶ステップと、
    前記記憶ステップにて記憶する前記加工プログラムから、特徴的な要素を含む一部の加工プログラムを抜き出すことにより、前記モータの動作特性に基づいた学習をするための学習用プログラムを生成する判定ステップと、
    を前記コンピュータが行う情報処理方法。
JP2018077077A 2018-04-12 2018-04-12 情報処理装置及び情報処理方法 Active JP6836540B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018077077A JP6836540B2 (ja) 2018-04-12 2018-04-12 情報処理装置及び情報処理方法
DE102019002573.3A DE102019002573A1 (de) 2018-04-12 2019-04-08 Informationsverarbeitungsvorrichtung und informationsverarbeitungsverfahren
US16/377,531 US11022951B2 (en) 2018-04-12 2019-04-08 Information processing device and information processing method
CN201910285793.9A CN110390402A (zh) 2018-04-12 2019-04-10 信息处理装置和信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018077077A JP6836540B2 (ja) 2018-04-12 2018-04-12 情報処理装置及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2019181635A true JP2019181635A (ja) 2019-10-24
JP6836540B2 JP6836540B2 (ja) 2021-03-03

Family

ID=68053137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018077077A Active JP6836540B2 (ja) 2018-04-12 2018-04-12 情報処理装置及び情報処理方法

Country Status (4)

Country Link
US (1) US11022951B2 (ja)
JP (1) JP6836540B2 (ja)
CN (1) CN110390402A (ja)
DE (1) DE102019002573A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7106038B1 (ja) * 2021-12-13 2022-07-25 三菱電機株式会社 コントローラ、制御システム、学習装置および推論装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04362703A (ja) * 1991-06-10 1992-12-15 Okuma Mach Works Ltd ロストモーション補正機能を有する数値制御装置
JPH08221132A (ja) * 1995-02-10 1996-08-30 Fanuc Ltd サーボパラメータの自動調整方法及び自動調整装置
JPH11143514A (ja) * 1997-11-10 1999-05-28 Fanuc Ltd 加工誤差チェックができる数値制御装置
JP2000033532A (ja) * 1998-07-21 2000-02-02 Mitsubishi Electric Corp 機器監視制御装置
JP2003316406A (ja) * 2002-04-18 2003-11-07 Mitsubishi Electric Corp 数値制御装置の最適化支援システム
JP2011134169A (ja) * 2009-12-25 2011-07-07 Mitsubishi Heavy Ind Ltd 制御パラメータ調整方法及び調整装置
JP2013191186A (ja) * 2012-03-15 2013-09-26 Mitsubishi Electric Corp 象限突起測定装置および象限突起測定方法
US20140239868A1 (en) * 2011-10-13 2014-08-28 Gima Tt S.R.L. Method to command and control the electric motor of an automation unit and connected system
JP2016130908A (ja) * 2015-01-13 2016-07-21 ファナック株式会社 加工条件に応じてパラメータを調整するパラメータ自動調整装置
JP2016226150A (ja) * 2015-05-29 2016-12-28 ファナック株式会社 ブレーキの異常を検出する機能を備えたモータ制御システムおよびブレーキ異常検出方法
JP2017117366A (ja) * 2015-12-25 2017-06-29 株式会社ジェイテクト モータ制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6317646B1 (en) * 1997-03-19 2001-11-13 Fadal Machining Centers, Inc. CNC machine having interactive control of corner tolerance that is programmed to vary with the corner angle
JP4043996B2 (ja) * 2003-01-20 2008-02-06 ファナック株式会社 サーボモータ駆動制御装置
JP4974330B2 (ja) * 2006-02-28 2012-07-11 株式会社日立製作所 制御装置
JP4980453B2 (ja) 2010-09-06 2012-07-18 ファナック株式会社 加工を高精度化するサーボ制御システム
JP2012115044A (ja) * 2010-11-25 2012-06-14 Okuma Corp モータの磁極位置補正方法
WO2013190380A2 (en) * 2012-06-21 2013-12-27 Cellepathy Ltd. Device context determination
DE112013006799T5 (de) * 2013-04-08 2015-11-26 Mitsubishi Electric Corporation Numerische Steuerungsvorrichtung
CN106462397B (zh) * 2014-06-11 2019-10-29 富士通株式会社 程序生成装置、程序生成方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04362703A (ja) * 1991-06-10 1992-12-15 Okuma Mach Works Ltd ロストモーション補正機能を有する数値制御装置
JPH08221132A (ja) * 1995-02-10 1996-08-30 Fanuc Ltd サーボパラメータの自動調整方法及び自動調整装置
JPH11143514A (ja) * 1997-11-10 1999-05-28 Fanuc Ltd 加工誤差チェックができる数値制御装置
JP2000033532A (ja) * 1998-07-21 2000-02-02 Mitsubishi Electric Corp 機器監視制御装置
JP2003316406A (ja) * 2002-04-18 2003-11-07 Mitsubishi Electric Corp 数値制御装置の最適化支援システム
JP2011134169A (ja) * 2009-12-25 2011-07-07 Mitsubishi Heavy Ind Ltd 制御パラメータ調整方法及び調整装置
US20140239868A1 (en) * 2011-10-13 2014-08-28 Gima Tt S.R.L. Method to command and control the electric motor of an automation unit and connected system
JP2013191186A (ja) * 2012-03-15 2013-09-26 Mitsubishi Electric Corp 象限突起測定装置および象限突起測定方法
JP2016130908A (ja) * 2015-01-13 2016-07-21 ファナック株式会社 加工条件に応じてパラメータを調整するパラメータ自動調整装置
JP2016226150A (ja) * 2015-05-29 2016-12-28 ファナック株式会社 ブレーキの異常を検出する機能を備えたモータ制御システムおよびブレーキ異常検出方法
JP2017117366A (ja) * 2015-12-25 2017-06-29 株式会社ジェイテクト モータ制御装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7106038B1 (ja) * 2021-12-13 2022-07-25 三菱電機株式会社 コントローラ、制御システム、学習装置および推論装置
WO2023112082A1 (ja) * 2021-12-13 2023-06-22 三菱電機株式会社 コントローラ、制御システム、学習装置および推論装置

Also Published As

Publication number Publication date
US20190317469A1 (en) 2019-10-17
CN110390402A (zh) 2019-10-29
US11022951B2 (en) 2021-06-01
DE102019002573A1 (de) 2019-10-17
JP6836540B2 (ja) 2021-03-03

Similar Documents

Publication Publication Date Title
JP6474449B2 (ja) 調整装置及び調整方法
JP6567205B1 (ja) 機械学習装置、補正パラメータ調整装置および機械学習方法
JP6499720B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP7010877B2 (ja) 機械学習装置、数値制御システム及び機械学習方法
JP6717768B2 (ja) 生産ラインにおける運用を考慮した学習制御を行うロボット及びその制御方法
US20140012419A1 (en) Robot control apparatus and robot control method
JP5762625B2 (ja) 軌跡制御装置
JP6740279B2 (ja) 調整装置及び調整方法
JP2009043165A (ja) ロボットプログラム調整装置
JP6450732B2 (ja) 数値制御装置
US11087509B2 (en) Output device, control device, and evaluation function value output method
JP6811908B1 (ja) 数値制御装置、機械学習装置および数値制御方法
US11656600B2 (en) Simulation apparatus
JP7175403B2 (ja) 加工プログラム変換装置、数値制御装置および加工プログラムの変換方法
JP6514273B2 (ja) 速度を表示するロボットシステム
JP6571716B2 (ja) 評価用プログラム、情報記憶媒体、評価方法、及び制御装置
JP6211240B1 (ja) 数値制御装置
JP2019181635A (ja) 情報処理装置及び情報処理方法
JP2022041159A (ja) 数値制御システム及び干渉チェック方法
WO2020136899A1 (ja) 数値制御装置および機械学習装置
JP6219866B2 (ja) 表示機能付き数値制御装置および表示プログラム
JP6800384B1 (ja) 位置決め制御装置および位置決め方法
JP6110250B2 (ja) Ncプログラムにおける回転送り軸指令の変化度合いの算出及び表示方法並びに装置
JP7175433B1 (ja) 加工面品位シミュレーション装置および加工面品位表示方法
CN113459103B (zh) 一种机械手自动运行时的转角轨迹控制方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190911

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191217

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200714

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210205

R150 Certificate of patent or registration of utility model

Ref document number: 6836540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150