(57)【要約】【課題】学習されたパラメータ又は第１の物理量と評価関数値を取得して、機械学習の経過又は結果を確認することができようにする。【解決手段】工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置から、機械学習中又は機械学習された、サーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得する情報取得部と、取得したパラメータ、第１の物理量、又はパラメータから求めた第２の物理量と、評価関数値との関係を示す情報を出力する出力部と、を備えた出力装置。【選択図】図６
2020071508.tif 000002
【特許請求の範囲】
【請求項１】
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置から、機械学習中又は機械学習された、前記サーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得する情報取得部と、
取得したパラメータ、前記第１の物理量、又は前記パラメータから求めた第２の物理量と、前記評価関数値との関係を示す情報を出力する出力部と、
を備えた出力装置。
【請求項２】
前記出力部は、前記パラメータ、前記第１の物理量又は前記第２の物理量と、前記評価関数値との関係を示す情報を表示画面に表示する表示部を含む請求項１に記載の出力装置。
【請求項３】
前記パラメータは前記サーボ制御装置の構成要素の伝達関数の係数であって、前記情報に基づいて、前記係数の次数の変更指示を、前記サーボ制御装置に対して行う請求項１又は２に記載の出力装置。
【請求項４】
前記情報に基づいて、前記サーボ制御装置の構成要素のパラメータ又は前記第１の物理量の機械学習の探索範囲の変更指示又は選択指示を、前記機械学習装置に対して行う請求項１から３のいずれか１項に記載の出力装置。
【請求項５】
前記サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータを含む請求項１から請求項４のいずれか１項に記載の出力装置。
【請求項６】
前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含む、請求項５に記載の出力装置。
【請求項７】
請求項１から６のいずれか１項に記載の出力装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
サーボ制御装置に対して機械学習を行う機械学習装置と、
を備えた制御装置。
【請求項８】
前記出力装置は、前記サーボ制御装置と前記機械学習装置のうちの一つに含まれる、請求項７に記載の制御装置。
【請求項９】
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置の機械学習で用いる評価関数値の出力方法において、
前記機械学習装置から、機械学習中又は機械学習された、前記サーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得し、
取得したパラメータ、前記第１の物理量、又は前記パラメータから求めた第２の物理量と、前記評価関数値との関係を示す情報を出力する、出力装置の評価関数値の出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力装置、制御装置、及び評価関数値の出力方法に係り、特に、サーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置から、機械学習中又は機械学習後のサーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得して、パラメータ、第１の物理量又はパラメータから求めた第２の物理量と、評価関数値との関係を出力する出力装置、この出力装置を含む制御装置及び評価関数値の出力方法に関する。
【背景技術】
【０００２】
本発明に関連する技術として、例えば、特許文献１に、機械学習手段により乗算係数パターン習熟手法を用いて目的とする乗算係数パターンを求め、この乗算係数パターンを用いてデジタルフィルタ演算を行い、デジタルフィルタ出力を表示する出力部を備えた信号変換器が記載されている。
【０００３】
具体的には、特許文献１は、信号入力部と、入力信号データに基づいて信号データの特徴化をする機能を持った演算処理部と、演算処理部からの出力を表示する出力部とを備えている信号変換器にあって、演算処理部は、入力ファイルと、学習手段と、デジタルフィルタと、パラメータ設定手段を備え、学習手段では、機械学習手段により乗算係数パターン習熟手法を用いて目的とする乗算係数パターンを求めることを開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３１１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、演算処理部からの出力を表示しているが、機械学習手段で機械学習されたパターンを出力しておらず、操作者等のユーザは機械学習の経過又は結果を確認することができないという課題があった。
また、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置の構成要素のパラメータを機械学習装置によって機械学習する場合に、通常、パラメータ及び機械学習装置で用いられる評価関数値は表示されないため、操作者は、機械学習の経過又は結果を確認することができない。また、評価関数値が表示されても、操作者は評価関数値から機械特性を把握することが難しい。
【０００６】
本発明は、サーボ制御装置の構成要素の学習されたパラメータ又は第１の物理量と評価関数値を取得して、このパラメータ、第１の物理量又はパラメータから求められる第２の物理量と、評価関数値との関係を示す情報から機械学習の経過又は結果を確認することができ、また第１又は第２の物理量から機械特性を把握することができる情報を出力する出力装置、この出力装置を含む制御装置及び評価関数値の出力方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）  本発明に係る出力装置は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータ（例えば、後述のサーボモータ４００）を制御するサーボ制御装置（例えば、後述のサーボ制御装置３００）に対して機械学習を行う機械学習装置（例えば、後述の機械学習装置１００）から、機械学習中又は機械学習された、前記サーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得する情報取得部（例えば、後述の情報取得部２０１）と、
取得したパラメータ、前記第１の物理量、又は前記パラメータから求めた第２の物理量と、前記評価関数値との関係を示す情報を出力する出力部（例えば、後述の制御部２０５と表示部２０９、制御部２０５と記憶部２０６）と、
を備えた出力装置（例えば、後述の出力装置２００、２００Ａ）である。
【０００８】
（２）  上記（１）の出力装置において、前記出力部は、前記パラメータ、前記第１の物理量又は前記第２の物理量と、前記評価関数値との関係を示す情報を表示画面に表示する表示部を含んでもよい。
【０００９】
（３）  上記（１）又は（２）の出力装置において、前記パラメータは前記サーボ制御装置の構成要素の伝達関数の係数であって、出力装置は前記情報に基づいて、前記係数の次数の変更指示を、前記サーボ制御装置に対して行ってもよい。
【００１０】
（４）  上記（１）から（３）のいずれかの出力装置において、前記情報に基づいて、前記サーボ制御装置の構成要素のパラメータ又は前記第１の物理量の機械学習の探索範囲の変更指示又は選択指示を、前記機械学習装置に対して行ってもよい。
【００１１】
（５）  上記（１）から（４）のいずれかの出力装置において、前記サーボ制御装置の構成要素のパラメータは、数式モデル又はフィルタのパラメータを含んでもよい。
【００１２】
（６）  上記（５）の出力装置において、前記数式モデル又は前記フィルタは速度フィードフォワード処理部又は位置フィード処理部に含まれ、前記パラメータはフィルタの伝達関数の係数を含んでもよい。
【００１３】
（７）  本発明に係る制御装置は、上記（１）から（６）のいずれかの出力装置と、
工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置と、
サーボ制御装置に対して機械学習を行う機械学習装置と、
を備えた制御装置である。
【００１４】
（８）  上記（７）の制御装置において、前記出力装置は、前記サーボ制御装置及び機械学習装置の一つに含まれてもよい。
【００１５】
（９）  本発明に係る出力装置の評価関数値の出力方法は、工作機械、ロボット又は産業機械の軸を駆動するサーボモータを制御するサーボ制御装置に対して機械学習を行う機械学習装置の機械学習で用いる評価関数値の出力方法において、
前記機械学習装置から、機械学習中又は機械学習された、前記サーボ制御装置の構成要素のパラメータ又は第１の物理量と、評価関数値とを取得し、
取得したパラメータ、前記第１の物理量、又は前記パラメータから求めた第２の物理量と、前記評価関数値との関係を示す情報を出力する、出力装置の評価関数値の出力方法である。
【発明の効果】
【００１６】
本発明によれば、学習されたパラメータ又は第１の物理量と評価関数値を取得して、このパラメータ、第１の物理量又は及びパラメータから求められる第２の物理量と、評価関数値との関係を示す情報から、機械学習の経過又は結果を確認することができる。また、第１又は第２の物理量から機械特性を把握することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１実施形態の制御装置の一構成例を示すブロック図である。
【図２】本発明の第１実施形態の制御装置の全体構成及びサーボ制御装置の構成を示すブロック図である。
【図３】加工形状が八角形の場合のモータの動作を説明するための図である。
【図４】加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。
【図５】本発明の第１の実施形態の機械学習装置を示すブロック図である。
【図６】本発明の第１実施形態の制御装置に含まれる出力装置の一構成例を示すブロック図である。
【図７】機械学習中に、機械学習の進捗状況に合わせて、状態Ｓに係るパラメータから計算されるフィルタ減衰中心周波数と評価関数値との関係を示す特性図を、表示部に表示する場合の表示画面の一例を示す図である。
【図８】出力装置の表示部の表示画面に表示する特性図の他の例を示す図である。
【図９】出力装置の表示部の表示画面に追加される周波数−ゲイン特性を示す周波数特性図である。
【図１０】減衰中心周波数と評価関数値とフィルタ減衰率との関係を示す三次元図である。
【図１１】フィルタ減衰率を説明するための、曲線の谷の深さを示す周波数−ゲイン特性図である。
【図１２】フィルタ帯域を説明するための、曲線の谷の深さを示す周波数−ゲイン特性図である。
【図１３】フィルタ減衰率（減衰係数（ダンピング））を３つの固定値に変えたときの、減衰中心周波数と評価関数値との曲線を示す特性図である。
【図１４】減衰中心周波数と評価関数値とフィルタ減衰率との詳細な関係を示す三次元図である。
【図１５】機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。
【図１６】機械学習終了指示後の出力装置の動作を示すフロー図である。
【図１７】本発明の第２実施形態の制御装置の一構成例を示すブロック図である。
【図１８】本発明の第３実施形態の制御装置の一構成例を示すブロック図である。
【図１９】他の構成の制御装置を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を用いて詳細に説明する。
（第１実施形態）
【００１９】
図１は本発明の第１実施形態の制御装置の一構成例を示すブロック図である。図１に示す制御装置１０は、機械学習装置１００、出力装置２００、サーボ制御装置３００、及びサーボモータ４００を備えている。制御装置１０は、工作機械、ロボット、又は産業機械等を駆動する。制御装置１０は工作機械、ロボット、又は産業機械等とは別に設けられても、工作機械、ロボット、又は産業機械等に含まれてもよい。
機械学習装置１００は、出力装置２００から、サーボ制御装置３００に入力される位置指令、速度指令等の制御指令及びサーボ制御装置３００から出力される位置偏差等のサーボ情報等の機械学習に用いる情報を取得する。また、機械学習装置１００は、出力装置２００から、サーボ制御装置３００の構成要素のパラメータ（例えば、速度フィードフォワード処理部の伝達関数の係数）を取得する。機械学習装置１００はサーボ制御装置３００の構成要素のパラメータの代わりに物理量（例えば、パラメータに関連する、減衰中心周波数、帯域幅、減衰係数（ダンピング）等）を取得してもよい（この物理量は第１の物理量に対応する）。機械学習装置１００は、入力された情報に基づいて、サーボ制御装置３００の構成要素のパラメータ又は物理量を機械学習して、出力装置２００へ機械学習中又は機械学習後のパラメータ又は物理量、及び機械学習で用いる評価関数値を出力する。
【００２０】
出力装置２００は、サーボ制御装置３００に入力される位置指令、速度指令等の制御指令及びサーボ制御装置３００から出力される位置偏差等のサーボ情報を取得して、機械学習装置１００に出力する。また、出力装置は、機械学習中又は機械学習後のパラメータ又は物理量を機械学習装置１００から取得して、サーボ制御装置３００へ送る。
また、出力装置２００は機械学習装置１００から、機械学習中又は機械学習後のパラメータ又は物理量を取得し、このパラメータ（例えば、速度フィードフォワード処理部の係数）又はパラメータから計算される値（例えば、中心周波数、帯域幅、減衰係数（ダンピング）等で、第２の物理量となる）と、評価関数値との関係を示す情報を出力する。出力方法は、例えば、液晶表示装置での画面表示、プリンター等を用いた紙への印刷、メモリ等の記憶部への記憶、通信部を介した外部信号出力等である。
操作者等のユーザは、出力装置２００から出力される情報に基づいて、例えば、速度フィードフォワード処理部の伝達関数の係数の次数、機械学習の探索範囲を変更するために、出力装置２００を操作する。出力装置２００は、速度フィードフォワード処理部の伝達関数の係数の次数を変更し、又は機械学習の探索範囲を変更するために、サーボ制御装置３００又は機械学習装置１００に調整情報を出力する。
【００２１】
以上説明したように、出力装置２００は、機械学習装置１００とサーボ制御装置３００との間の情報（制御指令、パラメータ及びサーボ情報等）を中継する機能、パラメータ又はパラメータから計算される値と、評価関数値との関係を示す情報を出力する出力機能、及び機械学習装置１００とサーボ制御装置３００との動作の制御を行うための調整情報を出力する調整機能を有する。
【００２２】
サーボ制御装置３００は、位置指令、速度指令等の制御指令に基づいて電流指令を出力し、サーボモータ４００の回転を制御する。サーボ制御装置３００は、例えば、機械学習装置１００により機械学習される係数を含む伝達関数で表される速度フィードフォワード処理部を備えている。
サーボモータ４００は、工作機械、ロボット又は産業機械の軸を駆動する。サーボモータ４００は、例えば、工作機械、ロボット、産業機械に含まれる。サーボモータ４００は検出位置又は／及び検出速度をフィードバック情報としてサーボ制御装置３００へ出力する。
【００２３】
以下、上記第１実施形態の制御装置１０の各構成について更に説明する。
【００２４】
図２は、本発明の第１実施形態の制御装置１０の全体構成及びサーボ制御装置３００の構成を示すブロック図である。
【００２５】
まず、サーボ制御装置３００について説明する。
図２に示すように、サーボ制御装置３００は、構成要素として、減算器３０１、位置制御部３０２、加算器３０３、減算器３０４、速度制御部３０５、加算器３０６、積分器３０７、速度フィードフォワード処理部３０８、及び位置フィードフォワード処理部３０９を備えている。
【００２６】
位置指令は、減算器３０１、速度フィードフォワード処理部３０８、位置フィードフォワード処理部３０９、及び出力装置２００に出力される。
位置指令は、サーボモータ４００を動作させるプログラムに基づいて、上位装置によって作成される。サーボモータ４００は、例えば工作機械に含まれる。工作機械において、被加工物（ワーク）を搭載するテーブルがＸ軸方向及びＹ軸方向に移動される場合には、Ｘ軸方向及びＹ軸方向に対してそれぞれ図２に示すサーボ制御装置３００及びサーボモータ４００が設けられる。テーブルを３軸以上の方向に移動させる場合には、それぞれの軸方向に対してサーボ制御装置３００及びサーボモータ４００が設けられる。
位置指令は、加工プログラムにより指定される加工形状となるように、送り速度が設定される。
【００２７】
減算器３０１は位置指令値と位置フィードバックされた検出位置との差を求め、その差を位置偏差として位置制御部３０２及び出力装置２００に出力する。
位置制御部３０２は、位置偏差にポジションゲインＫｐを乗じた値を、速度指令値として加算器３０３に出力する。
加算器３０３は、速度指令値と位置フィードフォワード処理部３０９の出力値（位置フィードフォワード項）とを加算して、フィードフォワード制御された速度指令値として減算器３０４に出力する。減算器３０４は加算器３０３の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部３０５に出力する。
【００２８】
速度制御部３０５は、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算して、トルク指令値として加算器３０６に出力する。
加算器３０６は、トルク指令値と速度フィードフォワード処理部３０８の出力値（速度フィードフォワード項）とを加算して、フィードフォワード制御されたトルク指令値として不図示の電流制御部を介してサーボモータ４００に出力してサーボモータ４００を駆動する。
【００２９】
サーボモータ４００の回転角度位置は、サーボモータ４００に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、速度検出値は速度フィードバックとして減算器３０４に入力される。速度検出値は積分器３０７で積分されて位置検出値となり、位置検出値は位置フィードバックとして減算器３０１に入力される。
【００３０】
速度フィードフォワード処理部３０８は、位置指令に対して速度フィードフォワード処理を行い、処理結果を速度フィードフォワード項として加算器３０６に出力する。速度フィードフォワード処理部３０８の伝達関数は、数式１（以下に数１として示す）で示された伝達関数Ｆ（ｓ）である。数式１の係数ａｉ、ｂｊ(０≦ｉ≦ｍ，０≦ｊ≦ｎ、ｍ，ｎは自然数である)の最適値は機械学習装置１００で機械学習される。
【数１】
2020071508.tif 000003
【００３１】
位置フィードフォワード処理部３０９は、位置指令値を微分して定数αを掛け、その処理結果を位置フィードフォワード項として、加算器３０３に出力する。
以上のように、サーボ制御装置３００は構成される。
次に機械学習装置１００について説明する。
【００３２】
機械学習装置１００は、予め設定された加工プログラム（以下、「学習時の加工プログラム」ともいう）を実行することで、速度フィードフォワード処理部３０８の伝達関数の係数を学習する。
ここで、学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が一つ置きに円弧に置き換えられた形等である。なお、学習時の加工プログラムにより指定される加工形状はこれらの加工形状に限定されず、他の加工形状であってもよい。
【００３３】
図３は、加工形状が八角形の場合のモータの動作を説明するための図である。図４は、加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合のモータの動作を説明するための図である。図３及び図４において、被加工物（ワーク）が時計まわりに加工されるようにテーブルがＸ軸及びＹ軸方向に移動するものとする。
【００３４】
加工形状が八角形の場合は、図３に示すように、角の位置Ａ１で、テーブルをＹ軸方向に移動するモータは回転速度が遅くなり、テーブルをＸ軸方向に移動するモータは回転速度が速くなる。
角の位置Ａ２で、テーブルをＹ軸方向に移動するモータは、回転方向が反転し、テーブルをＸ軸方向に移動するモータは、位置Ａ１から位置Ａ２及び位置Ａ２から位置Ａ３にかけて、同じ回転方向で、等速度で回転する。
角の位置Ａ３で、テーブルをＹ軸方向に移動するモータは回転速度が速くなり、テーブルをＸ軸方向に移動するモータは回転速度が遅くなる。
角の位置Ａ４で、テーブルをＸ軸方向に移動するモータは、回転方向が反転し、テーブルをＹ軸方向に移動するモータは、位置Ａ３から位置Ａ４及び位置Ａ４から次の角の位置にかけて、同じ回転方向で、等速度で回転する。
【００３５】
加工形状が八角形の角が一つ置きに円弧に置き換えられた形の場合は、図４に示すように、角の位置Ｂ１で、テーブルをＹ軸方向に移動するモータは回転速度が遅くなり、テーブルをＸ軸方向に移動するモータは回転速度が速くなる。
円弧の位置Ｂ２で、テーブルをＹ軸方向に移動するモータは、回転方向が反転し、テーブルをＸ軸方向に移動するモータは位置Ｂ１から位置Ｂ３にかけて同じ回転方向で、等速度で回転する。図１２に示した加工形状が八角形の場合と異なり、テーブルをＹ軸方向に移動するモータは位置Ｂ２の前後で円弧の加工形状が形成されるように、位置Ｂ２に向かって徐々に減速され、位置Ｂ２で回転が停止され、位置Ｂ２を過ぎると回転方向が徐々に増加していく。
【００３６】
角の位置Ｂ３で、テーブルをＹ軸方向に移動するモータは回転速度が速くなり、テーブルをＸ軸方向に移動するモータは回転速度が遅くなる。
円弧の位置Ｂ４で、テーブルをＸ軸方向に移動するモータは、回転方向が反転し、テーブルはＸ軸方向に直線反転するように移動する。また、テーブルをＹ軸方向に移動するモータは位置Ｂ３から位置Ｂ４、及び位置Ｂ４から次の角の位置にかけて同じ回転方向で、等速度で回転する。テーブルをＸ軸方向に移動するモータは位置Ｂ４の前後で円弧の加工形状が形成されるように、位置Ｂ４に向かって徐々に減速され、位置Ｂ４で回転が停止され、位置Ｂ４を過ぎると回転方向が徐々に増加していく。
【００３７】
本実施形態では、以上説明した、学習時の加工プログラムにより指定される加工形状の位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３により、線形制御において回転速度が変更されたときの振動を評価し、位置偏差に対する影響を調べることで、速度フィードフォワード処理部３０８の伝達関数の係数の最適化に係る機械学習を行うものとする。なお、本実施形態では用いていないが、加工形状の位置Ａ２と位置Ａ４、及び位置Ｂ２と位置Ｂ４により、回転方向が反転する場合に生ずる惰走（惰性で動作する）を評価し、位置偏差に対する影響を調べることもできる。
伝達関数の係数の最適化に係る機械学習は、速度フィードフォワード処理部に特に限定されるものでなく、例えば、位置フィードフォワード処理部、又はサーボ制御装置の電流フィードフォワードを行う場合に設けられる電流フィードフォワード処理部にも適用可能である。
【００３８】
次に、機械学習装置１００について更に詳細に説明する。
以下の説明では機械学習装置１００が強化学習を行う場合について説明するが、機械学習装置１００が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【００３９】
機械学習装置１００に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習装置１００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００４０】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００４１】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Ｓの下で、行動Ａを選択する価値Ｑ（Ｓ，Ａ）を学習する方法であるＱ学習（Q-learning）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００４２】
しかしながら、Ｑ学習を最初に開始する時点では、状態Ｓと行動Ａとの組合せについて、価値Ｑ（Ｓ，Ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００４３】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式２（以下に数２として示す）により表すことができる。
【００４４】
【数２】
2020071508.tif 000004
【００４５】
上記の数式２において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００４６】
上述した数式２は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
この更新式は、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）よりも、行動Ａｔによる次の状態Ｓｔ＋１における最良の行動の価値ｍａｘａ  Ｑ（Ｓｔ＋１，Ａ）の方が大きければ、Ｑ（Ｓｔ，Ａｔ）を大きくし、逆に小さければ、Ｑ（Ｓｔ，Ａｔ）を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬ｒｔ＋１のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【００４７】
ここで、Ｑ学習では、すべての状態行動ペア（Ｓ，Ａ）についてのＱ（Ｓ，Ａ）のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのＱ（Ｓ，Ａ）の値を求めるには状態数が多すぎて、Ｑ学習が収束するのに多くの時間を要してしまう場合がある。
【００４８】
そこで、公知のＤＱＮ（Deep Q-Network）と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Ｑを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Ｑを適当なニューラルネットワークで近似することにより価値Ｑ（Ｓ，Ａ）の値を算出するようにしてもよい。ＤＱＮを利用することにより、Ｑ学習が収束するのに要する時間を短くすることが可能となる。なお、ＤＱＮについては、例えば、以下の非特許文献に詳細な記載がある。
【００４９】
＜非特許文献＞
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著［ｏｎｌｉｎｅ］、［平成２９年１月１７日検索］、インターネット〈ＵＲＬ：http://files.davidqiu.com/research/nature14236.pdf〉
【００５０】
以上説明をしたＱ学習を機械学習装置１００が行う。具体的には、機械学習装置１００は、サーボ制御装置３００における、速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊ(０≦ｉ≦ｍ，０≦ｊ≦ｎ、ｍ，ｎは自然数である)の値、並びに学習時の加工プログラムを実行することで取得されるサーボ制御装置３００の位置偏差、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊの値の調整を行動Ａとして選択する価値Ｑを学習する。
【００５１】
機械学習装置１００は、速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで前述した加工形状の位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３における、サーボ制御装置３００の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。機械学習装置１００は、行動Ａをするたびに報酬が返ってくる。機械学習装置１００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習装置１００は、速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置３００の位置指令及び位置偏差を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、速度フィードフォワード処理部３０８の最適な係数ａｉ、ｂｊ）を選択することが可能となる。位置Ａ１と位置Ａ３、及び位置Ｂ１と位置Ｂ３とでは、Ｘ軸方向及びＹ軸方向のサーボモータの回転方向は変わらず、機械学習装置１００は線形動作時の速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊの学習を行うことができる。
【００５２】
すなわち、機械学習装置１００により学習された価値関数Ｑに基づいて、或る状態Ｓに係る速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊに対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動Ａ（すなわち、速度フィードフォワード処理部３０８の係数ａｉ、ｂｊ）を選択することが可能となる。
【００５３】
図５は本発明の第１の実施形態の機械学習装置１００を示すブロック図である。
上述した強化学習を行うために、図５に示すように、機械学習装置１００は、状態情報取得部１０１、学習部１０２、行動情報出力部１０３、価値関数記憶部１０４、及び最適化行動情報出力部１０５を備える。学習部１０２は報酬出力部１０２１、価値関数更新部１０２２、及び行動情報生成部１０２３を備える。
【００５４】
状態情報取得部１０１は、サーボ制御装置３００における速度フィードフォワード処理部３０８の伝達関数の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで取得されるサーボ制御装置３００の位置指令及び位置偏差を含む指令、フィードバック等のサーボ状態を含む状態Ｓを、サーボ制御装置３００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部１０１は、取得した状態情報Ｓを学習部１０２に対して出力する。
【００５５】
なお、最初にＱ学習を開始する時点での速度フィードフォワード処理部３０８の係数ａｉ、ｂｊは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した速度フィードフォワード処理部３０８の係数ａｉ、ｂｊの初期設定値を、強化学習により最適なものに調整する。速度フィードフォワード処理部３０８の係数ａｉ、ｂｊは例えば、初期設定値として、数式１のａ０＝１、ａ１＝０、ａ２＝０、・・・、ａｍ＝０、ｂ０＝１、ｂ１＝０、ｂ２＝０、・・・ｂｎ＝０とする。また、係数ａｉ、ｂｊの次数ｍ、ｎを予め設定する。すなわち、ａｉについては０≦ｉ≦ｍ、ｂｊについては０≦ｊ≦ｎとする。
なお、係数ａｉ、ｂｊは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【００５６】
学習部１０２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。
【００５７】
報酬出力部１０２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬を算出する部分である。ここで、状態Ｓにおける状態変数である位置偏差の集合（位置偏差集合）をＰＤ（Ｓ）、行動情報Ａ（速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊの修正）により状態Ｓから変化した状態情報Ｓ´に係る状態変数である位置偏差集合をＰＤ（Ｓ´）で示す。また、状態Ｓにおける位置偏差の値を、予め設定された評価関数ｆ（ＰＤ（Ｓ））に基づいて算出される値とする。
評価関数ｆは、例えば、位置偏差をｅで示したときに、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の２ｎ（ｎは自然数）乗の積算値を算出する関数
∫e2ndt（ｎは自然数）
位置偏差の絶対値の最大値を算出する関数
Ｍａｘ｛|e|｝  
等を適用することができる。
【００５８】
このとき、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の速度フィードフォワード処理部３０８に基づいて動作したサーボ制御装置３００の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の速度フィードフォワード処理部３０８に基づいて動作したサーボ制御装置３００の位置偏差の評価関数値ｆ（ＰＤ（Ｓ））よりも大きくなった場合に、報酬出力部１０２１は、報酬の値を負の値とする。
【００５９】
一方で、位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、位置偏差の評価関数値ｆ（ＰＤ（Ｓ））よりも小さくなった場合に、報酬出力部１０２１は、報酬の値を正の値とする。
また、位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、位置偏差の評価関数値ｆ（ＰＤ（Ｓ））と等しい場合は、報酬出力部１０２１は、報酬の値をゼロとする。
【００６０】
また、行動Ａを実行後の状態Ｓ´の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の評価関数値ｆ（ＰＤ（Ｓ））より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり位置偏差の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Ａを実行後の状態Ｓ´の位置偏差の評価関数値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の評価関数値ｆ（ＰＤ（Ｓ））より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまり位置偏差の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
【００６１】
価値関数更新部１０２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値と、に基づいてＱ学習を行うことにより、価値関数記憶部１０４が記憶する価値関数Ｑを更新する。
価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移する都度、即座に価値関数Ｑの更新を行う学習方法である。また、バッチ学習は、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行う学習方法である。更に、ミニバッチ学習は、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行う学習方法である。
【００６２】
行動情報生成部１０２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部１０２３は、Ｑ学習の過程において、サーボ制御装置３００の速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部１０３に対して出力する。より具体的には、行動情報生成部１０２３は、例えば、状態Ｓに含まれる速度フィードフォワード処理部の各係数に対して行動Ａに含まれる、速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊをインクレメンタル（例えば０．０１程度）に加算又は減算させる。
【００６３】
そして、行動情報生成部１０２３は、速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００６４】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部１０２３は、次の行動Ａ´としては、例えば、速度フィードフォワード処理部の各係数ａｉ、ｂｊに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００６５】
また、行動情報生成部１０２３は、現在の推定される行動Ａの価値の中で、最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するグリーディ法や、ある小さな確率εでランダムに行動Ａ´選択し、それ以外では最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するεグリーディ法といった公知の方法により、行動Ａ´を選択する方策を取るようにしてもよい。
【００６６】
行動情報出力部１０３は、学習部１０２から出力される行動情報Ａ及び評価関数値を出力装置２００に対して出力する部分である。サーボ制御装置３００は上述したように、出力装置２００を介して取得した、行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されている速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊを微修正することで、次の状態Ｓ´（すなわち修正された、速度フィードフォワード処理部３０８の各係数）に遷移する。
【００６７】
価値関数記憶部１０４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部１０４に記憶された価値関数Ｑは、価値関数更新部１０２２により更新される。また、価値関数記憶部１０４に記憶された価値関数Ｑは、他の機械学習装置１００との間で共有されるようにしてもよい。価値関数Ｑを複数の機械学習装置１００で共有するようにすれば、各機械学習装置１００にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【００６８】
最適化行動情報出力部１０５は、価値関数更新部１０２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値Ｑ（Ｓ，Ａ）が最大となる動作を速度フィードフォワード処理部３０８に行わせるための行動情報Ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
より具体的には、最適化行動情報出力部１０５は、価値関数記憶部１０４が記憶している価値関数Ｑを取得する。この価値関数Ｑは、上述したように価値関数更新部１０２２がＱ学習を行うことにより更新したものである。そして、最適化行動情報出力部１０５は、価値関数Ｑに基づいて、行動情報を生成し、生成した行動情報を出力装置２００に対して出力する。この最適化行動情報には、行動情報出力部１０３がＱ学習の過程において出力する行動情報と同様に、速度フィードフォワード処理部３０８の各係数ａｉ、ｂｊを修正する情報及び評価関数値が含まれる。
【００６９】
以上のように、本実施形態に係る機械学習装置１００を利用することで、サーボ制御装置３００の速度フィードフォワード処理部３０８のパラメータ調整を簡易化することができる。
【００７０】
報酬出力部１０２１は、報酬の値の算出にあたっては位置偏差以外の他の要素を加えてもよい。
例えば、報酬出力部１０２１は、減算器３０１の出力となる位置偏差の他に、加算器３０３の出力となる位置フォワード制御された速度指令、減算器３０４の出力となる、位置フォワード制御された速度指令と速度フィードバックとの差、及び加算器３０６の出力となる速度フォワード制御されたトルク指令等の少なくとも１つを加えて、報酬の値を算出してもよい。
【００７１】
以上説明した実施形態においては、機械学習装置１００は、Ｘ軸方向及びＹ軸方向のサーボモータの回転方向が変わらない線形動作時の、速度フィードフォワード処理部の係数の最適化に係る学習について説明した。
しかし、本実施形態は、線形動作時の学習に限定されず、非線形動作の学習に適用することもできる。例えば、バックラッシュ補正のために、速度フィードフォワード処理部の係数の最適化に係る学習を行う場合、前述した加工形状の位置Ａ２と位置Ａ４、及び位置Ｂ２と位置Ｂ４における、位置指令値と積分器１０８から出力される検出位置との差を位置偏差として抽出して、これを判定情報として報酬を与えて強化学習することができる。
位置Ａ２と位置Ａ４、及び位置Ｂ２と位置Ｂ４とでは、Ｙ軸方向又はＸ軸方向のサーボモータの回転方向は反転して非線形動作となってバックラッシが生じ、機械学習装置は非線形動作時のフィードフォワード処理部の伝達関数の係数の学習を行うことができる。
以上、サーボ制御装置３００及び機械学習装置１００について説明した。次に、出力装置２００について説明する。
【００７２】
＜出力装置２００＞
図６は、本発明の第１実施形態の制御装置１０に含まれる出力装置２００の一構成例を示すブロック図である。図６に示すように、出力装置２００は、情報取得部２０１、情報出力部２０２、作図部２０３、操作部２０４、制御部２０５、記憶部２０６、情報取得部２０７、情報出力部２０８、表示部２０９、及び演算部２１０を有する。
【００７３】
情報取得部２０１は、機械学習装置１００からパラメータ及び評価関数値を取得する情報取得部となる。制御部２０５及び表示部２０９は、パラメータ（例えば、速度フィードフォワード処理部の係数ａｉ、ｂｊ）又はパラメータから計算される値（例えば、中心周波数、帯域幅ｆｗ、減衰係数（ダンピング）等）と評価関数値との関係を散布図等で出力する出力部となる。出力部の表示部２０９は液晶表示装置、プリンター等を用いることができる。出力は記憶部２０６に記憶することも含まれ、その場合、出力部は制御部２０５及び記憶部２０６となる。
【００７４】
出力装置２００は、機械学習装置１００の機械学習中若しくは機械学習後のパラメータ（学習パラメータ）と評価関数値との関係、又は学習パラメータから計算された値と評価関数値との関係を出力する出力機能を備えている。
また、出力装置２００は、サーボ制御装置３００から機械学習装置１００への情報（例えば、位置指令、速度指令等の制御指令、位置偏差、速度フィードフォワード処理部の係数）、機械学習装置１００からサーボ制御装置３１０への情報（例えば、速度フィードフォワード処理部の係数の修正情報）の中継を行う中継機能、機械学習装置１００の動作の制御（例えば、機械学習装置に対する学習プログラム起動指示、探索範囲の変更指示等）を行う調整機能を備えている。これらの情報の中継及び動作の制御は情報取得部２０１，２０７及び情報出力部２０２，２０８を介して行われる。
【００７５】
まず出力装置２００が、機械学習中のパラメータから計算された値と評価関数値との関係を出力する場合について図７を用いて説明する。図７は機械学習中に、機械学習の進捗状況に合わせて、状態Ｓに係るパラメータから計算される減衰中心周波数と評価関数値との関係を示す散布図等を、表示部２０９に表示する場合の表示画面の一例を示す図である。
図７に示すように、表示部２０９の表示画面Ｐは欄Ｐ１、Ｐ２、及びＰ３を含んでいる。表示部２０９は、欄Ｐ１に、例えば、軸選択、パラメータ確認、プログラム確認・編集、プログラム起動、機械学習中、終了判定の選択項目を表示する。
また、表示部２０９は、欄Ｐ２に、例えば、速度フィードフォワード等の調整対象、データ採取中等のステータス（状態）、予め設定された当該機械学習終了までの試行回数（以下「最大試行回数」ともいう）に対する現在までの試行回数の累計を示す試行回数、及び学習の中断を選択するボタンを表示する。
また、表示部２０９は、欄Ｐ３に、例えば、速度フィードフォワード処理部の伝達関数の係数から計算される値である、減衰中心周波数ｆｃと評価関数値との関係を示す散布図を表示する。
【００７６】
操作者等のユーザが、液晶表示装置等の表示部２０９の図７に示す表示画面Ｐの欄Ｐ１の「機械学習」をマウス、キーボード等の操作部２０４で選択すると、制御部２０５は、情報出力部２０２を介して機械学習装置１００に対して、試行回数で関連付けられる状態Ｓに係る、係数ａｉ、ｂｊ及び評価関数値ｆ（ＰＤ（Ｓ）、当該機械学習の調整対象（学習対象）に関する情報、試行回数、最大試行回数を含む情報等の出力指示を送る。
【００７７】
情報取得部２０１が、機械学習装置１００から、試行回数で関連付けられる状態Ｓに係る係数ａｉ、ｂｊ及び評価関数値ｆ（ＰＤ（Ｓ）、当該機械学習の調整対象（学習対象）に関する情報、試行回数、最大試行回数を含む情報等を受信すると、制御部２０５は、受信した情報を記憶部２０６に記憶するとともに、演算部２２０に制御を移す。記憶部２０６には、係数ａｉ、ｂｊと係数ａｉ、ｂｊに対応する評価関数値ｆ（ＰＤ（Ｓ））とが関連付けられて記憶される。
【００７８】
演算部２２０は、機械学習装置１００の機械学習中でのパラメータ、具体的には強化学習時又は強化学習後のパラメータ（例えば上述した状態Ｓに係る係数ａｉ、ｂｊ）から速度フィードフォワード処理部の減衰中心周波数ｆｃを計算する。減衰中心周波数ｆｃはａｉ、ｂｊから計算した値（第２の物理量）となる。なお、演算部２２０は、減衰中心周波数ｆｃの他に、帯域幅ｆｗ、減衰係数Ｒを合わせて計算することができる。以下の説明では、減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを計算する方法について説明する。
【００７９】
演算部２２０が減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを計算する方法について、速度フィードフォワード処理部３０８がモータの逆特性（伝達関数はＪｓ２）とノッチフィルタとで示される場合を例にとって以下に説明する。
速度フィードフォワード処理部３０８がモータの逆特性（伝達関数はＪｓ２）とノッチフィルタとで示される場合は、数式１で示される伝達関数Ｆ（ｓ）は数式３の右辺で示す数式モデルとなり、イナーシャＪ、中心角周波数ω、比帯域ζ、減衰係数Ｒを用いて数式３の右辺のように示される。係数ａｉ、ｂｊから減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数（ダンピング）Ｒを求めるには、数式３から中心角周波数ω、比帯域ζ、減衰係数Ｒを求め、さらにω＝２πｆｃ、ζ＝ｆｗ／ｆｃから、減衰中心周波数ｆｃ、帯域幅ｆｗを求める。
【数３】
2020071508.tif 000005
数式３から、ａ０＝ω２、ｂ４＝Ｊ、ａ１＝２ζω、ｂ３＝２ＪζＲω、（ｂ３／ａ１）＝Ｒ・Ｊ、となり、ω＝２πｆｃ、ζ＝ｆｗ／ｆｃであるから、中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒは数式４で求めることができる。
【数４】
2020071508.tif 000006
【００８０】
以上、速度フィードフォワード処理部３０８がモータの逆特性（伝達関数はＪｓ２）とノッチフィルタとの数式モデルで示されるときに、減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを計算する場合を例にとって説明したが、本実施形態では特にかかる場合に限定されず、速度フィードフォワード処理部３０８の伝達関数が数式１で示すような、一般式の形をとる場合でも、ゲインの谷を持つ場合は、減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを求めることができる。また、一般にどのように高い次数のフィルタでも同様に、一つ以上の減衰する減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを求めることができる。伝達関数から周波数応答を解析できるソフトウェアは公知であって、例えば、
https://jp.mathworks.com/help/signal/ug/frequency~renponse.html
https://jp.mathworks.com/help/signal/ref/freqz.html
https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.signal.freqz.html
https://wiki.octave.org/Control_package
等を用いることができる。周波数応答から、減衰中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを求めることができる。
【００８１】
演算部２２０は、減衰中心周波数ｆｃを算出すると、制御部２０５に制御を移す。
なお、数式３の右式の伝達関数を中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒにより示された速度フィードフォワード処理部３０８の伝達関数に変換し、中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒのパラメータを機械学習装置１００で機械学習し、求めた中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒを出力装置２００が取得してもよい。この場合、取得した中心周波数ｆｃ、帯域幅ｆｗ、減衰係数Ｒは第１の物理量となる。
【００８２】
制御部２０５は、減衰中心周波数ｆｃを記憶部２０６に記憶する。記憶部２０６には、係数ａｉ、ｂｊと係数ａｉ、ｂｊに対応する評価関数値ｆ（ＰＤ（Ｓ）とが関連付けられ記憶されており、制御部２０５は、係数ａｉ、ｂｊに基づいて計算された減衰中心周波数ｆｃも評価関数値ｆ（ＰＤ（Ｓ））に関連付けられて記憶する。さらに、制御部２０５は、評価関数値が極小値を持つ減衰中心周波数ｆｃを求めて記憶部２０６に記憶し、作図部２０３に制御を移す。
なお、出力装置２００が、減衰中心周波数ｆｃ等の物理量を求めず、学習パラメータとなる速度フィード係数ａｉ、ｂｊと、評価関数値との関係を示す情報を出力する場合は、演算部２１０により、速度フィード係数ａｉ、ｂｊから減衰中心周波数ｆｃ等の物理量を計算する必要はなく、減衰中心周波数ｆｃを求めることなく、制御部２０５は、作図部２０３に制御を移す。
作図部２０３は、係数ａｉ、ｂｊに基づいて計算された減衰中心周波数ｆｃに対する、係数ａｉ、ｂｊに関連づけられて記憶された評価関数値ｆ（ＰＤ（Ｓ）の、減衰中心周波数−評価関数値の散布図を作成し、その散布図に評価関数値が極小値を示す減衰中心周波数ｆｃの値（ここでは、２５０Ｈｚと４００Ｈｚ）を加えて、減衰中心周波数−評価関数値の散布図の画像情報を作成し、制御部２０５に制御を移す。
制御部２０５は、減衰中心周波数−評価関数値の散布図を図７に示す表示画面Ｐの欄Ｐ３に表示する。
また制御部２０５は、例えば速度フィードフォワード処理部が調整対象であることを示す情報に基づいて、図７に示す表示画面Ｐの欄Ｐ２の調整対象項目に速度フィードフォワードと表示し、試行回数が最大試行回数に達していない場合は欄Ｐ２のステータス項目にデータ採取中と表示する。さらに制御部２０５は、欄Ｐ２の試行回数項目に、最大試行回数に対する試行回数の比を表示する。速度フィード係数ａｉ、ｂｊと、評価関数値との関係を示す情報を出力する場合は、作図部２０３は、例えば、速度フィード係数ａ０（減衰中心周波数ｆｃに関連するパラメータ）と評価関数値との関係を示す散布図を作成し、制御部２０５はその散布図を図７に示す表示画面Ｐの欄Ｐ３に表示する。
【００８３】
なお、図７に記載の表示画面Ｐは、一例であって、これに限られない。上記に例示した項目以外の情報を表示してもよい。また、上記に例示したいくつかの項目の情報表示を省略してもよい。
また、上記説明においては、制御部２０５は、機械学習装置１００から受信した情報を、記憶部２０６に記憶するとともにリアルタイムに、減衰中心周波数−評価関数値の散布図に関する情報等を表示部２０９に表示するものとしたが、これに限られない。
例えば、リアルタイムで表示しない構成例としては以下の例がある。
構成例１：操作者（オペレータ）等のユーザが表示指示をしたときに、図７に記載の情報を表示する。
構成例２：（学習開始時からの）試行回数の累計が、予め設定した所定の回数に達したときに、図７に記載の情報を表示する。
構成例３：機械学習の中断時又は終了時に図７に記載の情報を表示する。
【００８４】
以上の構成例１〜３においても、上述したリアルタイムでの表示の動作と同様に、情報取得部２０１が、機械学習装置１００から、試行回数で関連付けられる状態Ｓに係る係数ａｉ、ｂｊ、当該機械学習の調整対象（学習対象）に関する情報、試行回数、最大試行回数を含む情報等を受信すると、制御部２０５は、記憶部２０６に受信した情報を記憶する。その後は、構成例１ではユーザが表示指示をしたとき、構成例２では、試行回数の累計が、予め設定した所定の回数に達したとき、構成例３では、機械学習の中断時又は終了時に、制御部２０５は演算部２１０、作図部２０３に制御を移す動作を行う。
【００８５】
なお、作図部２０３は、減衰中心周波数−評価関数値の散布図の代わりに、図８に示すように、評価関数値を評価点ではなく、評価曲線の特性図として図を作成し、制御部２０５は図８に示す図を図７に示す表示画面Ｐの欄Ｐ３に表示してもよい。
【００８６】
以上の説明では、減衰中心周波数−評価関数値の散布図又は評価曲線の特性図を表示部２０９の表示画面Ｐの欄Ｐ３に表示する例について説明したが、散布図又は特性図に加えてば速度フィードフォワード処理部３０８の周波数−ゲイン特性を示す周波数特性図を追加してもよい。
例えば、作図部２０３は、演算部２１０で、数式３の右辺の中心角周波数ω、比帯域ζ、減衰係数Ｒを含む伝達関数から速度フィードフォワード処理部３０８の周波数応答を求めて、図９に示す、周波数−ゲイン特性図を作成し、制御部２０５に制御を移す。速度フィードフォワード処理部３０８の周波数応答は、数式３の右式の伝達関数から、前述した、公知の伝達関数から周波数応答を解析できるソフトウェアを用いて求めることができる。
制御部２０５は、周波数−ゲイン特性図（周波数応答特性となる）、及び減衰中心周波数−評価関数値の散布図又は評価曲線の特性図を図７に示す表示画面Ｐの欄Ｐ３に表示する。こうすることで、操作者等のユーザは速度フィードフォワード処理部３０８の周波数−ゲイン特性も同時に把握することができる。図９においては、減衰中心周波数が４００Ｈｚであることを示している。
【００８７】
以上説明した実施形態では、減衰中心周波数又は学習パラメータと評価関数値との関係を示す散布図又は評価曲線の特性図を表示部２０９の表示画面Ｐの欄Ｐ３に表示する例について説明した。
しかし、評価関数値との関係を示す物理量は、減衰中心周波数に限定されず、減衰中心周波数に換えて、帯域幅ｆｗ又は減衰係数Ｒを用いてよい。また、減衰中心周波数に帯域幅ｆｗ又は減衰係数Ｒを加えてもよく、この場合、表示画面Ｐの欄Ｐ３に表示する図は三次元図（３Ｄグラフ）とすることができる。また、帯域幅ｆｗ又は減衰係数Ｒを変えて、評価関数値と減衰中心周波数との関係を示す複数の曲線を記載した、減衰中心周波数−評価関数値の特性図を図７に示した表示画面Ｐの欄Ｐ３に表示してもよい。以下、これらの例を例１から例３として説明する。
以下の各例においても減衰中心周波数、帯域幅ｆｗ、減衰係数Ｒを速度フィードフォワード処理部の伝達関数の係数ａｉ、ｂｊのいずれかに変えてもよいことは勿論である。
【００８８】
＜例１＞
本例１は、減衰中心周波数と評価関数値とに、フィルタ減衰率（減衰係数（ダンピング））を加えた三次元図（３Ｄグラフ）を表示部２０９の表示画面Ｐの欄Ｐ３に表示した例である。
図１０は減衰中心周波数と評価関数値とフィルタ減衰率との関係を示す三次元図である。図１０において、フィルタ減衰率をフィルタ帯域（帯域幅）に換えてもよい。図１１の周波数−ゲイン特性を示す曲線に示すように、フィルタ減衰率は、曲線の谷の深さを示す。図１２の周波数−ゲイン特性を示す曲線に示すように、フィルタ帯域は、曲線の谷の広さ示す。
ユーザは、フィルタ減衰率と減衰中心周波数とが評価関数値に与える影響を理解することができる。
【００８９】
＜例２＞
本例２は、フィルタ減衰率（減衰係数（ダンピング））を３つの固定値に変えたときの、減衰中心周波数と評価関数値との曲線を示す特性図を表示部２０９の表示画面Ｐの欄Ｐ３に表示した例である。
図１３は、フィルタ減衰率（減衰係数（ダンピング））を所定の値（０％、５０％及び１００％）に変えたときの、減衰中心周波数と評価関数値との曲線を示す特性図である。
ユーザは、フィルタ減衰率が、減衰中心周波数と評価関数値との特性に与える影響を理解することができる。
【００９０】
＜例３＞
本例３は、減衰中心周波数と評価関数値とフィルタ減衰率（減衰係数（ダンピング））との関係を示す三次元図（３Ｄグラフ）を表示画面Ｐの欄Ｐ３に表示した例である。
図１４は更に減衰中心周波数と評価関数値とフィルタ減衰率との詳細な関係を示す三次元図である。図１４において、フィルタ減衰率をフィルタ帯域（帯域幅）に換えてもよい。
【００９１】
以上、出力装置２００の出力機能について説明した。
次に、出力装置２００の中継機能及び調整機能について図１５及び図１６を用いて説明する。
図１５は、機械学習の開始から機械学習終了までの、出力装置を中心とした制御装置の動作を示すフロー図である。
ステップＳ３１において、出力装置２００は、操作者が図７に示す、表示部２０９の表示画面Ｐの欄Ｐ１の「プログラム起動」をマウス、キーボード等の操作部２０４で選択すると、制御部２０５は、プログラム起動指示を、情報出力部２０２を介して機械学習装置１００に出力する。そして、サーボ制御装置３００に対して、学習のためのプログラム起動指示を機械学習装置１００に出力したことを通知する学習のためのプログラム起動指示通知を出力する。
ステップＳ３２において、出力装置２００は、サーボ制御装置３００に学習時の加工プログラムを出力する上位装置に学習時の加工プログラムの起動指示を行う。ステップＳ３２はステップ３１の前、ステップ３１と同時に行われてもよい。上位装置は学習時の加工プログラムの起動指示を受けると、位置指令を作成してサーボ制御装置３００に出力する。
ステップＳ２１において、機械学習装置１００は、プログラム起動指示を受けると、機械学習を開始する。
【００９２】
ステップＳ１１において、サーボ制御装置３００は、サーボモータ４００を制御して、速度フィードフォワード処理部３０８のパラメータ情報（係数ａｉ、ｂｊ）、位置指令、及び位置偏差、を含む情報を出力装置２００に出力する。そして、出力装置２００は、パラメータ、位置指令、及び位置偏差を機械学習装置１００へ出力する。
【００９３】
機械学習装置１００は、ステップＳ２１で行われる機械学習動作中に報酬出力部２０２１で用いられる試行回数と関連づけられた状態Ｓに係る評価関数値、最大試行回数、試行回数及び速度フィードフォワード処理部３０８の伝達関数の係数ａｉ、ｂｊの修正情報（パラメータ修正情報となる）を含む情報を出力装置２００に出力する。
ステップＳ３３で、出力装置２００は、上述した出力機能により、図７に示す表示画面Ｐの欄Ｐ１の「機械学習」が選択されると、機械学習装置１００から出力される、機械学習中の速度フィードフォワード処理部３０８の伝達関数の係数の修正情報と評価関数値に基づいて、操作者等のユーザが分かりやすい物理量（中心周波数ｆｃ等）と評価関数値との関係を示す図を作成して、表示部２０９の図７に示した表示画面Ｐの欄Ｐ３に表示する。出力装置２００は、ステップＳ３３で、又はステップＳ３３の後若しくは前に、サーボ制御装置３１０に速度フィードフォワード処理部３０８の伝達関数の係数の修正情報を送る。ステップＳ１１、ステップＳ２１、ステップＳ３３は機械学習の終了まで繰り返し行われる。
【００９４】
ここでは、機械学習中のパラメータに係る速度フィードフォワード処理部３０８の伝達関数の係数の物理量（中心周波数ｆｃ等）と評価関数との関係を示す図に係る情報をリアルタイムで表示部２０９に出力する場合について説明しているが、既に、リアルタイムで表示しない場合の例として説明した例１〜例３のような場合に、速度フィードフォワード処理部３０８の伝達関数の係数の物理量（中心周波数ｆｃ等）と評価関数との関係を示す図に係る情報を表示部２０９に出力するようにしてもよい。
【００９５】
ステップＳ３４において、出力装置２００は試行回数が最大試行回数に達したかどうかを判断し、最大試行回数が達したときは、出力装置２００はステップＳ３５において、機械学習装置１００に終了指示を送る。最大試行回数が達していない場合は、ステップＳ３３に戻る。
ステップＳ３５において、出力装置２００は機械学習装置１００に終了指示を送る。
ステップＳ２２において、機械学習装置１００は終了指示を受けると機械学習を終了する。
【００９６】
以上、出力装置２００の中継機能について説明した。次に、出力装置２００の調整機能について説明する。
操作者等のユーザは、機械学習中又は機械学習後に出力装置２００の表示部２０９の図７に示す表示画面Ｐの欄Ｐ３を見て、サーボ制御装置３００に速度フィードフォワード処理部３０８の係数の次数ｍ、ｎの変更又は機械学習装置１００に対して探索範囲の変更又は選択を指示したい場合がある。例えば、ユーザが図７に示す表示画面Ｐの欄Ｐ３の散布図の評価関数値を見て、工作機械に２５０Ｈｚと４００Ｈｚのときに、評価関数値が小さくなっていることから、その周波数に機械共振がある可能性が高いことを認識する。このような場合に、ユーザは数１の、係数ａｉ、ｂｊの次数ｍ、ｎを変更、又は係数ａｉ、ｂｊの探索範囲を変更したい場合がある。出力装置２００は学習中又は学習後にサーボ制御装置３００に対して速度フィードフォワード処理部の係数ａｉ、ｂｊの次数ｍ、ｎの調整又は機械学習装置１００に対して再学習を指示する。
【００９７】
図１６は、機械学習終了指示後の出力装置の動作を示すフロー図である。
図１５のステップＳ３５において、出力装置２００が機械学習装置１００へ終了指示を出した後に、ユーザが図７に示す表示画面Ｐの欄Ｐ３の散布図の評価関数値を見て、２５０Ｈｚと４００Ｈｚの周波数に機械共振がある可能性が高いことを認識し、図７の表示画面Ｐの「変更」をマウス、キーボード等の操作部２０４で選択する。制御部２０５は、例えば、数式３に示した伝達関数の式と、係数ａｉ、ｂｊの次数ｍ、ｎの入力欄とを、図７の表示画面Ｐ内に表示する。ユーザは数式３の右辺に示した伝達関数の式から、伝達関数が１つのフィルタで構成されていることを認識し、２つのフィルタとするために、数式３の左辺に示した伝達関数の係数ａｉの次数ｍを「２」から「４」、係数ｂｊの次数ｎを「４」から「６」に変更する。
図１６のステップＳ３６において、制御部２０５は次数の変更、又は探索範囲の変更があるかどうかを判断し、ユーザの上記次数の変更によって制御部２０５が次数の変更と判断した場合は、図７の表示画面Ｐに数式５の伝達関数を表示するとともに、ステップＳ３７において、サーボ制御装置３００へ、速度フィードフォワード処理部３０８の修正パラメータ（係数ａｉ、ｂｊの変更値）と次数ｍ、ｎを含む修正指示を出力する。数５の右辺は数式モデルとなる。係数ａｉ、ｂｊの変更値は、記憶部２０６に記憶された、評価関数値が極小値となる係数に基づいて決定することができる。サーボ制御装置３１０は、ステップＳ１１において、変更された係数ａｉ、ｂｊで工作機械を駆動し、変更された係数ａｉ、ｂｊと位置偏差を出力装置２００に出力する。
【数５】
2020071508.tif 000007
また、ステップＳ３８で、出力装置２００は機械学習装置１００に対して、試行回数を「０」にリセットするように機械学習装置１００へ指示する。ステップＳ３８はステップＳ３７と同時に実行されても、ステップＳ３７の前に実行されてもよい。
出力装置２００はステップＳ３８後にステップＳ３１へ戻る。そして、ステップＳ１１、ステップＳ２１、ステップＳ３１−Ｓ３３に基づく機械学習が再度行われる。
【００９８】
こうして、ユーザは図７の表示画面Ｐの欄Ｐ３の散布図から減衰中心周波数と評価関数値の特性を観察して、必要に応じて係数ａｉ、ｂｊの次数ｍ、ｎを変更して、機械学習させることで、速度フィードフォワード処理部３０８の係数ａｉ、ｂｊを調整することができる。
【００９９】
一方、ユーザが、図７の表示画面Ｐに示す「再学習」のボタンを選択すると、制御部２０５は、中心周波数ｆｃの入力欄を、図７の表示画面Ｐ内に表示する。ユーザは入力欄に、例えば２５０Ｈｚと４００Ｈｚと入力する。
図１６のステップＳ３６において、制御部２０５は、ユーザによって、入力欄に中心周波数ｆｃとして２５０Ｈｚと４００Ｈｚが入力されると、再学習と判断して、ステップＳ３９において、機械学習装置１００に２５０Ｈｚと４００Ｈｚを中心とした探索範囲の変更又は選択を指示する。出力装置２００は、その後、ステップＳ４０において、出力装置２００は機械学習装置１００に対して、試行回数を「０」にリセットするように機械学習装置１００へ指示する。ステップＳ４０はステップＳ３９と同時に実行されても、ステップＳ３９の前に実行されてもよい。
出力装置２００はステップＳ４０の後にステップＳ３１へ戻る。機械学習装置１００は探索範囲の変更又は選択の指示を受け、プログラムの起動指示を受けると、ステップＳ２１で、２５０Ｈｚと４００Ｈｚを中心とした再学習を実行する。このとき、探索範囲は、広い範囲から狭い範囲に変更又は２５０Ｈｚと４００Ｈｚを中心とした範囲となるように選択される。例えば、探索範囲は１００Ｈｚから１０００Ｈｚであったのを、２００Ｈｚから５００Ｈｚに変更したり、２００Ｈｚから３００Ｈｚ、４００Ｈｚから５００Ｈｚに選択される。
出力装置２００は、機械学習装置１００から送られる、変更された係数ａｉ、ｂｊと評価関数値に基づいて、減衰中心周波数−評価関数値の散布図を表示部２０９の図７に示される表示画面Ｐの欄Ｐ３に表示し、変更された係数ａｉ、ｂｊをサーボ制御装置３００へ送る。このように、ステップＳ１１、ステップＳ２１、ステップＳ３１−Ｓ３３に基づく機械学習が再度行われる。
【０１００】
こうして、ユーザは図７の表示画面Ｐの欄Ｐ３に表示される散布図から減衰中心周波数と評価関数値の特性を観察して、必要に応じて、機械学習の探索範囲を変更又は選択することで、機械学習装置１００に機械学習をさせることで、速度フィードフォワード処理部３０８の係数ａｉ、ｂｊを調整することができる。
以上、第１実施形態の出力装置及び制御装置について説明したが、次に第２及び第３の実施形態の出力装置及び制御装置について説明する。
【０１０１】
（第２実施形態）
第１の実施形態では、出力装置２００はサーボ制御装置３００と機械学習装置１００とに接続され、機械学習装置１００とサーボ制御装置３００との間の情報の中継、サーボ制御装置３００と機械学習装置１００との動作の制御を行っていた。
本実施形態では、出力装置が機械学習装置のみに接続される場合について説明する。
図１７は、本発明の第２実施形態の制御装置の一構成例を示すブロック図である。制御装置１０Ａは、機械学習装置１００、出力装置２００Ａ、サーボ制御装置３００、及びサーボモータ４００を備えている。
出力装置２００Ａは、図６に示す出力装置２００と比べて、情報取得部２１７及び情報出力部２１８を備えていない。
【０１０２】
出力装置２００Ａはサーボ制御装置３００と接続されていないため、機械学習装置１００とサーボ制御装置３００との間の情報の中継、サーボ制御装置３００との間での情報の送受信は行わない。具体的には、図１５に示す、ステップＳ３１の学習プログラム起動指示、ステップＳ３３のパラメータの物理量出力、及びステップＳ３５の再学習指示は実行するが、図１５に示すその他の動作（例えば、ステップＳ３２、Ｓ３４）は行わない。そうすることで、出力装置２００Ａはサーボ制御装置３００と接続されないため、出力装置２００Ａの動作が少なくなり、装置構成が簡易化できる。
【０１０３】
（第３実施形態）
第１の実施形態では、出力装置２００はサーボ制御装置３００と機械学習装置１００とに接続されていたが、本実施形態では、調整装置が機械学習装置１００とサーボ制御装置３００とに接続され、出力装置が調整装置に接続される場合について説明する。
図１８は、本発明の第３実施形態の制御装置の一構成例を示すブロック図である。制御装置１０Ｂは、機械学習装置１００、出力装置２００Ａ、サーボ制御装置３００及び調整装置５００を備えている。図１８に示した出力装置２００Ａは、図１７に示した出力装置２００Ａの構成と同一であるが、情報取得部２１１と情報出力部２１２が機械学習装置１００でなく、調整装置７００に接続されている。
調整装置５００は、図６の出力装置２００の作図部２０３、操作部２０４、表示部２０９及び演算部２１００が除かれた構成となっている。
【０１０４】
図１８に示した出力装置２００Ａは、第２の実施形態の図１７に示した出力装置２００Ａと同様に、図１５に示す、ステップＳ３１の学習プログラム起動指示、ステップＳ３３のパラメータの物理量出力、ステップＳ３４のパラメータの微調整の指示の他に、ステップＳ３５の再学習指示を行うが、これらの動作は、調整装置７００を介して行う。調整装置５００は、機械学習装置１００とサーボ制御装置３００との間の情報を中継する。また調整装置５００は、出力装置２００Ａが行う、機械学習装置１００に対する学習プログラム起動指示等を中継して、機械学習装置１００にそれぞれ起動指示を出力する。
そうすることで、第１実施形態と比較して出力装置２００の機能が、出力装置２００Ａと調整装置５００とに分離されるので、出力装置２００Ａの動作が少なくなり、装置構成が簡易化できる。
【０１０５】
以上本発明に係る各実施形態について説明したが、上記のサーボ制御装置、機械学習装置及び出力装置に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１０６】
プログラムは、様々なタイプの非一時的なコンピュータ読み取り可能な記録媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ読み取り可能な記録媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ読み取り可能な記録媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。
【０１０７】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態及び実施例のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１０８】
＜出力装置がサーボ制御装置又は機械学習装置に含まれる変形例＞
上述した実施形態では、機械学習装置１００、出力装置２００又は２００Ａ、及びサーボ制御装置３００を制御装置１０として構成する第１実施形態及び第２実施形態と、さらに出力装置２００を出力装置２００Ａと調整装置５００とに分離して制御装置に設けて構成した第３実施形態について説明した。これらの実施形態では、機械学習装置１００、出力装置２００又は２００Ａ、サーボ制御装置３００、調整装置５００とは別体の装置により構成しているが、これらの装置の一つを他の装置と一体に構成してもよい。例えば、出力装置２００又は２００Ａの機能の一部又は全部を機械学習装置１００、又はサーボ制御装置３００により実現するようにしてもよい。
また、出力装置２００又は２００Ａを、機械学習装置１００、及びサーボ制御装置３００で構成される制御装置の外部に設けてもよい。
【０１０９】
＜システム構成の自由度＞
図１９は他の構成の制御装置を示すブロック図である。制御装置１０Ｃは、図１９に示すように、ｎ台の機械学習装置１００−１〜１００−ｎ、出力装置２００−１〜２００−ｎ、及びｎ台のサーボ制御装置３００−１〜３００−ｎ、サーボモータ４００−１〜４００−ｎ、及びネットワーク６００を備えている。なお、ｎは任意の自然数である。ｎ台の機械学習装置１００−１〜１００−ｎのそれぞれは図５に示した機械学習装置１００に対応している。出力装置２００−１〜２００−ｎは図６に示した出力装置２００又は図１７に示した出力装置２００Ａに対応している。ｎ台のサーボ制御装置３００−１〜３００−ｎのそれぞれは図２に示したサーボ制御装置３００に対応している。図１８に示した出力装置２００Ａ及び調整装置５００は出力装置２００−１〜２００−ｎに対応している。
【０１１０】
ここで、出力装置２００−１とサーボ制御装置３００−１とは１対１の組とされて、通信可能に接続されている。出力装置２００−２〜２００−ｎとサーボ制御装置３００−２〜３００−ｎとについても、出力装置２００−１とサーボ制御装置３００−１と同様に接続される。図１９では、出力装置２００−１〜２００−ｎとサーボ制御装置３００−１〜３００−ｎとのｎ個の組は、ネットワーク６００を介して接続されているが、出力装置２００−１〜２００−ｎとサーボ制御装置３００−１〜３００−ｎとのｎ個の組は、それぞれの組の出力装置とサーボ制御装置とが接続インタフェースを介して直接接続されてもよい。これら出力装置２００−１〜２００−ｎとサーボ制御装置３００−１〜３００−ｎとのｎ個の組は、例えば同じ工場に複数組設置されていてもよく、それぞれ異なる工場に設置されていてもよい。
【０１１１】
なお、ネットワーク６００は、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワーク６００における具体的な通信方式や、有線接続および無線接続のいずれであるか等については、特に限定されない。
【０１１２】
上述した図１９の制御装置では、出力装置２００−１〜２００−ｎとサーボ制御装置３００−１−３００−ｎとが１対１の組として通信可能に接続されているが、例えば１台の出力装置２００−１が複数のサーボ制御装置３００−１〜３００−ｍ（ｍ＜ｎ又はｍ＝ｎ）とネットワーク６００を介して通信可能に接続され、１台の出力装置２００−１と接続される１台の機械学習装置が各サーボ制御装置３００−１〜３００−ｍの機械学習を実施するようにしてもよい。
その際、機械学習装置１００−１の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置１００−１の各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズのサーボ制御装置３００−１〜３００−ｎとそれぞれ対応する複数の機械学習装置１００−１〜１００−ｎがあった場合に、各機械学習装置１００−１〜１００−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【符号の説明】
【０１１３】
１０、１０Ａ、１０Ｂ、１０Ｃ  制御装置
１００  機械学習装置
２００  出力装置
２１１  情報取得部
２１２  情報出力部
２１３  作図部
２１４  操作部
２１５  制御部
２１６  記憶部
２１７  情報取得部
２１８  情報出力部
２１９  表示部
２２０  演算部
３００  サーボ制御装置
４００  サーボモータ
５００  調整装置
６００  ネットワーク
【図１】
2020071508.tif 000008
【図２】
2020071508.tif 000009
【図３】
2020071508.tif 000010
【図４】
2020071508.tif 000011
【図５】
2020071508.tif 000012
【図６】
2020071508.tif 000013
【図７】
2020071508.tif 000014
【図８】
2020071508.tif 000015
【図９】
2020071508.tif 000016
【図１０】
2020071508.tif 000017
【図１１】
2020071508.tif 000018
【図１２】
2020071508.tif 000019
【図１３】
2020071508.tif 000020
【図１４】
2020071508.tif 000021
【図１５】
2020071508.tif 000022
【図１６】
2020071508.tif 000023
【図１７】
2020071508.tif 000024
【図１８】
2020071508.tif 000025
【図１９】
2020071508.tif 000026