Skip to content

Conversation

@staadecker
Copy link
Collaborator

@staadecker staadecker commented Dec 30, 2021

This PR adds two post-process steps. One of them will remove all emitting plants from the model if there's a zero-emissions constraint. The second will remove all plants that get retired before the first period. In a recent zero-emissions scenario, these post-processing steps reduced the size of my input folder by 21% (307M to 243M) and reduced solve time by 29% (94 min to 67 min). In another run that failed to find a solution within 29+ hours, this post-process step allowed a solution to be found in 7-8 hours.

This pull request solves part of the issues in #120.

  • Compare outputs of runs. See comment below.

@staadecker
Copy link
Collaborator Author

staadecker commented Dec 30, 2021

Update: Seems like the results were slightly different, I am currently debugging as to why this would be

@staadecker
Copy link
Collaborator Author

Update: I have confirmed on a California-only model that both get_inputs post-process steps don't affect the objective function result. Although dispatch is slightly different, I believe this is because there are multiple optimal solutions since both the total costs are exactly the same to the cent. Further, I've found this post-process step to greatly speed up solve time for more complex models. In a 365 day, full-WECC model with only PV aggregation, I found the model to be infeasible without this step (29 hours and still running) but take only 7 hours with this step.

@staadecker staadecker changed the title Remove unecessary plants (WIP) Remove unecessary plants Jan 27, 2022
@staadecker staadecker marked this pull request as ready for review January 27, 2022 00:10
@pesap
Copy link
Collaborator

pesap commented Jan 31, 2022

Hey @staadecker,

I am actually curious why the model for WECC is infeasible. From the runs I have made so far, we found feasible solutions with and w/o aggregated generators. Are you changing something else in the scenario?

@staadecker
Copy link
Collaborator Author

staadecker commented Jan 31, 2022

Were your scenarios 365 days with 4-hour timesteps? I remember the model being infeasible during the summer which was the reason we decided to do some aggregation. I don't think I've changed anything else, I can attach the input config.yaml if you want to see for yourself.

@staadecker
Copy link
Collaborator Author

@PatyHidalgo could you review this, I would like to use it in my 1h sample tests since performance is a big concern

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants