A vehicle model is a structured representation of the physical parameters of a real-world vehicle. FASTSim’s modeling framework has been exercised over a wide variety of on-road vehicles, from passenger cars, to two-wheelers, to medium- and heavy-duty vocational vehicles.
For guidance on creation of custom vehicle models, see Modeling a Vehicle.
FASTSim’s vehicle model is a hierarchy of components:
Vehicle
Total vehicle mass*
mass_kilogramsAuxiliary power load
pwr_aux_base_wattsconstant value for whole drive cycle
e.g. 600 W
Powertrain type (pt_type)
Powertrain-specific vehicle parameters.
One of:
ConventionalVehicle/ConvHybridElectricVehicle/HEVPlugInHybridElectricVehicle/PHEVBatteryElectricVehicle/BEV
ConventionalVehicle
Alternator efficiency
alt_effApplies to auxiliary power load
Powertrain control
pt_cntrlUsed for enabling/configuring auto start-stop
Decel fuel cutoff (DFCO) control
dfco_cntrlConventional powertrain mass*
mass_kilograms
Fuel storage (tank) fs
Maximum power output
pwr_out_max_wattsTime to peak power (linear ramp for power limitation)
pwr_ramp_lag_secondsEnergy capacity
energy_capacity_joulesFuel storage mass*
mass_kilogramsOptional component-level mass
Alternatively:
Fuel storage specific energy
specific_energy_joules_per_kilogram
Fuel converter (e.g. engine) fc
Maximum power output
pwr_out_max_wattsInitial power output
pwr_out_max_init_wattsTime to peak power (linear ramp for power limitation)
pwr_ramp_lag_secondsEfficiency
eff_interp_from_pwr_outIdle fuel power
pwr_idle_fuel_wattsFuel converter power will only drop below this value if it is off
FC mass*
mass_kilogramsOptional component-level mass
Alternatively:
FC specific power
specific_pwr_watts_per_kilogram
FC thermal model
thrmlNone
Disable FC thermal model
Examples:
YAML
thrml: NonePython dictionary
{ ... 'thrml': 'None', ... }FuelConverterThermal
Lumped thermal capacitance FC model
Fuel converter thermal capacitance
heat_capacitance_joules_per_kelvinCharacteristic length
length_for_convection_metersHeat transfer coefficient to ambient when vehicle is stopped
htc_to_amb_stop_watts_per_square_meter_kelvinHeat transfer coefficient between adiabatic flame temperature and fuel converter temperature
conductance_from_comb_watts_per_kelvinMax fraction of combustion heat that goes to fuel converter thermal mass
max_frac_from_combTemperature at which thermostat starts to open
tstat_te_sto_kelvinTemperature delta over which thermostat is partially open
tstat_te_delta_kelvinThermostat model
tstat_interpRatio of active heat rejection from radiator to passive heat rejection
radiator_effectivenessAlways greater than 1
Impact of temperature on efficiency
fc_eff_model
Examples:
YAML
thrml: FuelConverterThermal: heat_capacitance_joules_per_kelvin: 72132.17831078888 length_for_convection_meters: 0.5427107485587468 htc_to_amb_stop_watts_per_square_meter_kelvin: 60.7820169953251 conductance_from_comb_watts_per_kelvin: 2178.965385428629 max_frac_from_comb: 0.5 tstat_te_sto_kelvin: 358.15 tstat_te_delta_kelvin: 5.0 tstat_interp: data: grid: - [85.0, 90.0] values: - 0.0 - 1.0 strategy: Linear extrapolate: Clamp radiator_effectiveness: 168.06311964877182 fc_eff_model: Exponential: offset: 320.1873803210462 lag: 24.998774179607892 minimum: 0.1927168135089094 state: i: 0 te_adiabatic_kelvin: 3153.8328742654194 temperature_kelvin: 295.15 tstat_open_frac: 0.0 htc_to_amb_watts_per_square_meter_kelvin: 0.0 pwr_thrml_to_amb_watts: 0.0 energy_thrml_to_amb_joules: 0.0 eff_coeff: 1.0 pwr_thrml_fc_to_cab_watts: 0.0 energy_thrml_fc_to_cab_joules: 0.0 pwr_fuel_as_heat_watts: 0.0 energy_fuel_as_heat_joules: 0.0 pwr_thrml_to_tm_watts: 0.0 energy_thrml_to_tm_joules: 0.0 history: i: [] te_adiabatic_kelvin: [] temperature_kelvin: [] tstat_open_frac: [] htc_to_amb_watts_per_square_meter_kelvin: [] pwr_thrml_to_amb_watts: [] energy_thrml_to_amb_joules: [] eff_coeff: [] pwr_thrml_fc_to_cab_watts: [] energy_thrml_fc_to_cab_joules: [] pwr_fuel_as_heat_watts: [] energy_fuel_as_heat_joules: [] pwr_thrml_to_tm_watts: [] energy_thrml_to_tm_joules: [] save_interval: 1Python dictionary
{ ... 'thrml': { 'FuelConverterThermal': { 'heat_capacitance_joules_per_kelvin': 72132.17831078888, 'length_for_convection_meters': 0.5427107485587468, 'htc_to_amb_stop_watts_per_square_meter_kelvin': 60.7820169953251, 'conductance_from_comb_watts_per_kelvin': 2178.965385428629, 'max_frac_from_comb': 0.5, 'tstat_te_sto_kelvin': 358.15, 'tstat_te_delta_kelvin': 5.0, 'tstat_interp': { 'data': { 'grid': [[85.0, 90.0]], 'values': [0.0, 1.0] }, 'strategy': 'Linear', 'extrapolate': 'Clamp' }, 'radiator_effectiveness': 168.06311964877182, 'fc_eff_model': { 'Exponential': { 'offset': 320.1873803210462, 'lag': 24.998774179607892, 'minimum': 0.1927168135089094 } }, 'state': { 'i': 0, 'te_adiabatic_kelvin': 3153.8328742654194, 'temperature_kelvin': 295.15, 'tstat_open_frac': 0.0, 'htc_to_amb_watts_per_square_meter_kelvin': 0.0, 'pwr_thrml_to_amb_watts': 0.0, 'energy_thrml_to_amb_joules': 0.0, 'eff_coeff': 1.0, 'pwr_thrml_fc_to_cab_watts': 0.0, 'energy_thrml_fc_to_cab_joules': 0.0, 'pwr_fuel_as_heat_watts': 0.0, 'energy_fuel_as_heat_joules': 0.0, 'pwr_thrml_to_tm_watts': 0.0, 'energy_thrml_to_tm_joules': 0.0 }, 'history': { 'i': [], 'te_adiabatic_kelvin': [], 'temperature_kelvin': [], 'tstat_open_frac': [], 'htc_to_amb_watts_per_square_meter_kelvin': [], 'pwr_thrml_to_amb_watts': [], 'energy_thrml_to_amb_joules': [], 'eff_coeff': [], 'pwr_thrml_fc_to_cab_watts': [], 'energy_thrml_fc_to_cab_joules': [], 'pwr_fuel_as_heat_watts': [], 'energy_fuel_as_heat_joules': [], 'pwr_thrml_to_tm_watts': [], 'energy_thrml_to_tm_joules': [] }, 'save_interval': 1 } }, ... }
Transmission transmission
Efficiency
eff_interpTransmission mass*
mass
HybridElectricVehicle & PlugInHybridElectricVehicle
Powertrain control
pt_cntrlUsed for enabling/configuring auto start-stop
Decel fuel cutoff (DFCO) control
dfco_cntrlAuxiliary power load control
aux_cntrlConfigures whether auxiliary power should come from
resorfcfirst
HEV/PHEV-specific simulation parameters
sim_paramsHEV/PHEV powertrain mass*
mass_kilograms
Reversible Energy Storage (traction battery) res
Maximum power output
pwr_out_max_wattsEnergy capacity
energy_capacity_joulesMaximum power output
pwr_out_max_wattsEfficiency
eff_interpOne of:
Constant(float)CRateCRateSOCTemperatureCRateTemperatureCRateSOC
Minimum state of charge
min_socMaximum state of charge
max_socRES mass*
mass_kilogramsOptional component-level mass
Alternatively:
RES specific energy
specific_energy_joules_per_kilogram
RES thermal model
thrmlNone
Disable RES thermal model
Examples:
YAML
thrml: NonePython dictionary
{ ... 'thrml': 'None', ... }RESLumpedThermal
Lumped thermal capacitance RES model
Thermal capacitance
heat_capacitance_joules_per_kelvinHeat transfer coefficient from RES to ambient
conductance_to_amb_watts_per_kelvinHeat transfer coefficient from RES to cabin
conductance_to_cab_watts_per_kelvin
Examples:
YAML
thrml: RESLumpedThermal: heat_capacitance_joules_per_kelvin: 200000.0 conductance_to_amb_watts_per_kelvin: 0.1 conductance_to_cab_watts_per_kelvin: 0.5 state: i: 0 temperature_kelvin: 295.15 temp_prev_kelvin: 295.15 pwr_thrml_from_cabin_watts: 0.0 energy_thrml_from_cabin_joules: 0.0 pwr_thrml_from_amb_watts: 0.0 energy_thrml_from_amb_joules: 0.0 pwr_thrml_hvac_to_res_watts: 0.0 energy_thrml_hvac_to_res_joules: 0.0 pwr_thrml_loss_watts: 0.0 energy_thrml_loss_joules: 0.0 history: i: [] temperature_kelvin: [] temp_prev_kelvin: [] pwr_thrml_from_cabin_watts: [] energy_thrml_from_cabin_joules: [] pwr_thrml_from_amb_watts: [] energy_thrml_from_amb_joules: [] pwr_thrml_hvac_to_res_watts: [] energy_thrml_hvac_to_res_joules: [] pwr_thrml_loss_watts: [] energy_thrml_loss_joules: [] save_interval: 1Python dictionary
{ ... 'thrml': { 'RESLumpedThermal': { 'heat_capacitance_joules_per_kelvin': 200000.0, 'conductance_to_amb_watts_per_kelvin': 0.1, 'conductance_to_cab_watts_per_kelvin': 0.5, 'state': { 'i': 0, 'temperature_kelvin': 295.15, 'temp_prev_kelvin': 295.15, 'pwr_thrml_from_cabin_watts': 0.0, 'energy_thrml_from_cabin_joules': 0.0, 'pwr_thrml_from_amb_watts': 0.0, 'energy_thrml_from_amb_joules': 0.0, 'pwr_thrml_hvac_to_res_watts': 0.0, 'energy_thrml_hvac_to_res_joules': 0.0, 'pwr_thrml_loss_watts': 0.0, 'energy_thrml_loss_joules': 0.0 }, 'history': { 'i': [], 'temperature_kelvin': [], 'temp_prev_kelvin': [], 'pwr_thrml_from_cabin_watts': [], 'energy_thrml_from_cabin_joules': [], 'pwr_thrml_from_amb_watts': [], 'energy_thrml_from_amb_joules': [], 'pwr_thrml_hvac_to_res_watts': [], 'energy_thrml_hvac_to_res_joules': [], 'pwr_thrml_loss_watts': [], 'energy_thrml_loss_joules': [] }, 'save_interval': 1 } }, ... }
Fuel storage (tank) fs
Maximum power output
pwr_out_max_wattsTime to peak power (linear ramp for power limitation)
pwr_ramp_lag_secondsEnergy capacity
energy_capacity_joulesFuel storage mass*
mass_kilogramsOptional component-level mass
Alternatively:
Fuel storage specific energy
specific_energy_joules_per_kilogram
Fuel converter (e.g. engine) fc
Maximum power output
pwr_out_max_wattsInitial power output
pwr_out_max_init_wattsTime to peak power (linear ramp for power limitation)
pwr_ramp_lag_secondsEfficiency
eff_interp_from_pwr_outIdle fuel power
pwr_idle_fuel_wattsFuel converter power will only drop below this value if it is off
FC mass*
mass_kilogramsOptional component-level mass
Alternatively:
FC specific power
specific_pwr_watts_per_kilogram
FC thermal model
thrmlNone
Disable FC thermal model
Examples:
YAML
thrml: NonePython dictionary
{ ... 'thrml': 'None', ... }FuelConverterThermal
Lumped thermal capacitance FC model
Fuel converter thermal capacitance
heat_capacitance_joules_per_kelvinCharacteristic length
length_for_convection_metersHeat transfer coefficient to ambient when vehicle is stopped
htc_to_amb_stop_watts_per_square_meter_kelvinHeat transfer coefficient between adiabatic flame temperature and fuel converter temperature
conductance_from_comb_watts_per_kelvinMax fraction of combustion heat that goes to fuel converter thermal mass
max_frac_from_combTemperature at which thermostat starts to open
tstat_te_sto_kelvinTemperature delta over which thermostat is partially open
tstat_te_delta_kelvinThermostat model
tstat_interpRatio of active heat rejection from radiator to passive heat rejection
radiator_effectivenessAlways greater than 1
Impact of temperature on efficiency
fc_eff_model
Examples:
YAML
thrml: FuelConverterThermal: heat_capacitance_joules_per_kelvin: 72132.17831078888 length_for_convection_meters: 0.5427107485587468 htc_to_amb_stop_watts_per_square_meter_kelvin: 60.7820169953251 conductance_from_comb_watts_per_kelvin: 2178.965385428629 max_frac_from_comb: 0.5 tstat_te_sto_kelvin: 358.15 tstat_te_delta_kelvin: 5.0 tstat_interp: data: grid: - [85.0, 90.0] values: - 0.0 - 1.0 strategy: Linear extrapolate: Clamp radiator_effectiveness: 168.06311964877182 fc_eff_model: Exponential: offset: 320.1873803210462 lag: 24.998774179607892 minimum: 0.1927168135089094 state: i: 0 te_adiabatic_kelvin: 3153.8328742654194 temperature_kelvin: 295.15 tstat_open_frac: 0.0 htc_to_amb_watts_per_square_meter_kelvin: 0.0 pwr_thrml_to_amb_watts: 0.0 energy_thrml_to_amb_joules: 0.0 eff_coeff: 1.0 pwr_thrml_fc_to_cab_watts: 0.0 energy_thrml_fc_to_cab_joules: 0.0 pwr_fuel_as_heat_watts: 0.0 energy_fuel_as_heat_joules: 0.0 pwr_thrml_to_tm_watts: 0.0 energy_thrml_to_tm_joules: 0.0 history: i: [] te_adiabatic_kelvin: [] temperature_kelvin: [] tstat_open_frac: [] htc_to_amb_watts_per_square_meter_kelvin: [] pwr_thrml_to_amb_watts: [] energy_thrml_to_amb_joules: [] eff_coeff: [] pwr_thrml_fc_to_cab_watts: [] energy_thrml_fc_to_cab_joules: [] pwr_fuel_as_heat_watts: [] energy_fuel_as_heat_joules: [] pwr_thrml_to_tm_watts: [] energy_thrml_to_tm_joules: [] save_interval: 1Python dictionary
{ ... 'thrml': { 'FuelConverterThermal': { 'heat_capacitance_joules_per_kelvin': 72132.17831078888, 'length_for_convection_meters': 0.5427107485587468, 'htc_to_amb_stop_watts_per_square_meter_kelvin': 60.7820169953251, 'conductance_from_comb_watts_per_kelvin': 2178.965385428629, 'max_frac_from_comb': 0.5, 'tstat_te_sto_kelvin': 358.15, 'tstat_te_delta_kelvin': 5.0, 'tstat_interp': { 'data': { 'grid': [[85.0, 90.0]], 'values': [0.0, 1.0] }, 'strategy': 'Linear', 'extrapolate': 'Clamp' }, 'radiator_effectiveness': 168.06311964877182, 'fc_eff_model': { 'Exponential': { 'offset': 320.1873803210462, 'lag': 24.998774179607892, 'minimum': 0.1927168135089094 } }, 'state': { 'i': 0, 'te_adiabatic_kelvin': 3153.8328742654194, 'temperature_kelvin': 295.15, 'tstat_open_frac': 0.0, 'htc_to_amb_watts_per_square_meter_kelvin': 0.0, 'pwr_thrml_to_amb_watts': 0.0, 'energy_thrml_to_amb_joules': 0.0, 'eff_coeff': 1.0, 'pwr_thrml_fc_to_cab_watts': 0.0, 'energy_thrml_fc_to_cab_joules': 0.0, 'pwr_fuel_as_heat_watts': 0.0, 'energy_fuel_as_heat_joules': 0.0, 'pwr_thrml_to_tm_watts': 0.0, 'energy_thrml_to_tm_joules': 0.0 }, 'history': { 'i': [], 'te_adiabatic_kelvin': [], 'temperature_kelvin': [], 'tstat_open_frac': [], 'htc_to_amb_watts_per_square_meter_kelvin': [], 'pwr_thrml_to_amb_watts': [], 'energy_thrml_to_amb_joules': [], 'eff_coeff': [], 'pwr_thrml_fc_to_cab_watts': [], 'energy_thrml_fc_to_cab_joules': [], 'pwr_fuel_as_heat_watts': [], 'energy_fuel_as_heat_joules': [], 'pwr_thrml_to_tm_watts': [], 'energy_thrml_to_tm_joules': [] }, 'save_interval': 1 } }, ... }
Electric Machine (motor) em
Electric machine / motor model
eff_interp_achievedeff_interp_at_max_inputMaximum output power
pwr_out_max_wattsEM mass*
mass_kilogramsOptional component-level mass
Alternatively:
EM specific power
specific_pwr_watts_per_kilogram
Transmission transmission
Efficiency
eff_interpTransmission mass*
mass
BatteryElectricVehicle
BEV powertrain mass*
mass_kilograms
Reversible Energy Storage (traction battery) res
Maximum power output
pwr_out_max_wattsEnergy capacity
energy_capacity_joulesMaximum power output
pwr_out_max_wattsEfficiency
eff_interpOne of:
Constant(float)CRateCRateSOCTemperatureCRateTemperatureCRateSOC
Minimum state of charge
min_socMaximum state of charge
max_socRES mass*
mass_kilogramsOptional component-level mass
Alternatively:
RES specific energy
specific_energy_joules_per_kilogram
RES thermal model
thrmlNone
Disable RES thermal model
Examples:
YAML
thrml: NonePython dictionary
{ ... 'thrml': 'None', ... }RESLumpedThermal
Lumped thermal capacitance RES model
Thermal capacitance
heat_capacitance_joules_per_kelvinHeat transfer coefficient from RES to ambient
conductance_to_amb_watts_per_kelvinHeat transfer coefficient from RES to cabin
conductance_to_cab_watts_per_kelvin
Examples:
YAML
thrml: RESLumpedThermal: heat_capacitance_joules_per_kelvin: 200000.0 conductance_to_amb_watts_per_kelvin: 0.1 conductance_to_cab_watts_per_kelvin: 0.5 state: i: 0 temperature_kelvin: 295.15 temp_prev_kelvin: 295.15 pwr_thrml_from_cabin_watts: 0.0 energy_thrml_from_cabin_joules: 0.0 pwr_thrml_from_amb_watts: 0.0 energy_thrml_from_amb_joules: 0.0 pwr_thrml_hvac_to_res_watts: 0.0 energy_thrml_hvac_to_res_joules: 0.0 pwr_thrml_loss_watts: 0.0 energy_thrml_loss_joules: 0.0 history: i: [] temperature_kelvin: [] temp_prev_kelvin: [] pwr_thrml_from_cabin_watts: [] energy_thrml_from_cabin_joules: [] pwr_thrml_from_amb_watts: [] energy_thrml_from_amb_joules: [] pwr_thrml_hvac_to_res_watts: [] energy_thrml_hvac_to_res_joules: [] pwr_thrml_loss_watts: [] energy_thrml_loss_joules: [] save_interval: 1Python dictionary
{ ... 'thrml': { 'RESLumpedThermal': { 'heat_capacitance_joules_per_kelvin': 200000.0, 'conductance_to_amb_watts_per_kelvin': 0.1, 'conductance_to_cab_watts_per_kelvin': 0.5, 'state': { 'i': 0, 'temperature_kelvin': 295.15, 'temp_prev_kelvin': 295.15, 'pwr_thrml_from_cabin_watts': 0.0, 'energy_thrml_from_cabin_joules': 0.0, 'pwr_thrml_from_amb_watts': 0.0, 'energy_thrml_from_amb_joules': 0.0, 'pwr_thrml_hvac_to_res_watts': 0.0, 'energy_thrml_hvac_to_res_joules': 0.0, 'pwr_thrml_loss_watts': 0.0, 'energy_thrml_loss_joules': 0.0 }, 'history': { 'i': [], 'temperature_kelvin': [], 'temp_prev_kelvin': [], 'pwr_thrml_from_cabin_watts': [], 'energy_thrml_from_cabin_joules': [], 'pwr_thrml_from_amb_watts': [], 'energy_thrml_from_amb_joules': [], 'pwr_thrml_hvac_to_res_watts': [], 'energy_thrml_hvac_to_res_joules': [], 'pwr_thrml_loss_watts': [], 'energy_thrml_loss_joules': [] }, 'save_interval': 1 } }, ... }
Electric Machine (motor) em
Electric machine / motor model
eff_interp_achievedeff_interp_at_max_inputMaximum output power
pwr_out_max_wattsEM mass*
mass_kilogramsOptional component-level mass
Alternatively:
EM specific power
specific_pwr_watts_per_kilogram
Transmission transmission
Efficiency
eff_interpTransmission mass*
mass
Chassis (chassis)
Aerodynamic drag coefficient
drag_coefVehicle frontal area
frontal_area_square_metersWheel rolling resistance coefficient
wheel_rr_coefNumber of wheels
num_wheelsWheel radius
wheel_radius_metersVehicle drivetrain configuration
drive_type“FWD”, “RWD”, “AWD”, or “FourWD”
Only affects traction limitation / tire slip calculation, so if not applicable just choose FWD
Height of vehicle center of gravity
cg_height_metersOnly affects traction limitation / tire slip calculation, safe to leave at ~0.6 m for most vehicles
Wheel friction coefficient
wheel_fric_coefOnly affects traction limitation / tire slip calculation, safe to leave at ~0.7 for most vehicles
Vehicle wheelbase
wheel_base_metersAlternatively set with a tire code
tire_codee.g. “225/60R18”Component-level masses*:
Chassis mass
mass_kilogramsAlternatively:
Glider mass
glider_mass_kilogramsCargo mass
cargo_mass_kilograms
Cabin thermal model (cabin)
Models cabin temperature, heat can flow between cabin and:
surroundings/ambient conditions
fuel converter (e.g. engine)
reversible energy storage (traction battery)
None
Disable cabin thermal model
Examples:
YAML
cabin: NonePython dictionary
{
...
'cabin': 'None',
...
}LumpedCabin
Lumped thermal capacitance cabin model
cab_shell_htc_to_amb_watts_per_square_meter_kelvinInverse of cabin shell thermal resistance
cab_htc_to_amb_stop_watts_per_square_meter_kelvinHeat transfer coefficient from cabin outer surface to ambient when vehicle is stopped
heat_capacitance_joules_per_kelvinCabin thermal capacitance
length_metersCabin length (modeled as a flat plate)
width_metersCabin width (modeled as a flat plate)
Examples:
YAML
cabin:
LumpedCabin:
cab_shell_htc_to_amb_watts_per_square_meter_kelvin: 10.111988385072632
cab_htc_to_amb_stop_watts_per_square_meter_kelvin: 153.22457193685642
heat_capacitance_joules_per_kelvin: 250000
length_meters: 3.302 # 130 in. estimate
width_meters: 2.02184 # vehicle width without mirrors
state:
i: 0
temperature_kelvin: 295.15
temp_prev_kelvin: 295.15
pwr_thrml_from_hvac_watts: 0.0
energy_thrml_from_hvac_joules: 0.0
pwr_thrml_from_amb_watts: 0.0
energy_thrml_from_amb_joules: 0.0
pwr_thrml_to_res_watts: 0.0
energy_thrml_to_res_joules: 0.0
reynolds_for_plate: 0.0
history:
i: []
temperature_kelvin: []
temp_prev_kelvin: []
pwr_thrml_from_hvac_watts: []
energy_thrml_from_hvac_joules: []
pwr_thrml_from_amb_watts: []
energy_thrml_from_amb_joules: []
pwr_thrml_to_res_watts: []
energy_thrml_to_res_joules: []
reynolds_for_plate: []
save_interval: 1Python dictionary
{
...
'cabin': {'LumpedCabin': {'cab_shell_htc_to_amb_watts_per_square_meter_kelvin': 10.111988385072632,
'cab_htc_to_amb_stop_watts_per_square_meter_kelvin': 153.22457193685642,
'heat_capacitance_joules_per_kelvin': 250000.0,
'length_meters': 3.302,
'width_meters': 2.02184,
'state': {'i': 0,
'temperature_kelvin': 295.15,
'temp_prev_kelvin': 295.15,
'pwr_thrml_from_hvac_watts': 0.0,
'energy_thrml_from_hvac_joules': 0.0,
'pwr_thrml_from_amb_watts': 0.0,
'energy_thrml_from_amb_joules': 0.0,
'pwr_thrml_to_res_watts': 0.0,
'energy_thrml_to_res_joules': 0.0,
'reynolds_for_plate': 0.0},
'history': {'i': [],
'temperature_kelvin': [],
'temp_prev_kelvin': [],
'pwr_thrml_from_hvac_watts': [],
'energy_thrml_from_hvac_joules': [],
'pwr_thrml_from_amb_watts': [],
'energy_thrml_from_amb_joules': [],
'pwr_thrml_to_res_watts': [],
'energy_thrml_to_res_joules': [],
'reynolds_for_plate': []},
'save_interval': 1}},
...
}HVAC thermal model (hvac)
Models HVAC behavior and related heat flow.
None
Disable HVAC thermal model
Examples:
YAML
hvac: NonePython dictionary
{
...
'hvac': 'None',
...
}LumpedCabin
HVAC system for lumped thermal capacitance cabin model.
Examples
YAML
hvac:
LumpedCabin:
te_set_kelvin: 295.15
te_deadband_kelvin: 0.5
p_watts_per_kelvin: 489.34499608760177
i: 36.77964270414921
pwr_i_max_watts: 10000.0
d: 5.0
pwr_thrml_max_watts: 15000.0
frac_of_ideal_cop: 0.0778419513178728
heat_source: FuelConverter
pwr_aux_for_hvac_max_watts: 8000.0
state:
i: 0
pwr_p_watts: 0.0
energy_p_joules: 0.0
pwr_i_watts: 0.0
energy_i_joules: 0.0
pwr_d_watts: 0.0
energy_d_joules: 0.0
cop: ~
pwr_aux_for_hvac_watts: 0.0
energy_aux_for_hvac_joules: 0.0
pwr_thrml_hvac_to_cabin_watts: 0.0
energy_thrml_hvac_to_cabin_joules: 0.0
pwr_thrml_fc_to_cabin_watts: 0.0
energy_thrml_fc_to_cabin_joules: 0.0
history:
i: []
pwr_p_watts: []
energy_p_joules: []
pwr_i_watts: []
energy_i_joules: []
pwr_d_watts: []
energy_d_joules: []
cop: []
pwr_aux_for_hvac_watts: []
energy_aux_for_hvac_joules: []
pwr_thrml_hvac_to_cabin_watts: []
energy_thrml_hvac_to_cabin_joules: []
pwr_thrml_fc_to_cabin_watts: []
energy_thrml_fc_to_cabin_joules: []
save_interval: 1Python dictionary
{
...
'hvac': {'LumpedCabin': {'te_set_kelvin': 295.15,
'te_deadband_kelvin': 0.5,
'p_watts_per_kelvin': 489.34499608760177,
'i': 36.77964270414921,
'pwr_i_max_watts': 10000.0,
'd': 5.0,
'pwr_thrml_max_watts': 15000.0,
'frac_of_ideal_cop': 0.0778419513178728,
'heat_source': 'FuelConverter',
'pwr_aux_for_hvac_max_watts': 8000.0,
'state': {'i': 0,
'pwr_p_watts': 0.0,
'energy_p_joules': 0.0,
'pwr_i_watts': 0.0,
'energy_i_joules': 0.0,
'pwr_d_watts': 0.0,
'energy_d_joules': 0.0,
'cop': None,
'pwr_aux_for_hvac_watts': 0.0,
'energy_aux_for_hvac_joules': 0.0,
'pwr_thrml_hvac_to_cabin_watts': 0.0,
'energy_thrml_hvac_to_cabin_joules': 0.0,
'pwr_thrml_fc_to_cabin_watts': 0.0,
'energy_thrml_fc_to_cabin_joules': 0.0},
'history': {'i': [],
'pwr_p_watts': [],
'energy_p_joules': [],
'pwr_i_watts': [],
'energy_i_joules': [],
'pwr_d_watts': [],
'energy_d_joules': [],
'cop': [],
'pwr_aux_for_hvac_watts': [],
'energy_aux_for_hvac_joules': [],
'pwr_thrml_hvac_to_cabin_watts': [],
'energy_thrml_hvac_to_cabin_joules': [],
'pwr_thrml_fc_to_cabin_watts': [],
'energy_thrml_fc_to_cabin_joules': []},
'save_interval': 1}},
...
}LumpedCabinAndRES
HVAC system for lumped thermal capacitance cabin model and Reversible Energy Storage (traction battery) thermal model
Examples
YAML
hvac:
LumpedCabinAndRES:
te_set_cab_kelvin: 295.15
te_deadband_cab_kelvin: 0.5
p_cabin_watts_per_kelvin: 881.6321317014631
i_cabin: 34.0671708520381
pwr_i_max_cabin_watts: 15000.0
d_cabin: 10.0
te_set_res_kelvin: 295.15
te_deadband_res_kelvin: 15.0
p_res_watts_per_kelvin: 7.776638335865715
i_res: 1.014641941728727
pwr_i_max_res_watts: 15000.0
d_res: 10.0
pwr_thrml_max_watts: 15000.0
frac_of_ideal_cop: 0.1672948274768393
cabin_heat_source: ResistanceHeater
res_heat_source: ResistanceHeater
res_cooling_source: HVAC
pwr_aux_for_hvac_cab_max_watts: 5000.0
pwr_aux_for_hvac_res_max_watts: 5000.0
save_interval: 1Python dictionary
{
...
'hvac': {
'LumpedCabinAndRES': {
'te_set_cab_kelvin': 295.15,
'te_deadband_cab_kelvin': 0.5,
'p_cabin_watts_per_kelvin': 881.6321317014631,
'i_cabin': 34.0671708520381,
'pwr_i_max_cabin_watts': 15000.0,
'd_cabin': 10.0,
'te_set_res_kelvin': 295.15,
'te_deadband_res_kelvin': 15.0,
'p_res_watts_per_kelvin': 7.776638335865715,
'i_res': 1.014641941728727,
'pwr_i_max_res_watts': 15000.0,
'd_res': 10.0,
'pwr_thrml_max_watts': 15000.0,
'frac_of_ideal_cop': 0.1672948274768393,
'cabin_heat_source': 'ResistanceHeater',
'res_heat_source': 'ResistanceHeater',
'res_cooling_source': 'HVAC',
'pwr_aux_for_hvac_cab_max_watts': 5000.0,
'pwr_aux_for_hvac_res_max_watts': 5000.0,
'state': {
'i': 0,
'pwr_p_cab_watts': 0.0,
'energy_p_cab_joules': 0.0,
'pwr_i_cab_watts': 0.0,
'energy_i_cab_joules': 0.0,
'pwr_d_cab_watts': 0.0,
'energy_d_cab_joules': 0.0,
'pwr_p_res_watts': 0.0,
'energy_p_res_joules': 0.0,
'pwr_i_res_watts': 0.0,
'energy_i_res_joules': 0.0,
'pwr_d_res_watts': 0.0,
'energy_d_res_joules': 0.0,
'cop': None,
'te_ref_kelvin': None,
'pwr_aux_for_cab_hvac_req_watts': 0.0,
'pwr_thrml_to_cab_req_watts': 0.0,
'pwr_aux_for_res_hvac_req_watts': 0.0,
'pwr_thrml_to_res_req_watts': 0.0,
'pwr_aux_for_cab_hvac_watts': 0.0,
'energy_aux_for_cab_hvac_joules': 0.0,
'pwr_aux_for_res_hvac_watts': 0.0,
'energy_aux_for_res_hvac_joules': 0.0,
'pwr_thrml_hvac_to_cabin_watts': 0.0,
'energy_thrml_hvac_to_cabin_joules': 0.0,
'pwr_thrml_fc_to_cabin_watts': 0.0,
'energy_thrml_fc_to_cabin_joules': 0.0,
'pwr_thrml_hvac_to_res_watts': 0.0,
'energy_thrml_hvac_to_res_joules': 0.0,
'te_ref_component': 'None',
'cabin_mode': 'Inactive',
'res_mode': 'Inactive'
},
'history': {
'i': [],
'pwr_p_cab_watts': [],
'energy_p_cab_joules': [],
'pwr_i_cab_watts': [],
'energy_i_cab_joules': [],
'pwr_d_cab_watts': [],
'energy_d_cab_joules': [],
'pwr_p_res_watts': [],
'energy_p_res_joules': [],
'pwr_i_res_watts': [],
'energy_i_res_joules': [],
'pwr_d_res_watts': [],
'energy_d_res_joules': [],
'cop': [],
'te_ref_kelvin': [],
'pwr_aux_for_cab_hvac_req_watts': [],
'pwr_thrml_to_cab_req_watts': [],
'pwr_aux_for_res_hvac_req_watts': [],
'pwr_thrml_to_res_req_watts': [],
'pwr_aux_for_cab_hvac_watts': [],
'energy_aux_for_cab_hvac_joules': [],
'pwr_aux_for_res_hvac_watts': [],
'energy_aux_for_res_hvac_joules': [],
'pwr_thrml_hvac_to_cabin_watts': [],
'energy_thrml_hvac_to_cabin_joules': [],
'pwr_thrml_fc_to_cabin_watts': [],
'energy_thrml_fc_to_cabin_joules': [],
'pwr_thrml_hvac_to_res_watts': [],
'energy_thrml_hvac_to_res_joules': [],
'te_ref_component': [],
'cabin_mode': [],
'res_mode': []
},
'save_interval': 1
}
},
...
}*Mass can be set for the entire vehicle at the outermost level of the hierarchy (mass_kilograms), or on each component and calculated automatically during initialization.
For guidance on creation of custom vehicle models, see Modeling a Vehicle.