Keywords

1 Introduction

Adaptive Cruise Control (ACC) has the purpose of maintaining the speed of the host vehicle at a speed set by the driver as a conventional cruise control system would. ACC also has the ability to detect a slower leading vehicle and follow it at constant speed equal to that of the leading vehicle while maintaining a constant relative time headway policy.

The proposed Event-Driven ACC (EDACC) serves as longitudinal control driver assistant by accelerating, decelerating, and stopping the host vehicle given the measurements of the range sensors that measure the relative speed and distance of the leading vehicle [1]. Pressure sensors that can detect the presence of a tire puncture or leak and pre-entered data combined with GPS technology that transfers the speed limit zone to the EDACC if and when the vehicle enters a speed limit zone [2]. EDACC does not attempt any lateral control, such as lane change. The speed of the host vehicle is specified by the controller depending on the specified mode of operation by the logic incorporated in the Stateflow Chart. If the logic leads to conventional cruise mode, the controller will only attempt to achieve a constant vehicle speed equal to that set by the driver. If the logic leads to vehicle following mode, the controller will attempt to maintain a speed equal to the leading vehicle, i.e. a null relative speed, while reserving an inter-vehicle distance with constant time headway policy, where the constant time headway is specified by the driver. The controller must achieve the desired distance and speed, without colliding with the leading vehicle and without using excessive acceleration and deceleration that may discomfort or endanger passengers. Accelerating and decelerating the vehicle may lead to discomfort and probably to safety endangerment. The controllers manipulate the throttle and brake and hard braking may lead to swaying and in some cases sliding [3, 4].

There are many controllers which have been proposed for ACC [57]. From Proportional-Integral (PI), Proportional-Integral-Derivative (PID), and Constant Time Gap (CTG) controllers in [6], to Sliding Mode Control in [7] and Model-Predictive Control (MPC) in [5]. There are also different inter-vehicle distance policies, such as constant spacing, constant time headway policy, and variable time gap policy [68]. Constant spacing policies are deemed to be unsuitable for autonomous control applications [9], since they do not ensure string stability. The main purpose of this study is the introduction of discrete-events to the conventional ACC model.

2 Vehicle Model

The vehicle model, introduced in this study, is constituted of several subsystems, divided into two large groups, longitudinal vehicle dynamics and driveline dynamics. Longitudinal vehicle dynamics present all external forces acting on the vehicle; rolling resistance, gravitational, aerodynamic drag, and longitudinal tire forces, while driveline dynamics present the internal forces; engine, transmission and wheel dynamics.

2.1 Longitudinal Vehicle Dynamics

The application of Newton’s law presents the longitudinal dynamics equation [6],

$$ m\mathop x\limits^{..} = F_{x} - F_{ad} - R_{x} - F_{g} $$
(1)

where \( F_{x} \) is the longitudinal tire force, \( F_{ad} \) is the equivalent longitudinal aerodynamic drag force, \( R_{x} \) is the force due to the rolling resistance at the tires, \( F_{g} \) is the gravitational force given by \( mg\sin \theta \), where \( m \). is the mass of the vehicle, \( g \) is the acceleration due to gravity, and \( \theta \) is the road inclination angle. The angle \( \theta \) is defined to be positive clockwise when the longitudinal direction of motion \( x \) is towards the left. It is defined to be positive counter clockwise when the longitudinal direction of motion x is towards the right.

The aerodynamic drag force can be determined through the following function [6],

$$ F_{ad} = \frac{1}{2} \rho A_{F} C_{d} \left( {V_{x} + V_{wind} } \right)^{2} = C_{ad} \left( {V_{x} + V_{wind} } \right)^{2} $$
(2)

where \( \rho \) is the mass air density, \( {\text{C}}_{\text{d}} \) is the aerodynamic drag coefficient, \( A_{F} \) is the frontal area of the vehicle, which is the projected area of the vehicle in the direction of travel, \( V_{x} \) is the longitudinal vehicle velocity, \( V_{wind} \) is the wind velocity, in this study wind velocity is considered negligible in comparison to vehicle velocity and will be - omitted when considering \( F_{ad} \).

Wong developed the following relation between frontal area and car mass [10],

$$ A_{F} = 1.6 + 0.00056\left( {m - 765} \right) $$
(3)

where, \( 800\,{\text{kg}} \le m \le 2000\,{\text{kg}} \), and the drag coefficient \( C_{d} \) for automobiles ranges between \( 0.3 \) and \( 0.4 \). The rolling resistance can be obtained from [11],

$$ R_{x} = C_{r} mg\cos \theta . $$
(4)

Where \( C_{r} \) is the rolling resistance coefficient.

\( F_{x} \) is a function of the slip ratio and the friction coefficient between tire and road [6]. But in this paper, the slip between tires and road is assumed to be zero, i.e. wheel velocity will be considered equal to vehicle velocity; and the longitudinal tire force expression will be extracted from the wheel dynamics.

2.2 Driveline Dynamics

The driveline is composed of engine, transmission, wheel, torque converter and final drive [6]. The engine dynamics equation is,

$$ I_{e} \dot{\omega }_{e} = T_{e} - T_{p} $$
(5)

where, \( T_{e} \) is the net engine torque, \( T_{p} \) is the pump torque, \( I_{e} \) is the engine’s moment of inertia, and \( \omega_{e} \) is the engine angular velocity. In the simulation the net engine torque is obtained through a look up table to form the engine map that determines this torque as a function of throttle opening percentage and engine rotational speed.

The torque converter is considered to be locked, and that there is ideal fluid coupling, which yields the following equation [6],

$$ T_{t} = T_{p} = - 6.1 \times 10^{ - 6} \omega_{e}^{2} $$
(6)

where, \( T_{t} \) is the turbine torque. And the transmission dynamics equation is [6],

$$ I_{t} \dot{\omega }_{t} = T_{t} - RT_{w} $$
(7)

where \( T_{w} \) is the wheel torque, \( I_{t} \) is the transmission’s moment of inertia, \( \omega_{t} \) is the transmission angular velocity, and \( R \) the total gear speed transmission ratio.

As for the wheel dynamics equation it is given by [6],

$$ I_{w} \dot{\omega }_{w} = T_{w} - T_{br} - r_{eff} F_{x} $$
(8)

where \( T_{br} \) is the brake torque, \( I_{w} \) is the wheel’s moment of inertia, \( \omega_{w} \) is the wheel angular velocity, and \( r_{eff} \) is the wheel’s effective radius. Given the previous assumptions that there is zero slip and the transmission is locked; i.e. \( T_{t} = T_{p} \), \( \omega_{w} = R\omega_{e } \) and \( \omega_{t} = \omega_{e } \) leads to the following expression of \( F_{x} \),

$$ F_{x} = \frac{{ - 6.1 \times 10^{ - 6} \omega_{e}^{2} - \dot{\omega }_{e} \left[ {I_{t} + I_{w} R^{2} } \right] - T_{br} R}}{{r_{eff} R}} $$
(9)

And the longitudinal vehicle dynamic Eq. (1) becomes;

$$ \mathop x\limits^{..} = \frac{1}{m}\left[ {\frac{{\dot{\omega }_{e} \left[ { I_{t} + I_{w} R_{T}^{2} } \right] + 6.1 \times 10^{ - 6} \omega_{e}^{2} - T_{br} R_{T} }}{{r_{eff} R_{T} }} - C_{ad} V_{x}^{2} - mg\left( {C_{r} \cos \theta - \sin \theta } \right)} \right] $$
(10)

3 ACC Controllers

The ACC itself is composed of the Lower Level Controller (LLC) and Upper Level Controller (ULC) [5]. The ULC role is to decide on whether the vehicle should be in cruise control mode or in vehicle following mode, and then compute the desired acceleration, \( a_{d} \). The desired acceleration is then transferred to the LLC that uses host vehicle dynamics to determine the throttle position or brake input torque, \( T_{br} \) [6].

3.1 System Limitations & Switching Logic

The ACC is restricted by the following physical constraints:

  1. 1.

    An ACC vehicle cannot have a negative velocity during a transitional maneuver [1].

  2. 2.

    For vehicle drag force limitation [6], driving comfort issues [46], and minimum jerking purposes [5], an ACC vehicle’s acceleration is limited between –4.9 m/s2 and 2.45 m/s2 [12].

  3. 3.

    The inter-vehicular distance between host and leading vehicles must always remain bigger than a minimum safety distance dmin that is needed to avoid a collision if the vehicles applied brakes to the fullest at the same time, and smaller than a distance that can allow another car to cut-in between the two vehicles [6].

The ACC needs to follow a switching strategy that determines whether the ACC should be in regular CC mode or if it should be trailing a vehicle and enter the ACC mode. The following approach is based on the logical operation algorithm suggested in [13], which considers that an ACC vehicle does not need to switch modes, unless the leading vehicle has a lower velocity than that of the host vehicle, and is at distance less or equal to the change distance. Table 1 identifies the ACC’s mode of operation, function of the set vehicle speed \( v_{set} \), leading vehicle speed \( v_{l} \), inter-vehicular distance \( d \), and the change distance \( d_{c} \).

Table 1. Switching logic between CC and ACC

For a constant headway spacing policy, \( d_{c} \) has the following relationship [13];

$$ d_{c} = l + d_{0} + t_{h} v_{x} $$
(11)

Where, \( l \) is the vehicle’s length, \( d_{0} \) is an additional safety distance needed to keep the vehicles from colliding, \( t_{h} \) is the time headway constant and \( v_{x} \) is the vehicle’s longitudinal speed.

3.2 Upper Level Controller

The ULC is responsible for calculating the acceleration at which the vehicle must travel in order to attain the desired speeds and spacing or headway from other vehicles. This study will be based on the simple ACC model, where the control input is a first-order lag [6]. The model for this controller is,

(12)

where is the desired acceleration in order to meet the system’s requirements, \( \uptau \) is the time lag, and will be considered equal to 0.5 s in this study as analytical and experimental studies show that this is its corresponding value, and u is the system’s control input.

Cruise Mode PI Controller.

A typical controller for the cruise control mode is the Proportional-Integral controller [6],

$$ u(t) = - k_{p} (v_{x} - v_{s} ) - k_{I} \int\limits_{0}^{t} {(v_{x} - v_{s} )dt} $$
(13)

where \( v_{s} \) is the driver’s set vehicle speed, \( k_{p} = 0.473 \) is the proportional gain, and \( k_{I} = 6.782 \) is the integrator’s proportional gain, these values were computed using Matlab optimal design.

3.3 Lower Level Controller

The LLC is responsible for interpreting the calculated acceleration value in the upper controller to yield the throttle position and the torque brake inputs. Here, all assumptions that took part of vehicle modeling will be adopted, and the longitudinal vehicle speed it is approximated to be [6],

$$ \dot{x} \cong r_{eff} \omega_{w} . $$
(14)

Hence, the longitudinal acceleration can be expressed as,

(15)

Under these assumptions the dynamics relating \( \omega_{e} \), \( T_{e} \), \( T_{br} \) can be linked with the expression [6],

$$ \dot{\omega }_{e} = \frac{{T_{e } - C_{ad} R^{3} r_{eff}^{3} \omega_{e}^{2} - R\left( {r_{eff} R_{x} + r_{eff} mg\sin \theta + T_{br} } \right) }}{{J_{e} }} $$
(16)

where, \( J_{e} = I_{e} + I_{t} + R^{2} I_{w} + mR^{2 } r_{eff}^{2} \).

Since using brake and throttle pedals at the same time will not be allowed, \( T_{br} \) will be zero during throttle control and \( T_{e} \) can be computed using the following relationship,

(17)

Then using an inverse engine map, having obtained \( T_{e} \), and deriving \( \omega_{e} \) from the expression of , the percentage of throttle input is obtained [14].

If the ULC decides that braking is needed then the LLC will use the actual engine torque, which is obtained from the vehicle itself, will be used, and \( T_{br} \) will be obtained using the following expression,

(18)

Connecting both the ULC and LLC will give the overall ACC controller. The inputs to the ULC are the host vehicle speed, v x , the leading vehicle speed, v l , desired vehicle speed or the set speed, v s , and the measured distance, d. the ULC computes the desired acceleration, a d , for the LLC. The LLC also takes in from the vehicle model the host vehicle speed, v x , the engine angular speed, Ne, and the engine torque, Te. The LLC can also consider the Road Gradient in determining the throttle position in percentage and the brake torque, T br , which will be returned to the vehicle, and the overall model of interaction between ACC and vehicle is shown in Fig. 1. for the purpose of simplifying the simulation, the range sensor is considered to give only the leading vehicle’s speed, even though its real function is to give the relative velocity, but since the leading vehicle’s velocity is equal to the relative velocity added to the host vehicle velocity, this simplification can be made. Also the relative position can be obtained through the integration of the difference between the two vehicles velocities.

Fig. 1.
figure 1

Host vehicle with Adaptive Cruise Control that includes both the upper and lower level controllers

4 Event Driven ACC

A Discrete Event System (DES) is a dynamic system that deals with specific events that may occur abruptly at an unknown instant. In order to relate DES to ACC, one can consider possible events that can occur while driving [15]. The ACC must deal with a car that cuts in, or a leading car that slows down abruptly, a road block, a car that fully stopped at a red light, etc. A StateFlow Chart (SFC) can represent graphically a Finite State Machine (FSM) which simplifies and facilitates the application of DESs and the inclusion of special events [14]. The use of a SFC to represent transitions between modes facilitates the modeling of an Event-Driven System (EDS). In another words, EDS gives the ACC the ability to adapt and include new conditions to improve its capability of assisting the driver in case of emergencies and abrupt incidents that could lead to an accident, as well as being the milestone that leads to complete vehicle autonomy.

The use of a stateflow chart to represent transitions between modes facilitates the modeling of event-driven systems. In other words, the event-driven system gives the ACC system the ability to adapt and include new conditions to improve its ability to assist the driver in case of emergencies and abrupt incidents that could lead to an accident and as well as being the milestone of the road that leads to complete vehicle autonomy.

The ULC relies on the stateflow chart, Fig. 2, to determine the appropriate mode of operation [15].

Fig. 2.
figure 2

The Event-Driven ACC

In order to give the driver full control over the activity of the ACC, the first two evident states of an ACC are whether it is ON or OFF, these states are conveyed to the controller through the SET signal, coming from the ACC push button present on the car’s dashboard. After activation, a conventional ACC, goes through four different states [15]:

  1. 1.

    When there are no close vehicles travelling at a speed lower than the driver’s set speed \( v_{s} \), the ACC’s goal is to get the host vehicle to travel at this exact set speed, this state shall be known as: Cruise.

  2. 2.

    When a preceding vehicle is detected, the controller’s first goal is to reach the desired inter-vehicle pre-set distance ddes, it must start slowing down the car after it reaches the maximum following headway distance dmax, and then after reaching the desired distance it will move on to the next state, this state shall be known as: Gap_Reduction.

  3. 3.

    After the inter-vehicular distance is achieved, the controller’s next goal is to achieve the leading vehicle’s speed \( v_{l} \) in order to maintain this distance, this state shall be known as: Adaptive_Speed.

  4. 4.

    If the controller was not able to slow down the vehicle fast enough to keep the vehicle within the desired headway, then a braking operation must occur before the car reaches an unsafe distance dmin, i.e. a distance smaller than that needed to avoid a collision if the two vehicles were to apply maximum braking at the same time, this state shall be known as: Brake.

In order to simplify and lessen the states, the ACC controller can be used to merge the Gap_Reduction state and the Adaptive_Speed state, into one state that achieves both their goals, this state shall be known as: Trail.

In this paper, an EDACC is introduced, and presents two new events that have been added to the conventional functions of an ACC. The first is the ability to detect a puncture or leak in a tire, Flat_Tire, through a pressure sensor, and the second uses pre-entered data that uses GPS technology to determine speed limit zones, Speed_Limit, and transmits it to the ACC in order to calculate the needed throttle or brake actuators position for the vehicle to travel at the speed limit \( v_{GPS} \), while also notifying the driver that he has entered a speed limit zone with the help of GPS technology [2]. A flat tire requires a special treatment, as a first step the throttle input must be maintained momentarily, and then slowly and gradually must be decreased, and hard braking is disallowed before the car comes to a safe stop [16]. As for the speed limit \( v_{GPS} \), it can be treated the same as the driver’s set speed. The details of the stateflow chart shown in Fig. 2 are exemplified in Fig. 3.

Fig. 3.
figure 3

Stateflow chart of the introduced Event-Driven ACC

Table 2 shows explicitly how the system transitions from one state to the other.

Table 2. EDACC state transitions

5 Simulation

To simulate the adaptability of the proposed ACC, the desired host vehicle speed, v s , is set to 60 km/h. Figure 4 shows the host vehicle speed, v x (with CC dashed line and with ACC solid line) against the assumed leading vehicle speed, v l (dotted line) with a headway of 8 m. At zero simulation time the host vehicle is traveling at 36 km/h where the ACC system was activated at this instant and the driver sets the speed to 60 km/h. Note that when the leading vehicle speed, \( v_{l} = 40\,{\text{km/h}}\;{\text{at}}\;100\, < \,t\, < \,200 \), the host vehicle follows the leading vehicle. When the leading vehicle speed, \( v_{l} = 70\,{\text{km/h}} \) at \( 200 < t < 350, \) the host vehicle speed remains at the set speed of 60 km/h. And eventually, when the leading vehicle stops, the host vehicle simply follows and stops for \( t \ge 350 \). Note that a host vehicle with a regular CC, its speed is equal to the set speed of 60 km/h at all times regardless what the leading vehicle speed is.

Fig. 4.
figure 4

Comparative performance between two host vehicles one with CC and another with ACC with desired speed was set to 60 km/h

The EDACC model was tested through the following scenario, Fig. 5, with a headway of 8 m between the host and leading vehicles: at zero simulation time the host vehicle is traveling at 36 km/h where the EDACC system was activated at this instant and the driver sets the speed to 60 km/h.

Fig. 5.
figure 5

Comparative performance between two host vehicles one with ACC and another with EDACC with desired speed was set to 60 km/h

A leading vehicle is moving at a speed, \( v_{l} \, = \,60\,{\text{km/h}}\;{\text{at}}\;t\, \ge \,0 \). At \( 50 < t < 100 \), the leading vehicle slows down to 40 km/h. Consequently, the host vehicle follows and its speed drops to 40 km/h. When the leading vehicle speed, \( v_{l} = 65\,{\text{km/h}}\;{\text{at}}\; 100\, < \,t\, < \,150, \) the host vehicle speed remains at the set speed of 60 km/h. Then at t = 150, a new vehicle traveling at 50 km/h cuts in and then changes lane at t = 225. The host vehicle adjusts its speed to 50 km/h until the intruder vehicle changes lane at t = 225 and then picks up its speed to the set speed of 60 km/h since the leading vehicle speed is above 60 km/h between \( 225 < t < 300 \). Until now the performance of two host vehicles one with ACC and the other with EDACC is the same. However, at t = 300, the EDACC slows the host vehicle down to 40 km/h because it enters a 40 km/h speed limit zone whereas the host vehicle with ACC kept following the leading vehicle and it did not honor the speed limit. Finally, At t = 400, the host vehicle with EDACC stops because of a warning message indicating that one of the tires’ air pressure is low while the host vehicle with a regular ACC kept going and did not stop for this emergency.

6 Conclusion

In this paper, a simplified longitudinal vehicle model was derived. The Adaptive Cruise Controller (ACC) composed of the upper and lower level controllers was also designed and simulated. Also, the importance of Discrete Event System (DES) and how stateflow charts can be used in order to facilitate the design of an Event-Driven Adaptive Cruise Controller (EDACC) was introduced. Two new modes of operation, namely speed-limit zone and flat tire occurrence, have been added to the conventional ACC model to yield the EDACC. Future work can be done on improving the system response in going from one state to another. This work also suggests that well designed EDACC can ultimately lead to an autonomous vehicle.