You are on page 1of 86

Department of Electronic and Information

http://move.dei.polimi.it/

Analysis and development of a prediction algorithm for an electric vehicle range estimation
Supervisor: Sergio SAVARESI Co-supervisor: Matteo CORNO Milan 25/7/2012

Master Thesis of:


Massimo LURASCHI
matr. 739979

Intro

Electric Vehicles (EV) Pros: Indipendent from fossil fuel (ecologic) Much cheaper re-fueling (economic) Better engine efficency Cons: Batteries have much lower energy density than fossil fuel (consequent lower range for EVs) Re-fueling (re-charging) takes much more time for batteries than fossil fuel (9 h vs ~3 min) Solutions: Predict range to plan mobility and avoid useless re-fueling Precise predictions helps exploiting 100% of battery capacity

Massimo Luraschi matr. 739979

Agenda

Runtime acquisition of vehicle signals Current Voltage Velocity State of charge estimation Residual range calculation

Massimo Luraschi matr. 739979

Index

Vehicle and setup

Energetic characterization

State of charge and battery pack capacity estimation

Prediction algorithm

Massimo Luraschi matr. 739979

Electric Vehicle

Two-seater pure electric vehicle Asynchronous three phase power unit Rear wheel drive Max power: 15 kW (~20.4 CV) Max torque: 150 Nm Max speed: 100 km/h Declared range: 140 km Weight: 542 kg Lenght: 2880 mm Width: 1560 mm Height: 1425 mm

Massimo Luraschi matr. 739979

Setup

Signal acquisition from ECU Data sent via Bluetooth Data logging with iPhone Offline data analysis on PC

iPhone Acquisition Unit Gateway


CAN Bus

(work Ive done is circled in red)


Massimo Luraschi matr. 739979

Fsend = 5 Hz

Index

Vehicle and setup

Energetic characterization

State of charge and battery pack capacity estimation

Prediction algorithm

Massimo Luraschi matr. 739979

Vehicle longitudinal dynamic model Coasting down conditions

Wheel F.

Drag F.

Viscous Friction F.

2 1 & Mv = Fw Fb 2 Cx Sav K vv Cr Mg cos Mgsin

Inertial F.

Braking F.

Rolling Friction F.

Slope F.

Massimo Luraschi matr. 739979

Vehicle longitudinal dynamic model Coasting down conditions

Wheel F.

Drag F.

Viscous Friction F.

2 1 & Mv = Fw Fb 2 Cx Sav K vv Cr Mg cos Mgsin

Inertial F.

Braking F.

Rolling Friction F.

Slope F.

Massimo Luraschi matr. 739979

Vehicle longitudinal dynamic model Coasting down conditions

10

Wheel F.

Friction F.

2 1 & Mv = Fw Fb 2 Cx Sav K vv Cr Mg cos Mgsin

Inertial F.

Braking F.

Slope F.

Massimo Luraschi matr. 739979

Vehicle longitudinal dynamic model Coasting down conditions

11

Wheel F.

Friction F.

2 1 & Mv = Fw Fb 2 Cx Sav K vv Cr Mg cos Mgsin

Inertial F.

Braking F.

Slope F.

Simplified longidudinal dynamic model:

& = v2 v Mv

Massimo Luraschi matr. 739979

Friction forces identification

12

Nine coasting down trials done, decelerating from 20 m/s (~72 km/h)
Speed during each coasting down trial 20 18 16 14 Speed [m/s] 12 10 8 6 4 2 0 data1 data2 data3 data4 data5 data6 data7 data8 data9

10

20

30 Time [s]

40

50

60

Massimo Luraschi matr. 739979

Friction forces identification

13

Friction forces identification

= 0.347 =1.741 =115.822


Massimo Luraschi matr. 739979

[ N s2 / m2 ] [ N s / m] [ N]

Efficency estimation Constant speed conditions


Longitudinal dynamic model

14

Wheel F.

Identified Friction F.

(v) Mgsin & = Fw Fb F Mv f


Inertial F. Breaking F. Slope F.

&=0 v =0

Fb = 0

Massimo Luraschi matr. 739979

Efficency estimation Constant speed conditions


Longitudinal dynamic model

15

Wheel F.

Identified Friction F.

(v) Mgsin & = Fw Fb F Mv f


Inertial F. Breaking F. Slope F.

&=0 v =0

Fb = 0

Massimo Luraschi matr. 739979

Efficency estimation Constant speed conditions


Longitudinal dynamic model

16

Wheel F.

Identified Friction F.

(v) Mgsin & = Fw Fb F Mv f


Inertial F. Breaking F. Slope F.

&=0 v =0

Fb = 0

Wheel force estimation

(v) 0 = Fw F f
Efficency estimation

=F (v) F w f

(v) v Pwheel Fwheel v F , v) (F = = w = w Pbatt Vbatt I batt Vbatt I batt


Massimo Luraschi matr. 739979

Energetic efficency

17

Constant velocity for lenghts of approximately 10 seconds Average of speed, voltage and current during the trial Different lenghts at different speeds (15-60 km/h)
Efficiency as function of speed 100 90 80 70 Efficency [%] 60 50 40 30 20 10 0 4

10 Speed [m/s]

12

14

16

Massimo Luraschi matr. 739979

Index

18

Vehicle and setup

Energetic characterization

State of charge and battery pack capacity estimation

Prediction algorithm

Massimo Luraschi matr. 739979

State of charge estimation

19

Estimation method used: Coulomb Counting Numerical integration of power

Ebatt (t ) = E0 Pbatt (t ) dt
0

Drift problem solved by re-initializing the count at every vehicle startup Initialization problem solvable with a voltmetric mapping of the battery pack
Massimo Luraschi matr. 739979

Battery pack capacity estimation

20

Definition of complete discharge


Start: vehicle 100% charged Full discharge: vehicle engages limitation mode Battery pack voltage rapidly drops (80 -> 55 V) For safety reasons the trial ends just after engaging limitation mode, not until vehicle switch off (remaining energy is highly negligible)

Massimo Luraschi matr. 739979

Battery pack capacity estimation

21

Sudden voltage drop indicates battery pack full discharge


Voltage over time during a full discharge trial 85

80

75

Voltage [V]

70

65

60

55

2000

4000

6000 Time [s]

8000

10000

12000

14000

Massimo Luraschi matr. 739979

Battery pack capacity estimation

22

Trial 26/04 02/05 04/05 12/05 14/05 16/05 20/05

Energy [kWh] 9.4546 9.3905 9.0644 11.0707 12.5351 10.2818 10.1224

Distance [km] 116.4678 102.8664 107.5287 123.4066 111.6371 115.6776 114.2595

Etot Average: 10.27 kWh Etot Variance: 1.241 kWh2


Massimo Luraschi matr. 739979

Enom: 13 kWh

Index

23

Vehicle and setup

Energetic characterization

State of charge and battery pack capacity estimation

Prediction algorithm

Massimo Luraschi matr. 739979

Prediction algorithm

24

Prediction steps
Average consumption identification Remaining battery capacity estimation Foreward projection of average consumption and residual range calculation Focus: calculate average consumption

Massimo Luraschi matr. 739979

Prediction algorithm

25

Preliminary analysis about consumption Identification of factors which have impact on consumption calculation Design of an algorithm based on each factor Baseline algorithm Algorithm based on moving window to calculate consumption Algorithm based on initialization value Algorithm based on trip knowledge and classification

Massimo Luraschi matr. 739979

Prediction algorithm

26

Analysis motivation
Asses each factors contribution Justify possible implementation costs with results

How?
Sensitivity analysis on each algorithm, assumption: decoupling of each factor Prediction performance evaluation

Massimo Luraschi matr. 739979

Range prediction: baseline algorithm

27

Total instant consumption:

E(t ) C(t ) = s(t )

[ kWh km]

Instant residual range:

E(t0 ) E(t ) A(t ) = s(t ) + C(t )

[ km]

Massimo Luraschi matr. 739979

Range prediction: baseline algorithm

28

Prediction with trip consumption 200 180 160 Predicted Distance [km] 140 120 100 80 60 40 20 0 0

Actual travelled distance

20

40

60 Distance [km]

80

100

120

Massimo Luraschi matr. 739979

Range prediction: performance index

29

Instant prediction error:

e(t ) = s(tend ) A(t )


2 MSE = E s ( t ) A ( t ) ) ( end

[ km]
2 km

Mean Squared Error:

Mean Relative Error:

s(t ) A(t ) MRE = E end s(tend ) s(t )

[%]

Massimo Luraschi matr. 739979

Range prediction: performance index

30

Massimo Luraschi matr. 739979

Range prediction: performance index

31

Instant prediction error:

e(t ) = s(tend ) A(t )


2 MSE = E s ( t ) A ( t ) ) ( end

[ km]
2 km

Mean Squared Error:

Average relative error:

s(t ) A(t ) MRE = E end s(tend ) s(t )

[%]

Massimo Luraschi matr. 739979

Algorithm based on moving window to calculate consumption

32

Algorithm based on moving window to calculate consumption

Massimo Luraschi matr. 739979

Algorithm based on moving window to calculate consumption

33

Instant total consumption is very little sensible to variations as the session goes on (memory effect) Solution: evaluate consumption with a moving window

E(t ) E(twindow ) C(t ) = s(t ) s(twindow )

[ kWh km]

Moving window is basically a filter and as such, it introduces phase displacement: the bigger the window, the more phase displacement Bigger windows have a stronger filtering effect, risking memory effect again (limit: window size = distance in a session) Smaller windows bring to noisy and nervous prediction

Massimo Luraschi matr. 739979

Sensitivity analysis: window dimension

34

Prediction sensitivity on fraction dimension 200 180 160 Predicted Distance [km] 140 120 100 80 60 40 20 0 0 Baseline Fraction: 3 km Fraction: 15 km Fraction: 30 km

20

40

60 Distance [km]

80

100

120

Massimo Luraschi matr. 739979

Sensitivity analysis: window dimension

35

Relative prediction Error in relation with fraction size

23

22 Relative Error [%]

21

20

19

18 3 km 10 km 15 km 20 km Fraction [km] 25 km 30 km Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: window dimension

36

Relative prediction Error in relation with fraction size

23

22 Relative Error [%]

21

20

19

> 1%

18 3 km 10 km 15 km 20 km Fraction [km] 25 km 30 km Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: window dimension

37

Relative prediction Error in relation with fraction size

23

22 Relative Error [%]

21

20

Window width optimal value

19

18 3 km 10 km 15 km 20 km Fraction [km] 25 km 30 km Baseline

Massimo Luraschi matr. 739979

Algorithm based on initialization value

38

Algorithm based on initialization value

Massimo Luraschi matr. 739979

Algorithm based on initialization value

39

Baseline algorithm concentrates biggest error during session startups Cause: Consumption calculation is based on little data, susceptible of ample variations Solution: weighted average with initialization value

Cinit Winit + C(t ) Wtrip C(t ) = Winit + Wtrip

[ kWh / km]

Cinit of choiche: total cumulative consumption (0.1012 kWh/km, on 871 km)


Massimo Luraschi matr. 739979

Algorithm based on initialization value

40

Criticalities:
Cinit is only needed when starting a session Bigger Winit leads to a constant prediction Smaller Winit makes Cinit useless Winit and Wtrip must act as oblivion coefficients Good start: fix Wtrip = s(t), elapsed distance gets bigger so it gains more importance during session Winit = ?
Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption weight

41

Prediction sensitivity on cumulative consumption weight 180 Baseline weight: 10 km weight: 20 km weight: 30 km weight: 50 km weight: 70 km weight: 100 km

160

140 Predicted Distance [km]

120

100

80

60

40 0

20

40

60 Distance [km]

80

100

120

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption weight

42

Relative prediction error in relation with cumulative consumption weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5 16 15.5 15

10 km

20 km

30 km

50 km Weight [km]

70 km

100 km

Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption weight

43

Relative prediction error in relation with cumulative consumption weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5

~ 1% 16
15.5 15

10 km

20 km

30 km

50 km Weight [km]

70 km

100 km

Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption weight

44

Relative prediction error in relation with cumulative consumption weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5 16 15.5 15

Cumulative consumption weight optimal value

10 km

20 km

30 km

50 km Weight [km]

70 km

100 km

Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption value

45

Cinit Accuracy:
A generic default value is enough? Memorizing each users consumption and using it as Cinit gives better prediction performance? (implementation costs) Trials on a standard track brought evidence of average consumption variation between 0.09 and 0.140 kWh/km depending on the pilot

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption value

46

Prediction sensitivity on fraction dimension 180 Baseline cons: 0.08 kWh/km cons: 0.09 kWh/km cons: 0.1 kWh/km cons: 0.11 kWh/km cons: 0.12 kWh/km cons: 0.13 kWh/km

160

140 Predicted Distance [km]

120

100

80

60

40 0

10

20

30

40

50 60 Distance [km]

70

80

90

100

110

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption value

47

Relative prediction Error in relation with history weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5 16 15.5 15

Actual user consumption: 0.0972 kWh/km

0.08 kWh/km 0.09 kWh/km 0.1 kWh/km 0.11 kWh/km 0.12 kWh/km 0.13 kWh/km

Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption value

48

Relative prediction Error in relation with history weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5

Actual user consumption: 0.0972 kWh/km

~ 3%

16

15.5 15

0.08 kWh/km 0.09 kWh/km 0.1 kWh/km 0.11 kWh/km 0.12 kWh/km 0.13 kWh/km

Baseline

Massimo Luraschi matr. 739979

Sensitivity analysis: cumulative consumption value

49

Relative prediction Error in relation with history weight 20 19.5 19 18.5 RelativeError [%] 18 17.5 17 16.5 16 15.5 15

Actual user consumption: 0.0972 kWh/km

Cumulative consumption optimal value

0.08 kWh/km 0.09 kWh/km 0.1 kWh/km 0.11 kWh/km 0.12 kWh/km 0.13 kWh/km

Baseline

Massimo Luraschi matr. 739979

Algorithm based on trip knowledge and classification

50

Algorithm based on trip knowledge and classification

Massimo Luraschi matr. 739979

Final algorithm based on trip knowledge and classification

51

Big difference between urban, suburban and highway consumption Hypothesis: session track knowledge (e.g.: user sets satNav) Track is split in different track types (urban, suburban and highway) Average consumption in each track type is memorized a priori for each pilot (cumulative cons. updated each session) Predicted consumption for current session: weighted average of cumulative consumption and session consumption, for each track type

Massimo Luraschi matr. 739979

Final algorithm based on trip knowledge and classification


Consumption for type of track in progress Remaining distance for each track type Consumption for each track type: weighted average of cumulative cons. and (if present) cons. in current session Sessions entire consumption: weighted avg of consumptions calculated in previous step

52

Eurb (t ) Curb (t ) = surb (t )

%urb (t ) = surb (t0 ) surb (t ) s


(t ) = Curb (t0 ) Winit + Curb (t ) surb (t ) C urb Winit + surb (t )

% (t ) = i {urb,extra,high} C

(t ) s %i (t ) C i

%i (t ) s

i { urb,extra, high}

Residual range
Massimo Luraschi matr. 739979

A(t ) = s(t ) +

E(t0 ) E(t ) % (t ) C

Final algorithm based on trip knowledge and classification


Prediction sensitivity on trip knowledge 200 180 160 140 120 100 80 60 40 20 0 0

53

Baseline Trip Knowledge

Predicted Distance [km]

20

40

60 Distance [km]

80

100

120

Massimo Luraschi matr. 739979

Final algorithm based on trip knowledge and classification


Prediction error on trip knowledge 100 90 80 70 60 error [%] 50 40 30 20 10 0 0

54

Baseline Trip Knowledge

20

40

60 Distance [km]

80

100

120

Massimo Luraschi matr. 739979

Final algorithm based on trip knowledge and classification


Relative Error for each trial 45 Baseline Baseline Mean Trip Knowledge Trip Knowledge Mean

55

40

35 Relative Error [%]

MRE: 23%

30

25

MRE: 13%

20

15

10

trip knowledge

baseline

Massimo Luraschi matr. 739979

Conclusions

56

Initial goal: design of an algorithm for predicting residual range Consumption data observation and hypothesis about influent factors Hypothesis validation with quantitative analysis Result: Baseline prediction improvement: from 23% to 13% MRE

Massimo Luraschi matr. 739979

iPhone Software

57

iPhone Software

Massimo Luraschi matr. 739979

Gateway connection

58

Bluetooth connection setup is via iPhone settings (not in-app)

Massimo Luraschi matr. 739979

Driver selection screen

59

Drivers profile selection from drivers list To accept the choice, change screen by pushing one of the buttons at the bottom

Massimo Luraschi matr. 739979

Driver selection acknowledge

60

Driver selection is confirmed by a popup

Massimo Luraschi matr. 739979

Application startup

61

Logger home screen

Massimo Luraschi matr. 739979

No Gateway connection

62

In case of no gateway connection this screen is shown

If gateway connection is missing, the application will get to this screen, except when sending an e-mail

START button is disabled and red led indicates no gateway connection

Massimo Luraschi matr. 739979

Log session starts

63

Upon pushing START button, log session starts

State of charge and vehicle speed are shown

During log session, the led blinks to notify Bluetooth data receival

Massimo Luraschi matr. 739979

Log session starts

64

Upon pushing START button, log session starts

State of charge and vehicle speed are shown

During log session, the led blinks to notify Bluetooth data receival

Massimo Luraschi matr. 739979

Home button pressed behavior

65

Home button press interrupts log session

Log file is saved, when the app is restored, a new session will be appended to the same file

Massimo Luraschi matr. 739979

E-mail log file

66

When STOP button is pressed, log session is over and log can be sent by e-mail

Massimo Luraschi matr. 739979

E-mail log file

67

Mail screen

Just need to push Send, to send mail message, or Cancel if you want to delete the message and get back to app home screen

Massimo Luraschi matr. 739979

Mail sent successfully

68

Mail sent notified by a popup

Massimo Luraschi matr. 739979

Cancel button pressed

69

When pushing Cancel button user is given a choice

Massimo Luraschi matr. 739979

Draft saved

70

Draft saved notification

Massimo Luraschi matr. 739979

Draft deletion

71

When choosing to delete the draft, a double confirmation is asked When NO button is pushed, log is deleted When OK button is pushed, email sending is re-opened

Massimo Luraschi matr. 739979

Graphic screen

72

Graphic screen shows useful information about residual range and drivers consumption

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

73

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

State of charge at startup Drivers cumulative cons. Updated state of charge Avg consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

74

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

500 m section avg. cons. : red if worse than cumulative, green viceversa

State of charge at startup Avg consumption of session in progress Red if worse, green viceversa

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

75

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

76

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

77

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

78

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

79

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

80

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

81

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

82

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

83

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

84

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

85

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

Consumption and residual range prediction graph

86

The graph shows residual range calculated with drivers cumulative consumption and consumption of session in progress

Massimo Luraschi matr. 739979

You might also like