Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add endogenous export #1201

Merged
merged 12 commits into from
Nov 28, 2024
2 changes: 2 additions & 0 deletions Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,8 @@ rule add_export:
store=config["export"]["store"],
store_capital_costs=config["export"]["store_capital_costs"],
export_profile=config["export"]["export_profile"],
export_endogenous=config["export"]["endogenous"],
endogenous_price=config["export"]["endogenous_price"],
snapshots=config["snapshots"],
costs=config["costs"],
input:
Expand Down
6 changes: 4 additions & 2 deletions config.default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -456,10 +456,12 @@ fossil_reserves:
oil: 100 #TWh Maybe redundant

export:
h2export: [10] # Yearly export demand in TWh
h2export: [10] # Yearly export demand in TWh. Only considered, if ["export"]["endogenous"] is set to false
endogenous: false # If true, the export demand is endogenously determined by the model
endogenous_price: 400 # EUR/MWh # Market price, for wich the hydrogen for endogenous exports is sold. Only considered, if ["export"]["endogenous"] is set to true.
store: true # [True, False] # specifies whether an export store to balance demand is implemented
store_capital_costs: "no_costs" # ["standard_costs", "no_costs"] # specifies the costs of the export store. "standard_costs" takes CAPEX of "hydrogen storage tank type 1 including compressor"
export_profile: "ship" # use "ship" or "constant"
export_profile: "ship" # use "ship" or "constant". Currently only possible when ["export"]["endogenous"] is set to false
ekatef marked this conversation as resolved.
Show resolved Hide resolved
ship:
ship_capacity: 0.4 # TWh # 0.05 TWh for new ones, 0.003 TWh for Susio Frontier, 0.4 TWh according to Hampp2021: "Corresponds to 11360 t H2 (l) with LHV of 33.3333 Mwh/t_H2. Cihlar et al 2020 based on IEA 2019, Table 3-B"
travel_time: 288 # hours # From Agadir to Rotterdam and back (12*24)
Expand Down
33 changes: 25 additions & 8 deletions scripts/add_export.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,14 +129,31 @@ def add_export(n, hydrogen_buses_ports, export_profile):
elif snakemake.params.store == False:
pass

# add load
n.add(
"Load",
"H2 export load",
bus="H2 export bus",
carrier="H2",
p_set=export_profile,
)
if snakemake.params.export_endogenous == False:
ekatef marked this conversation as resolved.
Show resolved Hide resolved
# add load
n.add(
"Load",
"H2 export load",
bus="H2 export bus",
carrier="H2",
p_set=export_profile,
)
elif snakemake.params.export_endogenous == True:
ekatef marked this conversation as resolved.
Show resolved Hide resolved
# add endogenous export by implementing a negative generation
n.add(
"Generator",
"H2 export load",
bus="H2 export bus",
carrier="H2",
sign=-1,
p_nom_extendable=True,
marginal_cost=snakemake.params.endogenous_price * (-1),
)

else:
logger.error(
f"Value {snakemake.params.export_endogenous} for ['export']['export_endogenous'] is not valid"
)

return

Expand Down