(57)【特許請求の範囲】
【請求項１】
主軸を支持する主軸ヘッドと、該主軸ヘッドを支持するコラムと、前記主軸ヘッドが移動する為の複数のナットと、各ナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する複数の螺子軸と、各螺子軸の熱変位量を演算する演算部とを備える工作機械において、
一の前記螺子軸は前後方向又は左右方向に延び、
他の前記螺子軸は上下方向に延び、
前記一及び他の螺子軸は、該一の螺子軸に螺合したナットと前記コラムとを含む連結部を介して交差するように連結しており、
前記演算部は、前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算し、演算した前記第１熱変位量及び第２熱変位量を加算すること
を特徴とする工作機械。
【請求項２】
前記演算部は、前記一の螺子軸の発熱量と、前記一の螺子軸に連結した前記モータの発熱量とに基づいて、前記第２熱変位量を演算すること
を特徴とする請求項１に記載の工作機械。
【請求項３】
前記他の螺子軸に螺合したナットは前記主軸ヘッドに連結しており、
前記演算部は、軸方向における前記他の螺子軸の変位量を演算する場合に、前記主軸から前記主軸ヘッド及び前記ナットを介して前記他の螺子軸に伝導する熱に基づく軸方向における前記他の螺子軸の補正熱変位量を演算し、演算した前記補正熱変位量を前記第１熱変位量及び第２熱変位量に更に加算すること
を特徴とする請求項１又は２に記載の工作機械。
【請求項４】
主軸を支持する主軸ヘッドが移動する為の複数のナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する演算方法において、
一の前記螺子軸は前後方向又は左右方向に延び、
他の前記螺子軸は上下方向に延び、
前記一及び他の螺子軸は、該一の螺子軸に螺合したナットと前記主軸ヘッドを支持するコラムとを含む連結部を介して交差するように連結しており、
前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算し、
演算した前記第１熱変位量及び第２熱変位量を加算すること
を特徴とする演算方法。
【請求項５】
制御プログラムに従って、主軸を支持する主軸ヘッドが移動する為の複数のナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する制御装置で実行可能なコンピュータプログラムにおいて、
一の前記螺子軸は前後方向又は左右方向に延び、
他の前記螺子軸は上下方向に延び、
前記一及び他の螺子軸は、該一の螺子軸に螺合したナットと前記主軸ヘッドを支持するコラムとを含む連結部を介して交差するように連結しており、
前記制御装置を、
前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算する演算部、及び
演算した前記第１熱変位量及び第２熱変位量を加算する加算部
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主軸を移動させる為のナットに螺合する螺子軸の熱変位量を演算する工作機械、演算方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
工作機械は、工具を装着する主軸と、該主軸に連結したナットと、該ナットに転動体を介して螺合した螺子軸とを備える。モータが螺子軸に連結する。螺子軸及びナットが駆動した場合、両者間で摩擦熱が発生するので、螺子軸は延びる。工作機械は、摩擦熱に基づいて、螺子軸の変位量を演算する。工作機械はモータの駆動制御に螺子軸の変位量を使用する（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１４２８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、摩擦熱のみ基づいて、螺子軸の変位量を演算した場合、実際の螺子軸の変位量との差が大きい。
【０００５】
本発明は斯かる事情に鑑みてなされたものであり、螺子軸の熱変位量を精度良く演算する工作機械、演算方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る工作機械は、工具を装着する主軸と、該主軸が移動する為の複数のナットと、各ナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する複数の螺子軸と、各螺子軸の熱変位量を演算する演算部とを備える工作機械において、一及び他の前記螺子軸は、該一の螺子軸に螺合したナットを含む連結部を介して交差するように連結しており、前記演算部は、前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算し、演算した前記第１熱変位量及び第２熱変位量を加算することを特徴とする。
【０００７】
本発明に係る工作機械は、前記演算部は、前記一の螺子軸の発熱量と、前記一の螺子軸に連結した前記モータの発熱量とに基づいて、前記第２熱変位量を演算することを特徴とする。
【０００８】
本発明に係る工作機械は、工具を装着する主軸と、該主軸が移動する為のナットと、該ナットに転動体を介して螺合し、モータの回転によって軸回りに回転する螺子軸と、該螺子軸の熱変位量を演算する演算部とを備える工作機械において、前記演算部は、軸方向における前記螺子軸の変位量を演算する場合に、前記ナットの移動による軸方向における前記螺子軸の熱変位量と、前記ナットを介して前記螺子軸に伝導する熱に基づく軸方向における前記螺子軸の補正熱変位量とを演算し、演算した前記熱変位量及び補正熱変位量を加算することを特徴とする。
【０００９】
本発明に係る工作機械は、前記ナットは前記主軸を支持する主軸ヘッドに連結しており、前記演算部は、前記主軸から前記主軸ヘッドを介して前記ナットに伝導する熱に基づいて、前記補正熱変位量を演算することを特徴とする。
【００１０】
本発明に係る工作機械は、前記螺子軸に交差するように配置された第２螺子軸と、該第２螺子軸が螺合する第２ナットとを備え、前記螺子軸及び第２螺子軸は前記第２ナットを含む連結部を介して連結しており、前記演算部は、前記連結部から前記ナットに伝導する熱に基づいて、前記補正熱変位量を演算することを特徴とする。
【００１１】
本発明に係る演算方法は、工具を装着する主軸が移動する為の複数のナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する演算方法において、一及び他の前記螺子軸は、該一の螺子軸に螺合したナットを含む連結部を介して交差するように連結しており、前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算し、演算した前記第１熱変位量及び第２熱変位量を加算することを特徴とする。
【００１２】
本発明に係る演算方法は、工具を装着する主軸が移動する為のナットに転動体を介して螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する演算方法において、軸方向における前記螺子軸の変位量を演算する場合に、前記ナットの移動による軸方向における前記螺子軸の熱変位量と、前記ナットを介して前記螺子軸に伝導する熱に基づく軸方向における前記螺子軸の補正熱変位量とを演算し、演算した前記熱変位量及び補正熱変位量を加算することを特徴とする。
【００１３】
本発明に係るコンピュータプログラムは、制御プログラムに従って、工具を装着する主軸が移動する為の複数のナットに転動体を介して夫々螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する制御装置で実行可能なコンピュータプログラムにおいて、一及び他の前記螺子軸は、該一の螺子軸に螺合したナットを含む連結部を介して交差するように連結しており、前記制御装置を、前記他の螺子軸の軸方向における前記他の螺子軸の変位量を演算する場合に、前記他の螺子軸に螺合したナットの移動による前記他の螺子軸の軸方向における前記他の螺子軸の第１熱変位量と、前記他の螺子軸の軸方向における前記連結部の第２熱変位量とを演算する演算部、及び演算した前記第１熱変位量及び第２熱変位量を加算する加算部として機能させることを特徴とする。
【００１４】
本発明に係るコンピュータプログラムは、制御プログラムに従って、工具を装着する主軸が移動する為のナットに転動体を介して螺合し、モータの回転によって軸回りに回転する螺子軸の熱変位量を演算する制御装置で実行可能なコンピュータプログラムにおいて、前記制御装置を、軸方向における前記螺子軸の変位量を演算する場合に、前記ナットの移動による軸方向における前記螺子軸の熱変位量と、前記ナットを介して前記螺子軸に伝導する熱に基づく軸方向における前記螺子軸の補正熱変位量とを演算する演算部、及び演算した前記熱変位量及び補正熱変位量を加算する加算部として機能させることを特徴とする。
【００１５】
本発明においては、一及び他の螺子軸を連結する連結部も熱変位することを考慮する。即ち、他の螺子軸の軸方向において、他の螺子軸の熱変位量を演算する場合に、ナットの移動による他の螺子軸の第１熱変位量に、連結部の第２熱変位量を加算する。
【００１６】
本発明においては、一の螺子軸の発熱量及び一の螺子軸に連結したモータの発熱量が連結部に伝導するので、二つの前記発熱量に基づいて第２熱変位量を演算する。
【００１７】
本発明においては、ナットに連結した部品が発する熱を考慮する。即ち、軸方向において、螺子軸の熱変位量を演算する場合に、ナットの移動による螺子軸の熱変位量に、ナットを介して伝導する熱量に基づく螺子軸の補正熱変位量を加算する。
【００１８】
本発明においては、主軸は回転して熱を発するので、ナットに主軸が連結している場合に、主軸からナットに伝導する熱量に基づいて、補正熱変位量を演算する。
【００１９】
本発明においては、第２螺子軸は第２ナットの移動によって熱を発するので、連結部を介して螺子軸及び第２螺子軸が連結している場合に、第２螺子軸から連結部を介してナットに伝導する熱量に基づいて、補正熱変位量を演算する。
【発明の効果】
【００２０】
本発明に係る工作機械及び演算方法にあっては、一及び他の螺子軸を連結する連結部も熱変位することを考慮する。即ち、他の螺子軸の軸方向において、他の螺子軸の熱変位量を演算する場合に、ナットの移動による他の螺子軸の第１熱変位量に、連結部の第２熱変位量を加算する。故に、他の螺子軸の熱変位量を精度良く演算することができる。
【００２１】
本発明に係る工作機械及び演算方法にあっては、ナットに連結した部品が発する熱を考慮する。即ち、軸方向において、螺子軸の熱変位量を演算する場合に、ナットの移動による螺子軸の補正熱変位量に、ナットを介して伝導する熱量に基づく螺子軸の第４熱変位量を加算する。故に、螺子軸の熱変位量を精度良く演算することができる。
【図面の簡単な説明】
【００２２】
【図１】実施の形態１に係る工作機械を略示する斜視図である。
【図２】Ｚ軸モータ、Ｚ軸螺子軸及びナットを略示する模式図である。
【図３】制御装置の構成を略示するブロック図である。
【図４】分割したＺ軸螺子軸を略示する概念図である。
【図５】データエリアの一例を示す概念図である。
【図６】Ｚ軸モータの温度と時間の関係を示す図である。
【図７】Ｚ軸モータ温度と経過時間との関係を示す図である。
【図８】制御装置によるＺ軸モータの制御処理を示す機能ブロック図である。
【図９】各分割区間の温度及び入力熱量を示す概念図である。
【図１０】Ｚ軸モータに係るボールねじ機構の各位置における温度と時間との関係を示すグラフである。
【図１１】制御装置による熱変位量演算処理を示すフローチャートである。
【図１２】制御装置による熱変位量補正処理を示すフローチャートである。
【図１３】実施の形態２に係る工作機械における制御装置による熱変位量補正処理を示すフローチャートである。
【発明を実施するための形態】
【００２３】
（実施の形態１）
以下本発明を実施の形態１に係る工作機械を示す図面に基づいて説明する。
以下の説明では図において矢印で示す上下、左右及び前後を使用する。図１は工作機械を略示する斜視図、図２はＺ軸モータ３３、Ｚ軸螺子軸３２及びナット３７を略示する模式図である。なお図１において、交換用の工具を収容する工具マガジンの図示を省略してある。
【００２４】
工作機械は前後に延びた矩形の基台１を備える。基台１上部の前側にワークを保持するワーク保持部３が設けてある。基台１上部の後側に後述するコラム４を支持する為の支持台２が設けてある。支持台２上部に、前後方向に移動するＹ軸方向移動機構１０が設けてある。Ｙ軸方向移動機構１０は、前後に延びた二つのレール１１と、Ｙ軸螺子軸１２と、Ｙ軸モータ１３と、ベアリング１４とを備える。
【００２５】
レール１１は支持台２上部の左右夫々に設けてある。Ｙ軸螺子軸１２は前後に延び、二つのレール１１の間に設けてある。Ｙ軸螺子軸１２の前端部及び中途部夫々にベアリング１４が設けてある。なお中途部に設けたベアリングの図示は省略する。Ｙ軸モータ１３はＹ軸螺子軸１２の後端部に連結している。
【００２６】
Ｙ軸螺子軸１２には転動体（図示略）を介してナット（図示略）が螺合している。Ｙ軸螺子軸１２にグリスが塗布してある。転動体は例えばボールである。各レール１１に複数の摺動子１５が摺動可能に設けてある。ナット及び摺動子１５の上部に移動板１６が連結している。移動板１６は水平方向に延びる。Ｙ軸モータ１３の回転によってＹ軸螺子軸１２は回転し、ナットは前後方向に移動し、移動板１６は前後方向に移動する。Ｙ軸モータ１３、Ｙ軸螺子軸１２、ナット及び転動体はボールねじ機構を構成する。
【００２７】
移動板１６上面に左右方向に移動するＸ軸方向移動機構２０が設けてある。Ｘ軸方向移動機構２０は、左右に延びた二つのレール２１と、Ｘ軸螺子軸２２と、Ｘ軸モータ２３（後述する図３参照）とを備える。
【００２８】
レール２１は移動板１６上面の前後夫々に設けてある。Ｘ軸螺子軸２２は左右に延び、二つのレール２１の間に設けてある。Ｘ軸螺子軸２２の左端部にベアリング２４が設けてある。またＸ軸螺子軸２２の中途部にベアリング（図示略）が設けてある。Ｘ軸モータ２３はＸ軸螺子軸２２の右端部に連結している。
【００２９】
Ｘ軸螺子軸２２には転動体（図示略）を介してナット（図示略）が螺合している。Ｘ軸螺子軸２２にグリスが塗布してある。各レール２１に複数の摺動子２６が摺動可能に設けてある。ナット及び摺動子２６の上部にコラム４が連結している。コラム４は柱状をなす。Ｘ軸モータ２３の回転によってＸ軸螺子軸２２は回転し、ナットは左右方向に移動し、コラム４は左右方向に移動する。Ｘ軸モータ２３、Ｘ軸螺子軸２２、ナット及び転動体はボールねじ機構を構成する。
【００３０】
コラム４の前面に上下方向に移動するＺ軸方向移動機構３０が設けてある。Ｚ軸方向移動機構３０は、上下に延びた二つのレール３１と、Ｚ軸螺子軸３２と、Ｚ軸モータ３３と、ベアリング３４、３６とを備える。
【００３１】
レール３１はコラム４前面の左右夫々に設けてある。Ｚ軸螺子軸３２は上下に延び、二つのレール３１の間に設けてある。図２に示す如く、Ｚ軸螺子軸３２の下端部及び中途部夫々にベアリング３４、３６が設けてある。Ｚ軸モータ３３はＺ軸螺子軸３２の上端部に連結している。
【００３２】
Ｚ軸螺子軸３２には転動体（図示略）を介してナット３７が螺合している。Ｚ軸螺子軸３２にグリスが塗布してある。各レール３１に複数の摺動子３５が摺動可能に設けてある。ナット３７の前部に主軸ヘッド５が連結している。Ｚ軸モータ３３の回転によってＺ軸螺子軸３２は回転し、ナット３７は上下方向に移動し、主軸ヘッド５は上下方向に移動する。Ｚ軸モータ３３、Ｚ軸螺子軸３２、ナット３７及び転動体はボールねじ機構を構成する。
【００３３】
上下に延びた主軸５ａが主軸ヘッド５内に設けてある。主軸５ａは軸回りに回転する。主軸ヘッド５の上端部に主軸モータ６が設けてある。主軸５ａの下端部は工具を装着する。主軸モータ６の回転によって主軸５ａが回転し、工具が回転する。回転した工具は、ワーク保持部３に保持したワークを加工する。
【００３４】
工作機械は工具を交換する工具交換装置（図示略）を備える。工具交換装置は工具マガジン（図示略）に収容した工具と主軸５ａに装着した工具を交換する。
【００３５】
図３は制御装置５０の構成を略示するブロック図である。制御装置５０（演算部）は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３及び入出力インタフェース５４を備える。ＲＯＭ５２は、工作機械の動作を制御する制御プログラムを格納しており、ＣＰＵ５１は制御プログラムをＲＡＭ５３に読み出して、工作機械の動作を制御する。作業者が操作部７を操作した場合、操作部７から入出力インタフェース５４に信号が入力する。操作部７は例えばキーボード、ボタン、タッチパネル等である。入出力インタフェース５４は表示部８に信号を出力する。表示部８は文字、図形、記号等を表示する。表示部８は例えば液晶表示パネルである。
【００３６】
制御装置５０は、Ｘ軸モータ２３に対応したＸ軸制御回路５５、サーボアンプ５５ａ及び微分器２３ｂを備える。Ｘ軸モータ２３はエンコーダ２３ａを備える。Ｘ軸制御回路５５はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５５ａに出力する。サーボアンプ５５ａは前記命令を受け、Ｘ軸モータ２３に駆動電流を出力する。
【００３７】
エンコーダ２３ａはＸ軸制御回路５５に位置フィードバック信号を出力する。Ｘ軸制御回路５５は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００３８】
エンコーダ２３ａは微分器２３ｂに位置フィードバック信号を出力し、微分器２３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｘ軸制御回路５５に出力する。Ｘ軸制御回路５５は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００３９】
サーボアンプ５５ａが出力した駆動電流の値を電流検出器５５ｂが検出する。電流検出器５５ｂは駆動電流の値をＸ軸制御回路５５にフィードバックする。Ｘ軸制御回路５５は駆動電流の値に基づいて、電流制御を実行する。一般にＸ軸モータ２３に流れる駆動電流とＸ軸モータ２３に作用する負荷トルクは略一致する。故に電流検出器５５ｂはＸ軸モータ２３に作用する負荷トルクを検出する。
【００４０】
制御装置５０は、Ｙ軸モータ１３に対応したＹ軸制御回路５６、サーボアンプ５６ａ及び微分器１３ｂを備える。Ｙ軸モータ１３はエンコーダ１３ａを備える。Ｙ軸制御回路５６はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５６ａに出力する。サーボアンプ５６ａは前記命令を受け、Ｙ軸モータ１３に駆動電流を出力する。
【００４１】
エンコーダ１３ａはＹ軸制御回路５６に位置フィードバック信号を出力する。Ｙ軸制御回路５６は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００４２】
エンコーダ１３ａは微分器１３ｂに位置フィードバック信号を出力し、微分器１３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｙ軸制御回路５６に出力する。Ｙ軸制御回路５６は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００４３】
サーボアンプ５６ａが出力した駆動電流の値を電流検出器５６ｂが検出する。電流検出器５６ｂは駆動電流の値をＹ軸制御回路５６にフィードバックする。Ｙ軸制御回路５６は駆動電流の値に基づいて、電流制御を実行する。一般にＹ軸モータ１３に流れる駆動電流とＹ軸モータ１３に作用する負荷トルクは略一致する。故に電流検出器５６ｂはＹ軸モータ１３に作用する負荷トルクを検出する。
【００４４】
制御装置５０は、Ｚ軸モータ３３に対応したＺ軸制御回路５７、サーボアンプ５７ａ及び微分器３３ｂを備える。Ｚ軸モータ３３はエンコーダ３３ａを備える。Ｚ軸制御回路５７はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５７ａに出力する。サーボアンプ５７ａは前記命令を受け、Ｚ軸モータ３３に駆動電流を出力する。
【００４５】
エンコーダ３３ａはＺ軸制御回路５７に位置フィードバック信号を出力する。Ｚ軸制御回路５７は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００４６】
エンコーダ３３ａは微分器３３ｂに位置フィードバック信号を出力し、微分器３３ｂは位置フィードバック信号を速度フィードバック信号に変換して、Ｚ軸制御回路５７に出力する。Ｚ軸制御回路５７は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００４７】
サーボアンプ５７ａが出力した駆動電流の値を電流検出器５７ｂが検出する。電流検出器５７ｂは駆動電流の値をＺ軸制御回路５７にフィードバックする。Ｚ軸制御回路５７は駆動電流の値に基づいて、電流制御を実行する。一般にＺ軸モータ３３に流れる駆動電流とＺ軸モータ３３に作用する負荷トルクは略一致する。故に電流検出器５７ｂはＺ軸モータ３３に作用する負荷トルクを検出する。
【００４８】
制御装置５０は、主軸モータ６に対応した主軸制御回路５８、サーボアンプ５８ａ及び微分器６ｂを備える。主軸モータ６はエンコーダ６ａを備える。主軸制御回路５８はＣＰＵ５１からの指令に基づいて、電流量を示す命令をサーボアンプ５８ａに出力する。サーボアンプ５８ａは前記命令を受け、主軸モータ６に駆動電流を出力する。
【００４９】
エンコーダ６ａは主軸制御回路５８に位置フィードバック信号を出力する。主軸制御回路５８は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【００５０】
エンコーダ６ａは微分器６ｂに位置フィードバック信号を出力し、微分器６ｂは位置フィードバック信号を速度フィードバック信号に変換して、主軸制御回路５８に出力する。主軸制御回路５８は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【００５１】
サーボアンプ５８ａが出力した駆動電流の値を電流検出器５８ｂが検出する。電流検出器５８ｂは駆動電流の値を主軸制御回路５８にフィードバックする。主軸制御回路５８は駆動電流の値に基づいて、電流制御を実行する。一般に主軸モータ６に流れる駆動電流と主軸モータ６に作用する負荷トルクは略一致する。故に電流検出器５８ｂは主軸モータ６に作用する負荷トルクを検出する。
【００５２】
工具マガジンはマガジンモータ（図示略）を備える。工具マガジンはマガジンモータの回転によって駆動する。制御装置５０はマガジン制御回路（図示略）を備える。マガジン制御回路はＣＰＵ５１からの指令に基づいて、マガジンモータの回転を制御する。
【００５３】
次に、Ｚ軸方向移動機構３０における熱変位量の算出方法について説明する。なおＹ軸方向移動機構１０及びＸ軸方向移動機構２０における熱変位量の算出方法は、Ｚ軸方向移動機構３０における熱変位量の算出方法と同様であり、その説明を省略する。
【００５４】
熱変位量の算出方法は、Ｚ軸モータ３３側（上側）のベアリング３６、ナット３７の移動区間及びＺ軸モータ３３の反対側（下側）のベアリング３４の３領域の発熱量を求める。移動区間は二つのベアリング３４、３６の間に相当する。また移動区間を複数の区間（分割区間）に分割し、区間毎の発熱量を求める。
【００５５】
（合計発熱量の算出）
図４は分割したＺ軸螺子軸３２を略示する概念図である。図４に示すように、制御装置５０はＺ軸螺子軸３２のナット３７が移動する移動区間（長さをＬで示す）をｎ分割する。一定時間（例えば５０ｍｓ）毎に、ナット３７が所在する分割区間を判定する。制御装置５０はモータの実回転速度から所在する分割区間の発熱量を求め、後述する温度分布演算回路５１ｃのデータエリアに格納する。発熱量は次式で求める。ナット３７が所在する区間は、エンコーダ６ａが出力する信号に基づいて判断できる。
【００５６】
Ｑ＝ｄ1 ・ω＋ｄ2 ・ω2 ＋ｄ3 ・ａ・ｍ・ω        ・・・（１）
ここでＱは発熱量、ｄ1 〜ｄ3 は係数（第１係数、第２係数及び第３係数）、ωはＺ軸モータ３３の回転速度、ａはＺ軸モータ３３の回転加速度、ｍはＺ軸螺子軸３２によって移動する物体の質量である。
【００５７】
式（１）において、ｄ1 ・ωはＺ軸螺子軸３２及びナット３７が発生する摩擦熱の発熱量（値）を示し、ｄ2 ・ω2 はナット３７及びＺ軸螺子軸３２の間に設けたグリスの粘性によって発生する粘性発熱の発熱量（値）を示し、ｄ3 ・ａ・ｍ・ωはナット３７に作用する慣性力によって発生する慣性力発熱の発熱量（値）を示す。なお粘性発熱による発熱量又は摩擦熱に対して、慣性力発熱の発熱量が充分に小さい場合、式（１）において慣性力発熱の発熱量を省略してもよい。慣性力発熱は慣性力によってナット３７の負荷が増加し、ナットの３７の負荷が増加することで摩擦力が増大することに依るものである。
【００５８】
図５はデータエリアの一例を示す概念図である。図５に示すように、制御装置５０は、ナット３７が所在する分割区間での、ナット３７の移動による発熱量を、式（１）を用いて５０ｍｓ毎に算出する。この処理を一定時間繰り返す。一定時間は例えば６４００ｍｓである。この場合、制御装置５０は１２８回算出する。制御装置５０は分割区間毎に発熱量を合計し、合計発熱量ＱNiを求め、各区間１〜ｎに対応したデータエリアに格納する。
【００５９】
次に下側ベアリング３４の発熱量は次式で求める。
【００６０】
ＱB ＝Ｄ・ω
ここでＱB は下側ベアリング３４の発熱量、Ｄは係数（第４係数）、ωはＺ軸モータ３３の回転速度である。
【００６１】
次に制御装置５０は上側のベアリング３６の発熱量（上側ベアリング発熱量）ＱT を算出する。上側ベアリング発熱量はＺ軸モータ３３の上昇温度による入熱に起因するものである。制御装置５０はＺ軸モータ３３の温度を算出し、算出した温度とＺ軸螺子軸３２端部の温度の差分に基づいて、Ｚ軸螺子軸３２端部の入熱量、即ち上側ベアリング発熱量ＱT を求める。
【００６２】
図６はＺ軸モータ３３の温度と時間の関係を示す図である。図６に示す如く、最大飽和温度がＬ1aであった場合、工作機械駆動中のＺ軸モータ温度ΘM は、直線Ｐ＝Ｌ1aに対する漸近線１５０を描く。またＺ軸モータ温度ΘM が最大飽和温度Ｌ1aに達した後（図６ではｔ＝８hourの時点）、工作機械を停止すると、Ｚ軸モータ本体温度ΘM は直線Ｑ＝０に対する漸近線１５１を描く。
【００６３】
漸近線１５０は、
Ｌ1a＝Ｋ2 ・ω＋Ｋ3 ・ｉ2                    ・・・（２）
ΘM ＝Ｌ1a・（1−ｅｘｐ（−γ・ｔ））         ・・・（３）
で表すことができる。
【００６４】
漸近線１５１は、
ΘM ＝Ｌ1a・ｅｘｐ（−γ・ｔ）           ・・・（４）
で表される。ここで、ｉはＺ軸モータ３３に流れる電流、ωはモータ回転速度、Ｌ1aは飽和温度であり、γ、Ｋ2 、Ｋ3 はＺ軸モータ３３固有の定数である。
工作機械の駆動開始後ａ分後のモータ本体温度ΘM1a は、
ΘM1a ＝Ｌ1a・｛１−ｅｘｐ（−γ・ａ／６０）｝
となる。
また、工作機械停止後ａ分後のモータ本体温度ΘM-1a は、
ΘM-1a＝Ｌ1a・ｅｘｐ（−γ・ａ／６０）
となる。主に式（３）を用いて上記経過時間の間のＺ軸モータ温度ΘM を算出する。尚、以下の説明では、工作機械の駆動後、時刻ｔ１、ｔ２、・・・（分）と時間が経過したものとして説明する。すなわち、時刻ｔ１、ｔ２、・・・の間隔が夫々の処理における経過時間である。
【００６５】
図７はＺ軸モータ温度と経過時間との関係を示す図である。図７Ａは駆動開始後０からｔ１までのＺ軸モータ温度と経過時間との関係図、図７Ｂは駆動開始後ｔ１からｔ２までのＺ軸モータ温度と経過時間との関係図、図７Ｃは駆動開始後ｔ２からｔ３までのＺ軸モータ温度と経過時間との関係図、図７Ｄは駆動開始後０からｔ３までのＺ軸モータ温度と経過時間との関係図である。なお図７において縦軸は摂氏（℃）を示し、前述したように横軸は分を示す。
【００６６】
本実施例では、上記経過時間に基づいてＺ軸モータ温度ΘM を算出した場合、Ｚ軸モータ温度ΘM は、その後式（４）に従って低下する。即ち図７Ａに曲線３０１で示す如く、時刻０から時刻ｔ１までの間の経過時間に基づいて算出したＺ軸モータ温度ΘMt1 の時刻ｔ１における値ΘMt1-1 は、前述のように
ΘMt1-1 ＝Ｌt1・｛１−ｅｘｐ（−γ・ｔ１／６０）｝
となる。但し、Ｌt1は時刻０から時刻ｔ１間での経過時間に基づいて算出した最大飽和温度である。そして、時刻ｔ２におけるＺ軸モータ温度ΘMt2 の値ΘMt1-2 は、式（４）より、
ΘMt1-2 ＝ΘMt1-1 ・ｅｘｐ｛−γ・（ｔ２−ｔ１）／６０｝
以下同様に、時刻ｔ３、ｔ４におけるＺ軸モータ温度ΘMt1 の値ΘMt1-3 、ΘMt1-4 は、
ΘMt1-3 ＝ΘMt1-1 ・ｅｘｐ｛−γ・（ｔ３−ｔ１）／６０｝
ΘMt1-4 ＝ΘMt1-1 ・ｅｘｐ｛−γ・（ｔ４−ｔ１）／６０｝
となる。同様に、時刻ｔ１から時刻ｔ２までの間の経過時間に基づいて最大飽和温度Ｌt2を算出した場合、それに対応するＺ軸モータ温度ΘMt2 は図７Ｂに曲線３０２で例示するように変化し、その時刻ｔ２、ｔ３、ｔ４におけるΘMt2-1 、ΘMt2-2 、ΘMt2-3 は夫々、
ΘMt2-1 ＝Ｌt2・［１−ｅｘｐ｛−γ・（ｔ２−ｔ１）／６０｝］
ΘMt2-2 ＝ΘMt2-1 ｅｘｐ｛−γ・（ｔ３−ｔ２）／６０｝
ΘMt2-3 ＝ΘMt2-1 ・ｅｘｐ｛−γ・（ｔ４−ｔ２）／６０｝
となる。図７ＣはＺ軸モータ温度ΘMt3 の温度変化を示しており、前述と同様にΘMt3-1 、ΘMt3-2 、ΘMt3-3 を求めることができる。
【００６７】
図７Ｄは、算出したＺ軸モータ温度ΘMt1 、ΘMt2 ・・・の各時刻における値を加算した値を示す。例えば、時刻ｔ１、ｔ２、ｔ３、・・・の間の経過時間に基づいて、図７Ｄに曲線３０１、３０２、３０３・・・で例示するＺ軸モータ温度ΘM が算出された場合、Ｚ軸モータ温度ΘM は、図７Ｄの曲線３０４で例示するように変化する。
【００６８】
前記Ｚ軸モータ温度ΘM を用いて、上側ベアリング発熱量ＱT を算出するには、次式、
ＱT ＝Ｋ4 （ΘM−ΘS ） …（５）
となる。ここで、Ｋ4 ：係数、ΘS ：Ｚ軸螺子軸端部温度である。尚、Ｚ軸螺子軸端部温度とは上側ベアリング３６が支持するＺ軸螺子軸３２の部分の温度である。
【００６９】
（温度分布の算出）
以上の如く移動区間と各ベアリング３４、３６の発熱量を求めた場合、これらの発熱量から温度分布を算出する。温度分布は次の非定常熱伝導方程式、
［Ｃ］ｄ｛θ｝/ｄｔ＋［Ｈ］｛θ｝＋｛Ｑ｝＝０     ・・・（６）
を初期条件｛θ｝ｔ＝０、ｄ｛θ｝/ｄｔt=0 の下に解き求める。
ここで、［Ｃ］：熱容量マトリックス、［Ｈ］：熱伝導マトリックス、｛θ｝：温度分布、｛Ｑ｝：発熱量、ｔ：時間である。
【００７０】
（熱変位量の算出）
Ｚ軸螺子軸３２の各部の温度分布を求めた場合、これから熱変位量を算出する。熱変位量は、次式、
ΔＬ＝∫L0β×θ（Ｌ）ｄＬ                       ・・・（７）
にて求める。ここで、ΔＬ：熱変位量、β：Ｚ軸螺子軸３２の材料の線膨張係数である。
【００７１】
図８は制御装置５０によるＺ軸モータ３３の制御処理を示す機能ブロック図である。なおＹ軸モータ１３及びＸ軸モータ２３についても同様の処理を行う。
【００７２】
補間制御回路５１ａはＲＡＭ５３に読み込んだ加工データに基づきボールねじ機構の送り量を計算する回路である。ＲＡＭ５３は位置レジスタ５３ｂを備える。信号分配部５１ｂはボールねじ機構の送り量に応じた送り量信号を各軸に分けて分配し、前記送り量信号をＺ軸制御回路５７に与える。信号分配部５１ｂは前記送り量信号を位置レジスタ５３ｂに与え、ナット３７の位置データを位置レジスタ５３ｂに格納する。エンコーダ３３ａはＺ軸モータ３３の回転速度を常時検出し、検出信号をＺ軸制御回路５７及び温度分布演算回路５１ｃに入力する。なお破線は制御装置５０を示す。
【００７３】
ＲＡＭ５３はパラメータメモリ５３ａを備える。パラメータメモリ５３ａはＺ軸螺子軸３２の長さ、径等の機械構造に関するパラメータ、密度、比熱、式（３）及び式（４）で用いるγ等の物理的性質に関するパラメータ及び前記熱分配係数（比率）ηＮ、ηＢ等を格納する。温度分布演算回路５１ｃはＺ軸モータ３３の回転速度検出信号から式(１)に基づきＺ軸螺子軸３２の移動区間発熱量を５０ｍｓ毎に算出し、６４００ｍｓ後、各分割区間の合計発熱量ＱNiを演算する。
【００７４】
また上側ベアリング発熱量に関して、温度分布演算回路５１ｃは、電流検出器５５ｂからの電流とＺ軸モータ３３の回転速度を式(２)に適用して、Ｚ軸モータ３３の飽和温度を算出し、式(３)及び式(４)に適用して、Ｚ軸モータ温度ΘM を計算する。また式（６）によってＺ軸螺子軸端部温度Θs を求める。Ｚ軸モータ温度ΘM とＺ軸螺子軸端部温度Θs から式（５）に基づき上側ベアリング発熱量ＱT の計算を行う。下側ベアリング発熱量ＱB はＺ軸モータ３３の回転速度に基づいて計算を行う。
【００７５】
温度分布演算回路５１ｃは各分割区間の合計発熱量Ｑni、上側ベアリング発熱量ＱT 、下側ベアリング発熱量ＱB とパラメータメモリ５３ａに記憶する各種データとから式（６）を解き、移動区間及び二つのベアリング３４、３６の温度分布を算出する。具体的には、工作機械の駆動後（ｔ＝０）、時刻がｔ１、ｔ２、・・・（分）と時間が経過したときの温度分布の算出は次のように行う。
図９は各分割区間の温度及び入力熱量を示す概念図である。図９において温度Θs の単位は摂氏である。図９を用いて式（６）は、次式
【００７６】
【数１】
0006582522.tif 000002
と表現できる。
【００７７】
図１０は、Ｚ軸モータ３３に係るボールねじ機構の各位置における温度と時間との関係を示すグラフである。なお図１０において縦軸は摂氏（℃）を示し、横軸は分を示す。
時刻ｔ＝０の時の移動区間及び二つのベアリング３４、３６の温度｛θ｝、およびモータ本体温度ΘM は既知であるため式（５）よりＱT を求めることができる。また式（１）からＱN1〜ＱNn、Ｚ軸モータ３３の回転速度からＱB も既知となる。これらの値を式（８）の右辺に代入すると図１０の如く各位置における温度が上昇する速度（ｄ｛θ｝t=0 ／ｄｔ）すなわち傾きを求めることができる。この傾きより、ｔ＝１における各部の温度｛θ｝は下式により求めることができる。
｛θ｝t=t1＝｛θ｝t=t0＋（ｄ｛θ｝t=0 /ｄｔ）・ｔ１
【００７８】
｛θ｝t=t0のＺ軸螺子軸端部温度ΘS と式（３）、（４）で求まるモータ本体温度ΘM から、ｔ＝１におけるＱT が式（５）より求まる。これらの値を式（８）に代入し、
ｄ｛θ｝t=1 ／ｄｔを求めるとｔ＝２における各部の温度は
｛θ｝t=t2＝｛θ｝t=t1＋（ｄ｛θ｝t=1 /ｄｔ）×（ｔ２−ｔ１）
で求まる。このようにして、ｔ＝ｔ３、‥‥の温度は同様にして求めることができる。
【００７９】
補正データ演算回路５１ｄは、温度分布演算回路５１ｃが算出した温度分布から式（７）に基づき補正量を算出する。補正信号発生部５１ｅは、補正データ演算回路５１ｄが算出した補正量に応じた補正信号をＺ軸制御回路５７に与える。前記各回路、信号分配部５１ｂ及び補正信号発生部５１ｅはＣＰＵ５１を構成する。
【００８０】
図１１は制御装置５０による熱変位量演算処理を示すフローチャートである。制御装置５０のＣＰＵ５１はＺ軸螺子軸３２の移動区間を有限個数の分割区間に分割する（ステップＳ１、図４参照）。ＣＰＵ５１は移動区間の分割によって熱分布モデルの領域を形成する。なお各分割区間ｉに対応して、現在の外気温度θair 、初期位置、現在位置、変位量、線膨張係数、熱容量、熱伝達係数等を記憶するメモリ領域がＲＡＭ５３に設けてある。
【００８１】
次にＣＰＵ５１は各分割区間ｉにおいて、初期温度｛θ｝t=0 を設定する（ステップＳ２）。該初期温度｛θ｝t=0 は、分割区間毎に個別に設定できる。工作機械の温度が外気温度θair と一致していると扱う場合、全ての分割区間について初期温度｛θ｝t=0 を外気温度θair に設定する。工作機械の駆動によって各分割区間の間に温度差が生じている場合、各分割区間に初期温度を夫々設定する。初期温度｛θ｝t=0 はメモリに記憶する。またＣＰＵ５１は初期位置等の基準値についても測定を行い記憶する。
【００８２】
５０ｍｓ毎にナット３７の現在位置、送り速度のデータが温度分布演算回路５１ｃに入力する。温度分布演算回路５１ｃ、即ちＣＰＵ５１は式（１）に基づき分割区間毎の発熱量を算出する（ステップＳ３）。Ｚ軸モータ３３の回転速度から下側ベアリング発熱量を算出する（ステップＳ４）。
【００８３】
ＣＰＵ５１は、Ｚ軸モータ３３に流れる電流とモータ回転速度とを用いて式（２）に基づき飽和温度を求め、該飽和温度と式（３）及び式（４）とによりＺ軸モータ３３の温度変化を求める（ステップＳ５）。Ｚ軸モータ３３の温度変化とＺ軸螺子軸端部温度とから、Ｚ軸モータ３３に隣接する分割区間への入熱、所謂上側ベアリング発熱量を式（５）に基づき算出する（ステップＳ６）。
【００８４】
ＣＰＵ５１はステップＳ３〜Ｓ６で求めた発熱量と非定常熱伝導方程式（６）とを用いて各分割区間の温度分布を求める（ステップＳ７）。ＣＰＵ５１は、ステップＳ７で求めた温度分布により各分割区間の熱変位量を、式（７）を用いて算出し（ステップＳ８）、ステップＳ２で記憶した基準位置からの熱変位量を算出する（ステップＳ９）。該熱変位量は加工制御に用いる補正量に相当する。ＣＰＵ５１（補正信号発生部５１ｅ）は、ステップＳ９で求めた熱変位量（補正量）に相当する送り量信号をＺ軸制御回路５７に出力する（ステップＳ１０）。ＣＰＵ５１はステップＳ１に処理を戻す。
【００８５】
前述の如く、Ｘ軸螺子軸２２にナットが螺合している。前記ナットの移動によってＸ軸螺子軸２２が発熱するので、ナット及び該ナットの周囲にある部材（連結部）は熱によってＺ軸方向に変位する。該ナットの周囲にある部材とは、ナットが連結している鋳物のことで、Ｘ軸の場合コラムのことを指す。Ｙ軸螺子軸１２に螺合したナットが移動する場合も同様である。故に制御装置５０は、Ｘ軸螺子軸２２及びＹ軸螺子軸１２に螺合したナット及び該ナットの周囲にある部材のＺ軸方向への熱変位量を、上記ステップＳ９にて求めた熱変位量に加算する。
【００８６】
Ｘ軸螺子軸２２に螺合したナット及び該ナットの周囲にある部材のＺ軸方向への熱変位量は以下のように求める。まずナットがＸ軸螺子軸２２を移動している場合に、ナット及びナットの周囲にある部材のＺ軸方向への最大熱変位量ｄzxを以下の式で求める。
ｄzx＝ｋzxbs・Ｑxbs ＋ｋzxm ・Ｑxm        ・・・・・（９）
なおｋzxbs、ｋzxmは比例係数であり、Ｑxbs はＸ軸螺子軸２２の総発熱量であり、式（１）に基づいて求める。その際、ωはＸ軸モータ２３の回転速度、ａはＸ軸モータ２３の回転加速度、ｍはＸ軸螺子軸２２によって移動する物体の質量である。
Ｑxbs＝ΣＱNi（図５参照）
ＱxmはＸ軸モータ２３の発熱量である。Ｘ軸モータ２３の発熱量は、モータの最大飽和温度に比例する値となるため、前述した式（２）で求まるモータの最大飽和温度Ｌ1aの比例値より求める。またモータからナット及びナットの周囲にある部材への熱の伝達は、モータの温度が上昇してから行われるとも考えられるため、Ｑxmの値は、式（３）で求まるモータ本体温度ΘMの比例値を用いてもよい。
【００８７】
次に上記式（９）で求めた最大熱変位量ｄzxを使用して、ナット及びナットの周囲にある部材のＺ軸方向への熱変位量（第２熱変位量）δＺx （ｔ）を以下の式で求める。
δＺx （ｔ）＝ｄzx（１−ｅｘｐ（−αzx・ｔ））      ・・・（１０）
なおαZXは時定数である。
【００８８】
ただし冷却時においては、δＺx （ｔ）を、以下の式で求める。
δＺx （ｔ）＝ｄzx・ｅｘｐ（−αzx・ｔ））          ・・・（１１）
【００８９】
なおＹ軸螺子軸１２に螺合したナット及び該ナットの周囲にある部材のＺ軸方向への熱変位量δＺy （ｔ）も、Ｘ軸螺子軸２２に螺合したナット及び該ナットの周囲にある部材と同様に求めることができるので、その詳細は省略する。
【００９０】
故にＺ軸螺子軸３２の熱変位量δＺ（ｔ）は、ステップＳ９で求めた熱変位量（第１熱変位量）をδＺb （ｔ）とすると、以下の式で求まる。
δＺ（ｔ）＝δＺb （ｔ）＋δＺx （ｔ）＋δＺy （ｔ）      ・・・（１２）
【００９１】
図１２は制御装置５０による熱変位量補正処理を示すフローチャートである。なお式（９）の比例係数と、式（１０）、（１１）の時定数はＲＡＭ５３に予め格納してあるものとする。
【００９２】
制御装置５０のＣＰＵ５１はＸ軸螺子軸２２及びＹ軸螺子軸１２の総発熱量と、Ｘ軸モータ２３及びＹ軸モータ１３の発熱量を演算する（ステップＳ１１）。ＣＰＵ５１は式（１）に基づいて、Ｘ軸螺子軸２２及びＹ軸螺子軸１２の総発熱量を演算する。（ステップＳ３参照）、ＣＰＵ５１は式（２）に基づいて、Ｘ軸モータ２３及びＹ軸モータ１３の発熱量を演算する（ステップＳ５参照。）
【００９３】
ＣＰＵ５１はＸ軸螺子軸２２及びＹ軸螺子軸１２夫々に螺合したナット及びナットの周囲にある部材のＺ軸方向への最大熱変位量を演算する（ステップＳ１２、式（９）参照）。
【００９４】
ＣＰＵ５１はステップＳ１２で演算した熱変位量を使用して、Ｘ軸螺子軸２２及びＹ軸螺子軸１２夫々に螺合したナット及びナットの周囲にある部材のＺ軸方向への熱変位量を演算する（ステップＳ１３、式（１０）及び（１１）参照）。
【００９５】
ＣＰＵ５１は、ステップＳ９で演算した熱変位量に、ステップＳ１３で演算したナット及びナットの周囲にある部材のＺ軸方向への熱変位量を加算し、Ｚ軸螺子軸３２の熱変位量を演算し（ステップＳ１４、式（１２）参照）、ステップＳ１１に処理を戻す。
【００９６】
実施の形態１に係る工作機械にあっては、Ｘ軸螺子軸２２又はＹ軸螺子軸１２（一の螺子軸）とＺ軸螺子軸３２（他の螺子軸）とを連結するナット及びナットの周囲にある部材（連結部）も熱変位することを考慮する。即ち、Ｚ軸螺子軸３２の軸方向において、Ｚ軸螺子軸３２の熱変位量を演算する場合に、ナット３７の移動によるＺ軸螺子軸３２の熱変位量（第１熱変位量）に、ナット及びナットの周囲にある部材の熱変位量（第２熱変位量）を加算する。故に、Ｚ軸螺子軸３２の熱変位量を精度良く演算することができる。
【００９７】
またＸ軸螺子軸２２及びＹ軸螺子軸１２の発熱量と、Ｘ軸モータ２３及びＹ軸モータ１３の発熱量がナット及びナットの周囲にある部材に伝導するので、二つの前記発熱量に基づいて第２熱変位量を演算する。
【００９８】
（実施の形態２）
以下本発明を実施の形態２に係る工作機械を示す図面に基づいて説明する。主軸５ａが回転している場合、主軸５ａは発熱し、熱はナット３７及びＺ軸螺子軸３２に伝導する。Ｚ軸螺子軸３２は、伝導した熱によってＺ軸方向に変位する。故に制御装置５０は、主軸５ａからナット３７を介してＺ軸螺子軸３２に伝導した熱による熱変位量を、上記ステップＳ９にて求めた熱変位量に加算する。
【００９９】
工作機械の駆動後（ｔ＝０）、時刻がｔ１、ｔ２、・・・（分）と経過したとき、主軸５ａからナット３７を介してＺ軸螺子軸３２に伝導した伝熱量は以下のように求める。まず主軸５ａから主軸ヘッド５に伝導した伝熱量Ｑczs （ｔ２）を以下の式で求める。
Ｑczs （ｔ２）＝ｋzsbs・Ｑsbs （ｔ２）＋ｋzsm ・Ｑsm（ｔ２）  ・・・・（１３）
なおｋzsbs、ｋzsm は比例係数であり、Ｑsbs （ｔ２）は主軸５ａに設けてあるベアリング（図示略）の発熱量であり、Ｑsm（ｔ２）は主軸モータ６の発熱量である。
Ｑsbs （ｔ２）、Ｑsm （ｔ２）は下記式で求める。
Ｑsbs （ｔ２）＝ｋzs・ωs 
Ｑsm（ｔ２）＝ｋzsmr・ωs ＋ｋzsmi・is 
なおｋzs、ｋzsmr、ｋzsmiは比例係数であり、ωs 、is はｔ１〜ｔ２間の平均回転数、平均主軸モータ負荷である。
【０１００】
次に式（１３）で求めた伝熱量Ｑczs （ｔ２）を下記式（１４）の右辺に代入し、主軸ヘッド５の温度Ｔzs（ｔ）を求める。
ｄＴzs（ｔ２）／ｄｔ＝−αzs・Ｔzs（ｔ１）＋Ｑczs （ｔ１）／Ｃzs  ・・・（１４）
なおαzsは主軸ヘッド５の放熱係数であり、Ｃzsは主軸ヘッド５の熱容量である。
【０１０１】
Ｚ軸の機械座標位置に応じて、Ｚ軸螺子軸３２を後述するＳ２１で分割した各区間のうち、どの区間にＺ軸が存在するかを判定する。仮に区間ｉ上に存在したとする。主軸ヘッド５の温度Ｔzs（ｔ）を下記式（１５）の右辺に代入し、主軸ヘッド５からナット３７を介してＺ軸螺子軸３２に伝導した伝熱量Ｑzs（ｔ２）を求める。
Ｑzs（ｔ２）＝ｋzs・（Ｔzs（ｔ２）−θi （ｔ１））      ・・・（１５）
なおｋzsは主軸ヘッド５とＺ軸螺子軸３２の熱伝達係数、θi （ｔ１）はＺ軸が存在する区間ｉの温度である。
【０１０２】
図１３は制御装置５０による熱変位量補正処理を示すフローチャートである。なお前述した比例係数ｋzsbs、ｋzsm 、放熱係数αzs、熱容量Ｃzs、熱伝達係数ｋzsはＲＡＭ５３に予め設定してあるものとする。
【０１０３】
制御装置５０のＣＰＵ５１はＺ軸螺子軸３２の移動区間を有限個数の分割区間に分割する（ステップＳ２１、図４参照）。ＣＰＵ５１は実施の形態１におけるステップＳ１と同様な処理を行う。ＣＰＵ５１は分割区間の基準位置を設定する（ステップＳ２２）。なお基準位置はＲＡＭ５３に予め設定してあるものとする。
【０１０４】
ＣＰＵ５１は、主軸５ａに設けてあるベアリング及び主軸モータ６の発熱量Ｑsbs （ｔ２）、Ｑsm（ｔ２）を演算する（ステップＳ２３）。ＣＰＵ５１は、演算した各発熱量Ｑsbs （ｔ２）、Ｑsm（ｔ２）を使用し、式（１４）に基づいて、主軸ヘッド５の温度Ｔzs（ｔ２）を演算する（ステップＳ２４）。
【０１０５】
ＣＰＵ５１は、演算した主軸ヘッド５の温度Ｔzs（ｔ２）を使用し、式（１５）に基づいて、主軸ヘッド５からナット３７を介してＺ軸螺子軸３２に伝導した伝熱量Ｑzs（ｔ２）を演算する（ステップＳ２５）。ＣＰＵ５１は、演算した伝熱量Ｑzs（ｔ２）を各分割区間に分けて、非定常熱伝導方程式（式（６）参照）に基づいて、各分割区間の温度上昇を演算する（ステップＳ２６）。ＣＰＵ５１は、各分割区間における基準位置からの熱変位量（補正熱変位量）を演算する（ステップＳ２７、式（７）参照）。
【０１０６】
ＣＰＵ５１は、ステップＳ９で演算した熱変位量にステップＳ２７で演算した熱変位量を加算し、Ｚ軸螺子軸３２の熱変位量を演算し（ステップＳ２８）、ステップＳ２１に処理を戻す。
【０１０７】
実施の形態２に係る工作機械にあっては、ナット３７に連結した主軸５ａが発する熱を考慮する。即ち、Ｚ軸方向において、Ｚ軸螺子軸３２の熱変位量を演算する場合に、ナット３７の移動によるＺ軸螺子軸３２の熱変位量に、ナット３７を介して伝導する熱量に基づくＺ軸螺子軸３２の熱変位量（補正熱変位量）を加算する。故に、Ｚ軸螺子軸３２の熱変位量を精度良く演算することができる。
【０１０８】
なお実施の形態２においても、実施の形態１のように、Ｘ軸螺子軸２２又はＹ軸螺子軸１２とZ軸螺子軸３２とを連結するナット及びナットの周囲にある部材の熱変位量をナット３７の移動によるＺ軸螺子軸３２の熱変位量に更に加算してもよい。
【０１０９】
（変更例）
なおＸ軸螺子軸２２が発する熱が、Ｙ軸螺子軸１２に螺合したナット（第２ナット）及び該ナットの周囲にある部材（連結部）を介して、Ｙ軸螺子軸１２に伝導した場合も、主軸５ａが発する熱がＺ軸螺子軸３２に伝導する場合と同様に、Ｙ軸螺子軸１２の熱変位量を補正すればよい。
【０１１０】
この場合、ナット及び該ナットの周囲にある部材を介して、Ｙ軸螺子軸１２に伝導した伝熱量Ｑyx（ｔ）が、主軸ヘッド５からナット３７を介してＺ軸螺子軸３２に伝導した伝熱量Ｑzs（ｔ）に対応し、ナット及び該ナットの周囲にある部材の温度Ｔyx（ｔ）が主軸ヘッド５の温度Ｔzs（ｔ）に対応する。またＸ軸螺子軸２２から、Ｙ軸螺子軸１２に螺合したナット及び該ナットの周囲にある部材に伝導した熱量が主軸５ａから主軸ヘッド５に伝導した熱量Ｑczs （ｔ）に対応し、Ｙ軸螺子軸１２の温度がＺ軸螺子軸３２の温度θi （ｔ）に対応する。
【符号の説明】
【０１１１】
５  主軸ヘッド
５ａ  主軸
１０  Ｙ軸方向移動機構
１２  Ｙ軸螺子軸（一の螺子軸、螺子軸）
２０  Ｘ軸方向移動機構
２２  Ｘ軸螺子軸（一の螺子軸、第２螺子軸）
３０  Ｚ軸方向移動機構
３２  Ｚ軸螺子軸（他の螺子軸、螺子軸）
３７  ナット
５０  制御装置（演算部）
５１  ＣＰＵ
５２  ＲＯＭ
５３  ＲＡＭ
【図１】
0006582522.tif 000003
【図２】
0006582522.tif 000004
【図３】
0006582522.tif 000005
【図４】
0006582522.tif 000006
【図５】
0006582522.tif 000007
【図６】
0006582522.tif 000008
【図７】
0006582522.tif 000009
【図８】
0006582522.tif 000010
【図９】
0006582522.tif 000011
【図１０】
0006582522.tif 000012
【図１１】
0006582522.tif 000013
【図１２】
0006582522.tif 000014
【図１３】
0006582522.tif 000015