#[non_exhaustive]pub struct SimDrive {
pub veh: Vehicle,
pub cyc: Cycle,
pub sim_params: SimParams,
}Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.veh: Vehicle§cyc: Cycle§sim_params: SimParamsImplementations§
Source§impl SimDrive
impl SimDrive
pub fn new(veh: Vehicle, cyc: Cycle, sim_params: Option<SimParams>) -> Self
Sourcepub fn walk(&mut self) -> Result<()>
pub fn walk(&mut self) -> Result<()>
Run vehicle simulation, and, if applicable, apply powertrain-specific corrections:
- for HEV, set initial SOC to mean of min and max SOC, and then iterate
walkuntil SOC balance is achieved – i.e. initial and final SOC are nearly identical - for PHEV, set initial SOC to max SOC, and then simulate once
- for BEV, set initial SOC to max SOC, and then simulate once
- for Conv, simulate once
§Important Considerations
If you need to run a ReversibleEnergyStorage-equipped vehicle for only one iteration without modifying the initial SOC, then run the Self::walk_once method directly
Sourcepub fn calc_dvdd(&self, speed_m_per_s: f64, grade: f64) -> Result<f64>
pub fn calc_dvdd(&self, speed_m_per_s: f64, grade: f64) -> Result<f64>
Calculates the derivative dv/dd (change in speed by change in distance)
- speed_m_per_s: the speed at which to evaluate dv/dd (m/s)
- grade: the road grade as a decimal fraction
RETURN: number, the dv/dd for these conditions
Sourcepub fn solve_step(&mut self) -> Result<()>
pub fn solve_step(&mut self) -> Result<()>
Solves current time step
Sourcepub fn set_pwr_prop_for_speed(
&mut self,
speed: Velocity,
speed_prev: Velocity,
dt: Time,
) -> Result<()>
pub fn set_pwr_prop_for_speed( &mut self, speed: Velocity, speed_prev: Velocity, dt: Time, ) -> Result<()>
Sets power required for given prescribed speed
§Arguments
speed: prescribed or achieved speeddt: simulation time step size
Sourcepub fn set_ach_speed(&mut self, cyc_speed: Velocity, dt: Time) -> Result<()>
pub fn set_ach_speed(&mut self, cyc_speed: Velocity, dt: Time) -> Result<()>
Sets achieved speed based on known current max power
§Arguments
cyc_speed: prescribed speeddt: simulation time step size
pub fn to_fastsim2(&self) -> Result<RustSimDrive>
pub fn clear(&mut self)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SimDrive
impl<'de> Deserialize<'de> for SimDrive
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl SerdeAPI for SimDrive
impl SerdeAPI for SimDrive
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>
Read (deserialize) an object from a resource file packaged with the
fastsim-core crate Read moreSource§fn list_resources() -> Result<Vec<PathBuf>, Error>
fn list_resources() -> Result<Vec<PathBuf>, Error>
List the available resources in the resources directory Read more
Source§fn to_file<P: AsRef<Path>>(&self, filepath: P) -> Result<(), Error>
fn to_file<P: AsRef<Path>>(&self, filepath: P) -> Result<(), Error>
Write (serialize) an object to a file.
Supported file extensions are listed in
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>
Read (deserialize) an object from a file.
Supported file extensions are listed in
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>
Write (serialize) an object into anything that implements
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>
Deserialize an object from anything that implements
std::io::Read Read moreSource§fn to_str(&self, format: &str) -> Result<String>
fn to_str(&self, format: &str) -> Result<String>
Write (serialize) an object into a string Read more
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>
Read (deserialize) an object from a string Read more
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>
Read (deserialize) an object from a JSON string Read more
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>
Read (deserialize) an object from a message pack Read more
Source§impl SetCumulative for SimDrive
impl SetCumulative for SimDrive
Source§impl TrackedStateMethods for SimDrive
impl TrackedStateMethods for SimDrive
impl StateMethods for SimDrive
impl StructuralPartialEq for SimDrive
Auto Trait Implementations§
impl Freeze for SimDrive
impl RefUnwindSafe for SimDrive
impl Send for SimDrive
impl Sync for SimDrive
impl Unpin for SimDrive
impl UnwindSafe for SimDrive
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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