Merge branch 'master' into biogas-upgrade-cc

This commit is contained in:
Fabian Neumann 2024-01-02 18:55:29 +01:00 committed by GitHub
commit 861e7b5fe5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 5 deletions

View File

@ -44,6 +44,8 @@ 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.
* 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.
* Add option to capture CO2 contained in biogas when upgrading (``sector: biogas_to_gas_cc``). * Add option to capture CO2 contained in biogas when upgrading (``sector: biogas_to_gas_cc``).

View File

@ -815,6 +815,7 @@ def add_ammonia(n, costs):
efficiency2=-cf_industry["MWh_H2_per_tNH3_electrolysis"] efficiency2=-cf_industry["MWh_H2_per_tNH3_electrolysis"]
/ cf_industry["MWh_elec_per_tNH3_electrolysis"], # input: MW_H2 per MW_elec / cf_industry["MWh_elec_per_tNH3_electrolysis"], # input: MW_H2 per MW_elec
capital_cost=costs.at["Haber-Bosch", "fixed"] / MWh_elec_per_MWh_NH3, capital_cost=costs.at["Haber-Bosch", "fixed"] / MWh_elec_per_MWh_NH3,
marginal_cost=costs.at["Haber-Bosch", "VOM"] / MWh_elec_per_MWh_NH3,
lifetime=costs.at["Haber-Bosch", "lifetime"], lifetime=costs.at["Haber-Bosch", "lifetime"],
) )
@ -1025,7 +1026,7 @@ def insert_gas_distribution_costs(n, costs):
f"Inserting gas distribution grid with investment cost factor of {f_costs}" f"Inserting gas distribution grid with investment cost factor of {f_costs}"
) )
capital_cost = costs.loc["electricity distribution grid"]["fixed"] * f_costs capital_cost = costs.at["electricity distribution grid", "fixed"] * f_costs
# gas boilers # gas boilers
gas_b = n.links.index[ gas_b = n.links.index[
@ -1102,6 +1103,7 @@ def add_storage_and_grids(n, costs):
efficiency=costs.at["OCGT", "efficiency"], efficiency=costs.at["OCGT", "efficiency"],
capital_cost=costs.at["OCGT", "fixed"] capital_cost=costs.at["OCGT", "fixed"]
* costs.at["OCGT", "efficiency"], # NB: fixed cost is per MWel * costs.at["OCGT", "efficiency"], # NB: fixed cost is per MWel
marginal_cost=costs.at["OCGT", "VOM"],
lifetime=costs.at["OCGT", "lifetime"], lifetime=costs.at["OCGT", "lifetime"],
) )
@ -2350,7 +2352,7 @@ def add_biomass(n, costs):
+ costs.at["BtL", "CO2 stored"], + costs.at["BtL", "CO2 stored"],
p_nom_extendable=True, p_nom_extendable=True,
capital_cost=costs.at["BtL", "fixed"], capital_cost=costs.at["BtL", "fixed"],
marginal_cost=costs.at["BtL", "efficiency"] * costs.loc["BtL", "VOM"], marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"],
) )
# TODO: Update with energy penalty # TODO: Update with energy penalty
@ -2371,7 +2373,7 @@ def add_biomass(n, costs):
p_nom_extendable=True, p_nom_extendable=True,
capital_cost=costs.at["BtL", "fixed"] capital_cost=costs.at["BtL", "fixed"]
+ costs.at["biomass CHP capture", "fixed"] * costs.at["BtL", "CO2 stored"], + costs.at["biomass CHP capture", "fixed"] * costs.at["BtL", "CO2 stored"],
marginal_cost=costs.at["BtL", "efficiency"] * costs.loc["BtL", "VOM"], marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"],
) )
# BioSNG from solid biomass # BioSNG from solid biomass
@ -2390,7 +2392,7 @@ def add_biomass(n, costs):
+ costs.at["BioSNG", "CO2 stored"], + costs.at["BioSNG", "CO2 stored"],
p_nom_extendable=True, p_nom_extendable=True,
capital_cost=costs.at["BioSNG", "fixed"], capital_cost=costs.at["BioSNG", "fixed"],
marginal_cost=costs.at["BioSNG", "efficiency"] * costs.loc["BioSNG", "VOM"], marginal_cost=costs.at["BioSNG", "efficiency"] * costs.at["BioSNG", "VOM"],
) )
# TODO: Update with energy penalty for CC # TODO: Update with energy penalty for CC
@ -2414,7 +2416,7 @@ def add_biomass(n, costs):
capital_cost=costs.at["BioSNG", "fixed"] capital_cost=costs.at["BioSNG", "fixed"]
+ costs.at["biomass CHP capture", "fixed"] + costs.at["biomass CHP capture", "fixed"]
* costs.at["BioSNG", "CO2 stored"], * costs.at["BioSNG", "CO2 stored"],
marginal_cost=costs.at["BioSNG", "efficiency"] * costs.loc["BioSNG", "VOM"], marginal_cost=costs.at["BioSNG", "efficiency"] * costs.at["BioSNG", "VOM"],
) )
@ -2647,6 +2649,8 @@ def add_industry(n, costs):
p_min_pu=options.get("min_part_load_methanolisation", 0), p_min_pu=options.get("min_part_load_methanolisation", 0),
capital_cost=costs.at["methanolisation", "fixed"] capital_cost=costs.at["methanolisation", "fixed"]
* options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a * options["MWh_MeOH_per_MWh_H2"], # EUR/MW_H2/a
marginal_cost=options["MWh_MeOH_per_MWh_H2"]
* costs.at["methanolisation", "VOM"],
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_MWh_e"], efficiency2=-options["MWh_MeOH_per_MWh_H2"] / options["MWh_MeOH_per_MWh_e"],
@ -2764,6 +2768,8 @@ def add_industry(n, costs):
efficiency=costs.at["Fischer-Tropsch", "efficiency"], efficiency=costs.at["Fischer-Tropsch", "efficiency"],
capital_cost=costs.at["Fischer-Tropsch", "fixed"] capital_cost=costs.at["Fischer-Tropsch", "fixed"]
* costs.at["Fischer-Tropsch", "efficiency"], # EUR/MW_H2/a * costs.at["Fischer-Tropsch", "efficiency"], # EUR/MW_H2/a
marginal_cost=costs.at["Fischer-Tropsch", "efficiency"]
* costs.at["Fischer-Tropsch", "VOM"],
efficiency2=-costs.at["oil", "CO2 intensity"] efficiency2=-costs.at["oil", "CO2 intensity"]
* costs.at["Fischer-Tropsch", "efficiency"], * costs.at["Fischer-Tropsch", "efficiency"],
p_nom_extendable=True, p_nom_extendable=True,