Make micro CHP optional, option to reduce non-NH3 basic chemicals
Also add option to limit extension of HVAC and HVDC transmission lines. Also fix bug that option to limit solar & wind potential was bypassed.
This commit is contained in:
parent
989495ce79
commit
9721dccc0f
@ -87,6 +87,7 @@ sector:
|
|||||||
'boilers' : True
|
'boilers' : True
|
||||||
'oil_boilers': False
|
'oil_boilers': False
|
||||||
'chp' : True
|
'chp' : True
|
||||||
|
'micro_chp' : False
|
||||||
'solar_thermal' : True
|
'solar_thermal' : True
|
||||||
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
||||||
'marginal_cost_storage' : 0. #1e-4
|
'marginal_cost_storage' : 0. #1e-4
|
||||||
@ -174,6 +175,7 @@ industry:
|
|||||||
'MWh_elec_per_tNH3_electrolysis' : 1.17 # from https://doi.org/10.1016/j.joule.2018.04.017 Table 13 (air separation and HB)
|
'MWh_elec_per_tNH3_electrolysis' : 1.17 # from https://doi.org/10.1016/j.joule.2018.04.017 Table 13 (air separation and HB)
|
||||||
'NH3_process_emissions' : 24.5 # in MtCO2/a from SMR for H2 production for NH3 from UNFCCC for 2015 for EU28
|
'NH3_process_emissions' : 24.5 # in MtCO2/a from SMR for H2 production for NH3 from UNFCCC for 2015 for EU28
|
||||||
'petrochemical_process_emissions' : 25.5 # in MtCO2/a for petrochemical and other from UNFCCC for 2015 for EU28
|
'petrochemical_process_emissions' : 25.5 # in MtCO2/a for petrochemical and other from UNFCCC for 2015 for EU28
|
||||||
|
'HVC_primary_fraction' : 1.0 #fraction of current non-ammonia basic chemicals produced via primary route
|
||||||
|
|
||||||
plotting:
|
plotting:
|
||||||
map:
|
map:
|
||||||
@ -310,6 +312,7 @@ plotting:
|
|||||||
"electricity" : "k"
|
"electricity" : "k"
|
||||||
"gas for industry" : "#333333"
|
"gas for industry" : "#333333"
|
||||||
"solid biomass for industry" : "#555555"
|
"solid biomass for industry" : "#555555"
|
||||||
|
"industry electricity" : "#222222"
|
||||||
"industry new electricity" : "#222222"
|
"industry new electricity" : "#222222"
|
||||||
"process emissions to stored" : "#444444"
|
"process emissions to stored" : "#444444"
|
||||||
"process emissions to atmosphere" : "#888888"
|
"process emissions to atmosphere" : "#888888"
|
||||||
|
@ -87,6 +87,7 @@ sector:
|
|||||||
'boilers' : True
|
'boilers' : True
|
||||||
'oil_boilers': False
|
'oil_boilers': False
|
||||||
'chp' : True
|
'chp' : True
|
||||||
|
'micro_chp' : False
|
||||||
'solar_thermal' : True
|
'solar_thermal' : True
|
||||||
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
'solar_cf_correction': 0.788457 # = >>> 1/1.2683
|
||||||
'marginal_cost_storage' : 0. #1e-4
|
'marginal_cost_storage' : 0. #1e-4
|
||||||
@ -174,6 +175,7 @@ industry:
|
|||||||
'MWh_elec_per_tNH3_electrolysis' : 1.17 # from https://doi.org/10.1016/j.joule.2018.04.017 Table 13 (air separation and HB)
|
'MWh_elec_per_tNH3_electrolysis' : 1.17 # from https://doi.org/10.1016/j.joule.2018.04.017 Table 13 (air separation and HB)
|
||||||
'NH3_process_emissions' : 24.5 # in MtCO2/a from SMR for H2 production for NH3 from UNFCCC for 2015 for EU28
|
'NH3_process_emissions' : 24.5 # in MtCO2/a from SMR for H2 production for NH3 from UNFCCC for 2015 for EU28
|
||||||
'petrochemical_process_emissions' : 25.5 # in MtCO2/a for petrochemical and other from UNFCCC for 2015 for EU28
|
'petrochemical_process_emissions' : 25.5 # in MtCO2/a for petrochemical and other from UNFCCC for 2015 for EU28
|
||||||
|
'HVC_primary_fraction' : 1.0 #fraction of current non-ammonia basic chemicals produced via primary route
|
||||||
|
|
||||||
plotting:
|
plotting:
|
||||||
map:
|
map:
|
||||||
@ -310,6 +312,7 @@ plotting:
|
|||||||
"electricity" : "k"
|
"electricity" : "k"
|
||||||
"gas for industry" : "#333333"
|
"gas for industry" : "#333333"
|
||||||
"solid biomass for industry" : "#555555"
|
"solid biomass for industry" : "#555555"
|
||||||
|
"industry electricity" : "#222222"
|
||||||
"industry new electricity" : "#222222"
|
"industry new electricity" : "#222222"
|
||||||
"process emissions to stored" : "#444444"
|
"process emissions to stored" : "#444444"
|
||||||
"process emissions to atmosphere" : "#888888"
|
"process emissions to atmosphere" : "#888888"
|
||||||
|
@ -22,6 +22,8 @@ fraction_primary_stays_primary = snakemake.config["industry"]["Al_primary_fracti
|
|||||||
industrial_production["Aluminium - primary production"] = fraction_primary_stays_primary*industrial_production["Aluminium - primary production"]
|
industrial_production["Aluminium - primary production"] = fraction_primary_stays_primary*industrial_production["Aluminium - primary production"]
|
||||||
industrial_production["Aluminium - secondary production"] = total_aluminium - industrial_production["Aluminium - primary production"]
|
industrial_production["Aluminium - secondary production"] = total_aluminium - industrial_production["Aluminium - primary production"]
|
||||||
|
|
||||||
|
industrial_production["Basic chemicals (without ammonia)"] *= snakemake.config["industry"]['HVC_primary_fraction']
|
||||||
|
|
||||||
|
|
||||||
industrial_production.to_csv(snakemake.output.industrial_production_per_country_tomorrow,
|
industrial_production.to_csv(snakemake.output.industrial_production_per_country_tomorrow,
|
||||||
float_format='%.2f')
|
float_format='%.2f')
|
||||||
|
@ -1248,6 +1248,7 @@ def add_heat(network):
|
|||||||
lifetime=costs.at['central gas CHP CCS','lifetime'])
|
lifetime=costs.at['central gas CHP CCS','lifetime'])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
if options["micro_chp"]:
|
||||||
network.madd("Link",
|
network.madd("Link",
|
||||||
nodes[name] + " " + name + " micro gas CHP",
|
nodes[name] + " " + name + " micro gas CHP",
|
||||||
p_nom_extendable=True,
|
p_nom_extendable=True,
|
||||||
@ -1883,17 +1884,24 @@ if __name__ == "__main__":
|
|||||||
else:
|
else:
|
||||||
limit = float(limit.replace("p",".").replace("m","-"))
|
limit = float(limit.replace("p",".").replace("m","-"))
|
||||||
add_co2limit(n, Nyears, limit)
|
add_co2limit(n, Nyears, limit)
|
||||||
# add_emission_prices(n, exclude_co2=True)
|
|
||||||
|
|
||||||
# if 'Ep' in opts:
|
|
||||||
# add_emission_prices(n)
|
|
||||||
|
|
||||||
|
for o in opts:
|
||||||
for tech in ["solar","onwind","offwind"]:
|
for tech in ["solar","onwind","offwind"]:
|
||||||
if tech in o:
|
if tech in o:
|
||||||
limit = o[o.find(tech)+len(tech):]
|
limit = o[o.find(tech)+len(tech):]
|
||||||
limit = float(limit.replace("p",".").replace("m","-"))
|
limit = float(limit.replace("p",".").replace("m","-"))
|
||||||
|
print("changing potential for",tech,"by factor",limit)
|
||||||
restrict_technology_potential(n,tech,limit)
|
restrict_technology_potential(n,tech,limit)
|
||||||
|
|
||||||
|
if o[:10] == 'linemaxext':
|
||||||
|
maxext = float(o[10:])*1e3
|
||||||
|
print("limiting new HVAC and HVDC extensions to",maxext,"MW")
|
||||||
|
n.lines['s_nom_max'] = n.lines['s_nom'] + maxext
|
||||||
|
hvdc = n.links.index[n.links.carrier == 'DC']
|
||||||
|
n.links.loc[hvdc,'p_nom_max'] = n.links.loc[hvdc,'p_nom'] + maxext
|
||||||
|
|
||||||
|
|
||||||
if snakemake.config["sector"]['electricity_distribution_grid']:
|
if snakemake.config["sector"]['electricity_distribution_grid']:
|
||||||
insert_electricity_distribution_grid(n)
|
insert_electricity_distribution_grid(n)
|
||||||
if snakemake.config["sector"]['gas_distribution_grid']:
|
if snakemake.config["sector"]['gas_distribution_grid']:
|
||||||
|
Loading…
Reference in New Issue
Block a user