Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatically enable targeted load shedding when necessary #52

Closed
danielolsen opened this issue May 26, 2020 · 0 comments · Fixed by #53
Closed

Automatically enable targeted load shedding when necessary #52

danielolsen opened this issue May 26, 2020 · 0 comments · Fixed by #53
Assignees
Labels
new feature Feature that is currently in progress.

Comments

@danielolsen
Copy link
Contributor

danielolsen commented May 26, 2020

In REISE classic, we automatically shed load by 5% during every interval in which Gurobi returns any status besides optimal. REISE.jl has the ability to shed load in a targeted way, only shedding load at the buses and hours where it is necessary, but currently this feature is controlled via a flag in the source code. If it is enabled, it adds significant dimensionality to problem (one new variable for each of 30,000 load buses, in each hour), slowing the solve time and problem update time and consuming more memory, even when it is not needed for a whole scenario. If it is not enabled, load shedding is controlled by the crude and time-consuming iterative 5% step process.

Proposal

  • Begin with load shedding disabled.
  • Upon the first non-optimal status return, re-construct the model with load shedding enabled and re-run the same interval.
  • Optional: if further non-optimal statuses are returned, enable additional solver settings which instruct the solver to take even more care in avoiding numerical issues.
  • Optional: after N consecutive intervals in load shedding is enabled but no load is shed, if there are still may intervals left to go, re-build the model without load shedding enabled, to hopefully speed up the remainder of the scenario once we are past peak load.
  • When extracting scenarios, we can no longer depend on knowing which results will be present based on the first result_*.mat file. We will need to be able to create a dataframe to hold results from load_shed if they are encountered in any interval, filling in zeros for all preceeding intervals.

Priority
Medium. It is not blocking anything, but if we can get it done soon then it will pay dividends for all future scenarios that we run.

@danielolsen danielolsen added this to the Flying Fluff milestone May 26, 2020
@danielolsen danielolsen added the feature request Request for a new feature. (Only lives in Backlog) label May 26, 2020
@kasparm kasparm added new feature Feature that is currently in progress. and removed feature request Request for a new feature. (Only lives in Backlog) labels Jun 8, 2020
@kasparm kasparm modified the milestones: Flying Fluff, Times A Changin Jun 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new feature Feature that is currently in progress.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants