From c7ce47dffdfb0a31625d602e7ab1c2517e4cd6d3 Mon Sep 17 00:00:00 2001 From: millingermarkus Date: Wed, 3 Jul 2024 09:22:09 +0200 Subject: [PATCH 1/5] Energy penalty for solid biomass CHP --- scripts/prepare_sector_network.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index dfa06cac..6735fd7e 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2417,28 +2417,22 @@ def add_biomass(n, costs): bus4=spatial.co2.df.loc[urban_central, "nodes"].values, carrier="urban central solid biomass CHP CC", p_nom_extendable=True, - capital_cost=costs.at[key, "fixed"] * costs.at[key, "efficiency"] + capital_cost=costs.at[key + " CC", "fixed"] * costs.at[key + " CC", "efficiency"] + costs.at["biomass CHP capture", "fixed"] * costs.at["solid biomass", "CO2 intensity"], - marginal_cost=costs.at[key, "VOM"], - efficiency=costs.at[key, "efficiency"] + marginal_cost=costs.at[key + " CC", "VOM"], + efficiency=costs.at[key + " CC", "efficiency"] - costs.at["solid biomass", "CO2 intensity"] * ( costs.at["biomass CHP capture", "electricity-input"] + costs.at["biomass CHP capture", "compression-electricity-input"] ), - efficiency2=costs.at[key, "efficiency-heat"] - + costs.at["solid biomass", "CO2 intensity"] - * ( - costs.at["biomass CHP capture", "heat-output"] - + costs.at["biomass CHP capture", "compression-heat-output"] - - costs.at["biomass CHP capture", "heat-input"] - ), + efficiency2=costs.at[key + " CC", "efficiency-heat"], efficiency3=-costs.at["solid biomass", "CO2 intensity"] * costs.at["biomass CHP capture", "capture_rate"], efficiency4=costs.at["solid biomass", "CO2 intensity"] * costs.at["biomass CHP capture", "capture_rate"], - lifetime=costs.at[key, "lifetime"], + lifetime=costs.at[key + " CC", "lifetime"], ) if options["biomass_boiler"]: From b5ff1e8f9c935d89cebd87da9f2692f6bb3d3e2b Mon Sep 17 00:00:00 2001 From: millingermarkus Date: Wed, 3 Jul 2024 09:38:08 +0200 Subject: [PATCH 2/5] Added note on carbon capture for BioSNG and BtL --- scripts/prepare_sector_network.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 6735fd7e..18ed90c4 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2478,7 +2478,8 @@ def add_biomass(n, costs): marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"], ) - # TODO: Update with energy penalty + #Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol + #process (Methanol) and that electricity demand for this is included in the base process n.madd( "Link", spatial.biomass.nodes, @@ -2518,7 +2519,8 @@ def add_biomass(n, costs): marginal_cost=costs.at["BioSNG", "efficiency"] * costs.at["BioSNG", "VOM"], ) - # TODO: Update with energy penalty for CC + # Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol + # process (Methanol) and that electricity demand for this is included in the base process n.madd( "Link", spatial.biomass.nodes, From 76e15d6862636d7c134f28e7ca28d0dab4e9c678 Mon Sep 17 00:00:00 2001 From: millingermarkus Date: Wed, 3 Jul 2024 09:42:15 +0200 Subject: [PATCH 3/5] Carbon capture capital cost for waste CHP --- scripts/prepare_sector_network.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 18ed90c4..461a6db6 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -3100,7 +3100,9 @@ def add_industry(n, costs): carrier="waste CHP CC", p_nom_extendable=True, capital_cost=costs.at["waste CHP CC", "fixed"] - * costs.at["waste CHP CC", "efficiency"], + * costs.at["waste CHP CC", "efficiency"] + + costs.at['biomass CHP capture', 'fixed'] + * costs.at['oil', 'CO2 intensity'], marginal_cost=costs.at["waste CHP CC", "VOM"], efficiency=costs.at["waste CHP CC", "efficiency"], efficiency2=costs.at["waste CHP CC", "efficiency-heat"], From 53328e89f2a6df6d2ba269141645488fe069aaad Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 08:07:29 +0000 Subject: [PATCH 4/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/prepare_sector_network.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 461a6db6..18d0d1a3 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2417,7 +2417,8 @@ def add_biomass(n, costs): bus4=spatial.co2.df.loc[urban_central, "nodes"].values, carrier="urban central solid biomass CHP CC", p_nom_extendable=True, - capital_cost=costs.at[key + " CC", "fixed"] * costs.at[key + " CC", "efficiency"] + capital_cost=costs.at[key + " CC", "fixed"] + * costs.at[key + " CC", "efficiency"] + costs.at["biomass CHP capture", "fixed"] * costs.at["solid biomass", "CO2 intensity"], marginal_cost=costs.at[key + " CC", "VOM"], @@ -2478,8 +2479,8 @@ def add_biomass(n, costs): marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"], ) - #Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol - #process (Methanol) and that electricity demand for this is included in the base process + # Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol + # process (Methanol) and that electricity demand for this is included in the base process n.madd( "Link", spatial.biomass.nodes, @@ -3101,8 +3102,8 @@ def add_industry(n, costs): p_nom_extendable=True, capital_cost=costs.at["waste CHP CC", "fixed"] * costs.at["waste CHP CC", "efficiency"] - + costs.at['biomass CHP capture', 'fixed'] - * costs.at['oil', 'CO2 intensity'], + + costs.at["biomass CHP capture", "fixed"] + * costs.at["oil", "CO2 intensity"], marginal_cost=costs.at["waste CHP CC", "VOM"], efficiency=costs.at["waste CHP CC", "efficiency"], efficiency2=costs.at["waste CHP CC", "efficiency-heat"], From 821eb07e986696c4b9b4bd1071e3804fa948c143 Mon Sep 17 00:00:00 2001 From: Markus Millinger <50738187+millingermarkus@users.noreply.github.com> Date: Thu, 4 Jul 2024 09:59:45 +0200 Subject: [PATCH 5/5] Correct costs of BtL and BioSNG --- scripts/prepare_sector_network.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 18d0d1a3..6862df97 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2475,8 +2475,8 @@ def add_biomass(n, costs): efficiency2=-costs.at["solid biomass", "CO2 intensity"] + costs.at["BtL", "CO2 stored"], p_nom_extendable=True, - capital_cost=costs.at["BtL", "fixed"], - marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"], + capital_cost=costs.at["BtL", "fixed"] * costs.at["BtL", "efficiency"], + marginal_cost=costs.at["BtL", "VOM"] * costs.at["BtL", "efficiency"], ) # Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol @@ -2496,9 +2496,9 @@ def add_biomass(n, costs): + costs.at["BtL", "CO2 stored"] * (1 - costs.at["BtL", "capture rate"]), efficiency3=costs.at["BtL", "CO2 stored"] * costs.at["BtL", "capture rate"], p_nom_extendable=True, - capital_cost=costs.at["BtL", "fixed"] + capital_cost=costs.at["BtL", "fixed"] * costs.at["BtL", "efficiency"] + costs.at["biomass CHP capture", "fixed"] * costs.at["BtL", "CO2 stored"], - marginal_cost=costs.at["BtL", "efficiency"] * costs.at["BtL", "VOM"], + marginal_cost=costs.at["BtL", "VOM"] * costs.at["BtL", "efficiency"], ) # BioSNG from solid biomass @@ -2516,8 +2516,8 @@ def add_biomass(n, costs): efficiency3=-costs.at["solid biomass", "CO2 intensity"] + costs.at["BioSNG", "CO2 stored"], p_nom_extendable=True, - capital_cost=costs.at["BioSNG", "fixed"], - marginal_cost=costs.at["BioSNG", "efficiency"] * costs.at["BioSNG", "VOM"], + capital_cost=costs.at["BioSNG", "fixed"] * costs.at["BioSNG", "efficiency"], + marginal_cost=costs.at["BioSNG", "VOM"] * costs.at["BioSNG", "efficiency"], ) # Assuming that acid gas removal (incl. CO2) from syngas i performed with Rectisol @@ -2539,10 +2539,10 @@ def add_biomass(n, costs): + costs.at["BioSNG", "CO2 stored"] * (1 - costs.at["BioSNG", "capture rate"]), p_nom_extendable=True, - capital_cost=costs.at["BioSNG", "fixed"] + capital_cost=costs.at["BioSNG", "fixed"] * costs.at["BioSNG", "efficiency"] + costs.at["biomass CHP capture", "fixed"] * costs.at["BioSNG", "CO2 stored"], - marginal_cost=costs.at["BioSNG", "efficiency"] * costs.at["BioSNG", "VOM"], + marginal_cost=costs.at["BioSNG", "VOM"] * costs.at["BioSNG", "efficiency"], )