extended waste heat from PtX, revised minimum part loads
This commit is contained in:
parent
ce1740b3c0
commit
872c92d1c0
@ -480,11 +480,15 @@ sector:
|
|||||||
- nearshore # within 50 km of sea
|
- nearshore # within 50 km of sea
|
||||||
# - offshore
|
# - offshore
|
||||||
ammonia: false
|
ammonia: false
|
||||||
min_part_load_fischer_tropsch: 0.9
|
min_part_load_fischer_tropsch: 0.7
|
||||||
min_part_load_methanolisation: 0.5
|
min_part_load_methanolisation: 0.3
|
||||||
|
min_part_load_methanation: 0.3
|
||||||
use_fischer_tropsch_waste_heat: true
|
use_fischer_tropsch_waste_heat: true
|
||||||
|
use_haber_bosch_waste_heat: true
|
||||||
|
use_methanolisation_waste_heat: true
|
||||||
|
use_methanation_waste_heat: true
|
||||||
use_fuel_cell_waste_heat: true
|
use_fuel_cell_waste_heat: true
|
||||||
use_electrolysis_waste_heat: false
|
use_electrolysis_waste_heat: true
|
||||||
electricity_distribution_grid: true
|
electricity_distribution_grid: true
|
||||||
electricity_distribution_grid_cost_factor: 1.0
|
electricity_distribution_grid_cost_factor: 1.0
|
||||||
electricity_grid_connection: true
|
electricity_grid_connection: true
|
||||||
|
@ -44,6 +44,14 @@ Upcoming Release
|
|||||||
network has been moved from ``focus_weights:`` to ``clustering:
|
network has been moved from ``focus_weights:`` to ``clustering:
|
||||||
focus_weights:``. Backwards compatibility to old config files is maintained.
|
focus_weights:``. Backwards compatibility to old config files is maintained.
|
||||||
|
|
||||||
|
* Extend options for waste usage from Haber-Bosch, methanolisation and methanation.
|
||||||
|
|
||||||
|
* Use electrolysis waste heat by default.
|
||||||
|
|
||||||
|
* Add new ``sector_opts`` wildcard option "nowasteheat" to disable all waste heat usage.
|
||||||
|
|
||||||
|
* Set minimum part loads for PtX processes to 30% for methanolisation and methanation, and to 70% for Fischer-Tropsch synthesis.
|
||||||
|
|
||||||
* Add VOM as marginal cost to PtX processes.
|
* Add VOM as marginal cost to PtX processes.
|
||||||
|
|
||||||
* The ``mock_snakemake`` function can now be used with a Snakefile from a different directory using the new ``root_dir`` argument.
|
* The ``mock_snakemake`` function can now be used with a Snakefile from a different directory using the new ``root_dir`` argument.
|
||||||
|
@ -1345,6 +1345,7 @@ def add_storage_and_grids(n, costs):
|
|||||||
bus2=spatial.co2.nodes,
|
bus2=spatial.co2.nodes,
|
||||||
p_nom_extendable=True,
|
p_nom_extendable=True,
|
||||||
carrier="Sabatier",
|
carrier="Sabatier",
|
||||||
|
p_min_pu=options.get("min_part_load_methanation", 0),
|
||||||
efficiency=costs.at["methanation", "efficiency"],
|
efficiency=costs.at["methanation", "efficiency"],
|
||||||
efficiency2=-costs.at["methanation", "efficiency"]
|
efficiency2=-costs.at["methanation", "efficiency"]
|
||||||
* costs.at["gas", "CO2 intensity"],
|
* costs.at["gas", "CO2 intensity"],
|
||||||
@ -2982,6 +2983,34 @@ def add_waste_heat(n):
|
|||||||
0.95 - n.links.loc[urban_central + " Fischer-Tropsch", "efficiency"]
|
0.95 - n.links.loc[urban_central + " Fischer-Tropsch", "efficiency"]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if options["use_methanation_waste_heat"]:
|
||||||
|
n.links.loc[urban_central + " Sabatier", "bus3"] = (
|
||||||
|
urban_central + " urban central heat"
|
||||||
|
)
|
||||||
|
n.links.loc[urban_central + " Sabatier", "efficiency3"] = (
|
||||||
|
0.95 - n.links.loc[urban_central + " Sabatier", "efficiency"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# DEA quotes 15% of total input (11% of which are high-value heat)
|
||||||
|
if options["use_haber_bosch_waste_heat"]:
|
||||||
|
n.links.loc[urban_central + " Haber-Bosch", "bus3"] = (
|
||||||
|
urban_central + " urban central heat"
|
||||||
|
)
|
||||||
|
total_energy_input = (cf_industry["MWh_H2_per_tNH3_electrolysis"] + cf_industry["MWh_elec_per_tNH3_electrolysis"]) / cf_industry["MWh_NH3_per_tNH3"]
|
||||||
|
electricity_input = cf_industry["MWh_elec_per_tNH3_electrolysis"] / cf_industry["MWh_NH3_per_tNH3"]
|
||||||
|
n.links.loc[urban_central + " Haber-Bosch", "efficiency3"] = (
|
||||||
|
0.15 * total_energy_input / electricity_input
|
||||||
|
)
|
||||||
|
|
||||||
|
if options["use_methanolisation_waste_heat"]:
|
||||||
|
n.links.loc[urban_central + " methanolisation", "bus4"] = (
|
||||||
|
urban_central + " urban central heat"
|
||||||
|
)
|
||||||
|
n.links.loc[urban_central + " methanolisation", "efficiency4"] = (
|
||||||
|
costs.at["methanolisation", "heat-output"]
|
||||||
|
/ costs.at["methanolisation", "hydrogen-input"]
|
||||||
|
)
|
||||||
|
|
||||||
# TODO integrate usable waste heat efficiency into technology-data from DEA
|
# TODO integrate usable waste heat efficiency into technology-data from DEA
|
||||||
if options.get("use_electrolysis_waste_heat", False):
|
if options.get("use_electrolysis_waste_heat", False):
|
||||||
n.links.loc[urban_central + " H2 Electrolysis", "bus2"] = (
|
n.links.loc[urban_central + " H2 Electrolysis", "bus2"] = (
|
||||||
@ -3426,6 +3455,15 @@ if __name__ == "__main__":
|
|||||||
if "nodistrict" in opts:
|
if "nodistrict" in opts:
|
||||||
options["district_heating"]["progress"] = 0.0
|
options["district_heating"]["progress"] = 0.0
|
||||||
|
|
||||||
|
if "nowasteheat" in opts:
|
||||||
|
logger.info("Disabling waste heat.")
|
||||||
|
options["use_fischer_tropsch_waste_heat"] = False
|
||||||
|
options["use_methanolisation_waste_heat"] = False
|
||||||
|
options["use_haber_bosch_waste_heat"] = False
|
||||||
|
options["use_methanation_waste_heat"] = False
|
||||||
|
options["use_fuel_cell_waste_heat"] = False
|
||||||
|
options["use_electrolysis_waste_heat"] = False
|
||||||
|
|
||||||
if "T" in opts:
|
if "T" in opts:
|
||||||
add_land_transport(n, costs)
|
add_land_transport(n, costs)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user