MarketBidCost
PowerSystems.MarketBidCost — Typemutable struct MarketBidCost <: OperationalCostno_load_cost::Union{Nothing, Float64, TimeSeriesKey}: No load coststart_up::Union{@NamedTuple{hot::Float64, warm::Float64, cold::Float64}, TimeSeriesKey}: Start-up cost at different stages of the thermal cycle as the unit cools after a shutdown (e.g., hot, warm, or cold starts). Warm is also referred to as intermediate in some markets. Can also accept a single value if there is only one start-up costshut_down::Union{Float64, TimeSeriesKey}: Shut-down costincremental_offer_curves::Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}: Sell Offer Curves data, which can be a time series ofPiecewiseStepDataor aCostCurveofPiecewiseIncrementalCurvedecremental_offer_curves::Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}: Buy Offer Curves data, which can be a time series ofPiecewiseStepDataor aCostCurveofPiecewiseIncrementalCurveincremental_initial_input::Union{Nothing, TimeSeriesKey}: If using a time series for incrementaloffercurves, this is a time series ofFloat64representing theinitial_inputdecremental_initial_input::Union{Nothing, TimeSeriesKey}: If using a time series for decrementaloffercurves, this is a time series ofFloat64representing theinitial_inputancillary_service_offers::Vector{Service}: Bids for the ancillary services
MarketBidCost(no_load_cost, start_up, shut_down, incremental_offer_curves, decremental_offer_curves, ancillary_service_offers)
MarketBidCost(; no_load_cost, start_up, shut_down, incremental_offer_curves, decremental_offer_curves, ancillary_service_offers)
MarketBidCost(no_load_cost, start_up::Real, shut_down, incremental_offer_curves, decremental_offer_curves, ancillary_service_offers)An operating cost for market bids of energy and ancilliary services for any asset. Compatible with most US Market bidding mechanisms that support demand and generation side.
PowerSystems.MarketBidCost — MethodMarketBidCost(
no_load_cost,
start_up::Real,
shut_down;
incremental_offer_curves,
decremental_offer_curves,
incremental_initial_input,
decremental_initial_input,
ancillary_service_offers
) -> Any
Accepts a single start_up value to use as the hot value, with warm and cold set to 0.0.
PowerSystems.MarketBidCost — MethodMarketBidCost(
no_load_cost::Float64,
start_up::Union{@NamedTuple{hot::Float64, warm::Float64, cold::Float64}, TimeSeriesKey},
shut_down::Union{Float64, TimeSeriesKey},
incremental_offer_curves,
decremental_offer_curves,
ancillary_service_offers
) -> MarketBidCost
Auxiliary Constructor for TestData
PowerSystems.MarketBidCost — MethodMarketBidCost(
no_load_cost::Integer,
start_up::Union{@NamedTuple{hot::Float64, warm::Float64, cold::Float64}, TimeSeriesKey},
shut_down::Union{Float64, TimeSeriesKey},
incremental_offer_curves,
decremental_offer_curves,
incremental_initial_input,
decremental_initial_input,
ancillary_service_offers
) -> MarketBidCost
Auxiliary constructor for noloadcost::Integer
PowerSystems.MarketBidCost — MethodMarketBidCost(
no_load_cost::Union{Nothing, Float64, TimeSeriesKey},
start_up::Union{@NamedTuple{hot::Float64, warm::Float64, cold::Float64}, TimeSeriesKey},
shut_down::Integer,
incremental_offer_curves,
decremental_offer_curves,
incremental_initial_input,
decremental_initial_input,
ancillary_service_offers
) -> MarketBidCost
Auxiliary constructor for shut_down::Integer
PowerSystems.get_ancillary_service_offers — Methodget_ancillary_service_offers(
value::MarketBidCost
) -> Vector{Service}
Get MarketBidCost ancillary_service_offers.
PowerSystems.get_decremental_initial_input — Methodget_decremental_initial_input(
value::MarketBidCost
) -> Union{Nothing, TimeSeriesKey}
Get MarketBidCost decremental_initial_input.
PowerSystems.get_decremental_offer_curves — Methodget_decremental_offer_curves(
value::MarketBidCost
) -> Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}
Get MarketBidCost decremental_offer_curves.
PowerSystems.get_incremental_initial_input — Methodget_incremental_initial_input(
value::MarketBidCost
) -> Union{Nothing, TimeSeriesKey}
Get MarketBidCost incremental_initial_input.
PowerSystems.get_incremental_offer_curves — Methodget_incremental_offer_curves(
value::MarketBidCost
) -> Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}
Get MarketBidCost incremental_offer_curves.
PowerSystems.get_no_load_cost — Methodget_no_load_cost(
value::MarketBidCost
) -> Union{Nothing, Float64, TimeSeriesKey}
Get MarketBidCost no_load_cost.
PowerSystems.get_shut_down — Methodget_shut_down(
value::MarketBidCost
) -> Union{Float64, TimeSeriesKey}
Get MarketBidCost shut_down.
PowerSystems.get_start_up — Methodget_start_up(
value::MarketBidCost
) -> Union{@NamedTuple{hot::Float64, warm::Float64, cold::Float64}, TimeSeriesKey}
Get MarketBidCost start_up.
PowerSystems.make_market_bid_curve — Methodmake_market_bid_curve(
data::PiecewiseStepData,
initial_input::Float64;
power_units,
input_at_zero
) -> CostCurve{PiecewiseIncrementalCurve}
Make a CostCurve{PiecewiseIncrementalCurve} suitable for inclusion in a MarketBidCost from the FunctionData that might be used to store such a cost curve in a time series.
PowerSystems.make_market_bid_curve — Methodmake_market_bid_curve(
powers::Vector{Float64},
marginal_costs::Vector{Float64},
initial_input::Float64;
power_units,
input_at_zero
) -> CostCurve{PiecewiseIncrementalCurve}
Make a CostCurve{PiecewiseIncrementalCurve} suitable for inclusion in a MarketBidCost from a vector of power values, a vector of marginal costs, a float of initial input, and an optional units system and input at zero.
Examples
mbc = make_market_bid_curve([0.0, 100.0, 105.0, 120.0, 130.0], [25.0, 26.0, 28.0, 30.0], 10.0)
mbc2 = make_market_bid_curve([0.0, 100.0, 105.0, 120.0, 130.0], [25.0, 26.0, 28.0, 30.0], 10.0; input_at_zero = 10.0)
mbc3 = make_market_bid_curve([0.0, 100.0, 105.0, 120.0, 130.0], [25.0, 26.0, 28.0, 30.0], 10.0; power_inputs = UnitSystem.NATURAL_UNITS)PowerSystems.set_ancillary_service_offers! — Methodset_ancillary_service_offers!(
value::MarketBidCost,
val
) -> Any
Set MarketBidCost ancillary_service_offers.
PowerSystems.set_decremental_initial_input! — Methodset_decremental_initial_input!(
value::MarketBidCost,
val
) -> Any
Set MarketBidCost decremental_initial_input.
PowerSystems.set_decremental_offer_curves! — Methodset_decremental_offer_curves!(
value::MarketBidCost,
val
) -> Any
Set MarketBidCost incremental_offer_curves.
PowerSystems.set_incremental_initial_input! — Methodset_incremental_initial_input!(
value::MarketBidCost,
val
) -> Any
Set MarketBidCost incremental_initial_input.
PowerSystems.set_incremental_offer_curves! — Methodset_incremental_offer_curves!(
value::MarketBidCost,
val
) -> Any
Set MarketBidCost incremental_offer_curves.
PowerSystems.set_no_load_cost! — Methodset_no_load_cost!(value::MarketBidCost, val) -> Any
Set MarketBidCost no_load_cost.
PowerSystems.set_shut_down! — Methodset_shut_down!(value::MarketBidCost, val) -> Any
Set MarketBidCost shut_down.
PowerSystems.set_start_up! — Methodset_start_up!(
value::MarketBidCost,
val
) -> NamedTuple{(:hot, :warm, :cold), <:Tuple{Any, Float64, Float64}}
Set MarketBidCost start_up.
PowerSystems.set_start_up! — Methodset_start_up!(
value::MarketBidCost,
val::Real
) -> NamedTuple{(:hot, :warm, :cold), <:Tuple{Any, Float64, Float64}}
Auxiliary Method for setting up start up that are not multi-start