add new default to overdimension heating in individual buildings
This allows them to cover heat demand peaks e.g. 10% higher than those in the data. The disadvantage of manipulating the costs is that the capacity is then not quite right. This way at least the costs are right. Doing it properly would require introducing artificial peaks, but this creates new problems (e.g. what is going on with wind/solar/other demand).
This commit is contained in:
parent
6d94439bbb
commit
92d00a0c83
@ -483,6 +483,7 @@ sector:
|
|||||||
resistive_heaters: true
|
resistive_heaters: true
|
||||||
oil_boilers: false
|
oil_boilers: false
|
||||||
biomass_boiler: true
|
biomass_boiler: true
|
||||||
|
overdimension_individual_heating: 1.1 #to cover demand peaks bigger than data
|
||||||
chp: true
|
chp: true
|
||||||
micro_chp: false
|
micro_chp: false
|
||||||
solar_thermal: true
|
solar_thermal: true
|
||||||
|
@ -592,7 +592,9 @@ if __name__ == "__main__":
|
|||||||
.to_pandas()
|
.to_pandas()
|
||||||
.reindex(index=n.snapshots)
|
.reindex(index=n.snapshots)
|
||||||
)
|
)
|
||||||
default_lifetime = snakemake.params.existing_capacities["default_heating_lifetime"]
|
default_lifetime = snakemake.params.existing_capacities[
|
||||||
|
"default_heating_lifetime"
|
||||||
|
]
|
||||||
add_heating_capacities_installed_before_baseyear(
|
add_heating_capacities_installed_before_baseyear(
|
||||||
n,
|
n,
|
||||||
baseyear,
|
baseyear,
|
||||||
|
@ -1680,6 +1680,8 @@ def add_heat(n, costs):
|
|||||||
|
|
||||||
heat_demand = build_heat_demand(n)
|
heat_demand = build_heat_demand(n)
|
||||||
|
|
||||||
|
overdim_factor = options["overdimension_individual_heating"]
|
||||||
|
|
||||||
district_heat_info = pd.read_csv(snakemake.input.district_heat_share, index_col=0)
|
district_heat_info = pd.read_csv(snakemake.input.district_heat_share, index_col=0)
|
||||||
dist_fraction = district_heat_info["district fraction of node"]
|
dist_fraction = district_heat_info["district fraction of node"]
|
||||||
urban_fraction = district_heat_info["urban fraction"]
|
urban_fraction = district_heat_info["urban fraction"]
|
||||||
@ -1814,7 +1816,8 @@ def add_heat(n, costs):
|
|||||||
carrier=f"{name} {heat_pump_type} heat pump",
|
carrier=f"{name} {heat_pump_type} heat pump",
|
||||||
efficiency=efficiency,
|
efficiency=efficiency,
|
||||||
capital_cost=costs.at[costs_name, "efficiency"]
|
capital_cost=costs.at[costs_name, "efficiency"]
|
||||||
* costs.at[costs_name, "fixed"],
|
* costs.at[costs_name, "fixed"]
|
||||||
|
* overdim_factor,
|
||||||
p_nom_extendable=True,
|
p_nom_extendable=True,
|
||||||
lifetime=costs.at[costs_name, "lifetime"],
|
lifetime=costs.at[costs_name, "lifetime"],
|
||||||
)
|
)
|
||||||
@ -1883,7 +1886,9 @@ def add_heat(n, costs):
|
|||||||
bus1=nodes + f" {name} heat",
|
bus1=nodes + f" {name} heat",
|
||||||
carrier=name + " resistive heater",
|
carrier=name + " resistive heater",
|
||||||
efficiency=costs.at[key, "efficiency"],
|
efficiency=costs.at[key, "efficiency"],
|
||||||
capital_cost=costs.at[key, "efficiency"] * costs.at[key, "fixed"],
|
capital_cost=costs.at[key, "efficiency"]
|
||||||
|
* costs.at[key, "fixed"]
|
||||||
|
* overdim_factor,
|
||||||
p_nom_extendable=True,
|
p_nom_extendable=True,
|
||||||
lifetime=costs.at[key, "lifetime"],
|
lifetime=costs.at[key, "lifetime"],
|
||||||
)
|
)
|
||||||
@ -1901,7 +1906,9 @@ def add_heat(n, costs):
|
|||||||
carrier=name + " gas boiler",
|
carrier=name + " gas boiler",
|
||||||
efficiency=costs.at[key, "efficiency"],
|
efficiency=costs.at[key, "efficiency"],
|
||||||
efficiency2=costs.at["gas", "CO2 intensity"],
|
efficiency2=costs.at["gas", "CO2 intensity"],
|
||||||
capital_cost=costs.at[key, "efficiency"] * costs.at[key, "fixed"],
|
capital_cost=costs.at[key, "efficiency"]
|
||||||
|
* costs.at[key, "fixed"]
|
||||||
|
* overdim_factor,
|
||||||
lifetime=costs.at[key, "lifetime"],
|
lifetime=costs.at[key, "lifetime"],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1915,7 +1922,8 @@ def add_heat(n, costs):
|
|||||||
bus=nodes + f" {name} heat",
|
bus=nodes + f" {name} heat",
|
||||||
carrier=name + " solar thermal",
|
carrier=name + " solar thermal",
|
||||||
p_nom_extendable=True,
|
p_nom_extendable=True,
|
||||||
capital_cost=costs.at[name_type + " solar thermal", "fixed"],
|
capital_cost=costs.at[name_type + " solar thermal", "fixed"]
|
||||||
|
* overdim_factor,
|
||||||
p_max_pu=solar_thermal[nodes],
|
p_max_pu=solar_thermal[nodes],
|
||||||
lifetime=costs.at[name_type + " solar thermal", "lifetime"],
|
lifetime=costs.at[name_type + " solar thermal", "lifetime"],
|
||||||
)
|
)
|
||||||
@ -2348,7 +2356,8 @@ def add_biomass(n, costs):
|
|||||||
carrier=name + " biomass boiler",
|
carrier=name + " biomass boiler",
|
||||||
efficiency=costs.at["biomass boiler", "efficiency"],
|
efficiency=costs.at["biomass boiler", "efficiency"],
|
||||||
capital_cost=costs.at["biomass boiler", "efficiency"]
|
capital_cost=costs.at["biomass boiler", "efficiency"]
|
||||||
* costs.at["biomass boiler", "fixed"],
|
* costs.at["biomass boiler", "fixed"]
|
||||||
|
* options["overdimension_individual_heating"],
|
||||||
marginal_cost=costs.at["biomass boiler", "pelletizing cost"],
|
marginal_cost=costs.at["biomass boiler", "pelletizing cost"],
|
||||||
lifetime=costs.at["biomass boiler", "lifetime"],
|
lifetime=costs.at["biomass boiler", "lifetime"],
|
||||||
)
|
)
|
||||||
@ -2806,7 +2815,8 @@ def add_industry(n, costs):
|
|||||||
efficiency=costs.at["decentral oil boiler", "efficiency"],
|
efficiency=costs.at["decentral oil boiler", "efficiency"],
|
||||||
efficiency2=costs.at["oil", "CO2 intensity"],
|
efficiency2=costs.at["oil", "CO2 intensity"],
|
||||||
capital_cost=costs.at["decentral oil boiler", "efficiency"]
|
capital_cost=costs.at["decentral oil boiler", "efficiency"]
|
||||||
* costs.at["decentral oil boiler", "fixed"],
|
* costs.at["decentral oil boiler", "fixed"]
|
||||||
|
* options["overdimension_individual_heating"],
|
||||||
lifetime=costs.at["decentral oil boiler", "lifetime"],
|
lifetime=costs.at["decentral oil boiler", "lifetime"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user