## 3 BP-ADRC Based on Uncertainty Quantification
### Uncertainty Quantification  
Assume that the controlled process can be described as a second-order dynamic system, as shown in Equation (8) [18]:  
\[ \begin{cases}\frac{dx_{1}(t)}{dt}=x_{2}(t)\\ \frac{dx_{2}(t)}{dt}=f(x_{1},x_{2})+bu(t)\\ y(t)=x_{1}(t)\end{cases}  \tag{8}\]  
where the coefficient \(b\) in the control term is an unknown parameter, for the convenience of observer design, the second equation in (8) is rewritten as Equation (9) [18]:  
\[\frac{dx_{2}(t)}{dt}=f(x_{1},x_{2})+(b-b_{0})u(t)+b_{0}u(t) \tag{9}\]  
where \(b_{0}\) is a selected known parameter. Combining Equations (8) and (9) yields Equation (10) [18]:  
\[f(x_{1},x_{2})+(b-b_{0})u(t)=f_{0}(x_{1},x_{2})+f_{1}(x_{1},x_{2}) \tag{10}\]  
where \(f_{0}(x_{1},x_{2})\) represents the dynamics that can be quantified through measurement Past input/output Hankel matrix [31]:  
\[U_{p}= \begin{bmatrix}u_{0}(t)&u_{1}(t)\cdots&u_{N-1}(t)\\ u_{1}(t)&u_{2}(t)\cdots&u_{N}(t)\\ \vdots&\vdots&\ddots&\vdots\\ u_{k-1}(t)u_{k}(t)\cdots u_{k+N-2}(t)\end{bmatrix}  \tag{13}\]  
\[Y_{p}= \begin{bmatrix}y_{0}(t)&y_{1}(t)\cdots&y_{N-1}(t)\\ y_{1}(t)&y_{2}(t)\cdots&y_{N}(t)\\ \vdots&\vdots&\ddots&\vdots\\ y_{k-1}(t)y_{k}(t)\cdots y_{k+N-2}(t)\end{bmatrix}  \tag{14}\]  
Future input/output Hankel matrix [31]:  
\[U_{f}= \begin{bmatrix}u_{k}(t)&u_{k+1}(t)\cdots u_{k+N-1}(t)\\ u_{k+1}(t)&u_{k+2}(t)\cdots&u_{k+N}(t)\\ \vdots&\vdots&\ddots&\vdots\\ u_{2k-1}(t)&u_{2k}(t)&\cdots u_{2k+N-2}(t)\end{bmatrix}  \tag{15}\]  
\[Y_{f}= \begin{bmatrix}y_{k}(t)&y_{k+1}(t)\cdots y_{k+N-1}(t)\\ y_{k+1}(t)&y_{k+2}(t)\cdots&y_{k+N}(t)\\ \vdots&\vdots&\ddots&\vdots\\ y_{2k-1}(t)&y_{2k}(t)&\cdots y_{2k+N-2}(t)\end{bmatrix}  \tag{16}\]  
where \(k\) is a specific time. Consider the following time-invariant linear state-space model [31]:  
\[ \begin{array}{l}x_{k+1}(t)=Ax_{k}(t)+Bu_{k}(t)\\ y_{k}(t)=Cx_{k}+Du_{k}(t)\end{array}  \tag{17}\]  
The Toeplitz matrix [31]:  
\[\psi_{k}= \begin{bmatrix}D&0&\cdots&0\\ CB&D&\cdots&0\\ \vdots&\vdots&\ddots&\vdots\\ CA^{k-2}B&CA^{k-3}B&\cdots&D\end{bmatrix}  \tag{18}\]  
Extend the observability matrix [31]:  
\[\Gamma_{k}= \begin{bmatrix}C\\ CA\\ \vdots\\ CA^{k-1}\end{bmatrix}  \tag{19}\]  
Past state sequence [31]:  
\[X_{p}= \begin{bmatrix}x_{0}(t)&x_{1}(t)&\cdots&x_{N-1}(t)\end{bmatrix}  \tag{20}\]  
Future state sequence [31]:  
\[X_{f}= \begin{bmatrix}x_{k}(t)&x_{k+1}(t)&\cdots&x_{k+N-1}(t)\end{bmatrix}  \tag{21}\]  
According to Formulas (13)-(21), Formulas (22) and (23) can be derived as follows [31]:  
\[Y_{p}=\Gamma_{k}X_{p}+\psi_{k}U_{p} \tag{22}\]\[Y_{f}=\Gamma_{k}X_{f}+\psi_{k}U_{f}\] (23) The following formula is derived [31]: \[\xi=\Gamma_{k}X_{f} \tag{24}\]
3. Singular Value Decomposition (SVD) [31]: Perform singular value decomposition on (24): \[\xi= \begin{bmatrix}U_{1}&U_{2}\end{bmatrix}\begin{bmatrix}\Sigma_{1}&0\\ 0&0\end{bmatrix}\begin{bmatrix}V_{1}^{\mathrm{T}}\\ V_{2}^{\mathrm{T}}\end{bmatrix} =U_{1}\Sigma_{1}V_{1}^{\mathrm{T}}\] (25) \[\Gamma_{k}=U_{1}\Sigma_{1}^{1/2}T\] (26) \[X_{f}=T^{-1}\Sigma_{1}^{1/2}V_{1}^{\mathrm{T}}\] (27)  
where \(U_{1}\) and \(U_{2}\) are parts of the left singular vector matrix of the input data matrix, \(\sum_{1}\) is the singular value matrices, \(V\) is the matrix obtained through singular value decomposition and \(V_{1}\) and \(V_{2}\) are submatrices of \(V\). The state sequence vector can be estimated according to Formulas (25)-(27) [31]:  
\[X_{k}=[x_{k}(t)\quad x_{k+1}(t)\quad\cdots\quad x_{k+N-1}(t)] \tag{28}\]
4. Estimation of System Matrices: Define N-1 vectors [31]: \[\overline{X}_{k}= \begin{bmatrix}x_{k+1}(t)&\cdots\quad x_{k+N-1}(t)\end{bmatrix} \] (29) \[\overline{X}_{k}= \begin{bmatrix}x_{k}(t)&\cdots\quad x_{k+N-2}(t)\end{bmatrix} \] (30) \[\overline{U}_{k|k}= \begin{bmatrix}u_{k}(t)&\cdots\quad u_{k+N-2}(t)\end{bmatrix} \] (31) \[\overline{Y}_{k|k}= \begin{bmatrix}y_{k}(t)&\cdots\quad y_{k+N-2}(t)\end{bmatrix} \] (32) Then it is derived according to the above formula [31]: \[ \begin{bmatrix}\overline{X}_{k+1}\\ \overline{Y}_{k|k}\end{bmatrix} =