(57)【特許請求の範囲】
【請求項１】
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、
指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、
前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、
前記第１仮指令速度と前記第２仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、
複数の前記指令物理量に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、
前記第１仮指令電流と前記第２仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第１出力として出力する複数の位置側入力部と、
複数の前記位置側入力部のそれぞれから出力される前記位置側第１出力のそれぞれに対する位置側第１重みを、前記位置偏差に応じて変更する第１位置側重み学習部と、
複数の前記位置側入力部からの前記位置側第１出力のそれぞれと、当該位置側第１出力に対応する前記位置側第１重みと、を乗算した複数の第１位置側乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有し、
前記速度フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第１出力として出力する複数の速度側入力部と、
複数の前記速度側入力部のそれぞれから出力される前記速度側第１出力のそれぞれに対する速度側第１重みを、前記速度偏差に応じて変更する第１速度側重み学習部と、
複数の前記速度側入力部からの前記速度側第１出力のそれぞれと、当該速度側第１出力に対応する前記速度側第１重みと、を乗算した複数の第１速度側乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【請求項２】
請求項１に記載のモータ制御装置であって、
複数の前記指令物理量は、
指令速度、
指令加速度、
前記指令速度に第１速度係数を乗算した値と、前記指令加速度に第１加速度係数を乗算した値と、を加算した値、
前記指令速度に第２速度係数を乗算した値と、前記指令加速度に第２加速度係数を乗算した値と、を加算した値、
前記指令速度に第３速度係数を乗算した値と、前記指令加速度に第３加速度係数を乗算した値と、を加算した値、であり、
前記第１速度係数、前記第１加速度係数、前記第２速度係数、前記第２加速度係数、前記第３速度係数、前記第３加速度係数、のそれぞれは定数である、
モータ制御装置。
【請求項３】
請求項１に記載のモータ制御装置であって、
複数の前記指令物理量は、
前記指令位置である位置、
指令速度、
指令加速度、
前記位置に第１位置係数を乗算した値と、前記指令速度に第１速度係数を乗算した値と、前記指令加速度に第１加速度係数を乗算した値と、を加算した値、
前記位置に第２位置係数を乗算した値と、前記指令速度に第２速度係数を乗算した値と、前記指令加速度に第２加速度係数を乗算した値と、を加算した値、
前記位置に第３位置係数を乗算した値と、前記指令速度に第３速度係数を乗算した値と、前記指令加速度に第３加速度係数を乗算した値と、を加算した値、であり、
前記第１位置係数、前記第１速度係数、前記第１加速度係数、前記第２位置係数、前記第２速度係数、前記第２加速度係数、前記第３位置係数、前記第３速度係数、前記第３加速度係数、のそれぞれは定数である、
モータ制御装置。
【請求項４】
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、
指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、
前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、
前記第１仮指令速度と前記第２仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、
複数の前記指令物理量に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、
前記第１仮指令電流と前記第２仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第１出力として出力する複数の位置側入力部と、
複数の前記位置側入力部のそれぞれから出力される前記位置側第１出力のそれぞれに対する位置側第１重みを、前記位置偏差に応じて変更する第１位置側重み学習部と、
複数の前記位置側入力部からの前記位置側第１出力のそれぞれと、当該位置側第１出力に対応する前記位置側第１重みと、を乗算した複数の第１位置側乗算値を加算して位置側第２出力として出力する複数の位置側演算部と、
複数の前記位置側演算部のそれぞれから出力される前記位置側第２出力のそれぞれに対する位置側第２重みを、前記位置偏差に応じて変更する第２位置側重み学習部と、
複数の前記位置側演算部からの前記位置側第２出力のそれぞれと、当該位置側第２出力に対応する前記位置側第２重みと、を乗算した複数の第２位置側乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有し、
前記速度フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第１出力として出力する複数の速度側入力部と、
複数の前記速度側入力部のそれぞれから出力される前記速度側第１出力のそれぞれに対する速度側第１重みを、前記速度偏差に応じて変更する第１速度側重み学習部と、
複数の前記速度側入力部からの前記速度側第１出力のそれぞれと、当該速度側第１出力に対応する前記速度側第１重みと、を乗算した複数の第１速度側乗算値を加算して速度側第２出力として出力する複数の速度側演算部と、
複数の前記速度側演算部のそれぞれから出力される前記速度側第２出力のそれぞれに対する速度側第２重みを、前記速度偏差に応じて変更する第２速度側重み学習部と、
複数の前記速度側演算部からの前記速度側第２出力のそれぞれと、当該速度側第２出力に対応する前記速度側第２重みと、を乗算した複数の第２速度側乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【請求項５】
請求項４に記載のモータ制御装置であって、
複数の前記指令物理量は、
指令速度、
指令加速度、である、
モータ制御装置。
【請求項６】
請求項４に記載のモータ制御装置であって、
複数の前記指令物理量は、
前記指令位置である位置、
指令速度、
指令加速度、である、
モータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば工作機械やロボット等において、電動モータを用いて、テーブルやアーム等の所定部材（制御対象物）の位置を制御するモータ制御装置に関する。
【背景技術】
【０００２】
例えば特許文献１には、モータの位置検出値を位置指令値に追従させる、モータによる位置制御装置が開示されている。当該位置制御装置は、速度規範指令値を出力する速度規範モデルと、速度規範指令値と実際の速度との偏差に応じて制御量（電流指令値）を求める速度制御器（速度フィードバック部）と、速度フィードフォワード出力信号を出力する速度フィードフォワード部と、を有している。さらに、当該位置制御装置は、位置規範指令値を出力する位置規範モデルと、位置規範指令値と実際の位置との偏差に応じて制御量（速度指令値）を求める位置制御器（位置フィードバック部）と、位置フィードフォワード出力信号を出力する位置フィードフォワード部と、を有している。なお、位置フィードフォワード部への入力は、位置規範モデルに入力される位置指令値が入力され、速度フィードフォワード部への入力は、速度規範モデルに入力される速度指令値が入力されている。
【０００３】
また例えば特許文献２には、制御対象に対して、位置指令により位置制御を行い、力指令により力制御を行う、組み込み知能コントローラが開示されている。また、位置制御系のファジィ・ニューラルネットワークと、力制御系のファジィ・ニューラルネットワークと、位置と力のハイブリッド／コンプライアンス制御により位置制御と力制御を連続的に切り換える切換部と、を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３０３４３２号公報
【特許文献２】特開２０１４−６５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された位置制御装置は、制御対象のモデルである位置規範モデルと速度規範モデルが必要であり、静止摩擦等のモデル化が困難なシステムに適用することは非常に困難である。また、速度フィードフォワード部への入力が速度指令値であり、工作機械やロボット等の精度への影響が大きな位置偏差を効果的に低減できない可能性がある。
【０００６】
また特許文献２に記載された組み込み知能コントローラは、位置制御だけでなく力制御も必要とする産業用ロボットの組立作業等において、位置制御と力制御の切り換えをスムーズに行うためにファジィ・ニューラルネットワークを利用している。しかし、制御が複雑であり、工作機械のテーブルや、ロボットのアーム等の所定部材の位置をより高精度に制御する制御システムへの適用は困難である。
【０００７】
本発明は、このような点に鑑みて創案されたものであり、電動モータを用いて所定部材（制御対象物）の位置を制御するモータ制御装置であって、位置偏差をより低減することが可能なモータ制御装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係るモータ制御装置は、次の手段をとる。まず、本発明の第１の発明は、制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、前記第１仮指令速度と前記第２仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、複数の前記指令物理量に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、前記第１仮指令電流と前記第２仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有する。そして、前記位置フィードフォワード制御部は、前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第１出力として出力する複数の位置側入力部と、複数の前記位置側入力部のそれぞれから出力される前記位置側第１出力のそれぞれに対する位置側第１重みを、前記位置偏差に応じて変更する第１位置側重み学習部と、複数の前記位置側入力部からの前記位置側第１出力のそれぞれと、当該位置側第１出力に対応する前記位置側第１重みと、を乗算した複数の第１位置側乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有する。また、前記速度フィードフォワード制御部は、前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第１出力として出力する複数の速度側入力部と、複数の前記速度側入力部のそれぞれから出力される前記速度側第１出力のそれぞれに対する速度側第１重みを、前記速度偏差に応じて変更する第１速度側重み学習部と、複数の前記速度側入力部からの前記速度側第１出力のそれぞれと、当該速度側第１出力に対応する前記速度側第１重みと、を乗算した複数の第１速度側乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、モータ制御装置である。
【０００９】
次に、本発明の第２の発明は、上記第１の発明に係るモータ制御装置であって、複数の前記指令物理量は、指令速度、指令加速度、前記指令速度に第１速度係数を乗算した値と、前記指令加速度に第１加速度係数を乗算した値と、を加算した値、前記指令速度に第２速度係数を乗算した値と、前記指令加速度に第２加速度係数を乗算した値と、を加算した値、前記指令速度に第３速度係数を乗算した値と、前記指令加速度に第３加速度係数を乗算した値と、を加算した値、であり、前記第１速度係数、前記第１加速度係数、前記第２速度係数、前記第２加速度係数、前記第３速度係数、前記第３加速度係数、のそれぞれは定数である、モータ制御装置である。
【００１０】
次に、本発明の第３の発明は、上記第１の発明に係るモータ制御装置であって、複数の前記指令物理量は、前記指令位置である位置、指令速度、指令加速度、前記位置に第１位置係数を乗算した値と、前記指令速度に第１速度係数を乗算した値と、前記指令加速度に第１加速度係数を乗算した値と、を加算した値、前記位置に第２位置係数を乗算した値と、前記指令速度に第２速度係数を乗算した値と、前記指令加速度に第２加速度係数を乗算した値と、を加算した値、前記位置に第３位置係数を乗算した値と、前記指令速度に第３速度係数を乗算した値と、前記指令加速度に第３加速度係数を乗算した値と、を加算した値、であり、前記第１位置係数、前記第１速度係数、前記第１加速度係数、前記第２位置係数、前記第２速度係数、前記第２加速度係数、前記第３位置係数、前記第３速度係数、前記第３加速度係数、のそれぞれは定数である、モータ制御装置である。
【００１１】
次に、本発明の第４の発明は、制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、前記第１仮指令速度と前記第２仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、複数の前記指令物理量に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、前記第１仮指令電流と前記第２仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有する。そして、前記位置フィードフォワード制御部は、前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第１出力として出力する複数の位置側入力部と、複数の前記位置側入力部のそれぞれから出力される前記位置側第１出力のそれぞれに対する位置側第１重みを、前記位置偏差に応じて変更する第１位置側重み学習部と、複数の前記位置側入力部からの前記位置側第１出力のそれぞれと、当該位置側第１出力に対応する前記位置側第１重みと、を乗算した複数の第１位置側乗算値を加算して位置側第２出力として出力する複数の位置側演算部と、複数の前記位置側演算部のそれぞれから出力される複数の前記位置側第２出力のそれぞれに対する位置側第２重みを、前記位置偏差に応じて変更する第２位置側重み学習部と、複数の前記位置側演算部からの前記位置側第２出力のそれぞれと、当該位置側第２出力に対応する前記位置側第２重みと、を乗算した複数の第２位置側乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有する。また、前記速度フィードフォワード制御部は、前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第１出力として出力する複数の速度側入力部と、複数の前記速度側入力部のそれぞれから出力される前記速度側第１出力のそれぞれに対する速度側第１重みを、前記速度偏差に応じて変更する第１速度側重み学習部と、複数の前記速度側入力部からの前記速度側第１出力のそれぞれと、当該速度側第１出力に対応する前記速度側第１重みと、を乗算した複数の第１速度側乗算値を加算して速度側第２出力として出力する複数の速度側演算部と、複数の前記速度側演算部のそれぞれから出力される複数の前記速度側第２出力のそれぞれに対する速度側第２重みを、前記速度偏差に応じて変更する第２速度側重み学習部と、複数の前記速度側演算部からの前記速度側第２出力のそれぞれと、当該速度側第２出力に対応する前記速度側第２重みと、を乗算した複数の第２速度側乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、モータ制御装置である。
【００１２】
次に、本発明の第５の発明は、上記第４の発明に係るモータ制御装置であって、複数の前記指令物理量は、指令速度、指令加速度、である、モータ制御装置である。
【００１３】
次に、本発明の第６の発明は、上記第４の発明に係るモータ制御装置であって、複数の前記指令物理量は、前記指令位置である位置、指令速度、指令加速度、である、モータ制御装置である。
【発明の効果】
【００１４】
第１の発明では、位置フィードバック制御部を用いて、位置偏差に応じた第１仮指令速度をフィードバック制御にて求める。また、位置フィードフォワード制御部を用いて、指令位置ではなく指令物理量に応じた第２仮指令速度をフィードフォワード制御にて求める。さらに第１位置側重み学習部を有する位置フィードフォワード制御部を適切な構成とすることで、位置偏差をより低減するための第２仮指令速度を適切に求めることができる。そして、速度フィードバック制御部を用いて、速度偏差に応じた第１仮指令電流をフィードバック制御にて求める。また、速度フィードフォワード制御部を用いて、指令速度ではなく指令物理量に応じた第２仮指令電流をフィードフォワード制御にて求める。さらに第１速度側重み学習部を有する速度フィードフォワード制御部を適切な構成とすることで、位置偏差をより低減するための第２仮指令電流を適切に求めることができる。
【００１５】
第２の発明では、位置フィードフォワード制御部、及び速度フィードフォワード制御部に、指令速度、指令加速度、指令速度＊第１速度係数＋指令加速度＊第１加速度係数、指令速度＊第２速度係数＋指令加速度＊第２加速度係数、指令速度＊第３速度係数＋指令加速度＊第３加速度係数、を入力する。これにより、位置偏差の低減に対して、適切な入力と適切な学習を行い、位置偏差をより低減することができる。
【００１６】
第３の発明では、位置フィードフォワード制御部、及び速度フィードフォワード制御部に、指令位置、指令速度、指令加速度、位置＊第１位置係数＋指令速度＊第１速度係数＋指令加速度＊第１加速度係数、位置＊第２位置係数＋指令速度＊第２速度係数＋指令加速度＊第２加速度係数、位置＊第３位置係数＋指令速度＊第３速度係数＋指令加速度＊第３加速度係数、を入力する。これにより、位置偏差の低減に対して、さらに適切な入力である指令位置を追加するので、位置偏差の低減に対して、適切な入力と適切な学習を行い、位置偏差をより低減することができる。
【００１７】
第４の発明では、第１の発明の「それぞれの位置側第１重み（または速度側第１重み）を、位置偏差（または速度偏差）に応じて変更する第１位置側重み学習部（または第１速度側重み学習部）」に加え、さらに「それぞれの位置側第２重み（または速度側第２重み）を、位置偏差（または速度偏差）に応じて変更する第２位置側重み学習部（または第２速度側重み学習部）」を有する。これにより、位置偏差の低減に対して、適切な学習を行い、位置偏差をさらに低減することができる。
【００１８】
第５の発明では、位置フィードフォワード制御部、及び速度フィードフォワード制御部に、指令速度、指令加速度、を入力する。これにより、位置偏差の低減に対して、適切な入力と適切な学習を行い、位置偏差をより低減することができる。
【００１９】
第６の発明では、位置フィードフォワード制御部、及び速度フィードフォワード制御部に、指令位置、指令速度、指令加速度、を入力する。これにより、位置偏差の低減に対して、適切な入力と適切な学習を行い、位置偏差をより低減することができる。
【図面の簡単な説明】
【００２０】
【図１】第１の実施の形態のモータ制御装置を適用したロボットの外観の例を説明する図である。
【図２】第１の実施の形態のモータ制御装置の構成の例を説明する図である。
【図３】図２における位置フィードフォワード制御部のニューラルネットワークの構成を説明する概念図である。
【図４】図２における速度フィードフォワード制御部のニューラルネットワークの構成を説明する概念図である。
【図５】第２の実施の形態のモータ制御装置を適用した工作機械の外観の例を説明する図である。
【図６】第２の実施の形態のモータ制御装置の構成の例を説明する図である。
【図７】図６における位置フィードフォワード制御部のニューラルネットワークの構成を説明する概念図である。
【図８】図６における速度フィードフォワード制御部のニューラルネットワークの構成を説明する概念図である。
【図９】第３の実施の形態の位置フィードフォワード制御部の重み学習機能付きネットワークの構成を説明する概念図である。
【図１０】第３の実施の形態の速度フィードフォワード制御部の重み学習機能付きネットワークの構成を説明する概念図である。
【図１１】第４の実施の形態の位置フィードフォワード制御部の重み学習機能付きネットワークの構成を説明する概念図である。
【図１２】第４の実施の形態の速度フィードフォワード制御部の重み学習機能付きネットワークの構成を説明する概念図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を、図面を用いて順に説明する。なおＸ軸、Ｙ軸、Ｚ軸が記載されている図では、Ｘ軸とＹ軸とＺ軸は互いに直交している。
【００２２】
●●［第１の実施の形態（図１〜図４）］
第１の実施の形態のモータ制御装置９２Ｕについて、図１に示すロボットを制御する制御装置を例として説明する。図１に示すロボットは、ベース９１、第１旋回部９２、第１揺動部９３、第２旋回部９４、第２揺動部９５等を有している。
【００２３】
ベース９１には、エンコーダ９１Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９１Ｍが設けられている。電動モータ９１Ｍは、モータ制御装置９１Ｕからの駆動電流に基づいて、ベース９１に対して第１旋回部９２を旋回させる。またモータ制御装置９１Ｕは、エンコーダ９１Ｅからの検出信号に基づいて、第１旋回部９２の旋回角度θ１を検出する。
【００２４】
第１旋回部９２には、エンコーダ９２Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９２Ｍが設けられている。電動モータ９２Ｍは、モータ制御装置９２Ｕからの駆動電流に基づいて、第１旋回部９２に対して第１揺動部９３を揺動させる。またモータ制御装置９２Ｕは、エンコーダ９２Ｅからの検出信号に基づいて、第１揺動部９３の揺動角度θ２を検出する。
【００２５】
第１揺動部９３には、エンコーダ９３Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９３Ｍが設けられている。電動モータ９３Ｍは、モータ制御装置９３Ｕからの駆動電流に基づいて、第１揺動部９３に対して第２旋回部９４を旋回させる。またモータ制御装置９３Ｕは、エンコーダ９３Ｅからの検出信号に基づいて、第２旋回部９４の旋回角度θ３を検出する。
【００２６】
第２旋回部９４には、エンコーダ９４Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９４Ｍが設けられている。電動モータ９４Ｍは、モータ制御装置９４Ｕからの駆動電流に基づいて、第２旋回部９４に対して第２揺動部９５を揺動させる。またモータ制御装置９４Ｕは、エンコーダ９４Ｅからの検出信号に基づいて、第２揺動部９５の揺動角度θ４を検出する。
【００２７】
そして、ロボット制御装置６０より、モータ制御装置９１Ｕへθ１回りの指令位置が送信され、モータ制御装置９２Ｕへθ２回りの指令位置が送信され、モータ制御装置９３Ｕへθ３回りの指令位置が送信され、モータ制御装置９４Ｕへθ４回りの指令位置が送信されるようになっている。
【００２８】
以下、電動モータ９２Ｍを例として、電動モータ９２Ｍを制御するモータ制御装置９２Ｕについて、図２〜図４を用いて説明する。なお、電動モータ９１Ｍ、９３Ｍ、９４Ｍのそれぞれを制御するモータ制御装置９１Ｕ、９３Ｕ、９４Ｕも同様であり、これらについては説明を省略する。
【００２９】
●［電動モータ９２Ｍを制御するモータ制御装置９２Ｕの構成（図２）］
図２に示すように、電動モータ９２Ｍを制御するモータ制御装置９２Ｕは、指令位置１０inと実位置２７outが入力されて指令速度１５outを出力する第１制御部４１と、指令速度１５outと指令位置１０inと実位置２７outが入力されて指令電流２５outを出力する第２制御部４２と、指令電流２５outが入力されて電動モータ９２Ｍを駆動する駆動電流３１outを出力する電流出力部４３と、を有している。なお、指令位置は、この場合、指令角度と同じであり、現在の位置（角度）は、エンコーダ９２Ｅからの検出信号に基づいて検出される。
【００３０】
●［第１制御部４１の構成（図２）］
第１制御部４１は、位置偏差演算部１０、位置フィードバック制御部１１、位置側入力速度演算部１２、位置側入力加速度演算部１３、入力正規化部１０Ｓ、１２Ｓ、１３Ｓ、位置フィードフォワード制御部１４、速度加算演算部１５等を有している。
【００３１】
位置偏差演算部１０は、電動モータ９２Ｍに対する指令位置１０in（この場合、指令（回転）角度）と、当該電動モータ９２Ｍに関する位置（この場合、電動モータ９２Ｍの出力軸の回転角度）の実際の位置である実位置２７out（エンコーダ９２Ｅからの検出信号に基づいた実際の位置）と、が入力され、指令位置１０inと実位置２７outの偏差である位置偏差１０outを演算して出力する。なお、実位置２７outは、エンコーダ９２Ｅからの検出信号から求められる。なお、電動モータ９２Ｍと第１揺動部９３との間に、減速比ａの減速機構が存在する場合は、制御対象物である第１揺動部９３の指令位置にａ倍した値が、電動モータ９２Ｍの指令位置１０inとなる。
【００３２】
位置フィードバック制御部１１は、位置偏差１０outが入力され、入力された位置偏差１０outに応じてフィードバック制御して、第１仮指令速度１１outを出力する。位置フィードバック制御部１１は、いわゆるＰＩＤ制御である比例項（Ｐ）、積分項（Ｉ）、微分項（Ｄ）、の少なくとも１つを有し、第１仮指令速度１１outを出力する。なお、ＰＩＤ制御は既存の制御と同様であるので、詳細な説明は省略する。
【００３３】
位置側入力速度演算部１２は、指令位置１０inが（入力位置（この場合、回転角度）として）入力され、指令位置１０inの時間に応じた変化に基づいた速度（この場合、回転角速度）である入力速度１２outを出力する。また入力正規化部１０Ｓは、入力された指令位置１０inの値を、−１から１の範囲内の値に正規化して出力する。同様に入力正規化部１２Ｓは、入力された入力速度１２outの値を−１から１の範囲内の値に正規化して出力する。
【００３４】
位置側入力加速度演算部１３は、入力速度１２outが入力され、入力速度１２outの時間に応じた変化に基づいた加速度（この場合、回転角加速度）である入力加速度１３outを出力する。また入力正規化部１３Ｓは、入力された入力加速度１３outの値を、−１から１の範囲内の値に正規化して出力する。
【００３５】
位置フィードフォワード制御部１４は、指令位置１０in（入力位置）、入力速度１２out（指令物理量）、入力加速度１３out（指令物理量）、位置偏差１０out、が入力され、これらの入力に応じてフィードフォワード制御して、第２仮指令速度１４outを出力する。位置フィードフォワード制御部１４は、ニューラルネットワークで構成されており、詳細については後述する。
【００３６】
速度加算演算部１５は、第１仮指令速度１１outと第２仮指令速度１４outが入力され、第１仮指令速度１１outと第２仮指令速度１４outを加算した指令速度１５out（この場合、指令回転角速度）を出力する。
【００３７】
●［第２制御部４２の構成（図２）］
第２制御部４２は、速度偏差演算部２０、速度フィードバック制御部２１、速度側入力速度演算部２２、速度側入力加速度演算部２３、入力正規化部２０Ｓ、２２Ｓ、２３Ｓ、速度フィードフォワード制御部２４、電流加算演算部２５、実速度演算部２８等を有している。
【００３８】
速度偏差演算部２０は、指令速度１５outと、電動モータ９２Ｍの出力軸の実際の速度（この場合、回転角速度）である実速度２８out（エンコーダ９２Ｅからの検出信号に基づいた実際の速度）と、が入力され、指令速度１５outと実速度２８outの偏差である速度偏差２０outを演算して出力する。なお、実速度２８outは、実速度演算部２８によって、エンコーダ９２Ｅからの検出信号に応じた実位置２７out（この場合、実回転角）の時間に応じた変化から求められる。実速度演算部２８は、実位置２７outが入力され、実速度２８outを出力する。
【００３９】
速度フィードバック制御部２１は、速度偏差２０outが入力され、入力された速度偏差２０outに応じてフィードバック制御して、第１仮指令電流２１outを出力する。速度フィードバック制御部２１は、いわゆるＰＩＤ制御である比例項（Ｐ）、積分項（Ｉ）、微分項（Ｄ）、の少なくとも１つを有し、第１仮指令電流２１outを出力する。なお、ＰＩＤ制御は既存の制御と同様であるので、詳細な説明は省略する。
【００４０】
速度側入力速度演算部２２は、指令位置１０inが（入力位置（この場合、回転角度）として）入力され、指令位置１０inの時間に応じた変化に基づいた速度（この場合、回転角速度）である入力速度２２outを出力する。また入力正規化部２０Ｓは、入力された指令位置１０inの値を、−１から１の範囲内の値に正規化して出力する。同様に入力正規化部２２Ｓは、入力された入力速度２２outの値を−１から１の範囲内の値に正規化して出力する。
【００４１】
速度側入力加速度演算部２３は、入力速度２２outが入力され、入力速度２２outの時間に応じた変化に基づいた加速度（この場合、回転角加速度）である入力加速度２３outを出力する。また入力正規化部２３Ｓは、入力された入力加速度２３outの値を、−１から１の範囲内の値に正規化して出力する。
【００４２】
速度フィードフォワード制御部２４は、指令位置１０in（入力位置）、入力速度２２out（指令物理量）、入力加速度２３out（指令物理量）、速度偏差２０out、が入力され、これらの入力に応じてフィードフォワード制御して、第２仮指令電流２４outを出力する。速度フィードフォワード制御部２４は、ニューラルネットワークで構成されており、詳細については後述する。
【００４３】
電流加算演算部２５は、第１仮指令電流２１outと第２仮指令電流２４outが入力され、第１仮指令電流２１outと第２仮指令電流２４outを加算した指令電流２５outを出力する。
【００４４】
●［電流出力部４３の構成（図２）］
電流出力部４３は、電流偏差演算部３０、電流フィードバック制御部３１等を有している。
【００４５】
電流偏差演算部３０は、指令電流２５outと、実際に出力している電流である駆動電流３１out（実電流）と、が入力され、指令電流２５outと駆動電流３１out（実電流）の偏差である電流偏差３０outを演算して出力する。
【００４６】
電流フィードバック制御部３１は、電流偏差３０outが入力され、入力された電流偏差３０outに応じてフィードバック制御して、電動モータ９２Ｍを駆動する駆動電流３１outを出力する。電流フィードバック制御部３１は、いわゆるＰＩＤ制御である比例項（Ｐ）、積分項（Ｉ）、微分項（Ｄ）、の少なくとも１つを有し、駆動電流３１outを出力する。なお、ＰＩＤ制御は既存の制御と同様であるので、詳細な説明は省略する。
【００４７】
●［位置フィードフォワード制御部１４のニューラルネットワークの構成（図３）］
次に図３を用いて、位置フィードフォワード制御部１４内のニューラルネットワークについて説明する。位置フィードフォワード制御部１４は、入力層１４Ａ、中間層１４Ｂ、出力層１４Ｃ、第１位置側重み学習部１４Ｄ、第２位置側重み学習部１４Ｆ、を有している。
【００４８】
ニューラルネットワークにおける入力層１４Ａは、複数の位置側入力部Ｊ［１］〜Ｊ［３］を有している。位置側入力部Ｊ［１］には、入力正規化部１０Ｓによって、指令位置１０inが−１から１の範囲内の値に正規化された値、が入力される。位置側入力部Ｊ［２］には、入力正規化部１２Ｓによって、入力速度１２outが−１から１の範囲内の値に正規化された値、が入力される。位置側入力部Ｊ［３］には、入力正規化部１３Ｓによって、入力加速度１３outが−１から１の範囲内の値に正規化された値、が入力される。以下では、位置側入力部Ｊ［１］に入力された指令位置である「入力位置」を「位置θｐ」と記載する。また位置側入力部Ｊ［２］に入力された「入力速度」を「速度Ｖｐ」と記載する。また位置側入力部Ｊ［３］に入力された「入力加速度」を「加速度αｐ」と記載する。なお、上記の「位置θｐ」（指令位置）、「速度Ｖｐ」（指令速度）、「加速度αｐ」（指令加速度）は、指令物理量に相当している。位置側入力部Ｊ［１］は、入力された位置θｐを、位置側演算部Ｍ［１］〜Ｍ［３］のそれぞれに向けた位置側第１出力１４Ａoutとして出力する。また位置側入力部Ｊ［２］は、入力された速度Ｖｐを、位置側演算部Ｍ［１］〜Ｍ［３］のそれぞれに向けた位置側第１出力１４Ａoutとして出力する。また位置側入力部Ｊ［３］は、入力された加速度αｐを、位置側演算部Ｍ［１］〜Ｍ［３］のそれぞれに向けた位置側第１出力１４Ａoutとして出力する。
【００４９】
第１位置側重み学習部１４Ｄは、位置側入力部Ｊ［１］〜Ｊ［３］のそれぞれから出力された位置θｐ、速度Ｖｐ、加速度αｐ、のそれぞれに対応する位置側位置重みＷ１１〜Ｗ１３、位置側速度重みＷ２１〜Ｗ２３、位置側加速度重みＷ３１〜Ｗ３３を有している。なお、位置側位置重みＷ１１〜Ｗ１３、位置側速度重みＷ２１〜Ｗ２３、位置側加速度重みＷ３１〜Ｗ３３は、位置側第１重みに相当している。そして第１位置側重み学習部１４Ｄは、位置θｐに位置側位置重みＷ１１〜Ｗ１３を乗算した第１位置側乗算値（θｐ＊Ｗ１１、θｐ＊Ｗ１２、θｐ＊Ｗ１３）を演算し、速度Ｖｐに位置側速度重みＷ２１〜Ｗ２３を乗算した第１位置側乗算値（Ｖｐ＊Ｗ２１、Ｖｐ＊Ｗ２２、Ｖｐ＊Ｗ２３）を演算し、加速度αｐに位置側加速度重みＷ３１〜Ｗ３３を乗算した第１位置側乗算値（αｐ＊Ｗ３１、αｐ＊Ｗ３２、αｐ＊Ｗ３３）を演算する機能を有している。
【００５０】
また、第１位置側重み学習部１４Ｄは、位置偏差１０outに応じて、位置側位置重みＷ１１〜Ｗ１３、位置側速度重みＷ２１〜Ｗ２３、位置側加速度重みＷ３１〜Ｗ３３の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第１位置側重み学習部１４Ｄは、横軸が位置側位置重み、縦軸が位置偏差の２乗となる評価関数を用いて、位置偏差の２乗が小さくなるように、位置側位置重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第１位置側重み学習部１４Ｄは、位置側位置重みＷ１１〜Ｗ１３、位置側速度重みＷ２１〜Ｗ２３、位置側加速度重みＷ３１〜Ｗ３３を記憶する記憶機能と、位置偏差に応じて各重みを変更（学習）する変更機能と、入力（位置θｐ、速度Ｖｐ、加速度αｐ）に重みを乗算する乗算機能と、を有している。
【００５１】
ニューラルネットワークにおける中間層１４Ｂは、複数の位置側演算部Ｍ［１］〜Ｍ［３］を有している。位置側演算部Ｍ［１］は、図３に示すように、第１位置側重み学習部１４Ｄが演算した第１位置側乗算値（＝θｐ＊Ｗ１１）と第１位置側乗算値（＝Ｖｐ＊Ｗ２１）と第１位置側乗算値（＝αｐ＊Ｗ３１）と、を加算する。位置側演算部Ｍ［２］は、上記と同様に、第１位置側重み学習部１４Ｄが演算した第１位置側乗算値（＝θｐ＊Ｗ１２）と第１位置側乗算値（＝Ｖｐ＊Ｗ２２）と第１位置側乗算値（＝αｐ＊Ｗ３２）と、を加算する。また位置側演算部Ｍ［３］も、上記と同様に、第１位置側重み学習部１４Ｄが演算した第１位置側乗算値（＝θｐ＊Ｗ１３）と第１位置側乗算値（＝Ｖｐ＊Ｗ２３）と第１位置側乗算値（＝αｐ＊Ｗ３３）と、を加算する。また位置側演算部Ｍ［１］〜Ｍ［３］は、上記の加算した結果である入力のそれぞれをｙ［１］〜ｙ［３］とした場合、例えばシグモイド関数を用いて、０〜１の値に変換して位置側第２出力として出力する。
【００５２】
第２位置側重み学習部１４Ｆは、位置側演算部Ｍ［１］〜Ｍ［３］からの位置側第２出力１４Ｂoutのそれぞれに対応する位置側出力重みＸ１〜Ｘ３を有している。なお、位置側出力重みＸ１〜Ｘ３は、位置側第２重みに相当している。そして第２位置側重み学習部１４Ｆは、位置側演算部Ｍ［１］からの出力値（位置側第２出力）に位置側出力重みＸ１を乗算した第２位置側乗算値を演算し、位置側演算部Ｍ［２］からの出力値（位置側第２出力）に位置側出力重みＸ２を乗算した第２位置側乗算値を演算し、位置側演算部Ｍ［３］からの出力値（位置側第２出力）に位置側出力重みＸ３を乗算した第２位置側乗算値を演算する機能を有している。
【００５３】
また、第２位置側重み学習部１４Ｆは、位置偏差１０outに応じて、位置側出力重みＸ１〜Ｘ３の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第２位置側重み学習部１４Ｆは、横軸が位置側出力重み、縦軸が位置偏差の２乗となる評価関数を用いて、位置偏差の２乗が小さくなるように、位置側出力重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第２位置側重み学習部１４Ｆは、位置側出力重みＸ１〜Ｘ３を記憶する記憶機能と、位置偏差に応じて各重みを変更（学習）する変更機能と、入力（Ｍ［１］〜Ｍ［３］のそれぞれからの出力値）に重みを乗算する乗算機能と、を有している。
【００５４】
ニューラルネットワークにおける出力層１４Ｃは、位置側出力部Ｐ［１］を有している。位置側出力部Ｐ［１］は、位置側演算部Ｍ［１］〜Ｍ［３］による加算結果に基づいた以下の（１）〜（３）が入力され、当該（１）〜（３）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令速度１４outとして出力する。
（１）位置側演算部Ｍ［１］の加算結果（θｐ＊Ｗ１１＋Ｖｐ＊Ｗ２１＋αｐ＊Ｗ３１）がシグモイド関数にて０〜１に変換された変換値［１］に位置側出力重みＸ１が乗算された第２位置側乗算値（変換値［１］＊Ｘ１）。
（２）位置側演算部Ｍ［２］の加算結果（θｐ＊Ｗ１２＋Ｖｐ＊Ｗ２２＋αｐ＊Ｗ３２）がシグモイド関数にて０〜１に変換された変換値［２］に位置側出力重みＸ２が乗算された第２位置側乗算値（変換値［２］＊Ｘ２）。
（３）位置側演算部Ｍ［３］の加算結果（θｐ＊Ｗ１３＋Ｖｐ＊Ｗ２３＋αｐ＊Ｗ３３）がシグモイド関数にて０〜１に変換された変換値［３］に位置側出力重みＸ３が乗算された第２位置側乗算値（変換値［３］＊Ｘ３）。
【００５５】
●［速度フィードフォワード制御部２４のニューラルネットワークの構成（図４）］
次に図４を用いて、速度フィードフォワード制御部２４内のニューラルネットワークについて説明する。速度フィードフォワード制御部２４は、入力層２４Ａ、中間層２４Ｂ、出力層２４Ｃ、第１速度側重み学習部２４Ｄ、第２速度側重み学習部２４Ｆ、を有している。
【００５６】
ニューラルネットワークにおける入力層２４Ａは、複数の速度側入力部Ｋ［１］〜Ｋ［３］を有している。速度側入力部Ｋ［１］〜Ｋ［３］には、入力層１４Ａの位置側入力部Ｊ［１］〜Ｊ［３］と同様のものが入力され、速度側入力部Ｋ［１］には、入力正規化部１０Ｓによって、指令位置１０inが−１から１の範囲内の値に正規化された値、が入力される。速度側入力部Ｋ［２］には、入力正規化部２２Ｓによって、入力速度２２outが−１から１の範囲内の値に正規化された値、が入力される。速度側入力部Ｋ［３］には、入力正規化部１３Ｓによって、入力加速度２３outが−１から１の範囲内の値に正規化された値、が入力される。以下では、速度側入力部Ｋ［１］に入力された指令位置である「入力位置」を「位置θｖ」と記載する。また速度側入力部Ｋ［２］に入力された「入力速度」を「速度Ｖｖ」と記載する。また速度側入力部Ｋ［３］に入力された「入力加速度」を「加速度αｖ」と記載する。速度フィードフォワード制御部２４の入力層２４Ａに、電動モータへの指令速度１５out（図２参照）からでなく、指令位置１０in（図２参照）から入力を行っている点が、本願における特徴の１つである。なお、上記の「位置θｖ」（指令位置）、「速度Ｖｖ」（指令速度）、「加速度αｖ」（指令加速度）は、指令物理量に相当している。速度側入力部Ｋ［１］は、入力された位置θｖを、速度側演算部Ｎ［１］〜Ｎ［３］のそれぞれに向けた速度側第１出力２４Ａoutとして出力する。また速度側入力部Ｋ［２］は、入力された速度Ｖｖを、速度側演算部Ｎ［１］〜Ｎ［３］のそれぞれに向けた速度側第１出力２４Ａoutとして出力する。また速度側入力部Ｋ［３］は、入力された加速度αｖを、速度側演算部Ｎ［１］〜Ｎ［３］のそれぞれに向けた速度側第１出力２４Ａoutとして出力する。
【００５７】
第１速度側重み学習部２４Ｄは、第１位置側重み学習部１４Ｄと同様に、速度側入力部Ｋ［１］〜Ｋ［３］のそれぞれから出力された位置θｖ、速度Ｖｖ、加速度αｖ、のそれぞれに対応する速度側位置重みＵ１１〜Ｕ１３、速度側速度重みＵ２１〜Ｕ２３、速度側加速度重みＵ３１〜Ｕ３３を有している。なお、速度側位置重みＵ１１〜Ｕ１３、速度側速度重みＵ２１〜Ｕ２３、速度側加速度重みＵ３１〜Ｕ３３は、速度側第１重みに相当している。そして第１速度側重み学習部２４Ｄは、位置θｖに速度側位置重みＵ１１〜Ｕ１３を乗算した第１速度側乗算値（θｖ＊Ｕ１１、θｖ＊Ｕ１２、θｖ＊Ｕ１３）を演算し、速度Ｖｖに速度側速度重みＵ２１〜Ｕ２３を乗算した第１速度側乗算値（Ｖｖ＊Ｕ２１、Ｖｖ＊Ｕ２２、Ｖｖ＊Ｕ２３）を演算し、加速度αｖに速度側加速度重みＵ３１〜Ｕ３３を乗算した第１速度側乗算値（αｖ＊Ｕ３１、αｖ＊Ｕ３２、αｖ＊Ｕ３３）を演算する機能を有している。
【００５８】
また、第１速度側重み学習部２４Ｄは、速度偏差２０outに応じて、速度側位置重みＵ１１〜Ｕ１３、速度側速度重みＵ２１〜Ｕ２３、速度側加速度重みＵ３１〜Ｕ３３の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第１速度側重み学習部２４Ｄは、横軸が速度側位置重み、縦軸が速度偏差の２乗となる評価関数を用いて、速度偏差の２乗が小さくなるように、速度側位置重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第１速度側重み学習部２４Ｄは、速度側位置重みＵ１１〜Ｕ１３、速度側速度重みＵ２１〜Ｕ２３、速度側加速度重みＵ３１〜Ｕ３３を記憶する記憶機能と、速度偏差に応じて各重みを変更（学習）する変更機能と、入力（位置θｖ、速度Ｖｖ、加速度αｖ）に重みを乗算する乗算機能と、を有している。
【００５９】
ニューラルネットワークにおける中間層２４Ｂは、中間層１４Ｂと同様に、複数の速度側演算部Ｎ［１］〜Ｎ［３］を有している。速度側演算部Ｎ［１］は、図４に示すように、第１速度側重み学習部２４Ｄが演算した第１速度側乗算値（＝θｖ＊Ｕ１１）と第１速度側乗算値（＝Ｖｖ＊Ｕ２１）と第１速度側乗算値（＝αｖ＊Ｕ３１）と、を加算する。速度側演算部Ｎ［２］は、上記と同様に、第１速度側重み学習部２４Ｄが演算した第１速度側乗算値（＝θｖ＊Ｕ１２）と第１速度側乗算値（＝Ｖｖ＊Ｕ２２）と第１速度側乗算値（＝αｖ＊Ｕ３２）と、を加算する。また速度側演算部Ｎ［３］も、上記と同様に、第１速度側重み学習部２４Ｄが演算した第１速度側乗算値（＝θｖ＊Ｕ１３）と第１速度側乗算値（＝Ｖｖ＊Ｕ２３）と第１速度側乗算値（＝αｖ＊Ｕ３３）と、を加算する。また速度側演算部Ｎ［１］〜Ｎ［３］は、上記の加算した結果である入力のそれぞれをｙ［１］〜ｙ［３］とした場合、例えばシグモイド関数を用いて、０〜１の値に変換して速度側第２出力として出力する。
【００６０】
第２速度側重み学習部２４Ｆは、速度側演算部Ｎ［１］〜Ｎ［３］からの速度側第２出力２４Ｂoutのそれぞれに対応する速度側出力重みＹ１〜Ｙ３を有している。なお、速度側出力重みＹ１〜Ｙ３は、速度側第２重みに相当している。そして第２速度側重み学習部２４Ｆは、速度側演算部Ｎ［１］からの出力値（速度側第２出力）に速度側出力重みＹ１を乗算した第２速度側乗算値を演算し、速度側演算部Ｎ［２］からの出力値（速度側第２出力）に速度側出力重みＹ２を乗算した第２速度側乗算値を演算し、速度側演算部Ｎ［３］からの出力値（速度側第２出力）に速度側出力重みＹ３を乗算した第２速度側乗算値を演算する機能を有している。
【００６１】
また、第２速度側重み学習部２４Ｆは、速度偏差２０outに応じて、速度側出力重みＹ１〜Ｙ３の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第２速度側重み学習部２４Ｆは、横軸が速度側出力重み、縦軸が速度偏差の２乗となる評価関数を用いて、速度偏差の２乗が小さくなるように、速度側出力重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第２速度側重み学習部２４Ｆは、速度側出力重みＹ１〜Ｙ３を記憶する記憶機能と、速度偏差に応じて各重みを変更（学習）する変更機能と、入力（Ｎ［１］〜Ｎ［３］のそれぞれからの出力値）に重みを乗算する乗算機能と、を有している。
【００６２】
ニューラルネットワークにおける出力層２４Ｃは、速度側出力部Ｑ［１］を有している。速度側出力部Ｑ［１］は、出力層１４Ｃの位置側出力部Ｐ［１］と同様に、速度側演算部Ｎ［１］〜Ｎ［３］による加算結果に基づいた以下の（１）〜（３）が入力され、当該（１）〜（３）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令電流２４outとして出力する。
（１）速度側演算部Ｎ［１］の加算結果（θｖ＊Ｕ１１＋Ｖｖ＊Ｕ２１＋αｖ＊Ｕ３１）がシグモイド関数にて０〜１に変換された変換値［１］に速度側出力重みＹ１が乗算された第２速度側乗算値（変換値［１］＊Ｙ１）。
（２）速度側演算部Ｎ［２］の加算結果（θｖ＊Ｕ１２＋Ｖｖ＊Ｕ２２＋αｖ＊Ｕ３２）がシグモイド関数にて０〜１に変換された変換値［２］に速度側出力重みＹ２が乗算された第２速度側乗算値（変換値［２］＊Ｙ２）。
（３）速度側演算部Ｎ［３］の加算結果（θｖ＊Ｕ１３＋Ｖｖ＊Ｕ２３＋αｖ＊Ｕ３３）がシグモイド関数にて０〜１に変換された変換値［３］に速度側出力重みＹ３が乗算された第２速度側乗算値（変換値［３］＊Ｙ３）。
【００６３】
以上、第１の実施の形態では、速度フィードフォワード制御部２４の入力層２４Ａに、電動モータ９２Ｍへの指令速度でなく、電動モータ９２Ｍへの指令位置と、当該指令位置の変化に基づいた指令物理量（入力速度、入力加速度）と、を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部１４の入力層１４Ａに、電動モータ９２Ｍへの指令位置と、当該指令位置の変化に基づいた指令物理量（入力速度、入力加速度）と、を入力することで、位置偏差を低減している。さらに、位置フィードフォワード制御部１４の第１位置側重み学習部１４Ｄ及び第２位置側重み学習部１４Ｆでは「位置偏差」に応じて学習し、速度フィードフォワード制御部２４の第１速度側重み学習部２４Ｄ及び第２速度側重み学習部２４Ｆでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。
【００６４】
●●［第２の実施の形態（図５〜図８）］
次に、第２の実施の形態のモータ制御装置８２Ｕについて、図５に示す工作機械を制御する制御装置を例として説明する。図５に示す工作機械は、ベッド７１、主軸テーブル７２、砥石台８２等を有している。なお、図５中においてＸ軸とＹ軸とＺ軸は互いに直交しており、ワークＷの回転軸線ＪＸはＸ軸と平行であり、主軸テーブル７２は、ベッド７１に対してＸ軸方向に往復移動可能であり、砥石台８０は、ベッド７１に対してワークＷの回転軸線ＪＸに直交するＺ軸方向に往復移動可能である。
【００６５】
ベッド７１には、エンコーダ７２Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ７２Ｍが設けられている。電動モータ７２Ｍは、モータ制御装置７２Ｕからの駆動電流に基づいて、ベッド７１に対して主軸テーブル７２をＸ軸方向に沿って往復移動させる。またモータ制御装置７２Ｕは、エンコーダ７２Ｅからの検出信号に基づいて、主軸テーブル７２のＸ軸方向における位置を検出する。主軸テーブル７２がＸ軸方向に移動すると、Ｘ軸方向においてワークＷに対する砥石８４の相対的な位置が変わる。
【００６６】
主軸テーブル７２には、主軸７３とチャック７３Ｃと電動モータ７３Ｍを有する主軸台７３Ｄと、センタ７４を有する心押台７４Ｄと、が設けられている。円筒状のワークＷは、チャック７３Ｃとセンタ７４とで挟持され、主軸７３によって、Ｘ軸に平行なワーク回転軸線ＪＸ回りに回転される。電動モータ７３Ｍは、モータ制御装置７３Ｕからの駆動電流に基づいて、主軸７３を、ワーク回転軸線ＪＸ回りに回転させる。センタ７４は、主軸７３の方向に付勢されている。
【００６７】
ベッド７１には、エンコーダ８２Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ８２Ｍが設けられている。電動モータ８２Ｍは、モータ制御装置８２Ｕからの駆動電流に基づいて、ベッド７１に対して砥石台８２をＺ軸方向に沿って往復移動させる。またモータ制御装置８２Ｕは、エンコーダ８２Ｅからの検出信号に基づいて、砥石台８２のＺ軸方向における位置を検出する。砥石台８２がＺ軸方向に移動すると、Ｚ軸方向においてワークＷに対する砥石８４の相対的な位置が変わる。
【００６８】
砥石台８２には、駆動プーリ８３Ａが取り付けられた電動モータ８４Ｍと、従動プーリ８３Ｃが取り付けられた砥石８４とが設けられている。そして駆動プーリ８３Ａの回転動力は、伝達ベルト８３Ｂにて従動プーリ８３Ｃに伝達され、砥石８４を回転駆動する。電動モータ８４Ｍは、モータ制御装置８４Ｕからの駆動電流に基づいて、砥石８４を回転させる。
【００６９】
そして工作機械制御装置６０Ｂより、主軸テーブル７２に対する指令位置となる電動モータ７２Ｍに関する指令位置（回転角）が、モータ制御装置７２Ｕに送信され、砥石台８２に対する指令位置となる電動モータ８２Ｍに関する指令位置（回転角）が、モータ制御装置８２Ｕへに送信されるようになっている。なお、モータ制御装置７２Ｕ、８２Ｕは、本発明のモータ制御装置であり、以下ではモータ制御装置８２Ｕについて説明するが、モータ制御装置７３Ｕ、８４Ｕは、電流増幅用のモータ制御装置であり、本発明のモータ制御装置ではないため説明を省略する。
【００７０】
以下、電動モータ８２Ｍを例として、電動モータ８２Ｍを制御するモータ制御装置８２Ｕについて、図６〜図８を用いて説明する。なお、電動モータ７２Ｍを制御するモータ制御装置８２Ｕも同様であり、これらについては説明を省略する。なお、第１の実施の形態（図１参照）で説明した電動モータ９２Ｍは、最終的に第２揺動部９５の先端の３次元空間内における位置を制御する電動モータの１つである。しかし、第２の実施の形態（図５参照）で説明する電動モータ８２Ｍは、最終的にワークＷに対する砥石８４の２次元平面（Ｘ−Ｚ平面）内における位置を制御する電動モータの１つである。第１の実施の形態（図１）では、例えば第１揺動部９３の回転角度に応じて、電動モータ９２Ｍにかかる重力による力（重力による影響）が変化する。しかし第２の実施の形態（図５）では、例えば主軸テーブル７２の位置が変化しても、電動モータ７２Ｍにかかる重力による力（重力による影響）は変化せず一定である。このため、第２の実施の形態では、第１の実施の形態の制御ブロック（図２）やニューラルネットワーク（図３、図４）を少し簡略化することができる。以下、第１の実施の形態との相違点について主に説明する。
【００７１】
●［電動モータ８２Ｍを制御するモータ制御装置８２Ｕの構成（図６）］
第１の実施の形態である図２の位置フィードフォワード制御部１４には、指令位置１０inが入力されていたのが、第２の実施の形態である図６の位置フィードフォワード制御部１４Ｚには、指令位置が入力されていない。また、図２の速度フィードフォワード制御部２４には、指令位置１０inが入力されていたのが、図６の速度フィードフォワード制御部２４Ｚには、指令位置が入力されていない。この点で、第１の実施の形態と第２の実施の形態が異なる。指令位置が入力されないので、位置フィードフォワード制御部１４Ｚと、速度フィードフォワード制御部２４Ｚの構成も少し異なり、これらについては後述する。また、電動モータの符号とエンコーダの符号も、当然異なる。その他については、図２に示す第１の実施の形態であるモータ制御装置９２Ｕの制御ブロックと同じであるので、同一符号を付与して説明を省略する。
【００７２】
●［位置フィードフォワード制御部１４Ｚのニューラルネットワークの構成（図７）］
図７に示すように、位置フィードフォワード制御部１４Ｚのニューラルネットワークは、図３の指令位置１０inが省略されているので、図３の位置側入力部Ｊ［１］、位置側演算部Ｍ［１］が省略され、図３の位置側位置重みＷ１１〜Ｗ１３、位置側速度重みＷ２１、位置側加速度重みＷ３１、位置側出力重みＸ１が省略されている。
【００７３】
位置側演算部Ｍ［２］は、第１位置側重み学習部１４Ｄが演算した第１位置側乗算値（＝Ｖｐ＊Ｗ２２）と第１位置側乗算値（＝αｐ＊Ｗ３２）とを加算する。また位置側演算部Ｍ［３］は、第１位置側重み学習部１４Ｄが演算した第１位置側乗算値（＝Ｖｐ＊Ｗ２３）と第１位置側乗算値（＝αｐ＊Ｗ３３）とを加算する。なお、第１位置側重み学習部１４Ｄ、及び第２位置側重み学習部１４Ｆの動作は、第１の実施の形態と同様であるので説明を省略する。
【００７４】
位置側出力部Ｐ［１］は、位置側演算部Ｍ［２］、Ｍ［３］による加算結果に基づいた以下の（１）、（２）が入力され、当該（１）、（２）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令速度１４outとして出力する。
（１）位置側演算部Ｍ［２］の加算結果（Ｖｐ＊Ｗ２２＋αｐ＊Ｗ３２）がシグモイド関数にて０〜１に変換された変換値［２］に位置側出力重みＸ２が乗算された第２位置側乗算値（変換値［２］＊Ｘ２）。
（２）位置側演算部Ｍ［３］の加算結果（Ｖｐ＊Ｗ２３＋αｐ＊Ｗ３３）がシグモイド関数にて０〜１に変換された変換値［３］に位置側出力重みＸ３が乗算された第２位置側乗算値（変換値［３］＊Ｘ３）。
【００７５】
●［速度フィードフォワード制御部２４Ｚのニューラルネットワークの構成（図８）］
図８に示すように、速度フィードフォワード制御部２４Ｚのニューラルネットワークは、図４の指令位置１０inが省略されているので、図４の速度側入力部Ｋ［１］、速度側演算部Ｎ［１］が省略され、速度側位置重みＵ１１〜Ｕ１３、速度側速度重みＵ２１、速度側加速度重みＵ３１、速度側出力重みＹ１が省略されている。
【００７６】
速度側演算部Ｎ［２］は、第１速度側重み学習部２４Ｄが演算した第１速度側乗算値（＝Ｖｖ＊Ｕ２２）と第１速度側乗算値（＝αｖ＊Ｕ３２）とを加算する。また速度側演算部Ｎ［３］は、第１速度側重み学習部２４Ｄが演算した第１速度側乗算値（＝Ｖｖ＊Ｕ２３）と第１速度側乗算値（＝αｖ＊Ｕ３３）とを加算する。なお、第１速度側重み学習部２４Ｄ、及び第２速度側重み学習部２４Ｆの動作は、第１の実施の形態と同様であるので説明を省略する。
【００７７】
速度側出力部Ｑ［１］は、速度側演算部Ｎ［２］、Ｎ［３］による加算結果に基づいた以下の（１）、（２）が入力され、当該（１）、（２）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令電流２４outとして出力する。
（１）速度側演算部Ｎ［２］の加算結果（Ｖｖ＊Ｕ２２＋αｖ＊Ｕ３２）がシグモイド関数にて０〜１に変換された変換値［２］に速度側出力重みＹ２が乗算された第２速度側乗算値（変換値［２］＊Ｙ２）。
（２）速度側演算部Ｎ［３］の加算結果（Ｖｖ＊Ｕ２３＋αｖ＊Ｕ３３）がシグモイド関数にて０〜１に変換された変換値［３］に速度側出力重みＹ３が乗算された第２速度側乗算値（変換値［３］＊Ｙ３）。
【００７８】
以上、第２の実施の形態では、速度フィードフォワード制御部２４Ｚの入力層２４Ａに、電動モータ８２Ｍへの指令速度でなく、電動モータ８２Ｍへの指令位置の変化に基づいた指令物理量（入力速度、入力加速度）を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部１４Ｚの入力層１４Ａに、電動モータ８２Ｍへの指令位置の変化に基づいた指令物理量（入力速度、入力加速度）を入力することで、位置偏差を低減している。さらに、位置フィードフォワード制御部１４Ｚの第１位置側重み学習部１４Ｄ及び第２位置側重み学習部１４Ｆでは「位置偏差」に応じて学習し、速度フィードフォワード制御部２４Ｚの第１速度側重み学習部２４Ｄ及び第２速度側重み学習部２４Ｆでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。
【００７９】
なお第１の実施の形態のロボットは、例えば第１揺動部９３の揺動角度θ２で、電動モータ９２Ｍにかかる重力による力が変化する。このように、位置（角度）に応じて重力の影響が変化する場合では、位置偏差をより低減するために、「入力位置（指令位置１０in）」を位置フィードフォワード制御部及び速度フィードフォワード制御部に入力する必要がある。これに対して第２の実施の形態の工作機械では、例えば砥石台８２がＸＺ平面内のどの位置に移動しても電動モータ８２Ｍにかかる重力による力は一定であり変化しない。このように、位置（角度）に応じて重力の影響が変化しない場合では、「入力位置（指令位置１０in）」を位置フィードフォワード制御部及び速度フィードフォワード制御部に入力する必要がない。
【００８０】
●●［第３の実施の形態（図９、図１０）］
次に、第３の実施の形態のモータ制御装置について説明する。第３の実施のモータ制御装置の制御ブロックの構成は、図２に示した第１の実施の形態と同じである。ただし、第１の実施の形態に対して、位置フィードフォワード制御部１４及び速度フィードフォワード制御部２４の内部の構成が、図３及び図４に示す構成から、図９及び図１０に示す構成に変更されている点が異なり（ニューラルネットワークから重み学習機能付きネットワークに変更）、他については同じである。以下、この変更点について主に説明する。
【００８１】
●［位置フィードフォワード制御部１４の重み学習機能付きネットワークの構成（図９）］
図９に示すように、第３の実施の形態の位置フィードフォワード制御部１４は、入力層１４ＡＡ、出力層１４ＣＡ、第１位置側重み学習部１４ＦＡ、を有している。図９に示す第３の実施の形態の位置フィードフォワード制御部１４は、入力層１４ＡＡと、出力層１４ＣＡと、が第１の実施の形態と同様に設けられているが、中間層１４Ｂ（図３参照）が省略されており、第１の実施の形態よりも入力層１４ＡＡが複雑となっている。
【００８２】
重み学習機能付きネットワークにおける入力層１４ＡＡは、複数の位置側入力部ＪＡ［１］〜ＪＡ［６］を有している。位置側入力部ＪＡ［１］には、図３に示す第１の実施の形態の位置側入力部Ｊ［１］と同様、入力正規化部１０Ｓによって、指令位置１０inが−１から１の範囲内の値に規制された値、が入力される。位置側入力部ＪＡ［２］には、図３に示す第１の実施の形態の位置側入力部Ｊ［２］と同様、入力正規化部１２Ｓによって、入力速度１２outが−１から１の範囲内の値に正規化された値、が入力される。位置側入力部ＪＡ［３］には、図３に示す第１の実施の形態の位置側入力部Ｊ［３］と同様、入力正規化部１３Ｓによって、入力加速度１３outが−１から１の範囲内の値に正規化された値、が入力される。以下では、位置側入力部ＪＡ［１］に入力された指令位置である「入力位置」を「位置θｐ」と記載する。また位置側入力部ＪＡ［２］に入力された「入力速度」を「速度Ｖｐ」と記載する。また位置側入力部ＪＡ［３］に入力された「入力加速度」を「加速度αｐ」と記載する。そして位置側入力部ＪＡ［１］は位置θｐを出力し、位置側入力部ＪＡ［２］は速度Ｖｐを出力し、位置側入力部ＪＡ［３］は加速度αｐを出力する。なお、上記の「位置θｐ」（指令位置）、「速度Ｖｐ」（指令速度）、「加速度αｐ」（指令加速度）は、指令物理量に相当している。位置側入力部ＪＡ［１］は、入力された位置θｐを、位置側出力部ＰＡ［１］に向けた位置側第１出力１４ＡＡoutとして出力する。また位置側入力部ＪＡ［２］は、入力された速度Ｖｐを、位置側出力部ＰＡ［１］に向けた位置側第１出力１４ＡＡoutとして出力する。また位置側入力部ＪＡ［３］は、入力された加速度αｐを、位置側出力部ＰＡ［１］に向けた位置側第１出力１４ＡＡoutとして出力する。
【００８３】
位置側入力部ＪＡ［４］には、位置θｐと速度Ｖｐと加速度αｐが入力された入力変換部１４Ａ１からの出力、が入力される。入力変換部１４Ａ１は、位置θｐに乗算する位置側位置用係数ａ１１（第１位置係数に相当する定数）と、速度Ｖｐに乗算する位置側速度用係数ｂ１１（第１速度係数に相当する定数）と、加速度αｐに乗算する位置側加速度用係数ｃ１１（第１加速度係数に相当する定数）と、が設定されている。入力変換部１４Ａ１は、位置θｐに位置側位置用係数ａ１１を乗算したａ１１・θｐ（位置側位置関連量）と、速度Ｖｐに位置側速度用係数ｂ１１を乗算したｂ１１・Ｖｐ（位置側速度関連量）と、加速度αｐに位置側加速度用係数ｃ１１を乗算したｃ１１・αｐ（位置側加速度関連量）と、を加算した、ａ１１・θｐ＋ｂ１１・Ｖｐ＋ｃ１１・αｐ（位置側入力変換量）を出力する。そして位置側入力部ＪＡ［４］は、指令物理量として入力されたａ１１・θｐ＋ｂ１１・Ｖｐ＋ｃ１１・αｐ（位置側入力変換量）を、位置側第１出力として出力する。
【００８４】
同様に、位置側入力部ＪＡ［５］には、入力変換部１４Ａ２からの出力が入力される。入力変換部１４Ａ２は、位置側位置用係数ａ１２（第２位置係数に相当する定数）と、位置側速度用係数ｂ１２（第２速度係数に相当する定数）と、位置側加速度用係数ｃ１２（第２加速度係数に相当する定数）と、が設定されており、ａ１２・θｐ＋ｂ１２・Ｖｐ＋ｃ１２・αｐを出力する。そして位置側入力部ＪＡ［５］は、指令物理量として入力されたａ１２・θｐ＋ｂ１２・Ｖｐ＋ｃ１２・αｐを、位置側第１出力として出力する。同様に、位置側入力部ＪＡ［６］には、入力変換部１４Ａ３からの出力が入力される。入力変換部１４Ａ３は、位置側位置用係数ａ１３（第３位置係数に相当する定数）と、位置側速度用係数ｂ１３（第３速度係数に相当する定数）と、位置側加速度用係数ｃ１３（第３加速度係数に相当する定数）と、が設定されており、ａ１３・θｐ＋ｂ１３・Ｖｐ＋ｃ１３・αｐを出力する。そして位置側入力部ＪＡ［６］は、指令物理量として入力されたａ１３・θｐ＋ｂ１３・Ｖｐ＋ｃ１３・αｐを、位置側第１出力として出力する。なお、入力変換部（１４Ａ１等）を前段に有するＪＡ［４］〜ＪＡ［６］の数は、３個に限定されるものではなく、これよりも多い方が、第１の実施の形態と同等の機能に近づく。
【００８５】
第１位置側重み学習部１４ＦＡは、位置側入力部ＪＡ［１］〜ＪＡ［６］のそれぞれに対応する位置側出力重みＸＡ１〜ＸＡ６を有している。なお、位置側出力重みＸＡ１〜ＸＡ６は、位置側第１重みに相当している。そして第１位置側重み学習部１４ＦＡは、ＪＡ［１］から出力された位置θｐに位置側出力重みＸＡ１を乗算した第１位置側乗算値と、ＪＡ［２］から出力された速度Ｖｐに位置側出力重みＸＡ２を乗算した第１位置側乗算値と、ＪＡ［３］から出力された加速度αｐに位置側出力重みＸＡ３を乗算した第１位置側乗算値と、を演算する。さらに第１位置側重み学習部１４ＦＡは、ＪＡ［４］から出力された位置側第１出力（ａ１１・θｐ＋ｂ１１・Ｖｐ＋ｃ１１・αｐ）に位置側出力重みＸＡ４を乗算した第１位置側乗算値と、ＪＡ［５］から出力された位置側第１出力（ａ１２・θｐ＋ｂ１２・Ｖｐ＋ｃ１２・αｐ）に位置側出力重みＸＡ５を乗算した第１位置側乗算値と、ＪＡ［６］から出力された位置側第１出力（ａ１３・θｐ＋ｂ１３・Ｖｐ＋ｃ１３・αｐ）に位置側出力重みＸＡ６を乗算した第１位置側乗算値と、を演算する。そして第１位置側重み学習部１４ＦＡは、演算した各第１位置側乗算値を出力層１４ＣＡに出力する。
【００８６】
また、第１位置側重み学習部１４ＦＡは、位置偏差１０outに応じて、位置側出力重みＸＡ１〜ＸＡ６の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第１位置側重み学習部１４ＦＡは、横軸が位置側出力重み、縦軸が位置偏差の２乗となる評価関数を用いて、位置偏差の２乗が小さくなるように、位置側出力重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第１位置側重み学習部１４ＦＡは、位置側出力重みＸＡ１〜ＸＡ６を記憶する記憶機能と、位置偏差に応じて各重みを変更（学習）する変更機能と、入力（ＪＡ［１］〜ＪＡ［６］のそれぞれからの出力値）に重みを乗算する乗算機能と、を有している。
【００８７】
重み学習機能付きネットワークにおける出力層１４ＣＡは、位置側出力部ＰＡ［１］を有している。位置側出力部ＰＡ［１］は、以下の（１）〜（６）が入力され、当該（１）〜（６）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令速度１４outとして出力する。
（１）位置側入力部ＪＡ［１］の出力（θｐ）に位置側出力重みＸＡ１が乗算された第１位置側乗算値（θｐ＊ＸＡ１）。
（２）位置側入力部ＪＡ［２］の出力（Ｖｐ）に位置側出力重みＸＡ２が乗算された第１位置側乗算値（Ｖｐ＊ＸＡ２）。
（３）位置側入力部ＪＡ［３］の出力（αｐ）に位置側出力重みＸＡ３が乗算された第１位置側乗算値（αｐ＊ＸＡ３）。
（４）位置側入力部ＪＡ［４］の出力（ａ１１・θｐ＋ｂ１１・Ｖｐ＋ｃ１１・αｐ）に位置側出力重みＸＡ４が乗算された第１位置側乗算値［（ａ１１・θｐ＋ｂ１１・Ｖｐ＋ｃ１１・αｐ）＊ＸＡ４］。
（５）位置側入力部ＪＡ［５］の出力（ａ１２・θｐ＋ｂ１２・Ｖｐ＋ｃ１２・αｐ）に位置側出力重みＸＡ５が乗算された第１位置側乗算値［（ａ１２・θｐ＋ｂ１２・Ｖｐ＋ｃ１２・αｐ）＊ＸＡ５］。
（６）位置側入力部ＪＡ［６］の出力（ａ１３・θｐ＋ｂ１３・Ｖｐ＋ｃ１３・αｐ）に位置側出力重みＸＡ６が乗算された第１位置側乗算値［（ａ１３・θｐ＋ｂ１３・Ｖｐ＋ｃ１３・αｐ）＊ＸＡ６］。
【００８８】
●［速度フィードフォワード制御部２４の重み学習機能付きネットワークの構成（図１０）］
図１０に示すように、第３の実施の形態の速度フィードフォワード制御部２４は、入力層２４ＡＡ、出力層２４ＣＡ、第１速度側重み学習部２４ＦＡ、を有している。図１０に示す第３の実施の形態の速度フィードフォワード制御部２４は、入力層２４ＡＡと、出力層２４ＣＡと、が第１の実施の形態と同様に設けられているが、中間層２４Ｂ（図４参照）が省略されており、第１の実施の形態よりも入力層２４ＡＡが複雑となっている。
【００８９】
重み学習機能付きネットワークにおける入力層２４ＡＡは、複数の速度側入力部ＫＡ［１］〜ＫＡ［６］を有している。速度側入力部ＫＡ［１］〜ＫＡ［６］には、入力層１４ＡＡの位置側入力部ＪＡ［１］〜ＪＡ［６］と同様のものが入力される。速度側入力部ＫＡ［１］には、図４に示す第１の実施の形態の速度側入力部Ｋ［１］と同様、入力正規化部２０Ｓによって、指令位置１０inが−１から１の範囲内の値に規制された値、が入力される。速度側入力部ＫＡ［２］には、図４に示す第１の実施の形態の速度側入力部Ｋ［２］と同様、入力正規化部２２Ｓによって、入力速度２２outが−１から１の範囲内の値に正規化された値、が入力される。速度側入力部ＫＡ［３］には、図４に示す第１の実施の形態の速度側入力部Ｋ［３］と同様、入力正規化部２３Ｓによって、入力加速度２３outが−１から１の範囲内の値に正規化された値、が入力される。以下では、速度側入力部ＫＡ［１］に入力された指令位置である「入力位置」を「位置θｖ」と記載する。また速度側入力部ＫＡ［２］に入力された「入力速度」を「速度Ｖｖ」と記載する。また速度側入力部ＫＡ［３］に入力された「入力加速度」を「加速度αｖ」と記載する。そして速度側入力部ＫＡ［１］は位置θｖを出力し、速度側入力部ＫＡ［２］は速度Ｖｖを出力し、速度側入力部ＫＡ［３］は加速度αｖを出力する。なお、上記の「位置θｖ」（指令位置）、「速度Ｖｖ」（指令速度）、「加速度αｖ」（指令加速度）は、指令物理量に相当している。速度側入力部ＫＡ［１］は、入力された位置θｖを、速度側出力部ＱＡ［１］に向けた速度側第１出力２４ＡＡoutとして出力する。また速度側入力部ＫＡ［２］は、入力された速度Ｖｖを、速度側出力部ＱＡ［１］に向けた速度側第１出力２４ＡＡoutとして出力する。また速度側入力部ＫＡ［３］は、入力された加速度αｖを、速度側出力部ＱＡ［１］に向けた速度側第１出力２４ＡＡoutとして出力する。
【００９０】
速度側入力部ＫＡ［４］には、位置θｖと速度Ｖｖと加速度αｖが入力された入力変換部２４Ａ１からの出力、が入力される。入力変換部２４Ａ１は、位置θｖに乗算する速度側位置用係数ａ２１（第１位置係数に相当する定数）と、速度Ｖｖに乗算する速度側速度用係数ｂ２１（第１速度係数に相当する定数）と、加速度αｐに乗算する速度側加速度用係数ｃ２１（第１加速度係数に相当する定数）と、が設定されている。入力変換部２４Ａ１は、位置θｖに速度側位置用係数ａ２１を乗算したａ２１・θｖ（速度側位置関連量）と、速度Ｖｖに速度側速度用係数ｂ２１を乗算したｂ２１・Ｖｖ（速度側速度関連量）と、加速度αｖに速度側加速度用係数ｃ２１を乗算したｃ２１・αｐ（速度側加速度関連量）と、を加算した、ａ２１・θｖ＋ｂ２１・Ｖｖ＋ｃ２１・αｖ（速度側入力変換量）を出力する。そして速度側入力部ＫＡ［４］は、指令物理量として入力されたａ２１・θｖ＋ｂ２１・Ｖｖ＋ｃ２１・αｖ（速度側入力変換量）を、速度側第１出力として出力する。
【００９１】
同様に、速度側入力部ＫＡ［５］には、入力変換部２４Ａ２からの出力が入力される。入力変換部２４Ａ２は、速度側位置用係数ａ２２（第２位置係数に相当する定数）と、速度側速度用係数ｂ２２（第２速度係数に相当する定数）と、速度側加速度用係数ｃ２２（第２加速度係数に相当する定数）と、が設定されており、ａ２２・θｖ＋ｂ２２・Ｖｖ＋ｃ２２・αｖを出力する。そして速度側入力部ＫＡ［５］は、指令物理量として入力されたａ２２・θｖ＋ｂ２２・Ｖｖ＋ｃ２２・αｖを、速度側第１出力として出力する。同様に、速度側入力部ＫＡ［６］には、入力変換部２４Ａ３からの出力が入力される。入力変換部２４Ａ３は、速度側位置用係数ａ３３（第３位置係数に相当する定数）と、速度側速度用係数ｂ３３（第３速度係数に相当する定数）と、速度側加速度用係数ｃ３３（第３加速度係数に相当する定数）と、が設定されており、ａ３３・θｖ＋ｂ３３・Ｖｖ＋ｃ３３・αｖを出力する。そして速度側入力部ＫＡ［６］は、指令物理量として入力されたａ３３・θｖ＋ｂ３３・Ｖｖ＋ｃ３３・αｖを、位置側第１出力として出力する。なお、入力変換部（３Ｆ１等）を前段に有するＪＡ［４］〜ＪＡ［６］の数は、３個に限定されるものではなく、１個以上の任意の個数であればよい。速度フィードフォワード制御部２４の入力層２４ＡＡに、電動モータへの指令速度１５outからでなく、指令位置１０inから入力を行っている点が、本願における特徴の１つである。
【００９２】
第１速度側重み学習部２４ＦＡは、速度側入力部ＫＡ［１］〜ＫＡ［６］のそれぞれに対応する速度側出力重みＹＡ１〜ＹＡ６を有している。なお、速度側出力重みＹＡ１〜ＹＡ６は、速度側第１重みに相当している。そして第１速度側重み学習部２４ＦＡは、ＫＡ［１］から出力された位置θｖに速度側出力重みＹＡ１を乗算した第１速度側乗算値と、ＫＡ［２］から出力された速度Ｖｖに速度側出力重みＹＡ２を乗算した第１速度側乗算値と、ＫＡ［３］から出力された加速度αｖに速度側出力重みＹＡ３を乗算した第１速度側乗算値と、を演算する。さらに第１速度側重み学習部２４ＦＡは、ＫＡ［４］から出力された速度側第１出力（ａ２１・θｖ＋ｂ２１・Ｖｖ＋ｃ２１・αｖ）に速度側出力重みＹＡ４を乗算した第１速度側乗算値と、ＫＡ［５］から出力された速度側第１出力（ａ２２・θｖ＋ｂ２２・Ｖｖ＋ｃ２２・αｖ）に速度側出力重みＹＡ５を乗算した第１速度側乗算値と、ＫＡ［６］から出力された速度側第１出力（ａ３３・θｖ＋ｂ３３・Ｖｖ＋ｃ３３・αｖ）に速度側出力重みＸＡ６を乗算した第１速度側乗算値と、を演算する。そして第１速度側重み学習部２４ＦＡは、演算した各第１速度側乗算値を出力層２４ＣＡに出力する。
【００９３】
また、第１速度側重み学習部２４ＦＡは、速度偏差２０outに応じて、速度側出力重みＹＡ１〜ＹＡ６の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば第１速度側重み学習部２４ＦＡは、横軸が速度側出力重み、縦軸が速度偏差の２乗となる評価関数を用いて、速度偏差の２乗が小さくなるように、速度側出力重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。上記に説明したように、第１速度側重み学習部２４ＦＡは、速度側出力重みＹＡ１〜ＹＡ６を記憶する記憶機能と、速度偏差に応じて各重みを変更（学習）する変更機能と、入力（ＫＡ［１］〜ＫＡ［６］のそれぞれからの出力値）に重みを乗算する乗算機能と、を有している。
【００９４】
重み学習機能付きネットワークにおける出力層２４ＣＡは、速度側出力部ＱＡ［１］を有している。速度側出力部ＱＡ［１］は、以下の（１）〜（６）が入力され、当該（１）〜（６）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令電流２４outとして出力する。
（１）速度側入力部ＫＡ［１］の出力（θｖ）に速度側出力重みＹＡ１が乗算された第１速度側乗算値（θｖ＊ＹＡ１）。
（２）速度側入力部ＫＡ［２］の出力（Ｖｖ）に速度側出力重みＹＡ２が乗算された第１速度側乗算値（Ｖｖ＊ＹＡ２）。
（３）速度側入力部ＫＡ［３］の出力（αｖ）に速度側出力重みＹＡ３が乗算された第１速度側乗算値（αｖ＊ＹＡ３）。
（４）速度側入力部ＫＡ［４］の出力（ａ２１・θｖ＋ｂ２１・Ｖｖ＋ｃ２１・αｖ）に速度側出力重みＹＡ４が乗算された第１速度側乗算値［（ａ２１・θｖ＋ｂ２１・Ｖｖ＋ｃ２１・αｖ）＊ＹＡ４］。
（５）速度側入力部ＫＡ［５］の出力（ａ２２・θｖ＋ｂ２２・Ｖｖ＋ｃ２２・αｖ）に速度側出力重みＹＡ５が乗算された第１速度側乗算値［（ａ２２・θｖ＋ｂ２２・Ｖｖ＋ｃ２２・αｖ）＊ＹＡ５］。
（６）速度側入力部ＫＡ［６］の出力（ａ２３・θｖ＋ｂ２３・Ｖｖ＋ｃ２３・αｖ）に位置側出力重みＹＡ６が乗算された第１速度側乗算値［（ａ２３・θｖ＋ｂ２３・Ｖｖ＋ｃ２３・αｖ）＊ＹＡ６］。
【００９５】
以上、第３の実施の形態では、速度フィードフォワード制御部２４の入力層２４ＡＡに、電動モータ９２Ｍへの指令速度でなく、電動モータ９２Ｍへの指令位置と、当該指令位置の変化に基づいた指令物理量（入力速度、入力加速度）と、を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部１４の入力層１４ＡＡに、電動モータ９２Ｍへの指令位置と、当該指令位置の変化に基づいた指令物理量（入力速度、入力加速度）と、を入力することで、速度偏差を低減している。さらに、位置フィードフォワード制御部１４の第１位置側重み学習部１４ＦＡでは「位置偏差」に応じて学習し、速度フィードフォワード制御部２４の第１速度側重み学習部２４ＦＡでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。また、第３の実施の形態では、第１の実施の形態に対して、位置フィードフォワード制御部及び速度フィードフォワード制御部を簡素化することができる。
【００９６】
●●［第４の実施の形態（図１１、図１２）］
次に、第４の実施の形態のモータ制御装置について説明する。第４の実施のモータ制御装置の制御ブロックの構成は、図６に示した第２の実施の形態と同じである。ただし、第２の実施の形態に対して、位置フィードフォワード制御部１４Ｚ及び速度フィードフォワード制御部２４Ｚの内部の構成が、図７及び図８に示す構成から、図１１及び図１２に示す構成に変更されている点が異なり（ニューラルネットワークから重み学習機能付きネットワークに変更）、他については同じである。なお、第４の実施の形態の図１１及び図１２に示す構成は、第３の実施の形態の図９及び図１０に示す構成に対して、指令位置１０in及び指令位置１０inに関する部分が省略されている点が異なる。以下、同一点については、同一符号を付与して説明を割愛し、変更点について主に説明する。
【００９７】
●［位置フィードフォワード制御部１４Ｚの重み学習機能付きネットワークの構成（図１１）］
図１１に示すように、位置フィードフォワード制御部１４Ｚの重み学習機能付きネットワークは、指令位置１０inが省略されているので、図９に示した構成に対して、点線にて示した個所が省略されている。すなわち、位置側入力部ＪＡ［１］が省略され、位置側出力重みＸＡ１が省略されている。
【００９８】
入力変換部１４Ａ１は、位置側速度用係数ｂ１１（第１速度係数に相当する定数）と、位置側加速度用係数ｃ１１（第１加速度係数に相当する定数）と、が設定されており、ｂ１１・Ｖｐ＋ｃ１１・αｐを出力する。そして位置側入力部ＪＡ［４］は、指令物理量として入力されたｂ１１・Ｖｐ＋ｃ１１・αｐを、位置側第１出力として出力する。入力変換部１４Ａ２は、位置側速度用係数ｂ１２（第２速度係数に相当する定数）と、位置側加速度用係数ｃ１２（第２加速度係数に相当する定数）と、が設定されており、ｂ１２・Ｖｐ＋ｃ１２・αｐを出力する。そして位置側入力部ＪＡ［５］は、指令物理量として入力されたｂ１２・Ｖｐ＋ｃ１２・αｐを、位置側第１出力として出力する。入力変換部１４Ａ３は、位置側速度用係数ｂ１３（第３速度係数に相当する定数）と、位置側加速度用係数ｃ１３（第３加速度係数に相当する定数）と、が設定されており、ｂ１３・Ｖｐ＋ｃ１３・αｐを出力する。そして位置側入力部ＪＡ［６］は、指令物理量として入力されたｂ１３・Ｖｐ＋ｃ１３・αｐを、位置側第１出力として出力する。なお、入力変換部（１４Ａ１等）を前段に有するＪＡ［４］〜ＪＡ［６］の数は、３個に限定されるものではなく、これよりも多い方が、第２の実施の形態と同等の機能に近づく。
【００９９】
第１位置側重み学習部１４ＦＡは、位置側入力部ＪＡ［２］〜ＪＡ［６］のそれぞれに対応する位置側出力重みＸＡ２〜ＸＡ６を有している。なお、位置側出力重みＸＡ２〜ＸＡ６は、位置側第１重みに相当している。そして第１位置側重み学習部１４ＦＡは、ＪＡ［２］から出力された速度Ｖｐに位置側出力重みＸＡ２を乗算した第１位置側乗算値と、ＪＡ［３］から出力された加速度αｐに位置側出力重みＸＡ３を乗算した第１位置側乗算値と、を演算する。さらに第１位置側重み学習部１４ＦＡは、ＪＡ［４］から出力された位置側第１出力（ｂ１１・Ｖｐ＋ｃ１１・αｐ）に位置側出力重みＸＡ４を乗算した第１位置側乗算値と、ＪＡ［５］から出力された位置側第１出力（ｂ１２・Ｖｐ＋ｃ１２・αｐ）に位置側出力重みＸＡ５を乗算した第１位置側乗算値と、ＪＡ［６］から出力された位置側第１出力（ｂ１３・Ｖｐ＋ｃ１３・αｐ）に位置側出力重みＸＡ６を乗算した第１位置側乗算値と、を演算する。そして第１位置側重み学習部１４ＦＡは、演算した各第１位置側乗算値を出力層１４ＣＡに出力する。なお、第１位置側重み学習部１４ＦＡの学習の動作は、第３の実施の形態と同様であるので説明を省略する。
【０１００】
重み学習機能付きネットワークにおける出力層１４ＣＡは、位置側出力部ＰＡ［１］を有している。位置側出力部ＰＡ［１］は、以下の（１）〜（５）が入力され、当該（１）〜（５）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令速度１４outとして出力する。
（１）位置側入力部ＪＡ［２］の出力（Ｖｐ）に位置側出力重みＸＡ２が乗算された第１位置側乗算値（Ｖｐ＊ＸＡ２）。
（２）位置側入力部ＪＡ［３］の出力（αｐ）に位置側出力重みＸＡ３が乗算された第１位置側乗算値（αｐ＊ＸＡ３）。
（３）位置側入力部ＪＡ［４］の出力（ｂ１１・Ｖｐ＋ｃ１１・αｐ）に位置側出力重みＸＡ４が乗算された第１位置側乗算値［（ｂ１１・Ｖｐ＋ｃ１１・αｐ）＊ＸＡ４］。
（４）位置側入力部ＪＡ［５］の出力（ｂ１２・Ｖｐ＋ｃ１２・αｐ）に位置側出力重みＸＡ５が乗算された第１位置側乗算値［（ｂ１２・Ｖｐ＋ｃ１２・αｐ）＊ＸＡ５］。
（５）位置側入力部ＪＡ［６］の出力（ｂ１３・Ｖｐ＋ｃ１３・αｐ）に位置側出力重みＸＡ６が乗算された第１位置側乗算値［（ｂ１３・Ｖｐ＋ｃ１３・αｐ）＊ＸＡ６］。
【０１０１】
●［速度フィードフォワード制御部２４Ｚの重み学習機能付きネットワークの構成（図１２）］
図１２に示すように、速度フィードフォワード制御部２４Ｚの重み学習機能付きネットワークは、図１０の指令位置１０inが省略されているので、図１０の速度側入力部ＫＡ［１］が省略され、図１０の速度側出力重みＹＡ１が省略されている。
【０１０２】
入力変換部２４Ａ１は、速度側速度用係数ｂ２１（第１速度係数に相当する定数）と、速度側加速度用係数ｃ２１（第１加速度係数に相当する定数）と、が設定されており、ｂ２１・Ｖｖ＋ｃ２１・αｖを出力する。そして速度側入力部ＫＡ［４］は、指令物理量として入力されたｂ２１・Ｖｖ＋ｃ２１・αｖを、速度側第１出力として出力する。入力変換部２４Ａ２は、速度側速度用係数ｂ２２（第２速度係数に相当する定数）と、速度側加速度用係数ｃ２２（第２加速度係数に相当する定数）と、が設定されており、ｂ２２・Ｖｖ＋ｃ２２・αｖを出力する。そして速度側入力部ＫＡ［５］は、指令物理量として入力されたｂ２２・Ｖｖ＋ｃ２２・αｖを、速度側第１出力として出力する。入力変換部２４Ａ３は、速度側速度用係数ｂ２３（第３速度係数に相当する定数）と、速度側加速度用係数ｃ２３（第３加速度係数に相当する定数）と、が設定されており、ｂ２３・Ｖｖ＋ｃ２３・αｖを出力する。そして速度側入力部ＫＡ［６］は、指令物理量として入力されたｂ２３・Ｖｖ＋ｃ２３・αｖを、速度側第１出力として出力する。なお、入力変換部（２４Ａ１等）を前段に有するＫＡ［４］〜ＪＡ［６］の数は、３個に限定されるものではなく、これよりも多い方が、第２の実施の形態と同等の機能に近づく。
【０１０３】
第１速度側重み学習部２４ＦＡは、速度側入力部ＫＡ［２］〜ＫＡ［６］のそれぞれに対応する速度側出力重みＹＡ２〜ＹＡ６を有している。なお、速度側出力重みＹＡ２〜ＹＡ６は、速度側第１重みに相当している。そして第１速度側重み学習部２４ＦＡは、ＫＡ［２］から出力された速度Ｖｖに速度側出力重みＹＡ２を乗算した第１速度側乗算値と、ＫＡ［３］から出力された加速度αｖに速度側出力重みＹＡ３を乗算した第１速度側乗算値と、を演算する。さらに第１速度側重み学習部２４ＦＡは、ＫＡ［４］から出力された速度側第１出力（ｂ２１・Ｖｖ＋ｃ２１・αｖ）に速度側出力重みＹＡ４を乗算した第１速度側乗算値と、ＫＡ［５］から出力された速度側第１出力（ｂ２２・Ｖｖ＋ｃ２２・αｖ）に速度側出力重みＹＡ５を乗算した第１速度側乗算値と、ＫＡ［６］から出力された速度側第１出力（ｂ２３・Ｖｖ＋ｃ２３・αｖ）に速度側出力重みＹＡ６を乗算した第１速度側乗算値と、を演算する。そして第１速度側重み学習部２４ＦＡは、演算した各第１速度側乗算値を出力層２４ＣＡに出力する。なお、第１速度側重み学習部２４ＦＡの学習の動作は、第３の実施の形態と同様であるので説明を省略する。
【０１０４】
重み学習機能付きネットワークにおける出力層２４ＣＡは、速度側出力部ＱＡ［１］を有している。速度側出力部ＱＡ［１］は、以下の（１）〜（５）が入力され、当該（１）〜（５）の値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令電流２４outとして出力する。
（１）速度側入力部ＫＡ［２］の出力（Ｖｖ）に速度側出力重みＹＡ２が乗算された第１速度側乗算値（Ｖｖ＊ＹＡ２）。
（２）速度側入力部ＫＡ［３］の出力（αｖ）に速度側出力重みＹＡ３が乗算された第１速度側乗算値（αｖ＊ＹＡ３）。
（３）速度側入力部ＫＡ［４］の出力（ｂ２１・Ｖｖ＋ｃ２１・αｖ）に速度側出力重みＹＡ４が乗算された第１速度側乗算値［（ｂ２１・Ｖｖ＋ｃ２１・αｖ）＊ＹＡ４］。
（４）速度側入力部ＫＡ［５］の出力（ｂ２２・Ｖｖ＋ｃ２２・αｖ）に速度側出力重みＹＡ５が乗算された第１速度側乗算値［（ｂ２２・Ｖｖ＋ｃ２２・αｖ）＊ＹＡ５］。
（５）速度側入力部ＫＡ［６］の出力（ｂ２３・Ｖｖ＋ｃ２３・αｖ）に速度側出力重みＹＡ６が乗算された第１速度側乗算値［（ｂ２３・Ｖｖ＋ｃ２３・αｖ）＊ＹＡ６］。
【０１０５】
以上、第４の実施の形態では、第３の実施の形態に対して、位置フィードフォワード制御部、及び速度フィードフォワード制御部、への指令位置（入力位置）の入力を省略しており、第２の実施の形態と同様、図５の例に示す工作機械等へ適用することができる。また、第４の実施の形態では、第２の実施の形態に対して、位置フィードフォワード制御部及び速度フィードフォワード制御部の中間層が省略され、第２の実施の形態よりも入力層が複雑となっている。
【０１０６】
本発明のモータ制御装置６０、６０Ｂは、本実施の形態にて説明した制御ブロックやニューラルネットワークや重み学習機能付きネットワークに限定されるものではなく、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。例えば、第２位置側重み学習部１４Ｆ、第２速度側重み学習部２４Ｆを省略してもよい。この場合、位置偏差、速度偏差の追従性が低下するが、構造がシンプルとなる。
【０１０７】
本実施の形態の説明では、３つの位置側入力部Ｊ［１］〜Ｊ［３］（速度側入力部Ｋ［１］〜Ｋ［３］）に対して、３つの位置側演算部Ｍ［１］〜Ｍ［３］（速度側演算部Ｎ［１］〜Ｎ［３］）を有する例を説明したが、位置側入力部（速度側入力部）の数と、位置側演算部（速度側演算部）の数は、同じでなくてもよい。
【０１０８】
本実施の形態の説明では、指令速度を入力速度演算部１２、２２から指令位置を元に出力したが、他の実施の形態として、制御装置６０、６０Ｂより直接出力してもよい。本実施の形態の説明では、指令加速度を入力加速度演算部１３、２３から指令速度を元に出力したが、他の実施の形態として、制御装置６０、６０Ｂより直接出力してもよい。
【０１０９】
本実施の形態にて説明したモータ制御装置は、ロボットや工作機械に限定されず、種々の機器における所定部材（制御対象物）の位置を制御するモータ制御装置に適用することが可能である。
【符号の説明】
【０１１０】
１０      位置偏差演算部
１０in    指令位置
１０out    位置偏差
１０Ｓ、１２Ｓ、１３Ｓ    入力正規化部
１１      位置フィードバック制御部
１１out    第１仮指令速度
１２      位置側入力速度演算部
１２out    入力速度
１３      位置側入力加速度演算部
１３out    入力加速度
１４、１４Ｚ    位置フィードフォワード制御部
１４Ａ、１４ＡＡ    入力層
１４Ａ１〜１４Ａ３    入力変換部
１４Ａout、１４ＡＡout    位置側第１出力
１４Ｂ    中間層
１４Ｂout    位置側第２出力
１４Ｃ    出力層
１４Ｄ    第１位置側重み学習部
１４Ｆ    第２位置側重み学習部
１４ＦＡ  第１位置側重み学習部
１４out    第２仮指令速度
１５      速度加算演算部
１５out    指令速度
２０      速度偏差演算部
２０out    速度偏差
２０Ｓ、２２Ｓ、２３Ｓ    入力正規化部
２１      速度フィードバック制御部
２１out    第１仮指令電流
２２      速度側入力速度演算部
２２out    入力速度
２３      速度側入力加速度演算部
２３out    入力加速度
２４、２４Ｚ    速度フィードフォワード制御部
２４Ａ、２４ＡＡ    入力層
２４Ａ１〜２４Ａ３    入力変換部
２４Ａout、２４ＡＡout    速度側第１出力
２４Ｂ    中間層
２４Ｂout    速度側第２出力
２４Ｃ    出力層
２４Ｄ    第１速度側重み学習部
２４Ｆ    第２速度側重み学習部
２４ＦＡ  第１速度側重み学習部
２４out    第２仮指令電流
２５      電流加算演算部
２５out    指令電流
２７out    実位置
２８      実速度演算部
２８out    実速度
３０      電流偏差演算部
３０out    電流偏差
３１      電流フィードバック制御部
３１out    駆動電流
６０      ロボット制御装置
６０Ｂ    工作機械制御装置
９１Ｍ、９２Ｍ、９３Ｍ、９４Ｍ、８２Ｍ、７２Ｍ    電動モータ
９１Ｅ、９２Ｅ、９３Ｅ、９４Ｅ、８２Ｅ、７２Ｅ    エンコーダ（位置検出手段（角度検出手段））
９１Ｕ、９２Ｕ、９３Ｕ、９４Ｕ、８２Ｕ、７２Ｕ    モータ制御装置
Ｊ［１］〜Ｊ［３］、ＪＡ［１］〜ＪＡ［６］    位置側入力部
Ｋ［１］〜Ｋ［３］、ＫＡ［１］〜ＫＡ［６］    速度側入力部
Ｍ［１］〜Ｍ［３］    位置側演算部
Ｎ［１］〜Ｎ［３］    速度側演算部
Ｐ［１］、ＰＡ［１］    位置側出力部
Ｑ［１］、ＱＡ［１］    速度側出力部
Ｗ１１〜Ｗ１３    位置側位置重み（位置側第１重み）
Ｗ２１〜Ｗ２３    位置側速度重み（位置側第１重み）
Ｗ３１〜Ｗ３３    位置側加速度重み（位置側第１重み）
ＸＡ１〜ＸＡ６    位置側出力重み（位置側第１重み）
Ｕ１１〜Ｕ１３    速度側位置重み（速度側第１重み）
Ｕ２１〜Ｕ２３    速度側速度重み（速度側第１重み）
Ｕ３１〜Ｕ３３    速度側加速度重み（速度側第１重み）
ＹＡ１〜ＹＡ６    速度側出力重み（速度側第１重み）
Ｘ１〜Ｘ３    位置側出力重み（位置側第２重み）
Ｙ１〜Ｙ３    速度側出力重み（速度側第２重み）
【図１】
0006604198.tif 000002
【図２】
0006604198.tif 000003
【図３】
0006604198.tif 000004
【図４】
0006604198.tif 000005
【図５】
0006604198.tif 000006
【図６】
0006604198.tif 000007
【図７】
0006604198.tif 000008
【図８】
0006604198.tif 000009
【図９】
0006604198.tif 000010
【図１０】
0006604198.tif 000011
【図１１】
0006604198.tif 000012
【図１２】
0006604198.tif 000013