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