irena-flextool / flextool

IRENA FlexTool is an energy and power systems model for understanding the role of variable power generation in future energy systems.
https://www.irena.org/energytransition/Energy-System-Models-and-Data/IRENA-FlexTool
Other
23 stars 5 forks source link

Rolling window optimization #57

Closed jkiviluo closed 1 year ago

jkiviluo commented 1 year ago

Rolling window optimization can currently be performed by setting the solve sequence manually, but this would be very impractical for hundreds of roll forwards.

As we want to enable nested rolling windows (e.g. investment at the highest level, water value calculation in the middle and then dispatch at the bottom), solve objects should have an optional parameter include_solve. When set, it would call the named lower level solve, which can then be a set of rolling solves when using rolling_window value for the solve_mode in the lower level solve (as defined below). If the calling (higher level) solve is itself a rolling solve, it will then include the lower level (rolling) solve between every roll forward it takes. solves parameter of model class will need to hold only the solves for the highest level.

For rolling solves, we should add parameters that allow to define the roll forward properties for a 'solve' object:

There needs to be an update of parameters that choose what values to fix/lock/keep form specific solves. There is another issue for that: https://github.com/irena-flextool/flextool/issues/58

FlexToolRunner.py will then generate the solve sequence the model will need.

jkiviluo commented 1 year ago

image

jkiviluo commented 1 year ago

Has been implemented with 10d7e48770ef54e27c6403a23af0165b886141ef