(57)【要約】【課題】軸位置情報に係るパラメータの切替条件、或いは、当該パラメータを用いる制御器の切替条件に応じて、適用するパラメータや制御器を変更することが可能であると共に、当該パラメータや当該制御器を自動調整することを可能とする。【解決手段】サーボモータ又はスピンドルモータを制御する制御器を備えるモータ制御装置２００は、モータ制御装置２００の制御に係る、モータ８００の軸位置情報に基づいて、制御器の切替条件を判定する切替判断部３００と、切替条件毎に、機械学習によって制御器のパラメータを調整する機械学習部５００と、機械学習部５００により調整された切替条件毎のパラメータを保持するパラメータ保持部４００とを備え、切替判断部３００は、パラメータの調整後に切替条件を判定した時に、切替条件に対応する調整後のパラメータを制御器に適用する。【選択図】図３
2020047228.tif 000002
【特許請求の範囲】
【請求項１】
工作機械、ロボット、又は産業機械のサーボモータ又はスピンドルモータを制御する制御器を備えるモータ制御装置であって、
当該モータ制御装置の制御に係る軸の位置情報に基づいて、前記制御器の切替条件を判定する切替判断部、又は前記切替判断部と通信する第１の通信手段と、
前記切替条件毎に、機械学習によって前記制御器のパラメータを調整する機械学習部、又は前記機械学習部と通信する第２の通信手段と、
前記機械学習部により調整された前記切替条件毎のパラメータを保持するパラメータ保持部、又は前記パラメータ保持部と通信する第３の通信手段とを備え、
前記切替判断部は、前記パラメータの調整後に前記切替条件を判定した時に、前記切替条件に対応する調整後のパラメータを前記制御器に適用する、モータ制御装置。
【請求項２】
前記軸に係る位置指令を作成する位置指令作成部と、
前記軸に係る位置を検出する位置検出部と、
前記位置指令と、前記位置検出部によって検出された前記位置のフィードバック情報とから速度指令を作成する位置制御器と、
速度を検出する速度検出部と、
前記位置制御器によって作成された前記速度指令と、前記速度検出部によって検出された前記速度のフィードバック情報とからトルク指令を作成する速度制御器とを備え、
前記機械学習部は、前記切替条件毎に、前記位置制御器又は前記速度制御器のパラメータを調整する、請求項１に記載のモータ制御装置。
【請求項３】
前記速度指令を作成する速度指令作成部と、
前記速度を検出する速度検出部と、
前記速度指令と、前記速度検出部によって検出された前記速度のフィードバック情報とからトルク指令を作成する速度制御器とを備え、
前記機械学習部は、前記切替条件毎に、前記速度制御器のパラメータを調整する、請求項１に記載のモータ制御装置。
【請求項４】
前記位置指令から位置フィードフォワード情報を作成する位置フィードフォワード制御器及び／又は前記位置指令から速度フィードフォワード情報を作成する速度フィードフォワード制御器とを備え、
前記機械学習部は、前記切替条件毎に、前記位置フィードフォワード制御器及び／又は前記速度フィードフォワード制御器のパラメータを調整する、請求項１に記載のモータ制御装置。
【請求項５】
前記機械学習部は、一つの前記切替条件に対して種類が異なる複数のパラメータを調整し、
前記切替判断部は、前記複数のパラメータから選択される一つのパラメータを、前記制御器に適用する、請求項１〜４のいずれか１項に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置に関する。
【背景技術】
【０００２】
従来、一般的なモータ制御装置において、加工条件、制御条件等によって位置ループゲイン、速度ループゲイン等のサーボゲインや加減速時定数等のパラメータを調整することが知られている。
或いは、モータ制御装置において、加工条件、制御条件等に応じて最適なパラメータを用いることができるように加工条件、制御条件等に基づいて、フィードバック制御器やフィードフォワード制御器におけるパラメータを最適なパラメータに設定変更したり、また、予め複数のフィードバック制御器やフィードフォワード制御器を備えて加工条件、制御条件等に基づいて、制御器を切り替える技術が知られている。
【０００３】
例えば、特許文献１は、バックラッシの有無に応じて、モータを制御する制御ゲインの切り替えを行うことができる制御ゲイン切り替え方式を開示している。
【０００４】
また、特許文献２は、制御条件に応じて最適なサーボ系のパラメータを設定するため、制御条件毎に最適なパラメータの値を記憶したパラメータテーブルを設け、ＮＣプログラムの実行中にパラメータの切り替え指令によってパラメータテーブルを選択して設定することが可能な数値制御装置を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−２６３１４３号公報
【特許文献２】特開平１１−２３１９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に係る技術において、パラメータ自体は基本的に固定値であり、パラメータがいったん固定されると、その後運転環境等に応じてパラメータがきめ細かく調整されるものではなかった。
【０００７】
具体的には、特許文献１に係る技術においては、バックラッシの有無に応じて２つの値の間で制御ゲインの値を切り替えるのみであり、例えばバックラッシ量に応じてこの２つの値を調整するものではなかった。
【０００８】
すなわち、特許文献１に係る技術においては、当初設定されたパラメータの値自体を調整するものではないため、例えば工作機械の運転環境が変化した場合、この変化に伴う加工や制御の品質の劣化を排除することはできなかった。
【０００９】
また、特許文献２に係る技術は、制御条件に応じて最適なパラメータを設定するものの、具体的には、早送り処理時のパラメータと切削処理時のパラメータを変更することが開示されているに過ぎない。
【００１０】
これに対して、軸の位置によって、工作機械、ロボット又は産業機械の特性が変化することが知られている。例えば、ボールねじを用いた工作機械においては、軸位置がボールねじの端にある場合と、中央にある場合とでは、工作機械の共振周波数や剛性が異なる。
【００１１】
具体的には、例えば、図１０に示すように、ボールねじ８０３３の長さをｌ、カップリング８０３１側のボールねじ８０３３の端点を原点０、テーブル８０４の位置である軸位置をｘとする場合、ねじ軸、すなわちボールねじ８０３３の剛性をＫｓ、ナット８０３２の剛性をＫｎ、軸受け（不図示）の剛性をＫｂとしたとき、以下の非特許文献によれば軸方向剛性Ｋｔは、以下の式（１）（以下に数１として示す）で計算されることが知られている。
【数１】
2020047228.tif 000003
【００１２】
＜非特許文献＞
松原厚『精密位置決め・送り系設計のための制御工学』森北出版，２００８
【００１３】
そして、シングルアンカ、すなわち、モータ側において、ねじ軸のスラスト方向（軸方向）とラジアル方向（回転方向）が固定されており、反モータ側において、ねじ軸のラジアル方向のみが拘束されている場合、ねじ軸（鋼）の縦弾性係数をＥ、ねじ軸断面積をＡｓとすると、式（１）のＫｓは、以下の式（２）（以下に数２として示す）で計算されることが知られている。
【数２】
2020047228.tif 000004
【００１４】
一方、ダブルアンカ、すなわち、モータ側及び反モータ側の双方において、ねじ軸のスラスト方向とラジアル方向が固定されている場合、式（１）のＫｓは、以下の式（３）（以下に数３として示す）で計算されることが知られている。
【数３】
2020047228.tif 000005
このように、いずれの場合においても、軸方向剛性は軸の位置に依存する。
【００１５】
他方、サーボモータ８００とボールねじ８０３３の慣性をＪ、テーブル８０４の質量をＲ、回転から直動への変換係数をＲ［ｍ／ｒａｄ］としたとき、ボールねじ８０３３の二慣性モデルにおいて、反共振周波数ωａは、以下の式（４）（以下に数４として示す）で計算されることが知られている。
【数４】
2020047228.tif 000006
【００１６】
更に慣性比α＝Ｒ２Ｍ／Ｊを用いると、共振周波数ωｎは、以下の式（５）（以下に数５として示す）で計算されることが知られている。
【数５】
2020047228.tif 000007
このように、共振周波数、反共振周波数共に軸方向剛性に依存するため、軸の位置によって変化する。
【００１７】
したがって、軸の位置によって、工作機械、ロボット又は産業機械の剛性、共振周波数、反共振周波数が異なることから、モータ制御装置において高い制御性能を発揮するためには、軸の位置毎に、例えば、フィードバック制御器やフィードフォワード制御器におけるパラメータを調整し、軸の位置に応じて、当該パラメータの設定変更又は当該パラメータを用いる制御器に切り替えることが望まれる。
この点、特許文献１、特許文献２等には、軸の位置毎に、例えばフィードバック制御器やフィードフォワード制御器（以下、「制御器」ともいう）におけるパラメータを調整し、軸の位置に応じて、制御器に設定されているパラメータを変更したり、或いは当該パラメータを用いる制御器に切り替えることについては何ら開示されていなかった。
【００１８】
本発明は、例えば、位置指令値又は位置検出器により検出されるそれぞれの軸位置情報に応じて、制御器に適用するパラメータや制御器を機械学習により調整することが可能であると共に、機械学習により調整されたパラメータを保持し、それぞれの軸の位置毎に当該パラメータや当該制御器を切り替えることが可能なモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
（１）  本発明に係るモータ制御装置（例えば、後述の「モータ制御装置２００」）は、工作機械、ロボット、又は産業機械のサーボモータ又はスピンドルモータを制御する制御器を備えるモータ制御装置であって、当該モータ制御装置に係る、軸の位置情報に基づいて、前記制御器の切替条件を判定する切替判断部（例えば、後述の「切替判断装置３００」）、又は前記切替判断部と通信する第１の通信手段と、前記切替条件毎に、機械学習によって前記制御器のパラメータを調整する機械学習部（例えば、後述の「機械学習装置５００」）、又は前記機械学習部と通信する第２の通信手段と、前記機械学習部により調整された前記切替条件毎のパラメータを保持するパラメータ保持部（例えば、後述の「パラメータ判断装置４００」）、又は前記パラメータ保持部と通信する第３の通信手段とを備え、前記切替判断部は、前記パラメータの調整後に前記切替条件を判定した時に、前記切替条件に対応する調整後のパラメータを前記制御器に適用する。
【００２０】
（２）  （１）のモータ制御装置は、前記軸に係る位置指令を作成する位置指令作成部（例えば、後述の「位置指令作成部１０１１」）と、前記軸に係る位置を検出する位置検出部と、前記位置指令と、前記位置検出部によって検出された前記位置のフィードバック情報とから速度指令を作成する位置制御器（例えば、後述の「位置制御部２０１４」）と、速度を検出する速度検出部と、前記位置制御器によって作成された前記速度指令と、前記速度検出部によって検出された前記速度のフィードバック情報とからトルク指令を作成する速度制御器（例えば、後述の「速度制御部２０１７」）とを備え、前記機械学習部は、前記切替条件毎に、前記位置制御器又は前記速度制御器のパラメータを調整してもよい。
【００２１】
（３）  （１）のモータ制御装置は、前記速度指令を作成する速度指令作成部と、前記速度を検出する速度検出部と、前記速度指令と、前記速度検出部によって検出された前記速度のフィードバック情報とからトルク指令を作成する速度制御器とを備え、前記機械学習部は、前記切替条件毎に、前記速度制御器のパラメータを調整してもよい。
【００２２】
（４）  （１）のモータ制御装置は、前記位置指令から位置フィードフォワード情報を作成する位置フィードフォワード制御器（例えば、後述の「位置フィードフォワード制御部２０２０」）及び／又は前記位置指令から速度フィードフォワード情報を作成する速度フィードフォワード制御器（例えば、後述の「速度フィードフォワード制御部２０２１」）とを備え、前記機械学習部は、前記切替条件毎に、前記位置フィードフォワード制御器及び／又は前記速度フィードフォワード制御器のパラメータを調整してもよい。
【００２３】
（５）  （１）〜（４）のモータ制御装置において、前記機械学習部は、一つの前記切替条件に対して種類が異なる複数のパラメータを調整し、前記切替判断部は、前記複数のパラメータから選択される一つのパラメータを、前記制御器に適用してもよい。
【発明の効果】
【００２４】
本発明によれば、例えば、位置指令値又は位置検出器により検出されるそれぞれの軸位置情報に応じて、制御器に適用するパラメータや制御器を機械学習により調整することが可能であると共に、機械学習により調整されたパラメータを保持し、それぞれの軸の位置毎に当該パラメータや当該制御器を切り替えることが可能なモータ制御装置を提供することが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係るモータ制御装置を含むモータ制御システムの全体構成を示すブロック図である。
【図２】本発明の機械学習装置が備える機械学習部の構成を示すブロック図である。
【図３】本発明の第１実施形態に係るモータ制御装置の全体構成を示すブロック図である。
【図４Ａ】本発明の第１実施形態に係るモータ制御装置に含まれる位置制御部の構成を示すブロック図である。
【図４Ｂ】本発明の第１実施形態に係るモータ制御装置に含まれる速度制御部の構成を示すブロック図である。
【図５】本発明の第１実施形態に備わる切替判断装置の動作を示すフローチャートである。
【図６】本発明の第２実施形態に係るモータ制御装置の全体構成を示すブロック図である。
【図７】本発明の第３実施形態に係るモータ制御装置の全体構成を示すブロック図である。
【図８Ａ】本発明の第３実施形態に係るモータ制御装置に含まれる位置フィードフォワード制御部の構成を示すブロック図である。
【図８Ｂ】本発明の第３実施形態に係るモータ制御装置に含まれる速度フィードフォワード制御部の構成を示すブロック図である。
【図９】本発明の第４実施形態に係るモータ制御装置の全体構成を示すブロック図である。
【図１０】モータ制御装置の制御対象の一例となる、サーボモータを含む工作機械の一部を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施形態について図面を用いて詳細に説明する。
〔１  第１実施形態〕
〔１．１  全体構成〕
図１は本発明の第１実施形態に係るモータ制御システムを示すブロック図である。モータ制御システム１０は、図１に示すように、ＣＮＣ（Computerized Numerical Control)装置１００、モータ制御装置２００、切替判断装置３００、パラメータ保持装置４００、機械学習装置５００を備える。ＣＮＣ装置１００とモータ制御装置２００、モータ制御装置２００と切替判断装置３００、切替判断装置３００とパラメータ保持装置４００、パラメータ保持装置４００と機械学習装置５００はそれぞれ接続インターフェースを介して直接に接続、又はそれぞれネットワークを介して接続されており、相互に通信を行うことが可能である。なお、ネットワークは、例えば、工場内に構築されたＬＡＮ（Local Area Network）や、インターネット、公衆電話網、或いは、これらの組み合わせである。ネットワークにおける具体的な通信方式や、有線接続及び無線接続のいずれであるか等については、特に限定されない。
【００２７】
ＣＮＣ装置１００は、加工プログラムに基づいて、送り軸の位置指令値や主軸の速度指令値を作成し、作成した位置指令値や速度指令値を含む指令をモータ制御装置２００に対して出力することにより、工作機械、ロボット、又は産業機械のサーボモータ又はスピンドルモータ等のモータを制御することで、工作機械、ロボット、又は産業機械による加工を制御する装置である。
【００２８】
モータ制御装置２００は、ＣＮＣ装置１００から取得した位置指令値又は速度指令値に基づいて、自身が備える各制御器により、位置指令、速度指令、及びトルク指令を生成し、これらの指令をサーボモータ又はスピンドルモータ等のモータに出力することによりモータを制御する。
モータ制御装置２００は、ＣＮＣ装置１００からの位置指令値に基づいて、例えばＰＩ制御等を利用した位置制御、速度制御及び電流制御を行うことにより、送り軸におけるモータの駆動電流を生成する。例えば、モータ制御装置２００は、位置指令と、例えば送り軸におけるモータに設けられたエンコーダで検出された位置フィードバックとの位置偏差に基づいて速度指令を生成し（位置制御）、この速度指令とエンコーダで検出された速度フィードバックとに基づいて送り軸におけるモータのトルク指令を生成し（速度制御）、このトルク指令に基づいて送り軸におけるモータの駆動電流を生成する（電流制御）。
【００２９】
また、モータ制御装置２００は、例えば、位置指令又は位置フィードバックに基づいて軸位置情報を切替判断装置３００に出力する。更に、モータ制御装置２００は、切替判断装置３００を介してパラメータ保持装置４００から、上記の制御器で用いるパラメータを取得すると共に、切替判断装置３００から、軸位置に応じて用いる制御器やパラメータを切り替えるための切替情報を取得する。
モータ制御装置２００の構成の詳細については、図３を参照することにより後述する。
【００３０】
切替判断装置３００は、モータ制御装置２００から取得した軸位置情報に基づいて、モータ制御装置２００で用いる制御器やパラメータを切り替えるための切替条件を判定し、この判定に基づいて、モータ制御装置２００がどの制御器やパラメータを実際に用いるかを示す切替情報を、モータ制御装置２００に出力する。
更に、切替判断装置３００は、パラメータ保持装置４００から上記のパラメータを取得すると共に、このパラメータをモータ制御装置２００に出力する。
【００３１】
パラメータ保持装置４００は、モータ制御装置２００の制御器で用いるパラメータを、機械学習装置５００から取得し、保持する。更に、パラメータ保持装置４００は、自身が保持するパラメータを切替判断装置３００に出力する。
【００３２】
機械学習装置５００は、上記の切替条件毎に、機械学習によってモータ制御装置２００の制御器で用いるパラメータを調整し、調整したパラメータをパラメータ保持装置４００に出力する。
機械学習装置５００は、各切替条件に対応する複数の機械学習部５１０を備える。
なお、以下の説明では、予め設定された複数の位置情報（例えば、位置ｘ＝０，０．１，０．２、・・・（ｍ）)に基づいてパラメータを切り替える切替条件の一例を用いている。このため、図１では、軸位置の範囲が閾値を境にｎ分割され、各範囲が各切替条件に対応することを想定し、この想定に基づいて、機械学習装置５００がｎ個の機械学習部である機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎを備える例が示される。
また、以下においては、説明の便宜上、軸位置の範囲がｎ分割され、分割された個数に応じた種類のパラメータがモータ制御装置２００に設定されることを前提に本発明のモータ制御システム及びモータ制御装置の構成、動作等について記載する。
【００３３】
以下、本実施形態における機械学習として強化学習を例示して説明する。なお、本発明における機械学習は強化学習に限られず、他の任意の機械学習（例えば教師あり学習等）を行う場合にも適用できる。
【００３４】
機械学習装置５００に含まれる各機能ブロックの説明に先立って、強化学習の基本的な仕組みについて説明する。エージェント（本実施形態における機械学習装置５００に相当）は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択（意思決定）を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
【００３５】
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、位置偏差を低減するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
【００３６】
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態ｓの下で、行動ａを選択する価値Ｑ（ｓ，ａ）を学習する方法であるＱ学習（Ｑ−ｌｅａｒｎｉｎｇ）を用いる場合を例にとって説明をする。
Ｑ学習では、或る状態ｓのとき、取り得る行動ａのなかから、価値Ｑ（ｓ，ａ）の最も高い行動ａを最適な行動として選択することを目的とする。
【００３７】
しかしながら、Ｑ学習を最初に開始する時点では、状態ｓと行動ａとの組合せについて、価値Ｑ（ｓ，ａ）の正しい値は全く分かっていない。そこで、エージェントは、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Ｑ（ｓ，ａ）を学習していく。
【００３８】
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ（ｓ，ａ）＝Ｅ［Σ（γｔ）ｒｔ］となるようにすることを目指す。ここでＥ［］は期待値を表し、ｔは時刻、γは後述する割引率と呼ばれるパラメータ、ｒｔは時刻ｔにおける報酬、Σは時刻ｔによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしＱ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値Ｑ（ｓ，ａ）の更新式は、例えば、次の式（６）（以下に数６として示す）により表すことができる。
【００３９】
【数６】
2020047228.tif 000008
【００４０】
上記の式（６）において、ｓｔは、時刻ｔにおける環境の状態を表し、ａｔは、時刻ｔにおける行動を表す。行動ａｔにより、状態はｓｔ＋１に変化する。ｒｔ＋１は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓｔ＋１の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００４１】
上述した式（６）は、試行ａｔの結果、返ってきた報酬ｒｔ＋１を元に、状態ｓｔにおける行動ａｔの価値Ｑ（ｓｔ，ａｔ）を更新する方法を表している。
この更新式は、状態ｓｔにおける行動ａｔの価値Ｑ（ｓｔ，ａｔ）よりも、行動ａｔによる次の状態ｓｔ＋１における最良の行動の価値ｍａｘａ  Ｑ（ｓｔ＋１，ａ）の方が大きければ、Ｑ（ｓｔ，ａｔ）を大きくし、逆に小さければ、Ｑ（ｓｔ，ａｔ）を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬ｒｔ＋１のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
【００４２】
ここで、Ｑ学習では、すべての状態行動ペア（ｓ，ａ）についてのＱ（ｓ，ａ）のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのＱ（ｓ，ａ）の値を求めるには状態数が多すぎて、Ｑ学習が収束するのに多くの時間を要してしまう場合がある。
【００４３】
そこで、公知のＤＱＮ（Ｄｅｅｐ  Ｑ−Ｎｅｔｗｏｒｋ）と呼ばれる技術を利用するようにしてもよい。具体的には、行動価値関数Ｑを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Ｑを適当なニューラルネットワークで近似することにより価値Ｑ（ｓ，ａ）の値を算出するようにしてもよい。ＤＱＮを利用することにより、Ｑ学習が収束するのに要する時間を短くすることが可能となる。なお、ＤＱＮについては、例えば、以下の非特許文献に詳細な記載がある。
【００４４】
＜非特許文献＞
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著［ｏｎｌｉｎｅ］、［平成２９年１月１７日検索］、インターネット〈ＵＲＬ：http://files.davidqiu.com/research/nature14236.pdf〉
【００４５】
以上説明をしたＱ学習を機械学習装置５００が行う。
図２は、全ての機械学習部５１０に共通の機能ブロックを示すブロック図である。機械学習部５１０は、それぞれ状態情報取得部５１１、学習部５１２、行動情報出力部５１３、価値関数記憶部５１４、及び最適化行動情報出力部５１５を備える。また、学習部５１２は、それぞれ報酬出力部５１２１、価値関数更新部５１２２、及び行動情報生成部５１２３を備える。
【００４６】
状態情報取得部５１１は、モータ制御装置２００における制御器で用いるパラメータに基づいて、予め設定された評価用プログラムを実行することで取得されるモータ制御装置２００の位置偏差情報を含む指令、フィードバック等のフィードバック情報となる状態情報Ｓを、モータ制御装置２００から取得する。この状態情報Ｓは、Ｑ学習における環境状態Ｓに相当する。状態情報取得部５１１は、取得した状態情報Ｓを学習部５１２に対して出力する。
なお、Ｑ学習等の強化学習については本明細書の末尾で参考として説明する。
【００４７】
学習部５１２は、或る状態Ｓに係る環境の下で、ある行動Ａを選択する場合の価値Ｑ（Ｓ，Ａ）を学習する部分である。ここで「行動Ａ」とは、具体的には、フィードバック等の状態Ｓに対して、最適なパラメータを調整する行動を示す。
学習部５１２は、報酬出力部５１２１、価値関数更新部５１２２及び行動情報生成部５１２３を備える。
【００４８】
報酬出力部５１２１は、行動Ａを選択した場合、状態Ｓに基づいて所定の評価関数を用いることにより報酬ｒを算出する。
ここで、状態Ｓにおける状態変数である位置偏差の集合（位置偏差集合）をＰＤ（Ｓ）、行動Ａにより状態Ｓから変化した状態Ｓ´における状態変数である位置偏差集合をＰＤ（Ｓ´）で示す。また、状態Ｓにおける位置偏差の値を、予め設定された評価関数ｆ（ＰＤ（ｓ））に基づいて算出される値とする。
なお、「位置偏差の集合」とは、前述したｎ分割された軸位置の範囲内で計測される位置偏差の集合を意味する。
【００４９】
「評価関数ｆ」としては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の２ｎ（ｎは自然数）乗の積算値を算出する関数、
∫e2ndt（ｎは自然数）
位置偏差の絶対値の最大値を算出する関数
Ｍａｘ｛|e|｝
等が例示されるが、これらに限られるものではない。
【００５０】
また、「報酬ｒ」を次のように設定する。
行動Ａにより状態Ｓが状態Ｓ´に修正された場合、状態Ｓ´における位置偏差の値が、行動Ａにより修正される前の状態Ｓにおける位置偏差の値よりも大きくなった場合に、報酬の値を負の値とする。
【００５１】
他方、行動Ａにより修正された状態情報Ｓ´における位置偏差の値が、行動Ａにより修正される前の状態Ｓにおける位置偏差の値よりも小さくなった場合に、報酬の値を正の値とする。
【００５２】
価値関数更新部５１２２は、状態Ｓと、行動Ａと、行動Ａを状態Ｓに適用した場合の状態Ｓ´と、報酬の値ｒと、に基づいてＱ学習を行うことにより、価値関数記憶部５１４が記憶する価値関数Ｑを更新する。なお、パラメータの再学習を行う場合、Ｑ学習の開始時においては、パラメータ保持装置４００に保持しているパラメータを初期値として設定することができる。
【００５３】
行動情報生成部５１２３は、現在の状態Ｓに対して、Ｑ学習の過程における行動Ａを選択する。行動情報生成部５１２３は、Ｑ学習の過程において、モータ制御装置２００の制御器で用いるパラメータを修正する動作（Ｑ学習における行動Ａに相当）を行わせるために、行動情報Ａを生成して、生成した行動情報Ａを行動情報出力部５１３に対して出力する。より具体的には、行動情報生成部２１２３は、例えば、状態Ｓに含まれる制御器で用いられるパラメータに対してインクレメンタル（例えば０．０１程度）に加算又は減算させる行動Ａを行動情報出力部２１３に対して出力する。この行動情報Ａはパラメータ修正情報となる。
【００５４】
行動情報生成部５１２３は、制御器で用いられるパラメータの増加又は減少を適用して、状態Ｓ´に遷移して、プラスの報酬（正の値の報酬）が返った場合、次の行動情報Ａ´としては、制御器で用いられるパラメータに対して、前回のアクションと同様にインクレメンタルに加算又は減算させる等、位置偏差の値がより小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００５５】
また、逆に、マイナスの報酬（負の値の報酬）が返った場合、行動情報生成部２１２３は、次の行動Ａ´としては、例えば、制御器で用いられるパラメータに対して、前回のアクションとは逆にインクレメンタルに減算又は加算させる等、位置偏差が前回の値よりも小さくなるような行動Ａ´を選択する方策を取るようにしてもよい。
【００５６】
行動情報出力部５１３は、学習部５１２から出力される行動情報Ａとなるパラメータ修正情報をモータ制御装置２００の制御器に対して送信する部分である。モータ制御装置２００は上述したように、この行動情報Ａに基づいて、現在の状態Ｓ、すなわち現在設定されている制御器のパラメータを微修正することで、次の状態Ｓ´（すなわち修正されたパラメータ）に遷移する。
【００５７】
価値関数記憶部５１４は、価値関数Ｑを記憶する記憶装置である。価値関数Ｑは、例えば状態Ｓ、行動Ａ毎にテーブル（以下、行動価値テーブルと呼ぶ）として格納してもよい。価値関数記憶部５１４に記憶された価値関数Ｑは、価値関数更新部５１２２により更新される。
【００５８】
最適化行動情報出力部５１５は、価値関数更新部５１２２がＱ学習を行うことにより更新した価値関数Ｑに基づいて、価値関数Ｑ（ｓ，ａ）が最大となる動作をモータ制御装置２００に行わせるための行動情報ａ（以下、「最適化行動情報」と呼ぶ）を生成する。
【００５９】
より具体的には、最適化行動情報出力部５１５は、価値関数記憶部５１４が記憶している価値関数Ｑを取得する。この価値関数Ｑは、上述したように価値関数更新部５１２２がＱ学習を行うことにより更新したものである。そして、最適化行動情報出力部５１５は、価値関数Ｑに基づいて、行動情報を生成し、生成した行動情報をパラメータ保持装置４００に対して出力する。
【００６０】
このように、パラメータ保持装置４００は、モータ制御装置２００の制御部で用いられるパラメータであって、機械学習装置５００の機械学習による調整が完了したパラメータを保持する。モータ制御装置２００では、パラメータ保持装置４００に保持されるパラメータを用いて、位置偏差の値を低減するように動作することができる。
【００６１】
以上のように、本発明に係る機械学習装置５００は、各切替条件に対応する複数の機械学習部５１０を備えることで、切替条件毎に、機械学習によってモータ制御装置２００の制御器で用いるパラメータを調整することが可能となる。
【００６２】
なお、ｎ分割された軸位置の範囲の各々に対応して、各機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎが機械学習をするが、機械学習装置５００全体としての機械学習は、各機械学習部５１０＿１、５１０＿２，・・・５１０＿ｎに対し、以下の方法により振り分けられる。
【００６３】
軸位置の範囲が、ｘ０（＝０）≦ｘ＜ｘ１，ｘ１≦ｘ＜ｘ２，・・・，ｘｎ−１≦ｘ＜ｘｎにｎ分割されている場合、機械学習装置５００がモータ制御装置２００から取得したフィードバック情報に、軸位置がｘ０（＝０）≦ｘ＜ｘ１にあることを示す軸位置情報が含まれるとき、機械学習装置５００は、このフィードバック情報が、機械学習部５１０＿１による学習対象であると判定する。
具体的には、機械学習装置５００は、評価用加工プログラムの動作中の現時点の軸位置情報に基づいて、軸位置が前述したｘ０（＝０）≦ｘ＜ｘ１の範囲内にある場合、機械学習部２１０＿１による学習対象であると判定する。
【００６４】
機械学習装置５００がモータ制御装置２００から取得したフィードバック情報に、軸位置がｘ１≦ｘ＜ｘ２にあることを示す軸位置情報が含まれるとき、機械学習装置５００は、このフィードバック情報が、機械学習部５１０＿２による学習対象であると判定する。
具体的には、機械学習装置５００は、評価用加工プログラムの動作中の現時点の軸位置情報に基づいて、軸位置が前述したｘ１≦ｘ＜ｘ２の範囲内にある場合、機械学習部２１０＿２による学習対象であると判定する。
【００６５】
以下同様に、機械学習装置５００がモータ制御装置２００から取得したフィードバック情報に、軸位置がｘｉ−１≦ｘ＜ｘｉ（１≦ｉ≦ｎ）にあることを示す軸位置情報が含まれるとき、機械学習装置５００は、このフィードバック情報が、機械学習部５１０＿ｉによる学習対象であると判定する。
具体的には、機械学習装置５００は、軸位置が前述したｘｉ−１≦ｘ＜ｘｉの範囲内にある場合、機械学習部２１０＿ｉによる学習対象であると判定する。
【００６６】
なお、評価用加工プログラムは、ｘ０≦ｘ＜ｘｎを移動するように設定されている。これにより、ｘ０（＝０）≦ｘ＜ｘ１，ｘ１≦ｘ＜ｘ２，・・・，ｘｎ−１≦ｘ＜ｘｎの全区画に対応するパラメータが生成される。
【００６７】
また、機械学習後、機械学習部２１０＿１の最適化行動情報出力部５１５は、軸位置がｘ０（＝０）≦ｘ＜ｘ１にあるとき、制御器で機械学習部２１０＿１で生成されたパラメータを用いることを示す切替条件と共に、このパラメータをパラメータ保持装置４００に出力する。また、機械学習部２１０＿２の最適化行動情報出力部５１５は、軸位置がｘ１≦ｘ＜ｘ２にあるとき、制御器で機械学習部２１０＿２で生成されたパラメータを用いることを示す切替条件と共に、このパラメータをパラメータ保持装置４００に出力する。以下同様に、機械学習部２１０＿ｉ（１≦ｉ≦ｎ）の最適化行動情報出力部５１５は、軸位置がｘｉ−１≦ｘ＜ｘｉにあるとき、制御器で機械学習部２１０＿ｉで生成されたパラメータを用いることを示す切替条件と共に、このパラメータをパラメータ保持装置４００に出力する。
【００６８】
〔１．２  モータ制御装置〕
図３はモータ制御装置２００の一構成例を示すブロック図である。説明の便宜上、図３において、ＣＮＣ装置１００が備える位置指令作成部１０１１、切替判断装置３００及びパラメータ保持装置４００も示している。なお、位置指令作成部１０１１は、ＣＮＣ装置１００において、加工プログラムに基づいて位置指令値を作成する機能ブロックである。
【００６９】
図３に示すように、モータ制御装置２００は、減算器２０１３、位置制御部２０１４、減算器２０１６、速度制御部２０１７、積分器２０１９を備えている。モータ制御装置２００の各構成部は、スピンドルモータ又はサーボモータ毎に設けられる。
【００７０】
減算器２０１３はＣＮＣ装置１００（位置指令作成部２０１１）から位置指令値を取得し、位置指令値と位置フィードバックされた検出位置との差を求め、位置偏差として位置制御部２０１４に出力する。
【００７１】
位置制御部２０１４は、位置偏差にポジションゲインＫＰを乗じた値を、速度指令値として減算器２０１６に出力する。
【００７２】
図４Ａは位置制御部２０１４の構成を示す。位置制御部２０１４は、位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎを備える。位置制御部２０１４＿１は、位置偏差にポジションゲインＫＰ１を乗じた値を、速度指令値として減算器２０１６に出力する。位置制御部２０１４＿２は、位置偏差にポジションゲインＫＰ２を乗じた値を、速度指令値として減算器２０１６に出力する。位置制御部２０１４＿ｎは、位置偏差にポジションゲインＫＰｎを乗じた値を、速度指令値として減算器２０１６に出力する。
【００７３】
これらのポジションゲインＫＰ１，ＫＰ２・・・ＫＰｎは、各々機械学習装置５１０の機械学習部５１０＿１，５１０＿２・・・５１０＿ｎによって調整されたパラメータである。これらのパラメータは、機械学習装置５００からパラメータ保持装置４００に出力され、パラメータ保持装置４００から切替判断装置３００に出力され、切替判断装置３００から位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎに出力される。
【００７４】
なお、位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎに機械学習装置５００によって調整されたパラメータが一旦設定されると、工作機械、ロボット又は産業機械による実際の加工の途中で、設定されたパラメータが変更されることはない。
【００７５】
後述のように、切替判断装置３００は、軸位置情報に基づいて切替条件を判定し、判定結果に対応する切替情報として、モータ制御装置２００の位置制御部２０１４として位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎのいずれを用いるかを示す情報を、モータ制御装置２００に出力する。これによりモータ制御装置２００では、位置制御部２０１４として位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎのいずれかに切り替える。
【００７６】
減算器２０１６は位置制御部２０１４の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部２０１７に出力する。
【００７７】
速度制御部２０１７は、速度偏差に比例ゲインＫＶを乗じた値と、速度偏差に積分ゲインＫｉｖを乗じて積分した値とを加算して、トルク指令値としてサーボモータ８００に出力する。
【００７８】
図４Ｂは速度制御部２０１７の構成を示す。速度制御部２０１７は、速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎを備える。速度制御部２０１７＿１は、速度偏差に比例ゲインＫＶ１を乗じた値と、速度偏差に積分ゲインＫｉｖ１を乗じて積分した値とを加算して、トルク指令値としてサーボモータ８００に出力する。速度制御部２０１７＿２は、速度偏差に比例ゲインＫＶ２を乗じた値と、速度偏差に積分ゲインＫｉｖ２を乗じて積分した値とを加算して、トルク指令値としてサーボモータ８００に出力する。速度制御部２０１７＿ｎは、速度偏差に比例ゲインＫＶｎを乗じた値と、速度偏差に積分ゲインＫｉｖｎを乗じて積分した値とを加算して、トルク指令値としてサーボモータ８００に出力する。
【００７９】
これらの比例ゲインＫＶ１，ＫＶ２・・・ＫＶｎは、各々機械学習装置５１０の機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎによって調整されたパラメータである。同様に、積分ゲインＫｉｖ１，Ｋｉｖ２，・・・Ｋｉｖｎは、各々機械学習装置５１０の機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎによって調整されたパラメータである。これらのパラメータの各々は、機械学習装置５００からパラメータ保持装置４００に出力され、パラメータ保持装置４００から切替判断装置３００に出力され、切替判断装置３００から速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎに出力される。
【００８０】
なお、速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎに機械学習装置５００によって調整されたパラメータが設定されると、工作機械、ロボット又は産業機械による実際の加工の途中で、設定されたパラメータが変更されることはない。
【００８１】
後述のように、切替判断装置３００は、軸位置情報に基づいて切替条件を判定し、判定結果に対応する切替情報として、モータ制御装置２００の速度制御部２０１７として速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎのいずれを用いるかを示す情報を、モータ制御装置２００に出力する。これによりモータ制御装置２００では、速度制御部２０１７として速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎのいずれかに切り替える。
【００８２】
なお、上記のように、位置制御部２０１４で用いられるパラメータと、速度制御部２０１７で用いられるパラメータとの双方が機械学習装置５００で調整されるが、機械学習装置５００は、いずれか一方のパラメータを調整するのみでもよい。
【００８３】
図１０はモータ制御装置２００の制御対象７００の一例となる、サーボモータ８００を含む工作機械の一部を示すブロック図である。
モータ制御装置２００は、サーボモータ８００で連結機構８０３を介してテーブル８０４を移動させることで、テーブル８０４の上に搭載された被加工物（ワーク）を加工する。連結機構８０３は、サーボモータ８００に連結されたカップリング８０３１と、カップリング８０３１に固定されるボールねじ８０３３とを有し、ボールねじ８０３３にナット８０３２が螺合されている。サーボモータ８００の回転駆動によって、ボールねじ８０３３に螺着されたナット８０３２がボールねじ８０３３の軸方向に移動する。ナット８０３２の移動によってテーブル８０４が移動する。
【００８４】
制御対象７００のサーボモータ８００の回転角度位置は、サーボモータ８００に関連付けられた、位置検出部となるロータリーエンコーダ８０１によって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分器２０１９で積分され、位置フィードバックされる位置検出値として利用される。
あるいは、サーボモータ８００がリニアスケールを備える場合には、積分器２０１９による速度検出値の積分値を位置検出値とする代わりに、リニアスケールによる位置フィードバック値を適用する。
以上のように、モータ制御装置２００は構成される。
【００８５】
〔１．３  軸位置と共振周波数及び剛性との関係〕
前述したように、軸の位置毎に、トルクから位置までの伝達特性は変化することから、軸の位置毎に例えばフィードバック制御器やフィードフォワード制御器におけるパラメータを機械学習により調整し、軸の位置毎に当該パラメータを切り換えることで高い制御性能を発揮することができる。
すなわち、軸の位置によって、工作機械、ロボット又は産業機械の剛性、共振周波数、反共振周波数が異なるので、高い制御性能を発揮するためには、軸の位置毎にパラメータを調整し、軸の位置に係る切替条件に応じて、当該パラメータ又は当該パラメータを用いる制御器を切り替える必要がある。
以下では、図３における切替判断装置３００が、モータ制御装置２００から取得する軸位置情報に応じて位置制御部２０１４及び速度制御部２０１７を切り替える動作について説明する。
なお、以下の説明では、予め設定された複数の位置情報(例えば、位置ｘｉ＝０，０．１，０．２，・・・（ｍ）)に基づいてパラメータを切り替える一例を用いている。
【００８６】
〔１．４  切替判断装置の動作〕
図５は、切替判断装置３００による制御器切替処理の動作の一例を示すフローチャートである。
【００８７】
ステップＳ１において、切替判断装置３００は、モータ制御装置２００から軸の位置ｘを取得する。
【００８８】
ステップＳ２において、初期設定値としてｉ＝０（ｘ０＝０）を設定する。
【００８９】
ステップＳ３において、軸の位置ｘが閾値ｘｉ以上、閾値ｘｉ＋１未満場合（Ｓ３：ＹＥＳ）には、処理はステップＳ４に移行する。一方、軸の位置ｘが閾値ｘｉ＋１を超える場合（Ｓ３：ＮＯ）には、処理はステップＳ５に移行する。
【００９０】
ステップＳ４において、切替判断装置３００はモータ制御装置２００に対し、位置制御部２０１４として位置制御部２０１４＿ｉ＋１を用いる切替情報、及び／又は速度制御部２０１７として速度制御部２０１７＿ｉ＋１を用いる切替情報を出力する。
より詳細には、機械学習装置５００によって、位置制御部２０１４のパラメータが調整され、位置制御部２０１４が位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎのｎ個の制御器を備える場合には、切替判断装置３００はモータ制御装置２００に対し、位置制御部２０１４として位置制御部２０１４＿ｉ＋１を用いる切替情報を出力する。
一方、機械学習装置５００によって、速度制御部２０１７のパラメータが調整され、速度制御部２０１７が速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎのｎ個の制御器を備える場合には、切替判断装置３００はモータ制御装置２００に対し、速度制御部２０１７として速度制御部２０１７＿ｉ＋１を用いる切替情報を出力する。
その後、処理はステップＳ１に戻る（リターン）。
【００９１】
ステップＳ５において、ｉに１を加算する。その後、処理はステップＳ３に戻る。
【００９２】
なお、上記のフローにより、モータ制御装置２００の動作時に用いる位置制御部２０１４及び速度制御部２０１７が決定した後、工作機械、ロボット又は産業機械による実際の加工の途中で、位置制御部２０１４及び速度制御部２０１７は基本的には変更されない。工作機械、ロボット又は産業機械による加工の品質にばらつきが発生することを避けるためである。
【００９３】
〔２  第２実施形態〕
図６は、第２実施形態に係るモータ制御システム１０Ａにおけるモータ制御装置２００Ａの一構成例を示すブロック図である。以下では、説明の便宜上、モータ制御システム１０Ａ及びモータ制御装置２００Ａが、モータ制御システム１０及びモータ制御装置２００と異なる点について説明し、同一の構成についての記載は省略する。
【００９４】
第１実施形態に係るモータ制御装置２００においては、位置制御部２０１４が位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎの複数の位置制御部を備え、速度制御部２０１７が速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎの複数の速度制御部を備える。これに伴い、モータ制御システム１０において、切替判断装置３００は、軸位置情報に基づく切替条件に応じて、位置制御部２０１４＿１，２０１４＿２，・・・２０１４＿ｎの間で制御器を切り替えると共に、速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎの間で制御器を切り替える。
【００９５】
一方、本実施形態に係るモータ制御装置２００Ａにおいては、速度制御部２０１７が速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎの複数の速度制御部を備えるものの、位置制御部２０１４Ａは複数の位置制御部を備えない。
これに伴い、モータ制御システム１０Ａにおいて、機械学習装置５００は、切替条件毎に速度制御部２０１７のパラメータを調整する一方で、位置制御部２０１４のパラメータは調整しない。また、切替判断装置３００Ａは、軸位置情報に基づく切替条件に応じて、速度制御部２０１７＿１，２０１７＿２，・・・２０１７＿ｎの間で制御器を切り替えるものの、位置制御部２０１４内での切り替えは実行しない。
【００９６】
〔３  第３実施形態〕
図７は、第３実施形態に係るモータ制御システム１０Ｂにおけるモータ制御装置２００Ｂの一構成例を示すブロック図である。以下では、説明の便宜上、モータ制御システム１０Ｂ及びモータ制御装置２００Ｂが、モータ制御システム１０及びモータ制御装置２００と異なる点について説明し、同一の構成についての記載は省略する。
【００９７】
モータ制御装置２００Ｂは、モータ制御装置２００が備える構成要素に加えて、位置フィードフォワード制御部２０２０と速度フィードフォワード制御部２０２１とを備える。
【００９８】
位置フィードフォワード制御部２０２０は、式（７）（以下に数７として示す）で示す伝達関数Ｆｆ（ｓ）で示される位置フィードフォワード計算処理を行い加算器２０１５に出力する。
【数７】
2020047228.tif 000009
【００９９】
図８Ａは位置フィードフォワード制御部２０２０の構成を示す。位置フィードフォワード制御部２０２０は、位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎのｎ個の制御器とを備える。位置フィードフォワード制御部２０２０＿１は、伝達関数Ｆｆ（ｓ）としてＦｆ１（ｓ）で示される位置フィードフォワード計算処理を行い加算器２０１５に出力する。位置フィードフォワード制御部２０２０＿２は、伝達関数Ｆｆ（ｓ）としてＦｆ２（ｓ）で示される位置フィードフォワード計算処理を行い加算器２０１５に出力する。位置フィードフォワード制御部２０２０＿ｎは、伝達関数Ｆｆ（ｓ）としてＦｆｎ（ｓ）で示される位置フィードフォワード計算処理を行い加算器２０１５に出力する。
【０１００】
これらの伝達関数Ｆｆ１（ｓ），Ｆｆ２（ｓ），・・・Ｆｆｎ（ｓ）の係数は、各々機械学習装置５１０の機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎによって調整されたパラメータである。これらのパラメータは、機械学習装置５００からパラメータ保持装置４００に出力され、パラメータ保持装置４００から切替判断装置３００に出力され、切替判断装置３００から位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎに出力される。
【０１０１】
切替判断装置３００Ｂは、軸位置情報に基づいて切替条件を判定し、判定結果となる切替条件に対応する切替情報として、モータ制御装置２００Ｂの位置フィードフォワード制御部２０２０として位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎのいずれを用いるかを示す情報を、モータ制御装置２００Ｂに出力する。これによりモータ制御装置２００Ｂでは、位置フィードフォワード制御部２０２０として位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎのいずれかに切り替える。
【０１０２】
なお、位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎに機械学習装置５００によって調整されたパラメータが一旦設定されると、工作機械、ロボット又は産業機械による実際の加工の途中で、設定されたパラメータが変更されることはない。
【０１０３】
速度フィードフォワード制御部２０２１は、式（８）（以下に数８として示す）で示す伝達関数Ｇｆ（ｓ）で示される速度フィードフォワード計算処理を行い加算器２０１８に出力する。
【数８】
2020047228.tif 000010
【０１０４】
図８Ｂは速度フィードフォワード制御部２０２１の構成を示す。速度フィードフォワード制御部２０２１は、速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎを備える。速度フィードフォワード制御部２０２１＿１は、伝達関数Ｇｆ（ｓ）としてＧｆ１（ｓ）で示される速度フィードフォワード計算処理を行い加算器２０１８に出力する。速度フィードフォワード制御部２０２１＿２は、伝達関数Ｇｆ（ｓ）としてＧｆ２（ｓ）で示される速度フィードフォワード計算処理を行い加算器２０１８に出力する。速度フィードフォワード制御部２０２１＿ｎは、伝達関数Ｇｆ（ｓ）としてＧｆｎ（ｓ）で示される速度フィードフォワード計算処理を行い加算器２０１８に出力する。
【０１０５】
これらの伝達関数Ｇｆ１（ｓ），Ｇｆ２（ｓ）・・・Ｇｆｎ（ｓ）の係数は、各々機械学習装置５１０の機械学習部５１０＿１，５１０＿２，・・・５１０＿ｎによって調整されたパラメータである。これらのパラメータは、機械学習装置５００からパラメータ保持装置４００に出力され、パラメータ保持装置４００から切替判断装置３００に出力され、切替判断装置３００から速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎに出力される。
【０１０６】
なお、速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎに機械学習装置５００によって調整されたパラメータが一旦設定されると、工作機械、ロボット又は産業機械による実際の加工の途中で、設定されたパラメータが変更されることはない。
【０１０７】
切替判断装置３００Ｂは、軸位置情報に基づいて切替条件を判定し、判定結果に対応する切替情報として、モータ制御装置２００の速度フィードフォワード制御部２０２１として速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎのいずれを用いるかを示す情報を、モータ制御装置２００Ｂに出力する。これによりモータ制御装置２００Ｂでは、速度フィードフォワード制御部２０２１として速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎのいずれかに切り替える。
【０１０８】
なお、機械学習装置５００は、位置フィードフォワード制御部２０２０で用いられるパラメータと、速度フィードフォワード制御部２０２１で用いられるパラメータの双方を調整してもよく、一方のみを調整してもよい。
【０１０９】
また、切替判断装置３００Ｂは、位置フィードフォワード制御部２０２０＿１，２０２０＿２，・・・２０２０＿ｎの間での制御器の切り替えと、速度フィードフォワード制御部２０２１＿１，２０２１＿２，・・・２０２１＿ｎの間での制御器の切り替えとの双方の切り替えを実行してもよく、一方の切り替えのみを実行してもよい。
【０１１０】
〔４  第４実施形態〕
図９は、第４実施形態に係るモータ制御システム１０Ｃにおけるモータ制御装置２００Ｃの一構成例を示すブロック図である。以下では、説明の便宜上、モータ制御システム１０Ｃ及びモータ制御装置２００Ｃが、モータ制御システム１０及びモータ制御装置２００と異なる点について説明し、同一の構成についての記載は省略する。
【０１１１】
モータ制御システム１０〜１０Ｂにおいては、機械学習装置５００が各切替条件に対応して各制御器におけるパラメータを調整し、調整されたパラメータの各々は、位置制御部２０１４、速度制御部２０１７、位置フィードフォワード制御部２０２０、速度フィードフォワード制御部２０２１を構成する複数の制御部の各々に設定されていた。その後、切替判断装置３００〜３００Ｂは、軸位置情報に基づいて切替条件を判定し、複数の制御部から、判定結果に対応した制御部を選択することを示す切替情報を、モータ制御装置２００〜２００Ｂに出力していた。
【０１１２】
一方、第４実施形態に係るモータ制御装置２００Ｃにおいて、位置制御部２０１４Ｃ、速度制御部２０１７Ｃ、位置フィードフォワード制御部２０２０Ｃ、速度フィードフォワード制御部２０２１Ｃの各々は、一つの制御部を備える。そして、切替判断装置３００Ｃは、軸位置情報に基づいて切替条件を判定し、複数のパラメータから、判定結果に対応した各制御器におけるパラメータを選択し、それぞれ位置制御部２０１４Ｃ、速度制御部２０１７Ｃ、位置フィードフォワード制御部２０２０Ｃ、速度フィードフォワード制御部２０２１Ｃに設定する。
【０１１３】
なお、図９では、切替判断装置３００Ｃが、位置フィードフォワード制御部２０２０Ｃと速度フィードフォワード制御部２０２１Ｃで用いるパラメータを選択し、各々のパラメータが、位置フィードフォワード制御部２０２０Ｃと速度フィードフォワード制御部２０２１Ｃに設定される態様を図示しているが、これには限られない。切替判断装置３００Ｃは、位置制御部２０１４Ｃ、速度制御部２０１７Ｃ、位置フィードフォワード制御部２０２０Ｃ、速度フィードフォワード制御部２０２１Ｃのうち、任意の制御部で用いるパラメータを選択し、当該パラメータが制御部に設定されてもよい。
【０１１４】
〔５  変形例〕
〔５．１  変形例１〕
上記の実施形態においては、機械学習装置５００が一つの切替条件に対して一つ又は一組のパラメータを調整し、この一つ又は一組のパラメータが各制御部に設定される構成としていたが、これには限られない。
例えば、一つの切替条件に対して、工作機械、ロボット、又は産業機械による加工品質等の程度に応じて複数種類のパラメータを調整し、パラメータ保持装置４００がこれら複数種類のパラメータを保持してもよい。この場合、例えば切替判断装置３００〜３００Ｃが、複数種類のパラメータを表示する表示装置（不図示）を備え、ユーザが表示装置に備わるタッチパネル等の入力部から任意のパラメータを選択することにより、選択されたパラメータが各制御部に設定される構成としてもよい。
また、パラメータ保持装置４００は、再度機械学習を行うことでパラメータを更新する場合、既に保持されているパラメータに対して上書きをする代わりに、パラメータのバージョン管理を行うように、新たなバージョン番号を付して、追記保存するようにしてもよい。そうすることで、通常は、最新のバージョンのパラメータを利用し、例えば、何らかの異常が発生した場合、過去に最適値として設定されたパラメータを再利用することができる。
【０１１５】
〔５．２  変形例２〕
また、上記の実施形態においては、予め設定された評価用プログラムを実行することにより、機械学習装置５００が機械学習することで、パラメータを調整するとしたが、これには限られない。工作機械、ロボット、又は産業機械による実際の加工中に機械学習することにより、パラメータを調整してもよい。
【０１１６】
〔５．３  変形例３〕
また、上記の実施形態においては、モータ制御装置２００〜２００Ｃと、切替判断装置３００〜３００Ｃと、パラメータ保持装置４００と、機械学習装置５００とが別体となっていたが、これには限られない。モータ制御装置２００〜２００Ｃと同一の筺体の中に、切替判断装置３００〜３００Ｃと、パラメータ保持装置４００と、機械学習装置５００のうち一以上が組み込まれていてもよい。
【０１１７】
上記のモータ制御装置及びモータ制御システムに含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のモータ制御装置及びモータ制御システムに含まれる各構成部のそれぞれの協働により行なわれるモータ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１１８】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１１９】
１０  １０Ａ  １０Ｂ  １０Ｃ  モータ制御システム
１００  ＣＮＣ装置
２００  ２００Ａ  ２００Ｂ  ２００Ｃ  モータ制御装置
３００  ３００Ａ  ３００Ｂ  ３００Ｃ  切替判断装置
４００  パラメータ保持装置
５００  機械学習装置
２０１４  位置制御部
２０１７  速度制御部
２０２０  位置フィードフォワード制御部
２０２１  速度フィードフォワード制御部
【図１】
2020047228.tif 000011
【図２】
2020047228.tif 000012
【図３】
2020047228.tif 000013
【図４Ａ】
2020047228.tif 000014
【図４Ｂ】
2020047228.tif 000015
【図５】
2020047228.tif 000016
【図６】
2020047228.tif 000017
【図７】
2020047228.tif 000018
【図８Ａ】
2020047228.tif 000019
【図８Ｂ】
2020047228.tif 000020
【図９】
2020047228.tif 000021
【図１０】
2020047228.tif 000022