(57)【要約】【課題】モータ制御装置における制御対象の特性を同定し、速度制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出する。【解決手段】モータ制御装置１００に対して、フィードフォワード制御器導出装置２００により位置フィードフォワード制御器１０９の伝達関数を固定にし、２つの異なる速度フィードバックゲインごとに、それぞれ速度フィードフォワード制御器１１０を調整し、調整された２つの速度フィードフォワード制御器１１０のパラメータからモータの伝達特性ＰＭと負荷側（機械側）の伝達特性ＰＬを同定し、同定したＰＭ、ＰＬから、速度制御器１０６に依存しない位置・速度偏差を０にする位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０の制御パラメータを導出する。【選択図】図１
2020046965.tif 000002
【特許請求の範囲】
【請求項１】
工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置のフィードフォワード制御器導出装置であって、
前記モータ制御装置は、
第１指令及び第１検出量から第１制御量を作成する第１制御器と、
前記第１指令から第１フィードフォワード制御量を作成する第１フィードフォワード制御器と、
前記第１指令から第２フィードフォワード制御量を作成する第２フィードフォワード制御器と、
前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令に対して、前記第２指令及び第２検出量から第２制御量を作成する第２制御器と、
前記第２制御量及び前記第２フィードフォワード制御量から第３指令を作成する第３加算部と、を備え、
前記フィードフォワード制御器導出装置は、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを取得する第２制御パラメータ取得部と、
前記第２制御パラメータ取得部により取得した、複数の前記第２制御器ごとに調整された前記第２フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部と、
前記特性同定部により同定された制御対象の特性に基づいて第１フィードフォワード制御器（位置ＦＦ制御部）及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部と、
を備える前記モータ制御装置のフィードフォワード制御器導出装置。
【請求項２】
工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置のフィードフォワード制御器導出装置であって、
前記モータ制御装置は、
第１指令及び第１検出量から第１制御量を作成する第１制御器と、
前記第１指令から第１フィードフォワード制御量を作成する第１フィードフォワード制御器と、
前記第１指令から第２フィードフォワード制御量を作成する第２フィードフォワード制御器と、
前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令に対して、前記第２指令及び第２検出量から第２制御量を作成する第２制御器と、
前記第２制御量及び前記第２フィードフォワード制御量から第３指令を作成する第３加算部と、を備え、
前記フィードフォワード制御器導出装置は、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを取得する第１制御パラメータ取得部と、
前記第１制御パラメータ取得部により取得した、複数の前記第２制御器ごとに調整された前記第１フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部と、
前記特性同定部により同定された制御対象の特性に基づいて第１フィードフォワード制御器及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部と、
を備える前記モータ制御装置のフィードフォワード制御器導出装置。
【請求項３】
前記第２制御パラメータ取得部は、さらに
機械学習器又は機械学習器と通信する通信部を備え、
前記機械学習器は、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを学習する、請求項１に記載のフィードフォワード制御器導出装置。
【請求項４】
前記第１制御パラメータ取得部は、さらに
機械学習器又は機械学習器と通信する通信部を備え、
前記機械学習器は、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを学習する、請求項２に記載のフィードフォワード制御器導出装置。
【請求項５】
前記制御対象の特性は、サーボモータ、又はスピンドルモータの伝達特性と、工作機械、ロボット、又は産業機械の伝達特性と、を含み、
前記第１指令は位置指令であり、
前記第１検出量は、位置を検出する位置検出部により検出される位置であり、
前記第２指令は速度指令であり、
前記第２検出量は、速度を検出する速度検出部により検出される速度であり、
前記第３指令はトルク指令である、請求項１から請求項４のいずれか１項に記載のフィードフォワード制御器導出装置。
【請求項６】
請求項１から請求項５の何れか１項に記載のフィードフォワード制御器導出装置を備え、
工作機械、ロボット、産業機械の軸を駆動するサーボモータ、スピンドルモータを制御するモータ制御装置。
【請求項７】
請求項１から請求項５の何れか１項に記載のフィードフォワード制御器導出装置を備える制御装置。
【請求項８】
第１指令及び第１検出量から第１制御量を作成する第１制御器と、
前記第１指令から第１フィードフォワード制御量を作成する第１フィードフォワード制御器と、
前記第１指令から第２フィードフォワード制御量を作成する第２フィードフォワード制御器と、
前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令に対して、前記第２指令及び第２検出量から第２制御量を作成する第２制御器と、
前記第２制御量及び前記第２フィードフォワード制御量から第３指令を作成する第３加算部と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、
コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを取得する第２制御パラメータ取得ステップと、
前記第２制御パラメータ取得ステップにおいて取得した、複数の前記第２制御器ごとに調整された前記第２フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、
前記特性同定ステップにおいて同定された制御対象の特性に基づいて第１フィードフォワード制御器及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、
を備える前記モータ制御装置のフィードフォワード制御器導出方法。
【請求項９】
第１指令及び第１検出量から第１制御量を作成する第１制御器と、
前記第１指令から第１フィードフォワード制御量を作成する第１フィードフォワード制御器と、
前記第１指令から第２フィードフォワード制御量を作成する第２フィードフォワード制御器と、
前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令に対して、前記第２指令及び第２検出量から第２制御量を作成する第２制御器と、
前記第２制御量及び前記第２フィードフォワード制御量から第３指令を作成する第３加算部と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、
コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、
それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを取得する第１制御パラメータ取得ステップと、
前記第１制御パラメータ取得ステップにおいて取得した、複数の前記第２制御器ごとに調整された前記第１フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、
前記特性同定ステップにおいて同定された制御対象の特性に基づいて第１フィードフォワード制御器及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、
を備える前記モータ制御装置のフィードフォワード制御器導出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法に関する。
【背景技術】
【０００２】
フィードフォワード制御を用いたモータ制御装置は、例えば特許文献１、特許文献２に記載されている。
特許文献１には、位置指令値から速度指令のフィードフォワード項を計算して、位置制御器から出力される速度指令に加算する位置フィードフォワード制御器と、位置指令値からトルク指令のフィードフォワード項を計算して、速度制御器から出力されるトルク指令に加算する速度フィードフォワード制御器と、が記載されている。また特許文献１には、位置指令値とフィードバックされた位置検出値との差である位置偏差に基づいて位置フィードフォワード制御器のゲインを学習する学習制御器と、位置偏差又は、速度指令値とフィードバックされた速度検出値との差である速度偏差に基づいて速度フィードフォワード制御器のゲインを学習する学習制御器と、が記載されている。
【０００３】
特許文献２では、位置指令を微分し、位置のフィードフォワード制御量を求め、位置ループ制御で得られた制御量に上記フィードフォワード制御量を加算し速度指令とし、上記位置のフィードフォワード制御量を微分して得られる速度のフィードフォワード制御量を、速度ループ制御によって得られる値に加算して、トルク電流指令としている。その際、速度フィードフォワード係数α２は、Ｊ／ｋｔ（Ｊ：慣性モーメント、ｋｔ：トルク定数）に近い値として、位置フィードフォワード係数α１をモータの特性等に合わせて実験的に決められることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−０８５９０２号公報
【特許文献２】特開平３−０１５９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フィードフォワード制御を用いたモータ制御装置における位置フィードフォワード（ＦＦ）制御器、速度フィードフォワード（ＦＦ）制御器の調整に際して、理想的には（１）まず位置制御を無効にして、速度フィードフォワード（ＦＦ）制御器のみを速度偏差が０になるように調整した後に、（２）次に、位置偏差が０になるように位置フィードフォワード（ＦＦ）制御器のみを調整する、という順序で位置フィードフォワード（ＦＦ）制御器、速度フィードフォワード（ＦＦ）制御器を調整することが好ましい。しかしながら、（１）で仮に位置制御を無効にした場合、機械が危険な状態になるという問題があった。
このため、従来は、位置制御を有効にしながら同時に二つのフィードフォワード（ＦＦ）制御器を調整する必要があり、例えば、特許文献１においては、モータ制御装置は、位置フィードフォワード制御に対する学習を行う学習制御器と、速度フィードフォワード制御に対する学習を行う学習制御器とを用いて、位置フィードフォワード制御に対する学習と速度フィードフォワード制御に対する学習とを同時に行っている。また、特許文献２においても、位置フィードフォワード係数α１と速度フィードフォワード係数α２の調整を同時に行っている。
しかしながら、位置フィードフォワード制御に対する学習と速度フィードフォワード制御に対する学習とを同時に行うと、学習のための情報処理量が増大する。一方の学習制御器が位置偏差を低減すべく、位置偏差に基づいて速度指令に対するフィードフォワード項を変更しても、他方の学習制御器が位置偏差に基づいてトルク速度指令に対するフィードフォワード項を変更すると、その変更の影響を受けて位置偏差が変わる。このため、二つの学習制御器の学習が相互に干渉して、二つの学習制御器の学習のための情報処理量が増大する。
【０００６】
このように、従来は位置制御を有効にしながら同時に二つのフィードフォワード（ＦＦ）制御器を調整する必要があり、このため、調整には一定の試行錯誤を要するとともに、そのため高次の（パラメータの多い） フィードフォワード（ＦＦ）制御器を実現することも困難であった。
また、位置フィードフォワード（ＦＦ）制御器、速度フィードフォワード（ＦＦ）制御器は、フィードバック（ＦＢ）制御器に依存した形で調整されるので、例えば、フィードバック（ＦＢ）制御器のゲインを変えるとフィードフォワード（ＦＦ）制御器も再度調整しなければならないという問題があった。
【０００７】
本発明は、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）  本発明に係るフィードフォワード制御器導出装置（例えば後述のフィードフォワード制御器導出装置２００）は、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置（例えば後述のモータ制御装置１００）のフィードフォワード制御器導出装置であって、前記モータ制御装置は、第１指令（例えば後述の位置指令値ｙ＊）及び第１検出量（例えば後述の機械位置ｙＬ）から第１制御量（例えば後述の速度指令値ｖ＊）を作成する第１制御器（例えば後述の位置制御器１０３）と、前記第１指令から第１フィードフォワード制御量（例えば後述の位置フィードフォワード制御量）を作成する第１フィードフォワード制御器（例えば後述の位置フィードフォワード制御器１０９）と、前記第１指令から第２フィードフォワード制御量（例えば後述の速度フィードフォワード制御量）を作成する第２フィードフォワード制御器（例えば後述の速度フィードフォワード制御器１１０）と、前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令（例えば後述のフィードフォワード制御された速度指令値）に対して、前記第２指令及び第２検出量（例えば後述のモータ速度ｖＭ）から第２制御量（例えば後述のトルク指令値ＴＭ）を作成する第２制御器（例えば後述の速度制御器１０６）と、前記第２制御量及び前記第２フィードフォワード制御量から第３指令（フィードフォワード制御されたトルク指令値）を作成する第３加算部（例えば後述の加算器１０７）と、を備え、前記フィードフォワード制御器導出装置は、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを取得する第２制御パラメータ取得部（例えば後述の第２制御パラメータ取得部２０１）と、前記第２制御パラメータ取得部により取得した、複数の前記第２制御器ごとに調整された前記第２フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部（例えば後述の特性同定部２０２）と、前記特性同定部により同定された制御対象の特性に基づいて第１フィードフォワード制御器及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部（例えば後述の制御パラメータ算出部２０３）と、を備える。
【０００９】
（２）  本発明に係るフィードフォワード制御器導出装置（例えば後述のフィードフォワード制御器導出装置２００Ａ）は、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置（例えば後述のモータ制御装置１００）のフィードフォワード制御器導出装置であって、前記モータ制御装置は、第１指令（例えば後述の位置指令値ｙ＊）及び第１検出量（例えば後述の機械位置ｙＬ）から第１制御量（例えば後述の速度指令値ｖ＊）を作成する第１制御器（例えば後述の位置制御器１０３）と、前記第１指令から第１フィードフォワード制御量（例えば後述の位置フィードフォワード制御量）を作成する第１フィードフォワード制御器（例えば後述の位置フィードフォワード制御器１０９）と、前記第１指令から第２フィードフォワード制御量（例えば後述の速度フィードフォワード制御量）を作成する第２フィードフォワード制御器（例えば後述の速度フィードフォワード制御器１１０）と、前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令（例えば後述のフィードフォワード制御された速度指令値）に対して、前記第２指令及び第２検出量（例えば後述のモータ速度ｖＭ）から第２制御量（例えば後述のトルク指令値ＴＭ）を作成する第２制御器（例えば後述の速度制御器１０６）と、前記第２制御量及び前記第２フィードフォワード制御量から第３指令（フィードフォワード制御されたトルク指令値）を作成する第３加算部（例えば後述の加算器１０７）と、を備え、前記フィードフォワード制御器導出装置は、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを取得する第１制御パラメータ取得部（例えば後述の第１制御パラメータ取得部２０４）と、前記第１制御パラメータ取得部により取得した、複数の前記第２制御器ごとに調整された前記第１フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定部（例えば後述の特性同定部２０２Ａ）と、前記特性同定部により同定された制御対象の特性に基づいて第１フィードフォワード制御器及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出部（例えば後述の制御パラメータ算出部２０３Ａ）と、を備える。
【００１０】
（３）  上記（１）のフィードフォワード制御器導出装置において、前記第２制御パラメータ取得部は、さらに、機械学習器（例えば後述の機械学習器３００）又は機械学習器と通信する通信部を備え、前記機械学習器は、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを学習するようにしてもよい。
【００１１】
（４）  上記（２）のフィードフォワード制御器導出装置において、前記第１制御パラメータ取得部は、さらに、機械学習器（例えば後述の機械学習装置３００Ａ）又は機械学習器と通信する通信部を備え、前記機械学習器は、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを学習してもよい。
【００１２】
（５）  上記（１）から（４）のいずれかのフィードフォワード制御器導出装置において、前記制御対象の特性は、サーボモータ、又はスピンドルモータの伝達特性（例えば後述の伝達関数ＰＭ（ｓ））と、工作機械、ロボット、又は産業機械の伝達特性（例えば後述の伝達関数ＰＬ（ｓ））と、を含み、前記第１指令は位置指令であり、前記第１検出量は、位置を検出する位置検出部（例えば後述の位置検出器１５４）により検出される位置であり、前記第２指令は速度指令であり、前記第２検出量は、速度を検出する速度検出部（例えば後述のロータリーエンコーダ１５１）により検出される速度であり、前記第３指令はトルク指令としてもよい。
【００１３】
（６）  本発明に係るモータ制御装置は、（１）から（５）の何れかのフィードフォワード制御器導出装置を備え、工作機械、ロボット、産業機械の軸を駆動するサーボモータ、スピンドルモータを制御するモータ制御装置である。
【００１４】
（７）本発明に係る制御装置（例えば後述の制御装置４００）は、（１）から（５）の何れかのフィードフォワード制御器導出装置を備える制御装置である。
【００１５】
（８）  本発明に係るフィードフォワード制御器導出方法は、第１指令（例えば後述の位置指令値ｙ＊）及び第１検出量（例えば後述の機械位置ｙＬ）から第１制御量（例えば後述の速度指令値ｖ＊）を作成する第１制御器（例えば後述の位置制御器１０３）と、前記第１指令から第１フィードフォワード制御量（例えば後述の位置フィードフォワード制御量）を作成する第１フィードフォワード制御器（例えば後述の位置フィードフォワード制御器１０９）と、前記第１指令から第２フィードフォワード制御量（例えば後述の速度フィードフォワード制御量）を作成する第２フィードフォワード制御器（例えば後述の速度フィードフォワード制御器１１０）と、前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令（例えば後述のフィードフォワード制御された速度指令値）に対して、前記第２指令及び第２検出量（例えば後述のモータ速度ｖＭ）から第２制御量（例えば後述のトルク指令値ＴＭ）を作成する第２制御器（例えば後述の速度制御器１０６）と、前記第２制御量及び前記第２フィードフォワード制御量から第３指令（フィードフォワード制御されたトルク指令値）を作成する第３加算部（例えば後述の加算器１０７）と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第２フィードフォワード制御器における制御パラメータを取得する第２制御パラメータ取得ステップと、前記第２制御パラメータ取得ステップにおいて取得した、複数の前記第２制御器ごとに調整された前記第２フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、前記特性同定ステップにおいて同定された制御対象の特性に基づいて第１フィードフォワード制御器（位置ＦＦ制御部）及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、を備える前記モータ制御装置のフィードフォワード制御器導出方法である。
【００１６】
（９）    本発明に係るフィードフォワード制御器導出方法は、第１指令（例えば後述の位置指令値ｙ＊）及び第１検出量（例えば後述の機械位置ｙＬ）から第１制御量（例えば後述の速度指令値ｖ＊）を作成する第１制御器（例えば後述の位置制御器１０３）と、前記第１指令から第１フィードフォワード制御量（例えば後述の位置フィードフォワード制御量）を作成する第１フィードフォワード制御器（例えば後述の位置フィードフォワード制御器１０９）と、前記第１指令から第２フィードフォワード制御量（例えば後述の速度フィードフォワード制御量）を作成する第２フィードフォワード制御器（例えば後述の速度フィードフォワード制御器１１０）と、前記第１制御量と前記第１フィードフォワード制御量とから作成される第２指令（例えば後述のフィードフォワード制御された速度指令値）に対して、前記第２指令及び第２検出量（例えば後述のモータ速度ｖＭ）から第２制御量（例えば後述のトルク指令値ＴＭ）を作成する第２制御器（例えば後述の速度制御器１０６）と、前記第２制御量及び前記第２フィードフォワード制御量から第３指令（フィードフォワード制御されたトルク指令値）を作成する第３加算部（例えば後述の加算器１０７）と、を備える、工作機械、ロボット、産業機械のサーボモータ、スピンドルモータを制御するモータ制御装置に対して、コンピュータによる前記モータ制御装置のフィードフォワード制御器導出方法であって、それぞれ異なる制御パラメータの適用された複数の前記第２制御器ごとに、前記第１指令と前記第１検出量の偏差に基づいて調整された、前記第１フィードフォワード制御器における制御パラメータを取得する第１制御パラメータ取得ステップと、前記第１制御パラメータ取得ステップにおいて取得した、複数の前記第２制御器ごとに調整された前記第１フィードフォワード制御器における制御パラメータに基づいて、制御対象の特性を同定する特性同定ステップと、前記特性同定ステップにおいて同定された制御対象の特性に基づいて第１フィードフォワード制御器（位置ＦＦ制御部）及び前記第２フィードフォワード制御器の制御パラメータを算出する制御パラメータ算出ステップと、を備える前記モータ制御装置のフィードフォワード制御器導出方法である。
【発明の効果】
【００１７】
本発明によれば、モータ制御装置において、未知の制御対象の特性を同定し、それにより、速度フィードバック制御器に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器を導出するモータ制御装置のフィードフォワード制御器導出装置、モータ制御装置、制御装置、及びフィードフォワード制御器導出方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態の制御システムの機能ブロック図である。
【図２】本発明の実施形態のモータ制御装置のフルクローズド制御モデルを示すブロック図である。
【図３】フルクローズド制御モデルを採用するモータ制御装置１００の一例を示すブロック図である。
【図４】モータ制御装置のセミクローズ度制御モデルを示すブロック図である。
【図５】本発明の実施形態のフィードフォワード制御器導出装置２００及び機械学習装置の機能ブロック図である。
【図６Ａ】本発明の実施形態の変形例における制御システムの機能ブロック図である。
【図６Ｂ】本発明の実施形態のフィードフォワード制御器導出装置２００Ａ及び機械学習装置の機能ブロック図である。
【図７Ａ】本発明の実施形態の機械学習部３００の機能ブロック図である。
【図７Ｂ】本発明の実施形態の機械学習部３００Ａの機能ブロック図である。
【図８】本発明の実施形態のフィードフォワード制御器導出装置２００の動作を説明するフローチャートである。
【図９】本発明の実施形態の変形例におけるフィードフォワード制御器導出装置２００Ａの動作を説明するフローチャートである。
【発明を実施するための形態】
【００１９】
＜全体構成＞
以下、本発明の実施形態について図面を用いて詳細に説明する。
図１は発明の第１の実施形態の制御システムを示すブロック図である。制御システム１０は、図１に示すように、モータ制御装置１００、フィードフォワード制御器導出装置２００、機械学習装置３０００、制御装置４００を備えている。ここで制御装置４００は、例えば、工作機械等を制御する数値制御装置やロボットを制御するロボット制御装置等の上位の制御装置である。以下、フィードフォワード制御器導出装置２００を「ＦＦ制御器導出装置２００」ともいう。
モータ制御装置１００、ＦＦ制御器導出装置２００、及び機械学習装置３０００は１対１の組とされてそれぞれ通信可能に接続される。また、モータ制御装置１００は制御装置４００に接続される。モータ制御装置１００、ＦＦ制御器導出装置２００、及び機械学習装置３０００は、例えば、接続インタフェースを介して直接接続されてもよい。また、ネットワーク（図示せず）を介して接続されてもよい。なお、ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続及び無線接続のいずれであるか等については、特に限定されない。
【００２０】
＜モータ制御装置１００＞
図２は本発明の第１の実施形態のモータ制御装置１００が採用するフルクローズド制御モデルを示すブロック図である。フルクローズド制御モデルを採用することでモータ制御装置１００は、工作機械の位置を高精度に制御することができる。
図３は、フルクローズド制御モデルを採用するモータ制御装置１００の一例を示すブロック図である。
モータ１５０は、モータ制御装置の制御対象となる、例えば工作機械，ロボット，産業機械等に含まれる。モータ制御装置１００はモータ１５０とともに、工作機械、ロボット、産業機械等の一部として設けられてもよい。
モータ制御装置１００は、例えば、モータ１５０で連結機構１５２を介してテーブル１５３を移動させることで、テーブル１５３の上に搭載された被加工物（ワーク）を加工する。連結機構１５２は、モータ１５０に連結されたカップリング１５２１と、カップリング１５２１に固定されるボールねじ１５２３とを有し、ボールねじ１５２３にナット１５２２が螺合されている。モータ１５０の回転駆動によって、ボールねじ１５２３に螺着されたナット１５２２がボールねじ１５２３の軸方向に移動する。ナット１５２２の移動によってテーブル１５３が移動する。
【００２１】
モータ１５０の回転変位量は、モータ１５０に関連付けられた、ロータリーエンコーダ１５１によって検出される。検出された信号に基づいて検出されるモータ速度ｖＭは速度フィードバックとして利用される。また、ボールねじ１５２３の端部に取り付けられ、ボールねじ１５２３の移動距離を検出する位置検出器１５４（リニアスケール１５４）の出力は位置フィードバックとして利用される。このようにフルクローズドモデルでは、位置検出器（リニアスケール１５４）により機械位置ｙＬを取得して制御を行う。そうすることで、制御したい機械位置ｙＬを制御することができる。
なお、フルクローズド制御に対して、セミクローズド制御と呼ばれる制御がある。これは、図４に示すように、ロータリーエンコーダ１５１によって検出された信号を積分器（図示せず）で積分することで得られるモータの回転角ｙＭ及びモータ速度ｖＭのフィードバック情報に基づいてモータ位置の制御を行う。しかしながら、モータと機械の間には、前述したようにボールねじ１５２３、カップリング１５２１、ナット１５２２のような伝達機構が存在するため、モータ位置は機械位置ｙＬと同じ値とはならず、ｙＭを制御できても、機械位置ｙＬを制御できないことがある。セミクローズド制御モデルについては、後述の＜補足説明３＞で説明する。
【００２２】
図２を参照しながら、モータ制御装置１００のフルクローズド制御方式について説明する。
モータ制御装置１００は、減算器１０２、第１制御器としての位置制御器１０３、加算器１０４、減算器１０５、第２制御器としての速度制御器１０６、第３加算部としての加算器１０７、積分器１０８、第１フィードフォワード制御器としての位置フィードフォワード制御器１０９、及び第２フィードフォワード制御器としての速度フィードフォワード制御器１１０を備えている。
例えば、制御装置４００は、モータ１５０を動作させるプログラムに基づいて位置指令値ｙ＊を作成し、作成した位置指令値ｙ＊をモータ制御装置１００に入力する。より、具体的には、位置指令値ｙ＊は、減算器１０２、位置フィードフォワード制御器１０９、速度フィードフォワード制御器１１０に出力する。減算器１０２は位置指令値ｙ＊と位置フィードバックされた第１検出量としての機械位置ｙＬとの差を求め、その差を位置偏差として位置制御器１０３に出力する。
【００２３】
モータ１５０は、例えば工作機械に含まれる。工作機械において、被加工物（ワーク）を搭載するテーブルがＸ軸方向及びＹ軸方向に移動される場合には、Ｘ軸方向及びＹ軸方向に対してそれぞれ図１に示すモータ制御装置１００及びモータ１５０が設けられる。テーブルを３軸以上の方向に移動させる場合には、それぞれの軸方向に対してモータ制御装置１００及びモータ１５０が設けられる。
制御装置４００は、加工プログラムにより指定される加工形状となるように、送り速度を設定して位置指令値ｙ＊を作成する。
【００２４】
位置制御器１０３は、位置偏差にポジションゲインＫｐを乗じた値を、第１制御量としての速度指令値ｖ＊として加算器１０４に出力する。
位置フィードフォワード制御器１０９は、伝達関数ＦＦ（ｓ）で示された位置フィードフォワード処理を行い、その処理結果を第１フィードフォワード制御量としての位置フィードフォワード制御量として、加算器１０４に出力する。数式１の係数ｃｉ、ｄｊ（ｉ，ｊ≧０）は位置フィードフォワード制御器１０９の制御パラメータとしての伝達関数の各係数である。
【数１】
2020046965.tif 000003
（数式１）
ここで、位置制御を有効にするため、Ｋｐ＞０かつＦＦ（ｓ）≠０とする。このように設定することで、機械が暴走する危険もなく、安全な位置制御がなされる。
【００２５】
加算器１０４は、速度指令値ｖ＊と位置フィードフォワード制御器１０９の出力値（位置フィードフォワード制御量）とを加算して第２指令としてのフィードフォワード制御された速度指令値を作成し、減算器１０５に出力する。減算器１０５は加算器１０４の出力と速度フィードバックされた第２検出量としてのモータ速度ｖＭとの差を求め、その差を速度偏差として速度制御器１０６に出力する。
【００２６】
速度制御器１０６は、伝達関数ＣＶ（ｓ）で示された処理を行い、第２制御量としてのトルク指令値ＴＭを第３加算部としての加算器１０７に出力する。伝達関数ＣＶ（ｓ）は、例えば、速度偏差に積分ゲインＫ１ｖを乗じて積分した値と、速度偏差に比例ゲインＫ２ｖを乗じた値とを加算する関数が例示される。
【００２７】
速度フィードフォワード制御器１１０は伝達関数ＶＦＦ（ｓ）で示される速度フィードフォワード処理を行い、その処理結果を第２フィードフォワード制御量としての速度フィードフォワード制御量として、加算器１０７に出力する。伝達関数ＶＦＦ（ｓ）は、数式２で定義される。ここで、数式２の係数ａｉ、ｂｊ（ｉ，ｊ≧０）は速度フィードフォワード制御器１１０の制御パラメータとしての伝達関数の各係数である。
【数２】
2020046965.tif 000004
（数式２）
【００２８】
加算器１０７は、トルク指令値ＴＭと速度フィードフォワード制御器１１０の出力値（速度フィードフォワード制御量）とを加算して、第３指令としてのフィードフォワード制御されたトルク指令値としてモータ１５０に出力してモータ１５０を駆動する。
【００２９】
モータ１５０の回転変位量は、モータ１５０に関連付けられた、ロータリーエンコーダ１５１によって検出され、検出された信号に基づいて検出される速度検出値であるモータ速度ｖＭは速度フィードバックとして減算器１０５に入力される。ここで、伝達関数ＰＭ（ｓ）は、モータが発生するトルクＴＭ（入力）からモータ速度ｖＭまでのモータの伝達関数を表す。
積分器１０８は、ロータリーエンコーダ１５１によって検出された速度検出値であるモータ速度ｖＭを積分して、モータの回転角ｙＭを出力する。
また、前述したように、ボールねじ１５２３の端部に取り付けられ、ボールねじ１５２３の移動距離を検出する位置検出器（リニアスケール１５４）の出力である機械位置ｙＬは位置フィードバックとして減算器１０２に入力される。なお、伝達関数ＰＬ（ｓ）は、モータが発生するトルクＴＭから機械速度（出力）までの機械の伝達関数を表す。
以上のように、フルクローズド制御モデルを採用するモータ制御装置１００は構成される。
【００３０】
＜フルクローズド制御モデルにおける伝達関数間で成立する関係式＞
次に、ＦＦ制御器導出装置２００の機能を説明する前に、フルクローズド制御モデルにおいて、位置指令値ｙ＊に対して機械位置ｙＬが完全追従する場合（すなわち、ｙ＊＝ｙＬが成立する場合）における図２で示した伝達関数ＦＦ（ｓ）、ＶＦＦ（ｓ）、ＰＭ（ｓ）、ＰＬ（ｓ）、ＣＶ（ｓ）の間で成り立つ関係式を説明する。
【００３１】
＜位置指令値ｙ＊に対して機械位置ｙＬが完全追従する場合の伝達関数の関係＞
図２を参照して、位置指令値ｙ＊に対して機械位置ｙＬが完全追従する場合に、伝達関数ＦＦ（ｓ）、ＶＦＦ（ｓ）、ＰＭ（ｓ）、ＰＬ（ｓ）、及びＣＶ（ｓ）の間で成り立つ関係式について説明する。以下、ＰＭ（ｓ）、ＣＶ（ｓ）、ＰＬ（ｓ）をそれぞれＰＭ、ＣＶ、ＰＬで表す。
【００３２】
位置指令値ｙ＊に対して機械位置ｙＬが完全追従することから、位置指令値ｙ＊と機械位置ｙＬが一致し、位置偏差は０となり、速度指令値ｖ＊は０となる。これにより、以下の式が成り立つ。
ｖＭ＝ＰＭ・ＣＶ・ＦＦ（ｓ）・ｙ＊＋ＰＭ・ＶＦＦ（ｓ）・ｙ＊−ＰＭ・ＣＶ・ｖＭ
上記の式を変形することで、ｖＭは（数式３）で表される。
【数３】
2020046965.tif 000005
（数式３）
他方、ｙＬは、（数式４）で表されることから、（数式４）のｖＭに（数式３）を代入することで、ｙＬは、（数式５）で表される。
【数４】
2020046965.tif 000006
（数式４）
【数５】
2020046965.tif 000007
（数式５）
ここで、ｙ＊＝ｙＬであることから、ＦＦ（ｓ）、ＶＦＦ（ｓ）、ＰＭ（ｓ）、ＰＬ（ｓ）、及びＣＶ（ｓ）の間で以下の関係式（数式６）がなりたつ。
【数６】
2020046965.tif 000008
（数式６）
【００３３】
＜速度制御器１０６に依存しない位置フィードフォワード制御器及び速度フィードフォワード制御器の導出＞
次に、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）が、それぞれ、速度制御器１０６の伝達関数ＣＶ（ｓ）に依存しない、伝達関数ＰＭ（ｓ）及びＰＬ（ｓ）のみで設定できることについて説明する。
（数式６）の両辺に（１＋ＰＭＰＬ）を掛けることで、（数式７）が導出される。
【数７】
2020046965.tif 000009
（数式７）
（数式７）をＣＶでまとめると、（数式８）を得る。
【数８】
2020046965.tif 000010
（数式８）
そうすると、ＦＦ（ｓ）及びＶＦＦ（ｓ）を（数式９）に示すように伝達関数ＰＭ（ｓ）及びＰＬ（ｓ）に基づいて設定することで、速度制御器１０６の伝達関数ＣＶ（ｓ）に依存しない、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を得ることができる。
【数９】
2020046965.tif 000011
（数式９）
【００３４】
以上のように、フルクローズド制御モデルにおいては、伝達関数ＰＭ（ｓ）及びＰＬ（ｓ）に基づいて（数式９）で定義される、位置フィードフォワード制御器１０９（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０（伝達関数ＶＦＦ（ｓ））を適用することで、位置制御器１０３及び速度制御器１０６の値に関わらず、位置指令値ｙ＊に対して機械位置ｙＬが完全追従する（位置偏差を０にする）ことが可能となる。
【００３５】
＜伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）の算出＞
フルクローズド制御モデルにおいて、ＦＦ制御器導出装置２００は、（数式６）乃至（数式７）を用いることで、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を以下の手順で算出することができる。
【００３６】
まず、ＦＦ制御器導出装置２００は、位置制御を有効（Ｋｐ＞０）にし、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）を固定（例えばＦＦ（ｓ）＝ｓ）し、二つの速度制御器１０６−１（伝達関数ＣＶ１（ｓ））及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ））を用意して、速度制御器１０６−１及び速度制御器１０６−２ごとに、（例えば機械学習等により）位置偏差を０とするような、最適な速度フィードフォワード制御器１１０−１（伝達関数ＶＦＦ１（ｓ））及び速度フィードフォワード制御器１１０−２（ＶＦＦ２（ｓ））を求める。
【００３７】
そうすると、数式（６）又は数式（７）において、ＦＦ（ｓ）＝ｓを代入することで、ＰＭ（ｓ）、及びＰＬ（ｓ）を未知の関数とする連立方程式（数式１０）及び（数式１１）を求めることができる。
【数１０】
2020046965.tif 000012
（数式１０）
【数１１】
2020046965.tif 000013
（数式１１）
【００３８】
ＰＭ、及びＰＬを変数とする連立方程式（（数式１０）及び（数式１１））を解くことで、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）が（数式１２）及び数式（１３）で表される。
これにより、ＦＦ制御器導出装置２００は、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）をＣＶ１、ＣＶ２、ＶＦＦ１、ＶＦＦ２により算出することができる。
【数１２】
2020046965.tif 000014
（数式１２）
【数１３】
2020046965.tif 000015
（数式１３）
【００３９】
＜ＰＭ（ｓ）及びＰＬ（ｓ）の導出手順＞
参考のために、連立方程式（数式１０）及び（数式１１）から、ＰＭ（ｓ）及びＰＬ（ｓ）を算出する手順について簡単に説明する。
まず、（数式１０）の両辺にＣＶ２を掛け、（数式１１）の両辺にＣＶ１を掛けて、両者の引き算をすることで、ＰＭを消去することで、ＰＬを（数式１３）に示すように求めることができる。
次に、（数式１０）から（数式１１）の引き算をして、両辺に（ＣＶ１−ＣＶ２）を加算すると、
ＣＶ１−ＣＶ２＋ＶＦＦ１−ＶＦＦ２
＝（ＣＶ１−ＣＶ２）＋（ＣＶ１−ＣＶ２）（ＰＭ（ｓ）−ＰＬ（ｓ））／ＰＬ（ｓ））
となることから、
（ＣＶ１−ＣＶ２＋ＶＦＦ１−ＶＦＦ２）ＰＬ（ｓ）＝（ＣＶ１−ＣＶ２）ＰＭ（ｓ）
となる。
これに、（数式１３）に示すＰＬ（ｓ）を代入することで、ＰＭ（ｓ）が（数式１２）に示すように求めることができる。
【００４０】
＜速度制御器１０６に依存しない位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０の算出＞
ＦＦ制御器導出装置２００は、（数式１２）及び（数式１３）により算出されるモータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）から（数式９）に基づいて、速度制御器１０６の伝達関数ＣＶ（ｓ）に依存しない、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を算出することができる。
【００４１】
以上のように、位置制御を有効（Ｋｐ＞０）にし、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）を固定（例えばＦＦ（ｓ）＝ｓ）し、異なる伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ）を用意して２つの異なる速度制御器１０６−１（伝達関数ＣＶ１（ｓ））と速度制御器１０６−２（伝達関数ＣＶ２（ｓ））ごとに、それぞれ、位置偏差が０とするように最適な速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）及び速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を（例えば、機械学習等で）求めることで、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を算出するとともに、位置制御器１０３及び速度制御器１０６に依存しない位置フィードフォワード制御器１０９（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０（伝達関数ＶＦＦ（ｓ））を導出することができる。
【００４２】
このようにして、導出される位置フィードフォワード制御器１０９（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０（伝達関数ＶＦＦ（ｓ））は、フィードバック制御器（速度制御器１０６）に依存しないことから、仮にフィードバック制御器（速度制御器１０６）を変更した場合であっても、再度調整する必要がないという格別顕著な効果を奏することができる。
【００４３】
＜補足説明１＞
上記説明において、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）＝ｓと固定して、ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ）を調整しているが、ＦＦ（ｓ）＝ｓに固定することに限られない。ＦＦ（ｓ）として、（０でない）任意の伝達関数を設定してもよい。この場合においても、（数式７）及び（数式８）から、ＶＦＦ（ｓ）が求められる。また、連立方程式（数式１０）及び（数式１１）と同様にして、連立方程式を解くことができる。
【００４４】
＜補足説明２＞
上記説明では、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）を固定して、速度制御器１０６の伝達関数ＣＶ１及びＣＶ２を２つ用意して、位置偏差を０とするように、速度フィードフォワード制御器１１０の最適な伝達関数ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ）を調整したが、これに限られない。
逆に、速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を固定（例えば、ＶＦＦ（ｓ）＝ｓ２）して、速度制御器１０６の伝達関数ＣＶ１及びＣＶ２を２つ用意して、伝達関数ＣＶ１により設定される速度制御器１０６−１及び伝達関数ＣＶ２により設定される速度制御器１０６−２ごとに、位置偏差を０とする、最適な位置フィードフォワード制御器１０９−１（伝達関数ＦＦ１（ｓ））及び位置フィードフォワード制御器１０９−２（ＦＦ２（ｓ））を求めるようにしてもよい。この場合においても、（数式７）乃至（数式８）から、ＦＦ１（ｓ）及びＦＦ２（ｓ）が求められ、これから、連立方程式（数式１０）及び（数式１１）と同様の方法で、伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）に係る連立方程式を導出することで、伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）を算出することができる。
【００４５】
＜補足説明３＞
前述したように、図４に示すセミクローズド制御は、ロータリーエンコーダ１５１によって検出された信号を積分器（図示せず）で積分することで得られるモータの回転角ｙＭ及びモータ速度ｖＭのフィードバック情報に基づいてモータ位置の制御を行う。しかしながら、モータと機械の間には、前述したようにボールねじ１５２３、カップリング１５２１、ナット１５２２のような伝達機構が存在するため、必ずしもモータ位置は機械位置ｙＬと同じ値とはならず、ｙＭを制御できても、機械位置ｙＬを制御できないことがある。
ただし、機械の剛性が高く、モータの伝達特性＝機械の伝達特性（すなわち、ＰＭ（ｓ）＝ＰＬ（ｓ））となる場合には、モータ位置と機械位置とが一致する。この場合は、ＰＭ（ｓ）＝ＰＬ（ｓ）とすることで、フルクローズド制御モデルが適用可能となる。
次に、上述した伝達関数間に成り立つ関係式等を参照しながら、ＦＦ制御器導出装置２００について説明する。
【００４６】
＜ＦＦ制御器導出装置２００＞
図５は、本発明の実施形態のＦＦ制御器導出装置２００を示すブロック図である。フルクローズド制御モデルを採用するモータ制御装置１００における未知の制御対象の特性（具体的には、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ））を同定するとともに、フィードバック制御器（速度制御器１０６）に依存しない位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０を導出するために、図５に示すように、ＦＦ制御器導出装置２００は、第２制御パラメータ取得部２０１と、特性同定部２０２と、制御パラメータ算出部２０３と、を備える。
【００４７】
第２制御パラメータ取得部２０１は、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））の適用された複数の速度制御器１０６−１及び速度制御器１０６−２ごとに、位置指令値ｙ＊と機械位置ｙＬの偏差の評価値が予め設定された閾値よりも小さな値になるように調整された、速度フィードフォワード制御器１１０における制御パラメータ（すなわち、伝達関数ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ））を取得する。
【００４８】
より具体的には、第２制御パラメータ取得部２０１は、位置フィードフォワード制御器１０９における制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））を固定して（例えば、ＦＦ（ｓ）＝ｓ）、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））の適用された、速度制御器１０６−１（伝達関数ＣＶ１（ｓ）に対応）及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ）に対応）ごとに、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）及び速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を取得する。
ここで、第２制御パラメータ取得部２０１は、モータ制御装置１００に対して、位置フィードフォワード制御器１０９における固定される制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））の設定、並びに速度制御器１０６−１及び速度制御器１０６−２に対してそれぞれ異なる伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ）の設定を行うようにしてもよい。
また、予め、モータ制御装置１００が、位置フィードフォワード制御器１０９における固定される制御パラメータ（ＦＦ（ｓ））、並びに異なる複数の異なる速度制御器１０６−１及び速度制御器１０６−２を備えるようにしてもよい。
第２制御パラメータ取得部２０１は、後述の機械学習装置３０００（機械学習部３００）に機械学習させることで、機械学習装置３０００から機械学習結果としての（最適化された）速度フィードフォワード制御器１１０の伝達関数ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ）を取得してもよい。機械学習装置３０００による学習については、後述する。
なお、第２制御パラメータ取得部２０１は、機械学習ではなく、例えば、熟練の経験者がパラメータを調整することで求めた最適な速度フィードフォワード制御器１１０の伝達関数ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ）を入力部（図示せず）を介して取得するようにしてもよい。
【００４９】
特性同定部２０２は、第２制御パラメータ取得部２０１により取得した、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））の適用された、速度制御器１０６−１（伝達関数ＣＶ１（ｓ）に対応）及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ）に対応）ごとに調整された速度フィードフォワード制御器１１０の伝達関数ＶＦＦ１（ｓ）及びＶＦＦ２（ｓ）に基づいて、上述した（数式１２）及び（数式１３）を実装した計算処理部（図示せず）により、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を算出する。
特性同定部２０２は、算出した伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）を記憶部（図示せず）に記憶するようにしてもよい。また、表示器（図示せず）に表示するようにしてもよい。
【００５０】
制御パラメータ算出部２０３は、特性同定部２０２により算出された伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）に基づいて、（数式９）を実装した計算処理部（図示せず）により、速度制御器１０６の伝達関数ＣＶ（ｓ）に依存しない、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を算出する。制御パラメータ算出部２０３は、算出した伝達関数ＦＦ（ｓ）及び伝達関数ＶＦＦ（ｓ）を記憶部（図示せず）に記憶するようにしてもよい。また、表示器（図示せず）に表示するようにしてもよい。
さらに、制御パラメータ算出部２０３は、算出した伝達関数ＦＦ（ｓ）及び伝達関数ＶＦＦ（ｓ）をそれぞれ、モータ制御装置１００に対して、位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０に設定するように、送信（又は入力）してもよい。
以上により、ＦＦ制御器導出装置２００は、モータ制御装置１００において、制御対象の特性（モータの伝達特性、及び機械の伝達特性）を同定するとともに、速度制御器１０６に依存しない位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０を、位置制御を無効にせず、安全に導出することができる。
【００５１】
＜補足＞
上記の説明では、ＦＦ制御器導出装置２００（第２制御パラメータ取得部２０１）は、位置フィードフォワード制御器１０９における制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））を固定して（例えば、ＦＦ（ｓ）＝ｓ）、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））がそれぞれ適用された、速度制御器１０６−１（伝達関数ＣＶ１（ｓ）に対応）及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ）に対応）ごとに、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）ように、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）及び速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を取得したが、これに限られない。
「補足説明２」で説明したように、ＦＦ制御器導出装置２００Ａは、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）に換えて、速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を固定（例えば、ＶＦＦ（ｓ）＝ｓ２）して、速度制御器１０６の伝達関数ＣＶ１及びＣＶ２を２つ用意して、伝達関数ＣＶ１により設定される速度制御器１０６−１及び伝達関数ＣＶ２により設定される速度制御器１０６−２ごとに、位置偏差を０とする、最適な位置フィードフォワード制御器１０９−１（伝達関数ＦＦ１（ｓ））及び位置フィードフォワード制御器１０９−２（ＦＦ２（ｓ））を求めることで、伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）を算出してもよい。図６Ａは、本発明の実施形態の変形例であるＦＦ制御器導出装置２００Ａを備える制御システム１０Ａを示すブロック図である。
また、図６Ｂは、本発明の実施形態の変形例であるＦＦ制御器導出装置２００Ａを示すブロック図である。図６Ｂに示すように、ＦＦ制御器導出装置２００Ａは、特性同定部２０２Ａと、制御パラメータ算出部２０３Ａと、第１制御パラメータ取得部２０４と、を備える。
【００５２】
第１制御パラメータ取得部２０４は、速度フィードフォワード制御器１１０における制御パラメータ（すなわち、伝達関数ＶＦＦ（ｓ））を固定して（例えば、ＶＦＦ（ｓ）＝ｓ２）、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））の適用された、速度制御器１０６−１（伝達関数ＣＶ１（ｓ）に対応）及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ）に対応）ごとに、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）、位置フィードフォワード制御器１０９−１の伝達関数ＦＦ１（ｓ）及び位置フィードフォワード制御器１０９−２の伝達関数ＦＦ２（ｓ）を取得する。
ここで、第１制御パラメータ取得部２０４は、第２制御パラメータ取得部２０１と同様に、後述の機械学習装置３０００（機械学習部３００Ａ）に機械学習させることで、機械学習装置３０００から機械学習結果としての（最適化された）位置フィードフォワード制御器１０９の伝達関数ＦＦ１（ｓ）及びＦＦ２（ｓ）を取得してもよい。
また、第２制御パラメータ取得部２０１は、第２制御パラメータ取得部２０１と同様に、機械学習ではなく、例えば、熟練の経験者がパラメータを調整することで求めた、最適な位置フィードフォワード制御器１０９の伝達関数ＦＦ１（ｓ）及びＦＦ２（ｓ）を入力部（図示せず）を介して取得するようにしてもよい。
【００５３】
そして、特性同定部２０２Ａは、第１制御パラメータ取得部２０４により取得した、それぞれ異なる制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ））の適用された、速度制御器１０６−１（伝達関数ＣＶ１（ｓ）に対応）及び速度制御器１０６−２（伝達関数ＣＶ２（ｓ）に対応）ごとに調整された位置フィードフォワード制御器１０９の伝達関数ＦＦ１（ｓ）及びＦＦ２（ｓ）に基づいて、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を算出することができる。
【００５４】
それにより、制御パラメータ算出部２０３Ａは、特性同定部２０２Ａにより算出された伝達関数ＰＭ（ｓ）及び伝達関数ＰＬ（ｓ）に基づいて、（数式９）を実装した計算処理部（図示せず）により、速度制御器１０６の伝達関数ＣＶ（ｓ）に依存しない、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を算出することができる。
以上のように、ＦＦ制御器導出装置２００Ａは構成される。
【００５５】
＜機械学習装置３０００＞
次に、上述した機械学習装置３０００について説明する。図５に示すように、機械学習装置３０００は、機械学習部３００及び機械学習部３００Ａを備える。
機械学習部３００は、位置フィードフォワード制御器１０９における制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））を固定して（例えば、ＦＦ（ｓ）＝ｓ）、制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）又はＣＶ２（ｓ））の適用された、速度制御器１０６−１又は速度制御器１０６−２に対して、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）ように、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）又は速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を学習する。
他方、機械学習部３００Ａは、速度フィードフォワード制御器１１０における制御パラメータ（すなわち、伝達関数ＶＦＦ（ｓ））を固定して（例えば、ＶＦＦ（ｓ）＝ｓ２）、制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）又はＣＶ２（ｓ））の適用された、速度制御器１０６−１又は速度制御器１０６−２に対して、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）ように、位置フィードフォワード制御器１０９−１の伝達関数ＦＦ１（ｓ）又は位置フィードフォワード制御器１０９−２の伝達関数ＦＦ２（ｓ）を学習する。
ここでは、機械学習部３００について説明する。
【００５６】
＜機械学習部３００＞
機械学習部３００は、予め設定された加工プログラム（以下、「学習時の加工プログラム」ともいう）を実行することで、速度フィードフォワード制御器１１０−１のＶＦＦ１（ｓ）又はＶＦＦ２（ｓ）の係数を学習する。
ここで、学習時の加工プログラムにより指定される加工形状は、例えば、八角形、又は八角形の角が１つ置きに円弧に置き換えられた形等としてもよい。加工形状はこれに限られない。例えば、円、四角、及び角Ｒ付き四角等でもよい。
【００５７】
以下、機械学習部３００について説明する。
以下の説明では機械学習部３００が強化学習を行う場合について説明するが、機械学習部３００が行う学習は特に強化学習に限定されず、例えば、教師あり学習を行う場合にも本発明は適用可能である。
【００５８】
機械学習部３００に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習部３００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００５９】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００６０】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態Ｓの下で、行動Ａを選択する価値Ｑ（Ｓ，Ａ）を学習する方法であるＱ学習（Ｑ−ｌｅａｒｎｉｎｇ）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態Ｓのとき、取り得る行動Ａのなかから、価値Ｑ（Ｓ，Ａ）の最も高い行動Ａを最適な行動として選択することを目的とする。
【００６１】
しかしながら、Ｑ学習を最初に開始する時点では、状態Ｓと行動Ａとの組合せについて、価値Ｑ（Ｓ，Ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態Ｓの下で様々な行動Ａを選択し、その時の行動Ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（Ｓ，Ａ）を学習していく。
【００６２】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（Ｓ，Ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（Ｓ，Ａ）の更新式は、例えば、次の数式１４（以下に数１４として示す）により表すことができる。
【００６３】
【数１４】
2020046965.tif 000016
【００６４】
上記の数式１４において、Ｓｔは、時刻ｔにおける環境の状態を表し、Ａｔは、時刻ｔにおける行動を表す。行動Ａｔにより、状態はＳｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態Ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動Ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００６５】
上述した数式１４は、試行Ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）を更新する方法を表している。
この更新式は、状態Ｓｔにおける行動Ａｔの価値Ｑ（Ｓｔ，Ａｔ）よりも、行動Ａｔによる次の状態Ｓｔ＋１における最良の行動の価値ｍａｘａ  Ｑ（Ｓｔ＋１，Ａ）の方が大きければ、Ｑ（Ｓｔ，Ａｔ）を大きくし、逆に小さければ、Ｑ（Ｓｔ，Ａｔ）を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬ｒｔ＋１のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る１つ前の状態における行動の価値に伝播していく仕組みになっている。
【００６６】
ここで、Ｑ学習では、すべての状態行動ペア（Ｓ，Ａ）についてのＱ（Ｓ，Ａ）のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのＱ（Ｓ，Ａ）の値を求めるには状態数が多すぎて、Ｑ学習が収束するのに多くの時間を要してしまう場合がある。
【００６７】
そこで、公知のＤＱＮ（Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋ）と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Ｑを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Ｑを適当なニューラルネットワークで近似することにより価値Ｑ（Ｓ，Ａ）の値を算出するようにしてもよい。ＤＱＮを利用することにより、Ｑ学習が収束するのに要する時間を短くすることが可能となる。なお、ＤＱＮについては、例えば、以下の非特許文献に詳細な記載がある。
【００６８】
＜非特許文献＞
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著［ｏｎｌｉｎｅ］、［平成２９年１月１７日検索］、インターネット〈ＵＲＬ：http://files.davidqiu.com/research/nature14236.pdf〉
【００６９】
以上説明をしたＱ学習を機械学習部３００が行う。具体的には、機械学習部３００は、位置フィードフォワード制御器１０９における制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））を固定して（例えば、ＦＦ（ｓ）＝ｓ）、制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）又はＣＶ２（ｓ）の適用された、速度制御器１０６−１又は速度制御器１０６−２に対して、それぞれ、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）又は速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を学習する。
以下、伝達関数ＣＶ１（ｓ）の適用された速度制御器１０６−１に対して、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の学習について説明する。
機械学習部３００は、モータ制御装置１００における、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊ（ｉ，ｊ≧０）の値、並びに学習時の加工プログラムを実行することで取得されるモータ制御装置１００の位置偏差情報、及び位置指令を含む、指令及びフィードバック等のサーボ状態を状態Ｓとして、当該状態Ｓに係る、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊの値の調整を行動Ａとして選択する価値Ｑを学習する。
【００７０】
機械学習部３００は、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで、モータ制御装置１００の位置指令及び位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報Ｓを観測して、行動Ａを決定する。機械学習部３００は、行動Ａをするたびに報酬が返ってくる。機械学習部３００は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動Ａを試行錯誤的に探索する。そうすることで、機械学習部３００は、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで取得されるモータ制御装置１００の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓに対して、最適な行動Ａ（すなわち、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の最適な係数ａｉ、ｂｊ）を選択することが可能となる。
【００７１】
すなわち、機械学習部３００により学習された価値関数Ｑに基づいて、或る状態Ｓに係る速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに対して適用される行動Ａのうち、Ｑの値が最大となるような行動Ａを選択することで、学習時の加工プログラムを実行することで取得される位置偏差が最小になるような行動Ａ（すなわち、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊ）を選択することが可能となる。
【００７２】
図７Ａは本発明の第１の実施形態の機械学習部３００を示すブロック図である。
上述した強化学習を行うために、図７Ａに示すように、機械学習部３００は、状態情報取得部３０１、学習部３０２、行動情報出力部３０３、価値関数記憶部３０４、及び最適化行動情報出力部３０５を備える。学習部３０２は報酬出力部３０２１、価値関数更新部３０２２、及び行動情報生成部３０２３を備える。
【００７３】
状態情報取得部３０１は、モータ制御装置１００における速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに基づいて、学習時の加工プログラムを実行することで取得されるモータ制御装置１００の位置指令及び位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態Ｓを、モータ制御装置１００から取得する。この状態情報Ｓは、Ｑ学習における、環境状態Ｓに相当する。
状態情報取得部３０１は、取得した状態情報Ｓを学習部３０２に対して出力する。
【００７４】
なお、最初にＱ学習を開始する時点での速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊは、予めユーザが生成するようにする。本実施形態では、ユーザが作成した速度フィードフォワード制御器１１０−１２の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊの初期設定値を、強化学習により最適なものに調整する。速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊは例えば、初期設定値として、数式２のａ０＝１、ａ１＝０、ａ２＝０、ａx＝０、ｂ０＝０、ｂ１＝０、ｂ２＝１、ｂｘ＝０とする。また、伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊの次元ｍ、ｎを予め設定する。すなわち、ａｉについては０≦ｉ≦ｍ  ｂｊについては０≦ｊ≦ｎとする。
なお、係数ａｉ、ｂｊは予め操作者が工作機械を調整している場合には、調整済の値を初期値として機械学習してもよい。
【００７５】
学習部３０２は、或る環境状態Ｓの下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。
【００７６】
報酬出力部３０２１は、或る状態Ｓの下で、行動Ａを選択した場合の報酬を算出する部分である。ここで、状態Ｓにおける状態変数である位置偏差の集合（位置偏差集合）をＰＤ（Ｓ）、行動情報Ａ（速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊ（ｉ，ｊは０及び正の整数を示す）の修正）により状態Ｓから変化した状態情報Ｓ´に係る状態変数である位置偏差集合をＰＤ（Ｓ´）で示す。また、状態Ｓにおける位置偏差の値を、予め設定された評価関数ｆ（ＰＤ（Ｓ））に基づいて算出される評価値とする。
評価関数ｆとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の２ｎ（ｎは自然数）乗の積算値を算出する関数
∫e2ndt（ｎは自然数）
位置偏差の絶対値の最大値を算出する関数
Ｍａｘ｛|e|｝  
等を適用することができる。
【００７７】
このとき、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ））よりも大きくなった場合に、報酬出力部３０２１は、報酬の値を負の値とする。
【００７８】
一方で、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ））よりも小さくなった場合に、報酬出力部３０２１は、報酬の値を正の値とする。
なお、行動情報Ａにより修正された状態情報Ｓ´に係る修正後の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ´））が、行動情報Ａにより修正される前の状態情報Ｓに係る修正前の速度フィードフォワード制御器１１０−１に基づいて動作したモータ制御装置１００の位置偏差の値ｆ（ＰＤ（Ｓ））と等しい場合は、報酬出力部３０２１は、報酬の値をゼロとする。
【００７９】
また、行動Ａを実行後の状態Ｓ´の位置偏差の値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の値ｆ（ＰＤ（Ｓ））より大きくなった場合の負の値としては、比率に応じて負の値を大きくするようにしてもよい。つまり位置偏差の値が大きくなった度合いに応じて負の値が大きくなるようにするとよい。逆に、行動Ａを実行後の状態Ｓ´の位置偏差の値ｆ（ＰＤ（Ｓ´））が、前の状態Ｓにおける位置偏差の値ｆ（ＰＤ（Ｓ））より小さくなった場合の正の値としては、比率に応じて正の値を大きくするようにしてもよい。つまり位置偏差の値が小さくなった度合いに応じて正の値が大きくなるようにするとよい。
【００８０】
価値関数更新部３０２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、上記のようにして算出された報酬の値と、に基づいてＱ学習を行うことにより、価値関数記憶部３０４が記憶する価値関数Ｑを更新する。
価値関数Ｑの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移する都度、即座に価値関数Ｑの更新を行うという学習方法である。また、バッチ学習とは、或る行動Ａを現在の状態Ｓに適用することにより、状態Ｓが新たな状態Ｓ´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Ｑの更新を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Ｑの更新を行うという学習方法である。
【００８１】
行動情報生成部３０２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部３０２３は、Ｑ学習の過程において、モータ制御装置１００の速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部３０３に対して出力する。より具体的には、行動情報生成部３０２３は、例えば、状態Ｓに含まれる速度フィードフォワード制御器の各係数に対して行動Ａに含まれる、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊをインクレメンタル（例えば０．０１程度）に加算又は減算させる。
【００８２】
そして、行動情報生成部３０２３は、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動Ａ´としては、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００８３】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部３０２３は、次の行動Ａ´としては、例えば、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００８４】
また、行動情報生成部３０２３は、現在の推定される行動Ａの価値の中で、最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するグリーディ法や、ある小さな確率εでランダムに行動Ａ´選択し、それ以外では最も価値Ｑ（Ｓ，Ａ）の高い行動Ａ´を選択するεグリーディ法といった公知の方法により、行動Ａ´を選択する方策を取るようにしてもよい。
【００８５】
行動情報出力部３０３は、学習部３０２から出力される行動情報Ａをモータ制御装置１００に対して送信する部分である。モータ制御装置１００は上述したように、この行動情報に基づいて、現在の状態Ｓ、すなわち現在設定されている速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊを微修正することで、次の状態Ｓ´（すなわち修正された、速度フィードフォワード制御器１１０−１の各係数）に遷移する。
【００８６】
価値関数記憶部３０４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａごとにテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部３０４に記憶された価値関数Ｑは、価値関数更新部３０２２により更新される。また、価値関数記憶部３０４に記憶された価値関数Ｑは、他の機械学習部３００との間で共有されるようにしてもよい。価値関数Ｑを複数の機械学習部３００で共有するようにすれば、各機械学習部３００にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
【００８７】
最適化行動情報出力部３０５は、価値関数更新部３０２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値Ｑ（Ｓ，Ａ）が最大となる動作を速度フィードフォワード制御器１１０−１に行わせるための行動情報Ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
より具体的には、最適化行動情報出力部３０５は、価値関数記憶部３０４が記憶している価値関数Ｑを取得する。この価値関数Ｑは、上述したように価値関数更新部３０２−１２がＱ学習を行うことにより更新したものである。そして、最適化行動情報出力部３０５は、価値関数Ｑに基づいて、行動情報を生成し、生成した行動情報をモータ制御装置１００（速度フィードフォワード制御器１１０−１）に対して出力する。この最適化行動情報には、行動情報出力部３０３がＱ学習の過程において出力する行動情報と同様に、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊを修正する情報が含まれる。
【００８８】
モータ制御装置１００では、この行動情報に基づいて速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊが修正される。
機械学習部３００は、以上の動作で、速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）の各係数ａｉ、ｂｊの最適化を行い、位置偏差の値を低減するように動作することができる。より具体的には、位置偏差の評価値が所定の閾値（０に近い値）よりも小さな値となるように学習する。
以上のように、本発明に係る機械学習部３００を利用することで、モータ制御装置１００の速度フィードフォワード制御器１１０−１のパラメータ調整を簡易化することができる。
なお、機械学習部３００の上記説明において、伝達関数ＣＶ１（ｓ）及び速度制御器１０６−１をそれぞれ、伝達関数ＣＶ２（ｓ）及び速度制御器１０６−２に読み換え、伝達関数ＶＦＦ１（ｓ）及び速度フィードフォワード制御器１１０−１をそれぞれ伝達関数ＶＦＦ２（ｓ）及び速度フィードフォワード制御器１１０−２に読み換えることで、伝達関数ＣＶ２（ｓ）の適用された速度制御器１０６−２に対する速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）の学習は説明される。
【００８９】
＜機械学習部３００Ａ＞
機械学習部３００Ａは、前述したように、速度フィードフォワード制御器１１０における制御パラメータ（すなわち、伝達関数ＶＦＦ（ｓ））を固定して（例えば、ＶＦＦ（ｓ）＝ｓ２）、制御パラメータ（すなわち、伝達関数ＣＶ１（ｓ）又はＣＶ２（ｓ））の適用された速度制御器１０６−１又は速度制御器１０６−２に対して、位置偏差が０となる（より具体的には、位置偏差の評価値が所定の閾値以下となる）ように、位置フィードフォワード制御器１０９−１の伝達関数ＦＦ１（ｓ）又は位置フィードフォワード制御器１０９−２の伝達関数ＦＦ２（ｓ）を学習する。
このため、機械学習部３００Ａは、図７Ｂに示すように、状態情報取得部３０１Ａ、学習部３０２Ａ、行動情報出力部３０３Ａ、価値関数記憶部３０４Ａ、及び最適化行動情報出力部３０５Ａを備える。また、学習部３０２Ａは報酬出力部３０２１Ａ、価値関数更新部３０２２Ａ、及び行動情報生成部３０２３Ａを備える。
【００９０】
ここで、機械学習部３００Ａの備える各機能部は、機械学習部３００の説明において、「位置フィードフォワード制御器１０９における制御パラメータ（すなわち、伝達関数ＦＦ（ｓ））を固定して」を「速度フィードフォワード制御器１１０における制御パラメータ（すなわち、伝達関数ＶＦＦ（ｓ））を固定（例えばＶＦＦ（ｓ）＝ｓ２）して」に読み換え、速度フィードフォワード制御器１１０−１、伝達関数ＶＦＦ１（ｓ）、及び伝達関数ＶＦＦ１（ｓ）の係数ａｉ、ｂｊをそれぞれ、位置フィードフォワード制御器１０９−１又は１０９−２、伝達関数ＦＦ１（ｓ）又はＦＦ２（ｓ）、及び伝達関数ＦＦ１（ｓ）又はＦＦ２（ｓ）の係数ｃｉ、ｄｊに読み換え、各機能部の名称の末尾に「Ｂ」を付加することで、機械学習部３００Ａは説明される。
以上、機械学習装置３０００に含まれる機能ブロックについて説明した。
なお、機械学習装置３０００は、機械学習部３００及び機械学習部３００Ａを含むものとして説明したが、これに限られない。機械学習部３００を含む機械学習装置と、機械学習部３００Ａを含む機械学習装置と、を別の装置にしてもよい。
【００９１】
＜ＦＦ制御器導出装置２００の動作＞
図８は、ＦＦ制御器導出装置２００の動作の一例に係るフローチャートである。図８のフローチャートを参照して、ＦＦ制御器導出装置２００によるモータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）の導出及びフィードバック制御器（速度制御器１０６）の値に限らず、位置偏差を０にすることができ、フィードバック制御器に依存しない位置フィードフォワード制御器１０９の制御パラメータ及び速度フィードフォワード制御器１１０の制御パラメータを算出する動作の一例について説明する。
なお、モータ制御装置１００は、位置フィードフォワード制御器１０９における固定される制御パラメータ（ＦＦ（ｓ））及び異なる複数の異なる速度制御器１０６−１及び速度制御器１０６−２を備えているものとする。
【００９２】
ステップＳＴ１において、第２制御パラメータ取得部２０１は、例えば、入力部（図示せず）を介してモータ制御装置１００に対して、位置フィードフォワード制御器１０９における固定される制御パラメータ（ＦＦ（ｓ））を指定する。
【００９３】
ステップＳＴ２において、第２制御パラメータ取得部２０１は、複数の異なる速度制御器のうち１つの速度制御器１０６−１を指定する。
【００９４】
ステップＳＴ３において、第２制御パラメータ取得部２０１は、機械学習装置３０００（機械学習部３００）に対して、速度フィードフォワード制御器１１０の伝達関数ＶＦＦ１（ｓ）の学習をさせる。
【００９５】
ステップＳＴ４において、第２制御パラメータ取得部２０１は、機械学習装置３０００（機械学習部３００）から、速度制御器１０６−１に対して、最適な速度フィードフォワード制御器１１０の高次の伝達関数ＶＦＦ１（ｓ）を取得する。
【００９６】
ステップＳＴ５において、第２制御パラメータ取得部２０１は、複数の異なる速度制御器のうちステップＳＴ２で指定した速度制御器１０６−１と異なる速度制御器１０６−２を指定する。
【００９７】
ステップＳＴ６において、第２制御パラメータ取得部２０１は、機械学習装置３０００（機械学習部３００）に対して、速度フィードフォワード制御器１１０の伝達関数ＶＦＦ２（ｓ）の学習をさせる。
【００９８】
ステップＳＴ７において、第２制御パラメータ取得部２０１は、機械学習装置３０００（機械学習部３００）から、速度制御器１０６−２に対して、最適な速度フィードフォワード制御器１１０の高次の伝達関数ＶＦＦ２（ｓ）を取得する。
【００９９】
ステップＳＴ８において、特性同定部２０２は、ステップＳＴ１において指定した位置フィードフォワード制御器１０９における制御パラメータ（伝達関数ＦＦ（ｓ））、ステップＳＴ４で取得した高次の伝達関数ＶＦＦ１（ｓ）、及びステップＳＴ７で取得した高次の伝達関数ＶＦＦ２（ｓ）に基づいて、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を算出する。
【０１００】
ステップＳＴ９において、制御パラメータ算出部２０３は、ステップＳＴ８において算出した伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）に基づいて、フィードバック制御器に依存しない位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を算出する。
【０１０１】
ステップＳＴ１０において、制御パラメータ算出部２０３は、ステップＳＴ９において算出した位置フィードフォワード制御器１０９の制御パラメータ（ＦＦ（ｓ））及び速度フィードフォワード制御器１１０の制御パラメータ（ＶＦＦ（ｓ））を、それぞれ、モータ制御装置１００の位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０に設定する。
【０１０２】
＜ＦＦ制御器導出装置２００Ａの動作＞
図９に、ＦＦ制御器導出装置２００Ａの動作の一例に係るフローチャートを示す。図９のフローチャートを参照して、ＦＦ制御器導出装置２００Ａの動作の一例について説明する。
なお、モータ制御装置１００は、速度フィードフォワード制御器１１０における固定される制御パラメータ（ＶＦＦ（ｓ））及び異なる複数の異なる速度制御器１０６−１及び速度制御器１０６−２を備えているものとする。
【０１０３】
ステップＳＴ１１において、第１制御パラメータ取得部２０４は、例えば、入力部（図示せず）を介してモータ制御装置１００に対して、速度フィードフォワード制御器１１０における固定される制御パラメータ（ＶＦＦ（ｓ））を指定する。
【０１０４】
ステップＳＴ１２において、第１制御パラメータ取得部２０４は、複数の異なる速度制御器のうち１つの速度制御器１０６−１を指定する。
【０１０５】
ステップＳＴ１３において、第１制御パラメータ取得部２０４は、機械学習装置３０００（機械学習部３００Ａ）に対して、位置フィードフォワード制御器１０９の伝達関数ＶＦＦ１（ｓ）の学習をさせる。
【０１０６】
ステップＳＴ１４において、第１制御パラメータ取得部２０４は、機械学習装置３０００（機械学習部３００Ａ）から、速度制御器１０６−１に対して、最適な位置フィードフォワード制御器１０９の高次の伝達関数ＦＦ１（ｓ）を取得する。
【０１０７】
ステップＳＴ１５において、第１制御パラメータ取得部２０４は、複数の異なる速度制御器のうちステップＳＴ１２で指定した速度制御器１０６−１と異なる速度制御器１０６−２を指定する。
【０１０８】
ステップＳＴ１６において、第１制御パラメータ取得部２０４は、機械学習装置３０００（機械学習部３００Ａ）に対して、位置フィードフォワード制御器１０９の伝達関数ＶＦＦ２（ｓ）の学習をさせる。
【０１０９】
ステップＳＴ１７において、第１制御パラメータ取得部２０４は、機械学習装置３０００（機械学習部３００Ａ）から、速度制御器１０６−２に対して、最適な位置フィードフォワード制御器１０９の高次の伝達関数ＦＦ２（ｓ）を取得する。
【０１１０】
ステップＳＴ１８において、特性同定部２０２Ａは、ステップＳＴ１１において指定した速度フィードフォワード制御器１１０における制御パラメータ（ＶＦＦ（ｓ））、ステップＳＴ１４で取得した高次の伝達関数ＦＦ１（ｓ）、及びステップＳＴ１７で取得した高次の伝達関数ＦＦ２（ｓ）に基づいて、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を算出する。
【０１１１】
ステップＳＴ１９において、制御パラメータ算出部２０３Ａは、ステップＳＴ１８において算出した伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）に基づいて、フィードバック制御器に依存しない位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）及び速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を算出する。
【０１１２】
ステップＳＴ２０において、制御パラメータ算出部２０３Ａは、ステップＳＴ１９において算出した位置フィードフォワード制御器１０９の制御パラメータ（ＦＦ（ｓ））及び速度フィードフォワード制御器１１０の制御パラメータ（ＶＦＦ（ｓ））を、それぞれ、モータ制御装置１００の位置フィードフォワード制御器１０９及び速度フィードフォワード制御器１１０に設定する。
【０１１３】
＜本実施形態の効果＞
（１）以上のように、本実施形態によれば、例えば、位置制御を有効（Ｋｐ＞０）にし、位置フィードフォワード制御器１０９の伝達関数ＦＦ（ｓ）を固定（例えばＦＦ（ｓ）＝ｓ）し、異なる伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ）を用意して２つの異なる速度制御器１０６−１（伝達関数ＣＶ１（ｓ））と速度制御器１０６−２（伝達関数ＣＶ２（ｓ））ごとに、それぞれ、位置偏差が０となるように最適な速度フィードフォワード制御器１１０−１の伝達関数ＶＦＦ１（ｓ）及び速度フィードフォワード制御器１１０−２の伝達関数ＶＦＦ２（ｓ）を（例えば、機械学習等で）求めることで、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を導出することができる。
そして、このようにして導出されたモータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）に基づいて、位置制御器１０３及び速度制御器１０６に依存しない位置フィードフォワード制御器１０９（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０（伝達関数ＶＦＦ（ｓ））を算出することができる。
これにより、位置制御器１０３を無効にせず、安全に、高次の位置フィードフォワード制御器１０９のパラメータ（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０のパラメータ（伝達関数ＶＦＦ（ｓ））を調整することができる。
さらに、位置フィードフォワード制御器１０９のパラメータ及び速度フィードフォワード制御器１１０のパラメータは、同定したモータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）から算出していることから、フィードバック制御器（速度制御器１０６）の値に限らず、位置偏差を０にすることができ、仮にフィードバック制御器（速度制御器１０６）を変更する場合であっても、位置フィードフォワード制御器１０９のパラメータ及び速度フィードフォワード制御器１１０のパラメータを再度調整する必要がない。
【０１１４】
（２）また、本実施形態によれば、例えば、位置制御を有効（Ｋｐ＞０）にし、速度フィードフォワード制御器１１０の伝達関数ＶＦＦ（ｓ）を固定（例えばＶＦＦ（ｓ）＝ｓ２）し、異なる伝達関数ＣＶ１（ｓ）及びＣＶ２（ｓ）を用意して２つの異なる速度制御器１０６−１（伝達関数ＣＶ１（ｓ））と速度制御器１０６−２（伝達関数ＣＶ２（ｓ））ごとに、それぞれ、位置偏差が０とするように最適な位置フィードフォワード制御器１０９−１の伝達関数ＦＦ１（ｓ）及び位置フィードフォワード制御器１０９−２の伝達関数ＦＦ２（ｓ）を（例えば、機械学習等で）求めることで、モータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）を導出することができる。
そして、このようにして導出されたモータの伝達関数ＰＭ（ｓ）及び機械の伝達関数ＰＬ（ｓ）に基づいて、位置制御器１０３及び速度制御器１０６に依存しない位置フィードフォワード制御器１０９（伝達関数ＦＦ（ｓ））及び速度フィードフォワード制御器１１０（伝達関数ＶＦＦ（ｓ））を算出することができる。
これにより、上記（１）と同様の効果を奏することができる。
【０１１５】
上記のモータ制御装置１００のサーボ制御部、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａに含まれる各構成部、及び機械学習装置３０００に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａに含まれる各構成部のそれぞれの協働により行なわれるＦＦ制御器導出方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１１６】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。
【０１１７】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
【０１１８】
＜ＦＦ制御器導出装置の構成に係る変形例＞
上述した実施形態では、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａを、モータ制御装置１００とは別体の装置により構成したが、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａの機能の一部又は全部をモータ制御装置１００により実現するようにしてもよい。また、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａは別装置ではなく、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａを１つの装置としてもよい。
また、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａの機能の一部又は全部を上位の制御装置４００により実現するようにしてもよい。
【０１１９】
＜機械学習装置の構成に係る変形例＞
上述した実施形態では、機械学習器３００又は機械学習器３００Ａを、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａとは別体の装置により構成したが、機械学習器３００又は機械学習器３００Ａの機能の一部又は全部をＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａにより実現するようにしてもよい。また、上述した実施形態では、機械学習装置３０００が機械学習器３００及び機械学習器３００Ａを含むようにしたが、機械学習器３００又は機械学習器３００Ａを別の装置としてもよい。
また、機械学習器３００又は機械学習器３００Ａの機能の一部又は全部をモータ制御装置１００により実現するようにしてもよい。
また、機械学習器３００又は機械学習器３００Ａの機能の一部又は全部を上位の制御装置４００により実現するようにしてもよい。
【０１２０】
＜システム構成の自由度＞
上述した実施形態では、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａと機械学習装置３０００とモータ制御装置１００とが１対１の組として通信可能に接続されているが、例えば１台のＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａが複数のモータ制御装置１００とネットワークを介して通信可能に接続され、各モータ制御装置１００のＦＦ制御器導出機能を実施するようにしてもよい。その際、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａの各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用して、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａの各機能を実現してもよい。
同様に、例えば１台の機械学習装置３０００が複数のモータ制御装置１００とネットワークを介して通信可能に接続され、各モータ制御装置１００の機械学習機能を実施するようにしてもよい。
同様に、機械学習装置３０００の機械学習部３００及び機械学習部３００Ａを、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、機械学習装置３０００の機能の一部又は全部を、適宜複数のサーバに分散するようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、ＦＦ制御器導出装置２００又はＦＦ制御器導出装置２００Ａの各機能を実現してもよい。
また、複数の同じ型名、同一仕様、又は同一シリーズのモータ制御装置１００−１〜１００−ｎとそれぞれ対応する複数の機械学習装置３０００−１〜３０００−ｎがあった場合に、各機械学習装置３０００−１〜３０００−ｎにおける学習結果を共有するように構成するようにしてもよい。そうすることで、より最適なモデルを構築することが可能となる。
【符号の説明】
【０１２１】
１０  制御システム
１００  モータ制御装置
１０２  減算器
１０３  位置制御器
１０４  加算器
１０５  減算器
１０６  速度制御器
１０７  加算器
１０８  積分器
１０９  位置フィードフォワード制御器
１１０  速度フィードフォワード制御器
１５０  モータ
１５１  ロータリーエンコーダ
１５２  連結機構
１５３  テーブル
１５４  位置検出器（リニアスケール）
３０００  機械学習装置
３００，３００Ａ  機械学習部
３０１，３０１Ａ  状態情報取得部
３０２，３０２Ａ  学習部
３０２１，３０２１Ａ  報酬出力部
３０２２，３０２２Ａ  価値関数更新部
３０２３，３０２３Ａ  行動情報生成部
３０３，３０３Ａ  行動情報出力部
３０４，３０４Ａ  価値関数記憶部
３０５，３０５Ａ  最適化行動情報出力部
４００  制御装置
【図１】
2020046965.tif 000017
【図２】
2020046965.tif 000018
【図３】
2020046965.tif 000019
【図４】
2020046965.tif 000020
【図５】
2020046965.tif 000021
【図６Ａ】
2020046965.tif 000022
【図６Ｂ】
2020046965.tif 000023
【図７Ａ】
2020046965.tif 000024
【図７Ｂ】
2020046965.tif 000025
【図８】
2020046965.tif 000026
【図９】
2020046965.tif 000027