Numerical control device, identification method, and identification program

The numerical control device improves parameter identification accuracy by using a drive torque model to cancel torsional torque effects, allowing precise determination of moment of inertia and eccentric load in tandem position control.

JP2026115106APending Publication Date: 2026-07-09BROTHER KOGYO KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
BROTHER KOGYO KK
Filing Date
2024-12-27
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

Existing numerical control devices face challenges in accurately identifying moment of inertia and eccentric load due to the influence of torsional torque when tandem position control is used, leading to reduced accuracy in parameter identification.

Method used

A numerical control device that controls the position of a table holding a workpiece using two motors, applies drive torque and inclination angle to a drive torque model to identify moment of inertia and eccentric load, canceling out the influence of torsional torque by using drive torque and inclination angle to improve accuracy.

Benefits of technology

The solution effectively suppresses the impact of torsional torque, enabling precise identification of moment of inertia and eccentric load, thereby enhancing the accuracy of parameter identification in tandem position control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026115106000001_ABST
    Figure 2026115106000001_ABST
Patent Text Reader

Abstract

The present invention provides a numerical control device, an identification method, and an identification program that can accurately identify the moment of inertia and eccentric load while suppressing the effects of torsional torque. [Solution] In machine tools, determining control parameters for high-speed and high-precision control requires physical parameters such as the moment of inertia related to the machine tool. The numerical control device controls the A-axis head holding the workpiece to a predetermined angle by controlling the A-axis motors. The CPU applies the drive torque and tilt angle to the drive torque model and identifies the moment of inertia and the eccentric load (S219).
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a numerical control device, an identification method, and an identification program. [Background technology]

[0002] In machine tools, determining control parameters for high-speed and high-precision control requires parameters such as the moment of inertia and uneven load of the machine being controlled. The numerical control device described in Patent Document 1 drives and controls the table of a machine tool with a single motor. The numerical control device identifies parameters by applying the torque output to the motor based on the driving conditions and the return value from the motor's encoder to the transmission model of the machine tool.

[0003] On the other hand, tandem control is known as a method of driving one movable member with two motors. The numerical control device described in Patent Document 2 performs position tandem control as an example of tandem control. Position tandem control controls each motor by sending the same position command to both motors. [Prior art documents] [Patent Documents]

[0004] [Patent Document 1] Japanese Patent Publication No. 2024-5673 [Patent Document 2] Japanese Patent Publication No. 2001-273037 [Overview of the project] [Problems that the invention aims to solve]

[0005] For example, in the machine tool described in Patent Document 1, there are cases where it is desirable to drive the table by controlling the position of two motors in tandem, as described in Patent Document 2. In this case, with tandem position control, torsional torque may be generated in the table drive mechanism due to errors in the static accuracy between the motor axes. If the parameter identification method described in Patent Document 1 is applied as is, the accuracy of identifying parameters such as moment of inertia and eccentric load may deteriorate due to the influence of torsional torque.

[0006] The object of the present invention is to provide a numerical control device, an identification method, and an identification program that can accurately identify the moment of inertia and eccentric load while suppressing the effects of torsional torque. [Means for solving the problem]

[0007] The numerical control device according to claim 1 controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor. The numerical control device includes a first identification unit. The first identification unit applies the drive torque and the inclination angle of the table to a drive torque model and identifies the moment of inertia and the eccentric load. The drive torque is the sum of the torque of the first motor and the torque of the second motor. The drive torque model is for estimating the torques of the first motor and the second motor.

[0008] In the identification process using the above numerical control device, the influence of torsional torque is canceled out by using the drive torque in identifying the moment of inertia and the uneven load. Therefore, the numerical control device can suppress the influence of torsional torque and accurately identify the moment of inertia and the uneven load.

[0009] In the numerical control device according to claim 2, the tilt angle may be an internal value obtained by dividing the first return value for the first motor and the second return value for the second motor by a predetermined ratio. The numerical control device can improve the accuracy of identifying the moment of inertia and the eccentric load by applying the average value of the rotation angle.

[0010] In the numerical control device of claim 3, the first motor and the second motor may be rotationally controlled based on the same angle command. Even when the numerical control device rotationally controls the first motor and the second motor based on the same angle command, it can identify the moment of inertia and the eccentric load without being affected by torsional torque.

[0011] In the numerical control device according to claim 4, the first identification unit may further identify a reference angle, which is the angle of the table at which the eccentric load becomes zero. The numerical control device can identify the reference angle in addition to the moment of inertia and the eccentric load.

[0012] The numerical control device according to claim 5 may include a second identification unit. The second identification unit may apply the torsional torque and the inclination angle to a torsional torque model to identify the parameters of the torsional torque model. The torsional torque may be obtained by subtracting the torque of the second motor from the torque of the first motor. The torsional torque model may be for estimating the torsional torque. The numerical control device can accurately identify the parameters of the torsional torque model.

[0013] In the numerical control device of claim 6, the torsional torque model may include information about torsion. The torsional information may be torsional information proportional to the acceleration components of the first motor and the second motor. The torsional information may be torsional information proportional to the velocity components of the first motor and the second motor. The torsional information may be torsional information corresponding to the sign of the rotation direction. The torsional information may be torsional information proportional to the trigonometric function components. The numerical control device can accurately identify the parameters of the torsional torque model with a simple model.

[0014] The identification method of claim 7 is a numerical control device that controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor, and identifies the moment of inertia and the biased load for determining the angle commands to the first motor and the second motor. The identification method comprises a first identification step. The first identification step applies the drive torque and the inclination angle of the table to a drive torque model and identifies the moment of inertia and the biased load. The drive torque is the sum of the torque of the first motor and the torque of the second motor. The drive torque model is for estimating the torques of the first motor and the second motor.

[0015] The above identification method achieves the same effects as the numerical control device of claim 1.

[0016] The identification program of claim 8 is a numerical control device that controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor, and identifies the moment of inertia and the biased load for determining the angle commands to the first motor and the second motor. The identification program comprises a first identification process. The first identification process applies the drive torque and the inclination angle of the table to a drive torque model and identifies the moment of inertia and the biased load. The drive torque is the sum of the torque of the first motor and the torque of the two motors. The drive torque model is for estimating the torques of the first motor and the second motor.

[0017] The identification program achieves the same effect as the numerical control device of claim 1. [Brief explanation of the drawing]

[0018] [Figure 1] Perspective view of machine tool 1. [Figure 2] Perspective view of support device 8. [Figure 3] Plan view of support device 8. [Figure 4] A diagram showing the workpiece W fixed to the jig 201 in an off-center position relative to the B axis. [Figure 5]A diagram showing the workpiece W fixed to the jig 201 in a position that is not off-center relative to the B axis. [Figure 6] A block diagram showing the electrical configuration of the numerical control device 40 and the machine tool 1. [Figure 7] A functional block diagram showing the functions of the numerical control device 40. [Figure 8] Graphs showing angular velocity and angular acceleration curves when two-stage moving average filters FIR1 and FIR2 are applied. [Figure 9] A diagram showing the control systems for drive circuits 55M and 55S. [Figure 10] Flowchart of the main processing. [Figure 11] Flowchart of the identification process. [Figure 12] A graph showing the estimated error ed between the drive torque ud and the estimated drive torque ud. [Figure 13] A graph showing the estimated error et between the torsional torque ut and the estimated torsional torque ut. [Figure 14] A graph showing the evaluation results of the correction process. [Modes for carrying out the invention]

[0019] Embodiments of the present invention will be described with reference to the drawings. The following description will use the left / right, front / back, and up / down directions indicated by arrows in the drawings. The left / right direction, up / down direction, and front / back direction of the machine tool 1 are the X-axis direction, Y-axis direction, and Z-axis direction, respectively. The right direction, up direction, and rear direction are positive directions, respectively, while the left direction, rear direction, and down direction are negative directions, respectively. The machine tool 1 is a multi-function machine capable of cutting and turning.

[0020] Referring to Figures 1 to 3, the structure of machine tool 1 will be explained. Machine tool 1 is a horizontal type with a spindle extending in the front-to-back direction. Machine tool 1 includes a base 2, an X-axis movement mechanism 16, a Z-axis movement mechanism 17, a Y-axis movement mechanism 18, a moving body 15, a vertical column 5, a spindle head 6, a support device 8, a tool changer 9, a control box (not shown), a numerical control device 40 as shown in Figure 6, etc.

[0021] Base 2 is a roughly rectangular parallelepiped structure that is long in the front-to-back direction. Base 2 includes the main shaft base 12, left and right columns 7, 7, right-side base 13, left-side base 14, etc. The main shaft base 12 is a roughly rectangular parallelepiped that is long in the front-to-back direction. The main shaft base 12 is positioned at the rear of the upper surface of base 2.

[0022] The left and right pillars 7, 7 are positioned in the center of the base 2 in the front-to-back direction. The right pillar 7 is positioned at the right end of the base 2. The left pillar 7 is positioned at the left end of the base 2. The right base 13 is positioned at the upper right front of the base 2. The left base 14 is positioned at the upper left front of the base 2.

[0023] The X-axis movement mechanism 16 is positioned on the upper surface of the spindle base 12. The X-axis movement mechanism 16 includes an X-axis motor 61, etc., as shown in Figure 6. Driven by the X-axis motor 61, the X-axis movement mechanism 16 moves the Z-axis movement mechanism 17 in the X-axis direction.

[0024] The Z-axis movement mechanism 17 is positioned on the upper surface of the X-axis movement mechanism 16. The Z-axis movement mechanism 17 includes a Z-axis motor 62, as shown in Figure 6. Driven by the Z-axis motor 62, the Z-axis movement mechanism 17 moves the flat plate-shaped movable body 15 in the Z-axis direction.

[0025] The vertical column 5 extends upward from the movable body 15. The vertical column 5 moves on the base 2 in the X-axis and Z-axis directions by means of the X-axis movement mechanism 16, the Z-axis movement mechanism 17, and the movable body 15.

[0026] The Y-axis movement mechanism 18 is located on the vertical column 5. The Y-axis movement mechanism 18 includes a Y-axis motor 63, etc., as shown in Figure 6. The Y-axis movement mechanism 18 moves the spindle head 6 in the Y-axis direction by the drive of the Y-axis motor 63.

[0027] The spindle is located inside the spindle head 6. The front end of the spindle has a tool mounting hole. A tool can be mounted in the tool mounting hole. The spindle motor 66 is located at the rear end of the spindle head 6.

[0028] Therefore, the X-axis movement mechanism 16, the Z-axis movement mechanism 17, and the Y-axis movement mechanism 18 move the tool in the X-axis, Z-axis, and Y-axis directions together with the spindle head 6. The spindle rotates with the spindle motor 66. At this time, the tool on the spindle rotates.

[0029] A tool changer 9 is positioned between the upper ends of the left and right columns 7, 7. The tool changer 9 is positioned away from the vertical columns 5 and away from the spindle head 6. The tool changer 9 houses multiple tools to be mounted on the spindle. The numerical control device 40 raises and lowers the spindle head 6 using the Y-axis movement mechanism 18 to exchange tools between the tool changer 9 and the spindle.

[0030] The control box is mounted on the outer wall of the cover (not shown) of the machine tool 1. The control box houses the numerical control device 40. The numerical control device 40 controls the operation of the machine tool 1 based on the NC program.

[0031] The control panel 10 shown in Figure 6 is located on the outer wall surface of the cover of the machine tool 1. The control panel 10 comprises an operation unit 10A and a display unit 10B. The operation unit 10A is used to set various settings for the numerical control device 40. The display unit 10B displays various screens, messages, alarms, etc.

[0032] The support device 8 is fixed to the upper surfaces of the right base 13 and the left base 14. The support device 8 includes drive units 28M, 28S, A-axis base 20, turntable 29, B-axis drive unit 30, etc.

[0033] The drive unit 28M includes a support base 26M, an A-axis support 67M, an A-axis motor 65M, a reduction gear, etc. The bottom of the support base 26M is fixed to the upper surface of the right-side base 13.

[0034] The A-axis support section 67M is positioned on the upper surface of the support base 26M. The A-axis support section 67M rotatably supports the pivot shaft 32. The pivot shaft 32 is cylindrical and extends in the left-right direction. The A-axis motor 65M is fixed to the A-axis support section 67M from the front. The output shaft of the A-axis motor 65M is connected to the pivot shaft 32 via a reduction gear.

[0035] The drive unit 28S includes a support base 26S, an A-axis support 67S, an A-axis motor 65S, a reduction gear, etc. The bottom of the support base 26S is fixed to the upper surface of the left base 14.

[0036] The A-axis support section 67S is positioned on the upper surface of the support base 26S. The A-axis support section 67S rotatably supports the pivot shaft 31. The pivot shaft 31 is cylindrical and extends in the left-right direction. The A-axis motor 65S is fixed to the A-axis support section 67S from the front. The output shaft of the A-axis motor 65S is connected to the pivot shaft 31 via a reduction gear.

[0037] The Axle base 20 includes connecting parts 22, 23 and a base part 21.

[0038] The connecting parts 22 and 23 are plate-shaped. The upper end of connecting part 22 is rotatably connected to the A-axis support part 67M. Connecting part 22 rotates together with the support shaft 32. The upper end of connecting part 23 is rotatably connected to the A-axis support part 67S. Connecting part 23 rotates together with the support shaft 31.

[0039] The base portion 21 is a rectangular parallelepiped extending in the left-right direction. The right end of the base portion 21 is fixed to the lower end of the connecting portion 22. The left end of the base portion 21 is fixed to the lower end of the connecting portion 23.

[0040] The A-axis is parallel to the X-axis direction and passes through the centers of the support shafts 31 and 32 in a side view. As shown in Figure 4, when the output shafts of the A-axis motors 65S, 65S rotate, the A-axis head 20 rotates integrally with the connecting parts 22 and 23 around the A-axis. The A-axis head 20 can tilt at any angle around the A-axis. For example, the A-axis head 20 can tilt the workpiece W in any direction around the A-axis with respect to a tool mounted on the spindle.

[0041] The rotating platform 29 is rotatably mounted in the center of the A-axis side of the base portion 21. The rotating platform 29 is disc-shaped. The upper surface of the rotating platform 29 can accommodate the load 200 described later. The operator can attach the load 200 to the rotating platform 29 in a removable manner.

[0042] The B-axis drive unit 30 is connected to the turntable 29 from the underside of the base 21 through a hole in the center of the base 21. The B-axis drive unit 30 contains a rotating shaft, a reduction gear, and the B-axis motor 64 shown in Figure 6, among other things.

[0043] The rotating shaft is fixed to the turntable 29. The rotating shaft extends in a direction perpendicular to the turntable 29. The rotor of the B-axis motor 64 is connected to the rotating shaft via a reduction gear. The B-axis motor 64 rotates around the rotating shaft. Therefore, the turntable 29 rotates around the B-axis.

[0044] A load 300 can be attached to the center of the lower part of the B-axis drive unit 30. The load 300 includes a rotating cylinder and a rotary joint. The rotary joint supplies liquids such as cutting fluid and coolant. The rotating cylinder drives the movable part of a jig, such as a chuck that holds the workpiece W, in a linear direction.

[0045] Referring to Figures 2 and 3, the load 200 will be described. The load 200 includes the jig 201 and the workpiece W. The workpiece W is a rectangular parallelepiped extending around a virtual axis CW. The virtual axis CW extends parallel to the B axis. The workpiece W is held on the upper surface of the jig 201.

[0046] The jig 201 is disc-shaped. The jig 201 fixes the workpiece W to the turntable 29. The diameter of the jig 201 is larger than the diameter of the turntable 29. The axis of rotation of the jig 201 is coaxial with the axis of rotation of the turntable 29.

[0047] As shown in Figure 4(A), the workpiece W is located at the rear end of the jig 201 when the inclination angle θ of the A-axis 20 with respect to the reference plane R is 0 degrees. That is, the virtual axis CW is eccentric with respect to the B-axis. The B-axis drive unit 30 rotates the workpiece W around the B-axis.

[0048] In machine tool 1, the A-axis motors 65M and 65S are subjected to an uneven load, i.e., a rotational moment, due to the load 200. The uneven load on the A-axis motors 65M and 65S is a force or torque that attempts to rotate the A-axis motors 65M and 65S in a specific direction. The magnitude of the uneven load on the A-axis motors 65M and 65S varies based on the inclination angle θ of the A-axis base 20 of the support device 8.

[0049] As shown in Figure 4(B), when the inclination angle θ of the A-axis head 20 is 0 degrees with respect to the reference plane R, the center of gravity GA of the support is located to the lower left with respect to the A-axis. The support is a collective term for the A-axis head 20, the B-axis drive unit 30, and the load 300. The center of gravity GW of the load 200 is located behind the A-axis. When the A-axis motors 65M and 65S rotate, a force due to an eccentric load acts on the A-axis motors 65M and 65S in a vertically downward direction.

[0050] As shown in Figure 5, the virtual axis CW of the workpiece W is coaxial with the B axis. When the jig 201 is fixed at its center, that is, when the inclination angle θ of the A-axis base 20 is 0 degrees, the center of gravity GA of the holder and the center of gravity GW of the load 200 are in equilibrium with the A axis as the pivot point. The center of gravity GA and the center of gravity GW being in equilibrium with the A axis as the pivot point means that the rotational moment around the A axis due to gravity is zero. The rotational moment around the A axis is zero when the combined center of gravity of the holder and the load 200 is directly below the center of rotation of the A axis. At this time, the magnitude of the eccentric load on the A-axis motors 65M and 65S by the load 200 is zero.

[0051] On the other hand, as shown in Figure 4(B), the position where the workpiece W is fixed may be off-center relative to the B axis. In this case, the center of gravity GA of the holder and the center of gravity GW of the load 200 are balanced with respect to the A axis not when the inclination angle θ of the A-axis base 20 is 0. The center of gravity GA of the holder and the center of gravity GW of the load 200 are balanced with respect to the A axis when, for example, the inclination angle θ of the A-axis base 20 is 10 degrees. In other words, when the position where the workpiece W is fixed is off-center relative to the B axis, the angle at which the magnitude of the off-center load on the A-axis motors 65M and 65S becomes zero varies from the reference plane R.

[0052] The angle at which the magnitude of the eccentric load on the A-axis motors 65M and 65S becomes zero varies depending on the position where the workpiece W is fixed and the weight of the workpiece W. When the angle at which the magnitude of the eccentric load on the A-axis motors 65M and 65S becomes zero is unknown, the numerical control device 40 may not be able to control the A-axis motors 65M and 65S with accuracy. Below, the angle at which the magnitude of the eccentric load becomes zero, for example θ = 10 degrees, is used as the reference angle θ. a That's what they say.

[0053] Referring to Figure 6, the electrical configuration of the numerical control device 40 and the machine tool 1 will be described. The numerical control device 40 includes a CPU 41, ROM 42, RAM 43, storage device 44, input / output unit 45, and various drive circuits 50. The machine tool 1 includes a motor 60 and an encoder 70.

[0054] The CPU 41 controls the operation of the machine tool 1. The ROM 42 stores control programs and other data for executing the main processing described later. The RAM 43 stores various data generated during the execution of various processes. The storage device 44 stores the NC program, parameters described later, and other data.

[0055] The input / output unit 45 is electrically connected to the drive circuit 50, encoder 70, operation unit 10A, and display unit 10B. The input / output unit 45 performs input and output of various signals between the drive circuit 50, encoder 70, operation unit 10A, and display unit 10B.

[0056] Each drive circuit 50 includes drive circuits 51 to 56. Each motor 60 includes an X-axis motor 61, a Z-axis motor 62, a Y-axis motor 63, a B-axis motor 64, an A-axis motor 65M, a 65S, and a spindle motor 66. All of the motors 61 to 66 are servo motors.

[0057] The drive circuits 51, 52, 53, 54, 55M, 55S, and 56 are connected to the X-axis motor 61, Z-axis motor 62, Y-axis motor 63, B-axis motor 64, A-axis motors 65M and 65S, and spindle motor 66, respectively. Based on commands output by the CPU 41, the drive circuits 51 to 56 output pulse signals to each of the motors 61 to 66.

[0058] Encoder 70 includes encoders 71 to 76. Encoder 70 is a general absolute value encoder. Encoders 71, 72, 73, 74, 75M, 75S, and 76 each detect the rotation angle of the output shaft of the corresponding motors 61, 62, 63, 64, 65M, 65S, and 66, respectively. Encoders 71 to 76 each output the detected signal to the corresponding drive circuits 51 to 56. Encoders 71 to 76 also each output the detected signal to the input / output unit 45.

[0059] The control system of machine tool 1 will be explained with reference to Figures 7 to 9. The following explanation assumes the execution of A-axis rapid traverse based on an A-axis rapid traverse command. The blocks P1 to P13 executed by CPU 41 will be explained.

[0060] In block P1, CPU 41 reads the NC program and obtains feed axis commands from the NC program.

[0061] In block P2, the CPU 41 generates time-series data of the target angle in order to move the workpiece W to the angle specified by the feed axis command. This time-series data indicates the driving conditions of the A-axis motors 65M and 65S for moving the workpiece W to the target angle.

[0062] Referring to Figure 8, the method for generating time-series data of the target angle will be explained. As shown in Figures 8(A) and 8(B), the CPU 41 determines the target angle in Figure 8(A) such that the speed of the A-axis 20 remains constant as it rotates to the commanded angle of the feed axis command.

[0063] CPU41 applies a moving average filter at least twice to the waveform showing the time-series change of angular velocity in Figure 8(B). The waveform showing the time-series change will be referred to as the "angular velocity waveform" below. The moving average filter will be referred to as the "FIR filter" below. As shown in Figures 8(C) and 8(D), the application of the moving average filter smooths the change in angular velocity.

[0064] The first FIR filter applied is called the "first FIR filter" and is denoted as "FIR1". The time constant of the angular velocity when the first FIR filter is applied is called "T1". The second FIR filter applied is called the "second FIR filter" and is denoted as "FIR2". The time constant of the angular velocity when the second FIR filter is applied is called "T2".

[0065] When the first FIR filter is applied to the angular velocity waveform shown in Figure 8(B), as shown in Figure 8(C), the angular velocity of the angular velocity waveform changes from 0 to V. max The slope of the rising portion, which changes up to V, becomes constant. Also, the angular velocity is V max The slope of the falling portion, which changes from zero to zero, remains constant. The slope of the rising portion is equal to the maximum angular acceleration A. max It corresponds to.

[0066] The rise and fall times of the velocity waveform are referred to as "rise time" and "fall time," respectively. Both the rise time and fall time correspond to the time constant T1 when the first FIR filter is applied to the angular velocity waveform shown in Figure 8(B).

[0067] When a second FIR filter is applied to the angular velocity waveform in Figure 8(C), the slope of the rising portion of the angular velocity waveform shown in Figure 8(D), i.e., the angular velocity, changes gradually. Similarly, the slope of the falling portion of the angular velocity waveform, i.e., the angular velocity, also changes gradually. In other words, the angular velocity changes gradually at the beginning and end of the portion where the angular acceleration is constant. The waveform that shows the time-series change of acceleration is called the "angular acceleration waveform." In this case, the slope of the angular acceleration waveform corresponding to the portion where the angular velocity changes gradually is constant.

[0068] The rise and fall times of the angular velocity waveform increase by T2 each. The rise and fall times of the angular velocity waveform are both "T1 + T2". T2 corresponds to the time constant T2 when the second FIR filter is applied to the angular velocity waveform.

[0069] The CPU 41 applies a plurality of FIR filters to the angular velocity in FIG. 8(B) to mitigate the change in the moving speed of the support device 8 during the feed axis control. The time constant T1 of the first FIR filter and the time constant T2 of the second FIR filter correspond to the acceleration / deceleration time constants during the acceleration and deceleration of the A-axis motors 65M and 65S that are the control targets.

[0070] The CPU 41 outputs the time-series data of the target angle generated in block P2 to the drive circuits 55M and 55S. Specifically, the CPU 41 outputs the angle command included in the time-series data to the drive circuits 55M and 55S.

[0071] Based on the output angle command, the drive circuits 55M and 55S generate a torque command. The drive circuits 55M and 55S drive the A-axis motors 65M and 65S based on the torque command. As a result, the A-axis table 20 reaches the command angle specified by the feed axis command.

[0072] The encoders 75M and 75S return the rotation angle information of the output shafts of the A-axis motors 65M and 65S as return values θ sraw 、θ mraw to the drive circuits 55M and 55S. The drive circuits 55M and 55S control the drive current output to the A-axis motors 65M and 65S based on the return values θ sraw 、θ mraw and the angle command.

[0073] Referring to FIG. 9, the control of the drive current in the drive circuits 55M and 55S will be described. The drive circuit 55M calculates the angle deviation between the angle command and the return value θ mraw using an adder 55A. The drive circuit 55M multiplies the angle deviation by an angle proportional gain to calculate an angular velocity command. The drive circuit 55M calculates the angular velocity deviation between the calculated angular velocity command and the angular velocity return value using an adder 55B. The angular velocity return value is the actual angular velocity and is the value obtained by differentiating the return value θ mraw from the encoder 75M using a differentiator 55C.

[0074] The drive circuit 55M calculates the first current command. The first current command is obtained by multiplying the angular velocity deviation calculated by the adder 55B by the angular velocity proportional gain. The drive circuit 55M calculates the second current command. The second current command is obtained by multiplying the integral result obtained by integrating the angular velocity deviation by the integrator 55E by the angular velocity integral gain.

[0075] The drive circuit 55M adds the first current command and the second current command to generate a torque command. The drive circuit 55M drives the A-axis motor 65M according to the torque command. The torque command is a pulse signal.

[0076] Furthermore, the configuration of the drive circuit 55S is identical to that of the drive circuit 55M. Therefore, the drive circuit 55S generates torque commands in the same way as the drive circuit 55M to drive the A-axis motor 65S. In other words, the A-axis motor 65M and the A-axis motor 65S are rotationally controlled based on the same angle command.

[0077] In block P3, the CPU 41 determines the torque u that the drive circuit 55M outputs to the A-axis motor 65M. mraw A low-pass filter is applied to (N·m). In block P4, the CPU 41 outputs the torque u that the drive circuit 55S outputs to the A-axis motor 65S. sraw A low-pass filter is applied to (N·m). The low-pass filter reduces the torque u mraw u sraw Differential noise is removed.

[0078] In blocks P5 and P6, CPU 41 receives the return value θ from encoders 75M and 75S. mraw , return value θ sraw A low-pass filter is applied to it. The low-pass filter reduces the torque u mraw u sraw Differential noise is removed.

[0079] Torque u after low-pass filter is applied m u s This is expressed by equations (1-1) and (1-2). The return value θ after the low-pass filter is applied. m , θs This is expressed by equations (1-3) and (1-4). Note that in equations (1-1) to (1-4), G LPF This shows a low-pass filter for removing differential noise.

number

[0080] CPU41 is torque u m and torque u s The two values ​​are added together in an adder to obtain the drive torque u d Obtain the driving torque u d This is the result of applying equation (1-5). CPU 41 sends the calculation result to block P8.

number

[0081] CPU41 is torque u m Torque u s Subtracting this with a subtractor gives the torsional torque u t Obtain the torsional torque u t This is the result of applying equation (1-6). CPU 41 sends the calculation result to block P9.

number

[0082] In block P7, CPU 41 controls the return value θ of the A-axis motor 65M. m and the return value θ of the A-axis motor 65S s The sum of the two values ​​in the adder is multiplied by 1 / 2 in the multiplier to obtain the slope angle θ. In other words, CPU41 applies equation (1-7) to obtain the return value θ s , θ m The average value is calculated as the slope angle θ. CPU41 sends the calculated slope angle θ to blocks P8 and P9.

number

[0083] In block P8, the CPU 41 calculates the drive torque u d Furthermore, it is determined whether the inclination angle θ will be used to identify the parameters of the drive torque model described later. Details of the determination method will be described later.

[0084] In block P9, CPU41 controls the torsional torque u t Furthermore, the tilt angle θ is used to determine whether to identify the parameters of the torsional drive torque model described later. The determination method for block P9 is the same as for block P8. Details will be described later.

[0085] In block P10, parameter identification for the drive torque model is performed. Details will be described later. In block P11, parameter identification for the torsional torque model is performed. Details will be described later.

[0086] In block P12, the CPU 41 updates the parameters of the drive torque model and the torsional torque model. In other words, the CPU 41 stores the latest parameters in the memory device 44.

[0087] In block P13, the CPU 41 calculates the angular error ΔQ(θ) and the maximum angular acceleration A based on the updated parameters. max Perform the calculation. The calculation method will be described later.

[0088] Referring to Figure 10, the main process will be explained. The operator operates the control unit 10 to select and execute an NC program. The CPU 41 reads and executes the control program stored in the memory device 44. The CPU 41 then executes the main process.

[0089] When the main process is executed, the CPU 41 initializes the time constant T1 (S101). Initialization means setting it to a value that allows the machine tool 1 to operate without failure, even under conditions such as overload.

[0090] The CPU 41 reads a block of the NC program (S103). The CPU 41 determines whether the command in the read NC program satisfies the rapid traverse condition for the A-axis (S105). The rapid traverse condition refers to the operating condition in which the A-axis motors 65M and 65S rotate at the maximum speed that can be set in the machine tool 1.

[0091] If the CPU determines that the command does not satisfy the fast-forward condition (S105: NO), the CPU 41 determines whether the read block is an NC program termination command (S129). If it determines that it is not an NC program termination command (S129: NO), the CPU 41 executes the operation based on the command in the read block (S131). The CPU 41 returns processing to S103.

[0092] If the CPU 41 determines that the command satisfies the conditions for rapid traverse of the A axis (S105: YES), it proceeds to S107. This process corresponds to the step in block P1 in Figure 8.

[0093] Referring to Figure 11, the identification process will be explained. The CPU 41 generates time-series data of the target angle to be output to the drive circuit 50 according to the acquired rapid traverse conditions (S201). This process corresponds to the step in block P2 in Figure 8.

[0094] The CPU 41 determines whether the maximum value Amax of the angular acceleration shown in the time series data is greater than or equal to a first predetermined value Th1 (S203). The first predetermined value Th1 is the maximum value of the angular acceleration shown in the time series data when the travel distance is sufficient. Note that the first predetermined value Th1 may be set to 90% of the maximum value of the angular acceleration shown in the time series data when the travel distance is sufficient, allowing for some leeway. This allows the CPU 41 to determine whether a sufficient travel distance can be secured and whether the accuracy of parameter identification can be guaranteed.

[0095] If the CPU 41 determines that the angular acceleration shown in the time series data is less than the first predetermined value Th1 (S203: NO), it returns processing to the main process and executes the process in S109.

[0096] If the CPU 41 determines that the angular acceleration shown in the time series data is greater than or equal to a first predetermined value Th1 (S203: YES), the CPU 41 determines whether the time series data of the command angle includes a predetermined range (S205). The CPU 41 determines whether the range includes a posture in which the eccentric load becomes large, such as when the rotation angle of the A axis is 90 degrees. This is because if the posture in which the eccentric load is applied is not included in the operating range, the accuracy of parameter identification cannot be guaranteed. The predetermined range may be a certain margin of error, such as from 60 degrees to 120 degrees, relative to 90 degrees.

[0097] If the CPU 41 determines that the time-series data of the command angle does not include the predetermined range (S205: NO), it returns processing to the main process and executes the process in S109.

[0098] If the CPU 41 determines that the time-series data of the command angle includes a predetermined range (S205: YES), it determines whether to operate the load axis simultaneously with the rotational operation around the A axis (S207). The load axis is the torque output to the A-axis motors 65M and 65S. mraw , torque u sraw This is the axis that affects the load. The movement of the load axis is translational movement of the support device 8 in a direction intersecting the A axis, or rotational movement of the support device 8 in a direction intersecting the A axis. The load axis is, for example, the B axis.

[0099] If it is determined that the A-axis and the load axis cannot operate simultaneously (S207: NO), the CPU 41 returns processing to the main process and executes the process in S109.

[0100] If it is determined that the A-axis and the load axis will operate simultaneously (S207:YES), the CPU 41 proceeds to S209.

[0101] If all the conditions for processing S203, S205, and S207 are met, the CPU 41 decides to perform parameter identification. In this case, the torque u output by the A-axis motors 65M and 65S is determined. mraw u srawThis is sufficiently large. Therefore, the CPU 41 can accurately identify the parameters of the drive torque model and the torsional torque model.

[0102] The CPU 41 initializes the parameters of the drive torque model and the torsional torque model (S209). The initialization of each parameter is performed in order to execute the successive least squares method described later. The storage device 44 is assumed to have the initial values ​​of the parameters stored in advance.

[0103] CPU 41 executes rapid traverse of the A-axis (S211). CPU 41 outputs time-series data of the generated target angle, i.e., angle commands, to drive circuits 55M and 55S. At this time, the angle command corresponding to the time in the time-series data is output. Drive circuits 55M and 55S drive the corresponding A-axis motors 65M and 65S, etc. Machine tool 1 processes the workpiece W with a tool.

[0104] CPU41 outputs the torque u from the drive circuits 55M and 55S to the A-axis motors 65M and 65S. mraw u sraw , and the return value θ from encoders 75M and 75S mraw、 θ sraw The acquired torque u is obtained (S213). CPU41 obtains the acquired torque u mraw u sraw and return value θ mraw、 θ sraw A low-pass filter is applied to each of these to remove noise (S215). This process corresponds to steps P3 to P6 in block 8.

[0105] CPU41 determines whether to perform the identification of the parameters of the drive torque model and the torsional torque model (S217). For example, CPU41 obtains the angular velocity return value (rad / s) from the differentiator 55C.

[0106] The CPU 41 determines to perform the identification of each parameter if all of the acquired angular velocity return values ​​(rad / s) are greater than or equal to the second predetermined value Th2. The second predetermined value Th2 is, for example, the lower limit of the angular velocity at which the friction characteristics behave linearly. Note that the second predetermined value Th2 may be 110% of the allowable angular velocity, allowing for some leeway. This allows the CPU 41 to determine whether it can ensure the accuracy of parameter identification without being affected by regions with strong nonlinearity in the friction characteristics. This process corresponds to steps P8 and P9 in blocks 8 of Figure 8.

[0107] When the CPU 41 determines that the angular velocity return value is less than the second predetermined value Th2 (S217: NO), it proceeds to process S225.

[0108] When it is determined that the angular velocity return value is greater than or equal to the second predetermined value Th2 (S217: YES), the CPU 41 identifies the parameters of the drive torque model (S219). This process corresponds to the step in block P10 in Figure 8.

[0109] This section describes how to identify the parameters of the drive torque model. The parameter to be identified below is the moment of inertia J. d , viscous friction coefficient D d Coulomb friction F Cd , eccentric load coefficient F θd , reference angle θ ad Therefore, the reference angle θ ad This is the angle of the A-axle 20 at which the eccentric load is zero. Note that the eccentric load at the tilt angle θ is F θd sin(θ-θ ad It is represented as follows:

[0110] For example, moment of inertia J d Each acceleration θ (two superscript dots), driving torque u d , eccentric load coefficient f d The relationship in equation (1-8) is satisfied. The coefficient of uneven load f d (N·m) is a parameter used to calculate the uneven load. Note that "θ (with two superscript dots)" is the second time derivative of the angle, i.e., the angular acceleration (rad / s²). 2 ) indicates.

number

[0111] f d The relationship in equation (1-9) is satisfied. Here, F Cd (N·m) is the Coulomb friction with respect to the support device 8. The sign function is a sign function that returns either 1, -1, or 0 for a real number depending on its sign. D d (N·m / (rad / s)) is the viscous friction coefficient for the support device 8. "θ (superscript dot)" indicates the first time derivative of the inclination angle θ, i.e., the angular velocity (rad / s).

number

[0112] The drive torque u output by the drive circuit 55 d This is expressed by equations (1-8), (1-9), and the addition theorem as equation (1-10). Equation (1-10) is the drive torque model of machine tool 1. The drive torque model is the drive torque u of A-axis motor 65M and A-axis motor 65S. d It is used to estimate.

number

[0113] Note that in equation (1-10), F ad F is a coefficient defined by equation (1-11). bd This is a coefficient defined by equation (1-12).

number

[0114] Here, equation (1-10) consists of terms 1 to 5. The first term is information about the torque proportional to the acceleration component of the A-axis motor 65M and A-axis motor 65S. The second term is information about the torque proportional to the velocity component of the A-axis motor 65M and A-axis motor 65S. The third term is information about the torque according to the sign of the rotation direction. The fourth and fifth terms are information about the torque proportional to the trigonometric function component.

[0115] Estimation error e d (ρ d ) can be calculated by formula (1-13). However, ρ d is the parameter to specify. The superscript T indicates that it is the transpose matrix. For example, ρ d T is ρ d The transpose matrix is ​​shown.

number

[0116] Note that in equation (1-13), ρ d And x satisfies the relationships in equations (1-14) and (1-15).

number

number

[0117] CPU41 uses the evaluation function |e d (ρ d )| 2 ρ that minimizes d This is calculated using the successive least squares method. The parameter being specified in step k is ρ with circumflex. d (Hereinafter, ρ d (Denoted as ^)(k), estimated error e at step k d (ρ d ) to ε d (k) The covariance matrix at step k is P d When we set (k), then according to equations (1-16), (1-17), and (1-18), ρ d^(k), ε d (k), P d (k) is calculated.

Number

Number

Number

[0118] ρ d ^(k), ε d (k), P d (k) are all calculated sequentially using ρ d ^(k - 1), ε d (k - 1), P d (k - 1), and the driving torque u d (k), return value x d (k). Therefore, by calculating equations (1 - 16), (1 - 17), and (1 - 18) for each sampling period, the evaluation function |e d (ρ d )| 2 can be calculated sequentially to minimize ρ d .

[0119] Using the above sequential least squares method, the CPU41 calculates the ρ d (ρ d )| 2 that minimizes the evaluation function |e d . That is, the CPU41 identifies the moment of inertia J d that minimizes the estimation error e d , the viscous friction coefficient D d , the Coulomb friction F Cd , the coefficient F ad , F bd .

[0120] The CPU41 applies equations (1 - 19) and (1 - 20) to calculate the partial load coefficient F θd , the reference angle θ adIdentify the following. Equations (1-19) and (1-20) are derived from equations (1-11) and (1-12). CPU41 further determines the eccentric load F at the inclination angle θ. θd sin(θ-θ ad Identify ).

number

number

[0121] In other words, CPU41 drives torque u d The evaluation function |e| applied to the inclination angle θ. d (ρ d )| 2 Based on this, the estimated error e at the inclination angle θ d Identify the parameters that minimize the expression.

[0122] As shown in Figure 12, the identified parameters are used to determine the drive torque u d If we estimate the drive torque u output to the A-axis motors 65M and 65S, d It was found that the acquired waveform approximated the result. Also, the estimated drive torque u d and drive torque u d Estimated error e d It was also found that the drive torque u was low. Therefore, the CPU41 calculates the drive torque u based on the identified parameters. d It was found that this can be estimated with high accuracy.

[0123] CPU41 identifies the parameters of the torsional torque model (S221). CPU41 determines the torsional torque u t The inclination angle θ is then applied to the torsional torque model in equation (2-1) to identify the parameters of the torsional torque model. This process corresponds to the step in block P11 in Figure 8.

[0124] The following describes in detail the identification of parameters for the torsional torque model. Torsional torque u output by drive circuits 55M and 55S tThis can be estimated by equation (2-1). Equation (2-1) is the torsional torque model of machine tool 1. The torsional torque model is the torsional torque u of A-axis motor 65M and A-axis motor 65S. t This is used to estimate the torsional torque. Note that equations based on the equations of motion, such as equations (1-8) and (1-9), are not applied when identifying the parameters of the torsional torque model.

number

[0125] Here, equation (2-1) consists of terms 1 to 5. The first term is information about torsion proportional to the acceleration components of the A-axis motors 65M and 65S. The second term is information about torsion proportional to the velocity components of the A-axis motors 65M and 65S. The third term is information about torsion according to the sign of the direction of rotation. The fourth and fifth terms are information about torsion proportional to the trigonometric function components.

[0126] The parameter to be identified below is the torsional torque coefficient J, which is proportional to acceleration. t , the torsional torque coefficient D is proportional to viscous friction. t , torsional torque F proportional to Coulomb friction Ct , coefficient F at F bt That is the case.

[0127] In equation (2-1), F at F is a coefficient defined by equation (2-2). bt is a coefficient defined by equation (2-3).

number

[0128] Estimation error e t (ρ t ) can be calculated by equation (2-4), where ρ t is the parameter to specify. The superscript T indicates that it is the transpose matrix. For example, ρ t T is ρ tThe transpose matrix is ​​shown.

number

[0129] In equation (2-5), ρ t And x satisfy the relationships in equations (2-5) and (1-15), respectively. Note that equation (1-15) is the same as in the case of the drive torque model.

number

[0130] CPU41 uses the evaluation function |e t (ρ t )| 2 ρ that minimizes t The following is calculated using the successive least squares method. The parameter being specified in step k is ρ with circumflex t (hereinafter referred to as “ρ t ^」 is used as notation. )(k), estimated error e at step k t (ρ t ) to ε t (k) The covariance matrix at step k is P t When we let (k), ρ t ^(k), ε t (k), P t (k) is calculated using equations (2-6), (2-7), and (2-8).

number

number

number

[0131] ρ t ^(k), ε t (k), P t (k) is in all cases the ρ in step (k-1) from equations (2-6), (2-7), and (2-8) above. t ^(k-1), εt (k-1), P t (k-1) and torque u at step k t (k), return value θ t (k) can be used to perform calculations sequentially. Therefore, by performing equations (2-6), (2-7), and (2-8) at each sampling period, the evaluation function |e t (ρ t )| 2 ρ that minimizes t The calculations are performed sequentially.

[0132] According to the successive least squares method described above, in the torsional torque model, CPU41 evaluates the function |e t (ρ t )| 2 ρ that minimizes t The CPU 41 calculates the estimated error e. t Identify the parameter that minimizes [the specified value].

[0133] CPU41 further calculates the eccentric load coefficient F using equations (2-9) and (2-10). θt , the reference angle θ of the torsional torque at We identify this as a parameter. Equations (2-9) and (2-10) are derived from equations (2-2) and (2-3).

number

number

[0134] In other words, CPU41 has a torsional torque u t And the evaluation function |e| to which the inclination angle θ is applied. t (ρ t )| 2 Based on this, the estimated error e at the inclination angle θ t Identify the parameters that minimize the expression.

[0135] As shown in Figure 13, the torsional torque u is calculated using the identified parameters. t If we estimate the torsional torque u output to the A-axis motors 65M and 65S,t It was found that the acquired waveform approximated the result. Also, the estimated torsional torque u t The output torsional torque u t Estimated error e t It was also found that it was small. Therefore, the CPU41 calculates the torsional torque u based on the identified parameters. t It can be seen that this can be estimated with high accuracy.

[0136] The CPU 41 updates the parameters of the storage device 44 with the parameters identified in the processes of S219 and S221 (S223). This process corresponds to the step in block P12 in Figure 8.

[0137] CPU 41 determines whether all angle commands for the time series data have been completed (S225). If it determines that all angle commands for the time series data have not been completed (S225: NO), CPU 41 returns to processing S211. If it determines that all angle commands for the time series data have been completed (S225: YES), CPU 41 returns to the main process and executes S109.

[0138] In the S109 process, the CPU 41 determines whether the identification of the parameters for the drive torque model and the torsional torque model has been completed (S109). For example, the CPU 41 determines this by checking whether the time series data generated in S201 has been completed.

[0139] If the CPU 41 determines that the identification of the torsional torque model parameters is incomplete (S109: NO), it performs rapid traverse of the A axis based on the time constant T1 set in the S101 process (S113). The CPU 41 then returns to the S103 process.

[0140] On the other hand, if the CPU41 determines that the identification of the parameters of the torsional torque model is complete (S109:YES), the CPU41 determines the identified eccentric load coefficient F θd It is determined whether the third predetermined value Th3 is less than or equal to (S111). The eccentric load coefficient F θd When it is determined that the value is greater than the third predetermined value Th3 (S111: NO), the CPU 41 proceeds to process S125.

[0141] Eccentric load coefficient F θd When it is determined that the third predetermined value Th3 is less than or equal to (S111:YES), the CPU 41 further determines the identified moment of inertia J d It is determined whether the moment of inertia J is less than or equal to the fourth predetermined value Th4 (S115). d When it is determined that the value is greater than the fourth predetermined value Th4 (S115: NO), the CPU 41 proceeds to S125.

[0142] In the process of S125, the CPU 41 executes a notification process that the workpiece W is overloaded (S125). The CPU 41 then calculates, for example, the uneven load coefficient F θd , or moment of inertia J d The large size indicates that the workpiece W is overloaded, and this is displayed on the display unit 10B.

[0143] CPU 41 stops the operation of machine tool 1 (S127). CPU 41 terminates the main process.

[0144] On the other hand, moment of inertia J d When it is determined that the value is less than or equal to the fourth predetermined value Th4 (S115: YES), the CPU 41 calculates the angular error ΔQ(θ) corresponding to the command angle indicated by the A-axis feed command based on equation (3-1) (S117). The angular error ΔQ(θ) is the angular error caused by adding the load 200 to the turntable 29 when the drive units 28M and 28S are driven by an amount corresponding to the command angle of the A-axis feed command. This process corresponds to the process in block P13 of Figure 8.

number

[0145] The angular error ΔQ(θ) is calculated by dividing the torsional stiffness coefficient E (rad / N·m) of the drive units 28M and 28S by 2 and multiplying the result by the change in the eccentric load. The torsional stiffness coefficient E is a value specific to the drive unit 28. The torsional stiffness coefficient E is stored in advance in the memory device 44. The change in the eccentric load is the difference between when the load 200 is attached to the turntable 29 and when the load 200 is not attached to the turntable 29.

[0146] F θb (N·m) is the unbalance load coefficient when no load 200 is added to the turntable 29. θ ab is the reference angle when no load 200 is added to the turntable 29. Note that the unbalance load coefficient F θb and the reference angle θ ab are stored in the storage device 44 in advance. For example, before executing the main process, the CPU 41 executes S107 in a no-load state where, for example, there is no load 200. The CPU 41 can identify the unbalance load coefficient F θb and the reference angle θ ab as parameters of the drive torque model under no-load conditions.

[0147] The CPU 41 corrects the command angle using the calculated angle error ΔQ(θ) (S119). The CPU 41, for example, subtracts the angle error ΔQ(θ) from the command angle to correct the command angle. Therefore, in the next A-axis feed, it is possible to drive at an optimal command angle based on the correction result.

[0148] As shown in FIG. 14, it was found that the calculated angle error ΔQ(θ) approximates the measurement result of the command angle error. Therefore, it was found that by correcting the command angle with the angle error ΔQ(θ), the numerical control device 40 can control the machine tool 1 more appropriately.

[0149] The CPU 41 calculates the maximum value A max of the allowable acceleration (S121). For the calculation of the maximum value A max , the CPU 41 uses the relational expression of Equation (4-1). Here, T max is the allowable maximum torque of the A-axis motors 65M and 65S. V max indicates the maximum speed when the A-axis table 20 moves.

Number

[0150] The CPU 41 uses Equation (4-2) to calculate the maximum value A maxThe calculation is performed. Equation (4-2) is the condition for the equality in equation (4-1) to hold, with the maximum value A. max This was derived by solving for [the given condition].

number

[0151] CPU41 calculates the maximum value A. max Based on this, the time constant T1 is calculated (S123). The time constant T1 can be obtained from the proportional relationship between angular velocity and time constant shown in Figure 8(C). Therefore, the next A-axis feed operation can be driven with the optimal time constant T1. The CPU 41 returns to processing in S103.

[0152] On the other hand, if the S129 process determines that the NC program is complete (S129:YES), the CPU 41 terminates the main process.

[0153] As described above, the numerical control device 40 controls the A-axis head 20 holding the workpiece W to a predetermined angle by controlling the A-axis motor 65M and the A-axis motor 65S. The CPU 41 controls the drive torque u d Applying the inclination angle θ to the drive torque model in equation (1-10), the moment of inertia J d and eccentric load F θd sin(θ-θ ad Identify ) and .

[0154] In identifying the numerical control device 40 described above, the moment of inertia J d and eccentric load F θd sin(θ-θ ad In identifying the driving torque u d By using this, the torsional torque u t The effects are canceled out. Therefore, the numerical control device 40 controls the torsional torque u t Suppressing the effect of, the moment of inertia J d and eccentric load F θd sin(θ-θ ad ) can be identified with high accuracy.

[0155] The tilt angle θ is the average value of the return value θm for the A-axis motor 65M and the return value θs for the A-axis motor 65S. The numerical control device 40 applies the average value of the return values ​​θm and θs to calculate the moment of inertia J. d and eccentric load F θd sin(θ-θ ad This can improve the identification accuracy of ).

[0156] A-axis motors 65M and 65S are rotationally controlled based on the same angle command. Even when the numerical control device 40 controls the rotation of A-axis motors 65M and 65S based on the same angle command, the torsional torque u t Without being affected by, moment of inertia j d and eccentric load F θd sin(θ-θ ad ) can be identified.

[0157] The CPU41 is defined as the reference angle θ, which is the angle of the A-axis 20 at which the eccentric load becomes zero. ad Further identification is performed. The numerical control device 40 controls the moment of inertia J d and eccentric load F θd sin(θ-θ ad ) In addition, the reference angle θ ad It can be identified.

[0158] CPU41 is a torsional torque u t The inclination angle θ is then applied to the torsional torque model in equation (2-1) to identify the parameters of the torsional torque model. Torsional torque u t The torque of the A-axis motor 65M is u m Torque u of A-axis motor 65S s This is the value obtained by subtracting [a certain value]. The numerical control device 40 can accurately identify the parameters of the torsional torque model.

[0159] The torsional torque model consists of five terms. The first term shows torsional information proportional to the acceleration components of the A-axis motors 65M and 65S. The second term shows torsional information proportional to the velocity components of the A-axis motors 65M and 65S. The third term shows torsional information corresponding to the sign of the rotation direction. The fourth and fifth terms show torsional information proportional to the trigonometric function components. The numerical control device 40 can accurately identify the parameters of the torsional torque model using a simplified model.

[0160] In the above embodiment, the A-axis head 20 is an example of the table of the present invention. The A-axis motor 65M is an example of the first motor of the present invention. The A-axis motor 65S is an example of the second motor of the present invention. The return value θm is an example of the first return value of the present invention. The return value θs is an example of the second return value of the present invention. The CPU 41 that performs the processing in S219 is an example of the first identification unit of the present invention. The CPU 41 that performs the processing in S221 is an example of the second identification unit of the present invention. Equation (1-10) is an example of the drive torque model of the present invention. Equation (2-1) is an example of the torsional torque model of the present invention.

[0161] The present invention can be modified in various ways from the above embodiments. The modifications described below can be combined as long as they do not create contradictions. For example, the numerical control device 40 is not limited to being located on the machine tool 1, but may be provided separately from the machine tool 1. For example, the numerical control device 40 may be a device connected to the machine tool 1, such as a PC or a dedicated machine. For example, the machine tool 1 may not be horizontal, but vertical, with the spindle extending in the vertical direction.

[0162] In the above embodiment, the identification of parameters for the A-axis motors 65M and 65S was shown, but it can also be done for other axes affected by eccentric loads. For example, when it is done for the B-axis motor 64 of the machine tool 1, the eccentric load on the B-axis is also affected by the A-axis, so the formula for calculating the eccentric load is Fθsin(θ A )sin(θ B -θ B0 ) is θ A θ is the angle of the A-axis. B θ is the angle of the B axis. B0represents the reference angle at which the off-load of the B-axis becomes minimum. This can also be implemented for an axis that receives off-load with respect to a machine having a mechanical configuration different from that of the machine tool 1.

[0163] Based on the identified parameters, the CPU 41 may execute processes other than the determination of overloading of the workpiece W. For example, the numerical control device 40 may execute not only feedback control but also feedforward control. At that time, the CPU 41 may optimize the parameters of the feedforward control according to the identified parameters. Also, control parameters such as the position proportional gain, speed proportional gain, and speed integral gain of the feedback control may be optimized. At that time, the numerical control device 40 can control the machine tool 1 at high speed and with high precision.

[0164] The parameters identified by the numerical control device 40 are not limited to those of the above-described embodiment, and other parameters may be identified as appropriate.

[0165] In the above-described embodiment, the numerical control device 40 identified the parameters by the sequential least squares method, but the parameters may be identified by other methods. For example, the numerical control device 40 may identify the parameters by the linear least squares method.

[0166] A method for identifying parameters by the linear least squares method will be described below. In the drive torque model, the estimation error j in the model of the linear least squares method is expressed by Equation (5-1).

Number

[0167] In Equation (5-1), Φ is expressed by Equation (5-2). The CPU 41 identifies the parameters that minimize the estimation error j.

Number

[0168] The normal equation of Equation (5-1) is expressed by Equation (5-3).

Number

[0169] The parameters of CPU41 can be identified by solving equation (5-3).

[0170] On the other hand, in the torsional torque model, the estimation error j in the linear least squares model is expressed by equation (6-1).

number

[0171] In equation (6-1), Φ is expressed by equation (5-2). CPU41 identifies the parameter that minimizes the estimation error j. Note that equation (5-2) is the same as in the case of the drive torque model.

[0172] The normal equation in equation (6-1) is expressed as equation (6-2).

number

[0173] The parameters of CPU41 can be identified by solving equation (6-2).

[0174] The drive torque model of the above embodiment may be modified. For example, the drive torque model can be further defined by equation (7-1) from equations (1-8) and (1-9). The CPU 41 may use the drive torque model of equation (7-1) to obtain parameters. Here, T d This indicates the motor torque.

number

[0175] CPU41 uses equation (7-2) to calculate the torque estimated by the drive torque model and the drive torque u d Identify the parameter that minimizes the sum of squared errors. In this case, the parameter is J d , D d Fc , T d , θ ad That is the case.

number

[0176] On the other hand, the torsional torque model, like the drive torque model, can be expressed by equation (8-1). The CPU 41 may use the torsional torque model of equation (8-1) to obtain the parameters. Here, F t This is the torsional torque proportional to Coulomb friction. t This indicates a torsional torque proportional to the uneven load.

number

[0177] CPU41 applies equation (8-2) to obtain the torsional torque u estimated in equation (8-1). t And the torsional torque u calculated using equation (1-6) t Identify the parameter that minimizes the sum of squared errors. In this case, the parameter is the torsional torque coefficient J, which is proportional to acceleration. t , the torsional torque coefficient D is proportional to viscous friction. t , torsional torque F proportional to Coulomb friction t Torsional torque T proportional to the uneven load t , the reference angle θ of the torsional torque at That is the case.

number

[0178] In the above embodiment, the CPU 41 may identify parameters when the NC program command does not satisfy the rapid traverse condition. The CPU 41 may also identify parameters when the command satisfies other conditions. For example, the CPU 41 may identify parameters when the command is a cutting feed command. Furthermore, the CPU 41 may identify parameters when the operation of the machine tool 1 based on the command is in one of several stationary states.

[0179] In the above embodiment, after determining blocks P8 and P9, the parameters were identified. In response, the CPU 41 determined all drive torques u d、 Torsional torque u t The tilt angle θ may also be used to identify the parameters. Furthermore, the CPU 41 obtains the drive torque u based on other conditions. d , torsional torque u t The CPU 41 may determine whether or not to use the inclination angle θ for parameter identification. For example, the CPU 41 determines the drive torque u based on the magnitude of the angular acceleration. d、 Torsional torque u t Furthermore, it may be determined whether or not to use the inclination angle θ for parameter identification.

[0180] In the above embodiment, the CPU 41 performed parameter identification when the three conditions of processing S203, S205, and S207 were met. In contrast, the CPU 41 may perform parameter identification when at least one of the three conditions is met. The CPU 41 may decide whether to perform parameter identification based on conditions other than the three conditions mentioned above. The CPU 41 may perform parameter identification regardless of whether the three conditions mentioned above are met.

[0181] CPU41 acquired torque u mraw , torque u sraw , return value θ mraw , return value θ sraw After determining whether or not to use it for parameter identification, differential noise may be removed.

[0182] CPU41 acquired torque u mraw , torque u sraw , return value θ mraw , return value θ sraw When removing differential noise, filters other than low-pass filters may be applied. For example, CPU41 may remove differential noise by applying a high-pass filter. For example, CPU41 may remove differential noise by applying a band-pass filter.

[0183] CPU41 acquired torque u mraw , torque u sraw , return value θ mraw , return value θ sraw Either of the differential noises may be removed. The CPU 41 then processes the acquired torque u mraw , torque u sraw , return value θ mraw , return value θ sraw It is not necessary to remove the differential noise.

[0184] CPU41 identified the eccentric load coefficient F θd , and moment of inertia J d The overloading of the workpiece W may be determined based on the size of either of the two. The CPU 41 determines the eccentric load coefficient F θd , and moment of inertia J d The overloading of the workpiece W may also be determined based on other identified parameters.

[0185] In the above embodiment, the CPU 41 notified the display unit 10B that the workpiece W was overloaded during the notification process. The CPU 41 may also notify via a speaker, lamp, etc. The CPU 41 does not need to determine whether or not the workpiece W is overloaded.

[0186] The CPU 41 does not need to correct the command angle when the load 200 is added to the turntable 29 based on the identified parameters. In other words, the CPU 41 of the numerical control device 40 does not need to calculate the angle error ΔQ(θ)(rad) corresponding to the command angle.

[0187] In the above embodiment, the tilt angle θ of the A-axis 20 was taken as the average value of the return values ​​θm and θs, but it is not limited to this. The tilt angle θ of the A-axis 20 may also be taken as the internal division value obtained by dividing the return values ​​θm and θs internally at a predetermined ratio. For example, if the internal division is 1:1, it corresponds to the average value. The ratio may be changed as appropriate.

[0188] In addition, an ASIC, FPGA (Field Programmable Gate Array), or the like may be used as the processor instead of CPU41. The main processing may be distributed across multiple processors.

[0189] The machine tool 1 may include other non-temporary storage media, such as an HDD. The non-temporary storage media can be any storage medium capable of retaining information regardless of the storage period. The non-temporary storage media does not necessarily have to include temporary storage media (e.g., transmitted signals).

[0190] Each program may be downloaded (i.e., transmitted as a transmission signal) from a server connected to a network not shown in the diagram and stored in memory such as an HDD. In this case, each program only needs to be stored on a non-temporary storage medium such as an HDD provided on the server. [Explanation of Symbols]

[0191] 1 Machine tools 20 Axle Head 40 Numerical control devices 41 CPU 200 Loads W Work material u d Driving Torque u t Torsional torque

Claims

1. In a numerical control device that controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor, A numerical control device characterized by comprising a first identification unit that applies the drive torque obtained by adding the torque of the first motor and the torque of the second motor, and the inclination angle of the table, to a drive torque model for estimating the torques of the first motor and the second motor, and identifies the moment of inertia and the eccentric load.

2. The aforementioned inclination angle is, The numerical control device according to claim 1, characterized in that it is an internal division value obtained by internally dividing the first return value for the first motor and the second return value for the second motor at a predetermined ratio.

3. The numerical control device according to claim 1, characterized in that the first motor and the second motor are rotationally controlled based on the same angle command.

4. The first identification unit is, The numerical control device according to claim 1, further characterized by identifying a reference angle which is the angle of the table at which the aforementioned eccentric load becomes zero.

5. A second identification unit applies the torsional torque, obtained by subtracting the torque of the second motor from the torque of the first motor, and the tilt angle to a torsional torque model for estimating the torsional torque, and identifies the parameters of the torsional torque model. The numerical control device according to claim 1, characterized by comprising:

6. The aforementioned torsional torque model is, Torsion proportional to the acceleration components of the first motor and the second motor, Torsion proportional to the speed components of the first motor and the second motor, Torsion according to the sign of the direction of rotation, Torsion proportional to trigonometric function components and The numerical control device according to claim 5, characterized in that it includes information relating to the present invention.

7. A numerical control device that controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor, wherein the method for identifying the moment of inertia and the biased load for determining the angle commands to the first motor and the second motor is provided, An identification method characterized by comprising a first identification step of applying the drive torque obtained by adding the torque of the first motor and the torque of the second motor, and the inclination angle of the table, to a drive torque model for estimating the torques of the first motor and the second motor, and identifying the moment of inertia and the eccentric load.

8. A numerical control device that controls the position of a table holding a workpiece to a predetermined angle by driving a first motor and a second motor, wherein the identification program identifies the moment of inertia and the biased load for determining the angle commands to the first motor and the second motor, An identification program characterized by comprising a first identification process that applies the drive torque obtained by adding the torque of the first motor and the torque of the second motor, and the inclination angle of the table, to a drive torque model for estimating the torques of the first motor and the second motor, and identifies the moment of inertia and the eccentric load.