-
Notifications
You must be signed in to change notification settings - Fork 8
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
DC Load Flow reference bus and multi slack support #1118
Conversation
Signed-off-by: vmouradian <valentin.mouradian@artelys.com>
Signed-off-by: vmouradian <valentin.mouradian@artelys.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would be nice also to explain multi slack handling in documentation.
In DC we can take shortcuts because it is a lossless model. In AC it is a different story.
src/test/java/com/powsybl/openloadflow/ac/MultipleSlackBusesTest.java
Outdated
Show resolved
Hide resolved
src/main/java/com/powsybl/openloadflow/dc/equations/DcEquationSystemCreator.java
Show resolved
Hide resolved
So what is the purpose of this feature? In AC, the only aim was to allow convergence for very specific model (large and very imbalanced that was diverging at first NR). But in DC with just a simple linear system solving what could be the point? |
This is useful and needed solely when a DC voltage init is used before AC NR, we need to produce angles consistent with what the AC NR is trying to solve. Note that here is also solved an issue about angle reference. |
Ok it makes sense. Thanks. |
Signed-off-by: vmouradian <valentin.mouradian@artelys.com>
src/test/java/com/powsybl/openloadflow/dc/DcMultipleSlackBusesTest.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Damien Jeandemange <damien.jeandemange@artelys.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ty
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we imagine parametrizing the tests in AcMultipleSlackBusesTests
rather than having a whole class DcMultipleSlackBusesTest
that implements the same cases ? (To do so maybe a condition can be added in the test to differentiate asserts values between AC and DC)
By doing so, when adding new tests in the future, we would be sure to implement them in both AC and DC mode.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, here a proposal for this : 2b39a11, what do you think ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you ! It is good for me. #1116 has been merged so the values can be changed for the corresponding test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the values in a6ab981
Signed-off-by: vmouradian <valentin.mouradian@artelys.com>
# Conflicts: # src/test/java/com/powsybl/openloadflow/ac/MultipleSlackBusesTest.java
Signed-off-by: vmouradian <valentin.mouradian@artelys.com>
Quality Gate passedIssues Measures |
Signed-off-by: vmouradian <valentin.mouradian@artelys.com> Signed-off-by: Didier Vidal <didier.vidal_externe@rte-france.com>
Please check if the PR fulfills these requirements
Does this PR already have an issue describing the problem?
Handles multi slack for DC load flow
Fixes #1117
What kind of change does this PR introduce?
Feature and bugfix
What is the current behavior?
see #1117
What is the new behavior (if this is a feature change)?
DC Load Flow properly account for the selected reference bus - also important for the DC Values Voltage Initializer before the Newton-Raphson.
Only first slack bus has p balance equation deactivated.
For other slack buses the corresponding value in target vector is updated : (finalTarget = targetP + totalSlack/nbSlackBuses)
Does this PR introduce a breaking change or deprecate an API?