## 3 BP-ADRC Based on Uncertainty Quantification
### BP-ADRC Under Uncertainty Quantification  
Based on the total disturbance information obtained above, this paper adopts a linear ADRC controller, as shown in Figure 8, to achieve voltage tracking and disturbance-rejection performance.  
The parameters of the linear ADRC controller include the parameters of the extended state observer \(\omega_{o}\), \(b_{0}\) and the controller parameters \(k_{p}\) and \(k_{d}\). The parameter \(\omega_{o}\) determines the controller's ability to track disturbance information, while \(k_{p}\) and \(k_{d}\) determine the controller's ability to track control targets. Selecting the maximum \(\omega_{o}\) within the allowable bandwidth range in engineering implementation can obtain the most disturbance information, thus providing a clear empirical basis for parameter tuning. The parameters \(k_{p}\) and \(k_{d}\) are more sensitive to disturbance changes than \(\omega_{o}\), requiring more prominent adaptive capabilities for parameter tuning. Therefore, this paper proposes a method using a BP neural network to adjust the parameters \(k_{p}\) and \(k_{d}\). Compared with traditional parameter tuning, the BP neural network can provide better disturbance-rejection performance for the controller. Real-time optimization of \(k_{p}\) and \(k_{d}\) in the linear ADRC results in better overall control performance. The overall solution is shown in Figure 9:  
Figure 8: Linear ADRC controller flow diagram.  
First, the bus voltage is subtracted from the actual voltage to obtain the deviation \(e_{1}(t)\), which is input to the ADRC controller, and the control current \(y(t)\) is output. The deviation \(e_{2}(t)\) is obtained by subtracting the bus voltage \(V_{DC}\) from the output voltage \(v(t)\). Then, \(e_{2}(t)\), \(v(t)\) and \(V_{DC}\) are simultaneously input into the neural network for training and \(k_{p}\) and \(k_{d}\) are obtained and fed back to the LADRC controller in real-time. The neural network training structure diagram is shown in Figure 10.  
In Figure 10, from left to right are the input layer, hidden layer and output layer, with the input and output of the hidden layer as follows [27]:  
\[\begin{cases}J_{in}(n)=\sum\limits_{i}^{3}w_{ij}I_{in}(n)\\ J_{out}(n)=f(J_{in}(n))\end{cases} \tag{40}\]  
Figure 10: BP neural network structure diagram.  
Figure 9: Block diagram of the overall system.  
\[\left\{\begin{array}{l}K_{in}(n)=\sum\limits_{j=1}^{4}w_{jk}J_{out}(n)\\ K_{out}(n)=g(K_{in}(n))\end{array}\right. \tag{41}\]  
\(w_{ij}\) and \(w_{jk}\) are the weight coefficients of the neural network. The activation function of the neural network is [27]:  
\[f(x)=\frac{1}{e^{-x}+1} \tag{42}\]  
The network performance index is defined as [27]:  
\[E(k)=\frac{1}{2}{\left[V_{\rm DC}(k)-v(k)\right]}^{2}=\frac{1}{2}e^{2}(k) \tag{43}\]  
The weight coefficient update is achieved through the gradient descent method [27]:  
\[\Delta w_{jk}(n)=-\eta\frac{\partial E(n)}{\partial w_{jk}(n)} \tag{44}\]  
where \(\eta\) is the learning rate. The transformation of \(\frac{\partial E(n)}{\partial w_{jk}(n)}\) can be as follows [27]:  
\[\left\{\begin{array}{l}\frac{\partial E(n)}{\partial w_{jk}(n)}=\frac{ \partial E(n)}{\partial K_{out}(n)}\cdot\frac{\partial E_{out}(n)}{\partial K _{in}(n)}\cdot\frac{\partial K_{in}(n)}{\partial w_{jk}(n)}\\ \frac{\partial K_{in}(n)}{\partial w_{jk}(n)}=f_{out}(n)\end{array}\right. \tag{45}\]  
This paper utilizes MATLAB's built-in Neural Network Toolbox to train the BP neural network and achieve real-time parameter interaction between Simulink and the neural network. The learning rate \(\eta\) for the BP-ADRC is set to 0.2. The manually tuned parameters for the Extended State Observer (ESO) are fixed at \(\omega_{o}\) = 300 and \(b_{0}\) = 1000.