Abstract:
A thermal displacement correction device for a machine tool that corrects thermal displacement of a spindle unit includes a memory that defines the spindle unit as a two-dimensional model in a thermally symmetrical plane or in a plane parallel to the thermally symmetrical plane, divides the two-dimensional model into regions, and stores a linear expansion coefficient, a heating coefficient and a radiation coefficient corresponding to each region, and a thermal conductivity coefficient between the each region and its adjacent region; a temperature estimating unit that estimates a temperature of the each region; a correction estimating unit; and a thermal displacement correction unit that performs correction in driving a feed shaft to a command position.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates to a thermal displacement correction device for a machine tool and, more particularly, to a method of calculating a correction for thermal displacement of a spindle unit. 
         [0003]    2. Description of the Related Art 
         [0004]    A feed screw and a spindle of a machine tool are driven by motors so that heat generation of the motors, frictional heat generated by the rotation of bearings, and frictional heat of a coupling portion of a ball screw and a ball nut constituting the feed screw cause the feed screw and the spindle to expand and mechanical positions are displaced. That is, the relative position of a workpiece to be positioned and a tool is displaced. Variations in mechanical position due to heat are problematic in the case of high-precision machining. 
         [0005]    Methods of estimating a displacement from various elements in order to remove the displacement are well known. JP 2003-108206 A discloses a correction device that establishes a three-dimensional model of a machine and estimates thermal displacement corrections from the operation and temperature of the machine. This correction device estimates a change in the temperature of micro-regions and estimates a thermal displacement correction from the temperature change estimated, thereby enabling an accurate correction. JP 2006-281420 A discloses a correction method for a NC machine tool that calculates a temperature distribution function based on temperature measurements at multiple points of a column and thereby calculates thermal displacement of a spindle unit. 
         [0006]    The correction device described in JP 2003-108206 A is computationally complex due to a lot of computations so that it is not suitable to estimate the thermal displacement corrections varying from moment to moment. The correction method described in JP 2006-281420 A, which uses temperature sensors, increases the cost of a machine tool and can no longer perform accurate correction in failure of the temperature sensor. 
       SUMMARY OF THE INVENTION 
       [0007]    An object of the present invention is to provide a thermal displacement correction device for a machine that can reduce computational load by defining a spindle unit as a two-dimensional model and compute a correction varying from moment to moment in smaller increments. 
         [0008]    A thermal displacement correction device for a machine tool according to the present invention, which corrects thermal displacement of a spindle unit including a spindle, includes: a memory configured to define the spindle unit as a two-dimensional model in a thermally symmetrical plane or in a plane parallel to the thermally symmetrical plane, divide the two-dimensional model into regions, and store a linear expansion coefficient, a heating coefficient and a radiation coefficient corresponding to each region, and a thermal conductivity coefficient between the each region and its adjacent region; a temperature estimating unit that estimates a temperature of the each region; a correction estimating unit configured to estimate a correction based on the temperature estimated by the temperature estimating unit and the linear expansion coefficient corresponding to each region stored in the memory; and a thermal displacement correction unit configured to perform correction by adding the correction to a position command value for a feed shaft in driving the feed shaft to a command position. 
         [0009]    The temperature estimating unit may estimate the temperature of each region based on the heating coefficient and the radiation coefficient corresponding to each region and the thermal conductivity coefficient between the each region and its adjacent region, stored in the memory. 
         [0010]    The temperature estimating unit may include a spindle speed measuring unit configured to measure a spindle rotation speed, and estimate the temperature of each region based on the heating coefficient and the radiation coefficient corresponding to each region, the thermal conductivity coefficient between the each region and its adjacent region, which are stored in the memory, and the spindle rotation speed obtained by the spindle speed measuring unit. 
         [0011]    The temperature estimating unit may include a temperature measuring unit configured to measure a temperature in at least one of the regions of the spindle unit, and estimate the temperature in the regions based on the heating coefficient and the radiation coefficient corresponding to each region, the thermal conductivity coefficient between the each region and its adjacent region, which are stored in the memory, and the temperature of the spindle unit obtained by the temperature measuring unit. 
         [0012]    The temperature estimating unit may include a spindle speed measuring unit configured to measure a spindle rotation speed and a temperature measuring unit configured to measure a temperature in at least one of the regions of the spindle unit, and estimate the temperature in the regions based on the heating coefficient and the radiation coefficient corresponding to each region, the thermal conductivity coefficient between the each region and its adjacent region, which are stored in the memory, the spindle rotation speed obtained by the spindle speed measuring unit, and the temperature of the regions obtained by the temperature measuring unit. 
         [0013]    The present invention thus constructed provides the thermal displacement correction device for the machine that can reduce computational load by defining the spindle unit as the two-dimensional model and compute the correction varying from moment to moment in smaller increments. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    The above and other objects and features of the invention will be apparent from the description of the embodiment below with reference to the accompanying drawings. These drawings are as follows: 
           [0015]      FIG. 1  illustrates part of a machine tool; 
           [0016]      FIG. 2  illustrates a plurality of regions into which a spindle unit is divided; 
           [0017]      FIG. 3  is a flow chart showing a process for a method of correcting thermal displacement; 
           [0018]      FIG. 4  illustrates an image of thermal conduction; 
           [0019]      FIG. 5  is a flow chart showing a process for a method of estimating a temperature in region I at time N; 
           [0020]      FIG. 6  illustrates thermal deformation of the spindle unit schematically; 
           [0021]      FIG. 7  illustrates thermal deformation of a column unit schematically; 
           [0022]      FIG. 8  illustrates region I schematically; 
           [0023]      FIG. 9  is a flow chart showing a process for a method of estimating thermal displacements in the Y-axis and Z-axis directions at time N; and 
           [0024]      FIG. 10  is a block diagram showing part of a numerical control unit for controlling the machine tool. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0025]      FIG. 1  illustrates part of a machine tool. A column  80  and a saddle  87  are fixed on a bed (not shown) of a machine tool. The side of the column  80  erected on the bed (not shown) is provided with a spindle mount  81 . The spindle mount  81  is provided with a spindle  83  equipped with a spindle motor  82 . The tool holder of the spindle  83  holds a tool  84 . A workpiece  85  is secured to a table  86  on the saddle  87 . The workpiece  85  is machined by the tool  84  held in the spindle  83 . 
         [0026]    In a machine tool as described above, a feed screw and a spindle as movable parts are driven by motors so that heat generation of the motors, frictional heat generated by the rotation of bearings, and frictional heat of a coupling portion of a ball screw and a ball nut constituting the feed screw cause the spindle and the feed screw to expand and mechanical positions are displaced. 
         [0027]    A method of correcting thermal displacement in the present embodiment will now be described. 
         [0028]    Let us consider a machine tool having the spindle  83  that is structurally and thermally symmetrical with respect to a plane including the rotational axis of the spindle  83  and an axis perpendicular to the rotational axis of the spindle  83 . In this case, since heat is transmitted equally in the direction of the axis perpendicular to a symmetry plane, thermal displacements are also symmetrical with respect to the symmetry plane. When focusing on the rotational axis of the spindle  83 , the thermal displacements therefore cancel each other in the direction of the axis perpendicular to the symmetry plane and this allows no thermal displacements to be considered as generated. 
         [0029]    Defining a spindle unit as a two-dimensional model excluding the axis perpendicular to the symmetry plane can further simplify the calculation of a correction of the spindle unit. The temperature change in each region is calculated considering a temperature of a spindle motor, heat radiation, heat generation caused by the acceleration and deceleration of the machine, and thermal conduction between the each region and its adjacent regions. The correction can be estimated from these carefully selected elements. 
         [0030]    In the following description, a plane including the rotational axis of the spindle parallel to the Z-axis and the Y-axis is defined as the symmetry plane, and a case of a vertical machining center including a spindle unit having a symmetrical structure with respect to the symmetry plane is described. 
       1. Setting Up Spindle Unit Model 
       [0031]    The spindle unit including the spindle is regarded as a two-dimensional model on the Y-Z plane such as shown in  FIG. 2 . 
         [0032]    This model is divided into 12 regions and a space for storing a temperature in each of the regions is reserved in a memory of a controller (see  FIG. 10 ), where a temperature of region I at time N is referred to as T IN . While this exemplary model is divided into 12 regions starting from region  1  to  12  as shown in  FIG. 2 , any number and size of regions may be used. The spindle unit is comprised of the spindle  83 , the spindle motor  82 , the spindle mount  81 , and the column  80  as shown in  FIG. 2 , but is not limited thereto. An appropriate radiation coefficient, heating coefficient, and thermal conductivity coefficient between each region and its adjacent regions are determined based on the number, shape, and size of the regions set. These coefficients are stored in the memory of the controller. Temperature T I0  of each region at the time of cold start is stored in the memory. 
         [0033]      FIG. 3  is a flow chart showing a process for a method of correcting thermal displacement. 
         [0000]    (Step sa 01 ) 
         [0034]    Divide two-dimensional model of spindle unit into a number of regions. 
         [0000]    (Step sa 02 ) 
         [0035]    Set initial temperature of each region. 
         [0000]    (Step sa 03 ) 
         [0036]    Estimate temperature at time N. 
         [0000]    (Step sa 04 ) 
         [0037]    Estimate corrections of spindle unit. 
         [0000]    (Step sa 05 ) 
         [0038]    Update corrections of spindle unit. 
         [0000]    (Step sa 06 ) 
         [0039]    Store time when displacements were estimated. 
         [0000]    (Step sa 07 ) 
         [0040]    Determine whether process is completed. 
         [0000]    (Step sa 08 ) 
         [0041]    Determine whether a predetermined time interval has elapsed and proceed to step sa 03  when the predetermined time has elapsed. 
       2. Storing Initial Value of Temperature of Each Region 
       [0042]    An initial value of the temperature of each region is calculated and stored in the memory of the controller.
       A time when the last temperature distribution was calculated and the temperature of each region at the time are read from the memory of the controller.   The current time is read.   Using a method of estimating a temperature distribution described in paragraph 3, the temperature distribution is estimated at predetermined time intervals from the time when the last temperature distribution was calculated and the temperature distribution at the current time is estimated.   Calculated results are stored in the memory of the controller.       
 
       3. Estimating Temperature of Each Region 
       [0047]      FIG. 4  schematically illustrates heat generation, heat radiation, and thermal conduction of each of the regions divided. Three elements (i.e., temperature changes due to heat radiation of each region, heat generation of each region, and thermal conduction between the each region and its adjacent regions) shown in  FIG. 4  are estimated and thus the temperature at the current time is estimated. 
         [0048]    A method of estimating a temperature T IN  of region I at time N will now be described with reference to a flowchart shown in  FIG. 5 . 
         [0000]    (Step sb 01 ) 
         [0049]    A temperature T I(N-1)  of region I and a temperature T i(N-1)  of region i adjacent to region I, both estimated at time N−1, are read out from the memory of the controller. 
         [0000]    (Step sb 02 ) 
         [0050]    A temperature change ΔT (i-I)N  due to thermal conduction to the adjacent region i at time N is estimated based on the following equation. 
         [0000]      Δ T   (i-I)N   =C   i-I ×( T   i(N-1)   −T   1(N-1) )
 
         [0051]    C i-I : thermal conductivity coefficient between region i and region I 
         [0000]    (Step sb 03 ) 
         [0052]    Machine operating conditions at time N, i.e., a spindle rotation speed S N , a load Lm N  of the spindle motor, and a moving speed v N  of the spindle unit are then obtained in order to estimate a change in the temperature of region I caused by machine operation. 
         [0000]    (Step sb 04 ) 
         [0053]    A temperature change ΔT MN  caused by the machine operation at time N is estimated. In the following description, ΔT SP , ΔT LM , and ΔT v  are calculated as the temperature change ΔT MN  caused by the machine operation.
       A temperature change ΔT SPN  caused by spindle rotation at time N is estimated from the spindle rotation speed S N  using the following equation.       
 
         [0000]      Δ T   SPN   =A   SPI   ×S   N   +B   2I   ×S   N   ×T   I(N-1)  
 
         [0055]    A SPI : heating coefficient caused by spindle rotation in region I 
         [0056]    B 2I : radiation coefficient caused by spindle rotation in region I
       A temperature change ΔT LMN  caused by the operation of the spindle motor is estimated from the load Lm N  of the spindle motor using the following equation.       
 
         [0000]      Δ T   LMN   =A   LMI   ×Lm   N  
 
         [0058]    A LMI : heating coefficient caused by operation of spindle motor in region I
       A temperature change ΔT VN  caused by the movement of the spindle unit is estimated from the moving speed v N  of the spindle unit.       
 
         [0000]      Δ T   VN   =A   V   ×v   N   +B   V   ×v   N   ×T   I(N-1)  
 
         [0060]    A V : heating coefficient of spindle unit caused by its movement 
         [0061]    B V : radiation coefficient of spindle unit caused by its movement
       The temperature change ΔT MN  caused by the machine operation at time N is estimated based on the following equation.       
 
         [0000]      Δ T   MN   =ΔT   SPN   +ΔT   LMN   +ΔT   vN  
       While the spindle rotation, the operation of the spindle motor, and the movement of the spindle unit are given here as an example of the machine operation that affects the change in the temperature of the spindle unit, these factors are increased or decreased depending on the configuration of the machine.       
 
         [0064]    These equations may be modified according to the type of bearing and the shape of the spindle. 
         [0000]    (Step sb 05 ) 
         [0065]    A temperature change ΔT RN  due to heat radiation at time N is estimated based on the following equation. 
         [0000]      Δ T   RN   =B   1I   ×T   I(N-1)  
 
         [0066]    B 1I : radiation coefficient in region I 
         [0000]    (Step sb 06 ) 
         [0067]    A temperature T IN  of region I at time N is estimated from the temperature change calculated above. 
         [0000]    
       
      
       T 
       IN 
       =T 
       I(N-1) 
       +ΔT 
       MN 
       +ΔT 
       RN 
       +ΣΔT 
       (i-I)N  
      
     
         [0000]    (Step sb 07 ) 
         [0068]    The temperature T IN  calculated is stored in the memory of the controller and the process is completed. 
         [0000]    4. Estimating Corrections in Y-Axis and Z-Axis Directions from Temperature 
         [0069]      FIG. 6 , showing a model of the spindle unit on the Y-Z plane, schematically illustrates thermal displacements in the Y-axis and Z-axis directions of the spindle unit during machine operation.  FIG. 7  schematically illustrates thermal deformation of a column unit during the machine operation and, in addition,  FIG. 8  illustrates region I schematically. A bed is denoted by reference numeral  88 . 
         [0070]    The following parameters are estimated using the temperature of each region estimated in paragraph 3 above: thermal displacement δ H  in the Y-axis direction at the higher portion of the spindle mount, thermal displacement δ L  in the Y-axis direction at the lower portion of the spindle mount, thermal displacement δ SP  in the Z-axis direction of the spindle, thermal displacement δ COL1  of the column at a point near the spindle mount, thermal displacement δ COL2  of the column at a point away from the spindle mount, slope θ SP  of the spindle unit, slope θ COL  of the column, correction δ Y  in the Y-axis direction, and correction δ Z  in the Z-axis direction. 
         [0071]      FIG. 9  is a flow chart showing a process for a method of estimating corrections in the Y-axis and Z-axis directions at time N. Description is made below with reference to the following steps. 
         [0000]    (Step sc 01 ) 
         [0072]    The temperature estimated at time N is read from the memory of the controller. In other words, the temperature of the spindle unit in the regions estimated in paragraph 3 is read from the memory of the controller. 
         [0000]    (Step sc 02 ) 
         [0073]    The thermal displacements of the spindle mount and the column are estimated based on the temperature read.
       Thermal displacement δ H  in the Y-axis direction at the higher portion of the spindle mount, thermal displacement δ L  in the Y-axis direction at the lower portion of the spindle mount, thermal displacement δ SP  in the Z-axis direction of the spindle, thermal displacement δ COL1  of the column at a point near the spindle mount, and thermal displacement δ COL2  of the column at a point away from the spindle mount are estimated based on the general equation of thermal expansion.       
 
         [0075]    Thermal displacement δ H  (region I: 4, 6) in the Y-axis direction at the higher portion of the spindle mount is calculated as follows: 
         [0000]      δ H =Σ(α× L   IY ×( T   IN   −T   I0 ))
 
         [0076]    α: linear expansion coefficient 
         [0077]    L IY : length of region I in Y-axis direction 
         [0078]    T IN : temperature of region I at time N 
         [0079]    T I0 : temperature of region I at the time of cold start 
         [0080]    Thermal displacement δ L  (region I: 5, 7) in the Y-axis direction at the lower portion of the spindle mount is calculated as follows: 
         [0000]      δ L =Σ(α× L   IY ×( T   IN   −T   I0 ))
 
         [0081]    α: linear expansion coefficient 
         [0082]    L IY : length of region I in Y-axis direction 
         [0083]    T IN : temperature of region I at time N 
         [0084]    T I0 : temperature of region I at the time of cold start 
         [0085]    Thermal displacement δ SP  (region I: 1, 2, 3, 12) in the Z-axis direction of the spindle is calculated as follows: 
         [0000]      δ SP =Σ(α× L   IZ ×( T   IN   −T   I0 ))
 
         [0086]    α: linear expansion coefficient 
         [0087]    L IZ : length of region I in Z-axis direction 
         [0088]    T IN : temperature of region I at time N 
         [0089]    T I0 : temperature of region I at the time of cold start 
         [0090]    Thermal displacement δ COL1  (region I: 8, 9) on the heat source side of the column is calculated as follows: 
         [0000]      δ COL1 =Σ(α× L   IZ ×( T   IN   −T   I0 ))
 
         [0091]    α: linear expansion coefficient 
         [0092]    L IZ : length of region I in Z-axis direction 
         [0093]    T IN : temperature of region I at time N 
         [0094]    T I0 : temperature of region I at the time of cold start 
         [0095]    Thermal displacement δ COL2  (region I: 10, 11) of the column is calculated as follows: 
         [0000]      δ COL2 =Σ(α× L   IZ ×( T   IN   −T   I0 ))
 
         [0096]    α: linear expansion coefficient 
         [0097]    L IZ : length of region I in Z-axis direction 
         [0098]    T IN : temperature of region I at time N 
         [0099]    T I0 : temperature of region I at the time of cold start 
         [0000]    (Step sc 03 ) 
         [0100]    Slope θ SP  of the spindle mount (equal to slope θ SP  of the spindle unit) is estimated from the thermal displacements calculated above, using the following equation. 
         [0000]      θ SP =tan −1 ((δ H −δ L   /L   S )
 
         [0000]    (Step sc 04 ) 
         [0101]    Slope θ COL  of the column is estimated from the thermal displacements calculated above, using the following equation. 
         [0000]      θ COL =tan −1 ((δ COL1 −δ COL2 )/ L   COL )
 
         [0000]    (Step sc 05 ) 
         [0102]    Correction δ Y  in the Y-axis direction is estimated based on the following equation, where a distance between the bottom portion of the spindle unit and a tool tip is L T . 
         [0000]      δ Y =δ L   +L   T ×sin(θ SP +θ COL )
 
         [0103]    Correction δ Z  in the Z-axis direction is estimated based on the following equation. 
         [0000]      δ Z =δ COL1 +δ SP   +L   T ×sin δ COL  
 
       5. Updating Corrections 
       [0104]    Updating is performed using the corrections estimated in paragraph 4 above. 
         [0000]    6. Storing Time when Corrections were Estimated 
         [0105]    Time N when the corrections were estimated is stored in the memory of the controller. 
         [0000]    7. Repeating from paragraph 3 to 6 at predetermined time interval 
         [0106]      FIG. 10  is a block diagram showing part of a numerical control unit of the machine tool. 
         [0107]    A numerical control unit  20  can provide a thermal displacement correction device for the machine tool described above. A processor (CPU)  21  of the numerical control unit  20  for controlling the machine tool provides overall control of the numerical control unit  20 . The processor  21  reads a system program stored in a ROM  22  through a bus  31  and provides overall control of the numerical control unit  20  in accordance with the system program. A RAM  23  stores data such as temporary calculation data, display data, and various data that are input through an LCD/MDI unit  70  by an operator. 
         [0108]    A SRAM  24 , which is backed up by a battery (not shown), is configured as a non-volatile memory that retains its memory state even when the power of the numerical control unit  20  is turned off. The SRAM  24  stores programs such as a program for measuring an initial position, a program for correcting the thermal displacements of the machine tool, a machining program, described below, installed via an interface  25 , and a machining program input through the LCD/MDI unit  70 . The ROM  22  is provided in advance with various system programs that perform processing for an edit mode required for creating and editing a machining program and processing for automatic operation. 
         [0109]    An interface  25  is used for interfacing with external devices capable of being connected to the numerical control unit  20 , and an external device  72  such as an external storage device is connected to the interface  25 . A machining program, a program for measuring the thermal displacements, and other programs are installed from the external storage device. A programmable machine controller (PMC)  26  controls auxiliary equipment etc. of the machine tool using sequence programs that are built in the numerical control unit  20 . That is, the sequence programs convert to signals necessary for the auxiliary equipment according to M-function, S-function, and T-function commanded by the machining program and output the signals from an I/O unit  27  to the auxiliary equipment. The output signals activate the auxiliary equipment such as actuators. The PMC  26  also receives signals from various switches etc. of an operation panel mounted on a machine tool body and sends the signals to the processor  21  after necessary processing. 
         [0110]    The LCD/MDI unit  70  receives current positions of the axes, alarms, parameters, and image signals such as image data in the machine tool and displays them on its display. The LCD/MDI unit  70  is a manual data entry device with a display, keyboard, etc., and an interface  28  passes data received from the keyboard of the LCD/MDI unit  70  to the processor  21 . 
         [0111]    An interface  29  is connected to a manual pulse generator  71 . The manual pulse generator  71  is mounted on the operation panel of the machine tool and is used for accurately positioning movable parts of the machine tool by controlling the axes using distributed pulses through manual operation. The bus is denoted by reference numeral  31 . Control circuits  32 ,  34 ,  36  for the X-axis, Y-axis, Z-axis, respectively, which move the table T of the machine tool, receive drive commands for the axes from the processor  21  and outputs the commands for the axes to servo amplifiers  40 ,  41 ,  42 , respectively. In response to the commands, the servo amplifiers  40 ,  41 ,  42  drive servo motors  50  to  52  for the axes of the machine tool, respectively. The servo motors  50  to  52  for the axes have a built-in pulse coder for position detection, and a position signal from the pulse coder is fed back as a pulse train. 
         [0112]    A spindle control circuit  60  receives a spindle rotation command for the machine tool and outputs a spindle speed signal to a spindle amplifier  61 . In response to the spindle speed signal, the spindle amplifier  61  rotates a spindle motor (main spindle motor)  62  of the machine tool at the commanded rotational speed to drive the tool. A position coder  63 , which is connected to the spindle motor (main spindle motor)  62  through a gear, belt, or the like, outputs a feedback pulse in synchronization with the rotation of the spindle. The feedback pulse is input to the processor  21  via an interface  30 . A clock circuit is denoted by reference numeral  65 , which is adjusted to synchronize with the current time. 
         [0113]    The configuration described above provides a thermal displacement correction device for a machine that can reduce computation time required for the estimation in order to correct, in real time, the thermal displacement varying from moment to moment and correct the thermal displacement with a small number of sensors in order to reduce the cost of the machine and improve its reliability.