Periodic boundary conditions for storage level #317
PaulTalbot-INL
announced in
Releases and Patches
Replies: 1 comment
-
@sobincho @mgarrouste this may be of particular interest to you. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
With the merge of #313, by default we have added a periodic boundary constraint for the level of storage units. That is, the level of the storage at the last time point is required to match the level at the first time step. There is a node to enable (default) or disable this behavior in the
<stores>
node of each storage unit called<periodic_level>
that accepts boolean values.This development comes in response to concerns expressed by analysts who were seeing some undesired modeling behaviors with storage. In cases where the stored commodity has potential for profit, the
initial_stored
commodity in the storage unit could be used "for free", and if the initial stored amount was significant or the optimization windows short enough, this could represent a large amount of "free commodity". Requiring the final level to match the initial level alleviates this concern.The inverse is also true, if a storage is nearly empty at the start of each segment and the commodity represents a cost (such as selling at negative prices), the storage was a way to offload commodity into a storage unit that resets at the end of each window. This is also alleviated by this periodic boundary requirement.
However, this periodic condition might be thought of as treating a symptom, not solving the modeling solution itself. If segmentation is too aggressive, the storage cannot determine a suitable fill/empty cycle for optimal usage. In this sense, inaccurate use of storage is more likely a symptom of non-ideal modeling choices via segmentation than issues with the physics of the storage itself. For this reason, we have included the option to disable period conditions.
Another solution that may be considered in the future is allowing
initial_stored
to be optimized, but retain the periodic boundary condition. This would allow effective shifting of the storage fill period throughout the segment.Let us know your thoughts in the comments below!
Beta Was this translation helpful? Give feedback.
All reactions