## 3 Singular Perturbation Decomposition and Control Law Design
### The Slow Subsystem
For nonlinear systems, we choose the Lyapunov function:  
\[\mathbf{V}=\frac{1}{2}\overline{\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{D}_{0s}(x_{0},\mathbf{x} _{1})\overline{x}_{2} \tag{24}\]  
We take the derivative of \(V\) with respect to time:  
\[\dot{\mathbf{V}}=\frac{1}{2}\overline{\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{D}_{0s}(x_{0}, \mathbf{x}_{1})\overline{x}_{2}+\overline{\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{D}_{0s}(x_{ 0},\mathbf{x}_{1})\dot{\overline{x}}_{2} \tag{25}\]  
Substituting Equation (23) into Equation (25), we can obtain:  
\[\dot{\mathbf{V}}=\frac{1}{2}\overline{\mathbf{x}}_{2}^{\mathrm{T}}[\dot{D}_{0s}(x_{0},\mathbf{x}_{1})-2H_{0s}(x_{0},\mathbf{x}_{1},\mathbf{x}_{2})]\overline{x}_{2}-\overline {\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{D}_{0s}(x_{0},\mathbf{x}_{1})\Lambda_{2}\Lambda_{1}^ {-1}\overline{x}_{2}-\overline{\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{H}_{0s}(x_{0},\bm {x}_{1},\hat{\mathbf{x}}_{2})\overline{x}_{2}+\overline{\mathbf{x}}_{2}^{\mathrm{T}}\tau _{d} \tag{26}\]  
According to Properties 2, we have:  
\[\dot{\mathbf{V}}=-\overline{\mathbf{x}}_{2}^{\mathrm{T}}\mathbf{D}_{0s}(x_{0},\mathbf{x}_{1}) \Lambda_{2}\Lambda_{1}^{-1}\overline{x}_{2}-\overline{\mathbf{x}}_{2}^{\mathrm{T} }\mathbf{H}_{0s}(x_{0},\mathbf{x}_{1},\hat{\mathbf{x}}_{2})\overline{x}_{2}+\overline{ \mathbf{x}}_{2}^{\mathrm{T}}\tau_{\mathrm{d}} \tag{27}\]  
Let \(\Lambda_{2}=\mathbf{D}_{0s}^{-1}(x_{0},\mathbf{x}_{1})[K_{s}-H_{0s}(x_{0},\mathbf{x}_{1}, \hat{\mathbf{x}}_{2})]\Lambda_{1}\), where, \(K_{s}\in\mathbf{R}^{n\times n}\). Then  
\[\dot{\mathbf{V}}=-\overline{\mathbf{x}}_{2}^{\mathrm{T}}K_{s}\overline{\mathbf{x}}_{2}+ \overline{\mathbf{x}}_{2}^{\mathrm{T}}\tau_{\mathrm{d}}=-\mathbf{y}^{\mathrm{T}}\mathbf{P} \mathbf{y}-\tau_{\mathrm{d}}^{\mathrm{T}}\tau_{\mathrm{d}} \tag{28}\]  
where, \(\mathbf{y}= \begin{bmatrix}\overline{\mathbf{x}}_{2}\\ \tau_{\mathrm{d}}\end{bmatrix} \), \(\mathbf{P}= \begin{bmatrix}\mathbf{K}_{s}&\mathbf{I}/2\\ \mathbf{I}/2&\mathbf{I}\end{bmatrix} \). Let \(\mathbf{K}_{s}=k_{s}\mathbf{I}\), \(k_{s}>0\). From Equation (28) we can find that, when \(k_{s}>0.25\), \(\mathbf{P}\) is a symmetric positive definite matrix, and \(\lambda_{\min}\{\mathbf{P}\}<1\). When \(k_{s}\to\infty\), \(\lambda_{\min}\{\mathbf{P}\}\to 1\). Therefore, we have:  
\[\dot{\mathbf{V}}\leq-\lambda_{\min}\{\mathbf{Q}\}\|\mathbf{y}\|^{2}+\|\tau_{\mathrm{d}}\| \leq 2-\|\overline{\mathbf{x}}_{2}\|+2(\frac{1-\lambda_{\min}\{\mathbf{Q}\}}{ \lambda_{\min}\{\mathbf{Q}\}})\zeta_{\mathrm{d}}^{2} \tag{29}\]  
From Equation (29) we can see that when the parameter \(k_{s}\) is properly selected, the following equation is satisfied: when \(\|\overline{\mathbf{x}}_{2}\|\geq\zeta_{\mathrm{d}}\sqrt{\frac{1-\lambda_{\min}\{ \mathbf{Q}\}}{\lambda_{\min}\{\mathbf{Q}\}}}=\zeta_{0}\), \(\dot{\mathbf{V}}\leq 0\). Otherwise, \(\|\overline{\mathbf{x}}_{2}\|\) will converge to \(\zeta_{0}\). The backstepping method is a feasible controlling method for uncertain and nonlinear systems [43; 44]. It is a step-by-step recursive design method: it can save the time for online calculation, and is more suitable for online control. This method combines the design of the control method with the choice of Lyapunov function and divides the system into several subsystems according to the design order. Firstly, a virtual controller and a Lyapunov function are designed for the lowest-order subsystem. Then continuing backstepping until the last subsystem. Finally, the control method is designed. The slow subsystem's desired output vector \(\mathbf{x}_{\rm 1d}\) and \(\mathbf{x}_{\rm 2d}\) are defined as:  
\[\mathbf{x}_{\rm 1d}=\mathbf{q}_{\rm 0d}= \begin{bmatrix}q_{\rm 1d}&\cdots&q_{\rm id}& \cdots&q_{\rm nd}\end{bmatrix} ^{\rm T}\mathbf{,}\mathbf{x}_{\rm 2d}=\hat{\mathbf{q}}_{\rm 0d}= \begin{bmatrix}\hat{q}_{\rm 1d}&\cdots&\hat{q}_{\rm id}&\cdots&\hat{q}_{\rm nd} \end{bmatrix} ^{\rm T} \tag{30}\]  
where, \(q_{\rm id}\) is \(q_{i}\)'s desired value, \(q_{\rm:id}\) is \(\hat{q}_{i}\)'s desired value.