Add check for turning off transmission expnasion if limit reached #952
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes proposed in this Pull Request
I recently ran into an issue with myopic optimisations where if the transmission expansion limit has been reached in one time horizon, this could run into model infeasibility when solving at the next time horizon. What happened was that the minimum transmission network capacity given by
s_nom_min
andp_nom_min
combined equalled the global limit set inn.global_constraints
up to 12 significant digits. But with the lower limit through*_nom_min
so close to the upper limit given by the global constraint, the model ran into numerical problems and was declared infeasible.I think the "morally correct" approach is to check of transmission is already at the limit, and if so, fix the capacities at those given by
*_nom_min
, make them non-extendable and remove the global limit. That's what I've implemented in this PR.The implementation seems to be working fine on my side, though I haven't gotten around to testing it yet for the volume limit, only the cost limit. However, do let me know if anyone can think of any potential issues or better ways of dealing with this.
Checklist
envs/environment.yaml
.config.default.yaml
.doc/configtables/*.csv
.doc/release_notes.rst
is added.