#[non_exhaustive]pub struct RESGreedyWithDynamicBuffers {Show 15 fields
pub speed_soc_disch_buffer: Option<Velocity>,
pub speed_soc_disch_buffer_coeff: Option<Ratio>,
pub speed_soc_fc_on_buffer: Option<Velocity>,
pub speed_soc_fc_on_buffer_coeff: Option<Ratio>,
pub speed_soc_regen_buffer: Option<Velocity>,
pub speed_soc_regen_buffer_coeff: Option<Ratio>,
pub fc_min_time_on: Option<Time>,
pub speed_fc_forced_on: Option<Velocity>,
pub frac_pwr_demand_fc_forced_on: Option<Ratio>,
pub frac_of_most_eff_pwr_to_run_fc: Option<Ratio>,
pub save_interval: Option<usize>,
pub temp_fc_forced_on: Option<Temperature>,
pub temp_fc_allowed_off: Option<Temperature>,
pub state: RGWDBState,
pub history: RGWDBStateHistoryVec,
}Expand description
Greedily uses ReversibleEnergyStorage with buffers that derate charge and discharge power inside of static min and max SOC range. Also, includes buffer for forcing FuelConverter to be active/on. See Self::init for default values.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.speed_soc_disch_buffer: Option<Velocity>RES energy delta from minimum SOC corresponding to kinetic energy of vehicle at this speed that triggers ramp down in RES discharge.
speed_soc_disch_buffer_coeff: Option<Ratio>Coefficient for modifying amount of accel buffer
speed_soc_fc_on_buffer: Option<Velocity>RES energy delta from minimum SOC corresponding to kinetic energy of vehicle at this speed that triggers FC to be forced on.
speed_soc_fc_on_buffer_coeff: Option<Ratio>Coefficient for modifying amount of Self::speed_soc_fc_on_buffer
speed_soc_regen_buffer: Option<Velocity>RES energy delta from maximum SOC corresponding to kinetic energy of vehicle at current speed minus kinetic energy of vehicle at this speed triggers ramp down in RES discharge
speed_soc_regen_buffer_coeff: Option<Ratio>Coefficient for modifying amount of regen buffer
fc_min_time_on: Option<Time>Minimum time engine must remain on if it was on during the previous simulation time step.
speed_fc_forced_on: Option<Velocity>Speed at which FuelConverter is forced on.
frac_pwr_demand_fc_forced_on: Option<Ratio>Fraction of total aux and powertrain rated power at which FuelConverter is forced on.
frac_of_most_eff_pwr_to_run_fc: Option<Ratio>Force engine, if on, to run at this fraction of power at which peak efficiency occurs or the required power, whichever is greater. If SOC is below min buffer or engine is otherwise forced on and battery has room to receive charge, engine will run at this level and charge.
save_interval: Option<usize>Fraction of available charging capacity to use toward running the engine efficiently. Time step interval between saves. 1 is a good option. If None, no saving occurs.
temp_fc_forced_on: Option<Temperature>temperature at which engine is forced on to warm up
temp_fc_allowed_off: Option<Temperature>temperature at which engine is allowed to turn off due to being sufficiently warm
state: RGWDBStatecurrent state of control variables
history: RGWDBStateHistoryVechistory of current state
Trait Implementations§
Source§impl Clone for RESGreedyWithDynamicBuffers
impl Clone for RESGreedyWithDynamicBuffers
Source§fn clone(&self) -> RESGreedyWithDynamicBuffers
fn clone(&self) -> RESGreedyWithDynamicBuffers
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RESGreedyWithDynamicBuffers
impl Debug for RESGreedyWithDynamicBuffers
Source§impl Default for RESGreedyWithDynamicBuffers
impl Default for RESGreedyWithDynamicBuffers
Source§fn default() -> RESGreedyWithDynamicBuffers
fn default() -> RESGreedyWithDynamicBuffers
Source§impl<'de> Deserialize<'de> for RESGreedyWithDynamicBuffers
impl<'de> Deserialize<'de> for RESGreedyWithDynamicBuffers
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 HistoryMethods for RESGreedyWithDynamicBuffers
impl HistoryMethods for RESGreedyWithDynamicBuffers
Source§impl Init for RESGreedyWithDynamicBuffers
impl Init for RESGreedyWithDynamicBuffers
Source§impl SerdeAPI for RESGreedyWithDynamicBuffers
impl SerdeAPI for RESGreedyWithDynamicBuffers
const ACCEPTED_BYTE_FORMATS: &'static [&'static str] = _
const ACCEPTED_STR_FORMATS: &'static [&'static str] = _
const RESOURCES_DIR: &'static Dir<'_> = _
const RESOURCES_SUBDIR: &'static str = ""
Source§fn from_resource<P: AsRef<Path>>(
filepath: P,
skip_init: bool,
) -> Result<Self, Error>
fn from_resource<P: AsRef<Path>>( filepath: P, skip_init: bool, ) -> Result<Self, Error>
fastsim-core crate Read moreSource§fn list_resources() -> Result<Vec<PathBuf>, Error>
fn list_resources() -> Result<Vec<PathBuf>, Error>
Source§fn to_file<P: AsRef<Path>>(&self, filepath: P) -> Result<(), Error>
fn to_file<P: AsRef<Path>>(&self, filepath: P) -> Result<(), Error>
ACCEPTED_BYTE_FORMATS.
Creates a new file if it does not already exist, otherwise truncates the existing file. Read moreSource§fn from_file<P: AsRef<Path>>(
filepath: P,
skip_init: bool,
) -> Result<Self, Error>
fn from_file<P: AsRef<Path>>( filepath: P, skip_init: bool, ) -> Result<Self, Error>
ACCEPTED_BYTE_FORMATS. Read moreSource§fn to_writer<W: Write>(&self, wtr: W, format: &str) -> Result<(), Error>
fn to_writer<W: Write>(&self, wtr: W, format: &str) -> Result<(), Error>
std::io::Write Read moreSource§fn from_reader<R: Read>(
rdr: &mut R,
format: &str,
skip_init: bool,
) -> Result<Self, Error>
fn from_reader<R: Read>( rdr: &mut R, format: &str, skip_init: bool, ) -> Result<Self, Error>
std::io::Read Read moreSource§fn to_str(&self, format: &str) -> Result<String>
fn to_str(&self, format: &str) -> Result<String>
Source§fn from_str<S: AsRef<str>>(
contents: S,
format: &str,
skip_init: bool,
) -> Result<Self>
fn from_str<S: AsRef<str>>( contents: S, format: &str, skip_init: bool, ) -> Result<Self>
Source§fn from_json<S: AsRef<str>>(json_str: S, skip_init: bool) -> Result<Self>
fn from_json<S: AsRef<str>>(json_str: S, skip_init: bool) -> Result<Self>
Source§fn from_msg_pack(msg_pack: &[u8], skip_init: bool) -> Result<Self>
fn from_msg_pack(msg_pack: &[u8], skip_init: bool) -> Result<Self>
Source§impl Step for RESGreedyWithDynamicBuffers
impl Step for RESGreedyWithDynamicBuffers
Source§impl TryFrom<HEVPowertrainControls> for Box<RESGreedyWithDynamicBuffers>
impl TryFrom<HEVPowertrainControls> for Box<RESGreedyWithDynamicBuffers>
Source§type Error = TryIntoError<HEVPowertrainControls>
type Error = TryIntoError<HEVPowertrainControls>
impl StateMethods for RESGreedyWithDynamicBuffers
impl StructuralPartialEq for RESGreedyWithDynamicBuffers
Auto Trait Implementations§
impl Freeze for RESGreedyWithDynamicBuffers
impl RefUnwindSafe for RESGreedyWithDynamicBuffers
impl Send for RESGreedyWithDynamicBuffers
impl Sync for RESGreedyWithDynamicBuffers
impl Unpin for RESGreedyWithDynamicBuffers
impl UnwindSafe for RESGreedyWithDynamicBuffers
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more