-
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
Support of switch contingency in sensitivity analysis and refactoring #580
Conversation
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Kudos, SonarCloud Quality Gate passed! |
I cannot go further because in case of a factor that involves a |
This reverts commit 0a4d625.
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
@@ -54,7 +54,8 @@ protected void addResults(StateMonitor monitor, Consumer<LfBranch> branchConsume | |||
network.getBuses().stream() | |||
.filter(lfBus -> monitor.getVoltageLevelIds().contains(lfBus.getVoltageLevelId())) | |||
.filter(lfBus -> !lfBus.isDisabled()) | |||
.forEach(lfBus -> busResults.add(lfBus.createBusResult())); | |||
.filter(lfBus -> !lfBus.isFictitious()) |
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.
@geofjamg just tell me if we have to avoid fictitious buses here.
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Geoffroy Jamgotchian <[email protected]>
|
||
@Override | ||
public List<BusResult> createBusResults() { | ||
return bus.getVoltageLevel().getBusBreakerView().getBusesFromBusViewBusId(bus.getId()) |
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.
Does it still work when if bus is a bus/breaker one?
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.
No :-) I am on it.
Signed-off-by: Anne Tilloy <[email protected]>
…wsybl/powsybl-open-loadflow into contingency-propagation-sensi
Signed-off-by: Anne Tilloy <[email protected]>
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.
Let's merge it as it is. The issue with missing bus results is not linked to this PR.
Signed-off-by: Geoffroy Jamgotchian <[email protected]>
@@ -174,6 +175,14 @@ public void analyse(Network network, List<PropagatedContingency> contingencies, | |||
Objects.requireNonNull(resultWriter); | |||
Objects.requireNonNull(reporter); | |||
|
|||
boolean breakers = !allSwitchesToOpen.isEmpty(); | |||
if (breakers && hasBusTargetVoltage(factorReader)) { |
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.
@annetill Maybe to check the performance impact because we fully read factors 2 times with this. AC sensitivity analysis is quite slow so probably no impact, but to check with a larger number of factor.
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.
Maybe could have been done inside the actual factor read method without doing it 2 times?
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 can see that it was already the case to check for transformer voltage control. So new we read all factors and resolve to network 3 times.
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.
Fixed.
Signed-off-by: Geoffroy Jamgotchian <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Signed-off-by: Anne Tilloy <[email protected]>
Kudos, SonarCloud Quality Gate passed! |
Please check if the PR fulfills these requirements (please use
'[x]'
to check the checkboxes, or submit the PR and then click the checkboxes)Does this PR already have an issue describing the problem ? If so, link to this issue using
'#XXX'
and skip the restNo.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
In case of a switch contingency, and without any
BUS_VOLTAGE
sensitivity function, the sensitivity analysis will be based on bus/breaker view. In the other cases, it remains on the bus view. The contingency propagation is not supported in the PR because it leads to other issues such as shared controls in a zero impedance network: it is not handle because zero impedance branches are managed with a min impedance.Coding this, I have made a refactoring to unify the treatments between security analysis and sensitivity analysis. Without any switch to open in a security analysis, the computation is based on the bus/view and not longer in the bus/breaker view.
What is the current behavior? (You can also link to an open issue here)
What is the new behavior (if this is a feature change)?
Does this PR introduce a breaking change or deprecate an API? If yes, check the following:
Other information:
(if any of the questions/checkboxes don't apply, please delete them entirely)