Utopi
a

SUMO's integrated CACC car-following model is based on the work of Milanés & Shladover [17], Xiao, Wang & van Arem [18] and Xiao, Wang, Schakel & van Arem [19]. The developed control law in the CACC algorithm is explicitly divided into four modes: (i) speed control, (ii) gap control, (iii) gap-closing control, and (iv) collision avoidance.

The speed control mode maintains the driver's desired speed and is activated when no preceding vehicles are detected by the sensors or when the time-gap is larger than 2 s. It is governed by:

vnew=v+Ksc(vvdes)v_{new} = v + K_{sc} \cdot (v - v_{des})

where vnewv_{new} is the new speed, vv is the current speed, KscK_{sc} is the speed control gain, and vdesv_{des} is the desired speed. A minimum gap (speedControlMinGap) is also evaluated to ensure smooth acceleration when approaching a stopped vehicle.

The gap control mode maintains a constant time gap between the CACC-equipped vehicle and its predecessor. It is activated when the gap deviation ϵgap\epsilon_{gap} and speed deviation ϵv\epsilon_{v} are concurrently smaller than 0.2 m and 0.1 m/s, respectively:

vnew=v+Kgc,gapϵgap+Kgc,gap˙ϵvv_{new} = v + K_{gc,gap} \cdot \epsilon_{gap} + K_{gc,\dot{gap}} \cdot \epsilon_{v}

where Kgc,gapK_{gc,gap} and Kgc,gap˙K_{gc,\dot{gap}} are the gap control gains for gap and gap rate errors.

The gap-closing control mode enables a smooth transition from speed control to gap control and is triggered when the time-gap is less than 1.5 s:

vnew=v+Kgcc,gapϵgap+Kgcc,gap˙ϵvv_{new} = v + K_{gcc,gap} \cdot \epsilon_{gap} + K_{gcc,\dot{gap}} \cdot \epsilon_{v}

where Kgcc,gapK_{gcc,gap} and Kgcc,gap˙K_{gcc,\dot{gap}} are the gap-closing control gains. If the time-gap is between 1.5 s and 2 s, the previous control strategy is retained for hysteresis and smooth transfer between modes.

The collision avoidance mode prevents rear-end collisions under safety-critical conditions. It is activated when the time-gap is less than 1.5 s and ϵgap\epsilon_{gap} is negative:

vnew=v+Kca,gapϵgap+Kca,gap˙ϵvv_{new} = v + K_{ca,gap} \cdot \epsilon_{gap} + K_{ca,\dot{gap}} \cdot \epsilon_{v}

where Kca,gapK_{ca,gap}​ and Kca,gap˙K_{ca,\dot{gap}}​​​ are the collision avoidance control gains. Additionally, if the CACC-computed speed exceeds the safe speed calculated by the default Krauss model by a margin (collisionAvoidanceOverride), the speed is limited to the Krauss-speed plus the margin to ensure safety.

vnew=v+{Ksc(vdesv)for Speed Control, when no preceding vehicles are detected or time-gap>2s,Kgc,gapϵgap+Kgc,gap˙ϵvfor Gap Control, when ϵgap<0.2m and ϵv<0.1m/s,Kgcc,gapϵgap+Kgcc,gap˙ϵvfor Gap-Closing Control, when time-gap<1.5s,Kca,gapϵgap+Kca,gap˙ϵvfor Collision Avoidance, when time-gap<1.5s and ϵgap<0.v_{\text{new}} = v + \left\{ \begin{array}{ll} K_{\text{sc}} \cdot (v_{\text{des}} - v) & \text{for Speed Control, when no preceding vehicles are detected or } \text{time-gap} > 2s, \\ K_{\text{gc,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{gc},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{for Gap Control, when } \epsilon_{\text{gap}} < 0.2m \text{ and } \epsilon_{v} < 0.1m/s, \\ K_{\text{gcc,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{gcc},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{for Gap-Closing Control, when } \text{time-gap} < 1.5s, \\ K_{\text{ca,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{ca},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{for Collision Avoidance, when } \text{time-gap} < 1.5s \text{ and } \epsilon_{\text{gap}} < 0. \end{array} \right.

SUMO's integrated CACC car-following model is based on the work of Milanés & Shladover [17], Xiao, Wang & van Arem [18] and Xiao, Wang, Schakel & van Arem [19]. The developed control law in the CACC algorithm is explicitly divided into four modes: (i) speed control, (ii) gap control, (iii) gap-closing control, and (iv) collision avoidance. The parameters used in the CACC controller and their default values are listed in Table I.

Table I: CACC Controller Parameters and Default Values

ParameterDefault ValueDescription
KscK_{sc}-0.4Speed control gain, governing the speed control mode.
Kgc,gapK_{gc,gap}0.45Gap control gain for gap error, used in gap control mode.
Kgc,gap˙K_{gc,\dot{gap}}0.0125Gap control gain for gap rate error, used in gap control mode.
Kgcc,gapK_{gcc,gap}0.005Gap-closing control gain for gap error, used in gap-closing control mode.
Kgcc,gap˙K_{gcc,\dot{gap}}0.05Gap-closing control gain for gap rate error, used in gap-closing control mode.
Kca,gapK_{ca,gap}0.45Collision avoidance control gain for gap error, used in collision avoidance mode.
Kca,gap˙K_{ca,\dot{gap}}0.05Collision avoidance control gain for gap rate error, used in collision avoidance mode.
speedControlMinGap1.66 mMinimum gap for speed control to ensure smooth acceleration.
collisionAvoidanceOverride2 m/sMargin for speed limit exceeding the safe speed calculated by the Krauss model.
vnewv_{new}-The new speed calculated by the control mode.
vv-The current speed of the vehicle.
vdesv_{des}-The desired speed set by the driver or the cruise control system.
ϵgap\epsilon_{gap}-The deviation from the desired gap between the vehicle and its predecessor.
ϵv\epsilon_{v}-The speed deviation from the desired speed or the speed of the preceding vehicle.

SUMO's integrated CACC car-following model is based on the work of Milanés & Shladover [17], Xiao, Wang & van Arem [18], and Xiao, Wang, Schakel & van Arem [19]. The developed control law in the CACC algorithm is explicitly divided into four modes: (i) speed control, (ii) gap control, (iii) gap-closing control, and (iv) collision avoidance. The control law for each mode is given by:

vnew=v+{Ksc(vdesv)Condition 1,Kgc,gapϵgap+Kgc,gap˙ϵvCondition 2,Kgcc,gapϵgap+Kgcc,gap˙ϵvCondition 3,Kca,gapϵgap+Kca,gap˙ϵvCondition 4.v_{\text{new}} = v + \left\{ \begin{array}{ll} K_{\text{sc}} \cdot (v_{\text{des}} - v) & \text{Condition 1}, \\ K_{\text{gc,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{gc},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{Condition 2}, \\ K_{\text{gcc,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{gcc},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{Condition 3}, \\ K_{\text{ca,gap}} \cdot \epsilon_{\text{gap}} + K_{\text{ca},\dot{\text{gap}}} \cdot \epsilon_{v} & \text{Condition 4}. \end{array} \right.

Condition 1: Speed Control, when no preceding vehicles are detected or time-gap > 2s.

Condition 2: Gap Control, when ϵgap<0.2m\epsilon_{\text{gap}} < 0.2m and ϵv<0.1m/s\epsilon_{v} < 0.1m/s.

Condition 3: Gap-Closing Control, when time-gap < 1.5s.

Condition 4: Collision Avoidance, when time-gap < 1.5s and ϵgap<0\epsilon_{\text{gap}} < 0.

The speed control mode maintains the driver's desired speed and is activated under Condition 1. The gap control mode maintains a constant time gap and is activated under Condition 2. The gap-closing control mode enables a smooth transition from speed control to gap control and is triggered under Condition 3. If the time-gap is between 1.5 s and 2 s, the previous control strategy is retained for hysteresis and smooth transfer between modes. The collision avoidance mode prevents rear-end collisions and is activated under Condition 4. Additionally, if the CACC-computed speed exceeds the safe speed calculated by the Krauss model by a specified margin, the speed is limited to ensure safety.

The California PATH program has developed a CACC car-following model based on the work of Milanés & Shladover [20], Nowakowski, O'Connell, Shladover & Cody [21], and Milanés, Shladover, Spring, Nowakowski, Kawazoe & Nakamura [22]. The PATH CACC control law is designed using a proportional-derivative (PD) controller and is given by:

ai=kpϵi+kdϵ˙ia_i = k_p \cdot \epsilon_i + k_d \cdot \dot{\epsilon}_i

where aia_i is the acceleration command for the ii-th vehicle, ϵi\epsilon_i is the gap error between the actual gap and the desired gap, and ϵ˙i\dot{\epsilon}_i is the rate of change of the gap error. The control gains kpk_p and kdk_d are the proportional and derivative gains, respectively.

The desired inter-vehicle gap is calculated using a constant time-gap policy:

di=ri+hvid_i = r_i + h \cdot v_i

where did_i is the desired gap for the ii-th vehicle, rir_i is the standstill distance, hh is the constant time-gap, and viv_i is the speed of the ii-th vehicle.

The PATH CACC model also includes a gap-closing controller for smooth transitions when a vehicle cuts in between two CACC vehicles. The gap-closing controller linearly increases the time-gap from a lower value to the desired time-gap over a specified transition period.

The key parameters of the PATH CACC controller are listed in the following table:

ParameterDefault ValueDescription
kpk_p0.45Proportional gain for gap error
kdk_d0.0125Derivative gain for gap rate error
rir_i2.0 mStandstill distance
hh0.6 sConstant time-gap
tgct_{\text{gc}}5.0 sGap-closing transition period for cut-in scenarios
hgch_{\text{gc}}0.2 sInitial time-gap for gap-closing controller in cut-in scenarios

The PATH CACC model has been extensively tested and validated through both simulations and field experiments, demonstrating its effectiveness in improving traffic flow stability and increasing road capacity.

\section{Proposed Adaptive CACC Controller} \subsection{Limitations of SUMO CACC Algorithm under Uncertainty and Communication Delay}

The SUMO CACC algorithm, based on the work of Milanés & Shladover [17], Xiao, Wang & van Arem [18], and Xiao, Wang, Schakel & van Arem [19], provides a foundation for cooperative adaptive cruise control. However, it has limitations when dealing with uncertainty and communication delays in real-world scenarios.

Firstly, the SUMO CACC algorithm does not explicitly consider the presence of disturbances, such as road conditions, weather, and vehicle dynamics uncertainties. These disturbances can lead to deviations from the desired spacing and velocity, compromising the stability and performance of the platoon.

Secondly, the SUMO CACC algorithm assumes instantaneous communication between vehicles, which is unrealistic in practice. Communication delays can introduce instability and lead to string instability, where spacing errors amplify as they propagate along the platoon.

To address these limitations, we propose an adaptive CACC controller that incorporates disturbance observers, feedforward control, and sliding-mode dynamic gain adjustment. The proposed controller aims to enhance the robustness and performance of the platoon under uncertainty and communication delays.

\subsection{Proposed Adaptive CACC Controller} The proposed adaptive CACC controller extends the work of Hu et al. [40] by incorporating a finite-time disturbance observer (DO) to estimate and compensate for both mismatched velocity disturbance di1d_{i1} and matched acceleration disturbance di2d_{i2}. The control law for vehicle ii is given by: ui=vi+ai,ff+d^i2d˙^i1+kvev,ikgeg,i+kg˙eg˙,iu_i = v_i + a_{i,ff} + \hat{d}_{i2} - \hat{\dot{d}}_{i1} + k_v e_{v,i} - k_g e_{g,i} + k_{\dot{g}} e_{\dot{g},i} where uiu_i is the control input (desired acceleration), viv_i is the current velocity, ai,ffa_{i,ff} is the feedforward acceleration term, d^i2\hat{d}_{i2} and d˙^i1\hat{\dot{d}}_{i1} are the estimated acceleration and velocity disturbances from the DO, kvk_v is the speed control gain, ev,ie_{v,i} is the velocity error, kgk_g is the gap control gain for gap error, eg,ie_{g,i} is the gap error, kg˙k_{\dot{g}} is the adaptive gain for gap rate error, and eg˙,ie_{\dot{g},i} is the gap rate error.

The feedforward acceleration term ai,ffa_{i,ff} is calculated as: ai,ff=kff(vleadertargetvleader)tanh(aleaderτleader)(vleadertargetvleader)tanh(afrontτfront)(vfrontvleader)a_{i,ff} = k_{ff} (v_{leader}^{target} - v_{leader}) \tanh(a_{leader} \tau_{leader}) (v_{leader}^{target} - v_{leader}) \tanh(a_{front} \tau_{front}) (v_{front} - v_{leader}) where kffk_{ff} is the feedforward gain, vleadertargetv_{leader}^{target} and vleaderv_{leader} are the target and current velocities of the platoon leader, aleadera_{leader} and τleader\tau_{leader} are the acceleration and time delay of the leader, afronta_{front} and τfront\tau_{front} are the acceleration and time delay of the front vehicle, and vfrontv_{front} is the velocity of the front vehicle.

The disturbance observer estimates the mismatched velocity disturbance di1d_{i1} and matched acceleration disturbance di2d_{i2} using a finite-time convergent structure, as described in Hu et al. [40]. The estimated disturbances are then compensated for in the control law to enhance disturbance rejection.

The sliding-mode dynamic gain kg˙k_{\dot{g}} is adjusted based on the observed spacing error: kg˙=kg˙,0(1+ksmtanh(e^g,i/dmin))k_{\dot{g}} = k_{\dot{g},0} (1 + k_{sm} \tanh(|\hat{e}_{g,i}| / d_{min})) where kg˙,0k_{\dot{g},0} is the base gain for gap rate error, ksmk_{sm} is the sliding-mode gain, e^g,i\hat{e}_{g,i} is the observed gap error, and dmind_{min} is the minimum gap threshold. The sliding-mode term enables rapid reduction of spacing errors when they exceed the minimum gap threshold.

The key parameters and variables of the proposed controller are summarized in the following table:

Parameter/VariableDescription
uiu_iControl input (desired acceleration) for vehicle ii
viv_iCurrent velocity of vehicle ii
ai,ffa_{i,ff}Feedforward acceleration term
d^i2\hat{d}_{i2}Estimated matched acceleration disturbance
d˙^i1\hat{\dot{d}}_{i1}Estimated derivative of mismatched velocity disturbance
kvk_vSpeed control gain
ev,ie_{v,i}Velocity error
kgk_gGap control gain for gap error
eg,ie_{g,i}Gap error
kg˙k_{\dot{g}}Adaptive gain for gap rate error
eg˙,ie_{\dot{g},i}Gap rate error
kffk_{ff}Feedforward gain
vleadertargetv_{leader}^{target}Target velocity of platoon leader
vleaderv_{leader}Current velocity of platoon leader
aleadera_{leader}Acceleration of platoon leader
τleader\tau_{leader}Time delay of platoon leader
afronta_{front}Acceleration of front vehicle
τfront\tau_{front}Time delay of front vehicle
vfrontv_{front}Velocity of front vehicle
kg˙,0k_{\dot{g},0}Base gain for gap rate error
ksmk_{sm}Sliding-mode gain
e^g,i\hat{e}_{g,i}Observed gap error
dmind_{min}Minimum gap threshold

By incorporating a finite-time disturbance observer, feedforward control, and sliding-mode dynamic gain adjustment, the proposed adaptive CACC controller aims to enhance the robustness and performance of the platoon under uncertainty and communication delays. The disturbance observer estimates and compensates for external disturbances, the feedforward term anticipates acceleration changes, and the sliding-mode gain enables rapid reduction of spacing errors. Together, these elements address the limitations of the SUMO CACC algorithm and provide a more resilient and effective cooperative adaptive cruise control strategy for real-world scenarios.

ai,ff=kff(vleadertargetvleader)tanh(aleaderτleader)(vleadertargetvleader)tanh(afrontτfront)(vfrontvleader)\begin{align} a_{i,ff} = & k_{ff} (v_{leader}^{target} - v_{leader}) \cdot \tanh(a_{leader} \tau_{leader}) \cdot \\ & (v_{leader}^{target} - v_{leader}) \cdot \tanh(a_{front} \tau_{front}) \cdot \\ & (v_{front} - v_{leader}) \end{align}