fix operations network infeasibilities
This commit is contained in:
parent
4341827952
commit
246d5f5964
@ -346,7 +346,7 @@ rule solve_network:
|
|||||||
|
|
||||||
rule solve_operations_network:
|
rule solve_operations_network:
|
||||||
input:
|
input:
|
||||||
unprepared="networks/elec_s{simpl}_{clusters}_ec.nc",
|
unprepared="networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc",
|
||||||
optimized="results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc"
|
optimized="results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}.nc"
|
||||||
output: "results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}_op.nc"
|
output: "results/networks/elec_s{simpl}_{clusters}_ec_l{ll}_{opts}_op.nc"
|
||||||
log:
|
log:
|
||||||
|
@ -190,7 +190,7 @@ 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('add_extra_components', network='elec',
|
snakemake = mock_snakemake('add_extra_components', network='elec',
|
||||||
simpl='', clusters=5)
|
simpl='', clusters=40)
|
||||||
configure_logging(snakemake)
|
configure_logging(snakemake)
|
||||||
|
|
||||||
n = pypsa.Network(snakemake.input.network)
|
n = pypsa.Network(snakemake.input.network)
|
||||||
|
@ -94,7 +94,7 @@ def calculate_line_rating(n):
|
|||||||
-------
|
-------
|
||||||
xarray DataArray object with maximal power.
|
xarray DataArray object with maximal power.
|
||||||
"""
|
"""
|
||||||
relevant_lines=n.lines[(n.lines['underground']==False) & (n.lines['under_construction']==False)]
|
relevant_lines=n.lines[(n.lines['underground']==False)]
|
||||||
buses = relevant_lines[["bus0", "bus1"]].values
|
buses = relevant_lines[["bus0", "bus1"]].values
|
||||||
x = n.buses.x
|
x = n.buses.x
|
||||||
y = n.buses.y
|
y = n.buses.y
|
||||||
@ -120,10 +120,11 @@ 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('build_line_rating', network='elec', simpl='',
|
snakemake = mock_snakemake('build_line_rating', network='elec', simpl='',
|
||||||
clusters='40', ll='copt', opts='Co2L-4H')
|
clusters='40', ll='v1.0', opts='Co2L-4H')
|
||||||
configure_logging(snakemake)
|
configure_logging(snakemake)
|
||||||
|
|
||||||
n = pypsa.Network(snakemake.input.base_network)
|
n = pypsa.Network(snakemake.input.base_network)
|
||||||
da=calculate_line_rating(n)
|
s_max_pu_factor=snakemake.config["lines"]["s_max_pu"]
|
||||||
|
da=calculate_line_rating(n)*s_max_pu_factor
|
||||||
|
|
||||||
da.to_netcdf(snakemake.output[0])
|
da.to_netcdf(snakemake.output[0])
|
@ -203,7 +203,7 @@ 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('prepare_network', network='elec', simpl='',
|
snakemake = mock_snakemake('prepare_network', network='elec', simpl='',
|
||||||
clusters='40', ll='v0.3', opts='Co2L-24H')
|
clusters='40', ll='v1.0', opts='Co2L-4H')
|
||||||
configure_logging(snakemake)
|
configure_logging(snakemake)
|
||||||
|
|
||||||
opts = snakemake.wildcards.opts.split('-')
|
opts = snakemake.wildcards.opts.split('-')
|
||||||
|
@ -80,6 +80,10 @@ def set_parameters_from_optimized(n, n_optim):
|
|||||||
n.generators.loc[gen_extend_i, 'p_nom'] = \
|
n.generators.loc[gen_extend_i, 'p_nom'] = \
|
||||||
n_optim.generators['p_nom_opt'].reindex(gen_extend_i, fill_value=0.)
|
n_optim.generators['p_nom_opt'].reindex(gen_extend_i, fill_value=0.)
|
||||||
n.generators.loc[gen_extend_i, 'p_nom_extendable'] = False
|
n.generators.loc[gen_extend_i, 'p_nom_extendable'] = False
|
||||||
|
#Use load shredding to avoid infeasibilites
|
||||||
|
n.generators.loc["dummy"]=n.generators.iloc[0]
|
||||||
|
n.generators.loc[["dummy"],["p_nom_extendable"]]=True
|
||||||
|
n.generators.loc[["dummy"],["marginal_cost"]]=3000
|
||||||
|
|
||||||
stor_units_extend_i = n.storage_units.index[n.storage_units.p_nom_extendable]
|
stor_units_extend_i = n.storage_units.index[n.storage_units.p_nom_extendable]
|
||||||
n.storage_units.loc[stor_units_extend_i, 'p_nom'] = \
|
n.storage_units.loc[stor_units_extend_i, 'p_nom'] = \
|
||||||
|
Loading…
Reference in New Issue
Block a user