Struct fastsim_core::vehicle::RustVehicle
source · pub struct RustVehicle {Show 126 fields
pub doc: Option<String>,
pub props: RustPhysicalProperties,
pub scenario_name: String,
pub selection: u32,
pub veh_year: u32,
pub veh_pt_type: String,
pub drag_coef: f64,
pub drag_coef_doc: Option<String>,
pub frontal_area_m2: f64,
pub frontal_area_m2_doc: Option<String>,
pub glider_kg: f64,
pub glider_kg_doc: Option<String>,
pub veh_cg_m: f64,
pub veh_cg_m_doc: Option<String>,
pub drive_axle_weight_frac: f64,
pub drive_axle_weight_frac_doc: Option<String>,
pub wheel_base_m: f64,
pub wheel_base_m_doc: Option<String>,
pub cargo_kg: f64,
pub cargo_kg_doc: Option<String>,
pub veh_override_kg: Option<f64>,
pub veh_override_kg_doc: Option<String>,
pub comp_mass_multiplier: f64,
pub comp_mass_multiplier_doc: Option<String>,
pub fs_max_kw: f64,
pub fs_max_kw_doc: Option<String>,
pub fs_secs_to_peak_pwr: f64,
pub fs_secs_to_peak_pwr_doc: Option<String>,
pub fs_kwh: f64,
pub fs_kwh_doc: Option<String>,
pub fs_kwh_per_kg: f64,
pub fs_kwh_per_kg_doc: Option<String>,
pub fc_max_kw: f64,
pub fc_max_kw_doc: Option<String>,
pub fc_pwr_out_perc: Array1<f64>,
pub fc_pwr_out_perc_doc: Option<String>,
pub fc_eff_map: Array1<f64>,
pub fc_eff_map_doc: Option<String>,
pub fc_eff_type: String,
pub fc_eff_type_doc: Option<String>,
pub fc_sec_to_peak_pwr: f64,
pub fc_sec_to_peak_pwr_doc: Option<String>,
pub fc_base_kg: f64,
pub fc_base_kg_doc: Option<String>,
pub fc_kw_per_kg: f64,
pub fc_kw_per_kg_doc: Option<String>,
pub min_fc_time_on: f64,
pub min_fc_time_on_doc: Option<String>,
pub idle_fc_kw: f64,
pub idle_fc_kw_doc: Option<String>,
pub mc_max_kw: f64,
pub mc_max_kw_doc: Option<String>,
pub mc_pwr_out_perc: Array1<f64>,
pub mc_pwr_out_perc_doc: Option<String>,
pub mc_eff_map: Array1<f64>,
pub mc_eff_map_doc: Option<String>,
pub mc_sec_to_peak_pwr: f64,
pub mc_sec_to_peak_pwr_doc: Option<String>,
pub mc_pe_kg_per_kw: f64,
pub mc_pe_kg_per_kw_doc: Option<String>,
pub mc_pe_base_kg: f64,
pub mc_pe_base_kg_doc: Option<String>,
pub ess_max_kw: f64,
pub ess_max_kw_doc: Option<String>,
pub ess_max_kwh: f64,
pub ess_max_kwh_doc: Option<String>,
pub ess_kg_per_kwh: f64,
pub ess_kg_per_kwh_doc: Option<String>,
pub ess_base_kg: f64,
pub ess_base_kg_doc: Option<String>,
pub ess_round_trip_eff: f64,
pub ess_round_trip_eff_doc: Option<String>,
pub ess_life_coef_a: f64,
pub ess_life_coef_a_doc: Option<String>,
pub ess_life_coef_b: f64,
pub ess_life_coef_b_doc: Option<String>,
pub min_soc: f64,
pub min_soc_doc: Option<String>,
pub max_soc: f64,
pub max_soc_doc: Option<String>,
pub ess_dischg_to_fc_max_eff_perc: f64,
pub ess_dischg_to_fc_max_eff_perc_doc: Option<String>,
pub ess_chg_to_fc_max_eff_perc: f64,
pub ess_chg_to_fc_max_eff_perc_doc: Option<String>,
pub wheel_inertia_kg_m2: f64,
pub wheel_inertia_kg_m2_doc: Option<String>,
pub num_wheels: f64,
pub num_wheels_doc: Option<String>,
pub wheel_rr_coef: f64,
pub wheel_rr_coef_doc: Option<String>,
pub wheel_radius_m: f64,
pub wheel_radius_m_doc: Option<String>,
pub wheel_coef_of_fric: f64,
pub wheel_coef_of_fric_doc: Option<String>,
pub max_accel_buffer_mph: f64,
pub max_accel_buffer_mph_doc: Option<String>,
pub max_accel_buffer_perc_of_useable_soc: f64,
pub max_accel_buffer_perc_of_useable_soc_doc: Option<String>,
pub perc_high_acc_buf: f64,
pub perc_high_acc_buf_doc: Option<String>,
pub mph_fc_on: f64,
pub mph_fc_on_doc: Option<String>,
pub kw_demand_fc_on: f64,
pub kw_demand_fc_on_doc: Option<String>,
pub max_regen: f64,
pub max_regen_doc: Option<String>,
pub stop_start: bool,
pub stop_start_doc: Option<String>,
pub force_aux_on_fc: bool,
pub force_aux_on_fc_doc: Option<String>,
pub alt_eff: f64,
pub alt_eff_doc: Option<String>,
pub chg_eff: f64,
pub chg_eff_doc: Option<String>,
pub aux_kw: f64,
pub aux_kw_doc: Option<String>,
pub trans_kg: f64,
pub trans_kg_doc: Option<String>,
pub trans_eff: f64,
pub trans_eff_doc: Option<String>,
pub ess_to_fuel_ok_error: f64,
pub ess_to_fuel_ok_error_doc: Option<String>,
pub fc_peak_eff_override: Option<f64>,
pub fc_peak_eff_override_doc: Option<String>,
pub mc_peak_eff_override: Option<f64>,
pub mc_peak_eff_override_doc: Option<String>,
/* private fields */
}Expand description
Struct containing vehicle attributes
Python Examples
import fastsim
## Load drive cycle by name
cyc_py = fastsim.cycle.Cycle.from_file("udds")
cyc_rust = cyc_py.to_rust()
Fields§
§doc: Option<String>Vehicle level documentation – e.g. info about calibration/validation of vehicle and/or links to reports or other long-form documentation.
props: RustPhysicalPropertiesPhysical properties, see RustPhysicalProperties
scenario_name: StringVehicle name
selection: u32Vehicle database ID
veh_year: u32Vehicle year
veh_pt_type: String§drag_coef: f64Aerodynamic drag coefficient
drag_coef_doc: Option<String>String for documentation – e.g. info about calibration/validation.
frontal_area_m2: f64Frontal area, $m^2$
frontal_area_m2_doc: Option<String>String for documentation – e.g. info about calibration/validation.
glider_kg: f64Vehicle mass excluding cargo, passengers, and powertrain components, $kg$
glider_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
veh_cg_m: f64Vehicle center of mass height, $m$ NOTE: positive for FWD, negative for RWD, AWD, 4WD
veh_cg_m_doc: Option<String>String for documentation – e.g. info about calibration/validation.
drive_axle_weight_frac: f64Fraction of weight on the drive axle while stopped
drive_axle_weight_frac_doc: Option<String>String for documentation – e.g. info about calibration/validation.
wheel_base_m: f64Wheelbase, $m$
wheel_base_m_doc: Option<String>String for documentation – e.g. info about calibration/validation.
cargo_kg: f64Cargo mass including passengers, $kg$
cargo_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
veh_override_kg: Option<f64>Total vehicle mass, overrides mass calculation, $kg$
veh_override_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
comp_mass_multiplier: f64Component mass multiplier for vehicle mass calculation
comp_mass_multiplier_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fs_max_kw: f64Fuel storage max power output, $kW$
fs_max_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fs_secs_to_peak_pwr: f64Fuel storage time to peak power, $s$
fs_secs_to_peak_pwr_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fs_kwh: f64Fuel storage energy capacity, $kWh$
fs_kwh_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fs_kwh_per_kg: f64Fuel specific energy, $\frac{kWh}{kg}$
fs_kwh_per_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_max_kw: f64Fuel converter peak continuous power, $kW$
fc_max_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_pwr_out_perc: Array1<f64>Fuel converter output power percentage map, x values of fc_eff_map
fc_pwr_out_perc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_eff_map: Array1<f64>Fuel converter efficiency map
fc_eff_map_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_eff_type: StringFuel converter efficiency type, one of [SI, ATKINSON, DIESEL, H2FC, HD_DIESEL] Used for calculating fc_eff_map, and other calculations if H2FC
fc_eff_type_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_sec_to_peak_pwr: f64Fuel converter time to peak power, $s$
fc_sec_to_peak_pwr_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_base_kg: f64Fuel converter base mass, $kg$
fc_base_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_kw_per_kg: f64Fuel converter specific power (power-to-weight ratio), $\frac{kW}{kg}$
fc_kw_per_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
min_fc_time_on: f64Minimum time fuel converter must be on before shutoff (for HEV, PHEV)
min_fc_time_on_doc: Option<String>String for documentation – e.g. info about calibration/validation.
idle_fc_kw: f64Fuel converter idle power, $kW$
idle_fc_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_max_kw: f64Peak continuous electric motor power, $kW$
mc_max_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_pwr_out_perc: Array1<f64>Electric motor output power percentage map, x values of mc_eff_map
mc_pwr_out_perc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_eff_map: Array1<f64>Electric motor efficiency map
mc_eff_map_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_sec_to_peak_pwr: f64Electric motor time to peak power, $s$
mc_sec_to_peak_pwr_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_pe_kg_per_kw: f64Motor power electronics mass per power output, $\frac{kg}{kW}$
mc_pe_kg_per_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_pe_base_kg: f64Motor power electronics base mass, $kg$
mc_pe_base_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_max_kw: f64Traction battery maximum power output, $kW$
ess_max_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_max_kwh: f64Traction battery energy capacity, $kWh$
ess_max_kwh_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_kg_per_kwh: f64Traction battery mass per energy, $\frac{kg}{kWh}$
ess_kg_per_kwh_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_base_kg: f64Traction battery base mass, $kg$
ess_base_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_round_trip_eff: f64Traction battery round-trip efficiency
ess_round_trip_eff_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_life_coef_a: f64Traction battery cycle life coefficient A, see reference
ess_life_coef_a_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_life_coef_b: f64Traction battery cycle life coefficient B, see reference
ess_life_coef_b_doc: Option<String>String for documentation – e.g. info about calibration/validation.
min_soc: f64Traction battery minimum state of charge
min_soc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
max_soc: f64Traction battery maximum state of charge
max_soc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_dischg_to_fc_max_eff_perc: f64ESS discharge effort toward max FC efficiency
ess_dischg_to_fc_max_eff_perc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_chg_to_fc_max_eff_perc: f64ESS charge effort toward max FC efficiency
ess_chg_to_fc_max_eff_perc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
wheel_inertia_kg_m2: f64Mass moment of inertia per wheel, $kg \cdot m^2$
wheel_inertia_kg_m2_doc: Option<String>String for documentation – e.g. info about calibration/validation.
num_wheels: f64Number of wheels
num_wheels_doc: Option<String>String for documentation – e.g. info about calibration/validation.
wheel_rr_coef: f64Rolling resistance coefficient
wheel_rr_coef_doc: Option<String>String for documentation – e.g. info about calibration/validation.
wheel_radius_m: f64Wheel radius, $m$
wheel_radius_m_doc: Option<String>String for documentation – e.g. info about calibration/validation.
wheel_coef_of_fric: f64Wheel coefficient of friction
wheel_coef_of_fric_doc: Option<String>String for documentation – e.g. info about calibration/validation.
max_accel_buffer_mph: f64Speed where the battery reserved for accelerating is zero
max_accel_buffer_mph_doc: Option<String>String for documentation – e.g. info about calibration/validation.
max_accel_buffer_perc_of_useable_soc: f64Percent of usable battery energy reserved to help accelerate
max_accel_buffer_perc_of_useable_soc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
perc_high_acc_buf: f64Percent SOC buffer for high accessory loads during cycles with long idle time
perc_high_acc_buf_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mph_fc_on: f64Speed at which the fuel converter must turn on, $mph$
mph_fc_on_doc: Option<String>String for documentation – e.g. info about calibration/validation.
kw_demand_fc_on: f64Power demand above which to require fuel converter on, $kW$
kw_demand_fc_on_doc: Option<String>String for documentation – e.g. info about calibration/validation.
max_regen: f64Maximum brake regeneration efficiency
max_regen_doc: Option<String>String for documentation – e.g. info about calibration/validation.
stop_start: boolStop/start micro-HEV flag
stop_start_doc: Option<String>String for documentation – e.g. info about calibration/validation.
force_aux_on_fc: boolForce auxiliary power load to come from fuel converter
force_aux_on_fc_doc: Option<String>String for documentation – e.g. info about calibration/validation.
alt_eff: f64Alternator efficiency
alt_eff_doc: Option<String>String for documentation – e.g. info about calibration/validation.
chg_eff: f64Charger efficiency
chg_eff_doc: Option<String>String for documentation – e.g. info about calibration/validation.
aux_kw: f64Auxiliary load power, $kW$
aux_kw_doc: Option<String>String for documentation – e.g. info about calibration/validation.
trans_kg: f64Transmission mass, $kg$
trans_kg_doc: Option<String>String for documentation – e.g. info about calibration/validation.
trans_eff: f64Transmission efficiency
trans_eff_doc: Option<String>String for documentation – e.g. info about calibration/validation.
ess_to_fuel_ok_error: f64Maximum acceptable ratio of change in ESS energy to expended fuel energy (used in hybrid SOC balancing), $\frac{\Delta E_{ESS}}{\Delta E_{fuel}}$
ess_to_fuel_ok_error_doc: Option<String>String for documentation – e.g. info about calibration/validation.
fc_peak_eff_override: Option<f64>Fuel converter efficiency peak override, scales entire curve
fc_peak_eff_override_doc: Option<String>String for documentation – e.g. info about calibration/validation.
mc_peak_eff_override: Option<f64>Motor efficiency peak override, scales entire curve
mc_peak_eff_override_doc: Option<String>String for documentation – e.g. info about calibration/validation.
Implementations§
source§impl RustVehicle
impl RustVehicle
RustVehicle rust methods
sourcepub fn set_veh_mass(&mut self)
pub fn set_veh_mass(&mut self)
Sets the following parameters:
ess_mass_kgmc_mass_kgfc_mass_kgfs_mass_kgveh_kgmax_trac_mps2
pub fn max_regen_kwh(&self) -> f64
pub fn mc_peak_eff(&self) -> f64
sourcepub fn max_fc_eff_kw(&self) -> f64
pub fn max_fc_eff_kw(&self) -> f64
Returns first FC output power at which peak efficiency occurs
pub fn fc_peak_eff(&self) -> f64
pub fn set_mc_peak_eff(&mut self, new_peak: f64)
pub fn set_fc_peak_eff(&mut self, new_peak: f64)
sourcepub fn set_derived(&mut self) -> Result<(), Error>
pub fn set_derived(&mut self) -> Result<(), Error>
Sets derived parameters:
no_elec_sysno_elec_auxfc_perc_out_arrayinput_kw_out_arrayfc_kw_out_arrayfc_eff_arraymodern_difflarge_baseline_eff_adjmc_kw_adj_percmc_eff_mapmc_eff_arraymc_perc_out_arraymc_kw_out_arraymc_full_eff_arraymc_kw_in_arraymc_max_elec_in_kwset_fc_peak_eff()set_mc_peak_eff()set_veh_mass()ess_mass_kgmc_mass_kgfc_mass_kgfs_mass_kgveh_kgmax_trac_mps2
pub fn mock_vehicle() -> Self
pub fn from_json_str(filename: &str) -> Result<Self, Error>
Trait Implementations§
source§impl ApproxEq<RustVehicle> for RustVehicle
impl ApproxEq<RustVehicle> for RustVehicle
source§impl Clone for RustVehicle
impl Clone for RustVehicle
source§fn clone(&self) -> RustVehicle
fn clone(&self) -> RustVehicle
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for RustVehicle
impl Debug for RustVehicle
source§impl Default for RustVehicle
impl Default for RustVehicle
source§fn default() -> RustVehicle
fn default() -> RustVehicle
source§impl<'de> Deserialize<'de> for RustVehicle
impl<'de> Deserialize<'de> for RustVehicle
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl PartialEq<RustVehicle> for RustVehicle
impl PartialEq<RustVehicle> for RustVehicle
source§fn eq(&self, other: &RustVehicle) -> bool
fn eq(&self, other: &RustVehicle) -> bool
self and other values to be equal, and is used
by ==.