## 2 Theoretical Analysis of the Integral Backstepping Controller and the ELESO
### Design of Backstepping Control  
The backstepping control is used to decompose the complex nonlinear system into subsystems that do not exceed the system order, then design the corresponding Lyapunov function and intermediate virtual control quantity for each subsystem [30]. At each stage, the current Lyapunov function will be based on the state of the previous subsystem, including the current virtual control quantity to ensure system stability [31]. The control steps are mainly divided into the following steps: Firstly, the controller selects some states of the system as subsystems and designs the Lyapunov functions. According to the virtual control quantity of the subsystem, the virtual error variable is designed. A new subsystem is composed of the virtual error variable and the previous subsystem. A new Lyapunov function is designed to stabilize the new system. If the actual control quantity of the system is not obtained, the subsystem shall be designed recursively. Otherwise, the actual control quantity shall be designed to stabilize the whole system [32]. Each new system is designed on the premise that its subsystems are stable, so that the final control system can be stable. According to the estimated position and the estimated speed of the rotor obtained by the ELESO, this paper proposes an integral backstepping control module with a speed controller and current controller cascaded. The reference values of rotor speed and d and q-axis currents are defined as \(\omega_{r}\), \(i_{dref}\) and \(i_{qref}\). First, for the speed loop with a given reference speed, assuming that the control target of the system is speed tracking. Tracking error is constructed as follows:  
\[e_{\omega}=\omega_{r}-\omega+e_{\omega I} \tag{18}\]  
Figure 1: Block diagram of the plant controlled by the ELESO scheme. where \(e_{\omega I}\) is the integral of the estimation error in the sampling time. This term is added to ensure that the system can converge even if the system parameters contain uncertainties. \(e_{\omega I}\) is expressed as follows:  
\[e_{\omega I}=K_{\omega}\int\limits_{0}^{t}{(\omega_{r}-\omega)dt} \tag{19}\]  
To make the speed tracking error approaches zero, \(i_{pref}\) is designed as a virtual control variable. The candidate Lyapunov function is constructed as follows:  
\[V_{\omega}=\frac{1}{2}e_{\omega}^{2} \tag{20}\]  
The derivative of \(e_{\omega}\) can be obtained by combining Equations (1) and (18):  
\[\dot{e}_{\omega}=\dot{\omega}_{r}-\frac{3}{2}\frac{n_{p}}{J}\Big{(}\psi_{f}i_ {pref}+(L_{d}-L_{q})i_{d}i_{qref}\Big{)}+\frac{1}{J}T_{L}+\frac{B}{J}\omega+K_ {\omega}(\omega_{r}-\omega) \tag{21}\]  
Then, the derivative of the candidate Lyapunov function shown in Equation (20) is:  
\[\dot{V}_{\omega}=e_{\omega}\dot{e}_{\omega}=e_{\omega}\bigg{[}\dot{\omega}_{r }-\frac{3}{2}\frac{n_{p}}{J}(\psi_{f}i_{qref}+(L_{d}-L_{q})i_{d}i_{qref})+ \frac{1}{J}T_{L}+\frac{B}{J}\omega+K_{\omega}(\omega_{r}-\omega)\bigg{]} \tag{22}\]  
To make Equation (22) negative definite, \(i_{qref}\) is taken as follows:  
\[i_{qref}=\frac{J}{\frac{3}{2}n_{p}(\psi_{f}+(L_{d}-L_{q})i_{d})}\bigg{[}K_{1} e_{\omega}+\dot{\omega}_{r}+\frac{1}{J}T_{L}+\frac{B}{J}\omega+\dot{e}_{ \omega I}\bigg{]} \tag{23}\]  
The result of Equation (22) is as follows:  
\[\dot{V}_{\omega}=-K_{1}e_{\omega}^{2},K_{1}>0 \tag{24}\]  
\(T_{L}\) is used in Equation (23). \(T_{L}\) is unknown in most drive control designs. Therefore, it can be estimated according to the speed information obtained in the ELESO and Equation (1) [33]. At this time, the system has achieved the goal of global progressive speed tracking. To achieve complete decoupling and speed tracking of the PMSM, the current under the synchronous rotating coordinate system can be selected as follows:  
\[\left\{ \begin{array}{l}i_{qref}=\frac{J}{\frac{3}{2}n_{p}(\psi_{f}+(L_{d}-L_ {q})i_{d})}\Big{[}K_{1}e_{\omega}+\dot{\omega}_{r}+\frac{1}{J}T_{L}+\frac{B}{ J}\omega+\dot{e}_{\omega I}\Big{]}\\ i_{dref}=0\end{array} \right.