pub struct EvCharger {
pub max_charge_kw: f32,
pub steps_per_day: usize,
pub demand_kwh_min: f32,
pub demand_kwh_max: f32,
pub dwell_steps_min: usize,
pub dwell_steps_max: usize,
sampled_day: Option<usize>,
session: Option<EvSession>,
rng: StdRng,
}Expand description
A flexible electric load model using EV-style charging sessions.
Each simulated day, this model samples one charging session with:
- random arrival time
- random dwell duration (which sets deadline)
- random required energy in kWh
During an active session, charging power is computed as the minimum required
to meet the remaining energy by the deadline, limited by max_charge_kw.
Fields§
§max_charge_kw: f32Maximum charging power in kilowatts.
steps_per_day: usizeNumber of simulation steps per day.
demand_kwh_min: f32Minimum daily charging demand in kWh.
demand_kwh_max: f32Maximum daily charging demand in kWh.
dwell_steps_min: usizeMinimum connected duration in simulation steps.
dwell_steps_max: usizeMaximum connected duration in simulation steps.
sampled_day: Option<usize>§session: Option<EvSession>§rng: StdRngImplementations§
Source§impl EvCharger
impl EvCharger
pub fn new( max_charge_kw: f32, steps_per_day: usize, demand_kwh_min: f32, demand_kwh_max: f32, dwell_steps_min: usize, dwell_steps_max: usize, seed: u64, ) -> Self
fn dt_hours(&self) -> f32
fn sample_session_for_day(&mut self, day: usize)
Sourcepub fn requested_power_kw(&mut self, context: &DeviceContext) -> f32
pub fn requested_power_kw(&mut self, context: &DeviceContext) -> f32
Returns the unconstrained charging request at the current timestep.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EvCharger
impl RefUnwindSafe for EvCharger
impl Send for EvCharger
impl Sync for EvCharger
impl Unpin for EvCharger
impl UnwindSafe for EvCharger
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