EmpiricalConsumptionModel class

This model defines a data-driven energy consumption model for electric vehicles.

It estimates the electrical energy required to traverse a route by combining empirically derived vehicle parameters with route characteristics such as distance, elevation changes, and driving speed. Rather than relying on a full physical simulation, this model uses observed consumption behavior to produce realistic and efficient energy estimates suitable for routing, range prediction, and navigation use cases.

Parameters specific to the electric vehicle are used to calculate energy consumption on a given route. At minimum, you must provide EmpiricalConsumptionModel.ascentConsumptionInWattHoursPerMeter, EmpiricalConsumptionModel.descentRecoveryInWattHoursPerMeter and a EmpiricalConsumptionModel.freeFlowSpeedTable. Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.

Constructors

EmpiricalConsumptionModel()

Properties

ascentConsumptionInWattHoursPerMeter ↔ double
Rate of energy consumed per meter rise in elevation (in Wh/m, i.e., Watt-hours per meter).
getter/setter pair
auxiliaryConsumptionInWattHoursPerSecond ↔ double
Rate of energy (in Wh/s) consumed by the vehicle's auxiliary systems (e.g., air conditioning, lights) per second of travel.
getter/setter pair
descentRecoveryInWattHoursPerMeter ↔ double
Rate of energy recovered per meter fall in elevation (in Wh/m, i.e., Watt-hours per meter).
getter/setter pair
freeFlowSpeedTable ↔ Map<int, double>
Free flow speed table describes energy consumption when traveling at constant speed. It defines a function curve specifying consumption rate at a given free flow speed on a flat stretch of road. Map keys represent speed values that are non-negative integers in units of (km/h). Map values represent consumption values that are non-negative floating point values in units of (Wh/m). The function is linearly interpolated between each successive pair of data points: For values below the first list value, the first value is used. For values after the last list value, the last list value is used. At minimum, one key/value pair must be set. In this case the consumption value is used for all possible speed keys.
getter/setter pair
hashCode → int
The hash code for this object.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
trafficSpeedTable ↔ Map<int, double>
Traffic speed table describes energy consumption when traveling under heavy traffic conditions, i.e. when the vehicle is expected to often change the travel speed. It defines a function curve specifying consumption rate at a given speed under traffic conditions on a flat stretch of road. Map keys represent traffic speed values that are non-negative integers in units of (km/h). Map values represent consumption values that are non-negative floating point values in units of (Wh/m). The function is linearly interpolated between each successive pair of data points: For values below the first list value, the first value is used. For values after the last list value, the last list value is used. If only one key/value pair is set, the consumption value is used for all possible traffic speed keys. If EmpiricalConsumptionModel.trafficSpeedTable is empty then only EmpiricalConsumptionModel.freeFlowSpeedTable is used for calculating speed-related energy consumption.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.