Control devices, machine tools, methods, computer programs and storage media
The control device generates and times second movement commands using notch filters to address vibration suppression in discrete-time systems, effectively reducing oscillations in machine tools.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-02
- Publication Date
- 2026-03-13
AI Technical Summary
In discrete-time control systems, existing methods cannot effectively reduce vibration, resulting in insufficient suppression of system oscillations.
By generating multiple second motion commands, the physical quantities and output times of these commands are calculated based on the control cycle and the machine tool's natural frequency, and vibration is reduced using notch and moving average filters.
It effectively reduces machine tool vibration and improves the control accuracy and stability of discrete-time systems.
Smart Images

Figure 2026046393000001_ABST
Abstract
Description
[Technical Field]
[0001] This technology relates to a control device, machine tool, method, computer program, and storage medium for controlling the movement of a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position. [Background technology]
[0002] A method has been proposed to reduce undesirable vibrations by decomposing a continuous acceleration input into multiple acceleration impulse commands and inputting these multiple acceleration impulse commands into the system (see Patent Document 1). [Prior art documents] [Patent Documents]
[0003] [Patent Document 1] Patent No. 3015396 [Overview of the Initiative] [Problems that the invention aims to solve]
[0004] In discrete-time controlled systems, a signal is input to the system at each discrete time interval, i.e., at each control cycle of the system. Therefore, even if the above method, which is designed for continuous input, is applied to a discrete-time controlled system, the system's oscillations may not be sufficiently reduced.
[0005] This disclosure is made in view of the above circumstances and aims to provide a control device, a machine tool, a method, a computer program, and a storage medium that can control a machine tool using a discrete-time system to prevent vibration from occurring. [Means for solving the problem]
[0006] A control device according to one embodiment of the present disclosure is a control device for a machine tool that outputs a command at each control cycle to a drive unit that moves a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position, and comprises an acquisition unit that acquires a first movement command for the moving object, and a generation unit that generates a plurality of second movement commands from the first movement command based on the control cycle and the natural frequency of the machine tool, wherein the plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, and the generation unit calculates the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command and the second output time of the second command based on the control cycle and the natural frequency, and outputs a command based on the first command to the drive unit at the first output time and outputs a command based on the second command to the drive unit at the second output time.
[0007] In one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command, the magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time.
[0008] In one embodiment of the present disclosure, the control device generates three or more of the second movement commands.
[0009] In one embodiment of this disclosure, three or more second movement commands are generated. Specifically, in a control device that outputs a command for each control cycle, a notch filter designed to remove the natural frequencies of the machine tool is applied to the first movement command to reduce vibrations of the machine tool.
[0010] In one embodiment of the present disclosure, the control device calculates the magnitude of the physical quantity indicated by the second movement command based on the remainder obtained by dividing one-quarter of the period of the natural frequency by the control period.
[0011] In one embodiment of this disclosure, the magnitude of the physical quantity indicated by the second movement command is calculated based on the remainder obtained by dividing one-quarter of the period of the natural frequency by the control period, thereby reducing the vibration of the machine tool.
[0012] In one embodiment of the present disclosure, the control device calculates the output time based on the quotient obtained by dividing half the period of the natural frequency by the control period.
[0013] In one embodiment of this disclosure, the output timing is calculated based on the quotient obtained by dividing half the period of the natural frequency by the control period, thereby reducing the vibration of the machine tool.
[0014] In one embodiment of the present disclosure, the control device is such that the first movement command and the second movement command are a speed command, an acceleration command, or a jerk command.
[0015] In one embodiment of this disclosure, the magnitude of the physical quantity indicated by each second movement command, which is a speed command, acceleration command, or jerk command, and the time of output are calculated to reduce vibration of the machine tool.
[0016] In one embodiment of the present disclosure, the control device generates a second movement command, the generation unit of which is the number obtained by adding 2 to the quotient obtained by dividing the period of the natural frequency by the control period.
[0017] In one embodiment of this disclosure, a second movement command is generated by adding two to the quotient obtained by dividing the period of the natural frequency by the control period, and that is, a moving average filter is applied to the first movement command to reduce the vibration of the machine tool.
[0018] In one embodiment of the present disclosure, the control device calculates the magnitude of the physical quantity indicated by the second movement command based on the quotient and remainder obtained by dividing half the period of the natural frequency by the control period.
[0019] In one embodiment of this disclosure, the magnitude of the physical quantity indicated by the second movement command is calculated based on the quotient and remainder obtained by dividing half the period of the natural frequency by the control period, thereby reducing the vibration of the machine tool.
[0020] In one embodiment of the present disclosure, the control device calculates the output time based on the quotient obtained by dividing half the period of the natural frequency by the control period.
[0021] In one embodiment of this disclosure, the output timing is calculated based on the quotient obtained by dividing half the period of the natural frequency by the control period, thereby reducing the vibration of the machine tool.
[0022] In one embodiment of the present disclosure, the control device is such that the first movement command and the second movement command are a speed command, an acceleration command, or a jerk command.
[0023] In one embodiment of this disclosure, the magnitude of the physical quantity indicated by each second movement command, which is a speed command, acceleration command, or jerk command, and the time of output are calculated to reduce vibration of the machine tool.
[0024] A machine tool according to one embodiment of the present disclosure comprises a table that supports a workpiece, a spindle that holds a tool, a drive unit that moves an object to be moved, including the table or the spindle, to a predetermined position, and a control device that outputs a command to the drive unit at each control cycle, wherein the control device comprises an acquisition unit that acquires a first movement command for the object to be moved, and a generation unit that generates a plurality of second movement commands from the first movement command based on the control cycle and the natural frequency of the machine tool, wherein the plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, and the generation unit calculates the magnitude of the physical quantity indicated by the first command and the magnitude of the physical quantity indicated by the second command, the first output time of the first command and the second output time of the second command based on the control cycle and the natural frequency, and outputs a command based on the first command to the drive unit at the first output time and outputs a command based on the second command to the drive unit at the second output time.
[0025] In one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command, the magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time.
[0026] A method according to one embodiment of the present disclosure is a method for outputting commands to a drive unit that moves a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position at each control cycle, wherein a first movement command of the moving object is acquired, a plurality of second movement commands are generated from the first movement command based on the control cycle and the natural frequency of the machine tool, the plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, the magnitude of the physical quantity indicated by the first command and the magnitude of the physical quantity indicated by the second command, the first output time of the first command and the second output time of the second command are calculated based on the control cycle and the natural frequency, a command based on the first command is output to the drive unit at the first output time, and a command based on the second command is output to the drive unit at the second output time.
[0027] In one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command, the magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time.
[0028] A computer program according to one embodiment of the present disclosure is a computer program executed in a control device of a machine tool that outputs commands to a drive unit that moves an object to be moved to a predetermined position, including a table that supports a workpiece or a spindle that holds a tool, at each control cycle, wherein the control device is instructed to obtain a first movement command for the object to be moved, and to generate a plurality of second movement commands from the first movement command based on the control cycle and the natural frequency of the machine tool, wherein the plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, and the control device is instructed to calculate the magnitude of the physical quantity indicated by the first command and the magnitude of the physical quantity indicated by the second command, the first output time of the first command and the second output time of the second command based on the control cycle and the natural frequency, and to output a command based on the first command to the drive unit at the first output time and a command based on the second command to the drive unit at the second output time.
[0029] In one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command, the magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time.
[0030] A storage medium according to one embodiment of the present disclosure is a storage medium that stores a computer program executed by a control device of a machine tool that outputs commands to a drive unit that moves a moving object, including a table that supports a workpiece or a spindle that holds a tool, to a predetermined position at each control cycle, wherein the computer program causes the control device to acquire a first movement command for the moving object, and to generate a plurality of second movement commands from the first movement command based on the control cycle and the natural frequency of the machine tool, wherein the plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, and the computer program causes the control device to calculate the magnitude of the physical quantity indicated by the first command and the magnitude of the physical quantity indicated by the second command, the first output time of the first command and the second output time of the second command based on the control cycle and the natural frequency, and to output a command based on the first command to the drive unit at the first output time and a command based on the second command to the drive unit at the second output time.
[0031] In one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command, the magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time. [Effects of the Invention]
[0032] In a control device, machine tool, method, computer program, and storage medium according to one embodiment of this disclosure, a plurality of second movement commands are generated from a first movement command to prevent vibration from occurring in the machine tool. The magnitude of the physical quantity indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive unit at the output time. Therefore, vibration of the machine tool can be reduced using a discrete-time system. [Brief explanation of the drawing]
[0033] [Figure 1] This is a perspective view of a machine tool according to Embodiment 1. [Figure 2]This is a perspective view of a machine tool with the tool changer and track cover omitted. [Figure 3] This is a block diagram of a machine tool. [Figure 4] This is an explanatory diagram illustrating the characteristics of moving average filters and notch filters. [Figure 5] This is an explanatory diagram illustrating the removal of machine tool vibrations using moving average filters and notch filters. [Figure 6] This is an explanatory diagram illustrating how to create a notch filter in a discrete-time system. [Figure 7] This is an explanatory diagram illustrating how to create a notch filter in a discrete-time system. [Figure 8] This is a flowchart illustrating the process of creating a notch filter using a control device. [Figure 9] This is a flowchart illustrating the motor drive process by the control device. [Figure 10] This graph explains why vibrations generated in machine tools can be eliminated. [Figure 11] This is an explanatory diagram illustrating a method for creating a moving average filter in a discrete-time system according to Embodiment 2. [Figure 12] This is an explanatory diagram illustrating how to create a moving average filter in a discrete-time system. [Figure 13] This is a flowchart illustrating the process of creating a moving average filter using a control device. [Figure 14] This is a flowchart illustrating the motor drive process by the control device. [Figure 15] This figure shows graphs illustrating the relationship between acceleration and time, and graphs illustrating the relationship between velocity and time during acceleration. [Figure 16] This figure shows graphs illustrating the relationship between acceleration and time, and the relationship between velocity and time, during deceleration. [Figure 17] This figure shows graphs illustrating the relationship between acceleration and time, and graphs illustrating the relationship between velocity and time. [Figure 18] This is an explanatory diagram illustrating the relationship between acceleration command p11 and acceleration commands p111 and p112. [Modes for carrying out the invention]
[0034] (Embodiment 1) The present invention will be described below based on drawings showing a machine tool according to Embodiment 1. In the following description, the terms top, bottom, front, back, left, and right in the figures will be used. Figure 1 is a perspective view of the machine tool, and Figure 2 is a perspective view of the machine tool with the tool changer and track cover omitted.
[0035] The machine tool 100 includes a control device 4, a base 20, a Y-axis movement device 22, an X-axis movement device 26, a vertical column 28, a Z-axis movement device 30, a spindle head 32, a tool changer 10, etc. The X-axis corresponds to the left-right direction, the Y-axis corresponds to the front-back direction, and the Z-axis corresponds to the up-down direction. The base 20 is fixed to the floor surface. The base 20 supports the vertical column 28 so that it can move in the front-back and left-right directions via the Y-axis movement device 22 and the X-axis movement device 26.
[0036] The front of the base 20 supports the workpiece holder 120. The workpiece holder 120 is equipped with an A-axis motor 124 and a C-axis motor 79 (see Figure 3). The A-axis extends to the left and right. Driven by the A-axis motor 124, the workpiece holder 120 is rotatable around the A-axis. The workpiece holder 120 has a table 121 for holding workpieces. The table 121 has a holding surface. In Figure 1, the holding surface is the top surface. The C-axis is perpendicular to the holding surface and the A-axis. Driven by the C-axis motor 79, the workpiece holder 120 is rotatable around the C-axis. A Z-axis direction moving device 30 is provided on the vertical column 28. The Z-axis direction moving device 30 moves the spindle head 32 vertically. The tool changer 10 changes the tool mounted on the spindle head 32.
[0037] The Y-axis movement device 22 comprises two parallel tracks 22a, a plurality of moving bodies 22b, a Y-axis movement platform 22c, and a Y-axis motor 22d (see Figure 3). The tracks 22a extend in the front-rear direction on the upper surface of the base 20. The moving bodies 22b are fitted to each of the two tracks 22a so as to be movable in the front-rear direction. The Y-axis movement platform 22c straddles the two tracks 22a and is fixed on the moving bodies 22b. Driven by the Y-axis motor 22d, the Y-axis movement platform 22c moves in the front-rear direction.
[0038] The X-axis movement device 26 comprises two parallel tracks 26a, a plurality of movable bodies 26b, a column base 26c, and an X-axis motor 26d (see Figure 3). Track 26a extends horizontally from the upper surface of the Y-axis movement base 22c. The movable bodies 26b are fitted to each of the two tracks 26a so as to be movable horizontally. The column base 26c straddles the two tracks 26a and is fixed on the movable bodies 26b. The column 28 is fixed on the column base 26c. Driven by the X-axis motor 26d, the column base 26c moves horizontally. The column 28 moves in the forward / backward and left / right directions by the Y-axis movement device 22 and the X-axis movement device 26.
[0039] The Z-axis movement device 30 comprises two parallel tracks 30a, a plurality of movable bodies 30b, a spindle head base 30c, and a Z-axis motor 30d (see Figure 3). The tracks 30a extend vertically from the front of the vertical column 28. The plurality of movable bodies 30b are fitted to each of the two tracks 30a so as to be movable vertically. The spindle head base 30c straddles the two tracks 30a and is fixed to the front of the movable bodies 30b. Driven by the Z-axis motor 30d, the spindle head base 30c moves vertically.
[0040] The spindle head 32 is fixed to the spindle head base 30c. The spindle head 32 rotatably holds the spindle 34, which extends vertically into the front interior. The spindle 34 has a hollow cylindrical shape. By driving and controlling the X-axis motor 26d, Y-axis motor 22d, and Z-axis motor 30d, the spindle head 32 moves forward and backward, left and right, and up and down.
[0041] The tool changer 10 comprises an oval track (not shown) and a plurality of movable platforms (not shown) that move along the track. The track surrounds the spindle head 32 and the vertical column 28, extends from the front lower side to the rear upper side, and is inclined at a predetermined angle from the horizontal plane. The plurality of movable platforms are connected in a chain-like manner by links. As shown in Figure 1, a gear 51 and a magazine motor 52 are positioned inside the track. The gear 51 is connected to the magazine motor 52 and rotates when driven by the magazine motor 52. The plurality of movable platforms mesh with the gear 51 and rotate on the track when driven by the magazine motor 52. Each movable platform supports a gripping arm 53.
[0042] An empty gripping arm 53 is positioned at the front end of the track of the tool changer 10, and as the spindle 34 with the tool 11 mounted rises, the gripping arm 53 removes the tool 11 from the spindle 34 and grips it. A gripping arm 53 that grips the tool 11 is positioned at the front end of the track of the tool changer 10, and as the spindle 34 that does not grip the tool 11 descends, the spindle 34 mounts the tool 11.
[0043] Figure 3 is a block diagram of the machine tool 100. The control device 4 comprises a control unit 4a, a main memory unit 4b, an auxiliary memory unit 4c, and an interface 4d. The control unit 4a is a processor, such as a CPU or MPU. A logic circuit, such as an FPGA or ASIC, may be used instead of a processor. The main memory unit 4b is, for example, RAM. The auxiliary memory unit 4c has, for example, non-volatile memory or a hard disk. Non-volatile memory is, for example, EEPROM or flash ROM. The auxiliary memory unit 4c stores the control program (program product) of the machine tool 1. The control program includes a machining program for processing a workpiece. The auxiliary memory unit 4c stores various variables, such as the quotient q, remainder i, and control period dt, which will be described later. Alternatively, the control program may be stored on a portable storage medium 4e and installed from the storage medium 4e to the auxiliary memory unit 4c, or the control device 4 may be configured to communicate and the control program may be downloaded from a server to the auxiliary memory unit 4c.
[0044] The control unit 4a reads a control program from the auxiliary storage unit 4c to the main storage unit 4b, and based on the control program, outputs drive signals to the X-axis motor 26d, Y-axis motor 22d, Z-axis motor 30d, spindle motor 35, magazine motor 52, A-axis motor 125, or C-axis motor 79 via the interface 4d and drive circuits 26e, 22e, 30e, 35a, 52a, 125a, or 79a. Hereinafter, when it is not necessary to distinguish between the drive circuits 26e, 22e, 30e, 35a, 52a, 125a, or 79a, they will simply be referred to as drive circuits, and when it is not necessary to distinguish between the X-axis motor 26d, Y-axis motor 22d, Z-axis motor 30d, magazine motor 52, A-axis motor 125, or C-axis motor 79, they will simply be referred to as motors. The drive circuits constitute the drive unit. Each motor has an encoder, and the encoder transmits a detected value to the drive circuit. The drive circuit receives the detected value from the encoder and performs feedback control. The operator operates the control unit 21, which inputs information to the control device 4 via the interface 4d. The control unit 21 has a keyboard, touch panel, or switches, etc. The control unit 4a outputs a signal to the display unit 40 for displaying information via the interface 4d. The display unit 40 has a display screen.
[0045] When changing the tool attached to the spindle, after removing the tool from the spindle, the magazine motor 52 accelerates to its maximum speed, maintains that maximum speed for a predetermined time, then decelerates and positions the predetermined tool stored in the tool magazine 7 into the replacement position.
[0046] The machining program has multiple instructions. The control device 4 reads the multiple instructions from the machining program in order, and if an instruction is a movement instruction, it generates a position instruction indicating the target position and outputs the position instruction to the drive circuit at each stage of the control cycle of the control device 4. The control cycle is a predetermined period, for example, 1 msec. The drive circuit drives the motor. If the motor drive generates vibrations with a frequency close to the natural frequency of the machine tool 100, a large vibration will occur in the machine tool 100.
[0047] In order to eliminate the generation of vibrations having the natural frequency of the machine tool 100, the control device 4 applies a predetermined filter to the command based on the position command, converts the filtered command back into a position command, and outputs the position command to the drive circuit.
[0048] The specified filter is, for example, a notch filter that removes the natural vibrations of the machine tool 100. The notch filter is pre-designed to remove the natural vibrations of the machine tool 100.
[0049] Figure 4 is an explanatory diagram illustrating the characteristics of a moving average filter and a notch filter. The filter shown in Figure 4 is generally called an input shaper or input shaping filter, but since it exhibits the characteristics of a notch filter, it will be referred to as a notch filter hereafter. Graph 1 shows the movement speed V0 based on the movement command, which is an instruction in the machining program, the movement speed V1 with the moving average filter applied, and the movement speed V2 with the notch filter applied. Both the moving average filter and the notch filter are assumed to be designed to remove the natural vibrations of the machine tool 100. Time t1 is the start of movement, time t2 is a time after t1, and time t3 is a time after t2. The time between time t1 and time t2 is approximately the same as the time between time t2 and time t3. Vd is the target speed, and Vm is an intermediate speed smaller than Vd.
[0050] The movement speed V0 reaches the target speed Vd at time t1 and remains constant thereafter. The movement speed V1 increases linearly from time t1 to time t3, reaches the target speed Vd at time t3, and remains constant thereafter. The movement speed V2 reaches the intermediate speed Vm at time t1, remains constant thereafter until t2, reaches the target speed Vd at time 2, and remains constant thereafter.
[0051] Graph 2 shows the square wave acceleration A1 obtained by differentiating the moving velocity V1 (which is obtained by applying a moving average filter to the moving velocity V0) with respect to time, as well as the mechanical vibration displacement W0 that occurs when acceleration A1 rises and the mechanical vibration displacement W1 that occurs when acceleration A1 falls. Mechanical vibration displacements W0 and W1 represent the relative displacement between the tool tip of the machine tool 100 and the workpiece. Vibration displacements W0 and W1 are sinusoidal and are the natural vibrations of the machine tool 100. The phases of vibration displacements W0 and W1 are shifted by 180 degrees. Note that τ is the time between time points t1 and t3, and corresponds to one period of the natural vibration of the machine tool 100. Although omitted in the graph, the vertical axes of W0 and W1 represent position.
[0052] From time t3 onward, the vibrational displacement W1 forms a waveform that is the same as the vibrational displacement W0, which is shifted in phase by 180 degrees, that is, a waveform with an amplitude that cancels out the vibrational displacement W0.
[0053] Graph 3 shows the impulse-like accelerations A21 and A22, obtained by differentiating the moving velocity V2 (which is the moving velocity V0 with a notch filter applied) with respect to time, as well as the vibration displacements W0 and W2 generated by the impulse-like accelerations A21 and A22, respectively. The vibration displacements W0 and W2 are sinusoidal natural vibrations of the machine tool 100. The phases of the vibration displacements W0 and W2 are shifted by 180 degrees. Although not shown in the graph, the vertical axes of W0 and W2 represent position.
[0054] From time t2 onward, the vibrational displacement W2 forms a waveform that is the same as the vibrational displacement W0, but with a phase shift of 180 degrees, that is, a waveform with an amplitude that cancels out the vibrational displacement W0.
[0055] Figure 5 is an explanatory diagram illustrating the removal of vibrations from machine tool 100 using a moving average filter and a notch filter. Graph 1 in Figure 5 is the same as Graph 1 in Figure 4. Graph 2 in Figure 5 shows the state in Graph 2 of Figure 4 where vibration displacements W0 and W1 cancel each other out, and vibration displacement W0 is removed from time t3 onwards. Graph 3 in Figure 5 shows the state in Graph 3 of Figure 4 where vibration displacements W0 and W2 cancel each other out, and vibration displacement W0 is removed from time t2 onwards. Although not shown in the graphs, the vertical axis of W0 represents position.
[0056] As shown in Graph 2 of Figure 5, when a moving average filter is used, the vibration displacement W0, i.e., the vibration of the machine tool 100, cancels out from time τ, i.e., one period of the natural vibration, after the vibration displacement W0 has started, and the natural vibration of the machine tool 100 is eliminated.
[0057] As shown in Graph 3 of Figure 5, when a notch filter is used, the vibration displacements W0 and W2 cancel each other out and the natural vibration of the machine tool 100 is removed after time τ / 2, or half a period of the natural vibration, has elapsed since the start of vibration displacement W0, i.e., the natural vibration of the machine tool 100. When a notch filter is used, the natural vibration of the machine tool 100 can be removed half a period earlier than when a moving average filter is used.
[0058] In other words, by creating a notch filter with the characteristics shown in Graph 3 of Figures 4 and 5, and using the created notch filter, the natural vibrations of the machine tool 100 can be eliminated early after the natural vibrations occur.
[0059] Figures 6 and 7 are explanatory diagrams illustrating the method for creating a notch filter in a discrete-time system. In Figure 6, the axis extending from left to right is the time axis. dt is the control period of the control device 4, which is a predetermined period, for example, 1 msec. fr is the natural frequency. i is the remainder of (1 / (4·fr)) / dt. q is the quotient of (1 / (4·fr)) / dt.
[0060] X is an acceleration command based on a movement command, which is an instruction in the machining program, and the length of arrow X indicates the magnitude of the acceleration. X1 and X2 are acceleration commands generated based on acceleration command X. As shown in Figure 6, the time when acceleration command X is output, i.e., the time when it is output from the control device 4 to the drive circuit, is t0.
[0061] The lengths of arrows X1 and X2 indicate the magnitude of acceleration. The magnitude of acceleration indicated by acceleration commands X1 and X2 is half the magnitude of acceleration indicated by acceleration command X. The output time of acceleration command X1 is 1 / (4·fr) before time t0, and the output time of acceleration command X2 is 1 / (4·fr) after time t0. That is, the control device 4 divides acceleration command X into acceleration commands X1 and X2. The time between acceleration commands X1 and X2 is 1 / (2·fr), which is half the period τ of the natural oscillation.
[0062] As shown in Figure 6, the control period dt is set with respect to time t0. The output times of acceleration commands X1 and X2 are generally not integer multiples of the control period dt away from time t0. Ideally, the notch filter has the characteristic of dividing acceleration command X into acceleration commands X1 and X2. However, if acceleration commands X1 and X2 are not integer multiples of the control period dt away from time t0, the control device 4 cannot accurately perform control using the notch filter. Therefore, in order to generate controllable acceleration commands, acceleration commands α and β are generated based on acceleration command X1, which are located at times integer multiples of the control period dt away from time t0, and acceleration commands α′ and β′ are generated based on acceleration command X2, which are located at times integer multiples of the control period dt away from time t0. That is, acceleration command X1 is divided into acceleration commands α and β, and acceleration command X2 is divided into acceleration commands α′ and β′.
[0063] The lengths of arrows α and β indicate the magnitude of acceleration. The output time of acceleration command α is dt·q time before time t0. Since q is the quotient of (1 / (4·fr)) / dt, the output time of acceleration command α is an integer multiple of the control period dt away from time t0. The output time of acceleration command β is dt·(q+1) time away from time t0, which is dt before the output time of acceleration command α. That is, the output time of acceleration command β is an integer multiple of the control period dt away from time t0.
[0064] The lengths of arrows α′ and β′ indicate the magnitude of acceleration. The output time of acceleration command α′ is dt·q time after time t0. Since q is the quotient of (1 / (4·fr)) / dt, the output time of acceleration command α′ is an integer multiple of the control period dt away from time t0. The output time of acceleration command β′ is dt·(q+1) time after time t0, which is dt after the output time of acceleration command α′. That is, the output time of acceleration command β′ is an integer multiple of the control period dt away from time t0.
[0065] The output time of acceleration command α′ is 2q hours after the output time of acceleration command α. Here, q is the quotient obtained by dividing one-quarter of the period τ of the natural frequency fr by the control period dt. That is, the control unit 4a determines the output times of acceleration commands α and α′ based on the quotient q. Also, since the output times of acceleration commands β and β′ are dt away from the output times of acceleration commands α and α′, once the output times of acceleration commands α and α′ are determined, the output times of acceleration commands β and β′ are also determined. That is, the control unit 4a determines the output times of acceleration commands β and β′ based on the quotient q.
[0066] The acceleration commands α, β, α′, and β′ are arranged symmetrically with respect to time t0.
[0067] In Figure 6, acceleration commands α and β are located before time t0, which is the output time of acceleration command X, so they cannot be executed as a real-time filter. In order to be executed as a real-time filter, acceleration commands α and β must be simultaneous with or after the input acceleration command X. Therefore, as shown in Figure 7, acceleration commands α, β, α′, and β′ are delayed so that the output time of acceleration command β is time t0, i.e., the current time. Acceleration command X' is a virtual acceleration command obtained by delaying acceleration command X. In this way, a notch filter is created.
[0068] Figure 8 is a flowchart illustrating the process of creating a notch filter by the control device 4. The control unit 4a determines whether or not the natural frequency fr of the machine tool 100 has been acquired (S1). The natural frequency fr has been measured in advance, for example, by experiment. The operator, for example, operates the control unit 21 and inputs the natural frequency fr to the control device 4. If it is determined that the natural frequency fr has not been acquired (S1: NO), the control unit 4a returns to step S1.
[0069] If it is determined that the natural frequency fr has been obtained (S1:YES), for example, if the auxiliary storage unit 4c stores the natural frequency fr based on input from the operator, the control unit 4a calculates the remainder i, quotient q, angular velocity ω, coefficient a, coefficient b, and coefficient c (S2).
[0070] As mentioned above, the remainder i is the remainder of (1 / (4·fr)) / dt, and the quotient q is the quotient of (1 / (4·fr)) / dt. The angular velocity ω is calculated by ω = 2π·fr. The coefficient a is calculated by a = sin(ω·(dt-i)). The coefficient b is calculated by b = sin(ω·i). The coefficient c is calculated by c = a + b.
[0071] The control unit 4a creates a notch filter (S3) and terminates the process. The auxiliary storage unit 4c stores the created notch filter. The notch filter defines the acceleration commands α, β, α′ and β′ as follows. Note that X is the value of the acceleration command X, and z -1 This represents a delay element equivalent to one sample in a discrete-time system. Here, it means a delay equal to the control period dt. β′ = X·b / (2·c) α′=X·a·z -1 (2·c) α = X·a·z -(1+2q) (2·c) β = X·b·z -(2+2q) (2·c) By applying a notch filter to the acceleration command X, acceleration commands α, β, α′, and β′ are calculated. With respect to the output time of β′, the output time of α′ is delayed by dt, the output time of α is delayed by (1+2q)·dt, and the output time of β is delayed by (2+2q)·dt.
[0072] Figure 9 is a flowchart illustrating the motor drive process by the control device 4. The control unit 4a reads an instruction from the machining program (S11). The control unit 4a determines whether the read instruction is a movement command for the spindle 34 or the table 121 (S12). If it is determined to be a movement command (S12: YES), the control unit 4a generates a position command based on the target position and target velocity indicated by the movement command (S13). The control unit 4a performs a second derivative on the position command to convert the position command into an acceleration command, i.e., obtains an acceleration command X (S14). Since the control device 4 operates at discrete time intervals dt, the derivative is performed by taking the difference from the previous value. As mentioned above, the acceleration command X is an acceleration command based on the movement command, which is an instruction in the machining program. The acceleration command X constitutes the first movement command.
[0073] The control unit 4a applies a notch filter stored in the auxiliary storage unit 4c to the acceleration command X. That is, the control unit 4a generates a plurality (four in this embodiment) of acceleration commands α, β, α′, and β′ (S15). The acceleration commands α, β, α′, and β′ constitute the second movement command. The control unit 4a performs two integrals on the acceleration commands α, β, α′, and β′ to convert the acceleration commands α, β, α′, and β′ into position commands g, h, g′, and h′ (S16). The control unit 4a outputs the position commands g, h, g′, and h′ to the drive circuit at the time of output of the acceleration commands α, β, α′, and β′ (S17), and returns to step S11.
[0074] In step S12, if it is determined that the read instruction is not a move instruction (S12: NO), the control unit 4a determines whether the read instruction is a termination instruction (S18). If it is determined that it is not a termination instruction (S18: NO), the control unit 4a executes the read instruction, i.e., the instruction (S19), and returns to step S11. If it is determined that it is a termination instruction (S18: YES), the control unit 4a terminates the process.
[0075] Next, we will explain why vibrations generated in the machine tool 100 can be eliminated by dividing the acceleration command X into four acceleration commands α, β, α', and β'. Figure 10 is a graph illustrating why vibrations generated in the machine tool 100 can be eliminated.
[0076] In Figure 10, y1 represents the vibration displacement W0 in Graph 3 of Figure 4, and shows the mechanical vibration generated by the acceleration command X1 in Figures 6 and 7. y2 represents the vibration displacement generated by the acceleration command β′, and y3 represents the vibration displacement generated by the acceleration command α′. y4 represents the vibration displacement W2 in Graph 3 of Figure 4, and shows the vibration displacement generated by the acceleration command X2 in Figures 6 and 7. y5 represents the mechanical vibration displacement generated by the acceleration command α, and y6 represents the mechanical vibration displacement generated by the acceleration command β. The period of each mechanical vibration is equal to the period of the natural vibration of machine tool 100. y4 is phase-lagging y1 by τ / 2, i.e., (1 / 2fr). y3 is phase-lagging y2 by dt. y3 is phase-lagging y1 by i. y6 is phase-lagging y5 by dt. y4 is phase-lagging y5 by i.
[0077] The acceleration commands X1 and X2 are obtained by dividing X into two equal parts, and furthermore, α, β, α′, and β′ are obtained by dividing X1 and X2 into two parts each, X / 2 = X1 = X2 = α + β = α' + β' It satisfies the following equation, and furthermore, due to symmetry, it satisfies the following equation. α=α′, β=β′ As described above, since the sum of the divided accelerations is equal to the acceleration before division, the machine tool 100 can be accelerated to the original command speed even after division. Here, the vibrational displacement obtained by superimposing y2 and y3 is represented as y1′, and the vibrational displacement obtained by superimposing y5 and y6 is represented as y4′, as shown in the following equation. y1′=y2+y3 y4′=y5+y6 y2 and y3 are vibrational displacements generated by acceleration commands α and β. However, the amplitude of y1′ (not shown), which is the superposition of y2 and y3, is slightly smaller than the amplitude of vibrational displacement y1 generated by acceleration command X1, which is the sum of α and β. This is because, although the sum of the amplitudes of vibrational displacements y2 and y3 is equal to the amplitude of y1, the phases of y2 and y3 are shifted by the control period dt. On the other hand, the phases of y1′ and y1 can be made to match by appropriately setting the ratio of α and β. Similarly, the phases of y4′ (not shown) and y4 can also be made to match by appropriately setting the ratio of α′ and β′. By designing a discrete-time notch filter so that the amplitudes of y1′ and y4′ match, the natural vibrations of the machine tool 100 can be canceled out, similar to a continuous-time notch filter. Therefore, let A and B be the respective vibration displacement amplitudes, and represent each vibration displacement as follows: y² = Bsin[ω{t+(dt-i)}] y3 = Asin[ω(ti)] y5 = Asin[ω{t-((τ / 2)-i)}] y6=Bsin[ω{t-((τ / 2)+dt-i)}] As described above, the ratio of A to B is determined such that the phases of y1′ and y1, and y4′ and y4 are the same, that is, y1 and y4 cancel each other out. Here, the ratio of A to B is equal to the ratio of the acceleration values of acceleration commands α' and α to the acceleration values of acceleration commands β' and β.
[0078] y1′=y2+y3 =Bsin[ω{t+(dt-i))}]+Asin[ω(ti)] =Bsin{ωt+ω(dt-i))}+Asin(ωt-ωi) =Bsin(ωt)·cos{ω(dt - i)} + Bcosωt·sin{ω(dt - i)} +Asin(ωt)·cos(ωi) - Acos(ωt)·sin(ωi) =[Bcos{ω(dt - i)} + Acos(ωi)]·sinωt +[Bsin{ω(dt - i)} - Asin(ωi)]·cosωt Let [Bcos{ω(dt - i)} + Acos(ωi)] be P and [Bsin{ω(dt - i)}-Asin(ωi)] be Q. Then, =Psin(ωt)+Qcos(ωt) =√(P 2 +Q 2 ).·sin(ωt + Φ), sinΦ = Q / √(P 2 +Q 2 ), cosΦ = P / √(P 2 +Q 2 ) Here, find the relationship between A and B such that y2 + y3=(jA + kB)sin(ωt) (j and k are coefficients). That is, find the relationship between A and B when Φ = 0, that is, sinΦ = 0 and Q = 0.
[0079] From Q = [Bsin{ω(dt - i)} - Asin(ωi)] = 0, Asin(ωi)=Bsin{ω(dt - i)} Therefore, B = A·sin(ωi) / sin{ω(dt - i)} ··· Equation (1) is obtained. Since the acceleration commands α and β are the divided acceleration command X1, X1 = α + β Using the ratio of Equation (1), α = X1·a / c = X·a / (2·c) β = X1·b / c = X·b / (2·c) can be shown to be true. The relationship between the acceleration commands α’, β’ and X2 is the same. Also, y1′ = y2 + y3 = [Acos(ωi)+Bcos{ω(dt - i)}]·sin(ωt) is obtained.
[0080] Then (1) is the product of y5+y6 y4′=y5+y6=(jA+kB)sin[ω{t-(τ / 2)}]((j and k are also) Thus, the range of y1′ and the range of y4′ are defined The symbols y1′ and y4′ are equivalent.
[0081] y5+y6 =Asin[ω{t-((τ / 2)-i)}]+Bsin[ω{t-((τ / 2)+dt-i)}] =Asin{ω(t-(τ / 2))+ωi)}+Bsin{ω(t-(τ / 2))-ω(dt-i)} =Asin{ω(t-(τ / 2))}·cos(ωi)+Acos{ω(t-(τ / 2))}·sin(ωi) +Bsin{ω(t-(τ / 2))}·cos{ω(dt-i)}-Bcos{ω(t-(τ / 2))}·sin{ω(dt-i){ =[Acos(ωi)+Bcos{ω(dt-i)}]·sin{ω(t-(τ / 2))} +[Asin(ωi)-Bsin{ω(dt-i)}]·cos{ω(t-(τ / 2))} [Acos(ωi)+Bcos{ω(dt-i)}]をP′, [Asin(ωi)-Bsin{ω(dt-i)}]をQ′. =P′sinω(t-(τ / 2))+Q′cosω(t-(τ / 2)) =√(P′ 2 +Q′ 2 )·sin{ω(t-(τ / 2))-Φ} and cosΦ=Q′ / √(P′ 2 +Q′ 2 ),cosΦ=P′ / √(P′ 2 +Q′ 2 )
[0082] Q′=[Asin(ωi)-Bsin{ω(dt-i)}] and define B in(1). Q′=As(ωi)-As(ωi)=0 Let Y=0 and Φ=0 Therefore, y4=y5+y6=[Acos(ωi)+Bcos{ω(dt-i)}]·sin{ω(t-(τ / 2))}
[0083] As mentioned above, y1′=y2+y3=[{Acos(ωi)+Bcos{ω(dt-i)}]·sin(ωt) Therefore, the amplitude of y1' is equal to the amplitude of y4'. Since y1' and y4' are 180 degrees out of phase, y1' and y4' cancel each other out.
[0084] In the machine tool 100 according to Embodiment 1, in order to prevent vibration from occurring in the machine tool 100, a plurality of acceleration commands α, β, α′, and β′, i.e., second movement commands, are generated from an acceleration command X, i.e., a first movement command, which is obtained by converting a position command. The magnitude of the acceleration indicated by each second movement command and the output time of each second movement command are calculated, and a command based on each second movement command is output to the drive circuit at the output time. Therefore, vibration of the machine tool 100 can be reduced using a discrete-time system.
[0085] Furthermore, four acceleration commands α, β, α′, and β′ are generated. Specifically, in the control device 4 that outputs a command for each control period dt, a notch filter designed to remove the natural frequency fr of the machine tool 100 is applied to the acceleration command X, thereby reducing the vibration of the machine tool 100.
[0086] Furthermore, based on the remainder i obtained by dividing one-quarter of the period τ of the natural frequency fr by the control period dt, the magnitude of the acceleration indicated by the acceleration commands α, β, α′, and β′ is calculated, thereby reducing the vibration of the machine tool 100.
[0087] Furthermore, the output timing is calculated based on the quotient 2q obtained by dividing half the period τ of the natural frequency fr by the control period dt, thereby reducing the vibration of the machine tool 100.
[0088] The notch filter described above is applied to the movement commands of the spindle 34 or the table 121, but it may also be applied to the movement commands of the tool magazine 7.
[0089] (Embodiment 2) The present invention will be described below based on drawings showing a machine tool 100 according to Embodiment 2. In Embodiment 2, components similar to those in Embodiment 1 are denoted by the same reference numerals, and their detailed descriptions are omitted. While Embodiment 1 created a notch filter, Embodiment 2 creates a moving average filter. The moving average filter suppresses vibrations by accelerating to a target velocity Vd with constant acceleration over a period τ (see Graph 2 in Figures 4 and 5). Ideally, in a discrete-time system, this is equivalent to dividing the acceleration command X, i.e., the acceleration impulse, into τ / (dt) units.
[0090] Figures 11 and 12 are explanatory diagrams illustrating the method for creating a moving average filter in a discrete-time system. In Figure 11, the axis extending from left to right is the time axis. The control device 4 generates acceleration commands α and β based on the acceleration command X. That is, it divides the acceleration command X into acceleration commands α and β. If the quotient of τ / (dt) is k, there are k acceleration commands β. If a remainder occurs in τ / (dt), an acceleration command α for the remainder is required. There are two acceleration commands α. Hereafter, the two acceleration commands will also be referred to as α and α'. The magnitude of each acceleration command β is the same.
[0091] The control device 4 arranges k acceleration commands β at time intervals of dt. That is, the output times of each acceleration command β are spaced apart by dt. The output time of the acceleration command β located in the center is t0. The control device 4 sets two acceleration commands α and α′ at times dt away from the acceleration commands β located at both ends. In Figures 11 and 12, acceleration command α is set at a time dt away from the leftmost, i.e., the frontmost, acceleration command β, and acceleration command α′ is set at a time dt away from the rightmost, i.e., the rearmost, acceleration command β. The two acceleration commands α and α′ are acceleration commands corresponding to the remainder i of τ / (dt). That is, the control device 4 divides acceleration command X into k+2 acceleration commands, where k is the integer part of τ / (dt) = 1 / (fr·dt). The magnitude of the acceleration indicated by acceleration command X is the sum of the magnitudes of the accelerations in the k acceleration commands β and the sum of the magnitudes of the accelerations in the two acceleration commands α and α′.
[0092] In Figure 11, acceleration commands α and β are located before time t0, which is the output time of acceleration command X, so they cannot be executed as a real-time filter. In order to be executed as a real-time filter, acceleration commands α and β must be simultaneous with or after the input acceleration command X. Therefore, as shown in Figure 12, acceleration commands α, α′, and β are delayed so that the output time of acceleration command α is time t0, i.e., the current time. Acceleration command X′ is a virtual acceleration command obtained by delaying acceleration command X. In this way, a moving average filter is created.
[0093] Figure 13 is a flowchart illustrating the process of creating a moving average filter by the control device 4. The control unit 4a determines whether or not the natural frequency fr of the machine tool 100 has been acquired (S21). The natural frequency fr has been measured in advance, for example, by experiment. The operator, for example, operates the operation unit 21 and inputs the natural frequency fr to the control device 4. If it is determined that the natural frequency fr has not been acquired (S21: NO), the control unit 4a returns to step S21.
[0094] If it is determined that the natural frequency fr has been obtained (S21: YES), for example, if the auxiliary storage unit 4c stores the natural frequency fr based on input from the operator, the control unit 4a calculates the remainder i, quotient q, angular velocity ω, coefficient a, coefficient b, and coefficient c (S22).
[0095] The remainder i is the remainder of (1 / (2fr)) / dt, and the quotient q is the quotient of (1 / (2fr)) / dt. The angular velocity ω is calculated by ω = 2π·fr. The coefficient a is calculated by a = sin(ω·i). The coefficient b is calculated by b = sin(ω·i) + sin(ω·(dt-i)). The coefficient c is calculated by c = 2·a + 2·b·q.
[0096] The control unit 4a creates a moving average filter (S23) and terminates the process. The auxiliary storage unit 4c stores the created moving average filter. The moving average filter defines the acceleration commands α, β, and α′ as follows. Note that |X| is the magnitude of the acceleration indicated by the acceleration command X, and z -1 This represents a delay element equivalent to one sample. Here, it means a delay equal to the control period dt. α′=|X| / c·a β1 = |X|·c·b·z -1 · · · β q =|X|·c·b·z -q α = |X| / c·a·z -(1+q) By applying a moving average filter to the acceleration command X, the acceleration commands α, β1···β q And α′ is calculated.
[0097] Figure 14 is a flowchart illustrating the motor drive process by the control device 4. The control unit 4a reads an instruction from the machining program (S31). The control unit 4a determines whether the read instruction is a movement command for the spindle 34 or the table 121 (S32). If it is determined to be a movement command (S32: YES), the control unit 4a generates a position command based on the target position and target velocity indicated by the movement command (S33). The control unit 4a performs a second derivative on the position command to convert the position command into an acceleration command, i.e., obtains an acceleration command X (S34). Since the control device 4 operates at discrete time intervals dt, the derivative is performed by taking the difference from the previous value. As mentioned above, the acceleration command X is an acceleration command based on the movement command, which is an instruction in the machining program. The acceleration command X constitutes the first movement command.
[0098] The control unit 4a applies a moving average filter stored in the auxiliary storage unit 4c to the acceleration command X, that is, the control unit 4a generates a plurality of acceleration commands α, β, and α′ (S35). The acceleration commands α, β, and α′ constitute a second movement command. The control unit 4a performs two integrals on the acceleration commands α, β, and α′ to convert the acceleration commands α, β, and α′ into position commands g, h, and g′ (S36). The control unit 4a outputs the position commands g, h, and g′ to the drive circuit at the time of output of the acceleration commands α, β, and α′ (S37), and returns to step S31.
[0099] In step S32, if it is determined that the read instruction is not a move instruction (S32: NO), the control unit 4a determines whether the read instruction is a termination instruction (S38). If it is determined that it is not a termination instruction (S38: NO), the control unit 4a executes the read instruction, i.e., the instruction (S39), and returns to step S31. If it is determined that it is a termination instruction (S38: YES), the control unit 4a terminates the process.
[0100] In the machine tool 100 according to Embodiment 2, acceleration commands β and α, α′, i.e., second movement commands are generated, which are the number of quotients k obtained by dividing the period τ of the natural frequency fr by the control period dt. That is, a moving average filter is applied to the acceleration command X, i.e., the first movement command, to reduce the vibration of the machine tool 100.
[0101] Furthermore, based on the quotient q and remainder i obtained by dividing half the period τ of the natural frequency fr by the control period dt, the physical quantity indicated by the second movement command, such as the magnitude of acceleration, is calculated to reduce the vibration of the machine tool 100.
[0102] (Embodiment 3) The present invention will be described below based on drawings showing a machine tool 100 according to Embodiment 3. In the configuration of Embodiment 3, components similar to those in Embodiment 2 are denoted by the same reference numerals, and their detailed descriptions are omitted. In Embodiment 3, a moving average filter is created. Unlike Embodiment 1, in Embodiment 3, the command from the control device 4 does not need to be output at control period dt (e.g., 1 msec) intervals, making it a generalized embodiment.
[0103] Figure 15 shows graphs illustrating the relationship between acceleration and time, and the relationship between velocity and time, during acceleration. Figure 16 shows graphs illustrating the relationship between acceleration and time, and the relationship between velocity and time, during deceleration.
[0104] As shown in the upper graph of Figure 15, the control device 4, based on the acceleration command X (not shown), sets the acceleration command p as the acceleration command on the acceleration side. 1s , p 1f , p 1e Generates acceleration command p 1f The number is N f It is an individual. Note that p 1s =p 1e That is the case.
[0105] time t 1s t 1e is, p 1s , p 1eThis is the point at which the input is made. Time t1 is the point at which the acceleration command for the acceleration side is input. τ ma This is 1 / fr, which is one period of vibration with natural frequency fr. 1s This is a time point prior to time t1. 1e This is from time t1 to time τ ma This refers to a point in time after that period has elapsed.
[0106] As shown in the upper graph of Figure 16, the control device 4, based on the acceleration command X (not shown), sets the acceleration command p as the acceleration command for the deceleration side. 2s , p 2f , p 2e Generates acceleration command p 2f The number is N f There are f items. 2s =-p 1s , p 2f =-p 1f , p 2e =p 2s That is the case.
[0107] time t 2s t 2e is, p 2s , p 2e This is the point at which the input is made. Time t2 is the point at which the acceleration command for the deceleration side is input. 2s This is a time point before time t2. 2e This is from time t2 to time τ ma This refers to a point in time after that period has elapsed.
[0108] As shown in the lower graph of Figure 15, acceleration command p 1s , p 1f , p 1e If the distance traveled is D1, D1=N 1s p 1s (dt) 2 +N 1f p 1f (dt) 2 +N 1e p 1e (dt) 2 This is the result. N f =floor(τma / dt), N 1s =t half / dt, N 1f =N f N 1s -N f (N f +1) / 2, N 1e =t half / dt-(N f +1) t half =(t 2s -t 1s +ceil(τ ma / dt)*dt) / 2 is. Note that floor is a division operation that rounds down the decimal part to obtain an integer. Ceil is a division operation that rounds up the decimal part to obtain an integer.
[0109] As shown in the graph below Figure 16, when the moving distance due to acceleration commands p 2s , p 2f , p 2e is taken as D2, D2=-(N 2s p 2s (dt) 2 +N 2f p 2f (dt) 2 +N 2e p 2e (dt) 2 ) becomes. Note that, N 2s =N 1e , N 2f =N 1f , N 2e =N 1s is.
[0110] Since the distance D from the starting point 0 to the target position is D = D1 + D2, as a distance condition, N 1s p 1s +N 1f p 1f +N 1e p 1e -(N2s p 2s +N 2f p 2f +N 2e p 2e ) = D / (dt) 2 This holds true. Furthermore, p 2s =-p 1s , p 2f =-p 1f , p 2e =p 2s So, to summarize, (2N 1s +2N 1e )p 1s +2N 1f p 1f =D / (dt) 2 This is the result.
[0111] Also, from the phase condition, p 1f =(1+β1)p 1s Therefore, the acceleration command p 1s , p 1f , p 1e , p 2s , p 2f , p 2e It can be calculated as follows: p 1s =D / (dt) 2 ·(1 / (2(N 1s +N 1e ) + 2N 1f (1+β1))) p 1f =(1+β1)p 1s p 1e =p 1s p 2s =-p 1s p 2e =p 2s p 2f =-p 1f Note that β1=sin(ωr1dt) / sin(ω(1-r1)dt), r1=1-((τ ma / dt)-N f ) / 2.
[0112] Therefore, the control unit 4a controls the acceleration command p described above. 1s , p 1f , p 1e , p 2s , p 2f , p 2e A moving average filter is generated to produce the acceleration command p, and by applying the moving average filter to the acceleration command X, the acceleration command p 1s , p 1f , p 1e , p 2s , p 2f , p 2e Perform the calculation.
[0113] (Embodiment 4) The present invention will be described below based on drawings showing a machine tool 100 according to Embodiment 4. In the configuration of Embodiment 4, components similar to those in Embodiment 1 are denoted by the same reference numerals, and their detailed descriptions are omitted. In Embodiment 4, a notch filter is created. Note that, unlike Embodiment 2, in Embodiment 4, the command of the control device 4 itself does not need to be output at control cycle dt (e.g., 1 msec) intervals, making it a generalized embodiment. Figure 17 shows graphs illustrating the relationship between acceleration and time, and graphs illustrating the relationship between velocity and time. Figure 18 shows the acceleration command p 11 And acceleration command p 111 , p 112 This is an explanatory diagram illustrating the relationship between the two.
[0114] The control device 4 creates an acceleration command p1 as the acceleration command on the acceleration side based on the acceleration command X (not shown), and the acceleration command p1 is converted to acceleration command p 11 and acceleration command p 12 It is divided into two parts. The control device 4 controls the acceleration command p 11 Acceleration command p 111 And acceleration command p 112 It is divided into two parts. As shown in Figure 18, acceleration command p 11 The input time is t 11 In this case, the acceleration command p 111 The input time is time t 11 From time r 11 This is the point in time before dt, and the acceleration command p112 At the input time point, it is the time point after time (1 - r 11 )dt from time point t 11 .
[0115] Similarly, the control device 4 divides the acceleration command p 12 into acceleration commands p 121 , p 122 . When the input time point of the acceleration command p 12 is t 12 , the input time point of the acceleration command p 121 is the time point r 12 dt before time point t 12 , and the input time point of the acceleration command p 122 is the time point after time (1 - r 12 )dt from time point t 12 .
[0116] Based on the acceleration command X, the control device 4 creates the acceleration command p2 as the deceleration-side acceleration command and divides the acceleration command p2 into acceleration commands p 21 and acceleration command p 22 . The control device 4 divides the acceleration command p 21 into acceleration commands p 211 and acceleration command p 212 . When the input time point of the acceleration command p 21 is t 21 , the input time point of the acceleration command p 211 is the time point r 21 dt before time point t 21 , and the input time point of the acceleration command p 212 is the time point after time (1 - r 21 )dt from time point t 21 .
[0117] The control device 4 divides the acceleration command p 22 into acceleration commands p 221 and acceleration command p 222 . When the input time point of the acceleration command p 22 is t 22 , the input time point of the acceleration command p 221 is the time point r 22 dt before time point t 22 and the acceleration command p222 The input time point is time point t 22 After a time of (1 - r 22 )dt, it is the time point.
[0118] In FIG. 17, τ is is 1 / (2fr) and is the half period of the vibration of the natural frequency fr. Time point t1 is the input time point of the acceleration command p1, and time point t2 is the input time point of the acceleration command p2. Note that T = D / F + τ is , t half = t1 + (D / F + τ is ) / 2,[[]END]] N 111 = t half / dt - floor(t1 / dt), N 112 = t half / dt - (floor(t1 / dt)+1), N 121 = t half / dt - floor((t1 + τ is 1]) / dt), N 122 = t half / dt - (floor((t1 + τ is ) / dt)+1), N 211 = floor(t2 / dt) - t half / dt, N 212 =(floor(t2 / dt)+1) - t half / dt, [[ID=Q3]]N 221 = floor((t2 + τ is ) / dt - t half / dt, N 222 =(floor((t2 + τ<Q<3000237>) / dt)+1) - t half / dt Here, F is the command feed rate.
[0119] The acceleration commands p on the acceleration side 111 , p 112 , p 121 , p 122The distance traveled and the acceleration command p on the deceleration side. 211 , p 212 , p 221 , p 222 The sum of the distance traveled and the distance from the starting point 0 is the distance D from the starting point 0 to the target position, N 111 p 111 +N 112 p 112 +N 121 p 121 +N 122 p 122 -(N 211 p 211 +N 212 p 212 +N 221 p 221 +N 222 p 222 ) = D / (dt) 2 ...(3) This holds true.
[0120] Since it comes to rest at the target position, the sum of accelerations becomes 0. That is, p 111 +p 112 +p 121 +p 122 +p 211 +p 212 +p 221 +p 222 =0····(4) This holds true.
[0121] Accelerators p placed in discrete time 111 and p 112 The phase of the vibration caused by is the acceleration p 12 Because it matches the phase of the vibration generated by, p 112 =p 111 β 11 ...(5) The following holds true. Similarly, p 122 =p 121 β 12 ...(6) p 212 =p 211 β 21 ...(7) p 222=p 221 β 22 ...(8) This holds true. Note β 11 =sin(ωr 11 dt) / sin(ω(1-r 11 )dt), β 12 =sin(ωr 12 dt) / sin(ω(1-r 12 )dt), β 21 =sin(ωr 21 dt) / sin(ω(1-r 21 )dt), β 22 =sin(ωr 22 dt) / sin(ω(1-r 22 )dt) is.
[0122] Accelerators p placed in discrete time 111 and p 112 The amplitude of the vibration generated by is equal to the acceleration p 121 and p 122 Since it matches the amplitude of the vibration generated by, p 121 =p 111 (α 11 / α 12 )····(9) The following holds true. Similarly, p 221 =p 211 (α 21 / α 22 )····(10) This holds true. Note α 11 =cos(ωr 11 dt)+sin(ωr 11 dt)·cos(ω(r 11 -1)dt) / sin(ω(1-r 11 )dt, α 12 =cos(ωr 12 dt)+sin(ωr 12 dt)·cos(ω(r 12 -1)dt) / sin(ω(1-r 12 )dt, α21 =cos(ωr 21 dt)+sin(ωr 21 dt)·cos(ω(r 21 -1)dt) / sin(ω(1-r 21 )dt、 a 22 =cos(ωr 22 dt)+sin(ωr 22 dt)·cos(ω(r 22 -1)dt) / sin(ω(1-r 22 )dt is.
[0123] (3)~(10) γ1=(N 111 +N 112 b 11 )+(a 11 / a 12 )(N 121 +N 122 b 12 )、 γ2=(N 211 +N 212 b 21 )+(a 21 / a 22 )(N 221 +N 222 b 22 )、 σ1=(1+β 11 )+(a 11 / a 12 )(1+b 12 )、 σ2=(1+β 21 )+(a 21 / a 22 )(1+b 22 )、 p 111 =(D / (dt) 2 ) / (γ1+γ2(σ1 / σ2))、 p 112 =b 11 p 111 、 p 121 =(a 11 / a 12 )p 111 、 p 122 =b 12 p 121 、 p 211 = -(σ1 / σ2)p 111 、 p 212 = β 21 p 211 、 p 221 =(α 21 / α 22 )p 211 、 p 222 = β 22 p 221 となる。
[0124] Therefore, the control unit 4a generates a notch filter that generates the above-described acceleration commands p 111 、p 112 、p 121 、p 122 p 211 、p 212 、p 221 、p 222 を生成するノッチフィルタを生成し、加速度指令Xにノッチフィルタを適用することによって、加速度指令p 111 、p 112 、p 121 、p 122 、p 211 、p 212 、p 221 、p 222 を演算する。なお加速度指令p 111 、p 112 、p 121 、p 122 のいずれかの大きさが0の場合、制御部は加速側の加速度指令を実質的に三つ生成し、加速度指令p 211 p 212 、p 221 、p 222 のいずれか大きさが0の場合、制御部は減速側の加速度指令を実質的に三つ生成する。
[0125] In the above-described embodiment, a notch filter or a moving average filter is created for acceleration commands, but a notch filter or a moving average filter may also be created for velocity commands or jerk commands. In the machine tool 100 according to the embodiment, the magnitude of the physical quantity indicated by each second movement command, which is a velocity command, acceleration command, or jerk command, and the output time can be calculated to reduce vibration of the machine tool.
[0126] The computer program can be deployed to run on a single computer, located in one site, or distributed across multiple sites and interconnected by a communication network. The control unit 4a that executes S14 and S34 corresponds to the acquisition unit, and the control unit 4a that executes S15 and S35 corresponds to the generation unit.
[0127] In the embodiments described above, we deal with the case where the machine tool has one natural frequency. However, generally, machine tools have multiple natural frequencies, and vibrations can be suppressed by generating similar notch filters for each of these natural frequencies. Furthermore, when there are multiple natural frequencies, vibrations can be suppressed by generating notch filters for some of the natural frequencies with the largest magnification ratios.
[0128] The embodiments disclosed herein should be considered illustrative and not restrictive in all respects. The scope of the present invention is intended to include all modifications within the claims and equivalents thereof. The matters described in each embodiment can be combined with one another. Furthermore, the independent and dependent claims described in the claims can be combined with one another in any combination, regardless of the form of reference. In addition, the claims use a multi-claim format in which claims refer to two or more other claims (multi-claim format), but are not limited thereto. They may also be described using a multi-claim format in which at least one multi-claim refers to another multi-claim (multi-multi-claim format). [Explanation of symbols]
[0129] 100 Machine tools 34 Main axis 121 Tables 4. Control device 4a Control Unit 4b Main memory 4c Auxiliary storage section 22d Y-axis motor 26d X-axis motor 30d Z-axis motor 35 Main shaft motor 52 Magazine Motor 79 C-axis motor 125 A-axis motor 22e, 26e, 30e, 35a, 52a, 79a, 125a drive circuit
Claims
1. In a control device for a machine tool, which outputs commands at each control cycle to a drive unit that moves a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position, An acquisition unit that acquires the first movement command for the object to be moved, A generation unit that generates a plurality of second movement commands from the first movement command based on the control period and the natural frequency of the machine tool. Equipped with, The plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, The generation unit calculates the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command, and the second output time of the second command, based on the control period and the natural frequency. A command based on the first command is output to the drive unit at the first output time. The command based on the second command is output to the drive unit at the time of the second output. Control device.
2. The generation unit generates three or more of the second movement commands. The control device according to claim 1.
3. The generation unit calculates the magnitude of the physical quantity indicated by the second movement command based on the remainder obtained by dividing one-quarter of the period of the natural frequency by the control period. The control device according to claim 1 or 2.
4. The generation unit calculates the output time based on the quotient obtained by dividing half the period of the natural frequency by the control period. The control device according to claim 1 or 2.
5. The first movement command and the second movement command are a speed command, an acceleration command, or a jerk command. The control device according to claim 1 or 2.
6. The generation unit generates the second movement command, which is the number obtained by adding 2 to the quotient obtained by dividing the period of the natural frequency by the control period. The control device according to claim 1.
7. The magnitude of the physical quantity indicated by the second movement command is calculated based on the quotient and remainder obtained by dividing half the period of the natural frequency by the control period. The control device according to claim 5.
8. The generation unit calculates the output time based on the quotient obtained by dividing half the period of the natural frequency by the control period. The control device according to claim 6.
9. The generation unit calculates the output time based on the quotient obtained by dividing half the period of the natural frequency by the control period. The control device according to claim 7.
10. The first movement command and the second movement command are a speed command, an acceleration command, or a jerk command. The control device according to claim 6.
11. A machine tool comprising a table for supporting a workpiece, a spindle for holding a tool, a drive unit for moving an object including the table or spindle to a predetermined position, and a control device for outputting commands to the drive unit at each control cycle, The control device is An acquisition unit that acquires the first movement command for the object to be moved, A generation unit that generates a plurality of second movement commands from the first movement command based on the control period and the natural frequency of the machine tool. Equipped with, The plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, The generation unit calculates the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command, and the second output time of the second command, based on the control period and the natural frequency. A command based on the first command is output to the drive unit at the first output time. The command based on the second command is output to the drive unit at the time of the second output. Machine tools.
12. In a method for outputting commands to a drive unit that moves a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position at each control cycle, The first movement command for the object to be moved is obtained, Based on the control period and the natural frequency of the machine tool, a plurality of second movement commands are generated from the first movement command. The plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, Based on the control period and the natural frequency, the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command, and the second output time of the second command are calculated. A command based on the first command is output to the drive unit at the first output time. The command based on the second command is output to the drive unit at the time of the second output. method.
13. In a computer program executed by a machine tool control device that outputs commands at each control cycle to a drive unit that moves a moving object, including a table supporting a workpiece or a spindle holding a tool, to a predetermined position, The control device, The first movement command for the object to be moved is obtained, Based on the control period and the natural frequency of the machine tool, a plurality of second movement commands are generated from the first movement command. Execute the process, The plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, The control device, Based on the control period and the natural frequency, the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command, and the second output time of the second command are calculated. A command based on the first command is output to the drive unit at the first output time. The command based on the second command is output to the drive unit at the time of the second output. A computer program that executes a process.
14. A storage medium that stores a computer program executed by a control device of a machine tool that outputs commands at each control cycle to a drive unit that moves a moving object, including a table that supports a workpiece or a spindle that holds a tool, to a predetermined position, The computer program is provided to the control device, The first movement command for the object to be moved is obtained, Based on the control period and the natural frequency of the machine tool, a plurality of second movement commands are generated from the first movement command. Execute the process, The plurality of second movement commands include a first command which is a first second movement command and a second command which is a second second movement command, The computer program is provided to the control device, Based on the control period and the natural frequency, the magnitude of the physical quantity indicated by the first command, the magnitude of the physical quantity indicated by the second command, the first output time of the first command, and the second output time of the second command are calculated. A command based on the first command is output to the drive unit at the first output time. The command based on the second command is output to the drive unit at the time of the second output. A storage medium on which processing is performed.
Citation Information
Patent Citations
Shaping command input to minimize unwanted dynamics
JP3015396B2