add new link oil boiler

* prepare_sector_network:
    - add link for oil boiler in function add_industry()
    - add function for partitioning clusters into different heat node types

* config.yaml: add option for oil_boiler

* costs.csv: add costs for oil boiler
This commit is contained in:
d-fine dev 2020-04-09 14:58:03 +02:00
parent 1e4616fb16
commit a4db176458
3 changed files with 42 additions and 18 deletions

View File

@ -72,6 +72,7 @@ sector:
'tes' : True
'tes_tau' : 3.
'boilers' : True
'oil_boilers': True
'chp' : True
'solar_thermal' : True
'solar_cf_correction': 0.788457 # = >>> 1/1.2683

View File

@ -239,3 +239,7 @@ HVDC submarine,2030,FOM,2,%/year,Hagspiel
HVDC inverter pair,2030,investment,150000,EUR/MW,Hagspiel
HVDC inverter pair,2030,lifetime,40,years,Hagspiel
HVDC inverter pair,2030,FOM,2,%/year,Hagspiel
decentral oil boiler,2030,investment,156.0140915953699,EUR/kWth,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf) (+eigene Berechnung)
decentral oil boiler,2030,lifetime,20.0,years,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)
decentral oil boiler,2030,FOM,2.0,%/year,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)
decentral oil boiler,2030,efficiency,0.9,per unit,Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)

1 technology year parameter value unit source
239 HVDC inverter pair 2030 investment 150000 EUR/MW Hagspiel
240 HVDC inverter pair 2030 lifetime 40 years Hagspiel
241 HVDC inverter pair 2030 FOM 2 %/year Hagspiel
242 decentral oil boiler 2030 investment 156.0140915953699 EUR/kWth Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf) (+eigene Berechnung)
243 decentral oil boiler 2030 lifetime 20.0 years Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)
244 decentral oil boiler 2030 FOM 2.0 %/year Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)
245 decentral oil boiler 2030 efficiency 0.9 per unit Palzer thesis (https://energiesysteme-zukunft.de/fileadmin/user_upload/Publikationen/PDFs/ESYS_Materialien_Optimierungsmodell_REMod-D.pdf)

View File

@ -757,25 +757,9 @@ def add_heat(network):
print("adding heat")
sectors = ["residential","services"]
sectors = ["residential", "services"]
#stores the different groups of nodes
nodes = {}
#rural are areas with low heating density and individual heating
#urban are areas with high heating density
#urban can be split into district heating (central) and individual heating (decentral)
for sector in sectors:
nodes[sector + " rural"] = pop_layout.index
if options["central"]:
urban_decentral_ct = pd.Index(["ES","GR","PT","IT","BG"])
nodes[sector + " urban decentral"] = pop_layout.index[pop_layout.ct.isin(urban_decentral_ct)]
else:
nodes[sector + " urban decentral"] = pop_layout.index
#for central nodes, residential and services are aggregated
nodes["urban central"] = pop_layout.index ^ nodes["residential urban decentral"]
nodes = create_nodes_for_heat_sector()
#NB: must add costs of central heating afterwards (EUR 400 / kWpeak, 50a, 1% FOM from Fraunhofer ISE)
@ -1043,6 +1027,24 @@ def add_heat(network):
capital_cost=options['retrofitting-cost_factor']*costs.at['retrofitting II','fixed']*square_metres/(options['retroII-fraction']*space_peak))
def create_nodes_for_heat_sector():
sectors = ["residential", "services"]
# stores the different groups of nodes
nodes = {}
# rural are areas with low heating density and individual heating
# urban are areas with high heating density
# urban can be split into district heating (central) and individual heating (decentral)
for sector in sectors:
nodes[sector + " rural"] = pop_layout.index
if options["central"]:
urban_decentral_ct = pd.Index(["ES", "GR", "PT", "IT", "BG"])
nodes[sector + " urban decentral"] = pop_layout.index[pop_layout.ct.isin(urban_decentral_ct)]
else:
nodes[sector + " urban decentral"] = pop_layout.index
# for central nodes, residential and services are aggregated
nodes["urban central"] = pop_layout.index ^ nodes["residential urban decentral"]
return nodes
def add_biomass(network):
@ -1268,6 +1270,23 @@ def add_industry(network):
capital_cost=0.,
marginal_cost=costs.at["oil",'fuel'])
if options["oil_boilers"]:
nodes_heat = create_nodes_for_heat_sector()
for name in ["residential rural", "services rural", "residential urban decentral", "services urban decentral"]:
network.madd("Link",
nodes_heat[name] + " " + name + " oil boiler",
p_nom_extendable=True,
bus0=["Fischer-Tropsch"] * len(nodes_heat[name]),
bus1=nodes_heat[name] + " " + name + " heat",
bus2="co2 atmosphere",
carrier=name + " oil boiler",
efficiency=costs.at['decentral oil boiler', 'efficiency'],
efficiency2=costs.at['oil', 'CO2 intensity'],
capital_cost=costs.at['decentral oil boiler', 'efficiency'] * costs.at[
'decentral oil boiler', 'fixed'])
network.madd("Link",
nodes + " Fischer-Tropsch",
bus0=nodes + " H2",