diff --git a/src/main/java/com/powsybl/openloadflow/dc/DcLoadFlowEngine.java b/src/main/java/com/powsybl/openloadflow/dc/DcLoadFlowEngine.java index e5e052014d..6bc7a1841b 100644 --- a/src/main/java/com/powsybl/openloadflow/dc/DcLoadFlowEngine.java +++ b/src/main/java/com/powsybl/openloadflow/dc/DcLoadFlowEngine.java @@ -74,7 +74,9 @@ public static double distributeSlack(LfNetwork network, Collection buses, public static double getActivePowerMismatch(Collection buses) { double mismatch = 0; for (LfBus b : buses) { - mismatch += b.getGenerationTargetP() - b.getLoadTargetP(); + if (!b.isDisabled()) { + mismatch += b.getGenerationTargetP() - b.getLoadTargetP(); + } } return -mismatch; } diff --git a/src/test/java/com/powsybl/openloadflow/sa/WoodburyDcSecurityAnalysisWithActionsTest.java b/src/test/java/com/powsybl/openloadflow/sa/WoodburyDcSecurityAnalysisWithActionsTest.java index 54a708400c..8b434a088d 100644 --- a/src/test/java/com/powsybl/openloadflow/sa/WoodburyDcSecurityAnalysisWithActionsTest.java +++ b/src/test/java/com/powsybl/openloadflow/sa/WoodburyDcSecurityAnalysisWithActionsTest.java @@ -219,9 +219,9 @@ void testSaDcPhaseTapChangerTapPositionChangeAlphaOnly(boolean dcFastMode) { assertEquals(network.getTwoWindingsTransformer("PS1").getTerminal2().getP(), brRelPS1.getP2(), LoadFlowAssert.DELTA_POWER); } - // TODO Does not work in DC mode - to fix in a separate PR - @Test - void testSaDcPhaseTapChangerTapPositionChangeWithConnectivityBreak() { + @ParameterizedTest + @ValueSource(booleans = {false, true}) + void testSaDcPhaseTapChangerTapPositionChangeWithConnectivityBreak(boolean fastDcMode) { Network network = PhaseControlFactory.createNetworkWith3Buses(); List monitors = createAllBranchesMonitors(network); @@ -235,6 +235,8 @@ void testSaDcPhaseTapChangerTapPositionChangeWithConnectivityBreak() { OpenLoadFlowParameters.create(parameters) .setSlackBusId("VL2_0") .setSlackBusSelectionMode(SlackBusSelectionMode.NAME); + securityAnalysisParameters.getExtension(OpenSecurityAnalysisParameters.class) + .setDcFastMode(fastDcMode); SecurityAnalysisResult result = runSecurityAnalysis(network, contingencies, monitors, securityAnalysisParameters, operatorStrategies, actions, ReportNode.NO_OP);