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