diff --git a/config.default.yaml b/config.default.yaml index 3498a33b..7aa23901 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -87,6 +87,7 @@ sector: 'boilers' : True 'oil_boilers': False 'chp' : True + 'micro_chp' : False 'solar_thermal' : True 'solar_cf_correction': 0.788457 # = >>> 1/1.2683 '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) '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 + 'HVC_primary_fraction' : 1.0 #fraction of current non-ammonia basic chemicals produced via primary route plotting: map: @@ -310,6 +312,7 @@ plotting: "electricity" : "k" "gas for industry" : "#333333" "solid biomass for industry" : "#555555" + "industry electricity" : "#222222" "industry new electricity" : "#222222" "process emissions to stored" : "#444444" "process emissions to atmosphere" : "#888888" diff --git a/config.myopic.yaml b/config.myopic.yaml index 454a8525..c7f5ac1e 100644 --- a/config.myopic.yaml +++ b/config.myopic.yaml @@ -87,6 +87,7 @@ sector: 'boilers' : True 'oil_boilers': False 'chp' : True + 'micro_chp' : False 'solar_thermal' : True 'solar_cf_correction': 0.788457 # = >>> 1/1.2683 '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) '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 + 'HVC_primary_fraction' : 1.0 #fraction of current non-ammonia basic chemicals produced via primary route plotting: map: @@ -310,6 +312,7 @@ plotting: "electricity" : "k" "gas for industry" : "#333333" "solid biomass for industry" : "#555555" + "industry electricity" : "#222222" "industry new electricity" : "#222222" "process emissions to stored" : "#444444" "process emissions to atmosphere" : "#888888" diff --git a/scripts/build_industrial_production_per_country_tomorrow.py b/scripts/build_industrial_production_per_country_tomorrow.py index 1bfc40f2..bc66077c 100644 --- a/scripts/build_industrial_production_per_country_tomorrow.py +++ b/scripts/build_industrial_production_per_country_tomorrow.py @@ -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 - 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, float_format='%.2f') diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index df299d20..f6e8a7be 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1248,7 +1248,8 @@ def add_heat(network): lifetime=costs.at['central gas CHP CCS','lifetime']) else: - network.madd("Link", + if options["micro_chp"]: + network.madd("Link", nodes[name] + " " + name + " micro gas CHP", p_nom_extendable=True, bus0="EU gas", @@ -1883,17 +1884,24 @@ if __name__ == "__main__": else: limit = float(limit.replace("p",".").replace("m","-")) 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"]: if tech in o: limit = o[o.find(tech)+len(tech):] limit = float(limit.replace("p",".").replace("m","-")) + print("changing potential for",tech,"by factor",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']: insert_electricity_distribution_grid(n) if snakemake.config["sector"]['gas_distribution_grid']: