WO2011024833A1 - 工作機械の熱変位補正方法及び熱変位補正装置 - Google Patents

工作機械の熱変位補正方法及び熱変位補正装置 Download PDF

Info

Publication number
WO2011024833A1
WO2011024833A1 PCT/JP2010/064332 JP2010064332W WO2011024833A1 WO 2011024833 A1 WO2011024833 A1 WO 2011024833A1 JP 2010064332 W JP2010064332 W JP 2010064332W WO 2011024833 A1 WO2011024833 A1 WO 2011024833A1
Authority
WO
WIPO (PCT)
Prior art keywords
thermal displacement
sections
amount
shaft
heat conduction
Prior art date
Application number
PCT/JP2010/064332
Other languages
English (en)
French (fr)
Inventor
治夫 小林
初 倉橋
Original Assignee
ブラザー工業株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブラザー工業株式会社 filed Critical ブラザー工業株式会社
Priority to CN201080037052.6A priority Critical patent/CN102481673B/zh
Publication of WO2011024833A1 publication Critical patent/WO2011024833A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/49Nc machine tool, till multiple
    • G05B2219/49219Compensation temperature, thermal displacement

Definitions

  • the present invention relates to a thermal displacement correction method and a thermal displacement correction apparatus for machine tools. More particularly, the present invention relates to a method and apparatus for correcting an error caused by thermal displacement of a ball screw shaft that occurs during operation of a ball screw mechanism in a machine tool.
  • the ball screw mechanism is widely used as a positioning mechanism for machine tools.
  • the ball screw mechanism causes thermal expansion based on the above-described temperature rise, and generates thermal displacement (elongation).
  • the thermal displacement of the shaft appears as a positioning error as it is.
  • Machine tools have used a pre-tension system that applies pre-tension to the ball screw shaft and absorbs thermal expansion as a measure against thermal expansion.
  • Modern machine tools use thick ball screw shafts and have very high feed rates. Therefore, since the calorific value increases, the machine tool must apply a very large tension to the ball screw shaft when the pre-tension method is adopted. When a very large tension is applied to the machine tool, there is a problem that the ball screw mechanism is deformed. In the above-described case, an excessive force is applied to the thrust bearing, and the ball screw mechanism is seized.
  • the method of correcting the thermal displacement of the ball screw shaft proposed by Patent Document 1 does not apply excessive pretension to the ball screw shaft and does not require a special measuring device.
  • This method corrects the amount of thermal displacement during operation of the machine tool.
  • the heat generation amount of the ball screw shaft is obtained from the product of the armature current and voltage of the servo motor.
  • a temperature distribution is obtained from the heat generation amount using a heat distribution model based on the unsteady heat conduction equation.
  • the heat distribution model is a model in which the ball screw shaft is divided into a plurality of sections.
  • the third step predicts the amount of thermal displacement of the ball screw shaft from time to time based on the temperature distribution.
  • the thermal displacement amount is given to the machine tool as pitch error correction.
  • Patent Document 1 calculates the amount of heat generation from current and voltage. This method does not examine the heat fluctuation factors based on the driving of the ball screw mechanism.
  • heat sources such as servo motors, bearings, nuts, and sliding surfaces generate heat.
  • the shaft radiates heat to the surroundings by rotating and cutting the surrounding wind.
  • Patent Document 1 does not suggest any heat dissipation amount.
  • An object of the present invention is to provide a thermal displacement correction method and a thermal displacement correction device for accurately correcting an error caused by thermal displacement of a shaft generated during operation of a ball screw mechanism in a machine tool.
  • a thermal displacement correction method for a machine tool is a ball screw mechanism for feed drive comprising a shaft and a nut, a servo motor for rotationally driving the shaft, and a control unit for controlling the servo motor based on control data;
  • the amount of heat generated in each of a plurality of sections obtained by dividing the entire length of the shaft into a plurality of sections is calculated based on the rotation speed of the servo motor and the control data for each first predetermined time.
  • the thermal displacement correction method of claim 1 can correct the error caused by the thermal displacement with high accuracy in consideration of the heat dissipation that increases with the increase of the rotation speed of the shaft of the ball screw mechanism.
  • the heat conduction matrix includes a heat radiation function that increases as the rotation speed of the servo motor increases. Therefore, the thermal displacement correction method according to claim 2 can obtain the thermal displacement amount reflecting the heat radiation amount corresponding to the rotational speed of the shaft, and can accurately correct the error caused by the thermal displacement.
  • the thermal displacement correction method for a machine tool wherein the thermal conduction matrix includes a first thermal conduction matrix that reflects the shape and material of the shaft, and a second thermal conduction matrix that reflects the structure of the ball screw mechanism. And the heat dissipation function for multiplying the second heat conduction matrix. Therefore, the thermal displacement correction method of claim 3 can reflect the above items and the rotational speed of the shaft in the unsteady heat conduction equation.
  • a thermal displacement correction device for a machine tool is a ball screw mechanism for feed driving comprising a shaft and a nut, a servo motor for rotationally driving the shaft, and a control unit for controlling the servo motor based on control data;
  • the rotational speed of the servo motor is a speed detection device for detecting the rotational speed of the servo motor, and the amount of heat generated in each of a plurality of sections obtained by dividing the entire length of the shaft.
  • a calorific value calculation unit determined every first predetermined time based on the control data, and the calorific value generated in each of the plurality of sections for a second predetermined time longer than the first predetermined time for each of the plurality of sections.
  • An unsteady heat conduction equation including an accumulated total heat generation amount and a heat conduction matrix set to a characteristic in which heat dissipation increases as the rotation speed of the shaft increases.
  • the heat conduction matrix includes a heat radiation function that increases as the rotation speed of the servo motor increases. Therefore, the thermal displacement correction device according to claim 5 can obtain the thermal displacement amount reflecting the heat radiation amount corresponding to the rotational speed of the shaft, and can accurately correct the error caused by the thermal displacement.
  • the thermal displacement correction device for a machine tool wherein the heat conduction matrix includes a first heat conduction matrix reflecting the shape and material of the shaft, and a second heat conduction matrix reflecting the structure of the ball screw mechanism. And the heat dissipation function for multiplying the second heat conduction matrix. Therefore, the thermal displacement correction apparatus according to the sixth aspect can reflect the above items and the rotational speed of the shaft in the unsteady heat conduction equation.
  • the whole machine tool perspective view of a present Example A side view of a machine tool.
  • (A) is a relationship diagram of the motor body temperature and elapsed time from 0 to t1 after the start of driving.
  • (B) is a relationship diagram between the motor body temperature and the elapsed time from t1 to t2 after the start of driving.
  • (C) is a relationship diagram of the motor body temperature and the elapsed time from t2 to t3 after the start of driving.
  • (D) is a relationship diagram between the motor body temperature and the elapsed time from 0 to t3 after the start of driving.
  • Explanatory drawing explaining the distribution calorific value and temperature distributed to the several area Explanatory drawing of the correction area for pitch error correction.
  • Explanatory drawing which illustrates the approximate formula of heat dissipation function h ((omega)).
  • the configuration of the machine tool M will be described with reference to FIGS.
  • the lower right of FIG. 1 is the front of the machine tool M.
  • a workpiece (not shown) and the tool 6 are relatively moved independently in the respective axis directions in the XYZ rectangular coordinate system to perform desired machining (for example, “milling”, “drilling”, “cutting”) on the workpiece. Etc.).
  • the X-axis direction, Y-axis direction, and Z-axis direction of the machine tool M (machine main body 2) are the left-right direction, front-rear direction, and vertical direction of the machine tool M (machine main body 2), respectively.
  • the machine tool M includes a base 1, a machine body 2, and a cover (not shown) as main constituents.
  • the base 1 is a substantially rectangular parallelepiped casting that is long in the Y-axis direction.
  • the machine body 2 is provided on the upper part of the base 1.
  • the machine body 2 cuts the workpiece.
  • the cover is fixed to the upper part of the base 1.
  • the cover has a box shape covering the machine body 2 and the upper part of the base 1.
  • the machine body 2 includes a column 4, a spindle head 5, a spindle (not shown), a tool changer 7, and a table 8 as main components.
  • the column 4 has a substantially prismatic shape and is fixed to a column seat portion 3 provided at the rear portion of the base 1.
  • the spindle head 5 can be moved up and down along the front surface of the column 4.
  • the spindle head 5 supports the spindle in a rotatable manner.
  • the tool changer 7 is provided on the right side of the spindle head 5.
  • the tool changer 7 replaces the tool holder attached to the tip of the spindle with another tool holder.
  • the tool holder is equipped with a tool 6.
  • the table 8 is provided on the upper part of the base 1.
  • the table 8 fixes the work so as to be detachable.
  • a box-shaped control box 9 is provided on the back side of the column 4.
  • the control box 9 includes a numerical control device 50 inside thereof.
  • the numerical controller 50 controls the operation of the machine tool M.
  • the moving mechanism of the table 8 will be described.
  • An X-axis motor 71 (see FIG. 4) and a Y-axis motor 72 (see FIG. 4) move the table 8 in the X-axis direction and the Y-axis direction, respectively.
  • the X axis motor 71 and the Y axis motor 72 are servo motors.
  • the moving mechanism of the table 8 has the following configuration.
  • a rectangular parallelepiped support 10 is provided below the table 8.
  • the support base 10 includes a pair of X-axis feed guide rails extending along the X-axis direction on the upper surface thereof.
  • the pair of X-axis feed guide rails movably supports the table 8 thereon.
  • the nut portion 8 a is disposed on the lower surface of the table 8.
  • the X-axis ball screw shaft 81 extends from the X-axis motor 71 via the coupling 17.
  • the nut portion 8a is engaged with the X-axis ball screw shaft 81 to constitute a ball screw mechanism.
  • a fixed bearing 18 (front bearing) fixed to the support base 10 supports an end portion 81 e of the X-axis ball screw shaft 81 on the X-axis motor 71 side.
  • the movable bearing 19 (rear bearing) supports an end portion 81f opposite to the X-axis ball screw shaft 81.
  • a pair of Y-axis feed guide rails extend along the front-rear direction at the top of the base 1.
  • the pair of Y-axis feed guide rails support the support base 10 so as to be movable.
  • An X-axis motor 71 provided on the support base 10 moves and drives the table 8 in the X-axis direction along an X-axis feed guide rail (not shown).
  • a Y-axis motor 72 provided on the base 1 moves and drives the table 8 in the Y-axis direction along the Y-axis feed guide rail.
  • the movement mechanism of the Y axis is also a ball screw mechanism (see FIG. 3) similar to the X axis.
  • Covers 11 and 12 cover the X-axis feed guide rails on the left and right sides of the table 8.
  • a cover 13 and a Y-axis rear cover (not shown) cover the Y-axis feed guide rail before and after the support base 10, respectively.
  • the covers 11, 12, 13 and the Y-axis rear cover always cover the X-axis feed guide rail and the Y-axis feed guide rail even when the table 8 moves in either the X-axis direction or the Y-axis direction. Therefore, the covers 11, 12, 13 and the Y-axis rear cover prevent chips, coolant liquid, and the like scattered from the processing region from falling on each guide rail.
  • the column 4 includes a guide rail (not shown) extending in the vertical direction on the front side.
  • the guide rail guides the spindle head 5 through a linear guide (not shown) so as to be movable up and down.
  • the column 4 has a Z-axis ball screw shaft (not shown) extending in the vertical direction on the front side.
  • a nut (not shown) is screwed onto the Z-axis ball screw shaft and connected to the spindle head 5.
  • the axis controller 63a drives the Z-axis motor 73 based on a control signal from the CPU 51 of the numerical controller 50. When the Z-axis motor 73 is driven, the spindle head 5 is driven up and down.
  • the tool changer 7 includes a tool magazine 14 and a tool change arm 15.
  • the tool magazine 14 stores a plurality of tool holders that support the tool 6.
  • the tool exchange arm 15 grasps a tool holder attached to the spindle and another tool holder, and exchanges and exchanges them.
  • the tool magazine 14 includes a plurality of tool pots (not shown) and a transport mechanism (not shown) inside.
  • the tool pot supports the tool holder.
  • the transport mechanism transports the tool pot in the tool magazine 14.
  • a numerical controller 50 as a control unit of the machine tool M includes a CPU 51, a ROM 52, a flash memory 53, an input / output interface 54, axis control units 61a to 64a and 75a, servo amplifiers 61 to 64, and a differentiator. 71b to 74b and the like.
  • the servo amplifiers 61 to 64 are connected to an X-axis motor 71, a Y-axis motor 72, a Z-axis motor 73, and a main shaft motor 74, respectively.
  • the shaft control unit 75 a is connected to the magazine motor 75.
  • the X-axis motor 71 and the Y-axis motor 72 are motors for moving the table 8 in the X-axis direction and the Y-axis direction, respectively.
  • the magazine motor 75 is a motor for rotating the tool magazine 14.
  • the main shaft motor 74 is a motor for rotating the main shaft.
  • the X-axis motor 71, the Y-axis motor 72, the Z-axis motor 73, and the main shaft motor 74 are collectively referred to as motors 71 to 74.
  • the motors 71 to 74 are provided with encoders 71a to 74a, respectively.
  • the axis controllers 61a to 64a receive a movement command from the CPU 51 and output a current command (motor torque command) to the servo amplifiers 61 to 64, respectively.
  • the servo amplifiers 61 to 64 receive current commands and output drive currents to the motors 71 to 74, respectively.
  • the axis controllers 61a to 64a receive position feedback signals from the encoders 71a to 74a, respectively, and perform position feedback control. Differentiators 71b to 74b differentiate the position feedback signals output from the encoders 71a to 74a, respectively, and convert them into speed feedback signals.
  • the encoders 71a to 74a output speed feedback signals to the axis controllers 61a to 64a, respectively.
  • the shaft controllers 61a to 64a perform speed feedback control based on the speed feedback signals output from the differentiators 71b to 74b, respectively.
  • Current detectors 61b to 64b detect drive currents output from servo amplifiers 61 to 64 to motors 71 to 74, respectively.
  • the current detectors 61b to 64b feed back the drive current to the axis controllers 61a to 64a, respectively.
  • the shaft controllers 61a to 64a perform current (torque) control according to the drive current fed back by the current detectors 61b to 64b.
  • the shaft control unit 75a receives the movement command from the CPU 51 and drives the magazine motor 75.
  • the ROM 52 stores a main control program for executing a machining program for the machine tool M and a program for executing a thermal displacement correction control process (see FIGS. 14 and 15) described later.
  • the flash memory 53 stores parameters related to the mechanical structure, parameters related to physical properties, heat distribution coefficients (ratio) ⁇ F , ⁇ N , ⁇ B , pitch error correction amount tables, and the like which will be described later. Examples of the parameters related to the mechanical structure include the length and diameter of the ball screw shaft 81 and a reference position described later. Parameters relating to physical properties include, for example, density, specific heat, linear expansion coefficient, heat capacity, heat transfer coefficient, heat capacity, heat transfer coefficient, ⁇ used in equations (3) and (4), and other constants.
  • the flash memory 53 has a data area for updating and storing the heat generation amount, the total heat generation amount, the rotation speed and drive current of the motor 71, and the distributed heat generation amount shown in FIG.
  • the flash memory 53 appropriately stores a plurality of machining programs and the like for machining various workpieces.
  • the present embodiment is an example in which the pitch error correction amount is corrected using the thermal displacement amount.
  • a pitch error occurs between the target movement amount of the nut portion 8a and the actual movement amount with respect to the rotation amount of the ball screw shaft 81 due to a dimensional error at the time of manufacture.
  • the machine tool M corrects the pitch error based on the pitch error correction amount table.
  • the table of pitch error correction amount is set at the pre-shipment adjustment stage of the machine tool M.
  • the pitch error correction amount table is a table for correcting pitch errors of the X-axis, Y-axis, and Z-axis ball screw mechanisms. In this embodiment, an example of correcting the pitch error correction amount of the X-axis ball screw shaft 81 will be described, but the same applies to the Y-axis ball screw mechanism and the Z-axis ball screw mechanism.
  • the nut portion 8 a is movable in the nut moving range 81 b in the entire length of the X-axis ball screw shaft 81.
  • Pitch error correction is performed for each correction section.
  • the correction sections are 15 sections obtained by dividing the nut movement range 81b (300 mm) by a set length of 20 mm, for example.
  • the pitch error correction amount for correcting the pitch error is a value obtained by the following procedure in the adjustment stage after the machine tool M is manufactured.
  • the nut portion 8a moves from the position X0 to the position X300 for each correction section at intervals of 20 mm in the X-axis direction according to the command value.
  • an error with respect to the movement command value that is, an error which is (target value ⁇ actual movement amount) is accurately measured.
  • a table of pitch error correction amounts is created based on the measurement results.
  • the created table is stored in advance in the flash memory 53 and shipped.
  • a table of pitch error correction amounts is similarly created for the Y-axis and Z-axis directions.
  • the amount of heat generated in the three regions of the front shaft portion 81a of the ball screw shaft 81, the nut moving range 81b, and the rear shaft portion 81c is obtained.
  • a section from the end 81e to the end 81f of the ball screw shaft 81 is divided into, for example, sections 1 to 5.
  • the number of sections is not limited to five.
  • the emitted-heat amount for every area is calculated
  • the flash memory 53 has data areas for storing the heat generation amounts Q 1 to Q 5 , the total heat generation amount Q T , the rotational speed ⁇ of the X-axis motor 71, and the drive current i.
  • the calorific values Q 1 to Q 5 are the calorific values for each section generated in the sections 1 to 5 during a predetermined period (for example, 6400 ms).
  • the total heat generation amount Q T is the total amount of the heat generation amounts Q 1 to Q 5 .
  • the nut portion 8a moves in the nut movement range 81b from the origin coordinates X0 to X300. Based on the X-axis feed data (control data) of the machining program, it is determined in which section the nut portion 8a is located every predetermined time (50 ms).
  • the table feed speed F by the X-axis motor 71 is calculated from the detection signal of the encoder 71a.
  • the calorific value is calculated from the table feed speed F using the following equation (1).
  • the calculated heat generation amount is stored in the data area of the flash memory 53.
  • Q K 1 ⁇ F T (1)
  • Q is the calorific value
  • F is the feed rate
  • K 1 is a predetermined constant
  • T is a predetermined constant.
  • the amount of heat generated due to the movement of the nut portion 8a in the sections 1 to 5 is calculated every predetermined time.
  • the calorific value is calculated 128 times every 50 ms for 6400 ms.
  • the calculated calorific values for 128 times are totaled for each section to calculate calorific values Q 1 to Q 5 .
  • the heat generation amounts Q 1 to Q 5 are stored in the data areas corresponding to the sections 1 to 5 of the flash memory 53, respectively.
  • the total calorific value Q T is calculated by adding the calorific values Q 1 to Q 5 for each section generated during 6400 ms.
  • Data of the rotational speed ⁇ (that is, ⁇ 0 , ⁇ 1 ,..., ⁇ 127 ) for every 50 ms of the X-axis motor 71 for 6400 ms is stored in the data area corresponding to the rotational speed of the flash memory 53.
  • the data of the drive current i (that is, i 0 , i 1 ,... I 127 ) of the X-axis motor 71 every 50 ms during 6400 ms is stored in the data area corresponding to the drive current of the flash memory 53.
  • the heat generation amounts Q N and Q B Can be used to calculate.
  • the ratio ⁇ N is a ratio of the calorific value Q N of the nut movement range 81b to the total calorific value Q T.
  • the ratio ⁇ B is a ratio of the calorific value Q B of the rear shaft portion 18c to the total calorific value Q T.
  • the ratios ⁇ N and ⁇ B are constant as described above. Therefore, Q N and Q B are measured with an actual machine, and the ratios ⁇ N and ⁇ B are obtained in advance.
  • a curve 150 indicating an increase in the motor body temperature ⁇ M can be expressed by the following equation.
  • ⁇ M L 1a ⁇ ⁇ 1 ⁇ exp ( ⁇ ⁇ t) ⁇ (3)
  • is a constant inherent to the X-axis motor 71.
  • t is the elapsed time from the start of driving.
  • the curve 151 can be expressed by the following equation.
  • ⁇ M L 1a ⁇ exp ( ⁇ ⁇ t) (4)
  • is a constant specific to the servo motor.
  • t is the elapsed time from the stop of driving.
  • the motor body temperature ⁇ M1a after a minute from the start of driving of the machine tool M can be expressed by the following equation based on the equation (3).
  • ⁇ M1a L 1a ⁇ ⁇ 1-exp ( ⁇ ⁇ a / 60) ⁇
  • the motor body temperature ⁇ M-1a after a minute from the stop of driving of the machine tool M can be expressed by the following equation based on the equation (4).
  • ⁇ M-1a L 1a ⁇ exp ( ⁇ ⁇ a / 60)
  • the temperature change of the motor body when the rotational speed ⁇ and the drive current i of the X-axis motor 71 are constant has been described.
  • the current i is not always constant. Therefore, in the present embodiment, X is calculated from the actual rotational speed ⁇ and the driving current i (the average values of the rotational speed and the driving current measured every 50 ms) for each predetermined period (6400 ms) using the formula (2).
  • the saturation temperature of the shaft motor 71 is calculated.
  • the temperature change of the motor body is calculated from the saturation temperature and the elapsed time using the above formulas (3) and (4).
  • the temperature of the motor body is calculated by adding the calculated temperature changes as follows.
  • the motor body temperature ⁇ M rises according to the above-described equation (3) during the elapsed time and then decreases according to the equation (4).
  • the motor body temperature ⁇ Mt1 based on the elapsed time from time 0 to time t1 is drawn from a curve 301 that rises from time 0 to time t1 and falls after time t1.
  • Value theta Mt1-1 at time t1 the motor body temperature theta Mt1 is according to equation (3) can be calculated as follows.
  • ⁇ Mt1-1 L t1 ⁇ ⁇ 1-exp ( ⁇ ⁇ t1 / 60) ⁇ L t1 is a saturation temperature calculated from the actual rotational speed ⁇ of the X-axis motor 71 and the drive current i between times 0 and t1.
  • ⁇ Mt1-2 ⁇ Mt1-1 ⁇ exp ⁇ ⁇ (t2-t1) / 60 ⁇
  • the values ⁇ Mt1-3 and ⁇ Mt1-4 of the motor body temperature ⁇ Mt1 at times t3 and t4 can be calculated as follows according to the equation (4).
  • ⁇ Mt1-3 ⁇ Mt1-1 ⁇ exp ⁇ ⁇ (t3-t1) / 60 ⁇
  • ⁇ Mt1-4 ⁇ Mt1-1 ⁇ exp ⁇ ⁇ (t4-t1) / 60 ⁇
  • a motor main body temperature ⁇ Mt2 based on the elapsed time from time t1 to time t2 draws a curve 302 that rises from time t1 to time t2 and decreases after time t2. Since the saturation temperature L t2 can be calculated from the actual rotational speed ⁇ and the drive current i of the X-axis motor 71 between time t1 and time t2, the motor body temperatures ⁇ Mt2-1 and ⁇ Mt2 ⁇ at times t2, t3, and t4 are calculated. 2 and ⁇ Mt2-3 can be calculated as follows using Equation (3) and Equation (4), respectively.
  • ⁇ Mt2-1 L t2 ⁇ [1-exp ⁇ ⁇ (t2 ⁇ t1) / 60 ⁇ ]
  • a motor main body temperature ⁇ Mt3 based on the elapsed time from time t2 to t3 is drawn from a curve 303 that increases from time t2 to t3 and decreases after time t3.
  • motor body temperatures ⁇ Mt3-1 , ⁇ Mt3-2 , ⁇ Mt3-3 at times t3, t4, t5 are calculated.
  • the actual motor body temperature ⁇ is calculated by adding the motor body temperatures ⁇ Mt1 , ⁇ Mt2 , ⁇ Mt3 ... Calculated at the respective times as described above. For example, assume that motor body temperatures ⁇ Mt1 , ⁇ Mt2 , and ⁇ Mt3 at times t1, t2, and t3 are calculated. In this case, the value ⁇ 1 of the motor main body temperature ⁇ at time t1 is ⁇ Mt1-1 . The value ⁇ 2 of the motor main body temperature ⁇ at time t2 is ⁇ Mt1-2 + ⁇ Mt2-1 . The value ⁇ 3 of the motor main body temperature ⁇ at time t3 is ⁇ Mt1-3 + ⁇ Mt2-2 + ⁇ Mt3-1 . Similarly, when the value of the motor body temperature ⁇ at each time is calculated, the motor body temperature ⁇ changes as illustrated by a curve 304 shown in FIG. 8D.
  • the calorific value Q F of the front shaft portion 18a is calculated using the motor body temperature ⁇ calculated as described above according to the following equation (5).
  • Q F K 4 ( ⁇ S ) (5)
  • Q F is the amount of heat generated by the front shaft portion 18a during a predetermined period (6400 ms).
  • K 4 is a coefficient.
  • ⁇ S is the temperature of the ball screw shaft end portion 81e (see FIG. 5).
  • the value of the temperature ⁇ 1 at the right separation position of the section 1 calculated in the previous process is used as ⁇ S.
  • the calorific value Q N of the nut movement range 81b is distributed to five sections.
  • the distribution ratio X for distributing the calorific value Q N to the five sections 1 to 5 according to the following equation from the calorific values Q 1 to Q 5 and the total calorific value Q T for each section stored in the data area of the flash memory 53 to calculate the 1 ⁇ X 5.
  • X 1 calorific value Q 1 / Q T in section 1 :
  • X 5 calorific value of section 5 Q 5 / Q T From the distribution ratios X 1 to X 5 to each section calculated by the above equation and the heat generation amount Q N of the nut moving section 81b, the distribution heat generation amounts Q N1 to Q distributed to each of the sections 1 to 5 according to the following formula: Calculate N5 .
  • the total distributed heat generation amount for each of the sections 1 to 5 can be expressed using the above result.
  • the total distributed heat generation amount for the section 1 is a heat generation amount obtained by adding the heat generation amount Q N1 to the heat generation amount Q F of the front shaft portion 18a.
  • the total distributed calorific value for section 2 to section 4 is calorific value Q N2 to calorific value Q N4 , respectively.
  • the total distributed heat generation amount for the section 5 is a heat generation amount obtained by adding the heat generation amount Q N5 to the heat generation amount Q B of the rear shaft portion 81c.
  • the total distributed heat generation amount (see FIG. 9) of each of the five sections 1 to 5 is obtained as described above, and then the temperature distribution is calculated from the total distributed heat generation amount.
  • [C] is a heat capacity matrix
  • [H] is a heat conduction matrix
  • is a temperature distribution
  • ⁇ Q ⁇ is an input / output heat generation matrix
  • t is time.
  • the heat capacity matrix [C] is a fixed value determined by the ball screw mechanism, and can be expressed as the following equation.
  • Elements C 1 to C 5 of the heat capacity matrix [C] are predetermined constants.
  • the temperature rise matrix ⁇ corresponding to the temperature distribution, the rotational speed ⁇ of the ball screw shaft 81, and the heat generation amount matrix ⁇ Q ⁇ calculated from the current value of the X-axis motor 71 can be expressed by the following equations, respectively.
  • the heat conduction matrix [H] can be expressed by the following equation (7) from the first heat conduction matrix [K] and the matrix [H F ].
  • the first heat conduction matrix [K] is determined by the shape and material of the divided section.
  • the matrix [H F ] changes with the rotational speed of the ball screw shaft 81 driven by the X-axis motor 71. In this embodiment, the rotational speed of the ball screw shaft 81 is assumed to be equal to the rotational speed ⁇ of the X-axis motor 71.
  • Elements k11 to k55 of the first heat conduction matrix [K] are predetermined constants determined by the ball screw mechanism.
  • the matrix [H F ] can be expressed by the following equation (8) from the heat release function h ( ⁇ ) and the second heat conduction matrix [h F ].
  • the heat radiation function h ( ⁇ ) is a function representing the effect of heat radiation with the rotational speed ⁇ of the ball screw shaft 81 as a parameter.
  • Elements h f1 to h f5 of the second heat conduction matrix [h F ] are predetermined constants determined by the ball screw mechanism.
  • the heat radiation function h ( ⁇ ) can be expressed as the following equation (9).
  • h ( ⁇ ) a ⁇ + b (9)
  • Expressions (9) a and b can be calculated by approximating values obtained by experiments in advance and creating a characteristic diagram as illustrated in FIG.
  • temperature rise at each time that is, temperature distribution ⁇ is calculated.
  • ⁇ L ⁇ L 0 ⁇ ⁇ ⁇ (L) dL ⁇ (11)
  • ⁇ L is the amount of thermal displacement.
  • is the linear expansion coefficient of the shaft material.
  • the integration symbol indicates integration in the range of 0 to L, and L indicates the length to the section break position for the five sections. Assuming that the length of each section 1 to 5 is 100 mm, the integration in the range of 0 to 100, 0 to 200, 0 to 300,.
  • FIG. 10 shows correction sections 1 to 15 obtained by dividing the nut movement range 81b of the ball screw shaft 81 at intervals of 20 mm.
  • the correction of the pitch error correction amount is performed for each correction section.
  • the moving range of the nut portion 8a is X0 to X300 (300 mm range), and the length of each correction section is 20 mm, so there are 15 correction sections.
  • the pitch error correction amount table that defines the pitch error correction amount corresponding to each correction section is stored in advance in the flash memory 53 as described above.
  • the correction amounts for correcting the pitch error correction amounts of the 15 correction sections are calculated.
  • the vertical axis of the graph in FIG. 13 indicates the amount of thermal displacement with respect to the position of the fixed bearing 18.
  • the horizontal axis of the upper graph indicates the position of each part of the ball screw shaft 81 (the length of the ball screw shaft) with respect to the fixed bearing 18.
  • the horizontal axis on the lower side of the graph indicates the delimiting positions (X0, X20..., X300) of 15 correction sections.
  • DF1 is the amount of thermal displacement in section 1.
  • DF2 is the total amount of thermal displacement in section 1 and section 2.
  • DF5 is the total amount of thermal displacement in section 1 to section 5.
  • correction amount at the delimiter positions (X20,..., X300) of the 15 correction sections is calculated from the following equation.
  • Correction amount of X0 (thermal displacement amount of section 1) + (thermal displacement amount of section 2) ⁇ ⁇ (length between left delimiter position of section 2 and X0) / (length of section 2)
  • Correction amount of X20 (thermal displacement amount of section 1) + (thermal displacement amount of section 2) ⁇ ⁇ (length between left separation position of section 2 and X20) / (length of section 2) ⁇ ⁇ (X0 Correction amount)
  • Correction amount of X40 (thermal displacement amount of section 1) + (thermal displacement amount of section 2) ⁇ ⁇ (length between left separation position of section 2 and X40) / (length of section 2) ⁇ ⁇ (X20 Correction amount)
  • Correction amount of X60 (thermal displacement amount of section 1) + (thermal displacement amount of section 2) ⁇ ⁇ (length between left separation position of section 2 and X60) / (
  • the CPU 51 executes workpiece processing in parallel with the thermal displacement correction control process.
  • the CPU 51 first performs initial setting (S1).
  • the CPU 51 sets a matrix and an ambient temperature (for example, room temperature) necessary for calculation by the finite element method from setting data such as parameters.
  • the CPU 51 divides the section from the end 81e to the end 81f of the ball screw shaft 81 into five sections 1 to 5 (see FIG. 5) (S2).
  • the CP51 sets the counter I to 0 (S3).
  • the CPU 51 reads the X-axis feed data and the detection signal of the encoder 71a (S4).
  • the CPU 51 calculates the amount of heat generated every 50 ms in the sections 1 to 5 and the motor body temperature ⁇ , and stores it in a predetermined data area of the flash memory 53 (S5).
  • the CPU 51 also stores data on the rotational speed ⁇ of the X-axis motor 71 in the flash memory 53.
  • the CPU 51 increments the counter I by “1” (S6).
  • the CPU 51 determines whether or not the counter value of the counter I is “127” (S7). While the counter value is smaller than “127” (S7: No), the CPU 51 returns to step S4 and repeats the processes of steps S4 to S6. When the counter value reaches “127” (S7: Yes), the CPU 51 proceeds to the process of step S8.
  • the CPU 51 calculates a heat generation amount Q 1 to Q 5 for each of the sections 1 to 5 for 6400 ms and a total heat generation amount Q T obtained by adding the heat generation amounts Q 1 to Q 5 (S8).
  • the CPU 51 stores the heat generation amounts Q 1 to Q 5 and the total heat generation amount Q T in a predetermined data area of the flash memory 53.
  • the CPU 51 calculates the heat generation amount Q F of the front shaft portion 18a, the heat generation amount Q N of the nut moving section 81b, and the heat generation amount Q B of the rear shaft portion 18c (S9).
  • the CPU 51 stores the heat generation amount Q F , the heat generation amount Q N and the heat generation amount Q B in a predetermined data area of the flash memory 53.
  • the CPU 51 calculates distributed heat generation amounts Q N1 to Q N5 distributed to the sections 1 to 5 from the heat generation amount Q N (S9).
  • the CPU 51 stores the distributed heat generation amounts Q N1 to Q N5 in a predetermined data area of the flash memory 53.
  • the CPU 51 calculates the total distributed heat generation amount (see FIG. 9) for each of the sections 1 to 5 (S9).
  • the CPU 51 stores the total distributed heat generation amount in a predetermined data area of the flash memory 53.
  • the CPU 51 uses the average value of 128 motor body temperatures ⁇ stored in the flash memory 53 for a predetermined period (6400 ms) as the motor body temperature ⁇ .
  • the CPU 51 uses the previous ⁇ 1 as ⁇ S.
  • the CPU 51 calculates the rising temperatures ⁇ 1 to ⁇ 5 in the sections 1 to 5 based on the total heat generation amount shown in FIG. 9 (S10).
  • the CPU 51 stores the increased temperatures ⁇ 1 to ⁇ 5 in the flash memory 53.
  • the CPU 51 calculates the amount of thermal displacement at the section break positions of the five sections based on the above equation (11) (S11).
  • the CPU 51 stores the thermal displacement amount in the flash memory 53.
  • the CPU 51 calculates the correction amounts at the 15 correction section break positions based on the correction amount calculation formula described above (S12).
  • the CPU 51 executes correction processing for the pitch error correction amount using the correction amount calculated in step S12 (S13).
  • the pitch error correction amount is preset for 15 correction section break positions and stored in a pitch error correction amount table.
  • the CPU 51 executes a feed amount correction process based on the corrected pitch error correction amount.
  • the CPU 51 determines whether or not to end the thermal displacement correction process (S14). When the CPU 51 does not end the thermal displacement correction process (S14: No), the CPU 51 returns to step S3 and repeatedly executes the processes after step S3.
  • the correction amount calculation processing is processing for calculating a correction amount for correcting the pitch error correction amount.
  • the CPU 51 resets the counter n to 0 (S10).
  • the CPU 51 calculates the correction amount ⁇ M n of the position Xn by the following equation (S21).
  • ⁇ M n D F + ⁇ D n ⁇ ⁇ (Xn ⁇ X F ) / L n ⁇ ⁇ M n ⁇ 20
  • the above expression is a simple expression of the above-described correction amount calculation expression.
  • DF is the total amount of thermal displacement generated in the calculation section closer to the fixed bearing 18 than the position Xn.
  • ⁇ D n is the amount of thermal displacement generated in the calculation interval including the position Xn.
  • X F is the left delimiter position of the calculation section including the position Xn.
  • L n is the length of the calculation interval including the position Xn.
  • ⁇ M ⁇ 20 used when calculating ⁇ M 0 is set to 0.
  • the CPU 51 increases n by 20 (S22).
  • the CPU 51 determines whether n is 320 (S23). When n is not 320 (S23; No), the CPU 51 determines that the calculation for the correction amount up to the position X300 has not ended.
  • the CPU 51 returns to step S21 to calculate the correction amount ⁇ M n for the position Xn.
  • the CPU 51 repeatedly executes the processes of steps S21 to S23 until the correction amount ⁇ M 300 for the position X300 is calculated.
  • the CPU 51 calculates the correction amount ⁇ M 300 (S21). When the CPU 51 increases n by 20 (S22), n becomes 320 (S23; Yes).
  • Encoder 71a corresponds to “speed detection device”.
  • the CPU 51 of the numerical controller 50 that executes the processes of steps S3 to S7 corresponds to a “heat generation amount calculation unit”.
  • the CPU 51 that executes the processes of steps S8 to S10 corresponds to a “temperature distribution calculation unit”.
  • the CPU 51 that executes the process of step S11 sets the “thermal displacement amount calculation unit”.
  • the CPU 51 that executes the process of step S12 corresponds to a “correction amount calculation unit”.
  • the thermal displacement correction method and the thermal displacement correction device (numerical control device 50) of the machine tool M described above will be described.
  • the heat conduction matrix of the unsteady heat conduction equation is set to a characteristic that the heat dissipation increases as the rotational speed of the ball screw shaft 81 increases.
  • the method and apparatus calculate the calorific value of each of the plurality of sections 1 to 5 every predetermined time.
  • the method and apparatus calculate the calorific value distributed to each of the plurality of sections using the calorific values Q 1 to Q 5 obtained by accumulating the calorific values of the plurality of sections 1 to 5 for a predetermined period.
  • the method and apparatus calculate temperature distributions ⁇ 1 to ⁇ 5 in a plurality of sections using the distributed heat generation amount and the above-described unsteady heat conduction equation.
  • the method and apparatus calculate thermal displacement amounts D F1 to D F5 in a plurality of sections from the temperature distributions ⁇ 1 to ⁇ 5 .
  • the method and apparatus calculate correction amounts ⁇ M 0 , ⁇ M 20, ⁇ M 40, ... ⁇ M 300 for correcting a preset pitch error correction amount based on the thermal displacement amounts D F1 to D F5. To do.
  • the method and apparatus can perform the thermal displacement correction process with high accuracy in consideration of the heat dissipation that increases as the rotational speed ⁇ of the ball screw shaft 81 of the ball screw mechanism increases.
  • the heat conduction matrix includes a heat radiation function h ( ⁇ ) that increases as the rotational speed ⁇ of the X-axis motor 71 increases. Therefore, the method and apparatus can obtain the thermal displacement amount reflecting the heat radiation amount corresponding to the rotational speed of the ball screw shaft 81, and can accurately correct the thermal displacement.
  • the heat conduction matrix includes a first heat conduction matrix that reflects the shape and material of the ball screw shaft 81, a second heat conduction matrix that reflects the structure of the ball screw mechanism, and the heat dissipation function that multiplies the second heat conduction matrix. Including. Therefore, the method and apparatus can reflect the above items and the rotational speed of the ball screw shaft 81 in the unsteady heat conduction equation.
  • the heat radiation function h ( ⁇ ) only needs to reflect the amount of radiant heat radiated to the surroundings in accordance with the increase in the rotational speed of the ball screw shaft 81.
  • the heat radiation function h ( ⁇ ) is not an approximate expression, and may be based on data in which a correspondence relationship between the rotational speed ⁇ and the value of h ( ⁇ ) is set.
  • the separation by the rotational speed ⁇ may be an unequal interval.
  • the arithmetic processing required for the approximate expression is not necessary.
  • the thermal displacement correction method and the thermal displacement correction device may correct the control data of the machining program for each of a plurality of correction sections based on the thermal displacement amount independently of the pitch error correction.
  • the calculation cycle for calculating the calorific value is not necessarily 50 ms.
  • the predetermined period for performing correction based on the amount of thermal displacement is not 6400 ms, but may be in units of several tens of seconds.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Automatic Control Of Machine Tools (AREA)
  • Numerical Control (AREA)

Abstract

 工作機械のCPUは非定常熱伝導方程式を用いて、ボール螺子シャフト(81)の複数の区間の温度分布を演算し、該温度分布から各区間の熱変位量を演算する。非定常熱伝導方程式の熱伝導マトリックスはボール螺子シャフト(81)の形状及び材質を反映する第1 熱伝導マトリックスとボール螺子機構の構造を反映する第2熱伝導マトリックスと放熱関数を含む。放熱関数はサーボモータの回転数が増加するのに応じて、放熱性が増加する特性に設定してある。故に、CPUはボール螺子シャフト(81)からの放熱量を加味した熱変位量に基づいて、熱変位に起因する誤差を高精度に補正することができる。

Description

工作機械の熱変位補正方法及び熱変位補正装置
 本発明は工作機械の熱変位補正方法及び熱変位補正装置に関する。より詳細には、工作機械においてボール螺子機構の運転中に生じるボール螺子シャフトの熱変位に起因する誤差を補正する方法及び装置に関する。
 ボール螺子機構は工作機械の位置決め機構として普及している。ボール螺子機構はボール螺子シャフトとナットとの摩擦抵抗、シャフトと軸受各部との摩擦抵抗及びサーボモータの発熱に起因して温度が上昇する。ボール螺子機構は前述した温度上昇に基づいて熱膨張を起こし、熱変位(伸び)を生じる。工作機械では、シャフトの熱変位はそのまま位置決め誤差となって現れる。
 工作機械は熱膨張に対する対策としてボール螺子シャフトに予張力を与え、熱膨張を吸収する予張力方式を使用してきた。最近の工作機械は太いボール螺子シャフトを使用し、且つ送り速度が非常に速い。故に、発熱量が増大するので、予張力方式を採用する場合、工作機械はボール螺子シャフトに非常に大きな張力を加えねばならない。工作機械に非常に大きな張力を加える場合、ボール螺子機構は変形するという問題がある。前述の場合、スラスト軸受に無理な力が加わり、ボール螺子機構は焼き付く問題があった。
 特許文献1が提案するボール螺子シャフトの熱変位補正方法はボール螺子シャフトに無理な予張力を与えず、且つ特別な測定装置を必要としない。該方法は工作機械稼動中に熱変位量を補正する。具体的には、第1工程はサーボモータの電機子電流と電圧との積からボール螺子シャフトの発熱量を求める。第2工程は非定常熱伝導方程式に基づく熱分布モデルを用いて、該発熱量から温度分布を求める。該熱分布モデルはボール螺子シャフトを複数の区間に分割したモデルである。第3工程は温度分布に基づいて、ボール螺子シャフトの熱変位量を時々刻々に予想する。第4工程は該熱変位量を工作機械にピッチ誤差補正として与える。
特開昭63―256336号公報
 特許文献1が提案する方法は発熱量を電流と電圧とから演算する。該方法はボール螺子機構の駆動に基づく熱量変動要因の検討をしていない。シャフトが回転駆動した場合、サーボモータ、軸受、ナット及び摺動面等の熱源は熱量を発生する。シャフトは回転駆動して周囲の風を切ることで、周囲へ放熱する。特許文献1は該放熱量について一切示唆していない。
 放熱量はシャフトの回転速度が速い時に大きく、回転速度が遅い時に小さくなる。特許文献1が提案する方法は前述した放熱量を考慮していないので、高精度な熱変位補正を行うことができない。
 本発明の目的は、工作機械において、ボール螺子機構の運転中に生じるシャフトの熱変位に起因する誤差を高精度に補正する熱変位補正方法及びその熱変位補正装置を提供することにある。
 請求項1の工作機械の熱変位補正方法は、シャフトとナットとを備える送り駆動用ボール螺子機構と、前記シャフトを回転駆動するサーボモータと、前記サーボモータを制御データに基づき制御する制御部とを有する工作機械の熱変位補正方法において、前記シャフトの全長を複数に分割した複数区間に夫々発生する発熱量を、前記サーボモータの回転速度と前記制御データとに基づいて、第一所定時間毎に求める第1ステップと、前記複数区間に夫々発生した前記発熱量を前記複数区間毎に前記第一所定時間より長い第二所定時間分累積した合計発熱量と、前記シャフトの回転速度の増大に応じて放熱性が増加する特性に設定した熱伝導マトリックスを含む非定常熱伝導方程式とに基づいて、前記複数区間の温度分布を前記第二所定時間毎に演算する第2ステップと、前記温度分布から、前記シャフトの前記複数区間の夫々の熱変位量を前記第二所定時間毎に演算する第3ステップと、前記複数区間の夫々の前記熱変位量に基づいて、前記シャフトのナット移動範囲を複数に分割した複数の補正区間毎に前記制御データを夫々補正する為の補正量を前記第二所定時間毎に演算する第4ステップとを備えている。故に、請求項1の熱変位補正方法はボール螺子機構のシャフトの回転速度の増大に応じて増大する放熱性を考慮して、熱変位に起因する誤差を高精度に補正することができる。
 請求項2の工作機械の熱変位補正方法では、前記熱伝導マトリックスは、前記サーボモータの前記回転速度が増加するのに応じて増加する放熱関数を含む。故に、請求項2の熱変位補正方法はシャフトの回転速度に対応した放熱量を反映した熱変位量を求め、熱変位に起因する誤差を高精度に補正することができる。
 請求項3の工作機械の熱変位補正方法では、前記熱伝導マトリックスは、前記シャフトの形状及び材質を反映する第1熱伝導マトリックスと、前記ボール螺子機構の構造を反映する第2熱伝導マトリックスと、前記第2熱伝導マトリックスに乗算する前記放熱関数とを含む。故に、請求項3の熱変位補正方法は上記の諸項目とシャフトの回転速度を非定常熱伝導方程式に反映することができる。
 請求項4の工作機械の熱変位補正装置は、シャフトとナットとを備える送り駆動用ボール螺子機構と、前記シャフトを回転駆動するサーボモータと、前記サーボモータを制御データに基づき制御する制御部とを有する工作機械の熱変位補正装置において、前記サーボモータの回転速度を検出する速度検出機器と、前記シャフトの全長を複数に分割した複数区間に夫々発生する発熱量を、前記サーボモータの回転速度と前記制御データとに基づいて、第一所定時間毎に求める発熱量演算部と、前記複数区間に夫々発生した前記発熱量を前記複数区間毎に前記第一所定時間より長い第二所定時間分累積した合計発熱量と、前記シャフトの回転速度の増大に応じて放熱性が増加する特性に設定した熱伝導マトリックスを含む非定常熱伝導方程式とに基づいて、前記複数区間の温度分布を前記第二所定時間毎に演算する温度分布演算部と、前記温度分布から前記複数区間の夫々の熱変位量を前記第二所定時間毎に演算する熱変位量演算部と、前記複数区間の夫々の前記熱変位量に基づいて、前記シャフトのナット移動範囲を複数に分割した複数の補正区間毎に前記制御データを夫々補正する為の補正量を前記第二所定時間毎に演算する補正量演算部とを備えている。故に、請求項4の熱変位補正装置はボール螺子機構のシャフトの回転速度の増大に応じて増大する放熱性を考慮して、熱変位に起因する誤差を高精度に補正することができる。
 請求項5の工作機械の熱変位補正装置では、前記熱伝導マトリックスは、前記サーボモータの前記回転速度が増加するに応じて増加する放熱関数を含む。故に、請求項5の熱変位補正装置はシャフトの回転速度に対応した放熱量を反映した熱変位量を求め、熱変位に起因する誤差を高精度に補正することができる。
 請求項6の工作機械の熱変位補正装置では、前記熱伝導マトリックスは、前記シャフトの形状及び材質を反映する第1熱伝導マトリックスと、前記ボール螺子機構の構造を反映する第2熱伝導マトリックスと、前記第2熱伝導マトリックスに乗算する前記放熱関数とを含む。故に、請求項6の熱変位補正装置は上記の諸項目とシャフトの回転速度を非定常熱伝導方程式に反映することができる。
本実施例の工作機械の全体斜視図。 工作機械の側面図。 X軸ボール螺子機構の構成図。 工作機械の制御系のブロック図。 ボール螺子シャフトを複数に分割して得た複数区間を説明する説明図。 フラッシュメモリに記憶した複数区間の合計の発熱量等のデータを説明する説明図。 モータの回転速度と電流を一定とした場合のモータ本体温度と経過時間との関係を示す説明図。 モータ本体温度の演算方法を説明する図。(A)は駆動開始後0~t1までのモータ本体温度と経過時間の関係図。(B)は駆動開始後t1~t2までのモータ本体温度と経過時間の関係図。(C)は駆動開始後t2~t3までのモータ本体温度と経過時間の関係図。(D)は駆動開始後0~t3までのモータ本体温度と経過時間の関係図。 複数区間に分配した分配発熱量と温度を説明する説明図。 ピッチ誤差補正の為の補正区間の説明図。 放熱関数h(ω)の近似式を例示する説明図。 温度上昇{θ}の演算方法を説明する説明図。 固定軸受からの各区間区切り位置における熱変位量を示す説明図。 熱変位補正制御処理のフローチャート。 補正量演算処理のフローチャート。 (a)は500毎に区切った放熱関数h(ω)のテーブルを示し、(b)は不等間隔に区切った放熱関数h(ω)のテーブルを示す。
 以下、本発明を実施する為の形態について説明する。
 図1~図4に基づいて、工作機械Mの構成について説明する。図1の右下は工作機械Mの前方である。工作機械Mはワーク(図示略)と工具6がXYZ直交座標系における各軸方向へ独立に相対移動してワークに所望の機械加工(例えば、「フライス削り」、「穴空け」、「切削」等)を施すことができる。工作機械M(機械本体2)のX軸方向、Y軸方向、Z軸方向は夫々工作機械M(機械本体2)の左右方向、前後方向、上下方向である。
 図1に示すように、工作機械Mはベース1、機械本体2、カバー(図示略)を構成の主体とする。ベース1はY軸方向に長い略直方体状の鋳造品である。機械本体2はベース1の上部に設けてある。機械本体2はワークに切削加工を行う。カバーはベース1上部に固定してある。カバーは機械本体2とベース1上部とを覆う箱状である。
 機械本体2について説明する。図1に示すように、機械本体2はコラム4、主軸ヘッド5、主軸(図示略)、工具交換装置7、テーブル8を構成の主体とする。コラム4は略角柱形状であり、ベース1後部に設けたコラム座部3に固定してある。主軸ヘッド5はコラム4の前面に沿って昇降可能である。主軸ヘッド5はその内部に主軸を回転可能に支持している。工具交換装置7は主軸ヘッド5の右側に設けてある。
 工具交換装置7は主軸の先端に取り付けた工具ホルダを他の工具ホルダに交換する。工具ホルダは工具6を装着している。テーブル8はベース1上部に設けてある。テーブル8はワークを着脱可能に固定する。箱状の制御ボックス9はコラム4背面側に設けてある。制御ボックス9はその内側に数値制御装置50を備えている。数値制御装置50は工作機械Mの動作を制御する。
 テーブル8の移動機構について説明する。X軸モータ71(図4参照)及びY軸モータ72(図4参照)は夫々テーブル8をX軸方向及びY軸方向に移動する。X軸モータ71及びY軸モータ72はサーボモータである。テーブル8の移動機構は以下の構成を有する。直方体状の支持台10はテーブル8の下側に設けてある。支持台10はその上面にX軸方向に沿って延びる一対のX軸送りガイドレールを備えている。一対のX軸送りガイドレールはその上にテーブル8を移動可能に支持している。
 図3に示すように、ナット部8aはテーブル8下面に配置してある。X軸ボール螺子シャフト81はカップリング17を介してX軸モータ71から延びている。ナット部8aは該X軸ボール螺子シャフト81と螺合することで、ボール螺子機構を構成する。支持台10に固定した固定軸受18(前部軸受)はX軸ボール螺子シャフト81のX軸モータ71側の端部81eを支持する。可動軸受19(後部軸受)はX軸ボール螺子シャフト81反対側の端部81fを支持する。
 一対のY軸送りガイドレール(図示略)は、ベース1上部に前後方向に沿って延びる。一対のY軸送りガイドレールは支持台10を移動可能に支持している。支持台10に設けたX軸モータ71はX軸送りガイドレール(図示略)に沿ってテーブル8をX軸方向に移動駆動する。ベース1に設けたY軸モータ72はY軸送りガイドレールに沿ってテーブル8をY軸方向に移動駆動する。Y軸の移動機構もX軸と同様のボール螺子機構(図3参照)である。
 カバー11、12はテーブル8の左右両側でX軸送りガイドレールを覆う。カバー13とY軸後カバー(図示略)は夫々支持台10の前後でY軸送りガイドレールを覆う。カバー11、12、13とY軸後カバーは、テーブル8がX軸方向とY軸方向の何れの方向に移動した場合でも、X軸送りガイドレールとY軸送りガイドレールを常に覆う。故に、カバー11、12、13とY軸後カバーは、加工領域から飛散する切粉及びクーラント液等が各ガイドレール上に落下するのを防止する。
 主軸ヘッド5の昇降機構について説明する。コラム4はその前面側に上下方向に延びるガイドレール(図示略)を備えている。該ガイドレールはリニアガイド(図示略)を介して主軸ヘッド5を昇降自在に案内する。コラム4はその前面側に上下方向に延びるZ軸ボール螺子シャフト(図示略)を備えている。ナット(図示略)は該Z軸ボール螺子シャフトに螺合し、且つ主軸ヘッド5と連結している。Z軸モータ73(図4参照)がZ軸ボール螺子シャフトを正逆方向に回転駆動することで、主軸ヘッド5は上下方向に昇降駆動する。軸制御部63aは数値制御装置50のCPU51からの制御信号に基づいて、Z軸モータ73を駆動する。Z軸モータ73が駆動することで、主軸ヘッド5は昇降駆動する。
 図1、図2に示すように、工具交換装置7は工具マガジン14と工具交換アーム15を備える。工具マガジン14は、工具6を支持する工具ホルダを複数格納する。工具交換アーム15は、主軸に取付けた工具ホルダと他の工具ホルダを掴み、且つ搬送して交換する。工具マガジン14はその内側に複数の工具ポット(図示略)と搬送機構(図示略)を備える。工具ポットは工具ホルダを支持する。搬送機構は工具ポットを工具マガジン14内で搬送する。
 図4に示すように、工作機械Mの制御部としての数値制御装置50はCPU51、ROM52、フラッシュメモリ53、入出力インタフェース54、軸制御部61a~64a、75a、サーボアンプ61~64、微分器71b~74b等を備えている。サーボアンプ61~64は夫々X軸モータ71、Y軸モータ72、Z軸モータ73、主軸モータ74に接続している。軸制御部75aはマガジンモータ75に接続している。
 X軸モータ71及びY軸モータ72は夫々テーブル8をX軸方向及びY軸方向に移動させる為のモータである。マガジンモータ75は工具マガジン14を回転移動させる為のモータである。主軸モータ74は前記主軸を回転させる為のモータである。以下、X軸モータ71、Y軸モータ72、Z軸モータ73、主軸モータ74を総称して、モータ71~74という。モータ71~74は夫々エンコーダ71a~74aを備えている。
 軸制御部61a~64aはCPU51からの移動指令を受けて、電流指令(モータトルク指令)を夫々サーボアンプ61~64に出力する。サーボアンプ61~64は電流指令を受けて、夫々モータ71~74に駆動電流を出力する。軸制御部61a~64aは夫々エンコーダ71a~74aからの位置フィードバック信号を受けて、位置のフィードバック制御を行う。微分器71b~74bは夫々エンコーダ71a~74aが出力した位置フィードバック信号を微分して、速度フィードバック信号に変換する。エンコーダ71a~74aは夫々軸制御部61a~64aに速度フィードバック信号を出力する。
 軸制御部61a~64aは夫々微分器71b~74bが出力する速度フィードバック信号に基づいて、速度フィードバックの制御を行う。電流検出器61b~64bは夫々サーボアンプ61~64がモータ71~74に出力する駆動電流を検出する。電流検出器61b~64bは駆動電流を夫々軸制御部61a~64aにフィードバックする。軸制御部61a~64aは電流検出器61b~64bがフィードバックした駆動電流に応じて、電流(トルク)制御を行う。軸制御部75aはCPU51からの移動指令を受けて、マガジンモータ75を駆動する。
 ROM52は工作機械Mの加工プログラムを実行するメインの制御プログラム、後述する熱変位補正制御処理(図14及び図15参照)を実行する為のプログラムを記憶している。フラッシュメモリ53は機械構造に関するパラメータ、物理的性質に関するパラメータ、後述する熱分配係数(比率)ηF 、 ηN 、 ηB 、ピッチ誤差補正量のテーブル等を記憶する。機械構造に関するパラメータとして、例えばボール螺子シャフト81の長さ、径、後述する基準位置等がある。物理的性質に関するパラメータとして、例えば密度、比熱、線膨張係数、熱容量、熱伝達係数、熱容量、熱伝達係数、式(3)、(4)で用いるγ、その他の定数等がある。フラッシュメモリ53は、図6に示す発熱量、合計発熱量、モータ71の回転速度及び駆動電流、図9に示す分配発熱量を更新しつつ記憶するデータ領域を有する。フラッシュメモリ53は種々のワークを機械加工する為の複数の加工プログラム等を適宜記憶する。
 次に、工作機械Mのボール螺子機構に発生する熱変位に起因する誤差を補正する熱変位方法及び熱変位量補正装置について説明する。本実施例は熱変位量を用いてピッチ誤差補正量を補正する例である。
 工作機械Mのボール螺子機構は製造時の寸法誤差等に起因して、ボール螺子シャフト81の回転量に対するナット部8aの目標移動量と実際の移動量との間にピッチ誤差が生じる。工作機械Mはピッチ誤差補正量のテーブルに基づいて、ピッチ誤差を補正する。ピッチ誤差補正量のテーブルは工作機械Mの出荷前調整段階で設定する。ピッチ誤差補正量のテーブルはX軸、Y軸、Z軸ボール螺子機構のピッチ誤差を夫々補正する為のテーブルである。本実施例ではX軸ボール螺子シャフト81のピッチ誤差補正量を補正する例について説明するが、Y軸のボール螺子機構、Z軸のボール螺子機構についても基本的に同様である。
 図10に示すように、ナット部8aは、X軸ボール螺子シャフト81の全長のうちの、ナット移動範囲81bを移動可能である。ピッチ誤差補正は補正区間毎に行う。補正区間は、ナット移動範囲81b(300mm)を、例えば20mmの設定長で分割した15個の区間である。ピッチ誤差を補正する為のピッチ誤差補正量は、工作機械M製作後の調整段階に以下の手順で取得した値である。ナット部8aは、指令値に応じて、位置X0から位置X300までX軸方向へ20mm間隔にて補正区間毎に移動する。本実施例は、移動指令値に対する誤差、即ち(目標値-実移動量)である誤差を精密に測定する。本実施例は、測定結果に基づき、ピッチ誤差補正量のテーブルを作成する。本実施例は、作成したテーブルをフラッシュメモリ53に予め記憶して出荷する。本実施例は、Y軸及びZ軸方向についても同様にピッチ誤差補正量のテーブルを作成する。
 本実施例ではボール螺子シャフト81の前側軸部81a、ナット移動範囲81b、後側軸部81cの3領域の発熱量を求める。図5に示すように、ボール螺子シャフト81の端部81eから端部81fまでの区間を、例えば区間1~5に5分割する。該区間の数は5には限らない。上記の複数の区間について、所定時間(例えば、50ms)毎に区間毎の発熱量を求める。
 図6に示すように、フラッシュメモリ53は発熱量Q1 ~Q5 、合計発熱量QT 、X軸モータ71の回転速度ω、駆動電流iを夫々記憶するデータ領域を有する。発熱量Q1 ~Q5は所定期間(例えば、6400ms)中に区間1~5に夫々発生した区間毎の発熱量である。合計発熱量QT は該発熱量Q1 ~Q5 の合計量である。
[合計発熱量の演算]
 本実施例では、ナット部8aは原点座標X0~X300までのナット移動範囲81bを移動する。加工プログラムのX軸送りデータ(制御データ)に基づいて、ナット部8aが上記の所定時間(50ms)毎にどの区間に位置しているかを判別する。エンコーダ71aの検出信号から、X軸モータ71によるテーブル送り速度Fを演算する。次の(1)式を用いて、該テーブル送り速度Fから発熱量を演算する。演算した発熱量はフラッシュメモリ53のデータ領域に記憶する。
 Q=K1 ×FT  ・・・(1)
 Qは発熱量、Fは送り速度、K1 は所定の定数、Tは所定の定数である。
 本実施例では区間1~5におけるナット部8aの移動に起因する発熱量を、所定時間毎に演算する。本実施例では6400msの間、50ms毎に128回発熱量を演算する。該演算した128回分の発熱量を区間毎に合計して発熱量Q1 ~Q5を演算する。図6に示すように、該発熱量Q1 ~Q5を夫々フラッシュメモリ53の区間1~5に対応するデータ領域に記憶する。6400msの間に発生した区間毎の発熱量Q1 ~Q5 を合計して、合計発熱量QT を演算する。6400msの間におけるX軸モータ71の50ms毎の回転速度ω(即ち、ω 、ω 、・・ω127 )のデータを、フラッシュメモリ53の回転速度に対応するデータ領域に記憶する。6400msの間におけるX軸モータ71の50ms毎の駆動電流i(即ち、i0 、i1 、・・i127 )のデータを、フラッシュメモリ53の駆動電流に対応するデータ領域に記憶する。
[合計発熱量の分配]
 以下に示す合計発熱量QTの分配方法は、ナット移動範囲81b、前側軸部81a、後側軸部81cにおいて互いに他の部分への熱伝導が生じず、熱的には近似的に独立しているとみなす。合計発熱量QTに対する発熱部(軸受18、19とナット部8a)の発熱量の比率は送り速度の変化に関係なく、ほぼ一定であるとする。
 所定期間(6400ms間)の前側軸部18aの発熱量QF とナット移動範囲81bの発熱量QN と後側軸部18cの発熱量QBの内、発熱量QN 、QB は次式を用いて演算することができる。
    QN =ηN ×QT
    QB =ηB ×QT
 比率ηNは、合計発熱量QT に対するナット移動範囲81bの発熱量QNの比率である。比率ηBは、合計発熱量QT に対する後側軸部18cの発熱量QBの比率である。比率ηN 、ηB は前述の通り一定である。故に、実機でQN 、QB を測定し、比率ηN 、ηB を予め求めておく。
[X軸モータのモータ本体の温度と発熱量QF の演算]
 X軸モータ71のモータ本体の温度と前側軸部18aの発熱量QF の演算方法について説明する。図7を参照して、モータ本体の温度変化について説明する。X軸モータ71の回転速度ω、駆動電流iは一定とする。工作機械Mの駆動を開始すると、モータ本体温度ΘM は曲線150を描きながら上昇し、一定の温度で飽和する。該飽和時の温度を飽和温度L1aという。飽和温度L1aは、次の式で表すことができる。
    L1a=K2 ・ω+K3 ・i2  ・・・(2)
2 、K3 はサーボモータ固有の定数である。ωはモータ回転速度である。i はX軸モータ71の駆動電流である。
 モータ本体温度ΘM の上昇を示す曲線150は次の式で表すことができる。
    ΘM =L1a・{1 -exp(-γ・t)} ・・・(3)
 γはX軸モータ71に固有の定数である。tは駆動開始からの経過時間である。モータ本体温度ΘM が飽和温度L1aに達した後(図7ではt=8時間の時点)工作機械Mを停止すると、モータ本体温度ΘM は曲線151を描きながら下降する。曲線151は次式で表すことができる。
    ΘM =L1a・exp(-γ・t) ・・・(4)
 γはサーボモータ固有の定数である。tは駆動停止からの経過時間である。
 工作機械Mの駆動開始からa分後のモータ本体温度ΘM1a は、(3)式に基づいて次の式で表すことができる。
    ΘM1a =L1a・{1-exp(-γ・a/60)}
 工作機械Mの駆動停止からa分後のモータ本体温度ΘM-1aは、(4)式に基づいて次の式で表すことができる。
    ΘM-1a=L1a・exp(-γ・a/60)
 以上では、X軸モータ71の回転速度ωと駆動電流iを一定とした場合のモータ本体の温度変化について説明したが、実際の工作機械Mの駆動時には、X軸モータ71の回転速度ωと駆動電流iが一定とは限らない。故に、本実施例では所定期間(6400ms)毎に、実際の回転速度ωと駆動電流i(50ms毎に実測した回転速度と駆動電流の夫々の平均値)から、式(2)を用いてX軸モータ71の飽和温度を演算する。本実施例では飽和温度と経過時間から、上記式(3)および式(4)を用いて、モータ本体の温度変化を演算する。本実施例では以下のように、演算した温度変化を加算することでモータ本体の温度を演算する。
 図8を参照して、モータ本体の温度の演算方法について説明する。以下の説明では、工作機械Mの駆動開始後、時刻t1、t2、・・・(分)と時間が経過したものとして説明する。時刻0、t1、t2、・・・の夫々の間隔は夫々の処理における経過時間である。
 モータ本体温度ΘM は上記経過時間中は前述の式(3)に従って上昇し、その後式(4)に従って低下するものとする。図8(A)に示すように、時刻0から時刻t1までの間の経過時間に基づくモータ本体温度ΘMt1 は時刻0から時刻t1までは上昇し、時刻t1を過ぎると下降する曲線301を描く。モータ本体温度ΘMt1 の時刻t1における値ΘMt1-1 は式(3)に従って、以下のように演算できる。
    ΘMt1-1 =Lt1・{1-exp(-γ・t1/60)}
 Lt1は時刻0~t1間のX軸モータ71の実際の回転速度ωと駆動電流iから演算した飽和温度である。
 モータ本体温度ΘMt1 は時刻t1以後は式(4)に従って低下するので、時刻t2におけるモータ本体温度ΘMt1 の値ΘMt1-2 は以下のように演算できる。
    ΘMt1-2 =ΘMt1-1 ・exp{-γ・(t2-t1)/60}
 同様に、時刻t3、t4におけるモータ本体温度ΘMt1 の値ΘMt1-3 、ΘMt1-4 も式(4)に従って、夫々以下のように演算できる。
    ΘMt1-3 =ΘMt1-1 ・exp{-γ・(t3-t1)/60}
    ΘMt1-4 =ΘMt1-1 ・exp{-γ・(t4-t1)/60}
 図8(B)に示すように、時刻t1~t2までの間の経過時間に基づくモータ本体温度ΘMt2 は時刻t1~t2までは上昇し、時刻t2を過ぎると下降する曲線302を描く。時刻t1~t2までの間のX軸モータ71の実際の回転速度ωと駆動電流iから飽和温度Lt2が演算できるので、時刻t2、t3、t4におけるモータ本体温度ΘMt2-1 、ΘMt2-2 、ΘMt2-3 は式(3)及び式(4)を用いて、夫々以下のように演算できる。
   ΘMt2-1 =Lt2・[1-exp{-γ・(t2-t1)/60}]
   ΘMt2-2 =ΘMt2-1 ・exp{-γ・(t3-t2)/60}
   ΘMt2-3 =ΘMt2-1 ・exp{-γ・(t4-t2)/60}
 図8(C)に示すように、時刻t2~t3までの経過時間に基づくモータ本体温度ΘMt3 は時刻t2~t3までは上昇し、時刻t3を過ぎると低下する曲線303を描く。前述のΘMt1 とΘMt2 の場合と同様にして、時刻t3、t4、t5におけるモータ本体温度ΘMt3-1 、ΘMt3-2 、ΘMt3-3 を演算する。
 前述のようにして演算したモータ本体温度ΘMt1 、ΘMt2 、ΘMt3 ・・・の各時刻における値を加算して、実際のモータ本体温度Θを演算する。例えば、時刻t1、t2、t3時のモータ本体温度ΘMt1 、ΘMt2 、ΘMt3 を演算したとする。この場合、時刻t1におけるモータ本体温度Θの値α1 はΘMt1-1 である。時刻t2におけるモータ本体温度Θの値α2 はΘMt1-2 +ΘMt2-1 である。時刻t3におけるモータ本体温度Θの値α3 はΘMt1-3 +ΘMt2-2 +ΘMt3-1 である。同様に、各時刻におけるモータ本体温度Θの値を演算すると、モータ本体温度Θは図8(D)に示す曲線304で例示するように変化する。
 本実施例では次式(5)に従って、前述のように演算したモータ本体温度Θを用いて、前側軸部18aの発熱量QF を演算する。
    QF =K4 (Θ-ΘS ) ・・・(5)
 QF は所定期間(6400ms間)の前側軸部18aの発熱量である。K4 は係数である。ΘS はボール螺子シャフト端部81e(図5参照)の温度である。本実施例では説明を簡単にする為に、前回の処理で演算した区間1の右区切り位置の温度θ1 の値をΘS として用いるものとする。
[ナット移動範囲における各区間への発熱量の分配]
 ナット移動範囲81bの発熱量QN を5つの区間に分配する。フラッシュメモリ53のデータ領域が記憶する区間毎の発熱量Q1 ~Q5 と合計発熱量QT から、次式に従って、発熱量QN を5つの区間1~5に分配する為の分配比率X1 ~X5 を演算する。
 X1 =区間1の発熱量Q1 / QT
             :
 X5 =区間5の発熱量Q5 / QT
 上記式で演算した各区間への分配比率X1 ~X5 とナット移動区間81bの発熱量QN から、次式に従って、区間1~5の夫々に対して分配する分配発熱量QN1~QN5を演算する。
  QN1=X1 ×QN
    :
  QN5=X5 ×QN
 図9に示すように、上記の結果を用いて区間1~5の夫々に対する総分配発熱量を表すことができる。具体的には、区間1に対する総分配発熱量は前側軸部18aの発熱量QF に発熱量QN1を加えた発熱量となる。区間2~区間4に対する総分配発熱量は夫々発熱量QN2~発熱量QN4である。区間5に対する総分配発熱量は後側軸部81cの発熱量QB に発熱量QN5を加えた発熱量となる。
[温度分布の演算]
 本実施例では以上のようにして5つの区間1~5の夫々の総分配発熱量(図9参照)を求めた後、該総分配発熱量から温度分布を演算する。温度分布は初期条件{θ}t=0 、d{θ}/ dtt=0 の下で次式(6)の非定常熱伝導方程式を解くことで演算する。
 [C]d{θ}/ dt+[H]{θ}+{Q}=0 ・・・ (6)
 [C]は熱容量マトリックス、[H]は熱伝導マトリックス、{θ}は温度分布、{Q}は入出力する発熱量マトリックス、tは時間である。
 熱容量マトリックス[C]はボール螺子機構で決まる固定値であり、次式のように表すことができる。
Figure JPOXMLDOC01-appb-M000001
 熱容量マトリックス[C]の要素C1 ~C5 は夫々所定の定数である。
 温度分布に相当する温度上昇マトリックス{θ}、ボール螺子シャフト81の回転速度ω、X軸モータ71の電流値から演算する発熱量マトリックス{Q}は夫々次式のように表すことができる。
Figure JPOXMLDOC01-appb-M000002
 但し、Q1はQF+QN1であり、QはQN2であり、QはQN3であり、QはQN4であり、QはQN5+Qである。
 熱伝導マトリックス[H]は第1熱伝導マトリックス[K]とマトリックス[HF ]から、次式(7)のように示すことができる。第1熱伝導マトリックス[K]は分割した区間の形状、材質で決まる。マトリックス[HF ]はX軸モータ71が駆動するボール螺子シャフト81の回転速度で変化する。本実施例では、ボール螺子シャフト81の回転速度はX軸モータ71の回転速度ωと等しいものとする。
Figure JPOXMLDOC01-appb-M000003
 第1熱伝導マトリックス[K]の要素k11~k55は夫々ボール螺子機構で決まる所定の定数である。マトリックス[HF ]は放熱関数h(ω)と第2熱伝導マトリックス[hF ]から、次式(8)のように表すことができる。
放熱関数h(ω)はボール螺子シャフト81の回転速度ωをパラメータとする放熱の効果を表す関数である。 
Figure JPOXMLDOC01-appb-M000004
 第2熱伝導マトリックス[hF ]の要素hf1~hf5は夫々ボール螺子機構で決まる所定の定数である。放熱関数h(ω)は次式(9)のように表すことができる。
   h(ω)=aω+b ・・・(9)
 式(9)のa、bは予め実験で求めた値を近似して図11に例示するような特性図を作成することで、演算することができる。
 式(6)の非定常熱伝導方程式をボール螺子シャフト81の駆動による放熱特性を考慮して変形すると、次式(10)のように表すことができる。
Figure JPOXMLDOC01-appb-M000005
 時間t=0の初期温度上昇{θ}を演算する際、初期温度上昇{θ}を{θ}t=0 とし、演算周期をt=Δt(例えば、Δt=50ms)として次のように定義する。
 t=0~Δtの入力熱量を{Q}t=0 、平均速度ωt=0 、h(ωt=0 )
 t=Δt~2Δtの入力熱量を{Q}t=Δt 、平均速度ωt=Δt 、h(ωt=Δt )
 t=nΔt~(n+1)Δtの入力熱量を{Q}t= nΔt 、平均速度ωt= nΔt 、h(ωt= nΔt )
 式(10)の右辺に、t=0における{θ}t=0 及び{Q}t=0 を代入すると、t=0における温度上昇速度を演算することができる。
Figure JPOXMLDOC01-appb-M000006
 図12に示すように、t=0における温度上昇速度d{θ}/ dtt=0 を用いて{θ}t=Δt を演算できる。次に、{θ}t=Δt と式(10)を次のように置き換える。
 {θ}t=0  ⇒ {θ}t=Δt
 h(ωt=0 )⇒ h(ωt=Δt )
 {Q}t=0  ⇒ {Q}t=Δt
 このように式(10)を変形した式から、同様にt=Δtにおける温度上昇速度d{θ}/ dtt=Δt を演算する。前記のように求めた温度上昇速度d{θ}/ dtt=Δt を用いて{θ}t= 2Δt を演算する。同様の演算を繰り返すことで、{θ}t= 3Δt 、{θ}t=4Δt 、・・・ と各時間の温度上昇、即ち温度分布{θ}を演算する。
[熱変位量の演算]
 図9に示すように、ボール螺子シャフト81の5つの区間の温度θ1 ~θ5 を求めてから、該温度θ1 ~θ5 に基づいて、ボール螺子シャフト81の5つの区間区切り位置(図9のθ1 ~θ5 に対応する位置)の熱変位量を演算する。5つの区間区切り位置の熱変位量は次式(11)から演算することができる。
 ΔL=∫L 0 β×θ(L)dL ・・・ (11)
 ΔLは熱変位量である。βはシャフト材料の線膨張係数である。
 積分記号は0~Lの範囲についての積分を示し、Lは5つの区間に関する区間区切り位置までの長さを示す。各区間1~5の長さを100mmとすると、0~100、0~200、0~300、・・等の範囲についての積分を示す。
[補正量の演算]
 図10はボール螺子シャフト81のナット移動範囲81bを20mm間隔で分割した補正区間1~15を示す。ピッチ誤差補正量の補正は補正区間毎に行う。本実施例ではナット部8aの移動範囲がX0~X300(300mmの範囲)であり、各補正区間の長さが20mmであるので、15個の補正区間がある。各補正区間に対応するピッチ誤差補正量を規定するピッチ誤差補正量のテーブルは、前述したように、予めフラッシュメモリ53に記憶してある。
 本実施例ではボール螺子シャフト81の5つの区間1~5の区切り位置の熱変位量を演算してから、15個の補正区間のピッチ誤差補正量を夫々補正する為の補正量を演算する。
 図13を参照して、各区間のピッチ誤差補正量を補正する為の補正量の演算方法について説明する。図13のグラフの縦軸は固定軸受18の位置を基準とする熱変位量を示す。上側のグラフの横軸は固定軸受18を基準とするボール螺子シャフト81の各部の位置(ボール螺子シャフトの長さ)を示す。グラフの下側の横軸は15個の補正区間の区切り位置(X0、X20・・・、X300)を示す。
    DF1は区間1における熱変位量。
    DF2は区間1と区間2における熱変位量の合計。
            :
    DF5は区間1~区間5における熱変位量の合計。
 本実施例では15個の補正区間の区切り位置(X20、・・・、X300)の補正量を次式から演算する。
[補正量演算式]
 X0の補正量=(区間1の熱変位量)+(区間2の熱変位量)×{(区間2の左区切り位置とX0間の長さ)/(区間2の長さ)
 X20の補正量=(区間1の熱変位量)+(区間2の熱変位量)×{(区間2の左区切り位置とX20間の長さ)/(区間2の長さ)}-(X0の補正量)
 X40の補正量=(区間1の熱変位量)+(区間2の熱変位量)×{(区間2の左区切り位置とX40間の長さ)/(区間2の長さ)}-(X20の補正量)
 X60の補正量=(区間1の熱変位量)+(区間2の熱変位量)×{(区間2の左区切り位置とX60間の長さ)/(区間2の長さ)}-(X40の補正量)
 X80の補正量=(区間1の熱変位量)+(区間2の熱変位量)×{(区間2の左区切り位置とX80間の長さ)/(区間2の長さ)}-(X60の補正量)
                  :
 X300の補正量=(区間1の熱変位量)+(区間2の熱変位量)+(区間3の熱変位量)+(区間4の熱変位量)+(区間5の熱変位量)×{(区間5の左区切り位置とX300間の長さ)/(区間5の長さ)}-(X280の補正量)
 図14のフローチャートを参照して、数値制御装置50のCPU51が実行する熱変位補正制御処理について説明する。図中Si(i=1、2・・・)は各ステップを示す。該熱変位補正制御処理は以上に説明した熱変位補正方法の内容と重複する部分が多いので、簡単に説明する。CPU51はワークの加工を、該熱変位補正制御処理と並行的に実行する。
 CPU51は最初に初期設定を実行する(S1)。CPU51は該初期設定において、パラメータ等の設定データから有限要素法による演算に必要なマトリックスの設定、雰囲気温度(例えば、室温)の設定をする。CPU51はボール螺子シャフト81の端部81eから端部81fまでの区間を5つの区間1~5(図5参照)に分割する(S2)。
 CP51はカウンタIを0に設定する(S3)。CPU51はX軸送りデータとエンコーダ71aの検出信号を読み込む(S4)。CPU51は区間1~5の50ms毎の発熱量とモータ本体温度Θを演算して、フラッシュメモリ53の所定のデータ領域に記憶する(S5)。CPU51はX軸モータ71の回転速度ωのデータもフラッシュメモリ53に記憶する。
 CPU51はカウンタIを「1」増加する(S6)。CPU51は、カウンタIのカウンタ値が「127」であるか否かを判定する(S7)。CPU51は、カウンタ値が「127」より小さい間は(S7:No)、ステップS4へ戻ってステップS4~S6の処理を繰り返す。CPU51は、カウンタ値が「127」になると(S7:Yes)、ステップS8の処理へ移行する。CPU51は、6400ms間の区間1~5の区間毎の発熱量Q1 ~Q5 と該発熱量Q1 ~Q5を合計した合計発熱量QT を演算する(S8)。CPU51は発熱量Q1 ~Q5 と合計発熱量QT をフラッシュメモリ53の所定のデータ領域に記憶する。
 CPU51は前側軸部18aの発熱量QF とナット移動区間81bの発熱量QN と後側軸部18cの発熱量QB を演算する(S9)。CPU51は該発熱量QF と発熱量QN と発熱量QB をフラッシュメモリ53の所定のデータ領域に記憶する。CPU51は発熱量QN から区間1~5の夫々に対して分配する分配発熱量QN1~QN5を演算する(S9)。CPU51は該分配発熱量QN1~QN5をフラッシュメモリ53の所定のデータ領域に記憶する。CPU51は区間1~5の夫々に対する総分配発熱量(図9参照)を演算する(S9)。CPU51は該総分配発熱量をフラッシュメモリ53の所定のデータ領域に記憶する。CPU51は発熱量QFを演算する場合、フラッシュメモリ53が記憶している所定期間(6400ms)の128個のモータ本体温度Θの平均値をモータ本体温度Θとして用いる。CPU51は前回のθ1 をΘS として用いる。CPU51は図9に示す総分配発熱量に基づいて、区間1~5の上昇温度θ1 ~θ5 を演算する(S10)。CPU51は該上昇温度θ1 ~θ5 をフラッシュメモリ53に記憶する。
 CPU51は前記の(11)式に基づいて、5つの区間の区間区切り位置の熱変位量を演算する(S11)。CPU51は該熱変位量をフラッシュメモリ53に記憶する。CPU51は前述した補正量演算式に基づいて、15個の補正区間区切り位置における補正量を演算する(S12)。CPU51はステップS12において演算した該補正量を用いて、ピッチ誤差補正量に対する補正処理を実行する(S13)。該ピッチ誤差補正量は15個の補正区間区切り位置に対して予め設定し、ピッチ誤差補正量のテーブルに記憶してある。CPU51は補正処理した該ピッチ誤差補正量に基づいて、送り量補正処理を実行する。CPU51は熱変位補正の処理を終了するか否を判定する(S14)。CPU51は熱変位補正の処理を終了しない場合(S14:No)、ステップS3へ戻り、ステップS3以降の処理を繰り返し実行する。CPU51は熱変位補正の処理を終了する場合(S14:Yes)、図14に示す制御処理を終了する。
 図15のフローチャートを参照して、熱変位補正制御処理(図14参照)のステップS12の補正量演算処理について説明する。該補正量演算処理はピッチ誤差補正量を補正する補正量を演算する処理である。図中Si(i=20、21・・・)は各ステップを示す。CPU51はカウンタnを0にリセットする(S10)。CPU51は位置Xnの補正量ΔMnを次式により演算する(S21)。
 ΔMn =DF+ΔDn×{(Xn-XF)/Ln}-ΔMn-20
 上記式は、前述した補正量演算式を簡単に表した式である。DFは位置Xnよりも固定軸受18側の演算区間で発生した熱変位量の合計である。ΔDnは位置Xnを含む演算区間で発生した熱変位量である。XF は位置Xnを含む演算区間の左区切り位置である。Lnは位置Xnを含む演算区間の長さである。ΔM0を演算する場合に用いるΔM-20 は0とする。CPU51は最初に上記式に従って、位置X0(n=0)の補正量ΔM0 を演算する。
 CPU51はnを20増加する(S22)。CPU51はnが320であるか否か判定する(S23)。nが320でない場合(S23;No)、CPU51は位置X300までの補正量についての演算を終了していないものと判定する。CPU51はステップS21へ戻って位置Xnの補正量ΔMnを演算する。CPU51は位置X300の補正量ΔM300を演算するまで、ステップS21~S23の処理を繰り返し実行する。CPU51は補正量ΔM300を演算する(S21)。CPU51がnを20増加すると(S22)、nは320となる(S23;Yes)。CPU51は図15に示す処理を終了して、図12のステップS14の処理へ移行する。
 エンコーダ71aは「速度検出機器」に相当する。ステップS3~S7の処理を実行する数値制御装置50のCPU51は「発熱量演算部」に相当する。ステップS8~S10の処理を実行するCPU51は「温度分布演算部」に相当する。ステップS11の処理を実行するCPU51は「熱変位量演算部」にする。ステップS12の処理を実行するCPU51は「補正量演算部」に相当する。
 以上に説明した工作機械Mの熱変位補正方法及び熱変位補正装置(数値制御装置50)の作用及び効果について説明する。該方法及び装置は非定常熱伝導方程式の熱伝導マトリックスをボール螺子シャフト81の回転速度の増大に応じて放熱性が増加する特性に設定してある。該方法及び装置は所定時間毎に複数区間1~5の夫々の発熱量を演算する。該方法及び装置は該複数区間1~5の夫々の発熱量を所定期間分累積した発熱量Q1 ~Q5 を用いて、複数区間の夫々に対する分配発熱量を演算する。
 該方法及び装置は該分配発熱量と上記の非定常熱伝導方程式を用いて、複数区間の温度分布θ1 ~θ5 を演算する。該方法及び装置は該温度分布θ1 ~θ5 から複数区間の熱変位量DF1~DF5を演算する。該方法及び装置は該熱変位量DF1~DF5に基づいて、予め設定してあるピッチ誤差補正量を補正する為の補正量ΔM0 、ΔM20、ΔM40、・・・ΔM300 を演算する。該方法及び装置はボール螺子機構のボール螺子シャフト81の回転速度ωの増大に応じて増大する放熱性を考慮して、精度良く熱変位補正処理を行うことができる。
 前記熱伝導マトリックスはX軸モータ71の回転速度ωが増加するのに応じて増加する放熱関数h(ω)を含む。故に、該方法及び装置はボール螺子シャフト81の回転速度に対応した放熱量を反映した熱変位量を求め、精度良く熱変位補正を行うことができる。前記熱伝導マトリックスはボール螺子シャフト81の形状及び材質を反映する第1熱伝導マトリックスと前記ボール螺子機構の構造を反映する第2熱伝導マトリックスと該第2熱伝導マトリックスに乗算する前記放熱関数を含む。故に、該方法及び装置は上記の諸項目とボール螺子シャフト81の回転速度を非定常熱伝導方程式に反映することができる。
 次に、前記実施例を部分的に変更した変更例について説明する。
 [1]放熱関数h(ω)はボール螺子シャフト81の回転速度の増大に応じて周囲に放熱する放射熱量を反映できるものであれば良い。放熱関数h(ω)は例えば次の2つの式のうちいずれか一方を用いてもよい。
   h(ω)=aω2 +b
   h(ω)=a・(1-exp(-ω/b))+c
 [2]図16(a)に示すように、放熱関数h(ω)は近似式ではなく、回転速度ωとh(ω)の値との対応関係を設定したデータに基づいてもよい。図16(b)に示すように、放熱関数h(ω)としてデータを用いる場合、回転速度ωによる区切りは不等間隔であってもよい。放熱関数h(ω)としてデータを用いる場合、近似式の場合に必要な演算処理は不要である。
 [3]熱変位補正方法及び熱変位補正装置はピッチ誤差補正とは独立に、熱変位量に基づいて、複数の補正区間毎に加工プログラムの制御データを補正してもよい。
 [4]発熱量を演算する演算周期は必ずしも50msでなくてもよい。熱変位量に基づく補正を行う所定期間は6400msではなく、数十秒単位であってもよい。

Claims (6)

  1.  シャフトとナットとを備える送り駆動用ボール螺子機構と、前記シャフトを回転駆動するサーボモータと、前記サーボモータを制御データに基づき制御する制御部とを有する工作機械の熱変位補正方法において、
     前記シャフトの全長を複数に分割した複数区間に夫々発生する発熱量を、前記サーボモータの回転速度と前記制御データとに基づいて、第一所定時間毎に求める第1ステップと、
     前記複数区間に夫々発生した前記発熱量を前記複数区間毎に前記第一所定時間より長い第二所定時間分累積した合計発熱量と、前記シャフトの回転速度の増大に応じて放熱性が増加する特性に設定した熱伝導マトリックスを含む非定常熱伝導方程式とに基づいて、前記複数区間の温度分布を前記第二所定時間毎に演算する第2ステップと、
     前記温度分布から、前記複数区間の夫々の熱変位量を前記第二所定時間毎に演算する第3ステップと、
     前記複数区間の夫々の前記熱変位量に基づいて、前記シャフトのナット移動範囲を複数に分割した複数の補正区間毎に前記制御データを夫々補正する為の補正量を前記第二所定時間毎に演算する第4ステップと、
     を備えた工作機械の熱変位補正方法。
  2.  前記熱伝導マトリックスは、前記サーボモータの前記回転速度が増加するのに応じて増加する放熱関数を含む請求項1に記載の工作機械の熱変位補正方法。
  3.  前記熱伝導マトリックスは、前記シャフトの形状と材質を反映する第1熱伝導マトリックスと、前記ボール螺子機構の構造を反映する第2熱伝導マトリックスと、前記第2熱伝導マトリックスに乗算する前記放熱関数とを含む請求項2に記載の工作機械の熱変位補正方法。
  4.  シャフトとナットとを備える送り駆動用ボール螺子機構と、前記シャフトを回転駆動するサーボモータと、前記サーボモータを制御データに基づき制御するための制御部とを有する工作機械の熱変位補正装置において、
     前記サーボモータの回転速度を検出する速度検出機器と、
     前記シャフトの全長を複数に分割した複数区間に夫々発生する発熱量を、前記サーボモータの回転速度と前記制御データとに基づいて、第一所定時間毎に求める発熱量演算部と、
     前記複数区間に夫々発生した前記発熱量を前記複数区間毎に前記第一所定時間より長い第二所定時間分累積した合計発熱量と、前記シャフトの回転速度の増大に応じて放熱性が増加する特性に設定した熱伝導マトリックスを含む非定常熱伝導方程式とに基づいて、前記複数区間の温度分布を前記第二所定時間毎に演算する温度分布演算部と、
     前記温度分布から、前記複数区間の夫々の熱変位量を前記第二所定時間毎に演算する熱変位量演算部と、
     前記複数区間の夫々の前記熱変位量に基づいて、前記シャフトのナット移動範囲を複数に分割した複数の補正区間毎に前記制御データを夫々補正する為の補正量を前記第二所定時間毎に演算する補正量演算部と、
     を備えた工作機械の熱変位補正装置。
  5.  前記熱伝導マトリックスは、前記サーボモータの前記回転速度が増加するのに応じて増加する放熱関数を含む請求項4に記載の工作機械の熱変位補正装置。
  6.  前記熱伝導マトリックスは、前記シャフトの形状及び材質を反映する第1熱伝導マトリックスと、前記ボール螺子機構の構造を反映する第2熱伝導マトリックスと、前記第2熱伝導マトリックスに乗算する前記放熱関数とを含む請求項5に記載の工作機械の熱変位補正装置。
PCT/JP2010/064332 2009-08-28 2010-08-25 工作機械の熱変位補正方法及び熱変位補正装置 WO2011024833A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201080037052.6A CN102481673B (zh) 2009-08-28 2010-08-25 机床的热变位修正方法及热变位修正装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009198379A JP5397096B2 (ja) 2009-08-28 2009-08-28 数値制御式工作機械の熱変位補正方法及びその熱変位補正装置
JP2009-198379 2009-08-28

Publications (1)

Publication Number Publication Date
WO2011024833A1 true WO2011024833A1 (ja) 2011-03-03

Family

ID=43627933

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/064332 WO2011024833A1 (ja) 2009-08-28 2010-08-25 工作機械の熱変位補正方法及び熱変位補正装置

Country Status (3)

Country Link
JP (1) JP5397096B2 (ja)
CN (1) CN102481673B (ja)
WO (1) WO2011024833A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5910331B2 (ja) * 2012-06-07 2016-04-27 株式会社ジェイテクト 位置決め装置
JP5956497B2 (ja) 2014-04-08 2016-07-27 ファナック株式会社 機械の熱変位補正装置
JP6432424B2 (ja) * 2015-03-31 2018-12-05 ブラザー工業株式会社 工作機械及び演算方法
CN105867303A (zh) * 2016-04-18 2016-08-17 安徽省捷甬达智能机器有限公司 一种参考误差的机床温差补偿***
JP6877989B2 (ja) * 2016-12-22 2021-05-26 オークマ株式会社 工作機械の温度推定方法及び熱変位補正方法
CN109709894B (zh) * 2019-01-18 2022-02-08 汪祖兵 一种数控机床热误差软件补偿方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10138091A (ja) * 1996-11-11 1998-05-26 Fanuc Ltd 工作機械の熱変位補正方法
JP2002018677A (ja) * 2000-07-06 2002-01-22 Fanuc Ltd 工作機械の熱変位補正方法
JP2004042260A (ja) * 1994-06-16 2004-02-12 Mori Seiki Hitech Co Ltd 工作機械の熱変位補正方法及びその装置
JP2009214283A (ja) * 2008-03-13 2009-09-24 Brother Ind Ltd 工作機械の熱変位補正方法、熱変位補正装置及びその熱変位補正用プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3792266B2 (ja) * 1994-06-16 2006-07-05 森精機興産株式会社 工作機械の熱変位補正方法及びその装置
JP4470929B2 (ja) * 2006-09-20 2010-06-02 株式会社ジェイテクト ボールねじの熱変位補正装置
JP5447750B2 (ja) * 2006-12-14 2014-03-19 国立大学法人福井大学 稼動中のボールネジにおける温度分布算定方法及び当該方法に基づく変位補正方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004042260A (ja) * 1994-06-16 2004-02-12 Mori Seiki Hitech Co Ltd 工作機械の熱変位補正方法及びその装置
JPH10138091A (ja) * 1996-11-11 1998-05-26 Fanuc Ltd 工作機械の熱変位補正方法
JP2002018677A (ja) * 2000-07-06 2002-01-22 Fanuc Ltd 工作機械の熱変位補正方法
JP2009214283A (ja) * 2008-03-13 2009-09-24 Brother Ind Ltd 工作機械の熱変位補正方法、熱変位補正装置及びその熱変位補正用プログラム

Also Published As

Publication number Publication date
JP2011045987A (ja) 2011-03-10
CN102481673A (zh) 2012-05-30
CN102481673B (zh) 2014-05-21
JP5397096B2 (ja) 2014-01-22

Similar Documents

Publication Publication Date Title
KR101074206B1 (ko) 공작 기계의 열변위 보정 방법, 열변위 보정 장치 및 열변위 보정용 프로그램을 기억한 컴퓨터 판독 가능한 매체
US8240060B2 (en) Methods and apparatus for compensating temperature-dependent changes of positions on machine tools
WO2011024833A1 (ja) 工作機械の熱変位補正方法及び熱変位補正装置
JP3887197B2 (ja) Nc工作機械の補正装置
US9317084B2 (en) Thermal displacement compensating device and method for a machine tool
WO2011024840A1 (ja) 工作機械の熱変位補正方法及び熱変位補正装置
JP6592143B2 (ja) 電動機の制御装置
JP5206555B2 (ja) 数値制御式工作機械及びその熱変位補正方法
JP2006281420A (ja) Nc工作機械の熱変位補正方法
JP5224177B2 (ja) 工作機械の熱変位補正方法及び熱変位補正装置
WO2011024838A1 (ja) 工作機械の熱変位量補正方法及び熱変位量補正装置
JP2010082724A (ja) 工作機械の熱変位補正装置及び熱変位補正方法
JP5786436B2 (ja) 数値制御装置および加工方法
JP5334932B2 (ja) パラメータ設定方法およびパラメータ設定装置
JP2004154907A (ja) 多軸工作機械の熱変位補正方法および装置
JP6582522B2 (ja) 工作機械、演算方法及びコンピュータプログラム
JP7238839B2 (ja) 補正係数の導出方法及び工作機械
JP5169946B2 (ja) 数値制御式工作機械及びその熱変位補正方法
KR101867226B1 (ko) 머시닝센터에 구비되는 볼스크류의 열변위 보정장치 및 방법
JP7319627B2 (ja) 付加加工装置、付加加工装置の制御方法、および、付加加工装置の制御プログラム
JP5400190B2 (ja) 位置決め精度の設定方法、位置決め精度設定装置および位置決め精度の設定プログラム
JP6432424B2 (ja) 工作機械及び演算方法
JP5805268B1 (ja) 工作機械の変位補正方法および工作機械の制御装置
KR20050098208A (ko) 온도 보상장치가 구비된 공작기계
JP2017209755A (ja) 刃物台の熱変位補正方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080037052.6

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10811882

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10811882

Country of ref document: EP

Kind code of ref document: A1