Fuel Level Estimation for Heavy Vehicles Using a Kalman Filter

Fuel Level Estimation for Heavy Vehicles Using a Kalman Filter
Fuel Level Estimation for Heavy Vehicles
Using a Kalman Filter
Master’s Thesis Performed in Vehicular Systems
By
Peter Wallebäck
LiTH-ISY-EX--08/4184--SE
Linköping 2008
Fuel Level Estimation for Heavy Vehicles
Using a Kalman Filter
Master’s thesis performed at:
Division of Vehicular Systems
Department of Electrical Engineering
Linköping University
Peter Wallebäck
LiTH-ISY-EX--08/4184--SE
Linköping 24 November 2008
Supervisors: Christofer Sundström, Division of Vehicular Systems, LiTH.
Tobias Öberg, Scania CV AB.
Andreas Jerhammar, Scania CV AB.
Examiner:
Erik Frisk, Division of Vehicular Systems, LiTH.
ii
Presentationsdatum/Date of
presentation
Institution och Avdelning/
Institution and Department
2008-11-17
ISY, Vehicular Systems
Publiceringsdatum (elektronisk
version)/Date of electronic publication
2008-11-24
Språk/Language
Engelska/English
Typ av publikation/Type
of publification
___Licentiatavhandling
X Examensarbete
Antal sidor/Number of
pages
___C-uppsats
61
___D-uppsats
___Rapport
ISBN
ISRN
LiTH-ISY-EX--08/4184--SE
Serietitel/Title of series
Serienummer/Serie number (ISSN)
___Annat (ange nedan)
___________________
URL för elektronisk version
http://www.vehicular.isy.liu.se
Publikationens titel/title
Fuel Level Estimation for Heavy Vehicles Using a Kalman Filter
Sammanfattning/Abstract
The object with this project is to develop a more accurate way to measure the level in the fuel tank in Scania
vehicles. The level should be displayed for the driver and a warning system be implemented to make the driver
aware if the fuel level is too low. Furthermore a main goal is to develop an estimation of the distance that the
vehicle could travel before refueling is needed.
The fuel level estimation system is modeled using Matlab Simulink and simulated with measurement data
collected from real driving scenarios. After evaluating the system it is implemented in one of the electrical
control units located on a test vehicle which communicates with other systems. After implementation more tests
are performed with the test vehicle to verify that the same functionality achieved during simulations is achieved
using the system implemented in a vehicle.
The fuel level estimated with a KF (Kalman filter) that uses fuel consumption and level measurement results in
good performance. A more stable level estimate is achieved and a negative elevation of the estimate most of the
time, as a result of fuel use. Compared to the method Scania vehicles estimate their fuel level with today the
new level estimate is more steady and not that easily affected by fuel movements. The KF is more demanding in
terms of memory allocation, processor speed and inputs needed, which has to be considered when comparing
both methods. Another disadvantage with the KF is that it is dependent on the samples from the fuel level
sensor to get an initial estimate during startup.
Furthermore the KF is easily expanded with more inputs that use information from other sensors on other parts
of the vehicle.
Nyckelord/keywords
Kalman filter, distance estimation, fuel tanks
iii
iv
Abstract
The object with this project is to develop a more accurate way to measure the level in the fuel
tank in Scania vehicles. The level should be displayed for the driver and a warning system be
implemented to make the driver aware if the fuel level is too low. Furthermore a main goal is
to develop an estimation of the distance that the vehicle could travel before refueling is
needed.
The fuel level estimation system is modeled using Matlab Simulink and simulated with
measurement data collected from real driving scenarios. After evaluating the system it is
implemented in one of the ECUs (Electrical Control Units) located on a test vehicle which
communicates with other systems. After implementation more tests are performed with the
test vehicle to verify that the same functionality achieved during simulations is achieved using
the system implemented in a vehicle.
The fuel level estimated with a KF (Kalman filter) that uses fuel consumption and level
measurement results in good performance. A more stable level estimate is achieved and a
negative elevation of the estimate most of the time, as a result of fuel use. Compared to the
method Scania vehicles estimate their fuel level with today the new level estimate is more
steady and not that easily affected by fuel movements. The KF is more demanding in terms of
memory allocation, processor speed and inputs needed, which has to be considered when
comparing both methods. Another disadvantage with the KF is that it is dependent on the
samples from the fuel level sensor to get an initial estimate during startup.
Furthermore the KF is easily expanded with more inputs that use information from other
sensors on other parts of the vehicle.
v
vi
Acknowledgement
Starting with some basic ideas how to combine different signals in a Scania vehicle to
estimate the fuel volume this project resulted in a useful and implement able system. The
main reason that made this project interesting was that I could perform all steps from ideas to
implementation in a vehicle.
I would like to express my gratitude to Scania CV AB and the people working at the
department RESK where my project was carried out. I have had a lot of freedom when
developing and testing my ideas that led to the result that I have summarized in this report.
Especially my supervisors Tobias Öberg and Andreas Jerhammar have given me support
during the whole project and sharing their knowledge and experience with me. Beside the
people working at RESK I have had personal contacts with several other people working at
Scania that have helped me.
Except the support I got at Scania my supervisor Christofer Sundström at Division of
Vehicular Systems, Linköping University, has helped me to discuss ideas and review this
report which have been valuable for me.
Södertälje, November 2008
Peter Wallebäck
vii
viii
Table of Contents
1
2
3
4
INTRODUCTION .......................................................................................................1
1.1
BACKGROUND .......................................................................................................... 1
1.2
LIMITATIONS ............................................................................................................ 1
1.2.1
Fuel movements in the tank .........................................................................2
1.2.2
Fuel containing water .................................................................................3
1.2.3
Leakage ......................................................................................................3
1.2.4
Sensor limitations........................................................................................3
FUEL SYSTEM...........................................................................................................5
2.1
FUEL TANK ............................................................................................................... 5
2.2
FUEL PICK-UP ........................................................................................................... 6
2.3
FUEL LEVEL SENSOR ................................................................................................ 7
2.3.1
Float arm ....................................................................................................7
2.3.2
Longitudinal................................................................................................7
2.3.3
Ultrasound ..................................................................................................8
ESTIMATION OF FUEL LEVEL ...........................................................................11
3.1
TANK MODEL .......................................................................................................... 11
3.2
TIME DISCRETE MODEL ........................................................................................... 12
3.3
KALMAN FILTER ..................................................................................................... 12
3.4
REFUEL DETECTION ................................................................................................ 15
3.5
SIMULATION RESULTS ............................................................................................ 16
3.5.1
Model and filter verification......................................................................16
3.5.2
Refueling detection verification .................................................................18
3.5.3
Refueling compare ....................................................................................19
3.5.4
Regular driving .........................................................................................20
3.5.5
Validation Analysis ...................................................................................22
IMPLEMENTATION IN A VEHICLE ...................................................................25
4.1
COMMUNICATION ................................................................................................... 25
4.2
MEASURING FUEL LEVEL ........................................................................................ 25
4.3
MEASURING FUEL USE ............................................................................................ 27
4.4
RAPID PROTOTYPING .............................................................................................. 27
4.5
TOLERANCES .......................................................................................................... 28
4.6
TEST DRIVE RESULTS .............................................................................................. 30
ix
5
6
FUEL FUNCTIONALITY........................................................................................31
5.1
ESTIMATING DISTANCE BEFORE REFUEL IS NEEDED ................................................ 31
5.2
GRAPHICAL USER INTERFACE ................................................................................. 32
5.3
TEST RUNS .............................................................................................................. 34
SUMMARY & CONCLUSIONS..............................................................................37
6.1
CONCLUSIONS ........................................................................................................ 38
7
FURTHER DEVELOPMENT..................................................................................39
8
REFERENCES..........................................................................................................41
8.1
BOOKS .................................................................................................................... 41
8.2
REFERENCES TO INTERNET ..................................................................................... 41
8.3
PUBLISHED THESIS.................................................................................................. 41
8.4
PERSONAL CONTACTS ............................................................................................. 41
NOTATIONS......................................................................................................................43
APPENDIX A DRIVING SCENARIO ANALYSIS .........................................................45
A.1 UP- AND DOWNHILL .................................................................................................. 45
A.2 HARD TURNS ............................................................................................................. 46
A.3 HARD ACCELERATING AND BRAKING ........................................................................ 47
A.4 ROCKY ROAD TRACK ................................................................................................. 48
A.5 CIRCLES .................................................................................................................... 49
A.6 URBAN ENVIRONMENT .............................................................................................. 50
APPENDIX B SIMULINK MODEL .................................................................................51
B.1 SIMULINK FUEL LEVEL ESTIMATION SYSTEM ............................................................. 51
x
1
Introduction
This Master’s thesis project has been carried out at Scania CV AB in Södertälje at the chassis
systems design department RESK. Scania delivers trucks, busses, marine and industrial engines
to several parts of the world. The company aims to deliver the best trucks in the world by
prioritizing quality and costumers needs. Most of the research and development takes place in
Södertälje, Sweden.
1.1 Background
Up until now the accuracy of the fuel level measurement has not been of great importance. The
purpose measuring the fuel level has been to present the information on the dashboard with a
fuel level meter. Instead of accuracy the two most important things have been to avoid rapid
changes in the fuel level displayed and the meter must indicate that the tank is empty when the
fuel level is below a predefined level. To fulfill these requirements a fuel level sensor mounted
inside the fuel tank is used. The sensor has a discrete numbers of levels and a table for the
specific tank containing information about how much volume a specific sensor level corresponds
to. The signal from the table is then passed through a first order exponential lowpass filter and
displayed on the dashboard.
In cold environments like the northern parts of Sweden during winter the vehicle may not be
turned off while refueling and the filter could cause a large time delay before the estimated
volume reaches the true level. The filter is slow since it is designed to block all rapid changes
caught by the fuel level sensor. If the truck is turned off during refuel it is not an issue since the
filter is restarted when the ignition is turned on, with the current level from the sensor as initial
output. If the truck is not turned off during refuel the filter is most likely much slower than the
level change caused by a refueling. The driver will not see the total effect of the refueling on the
fuel meter until the filter has caught up.
If functionality beyond presenting the fuel level on the dashboard should be implemented other
goals will be considered. For example better fuel level measuring accuracy may be needed. A
case when that accuracy may be requested is when estimating the remaining distance the vehicle
is able to travel before refueling. Information about how far that distance is could be useful for
truck drivers. The driver could fill the tank with the correct amount of fuel needed for the trip
and the extra weight that excessive fuel gives could be reduced. Another way of using the
estimate of the remaining distance is to combine the refuels with the rest and sleep that the driver
needs to have in the schedule during driving.
This thesis investigates the possibilities of getting a more accurate fuel level estimate using the
current hardware. The goal is to accurately estimate the fuel level and compare it to the fuel level
estimation method currently used in Scania vehicles. Beyond the fuel level accuracy a way of
separating a refuel from ordinary fuel movements is requested. This thesis also consider ways to
estimate the remaining distance until the tank is empty based on previous and current driving
conditions.
1.2 Limitations
There are both software and hardware limitations when implementing a system in a vehicle.
Several ECUs (Electrical Control Units) are used on a vehicle controlling different electronic
systems such as engine control, steering and cab ventilation. The fuel system has one sensor that
1
measures the fuel level, which is connected to one of the ECUs in the vehicle. When the different
systems are communicating across the vehicle a CAN-bus (Controller Area Network-bus) is
used. The network has limits in bandwidth and signals cannot be achieved with maximum
bandwidth because they share the network and have different priorities. For this project a
separate ECU is added to the CAN-bus that is connected directly to the fuel level sensor. The
ECU contains a programmable processor and input and output ports for communications. More
information about the electronic hardware used is given in chapter 4.
This thesis mainly considers the types of fuel sensors and tanks used in Scania vehicles today but
some alternatives are considered. Measurement data is collected from mainly three different
vehicles and the system may behave different if other vehicles with other tank sizes are used.
The main problem when measuring the fuel level in a tank is the request to use as much fuel as
possible from the tank before indicating that a refueling is needed.
When estimating the remaining distance the accuracy of the signals used is considered to be
high.
1.2.1 Fuel movements in the tank
Vehicle movements give rise to different forces acting on the tank making the fuel move in ways
that is hard to predict. The fuel could move in any direction depending on the forces and nonstationary fuel sloshing takes place. The sloshing increases when the amount of fuel decreases.
This is a major limitation because it is when the tank is almost empty that finding the correct fuel
amount left in the tank is most crucial (see ref. [7]). It is more difficult to determine the correct
fuel level when the fuel surface is irregular caused by sloshing. The impact of fuel movements
on the signal that measures the fuel level can be reduced by lowpass filtering it.
The fuel system has to be able to collect fuel while driving in different terrain e.g. steep road
slopes but also when sloshing takes place. The minimum amount of fuel that have to be left in
the tank (safety volume) to guarantee that fuel can be collected is calculated by using a test
vehicle and drive in as many scenarios as possible. The amount of fuel in the tank is reduced
until the limit is found when the vehicle can manage all extreme driving scenarios and still be
able to collect fuel from the tank. A catch-tank system (see paragraph 2.1) could reduce the
amount of fuel that has to be left in the tank.
2
Figure 1-1: 3D-drawing showing extreme fuel sloshing taking place in a tank. The dark mass
indicates the fuel and the fuel pick-up is the gray cylinder at the edge of the mass.
1.2.2 Fuel containing water
If diesel fuel is used there is a small, yet considerable, amount of water in the fuel bought at gas
stations. Some parts of the fuel system are sensitive to water and therefore it must be removed
before it reaches these sensitive parts. A filter is used to extract the water from the fuel and the
most common way is to gather the collected water into a container. The container is manually
emptied when it is full. Water has higher density than the diesel which means that the water will
sink to the bottom. Therefore the amount of water collected in the fuel system can be reduced by
always leaving some fuel in the tank. But that does not correspond to the request of using as
much as possible of the fuel in the tank. The safe volume left in the tank due to fuel sloshing
covers this but if fuel should be collected below the safe volume level the water could be a
problem. For more information about the problem with water see ref. [11].
1.2.3 Leakage
Leakage can occur if there has been some kind of damage to the tank, hoses or other parts of the
fuel system. These leakages can be detected by using a diagnostic system but that is beyond the
scope of this thesis. A possible leakage will not be taken into consideration and if such leakage
occurs it will be considered as interference acting on the signal that indicates fuel use in the
vehicle.
1.2.4 Sensor limitations
There are three main limitations for the fuel level sensors used. The first one is that the sensors
used in Scania vehicles produced today are discrete with only up to 25 steps depending on tank
height, secondly it cannot reach the last 9 centimeters to the bottom of the tank. Finally there is
only one sensor that measures the fuel level at one location in the tank. The first two problems
can be solved by using a different sort of fuel level sensor. With the current sensor only the
second problem can be reduced by using information from sensors in other part of the fuel
system e.g. the sensor that measures the instantaneous fuel flow into the engine. The solution to
the third one is simply to add more sensors at other locations in the tank. The disadvantage doing
this is that sensors are expensive. One more sensor in the tank could make it possible to detect
for instance road slopes and adjust the estimated level according to that. The sensors are not
3
cheap and extra I/Os, cables etc. have to be added. Therefore if one more sensor should be added
it must lead to a major improvement for fuel measurement and/or other functionality.
The longitudinal road slope is calculated in one of the systems in the vehicle but the lateral road
slope is not. If both had been available the fuel movements could have been detected in a more
accurate way. The road slope is used together with the fuel level sensor to evaluate the impact
from road slopes on the fuel level.
In this thesis, model errors and disturbances that affect signals used from other parts of the
vehicle are roughly estimated if no information about them is available.
4
2
Fuel system
The fuel system basically collects fuel from the tank and delivers it to the engine. For diesel
engines with solid injection all fuel transported to the engine is not used instantaneously. The
amount of fuel not used is lead back to the fuel tank. The reason is that the injectors should have
at least the amount of fuel needed at all times. There could be other systems except the engine
that use fuel from the tank, e.g. the cabin heater. The different systems that use fuel are described
further in paragraph 4.3.
2.1 Fuel tank
The shape of the tanks differs between more or less cuboidal to cylindrical and each type of tank
is produced in different sizes. Usually the tanks are long and little wider compared to the height,
see Figure 2-1 for a sketch of a typical tank used on Scania vehicles. The tanks have plates with
holes mounted on a couple of locations inside the tank to reduce the fuel sloshing. The other tank
types used today are similar to the wide tank except for the cylindrical which has a circular
cross-section.
Figure 2-1: Sketch of a wide tank.
Customers request larger tanks and therefore more complex shaped tanks may be considered in
the future, that are able use the free space around the tank in a better way.
Except the tank types used in Scania vehicles today a regular tank with a catch-tank will be
considered in this thesis. The catch-tank is simply a small extra tank that is less sensitive to fuel
movements. For example it could be created by mounting a solid plate close to the end the tank
or an extra tank outside the regular tank. The idea with a divided tank could be observed in
Figure 2-2. This can hopefully reduce the amount of fuel that needs to be left in the tank before
indicating that a refueling is needed. The benefits are both that the driver does not have to refuel
as often and the weight of the vehicle is decreased.
5
Figure 2-2: Sketch of a tank including a catch-tank.
2.2 Fuel Pick-up
The fuel tanks have one pick-up device that collects the fuel into the pick-up system. If the
catch-tank technique is used the fuel system needs to collect fuel from both tanks and the large
tank could be almost empty before refueling. As mentioned earlier the system used today collects
more fuel than needed and the excessive fuel is lead back to the tank. Using a catch-tank the fuel
is lead back to the small tank which ensures that it is always filled. See Figure 2-3 for a picture
on what the fuel pick-up looks like.
Figure 2-3: Fuel tank of Wide-type with armature containing level measurement and fuel pick-up
devices. The sensor on the armature is the longitudinal type, described in paragraph 2.3.2.
6
2.3 Fuel Level Sensor
The most important part of the fuel system for this thesis is which type of fuel level sensor is
used. In the past, Scania has used a float arm device for measuring the fuel level, but nowadays a
longitudinal sensor is mostly common. In the future other sensor types may be used, an
ultrasound distance-sensor is one suggestion for such a sensor. The sensors measure the fuel
level by creating an electrical resistance representing the current fuel level in the tank.
Furthermore the drop in voltage over the resistance is measured. More description of how the
voltage is measured is written in paragraph 4.2. The voltage could be transformed into height or
volume by using a table that specifies the height and volume that corresponds to each possible
voltage. Every type of tank has its own table. In this thesis the voltage is transformed into
volume when fuel level measurements are used in the implementation of the KF, see paragraph
3.3.
To read more about sensor types suitable for fuel level measurement see ref. [11].
2.3.1 Float arm
This armature uses a floating ball that indicates the fuel level with a resistance created where the
arm with the floating ball connects to the armature. One advantage with this sensor is that it is
continuous but on the other hand it has high electrical tolerance which gives low accuracy in the
measurements. Except the tolerance another disadvantage is that it is very sensitive to physical
contact since the arm that carries the floating ball is weak.
Figure 2-4: Drawing of floating arm armature. The pipes and the arm are cut at some locations to
reduce the size of the image which is indicated with wavelike lines. The resistance is measured
where the arm connects to the rest of the device.
2.3.2 Longitudinal
The longitudinal resistive armature works as an adjustable resistor giving different values for
different positions of its floating device. Instead of being continuous as the float arm, this sensor
7
measures the fuel level in up to 25 discrete steps. The number of steps depends on the length of
the armature that is limited by the height of the tank. Because there is a distance between each
step, the sensor is less sensitive to surface movements when the true volume is close to the
middle of one of the sensor steps. The electrical tolerance is much lower than the one for the
float arm armature. Further analysis regarding the tolerance for this sensor could be found in
paragraph 4.5. A sketch of this sensor can be observed in Figure 2-5.
Figure 2-5: Drawing of longitudinal measuring device. The black solid floats and follows the
fuel level.
2.3.3 Ultrasound
The ultrasound sensor has a sender that creates a sound pulse that is reflected on the fuel surface.
The reflected pulse is received by the sensor and the distance is estimated by knowing the speed
of sound in air. Figure 2-6 shows the principle of ultrasonic measuring. The advantages using
this type of sensor are that it is usually cheaper than the longitudinal and it has no mechanical
parts that could wear out. The disadvantages are that the sound waves may collide and interfere
if the fuel surface is non-horizontal or irregular which gives false measurements. The ultrasound
sensors usually give a higher number of levels compared to the longitudinal sensor and more
accurate information about the true volume in the tank could be achieved. On the other hand if
more levels should be represented it may demand better electrical tolerance at the input pins
where the sensor value is received from the sensor into the ECU it is connected to. To view one
example of an ultrasound sensor see ref. [10].
8
Figure 2-6: A figure showing the principle of ultrasound distance measuring.
9
10
3
Estimation of fuel level
The system will be represented by a state-space model. When a state-space model, started with a
true initial state has model errors and input interference the uncertainty of the states will increase
more and more for each time step. The model itself is unaware whether the states represent the
true physical behavior of the system that the model is built for. Measurements from sensors
representing the states can be used to reduce the uncertainty. A KF (Kalman filter) has the
strength of combining information from several sensors for estimating states in a state-space
model. The filter uses the difference between estimated volume and the volume measured in the
tank by the sensor. The tank model is a simple model and there is only one measurement sensor
available, though the model can easily be expanded if more sensors are added in the future. All
signals used by the KF model are considered to have SI units. For more information about statespace models see ref. [4] and for information about the KF see ref. [1].
3.1 Tank model
When modeling the tanks a simple approach is used with only one state representing the fuel
volume, x=V, in the tank. The input will be the fuel flow u=q. The state space model makes it
possible to implement a KF with the fuel level sensor as measurement signal, this is described
below in paragraph 3.3.
Figure 3-1: Sketch showing a tank with a certain volume V(t) and a fuel flow q(t).
The model can be written as:
x& = f ( x, u )
y = g ( x, u )
(3.1)
When trying to decide the functions f and g in equation (3.1) the model is either built on known
physical relationships or by Black-box modeling where the goal is to fit some mathematical
expression as good as possible to measured data (see ref. [4]). In this case a physical model with
simply an integration of the fuel volume flow is used which determines how much fuel that is
11
used. The system needs an initial state for the volume and after that it is driven by the fuel flow
q(t).
3.2 Time discrete model
The implementation of equation (3.1) is done in Matlab Simulink and it is made time discrete,
for further information about Simulink see ref. [6]. The main reason for the discretization is that
the implementation in the ECU needs a time-discrete representation. If the model is discrete from
the beginning it is easier to use the model built in Simulink in the ECU implementation and the
same behavior is achieved in both Simulink and in reality. The implementation is further
described in chapter 4. The Euler method is used to approximate the derivatives (see ref. [4]).
The result is described by the following expression using the sample time Ts as time step:
x(t + Ts ) = x(t ) + Ts q (t ) = Ax(t ) + Bq (t )
y (t )= x(t ) = Cx(t )
(3.2)
The unit for fuel flow input q(t) is m3/s resulting in that the output y(t) represents the current
volume in the tank in m3.
Input signal q(t) may contain disturbances such as prediction errors and disturbances acting on
the signal while it is transferred from its transmitter to the receiver. The signal is not measured
with a sensor, instead there is a model that predicts the flow based on how long time the diesel
injectors in the engine are active per engine cycle. Besides the disturbances from q(t) there is a
model uncertainty caused by the discretization. The true fuel flow signal is called u(t) and the
disturbances w(t) and the following model is achieved:
x(t + Ts ) = Ax(t ) + Bu (t ) + w(t )
y (t )= x(t ) = Cx(t )
(3.3)
3.3 Kalman filter
Since the system defined by equation (3.2) is linear, it is guaranteed that the KF is the optimal
filter if the disturbances in the process and measurement are described in a realistic way and are
normally disturbed white noise. White noise has a mean value of zero and a constant variance. It
is difficult to know the exact behavior of the real noises but the better they are described the
better the filter will be. When designing this KF the disturbances are considered to be of
normally distributed white noise character. This assumption has consequences, real disturbances
are rarely of the mentioned character but it is a often a good approximation. Knowing that the
state x(t) represents the fuel volume in the tank and that the volume is measured with a sensor,
y(t) , a KF can be used to estimate x(t).
12
Figure 3-2: Box schematics showing how the KF uses feedback of the difference between the
estimated and measured value for the volume to control the state-space model.
When designing the filter the following notations are introduced:
x(t + Ts ) − xˆ (t + Ts ) - Prediction error
P(t ) - Prediction error (co)variance (only one state)
y s (t ) - Fuel volume measurement
K (t ) - Kalman gain
Q - Process variance (for model and input noise)
R - Measurement noise variance
The fuel volume is not measured directly, the sensor measures the height in the tank which is
transformed into the corresponding volume.
The KF algorithm for one time step prediction can be expressed in the following way:
xˆ (t + Ts ) = Axˆ (t ) + Bu (t ) + K (t )( y s (t ) − Cxˆ (t ) )
(
K (t ) = AP (t )C T CP(t )C T + R
(3.4)
−1
)
(3.5)
(
P(t + Ts ) = AP(t ) AT + Q − AP (t )C T CP(t )C T + R
−1
)
CP(t ) AT
(3.6)
There is little information available for this thesis to estimate the process variance, because no
interference model for the input q(t) is available. Engineers at Scania working with engine
development says by experience that the momentarily error for the signal q(t) is ± 10% . Based
on that the variance for the process error is estimated to be the square of 10% of the standard
deviation for the fuel consumption signal. The standard deviation for the signal is calculated by
13
using the Matlab function STD on 1.75 hours (N number of values) of recorded signal data from
regular driving with a Scania truck. The calculation is expressed as an equation further down.
For more information about STD see ref. [6].
The sensor error variance is set knowing that the fuel sloshing can make the fuel sensor to vary
up to 4 levels, found when analyzing driving scenarios (see Appendix A). During simulation 4
levels turned out to be too much and it was reduced to 3 to get a filter that relies slightly more on
the fuel level sensor. The variance is set to the square of the volume that corresponds to 3 levels
in the sensor for the specific tank used. The KF handles the pre-filtering itself by using little of
the information in the feedback K (t )( y (t ) − Cxˆ (t ) ) except during start up. In other words the
feedback gain (Kalman gain) K will reach a small value because R >> Q .
The state will be initiated with the first value that comes from the sensor and the prediction error
variance will be set based on the distance between each sensor step. The last mentioned variance
indicated with P based on the assumption that the sensor may indicate one level too high or low
when the algorithm starts.
The following summarizes the initial information for the KF:

1
Q =  0.10 ⋅

N

2

(u k − u )  ;
∑

k =1

N
2
(3.7)
u − Fuel consumption arithmetic mean value.
2
R = (3 ⋅ ∆y ) ; ∆y − Volume difference between sensor steps.
(3.8)
x 0 = y (0 )
(3.9)
P0 = ( y +1 (0) − x 0 ) 2 ; y +1 (0) − Sensor level above y (0) .
(3.10)
Before the estimate x̂ is set to be the output of the model a function keeps the state within the
limits of the tank. It is calculated with the following expression:
xˆ (t + Ts ) = min(max( xˆ (t + Ts ), 0), x max )
(3.11)
The KF is defined by equation (3.4)-(3.6) and (3.11) and these equations are updated each time
sample giving an estimated fuel volume x̂ .
When the filter starts its feedback gain is large and it is decreasing until the KF reaches steady
state, see Figure 3-3. The effect of this makes the samples collected during the period of time
until steady state has more impact on the level estimate than the sensor values after that. The
filter has no information if the sensor values are trustworthy or not. Without functionality that
detects if the sensor values are trustworthy or not the filter has to be adjusted as good as possible
for all scenarios. The best assumption for this filter is that the samples collected from the time
that the vehicle is started until the filter has reach steady state together represent the true initial
volume. An example when that assumption gives a false initial state is if the vehicle was started
when standing in a steep road slope and not reaching flat road until after the filter reached its
14
steady state. In that situation the filter could take long time until it reaches the true state because
the feedback gain from the estimation error is small. An advantage is though that the bigger the
estimation error is the bigger impact it has on the filter input, i.e. a faster change in the filter
estimate.
Figure 3-3: Plot showing how the Kalman feedback gain slowly reaches its steady state during
the startup period for the KF.
Since A and C given by equation (3.2) and R and Q are constants a stationary KF could be used.
The stationary KF uses a pre-calculated feedback gain instead of letting equation (3.4)-(3.6)
slowly find the correct gain. The effect of combining several samples during startup would be
lost if the feedback gain is constant from the beginning. The filter behavior during the initial
period until steady state is reached could be observed in the results presented in paragraph 3.5.1
and 4.6.
3.4 Refuel detection
The KF needs a period of time to become steady. When the filter operates in steady mode it is
suited for the regular behavior of its inputs, but if the inputs suddenly behave in a different way
the filter may not work as requested. For example the filter may take too long time to reach the
true state if a refueling is performed, approximately 20 minutes depending on which speed the
tank is filled with. There are basically three ways that the fuel level sensor output behaves. First
fuel sloshing is one way which makes the sensor output to vary up to 4 sensor levels. Second the
truck may stand still and the level is steady indicating a constant level and finally is when
refueling that causes the fuel level sensor to increase a period of time until the tank is filled. If
the truck is turned off while refueling the filter will restart because the ECU is restarted. Though,
if the truck is kept running the filter must be restarted in some automatic way. On option is to
reset the filter as soon as the truck halts but this will cause the KF to lose all the information that
the filter gathered so far, which is not good if the halt was not intended for a refueling. Instead a
monitoring algorithm that detects a change in the fuel level sensor behavior will be used.
15
The algorithm is active while the vehicle stands still, it is assumed that the vehicle does not move
while refueling. Some fuel movements may still take place in the tank when the refuel starts after
a halt but they will not differ more than one sensor level. The sensor output is observed and if it
increases 5 levels without exceptions an alarm is set, indicating that a refuel takes place. The
alarm is used to reset the KF on and on until the vehicle starts moving again.
u
ys
Detector
Kalman
Filter
x̂
Alarm
v
Figure 3-4: Sketch showing the idea of a detector controlling the KF.
3.5 Simulation results
The KF is implemented using Simulink where the systems are built by using blocks that
represent mathematical functions and wires that transfers signals between the blocks. The block
representing the state-space model is given by equation (3.4)-(3.11) with fuel consumption and
sensor level as input. It also has an input from the detector which has a separate block with
implementation of the detection algorithm described in paragraph 3.4. The detector also requires
one more input, the vehicle speed. The estimate achieved from the KF is given in cubic meters
and it is transformed into percent before it is set as output. One more block is added that
represent the way that the fuel level is estimated on Scania vehicles today using a simple
exponential filter. In this way both methods can be compared at all times. The Simulink model
can be observed in Appendix B.
The input data used in the simulations is data recorded with different trucks. While simulating in
Simulink all significant signals are recorded and later plotted to visualize how the two filters
behave. Some results from the simulations are presented below.
3.5.1 Model and filter verification
The model is driven with recorded data from a driving scenario long enough to show a
significant change in the fuel level. The sequence of recorded data is 67 minutes long and
recorded when driving on highway with a Scania truck with a 625 liter tank and a 20 tons trailer.
At first the model is driven only by the fuel consumption q(t) and the results can be observed in
Figure 3-5 below. The model needs an initial state for the fuel volume and it is set by looking at
the fuel level sensor start value, which indicates just above 40%.
16
Figure 3-5: Plot for model output driven by only the fuel consumption.
If the model input q is ignored and the estimation error from the KF drives the model alone the
output shown in Figure 3-6 below is achieved.
Figure 3-6: Plot for model output when driven by only the error between the estimate and fuel
level sensor.
If the KF alone controls the model the volume change is slower compared to if the model is
driven with the fuel consumption. The KF has the strength of adjust the estimate towards the
level measured with the fuel level sensor and the advantage with the fuel consumption is that it
gives better information of how much fuel that is used by the vehicle without being affected by
fuel movements in the tank. The resulting output when using both signals could be observed in
Figure 3-7 below. The second plot shows what the discrete longitudinal sensor output is during
the drive. The output bounces up and down caused by fuel movements but a pattern could be
observed, the fuel level is decreased.
17
Figure 3-7: The first plot show when the model is driven by both fuel consumption and
estimation error. The second plot is the fuel level sensor output for the drive cycle and the third
the fuel consumption.
For this driving scenario the initial state used when simulating with fuel consumption was
obviously too low which the KF compensates for by forcing the level to increase for a while
from startup and then begin to decrease. Both Figure 3-5 and the first plot in Figure 3-7 indicate
a rather constant level the last 400s. The reason for that is the low fuel consumption during that
period of time that could be observed in the third plot in Figure 3-7.
3.5.2 Refueling detection verification
The two following figures show the result of a fast refuel that took approximately 20s and a
regular refill of a 625 liter tank that lasted for about 270s. The fast refuel that takes 20s is just a
simulation where input data is created by modifying data recorded from a drive scenario to
simulate the refuel. The other refuel is not modified, the model is driven with data recorded from
a real refuel done with a truck.
First the algorithm output and its alarm level are plotted to show when the alarm is triggered.
The KF and the exponential filter are compared to show the speed of tank detection compared to
leaving the exponential filter to reach the true level on its own. KF continues to follow the sensor
value until the vehicle starts moving again. A difference is that data used for the fast refuel
simulates that the vehicle starts moving when the refuel is done, see Figure 3-8. The vehicle used
during the real, slow, refuel remains at the same location during the whole measurement, see
Figure 3-9. As mentioned in paragraph 3.4 the algorithm is not reset until the vehicles starts to
18
move again after the refuel. A signal named tank alarm indicates when the algorithm detects a
refuel.
The robustness of the algorithm is tested by simulating different long data-series with recordings
of signals used in the fuel estimation system. False alarms did not appear in any of the available
recordings.
Figure 3-8: Plot showing how the refuel algorithm and KF reacts to a fast refuels. The refuel
starts at 360s and goes on for approximately 20s. At 530s it could be observed in the second plot
that the vehicle starts moving again and the refuel algorithm output is reset.
Figure 3-9: Refuel detection for a regular refueling of a 625 liter tank. The refueling starts at 50s
and goes on for approximately 270s. The vehicle stands still during the whole time and the refuel
algorithm is not reset.
3.5.3 Refueling compare
The KF output from both refuel scenarios shown in Figure 3-8 and Figure 3-9 are compared with
how the regular exponential filter reacts to those refuels during simulation. The KF has the
detection algorithm controlling it, which helps to reduce the time it takes for the estimated level
to reach the sensor output. The outputs from both filters for the fast refuel could be observed in
19
Figure 3-10 and the comparison between both filter for the regular refuel can be observed in
Figure 3-11.
Figure 3-10: Plot showing the outputs from KF with refuel detection and exponential filter
without refuel detection during a simulation of a fast refuel that takes approximately 20s.
Figure 3-11: Plot showing the KF with refuel detection compared to the exponential filter
without the detection functionality. The refilling of the tank is done at 320s.
3.5.4 Regular driving
First a regular driving that goes on for 4.8 hour is simulated with a couple of stops. The truck is
driven on highway road most of the time. The truck has a 600 liter tank. At 10300s and 14700s
the truck stops and the filter estimate is drawn towards the constant sensor level.
20
Figure 3-12: A plot showing the volume estimate from the KF and the raw data from the fuel
level sensor.
Another long regular drive is presented below in Figure 3-13. It is an 11 hour drive with two
stops. Again a 600 liter tank is mounted on the truck used. By looking at curves for such a long
drive the exponential filter is less steady than the KF. There are two stops during the period
where the engine is turned off but data is continued to be collected. The fuel level sensor then
stops at the current level. Compared to the plots in Figure 3-12 the estimate is closer to the
sensor value at the stops and the estimate is not drawn upwards, instead it is kept constant.
Figure 3-13: Plot showing the estimated volume from KF, the raw value from the sensor and the
gain used in the feedback.
21
Figure 3-14: Plot that shows the output from the exponential filter usually used in Scania
vehicles.
If a shorter segment of the data is observed there is a higher variation in the output of the
exponential filter compared to the KF. At two occasions the sensor signal makes a sudden drop
for several samples followed by it returning to the level above. These happen between 20600s
and 20800s and between 21000s and 21200s which affects the estimate from the exponential
filter a lot more than from the KF. The result for both filters can be observed in Figure 3-15.
Figure 3-15: Plot showing the fuel level estimate from KF and exponential filter for a segment of
a recorded drive. The sensor output is also shown to get a view of the relation between all three
signals.
3.5.5 Validation Analysis
As the plots from the paragraph above visually indicate, the KF output gives a more steady level
that is not easily affected by fuel movements. It is more difficult to validate the instantaneous
value of the fuel level estimate. This KF sees the fuel level measurement far from perfect and
instead relies more on the fuel consumption which would indicate less impact of fuel
movements. In Table 1 there is a summary for a standard deviation test where the deviation for
both filtering methods is compared. A number of driving scenarios are analyzed.
This analysis compares the STD (standard deviation) for the KF way of estimating the fuel
volume with the exponential filter, which gives information about the degree of scattering for the
filter outputs mentioned. Further the STD of the sensor is calculated to show how much of the
scattering is removed by the filters by comparing the three STDs calculated. The signals are first
detrended, which means that their mean values are subtracted from each sample to give a signal
22
that better show the signal scattering rather than how it deviates from its mean value. All
calculations are done in Matlab using the functions named DETREND and STD, for further
information see ref [6]. The following table present the result of STD calculations performed on
a number of recorded driving scenarios.
Driving scenario
Length
STD
KF
1 Driving mostly on highway.
2.8h
0.2713 0.4124
1.4515
2 Driving mostly on highway. (See Figure 3-12)
4.8h
0.3799 0.7295
1.4626
3 Driving on highway south of Södertälje, Sweden.
32min
0.1573 0.2446
1.8887
4 Driving with a small amount of fuel in the tank to 14.4min 0.1599 0.4327
see how the fuel movements affect the fuel level
sensor. The vehicle is driven on a road known to
contain certain road slopes and curves.
2.8227
5 Similar scenario as nr 4.
2.9378
8.7min
STD
Exp.
Filter
0.6991 0.5694
STD
Sensor
Table 1: Summary of standard deviation for the filters and sensor for different driving scenarios.
Scenario nr 5 in Table 1 shows an occasion where the KF has a higher STD than the exponential
filter. The reason for that is that the exponential filter fortunately had a good initial state and was
not affected much from the fact that the sensor was varying a lot during the first 30s. The KF
finds the level as the exponential filter but since the Kalman gain is high during those 30s the
estimate was affected by the varying fuel level sensor. If the data sequence had continued for a
longer period the impact of the first 30s would have been very small and the exponential filter
would most likely have had a higher STD. The outputs from both filters and sensor could be
observed in Figure 3-16 below.
Figure 3-16: Plot for fuel level estimation from both exponential filter and KF. The KF follows
the fuel level sensor during startup.
23
Scenario nr 4 contains several slopes and at two occasions a long 16% road slope, between 567s
and 593s and between 665s and 688s. The road slope is defined as the ratio between the vertical
and the longitudinal rise expressed in percentage. The plots in Figure 3-17 shows the relation
between the fuel level sensor and the road slope. The road slope caused the sensor to indicate 0%
fuel level which affects the exponential filter output to decrease and increase again when the
road slope is passed. There is a time delay until the road slope clearly affects the estimate caused
by the filters.
The KF is not affected that much, just a slight decrease could be observed when the road slope is
significant.
Figure 3-17: Plot for a drive scenario taking place on test track with defined road slopes and
curves.
24
4
Implementation in a vehicle
For testing of the KF a new ECU is added to the CAN-bus to minimize the interference with
other systems.
4.1 Communication
The CAN-bus handles the communication between ECUs in the vehicle. All the sensors on the
vehicle are connected to the ECUs and the values are both used locally in the ECU and send over
the network to other parts of the vehicle. Signals calculated in ECU could in a similarly way be
shared over the network.
The CAN-bus was first invented with the aim to reduce the weight of the electrical system in
vehicles and to create one uniform communication standard. Another advantage is that it is easy
to connect new devices to the network without affecting the current setup. The CAN–protocol
defines the serial communication between ECUs using a bus network. Scania uses the SAE
J1939/11 standard which transfers up to 250kbits/sec in the CAN physical layer. A PC could be
connected to the network and achieve information from the bus. The PC can also be used the
other way by sending information and flash the different ECUs with new software.
The data on the CAN-bus is read from an external PC using a hardware interface and there are
several software programs that could be used to process the data. The raw data could be
displayed and logged by having a database which defines how the data should be transformed to
achieve physical values from it. One example of a hardware that could be used is named VCI
(Vehicle Communication Interface). For this thesis the VCI is used for flashing the added ECU
described in paragraph 4.4 and to read information using the GUI described in paragraph 5.2.
Different software use different ways of communicating with the CAN-bus and one useful
program is CANalyzer made by Vector, which makes it possible to monitor and record data from
CAN, for documentation see ref. [9]. In this thesis CANalyzer is used to record data during
testing in a vehicle and the results are presented in paragraph 4.6. A laptop with a CANcard is
connected to the CAN-bus via a special cable called CANcab.
4.2 Measuring fuel level
When the resistance varies in the level sensors (described in paragraph 2.3) it results in a
variation in the voltage signal which can be observed and used in the fuel level measuring
system. The ECU has a constants resistor R2 and voltage 5V at the input pin. The resistor R2 is
connected in a series circuit with the variable resistor R1, see Figure 4-1. R1 is not variable in a
continuous sense, instead it has its limited number of values for the specific sensor used. R1
represents the resistance given by the fuel level sensor and the voltage U can be calculated with
equation (4.1) below. The variable resistor has a tolerance of ± ∆R( R1 ) . The longitudinal and
most commonly used sensor in Scania vehicles has the lowest relative tolerance when it reaches
the bottom of the tank where the accuracy is most important. More details about the tolerances
could be found in paragraph 4.5.
U = 5V
R1
[V ]
( R1 + R 2)
(4.1)
25
Figure 4-1: Schematic showing how the fuel level sensor voltage is measured with the signal U.
The voltage achieved from the sensor is then passed through a look-up table that gives a fuel
level matching the input voltage for the specific tank type used. The table gives the volume level
for the voltage level closest to the input. A look-up table with n-values looks like this:
V1 , U = U1
V , U = U

2
V (U ) =  2
:

Vn , U = U n
(4.2)
The diagram in Figure 4-2 shows a typical relation between sensor voltage and tank volume for
the longitudinal sensor.
Figure 4-2: A diagram showing the relation between sensor voltage and tank volume for a 600
liter wide tank and 300 ohm resistance R2.
26
4.3 Measuring fuel use
The engine uses the majority of the fuel collected from the tank by the fuel system. In addition
there is a cab heater that could be used to heat the air in the cab while the engine is cold or turned
off. The engine uses fuel when combusting it to mainly produce work and the heater combusts
fuel to produce heat. There are three different types of heater, two of them heat the air directly
(ATA) and the last one heats water that circulates in the engines cooling system (WTA). The
water then heats the air in the ventilation system for the cab. The cabin heater has 4 different
power stages (25%, 50%, 75% and 100%) when it is turned on. The maximum fuel consumption
is given by cj for the different types of heaters. The following yields for the heaters considered:
[
]
q c (t ) m 3 / s -Fuel flow entering the cylinders.
c f , heater on
q h (t ) = 
0, heater off
< 3.67 ⋅ 10 −7 m 3 s , WTA − heater

c f = ≤ 7.78 ⋅ 10 −8 m 3 s , ATA − heater - Fuel flow used in heater.
≤ 1.42 ⋅ 10 − 7 m 3 s , ATA − heater

One occasion then the cab heater is used is when the vehicle is turned off and the driver rests
inside the cab and then nothing can be done with the signals because the ECUs are off. The
heater is also often used if the engine is cold, recently started and there is little cargo. In that case
it can take long time for the engine to become warm and another heating source, besides the
engine, is required during that time.
When analyzing records of fuel consumption for trucks driving long distances the mean value for
engine consumption usually is about 30L/h. Based on that consumption the largest heater
consumption shown above corresponds to approximately 5% of the total fuel consumption.
If the truck is left with its engine idling and cabin heater on, a larger fraction is used by the
heater. In that case the cabin heater consumption might be a significant part of the total fuel
consumption depending on power state. When the engine idles the fuel use is around 1.8L/h and
the largest heater consumption then corresponds to 42% of the total fuel consumption. Because
the cabin heater could represent a significant part of the fuel consumption it has to be added to
the engine consumption and together they represent the total fuel consumption.
4.4 Rapid prototyping
Scania has developed an interface for using model based development (RPS-system) which
generates C-code from Simulink models. The code could be implemented in a special type of
ECU for which the RPS-system is designed for. When implementing the new fuel level system
this system is used.
There are some limits with the ECU used with the RPS-system, both processor speed and
memory is limited compared to a modern PC which has to be in mind when implementing the
code. Input pins can be read every 10ms and the ECU is also connected to the CAN-bus to
communicate with other parts of the vehicle. The speed that the CAN-messages can be read with
is limited by how often the senders update their output of the messages. The tolerance for the
ECU input pins is ± 20 mV caused by the A/D-converter. The tolerance could cause a bias fault
27
when measuring the fuel level sensor voltage. If the longitudinal sensor is used the distance
between each sensor step represents 80-270mV, which gives an idea of how much the input
tolerance can interfere.
The RPS-system demands a constant sample time to be set before compiling the model, which is
10ms. Some predefined Simulink blocks in the RPS-system used for communication with the
vehicle demands this sample time.
When the fuel level is calculated in the added ECU it can send the value via the CAN-bus to the
dashboard in the cabin so the driver can see it. The ECU that handles the instrument in the cabin
is named ICL (Instrument Cluster). Normally an ECU named COO (Coordinator) handles the
fuel level measuring and sends the result via the CAN-bus to the ICL. While testing the new
system the added ECU overrides the fuel level measured by COO and controls the dashboard
fuel level indicator. The signals of interest on the bus can be observed in a PC. While testing,
several signals from the fuel level estimating system are send over the CAN-bus to be able to
monitor how the system behaves.
Figure 4-3: Sketch showing the systems communication with the CAN-bus. The box named RPS
is the new ECU mounted for testing the new fuel level system.
4.5 Tolerances
There are both electrical and mechanical tolerances affecting the fuel level measurement.
Electrical tolerance involves cables, connectors, A/D-converting and other components used to
transfer the electrical signals. The mechanical tolerance comes from differences between sensors
and how they are mounted in the tanks. In this paragraph the longitudinal sensor is considered.
If all worst case tolerances are put together all the way from level measurement to level estimate
the total tolerance can be calculated. The schematic in Figure 4-1 indicates that there is a
constant voltage source of 5V, which is not true at all times. Because the voltage varies the A/Dconverter needs to keep track of how much it differs from the wanted 5V. The voltage is
indicated with Uref and it is measured to get a better accuracy for the input. When knowing the
difference between Uref and 5V the A/D-converter compensates for a possible error. The
converter has a tolerance that affects U and it is specified to be maximum ±20mV.
28
Figure 4-4: Schematic showing how the voltage from sensor is measured (U) with resistances
that affects it.
Except for the input pin resistor R2 and the sensor resistor R1 there is a resistance caused by
cables, connectors etc. named Rc. At Scania this cable resistance is considered to be between 01Ω that is based on a standard calculation where each connector could add 5 mΩ and the cables
26 mΩ per meter.
The longitudinal sensor output varies between 42 Ω (top of tank) and 2794 Ω (bottom of tank)
for the longest sensor used. The possible values for all resistances are summarized in Table 2.
Resistance name
Value [Ω]
Max. Tolerance
R1
(42,…,2794)
± (1Ω+1%)
Rc
0-1
0
R2
750
± 1%
Table 2: Summary of resistances involved in measuring fuel level.
There are two extreme cases for each sensor level, the first occurs when R2 reaches its maximum
tolerance while R1+Rc reached their minimum tolerance and the second case occurs is the
opposite when R2 reached its minimum and R1+Rc its maximum tolerance. The two cases are
considered for the highest and the lowest value achieved from the sensor. This gives a total of
four extreme cases. If the A/D-converter tolerance of ±20mV is added a total of 8 possible cases
that will be considered.
In the model used the sensor values are sent into a look-up table which transforms them from
voltage to volume. The table consists of the predefined levels calculated for the tank type used.
The table uses the predefined volume level for the predefined voltage level closest to the input
voltage. This means that the table will send out the correct level as long as the input stays closest
to the true level.
When calculating total electrical tolerance it is found that the voltage into the ECU may vary
between 230mV and 300mV in the top of the tank where the defined level is 270mV. The closest
level is the second from the top and it is defined as 380mV. Since 300mV is closer to 270mV
than 380mV the electrical tolerance will not be a problem for this case.
29
At the bottom of the tank the voltage input into the ECU may vary between 3900mV and
3980mV where the defined level is 3940mV. The closest level is 3807mV, which means that the
tolerance will not be a problem here either.
The mechanical tolerance is given in distance and it is ± 2mm and the sensor is usually 585mm
long. This tolerance can never be avoided and there is always a risk that the true level is 2mm
lower or 2mm higher when changing from one level to another.
Test runs shows that the filter works good but the tolerances has to be kept in mind, the sensor
level could not be trusted at all times.
4.6 Test drive results
C-code is generated by compiling the system implemented with Simulink blocks. The filter is
represented in the same way as in Figure B.1-1 in Appendix B. To send and receive the signals
involved some more blocks are added to handle that communication. The added ECU is flashed
with the code and connected to the vehicle. Every interesting signal from the system is send over
CAN from the ECU and recorded with software in a PC. Several test runs where performed with
the ECU in a Scania truck. The outputs from the ECU were observed to analyze the filter
behavior online and some recordings are presented below.
The first driving scenario is the same as the one used in the verification paragraph 3.5.1. The
system implemented in the ECU gives similar results except the resolution is reduced to 0.4%,
which makes the output behave in a less continuous way compared to the simulation result. The
model itself has high resolution but the signals send over the CAN-bus has lower resolution
which affects the recorded data. The outputs from the KF and exponential filter could be
observed in Figure 4-5 below.
Figure 4-5: Plot showing the fuel level estimate from both the KF and the exponential filter.
Similar results are achieved for every type of driving scenario when comparing the ECU output
and the simulation results in Simulink. This indicates that the model works properly when it is
implemented in a Scania vehicle.
30
5
Fuel functionality
If the current fuel volume and fuel consumption is available, the distance left before a refuel is
needed could be estimated. The functionality is implemented with Matlab scripts and the
information is presented in real time using a GUI on a PC. Data is collected from the CAN-bus
into the PC, using a VCI. The method used for estimating the distance is simple and neglects
possible errors in the signals used.
5.1 Estimating distance before refuel is needed
To be able to estimate the distance the vehicle is able to travel before the tank is empty, the mean
value of the fuel consumption and the current fuel volume in the tank is needed. The fuel
consumption will be expressed as distance travelled per liter fuel for the vehicle so far since start
or since a major cargo weight change. The momentarily consumption for the engine and cabin
heater is available on the CAN-bus and the distance travelled is achieved by looking at the total
distance travelled by integrating the velocity.
When designing the fuel functionality the following notations are introduced:
s(t ) - Distance travelled [m]
v(t ) - Current vehicle speed [m/s]
c(t ) - Current fuel consumption [m3/s]
m(t ) - Vehicle weight [kg]
C (t ) - Distance travelled per volume of fuel since start or major weight change [m/m3]
C m (m(t )) - Distance travelled per volume of fuel during start-up period [m/m3]
Vˆ (t ) - Estimated fuel volume in the tank [m3]
dˆ (t ) - Estimate of distance left before refill [m]
The calculation of C (t ) needs a period of time to stabilize and during that time the fuel
consumption per distance is set based on what a truck usually consumes given the current cargo
mass. It is simply a linear interpolation between consumption and cargo mass based on
measurement data. The interpolation output is named C m (m(t )) to indicate that it depends on the
current cargo mass. The start-up state is kept until 30 seconds after the vehicle starts moving.
During that time the integration of consumption and distance are stabilizing more and more for
each time step.
The following equations defines the calculations performed when estimating the remaining
distance:
s(t ) = ∫ v(t ) dt
(5.1)
31
C m (m(t )), startup state

C (t ) =  s (t ) , otherwise
 c(t ) dt
∫
(5.2)
dˆ (t ) = C (t ) ⋅ Vˆ (t )
(5.3)
Sometimes the vehicle could be loaded or unloaded without turning it off. If a major weight
change occurs the consumption calculated up until that moment in time may not represent the
upcoming consumption in a good way. Every 10 minutes the vehicle mass is checked and if it
changed by more than 10% since start or last major change the estimation is restarted, with
startup state, and the vehicle mass is updated.
The switch from start-up state to normal mode could make the estimate change rapid from one
level to another, which would be annoying for the driver. A slow exponential filter is used to
filter the signal given by equation (5.3). During the last 50km of estimated distance left the filter
is made faster. The filter with output l(t) is given by the following equation:
0.95, dˆ (t ) < 50km
l (t ) = α ⋅ l (t − 1) + (1 − α ) ⋅ dˆ (t ), α = 
0.999, dˆ (t ) ≥ 50km
(5.4)
5.2 Graphical user interface
The GUI is created with Matlab Guide and presents information about current vehicle weight,
fuel volume, distance remaining until the tank is empty, distance traveled since started and
distance traveled since a significant change in weight. The functionality and visual look is
created with scripts in Matlab and the program can be build into an executable program that runs
on any PC. For more information about Matlab Guide see ref. [6].
Figure 5-1: Flow chart showing how the GUI works for fuel functionality
32
Everything that happens in the GUI is controlled by a timer and during every sample new
information from CAN is received and decoded. The decoding is followed by calculations of
time-discrete versions of equation (5.1)-(5.4). The discretization is done with the Euler method,
see ref. [4]. The communication with the vehicles CAN-bus is done via a VCI by using a library
file in the PC that defines how the data is achieved. The data collected consists of the raw values
and have to be converted to real physical units using a database that defines how the signals are
coded. Some of the outputs from equation (5.1)-(5.4) are converted into other suitable units
before presented in the GUI.
The information is presented with formatted text that updates every sample. The GUI also
contains a vertical bar that indicates the fuel level. When the level is below 5% the bar changes
color from green to red and starts to flash to make the driver aware of the low fuel level. The
menu contains different options such as to specify the maximum tank volume and a plotted curve
of the fuel level could be observed in real time.
Figure 5-2: A figure of what the fuel functionality GUI looks like.
If a major weight change is detected and the algorithm is restarted, the estimated distance before
refuel could make a major change instantly from one level to another. The weight change is
indicated by a symbol that will appear on the GUI and stay visible for a period of time to make
the driver aware of the reason for the sudden change in estimated distance left.
Figure 5-3: A figure that indicates a major weight change.
33
5.3 Test runs
The fuel functionality is tested while driving by connection a PC laptop to the CAN-bus and
observing the GUI while the truck is driven. The data from the bus is at the same time recorded
and further analyses are done by replaying it with a PC. Most of the information displayed in the
GUI is directly decoded from CAN but the estimate of distance left before refill is interesting to
analyze. Results show that the functionality works as requested but the estimation of the distance
per liter fuel often takes a period of time to be stabilized. The filter helps to give a soft transit
when the estimate changes from the constant one based on vehicle weight and the estimated
distance left based on the collected data online. Figure 5-4, Figure 5-5 and Figure 5-6 shows
some outputs when the functionality is tested with recorded data.
Figure 5-4: Plot showing signals for estimating the distance left until refuel.
The plots shows that the filtered estimated distance left, l(t), starts by following the estimate
based on vehicle weight, Vˆ (t ) ⋅ C m (m(t )) , and after the start up period it changes input to dˆ (t ) .
The filter is slow and not easily affected by the scattered behavior from l(t).
If the signal is continued to be observed the consumption stabilizes more and more over time. It
still has scattering behavior caused by changes in consumption per distance travelled. The
following plots in Figure 5-5 show the same scenario as Figure 5-4 but more data is used and the
filter output together with the fuel economy (distance per liter) and fuel level are plotted. Since
the fuel level is steady compared to the fuel economy the resulting distance left, dˆ (t ) , mainly
follows the fuel economy behavior.
34
Figure 5-5: Plots showing some outputs from the fuel functionality algorithm. The behavior of
the estimated distance left follows the one for fuel economy.
Another scenario is recorded and replayed with the GUI. This time the consumption is higher
than normal during the first 1000s that cause the filter output, l(t), to be drawn towards the short
estimated distance left until it stabilizes and the filter output increase again. The estimate
achieved during this scenario is presented in Figure 5-6 below.
35
Figure 5-6: Plot showing the estimated distance left. Both raw and filtered data are presented.
36
6
Summary & Conclusions
The KF relies mostly on the fuel consumption and little on the fuel level sensor except during
startup. If high accuracy in the fuel consumption signal is achieved at all times this signal could
alone represent the total decrease in fuel volume in the tank. However the estimate needs some
kind of support since the fuel consumption is not trustworthy at all times and an initial state must
be set. The support is achieved by using information from the fuel level sensor.
The exponential filter used today in Scania vehicles has the advantage of being simple and needs
only one input. The KF needs at least two input signals; fuel level and fuel consumption. If the
fuel is consumed by several systems the model may need one input from each system. If the
level sensor values collected during startup give false information about the fuel volume the
exponential filter will faster forget that information than the KF. This is due to that the filter
relies more on the level sensor values during startup compared to its steady state. Steady state is
reached within the first 3-4 minutes. Without better functionality to set the initial state the KF
could present a fuel level with less accuracy than the exponential until the KF has compensated
for its estimation error.
As the simulation results show, the KF is not easily affected by fuel movements in steady mode
and the filter output rarely show a false increase in fuel level compared to the exponential design.
The increase in estimated fuel level from the filters occurs when the level sensor has been giving
false information about a certain fuel level for a while. Since the KF is less dependent on the fuel
level sensor the false behavior is reduced when looking at the KF estimate.
Except visually validation of the fuel level estimate another way of measuring how steady the
outputs from the filters are is by comparing their standard deviation. The KF gives a steadier
estimate with less deviation than the exponential. One exception is if the data sequence is short
and the KF estimates a bad initial state.
The refuel detector shows good performance and could be used to reset the KF. There is a small
time delay until the detector finds the refuel behavior in the signal from the level sensor. The KF
gets a signal from the detector and the filter is reset until the refuel is completed, which makes
the KF output to follow the fuel level sensor rise. The detector is not limited to be used on the
KF and the same detector could reset the exponential filter.
One problem with the fuel functionality that estimates the distance left until refuel is to have a
good initial estimate. The initial estimate is presented for the driver until the estimation
functionality have had some time to gather information to create a steady estimated
consumption. The current way is done by predicting the initial estimate based on the vehicle
weight and interpolate among mean consumptions achieved during test runs. This gives an
estimate with a correct magnitude but without good accuracy until after several minutes from
start when the calculation of the fuel economy based on sensors has stabilized.
Since the longitudinal fuel level sensor used today only has 25 steps to measure the fuel level it
would be useful to have a sensor with more levels. The ultrasound sensor that was considered in
paragraph 2.3.3 has more levels than the longitudinal. The extra steps achieved from this sensor
may not be useful since there could be a lot of disturbances caused by the electrical and
mechanical tolerances. All worst case tolerances have to be considered before deciding if the
extra levels are valuable.
37
6.1 Conclusions
Both types of filters have their advantages and disadvantages. The following advantages and
disadvantages are found for the KF compared to the exponential filter.
Advantages:
•
Steady fuel level estimate.
•
Combines fuel information from two signals.
•
Not as dependent on the fuel level sensor in the long run.
•
Easily extended with more inputs if more information regarding the fuel volume is
added.
Disadvantages:
•
Needs longer time to find the true estimate if the fuel level sensor gives false values
during start up.
•
Demands more input signals, memory and processor usage.
When looking at both advantages and disadvantages the KF is a good choice of filter if the
steadier level estimate is worth the extra demands in computational power. It is probably not
worth it for the fuel level meter on the dashboard, but if the fuel level is used in some other
system that sees the estimation as accurate it is good to have a steadier level.
The fuel functionality shows one way of estimating the distance left without rapid changes,
which is good if the result should be presented for a driver who usually prefers slow changes on
the instruments. The disadvantage with the method is that it has no information about the fuel
consumption to come. But it might be a first step to get a good estimate to make the driver aware
of how long until a refuel is needed. This information makes it possible to plan his or hers drive
and avoid driving with too much fuel in the tank. Further the driver could plan the drive in other
ways, for example combining the breaks and sleep periods with the refueling. By doing this the
driver could save time by not having to make more stops than necessary.
38
7
Further development
The basic KF is developed, which combines information that affects the fuel volume in the tank
but more investigations can be done. Most important is to validate the instantaneously value of
the fuel level estimate. If this can be done the startup parameters such as fuel level sensor
variance could be adjusted to get as good accuracy as possible with the signals currently
available. This validation could be done by measuring the fuel flow collected by the fuel pick-up
device and the flow of excessive fuel that comes back from the engine. The flow meters must
have good accuracy.
Since one of the disadvantages using the KF is that it could take long time to compensate for bad
startup, some functionality that estimates the initial state is requested. When the vehicle has been
going for a long period of time there is a lot of information gathered to estimate the current state
and all this information is lost when the truck is turned off. By saving the state this information
could be used the next time the vehicle is started. This gives rise to other problems because a lot
of things could have affected the fuel volume in the tank during the time the vehicle was turned
off. For example the tank may be refilled with fuel and then this have to be detected in some way
when the system starts.
A way to expand the tank model with KF is to add a state which represents the current bias fault
in the sensor depending on road slope, vehicle acceleration etc. Since the fuel moves as a result
of road slopes and forces that raise from accelerations the information from the fuel level sensor
could be processed in a different way when the fuel movements are detected. If a model could be
found which estimates the sensor bias fault, current sensor value could be compensated for this
and the resulting value could be more accurate. In this case the variance for the sensor could be
decreased, which result in a faster filter.
The implementation of the KF in the Simulink model could be optimized by using other types of
blocks when building it. The memory and processor usage has not been taken into account when
designing the filter and several things can be done to optimize it.
The KF is adjusted to data collected with the three specific vehicles used during this thesis. If
more data is collected for vehicles with smaller and larger tanks the system can be tested with
that data. This makes it possible to investigate if the system needs adjustments depending on
tank type or if it works fine with every type of tank that Scania use.
Tank leakage is something that would affect the fuel level and if such a leakage could be
detected the driver must be informed and the vehicle should be taken to a workshop as soon as
possible. Since there are two signals available that measures the fuel volume use, it is possible to
design a diagnostic system that detects a fault somewhere in the fuel system, maybe a leakage.
Methods presented in [5] could be used to create this system.
When dealing with fuel functionality the problem to have a good initial estimate could be
reduced by saving the mean consumption from the last run. If this estimate is used instead of the
one based on cargo weight it could give a better initiation since it is based on the individual truck
that the system is implemented in. Beyond getting a good initial state the fuel functionality needs
more testing to validate the results with.
Another useful work would be to investigate what professional truck drivers request when it
comes to fuel functionality. What kind of functionality that the majority find useful could be
achieved by interviews, handing out forms with questions etc.
39
A way to affect the estimated distance left is to use look-ahead information based on maps with
information about differences in altitude on the road ahead. This could predict the consumption
to come. The planned route ahead could be received from example a road navigator, if the
destination is set.
The safety volume that needs to be left in the tank limits the amount of fuel that could be used. A
catch-tank (see paragraph 2.1) will probably reduce this limited volume. Further work could be
done to investigate if the catch-tank is a good idea and if the catch-tank affects the fuel volume
measurement in any way.
If another type of fuel level sensor should be used it has to be investigated if the advantages with
the sensor are useful. It may be at least as important to reduce the tolerances affecting the signal
from the sensor to the receiving ECU.
40
8
References
All references to all material used in this report are presented below.
8.1 Books
[1] F. Gustafsson, L. Ljung, M. Millnert. 2001. Signalbehandling. Studentlitteratur.
[2] T. Glad, L. Ljung. 2003. Reglerteori. Studentlitteratur.
[3] G. Blom, J. Enger, G. Englund, J. Grandell, L. Holst. 2005. Sannolikhetsteori och
statistikteori med tillämpningar. Studentlitteratur.
[4] L. Ljung, T. Glad. 2004. Modellbygge och Simulering. Studentlitteratur.
[5] M. Nyberg, E. Frisk. 2008. Model Based Diagnosis of Technical Processes.
8.2 References to Internet
[6] Matlab documentation online. Available at
http://www.mathworks.com/access/helpdesk/help/helpdesk.html (May 29, 2008).
[7] M.H. Djavareshkian, M. Khalili. 2006. Simulation of Sloshing with the Volume of Fluid
Method. Available at http://www.univ-lille1.fr/gdr-ifs/cv/aquelet/1441.pdf (August 11,
2008).
[8] Picture showing fuel sloshing, Figure 1-1. Taken from
http://www.fluent.com/solutions/examples/x181.htm (September 17, 2008).
[9] Documentation for Vector CANanalyzer. Available at http://www.vectorworldwide.com/vi_canalyzer_en.html (October 7, 2008)
[10] Product overview for SSI Technologies Fluid-Trac ultrasound level sensor. Available at
http://www.ssitechnologies.com/PDF/Application%20Notes/FT_AN1_2Wire_Product_
Overview.pdf (October 28, 2008)
8.3 Published thesis
[11] M. Kramfors. 2002. Master’s thesis work. ”Bränslenivågivare” (Swedish).
[12] A. Larsson. 2007. Master’s thesis work. ”Avskiljning av vatten i dieselbränsle”
(Swedish).
8.4 Personal contacts
Tobias Öberg at Scania CV AB.
Andreas Jerhammar at Scania CV AB.
Jonny Andersson at Scania CV AB.
Anders Wedholm at Scania CV AB.
Andreas Cronhjort at Scania CV AB.
Patrik Jansson at Scania CV AB.
41
Christofer Sundström at Vehicular Systems, Linköping University.
Erik Frisk at Vehicular Systems, Linköping University.
42
Notations
C-code
Code written in C programming language
ATA
Air -To-Air heater
WTA
Water-To-Air heater
Simulink
MathWorks SIMULINK
RPS
Rapid Prototyping Solution
ECU
Electrical control unit
CAN
Controller area network
GUI
Graphical User Interface
COO
Coordinator
ICL
Instrument Cluster
VCI
Vehicle Communication Interface
KF
Kalman Filter
STD
Standard deviation
43
44
Appendix A Driving scenario analysis
This appendix presents the result for the different test drives performed to analyze the reaction in
fuel level to different movements of the vehicle. Several test drives were done to analyze the
impact on the fuel level when driving in defined scenarios. For every plot in this appendix the
fuel level raw value is plotted, which is measured from the top of the tank. The changes of fuel
level up and down can be a result of that the fuel level is about to change from one discrete level
to another but the basic behavior can be analyzed
A.1 Up- and downhill
When driving in road slopes the fuel level is affected and the sensor shows less fuel in the tank
when driving uphill. For the type of tank used in the measurements presented in Figure A.1-1
below, the sensor value moves 2-4 levels which are approximately 5-10cm for this type of sensor
in a wide-tank.
Figure A.1-1: Plots showing how the fuel level sensor reacts when driving uphill.
45
A.2 Hard turns
When making turns the fuel level increases or decreases depending on which direction the
vehicle turns and where in the tank the sensor is mounted. When turning left, see Figure A.2-1
below, the forces acting on the vehicle makes the fuel to displace to the right inside the tank. The
sensor indicates more fuel then there is when turning left. At the end of the turn the fuel moves
fast back to the left side of the tank which results in a lower level from the sensor then it started
at. If the measurement period had been longer the level would had eventually go back to where it
started.
Figure A.2-1: The figure shows how the fuel sensor reacts when a truck makes a sudden left turn.
46
A.3 Hard accelerating and braking
When accelerating from zero the fuel level varies a lot because tank sloshing occurs and waves
are created. When the vehicle stops accelerating and starts braking the sensor value varies more
rapidly because of the change in direction of the forces acting on the vehicle. The result in
presented in Figure A.3-1: below.
Figure A.3-1: The plots are showing fuel level sensor output and vehicle speed when
accelerating and braking.
47
A.4 Rocky road track
When driving on a straight rocky road track the fuel level sensor varies about 1-5 levels which
represents 1-9cm for this sensor and tank type. The result is presented in Figure A.4-1 below.
Figure A.4-1: The plots show the impact on the fuel level sensor when driving on a rocky road
track.
48
A.5 Circles
In this scenario the vehicle is driven with full steering to the left followed by full steering to the
right. When driving in circles the sensor shows less fuel while turning left and more fuel when
turning right. That behavior indicates that the sensor is located on the right side of the tank used
when measuring. The difference between the highest fuel level when turning right and the lowest
fuel level when turning left is 6 levels or 13cm for the sensor used. Results can be observed in
Figure A.5-1 below.
Figure A.5-1: The plots show a left turn circular driving followed by right turn circular driving.
49
A.6 Urban environment
When driving in urban environment the fuel level changes at most 3 levels or 6cm. The result is
presented in Figure A.6-1 below.
Figure A.6-1: The plots show 900 seconds of driving in urban environment.
50
Appendix B Simulink model
This appendix presents the Simulink model used when simulating with recorded data. The same
model is expanded with blocks for communication with CAN (Controller Area Network) when
implementing the model in an ECU (Electrical Control Unit). Figure B.1-1 shows how the model
is built in Matlab Simulink.
B.1 Simulink fuel level estimation system
KF
fuelFlow
q [m^3/s]
Vol processing
vehicleSpeed
Vehicle Speed
Alarm
reset
Vhat [m ^3]
Vhat_f [m^3]
Vol [%]
KF_estimate
Sensor
Refuel Detector
voltage
V [m^3]
V -> Volume [m^3]
u
V -> Volume [%]
y
old _filtering
Exponential Digital Filter
Figure B.1-1: Simulink schematic for the system used when simulating.
51
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertisement