From 54d0e1c4bfe15c62f9983cd27d7d277000b197bf Mon Sep 17 00:00:00 2001 From: Anne Tilloy <48123713+annetill@users.noreply.github.com> Date: Mon, 19 Sep 2022 15:12:45 +0200 Subject: [PATCH] UCTE importer: ignore coupler with same bus at both ends (#2291) Signed-off-by: Anne Tilloy --- .../com/powsybl/ucte/converter/UcteImporter.java | 4 ++++ .../powsybl/ucte/converter/UcteImporterTest.java | 7 +++++++ .../src/test/resources/ignoreCoupler.uct | 15 +++++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 ucte/ucte-converter/src/test/resources/ignoreCoupler.uct diff --git a/ucte/ucte-converter/src/main/java/com/powsybl/ucte/converter/UcteImporter.java b/ucte/ucte-converter/src/main/java/com/powsybl/ucte/converter/UcteImporter.java index a8264adeaa0..6ec97a046a3 100644 --- a/ucte/ucte-converter/src/main/java/com/powsybl/ucte/converter/UcteImporter.java +++ b/ucte/ucte-converter/src/main/java/com/powsybl/ucte/converter/UcteImporter.java @@ -350,6 +350,10 @@ private static void createCouplerFromLowImpedanceLine(Network network, UcteLine if (ucteVoltageLevel1 != ucteVoltageLevel2) { throw new UcteException("Nodes coupled with a low impedance line are expected to be in the same voltage level"); } + if (nodeCode1.equals(nodeCode2)) { + LOGGER.error("Coupler '{}' has same bus at both ends: ignored", ucteLine.getId()); + return; + } VoltageLevel voltageLevel = network.getVoltageLevel(ucteVoltageLevel1.getName()); Switch couplerSwitch = voltageLevel.getBusBreakerView().newSwitch() .setEnsureIdUnicity(true) diff --git a/ucte/ucte-converter/src/test/java/com/powsybl/ucte/converter/UcteImporterTest.java b/ucte/ucte-converter/src/test/java/com/powsybl/ucte/converter/UcteImporterTest.java index a11227a296d..d27b682a9ac 100644 --- a/ucte/ucte-converter/src/test/java/com/powsybl/ucte/converter/UcteImporterTest.java +++ b/ucte/ucte-converter/src/test/java/com/powsybl/ucte/converter/UcteImporterTest.java @@ -255,5 +255,12 @@ public void checkPhaseShifterRegulationMode() { assertEquals(0.0, network.getTwoWindingsTransformer("ZABCD221 ZEFGH221 1").getPhaseTapChanger().getTargetDeadband(), 10E-3); assertEquals(network.getTwoWindingsTransformer("ZABCD221 ZEFGH221 1").getTerminal1(), network.getTwoWindingsTransformer("ZABCD221 ZEFGH221 1").getPhaseTapChanger().getRegulationTerminal()); } + + @Test + public void ignoreCoupler() { + ResourceDataSource dataSource = new ResourceDataSource("ignoreCoupler", new ResourceSet("/", "ignoreCoupler.uct")); + Network network = new UcteImporter().importData(dataSource, new NetworkFactoryImpl(), null); + assertNull(network.getSwitch("BBBBBB11 BBBBBB11 1")); + } } diff --git a/ucte/ucte-converter/src/test/resources/ignoreCoupler.uct b/ucte/ucte-converter/src/test/resources/ignoreCoupler.uct new file mode 100644 index 00000000000..dfb635118c0 --- /dev/null +++ b/ucte/ucte-converter/src/test/resources/ignoreCoupler.uct @@ -0,0 +1,15 @@ +##C 2007.05.01 +Generated by powsybl, 2019.09.23 17:47 +Case date: 2019.09.24 19:30 +##N +##ZBE +BBBBBB11 0 0 3.96708 0.00000 0.00000 0.00000 +##ZXX +XXXXXX11 XNODE 1 1 0 3.96708 0.00000 0.00000 0.00000 +XXXXXX12 1 0 3.96708 0.00000 0.00000 0.00000 +##L +BBBBBB11 XXXXXX11 1 9 0.0000 0.2000 0.000000 5051 ABCDE +BBBBBB11 XXXXXX12 1 1 0.0000 0.2000 0.000000 1000 FGHIJ +BBBBBB11 BBBBBB11 1 7 0.0000 0.0000 0.000000 2000 BABAA +##T +##R