(58)【調査した分野】(Int.Cl.,DB名)
テーブルに取付けられたワーク(加工物)に対して少なくとも直線軸3軸によって加工する工作機械を制御するとともに、前記工作機械に対する誤差補正を行う誤差補正部を備えた数値制御装置において、
前記誤差補正部は、前記工作機械のベッドから工具先端点への工具ヘッド側の1個または複数個のリンクベクトルを合成したヘッド側合成リンクベクトルおよび前記工作機械のベッドから工具先端点へのテーブル側の1個または複数個のリンクベクトルを合成したテーブル側合成リンクベクトルに対して伸縮誤差量による演算を行いヘッド側合成誤差リンクベクトルおよびテーブル側合成誤差リンクベクトルを作成し、前記テーブル側合成誤差リンクベクトルと前記ヘッド側合成誤差リンクベクトルとの差分によって補正量を演算する機能を有することを特徴とする誤差補正部を備えた数値制御装置。
前記リンクベクトルは、ベッド固定点またはリンク軸順における軸駆動部誤差原点から次軸の軸駆動部誤差原点または工具先端点へのベクトルであることを特徴とする請求項1に記載の誤差補正部を備えた数値制御装置。
前記伸縮誤差量による演算は、前記1個または複数個のリンクベクトルの第1、第2および第3要素に(1+伸縮誤差量)を乗算する演算であることを特徴とする請求項1乃至請求項3のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記伸縮誤差量は、外部からの入力値、別途設定された設定値、または加工プログラムによる指令値であることを特徴とする請求項1乃至請求項4のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記伸縮誤差量は、前記工作機械電源オンからの時間による関数、または前記工作機械における主軸回転数または主軸回転時間の関数であることを特徴とする請求項1乃至請求項4のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記誤差補正部は、前記伸縮誤差量に加えて並進誤差量または回転誤差量による誤差リンクベクトルの演算を行うことを特徴とする請求項1乃至請求項6のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記並進誤差量または前記回転誤差量は、各軸位置に対応した誤差量が設定されている誤差量データテーブルと該各軸位置によって演算される値であることを特徴とする請求項7に記載の誤差補正部を備えた数値制御装置。
前記工作機械は、テーブルに取付けられたワーク(加工物)に対して直線軸3軸によって加工する3軸加工機であることを特徴とする請求項1乃至請求項8のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記工作機械は、テーブルに取付けられたワーク(加工物)に対して直線軸3軸とヘッド回転用回転軸2軸によって加工する5軸加工機であることを特徴とする請求項1乃至請求項8に記載の誤差補正部を備えた数値制御装置。
前記工作機械は、テーブルに取付けられたワーク(加工物)に対して直線軸3軸とテーブル回転用回転軸2軸によって加工する5軸加工機であることを特徴とする請求項1乃至請求項8に記載の誤差補正部を備えた数値制御装置。
前記工作機械は、テーブルに取付けられたワーク(加工物)に対して直線軸3軸とヘッド回転用回転軸1軸とテーブル回転用回転軸1軸によって加工する5軸加工機であることを特徴とする請求項1乃至請求項8に記載の誤差補正部を備えた数値制御装置。
前記リンクベクトルに対する伸縮誤差、並進誤差または回転誤差について、着目する必要のない誤差について0とする、または前記リンクベクトルについて、着目する必要のないリンクベクトルは0ベクトルとすることを特徴とする請求項1乃至請求項12のいずれか1つに記載の誤差補正部を備えた数値制御装置。
前記リンクベクトルのうち関連性の強いリンクベクトル同士を結合してリンクベクトルとすることを特徴とする請求項1乃至請求項13のいずれか1つに記載の誤差補正部を備えた数値制御装置。
【図面の簡単な説明】
【0013】
【
図1】工具ヘッドが回転軸によって傾斜している場合に工具軸方向の熱変位誤差を補正する技術を説明する図である。
【
図2】ヘッド回転型の5軸加工機の機械構成を説明する図である。
【
図3】
図2に示されるヘッド回転型の5軸加工機の機械構成におけるリンクベクトルを説明する図である。
【
図4】5軸加工機のY軸コラムにおける誤差を説明する図である。
【
図5】5軸加工機のZ軸コラム上のC軸ヘッドの位置による誤差、EXC(c),EYC(c),EZC(c),EAC(c),EBC(c),ECC(c)を説明する図である。
【
図6】ベッド固定点PbからX軸駆動部誤差原点へのリンクベクトルVhおよびベッド固定点Pbから工具先端点へのリンクベクトルVt、それらに対する伸縮誤差量EVhおよびEVtを生じる伸縮(伸長・縮小)を説明する図である。
【
図7】リンクベクトルVhと伸縮誤差量EVhとの関係を説明する図である。
【
図8】リンクベクトルVxと誤差(伸縮誤差、並進誤差、回転誤差)との関係を説明する図である。
【
図9】リンクベクトルVyと誤差との関係を説明する図である。
【
図10】リンクベクトルVzと誤差との関係を説明する図である。
【
図11】リンクベクトルVcと誤差との関係を説明する図である。
【
図12】リンクベクトルVaと誤差との関係を説明する図である。
【
図13】リンクベクトルVtと誤差との関係を説明する図である。
【
図14】ヘッド側合成リンクベクトルVLhおよびテーブル側合成リンクベクトルVLtを説明する図である。
【
図15】数3式,数5式および数7式をベクトル図として図示したものである。
【
図16】ヘッド側合成リンクベクトルVLh,テーブル側合成リンクベクトルVLt,ヘッド側合成誤差リンクベクトルVLh’およびテーブル側合成誤差リンクベクトルVLt’の関係と補正量Δ3DとヘッドおよびZ軸コラムとの関係を説明する図である。
【
図17】X軸位置による並進誤差量およびX軸位置による回転誤差量の設定を説明する図である。
【
図18】本発明の誤差補正部を備えた数値制御装置を説明する図である。
【
図19】本発明の第1の実施形態における誤差補正部が行う補正処理のアルゴリズムのフローチャートである。
【
図20】テーブル回転型の5軸加工機の機械構成を説明する図である。
【
図21】Y軸テーブルの誤差量の方向について説明する図である。
【
図22】
図20に示される機械構成の5軸加工機におけるリンクベクトルVt,Vy,Vx,Vb,Vc,Vh,Vz、および、(x,y,z)=(0,0,0)の時のPx0、Py0,Pz0,Pb0を示す図である。
【
図23】リンクベクトルVtと誤差との関係を説明する図である。
【
図24】リンクベクトルVyと誤差との関係を説明する図である。
【
図25】リンクベクトルVxと誤差との関係を説明する図である。
【
図26】リンクベクトルVbと誤差との関係を説明する図である。
【
図27】リンクベクトルVcと誤差との関係を説明する図である。
【
図28】リンクベクトルVhと誤差との関係を説明する図である。
【
図29】リンクベクトルVzと誤差との関係を説明する図である。
【
図32】VLh,VLh’,VLt,VLt’の関係と、Δ3Dと、工具ヘッドとの関係を説明する図である。
【
図33】X,Y,Z軸間で関連性が強く、C,A軸間で関連性が強い場合のリンクベクトルを説明する図である。
【
図34】X,Y,Z軸間で関連性が強く、C,A軸間で関連性が強く、Vcは十分に無視できる場合のリンクベクトルを説明する図である。
【
図35】リンクベクトルVhと伸縮誤差量EVhとの関係を説明する図である。
【
図36】リンクベクトルVxyzと伸縮誤差量EVxyzを含む誤差との関係を説明する図である。
【
図37】リンクベクトルVcaと伸縮誤差量EVcaを含む誤差との関係を説明する図である。
【
図38】リンクベクトルVtと伸縮誤差量EVtとの関係を説明する図である。
【
図39】数32式で求められるヘッド側合成リンクベクトルVLh、数34式で求められるテーブル側合成リンクベクトルVLtのベクトル図である。
【
図40】数31式、数33式および数35式を図示して説明する図である。
【
図41】誤差量データテーブル、および、X,Y,Z軸位置が(x1,y0,z1)において並進誤差量および回転誤差量が設定されていることを説明する図である。
【
図42】X,Y,Z軸位置が(x,y,z)の時の並進誤差量および回転誤差量を誤差量データテーブルのデータから比例配分で求めることを説明する図である。
【
図43】C,A軸依存の誤差量を説明する図である。
【
図44】C,A軸位置が(c,a)の時の並進誤差量および回転誤差量を誤差量データテーブルに記憶された最寄の位置のデータから比例配分で求めることを説明する図である。
【
図45】テーブルに回転軸C軸がありヘッドに回転軸B軸がある混合型の5軸加工機の一例を示す図である。
【
図46】本発明を適用した一実施形態の誤差補正部を備えた数値制御装置の構成を概略で示すブロック図である。
【発明を実施するための形態】
【0014】
本発明は、工作機械を制御する数値制御装置に関し、特に、テーブルに取付けられたワーク(加工物)に対して少なくとも直線軸3軸によって加工する工作機械を制御するとともに、該工作機械を構成するリンクベクトルに対して誤差補正を行う誤差補正部を有する数値制御装置である。前記誤差補正部は、リンクベクトルに対して伸縮誤差補正を行う、あるいは、伸縮誤差補正に加えて、並進誤差補正、および回転誤差補正を行う数値制御装置である。以下、本発明の実施形態を図面と共に説明する。
【0015】
(第1の実施形態)
図2は、ヘッド回転型の5軸加工機の機械構成を説明する図である。両端部が立設する構造のベッドに架設されるX軸コラムには、Y軸コラムが取付けられている。Y軸コラムにはZ軸コラムが取付けられている。工具が取付けられたA軸ヘッドがC軸ヘッドに取付けられ、C軸ヘッドがZ軸コラムに取付けられている。ベッド上にはテーブルが備えられ、その上にワークが載せられて工具先端点で加工する。X軸コラムやC軸ヘッドなどはX軸やC軸で動作する部分を指す。ここでの実施形態としては
図2のような5軸加工機の機械構成で説明する。回転軸はC軸とA軸としているが、他の軸(C,B軸やA,B軸など)の組み合わせもある。また、以降で回転軸に関する処理や演算を除けば3軸加工機での誤差補正となるが、それは機械構成としては
図2の機械構成においてA軸ヘッドやC軸ヘッドを除いた機械構成に対応する。
【0016】
<リンクベクトル>
ここで、リンクベクトルについて説明する。リンクベクトルとは、工作機械のベッド固定点から工具を含む工具ヘッドを経由した工具先端点への、または工作機械のベッド固定点からテーブルを経由した工具先端点への各軸間の結合を示すベクトルである。ベッド固定点はベッド内における誤差がないと想定する位置である。各軸の軸駆動部は、X軸コラム、C軸ヘッドなど各軸によって駆動する部分であり、各軸の軸駆動部誤差原点は、各軸の軸駆動部において誤差が発生する原点であり各リンクベクトル同士の結合点である。
図2におけるリンクベクトルは
図3のように表される。図示の便宜上、
図3ではワークを除いている。また、
図3は機械座標位置(x,y,z)=(0,0,0)の時の図でもある。
【0017】
Vh:ベッド固定点からX軸駆動部(X軸コラム)誤差原点へのリンクベクトル(ベッド
固定点から工具ヘッドを経由する最初のリンクベクトル)
Vx:X軸駆動部(X軸コラム)誤差原点からY軸駆動部(Y軸コラム)誤差原点へのリ
ンクベクトル
Vy:Y軸駆動部(Y軸コラム)誤差原点からZ軸駆動部(Z軸コラム)誤差原点へのリ
ンクベクトル
Vz:Z軸駆動部(Z軸コラム)誤差原点からC軸駆動部(C軸ヘッド)誤差原点へのリ
ンクベクトル
Vc:C軸駆動部(C軸ヘッド)誤差原点からA軸駆動部(A軸ヘッド)誤差原点へのリ
ンクベクトル
Va:A軸駆動部(A軸ヘッド)誤差原点から工具先端点へのリンクベクトル
Vt:ベッド固定点から工具先端点へのリンクベクトル(ベッド固定点からテーブルを経
由する最初のリンクベクトル)
【0018】
ここで、X,Y,Z軸の機械座標位置(x,y,z)はA軸ヘッド回転中心中央(A軸回転誤差中心)とする。X軸駆動部(X軸コラム)誤差原点はベッドとX軸コラムの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPx0とする。Y軸駆動部(Y軸コラム)誤差原点はX軸コラムとY軸コラムの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPy0とする。Z軸駆動部(Z軸コラム)誤差原点(Pz0)はY軸コラムとZ軸コラムの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPz0とする。C軸駆動部(C軸ヘッド)誤差原点はZ軸コラムとC軸ヘッドの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPc0とする。A軸駆動部(A軸ヘッド)誤差原点は工具を含めたA軸ヘッドの回転中心中央であるとし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPa0とする。したがって、Pa0=(0,0,0)である。ベッド固定点の位置をPbとする。
【0019】
Vc、Vaを無視する(Vc=Va=0としVzをZ軸駆動部誤差原点から工具先端点へのリンクベクトルとする)と、3軸加工機での誤差補正となる。また、
図3におけるX,Y,Z軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点(機械座標位置(x,y,z)=(0,0,0))ではなく、機械座標系原点は図中Pa0としている。
【0020】
<リンクベクトル演算>
それぞれのリンクベクトルは、ここでは同次座標系で数1式のように演算する。x,y,z,a,cは機械座標位置(機械座標系上の各軸位置)である。したがって、x,y,zはX,Y,Z軸の移動とともに変化する。「
T」は転置を示すが、以降自明の場合は省略する。(Py0,0)などの表記は第1〜第3要素がPy0のx,y,z要素であり、第4要素が0のベクトルを示す。Px0,Py0,Pz0,Pc0,Pa0,Pbはパラメータなどの設定値として設定されている。
【0022】
ここで、Va(Vax,Vay,Vaz,1)はA,C軸の回転によって数2式で表される。aはA軸位置(機械座標位置)、cはC軸位置(機械座標位置)である。hはA軸ヘッド回転中心から工具先端点への工具長を含めた距離であり、工具長補正量と定数から求められる。工具は、a=0,c=0の時、Z軸マイナス方向を向くとする。回転軸(C,A軸)要素を除けば、つまり、Vc=Va=0としVzを工具先端点へのベクトルとし機械座標位置(x,y,z)を工具先端点とすれば、3軸加工機に適用できる。
【0024】
着目する必要のないリンクベクトル、つまりそのリンクベクトルに対する誤差は無視できる場合は、そのリンクベクトルを0ベクトルとしてもよい。
【0025】
<伸縮誤差>
前述のように、各軸駆動部やベッド、ワークおよび工具などは、室温変化や機械自身の発熱および切削熱によって熱変位し伸縮する。さらに、工具は摩耗によって縮小する。それらの変位によって対応するリンクベクトルは伸縮誤差を持つ。各リンクベクトル(Vh,Vx,Vy,Vz,Vc,Va,Vt)に対する伸縮誤差量を、EVh,EVx,EVy,EVz,EVc,EVa,EVtと表記する。ここで、EVhはVhを1とした時のVhに対する比を示す。以降の伸縮誤差量EVα(α=x,y,z,c,a,t,xyzなど)も同様である。伸縮誤差が長さとして与えられる場合であってもこの比は容易に計算できる。例えば、Vhに対する伸縮誤差長さがLEVhであれば、EVh=LEVh/|Vh|と計算すればよい。伸縮誤差量が正なら伸長、負なら縮小を表す。これらはごく小さい値である。着目する必要のない、つまり無視できる誤差に対する誤差量は0とすればよい。
【0026】
<並進誤差と回転誤差>
図4は、5軸加工機のY軸コラムにおける誤差を説明する図である。
図4では本明細書で説明する並進誤差と回転誤差とともに前述の伸縮誤差量EVy(
図9参照)を生じるY軸コラム(灰色部)の伸縮(伸長・縮小)も示している。なお、熱を持っているイメージで灰色にしている。各軸位置による並進誤差量と回転誤差量を表1に示されるように表記する。ただし、不要な要素は誤差量0として省略可である。
図4では、X軸コラム上のY軸コラムの位置による誤差、EXY(y),EYY(y),EZY(y),EAY(y),EBY(y),ECY(y)を図示する。EXY(y),EYY(y),EZY(y)はあるY軸位置yにおける、それぞれX方向、Y方向、Z方向のY軸コラムの誤差である。つまり、Y軸の並進誤差である。EAY(y),EBY(y),ECY(y)はあるY軸位置yにおける、それぞれX軸周り、Y軸周り、Z軸周りのY軸コラムの誤差である。つまり、Y軸位置による回転誤差である。なお、
図4上では大きく描いているが、これらの誤差はごくわずかである。誤差がごくわずかであることは以降も同様である。着目する必要のない誤差量は0とすればよい。
【0027】
表1に示される表記はJIS規格B6191にならっている。JISハンドブック 13 工作機械2006 日本規格協会,工作機械−静的精度試験方法及び工作精度試験方法通則B6191 5.231に、Z軸方向の運動による偏差として、EXZ:直進偏差、EYZ:直進偏差、EZZ:位置偏差、並びに、角度偏差であるEAZ:ピッチ,EBZ:ヨー,ECZ:ロールが規定されている。
【0029】
本発明では、直進偏差および位置偏差を並進誤差、角度偏差を回転誤差と記述する。表1では、この表記にならって各軸位置による各軸方向の並進誤差量、各軸周りの回転誤差量を表記し、さらに各軸位置による関数であることを数学的に明確にするために、EXZ(z)、EAZ(z)などのように関数の形にしている。
さらに、Z軸コラム上のC軸ヘッドの位置による誤差、EXC(c),EYC(c),EZC(c),EAC(c),EBC(c),ECC(c)を図示すると
図5に示すようになる。
図5では本明細書で説明する並進誤差と回転誤差とともに前述の伸縮誤差量EVc(
図11参照)を生じるC軸ヘッド(灰色部)の伸縮(伸長・縮小)も示している。EXC(c),EYC(c),EZC(c)はあるC軸位置cにおける、それぞれX方向、Y方向、Z方向のC軸ヘッドの誤差である。つまり、C軸位置による並進誤差である。EAC(c),EBC(c),ECC(c)はあるC軸位置cにおける、それぞれX軸周り、Y軸周り、Z軸周りのC軸ヘッドの誤差である。つまり、C軸位置による回転誤差である。
【0030】
さらに、ベッド固定点PbからX軸駆動部(X軸コラム)誤差原点へのリンクベクトル(ベッド固定点から工具ヘッドを経由する最初のリンクベクトル)Vhおよびベッド固定点Pbから工具先端点へリンクベクトル(ベッド固定点からテーブルを経由する最初のリンクベクトル)Vtと、それらに対する伸縮誤差量EVhおよびEVtを生じる伸縮(伸長・縮小)を図示すると
図6に示すようになる。ただし、Vtについてベッド固定点からテーブルを経由する最初のリンクベクトルと記載しているが、この場合ベッド固定点からテーブルを経由するリンクベクトルはこのベクトル1本のみである。
図6ではベッドとテーブルおよびワークのみ図示している。Vh,Vtに対しては並進誤差と回転誤差はなくベッドとワークの伸縮(伸長・縮小)から発生する誤差EVh、EVtのみとし、それらは位置によらないとする。ただし、Vh,Vt自体は数1式で示したように位置に依る。
ここでは、上記のようにVh,Vtに対しては並進誤差と回転誤差は無いとしたが、もちろん並進誤差と回転誤差を計算に入れることも可能である。
【0031】
<リンクベクトルと誤差>
各リンクベクトルVh,Vx,Vy,Vz,Vc,Va,Vtと誤差との関係を図示すると、
図7〜
図13に示されるようになる。
図7は、リンクベクトルVhと伸縮誤差量EVhとの関係を説明する図である。
図8はリンクベクトルVxと誤差(伸縮誤差、並進誤差、回転誤差)との関係を説明する図である。
図9は、リンクベクトルVyと誤差との関係を説明する図である。
図10は、リンクベクトルVzと誤差との関係を説明する図である。
図11は、リンクベクトルVcと誤差との関係を説明する図である。
図12は、リンクベクトルVaと誤差との関係を説明する図である。
図13は、リンクベクトルVtと誤差との関係を説明する図である。
ここで、
図9は、
図4の誤差をリンクベクトルに対する誤差として図示したものである。
図9のEAY(y),EBY(y),ECY(y)は
図4のEAY(y),EBY(y),ECY(y)と相違するように見えるが、
図4はY軸コラム全体に対する誤差として図示しているのに対して、
図9はリンクベクトルに対する誤差として図示しているものであり、共に同じ誤差を図示している。
図9の伸縮誤差量EVyは
図4のY軸コラムの伸縮(伸長・縮小)から生じる誤差である。
【0032】
<誤差と補正>
ある機械座標位置P(x,y,z,c,a)における、X,Y,Z軸への補正量Δ3D(Δ3Dx,Δ3Dy,Δ3Dz,0)は、数3式〜数7式により演算される。Cα(α=h,x,y,z,c,a,t)、Mβ(β=x,y,z,c,a)は誤差生成計算用のマトリックスであり後述する。数7式において、後述するようにVLh=VLtのため、Δ3Dは(VLt’―VLh’)となる。ここで、補正を行うのはX,Y,Z軸に対してであり、回転軸C,A軸に対しては本発明による補正は行わない。回転軸の演算部分(Mc,Cc,Vc,Ma,Ca,Vaによる演算部分)を除けば、つまり、Vc=Va=0としVzを工具長を含むベクトルとすれば、3軸加工機における演算となる。
【0038】
ここで、数3式〜数6式は機械構造のリンク軸順の計算となる。リンク軸順とは、ベッド上でX軸コラムが動作し、X軸コラム上でY軸コラムが動作し、Y軸コラム上でZ軸コラムが動作し、Z軸コラム上でC軸ヘッドが動作し、C軸ヘッド上で工具を取付けられたA軸ヘッドが動作するという、ベッドから工具ヘッドを経由した工具先端点までのヘッド側の軸並びの順、つまりヘッド側はリンクベクトルVh,Vx,Vy,Vz,Vc,Vaがつながっていること、およびベッド上にテーブルがありその上にワークが載置されその間には軸が存在しないこと、つまりテーブル側はリンクベクトルVtだけであることをいう。ここでヘッドとは工具ヘッドのことである。したがって、リンク軸順は機械構造に依存する。VLhをヘッド側合成リンクベクトル、VLh’をヘッド側合成誤差リンクベクトルと呼ぶ。VLtをテーブル側合成リンクベクトル、VLt’をテーブル側合成誤差リンクベクトルと呼ぶ。この実施形態ではVLt、VLt’とも1個のリンクベクトルから作成されるが、1個のリンクベクトルであっても合成されてこれらの合成リンクベクトルが作成されるものとする。各マトリックスは下記のマトリックスを意味する。
【0039】
Mx:Vxに対する並進回転誤差生成マトリックス
My:Vyに対する並進回転誤差生成マトリックス
Ch:Vhに対する伸縮誤差生成マトリックス
Cx:Vxに対する伸縮誤差生成マトリックス
Cy:Vyに対する伸縮誤差生成マトリックス
Cz:Vzに対する伸縮誤差生成マトリックス
Cc:Vcに対する伸縮誤差生成マトリックス
Ca:Vaに対する伸縮誤差生成マトリックス
Ct:Vtに対する伸縮誤差生成マトリックス
Mz:Vzに対する並進回転誤差生成マトリックス
Mc:Vcに対する並進回転誤差生成マトリックス
Ma:Vaに対する並進回転誤差生成マトリックス
【0040】
各伸縮誤差生成マトリックスCh,Cx,Cy,Cz,Cc,Ca,Ctは数8式〜数14式のようになる。数3式、数5式でこれらのマトリックスを乗算することは、乗算されるベクトルの第1、第2および第3要素に対して(1+伸縮誤差量)を乗算することである。例えば、数3式でChをVhに乗算することは、Vhの第1、第2および第3要素に対して(1+EVh)を乗算することである。
【0048】
各並進回転誤差生成マトリックスMx,My,Mz,Mc,Maは数15式〜数19式のようになる。ここで、回転誤差量の要素(1〜3行、1〜3列の要素)は、本来はsin(ECX(x)),cos(ECX(x))などのように三角関数によって表される。回転誤差量はラジアン単位の十分小さい量であるとして、sin(ECX(x))=ECX(x),cos(ECX(x))=1と近似し、三角関数によらないマトリックスとしている。もちろん、近似せず三角関数のマトリックスとしてもよい。
【0054】
ここで、前述した数4式と数6式をベクトル図として図示すると、
図14に示されるようになる。
図14は、ヘッド側合成リンクベクトルVLhおよびテーブル側合成リンクベクトルVLtを説明する図である。VLhおよびVLtはともにテーブル固定点Pbから工具先端点へのベクトルなので、等しい。それに対して、各リンクベクトルVh,Vx,Vy,Vz,Vc,Va,Vtに各誤差生成マトリックスCh,Cx,Cy,Cz,Cc,Ca,Ct,Mx,My,Mz,Mc,Maの積が演算されることによる、数3式,数5式および数7式をベクトル図として図示すると
図15のようになる。
図15は、ヘッド側合成誤差リンクベクトルVLh’およびテーブル側合成誤差リンクベクトルVLt’を説明する図である。ここで、Vh’,Vx’,Vy’,Vz’,Vc’,Va’,Vt’は、それぞれリンクベクトルVh,Vx,Vy,Vz,Vc,Va,Vtに誤差生成マトリックスMx,My,Mz,Mc,Ma,Ch,Cx,Cy,Cz,Cc,Ca,Ctが乗算された誤差リンクベクトルを表す。つまり、誤差リンクベクトルVh’,Vx’,Vy’,Vz’,Vc’,Va’,Vt’はそれぞれ、数20式のように表される。これらは数3式と数5式の各項でもある。
【0056】
したがって、ヘッド側合成リンクベクトルVLh,テーブル側合成リンクベクトルVLt,ヘッド側合成誤差リンクベクトルVLh’およびテーブル側合成誤差リンクベクトルVLt’の関係と補正量Δ3DとヘッドおよびZ軸コラムとの関係を図示すると
図16のようになる。つまり、補正量Δ3Dの補正を行うことは、工具先端点をヘッド側合成誤差リンクベクトルの先端(VLh’の先端)からテーブル側合成誤差リンクベクトルの先端(VLt’の先端)に移動し補正することである。つまり、誤差を持つ実際の工具先端点位置を誤差を持つ実際のワーク上の正しい加工位置に移動することが補正である。この結果、各リンクベクトルVh,Vx,Vy,Vz,Vc,Va,Vtに伸縮誤差、並進誤差または回転誤差があっても実際の工具先端点は実際のワーク上の正しい加工位置に移動し、ワークに対する正しい加工が行われる。なお、
図16においてZ軸コラム、C軸ヘッドなどを傾けているが、誤差を持っていることを明確にするために傾けて図示している。実際の機械でこのように大きく傾くものではない。
【0057】
<誤差量の取得>
(1)伸縮誤差量の取得
伸縮誤差量は次のような様々な方法で取得する。もちろん、伸縮誤差量を0とすれば、伸縮誤差量を無視することも可能である。
1)外部からの外部入力で取得する。つまり、外部からの入力信号や通信回線を通じて
数値制御装置の外部から入力する。つまり、外部の測定器などによる測定値に基づい
て入力する。あるいは温度センサによって各部材の温度を測定しそれに関する関数と
して伸縮誤差量を求めて入力する。
2)電源オンからの時間による関数とする。各部材は電源オンからの時間に応じて伸縮
(特に熱による伸長)する。そのため、電源オンからの時間t1をカウントしその時
間t1の関数f(t1)として伸縮誤差量を求める。
3)主軸回転から発生する熱が大きいため、主軸回転数(S)と主軸回転時間(t2)
の関数g(S,t2)として伸縮誤差量を求める。
4)パラメータなどの設定値として設定する。または、プログラムにおける指令値とし
て指令する。
前述のように伸縮誤差量は対応するリンクベクトルに対する比としているので、ここで取得する伸縮誤差量も比として取得されることを想定している。もちろん、前述のように伸縮誤差が長さとして与えられる場合であってもこの比を容易に計算することができるので、伸縮誤差を上記の方法によって長さとして与えることも可能である。
【0058】
(2)並進誤差量、回転誤差量の取得
軸位置による並進誤差量および軸位置による回転誤差量の設定について説明する。例ととして、
図17に示されるX軸位置による誤差量で説明する。
図17は、X軸位置による並進誤差量およびX軸位置による回転誤差量の設定を説明する図である。X軸位置がx0のときの並進誤差量(EXX(x0)),EYX(x0),EZX(x0))および回転誤差量(EAX(x0),EBX(x0),ECX(x0))を、x0に対応した並進回転誤差量データテーブルに並進誤差量および回転誤差量として設定する。同様に、x1,x2,・・・に対応した誤差量を並進誤差量および回転誤差量として設定する。x0,x1,x2,・・・の位置については最初のx0を固定値にしておき、それから等間隔でx1,x2,・・・が並んでいるとしてもよいし、x0,x1,x2,・・・の位置を別途パラメータに設定しておいてもよい。
ここで、X軸位置がxの時の並進誤差量(EXX(x),EYX(x),EZX(x))および回転誤差量(EAX(x),EBX(x),ECX(x))は、最寄のx
n,x
n+1(n=0,1,2,・・・)から比例配分で求める。つまり、x
n≦x≦x
n+1としたとき、並進誤差量EXX(x)の値を数21式により求める。他の要素も同様である。
【0060】
他の軸位置による並進誤差量および回転誤差量も同様に並進回転誤差量データテーブルに設定されたデータと各軸の位置から求める。
ここでは各軸位置による1次元のデータテーブルとしたが、関連性の強い軸同士ではそれらの軸の組み合わせによる2次元、3次元のデータテーブルとし、2軸または3軸の位置とそれらの誤差データテーブルから比例配分で求めてもよい。(詳細には第3の実施形態の説明で述べる)
また、並進誤差量および回転誤差量は軸位置によって値が決定される関数による値であってもよい。例えば、EXX(x)=h(x)のような関数の値であってもよい。また、上記伸縮誤差量のように外部からの入力、時間の関数、プログラム指令値などの方法による量であってもよい。
もちろん、並進誤差量および回転誤差量を0とすれば、並進誤差量および回転誤差量を無視し、伸縮誤差に対する補正のみ行うようにすることも可能である。また、並進誤差量または回転誤差量を0とすれば、並進誤差または回転誤差を無視することも可能である。
【0061】
<ブロック図>
次に、
図18を用いて本発明の誤差補正部を備えた数値制御装置を説明する。数値制御装置10は一般に、指令解析部11でプログラム指令を解析して補間用データを作成し、補間部12で補間用データにもとづいて補間を行って各軸の移動すべき位置を求め、各軸用の加減速部13X,13Y,13Z,13A(B),13Cによって各軸の加減速を行った後の各軸位置を求め、補正部14でピッチ誤差補正や真直度誤差補正などの従来技術の補正を行い、その結果の位置によって各軸のサーボ15X,15Y,15Z,15A(B),15Cを駆動する。
【0062】
ここで、本発明によって、すでに述べたように、各軸の機械座標位置、並進回転誤差量データテーブル、パラメータ、外部入力21、プログラム指令および工具長補正量から、回転誤差量取得部、並進誤差量取得部および伸縮誤差量取得部において、回転誤差量、並進誤差量、伸縮誤差量を求め、リンクベクトル演算部において数1式、数2式により各リンクベクトルを求め、求めた伸縮誤差量、回転誤差量、並進誤差量および各リンクベクトルに対して補正演算部において、数3式、数4式、数5式、数6式、数7式の演算を行うことにより、補正量Δ3Dを求める。これを新たな補正量Δ3Dとして従来技術の補正量に加算して補正を行う。これらの処理をまとめた部分が
図18において点線で囲った誤差補正部20である。
なお、
図18は1つのブロック図の例であり、上記のように回転誤差量や並進誤差量を外部入力やパラメータから求めるなど他の方法もある。その場合にはそれらの方法に応じてブロック図は変更される。
【0063】
図19は、第1の実施形態における誤差補正部が行う補正処理のアルゴリズムのフローチャートである。以下、各ステップに従って説明する。
●[ステップSA01]機械座標位置(x,y,z,c,a)のデータ、および、工具長補正量を取得する。
●[ステップSA02]外部入力、パラメータまたはプログラム指令から、伸縮誤差量を取得する。
●[ステップSA03]並進回転誤差量データテーブルおよび機械座標位置から、数21式およびそれにならって、各並進誤差量、各回転誤差量を取得する。つまり、数21式によりX軸の並進誤差EXX(x)の値を求め、他の要素も同様な計算式により値を求める。
●[ステップSA04]パラメータ、工具長補正量、および機械座標位置から数1式、数2式により各リンクベクトルを演算する。
●[ステップSA05]伸縮誤差量、並進誤差量、回転誤差量および各リンクベクトルから数3式、数4式、数5式、数6式、数7式により補正量を演算し、処理を終了する。
【0064】
(第2の実施形態)
図20は、テーブル回転型の5軸加工機の機械構成を説明する図である。Y軸テーブルやB軸テーブルなどはY軸やB軸で動作する部分を指す。回転軸はB軸とC軸としているが、他の軸(A,C軸やA,B軸など)の組み合わせもある。また、回転軸に関する処理や演算を除けば3軸加工機での誤差補正となるのは第1の実施形態と同じである。また、第1の実施形態と同様、図中のX,Y,Z軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点(機械座標位置(x,y,z)=(0,0,0))ではない。
図20、および
図22において、図示の便宜上テーブル上に存在するワークは図示していない。
【0065】
<伸縮誤差、並進誤差と回転誤差>
各軸位置に依存した並進誤差量と回転誤差量を表2のように表記する。ただし、着目する必要のない誤差量は0とすればよい。回転軸(B軸,C軸)要素を除けば3軸加工機に適用できることなど、第1の実施形態に準じる。
【0067】
誤差量の方向についてさらに説明する。
図21は、Y軸テーブルの誤差量の方向について説明する図である。ベッド上のY軸テーブルの位置による誤差量、EXY(y),EYY(y),EZY(y),EAY(y),EBY(y),ECY(y)を図示すると
図21に示されるようになる。誤差量EXY(y),EYY(y),EZY(y)は、あるY軸位置yにおける、それぞれX方向、Y方向、Z方向のY軸テーブルの誤差である。つまり、Y軸位置による並進誤差である。誤差量EAY(y),EBY(y),ECY(y)は、あるY軸位置yにおける、それぞれX軸周り、Y軸周り、Z軸周りのY軸テーブルの誤差である。つまり、Y軸位置による回転誤差である。さらに、Y軸テーブル(灰色部)は第1の実施形態と同様、伸縮変位する。この伸縮誤差量をEVy(
図24参照)とする。
【0068】
<リンクベクトル>
第1の実施形態と同様、リンクベクトルは、工作機械のベッド固定点Pbから工具ヘッドを経由した工具先端点への、または工作機械のベッド固定点Pbからテーブルを経由した工具先端点への各軸間の結合を示すベクトルである。各軸の軸駆動部はY軸テーブルやZ軸コラム(工具ヘッド)など各軸によって駆動する部分であり、各軸の軸駆動部誤差原点は各軸の軸駆動部において誤差が発生する原点であり各リンクベクトル同士の結合点でもある。
図22は、
図20に示される機械構成の5軸加工機におけるリンクベクトルVt,Vy,Vx,Vb,Vc,Vh,Vzを説明する図である。また、
図22は(x,y,z)=(0,0,0)の時のPx0,Py0,Pz0,Pb0を示す図でもある。
【0069】
Vt:ベッド固定点からY軸駆動部(Y軸テーブル)誤差原点へのリンクベクトル(ベッ
ド固定点からテーブルを経由する最初のリンクベクトル)
Vy:Y軸駆動部(Y軸テーブル)誤差原点からX軸駆動部(X軸テーブル)誤差原点へ
のリンク
Vx:X軸駆動部(X軸テーブル)誤差原点からB軸駆動部(B軸テーブル)誤差原点へ
のリンクベクトル
Vb:B軸駆動部(B軸テーブル)誤差原点からC軸駆動部(C軸テーブル)誤差原点へ
のリンクベクトル
Vc:C軸駆動部(C軸テーブル)誤差原点から工具先端点へのリンクベクトル
Vh:ベッド固定点からZ軸駆動部(Z軸コラム)誤差原点へのリンクベクトル(ベッド
固定点から工具ヘッドを経由する最初のリンクベクトル)
Vz:Z軸駆動部(Z軸コラム)誤差原点から工具先端点へのリンクベクトル
【0070】
ここで、ベッド固定点の位置をPbとする。Y軸駆動部(Y軸テーブル)誤差原点はベッドとY軸テーブルの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPy0とする。X軸駆動部(X軸テーブル)誤差原点はY軸テーブルとX軸テーブルの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPx0とする。B軸駆動部(B軸テーブル)誤差原点はB軸回転中心とC軸回転中心の交点とし、機械座標位置(x,y,z,b,c)=(0,0,0,0,0)の時のその位置(x,y,z位置)をPb0とする。C軸駆動部(C軸テーブル)誤差原点はC軸テーブルとB軸テーブルの接触部分の中心(C軸回転中心)とし、機械座標位置(x,y,z,b,c)=(0,0,0,0,0)の時のその位置(x,y,z位置)をPc0とする。Pb0とPc0の間の距離をhbcとする。Pc0−Pb0=(0,0,hbc)である。Z軸駆動部(Z軸コラム)誤差原点はベッドとZ軸コラムの接触部分の中心とし、機械座標位置(x,y,z)=(0,0,0)の時のその位置をPz0とする。hは工具長補正量である。また、直線軸の機械座標位置x,y,zは工具ヘッドの端面の位置(工具長補正量0の位置)とする。
図20におけるX,Y,Z軸座標を示す矢印はそれらの座標方向を示す矢印であり、それらの交点は機械座標系原点(機械座標位置(x,y,z)=(0,0,0))ではなく、機械座標系原点は
図22中の(x,y,z)=(0,0,0)の位置(工具ヘッドの端面と工具中心線との位置)としている。機械座標位置(x,y,z)はX,Y,Z軸の移動とともに変化する。なお、
図22は、X,Y,Z軸位置については(x,y,z)=(0,0,0)としているが、B軸位置(b)についてはb≠0としている図である。Vb,Vcを無視する(Vb=Vc=0としVxをX軸駆動部誤差原点から工具先端点へのリンクベクトルとする)と、3軸加工機での誤差補正量となること、着目する必要のないリンクベクトル、つまりそのリンクベクトルから発生する誤差は無視できる場合はそのリンクベクトルを0ベクトルとしてもよいことなどは、第1の実施形態に準じる。
【0071】
<リンクベクトル演算>
それぞれのリンクベクトルを、ここでは同次座標系で数22式のように演算する。x,y,z,b,cは機械座標位置(機械座標系上の各軸位置)である。Py0,Px0など定数となっているデータはあらかじめパラメータに設定しておきそれを使用する。Vt
T,Vy
Tにおいてy、xを含むベクトルが減算になっているのはy,xの移動によってテーブルは逆方向に移動するためである。
【0073】
ここで、Vb(Vbx,Vby,Vbz,0)はB軸の回転によって数23式で表される。bはB軸位置(機械座標位置)である。Pc0−Pb0は、Pc0−Pb0におけるx,y,z要素を示す。
【0075】
各リンクベクトルVy,Vx,Vb,Vc,Vzと誤差の関係を図示すると、
図23〜
図29のようになる。
図23は、リンクベクトルVtと誤差との関係を説明する図である。
図24は、リンクベクトルVyと誤差との関係を説明する図である。
図25は、Vxと誤差との関係を説明する図である。
図26は、リンクベクトルVbと誤差との関係を説明する図である。
図27は、リンクベクトルVcと誤差との関係を説明する図である。
図28は、リンクベクトルVhと誤差との関係を説明する図である。
図29は、リンクベクトルVzと誤差との関係を説明する図である。図中の記号などは第1の実施形態と同様である。
【0076】
<誤差と補正>
ある機械座標位置P(x,y,z,b,c)における、X,Y,Z軸への補正Δ3D(Δ3Dx,Δ3Dy,Δ3Dz,0)
Tは、数24式〜数28式のように演算される。Cα(α=h,x,y,z,b,c,t)、Mβ(β=x,y,z,b,c)は誤差生成計算用のマトリックスであり後述すること、数28式において、VLh=VLtのため、Δ3Dは(VLt’―VLh’)となること、補正を行うのはX,Y,Z軸に対してであり、回転軸B,C軸に対しては本発明による補正は行わないこと、回転軸の演算部分(Mb,Cb,Vb,Mc,Cc,Vcによる演算部分)を除けば、つまり、Vb=Vc=0とすれば、3軸加工機における演算となることなどは、第1の実施形態と同様である。
【0082】
ここで、数24式〜数27式は機械構造のリンク軸順の計算となる。リンク軸順とは、ベッド上でZ軸コラム(工具ヘッド)が動作し工具先端点に至るという、ベッドから工具ヘッド(単にヘッドともいう)を経由した工具ヘッド側の軸並びの順と、ベッド上でY軸テーブルが動作し、Y軸テーブル上でX軸テーブルが動作し、X軸テーブル上でB軸テーブルが動作し、B軸テーブル上でC軸テーブルが動作し工具先端点に至るという、ベッドからテーブルを経由したテーブル側の軸並びの順を言う。したがって、機械構造に依存する。VLhをヘッド側合成リンクベクトル、VLh’をヘッド側合成誤差リンクベクトル、VLtをテーブル側合成リンクベクトル、VLt’をテーブル側合成誤差リンクベクトルと呼ぶ。各マトリックスは次を示す。
【0083】
Ch:Vhに対する伸縮誤差生成マトリックス
Cz:Vzに対する伸縮誤差生成マトリックス
Ct:Vtに対する伸縮誤差生成マトリックス
Cy:Vyに対する伸縮誤差生成マトリックス
Cx:Vxに対する伸縮誤差生成マトリックス
Cb:Vbに対する伸縮誤差生成マトリックス
Cc:Vcに対する伸縮誤差生成マトリックス
Mz:Vzに対する並進回転誤差生成マトリックス
My:Vyに対する並進回転誤差生成マトリックス
Mx:Vxに対する並進回転誤差生成マトリックス
Mb:Vbに対する並進回転誤差生成マトリックス
Mc:Vcに対する並進回転誤差生成マトリックス
【0084】
各マトリックス自体の内容については、第1の実施形態とほぼ同様なので省略する。数25式、数27式は、
図30に示されるベクトル図で表される。それに対して、各リンクベクトルに各誤差生成マトリックスの積が演算されることにより数24式、数26式を図示すると
図31のようになる。ここで、Vt’,Vy’,Vx’,Vb’,Vc’,Vh’,Vz’は、それぞれVt,Vy,Vx,Vb,Vc,Vh,Vzに誤差生成マトリックスCt,Cy,Cx,Cb,Cc,Ch,Cz,My,Mx,Mb,Mc,Mzが乗算された誤差リンクベクトルを表す。つまり、Vt’,Vy’,Vx’,Vb’,Vc’,Vh’,Vz’は数29式のように表される。
【0086】
したがって、VLh,VLh’,VLt,VLt’の関係と、Δ3Dと、工具ヘッドとの関係を図示すると
図32のようになる。これは、Δ3Dの補正を行うことは、工具先端点を誤差のあるヘッド側合成誤差リンクベクトルの先端(VLh’の先端)から、誤差のあるテーブル側合成誤差リンクベクトルの先端(VLt’の先端)つまり実際のワーク上の正しい加工位置に移動し補正することである。この結果、各リンクベクトルに伸縮誤差、並進誤差または回転誤差があっても工具先端点は実際の(誤差のある)ワーク上の正しい位置に移動し、正しい加工が行われる。
【0087】
なお、
図32ではZ軸コラム(工具ヘッド)がZ方向のみならずX,Y方向にも補正され動作しているように描いているが、テーブルに対する相対的なZ軸コラム位置を描いているものである。Z軸コラム自体がX,Y方向に補正動作するのではなく、X,Y方向の補正動作はテーブルの動作によって行われる。また、
図32においてZ軸コラム(工具ヘッド)、工具を傾けているが、誤差を持っていることを明確にするために傾けて図示している。実際にこのように大きく傾くものではない。
さらに、本実施形態の誤差補正部を備えた数値制御装置は、
図18に示されるものと同様である。但し、補正演算における演算は、数24式〜数28式の演算を行う。
【0088】
(第3の実施形態)
<機械構成>
第1の実施形態の
図2と同様の機械構成を用いる。
【0089】
<リンクベクトル>
第1の実施形態、第2の実施形態では、各軸駆動部ごとにリンクベクトルを作成したが、ここでは、X,Y,Z軸間での関連性が強い、またC,A軸間での関連性が強いとする。そこで、リンクベクトルを
図33に示すようにする。その他は第1の実施形態に準じる。
Vh:ベッド固定点からX軸コラム誤差原点へのリンクベクトルとする。
Vxyz:X軸コラム誤差原点からX軸コラム、Y軸コラム、Z軸コラムを経由してC軸
ヘッド誤差原点へのリンクベクトルとする。ここでは、C軸ヘッド誤差原点は
Z軸コラムとC軸ヘッドの接触部分の中心であると想定する。
Vca:C軸ヘッド誤差原点からA軸ヘッドを経由して工具先端点へのリンクベクトルと
する。
Vt:ベッド固定点からテーブルを経由する工具先端点へのリンクベクトルとする。ここ
でVcaを無視する(Vca=0としVxyzをX軸コラム誤差原点から工具先端
点へのリンクベクトルとする)と3軸加工機での誤差補正となる。
【0090】
あるいは、
図3におけるVcは十分無視できる場合は、リンクベクトルVxyzとVcaは次のように作成してもよい。その場合のリンクベクトルは
図34のようになる。
図33との相違はVxyzとVca(=Va)のみである。
Vxyz:X軸コラム誤差原点からX軸コラム、Y軸コラム、Z軸コラムを経由してA軸ヘッド誤差原点へのリンクベクトルとする。ここでは、A軸ヘッド回転誤差原点はA軸回転中心中央とする。
Vca:A軸ヘッド誤差原点から工具先端点へのリンクベクトルとする。(
図3のVaと
同じ。)
着目する必要のないリンクベクトル、つまりそのリンクベクトルに対する誤差は無視できる場合は、そのリンクベクトルを0ベクトルとしてもよい。
【0091】
<伸縮誤差>
Vh,Vxyz,Vca,Vtに対する伸縮誤差をEVh,EVxyz,EVca,EVtとする。着目する必要のない誤差量は0とすればよい。
【0092】
<並進誤差と回転誤差>
各軸に依存した並進誤差量と回転誤差量を表3のように表記する。ただし、不要な要素は誤差量0として省略可である。回転軸(C,A軸)要素を除けば3軸加工機に適用できる、着目する必要のない誤差量は0とすればよいことは第1の実施形態と同様である。
【0094】
第1の実施形態、第2の実施形態では、各軸位置による1次元のデータテーブルとしたが、ここでは、上記のようにX,Y,Z軸間での関連性が強いとしてそれらに関する誤差量はX,Y,Zの3次元データ、C,A軸間での関連性が強いとしてそれらに関する誤差量はC,Aの2次元データとしている。
【0095】
<リンクベクトル演算>
図33の場合、それぞれ、ここでは同次座標系で数30式のように演算する。x,y,z,a,cは機械座標位置(機械座標系上の各軸位置)である。
【0097】
Vaは数2式と同じである。
図34の場合は、数30式において、Pc0=0とする。各リンクベクトルと誤差の関係は
図35〜
図38で示される。
【0098】
<誤差と補正>
ある機械座標位置P(x,y,z,c,a)における、X,Y,Z軸への補正量Δ3D(Δ3Dx,Δ3Dy,Δ3Dz,0)は、数31式〜数35式のように演算される。回転軸の演算部分(Mca,Vcaによる演算部分)を除けば、3軸加工機における演算となる。
【0104】
ここで、数31式、数32式は機械構造のリンク軸順となる。つまり、X,Y,Z軸上でC,A軸が動作するという軸並びの順である。ここで、各誤差生成マトリックスは次のようになり、計算式は数36式〜数41式のようになる。
【0105】
Ch:Vhに対する伸縮誤差生成マトリックス
Cxyz:Vxyzに対する伸縮誤差生成マトリックス
Cca:Vcaに対する伸縮誤差生成マトリックス
Ct:Vtに対する伸縮誤差生成マトリックス
Mxyz:Vxyzに対する並進回転誤差生成マトリックス
Mca:Vcaに対する並進回転誤差生成マトリックス
【0112】
数32式で求められるヘッド側合成リンクベクトルVLh、数34式で求められるテーブル側合成リンクベクトルVLtは、
図39のベクトル図として表せる。
それに対して、各リンクベクトルに各誤差生成マトリックスの積が演算されることによる数31式、数33式を図示すると
図40のようになる。ここで、Vxyz’,Vca’は、それぞれVxyz,Vcaに伸縮誤差生成マトリックスCxyz,Ccaおよび並進回転誤差生成マトリックスMxyz,Mcaを乗算した誤差リンクベクトルを表す。また、Vh’,Vt’はVh,Vtに伸縮誤差生成マトリックスCh,Ctを乗算したリンクベクトルを表す。つまり、Vh’,Vxyz’,Vca’,Vt’は数42式のように表される。
【0114】
ヘッド側合成リンクベクトルVLh、ヘッド側合成誤差リンクベクトルVLh’、テーブル側合成リンクベクトルVLt、およびテーブル側合成誤差リンクベクトルVLt’の関係と工具の関係は、第1の実施形態と同様である。したがって、各リンクベクトルに伸縮誤差、並進誤差または回転誤差があっても工具先端点は正しい位置に移動し、正しい加工が行われる。
【0115】
<誤差量の設定>
伸縮誤差量については第1の実施形態と同様であるので省略する。並進誤差量および回転誤差量の設定について説明する。例として、X,Y,Z軸位置による誤差量で説明する。X,Y,Z軸位置が(x0,y0,z0)のときの並進誤差量(EXXYZ(x0,y0,z0),EYXYZ(x0,y0,z0)EZXYZ(x0,y0,z0))および回転誤差量(EAXYZ(x0,y0,z0),EBXYZ(x0,y0,z0),ECXYZ(x0,y0,z0))を、(x0,y0,z0)に対応した誤差量補正データテーブルに並進誤差量および回転誤差量として設定する。
同様に、(xi,yj,zk)(i,j,k=0,1,2,・・・)に対応した誤差量を並進誤差量および回転誤差量として設定する。x0,x1,x2,・・・,y0,y1,y2,・・・,z0,z1,z2,・・・の位置については最初のx0,y0,z0を固定値にしておき、それから等間隔でx1,x2,・・・,y1,y2,・・・,z1,z2,・・・が並んでいるとしてもよいし、x0,x1,x2,・・・,y0,y1,y2,・・・,z0,z1,z2,・・・の位置を別途パラメータに設定しておいてもよい。
【0116】
<誤差量データテーブル>
例えば、
図41には誤差量データテーブルが示されており、X,Y,Z軸位置が(x1,y0,z1)において、並進誤差量(EXXYZ(x1,y0,z1),EYXYZ(x1,y0,z1),EZXYZ(x1,y0,z1))および回転誤差量(EAXYZ(x1,y0,z1),EBXYZ(x1,y0,z1),ECXYZ(x1,y0,z1)が設定されている。
X,Y,Z軸位置が(x,y,z)の時の並進誤差量(EXXYZ(x,y,z),EYXYZ(x,y,z),EZXYZ(x,y,z))および回転誤差量(EAXYZ(x,y,z),EBXYZ(x,y,z),ECXYZ(x,y,z))は、最寄のx
i,x
i+1(x
i≦x≦x
i+1),y
j,y
j+1(y
j≦y≦y
j+1),z
k,z
k+1(z
k≦z≦z
k+1)(i,j,k=0,1,2,・・・)における並進誤差量および回転誤差量から、
図42に示されるように比例配分でそれぞれの誤差量を求める。
図42は、X,Y,Z軸位置が(x,y,z)の時の並進誤差量および回転誤差量を誤差量データテーブルのデータから比例配分で求めることを説明する図である。
【0117】
さらに、C,A軸位置による誤差量を説明する。C,A軸位置が(c0,a0)のときの並進誤差量(EXCA(c0,a0),EYCA(c0,a0),EZCA(c0,a0))および回転誤差量(EACA(c0,a0),EBCA(c0,a0),ECCA(c0,a0))を、(c0,a0)に対応した誤差量データテーブルに並進誤差量および回転誤差量として設定する。同様に、(cm,an)(m,n=0,1,2,・・・)に対応した誤差量を並進誤差量および回転誤差量として設定する。c0,c1,c2,・・・,a0,a1,a2,・・・位置については最初のc0,a0を固定値にしておき、それから等間隔でc1,c2,・・・,a1,a2,・・・が並んでいるとしてもよいし、c0,c1,c2,・・・,a0,a1,a2,・・・の位置を別途パラメータに設定しておいてもよい。
【0118】
例えば、
図43はC,A軸依存の誤差量を説明する図であり、
図43では(c1,a1)において、並進誤差量(EXCA(c1,a1),EYCA(c1,a1),EZCA(c1,a1))を回転誤差量(EACA(c1,a1),EBCA(c1,a1),ECCA(c1,a1))を設定していることを示している。
そして、C,A軸位置が(c,a)の時の並進誤差量(EXCA(c,a),EYCA(c,a),EZCA(c,a))および回転誤差量(EACA(c,a),EBCA(c,a),ECCA(c,a))は、最寄のc
m,c
m+1(c
m≦c≦c
m+1),a
n,a
n+1(a
n≦a≦a
n+1)(m,n=0,1,2,・・・)における並進誤差量および回転誤差量から
図44に示されるように比例配分でそれぞれの誤差量を求める。
図44は、C,A軸位置が(c,a)の時の並進誤差量および回転誤差量を誤差量データテーブルに記憶された最寄の位置のデータから比例配分で求めることを説明する図である。
また、これらの軸依存並進誤差量および該軸依存回転誤差量は、第1の実施形態と同様に、軸位置によって値が決定される関数((x,y,z)や(c,a)に依存した関数)による値であってもよい。
【0119】
第1の実施形態および第3の実施形態はヘッド回転型の5軸加工機、第2実施形態ではテーブル回転型の5軸加工機で説明したが、既に述べたように、回転軸2軸に対するデータや処理を除けばそのまま3軸加工機に適用できる。また、5軸加工機にはヘッドに回転軸が1軸ありテーブルに回転軸が1軸ある混合型と呼ばれる5軸加工機もある。本発明は、混合型の5軸加工機にも同様に適用できる。
図45は、テーブルに回転軸C軸がありヘッドに回転軸B軸がある混合型の5軸加工機の一例を示す図である。
【0120】
図46は本発明を適用した一実施形態の誤差補正部を備えた数値制御装置の構成を概略で示すブロック図である。数値制御装置10は本発明に係る誤差補正機能を備えている。プロセッサであるCPU111は、ROM112に格納されたシステムプログラムに従って数値制御装置1の全体を制御する。RAM113は、各種のデータあるいは入出力信号が格納される。不揮発性メモリ114に格納された各種のデータは電源切断後もそのまま保存される。グラフィック制御回路115は、デジタル信号を表示用の信号に変換し、表示装置116に与える。キーボード117は、数値キー、文字キーなどを有する各種設定データを入力する手段である。
【0121】
軸制御回路118は、CPU111から各軸の移動指令を受けて軸の指令をサーボアンプ119に出力する。このサーボアンプ119は、この移動指令を受けて工作機械120のサーボモータ(図示せず)を駆動する。これらの構成要素はバス121で互いに結合されている。PMC(プログラマブル・マシン・コントローラ)122は、加工プログラムの実行時に、バス121経由でT機能信号(工具選択指令)などを受け取る。そして、この信号を、シーケンス・プログラムで処理して、動作指令として信号を出力し、工作機械120を制御する。また、工作機械120から状態信号を受けて、CPU111に必要な入力信号を転送する。更に、バス121には、システムプログラム等によって機能が変化するソフトウェアキー123、NCデータを記憶装置などの外部機器に送るインタフェース124が接続されている。このソフトウェアキー123は、表示装置116、キーボード117と共に、表示装置/MDIパネル125に設けられている。