pencleanenergy / MATCH-model

MATCH model for planning time-coincident clean energy portfolios
GNU Affero General Public License v3.0
27 stars 10 forks source link

Prevent overbuilding of negatively-priced generators #52

Closed grgmiller closed 2 years ago

grgmiller commented 2 years ago

As noted in commit 2020.09.22 (Version 0.3.0) (https://github.com/grgmiller/SWITCH247/commit/2454e18af657a88ae796e04ae5808a614327578a), there is an issue when a generator's weighted average Pnode revenue is greater than its PPA cost, because it means that the generator will have a net negative cost, and the model will want to build as much of it as possible (leading to an unbounded problem if the generator capacity is not constrained). At the time, we had dealt with this by removing the Pnode revenue from excess generation from the objective function, in order to penalize building more than was needed to meet load. We added this excess Pnode revenue back into the cost in the summary report.

However, there are concerns that excluding this from the objective function could lead to sub-optimal outcomes, or that this puts a very large penalty on excess generation. It could also lead to strange behavior when nodal prices are negative, becuase it incentivizes artificially pushing DispatchGen to ExcessGen to avoid paying to inject the power into the grid, which then causes uncecessary system power consumption.

One alternative approach could be to identify the generators that are at risk of negative pricing and put a hard constraint on the amount of excess generation that is allowed from these generators.

One challenge with this approach is identifying the generators that are at risk of negative pricing. It is simple enough to calculate the weighted average Pnode revenue and PPA cost based on the variable capacity factor, but if anything causes the plant's VCF to change (for example by dispatching economic curtailment, or if it is a hybrid paired with storage), then the price can go negative. One way to screen for this would be to pre-simulate curtailment and storage dispatch.

Curtailment could be pre-modeled by assuming that 2% of generation from the lowest cost hours would be curtailed. Screening the storage would likely require running a simple linear program. But this may not be necessary

We also currently only check variable generators, but it is possible that storage could be priced low enough that it earns more arbitrage revenue than its capacity cost. That has not yet been an issue, but something to look for.

grgmiller commented 2 years ago

Exclude Pnode revenue approach

Advantages

Cons

What if we just discount the Pnode price: that would be like only allowing excess generation if it were a really good deal

grgmiller commented 2 years ago

Why penalize excess gen at all?

Setting a flat penalty

Advantages

Disadvantages

Potential options for penalty magnitude:

grgmiller commented 2 years ago

Congestion cost approach: calculate the delivery cost of delivering energy to the DLAP. In reality we only pay for dispatched rather than excess, but pricing this way in the model would create an incentive to have excess generation, since it would be cheaper than regular generation.

What if we charge delivery cost on all generation? Makes all generation more expensive.

grgmiller commented 2 years ago

Implemented a flat penalty on excessgen