pub enum StorageDispatchMode {
CostMinimization,
OfferCurve,
SelfSchedule,
}Expand description
How the optimizer dispatches a storage generator.
Variants§
CostMinimization
Optimizer minimizes total system cost — storage charges/discharges optimally.
Efficiency losses plus variable_cost_per_mwh and degradation_cost_per_mwh
are baked into the LP/NLP objective alongside generator costs. The optimizer
places storage where it is most valuable given its costs; no external price
signal is needed (marginal prices emerge endogenously from the dispatch LP).
OfferCurve
BESS submits offer curves like a generator. discharge_offer defines the
cumulative (MW, $/hr) PWL breakpoints for selling power; charge_bid
defines the cumulative (MW, $/hr) breakpoints for buying power. Curves
must start with an explicit (0.0, 0.0) origin and at least one
additional breakpoint. The optimizer clears the BESS against these curves
at the endogenous bus LMP.
SelfSchedule
Operator pre-commits a fixed net injection for every period. self_schedule_mw
(positive = discharge, negative = charge) is injected as-is (clamped by SoC
limits). The schedule is not optimized — the BESS is dispatched exactly
at the committed level regardless of prices.
Trait Implementations§
Source§impl Clone for StorageDispatchMode
impl Clone for StorageDispatchMode
Source§fn clone(&self) -> StorageDispatchMode
fn clone(&self) -> StorageDispatchMode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more