(58)【調査した分野】(Int.Cl.,DB名)
工作機械、ロボット、又は産業機械に係る第1の軸を駆動する第1のモータを制御する第1のモータ制御部と、前記第1の軸と異なる方向の第2の軸を駆動する第2のモータを制御する第2のモータ制御部と、を含む制御装置に係る動作特性を評価するための、前記第1及び第2のモータ制御部を動作させる評価用プログラムであって、
前記第1及び第2のモータで駆動される前記第1及び第2の軸によって移動する制御対象の移動軌跡の形状が、前記第1及び第2のモータの回転方向がともに反転する角(かど)のある形状を備えるように、前記第1及び第2のモータ制御部を動作させる評価用プログラム。
工作機械、ロボット、又は産業機械に係る第1の軸を駆動する第1のモータを制御する第1のモータ制御部と、前記第1の軸と異なる方向の第2の軸を駆動する第2のモータを制御する第2のモータ制御部と、を含む制御装置に係る動作特性を評価するための、前記第1及び第2のモータ制御部を動作させる評価用プログラムであって、
前記第1及び第2のモータで駆動される前記第1及び第2の軸によって移動する制御対象の移動軌跡の形状が、前記第1又は前記第2の軸のうち少なくとも1つの軸が停止してから次に停止するまでの移動方向と、前記次に停止してからの移動方向とが同じ方向であるように、前記第1及び第2のモータ制御部を動作させる評価用プログラム。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を用いて詳細に説明する。
なお、本実施形態においては、本発明に係る評価用プログラムを制御装置となるCNC装置で動作させることで、CNC装置におけるフィードフォワード制御に係る制御パラメータを調整(学習)することを例として説明する。
より具体的には、本実施形態においては、CNC装置におけるフィードフォワード制御に係る制御パラメータとして任意の値を設定したうえで、本発明に係る評価用プログラムをCNC装置で動作させることで、当該制御パラメータを評価するためのCNC装置の動作特性を観測する。そうすることで、制御パラメータ値を任意に設定し、各制御パラメータ値に基づいてそれぞれ観測されたCNC装置の動作特性を評価することで、工作機械の最適な動作特性が観測されたときの制御パラメータ値を最適な制御パラメータ値として調整(学習)することができる。
【0021】
評価用プログラムを説明する前に、評価用プログラムにより動作するCNC装置を含むシステムの構成について簡単に説明する。
図1は本発明の一実施形態の評価用プログラムにより動作するCNC装置の構成、機械学習装置及びモータを示すブロック図である。
CNC(Computerized Numerical Control)装置100は、記憶部101、数値制御情報処理部102、及びサーボ制御装置を構成するモータ制御部103、104を備えている。CNC装置は制御装置となる。モータ制御部103、104はモータ201、202を制御する。CNC装置100は工作機械,ロボット,産業機械等に用いられるが、ここでは工作機械に用いる場合を例にとって説明する。
【0022】
記憶部101は評価用プログラムを記憶しており、この評価用プログラムは、評価時にCNC装置100で用いられる加工プログラムである。評価用プログラムは、実際の切削加工等の加工時に用いられる加工プログラムとは別に設けられる。評価用プログラムはワークを加工しつつ評価を行うが、エアーカットの場合も含んで評価を行ってもよい。
【0023】
数値制御情報処理部102は、記憶部101から評価用プログラムを読み出して、評価用プログラムを実行する。そうすることで、数値制御情報処理部102は、当該評価用プログラム中に含まれるコードに基づいて、X軸及びY軸の位置指令値を作成し、モータ制御部103、104に出力する。数値制御情報処理部102は、評価用プログラムにより指定される加工形状となるように、軸方向の移動距離、送り速度等を設定してX軸及びY軸の位置指令値を作成する。
【0024】
モータ制御部103はX軸の位置指令値と、モータ201からフィードバックされる位置検出値とに基づいて電流指令値(トルク指令値)を作成してモータ201に出力する。
モータ制御部104はY軸の位置指令値と、モータ202からフィードバックされる位置検出値とに基づいて電流指令値(トルク指令値)を作成してモータ202に出力する。
【0025】
モータ201、202は、工作機械に用いる場合にワークを搭載するテーブルをそれぞれX軸方向及びY軸方向に駆動する。モータ201、202はそれぞれボールネジが接続されており、モータ201、202に接続された2つのボールネジはモータ201、202の回転運動を直線運動に換えてテーブルをX軸方向及びY軸方向に駆動する。ここでは制御される軸がX軸とY軸との2軸の場合について説明するが、制御される軸が3軸以上ある場合は軸の数分のモータが設けられる。モータ制御部の数はモータの数に対応して設けられる。モータ201、202は、例えば、サーボモータ又はスピンドルモータを用いることができる。
【0026】
モータ201、202の回転角度位置は、モータ201、202に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分され、位置フィードバックされる位置検出値として利用される。
【0027】
モータ制御部103、104のより具体的な構成について説明する。以下の説明ではモータ制御部103について説明するが、モータ制御部104も同様な構成を備えている。
図2はモータ制御部103の一構成例を示すブロック図である。
図2に示すように、モータ制御部103は、減算器1001、位置制御部1002、加算器1003、減算器1004、速度制御部1005、加算器1006、積分器1007、位置フィードフォワード計算部1008、及び速度フィードフォワード計算部1009を備えている。
【0028】
数値制御情報処理部102は、評価用プログラム中に含まれるコードに基づいて位置指令値を作成し、位置指令値を減算器1001と位置フィードフォワード計算部1008に出力する。
減算器1001は、位置指令値と位置フィードバックされた位置検出値との差を求め、その差を位置偏差として位置制御部1002に出力する。評価時には、位置偏差は機械学習装置300にも出力される。評価用プログラムが動作する評価後に加工プログラムを動作する場合には位置偏差は機械学習装置300に出力しない。
【0029】
位置制御部1002は、位置偏差にポジションゲインKpを乗じた値を、速度指令値として加算器1003に出力する。位置フィードフォワード計算部1008は位置指令値を微分してフィードフォワード係数を掛けた値を、加算器1003と速度フィードフォワード計算部1009に出力する。
【0030】
加算器1003は、速度指令値と位置フィードフォワード計算部1008の出力値とを加算して、フィードフォワード制御された速度指令値として減算器1004に出力する。減算器1004は加算器1003の出力と速度フィードバックされた速度検出値との差を求め、その差を速度偏差として速度制御部1005に出力する。
【0031】
速度制御部1005は、速度偏差に積分ゲインK1vを乗じて積分した値と、速度偏差に比例ゲインK2vを乗じた値とを加算して、トルク指令値として加算器1006に出力する。
【0032】
速度フィードフォワード計算部1009は、例えば数式1(以下に数1として示す)で示す伝達関数Gf(s)で示される速度フィードフォワード計算処理を行い加算器1006に出力する。
【数1】
【0033】
加算器1006は、トルク指令値と速度フィードフォワード計算部1009の出力値とを加算して、加算器1006に出力する。加算器1006は加算値を電流指令値(トルク指令値)としてモータ201に出力する。
【0034】
モータ201の回転角度位置は、モータ201に関連付けられた、位置検出部となるロータリーエンコーダによって検出され、検出された信号は速度フィードバックされる速度検出値として利用される。速度検出値は積分器1007で積分され、位置フィードバックされる位置検出値として利用される。
【0035】
本実施形態では、伝達関数Gf(s)の次元を予め設定された値とし、各係数a
i、b
j(i,j≧0)に任意の値を設定したうえで、評価用プログラムをCNC装置100で動作させることにより、当該制御パラメータa
i、b
jに係るCNC装置の動作特性を観測する。そうすることで、任意の値に設定された各係数a
i、b
jの集合の中から、評価用プログラムにより工作機械を動作させたときの工作機械の動作特性が最適となる係数a
i、b
jを機械学習装置300により調整(学習)することができる。
このため、機械学習装置300は、モータ201,202からフィードバックされる位置検出値等を用いて、フィードフォワード補正のための制御パラメータa
i、b
jを学習し、モータ制御部103、104に対して最適な制御パラメータを設定する。
【0036】
より具体的には、機械学習装置300は、制御パラメータa
i、b
j(i,j≧0)に基づいて、評価用プログラムを実行することで取得されるCNC装置100の動作特性としての位置偏差情報を含む、指令及びフィードバック等のサーボ状態を含む状態情報sを観測して、当該状態sに係る制御パラメータa
i、b
jの調整(行動a)を行う。
行動情報aにより状態情報sが状態情報s´に修正された場合、状態情報s´に係る修正後の制御パラメータa
i´、b
j´に基づいて動作したCNC装置100の位置偏差の値が、行動情報aにより修正される前の状態情報sに係る修正前の制御パラメータa
i、b
jに基づいて動作したCNC装置100の位置偏差の値よりも大きくなった場合に、報酬rの値を負の値とする。他方、行動情報aにより修正された状態情報s´に係る修正後の制御パラメータa
i´、b
j´に基づいて動作したCNC装置100の位置偏差の値が、行動情報aにより修正される前の状態情報sに係る修正前の制御パラメータa
i、b
jに基づいて動作したCNC装置100の位置偏差の値よりも小さくなった場合に、報酬rの値を正の値とする。
【0037】
機械学習装置300は、将来にわたっての報酬rの合計が最大になる最適な行動aを試行錯誤的に探索する。そうすることで、機械学習装置300は、制御パラメータa
i、b
jに基づいて、評価用プログラムを実行することで取得されるCNC装置100の位置偏差情報を含む指令、フィードバック等のサーボ状態を含む状態sに対して、最適な行動a(すなわち、最適な制御パラメータa
i、b
j)を選択することが可能となる。
なお、機械学習については、後述の補足において説明する。
【0038】
<評価用プログラム>
次に、評価用プログラムについて説明する。工作機械においては、例えば、ワークを搭載するテーブルをそれぞれX軸方向及びY軸方向に駆動して、ワークを切削加工具、レーザビーム等により加工する。評価用プログラムは、評価時の加工形状により軸方向の移動距離、送り速度等を指定する。
制御パラメータa
i、b
jを調整(学習)するに際して、すべての加工プログラムの動作に基づいて調整することはできない。このため、代表的な動作、例えばモータの反転動作、モータの停止からの反転動作、及び第1のモータに係る第1の軸の移動から停止への反転動作並びに第2のモータに係る第2の軸の停止からの反転動作を行わせるために、例えば円弧、四角形、及びR付四角形の形状を使用することが知られている。ここで、R付四角とは、角(かど)が、円弧状となっている四角形を意味する。
【0039】
加工形状が円弧(円)の場合は、例えば、
図3に示すA点で、テーブルをX軸方向に移動するサーボモータは回転方向が反転し、テーブルはX軸方向に直線反転するように移動する。
テーブルをX軸方向に移動するモータの回転方向がA点で反転しようとした時に、反転遅れが生じ、半径方向に軌跡誤差が拡大し、軌跡誤差の拡大表示を行うと軌跡誤差が突起として見える。
【0040】
加工形状が四角の場合は、例えば、
図4に示すB点の角(かど)で、テーブルをY軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルをX軸方向に移動するサーボモータは、回転から停止に移り、テーブルはX軸方向の直線動作からY軸方向の直線動作に移る。
【0041】
加工形状が角R付き四角の場合においても、例えば、
図5に示すC1点で、テーブルをY軸方向に移動するサーボモータは、停止から回転動作に移り、テーブルはX軸方向の直線動作から円弧動作からに移る。また、
図5に示すC2点で、テーブルをX軸方向に移動するサーボモータは、回転から停止動作に移り、テーブルは円弧動作からY軸方向の直線動作に移る。
以上説明したように、従来指定される加工形状により、回転方向が反転したり、回転状態から停止したりする場合に生ずる惰走(惰性で動作する)を評価し、位置偏差に対する影響を調べることができる。
【0042】
しかしながら、これらの形状だけでは、例えば、2つのモータとも反転しない角(かど)における動作、停止から停止前と同じ方向に移動を開始する形状における動作、及び2つのモータとも反転する角(かど)における動作の特性を観測することはできない。
このため、評価用プログラムは、前述した特性を少なくとも備える動作を行わせるように構成される。そうすることで、すべての加工プログラムにより動作させたときの工作機械の動作特性を観測する替わりに、評価用プログラムにより動作させたときの工作機械の動作特性のみを観測することで、例えば、フィードフォワードに係る制御パラメータa
i、b
jの調整(学習)を効率よく行うことができる。
【0043】
このため、本実施形態の評価用プログラムによる加工形状は、例えば、一部の角(かど)を円弧とした八角形、一部の角(かど)を円弧とした八角形を半分にした形状を端部に有する十字形、角R付き十字形(角(かど)が弧の十字形)、凸状の円弧と凹状の円弧とで構成される十字形、星形のいずれか又はこれらの形の組み合わせによって構成される。なお、加工形状はモータ201、202で駆動されるX軸及びY軸によって移動する制御対象となるワークの移動軌跡の形状に対応している。
以下、
図6〜
図10を用いてそれぞれの加工形状について説明するが、各図における加工は時計まわり方向に行われているものとする。なお、時計回り方向の加工に加えて反時計回りの方向に行うようにしてもよい。
【0044】
図6は加工形状が、一部の角(かど)を円弧とした八角形からなる形状である第1の構成例を示す説明図である。
図6に示す八角形は、モータが反転する箇所を円弧としている。
従来、反転時の調整は
図3に示すように、加工形状を円とすることで行っていた。
図3に示すように、円上の点であるA点では、円弧上でX軸を駆動するモータが反転するため、A点に向けてモータの回転が減速し、A点からモータの回転が反転して加速をする。一方、A点及びその近傍では、Y軸を駆動するモータは一番速い速度で回転する。その結果加工形状は弧を描く。その際、X軸でのモータの反転時の遅れによる誤差が
図3に示すY軸の長い範囲(
図3中の破線で囲んだ範囲)へ影響する。したがって、A点の前後の円弧加工形状を観測することで、反転時におけるX軸の誤差に係る動作特性を観測することができた。
しかしながら、加工形状が円となる動作をさせるだけでは、速度が不連続に変化する点が存在せず、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性としては不充分であるといわざるをえない。
【0045】
そこで、第1の構成例では
図6に示すように、X軸及びY軸を駆動するモータがともに反転しない角(かど)であるD点を設ける。そうすることで、従来の円弧上での反転時の動作特性に加えて、速度が不連続に変化する加速度変化のD点を設けることで、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性を追加することができ、フィードフォワードに係る制御パラメータa
i、b
jをより正確かつ効率的に調整することができる。
このように、本実施形態の評価用プログラムによる加工形状は、八角形の角(かど)の半分を円弧状とし、円弧と角(かど)とが交互に配置されるようにし、円弧の部分ではモータの回転が反転するが速度が不連続に変化しない動作特性を観測可能とし、角(かど)の部分ではモータの回転が反転しないが速度が不連続に変化する動作特性を観測可能にしている。
【0046】
当該評価用プログラムを動作させることにより得られるA点における前後の円弧加工形状を観測することで、X軸の誤差に係る動作特性が得られるとともに、D点における前後の加工形状を観測することで、速度が不連続に変化する角(かど)における動作特性を得ることができる。これにより、A点による反転時の調整(学習)に加えて、D点による速度が不連続に変化する時の調整(学習)が可能となる。
【0047】
図7は、加工形状が、
図6に示した第1の構成例の一部の角(かど)を円弧とした八角形を半分にした形状をそれぞれ端部に有する十字形からなる形状である第2の構成例を示す説明図である。すなわち、
図7に示した破線で囲まれた領域の形状が、
図6に示した第1の構成例の、一部の角(かど)を円弧とした八角形を半分にした形状となっている。
図7に示した第2の構成例のA点、D点は
図6に示した第1の構成例のA点、D点に対応している。
このように、第2の構成例では、第1の構成例におけるA点、D点に加えて新たにE点を設けている。E点の角(かど)では、X軸を駆動するモータは減速から停止する動作を行い、他方、Y軸を駆動するモータは停止状態から回転する動作を行う。
そうすることで、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性を追加することができ、フィードフォワードに係る制御パラメータa
i、b
jをより正確かつ効率的に調整することができる。
【0048】
図8は加工形状が、角R付き十字形かなる形状である第3の構成例を示す説明図である。第3の構成例は、
図8に示すように、凸状の円弧で構成される角(かど)と凹状の円弧で構成される角(かど)を含む十字形からなる形状となっている。
図5に示すように、加工形状が角R付き四角である場合は、例えば、
図5に示すC1点で、X軸を駆動するモータが回転している場合に、Y軸を駆動するモータが停止から回転動作に移る場合を評価し、C2点で、Y軸を駆動するモータが回転している場合に、X軸を駆動するモータが、回転から停止動作に移る場合を評価することができる。
しかしながら、加工形状が角R付き四角となる動作だけでは、停止から停止前と同じ方向に移動を開始する形状における動作を評価することができない。
【0049】
図8に示した第3の構成例の加工形状では、例えば、
図8の破線で囲まれた領域において、Y軸が停止してから次にY軸が停止するまでの移動方向と、次にY軸が停止してからの移動方向と
、が同じ方向であり、またX軸が停止してから次にX軸が停止するまでの移動方向と、次にX軸が停止してからの移動方向と
、が同じ方向である。よって、X軸及びY軸を駆動するモータが共に停止から停止前と同じ方向に回転を開始する動作を評価することができる。これにより、
図5に示した角R付き四角の加工形状と比べて、例えばF1点のような、X軸を駆動するモータにおいて停止前と同じ方向に回転を開始する切換点、F2点のような、X軸を駆動するモータのモータが停止前と同じ方向に回転している時にY軸を駆動するモータが停止する切換点の動作特性を評価することができる。
そうすることで、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性を追加することができ、フィードフォワードに係る制御パラメータa
i、b
jをより正確かつ効率的に調整することができる。
【0050】
図9は、加工形状が、凸状の円弧と凹状の円弧とで構成される十字形からなる形状である第4の構成例を示す説明図である。
図5に示す、加工形状が角R付き四角である場合は、
図3に示す、加工形状を円とすることで行っていた反転時の調整を行うことができない。また、モータの回転が停止してから直ぐに同じ方向に回転を始める時の動作を評価することができない。
図9に示した第4の構成例の加工形状は、凸状の円弧と凹状の円弧とを組み合わせた形状となる。
図8に示した加工形状と同様に、Y軸が停止してから次にY軸が停止するまでの移動方向と、次にY軸が停止してからの移動方向と
、が同じ方向であり、またX軸が停止してから次にX軸が停止するまでの移動方向と、次にX軸が停止してからの移動方向と
、が同じ方向である。ただし、
図9に示す加工形状では
図8に示した加工形状と比べて、直線移動はなく円弧移動となっている。
【0051】
これにより、
図9のG点では、
図3に示すA点と同様に、G点でX軸を駆動するモータの回転が反転し、反転時の動作特性の評価を行うことができる。また、H1点では、X軸を駆動するモータが回転の停止から直ぐに同じ方向に回転を始める時の動作特性、H2点で
は、Y軸を駆動するモータが回転の停止から直ぐに同じ方向に回転を始める時の動作特性を評価することができる。
【0052】
これにより、G点における前後の加工形状、H1点における前後の加工形状及びH2点における前後の加工形状を観測することで、X軸(又はY軸)のモータの回転の反転時の動作特性、X軸(又はY軸)が停止してから次に停止するまでの移動方向と、X軸(又はY軸)が次に停止してからの移動方向と
、が同じ方向であるときの動作特性を得ることができる。そうすることで、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性を追加することができ、フィードフォワードに係る制御パラメータa
i、b
jをより正確かつ効率的に調整することができる。
【0053】
図10は、加工形状が、星形からなる形状である第5の構成例を示す説明図である。
図10に示した第5の構成例の加工形状は、例えばI点で、X軸を駆動するモータとY軸を駆動するモータとの両方の回転方向が反転する。これにより、I点における前後の加工形状を観測することで、X軸を駆動するモータとY軸を駆動するモータとの径点方向がともに反転するときの動作特性を得ることができる。そうすることで、フィードフォワードに係る制御パラメータa
i、b
jの調整のために観測する動作特性を追加することができ、フィードフォワードに係る制御パラメータa
i、b
jをより正確かつ効率的に調整することができる。
【0054】
以上、本実施形態で用いる評価用プログラムに基づく加工形状について説明したが、本実施形態で用いる評価用プログラムによる加工形状と、円弧(円)、四角形、角R付き四角形及び八角形の少なくとも1つの加工形状とを組み合わせて評価を行ってもよい。
円弧は
図3を用いて説明したように、一方の軸を駆動するモータが一方向に回転しているときの、他方の軸を駆動するモータの反転時の特性を検出することができる。
また、四角形の角(かど)は
図4を用いて説明したように、一方の軸を駆動するモータが減速から停止し、他方の軸を駆動するモータが停止から加速するときの特性を検出することができる。
また、
図5を用いて説明した角R付き四角形は直線から円弧、円弧から直線に移るときの特性、即ち、一方の軸を駆動するモータが停止のために減速しているときに、他方の軸を駆動するモータが停止から加速するときの特性を検出することができる。
また、八角形は、
図6に示した第1の構成例である、角(かど)に対応する部分の形状を円弧から角(
かど)に置き換わった形状となり、
図6に示した第1の構成例の
D点で、速度が不連続に変化する点が構成される。
【0055】
評価用プログラムは、記憶部101に格納されるとしたが、これに限定されない。評価用プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、評価用プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0056】
また、本実施形態では、評価用プログラムにより動作させたときの工作機械の動作特性を観測することで、フィードフォワードに係る制御パラメータa
i、b
jの調整(学習)を効率よく行うことができる機械学習を例示したが、評価用プログラムの適用は、フィードフォワードに係る制御パラメータa
i、b
jの調整(学習)に限定されない。例えば、静摩擦に係る制御パラメータ、及び反転時のバックラッシに係る制御パラメータの調整(学習)にも適用できる。
また、上述した機械学習装置300は、評価用プログラムをCNC装置100に実行させることにより、動作特性として位置偏差を観測したが、フィードバック情報は位置偏差に限定されず、位置偏差に加えて位置指令及び位置フィードバック(位置検出値)のうちの少なくとも1つを含んでもよい。
【0057】
また、動作指令として、速度指令、速度フィードバック、速度偏差、電流指令、電流フィードバック、及び電流偏差のうちの少なくとも1つを加えてもよい。ここで、位置指令は数値制御情報処理部102の出力、位置フィードバックは積分器1007の出力がそれぞれ対応する。速度指令は加算器1003の出力、速度フィードバック(速度検出値)はモータに関連付けられたロータリーエンコーダの出力、速度偏差は減算器1004の出力がそれぞれ対応する。電流指令は加算器1006の出力、電流フィードバックはモータに流す電流の検出値、電流偏差は減算器1010の出力がそれぞれ対応する。
【0058】
またフィードフォワードの調整は、速度フィードフォワード計算部1009における調整(学習)に限定されない。例えば、速度フィードフォワード計算部1009に加えて、又は速度フィードフォワード計算部1009に換えて、位置フィードフォワード計算部1008及び/又は電流フィードフォワード計算部1013の伝達関数の係数(制御パラメータ)について調整(学習)を行ってもよい。
例えば、
図11はCNC装置の他の構成例の一部の構成を示すブロック図である。
図11は図
2に示した
モータ制御部に、減算器1010、電流制御部1011、加算器1012、及び電流フィードフォワード計算部1013をさらに追加したCNC装置を示している。
また、機械学習ではなく、操作者が制御パラメータa
i、b
jを例えば、制御表示盤等を介して適宜入力して、当該評価用プログラムを動作させて、動作特性を観察することにより、制御パラメータa
i、b
jを調整するようにしてもよい。
【0059】
また、評価用プログラムにより動作させたときの工作機械の動作特性を観測することで、(フィードフォワードに係る制御パラメータa
i、b
jの調整(学習)に替えて)バックラッシ補正及び/又はバックラッシ加速補正に係る制御パラメータの調整(学習)を行ってもよい。例えば、
図6に示した第1の構成例並びに
図7に示した第2の構成例におけるA点における反転時の動作特性、及び
図10に示した第5の構成例におけるI点における反転時の動作特性の観測は特に有効である。
【0060】
また、評価用プログラムにより動作させたときの工作機械の動作特性を観測することで、(フィードフォワードに係る制御パラメータa
i、b
jの調整(学習)に替えて)静摩擦補正に係る制御パラメータの調整(学習)を行ってもよい。例えば、図
7に示した第2の構成例の
E点における動作特性は、特に有効である。
【0061】
<補足説明>
最後に、補足説明として本実施形態における機械学習について簡単に説明する。
図12は本発明の第1の実施形態の機械学習装置300を示すブロック図である。
図12に示すように、機械学習装置300は、状態情報取得部301、学習部302、行動情報出力部303、価値関数記憶部304、及び最適化行動情報出力部305を備える。学習部302は報酬出力部3021、価値関数更新部3022、及び行動情報生成部3023を備える。
【0062】
<エージェント>
エージェント(本実施形態における機械学習装置300に相当)は、環境の状態を観測し、ある行動を選択し、当該行動に基づいて環境を変化させ、環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
【0063】
<状態s>
CNC装置100における速度フィードフォワード計算部1009の伝達関数G(s)の各係数a
i、b
j(i,j≧0)の値、並びに学習時の評価用プログラムを実行することで取得されるCNC装置100の位置偏差情報を含む、指令及びフィードバック等のサーボ状態を状態sとする。状態情報取得部301は、状態sを取得する。
【0064】
<行動a>
状態sに係る速度フィードフォワード計算部1009の制御パラメータa
i、b
jの調整(例えば、制御パラメータa
i、b
jをランダムに微修正する)を行動aとする。なお、制御パラメータa
i、b
jは例えば、初期設定値として、[数1]のa
0=1、a
1=0、b
0=0、b
1=制御対象のイナーシャ値とする。また、係数a
i、b
jの次元m、nを予め設定する。学習部302における行動情報生成部3023は、行動aを生成して、行動情報出力部303は、状態sにおける行動aをCNC装置100に対して出力する。
【0065】
<報酬r>
状態sにおける状態変数である位置偏差の集合(位置偏差集合)をPD(s)、行動情報a(速度フィードフォワード計算部の各係数a
i、b
j(i,jは0及び正の整数を示す)の修正)により状態sから変化した状態情報s´に係る状態変数である位置偏差集合をPD(s´)で示す。また、状態sにおける位置偏差の値を、予め設定された評価関数f(PD(s))に基づいて算出される値とする。
評価関数fとしては、例えば、
位置偏差の絶対値の積算値を算出する関数
∫|e|dt
位置偏差の絶対値に時間の重み付けをして積算値を算出する関数
∫t|e|dt
位置偏差の絶対値の2n(nは自然数)乗の積算値を算出する関数、
∫e
2ndt(nは自然数)
位置偏差の絶対値の最大値を算出する関数
Max{|e|}
等を適用することができる。
【0066】
このとき、行動情報aにより修正された状態情報s´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報aにより修正される前の状態情報sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))よりも大きくなった場合に、報酬rの値を負の値とする。
【0067】
一方で、行動情報aにより修正された状態情報s´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報aにより修正される前の状態情報sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))よりも小さくなった場合に、報酬rの値を正の値とする。
なお、行動情報aにより修正された状態情報s´に係る修正後の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s´))が、行動情報aにより修正される前の状態情報sに係る修正前の速度フィードフォワード計算部1009に基づいて動作したCNC装置100の位置偏差の値f(PD(s))と等しい場合は、報酬rの値をゼロとする。
学習部302における報酬出力部3021は、状態sに対して行動aを適用した場合の報酬rを算出する。
【0068】
<価値関数Q>
或る環境の状態sの下で、行動aを選択する場合の価値をQ(s,a)とする。このように、Q(s,a)は、状態sと行動aを入力とする関数である。
学習を最初に開始する時点では、状態sと行動aとの組合せについて、価値Q(s,a)の正しい値は全く分かっていない。そこで、エージェントは、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値Q(s,a)を学習していく。
このような価値Q(s,a)の更新式は、例えば、次の数式2(以下に数2として示す)により表すことができる。
【0070】
上記の数式2において、s
tは、時刻tにおける環境の状態を表し、a
tは、時刻tにおける行動を表す。行動a
tにより、状態はs
t+1に変化する。r
t+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態s
t+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
学習では、すべての状態行動ペア(s,a)についてのQ(s,a)のテーブルを作成して、学習を行う方法がある。学習部302における価値関数更新部3022は、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、報酬出力部3021により算出された報酬rの値と、に基づいて学習を行うことにより、価値関数記憶部304が記憶する価値関数Qを更新する。
【0071】
以上のようにして、機械学習装置300により学習された価値関数Qに基づいて、或る状態sに係る速度フィードフォワード計算部1009の伝達関数の各係数a
i、b
jに対して適用される行動aのうち、Q(s,a)の値が最大となるような行動aを選択することで、評価用プログラムを実行することで取得される位置偏差が最小になるような行動a(すなわち、速度フィードフォワード計算部1009の係数a
i、b
j)を選択することが可能となる。
最適化行動情報出力部305は、価値関数更新部3022が学習を行うことにより更新した価値関数Qに基づいて、価値Q(s,a)が最大となる動作を速度フィードフォワード計算部1009に行わせるための行動情報
aを生成する。
以上、本実施形態における機械学習について補足説明したが、ここで説明した機械学習は、評価用プログラムによる評価を観測して、調整(学習)するための1つの例であって、調整(学習)は、これに限定されない。例えば、オペレータが、評価用プログラムを使用して、制御パラメータを調整してもよい。
【0072】
以上、実施形態において、CNC装置100と機械学習装置300について説明したが、これらの機能を実現するために、CNC装置100、及び機械学習装置300は、それぞれCPU(Central Processing Unit)等の演算処理装置を備える。また、CNC装置100、及び機械学習装置30
0は、それぞれアプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
【0073】
そして、CNC装置100、及び機械学習装置300は、それぞれ演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0074】
機械学習装置300については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
【0075】
本実施形態において、CNC装置100、及び機械学習装置300に含まれる各構成部は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記のサーボ制御装置となるモータ制御部に含まれる各構成部のそれぞれの協働により行なわれるサーボ制御方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0076】
上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。