How to build a share constraint?
#1
Hello everyone,
I have a multiregional model of the Italian energy system (with 20 regions)
My goal is to build a constraint to impose a minimum quota of electricity production from renewable plants on the total electricity production (cumulative production of all regions).
I built this constraint (attached file) by imposing a minimum production of electricity from renewable sources (sum of all the regions) and it works.


How should I modify this constraint to set a % (e.g. 40% of total electricity production from all 20 regions) instead of the absolute value?


Thank you very much for your help.

Fabio


Attached Files Thumbnail(s)
   
Reply
#2
Well, as you seem to be using VEDA, I think you must have obtained the VEDA DEMO model as well. Please look at the examples in that DEMO model (Scen_UCTest.xls).  There is a comparable example (Share of a group of processes within a market ) right in the first sheet (Simple UC).
Reply
#3
(03-12-2020, 07:31 PM)Antti-L Wrote: Well, as you seem to be using VEDA, I think you must have obtained the VEDA DEMO model as well. Please look at the examples in that DEMO model (Scen_UCTest.xls).  There is a comparable example (Share of a group of processes within a market ) right in the first sheet (Simple UC).
Thanks Antti-L, I looked at the constraint but from what I understand written in this way it would impose the % on each single region while I would like a constraint on the overall production.
To explain myself better, I don't want the % of RES production in region A, region B and region C equal to 40%.
I would like the sum of the electricity production from RES to be 40% (perhaps in region A it is 70% while in B it is 5% and in C it is 20%, decided by optimization)
Reply
#4
You can just replace UC_RHSRTS by UC_RHST, and then the constraint is defined over regions.
And of course also set at the top:
~UC_Sets: R_E:
~UC_Sets: R_S: Allregions

Or do you think I am missing something?
Reply
#5
(03-12-2020, 07:50 PM)Antti-L Wrote: You can just replace UC_RHSRTS by UC_RHST, and then the constraint is defined over regions.
And of course also set at the top:
~UC_Sets: R_E:
~UC_Sets: R_S: Allregions

Or do you think I am missing something?

Thanks Antti, 
I tried but even in this way the % is still attributed to each single region and not to the sum of the regions. When I analyze the constraint with UC MASTER in VEDA FE I can see that the UC_COMPRD attribute (with the % parameter) is defined on LHS for each single region and not on their sum.
Reply
#6
Yes, of course the UC_COMPRD (with the % parameter) is defined on the LHS for each single region and not on their sum. But all the terms on the LHS and RHS are summed over regions. So for a minimum renewable share constraint we get (simplified, for each period t):

  SUM((r,p,c), VAR_FLO(r,t,p,c)) ≥ SUM((r,c), Share(t) × VAR_COMPRD(r,t,c))

Here, c is member of the electricity commodities. This translates into: Production of renewable electricity over all regions must be at least Share(t) × Production of all electricity produced over all regions.

So, as far as I can see it is exactly as you would want?

To put this in another way:  Here you just need to define the same Share-% value for the UC_COMPRD coefficient in all regions, and not define different values for each region.  Easy enough?
Reply
#7
(03-12-2020, 09:55 PM)Antti-L Wrote: Yes, of course the UC_COMPRD (with the % parameter) is defined on the LHS for each single region and not on their sum. But all the terms on the LHS and RHS are summed over regions. So for a minimum renewable share constraint we get (simplified, for each period t):

  SUM((r,p,c), VAR_FLO(r,t,p,c))  ≥  SUM((r,c), Share(t) × VAR_COMPRD(r,t,c))

Here, c is member of the electricity commodities. This translates into: Production of renewable electricity over all regions must be at least Share(t) × Production of all electricity produced over all regions.

So, as far as I can see it is exactly as you would want?

To put this in another way:  Here you just need to define the same Share-% value for the UC_COMPRD coefficient in all regions, and not define different values for each region.  Easy enough?

Thanks. 
if I understand correctly, by defining the constraint in this way, I impose the same LO share in all regions while there is no way to impose this % only on the sum, leaving the distribution of the constraint among the regions to the optimization. If I want a national share of renewable (e.g LO - 40%), each region of my model will have at least a 40% share. Right?
Reply
#8
Ok, it seems you still don't quite understand. The constraint is defined over all regions, and so it defines a lower bound on the overall share of renewable electricity in the total production of electricity over all regions.

It does not impose any constraint on individual regions, only on the aggregate share over all regions...  So why do you keep on saying that "each region of my model will have at least a 40% share."  Could you please explain how that would be possible, with a single constraint by period over all regions?
Reply
#9
(04-12-2020, 04:11 PM)Antti-L Wrote: Ok, it seems you still don't quite understand. The constraint is defined over all regions, and so it defines a lower bound on the overall share of renewable electricity in the total production of electricity over all regions.

It does not impose any constraint on individual regions, only on the aggregate share over all regions...  So why do you keep on saying that "each region of my model will have at least a 40% share."  Could you please explain how that would be possible, with a single constraint by period over all regions?

Sorry for the misunderstanding. I say this because when I analyze the constraint with VEDA-FE I see that the percentage is set for each region.
I have attached this constraint and it doesn't work like the first one that I built (with abosolute value of production).


Attached Files Thumbnail(s)
       
Reply
#10
Fabio> I say this because when I analyze the constraint with VEDA-FE I see that the percentage is set for each region.
Antti>  Yes, and so what?  The UC_COMPRD coefficients must be defined in each region if the share is to be calculated from the sum of VAR_COMPRD over all regions.

In the equation above I used Share(t) for simplicity. But of course there will be the UC_COMPRD coefficient(s).

  SUM((r,p,c), VAR_FLO(r,t,p,c))  ≥  SUM((r,c), Share(t) × VAR_COMPRD(r,t,c))
  SUM((r,p,c), VAR_FLO(r,t,p,c))  ≥  SUM((r,c), −UC_COMPRD(r,t,c) × VAR_COMPRD(r,t,c))

Can you not see how this simple constraint works? It imposes a minimum share only on the sum over regions, leaving the distribution of renewable electricity among the regions to the optimization.

Fabio> It doesn't work like the first one that I built (with abosolute value of production).
Antti>  Yes, a share constraint is mathematically different from an absolute bound. So what is your point here?

Do I need to make a demo model for you to demonstrate the share constraint, to convince you?
BTW, you can see the constraint formulation yourself in the GAMS listing file if you put LIMROW=999999.

Additional remark: Note also that, depending on your model and what you mean by "production", using just VAR_COMPRD in the equation may not be what you want after all.  Although VAR_COMPRD represents the total commodity production, it may well include also outputs from storage processes and import processes, if the model includes such for the commodity in question. Should those flows be excluded from the total production, you would need to adjust the constraint definition accordingly (either by subtracting/eliminating any unwanted flows from the VAR_COMPRD totals, or by formulating the whole constraint on the basis of VAR_FLO variables, whichever seems more convenient).
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)