Reserve Requirements
E4ST.ReserveRequirement
— TypeReserveRequirement <: Modification
Representation of reserve requirement, such that the sum of eligible power injection capacity in the region (including both generators and storage devices) is constrained to be greater than or equal to some percentage above the load.
Keyword arguments:
name
- name of the modificationarea
- the area by which to group the buses by for the reserve requirements.credit_gen
- theCrediting
for the generators, defaults toAvailabilityFactorCrediting
credit_stor
- theCrediting
for the storage facilities (seeStorage
), defaults toStandardStorageReserveCrediting
requirements_file
- a table with the subareas and the percent requirement of power capacity above the load. Seesummarize_table(::Val{:reserve_requirements})
flow_limits_file
- (optional) a table with positive and negative flow limits from each subarea to each other subarea. Seesummarize_table(::Val{:reserve_flow_limits})
. If none provided, it is assumed that no flow is permitted between regions.load_type
- aString
for what type of load to base the requirement off of. Can be either:plnom
- (default), nominal load power.plserv
- served load power.
Tables Added:
<name>_requirements
- this has one row for each of the reserve requirements regions specified inrequirements_file
<name>_flow_limits
- this has one row for each flow limit specified inflow_limits_file
(only created if that file is provided.)
Table Columns Added:
(:gen, :<name>)
- the hourly qualifying credit level for reserve requirement. This gets multiplied by the power capacity in the reserve requirement constraint.(:storage, :<name>)
- the hourly qualifying credit level for reserve requirement. This gets multiplied by the power capacity in the reserve requirement constraint.(:bus, :<name>_pres_req)
- the required reserve power in the bus from the reserve requirement, in MW.(:<name>_requirements, :price)
- the hourly shadow price on the capacity constraint, in dollars per MW reserve capacity supplied per hour.(:<name>_requirements, :pres_supply)
- the supplied reserve capacity in the region for each hour.(:<name>_requirements, :pres_req)
- the required reserve capacity in the region for each hour.(:<name>_requirements, :pres_flow)
- the reserve power capacity flowing out of the region for each hour.(:gen, :<name>_pres)
- the reserve power capacity supplied by the generator.(:gen, :<name>_rebate_per_mw)
- This is the rebate recieved by EGU's for each MW of capacity for each hour from the reserve requirement.(:bus, :<name>_cost_per_mw)
- This is the rebate payed by users to EGU's (and storage if present) for each MW of demand for each hour from the reserve requirement.(:storage, :<name>_pres)
- the reserve power capacity supplied by the storage unit.(:storage, :<name>_rebate_per_mw)
- This is the rebate recieved by storage facilities for each MW for each hour from the reserve requirement.(:bus, :<name>_merchandising_surplus)
- Merchandising surplus earned from differences in power reserve prices across reserve regions.
Model Modification:
- Variables
pres_flow_<name>
- (nflow x nyr x nhr) Reserve power flow for each row of the flow limit table, bounded by forward and reverse max flows. (only present if there isflow_limits_file
file provided)
- Expressions
pres_total_subarea_<name>
- (nsubarea x nyr x nhr) Reserve power from all sources for each subareapres_gen_subarea_<name>
- (nsubarea x nyr x nhr) Reserve power from generators for each subarea (function of capacity)pres_stor_subarea_<name>
- (nsubarea x nyr x nhr) Reserve power from storage units (only present if there isStorage
in the model.)pres_req_subarea_<name>
- (nsubarea x nyr x nhr) Required reserve power (function of load), depends onrequirements_file
andload_type
pres_flow_subarea_<name>
- (nsubarea x nyr x nhr) Reserve flow flowing out of each subarea, function ofpres_flow_<name>
variable. (only present if there isflow_limits_file
file provided)
- Constraints
cons_pres_<name>
- (nsubarea x nyr x nhr) Constrain thatpres_total_subarea_<name> ≥ pres_req_subarea_<name>
.
Results Formulas:
(:<name>_requirements, :pres_req)
- the hourly required reserve power for the region.(:<name>_requirements, :pres_supply)
- the hourly supplied reserve power for the region.(:<name>_requirements, :eres_supply)
- the supply for reserve energy. May be misleading but useful for calculations.(:<name>_requirements, :cost_total)
- cost paid for the supplied reserve power.(:<name>_requirements, :price_avg)
- the total cost divided by the supply of reserve power. This represents the shadow price on the capacity constraint, in dollars per MW reserve capacity supplied per hour.(:<name>_requirements, :pres_flow)
- the hourly power flowing out of the region. May be misleading when aggregating above the subarea level.(:bus, :<name>_cost_result)
- the total rebate paid by users to EGUs (and storage if present) from the reserve requirement, not including merchandising surplus.(:bus, :<name>_pres_req)
- the hourly power capacity required at each of the buses provided.(:bus, :<name>_merchandising_surplus_total)
- the total merchandising surplus paid to users in the area.(:gen, :<name>_pcap_qual)
- the hourly-weighted average capacity that qualifies for the reserve requirement(:gen, :<name>_rebate)
- the total rebate for generators, for satisfying the reserve requirement. Generally ≥ 0. This is added to(:gen, :net_total_revenue_prelim)
, and subtracted from electricityuser
welfare.(:storage, :<name>_pcap_qual)
- the hourly-weighted average capacity that qualifies for the reserve requirement(:storage, :<name>_rebate)
- (only added ifStorage
included) the total rebate for storage units, for satisfying the reserve requirement. Generally ≥ 0. This is added to(:storage, :net_total_revenue_prelim)
, and subtracted from electricityuser
welfare.