You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The GenericInvestmentStorageBlock lacks a limitation of initial storage level for the very first time step of the optimization run.
This only holds for multi-period optimization modelling.
It only occurs in case a storage is invested into in the first period, i.e. the very first time step.
Otherwise, the storage content will be limited by the total capacity of the storage which equals to 0 until the storage unit has been installed. I was aware of this, but did not think about it not applying to investments at the very beginning.
To Reproduce
To reproduce optimize any multi-period energy system model where storages are invested into in the first period (e.g. by associating them with comparatively low costs).
Expected behavior
My expectation was that the initial storage level should be 0. Instead, the storage can choose any amount up to its allowed max storage content for time step 0.
Suggested fix
For now, I suggest to simply force the storage_content[n, 0] = 0, whereby n is the storage unit and 0 refers to the first TIMESTEP. I'll open a feature branch and will self-assign to provide this fix.
The cleaner version would be to completely align the model formulation with the standard model, i.e. to also introduce an intial content and add balancing (over the storage lifetime) which I found hard to implement.
The text was updated successfully, but these errors were encountered:
Describe the bug
The
GenericInvestmentStorageBlock
lacks a limitation of initial storage level for the very first time step of the optimization run.To Reproduce
To reproduce optimize any multi-period energy system model where storages are invested into in the first period (e.g. by associating them with comparatively low costs).
Expected behavior
My expectation was that the initial storage level should be 0. Instead, the storage can choose any amount up to its allowed max storage content for time step 0.
Suggested fix
storage_content[n, 0] = 0
, whereby n is the storage unit and 0 refers to the first TIMESTEP. I'll open a feature branch and will self-assign to provide this fix.The text was updated successfully, but these errors were encountered: