add plain hydrogen turbine option for re-electrification

This commit is contained in:
Fabian Neumann 2023-04-22 09:44:13 +02:00
parent 2b069e3031
commit f2e53b59bf
3 changed files with 40 additions and 12 deletions

View File

@ -469,6 +469,8 @@ sector:
dac: true dac: true
co2_vent: false co2_vent: false
allam_cycle: false allam_cycle: false
hydrogen_fuel_cell: true
hydrogen_turbine: false
SMR: true SMR: true
regional_co2_sequestration_potential: regional_co2_sequestration_potential:
enable: false # enable regionally resolved geological co2 storage potential enable: false # enable regionally resolved geological co2 storage potential
@ -902,6 +904,7 @@ plotting:
H2 pipeline: '#f081dc' H2 pipeline: '#f081dc'
H2 pipeline retrofitted: '#ba99b5' H2 pipeline retrofitted: '#ba99b5'
H2 Fuel Cell: '#c251ae' H2 Fuel Cell: '#c251ae'
H2 turbine: '#991f83'
H2 Electrolysis: '#ff29d9' H2 Electrolysis: '#ff29d9'
# ammonia # ammonia
NH3: '#46caf0' NH3: '#46caf0'

View File

@ -17,6 +17,10 @@ Upcoming Release
* Renamed script file from PyPSA-EUR ``build_load_data`` to ``build_electricity_demand``. * Renamed script file from PyPSA-EUR ``build_load_data`` to ``build_electricity_demand``.
* Add plain hydrogen turbine as additional re-electrification option besides
hydrogen fuel cell. Add switches for both re-electrification options under
``sector: hydrogen_turbine:`` and ``sector: hydrogen_fuel_cell:``.
PyPSA-Eur 0.8.0 (18th March 2023) PyPSA-Eur 0.8.0 (18th March 2023)
================================= =================================

View File

@ -1067,18 +1067,39 @@ def add_storage_and_grids(n, costs):
lifetime=costs.at["electrolysis", "lifetime"], lifetime=costs.at["electrolysis", "lifetime"],
) )
n.madd( if options["hydrogen_fuel_cell"]:
"Link",
nodes + " H2 Fuel Cell", logger.info("Adding hydrogen fuel cell for re-electrification.")
bus0=nodes + " H2",
bus1=nodes, n.madd(
p_nom_extendable=True, "Link",
carrier="H2 Fuel Cell", nodes + " H2 Fuel Cell",
efficiency=costs.at["fuel cell", "efficiency"], bus0=nodes + " H2",
capital_cost=costs.at["fuel cell", "fixed"] bus1=nodes,
* costs.at["fuel cell", "efficiency"], # NB: fixed cost is per MWel p_nom_extendable=True,
lifetime=costs.at["fuel cell", "lifetime"], carrier="H2 Fuel Cell",
) efficiency=costs.at["fuel cell", "efficiency"],
capital_cost=costs.at["fuel cell", "fixed"]
* costs.at["fuel cell", "efficiency"], # NB: fixed cost is per MWel
lifetime=costs.at["fuel cell", "lifetime"],
)
if options["hydrogen_turbine"]:
logger.info("Adding hydrogen turbine for re-electrification.")
n.madd(
"Link",
nodes + " H2 turbine",
bus0=nodes + " H2",
bus1=nodes,
p_nom_extendable=True,
carrier="H2 turbine",
efficiency=costs.at["OCGT", "efficiency"],
capital_cost=costs.at["OCGT", "fixed"]
* costs.at["OCGT", "efficiency"], # NB: fixed cost is per MWel
lifetime=costs.at["OCGT", "lifetime"],
)
cavern_types = snakemake.config["sector"]["hydrogen_underground_storage_locations"] cavern_types = snakemake.config["sector"]["hydrogen_underground_storage_locations"]
h2_caverns = pd.read_csv(snakemake.input.h2_cavern, index_col=0) h2_caverns = pd.read_csv(snakemake.input.h2_cavern, index_col=0)