Sensorless feed optimization
Patent Information
- Application Number
- DE102026102031
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-02-26
- Filing Date
- 2026-01-19
- Publication Date
- 2026-08-27
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
STATE OF THE ART Technical field The present disclosure relates generally to the field of controlling the feed rate of a cutting tool and in particular to a method for feed rate optimization in which spindle torque command data are acquired for many positions in a reference machining cycle and an optimized feed rate profile is calculated in which the feed rate is increased at positions in the machining cycle where the spindle torque is below a setpoint, and vice versa. Discussion of related technology It is known from the prior art to use computer-controlled devices to perform machining operations, such as drilling and milling, on parts. In some applications, machines with computer numerical control (CNC) are used, which move a tool—with or without changes in tool orientation—along three principal directions. In other applications, a multi-axis industrial robot is equipped with a machining head, and the robot can move the tool along any spatial path while simultaneously controlling the tool orientation to any desired value. Regardless of the type of machine tool or robot used to perform the machining operation, the quality of the finished workpiece is always paramount, and conditions that could negatively impact workpiece quality or the machine tool's lifespan must be avoided. At the same time, machine productivity is also crucial for manufacturers who need to offer cost-effective products. Therefore, the feed rate of the cutting tool must be set to meet both quality and productivity targets. In a typical machining operation, the path of a cutting tool is defined in a control program when removing material from a workpiece. In many machining operations, the shape of the raw part and / or the finished part is such that the amount of material removed by the cutting tool varies as the tool moves along the toolpath. To avoid damage to the machine tool or the workpiece, the user can consult a cutting tool catalog to select the appropriate tool feed rate for the toolpath based on the depth of cut and the type of workpiece material. Conventional machine control programs maintain a constant feed rate throughout the machining process to prevent the maximum chip load (and thus the spindle torque) from exceeding an acceptable level. While the constant feed rate method is easy to program, it is also inefficient because the material removed by the cutting tool varies along the toolpath. This means that the cutting speed could be increased at many points along the toolpath to reduce the cycle time while still maintaining an acceptable chip load. Methods for improving the feed rate of the cutting tool are known in the art, but these methods all have certain disadvantages and limitations. One known method involves the use of simulators, where three-dimensional models of the workpiece and the machining process are used to estimate the volume of workpiece material removed at all points along the programmed toolpath, and where the removed volume is used to calculate the feed rate at points along the toolpath. However, these machining simulator systems are expensive, and simulating small-scale machining can be very time-consuming. Another well-known method for improving tool feed rate uses online feedback control to adjust the feed rate in real time to maintain a consistent cutting torque. While feed rate feedback control can be effective in some applications, some overshoot of the torque setpoint may be unavoidable due to the nature of feedback control. Furthermore, adjusting the parameters of a proportional-integral differential (PID) controller can be unintuitive because the machining process is typically time-varying. In view of the circumstances described above, there is a need for an improved method for optimizing the cutting feed rate that does not require simulation software and with which a feed rate profile can be accurately calculated that meets the requirements for both load management and cycle time in machining operations. BRIEF SUMMARY OF THE INVENTION The present disclosure describes a method for optimizing the feed rate of a cutting tool, in which spindle torque command data for a reference machining cycle are acquired and an optimized feed rate profile is calculated, in which the feed rate is increased at points in the machining cycle where the spindle torque is below a setpoint. Time series data, including a tool center position and a corresponding spindle torque command value, are recorded for many time steps of the reference machining cycle. A spindle torque command setpoint is determined either as the maximum spindle torque command value from the reference machining cycle or based on the mechanical limits of the machine.A new optimal feed rate profile is then calculated, whereby a new feed rate is determined at the tool center position for each time step by multiplying the original feed rate by a ratio of the spindle torque command setpoint to the recorded spindle torque for that time step in the reference machining cycle. The optimal feed rate profile is used by a machine control system during machining operations in production. A feedback control system for real-time feed rate adjustment based on the actual spindle torque can be integrated into the control system. Further features of the systems and methods disclosed herein will become apparent from the description below and the attached patent claims in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a schematic representation of a system comprising a computer-controlled machine tool of a type to which the methods of the present disclosure are applicable, performing a machining operation on a workpiece; Fig. 2A is a representation of a machining operation on a machine tool in which the tool moves at a constant feed rate using a conventional programming method; and Fig. 2B is a representation of a machining operation on a machine tool according to an embodiment of the present disclosure in which the tool moves at a feed rate that is varied based on the amount of material removed.Figure 3 contains a graph of spindle torque versus time and a graph of feed rate versus time, each graph comprising a data curve for a conventional constant feed rate and a data curve where the feed rate is varied based on the amount of material removed, according to one embodiment of the present disclosure; Figure 4 is a block diagram of a sensorless feed rate optimization system with additional feedback control, comprising providing a reference feed rate from an optimized feed rate profile and adjusting the reference feed rate by means of feedback control, according to one embodiment of the present disclosure; FigureFigure 5 is a flowchart of a method for sensorless feed rate optimization, which includes calculating an optimal feed rate profile based on spindle torque data from a reference machining cycle, according to an embodiment of the present disclosure; Figure 6 is a top view of a feed angle working range of a machine tool in an implementation of sensor-based feed rate optimization, in which a plurality of sectors are defined and a setpoint is selected at each time step based on the sector in which the tool feed angle vector lies, according to an embodiment of the present disclosure; FigureFigure 7 is a flowchart of a method for sensor-based feed rate optimization, which includes calculating an optimal feed rate profile based on axial acceleration data from a reference machining cycle, according to an embodiment of the present disclosure; Figure 8 is a representation of a machining operation showing how a tool movement produces a fluted shape on a surface of a workpiece and serves to illustrate concepts used in the surface roughness prediction methods of the present disclosure; FigureFigure 9 is a representation of an ideal cutting tool with a perfect shape and of a real cutting tool with runout, showing how the runout of the tool affects the fluted shape of the workpiece after machining and how this effect can be simulated in embodiments of the present disclosure; Figure 10 is a representation of the path of a cutting edge tip of a cutting tool in a plane of motion and a corresponding surface profile, showing how the surface roughness of a workpiece is simulated in embodiments of the present disclosure; FigureFigure 11 is a flowchart of a method for calculating a machining feed rate profile, comprising first performing sensorless or sensor-based feed rate optimization, followed by an evaluation of the surface roughness and, if necessary, an adjustment of the feed rate profile, according to one embodiment of the present disclosure; Figure 12 is a representation of a graphical user interface (GUI) screen of a software application configured to perform feed rate optimization for a machining operation, according to embodiments of the present disclosure; Figure 13 is a representation of the graphical user interface (GUI) screen of Figure 12 after performing the feed rate optimization calculation according to embodiments of the present disclosure; FigureFigure 14 is a representation of a workpiece to be machined with a toolpath defined by a program containing command lines with a sparse control point spacing, and of the workpiece with the toolpath redefined with an increased control point density, according to embodiments of the present disclosure; and Figure 15 is a representation of a GUI screen of a software application configured to perform feed rate optimization and surface roughness prediction for a machining operation, according to embodiments of the present disclosure. DETAILED DESCRIPTION OF THE EXECUTION FORMS The following discussion of embodiments of the disclosure relating to sensorless and sensor-based feed optimization is only exemplary and is not intended to limit the disclosed devices and methods or their applications or uses in any way. Controlling the feed rate during the operation of machine tools is crucial, as feed rates resulting in excessive material removal rates can damage the workpiece and / or tool, while feed rates resulting in insufficient material removal rates cause the machining cycle time to be longer than necessary. This disclosure describes methods for feed rate optimization that do not require the use of external sensors or only a simple accelerometer on the machine tool, and can be implemented easily and cost-effectively without relying on expensive and difficult-to-use simulator software. Fig. 1 is a schematic representation of a system 100 comprising a computer-controlled machine tool of a type to which the methods of the present disclosure are applicable, which performs a machining operation on a workpiece. A machine tool 110 rotates a spindle 112 in which a cutting tool – in this case, an end mill 120 – is clamped. The machine tool 110 causes the end mill 120 to perform a machining operation on a workpiece 130. The machine tool 110 is connected to a control unit 140, which is a computing device that provides motion commands and spindle motor speed commands to the machine tool 110.In a typical example, the machine tool 110 would move the rotating end mill 120 from a starting point along a path, removing material from the workpiece 130, then release the end mill 120 from the workpiece 130, move the end mill 120 back to a position near the starting point, and then perform another pass removing more material from the workpiece 130. The end mill 120 is shown in more detail in the inset, with the teeth or cutting edges at a tip 122 visible. In this example, the end mill 120 comprises four teeth or cutting edges, also known as cutting edges. A sensor 150 will be discussed later in connection with a sensor-based feed rate optimization method. As discussed in detail below, the methods of this disclosure are applicable to the system 100 of Fig. 1. In particular, the sensorless feed rate optimization method disclosed herein can be programmed in the controller 140 using data already available in the existing control architecture. In some embodiments, no sensors, microphones, or other data acquisition devices are required for data collection, and no integration of separate data acquisition or sensor subsystems with the controller 140 is necessary. The elements of Fig. 1 are represented in a fairly simple manner, with the machine tool 110 being movable in three main axes of motion, comprising “vertical” (parallel to the axis of the end mill 120) and in two “horizontal” directions (orthogonal to the axis of the end mill 120). It is understood that the sensorless and sensor-based feed rate optimization methods of the present disclosure are applicable to any type of machine tool, including multi-axis machines with tool positioning and alignment capabilities, as well as robot-controlled milling machines and drills with a robot articulated arm that provides complete flexibility in tool positioning and alignment. Fig. 2A is a representation 200 of a machining operation on a machine tool using a conventional programming method in which the tool moves at a constant feed rate. A workpiece 210 is machined with a cutting tool 220, which follows a toolpath 230 as shown. The machining operation of Fig. 2A is a type of operation that could be performed by the system of Fig. 1, wherein the workpiece 210 of Fig. 2A corresponds to the workpiece 130 of Fig. 1 and the cutting tool 220 corresponds to the end mill 120. The workpiece 210 is shown in a partially machined state in Fig. 2A, with the material to be removed from the workpiece 210 being shown in a darker shade in the upper right part of the workpiece 210.As shown, the toolpath 230 is designed such that the amount of material removed from the workpiece 210 varies while the cutting tool 220 moves along the toolpath 230. In a conventional machining operation with computer numerical control (CNC or simply NC), the cutting tool feed rate is constant and predetermined to ensure that the chip load on the cutting tool 220 (especially the torque) remains at or below a predetermined setpoint. The constant feed rate is represented in Fig. 2A by the series of arrows 240. In a diagram 250, the material removal rate (MRR) is plotted against time for the machining operation shown in Figure 200. The MRR is the volume of material removed from the workpiece 210 per unit of time—expressed, for example, in cubic millimeters per minute. The MRR is a function of the cutting tool feed rate and the volume of material being worked (essentially the thickness of cut [vertical in Fig. 2A] and the axial depth of cut [into the side]).The torque at the cutting tool 220, which is also the spindle torque, varies approximately proportionally to the MRR; this is discussed further below. Therefore, the vertical axis of diagram 250 is labeled with both "MRR" and "Torque". If the feed rate is kept constant and the amount of material removed varies across the toolpath, as in Figure 200, the MRR and the spindle torque vary in proportion to the amount of material removed. This is illustrated in Diagram 250. Thus, if the amount of material removed is small, as in the case of the cutting tool 220 on the far left in Fig. 2A, then the MRR and the spindle torque are small, as shown at time 252 in Diagram 250. The opposite is also true; that is, the MRR and the spindle torque are also large when the amount of material removed is large. Thanks to the constant feed rate used in the machining operation of Fig. 2A, the spindle torque can be kept below the target value. However, machine productivity is not maximized, as a higher cutting tool speed could be used at many points along the toolpath without exceeding the target spindle torque. The methods of this disclosure were developed to meet both spindle torque limit (and cutting tool force) and machine productivity requirements, and to achieve this using a method that does not require the use of external sensors with the machine tool and is also easy to implement. Fig. 2B is a representation 260 of a machining operation on a machine tool in which the tool moves at a feed rate that is varied based on the amount of material removed, according to an embodiment of the present disclosure. In Fig. 2B, the workpiece 210, the cutting tool 220, and the toolpath 230 correspond to those in Fig. 2A. However, in Fig. 2B, the feed rate of the cutting tool 220 is varied as it moves along the toolpath 230. Arrow 270 illustrates that the feed rate is decreased when a relatively larger amount of material is removed from the workpiece 210, and arrow 280 illustrates that the feed rate is increased when a relatively smaller amount of material is removed from the workpiece 210. In diagram 290, the material removal rate (MRR) for the machining operation shown in figure 260 is plotted against time. Using the methods discussed below in this disclosure, the changes in feed rate along the toolpath are designed such that the cutting tool can move faster where the depth of cut is shallow, while still meeting the requirements for maximum spindle torque by slowing the cutting tool down where the depth of cut is large. This results in an MRR in diagram 290 that is relatively uniform over the entire machining operation compared to the highly variable MRR in diagram 250. This means that the spindle torque (and thus the cutting tool load) is also relatively uniform during the machining operation with variable feed rate.Due to the increased feed rate in areas of low cutting depth, the machining operation with variable feed rate is completed in a shorter cycle time, which explains why the curve plotted in diagram 290 is shorter (ends earlier) than the curve in diagram 250. Figures 2A and 2B and their corresponding diagrams are conceptual in nature and are intended to illustrate the concepts of conventional constant feed rate and feed rate optimization of the present disclosure. Details of the disclosed method and results exhibiting the same features as shown in Figures 2A and 2B are discussed below. A fundamental prerequisite of the feed rate optimization method disclosed here is that the cutting torque is essentially proportional to the feed rate of the cutting tool. This can be understood by considering a cutting torque model as follows: The first term within the brackets is the torque due to material removal or shearing from the workpiece, and the second term within the brackets is the torque due to chafing or rubbing of the tool against the workpiece material. In equation (1), T is the cutting torque at the tool, D is the tool diameter, c is the feed path per tooth, Ktce is a force coefficient associated with material removal / shearing (dependent on the workpiece material), a is the axial depth of cut, θ is the engagement angle of the cutting edge, and kte is a force coefficient associated with chafing / rubbing. Of the two terms in equation (1), the term for shearing is much larger. Therefore, equation (1) can be simplified by neglecting chafing as follows: In equation (2), the only variable on the right-hand side is the cutting feed per tooth c. All other values are constants for a given machining operation (workpiece material, axial depth of cut, and cutting tool properties – size, shape, and material). Furthermore, at a constant spindle speed, the feed per tooth c is proportional to the feed rate. Thus, it can be seen from equation (2) that the cutting torque is essentially proportional to the feed per tooth (i.e., T ∝ c) and that the cutting torque is therefore essentially proportional to the feed rate. Based on the relationships discussed above, the sensorless feed rate optimization method of this disclosure uses recorded spindle torque command data from a reference machining cycle, calculates a ratio of a target spindle torque to the recorded spindle torque command value at each positioning step along the toolpath, and uses this ratio to calculate a new feed rate to be used at each positioning step. For the reasons discussed above and as further described below, the new feed rate profile along the toolpath approaches an optimal feed rate profile. The first step in the disclosed method is to record time-series spindle torque command data for a reference machining cycle. In a preferred embodiment, the machine tool is set up with a pre-programmed NC toolpath—typically with a constant feed rate. As is evident to those skilled in the art, the toolpath can include many different cutting steps and "air cut" steps, in which the cutting tool repeatedly positions itself, removes material from the workpiece, repositions itself, performs the next machining operation, and so on, until the machining operation is completed. Large air cut steps are typically programmed to be performed using the maximum machine speeds and accelerations, so there is no need to modify these air cut steps for time optimization.Feed rate optimization is only performed for cutting steps and smaller air cutting steps that are included in the programming of cutting steps. To understand the reference machining cycle, consider the machining operation shown in Fig. 2A with a constant feed rate along the toolpath 230. At each incremental position of the tool center along the toolpath 230, the spindle torque is recorded along with the tool center position. This results in a time series data set containing the spindle torque and tool center position recorded at each time step. The feed rate along the toolpath 230 is also known for the reference machining cycle. The time step increment (i.e., the duration and interval between the individual time series data points) can be selected to meet the application requirements. After completion of the reference machining cycle, the time series data can be evaluated to determine the highest spindle torque command value over the entire cycle. This highest value can be defined as the spindle torque command setpoint, SPTCMDTARG. Alternatively, the spindle torque command setpoint, SPTCMDTARG, can be defined based on machine requirements, for example, as a value equal to 20% of the machine's maximum spindle torque. Both methods should result in a similar value for SPTCMDTARG, since the constant feed rate of the reference machining cycle would have been chosen such that the maximum spindle torque equals the value based on the machine requirements. According to the method disclosed herein, a new feed rate profile is defined by comparing the spindle torque command value at each point in the reference machining cycle with the spindle torque command setpoint SPTCMDTARG. The new feed rate profile is calculated as follows: For each time series data point in the reference machining cycle (i = 1, n), a new feed rate Feedoptim,ian is calculated based on the original (known and constant) feed rate Feedorig and the ratio of SPTCMDTARG to SPTCMDI. In equation (3), SPTCMDI is the spindle torque command value recorded for the specific time series data point i. In the new feed rate profile, the new feed rate Feedoptim,ian is used for the tool center position (posi) corresponding to time step i.This results in a new feed rate profile, in which an optimal feed rate is defined at each tool center position along the toolpath. It should be noted that the new feed rate profile will complete the machining cycle in a shorter time than the reference machining cycle (as shown in the diagrams in Figures 2A and 2B). Therefore, the new feed rate profile comprises a series of positions (along the toolpath) and corresponding feed rates. The feed rate profile with these positions and feed rates can be converted into a time-step-based motion program, with each time step having a corresponding position on the toolpath trajectory and a corresponding feed rate. Referring again to Fig. 2B, it can be seen how equation (3) provides a new feed rate profile that is significantly more time-efficient than the original constant feed rate, while simultaneously ensuring that the commanded spindle torque does not exceed the specified maximum value. In the case of the cutting tool 220 immediately after arrow 270, the maximum amount of material is removed from the workpiece 210. Therefore, the value of the spindle torque command at this point (SPTCCMDi) should be very close to the value of the target spindle torque command SPTCMDTARG, which means that the feed rate at this point in the new speed profile will be almost identical to the original constant feed rate of the reference machining cycle. In contrast, at the position of arrow 280, the minimum amount of material is removed from workpiece 210. Therefore, the value of the spindle torque command at this point (SPTCMDTARG) will be much lower than the value of the target spindle torque command (SPTCMDTARG), meaning that the feed rate at this point in the new speed profile will be much higher than the original constant feed rate of the reference machining cycle. The increased feed rate in areas of lower material removal allows the machining operation to be completed faster using the new optimal feed rate profile. When calculating the new velocity profile using equation (3), some control parameters can be defined to limit the extent to which the feed rate can be increased or decreased. For example, the feed rate at each point i in the new velocity profile can be restricted to a range of 0.8 to 3.0 times the original feed rate. In other words, the new feed rate cannot be slower than 0.8 times the original feed rate, and the new feed rate cannot be faster than 3.0 times the original feed rate. These values are only examples, and any feed rate limits suitable for a particular application can be chosen. It is emphasized that the spindle torque command data recorded for the reference machining cycle does not require a torque sensor in the machine tool or on the cutting tool. The spindle torque command data is known to the machine control because the control monitors the spindle speed and sends torque commands (via the motor current) to the spindle motor, designed to maintain a target spindle speed. Thus, the method described above is sensorless insofar as it utilizes built-in capabilities of the machine tool (for measuring positions and speeds) as well as parameter data known to the machine control. In some embodiments, the spindle torque command time series data for the reference machining cycle can be preprocessed to eliminate the air cutting torque. This is because the total spindle torque equals the cutting torque plus a frictional torque within the machine tool itself. Therefore, Ttotal = Tcut + Tfriction. The frictional torque Tfriction is the amount of torque required to rotate the spindle at the cutting speed without any contact between the tool and the workpiece. Thus, the frictional torque can be determined during an air cutting step. In embodiments where the air-cutting torque is eliminated, the air-cutting torque (friction torque) would also be eliminated from the target spindle torque command SPTCMDTARGeliminated. Although the air-cutting torque (friction torque) is small compared to the actual cutting torque, eliminating the friction torque from the optimal speed profile calculation can yield somewhat better results in some applications. After the new feed rate profile has been calculated as discussed above, a new motion program for the machining operation can be created by using the geometric shape of the original toolpath and by inserting a new feed rate command for each position point along the toolpath. This results in a motion program that follows the original toolpath and whose feed rate approaches an optimal feed rate profile along the toolpath. The new motion program can utilize the feed rate profile (comprising [position, feed rate] data pairs) and convert it into time series data points for the new motion program in a manner known from the prior art. This new motion program is then used by the machine control during machining operations in production. Fig. 3 contains a graph 300 of spindle torque versus time and a graph 350 of feed rate versus time, each graph comprising a data curve for a conventional constant feed rate and a data curve where the feed rate is varied according to an embodiment of the present disclosure based on the amount of material removed. Graphs 300 and 350 represent results from an experimental implementation of a sinusoidal cutting path operation of the type shown in Fig. 2 using the feed rate optimization method described above. In diagram 300, data curve 310 represents the spindle torque data for a conventional machining cycle with a constant feed rate, such as the reference machining cycle used in the preceding discussion. Data curve 320 represents the spindle torque data for a machining cycle in which the motion program was created using the feed rate optimization method discussed above. Line 330 represents the target spindle torque command SPTCMDTARG. Diagram 300 shows that the spindle torque during the machining cycle with constant feed rate (data curve 310) oscillates between maximum and minimum values as the amount of material removed from the workpiece varies. As expected, the maximum spindle torque values on data curve 310 are equal to the target spindle torque. This is the behavior shown in the diagram of Fig. 2A and already discussed. In contrast, the spindle torque for the machining cycle with optimized feed rate (data curve 320) exhibits peaks and troughs, but the peaks remain at the target spindle torque value for a longer period, and the troughs do not drop as sharply as in the data curve for constant feed rate. Diagram 350 illustrates the constant feed rate with data curve 360. In contrast, during the machining cycle with optimized feed rate (data curve 370), the feed rate increases drastically in sections of the machining cycle where the amount of material removed is small, and it decreases again to the feed rate of the conventional machining cycle with constant feed rate in sections of the machining cycle where the amount of material removed is large. This is the expected behavior given the feed rate optimization calculation method discussed above. In the experimental implementation shown in diagrams 300 and 350, the maximum change in feed rate for the optimized machining cycle was set to three times the constant feed rate of the reference machining cycle. The feed rate limits were applied for this purpose, as previously discussed. The threefold increase in feed rate is visible in data curve 370 compared to data curve 360 in diagram 350. If a further increase in feed rate (more than threefold) were permitted, this would reduce the size of the troughs in data curve 320 in diagram 320. However, at a certain point, excessive increases in feed rate would lead to unacceptably jerky tool movement (more pronounced peaks in data curve 370) and / or exceeding the machine's acceleration and jerk limits. The results shown in Fig. 3 clearly demonstrate that the feed rate optimization method of this disclosure results in a machining cycle with significantly fewer changes in spindle torque than a conventional machining cycle with a constant feed rate, while still ensuring that the maximum spindle torque does not exceed the spindle torque setpoint. Most importantly, the machining cycle with feed rate optimization is completed in a much shorter time than the conventional machining cycle with a constant feed rate. In this experimental implementation, the machining cycle time was reduced by more than 40% by using the feed rate optimization method disclosed herein. This reduction in cycle time can be seen in both diagrams in Fig. 3. In another experimental implementation, the machining operation involved machining a workpiece made from a solid block of material. The workpiece contained numerous protrusions, ribs, and cavities of varying height and thickness, resulting in complex tool-work interactions, both inside and outside the workpiece. In this experimental implementation, the maximum feed rate increase for the optimized machining cycle was set to twice the original feed rate. In this example, the machining cycle time was reduced by almost 20% compared to the constant feed rate machining cycle by using the sensorless feed rate optimization method disclosed herein. The feed rate optimization method described above can be understood as a type of forward control, where changes to the feed rate are made in anticipation of imminent changes in the amount of material removed from the workpiece. In another embodiment, the forward control using feed rate optimization can be combined with real-time feedback control to provide more robust and effective feed rate management. In a known feedback control system for a machine tool, spindle torque data is monitored in real time by the machine control, possibly along with other parameters such as spindle temperature. When the spindle torque value reaches a predefined threshold (similar to the target spindle torque command discussed above), the machine control reduces the feed rate as much as necessary to bring the spindle torque value back to or below the threshold. Due to the nature of feedback control, some overshoot of the spindle torque threshold may be unavoidable, especially during high-speed machining operations. By combining forward control and feedback control for a machining operation, the best features of both control strategies can be achieved. Fig. 4 is a block diagram of a system 400 for sensorless feed rate optimization with additional feedback control, which includes providing a reference feed rate from an optimized feed rate profile and adjusting the reference feed rate by means of feedback control, according to an embodiment of the present disclosure. In the system 400, a machine control 410 controls a machine tool 470 in the manner shown in Fig. 1 and already discussed. In the feed rate optimization method disclosed herein, the controller 410 is provided with a motion program that contains an optimal feed rate for each position point along a toolpath in accordance with the sensorless feed rate optimization disclosed herein and described in detail above. Then, at each time step during the actual execution of the machining cycle on production parts, the tool center position is provided from a block 420 to a motion program block 430, which determines the optimal feed rate based on the tool center position along the toolpath. In a basic implementation of the feed rate optimization method, the optimal feed rate is provided by block 430 of the machine tool 470, which uses the feed rate as commanded. In a more advanced implementation, feedback control can be applied by adding the elements within a dashed box 412. In this embodiment, the optimal feed rate is provided by block 430 as a reference feed rate for a feedback control block 440. The feedback control block 440 calculates an adjusted feed rate based on a difference between a reference spindle torque command value (the torque value specified by the feedback control; provided by a block 450) for the current time step and the actual torque command from the previous time step (provided as feedback from the machine tool 470 on a line 460). The feedback control block 440 can use a PID control algorithm or another feedback control algorithm known from the prior art. If the actual spindle torque command is greater than the reference torque command, the feedback control block 440 calculates an adjusted feed rate that is lower than the optimal feed rate from block 430. Conversely, if the actual spindle torque command is less than the reference torque command, the feedback control block 440 calculates an adjusted feed rate that is higher than the optimal feed rate from block 430. In a PID control system, the feed rate adjustment calculations are performed using proportional-integral-differential logic, not just based on a simple difference. The output from the feedback control block 440 is the adjusted feed rate, which is provided as a command to the machine tool 470.The spindle torque command, which is designed to ensure that the spindle rotates at the target speed, is also provided for the machine tool 470. The combination of feedback control of the cutting tool feed rate with the prior creation of an optimal feed rate profile, as shown in Fig. 4, can offer the advantages of both forward and feedback control strategies. The reference rate of the forward control provides a theoretically optimal feed rate for all points along a toolpath, while the real-time feedback control makes more granular adjustments as needed to prevent overshoot of the cutting torque and, where possible, allow increases in feed rate.The adjustments made by the feedback control module 440, which are usually quite minor, may be necessary due to reasons such as a deviation of the actual workpiece position from the nominal workpiece position defined in the machine tool motion program. An experimental implementation of this combined control strategy demonstrated a very effective reduction in spindle torque command overshoot. Fig. 5 is a flowchart 500 of a method for sensorless feed rate optimization, which includes calculating an optimal feed rate profile based on spindle torque data from a reference machining cycle, according to an embodiment of the present disclosure. In Box 502, time-series data for a reference machining cycle are acquired by a machine tool control. For each time step, the time-series data includes a tool center position along a prescribed toolpath and a corresponding spindle torque command value. In a preferred embodiment, the reference machining cycle is executed using a motion program (e.g., from an NC or CNC) that applies a constant feed rate of the cutting tool along the toolpath. If variable feed rates are used in the reference machining cycle, the feed rate is recorded for each time-series data point, along with the tool center position and the spindle torque command. Box 504 determines a spindle torque command setpoint (SPTCMDTARG). The spindle torque command setpoint can be defined as the largest value of the spindle torque command over the entire reference machining cycle. Alternatively, the spindle torque command setpoint can be defined based on machine requirements, such as a value equal to 20% of the machine's maximum spindle torque. Either approach should yield a similar value for SPTCMDTARG. In Box 506, an optimal feed rate profile for the toolpath is calculated. As previously discussed, for each time step i in the reference machining cycle data set, a new optimal feed rate is calculated using equation (3), where the new feed rate is equal to the original feed rate for the time step multiplied by the ratio of SPTCMDTARG to SPTCMDI, where SPTCMDI is the recorded spindle torque command value for the specific time series data point i. In the new optimal feed rate profile, the new feed rate Feedoptim,ian of the tool center position (posi) corresponding to time step i is used. This results in a new feed rate profile in which an optimal feed rate is defined at each tool center position along the toolpath. As previously discussed, when calculating the optimal feed rate profile for box 506, limits can be applied to the increase or decrease in feed rate calculated using equation (3). For example, a maximum increase or decrease in feed rate by a factor of two or three may be prescribed. The rate increase factor may differ from the rate decrease factor, and these factors can be chosen to suit the application requirements. As also discussed previously, when calculating the optimal feed rate profile for box 506, the spindle torque values (both for SPTCMDTARG and SPTCMDi) can be pre-processed to calculate the air cutting torque (friction torque), so that the calculations of the optimal feed rate are carried out directly on the torque associated with cutting material, without including the parasitic friction torque. In Box 508, a motion program with the optimal feed rate profile is created and used in the machine control for machining operations in production. The motion program used in Box 508 contains an optimal feed rate for each position point along the toolpath, as calculated in Box 506. This results in a motion program that follows the original toolpath and whose feed rate approaches an optimal feed rate profile along the toolpath. In an alternative embodiment, the machine control, which performs the machining operations in production, uses the new motion program with the optimal feed rate profile for box 508 and also applies a feedback control block to adjust the commanded feed rate based on the actual spindle torque, as shown in Fig. 4. The use of feedback control in addition to the forward-controlled command for the optimal feed rate enables automatic, real-time fine-tuning of the feed rate to compensate for unexpected overshoot or undershoot of the target spindle torque. The sensorless feed rate optimization methods discussed above have proven highly effective in maintaining cutting tool loads at or below a target value while simultaneously reducing cycle times compared to constant-speed machining. These sensorless methods can be applied to machining operations where the amount of material removed from a workpiece is large enough to cause significant changes in spindle torque along the toolpath. However, in other applications, such as machining small components for electronic devices, a combination of small cutting tool diameter and low material removal rate results in negligible changes in spindle torque during machining, rendering the sensorless, spindle torque-based method ineffective.In these applications, an acceleration sensor can be added to the machine tool, and the acceleration signals can be evaluated for the purpose of feed rate optimization. This method is discussed below. The fundamental prerequisite for the sensor-based feed rate optimization method is that both the transverse and axial forces on the cutting tool are generally proportional to the tool feed rate. Even when the cutting tool moves perpendicular to the tool axis, machining with the tool results in an axial force (in addition to a transverse force), partly because the cutting tool has a helical cutting edge profile (see the cutting tool 120 in the detail of Fig. 1). If the cutting tool also has an axial movement component (e.g., when descending into the workpiece material), this also causes an axial force that depends on the feed rate. The preceding discussion can be represented mathematically as follows: where Faxial is the axial cutting force at the tool, c is the feed per tooth, Kac is a force coefficient associated with material removal, a is the axial depth of cut, and θ is the engagement angle of the cutting edge. As already explained with reference to equation (1), three of the parameters (Kac, a, θ) in equation (4) are constants for a given machining operation (tool shape and workpiece material), which leads to the conclusion that Faxial ∝ c. That is, the axial force at the tool is essentially proportional to the feed per tooth, i.e., to the cutting feed rate. Instead of measuring the axial force directly at the cutting tool, it has been shown that time series data of the axial acceleration can be processed and evaluated to detect changes in the axial force at the cutting tool. Thus, a Z-axis acceleration signal can be used as a substitute for the axial force at the tool, which in turn is related to the cutting force in the lateral (X and Y) directions. The changes in the cutting force determined from the axial acceleration signal can be used to calculate an optimal feed rate profile. Returning to Fig. 1, a sensor 150 is mounted on the machine tool 110. In a preferred embodiment, the sensor 150 is an acceleration sensor, and more precisely, an acceleration sensor configured to acquire time-series data of the acceleration in the axial direction (parallel to the spindle axis; also referred to as the Z-direction, as indicated by the arrow). The sensor 150 acquires time-series data during the machining operation and provides the acceleration data to the controller 140. The acquired data (e.g., Z-axis acceleration data) are correlated with the position of the tool center along the toolpath during the machining operation, and the sensor data are then evaluated to calculate an optimal feed rate profile in a similar manner to the sensorless method already described. For the purposes of the following discussion, an acceleration parameter X is defined, which is used in the calculations for feed rate optimization. In one embodiment, the time series data from the axial acceleration sensor are double-integrated and high-pass filtered to generate the time series data Xorig. The double integration transforms the axial acceleration data into the equivalent of the axial displacement, which varies with the axial force. The high-pass filtering eliminates drift from the time series data. The double integration and high-pass filtering are just one example of a data processing procedure for generating Xorig from raw time series data of the axial acceleration. Other methods found to be suitable may be used. In some preferred embodiments, the accelerometer 150 provides data measurements at a higher frequency than the time step increment used by the controller 140 to control the machine tool 110. Therefore, multiple axial acceleration data points are available for each time step of the controller, which helps to prevent peaks and dips in the acceleration data from artificially influencing the acceleration parameter X. A moving average or other low-pass filter is then applied to the time series data Xorig as follows to generate time series data for the acceleration parameters X: where Xorig(t) is the acceleration time series data after double integration and high-pass filtering (or other data processing) as described above, and X(t) is the acceleration parameter time series data used in the calculation of the feed rate optimization. As with the previously discussed method for sensorless feed rate optimization, the sensor-based method begins with the recording of time-series data for a reference machining cycle, in this case, axial acceleration data for each point along the toolpath. In a preferred embodiment, the machine tool is set up with a pre-programmed NC toolpath—typically with a constant feed rate. During the reference machining cycle, the axial acceleration, along with the tool center position, is recorded at each incremental position of the tool center along the toolpath 230 (Fig. 2). This results in a time-series dataset containing the axial acceleration and the tool center position recorded at each time step. The feed rate along the toolpath 230 is also known for the reference machining cycle. The time step increment (i.e.,The duration and spacing between individual time series data points can be chosen to meet the application requirements. After completion of the reference machining cycle, the time series data can be evaluated to determine the largest value of the acceleration parameter X (calculated from the axial acceleration data) over the entire reference machining cycle. This largest value can be defined as the target acceleration amplitude value XTARG. According to the sensor-based method disclosed herein, a new feed rate profile is defined by comparing the axial acceleration amplitude value at each point in the reference machining cycle with the target acceleration amplitude value XTARG. The new feed rate profile is calculated as follows: For each time series data point in the reference machining cycle (i = 1, n), a new feed rate Feedoptim,ian is calculated based on the original (known and constant) feed rate Feedorig and the ratio of XTARG to Xiber. In equation (6), Xi is the value of X (from equation (5), based on the original axial acceleration data) calculated for the specific time series data point i. In the new feed rate profile, the new feed rate Feedoptim,ian is used for the tool center position (posi) corresponding to time step i.This results in a new feed rate profile in which an optimal feed rate is defined at each tool center position along the toolpath. For points along the toolpath where Xi < XTARG, the optimal feed rate is increased above the original feed rate to improve cycle time. For points along the toolpath where Xi > XTARG, the optimal feed rate is decreased compared to the original feed rate to prevent excessive load on the cutting tool. Limits can be set for the permissible increase or decrease in feed rate within the optimal feed rate profile, as already discussed in connection with equation (3). Sensor-based feed rate optimization works in the same way and for the same reasons already discussed with reference to Fig. 2. That is, the feed rate can be increased relative to the nominal value in parts of the toolpath where the material removal rate is low, and vice versa. When applied to a sinusoidal toolpath of the same type as shown in Fig. 2, the sensor-based solution resulted in an optimized feed rate profile similar to that shown in Fig. 3 and already discussed, with feed rates significantly higher than the nominal constant feed rate operating in many parts of the machining cycle.It is emphasized again that this feed rate optimization is achieved using the sensor-based method, although no spindle torque command data is used because the machine control cannot detect changes in spindle torque. It is reiterated that the new feed rate profile will complete the machining cycle in a shorter time than the reference machining cycle, as illustrated in the diagrams of Figures 2A and 2B and already discussed. In the example discussed above, the sensor-based method generated a feed rate profile that completed the machining operation in approximately 32% less time than the machining cycle with a constant feed rate. The new feed rate profile comprises a series of positions (along the toolpath) and corresponding feed rates, which can be used by the controller in any suitable way to control the movement of the machine tool according to the feed rate profile. The advantages of combining feed rate feedback control with forward control have already been discussed in relation to the sensorless feed rate optimization method, and a block diagram of such a system is shown in Fig. 4. This same approach can also be applied to sensor-based feed rate optimization. It should be noted that in this case, instead of using the actual torque command as feedback on line 460 (which is data known to the machine control), the real-time axial acceleration signal from sensor 150 must be used for feedback. In some embodiments of the sensor-based feed rate optimization method, an additional function can be added to address the problem of direction-dependent vibration cross-coupling in the machine tool. Consider a machine coordinate system where the Z-axis is parallel to the spindle axis (e.g., vertical), as discussed above, and the X- and Y-axes are aligned longitudinally and transversely, respectively (e.g., in a horizontal plane). Machine tool design considerations require that the structure and mechanization for tool movement in one direction (e.g., X) differ from those for tool movement in the orthogonal direction (e.g., Y). This means that the stiffness / flexibility properties differ in the X and Y directions, leading to direction-dependent vibrations in the machine tool.These vibrations can also exhibit cross-coupling effects, which likewise depend on the machine tool's design. In other words, vibrations in the X-direction are to some extent also perceptible in the Y- and Z-directions, and vice versa. Furthermore, vibrations in the X-direction result in a different vibration signature in the Z-direction than vibrations in the Y-direction. In other words, the acceleration in the Z-direction resulting from cutting in the Y-direction can differ significantly from the acceleration in the Z-direction resulting from cutting in the X-direction. Since the sensor-based feed rate optimization method relies on the magnitude of the acceleration in the Z-direction, it can be advantageous to consider the cutting direction when processing the acceleration data. This can be achieved by dividing the entire toolpath trajectory into feed angle groups and using a single XTARG value for each feed angle group. Fig. 6 is a top view of a feed angle working range of a machine tool in an implementation of sensor-based feed rate optimization, in which a plurality of sectors are defined and a setpoint is selected at each time step based on the sector in which the tool feed angle vector lies, according to an embodiment of the present disclosure. Fig. 6 shows an X-axis direction 610 and a Y-axis direction 620 of a machine tool coordinate system. In the machine tool coordinate system, the Z-axis points downwards, parallel to the axis of the cutting tool. These specifications are consistent with the coordinate directions used throughout the present disclosure. The X and Y directions in Fig. 6 refer to the tool speed, not to the position, as discussed below. A quadrant 630 is defined for the portion of the machine tool's feed angle working range where the cutting tool's feed angle has a positive X-component and a positive Y-component. The feed angle is the speed or direction of movement of the cutting tool at any point along a toolpath. Quadrant 630 is divided into three sectors: sector 640 describes cutting tool feed angles between 0° and 30° from the X-axis; sector 650 describes feed angles between 30° and 60° from the X-axis; and sector 660 describes feed angles between 60° and 90° from the X-axis. During the reference machining cycle, the feed angle is recorded at each time step along with the corresponding axial acceleration data. A different value is calculated by XTARG for each of sectors 640, 650, and 660.This means that the target value is determined based on the sections of the reference machining cycle where the feed angle lies within sector 640, and the same procedure is followed for sectors 650 and 660. Determining a different XTARG value for each feed angle group takes into account the fact that a given feed rate in the X-direction can result in a significantly different axial acceleration in the machine tool than the same feed rate in the Y-direction. To calculate the optimal feed rate profile, equation (6) is used for each point i as before, but the value of XTARG is selected for the corresponding feed angle group for point i. For example, for a point on the machining cycle trajectory where the cutting tool has a feed angle vector of 642, the acceleration time series data parameter Ximits is used along with the target value for sector 640, which corresponds to the feed angle vector of 642. In this way, the concept of feed angle groups is applied to counteract the effects of direction-dependent vibration cross-coupling in the machine tool. The procedure for defining feed angle groups described above for quadrant 630 can, of course, also be applied to feed angles falling into other quadrants (negative X and / or Y velocity directions). The other quadrants can be symmetrical to quadrant 630 or uniquely defined. Furthermore, 30° sectors are merely a non-restrictive example; each quadrant can contain more or fewer than three sectors, and the sectors need not all be the same size. The sizes of the feed angle groups can be determined to meet application requirements and can be based on machine tool characteristics. Fig. 7 is a flowchart 700 of a method for sensor-based feed rate optimization, which includes calculating an optimal feed rate profile based on axial acceleration data from a reference machining cycle, according to an embodiment of the present disclosure. In Box 702, time-series data for a reference machining cycle are acquired by a machine tool control system. This data includes axial acceleration data from a sensor mounted on the machine tool. For each time step, the time-series data includes the tool center position along a prescribed toolpath and a corresponding axial acceleration value. In a preferred embodiment, the reference machining cycle is executed using a motion program (e.g., from an NC or CNC) that applies a constant feed rate of the cutting tool along the toolpath. If variable feed rates are used in the reference machining cycle, the feed rate is recorded for each time-series data point, along with the tool center position and the axial acceleration value. The axial acceleration data from the sensor can be provided at a higher frequency than the control cycle frequency. In other words, for each time step of the control system guiding the machine tool along the toolpath, multiple acceleration data points can be received and recorded by the sensor, thus providing more data for averaging or other data processing methods, and therefore reducing the impact of individual peaks in the acceleration data. In Box 704, an acceleration-related parameter X is calculated from the raw axial acceleration time series data. As previously discussed, the acceleration parameter X has a value at each time series data point, which can be a peak value of the axial acceleration or a double integral of the acceleration signal. Other data processing techniques can be applied to the original acceleration time series data to provide the acceleration parameter X, which is intended to be representative of the amplitude of the axial acceleration (and thus the force on the cutting tool) at each time step in the machining cycle. In box 706, a target value for the acceleration parameter X is determined. This target value is denoted XTARG and can be defined as the largest value of the acceleration parameter X over the entire reference machining cycle. In some embodiments, each path point in the machining cycle is assigned to a feed angle group based on the direction of the tool's velocity vector, and a target value XTARG is calculated for each of the feed angle groups. In Box 708, an optimal feed rate profile for the toolpath is calculated. As previously discussed, for each time step i in the reference machining cycle data set, a new optimal feed rate is calculated using equation (6), where the new feed rate is equal to the original feed rate for the time step multiplied by the ratio of XTARG to Xi, where Xi is the value of the acceleration parameter X for the specific time series data point i. In the new optimal feed rate profile, the new feed rate Feedoptim,ian of the tool center position (posi) corresponding to time step i is used. This results in a new feed rate profile in which an optimal feed rate is defined at each tool center position along the toolpath. As previously discussed, when calculating the optimal feed rate profile for box 708, limits can be applied to the increase or decrease in feed rate calculated using equation (6). For example, a maximum increase or decrease in feed rate by a factor of two or three may be prescribed. The rate increase factor may differ from the rate decrease factor, and these factors can be chosen to suit the application requirements. As previously discussed, when calculating the optimal feed rate profile for box 708, each time series data point can first be assigned to a feed angle group, and each feed angle group has its own unique value of XTARG, which is to be used in equation (6). The processing function relating to the feed angle group counteracts the effects of direction-dependent vibration cross-coupling in the machine tool and can yield better results in some applications, for example, in applications where the machining cycle covers a wide range of feed angles and the machine tool has very different stiffness properties in the longitudinal direction compared to the transverse direction. With Kasten 710, a motion program with the optimal feed rate profile is created and used in the machine control for machining operations in production. The motion program used with Kasten 710 contains an optimal feed rate for each position point along the toolpath, as calculated with Kasten 708. This results in a motion program that follows the original toolpath, with the feed rate approaching an optimal feed rate profile along the toolpath. With the sensor-based solution, the optimal feed rate profile is generated without processing the spindle torque command data, which is essential in applications such as electronics machining, where changes in spindle torque are too small to be detected. In an alternative embodiment, the machine control system, which performs the machining operations in production, uses the new motion program with the optimal feed rate profile for box 708 and also applies a feedback control block to adjust the commanded feed rate based on the actual value of the axial acceleration measured in real time, as previously discussed. The use of feedback control in addition to the forward-controlled command for the optimal feed rate enables automatic, real-time fine-tuning of the feed rate to compensate for unexpected overshoot or undershoot of the cutting force. The sensorless and sensor-based feed rate optimization methods described above offer powerful capabilities for generating a machining feed rate profile that minimizes machining cycle time while avoiding excessive spindle torque or material removal rate. Another important factor in machining operations is the surface roughness of the finished part. A method for predicting the nominal surface roughness in finishing operations is discussed below. Fig. 8 is a representation of a machining operation showing how a tool movement produces a fluted shape on the surface of a workpiece and serves to illustrate concepts used in the surface roughness prediction methods of this disclosure. Fig. 8 illustrates a machining operation of the same type as shown in Figs. 1 and 2. A machine tool (not shown) moves in a direction indicated by a feed arrow 810. The machine tool has a cutting tool 820 (e.g., an end mill) in its spindle, which rotates at a spindle speed S and moves at a linear feed rate F. The spindle rotates about a Z-axis, and the machine tool moves in a direction normal to the spindle axis, in this case in an X-direction, as indicated by the coordinate system shown in Fig. 8. A workpiece 830 is fixed in position and is machined by the cutting tool 820. With each revolution of the cutting tool 820, a cutting edge 822 cuts and removes a section 832 of material from the workpiece 830. The size and shape of the section 832 depend on the spindle speed S and the feed rate F, as well as the diameter of the cutting tool 820 and the number of cutting edges of the cutting tool 820 (discussed further below). If the feed rate F is negligible, the cutting tool 820 leaves a smooth surface on the workpiece 830. However, since the cutting edge 822 moves in the X-direction from one revolution to the next, the cutting tool 820 actually leaves a "grooved" shape on the machined surface of the workpiece 830, particularly in the lower part of the machined surface, which is designated 834. Fig. 9 is a representation of an ideal cutting tool with a perfect shape and a real cutting tool with runout, showing how the runout of the tool affects the chamfered shape of the workpiece after machining and how this effect can be simulated in embodiments of the present disclosure. A cutting tool 900 on the left has a rotary axis 910. The cutting tool 900 has a perfectly axially symmetric shape, such that each of the cutting edges 920 has the same tip diameter, which means that—at constant spindle speed and feed rate—each of the cutting edges 920 removes the same amount of material from the workpiece with each revolution of the tool. The cutting tool 900 represents an idealized tool; in practice, however, cutting tools always exhibit some degree of asymmetry. A cutting tool 930 on the right has a rotational axis 940. The cutting tool 940 represents a real example of a cutting tool with runout. Runout is the term for the condition in which the cutting edge structure is offset from the rotational axis of the cutting tool. The cutting tool 930 has cutting edges 950 (shown with a solid outline) that are offset laterally to the right from an idealized cutting edge structure 960 (shown with a dashed outline). This condition has nothing to do with the feed rate or direction; it is a property of the cutting tool 930 itself. The consequence of a tool's runout is that a specific cutting edge (952), which is aligned in the direction of the runout, removes the majority of the material from the workpiece with each revolution of the cutting tool 930.Below are discussed methods for simulating workpiece surface roughness based on a range of machining process parameters, where these methods can optionally be configured to account for the effects of tool runout. The workpiece surface roughness resulting from a machining operation can be simulated based on parameters including cutting tool diameter, feed rate, and spindle speed. This simulation is described in conjunction with the following figure. Fig. 10 is a representation of the path of a cutting edge tip of a cutting tool in a plane of motion and a corresponding surface profile, showing how the surface roughness of a workpiece is simulated in embodiments of the present disclosure. A cutting tool, such as that shown in Fig. 8, with two cutting edges, is modeled in a diagram 1000. The cutting tool moves in an XY plane (the plane of motion of the cutting tool) perpendicular to the Z-axis, which, by the same convention previously established, is the spindle axis of rotation. One of the cutting edges has a tip whose path is represented by a point 1010. As the cutting tool rotates and moves in the specified feed direction, the point 1010 describes a path 1020.The opposite cutting edge of the cutting tool describes a path that is the same as path 1020, but is phase-shifted by half a revolution. Diagram 1000 was generated using the following procedure. Initial coordinates in the XY plane are assigned to the tip of each cutting edge of the cutting tool. For example, the tip of the cutting edge represented by point 1010 can be assigned initial coordinates corresponding to a position trailing the feed direction on the "equator" of the cutting tool. The opposite cutting edge would then be assigned initial coordinates for a position leading the feed direction on the equator of the cutting tool. Based on the feed rate and the spindle speed, it can be determined how far each cutting edge tip moves in the feed direction per revolution of the cutting tool. For example, at a spindle speed of 1000 rpm and a feed rate of 100 mm / minute, the cutting tool travels 0.1 mm / revolution.The spatial movement of point 1010 can then be calculated at discrete points for each simulation step. If the simulation uses a step of one degree of spindle rotation, point 1010 rotates one degree around the spindle axis from one step to the next (providing new X and Y coordinates) and also shifts in the X direction by an amount determined by ΔX = (0.1 mm / rev) * (1 / 360 rev). Using the new X and Y coordinates resulting from the tool rotation and the shift ΔX, the position of point 1010 can be calculated at each simulation step. Graphically displaying the X and Y coordinates of point 1010 for all simulation steps yields the path 1020. Diagram 1030 shows the surface profile of the workpiece after machining with the cutting edge of the cutting tool moving along path 1020 and the opposing cutting edge. Diagram 1030 represents a high magnification, as its vertical axis (Y) has the unit micrometers, while the toolpath diagram 1000 has a vertical axis with the unit millimeters. In diagram 1030, the surface shape produced by path 1020 is represented by profile 1040 (dark line), while the surface shape produced by the opposing cutting edge is represented by profile 1050 (lighter line). The workpiece surface roughness can be calculated in any suitable manner using profiles 1040 and 1050. Examples of surface roughness parameters derived from the simulation include an absolute mean of the surface profile, a root mean square (RMS) of the surface profile, and a roughness depth.Other key figures can be used if necessary. The surface roughness simulation method described above can be modified to simulate cutting tools with more than two cutting edges (e.g., four) and / or to account for asymmetrical cutting tool geometries – such as unequal pitch (unequally spaced cutting edges) and runout (as discussed above, where one cutting edge performs the majority of the cut). In all cases, the simulation provides a parameter for the predicted surface roughness under the given feed rate and spindle speed conditions. Parts machined using the type of machining operation described in this disclosure generally need to meet a surface roughness tolerance. Therefore, the surface roughness prediction calculated as shown in Fig. 10 can be compared with the part tolerance to determine whether the machining operation parameters result in an acceptable surface finish / surface roughness of the workpiece. It should be recalled that the objective of the previously discussed methods for sensorless and sensor-based feed rate optimization is to increase the feed rate wherever possible in the machining cycle, particularly where the material removal rate is low.The increase in speed resulting from feed rate optimization can lead to an unacceptably high surface roughness; therefore, it is desirable to evaluate the surface roughness after performing the calculations for feed rate optimization, before implementing the optimized feed rate profile. Fig. 11 is a flowchart 1100 of a method for calculating a machining feed rate profile, which first includes performing a sensorless or sensor-based feed rate optimization, followed by an evaluation of the surface roughness and, if necessary, an adjustment of the feed rate profile, according to an embodiment of the present disclosure. In Box 1102, an optimal feed rate profile is calculated using either the sensorless or sensor-based feed rate optimization methods discussed in detail above. As previously described, this results in a feed rate profile in which an optimal feed rate is defined at each tool center position along the toolpath. In many cases, the optimal feed rate profile includes feed rates that are higher than those in the original profile (e.g., with constant speed). In box 1104, a simulation is performed to predict the surface roughness using the method shown in Fig. 10 and discussed above. This means that at least the fastest feed rate within the optimal feed rate profile is identified, and the surface roughness is predicted using this fastest feed rate and the other relevant machining parameters (e.g., spindle speed, tool diameter, etc.). In decision diamond 1106, it is determined whether the surface roughness predicted in box 1104 is acceptable. This can be done manually by evaluating the roughness prediction or programmatically by comparing the predicted roughness with a threshold or a specification value. If the predicted surface roughness is unacceptable, the process moves from decision diamond 1106 to box 1108, where a modified feed rate profile is calculated. This involves reducing the sections of the feed rate profile with the highest feed rates. The extent of the reduction can be determined in any suitable way, such as by a fixed percentage (e.g., 5%) or by a percentage selected based on a required reduction in the surface roughness parameter. Smoothing or blending techniques can be used to blend the changes in feed rate in sections of the profile where the rate is limited to a new maximum value.The result of box 1108 is a modified feed rate profile in which the maximum feed rate is lower than it was in the optimal feed rate profile of box 1102. The process returns to box 1104 to predict the surface roughness using the modified feed rate profile. At decision diamond 1106, it is determined again whether the surface roughness (now based on the modified feed rate profile) is acceptable. If not, another modified feed rate profile with a further reduced maximum feed rate is calculated at box 1108. The loop through boxes 1108 and 1104 can be repeated more than once to achieve the desired surface roughness value. If the predicted surface roughness is acceptable at decision diamond 1106, the process moves to box 1110, where the motion program with the final modified feed rate profile is used by the machine control for the actual workpiece machining operations. The above described methods for optimizing machining feed rates using sensorless and sensor-based techniques, and for evaluating the resulting workpiece surface roughness from an optimized feed rate profile prior to implementing the profile for production. All these calculations and evaluations can advantageously be integrated into a software application featuring a graphical user interface (GUI) that guides the user through the machining process setup. Fig. 12 shows a representation of a screen 1200 of a graphical user interface (GUI) of a software application configured to perform feed rate optimization for a machining operation, according to embodiments of the present disclosure. The GUI screen 1200 is designed to guide a user through the feed rate optimization process in a highly automated manner. At the top of the GUI screen 1200, the user selects two input files in area 1210. The first input file contains the NC program, which defines the movements for machining the workpiece / part. The second input file contains data from the previously described reference machining cycle, that is, the tool position and motor torque data (in the sensorless version), which are acquired from the reference machining cycle and used to calculate the optimal feed rate profile. The optimization settings and configuration options are set in area 1220 on the left side of screen 1200. The settings include defining a time range to be optimized, which is typically the entire machining cycle. The settings also include selecting the target load level, i.e., the percentage of the specified maximum machine torque to be used to scale the optimal feed rate profile, as previously discussed. The target load level can be set to a default value of 100%, but it can also be set higher or lower, with a lower target value being chosen, for example, to extend tool life. The maximum increase or improvement of the feed rate can also be selected using a slider in the 1220 range. The selection of the maximum feed rate increase (e.g., three times the constant feed rate used in the machining program) has already been discussed. In the lower left, indicated at 1230, there is a series of checkboxes for setting further configuration options. The first two—eliminating the frictional torque during the feed rate optimization calculation and allowing feed rate reductions alongside increases—have already been discussed. Another option, labeled "Advanced Fine Adjustment," is intended for a function that will be discussed in conjunction with a later figure. After the desired configuration settings have been set, the user can click the "Run Optimization" button (1240) to perform the feed rate optimization calculation. A chart area (1250) is located on the right side of the GUI screen (1200). Before clicking the button (1240) to perform the feed rate optimization, the chart area (1250) displays a graph showing the spindle torque data from the reference machining cycle as a curve (1260) and the target spindle torque as a line (1270). The Y-axis on the left is labeled with the units in percent of the maximum spindle torque. Fig. 13 is a representation of screen 1200 of the graphical user interface (GUI) of Fig. 12 after performing the feed rate optimization calculation according to embodiments of the present disclosure. When the user clicks the Run Optimization button 1240 as described above, the software application performs the feed rate optimization calculation and displays the results (the calculation is performed almost instantaneously). At this point, the graph area 1250 is reformatted as a graph area 1250A, the graph still containing the spindle torque data from the reference machining cycle in the form of curve 1260 and the target spindle torque in the form of line 1270, and now also including a feed rate curve 1330.Feed rate curve 1330 represents the optimal feed rate as a percentage of the original constant feed rate, as indicated by the Y-axis label added on the right. It can be seen that feed rate curve 1330 is higher where the reference machining cycle spindle torque is lower, and vice versa. This is due to the effect described in previous figures and in detail above. After the feed rate optimization calculation is performed, a "Save Program" button (1350) is activated, allowing the user to save a new machining program containing the optimized feed rate profile. This new machining program is then available for use in production operations. If the user wishes to experiment with further configuration settings, the buttons and other controls in area 1220 can be adjusted, after which the "Execute Optimization" button (1240) is reactivated. The software application and GUI screen 1200 described above are specifically configured to perform feed rate optimization for a machining operation using the sensorless method based on spindle torque data from a reference machining cycle. The same application and a similar GUI screen can be provided to perform feed rate optimization for a machining operation using the sensor-based method, which utilizes vibration data from a reference machining cycle. Another function of the disclosed feed rate optimization methods is related to the advanced fine-tuning checkbox shown in the lower left of Fig. 12, which was briefly mentioned above. This function enables a calculation that not only optimizes the feed rate for a given machining program but also adds new command lines to the program for finer adjustment of the feed rate. This function is discussed below. Fig. 14 is a representation of a workpiece to be machined with a toolpath defined by a program containing command lines with a sparse control point spacing, and of the workpiece with the toolpath redefined with increased control point density, according to embodiments of the present disclosure. In illustration 1400 on the left, a workpiece 1410 has a wavy shape along its left edge, as shown. The workpiece 1410 is to be machined with a cutting tool 1420 following a toolpath 1430 (dashed line) such that it has a flat surface along its left edge. The toolpath 1430 is defined in a machining program by a series of command-line control points 1432, 1434, 1436, 1438, etc., which are suitable for defining the toolpath (which in this case is a straight line) but are rather closely spaced. A single feed rate can be specified in the machining program for the command line containing each control point. However, when the feed rate optimization calculation is performed on the toolpath 1430, a slight improvement in the feed rate is achieved.This is because each of the toolpath segments (e.g. from control point 1432 to control point 1434) contains some sections with a high material removal rate and some sections with a low (or no) material removal rate, and only a single feed rate can be used in each toolpath segment. The solution to the problem described above is shown in Figure 1450 on the right. The workpiece 1410 is the same as discussed above. However, when using the methods of this disclosure, a new machining program is defined that includes additional command-line control points, which allow for a much better application of the calculations for feed rate optimization. The cutting tool 1420 follows a toolpath now designated 1430A because, although it follows the same trajectory as toolpath 1430, it is defined by a different set of command-line control points. In addition to the original control points 1432, 1434, etc., toolpath 1430A also includes added control points 1462, 1464, 1466, etc.When the calculations for feed rate optimization are performed on toolpath 1430A, the feed rate can be much better adapted to the actual cutting conditions in each toolpath segment. For example, in the toolpath segment from control point 1462 to control point 1464, little or no material is removed from workpiece 1410, so the feed rate can be set to its maximum value. Conversely, the toolpath segment from control point 1434 to control point 1466 has a high material removal rate, and the feed rate is kept close to the original feed rate to avoid exceeding the target spindle load. The capabilities described above in conjunction with Fig. 14—adding command lines to a machining program with finer control point spacing and optimizing the feed rate in the new machining program—are provided by means of the Advanced Fine-Tuning checkbox shown in Figs. 12 and 13. When this box is selected, the user enters a number of control points to be added to the machining program. After performing the feed rate optimization using an initial number of additional control points, the user can increase the number of additional control points, if desired, and rerun the optimization calculation until suitable results are obtained. The fine-tuning of the control point spacing can also be automated.For example, if "Advanced Fine Adjustment" is selected, the program can automatically insert an additional control point if the spindle load fluctuates by a predefined percentage between existing control points and / or if the optimal feed rate changes by a predefined percentage between the control points. This control point spacing function is configurable when programming the GUI and its underlying algorithm and / or via user-entered parameters. In other embodiments, the surface roughness prediction calculation and the flowchart of Fig. 11 can be added to the software application to provide the user with all these capabilities in a single user interface. This is discussed below. Fig. 15 is a representation of a GUI screen 1500 of a software application configured to perform feed rate optimization and surface roughness prediction for a machining operation, according to embodiments of the present disclosure. The GUI screen 1500 includes all the features of the GUI screen 1200 for feed rate optimization already discussed, including the configuration settings area 1220 and the graph area 1250A. Additionally, the GUI screen 1500 includes a surface roughness prediction area 1510, where the user can view the surface roughness prediction results for the optimized feed rate profile and, if desired, modify the feed rate profile to obtain workpiece surface roughness characteristics that meet the requirements. After performing the feed rate optimization and reviewing the results in sections 1220 and 1250A, the user can run a simulation to predict the surface roughness on the optimized feed rate profile by clicking button 1520. The results of this surface roughness prediction simulation are displayed in a table 1530, which includes various surface roughness parameters, such as a maximum value, a mean value, and a root mean square value of the surface roughness for a non-restrictive embodiment. If the user wishes to improve the surface roughness of the optimized feed profile, they can do so on the right side of area 1510. In box 1540, the user can enter a target value for the surface roughness or, alternatively, a percentage reduction in the maximum feed rates in the optimized profile. In either case, when the user clicks button 1550, the software application executes the steps of the flowchart in Fig. 11, calculating a new feed rate profile with a lower maximum feed rate (for example, less than the 300% increase already mentioned in the discussion of Fig. 12) and simulating the surface roughness for the new feed rate profile. The results of the surface roughness prediction for the modified feed rate profile are displayed in Table 1560.If the user is satisfied with the results, the machining program with the modified feed rate profile can be saved by clicking button 1570. The software application with the GUI screen 1500 offers users all the capabilities of the feed rate optimization methods disclosed here, including feed rate optimization for both sensorless and sensor-based applications, flexibility in defining the scope of feed rate improvement, convenient configuration options, the ability to add command-line control points to a machining program for better optimization of speeds in local sections of the machining process, and integrated surface roughness prediction with its own configurability and target matching. The motion profiles optimized using these capabilities can significantly improve the efficiency of machine tool operation. Throughout the preceding discussion, various computers and controllers are described and assumed. It is understood that the software applications and modules of these computers and controllers are executed on one or more electronic computing devices comprising a processor and a memory module. This includes, in particular, the machine controller 140 of Fig. 1 and the controller 410 of Fig. 4. Some or all of the calculations for feed rate optimization and surface roughness prediction can also be performed by a separate computing device connected to the machine controller. In particular, the processors in the controllers 140 / 410 and the separate computing device are configured to perform the sensorless and / or sensor-based feed rate optimization described above, comprising the process steps of Fig. 5, Fig. 6, and Fig. 7.7 and / or 11 and the calculations using equations (1)-(6) and other methods described above, as well as the execution of the software application and GUI of Fig. 12, Fig. 13 and Fig. 15 together with the control of the machine tool itself. Although a number of exemplary aspects and embodiments of the methods for sensorless and sensor-based feed rate optimization have been discussed above, the person skilled in the art will recognize modifications, permutations, additions, and subcombinations thereof. It is therefore intended that the following appended claims and claims introduced herein be interpreted as encompassing all modifications, permutations, additions, and subcombinations that correspond to their true spirit and scope.
Claims
A method for sensorless feed rate optimization, comprising: acquiring, by a machine control, time series data for a reference machining cycle performed by a machine tool, wherein the data include a tool center position along a toolpath and a spindle torque command for a plurality of time steps; determining a spindle torque command setpoint; calculating an optimal feed rate profile, comprising, for each time step in the time series data, calculating a new feed rate as the original feed rate from the reference machining cycle multiplied by a ratio of the spindle torque command setpoint to the spindle torque command for the time step, and pairing the new feed rate with the tool center position in the optimal feed rate profile;and using a motion program created with the optimal feed rate profile by the machine control to control the machine tool that performs machining operations in the production plant. Method according to claim 1, wherein the spindle torque command recorded in the reference machining cycle has a value that is calculated by the machine control to cause a spindle of the machine tool to maintain a prescribed rotational speed. Method according to claim 1, wherein determining a spindle torque command setpoint comprises selecting a maximum spindle torque command value from the reference machining cycle or selecting a spindle torque command value based on machine tool limits. Method according to claim 1, wherein the reference machining cycle is performed using a predefined motion program comprising a constant feed rate. Method according to claim 1, wherein calculating a new feed rate comprises limiting the new feed rate by a maximum increase factor and a maximum decrease factor relative to the original feed rate. Method according to claim 1, wherein the motion program is created by pairing each tool center position in the optimal feed rate profile with its corresponding new feed rate and defining machine tool motion commands that include all pairings. Method according to claim 1, wherein an air cutting torque value is subtracted from the spindle torque command setpoint and from the spindle torque command in the time series data for the reference machining cycle before the optimal feed rate profile is calculated. The method according to claim 1, further comprising the use of a feedback control algorithm together with the optimal feed rate profile by the machine control to control the machine tool that performs the machining operations in the production operation. The method of claim 8, wherein for each step in the motion program an optimal feed rate is determined based on a tool center position, the feedback control algorithm calculates an adapted feed rate based on the optimal feed rate and a difference between a reference torque command and an actual torque command from a previous step, and the adapted feed rate and a new torque command are provided to the machine tool. Method according to claim 8, wherein the feedback control algorithm uses a proportional-integral-differential control. The method according to claim 1, further comprising performing a simulation to predict the workpiece surface roughness using feed rate data in the optimal feed rate profile together with a spindle speed as well as a radius and a number of cutting edges of a cutting tool. Method according to claim 11, wherein the simulation for predicting the workpiece surface roughness calculates a shape of a machined surface of the workpiece on the basis of a distance traveled by the cutting tool in a feed direction between cuts of one of the cutting edges of the cutting tool. The method according to claim 1, further comprising the use of a software application with a graphical user interface (GUI) with which a user can define configuration settings for feed rate optimization and display graphical results of the feed rate optimization. Method according to claim 13, wherein the GUI and the software application include a user-selectable option, wherein a number of additional command-line control points are added to the motion program and the optimal feed rate profile for the motion program with the additional command-line control points is calculated. Method according to claim 13, wherein the GUI and the software application comprise a simulation for predicting surface roughness, performed at the optimal feed rate profile, comprising a calculation of a modified feed rate profile that meets a user-defined surface roughness specification. Method according to claim 1, wherein the machine tool is a multi-axis machine tool or an industrial robot with a machining tool head mounted as an end effector. A method for sensorless feed rate optimization, comprising: acquiring, by a machine control, time-series data for a reference machining cycle performed by a machine tool, wherein the data include a tool center position along a toolpath and a spindle torque command for a plurality of time steps, and wherein the spindle torque command has a value calculated by the machine control to cause a spindle of the machine tool to maintain a prescribed rotational speed; determining a spindle torque command setpoint; and subtracting an air-cutting torque value from the spindle torque command setpoint and from the spindle torque command in the time-series data for the reference machining cycle.Calculating an optimal feed rate profile, comprising, for each time step in the time series data, calculating a new feed rate as the original feed rate from the reference machining cycle multiplied by a ratio of the spindle torque command setpoint to the spindle torque command for the time step, and pairing the new feed rate with the tool center position in the optimal feed rate profile; and using a motion program created with the optimal feed rate profile and a feedback control algorithm by the machine control to control the machine tool performing machining operations in production. System for sensorless optimization of the feed rate of a machine tool, the system comprising: a machine tool configured to perform a machining operation on a workpiece; and a computing device connected to the machine tool, the computing device being configured to calculate and use an optimal feed rate profile by performing steps that include: acquiring time-series data for a reference machining cycle performed by the machine tool, wherein the data include a tool center position along a toolpath and a spindle torque command for a plurality of time steps; determining a spindle torque command setpoint;Calculating an optimal feed rate profile, comprising, for each time step in the time series data, calculating a new feed rate as the original feed rate from the reference machining cycle multiplied by a ratio of the spindle torque command setpoint to the spindle torque command for the time step, and pairing the new feed rate with the tool center position in the optimal feed rate profile; and using a motion program created with the optimal feed rate profile to control the machine tool performing machining operations in production. System according to claim 18, wherein the spindle torque command recorded in the reference machining cycle has a value that is calculated by the computing device to cause a spindle of the machine tool to maintain a prescribed rotational speed, and wherein an air cutting torque value is subtracted from the spindle torque command setpoint and from the spindle torque command in the time series data for the reference machining cycle before the optimal feed rate profile is calculated. System according to claim 18, wherein determining a spindle torque command setpoint comprises selecting a maximum spindle torque command value from the reference machining cycle or selecting a spindle torque command value based on machine tool limits. System according to claim 18, wherein calculating a new feed rate comprises limiting the new feed rate by a maximum increase factor and a maximum decrease factor relative to the original feed rate. System according to claim 18, wherein the motion program is created by pairing each tool center position in the optimal feed rate profile with its corresponding new feed rate and defining machine tool motion commands that include all pairings. System according to claim 18, further comprising the use of a feedback control algorithm together with the optimal feed rate profile by the computing device to control the machine tool that performs the machining operations in the production operation. System according to claim 23, wherein for each step in the motion program an optimal feed rate is determined based on a tool center position, the feedback control algorithm calculates an adapted feed rate based on the optimal feed rate and a difference between a reference torque command and an actual torque command from a previous step, and the adapted feed rate and a new torque command are provided to the machine tool. System according to claim 18, wherein the computing device is further configured to perform a simulation for predicting the workpiece surface roughness using feed rate data in the optimal feed rate profile together with a spindle speed as well as a radius and a number of cutting edges of a cutting tool. System according to claim 25, wherein the simulation for predicting the workpiece surface roughness calculates a shape of a machined surface of the workpiece based on a distance traveled by the cutting tool in a feed direction between cuts of one of the cutting edges of the cutting tool. System according to claim 18, wherein the computing device executes a software application with a graphical user interface (GUI) with which a user can specify configuration settings for feed rate optimization and display graphical results of the feed rate optimization. System according to claim 27, wherein the GUI and the software application include a user-selectable option, wherein a number of additional command-line control points are added to the motion program and the optimal feed rate profile for the motion program with the additional command-line control points is calculated. System according to claim 27, wherein the GUI and the software application comprise a simulation for predicting surface roughness, which is performed on the optimal feed rate profile, comprising a calculation of a modified feed rate profile that meets a surface roughness specification defined by a user. System according to claim 18, wherein the machine tool is a multi-axis machine tool or an industrial robot with a machining tool head mounted as an end effector.