junglegobs / ASoSEPOC

Interaction betwen resource adequacy and security of supply task in the EPOC project.
1 stars 0 forks source link

Feasibility issues when constraining reserve shedding limit #4

Closed junglegobs closed 2 years ago

junglegobs commented 2 years ago

Again I'm getting feasibility issues, I just hadn't noticed them since the reserve shedding limit constraint isn't binding even for very low levels, i.e. it only becomes binding for values < 0.1.

Some thoughts:

junglegobs commented 2 years ago

For day 214, RSL=0.05, infeasibility if the highest reserve level is included in the redispatch, feasible otherwise.

Tried the same for RSL=0.02 and no reserve level redispatch, no reserves are shed. So looking good...

junglegobs commented 2 years ago

Running all the days for RSL=0.02, there seems to be no issue. So cool! I just need to wrap my head around why the network re-dispatch constraints could lead to infeasibilities...

junglegobs commented 2 years ago

I noticed a mistake in my node injection relationship:

@constraint(gep.model, [n=N,l=L⁻,y=Y,p=P,t=T],
    rLInj⁻[n,l,y,p,t] == 
        sum(rL⁻[rpn,l,y,p,t] for rpn in N2RPN[n])
)
# Should have been
@constraint(gep.model, [n=N,l=L⁻,y=Y,p=P,t=T],
    rLInj⁻[n,l,y,p,t] == 
        sum(rL⁻[rpn,l,y,p,t] for rpn in N2RPN[n])
        + rsL⁻[n,l,y,p,t]
)

This has now been fixed, however I am a little confused as to how this would have led to infeasibilities.

junglegobs commented 2 years ago

I think there's actually something fundamentally wrong in my formulation... The sum of the additional injections over the network, rLInj⁻ or rLInj+, should be equal to 0, not to D- or D+.

image

I think the issue is that I need to define an additional free variable which is some realisation of the net load forecast error on a particular node. So.... I should do that :D

junglegobs commented 2 years ago

My new formulation appears to work for day 214, RSL=0.06 and L=1:10, woooo! Needs more investigation, but let's see.

junglegobs commented 2 years ago
[ Info: Running GEPM (save path is /home/gobs/Desktop/ASoSEPOC/data/sims/DUCPR_reserve_shedding_sensitivity/309/RSL=0.0_L=1:10)...
...
Optimal solution found (tolerance 1.00e-04)
Best objective 2.448973798967e+06, best bound 2.448827141540e+06, gap 0.0060%

Wooo! This is the day with the most scarcity I should add.

junglegobs commented 2 years ago

However, no reserves appear to be shed anymore, at least for this day, and this is whether or not I include the levels in the redispatch.

junglegobs commented 2 years ago

I think the current formulation (see the .pdf in papers) (almost) makes sense, however I need to be careful with my signs for my downwards reserves.

junglegobs commented 2 years ago

I think I can close this as I fixed the issue