## 2 Methods
### Online Estimation  
In real-life applications, the parameters of the active suspension vary with time. Therefore, for more realistic investigation, the controller after training is tested without accurate knowledge of the parameters of the car body damper \(b_{s}\) and the damping of the tire \(b_{us}\), and we estimated them iteratively using the recursive least squares with exponential forgetting method, which works well with time-varying parameters [20], assuming that the parameters to be determined are not constant, but the true value changes with time. Given the initial values of \(\mathbf{P_{o}}\) and \(\mathbf{\hat{\theta}(t-1)}\), the recursive method satisfies the following Equations (6)-(8).  
\[\mathbf{\hat{\theta}(t)}=\mathbf{\hat{\theta}(t-1)}+\mathbf{K(t)(y(t)-\varphi^{T}(t)\mathbf{ \hat{\theta}(t-1)})} \tag{6}\]  
\[\mathbf{K(t)}=\mathbf{P(t-1)\varphi(t)(\lambda I+\varphi^{T}(t)P(t-1)\varphi(t))^{-1}} \tag{7}\]  
\[\mathbf{P(t)}=\mathbf{(I-K(t)\varphi^{T})P(t-1)\frac{1}{\lambda}} \tag{8}\]  
where \(\mathbf{\hat{\theta}(t)}\) is a vector that includes the estimated parameters \(b_{s}\) and \(b_{us}\) and \(\mathbf{K(t)}\) is a weighting vector that indicates how the correction and the pervious estimate should be combined. \(y(t)\) is the measured valued; in this paper, it is the true values added with noise generated from the standard normal distribution. \(\varphi\) is the regressor. \(P(t)\) is a matrix defined only when the matrix \(\Phi(t)^{T}\Phi(t)\) is nonsingular where:  
\[\mathbf{\Phi(t)^{T}\Phi(t)}=\sum_{i=1}^{t}\varphi(i)\varphi^{T}(i) \tag{9}\]  
\(\mathbf{I}\) is the identity matrix with a size of \(nxn\), where \(n\) is the number of parameters to be determined, and \(\lambda\) is a constant chosen to be 0.90. For fast convergence and to avoid singularities, the matrix \(P(t)\) is initialized as the identity matrix multiplied by 1000. We use the unsprung mass acceleration \(\tilde{x}_{us}\) in the online estimation process as the output \(y(t)\), since it includes all the parameters to be estimated. From (1), we can obtain the following:  
Figure 5: Algorithm implementation.  
\[\dot{x}_{us}=\frac{k_{s}}{m_{us}}x_{s}+\frac{b_{s}}{m_{us}}\dot{x}_{s}-\frac{(k_{s }+k_{us})}{m_{us}}x_{us}-\frac{(b_{s}+b_{us})}{m_{us}}\dot{x}_{us}-\frac{1}{m_{us }}u+\frac{b_{us}}{m_{us}}\dot{x}_{r}+\frac{k_{us}}{m_{us}}z_{r} \tag{10}\]  
Taking only the coefficients of the parameters to be determined as the other parameters will disappear when the error \(\left(\boldsymbol{y(t)-\varphi^{T}(t)\hat{\theta}(t-1)}\right)\) is calculated and considering that the output satisfies:  
\[\boldsymbol{y(t)=A(t)x(t)} \tag{11}\]  
yield the following:  
\[A(t)=\boldsymbol{\varphi^{T}(t)}=\left[\frac{x_{s}-x_{us}}{m_{us}}\quad\frac{- x_{us}}{m_{us}}\right] \tag{12}\]  
such that:  
\[\boldsymbol{x(t)}=\begin{bmatrix}b_{s}\\ b_{us}\end{bmatrix} \tag{13}\]  
\[\hat{\theta}(t)=\begin{bmatrix}\hat{b}_{s}\\ \hat{b}_{us}\end{bmatrix} \tag{14}\]  
where the term \(\boldsymbol{y(t)}\) is the measured output and \(\boldsymbol{x(t)}\) contains the measured parameters, whereas the term \(\boldsymbol{\varphi(t)}\) is the estimated output and \(\hat{\theta}(t)\) contains the estimated parameters.