EmpiricalConsumptionModel Structure Reference
- Last UpdatedJun 10, 2025
- 2 minute read
public struct EmpiricalConsumptionModel : Hashable
This model defines the empirical consumption mode used in electric vehicles.
Parameters specific for the electric vehicle, which are then 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.
-
Rate of energy consumed per meter rise in elevation (in Wh/m, i.e., Watt-hours per meter).
Declaration
Swift
public var ascentConsumptionInWattHoursPerMeter: Double
-
Rate of energy recovered per meter fall in elevation (in Wh/m, i.e., Watt-hours per meter).
Declaration
Swift
public var descentRecoveryInWattHoursPerMeter: 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.
Declaration
Swift
public var freeFlowSpeedTable: [Int32 : 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 onlyEmpiricalConsumptionModel.freeFlowSpeedTable
is used for calculating speed-related energy consumption.Declaration
Swift
public var trafficSpeedTable: [Int32 : Double]
-
Rate of energy (in Wh/s) consumed by the vehicle’s auxiliary systems (e.g., air conditioning, lights) per second of travel.
Declaration
Swift
public var auxiliaryConsumptionInWattHoursPerSecond: Double
-
Creates a new instance.
Declaration
Swift
public init(ascentConsumptionInWattHoursPerMeter: Double = 0.0, descentRecoveryInWattHoursPerMeter: Double = 0.0, freeFlowSpeedTable: [Int32 : Double] = [:], trafficSpeedTable: [Int32 : Double] = [:], auxiliaryConsumptionInWattHoursPerSecond: Double = 0.0)