e4st-dev / E4ST.jl

Engineering, Economic, and Environmental Electricity Simulation Tool (E4ST)
GNU General Public License v3.0
7 stars 1 forks source link

Capacity Reserve Requirements #105

Closed Ethan-Russell closed 1 year ago

Ethan-Russell commented 1 year ago

Need a Modification for capacity constraints. Could mirror GenerationConstraint.

Ethan-Russell commented 1 year ago

From Dan 4/13: The AVAILABLE capacity should be constrained. I.e. make a constraint on the number of MWh of energy generated if operated at the available capacity, in each representative hour.

sallyrobson commented 1 year ago

This is connected to Capacity Markets #43 which we should also think about adding to the model.

sallyrobson commented 1 year ago

Reserve margins are defined using projected peak load and might be something that we calculate outside the model and then impose as a capacity/generation constraint not depended on the hourly load. Possibly something like hourly generation + capacity reserve = total capacity. Technically this wouldn't be perfect because capacity is constrained over a longer time period than hours, so we could create a constraint over the year. But since our hourly load profile doesn't completely capture the highest peak load where you would actually need the reserve capacity to generate, it would probably be appropriate to constrain hourly.

From NERC:"Planning Reserve Margin equals the difference in Deliverable or Prospective Resources and Net Internal Demand, divided by Net Internal Demand. Deliverable Resources are calculated by the sum of Existing, Certain and Future, Planned Capacity Resources plus Net Firm Transactions. Prospective Resources include Deliverable Resources and Existing, Other Resources. Net Internal Demand equals Total Internal Demand less Dispatchable, Controllable Capacity Demand Response used to reduce load (DCLM, IL, CPP w/control, LaaR)."

One fairly realistic way to model this would be to calculate the projected peak load for each simulation year, possibly a little higher than the peak load in our data depending on how our rep hours are calculated, and then constrain hourly (capacity * af) to be the specified % higher than the yearly peak load. This wouldn't involve generation at all.

I'm not sure how transmission losses or battery use factor into the demand calculation but we should look into it. We might want to somehow predict battery deployment or factor that into our hourly constraint. Maybe something like (capacity * af) - battery net load - transmission losses >= yearly peak load * (1+margin)

Ethan-Russell commented 1 year ago

I think I like your proposal. I'm going to break it down to see if I understand what is going on.

  1. Calculate an annual peak hourly load for the capacity market region, in MW. This could be the annual peak hourly load for our data year multiplied by a scaling factor related to the grid-wide load match, or load growth percentage. Multiply that peak hourly load by some sort of margin (either assume a default of 1.2 or something smarter for every capacity market region, or find a posted percent requirement). Probably multiply by transmission loss percentage here also? This would then be used as an input, probably into some sort of CapacityMarket modification.
  2. Make the CapacityMarket Modification, which will: a. make a constraint for every region for every hour of every year such that the sum of available capacity (capacity * af) is >= the capacity reserve requirement calculated in (1.) b. compute the shadow price of the capacity constraint for each hour. Not sure if capacity markets should be hourly or yearly. I intuitively think it should be yearly since capacity decisions are being made by the optimizer at a yearly level. That means we would need the max shadow price of the capacity constraints over each year, in dollars per MW of capacity. c. Transfer the funds to the generators, presumably from consumers? I would think this cost could get added to total_cost_prelim, which is the cost before the cost-of-service transfer is taken into account.

I'm also a bit uncertain about how to handle storage in this. Do we allow discharge capacity to count towards the capacity requirements, assuming that it would be available at the peak load times? Do we know how it is handled in capacity markets usually?

Ethan-Russell commented 1 year ago

According to Dan, 2 types of requirements

Dan thinks we can represent with a single mechanism, resembling the operating reserve requirements. Constraint for every hour like:

quickly available unused capacity (simple formula for each generator type) = required MW of operating reserve (constant input in every capacity zone, calculated prior to sim)

Quickly available unused capacity based on formula for generator types based on (pcap af - pgen) constant (lookup on gentype).

Dan doesn't think we need to worry about transmission constraints here.

Still need to think about hydropower and storage. Hydropower is an important resource for reserve requirements. Good for emergency situations. They are disproportionately provider of reserve requirements.

Voluntary demand response could get some credit for meeting reserve requirements as well. One way is to reduce operating reserve requirement by some amount in each hour to reflect the fact that some load is participating in some voluntary program where it is reduced in the event that operating reserves are activates.

Ethan-Russell commented 1 year ago

Needed deliverables:

sallyrobson commented 1 year ago

Meeting notes 6/22/23

Ethan-Russell commented 1 year ago

The problem with only having a single combined capacity market, as proposed by Dan last week, is that it would not reward keeping slow-ramping baseload capacity online, such as coal and nuclear, as Sally mentioned. It could also allow for strategic generation, where cheap-to-build, quickly dispatchable generators keep their generation down to generate more income from the reserve (Dallas brought up this point). We therefore need some sort of capacity constraint that constrains capacity scaled by either real availability factors or some gentype-specific average capacity factor.

This capacity constraint would be for all non-retired capacity, whether or not it is in use.

So I would think on the implementation side, we would need:

struct CapacityConstraint <: Modification
    name::Symbol
    filters::OrderedDict{Symbol}
    credit::Crediting
    requirement::Float64 # in MW for the region
end

struct OperatingReserve <: Modification
    name::Symbol
    filters::OrderedDict{Symbol}
    credit::Crediting
    requirement::Float64 # in MW, for the region
end
Ethan-Russell commented 1 year ago

E4ST team conversation 6/30

Concept: because we wouldn't have installed capacity reserve requirement, our electricity price at times of peak scarcity might be higher than if we did have installed capacity reserve requirement. The higher elec. price at time of scarcity would be compensation for the generators.

Question: would the electricity prices actually be higher without the capacity reserve requirement? Yes. At times of peak scarcity, the operating reserve makes it even harder to meet load, which would increase the energy price, AND increase the operating reserve price.

System operators give credit to generators in more sophisticated wav, via ELCC. This requires very sophisticated, iterative approach where we calculate ELCC then update credit, and iterate.

May be able to use differences in prices in investment model vs dispatch-only as the capacity reserve?

Crediting for wind and solar is tricky - there is a wide range which would have a big effect on capacity additions. Crediting decisions could have a very large effect on the outcome.

How important is the dispatchability constant for the operating reserves? If a generator can't provide reserves at the time of peak scarcity, the generator would be getting. Credit per available MWh would be close to the LMP, but a bit lower.

Ethan-Russell commented 1 year ago

For operating reserves, Dan and I went back and forth a bit on the definition of the dispatchability constant. We came up with the following definition:

percentage of available capacity that can be used for operating reserves

This is different than I had originally interpreted it, which was:

percentage of unused available capacity that can be used for operating reserves

This may result in needing a new variable for each reserve requirement for each generator for each year and hour (that's a lot of variables!!!) representing the amount of unused power contributing to the reserve requirement. We're still brainstorming ways to do this without the extra set of variables.

Ethan-Russell commented 1 year ago

From Dan on 7/1: [Saturday 1:41 PM] Shawhan, Daniel

Ethan and I kept talking about representation of reserves along with energy. Under that approach, I think that operating reserve amount provided by each EGU has to be an optimization variable, which makes the optimization problem a lot larger. What I'm thinking about now is whether instead of having a constraint that says the amount of operating reserves provided in each hour has to equal required amount of reserves, we can instead have a constraint that says that in each hour there needs to be available capacity equal to load times (1+operating reserve requirement). I think that is actually the structure I had in mind. I think it would not require adding operating reserve amount provided by each EGU as an optimization variable. We should think about whether this would get the prices about right. I think it would result in a high price for available capacity and not very high prices for energy (energy prices pretty much based on short run marginal cost of generation), which I think is a realistic outcome. So I think it would get the prices about right. Ethan, since you are farthest into this already, would you like to either write it out and see whether you think it would be good, or plan to talk more with me about it, or both?

Ethan-Russell commented 1 year ago

@DanShawhan here is an attempt to capture those equations. Let me know what you think.

Method 1 with dispatchable variables

p_{dis_{g,h}} \leq p_{cap_{g}} a_{g,h} d_g
p_{cap_{g}} a_{g,h} \geq p_{gen_{g,h}} + p_{dis_{g,h}}
\sum_{g \in G_{region}} p_{dis_{g,h}} \geq p_{res_{region}}

Method 2: available capacity constraint

\sum_{g \in G_{region}} p_{cap_{g}} a_{g,h} \geq (1+p_{res_{region}})\sum_{b \in B_{region}} p_{load_{b,h}}

This would no longer factor in the dispatchability of the generator, correct? So I think this would be sort of like an hourly capacity reserve requirement, where the crediting is based on the true availability factor, and the requirement is based on the true load plus the requirement. Dan, does that match up with your intuition?

Method 3: available, unused capacity constraint

\sum_{g \in G_{region}} \left( p_{cap_{g}} a_{g,h} - p_{gen_{g,h}} \right) \geq \left(1+p_{res_{region}}\right)\sum_{b \in B_{region}} p_{load_{b,h}}
Ethan-Russell commented 1 year ago

Method 2: Available Capacity Requirement explanation:

Method 3: Available, unused capacity requirement

Ethan-Russell commented 1 year ago

Capturing some conversation from teams:

from Dan:

Ethan and I discussed two different ways of representing reserve requirements that would I think actually be pretty similar in their effects, a capacity requirement way and an operating reserve requirement way

Reserve requirement pluses

Capacity requirement pluses

Try to devel explan of how this would repr both capac and op rsv payments

"To represent reserve requirements, we use a constraint that in every region, in every representative hour/time slice/situation, the amount of available capacity must equal the electricity consumed (or we might choose to use nominal electricity consumed) plus a reserve margin."

I think we can just leave it at this for now. I think we are representing the capacity reserve requirement more closely than the operating reserve requirement, but I think that is OK because I think the total payments for operating reserves are probably a lot less than for capacity reserves, and for some generators there is a cost associated with providing reserves, e.g. they have to burn fuel to keep the unit spinning and/or have to pay staff to be standing by. Finally, we really are representing both in the sense that in reality the combined profits from the capacity and operating reserve markets must be enough to induce enough capacity to exist. We represent that with a single price, the capacity price. Our capacity price is higher because we don't have a second reserve market representation.

An imperfection of our representation is that in reality the units that provide operating reserves more, e.g. hydro and gas units and storage, earn somewhat more from the two reserves markets combined. Omitting that is not ideal, but I think it is sufficiently minor that it is fine to omit. Also, it would make the problem a lot larger and we couldn’t represent it all that well.

Ethan-Russell commented 1 year ago

From me:

I think your explanation is really good, thanks for thinking it through and making it more concise and I think I'm on board.

You mentioned storage in the comment above. Do you think storage discharge capacity should count? Possibly with an "availability factor" of 0.5? Or is it safe to assume that the storage can have a high availability factor of 1, since it is likely that storage would be available to discharge during the hours of peak scarcity? That would assume that the capacity constraint would be binding less than half the time (or some other fraction of time depending on the ratio of charge time vs discharge time).

Then with awarding credit, do we award the shadow price for each hour based on the shadow price of that hour, or should we have a clearing price for available capacity? If we do the latter, we may want to reduce the credits received for storage

Ethan-Russell commented 1 year ago

Done with my replies now. Ethan's Qs are not italic. My replies are italic.

You mentioned storage in the comment above. Do you think storage discharge capacity should count?

Yes.

Possibly with an "availability factor" of 0.5? Or is it safe to assume that the storage can have a high availability factor of 1, since it is likely that storage would be available to discharge during the hours of peak scarcity?

A few years ago, NYISO calculated reserve credit values for storage based on its duration. I don't remember the credit proportion for 4-hour storage. Maybe about 75%? I'm thinking we can plan to use a proportion based on the credit proportion that system operators are using.

That would assume that the capacity constraint would be binding less than half the time (or some other fraction of time depending on the ratio of charge time vs discharge time).

Yes. Regardless of how we credit storage, in each region I expect the capacity requirement to be binding in only about 2 representative hours, and I expect those to be low-frequency representative hours.

Then with awarding credit, do we award the shadow price for each hour based on the shadow price of that hour, or should we have a clearing price for available capacity? If we do the latter, we may want to reduce the credits received for storage

Not certain I understand correctly, but I think I do. I think that if we want to calculate the total annual capacity payment earnings of an EGU, we should in each repr hour multiply its available capacity by the capacity shadow price in its capacity requirement region, then sum that across all hours. If we want annual capacity earnings for a group of resources, we sum up across all those resources. Does that answer your question?

Ethan-Russell commented 1 year ago

I'm good with all of the above. Just to make sure we're on the same page for the final comment you made regarding the total annual capacity payment earnings of an EGU, I've added a clarifying phrase in bold to your statement, quoted. Let me know if you agree with it:

we should in each repr hour multiply its available capacity by the capacity shadow price in its capacity requirement region for that representative hour, then sum that across all hours. If we want annual capacity earnings for a group of resources, we sum up across all those resources

@DanShawhan does that make sense? I think I see how to implement what we have discussed above, but I wanted to make sure this is what you want before I go too deeply into it. I can also wait if you and Mrunal need to have more conversations about the reserve req representation that other modelers use.

DanShawhan commented 1 year ago

I agree with that addition.

Ethan-Russell commented 1 year ago

We will go forward with the hourly capacity reserve requirements outlined above

Ethan-Russell commented 1 year ago

For storage, see this website for more information

image

@DanShawhan right now, our buildable storage has a maximum pcap to build of 1000 MW. Do you think I should go ahead and use the credit curve for < 1000 MW for all our storage units?

Ethan-Russell commented 1 year ago

@DanShawhan 2 more questions:

  1. Do you think it would be better for the right hand side of the reserve margin constraint to be in terms of the nominal load, or the served load? They should both be fairly easy to implement. If you think the served load, does that include power served to storage units?
  2. Is it more helpful to specify the reserve requirement in terms of a percent of the served/nominal load, or as a constant MW power value?