complete methanol for shipping

This commit is contained in:
Fabian Neumann 2022-12-03 12:22:05 +01:00
parent 7208d96039
commit 0c62bfc9ee
2 changed files with 104 additions and 80 deletions

View File

@ -193,20 +193,15 @@ sector:
agriculture_machinery_electric_share: 0 agriculture_machinery_electric_share: 0
agriculture_machinery_fuel_efficiency: 0.7 # fuel oil per use agriculture_machinery_fuel_efficiency: 0.7 # fuel oil per use
agriculture_machinery_electric_efficiency: 0.3 # electricity per use agriculture_machinery_electric_efficiency: 0.3 # electricity per use
shipping_methanol: true
MWh_MeOH_per_MWh_H2: 0.8787 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. MWh_MeOH_per_MWh_H2: 0.8787 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64.
MWh_MeOH_per_tCO2: 4.0321 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. MWh_MeOH_per_tCO2: 4.0321 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64.
MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64. MWh_MeOH_per_MWh_e: 3.6907 # in LHV, source: DECHEMA (2017): Low carbon energy and feedstock for the European chemical industry , pg. 64.
shipping_average_efficiency: 0.4 #For conversion of fuel oil to propulsion in 2011
shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands shipping_hydrogen_liquefaction: false # whether to consider liquefaction costs for shipping H2 demands
shipping_hydrogen_share: # 1 means all hydrogen FC shipping_hydrogen_share: 0
2020: 0 shippint_methanol_share: 1
2025: 0 shipping_oil_share: 0
2030: 0.05 shipping_methanol_efficiency: 0.46 # 10-15% higher https://www.iea-amf.org/app/webroot/files/file/Annex%20Reports/AMF_Annex_56.pdf, https://users.ugent.be/~lsileghe/documents/extended_abstract.pdf
2035: 0.15 shipping_oil_efficiency: 0.40 #For conversion of fuel oil to propulsion in 2011
2040: 0.3
2045: 0.6
2050: 1
time_dep_hp_cop: true #time dependent heat pump coefficient of performance time_dep_hp_cop: true #time dependent heat pump coefficient of performance
heat_pump_sink_T: 55. # Celsius, based on DTU / large area radiators; used in build_cop_profiles.py heat_pump_sink_T: 55. # Celsius, based on DTU / large area radiators; used in build_cop_profiles.py
# conservatively high to cover hot water and space heating in poorly-insulated buildings # conservatively high to cover hot water and space heating in poorly-insulated buildings

View File

@ -2139,6 +2139,19 @@ def add_industry(n, costs):
p_set=industrial_demand.loc[nodes, "hydrogen"] / 8760 p_set=industrial_demand.loc[nodes, "hydrogen"] / 8760
) )
shipping_hydrogen_share = get(options['shipping_hydrogen_share'], investment_year)
shipping_methanol_share = get(options['shipping_methanol_share'], investment_year)
shipping_oil_share = get(options['shipping_oil_share'], investment_year)
total_share = shipping_hydrogen_share + shipping_methanol_share + shipping_oil_share
if total_share != 1:
logger.warning(f"Total shipping shares sum up to {total_share*100}%, corresponding to increased or decreased demand assumptions.")
all_navigation = ["total international navigation", "total domestic navigation"]
p_set = pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 / 8760
if shipping_hydrogen_share:
if options["shipping_hydrogen_liquefaction"]: if options["shipping_hydrogen_liquefaction"]:
n.madd("Bus", n.madd("Bus",
@ -2164,7 +2177,18 @@ def add_industry(n, costs):
else: else:
shipping_bus = nodes + " H2" shipping_bus = nodes + " H2"
if options.get("shipping_methanol"): efficiency = options['shipping_oil_efficiency'] / costs.at["fuel cell", "efficiency"]
p_set_hydrogen = shipping_hydrogen_share * p_set * efficiency
n.madd("Load",
nodes,
suffix=" H2 for shipping",
bus=shipping_bus,
carrier="H2 for shipping",
p_set=p_set_hydrogen
)
if shipping_methanol_share:
n.madd("Bus", n.madd("Bus",
spatial.methanol.nodes, spatial.methanol.nodes,
@ -2173,7 +2197,6 @@ def add_industry(n, costs):
unit="MWh_LHV" unit="MWh_LHV"
) )
# methanolisation
n.madd( n.madd(
spatial.h2.locations + "methanolisation", spatial.h2.locations + "methanolisation",
bus0=spatial.h2.nodes, bus0=spatial.h2.nodes,
@ -2185,38 +2208,44 @@ def add_industry(n, costs):
capital_cost=costs.at["methanolisation", 'fixed'] * options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a capital_cost=costs.at["methanolisation", 'fixed'] * options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a
lifetime=costs.at["methanolisation", 'lifetime'], lifetime=costs.at["methanolisation", 'lifetime'],
efficiency=options["MWh_MeOH_per_MWh_H2"], efficiency=options["MWh_MeOH_per_MWh_H2"],
efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"], efficiency2=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"],
efficiency3=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"], efficiency3=- options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_tCO2"],
) )
all_navigation = ["total international navigation", "total domestic navigation"] efficiency = options["shipping_oil_efficiency"] / options["shipping_methanol_efficiency"]
efficiency = options['shipping_average_efficiency'] / costs.at["fuel cell", "efficiency"] p_set_methanol = shipping_methanol_share * p_set.sum() * efficiency
shipping_hydrogen_share = get(options['shipping_hydrogen_share'], investment_year)
p_set = shipping_hydrogen_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 * efficiency / 8760
n.madd("Load", n.madd("Load",
nodes, spatial.methanol.nodes,
suffix=" H2 for shipping", suffix=" shipping methanol",
bus=shipping_bus, bus=spatial.methanol.nodes,
carrier="H2 for shipping", carrier="shipping methanol",
p_set=p_set p_set=p_set_methanol,
) )
if shipping_hydrogen_share < 1: # CO2 intensity methanol based on stoichiometric calculation with 22.7 GJ/t methanol (32 g/mol), CO2 (44 g/mol), 277.78 MWh/TJ = 0.218 t/MWh
co2 = p_set_methanol / options["MWh_MeOH_per_tCO2"]
shipping_oil_share = 1 - shipping_hydrogen_share n.add("Load"
"shipping methanol emissions",
bus="co2 atmosphere",
carrier="shipping methanol emissions",
p_set=-co2,
)
p_set = shipping_oil_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum(axis=1) * 1e6 / 8760. if shipping_oil_share:
p_set_oil = shipping_oil_share * p_set.sum()
n.madd("Load", n.madd("Load",
nodes, spatial.oil.nodes,
suffix=" shipping oil", suffix=" shipping oil",
bus=spatial.oil.nodes, bus=spatial.oil.nodes,
carrier="shipping oil", carrier="shipping oil",
p_set=p_set p_set=p_set_oil
) )
co2 = shipping_oil_share * pop_weighted_energy_totals.loc[nodes, all_navigation].sum().sum() * 1e6 / 8760 * costs.at["oil", "CO2 intensity"] co2 = p_set_oil * costs.at["oil", "CO2 intensity"]
n.add("Load", n.add("Load",
"shipping oil emissions", "shipping oil emissions",