Skip to content

Commit fc6e2cc

Browse files
better control of getRegulationMode value (#89)
Signed-off-by: Mathieu DEHARBE <mathieu.deharbe@rte-france.com>
1 parent 8889138 commit fc6e2cc

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/main/java/org/gridsuite/modification/modifications/TwoWindingsTransformerModification.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,8 @@ private void processRegulating(RatioTapChangerModificationInfos ratioTapChangerI
504504
Boolean isRegulating = ratioTapChangerInfos.getRegulating() != null ? ratioTapChangerInfos.getRegulating().getValue() : null;
505505
// need to set regulation mode before setting regulating
506506
if (isRegulating != null) {
507-
if (isRegulating && ratioTapChanger.getRegulationMode() != RatioTapChanger.RegulationMode.VOLTAGE) {
507+
boolean mustUpdateRegulationMode = ratioTapChanger == null || ratioTapChanger.getRegulationMode() != RatioTapChanger.RegulationMode.VOLTAGE;
508+
if (isRegulating && mustUpdateRegulationMode) {
508509
RatioTapChanger.RegulationMode regulationMode = RatioTapChanger.RegulationMode.VOLTAGE;
509510
AttributeModification<RatioTapChanger.RegulationMode> regulationModeModification = AttributeModification.toAttributeModification(regulationMode, OperationType.SET);
510511
ReportNode regulationModeReport = ModificationUtils.getInstance().applyElementaryModificationsAndReturnReport(

src/test/java/org/gridsuite/modification/modifications/TwoWindingsTransformerModificationTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,31 @@ void testRatioTapChangerLoadTapChangingCapabilitiesModification() {
850850
assertNull(ratioTapChanger.getRegulationTerminal());
851851
}
852852

853+
@Test
854+
void testCreateRegulatingRatioTapChanger() {
855+
String twtId = "trf3";
856+
TwoWindingsTransformer twt3 = createTwoWindingsTransformer(getNetwork().getSubstation("s1"), "trf3", "trf3", 2.0, 14.745, 0.0, 3.2E-5, 400.0, 225.0,
857+
41, 151, getNetwork().getVoltageLevel("v1").getId(), getNetwork().getVoltageLevel("v2").getId(),
858+
"trf3", 1, ConnectablePosition.Direction.TOP,
859+
"trf3", 2, ConnectablePosition.Direction.TOP);
860+
861+
TwoWindingsTransformerModificationInfos twoWindingsTransformerModificationInfos = createRatioTapChangerInfos(twtId);
862+
// modify 'twoWindingsTransformerModificationInfos' in order to test the creation of a ratio tap changer immediately regulating
863+
twoWindingsTransformerModificationInfos.getRatioTapChanger().setRegulating(new AttributeModification<>(true, OperationType.SET));
864+
twoWindingsTransformerModificationInfos.getRatioTapChanger().setLoadTapChangingCapabilities(new AttributeModification<>(true, OperationType.SET));
865+
twoWindingsTransformerModificationInfos.getRatioTapChanger().setTargetV(new AttributeModification<>(200.0, OperationType.SET));
866+
twoWindingsTransformerModificationInfos.getRatioTapChanger().setTargetDeadband(new AttributeModification<>(2.0, OperationType.SET));
867+
twoWindingsTransformerModificationInfos.toModification().apply(getNetwork());
868+
869+
RatioTapChanger ratioTapChanger = twt3.getRatioTapChanger();
870+
871+
assertTrue(ratioTapChanger.isRegulating());
872+
assertSame(RatioTapChanger.RegulationMode.VOLTAGE, ratioTapChanger.getRegulationMode());
873+
assertEquals("v3", ratioTapChanger.getRegulationTerminal().getVoltageLevel().getId());
874+
assertEquals("v3load", ratioTapChanger.getRegulationTerminal().getConnectable().getId());
875+
assertEquals(ThreeSides.ONE, ratioTapChanger.getRegulationTerminal().getSide());
876+
}
877+
853878
private TwoWindingsTransformerModificationInfos createRatioTapChangerInfos(String twtId) {
854879
return TwoWindingsTransformerModificationInfos.builder()
855880
.stashed(false)

0 commit comments

Comments
 (0)