# A Feedrate Planning Method for the NURBS Curve in CNC
## 2 Feedrate Planning of a NURBS Curve Based on CCC
### The Feedrate Planning Method Based on CCC  
For any NURBS curve, its corresponding CCC can be constructed according to the method in the previous section, as shown as \(\mathrm{g}(s)\) in Figure 6, and the feedrate planning of the NURBS curve will be carried out in this section based on \(\mathrm{g}(s)\). The feedrate values \(f_{\mathrm{s}}\) and \(f_{e}\) at the start/end of this NURBS curve segment can be obtained from the feedrate look-ahead [30; 31; 32], which are treated as known quantities here. Figure 5: (**a**) Constructing results of CCC; (**b**) the whole curve of CCC. As shown in Figure 6, when planning the feedrate with an initial feedrate \(f_{s}\), the acceleration should be performed first in order to obtain a higher machining efficiency. That is, an acceleration curve \(f_{4}(s)\) starting from \((0,f_{s})\) should be constructed, which intersects with \(f_{1}(s)\) at point \(A\). After that, deceleration should be performed along \(f_{1}(s)\) until it intersects with \(f_{3}(s)\) at point \(B_{1}\), then a uniform motion along \(f_{3}(s)\) holds until the intersection point \(B_{2}\). Next, the acceleration is performed along \(f_{2}(s)\) and the final deceleration starts from the point C (the intersection point of the reverse acceleration curve \(f_{5}(s)\) and \(f_{2}(s)\) with \(f_{e}\) as the initial feedrate) to the end of the NURBS curve segment. Since \(f_{1}(s)\) and \(f_{2}(s)\) are both Acc/Dec curves with \(a_{\rm T}\) as their accelerations, the above process does not have the problem of tangential acceleration exceeding the limit. Therefore, when the coordinate values of each intersection point in Figure 6 are calculated, the feedrate planning of the NURBS curve is carried out. The method of solving each intersection point is as follows:  
\(A\) is the intersection point of \(f_{4}(s)\) and \(f_{1}(s)\), so the equation can be obtained as  
\[\sqrt{f_{8}^{2}+2a_{\rm T}s}=f_{A}=\sqrt{\lambda_{\rm min}-2a_{\rm T}s} \tag{15}\]  
From this, the coordinates of \(A\) are gained:  
\[\left\{ \begin{array}{l}s_{A}=\frac{\lambda_{\rm min}-f_{A}^{2}}{4a_{\rm T}} \\ f_{A}=\sqrt{\frac{\lambda_{\rm min}+f_{A}^{2}}{2}}\end{array} \right. \tag{16}\]  
For the intersection points \(B_{1}\), \(B_{2}\) and \(C\), the coordinates can be obtained in the same way as  
\[\left\{ \begin{array}{l}s_{B_{1}}=\frac{\lambda_{\rm min}-f_{\rm min}^{2}}{2a _{\rm T}}\\ f_{B_{1}}=f_{min}\\ s_{B_{2}}=\frac{\ell_{\rm min}^{2}-\kappa_{\rm min}}{2a_{\rm T}}\\ f_{B_{2}}=f_{min}\\ s_{C}=\frac{\ell_{\rm f}^{2}+2a_{\rm T}s-\kappa_{\rm min}}{4a_{\rm T}}\\ f_{C}=\sqrt{\frac{\kappa_{\rm min}+f_{C}^{2}}{2}+a_{\rm T}s_{e}}\end{array} \right. \tag{17}\]  
The above calculation process and results are based on the premise that there exists intersection point \(A\) between \(f_{4}(s)\) and \(f_{1}(s)\) and intersection point \(C\) between \(f_{2}(s)\) and \(f_{5}(s)\) in Figure 6. However, whether this premise holds is related to the values of variables, such as \(f_{8}\) and \(f_{e}\), therefore, it is necessary to check the premise and process the calculation results accordingly, and the process is as follows:  
(I) If \(f_{B_{1}}\leq\min(f_{A},f_{C})\), the above premise holds. At this time, the feedrate-planning result of this NURBS curve segment contains five Acc/Dec stages, shown in Figure 7.  
Figure 6: Principle of the feedrate planning of the NURBS curve based on CCC. The feedrates \(f_{A_{r}}f_{B_{1}}\),\(f_{B_{2}}\) and \(f_{C}\) at the intersection of each Acc/Dec stage have been obtained from Equations (16) and (17), while the values of the time parameters corresponding to each intersection can be obtained from the above known feedrates and linear Acc/Dec model, as follows:  
\[\left\{ \begin{array}{l}T_{A}=\frac{f_{A}-f_{A}}{a_{\rm T}}\\ T_{B_{1}}=T_{A}+\frac{f_{A}-f_{B_{1}}}{a_{\rm T}}\\ T_{B_{2}}=T_{B_{1}}+\frac{s_{B_{2}}-s_{B_{1}}}{f_{B_{1}}}\\ T_{C}=T_{B_{2}}+\frac{f_{C}-f_{B_{2}}}{a_{\rm T}}\\ T_{E}=T_{C}+\frac{f_{C}-f_{e}}{a_{\rm T}}\end{array} \right.