Numerical control device and control method for numerical control device
The numerical control device employs an undamped linear vibration model to generate commands that reduce natural vibration frequency components, addressing the issue of excitation in mechanical devices at short movement times, thereby improving vibration suppression and control precision.
Patent Information
- Application Number
- JP2024140952
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-22
- Publication Date
- 2026-03-06
AI Technical Summary
Conventional numerical control devices excite vibration frequency components inherent to mechanical devices when movement times are relatively short, which is not effectively addressed by existing vibration magnitude and area map methods.
A numerical control device and method that utilize a control unit to determine movement time and apply a polynomial derived from an undamped linear vibration model to generate commands that reduce natural vibration frequency components, allowing for motor control that suppresses excitation even at short movement times.
The solution effectively suppresses excitation of vibration frequency components in mechanical devices by generating optimized movement commands, reducing residual vibrations and enhancing control precision.
Smart Images

Figure 2026037726000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a numerical control device and a control method for a numerical control device. [Background technology]
[0002] In order to prevent excitation of vibration frequency components specific to a machine device such as a machine tool when the machine device is driven in response to a positioning command, conventional numerical control devices refer to the allowable value of the vibration magnitude of the machine device, the feed amount of the machine device, and a vibration area map stored in a storage device under conditions that do not include a period in which acceleration increases from zero and remains at zero acceleration, and generate movement time and acceleration commands so as not to excite vibration frequency components specific to the machine device (see Patent Document 1). The vibration area map is information that is defined based on the measured value of the magnitude of vibration generated for each combination of movement time and feed amount when the movement time and feed amount are changed. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2023-149799 Summary of the Invention [Problem to be solved by the invention]
[0004] Conventional numerical control devices may excite vibration frequency components that are inherent to a mechanical device when the movement time of the mechanical device when driven in response to a position feed command is relatively close to or shorter than the period of the mechanical device's natural vibration.
[0005] An object of the present invention is to provide a numerical control device and a control method for a numerical control device that suppresses excitation of vibration frequency components specific to a mechanical device even when the movement time when the mechanical device is driven in response to a position feed command is relatively short. [Means for solving the problem]
[0006] A numerical control device according to a first aspect of the present invention is a numerical control device including a motor and a mechanical device having a driven body moved by the motor, the numerical control device including a control unit that outputs a command to the motor, the control unit being configured to execute: a determination process that determines a movement time required to move the driven body using a movement distance of the driven body specified by a positioning command, a natural vibration frequency of the mechanical device, and a predetermined torque that the motor can output; and a generation process that applies the movement distance and the movement time to a polynomial derived from an undamped linear vibration model to generate a command to control the motor to move the driven body by the movement distance in the movement time in which the natural vibration frequency component is reduced. The numerical control device according to the first aspect contributes to generating a command that reduces the vibration frequency component unique to the mechanical device more than conventionally, even when the movement time when the mechanical device is driven in response to a position feed command is relatively short, based on the relationship between the predetermined torque that the motor can output and the movement time.
[0007] The control unit of the numerical control device of the first aspect may, in the determination process, set a first condition for determining the movement time of the motor driven in response to the positioning command, the first time as the movement time if a first time determined using the movement distance, the natural vibration frequency, and the predetermined torque is a value within a predetermined range set in accordance with the natural vibration frequency, and set a second condition for determining the movement time if the first time is not a value within the predetermined range, the second time as the movement time determined by a numerical optimization method using the movement distance, the natural vibration frequency, and the predetermined torque, with a boundary value of the predetermined range as an initial value. The control unit of the numerical control device contributes to generating, with relatively simple processing, commands that suppress excitation of vibration frequency components natural to a mechanical device more than conventionally, even when the movement time when the mechanical device is driven in response to a position feed command is relatively short.
[0008] The control unit of the numerical control device of the first aspect may execute the determination process when the movement distance is equal to or less than a threshold value. The control unit of the numerical control device contributes to performing the determination process when the movement distance is suitable for applying the determination process to generate a command.
[0009] The first condition of the numerical control device of the first aspect may include a condition that the acceleration of the motor corresponding to the first time is maximized at the start of movement, and the second condition may include a condition that the acceleration of the motor corresponding to the second time can take any value at the start of movement. By setting the second condition to a condition that the acceleration of the motor can take any value both at the start and end of movement, that is, a condition that eliminates constraints on acceleration, the control unit of the numerical control device contributes to generating commands that suppress excitation of low-frequency vibration frequency components inherent to mechanical devices more than conventional techniques.
[0010] A second aspect of the present invention provides a control method for a numerical control device, which is executed by a control unit of the numerical control device that outputs a command to a mechanical device having a motor and a driven body that is moved by driving the motor, and includes: a determination process that determines a movement time required to move the driven body using a movement distance of the driven body specified by a positioning command, a natural vibration frequency of the mechanical device, and a predetermined torque that the motor can output; and a generation process that applies the movement distance and the movement time to a polynomial derived from an undamped linear vibration model to generate a command to control the motor to move the driven body by the movement distance in the movement time in which the component of the natural vibration frequency is reduced. When executed by the control unit of the numerical control device, the control method for the numerical control device of the second aspect achieves the same effects as the numerical control device of the first aspect. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a perspective view of a machine tool 1. [Figure 2] FIG. 2 is a block diagram showing the electrical configuration of the numerical control device 30 and the machine tool 1. [Figure 3]Explanatory diagram of the simple vibration of spring B. [Figure 4] (A) is a graph comparing the change over time of the acceleration command with and without acceleration constraint, (B) is a graph comparing the change over time of the fast Fourier transform FFT of the acceleration command with and without acceleration constraint, (C) is a graph comparing the change over time of the measurement results of the vibration of the machine tool 1 with and without acceleration constraint, and (D) is a graph showing the FFT of the measurement results of the vibration of the machine tool 1 with and without acceleration constraint. [Figure 5] (A) is a graph showing the minimum and maximum values among the changes over time of the acceleration command when the movement time TSUM is in the first range (0 < TSUM < 1 / (2f)), (B) is a graph showing the minimum and maximum values among the changes over time of the acceleration command when the movement time TSUM is in the second range (1 / (2f) ≤ TSUM ≤ 3 / (2f)), and (C) is a graph showing the minimum and maximum values among the changes over time of the acceleration command when the movement time TSUM is in the third range (3 / (2f) < TSUM). [Figure 6] Graph plotting the maximum value TMax of the torque of the motor against the movement time TSUM. [Figure 7] Flowchart of the main process. [Figure 8] Flowchart of the position command generation process using the natural vibration frequency component removal method. [Figure 9]Under the first evaluation condition, (A) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the symmetric acceleration / deceleration method and the motor's encoder output value, (B) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the asymmetric acceleration / deceleration method and the motor's encoder output value, (C) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the natural vibration frequency component removal method and the motor's encoder output value, (D) is a graph of the power spectrum obtained by Fourier transforming (A), (E) is a graph of the power spectrum obtained by Fourier transforming (B), (F) is a graph of the power spectrum obtained by Fourier transforming (C), (G) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (A), (H) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (B), and (I) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (C). [Figure 10] Under the second evaluation condition, (A) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the symmetric acceleration / deceleration method and the motor's encoder output value, (B) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the asymmetric acceleration / deceleration method and the motor's encoder output value, (C) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the natural vibration frequency component removal method and the motor's encoder output value, (D) is a graph of the power spectrum obtained by Fourier transforming (A), (E) is a graph of the power spectrum obtained by Fourier transforming (B), (F) is a graph of the power spectrum obtained by Fourier transforming (C), (G) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (A), (H) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (B), and (I) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (C). DETAILED DESCRIPTION OF THE INVENTION
[0012] An embodiment of the present invention will be described. In the following description, left and right, front and rear, and up and down will be used as indicated by arrows in the drawings. The left and right directions, front and rear directions, and up and down directions of machine tool 1 correspond to the X-axis direction, Y-axis direction, and Z-axis direction of machine tool 1, respectively. Machine tool 1 shown in FIG. 1 is a machine that rotates tool 4 attached to spindle 9 and performs cutting on workpiece 3 held on the upper surface of table 13. Numerical control device 30 (see FIG. 2) controls the operation of machine tool 1.
[0013] The structure of machine tool 1 will be described with reference to Figure 1. Machine tool 1 comprises a base 2, a column 5, a spindle head 7, a spindle 9, a table device 10, a tool changer 20, a control box 6, an operation panel 15 (see Figure 2), and acceleration sensors 18 and 19 (see Figure 2). Base 2 is a metal base in the shape of a roughly rectangular parallelepiped. Column 5 is fixed to the rear upper part of base 2. Spindle head 7 is provided so as to be movable in the Z-axis direction along the front surface of column 5. Spindle 9 is rotatably supported inside spindle head 7. Spindle 9 has a mounting hole (not shown) at its bottom. Tool 4 is attached to spindle 9 in this mounting hole, and is rotated forward and backward around an axis extending in the vertical direction by the drive of spindle motor 52 (see Figure 2). Spindle motor 52 is provided on spindle head 7. Spindle head 7 moves in the Z-axis direction using a Z-axis movement mechanism (not shown) provided in front of column 5. The numerical control device 30 controls the driving of the Z-axis motor 51 (see FIG. 2) to control the movement of the spindle head 7 in the Z-axis direction.
[0014] The table device 10 includes a Y-axis movement mechanism (not shown), a Y-axis table 12, an X-axis movement mechanism (not shown), a table 13, etc. The Y-axis movement mechanism is provided on the front upper surface of the base 2 and includes a pair of Y-axis rails, a Y-axis ball screw, a Y-axis motor 54 (see FIG. 2), etc. The Y-axis rails and the Y-axis ball screw extend in the Y-axis direction. The Y-axis rails guide the Y-axis table 12 in the Y-axis direction on the upper surface. The Y-axis table 12 is formed in a roughly rectangular parallelepiped shape and includes a nut (not shown) on the bottom. The nut is screwed onto the Y-axis ball screw. When the Y-axis motor 54 rotates the Y-axis ball screw, the Y-axis table 12 moves along the Y-axis rail together with the nut. Therefore, the Y-axis movement mechanism supports the Y-axis table 12 so that it can move in the Y-axis direction.
[0015] The X-axis movement mechanism is provided on the upper surface of the Y-axis table 12 and includes a pair of X-axis rails (not shown), an X-axis ball screw (not shown), an X-axis motor 53 (see FIG. 2), etc. The X-axis rails and the X-axis ball screw extend in the X-axis direction. The table 13 is formed into a rectangular plate in a plan view and is provided on the upper surface of the Y-axis table 12. The table 13 includes a nut (not shown) on its bottom. The nut is screwed onto the X-axis ball screw. When the X-axis motor 53 rotates the X-axis ball screw, the table 13 moves along the pair of X-axis rails together with the nut. Therefore, the X-axis movement mechanism supports the table 13 so that it can move in the X-axis direction. Therefore, the table 13 moves in the X-axis and Y-axis directions on the base 2 by the Y-axis movement mechanism, the Y-axis table 12, and the X-axis movement mechanism.
[0016] The tool changer 20 is provided in front of the spindle head 7 and is equipped with a disk-shaped tool magazine 21. The tool magazine 21 holds a plurality of tools (not shown) radially on its outer periphery. The tool changer 20 drives the tool magazine 21 with a magazine motor 55 (see Figure 2) and positions the tool specified by a tool change command at the tool change position. The tool change command is issued by an NC program. The tool change position is the lowest position of the tool magazine 21. The tool changer 20 swaps the tool 4 attached to the spindle 9 with the tool attached to the tool magazine 21 through a series of operations: lifting the spindle head 7, rotating the tool magazine 21, and lowering the spindle head 7.
[0017] The control box 6 houses a numerical control device 30 (see FIG. 2). The numerical control device 30 controls a Z-axis motor 51, a spindle motor 52, an X-axis motor 53, and a Y-axis motor 54 (see FIG. 2) provided on the machine tool 1, and performs various machining operations on the workpiece 3 by moving the workpiece 3 held on the table 13 relative to the tool 4 attached to the spindle 9. The various machining operations include drilling using a drill, tap, etc., and side machining using an end mill, milling cutter, etc.
[0018] Operation panel 15 (see Figure 2) is provided, for example, on the outer wall of a cover (not shown) that covers machine tool 1. Operation panel 15 includes input unit 16 and display unit 17 (see Figure 2). Input unit 16 accepts input of various information, operation instructions, etc., and outputs them to numerical control device 30. Display unit 17 displays various screens based on commands from numerical control device 30. Acceleration sensor 18 (see Figure 2) is provided on spindle 9 of machine tool 1 and measures vibrations generated in spindle 9. Acceleration sensor 19 (see Figure 2) is provided on table 13 of machine tool 1 and measures vibrations generated in table 13.
[0019] The electrical configurations of the numerical control device 30 and the machine tool 1 will be described with reference to FIG. 2. The numerical control device 30 and the machine tool 1 include a CPU 31, a ROM 32, a RAM 33, a storage device 34, an input / output unit 35, drive circuits 51A-55A, and an acceleration sensor 18. The CPU 31 controls the numerical control device 30. The ROM 32 stores a main program and other programs. The main program executes the main process shown in FIG. 7. The main process reads the NC program line by line and executes various operations. The NC program consists of multiple lines containing various control commands, and each line commands various operations, including axial movement of the machine tool 1 and tool change. The axial movement includes a positioning command. The positioning command includes information for specifying the movement distance of the driven object and is a command to move the driven object to a specified position. The CPU 31 determines the acceleration pattern of the driven object to the target position based on the movement distance of the driven object specified by the positioning command in the NC program, and transmits a position command corresponding to the determined acceleration to the machine tool 1. In the main processing described below, the CPU 31 of this embodiment generates a position command by a method according to the length of the movement distance of the driven body specified by the positioning command.
[0020] The RAM 33 temporarily stores various types of information. The storage device 34 is non-volatile and stores NC programs and various types of information. The CPU 31 can store in the storage device 34 NC programs input by the operator via the input unit 16 of the operation panel 15, as well as NC programs read in via external input.
[0021] The drive circuit 51A is connected to the Z-axis motor 51 and encoder 51B. The drive circuit 52A is connected to the spindle motor 52 and encoder 52B. The drive circuit 53A is connected to the X-axis motor 53 and encoder 53B. The drive circuit 54A is connected to the Y-axis motor 54 and encoder 54B. The drive circuit 55A is connected to the magazine motor 55 and encoder 55B. The Z-axis motor 51, spindle motor 52, X-axis motor 53, Y-axis motor 54, and magazine motor 55 are all servo motors. Hereinafter, the Z-axis motor 51, spindle motor 52, X-axis motor 53, Y-axis motor 54, and magazine motor 55 will be collectively referred to simply as motor 50. The drive circuits 51A to 55A receive commands from the CPU 31 and output drive currents to the corresponding motors 51 to 55, respectively. The drive circuits 51A to 55A receive feedback signals from the encoders 51B to 55B and perform feedback control of position and speed. The input / output unit 35 is connected to the input unit 16 and display unit 17 of the operation panel 15, and to the acceleration sensors 18 and 19, respectively.
[0022] With reference to Figures 3 to 6, the polynomials used in the natural vibration frequency component elimination method for suppressing excitation of natural vibration frequency components in the machine tool 1 will be described. The polynomials used in the natural vibration frequency component elimination method are derived from an undamped linear vibration model. The undamped linear vibration model, which assumes that no vibration damping occurs, has the characteristic that if the input force does not contain a natural vibration frequency component, the output force will also not contain a natural vibration frequency component. As shown in Figure 3, consider the case where an external force f(t) acts for a finite time on an undamped linear single-degree-of-freedom system consisting of a mass point C of mass m and a spring B of spring constant K. If the displacement of mass point C is x, the equation of motion of the system when the external force f(t) acts from time t from 0 to T is given by the natural angular frequency ω n =√(K / m), it is expressed by the equation for simple harmonic motion shown in Equation 1. In Equation 1, h(t) is 1 when t is greater than or equal to 0 and less than or equal to T, and is 0 when t is less than 0 or greater than T. The two dots above x represent the second derivative of x.
number
[0023] natural angular frequency ω n In an undamped linear vibration model with the above, the necessary and sufficient condition for vibration not to occur when the action of the external force f(t) ends and the time t is equal to or greater than T is that the external force f(t) has a natural angular frequency ω n More specifically, in the Fourier transform of f(t) shown in Equation 2, the real part becomes zero as shown in Equation 3, and the imaginary part becomes zero as shown in Equation 4.
number
number
number
[0024] The target trajectory ξ that the driven body should follow when an ideal position command is given according to the positioning command included in the NC program. t can be expressed as a trigonometric polynomial shown in Equation 5, which is based on a Fourier series. Here, k in Equation 5 is a variable. δ (mm) is the movement distance specified by the positioning command. T SUM (s) is the positioning time according to the positioning command, i.e., the movement time of the driven body. f (Hz) is the natural vibration frequency of the machine tool 1, the target of vibration suppression. ω (rad / s) is defined as 2πf.
number
[0025] Here, when a driven body is moved in accordance with a positioning command, the conventional numerical control device restricts the acceleration of the motor at the start and end of the movement to zero. However, the inventors of the present invention have found that, compared to the conventional technology, there is no restriction on the acceleration from the start to the end of the movement, and the natural vibration frequency component is less likely to be excited. Figures 4(A) to 4(D) show a case where the movement distance instructed by the positioning command is 1 mm, and the movement time TSUM The graphs show the change in acceleration command over time when the time is 0.04 s, the fast Fourier transform results of the acceleration command, the vibration measurement results of machine tool 1, and the fast Fourier transform results of the vibration measurement results of machine tool 1. In Figures 4(A) to 4(D), the solid lines indicate the condition where acceleration is constrained to zero at the start and end of movement, and the dotted lines indicate the condition where there is no acceleration constraint. As shown in Figure 4(A), the maximum acceleration value is smaller under the condition where there is no acceleration constraint, indicated by the dotted line, than under the condition where there is an acceleration constraint, indicated by the solid line. The minimum acceleration value is larger under the condition where there is no acceleration constraint, indicated by the dotted line, than under the condition where there is an acceleration constraint, indicated by the solid line. As shown in Figure 4(C), the residual vibration is smaller under the condition where there is no acceleration constraint, indicated by the dotted line, than under the condition where there is an acceleration constraint, indicated by the solid line. This is because, as shown in Figures 4(B) and 4(D), the amplitude values are similar when the acceleration is constrained to zero and when the acceleration is not constrained to zero around 30 Hz, which is the natural vibration frequency f of the machine tool 1, but the amplitude around 50 Hz is smaller when the acceleration is not constrained to zero than when the acceleration is constrained to zero.
[0026] Based on the results of the above comparison, the numerical control device 30 of this embodiment determines α1 to αN and β1 to βN in the equation shown in Equation 5 from n equations, under the condition that the motor acceleration can take any value at both the start and end of movement. For a typical simple pendulum, n is 6, and N is half of n, or 3. The numerical control device 30 simultaneously sets up six equations based on constraints shown in Equations 6 to 11, and determines the elements α1 to α3 and β1 to β3 as the linear simultaneous equations shown in Equation 12. Equation 6 represents the constraint that the position of the driven body at the end of movement is the movement distance δ (mm) specified by the positioning command. Equation 7 represents the constraint that the position of the driven body at the start of movement is zero. Equation 8 represents the constraint that the velocity of the driven body at the end of movement is zero. Equation 9 represents the constraint that the velocity of the driven body at the start of movement is zero. Equations 10 and 11 indicate constraints for suppressing vibration, and are obtained by substituting the acceleration of the driven body, which is obtained by differentiating equation 8, into equation f(t) shown by the real parts of equations 3 and 4. Equation 12 is a matrix representation of equations 6 to 11, and An to Fn correspond to constants included in equations 6 to 11.
number
number
number
number
number
number
number
[0027] When the undetermined coefficients α1 to α3 and β1 to β3 are determined based on the position constraints shown in equations 6 and 7, the speed constraints shown in equations 8 and 9, and the vibration suppression constraints shown in equations 10 and 11, α1 is expressed by equation 13, and α3 is expressed by equation 14. α2 and β1 to β3 are each zero.
number
number
[0028] T / T SUM Let τ be the dimensionless time expressed by the formula (15) and θ (rad) be the rotation angle of the motor corresponding to the travel distance δ (mm), then the numerical control device 30 can calculate a position command using the formula (15), a speed command using the formula (16), and an acceleration command using the formula (17). The formula for the speed command shown in formula (16) can be obtained by differentiating the formula for the position command shown in formula (15). The formula for the acceleration command shown in formula (17) can be obtained by differentiating the formula for the speed command shown in formula (16). Formula (15) represents the rotation position of the motor corresponding to the position of the driven body. Formula (16) represents the speed of the motor corresponding to the speed of the driven body. Formula (17) represents the acceleration of the motor corresponding to the acceleration of the driven body.
number
number
number
[0029] From the viewpoint of shortening the time required for the numerical control device 30 to execute the NC program, the movement time T SUM Since it is preferable that the travel time is short, the numerical control device 30 determines the minimum travel time as the travel time T SUM As shown in FIG. 5(A), the travel time T SUMis in a first range smaller than 1 / (2f), or as shown in FIG. 5(C), the travel time T SUM In the condition that is in a third range greater than 3 / (2f), one of the maximum and minimum values is taken at t shown in Equation 18, and the other of the maximum and minimum values is taken at t shown in Equation 19. Here, γ is expressed by the formula shown in Equation 20.
number
number
number
[0030] More specifically, as shown in FIG. 5(A), the travel time T SUM When the condition is that is in the first range smaller than 1 / (2f), when time t is zero, that is, at the start of movement, the acceleration of the motor decreases from a predetermined value greater than zero and reaches a minimum value at circle H1. Then, the acceleration increases and reaches a maximum value at circle H2. Then, the acceleration decreases and the time t reaches the movement time T SUM When the moving time T SUM In the third range, where is greater than 3 / (2f), when time t is zero, that is, at the start of movement, the acceleration rises from a predetermined value greater than zero and reaches a maximum value at circle H5. Then, the acceleration falls and reaches a minimum value at circle H6. Then, the acceleration rises until time t reaches the movement time T SUM At this time, that is, at the end of the movement, the value becomes a predetermined value smaller than zero.
[0031] As shown in Figure 5(B), the travel time T SUM In the second range where t is greater than or equal to 1 / (2f) and less than or equal to 3 / (2f), the acceleration of the motor reaches a maximum value at time t=0, and the time t is T SUM More specifically, as shown in FIG. 5B, the acceleration reaches a minimum value when the travel time T SUMWhen the condition is in the second range of 1 / (2f) or more and 3 / (2f) or less, the acceleration reaches its maximum value when time t is zero, that is, at the start of movement, which is circle H3. Then, the acceleration decreases from the maximum value and reaches a minimum value. Then, the acceleration increases from the minimum value and reaches a maximum value. Then, the acceleration decreases, and time t becomes equal to the movement time T SUM At this time, that is, at the end of the movement, circle H4, the acceleration reaches its minimum value.
[0032] Substituting Equation 18 into Equation 17 and taking the absolute value, the maximum value of the motor acceleration A shown in Equation 21 is Max , the maximum torque T of the motor shown in Equation 22 Max The maximum torque required for the motor to move is T Max is the maximum motor acceleration A Max (rad / s 2 ) plus the inertia J (kgm 2 ), so for example, the read length L b When driving a linear movement part via a ball screw of (m), the motor rotation angle θ corresponding to the movement distance δ (mm) is δ / 1000 / L b × 2π. If the driven body includes a linearly moving part, the inertia J of the entire driven body can be calculated by adding the inertia of the rotating part of the driven body to the inertia converted value of the mass of the linearly moving part. For example, the inertia of the rotating part including the motor and ball screw can be calculated as J R and the lead length L b (m) through the ball screw, the total mass M of the driven body including the table 13, the workpiece 3 fixed to the table 13, and the jig t When driving a linearly moving part of (kg), the inertia conversion value of the linearly moving part is J L is M t (L b / 2π) 2 (kgm 2 ) and the inertia of the entire driven body J=J R+ J L The maximum torque of the motor is T Max is the specified torque T of the motor Lim The motor torque T is set as follows: Limmay be a value set according to the performance of the motor, or may be the maximum value of the motor torque that the user can tolerate. In other words, when the natural vibration frequency component removal method is used to move the driven body of the machine tool 1, the movement time T SUM The constraint is the specified torque T Lim is.
number
number
[0033] Travel time T SUM When the condition is 1 / (2f) or more and 3 / (2f) or less, as shown in FIG. 5(B), when time t is zero, that is, at the start of movement indicated by circle H3, the acceleration of the motor reaches its maximum value, and the time t is equal to the movement time T SUM At this time, the acceleration reaches its minimum value at the end of the movement indicated by circle H4. The maximum value of the acceleration at this time is A Max is expressed by the formula 23, and the maximum torque of the motor T Max is expressed by the formula 24, and the travel time T SUM The minimum value of T SUM_Min is shown in equation 25.
number
number
number
[0034] The graph in Figure 6 shows the travel time T SUM and the maximum torque of the motor T Max The following shows an example of the relationship between the travel time T SUM is smaller than 1 / (2f) and the travel time T shown in legend Q3 SUM When is greater than 3 / (2f), the travel time T SUM and the maximum torque of the motor TMax The relationship between these two is found using Equation 22. Although not shown in FIG. 6, the maximum value T of the motor torque indicated by the legend Q1 Max is the travel time T SUM The maximum torque value T of the motor indicated by legend Q3 decreases monotonically. Max is the travel time T SUM The travel time T SUM is smaller than 1 / (2f) and travel time T SUM When the condition is that the moving time T is larger than 3 / (2f), the numerical control device 30 uses a numerical optimization method such as Newton's method in the main processing described later to find the optimal moving time T SUM The travel time T shown in legend Q2 is identified. SUM When is greater than or equal to 1 / (2f) and 3 / (2f), the maximum value of the motor torque T Max is the travel time T in the range R2. SUM The travel time T SUM and the maximum torque of the motor T Max can be calculated using equation 24. Travel time T SUM When is equal to or greater than 1 / (2f) and is equal to or less than 3 / (2f), the numerical control device 30 uses Equation 25 to calculate the optimal moving time T SUM In the main processing described later, the numerical control device 30 of this embodiment uses the above-mentioned formula 15 and the calculated travel time T SUM A position command is generated by:
[0035] 7 and 8, the main processing executed by the numerical control device 30 will be described. When starting machining of the workpiece 3 using the machine tool 1, the CPU 31 starts the main processing by reading and executing the main program stored in the ROM 32. It is assumed that, at the start of the main processing, a predetermined torque that can be output by a motor that moves a driven object is stored in the storage device 34. The predetermined torque may be input to the numerical control device 30 by an operator via the input unit 16 before starting the main processing. The CPU 31 may acquire the predetermined torque via the input unit 16 and store it in the storage device 34. It is also assumed that, at the start of the main processing, the total mass of the workpiece 3 fixed to the table 13 as a machining target and the jig is stored in the storage device 34. It is also assumed that, at the start of the main processing, the operator may input the total mass of the workpiece 3 and the jig to the numerical control device 30 via the input unit 16 before starting the main processing. The CPU 31 may acquire the total mass of the workpiece 3 and the jig via the input unit 16 and store it in the RAM 33.
[0036] As shown in FIG. 7, the CPU 31 acquires a command on the Nth line of the NC program stored in the storage device 34 (S1). The initial value of the variable N is 1. The CPU 31 determines whether the Nth command acquired in S1 is a positioning command (S2). In this embodiment, the positioning command is an command to relatively move the workpiece 3 held on the table 13 and the tool 4 attached to the spindle 9. More specifically, the positioning command includes at least one of an command specifying the table 13 as the driven body and an command specifying the spindle head 7 as the driven body. The command specifying the table 13 as the driven body includes at least one of the position of the table 13 in the X direction and the position of the table 13 in the Y direction. The command specifying the spindle head 7 as the driven body includes the position of the spindle head 7 in the Z direction. If the Nth command is not a positioning command (S2: NO), the CPU 31 controls the machine tool 1 using a drive method corresponding to the Nth command and executes the Nth command (S3). The command that is not a positioning command is, for example, a tool radius compensation command, a tool change command, etc. The CPU 31 advances the process to S7.
[0037] For simplicity, the following description will be given assuming that the positioning command includes only the X-axis position of the table 13. When the positioning command includes the Y-axis position of the table 13 and the Z-axis position of the spindle head 7, similar processing can be performed for each motor that controls the position of the driven body. When the Nth command is a positioning command (S2: YES), the CPU 31 determines whether the travel distance specified by the positioning command is equal to or less than threshold L (S4). The travel distance is calculated based on the position specified by the positioning command and the current position. Threshold L is determined in advance so as to satisfy at least one of the following first to third determination conditions, and is stored in the storage device 34.
[0038] The first decision condition is that the threshold value L≦Dvel is satisfied. Dvel is twice the distance required to reach the maximum speed in a conventional positioning movement, that is, the distance required to accelerate to the maximum speed and then immediately decelerate to a stop.
[0039] The second decision condition is a condition that satisfies the condition that the threshold value L≦Deqb is satisfied. Deqb is the distance at which the residual vibration after movement, that is, the vibration remaining after movement, is equivalent between the conventional positioning movement and the natural vibration frequency component removal method. The second decision condition is a condition that takes into account the fact that as the movement distance becomes longer, the difference in residual vibration between the natural vibration frequency component removal method and the conventional positioning movement becomes smaller.
[0040] The third decision condition is that the threshold value L≦Deqt is satisfied. Deqt is the moving time T SUM The third condition is the distance at which the residual vibration is suppressed by the natural vibration frequency component removal method and the conventional positioning movement. SUM This condition takes into consideration that the difference between
[0041] If the travel distance is not equal to or less than threshold value L (S4: NO), CPU 31 controls machine tool 1 using a drive method according to the Nth command and executes the Nth positioning command (S5). CPU 31 proceeds to S7. If the travel distance is equal to or less than threshold value L (S4: YES), CPU 31 executes position command generation processing using a natural vibration frequency component removal method (S6).
[0042] As shown in FIG. 8, the CPU 31 calculates the moving distance of the driven body instructed by the positioning command, the natural vibration frequency f of the machine tool 1, and the predetermined torque T that the X-axis motor 53 can output. Lim Using this, the travel time T required for the driven body to move is calculated. SUM Specifically, CPU 31 refers to storage device 34 and determines, as variables, rotation angle θ of X-axis motor 53 corresponding to movement distance δ (mm), natural vibration frequency f of machine tool 1, inertia J of the driven body, and predetermined torque T of X-axis motor 53. Lim is set (S11).
[0043] The CPU 31 calculates the movement time T SUM In the first condition for determining the rotation angle θ of the X-axis motor 53 corresponding to the moving distance δ (mm), the natural vibration frequency f, and the predetermined torque T Lim Using the first time T SUM The first condition in this embodiment is to determine the first time T SUM The CPU 31 substitutes the variables set in S11 into the formula (25) to calculate the first time T SUM (1) is determined.
[0044] The CPU 31 determines the first time T SUM It is determined whether (1) is a value within a predetermined range set according to the natural vibration frequency f (S13). The predetermined range may be set appropriately, for example, a range between 1 / (2f) and 3 / (2f). SUM (1) is within a predetermined range set according to the natural vibration frequency f, that is, the first time TSUM If (1) is equal to or greater than 1 / (2f) and equal to or less than 3 / (2f) (S13: YES), the CPU 31 calculates the travel time T SUM The first time T SUM (1) is determined (S14).
[0045] First time T SUM When (1) is not within the predetermined range set according to the natural vibration frequency f (S13: NO), the CPU 31 calculates the moving time T SUM The CPU 31 calculates the torque T1 when the torque T is 1 / (2f) (S14). Lim It is determined whether the torque T1 is smaller than the predetermined torque T Lim If the moving time T SUM The initial value of the torque T1 is set to the boundary value 3 / (2f) of the predetermined range (S16). Lim If it is not smaller than (S15: NO), the CPU 31 determines the travel time T SUM The initial value of is set to the boundary value 1 / (2f) of the predetermined range (S17).
[0046] After S16 or S17, the CPU 31 sets the boundary values of the predetermined range set in the process of S16 or S17 as initial values, and calculates the moving distance, the natural vibration frequency f, and the predetermined torque T Lim The second time determined by the numerical optimization method is determined using the second time T SUM (2) includes a condition that the acceleration of the X-axis motor 53 according to the formula (2) can take any value. The CPU 31 applies numerical optimization such as Newton's method to the formula (22) to obtain the second time T SUM (2) is determined (S18). SUM The second time T SUM (2) is set (S19).
[0047] After S20 or S19, the CPU 31 calculates the moving time T SUMis substituted into the equation shown in Equation 15 to generate a position command, which is output to the machine tool 1 (S21). The position command indicates the position of the driven body at each predetermined time from the start of movement to the end of movement. When the positioning command includes only the position of table 13 in the X direction, machine tool 1, which has acquired the position command, controls X-axis motor 53 instructed by the position command, and moves table 13, which is the driven body, over movement time T SUM The CU 31 then ends the position command generation process using the natural vibration frequency component removal method, and returns the process to the main process of Fig. 7. The CPU 31 then advances the process to S7.
[0048] In S7, the CPU 31 determines whether the final line of the NC program has been acquired in the processing of S1 (S7). If the final line of the NC program has not been acquired in the processing of S1 (S7: NO), the CPU 31 increments the variable N by 1 and returns the processing to S1. If the final line of the NC program has been acquired in the processing of S1 (S7: YES), the CPU 31 ends the main processing.
[0049] 9(A) to 10(I), an evaluation test will be described to confirm whether vibrations of machine tool 1 can be suppressed when a motor is controlled using a position command generated using the natural vibration frequency component elimination method. As comparative examples, a case where a position command was generated using the symmetric acceleration / deceleration method and a case where a position command was generated using the asymmetric acceleration / deceleration method were used. As shown in FIG. 9(A), the symmetric acceleration / deceleration method is an acceleration / deceleration control method in which the time it takes for the acceleration of the motor to increase linearly from zero to reach its maximum value is equal to the time it takes for it to decrease linearly from its maximum value and return to zero. As shown in FIG. 9(B), the asymmetric acceleration / deceleration method is an acceleration / deceleration control method in which the time it takes for the acceleration to increase linearly from zero to reach its maximum value is different from the time it takes for it to decrease linearly from its maximum value and return to zero. 9 and 10, (A) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the symmetric acceleration / deceleration method and the motor's encoder output value, (B) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the asymmetric acceleration / deceleration method and the motor's encoder output value, (C) is a graph showing the change over time in acceleration obtained by second-order differentiation of the acceleration command generated using the natural vibration frequency component removal method and the motor's encoder output value, (D) is a graph of the power spectrum obtained by Fourier transforming (A), (E) is a graph of the power spectrum obtained by Fourier transforming (B), (F) is a graph of the power spectrum obtained by Fourier transforming (C), (G) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (A), (H) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (B), and (I) is a graph showing the measurement results of vibration when machine tool 1 is driven using the acceleration command of (C).
[0050] 9(A) to 9(I) show the case where the natural vibration frequency f of the machine tool 1 is 22 Hz and the moving time T SUM The results of the evaluation test were performed under the conditions that the time is 0.065 seconds and the movement distance δ instructed by the positioning command is 10 mm. In this case, the natural vibration period is about 0.045 seconds based on the natural vibration frequency f, and T SUMAs shown in Figures 9(A), 9(D), and 9(G), when the symmetric acceleration / deceleration method was used, the component near the natural vibration frequency f was excited, and vibration of the machine tool 1 was observed. This is because, with the symmetric acceleration / deceleration method, as shown in Figure 9(D), T SUM This is because there is a peak in the power spectrum at frequencies below approximately 31 Hz, which is the inverse of 0.065 s / 2, and this excites 22 Hz, which is the natural vibration frequency f. On the other hand, when the asymmetric acceleration / deceleration methods shown in Figures 9(B), 9(E), and 9(H) were used, and when the natural vibration frequency component elimination methods shown in Figures 9(C), 9(F), and 9(I) were used, excitation of components near the natural vibration frequency f was suppressed, and vibration of the machine tool 1 was suppressed to the same extent when the asymmetric acceleration / deceleration method and the natural vibration frequency component elimination method were used.
[0051] 10(A) to 10(I) show the natural vibration frequency f of the machine tool 1 is 22 Hz, and the moving time T SUM The results of the evaluation test were performed under the conditions that the time is 0.05 seconds and the movement distance δ instructed by the positioning command is 10 mm. In this case, the natural vibration period is about 0.045 seconds based on the natural vibration frequency f, and T SUM It is relatively close to 0.05 s. When the symmetric acceleration / deceleration method is used as shown in Figures 10(A), 10(D), and 10(G), and when the asymmetric acceleration / deceleration method is used as shown in Figures 10(B), 10(E), and 10(H), components near the natural vibration frequency f are excited, and vibration of the machine tool 1 is observed. This is because, with the symmetric acceleration / deceleration method, as shown in Figure 10(D), T SUM This is because the power spectrum has a peak at frequencies below 40 Hz, which is the inverse of 0.05 s / 2, and the asymmetric acceleration / deceleration method has a peak at frequencies below approximately 30 Hz, which excites the natural vibration frequency f of 22 Hz. On the other hand, when the natural vibration frequency component removal methods shown in Figures 10(C), 10(F), and 10(I) were used, the excitation of components near the natural vibration frequency f was suppressed, and the vibration of the machine tool 1 was suppressed. In this way, the natural vibration period and the travel time T SUM Under conditions where the time is short, the natural vibration frequency component removal method is more advantageous in terms of vibration than the symmetric acceleration / deceleration method and the asymmetric acceleration / deceleration method.
[0052] From the above evaluation test results, the travel time T SUM is longer than the natural vibration period of the machine tool 1, the vibration can be suppressed even with the conventional method, but the movement time T SUM is relatively close to or shorter than the natural vibration period of the machine tool 1, it is difficult to suppress the vibration using the conventional method. SUM However, it has been confirmed that by applying the natural vibration frequency component removal method, the numerical control device 30 can suppress vibrations under conditions where it is difficult to suppress vibrations using conventional positioning movements.
[0053] In the above embodiment, the numerical control device 30, the machine tool 1, and the CPU 31 are examples of the numerical control device, the machine device, and the control unit of the present invention, respectively. The table 13 and the spindle head 7 are examples of the driven body of the present invention. The Z-axis motor 51, the spindle motor 52, the X-axis motor 53, and the Y-axis motor 54 are examples of the motor of the present invention. S19 and S20 are examples of the determination process of the present invention. S21 is an example of the generation process of the present invention.
[0054] The numerical control device 30 of the above embodiment includes a CPU 31 that outputs a command to a motor for a machine tool 1 that includes a motor and a driven body that is moved by the driving of the motor. The CPU 31 determines the movement distance of the driven body instructed by the positioning command, the natural vibration frequency f of the machine tool 1, and the predetermined torque T that the motor can output. Lim Using this, the travel time T required for the driven body to move is calculated. SUM The CPU 31 executes a determination process to determine the moving distance and the moving time T SUM and the polynomial derived from the undamped linear vibration model to reduce the natural vibration frequency f component, SUM The CPU 31 of the numerical controller 30 executes a generation process for generating a command to control the motor to move the driven body by the movement distance (S21). Lim and travel time T SUM Based on the relationship between the above, the movement time TSUM Even when the time is relatively short, this contributes to generating a command that suppresses excitation of vibration frequency components specific to machine tool 1 more than before.
[0055] In the determination process, the CPU 31 determines the travel time T SUM In the first condition to determine the travel distance, the natural vibration frequency f, and the predetermined torque T of the motor Lim is a value within a predetermined range set according to the natural vibration frequency f (S13: TES), the first time is set as a moving time T SUM (S20), and if the first time is not within the predetermined range (S13: NO), the travel time T SUM In the second condition for determining the above, the boundary value of the predetermined range is set as the initial value, and the moving distance, the natural vibration frequency f, and the predetermined torque T Lim The second time is determined by the numerical optimization method using the travel time T SUM The CPU 31 of the numerical control device 30 calculates, by a relatively simple process, the movement time T SUM Even when the time is relatively short, this contributes to generating a command that suppresses excitation of vibration frequency components specific to machine tool 1 more than before.
[0056] If the movement distance is equal to or less than the threshold L (S4: YES), the CPU 31 executes the determination process (S19, S20). The CPU 31 of the numerical control device 30 contributes to performing the determination process when the movement distance is suitable for applying the determination process to generate a command.
[0057] The first condition includes a condition that the motor acceleration corresponding to the first time is maximized at the start of movement. The second condition includes a condition that the motor acceleration corresponding to the second time can take any value at the start of movement. By setting the second condition to a condition that allows the acceleration to take any value at the start and end of movement, in other words, a condition that eliminates constraints on acceleration, CPU 31 of numerical control device 30 contributes to generating commands that suppress excitation of low-frequency vibration frequency components specific to machine tool 1 more than conventional techniques.
[0058] The present invention is not limited to the above-described embodiment and various modifications are possible. While the present invention reduces vibrations in the machine tool 1, the techniques of the above-described embodiment may be applied to mechanical devices other than the machine tool 1. The driven body of the mechanical device may be changed as appropriate. The type of motor that moves the driven body may be changed as appropriate, for example, to a stepping motor or a linear motor. The present invention is applicable to both rotational movement and linear movement of the driven body, or to a combination of these. The movement distance when the driven body is rotational movement may be expressed, for example, by the rotation angle of the driven body. When the mechanical device is capable of moving the driven body in multiple directions, the present invention may be applied to movement in some or all of the multiple directions.
[0059] 7 may be stored in the storage device of each device before the CPU 31 executes the program. Therefore, the program acquisition method, acquisition path, and device that stores the program may be changed as appropriate. The program executed by the CPU 31 may be received from another device via a cable or wireless communication and stored in the storage device 34. The other device may include, for example, a PC and a server connected via a network.
[0060] The steps of the main processing are not limited to being executed by the CPU 31, and some or all of them may be executed by other electronic devices (e.g., ASIC). The steps of the main processing may be distributed among multiple electronic devices (e.g., multiple CPUs). The order of the steps of the main processing may be changed, and steps may be omitted or added as necessary. The following modifications may be made to the main processing as appropriate.
[0061] In the above embodiment, the machine tool 1 has one natural vibration frequency f. However, this is not limiting. For example, the machine tool 1 may have two or more natural vibration frequencies f. In this case, the numerical control device 30 simply adds a term corresponding to the natural vibration frequency f to the polynomial derived from the undamped linear vibration model. The polynomial derived from the undamped linear vibration model may be modified as needed, and may be a trigonometric polynomial or an orthogonal polynomial such as a Legendre polynomial. The first and second conditions may be modified as needed. The first condition may include a condition that the acceleration of the motor reaches a maximum value at a predetermined timing other than the start of movement. The predetermined range set according to the natural vibration frequency may be modified as needed or may be set according to a value other than the natural vibration frequency. The first condition may include a condition that the acceleration reaches a minimum value at a predetermined timing other than the end of movement. The numerical control device 30 may generate and output a position command using a natural vibration frequency component removal method, regardless of the movement distance of the driven body specified by the positioning command. The numerical optimization process for the second condition is not limited to the Newton method, and many other algorithms such as the quasi-Newton method and the steepest descent method can be applied. The determination process of S19 or S20 may be changed as appropriate depending on the first condition and the second condition. For example, the numerical control device 30 uses the given conditions to determine T Max T Lim The travel time T is smaller than the minimum travel time. SUM The generation process of S21 may be changed as appropriate, and for example, the generated command may be at least one of a position command, a speed command, and an acceleration command, as long as it is an instruction that can control a motor that moves a driven body of a mechanical device.
[0062] The above-mentioned modifications may be combined as appropriate within the scope of the claims. The applicant intends to obtain patent rights for not only the combinations exemplified in the claims, but also for other combinations that do not deviate from the gist of the present invention and do not cause any contradictions. [Explanation of symbols]
[0063] 1: Machine tool 7: Spindle head 13: Table 30: Numerical control device 31: CPU 51: Z-axis motor 53: X-axis motor 54: Y-axis motor
Claims
1. A numerical control device including a control unit that outputs a command to a motor for a mechanical device including a motor and a driven body that moves by driving the motor, The control unit a determination process for determining a movement time required for the movement of the driven body using a movement distance of the driven body instructed by a positioning command, a natural vibration frequency of the mechanical device, and a predetermined torque that can be output by the motor; a generation process of applying the movement distance and the movement time to a polynomial derived from an undamped linear vibration model, thereby generating a command to control the motor to move the driven body by the movement distance in the movement time in which the natural vibration frequency component is reduced; A numerical control device configured to execute the above.
2. The control unit, in the determination process, a first condition for determining the movement time of the motor driven in response to the positioning command, wherein if a first time determined using the movement distance, the natural vibration frequency, and the predetermined torque is a value within a predetermined range set in accordance with the natural vibration frequency, the first time is set as the movement time; 2. The numerical control device according to claim 1, wherein a second condition for determining the movement time when the first time is not the value within the predetermined range sets a boundary value of the predetermined range as an initial value, and sets a second time determined by a numerical optimization method using the movement distance, the natural vibration frequency, and the predetermined torque as the movement time.
3. The numerical control device according to claim 1 , wherein the control unit executes the determination process when the movement distance is equal to or less than a threshold value.
4. the first condition includes a condition that the acceleration of the motor corresponding to the first time becomes maximum at the start of movement, 3. The numerical control device according to claim 2, wherein the second condition includes a condition that the acceleration of the motor according to the second time period can take any value at the start of the movement.
5. A control method for a numerical control device, which is executed by a control unit of a numerical control device that outputs a command to a motor for a mechanical device including a motor and a driven body that is moved by the drive of the motor, comprising: a determination process for determining a movement time required for the movement of the driven body using a movement distance of the driven body instructed by a positioning command, a natural vibration frequency of the mechanical device, and a predetermined torque that can be output by the motor; a generation process of applying the movement distance and the movement time to a polynomial derived from an undamped linear vibration model, thereby generating a command to control the motor to move the driven body by the movement distance in the movement time in which the natural vibration frequency component is reduced; A control method for a numerical control device comprising:
Citation Information
Patent Citations
Numerical control device, and control method of numerical control device
JP2023149799A