(57)【要約】【課題】機械学習装置を用いた学習を適切に制御する。【解決手段】少なくとも２軸以上を駆動するモータを制御する制御装置１００、１００Ａ、１１０、１２０、１３０と、制御装置に対して機械学習を行う機械学習装置２００、２１０、２２０とを制御する調整装置３００、３２０、３３０であって、機械学習装置を起動させる起動指示を出力する起動指示出力部３０４と、制御装置で実行される評価用プログラムに基づいて得られるフィードバック情報を制御装置から取得するフィードバック情報取得部３０８と、取得した前記フィードバック情報を機械学習装置に送信するフィードバック情報送信部３０１と、フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を機械学習装置から取得するパラメータ設定情報取得部３０２と、取得した制御パラメータ設定情報を制御装置に送信するパラメータ設定情報送信部３０９と、を備える。【選択図】図１
2018180764.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２軸以上を駆動するモータを制御する制御装置と、前記制御装置に対して機械学習を行う機械学習装置とを制御する調整装置であって、
前記機械学習装置を起動させる起動指示を出力する起動指示出力部と、
前記制御装置で実行される評価用プログラムに基づいて得られるフィードバック情報を前記制御装置から取得するフィードバック情報取得部と、
取得した前記フィードバック情報を前記機械学習装置に送信するフィードバック情報送信部と、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習装置から取得するパラメータ設定情報取得部と、
取得した前記制御パラメータ設定情報を前記制御装置に送信するパラメータ設定情報送信部と、を備えた調整装置。
【請求項２】
前記評価用プログラムを記憶する記憶部と、前記評価用プログラムを前記制御装置に出力する評価用プログラム出力部とを、備えた請求項１に記載の調整装置。
【請求項３】
前記評価用プログラムを実行させる実行指示を前記制御装置に送る評価用プログラム実行指示出力部を備えた請求項１又は２に記載の調整装置。
【請求項４】
前記モータで２軸以上を駆動したときに、前記フィードバック情報取得部は前記制御装置から前記フィードバック情報を取得して前記機械学習装置に送る請求項１から３のいずれか１項に記載の調整装置。
【請求項５】
前記フィードバック情報は、位置指令、位置フィードバック、及び位置偏差のうちの少なくとも１つを含む請求項１から４のいずれか１項に記載の調整装置。
【請求項６】
前記フィードバック情報は、さらに、速度指令、速度フィードバック、及び速度偏差のうちの少なくとも１つを含む請求項５に記載の調整装置。
【請求項７】
前記フィードバック情報は、さらに、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも１つを含む請求項５に記載の調整装置。
【請求項８】
前記機械学習は強化学習であって、
前記フィードバック情報取得部は前記制御装置から状態情報として前記フィードバック情報を取得し、
前記機械学習装置から得られた制御パラメータ修正情報を行動情報として前記制御装置に送るパラメータ修正情報送信部を備えた請求項１から７のいずれか１項に記載の調整装置。
【請求項９】
前記制御装置は位置フィードフォワード計算部、速度フィードフォワード計算部、及び電流フィードフォワード計算部のうちの少なくとも１つを備え、前記位置フィードフォワード計算部、前記速度フィードフォワード計算部、及び前記電流フィードフォワード計算部のうちの少なくとも１つは前記制御パラメータ設定情報により制御パラメータの設定がされる請求項１から８のいずれか１項に記載の調整装置。
【請求項１０】
前記制御装置は前記評価用プログラムを記憶している請求項１及び３から９のいずれか１項に記載の調整装置。
【請求項１１】
前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１２】
前記機械学習装置に含まれている請求項１から１０のいずれか１項に記載の調整装置。
【請求項１３】
前記制御装置は、前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１４】
前記制御装置に含まれ且つ前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１５】
前記調整装置は前記機械学習装置に含まれ、該機械学習装置は前記制御装置に含まれている請求項１から１０のいずれか１項に記載の調整装置。
【請求項１６】
少なくとも２軸以上を駆動するモータを制御する制御装置と、前記制御装置に対して機械学習を行う機械学習装置とを制御する調整装置の調整方法であって、
前記機械学習装置を起動させ、
前記制御装置で実行される評価用プログラムに基づいて得られるフィードバック情報を前記制御装置から取得し、
取得した前記フィードバック情報を前記機械学習装置に送信し、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習装置から取得し、
取得した前記制御パラメータ設定情報を前記制御装置に送信する調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２軸以上を駆動するモータを制御する制御装置と制御装置に対して機械学習を行う機械学習装置とを制御する調整装置及びその調整方法に関する。
【背景技術】
【０００２】
工作機械に使用される電動機に対する動作指令を学習する機械学習装置が例えば特許文献１に記載されている。特許文献１に記載された機械学習装置は、電動機に対する電力供給量、電動機の温度、電動機の負荷、および前記電動機の振動を状態変数として観測し、この状態変数と、この状態変数に基づき、工作機械に異常が発生したか否かを判定した結果とに従って、電動機に対する動作指令が補正を必要とするか否かを学習する機械学習装置である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６０６３０１６号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
機械学習装置を用いて学習する場合に、工作機械で実際に加工するワークの加工プログラムで機械学習を行うことが望ましい。しかし、一般的に加工プログラムは時間が長く、機械学習させるには調整に時間がかかる。また、加工するワークが変わるごとに機械学習を行う必要があり、多品種小量を加工する場合には適さない。
そのため、工作機械の精度評価のために、加工プログラムとは別に評価用プログラムを用いることが望ましい。
【０００５】
本発明は、加工プログラム等とは別に機械学習のための評価用プログラムを用いる場合に、機械学習装置を用いた学習を適切に制御する調整装置及び調整方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明の係る調整装置は、少なくとも２軸以上を駆動するモータを制御する制御装置（例えば、後述のＣＮＣ装置１００、１００Ａ、１１０、１２０、１３０）と、前記制御装置に対して機械学習を行う機械学習装置（例えば、後述の機械学習装置２００、２１０、２２０）とを制御する調整装置（例えば、後述の調整装置３００、３２０、３３０）であって、
前記機械学習装置を起動させる起動指示を出力する起動指示出力部（例えば、後述の起動指示出力部３０４）と、
前記制御装置で実行される評価用プログラムに基づいて得られるフィードバック情報を前記制御装置から取得するフィードバック情報取得部（例えば、後述のフィードバック情報取得部３０８）と、
取得した前記フィードバック情報を前記機械学習装置に送信するフィードバック情報送信部（例えば、後述のフィードバック情報送信部３０１）と、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習装置から取得するパラメータ設定情報取得部（例えば、後述のパラメータ設定情報取得部３０２）と、
取得した前記制御パラメータ設定情報を前記制御装置に送信するパラメータ設定情報送信部（例えば、後述のパラメータ設定情報送信部３０９）と、を備えた調整装置である。
【０００７】
（２）  上記（１）の調整装置において、前記評価用プログラムを記憶する記憶部（例えば、後述の評価用プログラム記憶部３０５）と、前記評価用プログラムを前記制御装置に出力する評価用プログラム出力部（例えば、後述の評価用プログラム出力部３０６）とを、備えてもよい。
【０００８】
（３）  上記（１）又は（２）の調整装置において、前記評価用プログラムを実行させる実行指示を前記制御装置に送る評価用プログラム実行指示出力部（例えば、後述の評価用プログラム実行指示出力部３０７）を備えてもよい。
【０００９】
（４）  上記（１）から（３）のいずれかの調整装置において、前記モータで２軸以上を駆動したときに、前記フィードバック情報取得部は前記制御装置から前記フィードバック情報を取得して前記機械学習装置に送ってもよい。
【００１０】
（５）  上記（１）から（４）のいずれかの調整装置において、前記フィードバック情報は、位置指令、位置フィードバック、及び位置偏差のうちの少なくとも１つを含んでもよい。
【００１１】
（６）  上記（５）の調整装置において、前記フィードバック情報は、さらに、速度指令、速度フィードバック、及び速度偏差のうちの少なくとも１つを含んでもよい。
【００１２】
（７）  上記（５）の調整装置において、前記フィードバック情報は、さらに、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも１つを含んでもよい。
【００１３】
（８）  上記（１）から（７）のいずれかの調整装置において、前記機械学習は強化学習であって、
前記フィードバック情報取得部は前記制御装置から状態情報として前記フィードバック情報を取得し、
前記機械学習装置から得られた制御パラメータ修正情報を行動情報として前記制御装置に送るパラメータ修正情報送信部（例えば、後述のパラメータ修正情報送信部３１０）を備えてもよい。
【００１４】
（９）  上記（１）から（８）のいずれかの調整装置において、前記制御装置は位置フィードフォワード計算部（例えば、後述の位置フィードフォワード計算部１０２０）、速度フィードフォワード計算部（例えば、後述の速度フィードフォワード計算部１０２１）、及び電流フィードフォワード計算部（例えば、後述の電流フィードフォワード計算部１０２５）のうちの少なくとも１つを備え、前記位置フィードフォワード計算部、前記速度フィードフォワード計算部、及び前記電流フィードフォワード計算部のうちの少なくとも１つは前記制御パラメータ設定情報により制御パラメータの設定がされてもよい。
【００１５】
（１０）  上記（１）、及び（３）から（９）のいずれかの調整装置において、前記制御装置は前記評価用プログラムを記憶していてもよい。
【００１６】
（１１）  上記（１）から（１０）のいずれかの調整装置において、前記調整装置（例えば、後述の調整装置３２０）は、前記機械学習装置（例えば、後述の機械学習装置２００）を含んでもよい。
【００１７】
（１２）  上記（１）から（１０）のいずれかの調整装置において、前記調整装置（例えば、後述の調整装置３００）は、前記機械学習装置（例えば、後述の機械学習装置２１０）に含まれてもよい。
【００１８】
（１３）  上記（１）から（１０）のいずれかの調整装置において、前記制御装置（例えば、後述のＣＮＣ装置１１０）は、前記機械学習装置（例えば、後述の機械学習装置２００）を含んでもよい。
【００１９】
（１４）  上記（１）から（１０）のいずれかの調整装置において、前記制御装置（例えば、後述の制御装置１２０）に含まれ且つ前記機械学習装置（例えば、後述の機械学習装置２００）を含んでもよい。
【００２０】
（１５）  上記（１）から（１０）のいずれかの調整装置において、前記調整装置（例えば、後述の調整装置３００）は前記機械学習装置（例えば、後述の機械学習装置２２０）に含まれ、該機械学習装置は前記制御装置（例えば、後述の制御装置１３０）に含まれてもよい。
【００２１】
（１６）  本発明に係る調整方法は、少なくとも２軸以上を駆動するモータを制御する制御装置（例えば、後述のＣＮＣ装置１００、１００Ａ、１１０、１２０、１３０）と、前記制御装置に対して機械学習を行う機械学習装置（例えば、後述の機械学習装置２００、２１０、２２０）とを制御する調整装置（例えば、後述の調整装置３００、３２０、３３０）の調整方法であって、
前記機械学習装置を起動させ、
前記制御装置で実行される評価用プログラムに基づいて得られるフィードバック情報を前記制御装置から取得し、
取得した前記フィードバック情報を前記機械学習装置に送信し、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習装置から取得し、
取得した前記制御パラメータ設定情報を前記制御装置に送信する調整方法である。
【発明の効果】
【００２２】
本発明によれば、機械学習装置と制御装置を備え、評価用プログラムを用いて学習させるシステムにおいて、機械学習装置を用いた学習を適切に制御することができる。また、機械学習装置を含む制御装置において、機械学習装置を用いた学習を適切に制御することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態の調整システムを示すブロック図である。
【図２】ＣＮＣ装置と機械学習装置と調整装置との間の主な信号の流れを示すブロック図である。
【図３】ＣＮＣ装置１００の一構成例を示すブロック図である。
【図４Ａ】加工形状が円形の場合のサーボモータの動作を説明するための図である。
【図４Ｂ】加工形状が円形で、位置Ａ１で、テーブルをＹ軸方向に移動するサーボモータの回転方向が反転しようとした時の惰走により生ずる軌跡誤差を示す説明図である。
【図４Ｃ】加工形状が四角の場合のサーボモータの動作を説明するための図である。
【図４Ｄ】加工形状が角Ｒ付き四角の場合のサーボモータの動作を説明するための図である。
【図５】第１の実施形態の機械学習装置２００を示すブロック図である。
【図６】第１の実施形態の調整装置３００の一構成例を示すブロック図である。
【図７Ａ】調整システム１０の起動動作を説明するフローチャートである。
【図７Ｂ】調整システム１０の学習動作を説明するフローチャートである。
【図７Ｃ】調整システム１０のパラメータ設定情報出力動作を説明するフローチャートである。
【図８】本発明の第２の実施形態の調整システムを示すブロック図である。
【図９】本発明の第３の実施形態の調整システムを示すブロック図である。
【図１０】本発明の第４の実施形態の調整システムを示すブロック図である。
【図１１】本発明の第５の実施形態のＣＮＣ装置を示すブロック図である。
【図１２】本発明の第６の実施形態のＣＮＣ装置を示すブロック図である。
【図１３】本発明の実施形態のＣＮＣ装置の他の構成例を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について図面を用いて詳細に説明する。
（第１の実施形態）
図１は本発明の第１の実施形態の調整システムを示すブロック図である。本実施形態の調整システム１０は、図１に示すように、ｎ台のＣＮＣ(Computerized Numerical Control)装置１００−１〜１００−ｎ、ｎ台の機械学習装置２００−１〜２００−ｎ、調整装置３００、及びネットワーク４００を備えている。なお、ｎは任意の自然数である。ＣＮＣ装置は制御装置に対応し、数値制御（Numerical Control)装置の一つである。
【００２５】
ここで、ＣＮＣ装置１００−１と機械学習装置２００−１は、１対１の組とされて、調整装置３００とネットワーク４００を介して通信可能に接続されている。ＣＮＣ装置１００−２〜１００−ｎと機械学習装置２００−２〜２００−ｎについてもＣＮＣ装置１００−１と機械学習装置２００−１と同様に接続される。
調整装置３００とＣＮＣ装置１００−１〜１００−ｎ、及び調整装置３００と機械学習装置２００−１〜２００−ｎとは、それぞれ接続インターフェースを介して直接に接続、又はそれぞれネットワークを介して接続されており、相互に通信を行うことが可能である。なお、ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００２６】
図２はＣＮＣ装置と機械学習装置と調整装置との間の信号の主な流れを示すブロック図である。調整装置３００は、ＣＮＣ装置１００によって実際に制御対象を制御する前に、ＣＮＣ装置１００の制御パラメータを適正な値に設定するために機械学習装置２００で学習が行われるように、ＣＮＣ装置１００及び機械学習装置２００を制御する。ここで、ＣＮＣ装置１００と機械学習装置２００は、ｎ台のＣＮＣ装置１００−１〜１００−ｎとｎ台の機械学習装置２００−１〜２００−ｎとのｎ個の組の一つである。
図２に示すように、調整装置３００は、ＣＮＣ装置１００において、学習時に実行する評価用プログラムを送信し、機械学習装置２００に起動指示を送信する。
次に、調整装置３００はＣＮＣ装置１００に対して評価用プログラムの実行指示を送信する。ＣＮＣ装置１００は評価用プログラムを実行し、実行される評価用プログラムに基づいて得られるフィードバック情報を調整装置３００に送信する。調整装置３００は取得したフィードバック情報を機械学習装置２００に送信する。
次に、機械学習装置２００はフィードバック情報を用いて機械学習を行い、機械学習により得られたパラメータ設定情報を調整装置３００に送信する。調整装置３００は取得したパラメータ設定情報をＣＮＣ装置１００に送信する。こうして、ＣＮＣ装置１００は適正な制御パラメータに設定される。
なお、ＣＮＣ装置１００と機械学習装置２００とは、接続インターフェースを介して直接に接続、又はそれぞれネットワークを介して接続して、図２に示した調整装置３００を介した信号の一部を、調整装置３００を介さずＣＮＣ装置１００と機械学習装置２００との間で送受信してもよい。また、オペレータがＣＮＣ装置１００で評価用プログラムを実行させる場合には、調整装置３００からＣＮＣ装置１００へ評価用プログラムの実行指示を送信しなくともよい。
【００２７】
以下、制御装置となるＣＮＣ装置１００、機械学習装置２００、及び調整装置３００の各構成について説明する。以下の説明においては、機械学習装置２００がＣＮＣ装置１００の制御パラメータを強化学習する場合を例に取り上げて説明を行う。
＜ＣＮＣ装置１００＞
図３はＣＮＣ装置の一構成例を示すブロック図である。説明の便宜上、図３において、調整装置３００及び機械学習装置２００も示している。
図３に示すように、ＣＮＣ装置１００は、制御対象５００のサーボモータ６００を制御する。サーボモータ６００は、制御される軸が少なくとも２軸以上ある場合は軸の数分設けられる。本実施形態では評価用プログラムが少なくとも２軸動作させるので、サーボモータの数は少なくとも２つ設けられる。ここではモータとしてサーボモータを示しているが、スピンドルモータ等の他のモータを用いてもよい。制御対象５００は例えばサーボモータ、サーボモータを含む工作機械，ロボット，産業機械等である。ＣＮＣ装置１００は工作機械、ロボット、又は産業機械等の一部として設けられてもよい。以下、制御対象５００がサーボモータを含む工作機械である場合を例にとって説明する。
図３に示すように、ＣＮＣ装置１００は、数値制御情報処理部１０１１、記憶部１０１２、減算器１０１３、位置制御部１０１４、加算器１０１５、減算器１０１６、速度制御部１０１７、加算器１０１８、積分器１０１９、位置フィードフォワード計算部１０２０、及び速度フィードフォワード計算部１０２１を備えている。数値制御情報処理部１０１１と記憶部１０１２を除くＣＮＣ装置１００の各構成部はサーボモータごとに設けられる。
記憶部１０１２は評価用プログラムを記憶しており、この評価プログラムは、機械学習装置２００による学習時にＣＮＣ装置１００で用いられる加工プログラムである。評価用プログラムは、実際の切削加工等の加工時に用いられる加工プログラムとは別に設けられる。評価用プログラムは後述の調整装置３００から数値制御情報処理部１０１１に送信され、数値制御情報処理部１０１１は評価用プログラムを記憶部１０１２に記憶する。
【００２８】
数値制御情報処理部１０１１は、後述の調整装置３００からの実行指示に基づいて、記憶部１０１２から評価用プログラムを読み出して、評価用プログラムを実行する。そうすることで、数値制御情報処理部１０１１は、当該評価用プログラム中に含まれるコードに基づいて位置指令値を作成し、減算器１０１３に出力する。数値制御情報処理部１０１１は、評価用プログラムにより指定される加工形状となるように、送り速度を設定して位置指令値を作成する。
減算器１０１３は数値制御情報処理部１０１１から位置指令値を受け、位置指令値と位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部１０１４に出力するとともに後述の調整装置３００に対して送信する。
【００２９】
位置制御部１０１４は、位置偏差にポジションゲインＫｐを乗じた値を、速度指令値として加算器１０１５に出力する。位置フィードフォワード計算部１０２０は位置指令値を微分してフィードフォワード係数を掛けた値を、加算器１０１５と速度フィードフォワード計算部１０２１に出力する。
【００３０】
加算器１０１５は、速度指令値と位置フィードフォワード計算部１０２０の出力値とを加算して、フィードフォワード制御された速度指令値として減算器１０１６に出力する。減算器１０１６は加算器１０１５の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部１０１７に出力する。
【００３１】
速度制御部１０１７は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令値として加算器１０１８に出力する。
【００３２】
速度フィードフォワード計算部１０２１は、例えば数式１（以下に数１として示す）で示す伝達関数Ｇｆ（ｓ）で示される速度フィードフォワード計算処理を行い加算器２０２７に出力する。
【数１】
2018180764.tif 000003
第１の実施形態では、伝達関数Ｇｆ（ｓ）の次元を予め設定された値とした場合に、各係数ａｉ、ｂｊを最適なものとするように機械学習する。以下、係数ａｉ、ｂｊをＣＮＣ装置１００の制御パラメータともいう。
【００３３】
加算器１０１８は、トルク指令値と速度フィードフォワード計算部１０２１の出力値とを加算して、フィードフォワード制御された電流指令値（トルク指令値）として制御対象５００のサーボモータ６００に出力する。
【００３４】
制御対象５００のサーボモータ６００の回転角度位置は、サーボモータ６００に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分器１０１９で積分され、位置フィードバックされる位置検出値として利用される。
以上のように、ＣＮＣ装置１００は構成される。
【００３５】
次に、機械学習時に工作機械で実際に実行させる評価用プログラムについて説明する。前述したように、ＣＮＣ装置１００の制御パラメータを機械学習する場合、ＣＮＣ装置１００に全ての加工品の動作をさせることが好ましい。しかしながら、ＣＮＣ装置１００に全ての加工品の動作をさせることはできないため、これに代えて、機械学習に適した加工動作を行わせる評価用プログラムを予め設定する。
例えば、評価用プログラムは、学習時の加工形状により軸方向の移動距離、送り速度等を指定する。学習時の加工形状は、例えば、円、四角、及び角Ｒ付き四角（a square with quarter arc）等である。
【００３６】
図４Ａ、図４Ｂは、加工形状が円形の場合のサーボモータの動作を説明するための図である。図４Ｃは、加工形状が四角の場合のサーボモータの動作を説明するための図である。図４Ｄは、加工形状が角Ｒ付き四角の場合のサーボモータの動作を説明するための図である。図４Ａ〜図４Ｄにおいて、被加工物（ワーク）が時計まわりに加工されるようにテーブルが移動する。
【００３７】
加工形状が円形の場合は、図４Ａに示すように、位置Ａ１で、テーブルをＹ軸方向に移動するサーボモータは回転方向が反転し、テーブルはＹ軸方向に直線反転するように移動する。位置Ａ２で、テーブルをＸ軸方向に移動するサーボモータは、回転方向が反転し、テーブルはＸ軸方向に直線反転するように移動する。
図４Ｂは、加工形状が円形で、位置Ａ１で、テーブルをＹ軸方向に移動するサーボモータの回転方向が反転しようとした時の惰走により生ずる軌跡誤差を示す説明図である。
図４Ｂに示すように、テーブルをＹ軸方向に移動するサーボモータの回転方向が位置Ａ１で反転しようとした時に、反転遅れが生じ、半径方向に軌跡誤差が拡大し、軌跡誤差の拡大表示を行うと軌跡誤差が突起として見える。
【００３８】
加工形状が四角の場合は、図４Ｃに示すように、位置Ｂで、テーブルをＹ軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルをＸ軸方向に移動するサーボモータは、回転から停止に移り、テーブルはＸ軸方向の直線動作からＹ軸方向の直線動作に移る。
【００３９】
加工形状が角Ｒ付き四角の場合は、図４Ｄに示すように、位置Ｃ１で、テーブルをＹ軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルはＸ軸方向の直線動作から円弧動作に移る。位置Ｃ２で、テーブルをＸ軸方向に移動するサーボモータは、回転から停止に移り、テーブルは円弧動作からＹ軸方向の直線動作に移る。
以上説明した、評価用プログラムにより指定される加工形状により、回転方向が反転したり、回転状態から停止したりする場合に生ずる惰走（惰性で動作する）を評価し、位置偏差に対する影響を調べることができる。
【００４０】
学習時にこのような評価用プログラムを実行することで、数値制御情報処理部１０１１は順次、円、四角、角Ｒ付き四角（a square with quarter arc）の加工形状となるように位置指令値を出力する。また、円、四角、角Ｒ付き四角（a square with quarter arc）の加工形状ごとに、送り速度を変更し、複数の送り速度についての影響も学習できるようにする。送り速度は、加工形状の図形の移動途中、例えば四角の加工形状にテーブルを移動させているときに、角を過ぎたときに送り速度を変更してもよい。
【００４１】
＜機械学習装置２００＞
【００４２】
次に、第１実施形態における機械学習装置２００について説明する。前述したとおり、機械学習装置２００は、制御パラメータａｉ、ｂｊを強化学習する。
より具体的には、機械学習装置２００は、制御パラメータａｉ、ｂｊ(ｉ，ｊ≧０)の値、並びに評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態ｓとして、当該状態ｓに係る制御パラメータａｉ、ｂｊの調整を行動ａとする、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）を行う。当業者にとって周知のように、Ｑ学習では、或る状態ｓのとき、取り得る行動ａのなかから、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択することを目的とする。
【００４３】
具体的には、エージェント（機械学習装置）は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（ｓ，ａ）を学習していく。
【００４４】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。このような価値Ｑ（ｓ，ａ）の更新式は、例えば、次の数式２（以下に数２として示す）により表すことができる。
【００４５】
【数２】
2018180764.tif 000004
【００４６】
上記の数式２において、ｓｔは、時刻ｔにおける環境の状態を表し、ａｔは、時刻ｔにおける行動を表す。行動ａｔにより、状態はｓｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
上述した数式２は、試行ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態ｓｔにおける行動ａｔの価値Ｑ（ｓｔ，ａｔ）を更新する方法を表している。
【００４７】
機械学習装置２００は、制御パラメータａｉ、ｂｊに基づいて、予め設定された評価用プログラムを実行することで得られるＣＮＣ装置１００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報ｓを観測して、行動ａを決定する。状態情報はフィードバック情報に対応する。機械学習装置２００は、行動ａをするたびに報酬ｒが返ってくる。
ここで、報酬ｒを次のように設定する。
行動情報ａにより状態情報ｓが状態情報ｓ´に修正された場合、状態情報ｓ´に係る修正後の制御パラメータａｉ、ｂｊに基づいて動作したＣＮＣ装置１００の位置偏差の値が、行動情報ａにより修正される前の状態情報ｓに係る修正前の制御パラメータａｉ、ｂｊに基づいて動作したＣＮＣ装置１００の位置偏差の値よりも大きくなった場合に、報酬の値を負の値とする。
【００４８】
他方、行動情報ａにより修正された状態情報ｓ´に係る修正後の制御パラメータａｉ、ｂｊに基づいて動作したＣＮＣ装置１００の位置偏差の値が、行動情報ａにより修正される前の状態情報ｓに係る修正前の制御パラメータａｉ、ｂｊに基づいて動作したＣＮＣ装置１００の位置偏差の値よりも小さくなった場合に、報酬の値を正の値とする。
Ｑ学習では、機械学習装置２００は、例えば、将来にわたっての報酬ｒの合計が最大になる最適な行動ａを試行錯誤的に探索する。そうすることで、機械学習装置２００は、制御パラメータａｉ、ｂｊに基づいて、予め設定された評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態ｓに対して、最適な行動ａ（すなわち、最適な制御パラメータａｉ、ｂｊ）を選択することが可能となる。
【００４９】
図５は本発明の第１の実施形態の機械学習装置２００を示すブロック図である。
上述した強化学習を行うために、図５に示すように、機械学習装置２００は、状態情報取得部２０１、学習部２０２、行動情報出力部２０３、価値関数記憶部２０４、及び最適化行動情報出力部２０５を備える。学習部２０２は報酬出力部２０２１、価値関数更新部２０２２、及び行動情報生成部２０２３を備える。
【００５０】
状態情報取得部２０１は、ＣＮＣ装置１００における制御パラメータａｉ、ｂｊに基づいて、予め設定された評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む、フィードバック情報となる状態情報ｓを、後述の調整装置３００を介してＣＮＣ装置１００から取得する。この状態情報ｓは、Ｑ学習における、環境状態ｓに相当する。
状態情報取得部２０１は、取得した状態情報ｓを学習部２０２に対して出力する。
なお、最初にＱ学習を開始する時点での制御パラメータａｉ、ｂｊは、予めユーザの指定により後述の調整装置３００が生成する。本実施形態では、後述の調整装置３００が作成した制御パラメータａｉ、ｂｊの初期設定値を、強化学習により最適なものに調整する。制御パラメータａｉ、ｂｊは例えば、初期設定値として、ａ０＝１、ａ１＝０、ｂ０＝０、ｂ１＝制御対象のイナーシャ値とする。また、係数ａｉ、ｂｊの次元ｍ、ｎを予め設定する。
すなわち、ａｉについては０≦ｉ≦ｍ  ｂｊについては０≦ｊ≦ｎとする。
【００５１】
学習部２０２は、或る環境状態ｓの下で、ある行動ａを選択する場合の価値Ｑ（ｓ，ａ）を学習する部分である。具体的には、学習部２０２は、報酬出力部２０２１、価値関数更新部２０２２及び行動情報生成部２０２３を備える。
【００５２】
報酬出力部２０２１は、或る状態ｓの下で、行動ａを選択した場合の報酬ｒを前述したとおり、算出する。
【００５３】
価値関数更新部２０２２は、状態ｓと、行動ａと、行動ａを状態ｓに適用した場合の状態ｓ´と、上記のようにして算出された報酬の値ｒと、に基づいてＱ学習を行うことにより、価値関数記憶部２０４が記憶する価値関数Ｑを更新する。
なお、価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。オンライン学習、バッチ学習、ミニバッチ学習のいずれかの選択は調整装置３００が行うことができる。
オンライン学習とは、或る行動ａを現在の状態ｓに適用することにより、状態ｓが新たな状態ｓ´に遷移する都度、即座に価値関数Ｑの更新を行うという学習方法である。また、バッチ学習とは、或る行動ａを現在の状態ｓに適用することにより、状態ｓが新たな状態ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行うという学習方法である。
【００５４】
行動情報生成部２０２３は、現在の状態ｓに対して、Ｑ学習の過程における行動ａを選択する。行動情報生成部２０２３は、Ｑ学習の過程において、制御パラメータａｉ、ｂｊを修正する動作（Ｑ学習における行動ａに相当）を行わせるために、行動情報ａを生成して、生成した行動情報ａを行動情報出力部２０３に対して出力する。より具体的には、行動情報生成部２０２３は、例えば、状態ｓに含まれる制御パラメータａｉ、ｂｊに対してインクレメンタル（例えば０．０１程度）に加算又は減算させる行動情報ａを行動情報出力部２０３に対して出力する。この行動情報ａはパラメータ修正情報となる。
【００５５】
行動情報生成部２０２３は、制御パラメータａｉ、ｂｊの増加又は減少を適用して、状態ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動ａ´としては、制御パラメータａｉ、ｂｊに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動ａ´を選択する方策を取るようにしてもよい。
【００５６】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部２０２３は、次の行動ａ´としては、例えば、制御パラメータａｉ、ｂｊに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動ａ´を選択する方策を取るようにしてもよい。
【００５７】
行動情報出力部２０３は、学習部２０２から出力される行動情報ａとなるパラメータ修正情報をＣＮＣ装置１００に対して、後述の調整装置３００を介して送信する部分である。ＣＮＣ装置１００は上述したように、この行動情報に基づいて、現在の状態ｓ、すなわち現在設定されている制御パラメータａｉ、ｂｊを微修正することで、次の状態ｓ´（すなわち修正された制御パラメータａｉ、ｂｊ）に遷移する。
【００５８】
価値関数記憶部２０４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態ｓ、行動ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部２０４に記憶された価値関数Ｑは、価値関数更新部２０２２により更新される。
この最適化行動情報には、行動情報出力部２０３がＱ学習の過程において出力する行動情報と同様に、制御パラメータａｉ、ｂｊを修正する情報が含まれる。この制御パラメータａｉ、ｂｊを修正する情報が、機械学習により得られたパラメータ設定情報となる。
【００５９】
ＣＮＣ装置１００では、パラメータ修正情報に基づいて制御パラメータａｉ、ｂｊが修正され、速度フィードフォワードを高次のものとして、位置偏差の値を低減するように動作することができる。
以上のように、本発明に係る機械学習装置２００を利用することで、ＣＮＣ装置１００の速度フィードフォワード計算部１０２１の制御パラメータ調整を簡易化することができる。
【００６０】
＜調整装置３００＞
次に、第１の実施形態における調整装置３００について説明する。
図６は調整装置３００の一構成例を示すブロック図である。調整装置３００は、フィードバック情報送信部３０１、パラメータ設定情報取得部３０２、パラメータ修正情報取得部３０３、起動指示出力部３０４、評価用プログラム記憶部３０５、評価用プログラム出力部３０６、評価用プログラム実行指示出力部３０７、フィードバック情報取得部３０８、パラメータ設定情報送信部３０９、パラメータ修正情報送信部３１０、パラメータ初期設定送信部３１１、及び制御部３１２を備えている。制御部３１２は各構成部の動作を制御する。
【００６１】
フィードバック情報送信部３０１、パラメータ設定情報取得部３０２、パラメータ修正情報取得部３０３、起動指示出力部３０４は機械学習装置２００との間の送受信インターフェースのために設けられた構成部である。また、評価用プログラム記憶部３０５、評価用プログラム出力部３０６、評価用プログラム実行指示出力部３０７、フィードバック情報取得部３０８、パラメータ設定情報送信部３０９、パラメータ修正情報送信部３１０、及びパラメータ初期設定送信部３１１はＣＮＣ装置１００との間の送受信インターフェースのために設けられた構成部である。制御部３１２は評価用プログラム記憶部３０５への評価用プログラムへの記憶、記憶された評価用プログラムの修正等を行う。
【００６２】
以下、図７Ａ、図７Ｂ及び図７Ｃを用いて調整装置３００の動作を中心とした調整システムの動作を説明する。
図７Ａは調整システムの起動動作のフローを示す図である。
調整装置３００の制御部３１２は、まずステップＳ４１において、パラメータ初期設定送信部３１１を介して、ＣＮＣ装置１００に制御パラメータ初期設定を指示する。具体的には、調整装置３００の制御部３１２は、速度フィードフォワード計算部１０２１に対して、係数ａｉ、ｂｊを、例えば、初期設定値として、数式１のａ０＝１、ａ１＝０、ｂ０＝０、ｂ１＝制御対象のイナーシャ値とし、係数ａｉ、ｂｊの次元ｍ、ｎを設定するように指示する。ＣＮＣ装置１００はステップＳ６１において、調整装置３００からの指示に基づいて、速度フィードフォワード計算部１０２１の係数ａｉ、ｂｊの値と次元を設定する。
【００６３】
次に、調整装置３００の制御部３１２は、ステップＳ４２において、評価用プログラム出力部３０６を介して、ＣＮＣ装置１００に対して評価用プログラムを送信する。具体的には、制御部３１２が評価用プログラム出力部３０６に対して評価用プログラムの送信を指示し、評価用プログラム出力部３０６が評価用プログラム記憶部３０５から評価用プログラムを読み出して、評価用プログラムをＣＮＣ装置１００に送信する。ＣＮＣ装置１００の数値制御情報処理部１０１１はステップＳ６２において、記憶部１０１２に評価用プログラムを保存する。
【００６４】
次に、調整装置３００の制御部３１２は、ステップＳ４３において、起動指示出力部３０４を介して、機械学習装置２００に対して起動指示を行う。機械学習装置２００はステップＳ３１において、調整装置３００から起動指示を受信して、装置を起動させ、その後スタンバイ状態とする。
次に、図７Ｂを用いて調整システム１０の学習動作について説明する。
図７Ｂは調整システム１０の学習動作を説明するフローチャートである。
調整装置３００の制御部３１２は、ステップＳ４４において、評価用プログラム実行指示出力部３０７を介して、ＣＮＣ装置１００の数値制御情報処理部１０１１に対して評価用プログラムの実行を指示する。
【００６５】
調整装置３００からの実行指示を受けた後、ＣＮＣ装置１００の数値制御情報処理部１０１１は、ステップＳ６３において、記憶部１０１２から評価用プログラムを読み出し、評価用プログラムに基づき位置指令値を作成する。ＣＮＣ装置１００はサーボモータ６００を制御し、ステップＳ６４において、速度フィードフォワード計算部１０２１の伝達関数の各係数ａｉ、ｂｊ(ｉ，ｊ≧０)の値、並びに評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む、フィードバック情報を調整装置３００に送信する。このフィードバック情報は状態情報ｓとなる。
調整装置３００の制御部３１２は、ステップＳ４５で、フィードバック情報をフィードバック情報取得部３０８を介して取得し、フィードバック情報送信部３０１を介して機械学習装置２００に送信する。機械学習装置２００はステップＳ３２でフィードバック情報を受信する。
【００６６】
ＣＮＣ装置１００はステップＳ６５で評価用プログラムによる一連の加工が終了したかどうかを判断する。ここで、評価用プログラムによる一連の加工が終了した状態とは、例えば、加工形状を円、四角、及び角Ｒ付き四角とする評価用プログラムが終了した状態をいう。評価用プログラムによる一連の加工が終了していなければ（ステップＳ６５のＮＯ）、ステップＳ６３に戻る。評価用プログラムによる一連の加工が終了していれば（ステップＳ６５のＹＥＳ）、調整装置３００に対して、評価用プログラムによる一連の加工が終了したことを通知する。
調整装置３００の制御部３１２は、評価用プログラムによる一連の加工の終了通知を受けると、評価用プログラムの終了通知を受けた回数を記録、更新する。そして、調整装置３００の制御部３１２は、ステップＳ４６において、その回数が所定の回数を超えたか、あるいは所定の学習期間を過ぎたかを判断し、機械学習を終了させるか否かの判断を行う。機械学習を終了させない場合には（ステップＳ４６のＮＯ）、ステップＳ４７に移行する。機械学習を終了させる場合には（ステップＳ４６のＹＥＳ）、ステップＳ４９に移行する。
調整装置３００は、ステップＳ４７において、機械学習装置２００に対して、報酬計算、価値関数更新を指示する。
【００６７】
機械学習装置２００は、ステップＳ３３で報酬計算、価値関数更新の指示を受信すると、ステップＳ３４において、ＣＮＣ装置１００から受信した制御パラメータ、すなわち、速度フィードフォワード計算部１０２１の伝達関数の各係数ａｉ、ｂｊ(ｉ，ｊ≧０)の値（制御パラメータの値）が初期設定値であるか否かを判断する。言い換えると、制御パラメータが初期設定値（状態情報）s０の集合であるか、制御パラメータが初期設定値（状態情報）s０以降の状態情報sの集合であるかを判断する。そして、制御パラメータが初期設定値（状態情報）s０の集合でなく、制御パラメータが初期設定値（状態情報）s０以降の状態情報sの集合である場合には（ステップＳ３４のＮＯ）、ステップＳ３５に移行する。制御パラメータの値が初期設定値である場合には（ステップＳ３４のＹＥＳ）、ステップＳ３６に移行する。
【００６８】
機械学習装置２００は、ステップＳ３５において、報酬を計算し、価値関数を更新し、その後、ステップＳ３６に移行する。
機械学習装置２００は、ステップＳ３６において、制御パラメータ修正情報を生成して、制御パラメータ修正情報を調整装置３００に送信する。ここで、制御パラメータ修正情報とは、例えば、状態ｓに含まれる速度フィードフォワード計算部の各係数に対して行動ａに含まれる、速度フィードフォワード計算部の各係数ａｉ、ｂｊをインクレメンタル（例えば０．０１程度）に加算又は減算させる情報である。
【００６９】
調整装置３００は、ステップＳ４８において、機械学習装置２００から受信した制御パラメータ修正情報を、ＣＮＣ装置１００の速度フィードフォワード計算部１０２１に送信する。
【００７０】
速度フィードフォワード計算部１０２１は、ステップＳ６６において、制御パラメータ修正情報を受けると、係数ａｉ、ｂｊを修正し、ステップＳ６３に戻る。
こうすることで、ＣＮＣ装置は、修正後の制御パラメータａｉ、ｂｊに基づいて、評価用プログラムによる一連の加工を繰り返す。
【００７１】
次に、調整システム１０の制御パラメータ設定情報出力動作を説明する。図７Ｃは調整システム１０の制御パラメータ設定情報出力動作を説明するフローチャートである。制御パラメータ設定情報出力動作はステップＳ４６において、機械学習を終了させる判断をした後の動作である。制御パラメータ設定情報は最適化行動情報となる。
図７Ｃに示すように、調整装置３００の制御部３１２は、ステップＳ４９において、機械学習装置２００に対して、制御パラメータ設定情報の出力指示を送信する。
機械学習装置２００は、ステップＳ３７において、最適化行動情報となる制御パラメータ設定情報の出力指示を受信すると、最後の機械学習に対応する報酬を計算し、価値関数を更新する。
機械学習装置２００（最適化行動情報出力部２０５）は、ステップＳ３８において、価値関数記憶部２０４に記憶している価値関数Ｑを取得し、取得した価値関数Ｑに基づいて、例えば、初期状態ｓ０に対して最適化行動情報となる制御パラメータ設定情報を生成し、生成した制御パラメータ設定情報を調整装置３００に対して出力する。
調整装置３００は、ステップＳ５０において、制御パラメータ設定情報を取得すると、ＣＮＣ装置１００に対して出力する。
ＣＮＣ装置１００は、ステップＳ６７において、調整装置３００から受信した制御パラメータ設定情報に基づいて速度フィードフォワード計算部１０２１の係数ａｉ、ｂｊを最適な値に設定する。
調整装置３００は、ステップＳ５１において、学習終了指示をＣＮＣ装置１００及び機械学習装置２００に対して送信し、学習を終了する。ＣＮＣ装置１００及び機械学習装置２００は調整装置３００から学習終了指示を受けると、学習を終了する。
【００７２】
以上、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００の動作を処理フローに基づいて説明したが、上記の処理フローは一例であって、これに限定されない。
これらの機能を実現するために、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００のそれぞれは、ＣＰＵ（Central Processing Unit）等の演算処理装置を備える。また、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００のそれぞれは、アプリケーションソフトウェアやＯＳ（Operating System）等の各種の制御用プログラムを格納したＨＤＤ（Hard Disk Drive）等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのＲＡＭ（Random Access Memory）といった主記憶装置も備える。
【００７３】
そして、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００のそれぞれにおいて、演算処理装置が補助記憶装置からアプリケーションソフトウェアやＯＳを読み込み、読み込んだアプリケーションソフトウェアやＯＳを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやＯＳに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【００７４】
機械学習装置２００については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにＧＰＵ（Graphics Processing Units）を搭載し、ＧＰＧＰＵ（General-Purpose computing on Graphics Processing Units）と呼ばれる技術により、ＧＰＵを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなＧＰＵを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【００７５】
以上説明した第１の実施形態は種々の変形例が可能である。
例えば、ＣＮＣ装置１００の速度フィードフォワード計算部１０２１において、制御パラメータを予め初期設定しておいてもよい。この場合には図６のパラメータ初期設定送信部３１１、及び図７Ａの調整装置３００のステップＳ４１とＣＮＣ装置１００のステップＳ６１は設けなくてよい。
【００７６】
また、ＣＮＣ装置１００は、評価用プログラムを予め評価用プログラムを記憶部１０１２に記憶しておいてもよい。この場合は、調整装置３００の評価用プログラム記憶部３０５と評価用プログラム出力部３０６、及び図７Ａの調整装置３００のステップＳ４２とＣＮＣ装置１００のステップＳ６２は設けなくともよい。
【００７７】
また、評価用プログラム実行指示出力部３０７、及び図７Ａの調整装置３００のステップＳ４４に換えて、ＣＮＣ装置１００は、ステップＳ６３において、オペレータの指示にしたがって、評価用プログラムの実行を行うようにしてもよい。
【００７８】
さらに、調整装置３００を介さずにＣＮＣ装置１００と機械学習装置２００との間で信号の送受信を直接行うようにしてもよい。この場合、調整装置３００のフィードバック情報取得部３０８とフィードバック情報送信部３０１、図７Ｂに記載のステップＳ４５における調整装置３００によるフィードバック情報の受信と送信は設けなくともよい。
【００７９】
同様に、調整装置３００の図７Ｂに記載のステップＳ４６における、調整装置３００による評価用プログラムによる一連の加工の終了通知の受信と、報酬計算、価値関数の更新指示の送信は行わなくともよい。
【００８０】
（第２の実施形態）
図８は本発明の第２の実施形態の調整システムを示すブロック図である。本実施形態のＣＮＣ装置及び機械学習装置は図２、図３、及び図５に示したＣＮＣ装置１００及び機械学習装置２００と同一構成なので同一番号を付して説明を省略する。本実施形態の調整システム１１は調整装置３２０が機械学習装置２００を含んでいる。調整装置３２０の構成は機械学習装置２００を除くと図６に示した調整装置３００と同じである。調整装置３２０とＣＮＣ装置１００とが、接続インターフェースを介して直接に接続、又はネットワークを介して接続されており、相互に通信を行うことが可能である。ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００８１】
（第３の実施形態）
図９は本発明の第３の実施形態の調整システムを示すブロック図である。本実施形態のＣＮＣ装置及び調整装置は図２、図３、及び図６に示したＣＮＣ装置１００及び調整装置３００と同一構成なので同一番号を付して説明を省略する。本実施形態の調整システム１２は機械学習装置２１０が調整装置３００を含んでいる。機械学習装置２１０の構成は調整装置３００を除くと図５に示した機械学習装置２００と同じである。ＣＮＣ装置１００と機械学習装置２１０とが、接続インターフェースを介して直接に接続、又はネットワークを介して接続されており、相互に通信を行うことが可能である。ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【００８２】
（第４の実施形態）
図１０は本発明の第４の実施形態の調整システムを示すブロック図である。本実施形態の機械学習装置及び調整装置は図２、図５、及び図６に示した機械学習装置２００及び調整装置３００と同一構成なので同一番号を付して説明を省略する。本実施形態の調整システム１３はＣＮＣ装置１１０が機械学習装置２００を含んでいる。ＣＮＣ装置１１０の構成は機械学習装置２００を除くと図３に示したＣＮＣ装置１００と同じである。ＣＮＣ装置１１０と調整装置３００とが、接続インターフェースを介して直接に接続、又はネットワークを介して接続されており、相互に通信を行うことが可能である。
【００８３】
（第５の実施形態）
図１１は本発明の第５の実施形態のＣＮＣ装置を示すブロック図である。本実施形態のＣＮＣ装置１２０は調整装置３３０を含み、さらに調整装置３３０が機械学習装置２００を含んでいる。ＣＮＣ装置１２０の構成は、機械学習装置２３０を含む調整装置３３０を除くと図３に示したＣＮＣ装置１００と同じであり、ＣＮＣ装置１００と同一の構成の制御部を備えている。本実施形態ではＣＮＣ装置１２０のオペーレーションシステム上で、機械学習装置２００の機能を含む調整装置３３０の機能を実行するアプリケーションソフトを実行することができる。
【００８４】
（第６の実施形態）
図１２は本発明の第６の実施形態のＣＮＣ装置を示すブロック図である。本実施形態のＣＮＣ装置１３０は機械学習装置２２０を含み、さらに機械学習装置２２０が調整装置３００を含んでいる。ＣＮＣ装置１３０の構成は、調整装置３００を含む機械学習装置２２０を除くと図３に示したＣＮＣ装置１００と同じであり、ＣＮＣ装置１００と同一の構成の制御部を備えている。本実施形態ではＣＮＣ装置１３０のオペーレーションシステム上で、調整装置３００を含む機械学習装置２２０の機能を実行するアプリケーションソフトを実行することができる。
【００８５】
上記のＣＮＣ装置１００〜１３０、機械学習装置２００〜２２０、及び調整装置３００、３２０及び３３０に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【００８６】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８７】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【００８８】
例えば、本実施形態のＣＮＣ装置の構成は図３に示した構成に限定されない。
図１３は本実施形態のＣＮＣ装置の他の構成例を示すブロック図である。図１３に示すＣＮＣ装置１００Ａと図３に示すＣＮＣ装置１００との違いは、図１３に示すＣＮＣ装置１００Ａが減算器１０２２、電流制御部１０２３、加算器１０２４、及び電流フィードフォワード計算部１０２５をさらに含み、電流フィードバックを行う構成としている点である。
【００８９】
また、上述した各実施形態の機械学習装置２００、２１０、２２０は、評価用プログラムをＣＮＣ装置１００に実行させることにより、位置偏差と、速度フィードフォワード計算部１０２１の伝達関数の係数の組み合わせと、を含む状態情報をフィードバック情報として取得し、状態情報に含まれる係数の組み合わせの調整情報を含む行動情報をＣＮＣ装置１００の速度フィードフォワード計算部１０２１に出力することで強化学習を行う例であった。
速度フィードフォワード計算部１０２１における機械学習に限定されない。例えば、速度フィードフォワード計算部１０２１に加えて、又は速度フィードフォワード計算部１０２１に換えて、位置フィードフォワード計算部１０２０及び／又は電流フィードフォワード計算部１０２５の伝達関数の係数（制御パラメータ）について機械学習（強化学習）を行ってもよい。
【００９０】
また、第１の実施形態においては、機械学習装置が強化学習を行うためのフィードバック情報は、位置偏差と、速度フィードフォワード計算部１０２１の伝達関数の係数の組み合わせであったが、フィードバック情報は位置偏差に限定されず、位置偏差に加えて位置指令及び位置フィードバック（位置検出値）のうちの少なくとも１つを含んでもよい。さらに、速度指令、速度フィードバック、速度偏差、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも１つを加えてもよい。位置指令は数値制御情報処理部１０１１の出力、位置フィードバックは積分器１０１９の出力がそれぞれ対応する。速度指令は加算器１０１５の出力、速度フィードバック（速度検出値）はサーボモータ６００に関連付けられたロータリーエンコーダの出力、速度偏差は減算器１０１６の出力がそれぞれ対応する。電流指令は加算器１０１８の出力、電流フィードバックはサーボモータ６００に流す電流の検出値、電流偏差は減算器１０２２の出力がそれぞれ対応する。
また、上述した各実施形態の機械学習装置２００、２１０、２２０は強化学習に関する例について説明したが、その他の手法、例えば、「教師あり学習」、「教師なし学習」に本発明を適用してもよい。
【００９１】
さらに、フィードバック情報は、機械学習を行う対象、機械学習の手法によって適宜選択することができる。
【００９２】
＜システム構成の自由度＞
上述した図１及び２に示した実施形態では、ＣＮＣ装置１００と機械学習装置２００とが１対１の組として通信可能に接続されているが、例えば１台の機械学習装置２００が複数のＣＮＣ装置１００とネットワーク４００を介して通信可能に接続され、各ＣＮＣ装置１００の機械学習を実施するようにしてもよい。
その際、機械学習装置２００の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置２００の各機能を実現してもよい。
【００９３】
また、複数の同じ型名、同一仕様、又は同一シリーズのＣＮＣ装置１００−１〜１００−ｎとそれぞれ対応する複数の機械学習装置２００−１〜２００−ｎがあった場合に、各機械学習装置２００−１〜２００−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
また、図８及び図１０に示す第２及び第４の実施形態では、１台の調整装置が１台のＣＮＣ装置に対して設けられているが、１台の調整装置が複数台のＣＮＣ装置に対して設けられてもよい。さらに、図９に示す第３の実施形態では、１台の機械学習装置が１台のＣＮＣ装置に対して設けられているが、１台の調整装置が複数台のＣＮＣ装置に対して設けられてもよい。
【符号の説明】
【００９４】
１０−１３  調整システム
１００、１１０、１２０、１３０  ＣＮＣ装置
２００、２１０  機械学習装置
３００、３１０、  調整装置
３０１  フィードバック情報送信部
３０２  パラメータ設定情報取得部
３０３  パラメータ修正情報取得部
３０４  起動指示出力部
３０５  評価用プログラム記憶部
３０６  評価用プログラム出力部
３０７  評価用プログラム実行指示出力部
３０８  フィードバック情報取得部
３０９  パラメータ設定情報送信部
３１０  パラメータ修正情報送信部
３１１  パラメータ初期設定送信部
３１２  制御部
【図１】
2018180764.tif 000005
【図２】
2018180764.tif 000006
【図３】
2018180764.tif 000007
【図４Ａ】
2018180764.tif 000008
【図４Ｂ】
2018180764.tif 000009
【図４Ｃ】
2018180764.tif 000010
【図４Ｄ】
2018180764.tif 000011
【図５】
2018180764.tif 000012
【図６】
2018180764.tif 000013
【図７Ａ】
2018180764.tif 000014
【図７Ｂ】
2018180764.tif 000015
【図７Ｃ】
2018180764.tif 000016
【図８】
2018180764.tif 000017
【図９】
2018180764.tif 000018
【図１０】
2018180764.tif 000019
【図１１】
2018180764.tif 000020
【図１２】
2018180764.tif 000021
【図１３】
2018180764.tif 000022