# A Feedrate Planning Method for the NURBS Curve in CNC
## 2 Feedrate Planning of a NURBS Curve Based on CCC
### Problem Analysis of the Existing \(C_{2}(s)\)-Constructing Method  
When constructing \(C_{2}(s)\), in order to shorten the machining time, the acceleration should be performed as much as possible to obtain a higher feedrate, and there are various methods to avoid the gradually increasing \(C_{2}(s)\) from exceeding the limit of \(C_{1}(s)\). As shown in Figure 1a, the literature [25; 26] valued the \(C_{2}(s)\) as \(C_{1}(s)\) in the overrun part directly. However, in the high-curvature region of the NURBS curve, this method will lead to a sharp change in the feedrate, resulting in an overrun of the tangential acceleration [27]. The literature [13] adopted a back-and-reconstruct strategy, shown in Figure 1b, but it required multiple iterations and cannot guarantee the real-time performance. The literature [19] first divided a NURBS curve into sub-curves, and then the method shown in Figure 1c was adopted for a single sub-curve, conservatively setting the upper limit of \(C_{2}(s)\) to the minimum value of \(C_{1}(s)\), which affects the machining efficiency. Among the above methods, the method in the literature [13] (Figure 1b) is representative and complex, and an analysis of its existing problems and causes is helpful to understand and deal with the feedrate planning problem of the NURBS curve. In Figure 1b, after the value of \(C_{2}(s)\) at \(s_{a}\) reaches its upper limit \(C_{1}(s_{a})\), the method performs a back-off process and reduces the value of constructed \(C_{2}(s)\) in the range of \(s\leq s_{a}\). It can be seen that although the \(C_{2}(s)\) before being reduced satisfies the constraint of \(C_{1}(s)\), there is a hidden overrun problem which leads to the failure of feedrate planning for the subsequent trajectory. Take any point \((s_{b},C_{1}(s_{b}))\) of \(C_{1}(s)\) in Figure 2 as an example. There is a deceleration curve \(D_{b}(s)\) passing through this point with the upper tangential-acceleration limit \(a_{\text{T}}\) of the machine tool as the acceleration, which represents the limit of the deceleration capability of the machine tool. At this time, take another point \((s_{c},C_{1}(s_{c}))\) on \(C_{1}(s)\), and it is easy to know that when the feedrate at \(s_{b}\) is \(C_{1}(s_{b})\), the value of \(D_{b}(s)\) in the range of \(s>s_{b}\) cannot be decelerated below \(C_{1}(s)\), due to the acceleration limitation of machine tool, resulting in the feedrate at \(s_{c}\) exceeding the limit. In the above process, the value of \(C_{2}(s)\) at \(s_{b}\) satisfies the constraint of \(C_{1}(s_{b})\), but it causes the feedrate at \(s_{c}\) to exceed the limit. The reason is that the value of each point on \(C_{1}(s)\) is only the feedrate-constraint obtained by Equation (3), which mainly considers the geometric constraint, while the kinematic constraint during the Acc/Dec process of the machine tool is not considered. Taking the point \((s_{c},C_{1}(s_{c}))\) in Figure 2 as an example, \(D_{c}(s)\) is the deceleration curve that passes through this point and takes \(a_{\text{T}}\) as the acceleration, and the value of \(D_{c}(s)\) at \(s_{b}\) is \(D_{c}(s_{b})\). Therefore, if the value of \(C_{2}(s)\) at \(s_{b}\) is greater than \(D_{c}(s_{b})\), it will inevitably cause the feedrate at \(s_{c}\) to exceed the limit, even if it satisfies the constraint \(C_{2}(s_{b})\leq C_{1}(s_{b})\). It can be seen that the point \((s_{c},C_{1}(s_{c}))\) will limit the feedrate \(C_{2}(s_{b})\) at \(s_{b}\). From the arbitrariness of \(s_{c}\), it also follows that any point on \(C_{1}(s)\) with an abscissa value greater than \(s_{b}\) will limit the feedrate at \(s_{b}\). The minimum of these limit values is the kinematic-constraint feedrate  
Figure 1: Comparison of three existing \(C_{2}(s)\)-constructing methods: the method in the literature [13; 25]; (**b**) [13]; (**c**) [19]. Figure 2: Analysis of \(C_{1}(s)\) data. at \(s_{b}\), and the smaller value between it and \(C_{1}(s_{b})\) is the actual upper limit of the value of \(C_{2}(s_{b})\).