(57)【要約】【課題】加工プログラム等とは別に機械学習のための評価用プログラムを用いる場合に、計算負荷や学習時間といった点で低コストな機械学習を、適切に制御する調整装置及び調整方法を提供する。【解決手段】本発明は、制御装置１００で複数種類の学習要素を含む評価用プログラムを実行することで得られるフィードバック情報を、制御装置１００から取得するフィードバック情報取得部３０８と、フィードバック情報が、複数種類の学習要素のうちいずれの学習要素に対応するのか判定する判定部３１２２と、取得したフィードバック情報を、学習要素に対応する機械学習部２１０に送信するフィードバック情報送信部３０１と、フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を取得するパラメータ設定情報取得部３０２と、制御パラメータ設定情報を制御装置１００に送信するパラメータ設定情報送信部３０９とを備える。【選択図】図１
2019185539.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２軸以上を駆動するモータを制御する制御装置と、前記制御装置に対して機械学習を行う機械学習部を複数有する機械学習装置とを制御する調整装置であって、
前記機械学習部を起動させる起動指示を出力する起動指示出力部と、
前記制御装置で複数種類の学習要素を含む評価用プログラムを実行することで得られるフィードバック情報を、前記制御装置から取得するフィードバック情報取得部と、
取得した前記フィードバック情報が、複数種類の前記学習要素のうちいずれの学習要素に対応するのか判定する判定部と、
取得した前記フィードバック情報を、前記学習要素に対応する前記機械学習部に送信するフィードバック情報送信部と、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を、前記機械学習部から取得するパラメータ設定情報取得部と、
取得した前記制御パラメータ設定情報を前記制御装置に送信するパラメータ設定情報送信部と、を備えた調整装置。
【請求項２】
前記評価用プログラムを記憶する記憶部と、前記評価用プログラムを前記制御装置に出力する評価用プログラム出力部とを備えた請求項１に記載の調整装置。
【請求項３】
前記評価用プログラムを実行させる実行指示を前記制御装置に送る評価用プログラム実行指示出力部を備えた請求項１又は２に記載の調整装置。
【請求項４】
前記モータで２軸以上を駆動したときに、前記フィードバック情報取得部は前記制御装置から前記フィードバック情報を取得して、前記フィードバック情報に対応する前記機械学習部に送る請求項１から３のいずれか１項に記載の調整装置。
【請求項５】
前記フィードバック情報は、位置指令、位置フィードバック、及び位置偏差のうちの少なくとも１つを含む請求項１から４のいずれか１項に記載の調整装置。
【請求項６】
前記フィードバック情報は、更に、速度指令、速度フィードバック、及び速度偏差のうちの少なくとも１つを含む請求項５に記載の調整装置。
【請求項７】
前記フィードバック情報は、更に、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも１つを含む請求項５又は６に記載の調整装置。
【請求項８】
前記フィードバック情報は、更に、バックラッシ補正を含む請求項５〜７のいずれか１項に記載の調整装置。
【請求項９】
前記機械学習は強化学習であって、
前記フィードバック情報取得部は前記制御装置から状態情報として前記フィードバック情報を取得し、
前記機械学習部から得られた制御パラメータ修正情報を行動情報として前記制御装置に送るパラメータ修正情報送信部を備えた請求項１から８のいずれか１項に記載の調整装置。
【請求項１０】
前記制御装置は位置フィードフォワード計算部、速度フィードフォワード計算部、電流フィードフォワード計算部、バックラッシ補正部を複数備え、複数備わる前記位置フィードフォワード計算部、前記速度フィードフォワード計算部、前記電流フィードフォワード計算部、前記バックラッシ補正部のうちの少なくとも１つは、自身に対応する前記機械学習部から取得された前記制御パラメータ設定情報により制御パラメータの設定、または更新がされる請求項１から９のいずれか１項に記載の調整装置。
【請求項１１】
前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１２】
前記機械学習装置に含まれている請求項１から１０のいずれか１項に記載の調整装置。
【請求項１３】
前記制御装置は、前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１４】
前記制御装置に含まれ且つ前記機械学習装置を含んでいる請求項１から１０のいずれか１項に記載の調整装置。
【請求項１５】
前記調整装置は前記機械学習装置に含まれ、該機械学習装置は前記制御装置に含まれている請求項１から１０のいずれか１項に記載の調整装置。
【請求項１６】
少なくとも２軸以上を駆動するモータを制御する制御装置と、前記制御装置に対して機械学習を行う機械学習部を複数有する機械学習装置とを制御する調整装置の調整方法であって、
前記機械学習部を起動させ、
前記制御装置で複数種類の学習要素を含む評価用プログラムを実行することで得られるフィードバック情報を前記制御装置から取得し、
取得した前記フィードバック情報が、複数種類の前記学習要素のうちいずれの学習要素に対応するのか判定し、
取得した前記フィードバック情報を、前記学習要素に対応する前記機械学習部に送信し、
前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習部から取得し、
取得した前記制御パラメータ設定情報を前記制御装置に送信する調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２軸以上を駆動するモータを制御する制御装置と制御装置に対して機械学習を行う機械学習装置とを制御する調整装置及びその調整方法に関する。
【背景技術】
【０００２】
従来、工作機械、ロボット、及び産業機械といった駆動部を有する装置の動作特性を、機械学習によって学習することが行われている。機械学習の学習結果に基づいた制御を行うことにより、これら装置をより適切に制御することが可能となる。
特許文献１には、円弧、多角形、又はそれらの組み合わせからなる加工形状を加工する制御システムにおいて、サンプリング周期毎に検出されたサーボモータの位置フィードバックと、位置指令との偏差等に基づいて学習制御を行う技術が提示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−５８８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の機械学習においては、例えば、円弧、多角形等の複数の特徴的な加工要素（以下、「学習要素」ともいう）を含むワークを加工するための評価用の加工プログラム（以下「評価用プログラム」ともいう）を用いて、１つの学習モデルの機械学習を行うことがなされていた。
しかしながら、複数の特徴的な加工要素を１つの学習モデルに基づいて学習すると、例えば、パラメータ数が増加する等により、学習モデルが複雑になると共に、多くの計算負荷、多くの学習時間、多くのメモリが必要となった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、予め設定される特徴的な加工要素に対応する学習要素毎に学習する機械学習部を備える機械学習装置に対して、複数の特徴的な加工要素を含むワークを加工するための１つの評価用プログラムを動作させて学習する場合に、学習動作の間に、学習要素に応じて対応する機械学習部に基づいて学習することができるように、機械学習部を切り替えて学習するように制御する調整装置及びその調整方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）  本発明に係る調整装置（例えば、後述の「調整装置３００」）は、少なくとも２軸以上を駆動するモータを制御する制御装置（例えば、後述の「ＣＮＣ装置１００」）と、前記制御装置に対して機械学習を行う機械学習部（例えば、後述の「機械学習部２１０」）を複数有する機械学習装置（例えば、後述の「機械学習装置２００」）とを制御する調整装置であって、前記機械学習部を起動させる起動指示を出力する起動指示出力部（例えば、後述の「起動指示出力部３０４」）と、前記制御装置で複数の学習要素を含む評価用プログラムを実行することで得られるフィードバック情報を前記制御装置から取得するフィードバック情報取得部（例えば、後述の「フィードバック情報取得部３０８」）と、取得した前記フィードバック情報が、複数種類の前記学習要素のうちいずれの学習要素に対応するのか判定する判定部（例えば、後述の「判定部３１２２」）と、取得した前記フィードバック情報を、前記学習要素に対応する前記機械学習部に送信するフィードバック情報送信部（例えば、後述の「フィードバック情報送信部３０１」）と、前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を、前記機械学習部から取得するパラメータ設定情報取得部（例えば、後述の「パラメータ設定情報取得部３０２」）と、取得した前記制御パラメータ設定情報を前記制御装置のフィードバック情報取得元に送信するパラメータ設定情報送信部（例えば、後述の「パラメータ設定情報送信部３０９」）と、を備える。
【０００７】
（２）  （１）に記載の調整装置は、前記評価用プログラムを記憶する記憶部（例えば、後述の「評価用プログラム記憶部３０５」）と、前記評価用プログラムを前記制御装置に出力する評価用プログラム出力部（例えば、後述の「評価用プログラム出力部３０６」）とを備えてもよい。
【０００８】
（３）  （１）又は（２）に記載の調整装置は、前記評価用プログラムを実行させる実行指示を前記制御装置に送る評価用プログラム実行指示出力部（例えば、後述の「評価用プログラム実行指示出力部３０７」）を備えてもよい。
【０００９】
（４）  （１）〜（３）に記載の調整装置において、前記モータで２軸以上を駆動したときに、前記フィードバック情報取得部は前記制御装置から前記フィードバック情報を取得して、前記フィードバック情報に対応する前記機械学習部に送ってもよい。
【００１０】
（５）  （１）〜（４）に記載の調整装置において、前記フィードバック情報は、位置指令、位置フィードバック、及び位置偏差のうちの少なくとも１つを含んでもよい。
【００１１】
（６）  （５）に記載の調整装置において、前記フィードバック情報は、更に、速度指令、速度フィードバック、及び速度偏差のうちの少なくとも１つを含んでもよい。
【００１２】
（７）  （５）又は（６）に記載の調整装置において、前記フィードバック情報は、更に、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも１つを含んでもよい。
【００１３】
（８）  （５）〜（７）に記載の調整装置において、前記フィードバック情報は、更に、バックラッシ補正を含んでもよい。
【００１４】
（９）  （１）〜（８）に記載の調整装置において、前記機械学習は強化学習であって、前記フィードバック情報取得部は前記制御装置から状態情報として前記フィードバック情報を取得し、前記機械学習部から得られた制御パラメータ修正情報を行動情報として前記制御装置に送るパラメータ修正情報送信部（例えば、後述の「パラメータ修正情報送信部３１０」）を備えてもよい。
【００１５】
（１０）  （１）〜（９）に記載の調整装置において、前記制御装置は位置フィードフォワード計算部、速度フィードフォワード計算部、電流フィードフォワード計算部、バックラッシ補正部を複数備え、複数備わる前記位置フィードフォワード計算部、前記速度フィードフォワード計算部、前記電流フィードフォワード計算部、前記バックラッシ補正部のうちの少なくとも１つは、自身に対応する前記機械学習部から取得された前記制御パラメータ設定情報により制御パラメータの設定、または更新がされてもよい。
【００１６】
（１１）  （１）〜（１０）に記載の調整装置は、前記機械学習装置を含んでもよい。
【００１７】
（１２）  （１）〜（１０）に記載の調整装置は、前記機械学習装置に含まれていてもよい。
【００１８】
（１３）  （１）〜（１０）に記載の調整装置において、前記制御装置は、前記機械学習装置を含んでいてもよい。
【００１９】
（１４）  （１）〜（１０）に記載の調整装置は、前記制御装置に含まれ且つ前記機械学習装置を含んでいてもよい。
【００２０】
（１５）  （１）〜（１０）に記載の調整装置は、前記機械学習装置に含まれ、該機械学習装置は前記制御装置に含まれていてもよい。
【００２１】
（１６）  本発明に係る調整方法は、少なくとも２軸以上を駆動するモータを制御する制御装置と、前記制御装置に対して機械学習を行う機械学習部を複数有する機械学習装置とを制御する調整装置の調整方法であって、前記機械学習部を起動させ、前記制御装置で複数種類の学習要素を含む評価用プログラムを実行することで得られるフィードバック情報を前記制御装置から取得し、取得した前記フィードバック情報が、複数種類の前記学習要素のうちいずれの学習要素に対応するのか判定し、取得した前記フィードバック情報を、前記学習要素に対応する前記機械学習部に送信し、前記フィードバック情報を用いた機械学習により得られた制御パラメータ設定情報を前記機械学習部から取得し、取得した前記制御パラメータ設定情報を前記制御装置に送信する。
【発明の効果】
【００２２】
本発明によれば、特徴的な加工要素に対応する学習要素毎に学習する機械学習部を備える機械学習装置に対して、複数の特徴的な加工要素を含むワークを加工するための１つの評価用プログラムを動作させて学習する場合に、１回の学習動作の間に、各学習要素に応じて対応する機械学習部に基づいて学習することができるように、１回の学習動作の間、特徴的な加工要素に応じて、当該加工要素に対応する機械学習部に切り替えて学習するように制御することで、１つの評価用プログラムを実行する１回の学習動作により、当該評価用プログラムの含む全ての学習要素をそれぞれの学習モデルに基づいて同時に学習することができると共に、学習要素に応じた最適な学習を行うことができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の第１の実施形態の調整システムを示すブロック図である。
【図２】ＣＮＣ装置１００の一構成例を示すブロック図である。
【図３】本発明の第１の実施形態における加工形状の例を示す図である。
【図４】第１の実施形態の機械学習装置２００が備える機械学習部２１０を示すブロック図である。
【図５Ａ】第１の実施形態の調整装置３００の一構成例を示すブロック図である。
【図５Ｂ】第１の実施形態の調整装置３００の一構成例を示すブロック図である。
【図６Ａ】調整システム１０の起動動作を説明するフローチャートである。
【図６Ｂ】調整システム１０の学習動作を説明するフローチャートである。
【図６Ｃ】調整システム１０のパラメータ設定情報出力動作を説明するフローチャートである。
【図７】本発明の変形例における加工要素の例を示す図である。
【図８】本発明の変形例における加工要素の例を示す図である。
【図９】本発明の変形例における加工要素の例を示す図である。
【図１０】本発明の変形例における加工要素の例を示す図である。
【図１１】本発明の変形例における加工要素の例を示す図である。
【図１２】本発明の変形例における加工要素の例を示す図である。
【図１３】本発明の変形例における加工形状の例を示す図である。
【図１４】本発明の変形例におけるＣＮＣ装置１００Ａの一構成例示すブロック図である。
【図１５】本発明の変形例の調整システムを示すブロック図である。
【図１６】本発明の変形例の調整システムを示すブロック図である。
【図１７】本発明の変形例の調整システムを示すブロック図である。
【図１８】本発明の変形例のＣＮＣ装置を示すブロック図である。
【図１９】本発明の変形例のＣＮＣ装置を示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態について図面を用いて詳細に説明する。
（第１の実施形態）
図１は本発明の第１の実施形態の調整システムを示すブロック図である。調整システム１０は、図１に示すように、ＣＮＣ（Computerized Numerical Control)装置１００、機械学習装置２００、及び調整装置３００を備える。ここで、ＣＮＣ装置１００と機械学習装置２００とは１対１の組とされて、調整装置３００を介して通信可能に接続されている。より具体的には、調整装置３００とＣＮＣ装置１００、及び調整装置３００と機械学習装置２００とは、それぞれ接続インターフェースを介して直接に接続、又はそれぞれネットワークを介して接続されており、相互に通信を行うことが可能である。なお、ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続及び無線接続のいずれであるか等については、特に限定されない。
【００２５】
第１の実施形態では、本発明の複数の学習要素として、図３に示すような２つの学習要素を含む評価用プログラムを用いる。
図３に示す加工ワークは、点線Ａ−Ａから左側のＲ付四角と、点線Ａ−Ａから右側の円弧の一部とを組み合わせた形状となっている。
【００２６】
図３に示すように、位置Ｐ１で、テーブルをＸ軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルはＹ軸方向の直線動作から円弧動作に移る。位置Ｐ２で、テーブルをＹ軸方向に移動するサーボモータは、回転から停止に移り、テーブルは円弧動作からＸ軸方向の直線動作に移る。
【００２７】
また、図３に示すように、位置Ｑ１で、テーブルをＸ軸方向に移動するサーボモータは回転方向が反転し、テーブルはＸ軸方向に直線反転するように移動する。
【００２８】
すなわち、図３に示す加工ワークは、Ｐ１〜Ｐ２を含む加工要素（以下、「線形的に回転速度が変更される加工要素」、「第１の加工要素」ともいう）と、Ｑ１を含む加工要素（以下、「非線形的に回転速度が変更される加工要素」、「第２の加工要素」ともいう）との、種類の異なる２つの加工要素を含む。
【００２９】
本実施形態においては、位置Ｐ１及び位置Ｐ２を含む加工要素（第１の加工要素）により、線形的に回転速度が変更されたときの速度指令の最適な補正を行うための第１の学習を行うと共に、位置Ｑ１を含む加工要素（第２の加工要素）により、回転方向が反転する場合に惰走（いわゆる「象限突起」）が発生するときの（象限突起を抑制するための）速度指令の最適な補正を行うための第２の学習を行うものとする。
このため、本実施形態においては、機械学習装置が、各々の加工要素に対応する機械学習部を備え、ＣＮＣ装置が、各々の加工要素に対する補正部を備えると共に、各補正部が、自身に対応する機械学習部の学習により生成された制御パラメータを用いて速度指令に対する補正を行う。これら学習の詳細については、後述する。
【００３０】
次に、制御装置となるＣＮＣ装置１００、機械学習装置２００、及び調整装置３００の各構成について説明する。以下の説明においては、機械学習装置２００がＣＮＣ装置１００の制御パラメータを強化学習する場合を例に取り上げて説明を行うが、これには限定されない。
【００３１】
＜ＣＮＣ装置１００＞
図２はＣＮＣ装置の一構成例を示すブロック図である。説明の便宜上、図２において、調整装置３００及び機械学習装置２００も示している。ここで、ＣＮＣ装置１００は、サーボ制御部を含むものを例示しているが、これに限られない。サーボ制御部を別装置としてもよい。
【００３２】
図２に示すように、ＣＮＣ装置１００は、制御対象５００のサーボモータ６００を制御する。サーボモータ６００は、制御される軸が少なくとも２軸以上ある場合は軸の数分設けられる。本実施形態では評価用プログラムが少なくとも２軸動作させるので、サーボモータの数は少なくとも２つ設けられる。ここではモータとしてサーボモータを示しているが、スピンドルモータ等の他のモータを用いてもよい。制御対象５００は例えばサーボモータ、サーボモータを含む工作機械，ロボット，産業機械等である。ＣＮＣ装置１００は工作機械、ロボット、又は産業機械等の一部として設けられてもよい。以下、制御対象５００がサーボモータを含む工作機械である場合を例にとって説明する。
【００３３】
図２に示すように、ＣＮＣ装置１００は、数値制御情報処理部１０１１、記憶部１０１２、減算器１０１３、位置制御部１０１４、加算器１０１５、減算器１０１６、速度制御部１０１７、加算器１０１８、積分器１０１９、第１補正部１０３１＿１及び第２補正部１０３１＿２を備えている。数値制御情報処理部１０１１と記憶部１０１２を除くＣＮＣ装置１００の各構成部はサーボモータ毎に設けられる。第１補正部１０３１＿１は、線形的に回転速度が変更される加工要素（第１の加工要素）に対応し、第２補正部１０３１＿２は、非線形的に回転速度が変更される加工要素（第２の加工要素）に対応する。
【００３４】
記憶部１０１２は評価用プログラムを記憶しており、この評価用プログラムは、機械学習装置２００による学習時にＣＮＣ装置１００で用いられる加工プログラムである。評価用プログラムは、実際の切削加工等の加工時に用いられる加工プログラムとは別に設けられる。評価用プログラムはワークを加工しつつ評価を行うが、エアーカットの場合も含んで評価を行ってもよい。評価用プログラムは後述の調整装置３００から数値制御情報処理部１０１１に送信され、数値制御情報処理部１０１１は評価用プログラムを記憶部１０１２に記憶する。
【００３５】
数値制御情報処理部１０１１は、後述の調整装置３００からの実行指示に基づいて、記憶部１０１２から評価用プログラムを読み出して、評価用プログラムを実行する。そうすることで、数値制御情報処理部１０１１は、当該評価用プログラム中に含まれるコードに基づいて位置指令値を作成し、減算器１０１３に出力する。数値制御情報処理部１０１１は、評価用プログラムにより指定される加工形状となるように、送り速度を設定して位置指令値を作成する。
【００３６】
減算器１０１３は数値制御情報処理部１０１１から位置指令値を受け、位置指令値と位置フィードバックされた検出位置との差を求め、位置偏差として位置制御部１０１４に出力すると共に後述の調整装置３００に対して送信する。
【００３７】
位置制御部１０１４は、位置偏差にポジションゲインＫｐを乗じた値を、速度指令値として加算器１０１５に出力する。
【００３８】
第１補正部１０３１＿１は、例えば数式１（以下に数１として示す）で示す伝達関数Ｇｆ（ｓ）で示される補正量計算処理を行い、算出した補正量（以下「第１の補正量」ともいう）を加算器１０１５に出力する。第１補正部１０３１＿１は、第１の加工要素に対応する補正部である。したがって、第１補正部１０３１＿１は、第１の加工要素に係る加工時に補正量を算出する。
【数１】
2019185539.tif 000003
第１の実施形態では、伝達関数Ｇｆ（ｓ）の次元を予め設定された値とした場合に、各係数ａ１ｉ、ｂ１ｊ（０≦ｉ，ｊ≦ｎ）を最適なものとするように機械学習する。以下、係数ａ１ｉ、ｂ１ｊをＣＮＣ装置１００の制御パラメータともいう。
なお、第１補正部１０３１＿１は、通常のＣＮＣ装置における位置フィードフォワード計算部に対応する。
【００３９】
第２補正部１０３１＿２は、例えば数式２（以下に数２として示す）で示す、係数のみ異なる同一の伝達関数Ｇｆ（ｓ）で示される補正量計算処理を行い、算出した補正量（以下「第２の補正量」ともいう）を加算器２０１７に出力する。第２補正部１０３１＿２は、第２の加工要素に対応する補正部である。したがって、第２補正部１０３１＿２は、第２の加工要素に係る加工時に補正量を算出する。
【数２】
2019185539.tif 000004
【００４０】
第１補正部１０３１＿１で用いる伝達関数Ｇｆ（ｓ）の係数と同様に、伝達関数Ｇｆ（ｓ）の次元を予め設定された値とした場合に、各係数ａ２ｉ、ｂ２ｊ（０≦ｉ，ｊ≦ｎ）を最適なものとするように機械学習する。以下、係数ａ２ｉ、ｂ２ｊもＣＮＣ装置１００の制御パラメータともいう。
なお、第２補正部１０３１＿２は、通常のＣＮＣ装置におけるバックラッシ補正部に対応する。
【００４１】
加算器１０１５は、速度指令値と第１補正部１０３１＿１又は第２補正部１０３１＿２の出力値とを加算して、補正された速度指令値として減算器１０１６に出力する。減算器１０１６は加算器１０１５の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部１０１７に出力する。
【００４２】
速度制御部１０１７は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令値としてサーボモータ６００に出力する。
【００４３】
制御対象５００のサーボモータ６００の回転角度位置は、サーボモータ６００に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分器１０１９で積分され、位置フィードバックされる位置検出値として利用される。
以上のように、ＣＮＣ装置１００は構成される。
【００４４】
＜機械学習装置２００＞
次に、第１実施形態における機械学習装置２００について説明する。前述したとおり、機械学習装置２００は、２つの機械学習部２１０＿１及び２１０＿２を備え、機械学習部２１０＿１は、［数１］で示す第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｉ（０≦ｉ≦ｎ）を強化学習する。また、機械学習部２１０＿２は、［数２］で示す第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｊ、ｂ２ｊ（０≦ｊ≦ｎ）を強化学習する。すなわち、機械学習部２１０＿１は、ＣＮＣ装置１００が備える第１補正部１０３１＿１に対応し、機械学習部２１０＿２は、第２補正部１０３１＿２に対応する。
【００４５】
機械学習部２１０＿１は、［数１］で示す第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｉの値、並びに評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る制御パラメータａ１ｉ、ｂ１ｉの調整を行動Ａとする、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）を行う。同様に、機械学習部２１０＿２は、［数２］で示す第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｊ、ｂ２ｊの値、並びに評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る制御パラメータａ２ｊ、ｂ２ｊの調整を行動Ａとする、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）を行う。当業者にとって周知のように、Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００４６】
具体的には、エージェント（機械学習装置）は、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００４７】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式３（以下に数３として示す）により表すことができる。
【００４８】
【数３】
2019185539.tif 000005
【００４９】
上記の数式３において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
上述した数式３は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
【００５０】
機械学習部２１０＿１は、［数１］で示す第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊに基づいて、予め設定された評価用プログラムを実行することで得られるＣＮＣ装置１００の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。状態情報はフィードバック情報に対応する。機械学習部２１０＿１は、行動Ａをするたびに報酬ｒが返ってくる。
ここで、報酬ｒを次のように設定する。
行動情報Ａにより状態情報Ｓが状態情報Ｓ´に修正された場合、状態情報Ｓ´に係る修正後の制御パラメータａ１ｉ、ｂ１ｊに基づいて動作したＣＮＣ装置１００の位置偏差の集合から所定の評価関数に基づいて算出される値が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の制御パラメータａ１ｉ、ｂ１ｊに基づいて動作したＣＮＣ装置１００の位置偏差の集合から所定の評価関数に基づいて算出される値よりも大きくなった場合に、報酬の値を負の値とする。
【００５１】
他方、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の制御パラメータａ１ｉ、ｂ１ｊに基づいて動作したＣＮＣ装置１００の位置偏差の集合から所定の評価関数に基づいて算出される値が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の制御パラメータａ１ｉ、ｂ１ｊに基づいて動作したＣＮＣ装置１００の位置偏差の集合から所定の評価関数に基づいて算出される値よりも小さくなった場合に、報酬の値を正の値とする。
ここで、位置偏差の値の集合とは、前述した加工形状の位置Ｐ１と位置Ｐ２を含む所定の範囲内で計測される位置偏差の集合を意味する。また、評価関数としては、例えば、位置偏差の絶対値の積算値を算出する関数、位置偏差の絶対値に時間の重み付けをして積算値を算出する関数、位置偏差の絶対値の２ｎ（ｎは自然数）乗の積算値を算出する関数、位置偏差の絶対値の最大値を算出する関数等が例示されるが、これに限られるものではない。
Ｑ学習では、機械学習部２１０＿１は、例えば、将来にわたっての報酬ｒの合計が最大になる最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習部２１０＿１は、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊに基づいて、予め設定された評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、最適な制御パラメータａ１ｉ、ｂ１ｊ）を選択することが可能となる。
なお、機械学習部２１０＿２については、位置偏差の値の集合を、前述した加工形状の位置Ｑ１を含む所定の範囲内で計測される位置偏差の集合として、読み替えることで説明されるので、詳細な説明は省略する。
【００５２】
図４は本発明の第１の実施形態の機械学習部２１０＿１又は機械学習部２１０＿２に共通の機能ブロックを示すブロック図である。機械学習部２１０＿１及び機械学習部２１０＿２は、それぞれ状態情報取得部２１１＿１、状態情報取得部２１１＿２、学習部２１２＿１、学習部２１２＿２、行動情報出力部２１３＿１、行動情報出力部２１３＿２、価値関数記憶部２１４＿１、価値関数記憶部２１４＿２、及び最適化行動情報出力部２１５＿１、最適化行動情報出力部２１５＿２、を備える。また、学習部２１２＿１、又は学習部２１２＿２は、それぞれ報酬出力部２１２１＿１、報酬出力部２１２１＿２、価値関数更新部２１２２＿１、価値関数更新部２１２２＿２及び行動情報生成部２１２３＿１、行動情報生成部２１２３＿２を備える。
なお、説明の便宜上、機械学習部２１０＿１又は機械学習部２１０＿２を機械学習部２１０として説明する。同様に、状態情報取得部２１１＿１、２１１＿２、学習部２１２＿１、２１２＿２、行動情報出力部２１３＿１、２１３＿２、価値関数記憶部２１４＿１、２１４＿２、及び最適化行動情報出力部２１５＿１、２１５＿２、報酬出力部２１２１＿１、２１２１＿２、価値関数更新部２１２２＿１、２１２２＿２及び行動情報生成部２１２３＿１、２１２３＿２をそれぞれ、状態情報取得部２１１、学習部２１２、行動情報出力部２１３、価値関数記憶部２１４、最適化行動情報出力部２１５、報酬出力部２１２１、価値関数更新部２１２２、及び行動情報生成部２１２３と略する。
上述した強化学習を行うために、図４に示すように、機械学習部２１０は、状態情報取得部２１１、学習部２１２、行動情報出力部２１３、価値関数記憶部２１４、及び最適化行動情報出力部２１５を備える。学習部２１２は報酬出力部２１２１、価値関数更新部２１２２、及び行動情報生成部２１２３を備える。
【００５３】
状態情報取得部２１１は、前述したように、ＣＮＣ装置１００における第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊに基づいて、予め設定された評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む、フィードバック情報となる状態情報Ｓを、後述の調整装置３００を介してＣＮＣ装置１００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部２１１は、取得した状態情報Ｓを学習部２１２に対して出力する。
なお、最初にＱ学習を開始する時点での第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊは、予めユーザの指定により後述の調整装置３００が生成する。本実施形態では、後述の調整装置３００が作成した第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊの初期設定値を、強化学習により最適なものに調整する。制御パラメータａ１ｉ、ｂ１ｊ又は制御パラメータａ２ｉ、ｂ２ｊは例えば、初期設定値として、ａ１，０＝ａ２，０＝１、ａ１，１＝ａ２，１＝０、ｂ１，０＝ｂ２，０＝０、ｂ１，１＝ｂ２，１＝制御対象のイナーシャ値としてもよい。また、係数ａ１ｉ、ｂ１ｊ又はａ２ｉ、ｂ２ｊの次元ｍ、ｎを予め設定してもよい。
例えば、ａ１ｉ及びａ２ｉについては０≦ｉ≦ｍ  ｂ１ｊ及びｂ２ｊについては０≦ｊ≦ｎとする。
【００５４】
学習部２１２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。具体的には、学習部２１２は、報酬出力部２１２１、価値関数更新部２１２２及び行動情報生成部２１２３を備える。
【００５５】
報酬出力部２１２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬ｒを前述したとおり、算出する。
【００５６】
価値関数更新部２１２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値ｒと、に基づいてＱ学習を行うことにより、価値関数記憶部２１４が記憶する価値関数Ｑを更新する。
なお、価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。オンライン学習、バッチ学習、ミニバッチ学習のいずれかの選択は調整装置３００が行うことができる。
オンライン学習とは、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移する都度、即座に価値関数Ｑの更新を行うという学習方法である。また、バッチ学習とは、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行うという学習方法である。
【００５７】
行動情報生成部２１２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部２１２３は、Ｑ学習の過程において、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部２１３に対して出力する。より具体的には、行動情報生成部２１２３は、例えば、状態Ｓに含まれる第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊに対してインクレメンタル（例えば０．０１程度）に加算又は減算させる行動情報Ａを行動情報出力部２１３に対して出力する。この行動情報Ａはパラメータ修正情報となる。
【００５８】
行動情報生成部２１２３は、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００５９】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部２１２３は、次の行動Ａ´としては、例えば、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００６０】
行動情報出力部２１３は、学習部２１２から出力される行動情報Ａとなるパラメータ修正情報をＣＮＣ装置１００に対して、後述の調整装置３００を介して送信する部分である。ＣＮＣ装置１００は上述したように、この行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されている第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊを微修正することで、次の状態Ｓ´（すなわち修正された第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊ）に遷移する。
【００６１】
価値関数記憶部２１４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部２１４に記憶された価値関数Ｑは、価値関数更新部２１２２により更新される。
この最適化行動情報には、行動情報出力部２１３がＱ学習の過程において出力する行動情報と同様に、第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊを修正する情報が含まれる。この第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊを修正する情報が、機械学習により得られたパラメータ設定情報となる。
【００６２】
ＣＮＣ装置１００では、パラメータ修正情報に基づいて第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊが修正され、速度フィードフォワードを高次のものとして、位置偏差の値を低減するように動作することができる。
以上のように、本発明に係る機械学習装置２００は、機械学習部２１０＿１及び機械学習部２１０＿２を備えることで、１回の学習動作により、位置Ｐ１及び位置Ｐ２を含む加工要素（第１の加工要素）において、線形的に回転速度が変更されたときの速度指令の最適な補正を行うための第１の学習を行うと共に、位置Ｑ１を含む加工要素（第２の加工要素）において、回転方向が反転する場合に惰走（いわゆる「象限突起」）が発生するときの（象限突起を抑制するための）速度指令の最適な補正を行うための第２の学習を行うことができる。
【００６３】
＜調整装置３００＞
次に、第１の実施形態における調整装置３００について説明する。
図５Ａ及び図５Ｂは調整装置３００の一構成例を示すブロック図である。調整装置３００は、フィードバック情報送信部３０１、パラメータ設定情報取得部３０２、パラメータ修正情報取得部３０３、起動指示出力部３０４、評価用プログラム記憶部３０５、評価用プログラム出力部３０６、評価用プログラム実行指示出力部３０７、フィードバック情報取得部３０８、パラメータ設定情報送信部３０９、パラメータ修正情報送信部３１０、パラメータ初期設定送信部３１１、及び制御部３１２を備えている。更に、制御部３１２は、学習制御部３１２１と判定部３１２２とを備える。
【００６４】
フィードバック情報送信部３０１、パラメータ設定情報取得部３０２、パラメータ修正情報取得部３０３、起動指示出力部３０４は機械学習装置２００との間の送受信インターフェースのために設けられた構成部である。また、評価用プログラム記憶部３０５、評価用プログラム出力部３０６、評価用プログラム実行指示出力部３０７、フィードバック情報取得部３０８、パラメータ設定情報送信部３０９、パラメータ修正情報送信部３１０、及びパラメータ初期設定送信部３１１はＣＮＣ装置１００との間の送受信インターフェースのために設けられた構成部である。
【００６５】
学習制御部３１２１は評価用プログラム記憶部３０５への評価用プログラムへの記憶、記憶された評価用プログラムの修正等を行う。なお、学習制御部３１２１が、評価用プログラム記憶部３０５に評価用プログラムを記憶する際は、評価用プログラムのブロック番号と共に記憶する。
また、学習制御部３１２１は、評価用プログラム出力部３０６を介して、評価用プログラムをＣＮＣ装置１００に出力する。更に、学習制御部３１２１は、パラメータ初期設定送信部３１１を介して、パラメータの初期設定値をＣＮＣ装置１００に送信する。更に、学習制御部３１２１は、起動指示出力部３０４を介して、機械学習部２１０＿１又は機械学習部２１０＿２に対して起動指示を出力する。
【００６６】
判定部３１２２は、フィードバック情報取得部３０８を介して取得したフィードバック情報が、学習対象外か、機械学習部２１０＿１による学習対象か、機械学習部２１０＿２による学習対象か判定する。具体的には、判定部３１２２は、評価用加工プログラムの動作中の現時点の加工位置情報に基づいて、評価用加工プログラムの動作中の加工位置が前述した加工形状の位置Ｐ１と位置Ｐ２を含む所定の範囲内にある場合、機械学習部２１０＿１による学習対象であると判定し、評価用加工プログラムの動作中の加工位置が前述した加工形状の位置Ｑ１を含む所定の範囲内にある場合、機械学習部２１０＿２による学習対象であると判定し、評価用加工プログラムの動作中の加工位置がこれら以外の位置にある場合、学習対象外であると判定することができる。
なお、加工位置に換えて、評価用プログラムのブロック番号と加工形状の位置Ｐ１と位置Ｐ２を含む所定の範囲又は加工形状の位置Ｑ１を含む所定の範囲との対応関係に基づいて、判定部３１２２は、評価用加工プログラムの動作中の現時点のブロック番号が加工形状の位置Ｐ１と位置Ｐ２を含む所定の範囲に対応する場合、機械学習部２１０＿１による学習対象であると判定し、評価用加工プログラムの動作中の現時点のブロック番号が加工形状の位置Ｑ１を含む所定の範囲に対応する場合、機械学習部２１０＿２による学習対象であると判定し、評価用加工プログラムの動作中のブロック番号がこれら以外の場合、学習対象外であると判定するようにしてもよい。
学習制御部３１２１は、判定部３１２２による判定結果に基づき、対応する機械学習部が機械学習部２１０＿１又は機械学習部２１０＿２かを示す宛先情報を、フィードバック情報と共に、フィードバック情報送信部３０１に送信する。フィードバック情報送信部３０１は、宛先情報に基づいて、フィードバック情報を機械学習部２１０＿１又は機械学習部２１０＿２に送信する。
なお、判定部３１２２が取得したフィードバック情報が学習対象外であった場合には、フィードバック情報送信部３０１は、フィードバック情報を機械学習部２１０＿１及び機械学習部２１０＿２に送信せず、機械学習を実行しない。この場合、ＣＮＣ装置１００は特別なパラメータを用いたフィードフォワード処理は実行せず、例えばフィードバック処理のみを実行する。
【００６７】
また、制御部３１２は、パラメータ設定情報取得部３０２を介して、パラメータ設定情報を、その送信元が機械学習部２１０＿１か機械学習部２１０＿２かを示す情報と共に取得する。送信元が機械学習部２１０＿１である場合には、判定部３１２２によって、パラメータ設定情報の送信先が第１補正部１０３１＿１であると判定される。一方、送信元が機械学習部２１０＿２である場合には、判定部３１２２によって、パラメータ設定情報の送信先が第２補正部１０３１＿２であると判定される。学習制御部３１２１は、判定部３１２２によって判定された送信先に対し、パラメータ設定情報送信部３０９を介して、パラメータ設定情報を送信する。
なお、上記のように、判定部３１２２が取得したフィードバック情報が学習対象外であった場合には、学習制御部３１２１は、特に何もしなくてもよい。
【００６８】
同様に、制御部３１２は、パラメータ修正情報取得部３０３を介して、パラメータ修正情報を、その送信元が機械学習部２１０か機械学習部２１０＿２かを示す情報と共に取得する。送信元が機械学習部２１０＿１である場合には、判定部３１２２によって、パラメータ修正情報の送信先が第１補正部１０３１＿１であると判定される。一方、送信元が機械学習部２１０＿２である場合には、判定部３１２２によって、パラメータ修正情報の送信先が第２補正部１０３１＿２であると判定される。学習制御部３１２１は、判定部３１２２によって判定された送信先に対し、パラメータ修正情報送信部３１０を介して、パラメータ修正情報を送信する。
以上、ＣＮＣ装置１００、機械学習装置２００、及び調整装置３００の構成について説明した。
【００６９】
次に、図６Ａ、図６Ｂ及び図６Ｃを用いて調整装置３００の動作を中心とした調整システムの動作を説明する。
図６Ａは調整システムの起動動作のフローを示す図である。
調整装置３００の制御部３１２は、まずステップＳ４１において、パラメータ初期設定送信部３１１を介して、ＣＮＣ装置１００に制御パラメータ初期設定を指示する。具体的には、調整装置３００の制御部３１２は、第１補正部１０３１＿１に対して、係数ａ１ｉ、ｂ１ｊを、例えば、初期設定値として、数式１のａ１，０＝１、ａ１，１＝０、ｂ１，０＝０、ｂ１，１＝制御対象のイナーシャ値とし、係数ａ１ｉ、ｂ１ｊの次元ｍ、ｎを設定するように指示する。同様に、調整装置３００の制御部３１２は、第２補正部１０３１＿２に対して、係数ａ２ｉ、ｂ２ｊを、例えば、初期設定値として、数式２のａ２，０＝１、ａ２，１＝０、ｂ２，０＝０、ｂ２，１＝制御対象のイナーシャ値とし、係数ａ２ｉ、ｂ２ｊの次元ｍ、ｎを設定するように指示する。ＣＮＣ装置１００はステップＳ６１において、調整装置３００からの指示に基づいて、第１補正部１０３１＿１の係数ａ１ｉ、ｂ１ｊの値と次元、及び第２補正部１０３１＿２の係数ａ２ｉ、ｂ２ｊの値と次元を設定する。
【００７０】
次に、調整装置３００の制御部３１２は、ステップＳ４２において、評価用プログラム出力部３０６を介して、ＣＮＣ装置１００に対して評価用プログラムを送信する。具体的には、制御部３１２が評価用プログラム出力部３０６に対して評価用プログラムの送信を指示し、評価用プログラム出力部３０６が評価用プログラム記憶部３０５から評価用プログラムを読み出して、評価用プログラムをＣＮＣ装置１００に送信する。ＣＮＣ装置１００の数値制御情報処理部１０１１はステップＳ６２において、記憶部１０１２に評価用プログラムを保存する。
【００７１】
次に、調整装置３００の制御部３１２は、ステップＳ４３において、起動指示出力部３０４を介して、機械学習装置２００に対して起動指示を行う。機械学習装置２００は、ステップＳ３１において、調整装置３００から起動指示を受信して起動し、その後スタンバイ状態となる。
【００７２】
次に、図６Ｂを用いて調整システム１０の学習動作について説明する。
図６Ｂは調整システム１０の学習動作を説明するフローチャートである。
調整装置３００の制御部３１２は、ステップＳ４４において、評価用プログラム実行指示出力部３０７を介して、ＣＮＣ装置１００の数値制御情報処理部１０１１に対して評価用プログラムの実行を指示する。
【００７３】
調整装置３００からの実行指示を受けた後、ＣＮＣ装置１００の数値制御情報処理部１０１１は、ステップＳ６３において、記憶部１０１２から評価用プログラムを読み出し、評価用プログラムに基づき位置指令値を作成する。ＣＮＣ装置１００はサーボモータ６００を制御し、ステップＳ６４において、第１補正部１０３１＿１の伝達関数の各係数ａ１ｉ、ｂ１ｊの値、第２補正部１０３１＿２の伝達関数の各係数ａ２ｉ、ｂ２ｊの値、並びに評価用プログラムを実行することで取得されるＣＮＣ装置１００の位置偏差情報を含むフィードバック情報を、該フィードバック情報が由来する評価用加工プログラムの動作中の加工位置情報又は評価用プログラムのブロック番号と共に、調整装置３００に送信する。このフィードバック情報は状態情報Ｓとなる。
【００７４】
調整装置３００の制御部３１２は、ステップＳ４５で、フィードバック情報をブロック番号と共にフィードバック情報取得部３０８を介して取得し、フィードバック情報送信部３０１を介して、評価用加工プログラムの動作中の加工位置情報又は評価用プログラムのブロック番号に対応する機械学習部２１０＿１又は２１０＿２に送信する。機械学習部２１０＿１又は２１０＿２はステップＳ３２でフィードバック情報を受信する。
【００７５】
ＣＮＣ装置１００はステップＳ６５で評価用プログラムによる一連の加工が終了したかどうかを判断する。ここで、評価用プログラムによる一連の加工が終了した状態とは、例えば、図３に示す加工形状とする評価用プログラムの全体の実行が終了した状態をいう。評価用プログラムによる一連の加工が終了していなければ（ステップＳ６５のＮＯ）、ステップＳ６３に戻る。評価用プログラムによる一連の加工が終了していれば（ステップＳ６５のＹＥＳ）、調整装置３００に対して、評価用プログラムによる一連の加工が終了したことを通知する。
【００７６】
調整装置３００の制御部３１２は、評価用プログラムによる一連の加工の終了通知を受けると、評価用プログラムの終了通知を受けた回数を記録、更新する。そして、調整装置３００の制御部３１２は、ステップＳ４６において、その回数が所定の回数を超えたか、或いは所定の学習期間を過ぎたかを判断し、機械学習を終了させるか否かの判断を行う。機械学習を終了させない場合には（ステップＳ４６のＮＯ）、ステップＳ４７に移行する。機械学習を終了させる場合には（ステップＳ４６のＹＥＳ）、ステップＳ４９に移行する。
調整装置３００は、ステップＳ４７において、機械学習装置２００の機械学習部２１０＿１又は２１０＿２に対して、報酬計算、価値関数更新を指示する。
【００７７】
機械学習装置２００の機械学習部２１０＿１又は２１０＿２は、ステップＳ３３で報酬計算、価値関数更新の指示を受信すると、ステップＳ３４において、ＣＮＣ装置１００から受信した制御パラメータ、すなわち、自身に対応する第１補正部１０３１＿１の伝達関数の各係数ａ１ｉ、ｂ１ｊの値（制御パラメータの値）又は第２補正部１０３１＿２の伝達関数の各係数ａ２ｉ、ｂ２ｊの値（制御パラメータの値）が初期設定値であるか否かを判断する。言い換えると、制御パラメータが初期設定値（状態情報）Ｓ０の集合であるか、制御パラメータが初期設定値（状態情報）Ｓ０以降の状態情報Ｓの集合であるかを判断する。そして、制御パラメータが初期設定値（状態情報）Ｓ０の集合でなく、制御パラメータが初期設定値（状態情報）Ｓ０以降の状態情報Ｓの集合である場合には（ステップＳ３４のＮＯ）、ステップＳ３５に移行する。制御パラメータの値が初期設定値である場合には（ステップＳ３４のＹＥＳ）、ステップＳ３６に移行する。
【００７８】
機械学習装置２００の機械学習部２１０＿１又は２１０＿２は、ステップＳ３５において、報酬を計算し、価値関数を更新し、その後、ステップＳ３６に移行する。
機械学習装置２００の機械学習部２１０＿１又は２１０＿２は、ステップＳ３６において、制御パラメータ修正情報を生成して、制御パラメータ修正情報を調整装置３００に送信する。ここで、制御パラメータ修正情報とは、例えば、状態Ｓに含まれる第１補正部１０３１＿１及び第２補正部１０３１＿２の各係数に対して行動Ａに含まれる、第１補正部１０３１＿１の各係数ａ１ｉ、ｂ１ｊ又は第２補正部１０３１＿２の各係数ａ２ｉ、ｂ２ｊをインクレメンタル（例えば０．０１程度）に加算又は減算させる情報である。
【００７９】
調整装置３００は、ステップＳ４８において、機械学習装置２００から受信した制御パラメータ修正情報を、ＣＮＣ装置１００の、機械学習部２１０＿１に対応する第１補正部１０３１＿１又は機械学習部２１０＿２に対応する第２補正部１０３１＿２に送信する。
【００８０】
ステップＳ６６において、第１補正部１０３１＿１は、制御パラメータ修正情報を受けると、第１補正部１０３１＿１における伝達関数に係る係数ａ１ｉ、ｂ１ｊを修正し、第２補正部１０３１＿２は、制御パラメータ修正情報を受けると、第２補正部１０３１＿２における伝達関数に係る係数ａ２ｉ、ｂ２ｊを修正し、ステップＳ６３に戻る。
こうすることで、ＣＮＣ装置１００は、修正後の第１補正部１０３１＿１における伝達関数に係る制御パラメータａ１ｉ、ｂ１ｊ、又は修正後の第２補正部１０３１＿２における伝達関数に係る制御パラメータａ２ｉ、ｂ２ｊに基づいて、評価用プログラムによる一連の加工を繰り返す。
【００８１】
次に、調整システム１０の制御パラメータ設定情報出力動作を説明する。図６Ｃは調整システム１０の制御パラメータ設定情報出力動作を説明するフローチャートである。制御パラメータ設定情報出力動作はステップＳ４６において、機械学習を終了させる判断をした後の動作である。制御パラメータ設定情報は最適化行動情報となる。
【００８２】
図６Ｃに示すように、調整装置３００の制御部３１２は、ステップＳ４９において、機械学習装置２００に対して、制御パラメータ設定情報の出力指示を送信する。
【００８３】
機械学習装置２００の機械学習部２１０＿１又は２１０＿２は、ステップＳ３７において、最適化行動情報となる制御パラメータ設定情報の出力指示を受信すると、最後の機械学習に対応する報酬を計算し、価値関数を更新する。
【００８４】
機械学習装置２００の機械学習部２１０＿１又は２１０＿２（最適化行動情報出力部２１５）は、ステップＳ３８において、価値関数記憶部２０４に記憶している価値関数Ｑを取得し、取得した価値関数Ｑに基づいて、例えば、初期状態Ｓ０に対して最適化行動情報となる制御パラメータ設定情報を生成し、生成した制御パラメータ設定情報を調整装置３００に対して出力する。
【００８５】
調整装置３００は、ステップＳ５０において、制御パラメータ設定情報を、送信元が機械学習部２１０＿１又は２１０＿２のいずれであるかを示す情報と共に取得すると、ＣＮＣ装置１００の、制御パラメータ設定情報の送信元に対応する第１補正部１０３１＿１又は第２補正部１０３１＿２に対して出力する。
【００８６】
ＣＮＣ装置１００は、ステップＳ６７において、調整装置３００から受信した制御パラメータ設定情報に基づいて、制御パラメータ設定情報の送信元に対応する第１補正部１０３１＿１における伝達関数に係る係数ａ１ｉ、ｂ１ｊ、及び第２補正部１０３１＿２における伝達関数に係る係数ａ２ｉ、ｂ２ｊを最適な値に設定する。
【００８７】
調整装置３００は、ステップＳ５１において、学習終了指示をＣＮＣ装置１００及び機械学習装置２００に対して送信し、学習を終了する。ＣＮＣ装置１００及び機械学習装置２００は調整装置３００から学習終了指示を受けると、学習を終了する。
【００８８】
＜制御パラメータ設定情報の利用＞
上記のように、ＣＮＣ装置１００は、第１補正部１０３１＿１の係数ａ１ｉ、ｂ１ｊ、及び第２補正部１０３１＿２の係数ａ２ｉ、ｂ２ｊを、機械学習装置２００の機械学習部２１０＿１による学習結果を用いて設定する。これらの第１補正部１０３１＿１と第２補正部１０３１＿２は、各々異なる学習要素に対応する。
【００８９】
ＣＮＣ装置１００は、加工プログラムを実行する際、加工プログラムの現時点での実行箇所が、上記の学習要素のいずれに対応するか判定する判定部（不図示）を備え、この判定部の判定に基づいて、学習要素に対応する第１補正部１０３１＿１と第２補正部１０３１＿２を適用することが可能である。
【００９０】
以上、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００の動作を処理フローに基づいて説明したが、上記の処理フローは一例であって、これに限定されない。
これらの機能を実現するために、ＣＮＣ装置１００、機械学習装置２００及び調整装置３００のそれぞれは、ＣＰＵ（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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【０１２３】
また、上述した各実施形態の機械学習装置２００、２２０、２３０は強化学習に関する例について説明したが、これには限定されず、その他の手法、例えば、「教師あり学習」、「教師なし学習」に本発明を適用してもよい。
【０１２４】
更に、フィードバック情報は、機械学習を行う対象、機械学習の手法によって適宜選択することができる。
【０１２５】
＜システム構成の自由度＞
上述した図１に示した実施形態では、ＣＮＣ装置１００と機械学習装置２００とが１対１の組として通信可能に接続されているが、例えば１台の機械学習装置２００が複数のＣＮＣ装置１００とネットワーク４００を介して通信可能に接続され、各ＣＮＣ装置１００の機械学習を実施するようにしてもよい。
その際、機械学習装置２００の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置２００の各機能を実現してもよい。
【０１２６】
また、複数の同じ型名、同一仕様、又は同一シリーズのＣＮＣ装置１００＿１〜１００＿ｎとそれぞれ対応する複数の機械学習装置２００＿１〜２００＿ｎがあった場合に、各機械学習装置２００＿１〜２００＿ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
また、図１５及び図１７に示す変形例では、１台の調整装置が１台のＣＮＣ装置に対して設けられているが、１台の調整装置が複数台のＣＮＣ装置に対して設けられてもよい。更に、図１６に示す変形例では、１台の機械学習装置が１台のＣＮＣ装置に対して設けられているが、１台の調整装置が複数台のＣＮＣ装置に対して設けられてもよい。
【符号の説明】
【０１２７】
１０、１１、１２、１３  調整システム
１００、１１０、１２０、１３０  ＣＮＣ装置
２００  ２２０  ２３０  機械学習装置
２１０  機械学習部
３００、３１０、３２０、３３０  調整装置
３０１  フィードバック情報送信部
３０２  パラメータ設定情報取得部
３０３  パラメータ修正情報取得部
３０４  起動指示出力部
３０５  評価用プログラム記憶部
３０６  評価用プログラム出力部
３０７  評価用プログラム実行指示出力部
３０８  フィードバック情報取得部
３０９  パラメータ設定情報送信部
３１０  パラメータ修正情報送信部
３１１  パラメータ初期設定送信部
３１２  制御部
【図１】
2019185539.tif 000006
【図２】
2019185539.tif 000007
【図３】
2019185539.tif 000008
【図４】
2019185539.tif 000009
【図５Ａ】
2019185539.tif 000010
【図５Ｂ】
2019185539.tif 000011
【図６Ａ】
2019185539.tif 000012
【図６Ｂ】
2019185539.tif 000013
【図６Ｃ】
2019185539.tif 000014
【図７】
2019185539.tif 000015
【図８】
2019185539.tif 000016
【図９】
2019185539.tif 000017
【図１０】
2019185539.tif 000018
【図１１】
2019185539.tif 000019
【図１２】
2019185539.tif 000020
【図１３】
2019185539.tif 000021
【図１４】
2019185539.tif 000022
【図１５】
2019185539.tif 000023
【図１６】
2019185539.tif 000024
【図１７】
2019185539.tif 000025
【図１８】
2019185539.tif 000026
【図１９】
2019185539.tif 000027