機械の移動部の制御方法及びプログラム
【課題】様々なタイプの機械において共通の計算を行え、計算量の少ない制御方法等を提供する。
【解決手段】互いに相対的に移動可能な主軸頭2及びテーブル3を備えた機械において、幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いてこれらの移動を制御するにあたり、主軸頭2側における回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、テーブル3側における回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、第1インデックスの示す回転軸の有無ないしつながり順番に従ってテーブル3の座標系における指令値をマトリックス演算して第1ベクトルを求めると共に、第2インデックスの示す回転軸の有無ないしつながり順番に従って主軸頭2の基準ベクトルをマトリックス演算して第2ベクトルを求め、第1ベクトルと第2ベクトルを合算する。
【解決手段】互いに相対的に移動可能な主軸頭2及びテーブル3を備えた機械において、幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いてこれらの移動を制御するにあたり、主軸頭2側における回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、テーブル3側における回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、第1インデックスの示す回転軸の有無ないしつながり順番に従ってテーブル3の座標系における指令値をマトリックス演算して第1ベクトルを求めると共に、第2インデックスの示す回転軸の有無ないしつながり順番に従って主軸頭2の基準ベクトルをマトリックス演算して第2ベクトルを求め、第1ベクトルと第2ベクトルを合算する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、並進あるいは回転運動可能な移動部を有する機械における当該移動体の移動制御にあって、機械の幾何学的な誤差を補償した指令値を演算する方法ないしプログラムに関するものである。
【背景技術】
【0002】
図1は当該工作機械の一例である、3つの並進軸と2つの回転軸を有する工作機械(5軸制御マシニングセンタ、5軸機)の模式図である。主軸頭2は、互いに直交する2つの並進軸(X軸・Z軸)によって、ベッド1に対して並進2自由度の運動が可能である。テーブル3は、2つの回転軸(A軸・C軸)及び1つの並進軸(Y軸)を含むトラニオンユニット4によって、回転2自由度及び並進1自由度の運動が可能である。A軸及びC軸は互いに直交し、Y軸はX軸及びZ軸に直交する。各軸は数値制御装置により制御されるサーボモータ(図示せず)により駆動され、この5軸機では、このような各軸の駆動により、主軸頭2に装着される工具を用いて、テーブル3に固定される被加工物(ワーク)を任意の形状に加工することが可能である。
【0003】
前記5軸機の動作指令方法として、各駆動軸の指令値を与える方法がある。この方法では、回転軸によりワークを回転させた場合、ワーク上の加工点も回転することから、実用的な加工精度を確保するには、この回転を考慮した並進軸の指令値が必要になる。このような並進軸の指令値を求めるためには、座標変換等の複雑な計算を要するため、一般的にはCAM等によって指令値を計算させて用いている。
【0004】
別の動作指令方法としては、前記工具の先端点と傾きを指令値として与える方法がある。数値制御装置が前記工具先端点と傾きを各駆動軸指令値に変換する、いわゆる工具先端点制御であるが、この指令方法を用いれば、複雑な座標変換等の計算を数値制御装置が行うため、指令値を簡単に作成できる。
【0005】
一方、前記5軸機の運動精度、及び運動精度が転写されるワークの形状精度に影響を及ぼす要因の一つとして、例えば、回転軸と並進軸の平行度や各回転軸間の回転中心の不一致等、5軸機の製造・組立により発生する各軸間の幾何学的な誤差(以下「幾何誤差」と呼ぶ)が大きな割合を占める場合がある。この幾何誤差を製造上無くすことは非常に困難であり、この幾何誤差を補償する手段として、特許文献1のような制御方法が提案されている。即ち、工具とワークの相対関係が誤差のない機械と同じになるような各軸の誤差補償指令値を、回転軸の中心ズレや傾き誤差を考慮して、工具先端点と傾きの指令値からマトリックスを用いた計算により求め、この誤差補償指令値により各軸を駆動することで幾何誤差を補償している。
【0006】
この誤差補償指令値を計算する方法において、5軸機の軸構成の違いによって、テーブル回転型、主軸回転型、主軸・テーブル混合型と3タイプに分けて各機械タイプについてそれぞれ計算式を用意している。テーブル回転型は、テーブル側に回転軸を2軸有するタイプであり、図1の形態の5軸制御工作機械がその一例である。主軸回転型は、主軸側に回転軸を2軸有するタイプである。
【0007】
図2は主軸回転型5軸機の一例の模式図である。主軸頭12は、並進軸であり互いに直交するY軸・Z軸によってベッド11に対して並進2自由度の運動が可能であり、更にユニバーサルヘッド14に内蔵され互いに直交した回転軸であるB軸・C軸によって回転2自由度の運動が可能である。一方、テーブル13は、並進軸でありY軸・Z軸に直交するX軸により、ベッド11に対して並進1自由度の運動が可能である。各軸は、NC装置により制御されるサーボモータ(図示せず)により駆動され、主軸回転型5軸機では、このような駆動により、主軸頭12に装着される工具を用いて、テーブル13に固定されるワークを任意の形状に加工することができる。
【0008】
図3は主軸・テーブル混合型5軸機の一例の模式図である。主軸・テーブル混合型は主軸側、回転軸側にそれぞれ回転軸を1軸ずつ有するタイプである。主軸頭22は、並進軸であるX軸・Y軸・Z軸によって、ベッド21に対して並進3自由度の運動が可能であり、更に旋回ヘッド24に内蔵された回転軸であるB軸によって、回転1自由度の運動が可能である。一方、テーブル23は、ベッド21に取り付けられている回転軸(C軸)の周りで回転1自由度の運動が可能である。各軸はNC装置により制御されるサーボモータ(図示せず)により駆動され、主軸・テーブル混合型5軸機では、主軸頭22に装着される工具を用いて、テーブル23に固定されるワークを任意の形状に加工することができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−272887号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、特許文献1のものでは、前記各機械タイプによって計算式を用意する必要があることから、汎用性がなく、機械タイプ毎に異なる実装や管理を施さなければならず、煩わしい。
【0011】
更に、それぞれの計算においては、次に示す[数1]のように、4行4列のマトリックスと4行1列のマトリックスの乗算を行っているが、この計算では、加算を12回、乗算を16回行う必要があり、計算量が非常に多いものとなっている。
【0012】
【数1】
【0013】
しかも、このような計算は、実際に必要な最小限の計算に比べて多大なものとなっている。即ち、実際の計算において、例えば並進運動のマトリックス計算を行う場合、次の[数2]のように加算3回のみを行うだけで良い。従って、このような計算は、無駄な加算・乗算を行う非常に効率の悪いものであり、処理能力の高いCPUを必要とする等コスト高となり処理速度の低下を招くという課題がある。
【0014】
【数2】
【0015】
そこで、本発明のうち、請求項1〜5,6に記載のものでは、5軸機(工作機械)を始めとする機械において、様々なタイプの機械において共通の計算を行えると共に、計算量を少なくでき、効率の良い計算が可能である制御方法,プログラムを提供することを目的とする。なお、特に請求項2,4に記載の発明では、更に並進軸が互いに直交していなくても指令値の計算を可能とすることも目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するために、請求項1に記載の発明は、互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、前記第1インデックスの示す前記回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値をマトリックス演算して第1ベクトルを求めると共に、前記第2インデックスの示す前記回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルをマトリックス演算して第2ベクトルを求め、前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とすることを特徴とするものである。
【0017】
請求項2に記載の発明は、上記発明にあって、前記並進軸が直交していない場合に、前記並進軸の相対角度を表すマトリックスを、前記補償値が適用された前記指令値に対して乗算し、前記補償値が適用された指令値を更新することを特徴とするものである。
【0018】
請求項3に記載の発明は、互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、前記第1インデックスの要素毎に計算処理を場合分けし、前記第1インデックスの回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値に対して前記場合分けされた計算処理を行って第1ベクトルを求めると共に、前記第2インデックスの要素毎に計算処理を場合分けし、前記第2インデックスの回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルに対して前記場合分けされた計算処理を行って第2ベクトルを求め、前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とすることを特徴とするものである。
【0019】
請求項4に記載の発明は、上記発明にあって、前記並進軸が直交していない場合に、前記並進軸の相対角度を用いて前記補償値が適用された前記指令値を変換して更新することを特徴とするものである。
【0020】
請求項5に記載の発明は、上記発明にあって、機械は工作機械であり、第1移動部は工具を装着可能な主軸であり、第2移動部はワークを載置可能なテーブルであることを特徴とするものである。
【0021】
上記目的を達成するために、請求項6に記載の発明は、上記の機械の移動部の制御方法をコンピュータに実行させるための機械の移動部制御プログラムであることを特徴とする。
【発明の効果】
【0022】
本発明によれば、様々なタイプの工作機械において共通の計算を行え、タイプ毎に計算式を用意する必要がなくなり汎用的にでき、用意していないタイプの機械にも対応できるようになって、導入や管理を容易に行える。又、並進軸が互いに直交していなくても指令値の計算が可能となるし、計算量を少なくでき、効率の良い計算が可能になり、処理能力が低く安価なCPUを採用することができるようになる。
【図面の簡単な説明】
【0023】
【図1】テーブル回転型5軸機の模式図である。
【図2】主軸回転型5軸機の模式図である。
【図3】主軸・テーブル混合型5軸機の模式図である。
【図4】軸の関係を示す模式図である。
【図5】図1の機械に対応するリンクの記憶状況(回転軸のつながり)を表す模式図である。
【図6】図2の機械に対応するリンクの記憶状況(回転軸のつながり)を表す模式図である。
【図7】機械座標系のX,Y,Z軸周りの順番で回転させる場合におけるリンク(ワーク基準座標系の回転順番を示すOリンク)の記憶状況を表す模式図である。
【図8】第2形態に係る誤差補償指令値の計算に関するフローチャートである。
【図9】図8のステップS1の詳細(Oリンクに従ったワーク基準座標系の回転計算処理)を表すフローチャートである。
【図10】図8のステップS2の詳細(Pwl’の計算処理)を表すフローチャートである。
【図11】図8のステップS4の詳細(Ptl’の計算処理)を表すフローチャートである。
【発明を実施するための形態】
【0024】
以下、本発明に係る実施の形態の例として、3つの並進軸(X軸・Y軸・Z軸)と2つの回転軸(R1軸・R2軸)を有する5軸機について説明する(第1形態及び第2形態)。このような5軸機は、第1移動部としての主軸(頭)と、第2移動部としてのテーブルを有し、主軸やテーブルは、当該並進軸や回転軸が適宜配置されることにより、並進移動や回転移動をする。又、このような5軸機にあっては、図1〜3で示す各種のタイプが存在する。図1で示すタイプは、R1軸・R2軸としてテーブル側のC軸・A軸が相当し、図2で示すタイプは、R1軸・R2軸として主軸側のB軸・C軸が相当し、図3で示すタイプは、R1軸・R2軸として主軸側のB軸・テーブル側のC軸が相当する。
【0025】
これら工作機械は、それぞれ図示しない制御装置(コンピュータ)を有しており、当該制御装置が出力する各種指令値に応じて対応する軸が駆動される。制御装置は、記憶手段を含んでおり、当該記憶手段は、揮発性若しくは不揮発性のメモリ、又はこれらの組合せ等により構成される。記憶手段には、指令値の適切な計算等を行うためのプログラムが格納されている。なお、工作機械として、3つの並進軸と2つの回転軸を有する5軸機以外の5軸機を用いても良いし、5軸以外の機械を用いても良い。又、工作機械として、マシニングセンタ(図1〜3)に代えて、旋盤、複合加工機、研削盤等を採用することができる。更に、工作機械に限らず、ロボット、産業機械、建築機械等の各種機械に適用しても良い。
【0026】
[第1形態]
ワークとテーブルの間に配置される回転軸の種類につきワーク側から並べた組をWリンクと呼ぶことにする。換言すれば、Wリンクは、ワークからテーブル側への回転軸へのつながり順番を表す(第1インデックス)。例えば、回転軸がテーブル側に2軸ともあり、ワーク、R1軸、R2軸の順番である場合、Wリンクは[R1,R2]となり、Wリンクの要素はR1及びR2となる。一方、回転軸がテーブル側にR1軸だけの場合、Wリンクは[R1]となり、Wリンクの要素はR1となる。他方、テーブル側に回転軸がない場合、Wリンクは0となり、Wリンクの要素はなしとなる。
【0027】
一方、主軸と機械本体の間に配置される回転軸の種類につき主軸側から並べた組をTリンクと呼ぶことにする。換言すれば、Tリンクは、主軸からの回転軸のつながり順番を表す(第2インデックス)。例えば、回転軸が主軸側に2軸ともあり、主軸、R1軸、R2軸の順番である場合、Tリンクは[R1,R2]となり、Tリンクの要素はR1及びR2となる。一方、回転軸が主軸側にR2軸だけの場合、Tリンクは[R2]となり、Tリンクの要素はR2となる。他方、主軸側に回転軸がない場合、Tリンクは0となり、Tリンクの要素はなしとなる。
【0028】
前記機械に幾何誤差がない場合について説明する。工具先端点座標指令値をP(x,y,z)とし、工具の傾き指令値を回転軸の指令値で表すこととして、各回転軸の指令値をR1軸につきr1、R2軸につきr2とする。一方、Wリンクの要素がR1及びR2の場合、Wリンクに従った変換行列Mwlは次の[数3]となる。Wリンクに従うことは、換言すれば、Wリンクの要素の順番通り、R1に関する行列(R1に対応する回転変換行列、後述)をまず演算対象とし、次いでR2に関する行列(R2に対応する回転変換行列、後述)をR1に関する行列とにおいて演算するために、R2を前側に配置して被乗算行列として、行列の乗算を行うことを意味し、式での順番はWリンクの要素の順番と逆となる。なお、回転軸が3つ以上の場合でも、ここでの場合と同様に、式での順番を丁度逆にする(式の右から辿るとWリンクの要素の順序と同じとなる)。
【0029】
【数3】
【0030】
ここで、変換行列M1oiとM2oiはそれぞれ、機械座標系におけるR1軸,R2軸の回転中心位置D1(x1,y1,z1),D2(x2,y2,z2)を考慮した回転変換行列であり、下記[数4],[数5]から求めることができる。
【0031】
【数4】
【数5】
【0032】
[数4],[数5]における変換行列M1,M2は、回転軸R1、R2がX,Y,Z軸と平行なA,B,C軸周りの回転行列の何れかであり、それぞれの回転軸指令値をa,b,cとすると、次の[数6]の変換行列Ma,Mb,Mcの何れかを選択する。
【0033】
【数6】
【0034】
若しくは、回転軸の回転軸ベクトルをRv(λ,μ,ν)とし、回転軸の指令値をθとした場合、次の[数7]の変換行列Mωを選択する。
【0035】
【数7】
【0036】
要素がR1のみ若しくはR2のみの場合、変換行列MwlはM1oi若しくはM2oiとなり、Wリンクの要素がない場合は単位行列Iとなる。
【0037】
一方、Tリンクの要素がR1及びR2の場合、Tリンクに従った変換行列Mtlは次の[数8]となる。Tリンク[R1,R2]に従うので、変換行列Mtlは、R2に係る変換行列とR1に係る変換行列をこの順で乗算して算出されるものとなる。
【0038】
【数8】
【0039】
ここで、変換行列M1oとM2oはそれぞれ、下記[数9],[数10]から求めることができる。
【0040】
【数9】
【数10】
【0041】
一方、Tリンクの要素がR1のみ若しくはR2のみの場合、変換行列Mtlは、M1o若しくはM2oとなり、要素がない場合は単位行列Iとなる。
【0042】
各駆動軸の基準となる機械座標系に対するワークの基準座標系の原点をPw(xw,yw,zw)とし、ワーク基準座標系を機械座標系のX,Y,Z軸に対してそれぞれaw、bw、cwだけ回転させるとすると、機械座標系上の先端点指令値Po’は次の[数11]となる。
【0043】
【数11】
【0044】
ここで、変換行列Mwは、下記[数12]で求めることができる。ただしMaw,Mbw,Mcwの掛け合わせる順番を変更しても良い。
【0045】
【数12】
【0046】
更に、テーブル側回転軸により回転された機械座標系上の先端点指令値Pwlは、次の[数13]となる。
【0047】
【数13】
【0048】
一方、工具長をtとすると、主軸側回転軸により回転された回転軸基準点Ptlは次の[数14]となる。
【0049】
【数14】
【0050】
次に、機械座標系でのX,Y,Z軸の指令値Pm(xm,ym,zm)は、下記[数15]から求めることができる。
【0051】
【数15】
【0052】
更に、X,Y,Z軸の指令値Pn(X,Y,Z)は、次の[数16]から求める。
【0053】
【数16】
【0054】
ここで、τは並進軸の関係を表すものであり、各並進軸が直交している場合は単位行列Iとなる。図3の機械の場合、X軸とY軸は直交しておらず、図4に示すようにθだけ傾いている。この場合のτは下記[数17]となる。
【0055】
【数17】
【0056】
次に、機械に幾何誤差が存在する場合について説明する。幾何誤差としては、主軸(工具)の傾き誤差ωt(αt,βt,γt)、主軸(工具)の位置誤差δt(δxt,δyt,δzt)、各回転軸の中心位置誤差δ1(δx1,δy1,δz1)、δ2(δx2,δy2,δz2)、各回転軸の回転軸ベクトル傾き誤差ω1(α1,β1,γ1)、ω2(α2,β2,γ2)を考えることにする。Wリンクの要素がR1、R2の場合、Wリンク(の要素の順番)に従った幾何誤差を考慮した変換行列Mwl’は下記[数18]となる。
【0057】
【数18】
【0058】
ここで、変換行列M1oi’とM2oi’はそれぞれ、次に示す[数19],[数20]から求めることができる。
【0059】
【数19】
【数20】
【0060】
変換行列M1’は下記[数21]の変換行列Ma1,Mb1,Mc1、変換行列M2’は[数22]の変換行列Ma2,Mb2,Mc2のいずれかを選択する。
【0061】
【数21】
【数22】
【0062】
若しくは、回転軸の傾き誤差ω1、ω2の代わりに、傾き誤差を含んだ回転軸の回転軸ベクトルRv’(λ’,μ’,ν’)を用いて、下記[数23]の変換行列Mω’を選択する。
【0063】
【数23】
【0064】
一方、Tリンクの要素がR1及びR2の場合、Tリンクに従った幾何誤差を考慮した変換行列Mtl’は次の[数24]となる。
【0065】
【数24】
【0066】
ここで、変換行列M1o’とM2o’はそれぞれ、下記[数25],[数26]から求めることができる。
【0067】
【数25】
【数26】
【0068】
以上から、幾何誤差を考慮してテーブル側回転軸により回転された機械座標系上の先端点指令値Pwl’(第1ベクトル)は、下記[数27]から求めることができる。
【0069】
【数27】
【0070】
一方、主軸の傾き誤差(αs,βs,γs)、位置誤差(δxs,δys,δzs)がある場合の回転軸基準点Pt’(回転軸基準ベクトル)は下記[数28]となる。回転軸基準点Pt’は、下記[数28]の演算により、主軸の各種幾何的誤差を打ち消した基準点となり、当該幾何学的誤差の補償を適用したものとなる。
【0071】
【数28】
【0072】
更に、幾何誤差を考慮して主軸側回転軸により回転された回転軸基準点Ptl’(第2ベクトル)は次の[数29]となる。
【0073】
【数29】
【0074】
従って、幾何誤差を考慮したX,Y,Z軸の指令値Pn’(X’,Y’,Z’)は、下記[数30]から求めることができる。
【0075】
【数30】
【0076】
[第2形態]
第1形態において、Wリンク及びTリンクの各要素に従いマトリックス(行列)乗算を行っているが、このマトリックス乗算に代えて、以下に説明するような、当該要素毎に分類し場合分けした計算を行う。従って、本形態において、マトリックス計算は行われない。
【0077】
まず作動前の予備状態につき説明する。図1の5軸機のように2つの回転軸が何れもテーブル側にある場合、テーブル側の1番目の回転軸をR1、2番目の回転軸をR2とすると、Wリンクは、図5のように制御装置の記憶手段に記憶されている。又、主軸側に回転軸がない場合でもあるため、Tリンクには回転軸がないことを示す記号(図中では模式的に「−」で示す)が記録される。
【0078】
一方、図2の5軸機のように2つの回転軸が何れも主軸側にある場合、主軸側の1番目の回転軸をR1、2番目の回転軸をR2とすると、Tリンクは図6のように記録される。又、テーブル側に回転軸がない場合でもあるため、Wリンクには回転軸がないことを示す記号(図中では模式的に「−」で示す)が記録される。
【0079】
又、ワーク基準座標系の回転順番、回転角や原点は、予め記憶手段に記憶しておく。例えば、機械座標系のX,Y,Z軸周りの順番で回転させる場合、回転順番を示すOリンクの要素は、図7に示すように記録される。ここで、Wa,Wb,WcはそれぞれX,Y,Z軸周りのワーク基準座標系回転変換を示す。又、各回転角における三角関数(cos,sin)の値を予め計算して、回転角と関数値とで関係づけた状態で記憶手段に記憶しておく。
【0080】
これらの、機械タイプに合わせて記憶手段に記録されているWリンク・Tリンクの要素や、Oリンクないし三角関数値を、制御装置のプログラム(機械タイプにかかわらず共通)において読み込んでおく。
【0081】
そして、主に図8に示すように、誤差補償指令値の計算を行う。なお、ステップS1等を単にS1等という。
【0082】
始めに、ワーク基準座標系の並進・回転によりワーク基準座標系上の点である工具先端点指令値から機械座標系上の点Po’を求める(S1)。この計算の詳細な手順につき図9を用いて説明する。
【0083】
工具先端点指令値PoをPwl’(xwl,ywl,zwl)に代入する(S11)。次にOリンクの要素数の回数だけ要素の順番に従って要素毎に以下の計算を行い、ワーク基準座標系の回転を行う。即ち、制御装置は、Oリンクの記憶(要素数や記憶順)により、その要素数や順序について把握することができるところ、まずS12でカウンタiの初期化をする。次いで、S13でカウンタiが要素数を超えていないか判断する。超えていなければ、S13でYesであるから、S14に移行し要素の種類に応じて計算処理をS15〜S17の何れかに振り分ける。制御装置は、何れかの計算処理後、カウンタiを1増加すると共に(S18)、S13に戻って適宜処理を繰り返す。一方、S13でNoとなると、指令値の更新をして(S19)、処理を一旦終了する。なお、処理の繰り返しにつきカウンタを用いずフラグを用いるものとする等、各種処理を形式の異なるものに変更することができる。
【0084】
上記の例では、まずWaの場合、Pwl’のY,Z成分であるywl,zwlに対して加算2回、乗算4回を、S15において下記[数31]のように行う。
【0085】
【数31】
【0086】
次いでWbの場合、Pwl’のZ,X成分であるzwl,xwlに対して、加算2回、乗算4回を、S16において下記[数32]のように行う。
【0087】
【数32】
【0088】
続いて、Wcの場合、Pwl’のX,Y成分であるxwl,ywlに対して加算2回、乗算4回を、S17において下記[数33]のように行う。
【0089】
【数33】
【0090】
更に、ワーク基準座標系の原点オフセットを[数34]で計算する。この計算は、S15〜S17のそれぞれに含まれる。
【0091】
【数34】
【0092】
次に、制御装置は、S2(図8)に処理を移し、Wリンクに従ってPwl’を順次計算・更新していく。
【0093】
この処理の詳細につき、Wリンクの1番目の要素がR1、2番目の要素がR2である場合を例に、図10に従って説明する。前述のワーク基準座標系計算(図8のS1,図9)と同様に、Wリンクの要素数分だけ処理を繰り返すように、カウンタiが初期設定され(S21)、カウンタiに基づく判断がなされる(S22)。
【0094】
当初(i=0の場合)、テーブル側1番目の誤差を含んだ回転軸の中心位置Dw1’(xw1’,yw1’,zw1’)を、下記[数35]で示すように、先に計算してきたPwl’に対して減算して更新する(S23)。
【0095】
【数35】
【0096】
更に、Wリンク1番目の要素R1によって以下の3つの計算から選択して(S24)計算を行う(S25〜S27)。ここで、回転軸の傾き誤差をωw1(αw1,βw1,γw1)とする。
【0097】
Wリンク1番目の要素R1がAの場合、下記[数36]のようにCa,Sa,U,Ub,Uc,Sb,Scを計算した後に、下記[数37]のようにxwl,ywl,zwlを計算・更新する(S25)。
【0098】
【数36】
【数37】
【0099】
Wリンク1番目の要素R1がBの場合、下記[数38]のようにCb,Sb,U,Ua,Uc,Sa,Scを計算した後に、下記[数39]のようにxwl,ywl,zwlを計算・更新する(S26)。
【0100】
【数38】
【数39】
【0101】
Wリンク1番目の要素R1がCの場合、下記[数40]のようにCc,Sc,U,Ua,Uc,Sa,Sbを計算した後に、下記[数41]のようにxwl,ywl,zwlを計算・更新する(S27)。
【0102】
【数40】
【数41】
【0103】
このような振り分けによるAi〜Ciの何れかの回転とPwl’の更新後、テーブル側1番目の誤差を含んだ回転軸の中心位置Dw1’(xw1’,yw1’,zw1’)を、下記[数42]のようにPwl’に対して加算して更新する(S28)。
【0104】
【数42】
【0105】
この後、制御装置は、S29でカウンタiを更新してS22の判定に戻ることで、Wリンクの2番目以降の要素が存在するか否かの判定(S24)、ないし当該要素が存在する場合のその種類に基づく更新(S25〜S27の何れか)を順次行う。例えば、Wリンクの2番目の要素にR2が存在する場合、テーブル側2番目の誤差を含んだ回転軸の中心位置Dw2’(xw2’, yw2’, zw2’)、回転軸傾き誤差ωw2(αw2,βw2,γw2)を用いて、1番目の要素の計算と同様に、Pwl’に対して計算・更新を行っていく。
【0106】
続いて、Ptl’についての計算を行う(図8のS4,図11)。S4の前段階として、工具長tを含んだ基準点Pt’をPtl’に代入する(S3)。
【0107】
次いで、主軸の傾き誤差ωs(αs,βs,γs)、並進誤差δs(xs,ys,zs)を用いて下記[数43]の計算を行い、Ptl’を更新する。
【0108】
【数43】
【0109】
次に、Tリンクに従ってPtl’を順次計算・更新していく。この計算や更新について、主に図11に基づいて説明する。この計算は、基本的にはWリンクに従って行ったPwl’の計算(図10等)と同じである。
【0110】
カウンタiを用いてTリンクの要素数だけ処理を繰り返す(S31,S32)。Tリンクの1番目の要素にR1が存在する場合、主軸側1番目の誤差を含んだ回転軸の中心位置Dt1’(xt1’,yt1’,zt1’)をPtl’に対して減算・更新する(S33)。更に、Tリンク1番目の要素R1によってWリンクと同様に、[数36]・[数37],[数38]・[数39],[数40]・[数41]の3組の計算の何れかから選択して計算を行う(S34,S35〜37の何れか)。ここで、回転軸の傾き誤差をωt1(αt1,βt1,γt1)とする。ただし、この回転の方向は、Pwl’の計算が逆回転であり、Ptl’の計算は正回転であるため、[数36],[数38],[数40]のSa,Sb,Scは、それぞれ順に下記[数44],[数45],[数46]として計算する。
【0111】
【数44】
【数45】
【数46】
【0112】
更に、主軸側1番目の誤差を含んだ回転軸の中心位置Dt1’(xt1’, yt1’, zt1’)をPtl’に対して加算して更新する(S38)。処理繰り返し後(S39,S32以降)、Tリンクの2番目の要素にR2が存在する場合、主軸側2番目の誤差を含んだ回転軸の中心位置Dt2’(xt2’, yt2’, zt2’)、回転軸傾き誤差ωt2(αt2,βt2,γt2)を用いて、1番目の要素の計算と同様にPtl’に対して計算・更新を行っていく(S33,S34,S36,S38・・・)。以上で求めたPwl’とPtl’を下記[数47]で示すように足し合わせて、Pn’ (xn,yn,zn)を求める。並進軸が直交の場合、Pn’が幾何誤差を考慮した指令値となる。
【0113】
【数47】
【0114】
一方、並進軸が直交していない場合、その関係から場合分けして計算を行い、Pn’を更新する。更新後のPn’が、当該場合の幾何誤差を考慮した指令値である。例えば、図3の形態の場合は次の[数48]の計算を行い、xn,ynを更新する。
【0115】
【数48】
【符号の説明】
【0116】
1,11,21 ベッド
2,12,22 主軸頭
3,13,23 テーブル
4,14,24 トラニオンユニット
【技術分野】
【0001】
本発明は、並進あるいは回転運動可能な移動部を有する機械における当該移動体の移動制御にあって、機械の幾何学的な誤差を補償した指令値を演算する方法ないしプログラムに関するものである。
【背景技術】
【0002】
図1は当該工作機械の一例である、3つの並進軸と2つの回転軸を有する工作機械(5軸制御マシニングセンタ、5軸機)の模式図である。主軸頭2は、互いに直交する2つの並進軸(X軸・Z軸)によって、ベッド1に対して並進2自由度の運動が可能である。テーブル3は、2つの回転軸(A軸・C軸)及び1つの並進軸(Y軸)を含むトラニオンユニット4によって、回転2自由度及び並進1自由度の運動が可能である。A軸及びC軸は互いに直交し、Y軸はX軸及びZ軸に直交する。各軸は数値制御装置により制御されるサーボモータ(図示せず)により駆動され、この5軸機では、このような各軸の駆動により、主軸頭2に装着される工具を用いて、テーブル3に固定される被加工物(ワーク)を任意の形状に加工することが可能である。
【0003】
前記5軸機の動作指令方法として、各駆動軸の指令値を与える方法がある。この方法では、回転軸によりワークを回転させた場合、ワーク上の加工点も回転することから、実用的な加工精度を確保するには、この回転を考慮した並進軸の指令値が必要になる。このような並進軸の指令値を求めるためには、座標変換等の複雑な計算を要するため、一般的にはCAM等によって指令値を計算させて用いている。
【0004】
別の動作指令方法としては、前記工具の先端点と傾きを指令値として与える方法がある。数値制御装置が前記工具先端点と傾きを各駆動軸指令値に変換する、いわゆる工具先端点制御であるが、この指令方法を用いれば、複雑な座標変換等の計算を数値制御装置が行うため、指令値を簡単に作成できる。
【0005】
一方、前記5軸機の運動精度、及び運動精度が転写されるワークの形状精度に影響を及ぼす要因の一つとして、例えば、回転軸と並進軸の平行度や各回転軸間の回転中心の不一致等、5軸機の製造・組立により発生する各軸間の幾何学的な誤差(以下「幾何誤差」と呼ぶ)が大きな割合を占める場合がある。この幾何誤差を製造上無くすことは非常に困難であり、この幾何誤差を補償する手段として、特許文献1のような制御方法が提案されている。即ち、工具とワークの相対関係が誤差のない機械と同じになるような各軸の誤差補償指令値を、回転軸の中心ズレや傾き誤差を考慮して、工具先端点と傾きの指令値からマトリックスを用いた計算により求め、この誤差補償指令値により各軸を駆動することで幾何誤差を補償している。
【0006】
この誤差補償指令値を計算する方法において、5軸機の軸構成の違いによって、テーブル回転型、主軸回転型、主軸・テーブル混合型と3タイプに分けて各機械タイプについてそれぞれ計算式を用意している。テーブル回転型は、テーブル側に回転軸を2軸有するタイプであり、図1の形態の5軸制御工作機械がその一例である。主軸回転型は、主軸側に回転軸を2軸有するタイプである。
【0007】
図2は主軸回転型5軸機の一例の模式図である。主軸頭12は、並進軸であり互いに直交するY軸・Z軸によってベッド11に対して並進2自由度の運動が可能であり、更にユニバーサルヘッド14に内蔵され互いに直交した回転軸であるB軸・C軸によって回転2自由度の運動が可能である。一方、テーブル13は、並進軸でありY軸・Z軸に直交するX軸により、ベッド11に対して並進1自由度の運動が可能である。各軸は、NC装置により制御されるサーボモータ(図示せず)により駆動され、主軸回転型5軸機では、このような駆動により、主軸頭12に装着される工具を用いて、テーブル13に固定されるワークを任意の形状に加工することができる。
【0008】
図3は主軸・テーブル混合型5軸機の一例の模式図である。主軸・テーブル混合型は主軸側、回転軸側にそれぞれ回転軸を1軸ずつ有するタイプである。主軸頭22は、並進軸であるX軸・Y軸・Z軸によって、ベッド21に対して並進3自由度の運動が可能であり、更に旋回ヘッド24に内蔵された回転軸であるB軸によって、回転1自由度の運動が可能である。一方、テーブル23は、ベッド21に取り付けられている回転軸(C軸)の周りで回転1自由度の運動が可能である。各軸はNC装置により制御されるサーボモータ(図示せず)により駆動され、主軸・テーブル混合型5軸機では、主軸頭22に装着される工具を用いて、テーブル23に固定されるワークを任意の形状に加工することができる。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−272887号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、特許文献1のものでは、前記各機械タイプによって計算式を用意する必要があることから、汎用性がなく、機械タイプ毎に異なる実装や管理を施さなければならず、煩わしい。
【0011】
更に、それぞれの計算においては、次に示す[数1]のように、4行4列のマトリックスと4行1列のマトリックスの乗算を行っているが、この計算では、加算を12回、乗算を16回行う必要があり、計算量が非常に多いものとなっている。
【0012】
【数1】
【0013】
しかも、このような計算は、実際に必要な最小限の計算に比べて多大なものとなっている。即ち、実際の計算において、例えば並進運動のマトリックス計算を行う場合、次の[数2]のように加算3回のみを行うだけで良い。従って、このような計算は、無駄な加算・乗算を行う非常に効率の悪いものであり、処理能力の高いCPUを必要とする等コスト高となり処理速度の低下を招くという課題がある。
【0014】
【数2】
【0015】
そこで、本発明のうち、請求項1〜5,6に記載のものでは、5軸機(工作機械)を始めとする機械において、様々なタイプの機械において共通の計算を行えると共に、計算量を少なくでき、効率の良い計算が可能である制御方法,プログラムを提供することを目的とする。なお、特に請求項2,4に記載の発明では、更に並進軸が互いに直交していなくても指令値の計算を可能とすることも目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するために、請求項1に記載の発明は、互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、前記第1インデックスの示す前記回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値をマトリックス演算して第1ベクトルを求めると共に、前記第2インデックスの示す前記回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルをマトリックス演算して第2ベクトルを求め、前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とすることを特徴とするものである。
【0017】
請求項2に記載の発明は、上記発明にあって、前記並進軸が直交していない場合に、前記並進軸の相対角度を表すマトリックスを、前記補償値が適用された前記指令値に対して乗算し、前記補償値が適用された指令値を更新することを特徴とするものである。
【0018】
請求項3に記載の発明は、互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、前記第1インデックスの要素毎に計算処理を場合分けし、前記第1インデックスの回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値に対して前記場合分けされた計算処理を行って第1ベクトルを求めると共に、前記第2インデックスの要素毎に計算処理を場合分けし、前記第2インデックスの回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルに対して前記場合分けされた計算処理を行って第2ベクトルを求め、前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とすることを特徴とするものである。
【0019】
請求項4に記載の発明は、上記発明にあって、前記並進軸が直交していない場合に、前記並進軸の相対角度を用いて前記補償値が適用された前記指令値を変換して更新することを特徴とするものである。
【0020】
請求項5に記載の発明は、上記発明にあって、機械は工作機械であり、第1移動部は工具を装着可能な主軸であり、第2移動部はワークを載置可能なテーブルであることを特徴とするものである。
【0021】
上記目的を達成するために、請求項6に記載の発明は、上記の機械の移動部の制御方法をコンピュータに実行させるための機械の移動部制御プログラムであることを特徴とする。
【発明の効果】
【0022】
本発明によれば、様々なタイプの工作機械において共通の計算を行え、タイプ毎に計算式を用意する必要がなくなり汎用的にでき、用意していないタイプの機械にも対応できるようになって、導入や管理を容易に行える。又、並進軸が互いに直交していなくても指令値の計算が可能となるし、計算量を少なくでき、効率の良い計算が可能になり、処理能力が低く安価なCPUを採用することができるようになる。
【図面の簡単な説明】
【0023】
【図1】テーブル回転型5軸機の模式図である。
【図2】主軸回転型5軸機の模式図である。
【図3】主軸・テーブル混合型5軸機の模式図である。
【図4】軸の関係を示す模式図である。
【図5】図1の機械に対応するリンクの記憶状況(回転軸のつながり)を表す模式図である。
【図6】図2の機械に対応するリンクの記憶状況(回転軸のつながり)を表す模式図である。
【図7】機械座標系のX,Y,Z軸周りの順番で回転させる場合におけるリンク(ワーク基準座標系の回転順番を示すOリンク)の記憶状況を表す模式図である。
【図8】第2形態に係る誤差補償指令値の計算に関するフローチャートである。
【図9】図8のステップS1の詳細(Oリンクに従ったワーク基準座標系の回転計算処理)を表すフローチャートである。
【図10】図8のステップS2の詳細(Pwl’の計算処理)を表すフローチャートである。
【図11】図8のステップS4の詳細(Ptl’の計算処理)を表すフローチャートである。
【発明を実施するための形態】
【0024】
以下、本発明に係る実施の形態の例として、3つの並進軸(X軸・Y軸・Z軸)と2つの回転軸(R1軸・R2軸)を有する5軸機について説明する(第1形態及び第2形態)。このような5軸機は、第1移動部としての主軸(頭)と、第2移動部としてのテーブルを有し、主軸やテーブルは、当該並進軸や回転軸が適宜配置されることにより、並進移動や回転移動をする。又、このような5軸機にあっては、図1〜3で示す各種のタイプが存在する。図1で示すタイプは、R1軸・R2軸としてテーブル側のC軸・A軸が相当し、図2で示すタイプは、R1軸・R2軸として主軸側のB軸・C軸が相当し、図3で示すタイプは、R1軸・R2軸として主軸側のB軸・テーブル側のC軸が相当する。
【0025】
これら工作機械は、それぞれ図示しない制御装置(コンピュータ)を有しており、当該制御装置が出力する各種指令値に応じて対応する軸が駆動される。制御装置は、記憶手段を含んでおり、当該記憶手段は、揮発性若しくは不揮発性のメモリ、又はこれらの組合せ等により構成される。記憶手段には、指令値の適切な計算等を行うためのプログラムが格納されている。なお、工作機械として、3つの並進軸と2つの回転軸を有する5軸機以外の5軸機を用いても良いし、5軸以外の機械を用いても良い。又、工作機械として、マシニングセンタ(図1〜3)に代えて、旋盤、複合加工機、研削盤等を採用することができる。更に、工作機械に限らず、ロボット、産業機械、建築機械等の各種機械に適用しても良い。
【0026】
[第1形態]
ワークとテーブルの間に配置される回転軸の種類につきワーク側から並べた組をWリンクと呼ぶことにする。換言すれば、Wリンクは、ワークからテーブル側への回転軸へのつながり順番を表す(第1インデックス)。例えば、回転軸がテーブル側に2軸ともあり、ワーク、R1軸、R2軸の順番である場合、Wリンクは[R1,R2]となり、Wリンクの要素はR1及びR2となる。一方、回転軸がテーブル側にR1軸だけの場合、Wリンクは[R1]となり、Wリンクの要素はR1となる。他方、テーブル側に回転軸がない場合、Wリンクは0となり、Wリンクの要素はなしとなる。
【0027】
一方、主軸と機械本体の間に配置される回転軸の種類につき主軸側から並べた組をTリンクと呼ぶことにする。換言すれば、Tリンクは、主軸からの回転軸のつながり順番を表す(第2インデックス)。例えば、回転軸が主軸側に2軸ともあり、主軸、R1軸、R2軸の順番である場合、Tリンクは[R1,R2]となり、Tリンクの要素はR1及びR2となる。一方、回転軸が主軸側にR2軸だけの場合、Tリンクは[R2]となり、Tリンクの要素はR2となる。他方、主軸側に回転軸がない場合、Tリンクは0となり、Tリンクの要素はなしとなる。
【0028】
前記機械に幾何誤差がない場合について説明する。工具先端点座標指令値をP(x,y,z)とし、工具の傾き指令値を回転軸の指令値で表すこととして、各回転軸の指令値をR1軸につきr1、R2軸につきr2とする。一方、Wリンクの要素がR1及びR2の場合、Wリンクに従った変換行列Mwlは次の[数3]となる。Wリンクに従うことは、換言すれば、Wリンクの要素の順番通り、R1に関する行列(R1に対応する回転変換行列、後述)をまず演算対象とし、次いでR2に関する行列(R2に対応する回転変換行列、後述)をR1に関する行列とにおいて演算するために、R2を前側に配置して被乗算行列として、行列の乗算を行うことを意味し、式での順番はWリンクの要素の順番と逆となる。なお、回転軸が3つ以上の場合でも、ここでの場合と同様に、式での順番を丁度逆にする(式の右から辿るとWリンクの要素の順序と同じとなる)。
【0029】
【数3】
【0030】
ここで、変換行列M1oiとM2oiはそれぞれ、機械座標系におけるR1軸,R2軸の回転中心位置D1(x1,y1,z1),D2(x2,y2,z2)を考慮した回転変換行列であり、下記[数4],[数5]から求めることができる。
【0031】
【数4】
【数5】
【0032】
[数4],[数5]における変換行列M1,M2は、回転軸R1、R2がX,Y,Z軸と平行なA,B,C軸周りの回転行列の何れかであり、それぞれの回転軸指令値をa,b,cとすると、次の[数6]の変換行列Ma,Mb,Mcの何れかを選択する。
【0033】
【数6】
【0034】
若しくは、回転軸の回転軸ベクトルをRv(λ,μ,ν)とし、回転軸の指令値をθとした場合、次の[数7]の変換行列Mωを選択する。
【0035】
【数7】
【0036】
要素がR1のみ若しくはR2のみの場合、変換行列MwlはM1oi若しくはM2oiとなり、Wリンクの要素がない場合は単位行列Iとなる。
【0037】
一方、Tリンクの要素がR1及びR2の場合、Tリンクに従った変換行列Mtlは次の[数8]となる。Tリンク[R1,R2]に従うので、変換行列Mtlは、R2に係る変換行列とR1に係る変換行列をこの順で乗算して算出されるものとなる。
【0038】
【数8】
【0039】
ここで、変換行列M1oとM2oはそれぞれ、下記[数9],[数10]から求めることができる。
【0040】
【数9】
【数10】
【0041】
一方、Tリンクの要素がR1のみ若しくはR2のみの場合、変換行列Mtlは、M1o若しくはM2oとなり、要素がない場合は単位行列Iとなる。
【0042】
各駆動軸の基準となる機械座標系に対するワークの基準座標系の原点をPw(xw,yw,zw)とし、ワーク基準座標系を機械座標系のX,Y,Z軸に対してそれぞれaw、bw、cwだけ回転させるとすると、機械座標系上の先端点指令値Po’は次の[数11]となる。
【0043】
【数11】
【0044】
ここで、変換行列Mwは、下記[数12]で求めることができる。ただしMaw,Mbw,Mcwの掛け合わせる順番を変更しても良い。
【0045】
【数12】
【0046】
更に、テーブル側回転軸により回転された機械座標系上の先端点指令値Pwlは、次の[数13]となる。
【0047】
【数13】
【0048】
一方、工具長をtとすると、主軸側回転軸により回転された回転軸基準点Ptlは次の[数14]となる。
【0049】
【数14】
【0050】
次に、機械座標系でのX,Y,Z軸の指令値Pm(xm,ym,zm)は、下記[数15]から求めることができる。
【0051】
【数15】
【0052】
更に、X,Y,Z軸の指令値Pn(X,Y,Z)は、次の[数16]から求める。
【0053】
【数16】
【0054】
ここで、τは並進軸の関係を表すものであり、各並進軸が直交している場合は単位行列Iとなる。図3の機械の場合、X軸とY軸は直交しておらず、図4に示すようにθだけ傾いている。この場合のτは下記[数17]となる。
【0055】
【数17】
【0056】
次に、機械に幾何誤差が存在する場合について説明する。幾何誤差としては、主軸(工具)の傾き誤差ωt(αt,βt,γt)、主軸(工具)の位置誤差δt(δxt,δyt,δzt)、各回転軸の中心位置誤差δ1(δx1,δy1,δz1)、δ2(δx2,δy2,δz2)、各回転軸の回転軸ベクトル傾き誤差ω1(α1,β1,γ1)、ω2(α2,β2,γ2)を考えることにする。Wリンクの要素がR1、R2の場合、Wリンク(の要素の順番)に従った幾何誤差を考慮した変換行列Mwl’は下記[数18]となる。
【0057】
【数18】
【0058】
ここで、変換行列M1oi’とM2oi’はそれぞれ、次に示す[数19],[数20]から求めることができる。
【0059】
【数19】
【数20】
【0060】
変換行列M1’は下記[数21]の変換行列Ma1,Mb1,Mc1、変換行列M2’は[数22]の変換行列Ma2,Mb2,Mc2のいずれかを選択する。
【0061】
【数21】
【数22】
【0062】
若しくは、回転軸の傾き誤差ω1、ω2の代わりに、傾き誤差を含んだ回転軸の回転軸ベクトルRv’(λ’,μ’,ν’)を用いて、下記[数23]の変換行列Mω’を選択する。
【0063】
【数23】
【0064】
一方、Tリンクの要素がR1及びR2の場合、Tリンクに従った幾何誤差を考慮した変換行列Mtl’は次の[数24]となる。
【0065】
【数24】
【0066】
ここで、変換行列M1o’とM2o’はそれぞれ、下記[数25],[数26]から求めることができる。
【0067】
【数25】
【数26】
【0068】
以上から、幾何誤差を考慮してテーブル側回転軸により回転された機械座標系上の先端点指令値Pwl’(第1ベクトル)は、下記[数27]から求めることができる。
【0069】
【数27】
【0070】
一方、主軸の傾き誤差(αs,βs,γs)、位置誤差(δxs,δys,δzs)がある場合の回転軸基準点Pt’(回転軸基準ベクトル)は下記[数28]となる。回転軸基準点Pt’は、下記[数28]の演算により、主軸の各種幾何的誤差を打ち消した基準点となり、当該幾何学的誤差の補償を適用したものとなる。
【0071】
【数28】
【0072】
更に、幾何誤差を考慮して主軸側回転軸により回転された回転軸基準点Ptl’(第2ベクトル)は次の[数29]となる。
【0073】
【数29】
【0074】
従って、幾何誤差を考慮したX,Y,Z軸の指令値Pn’(X’,Y’,Z’)は、下記[数30]から求めることができる。
【0075】
【数30】
【0076】
[第2形態]
第1形態において、Wリンク及びTリンクの各要素に従いマトリックス(行列)乗算を行っているが、このマトリックス乗算に代えて、以下に説明するような、当該要素毎に分類し場合分けした計算を行う。従って、本形態において、マトリックス計算は行われない。
【0077】
まず作動前の予備状態につき説明する。図1の5軸機のように2つの回転軸が何れもテーブル側にある場合、テーブル側の1番目の回転軸をR1、2番目の回転軸をR2とすると、Wリンクは、図5のように制御装置の記憶手段に記憶されている。又、主軸側に回転軸がない場合でもあるため、Tリンクには回転軸がないことを示す記号(図中では模式的に「−」で示す)が記録される。
【0078】
一方、図2の5軸機のように2つの回転軸が何れも主軸側にある場合、主軸側の1番目の回転軸をR1、2番目の回転軸をR2とすると、Tリンクは図6のように記録される。又、テーブル側に回転軸がない場合でもあるため、Wリンクには回転軸がないことを示す記号(図中では模式的に「−」で示す)が記録される。
【0079】
又、ワーク基準座標系の回転順番、回転角や原点は、予め記憶手段に記憶しておく。例えば、機械座標系のX,Y,Z軸周りの順番で回転させる場合、回転順番を示すOリンクの要素は、図7に示すように記録される。ここで、Wa,Wb,WcはそれぞれX,Y,Z軸周りのワーク基準座標系回転変換を示す。又、各回転角における三角関数(cos,sin)の値を予め計算して、回転角と関数値とで関係づけた状態で記憶手段に記憶しておく。
【0080】
これらの、機械タイプに合わせて記憶手段に記録されているWリンク・Tリンクの要素や、Oリンクないし三角関数値を、制御装置のプログラム(機械タイプにかかわらず共通)において読み込んでおく。
【0081】
そして、主に図8に示すように、誤差補償指令値の計算を行う。なお、ステップS1等を単にS1等という。
【0082】
始めに、ワーク基準座標系の並進・回転によりワーク基準座標系上の点である工具先端点指令値から機械座標系上の点Po’を求める(S1)。この計算の詳細な手順につき図9を用いて説明する。
【0083】
工具先端点指令値PoをPwl’(xwl,ywl,zwl)に代入する(S11)。次にOリンクの要素数の回数だけ要素の順番に従って要素毎に以下の計算を行い、ワーク基準座標系の回転を行う。即ち、制御装置は、Oリンクの記憶(要素数や記憶順)により、その要素数や順序について把握することができるところ、まずS12でカウンタiの初期化をする。次いで、S13でカウンタiが要素数を超えていないか判断する。超えていなければ、S13でYesであるから、S14に移行し要素の種類に応じて計算処理をS15〜S17の何れかに振り分ける。制御装置は、何れかの計算処理後、カウンタiを1増加すると共に(S18)、S13に戻って適宜処理を繰り返す。一方、S13でNoとなると、指令値の更新をして(S19)、処理を一旦終了する。なお、処理の繰り返しにつきカウンタを用いずフラグを用いるものとする等、各種処理を形式の異なるものに変更することができる。
【0084】
上記の例では、まずWaの場合、Pwl’のY,Z成分であるywl,zwlに対して加算2回、乗算4回を、S15において下記[数31]のように行う。
【0085】
【数31】
【0086】
次いでWbの場合、Pwl’のZ,X成分であるzwl,xwlに対して、加算2回、乗算4回を、S16において下記[数32]のように行う。
【0087】
【数32】
【0088】
続いて、Wcの場合、Pwl’のX,Y成分であるxwl,ywlに対して加算2回、乗算4回を、S17において下記[数33]のように行う。
【0089】
【数33】
【0090】
更に、ワーク基準座標系の原点オフセットを[数34]で計算する。この計算は、S15〜S17のそれぞれに含まれる。
【0091】
【数34】
【0092】
次に、制御装置は、S2(図8)に処理を移し、Wリンクに従ってPwl’を順次計算・更新していく。
【0093】
この処理の詳細につき、Wリンクの1番目の要素がR1、2番目の要素がR2である場合を例に、図10に従って説明する。前述のワーク基準座標系計算(図8のS1,図9)と同様に、Wリンクの要素数分だけ処理を繰り返すように、カウンタiが初期設定され(S21)、カウンタiに基づく判断がなされる(S22)。
【0094】
当初(i=0の場合)、テーブル側1番目の誤差を含んだ回転軸の中心位置Dw1’(xw1’,yw1’,zw1’)を、下記[数35]で示すように、先に計算してきたPwl’に対して減算して更新する(S23)。
【0095】
【数35】
【0096】
更に、Wリンク1番目の要素R1によって以下の3つの計算から選択して(S24)計算を行う(S25〜S27)。ここで、回転軸の傾き誤差をωw1(αw1,βw1,γw1)とする。
【0097】
Wリンク1番目の要素R1がAの場合、下記[数36]のようにCa,Sa,U,Ub,Uc,Sb,Scを計算した後に、下記[数37]のようにxwl,ywl,zwlを計算・更新する(S25)。
【0098】
【数36】
【数37】
【0099】
Wリンク1番目の要素R1がBの場合、下記[数38]のようにCb,Sb,U,Ua,Uc,Sa,Scを計算した後に、下記[数39]のようにxwl,ywl,zwlを計算・更新する(S26)。
【0100】
【数38】
【数39】
【0101】
Wリンク1番目の要素R1がCの場合、下記[数40]のようにCc,Sc,U,Ua,Uc,Sa,Sbを計算した後に、下記[数41]のようにxwl,ywl,zwlを計算・更新する(S27)。
【0102】
【数40】
【数41】
【0103】
このような振り分けによるAi〜Ciの何れかの回転とPwl’の更新後、テーブル側1番目の誤差を含んだ回転軸の中心位置Dw1’(xw1’,yw1’,zw1’)を、下記[数42]のようにPwl’に対して加算して更新する(S28)。
【0104】
【数42】
【0105】
この後、制御装置は、S29でカウンタiを更新してS22の判定に戻ることで、Wリンクの2番目以降の要素が存在するか否かの判定(S24)、ないし当該要素が存在する場合のその種類に基づく更新(S25〜S27の何れか)を順次行う。例えば、Wリンクの2番目の要素にR2が存在する場合、テーブル側2番目の誤差を含んだ回転軸の中心位置Dw2’(xw2’, yw2’, zw2’)、回転軸傾き誤差ωw2(αw2,βw2,γw2)を用いて、1番目の要素の計算と同様に、Pwl’に対して計算・更新を行っていく。
【0106】
続いて、Ptl’についての計算を行う(図8のS4,図11)。S4の前段階として、工具長tを含んだ基準点Pt’をPtl’に代入する(S3)。
【0107】
次いで、主軸の傾き誤差ωs(αs,βs,γs)、並進誤差δs(xs,ys,zs)を用いて下記[数43]の計算を行い、Ptl’を更新する。
【0108】
【数43】
【0109】
次に、Tリンクに従ってPtl’を順次計算・更新していく。この計算や更新について、主に図11に基づいて説明する。この計算は、基本的にはWリンクに従って行ったPwl’の計算(図10等)と同じである。
【0110】
カウンタiを用いてTリンクの要素数だけ処理を繰り返す(S31,S32)。Tリンクの1番目の要素にR1が存在する場合、主軸側1番目の誤差を含んだ回転軸の中心位置Dt1’(xt1’,yt1’,zt1’)をPtl’に対して減算・更新する(S33)。更に、Tリンク1番目の要素R1によってWリンクと同様に、[数36]・[数37],[数38]・[数39],[数40]・[数41]の3組の計算の何れかから選択して計算を行う(S34,S35〜37の何れか)。ここで、回転軸の傾き誤差をωt1(αt1,βt1,γt1)とする。ただし、この回転の方向は、Pwl’の計算が逆回転であり、Ptl’の計算は正回転であるため、[数36],[数38],[数40]のSa,Sb,Scは、それぞれ順に下記[数44],[数45],[数46]として計算する。
【0111】
【数44】
【数45】
【数46】
【0112】
更に、主軸側1番目の誤差を含んだ回転軸の中心位置Dt1’(xt1’, yt1’, zt1’)をPtl’に対して加算して更新する(S38)。処理繰り返し後(S39,S32以降)、Tリンクの2番目の要素にR2が存在する場合、主軸側2番目の誤差を含んだ回転軸の中心位置Dt2’(xt2’, yt2’, zt2’)、回転軸傾き誤差ωt2(αt2,βt2,γt2)を用いて、1番目の要素の計算と同様にPtl’に対して計算・更新を行っていく(S33,S34,S36,S38・・・)。以上で求めたPwl’とPtl’を下記[数47]で示すように足し合わせて、Pn’ (xn,yn,zn)を求める。並進軸が直交の場合、Pn’が幾何誤差を考慮した指令値となる。
【0113】
【数47】
【0114】
一方、並進軸が直交していない場合、その関係から場合分けして計算を行い、Pn’を更新する。更新後のPn’が、当該場合の幾何誤差を考慮した指令値である。例えば、図3の形態の場合は次の[数48]の計算を行い、xn,ynを更新する。
【0115】
【数48】
【符号の説明】
【0116】
1,11,21 ベッド
2,12,22 主軸頭
3,13,23 テーブル
4,14,24 トラニオンユニット
【特許請求の範囲】
【請求項1】
互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、
第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、
第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、
前記第1インデックスの示す前記回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値をマトリックス演算して第1ベクトルを求めると共に、
前記第2インデックスの示す前記回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルをマトリックス演算して第2ベクトルを求め、
前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とする
ことを特徴とする機械の移動部の制御方法。
【請求項2】
前記並進軸が直交していない場合に、前記並進軸の相対角度を表すマトリックスを、前記補償値が適用された前記指令値に対して乗算し、前記補償値が適用された指令値を更新することを特徴とする請求項1に記載の機械の移動部の制御方法。
【請求項3】
互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、
第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、
第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、
前記第1インデックスの要素毎に計算処理を場合分けし、前記第1インデックスの回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値に対して前記場合分けされた計算処理を行って第1ベクトルを求めると共に、
前記第2インデックスの要素毎に計算処理を場合分けし、前記第2インデックスの回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルに対して前記場合分けされた計算処理を行って第2ベクトルを求め、
前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とする
ことを特徴とする機械の移動部の制御方法。
【請求項4】
前記並進軸が直交していない場合に、前記並進軸の相対角度を用いて前記補償値が適用された前記指令値を変換して更新することを特徴とする請求項3に記載の機械の移動部の制御方法。
【請求項5】
機械は工作機械であり、
第1移動部は工具を装着可能な主軸であり、
第2移動部はワークを載置可能なテーブルである
ことを特徴とする請求項1ないし請求項4の何れかに記載の機械の移動部の制御方法。
【請求項6】
請求項1ないし請求項5の何れかに記載の機械の移動部の制御方法を、コンピュータに実行させるための機械の移動部の制御プログラム。
【請求項1】
互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、
第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、
第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、
前記第1インデックスの示す前記回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値をマトリックス演算して第1ベクトルを求めると共に、
前記第2インデックスの示す前記回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルをマトリックス演算して第2ベクトルを求め、
前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とする
ことを特徴とする機械の移動部の制御方法。
【請求項2】
前記並進軸が直交していない場合に、前記並進軸の相対角度を表すマトリックスを、前記補償値が適用された前記指令値に対して乗算し、前記補償値が適用された指令値を更新することを特徴とする請求項1に記載の機械の移動部の制御方法。
【請求項3】
互いに相対的に移動可能な第1移動部及び第2移動部を備えた機械において、これらのうちの何れかに、少なくとも2つの並進軸と、少なくとも1つの回転軸がそれぞれ配置され、前記機械の幾何学的な誤差を補償するための補償値が適用された複数の指令値を用いて前記第1移動部及び/又は第2移動部の移動を制御する制御方法であって、
第1移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第1インデックスと、
第2移動部側における前記回転軸の有無ないし有る場合のつながり順番を示す第2インデックスとを有し、
前記第1インデックスの要素毎に計算処理を場合分けし、前記第1インデックスの回転軸の有無ないしつながり順番に従って、第2移動部の座標系における前記指令値に対して前記場合分けされた計算処理を行って第1ベクトルを求めると共に、
前記第2インデックスの要素毎に計算処理を場合分けし、前記第2インデックスの回転軸の有無ないしつながり順番に従って、第1移動部の基準ベクトルに対して前記場合分けされた計算処理を行って第2ベクトルを求め、
前記第1ベクトルと前記第2ベクトルを合算することで前記補償値が適用された前記指令値とする
ことを特徴とする機械の移動部の制御方法。
【請求項4】
前記並進軸が直交していない場合に、前記並進軸の相対角度を用いて前記補償値が適用された前記指令値を変換して更新することを特徴とする請求項3に記載の機械の移動部の制御方法。
【請求項5】
機械は工作機械であり、
第1移動部は工具を装着可能な主軸であり、
第2移動部はワークを載置可能なテーブルである
ことを特徴とする請求項1ないし請求項4の何れかに記載の機械の移動部の制御方法。
【請求項6】
請求項1ないし請求項5の何れかに記載の機械の移動部の制御方法を、コンピュータに実行させるための機械の移動部の制御プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−65254(P2013−65254A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−204679(P2011−204679)
【出願日】平成23年9月20日(2011.9.20)
【出願人】(000149066)オークマ株式会社 (476)
【Fターム(参考)】
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願日】平成23年9月20日(2011.9.20)
【出願人】(000149066)オークマ株式会社 (476)
【Fターム(参考)】
[ Back to top ]