I have a problem with a simple transformer or with the flows connecting it with the bus it generates or the bus it consumes: if I put no lower bound on the in-/out-flow, the activity of the transformer is bigger than zero in a particular time-step (it consumes and produces some energy); but if I put a lower bound on the in-flow or out-flow - even much lower than the value it assumes without the bound - then, the solver cannot find any optimal solution!
There is an active upper bound on the same flow, however there shouldn’t be any conflict between the two, because the upper bound is bigger than the lower one in any time-step (the max value is bigger than the min value and the capacity-in equals the capacity-out; efficiency is 1). Moreover, the problem exists also when I remove the upper bound.
I get the infeasibility with any range of time-steps I consider (actually I haven’t tried all the combinations of the 8760 timesteps, it’s my conclusion based on few combinations).
I tried to get some more information on the issue by adding a “shortage” transformer producing the same bus. The solver found a solution but the bus is produced only by the shortage transformer, even with a very high cost. It seems to me this particular transformer cannot work at all when there is a lower bound on its in-/out-flow.
I use the min and max bounds also on other flows/transformers, and they all work properly.
Furthermore, with om.pprint() I see that the flow is properly considered in the equations.
Am I missing anything? Has anyone experienced anything similar?
I’m using the “def nodes_from_excel(filename)”
Here is the interested portion of code:
[…]
timeseries = xls.parse('time_series')
distributed_PV = xls.parse('distributed_PV')
for i, t in distributed_PV.iterrows():
noded[i] = solph.Transformer(
label=i,
inputs={
noded[t['from']]: solph.Flow(
nominal_value=t['capacity [MW]'])},
outputs={
noded[t['bus']]: solph.Flow(
nominal_value=t['capacity [MW]'],
min = timeseries[i],
max = timeseries['it_solar_pv_s_fix'])})
[…]
the distributed_PV xls sheet content is as follows:
from bus capacity [MW]
it_PV_use it_bus_PV_use it_bus_el_t&d 10440
and the timeseries for the first three time-steps are:
it_PV_use
0.0752
0.0721
0.0676
it_solar_pv_s_fix
0.0100
0.0100
0.0100