How to build a share constraint? - Printable Version +- IEA-ETSAP Forum ( https://iea-etsap.org/forum)+-- Forum: Model Generators ( https://iea-etsap.org/forum/forumdisplay.php?fid=2)+--- Forum: TIMES ( https://iea-etsap.org/forum/forumdisplay.php?fid=8)+--- Thread: How to build a share constraint? ( /showthread.php?tid=193) |

How to build a share constraint? - fabio.lanati - 03-12-2020
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 RE: How to build a share constraint? - Antti-L - 03-12-2020
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). RE: How to build a share constraint? - fabio.lanati - 03-12-2020
(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) RE: How to build a share constraint? - Antti-L - 03-12-2020
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? RE: How to build a share constraint? - fabio.lanati - 03-12-2020
(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. RE: How to build a share constraint? - Antti-L - 03-12-2020
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? RE: How to build a share constraint? - fabio.lanati - 04-12-2020
(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? RE: How to build a share constraint? - Antti-L - 04-12-2020
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? RE: How to build a share constraint? - fabio.lanati - 04-12-2020
(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). RE: How to build a share constraint? - Antti-L - 04-12-2020
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). |