(57)【特許請求の範囲】
【請求項１】
送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有する数値制御式工作機械の熱変位補正方法において、
前記シャフトに前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設け、
工作機械の稼働中に前記シャフトの熱変位量を算出する際に、
前記シャフトの全長を、前記固定側端部から一定長さの演算区間で分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定し、該複数の演算区間の発熱量と温度分布を算出し、
前記シャフトのナット移動範囲を前記演算区間よりも短い複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正するピッチ誤差補正量を、前記熱変位量を用いて補正することを特徴とする数値制御式工作機械の熱変位補正方法。
【請求項２】
送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有し、前記シャフトのナット移動範囲を複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正する数値制御式工作機械の熱変位補正方法において、
前記シャフトに前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設け、
前記シャフトの全長を、前記固定側端部から前記補正区間よりも長い一定長さの演算区間に分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定した複数の演算区間に発生する発熱量を、前記サーボモータの回転速度と制御データとに基づいて所定時間毎に求める第１ステップと、
前記複数の演算区間の発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を前記所定期間毎に演算する第２ステップと、
前記温度分布から前記シャフトの複数の演算区間の熱変位量を前記所定期間毎に演算する第３ステップと、
前記複数の演算区間の熱変位量に基づいて、前記複数の補正区間のピッチ誤差補正量を夫々補正する補正量を前記所定期間毎に演算する第４ステップと、
を備えたことを特徴とする数値制御式工作機械の熱変位補正方法。
【請求項３】
送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有し、前記シャフトのナット移動範囲を複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正する数値制御式工作機械の熱変位補正装置において、
前記シャフトは前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを有し、
前記サーボモータの回転速度を検出する速度検出手段と、
前記シャフトの全長を、前記固定側端部から前記補正区間よりも長い一定長さの演算区間に分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定した複数の演算区間に発生する発熱量を、前記サーボモータの回転速度と制御データとに基づいて所定時間毎に求める発熱量演算手段と、
前記複数の演算区間の発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を前記所定期間毎に演算する温度分布演算手段と、
前記温度分布から前記シャフトの複数の演算区間の熱変位量を前記所定期間毎に演算する熱変位量演算手段と、
前記複数の演算区間の熱変位量に基づいて、前記複数の補正区間のピッチ誤差補正量を夫々補正する補正量を前記所定期間毎に演算する補正量演算手段と、
を備えたことを特徴とする数値制御式工作機械の熱変位補正装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御式工作機械の熱変位補正方法及びその熱変位補正装置に関し、特に工作機械の運転中に生じるボールネジ機構の熱変位による誤差を補正するように構成したものに関する。
【背景技術】
【０００２】
ボールネジ機構は、位置決め機構として工作機械に広く採用されている。ボールネジ機構は、製造公差等によりボールネジシャフトの回転量とナットの移動量とのピッチ誤差を生じるので、予め設定したピッチ誤差補正量のテーブルに基づいてピッチ誤差を補正するようになっている。
【０００３】
また、ボールネジ機構はボールネジシャフトとナット及び各軸受部との摩擦抵抗により温度上昇による熱膨張を起こし、熱変位を生じる。現在のＮＣ工作機械ではセミクローズドループ型が一般的であるが、この方式のＮＣ工作機械ではボールネジシャフトの熱変位が、そのまま位置決め誤差となって現れる。そのため、ボールネジシャフトに予張力を与え、熱膨張を吸収する方式が対策として使用されてきた。
【０００４】
最近では、太いボールネジシャフトを使用する上に送り速度が非常に速くなっているので発熱量が増大し、予張力方式で対応しようとすると、非常に大きな引張力を加えなければならない。そのため、ボールネジ機構の構造体が変形したり、スラスト軸受に無理な力が加わって焼き付く等の問題があった。
【０００５】
そこで、ボールネジシャフトに無理な予張力を与えず、しかも、特別な測定装置を必要としないボールネジシャフトの熱変位補正方法が特許文献１〜３に開示してある。特許文献１〜３では、サーボモータの回転速度からボールネジシャフトの各区間の発熱量を算出し、ボールネジシャフトのうちのナット移動部を複数の区間に分割したモデルを使用して温度分布を求める。次に、ボールネジシャフトの熱変位量を時々刻々に予想し、この熱変位量をＮＣ装置（制御手段）にピッチ誤差補正量を補正する補正量として与えることにより、インプロセスで補正する方法である。この方法によれば、算出した補正量をボールネジシャフトの実際の伸びに近似させることができる。
【０００６】
例えば、図８に示すようにボールネジ機構においては、ボールネジシャフト８１のナット部移動範囲（機械座標におけるＸ０とＸ３００との間）８１ｂについて２０ｍｍの設定長で分割した補正区間毎にピッチ誤差補正を行う。この場合、熱変位補正量は、ピッチ誤差補正の補正区間と同じ設定長で分割した演算区間毎に求めていた。
前記演算区間が短い場合、該演算区間数が増大し、決められた時間（演算周期）内に演算ができないという問題が発生する。前述した２０ｍｍの設定長は、演算区間長としては短いため、演算周期を短くする必要があった。そのため、数値制御装置により熱変位補正量を求めるには演算処理の負荷が高くなっていた。
【０００７】
一方、演算区間の長さが長くなるようにボールネジシャフト８１を分割すると、演算区間数が減少し、数値制御装置における演算処理の負荷は減少する。しかし、熱変位量の演算精度が低下するため、加工精度が低下するという問題がある。それ故、数値制御装置における演算処理の負荷を抑制しつつ、目標とする加工精度を達成するために演算区間の長さを適切な長さに設定する必要がある。
【０００８】
そこで、ボールネジシャフト８１を熱変位補正の演算区間に分割する場合、演算区間の区切り位置を機械座標の原点（Ｘ０）と一致させて、且つボールネジシャフト８１のナット部移動範囲８１ｂにおける演算区間の長さがピッチ誤差補正の補正区間の設定長の整数倍になるように分割する。例えば、演算区間の設定長を２０ｍｍ×４＝８０ｍｍとして、機械座標のＸ０で演算区間の区切り位置を一致させた場合、図１２のようになる。
【０００９】
ここで、前側軸部８１ａの長さが１００ｍｍ，ナット部移動範囲８１ｂの長さが３００ｍｍ，後側軸部８１ｃの長さが１００ｍｍとすると、演算区間１の長さは８０ｍｍ、演算区間２の長さは２０ｍｍ、演算区間３〜演算区間５の長さは８０ｍｍ、演算区間６の長さは６０ｍｍ、演算区間７の長さは８０ｍｍ、演算区間８の長さは２０ｍｍである。尚、演算区間２と演算区間６と演算区間８には、演算区間の区間長（８０ｍｍ）で分割できない余りが配置されている。
【００１０】
この演算区間で求めた熱変位量を用いてピッチ誤差補正量を補正する場合、次の方法で行う。先ず、演算区間１と演算区間２の熱変位量の合計を位置Ｘ０の熱変位量とし、Ｘ０のピッチ誤差補正量を補正する。次に、演算区間３の長さは補正区間の設定長の４倍であるので、位置Ｘ２０，Ｘ４０，Ｘ６０，Ｘ８０に演算区間３の熱変位量の１／４を等分配して夫々の位置の熱変位量を求める。求めた熱変位量を用いて夫々の位置のピッチ誤差補正量を補正する。他の演算区間についても同様にしてピッチ誤差補正量を補正する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開昭６３−２５６３３６号公報
【特許文献２】特開平４−２４００４５号公報
【特許文献３】特開平７−２９９７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、前記の分割方法では、演算区間２と演算区間６と演算区間８の長さが短くなる。
このような分割方法では、演算区間の区間長で分割できない余りのうちの最小の長さの演算区間２と演算区間８の長さ（２０ｍｍ）により熱変位量を演算する演算周期を小さく設定しなければならないので、数値制御装置における演算処理の負荷が高くなる。
【００１３】
一方、図１３に示すように、図１２における演算区間２、演算区間６、演算区間８をボールネジシャフト８１の固定側（図１２において左側）に隣接する区間に加える方法がある。この場合、演算区間２と演算区間３の長さ（８０ｍｍ）が熱変位量を演算する演算周期を決める長さとなるので、数値制御装置の演算処理の負荷を抑制することができる。しかし、熱変位量の演算精度に影響を及ぼすボールネジシャフト８１の前側軸部８１ａからナット部移動範囲８１ｂにおいて、演算区間１と演算区間４が演算区間の設定長よりも長くなる。それ故、熱変位量の演算精度が低下するので、目標とする加工精度を達成できない可能性があった。
【００１４】
本発明の目的は、数値制御装置における演算処理の負荷を抑制しつつ、高精度な熱変位補正を行うことができる数値制御式工作機械の熱変位補正方法及びその熱変位補正装置を提供することである。
【課題を解決するための手段】
【００１５】
請求項１の数値制御式工作機械の熱変位補正方法は、送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有する数値制御式工作機械の熱変位補正方法において、前記シャフトに前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設け、工作機械の稼働中に前記シャフトの熱変位量を算出する際に、前記シャフトの全長を、前記固定側端部から一定長さの演算区間で分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定し、該複数の演算区間の発熱量と温度分布を算出し、前記シャフトのナット移動範囲を前記演算区間よりも短い複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正するピッチ誤差補正量を、前記熱変位量を用いて補正することを特徴としている。
【００１６】
この数値制御式工作機械の熱変位補正方法では、演算区間の発熱量と温度分布を算出する。先ず、シャフトにサーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設けておき、シャフトの全長を固定側端部から一定長さの演算区間で分割すると共に、可動側端部を含む演算区間の長さを一定長さ以上に設定する。最後に、分割した複数の演算区間の発熱量と温度分布を算出する。
【００１７】
このように、シャフトの全長を固定側端部から一定長さの演算区間で分割すると共に、可動側端部を含む演算区間の長さを一定長さ以上に設定するので、熱変位補正の演算区間の区切り位置とピッチ誤差補正の補正区間の区切り位置とを一致させる必要がない。それ故、演算区間の区間長を長く設定することで熱変位量を演算する演算周期を長くすることができ、数値制御装置における演算処理の負荷を低減できる。また、可動側端部を含む演算区間が、他の演算区間よりも長くなった場合、温度分布を演算する際、誤差が生じるが、可動側端部は熱源であるサーボモータから離れているため、他の演算区間よりも影響度が少ないので問題ない。
【００１８】
【００１９】
請求項２の数値制御式工作機械の熱変位補正方法は、送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有し、前記シャフトのナット移動範囲を複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正する数値制御式工作機械の熱変位補正方法において、前記シャフトに前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設け、前記シャフトの全長を、前記固定側端部から前記補正区間よりも長い一定長さの演算区間に分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定した複数の演算区間に発生する発熱量を、前記サーボモータの回転速度と制御データとに基づいて所定時間毎に求める第１ステップと、前記複数の演算区間の発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を前記所定期間毎に演算する第２ステップと、前記温度分布から前記シャフトの複数の演算区間の熱変位量を前記所定期間毎に演算する第３ステップと、前記複数の演算区間の熱変位量に基づいて、前記複数の補正区間のピッチ誤差補正量を夫々補正する補正量を前記所定期間毎に演算する第４ステップとを備えたことを特徴としている。
【００２０】
この数値制御式工作機械の熱変位補正方法では、次の手順でピッチ誤差補正量を補正する補正量を求める。シャフトにサーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設けておく。先ず、シャフトの全長を、固定側端部から補正区間よりも長い一定長さの演算区間に分割すると共に、可動側端部を含む演算区間の長さを、一定長さ以上に設定した複数の演算区間に発生する発熱量を、サーボモータの回転速度と制御データに基づいて所定時間毎に求める。求めた発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を所定期間毎に演算する。温度分布からシャフトの複数の演算区間の熱変位量を所定期間毎に演算する。最後に、演算した熱変位量に基づき、複数の補正区間のピッチ誤差補正量を夫々補正する補正量を所定期間毎に演算する。これにより、請求項１と同様の作用を奏する。
【００２１】
請求項３の数値制御式工作機械の熱変位補正装置は、送り駆動用ボールネジ機構と、このボールネジ機構のナットが螺合したシャフトを回転駆動するサーボモータと、このサーボモータを制御データに基づき制御する制御手段とを有し、前記シャフトのナット移動範囲を複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正する数値制御式工作機械の熱変位補正装置において、前記シャフトは前記サーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを有し、前記サーボモータの回転速度を検出する速度検出手段と、前記シャフトの全長を、前記固定側端部から前記補正区間よりも長い一定長さの演算区間に分割すると共に、前記可動側端部を含む演算区間の長さを、前記一定長さ以上に設定した複数の演算区間に発生する発熱量を、前記サーボモータの回転速度と制御データとに基づいて所定時間毎に求める発熱量演算手段と、前記複数の演算区間の発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を前記所定期間毎に演算する温度分布演算手段と、前記温度分布から前記シャフトの複数の演算区間の熱変位量を前記所定期間毎に演算する熱変位量演算手段と、前記複数の演算区間の熱変位量に基づいて、前記複数の補正区間のピッチ誤差補正量を夫々補正する補正量を前記所定期間毎に演算する補正量演算手段とを備えたことを特徴としている。
【００２２】
この数値制御式工作機械の熱変位補正装置では、先ず、速度検出手段がサーボモータの回転速度を検出する。次に発熱量演算手段が、シャフトの全長を、固定側端部から補正区間よりも長い一定長さの演算区間に分割すると共に、可動側端部を含む演算区間の長さを、一定長さ以上に設定した複数の演算区間に発生する発熱量を、サーボモータの回転速度と制御データに基づいて所定時間毎に求める。温度分布演算手段が、発熱量を所定期間分累積した合計発熱量と非定常熱伝導方程式とに基づいて、複数の演算区間の温度分布を所定期間毎に演算する。熱変位量演算手段が、温度分布からシャフトの複数の演算区間の熱変位量を所定期間毎に演算する。最後に補正量演算手段が熱変位量に基づき、複数の補正区間のピッチ誤差補正量を夫々補正する補正量を所定期間毎に演算する。これにより、請求項１と同様の作用を奏する。
【発明の効果】
【００２３】
請求項１の発明によれば、シャフトにサーボモータに連結される固定側端部と、この固定側端部と反対側の可動側端部とを予め設け、工作機械の稼働中にシャフトの熱変位量を算出する際に、シャフトの全長を固定側端部から一定長さの演算区間で分割すると共に、可動側端部を含む演算区間の長さを一定長さ以上に設定し、複数の演算区間の発熱量と温度分布を算出するので、熱変位補正の演算区間の区切り位置とピッチ誤差補正の補正区間の区切り位置とを一致させる必要がない。それ故、演算区間の区間長を長く設定することで熱変位量を演算する演算周期を長くすることができ、数値制御装置における演算処理の負荷を低減できる。
【００２４】
さらに、演算区間の区間長を不必要に長くならないように設定することで、高精度な熱変位補正を行うことができる。前記演算区間の区間長を適切な大きさに設定することにより、数値制御装置における演算処理の負荷を抑制しつつ、目標とする加工精度を達成することが可能となる。
【００２５】
また、シャフトのナット移動範囲を演算区間よりも短い複数の補正区間に分割し、その複数の補正区間毎にピッチ誤差補正するピッチ誤差補正量を、熱変位量を用いて補正するので、熱変位量を演算する演算周期を長くすることができ、数値制御装置における演算処理の負荷を低減できる。
【００２６】
請求項２の発明によれば、シャフトの全長を固定側端部から補正区間よりも長い一定長さの演算区間に分割すると共に、可動側端部を含む演算区間の長さを一定長さ以上に設定するので、熱変位量を演算する演算周期を長くすることができ、数値制御装置における演算処理の負荷を低減できる。また、演算区間の区間長を適切な大きさに設定することにより、数値制御装置における演算処理の負荷を抑制しつつ、目標とする加工精度を達成することが可能となる。
【００２７】
請求項３の発明によれば、速度検出手段と、発熱量演算手段と、温度分布演算手段と、熱変位量演算手段と、補正量演算手段とを備えたので、請求項３と同様の効果を奏する。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施例に係る数値制御式工作機械の全体斜視図である。
【図２】本工作機械の側面図である。
【図３】Ｘ軸ボールネジ機構の構成図である。
【図４】工作機械の制御系のブロック図である。
【図５】ボールネジシャフトを複数分割した複数演算区間を説明する説明図である。
【図６】複数演算区間の合計の発熱量等の記憶データを説明する説明図である。
【図７】複数演算区間に分配した分配発熱量と温度を説明する説明図である。
【図８】ピッチ誤差補正量の為の補正区間の説明図である。
【図９】固定軸受からの各区間区切り位置における熱変位量を示す説明図である。
【図１０】熱変位補正制御プログラムのフローチャートである。
【図１１】補正量演算処理プログラムのフローチャートである。
【図１２】従来技術の図５相当図である。
【図１３】別の従来技術の図５相当図である。
【発明を実施するための形態】
【００２９】
以下、本発明を実施するための形態について説明する。
【実施例】
【００３０】
図１〜図４に基づいて工作機械Ｍの構成について説明する。
工作機械Ｍは、ワークと工具６とをＸＹＺ直交座標系における各軸方向へ独立に相対移動させることによって、ワークに所望の機械加工（例えば、「フライス削り」、「穴空け」、「切削」等）を施すことができる。図１に示すように、工作機械Ｍは、ベース１と、ベース１の上部に設けて、ワークの切削加工を行う機械本体２と、ベース１の上部に固定した、機械本体２とベース１の上部を覆う箱状の図示しないスプラッシュカバーとを主体に構成してある。ベース１はＹ軸方向（図１において右下が工作機械Ｍの前方であり、Ｙ軸方向は、工作機械Ｍの前後方向である）に長い略直方体状の鋳造品である。
【００３１】
次に、機械本体２について説明する。
機械本体２は、ベース１の後部上のコラム座部３に固定され且つ鉛直上方に延びるコラム４と、このコラム４に沿って昇降可能な主軸ヘッド５と、この主軸ヘッド５の内部に回転可能に支持した主軸５Ａと、主軸ヘッド５の右側に設け且つ主軸５Ａの先端に工具６の工具ホルダを取り付けて交換する工具交換装置（ＡＴＣ）７と、ベース１の上部に設け且つワークを着脱可能に固定するテーブル８とを主体に構成してある。コラム４の背面側には、箱状の制御ボックス９を設け、この制御ボックス９の内側には、工作機械Ｍの動作を制御する数値制御装置５０（図４参照）を設けてある。
【００３２】
次に、テーブル８をＸ軸方向とＹ軸方向に移動させる移動機構について説明する。
図１、図４に示すように、サーボモータからなるＸ軸モータ７１は、Ｘ軸方向（図１の機械本体２の左右方向）にテーブル８を移動駆動する。サーボモータからなるＹ軸モータ７２は、Ｙ軸方向にテーブル８を移動駆動する。この移動機構は以下の構成からなる。テーブル８の下側には直方体状の支持台１０を設けてある。その支持台１０にはＸ軸方向に沿って延びる１対のＸ軸送りガイドを設け、１対のＸ軸送りガイド上にテーブル８を移動可能に支持している。
【００３３】
図３に示すように、テーブル８の下面にはナット部８ａを配置してある。ナット部８ａは、カップリング１７を介してＸ軸モータ７１と接続したＸ軸ボールネジシャフト８１と螺合することでボールネジ機構を構成している。支持台１０に固定した固定軸受１８が、Ｘ軸ボールネジシャフト８１のＸ軸モータ７１側（固定側）の端部８１ｅを支持している。可動軸受１９は、Ｘ軸ボールネジシャフト８１の反対側（可動側）の端部８１ｆを支持している。可動軸受１９は、Ｘ軸ボールネジシャフト８１の軸方向へ移動可能である。
【００３４】
ベース１の上側にベース１の長手方向に沿って延びる１対のＹ軸送りガイドを設けている。該Ｙ軸送りガイドは、支持台１０を移動可能に支持している。支持台１０上に設けたＸ軸モータ７１がＸ軸送りガイドに沿ってＸ軸方向にテーブル８を移動駆動する。ベース１上に設けたＹ軸モータ７２がＹ軸送りガイドに沿ってＹ軸方向に支持台１０を移動駆動する。尚、Ｙ軸の移動機構もＸ軸と同様にボールネジ機構である。
【００３５】
Ｘ軸送りガイドには、テレスコピック式に収縮するテレスコピックカバー１１，１２がテーブル８の左右両側に設けてある。Ｙ軸送りガイドには、テレスコピックカバー１３とＹ軸後カバーとが、支持台１０の前後に夫々設けてある。これら複数のカバーによって、テーブル８がＸ軸方向とＹ軸方向の何れの方向に移動した場合でも、テレスコピックカバー１１，１２，１３とＹ軸後カバーが、常にＸ軸送りガイドとＹ軸送りガイドを覆っている。テレスコピックカバー１１，１２，１３とＹ軸後カバーは、加工領域から飛散する切粉や、クーラント液が各レール上に落下するのを防止する。
【００３６】
次に、主軸ヘッド５の昇降機構について説明する。
図１，図２に示すように、コラム４は、上下方向に延びるＺ軸ボールネジシャフトを支持している。主軸ヘッド５は、Ｚ軸ボールネジシャフトに螺合したナット部に支持されている。Ｚ軸モータ７３（図４参照）がＺ軸ボールネジシャフトを正逆方向に回転駆動することで、主軸ヘッド５がＺ軸方向（図１の機械本体２の上下方向）に昇降駆動する。従って、数値制御装置５０のＣＰＵ５１（図４参照）からの制御信号に基づいて、軸制御部６３ａ（図４参照）によりＺ軸モータ７３が主軸ヘッド５を昇降駆動するようになっている。
【００３７】
図１，図２に示すように、工具交換装置７は、工具マガジン１４と、工具交換アーム１５とを備えている。工具マガジン１４は、工具６を支持する工具ホルダを複数格納する。工具交換アーム１５は、主軸５Ａに取付けた工具ホルダと他の工具ホルダとを把持し、且つ搬送して交換する。工具マガジン１４は、その内側に複数の工具ポット（図示外）と、搬送機構（図示外）とを備えている。工具ポットは、工具ホルダを支持する。搬送機構は、工具ポットを工具マガジン１４内で搬送する。
【００３８】
次に、数値制御装置５０の電気的構成について説明する。
図４に示すように、数値制御装置５０は、マイクロコンピュータを含んで構成してあり、入出力インタフェース５４と、ＣＰＵ５１と、ＲＯＭ５２と、ＲＡＭ５３と、軸制御部６１ａ〜６４ａ，７５ａと、サーボアンプ６１〜６４と、微分器７１ｂ〜７４ｂなどを備えている。軸制御部６１ａ〜６４ａは、夫々サーボアンプ６１〜６４に接続している。サーボアンプ６１〜６４は、夫々Ｘ軸モータ７１、Ｙ軸モータ７２、Ｚ軸モータ７３、主軸モータ７４に接続している。軸制御部７５ａはマガジンモータ７５に接続している。
【００３９】
Ｘ軸モータ７１、Ｙ軸モータ７２は、夫々、テーブル８をＸ軸方向、Ｙ軸方向に移動させるものである。Ｚ軸モータ７３は、主軸ヘッド５をＺ軸方向に昇降駆動させるものである。マガジンモータ７５は工具マガジン１４を回転移動させる為のものである。主軸モータ７４は、前記主軸５Ａを回転させる為のものである。尚、Ｘ軸モータ７１、Ｙ軸モータ７２、Ｚ軸モータ７３、主軸モータ７４は、夫々エンコーダ７１ａ〜７４ａを備えている。
【００４０】
軸制御部６１ａ〜６４ａは、ＣＰＵ５１からの移動指令量を受けて、電流指令（モータトルク指令値）をサーボアンプ６１〜６４に出力する。サーボアンプ６１〜６４は、電流指令を受けてモータ７１〜７４に駆動電流を出力する。軸制御部６１ａ〜６４ａは、エンコーダ７１ａ〜７４ａから位置フィードバック信号を受けて、位置のフィードバック制御を行う。微分器７１ｂ〜７４ｂは、エンコーダ７１ａ〜７４ａから入力した位置フィードバック信号を微分して速度フィードバック信号に変換し、軸制御部６１ａ〜６４ａに速度フィードバック信号を出力する。
【００４１】
軸制御部６１ａ〜６４ａは、微分器７１ｂ〜７４ｂから速度フィードバック信号を受けて、速度フィードバックの制御を行う。電流検出器６１ｂ〜６４ｂが、サーボアンプ６１〜６４からモータ７１〜７４に出力した駆動電流を検出する。電流検出器６１ｂ〜６４ｂで検出した駆動電流を、軸制御部６１ａ〜６４ａにフィードバックする。軸制御部６１ａ〜６４ａはフィードバックされた駆動電流に基づいて電流（トルク）制御を行う。軸制御部７５ａは、ＣＰＵ５１からの移動指令量を受けて、マガジンモータ７５を駆動する。
【００４２】
ＲＯＭ５２は、工作機械Ｍの加工プログラムを機能させるメインの制御プログラム、図１０に示す熱変位補正制御の制御プログラム、図１１に示すピッチ誤差補正量の補正量を演算する補正量演算処理の制御プログラム等を記憶している。ＲＡＭ５３は、ボールネジシャフト８１の長さ、径等の機械構造に関するパラメータ、密度、比熱等の物理的性質に関するパラメータ及び熱分配係数（比率）ηN ，ηF ，ηB、ピッチ誤差補正量のテーブル等を格納している。ＲＡＭ５３は、種々のワークを機械加工する為の複数の加工プログラムも適宜格納している。
【００４３】
ピッチ誤差補正量のテーブルは、Ｘ軸、Ｙ軸、Ｚ軸ボールネジ機構のピッチ誤差を夫々補正する為のテーブルである。即ち、ボールネジ機構は、製造公差等によりボールネジシャフト８１の回転量とナット部８ａの移動量とのピッチ誤差が避けられないので、予め設定したピッチ誤差補正量のテーブルに基づいてピッチ誤差を補正するようになっている。
本実施例では、Ｘ軸ボールネジシャフト８１の熱変位を補正する例について説明する。
【００４４】
図８に示すように、Ｘ軸ボールネジシャフト８１のナット部移動範囲８１ｂ（ナット移動範囲）を後述する演算区間よりも短い複数の補正区間、具体的には、２０ｍｍの設定長で１５個の補正区間に分割し、補正区間毎にピッチ誤差補正を行う。このピッチ誤差を補正するためのピッチ誤差補正量は、メーカーが工作機械Ｍを製作後の出荷前の調整段階において、ナット部８ａを位置Ｘ０から位置Ｘ３００までＸ軸方向へ２０ｍｍ間隔にて補正区間毎に移動させる。指令値に対する誤差、つまり（目標値−実移動量）である誤差を精密に測定し、ピッチ誤差補正量のテーブルを作成し、そのテーブルをＲＡＭ５３に予め格納して出荷する。Ｙ軸、Ｚ軸方向についても同様にしてピッチ誤差補正量のテーブルを作成する。
【００４５】
次に、工作機械Ｍの稼働中における数値制御に付随して発生する熱変位量の算出方法について説明する。
本算出方法では、図５に示すように、ボールネジシャフト８１の前側軸部８１ａと、ナット部移動範囲８１ｂと、ボールネジシャフト８１の後側軸部８１ｃの３領域の発熱量を求める。この発熱量に基づいて、ボールネジシャフト８１を長さ方向に全長に亙って分割した６つの演算区間の発熱量を求める。
【００４６】
［合計発熱量の算出］
図５に示すボールネジシャフト８１は、前側軸部８１a、後側軸部８１ｃをそれぞれ１００ｍｍとし、ナット部移動範囲８１ｂを３００ｍｍとし、全長は、５００ｍｍとなる。
演算区間の長さは、８０ｍｍとしている。それ故、固定側端部８１ｅから演算区間で等間隔に区切ると、ナット部移動範囲８１ｂの可動軸受１９側の終端は、演算区間５の区切りと一致する。後側軸部８１ｃは、演算区間で区切ると、８０ｍｍと２０ｍｍとなってしまう。本願では、可動側端部８１ｆを含む演算区間は、８０ｍｍの演算区間以上に設定するため、演算区間６の長さは、１００ｍｍとなる。
【００４７】
所定時間（例えば、５０ｍｓ）毎に、加工プログラムのＸ軸送りデータ（制御データ）に基づいて、ナット部８ａがどの演算区間に存在するかを判別し、エンコーダ７１ａの検出信号から求めるＸ軸モータ７１の実回転数から決まるテーブル８の送り速度に基づいて次式により発熱量を求め、ＲＡＭ５３のデータエリアに格納する。
【００４８】
Ｑ＝Ｋ1 ×ＦT
ここで、Ｑ：発熱量、Ｆ：テーブル８の送り速度、Ｋ1 ，Ｔ：所定の定数である。
【００４９】
上記の発熱量演算式を用いて、各演算区間でのナット部８ａの移動による発熱量を、所定期間（例えば、６４００ｍｓ）の間、５０ｍｓ毎に１２８回算出する。これらの所定期間の発熱量を演算区間毎に合計し、図６に示すように、この合計発熱量Ｑ1〜Ｑ6を演算区間１〜６に対応させてＲＡＭ５３に格納する。所定期間の間に発生した６つの演算区間１〜６の発熱量Ｑ1〜Ｑ6の合計発熱量ＱTも演算してＲＡＭ５３に格納する。
【００５０】
［合計発熱量の分配］
以下に示す合計発熱量ＱTの分配方法は、ボールネジシャフト８１のナット部移動範囲８１ｂと前側軸部８１ａと後側軸部８１ｃにおいて互いに他の部分への熱伝導が生じず、熱的には近似的に独立しているとみなすことができること、合計発熱量ＱTに対する各発熱部の比率は送り速度の如何に関わらずほぼ一定であるという知見に基づいている。
【００５１】
合計発熱量ＱT、固定軸受１８の回転により発熱した前部軸受部発熱量ＱF、ナット部移動範囲発熱量ＱN、可動軸受１９の回転により発熱した後部軸受部発熱量ＱBとすると、各発熱部の分配発熱量は、次式から算出する。
【００５２】
ＱF＝ηF  ×ＱT
ＱN＝ηN  ×ＱT
ＱB＝ηB  ×ＱT
ここで比率ηF  ，ηN ，ηBは前記知見により一定であり、実機によりＱF ，ＱN ，ＱBを測定し、比率ηF  ，ηN ，ηBを予め求めておいた値を用いる。
【００５３】
［ナット部移動範囲発熱量の分配］
次に、ナット部移動範囲の分配発熱量ＱNを６つの演算区間に分配する。前記データエリアに格納されている６つの演算区間の合計発熱量Ｑ1〜Ｑ6と合計発熱量ＱTに基づいて、次式からナット部移動範囲発熱量ＱNについての６つの演算区間における発熱量の分配比率Ｘ1〜Ｘ6 を求める。
【００５４】
Ｘ1 ＝演算区間１の合計発熱量Ｑ1/ ＱT
：
Ｘ6 ＝演算区間６の合計発熱量Ｑ6/ ＱT
こうして、６つの演算区間の分配比率Ｘ1〜Ｘ6 を求めてから、この分配比率と前記ナット部移動範囲発熱量ＱN とから、次式により６つの演算区間の分配発熱量ＱN1〜ＱN6を求める。
【００５５】
ＱN1＝Ｘ1 ×ＱN
：
ＱN6＝Ｘ6 ×ＱN
図５に基づき各部の温度、各演算区間の分配発熱量を図７のように表すことができる。
【００５６】
［温度分布の算出］
以上のようにして６つの演算区間の分配発熱量を求めてから、これらの分配発熱量に基づいて温度分布を算出する。温度分布は次の非定常熱伝導方程式を、初期条件｛θ｝t=0 ＝｛θ0｝の下に解けば求めることができる。尚、θ0は初期温度である。
【００５７】
［Ｃ］ｄ｛θ｝/ｄｔ＋［Ｈ］｛θ｝＋｛Ｑ｝＝０  
ここで、［Ｃ］：熱容量マトリックス、［Ｈ］：熱伝導マトリックス、｛θ｝：温度分布、｛Ｑ｝：発熱量、ｔ：時間である。
【００５８】
［熱変位量の算出］
図７に示すように、ボールネジシャフト８１の６つの演算区間の温度θ1〜θ6を求めてから、これらの温度θ1〜θ6に基づいて、ボールネジシャフト８１の６つの演算区間区切り位置（図７のθ1〜θ6に対応する位置）の熱変位量を算出する。６つの演算区間区切り位置の熱変位量は、次式から求めることができる。
【００５９】
ΔＬ＝∫L 0 β×θ（Ｌ）ｄＬ                          ・・・（１）
ここで、ΔＬ：熱変位量、β：ボールネジシャフト材料の線膨張係数である。
積分記号は０〜Ｌの範囲についての積分を示し、Ｌは６つの演算区間に関する演算区間区切り位置までの長さを示す。具体的には、０〜８０、０〜１６０、０〜２４０、・・・等の範囲についての積分を示す。
【００６０】
［補正量の算出］
ボールネジシャフト８１の６つの演算区間区切り位置の熱変位量を求めてから、１６個の補正区間区切り位置のピッチ誤差補正量を夫々補正する補正量を算出する。尚、本実施例では、ナットの移動範囲がＸ０〜Ｘ３００（３００ｍｍの範囲）であり、各補正区間の長さが２０ｍｍである。そのため、補正量はX０，X２０，X４０，‥‥，X３００の１６個の位置での補正量を算出する。１６個の補正区間区切り位置の補正量は、図９と後述する［補正量演算式］の式から求めることができる。
【００６１】
図９は、ピッチ誤差補正量を補正する補正量を求める場合の説明図である。図９において、縦軸は固定軸受１８の位置を基準とする熱変位量、上側の横軸は固定軸受１８を基準とするボールネジシャフト８１の各部の位置であり、下側の横軸は１６個の補正区間の区切り位置（Ｘ０，Ｘ２０・・・，Ｘ３００）を示す。
ここで、ＤF1は演算区間１における熱変位量、
ＤF2は演算区間１と演算区間２における熱変位量の合計、
：
ＤF6は演算区間１〜演算区間６における熱変位量の合計である。
【００６２】
図９に示すように、１６個の補正区間の区切り位置（Ｘ０，Ｘ２０，・・・，Ｘ３００）の補正量を次式から求める。
［補正量演算式］
Ｘ０の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量×｛（演算区間２の左区切り位置とＸ０間の長さ）／演算区間２の長さ｝
Ｘ２０の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量×｛（演算区間２の左区切り位置とＸ２０間の長さ）／演算区間２の長さ｝−Ｘ０の補正量
Ｘ４０の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量×｛（演算区間２の左区切り位置とＸ４０間の長さ）／演算区間２の長さ｝−Ｘ２０の補正量
Ｘ６０の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量×｛（演算区間２の左区切り位置とＸ６０間の長さ）／演算区間２の長さ｝−Ｘ４０の補正量
Ｘ８０の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量＋演算区間３の熱変位量×｛（演算区間３の左区切り位置とＸ８０間の長さ）／演算区間３の長さ｝−Ｘ６０の補正量
：
Ｘ３００の補正量＝演算区間１の熱変位量＋演算区間２の熱変位量＋演算区間３の熱変位量＋演算区間４の熱変位量＋演算区間５の熱変位量＋演算区間６の熱変位量×｛（演算区間６の左区切り位置とＸ３００間の長さ）／演算区間６の長さ｝−Ｘ２８０の補正量
【００６３】
次に、数値制御装置５０が実行する熱変位補正制御について、図１０のフローチャートに基づいて説明する。尚、図中Ｓｉ（ｉ＝１，２・・・）は各ステップを示す。但し、この熱変位補正制御は、以上説明した内容と重複する部分が多いので簡単に説明する。また、
この熱変位補正制御と並行的に実際のワークに対する数値制御による機械加工が実行されているものとする。
【００６４】
この制御が開始されると、最初にＳ１において初期設定が実行される。この初期設定においては、先ず、パラメータ等の設定データから有限要素法による演算に必要なマトリックスを設定すると共に、初期温度を設定したり、ＲＡＭ５３の関連するメモリエリアをクリアする等の処理が実行される。次に、Ｓ２において、ボールネジシャフト８１が図５に示すように６つの演算区間１〜６に分割される。
【００６５】
次に、Ｓ３においてカウンタＩが０に設定され、Ｓ４では、Ｘ軸送りデータ、エンコータ７１ａの検出信号が読み込まれる。次に、Ｓ５においては、演算区間１〜６の５０ｍｓ毎の発熱量が演算されてメモリに記憶される。次のＳ６では、カウンタＩが「１」だけインクリメントされ、Ｓ７ではカウンタＩのカウンタ値が「１２７」か否か判定され、その判定がＮｏのうちはＳ４へ戻ってＳ４〜Ｓ６が繰り返される。Ｓ７の判定がＹｅｓになるとＳ８へ移行する。Ｓ８では、演算区間１〜６における６４００ｍｓ間の合計発熱量Ｑ1〜Ｑ6、その合計発熱量ＱTが演算されてメモリに記憶される。
【００６６】
Ｓ９では、前述の各部の発熱量ＱF、ＱN、ＱBが演算されてメモリに記憶され、発熱量ＱNへ分配した演算区間１〜６への分配発熱量ＱN1〜ＱN6が演算されてメモリに記憶される。さらに演算区間１〜６についての図７に示す分配発熱量も演算されてメモリに記憶される。Ｓ１０では、図７に示す分配発熱量に基づいて演算区間１〜６の温度θ1〜θ6が演算されてメモリに記憶される。
【００６７】
Ｓ１１では、前記の（１）式に基づいて、６つの演算区間についての演算区間区切り位置の熱変位量が演算されてメモリに記憶される。Ｓ１２では、［補正量演算式］に基づいて、前述のようにして１６個の補正区間区切り位置における補正量が演算される。次に、Ｓ１３では、Ｓ１２において求めた補正量を用いて、１６個の補正区間区切り位置に対して予め設定されているピッチ誤差補正量に対する補正処理が実行され、その補正処理したピッチ誤差補正量による送り量補正処理が実行される。Ｓ１４においては、熱変位補正の処理を終了するか否か判定され、その判定がＮｏの場合はＳ３へ戻ってＳ３以降が繰り返し実行され、Ｓ１４の判定がＹｅｓになると、この制御が終了する。
【００６８】
次に、Ｓ１２のピッチ誤差補正量を補正する補正量を演算する補正量演算処理について、図１１のフローチャートに基づいて説明する。尚、図中Ｓｉ（ｉ＝２０，２１・・・）は各ステップを示す。この処理が開始されると、カウンタｎを０にリセットし（Ｓ２０）、次に位置Ｘｎの補正量ΔＭnを次式により演算する（Ｓ２１）。
【００６９】
最初に、ΔＭn＝ＤF＋ΔＤn×｛（Ｘｎ−ＸF）／Ｌn｝−ΔＭn-20、ｎ=0 により、位置Ｘ０の補正量ΔＭ0を求める。尚、この式は［補正量演算式］を簡単に表したものである。
ここで、ＤF：位置Ｘｎよりも固定側の演算区間で発生した熱変位量の合計、
ΔＤn：位置Ｘｎを含む演算区間で発生した熱変位量、
ＸF：位置Ｘｎを含む演算区間の左区切り位置、
Ｌn：位置Ｘｎを含む演算区間の長さである。
但し、ΔＭ0を求める場合に用いるΔＭ-20を０とする。
【００７０】
Ｓ２２においてｎを２０インクリメントした後、Ｓ２３においてｎが３２０であるか否か判定する。ｎが３２０でない場合（Ｓ２３；Ｎｏ）、位置Ｘ３００までの補正量についての演算を終了していないものと判定し、Ｓ２１へ戻って位置Ｘｎの補正量ΔＭnを演算する。位置Ｘ３００の補正量ΔＭ300を求めるまではＳ２１〜Ｓ２３を繰り返し実行する。  補正量ΔＭ300を求めてから（Ｓ２１）、Ｓ２２においてｎ＝３２０となり、Ｓ２３の判定がＹｅｓとなるため、この処理を終了して、図１０のＳ１４へ移行する。
【００７１】
エンコーダ７１ａが「速度検出手段」に相当し、Ｓ３〜Ｓ７を実行する数値制御装置５０が「発熱量演算手段」に相当し、Ｓ８〜Ｓ１０を実行する数値制御装置５０が「温度分布演算手段」に相当し、Ｓ１１を実行する数値制御装置５０が「熱変位量演算手段」に相当し、Ｓ１２を実行する数値制御装置５０が「補正量演算手段」に相当する。
【００７２】
次に、以上説明した工作機械Ｍの熱変位補正方法及びその熱変位補正装置の作用、効果について説明する。ボールネジ機構のボールネジシャフト８１の全長を、固定側端部８１ｅから補正区間よりも長い一定長さの演算区間に分割すると共に、可動側端部８１ｆを含む演算区間の長さを一定長さ以上に設定するため、これら複数の演算区間の発熱量と温度分布を算出し、それに基づいて複数の演算区間の区切り位置での熱変位量を演算し、ピッチ誤差補正量を補正する補正量を決定するので、次のような効果が得られる。
【００７３】
演算区間の区切り位置と補正区間の区切り位置とを一致させる必要がなくなる。それ故、演算区間の区間長を長く設定することで熱変位量を演算する演算周期を長くすることができ、数値制御装置５０における演算処理の負荷を低減できる。
【００７４】
さらに、演算区間の区間長を不必要に長くならないように設定することで、高精度な熱変位補正を行うことができる。演算区間の区間長を適切な大きさに設定することにより、数値制御装置５０における演算処理の負荷を抑制しつつ、目標とする加工精度を達成することが可能となる。
【００７５】
次に、前記実施例を部分的に変更した変更例について説明する。
１］前記実施例においては、本発明の熱変位補正装置及びその熱変位補正方法をＸ軸のボールネジ機構の熱変位補正に適用した場合について説明したが、Ｙ軸のボールネジ機構やＺ軸のボールネジ機構の熱変位補正に適用することも可能である。
２］前記実施例においては、ボールネジシャフト８１の前側軸部８１ａとナット部移動範囲８１ｂを８０ｍｍ間隔（補正区間の設定長の４倍）で５つの演算区間に分割したが、補正区間よりも長い演算区間であればよく、例えば補正区間の設定長の１．５倍や３倍など４倍以外の長さに分割してもよい。
【００７６】
３］前記実施例においては、ボールネジシャフト８１の前側軸部８１ａ側にＸ軸モータ７１を設けたが、ボールネジシャフト８１の後側軸部８１ｃ側にＸ軸モータ７１を設けた場合も前記実施例と同様の方法で、ボールネジシャフト８１の６つの演算区間の熱変位量を求めることができる。
４］前記実施例では、発熱量を演算する演算周期５０ｍｓを例にして説明したが、この演算周期は５０ｍｓに限るものではない。また、前記の所定期間の６４００ｍｓも一例に過ぎず、これに限定される訳ではない。例えば、所定期間を２０〜３０ｓのオーダーに設定してもよい。
【符号の説明】
【００７７】
Ｍ        工作機械
８ａ      ナット部
５０      数値制御装置
５１      ＣＰＵ
７１      Ｘ軸モータ
７１ａ    エンコーダ
８１      ボールネジシャフト
８１ｂ    ナット部移動範囲
８１ｅ    固定側端部
８１ｆ    可動側端部
【図１】
0005397095.tif 000002
【図２】
0005397095.tif 000003
【図３】
0005397095.tif 000004
【図４】
0005397095.tif 000005
【図５】
0005397095.tif 000006
【図６】
0005397095.tif 000007
【図７】
0005397095.tif 000008
【図８】
0005397095.tif 000009
【図９】
0005397095.tif 000010
【図１０】
0005397095.tif 000011
【図１１】
0005397095.tif 000012
【図１２】
0005397095.tif 000013
【図１３】
0005397095.tif 000014