add temperature correction

This commit is contained in:
lisazeyen 2024-03-04 08:34:08 +01:00
parent bed2ef43d5
commit 8efe43f35f
2 changed files with 39 additions and 10 deletions

View File

@ -1535,8 +1535,13 @@ def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
options["EV_upper_degree_factor"], options["EV_upper_degree_factor"],
) )
temp_eff = 1 / (1+dd_EV)
profile = p_set/p_set.max() profile = p_set/p_set.max()
efficiency = costs.at['Battery electric (passenger cars)', 'efficiency']
car_efficiency = costs.at['Battery electric (passenger cars)', 'efficiency']
efficiency = car_efficiency * temp_eff
n.madd( n.madd(
"Link", "Link",
@ -1602,9 +1607,21 @@ def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
def add_fuel_cell_cars(n, nodes, p_set, fuel_cell_share, temperature): def add_fuel_cell_cars(n, nodes, p_set, fuel_cell_share, temperature):
efficiency = options["transport_fuel_cell_efficiency"] # correction factors for vehicle heating + cooling
dd_ICE = transport_degree_factor(
temperature,
options["transport_heating_deadband_lower"],
options["transport_heating_deadband_upper"],
options["ICE_lower_degree_factor"],
options["ICE_upper_degree_factor"],
)
temp_eff = 1 / (1+dd_ICE)
car_efficiency = options["transport_fuel_cell_efficiency"]
efficiency = car_efficiency * temp_eff
profile = p_set / p_set.max() profile = p_set / p_set.max()
p_nom = fuel_cell_share * p_set / efficiency p_nom = fuel_cell_share * p_set / car_efficiency
n.madd( n.madd(
"Link", "Link",
@ -1625,9 +1642,21 @@ def add_ice_cars(n, nodes, p_set, ice_share, temperature):
add_carrier_buses(n, "oil") add_carrier_buses(n, "oil")
ice_efficiency = options["transport_internal_combustion_efficiency"] # correction factors for vehicle heating + cooling
dd_ICE = transport_degree_factor(
temperature,
options["transport_heating_deadband_lower"],
options["transport_heating_deadband_upper"],
options["ICE_lower_degree_factor"],
options["ICE_upper_degree_factor"],
)
temp_eff = 1 / (1+dd_ICE)
p_nom = ice_share * p_set.max() / ice_efficiency car_efficiency = options["transport_internal_combustion_efficiency"]
efficiency = car_efficiency * temp_eff
p_nom = ice_share * p_set.max() / car_efficiency
suffix = " land transport ICE" suffix = " land transport ICE"
p_nom.rename(lambda x: x + suffix, inplace=True) p_nom.rename(lambda x: x + suffix, inplace=True)
@ -1639,7 +1668,7 @@ def add_ice_cars(n, nodes, p_set, ice_share, temperature):
bus1=nodes + " land transport", bus1=nodes + " land transport",
bus2=["co2 atmosphere"], bus2=["co2 atmosphere"],
carrier="land transport oil", carrier="land transport oil",
efficiency=ice_efficiency, efficiency=efficiency,
efficiency2=costs.at["oil", "CO2 intensity"], efficiency2=costs.at["oil", "CO2 intensity"],
p_nom_extendable=False, p_nom_extendable=False,
p_nom=p_nom, p_nom=p_nom,

View File

@ -921,19 +921,19 @@ def solve_network(n, config, solving, **kwargs):
return n return n
#%%
if __name__ == "__main__": if __name__ == "__main__":
if "snakemake" not in globals(): if "snakemake" not in globals():
from _helpers import mock_snakemake from _helpers import mock_snakemake
snakemake = mock_snakemake( snakemake = mock_snakemake(
"solve_sector_network", "solve_sector_network",
configfiles="../config/test/config.perfect.yaml", # configfiles="../config/test/config.perfect.yaml",
simpl="", simpl="",
opts="", opts="",
clusters="37", clusters="37",
ll="v1.0", ll="v1.0",
sector_opts="CO2L0-1H-T-H-B-I-A-dist1", sector_opts="730H-T-H-B-I-A-dist1",
planning_horizons="2030", planning_horizons="2030",
) )
configure_logging(snakemake) configure_logging(snakemake)