abrensch / brouter

configurable OSM offline router with elevation awareness, Java + Android
MIT License
473 stars 113 forks source link

Kinematic model total energy #177

Open Phyks opened 4 years ago

Phyks commented 4 years ago

Hi,

I was having a look at the car kinematic model (and in particular the car-eco profile which was giving really nice results (about half energy used only on my test cases!), but have some troubles understanding the total energy displayed.

I am considering a regular (non-electric) car, so I updated the profile variables as

assign vmax             = 130    # for giving me a typical route in France where max speed is 130km/h
assign recup_efficiency = 0    # no electric car, no recup of energy
assign totalweight      = 1300   # weight of my car
assign f_roll           = 200
assign f_air            = 0.46    # 0.5*cw*A*rho
assign f_recup          = 0    # no electric car, no recup of energy
assign p_standby        = 0

I computed f_roll from an estimate of friction losses. I computed f_air knowing my car has an A cd of 0.77. Both values are within the same range as your values.

A typical intercity route such as http://brouter.de/brouter-web/#map=8/45.924/1.030/standard,Waymarked_Trails-Cycling&lonlats=-1.028938,45.624619;3.08218,45.777477 leads to 80kWh shown for 430km.

However, my car has a typical fuel consumption of 5 liters / 100 km, leading to an estimated 20-25 liters of fuel. Knowing that 1 liter of fuel is about 10 kWh, this should lead to 200-250 kWh instead of the 80 kWh as computed by BRouter.

Have you already observed such differences? Did I miss something in the kinematic model computation?

Thanks!

abrensch commented 4 years ago

Did I miss something in the kinematic model computation?

I guess your 10 kWh per liter is the thermal energy content, that needs to be multiplied with an efficiency to get the amount of mechanical energy you can get from it.

The values in the car-eco profile are calibrated for the mechanical energy at the wheel, so also the kWh that you must take from the plug are higher by something like 25%.

Phyks commented 4 years ago

I guess your 10 kWh per liter is the thermal energy content, that needs to be multiplied with an efficiency to get the amount of mechanical energy you can get from it.

Indeed, that accounts for the difference! From https://en.wikipedia.org/wiki/Engine_efficiency#Gasoline_(petrol)_engines and https://en.wikipedia.org/wiki/Diesel_engine#Efficiency, it seems a typical average efficiency for car is between 25-35%. This, plus the losses in the transmission is compatible with the difference I was seeing.

I'd like to add a new parameter engine_efficiency (defaults to 1) to be able to account for these losses (case when engine_efficiency < 1) in a proportional way.

This could also be used for e-bikes where currently BRouter displays a total energy for the trip, but you can know in which mode you are operating and which assistance you are operating. Typically, an e-bike in "touring" mode would assist you at 100% (meaning you provide half on the total energy, and the motor provides the rest). So setting engine_efficiency to 2 would display 0.2kWh as total energy for a trip normally requiring 0.4kWh (therefore easing the routing for e-bikes taking into account the finite battery power).

What do you think?

EDIT: engine_efficiency might not be a super good name… Could be engine_energy_conversion_factor or any such thing.