(57)【特許請求の範囲】
【請求項１】
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、
前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、
前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、
前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有し、
前記速度フィードフォワード制御部は、
上位指令加速度が入力され、入力された前記上位指令加速度を速度側加速度出力として出力する速度側加速度入力部と、
前記上位指令速度が入力され、入力された前記上位指令速度を速度側速度出力として出力する速度側速度入力部と、
前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度に対応させて用意され、前記上位指令速度が入力され、前記上位指令速度と対応する箇所より速度側境界速度出力を出力する複数の速度側境界速度入力部と、
前記速度側加速度出力、前記速度側速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、
前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【請求項２】
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、
前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、
前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、
前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有し、
前記速度フィードフォワード制御部は、
前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に速度側正速度出力値を出力し、入力された前記上位指令速度が負の場合に速度側負速度出力値を出力する速度側正負速度発火部と、
前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた速度側境界速度出力値を出力する速度側境界速度発火部と、
上位指令加速度が入力され、入力された前記上位指令加速度を速度側加速度出力として出力する速度側加速度入力部と、
前記速度側正速度出力値が入力され、入力された前記速度側正速度出力値を速度側正速度出力として出力する速度側正速度入力部と、
前記速度側負速度出力値が入力され、入力された前記速度側負速度出力値を速度側負速度出力として出力する速度側負速度入力部と、
複数の前記境界速度に対応させて用意され、前記速度側境界速度出力値が入力され、入力された前記速度側境界速度出力値を速度側境界速度出力として出力する複数の速度側境界速度入力部と、
前記速度側加速度出力、前記速度側正速度出力、前記速度側負速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、
前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【請求項３】
請求項２に記載のモータ制御装置であって、
前記上位指令速度に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、
前記第１仮指令速度と前記第２仮指令速度とを加算して前記下位指令速度を出力する速度加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に位置側正速度出力値を出力し、入力された前記上位指令速度が負の場合に位置側負速度出力値を出力する位置側正負速度発火部と、
複数の前記境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた位置側境界速度出力値を出力する位置側境界速度発火部と、
前記上位指令加速度が入力され、入力された前記上位指令加速度を位置側加速度出力として出力する位置側加速度入力部と、
前記位置側正速度出力値が入力され、入力された前記位置側正速度出力値を位置側正速度出力として出力する位置側正速度入力部と、
前記位置側負速度出力値が入力され、入力された前記位置側負速度出力値を位置側負速度出力として出力する位置側負速度入力部と、
複数の前記境界速度に対応させて用意され、前記位置側境界速度出力値が入力され、入力された前記位置側境界速度出力値を位置側境界速度出力として出力する複数の位置側境界速度入力部と、
前記位置側加速度出力、前記位置側正速度出力、前記位置側負速度出力、複数の前記位置側境界速度出力、である位置側第１出力のそれぞれに対応する複数の位置側第１学習重みを、前記位置偏差に応じて変更する位置側第１重み学習部と、
前記位置側第１出力のそれぞれと、当該位置側第１出力のそれぞれに対応する前記位置側第１学習重みと、を乗算した複数の位置側第１乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有している、
モータ制御装置。
【請求項４】
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、
前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、
前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、
前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有し、
前記速度フィードフォワード制御部は、
前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に速度側正速度出力値を出力し、入力された前記上位指令速度が負の場合に速度側負速度出力値を出力する速度側正負速度発火部と、
前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた速度側境界速度出力値を出力する速度側境界速度発火部と、
上位指令加速度が入力され、入力された前記上位指令加速度を、予め用意された複数の速度側演算部のそれぞれに向けて速度側加速度出力として出力する速度側加速度入力部と、
前記速度側正速度出力値が入力され、入力された前記速度側正速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側正速度出力として出力する速度側正速度入力部と、
前記速度側負速度出力値が入力され、入力された前記速度側負速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側負速度出力として出力する速度側負速度入力部と、
複数の前記境界速度に対応させて用意され、前記速度側境界速度出力値が入力され、入力された前記速度側境界速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側境界速度出力として出力する複数の速度側境界速度入力部と、
複数の前記速度側加速度出力、複数の前記速度側正速度出力、複数の前記速度側負速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、
前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して速度側第２出力として出力する複数の前記速度側演算部と、
前記速度側第２出力のそれぞれに対応する複数の速度側第２学習重みを、前記速度偏差に応じて変更する速度側第２重み学習部と、
前記速度側第２出力のそれぞれと、当該速度側第２出力のそれぞれに対応する前記速度側第２学習重みと、を乗算した複数の速度側第２乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【請求項５】
請求項４に記載のモータ制御装置であって、
前記上位指令速度に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、
前記第１仮指令速度と前記第２仮指令速度とを加算して前記下位指令速度を出力する速度加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に位置側正速度出力値を出力し、入力された前記上位指令速度が負の場合に位置側負速度出力値を出力する位置側正負速度発火部と、
複数の前記境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた位置側境界速度出力値を出力する位置側境界速度発火部と、
前記上位指令加速度が入力され、入力された前記上位指令加速度を、予め用意された複数の位置側演算部のそれぞれに向けて位置側加速度出力として出力する位置側加速度入力部と、
前記位置側正速度出力値が入力され、入力された前記位置側正速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側正速度出力として出力する位置側正速度入力部と、
前記位置側負速度出力値が入力され、入力された前記位置側負速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側負速度出力として出力する位置側負速度入力部と、
複数の前記境界速度に対応させて用意され、前記位置側境界速度出力値が入力され、入力された前記位置側境界速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側境界速度出力として出力する複数の位置側境界速度入力部と、
複数の前記位置側加速度出力、複数の前記位置側正速度出力、複数の前記位置側負速度出力、複数の前記位置側境界速度出力、である位置側第１出力のそれぞれに対応する複数の位置側第１学習重みを、前記位置偏差に応じて変更する位置側第１重み学習部と、
前記位置側第１出力のそれぞれと、当該位置側第１出力のそれぞれに対応する前記位置側第１学習重みと、を乗算した複数の位置側第１乗算値を加算して位置側第２出力として出力する複数の前記位置側演算部と、
前記位置側第２出力のそれぞれに対応する複数の位置側第２学習重みを、前記位置偏差に応じて変更する位置側第２重み学習部と、
前記位置側第２出力のそれぞれと、当該位置側第２出力のそれぞれに対応する前記位置側第２学習重みと、を乗算した複数の位置側第２乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有している、
モータ制御装置。
【請求項６】
請求項１〜５のいずれか一項に記載のモータ制御装置であって、
速度と、前記制御対象物の位置を移動させる際の摩擦を含む所定の物理現象と、の関係を示す速度・物理現象特性であって、非線形特性とみなされる前記限定速度範囲を、部分的に線形特性とみなすことが可能なそれぞれの前記速度範囲に分割し、分割したそれぞれの前記速度範囲の境界となる速度が、前記境界速度として設定されている、
モータ制御装置。
【請求項７】
請求項２〜５のいずれか一項に記載のモータ制御装置であって、
前記速度側境界速度発火部は、
予め設定された速度の幅を広がり幅とする所定の分布関数を有しており、
入力された前記上位指令速度と前記境界速度との前記速度差だけ前記分布関数の中央から離れた速度に対応する分布確率を、前記分布関数を用いてそれぞれの前記境界速度に対して求め、求めた前記分布確率がゼロでない前記境界速度に対してのみ発火して、前記上位指令速度が正の場合は求めた前記分布確率に基づいた正の値を、前記上位指令速度が負の場合は求めた前記分布確率に基づいた負の値を、発火した前記境界速度に対応する前記速度側境界速度出力値として出力する、
モータ制御装置。
【請求項８】
請求項３または５に記載のモータ制御装置であって、
前記位置側境界速度発火部は、
予め設定された速度の幅を広がり幅とする所定の分布関数を有しており、
入力された前記上位指令速度と前記境界速度との前記速度差だけ前記分布関数の中央から離れた速度に対応する分布確率を、前記分布関数を用いてそれぞれの前記境界速度に対して求め、求めた前記分布確率がゼロでない前記境界速度に対してのみ発火して、前記上位指令速度が正の場合は求めた前記分布確率に基づいた正の値を、前記上位指令速度が負の場合は求めた前記分布確率に基づいた負の値を、発火した前記境界速度に対応する前記位置側境界速度出力値として出力する、
モータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば工作機械やロボット等において、電動モータを用いて、テーブルやアーム等の所定部材（制御対象物）の位置を制御するモータ制御装置に関する。
【背景技術】
【０００２】
例えば特許文献１には、モータの位置検出値を位置指令値に追従させる、モータによる位置制御装置が開示されている。当該位置制御装置は、速度規範指令値を出力する速度規範モデルと、速度規範指令値と実際の速度との偏差に応じて制御量（電流指令値）を求める速度制御器（速度フィードバック部）と、速度フィードフォワード出力信号を出力する速度フィードフォワード部と、を有している。さらに、当該位置制御装置は、位置規範指令値を出力する位置規範モデルと、位置規範指令値と実際の位置との偏差に応じて制御量（速度指令値）を求める位置制御器（位置フィードバック部）と、位置フィードフォワード出力信号を出力する位置フィードフォワード部と、を有している。なお、位置フィードフォワード部への入力は、位置規範モデルに入力される位置指令値が入力され、速度フィードフォワード部への入力は、速度規範モデルに入力される速度指令値が入力されている。
【０００３】
また例えば特許文献２には、制御対象に対して、位置指令により位置制御を行い、力指令により力制御を行う、組み込み知能コントローラが開示されている。また、位置制御系のファジィ・ニューラルネットワークと、力制御系のファジィ・ニューラルネットワークと、位置と力のハイブリッド／コンプライアンス制御により位置制御と力制御を連続的に切り換える切換部と、を備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−３０３４３２号公報
【特許文献２】特開２０１４−６５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載された位置制御装置は、制御対象のモデルである位置規範モデルと速度規範モデルが必要であり、静止摩擦等のモデル化が困難なシステムに適用することは非常に困難である。また、速度フィードフォワード部への入力が速度指令値であり、工作機械やロボット等の精度への影響が大きな位置偏差や速度偏差を効果的に低減できない可能性がある。
【０００６】
また特許文献２に記載された組み込み知能コントローラは、位置制御だけでなく力制御も必要とする産業用ロボットの組立作業等において、位置制御と力制御の切り換えをスムーズに行うためにファジィ・ニューラルネットワークを利用している。しかし、制御が複雑であり、工作機械のテーブルや、ロボットのアーム等の所定部材の位置をより高精度に制御する制御システムへの適用は困難である。
【０００７】
本発明は、このような点に鑑みて創案されたものであり、電動モータを用いて所定部材（制御対象物）の位置を制御するモータ制御装置であって、位置偏差、速度偏差をより低減することが可能なモータ制御装置を提供することを課題とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係るモータ制御装置は、次の手段をとる。まず、本発明の第１の発明は、制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有する。そして、前記速度フィードフォワード制御部は、上位指令加速度が入力され、入力された前記上位指令加速度を速度側加速度出力として出力する速度側加速度入力部と、前記上位指令速度が入力され、入力された前記上位指令速度を速度側速度出力として出力する速度側速度入力部と、前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度に対応させて用意され、前記上位指令速度が入力され、前記上位指令速度と対応する箇所より速度側境界速度出力を出力する複数の速度側境界速度入力部と、前記速度側加速度出力、前記速度側速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、モータ制御装置である。
【０００９】
次に、本発明の第２の発明は、制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有する。そして、前記速度フィードフォワード制御部は、前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に速度側正速度出力値を出力し、入力された前記上位指令速度が負の場合に速度側負速度出力値を出力する速度側正負速度発火部と、前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた速度側境界速度出力値を出力する速度側境界速度発火部と、上位指令加速度が入力され、入力された前記上位指令加速度を速度側加速度出力として出力する速度側加速度入力部と、前記速度側正速度出力値が入力され、入力された前記速度側正速度出力値を速度側正速度出力として出力する速度側正速度入力部と、前記速度側負速度出力値が入力され、入力された前記速度側負速度出力値を速度側負速度出力として出力する速度側負速度入力部と、複数の前記境界速度に対応させて用意され、前記速度側境界速度出力値が入力され、入力された前記速度側境界速度出力値を速度側境界速度出力として出力する複数の速度側境界速度入力部と、前記速度側加速度出力、前記速度側正速度出力、前記速度側負速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、モータ制御装置である。
【００１０】
また、本発明の第３の発明は、上記第２の発明に係るモータ制御装置であって、前記上位指令速度に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、前記第１仮指令速度と前記第２仮指令速度とを加算して前記下位指令速度を出力する速度加算演算部と、を有する。そして、前記位置フィードフォワード制御部は、前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に位置側正速度出力値を出力し、入力された前記上位指令速度が負の場合に位置側負速度出力値を出力する位置側正負速度発火部と、複数の前記境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた位置側境界速度出力値を出力する位置側境界速度発火部と、前記上位指令加速度が入力され、入力された前記上位指令加速度を位置側加速度出力として出力する位置側加速度入力部と、前記位置側正速度出力値が入力され、入力された前記位置側正速度出力値を位置側正速度出力として出力する位置側正速度入力部と、前記位置側負速度出力値が入力され、入力された前記位置側負速度出力値を位置側負速度出力として出力する位置側負速度入力部と、複数の前記境界速度に対応させて用意され、前記位置側境界速度出力値が入力され、入力された前記位置側境界速度出力値を位置側境界速度出力として出力する複数の位置側境界速度入力部と、前記位置側加速度出力、前記位置側正速度出力、前記位置側負速度出力、複数の前記位置側境界速度出力、である位置側第１出力のそれぞれに対応する複数の位置側第１学習重みを、前記位置偏差に応じて変更する位置側第１重み学習部と、前記位置側第１出力のそれぞれと、当該位置側第１出力のそれぞれに対応する前記位置側第１学習重みと、を乗算した複数の位置側第１乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有している、モータ制御装置である。
【００１１】
また、本発明の第４の発明は、制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、前記位置偏差に応じてフィードバック制御して第１仮指令速度を出力する位置フィードバック制御部と、前記電動モータに対する下位指令速度であって前記第１仮指令速度を含む前記下位指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、前記速度偏差に応じてフィードバック制御して第１仮指令電流を出力する速度フィードバック制御部と、前記下位指令速度とは異なる速度である上位指令速度に応じてフィードフォワード制御して第２仮指令電流を出力する速度フィードフォワード制御部と、前記第１仮指令電流と前記第２仮指令電流とを加算して指令電流を出力する電流加算演算部と、前記指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、を有する。そして、前記速度フィードフォワード制御部は、前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に速度側正速度出力値を出力し、入力された前記上位指令速度が負の場合に速度側負速度出力値を出力する速度側正負速度発火部と、前記上位指令速度の速度範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割し、分割したそれぞれの前記速度範囲の境界となる速度である複数の境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた速度側境界速度出力値を出力する速度側境界速度発火部と、上位指令加速度が入力され、入力された前記上位指令加速度を、予め用意された複数の速度側演算部のそれぞれに向けて速度側加速度出力として出力する速度側加速度入力部と、前記速度側正速度出力値が入力され、入力された前記速度側正速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側正速度出力として出力する速度側正速度入力部と、前記速度側負速度出力値が入力され、入力された前記速度側負速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側負速度出力として出力する速度側負速度入力部と、複数の前記境界速度に対応させて用意され、前記速度側境界速度出力値が入力され、入力された前記速度側境界速度出力値を、複数の前記速度側演算部のそれぞれに向けて速度側境界速度出力として出力する複数の速度側境界速度入力部と、複数の前記速度側加速度出力、複数の前記速度側正速度出力、複数の前記速度側負速度出力、複数の前記速度側境界速度出力、である速度側第１出力のそれぞれに対応する複数の速度側第１学習重みを、前記速度偏差に応じて変更する速度側第１重み学習部と、前記速度側第１出力のそれぞれと、当該速度側第１出力のそれぞれに対応する前記速度側第１学習重みと、を乗算した複数の速度側第１乗算値を加算して速度側第２出力として出力する複数の前記速度側演算部と、前記速度側第２出力のそれぞれに対応する複数の速度側第２学習重みを、前記速度偏差に応じて変更する速度側第２重み学習部と、前記速度側第２出力のそれぞれと、当該速度側第２出力のそれぞれに対応する前記速度側第２学習重みと、を乗算した複数の速度側第２乗算値を加算して前記第２仮指令電流として出力する速度側出力部と、を有している、モータ制御装置である。
【００１２】
また、本発明の第５の発明は、上記第４の発明に係るモータ制御装置であって、前記上位指令速度に応じてフィードフォワード制御して第２仮指令速度を出力する位置フィードフォワード制御部と、前記第１仮指令速度と前記第２仮指令速度とを加算して前記下位指令速度を出力する速度加算演算部と、を有する。そして、前記位置フィードフォワード制御部は、前記上位指令速度が入力され、入力された前記上位指令速度が正の場合に位置側正速度出力値を出力し、入力された前記上位指令速度が負の場合に位置側負速度出力値を出力する位置側正負速度発火部と、複数の前記境界速度を有し、前記上位指令速度が入力され、複数の前記境界速度のうち前記上位指令速度との速度差が所定速度差以内の前記境界速度から、前記速度差に基づいた位置側境界速度出力値を出力する位置側境界速度発火部と、前記上位指令加速度が入力され、入力された前記上位指令加速度を、予め用意された複数の位置側演算部のそれぞれに向けて位置側加速度出力として出力する位置側加速度入力部と、前記位置側正速度出力値が入力され、入力された前記位置側正速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側正速度出力として出力する位置側正速度入力部と、前記位置側負速度出力値が入力され、入力された前記位置側負速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側負速度出力として出力する位置側負速度入力部と、複数の前記境界速度に対応させて用意され、前記位置側境界速度出力値が入力され、入力された前記位置側境界速度出力値を、複数の前記位置側演算部のそれぞれに向けて位置側境界速度出力として出力する複数の位置側境界速度入力部と、複数の前記位置側加速度出力、複数の前記位置側正速度出力、複数の前記位置側負速度出力、複数の前記位置側境界速度出力、である位置側第１出力のそれぞれに対応する複数の位置側第１学習重みを、前記位置偏差に応じて変更する位置側第１重み学習部と、前記位置側第１出力のそれぞれと、当該位置側第１出力のそれぞれに対応する前記位置側第１学習重みと、を乗算した複数の位置側第１乗算値を加算して位置側第２出力として出力する複数の前記位置側演算部と、前記位置側第２出力のそれぞれに対応する複数の位置側第２学習重みを、前記位置偏差に応じて変更する位置側第２重み学習部と、前記位置側第２出力のそれぞれと、当該位置側第２出力のそれぞれに対応する前記位置側第２学習重みと、を乗算した複数の位置側第２乗算値を加算して前記第２仮指令速度として出力する位置側出力部と、を有している、モータ制御装置である。
【００１３】
また、本発明の第６の発明は、上記第１の発明〜第５の発明のいずれか１つに係るモータ制御装置であって、速度と、前記制御対象物の位置を移動させる際の摩擦を含む所定の物理現象と、の関係を示す速度・物理現象特性であって、非線形特性とみなされる前記限定速度範囲を、部分的に線形特性とみなすことが可能なそれぞれの前記速度範囲に分割し、分割したそれぞれの前記速度範囲の境界となる速度が、前記境界速度として設定されている、モータ制御装置である。
【００１４】
また、本発明の第７の発明は、上記第２の発明〜第５の発明のいずれか１つに係るモータ制御装置であって、前記速度側境界速度発火部は、予め設定された速度の幅を広がり幅とする所定の分布関数を有しており、入力された前記上位指令速度と前記境界速度との前記速度差だけ前記分布関数の中央から離れた速度に対応する分布確率を、前記分布関数を用いてそれぞれの前記境界速度に対して求め、求めた前記分布確率がゼロでない前記境界速度に対してのみ発火して、前記上位指令速度が正の場合は求めた前記分布確率に基づいた正の値を、前記上位指令速度が負の場合は求めた前記分布確率に基づいた負の値を、発火した前記境界速度に対応する前記速度側境界速度出力値として出力する、モータ制御装置である。
【００１５】
また、本発明の第８の発明は、上記第３の発明または第５の発明に係るモータ制御装置であって、前記位置側境界速度発火部は、予め設定された速度の幅を広がり幅とする所定の分布関数を有しており、入力された前記上位指令速度と前記境界速度との前記速度差だけ前記分布関数の中央から離れた速度に対応する分布確率を、前記分布関数を用いてそれぞれの前記境界速度に対して求め、求めた前記分布確率がゼロでない前記境界速度に対してのみ発火して、前記上位指令速度が正の場合は求めた前記分布確率に基づいた正の値を、前記上位指令速度が負の場合は求めた前記分布確率に基づいた負の値を、発火した前記境界速度に対応する前記位置側境界速度出力値として出力する、モータ制御装置である。
【発明の効果】
【００１６】
第１の発明では、複数の速度範囲毎に速度側境界速度入力部と、速度側第１学習重みを用意し、上位指令速度に対応する速度側境界速度入力部から出力する速度側境界速度出力に速度側第１学習重みを乗算し、それを速度フィードフォワード制御部の指令電流に反映させ、速度偏差が少なくなる方向に速度側第１学習重みを変更する学習を実行している。このように、上位指令速度と速度偏差に応じて、複数の速度範囲毎に速度側第１学習重みを変更しているので、あらゆる速度に対して速度偏差が少ないモータ制御装置を提供できる。
【００１７】
第２の発明では、複数の速度範囲毎に速度側境界速度発火部と、速度側境界速度入力部と、速度側第１学習重みを用意し、上位指令速度に対応する速度側境界速度発火部の複数の境界速度を発火させて複数の速度側境界速度入力部から速度側境界速度出力を出力させる。また各速度側境界速度出力は、上位指令速度と境界速度との速度差に応じた出力となり、複数の速度側境界速度出力にそれぞれ速度側第１学習重みを乗算し、これらの和を速度フィードフォワード制御部の指令電流として反映させ、速度偏差が少なくなる方向に速度側第１学習重みを変更する学習を実行している。このように、上位指令速度と速度偏差に応じて、複数の速度範囲毎に速度側第１学習重みを変更し、しかも１つの上位指令速度に対して複数の速度側境界速度出力を出力する。また各速度側境界速度出力は上位指令速度と境界速度との速度差に応じた出力であり、複数の速度側境界速度出力にそれぞれ速度側第１学習重みを乗算し、これらの和から得られる値は、第１の発明に比べて速度の連続性があり、あらゆる速度に対してより速度偏差が少ないモータ制御装置を提供できる。
【００１８】
第３の発明では、位置フィードフォワード制御部に、第２の発明の速度フィードフォワード制御部と同じ構成を適用し、上位指令速度と位置偏差に応じて、位置フィードフォワード制御部の位置側第１学習重みを学習するので、あらゆる速度に対してより速度偏差、位置偏差が少ないモータ制御装置を提供できる。
【００１９】
第２の発明の速度フィードフォワード制御部は、各入力部と、速度側第１重み学習部と、速度側出力部とを有するパーセプトロンであり、第４の発明の速度フィードフォワード制御部は、各入力部と、速度側第１重み学習部と、速度側演算部と、速度側第２重み学習部と、速度側出力部とを有するニューラルネットワークである。複数の入力部からの出力にそれぞれ重みを乗算し、それらの和の組み合わせパターンは、パーセプトロンに比べてニューラルネットワークの方が多彩であるので、第２の発明に比べて、あらゆる速度に対してより速度偏差が少ないモータ制御装置を提供できる。
【００２０】
第３の発明の位置フィードフォワード制御部は、各入力部と、位置側第１重み学習部と、位置側出力部とを有するパーセプトロンであり、第５の発明の位置フィードフォワード制御部は、各入力部と、位置側第１重み学習部と、位置側演算部と、位置側第２重み学習部と、位置側出力部とを有するニューラルネットワークである。複数の入力部からの出力にそれぞれ重みを乗算し、それらの和の組み合わせパターンは、パーセプトロンに比べてニューラルネットワークの方が多彩であるので、第３の発明に比べて、あらゆる速度に対してより速度偏差、位置偏差が少ないモータ制御装置を提供できる。
【００２１】
第６の発明では、複数の速度範囲を、摩擦を含む所定の物理現象が速度に対して非線形となる速度範囲に適用したので、摩擦を含む所定の物理現象の有無にも係わらず、速度偏差が少ないモータ制御装置を提供できる。
【００２２】
第７の発明によれば、上位指令速度に応じて位置が変化するとともに複数の速度範囲に跨る分布関数を使用し、各速度側境界速度出力は境界速度上の分布関数の値から求められているので、より速度の連続性があり、あらゆる速度に対してより速度偏差が少ないモータ制御装置を提供できる。
【００２３】
第８の発明によれば、上位指令速度に応じて位置が変化するとともに複数の速度範囲に跨る分布関数を使用し、各位置側境界速度出力は境界速度上の分布関数の値から求められているので、より速度の連続性があり、あらゆる速度に対してより速度偏差、位置偏差が少ないモータ制御装置を提供できる。
【図面の簡単な説明】
【００２４】
【図１】第１の実施の形態のモータ制御装置を適用したロボットの外観の例を説明する図である。
【図２】第１、第３の実施の形態のモータ制御装置の全体構成の例を説明する図である。
【図３】第１の実施の形態であって、図２における速度フィードフォワード制御部の内部構成を説明する概念図である。
【図４】静止摩擦特性と粘性摩擦特性を含む（合成）摩擦特性（全体としては非線形特性）の例と、境界速度の設定方法を説明する図である。
【図５】上位指令速度Ｖｖ＞０かつ境界速度Ｖ１１＜上位指令速度Ｖｖ＜境界速度Ｖ１２の場合の例において、速度側正負速度発火部と速度側境界速度発火部からの発火状態の例を説明する図である。
【図６】上位指令速度Ｖｖ＞０かつ境界速度Ｖ１２＜上位指令速度Ｖｖ＜境界速度Ｖ１３の場合の例において、速度側正負速度発火部と速度側境界速度発火部からの発火状態の例を説明する図である。
【図７】上位指令速度Ｖｖ＜０かつ境界速度−Ｖ０２＜上位指令速度Ｖｖ＜境界速度−Ｖ０１の場合の例において、速度側正負速度発火部と速度側境界速度発火部からの発火状態の例を説明する図である。
【図８】上位指令速度Ｖｖ＜０かつ境界速度−Ｖ０３＜上位指令速度Ｖｖ＜境界速度−Ｖ０２の場合の例において、速度側正負速度発火部と速度側境界速度発火部からの発火状態の例を説明する図である。
【図９】第１の実施の形態であって、図２における位置フィードフォワード制御部の内部構成を説明する概念図である。
【図１０】上位指令速度Ｖｐ＞０かつ境界速度Ｖ１１＜上位指令速度Ｖｐ＜境界速度Ｖ１２の場合の例において、位置側正負速度発火部と位置側境界速度発火部からの発火状態の例を説明する図である。
【図１１】上位指令速度Ｖｐ＜０かつ境界速度−Ｖ０２＜上位指令速度Ｖｐ＜境界速度−Ｖ０１の場合の例において、位置側正負速度発火部と位置側境界速度発火部からの発火状態の例を説明する図である。
【図１２】従来の制御にて発生した位置偏差の例を説明する図である。
【図１３】第１の実施の形態の制御にて発生した位置偏差の例（従来に対する本願の効果）を説明する図である。
【図１４】第２、第４の実施の形態のモータ制御装置の全体構成の例を説明する図である。
【図１５】第３の実施の形態であって、図２における速度フィードフォワード制御部の内部構成を説明する概念図である。
【図１６】第３の実施の形態であって、図２における位置フィードフォワード制御部の内部構成を説明する概念図である。
【図１７】第５、第６、第７の実施の形態であって、図１４における速度フィードフォワード制御部の内部構成を説明する概念図である。
【図１８】第５の実施の形態において、上位指令速度Ｖｖ＞０かつ境界速度Ｖ１２＜上位指令速度Ｖｖ＜境界速度Ｖ１３の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【図１９】第５の実施の形態において、上位指令速度Ｖｖ＜０かつ境界速度−Ｖ０３＜上位指令速度Ｖｖ＜境界速度−Ｖ０２の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【図２０】第６の実施の形態において、上位指令速度Ｖｖ＞０かつ境界速度Ｖ１２＜上位指令速度Ｖｖ＜境界速度Ｖ１３の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【図２１】第６の実施の形態において、上位指令速度Ｖｖ＜０かつ境界速度−Ｖ０３＜上位指令速度Ｖｖ＜境界速度−Ｖ０２の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【図２２】第７の実施の形態において、上位指令速度Ｖｖ＞０かつ境界速度Ｖ１２＜上位指令速度Ｖｖ＜境界速度Ｖ１３の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【図２３】第７の実施の形態において、上位指令速度Ｖｖ＜０かつ境界速度−Ｖ０３＜上位指令速度Ｖｖ＜境界速度−Ｖ０２の場合の例において、速度側境界速度入力部Ｈ［ｍ］の発火状態の例を説明する図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態を、図面を用いて順に説明する。なおＸ軸、Ｙ軸、Ｚ軸が記載されている図では、Ｘ軸とＹ軸とＺ軸は互いに直交している。
【００２６】
●●［第１の実施の形態（図１〜図１１）］
第１の実施の形態のモータ制御装置９２Ｕについて、図１に示すロボットを制御する制御装置を例として説明する。図１に示すロボットは、ベース９１、第１旋回部９２、第１揺動部９３、第２旋回部９４、第２揺動部９５等を有している。
【００２７】
ベース９１には、エンコーダ９１Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９１Ｍが設けられている。電動モータ９１Ｍは、モータ制御装置９１Ｕからの駆動電流に基づいて、ベース９１に対して第１旋回部９２を旋回させる。またモータ制御装置９１Ｕは、エンコーダ９１Ｅからの検出信号に基づいて、第１旋回部９２の旋回角度θ１を検出する。
【００２８】
第１旋回部９２には、エンコーダ９２Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９２Ｍが設けられている。電動モータ９２Ｍは、モータ制御装置９２Ｕからの駆動電流に基づいて、第１旋回部９２に対して第１揺動部９３を揺動させる。またモータ制御装置９２Ｕは、エンコーダ９２Ｅからの検出信号に基づいて、第１揺動部９３の揺動角度θ２を検出する。
【００２９】
第１揺動部９３には、エンコーダ９３Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９３Ｍが設けられている。電動モータ９３Ｍは、モータ制御装置９３Ｕからの駆動電流に基づいて、第１揺動部９３に対して第２旋回部９４を旋回させる。またモータ制御装置９３Ｕは、エンコーダ９３Ｅからの検出信号に基づいて、第２旋回部９４の旋回角度θ３を検出する。
【００３０】
第２旋回部９４には、エンコーダ９４Ｅ（角度検出手段であり、位置検出手段としても使用できる）を有する電動モータ９４Ｍが設けられている。電動モータ９４Ｍは、モータ制御装置９４Ｕからの駆動電流に基づいて、第２旋回部９４に対して第２揺動部９５を揺動させる。またモータ制御装置９４Ｕは、エンコーダ９４Ｅからの検出信号に基づいて、第２揺動部９５の揺動角度θ４を検出する。
【００３１】
そして、ロボット制御装置６０より、モータ制御装置９１Ｕへθ１回りの指令位置が送信され、モータ制御装置９２Ｕへθ２回りの指令位置が送信され、モータ制御装置９３Ｕへθ３回りの指令位置が送信され、モータ制御装置９４Ｕへθ４回りの指令位置が送信されるようになっている。
【００３２】
以下、電動モータ９２Ｍを例として、電動モータ９２Ｍを制御するモータ制御装置９２Ｕについて、図２〜図１１を用いて説明する。なお、電動モータ９１Ｍ、９３Ｍ、９４Ｍのそれぞれを制御するモータ制御装置９１Ｕ、９３Ｕ、９４Ｕも同様であり、これらについては説明を省略する。
【００３３】
●［電動モータ９２Ｍを制御するモータ制御装置９２Ｕの構成（図２）］
図２に示すように、電動モータ９２Ｍを制御するモータ制御装置９２Ｕは、指令位置１０inと実位置２７outが入力されて下位指令速度１５outを出力する第１制御部４１と、下位指令速度１５outと指令位置１０inと実位置２７outが入力されて指令電流２５outを出力する第２制御部４２と、指令電流２５outが入力されて電動モータ９２Ｍを駆動する駆動電流３１outを出力する電流出力部４３と、を有している。なお、指令位置は、この場合、指令角度と同じであり、現在の位置（角度）は、エンコーダ９２Ｅからの検出信号に基づいて検出される。
【００３４】
●［第１制御部４１の構成（図２）］
第１制御部４１は、位置偏差演算部１０、位置フィードバック制御部１１、位置側入力速度演算部１２、位置側入力加速度演算部１３、位置フィードフォワード制御部１４、速度加算演算部１５等を有している。
【００３５】
位置偏差演算部１０は、電動モータ９２Ｍに対する指令位置１０in（この場合、指令（回転）角度）と、当該電動モータ９２Ｍに関する位置（この場合、電動モータ９２Ｍの出力軸の回転角度）の実際の位置である実位置２７out（エンコーダ９２Ｅからの検出信号に基づいた実際の位置）と、が入力され、指令位置１０inと実位置２７outの偏差である位置偏差１０outを演算して出力する。なお、実位置２７outは、エンコーダ９２Ｅからの検出信号から求められる。なお、電動モータ９２Ｍと第１揺動部９３との間に、減速比ａの減速機構が存在する場合は、制御対象物である第１揺動部９３の指令位置にａ倍した値が、電動モータ９２Ｍの指令位置１０inとなる。
【００３６】
位置フィードバック制御部１１は、位置偏差１０outが入力され、入力された位置偏差１０outに応じてフィードバック制御して、第１仮指令速度１１outを出力する。位置フィードバック制御部１１は、いわゆるＰＩＤ制御である比例項（Ｐ）、積分項（Ｉ）、微分項（Ｄ）、の少なくとも１つを有し、第１仮指令速度１１outを出力する。なお、ＰＩＤ制御は既存の制御と同様であるので、詳細な説明は省略する。
【００３７】
位置側入力速度演算部１２は、指令位置１０inが（入力位置（この場合、回転角度）として）入力され、指令位置１０inの時間に応じた変化に基づいた速度（この場合、回転角速度）である入力速度１２out（位置側速度に相当）を出力する。
【００３８】
位置側入力加速度演算部１３は、入力速度１２outが入力され、入力速度１２outの時間に応じた変化に基づいた加速度（この場合、回転角加速度）である入力加速度１３out（位置側加速度に相当）を出力する。
【００３９】
位置フィードフォワード制御部１４は、入力速度１２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（速度側速度に相当）を出力する。
【００４５】
速度側入力加速度演算部２３は、入力速度２２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ではなく、（下位指令速度１５outとは異なる）上位指令速度Ｖｖと記載する。同様に、図３に示す速度フィードフォワード制御部２４に入力される加速度（入力加速度２３out）は、図２に示すように、ロボット制御装置６０からの指令位置１０inを２回微分して求めているが、指令位置１０inの２回微分から求めることなく、種々の位置に関する情報を２回微分して求めてもよいし、ロボット制御装置６０からの指令速度を微分して求めてもよい。このため、以降では、図３に示す速度フィードフォワード制御部２４に入力される加速度を、入力加速度２３outではなく、上位指令加速度αｖと記載する。
【００５３】
●［入力処理部２４１について（図３〜図８）］
速度側正負速度発火部２４Ｅには、上位指令速度Ｖｖが入力されている。速度側正負速度発火部２４Ｅは、入力された上位指令速度Ｖｖが正（＞０）の場合に、「Ｖｖ（＞０）」の側が発火して「Ｖｖ（＜０）」の側は発火せず、速度側正速度入力部Ｋ［２］へ、速度側正速度出力値（値は上位指令速度Ｖｖの値）を出力する。また速度側正負速度発火部２４Ｅは、入力された上位指令速度Ｖｖが負（＜０）の場合に、「Ｖｖ（＜０）」の側が発火して「Ｖｖ（＞０）」の側は発火せず、速度側負速度入力部Ｋ［３］へ、速度側負速度出力値（値は上位指令速度Ｖｖの値）を出力する。
【００５４】
速度側境界速度発火部２４Ｆには、上位指令速度Ｖｖが入力されている。速度側境界速度発火部２４Ｆは、上位指令速度Ｖｖの速度の範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割した際の、速度範囲毎の境界となる速度である複数の境界速度（−Ｖ０ｎ〜Ｖ１ｎ）を有している（図４参照）。そして速度側境界速度発火部２４Ｆは、入力された上位指令速度Ｖｖとの速度差が所定速度差以内の境界速度から、当該速度差に基づいた速度側境界速度出力値を出力する。なお、限定速度範囲、速度範囲、境界速度、速度側境界速度出力値については、図４〜図８を用いて説明する。
【００５５】
●［限定速度範囲と速度範囲と境界速度について（図４）］
次に図４を用いて、限定速度範囲と速度範囲と境界速度（−Ｖ０ｎ〜Ｖ１ｎ）について説明する。電動モータ９２Ｍを用いて第１揺動部９３（図１参照）を揺動させる場合、各部の摩擦（電動モータ９２Ｍの内部の摩擦や、第１揺動部９３と第１旋回部９２との摩擦等）によって位置偏差が生ずる。そして摩擦力は、主に静止摩擦と粘性摩擦が合成された合成摩擦で表され、速度に応じて摩擦力は変化する。
【００５６】
図４は、電動モータ９２Ｍに対する上位指令速度Ｖｖの大きさと、制御対象物の位置を移動させる際の所定の物理現象（この場合、摩擦）と、の関係を示す速度・物理現象特性を示しており、横軸は速度（上位指令速度Ｖｖ）を示し、縦軸は摩擦力を示している。また図４中において一点鎖線にて示す特性は静止摩擦特性を示しており、二点鎖線にて示す特性は粘性摩擦特性を示し、太実線にて示す特性は静止摩擦特性と粘性摩擦特性とを合成した合成摩擦特性を示している。
【００５７】
速度が正の領域では、静止摩擦特性は速度がゼロの近傍から増加するに従って徐々に減少する特性を示し、粘性摩擦特性は速度がゼロの近傍から増加するに従って徐々に増加する特性を示している。そして速度が正の領域では、合成摩擦特性は、速度＝Ｖ１ｎ（所定正速度に相当）を境界として、速度がＶ１ｎ以下の領域（かつ速度＞０）では非線形特性とみなされ、速度がＶ１ｎより大きい領域では線形特性とみなすことができる。従って、速度が正の領域では、合成摩擦特性は全体としては非線形特性とみなされる。
【００５８】
速度が負の領域では、静止摩擦特性は速度がゼロの近傍から減少するに従って徐々に増加する特性を示し、粘性摩擦特性は速度がゼロの近傍から減少するに従って徐々に減少する特性を示している。そして速度が負の領域では、合成摩擦特性は、速度＝−Ｖ０ｎ（所定負速度に相当）を境界として、速度が−Ｖ０ｎ以上の領域（かつ速度＜０）では非線形特性とみなされ、速度が−Ｖ０ｎ未満の領域では線形特性とみなすことができる。従って、速度が負の領域では、合成摩擦特性は全体としては非線形特性とみなされる。なお、図４の例は、速度がＶ１ｎ以上の領域の合成摩擦特性の傾きよりも、速度が−Ｖ０ｎ未満の領域の合成摩擦特性の傾きの方が、やや緩やかとなっている例を示している。また図４の例は、速度がＶ１１からＶ１５の領域の合成摩擦特性の曲率よりも、速度が−Ｖ０５から−Ｖ０１の領域の合成摩擦特性の曲率の方が、小さくなっている（曲がり具合が緩くなっている）例を示している。従って、図４の例に示すように、速度・摩擦力特性（合成摩擦特性）は、速度が正（＞０）の領域と、速度が負（＜０）の領域で、点対称にならない。なお状況によっては、速度・摩擦力特性（合成摩擦特性）が、速度が正の領域と、速度が負の領域とで点対称となる場合があり、この場合は、速度の正負を考慮しないで、全部正として扱ってもよい。
【００５９】
合成摩擦特性は全体としては非線形特性であるためモデル化が困難であり、従来のニューラルネットワークを用いた速度フィードフォワード制御では、適切に位置偏差を低減することができない。そこで本願では、非線形特性の合成摩擦特性を、線形特性とみなすことが可能な速度範囲毎に分割することで、速度範囲毎に線形特性とみなし、適切に位置偏差を低減することを可能としている。つまり、非線形特性の合成摩擦特性を、線形特性とみなすことが可能な速度範囲毎に分割し、分割した速度範囲毎（線形特性毎）に、後述する重み学習を行うことで、あらゆる速度において位置偏差を低減することを可能としている。
【００６０】
そこで、図４に示す合成摩擦特性において、速度が正（＞０）の領域にて、非線形特性とみなされる速度Ｖ１ｎ以下かつ速度＞０の領域である限定速度範囲を、部分的に線形特性とみなすことが可能な速度範囲毎の領域に分割する。例えば図４の例では、速度（Ｖ１１）〜速度（Ｖ１２）の領域、速度（Ｖ１２）〜速度（Ｖ１３）の領域、速度（Ｖ１３）〜速度（Ｖ１４）の領域等に分割する。各領域の速度範囲内では、合成摩擦特性は直線状であり、線形特性とみなすことができる。この各領域の速度範囲の境界となる各速度を、境界速度Ｖ１１〜Ｖ１ｎとして設定する。そして、線形特性とみなすことができる速度領域と、非線形特性とみなされる速度領域と、の境界となる正の側の境界速度Ｖ１ｎを所定正速度Ｖ１ｎとする。従って、速度が正の領域については、非線形特性とみなされる所定正速度以下の領域である限定速度範囲において、正の側のそれぞれの境界速度（Ｖ１１〜Ｖ１ｎ）が設定されている。例えば、合成摩擦特性の曲率が比較的大きな部分では速度範囲を狭く（例えば境界速度Ｖ１３と境界速度Ｖ１４の速度範囲）して、合成摩擦促成の曲率が比較的小さな部分では速度範囲を広く（例えば境界速度Ｖ１１と境界速度Ｖ１２の速度範囲）している。つまり、各境界速度の間隔は、不等間隔である。これにより、各速度範囲内では、合成摩擦特性が直線状となり、各速度範囲内において線形特性とみなすことができる（以下の速度が負の場合も同様）。なお、速度＝０（ゼロ）の場合については、合成摩擦特性の値を特定できないので、境界速度Ｖ１１（＞０）は、０（ゼロ）ではないが、０（ゼロ）に近い値に設定されている。
【００６１】
速度が負（＜０）の領域についても同様に、非線形特性とみなされる速度−Ｖ１ｎ以上かつ速度＜０の領域である限定速度範囲を、部分的に線形特性とみなすことが可能な速度範囲毎の領域に分割する。例えば図４の例では、速度（−Ｖ０５）〜速度（Ｖ−０４）の領域、速度（−Ｖ０４）〜速度（−Ｖ０３）の領域、速度（−Ｖ０３）〜速度（−Ｖ０２）の領域等に分割する。各領域の速度範囲内では、合成摩擦特性は直線状であり、線形特性とみなすことができる。この各領域の速度範囲の境界となる各速度を、境界速度−Ｖ０１〜−Ｖ０ｎとして設定する。そして、線形特性とみなすことができる速度領域と、非線形特性とみなされる速度領域と、の境界となる負の側の境界速度−Ｖ０ｎを所定負速度−Ｖ０ｎとする。従って、速度が負の領域については、非線形特性とみなされる所定負速度以上の領域である限定速度範囲において、負の側のそれぞれの境界速度（−Ｖ０１〜−Ｖ０ｎ）が設定されている。なお、速度＝０（ゼロ）の場合については、合成摩擦特性の値を特定できないので、境界速度−Ｖ０１（＜０）は、０（ゼロ）ではないが、０（ゼロ）に近い値に設定されている。次に図５〜図８を用いて、速度側正負速度発火部２４Ｅ及び速度側境界速度発火部２４Ｆの動作について説明する。
【００６２】
●［速度側正負速度発火部２４Ｅと速度側境界速度発火部２４Ｆの動作（図５〜図８）］
図５は、上位指令速度Ｖｖ＞０かつＶ１１＜上位指令速度Ｖｖ＜Ｖ１２の場合の例を示している。そして図５の上段の例に示すように、横軸が速度（上位指令速度、境界速度）、縦軸が速度側境界速度出力値となる座標を用意し、広がり幅Ｎｗの速度方向の幅を有する所定の分布関数Ｎ（例えば正規分布関数）を予め設定する。そして、分布関数Ｎの頂部Ｎｃの横軸方向の値が、上位指令速度Ｖｖとなるように分布関数Ｎを配置する。なお、分布関数Ｎは、頂部Ｎｃの縦軸方向の値は１．０である。図５の上段の例では、境界速度Ｖ１１に対する分布関数Ｎの値が０．８であり、境界速度Ｖ１２に対する分布関数Ｎの値が０．６である例を示している。なお、境界速度Ｖ１１、Ｖ１２以外の境界速度については、分布関数Ｎの範囲を外れているので、すべて０（ゼロ）である。なお、図５の上段の図において、境界速度−Ｖ０１は分布関数Ｎの範囲内にあるように見える。しかし、図５の例は上位指令速度Ｖｖ＞０の場合であるので、上位指令速度Ｖｖ＜０の場合の境界速度−Ｖ０１〜−Ｖ０ｎを、上位指令速度Ｖｖ＞０の場合の分布関数の範囲外とみなし、すべて０（ゼロ）とみなす。
【００６３】
図５の例の場合、上位指令速度Ｖｖ＞０であるので、速度側正負速度発火部２４Ｅは、速度側正速度入力部Ｋ［２］に対応しているＶｖ（＞０）が発火して上位指令速度Ｖｖを出力する。従って、速度側正速度入力部Ｋ［２］には、速度側正速度入力値として上位指令速度Ｖｖが入力され、速度側正速度入力部Ｋ［２］は、入力された速度側正速度入力値を、速度側正速度出力として出力する。なお図５の例において、速度側正負速度発火部２４Ｅにおける速度側負速度入力部Ｋ［３］に対応しているＶｖ（＜０）は発火しない。従って、速度側負速度入力部Ｋ［３］には、何も入力されず、速度側負速度入力部Ｋ［３］は何も出力しない。
【００６４】
また図５の例の場合、速度側境界速度発火部２４Ｆは、速度側境界速度入力部Ｋ［ｊ＋１］、Ｋ［ｊ＋２］に対応している境界速度Ｖ１１、Ｖ１２が発火する。つまり、図５の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｖとの速度差と分布関数Ｎとに基づいた速度側境界速度出力値が出力される。図５の例では、速度側境界速度発火部２４Ｆにおいて、発火した境界速度Ｖ１１から０．８が出力され、発火した境界速度Ｖ１２から０．６が出力される。従って、速度側境界速度入力部Ｋ［ｊ＋１］には０．８が入力され、速度側境界速度入力部Ｋ［ｊ＋１］は入力された速度側境界速度出力値（この場合、０．８）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ＋２］には０．６が入力され、速度側境界速度入力部Ｋ［ｊ＋２］は入力された速度側境界速度出力値（この場合、０．６）を速度側境界速度出力として出力する。なお図５の例において、速度側境界速度発火部２４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０１、Ｖ１３、Ｖ１４、Ｖ１５、Ｖ１ｎは発火しないので、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ］、Ｋ［ｊ＋３］、Ｋ［ｊ＋４］、Ｋ［ｊ＋５］、Ｋ［ｊ＋ｎ］には、何も入力されず、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ］、Ｋ［ｊ＋３］、Ｋ［ｊ＋４］、Ｋ［ｊ＋５］、Ｋ［ｊ＋ｎ］は何も出力しない。なお、各境界速度は、等間隔でなく不等間隔で並んでいるので、図５及び図６に示すように、上位指令速度Ｖｖの値に応じて、発火する境界速度の数が変わる。
【００６５】
図６は、上位指令速度Ｖｖ＞０かつＶ１２＜上位指令速度Ｖｖ＜Ｖ１３の場合の例を示している。そして図６の上段の例に示すように、（図５と同様に）横軸が速度（上位指令速度、境界速度）、縦軸が速度側境界速度出力値となる座標を用意し、広がり幅Ｎｗの速度方向の幅を有する所定の分布関数Ｎ（例えば正規分布関数）を予め設定する。そして、分布関数Ｎの頂部Ｎｃの横軸方向の値が、上位指令速度Ｖｖとなるように分布関数Ｎを配置する。なお、分布関数Ｎは、頂部Ｎｃの縦軸方向の値は１．０である。図６の上段の例では、境界速度Ｖ１２に対する分布関数Ｎの値が０．１であり、境界速度Ｖ１３に対する分布関数Ｎの値が０．９であり、境界速度Ｖ１４に対する分布関数Ｎの値が０．３である例を示している。なお、境界速度Ｖ１２、Ｖ１３、Ｖ１４以外の境界速度については、分布関数Ｎの範囲を外れているので、すべて０（ゼロ）である。なお、上位指令速度Ｖｖ＞０の場合であるので、上位指令速度Ｖｖ＜０の場合の境界速度−Ｖ０１〜−Ｖ０ｎは、すべて０（ゼロ）である。図５及び図６に示したように、上位指令速度Ｖｖと境界速度との速度差が大きいと、その境界速度に対する分布関数Ｎの値が小さくなる。逆に、上位指令速度Ｖｖと境界速度との速度差が小さいと、その境界速度に対する分布関数Ｎの値が大きくなる。隣り合う境界速度のそれぞれに対する分布関数Ｎの値が同じ値の場合は、上位指令速度Ｖｖが、隣り合う境界速度の中央となる値であることを意味している。
【００６６】
図６の例の場合、上位指令速度Ｖｖ＞０であるので、速度側正負速度発火部２４Ｅは、速度側正速度入力部Ｋ［２］に対応しているＶｖ（＞０）が発火して上位指令速度Ｖｖを出力する。従って、速度側正速度入力部Ｋ［２］には、速度側正速度入力値として上位指令速度Ｖｖが入力され、速度側正速度入力部Ｋ［２］は、入力された速度側正速度入力値を、速度側正速度出力として出力する。なお図６の例において、速度側正負速度発火部２４Ｅにおける速度側負速度入力部Ｋ［３］に対応しているＶｖ（＜０）は発火しない。従って、速度側負速度入力部Ｋ［３］には、何も入力されず、速度側負速度入力部Ｋ［３］は何も出力しない。
【００６７】
また図６の例の場合、速度側境界速度発火部２４Ｆは、速度側境界速度入力部Ｋ［ｊ＋２］、Ｋ［ｊ＋３］、Ｋ［ｊ＋４］に対応している境界速度Ｖ１２、Ｖ１３、Ｖ１４が発火する。つまり、図６の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｖとの速度差、すなわち分布関数Ｎに基づいた速度側境界速度出力値が出力される。図６の例では、速度側境界速度発火部２４Ｆにおいて、発火した境界速度Ｖ１２から０．１が出力され、発火した境界速度Ｖ１３から０．９が出力され、発火した境界速度Ｖ１４から０．３が出力される。従って、速度側境界速度入力部Ｋ［ｊ＋２］には０．１が入力され、速度側境界速度入力部Ｋ［ｊ＋２］は入力された速度側境界速度出力値（この場合、０．１）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ＋３］には０．９が入力され、速度側境界速度入力部Ｋ［ｊ＋３］は入力された速度側境界速度出力値（この場合、０．９）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ＋４］には０．３が入力され、速度側境界速度入力部Ｋ［ｊ＋４］は入力された速度側境界速度出力値（この場合、０．３）を速度側境界速度出力として出力する。なお図６の例において、速度側境界速度発火部２４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０１、Ｖ１１、Ｖ１５、Ｖ１ｎは発火しないので、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ］、Ｋ［ｊ＋１］、Ｋ［ｊ＋５］、Ｋ［ｊ＋ｎ］には、何も入力されず、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ］、Ｋ［ｊ＋１］、Ｋ［ｊ＋５］、Ｋ［ｊ＋ｎ］は何も出力しない。
【００６８】
図７は、上位指令速度Ｖｖ＜０かつ−Ｖ０２＜上位指令速度Ｖｖ＜−Ｖ０１の場合の例を示している。そして図５の上段と同様、図７の上段の例に示すように、横軸が速度（上位指令速度）、縦軸が速度側境界速度出力値となる座標を用意し、広がり幅Ｎｗの速度方向の幅を有する所定の分布関数Ｎ（例えば正規分布関数）を予め設定する。ただし、上位指令速度Ｖｖ＜０であるので、分布関数Ｎを下方に向かって凸となるように配置する。そして、分布関数Ｎの頂部Ｎｃの横軸方向の値が、上位指令速度Ｖｖとなるように分布関数Ｎを配置する。なお、分布関数Ｎは、頂部Ｎｃの縦軸方向の値は−１．０である。図７の上段の例では、境界速度−Ｖ０２に対する分布関数Ｎの値が−０．７であり、境界速度−Ｖ０１に対する分布関数Ｎの値が−０．５である例を示している。なお、境界速度−Ｖ０２、−Ｖ０１以外の境界速度については、分布関数Ｎの範囲を外れているので、すべて０（ゼロ）である。なお、図７の上段の図において、境界速度Ｖ１１は分布関数Ｎの範囲内にあるように見える。しかし、図７の例は上位指令速度Ｖｖ＜０の場合であるので、上位指令速度Ｖｖ＞０の場合の境界速度Ｖ１１〜Ｖ１ｎを、上位指令速度Ｖｖ＜０の場合の分布関数の範囲外とみなし、すべて０（ゼロ）とみなす。
【００６９】
図７の例の場合、上位指令速度Ｖｖ＜０であるので、速度側正負速度発火部２４Ｅは、速度側負速度入力部Ｋ［３］に対応しているＶｖ（＜０）が発火して上位指令速度Ｖｖを出力する。従って、速度側負速度入力部Ｋ［３］には、速度側負速度入力値として上位指令速度Ｖｖが入力され、速度側負速度入力部Ｋ［３］は、入力された速度側負速度入力値を、速度側負速度出力として出力する。なお図７の例において、速度側正負速度発火部２４Ｅにおける速度側正速度入力部Ｋ［２］に対応しているＶｖ（＞０）は発火しない。従って、速度側正速度入力部Ｋ［２］には、何も入力されず、速度側正速度入力部Ｋ［２］は何も出力しない。
【００７０】
また図７の例の場合、速度側境界速度発火部２４Ｆは、速度側境界速度入力部Ｋ［ｊ−１］、Ｋ［ｊ］に対応している境界速度−Ｖ０２、−Ｖ０１が発火する。つまり、図７の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｖとの速度差、すなわち分布関数Ｎに基づいた速度側境界速度出力値が出力される。図７の例では、速度側境界速度発火部２４Ｆにおいて、発火した境界速度−Ｖ０２から−０．７が出力され、発火した境界速度−Ｖ０１から−０．５が出力される。従って、速度側境界速度入力部Ｋ［ｊ−１］には−０．７が入力され、速度側境界速度入力部Ｋ［ｊ−１］は入力された速度側境界速度出力値（この場合、−０．７）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ］には−０．５が入力され、速度側境界速度入力部Ｋ［ｊ］は入力された速度側境界速度出力値（この場合、−０．５）を速度側境界速度出力として出力する。なお図７の例において、速度側境界速度発火部２４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０５、−Ｖ０４、−Ｖ０３、Ｖ１１、Ｖ１ｎは発火しないので、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ−４］、Ｋ［ｊ−３］、Ｋ［ｊ−２］、Ｋ［ｊ＋１］、Ｋ［ｊ＋ｎ］には、何も入力されず、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ−４］、Ｋ［ｊ−３］、Ｋ［ｊ−２］、Ｋ［ｊ＋１］、Ｋ［ｊ＋ｎ］は何も出力しない。なお、各境界速度は、等間隔でなく不等間隔で並んでいるので、図７及び図８に示すように、上位指令速度Ｖｖの値に応じて、発火する境界速度の数が変わる。
【００７１】
図８は、上位指令速度Ｖｖ＜０かつ−Ｖ０３＜上位指令速度Ｖｖ＜−Ｖ０２の場合の例を示している。そして図８の上段の例に示すように、（図７と同様に）横軸が速度（上位指令速度、境界速度）、縦軸が速度側境界速度出力値となる座標を用意し、広がり幅Ｎｗの速度方向の幅を有する所定の分布関数Ｎ（例えば正規分布関数）を予め設定する。ただし、上位指令速度Ｖｖ＜０であるので、分布関数Ｎを下方に向かって凸となるように配置する。そして、分布関数Ｎの頂部Ｎｃの横軸方向の値が、上位指令速度Ｖｖとなるように分布関数Ｎを配置する。なお、分布関数Ｎは、頂部Ｎｃの縦軸方向の値は−１．０である。図８の上段の例では、境界速度−Ｖ０４に対する分布関数Ｎの値が−０．１であり、境界速度−Ｖ０３に対する分布関数Ｎの値が−０．７であり、境界速度−Ｖ０２に対する分布関数Ｎの値が−０．３である例を示している。なお、境界速度−Ｖ０４、−Ｖ０３、−Ｖ０２以外の境界速度については、分布関数Ｎの範囲を外れているので、すべて０（ゼロ）である。なお、上位指令速度Ｖｖ＜０の場合であるので、上位指令速度Ｖｖ＞０の場合の境界速度Ｖ１１〜Ｖ１ｎは、すべて０（ゼロ）である。
【００７２】
図８の例の場合、上位指令速度Ｖｖ＜０であるので、速度側正負速度発火部２４Ｅは、速度側負速度入力部Ｋ［３］に対応しているＶｖ（＜０）が発火して上位指令速度Ｖｖを出力する。従って、速度側負速度入力部Ｋ［３］には、速度側負速度入力値として上位指令速度Ｖｖが入力され、速度側負速度入力部Ｋ［３］は、入力された速度側負速度入力値を、速度側負速度出力として出力する。なお図８の例において、速度側正負速度発火部２４Ｅにおける速度側正速度入力部Ｋ［２］に対応しているＶｖ（＞０）は発火しない。従って、速度側正速度入力部Ｋ［２］には、何も入力されず、速度側正速度入力部Ｋ［２］は何も出力しない。
【００７３】
また図８の例の場合、速度側境界速度発火部２４Ｆは、速度側境界速度入力部Ｋ［ｊ−３］、Ｋ［ｊ−２］、Ｋ［ｊ−１］に対応している境界速度−Ｖ０４、−Ｖ０３、−Ｖ０２が発火する。つまり、図８の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｖとの速度差、すなわち分布関数Ｎに基づいた速度側境界速度出力値が出力される。図８の例では、速度側境界速度発火部２４Ｆにおいて、発火した境界速度−Ｖ０４から−０．１が出力され、発火した境界速度−Ｖ０３から−０．７が出力され、発火した境界速度−Ｖ０２から−０．３が出力される。従って、速度側境界速度入力部Ｋ［ｊ−３］には−０．１が入力され、速度側境界速度入力部Ｋ［ｊ−３］は入力された速度側境界速度出力値（この場合、−０．１）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ−２］には−０．７が入力され、速度側境界速度入力部Ｋ［ｊ−２］は入力された速度側境界速度出力値（この場合、−０．７）を速度側境界速度出力として出力する。また速度側境界速度入力部Ｋ［ｊ−１］には−０．３が入力され、速度側境界速度入力部Ｋ［ｊ−１］は入力された速度側境界速度出力値（この場合、−０．３）を速度側境界速度出力として出力する。なお図８の例において、速度側境界速度発火部２４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０５、−Ｖ０１、Ｖ１１、Ｖ１ｎは発火しないので、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ−４］、Ｋ［ｊ］、Ｋ［ｊ＋１］、Ｋ［ｊ＋ｎ］には、何も入力されず、速度側境界速度入力部Ｋ［４］、Ｋ［ｊ−４］、Ｋ［ｊ］、Ｋ［ｊ＋１］、Ｋ［ｊ＋ｎ］は何も出力しない。
【００７４】
●［単純パーセプトロン２４２における入力層２４Ａについて（図３）］
図３に示すように、重み学習機能付きネットワークの単純パーセプトロン２４２における入力層２４Ａは、速度側加速度入力部Ｋ［１］、速度側正速度入力部Ｋ［２］、速度側負速度入力部Ｋ［３］、速度側境界速度入力部Ｋ［４］〜Ｋ［ｊ＋ｎ］、を有している。
【００７５】
速度側加速度入力部Ｋ［１］は、上位指令加速度αｖが入力され、入力された上位指令加速度αｖを、速度側加速度出力として出力する。
【００７６】
速度側正速度入力部Ｋ［２］は、上述したように、速度側正負速度発火部２４ＥのＶｖ（＞０）が発火した場合に、上位指令速度Ｖｖである速度側正速度出力値が入力され、入力された速度側正速度出力値を、速度側正速度出力として出力する。また速度側負速度入力部Ｋ［３］は、上述したように、速度側正負速度発火部２４ＥのＶｖ（＜０）が発火した場合に、上位指令速度Ｖｖである速度側負速度出力値が入力され、入力された速度側負速度出力値を、速度側負速度出力として出力する。
【００７７】
速度側境界速度入力部Ｋ［４］〜Ｋ［ｊ＋ｎ］は、複数の境界速度−Ｖ０ｎ〜Ｖ１ｎに対応させて用意されている。そして速度側境界速度入力部Ｋ［４］〜Ｋ［ｊ＋ｎ］は、上述したように、速度側境界速度発火部２４Ｆにおいて発火した境界速度から速度側境界速度出力値が入力され、入力された速度側境界速度出力値を、速度側境界速度出力として出力する。そして、各入力部Ｋ［１］〜Ｋ［ｊ＋ｎ］から出力される速度側加速度出力、速度側正速度出力、速度側負速度出力、速度側境界速度出力を、まとめて速度側第１出力２４Ｌ１とする。
【００７８】
●［単純パーセプトロン２４２における速度側第１重み学習部２４Ｇについて（図３）］
速度側第１重み学習部２４Ｇは、速度側加速度入力部Ｋ［１］に対応付けられた速度側第１学習重みＵ［１］、速度側正速度入力部Ｋ［２］に対応付けられた速度側第１学習重みＵ［２］、速度側負速度入力部Ｋ［３］に対応付けられた速度側第１学習重みＵ［３］、速度側境界速度入力部Ｋ［４］〜Ｋ［ｊ＋ｎ］のそれぞれに対応付けられた速度側第１学習重みＵ［４］〜Ｕ［ｊ＋ｎ］、を記憶する記憶機能を有している。また、速度側第１重み学習部２４Ｇは、速度偏差２０outに基づいて速度側第１学習重みＵ［１］〜Ｕ［ｊ＋ｎ］を変更（学習）する変更機能を有している。また、速度側第１重み学習部２４Ｇは、入力された速度側第１出力２４Ｌ１のそれぞれに、速度側第１学習重みＵ［１］〜Ｕ［ｊ＋ｎ］のそれぞれを乗算する乗算機能を有している。
【００７９】
速度側第１重み学習部２４Ｇは、速度偏差２０outに応じて、速度側第１学習重みＵ［１］〜Ｕ［ｊ＋ｎ］の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば速度側第１重み学習部２４Ｇは、横軸が速度側第１学習重み、縦軸が速度偏差の２乗となる評価関数を用いて、速度偏差の２乗が小さくなるように、速度側第１学習重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。なお、図５の例に示す上位指令速度Ｖｖが入力された場合、速度側第１重み学習部２４Ｇは、出力された速度側第１出力２４Ｌ１に対応している速度側第１学習重みＵ［１］、Ｕ［２］、Ｕ［ｊ＋２］、Ｕ［ｊ＋３］を学習し、出力されなかった速度側第１出力２４Ｌ１に対応している速度側第１学習重みＵ［３］〜Ｕ［ｊ＋１］、Ｕ［ｊ＋４］〜Ｕ［ｊ＋ｎ］については学習しない。
【００８０】
そして速度側第１重み学習部２４Ｇは、入力された速度側第１出力２４Ｌ１のそれぞれに、対応する速度側第１学習重みＵ［１］〜Ｕ［ｊ＋ｎ］を乗算した速度側第１乗算値２４Ｍ１を出力する。例えば、図５の例に示す上位指令速度Ｖｖが入力された場合、速度側第１重み学習部２４Ｇは、αｖ＊Ｕ［１］と、Ｖｖ＊Ｕ［２］と、０．８＊Ｕ［ｊ＋１］と、０．６＊Ｕ［ｊ＋２］を出力する。また例えば図７の例に示す上位指令速度Ｖｖが入力された場合、速度側第１重み学習部２４Ｇは、αｖ＊Ｕ［１］と、Ｖｖ＊Ｕ［３］と、−０．７＊Ｕ［ｊ−１］と、−０．５＊Ｕ［ｊ］を出力する。
【００８１】
●［単純パーセプトロン２４２における出力層２４Ｃについて（図３）］
出力層２４Ｃは、速度側出力部Ｑ［１］を有している。速度側出力部Ｑ［１］は、以下の（１１）〜（１４）の各速度側第１乗算値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令電流２４outとして出力する。なお、速度側出力部Ｑ［１］は、シグモイド関数の利用を省略して第２仮指令電流２４outを出力することも可能である。
（１１）速度側加速度入力部Ｋ［１］から出力された速度側加速度出力（αｖ）に、速度側第１学習重みＵ［１］を乗算した速度側第１乗算値（αｖ＊Ｕ［１］）。
（１２）速度側正速度入力部Ｋ［２］から速度側正速度出力が出力された場合に、速度側正速度出力（Ｖｖ）に、速度側第１学習重みＵ［２］を乗算した速度側第１乗算値（Ｖｖ＊Ｕ［２］）。
（１３）速度側負速度入力部Ｋ［３］から速度側負速度出力が出力された場合に、速度側負速度出力（Ｖｖ）に、速度側第１学習重みＵ［３］を乗算した速度側第１乗算値（Ｖｖ＊Ｕ［３］）。
（１４）速度側境界速度入力部Ｋ［４］〜Ｋ［ｊ＋ｎ］の中から出力された速度側境界速度出力に、対応する速度側第１学習重み（Ｕ［４］〜Ｕ［ｊ＋ｎ］）を乗算した速度側第１乗算値。
【００８２】
●［位置フィードフォワード制御部１４の重み学習機能付きネットワークの構成（図９）］
次に図９を用いて、位置フィードフォワード制御部１４内の重み学習機能付きネットワークについて説明する。速度フィードフォワード制御部２４と同様に、位置フィードフォワード制御部１４は、入力処理部１４１と、単純パーセプトロン１４２と、を有している。入力処理部１４１は、位置側正負速度発火部１４Ｅ、位置側境界速度発火部１４Ｆ、を有している。単純パーセプトロン１４２は、入力層１４Ａ、位置側第１重み学習部１４Ｇ、出力層１４Ｃ、を有している。
【００８３】
なお、図９に示す位置フィードフォワード制御部１４に入力される速度（入力速度１２out）は、図２に示すように、ロボット制御装置６０からの指令位置１０inを微分して求めているが、指令位置１０inの微分から求めることなく、種々の位置に関する情報を微分して求めてもよいし、ロボット制御装置６０からの指令速度を用いてもよい。このため、以降では、図９に示す位置フィードフォワード制御部１４に入力される速度を、入力速度１２outではなく、（下位指令速度１５outとは異なる）上位指令速度Ｖｐと記載する。同様に、図９に示す位置フィードフォワード制御部１４に入力される加速度（入力加速度１３out）は、図２に示すように、ロボット制御装置６０からの指令位置１０inを２回微分して求めているが、指令位置１０inの２回微分から求めることなく、種々の位置に関する情報を２回微分して求めてもよいし、ロボット制御装置６０からの指令速度を微分して求めてもよい。このため、以降では、図９に示す位置フィードフォワード制御部１４に入力される加速度を、入力加速度１３outではなく、上位指令加速度αｐと記載する。
【００８４】
●［入力処理部１４１について（図９〜図１１）］
位置側正負速度発火部１４Ｅには、上位指令速度Ｖｐが入力されている。位置側正負速度発火部１４Ｅは、入力された上位指令速度Ｖｐが正（＞０）の場合に、「Ｖｐ（＞０）」の側が発火して「Ｖｐ（＜０）」の側は発火せず、位置側正速度入力部Ｊ［２］へ、位置側正速度出力値（値は上位指令速度Ｖｐの値）を出力する。また位置側正負速度発火部１４Ｅは、入力された上位指令速度Ｖｐが負（＜０）の場合に、「Ｖｐ（＜０）」の側が発火して「Ｖｐ（＞０）」の側は発火せず、位置側負速度入力部Ｊ［３］へ、位置側負速度出力値（値は上位指令速度Ｖｐの値）を出力する。
【００８５】
位置側境界速度発火部１４Ｆには、上位指令速度Ｖｐが入力されている。位置側境界速度発火部１４Ｆは、上位指令速度Ｖｐの速度の範囲に対して限定した限定速度範囲を、予め設定した隣り合う複数の速度範囲毎に分割した際の、速度範囲毎の境界となる速度である複数の境界速度（−Ｖ０ｎ〜Ｖ１ｎ）を有している（図４参照）。そして位置側境界速度発火部１４Ｆは、入力された上位指令速度Ｖｐとの速度差が所定速度差以内の境界速度から、当該速度差に基づいた位置側境界速度出力値を出力する。なお、限定速度範囲、速度範囲、境界速度、速度側境界速度出力値については、すでに図４〜図８を用いて説明した内容と同じであるので、説明を省略する。
【００８６】
図１０の例は、図５の例の上位指令速度Ｖｖを上位指令速度Ｖｐと置き換え、速度側正負速度発火部２４Ｅを位置側正負速度発火部１４Ｅに置き換え、速度側境界速度発火部２４Ｆを位置側境界速度発火部１４Ｆに置き換えたものである。図１０の例では、上位指令速度Ｖｐ＞０であるので、位置側正負速度発火部１４Ｅは、位置側正速度入力部Ｊ［２］に対応しているＶｐ（＞０）が発火して上位指令速度Ｖｐを出力する。従って、位置側正速度入力部Ｊ［２］には、位置側正速度入力値として上位指令速度Ｖｐが入力され、位置側正速度入力部Ｊ［２］は、入力された位置側正速度入力値を、位置側正速度出力として出力する。なお図１０の例において、位置側正負速度発火部１４Ｅにおける位置側負速度入力部Ｊ［３］に対応しているＶｐ（＜０）は発火しない。従って、位置側負速度入力部Ｊ［３］には、何も入力されず、位置側負速度入力部Ｊ［３］は何も出力しない。
【００８７】
また図１０の例では、位置側境界速度発火部１４Ｆは、位置側境界速度入力部Ｊ［ｊ＋１］、Ｊ［ｊ＋２］に対応している境界速度Ｖ１２、Ｖ１３が発火する。つまり、図１０の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｐとの速度差、すなわち分布関数Ｎに基づいた位置側境界速度出力値が出力される。図１０の例では、位置側境界速度発火部１４Ｆにおいて、発火した境界速度Ｖ１１から０．８が出力され、発火した境界速度Ｖ１２から０．６が出力される。従って、位置側境界速度入力部Ｊ［ｊ＋１］には０．８が入力され、位置側境界速度入力部Ｊ［ｊ＋１］は入力された位置側境界速度出力値（この場合、０．８）を位置側境界速度出力として出力する。また位置側境界速度入力部Ｊ［ｊ＋２］には０．６が入力され、位置側境界速度入力部Ｊ［ｊ＋２］は入力された位置側境界速度出力値（この場合、０．６）を位置側境界速度出力として出力する。なお図１０の例において、位置側境界速度発火部１４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０１、Ｖ１３、Ｖ１４、Ｖ１５、Ｖ１ｎは発火しないので、位置側境界速度入力部Ｊ［４］、Ｊ［ｊ］、Ｊ［ｊ＋３］、Ｊ［ｊ＋４］、Ｊ［ｊ＋５］、Ｊ［ｊ＋ｎ］には、何も入力されず、位置側境界速度入力部Ｊ［４］、Ｊ［ｊ］、Ｊ［ｊ＋３］、Ｊ［ｊ＋４］、Ｊ［ｊ＋５］、Ｊ［ｊ＋ｎ］は何も出力しない。なお、各境界速度は、等間隔でなく不等間隔で並んでいるので、上位指令速度Ｖｐの値に応じて、発火する境界速度の数が変わる。
【００８８】
図１１の例は、図７の例の上位指令速度Ｖｖを上位指令速度Ｖｐと置き換え、速度側正負速度発火部２４Ｅを位置側正負速度発火部１４Ｅに置き換え、速度側境界速度発火部２４Ｆを位置側境界速度発火部１４Ｆに置き換えたものである。図１１の例では、上位指令速度Ｖｐ＜０であるので、位置側正負速度発火部１４Ｅは、位置側負速度入力部Ｊ［３］に対応しているＶｐ（＜０）が発火して上位指令速度Ｖｐを出力する。従って、位置側負速度入力部Ｊ［３］には、位置側負速度入力値として上位指令速度Ｖｐが入力され、位置側負速度入力部Ｊ［３］は、入力された位置側負速度入力値を、位置側負速度出力として出力する。なお図１１の例において、位置側正負速度発火部１４Ｅにおける位置側正速度入力部Ｊ［２］に対応しているＶｐ（＞０）は発火しない。従って、位置側正速度入力部Ｊ［２］には、何も入力されず、位置側正速度入力部Ｊ［２］は何も出力しない。
【００８９】
また図１１の例では、位置側境界速度発火部１４Ｆは、位置側境界速度入力部Ｊ［ｊ−１］、Ｊ［ｊ］に対応している境界速度−Ｖ０２、−Ｖ０１が発火する。つまり、図１１の上段の図において、各境界速度と上位指令速度との各速度差が、所定速度差以内（広がり幅Ｎｗ／２以内）の境界速度に対して、境界速度と上位指令速度Ｖｐとの速度差、すなわち分布関数Ｎに基づいた位置側境界速度出力値が出力される。図１１の例では、位置側境界速度発火部１４Ｆにおいて、発火した境界速度−Ｖ０２から−０．７が出力され、発火した境界速度−Ｖ０１から−０．５が出力される。従って、位置側境界速度入力部Ｊ［ｊ−１］には−０．７が入力され、位置側境界速度入力部Ｊ［ｊ−１］は入力された位置側境界速度出力値（この場合、−０．７）を位置側境界速度出力として出力する。また位置側境界速度入力部Ｊ［ｊ］には−０．５が入力され、位置側境界速度入力部Ｊ［ｊ］は入力された位置側境界速度出力値（この場合、−０．５）を位置側境界速度出力として出力する。なお図１１の例において、位置側境界速度発火部１４Ｆにおける境界速度−Ｖ０ｎ、−Ｖ０５、−Ｖ０４、−Ｖ０３、Ｖ１１、Ｖ１ｎは発火しないので、位置側境界速度入力部Ｊ［４］、Ｊ［ｊ−４］、Ｊ［ｊ−３］、Ｊ［ｊ−２］、Ｊ［ｊ＋１］、Ｊ［ｊ＋ｎ］には、何も入力されず、位置側境界速度入力部Ｊ［４］、Ｊ［ｊ−４］、Ｊ［ｊ−３］、Ｊ［ｊ−２］、Ｊ［ｊ＋１］、Ｊ［ｊ＋ｎ］は何も出力しない。なお、各境界速度は、等間隔でなく不等間隔で並んでいるので、上位指令速度Ｖｐの値に応じて、発火する境界速度の数が変わる。
【００９０】
●［単純パーセプトロン１４２における入力層１４Ａについて（図９）］
図９に示すように、重み学習機能付きネットワークの単純パーセプトロン１４２における入力層１４Ａは、位置側加速度入力部Ｊ［１］、位置側正速度入力部Ｊ［２］、位置側負速度入力部Ｊ［３］、位置側境界速度入力部Ｊ［４］〜Ｊ［ｊ＋ｎ］、を有している。
【００９１】
位置側加速度入力部Ｊ［１］は、上位指令加速度αｐが入力され、入力された上位指令加速度αｐを、位置側加速度出力として出力する。
【００９２】
位置側正速度入力部Ｊ［２］は、上述したように、位置側正負速度発火部１４ＥのＶｐ（＞０）が発火した場合に、上位指令速度Ｖｐである位置側正速度出力値が入力され、入力された位置側正速度出力値を、位置側正速度出力として出力する。また位置側負速度入力部Ｊ［３］は、上述したように、位置側正負速度発火部１４ＥのＶｐ（＜０）が発火した場合に、上位指令速度Ｖｐである位置側負速度出力値が入力され、入力された位置側負速度出力値を、位置側負速度出力として出力する。
【００９３】
位置側境界速度入力部Ｊ［４］〜Ｊ［ｊ＋ｎ］は、複数の境界速度−Ｖ０ｎ〜Ｖ１ｎに対応させて用意されている。そして位置側境界速度入力部Ｊ［４］〜Ｊ［ｊ＋ｎ］は、上述したように、位置側境界速度発火部１４Ｆにおいて発火した境界速度から位置側境界速度出力値が入力され、入力された位置側境界速度出力値を、位置側境界速度出力として出力する。そして、各入力部Ｊ［１］〜Ｊ［ｊ＋ｎ］から出力される位置側加速度出力、位置側正速度出力、位置側負速度出力、位置側境界速度出力を、まとめて位置側第１出力１４Ｌ１とする。
【００９４】
●［単純パーセプトロン１４２における位置側第１重み学習部１４Ｇについて（図９）］
位置側第１重み学習部１４Ｇは、位置側加速度入力部Ｊ［１］に対応付けられた位置側第１学習重みＷ［１］、位置側正速度入力部Ｊ［２］に対応付けられた位置側第１学習重みＷ［２］、位置側負速度入力部Ｊ［３］に対応付けられた位置側第１学習重みＷ［３］、位置側境界速度入力部Ｊ［４］〜Ｊ［ｊ＋ｎ］のそれぞれに対応付けられた位置側第１学習重みＷ［４］〜Ｗ［ｊ＋ｎ］、を記憶する記憶機能を有している。また、位置側第１重み学習部１４Ｇは、位置偏差１０outに基づいて位置側第１学習重みＷ［１］〜Ｗ［ｊ＋ｎ］を変更（学習）する変更機能を有している。また、位置側第１重み学習部１４Ｇは、入力された位置側第１出力１４Ｌ１のそれぞれに、位置側第１学習重みＷ［１］〜Ｗ［ｊ＋ｎ］のそれぞれを乗算する乗算機能を有している。
【００９５】
位置側第１重み学習部１４Ｇは、位置偏差１０outに応じて、位置側第１学習重みＷ［１］〜Ｗ［ｊ＋ｎ］の各値が、所定の評価関数に対して最適値に近づくように変更（学習）する。例えば位置側第１重み学習部１４Ｇは、横軸が位置側第１学習重み、縦軸が位置偏差の２乗となる評価関数を用いて、位置偏差の２乗が小さくなるように、位置側第１学習重みの値を変更（学習）する。なお評価関数は、重み毎に用意されている。なお、図１０の例に示す上位指令速度Ｖｐが入力された場合、位置側第１重み学習部１４Ｇは、出力された位置側第１出力１４Ｌ１に対応している位置側第１学習重みＷ［１］、Ｗ［２］、Ｗ［ｊ＋２］、Ｗ［ｊ＋３］を学習し、出力されなかった位置側第１出力１４Ｌ１に対応している位置側第１学習重みＷ［３］〜Ｗ［ｊ＋１］、Ｗ［ｊ＋４］〜Ｗ［ｊ＋ｎ］については学習しない。
【００９６】
そして位置側第１重み学習部１４Ｇは、入力された位置側第１出力１４Ｌ１のそれぞれに、対応する位置側第１学習重みＷ［１］〜Ｗ［ｊ＋ｎ］を乗算した位置側第１乗算値１４Ｍ１を出力する。例えば、図１０の例に示す上位指令速度Ｖｐが入力された場合、位置側第１重み学習部１４Ｇは、αｐ＊Ｗ［１］と、Ｖｐ＊Ｗ［２］と、０．８＊Ｗ［ｊ＋１］と、０．６＊Ｗ［ｊ＋２］を出力する。また例えば図１１の例に示す上位指令速度Ｖｐが入力された場合、位置側第１重み学習部１４Ｇは、αｐ＊Ｗ［１］と、Ｖｐ＊Ｗ［３］と、−０．７＊Ｗ［ｊ−１］と、−０．５＊Ｗ［ｊ］を出力する。
【００９７】
●［単純パーセプトロン２４２における出力層１４Ｃについて（図９）］
出力層１４Ｃは、位置側出力部Ｐ［１］を有している。位置側出力部Ｐ［１］は、以下の（１１）〜（１４）の各位置側第１乗算値を加算した値を、所定の関数（例えばシグモイド関数）で変換し、変換した値を第２仮指令速度１４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    入力速度（速度側速度）
２３      速度側入力加速度演算部
２３out    入力加速度（速度側加速度）
２４      速度フィードフォワード制御部
２４out    第２仮指令電流
２４１    入力処理部
２４２、２４２Ａ    単純パーセプトロン
２４３    ニューラルネットワーク
２４Ａ、２４ＡＡ    入力層
２４Ｂ    中間層
２４Ｃ    出力層
２４Ｅ    速度側正負速度発火部
２４Ｆ    速度側境界速度発火部
２４Ｇ    速度側第１重み学習部
２４Ｈ    速度側第２重み学習部
２４Ｌ１  速度側第１出力
２４Ｌ２  速度側第２出力
２４Ｍ１  速度側第１乗算値
２４Ｍ２  速度側第２乗算値
２５      電流加算演算部
２５out    指令電流
２７out    実位置
２８      実速度演算部
２８out    実速度
３０      電流偏差演算部
３０out    電流偏差
３１      電流フィードバック制御部
３１out    駆動電流
６０      ロボット制御装置
９０      ロボット
９１Ｕ〜９４Ｕ    モータ制御装置
９２Ｍ    電動モータ
９２Ｅ    エンコーダ（位置検出手段（角度検出手段））
Ｈ［１］    速度側加速度入力部
Ｈ［２］    速度側速度入力部
Ｈ［４］〜Ｈ［ｊ＋（ｎ−１）］    速度側境界速度入力部
Ｊ［１］    位置側加速度入力部
Ｊ［２］    位置側正速度入力部
Ｊ［３］    位置側負速度入力部
Ｊ［４］〜Ｊ［ｊ＋ｎ］    位置側境界速度入力部
Ｋ［１］    速度側加速度入力部
Ｋ［２］    速度側正速度入力部
Ｋ［３］    速度側負速度入力部
Ｋ［４］〜Ｋ［ｊ＋ｎ］    速度側境界速度入力部
Ｍ［１］〜Ｍ［３］    位置側演算部
Ｎ［１］〜Ｎ［３］    速度側演算部
Ｎ        分布関数
Ｕ［１］、Ｕ［２］、Ｕ［３］、Ｕ［４］〜Ｕ［ｊ＋ｎ］    速度側第１学習重み
Ｕ［ｓ］［１］、Ｕ［ｓ］［２］、Ｕ［ｓ］［３］    速度側第１学習重み
Ｗ［１］、Ｗ［２］、Ｗ［３］、Ｗ［４］〜Ｗ［ｊ＋ｎ］    位置側第１学習重み
Ｗ［ｓ］［１］、Ｗ［ｓ］［２］、Ｗ［ｓ］［３］    位置側第１学習重み
Ｘ［１］〜Ｘ［３］    位置側第２学習重み
Ｙ［１］〜Ｙ［３］    速度側第２学習重み
−Ｖ０ｎ、−Ｖ０５、−Ｖ０４、−Ｖ０３、−Ｖ０２、−Ｖ０１    境界速度
Ｖ１１、Ｖ１２、Ｖ１３、Ｖ１４、Ｖ１５、Ｖ１ｎ    境界速度
Ｖｖ、Ｖｐ    上位指令速度
αｖ、αｐ    上位指令加速度
【図１】
0006665610.tif 000002
【図２】
0006665610.tif 000003
【図３】
0006665610.tif 000004
【図４】
0006665610.tif 000005
【図５】
0006665610.tif 000006
【図６】
0006665610.tif 000007
【図７】
0006665610.tif 000008
【図８】
0006665610.tif 000009
【図９】
0006665610.tif 000010
【図１０】
0006665610.tif 000011
【図１１】
0006665610.tif 000012
【図１２】
0006665610.tif 000013
【図１３】
0006665610.tif 000014
【図１４】
0006665610.tif 000015
【図１５】
0006665610.tif 000016
【図１６】
0006665610.tif 000017
【図１７】
0006665610.tif 000018
【図１８】
0006665610.tif 000019
【図１９】
0006665610.tif 000020
【図２０】
0006665610.tif 000021
【図２１】
0006665610.tif 000022
【図２２】
0006665610.tif 000023
【図２３】
0006665610.tif 000024