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:
parent
1e4616fb16
commit
a4db176458
@ -72,6 +72,7 @@ sector:
|
|||||||
'tes' : True
|
'tes' : True
|
||||||
'tes_tau' : 3.
|
'tes_tau' : 3.
|
||||||
'boilers' : True
|
'boilers' : True
|
||||||
|
'oil_boilers': True
|
||||||
'chp' : True
|
'chp' : True
|
||||||
'solar_thermal' : True
|
'solar_thermal' : True
|
||||||
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
||||||
|
@ -239,3 +239,7 @@ HVDC submarine,2030,FOM,2,%/year,Hagspiel
|
|||||||
HVDC inverter pair,2030,investment,150000,EUR/MW,Hagspiel
|
HVDC inverter pair,2030,investment,150000,EUR/MW,Hagspiel
|
||||||
HVDC inverter pair,2030,lifetime,40,years,Hagspiel
|
HVDC inverter pair,2030,lifetime,40,years,Hagspiel
|
||||||
HVDC inverter pair,2030,FOM,2,%/year,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)
|
||||||
|
|
@ -757,25 +757,9 @@ def add_heat(network):
|
|||||||
|
|
||||||
print("adding heat")
|
print("adding heat")
|
||||||
|
|
||||||
sectors = ["residential","services"]
|
sectors = ["residential", "services"]
|
||||||
|
|
||||||
#stores the different groups of nodes
|
nodes = create_nodes_for_heat_sector()
|
||||||
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"]
|
|
||||||
|
|
||||||
#NB: must add costs of central heating afterwards (EUR 400 / kWpeak, 50a, 1% FOM from Fraunhofer ISE)
|
#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))
|
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):
|
def add_biomass(network):
|
||||||
@ -1268,6 +1270,23 @@ def add_industry(network):
|
|||||||
capital_cost=0.,
|
capital_cost=0.,
|
||||||
marginal_cost=costs.at["oil",'fuel'])
|
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",
|
network.madd("Link",
|
||||||
nodes + " Fischer-Tropsch",
|
nodes + " Fischer-Tropsch",
|
||||||
bus0=nodes + " H2",
|
bus0=nodes + " H2",
|
||||||
|
Loading…
Reference in New Issue
Block a user