(58)【調査した分野】(Int.Cl.,DB名)
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第1仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第1仮指令電流を出力する速度フィードバック制御部と、
指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、
前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第2仮指令速度を出力する位置フィードフォワード制御部と、
前記第1仮指令速度と前記第2仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、
複数の前記指令物理量に応じてフィードフォワード制御して第2仮指令電流を出力する速度フィードフォワード制御部と、
前記第1仮指令電流と前記第2仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第1出力として出力する複数の位置側入力部と、
複数の前記位置側入力部のそれぞれから出力される前記位置側第1出力のそれぞれに対する位置側第1重みを、前記位置偏差に応じて変更する第1位置側重み学習部と、
複数の前記位置側入力部からの前記位置側第1出力のそれぞれと、当該位置側第1出力に対応する前記位置側第1重みと、を乗算した複数の第1位置側乗算値を加算して前記第2仮指令速度として出力する位置側出力部と、を有し、
前記速度フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第1出力として出力する複数の速度側入力部と、
複数の前記速度側入力部のそれぞれから出力される前記速度側第1出力のそれぞれに対する速度側第1重みを、前記速度偏差に応じて変更する第1速度側重み学習部と、
複数の前記速度側入力部からの前記速度側第1出力のそれぞれと、当該速度側第1出力に対応する前記速度側第1重みと、を乗算した複数の第1速度側乗算値を加算して前記第2仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
制御対象物の位置を移動させる電動モータと、当該電動モータに関する位置を検出する位置検出手段と、を用いて前記制御対象物の位置を制御するモータ制御装置であって、
前記電動モータに対する指令位置と、前記位置検出手段からの検出信号に基づいた実際の位置である実位置と、の偏差である位置偏差を演算する位置偏差演算部と、
前記位置偏差に応じてフィードバック制御して第1仮指令速度を出力する位置フィードバック制御部と、
前記電動モータに対する指令速度と、前記位置検出手段からの検出信号に基づいた実際の速度である実速度と、の偏差である速度偏差を演算する速度偏差演算部と、
前記速度偏差に応じてフィードバック制御して第1仮指令電流を出力する速度フィードバック制御部と、
指令電流に基づいて電動モータへの駆動電流を出力する電流出力部と、
前記電動モータの運動に関する複数の指令物理量に応じてフィードフォワード制御して第2仮指令速度を出力する位置フィードフォワード制御部と、
前記第1仮指令速度と前記第2仮指令速度とを加算して前記指令速度を出力する速度加算演算部と、
複数の前記指令物理量に応じてフィードフォワード制御して第2仮指令電流を出力する速度フィードフォワード制御部と、
前記第1仮指令電流と前記第2仮指令電流とを加算して前記指令電流を出力する電流加算演算部と、を有し、
前記位置フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を位置側第1出力として出力する複数の位置側入力部と、
複数の前記位置側入力部のそれぞれから出力される前記位置側第1出力のそれぞれに対する位置側第1重みを、前記位置偏差に応じて変更する第1位置側重み学習部と、
複数の前記位置側入力部からの前記位置側第1出力のそれぞれと、当該位置側第1出力に対応する前記位置側第1重みと、を乗算した複数の第1位置側乗算値を加算して位置側第2出力として出力する複数の位置側演算部と、
複数の前記位置側演算部のそれぞれから出力される前記位置側第2出力のそれぞれに対する位置側第2重みを、前記位置偏差に応じて変更する第2位置側重み学習部と、
複数の前記位置側演算部からの前記位置側第2出力のそれぞれと、当該位置側第2出力に対応する前記位置側第2重みと、を乗算した複数の第2位置側乗算値を加算して前記第2仮指令速度として出力する位置側出力部と、を有し、
前記速度フィードフォワード制御部は、
前記指令物理量毎に用意され、前記指令物理量が入力され、入力された前記指令物理量を速度側第1出力として出力する複数の速度側入力部と、
複数の前記速度側入力部のそれぞれから出力される前記速度側第1出力のそれぞれに対する速度側第1重みを、前記速度偏差に応じて変更する第1速度側重み学習部と、
複数の前記速度側入力部からの前記速度側第1出力のそれぞれと、当該速度側第1出力に対応する前記速度側第1重みと、を乗算した複数の第1速度側乗算値を加算して速度側第2出力として出力する複数の速度側演算部と、
複数の前記速度側演算部のそれぞれから出力される前記速度側第2出力のそれぞれに対する速度側第2重みを、前記速度偏差に応じて変更する第2速度側重み学習部と、
複数の前記速度側演算部からの前記速度側第2出力のそれぞれと、当該速度側第2出力に対応する前記速度側第2重みと、を乗算した複数の第2速度側乗算値を加算して前記第2仮指令電流として出力する速度側出力部と、を有している、
モータ制御装置。
【発明を実施するための形態】
【0021】
以下、本発明の実施の形態を、図面を用いて順に説明する。なおX軸、Y軸、Z軸が記載されている図では、X軸とY軸とZ軸は互いに直交している。
【0022】
●●[第1の実施の形態(
図1〜
図4)]
第1の実施の形態のモータ制御装置92Uについて、
図1に示すロボットを制御する制御装置を例として説明する。
図1に示すロボットは、ベース91、第1旋回部92、第1揺動部93、第2旋回部94、第2揺動部95等を有している。
【0023】
ベース91には、エンコーダ91E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ91Mが設けられている。電動モータ91Mは、モータ制御装置91Uからの駆動電流に基づいて、ベース91に対して第1旋回部92を旋回させる。またモータ制御装置91Uは、エンコーダ91Eからの検出信号に基づいて、第1旋回部92の旋回角度θ1を検出する。
【0024】
第1旋回部92には、エンコーダ92E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ92Mが設けられている。電動モータ92Mは、モータ制御装置92Uからの駆動電流に基づいて、第1旋回部92に対して第1揺動部93を揺動させる。またモータ制御装置92Uは、エンコーダ92Eからの検出信号に基づいて、第1揺動部93の揺動角度θ2を検出する。
【0025】
第1揺動部93には、エンコーダ93E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ93Mが設けられている。電動モータ93Mは、モータ制御装置93Uからの駆動電流に基づいて、第1揺動部93に対して第2旋回部94を旋回させる。またモータ制御装置93Uは、エンコーダ93Eからの検出信号に基づいて、第2旋回部94の旋回角度θ3を検出する。
【0026】
第2旋回部94には、エンコーダ94E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ94Mが設けられている。電動モータ94Mは、モータ制御装置94Uからの駆動電流に基づいて、第2旋回部94に対して第2揺動部95を揺動させる。またモータ制御装置94Uは、エンコーダ94Eからの検出信号に基づいて、第2揺動部95の揺動角度θ4を検出する。
【0027】
そして、ロボット制御装置60より、モータ制御装置91Uへθ1回りの指令位置が送信され、モータ制御装置92Uへθ2回りの指令位置が送信され、モータ制御装置93Uへθ3回りの指令位置が送信され、モータ制御装置94Uへθ4回りの指令位置が送信されるようになっている。
【0028】
以下、電動モータ92Mを例として、電動モータ92Mを制御するモータ制御装置92Uについて、
図2〜
図4を用いて説明する。なお、電動モータ91M、93M、94Mのそれぞれを制御するモータ制御装置91U、93U、94Uも同様であり、これらについては説明を省略する。
【0029】
●[電動モータ92Mを制御するモータ制御装置92Uの構成(
図2)]
図2に示すように、電動モータ92Mを制御するモータ制御装置92Uは、指令位置10inと実位置27outが入力されて指令速度15outを出力する第1制御部41と、指令速度15outと指令位置10inと実位置27outが入力されて指令電流25outを出力する第2制御部42と、指令電流25outが入力されて電動モータ92Mを駆動する駆動電流31outを出力する電流出力部43と、を有している。なお、指令位置は、この場合、指令角度と同じであり、現在の位置(角度)は、エンコーダ92Eからの検出信号に基づいて検出される。
【0030】
●[第1制御部41の構成(
図2)]
第1制御部41は、位置偏差演算部10、位置フィードバック制御部11、位置側入力速度演算部12、位置側入力加速度演算部13、入力正規化部10S、12S、13S、位置フィードフォワード制御部14、速度加算演算部15等を有している。
【0031】
位置偏差演算部10は、電動モータ92Mに対する指令位置10in(この場合、指令(回転)角度)と、当該電動モータ92Mに関する位置(この場合、電動モータ92Mの出力軸の回転角度)の実際の位置である実位置27out(エンコーダ92Eからの検出信号に基づいた実際の位置)と、が入力され、指令位置10inと実位置27outの偏差である位置偏差10outを演算して出力する。なお、実位置27outは、エンコーダ92Eからの検出信号から求められる。なお、電動モータ92Mと第1揺動部93との間に、減速比aの減速機構が存在する場合は、制御対象物である第1揺動部93の指令位置にa倍した値が、電動モータ92Mの指令位置10inとなる。
【0032】
位置フィードバック制御部11は、位置偏差10outが入力され、入力された位置偏差10outに応じてフィードバック制御して、第1仮指令速度11outを出力する。位置フィードバック制御部11は、いわゆるPID制御である比例項(P)、積分項(I)、微分項(D)、の少なくとも1つを有し、第1仮指令速度11outを出力する。なお、PID制御は既存の制御と同様であるので、詳細な説明は省略する。
【0033】
位置側入力速度演算部12は、指令位置10inが(入力位置(この場合、回転角度)として)入力され、指令位置10inの時間に応じた変化に基づいた速度(この場合、回転角速度)である入力速度12outを出力する。また入力正規化部10Sは、入力された指令位置10inの値を、−1から1の範囲内の値に正規化して出力する。同様に入力正規化部12Sは、入力された入力速度12outの値を−1から1の範囲内の値に正規化して出力する。
【0034】
位置側入力加速度演算部13は、入力速度12outが入力され、入力速度12outの時間に応じた変化に基づいた加速度(この場合、回転角加速度)である入力加速度13outを出力する。また入力正規化部13Sは、入力された入力加速度13outの値を、−1から1の範囲内の値に正規化して出力する。
【0035】
位置フィードフォワード制御部14は、指令位置10in(入力位置)、入力速度12out(指令物理量)、入力加速度13out(指令物理量)、位置偏差10out、が入力され、これらの入力に応じてフィードフォワード制御して、第2仮指令速度14outを出力する。位置フィードフォワード制御部14は、ニューラルネットワークで構成されており、詳細については後述する。
【0036】
速度加算演算部15は、第1仮指令速度11outと第2仮指令速度14outが入力され、第1仮指令速度11outと第2仮指令速度14outを加算した指令速度15out(この場合、指令回転角速度)を出力する。
【0037】
●[第2制御部42の構成(
図2)]
第2制御部42は、速度偏差演算部20、速度フィードバック制御部21、速度側入力速度演算部22、速度側入力加速度演算部23、入力正規化部20S、22S、23S、速度フィードフォワード制御部24、電流加算演算部25、実速度演算部28等を有している。
【0038】
速度偏差演算部20は、指令速度15outと、電動モータ92Mの出力軸の実際の速度(この場合、回転角速度)である実速度28out(エンコーダ92Eからの検出信号に基づいた実際の速度)と、が入力され、指令速度15outと実速度28outの偏差である速度偏差20outを演算して出力する。なお、実速度28outは、実速度演算部28によって、エンコーダ92Eからの検出信号に応じた実位置27out(この場合、実回転角)の時間に応じた変化から求められる。実速度演算部28は、実位置27outが入力され、実速度28outを出力する。
【0039】
速度フィードバック制御部21は、速度偏差20outが入力され、入力された速度偏差20outに応じてフィードバック制御して、第1仮指令電流21outを出力する。速度フィードバック制御部21は、いわゆるPID制御である比例項(P)、積分項(I)、微分項(D)、の少なくとも1つを有し、第1仮指令電流21outを出力する。なお、PID制御は既存の制御と同様であるので、詳細な説明は省略する。
【0040】
速度側入力速度演算部22は、指令位置10inが(入力位置(この場合、回転角度)として)入力され、指令位置10inの時間に応じた変化に基づいた速度(この場合、回転角速度)である入力速度22outを出力する。また入力正規化部20Sは、入力された指令位置10inの値を、−1から1の範囲内の値に正規化して出力する。同様に入力正規化部22Sは、入力された入力速度22outの値を−1から1の範囲内の値に正規化して出力する。
【0041】
速度側入力加速度演算部23は、入力速度22outが入力され、入力速度22outの時間に応じた変化に基づいた加速度(この場合、回転角加速度)である入力加速度23outを出力する。また入力正規化部23Sは、入力された入力加速度23outの値を、−1から1の範囲内の値に正規化して出力する。
【0042】
速度フィードフォワード制御部24は、指令位置10in(入力位置)、入力速度22out(指令物理量)、入力加速度23out(指令物理量)、速度偏差20out、が入力され、これらの入力に応じてフィードフォワード制御して、第2仮指令電流24outを出力する。速度フィードフォワード制御部24は、ニューラルネットワークで構成されており、詳細については後述する。
【0043】
電流加算演算部25は、第1仮指令電流21outと第2仮指令電流24outが入力され、第1仮指令電流21outと第2仮指令電流24outを加算した指令電流25outを出力する。
【0044】
●[電流出力部43の構成(
図2)]
電流出力部43は、電流偏差演算部30、電流フィードバック制御部31等を有している。
【0045】
電流偏差演算部30は、指令電流25outと、実際に出力している電流である駆動電流31out(実電流)と、が入力され、指令電流25outと駆動電流31out(実電流)の偏差である電流偏差30outを演算して出力する。
【0046】
電流フィードバック制御部31は、電流偏差30outが入力され、入力された電流偏差30outに応じてフィードバック制御して、電動モータ92Mを駆動する駆動電流31outを出力する。電流フィードバック制御部31は、いわゆるPID制御である比例項(P)、積分項(I)、微分項(D)、の少なくとも1つを有し、駆動電流31outを出力する。なお、PID制御は既存の制御と同様であるので、詳細な説明は省略する。
【0047】
●[位置フィードフォワード制御部14のニューラルネットワークの構成(
図3)]
次に
図3を用いて、位置フィードフォワード制御部14内のニューラルネットワークについて説明する。位置フィードフォワード制御部14は、入力層14A、中間層14B、出力層14C、第1位置側重み学習部14D、第2位置側重み学習部14F、を有している。
【0048】
ニューラルネットワークにおける入力層14Aは、複数の位置側入力部J[1]〜J[3]を有している。位置側入力部J[1]には、入力正規化部10Sによって、指令位置10inが−1から1の範囲内の値に正規化された値、が入力される。位置側入力部J[2]には、入力正規化部12Sによって、入力速度12outが−1から1の範囲内の値に正規化された値、が入力される。位置側入力部J[3]には、入力正規化部13Sによって、入力加速度13outが−1から1の範囲内の値に正規化された値、が入力される。以下では、位置側入力部J[1]に入力された指令位置である「入力位置」を「位置θp」と記載する。また位置側入力部J[2]に入力された「入力速度」を「速度Vp」と記載する。また位置側入力部J[3]に入力された「入力加速度」を「加速度αp」と記載する。なお、上記の「位置θp」(指令位置)、「速度Vp」(指令速度)、「加速度αp」(指令加速度)は、指令物理量に相当している。位置側入力部J[1]は、入力された位置θpを、位置側演算部M[1]〜M[3]のそれぞれに向けた位置側第1出力14Aoutとして出力する。また位置側入力部J[2]は、入力された速度Vpを、位置側演算部M[1]〜M[3]のそれぞれに向けた位置側第1出力14Aoutとして出力する。また位置側入力部J[3]は、入力された加速度αpを、位置側演算部M[1]〜M[3]のそれぞれに向けた位置側第1出力14Aoutとして出力する。
【0049】
第1位置側重み学習部14Dは、位置側入力部J[1]〜J[3]のそれぞれから出力された位置θp、速度Vp、加速度αp、のそれぞれに対応する位置側位置重みW11〜W13、位置側速度重みW21〜W23、位置側加速度重みW31〜W33を有している。なお、位置側位置重みW11〜W13、位置側速度重みW21〜W23、位置側加速度重みW31〜W33は、位置側第1重みに相当している。そして第1位置側重み学習部14Dは、位置θpに位置側位置重みW11〜W13を乗算した第1位置側乗算値(θp*W11、θp*W12、θp*W13)を演算し、速度Vpに位置側速度重みW21〜W23を乗算した第1位置側乗算値(Vp*W21、Vp*W22、Vp*W23)を演算し、加速度αpに位置側加速度重みW31〜W33を乗算した第1位置側乗算値(αp*W31、αp*W32、αp*W33)を演算する機能を有している。
【0050】
また、第1位置側重み学習部14Dは、位置偏差10outに応じて、位置側位置重みW11〜W13、位置側速度重みW21〜W23、位置側加速度重みW31〜W33の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第1位置側重み学習部14Dは、横軸が位置側位置重み、縦軸が位置偏差の2乗となる評価関数を用いて、位置偏差の2乗が小さくなるように、位置側位置重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第1位置側重み学習部14Dは、位置側位置重みW11〜W13、位置側速度重みW21〜W23、位置側加速度重みW31〜W33を記憶する記憶機能と、位置偏差に応じて各重みを変更(学習)する変更機能と、入力(位置θp、速度Vp、加速度αp)に重みを乗算する乗算機能と、を有している。
【0051】
ニューラルネットワークにおける中間層14Bは、複数の位置側演算部M[1]〜M[3]を有している。位置側演算部M[1]は、
図3に示すように、第1位置側重み学習部14Dが演算した第1位置側乗算値(=θp*W11)と第1位置側乗算値(=Vp*W21)と第1位置側乗算値(=αp*W31)と、を加算する。位置側演算部M[2]は、上記と同様に、第1位置側重み学習部14Dが演算した第1位置側乗算値(=θp*W12)と第1位置側乗算値(=Vp*W22)と第1位置側乗算値(=αp*W32)と、を加算する。また位置側演算部M[3]も、上記と同様に、第1位置側重み学習部14Dが演算した第1位置側乗算値(=θp*W13)と第1位置側乗算値(=Vp*W23)と第1位置側乗算値(=αp*W33)と、を加算する。また位置側演算部M[1]〜M[3]は、上記の加算した結果である入力のそれぞれをy[1]〜y[3]とした場合、例えばシグモイド関数を用いて、0〜1の値に変換して位置側第2出力として出力する。
【0052】
第2位置側重み学習部14Fは、位置側演算部M[1]〜M[3]からの位置側第2出力14Boutのそれぞれに対応する位置側出力重みX1〜X3を有している。なお、位置側出力重みX1〜X3は、位置側第2重みに相当している。そして第2位置側重み学習部14Fは、位置側演算部M[1]からの出力値(位置側第2出力)に位置側出力重みX1を乗算した第2位置側乗算値を演算し、位置側演算部M[2]からの出力値(位置側第2出力)に位置側出力重みX2を乗算した第2位置側乗算値を演算し、位置側演算部M[3]からの出力値(位置側第2出力)に位置側出力重みX3を乗算した第2位置側乗算値を演算する機能を有している。
【0053】
また、第2位置側重み学習部14Fは、位置偏差10outに応じて、位置側出力重みX1〜X3の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第2位置側重み学習部14Fは、横軸が位置側出力重み、縦軸が位置偏差の2乗となる評価関数を用いて、位置偏差の2乗が小さくなるように、位置側出力重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第2位置側重み学習部14Fは、位置側出力重みX1〜X3を記憶する記憶機能と、位置偏差に応じて各重みを変更(学習)する変更機能と、入力(M[1]〜M[3]のそれぞれからの出力値)に重みを乗算する乗算機能と、を有している。
【0054】
ニューラルネットワークにおける出力層14Cは、位置側出力部P[1]を有している。位置側出力部P[1]は、位置側演算部M[1]〜M[3]による加算結果に基づいた以下の(1)〜(3)が入力され、当該(1)〜(3)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令速度14outとして出力する。
(1)位置側演算部M[1]の加算結果(θp*W11+Vp*W21+αp*W31)がシグモイド関数にて0〜1に変換された変換値[1]に位置側出力重みX1が乗算された第2位置側乗算値(変換値[1]*X1)。
(2)位置側演算部M[2]の加算結果(θp*W12+Vp*W22+αp*W32)がシグモイド関数にて0〜1に変換された変換値[2]に位置側出力重みX2が乗算された第2位置側乗算値(変換値[2]*X2)。
(3)位置側演算部M[3]の加算結果(θp*W13+Vp*W23+αp*W33)がシグモイド関数にて0〜1に変換された変換値[3]に位置側出力重みX3が乗算された第2位置側乗算値(変換値[3]*X3)。
【0055】
●[速度フィードフォワード制御部24のニューラルネットワークの構成(
図4)]
次に
図4を用いて、速度フィードフォワード制御部24内のニューラルネットワークについて説明する。速度フィードフォワード制御部24は、入力層24A、中間層24B、出力層24C、第1速度側重み学習部24D、第2速度側重み学習部24F、を有している。
【0056】
ニューラルネットワークにおける入力層24Aは、複数の速度側入力部K[1]〜K[3]を有している。速度側入力部K[1]〜K[3]には、入力層14Aの位置側入力部J[1]〜J[3]と同様のものが入力され、速度側入力部K[1]には、入力正規化部10Sによって、指令位置10inが−1から1の範囲内の値に正規化された値、が入力される。速度側入力部K[2]には、入力正規化部22Sによって、入力速度22outが−1から1の範囲内の値に正規化された値、が入力される。速度側入力部K[3]には、入力正規化部13Sによって、入力加速度23outが−1から1の範囲内の値に正規化された値、が入力される。以下では、速度側入力部K[1]に入力された指令位置である「入力位置」を「位置θv」と記載する。また速度側入力部K[2]に入力された「入力速度」を「速度Vv」と記載する。また速度側入力部K[3]に入力された「入力加速度」を「加速度αv」と記載する。速度フィードフォワード制御部24の入力層24Aに、電動モータへの指令速度15out(
図2参照)からでなく、指令位置10in(
図2参照)から入力を行っている点が、本願における特徴の1つである。なお、上記の「位置θv」(指令位置)、「速度Vv」(指令速度)、「加速度αv」(指令加速度)は、指令物理量に相当している。速度側入力部K[1]は、入力された位置θvを、速度側演算部N[1]〜N[3]のそれぞれに向けた速度側第1出力24Aoutとして出力する。また速度側入力部K[2]は、入力された速度Vvを、速度側演算部N[1]〜N[3]のそれぞれに向けた速度側第1出力24Aoutとして出力する。また速度側入力部K[3]は、入力された加速度αvを、速度側演算部N[1]〜N[3]のそれぞれに向けた速度側第1出力24Aoutとして出力する。
【0057】
第1速度側重み学習部24Dは、第1位置側重み学習部14Dと同様に、速度側入力部K[1]〜K[3]のそれぞれから出力された位置θv、速度Vv、加速度αv、のそれぞれに対応する速度側位置重みU11〜U13、速度側速度重みU21〜U23、速度側加速度重みU31〜U33を有している。なお、速度側位置重みU11〜U13、速度側速度重みU21〜U23、速度側加速度重みU31〜U33は、速度側第1重みに相当している。そして第1速度側重み学習部24Dは、位置θvに速度側位置重みU11〜U13を乗算した第1速度側乗算値(θv*U11、θv*U12、θv*U13)を演算し、速度Vvに速度側速度重みU21〜U23を乗算した第1速度側乗算値(Vv*U21、Vv*U22、Vv*U23)を演算し、加速度αvに速度側加速度重みU31〜U33を乗算した第1速度側乗算値(αv*U31、αv*U32、αv*U33)を演算する機能を有している。
【0058】
また、第1速度側重み学習部24Dは、速度偏差20outに応じて、速度側位置重みU11〜U13、速度側速度重みU21〜U23、速度側加速度重みU31〜U33の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第1速度側重み学習部24Dは、横軸が速度側位置重み、縦軸が速度偏差の2乗となる評価関数を用いて、速度偏差の2乗が小さくなるように、速度側位置重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第1速度側重み学習部24Dは、速度側位置重みU11〜U13、速度側速度重みU21〜U23、速度側加速度重みU31〜U33を記憶する記憶機能と、速度偏差に応じて各重みを変更(学習)する変更機能と、入力(位置θv、速度Vv、加速度αv)に重みを乗算する乗算機能と、を有している。
【0059】
ニューラルネットワークにおける中間層24Bは、中間層14Bと同様に、複数の速度側演算部N[1]〜N[3]を有している。速度側演算部N[1]は、
図4に示すように、第1速度側重み学習部24Dが演算した第1速度側乗算値(=θv*U11)と第1速度側乗算値(=Vv*U21)と第1速度側乗算値(=αv*U31)と、を加算する。速度側演算部N[2]は、上記と同様に、第1速度側重み学習部24Dが演算した第1速度側乗算値(=θv*U12)と第1速度側乗算値(=Vv*U22)と第1速度側乗算値(=αv*U32)と、を加算する。また速度側演算部N[3]も、上記と同様に、第1速度側重み学習部24Dが演算した第1速度側乗算値(=θv*U13)と第1速度側乗算値(=Vv*U23)と第1速度側乗算値(=αv*U33)と、を加算する。また速度側演算部N[1]〜N[3]は、上記の加算した結果である入力のそれぞれをy[1]〜y[3]とした場合、例えばシグモイド関数を用いて、0〜1の値に変換して速度側第2出力として出力する。
【0060】
第2速度側重み学習部24Fは、速度側演算部N[1]〜N[3]からの速度側第2出力24Boutのそれぞれに対応する速度側出力重みY1〜Y3を有している。なお、速度側出力重みY1〜Y3は、速度側第2重みに相当している。そして第2速度側重み学習部24Fは、速度側演算部N[1]からの出力値(速度側第2出力)に速度側出力重みY1を乗算した第2速度側乗算値を演算し、速度側演算部N[2]からの出力値(速度側第2出力)に速度側出力重みY2を乗算した第2速度側乗算値を演算し、速度側演算部N[3]からの出力値(速度側第2出力)に速度側出力重みY3を乗算した第2速度側乗算値を演算する機能を有している。
【0061】
また、第2速度側重み学習部24Fは、速度偏差20outに応じて、速度側出力重みY1〜Y3の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第2速度側重み学習部24Fは、横軸が速度側出力重み、縦軸が速度偏差の2乗となる評価関数を用いて、速度偏差の2乗が小さくなるように、速度側出力重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第2速度側重み学習部24Fは、速度側出力重みY1〜Y3を記憶する記憶機能と、速度偏差に応じて各重みを変更(学習)する変更機能と、入力(N[1]〜N[3]のそれぞれからの出力値)に重みを乗算する乗算機能と、を有している。
【0062】
ニューラルネットワークにおける出力層24Cは、速度側出力部Q[1]を有している。速度側出力部Q[1]は、出力層14Cの位置側出力部P[1]と同様に、速度側演算部N[1]〜N[3]による加算結果に基づいた以下の(1)〜(3)が入力され、当該(1)〜(3)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令電流24outとして出力する。
(1)速度側演算部N[1]の加算結果(θv*U11+Vv*U21+αv*U31)がシグモイド関数にて0〜1に変換された変換値[1]に速度側出力重みY1が乗算された第2速度側乗算値(変換値[1]*Y1)。
(2)速度側演算部N[2]の加算結果(θv*U12+Vv*U22+αv*U32)がシグモイド関数にて0〜1に変換された変換値[2]に速度側出力重みY2が乗算された第2速度側乗算値(変換値[2]*Y2)。
(3)速度側演算部N[3]の加算結果(θv*U13+Vv*U23+αv*U33)がシグモイド関数にて0〜1に変換された変換値[3]に速度側出力重みY3が乗算された第2速度側乗算値(変換値[3]*Y3)。
【0063】
以上、第1の実施の形態では、速度フィードフォワード制御部24の入力層24Aに、電動モータ92Mへの指令速度でなく、電動モータ92Mへの指令位置と、当該指令位置の変化に基づいた指令物理量(入力速度、入力加速度)と、を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部14の入力層14Aに、電動モータ92Mへの指令位置と、当該指令位置の変化に基づいた指令物理量(入力速度、入力加速度)と、を入力することで、位置偏差を低減している。さらに、位置フィードフォワード制御部14の第1位置側重み学習部14D及び第2位置側重み学習部14Fでは「位置偏差」に応じて学習し、速度フィードフォワード制御部24の第1速度側重み学習部24D及び第2速度側重み学習部24Fでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。
【0064】
●●[第2の実施の形態(
図5〜
図8)]
次に、第2の実施の形態のモータ制御装置82Uについて、
図5に示す工作機械を制御する制御装置を例として説明する。
図5に示す工作機械は、ベッド71、主軸テーブル72、砥石台82等を有している。なお、
図5中においてX軸とY軸とZ軸は互いに直交しており、ワークWの回転軸線JXはX軸と平行であり、主軸テーブル72は、ベッド71に対してX軸方向に往復移動可能であり、砥石台80は、ベッド71に対してワークWの回転軸線JXに直交するZ軸方向に往復移動可能である。
【0065】
ベッド71には、エンコーダ72E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ72Mが設けられている。電動モータ72Mは、モータ制御装置72Uからの駆動電流に基づいて、ベッド71に対して主軸テーブル72をX軸方向に沿って往復移動させる。またモータ制御装置72Uは、エンコーダ72Eからの検出信号に基づいて、主軸テーブル72のX軸方向における位置を検出する。主軸テーブル72がX軸方向に移動すると、X軸方向においてワークWに対する砥石84の相対的な位置が変わる。
【0066】
主軸テーブル72には、主軸73とチャック73Cと電動モータ73Mを有する主軸台73Dと、センタ74を有する心押台74Dと、が設けられている。円筒状のワークWは、チャック73Cとセンタ74とで挟持され、主軸73によって、X軸に平行なワーク回転軸線JX回りに回転される。電動モータ73Mは、モータ制御装置73Uからの駆動電流に基づいて、主軸73を、ワーク回転軸線JX回りに回転させる。センタ74は、主軸73の方向に付勢されている。
【0067】
ベッド71には、エンコーダ82E(角度検出手段であり、位置検出手段としても使用できる)を有する電動モータ82Mが設けられている。電動モータ82Mは、モータ制御装置82Uからの駆動電流に基づいて、ベッド71に対して砥石台82をZ軸方向に沿って往復移動させる。またモータ制御装置82Uは、エンコーダ82Eからの検出信号に基づいて、砥石台82のZ軸方向における位置を検出する。砥石台82がZ軸方向に移動すると、Z軸方向においてワークWに対する砥石84の相対的な位置が変わる。
【0068】
砥石台82には、駆動プーリ83Aが取り付けられた電動モータ84Mと、従動プーリ83Cが取り付けられた砥石84とが設けられている。そして駆動プーリ83Aの回転動力は、伝達ベルト83Bにて従動プーリ83Cに伝達され、砥石84を回転駆動する。電動モータ84Mは、モータ制御装置84Uからの駆動電流に基づいて、砥石84を回転させる。
【0069】
そして工作機械制御装置60Bより、主軸テーブル72に対する指令位置となる電動モータ72Mに関する指令位置(回転角)が、モータ制御装置72Uに送信され、砥石台82に対する指令位置となる電動モータ82Mに関する指令位置(回転角)が、モータ制御装置82Uへに送信されるようになっている。なお、モータ制御装置72U、82Uは、本発明のモータ制御装置であり、以下ではモータ制御装置82Uについて説明するが、モータ制御装置73U、84Uは、電流増幅用のモータ制御装置であり、本発明のモータ制御装置ではないため説明を省略する。
【0070】
以下、電動モータ82Mを例として、電動モータ82Mを制御するモータ制御装置82Uについて、
図6〜
図8を用いて説明する。なお、電動モータ72Mを制御するモータ制御装置82Uも同様であり、これらについては説明を省略する。なお、第1の実施の形態(
図1参照)で説明した電動モータ92Mは、最終的に第2揺動部95の先端の3次元空間内における位置を制御する電動モータの1つである。しかし、第2の実施の形態(
図5参照)で説明する電動モータ82Mは、最終的にワークWに対する砥石84の2次元平面(X−Z平面)内における位置を制御する電動モータの1つである。第1の実施の形態(
図1)では、例えば第1揺動部93の回転角度に応じて、電動モータ92Mにかかる重力による力(重力による影響)が変化する。しかし第2の実施の形態(
図5)では、例えば主軸テーブル72の位置が変化しても、電動モータ72Mにかかる重力による力(重力による影響)は変化せず一定である。このため、第2の実施の形態では、第1の実施の形態の制御ブロック(
図2)やニューラルネットワーク(
図3、
図4)を少し簡略化することができる。以下、第1の実施の形態との相違点について主に説明する。
【0071】
●[電動モータ82Mを制御するモータ制御装置82Uの構成(
図6)]
第1の実施の形態である
図2の位置フィードフォワード制御部14には、指令位置10inが入力されていたのが、第2の実施の形態である
図6の位置フィードフォワード制御部14Zには、指令位置が入力されていない。また、
図2の速度フィードフォワード制御部24には、指令位置10inが入力されていたのが、
図6の速度フィードフォワード制御部24Zには、指令位置が入力されていない。この点で、第1の実施の形態と第2の実施の形態が異なる。指令位置が入力されないので、位置フィードフォワード制御部14Zと、速度フィードフォワード制御部24Zの構成も少し異なり、これらについては後述する。また、電動モータの符号とエンコーダの符号も、当然異なる。その他については、
図2に示す第1の実施の形態であるモータ制御装置92Uの制御ブロックと同じであるので、同一符号を付与して説明を省略する。
【0072】
●[位置フィードフォワード制御部14Zのニューラルネットワークの構成(
図7)]
図7に示すように、位置フィードフォワード制御部14Zのニューラルネットワークは、
図3の指令位置10inが省略されているので、
図3の位置側入力部J[1]、位置側演算部M[1]が省略され、
図3の位置側位置重みW11〜W13、位置側速度重みW21、位置側加速度重みW31、位置側出力重みX1が省略されている。
【0073】
位置側演算部M[2]は、第1位置側重み学習部14Dが演算した第1位置側乗算値(=Vp*W22)と第1位置側乗算値(=αp*W32)とを加算する。また位置側演算部M[3]は、第1位置側重み学習部14Dが演算した第1位置側乗算値(=Vp*W23)と第1位置側乗算値(=αp*W33)とを加算する。なお、第1位置側重み学習部14D、及び第2位置側重み学習部14Fの動作は、第1の実施の形態と同様であるので説明を省略する。
【0074】
位置側出力部P[1]は、位置側演算部M[2]、M[3]による加算結果に基づいた以下の(1)、(2)が入力され、当該(1)、(2)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令速度14outとして出力する。
(1)位置側演算部M[2]の加算結果(Vp*W22+αp*W32)がシグモイド関数にて0〜1に変換された変換値[2]に位置側出力重みX2が乗算された第2位置側乗算値(変換値[2]*X2)。
(2)位置側演算部M[3]の加算結果(Vp*W23+αp*W33)がシグモイド関数にて0〜1に変換された変換値[3]に位置側出力重みX3が乗算された第2位置側乗算値(変換値[3]*X3)。
【0075】
●[速度フィードフォワード制御部24Zのニューラルネットワークの構成(
図8)]
図8に示すように、速度フィードフォワード制御部24Zのニューラルネットワークは、
図4の指令位置10inが省略されているので、
図4の速度側入力部K[1]、速度側演算部N[1]が省略され、速度側位置重みU11〜U13、速度側速度重みU21、速度側加速度重みU31、速度側出力重みY1が省略されている。
【0076】
速度側演算部N[2]は、第1速度側重み学習部24Dが演算した第1速度側乗算値(=Vv*U22)と第1速度側乗算値(=αv*U32)とを加算する。また速度側演算部N[3]は、第1速度側重み学習部24Dが演算した第1速度側乗算値(=Vv*U23)と第1速度側乗算値(=αv*U33)とを加算する。なお、第1速度側重み学習部24D、及び第2速度側重み学習部24Fの動作は、第1の実施の形態と同様であるので説明を省略する。
【0077】
速度側出力部Q[1]は、速度側演算部N[2]、N[3]による加算結果に基づいた以下の(1)、(2)が入力され、当該(1)、(2)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令電流24outとして出力する。
(1)速度側演算部N[2]の加算結果(Vv*U22+αv*U32)がシグモイド関数にて0〜1に変換された変換値[2]に速度側出力重みY2が乗算された第2速度側乗算値(変換値[2]*Y2)。
(2)速度側演算部N[3]の加算結果(Vv*U23+αv*U33)がシグモイド関数にて0〜1に変換された変換値[3]に速度側出力重みY3が乗算された第2速度側乗算値(変換値[3]*Y3)。
【0078】
以上、第2の実施の形態では、速度フィードフォワード制御部24Zの入力層24Aに、電動モータ82Mへの指令速度でなく、電動モータ82Mへの指令位置の変化に基づいた指令物理量(入力速度、入力加速度)を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部14Zの入力層14Aに、電動モータ82Mへの指令位置の変化に基づいた指令物理量(入力速度、入力加速度)を入力することで、位置偏差を低減している。さらに、位置フィードフォワード制御部14Zの第1位置側重み学習部14D及び第2位置側重み学習部14Fでは「位置偏差」に応じて学習し、速度フィードフォワード制御部24Zの第1速度側重み学習部24D及び第2速度側重み学習部24Fでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。
【0079】
なお第1の実施の形態のロボットは、例えば第1揺動部93の揺動角度θ2で、電動モータ92Mにかかる重力による力が変化する。このように、位置(角度)に応じて重力の影響が変化する場合では、位置偏差をより低減するために、「入力位置(指令位置10in)」を位置フィードフォワード制御部及び速度フィードフォワード制御部に入力する必要がある。これに対して第2の実施の形態の工作機械では、例えば砥石台82がXZ平面内のどの位置に移動しても電動モータ82Mにかかる重力による力は一定であり変化しない。このように、位置(角度)に応じて重力の影響が変化しない場合では、「入力位置(指令位置10in)」を位置フィードフォワード制御部及び速度フィードフォワード制御部に入力する必要がない。
【0080】
●●[第3の実施の形態(
図9、
図10)]
次に、第3の実施の形態のモータ制御装置について説明する。第3の実施のモータ制御装置の制御ブロックの構成は、
図2に示した第1の実施の形態と同じである。ただし、第1の実施の形態に対して、位置フィードフォワード制御部14及び速度フィードフォワード制御部24の内部の構成が、
図3及び
図4に示す構成から、
図9及び
図10に示す構成に変更されている点が異なり(ニューラルネットワークから重み学習機能付きネットワークに変更)、他については同じである。以下、この変更点について主に説明する。
【0081】
●[位置フィードフォワード制御部14の重み学習機能付きネットワークの構成(
図9)]
図9に示すように、第3の実施の形態の位置フィードフォワード制御部14は、入力層14AA、出力層14CA、第1位置側重み学習部14FA、を有している。
図9に示す第3の実施の形態の位置フィードフォワード制御部14は、入力層14AAと、出力層14CAと、が第1の実施の形態と同様に設けられているが、中間層14B(
図3参照)が省略されており、第1の実施の形態よりも入力層14AAが複雑となっている。
【0082】
重み学習機能付きネットワークにおける入力層14AAは、複数の位置側入力部JA[1]〜JA[6]を有している。位置側入力部JA[1]には、
図3に示す第1の実施の形態の位置側入力部J[1]と同様、入力正規化部10Sによって、指令位置10inが−1から1の範囲内の値に規制された値、が入力される。位置側入力部JA[2]には、
図3に示す第1の実施の形態の位置側入力部J[2]と同様、入力正規化部12Sによって、入力速度12outが−1から1の範囲内の値に正規化された値、が入力される。位置側入力部JA[3]には、
図3に示す第1の実施の形態の位置側入力部J[3]と同様、入力正規化部13Sによって、入力加速度13outが−1から1の範囲内の値に正規化された値、が入力される。以下では、位置側入力部JA[1]に入力された指令位置である「入力位置」を「位置θp」と記載する。また位置側入力部JA[2]に入力された「入力速度」を「速度Vp」と記載する。また位置側入力部JA[3]に入力された「入力加速度」を「加速度αp」と記載する。そして位置側入力部JA[1]は位置θpを出力し、位置側入力部JA[2]は速度Vpを出力し、位置側入力部JA[3]は加速度αpを出力する。なお、上記の「位置θp」(指令位置)、「速度Vp」(指令速度)、「加速度αp」(指令加速度)は、指令物理量に相当している。位置側入力部JA[1]は、入力された位置θpを、位置側出力部PA[1]に向けた位置側第1出力14AAoutとして出力する。また位置側入力部JA[2]は、入力された速度Vpを、位置側出力部PA[1]に向けた位置側第1出力14AAoutとして出力する。また位置側入力部JA[3]は、入力された加速度αpを、位置側出力部PA[1]に向けた位置側第1出力14AAoutとして出力する。
【0083】
位置側入力部JA[4]には、位置θpと速度Vpと加速度αpが入力された入力変換部14A1からの出力、が入力される。入力変換部14A1は、位置θpに乗算する位置側位置用係数a11(第1位置係数に相当する定数)と、速度Vpに乗算する位置側速度用係数b11(第1速度係数に相当する定数)と、加速度αpに乗算する位置側加速度用係数c11(第1加速度係数に相当する定数)と、が設定されている。入力変換部14A1は、位置θpに位置側位置用係数a11を乗算したa11・θp(位置側位置関連量)と、速度Vpに位置側速度用係数b11を乗算したb11・Vp(位置側速度関連量)と、加速度αpに位置側加速度用係数c11を乗算したc11・αp(位置側加速度関連量)と、を加算した、a11・θp+b11・Vp+c11・αp(位置側入力変換量)を出力する。そして位置側入力部JA[4]は、指令物理量として入力されたa11・θp+b11・Vp+c11・αp(位置側入力変換量)を、位置側第1出力として出力する。
【0084】
同様に、位置側入力部JA[5]には、入力変換部14A2からの出力が入力される。入力変換部14A2は、位置側位置用係数a12(第2位置係数に相当する定数)と、位置側速度用係数b12(第2速度係数に相当する定数)と、位置側加速度用係数c12(第2加速度係数に相当する定数)と、が設定されており、a12・θp+b12・Vp+c12・αpを出力する。そして位置側入力部JA[5]は、指令物理量として入力されたa12・θp+b12・Vp+c12・αpを、位置側第1出力として出力する。同様に、位置側入力部JA[6]には、入力変換部14A3からの出力が入力される。入力変換部14A3は、位置側位置用係数a13(第3位置係数に相当する定数)と、位置側速度用係数b13(第3速度係数に相当する定数)と、位置側加速度用係数c13(第3加速度係数に相当する定数)と、が設定されており、a13・θp+b13・Vp+c13・αpを出力する。そして位置側入力部JA[6]は、指令物理量として入力されたa13・θp+b13・Vp+c13・αpを、位置側第1出力として出力する。なお、入力変換部(14A1等)を前段に有するJA[4]〜JA[6]の数は、3個に限定されるものではなく、これよりも多い方が、第1の実施の形態と同等の機能に近づく。
【0085】
第1位置側重み学習部14FAは、位置側入力部JA[1]〜JA[6]のそれぞれに対応する位置側出力重みXA1〜XA6を有している。なお、位置側出力重みXA1〜XA6は、位置側第1重みに相当している。そして第1位置側重み学習部14FAは、JA[1]から出力された位置θpに位置側出力重みXA1を乗算した第1位置側乗算値と、JA[2]から出力された速度Vpに位置側出力重みXA2を乗算した第1位置側乗算値と、JA[3]から出力された加速度αpに位置側出力重みXA3を乗算した第1位置側乗算値と、を演算する。さらに第1位置側重み学習部14FAは、JA[4]から出力された位置側第1出力(a11・θp+b11・Vp+c11・αp)に位置側出力重みXA4を乗算した第1位置側乗算値と、JA[5]から出力された位置側第1出力(a12・θp+b12・Vp+c12・αp)に位置側出力重みXA5を乗算した第1位置側乗算値と、JA[6]から出力された位置側第1出力(a13・θp+b13・Vp+c13・αp)に位置側出力重みXA6を乗算した第1位置側乗算値と、を演算する。そして第1位置側重み学習部14FAは、演算した各第1位置側乗算値を出力層14CAに出力する。
【0086】
また、第1位置側重み学習部14FAは、位置偏差10outに応じて、位置側出力重みXA1〜XA6の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第1位置側重み学習部14FAは、横軸が位置側出力重み、縦軸が位置偏差の2乗となる評価関数を用いて、位置偏差の2乗が小さくなるように、位置側出力重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第1位置側重み学習部14FAは、位置側出力重みXA1〜XA6を記憶する記憶機能と、位置偏差に応じて各重みを変更(学習)する変更機能と、入力(JA[1]〜JA[6]のそれぞれからの出力値)に重みを乗算する乗算機能と、を有している。
【0087】
重み学習機能付きネットワークにおける出力層14CAは、位置側出力部PA[1]を有している。位置側出力部PA[1]は、以下の(1)〜(6)が入力され、当該(1)〜(6)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令速度14outとして出力する。
(1)位置側入力部JA[1]の出力(θp)に位置側出力重みXA1が乗算された第1位置側乗算値(θp*XA1)。
(2)位置側入力部JA[2]の出力(Vp)に位置側出力重みXA2が乗算された第1位置側乗算値(Vp*XA2)。
(3)位置側入力部JA[3]の出力(αp)に位置側出力重みXA3が乗算された第1位置側乗算値(αp*XA3)。
(4)位置側入力部JA[4]の出力(a11・θp+b11・Vp+c11・αp)に位置側出力重みXA4が乗算された第1位置側乗算値[(a11・θp+b11・Vp+c11・αp)*XA4]。
(5)位置側入力部JA[5]の出力(a12・θp+b12・Vp+c12・αp)に位置側出力重みXA5が乗算された第1位置側乗算値[(a12・θp+b12・Vp+c12・αp)*XA5]。
(6)位置側入力部JA[6]の出力(a13・θp+b13・Vp+c13・αp)に位置側出力重みXA6が乗算された第1位置側乗算値[(a13・θp+b13・Vp+c13・αp)*XA6]。
【0088】
●[速度フィードフォワード制御部24の重み学習機能付きネットワークの構成(
図10)]
図10に示すように、第3の実施の形態の速度フィードフォワード制御部24は、入力層24AA、出力層24CA、第1速度側重み学習部24FA、を有している。
図10に示す第3の実施の形態の速度フィードフォワード制御部24は、入力層24AAと、出力層24CAと、が第1の実施の形態と同様に設けられているが、中間層24B(
図4参照)が省略されており、第1の実施の形態よりも入力層24AAが複雑となっている。
【0089】
重み学習機能付きネットワークにおける入力層24AAは、複数の速度側入力部KA[1]〜KA[6]を有している。速度側入力部KA[1]〜KA[6]には、入力層14AAの位置側入力部JA[1]〜JA[6]と同様のものが入力される。速度側入力部KA[1]には、
図4に示す第1の実施の形態の速度側入力部K[1]と同様、入力正規化部20Sによって、指令位置10inが−1から1の範囲内の値に規制された値、が入力される。速度側入力部KA[2]には、
図4に示す第1の実施の形態の速度側入力部K[2]と同様、入力正規化部22Sによって、入力速度22outが−1から1の範囲内の値に正規化された値、が入力される。速度側入力部KA[3]には、
図4に示す第1の実施の形態の速度側入力部K[3]と同様、入力正規化部23Sによって、入力加速度23outが−1から1の範囲内の値に正規化された値、が入力される。以下では、速度側入力部KA[1]に入力された指令位置である「入力位置」を「位置θv」と記載する。また速度側入力部KA[2]に入力された「入力速度」を「速度Vv」と記載する。また速度側入力部KA[3]に入力された「入力加速度」を「加速度αv」と記載する。そして速度側入力部KA[1]は位置θvを出力し、速度側入力部KA[2]は速度Vvを出力し、速度側入力部KA[3]は加速度αvを出力する。なお、上記の「位置θv」(指令位置)、「速度Vv」(指令速度)、「加速度αv」(指令加速度)は、指令物理量に相当している。速度側入力部KA[1]は、入力された位置θvを、速度側出力部QA[1]に向けた速度側第1出力24AAoutとして出力する。また速度側入力部KA[2]は、入力された速度Vvを、速度側出力部QA[1]に向けた速度側第1出力24AAoutとして出力する。また速度側入力部KA[3]は、入力された加速度αvを、速度側出力部QA[1]に向けた速度側第1出力24AAoutとして出力する。
【0090】
速度側入力部KA[4]には、位置θvと速度Vvと加速度αvが入力された入力変換部24A1からの出力、が入力される。入力変換部24A1は、位置θvに乗算する速度側位置用係数a21(第1位置係数に相当する定数)と、速度Vvに乗算する速度側速度用係数b21(第1速度係数に相当する定数)と、加速度αpに乗算する速度側加速度用係数c21(第1加速度係数に相当する定数)と、が設定されている。入力変換部24A1は、位置θvに速度側位置用係数a21を乗算したa21・θv(速度側位置関連量)と、速度Vvに速度側速度用係数b21を乗算したb21・Vv(速度側速度関連量)と、加速度αvに速度側加速度用係数c21を乗算したc21・αp(速度側加速度関連量)と、を加算した、a21・θv+b21・Vv+c21・αv(速度側入力変換量)を出力する。そして速度側入力部KA[4]は、指令物理量として入力されたa21・θv+b21・Vv+c21・αv(速度側入力変換量)を、速度側第1出力として出力する。
【0091】
同様に、速度側入力部KA[5]には、入力変換部24A2からの出力が入力される。入力変換部24A2は、速度側位置用係数a22(第2位置係数に相当する定数)と、速度側速度用係数b22(第2速度係数に相当する定数)と、速度側加速度用係数c22(第2加速度係数に相当する定数)と、が設定されており、a22・θv+b22・Vv+c22・αvを出力する。そして速度側入力部KA[5]は、指令物理量として入力されたa22・θv+b22・Vv+c22・αvを、速度側第1出力として出力する。同様に、速度側入力部KA[6]には、入力変換部24A3からの出力が入力される。入力変換部24A3は、速度側位置用係数a33(第3位置係数に相当する定数)と、速度側速度用係数b33(第3速度係数に相当する定数)と、速度側加速度用係数c33(第3加速度係数に相当する定数)と、が設定されており、a33・θv+b33・Vv+c33・αvを出力する。そして速度側入力部KA[6]は、指令物理量として入力されたa33・θv+b33・Vv+c33・αvを、位置側第1出力として出力する。なお、入力変換部(3F1等)を前段に有するJA[4]〜JA[6]の数は、3個に限定されるものではなく、1個以上の任意の個数であればよい。速度フィードフォワード制御部24の入力層24AAに、電動モータへの指令速度15outからでなく、指令位置10inから入力を行っている点が、本願における特徴の1つである。
【0092】
第1速度側重み学習部24FAは、速度側入力部KA[1]〜KA[6]のそれぞれに対応する速度側出力重みYA1〜YA6を有している。なお、速度側出力重みYA1〜YA6は、速度側第1重みに相当している。そして第1速度側重み学習部24FAは、KA[1]から出力された位置θvに速度側出力重みYA1を乗算した第1速度側乗算値と、KA[2]から出力された速度Vvに速度側出力重みYA2を乗算した第1速度側乗算値と、KA[3]から出力された加速度αvに速度側出力重みYA3を乗算した第1速度側乗算値と、を演算する。さらに第1速度側重み学習部24FAは、KA[4]から出力された速度側第1出力(a21・θv+b21・Vv+c21・αv)に速度側出力重みYA4を乗算した第1速度側乗算値と、KA[5]から出力された速度側第1出力(a22・θv+b22・Vv+c22・αv)に速度側出力重みYA5を乗算した第1速度側乗算値と、KA[6]から出力された速度側第1出力(a33・θv+b33・Vv+c33・αv)に速度側出力重みXA6を乗算した第1速度側乗算値と、を演算する。そして第1速度側重み学習部24FAは、演算した各第1速度側乗算値を出力層24CAに出力する。
【0093】
また、第1速度側重み学習部24FAは、速度偏差20outに応じて、速度側出力重みYA1〜YA6の各値が、所定の評価関数に対して最適値に近づくように変更(学習)する。例えば第1速度側重み学習部24FAは、横軸が速度側出力重み、縦軸が速度偏差の2乗となる評価関数を用いて、速度偏差の2乗が小さくなるように、速度側出力重みの値を変更(学習)する。なお評価関数は、重み毎に用意されている。上記に説明したように、第1速度側重み学習部24FAは、速度側出力重みYA1〜YA6を記憶する記憶機能と、速度偏差に応じて各重みを変更(学習)する変更機能と、入力(KA[1]〜KA[6]のそれぞれからの出力値)に重みを乗算する乗算機能と、を有している。
【0094】
重み学習機能付きネットワークにおける出力層24CAは、速度側出力部QA[1]を有している。速度側出力部QA[1]は、以下の(1)〜(6)が入力され、当該(1)〜(6)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令電流24outとして出力する。
(1)速度側入力部KA[1]の出力(θv)に速度側出力重みYA1が乗算された第1速度側乗算値(θv*YA1)。
(2)速度側入力部KA[2]の出力(Vv)に速度側出力重みYA2が乗算された第1速度側乗算値(Vv*YA2)。
(3)速度側入力部KA[3]の出力(αv)に速度側出力重みYA3が乗算された第1速度側乗算値(αv*YA3)。
(4)速度側入力部KA[4]の出力(a21・θv+b21・Vv+c21・αv)に速度側出力重みYA4が乗算された第1速度側乗算値[(a21・θv+b21・Vv+c21・αv)*YA4]。
(5)速度側入力部KA[5]の出力(a22・θv+b22・Vv+c22・αv)に速度側出力重みYA5が乗算された第1速度側乗算値[(a22・θv+b22・Vv+c22・αv)*YA5]。
(6)速度側入力部KA[6]の出力(a23・θv+b23・Vv+c23・αv)に位置側出力重みYA6が乗算された第1速度側乗算値[(a23・θv+b23・Vv+c23・αv)*YA6]。
【0095】
以上、第3の実施の形態では、速度フィードフォワード制御部24の入力層24AAに、電動モータ92Mへの指令速度でなく、電動モータ92Mへの指令位置と、当該指令位置の変化に基づいた指令物理量(入力速度、入力加速度)と、を入力することで、位置偏差を低減している。また、位置フィードフォワード制御部14の入力層14AAに、電動モータ92Mへの指令位置と、当該指令位置の変化に基づいた指令物理量(入力速度、入力加速度)と、を入力することで、速度偏差を低減している。さらに、位置フィードフォワード制御部14の第1位置側重み学習部14FAでは「位置偏差」に応じて学習し、速度フィードフォワード制御部24の第1速度側重み学習部24FAでは「速度偏差」に応じて学習することで、位置偏差と速度偏差を、より低減することができる。また、第3の実施の形態では、第1の実施の形態に対して、位置フィードフォワード制御部及び速度フィードフォワード制御部を簡素化することができる。
【0096】
●●[第4の実施の形態(
図11、
図12)]
次に、第4の実施の形態のモータ制御装置について説明する。第4の実施のモータ制御装置の制御ブロックの構成は、
図6に示した第2の実施の形態と同じである。ただし、第2の実施の形態に対して、位置フィードフォワード制御部14Z及び速度フィードフォワード制御部24Zの内部の構成が、
図7及び
図8に示す構成から、
図11及び
図12に示す構成に変更されている点が異なり(ニューラルネットワークから重み学習機能付きネットワークに変更)、他については同じである。なお、第4の実施の形態の
図11及び
図12に示す構成は、第3の実施の形態の
図9及び
図10に示す構成に対して、指令位置10in及び指令位置10inに関する部分が省略されている点が異なる。以下、同一点については、同一符号を付与して説明を割愛し、変更点について主に説明する。
【0097】
●[位置フィードフォワード制御部14Zの重み学習機能付きネットワークの構成(
図11)]
図11に示すように、位置フィードフォワード制御部14Zの重み学習機能付きネットワークは、指令位置10inが省略されているので、
図9に示した構成に対して、点線にて示した個所が省略されている。すなわち、位置側入力部JA[1]が省略され、位置側出力重みXA1が省略されている。
【0098】
入力変換部14A1は、位置側速度用係数b11(第1速度係数に相当する定数)と、位置側加速度用係数c11(第1加速度係数に相当する定数)と、が設定されており、b11・Vp+c11・αpを出力する。そして位置側入力部JA[4]は、指令物理量として入力されたb11・Vp+c11・αpを、位置側第1出力として出力する。入力変換部14A2は、位置側速度用係数b12(第2速度係数に相当する定数)と、位置側加速度用係数c12(第2加速度係数に相当する定数)と、が設定されており、b12・Vp+c12・αpを出力する。そして位置側入力部JA[5]は、指令物理量として入力されたb12・Vp+c12・αpを、位置側第1出力として出力する。入力変換部14A3は、位置側速度用係数b13(第3速度係数に相当する定数)と、位置側加速度用係数c13(第3加速度係数に相当する定数)と、が設定されており、b13・Vp+c13・αpを出力する。そして位置側入力部JA[6]は、指令物理量として入力されたb13・Vp+c13・αpを、位置側第1出力として出力する。なお、入力変換部(14A1等)を前段に有するJA[4]〜JA[6]の数は、3個に限定されるものではなく、これよりも多い方が、第2の実施の形態と同等の機能に近づく。
【0099】
第1位置側重み学習部14FAは、位置側入力部JA[2]〜JA[6]のそれぞれに対応する位置側出力重みXA2〜XA6を有している。なお、位置側出力重みXA2〜XA6は、位置側第1重みに相当している。そして第1位置側重み学習部14FAは、JA[2]から出力された速度Vpに位置側出力重みXA2を乗算した第1位置側乗算値と、JA[3]から出力された加速度αpに位置側出力重みXA3を乗算した第1位置側乗算値と、を演算する。さらに第1位置側重み学習部14FAは、JA[4]から出力された位置側第1出力(b11・Vp+c11・αp)に位置側出力重みXA4を乗算した第1位置側乗算値と、JA[5]から出力された位置側第1出力(b12・Vp+c12・αp)に位置側出力重みXA5を乗算した第1位置側乗算値と、JA[6]から出力された位置側第1出力(b13・Vp+c13・αp)に位置側出力重みXA6を乗算した第1位置側乗算値と、を演算する。そして第1位置側重み学習部14FAは、演算した各第1位置側乗算値を出力層14CAに出力する。なお、第1位置側重み学習部14FAの学習の動作は、第3の実施の形態と同様であるので説明を省略する。
【0100】
重み学習機能付きネットワークにおける出力層14CAは、位置側出力部PA[1]を有している。位置側出力部PA[1]は、以下の(1)〜(5)が入力され、当該(1)〜(5)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令速度14outとして出力する。
(1)位置側入力部JA[2]の出力(Vp)に位置側出力重みXA2が乗算された第1位置側乗算値(Vp*XA2)。
(2)位置側入力部JA[3]の出力(αp)に位置側出力重みXA3が乗算された第1位置側乗算値(αp*XA3)。
(3)位置側入力部JA[4]の出力(b11・Vp+c11・αp)に位置側出力重みXA4が乗算された第1位置側乗算値[(b11・Vp+c11・αp)*XA4]。
(4)位置側入力部JA[5]の出力(b12・Vp+c12・αp)に位置側出力重みXA5が乗算された第1位置側乗算値[(b12・Vp+c12・αp)*XA5]。
(5)位置側入力部JA[6]の出力(b13・Vp+c13・αp)に位置側出力重みXA6が乗算された第1位置側乗算値[(b13・Vp+c13・αp)*XA6]。
【0101】
●[速度フィードフォワード制御部24Zの重み学習機能付きネットワークの構成(
図12)]
図12に示すように、速度フィードフォワード制御部24Zの重み学習機能付きネットワークは、
図10の指令位置10inが省略されているので、
図10の速度側入力部KA[1]が省略され、
図10の速度側出力重みYA1が省略されている。
【0102】
入力変換部24A1は、速度側速度用係数b21(第1速度係数に相当する定数)と、速度側加速度用係数c21(第1加速度係数に相当する定数)と、が設定されており、b21・Vv+c21・αvを出力する。そして速度側入力部KA[4]は、指令物理量として入力されたb21・Vv+c21・αvを、速度側第1出力として出力する。入力変換部24A2は、速度側速度用係数b22(第2速度係数に相当する定数)と、速度側加速度用係数c22(第2加速度係数に相当する定数)と、が設定されており、b22・Vv+c22・αvを出力する。そして速度側入力部KA[5]は、指令物理量として入力されたb22・Vv+c22・αvを、速度側第1出力として出力する。入力変換部24A3は、速度側速度用係数b23(第3速度係数に相当する定数)と、速度側加速度用係数c23(第3加速度係数に相当する定数)と、が設定されており、b23・Vv+c23・αvを出力する。そして速度側入力部KA[6]は、指令物理量として入力されたb23・Vv+c23・αvを、速度側第1出力として出力する。なお、入力変換部(24A1等)を前段に有するKA[4]〜JA[6]の数は、3個に限定されるものではなく、これよりも多い方が、第2の実施の形態と同等の機能に近づく。
【0103】
第1速度側重み学習部24FAは、速度側入力部KA[2]〜KA[6]のそれぞれに対応する速度側出力重みYA2〜YA6を有している。なお、速度側出力重みYA2〜YA6は、速度側第1重みに相当している。そして第1速度側重み学習部24FAは、KA[2]から出力された速度Vvに速度側出力重みYA2を乗算した第1速度側乗算値と、KA[3]から出力された加速度αvに速度側出力重みYA3を乗算した第1速度側乗算値と、を演算する。さらに第1速度側重み学習部24FAは、KA[4]から出力された速度側第1出力(b21・Vv+c21・αv)に速度側出力重みYA4を乗算した第1速度側乗算値と、KA[5]から出力された速度側第1出力(b22・Vv+c22・αv)に速度側出力重みYA5を乗算した第1速度側乗算値と、KA[6]から出力された速度側第1出力(b23・Vv+c23・αv)に速度側出力重みYA6を乗算した第1速度側乗算値と、を演算する。そして第1速度側重み学習部24FAは、演算した各第1速度側乗算値を出力層24CAに出力する。なお、第1速度側重み学習部24FAの学習の動作は、第3の実施の形態と同様であるので説明を省略する。
【0104】
重み学習機能付きネットワークにおける出力層24CAは、速度側出力部QA[1]を有している。速度側出力部QA[1]は、以下の(1)〜(5)が入力され、当該(1)〜(5)の値を加算した値を、所定の関数(例えばシグモイド関数)で変換し、変換した値を第2仮指令電流24outとして出力する。
(1)速度側入力部KA[2]の出力(Vv)に速度側出力重みYA2が乗算された第1速度側乗算値(Vv*YA2)。
(2)速度側入力部KA[3]の出力(αv)に速度側出力重みYA3が乗算された第1速度側乗算値(αv*YA3)。
(3)速度側入力部KA[4]の出力(b21・Vv+c21・αv)に速度側出力重みYA4が乗算された第1速度側乗算値[(b21・Vv+c21・αv)*YA4]。
(4)速度側入力部KA[5]の出力(b22・Vv+c22・αv)に速度側出力重みYA5が乗算された第1速度側乗算値[(b22・Vv+c22・αv)*YA5]。
(5)速度側入力部KA[6]の出力(b23・Vv+c23・αv)に速度側出力重みYA6が乗算された第1速度側乗算値[(b23・Vv+c23・αv)*YA6]。
【0105】
以上、第4の実施の形態では、第3の実施の形態に対して、位置フィードフォワード制御部、及び速度フィードフォワード制御部、への指令位置(入力位置)の入力を省略しており、第2の実施の形態と同様、
図5の例に示す工作機械等へ適用することができる。また、第4の実施の形態では、第2の実施の形態に対して、位置フィードフォワード制御部及び速度フィードフォワード制御部の中間層が省略され、第2の実施の形態よりも入力層が複雑となっている。
【0106】
本発明のモータ制御装置60、60Bは、本実施の形態にて説明した制御ブロックやニューラルネットワークや重み学習機能付きネットワークに限定されるものではなく、本発明の要旨を変更しない範囲で種々の変更、追加、削除が可能である。例えば、第2位置側重み学習部14F、第2速度側重み学習部24Fを省略してもよい。この場合、位置偏差、速度偏差の追従性が低下するが、構造がシンプルとなる。
【0107】
本実施の形態の説明では、3つの位置側入力部J[1]〜J[3](速度側入力部K[1]〜K[3])に対して、3つの位置側演算部M[1]〜M[3](速度側演算部N[1]〜N[3])を有する例を説明したが、位置側入力部(速度側入力部)の数と、位置側演算部(速度側演算部)の数は、同じでなくてもよい。
【0108】
本実施の形態の説明では、指令速度を入力速度演算部12、22から指令位置を元に出力したが、他の実施の形態として、制御装置60、60Bより直接出力してもよい。本実施の形態の説明では、指令加速度を入力加速度演算部13、23から指令速度を元に出力したが、他の実施の形態として、制御装置60、60Bより直接出力してもよい。
【0109】
本実施の形態にて説明したモータ制御装置は、ロボットや工作機械に限定されず、種々の機器における所定部材(制御対象物)の位置を制御するモータ制御装置に適用することが可能である。