Is it possible to connect more than one storage device to a bus? How is this possible? We have the problem that we want to model an energy system with pumped storage power plant and battery storage. When using more than one storage, our modelling attempt results in the error that one storage can be stored and unstored simultaneously.
Has this error occurred before and what can we do?
Kind regards
You can add hundret storages to a bus if you like, there is no limit.
It is possible, that a storage can be loaded and unloaded simultaneously even though it does not make sense in most cases.
You should provide more information about your model to make it easier to give more concrete help.
I guess the storage has an efficiency below 1. That means that the model tries to get rid of some unneeded energy. Do you have another option to throw away excess electricity? If this is the case you could add minimal costs to the storage (0,000001 ct), so that the other option is slightly better. Or you can add negative costs to the other option (-0,000001 ct).
Your result is a consequence of your model design. The solver does not think it is just heading to the best solution. If you have two options that are mathematically the same, different solver may even use different options. It may happen by chance because the solver does not know anything about storages.
I remember years back a discussion on the GLPK mailing list as to whether linear solvers produce these kinds of zero‑cost circular flows or not. My recollection is that they normally do give the most reduced answer but that that behavior should not necessarily be relied upon. The converse problem is much harder, proving a particular solution is not degenerate — meaning that no another equal‑valued solution exists, probably dependent only on the order in which the same problem was submitted.
If you do set a trivial cost, as suggested earlier, don’t make it too small. Otherwise you may end up with a badly‑scaled problem and you also might not escape numerical precision issues. But don’t make it so big that it exceeds the noise present in your cost data. Personally, I would err on the larger side. But I would also run some tests. Your solver should be able to report problem scaling metrics. And some trial‑and‑error runs should tell you whether your chosen penalty value becomes material. Make one of those runs zero to see if you do strike circular flows. R.