Numerical control apparatus and control method
The numerical control device addresses precision issues in acceleration and jerk control by employing multi-stage processing to generate precise motor commands, thereby reducing cycle time and improving machining efficiency.
Patent Information
- Application Number
- PCT/JP2024/025645
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-17
- Publication Date
- 2026-01-22
AI Technical Summary
Existing numerical control devices struggle to control acceleration and jerk with high precision, particularly when line lengths are short or time constants of moving average filters are mismatched, leading to excessive cycle time increases.
A numerical control device with an analysis processing unit, first and second acceleration/deceleration processing units, and an interpolation processing unit that calculates and controls feed speeds and jerks through multiple stages of acceleration/deceleration processing to generate precise motor commands.
The device achieves high-precision control of acceleration and jerk, preventing overshoot and reducing cycle time by optimizing speed and jerk profiles.
Smart Images

Figure JP2024025645_22012026_PF_FP_ABST
Abstract
Description
Numerical control device and control method
[0001] The present disclosure relates to a numerical control device and a control method for controlling a machine tool.
[0002] Numerical control (NC) machine tools are required to be capable of machining with a desired accuracy and in a short time. Hereinafter, NC machine tools will be simply referred to as machine tools. When a motor command is generated to be sent to a motor that drives a feed axis of the machine tool, acceleration / deceleration processing is performed to adjust the acceleration / deceleration characteristics of a speed waveform that indicates a time-series change in speed. This reduces the impact on the motor and improves machining accuracy.
[0003] Patent Document 1 discloses a numerical control device that performs acceleration / deceleration processing based on a time constant when a table to which a workpiece is fixed or a tool moves, and corrects the time constant so that the vibration amount of the machine tool does not exceed a threshold, and performs acceleration / deceleration processing using the corrected time constant. The numerical control device disclosed in Patent Document 1 performs acceleration / deceleration processing that applies a moving average filter twice to a velocity waveform, thereby keeping each of acceleration and jerk below a limit value and smoothing velocity changes.
[0004] Japanese Patent Application Laid-Open No. 2021-163077
[0005] However, with the technology of Patent Document 1, it may not be possible to control the acceleration and jerk with high precision when the line length, which is the length between command points indicated in the machining program, is short, or when the time constant of the moving average filter applied the second time is larger than the time constant of the moving average filter applied the first time.With the technology of Patent Document 1, it is not possible to control the acceleration and jerk with high precision, and there are many cases where the acceleration and jerk each fall far below the limit value, resulting in a problem of an excessive increase in cycle time.
[0006] The present disclosure has been made in view of the above, and has an object to provide a numerical control device that makes it possible to suppress an increase in cycle time by controlling acceleration and jerk with high precision.
[0007] In order to solve the above-mentioned problems and achieve the object, the numerical control device according to the present disclosure comprises an analysis processing unit that acquires movement data representing operations to be commanded to a feed axis of a machine tool by analyzing a machining program and calculates a feed speed based on the movement data; a first acceleration / deceleration processing unit that calculates a first speed, which is the speed after a first acceleration / deceleration processing, by a first acceleration / deceleration processing that is an acceleration / deceleration processing on the feed speed data; a second acceleration / deceleration processing unit that calculates a second speed, which is the speed after a second acceleration / deceleration processing, by a second acceleration / deceleration processing that is an acceleration / deceleration processing on acceleration data that is the rate of change per unit time of the first speed; and an interpolation processing unit that generates a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed.
[0008] The numerical control device according to the present disclosure has the effect of being able to suppress an increase in cycle time by controlling acceleration and jerk with high precision.
[0009] FIG. 1 is a diagram showing an example of the configuration of a numerical control system including a numerical control device according to embodiment 1; FIG. 2 is a flowchart showing an example of the procedure of processing executed by the numerical control device according to embodiment 1; FIG. 3 is a diagram for explaining the content of control by the numerical control device according to embodiment 1; FIG. 4 is a diagram for explaining look-ahead by an analysis processing unit included in the numerical control device according to embodiment 1; FIG. 5 is a first diagram for explaining the first acceleration / deceleration processing executed by the numerical control device according to embodiment 1; FIG. 6 is a second diagram for explaining the first acceleration / deceleration processing executed by the numerical control device according to embodiment 1; FIG. 7 is a third diagram for explaining the first acceleration / deceleration processing executed by the numerical control device according to embodiment 1;
[0010] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A numerical control device and a control method according to an embodiment will be described in detail below with reference to the accompanying drawings.
[0011] 1 is a diagram showing an example of the configuration of a numerical control system including a numerical control device 1 according to embodiment 1. The numerical control system shown in FIG. 1 includes the numerical control device 1 and a machine tool 2.
[0012] The machine tool 2 is a device that performs processing by being driven by a motor. An example of the machine tool 2 is a cutting machine that performs cutting processing. The machine tool 2 may be an additive manufacturing device that manufactures a shaped object by sequentially stacking molten material, or a laser processing machine that processes a workpiece by irradiating the workpiece with a laser beam. In the following, the machine tool 2 is assumed to be a cutting machine that cuts a workpiece while moving a tool relative to the workpiece. The machine tool 2 operates one or both of the tool and the workpiece by driving each of multiple feed axes with a motor. Note that the motor is not shown in the figure.
[0013] The numerical control device 1 controls each of a plurality of motors provided in the machine tool 2. The numerical control device 1 includes an analysis processing unit 10, a first acceleration / deceleration processing unit 11, a second acceleration / deceleration processing unit 12, and an interpolation processing unit 13. The first acceleration / deceleration processing unit 11 and the second acceleration / deceleration processing unit 12 constitute an acceleration / deceleration control device 3. The acceleration / deceleration control device 3 executes acceleration / deceleration processing, which is processing for adjusting acceleration characteristics that appear in the rising and falling portions of a velocity waveform.
[0014] A machining program, which is an NC program, is input to the numerical control device 1. The machining program is created by a device or system external to the numerical control system, such as a computer-aided manufacturing (CAM) device or a computer-aided design (CAD) / CAM system.
[0015] The analysis processing unit 10 analyzes the machining program to obtain movement data representing operations to be instructed to the feed axes of the machine tool 2. The movement data can be considered as movement commands for moving the tool along the path described in the machining program. The analysis processing unit 10 calculates the feed rate when moving the tool along the path described in the machining program based on the movement data.
[0016] The analysis processing unit 10 executes look-ahead of the machining program. Look-ahead refers to analyzing a process to be executed after a process currently being executed in the analysis of the machining program. The analysis processing unit 10 outputs a speed command, which is a command indicating the calculated feed speed, to the first acceleration / deceleration processing unit 11.
[0017] The first acceleration / deceleration processing unit 11 executes a first acceleration / deceleration process, which is an acceleration / deceleration process for the feed speed data indicated in the speed command. The first acceleration / deceleration process is an acceleration / deceleration process using a preset acceleration. The first acceleration / deceleration processing unit 11 obtains a first speed, which is the speed after the first acceleration / deceleration process, by the first acceleration / deceleration process. The first acceleration / deceleration processing unit 11 outputs information indicating the obtained first speed to the second acceleration / deceleration processing unit 12.
[0018] The second acceleration / deceleration processing unit 12 executes a second acceleration / deceleration process, which is an acceleration / deceleration process for acceleration data, which is a rate of change of the first velocity per unit time. The second acceleration / deceleration process is an acceleration / deceleration process using a preset jerk. The second acceleration / deceleration processing unit 12 obtains a second velocity, which is the velocity after the second acceleration / deceleration process, by the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 outputs information indicating the obtained second velocity to the interpolation processing unit 13.
[0019] The interpolation processing unit 13 generates a motor command, which is a speed command for the motor that drives the feed axis, based on the second speed. The interpolation processing unit 13 outputs the generated motor command to the machine tool 2.
[0020] Next, a description will be given of the procedure of the process executed by the numerical control device 1. Fig. 2 is a flowchart showing an example of the procedure of the process executed by the numerical control device 1 according to the first embodiment.
[0021] In step S1, the analysis processing unit 10 analyzes the machining program input thereto. The machining program contains movement data necessary to move the workpiece or the tool tip position along a predetermined path. The movement data specifies a command position using coordinate values, and the movement mode is specified using G-codes. G-codes are command codes related to axial movement, such as those used for positioning, linear interpolation, circular interpolation, or plane specification. The analysis processing unit 10 reads the machining program ahead of time to analyze the machining shape, which is the shape to be machined, and acquires movement data. The machining program also contains machining conditions such as the type of tool, the tool feed rate relative to the workpiece, and the spindle rotation speed. In the following description, only the tool feed rate will be discussed as a machining condition. The feed rate is specified by an F-code containing a speed value. The numerical control device 1 stores one or more sets of data representing machining conditions, including the tool feed rate, and the machining conditions suitable for the desired machining may be specified using the G-code or M-code of the machining program. M code is a command code for machine operation.
[0022] In step S2, the analysis processing unit 10 generates a speed command based on the movement data acquired by the analysis in step S1. The analysis processing unit 10 generates a speed command for moving the tip position of the tool in accordance with the machining shape. The analysis processing unit 10 outputs the generated speed command to the first acceleration / deceleration processing unit 11. In steps S1 and S2, the analysis processing unit 10 acquires movement data by analyzing the machining program, calculates a feed rate based on the movement data, and generates a speed command.
[0023] In step S3, the first acceleration / deceleration processing unit 11 executes a first acceleration / deceleration process on the feed speed data indicated in the speed command output from the analysis processing unit 10. The first acceleration / deceleration processing unit 11 executes the first acceleration / deceleration process using a preset acceleration on the feed speed data. The first acceleration / deceleration processing unit 11 determines a first speed, which is the speed after the first acceleration / deceleration process, by the first acceleration / deceleration process.
[0024] The first acceleration / deceleration processing unit 11 calculates a position droop and a required deceleration distance. The position droop calculated by the first acceleration / deceleration processing unit 11 is the difference between a target position, which is a position defined by the machining program, and a position indicated by the integrated value of the first velocity. The first acceleration / deceleration processing unit 11 integrates the first velocity for each control cycle to obtain a post-first acceleration / deceleration position, which is a position indicated by the integrated value of the first velocity. The target position is, for example, a command position acquired by pre-reading the machining program in the analysis processing unit 10. The target position may also be the cumulative value for each control cycle of the feed velocity indicated in the velocity command output from the analysis processing unit 10. The required deceleration distance is the moving distance required for the feed motion of the feed axis to stop due to deceleration. The first acceleration / deceleration processing unit 11 calculates a required deceleration distance due to deceleration from the latest output velocity based on the first velocity. The output velocity is the velocity indicated in the motor command output to the machine tool 2. The first acceleration / deceleration processing unit 11 calculates the position droop and the required deceleration distance for each control cycle.
[0025] The first acceleration / deceleration processor 11 executes a first acceleration / deceleration process to make the position droop longer than the required deceleration distance. Specifically, the first acceleration / deceleration processor 11 controls the acceleration in the rising portion of the velocity waveform and the acceleration in the falling portion of the velocity waveform so that the position droop is longer than the required deceleration distance. The first acceleration / deceleration processor 11 outputs information indicating the first velocity to the second acceleration / deceleration processor 12.
[0026] In step S4, the second acceleration / deceleration processing unit 12 performs second acceleration / deceleration processing on the first speed information output from the first acceleration / deceleration processing unit 11. The second acceleration / deceleration processing unit 12 performs second acceleration / deceleration processing using a preset jerk on acceleration data, which is the rate of change per unit time of the first speed. The second acceleration / deceleration processing unit 12 uses the second acceleration / deceleration processing to determine a second speed, which is the speed after the second acceleration / deceleration processing.
[0027] The second acceleration / deceleration processing unit 12 calculates a position droop and a required deceleration distance for each control cycle. The position droop calculated by the second acceleration / deceleration processing unit 12 is the difference between a target position, which is a position defined by the machining program, and a position indicated by the integrated value of the second speed. The second acceleration / deceleration processing unit 12 obtains a post-second acceleration / deceleration position, which is a position indicated by the integrated value of the second speed, by integrating the second speed for each control cycle. The target position is, for example, a command position acquired by pre-reading the machining program in the analysis processing unit 10. The target position may also be the cumulative value for each control cycle of the feed rate indicated in the speed command output from the analysis processing unit 10. The second acceleration / deceleration processing unit 12 calculates a required deceleration distance due to deceleration from the latest output speed based on the second speed.
[0028] Furthermore, the second acceleration / deceleration processing unit 12 calculates a speed droop and a required deceleration speed for each control cycle. The speed droop calculated by the second acceleration / deceleration processing unit 12 is the difference between a target speed, which is a speed specified by the machining program, and the calculated second speed. The target speed is, for example, a speed command obtained by pre-reading the machining program in the analysis processing unit 10. The target speed may be a first speed for each control cycle indicated in the information output from the first acceleration / deceleration processing unit 11. The required deceleration speed is the speed required for the feed motion of the feed axis to decelerate and stop. The second acceleration / deceleration processing unit 12 calculates a required deceleration speed resulting from deceleration from the latest output acceleration based on the second speed. The output acceleration is the rate of change per unit time of the speed indicated in the motor command output to the machine tool 2.
[0029] The second acceleration / deceleration processor 12 executes a second acceleration / deceleration process that makes the position droop longer than the required deceleration distance and makes the speed droop higher than the required deceleration speed. Specifically, the second acceleration / deceleration processor 12 controls the jerk at the rising portion of the velocity waveform and the jerk at the falling portion of the velocity waveform so that the position droop is longer than the required deceleration distance and the speed droop is higher than the required deceleration speed. The second acceleration / deceleration processor 12 outputs information indicating the second velocity to the interpolation processor 13.
[0030] In step S5, the interpolation processing unit 13 generates a motor command based on the second speed indicated in the information output from the second acceleration / deceleration processing unit 12. The interpolation processing unit 13 generates a motor command for each of the multiple feed axes by decomposing the second speed components into multiple feed directions, which are the directions of tool movement by each feed axis. The interpolation processing unit 13 outputs a motor command to each of the multiple motors for each control cycle.
[0031] In step S6, the second acceleration / deceleration processing unit 12 determines whether or not movement of the tool to the target position is complete. The second acceleration / deceleration processing unit 12 determines whether or not movement of the tool to the target position is complete based on the value of the position droop calculated for each control cycle by the second acceleration / deceleration processing unit 12. If movement of the tool to the target position is not complete (No in step S6), the numerical control device 1 returns the procedure to step S2.
[0032] On the other hand, when the movement of the tool to the target position is completed (step S6, Yes), the numerical control device 1 determines whether or not machining is completed in step S7. The numerical control device 1 determines whether or not machining is completed based on whether or not the processing indicated in the machining program to be executed has been completed. If machining is not completed (step S7, No), the numerical control device 1 returns the procedure to step S1. On the other hand, if machining is completed (step S7, Yes), the numerical control device 1 ends the processing according to the procedure shown in FIG. 2.
[0033] Next, details of the processing in each of the components of the numerical control device 1 will be described. Fig. 3 is a diagram for explaining the content of control by the numerical control device 1 according to the first embodiment. Fig. 3 shows a graph representing the relationship between speed and time. In Fig. 3, the dashed line graph represents the speed command for the tool tip position output from the analysis processing unit 10. The dot-dash line graph represents the first speed output from the first acceleration / deceleration processing unit 11. The solid line graph represents the second speed output from the second acceleration / deceleration processing unit 12.
[0034] <Analysis processing unit 10> The analysis processing unit 10 obtains movement data by looking ahead to the machining shape indicated in the machining program input from outside the numerical control device 1. From the movement data, the analysis processing unit 10 determines a speed command for moving the tool tip along the machining shape. Furthermore, the analysis processing unit 10 determines the type of tool to be used in the cutting process and the rotational speed of the spindle based on the machining program.
[0035] FIG. 4 is a diagram illustrating the look-ahead by the analysis processing unit 10 of the numerical control device 1 according to the first embodiment. In FIG. 4, arrows represent trajectories of a machining program. The solid arrows in FIG. 4 represent trajectories for which motor commands have already been output to the motor. The dashed arrows in FIG. 4 represent trajectories for which analysis by the analysis processing unit 10 has already been performed but for which motor commands have not yet been output to the motor. The dashed arrows in FIG. 4 represent trajectories for which analysis by the analysis processing unit 10 has not yet been performed and for which motor commands have not yet been output to the motor. The command position P1 is the current tool tip position. The look-ahead position P2 is the position currently being looked-ahead. Note that the look-ahead by the analysis processing unit 10 may be performed simultaneously with the processing by the first acceleration / deceleration processing unit 11, the processing by the second acceleration / deceleration processing unit 12, and the processing by the interpolation processing unit 13.
[0036] The analysis processing unit 10 outputs a speed command for the tool tip that matches the machining shape. The analysis processing unit 10 controls the output of the speed command to the first acceleration / deceleration processing unit 11 for each control cycle. When stopping the output of the speed command for the tool tip that matches the machining shape, the analysis processing unit 10 forcibly inserts a speed command that sets the speed to zero into the output to the first acceleration / deceleration processing unit 11.
[0037] The analysis processing unit 10 may monitor the respective states of the first acceleration / deceleration processing unit 11 and the second acceleration / deceleration processing unit 12, and select whether or not to output a speed command to set the speed to zero. By outputting a speed command to set the speed to zero, the analysis processing unit 10 forcibly reduces the position droop calculated by the first acceleration / deceleration processing unit 11 and the position droop calculated by the second acceleration / deceleration processing unit 12. This allows the numerical control device 1 to reduce the first speed and the second speed.
[0038] <First acceleration / deceleration processing unit 11> The first acceleration / deceleration processing unit 11 performs a first acceleration / deceleration process using a preset acceleration on feed speed data for each control command, and calculates a first speed, which is the speed after the first acceleration / deceleration process. The first acceleration / deceleration processing unit 11 calculates a required deceleration distance for each control cycle. The first acceleration / deceleration processing unit 11 determines the speed rise and fall times such that the position droop is longer than the required deceleration distance, and controls the acceleration.
[0039] FIG. 5 is a first diagram for explaining the first acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. FIG. 5 shows a graph illustrating an example of the relationship between time and a speed, which is the first speed. Here, t denotes a variable representing time. t1 denotes the time when the first acceleration / deceleration process starts. The first speed at t1 is zero. t2 denotes the time when the first speed reaches the command speed due to acceleration from t1. The command speed is the speed specified in the machining program. t3 denotes a time when a certain amount of time has elapsed from t2. t4 denotes the time when the first speed reaches zero due to deceleration from t3. Hereinafter, the first speed at time t is referred to as vc1(t). The acceleration at time t is referred to as A(t). The control period is referred to as Δt.
[0040] When t1≦t<t2 holds, the position droop is excessive relative to the required deceleration distance calculated from vc1(t-Δt), which is the first speed measured one control cycle back from t. When t1≦t<t2 holds, acceleration is performed to satisfy vc1(t)=vc1(t-Δt)+A(t)·Δt.
[0041] The acceleration A(t) in the interval t1-t2 is the acceleration used in the first acceleration / deceleration process and represents the acceleration during acceleration. The first acceleration / deceleration processing unit 11 executes the first acceleration / deceleration process with the acceleration A(t) during acceleration. For example, A(t) is a set value pre-stored in the numerical control device 1. A(t) may be a preset upper limit value of acceleration so as not to exceed an allowable mechanical vibration level, or a preset upper limit value of acceleration so as not to exceed an allowable motor load. Alternatively, A(t) may be the line segment length calculated by look-ahead in the analysis processing unit 10, i.e., the acceleration determined according to the line segment length indicated in the machining program.
[0042] When t2≦t<t3 holds, the position droop is excessive relative to the required deceleration distance calculated from vc1(t-Δt), which is the first speed measured one control cycle back from t. However, even if the position droop is excessive relative to the required deceleration distance, the first speed after the first acceleration / deceleration process is maintained at the command speed. When t2≦t<t3 holds, constant speed operation is performed that satisfies vc1(t)=vc1(t-Δt).
[0043] When t3≦t<t4 is true, the position droop is insufficient for the required deceleration distance calculated from vc1(t-Δt), which is the first speed measured one control cycle back from t. When t3≦t<t4 is true, deceleration is performed to satisfy vc1(t)=vc1(t-Δt)-A(t)·Δt.
[0044] The acceleration A(t) in the interval t3-t4 represents the acceleration during deceleration used in the first acceleration / deceleration process. The first acceleration / deceleration processing unit 11 executes the first acceleration / deceleration process with the acceleration A(t) during deceleration. For example, A(t) is a preset value stored in the numerical control device 1. A(t) may be a preset upper limit of acceleration so as not to exceed an allowable mechanical vibration level, or a preset upper limit of acceleration so as not to exceed an allowable motor load. Alternatively, A(t) may be an acceleration determined based on the line segment length calculated by look-ahead processing in the analysis processing unit 10, i.e., the line segment length indicated in the machining program. Alternatively, the acceleration when the position droop is equal to the required deceleration distance may be calculated, taking into account discretization errors or calculation errors that occur in the first acceleration / deceleration process, and the calculated acceleration may be set as the acceleration during deceleration. The first acceleration / deceleration process results in a trapezoidal waveform of the first velocity, as shown in FIG. 5.
[0045] 6 is a second diagram for explaining the first acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. Fig. 6 shows a graph illustrating an example of the relationship between the acceleration, which is the first acceleration, and time. Here, the rate of change of the first velocity per unit time is defined as the first acceleration. As shown in Fig. 6, the waveform of the first acceleration includes a rectangular portion that is convex in the positive direction and a rectangular portion that is convex in the negative direction.
[0046] The above describes a case in which the first speed reaches the command speed because the line segment length calculated by look-ahead in the analysis processing unit 10 is relatively long. The first acceleration / deceleration process described in the first embodiment is also applicable to a case in which the line segment length calculated by look-ahead in the analysis processing unit 10 is relatively short and the first speed does not reach the command speed.
[0047] 7 is a third diagram for explaining the first acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. FIG. 7 shows a graph illustrating an example of the relationship between the first speed and time in a case where the first speed does not reach the commanded speed. In a case where the first speed does not reach the commanded speed, an acceleration operation is followed by a deceleration operation without passing through a constant-speed operation. In this case, the first acceleration / deceleration process causes the speed waveform of the first speed to have a triangular shape as shown in FIG. 7.
[0048] In the above description, the first acceleration / deceleration processing unit 11 determines whether to accelerate based on the result of comparing the position droop with the required deceleration distance. Alternatively, the first acceleration / deceleration processing unit 11 may determine whether to accelerate based on the result of comparing the calculated required deceleration distance plus an offset with the position droop. In this case, even when the line segment length is relatively short, the velocity waveform of the first velocity is trapezoidal rather than triangular. In this case, because constant velocity movement is performed at a velocity lower than the command velocity, the height of the trapezoidal shape is lower than when the first velocity reaches the command velocity. For example, the offset may be determined in accordance with the jerk used in the second acceleration / deceleration processing so that the maximum values of the first velocity and the second velocity are the same.
[0049] In the above description, the first acceleration / deceleration processing by the first acceleration / deceleration processing unit 11 is started at the timing when the speed command for each control cycle is output from the analysis processing unit 10. The first acceleration / deceleration processing unit 11 may start the first acceleration / deceleration processing at any timing after a certain amount of calculation results of the position droop have been accumulated.
[0050] The first acceleration / deceleration processing unit 11 outputs, for each control cycle, information indicating the first speed, which is the speed after the first acceleration / deceleration processing, to the second acceleration / deceleration processing unit 12 .
[0051] <Second acceleration / deceleration processing unit 12> The second acceleration / deceleration processing unit 12 performs second acceleration / deceleration processing using a preset jerk on acceleration data, which is the rate of change of the first speed per unit time, and calculates a second speed, which is the speed after the second acceleration / deceleration processing. The second acceleration / deceleration processing unit 12 calculates, for each control cycle, a required deceleration speed, which is the speed required to decelerate from the latest output acceleration until the acceleration becomes zero. The second acceleration / deceleration processing unit 12 determines the speed rise and fall such that the speed droop is higher than the required deceleration speed, and controls the jerk.
[0052] 8 is a first diagram for explaining the second acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. Fig. 8 shows a graph illustrating an example of the relationship between the acceleration, which is the second acceleration, and time. Here, the acceleration after the second acceleration / deceleration process is referred to as the second acceleration.
[0053] The time when the second acceleration / deceleration process starts is designated as t11. The second acceleration is increased from t11, and the time when the second acceleration reaches the first acceleration is designated as t12. A certain time after t12 is designated as t13. The second acceleration is decreased from t13, and the time when the second acceleration reaches zero is designated as t14. The time when the second acceleration is maintained at zero from t14 and then starts to decrease from zero is designated as t15. The second acceleration is decreased from t15, and the time when the second acceleration reaches the first acceleration is designated as t16. A certain time after t16 is designated as t17. The second acceleration is increased from t17, and the time when the second acceleration reaches zero is designated as t18. Hereinafter, the second velocity at time t is designated as vc2(t). The second acceleration at time t is designated as ac2(t). The jerk at time t, which is the jerk during acceleration / deceleration after the second acceleration / deceleration process, is designated as J(t).
[0054] When t11≦t<t12 holds, the velocity droop is excessive relative to the required deceleration speed calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Furthermore, the position droop is excessive relative to the required deceleration distance calculated from ac2(t-Δt), which is the second acceleration. When t11≦t<t12 holds, an operation to increase the acceleration is performed, satisfying ac2(t)=ac2(t-Δt)+J(t)·Δt. At this time, it is assumed that ac2(t)≧0 holds. When t11≦t<t12 holds, an acceleration operation to gradually increase the acceleration is performed, satisfying vc2(t)=vc2(t-Δt)+ac2(t)·Δt. At t12, the second acceleration reaches the first acceleration.
[0055] The jerk J(t) in the interval t11-t12 is the jerk used in the second acceleration / deceleration process and represents the jerk when increasing acceleration in the positive direction from the start of the second acceleration / deceleration process. The second acceleration / deceleration processing unit 12 executes the second acceleration / deceleration process with the jerk set to J(t) when increasing the acceleration from the start of the second acceleration / deceleration process. For example, J(t) is a set value pre-stored in the numerical control device 1. J(t) may be a preset upper limit value of the jerk so as not to exceed an allowable mechanical vibration level, or a preset upper limit value of the jerk so as not to exceed an allowable motor load. Alternatively, J(t) may be a line segment length calculated by look-ahead in the analysis processing unit 10, i.e., a jerk determined according to the line segment length indicated in the machining program.
[0056] When t12≦t<t13 holds, the velocity droop is excessive relative to the required deceleration speed calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Furthermore, the position droop is excessive relative to the required deceleration distance calculated from ac2(t-Δt). However, even if the velocity droop is excessive relative to the required deceleration speed and the position droop is excessive relative to the required deceleration distance, the second acceleration after the second acceleration / deceleration process is maintained. When t12≦t<t13 holds, a constant acceleration operation is performed that satisfies ac2(t) = ac2(t-Δt). At this time, it is assumed that ac2(t)≧0 holds. When t12≦t<t13 holds, an acceleration operation is performed that satisfies vc2(t) = vc2(t-Δt) + ac2(t)・Δt.
[0057] When t13≦t<t14 holds, the position droop is excessive relative to the required deceleration distance calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Also, the velocity droop is insufficient relative to the required deceleration velocity calculated from ac2(t-Δt). When t13≦t<t14 holds, an operation to reduce acceleration is performed that satisfies ac2(t) = ac2(t-Δt) - J(t)·Δt. Assume that ac2(t)≧0 holds at this time. When t13≦t<t14 holds, an acceleration operation that gradually reduces acceleration is performed that satisfies vc2(t) = vc2(t-Δt) + ac2(t)·Δt. The acceleration is gradually reduced from t13, and at t14, the second velocity reaches the first velocity. At t14, the first velocity reaches the command velocity.
[0058] The jerk J(t) in the interval t13-t14 is a jerk used in the second acceleration / deceleration process, and represents the jerk when acceleration is increased in the positive direction from the start of the second acceleration / deceleration process and then weakened in the positive direction. The second acceleration / deceleration processor 12 executes the second acceleration / deceleration process in which the jerk is J(t) when increasing the acceleration from the start of the second acceleration / deceleration process and then decreasing the acceleration. Details of the setting of J(t) are assumed to be the same as those for the jerk J(t) in the interval t11-t12 described above.
[0059] When t14≦t<t15 holds, the first acceleration becomes zero, and the required deceleration speed and the speed droop are the same. On the other hand, the position droop becomes excessive relative to the required deceleration distance calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. When t14≦t<t15 holds, a constant speed operation is performed that satisfies ac2(t)=0 and vc2(t)=vc2(t-Δt). At t15, the reduction in the first speed begins.
[0060] When t15≦t<t16 holds, the velocity droop is excessive in the negative direction relative to the required deceleration velocity calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Furthermore, the position droop is insufficient relative to the required deceleration distance calculated from ac2(t-Δt). When t15≦t<t16 holds, an operation to increase acceleration in the negative direction is performed, satisfying ac2(t) = ac2(t-Δt) - J(t)·Δt. At this time, assume that ac2(t)≦0 holds. When t15≦t<t16 holds, a deceleration operation to gradually increase deceleration is performed, satisfying vc2(t) = vc2(t-Δt) + ac2(t)·Δt. At t16, the second acceleration reaches the first acceleration.
[0061] The jerk J(t) in the interval t15-t16 is a jerk used in the second acceleration / deceleration process, and represents the jerk when increasing acceleration from zero in the negative direction. The second acceleration / deceleration processor 12 executes the second acceleration / deceleration process in which the jerk is J(t) when increasing acceleration from zero in the negative direction. Details of setting J(t) are assumed to be the same as those for the jerk J(t) in the interval t11-t12 described above.
[0062] When t16≦t<t17 holds, the velocity droop is excessive in the negative direction relative to the required deceleration velocity calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Furthermore, the position droop is insufficient relative to the required deceleration distance calculated from ac2(t-Δt). However, even if the velocity droop is excessive in the negative direction relative to the required deceleration velocity and the position droop is insufficient relative to the required deceleration distance, the second acceleration after the second acceleration / deceleration process is maintained. When t16≦t<t17 holds, a constant acceleration operation is performed that satisfies ac2(t) = ac2(t-Δt). At this time, it is assumed that ac2(t)≦0 holds. When t16≦t<t17 holds, a deceleration operation is performed that satisfies vc2(t) = vc2(t-Δt) + ac2(t)・Δt.
[0063] When t17≦t<t18 holds, the position droop is excessive relative to the required deceleration distance calculated from ac2(t-Δt), which is the second acceleration measured one control cycle back from t. Also, the velocity droop is insufficient relative to the required deceleration velocity calculated from ac2(t-Δt). When t17≦t<t18 holds, an operation is performed to reduce acceleration in the negative direction, satisfying ac2(t) = ac2(t-Δt) + J(t)·Δt. At this time, assume that ac2(t)≦0 holds. When t17≦t<t18 holds, a deceleration operation is performed that gradually reduces deceleration, satisfying vc2(t) = vc2(t-Δt) + ac2(t)·Δt. The deceleration gradually decreases from t17, and at t18, the second velocity reaches the first velocity. At t18, the first velocity reaches zero.
[0064] The jerk J(t) in the interval from t17 to t18 is the jerk used in the second acceleration / deceleration process and represents the jerk when acceleration is increased from zero in the negative direction and then weakened in the negative direction. The second acceleration / deceleration processing unit 12 executes the second acceleration / deceleration process in which the jerk is J(t) when acceleration is increased from zero in the negative direction and then weakened in the negative direction. For example, J(t) is a set value pre-stored in the numerical control device 1. J(t) may be a preset upper limit value of the jerk so as not to exceed an allowable mechanical vibration level, or a preset upper limit value of the jerk so as not to exceed an allowable motor load. Alternatively, J(t) may be a line segment length calculated by look-ahead calculation in the analysis processing unit 10, i.e., a jerk determined according to the line segment length indicated in the machining program.
[0065] Alternatively, the jerk when the position droop is equal to the required deceleration distance may be calculated taking into account discretization error or calculation error that occurs in the second acceleration / deceleration process, and the calculated jerk may be set as the jerk during deceleration J(t). In this case, because two simultaneous equations are solved, a physical quantity other than the jerk must be set as a variable. The physical quantity other than the jerk that is set as a variable may be any physical quantity related to the second acceleration / deceleration process. For example, ac2(t) when t16≦t<t17 holds may be set as a variable. By the second acceleration / deceleration process described above, the waveform of the second acceleration becomes a waveform that includes a trapezoidal portion that is convex in the positive direction and a trapezoidal portion that is convex in the negative direction, as shown in FIG. 8.
[0066] 9 is a second diagram for explaining the second acceleration / deceleration process executed by the numerical control device 1 according to the first embodiment. Fig. 9 shows a graph illustrating an example of the relationship between time and the jerk, which is the rate of change per unit time of the second acceleration. As shown in Fig. 9, the waveform of the jerk includes a rectangular portion that is convex in the positive direction and a rectangular portion that is convex in the negative direction.
[0067] For example, the second acceleration / deceleration processing by the second acceleration / deceleration processing unit 12 is started after the first acceleration / deceleration processing by the first acceleration / deceleration processing unit 11 is completed. The second acceleration / deceleration processing by the second acceleration / deceleration processing unit 12 may be executed simultaneously with the first acceleration / deceleration processing by the first acceleration / deceleration processing unit 11.
[0068] Note that the above describes a case in which the first speed calculated by the first acceleration / deceleration processing unit 11 is relatively high and the second acceleration reaches the first acceleration. The second acceleration / deceleration processing described in embodiment 1 can also be applied to a case in which the first speed is relatively low and the second acceleration does not reach the first acceleration. In a case in which the second acceleration does not reach the first acceleration, an acceleration operation in which the acceleration is gradually increased is followed by an acceleration operation in which the acceleration is gradually decreased without a constant acceleration operation. Also, a deceleration operation in which the deceleration is gradually increased is followed by a deceleration operation in which the deceleration is gradually decreased without a constant acceleration operation. In this case, the second acceleration / deceleration processing described above results in a waveform of the second acceleration that includes a triangular portion convex in the positive direction and a triangular portion convex in the negative direction.
[0069] The second acceleration / deceleration processing unit 12 outputs, for each control cycle, information indicating the second speed, which is the speed after the second acceleration / deceleration processing, to the interpolation processing unit 13 .
[0070] <Interpolation Processing Unit 13> The interpolation processing unit 13 generates a motor command based on the second speed indicated in the information output from the second acceleration / deceleration processing unit 12. The interpolation processing unit 13 generates a motor command for each of the multiple feed axes by decomposing the second speed components into multiple feed directions in accordance with the machining shape. The interpolation processing unit 13 outputs a motor command to each of the multiple motors for each control period.
[0071] According to the first embodiment, the numerical controller 1 includes an analysis processing unit 10 that acquires movement data by analyzing a machining program and calculates a feedrate based on the movement data; a first acceleration / deceleration processing unit 11 that performs a first acceleration / deceleration process on the feedrate data to calculate a first speed, which is the speed after the first acceleration / deceleration process; a second acceleration / deceleration processing unit 12 that performs a second acceleration / deceleration process on acceleration data, which is the rate of change of the first speed per unit time, to calculate a second speed, which is the speed after the second acceleration / deceleration process; and an interpolation processing unit 13 that generates a motor command based on the second speed. The numerical controller 1 calculates the first speed by performing the first acceleration / deceleration process on the feedrate data and the second speed by performing the second acceleration / deceleration process on the acceleration data, i.e., by performing stepwise calculations that take jerk into account, it is possible to prevent a situation in which acceleration is reduced even when there is room to increase it. The numerical controller 1 enables high-precision control of acceleration and jerk without causing overshoot beyond the target position. The numerical controller 1 can appropriately increase acceleration through high-precision control of acceleration and jerk, thereby suppressing an increase in the cycle time of the machine tool 2. As a result, the numerical control device 1 has the advantage of being able to suppress an increase in cycle time by controlling acceleration and jerk with high precision.
[0072] The second acceleration / deceleration processing unit 12 also calculates a position droop, which is the difference between the target position and the position indicated by the integrated value of the second velocity, and a required deceleration distance, which is the distance traveled until the feed motion of the feed axis decelerates to a stop, and calculates a velocity droop, which is the difference between the target velocity and the second velocity, and a required deceleration speed, which is the speed required for the acceleration to reach zero due to deceleration. The second acceleration / deceleration processing unit 12 executes second acceleration / deceleration processing to make the position droop longer than the required deceleration distance and make the velocity droop higher than the required deceleration speed. This enables the numerical control device 1 to control acceleration and jerk with high precision without causing overshoot beyond the target position.
[0073] Second Embodiment Fig. 10 is a diagram showing an example of the configuration of a numerical control device 5 according to a second embodiment. The numerical control device 5 is provided in a numerical control system, similar to the numerical control device 1 shown in Fig. 1. Such a numerical control system includes the numerical control device 5 and a machine tool 2. In the second embodiment, the same components as those in the first embodiment above are given the same reference numerals, and the following description will mainly focus on the configuration that differs from that in the first embodiment.
[0074] The numerical control device 5 controls each of the multiple motors provided in the machine tool 2. The numerical control device 5 includes an acceleration / deceleration control device 6, an analysis processing unit 20, and an interpolation processing unit 23. The acceleration / deceleration control device 6 executes acceleration / deceleration processing, which is processing for adjusting acceleration characteristics that appear in the rising and falling portions of a velocity waveform.
[0075] The acceleration / deceleration control device 6 includes a plurality of acceleration / deceleration processing units. Each acceleration / deceleration processing unit includes a plurality of acceleration / deceleration processing sections. In the example shown in FIG. 10, the acceleration / deceleration control device 6 includes n acceleration / deceleration processing units 21-1, 21-2, ..., 21-n, where n is an arbitrary integer equal to or greater than 3. In the example shown in FIG. 10, each acceleration / deceleration processing unit 21-1, 21-2, ..., 21-n includes m acceleration / deceleration processing sections 22-1, 22-2, ..., 22-m, where m is an arbitrary integer equal to or greater than 3.
[0076] The acceleration / deceleration processing units 21-1, 21-2, ..., 21-n are connected in parallel to one another. In each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n, the acceleration / deceleration processing units 22-1, 22-2, ..., 22-m are connected in series to one another.
[0077] The acceleration / deceleration processing unit 22-1 in each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n functions as a first acceleration / deceleration processing unit that calculates a first speed by performing a first acceleration / deceleration processing on feed speed data. The acceleration / deceleration processing unit 22-2 in each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n functions as a second acceleration / deceleration processing unit that calculates a second speed by performing a second acceleration / deceleration processing on acceleration data, which is the rate of change of the first speed per unit time. That is, each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n has two or more acceleration / deceleration processing units 22-1, 22-2, ..., 22-m connected in series, each including a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit.
[0078] The analysis processing unit 20 reads ahead the machining program. By analyzing the machining program, the analysis processing unit 20 obtains movement data representing operations to be commanded to the feed axes of the machine tool 2. The analysis processing unit 20 calculates the feed rate when moving the tool on the path described in the machining program based on the movement data.
[0079] The analysis processing unit 20 distributes the movement amount indicated in the movement data and calculates the feed speed based on the distributed movement data. The analysis processing unit 20 sends a speed command, which is a command indicating the calculated feed speed, to the acceleration / deceleration processing unit 22-1 of each acceleration / deceleration processing unit 21-1, 21-2, ..., 21-n. In this way, the analysis processing unit 20 sends data of the feed speed calculated based on the distributed movement data to the first acceleration / deceleration processing unit of each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ..., 21-n.
[0080] Each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n has a similar configuration. Here, the configuration of acceleration / deceleration processing unit 21-1 will be described as an example. Acceleration / deceleration processing unit 22-1 of acceleration / deceleration processing unit 21-1 executes first acceleration / deceleration processing, which is acceleration / deceleration processing for the feed speed data indicated in the speed command. Acceleration / deceleration processing unit 22-1 outputs information indicating the calculated first speed to acceleration / deceleration processing unit 22-2 within acceleration / deceleration processing unit 21-1.
[0081] The acceleration / deceleration processing unit 21-1's acceleration / deceleration processing section 22-2 executes a second acceleration / deceleration process, which is an acceleration / deceleration process for acceleration data, which is the rate of change per unit time of the first speed. The acceleration / deceleration processing section 22-2 obtains a second speed, which is the speed after the second acceleration / deceleration process, by the second acceleration / deceleration process. The acceleration / deceleration processing section 22-2 outputs information indicating the second speed to the next acceleration / deceleration processing section in the acceleration / deceleration processing unit 21-1.
[0082] The acceleration / deceleration processing unit 22-1 can be said to perform acceleration / deceleration processing on velocity, which is the time derivative of position, which is a function of time. The acceleration / deceleration processing unit 22-2 can be said to perform acceleration / deceleration processing on acceleration, which is the time derivative of velocity. In the acceleration / deceleration processing unit 21-1, each of the m acceleration / deceleration processing units 22-1, 22-2, ..., 22-m sequentially performs acceleration / deceleration processing on the time derivative of the input value. The mth acceleration / deceleration processing unit 22-m in the acceleration / deceleration processing unit 21-1 outputs the result of calculating the velocity after acceleration / deceleration processing to the interpolation processing unit 23.
[0083] The interpolation processing unit 23 acquires outputs from each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n. The interpolation processing unit 23 generates motor commands based on the outputs from each of the acceleration / deceleration processing units 21-1, 21-2, ..., 21-n. The interpolation processing unit 23 outputs the generated motor commands to the machine tool 2.
[0084] Next, a description will be given of the procedure of processing executed by the numerical control device 5. Fig. 11 is a flowchart showing an example of the procedure of processing executed by the numerical control device 5 according to the second embodiment.
[0085] In step S11, the analysis processing unit 20 analyzes the machining program input to the analysis processing unit 20. In step S12, the analysis processing unit 20 generates a speed command based on the movement data acquired by the analysis in step S11. The analysis processing unit 20 distributes the movement amount indicated in the movement data, and sends data of the feed speed calculated based on the distributed movement data to the acceleration / deceleration control device 6.
[0086] In step S13, the acceleration / deceleration control device 6 executes acceleration / deceleration processing by each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ..., 21-n. Each of the plurality of acceleration / deceleration processing units 21-1, 21-2, ..., 21-n executes acceleration / deceleration processing by each of the acceleration / deceleration processing units 22-1, 22-2, ..., 22-m. The acceleration / deceleration processing unit 22-1 executes acceleration / deceleration processing similar to the first acceleration / deceleration processing in step S3 shown in Fig. 2. The acceleration / deceleration processing unit 22-2 executes acceleration / deceleration processing similar to the second acceleration / deceleration processing in step S4 shown in Fig. 2. In each of the m acceleration / deceleration processing units 22-1, 22-2, ..., 22-m, acceleration / deceleration processing is sequentially executed for the time derivative of the input value.
[0087] The acceleration / deceleration processing unit 22-1 calculates a position droop and a required deceleration distance, similar to the first acceleration / deceleration processing unit 11 shown in FIG. 1. The acceleration / deceleration processing unit 22-1 performs acceleration / deceleration processing to make the position droop longer than the required deceleration distance. The acceleration / deceleration processing units 22-2, ..., 22-m calculate a position droop, a required deceleration distance, a velocity droop, and a required deceleration speed, similar to the second acceleration / deceleration processing unit 12 shown in FIG. 1. The acceleration / deceleration processing units 22-2, ..., 22-m perform acceleration / deceleration processing to make the position droop longer than the required deceleration distance and to make the velocity droop higher than the required deceleration speed. The acceleration / deceleration control device 6 outputs information indicating the speeds calculated by each of the multiple acceleration / deceleration processing units 21-1, 21-2, ..., 21-n to the interpolation processing unit 23.
[0088] In step S14, the interpolation processing unit 23 generates a motor command based on the speed indicated in the information output from the acceleration / deceleration control device 6. The interpolation processing unit 23 outputs a motor command to each of the plurality of motors for each control period.
[0089] In step S15, the acceleration / deceleration control device 6 determines whether or not movement of the tool to the target position is complete. The acceleration / deceleration control device 6 determines whether or not movement of the tool to the target position is complete based on the position droop value calculated for each control cycle by each of the multiple acceleration / deceleration processing units 21-1, 21-2, ..., 21-n. If movement of the tool to the target position is not complete (step S15, No), the numerical control device 5 returns the procedure to step S12.
[0090] On the other hand, when the movement of the tool to the target position is completed (step S15, Yes), the numerical control device 5 determines whether or not machining is completed in step S16. The numerical control device 5 determines whether or not machining is completed based on whether or not the processing indicated in the machining program to be executed has been completed. If machining is not completed (step S16, No), the numerical control device 5 returns the procedure to step S11. On the other hand, if machining is completed (step S16, Yes), the numerical control device 5 ends the processing according to the procedure shown in FIG. 11.
[0091] Next, the processing in each of the components of the numerical control device 5 will be described in detail.
[0092] <Analysis processing unit 20> The analysis processing unit 20 reads ahead the machining shape indicated in the machining program input from outside the numerical control device 5 and acquires movement data. The analysis processing unit 20 distributes the movement amount indicated in the movement data and determines a speed command for the tool tip that matches the machining shape based on the distributed movement data. The analysis processing unit 20 outputs the distributed speed command to each of the multiple acceleration / deceleration processing units 21-1, 21-2, ..., 21-n for each control cycle.
[0093] Fig. 12 is a first diagram for explaining distribution of speed commands in the numerical control device 5 according to embodiment 2. Fig. 13 is a second diagram for explaining distribution of speed commands in the numerical control device 5 according to embodiment 2. Fig. 14 is a diagram showing an example of the configuration of the acceleration / deceleration control device 6 included in the numerical control device 5 according to embodiment 2.
[0094] The acceleration / deceleration control device 6A shown in Fig. 14 is one example of the acceleration / deceleration control device 6 shown in Fig. 10. In the following description, it is assumed that the acceleration / deceleration control device 6 is the acceleration / deceleration control device 6A shown in Fig. 14. The acceleration / deceleration control device 6A has three acceleration / deceleration processing units 21-1, 21-2, and 21-3. The analysis processing unit 20 distributes a speed command to each of the three acceleration / deceleration processing units 21-1, 21-2, and 21-3.
[0095] 12 shows a graph illustrating an example of the relationship between speed and time. In FIG. 12, V0 is a graph of the speed indicated by the speed command before distribution. V1 is a graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-1. V2 is a graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-2. V3 is a graph of the speed indicated by the speed command distributed to the acceleration / deceleration processing unit 21-3. The ratio of speed distribution to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is arbitrary. The sum of the first-order integral values of the speeds distributed to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is the same as the movement amount indicated in the movement data acquired by look-ahead of the machining shape.
[0096] 12, the analysis processing unit 20 starts distributing speed commands to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 at the same timing. The analysis processing unit 20 also ends distributing speed commands to the acceleration / deceleration processing units 21-1, 21-2, and 21-3 at the same timing. The timing at which distribution of speed commands starts is the timing at which the analysis processing unit 20 starts outputting the distributed speed commands. The timing at which distribution of speed commands ends is the timing at which the analysis processing unit 20 ends outputting the distributed speed commands.
[0097] 13 shows a graph illustrating an example of the relationship between speed and time, where it is assumed that a speed command is distributed to each of the three acceleration / deceleration processing units 21-1, 21-2, and 21-3.
[0098] 13, V10 is a graph of the speed indicated by the speed command before distribution. V11 is a graph of the speed indicated by the speed command distributed to acceleration / deceleration processing unit 21-1. V12 is a graph of the speed indicated by the speed command distributed to acceleration / deceleration processing unit 21-2. V13 is a graph of the speed indicated by the speed command distributed to acceleration / deceleration processing unit 21-3.
[0099] In the example shown in Fig. 13, the analysis processing unit 20 appropriately controls the timing at which distribution of speed commands is started and the timing at which distribution of speed commands is ended for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3. In the example shown in Fig. 13, the timing at which distribution of speed commands is started for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is different from each other. Also, in the example shown in Fig. 13, the timing at which distribution of speed commands is ended for each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is different from each other. Note that the sum of the first-order integral values of the speeds distributed to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 is the same as the movement amount indicated in the movement data acquired by read-ahead of the machining shape.
[0100] The analysis processing unit 20 may start and end distribution of speed commands to each of the multiple acceleration / deceleration processing units 21-1, 21-2, and 21-3 at the same timing, as shown in Fig. 12. Alternatively, the analysis processing unit 20 may appropriately control the timing to start and end distribution of speed commands to each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3, as shown in Fig. 13.
[0101] <Acceleration / Deceleration Control Device 6A> As shown in Figure 14, the acceleration / deceleration control device 6A has three acceleration / deceleration processing units 21-1, 21-2, and 21-3. Each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 has three acceleration / deceleration processing units 22-1, 22-2, and 22-3. The speed command output from the analysis processing unit 20 is input to the acceleration / deceleration processing unit 22-1 of each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3. Each of the acceleration / deceleration processing units 21-1, 21-2, and 21-3 has a similar configuration. Here, the configuration of the acceleration / deceleration processing unit 21-1 will be described as an example.
[0102] The acceleration / deceleration processing unit 22-1 functions as a first acceleration / deceleration processing unit that calculates a first speed by performing a first acceleration / deceleration process on the feed speed data. Similar to the first acceleration / deceleration processing unit 11 shown in FIG. 1, the acceleration / deceleration processing unit 22-1 calculates a first speed, which is the speed after the first acceleration / deceleration process, by performing the first acceleration / deceleration process. Similar to the first acceleration / deceleration processing unit 11, the acceleration / deceleration processing unit 22-1 calculates a position droop and a required deceleration distance for each control cycle. Similar to the first acceleration / deceleration processing unit 11, the acceleration / deceleration processing unit 22-1 executes a first acceleration / deceleration process that makes the position droop longer than the required deceleration distance. The acceleration / deceleration processing unit 22-1 outputs information indicating the first speed to the acceleration / deceleration processing unit 22-2 in the acceleration / deceleration processing unit 21-1.
[0103] The acceleration / deceleration processing unit 22-2 functions as a second acceleration / deceleration processing unit that executes second acceleration / deceleration processing on acceleration data, which is the rate of change per unit time of the first speed. Similar to the second acceleration / deceleration processing unit 12 shown in FIG. 1, the acceleration / deceleration processing unit 22-2 performs the second acceleration / deceleration processing to determine a second speed, which is the speed after the second acceleration / deceleration processing. Similar to the second acceleration / deceleration processing unit 12, the acceleration / deceleration processing unit 22-2 calculates the position droop, the required deceleration distance, the velocity droop, and the required deceleration speed for each control cycle. Similar to the second acceleration / deceleration processing unit 12, the acceleration / deceleration processing unit 22-2 executes second acceleration / deceleration processing to make the position droop longer than the required deceleration distance and the velocity droop higher than the required deceleration speed. The acceleration / deceleration processing unit 22-2 outputs information indicating the second speed to the acceleration / deceleration processing unit 22-3 in the acceleration / deceleration processing unit 21-1.
[0104] The acceleration / deceleration processor 22-3 executes a third acceleration / deceleration process, which is an acceleration / deceleration process using a preset derivative value of the jerk, on data of the jerk, which is the rate of change per unit time of the second acceleration. The acceleration / deceleration processor 22-3 obtains a third velocity, which is the velocity after the third acceleration / deceleration process, by the third acceleration / deceleration process.
[0105] The acceleration / deceleration processing unit 22-3 calculates the acceleration droop and the required deceleration acceleration for each control cycle. The acceleration droop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target acceleration, which is the rate of change of the target speed per unit time, and the third acceleration, which is the rate of change of the determined third speed per unit time. The required deceleration acceleration is the acceleration required for the feed motion of the feed axis to decelerate and stop. The acceleration / deceleration processing unit 22-3 calculates the required deceleration acceleration due to deceleration from the latest output jerk, based on the third speed. The output jerk is the second-order differential value of the speed indicated in the motor command output to the machine tool 2.
[0106] Furthermore, the acceleration / deceleration processing unit 22-3 calculates the speed droop and the required deceleration speed for each control cycle. The speed droop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target speed, which is a speed defined by the machining program, and the third speed. The acceleration / deceleration processing unit 22-3 calculates the required deceleration speed resulting from deceleration from the latest output acceleration based on the third speed.
[0107] Furthermore, the acceleration / deceleration processing unit 22-3 calculates the position droop and the required deceleration distance for each control cycle. The position droop calculated by the acceleration / deceleration processing unit 22-3 is the difference between the target position defined by the machining program and the position indicated by the integrated value of the third speed. The acceleration / deceleration processing unit 22-3 calculates the required deceleration distance due to deceleration from the latest output speed based on the third speed.
[0108] The acceleration / deceleration processing unit 22-3 executes acceleration / deceleration processing to make the position droop longer than the required deceleration distance, make the velocity droop higher than the required deceleration speed, and make the acceleration droop higher than the required deceleration acceleration. Specifically, the acceleration / deceleration processing unit 22-3 controls the derivative of the jerk at the rising portion of the velocity waveform and the derivative of the jerk at the falling portion of the velocity waveform so that the position droop is longer than the required deceleration distance, the velocity droop is higher than the required deceleration speed, and the acceleration droop is higher than the required deceleration acceleration.
[0109] <Interpolation Processing Unit 23> The interpolation processing unit 23 acquires information output from the acceleration / deceleration processing unit 22-3 of each acceleration / deceleration processing unit 21-1, 21-2, 21-3. The interpolation processing unit 23 generates a motor command based on the third speed indicated in the information output from the acceleration / deceleration processing unit 22-3. The interpolation processing unit 23 generates a motor command for each of the multiple feed axes by breaking down the components of the third speed into multiple feed directions in accordance with the machining shape. The interpolation processing unit 23 outputs a motor command to each of the multiple motors for each control period.
[0110] The acceleration / deceleration control device 6 may have any number of acceleration / deceleration processing units. The acceleration / deceleration control device 6 may have a plurality of acceleration / deceleration processing units connected in parallel. Each of the plurality of acceleration / deceleration processing units executes acceleration / deceleration processing using two or more acceleration / deceleration processing units and outputs the result of determining the speed after the acceleration / deceleration processing. The number of acceleration / deceleration processing units included in each of the plurality of acceleration / deceleration processing units may be any number. Each of the plurality of acceleration / deceleration processing units may have two or more acceleration / deceleration processing units connected in series, including a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit.
[0111] For example, in the acceleration / deceleration control device 6A shown in Figure 14, each of the multiple acceleration / deceleration processing units includes three acceleration / deceleration processing units 22-1, 22-2, and 22-3, and the third acceleration / deceleration processing unit 22-3 performs acceleration / deceleration processing on the jerk data. Each of the multiple acceleration / deceleration processing units may perform acceleration / deceleration processing with an even higher order of differentiation than in the above case. For example, each of the multiple acceleration / deceleration processing units may further include a fourth acceleration / deceleration processing unit, and the fourth acceleration / deceleration processing unit may perform acceleration / deceleration processing on the acceleration / deceleration data.
[0112] The acceleration / deceleration control device 6 is not limited to having a plurality of acceleration / deceleration units. The acceleration / deceleration control device 6 may have only one acceleration / deceleration unit. The acceleration / deceleration control device 6 may have a plurality of acceleration / deceleration processing units including at least a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit.
[0113] In the acceleration / deceleration control device 6, the manner of adjusting the acceleration characteristics by acceleration processing in each of the multiple acceleration / deceleration processing sections provided in the multiple acceleration / deceleration processing units may be determined based on the allowable value of the vibration amount of the machine tool 2 or the vibration frequency of the machine tool 2. This enables the numerical control device 5 to reduce vibration of the machine tool 2 during machining and to control the speed and jerk with high precision.
[0114] The acceleration / deceleration control device 6 may be provided with a connection configuration determination unit that determines the connection configuration of the multiple acceleration / deceleration processing units in the acceleration / deceleration control device 6 by adjusting at least one of the number of acceleration / deceleration processing units connected in parallel and the number of acceleration / deceleration processing units connected in series. That is, the acceleration / deceleration control device 6 may be capable of adjusting at least one of the number of acceleration / deceleration processing units that perform acceleration / deceleration processing among the multiple acceleration / deceleration processing units, and the number of acceleration / deceleration processing units that perform acceleration / deceleration processing among two or more acceleration / deceleration processing units included in the acceleration / deceleration processing unit that performs acceleration / deceleration processing. The connection configuration determination unit is not shown in the figure.
[0115] For example, the connection configuration of the acceleration / deceleration processing unit may be determined by determining a connection configuration when at least one of the evaluation values, which are the evaluation results for each of machining accuracy, surface quality, and cycle time, falls within an allowable range. Machining accuracy can be determined based on a machining error, which is the difference between the machining shape indicated in the machining program and the shape resulting from machining. Alternatively, the connection configuration of the acceleration / deceleration processing unit may be determined by determining a connection configuration when the vibration level during machining falls within an allowable range.
[0116] The numerical control device 5 can determine a connection configuration suitable for the desired machining by adjusting at least one of the number of acceleration / deceleration processing units that perform acceleration / deceleration processing and the number of acceleration / deceleration processing units that perform acceleration / deceleration processing. The numerical control device 5 can achieve high-precision control of acceleration and jerk by using a connection configuration suitable for the desired machining.
[0117] According to the second embodiment, the numerical controller 5 includes a plurality of acceleration / deceleration processing units connected in parallel, each of which includes two or more acceleration / deceleration processing units connected in series, including a first acceleration / deceleration processing unit and a second acceleration / deceleration processing unit. The analysis processing unit 20 distributes the movement amount indicated in the movement data and sends feedrate data calculated based on the distributed movement data to the first acceleration / deceleration processing unit of each of the acceleration / deceleration processing units. Each of the acceleration / deceleration processing units executes acceleration / deceleration processing using two or more acceleration / deceleration processing units and outputs the calculated speed after acceleration / deceleration processing. The interpolation processing unit 23 generates motor commands based on the outputs from each of the acceleration / deceleration processing units. By including a plurality of acceleration / deceleration processing units each having two or more acceleration / deceleration processing units, the numerical controller 5 can perform acceleration / deceleration processing using a larger number of acceleration / deceleration processing units than when the numerical controller 5 has only one first acceleration / deceleration processing unit and one second acceleration / deceleration processing unit. By performing acceleration / deceleration processing using a larger number of acceleration / deceleration processing units, the numerical controller 5 can smooth the rising and falling portions of the velocity waveform. The numerical control device 5 can adjust the acceleration / deceleration characteristics with a high degree of freedom by performing acceleration / deceleration processing using many acceleration / deceleration processing units.
[0118] Furthermore, the manner of adjusting the acceleration characteristics by acceleration processing in each of the multiple acceleration / deceleration processing sections provided in the multiple acceleration / deceleration processing units is determined based on the allowable value of the vibration amplitude of the machine tool 2 or the vibration frequency of the machine tool 2. This enables the numerical control device 5 to reduce vibration of the machine tool 2 during machining and to control the speed and jerk with high precision.
[0119] Furthermore, the numerical controller 5 is capable of adjusting at least one of the number of acceleration / deceleration processing units that execute acceleration / deceleration processing among the plurality of acceleration / deceleration processing units, and the number of acceleration / deceleration processing units that execute acceleration / deceleration processing among two or more acceleration / deceleration processing units included in the acceleration / deceleration processing units that execute acceleration / deceleration processing. This allows the numerical controller 5 to achieve highly accurate control of acceleration and jerk using a connection configuration suitable for the desired machining.
[0120] Next, hardware for realizing the numerical control devices 1 and 5 according to the first and second embodiments will be described. The numerical control devices 1 and 5 are realized by using a processing circuit. The processing circuit may be a circuit in which a processor executes software, or may be a dedicated circuit.
[0121] When the processing circuit is realized by software, the processing circuit is, for example, the control circuit shown in FIG. 15 . FIG. 15 is a diagram showing an example configuration of a control circuit 40 according to the first or second embodiment. The control circuit 40 includes an input unit 41, a processor 42, a memory 43, and an output unit 44. The input unit 41 is an interface circuit that receives data from outside the control circuit 40 and provides the data to the processor 42. The output unit 44 is an interface circuit that sends data from the processor 42 or the memory 43 to outside the control circuit 40.
[0122] When the processing circuit is the control circuit 40 shown in Fig. 15, the processing units of the numerical controller 1 and the numerical controller 5 are realized by software, firmware, or a combination of software and firmware. The acceleration / deceleration control device 3, analysis processing unit 10, and interpolation processing unit 13 shown in Fig. 1 are processing units of the numerical controller 1. The acceleration / deceleration control device 6, analysis processing unit 20, and interpolation processing unit 23 shown in Fig. 10 are processing units of the numerical controller 5. The software or firmware is written as a program and stored in the memory 43.
[0123] The processing circuit realizes the processing section of the numerical control device 1, 5 by having the processor 42 read and execute the programs stored in the memory 43. That is, the processing circuit is provided with the memory 43 for storing the programs that will result in the processing of the numerical control device 1, 5. The programs stored in the memory 43 can also be said to be programs that cause the computer to execute the procedures and methods of the numerical control device 1, 5. The memory 43 is also used as a temporary memory when the processor 42 executes various processes.
[0124] The processor 42 is a CPU (Central Processing Unit). The processor 42 may be a central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor, or DSP (Digital Signal Processor). The memory 43 may be, for example, a non-volatile or volatile semiconductor memory such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable Read Only Memory), or an EEPROM (Electrically Erasable Programmable Read Only Memory), a magnetic disk, a flexible disk, an optical disk, a compact disk, a minidisk, or a DVD (Digital Versatile Disc).
[0125] When the processing circuit is a dedicated circuit, the numerical control devices 1 and 5 are realized by, for example, a hardware circuit shown in Fig. 16. Fig. 16 is a diagram showing an example of the configuration of a hardware circuit 45 according to the first or second embodiment.
[0126] The processing units of the numerical controllers 1 and 5 are realized by a dedicated processing circuit 46. The processing circuit 46 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a combination of these. The processing units of the numerical controllers 1 and 5 may be realized by the processing circuit 46 on a function-by-function basis, or all functions may be realized collectively by the processing circuit 46. The processing unit of the numerical controller 1 or the processing unit of the numerical controller 5 may be realized by combining the control circuit 40 shown in FIG. 15 and the processing circuit 46 shown in FIG. 16.
[0127] The configurations shown in the above embodiments are examples of the contents of the present disclosure. The configurations of each embodiment can be combined with other known technologies. The configurations of each embodiment can also be combined as appropriate. Part of the configuration of each embodiment can be omitted or modified without departing from the gist of the present disclosure.
[0128] 1, 5 Numerical control device, 2 Machine tool, 3, 6, 6A Acceleration / deceleration control device, 10, 20 Analysis processing unit, 11 First acceleration / deceleration processing unit, 12 Second acceleration / deceleration processing unit, 13, 23 Interpolation processing unit, 21-1, 21-2, 21-3, 21-n Acceleration / deceleration processing unit, 22-1, 22-2, 22-3, 22-m Acceleration / deceleration processing unit, 40 Control circuit, 41 Input unit, 42 Processor, 43 Memory, 44 Output unit, 45 Hardware circuit, 46 Processing circuit.
Claims
1. A numerical control device comprising: an analysis processing unit that acquires movement data representing operations to be commanded to a feed axis of a machine tool by analyzing a machining program, and calculates a feed speed based on the movement data; a first acceleration / deceleration processing unit that performs a first acceleration / deceleration process on the feed speed data to calculate a first speed, which is the speed after the first acceleration / deceleration process; a second acceleration / deceleration processing unit that performs a second acceleration / deceleration process on acceleration data that is the rate of change of the first speed per unit time to calculate a second speed, which is the speed after the second acceleration / deceleration process; and an interpolation processing unit that generates a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed.
2. The numerical control device according to claim 1, characterized in that the second acceleration / deceleration processing unit calculates a position droop, which is the difference between a target position, which is a position specified by the machining program, and a position indicated by the integrated value of the second speed, and a required deceleration distance, which is the distance traveled until the feed motion of the feed axis stops due to deceleration; calculates a speed droop, which is the difference between a target speed, which is a speed specified by the machining program, and the second speed, and a required deceleration speed, which is the speed required for acceleration to reach zero due to deceleration; and executes the second acceleration / deceleration processing to make the position droop longer than the required deceleration distance and make the speed droop higher than the required deceleration speed.
3. A numerical control device as described in claim 1 or 2, characterized in that it comprises a plurality of acceleration / deceleration processing units connected in parallel to each other, each of the plurality of acceleration / deceleration processing units having two or more acceleration / deceleration processing units connected in series to each other, including the first acceleration / deceleration processing unit and the second acceleration / deceleration processing unit, the analysis processing unit distributes the movement amount indicated in the movement data and sends the feed speed data calculated based on the distributed movement data to the first acceleration / deceleration processing unit of each of the plurality of acceleration / deceleration processing units, each of the plurality of acceleration / deceleration processing units executes acceleration / deceleration processing using two or more of the acceleration / deceleration processing units and outputs the result of calculating the speed after the acceleration / deceleration processing, and the interpolation processing unit generates the motor command based on the output from each of the plurality of acceleration / deceleration processing units.
4. A numerical control device as described in claim 3, characterized in that the manner of adjusting the acceleration characteristics by acceleration processing in each of the multiple acceleration / deceleration processing sections provided in the multiple acceleration / deceleration processing units is determined based on the allowable value of the vibration amplitude of the machine tool or the vibration frequency of the machine tool.
5. A numerical control device as described in claim 3 or 4, characterized in that at least one of the number of acceleration / deceleration processing units that perform the acceleration / deceleration processing among the multiple acceleration / deceleration processing units, and the number of acceleration / deceleration processing units that perform the acceleration / deceleration processing among two or more acceleration / deceleration processing units possessed by the acceleration / deceleration processing unit that performs the acceleration / deceleration processing, is adjustable.
6. A control method comprising the steps of: analyzing a machining program to obtain movement data representing an operation to be commanded to a feed axis of a machine tool, and calculating a feed speed based on the movement data; performing a first acceleration / deceleration process on the feed speed data to obtain a first speed, which is the speed after the first acceleration / deceleration process; performing a second acceleration / deceleration process on acceleration data, which is the rate of change of the first speed per unit time, to obtain a second speed, which is the speed after the second acceleration / deceleration process; and generating a motor command, which is a speed command for a motor that drives the feed axis, based on the second speed.
Citation Information
Patent Citations
Feed speed control method for numerical controller
JP1991152604A
Numerical control device provided with overlap function between discretionary blocks by common acceleration / deceleration control unit
JP2016081172A
Control device and computer-readable recording medium
JP7415093B1