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