temperature correction in extra function
This commit is contained in:
parent
8efe43f35f
commit
4ffa702d30
@ -1512,6 +1512,25 @@ def check_land_transport_shares(shares):
|
|||||||
"corresponding to increased or decreased demand assumptions."
|
"corresponding to increased or decreased demand assumptions."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def get_temp_efficency(car_efficiency, temperature, deadband_lw, deadband_up,
|
||||||
|
degree_factor_lw, degree_factor_up):
|
||||||
|
"""
|
||||||
|
Correct temperature depending on heating and cooling for respective car
|
||||||
|
type.
|
||||||
|
"""
|
||||||
|
# temperature correction for EVs
|
||||||
|
dd = transport_degree_factor(
|
||||||
|
temperature,
|
||||||
|
deadband_lw,
|
||||||
|
deadband_up,
|
||||||
|
degree_factor_lw,
|
||||||
|
degree_factor_up,
|
||||||
|
)
|
||||||
|
|
||||||
|
temp_eff = 1 / (1+dd)
|
||||||
|
|
||||||
|
return car_efficiency * temp_eff
|
||||||
|
|
||||||
def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
|
def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
|
||||||
number_cars, temperature):
|
number_cars, temperature):
|
||||||
|
|
||||||
@ -1526,22 +1545,16 @@ def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
|
|||||||
unit="MWh_el",
|
unit="MWh_el",
|
||||||
)
|
)
|
||||||
|
|
||||||
# temperature correction for EVs
|
|
||||||
dd_EV = transport_degree_factor(
|
|
||||||
temperature,
|
|
||||||
options["transport_heating_deadband_lower"],
|
|
||||||
options["transport_heating_deadband_upper"],
|
|
||||||
options["EV_lower_degree_factor"],
|
|
||||||
options["EV_upper_degree_factor"],
|
|
||||||
)
|
|
||||||
|
|
||||||
temp_eff = 1 / (1+dd_EV)
|
|
||||||
|
|
||||||
profile = p_set/p_set.max()
|
|
||||||
|
|
||||||
car_efficiency = costs.at['Battery electric (passenger cars)', 'efficiency']
|
car_efficiency = costs.at['Battery electric (passenger cars)', 'efficiency']
|
||||||
|
|
||||||
efficiency = car_efficiency * temp_eff
|
# temperature corrected efficiency
|
||||||
|
efficiency = get_temp_efficency(car_efficiency, temperature,
|
||||||
|
options["transport_heating_deadband_lower"],
|
||||||
|
options["transport_heating_deadband_upper"],
|
||||||
|
options["EV_lower_degree_factor"],
|
||||||
|
options["EV_upper_degree_factor"])
|
||||||
|
|
||||||
|
profile = p_set/p_set.max()
|
||||||
|
|
||||||
n.madd(
|
n.madd(
|
||||||
"Link",
|
"Link",
|
||||||
@ -1553,7 +1566,7 @@ def add_EVs(n, nodes, avail_profile, dsm_profile, p_set, electric_share,
|
|||||||
efficiency=efficiency,
|
efficiency=efficiency,
|
||||||
p_min_pu=profile,
|
p_min_pu=profile,
|
||||||
p_max_pu=profile,
|
p_max_pu=profile,
|
||||||
p_nom=electric_share*p_set.max()/efficiency,
|
p_nom=electric_share*p_set.max()/car_efficiency,
|
||||||
p_nom_extendable=False,
|
p_nom_extendable=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1607,21 +1620,18 @@ 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):
|
||||||
|
|
||||||
# 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"]
|
car_efficiency = options["transport_fuel_cell_efficiency"]
|
||||||
efficiency = car_efficiency * temp_eff
|
|
||||||
|
# temperature corrected efficiency
|
||||||
|
efficiency = get_temp_efficency(car_efficiency, temperature,
|
||||||
|
options["transport_heating_deadband_lower"],
|
||||||
|
options["transport_heating_deadband_upper"],
|
||||||
|
options["ICE_lower_degree_factor"],
|
||||||
|
options["ICE_upper_degree_factor"])
|
||||||
|
|
||||||
|
|
||||||
profile = p_set / p_set.max()
|
profile = p_set / p_set.max()
|
||||||
p_nom = fuel_cell_share * p_set / car_efficiency
|
p_nom = fuel_cell_share * p_set.max() / car_efficiency
|
||||||
|
|
||||||
n.madd(
|
n.madd(
|
||||||
"Link",
|
"Link",
|
||||||
@ -1642,19 +1652,14 @@ def add_ice_cars(n, nodes, p_set, ice_share, temperature):
|
|||||||
|
|
||||||
add_carrier_buses(n, "oil")
|
add_carrier_buses(n, "oil")
|
||||||
|
|
||||||
# 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_internal_combustion_efficiency"]
|
car_efficiency = options["transport_internal_combustion_efficiency"]
|
||||||
|
|
||||||
efficiency = car_efficiency * temp_eff
|
# temperature corrected efficiency
|
||||||
|
efficiency = get_temp_efficency(car_efficiency, temperature,
|
||||||
|
options["transport_heating_deadband_lower"],
|
||||||
|
options["transport_heating_deadband_upper"],
|
||||||
|
options["ICE_lower_degree_factor"],
|
||||||
|
options["ICE_upper_degree_factor"])
|
||||||
|
|
||||||
p_nom = ice_share * p_set.max() / car_efficiency
|
p_nom = ice_share * p_set.max() / car_efficiency
|
||||||
suffix = " land transport ICE"
|
suffix = " land transport ICE"
|
||||||
|
Loading…
Reference in New Issue
Block a user