Skip to main content

Cross-combined UKF for vehicle sideslip angle estimation with a modified Dugoff tire model: design and experimental results

A Correction to this article was published on 26 October 2021

This article has been updated

Abstract

The knowledge of key vehicle states is crucial to guarantee adequate safety levels for modern passenger cars, for which active safety control systems are lifesavers. In this regard, vehicle sideslip angle is a pivotal state for the characterization of lateral vehicle behavior. However, measuring sideslip angle is expensive and unpractical, which has led to many years of research on techniques to estimate it instead. This paper presents a novel method to estimate vehicle sideslip angle, with an innovative combination of a kinematic-based approach and a dynamic-based approach: part of the output of the kinematic-based approach is fed as input to the dynamic-based approach, and vice-versa. The dynamic-based approach exploits an Unscented Kalman Filter (UKF) with a double-track vehicle model and a modified Dugoff tire model, that is simple yet ensures accuracy similar to the well-known Magic Formula. The proposed method is successfully assessed on a large amount of experimental data obtained on different race tracks, and compared with a traditional approach presented in the literature. Results show that the sideslip angle is estimated with an average error of 0.5 deg, and that the implemented cross-combination allows to further improve the estimation of the vehicle longitudinal velocity compared to current state-of-the-art techniques, with interesting perspectives for future onboard implementation.

Introduction

In a modern social context requiring increasing possibilities to move fast and on long distances, vehicle safety is of vital importance to considerably reduce the number of fatal accidents. To respond to these urgent societal challenges, in 2011 the European Commission adopted an ambitious Road Safety Programme aiming to halve the chances of deaths in Europe in the following decade. The programme set out a mix of initiatives, both at European and national level, focusing on a considerable improvement of active safety (onboard vehicle controls), passive safety (structural and infrastructural enhancements) and preventive safety (analysing and detecting road users' behavior) [1].

In the specific context of active safety, the future of the mobility on wheels is going towards the development of advanced control algorithms for enhancing vehicle interaction both with the road and with the vehicle network. A full and accurate knowledge of the vehicle states is required for onboard control logics to guarantee a correct and effective performance. Current vehicle control systems of passenger cars rely on available measurements such as longitudinal velocity, lateral/longitudinal accelerations, yaw rate. That is the case of, e.g., the Electronic Stability Control (ESC), nowadays installed in all passenger cars.

The availability of additional vehicle states would allow the development of more advanced active vehicle controllers, further enhancing vehicle safety. That is the case of vehicle sideslip angle, a vehicle state defined as the angle between the vehicle longitudinal axis and the direction of the vehicle velocity at the center of mass [2]. The availability of this state would be dramatically helpful [3,4,5]. However, the possibility to measure sideslip angle directly on board is limited. Optical and GPS-based sensors, usually employed to this purpose, are expensive and quite uncomfortable for a large-scale adoption. Alternatively, the sideslip angle can be estimated via real-time software modeling techniques. Several observers have been developed to this aim, yet sideslip angle estimation is still an open issue in the automotive field [6, 7]. Three modeling categories can be identified in the literature: kinematic models, dynamic models and combined models. Most of the proposed methods to estimate sideslip angle need only signals that are easily measurable within the integrated set of sensors already available in a standard passenger car.

The first category is based on kinematic relationships involving yaw rate, lateral and longitudinal velocities and their derivatives. No vehicle or tire parameters are involved. However, kinematic-based estimators become unobservable when the yaw rate approaches zero, and usually provide noisier estimations. Nevertheless, kinematic models are more suitable for transient maneuvers and they work well in the nonlinear region of the tire [8]. Some examples of kinematic models are shown in [9], where a simple yet effective logic is adopted to correct the unobservability and prevent possible sideslip angle drifting in straight roads due to yaw rate and lateral acceleration sensor offsets (which are unavoidable). Selmanaj et al. [9] correct the approach presented in [8] with a heuristically calculated term. An heuristic function is evaluated through the use of bivariate Gaussian distributions and a set of three signals (steering angle, yaw rate and sideslip rate) with their derivatives. Because of their disadvantages, it is infrequent to come across estimators purely based on kinematic models. Instead, either a dynamic model is used, or a combination of kinematic and dynamic models.

The second category is very frequently adopted in the literature, as it is based on the equilibrium equations of the vehicle, often described by means of a single-track model [8, 10,11,12,13,14,15,16,17,18]. However, examples with a four-wheel configuration vehicle model can also be found [19,20,21,22,23,24]. Often an Extended Kalman filter [25] is used, but in [22,23,24] the Unscented version of the Kalman filter is applied when the model becomes strongly nonlinear. Dynamic approaches are very sensitive to the tire model adopted within the estimator. Some papers choose a linear tire model [10, 11, 13, 14], while others use Pacejka's Magic Formula [12, 15, 23] and a significant group adopt even different tire models such as the Dugoff tire model [19, 22, 24] and the Rational tire model [21, 26]. In [10,11,12,13,14,15,16,17,], an extended adaptive Kalman filter is used, integrated with an estimation/adaptation algorithm for the tire parameters. On the other hand, [21] proposes a dual extended Kalman filter, where two Kalman filters are used in a recursive way. The first one estimates vehicle parameters that are fed to the second Kalman filter which estimates the vehicle state. In [13] another interesting two-stage structure is investigated. The first stage is an Extended Kalman filter which provides information about the vehicle state, and the second one employs the Extended Kalman filter results to obtain an estimation of the tire parameters. In [23], a new approach for the vehicle state estimation based on a detailed vehicle model and an Unscented Kalman filter is presented. The mathematical model relies on a planar two-track model extended by an advanced vertical tire force calculation method. Doumiati et al. [22] and [24] also apply the Unscented version of the Kalman filter, but [22] also employs a set of deflection sensors installed on the suspension system, which is not a common sensor set for a passenger vehicle. [24] estimates the tire-road friction coefficient by introducing it in the state vector. The authors of [15] employ the Magic Formula in an innovative way, coupled with an Extended Kalman filter and with the addition of new tuning parameters which control the shape of lateral tire forces. Interestingly, [26] introduces cornering stiffnesses directly in the state vector, hence obtaining their real-time estimation. [27] applies the same idea to the parameters of the Rational tire model.

The third category features a mixed approach, employing a well-thought combination of kinematic and dynamic modeling. The study presented in [28] combines a kinematic approach with a dynamic formulation to overcome the problem of the unobservability when the yaw rate is around zero. In [29] the kinematic and dynamic models are cleverly combined to make the most of each formulation, and a steady-state index is defined to properly weight the outputs of the two models. Moreover, a simple cornering stiffness identification method is proposed. The authors of [30] apply their model to an electric vehicle featuring multi-sensing hub units, which are sensor units able to provide a very accurate measurement in terms of tire lateral forces. The authors also estimate sideslip and roll angles with a coupled approach including a Recursive Least Squares (RLS) method and a Kalman filter. In [31] a mixed approach is applied, with a mostly kinematic-based model: an algorithm to estimate tire-road friction is presented, that is activated only if the lateral velocity derivative is sufficiently high and the yaw rate is above a predefined threshold, or when the ESC is on.

This paper proposes a new method to estimate vehicle sideslip angle, with the following novelties:

  • the development of an innovative combination of kinematic and dynamic modeling, denoted as cross-combined approach, which introduces a mutual influence between the two approaches;

  • the development of an Unscented Kalman filter framework based on the cross-combined approach and a modified Dugoff tire model;

  • the validation of the proposed approach on a large set of experimental data acquired on a rear-wheel-drive motorsport car equipped with an optical sensor for the measurement of sideslip angle, along with an Inertial Measurement Unit (IMU), wheel speed sensors, and a steering wheel sensor;

  • a comparison between the proposed method and a traditional method for sideslip angle estimation.

The remainder of the paper is organized as follows. Section 2 provides a description of the Kalman filter and its main variants. Section 3 describes the proposed estimator with specific focus on the kinematic filter, the dynamic filter, and the concept of cross-combination. Section 4 presents results based on experimental tests in which the proposed approach is compared to a traditional one. Section 5 draws the main conclusions.

The Kalman filter (KF)

The Kalman filter is named after Rudolph E. Kalman, who first described a new solution to the discrete-data linear filtering problem in 1960 [25]. Theoretically, the Kalman filter is an estimator for the linear quadratic Gaussian problem, i.e. estimating the instantaneous state of a linear dynamic system perturbed by Gaussian white noise, by using measurements linearly related to the state, also corrupted by Gaussian white noise. The resulting estimator is statistically optimal with respect to any quadratic function of the estimation error [32]. The name “filter” derives from the fact that, practically, it allows to remove the known and unknown noise components in the measurements and in the description of the system. Several versions of the KF exist. Some of the most important versions are described here, including versions that allow to deal with nonlinear systems, as is the case of vehicle dynamics.

The basic Kalman filter (KF) for linear systems

The original Kalman filter formulation is designed to deal with linear systems, estimating the state \(\boldsymbol{x}\in {\mathbb{R}}^{N}\) of the observed system. The generic linear process can be described in discrete-time form by means of process and measurement equations, respectively:

$$\begin{aligned} {\varvec{x}}_{\varvec{k}} = {\varvec{Ax}}_{{{\varvec{k}} - 1}} + {\varvec{Bu}}_{\varvec{k}} + {\varvec{Ww}}_{{{\varvec{k}} - 1}} \\ {\varvec{z}}_{\varvec{k}} = {\varvec{Hx}}_{\varvec{k}} + {\varvec{Vv}}_{\varvec{k}} \\ \end{aligned}$$
(1)

where \({\varvec{x}}_{\varvec{k}}\) and \({\varvec{u}}_{\varvec{k}}\) are respectively the state vector and the input at the generic time step \(k\), \({\varvec{A}}\) the dynamic matrix, \({\varvec{B}}\) the control matrix, \({\varvec{H}}\) the measurement matrix, \({\varvec{W}}\) the process noise matrix, \({\varvec{V}}\) the measurement noise matrix. \({\varvec{x}}_{\varvec{k}}\) is a column vector with \(N\) elements. \({\varvec{w}}_{\varvec{k}}\) and \({\varvec{v}}_{\varvec{k}}\) represent the process and measurement noise with \({\varvec{Q}}\) and \({\varvec{R}}\) being the correspondent covariance matrices. The matrices \({\varvec{A}},{\varvec{B}},{\varvec{H}},{\varvec{W}},{\varvec{V}}\) allow to relate state, input, and noises to the subsequent (propagated) state and to the measurements. The equations of the recursive algorithm are divided into time update equations and measurement update equations. The time update equations describe the evolution of the system a-priori, i.e., only based on the model of the system:

$$\begin{aligned} {\hat{\varvec{x}}}_{\varvec{k}}^{ - } &= {\varvec{A}}{\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} + {\varvec{Bu}}_{\varvec{k}} \\ {\varvec{P}}_{\varvec{k}}^{ - } &= {\varvec{AP}}_{{{\varvec{k}} - 1}} {\varvec{A}}^{\varvec{T}} + {\varvec{WQW}}^{\varvec{T}} \\ \end{aligned}$$
(2)

where \({\hat{\varvec{x}}}_{\varvec{k}}^{ - }\) indicates the a-priori estimated state at time step \(k\), \({\varvec{P}}_{{\varvec{k} - 1}}\) the state covariance at time step (\(k - 1\)), \({\varvec{P}}_{\varvec{k}}^{ - }\) the a-priori state covariance at time step \(k\).

The measurement update equations allow to correct the a-priori estimation based on the gathered measurement, hence providing the a-posteriori estimation of the state:

$$\begin{aligned} {\varvec{K}}_{\varvec{k}} & = {\varvec{P}}_{\varvec{k}}^{ - } {\varvec{H}}^{\varvec{T}} \left( {{\varvec{HP}}_{\varvec{k}}^{ - } {\varvec{H}}^{\varvec{T}} + {\varvec{VRV}}^{\varvec{T}} } \right)^{{ - 1}} \\ {\hat{\varvec{x}}}_{\varvec{k}} &= {\hat{\varvec{x}}}_{\varvec{k}}^{ - } + {\varvec{K}}_{\varvec{k}} \left( {{\varvec{z}}_{\varvec{k}} - {\varvec{H}}{\hat{\varvec{x}}}_{\varvec{k}}^{ - } } \right) \\ {\varvec{P}}_{\varvec{k}} & = \left( {{\varvec{I}} - {\varvec{K}}_{\varvec{k}} {\varvec{H}}} \right){\varvec{P}}_{\varvec{k}}^{ - } \\ \end{aligned}$$
(3)

where \({\hat{\varvec{x}}}_{\varvec{k}}\) is the estimated state at time step \(k\), \({\varvec{P}}_{\varvec{k}}\) the covariance at time step \(k\), and \({\varvec{K}}_{\varvec{k}}\) is denoted as Kalman gain. Note that covariance matrices \({\varvec{P}}\), \({\varvec{W}}\) and \({\varvec{V}}\) are semi-positive definite.

Extended Kalman filter (EKF) and Unscented Kalman filter (UKF)

The main drawback of the basic Kalman filter is its suitability for the estimation of the state of a process governed only by a linear set of stochastic difference equations. Yet, it is well known that real processes are often far from linear. For nonlinear systems, the so-called Extended Kalman filter can be adopted [25, 33, 34]. Equation (1) can be generalized as:

$$\begin{aligned} &{\varvec{x}}_{\varvec{k}} = {\varvec{f}}\left( {{\varvec{x}}_{{{\varvec{k}} - 1}} ,{\varvec{u}}_{{{\varvec{k}} - 1}} ,{\varvec{w}}_{{{\varvec{k}} - 1}} } \right) \\ &{\varvec{z}}_{\varvec{k}} = {\varvec{h}}\left( {{\varvec{x}}_{\varvec{k}} ,{\varvec{v}}_{\varvec{k}} } \right) \\ \end{aligned}$$
(4)

which entails generic functions \({\varvec{f}}\) and \({\varvec{h}}\). The key idea of the EKF is to linearize the system, at each time step, around the estimated state of the system at the previous time step:

$$\begin{aligned} A_{{k\left[ {i,j} \right]}} &= \frac{{\partial f_{{\left[ i \right]}} }}{{\partial x_{{\left[ j \right]}} }}\left( {{\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} ,{\varvec{u}}_{{{\varvec{k}} - 1}} ,\mathbf{0}} \right) \\ W_{{k\left[ {i,j} \right]}} &= \frac{{\partial f_{{\left[ i \right]}} }}{{\partial w_{{\left[ j \right]}} }}\left( {{\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} ,{\varvec{u}}_{{{\varvec{k}} - 1}} ,\mathbf{0}} \right) \\ H_{{k\left[ {i,j} \right]}} &= \frac{{\partial h_{{\left[ i \right]}} }}{{\partial x_{{\left[ j \right]}} }}\left( {{\hat{\varvec{x}}}_{\varvec{k}}^{ - } ,\mathbf{0}} \right) \\ V_{{k\left[ {i,j} \right]}} &= \frac{{\partial h_{{\left[ i \right]}} }}{{\partial v_{{\left[ j \right]}} }}\left( {{\hat{\varvec{x}}}_{\varvec{k}}^{ - } ,\mathbf{0}} \right) \\ \end{aligned}$$
(5)

where \(A_{{k\left[ {i,j} \right]}}\), \(W_{{k\left[ {i,j} \right]}}\), \(H_{{k\left[ {i,j} \right]}}\), \(V_{{k\left[ {i,j} \right]}}\) represent the generic element of, respectively, \({\varvec{A}}_{\varvec{k}}\), \({\varvec{W}}_{\varvec{k}}\), \({\varvec{H}}_{\varvec{k}}\), \({\varvec{V}}_{\varvec{k}}\), on row i and column j, and \(f_{{\left[ i \right]}}\), \(h_{{\left[ i \right]}}\), \(x_{{\left[ i \right]}}\), \(v_{{\left[ i \right]}}\), \(w_{{\left[ i \right]}}\) represent the i-th element of, respectively, \({\varvec{f}}\), \({\varvec{h}}\), \({\varvec{x}}\), \({\varvec{v}}\), \({\varvec{w}}\). Essentially Eq. (5) contains the Jacobian matrices of the partial derivatives of the process and measurement functions with respect to the state and the noise. As a result, the following time update equations can be used for the a-priori evolution of the EKF (note that in these expressions the two covariance matrices are also assumed non-constant, for more generality):

$$\begin{aligned} {\hat{\varvec{x}}}_{\varvec{k}}^{ - } &= {\varvec{f}}\left( {{\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} ,{\varvec{u}}_{{{\varvec{k}} - 1}} ,\mathbf{0}} \right) \\ {\varvec{P}}_{\varvec{k}}^{ - } &= {\varvec{A}}_{\varvec{k}} {\varvec{P}}_{{{\varvec{k}} - 1}} {\varvec{A}}_{\varvec{k}}^{\varvec{T}} + {\varvec{W}}_{\varvec{k}} {{\varvec{Q}}_{{{\varvec{k}} - 1}}} {\varvec{W}}_{\varvec{k}}^{\varvec{T}} \\ \end{aligned}$$
(6)

and the a-posteriori equations are:

$$\begin{aligned} {\varvec{K}}_{\varvec{k}} &= {\varvec{P}}_{\varvec{k}}^{ - } {\varvec{H}}_{\varvec{k}}^{\varvec{T}} \left( {{\varvec{H}}_{\varvec{k}} {\varvec{P}}_{\varvec{k}}^{ - } {\varvec{H}}_{\varvec{k}}^{\varvec{T}} + {\varvec{V}}_{\varvec{k}} {\varvec{R}}_{\varvec{k}} {\varvec{V}}_{\varvec{k}}^{\varvec{T}} } \right)^{{ - 1}} \\ {\hat{\varvec{x}}}_{\varvec{k}} &= {\hat{\varvec{x}}}_{\varvec{k}}^{ - } + {\varvec{K}}_{\varvec{k}} \left( {\varvec{z}_{\varvec{k}} - {\varvec{h}}\left( {{\hat{\varvec{x}}}_{\varvec{k}}^{ - } ,\mathbf{0}} \right)} \right) \\ {\varvec{P}}_{\varvec{k}} &= \left( {{\varvec{I}} - {\varvec{K}}_{\varvec{k}} {\varvec{H}}_{\varvec{k}} } \right){\varvec{P}}_{\varvec{k}}^{ - } \\ \end{aligned}$$
(7)

Despite the EKF is an elegant, efficient and recursive way to estimate the state of a nonlinear system, it has important flaws:

  • The calculation of Jacobian matrices may be computationally expensive, especially in situations where the partial derivatives are to be calculated online at each time step.

  • The linearized transformation provides good results only when the error propagation can be relatively well approximated by a linear model. This problem is deeply discussed in [35, 36].

To overcome the drawbacks related to the linearization process, many studies have been carried out. Attempts include the development of high-order Kalman filters [37] and more sophisticated versions of the EKF [38]. A widely appreciated solution is the Unscented Kalman filter (UKF), which provides a relatively simple and immediate way to propagate mean and covariance variables of random signals through a nonlinear transformation, without the need for linearization. The UKF is founded on the intuition that it is easier to approximate a probability distribution than it is to approximate an arbitrary nonlinear function or transformation [39]. The state distribution is represented with a set of deterministically chosen sample points, denoted as “sigma-points”. The sigma-points are a set of \(2N + 1\) potential guesses of the state of the system, with a given mean and covariance reflecting the same characteristics of the state to be estimated. In case of additive process and measurement noise, the \(2N + 1\) sigma-points can be obtained as:

$$\begin{aligned} {\varvec{X}}_{{{\varvec{k}} - 1}}^{{\left( 0 \right)}} = {\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} \\ {\varvec{X}}_{{{\varvec{k}} - 1}}^{{\left( {\varvec{i}} \right)}} = {\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} + \left( {\sqrt {\left( {N + \psi } \right){\varvec{P}}_{{{\varvec{k}} - 1}} } } \right)_{i} \quad \;for\; i = 1, 2, \ldots , N \\ {\varvec{X}}_{{{\varvec{k}} - 1}}^{{\left( {\varvec{i}} \right)}} = {\hat{\varvec{x}}}_{{{\varvec{k}} - 1}} - \left( {\sqrt {\left( {N + \psi } \right){\varvec{P}}_{{{\varvec{k}} - 1}} } } \right)_{{i - N}} \quad \;for\;i = N + 1, N + 2, \ldots , 2N \\ \end{aligned}$$
(8)

where in general \({\varvec{X}}_{\varvec{k}}^{{\left( {\varvec{i}} \right)}}\) represents the i-th sigma-point (\(i = 0, 1, 2, \ldots , 2N\)) at time step \(k\), which is a column vector with \(N\) elements—just as the state vector, for which a sigma-point is a potential guess. The notation \(\left( {\sqrt {\left( {N + \psi } \right) {\varvec{P}_{{k - 1}}^{{}} }} } \right)_{i}\) stands for the i-th column of the argument, which is calculated through the Cholesky decomposition. The UKF parameter \(\psi\) is defined as \(\psi = \sigma ^{2} \left( {N + \kappa } \right) - N\) where \(\sigma\) and \(\kappa\) are further UKF parameters, discussed below. At each time step, every sigma-point is propagated through the nonlinear dynamic function \({\varvec{f}}\):

$$\hat{\varvec{X}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } = {\varvec {f}}\left( {\varvec{X}}_{{\varvec{k}} - {\mathbf{1}}}^{\left( {\varvec{i}} \right)}, {\varvec{u}}_{{\varvec{k}} - {\mathbf{1}}} ,{\mathbf{0}} \right)\quad for\;i = 0, 1, 2, \ldots , 2N$$
(9)

where \({\hat{\varvec{X}}}_{\varvec{k}}^{{\left( {\varvec{i}} \right) - }}\) is the i-th a-priori propagated sigma-point, so it is also a column vector with \(N\) elements. Thus, the a-priori estimated mean and covariance can be computed as [40,41,42]:

$$ \begin{aligned} \hat{\varvec{x}}_{\varvec{k}}^{ - } &= \mathop{\sum}\limits_{{i = 0}}^{{2N}} W_{m}^{{\left( i \right)}} \hat{\varvec{X}}_{\varvec{k}}^{{\left({\varvec{ i}} \right) - }} \\ {\varvec{ P}}_{\varvec{k}}^{ - } &= \mathop{\sum}\limits_{{i = 0}}^{{2N}} W_{c}^{{\left( i \right)}} \left\{ {\hat{\varvec{X}}_{\varvec{k}}^{{\left( {\varvec{i}} \right)- }} - {\hat{\varvec{{x}}}}_{\varvec{k}}^{ - } } \right\}\left\{ {{\hat{\varvec{{X}}}}_{\varvec{{k}}}^{{\left({\varvec{ i}} \right) - }} - {\hat {\varvec{{x}}}}_{\varvec{{k}}}^{ - } } \right\}^{T} +\; {\varvec{Q}} \\ \end{aligned} $$
(10)

based on the appropriate weights

$$\begin{aligned} W_{m}^{{\left( 0 \right)}} = \frac{\psi }{{\psi + N}} \\ W_{c}^{{\left( 0 \right)}} = \frac{\psi }{{\psi + N}} + \left( {1 - \sigma ^{2} + \gamma } \right) \\ W_{m}^{{\left( i \right)}} = W_{c}^{{\left( i \right)}} = \frac{1}{{2\left( {\psi + N} \right)}} \quad for\;i = 1, 2, \ldots , 2N \\ \end{aligned}$$
(11)

For the calibration phase of the filter:

  • \(\kappa\) represents the tailedness of the probability distribution, a default starting point can be \(\kappa = 0\) [43];

  • \(0 < \sigma < 1\);

  • \(\gamma > 0\) (for a Gaussian distribution the optimal value is \(\gamma = 2 \) [41]).

The measurement update equation set is:

$$\begin{aligned} &\hat{\varvec{Z}}_{\varvec{k}}^{{\varvec {\left( i \right)} - }}= {\varvec{h}}\left( \hat{\varvec{X}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } ,{\mathbf{0}} \right)\quad for\;i = 0, 1, 2, \ldots ,2N \\ &\hat{\varvec{z}}_{\varvec{k}}^{ - } = \mathop \sum \limits_{{i = 0}}^{{2N}} W_{m}^{{\left( i \right)}} \hat{\varvec{Z}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } \\ &{{\varvec{P}}_{{\varvec{z}_{\varvec{k}} }}} = \mathop \sum \limits_{{i = 0}}^{{2N}} W_{c}^{{\left( i \right)}} \left\{ \hat{\varvec{Z}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } - \hat{\varvec{z}}_{\varvec{k}}^{ - } \right\}\left\{ \hat{\varvec{Z}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } - \hat{\varvec{z}}_{\varvec{k}}^{ - } \right\}^{T} +\; {\varvec {R}} \\ &{\varvec{P}}_{{\varvec{x}}_{\varvec{k}} {\varvec{z}}_{\varvec{k}}} = \mathop \sum \limits_{{i = 0}}^{{2N}} W_{c}^{{\left( i \right)}} \left\{ \hat{\varvec{X}}_{\varvec{k}}^{\left({\varvec{i}} \right) - } - \hat{\varvec{x}}_{\varvec{k}}^{ - } \right\}\left\{ \hat{\varvec{Z}}_{\varvec{k}}^{ - } - \hat{\varvec{z}}_{\varvec{k}}^{ - } \right\}^{T} \\ &{{\varvec {K}}}_{k} = {{\varvec {P}}_{{\varvec{x}_{\varvec{k}} \varvec{z}_{\varvec{k}} }}} {{\varvec {P}}_{{\varvec{z}_{\varvec{k}} }}^{{ - 1}}} \\& \hat{\varvec{x}}_{\varvec{k}} = \hat{\varvec{x}}_{\varvec{k}}^{ - } + {{\varvec{K}}_{\varvec{k}}} \left( { {{\varvec {z}}_{\varvec{k}}} - \hat{\varvec{z}}_{\varvec{k}}^{ - } } \right) \\ &{\varvec {P}}_{\varvec{k}} = {\varvec{P}}_{\varvec{k}}^{ - } - {\varvec{K}}_{\varvec{k}} {\varvec {P}}_{{\varvec{z}_{\varvec{k}} }} {\varvec {K}}_{\varvec{k}}^{\varvec{T}} \\ & \end{aligned}$$
(12)

where \({\hat{\varvec{Z}}}_{\varvec{k}}^{{\left( {\varvec{i}} \right) - }}\) is the i-th a-priori measurement vector corresponding to the i-th a-priori propagated sigma-point \({\hat{\varvec{X}}}_{\varvec{k}}^{{\left( {\varvec{i}} \right) - }}\), and \({\varvec{P}}_{{\varvec{z}_{\varvec{k}} }}\) and \({\varvec{P}}_{{{\varvec{x}}_{\varvec{k}} {\varvec{z}}_{\varvec{k}} }}\) are the measurement covariance matrix and the cross-covariance matrix, respectively. The above version of the UKF is exploited in this paper. However, for completeness, it is worth noting that in the general case of non-additive process and measurement noise, the UKF entails an augmented state vector \({\varvec{x}}_{\varvec{k}}^{\varvec{a}}\) and covariance matrix \({\varvec{P}}_{\varvec{k}}^{\varvec{a}}\), defined as:

$$\begin{aligned} &{\varvec{x}_{\varvec{k}}^{\varvec{a}}} = \left[ {\begin{array}{*{20}c} {\varvec{x}_{\varvec{k}} } \\ {\varvec{w}_{\varvec{k}} } \\ {\varvec{v}_{\varvec{k}} } \\ \end{array} } \right] \\ &{\varvec{P}_{\varvec{k}}^{\varvec{a}}} = \left[ {\begin{array}{*{20}c} {\varvec{P}_{\varvec{k}} } & {\mathbf {0} }& {\mathbf {0}} \\ {\mathbf {0}} & {\varvec {Q}} & {\mathbf {0}} \\ {\mathbf {0}} & {\mathbf {0}} & {\mathbf {R}} \\ \end{array} } \right] \\ \end{aligned}$$
(13)

The corresponding state update and measurement update equations are reported in [44].

Design of the estimator

The proposed estimator is based on an innovative combination of a standard kinematic filter and a novel dynamic filter. The following subsections describe in detail: (1) the kinematic filter; (2) the dynamic filter; (3) the cross-combined method to merge kinematic and dynamic filters.

Kinematic filter

The kinematic filter only exploits kinematic quantities related to vehicle motion, so that no tire model is needed to estimate the lateral velocity, hence the sideslip angle. By simply manipulating the expressions of longitudinal and lateral acceleration as functions of longitudinal velocity, lateral velocity, and yaw rate, and by choosing the state as \({\varvec{x}} = \left[ {v_{x} \quad v_{y} } \right]^{T}\), the ideal (noise-free) process is described by [7]:

$$\left[ {\begin{array}{*{20}c} {\dot{v}_{\mathbf{x}} } \\ {\dot{v}_{y} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 0 & r \\ { - r} & 0 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{\mathbf{x}} } \\ {v_{y} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {a_{\mathbf{x}} } \\ {a_{y} } \\ \end{array} } \right]$$
(14)

Regarding the description of the noise, the insightful yet simple approach described in [28] was chosen since it allows to include directly (in \({\varvec{Q}}\)) the measurement noise covariances of yaw rate, lateral and longitudinal acceleration. As a result, the process is described by:

$$\left[ {\begin{array}{*{20}c} {\dot{v}_{x} } \\ {\dot{v}_{y} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 0 & r \\ { - r} & 0 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{x} } \\ {v_{y} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {a_{x} } \\ {a_{y} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} - v_{y} &- 1 &0 \\ v_{x} &0& - 1 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {w_{r} } \\ {w_{{a_{x} }} } \\ {w_{{a_{y} }} } \\ \end{array} } \right]$$
(15)

which uses the measurement of yaw rate directly in the dynamic matrix, and the measurements of longitudinal and lateral accelerations as inputs. The actual measurement equation of the filter is straightforward:

$${\varvec {z}} = {\varvec{Hx} }= \left[ {\begin{array}{*{20}c} 1 & 0 \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {v_{x} } \\ {v_{y} } \\ \end{array} } \right]$$
(16)

Because both the process and the measurement equations are linear, the state can be estimated with the basic KF (23) using the matrices:

$$\begin{aligned} &{\varvec {A}} = \left[ {\begin{array}{*{20}c} 0 & r \\ { - r} & 0 \\ \end{array} } \right] \\ &{\varvec {B}} = \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & 1 \\ \end{array} } \right] \\& {\varvec {H}} = \left[ {\begin{array}{*{20}c} 1 & 0 \\ \end{array} } \right] \\& {\varvec {W}} = \left[ {\begin{array}{*{20}c} -v_{y} &-1 & 0 \\ v_{z} & 0 & -1 \\ \end{array} } \right] \\ \end{aligned}$$
(17)

The forward Euler method is applied to perform the calculation in discrete time. As already assessed in [8], kinematic approaches are unobservable when the yaw rate is close to zero. A simple reset logic is applied to correct lateral velocity estimation, by forcing \(v_{y}\) to zero when the magnitude of \(r\) is sufficiently small.

Finally, at each time step, the sideslip angle is calculated, by definition, as \(\beta = \arctan \left( {v_{y} /v_{x} } \right)\).

Dynamic filter

A dynamic filter is based on the equilibrium equations of the vehicle, which need a constitutive law (tire model) to explicitly express the tire forces as functions of relevant parameters. The subsequent paragraphs describe respectively: i) vehicle model and tire model; ii) the UKF implementation of the filter.

Vehicle model and tire model

A double-track vehicle model is adopted, as shown in Fig. 1. The lateral equilibrium equation and the yaw balance equation for this model are:

$$\begin{aligned} ma_{y} = m\left( {\dot{v}_{y} + v_{x} r} \right) = F_{{y11}} \cos \left( \delta \right) + F_{{y12}} \cos \left( \delta \right) + F_{{y21}} + F_{{y22}} \\ J_{z} \dot{r} = F_{{y11}} \cos \left( \delta \right)a + F_{{y11}} \sin \left( \delta \right)\frac{{t_{{w1}} }}{2} + F_{{y12}} \cos \left( \delta \right)a - F_{{y12}} \sin \left( \delta \right)\frac{{t_{{w1}} }}{2} - F_{{y21}} b - F_{{y22}} b \\ \end{aligned}$$
(18)
Fig. 1
figure 1

Double track vehicle model (adapted from [2])

Note that the steering angles of the front left and front right wheels are assumed to be the same (\(\delta\)) and that because longitudinal interactions typically have small effects, these are neglected in the lateral dynamics equations. On the other hand, the proposed double-track schematization allows to consider effects such as individual wheel slip angles and lateral load transfers. These effects help grasping a fairly accurate vehicle behavior, benefiting the estimator accuracy, unlike the single-track vehicle model adopted in many other estimators.

The lateral forces are expressed by a nonlinear tire model, considering key aspects of tire behavior such as nonlinearity, saturation, and dependency on the vertical load. In particular, the version of the Dugoff tire model presented in [45] is chosen, as it presents a very similar behavior to the well-known—yet more complex—Magic Formula. For a single wheel, the tire lateral force can be expressed as:

$$F_{y} = C_{\alpha } (\tan {\alpha}) p\left( \lambda \right)G_{\alpha }$$
(19)

where \(p\left( \lambda \right)\) is a nonlinear function defined as:

$$\begin{aligned} p\left( \lambda \right) = \left\{ {\begin{array}{*{20}l} \left( {2 - \lambda } \right)\lambda & \lambda < 1 \\ 1 & \lambda \ge 1 \\ \end{array} } \right. \\ {\text{with}}\;\lambda = \frac{{\mu _{{max}} F_{z} }}{{2\left| {C_{\alpha } \tan \alpha } \right|}} \\ \end{aligned}$$
(20)

and \({G}_{\alpha }\) is a correction term, function of the wheel slip angle and the tire-road friction coefficient:

$$G_{\alpha } = \left( {\mu _{{max}} - 1.6} \right)\tan \alpha + 1.155$$
(21)

However, with this formulation of \(G_{\alpha }\) [45], same values of \(\alpha\) but with opposite signs would not result in the same magnitude of lateral force (note that this formulation does not account for camber). To correct that, in this paper Eq. (21) is modified as follows:

$$G_{\alpha } = \left( {\mu _{{max}} - 1.6} \right)|\tan \alpha | + 1.155$$
(22)

which ensures a symmetrical behavior for positive and negative values of \(\alpha .\)

The selected tire model also requires the vertical load on each tire:

$$\begin{aligned} F_{{z_{{11}} }} = \frac{{mgb}}{{2l}} - \frac{{ma_{x} h}}{{2l}} - mB_{1} a_{y} + \frac{1}{4}\rho v_{x}^{2} C_{{z_{1} }} S_{a} \\ F_{{z_{{12}} }} = \frac{{mgb}}{{2l}} - \frac{{ma_{x} h}}{{2l}} + mB_{1} a_{y} + \frac{1}{4}\rho v_{x}^{2} C_{{z_{1} }} S_{a} \\ F_{{z_{{21}} }} = \frac{{mga}}{{2l}} + \frac{{ma_{x} h}}{{2l}} - mB_{2} a_{y} + \frac{1}{4}\rho v_{x}^{2} C_{{z_{2} }} S_{a} \\ F_{{z_{{22}} }} = \frac{{mga}}{{2l}} + \frac{{ma_{x} h}}{{2l}} + mB_{2} a_{y} + \frac{1}{4}\rho v_{x}^{2} C_{{z_{2} }} S_{a} \\ \end{aligned}$$
(23)

Each expression in Eq. (23) includes, in order: static load contribution; longitudinal load transfer contribution; lateral load transfer contribution; downforce contribution. For the lateral load transfer, according to [46], it is:

$$\begin{aligned} B_{1} = \frac{1}{{t_{{w1}} }}\left( {\frac{b}{l}d_{1} + \frac{{K_{{r1}} }}{{K_{{r1}} + K_{{r2}} }}\left( {h - \left( {d_{1} + \frac{{\left( {d_{2} - d_{1} } \right)a}}{l}} \right)} \right)} \right) \\ B_{2} = \frac{1}{{t_{{w2}} }}\left( {\frac{a}{l}d_{2} + \frac{{K_{{r2}} }}{{K_{{r1}} + K_{{r2}} }}\left( {h - \left( {d_{1} + \frac{{\left( {d_{2} - d_{1} } \right)a}}{l}} \right)} \right)} \right) \\ \end{aligned}$$
(24)

where \(K_{{r1}}\) and \(K_{{r2}}\) are the roll stiffness values of, respectively, the front and rear axle, and \(d_{1}\) and \(d_{2}\) are the heights of the roll centers of, respectively, the front and rear axle.

Finally, the congruence equations [2] provide the relationship between kinematic quantities and slip angles:

$$\begin{aligned} &\alpha _{{11}} = \delta - \arctan \left( {\frac{{v_{y} + ra}}{{v_{x} - rt_{{{\text{w}}1}} /2}}} \right) \\ &\alpha _{{12}} = \delta - \arctan \left( {\frac{{v_{y} + ra}}{{v_{x} + rt_{{{\text{w}}1}} /2}}} \right) \\ &\alpha _{{21}} = - \arctan \left( {\frac{{v_{y} - rb}}{{v_{x} - rt_{{{\text{w}}2}} /2}}} \right) \\ &\alpha _{{22}} = - \arctan \left( {\frac{{v_{y} - rb}}{{v_{x} + rt_{{{\text{w}}2}} /2}}} \right) \\ \end{aligned}$$
(25)

From the above equations, it is clear that the vehicle longitudinal velocity is required. That is estimated based on measurements including wheel speed sensors and accelerometers, as discussed in Sect. 4.

UKF filter implementation

Based on the vehicle model in Eq. (18), the state vector is chosen as \({\varvec{x}} = \left[ {v_{y} \quad r} \right]^{T}\), so \(N = 2\). The input vector is \({\varvec{u}} = \left[ \delta \right]\) and the measurement vector is \({\varvec{z}} = \left[ {r \quad a_{y} } \right]^{T}\) (both variables can be easily measured with standard sensors). By discretizing Eq. (18) with the forward Euler method, the system dynamics is expressed as:

$$\begin{aligned} v_{{y_{k + 1}}} =\, & v_{{y_k}} + \left[ {\frac{{\left( {F_{{y11_k}} + F_{{y12_k}} } \right)\cos \left( {\delta _{k} } \right) + F_{{y21_k}} + F_{{y22_k}} }}{m} - v_{{x_k}} r_{k} } \right]\Delta t \\ r_{{k + 1}} =\, & r_{k} + \left[ {\left( {F_{{y11_k}} + F_{{y12_k}} } \right)\cos \left( {\delta _{k} } \right)a + \left( {F_{{y11_k}} - F_{{y12_k}} } \right)\sin \left( {\delta _{k} } \right)\frac{{t_{{w1}} }}{2} - \left( {F_{{y21_k}} + F_{{y22_k}} } \right)b} \right]\frac{{\Delta t}}{{J_{z} }} \\ \end{aligned}$$
(26)

together with Eqs. (1925). Regarding the relationships between \({\varvec {z}}\) and \({\varvec {x}}\), \(r\) is straightforward because it appears directly both in \({\varvec {z}}\) and \({\varvec {x}}\), while \(a_{y}\) can be related to the vehicle state at each time step through:

$$a_{{y_{k} }} = \frac{1}{m}\left[ {F_{{y_{{21_{k} }} }} + F_{{y_{{22_{k} }} }} + \left( {F_{{y_{{11_{k} }} }} + F_{{y_{{12_{k} }} }} } \right)\cos \left( {\delta _{k} } \right)} \right]$$
(27)

together with Eqs. (1925). The matrices \({\varvec{Q}}\) and \({\varvec{R}}\) are:

$${\varvec {Q}} = \left[ {\begin{array}{*{20}c} {v_{y,s}^{2} } & 0 \\ 0 & {r_{s}^{2} } \end{array} } \right]$$
(28)
$${\varvec {R}} = \left[ {\begin{array}{*{20}c} {r_{m,s}^{2} } & 0 \\ 0 & {a_{y,m,s}^{2} } \end{array} } \right]$$
(29)

where \(v_{{y,s}}\) is the standard deviation of the process noise on \(v_{y}\), \(r_{s}\) is the standard deviation of the process noise on \(r\), \(r_{{m,s}}\) is the standard deviation of the measurement noise on \(r\), and \(a_{{y,m,s}}\) is the standard deviation of the measurement noise on \(a_{y}\).

Based on Eq. (8), the \(2N + 1 = 5\) sigma-points are:

$$\begin{aligned} {\varvec{ X}}_{{\mathbf{k - 1}}}^{{\mathbf{\left( 0 \right)}}} &= \hat{\varvec{x}}_{{\mathbf{k - 1}}} \\ {\varvec{X}}_{{\mathbf{k - 1}}}^{{\mathbf{\left( 1 \right)}}}& = \hat{\varvec{x}}_{{\mathbf{k - 1}}} + \left( {\sqrt {\left( {N + \psi } \right) {\varvec{P}_{{\mathbf{k - 1}}}} } } \right)_{1} \\ {\varvec{X}}_{{\mathbf{k - 1}}}^{{\mathbf{\left( 2 \right)}}} &= \hat{\varvec{x}}_{{\mathbf{k - 1}}} + \left( {\sqrt {\left( {N + \psi } \right) {\varvec{P}}_{{\mathbf{k - 1}}} }} \right)_{2} \\ {\varvec{ X}}_{{\mathbf{k - 1}}}^{{\mathbf{\left( 3 \right)}}} &= \hat{\varvec{x}}_{{\mathbf{k - 1}}} - \left( {\sqrt {\left( {N + \psi } \right) {\varvec{P}}_{{\mathbf{k - 1}}} } } \right)_{3} \\ {\varvec {X}}_{{\mathbf{k - 1}}}^{{\mathbf{\left( 4 \right)}}} &= \hat{\varvec{x}}_{{\mathbf{k - 1}}} - \left( {\sqrt {\left( {N + \psi } \right) {\varvec{P}}_{{\mathbf{k - 1}}} } } \right)_{4} \\ \end{aligned}$$
(30)

where the square root of a matrix can be calculated with the Cholesky factorization. The estimated state vector at each time step can then be obtained using Eqs. (912), noting that for each sigma-point Eq. (9) is Eq. (26), while Eq. (27) is used in the first of Eq. (12). Finally, at each time step, again \(\beta = \arctan \left( {v_{y} /v_{x} } \right)\).

Cross-combination

The described kinematic filter and dynamic filter run at the same time. The final estimate of the sideslip angle is calculated as a weighted average of the sideslip angle obtained through the two filters according to the following procedure (Fig. 2): (1) the measured value of ay is stored in a 0.1 s buffer; (2) a steady-state index is calculated, mainly depending on the Root Mean Square (RMS) of the stored samples of \(a_{y}\); (3) the steady-state index is used to compute a weight for the kinematic contribution, \(w_{{kin}}\), and a weight for the dynamic contribution, \(w_{{dyn}}\), with \(w_{{kin}} + w_{{dyn}} = 1\). The rationale is that, as suggested in [29], kinematic and dynamic models are better suited for, respectively, transient and steady-state conditions.

Fig. 2
figure 2

(top) Schematic of the methodology used to calculate the weights of the kinematic and the dynamic filter; (bottom) Detail of the membership functions

For \(\left| {a_{y} } \right| \ge 1\), the root mean square (RMS) value of the lateral acceleration is computed over the 0.1 s buffer (e.g., 10 samples for a frequency of 100 Hz). A membership function is used to calculate the value of the steady-state index: if the computed RMS value is lower than 0.4 m/s2, meaning that \(a_{y}\) does not vary significantly, the steady-state index is set equal to 1; between 0.4 m/s2 and 0.6 m/s2 the membership function produces a linearly variable output from 1 to 0; for values larger than 0.6 m/s2 the maneuver is assumed to be in transient conditions, thus the steady-state index is set to 0. Instead, if \(a_{y}\) is within ± 1 m/s2, the steady-state index is set to 1, to prevent possible fluctuations of the sideslip angle estimation in nearly straight-line conditions due to the kinematic filter. \(w_{{dyn}}\) is 1 when the steady-state index is 1, while it varies linearly from 1 to 0.7 corresponding to values of the steady-state index from 1 to 0.

This paper also proposes, for the first time, to cross-combine the variables in common between the output of one filter and the input of the other. Precisely the variables in common are \(r\) and \(v_{x}\), in that:

  • the kinematic filter needs \(r\) as input and produces \(v_{x}\) as output;

  • the dynamic filter needs \(v_{x}\) as input and produces \(r\) as output.

Normally, for the kinematic filter, \(r\) is taken directly from a sensor, and for the dynamic filter, \(v_{x}\) is calculated as a function of the measured wheel speeds. While both values are affected by sensor noise, the values for the same quantities obtained as output of each filter are expected to be more accurate. The kinematic filter should produce a better estimation of \(v_{x}\) than the value calculated through wheel speed sensors, and the dynamic filter should produce a better estimation of \(r\) than the measured value obtained through the sensor – note that unmodeled effects, such as pitch and roll motion, do affect the accuracy of the yaw rate measurement. So, these values of \(v_{x}\) and \(r\) can be used as inputs of the kinematic and dynamic filter, respectively. This new idea, denoted as cross-combination and shown in Fig. 3, has the potential to improve the accuracy of the estimation of \(v_{y}\) and thus of the sideslip angle.

Fig. 3
figure 3

Schematic of the proposed filtering approach with cross-combination

Results

The proposed cross-combined filter was tested on a large set of data obtained through a performance-oriented rear-wheel-drive car, mounting front tires 30/68 (tread band width in cm/external tire diameter in cm) on an R18 (radius in inches) rim, and rear tires 31/71 mounted on an R18 rim. The vehicle (Fig. 4) was equipped with:

  • an Inertial Measurement Unit (IMU) OXTS 3000 [48], providing longitudinal acceleration, lateral acceleration, yaw rate, with the following main specifications: accelerometer, bias stability 2 µg, Servo technology, range 10 g; gyroscope, bias stability 2°/h, MEMS technology, range 100°/s;

  • four wheel speed sensors Bosch HA-M [49] with the following main specifications: max frequency 4.2 kHz, accuracy repeatability of the falling edge of tooth < 4%;

  • a steering angle sensor Bosch LWS [50] with the following main specifications: range \(\pm\) 780°, absolute physical resolution 0.1°;

  • a Correvit S-Motion Type 2055A sensor [51], providing vehicle longitudinal velocity and sideslip angle, with the following main specifications: range 400 km/h, linear velocity measurement accuracy <|0.2%| (%FSO—Full Span Output), angle resolution < 0.01°.

The main vehicle parameters are reported in Table 1.

Fig. 4
figure 4

Test vehicle

Table 1 Vehicle parameters

Starting from the wheel speed sensor data, two options were considered to calculate the longitudinal vehicle velocity. A simple and straightforward option was to calculate the average speed of the front wheels, because for a rear-wheel-drive car the front wheels undergo lower slip values than the rear wheels. A more sophisticated solution was actually implemented. Denoting with \(v_{{M,ij}}\) the measured speed at wheel ij, estimates of the vehicle longitudinal velocity, \(\hat{v}_{{x,ij}}\), can be obtained from each wheel based on rigid body kinematics [47] as follows:

$$\begin{aligned} \hat{v}_{{x,11}} &= v_{{M,11}} \cos \delta + \frac{{rt_{{w1}} }}{2} \\ \hat{v}_{{x,12}} &= v_{{M,12}} \cos \delta - \frac{{rt_{{w1}} }}{2} \\ \hat{v}_{{x,21}} &= v_{{M,21}} + \frac{{rt_{{w2}} }}{2} \\ \hat{v}_{{x,22}} &= v_{{M,22}} - \frac{{rt_{{w2}} }}{2} \\ \end{aligned}$$
(31)

Compared to the calculation of the average of \(\hat{v}_{{x,ij}}\), this allows to depurate: (1) the yaw rate effect due to the wheels being located with a lateral offset with respect to the vehicle longitudinal axis; (2) the steering angle effect, as the measured wheel speed is aligned with the wheel and not necessarily the vehicle longitudinal axis. Then, the following logic is implemented to identify, among the four wheels, the one with the lowest slip, based on the measurement of \(a_{x}\):

  • if \(a_{x} > 0.5\) m/s2, i.e. the vehicle accelerates, wheel speeds are larger than the longitudinal vehicle speed so the lowest value is the closest to the actual vehicle speed: the vehicle longitudinal speed is estimated as \(min\left( {\hat{v}_{{x,11}} ,\hat{v}_{{x,12}} ,\hat{v}_{{x,21}} ,\hat{v}_{{x,22}} } \right)\)

  • if \(a_{x} < - 0.5\) m/s2, i.e. the vehicle decelerates, wheel speeds are smaller than the longitudinal vehicle speed so the largest value is the closest to the actual vehicle speed: the vehicle longitudinal speed is estimated as \(max\left( {\hat{v}_{{x,11}} ,\hat{v}_{{x,12}} ,\hat{v}_{{x,21}} ,\hat{v}_{{x,22}} } \right)\)

  • for low values of acceleration, i.e. if \(\left| {a_{x} } \right| \le 0.5\) m/s2, the vehicle longitudinal speed is estimated through a weighted average of \(\hat{v}_{{x,ij}}\)., with weights calculated according to [9].

Thanks to the availability of the sideslip angle measurement, the root mean square error (RMSE) method was selected as the performance index for assessing the quality of the estimation:

$$\beta _{e} = \sqrt {\frac{1}{n}\mathop \sum \limits_{{k = 1}}^{n} \left( {\hat{\beta }_{k} - \beta _{k} } \right)^{2} }$$
(32)

where \(n\) is the number of time samples. The proposed filtering technique was also compared to a traditional technique using a linear dynamic model, for which equations are reported in the Appendix. In the following figures, the two techniques are referred to as, respectively, KF (Kalman filter, linear dynamic) and UKF-CC (Cross-combined kinematic and UKF dynamic).

Figures 5 and 6 depict the measured and estimated sideslip angle along four race tracks. Each figure corresponds to a single lap, which is representative of the corresponding track since each filter behaved consistently along all laps. These experimental tests include a variety of testing conditions: multiple runs were carried out, with the same vehicle, tires, and equipment, in European and Asian race tracks, in different seasons of the year, on dry tarmac. For all of the tracks, the KF is able to follow the general trend but with significant discrepancies all round, up to around 5 deg. Instead, the UKF + CC provides a much more reliable and smooth tracking. In terms of RMSE, the KF is normally above 1 deg, while the UKF + CC settles on an average value of 0.53 deg, with an improvement of around 50% with respect to the KF (Table 2).

Fig. 5
figure 5

Measured and estimated sideslip angle for one lap of: (left) Track 1; (right) Track 2

Fig. 6
figure 6

Measured and estimated sideslip angle for one lap of: (left) Track 3; (right) Track 4

Table 2 Performance comparison of a traditional filter (linear dynamic) and the proposed filter

Figure 7 compares different methods to estimate \({v}_{x}\), against the measured value. While all of the methods perform fairly well—because wheel speeds are rather informative measurements anyway—important remarks can be made. For the method using the average speed of the front wheels, the rationale was to pick the wheels with lower slips for a rear-wheel-drive car. However, that is no longer ideal in braking scenarios, when the front wheels undergo significant slips, even more than for the rear wheels. This is evident in Fig. 7 just before 296 s. On the other hand, the method using all of the wheel speeds and \({a}_{x}\) provides a more reliable result, though sometimes affected by discontinuities due to the rule-based nature of the method. The \({v}_{x}\) output of the kinematic filter, instead, is the smoothest signal and is the closest to the measured profile. This further supports the idea of the cross-combination, because a better \({v}_{x}\) is given as input to the dynamic filter, contributing to the quality of the estimation of the sideslip angle.

Fig. 7
figure 7

Comparison of longitudinal vehicle speed estimation methods, Track 4: measured speed through optical sensor (blue), average of the front wheel speeds (red), technique inspired to [9] explained at the beginning of Sect. 4 (yellow), kinematic filter used in the proposed method (purple). Left: entire lap; Right: detail

Conclusion

This paper presented a novel approach for the estimation of vehicle sideslip angle. The analyses presented in this paper lead to the following main conclusions:

  • the kinematic and dynamic models for the estimation of sideslip angle can be cross-combined, by feeding part of the output of each filter as input to the other filter;

  • the cross-combination allows to further improve the estimation of the vehicle longitudinal velocity compared to current state-of-the-art techniques, in turn benefiting the precision of the sideslip angle estimation;

  • the modified Dugoff tire model is a simple yet effective constitutive model and produces the same lateral force—slip angle behavior regardless of the sign of the slip angle;

  • the proposed cross-combined kinematic and UKF dynamic filter allows to estimate the vehicle sideslip angle with an average RMSE of around 0.5 deg on experimental data.

Future developments will deal with: (1) tire longitudinal dynamics and combined interactions; (2) effects of roll and bank angles; (3) effects of tire temperature; (4) the potential investigation of methodologies for coping with variable road friction conditions; (5) further experimental tests with possible real-time implementation of the filter.

Change history

Abbreviations

A :

Dynamic matrix

a :

Vehicle front semi-wheelbase

a x :

Longitudinal acceleration of the center of mass

a y :

Lateral acceleration of the center of mass

a y,m,s :

Standard deviation of the measurement noise on ay

B :

Control matrix

B:

Lateral load transfer coefficient

b :

Vehicle rear semi-wheelbase

C :

Axle cornering stiffness

C α :

Tire model parameter

C z :

Downforce aero coefficient

d :

Axle height of the roll center

F x :

Longitudinal force

F y :

Lateral force

f :

Dynamic function

G α :

Tire model parameter

H :

Measurement matrix

h :

Measurement function

I :

Identity matrix

J z :

Vehicle moment of inertia (vertical axis)

K :

Kalman gain

K r :

Axle roll stiffness

l :

Vehicle wheelbase

m :

Vehicle mass

N :

Number of states in x

n :

Number of time samples

P :

Covariance matrix of the estimated state

P zk :

Measurement covariance matrix

P xkzk :

Cross-covariance matrix

p :

Tire model function

Q :

Process noise covariance matrix

R :

Measurement noise covariance matrix

r :

Yaw rate

r m,s :

Standard deviation of the measurement noise on r

r s :

Standard deviation of the process noise on r

S a :

Vehicle frontal area

t :

Time

t w :

Axle track width

u :

Control input

V :

Measurement noise matrix

v :

Measurement noise

v M :

Measured wheel speed

v x :

Longitudinal velocity of the center of mass

v y :

Lateral velocity of the center of mass

v y,s :

Standard deviation of the process noise on vy

W :

Process noise matrix

w :

Process noise

w dyn :

Weight of the dynamic filter

w kin :

Weight of the kinematic filter

w r :

Noise on the measurement of r

w ax :

Noise on the measurement of ax

w ay :

Noise on the measurement of ay

X :

Sigma-point

x :

System state vector

Z :

Measurement sigma-point

z :

Measurement vector

α :

Tire slip angle

β :

Vehicle sideslip angle

β e :

Root mean square error on \(\hat{\beta }\)

γ :

UKF parameter

t :

Discretization (sample) time

δ :

Wheel steering angle

\(\kappa \) :

UKF parameter

λ :

Tire model parameter

μ max :

Friction coefficient

ρ :

Air density

σ :

UKF parameter

ψ :

UKF parameter

i :

Axle index: 1 = front, 2 = rear

j :

Side index: 1 = left, 2 = right

^:

Estimated value

−:

A-priori value

a :

Augmented

References

  1. Annex to EUROPE ON THE MOVE Sustainable Mobility for Europe: safe, connected and clean. Brussels: European Commission, 2018

  2. Guiggiani M (2018) The science of vehicle dynamics. Springer, Netherlands

    Book  Google Scholar 

  3. Van Zanten AT (1996) Control aspects of the Bosch-VDC. In International Symposium on Advanced Vehicle Control, Aachen, 1996

  4. Van Zanten, A.T., 2000. Bosch ESP systems: 5 years of experience. SAE transactions, pp.428–436.

  5. Lenzo B, De Castro R (2019), August. Vehicle sideslip estimation for four-wheel-steering vehicles using a particle filter. In The IAVSD International Symposium on Dynamics of Vehicles on Roads and Tracks (pp. 1624–1634). Springer, Cham

  6. Guo H, Cao D, Chen H, Lv C, Wang H, Yang S (2018) Vehicle dynamic state estimation: state of the art schemes and perspectives. IEEE/CAA J Automatica Sinica 5(2):418–431

    Article  Google Scholar 

  7. Chindamo D, Lenzo B, Gadola M (2018) On the vehicle sideslip angle estimation: a literature review of methods, models, and innovations. Applied sciences. 8(3):355

    Article  Google Scholar 

  8. Farrelly J, Wellstead P (1996) September. Estimation of vehicle lateral velocity. In Proceeding of the 1996 IEEE International Conference on Control Applications IEEE International Conference on Control Applications held together with IEEE International Symposium on Intelligent Contro (pp. 552–557). IEEE

  9. Selmanaj D, Corno M, Panzani G, Savaresi SM (2017) Vehicle sideslip estimation: a kinematic based approach. Control Eng Pract 67:1–12

    Article  Google Scholar 

  10. Best MC, Gordon TJ, Dixon PJ (2000) An extended adaptive Kalman filter for real-time state estimation of vehicle handling dynamics. Veh Syst Dyn 34(1):57–75

    Article  Google Scholar 

  11. Hiraoka T, Kumamoto H, Nishihara O (2004) Sideslip angle estimation and active front steering system based on lateral acceleration data at centers of percussion with respect to front/rear wheels. JSAE Rev 25(1):37–42

    Google Scholar 

  12. Vignati M (2017) Innovative control strategies for 4WD hybrid and electric control (Doctoral dissertation, Polytechnic University of Milan, Italy)

  13. Naets F, van Aalst S, Boulkroune B, El Ghouti N, Desmet W (2017) Design and experimental validation of a stable two-stage estimator for automotive sideslip angle and tire parameters. IEEE Trans Veh Technol 66(11):9727–9742

    Article  Google Scholar 

  14. You SH, Hahn JO, Lee H (2009) New adaptive approaches to real-time estimation of vehicle sideslip angle. Control Eng Pract 17(12):1367–1379

    Article  Google Scholar 

  15. Gadola M, Chindamo D, Romano M, Padula F (2014) Development and validation of a Kalman filter-based model for vehicle slip angle estimation. Veh Syst Dyn 52(1):68–84

    Article  Google Scholar 

  16. US patent US7885750B2 (2006) Integrated control system for stability control of yaw, roll and lateral motion of a driving vehicle using an integrated sensing system to determine a sideslip angle

  17. van Aalst S, Naets F, Boulkroune B, De Nijs W, Desmet W (2018) An adaptive vehicle sideslip estimator for reliable estimation in low and high excitation driving. IFAC-PapersOnLine 51(9):243–248

    Article  Google Scholar 

  18. Shao L, Jin C, Lex C, Eichberger A (2016) December. Nonlinear adaptive observer for side slip angle and road friction estimation. In 2016 IEEE 55th Conference on Decision and Control (CDC) (pp. 6258–6265). IEEE

  19. Dakhlallah J, Glaser S, Mammar S, Sebsadji Y (2008) June. Tire-road forces estimation using extended Kalman filter and sideslip angle evaluation. In 2008 American control conference (pp. 4597–4602). IEEE

  20. Pieralice C, Lenzo B, Bucchi F, Gabiccini M (2018) November. Vehicle sideslip angle estimation using Kalman filters: modelling and validation. In The International Conference of IFToMM Italy (pp. 114–122). Springer, Cham

  21. Ahangarnejad AH, Başlamışlı SÇ (2016) Adap-tyre: DEKF filtering for vehicle state estimation based on tyre parameter adaptation. Int J Veh Des 71(1–4):52–74

    Article  Google Scholar 

  22. Doumiati M, Victorino A, Charara A, Lechner D (2009) June. Unscented Kalman filter for real-time vehicle lateral tire forces and sideslip angle estimation. In 2009 IEEE intelligent vehicles symposium (pp. 901–906). IEEE

  23. Antonov S, Fehn A, Kugi A (2011) Unscented Kalman filter for vehicle state estimation. Veh Syst Dyn 49(9):1497–1520

    Article  Google Scholar 

  24. Cheng Q, Correa-Victorino A, Charara A (2011) June. A new nonlinear observer using unscented Kalman filter to estimate sideslip angle, lateral tire road forces and tire road friction coefficient. In 2011 IEEE Intelligent Vehicles Symposium (IV) (pp. 709–714). IEEE

  25. Bishop G, Welch G (2001) An introduction to the kalman filter. Proc of SIGGRAPH, Course 8(27599–23175):41

    Google Scholar 

  26. Reina G, Messina A (2019) Vehicle dynamics estimation via augmented extended Kalman filtering. Measurement 133:383–395

    Article  Google Scholar 

  27. Di Biase F, Lenzo B, Timpone F (2020) Vehicle sideslip angle estimation for a heavy-duty vehicle via Extended Kalman Filter using a Rational tyre model. IEEE Access 8:142120–142130

    Article  Google Scholar 

  28. Chen BC, Hsieh FC (2008) Sideslip angle estimation using extended Kalman filter. Veh Syst Dyn 46(S1):353–364

    MathSciNet  Article  Google Scholar 

  29. Cheli F, Sabbioni E, Pesce M, Melzi S (2007) A methodology for vehicle sideslip angle identification: comparison with experimental data. Veh Syst Dyn 45(6):549–563

    Article  Google Scholar 

  30. Nam K, Oh S, Fujimoto H, Hori Y (2012) Estimation of sideslip and roll angles of electric vehicles using lateral tire force sensors through RLS and Kalman filter approaches. IEEE Trans Industr Electron 60(3):988–1000

    Article  Google Scholar 

  31. Grip HF, Imsland L, Johansen TA, Kalkkuhl JC, Suissa A (2009) Vehicle sideslip estimation. IEEE Control Syst Mag 29(5):36–52

    MathSciNet  Article  Google Scholar 

  32. Grewal MS (2011) Kalman Filtering. In: Lovric M (ed) International Encyclopedia of Statistical Science. Springer, Berlin

    Google Scholar 

  33. Jazwinski AH (2007) Stochastic processes and filtering theory. Courier Corporation

  34. Maybeck P (1979) Stochastic models, estimation, and control. Volume 1 (Book). New York, Academic Press, Inc.(Mathematics in Science and Engineering, 141, p 438

  35. Costa PJ (1994) Adaptive model architecture and extended Kalman-Bucy filters. IEEE Trans Aerosp Electron Syst 30(2):525–533

    Article  Google Scholar 

  36. Austin JW, Leondes CT (1981) Statistically linearized estimation of reentry trajectories. IEEE Trans Aerosp Electron Syst 1:54–61

    Article  Google Scholar 

  37. Grewal MS, Andrews AP (1993) Kalman filtering: theory and practice. Englewood Cliffs (New Jersey), Prentice Hall Information and System Sciences Series

  38. Chang CT, Hwang JI (1998) Simplification techniques for EKF computations in fault diagnosis—suboptimal gains. Chem Eng Sci 53(22):3853–3862

    Article  Google Scholar 

  39. Julier SJ, Uhlmann JK (2004) Unscented filtering and nonlinear estimation. Proc IEEE 92(3):401–422

    Article  Google Scholar 

  40. Wan EA and Van Der Merwe R (2000) October The unscented Kalman filter for nonlinear estimation. In Proceedings of the IEEE 2000 Adaptive Systems for Signal Processing, Communications, and Control Symposium (Cat. No. 00EX373) (pp. 153–158). Ieee

  41. Van Der Merwe R (2004) Sigma-point Kalman filters for probabilistic inference in dynamic state-space models (Doctoral dissertation, OGI School of Science & Engineering at OHSU)

  42. Terejanu GA (2011) Unscented kalman filter tutorial. University at Buffalo, Buffalo

    Google Scholar 

  43. Westfall PH (2014) Kurtosis as peakedness, 1905–2014. RIP Am Statistician 68(3):191–195

    MathSciNet  Article  Google Scholar 

  44. Kandepu R, Foss B, Imsland L (2008) Applying the unscented Kalman filter for nonlinear state estimation. J Process Control 18(7–8):753–768

    Article  Google Scholar 

  45. Bian M, Chen L, Luo Y, Li K (2014) A dynamic model for tire/road friction estimation under combined longitudinal/lateral slip situation (No. 2014–01–0123). SAE Technical Paper

  46. Frendo F, Greco G, Guiggiani M, Sponziello A (2007) The handling surface: a new perspective in vehicle dynamics. Veh Syst Dyn 45(11):1001–1016

    Article  Google Scholar 

  47. Batlle JA, Condomines AB (2020) Rigid Body Kinematics. Cambridge University Press

    Book  Google Scholar 

  48. https://www.oxts.com/wp-content/uploads/2020/11/RT3000-v3-datasheet-201117_web.pdf, retrieved April 26th, 2021.

  49. https://www.bosch-motorsport.com/content/downloads/Raceparts/en-GB/53202827208226187.html, retrieved April 26th, 2021.

  50. https://www.bosch-motorsport.com/content/downloads/Raceparts/en-GB/54425995191962507.html, retrieved April 26th, 2021.

  51. https://www.kistler.com/files/document/003-395e.pdf, retrieved April 26th, 2021.

Download references

Funding

Open access funding provided by Università degli Studi di Padova within the CRUI-CARE Agreement.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Basilio Lenzo.

Ethics declarations

Conflict of interest

The authors declare that they have no conflict of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

The original online version of this article was revised: mistakes introduced after proofing were corrected.

Appendix 1

Appendix 1

The traditional KF approach used as a comparison in this paper is a dynamic model. It uses a single-track vehicle model and a linear tire model, similar to [26, 29, 30]. The state vector, input vector, and measurement vectors are the same as for the proposed dynamic model, i.e. \({\varvec{x}} = \left[ {v_{y} \quad r} \right]^{T}\), \(u = \delta\), \({\varvec{z}} = \left[ {r \quad a_{y} } \right]^{T}\). The filter equations in discrete time are the following:

$$\begin{aligned} \left\{ {\begin{array}{*{20}c} {v_{{y_{k + 1}}} = \left[ {1 - \frac{{\Delta t}}{{mv_{{x_k}} }}\left( {C_{1} + C_{2} } \right)} \right]v_{{y_k}} + \left[ { - \frac{{\Delta t}}{{mv_{{x_k}} }}\left( {C_{1} a - C_{2} b} \right) - \Delta tv_{{x_k}} } \right]r_{k} + \frac{{\Delta t C_{1} }}{m}\delta _{k} } \\ {r_{{k + 1}} = \left[ { - \frac{{\Delta t}}{{J_{z} v_{{x_k}} }}\left( {C_{1} a - C_{2} b} \right)} \right]v_{{y_k}} + \left[ {1 - \frac{{\Delta t}}{{J_{z} v_{{x_k}} }}\left( {C_{1} a^{2} + C_{2} b^{2} } \right)} \right]r_{k} + \frac{{\Delta t C_{1} a}}{{J_{z} }}\delta _{k} } \\ \end{array} } \right. \\ z_{k} = \left\{ {\begin{array}{*{20}c} {r_{k} = r_{k} } \\ {a_{{y_k}} = - \frac{{C_{1} + C_{2} }}{{mv_{{x_k}} }} - \frac{{C_{1} a + C_{2} b}}{{mv_{{x_k}} }}r_{k} + \frac{{C_{1} }}{m}} \delta _{k} \\ \end{array} } \right. \\ \end{aligned}$$
(33)

Because of the adopted tire model, the system is linear, hence the basic Kalman filter may be used.

The values for \(C_{1}\) and \(C_{2}\) are respectively 110,000 N/rad and 192,500 N/rad. Finally, the expression of the matrices \({\varvec{Q}}\) and \({\varvec{R}}\) are the same seen in Eqs. (28) and (29).

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Villano, E., Lenzo, B. & Sakhnevych, A. Cross-combined UKF for vehicle sideslip angle estimation with a modified Dugoff tire model: design and experimental results. Meccanica 56, 2653–2668 (2021). https://doi.org/10.1007/s11012-021-01403-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11012-021-01403-6

Keywords

  • Vehicle dynamics
  • Tire modeling
  • Sideslip angle
  • Kalman filter
  • Experiments