MarketBidCost
PowerSystems.MarketBidCost
— Typemutable struct MarketBidCost <: OperationalCost
no_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::Float64
: Shut-down costincremental_offer_curves::Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}
: Sell Offer Curves data, which can be a time series ofPiecewiseStepData
or aCostCurve
ofPiecewiseIncrementalCurve
decremental_offer_curves::Union{Nothing, CostCurve{PiecewiseIncrementalCurve}, TimeSeriesKey}
: Buy Offer Curves data, which can be a time series ofPiecewiseStepData
or aCostCurve
ofPiecewiseIncrementalCurve
incremental_initial_input::Union{Nothing, TimeSeriesKey}
: If using a time series for incrementaloffercurves, this is a time series ofFloat64
representing theinitial_input
decremental_initial_input::Union{Nothing, TimeSeriesKey}
: If using a time series for decrementaloffercurves, this is a time series ofFloat64
representing theinitial_input
ancillary_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
) -> MarketBidCost
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,
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,
incremental_offer_curves,
decremental_offer_curves,
incremental_initial_input,
decremental_initial_input,
ancillary_service_offers
) -> MarketBidCost
Auxiliary Constructor for Deserialization with Integer at no load cost
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) -> Float64
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