Development of an AI system for fuel consumption optimization
Fuel accounts for 30–40% of a transport company's operating costs. The AI system reduces consumption through three methods: route optimization, driver coaching on driving style, and predictive engine maintenance.
Fuel consumption modeling
Physical model of consumption:
Fuel consumption depends on the resistance force: - Aerodynamic drag: increases proportionally to v³ - Rolling resistance: proportional to mass and speed - Inertial losses: braking = release of stored kinetic energy - Terrain: climbs require additional work against gravity
import numpy as np
def fuel_model_physics(
route_segments, # [(distance_m, grade_pct, speed_limit_kmh)]
vehicle_params, # {'mass_kg', 'Cd', 'A_frontal', 'Crr', 'engine_eff'}
actual_speeds=None
):
"""
Физическая модель расхода топлива по маршруту.
Возвращает л/100км для заданного профиля скоростей.
"""
rho_air = 1.2 # кг/м³
g = 9.81
m = vehicle_params['mass_kg']
Cd = vehicle_params['Cd'] # аэродинамич. коэффициент (~0.35 для TIR)
A = vehicle_params['A_frontal'] # м² (~8 для TIR)
Crr = vehicle_params['Crr'] # коэффициент качения (~0.006)
eta = vehicle_params['engine_eff'] # КПД привода (~0.35)
total_fuel_j = 0
total_dist_m = 0
for dist_m, grade_pct, speed_kmh in route_segments:
v = (actual_speeds or speed_kmh) / 3.6 # м/с
grade = grade_pct / 100
F_aero = 0.5 * rho_air * Cd * A * v**2
F_roll = Crr * m * g * np.cos(np.arctan(grade))
F_grade = m * g * np.sin(np.arctan(grade))
F_total = F_aero + F_roll + F_grade # только движение вперёд
if F_total < 0: # спуск — можно рекуперировать (для EV) или мотор-тормоз
F_total = 0
# Работа = сила × расстояние
work_j = max(0, F_total) * dist_m
fuel_energy_j = work_j / eta
total_fuel_j += fuel_energy_j
total_dist_m += dist_m
diesel_energy_density = 35.8e6 # Дж/литр
fuel_liters = total_fuel_j / diesel_energy_density
return fuel_liters / (total_dist_m / 1000) * 100 # л/100км
ML-correction of the physical model:
The physical model does not take into account real-world conditions: engine temperature, injector wear, and asphalt type. ML (XGBoost) builds a residual model: δ = actual - physical_model. The final model: ŷ = physical(x) + ML(x).
Eco-driving system
Driving style scoring:
Each driving event is classified and contributes to the eco-score:
| Событие | Штраф | Влияние на расход |
|---|---|---|
| Резкое ускорение >3 м/с² | -5 баллов | +8–12% |
| Резкое торможение >3 м/с² | -3 балла | +4–6% |
| Скорость >90 км/ч на трассе | -2 балла/мин | +15–25% |
| Холостой ход >5 мин | -2 балла | 1–2 л/час |
| Нейтральная передача на спуске | -4 балла | +5–8% |
Drivers get a personal dashboard and real-time push recommendations: - "800m downhill ahead - release the accelerator" - "Speed 98 km/h - 88 km/h is more advantageous"
Gamification: monthly ranking + bonus for the top 20% of eco-drivers.
Route optimization with fuel criteria
The shortest route doesn't always equal the least fuel-consuming. ML fuel cost estimates for each route: - SRTM terrain: total elevation gain (climbs = consumption) - Road type: highway (optimal cruising speed) vs. city traffic (lots of starts) - Historical traffic: time spent in traffic with the engine running
Typical result: a route 5% longer, but 8-12% more economical.
Monitoring technical losses
Abnormally high flow = technical signal:
- Leaking injector: increased consumption under normal driving conditions - Ignition system malfunction: misfiring → incomplete combustion - Tire pressure: underinflated tires +2–4% consumption
LSTM-Autoencoder with normalized fuel consumption (l/100km with adjustments for terrain and load) → anomalies → detailed diagnostics in the service center.
Development time: 2–4 months for eco-driving scoring, consumption anomalies and route optimization with integration into telematics (Wialon, OMNICOMM, AutoGRAPH).







