1 Introduction

With the sustainable vehicle demand increasing, traffic congestion has become a worldwide issue over the past decades [1]. Numerous techniques have been proposed to resolve this issue, such as connected and automated vehicle and intelligent transportation system. Among them, the vehicle platooning, the organization of the vehicles drive at a harmonized speed, is recognized as one of the promising techniques to improve the driving safety and road capacity simultaneously [2, 3].

Most vehicle platoon researches focus on the system stability study to prevent the amplification of errors when propagated downstream along the platoon. Researchers investigate the platoon stability performance from multiple aspects, such as control strategies [4,5,6], information flow topology [7,8,9] and communication delay [10,11,12]. Compared to the platoon stability study, the platoon formation control may be more important, as the basis of the vehicle platoon. Due to the complicated traffic conditions and mostly conflicting vehicles, the platoon formation problem is not easy to solve. Some multi-agent control algorithms have been introduced to describe the relations between vehicles. The flocking is one of them [13], which accords with the Reynolds three laws [14].

In the last few years, there are several distributed flocking control strategies proposed. In Ref. [15], the flocking algorithm was used to organize a stable vehicle platoon by executing the path generation and crash avoidance, etc. Liu proposed two distributed control protocols: one for lane-following and another for braking, to achieve stable path following control with safe inter-vehicle spacing [16]. Although researchers have made a lot of efforts to achieve stable platoon formation, there are still some research gaps. First, most studies adopt the simple kinematic vehicle model. When the velocity is high or steering angles appear steep, the kinematic model cannot predict the vehicle motion anymore, which may cause vehicle instability. Thus, vehicle dynamics model is required. Second, the parameter uncertainties, such as the tire cornering stiffness, may affect the procedure of the platoon formation. Hence, the robustness of the proposed controller should be considered.

The parameter uncertainties have been widely investigated in vehicle stability control studies. The tire cornering stiffness is a typical uncertain parameter. It becomes nonlinear when the vehicle is turning at high speeds. One method to capture the nonlinear feature is using the on-board sensors [17] or designing a parameter estimator [18]. However, it is difficult to obtain the accurate tire cornering stiffness in real time. Another approach is alleviating the influence of the parameter uncertainties by designing a robust controller. Du and Jin both used the \(H_\infty\) method to reduce the parameters uncertainties of tire cornering stiffness, rotational inertia and vehicle mass [19, 20]. In addition, the robust control can achieve stable vehicle operation even when the perturbations are not modeled [21]. Even though the robust controller could achieve stable vehicle control with parameter uncertainties and disturbances, it may suffer some issues. In Ref. [19], the adopted actuator saturation function of \(H_\infty\) control caused continuous control input increasing, which results in redundant energy consumption and system oscillation.

Therefore, in this paper, a cooperative vehicle control framework is proposed to achieve safe and stable platoon formation, which is composed of the planning level and tracking level. In the planning level, the trajectory of each vehicle is planned by using the flocking algorithm; the lower level is responsible for tracking the derived trajectory using the robust model predictive control (RMPC). The main contributions of this paper are twofold. First, the vehicle dynamics constraints are introduced to the multi-vehicle formation control problem by establishing the stability boundaries. The flocking algorithm is used to generate the stable and trackable references for each vehicle. Second, a lumped disturbance observer is established to gain the stable-state reference target vector, and a novel offset-free RMPC is proposed to achieve the accurate tracking performance while weakening the effects of the uncertainty of tire cornering stiffness and external disturbances.

The remainder of this paper is organized as follows: The multi-objective flocking algorithm is introduced in Sect. 2. Section 3 presents two vehicle models. The cooperative vehicle control framework is designed in Sect. 4 for the platoon formation. Simulation results and discussion are presented in Sect. 5. Section 6 concludes this paper and presents future work.

2 Fundamental of Flocking Algorithm

2.1 Definitions and Lemmas

Lemma 1

(see [22]) Hypothesize \({{\varvec{M}}}={{{\varvec{M}}}^{\mathrm{T}}}\), \({{\varvec{S}}}\), \({{\varvec{N}}}\) and \({{\varvec{\Delta }} } (t)\) are real matrices with the suitable dimensions. The inequality

$$\begin{aligned} {{\varvec{M}}} + {{\varvec{S}}}{{\varvec{\Delta }}} \left( t \right) {{\varvec{N}}} + {{{\varvec{N}}}^{\mathrm{T}}}{{\varvec{\Delta }}^{\mathrm{T}}}\left( t \right)\; {{{\varvec{S}}}^{\mathrm{T}}} < 0 \end{aligned}$$
(1)

holds for all \({{\varvec{\Delta }} ^{\mathrm{T}}}\left( t \right) {\varvec{\Delta }} \left( t \right) \le {{\varvec{I}}}\) if and only if there exists a positive real number \(\varpi\) with such that

$$\begin{aligned} {{\varvec{M}}} + \varpi {{\varvec{S}}}{{{\varvec{S}}}^{\mathrm{T}}} + {\varpi ^{ - 1}}{{{\varvec{N}}}^{\mathrm{T}}}{{\varvec{N}}} < 0 \end{aligned}$$
(2)

Lemma 2

(see [23]) Consider a discrete-time disturbance dynamic system described by the equations

$$\begin{aligned} \begin{aligned} {{{\varvec{x}}}_{k + 1}}&= {{\varvec{A}}}{{{\varvec{x}}}_k} + {{\varvec{B}}}{{{\varvec{u}}}_k} + {{\varvec{E}}}{{{\varvec{d}}}_k}, \qquad k=1,2,\ldots \\ {{{\varvec{y}}}_k}&= {{\varvec{C}}}{{{\varvec{x}}}_k} \end{aligned} \end{aligned}$$
(3)

in which \({{\varvec{x}}} \in \mathbf{R ^n}\) is the state of the system, \({{\varvec{y}}} \in \mathbf{R ^l}\) is the output or measured variable, \({{\varvec{u}}} \in \mathbf{R ^m}\) is the input or manipulated variable, and \({{\varvec{d}}} \in \mathbf{R ^{s_d}}\) is the state disturbance or model error. Based on the system, if the output disturbance model can be represented by the following augmented state-space model

$$\begin{aligned} \begin{aligned} {\tilde{{{\varvec{x}}}}_{k + 1}}&= \tilde{{{\varvec{A}}}}{\tilde{{{\varvec{x}}}}_k} + \tilde{{{\varvec{B}}}}{\tilde{{{\varvec{u}}}}_k} \\ {\tilde{{{\varvec{y}}}}_k}&=\tilde{{{\varvec{C}}}}{\tilde{{{\varvec{x}}}}_k} \end{aligned} \end{aligned}$$
(4)

where \({\tilde{{{\varvec{x}}}}_k} = \left[ {\begin{array}{*{20}{c}} {{{{\varvec{x}}}_k}}\\ {{{{\varvec{d}}}_k}} \end{array}} \right]\), \(\tilde{{{\varvec{A}}}} = \left[ {\begin{array}{*{20}{c}} {{\varvec{A}}}&{}{{\varvec{E}}}\\ {{\varvec{0}}}&{}{{\varvec{I}}} \end{array}} \right]\), \(\tilde{{{\varvec{B}}}} = \left[ {\begin{array}{*{20}{c}} {{\varvec{B}}}\\ {{\varvec{0}}} \end{array}} \right]\), \(\tilde{{{\varvec{C}}}} = \left[ {\begin{array}{*{20}{c}} {{\varvec{C}}}&{{\varvec{0}}} \end{array}} \right]\), the augmented system (\(\tilde{{{\varvec{C}}}}\), \(\tilde{{{\varvec{A}}}}\)) is detectable if and only if (\({{\varvec{C}}}\), \({{\varvec{A}}}\)) detectable and

$$\begin{aligned} \text{Rank}\left[ {\begin{array}{*{20}{c}} {({{\varvec{I}}} - {{\varvec{A}}})}&{}{ - {{\varvec{E}}}}\\ {{\varvec{C}}}&{}{{\varvec{0}}} \end{array}} \right] = n + {s_d} \end{aligned}$$
(5)

2.2 Flocking Algorithm for Multi-agent System

For a group consisted by \({\mathcal {N}}\) agents, the dynamic model of each agent can be written as

$$\begin{aligned} \left\{ {\begin{array}{*{20}{c}} {{\dot{{{\varvec{q}}}_i}} = {\dot{ {{\varvec{p}}}_i}}}\\ {{{\dot{{{\varvec{p}}}}}_i} = {{\varvec{{\mathcal {U}}}}_i}} \end{array}} \right. \quad i=1,2,\ldots , {\mathcal {N}} \end{aligned}$$
(6)

where \({{\varvec{q}}}_i\), \({{\varvec{p}}}_i \in {\mathbb {R}}^m\) are the position and velocity vectors of agent i, respectively, and \({\varvec{{\mathcal {U}}}}_i \in {\mathbb {R}}^n\) is the control input of agent i. If its neighboring set can be expressed as

$$\begin{aligned} {{\varvec{N}}}_i^t = \left\{ {j:\parallel {{{\varvec{q}}}_i} - {{{\varvec{q}}}_j}{\parallel _\sigma } < {r_\sigma },j = 1,2,\ldots ,{\mathcal {N}},j \ne i} \right\} \end{aligned}$$
(7)

where \({\parallel \cdot \parallel }_\sigma\) is a special norm, which is defined as

$$\begin{aligned} \parallel {{\varvec{z}}}{\parallel _\sigma } = \frac{1}{\varepsilon }\left[ {\sqrt{1 + \varepsilon \parallel {{\varvec{z}}}{\parallel ^2}} - 1} \right] \end{aligned}$$
(8)

with the mapping \({{\mathbb {R}}^n} \rightarrow {{\mathbb {R}}^ + }\) and parameter \(\varepsilon > 0\).

The multi-objective flocking algorithm for a group of agents forming a platoon is expressed by Eqs. (9) and (10) with navigational agents, whose states are \(\left( {{{{\hat{q}}}_i},{{{\hat{p}}}_i}} \right)\).

$$\begin{aligned} {{\varvec{{\mathcal {U}}}}_i} = f_i^\alpha + f_i^{\text r} \end{aligned}$$
(9)

where

$$\begin{aligned} f_i^\alpha& = \sum \limits _{j \in N_i^t} {{\phi _\alpha }\left( {\parallel {{{\varvec{q}}}_j} - {{{\varvec{q}}}_i}{\parallel _\sigma }} \right) {{{\varvec{n}}}_{ij}} + \sum \limits _{j \in N_i^t} {{a_{ij}}\left( {{{{\varvec{p}}}_j} - {{{\varvec{p}}}_i}} \right) } } \end{aligned}$$
(10a)
$$\begin{aligned} f_i^{\text{r}}& = - c_1^{\text{r}} \left( {{{{\varvec{q}}}_i} - {\hat{{{\varvec{q}}}}_i}} \right) - c_2^{\text{r}} \left( {{{{\varvec{p}}}_i} - {\hat{{{\varvec{p}}}}_i}} \right) , \quad c_k^{\text{r}} \in {R^ + },\quad k = 1,2\end{aligned}$$
(10b)
$$\begin{aligned} {{{\varvec{n}}}_{ij}}& = {{\left( {{{{\varvec{q}}}_j} - {{{\varvec{q}}}_i}} \right) } \Big / {\sqrt{1 + \varepsilon \parallel {{{\varvec{q}}}_j} - {{{\varvec{q}}}_i}{\parallel ^2}} }} \end{aligned}$$
(10c)
$$\begin{aligned} {\phi _\alpha }(z)& = {\rho _\text{h}}({z / {{r_\alpha }}})\phi (z - {d_\alpha })\end{aligned}$$
(10d)
$$\begin{aligned} \phi (z)& = \frac{1}{2}\left[ {\left( {{\mathcal {G}}_a + {\mathcal {G}}_b} \right) {\sigma _1}(z + {\mathcal {G}}_c) + ({\mathcal {G}}_a - {\mathcal {G}}_b)} \right] \end{aligned}$$
(10e)
$$\begin{aligned} {\rho _{\text{h}}}(z)& = \left\{ {\begin{array}{*{20}{l}} {1, \qquad \qquad \qquad \qquad \ \quad z \in \left[ {0,{\mathcal {G}}_{\text{h}}} \right] }\\ {\frac{1}{2}\left[ {1 + \cos \left( {\pi \frac{{z - {\mathcal {G}}_{\text{h}}}}{{1 - {\mathcal {G}}_{\text{h}}}}} \right) } \right] , \qquad z \in \left[ {{\mathcal {G}}_{\text{h}},1} \right] }\\ {0, \qquad \qquad \qquad \qquad \ \quad \hbox {otherwise}} \end{array}} \right. \end{aligned}$$
(10f)
$$\begin{aligned} {a_{ij}}(q)& = {\rho _{\text{h}}}\left( {{{\parallel {{{\varvec{q}}}_j} - {{{\varvec{q}}}_i}{\parallel _\sigma }} / {{r_\alpha }}}} \right) \in \left[ {0,1} \right] ,\quad j \ne i \end{aligned}$$
(10g)

In Eq. (6), \(f_i^\alpha\) is used to regulate the position between agent i and its neighbors such that the collision between each other can be avoided and the cohesion is maintained in a group; \(f_i^{\text{r}}\) is responsible for navigational feedback; \({n_{ij}}\) is a direction vector along agent i to agent j; \({\phi _\alpha }\left( \cdot \right)\) is the dual power which is derived from the interaction of molecules; \({\phi }(\cdot )\) is an uneven sigmoidal equation with parameters that satisfy \(0 < {\mathcal {G}}_a \le {\mathcal {G}}_b\) and \({\mathcal {G}}_c = {{\left| {{\mathcal {G}}_a - {\mathcal {G}}_b} \right| } / {\sqrt{4{\mathcal {G}}_a {\mathcal {G}}_b} }}\); \({\rho _h}(\cdot )\) is a bump equation to construct the smooth potential equations with finite cut-offs; and \({a_{ij}}(\cdot )\) is the elements of adjacency matrix of agent group.

3 Vehicle Modeling

3.1 Partially Linear Kinematic Model

Suppose the vehicle is turned by front wheel steering structure and the slip angle \(\beta\) is small, the vehicle kinematic can be expressed by:

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {\dot{X} = v\cos \theta }\\ {\dot{Y} = v\sin \theta }\\ {{\dot{\theta }} = \gamma } \end{array}} \right. \end{aligned}$$
(11)

where (XY) is the global coordinates of mass center; v is the velocity; \(\theta\) is the heading angle; and \(\gamma\) is the yaw rate. In system (11), if the \({\left[ {X,Y,\theta } \right] ^{\mathrm{T}}}\) is the states of system, \({\left[ {v,\gamma } \right] ^{\mathrm{T}}}\) can be regarded as the input.

Since the system in flocking algorithm is modeled by point-mass as Eq. (6), it is indispensable to linearize the vehicle kinematic model (11) to design the flocking based controller. Here, the near-identity diffeomorphism is used to realize the linearization. In accordance with [24], the transformation can be described as

$$\begin{aligned} {{{\varvec{S}}}}=\tilde{{{\varvec{X}}}}+\lambda \left( {{\varvec{R}}}{{\varvec{e}}}_1 \right) \end{aligned}$$
(12)

where \(\tilde{{{\varvec{X}}}}={\left[ {X,Y} \right] ^{\mathrm{T}}}\), \({{\varvec{R}}}={\left[ {\begin{array}{*{20}{c}} {\cos \theta }&{}{ - \sin \theta }\\ {\sin \theta }&{}{\cos \theta } \end{array}} \right] ^{\mathrm{T}}}\), \({{\varvec{e}}}_1=[1,0]^{\mathrm{T}}\), \(\lambda = \left\{ {\lambda \left| {\lambda \in {\mathbb {R}},0< \lambda < 1} \right. } \right\}\).

Substituting Eq. (12) into Eq. (11), a new partially linear system about kinematic model is obtainable as follows:

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {\dot{{\varvec{S}}} = {\varvec{W}}}\\ {\dot{{\varvec{W}}} = {{\varvec{\eta }}} }\\ {\dot{{\varvec{R}}} = {{\varvec{R}}} \hat{{\varvec{\gamma }}}}\\ {{\dot{\gamma }} = {{\varvec{e}}}_2^{\mathrm{T}}{{\varvec{u}}} = {{\varvec{e}}}_2^{\mathrm{T}}{{\varvec{R}}}_\lambda ^{ - 1}{\varvec{\eta }} \displaystyle - \frac{{v\gamma }}{\lambda }} \end{array}} \right. \end{aligned}$$
(13)

where \({{\varvec{S}}}\), \({{\varvec{W}}}\) are the states of new system, corresponding to the \(\tilde{{\varvec{X}}}\) and \([v,\gamma ]^{\mathrm{T}}\), \(\eta\) is the input of new system, \({{\varvec{e}}}_2=[0,1]^{\mathrm{T}}\), \({{\varvec{R}}}_{\lambda }={\left[ {\begin{array}{*{20}{c}} {\cos \theta }&{}{ -\lambda \sin \theta }\\ {\sin \theta }&{}{\lambda \cos \theta } \end{array}} \right] ^{\mathrm{T}}}\), \(\hat{{\varvec{\gamma }}}={\left[ {\begin{array}{*{20}{c}} {0 }&{}{-\gamma }\\ {\gamma }&{}{0} \end{array}} \right] ^{\mathrm{T}}}\). Furthermore, the input derivatives of system (11) \(\vartheta\) can be expressed as

$$\begin{aligned} \begin{aligned} {\varvec{\vartheta }}&= {{\varvec{R}}}_\lambda ^{ - 1}{{\varvec{\eta }}} - {{\varvec{R}}}_\lambda ^{ - 1}{{\varvec{R}}}{[\lambda {\gamma ^2},v\gamma ]^{\mathrm{T}}} \\&={{\varvec{R}}}_\lambda ^{ - 1}{{\varvec{\eta }}} +\left[ {\begin{array}{*{20}{c}} {\lambda {\gamma ^2}}\\ \displaystyle {\frac{{ - v\gamma }}{\lambda }} \end{array}} \right] \end{aligned} \end{aligned}$$
(14)

Then, if \({{\varvec{\vartheta }}}={\tilde{f}}(\theta ,v,\gamma ,\eta ,\lambda )\), \({\varvec{{\mathcal {I}}}}=[v,\gamma ]^{{T}}\) and T is interval, the yaw rate and longitudinal velocity of vehicular kinematic model at time \(k+1\) can be obtained by Eq. (15) using the Euler method.

$$\begin{aligned} \begin{aligned} {\varvec{{\mathcal {I}}}} \left( {k + 1} \right)&= {\varvec{{\mathcal {I}}}} \left( k \right) + T{\tilde{f}}\left( {\theta (k),v(k),\gamma (k),\eta (k), \lambda (k)} \right) \\&=\left[ {\begin{array}{*{20}{c}} {v(k)}\\ {\gamma (k)} \end{array}} \right] + T\left[ {\begin{array}{*{20}{c}} {\vartheta _1(k)}\\ {\vartheta _2(k)} \end{array}} \right] \end{aligned} \end{aligned}$$
(15)

where \(\vartheta _1(k)\), \(\vartheta _2(k)\) are, respectively, the first and second elements of \({\varvec{\vartheta }}\) at time k.

In Eq. (13), the first two terms, i.e., \(({{\varvec{S}}},{{\varvec{W}}})\), constitute a point-mass subsystem. By using the multi-objective flocking algorithm in Section II, the inputs of this subsystem, \({\varvec{\eta }}\), can be obtained. In addition, the inputs of the original kinematic model (11) can also be calculated by following Eqs. (14) and (15) to form a vehicle platoon.

3.2 Vehicle Dynamic Model with Uncertain Disturbance

This paper focuses on the longitudinal and lateral vehicle dynamics. It is assumed that the road is flat, the tires do not have longitudinal slip, and the vehicle mass is allocated to four wheels evenly. The coordinates and symbols of the vehicle dynamic model are illustrated in Fig. 1, where (XY) are the global coordinates. CM is the vehicle barycenter; \(l_{\text t}\) is the wheel tread; \(F_{xi}\) and \(F_{yi}\) are, respectively, the longitudinal and lateral tire forces, where \(i = 1,2,3,4\) is the left-front, left-rear, right-rear, and right-front wheels; \(l_{\mathrm{f}}\) and \(l_{\mathrm{r}}\) are the distances of front and rear axles to CM, respectively; \(\delta\) is front steering angle; \(\gamma\) is the yaw rate; \(\alpha\) is the tire slip angle; \(F_X\) and \(F_Y\) are the longitudinal and lateral force of CM, respectively.

Fig. 1
figure 1

Schematic diagram of vehicle dynamic model

When the steering angle is small, the dynamics of the vehicle can be expressed by:

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{{\dot{v}}_x} = {v_y}\gamma + \displaystyle \frac{1}{M}({F_X} - {F_\text{R}})}\\ {{{\dot{v}}_y} = - {v_x}\gamma + \displaystyle \frac{1}{M}{F_Y}}\\ {{\dot{\gamma }} = \displaystyle \frac{1}{{{I_z}}}\left( {{M_{zx}} + {M_{zy}}} \right) } \end{array}} \right. \end{aligned}$$
(16)

where \(F_\text{R}\) is the longitudinal resistance; M and \(I_z\) are, respectively, the vehicle mass and the moment of inertia;

$$\begin{aligned} {F_X}& = \left( {{F_{x1}} + {F_{x4}}} \right) - \left( {{F_{y1}} + {F_{y4}}} \right) \delta + {F_{x3}} + {F_{x2}} \end{aligned}$$
(17a)
$$\begin{aligned} {F_Y}& = \left( {{F_{x1}} + {F_{x4}}} \right) \delta + \left( {{F_{y1}} + {F_{y4}}} \right) + {F_{y3}} + {F_{y2}}\end{aligned}$$
(17b)
$$\begin{aligned} {F_{\text{R}}}& = {C_\text {a}}v_x^2\end{aligned}$$
(17c)
$$\begin{aligned} {M_{zx}}& = \frac{{{l_{\text{t}}}}}{2}\left( {{F_{x4}} - {F_{x1}} + \left( {{F_{y1}} - {F_{y4}}} \right) \delta + {F_{x3}} - {F_{x2}}} \right) \end{aligned}$$
(17d)
$$\begin{aligned} {M_{zy}}& = {l_{\mathrm{f}}}\left( {\left( {{F_{x1}} + {F_{x4}}} \right) \delta + {F_{y1}} + {F_{y4}}} \right) - {l_{\mathrm{r}}}\left( {{F_{y2}} + {F_{y3}}} \right) \end{aligned}$$
(17e)
$$\begin{aligned} {F_{y\mathrm{f}}}& = \left( {{F_{x1}} + {F_{x4}}} \right) \delta + \left( {{F_{y1}} + {F_{y4}}} \right) \end{aligned}$$
(17f)
$$\begin{aligned} {F_{y\mathrm{r}}}& = {F_{y2}} + {F_{y3}}\end{aligned}$$
(17g)
$$\begin{aligned} {F_{x\mathrm{f}}}& = {F_{x1}} - {F_{y1}}\delta + {F_{x2}}\end{aligned}$$
(17h)
$$\begin{aligned} {F_{x\mathrm{r}}}& = {F_{x4}} - {F_{y4}}\delta + {F_{x3}} \end{aligned}$$
(17i)

In Eq. (17), \(C_{\text a}\) is the air resistance coefficient; and \(M_{zx}\) and \(M_{zy}\) are, respectively, the yawing moments generate by the longitudinal and lateral tire forces. If the tire slip angles are small, the lateral tire forces can be approximated as

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{F_{ym}} = {C_{\mathrm{f}}}\left[ {\delta - \displaystyle \frac{1}{{{v_x}}}\left( {\gamma {l_{\mathrm{f}}} + {v_y}} \right) } \right] , \qquad m = 1,4}\\ {{F_{yn}} = \displaystyle \frac{{{C_{\mathrm{r}}}}}{{{v_x}}}\left( {{v_y} - \gamma {l_{\mathrm{r}}}} \right) , \qquad \qquad \qquad \ \; n = 2,3} \end{array}} \right. \end{aligned}$$
(18)

where \(C_{\mathrm{f}}\) and \(C_{\mathrm{r}}\) are the cornering stiffness of front and rear tires, respectively.

\({{\varvec{\xi }}} = {\left[ {{v_x},{v_y},{\gamma _k}} \right] ^{\mathrm{T}}}\) and \({{\varvec{U}}} = [ \delta ,{F_{x1}},{F_{x2}},\)\({F_{x3}},{F_{x4}} ]^{\mathrm{T}}\) are the state and inputs of vehicle system. If the reference state \({\tilde{{\varvec{\xi }}}}_k = [ {{{{\tilde{v}}}}_{x,k},{{{\tilde{v}}}}_{y,k},{{\tilde{\gamma }} }_k}]^{\mathrm{T}}\) and input \({\tilde{{\varvec{U}}}}_k =[{{\tilde{\delta }} }_k,{{{\tilde{F}}}}_{x1,k},\)\({{{\tilde{F}}}}_{x2,k},{{{\tilde{F}}}}_{x3,k},{{{\tilde{F}}}}_{x4,k}]^{\mathrm{T}}\) at time k are given, the linear model of the vehicle dynamic system is as follows:

$$\begin{aligned} {{\bar{{\varvec{\xi }}}}_{k + 1}} ={{\varvec{A}}}_k{{{\bar{\xi }} }_k} + {{\varvec{B}}}_k{{\bar{{{\varvec{U}}}}}_k} \end{aligned}$$
(19)

where \({\bar{{\varvec{\xi }}}}_k = {{{\varvec{\xi }}} _k} - {{\tilde{{\varvec{\xi }}} }_k}\); \({{\bar{{{\varvec{U}}}}}_k} = {{{\varvec{U}}}_k} - {{\tilde{{{\varvec{U}}}}}_k}\);

$$\begin{aligned} {{{\varvec{A}}}_k}& = \left[ {\begin{array}{*{20}{c}} {{a_1}}&\;{}{T\left( {{{{\tilde{\gamma }} }_k} + \displaystyle \frac{{2{ C_{\mathrm{f}}}{{{\tilde{\delta }} }_k}}}{{M{{{{\tilde{v}}}}_{x,k}}}}} \right) }&\;{}{T\left( {{{{{\tilde{v}}}}_{y,k}} + \displaystyle \frac{{2{ C_{\mathrm{f}}}{l_{\mathrm{f}}}{{{\tilde{\delta }} }_k}}}{{M{{{{\tilde{v}}}}_{x,k}}}}} \right) }\\ {{a_2}}&\;{}{1 - \displaystyle \frac{{2T\left( {{ C_{\mathrm{f}}} - { C_{\mathrm{r}}}} \right) }}{{M{{{{\tilde{v}}}}_{x,k}}}}}&\;{}{ - {{{{\tilde{v}}}}_{x,k}}T - \displaystyle \frac{{2T\left( {{ C_{\mathrm{f}}}{l_{\mathrm{f}}} + { C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) }}{{M{{{{\tilde{v}}}}_{x,k}}}}}\\ {{a_3}}&\;{} \displaystyle {\frac{{ - 2T\left( {{ C_{\mathrm{f}}}{l_{\mathrm{f}}} + { C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) }}{{{I_x}{v_{x,k}}}}}&\;{}{1 - \displaystyle \frac{{2T\left( {{ C_{\mathrm{f}}}l_{\mathrm{f}}^2 - { C_{\mathrm{r}}}l_{\mathrm{r}}^2} \right) }}{{{I_x}{v_{x,k}}}}} \end{array}} \right] \end{aligned}$$
(20a)
$$\begin{aligned} {{{\varvec{B}}}_k}& = \left[ \begin{array}{*{20}{cc}} \displaystyle {\frac{{2T{ C_{\mathrm{f}}}}}{M}\left( { - 2{{{\tilde{\delta }} }_k} + \displaystyle \frac{{{{{{\tilde{v}}}}_{y,k}} + {l_{\mathrm{f}}}{{{\tilde{\gamma }} }_k}}}{{{{{{\tilde{v}}}}_{x,k}}}}} \right) }&{} \displaystyle {\frac{T}{M}}\\ \displaystyle {\frac{{T\left( {2{ C_{\mathrm{f}}} + {{{{\tilde{F}}}}_{x1,k}} + {{{{\tilde{F}}}}_{x4,k}}} \right) }}{M}}&{} \displaystyle {\frac{{{{{\tilde{\delta }} }_k}T}}{M}}\\ \displaystyle {\frac{{T{l_{\mathrm{f}}}\left( {2{ C_{\mathrm{f}}} + {{{{\tilde{F}}}}_{x1,k}} + {{{{\tilde{F}}}}_{x4,k}}} \right) }}{{{I_z}}}}&{} \displaystyle {\frac{{ - T\left( {0.5{l_{\mathrm t}} - {{{\tilde{\delta }} }_k}{l_{\mathrm{f}}}} \right) }}{{{I_z}}}} \end{array}\right. \nonumber \\&\quad \left. \begin{array}{ccc} \displaystyle {\frac{T}{M}}&{} \displaystyle {\frac{T}{M}}&{} \displaystyle {\frac{T}{M}}\\ 0&{}0&{} \displaystyle {\frac{{{{{\tilde{\delta }} }_k}T}}{M}}\\ \displaystyle {\frac{{ - T{l_{\mathrm t}}}}{{2{I_z}}}}&{} \displaystyle {\frac{{T{l_{\mathrm t}}}}{{2{I_z}}}}&{} \displaystyle {\frac{{ - T\left( {0.5{l_{\mathrm t}} + {{{\tilde{\delta }} }_k}{l_{\mathrm{f}}}} \right) }}{{{I_z}}}}\\ \end{array} \right] \end{aligned}$$
(20b)
$$\begin{aligned} {a_1}& = 1 - \frac{{2T{ C_{\mathrm{f}}}{{{\tilde{\delta }} }_k}\left( {{{{{\tilde{v}}}}_{y,k}} + {l_{\mathrm{f}}}\tilde{\gamma }_k} \right) }}{{M{{\tilde{v}}}_{x,k}^2}} - \frac{{2T{{{\tilde{C}}}_a}{{{{\tilde{v}}}}_{x,k}}}}{M} \end{aligned}$$
(20c)
$$\begin{aligned} {a_2}& = {{{\tilde{\gamma }} }_k}T - \frac{{2{{{{\tilde{v}}}}_{y,k}}T\left( {{ C_{\mathrm{f}}} + { C_{\mathrm{r}}}} \right) + 2{{{\tilde{\gamma }}}_k}T\left( {{ C_{\mathrm{r}}}{l_{\mathrm{r}}} - { C_{\mathrm{f}}}{l_{\mathrm{f}}}} \right) }}{{M{{\tilde{v}}}_{x,k}^2}} \end{aligned}$$
(20d)
$$\begin{aligned} {a_3}& = \frac{{2T\left( {{{{{\tilde{v}}}}_{y,k}}\left( {{ C_{\mathrm{f}}}{l_{\mathrm{f}}} + { C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) + {{{\tilde{\gamma }}}_k}\left( {{ C_{\mathrm{f}}}l_{\mathrm{f}}^2 + { C_{\mathrm{r}}}l_{\mathrm{r}}^2} \right) } \right) }}{{{I_x}{{\tilde{v}}}_{x,k}^2}} \end{aligned}$$
(20e)

In this paper, the reference state \({\tilde{\xi }}_k\) is known and can be offered by planning level, but the reference input \({{\tilde{U}}}_k\) is unknown. To acquire \({{\tilde{U}}}_k\), the following optimization problem is given.

$$\begin{aligned}&\mathop {\min }\limits _{{{{\varvec{\xi }}} _k},{{{\varvec{U}}}_k}} {J_1}:{\left( {{{\tilde{{\varvec{\xi }}} }_{k + 1}} - {{{\varvec{\xi }}} _{k + 1}}} \right) ^{\mathrm{T}}}{{{\varvec{Q}}}_1}\left( {{{\tilde{{\varvec{\xi }}} }_{k + 1}} - {{\tilde{{\varvec{\xi }}} }_{k + 1}}} \right) + {{\varvec{U}}}_k^{\mathrm{T}}{{{\varvec{R}}}_1}{{{\varvec{U}}}_k} \end{aligned}$$
(21)
$$\begin{aligned}&{\text{S.t.}} \ \left\{ {\begin{array}{*{20}{l}} {{{\varvec{\xi}}} _{k + 1}} = f({\varvec{\xi}}_k,{\varvec{U}}_k)\\ {\varvec{\xi}}_{\min} \le {\varvec{\xi}} _{k} \le {\varvec{\xi}}_{\max} \\ {\varvec{U}}_{\min} \le {\varvec{U}}_k \le {\varvec{U}}_{\max} \end{array}} \right. \end{aligned}$$
(22)

where \(f({{{\varvec{\xi }}} _k},{{{\varvec{U}}}_k})\) are the nonlinear expression of system (16); \(\left( {{\varvec{U}}}_{\min }, {{\varvec{U}}}_{\max } \right)\) and \(\left( {{\varvec{\xi }}}_{\min }, {{\varvec{\xi }}}_{\max } \right)\) are minimum and maximum constraints of the inputs and states; and \({{\varvec{Q}}}_1\) and \({{\varvec{R}}}_1\) are the weight coefficient matrices. In Eq. (21), if the \(C_{\mathrm{f}}\) and \(C_{\text{r}}\) are constants, the reference input can be described as follows:

$$\begin{aligned} {\tilde{{{\varvec{U}}}}_k} = \arg \mathrm{min} {J_1}({{{\varvec{U}}}_k}) \end{aligned}$$
(23)

Nevertheless, when the lateral acceleration is high, the lateral tire forces are no longer linearly proportional to the slip angles due to its saturation property as seen in Fig. 2. In addition, the tire cornering stiffness varies when its load changes. Thus, in order to eliminate the influence of tire lateral stiffness, the lateral tire forces are rewritten as

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{F_{ym}} = ({C_{\mathrm{f}}}+{\lambda _{\mathrm{f}}}\Delta {C_{\mathrm{f}}})\left[ {\delta - \displaystyle \frac{1}{{{v_x}}}\left( {\gamma {l_{\mathrm{f}}} + {v_y}} \right) } \right] }\\ {{F_{yn}} = \displaystyle \frac{{({C_{\mathrm{r}}}+{\lambda _{\mathrm{r}}}\Delta {C_{\mathrm{r}}})}}{{{v_x}}}\left( {{v_y} - \gamma {l_{\mathrm{r}}}} \right) } \end{array}} \right. \end{aligned}$$
(24)

where \(\lambda _{\mathrm{f,r}}\) is a time-varying parameter and bounded by \(\left| \lambda _{\mathrm{f,r}} \right| \le 1\); \({\Delta C}_{\mathrm{f}}\) and \({\Delta C}_{\mathrm{r}}\) are, respectively, the maximal variations of front and rear tire coefficients stiffness. For simplification, if the left and right wheels are driving on roads under the same conditions, it is reasonable to assume that the road coherent coefficients are identical for both tires, i.e., \(\lambda _{\mathrm{f}}=\lambda _{\mathrm{r}}=\lambda\) can be assumed. Substituting Eq. (24) into Eq. (19), the dynamic system is rewritten as

$$\begin{aligned} {{\bar{{\varvec{\xi }}} }_{k + 1}} =({{\varvec{A}}}_k+\Delta {{{\varvec{A}}}_k}){{\bar{{\varvec{\xi }}} }_k} + ({{\varvec{B}}}_k+\Delta {{{\varvec{B}}}_k}){{\bar{{{\varvec{U}}}}}_k}+ {{\varvec{d}}}_k \end{aligned}$$
(25)

where \({{\varvec{d}}}_k=({\tilde{{{\varvec{U}}}}}_k- {\varvec{{\mathcal {U}}}}_k)\), \({\varvec{{\mathcal {U}}}}_k\) is the real reference input that consider \(\Delta C_{\mathrm{f}}\) and \(\Delta C_{\mathrm{r}}\),

$$\begin{aligned} {\Delta {{{\varvec{A}}}_k}}& = 2\lambda T \left[ \begin{array}{*{20}{c}} \displaystyle { - \frac{{\Delta {C_{\mathrm{f}}}{\tilde{\delta }}_k \left( {{{{{\tilde{v}}}}_{y,k}} + {l_{\mathrm{f}}}{\tilde{\gamma }}_k } \right) }}{{M{{\tilde{v}}}_{x,k}^2}}}\\ \displaystyle {- \frac{{{{{{\tilde{v}}}}_{y,k}}\left( {\Delta {C_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}} \right) + {\tilde{\gamma }}_k \left( {\Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}} - \Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}} \right) }}{{M{{\tilde{v}}}_{x,k}^2}}}\\ \displaystyle { \frac{{{{{{\tilde{v}}}}_{y,k}}\left( {\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) + {\tilde{\gamma }}_k \left( {\Delta {C_{\mathrm{f}}}l_{\mathrm{f}}^2 + \Delta {C_{\mathrm{r}}}l_{\mathrm{r}}^2} \right) }}{{{I_x}{{\tilde{v}}}_{x,k}^2}}}\\ \end{array}\right. \nonumber \\&\left. \begin{array}{cc} \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}{\tilde{\delta }}_k }}{{M{{{{\tilde{v}}}}_{x,k}}}}}&{} \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}{\tilde{\delta }}_k }}{{M{{{{\tilde{v}}}}_{x,k}}}}}\\ \displaystyle { - \frac{{\left( {\Delta {C_{\mathrm{f}}} - \Delta {C_{\mathrm{r}}}} \right) }}{{M{{{{\tilde{v}}}}_{x,k}}}}}&{} \displaystyle { - \frac{{\left( {\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) }}{{M{{{{\tilde{v}}}}_{x,k}}}}}\\ \displaystyle{\frac{{ - \left( {\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) }}{{{I_x}{v_{x,k}}}}}&{} \displaystyle { - \frac{{\left( {\Delta {C_{\mathrm{f}}}l_{\mathrm{f}}^2 - \Delta {C_{\mathrm{r}}}l_{\mathrm{r}}^2} \right) }}{{{I_x}{v_{x,k}}}}} \end{array} \right] = {{\varvec{H}}}\varLambda {{{\varvec{N}}}_1} \end{aligned}$$
(26a)
$$\begin{aligned}&\begin{aligned} \Delta {{{\varvec{B}}}_k}&= 2\lambda T\left[ {\begin{array}{*{20}{c}} {\frac{{\Delta {C_{\mathrm{f}}}}}{M}\left( { - 2{\tilde{\delta }}_k +\displaystyle \frac{{{{{\tilde{v}}}_{y,k}} + {l_{\mathrm{f}}}{\tilde{\gamma }}_k }}{{{{{\tilde{v}}}_{x,k}}}}} \right) }&{}0&{}0&{}0&{}0\\ {\frac{{\Delta {C_{\mathrm{f}}}}}{M}}&{}0&{}0&{}0&{}0\\ {\frac{{{l_{\mathrm{f}}}\Delta {C_{\mathrm{f}}}}}{{{I_z}}}}&{}0&{}0&{}0&{}0 \end{array}} \right] \\&= {{\varvec{H}}}\varLambda {{{\varvec{N}}}_2} \end{aligned} \end{aligned}$$
(26b)
$$\begin{aligned} {{\varvec{H}}}& = {\left[ {\begin{array}{*{20}{l}} 1&{}0&{}0&{}0&{}0\\ 0&{}1&{}0&{}1&{}0\\ 0&{}0&{}1&{}0&{}1 \end{array}} \right] }\end{aligned}$$
(26c)
$$\begin{aligned} {{\varvec{N}}}_1& = {\left[ {\begin{array}{*{20}{l}} \displaystyle { - \frac{{\Delta {C_{\mathrm{f}}}{\tilde{\delta }} \left( {{{{{\tilde{v}}}}_y} + {l_{\mathrm{f}}}{\tilde{\gamma }}} \right) }}{{M{{\tilde{v}}}_x^2}}}&{} \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}{\tilde{\delta }} }}{{M{{{{\tilde{v}}}}_x}}}}&{} \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}{\tilde{\delta }} }}{{M{{{{\tilde{v}}}}_x}}}}\\ \displaystyle { - \frac{{{{{{\tilde{v}}}}_y}\left( {\Delta {C_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}} \right) }}{{M{{\tilde{v}}}_x^2}}}&{} \displaystyle { - \frac{{\Delta {C_{\mathrm{f}}}}}{{M{{{{\tilde{v}}}}_x}}}}&{}{ \displaystyle - \frac{{\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}}}{{M{{{{\tilde{v}}}}_x}}}}\\ \displaystyle {\frac{{{{{{\tilde{v}}}}_y}\left( {\Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}} + \Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}} \right) }}{{{I_x}{{\tilde{v}}}_x^2}}}&{} \displaystyle {\frac{{ - \Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}}}{{{I_x}{v_x}}}}&{} \displaystyle { - \frac{{\Delta {C_{\mathrm{f}}}l_{\mathrm{f}}^2}}{{{I_x}{v_x}}}}\\ \displaystyle { - \frac{{{\tilde{\gamma }} \left( {\Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}} - \Delta {C_{\mathrm{f}}}{l_{\mathrm{f}}}} \right) }}{{M{{\tilde{v}}}_x^2}}}&{} \displaystyle {\frac{{\Delta {C_{\mathrm{r}}}}}{{M{{{{\tilde{v}}}}_x}}}}&{} \displaystyle { - \frac{{\Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}}}{{M{{{{\tilde{v}}}}_x}}}}\\ \displaystyle {\frac{{{\tilde{\gamma }} \left( {\Delta {C_{\mathrm{f}}}l_{\mathrm{f}}^2 + \Delta {C_{\mathrm{r}}}l_{\mathrm{r}}^2} \right) }}{{{I_x}{{\tilde{v}}}_x^2}}}&{} \displaystyle {\frac{{ - \Delta {C_{\mathrm{r}}}{l_{\mathrm{r}}}}}{{{I_x}{v_x}}}}&{} \displaystyle {\frac{{\Delta {C_{\mathrm{r}}}l_{\mathrm{r}}^2}}{{{I_x}{v_x}}}} \end{array}} \right] }\end{aligned}$$
(26d)
$$\begin{aligned} {{\varvec{N}}}_2& = {\left[ {\begin{array}{*{20}{c}} \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}}}{M}\left( { - 2\delta + \displaystyle \frac{{{v_y} + {l_{\mathrm{f}}}\gamma }}{{{v_x}}}} \right) }&{}0&{}0&{}0&{}0\\ 0&{}{ - 1}&{}0&{}1&{}0\\ \displaystyle {\frac{{{l_{\mathrm{f}}}\Delta {C_{\mathrm{f}}}}}{{{I_z}}}}&{}0&{}1&{}0&{}{ - 1}\\ \displaystyle {\frac{{\Delta {C_{\mathrm{f}}}}}{M}}&{}1&{}0&{}{ - 1}&{}0\\ 0&{}0&{}{ - 1}&{}0&{}1 \end{array}} \right] } \end{aligned}$$
(26e)
Fig. 2
figure 2

Lateral tire force versus slip angle

4 Cooperative Vehicle Controller Design

This section develops the distributed vehicle platoon formation controller for multiple homogeneous autonomous electric vehicles (EVs) based on the flocking algorithms and RMPC control. The hierarchical control architecture is divided into two levels (see Fig. 3): planning level and tracking level. In planning level, the target projection method and peer-to-peer structure are adopted to achieve vehicle platoon formation in one lane, whose schematic diagram is shown in Fig. 4. To prevent instable vehicle operation, the vehicle stability boundaries are introduced and the flocking algorithm is adopted to generate the feasible trajectory. In the lower tracking level, RMPC is employed to solve the tracking problem for each vehicle with cornering stiffness uncertainty and external disturbance. To realize the offset-free tracking control, a lumped disturbance observer is designed to gain the steady state and input target vectors.

Fig. 3
figure 3

The whole control structure of single vehicle in homogeneous platoon formation

Fig. 4
figure 4

The navigation target of each vehicle and structure information of peer-to-peer in vehicular platoon formation control

4.1 Plan-Level Controller

The stability boundaries are established firstly, which are related to two output parameters: yaw rate and longitudinal velocity.

4.1.1 Stability Boundaries

  1. (a)

    Yaw rate

In Eq. (16), the second term can be rewritten as

$$\begin{aligned} {a_y} = \gamma {v_x} + {\dot{v}_y} \end{aligned}$$
(27)

Since \(v_y\) can be expressed as \(v_y=v_x\tan \beta\), the vehicle lateral acceleration can be described as follows:

$$\begin{aligned} {a_y} = \gamma {v_x} + \tan \beta {\dot{v}_x} + \frac{{{v_x}{\dot{\beta }} }}{{\sqrt{1 + {{\tan }^2}\beta } }} \end{aligned}$$
(28)

To maintain vehicle lateral stability, the \(\left| a_y \right|\) cannot exceed the permissible later maximal acceleration \(\mu _a g\), where \(\mu _a\) is the tire–road adhesion and g is the gravitational acceleration. If both of the \(\beta\) and \({\dot{\beta }}\) are small, the maximum yaw rate can be expressed by following [25], which can be expressed as

$$\begin{aligned} {\left| {{\gamma _{\max }}} \right| } = 0.85\frac{{\mu _a g}}{{{v_x}}} \end{aligned}$$
(29)

therefore,

$$\begin{aligned} -{\gamma _{\max }} \le \gamma \le {\gamma _{\max }} \end{aligned}$$
(30)
  1. (b)

    Longitudinal velocity

It is reasonable that the wheels will not leave the ground if the vehicle does not accelerate or brake hard. Thus, the maximum vehicle longitudinal acceleration should satisfy the following conditions [26]:

$$\begin{aligned} - \frac{{g{l_{\mathrm{f}}}}}{h}< {a_x} < \frac{{g{l_{\mathrm{r}}}}}{h} \end{aligned}$$
(31)

where h is height of CM. Then, the range of longitudinal velocity is obtained

$$\begin{aligned} v(k)- \frac{{g{l_{\mathrm{f}}T}}}{h}< {v_x} <v(k)+\frac{{g{l_{\mathrm{r}}T}}}{h} \end{aligned}$$
(32)

where T is time interval and v(k) is the longitudinal velocity at the moment k.

4.1.2 Optimization of Multi-objective Flocking Algorithm

This section introduces the parameter optimization method for the flocking algorithm, which restricts the output of planning controller within the stability boundaries.

  1. (a)

    Optimized variables selection

According to the flocking algorithm in Eq. (9), there are four parameters, i.e., \({\mathcal {G}}_a\), \({\mathcal {G}}_b\), \(c^\text{r}_1\) and \(c^\text{r}_2\), which may affect the group formation performance. \({\mathcal {G}}_a\) and \({\mathcal {G}}_b\) are related to the acting forces between agents, which prevent agents collision or driving away; while \(c^\text{r}_1\) and \(c^\text{r}_2\) affect the navigational forces; which encourage agents movement to the destinations.

It should be noticed that the position and velocity differences between agents and navigation targets (i.e., \(q_i- {\hat{q}}_i\), \(p_i - {\hat{p}}_i\)) will also affect the derived yaw rate and longitudinal velocity of each vehicle as shown in Eq. (10b). Thus, instead of using two max–min values to restrain \(c^\text{r}_1\) and \(c^\text{r}_2\), this paper introduces two parametric diagonal matrices \({\varvec{{\mathcal {P}}}}_1^\text{r}=\left[ {\begin{array}{*{20}{c}} {{p_{11}}}&{}0\\ 0&{}{{p_{12}}} \end{array}} \right]\) and \({\varvec{{\mathcal {P}}}}_2^\text{r}=\left[ {\begin{array}{*{20}{c}} {{p_{21}}}&{}0\\ 0&{}{{p_{22}}} \end{array}} \right]\), where \(p_{11}\), \(p_{12}\), \(p_{21}\) and \(p_{22}\) are positive constants. Consequently, Eq. (10b) can be rewritten as

$$\begin{aligned} f_i^\text{r} = - {\varvec{{\mathcal {P}}}}_1^\text{r} \left( {{q_i} - {\hat{q}_i}} \right) - {\varvec{{\mathcal {P}}}}_2^\text{r} \left( {{p_i} - {\hat{p}_i}} \right) \end{aligned}$$
(33)

In summary, \({\varvec{\varLambda }}={\left[ {{\mathcal {G}}_a, {\mathcal {G}}_b, p_{11}, p_{12}, p_{21}, p_{22} } \right] ^{\text{T}}}\) is the optimal variable matrix.

  1. (b)

    Cost function formulation

The purpose of the flocking algorithm optimization is to limit the output of planning controller; thus, the objective of the optimization is

$$\begin{aligned} {J_1}:\quad \sum \limits _{t = 1}^{{N_t}} \left( {{P_1}} \left\| {{v_x} - {V_k}} \right\| _2^2 + {Q_2}\left\| {\gamma - {\gamma _{\max }}} \right\| _2^2 \right) \end{aligned}$$
(34)

where \(P_1\) and \(Q_2\) are weight coefficients, \(N_t\) is the iterations at the time t, and \(V_k\) is the maximum of velocity at this moment and can be represented by the following equation:

$$\begin{aligned} {V_k} = \left\{ {\begin{array}{*{20}{c}} {{v(k)} + \displaystyle \frac{{g{l_{\mathrm{f}}}T}}{h}, \quad {a_x} > 0}\\ {{v(k)} - \displaystyle \frac{{g{l_{\mathrm{f}}}T}}{h}, \quad {a_x} \le 0} \end{array}} \right. \end{aligned}$$
(35)

For the optimization problem Eq. (34), the controller outputs could achieve the platoon formation while meeting the trackability requirement if they conform to the stability boundaries. However, it may take longer time to complete the formation if the outputs are small. Thus, in Eq. (34), the maximum longitudinal speed and yaw rate are adopted to make a tradeoff between the control performance and formation efficiency.

Therefore, the optimization problem is formulated as follows and solved using genetic algorithm:

$$\begin{aligned}&\mathop {\min }\limits _{\varLambda } {J_1}\end{aligned}$$
(36a)
$$\begin{aligned}&\mathrm{S.t.} \ \ v(k)- \frac{{g{l_{\mathrm{f}}T}}}{h}< {v_x} <v(k)+\frac{{g{l_{\mathrm{r}}T}}}{h} \end{aligned}$$
(36b)
$$\begin{aligned}&-\gamma _{\max } \le \gamma \le \gamma _{\max }\end{aligned}$$
(36c)
$$\begin{aligned}&{\mathcal {G}}_{a,\min } \le {\mathcal {G}}_a \le {\mathcal {G}}_{a,\max }\end{aligned}$$
(36d)
$$\begin{aligned}&{\mathcal {G}}_{b,\min } \le {\mathcal {G}}_b \le {\mathcal {G}}_{b,\max }\end{aligned}$$
(36e)
$$\begin{aligned}&p_{ij,\min } \le p_{ij} \le p_{ij,\max }, \quad i,j=1,2 \end{aligned}$$
(36f)

where \({\mathcal {G}}_{a,\min }\), \({\mathcal {G}}_{a,\max }\), \({\mathcal {G}}_{b,\min }\), \({\mathcal {G}}_{b,\max }\), \(p_{ij,\min }\), \(p_{ij,\max }\), \(i,j=1,2\) are, respectively, the maximum and minimum values of the optimized variables.

The diagram of the whole optimization process is shown in Fig. 5, where the parameter optimization of the flocking algorithm is carried out at every system interval.

Fig. 5
figure 5

The flow diagram of parameter optimization

4.2 Tracking-Level Controller

This subsection will present the lower tracking-level controller, whose architecture is shown in Fig. 6. The lumped disturbance observer and quadratic programming (QP) are adopted firstly to obtain the system steady state and input target. The RMPC is then used to achieve offset-free tracking of the derived system targets.

Fig. 6
figure 6

The architecture of tracking control subsystem

4.2.1 Disturbance Observer

The vehicle dynamic model in Eq. (25) can be rewritten as

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{{\bar{{\varvec{\xi }}} }_{k + 1}} = {{\varvec{A}}_k}{{\bar{{\varvec{\xi }}} }_k} + {{\varvec{B}}_k}{{\bar{{\varvec{U}}}}_k} + {{\varvec{E}}}{\bar{{\varvec{d}}}_k}}\\ {{{{\varvec{\varXi }}}_k} = {{\varvec{C}}}{{\bar{{\varvec{\xi }}}}_k}} \end{array}} \right. \end{aligned}$$
(37)

where \({\varvec{C}}\) and \({\varvec{E}}\) both are three-order identity matrices, \({\varvec{\varXi }}_k\) is the output, and \(\bar{{\varvec{d}}}_k\) is the lumped disturbance that incorporate \({\varvec{d}}_k\) and system uncertainty \(\Delta {{\varvec{A}}}\) and \(\Delta {{\varvec{B}}}\) in Eq. (25). According to [23], the state disturbance of system (37) can be represented by the following augmented system

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{{{\varvec{\varPi }} }_{k + 1}} = {{\varvec{A}}_{\mathrm{obs}}}{{{\varvec{\varPi }} }_k} + {{\varvec{B}}_{\mathrm{obs}}}{{\tilde{{\varvec{U}}}}_k}}\\ {{{{\varvec{\varXi }} }_k} = {{\varvec{C}}_{\mathrm{obs}}}{{\hat{{\varvec{\varPi }}} }_k}} \end{array}} \right. \end{aligned}$$
(38)

where \({{\varvec{\varPi }}} = \left[ {\begin{array}{*{20}{c}} {{\varvec{\xi }} }\\ {{\varvec{d}}} \end{array}} \right]\), \({{\varvec{A}}_{\mathrm{obs}}} = \left[ {\begin{array}{*{20}{c}} {{{\bar{{\varvec{A}}}}_k}}&{}{\varvec{E}}\\ {\varvec{0}}&{}{\varvec{I}} \end{array}} \right]\), \({{\varvec{B}}_{\mathrm{obs}}} = \left[ {\begin{array}{*{20}{c}} {{{\bar{{\varvec{B}}}}_k}}\\ {\varvec{0}} \end{array}} \right]\), and \({{\varvec{C}}_{\mathrm{obs}}} = \left[ {\begin{array}{*{20}{c}} {\varvec{C}}&{\varvec{0}} \end{array}} \right]\) . Then, the augmented observer can be described as

$$\begin{aligned} \left\{ {\begin{array}{*{20}{l}} {{{\hat{{\varvec{\varPi }}} }_{k + 1}} = {{\varvec{A}}_{\mathrm{obs}}}{{\hat{{\varvec{\varPi }}} }_k} + {{\varvec{B}}_{\mathrm{obs}}}{{\tilde{{\varvec{U}}}}_k} + {\varvec{L}}\left( {{{\hat{{\varvec{\varXi }}} }_k} - {{\varvec{\varXi }} _k}} \right) }\\ {{{\hat{{\varvec{\varXi }}} }_k} = {{\varvec{C}}_{\mathrm{obs}}}{{\hat{{\varvec{\varPi }}} }_k}} \end{array}} \right. \end{aligned}$$
(39)

where the symbol “ \(\hat{}\) ” indicates the estimate, and L is the observer gains. For the observer (39), its asymptotic stability condition in Lyapunov’s significance can be obtained by the following theorem.

Theorem 1

The system (39) for the lumped disturbance observer is asymptotic stability with a decay rate \(\lambda _{\mathrm{e}}<0\) if there exist two matrices \({\varvec{K}}_{\mathrm{e}}\) and \({\varvec{G}}_{\mathrm{e}}\), and a positive definite matrix \({\varvec{P}}_{\mathrm{e}},\) such that the following LMI problem is feasible:

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} { - {{\varvec{P}}_{\mathrm{e}}} - \lambda _{\mathrm{e}} {\varvec{I}}}&{}{{{\varvec{A}}_{\mathrm{obs}}^{\mathrm{T}}}{\varvec{G}}_{\mathrm{e}}^{\mathrm{T}} + {{\varvec{C}}_{\mathrm{obs}}^{\mathrm{T}}}{\varvec{K}}_{\mathrm{e}}^{\mathrm{T}}}\\ {*}&{}{{{\varvec{P}}_{\mathrm{e}}} - {{\varvec{G}}_{\mathrm{e}}} -{\varvec{G}}_{\mathrm{e}}^{\mathrm{T}}} \end{array}} \right] < 0, \end{aligned}$$
(40)

where the symbol “*” denotes the symmetric elements in a symmetric matrix. Then, the observer gains can be determined by

$$\begin{aligned} {\varvec{L}} = {\varvec{G}}_{\mathrm{e}}^{ - 1}{{\varvec{K}}_{\mathrm{e}}} \end{aligned}$$
(41)

Proof

By defining the estimation error \({{\tilde{{\varvec{\varPi }}} }_k} = {{\varvec{\varPi }} _k} - {{\hat{{\varvec{\varPi }}}}_k}\), then the following observer error dynamic model can be gained

$$\begin{aligned} {{\tilde{{\varvec{\varPi }}} }_{k + 1}} = \left[ {\begin{array}{*{20}{c}} {{{\varvec{A}}_{\mathrm{obs}}}}&{{\varvec{L}}{{\varvec{C}}_{\mathrm{obs}}}} \end{array}} \right] {{\tilde{{\varvec{\varPi }}} }_k} \end{aligned}$$
(42)

For Eq. (42), its Lyapunov function can be expressed as

$$\begin{aligned} {V_{\mathrm{e}}}(k) = \tilde{{\varvec{\varPi }}} _k^{\mathrm{T}}{{\varvec{P}}_{\mathrm{e}}}{{\tilde{{\varvec{\varPi }}} }_k} \end{aligned}$$
(43)

For the discrete system, to maintain stability, the following condition must be satisfied

$$\begin{aligned} {V_{\mathrm{e}}}(k + 1) - {V_{\mathrm{e}}}(k)< \alpha , \quad \alpha <0 \end{aligned}$$
(44)

Substituting Eq. (43) into Eq. (44), we can get

$$\begin{aligned} \tilde{{\varvec{\varPi }}} _{k + 1}^{\mathrm{T}}{{\varvec{P}}_{\mathrm{e}}}{\tilde{{\varvec{\varPi }}} _{k + 1}} - \tilde{{\varvec{\varPi }}} _k^{\mathrm{T}}{{\varvec{P}}_{\mathrm{e}}}{\tilde{{\varvec{\varPi }}} _k} < \tilde{{\varvec{\varPi }}} _k^{\mathrm{T}}\frac{\alpha }{{\left\| {{\tilde{{\varvec{\varPi }}} _k}} \right\| _2^2}}{\tilde{{\varvec{\varPi }}} _k} \end{aligned}$$
(45)

where \({\left\| . \right\| _2}\) is the 2-norm of vector. Let \(\displaystyle \frac{\alpha }{{\left\| {{{\tilde{{\varvec{\varPi }}} }_k}} \right\| }} = {\lambda _{\mathrm{e}}}\), \({\lambda _{\mathrm{e}}} < 0\) and substituting Eq. (42) into Eq. (45), the following expression can be acquired

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} { - {{\varvec{P}}_{\mathrm{e}}} - \lambda _{\mathrm{e}} {\varvec{I}}}&{}{{{\varvec{A}}_{\mathrm{obs}}^{\mathrm{T}}} + {{\varvec{C}}_{\mathrm{obs}}^{\mathrm{T}}}{{{\varvec{L}}}^{\mathrm{T}}}}\\ {*}&{}{ - {{\varvec{P}}_{\mathrm{e}}}^{ - 1}} \end{array}} \right] < 0 \end{aligned}$$
(46)

By multiplying \(\left[ {\begin{array}{*{20}{c}} {\varvec{I}}&{}{\varvec{0}}\\ {\varvec{0}}&{}{\varvec{G}}_{\mathrm{e}} \end{array}} \right]\) and its transpose from both sides of Eq. (46) and applying the Schur complement with the following inequality:

$$\begin{aligned} - {\varvec{G}}_{\mathrm{e}}^{\mathrm{T}}{{\varvec{X}}^{ - 1}}{{\varvec{G}}_{\mathrm{e}}} \le {\varvec{X}} - {\varvec{G}}_{\mathrm{e}}^{\mathrm{T}} - {{\varvec{G}}_{\mathrm{e}}}, \end{aligned}$$

If \({K_{\mathrm{e}}} = {G_{\mathrm{e}}}L\), the inequality (46) can be rewritten as

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} { - {{\varvec{P}}_{\mathrm{e}}} - \lambda _{\mathrm{e}} {\varvec{I}}}&{}{{{\varvec{A}}_{\mathrm{obs}}^{\mathrm{T}}}{\varvec{G}}_{\mathrm{e}}^{\mathrm{T}} + {{\varvec{C}}_{\mathrm{obs}}^{\mathrm{T}}}{\varvec{K}}_{\mathrm{e}}^{\mathrm{T}}}\\ {*}&{}{{{\varvec{P}}_{\mathrm{e}}} - {{\varvec{G}}_{\mathrm{e}}} - {\varvec{G}}_{\mathrm{e}}^{\mathrm{T}}} \end{array}} \right] < 0 \end{aligned}$$

When the LMI (40) is feasible, the L can be obtained by

$$\begin{aligned} {\varvec{L}} = {\varvec{G}}_{\mathrm{e}}^{ - 1}{{\varvec{K}}_{\mathrm{e}}} \end{aligned}$$

The proof is thus completed.

4.2.2 Offset-Free RMPC

In order to achieve the offset-free tracking performance, the desired targets of system states and control inputs in the steady state are obtained by using QP method. That is, the steady state and input target vectors, \({{\varvec{\xi }} _{\mathrm{t}}}\) and \({\varvec{U}}_{\mathrm{t}}\), of system (37), can be determined by solving the following QP problem:

$$\begin{aligned}&\mathop {\min }\limits _{{{\varvec{\xi }} _{\mathrm{t}}},\Delta {\varvec{U}}} \left[ {{{\left( {{{\varvec{\xi }} _{\mathrm{t}}} - {{\tilde{{\varvec{\xi }}} }_{k+1}}} \right) }^{\mathrm{T}}}{{\varvec{Q}}_{\mathrm{t}}}\left( {{{\varvec{\xi }} _{\mathrm{t}}} - {{\tilde{{\varvec{\xi }}} }_{k+1}}} \right) + \Delta {{\varvec{U}}_k^{\mathrm{T}}}{{\varvec{R}}_{\mathrm{t}}}\Delta {\varvec{U}}_k} \right] \end{aligned}$$
(47)
$$\begin{aligned}&\hbox {S.t.} \quad \left\{ {\begin{array}{*{20}{l}} {{{\varvec{\xi }} _{\mathrm{t}}} = {{\bar{{\varvec{A}}}}_k}{{\bar{{\varvec{\xi }}} }_k} + {{\bar{{\varvec{B}}}}_k}(\Delta {{\varvec{U}}}_k + {{\tilde{{\varvec{U}}}}_k}) + {\varvec{E}}{{\hat{{\varvec{d}}}}_k}}\\ {{{\varvec{U}}_{\min }} \le \Delta {{\varvec{U}}}_k + {{\tilde{{\varvec{U}}}}} \le {{\varvec{U}}_{\max }}}\\ {\Delta {{\varvec{U}}_{\min }} \le \Delta {\varvec{U}}_k \le \Delta {{\varvec{U}}_{\max }}} \end{array}} \right. \end{aligned}$$
(48)

where \(\Delta {\varvec{U}}_k\) is the increment of desired input; \(\hat{{\varvec{d}}}_k\) is the current estimate of the integrating disturbance signal \({\varvec{d}}_k\); \(({\varvec{U}}_{\min },{\varvec{U}}_{\max })\) and \((\Delta {\varvec{U}}_{\min },\Delta {\varvec{U}}_{\max })\) are the input-increment/input constraints, respectively, and \({\varvec{Q}}_{\mathrm{t}}\) and \({\varvec{R}}_{\mathrm{t}}\) are the weight coefficient matrices. When the \(\Delta {\varvec{U}}_k\) is gained, the steady-state input can be represented as

$$\begin{aligned} {{\varvec{U}}_{\mathrm{t}}} = \Delta {\varvec{U}} + {{\tilde{{\varvec{U}}}}_k} \end{aligned}$$
(49)

Substituting \(\left( {\varvec{\xi }}_{\mathrm{t}},{\varvec{U}}_{\mathrm{t}} \right)\) and Eq. (25) into Eq. (20), we can obtain the following expressions

$$\begin{aligned} {{{\varvec{\chi }} }_{k + 1}} = \left( {{{\bar{{\varvec{A}}}}_k} + \Delta {{\varvec{A}}_k}} \right) {{{\varvec{\chi }} }_k} + \left( {{{\bar{{\varvec{B}}}}_k} + \Delta {{\varvec{B}}_k}} \right) {{\varvec{\vartheta }}_k} \end{aligned}$$
(50)

where \({\varvec{\chi }}_k={\varvec{\xi }}_k-{\varvec{\xi }}_{\mathrm{t}}\) and \({\varvec{\vartheta }}_k={\varvec{U}}_k-{\varvec{U}}_{\mathrm{t}}\).

Theorem 2

Consider the system (50) with the uncertainties, \(\Delta {\varvec{A}}_k\) and \(\Delta {\varvec{B}}_k,\) if there exist positive definite matrix \({\varvec{P}}_{\text{r}},\) matrices \({\varvec{G}}_{\text{r}}\), \({\varvec{F}}_{\text{r}}\), \({\varvec{Z}}_{\text{r}}\), positive scalars \(\varepsilon\), and \(\tau\), such that the following matrix inequalities are feasible:

$$\begin{aligned}&\left[ \begin{array}{*{20}{ccc}} { - ({{\varvec{G}}_{\text{r}}}{{ + {\varvec{G}}}}_{\text{r}}^{\mathrm{T}} - {{\varvec{P}}_{\text{r}}})}&{}{{\varvec{F}}_{\text{r}}^{\mathrm{T}}{\varvec{R}}}&{}{{{\left( {{{\bar{{\varvec{A}}}}_k}{{\varvec{G}}_{\text{r}}} + {{\bar{{\varvec{B}}}}_k}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}\\ *&{}{ - \tau {\varvec{R}}_{\text{r}}}&{}{\varvec{0}}\\ *&{}{*}&{}{-{\varvec{P}}_{\text{r}}}\\ *&{}{*}&{}{*}\\ *&{}{*}&{}{*}\\ *&{}{*}&{}{*} \end{array}\right. \nonumber \\&\quad \left. \begin{array}{ccc} {{\varvec{G}}_{\text{r}}^{\mathrm{T}}{{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}}&{}{{{\left( {{{\varvec{N}}_1}{{\varvec{G}}_{\text{r}}} + {{\varvec{N}}_2}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}&{}{\varvec{0}}\\ {\varvec{0}}&{}{\varvec{0}}&{}{\varvec{0}}\\ {\varvec{0}}&{}{\varvec{0}}&{}{\varepsilon {\varvec{H}}}\\ { - \tau {\varvec{Q}}_{\text{r}}}&{}{\varvec{0}}&{}{\varvec{0}}\\ {*}&{}{ - \varepsilon {\varvec{I}}}&{}{\varvec{0}}\\ {*}&{}{*}&{}{ - \varepsilon {\varvec{I}} }\\ \end{array}\right] \le 0 \end{aligned}$$
(51)
$$\begin{aligned}&\left[ {\begin{array}{*{20}{c}} {{\varvec{Z}}_{\text{r}}}&{}{\varvec{F}}_{\text{r}}\\ {*}&{}{{\varvec{G}}_{\text{r}}+{\varvec{G}}_{\text{r}}^{\mathrm{T}}-{\varvec{P}}_{\text{r}}} \end{array}} \right] \ge 0, \ {{\varvec{Z}}_{k}} \le {\varvec{u}}_{t,\max }^2 \end{aligned}$$
(52)
$$\begin{aligned}&\left[ {\begin{array}{*{20}{c}} { - {\varvec{1}}}&{}{{{\varvec{\chi }} _k}^{\mathrm{T}}}\\ {*}&{}{ -{\varvec{P}}_{\text{r}}} \end{array}} \right] \le 0 \end{aligned}$$
(53)

and the following optimization problem can be resolved

$$\begin{aligned} \mathop {\min }\limits _{\varepsilon ,{G_{\text{r}}},{F_{\text{r}}},{P_{\text{r}}}} \quad \tau \end{aligned}$$
(54)

S.t. LMIs. (51), (52) and (53).

Then, the feedback control law \({\varvec{U}}_k={\varvec{F}}_{\text{r}}{\varvec{G}}^{-1}{\varvec{\chi }} _k+{\varvec{U}}_{\text{t}}\) at every sampling time can ensure the stability of the closed-loop system while satisfying the input constraints.

Proof

Hypothesizing \(V_{\text{r}}(k)\) and \(J_{\text{r}}^\infty\) are, the Lyapunov function and cost function in infinite horizon of model predictive control for system (50),

$$\begin{aligned}&{V_{\text{r}}}(k) = {\varvec{\chi }}_{\text{r}}^{\mathrm{T}}\left( k \right) {{\varvec{W}}_{\text{r}}}{{\varvec{\chi }} _{\text{r}}}\left( k \right) \end{aligned}$$
(55)
$$\begin{aligned}&\begin{aligned} J_{\text{r}}^\infty (k) =&\sum \limits _{i = 1}^\infty ({\varvec{\chi }} _{\text{r}}^{\mathrm{T}}\left( {k + i|k} \right) {{\varvec{Q}}_{\text{r}}}{{\varvec{\chi }} _{\text{r}}}\left( {k + i|k} \right) \\&+{\varvec{\vartheta }}_{\text{r}}^{\mathrm{T}}\left( {k + i|k} \right) {{\varvec{R}}_{\text{r}}}{{\varvec{\vartheta }}_{\text{r}}}\left( {k + i|k} \right) ) \end{aligned} \end{aligned}$$
(56)

where \({\varvec{W}}_{\text{r}}\) is a positive definite matrix and \({\varvec{Q}}_{\text{r}}\) and \({\varvec{R}}_{\text{r}}\) are the weight coefficient matrices. To ensure the stability of discrete system, the Lyapunov function in the prediction horizon of k time should satisfy

$$\begin{aligned} {V_{\text{r}}}(k + i+1|k) - {V_{\text{r}}}(k+i|k) \le 0, \ i \in \mathbf{N ^ + } \end{aligned}$$
(57)

If the inequality (57) can be transformed to

$$\begin{aligned} \begin{aligned}&{V_{\text{r}}}(k+i+1|k) - {V_{\text{r}}}(k+i|k) \\&\quad \le -{\varvec{\chi }} _{\text{r}}^{\mathrm{T}}\left( {k + i|k} \right) \;{{\varvec{Q}}_{\text{r}}}{{\varvec{\chi }} _{\text{r}}}\left( {k + i|k} \right) \\&\qquad - {\varvec{\vartheta }}_{\text{r}}^{\mathrm{T}}\left( {k + i|k} \right)\; {{\varvec{R}}_{\text{r}}}{{\varvec{\vartheta }}_{\text{r}}}\left( {k + i|k} \right) \end{aligned} \end{aligned},$$
(58)

then by summing both sides of Eq. (58) from \(i=0\) to \(i=\infty\), we have

$$\begin{aligned} J_{\text{r}}^\infty (k) \le {V_{\text{r}}}\left( {k|k} \right) - {V_{\text{r}}}\left( {\infty |k} \right) \end{aligned}$$
(59)

For system (50), if \({\chi _{\text{r}}}(\infty |k) \rightarrow 0\), \({V_{\text{r}}}\left( {\infty |k}\right) =0\) for stability purpose. Then, Eq. (59) can be rewritten as

$$\begin{aligned} J_{\text{r}}^\infty (k) \le {V_{\text{r}}}\left( {k|k} \right) \end{aligned}$$
(60)

From inequality (60), it can be seen that \(\sup \left( J_{\text{r}}^\infty (k)\right) ={V_{\text{r}}}\left( {k|k} \right)\). Furthermore, since \(V_{\text{r}}(k)\) conform to Eq. (57), \(V_{\text{r}}(k)\) can be regarded as positively invariant set (PIS), which can be re-expressed by the ellipsoid as

$$\begin{aligned} V_{\text{r}}(k) : = \left\{ {{\varvec{\chi }} _{\text{r}}^{\mathrm{T}}(k){{\varvec{W}}_{\text{r}}}{{\varvec{\chi }} _{\text{r}}(k)} \le \tau } \right\} , \ \tau \in \mathbf{R ^ + } \end{aligned}$$
(61)

According to Eqs. (60) and (61), it can be concluded that

$$\begin{aligned} \min \left( {J_{\text{r}}^\infty (k)} \right) \Rightarrow \min \left( \tau \right) \end{aligned}$$
(62)

S.t. Eqs. (58) and (61).

On the basis of the above discussion, in the following, the inequalities (58) and (61) can be guaranteed by LMIs (51) and (53), respectively.

Using the Schur complement, LMI (51) can be written by Eq. (63). Based on Lemma 1, the inequality (63) guarantees that the inequality (64) holds for all \({\varvec{\varLambda }}\) satisfying \({\varvec{\varLambda }}^{\mathrm{T}}{\varvec{\varLambda }} \le {\varvec{I}}\).Inequality (64) can also be written as

$$\begin{aligned}&\left[ \begin{array}{*{20}{cccc}} { - \left( {{{\varvec{G}}_{\text{r}}} + {\varvec{G}}_{\text{r}}^{\mathrm{T}} - {{\varvec{P}}_{\text{r}}}} \right) }&{}{{\varvec{F}}_{\text{r}}^{\mathrm{T}}{\varvec{R}}_{\text{r}}^{\mathrm{T}}}&{}{{{\left( {{{\bar{{\varvec{A}}}}_k}{{\varvec{G}}_{\text{r}}} + {{\bar{{\varvec{B}}}}_k}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}&{}{{\varvec{G}}_{\text{r}}^{\mathrm{T}}{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}\\ *&{}{ - \tau {{\varvec{R}}_{\text{r}}}}&{}{\varvec{0}}&{}{\varvec{0}}\\ *&{}*&{}{ - {{\varvec{P}}_{\text{r}}}}&{}{\varvec{0}}\\ *&{}*&{}*&{}{\varvec{0}} \end{array}\right] \nonumber \\&\quad + {\varepsilon ^{ - 1}}\left[ {\begin{array}{*{20}{c}} {{{\left( {{{\varvec{N}}_1}{{\varvec{G}}_{\text{r}}} + {{\varvec{N}}_2}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}\\ {\varvec{0}}\\ {\varvec{0}}\\ {\varvec{0}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {{{\varvec{N}}_1}{{\varvec{G}}_{\text{r}}} + {{\varvec{N}}_2}{{\varvec{F}}_{\text{r}}}}&{\varvec{0}}&{\varvec{0}}&{\varvec{0}} \end{array}} \right] \nonumber \\&\quad + \varepsilon \left[ {\begin{array}{*{20}{c}} {\varvec{0}}\\ {\varvec{0}}\\ {{\varvec{H}}}\\ {\varvec{0}} \end{array}} \right] \left[ {\begin{array}{*{20}{c}} {\varvec{0}}&{\varvec{0}}&{{{\varvec{H}}^{\mathrm{T}}}}&{\varvec{0}} \end{array}} \right] \le 0\end{aligned}$$
(63)
$$\begin{aligned}&\left[ \begin{array}{*{20}{cccc}} { - \left( {{{\varvec{G}}_{\text{r}}} + {\varvec{G}}_{\text{r}}^{\mathrm{T}} - {{\varvec{P}}_{\text{r}}}} \right) }&{}{{\varvec{F}}_{\text{r}}^{\mathrm{T}}{\varvec{R}}_{\text{r}}^{\mathrm{T}}}&{}{{{\left( {{{\bar{{\varvec{A}}}}_k}{{\varvec{G}}_{\text{r}}} + {{\bar{{\varvec{B}}}}_k}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}&{}{{\varvec{G}}_{\text{r}}^{\mathrm{T}}{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}\\ *&{}{ - \tau {{\varvec{R}}_{\text{r}}}}&{}{\varvec{0}}&{}{\varvec{0}}\\ *&{}*&{}{ - {{\varvec{P}}_{\text{r}}}}&{}{\varvec{0}}\\ *&{}*&{}*&{}{ - \tau {{\varvec{Q}}_{\text{r}}}} \end{array}\right] \nonumber \\&\quad + \left[ {\begin{array}{*{20}{c}} {{{\left( {{{\varvec{N}}_1}{{\varvec{G}}_{\text{r}}} + {{\varvec{N}}_2}{{\varvec{F}}_{\text{r}}}} \right) }^{\mathrm{T}}}}\\ {\varvec{0}}\\ {\varvec{0}}\\ {\varvec{0}} \end{array}} \right] {\varvec{\varLambda }}^{\mathrm{T}}\left[ {\begin{array}{*{20}{c}} {\varvec{0}}&{\varvec{0}}&{{{\varvec{H}}^{\mathrm{T}}}}&{\varvec{0}} \end{array}} \right] \nonumber \\&\quad + \left[ {\begin{array}{*{20}{c}} {\varvec{0}}\\ {\varvec{0}}\\ {{\varvec{H}}}\\ {\varvec{0}} \end{array}} \right] {\varvec{\varLambda }}\left[ {\begin{array}{*{20}{c}} {{{\varvec{N}}_1}{{\varvec{G}}_{\text{r}}} + {{\varvec{N}}_2}{{\varvec{F}}_{\text{r}}}}&{\varvec{0}}&{\varvec{0}}&{\varvec{0}} \end{array}} \right] \le 0 \end{aligned}$$
(64)
$$\begin{aligned}&\left[ \begin{array}{*{20}{cc}} { - \left( {{{\varvec{G}}_{\text{r}}} + {\varvec{G}}_{\text{r}}^{\mathrm{T}} - {{\varvec{P}}_{\text{r}}}} \right) }&{}{{\varvec{F}}_{\text{r}}^{\mathrm{T}}{\varvec{R}}_{\text{r}}^{\mathrm{T}}}\\ *&{}{ -\tau {{\varvec{R}}_{\text{r}}}}\\ *&{}*\\ *&{}* \end{array}\right. \nonumber \\&\quad \left. \begin{array}{cc} {{\varvec{F}}_{\text{r}}^{\mathrm{T}}{{\left( {\bar{{\varvec{B}}} + {\varvec{H}} {\varvec{\varLambda }} {{\varvec{N}}_2}} \right) }^{\mathrm{T}}} + {\varvec{G}}_{\text{r}}^{\mathrm{T}}{{\left( {\bar{{\varvec{A}}} + {\varvec{H}} {\varvec{\varLambda }} {{\varvec{N}}_1}} \right) }^{\mathrm{T}}}}&{}{{\varvec{G}}_{\text{r}}^{\mathrm{T}}{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}\\ {\varvec{0}}&{}{\varvec{0}}\\ -{\varvec{P}}_{\text{r}}&{}{\varvec{0}}\\ *&{}{ -\tau {{\varvec{Q}}_{\text{r}}}} \end{array} \right] \le 0 \end{aligned}$$
(65)

Multiplying \(\hbox {diag}\left\{ {\varvec{G}}_{\text{r}}^{-1},{\varvec{I}},{\varvec{I}},{\varvec{I}} \right\}\) and its transpose from both sides of (65), denote \({\varvec{F}}_{\text{r}}{\varvec{G}}_{\text{r}}^{-1}\) by \({\varvec{K}}_{\text{r}}\), \({\varvec{A}}_k=\bar{{\varvec{A}}}_k+ {\varvec{H}}{\varvec{\varLambda }} {{\varvec{N}}_1}\), \({\varvec{B}}_k=\bar{{\varvec{B}}}_k+ {\varvec{H}}{\varvec{\varLambda }}{{\varvec{N}}_2}\), and use the inequality \({\varvec{X}} - {{\varvec{G}}^{\mathrm{T}}} - {\varvec{G}} \ge - {{\varvec{G}}^{\mathrm{T}}}{{\varvec{X}}^{ - 1}}{\varvec{G}}\), then

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} { - {\varvec{P}}_{\text{r}}^{ - 1}}&{}{{\varvec{K}}_{\text{r}}^{\mathrm{T}}{{\varvec{R}}_{\text{r}}}}&{}{{{\left( { {\varvec{A}}_k + {\varvec{B}}_k{{\varvec{K}}_{\text{r}}}} \right) }^{\mathrm{T}}}}&{}{{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}\\ *&{}{ - \tau {{\varvec{R}}_{\text{r}}}}&{}{\varvec{0}}&{}{\varvec{0}}\\ *&{}*&{}{ - {{\varvec{P}}_{\text{r}}}}&{}{\varvec{0}}\\ *&{}*&{}*&{}{ - \tau {{\varvec{Q}}_{\text{r}}}} \end{array}} \right] \le 0 \end{aligned}$$
(66)

In addition, multiplying \(\hbox {diag} \left\{ \sqrt{\tau },{\sqrt{\tau }}^{-1},{\sqrt{\tau }}^{-1},{\sqrt{\tau }}^{-1} \right\}\) and its transpose from both sides of (66), denote \({\varvec{P}}_{\text{r}}^{ - 1}\) by \({\varvec{W}}_{\text{r}}^{-1}\tau\), the inequality (67) can be rewritten as

$$\begin{aligned} \left[ {\begin{array}{*{20}{c}} { - {{\varvec{W}}_{\text{r}}}}&{}{{{\varvec{K}}_{\text{r}}^{\mathrm{T}}}{\varvec{R}}_{\text{r}}}&{}{{{\left( {{{\varvec{A}}_k} + {{\varvec{B}}_k}{K_k}} \right) }^{\mathrm{T}}}}&{}{{\varvec{Q}}_{\text{r}}^{\mathrm{T}}}\\ *&{}{ - {{\varvec{R}}_{\text{r}}}}&{}{\varvec{0}}&{}{\varvec{0}}\\ *&{}*&{}{ -{\varvec{W}}_{\text{r}}^{ - 1}}&{}{\varvec{0}}\\ *&{}*&{}*&{}{ - {{\varvec{Q}}_{\text{r}}}} \end{array}} \right] < 0 \end{aligned}$$
(67)

Then, by using the Schur complement, the inequality (67) can be expressed as

$$\begin{aligned}&{\left( {{{\varvec{A}}_k} + {{\varvec{B}}_k}{{\varvec{K}}_{\text{r}}}} \right) ^{\mathrm{T}}}{{\varvec{W}}_{\text{r}}}\left( {{{\varvec{A}}_k} + {{\varvec{B}}_k}{K_{\text{r}}}} \right) - {{\varvec{W}}_{\text{r}}} + {{\varvec{Q}}_{\text{r}}} \nonumber \\&\quad + {\varvec{K}}_{\text{r}}^{\mathrm{T}}{{\varvec{R}}_{\text{r}}}{{\varvec{K}}_{\text{r}}} \le 0 \end{aligned}$$
(68)

By multiplying \({{\varvec{\chi }}(k+i|k)}\) and its transpose from both sides of (68), respectively, Eqs. (50) and (55), inequality (58) can be gained.

By using the Schur complement and substituting \({\varvec{P}}_{\text{r}}^{ - 1}\) with \({\varvec{W}}_{\text{r}}^{-1}\tau\), inequality (61) can also be guaranteed by LMI (53), while LMI (52) ensures the input constraint. The proof is thus accomplished.

5 Simulation and Results

In this section, a simulation is conducted, in which three identical autonomous vehicles in the adjacent lanes achieve stable platoon formation by using the proposed controllers considering the uncertainty of tire cornering stiffness. Each vehicle could communicate with each other without delay by using vehicle-to-vehicle communication module. The maximal variation of cornering stiffness for both front and rear tires is 40% of its normal value. An eight-DOF nonlinear vehicle model is employed in this simulation, whose main parameters are listed in Table 1.

Table 1 The parameters for the vehicles
Fig. 7
figure 7

Motion trails of three vehicles

Fig. 8
figure 8

Yaw angle of three vehicles

Fig. 9
figure 9

Longitudinal speed of three vehicles

Fig. 10
figure 10

Yaw rates of three vehicles

Fig. 11
figure 11

The stability of longitudinal speed versus yaw rate of vehicle A

Fig. 12
figure 12

The stability of longitudinal speed versus yaw rate of vehicle B

Fig. 13
figure 13

The stability of longitudinal speed versus yaw rate of vehicle C

Initially, three vehicles are driven in two adjacent lanes under different speeds and then controlled to form a platoon in another anticipant lane with desired velocity and inter-vehicle distances without collision. The simulation results are shown in Figs. 7, 8, 9, 10, 11, 12 and 13, where Veh means vehicle, Ref indicates reference value, and Re refers to real value.

Figures 7 and 8 show the trajectory and yaw angle for each vehicle during the platoon formation. The distances between adjacent vehicles are longer than 4 m all the way and converge to 10 m at the end. In addition, the yaw angle of each vehicle all drops to zero at the end. In Figs. 9 and 10, the variations of longitudinal velocity and yaw rate for each vehicle are plotted with values from the real vehicle and the references generated by planning level. It can be observed that both trajectory and yaw rate tracking errors are insignificant when using the proposed RMPC controller.

Figures 11, 12 and 13 show the trajectories of yaw rate with respect to longitudinal velocity for each vehicle, where the red lines are the stability boundaries. As seen, the longitudinal velocity and yaw rate of each vehicle converge to 20 m/s and zeros at the time 6 s. In addition, the yaw rate of each vehicle does not exceed its stability boundary; thus, no sideslip occurs and the safe driving can be guaranteed during the platoon formation.

6 Conclusion

This paper proposes a distributed robust multi-vehicle control system to achieve safe and stable platoon formation, and it analyzes and optimizes the vehicle dynamics and the uncertainty of tire cornering stiffness. The hierarchical control framework is divided into two levels, i.e., planning level and tracking level. In the higher planning level, the vehicle dynamics is involved into the flocking algorithm by introducing the stability boundary. By optimizing the key parameters in flocking algorithm to satisfy the stability requirement, the references for the lower level, i.e., vehicle yaw rate and longitudinal velocity, are generated. For the lower tracking level, a lumped disturbance observer is designed and RMPC presented to achieve offset-free tracking control. Finally, simulations are conducted to evaluate the vehicle stability and tracking accuracy of the proposed controllers.

Although the vehicle stability in platoon formation has been guaranteed, there still remain some open questions, specifically, two burning problems: first, it will be challenging to ensure stable, efficient and comfortable formation simultaneously. Second, the real-time implementation of the proposed control strategy is another challenge. To solve these, it is aimed to integrate the vehicle dynamics model into flocking algorithm directly to reduce the computation efforts in future work.