1 Introduction

The primary motivation for this research is the belief that significant performance benefits can be obtained if traction control algorithms were to consider both longitudinal and lateral motion. Current traction control algorithms are generally restricted to the longitudinal and yaw degrees of freedom, the latter being considered mainly for stability concerns. Human expert drivers are able to control their vehicles at high-performance traction levels without direct sensing of speed, slip, or traction forces. Clearly human drivers rely on indirect inputs such as visual, audible, inertial, and tactile cues, along with some form of internal representation of the dynamics developed through reinforcement learning. In previous work [1], it was shown that human experts performed the task of longitudinal traction control using sensed longitudinal acceleration. In the same work, a controller was developed using the same sensory inputs, i.e., longitudinal acceleration, to regulate engine output. This control architecture outperformed a more traditional traction control approach using PID control to regulate wheel slip over unknown and spatially varying surfaces [1]. This work uses a feedback control algorithm that builds on previous work, using measurements of longitudinal and lateral acceleration, to regulate engine torque. This work considers high-performance traction control as either getting from point A to point B in a minimum amount of time or maximizing the distance traveled in a fixed amount of time, barring engine power limitations. The solution to this problem for ground vehicles is controlling the vehicle such that it operates at the maximum of the vector sum of longitudinal and lateral tractive forces, along a path, and subsequently the maximum of acceleration. This is not a trivial task as the model of the vehicle and tire–ground interface are often unknown or only approximately understood. The objective of the control architecture developed in this work is to regulate engine output to maximize longitudinal and lateral accelerations both simultaneously or selectively.

Several solutions to the traction control problem exist in both industry and academia. The motorsports community has reaped the benefits of traction control for years. Commercial vehicle applications have used anti-lock brake systems since the early 1970s, with the addition of traction control and stability control becoming more prevalent in the last decade. The unmanned ground vehicle community has yet to fully embrace technologies that have been mainly used in a driver assist application for ground vehicles. There is a great deal of technology that can be used, but more importantly improved upon in developing a more robust traction control algorithm capable of adaptation in both time and space.

Motorsports applications have reaped the most value from automatic traction control, largely because the tire–ground interface in these applications has less variability [2], and is relatively better understood through extensive testing [3]. Some form of automatic traction control system (TCS), or its more prevalent complement, an anti-lock braking system (ABS), is also available on a wide range of passenger cars and trucks [4]. In fact, in the past decade there has been an increase in available solutions to traction control within the motorsports community. Well-developed solutions are offered through a variety of companies such as Motec, EFI Technology, and Pectel. With the use of drive by wire engine control there are two different methods to decrease the torque being applied to the wheel; reduce engine torque and/or increase braking force. In a fuel-injected engine, reducing the engine torque typically requires cutting ignition spark or cutting fuel [5]. Motec, a supplier of one of the more popular engine management systems, uses a slip control system that measures individual wheel speeds (undriven and driven) and compares them to a table of allowable amounts of slip (differences in wheel speeds) versus engine speed. This is similar to existing traction control and anti-lock brake control algorithms that regulate slip to an acceptable range [6, 7], often sacrificing performance to do so. The Motec system then uses a combination of cutting ignition spark and fuel to decrease the engine torque. This method breaks down as the velocity of the vehicle approaches zero and for this reason, the traction control is either run in a mode analogous to open loop control where a minimum engine speed is specified before cutting ignition spark or fuel is allowed. Once the vehicle has exceeded this predetermined speed the slip control algorithm takes over [5].

Even commercially available automatic traction control systems are designed with restrictive assumptions such as relative uniformity in the ground surface, which ultimately limits the operational envelope [4, 710]. Many traction control methods track a desired slip ratio using linear control theory or more advanced non-linear approaches such as sliding mode control [8]. In fact, sliding mode control is a popular choice to control the slip seen at the tire–ground interface [8]. The work of Lee and Tomizuka [8] develops two approaches, one which assumes explicit knowledge of vehicle parameters and traction curve to calculate the friction coefficient of the road and subsequently track the desired slip ratio [8]. The second approach is a fuzzy logic approach to control the slip ratio with crudely defined fuzzy sets over the interval \( \kappa \in [-2,2] \) with labels: Negative Big, Negative Small, Zero, Positive Small, and Positive Big. The second approach of Lee and Tomizuka [8] can be summed up in three steps: 1. Estimate the local slope of the longitudinal traction curve \(\partial F_t/\partial \kappa \), 2. Move the target slip toward the peak value. 3. Steer the wheel slip toward the new target slip via sliding mode or fuzzy logic slip control, then return to 1. Fuzzy logic model-based approaches are also very popular when developing traction control solutions [8, 11]. Following the work of Colli et al. [11] a Fuzzy Adherence Gradient Approach is developed in which a fuzzy logic set is developed to estimate the gradient of the traction curve \(\partial F_t/\partial \kappa \). However, as Colli et al. point out there is a singularity in this gradient at steady-state conditions, which includes the peak of the traction curve. To get around this issue the gradient estimation is only updated when an appreciable change in vehicle operating conditions is seen [11], where the appreciable change is defined by a predetermined threshold. Even the fuzzy logic approach of Colli et al. is model-based with respect to the friction estimation [11]. Kazemi et al. have developed a 7-DOF model, and applied a sliding mode controller to create an anti-lock brake system that is able to maximize tractive forces on each individual wheel, and in doing so prevents unwanted yaw accelerations [7].

Defense and civil applications of Unmanned Ground Vehicle (UGV) technology are rapidly progressing to the point where high-performance traction control systems for both acceleration and braking will be necessary to achieve future mobility and mission needs [12]. Existing UGV platforms are typically restricted to operate within a conservative performance envelope relative to traction at the tire–ground interface. The majority of research in this area has focused on the path planning and associated perception challenges. Performance is commonly sacrificed in favor of stability as a mechanism for accommodating the interface uncertainties. Traction control solutions that offer higher levels of performance than what is currently available today will provide significant value for a wide range of ground vehicle applications, provided they can adapt in a manner similar to that of a human expert.

A necessary and relevant component to all vehicle simulations, as well as any traction control studies, is the use of a traction model of the tire–ground interface. The majority of tire–ground interface models used in simulation are highly non-linear. The most commonly used model in high-performance racing simulations is that of Pacejka [13]. The Pacejka model is a semi-empirical model which can be used to model pure longitudinal motion, pure lateral motion, or combined mode friction (longitudinal and lateral). Many vehicle control algorithms such as anti-lock brake systems and traction control can benefit from real-time knowledge of the tire–ground interface properties [14]. This work does not explicitly address estimation of the tire–ground interface model, but this has been a popular area of research in the last decade [2, 15, 16]. In fact, models have been developed to estimate the tractive forces in real time for both manned and unmanned ground vehicles by Li et al. [2], Tran et al. [12], and Pasterkamp et al. [16]. In some cases these algorithms estimate the entire friction curve [14], while some simply estimate the peak of the curve [17]. The popular slip-slope method does exactly this, it estimates the slip in the linear region of the friction curve, the offset in the curve at zero slip, and the variance in the error, where the error is the difference between the actual data and the linear approximation in the least squares sense. This information is then used in a classifier to estimate the location of \( \mu _{max}\) or the location of the peak tractive force [17]. A key drawback to this method is the cost, upfront and computational, associated with collection of the necessary training data for the classifier. The use of a classifier is also restrictive in the sense that it constrains the estimation to known surfaces. Rajamani et al. developed a slightly more robust process to use the slip-slope method, by using a recursive least squares estimate of the linear portion of the traction curve [17]. This method provides a control engineer with the option of tuning a forgetting factor, allowing for the adjustment between fast convergence and immunity to noise. All of this work is focused on generating a more robust friction model that allows the control engineer to push the limits of the more traditional traction control algorithms. Rajamani et al. [17] have also developed a suite of friction estimation techniques to estimate the tractive forces [17] in real time. As Rajamani et al. show, given explicit knowledge of the vehicle model, it is possible to obtain accurate measurements of the tractive forces. Ray has used an extended Kalman filter (EKF) to show that it is possible to estimate the tractive forces of the vehicle using onboard sensors (vehicle speed, wheel speed, and yaw rate) and knowledge of the system inputs [18, 19]. Provided the filter is tuned correctly, it is possible for this estimation algorithm to accurately track discrete changes in tractive forces and the respective coefficients of friction [19]. The work of Wilkin et al. [20] can be considered as an extension of Ray’s to practice where a fully instrumented race car is used with wheel force transducers to assess the accuracy of the extended Kalman filter. In fact, Ray and Wilkin et al. model each tractive force as a random walk output of a dynamic system composed of rigid body modes [19, 20], which is very similar to the way disturbance accommodating control algorithms attempt to model disturbances [21, 22].

2 Traction force and vehicle model

A tire–ground interface model is a necessary and relevant component of any vehicle simulation. The non-linear tractive forces used in this work are developed using the Pacejka Magic Tire Formula [13]. The family of Pacejka models are semi-empirical formulas expressed with a set of coefficients that are unique to each tire–ground interface. The values of these coefficients are derived from a non-linear curve fit of experimental tire force and moment data collected over a range of operating conditions. The combined mode forces, simultaneous longitudinal and lateral, are developed using Genta’s method [23] to scale the forces for pure slip determined by Pacejka [13].

2.1 Traction force models

Before the traction model is presented it is necessary to define the terms slip angle and slip ratio. The slip angle \(\alpha \) is measured from the longitudinal (\(x\)) axis of the wheel toward the actual net velocity of the wheel, and is defined by Eq. 1.

$$\begin{aligned} \alpha \left( v_{xt}, v_{yt} \right) = \arctan \left( \frac{v_{yt}}{\left| v_{xt}\right| } \right) \end{aligned}$$
(1)

Using the SAE J670 definition [13], the slip ratio represents the longitudinal slip, which is defined by Eq. 2 [24].

$$\begin{aligned} \kappa \left( \omega , v_{xt} \right) = \left( \frac{\omega R - v_{xt}}{v_{xt}} \right) \end{aligned}$$
(2)

where \(\omega \) is the angular velocity of the wheel, and \(R\) is the effective rolling radius of the wheel. Note that \(\omega R > v_{xt} \rightarrow \kappa > 0\) during acceleration, and \(\omega R < v_{xt} \rightarrow \kappa < 0\) when braking [3]. The general form of the Magic Formula is based on a common non-linear function given by Eq. 3.

$$\begin{aligned} Y\left( s; \mathbf {p} \right)&= D \sin \left[ C \arctan \left( B s \left[ 1 - E\right] \right. \right. \nonumber \\&+\left. \left. \! E \arctan \left[ B s \right] \right) \right] + S \end{aligned}$$
(3)

When the general slip state \(s\) is the slip angle \(\alpha \), then Eq. 3 represents the pure lateral traction force. When the general slip state \(s\) is the slip ratio \(\kappa \), then Eq. 3 represents the pure longitudinal traction force. The coefficients B, C, D, and E are, respectively, referred to as the stiffness, shape, peak, and curvature coefficients for a given tire–ground interface [13], and are functions of the vector of constant parameter values \(\mathbf{p}\) that are empirically derived from experimental test data [24]. For pure longitudinal slip or lateral slip the tractive force is given by \(Y\) in Eq. 3. In the more common case where the tire simultaneously experiences combined longitudinal and lateral slip, the pure slip forces defined by Eq. 3 are modified according to Genta [23] using the scaling terms \(\sigma ^*_x\) and \(\sigma ^*_y\) according to Eqs. 4 and 5. The method developed by Genta [23] is also empirical, and is designed to account for the fact that a tire has a finite limit when it comes to tractive capacity and is superior to the elliptical approximation [23].

$$\begin{aligned} F_{x}\left( \alpha , \kappa , \gamma , F_z \right)&= \frac{\sigma ^*_x}{\sigma ^*}\left| Y\left( \kappa , \gamma , F_z; \mathbf {p}_x \right) \right| \end{aligned}$$
(4)
$$\begin{aligned} F_{y}\left( \alpha , \kappa , \gamma , F_z \right)&= -\frac{\sigma ^*_y}{\sigma ^*}\left| Y\left( \alpha , \gamma , F_z; \mathbf {p}_y \right) \right| \end{aligned}$$
(5)

Figures 1 and 2 are the plots of the longitudinal and lateral forces in combined slip according to Eqs. 4 and 5 for dry pavement. These plots clearly illustrate the saturation of both lateral and longitudinal forces in combined slip.

Fig. 1
figure 1

Typical longitudinal force values when operating in combined mode friction regime for dry pavement

Fig. 2
figure 2

Typical lateral force values when operating in combined mode friction regime for dry pavement

2.2 Planar vehicle dynamics

The kinematic model of lateral vehicle motion developed by Rajamani [25] is shown in Fig. 3. The front and rear steering angles are represented as \( \delta {}_f \) and \( \delta {}_r \), respectively. The distances between the front and rear axles to the center of gravity are represented as \( L_f \) and \( L_r \) and when added together will equal the wheelbase of the vehicle, \( L \). The vehicles’ velocity, represented by \(v\) in Fig. 3, is a vector quantity composed of the longitudinal velocity \(v_{xc}\) and lateral velocity \(v_{yc}\) of the vehicle. The yaw rate \(\dot{\psi }\) is measured about the vehicles’ center of gravity, while the yaw angle \(\psi \) is an absolute value. The longitudinal tire forces \(F_{xtf}\) and \(F_{xtr}\) and the lateral tire forces \(F_{ytf}\) and \(F_{ytr}\) are developed in the reference frame of each tire using the aforementioned tire model.

Fig. 3
figure 3

Bicycle model used to include lateral dynamics

The kinematic bicycle model of Fig. 3, and the longitudinal vehicle model of Fig. 4 are combined to form the complete model which can be represented as a single dynamic system in continuous time by Eq. 6, where \( N \) is the number of states, \( P \) is the number of outputs, \( M \) is the number of inputs and \( Q \) is the number of non-linear feedback terms.

$$\begin{aligned}&\dot{\mathbf{x}} = \mathbf{A_c}\mathbf{x}+\mathbf{B_c}\mathbf{u}+\mathbf{F_c}\mathbf{u'} \end{aligned}$$
(6)
$$\begin{aligned}&\mathbf{y} = \mathbf{C_c}\mathbf{x}+\mathbf{D_c}\mathbf{u}+\mathbf{G_c}\mathbf{u'} \end{aligned}$$
(7)
$$\begin{aligned}&\mathbf{y'} = \left[ \begin{array}{c}\mathbf{I}_N \\ \mathbf{0}\end{array}\right] \mathbf{x}+\left[ \begin{array}{c}\mathbf{0}\\ \mathbf{I}_M\end{array}\right] \mathbf{u}=\left[ \begin{array}{c}\mathbf{x} \\ \mathbf{u}\end{array}\right] \end{aligned}$$
(8)
$$\begin{aligned}&\mathbf{u'} = \left[ \begin{array}{c} f_1\left( \mathbf{y'}\right) \\ \vdots \\ f_Q\left( \mathbf{y'}\right) \end{array}\right] = \mathbf{f}\left( \mathbf{y'}\right) \end{aligned}$$
(9)

The structure of Eq. 6 separates the dynamic system into a set of linear states and inputs combined with a set of non-linear feedback terms \( \mathbf{u'}\in \mathfrak R ^Q \) according to Fig. 5, as has been done in previous work [1, 26, 27].

Fig. 4
figure 4

Longitudinal dynamics of bicycle model

Fig. 5
figure 5

Plant dynamics are a combination of a linear system with non-linear feedback

The dynamic bicycle model can then be described, according the structure of Eqs. 6 and 7, using Eqs. 819.

(10)
$$\begin{aligned} \mathbf{B_c}&= \left[ \begin{array}{cccccc} 0&0&0&0&0&2\pi f_e \end{array}\right] ^T \end{aligned}$$
(11)
(12)
(13)
$$\begin{aligned} \mathbf{D_c} = \left[ \begin{array}{cc} 0&0 \end{array}\right] ^T \end{aligned}$$
(14)
(15)
$$\begin{aligned}&\mathbf{x} = \left[ \begin{array}{cccccc} v_x&v_y&\dot{\psi }&\omega _f&\omega _r&T_e \end{array}\right] ^T \end{aligned}$$
(16)
$$\begin{aligned}&\mathbf{y} = \left[ \begin{array}{cc} \dot{v}_x&\dot{v}_y \end{array} \right] ^T \end{aligned}$$
(17)
$$\begin{aligned}&\mathbf{u}= \left[ \begin{array}{ccc} T_c \end{array} \right] \end{aligned}$$
(18)
$$\begin{aligned}&\mathbf{u'}= \left[ \begin{array}{cccc} F_{xtf}&F_{xtr}&F_{ytf}&F_{ytr} \end{array} \right] ^T \end{aligned}$$
(19)

3 Adaptive traction control algorithm

Our primary objective is to develop a traction control method that commands throttle position (wheel torque) based only on sensed longitudinal acceleration. Since it is also an objective to implement the method on a digital controller, we will first discretize the dynamic vehicle model while retaining the non-linearities. The block diagram in Fig. 5 indicates that the linear dynamic system has two outputs and two inputs. This particular structure, i.e., continuous LTI dynamics coupled with a non-linear feedback path, is a generalized non-linear dynamic system representation. A gradient-based approach, motivated by a HIL traction control study [1], is proposed as a candidate solution for determining the optimal throttle position to maximize longitudinal and lateral accelerations. There are many possible gradient-based approaches that can be employed; however, for this study, a steepest ascent approach was chosen.

Assuming an appropriate method is chosen to discretize the system of Eqs. 6 and 7, it is possible to arrive at the system of Eqs. 20 and 21.

$$\begin{aligned}&\mathbf{x}_{k+1} = \mathbf{A}\mathbf{x}_k+\mathbf{B}\mathbf{u}_k+\mathbf{F}\mathbf{u'}_k \end{aligned}$$
(20)
$$\begin{aligned}&\mathbf{y}_{k} = \mathbf{C}\mathbf{x}_k+\mathbf{D}\mathbf{u}_k+\mathbf{G}\mathbf{u'}_k \end{aligned}$$
(21)

The output \(\mathbf{y}_k\) of the dynamic system, at this point, is not assigned to a measured quantity and is considered a general output of the dynamic system of Fig. 5. In subsequent sections, \(\mathbf{y}_k\) will be defined as the longitudinal and lateral accelerations or the vector of traction forces. To develop the necessary mathematics, we start with the generic objective function \(J\left( \mathbf{u}_k\right) \) defined as Eq. 22. The objective function of Eq. 22 includes a weighting matrix \(\mathbf{Q}\in \mathfrak R ^{(PxP)}\), which is a positive definite, symmetric matrix used to weight each component of the objective function, where \(P\) is the number of outputs in Eq. 7.

$$\begin{aligned} J(\mathbf{u}_k)&= \frac{1}{2}\mathbf{y}^T_k \mathbf{Q} \mathbf{y}_k \end{aligned}$$
(22)

Mathematically, maximizing \(\mathbf{y}_k\) can be accomplished using a gradient-based adaptive algorithm such as Eq. 23.

$$\begin{aligned} \mathbf{u}_{k+1}&= \mathbf{u}_k+\mu \mathbf{\nabla }_k \end{aligned}$$
(23)

The gradient of the objective function \(\nabla _k\ \) is defined according to Eq. 24.

$$\begin{aligned} \nabla _k&\equiv \frac{\partial {J(\mathbf{u}_k)}}{\partial {\mathbf{u}_k}} \nonumber \\ \frac{\partial {J(\mathbf{u}_k)}}{\partial {\mathbf{u}_k}}&= \frac{1}{2}\frac{\partial {\left( \mathbf{y}^T_k\mathbf{Q}\mathbf{y}_k\right) }}{\partial {\mathbf{u}_k}} \nonumber \\&= \frac{1}{2}\frac{\partial {\mathbf{y}^T_k}}{\partial {\mathbf{u}_k}} \mathbf{Q}\mathbf{y}_k+\frac{1}{2}\left( \mathbf{y}^T_k\mathbf{Q} \frac{\partial {\mathbf{y}_k}}{\partial {\mathbf{u}_k}}\right) ^T \nonumber \\&= \frac{\partial {\mathbf{y}^T_k}}{\partial {\mathbf{u}_k}}\mathbf{Q} \mathbf{y}_k. \end{aligned}$$
(24)

It is important to note here the structure that this algorithm takes for the multi-input multi-output (MIMO) and single-input multi-output (SIMO) cases. Noting that the model designation as MIMO or SIMO refers to the plant model, where the input refers to \(\mathbf{u}_k\) and output refers to \(\mathbf{y}_k\). The single-input single-output (SISO) and multi-input single-output (MISO) case are straightforward; however, the application to MIMO and SIMO cases requires clarification. Using the gradient term defined according to Eq. 24 requires the use of a filter bank for the MIMO and SIMO cases. Essentially the filter bank is composed of individual filters that use the same structure as they would for the SISO and MISO cases. This becomes clear when studying Eq. 25, and should clear up any ambiguity when comparing the MIMO and SIMO structure to the MISO and SISO structure.

$$\begin{aligned} \frac{\partial {J(\mathbf{u}_k)}}{\partial {\mathbf{u}_k}}&= \left[ \begin{array}{c} \frac{\partial {\mathbf{y}_{1,k}}}{\partial {\mathbf{u}_k}} \\ \frac{\partial {\mathbf{y}_{2,k}}}{\partial {\mathbf{u}_k}} \\ \cdots \\ \frac{\partial {\mathbf{y}_{n,k}}}{\partial {\mathbf{u}_k}} \end{array}\right] ^T \mathbf{Q}\mathbf{y}_{k} \end{aligned}$$
(25)

After formulating the gradient as the discrete time process of Eq. 24, it is necessary to develop \({\partial {\mathbf{y}_k}}/{\partial {\mathbf{u}_k}}\) as a discrete time filter. This is similar to Filtered-X LMS algorithm implementations [28], where the gradient term is represented by a dynamic filtering operation. To begin, it is possible to represent the state equation of Eqs. 20 and 21 as Eq. 26, where \(z\) is the unit advance operator.

$$\begin{aligned} \mathbf{x}&= \left[ z\mathbf{I}-\mathbf{A}\right] ^{-1}\left[ \mathbf{B}\mathbf{u} +\mathbf{F}\mathbf{u'}\right] \end{aligned}$$
(26)

Substituting Eq. 26 into the output equation Eqs. 20 and 21 results in Eq. 27, which is exactly what would be expected from linear systems theory with the addition of the non-linear feedback term(s) \(\mathbf{u'}\).

$$\begin{aligned} \mathbf{y}&= \left[ \mathbf{C}\left[ z\mathbf{I}-\mathbf{A}\right] ^{-1}\mathbf{B}\right. \\&+\left. \mathbf{D}\right] \mathbf{u}+ \left[ \mathbf{C}\left[ z\mathbf{I}- \mathbf{A}\right] ^{-1}\mathbf{F} +\mathbf{G}\right] \mathbf{u'} \end{aligned}$$

Using the definition, \(\mathbf{H}\equiv \left[ z\mathbf{I}-\mathbf{A}\right] ^{-1}\), combined with the system of Eqs. 26 and 27, it is possible to define an equivalent system in the form of Eq. 27.

$$\begin{aligned}&\left[ \begin{array}{c} \mathbf{x}(z) \\ \mathbf{y}(z) \end{array}\right] = \mathbf{T} \left[ \begin{array}{c} \mathbf{u}(z) \\ \mathbf{u'}\left( \mathbf{y'}\right) \end{array}\right] \\&\mathbf{T} = \left[ \begin{array}{cc} \mathbf{H}(z)\mathbf{B} &{} \mathbf{H}(z)\mathbf{F} \\ \mathbf{C}\mathbf{H}(z)\mathbf{B}+\mathbf{D} &{} \mathbf{C}\mathbf{H}(z)\mathbf{F}+\mathbf{G} \end{array}\right] \nonumber \end{aligned}$$
(27)

Again, it is important to note that when \(\mathbf{u'}\left( \mathbf{y'}(z)\right) =\mathbf{0}\) or \(\mathbf{F}=\mathbf{G}=\mathbf{0}\), the system reduces to a linear time invariant system. In order to evaluate the gradient term in Eq. 24 the output of Eq. 27 can be differentiated, resulting in an expression for \({\partial {\mathbf{y}(z)}}/{\partial {\mathbf{u}(z)}}\).

$$\begin{aligned} \frac{\partial {\mathbf{y}(z)}}{\partial {\mathbf{u}(z)}}&= \left[ \mathbf{C}\mathbf{H}(z)\mathbf{B} +\mathbf{D}\right] \frac{\partial {\mathbf{u}(z)}}{\partial {\mathbf{u}(z)}} \nonumber \\&+ \left[ \mathbf{C}\mathbf{H}(z)\mathbf{F} +\mathbf{G}\right] \frac{\partial {\mathbf{f} \left( \mathbf{y'}(z)\right) }}{\partial {\mathbf{u}(z)}} \end{aligned}$$
(28)

By definition, the non-linear feedback term \(\mathbf{f}(\mathbf{y'}(z))\) is a function of both the states \(\mathbf{x}(z)\) and the inputs \(\mathbf{u}(z)\). Expanding the partial derivative of this term results in Eq. 29.

$$\begin{aligned} \frac{\partial {\mathbf{f}}\left( \mathbf{y'}(z)\right) }{\partial {\mathbf{u}(z)}}&= \frac{\partial {\mathbf{f}(z)}}{\partial {\mathbf{x}(z)}}\frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}} \end{aligned}$$
(29)

Substituting Eq. 29 into the output equation, Eq. 28, results in an expanded expression for \({\partial {\mathbf{y}(z)}}/{\partial {\mathbf{u}(z)}}\) in Eq. 30.

$$\begin{aligned} \frac{\partial {\mathbf{y}(z)}}{\partial {\mathbf{u}(z)}}&= \left[ \mathbf{C}\mathbf{H}(z)\mathbf{B}+\mathbf{D}\right] \nonumber \\&+ \left[ \mathbf{C}\mathbf{H}(z)\mathbf{F}+\mathbf{G}\right] \left[ \frac{\partial {\mathbf{f}(z)}}{\partial {\mathbf{x}(z)}} \frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}}\right] \end{aligned}$$
(30)

The partial derivative of the state vector, which shows up in Eq. 30, can be expressed as Eq. 31.

$$\begin{aligned} \frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}}&= \mathbf{H}(z)\mathbf{B}+ \mathbf{H}(z)\mathbf{F} \left[ \frac{\partial {\mathbf{f}(z)}}{\partial {\mathbf{x}(z)}} \frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}}\right] \end{aligned}$$
(31)

Since Eq. 31 is recursive, it is necessary to break the loop as shown in Eq. 32.

$$\begin{aligned} \frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}}&= \left[ \mathbf{I}-\mathbf{H}(z) \mathbf{F}\frac{\partial {\mathbf{f}(z)}}{\partial {\mathbf{x}(z)}}\right] ^{-1}\mathbf{H}(z)\mathbf{B} \end{aligned}$$
(32)

Substituting Eq. 32 back into Eq. 30 results in Eq. 33, where the unit advance operator \(z\) has been dropped for ease in notation.

$$\begin{aligned} \frac{\partial {\mathbf{y}}}{\partial {\mathbf{u}}}&= \left[ \mathbf{CHB+D}\right] + \left[ \mathbf{CHF} + \mathbf{G}\right] \nonumber \\&\left\{ \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}} \left[ \mathbf{I-HF}\frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}}\right] ^{-1}\mathbf{H}\mathbf{B} \right\} \end{aligned}$$
(33)

Equation 33 appears to be difficult to implement in real time. In practice it is more robust and efficient to express Eq. 33 as a discrete state space system. To simplify the notation one additional definition is made.

$$\begin{aligned} \varOmega = \mathbf{F}\frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}} \end{aligned}$$
(34)

Substituting \(\varOmega \) into the portion of Eq. 33 contained inside the curly brackets results in Eq. 35.

$$\begin{aligned} \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}}\left[ \mathbf{I}- \mathbf{HF}\frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}}\right] ^{-1}\mathbf{H}\mathbf{B} = \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}} \left[ \mathbf{I-H}\varOmega \right] ^{-1}\mathbf{H}\mathbf{B} \end{aligned}$$
(35)

The dynamic system of Eq. 35 can be given a set of input and output vectors defined as \(\mathbf{q}(z)\) and \(\mathbf{r}(z)\), respectively. Using these vectors Eq. 35 can be reformulated as Eq. 36.

$$\begin{aligned} \mathbf{r}^{(1)}(z)&= \left[ \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}}\left[ \mathbf{I-H}\varOmega \right] ^{-1}\mathbf{H}\mathbf{B}\right] \mathbf{q}^{(1)}(z) \nonumber \\&= \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}} \left[ \mathbf{I-H}\varOmega \right] ^{-1}\mathbf{H} \mathbf{B}\mathbf{q}^{(1)}(z)+ \left[ \mathbf{0}\right] \mathbf{q}^{(1)}(z) \end{aligned}$$
(36)

At this point it is convenient to define the state vector \(\mathbf{w}^{(1)}(z)\) according to Eq. 37.

$$\begin{aligned} \mathbf{w}^{(1)}(z)&= \left[ \mathbf{I-H}\varOmega \right] ^{-1}\mathbf{H}\mathbf{B}\mathbf{q}^{(1)}(z) \end{aligned}$$
(37)

Using Eq. 37 it is possible to express Eq. 36 as Eq. 38.

$$\begin{aligned} \mathbf{r}^{(1)}(z)&= \frac{\partial {\mathbf{f}}}{\partial {\mathbf{x}}}\mathbf{w}^{(1)}(z) +\left[ \mathbf{0}\right] \mathbf{q}^{(1)}(z) \end{aligned}$$
(38)

With a little algebra it is possible to formulate the state equation according to Eq. 39.

$$\begin{aligned} \left[ \mathbf{I-H}\varOmega \right] \mathbf{w}^{(1)}(z)&= \mathbf{H}\mathbf{B}\mathbf{q}^{(1)}(z) \end{aligned}$$
(39)

We can now substitute the previous definition of \(\mathbf{H}\equiv \left[ z\mathbf{I}-\mathbf{A}\right] ^{-1}\) back into Eq. 37 and arrive at Eq. 40.

$$\begin{aligned} \left[ \mathbf{I}-\left[ z\mathbf{I} -\mathbf{A}\right] ^{-1}\varOmega \right] \mathbf{w}^{(1)}(z) = \left[ z\mathbf{I}-\mathbf{A}\right] ^{-1}\mathbf{B}\mathbf{q}^{(1)}(z) \end{aligned}$$
(40)

With some more algebra we arrive at Eq. 41.

$$\begin{aligned} \left[ z\mathbf{I}-\mathbf{A}-\varOmega \right] \mathbf{w}^{(1)}(z)&= \mathbf{B}\mathbf{q}^{(1)}(z) \end{aligned}$$
(41)

Equations 41 and 38 can be expressed as a state-space system according to Eq. 42. The transfer function corresponding to the state-space system of Eq. 42 will be referred to as \(\mathbf{P}^{(1)}(z)\).

$$\begin{aligned} \begin{array}{rcl} &{}&{}\mathbf{w}^{(1)}_{k+1} = \left[ \mathbf{A}+\varOmega \right] \mathbf{w}^{(1)}_k+\mathbf{B}\mathbf{q}^{(1)}_k\\ &{}&{}\mathbf{r}^{(1)}_k = \left[ \frac{\partial {\mathbf{f}_k}}{\partial {\mathbf{x}_k}}\right] \mathbf{w}^{(1)}_k +\left[ \mathbf{0}\right] \mathbf{q}^{(1)}_k \end{array} \end{aligned}$$
(42)

Using similar algebra and notation it is possible to define the remaining two components of Eq. 33 as the systems defined in Eqs. 43 and 44. As before, the transfer functions corresponding to the systems of Eqs. 43 and 44 are defined as \(\mathbf{P}^{(2)}(z)\) and \(\mathbf{P}^{(3)}(z)\), respectively.

$$\begin{aligned} \left[ \mathbf{CHB+D}\right] \Longrightarrow \begin{array}{rcl} \mathbf{w}^{(2)}_{k+1} &{}=&{} \mathbf{A}\mathbf{w}^{(2)}_k+\mathbf{B}\mathbf{q}^{(2)}_k \\ \mathbf{r}^{(2)}_k &{}=&{} \mathbf{C}\mathbf{w}^{(2)}_k+\mathbf{D}\mathbf{q}^{(2)}_k \end{array}\end{aligned}$$
(43)
$$\begin{aligned} \left[ \mathbf{CHF+G}\right] \Longrightarrow \begin{array}{rcl} \mathbf{w}^{(3)}_{k+1} &{}=&{} \mathbf{A}\mathbf{w}^{(3)}_k+\mathbf{F}\mathbf{q}^{(3)}_k \\ \mathbf{r}^{(3)}_k &{}=&{} \mathbf{C}\mathbf{w}^{(3)}_k+\mathbf{G}\mathbf{q}^{(3)}_k \end{array} \end{aligned}$$
(44)

It is now possible to express \({\partial {\mathbf{y}_k}}/{\partial {\mathbf{u}_k}}\) in block diagram form as Fig. 6. For the path with \(\mathbf{P}^{(1)}(z)\) and \(\mathbf{P}^{(3)}(z)\) in series, we define an equivalent system as \(\mathbf{P}^{(13)}(z)\) according to Eq. 45.

$$\begin{aligned} \mathbf{P}^{(13)}(z) = \mathbf{P}^{(3)}(z)\times \mathbf{P}^{(1)}(z) \end{aligned}$$
(45)
Fig. 6
figure 6

Block diagram of discrete filter used to calculate the gradient

Using Eqs. 42 and 44 it is possible to define the equivalent system \(\mathbf{P}^{(13)}(z)\) according to Eqs. 46 and 47.

(46)
(47)

The state vector is defined as \(\mathbf{w}^{(13)} \equiv [\mathbf{w}^{(1)} \ \mathbf{w}^{(3)}]^T\). Combining \(\mathbf{P}^{(2)}(z)\) in parallel to the series combination resulting in Eq. 47, the single dynamic system can be represented as Eq. 48 for \(\mathbf{P}(z)\). This dynamic system represents the discrete filter of Fig. 6.

$$\begin{aligned} \mathbf{P}(z) = \mathbf{P}^{(2)}(z)+\left[ \mathbf{P}^{(3)}(z)\times \mathbf{P}^{(1)}(z)\right] \end{aligned}$$
(48)

The corresponding state vector is defined as \(\mathbf{\!}\!{w}\! \equiv [\mathbf{w}^{(13)} \ \mathbf{w}^{(2)}]^T\). This single dynamic system, which is linear time varying, is expanded to the system described by Eqs. 50 and 49. This system is well suited for real-time application provided the apriori knowledge necessary to calculate \({{\partial {\mathbf{f}_k}}}/{{\partial {\mathbf{x}_k}}}\) and \({{\partial {\mathbf{f}_k}}}/{{\partial {\mathbf{u}_k}}}\) is available.

(49)
(50)

The \({{\partial {\mathbf{f}_k}}}/{{\partial {\mathbf{x}_k}}}\) term in Eqs. 49 and 50 involving partial derivatives of the non-linear function of Eq. 3 with respect to states and inputs represent quasi-constant transformation matrices. The partial \({{\partial {\mathbf{{f}_k}}}}/{{\partial {\mathbf{{x}}_{k}}}}\) for the 3-DOF dynamic bicycle model is quite tedious to calculate. The relevant partial derivatives, \({\partial {F_{xt}}}/{\partial {\kappa }}\), \(\partial {F_{xt}}/{\partial {\alpha }}\), \({\partial {F_{yt}}}/{\partial {\kappa }}\), \({\partial {F_{yt}}}/{\partial {\alpha }}\) are presented, for illustration, in Figs. 7 and 8.

Fig. 7
figure 7

Partial derivatives of \(F_{xt}\) with respect to slip ratio \(\kappa \) and slip angle \(\alpha \) when operating in combined mode friction regime

Fig. 8
figure 8

Partial derivatives of \(F_{yt}\) with respect to slip ratio \(\kappa \) and slip angle \(\alpha \) when operating in combined mode friction regime

3.1 Indirect adaptation law

When \(\mathbf{y}_k\), the output of the dynamic system, is defined as the longitudinal and lateral accelerations, \(\mathbf{y}_k=[\dot{v}_{x,k},\, \dot{v}_{y,k}]\) the adaptation is referred to as the indirect adaptation law. If we define the positive definite matrix \(\mathbf{Q}=\left[ \begin{array}{ccccc} q_{11}&q_{12}&;&q_{21}&q_{22}\end{array}\right] \), then Eq. 24 can be expanded and expressed as Eq. 52 for using the indirect adaptation law. To reinforce the concept of using a filter bank to determine the gradient of the dynamic system, it should be noted that the two partial derivative terms on the right-hand side of Eq. 52 are both filters. It should now be clear how the discrete filter to estimate the gradient can be used for a generic class of SISO, SIMO, MISO, and MIMO systems.

$$\begin{aligned} \frac{\partial {J}(\mathbf{u}_k)}{\partial {\mathbf{u}_k}}&= \frac{\partial {J_x}(\mathbf{u}_k)}{\partial {\mathbf{u}_k}} +\frac{\partial {J_y}(\mathbf{u}_k)}{\partial {\mathbf{u}_k}}\end{aligned}$$
(51)
$$\begin{aligned} \frac{\partial {J}(\mathbf{u}_k)}{\partial {\mathbf{u}_k}}&= \frac{\partial {\dot{v}_{x,k}}}{\partial {T_{c,k}}} \left[ q_{11}\dot{v}_{x,k} + q_{12}\dot{v}_{y,k}\right] \nonumber \\&+ \frac{\partial {\dot{v}_{y,k}}}{\partial {T_{c,k}}} \left[ q_{21}\dot{v}_{x,k} + q_{22}\dot{v}_{y,k}\right] \end{aligned}$$
(52)

3.2 Direct adaptation law

The motivation for the direct adaptation law will become clear when analyzing the results of a simulation study comparing both indirect and direct adaptation laws. The direct adaptation law is presented here for consistency and is justified later. When considering the models used in this work, the dynamic bicycle model and non-linear tire model, it is possible to define an alternative objective function. In this case, the challenge of maximizing vehicle acceleration is equivalent to maximizing the vector sum of traction forces. Therefore, the direct adaptation law is defined according to Eq. 53, where we use the sum of the squares of the forces \(\mathbf{f}=\mathbf{u'}=\left[ \begin{array}{cccc} F_{xtf}&F_{xtr}&F_{ytf}&F_{ytr} \end{array} \right] ^T\). It is important to note that each force is weighted according to the values in matrix \(\mathbf{Q}\in \mathfrak R ^{(QxQ)}\) which is constrained to be positive definite, where \(Q\) is the number of non-linear feedback terms from Eq. 9. This adaptation law is referred to as the direct adaptation law because the forces, which are essentially non-linear states, are filtered directly.

$$\begin{aligned} J_f\left( \mathbf{u}_k\right)&= \frac{1}{2}\mathbf{f}^T_k\mathbf{Q_b}\mathbf{f}_k \end{aligned}$$
(53)

The goal is still to maximize the objective function in Eq. 53. This can be accomplished using the aforementioned gradient-based adaptive algorithm of Eq. 23. To determine the gradient of Eq. 53 it is necessary to differentiate with respect to the input vector \(\mathbf{u}\). The gradient is then defined according to Eq. 55, similar to previous gradient definition but in this case the objective function has changed. As before, in order for Eq. 55 to be valid, \(\mathbf{Q}\) must be symmetric as well as positive definite.

$$\begin{aligned}&\nabla _{f,k} \equiv \frac{\partial {J(\mathbf{u}_k)}}{\partial {\mathbf{u}_k}} \end{aligned}$$
(54)
$$\begin{aligned} \frac{\partial {J(\mathbf{u}_k)}}{\partial {\mathbf{u}_k}}&= \frac{1}{2}\frac{\partial {\left( \mathbf{f}^T_k\mathbf{Q_b}\mathbf{f}_k\right) }}{\partial {\mathbf{u}_k}} \nonumber \\&= \frac{1}{2} \frac{\partial {\mathbf{f}^T_k}}{\partial {\mathbf{u}_k}}\mathbf{Q}\mathbf{y}_k +\frac{1}{2} \left( \mathbf{f}^T_k\mathbf{Q_b} \frac{\partial {\mathbf{f}_k}}{\partial {\mathbf{u}_k}}\right) ^T \nonumber \\&= \frac{\partial {\mathbf{f}^T_k}}{\partial {\mathbf{u}_k}}\mathbf{Q}\mathbf{f}_k. \end{aligned}$$
(55)

To further expand the objective function of Eq. 55 we return to Eq. 29 listed here for consistency.

$$\begin{aligned} \frac{\partial {\mathbf{f}} \left( \mathbf{y'}(z)\right) }{\partial {\mathbf{u}(z)}}&= \frac{\partial {\mathbf{f}(z)}}{\partial {\mathbf{x}(z)}} \frac{\partial {\mathbf{x}(z)}}{\partial {\mathbf{u}(z)}} \end{aligned}$$

The derivation continues, starting with Eq. 29 and continuing to the system of Eq. 42. It should be clear now that the system of Eq. 42 filters the acceleration signals, as is the case when using the objective function of Eq. 22 or the non-linear forces \(\mathbf{f}\left( \mathbf{y'}(z)\right) \) as is the case when using the objective function of Eq. 53. This should come as no surprise, as according to Newtons second law, the net force \(\mathbf{f}\left( \mathbf{y'}(z)\right) \) on a body is directly proportional to its acceleration \(\mathbf{y(z)}\). When returning to analyze the filter of Fig. 6 and Eqs. 49 and 50, it can be seen that the subsystem characterized by \(\mathbf{P}^{(3)}(z)\) and the system of Eq. 44 merely filters the gradient of the forces with respect to the inputs into the resulting gradient of the accelerations. It is also important to note that the output from the linear path \(\mathbf{P}^{(2)}(z)\) of the filter shown in Fig. 44 is always zero for the models used in this work as the acceleration \(\mathbf{y}\) is not a direct function of the input \(\mathbf{u}\), but rather, dynamically a function of \(\mathbf{u'}\) through the non-linear functions of \(\mathbf{f}\) which is captured in the \(\mathbf{P}^{(1)}(z) \rightharpoonup \mathbf{P}^{(3)}(z)\) path. In the case of the 3-DOF bicycle model the filter bank is described according to Eq. 56.

$$\begin{aligned}&\frac{\partial {J_f}(\mathbf{u}_k)}{\partial {\mathbf{u}_k}} = \nonumber \\&\left[ \begin{array}{c} \frac{\partial {f_1}}{\partial {T_{c,k}}} \left( q_{11}F_{xtf,k} + q_{12}F_{xtr,k}+q_{13}F_{ytf,k} + q_{14}F_{ytr,k}\right) \\ \frac{\partial {f_2}}{\partial {T_{c,k}}} \left( q_{21}F_{xtf,k} + q_{22}F_{xtr,k}+q_{23}F_{ytf,k} + q_{24}F_{ytr,k}\right) \\ \frac{\partial {f_3}}{\partial {T_{c,k}}} \left( q_{31}F_{xtf,k} + q_{32}F_{xtr,k}+q_{33}F_{ytf,k} + q_{34}F_{ytr,k}\right) \\ \frac{\partial {f_4}}{\partial {T_{c,k}}} \left( q_{41}F_{xtf,k} + q_{42}F_{xtr,k}+q_{43}F_{ytf,k} + q_{44}F_{ytr,k}\right) \end{array}\right] \nonumber \\ \end{aligned}$$
(56)

The direct adaptation algorithm described in this section is preferable to indirect adaptation law, as it provides greater control authority over each component of the forces using the weighting matrix \(\mathbf{Q}\). There is some additional work that is needed, however, when using this particular objective function, and that is resolving the forces back to the vehicle reference frame. This transformation is not required of the indirect adaptation law, because the derivation is done solely in the vehicle reference frame. This transformation is performed using Eqs. 57 and 58 and then the total gradient is computed by the addition of these two terms according to Eq. 59.

$$\begin{aligned} \frac{\partial {J_{fx}}}{\partial {\mathbf{u}_k}}&= \left[ \begin{array}{c} \cos (\delta _f) \\ 1 \\ -\cos (90-\delta _f) \\ 0 \end{array}\right] ^T \frac{\partial {J_f}}{\partial {\mathbf{u}_k}} \end{aligned}$$
(57)
$$\begin{aligned} \frac{\partial {J_{fy}}}{\partial {\mathbf{u}_k}}&= \left[ \begin{array}{c} \sin (\delta _f) \\ 0 \\ \sin (90-\delta _f) \\ 1 \end{array}\right] ^T \frac{\partial {J_f}}{\partial {\mathbf{u}_k}} \end{aligned}$$
(58)
$$\begin{aligned}&{\nabla _{k}} = \frac{\partial {J_{fx}}}{\partial {\mathbf{u}_k}}+\frac{\partial {J_{fy}}}{\partial {\mathbf{u}_k}} \end{aligned}$$
(59)

4 Simulation results

Maximizing longitudinal and lateral accelerations simultaneously is not trivial. The approach described in the previous section gives the driver (or another automatic control system) complete control of the steering angle, and does not attempt to prescribe requirements for path planning. The objective of this study was to maximize the vector sum of longitudinal and lateral accelerations, and evaluate the performance at a series of fixed steering inputs. A total of three circular driving maneuvers were analyzed. The control algorithm is limited to regulating the engine output to maximize the vector sum of accelerations. The three driving scenarios studied are outlined in Table 1.

Table 1 Driving scenarios

The model parameters for the 3-DOF bicycle model used in this simulation study are presented in Table 2, while the control gains for both the indirect and direct adaptation laws are presented in Table 3

Table 2 Model parameters
Table 3 Control parameters

4.1 Indirect adaptation law

The simulations in this section were performed for the 3-DOF bicycle model using values from Tables 2 and 3. When using this algorithm a slight modification to the update law of Eq. 23 is necessary. This modification is performed according to Eq. 60, which is similar to the signed regressor algorithm used in the signal processing community [29].

$$\begin{aligned}&u_{k+1} = u_{k} + \mu \times \left\{ \begin{array}{c} {\nabla _{f,k} } \\ {-\eta } \end{array}\right. \begin{array}{c} {\frac{\partial {J_{fx})}}{\partial {\mathbf{u}_k}} >0} \; and \; {\frac{\partial {J_{fy}}}{\partial {\mathbf{u}_k}} >0} \\ {\frac{\partial {J_{fx}}}{\partial {\mathbf{u}_k}} <0} \; or \; {\frac{\partial {J_{fy}}}{\partial {\mathbf{u}_k}} <0} \end{array} \nonumber \\ \end{aligned}$$
(60)

The weighting matrix used in these four simulations is defined according to Table 3. The position results for three of the four simulations, presented in Fig. 9, show exactly what would be expected as steering angle is increased; the circular path of the vehicle decreases in radius. This is a direct result of the effects of slip in generating longitudinal and lateral forces; a larger steering angle will cause a faster buildup in the front slip angle \(\alpha _f\) and corresponding lateralforce \(F_{ytr}\).

Fig. 9
figure 9

Position results for Scenarios 2–4 from Table 1 using the Indirect Adaptation Law

The velocity and acceleration results, presented in Fig. 10, show two distinct regions in the time domain. The first region in all of the simulations is the transient region where the acceleration builds up to an asymptotic limit. The second region shows that the algorithm tracks this limit. In the case of the bicycle model this asymptotic limit changes as a function of the viscous drag in the undriven wheel. This is exactly what is expected of the algorithm with respect to longitudinal motion. However, what is not expected is the fact that for the simulation where \(\delta _f=40^\circ \), the front slip angle \(\alpha _f\) exceeds the value at which the peak lateral force is achieved which is approximately \(8-10^\circ \). The existence of a peak lateral force can be reinforced by referring back to Fig. 2. Figure 11a–d presents the slip ratios and slip angles of all simulations for comparison. It can readily be seen that the algorithm converges to the value at which the rear slip ratio creates the peak longitudinal force in Fig. 11b. This is not true for either the front slip angle \(\alpha _f\) or the rear slip angle \(\alpha _r\) shown in Fig. 11c, d.

Fig. 10
figure 10

Velocity (\(\mathbf{v}_{k}\)) and acceleration (\(\mathbf{a}_{k}\)) results for Scenarios 1–4 from Table 1 using the Indirect Adaptation Law

Fig. 11
figure 11

Slip ratio (\(\kappa \)) and slip angle (\(\alpha \)) results for Scenarios 1–4 from Table 1 using the Indirect Adaptation Law

The cause of this is two fold. The dominant partial derivative in the gradient filter is \({\partial {F_{xtr}}}/{\partial {\kappa _r}}\) and this partial derivative is embedded in the state equation of the filter and is not easily isolated by the weighting matrix \(\mathbf{Q}\). This functional dependence can be seen explicitly when looking at the continuous time representation of the gradient filter. Additionally, the relative magnitudes are drastically different when the slip ratio or slip angle at which the peak tractive force is achieved and exceeded, and is the motivation for using a signed regressor in the update law of Eq. 60. Although not stated at the time, this can be seen by returning to Figs. 1 and 8. This also suggests that if your goal is to maximize the vector sum of accelerations, then a valid solution may be to continue to increase the control torque despite the fact that one or more of the optimal slip ratios or slip angles have been exceeded. This is an interesting observation as it suggests that maximizing the vector sum of accelerations does not always imply that the algorithm converges on the optimal slip ratios or slip angles simultaneously.

This conclusion is further supported by Fig. 12a–c where the longitudinal component of the gradient of \(J_{k,x}\) is dominated by the partial derivatives of the rear wheel, while the lateral component seems to suggest that the only way to increase the acceleration is to decrease throttle. Regardless of potential changes in the weighting matrix the lateral component of the gradient filter itself retains this behavior due to the mismatch in partial derivative magnitudes.

Fig. 12
figure 12

Gradient (\(\nabla _{f}\), \(J_{fx}\) and \(J_{fy}\)) results for Scenarios 1–4 from Table 1 using the Indirect Adaptation Law

The control input is presented in Fig. 12d. The control torque \(T_c\) displays the same two regions that were pointed out in the acceleration results. The first region in all of the simulations is the region where the control torque builds up to an asymptotic limit at which peak acceleration is achieved, while the second region shows that the algorithm tracks this limit.

For the purpose of comparing the indirect algorithm with the direct algorithm and to reinforce the claim that the peak lateral force is not being achieved, Fig. 13 is presented. Figure 13c, d shows that the peak lateral force for the front tire is exceeded for the simulation in which \(\delta _f=40^\circ \) and the peak lateral force for the rear tire is never achieved. All of the simulations track the peak longitudinal force quite nicely as shown in Fig. 13b.

Fig. 13
figure 13

Tractive force (\(F_{xt}\) and \(F_{yt}\)) results for Scenarios 1–4 from Table 1 using the Indirect Adaptation Law

The behavior that has been demonstrated in these results, specifically exceeding the slip angle at which the peak lateral force is achieved for the front tire, should be seen as a function of the physical system and not a failure of the algorithm itself. No effort was made in this work to determine the true optimal path and subsequent realizable forces necessary to produce maximum lateral and longitudinal accelerations and in some cases the behavior of the indirect adaptation law may be desirable. This point will be further discussed as part of the conclusions. The results of indirect adaptation algorithm, mainly the fact that the algorithm will result in slip angles that exceed the value at which the peak lateral force of the front tire is achieved, were the motivation for the direct adaptation law.

4.2 Direct adaptation law

Simulations using the driving scenarios defined according to Table 1 were performed using the direct adaptation law as well. As was the case in the previous section, the model parameters and control gains were defined according to Tables 2 and 3. The update law of Eq. 60, using the signed regressor, remains unchanged as well. It is important to note that if either \({\partial {J_{fx}(\mathbf{u}_k)}}/{\partial {\mathbf{u}_k}}\) or \({\partial {J_{fy}(\mathbf{u}_k)}}/{\partial {\mathbf{u}_k}}\) is negative then the control input \(T_c\) is reduced. This was done by design, to ensure that the algorithm does not command the vehicle to excessively overshoot the peak slip ratios \(\kappa ^*\) or slip angles \(\alpha ^*\). This also opens the door to investigating the optimal control settings for a variety of paths, which this work does not address explicitly but is an interesting area of future research. The position results for these simulations are presented in Fig. 14, with the exception of the case where \(\delta _f=0^\circ \). The position results are rather intuitive, as the steering angle \(\delta _f\) increases the vehicle converges to a path of decreasing radius.

Fig. 14
figure 14

Position results for Scenarios 2–4 from Table 1 using the Direct Adaptation Law

Somewhat more informative are the velocity and acceleration results of Fig. 15, where all four sets of results display two distinct regions in the results: a build up to maximum longitudinal acceleration for \(0<t<1\; sec\) and a tracking of the peak acceleration for \(1<t<20\; sec\).

Fig. 15
figure 15

Velocity (\(\mathbf{v}_{k}\)) and acceleration (\(\mathbf{a}_{k}\)) results for Scenarios 1–4 from Table 1 using the Direct Adaptation Law

The most informative results are slip ratios \(\kappa \) and slip angles \(\alpha \) presented in Fig. 16. It can be seen from Fig. 16(c) and 18(c) that the only simulation to reach the slip angle at which the maximum lateral force is achieved was when \(\delta _f=40^\circ \). There is little difference in the remainder of the simulations as the control input \(T_c\) is dominated by the longitudinal forces and accelerations. However, the competing behavior of maximizing both longitudinal acceleration and lateral accelerations is demonstrated for the case when \(\delta _f=40^\circ \). The rear slip ratio \(\kappa _r\) in Fig. 16 is actually being regulated to a value that is less than the value at which the maximum longitudinal force is created, and this is due to the fact that the front slip angle \(\alpha _f\) is tracking the value at which the peak lateral force is created. Careful analysis of the behavior of both of these signals compared to that of the simulations in this section suggests a slower system response when considering the lateral force \(F_{ytf}\) and \(F_{ytr}\) output relative to the control input \(T_c\), while the longitudinal force \(F_{xtr}\) displays a much quicker response to the control input \(T_c\). This makes sense intuitively because the time required to build up a significant longitudinal force in a vehicle is significantly less than that required to build up a significant lateral force when limited to controlling only the input torque \(T_c\). These results also show that the ability of the direct algorithm to isolate both the longitudinal and lateral motion is superior to that of the indirect algorithm.

Fig. 16
figure 16

Slip ratio (\(\kappa \)) and slip angle (\(\alpha \)) results for Scenarios 1–4 from Table 1 using the Direct Adaptation Law

The results of the individual components of Eq. 59 are presented in Fig. 17a–c.

Fig. 17
figure 17

Gradient (\(\nabla _{f}\), \(J_{fx}\) and \(J_{fy}\)) results for Scenarios 1–4 from Table 1 using the Direct Adaptation Law

For consistency the control input \(T_c\) is presented alongside the specified steering angle \(\delta _f\) in Fig. 17d. The same two regions prevalent in all the results can be seen readily in this data as well; transient buildup to peak acceleration, and tracking of that peak acceleration. The forces, which will be estimated in subsequent Chapters are shown here to reinforce the two separate but distinct regions. All the simulations presented here reach the peak longitudinal force for \(F_{xtr}\) while only one simulation, \(\delta _f=40^\circ \) reaches the peak lateral force. Provided the other simulations were allowed to continue past 20 s they too would be expected to reach this asymptotic limit as well (Fig. 18).

Fig. 18
figure 18

Tractive force (\(F_{xt}\) and \(F_{yt}\)) results for Scenarios 1–4 from Table 1 using the Direct Adaptation Law

5 Conclusions

The algorithms in this work have been demonstrated to maximize both longitudinal and lateral accelerations both simultaneously and selectively. This work did not explicitly address the challenge of path planning as the driving scenarios selected for simulation can be considered as the primitives of vehicle motion. In other words, the majority of driving scenarios can be characterized as a linear combination of the driving scenarios present in this work. The results of the indirect adaptation law suggest that maximum acceleration is not necessarily achieved by tracking the peak tractive forces of all the tires simultaneously. Meanwhile, the direct adaptation algorithm demonstrated the ability to have a greater ability to maximize individual tire forces selectively. These two key behaviors suggest that the indirect algorithm may be better suited for situations where performance is the primary objective. The direct adaptation algorithm would seem to provide advantages when it is necessary to selectively maximize tire forces, or more specifically, prevent excessive slip from building up in individual tires. Nonetheless, both algorithms proved to be able to successfully maximize vehicle acceleration simultaneously or individual tire forces selectively, and should be considered as a significant advantage compared to traditional traction control algorithms.