Apparent power limit at both ends of an AC branch - #207
Merged
Merged
Conversation
The current limit uses the lowest voltage of the sending bus, so it lets a branch carry up to 5 % more than its rating at 1.0 p.u. The new option IndACApparentPowerLimit also keeps P^2 + Q^2 within the rating squared at both ends. The piecewise-linear model uses a 12-sided polygon inside the circle instead. The option is off by default, and the model is then unchanged. On 9n_AC the option brings the branch-hours above rating from 618 to none, for 0.14 % more generation cost.
The comment above the option defaults in InputData is 18 lines instead of 28. It keeps every option, value and reference, and the unfinished last sentence is now complete.
…olve As a quadratic constraint, the apparent power limit left Gurobi's barrier with numerical trouble on a 695-bus case. Scaling it by the rating, or turning presolve aggregation off, only moved the failure to other inputs. The SOCP and piecewise-linear models now use a 24-sided polygon inside the circle, which is at most 0.9 % below the rating. The exact NLP and the AC recovery step use the circle itself, scaled by the rating. A new test checks that the recovery step swaps the polygon for the circle.
The entry is four lines instead of seven. The detail stays in the documentation and the pull request.
The comments and test docstrings added in this pull request are shorter. The code is unchanged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
Under the branch flow model, the rating limits the current at the lowest voltage of the sending bus,
l <= (TTC / Vmin)^2.The apparent power this admits is
TTC * V / Vmin: 2% above the rating at 1.0 p.u. on a 0.98 lower limit, 5% on 0.95, and16% at 1.10 p.u. on 0.95. The DC model limits the active power to the rating itself, so an AC and DC comparison gives the AC
model up to 5% more transfer capacity on most branches.
Solution
IndACApparentPowerLimit = 1inoT_Data_OptionaddsP^2 + Q^2 <= TTC^2at both ends of each branch.a quadratic constraint gave Gurobi numerical trouble on a 695-bus case.
Results
9n_AC, 8736 hours:695-bus Nordic case, one hour, generation fixed at a reference power flow solution: with the case's ratings, the option
sheds 22.5 MW of load, because the reference flows exceed six ratings. With those ratings raised to the reference loading,
the option changes nothing; the solve takes 90 s.
Tests
9n_AC: largest loading above 101% without the option, at most 100% with it.9n_ACwithIndACRestore = 1: the circle replaces the polygon, largest loading 99.6% against 105.0%.Ipopt does not converge on the full year, with or without the option.
Documentation
doc/md/InputData.md: the option in theoT_Data_Optiontable and a section "The thermal limit of an AC branch". Thecomment listing the AC options in
openTEPES_InputData.pyis shortened.