## 3 Controller Design
### Design of SRBF-MADRC  
The ADRC algorithm is mainly composed of a tracking differentiator (TD), ESO and NLSEF. As the core part of ADRC, ESO is mainly used to track and estimate the system states and uncertain disturbances. Firstly, according to Equation (10), the controlled object is a third-order system. Then, under the condition that the model information is completely uncertain, the typical ADRC algorithm can adjust the controlled object to a pure integral series system through a third-order ESO [31]. The third-order ESO is established as follows:  
\[\left\{ \begin{array}{l}e=z_{1}-y\\ \dot{z}_{1}=z_{2}-\beta_{01}e\\ \dot{z}_{2}=z_{3}-\beta_{02}fal(e,\alpha,\lambda)+b_{0}u\\ \dot{z}_{3}=-\beta_{03}fal(e,\alpha,\lambda)\end{array} \right. \tag{14}\]  
where \(e\) is the angle error; \(\beta_{01}\), \(\beta_{02}\), \(\beta_{03}\) are the gain parameters; \(fal(e,\alpha,\lambda)\) is a nonlinear function as follows:  
\[fal(e,\alpha,\lambda)=\left\{ \begin{array}{l}\frac{e}{\lambda^{1-\alpha}} \quad,\quad\left|e\right|\leq\lambda\\ \quad\left|e\right|^{\alpha}sign(e),\left|e\right|>\lambda\end{array} \right. \tag{15}\]  
where \(\lambda\) is the length of the linear segment interval; \(\alpha\) is a constant between 0 and 1 and \(z_{1}\to x_{1}\), \(z_{2}\to x_{2}\), \(z_{3}\rightarrow\frac{1}{J}[(\sigma_{1}+\sigma_{2})x_{2}+(\sigma_{0}-\sigma_{1 }f_{g}(x_{2})x_{3}+\zeta_{o}]\). However, due to the strong nonlinearity and uncertainty of \(z_{3}\), ESO needs to select extremely large gain parameters to ensure the tracking of disturbances, which reduces the stability margin of the system and even causes vibration. To reduce the burden of ESO, according to Equation (12), an auxiliary model is introduced to compensate for partial friction. In addition, because the angular velocity of motor \(\dot{y}\) can be obtained directly through the encoder sensor, \(\dot{y}\) is taken as input to reduce the order of ESO. In summary, the MRESO is established as follows:  
\[\left\{ \begin{array}{l}e_{1}=z_{1}-\dot{y}\\ \dot{z}_{1}=f_{0}(z_{1})+z_{2}-\beta_{11}e_{1}+b_{0}u\\ \dot{z}_{2}=-\beta_{12}fal(e_{1},\alpha,\lambda)\end{array} \right. \tag{16}\]where \(e_{1}\) is the angular velocity error; \(\beta_{11}\) and \(\beta_{12}\) are the gain parameters; \(z_{1}\rightarrow\dot{\theta}\) and \(z_{2}\to f_{1}(x_{2},x_{3},\xi_{o})\). The function of TD is to track the input signal without overshooting and accurately output the differential of the input signal simultaneously. Firstly, the feedback error is defined as  
\[e_{r}=\dot{\theta}_{ref}-z_{1} \tag{17}\]  
The expression formula of TD is as follows:  
\[\left\{ \begin{array}{l}\dot{e}_{r1}=e_{r2}\\ \dot{e}_{r2}=-\delta sign(e_{r1}-e_{r}+\frac{e_{r2}|e_{r2}|}{2\delta})\end{array} \right. \tag{18}\]  
where \(e_{r1}\) and \(e_{r2}\) are the tracking and differential signals of the input \(e_{r}\), respectively; \(\delta\) is the tracking speed coefficient. NLSEF is a nonlinear combination of state errors forming the speed closed-loop control of the PMSM, which has numerous combination modes. The NLSEF selected in this work is as follows:  
\[u_{0}=k_{p}fal(e_{r1},\alpha,\lambda)+k_{d}fal(e_{r2},\alpha,\lambda) \tag{19}\]  
Compared with the linear control rate, the NLSEF has higher response speed and efficiency when the error \(e_{r}\) is within a small range. However, when the friction torque changes abruptly near zero speed and the error \(e_{r}\) suddenly increases, the advantages of the NLSEF is not apparent. To improve the anti-disturbance performance of the system, an SRBF neural network is paralleled with NLSEF for supervisory control. When a large tracking error occurs, the SRBF plays the role of rapid adjustment. The RBF neural network is a three-layer feed-forward neural network including an input layer, hidden layer and output layer. The structure of the single-input-single-output RBF neural network is shown in Figure 4[23]. The SRBF is designed to supervise the feedback errors of the servo system. It takes speed command as input, i.e., \(x_{1}=\dot{\theta}_{ref}\).