(57)【特許請求の範囲】
【請求項１】
２軸以上の並進軸と、１軸以上のクランプ機構を備えた回転軸とを有する工作機械において、幾何学的な誤差による被加工物に対する工具の位置および姿勢の誤差を補正する、前記工作機械の補正値演算方法であって、
前記クランプ機構がクランプ状態でない場合に、前記幾何学的な誤差を表す幾何パラメータを用いて前記回転軸の補正値を演算して更新し、前記クランプ機構がクランプ状態である場合に、前記回転軸の補正値を従前のものに維持する回転軸補正値更新演算ステップと、
前記各回転軸の指令値及び前記各並進軸の指令値と前記幾何パラメータを用いて前記並進軸の補正値を演算する並進軸補正値演算ステップと、
を含むことを特徴とする工作機械の補正値演算方法。
【請求項２】
前記並進軸補正値演算ステップにおいて、
更に、前記回転軸の補正値を用いて前記並進軸の補正値を演算する
ことを特徴とする請求項１に記載の工作機械の補正値演算方法。
【請求項３】
前記並進軸補正値演算ステップにおいて、
前記クランプ機構がクランプ状態である場合に、前記工具の姿勢の誤差に関する前記幾何パラメータが変更されると、当該変更により発生する前記工具の位置の誤差の変化分を補正するための前記並進軸の補正値を演算する
ことを特徴とする請求項１又は請求項２に記載の工作機械の補正値演算方法。
【請求項４】
請求項１ないし請求項３の何れかに記載の工作機械の補正値演算方法を、コンピュータに実行させるための工作機械の補正値演算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並進軸と回転軸を有する工作機械の幾何学的な誤差を補正するための補正値を演算する方法ないしプログラムに関するものである。
【背景技術】
【０００２】
図１は当該工作機械の一例である、３つの並進軸と２つの回転軸を有する工作機械（５軸制御マシニングセンタ、５軸機）の模式図である。主軸頭２は、並進軸であり互いに直交するＸ軸・Ｚ軸によって、ベッド１に対して並進２自由度の運動が可能である。テーブル３は、回転軸であるＣ軸によってクレードル４に対して回転１自由度の運動が可能である。クレードル４は、回転軸であるＡ軸によって、トラニオン５に対して回転１自由度の運動が可能であり、Ａ軸とＣ軸は互いに直交している。トラニオン５は、並進軸でありＸ軸・Ｚ軸に直交するＹ軸により、ベッド１に対して並進１自由度の運動が可能である。各軸は数値制御装置により制御されるサーボモータ（図示せず）により駆動され、被加工物（ワーク）をテーブル３に固定し、主軸頭２に工具を装着して回転させ、被加工物と工具の相対位置を制御して加工を行う。
【０００３】
前記５軸機の運動精度に影響を及ぼす要因として、例えば、回転軸の中心位置の誤差（想定されている位置からのズレ）や回転軸の傾き誤差（軸間の直角度や平行度）等の各軸間の幾何学的な誤差（幾何誤差）がある。幾何誤差が存在すると工作機械としての運動精度が悪化し、被加工物の加工精度が悪化する。そのため、調整により幾何誤差を小さくする必要があるが、ゼロにすることは困難であり、幾何誤差を補正する制御を行うことで高精度な加工を行うことができる。
【０００４】
幾何誤差を補正する手段として、下記特許文献１，２に記載されるような方法が提案されている。特許文献１のものでは、工作機械の幾何誤差を考慮して工具先端点の位置を各並進軸の位置に変換し、それらを指令位置とすることで幾何誤差による工具先端点の位置誤差を補正することができる。一方、特許文献２のものでは、幾何誤差がある場合の被加工物に対する工具先端点の位置と幾何誤差がない場合の位置との差分値を並進軸の補正値として制御することで幾何誤差による工具先端点の位置誤差を補正することができる。
【０００５】
特許文献１の補正手段では、工具先端点の位置誤差を補正しているが、実際には、幾何誤差により工具先端点の位置誤差だけでなく工具の姿勢誤差が発生する。例えば、図１の５軸機において、図２に示すように主軸頭２にスクエアエンドミル６を取付けてワーク７を平面加工する場合を考えると、Ｘ軸周りの回転幾何誤差αにより主軸頭２に対してテーブル３が傾いているとき、スクエアエンドミル６の先端面の姿勢誤差が発生している。ここで、図２紙面表から裏への方向をフィード方向、太矢印Ｐ方向をピック方向として平面加工を行うとすると、スクエアエンドミル６におけるピック方向の位置決め指令値は互いに間隔の空いた複数の点の集合となる。すると、これらの補正手段では、工具先端点が、各位置決め指令値から、Ｙ軸に対して傾きαだけ傾いた点Ｑに補正されるものの、位置決め指令値に間隔があるため、補正された点Ｑも間隔のあるものとなり、図２で示すように加工面に段差が発生してしまう。
【０００６】
そこで特許文献２のものでは、幾何誤差のある場合のワークに対する工具姿勢ベクトルＴＶＧ＝［ｉ  ｊ  ｋ］を求め、回転軸（Ａ軸及びＣ軸）の補正値Δａ，ΔｃをベクトルＴＶＧとＡ軸指令値ａを用いて次の［数１］により算出し、回転軸指令値を補正して制御することで工具の姿勢誤差も補正できるとしている。
【０００７】
【数１】
0005713764.tif 000002
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−２７２８８７号公報
【特許文献２】特開２００９−１０４３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
工作機械の回転軸の多くは、加工時の剛性を確保するため、クランプ機構を有するものが多い。工具姿勢の補正を行うための補正パラメータが変更もしくは変化して、回転軸の補正値が変化するが、クランプ機構により回転軸がクランプされた状態では、クランプされているにも関わらず回転軸補正値により回転軸が動作しようとするため、回転軸がねじれるなどして大きな負荷がかかり、部材の変形による回転誤差が発生し精度の低下を招く。又、回転軸を駆動するモータがオーバーヒートを起こす可能性もあり、機械の故障を招く恐れもある。
【００１０】
そこで、本発明のうち、請求項１〜３，４では、回転軸がクランプ状態の時に回転軸の補正値が変化し回転軸が無理に動作するのを回避して、工具の先端点の位置誤差および工具の姿勢誤差を補正するための補正値の演算方法，プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１に記載の発明は、２軸以上の並進軸と、１軸以上のクランプ機構を備えた回転軸とを有する工作機械において、幾何学的な誤差による被加工物に対する工具の位置および姿勢の誤差を補正する、前記工作機械の補正値演算方法であって、前記クランプ機構がクランプ状態でない場合に、前記幾何学的な誤差を表す幾何パラメータを用いて前記回転軸の補正値を演算して更新し、前記クランプ機構がクランプ状態である場合に、前記回転軸の補正値を従前のものに維持する回転軸補正値更新演算ステップと、前記各回転軸の指令値及び前記各並進軸の指令値と前記幾何パラメータを用いて前記並進軸の補正値を演算する並進軸補正値演算ステップと、を含むことを特徴とするものである。
【００１２】
請求項２に記載の発明は、上記発明にあって、前記並進軸補正値演算ステップにおいて、更に、前記回転軸の補正値を用いて前記並進軸の補正値を演算することを特徴とするものである。
【００１３】
請求項３に記載の発明は、上記発明にあって、前記並進軸補正値演算ステップにおいて、前記クランプ機構がクランプ状態である場合に、前記工具の姿勢の誤差に関する前記幾何パラメータが変更されると、当該変更により発生する前記工具の位置の誤差の変化分を補正するための前記並進軸の補正値を演算することを特徴とするものである。
【００１４】
上記目的を達成するために、請求項４に記載の発明は、上記の工作機械の補正値演算方法をコンピュータに実行させるための工作機械の補正値演算プログラムであることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、回転軸がクランプされた状態において回転軸の補正値を更新せず保持することで、回転軸に無理な負荷が発生せずに工具先端点の位置誤差を補正することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】５軸制御マシニングセンタの模式図である。
【図２】従来例に係る工具の姿勢誤差による平面加工の模式図である。
【図３】本発明の制御方法を行う制御装置のブロック線図である。
【図４】本発明における補正値演算のフローチャートである。
【図５】本発明の回転軸の補正値演算に使用する幾何パラメータの開始位置と終了位置の表である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る実施の形態の例として、図１に示す５軸機における補正について、適宜図面に基づいて説明する。当該補正は補正プログラムを実行するコンピュータにより行われるが、そのコンピュータとは、５軸機の数値制御装置であっても良いし、これと接続された独立の制御装置であっても良いし、これらの組合せであっても良い。なお、当該形態は、下記の例に限定されず、例えば４軸以下や６軸以上の工作機械に適用しても良いし、回転軸によりテーブル３が回転２自由度を持つことに代えて、主軸頭２が回転２自由度を持つこととしても良いし、主軸頭２とテーブル３がそれぞれ回転１自由度以上を持つこととしても良い。又、工作機械として、マシニングセンタ（図１）に代えて、旋盤、複合加工機、研削盤等を採用することができる。
【００１８】
５軸機にあっては、Ａ，Ｃ軸の双方に、図示しないクランプ機構が設けられている。クランプ機構は、加工時の剛性を確保するため、加工時あるいはその前後において回転軸をクランプする。クランプ機構は、コンピュータにより、クランプないしアンクランプするように制御される。なお、Ａ，Ｃ軸の何れか一方においてクランプ機構を具備しないようにすることができる。又、回転軸数の異なる工作機械において、全ての回転軸にクランプ軸を設けても良いし、一部の回転軸のみクランプ機構を具備するようにしても良い。
【００１９】
図３は本発明の制御方法を行うための数値制御装置１０の一例である。指令値生成手段１１は、加工プログラムＧが入力されると、各駆動軸の指令値を生成する。補正値演算手段１２は、指令値生成手段１１で生成された指令値を基に各軸の補正値を演算し、当該指令値と補正値の合計値を受けたサーボ指令値変換手段１３は、各軸のサーボ指令値を演算して、各軸のサーボアンプ１４ａ〜１４ｅへ送る。各軸のサーボアンプ１４ａ〜１４ｅはそれぞれサーボモータ１５ａ〜１５ｅを駆動し、テーブル３に対する主軸頭２の相対位置および姿勢を制御する。
【００２０】
次に、幾何誤差について説明する。幾何誤差を各軸間の相対並進誤差３方向および相対回転誤差３方向の合計６成分（δｘ，δｙ，δｚ，α，β，γ）であると定義する。５軸機のテーブル３に固定されるワーク７から主軸頭２に固定される工具までの軸のつながりは、Ｃ軸，Ａ軸，Ｙ軸，Ｘ軸，Ｚ軸の順番であり、Ｚ軸と工具間及びワーク７とＣ軸間も考慮すると合計３６個の幾何誤差が存在する。但し、３６個の幾何誤差の中には冗長の関係にあるものが複数存在するため、最終的な幾何誤差としては、それらを除外する。
【００２１】
すると、最終的な幾何誤差は、軸名並びに各幾何誤差の工具側からの順番を添え字として表すと、δｘ５，δｙ５，α５，β５，δｙ４，δｚ４，β４，γ４，γ３，α２，β２，α１，β１の合計１３個となる。これらは、順に、それぞれ、Ｃ軸中心位置Ｘ方向誤差，Ｃ−Ａ軸間オフセット誤差，Ａ軸角度オフセット誤差，Ｃ−Ａ軸間直角度，Ａ軸中心位置Ｙ方向誤差，Ａ軸中心位置Ｚ方向誤差，Ａ−Ｘ軸間直角度，Ａ−Ｙ軸間直角度，Ｘ−Ｙ軸間直角度，Ｙ−Ｚ軸間直角度、Ｚ−Ｘ軸間直角度、主軸−Ｙ軸間直角度、主軸−Ｘ軸間直角度である。なお、数値制御装置１０には、これらの幾何誤差を記憶する記憶手段（図示せず）が含まれる。
【００２２】
続いて、数値制御装置１０により実行される、幾何誤差に対する補正値の演算方法について説明する。図４は補正値演算のフローチャートである。
【００２３】
ステップＳ１では、工具姿勢誤差の補正を行うかどうかを判定する。工具姿勢誤差を補正しない場合、ステップＳ２において回転軸の補正値を演算せず０とする。一方、工具姿勢誤差を補正する場合は、ステップＳ３〜Ｓ５を、回転軸の数ｎだけ繰り返す。ステップＳ３では、ｉ番目（ｉ＝１〜ｎ）の回転軸の新補正値を演算するが、その演算については後述する。
【００２４】
次に、ステップＳ４において、ｉ番目の回転軸がクランプ状態であるかを判定し、クランプ状態ではない（アンクランプ状態の）場合、ステップＳ５に移行して、ｉ番目の回転軸補正値をステップＳ３で算出した新補正値に更新する。一方、クランプ状態であれば、回転軸補正値は更新されず、前回演算した値のままとなる。全ての回転軸に対して回転軸の補正値を演算した後、ステップＳ６において、並進軸の補正値の演算を行う。一連の補正値演算は、補正値を更新する周期毎に行い、その間、補正値を、図示しない記憶手段において記憶しておく。なお、各軸の補正値の初期値は０とする。又、ステップＳ４でのクランプ状態の判定は、クランプ指令の有無で行っても良いし、クランプ機構に設けたセンサ（における信号の状態）により行っても良い。
【００２５】
ステップＳ３の演算の説明の前に、ステップＳ６の並進軸の補正値の演算方法について説明する。主軸頭２にある主軸座標系上の工具先端点ベクトルＰＴを、テーブル３にあるワーク座標系に変換するには、使用する工具の長さをｔとし、Ｘ，Ｙ，Ｚ，Ａ，Ｃ軸の指令位置をそれぞれｘ，ｙ，ｚ，ａ，ｃとすると、次に示す［数２］を用いて同次座標変換を行うことで求めることができる。即ち、幾何誤差がない場合のワーク座標系での工具先端点ベクトルＰＩを求める。
【００２６】
【数２】
0005713764.tif 000003
【００２７】
一方、次の［数３］のように、各幾何誤差を、変換マトリックスとして上記［数２］の各軸の変換マトリックス間に配置することで、幾何誤差がある場合のワーク座標系での工具先端点ベクトルＰＲを求める。なお、［数３］は幾何誤差が微小であるとしてそれらの積を０とみなした近似式である。
【００２８】
【数３】
0005713764.tif 000004
【００２９】
従って、ワーク座標系での工具先端点の位置誤差ΔＰＷ＝（δｘ，δｙ，δｚ）は次に示す［数４］となる。
【００３０】
【数４】
0005713764.tif 000005
【００３１】
更に、ワーク座標系での工具先端点の位置誤差ΔＰＷを、次の［数５］のように座標変換することで、指令値における誤差ΔＰＯを求めることができる。
【００３２】
【数５】
0005713764.tif 000006
【００３３】
よって、各軸の指令値と、上述の式の幾何誤差を予め計測・同定したパラメータ（幾何パラメータ）とした下記［数６］により、Ｘ，Ｙ，Ｚ軸の補正値ΔＰ＝（Δｘ，Δｙ，Δｚ）が得られる。
【００３４】
【数６】
0005713764.tif 000007
【００３５】
このようにして得た各並進軸の補正値ΔＰを、対応する並進軸の指令値にそれぞれ加算して指令することで、幾何誤差による工具先端点の位置誤差を補正することができる。
【００３６】
又、後述する工具姿勢補正をする場合、回転軸の指令値を補正する必要があるが、この回転軸の補正値により回転軸が動作すると、ワークに対する工具先端点の位置も移動するため、回転軸補正値による工具先端点位置の移動分だけ、並進軸補正値を修正する必要がある。この修正を行うために、幾何誤差がある場合のワーク座標系での工具先端点ベクトルＰＲを求める際に回転軸指令値に補正値を加算した回転軸補正指令値を用いる。即ち、上記［数３］に代えて次の［数７］を用いる。ここで、ΔａはＡ軸の補正値、ΔｃはＣ軸の補正値である。なお、［数７］を近似した［数８］を用いても良い。
【００３７】
【数７】
0005713764.tif 000008
【数８】
0005713764.tif 000009
【００３８】
続いて、ステップＳ３における回転軸の新補正値の演算について説明する。
【００３９】
工具からワークまでの軸のつながり順番を考えると、Ａ軸の方がＣ軸に比べて工具側に近いことから、Ａ軸を第１回転軸、Ｃ軸を第２回転軸と呼ぶ。又、工具側から見てＡ軸は４番目、Ｃ軸は５番目に位置する。これらの順番の数を各回転軸の位置に対応付けると、第１回転軸の位置Ｌｏｃ１が４、第２回転軸の位置Ｌｏｃ２が５となる。また、第３回転軸の位置Ｌｏｃ３は、回転軸が２軸しかないため考慮しない。更に、幾何誤差の工具側からの順番についても、幾何誤差の位置と対応付け、１〜６で表すことにする。
【００４０】
回転軸の新補正値は、図５の幾何誤差の開始位置ｌｓ＊と終了位置ｌｅ＊の間の幾何パラメータのうち、その回転軸と同じ回転方向の幾何パラメータ（Ａ軸はα＊、Ｂ軸はβ＊、Ｃ軸はγ＊）の合計値の逆符号とする。ここで、＊は上述の位置を示す数のうち当該回転軸に対応するものが入ることを示す。即ち、第１回転軸の補正値はｌｓ１からｌｅ１まで、第２回転軸はｌｓ２からｌｅ２までの合計値の逆符号とする。なお、第３回転軸がある場合はｌｓ３からｌｅ３までとする。
【００４１】
図５に示されるように、新補正値として選択する幾何パラメータは、回転軸の数により異なる。回転軸が２軸の場合は、第１回転軸の補正値としては１番目（ｌｓ１＝１）から第２回転軸の位置（ｌｅ１＝Ｌｏｃ２）の幾何パラメータまでであり、第２回転軸の補正値としては、第１回転軸の位置の１つワーク側の位置（ｌｓ２＝Ｌｏｃ１＋１）から最終位置（ｌｅ２＝６）までである。したがって、５軸機の場合は、Ａ軸の新補正値ΔａｔｅｍｐとＣ軸の新補正値Δｃｔｅｍｐは、次の［数９］により求められる。
【００４２】
【数９】
0005713764.tif 000010
【００４３】
そして、回転軸がクランプ状態でなければ、ステップＳ５にて、各新補正値を、対応する回転軸の補正値に代入する。例えば、Ａ，Ｃ軸ともクランプ状態でなければ、次の［数１０］に示す処理が行われる。
【００４４】
【数１０】
0005713764.tif 000011
【００４５】
このようにして求めた各回転軸の補正値を、対応する指令値にそれぞれ加算して指令することで、幾何誤差による工具の姿勢誤差を補正することができる。更に、この回転軸補正値に基づいて、上述のように並進軸の補正値を演算し、求めた各並進軸の補正値を、対応する指令値にそれぞれ加算して指令することで、幾何誤差による工具先端点の位置誤差も、同時に補正することができる。
【００４６】
なお、回転軸の位置や、回転軸と幾何誤差成分の対応、開始位置・終了位置は、予め関連付けや設定をしておくと、実際の補正値演算時には、［数９］の右辺の加算のみを行うだけで済み、よって計算量が非常に少なく演算できる。
【００４７】
一方、回転軸がクランプ状態である場合、回転系の幾何パラメータ（α＊、β＊、γ＊）を変更しても（＊は任意の添え字を示す）、クランプ中である回転軸についてステップＳ５は実行されないため、前回演算し記憶されている当該回転軸の補正値をそのまま使って並進軸の補正値の演算が行われる。即ち、当該回転軸の補正値が従前のものに維持された状態で、並進軸の補正値の演算が行われる。この並進軸の補正値の演算に用いる幾何パラメータは更新されているため、工具姿勢誤差は残るものの、工具先端点の位置誤差はその影響も含めて補正される。
【００４８】
更に、トラニオン５自身やワーク７の重量等による変形誤差や、Ａ軸角度誤差や他の軸の位置及び／又は角度に依存して変動する変位等が存在する場合、それらの誤差を変動する幾何誤差として扱う。この場合、予め与えた複数点のデータを用いて各点間を直線もしくは曲線で補間して算出した値や、モデル式から算出した値を幾何パラメータに代入する。例えば、ワーク７の重量によるＡ軸まわりの回転誤差（Ａ軸角度誤差）を、変動する幾何誤差α４として扱い、ワーク７の重量や重心等が変数となる変形モデル式を用いて、補正値演算周期毎に算出した値を、α４に代入する。
【００４９】
又、Ａ軸をある角度に割り出して加工を行う場合、剛性を上げるためにＡ軸をクランプする。加工が進むに連れてワーク７の重量や重心が変化するため、Ａ軸まわりの回転誤差が変化し、α４が変更される。この時、Ａ軸がクランプ中であるため、回転軸の補正値は更新されず、並進軸の補正値だけが更新される。その結果、工具姿勢誤差はα４変化分だけ残るが、工具先端点位置誤差は正確に補正される。
【００５０】
工具姿勢誤差も補正したい場合は、Ａ軸を一度アンクランプすることで、回転軸補正値が更新され、回転軸が変化分だけ動作して工具姿勢誤差が補正される。この時、同時に並進軸補正値も更新されて並進軸が動作し、回転軸動作により発生する工具先端点位置誤差が補正されることとなる。
【００５１】
なお、以上ではクランプ中も回転軸の補正値（一時値，ΔａｔｅｍｐやΔｃｔｅｍｐ）を演算し続けたが、クランプ中は回転軸の補正値の演算を一時停止するようにしても良い。
【符号の説明】
【００５２】
１  ベッド
２  主軸頭
３  テーブル
４  クレードル
５  トラニオン
６  スクエアエンドミル（工具）
７  ワーク（被加工物）
【図１】
0005713764.tif 000012
【図２】
0005713764.tif 000013
【図３】
0005713764.tif 000014
【図４】
0005713764.tif 000015
【図５】
0005713764.tif 000016