You are on page 1of 5

Adaptive Cruise Control

Abstract
After a generic description of the ADAS, what cruise control and adaptive cruise control consists
of will be quickly described. The aim is to initially implement a first-level controller based on 𝐻2
and 𝐻∞ to be able to evaluate its performance using simulink. Once this is done, a second level
controller will be implemented using the driving toolbox offered by matlab which allows the
simulation of the sensors necessary for the purpose.

Introduction driver can set the distance to keep from the


cars in front of him within a certain safety
An advanced driver-assistance system margin. This system provides for the
(ADAS) is any of a group of electronic presence of a radar which is usually
technologies that assist drivers in driving mounted in front of the vehicle; with safety
and parking functions. ADAS uses distance monitoring (Forward Alert) which
automated technology, such as sensors and warns the driver if he is getting too close to
camera, to avoid human error and the vehicle in front. In some car models, the
increasing in this way the road safety. Safety system even brakes by itself, via the
features are in fact designed to avoid automatic braking system with pre-collision
crashes and collisions by offering assistance and pedestrian recognition.
technology that alert the driver,
implementing safeguard or taking the Cruise control
control if necessary. In this work is described
The purpose of cruise control is to maintain
the Cruise control and how it works.
the desired speed value and to do this a first
Cruise control is an electronic system that level control is implemented, i.e., the
allows automatic adjustment of the pace or desired acceleration is calculated.
speed of a car or other vehicle. The driver
Given the following model, where the
selects the desired speed, and it is
variable x is the longitudinal position of the
maintained, compatibly with the trim
vehicle, that can be measured with some
conditions of the car itself. There are two
sensor:
types of cruise control:
1
• Cruise control 𝑥̈ = ⟺ 𝜏𝑥̈ + 𝑥̈ = 𝑥̈ 𝑑𝑒𝑠
𝜏𝑠 + 1
• Adaptive cruise control
That means that the desired acceleration is
The first one only maintains the speed set by used as input of the control. It is assumed
the driver. The driver can choose to increase that the vehicle follows the desired
or decrease the set speed by pressing two acceleration with a time constant of:
buttons. Furthermore, the driver can, for
example if he decides to overtake another 𝜏 = 0.5 𝑠𝑒𝑐
car, press the accelerator pedal, and so, the relationship between input and
increase the speed which will return to the output is expressed by:
previously set one only when he stops
accelerating. 1
𝑥̇ = 𝑢
𝑠(𝜏𝑠 + 1)
The second can also reduce the set speed if
there are obstacles in front of the car. The Assuming:
𝑥1 𝑎
[ 2 ] = [𝑣 ]
𝑥
𝑥3 𝑝
It is obtained:
1 1
𝑥̇ 1 − 0 0 𝑥1
[𝑥̇ 2 ] = [ 𝜏 1 0] [𝑥2 ] = [𝜏 ] 𝑢
1 0
𝑥̇ 3 0 0 𝑥3
0 0
Before implementing the matrices for the
chosen control, it is necessary to remember
that the state must include the speed error.
Fig 1.1. System response
𝑯∞ control
with 𝐻∞ controller feedback
To implement the 𝐻∞ control it is build a
𝑯𝟐 control
script. We must consider the original
matrices of the system, which are rewritten It was also chosen to implement a solution
to consider the speed error. Finally, it is based on 𝐻2 to verify the differences in
possible to write the variable of the system performance. Before moving on to the
and write also the LMI related to the Simulink simulation, the LMI necessary to
𝐻∞ control: solve the problem 𝐻2 are therefore
introduced in the 𝐻2 .m matlab function as
min 𝛾∞
𝑥,𝑦 follows:
𝑠. 𝑡

(𝐴𝑥 + 𝐵1 𝑌) + (𝐴𝑥 + 𝐵1 𝑌)𝑇 𝐵2 (𝐶∞ 𝑥 + 𝐷𝑧𝑢 𝑌)𝑇


[ (𝐵2 )𝑇 (𝛾∞ )𝐼 𝐷𝑍𝑇 𝑤 ] min 𝛾𝟐
𝑥,𝑦,𝑄
(𝐶∞ 𝑥 + 𝐷𝑍𝑢 𝑌) 𝐷𝑍 𝑤 −𝛾∞ 𝐼
𝑠. 𝑡.
<0
(𝐴𝑥 + 𝐵1 𝑌) + (𝐴𝑥 + 𝐵1 𝑌)𝑇 + 𝜆𝑥 𝐵2
𝑥>0 [ ]<0
𝐵2𝑇 −𝐼
The result of the application of the control 𝑋 (𝐶2 𝑥 + 𝐷2𝑢 𝑌)𝑇
type 𝐻∞ is too fast and aggressive, since the [ ]>0
(𝐶1 𝑥 + 𝐷1𝑢 𝑌) 𝑄
system suddenly reaches the equilibrium
𝑡𝑟𝑎𝑐𝑒(𝑄) < 𝛾𝟐
position, as shown in figure 1.1 below:
𝑋 > 0, 𝑄 > 0, 𝛾𝟐 > 0

The result of the application of the optimal


control type 𝐻2 is too fast and aggressive in
the same way that the 𝐻∞ , since the system
suddenly reaches the equilibrium position,
as shown in figure 1.2 below:
Defining the reference position, that is the
ideal value of the vehicle:
𝑡

𝑥𝑑𝑒𝑠 = ∫ 𝑉𝑟𝑒𝑓 𝑑𝜏
0

It is obtained as desired acceleration:

𝑥̈ 𝑑𝑒𝑠 = −𝐾𝑝 (𝑥̇ − 𝑥̇ 𝑑𝑒𝑠 ) − 𝐾𝑖 (𝑥 − 𝑥𝑑𝑒𝑠 )


Fig 1.2. System response with 𝐻2 controller feedback Which is equivalent to control the space
between the two vehicles.
Simulation cruise control
In the case of adaptive cruise control
After having formulated the problems
however there is not a simple adjustment of
𝐻∞ and 𝐻2 it is necessary to introduce the
the acceleration parameter to the desired
block diagram on simulink to be able to
value, but the vehicle must also consider the
evaluate the different performances
various obstacles in the environment to
generated by the gains obtained. It is so
avoid collisions by adjusting the speed
building a Simulink file that implement the
accordingly. The vehicle that we want to
following scheme:
control, the Ego car is equipped with
sensors, such as radar, which allows us to
measure the distance and speed of the
vehicle in front, the Lead car.

Adaptive cruise control works in two modes:

1. Speed control: the vehicle goes


according to the set value of speed.
Fig 1.3. Cruise control scheme
2. Spacing control: the vehicle keeps a
The optimal controllers 𝐻2 and 𝐻∞ are very safe distance by the lead car.
aggressive to get as fast as possible to the
That means:
equilibrium generating an almost
immediate stability, generating oscillations
of large amplitude in microseconds to
stabilize a system, which sometimes is not
beneficial for all system. It is possible to
notice how the 𝐻∞ control let to obtain a
better performance on the speed. In fact,
the 𝐻∞ control reaches before the desired
value.

Adaptive cruise control Fig 1.4. Adaptive Cruise control

If we want to determine in real time, using a If the relative distance is greater than the
PID, the input necessary for the safe distance then the speed will be
specification. The desired acceleration value controlled, otherwise the aim will be to
will be provided in this case by: control the position of the vehicles in such
a way that the safe distance is sufficient.
𝑡

𝑥̈ 𝑑𝑒𝑠 = −𝐾𝑝 (𝑉𝑥 − 𝑉𝑟𝑒𝑓 ) − 𝐾𝑖 ∫(𝑉𝑥 − 𝑉𝑟𝑒𝑓 )𝑑𝑡 The desired value of acceleration is:
0
𝑎𝑑𝑒𝑠 (𝑡)
𝐾𝑖 𝑣𝑟𝑒𝑙 − 𝐾𝑠𝑎𝑓𝑒 (𝑑𝑠𝑎𝑓𝑒 − 𝑑𝑟𝑒𝑙 ), 𝑖𝑓 (𝑑𝑠𝑎𝑓𝑒 − 𝑑𝑟𝑒𝑙 ) > 0
={
min (𝐾𝑝 (𝑉𝑟𝑒𝑓 − 𝑉𝑒𝑔𝑜 ), 𝐾𝑖 𝑉𝑟𝑒𝑙 − 𝐾𝑠𝑎𝑓𝑒 (𝑑𝑠𝑎𝑓𝑒 − 𝑑𝑟𝑒𝑙 )) , 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒

Where the 𝑑𝑠𝑎𝑓𝑒 is defined as:

𝑑𝑠𝑎𝑓𝑒 = 𝑑𝑒𝑓𝑎𝑢𝑙𝑡𝑠𝑝𝑎𝑐𝑖𝑛𝑔 + 𝑡𝑖𝑚𝑒𝑔𝑎𝑝 ∗ 𝑉𝑒𝑔𝑜 Fig 1.6. Scenario in Simulink

Driving scenario designer


The purpose of this part of the project is to Simulink implementation
simulate the behavior of an Ego car and that in the script is contained all the necessary
of a Lead car. We want to set a speed of the information.
Ego car higher than that of the Lead car. In
this way we want to show how the machine The BusActorsActors.mat variable contains
we are controlling reaches the set speed all the attributes that are needed to
until the safety distance, which will be interact with the driving scenario, i.e.:
revealed with the aid of a radar, allows it. In
• ActorID
the second part of the simulation, however,
• Position
the Lead car will swerve and consequently,
• Velocity
having no more obstacles, our ego car will
• Roll
return to its set speed.
• Pitch
To simulate the behavior of vehicles was • Yaw
used the driving scenario designer of matlab • Angular Velocity
that allows to build road, vehicle and at the
same time to use sensor. The already Now it is necessary to create a sequence of
described scenario is so implemented: blocks on Simulink, which given the created
scenario, allows to use the information
obtained from the sensor to calculate the
speed and the relative position to be able to
implement an acceleration control. Once
this is done, the values obtained will be
given as input to the same scenario to be
able to simulate the behavior of an adaptive
cruise control.

Fig 1.5. Driving scenario designer

It is now possible to export the actors in the


simulation and the sensor used in Simulink,
while the speed profile is defined using the
waypoints with a speed profile inside the Fig 1.7. Find lead car.
toolbox, it is needed to give as input to Ego
Car the values obtained with the strategy of using the measurements provided by the
the adaptive cruise control already defined. radar, in fact, the two variables of interest,
Obtaining the following scheme: rel_dis and rel_vel, are generated to pass in
the control scheme for the determination of
the desired acceleration:
In the graph, initially the Ego car will reach
the predefined speed value since the safety
distance will be greater than the relative
one. When it has almost reached the Lead
car, to which a lower maximum speed is
Fig 1.8. Ego car. assigned, our control becomes a spacing
control to prevent the collision. In the last
There are two sub-systems. The first one phase of the simulation, as already
receives as input the ego_vel, rel_dis and described, the lead vehicle will turn thus
rel_vel to return the desired acceleration. involving a new switch from spacing control
After having obtained the desired to speed control, in fact, not having a vehicle
acceleration, it is entered together with the in front of it, the ego car can return to its set
initial position and the initial speed of the speed value until the end of the simulation.
Ego car in the second subsystem thus Conclusions
described, to be able to return the current
values. A control technique for adaptive cruise
control has also been implemented. In this
case, unlike before, the goal is not simply to
maintain a certain speed profile, but also to
avoid a collision while maintaining a certain
safety distance. This means that if the safety
distance is greater than the relative one
between the vehicles there will be a switch
Fig 1.8. subsystem ego car. from speed control to spacing control. To
use a control based on this approach it was
Simulation adaptive cruise control
necessary to use the driving scenario
The speed profile of our ego car will thus be toolbox which allows the simulation of the
defined: sensors thus allowing the calculation of the
relative position and relative speed
between the vehicles. finally using the
information acquired from the sensors and
the model analyzed to describe the
dynamics of the vehicle, it was possible to
simulate a driving scenario that uses this
technique.

Fig 1.9. speed profile of ego car.

You might also like