Skip to content

Commit

Permalink
Generator remote reactive power control on non impedant branches (#945)
Browse files Browse the repository at this point in the history
Signed-off-by: parvy <[email protected]>
  • Loading branch information
p-arvy authored Jan 15, 2024
1 parent dd6acf1 commit 8990bbd
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,8 @@ public void fix(boolean minImpedance, double lowImpedanceThreshold) {
} else {
// zero impedance phase shifter controller or controlled branch is not supported
branches.stream()
.filter(b -> b.isPhaseController() || b.isPhaseControlled())
.filter(b -> b.isPhaseController() || b.isPhaseControlled()
|| b.getGeneratorReactivePowerControl().isPresent())
.forEach(branch -> branch.setMinZ(lowImpedanceThreshold));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,33 @@ void testGeneratorRemoteReactivePowerControl() {
assertReactivePowerEquals(targetQ, l12.getTerminal(TwoSides.ONE));
}

@Test
void testGeneratorRemoteReactivePowerControlOnZeroImpedanceBranch() {
// create a basic 4-buses network
Network network = FourBusNetworkFactory.createBaseNetwork();
Generator g4 = network.getGenerator("g4");
Line l34 = network.getLine("l34");
l34.setR(0).setX(0);

double targetQ = 1.0;

// disable voltage control on g4
g4.setTargetQ(0).setVoltageRegulatorOn(false);

// generator g4 regulates reactive power on line 4->3 (on side of g4)
// which is zero impedant
g4.newExtension(RemoteReactivePowerControlAdder.class)
.withTargetQ(targetQ)
.withRegulatingTerminal(l34.getTerminal(TwoSides.TWO))
.withEnabled(true).add();

parameters.getExtension(OpenLoadFlowParameters.class)
.setReactivePowerRemoteControl(true);
LoadFlowResult result = loadFlowRunner.run(network, parameters);
assertTrue(result.isFullyConverged());
assertReactivePowerEquals(targetQ, l34.getTerminal(TwoSides.TWO));
}

@Test
void testDiscardedGeneratorRemoteReactivePowerControls() {
// create a basic 4-buses network
Expand Down

0 comments on commit 8990bbd

Please sign in to comment.