## 2 Estimation of Sideslip Angle
### Design of Sideslip Angle Algorithm  
The ADUKF algorithm was used to estimate the vehicle status parameters. This algorithm consists of an upper-layer UKF and a lower-layer UKF. ADUKF samples twice at time (k-1), including primary sampling and secondary sampling. Firstly, with an appropriate sampling strategy, N primary sampling points are selected, and then M secondary sampling points from each primary sampling point are chosen. The secondary sampling is a re-sampling of the results from the primary sampling. In the lower-layer UKF, the secondary sampling points with weights are predicted and updated. After that, the weights of the primary sampling points are updated. The updated secondary sampling points are weighted by the weights of the updated primary sampling points. The weighted status is considered as a prior status of the upper-layer UKF, and the primary sampling points are predicted and updated. Thereby, the whole ADUKF is finished. According to the 7-DOF nonlinear vehicle dynamic model, we select:  
System status vector: \(x(k)=[u\ v\ \gamma]\);  
Measuring status vector: \(z(k)=\left[a_{x}\ a_{y}\ \gamma\right]\);  
Control input: \(u(k)=[\delta\ \omega_{i}\ \mu_{i}]\);  
where \(\gamma_{i}\) is a wheel tire; \(\mu_{i}\) is the road surface adhesion coefficient where the four tires are, where \(i=[1,2,3,4]\). According to Equations (1)-(4), the state equation and observation equation of the vehicle system can be set up:  
\[\left\{ \begin{array}{l}\overset{\bullet}{x}(k)=f(x(k),u(k),k)+W(k)\\ z(k)=h(x(k),k)+V(k)\end{array} \right., \tag{8}\]  
where \(f(x(k),u(k),k)\) is the nonlinear state equation; \(h(x(k),k)\) is the nonlinear observation equation; \(W(k)\) and \(V(k)\) are the status noise and observation noise with Gaussian white noise and are mutually independent from the status vector, and their covariance matrices are Q and R.  
The system initial status is the initial value \(\hat{x}_{0}=E(x_{0})\), and the initial covariance is \(\hat{P}_{0}=E\left((x_{0}-\hat{x}_{0})(x_{0}-\hat{x}_{0})^{T}\right)\). Owing to the presence of noise, the initial status should be dimension-expanded:  
\[P_{0}^{\alpha}=\left[ \begin{array}{ccc}P_{0}&0&0\\ 0&Q&0\\ 0&0&R\end{array} \right]. \tag{9}\]  
The specific steps for ADUKF are as follows:  
(1) Initialize. \[\left\{ \begin{array}{l}\hat{x}_{0}=E(x_{0})\\ \hat{P}_{0}=E\left((x_{0}-\hat{x}_{0})(x_{0}-\hat{x}_{0})^{T}\right)\\ x_{0}^{\alpha}=\left[x_{0}\ 0\ 0\right]^{T}\\ P_{0}^{\alpha}=\left[\begin{array}{ccc}P_{0}&0&0\\ 0&Q&0\\ 0&0&R\end{array}\right]\end{array} \right.. \tag{10}\]  
(2) Select Sigma sampling points by using the symmetrical sampling strategy and calculate corresponding weights. \[\left\{ \begin{array}{l}x^{(1)}=\overline{x}\\ \left(x^{(i)}\right)_{i=2}^{N-n}=\overline{x}+\left(\sqrt{(n+k)P_{xx}}\right) _{i-1}\\ \left(x^{(i)}\right)_{i=N-n+1}^{N}=\overline{x}-\left(\sqrt{(n+k)P_{xx}}\right) _{i-n+1}\end{array} \right.. \tag{11}\]  
Weights of sampling points are:  
\[\left\{ \begin{array}{l}w_{1}^{m}=w_{1}^{e}=\frac{\kappa}{n+\kappa}\\ \left(w_{i}^{m}\right)_{i=2}^{N}=\left(w_{i}^{e}\right)_{i=2}^{N}=\frac{\kappa }{2(n+\kappa)}\end{array} \right., \tag{12}\]  
where \(N=2n+1\) is the number of sampling points; \(n\) is the number of status vector dimensions; \(P_{xx}\) is the status vector variance; \(\kappa\) is the ratio parameter used to lower the total prediction error. (3) Update the lower-layer UKF. At time \(k-1\), \(N\) sampling points \((\hat{x}_{i,k})_{i=1}^{N}\) are chosen by symmetrical sampling, and the sum of their weights \(w_{ijk}^{m}\) and \(w_{ijk}^{e}\) are determined. From each primary sampling point,\(M\) secondary sampling points \(\left(\hat{x}_{j,i,k}\right)_{i=1}^{M}\) are selected by using the same strategy, and the sum of their weights \(w_{j,i,k}^{m}\) and \(w_{j,i,k}^{c}\) is determined, where \(M=N\). 1 update time:  
\[\left\{