Reserve Requirements

E4ST.ReserveRequirementType
ReserveRequirement <: 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 modification
  • area - the area by which to group the buses by for the reserve requirements.
  • credit_gen - the Crediting for the generators, defaults to AvailabilityFactorCrediting
  • credit_stor - the Crediting for the storage facilities (see Storage), defaults to StandardStorageReserveCrediting
  • requirements_file - a table with the subareas and the percent requirement of power capacity above the load. See summarize_table(::Val{:reserve_requirements})
  • flow_limits_file - (optional) a table with positive and negative flow limits from each subarea to each other subarea. See summarize_table(::Val{:reserve_flow_limits}). If none provided, it is assumed that no flow is permitted between regions.
  • load_type - a String 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 in requirements_file
  • <name>_flow_limits - this has one row for each flow limit specified in flow_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 is flow_limits_file file provided)
  • Expressions
    • pres_total_subarea_<name> - (nsubarea x nyr x nhr) Reserve power from all sources for each subarea
    • pres_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 is Storage in the model.)
    • pres_req_subarea_<name> - (nsubarea x nyr x nhr) Required reserve power (function of load), depends on requirements_file and load_type
    • pres_flow_subarea_<name> - (nsubarea x nyr x nhr) Reserve flow flowing out of each subarea, function of pres_flow_<name> variable. (only present if there is flow_limits_file file provided)
  • Constraints
    • cons_pres_<name> - (nsubarea x nyr x nhr) Constrain that pres_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 electricity user welfare.
  • (:storage, :<name>_pcap_qual) - the hourly-weighted average capacity that qualifies for the reserve requirement
  • (:storage, :<name>_rebate) - (only added if Storage 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 electricity user welfare.
source