Skip to content
Snippets Groups Projects
Unverified Commit 7847e543 authored by Lavinia Baumstark's avatar Lavinia Baumstark Committed by GitHub
Browse files

Merge pull request #103 from robertpietzcker/develop

Use the updated PV investment costs for 2020, and reduce floor cost a…
parents b665b95b 1481e06d
No related branches found
No related tags found
No related merge requests found
......@@ -287,12 +287,12 @@ loop(te$(sameas(te,"spv") OR sameas(te,"csp") OR sameas(te,"wind")),
vm_cap.lo("2015",regi,te,"1") = 0.95 * p_histCap("2015",regi,te)$(p_histCap("2015",regi,te) gt 1e-10);
vm_cap.up("2015",regi,te,"1") = 1.05 * p_histCap("2015",regi,te)$(p_histCap("2015",regi,te) gt 1e-10);
*additional bound on 2020 expansion: at least yearly as much as in 2016,2017 average
vm_deltaCap.lo("2020",regi,te,"1") = (p_histCap("2017",regi,te)-p_histCap("2015",regi,te))/2;
vm_deltaCap.lo("2020",regi,te,"1") = (p_histCap("2018",regi,te)-p_histCap("2015",regi,te))/3;
);
vm_cap.up("2015",regi,"csp",'1') = 1e-5 + 1.05 * vm_cap.lo("2015",regi,"csp","1"); !! allow offset of 10MW even for countries with no CSP installations to help the solver
*RR* set lower bounds to spv installed capacity in 2020 to reflect the massive deployment in recent years to 2017 historical values plus a conservative estimation of expected additional deployment until 2020 (+10% per year).
vm_cap.lo("2020",regi,"spv","1")$(p_histCap("2017",regi,"spv")) = p_histCap("2017",regi,"spv")*(1+0.1)**3;
*RR* set lower bounds to spv installed capacity in 2020 to reflect the massive deployment in recent years to 2018 historical values plus a conservative estimation of expected additional deployment until 2020 (+10% per year).
vm_cap.lo("2020",regi,"spv","1")$(p_histCap("2018",regi,"spv")) = p_histCap("2018",regi,"spv")*(1+0.1)**2;
*CB* additional upper bound on 2020 deployment: doubling of historic rate plus 2 GW for solar and wind, and 500 MW for CSP
loop(regi,
......
......@@ -753,7 +753,7 @@ loop(ttot$(ttot.val ge 2005),
p_adj_coeff(ttot,regi,"gasftcrec") = 0.8;
p_adj_coeff(ttot,regi,"coalftrec") = 0.6;
p_adj_coeff(ttot,regi,"coalftcrec") = 0.8;
p_adj_coeff(ttot,regi,"spv") = 0.05;
p_adj_coeff(ttot,regi,"spv") = 0.1;
p_adj_coeff(ttot,regi,"wind") = 0.1;
p_adj_coeff(ttot,regi,"dac") = 0.8;
p_adj_coeff(ttot,regi,'apCarH2T') = 1.0;
......@@ -874,6 +874,10 @@ pm_data(regi,"floorcost",teLearn(te)) = pm_data(regi,"inco0",te) - pm_data(regi,
*** In case regionally differentiated investment costs should be used the corresponding entries are revised:
$if %cm_techcosts% == "REG" pm_data(regi,"inco0",teRegTechCosts) = p_inco0("2015",regi,teRegTechCosts);
loop(teRegTechCosts$(sameas(teRegTechCosts,"spv") ),
$if %cm_techcosts% == "REG" pm_data(regi,"inco0",teRegTechCosts) = p_inco0("2020",regi,teRegTechCosts);
);
$if %cm_techcosts% == "REG" pm_data(regi,"incolearn",teLearn(te)) = pm_data(regi,"inco0",te) - pm_data(regi,"floorcost",te) ;
......@@ -889,12 +893,19 @@ Execute_Loadpoint 'input' p_capCum = vm_capCum.l;
*** in case the technologies did not exist in the gdx, set to a non-zero value
p_capCum(t,regi,te)$( NOT p_capCum(t,regi,te)) = sm_eps;
display p_capCum;
*RP overwrite p_capCum by exogenous values for 2020
p_capCum("2020",regi,"spv") = 0.6 / card(regi2); !! roughly 600GW in 2020
display p_capCum;
pm_data(regi,"learnMult_woFC",teLearn(te)) = pm_data(regi,"incolearn",te)/sum(regi2,(pm_data(regi2,"ccap0",te))**(pm_data(regi,"learnExp_woFC",te)));
*RP* adjust parameter learnMult_woFC to take floor costs into account
$if %cm_techcosts% == "GLO" pm_data(regi,"learnMult_wFC",teLearn(te)) = pm_data(regi,"incolearn",te)/(sum(regi2,pm_data(regi2,"ccap0",te))**pm_data(regi,"learnExp_wFC",te));
*NB* this is the correction of the original parameter calibration
$if %cm_techcosts% == "REG" pm_data(regi,"learnMult_wFC",teLearn(te)) = pm_data(regi,"incolearn",te)/(sum(regi2,p_capCum("2015",regi2,te))**pm_data(regi,"learnExp_wFC",te));
loop(teRegTechCosts$(sameas(teRegTechCosts,"spv") ),
$if %cm_techcosts% == "REG" pm_data(regi,"learnMult_wFC",teLearn(te)) = pm_data(regi,"incolearn",te)/(sum(regi2,p_capCum("2020",regi2,te))**pm_data(regi,"learnExp_wFC",te));
);
***parameter calculation for global level, that regional values can gradually converge to
fm_dataglob("learnMult_wFC",teLearn(te)) = fm_dataglob("incolearn",te)/(fm_dataglob("ccap0",te) **fm_dataglob("learnExp_wFC", te));
......
......@@ -422,35 +422,35 @@ q_costTeCapital(t,regi,teLearn) ..
** fm_dataglob("learnExp_wFC",teLearn)
)
)$( t.val le 2005 )
*** special treatment for 2010: start divergence of regional values by using a
*** 50/50-split global 2005 to regional 2015 in order to phase-in the observed 2015 regional
*** special treatment for 2010, 2015: start divergence of regional values by using a
*** t-split of global 2005 to regional 2020 in order to phase-in the observed 2020 regional
*** variation from input-data
+ ( 0.5 * fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum("2005",regi2,teLearn))
+ pm_capCumForeign("2005",regi,teLearn)
+ ( (2020 - t.val)/15 * fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
)
** fm_dataglob("learnExp_wFC",teLearn)
+ 0.5 * pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum("2015",regi2,teLearn))
+ pm_capCumForeign("2015",regi,teLearn)
+ (t.val - 2005)/15 * pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
)
** pm_data(regi,"learnExp_wFC",teLearn)
)$( t.val eq 2010 )
)$( (t.val gt 2005) AND (t.val lt 2020) )
*** assuming linear convergence of regional learning curves to global values until 2050
+ ( (pm_ttot_val(t) - 2015) / 35 * fm_dataglob("learnMult_wFC",teLearn)
+ ( (pm_ttot_val(t) - 2020) / 30 * fm_dataglob("learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
)
** fm_dataglob("learnExp_wFC",teLearn)
+ (2050 - pm_ttot_val(t)) / 35 * pm_data(regi,"learnMult_wFC",teLearn)
+ (2050 - pm_ttot_val(t)) / 30 * pm_data(regi,"learnMult_wFC",teLearn)
* ( sum(regi2, vm_capCum(t,regi2,teLearn))
+ pm_capCumForeign(t,regi,teLearn)
)
** pm_data(regi,"learnExp_wFC",teLearn)
)$( t.val ge 2015 AND t.val le 2050 )
)$( t.val ge 2020 AND t.val le 2050 )
*** globally harmonized costs after 2050
+ ( fm_dataglob("learnMult_wFC",teLearn)
......
......@@ -70,9 +70,9 @@ inco0 3600 1200 2700 2400 5160
constrTme 4 1 5 1 1 1 3
mix0
eta 1.00 1.00 1.00 1.00 1.00 1.00 1.00
omf 0.04 0.06 0.025 0.02 0.015 0.025
omf 0.04 0.06 0.025 0.02 0.020 0.025
lifetime 30 25 130 25 30 25 30
incolearn 1500 4910 8760
incolearn 1500 5060 8760
ccap0 0.06 0.005 0.0002
learn 0.108 0.207 0.103
luse 0.09 0.021
......
......@@ -70,9 +70,9 @@ inco0 3600 1200 2700 2400 5160
constrTme 4 1 5 1 1 1 3
mix0
eta 1.00 1.00 1.00 1.00 1.00 1.00 1.00
omf 0.04 0.06 0.025 0.02 0.015 0.025
omf 0.04 0.06 0.025 0.02 0.020 0.025
lifetime 30 25 130 25 30 25 30
incolearn 1700 5010 8960
incolearn 1700 5110 8960
ccap0 0.06 0.005 0.0002
learn 0.108 0.207 0.103
luse 0.09 0.021
......
......@@ -70,9 +70,9 @@ inco0 3600 1200 2700 2400 5160
constrTme 4 1 5 1 1 1 3
mix0
eta 1.00 1.00 1.00 1.00 1.00 1.00 1.00
omf 0.04 0.06 0.025 0.02 0.015 0.025
omf 0.04 0.06 0.025 0.02 0.020 0.025
lifetime 30 25 130 25 30 25 30
incolearn 1300 4460 8290
incolearn 1300 4910 8290
ccap0 0.06 0.005 0.0002
learn 0.084 0.17 0.08
luse 0.09 0.021
......@@ -136,12 +136,12 @@ omv 36 76
lifetime 40 40
+ storspv storwind storcsp
inco0 10800 4180 3310
inco0 18000 7500 5400
mix0 0.00 0.00 0.00
eta 0.67 0.78 0.72
omf 0.02 0.02 0.02
lifetime 25 25 25
incolearn 7490 2880 2300
incolearn 12000 4800 3800
ccap0 0.00005 0.00005 0.00005
learn 0.10 0.10 0.10
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment