From fb3795e86a69d94a0e02b55c05fc99af7ee51d29 Mon Sep 17 00:00:00 2001 From: rcourtier <129156292+rcourtier@users.noreply.github.com> Date: Mon, 27 Jan 2025 17:00:16 +0100 Subject: [PATCH 1/7] Refactor grouped queries in CgmesModel (#3238) * Fix duplicate rdf:ID in same xml file * Cache transformer ends by transformer id in the context * Cache tap changers by transformer id in the context * Cache tap changers table points by table id in the context * Cache reactive capability curve data by curve id in the context * Cache nonlinear shunt compensator points by shunt id in the context Signed-off-by: Romain Courtier --- ...MicroGridTestConfiguration_BC_BE_EQ_V2.xml | 2 +- .../com/powsybl/cgmes/conversion/Context.java | 101 ++++++++---------- .../powsybl/cgmes/conversion/Conversion.java | 38 ++++--- .../conversion/NodeContainerMapping.java | 4 +- .../cgmes/conversion/PhaseAngleClock.java | 28 +++-- .../conversion/elements/ShuntConversion.java | 2 +- .../conversion/elements/hvdc/Adjacency.java | 23 ++-- .../elements/hvdc/CgmesDcConversion.java | 4 +- .../elements/hvdc/NodeEquipment.java | 19 ++-- .../AbstractTransformerConversion.java | 41 +++---- .../CgmesPhaseTapChangerBuilder.java | 8 +- .../CgmesRatioTapChangerBuilder.java | 8 +- .../elements/transformers/TapChanger.java | 14 ++- .../test/FakeTapChangerConversionTest.java | 28 ----- .../microGridBaseCaseBE-target-deadband.txt | 2 +- .../cgmes/model/AbstractCgmesModel.java | 71 ------------ .../com/powsybl/cgmes/model/CgmesModel.java | 27 +---- .../cgmes/model/CgmesModelFactory.java | 16 ++- .../cgmes/model/InMemoryCgmesModel.java | 56 ++-------- .../triplestore/CgmesModelTripleStore.java | 32 ++---- .../src/main/resources/CIM14.sparql | 14 ++- .../src/main/resources/CIM16.sparql | 45 ++------ .../src/test/resources/be.json | 32 +++--- 23 files changed, 221 insertions(+), 394 deletions(-) delete mode 100644 cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/FakeTapChangerConversionTest.java diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_BE_v2_transformer_at_boundary/MicroGridTestConfiguration_BC_BE_EQ_V2.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_BE_v2_transformer_at_boundary/MicroGridTestConfiguration_BC_BE_EQ_V2.xml index 7590882ad0c..eabb8e938eb 100644 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_BE_v2_transformer_at_boundary/MicroGridTestConfiguration_BC_BE_EQ_V2.xml +++ b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_BE_v2_transformer_at_boundary/MicroGridTestConfiguration_BC_BE_EQ_V2.xml @@ -1427,7 +1427,7 @@ - + BE-TR2_1 BE-T_1 400.000000 diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Context.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Context.java index fec6eca4fd2..b571319afe5 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Context.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Context.java @@ -18,7 +18,6 @@ import com.powsybl.iidm.network.IdentifiableType; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Terminal; -import com.powsybl.triplestore.api.PropertyBag; import com.powsybl.triplestore.api.PropertyBags; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,11 +58,15 @@ public Context(CgmesModel cgmes, Config config, Network network, ReportNode repo regulatingControlMapping = new RegulatingControlMapping(this); nodeMapping = new NodeMapping(this); - ratioTapChangerTables = new HashMap<>(); - phaseTapChangerTables = new HashMap<>(); - reactiveCapabilityCurveData = new HashMap<>(); - powerTransformerRatioTapChangers = new HashMap<>(); - powerTransformerPhaseTapChangers = new HashMap<>(); + cachedGroupedTransformerEnds = new HashMap<>(); + cachedGroupedRatioTapChangers = new HashMap<>(); + cachedGroupedRatioTapChangerTablePoints = new HashMap<>(); + cachedGroupedPhaseTapChangers = new HashMap<>(); + cachedGroupedPhaseTapChangerTablePoints = new HashMap<>(); + cachedGroupedShuntCompensatorPoints = new HashMap<>(); + cachedGroupedReactiveCapabilityCurveData = new HashMap<>(); + + buildCaches(); } public CgmesModel cgmes() { @@ -138,71 +141,49 @@ public static String boundarySubstationId(String nodeId) { return nodeId + "_S"; } - public void loadReactiveCapabilityCurveData() { - PropertyBags rccdata = cgmes.reactiveCapabilityCurveData(); - if (rccdata == null) { - return; - } - rccdata.forEach(p -> { - String curveId = p.getId("ReactiveCapabilityCurve"); - reactiveCapabilityCurveData.computeIfAbsent(curveId, cid -> new PropertyBags()).add(p); - }); - } - - public PropertyBags reactiveCapabilityCurveData(String curveId) { - return reactiveCapabilityCurveData.get(curveId); + private void buildCaches() { + buildCache(cachedGroupedTransformerEnds, cgmes().transformerEnds(), CgmesNames.POWER_TRANSFORMER); + buildCache(cachedGroupedRatioTapChangers, cgmes().ratioTapChangers(), CgmesNames.POWER_TRANSFORMER); + buildCache(cachedGroupedRatioTapChangerTablePoints, cgmes().ratioTapChangerTablePoints(), CgmesNames.RATIO_TAP_CHANGER_TABLE); + buildCache(cachedGroupedPhaseTapChangers, cgmes().phaseTapChangers(), CgmesNames.POWER_TRANSFORMER); + buildCache(cachedGroupedPhaseTapChangerTablePoints, cgmes().phaseTapChangerTablePoints(), CgmesNames.PHASE_TAP_CHANGER_TABLE); + buildCache(cachedGroupedShuntCompensatorPoints, cgmes().nonlinearShuntCompensatorPoints(), "Shunt"); + buildCache(cachedGroupedReactiveCapabilityCurveData, cgmes().reactiveCapabilityCurveData(), "ReactiveCapabilityCurve"); } - public void loadRatioTapChangers() { - cgmes.ratioTapChangers().forEach(ratio -> { - String id = ratio.getId(CgmesNames.RATIO_TAP_CHANGER); - powerTransformerRatioTapChangers.put(id, ratio); + private void buildCache(Map cache, PropertyBags ps, String groupName) { + ps.forEach(p -> { + String groupId = p.getId(groupName); + cache.computeIfAbsent(groupId, b -> new PropertyBags()).add(p); }); } - public PropertyBag ratioTapChanger(String id) { - return powerTransformerRatioTapChangers.get(id); + public PropertyBags transformerEnds(String transformerId) { + return cachedGroupedTransformerEnds.getOrDefault(transformerId, new PropertyBags()); } - public void loadPhaseTapChangers() { - cgmes.phaseTapChangers().forEach(phase -> { - String id = phase.getId(CgmesNames.PHASE_TAP_CHANGER); - powerTransformerPhaseTapChangers.put(id, phase); - }); + public PropertyBags ratioTapChangers(String transformerId) { + return cachedGroupedRatioTapChangers.getOrDefault(transformerId, new PropertyBags()); } - public PropertyBag phaseTapChanger(String id) { - return powerTransformerPhaseTapChangers.get(id); + public PropertyBags ratioTapChangerTablePoints(String tableId) { + return cachedGroupedRatioTapChangerTablePoints.getOrDefault(tableId, new PropertyBags()); } - public void loadRatioTapChangerTables() { - PropertyBags rtcpoints = cgmes.ratioTapChangerTablesPoints(); - if (rtcpoints == null) { - return; - } - rtcpoints.forEach(p -> { - String tableId = p.getId("RatioTapChangerTable"); - ratioTapChangerTables.computeIfAbsent(tableId, tid -> new PropertyBags()).add(p); - }); + public PropertyBags phaseTapChangers(String transformerId) { + return cachedGroupedPhaseTapChangers.getOrDefault(transformerId, new PropertyBags()); } - public void loadPhaseTapChangerTables() { - PropertyBags ptcpoints = cgmes.phaseTapChangerTablesPoints(); - if (ptcpoints == null) { - return; - } - ptcpoints.forEach(p -> { - String tableId = p.getId("PhaseTapChangerTable"); - phaseTapChangerTables.computeIfAbsent(tableId, tid -> new PropertyBags()).add(p); - }); + public PropertyBags phaseTapChangerTablePoints(String tableId) { + return cachedGroupedPhaseTapChangerTablePoints.getOrDefault(tableId, new PropertyBags()); } - public PropertyBags ratioTapChangerTable(String tableId) { - return ratioTapChangerTables.get(tableId); + public PropertyBags nonlinearShuntCompensatorPoints(String shuntId) { + return cachedGroupedShuntCompensatorPoints.getOrDefault(shuntId, new PropertyBags()); } - public PropertyBags phaseTapChangerTable(String tableId) { - return phaseTapChangerTables.get(tableId); + public PropertyBags reactiveCapabilityCurveData(String curveId) { + return cachedGroupedReactiveCapabilityCurveData.getOrDefault(curveId, new PropertyBags()); } // Handling issues found during conversion @@ -313,11 +294,13 @@ private static void logIssue(ConversionIssueCategory category, String what, Supp private final LoadingLimitsMapping loadingLimitsMapping; private final RegulatingControlMapping regulatingControlMapping; - private final Map ratioTapChangerTables; - private final Map phaseTapChangerTables; - private final Map reactiveCapabilityCurveData; - private final Map powerTransformerRatioTapChangers; - private final Map powerTransformerPhaseTapChangers; + private final Map cachedGroupedTransformerEnds; + private final Map cachedGroupedRatioTapChangers; + private final Map cachedGroupedRatioTapChangerTablePoints; + private final Map cachedGroupedPhaseTapChangers; + private final Map cachedGroupedPhaseTapChangerTablePoints; + private final Map cachedGroupedShuntCompensatorPoints; + private final Map cachedGroupedReactiveCapabilityCurveData; private static final Logger LOG = LoggerFactory.getLogger(Context.class); } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java index 4ef9192b6c5..751a89d519c 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java @@ -472,11 +472,6 @@ private Network createNetwork() { private Context createContext(Network network, ReportNode reportNode) { Context context = new Context(cgmes, config, network, reportNode); context.dc().initialize(); - context.loadRatioTapChangers(); - context.loadPhaseTapChangers(); - context.loadRatioTapChangerTables(); - context.loadPhaseTapChangerTables(); - context.loadReactiveCapabilityCurveData(); return context; } @@ -688,21 +683,24 @@ private void convertEquivalentBranchesToLines(Context context, Set delay private void convertTransformers(Context context, Set delayedBoundaryNodes) { context.pushReportNode(CgmesReports.convertingElementTypeReport(context.getReportNode(), CgmesNames.POWER_TRANSFORMER)); - cgmes.groupedTransformerEnds().forEach((t, ends) -> { - if (LOG.isTraceEnabled()) { - LOG.trace("Transformer {}, {}-winding", t, ends.size()); - ends.forEach(e -> LOG.trace(e.tabulateLocals("TransformerEnd"))); - } - if (ends.size() == 2) { - convertTwoWindingsTransformers(context, ends, delayedBoundaryNodes); - } else if (ends.size() == 3) { - convertThreeWindingsTransformers(context, ends); - } else { - String what = "PowerTransformer " + t; - Supplier reason = () -> String.format("Has %d ends. Only 2 or 3 ends are supported", ends.size()); - context.invalid(what, reason); - } - }); + cgmes.transformers().stream() + .map(t -> context.transformerEnds(t.getId("PowerTransformer"))) + .forEach(ends -> { + String transformerId = ends.get(0).getId("PowerTransformer"); + if (LOG.isTraceEnabled()) { + LOG.trace("Transformer {}, {}-winding", transformerId, ends.size()); + ends.forEach(e -> LOG.trace(e.tabulateLocals("TransformerEnd"))); + } + if (ends.size() == 2) { + convertTwoWindingsTransformers(context, ends, delayedBoundaryNodes); + } else if (ends.size() == 3) { + convertThreeWindingsTransformers(context, ends); + } else { + String what = "PowerTransformer " + transformerId; + Supplier reason = () -> String.format("Has %d ends. Only 2 or 3 ends are supported", ends.size()); + context.invalid(what, reason); + } + }); context.popReportNode(); } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/NodeContainerMapping.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/NodeContainerMapping.java index 4ddeaf4200f..9b41dc7c335 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/NodeContainerMapping.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/NodeContainerMapping.java @@ -155,7 +155,9 @@ private void buildAdjacency(Map> voltageLevelAdjacency, Map< boolean fictitiousVoltageLevelForEveryNode = context.config().getCreateFictitiousVoltageLevelsForEveryNode(); context.cgmes().switches().forEach(sw -> addAdjacencyThroughSwitch(voltageLevelAdjacency, substationAdjacency, sw, fictitiousVoltageLevelForEveryNode)); - context.cgmes().groupedTransformerEnds().forEach((t, tends) -> addAdjacencyThroughTransformerEnds(substationAdjacency, tends)); + context.cgmes().transformers().stream() + .map(t -> context.transformerEnds(t.getId("PowerTransformer"))) + .forEach(tends -> addAdjacencyThroughTransformerEnds(substationAdjacency, tends)); context.cgmes().acLineSegments().forEach(ac -> addAdjacencyThroughBranch(fictitiousVoltageLevelAdjacency, ac, fictitiousVoltageLevelForEveryNode)); context.cgmes().seriesCompensators().forEach(sc -> addAdjacencyThroughBranch(fictitiousVoltageLevelAdjacency, sc, fictitiousVoltageLevelForEveryNode)); diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/PhaseAngleClock.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/PhaseAngleClock.java index bdafeaf8d0f..70f98edfa31 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/PhaseAngleClock.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/PhaseAngleClock.java @@ -24,6 +24,9 @@ import com.powsybl.triplestore.api.PropertyBags; import com.powsybl.triplestore.api.TripleStore; +import java.util.HashMap; +import java.util.Map; + /** * @author Luma Zamarreño {@literal } * @author José Antonio Marqués {@literal } @@ -48,16 +51,21 @@ public void process(Network network, TripleStore tripleStore) { LOG.warn("PhaseAngleClock-PostProcessor: Unexpected null cgmesModel pointer"); return; } - - cgmes.groupedTransformerEnds().forEach((t, ends) -> { - if (ends.size() == 2) { - phaseAngleClockTwoWindingTransformer(ends, network); - } else if (ends.size() == 3) { - phaseAngleClockThreeWindingTransformer(ends, network); - } else { - throw new PowsyblException(String.format("Unexpected TransformerEnds: ends %d", ends.size())); - } - }); + Map groupedTransformerEnds = new HashMap<>(); + cgmes.transformerEnds() + .forEach(p -> groupedTransformerEnds + .computeIfAbsent(p.getId("PowerTransformer"), b -> new PropertyBags()) + .add(p)); + groupedTransformerEnds.values() + .forEach(ends -> { + if (ends.size() == 2) { + phaseAngleClockTwoWindingTransformer(ends, network); + } else if (ends.size() == 3) { + phaseAngleClockThreeWindingTransformer(ends, network); + } else { + throw new PowsyblException(String.format("Unexpected TransformerEnds: ends %d", ends.size())); + } + }); } private void phaseAngleClockTwoWindingTransformer(PropertyBags ends, Network network) { diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ShuntConversion.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ShuntConversion.java index 826bfcdbdf0..39b14cebdb1 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ShuntConversion.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ShuntConversion.java @@ -61,7 +61,7 @@ public void convert() { .add(); } else if ("NonlinearShuntCompensator".equals(shuntType)) { ShuntCompensatorNonLinearModelAdder modelAdder = adder.newNonLinearModel(); - PropertyBags ss = context.cgmes().nonlinearShuntCompensatorPoints(id); + PropertyBags ss = context.nonlinearShuntCompensatorPoints(id); ss.stream() .filter(s -> s.asInt(SECTION_NUMBER) > 0) .sorted(Comparator.comparing(s -> s.asInt(SECTION_NUMBER))) diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/Adjacency.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/Adjacency.java index d7d60448a7b..4a58d8a67c1 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/Adjacency.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/Adjacency.java @@ -15,6 +15,7 @@ import java.util.Map; import java.util.Objects; +import com.powsybl.cgmes.conversion.Context; import com.powsybl.cgmes.model.CgmesDcTerminal; import com.powsybl.cgmes.model.CgmesModel; import com.powsybl.cgmes.model.CgmesNames; @@ -36,7 +37,7 @@ enum AdjacentType { private final Map> adjacency; - Adjacency(CgmesModel cgmesModel, AcDcConverterNodes acDcConverterNodes) { + Adjacency(CgmesModel cgmesModel, Context context, AcDcConverterNodes acDcConverterNodes) { adjacency = new HashMap<>(); cgmesModel.dcLineSegments().forEach(dcls -> computeDcLineSegmentAdjacency(cgmesModel, dcls)); @@ -44,15 +45,17 @@ enum AdjacentType { .forEach((key, value) -> computeAcDcConverterAdjacency(value.acNode, value.dcNode)); - cgmesModel.groupedTransformerEnds().forEach((t, ends) -> { - if (ends.size() == 2) { - computeTwoWindingsTransformerAdjacency(cgmesModel, ends); - } else if (ends.size() == 3) { - computeThreeWindingsTransformerAdjacency(cgmesModel, ends); - } else { - throw new PowsyblException(String.format("Unexpected TransformerEnds: ends %d", ends.size())); - } - }); + cgmesModel.transformers().stream() + .map(t -> context.transformerEnds(t.getId("PowerTransformer"))) + .forEach(ends -> { + if (ends.size() == 2) { + computeTwoWindingsTransformerAdjacency(cgmesModel, ends); + } else if (ends.size() == 3) { + computeThreeWindingsTransformerAdjacency(cgmesModel, ends); + } else { + throw new PowsyblException(String.format("Unexpected TransformerEnds: ends %d", ends.size())); + } + }); } private void computeDcLineSegmentAdjacency(CgmesModel cgmesModel, PropertyBag equipment) { diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/CgmesDcConversion.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/CgmesDcConversion.java index db01fc7178c..5bb52f24a05 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/CgmesDcConversion.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/CgmesDcConversion.java @@ -51,11 +51,11 @@ public void convert() { // Get hvdc configurations AcDcConverterNodes acDcConverterNodes = new AcDcConverterNodes(cgmesModel); - Adjacency adjacency = new Adjacency(cgmesModel, acDcConverterNodes); + Adjacency adjacency = new Adjacency(cgmesModel, context, acDcConverterNodes); if (adjacency.isEmpty()) { return; } - NodeEquipment nodeEquipment = new NodeEquipment(cgmesModel, acDcConverterNodes, adjacency); + NodeEquipment nodeEquipment = new NodeEquipment(cgmesModel, context, acDcConverterNodes, adjacency); Islands islands = new Islands(adjacency); IslandsEnds islandsEnds = new IslandsEnds(); diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/NodeEquipment.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/NodeEquipment.java index c0db811141b..4cea45b77d3 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/NodeEquipment.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/hvdc/NodeEquipment.java @@ -11,6 +11,7 @@ import java.util.*; import java.util.stream.Collectors; +import com.powsybl.cgmes.conversion.Context; import com.powsybl.cgmes.model.CgmesDcTerminal; import com.powsybl.cgmes.model.CgmesModel; import com.powsybl.cgmes.model.CgmesNames; @@ -31,7 +32,7 @@ enum EquipmentType { private final Map> nodeEquipment; - NodeEquipment(CgmesModel cgmesModel, AcDcConverterNodes acDcConverterNodes, Adjacency adjacency) { + NodeEquipment(CgmesModel cgmesModel, Context context, AcDcConverterNodes acDcConverterNodes, Adjacency adjacency) { nodeEquipment = new HashMap<>(); cgmesModel.dcLineSegments().forEach(dcls -> computeDcLineSegment(cgmesModel, adjacency, dcls)); @@ -40,13 +41,15 @@ enum EquipmentType { .forEach(value -> addEquipment(adjacency, value.id, value.acNode, value.dcNode, EquipmentType.AC_DC_CONVERTER)); - cgmesModel.groupedTransformerEnds().forEach((t, ends) -> { - if (ends.size() == 2) { - computeTwoWindingsTransformer(cgmesModel, adjacency, ends); - } else if (ends.size() == 3) { - computeThreeWindingsTransformer(cgmesModel, adjacency, ends); - } - }); + cgmesModel.transformers().stream() + .map(t -> context.transformerEnds(t.getId("PowerTransformer"))) + .forEach(ends -> { + if (ends.size() == 2) { + computeTwoWindingsTransformer(cgmesModel, adjacency, ends); + } else if (ends.size() == 3) { + computeThreeWindingsTransformer(cgmesModel, adjacency, ends); + } + }); } private void computeDcLineSegment(CgmesModel cgmesModel, Adjacency adjacency, PropertyBag equipment) { diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/AbstractTransformerConversion.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/AbstractTransformerConversion.java index 2f6a272dba5..6826bf753c7 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/AbstractTransformerConversion.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/AbstractTransformerConversion.java @@ -9,20 +9,18 @@ package com.powsybl.cgmes.conversion.elements.transformers; import com.powsybl.cgmes.conversion.Context; -import com.powsybl.cgmes.conversion.Conversion; import com.powsybl.cgmes.conversion.RegulatingControlMappingForTransformers.CgmesRegulatingControlPhase; import com.powsybl.cgmes.conversion.RegulatingControlMappingForTransformers.CgmesRegulatingControlRatio; import com.powsybl.cgmes.conversion.elements.AbstractConductingEquipmentConversion; import com.powsybl.cgmes.extensions.CgmesTapChangers; import com.powsybl.cgmes.extensions.CgmesTapChangersAdder; -import com.powsybl.cgmes.model.CgmesNames; import com.powsybl.cgmes.model.WindingType; import com.powsybl.iidm.network.*; import com.powsybl.triplestore.api.PropertyBag; import com.powsybl.triplestore.api.PropertyBags; -import java.util.List; -import java.util.Optional; +import static com.powsybl.cgmes.conversion.Conversion.CGMES_PREFIX_ALIAS_PROPERTIES; +import static com.powsybl.cgmes.model.CgmesNames.*; /** * @author Luma Zamarreño {@literal } @@ -111,23 +109,30 @@ protected CgmesRegulatingControlPhase setContextRegulatingDataPhase(TapChanger t @Override protected void addAliasesAndProperties(Identifiable identifiable) { + // Add PowerTransformer aliases super.addAliasesAndProperties(identifiable); - for (PropertyBag p : ps) { - identifiable.addAlias(p.getId("TransformerEnd"), Conversion.CGMES_PREFIX_ALIAS_PROPERTIES + CgmesNames.TRANSFORMER_END + WindingType.endNumber(p)); + + // Add PowerTransformerEnds aliases + String alias; + String aliasType; + for (PropertyBag end : ps) { + alias = end.getId("TransformerEnd"); + aliasType = CGMES_PREFIX_ALIAS_PROPERTIES + TRANSFORMER_END + WindingType.endNumber(end); + identifiable.addAlias(alias, aliasType); } - List ptcs = context.cgmes().phaseTapChangerListForPowerTransformer(identifiable.getId()); - if (ptcs != null) { - for (int i = 0; i < ptcs.size(); i++) { - int index = i + 1; - Optional.ofNullable(ptcs.get(i)).ifPresent(ptc -> identifiable.addAlias(ptc, Conversion.CGMES_PREFIX_ALIAS_PROPERTIES + CgmesNames.PHASE_TAP_CHANGER + index, context.config().isEnsureIdAliasUnicity())); - } + + // Add RatioTapChangers aliases + for (PropertyBag rtc : context.ratioTapChangers(identifiable.getId())) { + alias = rtc.getId("RatioTapChanger"); + aliasType = CGMES_PREFIX_ALIAS_PROPERTIES + RATIO_TAP_CHANGER + WindingType.endNumber(rtc); + identifiable.addAlias(alias, aliasType, context.config().isEnsureIdAliasUnicity()); } - List rtcs = context.cgmes().ratioTapChangerListForPowerTransformer(identifiable.getId()); - if (rtcs != null) { - for (int i = 0; i < rtcs.size(); i++) { - int index = i + 1; - Optional.ofNullable(rtcs.get(i)).ifPresent(rtc -> identifiable.addAlias(rtc, Conversion.CGMES_PREFIX_ALIAS_PROPERTIES + CgmesNames.RATIO_TAP_CHANGER + index, context.config().isEnsureIdAliasUnicity())); - } + + // Add PhaseTapChangers aliases + for (PropertyBag ptc : context.phaseTapChangers(identifiable.getId())) { + alias = ptc.getId("PhaseTapChanger"); + aliasType = CGMES_PREFIX_ALIAS_PROPERTIES + PHASE_TAP_CHANGER + WindingType.endNumber(ptc); + identifiable.addAlias(alias, aliasType, context.config().isEnsureIdAliasUnicity()); } } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesPhaseTapChangerBuilder.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesPhaseTapChangerBuilder.java index f016da66ba3..0ea1111ee49 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesPhaseTapChangerBuilder.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesPhaseTapChangerBuilder.java @@ -70,13 +70,13 @@ protected void addSteps() { if (isLinear()) { addStepsLinear(); } else if (isTabular()) { - PropertyBags table = context.phaseTapChangerTable(tableId); - if (table == null) { + PropertyBags tablePoints = context.phaseTapChangerTablePoints(tableId); + if (tablePoints.isEmpty()) { addStepsLinear(); return; } - if (isTableValid(tableId, table)) { - addStepsFromTable(table); + if (isTableValid(tableId, tablePoints)) { + addStepsFromTable(tablePoints); } else { addStepsLinear(); } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesRatioTapChangerBuilder.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesRatioTapChangerBuilder.java index 459ee8b82c0..84d588e82f8 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesRatioTapChangerBuilder.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/CgmesRatioTapChangerBuilder.java @@ -40,13 +40,13 @@ protected void addRegulationData() { protected void addSteps() { String tableId = p.getId(CgmesNames.RATIO_TAP_CHANGER_TABLE); if (tableId != null) { - PropertyBags table = context.ratioTapChangerTable(tableId); - if (table == null) { + PropertyBags tablePoints = context.ratioTapChangerTablePoints(tableId); + if (tablePoints.isEmpty()) { addStepsFromLowHighIncrement(); return; } - if (isTableValid(tableId, table)) { - addStepsFromTable(table, tableId); + if (isTableValid(tableId, tablePoints)) { + addStepsFromTable(tablePoints, tableId); } else { addStepsFromLowHighIncrement(); } diff --git a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/TapChanger.java b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/TapChanger.java index c5bddf02320..ac52fb7ced9 100644 --- a/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/TapChanger.java +++ b/cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/transformers/TapChanger.java @@ -25,14 +25,24 @@ public class TapChanger { public static TapChanger ratioTapChangerFromEnd(PropertyBag end, Context context) { Objects.requireNonNull(end); Objects.requireNonNull(context); - PropertyBag rtc = context.ratioTapChanger(end.getId(CgmesNames.RATIO_TAP_CHANGER)); + PropertyBag rtc = context + .ratioTapChangers(end.getId("PowerTransformer")) + .stream() + .filter(tc -> end.getId(CgmesNames.TRANSFORMER_END).equals(tc.getId(CgmesNames.TRANSFORMER_END))) + .findFirst() + .orElse(null); return rtc != null ? AbstractCgmesTapChangerBuilder.newRatioTapChanger(rtc, context).build() : null; } public static TapChanger phaseTapChangerFromEnd(PropertyBag end, double x, Context context) { Objects.requireNonNull(end); Objects.requireNonNull(context); - PropertyBag ptc = context.phaseTapChanger(end.getId(CgmesNames.PHASE_TAP_CHANGER)); + PropertyBag ptc = context + .phaseTapChangers(end.getId("PowerTransformer")) + .stream() + .filter(tc -> end.getId(CgmesNames.TRANSFORMER_END).equals(tc.getId(CgmesNames.TRANSFORMER_END))) + .findFirst() + .orElse(null); return ptc != null ? AbstractCgmesTapChangerBuilder.newPhaseTapChanger(ptc, x, context).build() : null; } diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/FakeTapChangerConversionTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/FakeTapChangerConversionTest.java deleted file mode 100644 index c8b0838fbc2..00000000000 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/FakeTapChangerConversionTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * SPDX-License-Identifier: MPL-2.0 - */ -package com.powsybl.cgmes.conversion.test; - -import com.powsybl.cgmes.model.CgmesModel; -import com.powsybl.cgmes.model.InMemoryCgmesModel; -import org.junit.jupiter.api.Test; - -import java.util.Collections; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -/** - * @author Luma Zamarreño {@literal } - */ -class FakeTapChangerConversionTest { - @Test - void fakeTapChangersEmpty() { - CgmesModel cgmes = new InMemoryCgmesModel(); - assertEquals(Collections.emptyList(), cgmes.ratioTapChangerListForPowerTransformer("anyTransformer")); - assertEquals(Collections.emptyList(), cgmes.phaseTapChangerListForPowerTransformer("anyTransformer")); - } -} diff --git a/cgmes/cgmes-conversion/src/test/resources/functional-logs/microGridBaseCaseBE-target-deadband.txt b/cgmes/cgmes-conversion/src/test/resources/functional-logs/microGridBaseCaseBE-target-deadband.txt index d81410a9eda..cbe6753dbf4 100644 --- a/cgmes/cgmes-conversion/src/test/resources/functional-logs/microGridBaseCaseBE-target-deadband.txt +++ b/cgmes/cgmes-conversion/src/test/resources/functional-logs/microGridBaseCaseBE-target-deadband.txt @@ -33,9 +33,9 @@ Converting SvInjection. Converting ControlArea. + Converting RegulatingControl. + Equipment 6ebbef67-3061-4236-a6fd-6ccc4595f6c3 has a regulating control with bad target deadband: -35.0. Equipment 955d9cd0-4a10-4031-b008-60c0dc340a07 has a regulating control with bad target value for voltage: 0.0. Equipment 955d9cd0-4a10-4031-b008-60c0dc340a07 has a regulating control with bad target deadband: -0.5. - Equipment 6ebbef67-3061-4236-a6fd-6ccc4595f6c3 has a regulating control with bad target deadband: -35.0. Equipment fe25f43a-7341-446e-a71a-8ab7119ba806 has a regulating control with bad target value for voltage: 0.0. Fixing issues with dangling lines. Setting voltages and angles. diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/AbstractCgmesModel.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/AbstractCgmesModel.java index bc0063c1ddf..a7a00605fe6 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/AbstractCgmesModel.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/AbstractCgmesModel.java @@ -35,22 +35,6 @@ public Properties getProperties() { return this.properties; } - @Override - public PropertyBags nonlinearShuntCompensatorPoints(String shuntId) { - if (cachedGroupedShuntCompensatorPoints == null) { - cachedGroupedShuntCompensatorPoints = computeGroupedShuntCompensatorPoints(); - } - return cachedGroupedShuntCompensatorPoints.getOrDefault(shuntId, new PropertyBags()); - } - - @Override - public Map groupedTransformerEnds() { - if (cachedGroupedTransformerEnds == null) { - cachedGroupedTransformerEnds = computeGroupedTransformerEnds(); - } - return cachedGroupedTransformerEnds; - } - @Override public Collection computedTerminals() { if (cachedTerminals == null) { @@ -75,16 +59,6 @@ public CgmesDcTerminal dcTerminal(String dcTerminalId) { return cachedDcTerminals.get(dcTerminalId); } - @Override - public List ratioTapChangerListForPowerTransformer(String powerTransformerId) { - return powerTransformerRatioTapChanger.get(powerTransformerId) == null ? null : Arrays.asList(powerTransformerRatioTapChanger.get(powerTransformerId)); - } - - @Override - public List phaseTapChangerListForPowerTransformer(String powerTransformerId) { - return powerTransformerPhaseTapChanger.get(powerTransformerId) == null ? null : Arrays.asList(powerTransformerPhaseTapChanger.get(powerTransformerId)); - } - @Override public String substation(CgmesTerminal t, boolean nodeBreaker) { CgmesContainer c = container(t, nodeBreaker); @@ -168,43 +142,6 @@ private CgmesContainer container(CgmesTerminal t, boolean nodeBreaker) { return (containerId == null) ? null : container(containerId); } - private Map computeGroupedShuntCompensatorPoints() { - Map groupedShuntCompensatorPoints = new HashMap<>(); - nonlinearShuntCompensatorPoints() - .forEach(point -> { - String shuntCompensator = point.getId("Shunt"); - groupedShuntCompensatorPoints.computeIfAbsent(shuntCompensator, bag -> new PropertyBags()) - .add(point); - }); - return groupedShuntCompensatorPoints; - } - - private Map computeGroupedTransformerEnds() { - // Alternative implementation: - // instead of sorting after building each list, - // use a sorted collection when inserting - String endNumber = "endNumber"; - Map gends = new HashMap<>(); - powerTransformerRatioTapChanger = new HashMap<>(); - powerTransformerPhaseTapChanger = new HashMap<>(); - transformerEnds() - .forEach(end -> { - String id = end.getId("PowerTransformer"); - PropertyBags ends = gends.computeIfAbsent(id, x -> new PropertyBags()); - ends.add(end); - if (end.getId("PhaseTapChanger") != null) { - powerTransformerPhaseTapChanger.computeIfAbsent(id, s -> new String[3]); - powerTransformerPhaseTapChanger.get(id)[end.asInt(endNumber, 1) - 1] = end.getId("PhaseTapChanger"); - } - if (end.getId("RatioTapChanger") != null) { - powerTransformerRatioTapChanger.computeIfAbsent(id, s -> new String[3]); - powerTransformerRatioTapChanger.get(id)[end.asInt(endNumber, 1) - 1] = end.getId("RatioTapChanger"); - } - }); - gends.values().forEach(tends -> tends.sort(Comparator.comparing(WindingType::endNumber))); - return gends; - } - protected void cacheNodes() { if (!cachedNodes) { cachedConnectivityNodes = connectivityNodes(); @@ -300,10 +237,6 @@ public void read(ReadOnlyDataSource ds, ReportNode reportNode) { } protected void invalidateCaches() { - cachedGroupedShuntCompensatorPoints = null; - cachedGroupedTransformerEnds = null; - powerTransformerRatioTapChanger = null; - powerTransformerPhaseTapChanger = null; cachedTerminals = null; cachedContainers = null; cachedBaseVoltages = null; @@ -318,8 +251,6 @@ protected void invalidateCaches() { private String baseName; // Caches - private Map cachedGroupedShuntCompensatorPoints; - private Map cachedGroupedTransformerEnds; private Map cachedTerminals; private Map cachedContainers; private Map cachedBaseVoltages; @@ -328,8 +259,6 @@ protected void invalidateCaches() { protected PropertyBags cachedTopologicalNodes; private Map cachedNodesById; // equipmentId, sequenceNumber, terminalId - private Map powerTransformerRatioTapChanger; - private Map powerTransformerPhaseTapChanger; private Map cachedDcTerminals; private static final Logger LOG = LoggerFactory.getLogger(AbstractCgmesModel.class); diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModel.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModel.java index 0f1bb6928b4..c3f38d2e44b 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModel.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModel.java @@ -92,13 +92,14 @@ default PropertyBags fullModels() { PropertyBags transformerEnds(); - // Transformer ends grouped by transformer - Map groupedTransformerEnds(); - PropertyBags ratioTapChangers(); + PropertyBags ratioTapChangerTablePoints(); + PropertyBags phaseTapChangers(); + PropertyBags phaseTapChangerTablePoints(); + PropertyBags regulatingControls(); PropertyBags energyConsumers(); @@ -111,17 +112,11 @@ default PropertyBags fullModels() { /** * Query all NonlinearShuntCompensatorPoint in the CgmesModel. + * * @return A {@link PropertyBags} with the shunt compensators points properties. */ PropertyBags nonlinearShuntCompensatorPoints(); - /** - * Query the NonlinearShuntCompensatorPoint associated to the given NonlinearShuntCompensator. - * @param shuntId The id of the NonlinearShuntCompensator. - * @return A {@link PropertyBags} with the given shunt compensator's points properties. - */ - PropertyBags nonlinearShuntCompensatorPoints(String shuntId); - PropertyBags staticVarCompensators(); /** @@ -157,14 +152,6 @@ default PropertyBags synchronousMachinesAll() { PropertyBags reactiveCapabilityCurveData(); - PropertyBags ratioTapChangerTablesPoints(); - - PropertyBags phaseTapChangerTablesPoints(); - - PropertyBags ratioTapChangerTable(String tableId); - - PropertyBags phaseTapChangerTable(String tableId); - PropertyBags controlAreas(); PropertyBags acDcConverters(); @@ -225,10 +212,6 @@ default void write(DataSource ds, CgmesSubset subset) { // Helper mappings - List ratioTapChangerListForPowerTransformer(String powerTransformerId); - - List phaseTapChangerListForPowerTransformer(String powerTransformerId); - /** * Obtain the substation of a given terminal. * diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModelFactory.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModelFactory.java index 245aed96f37..f4c8f2bbd2d 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModelFactory.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesModelFactory.java @@ -100,15 +100,13 @@ public static CgmesModel copy(CgmesModel cgmes) { private static void buildCaches(CgmesModel cgmes) { // TODO This is rebuilding only some caches boolean isNodeBreaker = cgmes.isNodeBreaker(); - for (PropertyBags tends : cgmes.groupedTransformerEnds().values()) { - for (PropertyBag end : tends) { - CgmesTerminal t = cgmes.terminal(end.getId(CgmesNames.TERMINAL)); - cgmes.substation(t, isNodeBreaker); - if (isNodeBreaker) { - t.connectivityNode(); - } else { - t.topologicalNode(); - } + for (PropertyBag end : cgmes.transformerEnds()) { + CgmesTerminal t = cgmes.terminal(end.getId(CgmesNames.TERMINAL)); + cgmes.substation(t, isNodeBreaker); + if (isNodeBreaker) { + t.connectivityNode(); + } else { + t.topologicalNode(); } } } diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/InMemoryCgmesModel.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/InMemoryCgmesModel.java index 17f9d4844ec..fc2760ec879 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/InMemoryCgmesModel.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/InMemoryCgmesModel.java @@ -402,14 +402,14 @@ public PropertyBags transformerEnds() { } @Override - public Map groupedTransformerEnds() { - // FakeCgmesModeldoes not provide grouped transformer ends - return Collections.emptyMap(); + public PropertyBags ratioTapChangers() { + return ratioTapChangers; } @Override - public PropertyBags ratioTapChangers() { - return ratioTapChangers; + public PropertyBags ratioTapChangerTablePoints() { + // FakeCgmesModel does not implement ratio tap changer tables + return new PropertyBags(); } @Override @@ -417,6 +417,12 @@ public PropertyBags phaseTapChangers() { return phaseTapChangers; } + @Override + public PropertyBags phaseTapChangerTablePoints() { + // FakeCgmesModel does not implement phase tap changer tables + return new PropertyBags(); + } + @Override public PropertyBags regulatingControls() { return regulatingControls; @@ -442,12 +448,6 @@ public PropertyBags nonlinearShuntCompensatorPoints() { return shuntCompensatorPoints; } - @Override - public PropertyBags nonlinearShuntCompensatorPoints(String shuntId) { - // FakeCgmesModel does not provide grouped shunt compensator points - return new PropertyBags(); - } - @Override public PropertyBags equivalentShunts() { return equivalentShunts; @@ -494,40 +494,6 @@ public PropertyBags reactiveCapabilityCurveData() { return new PropertyBags(); } - @Override - public PropertyBags ratioTapChangerTablesPoints() { - // FakeCgmesModel does not implement ratio tap changer tables - return new PropertyBags(); - } - - @Override - public PropertyBags phaseTapChangerTablesPoints() { - // FakeCgmesModel does not implement phase tap changer tables - return new PropertyBags(); - } - - @Override - public PropertyBags ratioTapChangerTable(String tableId) { - // FakeCgmesModel does not implement ratio tap changer tables - return new PropertyBags(); - } - - @Override - public PropertyBags phaseTapChangerTable(String tableId) { - // FakeCgmesModel does not implement phase tap changer tables - return new PropertyBags(); - } - - @Override - public List ratioTapChangerListForPowerTransformer(String powerTransformerId) { - return Collections.emptyList(); - } - - @Override - public List phaseTapChangerListForPowerTransformer(String powerTransformerId) { - return Collections.emptyList(); - } - @Override public PropertyBags acDcConverters() { return acDcConverters; diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/triplestore/CgmesModelTripleStore.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/triplestore/CgmesModelTripleStore.java index 7915a17dfe8..6691196d6e4 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/triplestore/CgmesModelTripleStore.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/triplestore/CgmesModelTripleStore.java @@ -467,11 +467,21 @@ public PropertyBags ratioTapChangers() { return namedQuery("ratioTapChangers"); } + @Override + public PropertyBags ratioTapChangerTablePoints() { + return namedQuery("ratioTapChangerTablePoints"); + } + @Override public PropertyBags phaseTapChangers() { return namedQuery("phaseTapChangers"); } + @Override + public PropertyBags phaseTapChangerTablePoints() { + return namedQuery("phaseTapChangerTablePoints"); + } + @Override public PropertyBags regulatingControls() { return namedQuery("regulatingControls"); @@ -542,28 +552,6 @@ public PropertyBags reactiveCapabilityCurveData() { return namedQuery("reactiveCapabilityCurveData"); } - @Override - public PropertyBags ratioTapChangerTablesPoints() { - return namedQuery("ratioTapChangerTablesPoints"); - } - - @Override - public PropertyBags phaseTapChangerTablesPoints() { - return namedQuery("phaseTapChangerTablesPoints"); - } - - @Override - public PropertyBags ratioTapChangerTable(String tableId) { - Objects.requireNonNull(tableId); - return namedQuery("ratioTapChangerTable", tableId); - } - - @Override - public PropertyBags phaseTapChangerTable(String tableId) { - Objects.requireNonNull(tableId); - return namedQuery("phaseTapChangerTable", tableId); - } - @Override public PropertyBags controlAreas() { return namedQuery("controlAreas"); diff --git a/cgmes/cgmes-model/src/main/resources/CIM14.sparql b/cgmes/cgmes-model/src/main/resources/CIM14.sparql index 44ee184a271..6a215a9a9d6 100644 --- a/cgmes/cgmes-model/src/main/resources/CIM14.sparql +++ b/cgmes/cgmes-model/src/main/resources/CIM14.sparql @@ -226,11 +226,9 @@ WHERE { cim:TransformerWinding.x ?x ; cim:TransformerWinding.ratedU ?ratedU . ?Terminal cim:Terminal.ConductingEquipment ?TransformerWinding . - OPTIONAL { ?RatioTapChanger cim:RatioTapChanger.TransformerWinding ?TransformerWinding } - OPTIONAL { ?PhaseTapChanger cim:PhaseTapChanger.TransformerWinding ?TransformerWinding } }} BIND ( ?TransformerWinding AS ?TransformerEnd ) -} +} ORDER BY ?PowerTransformer ?windingType # query: ratioTapChangers SELECT * @@ -244,6 +242,10 @@ WHERE { cim:TapChanger.neutralU ?neutralU ; cim:TapChanger.stepVoltageIncrement ?stepVoltageIncrement ; cim:RatioTapChanger.TransformerWinding ?TransformerWinding . + ?TransformerWinding + a cim:TransformerWinding ; + cim:TransformerWinding.windingType ?windingType ; + cim:TransformerWinding.MemberOf_PowerTransformer ?PowerTransformer . ?Terminal cim:Terminal.ConductingEquipment ?TransformerWinding . OPTIONAL { ?RatioTapChanger cim:TapChanger.RegulatingControl ?TapChangerControl } }} @@ -268,7 +270,11 @@ WHERE { cim:TapChanger.neutralU ?neutralU ; cim:PhaseTapChanger.phaseTapChangerType ?phaseTapChangerType ; cim:PhaseTapChanger.TransformerWinding ?TransformerWinding . - ?TransformerWinding cim:TransformerWinding.ratedU ?transformerWindingRatedU . + ?TransformerWinding + a cim:TransformerWinding ; + cim:TransformerWinding.ratedU ?transformerWindingRatedU ; + cim:TransformerWinding.windingType ?windingType ; + cim:TransformerWinding.MemberOf_PowerTransformer ?PowerTransformer . ?Terminal cim:Terminal.ConductingEquipment ?TransformerWinding . OPTIONAL { ?PhaseTapChanger cim:PhaseTapChanger.voltageStepIncrementOutOfPhase ?voltageStepIncrementOutOfPhase } OPTIONAL { ?PhaseTapChanger cim:TapChanger.stepVoltageIncrement ?voltageStepIncrement } diff --git a/cgmes/cgmes-model/src/main/resources/CIM16.sparql b/cgmes/cgmes-model/src/main/resources/CIM16.sparql index c137be21da9..ac370cc162a 100644 --- a/cgmes/cgmes-model/src/main/resources/CIM16.sparql +++ b/cgmes/cgmes-model/src/main/resources/CIM16.sparql @@ -559,10 +559,8 @@ WHERE { OPTIONAL { ?TransformerEnd cim:PowerTransformerEnd.phaseAngleClock ?phaseAngleClock } OPTIONAL { ?TransformerEnd cim:PowerTransformerEnd.g ?g } OPTIONAL { ?TransformerEnd cim:PowerTransformerEnd.ratedS ?ratedS } - OPTIONAL { ?RatioTapChanger cim:RatioTapChanger.TransformerEnd ?TransformerEnd } - OPTIONAL { ?PhaseTapChanger cim:PhaseTapChanger.TransformerEnd ?TransformerEnd } }} -} +} ORDER BY ?PowerTransformer ?endNumber # query: ratioTapChangers SELECT * @@ -579,6 +577,10 @@ WHERE { cim:RatioTapChanger.stepVoltageIncrement ?stepVoltageIncrement ; cim:TapChanger.ltcFlag ?ltcFlag ; cim:RatioTapChanger.TransformerEnd ?TransformerEnd . + ?TransformerEnd + a cim:PowerTransformerEnd ; + cim:TransformerEnd.endNumber ?endNumber ; + cim:PowerTransformerEnd.PowerTransformer ?PowerTransformer . OPTIONAL { ?RatioTapChanger cim:TapChanger.TapChangerControl ?TapChangerControl . OPTIONAL { @@ -602,22 +604,7 @@ OPTIONAL { GRAPH ?graphSV { }} } -# query: ratioTapChangerTable -SELECT * -WHERE { - ?RatioTapChangerTablePoint - a cim:RatioTapChangerTablePoint ; - cim:RatioTapChangerTablePoint.RatioTapChangerTable ?Table ; - cim:TapChangerTablePoint.step ?step . - FILTER regex(str(?Table), "{0}") - OPTIONAL { ?RatioTapChangerTablePoint cim:TapChangerTablePoint.ratio ?ratio } - OPTIONAL { ?RatioTapChangerTablePoint cim:TapChangerTablePoint.r ?r } - OPTIONAL { ?RatioTapChangerTablePoint cim:TapChangerTablePoint.x ?x } - OPTIONAL { ?RatioTapChangerTablePoint cim:TapChangerTablePoint.g ?g } - OPTIONAL { ?RatioTapChangerTablePoint cim:TapChangerTablePoint.b ?b } -} - -# query: ratioTapChangerTablesPoints +# query: ratioTapChangerTablePoints SELECT * WHERE { ?RatioTapChangerTablePoint @@ -647,6 +634,8 @@ WHERE { cim:PhaseTapChanger.TransformerEnd ?TransformerEnd . ?TransformerEnd a cim:PowerTransformerEnd ; + cim:TransformerEnd.endNumber ?endNumber ; + cim:PowerTransformerEnd.PowerTransformer ?PowerTransformer ; cim:PowerTransformerEnd.ratedU ?transformerWindingRatedU . OPTIONAL { ?PhaseTapChanger @@ -686,23 +675,7 @@ OPTIONAL { GRAPH ?graphSV { }} } -# query: phaseTapChangerTable -SELECT * -WHERE { - ?PhaseTapChangerTablePoint - a cim:PhaseTapChangerTablePoint ; - cim:PhaseTapChangerTablePoint.PhaseTapChangerTable ?Table ; - cim:PhaseTapChangerTablePoint.angle ?angle ; - cim:TapChangerTablePoint.step ?step . - FILTER regex(str(?Table), "{0}") - OPTIONAL { ?PhaseTapChangerTablePoint cim:TapChangerTablePoint.ratio ?ratio } - OPTIONAL { ?PhaseTapChangerTablePoint cim:TapChangerTablePoint.r ?r } - OPTIONAL { ?PhaseTapChangerTablePoint cim:TapChangerTablePoint.x ?x } - OPTIONAL { ?PhaseTapChangerTablePoint cim:TapChangerTablePoint.g ?g } - OPTIONAL { ?PhaseTapChangerTablePoint cim:TapChangerTablePoint.b ?b } -} - -# query: phaseTapChangerTablesPoints +# query: phaseTapChangerTablePoints SELECT * WHERE { ?PhaseTapChangerTablePoint diff --git a/matpower/matpower-converter/src/test/resources/be.json b/matpower/matpower-converter/src/test/resources/be.json index 48277fefbe3..5c12e76539b 100644 --- a/matpower/matpower-converter/src/test/resources/be.json +++ b/matpower/matpower-converter/src/test/resources/be.json @@ -257,15 +257,15 @@ "angMin" : 0.0, "angMax" : 0.0 }, { - "from" : 2, - "to" : 1, - "r" : 8.192122993395951E-4, - "x" : 0.04571631170550064, - "b" : -0.010613320515218202, - "rateA" : 143.891, + "from" : 6, + "to" : 2, + "r" : 0.0016923075000000005, + "x" : 0.009074315000000001, + "b" : 0.0, + "rateA" : 356.516, "rateB" : 0.0, - "rateC" : 154.891, - "ratio" : 1.0277920081967213, + "rateC" : 364.116, + "ratio" : 1.0526315789473684, "phaseShiftAngle" : 0.0, "status" : 1, "angMin" : 0.0, @@ -285,15 +285,15 @@ "angMin" : 0.0, "angMax" : 0.0 }, { - "from" : 6, - "to" : 2, - "r" : 0.0016923075000000005, - "x" : 0.009074315000000001, - "b" : 0.0, - "rateA" : 356.516, + "from" : 2, + "to" : 1, + "r" : 8.192122993395951E-4, + "x" : 0.04571631170550064, + "b" : -0.010613320515218202, + "rateA" : 143.891, "rateB" : 0.0, - "rateC" : 364.116, - "ratio" : 1.0526315789473684, + "rateC" : 154.891, + "ratio" : 1.0277920081967213, "phaseShiftAngle" : 0.0, "status" : 1, "angMin" : 0.0, From 6a5ee60e4b162f4c4e7bf8f9437e7d5c7defc64c Mon Sep 17 00:00:00 2001 From: rcourtier <129156292+rcourtier@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:22:12 +0100 Subject: [PATCH 2/7] CGMES conversion switch test (#3181) * Rework testing of 0 impedance line * Rework testing of fictitious switch for disconnected terminal * Rework testing of retained switch with terminals associated to the same topological node * Rework testing of switch kind * Rework testing of switch in bus breaker topology * Rework testing of basic switch conversion * Remove conformity-modified file for testing switch without name * Check that the exported switch class is also correct in SSH file * Add a utilitary function to fetch a xml element of an object Signed-off-by: Romain Courtier --- .../CgmesConformity1ModifiedCatalog.java | 105 - ...MicroGridTestConfiguration_BC_NL_EQ_V2.xml | 1619 ------ ...icroGridTestConfiguration_BC_NL_SSH_V2.xml | 255 - ...MicroGridTestConfiguration_BC_NL_EQ_V2.xml | 1618 ------ ...MiniGridTestConfiguration_BC_EQ_v3.0.0.xml | 4480 ----------------- ...MiniGridTestConfiguration_BC_EQ_v3.0.0.xml | 4478 ---------------- ...MiniGridTestConfiguration_BC_EQ_v3.0.0.xml | 4478 ---------------- ...MiniGridTestConfiguration_BC_EQ_v3.0.0.xml | 4479 ---------------- ...iniGridTestConfiguration_BC_SSH_v3.0.0.xml | 1077 ---- ...iniGridTestConfiguration_BC_SSH_v3.0.0.xml | 1076 ---- .../cgmes/conversion/test/ConversionUtil.java | 6 + .../conversion/test/SwitchConversionTest.java | 187 +- ...gmesConformity1ModifiedConversionTest.java | 39 - .../test/export/CgmesExportTest.java | 63 - .../issues/RetainedSwitchExportTest.java | 75 - .../test/export/issues/SwitchExportTest.java | 132 - .../issues/switches/basic_switch.xml | 68 + .../switches/disconnected_terminal_EQ.xml | 55 + .../switches/disconnected_terminal_SSH.xml | 17 + .../issues/switches/line_with_0_impedance.xml | 59 + .../issues/switches/retained_switch.xml | 149 + .../switches/switch_in_bus_branch_EQ.xml | 46 + .../switches/switch_in_bus_branch_TP.xml | 27 + .../resources/issues/switches/switch_kind.xml | 165 + .../src/test/resources/jumperTest.xml | 78 - .../src/main/resources/CIM100.sparql | 13 +- .../src/main/resources/CIM16.sparql | 12 +- 27 files changed, 765 insertions(+), 24091 deletions(-) delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_EQ_V2.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_SSH_V2.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_without_name/MicroGridTestConfiguration_BC_NL_EQ_V2.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_internal_line_z0/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_load_break_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_protected_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml delete mode 100644 cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_terminal_disconnected/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml delete mode 100644 cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/RetainedSwitchExportTest.java delete mode 100644 cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/SwitchExportTest.java create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/basic_switch.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_EQ.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_SSH.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/line_with_0_impedance.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/retained_switch.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_EQ.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_TP.xml create mode 100644 cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_kind.xml delete mode 100644 cgmes/cgmes-conversion/src/test/resources/jumperTest.xml diff --git a/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity1ModifiedCatalog.java b/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity1ModifiedCatalog.java index 56f544f35e6..548e38d6fd1 100644 --- a/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity1ModifiedCatalog.java +++ b/cgmes/cgmes-conformity/src/main/java/com/powsybl/cgmes/conformity/CgmesConformity1ModifiedCatalog.java @@ -969,57 +969,6 @@ public static GridModelReferenceResources miniNodeBreakerSvInjection() { MINI_GRID_BD_TP)); } - public static GridModelReferenceResources miniNodeBreakerLoadBreakSwitch() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_load_break_switch/"; - return new GridModelReferenceResources( - "MiniGrid-NodeBreaker-Load-Break-Switch", - null, - new ResourceSet(base, - MINI_GRID_EQ), - new ResourceSet(MINI_GRID_NODE_BREAKER_BASE, - MINI_GRID_SV, - MINI_GRID_DL, - MINI_GRID_SSH, - MINI_GRID_TP), - new ResourceSet(MINI_GRID_NODE_BREAKER_BD_BASE, MINI_GRID_BD_EQ, - MINI_GRID_BD_TP)); - } - - public static GridModelReferenceResources miniNodeBreakerProtectedSwitch() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_protected_switch/"; - return new GridModelReferenceResources( - "MiniGrid-NodeBreaker-Protected-Switch", - null, - new ResourceSet(base, - MINI_GRID_EQ), - new ResourceSet(MINI_GRID_NODE_BREAKER_BASE, - MINI_GRID_SV, - MINI_GRID_DL, - MINI_GRID_SSH, - MINI_GRID_TP), - new ResourceSet(MINI_GRID_NODE_BREAKER_BD_BASE, MINI_GRID_BD_EQ, - MINI_GRID_BD_TP)); - } - - public static GridModelReference miniNodeBreakerInternalLineZ0() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_internal_line_z0/"; - return new GridModelReferenceResources( - "MiniGrid-NodeBreaker-InternalLineZ0", - null, - new ResourceSet(base, - MINI_GRID_EQ), - new ResourceSet(MINI_GRID_NODE_BREAKER_BASE, - MINI_GRID_SV, - MINI_GRID_DL, - MINI_GRID_SSH, - MINI_GRID_TP), - new ResourceSet(MINI_GRID_NODE_BREAKER_BD_BASE, MINI_GRID_BD_EQ, - MINI_GRID_BD_TP)); - } - public static GridModelReference miniNodeBreakerMissingSubstationRegion() { String base = ENTSOE_CONFORMITY_1_MODIFIED + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_missing_substation_region/"; @@ -1351,19 +1300,6 @@ public static GridModelReference microGridBaseCaseAssembledEntsoeCategory() { microGridBaseCaseBoundaries()); } - public static GridModelReference miniNodeBreakerTerminalDisconnected() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_terminal_disconnected/"; - return new GridModelReferenceResources( - "MiniGrid-NodeBreaker-terminal-disconnected", - null, - new ResourceSet(base, MINI_GRID_SSH), - new ResourceSet(MINI_GRID_NODE_BREAKER_BASE, MINI_GRID_EQ), - new ResourceSet(MINI_GRID_NODE_BREAKER_BD_BASE, MINI_GRID_BD_EQ, - MINI_GRID_BD_TP)); - - } - public static GridModelReference microGridBaseCaseAssembledBadIds() { String baseModified = ENTSOE_CONFORMITY_1_MODIFIED + "/MicroGrid/BaseCase/BC_Assembled_v2_bad_ids/"; @@ -1407,33 +1343,6 @@ public static GridModelReference microGridBaseCaseNLShuntCompensatorGP() { microGridBaseCaseBoundaries()); } - public static GridModelReference microGridBaseCaseNLSwitchWithoutName() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MicroGrid/BaseCase/BC_NL_v2_switch_without_name/"; - String baseOriginal = ENTSOE_CONFORMITY_1 - + MICROGRID_CONFIGURATION; - return new GridModelReferenceResources( - "MicroGrid-BaseCase-NL-switch-no-name", - null, - new ResourceSet(base, MICRO_GRID_NL_EQ), - new ResourceSet(baseOriginal, MICRO_GRID_NL_SSH, - MICRO_GRID_NL_TP), - microGridBaseCaseBoundaries()); - } - - public static GridModelReference microGridBaseCaseNLSwitchTypePreserved() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/"; - String baseOriginal = ENTSOE_CONFORMITY_1 - + MICROGRID_CONFIGURATION; - return new GridModelReferenceResources( - "MicroGrid-BaseCase-NL-switch-type-preserved", - null, - new ResourceSet(base, MICRO_GRID_NL_EQ, MICRO_GRID_NL_SSH), - new ResourceSet(baseOriginal, MICRO_GRID_NL_TP), - microGridBaseCaseBoundaries()); - } - public static GridModelReference microGridBaseCaseBESingleFile() { String base = ENTSOE_CONFORMITY_1_MODIFIED + "/MicroGrid/BaseCase/BC_BE_v2_single_file/"; @@ -1529,20 +1438,6 @@ public static GridModelReferenceResources smallGridBusBranchWithBusbarSectionsAn SMALL_GRID_BD_TP)); } - public static GridModelReferenceResources miniGridNodeBreakerSwitchTypePreserved() { - String base = ENTSOE_CONFORMITY_1_MODIFIED - + "/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/"; - return new GridModelReferenceResources( - "MiniGrid-NodeBreaker-BaseCase-Complete-v3-switch-type-preserved", - null, - new ResourceSet(base, MINI_GRID_EQ, MINI_GRID_SSH), - new ResourceSet(MINI_GRID_NODE_BREAKER_BASE, - MINI_GRID_SV, - MINI_GRID_TP), - new ResourceSet(MINI_GRID_NODE_BREAKER_BD_BASE, MINI_GRID_BD_EQ, - MINI_GRID_BD_TP)); - } - public static GridModelReferenceResources microGridBaseCaseAssembledSvWithMas() { String base = ENTSOE_CONFORMITY_1_MODIFIED + "/MicroGrid/BaseCase/BC_Assembled_v2_sv_with_mas/"; diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_EQ_V2.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_EQ_V2.xml deleted file mode 100644 index 9b2ec49d336..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_EQ_V2.xml +++ /dev/null @@ -1,1619 +0,0 @@ - - - - - 2014-10-24T11:51:49 - 2014-06-01T10:30:00 - 2 - - CGMES Conformity Assessment: 'MicroGridTestConfiguration....BC (MAS NL) Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - http://tennet.nl/CGMES/2.4.15 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - - - NL-Line_1 - NL-L_1 - 10T-AT-DE-000118 - 10T-AT-DE-000118 - - 1.020000 - 12.000000 - 0.0001413717 - 30.000000 - 0.0000300000 - false - - 3.060000 - 36.000000 - 0.0001500000 - 0.0000300000 - 160.0000000000 - - - NL-Line_2 - NL-L_2 - tie line BE-NL - - 2.320000 - 20.240000 - 0.0000251327 - 40.000000 - 0.0000400000 - false - - 0.696000 - 6.072000 - 0.0 - 0.0000400000 - 160.0000000000 - - - NL-Line_3 - NL-L_3 - 10T-AT-DE-00009W - 10T-AT-DE-00009W - - 5.060000 - 69.000000 - 0.0000202319 - 23.000000 - 0.0000230000 - false - - 15.180000 - 207.000000 - 0.0000455217 - 0.0000230000 - 160.0000000000 - - - NL-Line_4 - NL-L_4 - 10T-AT-DE-00009W - 10T-AT-DE-00009W - - 2.200000 - 66.000000 - 0.0000898495 - 22.000000 - 0.0000242000 - false - - 6.600000 - 198.000000 - 0.0000435425 - 0.0000242000 - 160.0000000000 - - - NL-Line_5 - NL-L_5 - 10T-AT-DE-000118 - 10T-AT-DE-000118 - - 0.420000 - 6.300000 - 0.0000648739 - 35.000000 - 0.0000350000 - false - - 1.260000 - 18.900000 - 0.0109955743 - 0.0000350000 - 160.0000000000 - - - 15.75 - Base Voltage Level - 15.75 - 15.75 kV - - - - B1 - B1 - false - false - true - - - - N1230822396 - - 0e+000 - - - NL-Busbar_2 - - 0e+000 - - - NL-Busbar_3 - - 0e+000 - - - NL-Busbar_5 - - 0e+000 - - - 90 - CL-2 - Ratings for element NL-Line_5 - Limit - 1623.600000 - - - - - 90 - CL-2 - Ratings for element NL-Line_5 - Limit - 1623.600000 - - - - - 90 - CL-2 - Ratings for element NL-Line_4 - Limit - 1298.700000 - - - - - 90 - CL-2 - Ratings for element NL-Line_4 - Limit - 1298.700000 - - - - - 90 - CL-2 - Ratings for element NL-Line_3 - Limit - 1062.000000 - - - - - 90 - CL-3 - Ratings for element NL-Line_3 - Limit - 1800.000000 - - - - - 90 - CL-2 - Ratings for element NL-Line_3 - Limit - 1062.000000 - - - - - 90 - CL-3 - Ratings for element NL-Line_3 - Limit - 1800.000000 - - - - - 90 - CL-2 - Ratings for element NL-Line_2 - Limit - 1103.400000 - - - - - 90 - CL-2 - Ratings for element NL-Line_2 - Limit - 1103.400000 - - - - - 90 - CL-2 - Ratings for element NL-Line_1 - Limit - 1233.900000 - - - - - 90 - CL-2 - Ratings for element NL-Line_1 - Limit - 1233.900000 - - - - - 90 - CL-2 - Ratings for element NL-TR2_1 - Limit - 415.710000 - - - - - 90 - CL-2 - Ratings for element NL-TR2_1 - Limit - 755.820000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_2 - Limit - 2975.940000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_2 - Limit - 41569.200000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_3 - Limit - 2975.940000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_3 - Limit - 41569.200000 - - - - - NL-Line_1 - CL-0 - CL-0 - Ratings for element NL-Line_1 - Limit - 1443.000000 - - - - - NL-Line_1 - CL-0 - CL-0 - Ratings for element NL-Line_1 - Limit - 1443.000000 - - - - - NL-Line_1 - CL-1 - CL-1 - Ratings for element NL-Line_1 - Limit - 1515.000000 - - - - - NL-Line_1 - CL-1 - CL-1 - Ratings for element NL-Line_1 - Limit - 1515.000000 - - - - - NL-Line_1 - CL-2 - CL-2 - Ratings for element NL-Line_1 - Limit - 1371.000000 - - - - - NL-Line_1 - CL-2 - CL-2 - Ratings for element NL-Line_1 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-0 - CL-0 - Ratings for element NL-Line_2 - Limit - 1299.000000 - - - - - NL-Line_2 - CL-0 - CL-0 - Ratings for element NL-Line_2 - Limit - 1299.000000 - - - - - NL-Line_2 - CL-1 - CL-1 - Ratings for element NL-Line_2 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-1 - CL-1 - Ratings for element NL-Line_2 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-2 - CL-2 - Ratings for element NL-Line_2 - Limit - 1226.000000 - - - - - NL-Line_2 - CL-2 - CL-2 - Ratings for element NL-Line_2 - Limit - 1226.000000 - - - - - NL-Line_3 - CL-0 - CL-0 - Ratings for element NL-Line_3 - Limit - 1312.000000 - - - - - NL-Line_3 - CL-0 - CL-0 - Ratings for element NL-Line_3 - Limit - 1312.000000 - - - - - NL-Line_3 - CL-1 - CL-1 - Ratings for element NL-Line_3 - Limit - 1443.000000 - - - - - NL-Line_3 - CL-1 - CL-1 - Ratings for element NL-Line_3 - Limit - 1443.000000 - - - - - NL-Line_3 - CL-2 - CL-2 - Ratings for element NL-Line_3 - Limit - 1180.000000 - - - - - NL-Line_3 - CL-2 - CL-2 - Ratings for element NL-Line_3 - Limit - 1180.000000 - - - - - NL-Line_3 - CL-3 - CL-3 - Ratings for element NL-Line_3 - Limit - 2000.000000 - - - - - NL-Line_3 - CL-3 - CL-3 - Ratings for element NL-Line_3 - Limit - 2000.000000 - - - - - NL-Line_4 - CL-0 - CL-0 - Ratings for element NL-Line_4 - Limit - 1574.000000 - - - - - NL-Line_4 - CL-0 - CL-0 - Ratings for element NL-Line_4 - Limit - 1574.000000 - - - - - NL-Line_4 - CL-1 - CL-1 - Ratings for element NL-Line_4 - Limit - 1705.000000 - - - - - NL-Line_4 - CL-1 - CL-1 - Ratings for element NL-Line_4 - Limit - 1705.000000 - - - - - NL-Line_4 - CL-2 - CL-2 - Ratings for element NL-Line_4 - Limit - 1443.000000 - - - - - NL-Line_4 - CL-2 - CL-2 - Ratings for element NL-Line_4 - Limit - 1443.000000 - - - - - NL-Line_5 - CL-0 - CL-0 - Ratings for element NL-Line_5 - Limit - 1876.000000 - - - - - NL-Line_5 - CL-0 - CL-0 - Ratings for element NL-Line_5 - Limit - 1876.000000 - - - - - NL-Line_5 - CL-1 - CL-1 - Ratings for element NL-Line_5 - Limit - 1948.000000 - - - - - NL-Line_5 - CL-1 - CL-1 - Ratings for element NL-Line_5 - Limit - 1948.000000 - - - - - NL-Line_5 - CL-2 - CL-2 - Ratings for element NL-Line_5 - Limit - 1804.000000 - - - - - NL-Line_5 - CL-2 - CL-2 - Ratings for element NL-Line_5 - Limit - 1804.000000 - - - - - NL-TR2_1 - CL-0 - CL-0 - Ratings for element NL-TR2_1 - Limit - 481.900000 - - - - - NL-TR2_1 - CL-0 - CL-0 - Ratings for element NL-TR2_1 - Limit - 849.800000 - - - - - NL-TR2_1 - CL-1 - CL-1 - Ratings for element NL-TR2_1 - Limit - 491.900000 - - - - - NL-TR2_1 - CL-1 - CL-1 - Ratings for element NL-TR2_1 - Limit - 859.800000 - - - - - NL-TR2_1 - CL-2 - CL-2 - Ratings for element NL-TR2_1 - Limit - 461.900000 - - - - - NL-TR2_1 - CL-2 - CL-2 - Ratings for element NL-TR2_1 - Limit - 839.800000 - - - - - NL_TR2_2 - CL-0 - CL-0 - Ratings for element NL_TR2_2 - Limit - 3406.600000 - - - - - NL_TR2_2 - CL-0 - CL-0 - Ratings for element NL_TR2_2 - Limit - 47188.000000 - - - - - NL_TR2_2 - CL-1 - CL-1 - Ratings for element NL_TR2_2 - Limit - 3506.600000 - - - - - NL_TR2_2 - CL-1 - CL-1 - Ratings for element NL_TR2_2 - Limit - 48188.000000 - - - - - NL_TR2_2 - CL-2 - CL-2 - Ratings for element NL_TR2_2 - Limit - 3306.600000 - - - - - NL_TR2_2 - CL-2 - CL-2 - Ratings for element NL_TR2_2 - Limit - 46188.000000 - - - - - NL_TR2_3 - CL-0 - CL-0 - Ratings for element NL_TR2_3 - Limit - 3506.600000 - - - - - NL_TR2_3 - CL-0 - CL-0 - Ratings for element NL_TR2_3 - Limit - 47188.000000 - - - - - NL_TR2_3 - CL-1 - CL-1 - Ratings for element NL_TR2_3 - Limit - 3706.600000 - - - - - NL_TR2_3 - CL-1 - CL-1 - Ratings for element NL_TR2_3 - Limit - 49188.000000 - - - - - NL_TR2_3 - CL-2 - CL-2 - Ratings for element NL_TR2_3 - Limit - 3306.600000 - - - - - NL_TR2_3 - CL-2 - CL-2 - Ratings for element NL_TR2_3 - Limit - 46188.000000 - - - - - NL-Load_1 - NL-L_1 - Apple - false - - - - NL-Load_2 - NL-L_2 - Electrabel - true - - - - NL-Load_3 - NL-L_3 - Siemens - false - - - - - NL-Inj-XCA_AL11 - NL-I-XCA_AL1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XKA_MA11 - NL-I-XKA_MA1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XWI_GY11 - NL-I-XWI_GY1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XZE_ST23 - NL-I-XZE_ST2 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XZE_ST24 - NL-I-XZE_ST2 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - Gen-12908 - Machine - 150.000000 - 225.000000 - 250.000000 - 130.000000 - - false - - - - Gen-12910 - Machine - 140.000000 - 225.000000 - 250.000000 - 130.000000 - - false - - - - Gen-12923 - Machine - 600.492701 - 990.000000 - 1000.000000 - 300.000000 - - false - - - - NL - - - container of NL-Line_1 - - - - container of NL-Line_2 - - - - container of NL-Line_3 - - - - container of NL-Line_4 - - - - container of NL-Line_5 - - - - NL-S1 - NL-S1 - shunt - 1 - 1 - 0.000313 - 0e+000 - -0e+000 - 0e+000 - 400.000000 - - false - - - - NL-Load_3 - NL-L_3 - false - 0.200000 - 0e+000 - 0.800000 - 0e+000 - 0.300000 - 0e+000 - 0.700000 - 0e+000 - 0e+000 - 0e+000 - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_5 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_4 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_3 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_2 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_1 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-TR2_1 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL_TR2_2 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL_TR2_3 at Port 1 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_5 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_4 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_3 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_2 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_1 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-TR2_1 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL_TR2_2 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL_TR2_3 at Port 2 - - - - PATL - patl - - - - - PATLT - patlt - - - - - TATL10 - tatl - - - 10.000000 - - - TATL20 - tatl - - - 20.000000 - - - TC - tc - - - - - TCT - tct - - - - - NL-TR2_1 - NL-T_1 - new transformer in 2015 - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL_TR2_2 - NL_T_2 - trafo - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL_TR2_3 - NL_T_3 - out of service in 2020 - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL-TR2_1 - NL-T_1 - 1.350000 - 27.967436 - -0.0000044445 - 0.0000005625 - 1.350000 - 27.967436 - 0.0 - 0.0 - 0e+000 - 0.0 - 320.000000 - 400.000000 - 1 - 0 - true - - - - - - - NL-TR2_1 - NL-T_1 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 320.000000 - 220.000000 - 2 - 0 - true - - - - - - - NL_TR2_2 - NL_T_2 - 0.069143 - 5.377333 - -0.0001420227 - 0.0000181818 - 0.069143 - 5.377333 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 220.000000 - 1 - 0 - true - - - - - - - NL_TR2_2 - NL_T_2 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 15.750000 - 2 - 0 - true - - - - - - - NL_TR2_3 - NL_T_3 - 0.065302 - 5.377381 - -0.0001420227 - 0.0000181818 - 0.069143 - 5.377333 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 220.000000 - 1 - 0 - true - - - - - - - NL_TR2_3 - NL_T_3 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 15.750000 - 2 - 0 - true - - - - - - - NL-TR2_1 - NL-T_1 - 400.000000 - -20 - 20 - 0 - -2 - 0.800000 - true - - - - - - NL_TR2_2 - NL_T_2 - 220.000000 - 0 - 33 - 17 - 17 - 0.625000 - true - - - - - - NL_TR2_3 - NL_T_3 - 220.000000 - -15 - 15 - 0 - 5 - 0.625000 - true - - - - - - NL-G1 - NL-G1 - - - - - NL-G2 - NL-G2 - - - - - NL-G3 - NL-G3 - - - - - NL-S1 - NL-S1 - - - - - TENNET TSO B.V. - - - - PP_Amsterdam - PP_Amsterdam - - - - NL-G1 - NL-G1 - Machine - false - - 100.000000 - 600.000000 - 0e+000 - 1100.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.110000 - 0.180000 - 0e+000 - 0e+000 - 0e+000 - 0.210000 - 1.900000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-G2 - NL-G2 - Machine - false - - 100.000000 - 200.000000 - 0e+000 - 250.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.100000 - 0.160000 - 0e+000 - 0e+000 - 0e+000 - 0.180000 - 1.800000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-G3 - NL-G3 - Machine - false - - 100.000000 - 200.000000 - 0e+000 - 250.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.130000 - 0.170000 - 0e+000 - 0e+000 - 0e+000 - 0.200000 - 1.900000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-TR2_1 - NL-T_1 - - - - - NL_TR2_2 - NL_T_2 - - - - - NL_TR2_3 - NL_T_3 - - - - - B1 - T1 - B1 - 1 - - - - - B1 - T2 - B1 - 2 - - - - - N1230822396_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_2_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_3_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_5_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-G1 - T1 - NL-G1 - 1 - - - - - NL-G2 - T1 - NL-G2 - 1 - - - - - NL-G3 - T1 - NL-G3 - 1 - - - - - NL-Inj-XCA_AL11 - T1 - NL-I-XCA_AL1 - 1 - - - - - NL-Inj-XKA_MA11 - T1 - NL-I-XKA_MA1 - 1 - - - - - NL-Inj-XWI_GY11 - T1 - NL-I-XWI_GY1 - 1 - - - - - NL-Inj-XZE_ST23 - T1 - NL-I-XZE_ST2 - 1 - - - - - NL-Inj-XZE_ST24 - T1 - NL-I-XZE_ST2 - 1 - - - - - NL-Line_1 - T1 - NL-L_1 - 1 - - - 10T-AT-DE-000118 - - - NL-Line_1 - T2 - NL-L_1 - 2 - - - 10T-AT-DE-000118 - - - NL-Line_2 - T1 - NL-L_2 - 1 - - - - - NL-Line_2 - T2 - NL-L_2 - 2 - - - - - NL-Line_3 - T1 - NL-L_3 - 1 - - - 10T-AT-DE-00009W - - - NL-Line_3 - T2 - NL-L_3 - 2 - - - 10T-AT-DE-00009W - - - NL-Line_4 - T1 - NL-L_4 - 1 - - - 10T-AT-DE-00009W - - - NL-Line_4 - T2 - NL-L_4 - 2 - - - 10T-AT-DE-00009W - - - NL-Line_5 - T1 - NL-L_5 - 1 - - - 10T-AT-DE-000118 - - - NL-Line_5 - T2 - NL-L_5 - 2 - - - 10T-AT-DE-000118 - - - NL-Load_1 - T1 - NL-L_1 - 1 - - - - - NL-Load_2 - T1 - NL-L_2 - 1 - - - - - NL-Load_3 - T1 - NL-L_3 - 1 - - - - - NL-S1 - T1 - NL-S1 - 1 - - - - - NL-TR2_1 - T1 - NL-T_1 - 1 - - - - - NL-TR2_1 - T2 - NL-T_1 - 2 - - - - - NL_TR2_2 - T1 - NL_T_2 - 1 - - - - - NL_TR2_2 - T2 - NL_T_2 - 2 - - - - - NL_TR2_3 - T1 - NL_T_3 - 1 - - - - - NL_TR2_3 - T2 - NL_T_3 - 2 - - - - - 15.8 - 14.175000 - 17.325000 - - - - - 15.8 - 14.175000 - 17.325000 - - - - - 220.0 - 198.000000 - 242.000000 - - - - - 400.0 - 360.000000 - 440.000000 - - - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_SSH_V2.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_SSH_V2.xml deleted file mode 100644 index 21980f16b68..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_type_preserved/MicroGridTestConfiguration_BC_NL_SSH_V2.xml +++ /dev/null @@ -1,255 +0,0 @@ - - - - 2014-10-24T11:51:49 - 2014-06-01T10:30:00 - 2 - - CGMES Conformity Assessment: 'MicroGridTestConfiguration....BC (MAS NL) Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - http://tennet.nl/CGMES/2.4.15 - http://entsoe.eu/CIM/SteadyStateHypothesis/1/1 - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - 486.000000 - 230.000000 - - - 10.000000 - 10.000000 - - - 90.000000 - 280.000000 - - - 0e+000 - - - -140.000000 - -77.743000 - - 0 - true - - - 0e+000 - - - -150.000000 - -83.296000 - - 0 - true - - - 1.000000 - - - -600.492701 - -386.922556 - - 1 - true - - - -2 - false - - - 17 - false - - - 5 - false - - - 1 - false - - - - false - - - 43.687227 - -84.876604 - false - 0.0 - - - 27.365225 - -0.425626 - false - 0.0 - - - 26.805006 - -1.489867 - false - 0.0 - - - 90.037005 - -148.603743 - false - 0.0 - - - 46.816625 - -79.193778 - false - 0.0 - - - true - 0.500000 - - false - 0e+000 - - - true - 0.500000 - - false - 0e+000 - - - true - 0.500000 - - false - 0e+000 - - - false - 0.500000 - - true - 16.017750 - - - false - 0.500000 - - true - 16.017750 - - - false - 0.500000 - - true - 16.033500 - - - true - 0.500000 - - false - 400.000000 - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_without_name/MicroGridTestConfiguration_BC_NL_EQ_V2.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_without_name/MicroGridTestConfiguration_BC_NL_EQ_V2.xml deleted file mode 100644 index 767dc38e689..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MicroGrid/BaseCase/BC_NL_v2_switch_without_name/MicroGridTestConfiguration_BC_NL_EQ_V2.xml +++ /dev/null @@ -1,1618 +0,0 @@ - - - - - 2014-10-24T11:51:49 - 2014-06-01T10:30:00 - 2 - - CGMES Conformity Assessment: 'MicroGridTestConfiguration....BC (MAS NL) Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - http://tennet.nl/CGMES/2.4.15 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - - - NL-Line_1 - NL-L_1 - 10T-AT-DE-000118 - 10T-AT-DE-000118 - - 1.020000 - 12.000000 - 0.0001413717 - 30.000000 - 0.0000300000 - false - - 3.060000 - 36.000000 - 0.0001500000 - 0.0000300000 - 160.0000000000 - - - NL-Line_2 - NL-L_2 - tie line BE-NL - - 2.320000 - 20.240000 - 0.0000251327 - 40.000000 - 0.0000400000 - false - - 0.696000 - 6.072000 - 0.0 - 0.0000400000 - 160.0000000000 - - - NL-Line_3 - NL-L_3 - 10T-AT-DE-00009W - 10T-AT-DE-00009W - - 5.060000 - 69.000000 - 0.0000202319 - 23.000000 - 0.0000230000 - false - - 15.180000 - 207.000000 - 0.0000455217 - 0.0000230000 - 160.0000000000 - - - NL-Line_4 - NL-L_4 - 10T-AT-DE-00009W - 10T-AT-DE-00009W - - 2.200000 - 66.000000 - 0.0000898495 - 22.000000 - 0.0000242000 - false - - 6.600000 - 198.000000 - 0.0000435425 - 0.0000242000 - 160.0000000000 - - - NL-Line_5 - NL-L_5 - 10T-AT-DE-000118 - 10T-AT-DE-000118 - - 0.420000 - 6.300000 - 0.0000648739 - 35.000000 - 0.0000350000 - false - - 1.260000 - 18.900000 - 0.0109955743 - 0.0000350000 - 160.0000000000 - - - 15.75 - Base Voltage Level - 15.75 - 15.75 kV - - - - B1 - false - false - true - - - - N1230822396 - - 0e+000 - - - NL-Busbar_2 - - 0e+000 - - - NL-Busbar_3 - - 0e+000 - - - NL-Busbar_5 - - 0e+000 - - - 90 - CL-2 - Ratings for element NL-Line_5 - Limit - 1623.600000 - - - - - 90 - CL-2 - Ratings for element NL-Line_5 - Limit - 1623.600000 - - - - - 90 - CL-2 - Ratings for element NL-Line_4 - Limit - 1298.700000 - - - - - 90 - CL-2 - Ratings for element NL-Line_4 - Limit - 1298.700000 - - - - - 90 - CL-2 - Ratings for element NL-Line_3 - Limit - 1062.000000 - - - - - 90 - CL-3 - Ratings for element NL-Line_3 - Limit - 1800.000000 - - - - - 90 - CL-2 - Ratings for element NL-Line_3 - Limit - 1062.000000 - - - - - 90 - CL-3 - Ratings for element NL-Line_3 - Limit - 1800.000000 - - - - - 90 - CL-2 - Ratings for element NL-Line_2 - Limit - 1103.400000 - - - - - 90 - CL-2 - Ratings for element NL-Line_2 - Limit - 1103.400000 - - - - - 90 - CL-2 - Ratings for element NL-Line_1 - Limit - 1233.900000 - - - - - 90 - CL-2 - Ratings for element NL-Line_1 - Limit - 1233.900000 - - - - - 90 - CL-2 - Ratings for element NL-TR2_1 - Limit - 415.710000 - - - - - 90 - CL-2 - Ratings for element NL-TR2_1 - Limit - 755.820000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_2 - Limit - 2975.940000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_2 - Limit - 41569.200000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_3 - Limit - 2975.940000 - - - - - 90 - CL-2 - Ratings for element NL_TR2_3 - Limit - 41569.200000 - - - - - NL-Line_1 - CL-0 - CL-0 - Ratings for element NL-Line_1 - Limit - 1443.000000 - - - - - NL-Line_1 - CL-0 - CL-0 - Ratings for element NL-Line_1 - Limit - 1443.000000 - - - - - NL-Line_1 - CL-1 - CL-1 - Ratings for element NL-Line_1 - Limit - 1515.000000 - - - - - NL-Line_1 - CL-1 - CL-1 - Ratings for element NL-Line_1 - Limit - 1515.000000 - - - - - NL-Line_1 - CL-2 - CL-2 - Ratings for element NL-Line_1 - Limit - 1371.000000 - - - - - NL-Line_1 - CL-2 - CL-2 - Ratings for element NL-Line_1 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-0 - CL-0 - Ratings for element NL-Line_2 - Limit - 1299.000000 - - - - - NL-Line_2 - CL-0 - CL-0 - Ratings for element NL-Line_2 - Limit - 1299.000000 - - - - - NL-Line_2 - CL-1 - CL-1 - Ratings for element NL-Line_2 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-1 - CL-1 - Ratings for element NL-Line_2 - Limit - 1371.000000 - - - - - NL-Line_2 - CL-2 - CL-2 - Ratings for element NL-Line_2 - Limit - 1226.000000 - - - - - NL-Line_2 - CL-2 - CL-2 - Ratings for element NL-Line_2 - Limit - 1226.000000 - - - - - NL-Line_3 - CL-0 - CL-0 - Ratings for element NL-Line_3 - Limit - 1312.000000 - - - - - NL-Line_3 - CL-0 - CL-0 - Ratings for element NL-Line_3 - Limit - 1312.000000 - - - - - NL-Line_3 - CL-1 - CL-1 - Ratings for element NL-Line_3 - Limit - 1443.000000 - - - - - NL-Line_3 - CL-1 - CL-1 - Ratings for element NL-Line_3 - Limit - 1443.000000 - - - - - NL-Line_3 - CL-2 - CL-2 - Ratings for element NL-Line_3 - Limit - 1180.000000 - - - - - NL-Line_3 - CL-2 - CL-2 - Ratings for element NL-Line_3 - Limit - 1180.000000 - - - - - NL-Line_3 - CL-3 - CL-3 - Ratings for element NL-Line_3 - Limit - 2000.000000 - - - - - NL-Line_3 - CL-3 - CL-3 - Ratings for element NL-Line_3 - Limit - 2000.000000 - - - - - NL-Line_4 - CL-0 - CL-0 - Ratings for element NL-Line_4 - Limit - 1574.000000 - - - - - NL-Line_4 - CL-0 - CL-0 - Ratings for element NL-Line_4 - Limit - 1574.000000 - - - - - NL-Line_4 - CL-1 - CL-1 - Ratings for element NL-Line_4 - Limit - 1705.000000 - - - - - NL-Line_4 - CL-1 - CL-1 - Ratings for element NL-Line_4 - Limit - 1705.000000 - - - - - NL-Line_4 - CL-2 - CL-2 - Ratings for element NL-Line_4 - Limit - 1443.000000 - - - - - NL-Line_4 - CL-2 - CL-2 - Ratings for element NL-Line_4 - Limit - 1443.000000 - - - - - NL-Line_5 - CL-0 - CL-0 - Ratings for element NL-Line_5 - Limit - 1876.000000 - - - - - NL-Line_5 - CL-0 - CL-0 - Ratings for element NL-Line_5 - Limit - 1876.000000 - - - - - NL-Line_5 - CL-1 - CL-1 - Ratings for element NL-Line_5 - Limit - 1948.000000 - - - - - NL-Line_5 - CL-1 - CL-1 - Ratings for element NL-Line_5 - Limit - 1948.000000 - - - - - NL-Line_5 - CL-2 - CL-2 - Ratings for element NL-Line_5 - Limit - 1804.000000 - - - - - NL-Line_5 - CL-2 - CL-2 - Ratings for element NL-Line_5 - Limit - 1804.000000 - - - - - NL-TR2_1 - CL-0 - CL-0 - Ratings for element NL-TR2_1 - Limit - 481.900000 - - - - - NL-TR2_1 - CL-0 - CL-0 - Ratings for element NL-TR2_1 - Limit - 849.800000 - - - - - NL-TR2_1 - CL-1 - CL-1 - Ratings for element NL-TR2_1 - Limit - 491.900000 - - - - - NL-TR2_1 - CL-1 - CL-1 - Ratings for element NL-TR2_1 - Limit - 859.800000 - - - - - NL-TR2_1 - CL-2 - CL-2 - Ratings for element NL-TR2_1 - Limit - 461.900000 - - - - - NL-TR2_1 - CL-2 - CL-2 - Ratings for element NL-TR2_1 - Limit - 839.800000 - - - - - NL_TR2_2 - CL-0 - CL-0 - Ratings for element NL_TR2_2 - Limit - 3406.600000 - - - - - NL_TR2_2 - CL-0 - CL-0 - Ratings for element NL_TR2_2 - Limit - 47188.000000 - - - - - NL_TR2_2 - CL-1 - CL-1 - Ratings for element NL_TR2_2 - Limit - 3506.600000 - - - - - NL_TR2_2 - CL-1 - CL-1 - Ratings for element NL_TR2_2 - Limit - 48188.000000 - - - - - NL_TR2_2 - CL-2 - CL-2 - Ratings for element NL_TR2_2 - Limit - 3306.600000 - - - - - NL_TR2_2 - CL-2 - CL-2 - Ratings for element NL_TR2_2 - Limit - 46188.000000 - - - - - NL_TR2_3 - CL-0 - CL-0 - Ratings for element NL_TR2_3 - Limit - 3506.600000 - - - - - NL_TR2_3 - CL-0 - CL-0 - Ratings for element NL_TR2_3 - Limit - 47188.000000 - - - - - NL_TR2_3 - CL-1 - CL-1 - Ratings for element NL_TR2_3 - Limit - 3706.600000 - - - - - NL_TR2_3 - CL-1 - CL-1 - Ratings for element NL_TR2_3 - Limit - 49188.000000 - - - - - NL_TR2_3 - CL-2 - CL-2 - Ratings for element NL_TR2_3 - Limit - 3306.600000 - - - - - NL_TR2_3 - CL-2 - CL-2 - Ratings for element NL_TR2_3 - Limit - 46188.000000 - - - - - NL-Load_1 - NL-L_1 - Apple - false - - - - NL-Load_2 - NL-L_2 - Electrabel - true - - - - NL-Load_3 - NL-L_3 - Siemens - false - - - - - NL-Inj-XCA_AL11 - NL-I-XCA_AL1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XKA_MA11 - NL-I-XKA_MA1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XWI_GY11 - NL-I-XWI_GY1 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XZE_ST23 - NL-I-XZE_ST2 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - NL-Inj-XZE_ST24 - NL-I-XZE_ST2 - Eq_Injection - false - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - - - - Gen-12908 - Machine - 150.000000 - 225.000000 - 250.000000 - 130.000000 - - false - - - - Gen-12910 - Machine - 140.000000 - 225.000000 - 250.000000 - 130.000000 - - false - - - - Gen-12923 - Machine - 600.492701 - 990.000000 - 1000.000000 - 300.000000 - - false - - - - NL - - - container of NL-Line_1 - - - - container of NL-Line_2 - - - - container of NL-Line_3 - - - - container of NL-Line_4 - - - - container of NL-Line_5 - - - - NL-S1 - NL-S1 - shunt - 1 - 1 - 0.000313 - 0e+000 - -0e+000 - 0e+000 - 400.000000 - - false - - - - NL-Load_3 - NL-L_3 - false - 0.200000 - 0e+000 - 0.800000 - 0e+000 - 0.300000 - 0e+000 - 0.700000 - 0e+000 - 0e+000 - 0e+000 - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_5 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_4 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_3 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_2 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-Line_1 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL-TR2_1 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL_TR2_2 at Port 1 - - - - Limits at Port 1 - Limit-Ratings for branch NL_TR2_3 at Port 1 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_5 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_4 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_3 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_2 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-Line_1 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL-TR2_1 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL_TR2_2 at Port 2 - - - - Limits at Port 2 - Limit-Ratings for branch NL_TR2_3 at Port 2 - - - - PATL - patl - - - - - PATLT - patlt - - - - - TATL10 - tatl - - - 10.000000 - - - TATL20 - tatl - - - 20.000000 - - - TC - tc - - - - - TCT - tct - - - - - NL-TR2_1 - NL-T_1 - new transformer in 2015 - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL_TR2_2 - NL_T_2 - trafo - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL_TR2_3 - NL_T_3 - out of service in 2020 - false - - 0e+000 - 0e+000 - 0e+000 - 0e+000 - false - false - - - NL-TR2_1 - NL-T_1 - 1.350000 - 27.967436 - -0.0000044445 - 0.0000005625 - 1.350000 - 27.967436 - 0.0 - 0.0 - 0e+000 - 0.0 - 320.000000 - 400.000000 - 1 - 0 - true - - - - - - - NL-TR2_1 - NL-T_1 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 320.000000 - 220.000000 - 2 - 0 - true - - - - - - - NL_TR2_2 - NL_T_2 - 0.069143 - 5.377333 - -0.0001420227 - 0.0000181818 - 0.069143 - 5.377333 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 220.000000 - 1 - 0 - true - - - - - - - NL_TR2_2 - NL_T_2 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 15.750000 - 2 - 0 - true - - - - - - - NL_TR2_3 - NL_T_3 - 0.065302 - 5.377381 - -0.0001420227 - 0.0000181818 - 0.069143 - 5.377333 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 220.000000 - 1 - 0 - true - - - - - - - NL_TR2_3 - NL_T_3 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0e+000 - 0.0 - 0.0 - 0e+000 - 0.0 - 1260.000000 - 15.750000 - 2 - 0 - true - - - - - - - NL-TR2_1 - NL-T_1 - 400.000000 - -20 - 20 - 0 - -2 - 0.800000 - true - - - - - - NL_TR2_2 - NL_T_2 - 220.000000 - 0 - 33 - 17 - 17 - 0.625000 - true - - - - - - NL_TR2_3 - NL_T_3 - 220.000000 - -15 - 15 - 0 - 5 - 0.625000 - true - - - - - - NL-G1 - NL-G1 - - - - - NL-G2 - NL-G2 - - - - - NL-G3 - NL-G3 - - - - - NL-S1 - NL-S1 - - - - - TENNET TSO B.V. - - - - PP_Amsterdam - PP_Amsterdam - - - - NL-G1 - NL-G1 - Machine - false - - 100.000000 - 600.000000 - 0e+000 - 1100.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.110000 - 0.180000 - 0e+000 - 0e+000 - 0e+000 - 0.210000 - 1.900000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-G2 - NL-G2 - Machine - false - - 100.000000 - 200.000000 - 0e+000 - 250.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.100000 - 0.160000 - 0e+000 - 0e+000 - 0e+000 - 0.180000 - 1.800000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-G3 - NL-G3 - Machine - false - - 100.000000 - 200.000000 - 0e+000 - 250.000000 - - - - 15.750000 - 0.900000 - - 0e+000 - 0e+000 - 0.130000 - 0.170000 - 0e+000 - 0e+000 - 0e+000 - 0.200000 - 1.900000 - 0e+000 - 0e+000 - 0e+000 - 0e+000 - true - - - NL-TR2_1 - NL-T_1 - - - - - NL_TR2_2 - NL_T_2 - - - - - NL_TR2_3 - NL_T_3 - - - - - B1 - T1 - B1 - 1 - - - - - B1 - T2 - B1 - 2 - - - - - N1230822396_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_2_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_3_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-Busbar_5_Busbar_Section - BB - 1 - - - Busbar Section - - - NL-G1 - T1 - NL-G1 - 1 - - - - - NL-G2 - T1 - NL-G2 - 1 - - - - - NL-G3 - T1 - NL-G3 - 1 - - - - - NL-Inj-XCA_AL11 - T1 - NL-I-XCA_AL1 - 1 - - - - - NL-Inj-XKA_MA11 - T1 - NL-I-XKA_MA1 - 1 - - - - - NL-Inj-XWI_GY11 - T1 - NL-I-XWI_GY1 - 1 - - - - - NL-Inj-XZE_ST23 - T1 - NL-I-XZE_ST2 - 1 - - - - - NL-Inj-XZE_ST24 - T1 - NL-I-XZE_ST2 - 1 - - - - - NL-Line_1 - T1 - NL-L_1 - 1 - - - 10T-AT-DE-000118 - - - NL-Line_1 - T2 - NL-L_1 - 2 - - - 10T-AT-DE-000118 - - - NL-Line_2 - T1 - NL-L_2 - 1 - - - - - NL-Line_2 - T2 - NL-L_2 - 2 - - - - - NL-Line_3 - T1 - NL-L_3 - 1 - - - 10T-AT-DE-00009W - - - NL-Line_3 - T2 - NL-L_3 - 2 - - - 10T-AT-DE-00009W - - - NL-Line_4 - T1 - NL-L_4 - 1 - - - 10T-AT-DE-00009W - - - NL-Line_4 - T2 - NL-L_4 - 2 - - - 10T-AT-DE-00009W - - - NL-Line_5 - T1 - NL-L_5 - 1 - - - 10T-AT-DE-000118 - - - NL-Line_5 - T2 - NL-L_5 - 2 - - - 10T-AT-DE-000118 - - - NL-Load_1 - T1 - NL-L_1 - 1 - - - - - NL-Load_2 - T1 - NL-L_2 - 1 - - - - - NL-Load_3 - T1 - NL-L_3 - 1 - - - - - NL-S1 - T1 - NL-S1 - 1 - - - - - NL-TR2_1 - T1 - NL-T_1 - 1 - - - - - NL-TR2_1 - T2 - NL-T_1 - 2 - - - - - NL_TR2_2 - T1 - NL_T_2 - 1 - - - - - NL_TR2_2 - T2 - NL_T_2 - 2 - - - - - NL_TR2_3 - T1 - NL_T_3 - 1 - - - - - NL_TR2_3 - T2 - NL_T_3 - 2 - - - - - 15.8 - 14.175000 - 17.325000 - - - - - 15.8 - 14.175000 - 17.325000 - - - - - 220.0 - 198.000000 - 242.000000 - - - - - 400.0 - 360.000000 - 440.000000 - - - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_internal_line_z0/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_internal_line_z0/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml deleted file mode 100644 index d5ce87a5efb..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_internal_line_z0/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml +++ /dev/null @@ -1,4480 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2015-02-05T12:20:50.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentOperation/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - http://A1.de/Planning/ENTSOE/2 - - - - - L5_0 - 1 - - - - - - L5_1 - 2 - - - - - - L6_0 - 1 - - - - - - L6_1 - 2 - - - - - - L4_0 - 1 - - - - - - L4_1 - 2 - - - - - - L1_0 - 1 - - - - - - L1_1 - 2 - - - - - - L2_0 - 1 - - - - - - L2_1 - 2 - - - - - - L3_a_0 - 1 - - - - - - L3_a_1 - 2 - - - - - - L3_b_0 - 1 - - - - - - L3_b_1 - 2 - - - - - - T5_0 - 1 - - - - - - T5_1 - 2 - - - - - - T6_0 - 1 - - - - - - T6_1 - 2 - - - - - - T2_0 - 1 - - - - - - T2_1 - 2 - - - - - - T1_0 - 1 - - - - - - T1_1 - 2 - - - - - - T4_0 - 1 - - - - - - T4_1 - 2 - - - - - - T4_2 - 3 - - - - - - T3_0 - 1 - - - - - - T3_1 - 2 - - - - - - T3_2 - 3 - - - - - - G2_0 - 1 - - - - - - G1_0 - 1 - - - - - - G3_0 - 1 - - - - - - M1_0 - 1 - - - - - - M2_0 - 1 - - - - - - ASM-1229750300_0 - 1 - - - - - - Q1_0 - 1 - - - - - - Q2_0 - 1 - - - - - - 380kV - 380 - - - 21kV - 21 - - - 10kV - 10 - - - 110kV - 110 - - - 30kV - 30 - - - S2 10kV - - - - - S5 10kV - - - - - S4 10kV - - - - - S3 21kV - - - - - S2 110kV - - - - - S3 110kV - - - - - S1 380kV - - - - - S1 30kV - - - - - S4 110kV - - - - - S1 110kV - - - - - Sub1 - - - - Sub2 - - - - Sub3 - - - - Sub4 - - - - Sub5 - - - - AA - - - Z1 - - - - PATL - 45000 - - - - - TATL - 900 - - - - - TATL - 60 - - - - - Gen-1 - G2 - false - - 0 - 127.5 - 0 - - - G2 - - - 0.9 - 100 - 10.5 - - false - 43.6 - -43.6 - 100 - 0 - 0.004535 - 0.16 - 2 - 2 - - - 7.5 - 0.005 - 0.1 - 0.16 - - - Gen-2 - G1 - false - - 0 - 90 - 0 - - - G1 - - 0.85 - 150 - 21 - - false - 79 - -79 - 100 - 0 - 0.00068 - 0.14 - 1.8 - 1.8 - - - 0.002 - 0.1 - 0.14 - - - Gen-3 - G3 - false - - 0 - 8 - 0 - - - G3 - - 0.8 - 10 - 10.5 - - false - 6 - -6 - 100 - 0 - 0.00163 - 0.1 - 1.8 - 1.8 - - - 0.018 - 0.08 - 0.1 - - - M3 - false - - 0.88 - 5.828 - 10 - false - 97.5 - 5 - 1 - 5 - false - 0.1 - - - M2a - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - M2b - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - Q1 - - 0 - true - 38000 - 800 - 600 - 0.15 - 0.1 - 3.029 - 0 - -800 - -600 - 0.1 - 0.1 - 1 - 1.1 - - - Q2 - - 0 - true - 16000 - 88 - 66 - 0.2 - 0.1 - 3.34865 - 0 - -88 - -66 - 0 - 0 - 0 - 1.1 - - - Line-7 - L5 - false - - - 15 - 0 - 0 - 0 - 0 - 1.8 - 3.3 - 80 - 5.79 - 16.5 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-4 - L6 - false - - - 1 - 0 - 0 - 0 - 0 - 0.082 - 0.082 - 80 - 0.086 - 0.086 - - - Ratings - - - - Normal - - - 1155 - - - ShortTerm - - - 1328 - - - Emergency - - - 1617 - - - Line-5 - L4 - false - - - 10 - 0 - 0 - 0 - 0 - 0.96 - 2.2 - 80 - 3.88 - 11 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-1 - L1 - false - - - 20 - 0 - 0 - 0 - 0 - 2.4 - 6.4 - 80 - 7.8 - 25.2 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-6 - L2 - false - - - 10 - 0 - 0 - 0 - 0 - 1.2 - 3.2 - 80 - 3.9 - 12.6 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-2 - L3_a - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-3 - L3_b - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Trafo-1 - T5 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T5 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T5 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-2 - T6 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T6 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T6 - 0 - 2 - true - 100 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-3 - T2 - false - - 115 - true - false - - - T2 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 100 - 0 - 120 - 0 - 0.72 - 0.72 - 17.2649937 - 17.2649937 - - - - Ratings - - - - Normal - - - 481 - - - ShortTerm - - - 553 - - - Emergency - - - 673 - - - T2 - 2 - false - - - 0 - - 0 - 5 - 100 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 5498 - - - ShortTerm - - - 6323 - - - Emergency - - - 7698 - - - Trafo-4 - T1 - false - - 115 - true - false - - - T1 - 2 - false - - - 0 - - 0 - 5 - 150 - 0 - 21 - 0 - 0.0147 - 0.0147 - 0.47017 - 0.446662 - - - - Ratings - - - - Normal - - - 4123 - - - ShortTerm - - - 4742 - - - Emergency - - - 5773 - - - T1 - 25 - 1 - true - 13 - 21 - 13 - - 1 - - - - T1 - 0 - 1 - true - 22 - - - 0 - - 0 - 0 - 150 - 0 - 115 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 753 - - - ShortTerm - - - 866 - - - Emergency - - - 1054 - - - T4 - false - - false - - - T4 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.0254571438 - 0.0254571438 - 1.259741 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 0 - 2 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T4 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - Trafo-5 - T3 - false - - false - - - T3 - 0 - 1 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - T3 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - T3 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T3 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.02545714286 - 0.02545714286 - 1.259740894 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - 68-116_0 - 1 - - - - - - 68-116_1 - 2 - - - - - - Injection_0 - 1 - - - - - - 71-73_0 - 1 - - - - - - 71-73_1 - 2 - - - - - - Injection_0 - 1 - - - - - - XQ1-N1 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - XQ2-N5 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - Injection1 - - - 0.63185 - 2.85315 - 0.63185 - false - 6.3185 - 19.021 - 6.3185 - - - Injection2 - - - 0.43445 - 2.86738 - 0.43445 - false - 4.3445 - 14.3369 - 4.3445 - - - CONNECTIVITY_NODE1 - - - - BUSBAR1 - - - - - L5_0_BUSBAR - 1 - - - - - - BAY_L5_0 - - - - L5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR1 - - - false - false - - - L5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE2 - - - - L5_0_ADDB1 - 1 - - - - - - BREAKER1 - - - false - false - - - L5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE3 - - - - L5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR2 - - - false - false - - - L5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE4 - - - - CONNECTIVITY_NODE5 - - - - BUSBAR2 - - - - - L5_1_BUSBAR - 2 - - - - - - BAY_L5_1 - - - - L5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR3 - - - false - false - - - L5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE6 - - - - L5_1_ADDB1 - 1 - - - - - - BREAKER2 - - - false - false - - - L5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE7 - - - - L5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR4 - - - false - false - - - L5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE8 - - - - CONNECTIVITY_NODE9 - - - - BUSBAR3 - - - - - L6_0_BUSBAR - 1 - - - - - - BAY_L6_0 - - - - L6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR5 - - - false - false - - - L6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE10 - - - - L6_0_ADDB1 - 1 - - - - - - BREAKER3 - - - false - false - - - L6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE11 - - - - L6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR6 - - - false - false - - - L6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE12 - - - - CONNECTIVITY_NODE13 - - - - BUSBAR4 - - - - - L6_1_BUSBAR - 2 - - - - - - BAY_L6_1 - - - - L6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR7 - - - false - false - - - L6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE14 - - - - L6_1_ADDB1 - 1 - - - - - - BREAKER4 - - - false - false - - - L6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE15 - - - - L6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR8 - - - false - false - - - L6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE16 - - - - BAY_L4_0 - - - - L4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR9 - - - false - false - - - L4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE17 - - - - L4_0_ADDB1 - 1 - - - - - - BREAKER5 - - - false - false - - - L4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE18 - - - - L4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR10 - - - false - false - - - L4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE19 - - - - CONNECTIVITY_NODE20 - - - - BUSBAR5 - - - - - L4_1_BUSBAR - 2 - - - - - - BAY_L4_1 - - - - L4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR11 - - - false - false - - - L4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE21 - - - - L4_1_ADDB1 - 1 - - - - - - BREAKER6 - - - false - false - - - L4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE22 - - - - L4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR12 - - - false - false - - - L4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE23 - - - - CONNECTIVITY_NODE24 - - - - BUSBAR6 - - - - - L1_0_BUSBAR - 1 - - - - - - BAY_L1_0 - - - - L1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR13 - - - false - false - - - L1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE25 - - - - L1_0_ADDB1 - 1 - - - - - - BREAKER7 - - - false - false - - - L1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE26 - - - - L1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR14 - - - false - false - - - L1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE27 - - - - BAY_L1_1 - - - - L1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR15 - - - false - false - - - L1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE28 - - - - L1_1_ADDB1 - 1 - - - - - - BREAKER8 - - - false - false - - - L1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE29 - - - - L1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR16 - - - false - false - - - L1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE30 - - - - BAY_L2_0 - - - - L2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR17 - - - false - false - - - L2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE31 - - - - L2_0_ADDB1 - 1 - - - - - - BREAKER9 - - - false - false - - - L2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE32 - - - - L2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR18 - - - false - false - - - L2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE33 - - - - BAY_L2_1 - - - - L2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR19 - - - false - false - - - L2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE34 - - - - L2_1_ADDB1 - 1 - - - - - - BREAKER10 - - - false - false - - - L2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE35 - - - - L2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR20 - - - false - false - - - L2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE36 - - - - BAY_L3_a_0 - - - - L3_a_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR21 - - - false - false - - - L3_a_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE37 - - - - L3_a_0_ADDB1 - 1 - - - - - - BREAKER11 - - - false - false - - - L3_a_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE38 - - - - L3_a_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR22 - - - false - false - - - L3_a_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE39 - - - - BAY_L3_a_1 - - - - L3_a_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR23 - - - false - false - - - L3_a_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE40 - - - - L3_a_1_ADDB1 - 1 - - - - - - BREAKER12 - - - false - false - - - L3_a_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE41 - - - - L3_a_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR24 - - - false - false - - - L3_a_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE42 - - - - BAY_L3_b_0 - - - - L3_b_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR25 - - - false - false - - - L3_b_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE43 - - - - L3_b_0_ADDB1 - 1 - - - - - - BREAKER13 - - - false - false - - - L3_b_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE44 - - - - L3_b_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR26 - - - false - false - - - L3_b_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE45 - - - - BAY_L3_b_1 - - - - L3_b_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR27 - - - false - false - - - L3_b_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE46 - - - - L3_b_1_ADDB1 - 1 - - - - - - BREAKER14 - - - false - false - - - L3_b_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE47 - - - - L3_b_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR28 - - - false - false - - - L3_b_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE48 - - - - BAY_T5_0 - - - - T5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR29 - - - false - false - - - T5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE49 - - - - T5_0_ADDB1 - 1 - - - - - - BREAKER15 - - - false - false - - - T5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE50 - - - - T5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR30 - - - false - false - - - T5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE51 - - - - BAY_T5_1 - - - - T5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR31 - - - false - false - - - T5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE52 - - - - T5_1_ADDB1 - 1 - - - - - - BREAKER16 - - - false - false - - - T5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE53 - - - - T5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR32 - - - false - false - - - T5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE54 - - - - BAY_T6_0 - - - - T6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR33 - - - false - false - - - T6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE55 - - - - T6_0_ADDB1 - 1 - - - - - - BREAKER17 - - - false - false - - - T6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE56 - - - - T6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR34 - - - false - false - - - T6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE57 - - - - BAY_T6_1 - - - - T6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR35 - - - false - false - - - T6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE58 - - - - T6_1_ADDB1 - 1 - - - - - - BREAKER18 - - - false - false - - - T6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE59 - - - - T6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR36 - - - false - false - - - T6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE60 - - - - BAY_T2_0 - - - - T2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR37 - - - false - false - - - T2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE61 - - - - T2_0_ADDB1 - 1 - - - - - - BREAKER19 - - - false - false - - - T2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE62 - - - - T2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR38 - - - false - false - - - T2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE63 - - - - CONNECTIVITY_NODE64 - - - - BUSBAR7 - - - - - T2_1_BUSBAR - 2 - - - - - - BAY_T2_1 - - - - T2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR39 - - - false - false - - - T2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE65 - - - - T2_1_ADDB1 - 1 - - - - - - BREAKER20 - - - false - false - - - T2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE66 - - - - T2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR40 - - - false - false - - - T2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE67 - - - - CONNECTIVITY_NODE68 - - - - BUSBAR8 - - - - - T1_0_BUSBAR - 1 - - - - - - BAY_T1_0 - - - - T1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR41 - - - false - false - - - T1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE69 - - - - T1_0_ADDB1 - 1 - - - - - - BREAKER21 - - - false - false - - - T1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE70 - - - - T1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR42 - - - false - false - - - T1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE71 - - - - BAY_T1_1 - - - - T1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR43 - - - false - false - - - T1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE72 - - - - T1_1_ADDB1 - 1 - - - - - - INTERCONNECTOR22 - - - 0 - 0 - 0 - 0 - - - T1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE73 - - - - T1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR44 - - - false - false - - - T1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE74 - - - - CONNECTIVITY_NODE75 - - - - BUSBAR9 - - - - - T4_0_BUSBAR - 1 - - - - - - BAY_T4_0 - - - - T4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR45 - - - false - false - - - T4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE76 - - - - T4_0_ADDB1 - 1 - - - - - - BREAKER23 - - - false - false - - - T4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE77 - - - - T4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR46 - - - false - false - - - T4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE78 - - - - BAY_T4_1 - - - - T4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR47 - - - false - false - - - T4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE79 - - - - T4_1_ADDB1 - 1 - - - - - - BREAKER24 - - - false - false - - - T4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE80 - - - - T4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR48 - - - false - false - - - T4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE81 - - - - CONNECTIVITY_NODE82 - - - - BUSBAR10 - - - - - T4_2_BUSBAR - 3 - - - - - - BAY_T4_2 - - - - T4_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR49 - - - false - false - - - T4_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE83 - - - - T4_2_ADDB1 - 1 - - - - - - BREAKER25 - - - false - false - - - T4_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE84 - - - - T4_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR50 - - - false - false - - - T4_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE85 - - - - BAY_T3_0 - - - - T3_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR51 - - - false - false - - - T3_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE86 - - - - T3_0_ADDB1 - 1 - - - - - - BREAKER26 - - - false - false - - - T3_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE87 - - - - T3_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR52 - - - false - false - - - T3_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE88 - - - - BAY_T3_1 - - - - T3_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR53 - - - false - false - - - T3_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE89 - - - - T3_1_ADDB1 - 1 - - - - - - BREAKER27 - - - false - false - - - T3_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE90 - - - - T3_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR54 - - - false - false - - - T3_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE91 - - - - CONNECTIVITY_NODE92 - - - - BUSBAR11 - - - - - T3_2_BUSBAR - 3 - - - - - - BAY_T3_2 - - - - T3_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR55 - - - false - false - - - T3_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE93 - - - - T3_2_ADDB1 - 1 - - - - - - BREAKER28 - - - false - false - - - T3_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE94 - - - - T3_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR56 - - - false - false - - - T3_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE95 - - - - BAY_68-116_0 - - - - 68-116_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR57 - - - false - false - - - 68-116_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE96 - - - - 68-116_0_ADDB1 - 1 - - - - - - BREAKER29 - - - false - false - - - 68-116_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE97 - - - - 68-116_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR58 - - - false - false - - - 68-116_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE98 - - - - BAY_71-73_0 - - - - 71-73_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR59 - - - false - false - - - 71-73_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE100 - - - - 71-73_0_ADDB1 - 1 - - - - - - BREAKER30 - - - false - false - - - 71-73_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE101 - - - - 71-73_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR60 - - - false - false - - - 71-73_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE102 - - - - GEN_A1 - - - - - _CA_A1 - - - - 5 - 1 - - - 4 - 1 - - - 6 - 1 - - - 7 - 1 - - - 3 - 1 - - - 2 - 1 - - - HG2 - 1 - - - HG1 - 1 - - - H - 1 - - - 1 - 1 - - - 8 - 1 - - - Container for Line-7 - - - - Container for Line-4 - - - - Container for Line-5 - - - - Container for Line-1 - - - - Container for Line-6 - - - - Container for Line-2 - - - - Container for Line-3 - - - - TwinBrch SM - - - - - PATLT - 4000 - - - - - Normal - - - 525 - - - Normal - - - 1155 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 481 - - - Normal - - - 5498 - - - Normal - - - 4123 - - - Normal - - - 753 - - - Normal - - - 962 - - - Normal - - - 1683 - - - Normal - - - 505 - - - Normal - - - 505 - - - Normal - - - 1683 - - - Normal - - - 962 - - - Normal - - - 1000 - - - Normal - - - 1000 - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_load_break_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_load_break_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml deleted file mode 100644 index 46db9accb09..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_load_break_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml +++ /dev/null @@ -1,4478 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2015-02-05T12:20:50.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentOperation/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - http://A1.de/Planning/ENTSOE/2 - - - - - L5_0 - 1 - - - - - - L5_1 - 2 - - - - - - L6_0 - 1 - - - - - - L6_1 - 2 - - - - - - L4_0 - 1 - - - - - - L4_1 - 2 - - - - - - L1_0 - 1 - - - - - - L1_1 - 2 - - - - - - L2_0 - 1 - - - - - - L2_1 - 2 - - - - - - L3_a_0 - 1 - - - - - - L3_a_1 - 2 - - - - - - L3_b_0 - 1 - - - - - - L3_b_1 - 2 - - - - - - T5_0 - 1 - - - - - - T5_1 - 2 - - - - - - T6_0 - 1 - - - - - - T6_1 - 2 - - - - - - T2_0 - 1 - - - - - - T2_1 - 2 - - - - - - T1_0 - 1 - - - - - - T1_1 - 2 - - - - - - T4_0 - 1 - - - - - - T4_1 - 2 - - - - - - T4_2 - 3 - - - - - - T3_0 - 1 - - - - - - T3_1 - 2 - - - - - - T3_2 - 3 - - - - - - G2_0 - 1 - - - - - - G1_0 - 1 - - - - - - G3_0 - 1 - - - - - - M1_0 - 1 - - - - - - M2_0 - 1 - - - - - - ASM-1229750300_0 - 1 - - - - - - Q1_0 - 1 - - - - - - Q2_0 - 1 - - - - - - 380kV - 380 - - - 21kV - 21 - - - 10kV - 10 - - - 110kV - 110 - - - 30kV - 30 - - - S2 10kV - - - - - S5 10kV - - - - - S4 10kV - - - - - S3 21kV - - - - - S2 110kV - - - - - S3 110kV - - - - - S1 380kV - - - - - S1 30kV - - - - - S4 110kV - - - - - S1 110kV - - - - - Sub1 - - - - Sub2 - - - - Sub3 - - - - Sub4 - - - - Sub5 - - - - AA - - - Z1 - - - - PATL - 45000 - - - - - TATL - 900 - - - - - TATL - 60 - - - - - Gen-1 - G2 - false - - 0 - 127.5 - 0 - - - G2 - - - 0.9 - 100 - 10.5 - - false - 43.6 - -43.6 - 100 - 0 - 0.004535 - 0.16 - 2 - 2 - - - 7.5 - 0.005 - 0.1 - 0.16 - - - Gen-2 - G1 - false - - 0 - 90 - 0 - - - G1 - - 0.85 - 150 - 21 - - false - 79 - -79 - 100 - 0 - 0.00068 - 0.14 - 1.8 - 1.8 - - - 0.002 - 0.1 - 0.14 - - - Gen-3 - G3 - false - - 0 - 8 - 0 - - - G3 - - 0.8 - 10 - 10.5 - - false - 6 - -6 - 100 - 0 - 0.00163 - 0.1 - 1.8 - 1.8 - - - 0.018 - 0.08 - 0.1 - - - M3 - false - - 0.88 - 5.828 - 10 - false - 97.5 - 5 - 1 - 5 - false - 0.1 - - - M2a - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - M2b - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - Q1 - - 0 - true - 38000 - 800 - 600 - 0.15 - 0.1 - 3.029 - 0 - -800 - -600 - 0.1 - 0.1 - 1 - 1.1 - - - Q2 - - 0 - true - 16000 - 88 - 66 - 0.2 - 0.1 - 3.34865 - 0 - -88 - -66 - 0 - 0 - 0 - 1.1 - - - Line-7 - L5 - false - - - 15 - 0 - 0 - 0 - 0 - 1.8 - 3.3 - 80 - 5.79 - 16.5 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-4 - L6 - false - - - 1 - 0 - 0 - 0 - 0 - 0.082 - 0.082 - 80 - 0.086 - 0.086 - - - Ratings - - - - Normal - - - 1155 - - - ShortTerm - - - 1328 - - - Emergency - - - 1617 - - - Line-5 - L4 - false - - - 10 - 0 - 0 - 0 - 0 - 0.96 - 2.2 - 80 - 3.88 - 11 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-1 - L1 - false - - - 20 - 0 - 0 - 0 - 0 - 2.4 - 6.4 - 80 - 7.8 - 25.2 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-6 - L2 - false - - - 10 - 0 - 0 - 0 - 0 - 1.2 - 3.2 - 80 - 3.9 - 12.6 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-2 - L3_a - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-3 - L3_b - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Trafo-1 - T5 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T5 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T5 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-2 - T6 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T6 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T6 - 0 - 2 - true - 100 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-3 - T2 - false - - 115 - true - false - - - T2 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 100 - 0 - 120 - 0 - 0.72 - 0.72 - 17.2649937 - 17.2649937 - - - - Ratings - - - - Normal - - - 481 - - - ShortTerm - - - 553 - - - Emergency - - - 673 - - - T2 - 2 - false - - - 0 - - 0 - 5 - 100 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 5498 - - - ShortTerm - - - 6323 - - - Emergency - - - 7698 - - - Trafo-4 - T1 - false - - 115 - true - false - - - T1 - 2 - false - - - 0 - - 0 - 5 - 150 - 0 - 21 - 0 - 0.0147 - 0.0147 - 0.47017 - 0.446662 - - - - Ratings - - - - Normal - - - 4123 - - - ShortTerm - - - 4742 - - - Emergency - - - 5773 - - - T1 - 25 - 1 - true - 13 - 21 - 13 - - 1 - - - - T1 - 0 - 1 - true - 22 - - - 0 - - 0 - 0 - 150 - 0 - 115 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 753 - - - ShortTerm - - - 866 - - - Emergency - - - 1054 - - - T4 - false - - false - - - T4 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.0254571438 - 0.0254571438 - 1.259741 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 0 - 2 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T4 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - Trafo-5 - T3 - false - - false - - - T3 - 0 - 1 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - T3 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - T3 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T3 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.02545714286 - 0.02545714286 - 1.259740894 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - 68-116_0 - 1 - - - - - - 68-116_1 - 2 - - - - - - Injection_0 - 1 - - - - - - 71-73_0 - 1 - - - - - - 71-73_1 - 2 - - - - - - Injection_0 - 1 - - - - - - XQ1-N1 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - XQ2-N5 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - Injection1 - - - 0.63185 - 2.85315 - 0.63185 - false - 6.3185 - 19.021 - 6.3185 - - - Injection2 - - - 0.43445 - 2.86738 - 0.43445 - false - 4.3445 - 14.3369 - 4.3445 - - - CONNECTIVITY_NODE1 - - - - BUSBAR1 - - - - - L5_0_BUSBAR - 1 - - - - - - BAY_L5_0 - - - - L5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR1 - - - false - false - - - L5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE2 - - - - L5_0_ADDB1 - 1 - - - - - - BREAKER1 - - - false - false - - - L5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE3 - - - - L5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR2 - - - false - false - - - L5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE4 - - - - CONNECTIVITY_NODE5 - - - - BUSBAR2 - - - - - L5_1_BUSBAR - 2 - - - - - - BAY_L5_1 - - - - L5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR3 - - - false - false - - - L5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE6 - - - - L5_1_ADDB1 - 1 - - - - - - BREAKER2 - - - false - false - - - L5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE7 - - - - L5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR4 - - - false - false - - - L5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE8 - - - - CONNECTIVITY_NODE9 - - - - BUSBAR3 - - - - - L6_0_BUSBAR - 1 - - - - - - BAY_L6_0 - - - - L6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR5 - - - false - false - - - L6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE10 - - - - L6_0_ADDB1 - 1 - - - - - - BREAKER3 - - - false - false - - - L6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE11 - - - - L6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR6 - - - false - false - - - L6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE12 - - - - CONNECTIVITY_NODE13 - - - - BUSBAR4 - - - - - L6_1_BUSBAR - 2 - - - - - - BAY_L6_1 - - - - L6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR7 - - - false - false - - - L6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE14 - - - - L6_1_ADDB1 - 1 - - - - - - BREAKER4 - - - false - false - - - L6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE15 - - - - L6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR8 - - - false - false - - - L6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE16 - - - - BAY_L4_0 - - - - L4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR9 - - - false - false - - - L4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE17 - - - - L4_0_ADDB1 - 1 - - - - - - BREAKER5 - - - false - false - - - L4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE18 - - - - L4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR10 - - - false - false - - - L4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE19 - - - - CONNECTIVITY_NODE20 - - - - BUSBAR5 - - - - - L4_1_BUSBAR - 2 - - - - - - BAY_L4_1 - - - - L4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR11 - - - false - false - - - L4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE21 - - - - L4_1_ADDB1 - 1 - - - - - - BREAKER6 - - - false - false - - - L4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE22 - - - - L4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR12 - - - false - false - - - L4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE23 - - - - CONNECTIVITY_NODE24 - - - - BUSBAR6 - - - - - L1_0_BUSBAR - 1 - - - - - - BAY_L1_0 - - - - L1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR13 - - - false - false - - - L1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE25 - - - - L1_0_ADDB1 - 1 - - - - - - BREAKER7 - - - false - false - - - L1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE26 - - - - L1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR14 - - - false - false - - - L1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE27 - - - - BAY_L1_1 - - - - L1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR15 - - - false - false - - - L1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE28 - - - - L1_1_ADDB1 - 1 - - - - - - BREAKER8 - - - false - false - - - L1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE29 - - - - L1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR16 - - - false - false - - - L1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE30 - - - - BAY_L2_0 - - - - L2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR17 - - - false - false - - - L2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE31 - - - - L2_0_ADDB1 - 1 - - - - - - BREAKER9 - - - false - false - - - L2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE32 - - - - L2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR18 - - - false - false - - - L2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE33 - - - - BAY_L2_1 - - - - L2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR19 - - - false - false - - - L2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE34 - - - - L2_1_ADDB1 - 1 - - - - - - BREAKER10 - - - false - false - - - L2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE35 - - - - L2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR20 - - - false - false - - - L2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE36 - - - - BAY_L3_a_0 - - - - L3_a_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR21 - - - false - false - - - L3_a_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE37 - - - - L3_a_0_ADDB1 - 1 - - - - - - BREAKER11 - - - false - false - - - L3_a_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE38 - - - - L3_a_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR22 - - - false - false - - - L3_a_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE39 - - - - BAY_L3_a_1 - - - - L3_a_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR23 - - - false - false - - - L3_a_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE40 - - - - L3_a_1_ADDB1 - 1 - - - - - - BREAKER12 - - - false - false - - - L3_a_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE41 - - - - L3_a_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR24 - - - false - false - - - L3_a_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE42 - - - - BAY_L3_b_0 - - - - L3_b_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR25 - - - false - false - - - L3_b_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE43 - - - - L3_b_0_ADDB1 - 1 - - - - - - BREAKER13 - - - false - false - - - L3_b_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE44 - - - - L3_b_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR26 - - - false - false - - - L3_b_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE45 - - - - BAY_L3_b_1 - - - - L3_b_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR27 - - - false - false - - - L3_b_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE46 - - - - L3_b_1_ADDB1 - 1 - - - - - - BREAKER14 - - - false - false - - - L3_b_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE47 - - - - L3_b_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR28 - - - false - false - - - L3_b_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE48 - - - - BAY_T5_0 - - - - T5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR29 - - - false - false - - - T5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE49 - - - - T5_0_ADDB1 - 1 - - - - - - BREAKER15 - - - false - false - - - T5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE50 - - - - T5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR30 - - - false - false - - - T5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE51 - - - - BAY_T5_1 - - - - T5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR31 - - - false - false - - - T5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE52 - - - - T5_1_ADDB1 - 1 - - - - - - BREAKER16 - - - false - false - - - T5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE53 - - - - T5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR32 - - - false - false - - - T5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE54 - - - - BAY_T6_0 - - - - T6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR33 - - - false - false - - - T6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE55 - - - - T6_0_ADDB1 - 1 - - - - - - BREAKER17 - - - false - false - - - T6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE56 - - - - T6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR34 - - - false - false - - - T6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE57 - - - - BAY_T6_1 - - - - T6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR35 - - - false - false - - - T6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE58 - - - - T6_1_ADDB1 - 1 - - - - - - BREAKER18 - - - false - false - - - T6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE59 - - - - T6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR36 - - - false - false - - - T6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE60 - - - - BAY_T2_0 - - - - T2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR37 - - - false - false - - - T2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE61 - - - - T2_0_ADDB1 - 1 - - - - - - BREAKER19 - - - false - false - - - T2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE62 - - - - T2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR38 - - - false - false - - - T2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE63 - - - - CONNECTIVITY_NODE64 - - - - BUSBAR7 - - - - - T2_1_BUSBAR - 2 - - - - - - BAY_T2_1 - - - - T2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR39 - - - false - false - - - T2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE65 - - - - T2_1_ADDB1 - 1 - - - - - - BREAKER20 - - - false - false - - - T2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE66 - - - - T2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR40 - - - false - false - - - T2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE67 - - - - CONNECTIVITY_NODE68 - - - - BUSBAR8 - - - - - T1_0_BUSBAR - 1 - - - - - - BAY_T1_0 - - - - T1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR41 - - - false - false - - - T1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE69 - - - - T1_0_ADDB1 - 1 - - - - - - BREAKER21 - - - false - false - - - T1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE70 - - - - T1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR42 - - - false - false - - - T1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE71 - - - - BAY_T1_1 - - - - T1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR43 - - - false - false - - - T1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE72 - - - - T1_1_ADDB1 - 1 - - - - - - BREAKER22 - - - false - false - - - T1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE73 - - - - T1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR44 - - - false - false - - - T1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE74 - - - - CONNECTIVITY_NODE75 - - - - BUSBAR9 - - - - - T4_0_BUSBAR - 1 - - - - - - BAY_T4_0 - - - - T4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR45 - - - false - false - - - T4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE76 - - - - T4_0_ADDB1 - 1 - - - - - - BREAKER23 - - - false - false - - - T4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE77 - - - - T4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR46 - - - false - false - - - T4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE78 - - - - BAY_T4_1 - - - - T4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR47 - - - false - false - - - T4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE79 - - - - T4_1_ADDB1 - 1 - - - - - - BREAKER24 - - - false - false - - - T4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE80 - - - - T4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR48 - - - false - false - - - T4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE81 - - - - CONNECTIVITY_NODE82 - - - - BUSBAR10 - - - - - T4_2_BUSBAR - 3 - - - - - - BAY_T4_2 - - - - T4_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR49 - - - false - false - - - T4_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE83 - - - - T4_2_ADDB1 - 1 - - - - - - BREAKER25 - - - false - false - - - T4_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE84 - - - - T4_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR50 - - - false - false - - - T4_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE85 - - - - BAY_T3_0 - - - - T3_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR51 - - - false - false - - - T3_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE86 - - - - T3_0_ADDB1 - 1 - - - - - - BREAKER26 - - - false - false - - - T3_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE87 - - - - T3_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR52 - - - false - false - - - T3_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE88 - - - - BAY_T3_1 - - - - T3_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR53 - - - false - false - - - T3_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE89 - - - - T3_1_ADDB1 - 1 - - - - - - BREAKER27 - - - false - false - - - T3_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE90 - - - - T3_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR54 - - - false - false - - - T3_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE91 - - - - CONNECTIVITY_NODE92 - - - - BUSBAR11 - - - - - T3_2_BUSBAR - 3 - - - - - - BAY_T3_2 - - - - T3_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR55 - - - false - false - - - T3_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE93 - - - - T3_2_ADDB1 - 1 - - - - - - BREAKER28 - - - false - false - - - T3_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE94 - - - - T3_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR56 - - - false - false - - - T3_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE95 - - - - BAY_68-116_0 - - - - 68-116_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR57 - - - false - false - - - 68-116_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE96 - - - - 68-116_0_ADDB1 - 1 - - - - - - BREAKER29 - - - false - false - - - 68-116_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE97 - - - - 68-116_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR58 - - - false - false - - - 68-116_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE98 - - - - BAY_71-73_0 - - - - 71-73_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR59 - - - false - false - - - 71-73_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE100 - - - - 71-73_0_ADDB1 - 1 - - - - - - BREAKER30 - - - false - false - - - 71-73_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE101 - - - - 71-73_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR60 - - - false - false - - - 71-73_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE102 - - - - GEN_A1 - - - - - _CA_A1 - - - - 5 - 1 - - - 4 - 1 - - - 6 - 1 - - - 7 - 1 - - - 3 - 1 - - - 2 - 1 - - - HG2 - 1 - - - HG1 - 1 - - - H - 1 - - - 1 - 1 - - - 8 - 1 - - - Container for Line-7 - - - - Container for Line-4 - - - - Container for Line-5 - - - - Container for Line-1 - - - - Container for Line-6 - - - - Container for Line-2 - - - - Container for Line-3 - - - - TwinBrch SM - - - - - PATLT - 4000 - - - - - Normal - - - 525 - - - Normal - - - 1155 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 481 - - - Normal - - - 5498 - - - Normal - - - 4123 - - - Normal - - - 753 - - - Normal - - - 962 - - - Normal - - - 1683 - - - Normal - - - 505 - - - Normal - - - 505 - - - Normal - - - 1683 - - - Normal - - - 962 - - - Normal - - - 1000 - - - Normal - - - 1000 - - \ No newline at end of file diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_protected_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_protected_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml deleted file mode 100644 index 7224349a39f..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_protected_switch/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml +++ /dev/null @@ -1,4478 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2015-02-05T12:20:50.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentOperation/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - http://A1.de/Planning/ENTSOE/2 - - - - - L5_0 - 1 - - - - - - L5_1 - 2 - - - - - - L6_0 - 1 - - - - - - L6_1 - 2 - - - - - - L4_0 - 1 - - - - - - L4_1 - 2 - - - - - - L1_0 - 1 - - - - - - L1_1 - 2 - - - - - - L2_0 - 1 - - - - - - L2_1 - 2 - - - - - - L3_a_0 - 1 - - - - - - L3_a_1 - 2 - - - - - - L3_b_0 - 1 - - - - - - L3_b_1 - 2 - - - - - - T5_0 - 1 - - - - - - T5_1 - 2 - - - - - - T6_0 - 1 - - - - - - T6_1 - 2 - - - - - - T2_0 - 1 - - - - - - T2_1 - 2 - - - - - - T1_0 - 1 - - - - - - T1_1 - 2 - - - - - - T4_0 - 1 - - - - - - T4_1 - 2 - - - - - - T4_2 - 3 - - - - - - T3_0 - 1 - - - - - - T3_1 - 2 - - - - - - T3_2 - 3 - - - - - - G2_0 - 1 - - - - - - G1_0 - 1 - - - - - - G3_0 - 1 - - - - - - M1_0 - 1 - - - - - - M2_0 - 1 - - - - - - ASM-1229750300_0 - 1 - - - - - - Q1_0 - 1 - - - - - - Q2_0 - 1 - - - - - - 380kV - 380 - - - 21kV - 21 - - - 10kV - 10 - - - 110kV - 110 - - - 30kV - 30 - - - S2 10kV - - - - - S5 10kV - - - - - S4 10kV - - - - - S3 21kV - - - - - S2 110kV - - - - - S3 110kV - - - - - S1 380kV - - - - - S1 30kV - - - - - S4 110kV - - - - - S1 110kV - - - - - Sub1 - - - - Sub2 - - - - Sub3 - - - - Sub4 - - - - Sub5 - - - - AA - - - Z1 - - - - PATL - 45000 - - - - - TATL - 900 - - - - - TATL - 60 - - - - - Gen-1 - G2 - false - - 0 - 127.5 - 0 - - - G2 - - - 0.9 - 100 - 10.5 - - false - 43.6 - -43.6 - 100 - 0 - 0.004535 - 0.16 - 2 - 2 - - - 7.5 - 0.005 - 0.1 - 0.16 - - - Gen-2 - G1 - false - - 0 - 90 - 0 - - - G1 - - 0.85 - 150 - 21 - - false - 79 - -79 - 100 - 0 - 0.00068 - 0.14 - 1.8 - 1.8 - - - 0.002 - 0.1 - 0.14 - - - Gen-3 - G3 - false - - 0 - 8 - 0 - - - G3 - - 0.8 - 10 - 10.5 - - false - 6 - -6 - 100 - 0 - 0.00163 - 0.1 - 1.8 - 1.8 - - - 0.018 - 0.08 - 0.1 - - - M3 - false - - 0.88 - 5.828 - 10 - false - 97.5 - 5 - 1 - 5 - false - 0.1 - - - M2a - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - M2b - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - Q1 - - 0 - true - 38000 - 800 - 600 - 0.15 - 0.1 - 3.029 - 0 - -800 - -600 - 0.1 - 0.1 - 1 - 1.1 - - - Q2 - - 0 - true - 16000 - 88 - 66 - 0.2 - 0.1 - 3.34865 - 0 - -88 - -66 - 0 - 0 - 0 - 1.1 - - - Line-7 - L5 - false - - - 15 - 0 - 0 - 0 - 0 - 1.8 - 3.3 - 80 - 5.79 - 16.5 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-4 - L6 - false - - - 1 - 0 - 0 - 0 - 0 - 0.082 - 0.082 - 80 - 0.086 - 0.086 - - - Ratings - - - - Normal - - - 1155 - - - ShortTerm - - - 1328 - - - Emergency - - - 1617 - - - Line-5 - L4 - false - - - 10 - 0 - 0 - 0 - 0 - 0.96 - 2.2 - 80 - 3.88 - 11 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-1 - L1 - false - - - 20 - 0 - 0 - 0 - 0 - 2.4 - 6.4 - 80 - 7.8 - 25.2 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-6 - L2 - false - - - 10 - 0 - 0 - 0 - 0 - 1.2 - 3.2 - 80 - 3.9 - 12.6 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-2 - L3_a - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-3 - L3_b - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Trafo-1 - T5 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T5 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T5 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-2 - T6 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T6 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T6 - 0 - 2 - true - 100 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-3 - T2 - false - - 115 - true - false - - - T2 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 100 - 0 - 120 - 0 - 0.72 - 0.72 - 17.2649937 - 17.2649937 - - - - Ratings - - - - Normal - - - 481 - - - ShortTerm - - - 553 - - - Emergency - - - 673 - - - T2 - 2 - false - - - 0 - - 0 - 5 - 100 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 5498 - - - ShortTerm - - - 6323 - - - Emergency - - - 7698 - - - Trafo-4 - T1 - false - - 115 - true - false - - - T1 - 2 - false - - - 0 - - 0 - 5 - 150 - 0 - 21 - 0 - 0.0147 - 0.0147 - 0.47017 - 0.446662 - - - - Ratings - - - - Normal - - - 4123 - - - ShortTerm - - - 4742 - - - Emergency - - - 5773 - - - T1 - 25 - 1 - true - 13 - 21 - 13 - - 1 - - - - T1 - 0 - 1 - true - 22 - - - 0 - - 0 - 0 - 150 - 0 - 115 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 753 - - - ShortTerm - - - 866 - - - Emergency - - - 1054 - - - T4 - false - - false - - - T4 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.0254571438 - 0.0254571438 - 1.259741 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 0 - 2 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T4 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - Trafo-5 - T3 - false - - false - - - T3 - 0 - 1 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - T3 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - T3 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T3 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.02545714286 - 0.02545714286 - 1.259740894 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - 68-116_0 - 1 - - - - - - 68-116_1 - 2 - - - - - - Injection_0 - 1 - - - - - - 71-73_0 - 1 - - - - - - 71-73_1 - 2 - - - - - - Injection_0 - 1 - - - - - - XQ1-N1 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - XQ2-N5 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - Injection1 - - - 0.63185 - 2.85315 - 0.63185 - false - 6.3185 - 19.021 - 6.3185 - - - Injection2 - - - 0.43445 - 2.86738 - 0.43445 - false - 4.3445 - 14.3369 - 4.3445 - - - CONNECTIVITY_NODE1 - - - - BUSBAR1 - - - - - L5_0_BUSBAR - 1 - - - - - - BAY_L5_0 - - - - L5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR1 - - - false - false - - - L5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE2 - - - - L5_0_ADDB1 - 1 - - - - - - BREAKER1 - - - false - false - - - L5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE3 - - - - L5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR2 - - - false - false - - - L5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE4 - - - - CONNECTIVITY_NODE5 - - - - BUSBAR2 - - - - - L5_1_BUSBAR - 2 - - - - - - BAY_L5_1 - - - - L5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR3 - - - false - false - - - L5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE6 - - - - L5_1_ADDB1 - 1 - - - - - - BREAKER2 - - - false - false - - - L5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE7 - - - - L5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR4 - - - false - false - - - L5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE8 - - - - CONNECTIVITY_NODE9 - - - - BUSBAR3 - - - - - L6_0_BUSBAR - 1 - - - - - - BAY_L6_0 - - - - L6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR5 - - - false - false - - - L6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE10 - - - - L6_0_ADDB1 - 1 - - - - - - BREAKER3 - - - false - false - - - L6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE11 - - - - L6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR6 - - - false - false - - - L6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE12 - - - - CONNECTIVITY_NODE13 - - - - BUSBAR4 - - - - - L6_1_BUSBAR - 2 - - - - - - BAY_L6_1 - - - - L6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR7 - - - false - false - - - L6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE14 - - - - L6_1_ADDB1 - 1 - - - - - - BREAKER4 - - - false - false - - - L6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE15 - - - - L6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR8 - - - false - false - - - L6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE16 - - - - BAY_L4_0 - - - - L4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR9 - - - false - false - - - L4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE17 - - - - L4_0_ADDB1 - 1 - - - - - - BREAKER5 - - - false - false - - - L4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE18 - - - - L4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR10 - - - false - false - - - L4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE19 - - - - CONNECTIVITY_NODE20 - - - - BUSBAR5 - - - - - L4_1_BUSBAR - 2 - - - - - - BAY_L4_1 - - - - L4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR11 - - - false - false - - - L4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE21 - - - - L4_1_ADDB1 - 1 - - - - - - BREAKER6 - - - false - false - - - L4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE22 - - - - L4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR12 - - - false - false - - - L4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE23 - - - - CONNECTIVITY_NODE24 - - - - BUSBAR6 - - - - - L1_0_BUSBAR - 1 - - - - - - BAY_L1_0 - - - - L1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR13 - - - false - false - - - L1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE25 - - - - L1_0_ADDB1 - 1 - - - - - - BREAKER7 - - - false - false - - - L1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE26 - - - - L1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR14 - - - false - false - - - L1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE27 - - - - BAY_L1_1 - - - - L1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR15 - - - false - false - - - L1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE28 - - - - L1_1_ADDB1 - 1 - - - - - - BREAKER8 - - - false - false - - - L1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE29 - - - - L1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR16 - - - false - false - - - L1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE30 - - - - BAY_L2_0 - - - - L2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR17 - - - false - false - - - L2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE31 - - - - L2_0_ADDB1 - 1 - - - - - - BREAKER9 - - - false - false - - - L2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE32 - - - - L2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR18 - - - false - false - - - L2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE33 - - - - BAY_L2_1 - - - - L2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR19 - - - false - false - - - L2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE34 - - - - L2_1_ADDB1 - 1 - - - - - - BREAKER10 - - - false - false - - - L2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE35 - - - - L2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR20 - - - false - false - - - L2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE36 - - - - BAY_L3_a_0 - - - - L3_a_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR21 - - - false - false - - - L3_a_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE37 - - - - L3_a_0_ADDB1 - 1 - - - - - - BREAKER11 - - - false - false - - - L3_a_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE38 - - - - L3_a_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR22 - - - false - false - - - L3_a_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE39 - - - - BAY_L3_a_1 - - - - L3_a_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR23 - - - false - false - - - L3_a_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE40 - - - - L3_a_1_ADDB1 - 1 - - - - - - BREAKER12 - - - false - false - - - L3_a_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE41 - - - - L3_a_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR24 - - - false - false - - - L3_a_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE42 - - - - BAY_L3_b_0 - - - - L3_b_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR25 - - - false - false - - - L3_b_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE43 - - - - L3_b_0_ADDB1 - 1 - - - - - - BREAKER13 - - - false - false - - - L3_b_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE44 - - - - L3_b_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR26 - - - false - false - - - L3_b_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE45 - - - - BAY_L3_b_1 - - - - L3_b_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR27 - - - false - false - - - L3_b_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE46 - - - - L3_b_1_ADDB1 - 1 - - - - - - BREAKER14 - - - false - false - - - L3_b_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE47 - - - - L3_b_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR28 - - - false - false - - - L3_b_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE48 - - - - BAY_T5_0 - - - - T5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR29 - - - false - false - - - T5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE49 - - - - T5_0_ADDB1 - 1 - - - - - - BREAKER15 - - - false - false - - - T5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE50 - - - - T5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR30 - - - false - false - - - T5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE51 - - - - BAY_T5_1 - - - - T5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR31 - - - false - false - - - T5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE52 - - - - T5_1_ADDB1 - 1 - - - - - - BREAKER16 - - - false - false - - - T5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE53 - - - - T5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR32 - - - false - false - - - T5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE54 - - - - BAY_T6_0 - - - - T6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR33 - - - false - false - - - T6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE55 - - - - T6_0_ADDB1 - 1 - - - - - - BREAKER17 - - - false - false - - - T6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE56 - - - - T6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR34 - - - false - false - - - T6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE57 - - - - BAY_T6_1 - - - - T6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR35 - - - false - false - - - T6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE58 - - - - T6_1_ADDB1 - 1 - - - - - - BREAKER18 - - - false - false - - - T6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE59 - - - - T6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR36 - - - false - false - - - T6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE60 - - - - BAY_T2_0 - - - - T2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR37 - - - false - false - - - T2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE61 - - - - T2_0_ADDB1 - 1 - - - - - - BREAKER19 - - - false - false - - - T2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE62 - - - - T2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR38 - - - false - false - - - T2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE63 - - - - CONNECTIVITY_NODE64 - - - - BUSBAR7 - - - - - T2_1_BUSBAR - 2 - - - - - - BAY_T2_1 - - - - T2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR39 - - - false - false - - - T2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE65 - - - - T2_1_ADDB1 - 1 - - - - - - BREAKER20 - - - false - false - - - T2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE66 - - - - T2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR40 - - - false - false - - - T2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE67 - - - - CONNECTIVITY_NODE68 - - - - BUSBAR8 - - - - - T1_0_BUSBAR - 1 - - - - - - BAY_T1_0 - - - - T1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR41 - - - false - false - - - T1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE69 - - - - T1_0_ADDB1 - 1 - - - - - - BREAKER21 - - - false - false - - - T1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE70 - - - - T1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR42 - - - false - false - - - T1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE71 - - - - BAY_T1_1 - - - - T1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR43 - - - false - false - - - T1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE72 - - - - T1_1_ADDB1 - 1 - - - - - - BREAKER22 - - - false - false - - - T1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE73 - - - - T1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR44 - - - false - false - - - T1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE74 - - - - CONNECTIVITY_NODE75 - - - - BUSBAR9 - - - - - T4_0_BUSBAR - 1 - - - - - - BAY_T4_0 - - - - T4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR45 - - - false - false - - - T4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE76 - - - - T4_0_ADDB1 - 1 - - - - - - BREAKER23 - - - false - false - - - T4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE77 - - - - T4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR46 - - - false - false - - - T4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE78 - - - - BAY_T4_1 - - - - T4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR47 - - - false - false - - - T4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE79 - - - - T4_1_ADDB1 - 1 - - - - - - BREAKER24 - - - false - false - - - T4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE80 - - - - T4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR48 - - - false - false - - - T4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE81 - - - - CONNECTIVITY_NODE82 - - - - BUSBAR10 - - - - - T4_2_BUSBAR - 3 - - - - - - BAY_T4_2 - - - - T4_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR49 - - - false - false - - - T4_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE83 - - - - T4_2_ADDB1 - 1 - - - - - - BREAKER25 - - - false - false - - - T4_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE84 - - - - T4_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR50 - - - false - false - - - T4_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE85 - - - - BAY_T3_0 - - - - T3_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR51 - - - false - false - - - T3_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE86 - - - - T3_0_ADDB1 - 1 - - - - - - BREAKER26 - - - false - false - - - T3_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE87 - - - - T3_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR52 - - - false - false - - - T3_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE88 - - - - BAY_T3_1 - - - - T3_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR53 - - - false - false - - - T3_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE89 - - - - T3_1_ADDB1 - 1 - - - - - - BREAKER27 - - - false - false - - - T3_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE90 - - - - T3_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR54 - - - false - false - - - T3_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE91 - - - - CONNECTIVITY_NODE92 - - - - BUSBAR11 - - - - - T3_2_BUSBAR - 3 - - - - - - BAY_T3_2 - - - - T3_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR55 - - - false - false - - - T3_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE93 - - - - T3_2_ADDB1 - 1 - - - - - - BREAKER28 - - - false - false - - - T3_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE94 - - - - T3_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR56 - - - false - false - - - T3_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE95 - - - - BAY_68-116_0 - - - - 68-116_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR57 - - - false - false - - - 68-116_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE96 - - - - 68-116_0_ADDB1 - 1 - - - - - - BREAKER29 - - - false - false - - - 68-116_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE97 - - - - 68-116_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR58 - - - false - false - - - 68-116_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE98 - - - - BAY_71-73_0 - - - - 71-73_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR59 - - - false - false - - - 71-73_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE100 - - - - 71-73_0_ADDB1 - 1 - - - - - - BREAKER30 - - - false - false - - - 71-73_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE101 - - - - 71-73_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR60 - - - false - false - - - 71-73_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE102 - - - - GEN_A1 - - - - - _CA_A1 - - - - 5 - 1 - - - 4 - 1 - - - 6 - 1 - - - 7 - 1 - - - 3 - 1 - - - 2 - 1 - - - HG2 - 1 - - - HG1 - 1 - - - H - 1 - - - 1 - 1 - - - 8 - 1 - - - Container for Line-7 - - - - Container for Line-4 - - - - Container for Line-5 - - - - Container for Line-1 - - - - Container for Line-6 - - - - Container for Line-2 - - - - Container for Line-3 - - - - TwinBrch SM - - - - - PATLT - 4000 - - - - - Normal - - - 525 - - - Normal - - - 1155 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 481 - - - Normal - - - 5498 - - - Normal - - - 4123 - - - Normal - - - 753 - - - Normal - - - 962 - - - Normal - - - 1683 - - - Normal - - - 505 - - - Normal - - - 505 - - - Normal - - - 1683 - - - Normal - - - 962 - - - Normal - - - 1000 - - - Normal - - - 1000 - - \ No newline at end of file diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml deleted file mode 100644 index a11aabd509e..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_EQ_v3.0.0.xml +++ /dev/null @@ -1,4479 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2015-02-05T12:20:50.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/EquipmentCore/3/1 - http://entsoe.eu/CIM/EquipmentOperation/3/1 - http://entsoe.eu/CIM/EquipmentShortCircuit/3/1 - http://A1.de/Planning/ENTSOE/2 - - - - - L5_0 - 1 - - - - - - L5_1 - 2 - - - - - - L6_0 - 1 - - - - - - L6_1 - 2 - - - - - - L4_0 - 1 - - - - - - L4_1 - 2 - - - - - - L1_0 - 1 - - - - - - L1_1 - 2 - - - - - - L2_0 - 1 - - - - - - L2_1 - 2 - - - - - - L3_a_0 - 1 - - - - - - L3_a_1 - 2 - - - - - - L3_b_0 - 1 - - - - - - L3_b_1 - 2 - - - - - - T5_0 - 1 - - - - - - T5_1 - 2 - - - - - - T6_0 - 1 - - - - - - T6_1 - 2 - - - - - - T2_0 - 1 - - - - - - T2_1 - 2 - - - - - - T1_0 - 1 - - - - - - T1_1 - 2 - - - - - - T4_0 - 1 - - - - - - T4_1 - 2 - - - - - - T4_2 - 3 - - - - - - T3_0 - 1 - - - - - - T3_1 - 2 - - - - - - T3_2 - 3 - - - - - - G2_0 - 1 - - - - - - G1_0 - 1 - - - - - - G3_0 - 1 - - - - - - M1_0 - 1 - - - - - - M2_0 - 1 - - - - - - ASM-1229750300_0 - 1 - - - - - - Q1_0 - 1 - - - - - - Q2_0 - 1 - - - - - - 380kV - 380 - - - 21kV - 21 - - - 10kV - 10 - - - 110kV - 110 - - - 30kV - 30 - - - S2 10kV - - - - - S5 10kV - - - - - S4 10kV - - - - - S3 21kV - - - - - S2 110kV - - - - - S3 110kV - - - - - S1 380kV - - - - - S1 30kV - - - - - S4 110kV - - - - - S1 110kV - - - - - Sub1 - - - - Sub2 - - - - Sub3 - - - - Sub4 - - - - Sub5 - - - - AA - - - Z1 - - - - PATL - 45000 - - - - - TATL - 900 - - - - - TATL - 60 - - - - - Gen-1 - G2 - false - - 0 - 127.5 - 0 - - - G2 - - - 0.9 - 100 - 10.5 - - false - 43.6 - -43.6 - 100 - 0 - 0.004535 - 0.16 - 2 - 2 - - - 7.5 - 0.005 - 0.1 - 0.16 - - - Gen-2 - G1 - false - - 0 - 90 - 0 - - - G1 - - 0.85 - 150 - 21 - - false - 79 - -79 - 100 - 0 - 0.00068 - 0.14 - 1.8 - 1.8 - - - 0.002 - 0.1 - 0.14 - - - Gen-3 - G3 - false - - 0 - 8 - 0 - - - G3 - - 0.8 - 10 - 10.5 - - false - 6 - -6 - 100 - 0 - 0.00163 - 0.1 - 1.8 - 1.8 - - - 0.018 - 0.08 - 0.1 - - - M3 - false - - 0.88 - 5.828 - 10 - false - 97.5 - 5 - 1 - 5 - false - 0.1 - - - M2a - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - M2b - false - - 0.89 - 2.321 - 10 - false - 96.8 - 5.2 - 2 - 2 - false - 0.1 - - - Q1 - - 0 - true - 38000 - 800 - 600 - 0.15 - 0.1 - 3.029 - 0 - -800 - -600 - 0.1 - 0.1 - 1 - 1.1 - - - Q2 - - 0 - true - 16000 - 88 - 66 - 0.2 - 0.1 - 3.34865 - 0 - -88 - -66 - 0 - 0 - 0 - 1.1 - - - Line-7 - L5 - false - - - 15 - 0 - 0 - 0 - 0 - 1.8 - 3.3 - 80 - 5.79 - 16.5 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-4 - L6 - false - - - 1 - 0 - 0 - 0 - 0 - 0.082 - 0.082 - 80 - 0.086 - 0.086 - - - Ratings - - - - Normal - - - 1155 - - - ShortTerm - - - 1328 - - - Emergency - - - 1617 - - - Line-5 - L4 - false - - - 10 - 0 - 0 - 0 - 0 - 0.96 - 2.2 - 80 - 3.88 - 11 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-1 - L1 - false - - - 20 - 0 - 0 - 0 - 0 - 2.4 - 6.4 - 80 - 7.8 - 25.2 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-6 - L2 - false - - - 10 - 0 - 0 - 0 - 0 - 1.2 - 3.2 - 80 - 3.9 - 12.6 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-2 - L3_a - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Line-3 - L3_b - false - - - 5 - 0 - 0 - 0 - 0 - 0.6 - 2.6 - 80 - 1.95 - 9.3 - - - Ratings - - - - Normal - - - 525 - - - ShortTerm - - - 604 - - - Emergency - - - 735 - - - Trafo-1 - T5 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T5 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T5 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-2 - T6 - false - - 158.14 - 121.095 - 36.86 - false - false - - - T6 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 31.5 - 0 - 115 - 0 - 2.099206 - 2.099206 - 50.3372 - 50.3372 - - - - Ratings - - - - Normal - - - 158 - - - ShortTerm - - - 182 - - - Emergency - - - 222 - - - T6 - 0 - 2 - true - 100 - - - 0 - - 0 - 0 - 31.5 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 1732 - - - ShortTerm - - - 1992 - - - Emergency - - - 2425 - - - Trafo-3 - T2 - false - - 115 - true - false - - - T2 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 100 - 0 - 120 - 0 - 0.72 - 0.72 - 17.2649937 - 17.2649937 - - - - Ratings - - - - Normal - - - 481 - - - ShortTerm - - - 553 - - - Emergency - - - 673 - - - T2 - 2 - false - - - 0 - - 0 - 5 - 100 - 0 - 10.5 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 5498 - - - ShortTerm - - - 6323 - - - Emergency - - - 7698 - - - Trafo-4 - T1 - false - - 115 - true - false - - - T1 - 2 - false - - - 0 - - 0 - 5 - 150 - 0 - 21 - 0 - 0.0147 - 0.0147 - 0.47017 - 0.446662 - - - - Ratings - - - - Normal - - - 4123 - - - ShortTerm - - - 4742 - - - Emergency - - - 5773 - - - T1 - 25 - 1 - true - 13 - 21 - 13 - - 1 - - - - T1 - 0 - 1 - true - 22 - - - 0 - - 0 - 0 - 150 - 0 - 115 - 0 - 0 - 0 - 0 - 0 - - - - Ratings - - - - Normal - - - 753 - - - ShortTerm - - - 866 - - - Emergency - - - 1054 - - - T4 - false - - false - - - T4 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.0254571438 - 0.0254571438 - 1.259741 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 0 - 2 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T4 - 0 - 1 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - Trafo-5 - T3 - false - - false - - - T3 - 0 - 1 - true - 0 - - - 0 - - 0 - 0 - 350 - 0 - 400 - 0 - 0.5942857143 - 0.5942857143 - 96.0051006 - 95.05666 - - - - Ratings - - - - Normal - - - 505 - - - ShortTerm - - - 580 - - - Emergency - - - 707 - - - T3 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - T3 - 0 - 2 - false - 0 - - - 0 - - 0 - 0 - 350 - 0 - 120 - 0 - 0.05348571429 - 0.05348571429 - -0.001121283618 - -0.6881 - - - - Ratings - - - - Normal - - - 1683 - - - ShortTerm - - - 1936 - - - Emergency - - - 2357 - - - T3 - 3 - false - - - 0 - - 0 - 5 - 50 - 0 - 30 - 0 - 0.02545714286 - 0.02545714286 - 1.259740894 - 1.176919 - - - - Ratings - - - - Normal - - - 962 - - - ShortTerm - - - 1106 - - - Emergency - - - 1347 - - - T4 - 33 - 1 - true - 17 - 400 - 17 - - 1 - - - - 68-116_0 - 1 - - - - - - 68-116_1 - 2 - - - - - - Injection_0 - 1 - - - - - - 71-73_0 - 1 - - - - - - 71-73_1 - 2 - - - - - - Injection_0 - 1 - - - - - - XQ1-N1 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - XQ2-N5 - false - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 80 - 0.05 - 0 - - - Ratings - - - - Normal - - - 1000 - - - ShortTerm - - - 1150 - - - Emergency - - - 1400 - - - Injection1 - - - 0.63185 - 2.85315 - 0.63185 - false - 6.3185 - 19.021 - 6.3185 - - - Injection2 - - - 0.43445 - 2.86738 - 0.43445 - false - 4.3445 - 14.3369 - 4.3445 - - - CONNECTIVITY_NODE1 - - - - BUSBAR1 - - - - - L5_0_BUSBAR - 1 - - - - - - BAY_L5_0 - - - - L5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR1 - - - false - false - - - L5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE2 - - - - L5_0_ADDB1 - 1 - - - - - - - PROTECTEDSWITCH1 - - - false - false - - - L5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE3 - - - - L5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR2 - - - false - false - - - L5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE4 - - - - CONNECTIVITY_NODE5 - - - - BUSBAR2 - - - - - L5_1_BUSBAR - 2 - - - - - - BAY_L5_1 - - - - L5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR3 - - - false - false - - - L5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE6 - - - - L5_1_ADDB1 - 1 - - - - - - BREAKER2 - - - false - false - - - L5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE7 - - - - L5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR4 - - - false - false - - - L5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE8 - - - - CONNECTIVITY_NODE9 - - - - BUSBAR3 - - - - - L6_0_BUSBAR - 1 - - - - - - BAY_L6_0 - - - - L6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR5 - - - false - false - - - L6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE10 - - - - L6_0_ADDB1 - 1 - - - - - - BREAKER3 - - - false - false - - - L6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE11 - - - - L6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR6 - - - false - false - - - L6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE12 - - - - CONNECTIVITY_NODE13 - - - - BUSBAR4 - - - - - L6_1_BUSBAR - 2 - - - - - - BAY_L6_1 - - - - L6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR7 - - - false - false - - - L6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE14 - - - - L6_1_ADDB1 - 1 - - - - - - BREAKER4 - - - false - false - - - L6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE15 - - - - L6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR8 - - - false - false - - - L6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE16 - - - - BAY_L4_0 - - - - L4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR9 - - - false - false - - - L4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE17 - - - - L4_0_ADDB1 - 1 - - - - - - BREAKER5 - - - false - false - - - L4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE18 - - - - L4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR10 - - - false - false - - - L4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE19 - - - - CONNECTIVITY_NODE20 - - - - BUSBAR5 - - - - - L4_1_BUSBAR - 2 - - - - - - BAY_L4_1 - - - - L4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR11 - - - false - false - - - L4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE21 - - - - L4_1_ADDB1 - 1 - - - - - - BREAKER6 - - - false - false - - - L4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE22 - - - - L4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR12 - - - false - false - - - L4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE23 - - - - CONNECTIVITY_NODE24 - - - - BUSBAR6 - - - - - L1_0_BUSBAR - 1 - - - - - - BAY_L1_0 - - - - L1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR13 - - - false - false - - - L1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE25 - - - - L1_0_ADDB1 - 1 - - - - - - BREAKER7 - - - false - false - - - L1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE26 - - - - L1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR14 - - - false - false - - - L1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE27 - - - - BAY_L1_1 - - - - L1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR15 - - - false - false - - - L1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE28 - - - - L1_1_ADDB1 - 1 - - - - - - BREAKER8 - - - false - false - - - L1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE29 - - - - L1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR16 - - - false - false - - - L1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE30 - - - - BAY_L2_0 - - - - L2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR17 - - - false - false - - - L2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE31 - - - - L2_0_ADDB1 - 1 - - - - - - BREAKER9 - - - false - false - - - L2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE32 - - - - L2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR18 - - - false - false - - - L2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE33 - - - - BAY_L2_1 - - - - L2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR19 - - - false - false - - - L2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE34 - - - - L2_1_ADDB1 - 1 - - - - - - BREAKER10 - - - false - false - - - L2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE35 - - - - L2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR20 - - - false - false - - - L2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE36 - - - - BAY_L3_a_0 - - - - L3_a_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR21 - - - false - false - - - L3_a_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE37 - - - - L3_a_0_ADDB1 - 1 - - - - - - BREAKER11 - - - false - false - - - L3_a_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE38 - - - - L3_a_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR22 - - - false - false - - - L3_a_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE39 - - - - BAY_L3_a_1 - - - - L3_a_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR23 - - - false - false - - - L3_a_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE40 - - - - L3_a_1_ADDB1 - 1 - - - - - - BREAKER12 - - - false - false - - - L3_a_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE41 - - - - L3_a_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR24 - - - false - false - - - L3_a_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE42 - - - - BAY_L3_b_0 - - - - L3_b_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR25 - - - false - false - - - L3_b_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE43 - - - - L3_b_0_ADDB1 - 1 - - - - - - BREAKER13 - - - false - false - - - L3_b_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE44 - - - - L3_b_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR26 - - - false - false - - - L3_b_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE45 - - - - BAY_L3_b_1 - - - - L3_b_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR27 - - - false - false - - - L3_b_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE46 - - - - L3_b_1_ADDB1 - 1 - - - - - - BREAKER14 - - - false - false - - - L3_b_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE47 - - - - L3_b_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR28 - - - false - false - - - L3_b_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE48 - - - - BAY_T5_0 - - - - T5_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR29 - - - false - false - - - T5_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE49 - - - - T5_0_ADDB1 - 1 - - - - - - BREAKER15 - - - false - false - - - T5_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE50 - - - - T5_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR30 - - - false - false - - - T5_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE51 - - - - BAY_T5_1 - - - - T5_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR31 - - - false - false - - - T5_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE52 - - - - T5_1_ADDB1 - 1 - - - - - - BREAKER16 - - - false - false - - - T5_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE53 - - - - T5_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR32 - - - false - false - - - T5_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE54 - - - - BAY_T6_0 - - - - T6_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR33 - - - false - false - - - T6_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE55 - - - - T6_0_ADDB1 - 1 - - - - - - BREAKER17 - - - false - false - - - T6_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE56 - - - - T6_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR34 - - - false - false - - - T6_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE57 - - - - BAY_T6_1 - - - - T6_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR35 - - - false - false - - - T6_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE58 - - - - T6_1_ADDB1 - 1 - - - - - - BREAKER18 - - - false - false - - - T6_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE59 - - - - T6_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR36 - - - false - false - - - T6_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE60 - - - - BAY_T2_0 - - - - T2_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR37 - - - false - false - - - T2_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE61 - - - - T2_0_ADDB1 - 1 - - - - - - BREAKER19 - - - false - false - - - T2_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE62 - - - - T2_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR38 - - - false - false - - - T2_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE63 - - - - CONNECTIVITY_NODE64 - - - - BUSBAR7 - - - - - T2_1_BUSBAR - 2 - - - - - - BAY_T2_1 - - - - T2_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR39 - - - false - false - - - T2_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE65 - - - - T2_1_ADDB1 - 1 - - - - - - BREAKER20 - - - false - false - - - T2_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE66 - - - - T2_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR40 - - - false - false - - - T2_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE67 - - - - CONNECTIVITY_NODE68 - - - - BUSBAR8 - - - - - T1_0_BUSBAR - 1 - - - - - - BAY_T1_0 - - - - T1_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR41 - - - false - false - - - T1_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE69 - - - - T1_0_ADDB1 - 1 - - - - - - BREAKER21 - - - false - false - - - T1_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE70 - - - - T1_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR42 - - - false - false - - - T1_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE71 - - - - BAY_T1_1 - - - - T1_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR43 - - - false - false - - - T1_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE72 - - - - T1_1_ADDB1 - 1 - - - - - - BREAKER22 - - - false - false - - - T1_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE73 - - - - T1_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR44 - - - false - false - - - T1_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE74 - - - - CONNECTIVITY_NODE75 - - - - BUSBAR9 - - - - - T4_0_BUSBAR - 1 - - - - - - BAY_T4_0 - - - - T4_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR45 - - - false - false - - - T4_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE76 - - - - T4_0_ADDB1 - 1 - - - - - - BREAKER23 - - - false - false - - - T4_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE77 - - - - T4_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR46 - - - false - false - - - T4_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE78 - - - - BAY_T4_1 - - - - T4_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR47 - - - false - false - - - T4_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE79 - - - - T4_1_ADDB1 - 1 - - - - - - BREAKER24 - - - false - false - - - T4_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE80 - - - - T4_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR48 - - - false - false - - - T4_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE81 - - - - CONNECTIVITY_NODE82 - - - - BUSBAR10 - - - - - T4_2_BUSBAR - 3 - - - - - - BAY_T4_2 - - - - T4_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR49 - - - false - false - - - T4_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE83 - - - - T4_2_ADDB1 - 1 - - - - - - BREAKER25 - - - false - false - - - T4_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE84 - - - - T4_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR50 - - - false - false - - - T4_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE85 - - - - BAY_T3_0 - - - - T3_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR51 - - - false - false - - - T3_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE86 - - - - T3_0_ADDB1 - 1 - - - - - - BREAKER26 - - - false - false - - - T3_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE87 - - - - T3_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR52 - - - false - false - - - T3_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE88 - - - - BAY_T3_1 - - - - T3_1_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR53 - - - false - false - - - T3_1_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE89 - - - - T3_1_ADDB1 - 1 - - - - - - BREAKER27 - - - false - false - - - T3_1_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE90 - - - - T3_1_ADD_DSC21 - 1 - - - - - - DISCONNECTOR54 - - - false - false - - - T3_1_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE91 - - - - CONNECTIVITY_NODE92 - - - - BUSBAR11 - - - - - T3_2_BUSBAR - 3 - - - - - - BAY_T3_2 - - - - T3_2_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR55 - - - false - false - - - T3_2_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE93 - - - - T3_2_ADDB1 - 1 - - - - - - BREAKER28 - - - false - false - - - T3_2_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE94 - - - - T3_2_ADD_DSC21 - 1 - - - - - - DISCONNECTOR56 - - - false - false - - - T3_2_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE95 - - - - BAY_68-116_0 - - - - 68-116_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR57 - - - false - false - - - 68-116_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE96 - - - - 68-116_0_ADDB1 - 1 - - - - - - BREAKER29 - - - false - false - - - 68-116_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE97 - - - - 68-116_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR58 - - - false - false - - - 68-116_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE98 - - - - BAY_71-73_0 - - - - 71-73_0_ADD_DSC11 - 1 - - - - - - - DISCONNECTOR59 - - - false - false - - - 71-73_0_ADD_DSC12 - 2 - - - - - - CONNECTIVITY_NODE100 - - - - 71-73_0_ADDB1 - 1 - - - - - - BREAKER30 - - - false - false - - - 71-73_0_ADDB2 - 2 - - - - - - CONNECTIVITY_NODE101 - - - - 71-73_0_ADD_DSC21 - 1 - - - - - - DISCONNECTOR60 - - - false - false - - - 71-73_0_ADD_DSC22 - 2 - - - - - - CONNECTIVITY_NODE102 - - - - GEN_A1 - - - - - _CA_A1 - - - - 5 - 1 - - - 4 - 1 - - - 6 - 1 - - - 7 - 1 - - - 3 - 1 - - - 2 - 1 - - - HG2 - 1 - - - HG1 - 1 - - - H - 1 - - - 1 - 1 - - - 8 - 1 - - - Container for Line-7 - - - - Container for Line-4 - - - - Container for Line-5 - - - - Container for Line-1 - - - - Container for Line-6 - - - - Container for Line-2 - - - - Container for Line-3 - - - - TwinBrch SM - - - - - PATLT - 4000 - - - - - Normal - - - 525 - - - Normal - - - 1155 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 525 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 158 - - - Normal - - - 1732 - - - Normal - - - 481 - - - Normal - - - 5498 - - - Normal - - - 4123 - - - Normal - - - 753 - - - Normal - - - 962 - - - Normal - - - 1683 - - - Normal - - - 505 - - - Normal - - - 505 - - - Normal - - - 1683 - - - Normal - - - 962 - - - Normal - - - 1000 - - - Normal - - - 1000 - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml deleted file mode 100644 index 31f728d587a..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_switch_type_preserved/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml +++ /dev/null @@ -1,1077 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2014-10-22T09:01:25.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/SteadyStateHypothesis/1/1 - http://A1.de/Planning/ENTSOE/2 - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - 1 - - - false - -0 - -0 - 1 - - - - 0 - - - false - -5 - -2 - 0 - - - - 0 - - - false - -4 - -3 - 0 - - - - false - 5 - 3 - - - - false - 2 - 1 - - - - false - 2 - 1 - - - - false - 0 - 0 - 0 - - - false - 0 - 0 - 0 - - - false - 13 - - - false - 17 - - - false - 17 - - - false - - - true - - - true - - - false - - - false - - - true - - - false - 0 - 0 - 0 - - - false - 0 - 0 - 0 - - - true - - - true - - - false - - - true - - - true - - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - 0 - - - false - true - 0 - 10.0 - - - diff --git a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_terminal_disconnected/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml b/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_terminal_disconnected/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml deleted file mode 100644 index 1fbcc60b662..00000000000 --- a/cgmes/cgmes-conformity/src/main/resources/conformity-modified/cas-1.1.3-data-4.0.3/MiniGrid/NodeBreaker/BaseCase_Complete_v3_terminal_disconnected/MiniGridTestConfiguration_BC_SSH_v3.0.0.xml +++ /dev/null @@ -1,1076 +0,0 @@ - - - - 2030-01-02T09:00:00 - 2014-10-22T09:01:25.830 - CGMES Conformity Assessment: Mini Grid Base Case Test Configuration. The model is owned by ENTSO-E and is provided by ENTSO-E "as it is". To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. - 4 - http://entsoe.eu/CIM/SteadyStateHypothesis/1/1 - http://A1.de/Planning/ENTSOE/2 - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - false - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - 1 - - - false - -0 - -0 - 1 - - - - 0 - - - false - -5 - -2 - 0 - - - - 0 - - - false - -4 - -3 - 0 - - - - false - 5 - 3 - - - - false - 2 - 1 - - - - false - 2 - 1 - - - - false - 0 - 0 - 0 - - - false - 0 - 0 - 0 - - - false - 13 - - - false - 17 - - - false - 17 - - - false - - - true - - - true - - - false - - - false - - - true - - - false - 0 - 0 - 0 - - - false - 0 - 0 - 0 - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - true - - - 0 - - - false - true - 0 - 10.0 - - - diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/ConversionUtil.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/ConversionUtil.java index 449e7f76f20..05934bb480f 100644 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/ConversionUtil.java +++ b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/ConversionUtil.java @@ -124,4 +124,10 @@ public static Set getUniqueMatches(String text, Pattern pattern) { } return matches; } + + public static String getElement(String xmlFile, String className, String rdfId) { + String regex = "(.*?)"; + Pattern pattern = Pattern.compile(regex, Pattern.DOTALL); + return getFirstMatch(xmlFile, pattern); + } } diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/SwitchConversionTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/SwitchConversionTest.java index 56b4ed7327d..a32d43bcf06 100644 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/SwitchConversionTest.java +++ b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/SwitchConversionTest.java @@ -10,42 +10,189 @@ import com.powsybl.cgmes.conversion.Conversion; import com.powsybl.commons.test.AbstractSerDeTest; -import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.network.Switch; -import com.powsybl.iidm.network.SwitchKind; +import com.powsybl.iidm.network.*; import org.junit.jupiter.api.Test; import java.io.IOException; -import java.util.regex.Pattern; -import static com.powsybl.cgmes.conversion.test.ConversionUtil.getUniqueMatches; +import static com.powsybl.cgmes.conversion.test.ConversionUtil.*; import static org.junit.jupiter.api.Assertions.*; /** * @author Florian Dupuy {@literal } + * @author Romain Courtier {@literal } */ class SwitchConversionTest extends AbstractSerDeTest { + private static final String DIR = "/issues/switches/"; + + @Test + void basicSwitchTest() { + // CGMES network: + // A Breaker with all optional fields defined, and a Disconnector with just the required fields defined. + // IIDM network: + // All fields have been correctly read. + Network network = readCgmesResources(DIR, "basic_switch.xml"); + assertNotNull(network); + + // Breaker has all optional fields defined. + Switch breaker = network.getSwitch("BR"); + assertEquals(SwitchKind.BREAKER, breaker.getKind()); + assertEquals("Breaker", breaker.getNameOrId()); + assertTrue(breaker.isOpen()); + assertTrue(breaker.isRetained()); + + // Disconnector has only the required fields defined. + Switch disconnector = network.getSwitch("DIS"); + assertEquals(SwitchKind.DISCONNECTOR, disconnector.getKind()); + assertEquals("DIS", disconnector.getNameOrId()); // Returns ID since name is undefined + assertFalse(disconnector.isOpen()); // default value if undefined is false + assertFalse(disconnector.isRetained()); // default value if undefined is false + } + + @Test + void switchKindTest() throws IOException { + // CGMES network: + // A Breaker BR, Disconnector DIS, LoadBreakSwitch LBS (direct map to IIDM), + // Switch SW, ProtectedSwitch PSW, GroundDisconnector GRD, Jumper JUM (indirect map to IIDM). + // IIDM network: + // All Switch are imported. + // If the CGMES original class doesn't correspond to an IIDM kind, it is saved in a property. + Network network = readCgmesResources(DIR, "switch_kind.xml"); + assertNotNull(network); + + // Check that the switch kind is correct. + assertEquals(SwitchKind.BREAKER, network.getSwitch("BR").getKind()); + assertEquals(SwitchKind.DISCONNECTOR, network.getSwitch("DIS").getKind()); + assertEquals(SwitchKind.LOAD_BREAK_SWITCH, network.getSwitch("LBS").getKind()); + assertEquals(SwitchKind.BREAKER, network.getSwitch("SW").getKind()); + assertEquals(SwitchKind.BREAKER, network.getSwitch("PSW").getKind()); + assertEquals(SwitchKind.DISCONNECTOR, network.getSwitch("GRD").getKind()); + assertEquals(SwitchKind.DISCONNECTOR, network.getSwitch("JUM").getKind()); + + // For Switch, ProtectedSwitch, GroundDisconnector, Jumper (indirect mapping), the CGMES original class is stored. + assertNull(network.getSwitch("BR").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertNull(network.getSwitch("DIS").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertNull(network.getSwitch("LBS").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertEquals("Switch", network.getSwitch("SW").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertEquals("ProtectedSwitch", network.getSwitch("PSW").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertEquals("GroundDisconnector", network.getSwitch("GRD").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + assertEquals("Jumper", network.getSwitch("JUM").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + + // Correct class is restored in CGMES EQ and SSH export. + String eqFile = writeCgmesProfile(network, "EQ", tmpDir); + String sshFile = writeCgmesProfile(network, "SSH", tmpDir); + assertTrue(containsObject(eqFile, sshFile, "Breaker", "BR")); + assertTrue(containsObject(eqFile, sshFile, "Disconnector", "DIS")); + assertTrue(containsObject(eqFile, sshFile, "LoadBreakSwitch", "LBS")); + assertTrue(containsObject(eqFile, sshFile, "Switch", "SW")); + assertTrue(containsObject(eqFile, sshFile, "ProtectedSwitch", "PSW")); + assertTrue(containsObject(eqFile, sshFile, "GroundDisconnector", "GRD")); + assertTrue(containsObject(eqFile, sshFile, "Jumper", "JUM")); + } + + private boolean containsObject(String eqFile, String sshFile, String className, String rdfId) { + return eqFile.contains("") + && sshFile.contains(""); + } + + @Test + void switchInBusBranchTest() throws IOException { + // CGMES network: + // A bus-branch network with a non-retained (doesn't make sense) Disconnector DIS. + // IIDM network: + // In bus breaker topology kind, all switches are Breaker and retained. + Network network = readCgmesResources(DIR, "switch_in_bus_branch_EQ.xml", "switch_in_bus_branch_TP.xml"); + assertNotNull(network); + + // The Switch is imported with kind breaker, and its original CGMES class is stored. + Switch disconnector = network.getSwitch("DIS"); + assertEquals(SwitchKind.BREAKER, disconnector.getKind()); + assertEquals("Disconnector", disconnector.getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + + // The Switch is retained in IIDM, even though it is not in the original CGMES file. + assertTrue(disconnector.isRetained()); + + // It is a retained Disconnector in the CGMES export. + String eqFile = writeCgmesProfile(network, "EQ", tmpDir); + String xmlDisconnector = getElement(eqFile, "Disconnector", "DIS"); + assertTrue(xmlDisconnector.contains("true")); + } + @Test - void jumperImportTest() { - Network network = Network.read("jumperTest.xml", getClass().getResourceAsStream("/jumperTest.xml")); - - Switch aswitch = network.getSwitch("Jumper"); - assertEquals(SwitchKind.DISCONNECTOR, aswitch.getKind()); - assertEquals("Jumper", aswitch.getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); - assertEquals("opened jumper", aswitch.getNameOrId()); - assertTrue(aswitch.isOpen()); - assertFalse(aswitch.isRetained()); + void lineWithZeroImpedanceTest() { + // CGMES network: + // An ACLineSegment ACL with zero impedance between two nodes of the same voltage level. + // IIDM network: + // A branch with 0 impedance inside a VoltageLevel is converted to a Switch. + Network network = readCgmesResources(DIR, "line_with_0_impedance.xml"); + assertNotNull(network); + + // The line has been imported as a fictitious switch + assertNull(network.getLine("ACL")); + assertNotNull(network.getSwitch("ACL")); + assertTrue(network.getSwitch("ACL").isFictitious()); } @Test - void groundDisconnectorTest() throws IOException { - Network network = ConversionUtil.readCgmesResources("/", "groundTest.xml"); - assertEquals("GroundDisconnector", network.getSwitch("CO").getProperty(Conversion.PROPERTY_CGMES_ORIGINAL_CLASS)); + void fictitiousSwitchForDisconnectedTerminalTest() throws IOException { + // CGMES network: + // A Load, whose terminal T_LD is disconnected, attached to a bus. + // IIDM network: + // Fictitious Switch are created for disconnected terminals, but these shouldn't be exported back to CGMES. + Network network = readCgmesResources(DIR, "disconnected_terminal_EQ.xml", "disconnected_terminal_SSH.xml"); + assertNotNull(network); + + // A fictitious switch has been created for the disconnected terminal. + Switch fictitiousSwitch = network.getSwitch("T_LD_SW_fict"); + assertNotNull(fictitiousSwitch); + assertTrue(fictitiousSwitch.isFictitious()); + assertTrue(fictitiousSwitch.isOpen()); + assertEquals("true", fictitiousSwitch.getProperty(Conversion.PROPERTY_IS_CREATED_FOR_DISCONNECTED_TERMINAL)); + + // The fictitious switch isn't present in the EQ export and the terminal is disconnected in the SSH. + String eqFile = writeCgmesProfile(network, "EQ", tmpDir); + String sshFile = writeCgmesProfile(network, "SSH", tmpDir); + assertFalse(eqFile.contains("false")); + + // If the fictitious switch gets closed, it still isn't exported but the terminal now gets connected. + fictitiousSwitch.setOpen(false); + eqFile = writeCgmesProfile(network, "EQ", tmpDir); + sshFile = writeCgmesProfile(network, "SSH", tmpDir); + assertFalse(eqFile.contains("true")); + } + + @Test + void retainedSwitchTest() throws IOException { + // IIDM network: + // Two BusbarSections BBS_1 and BBS_2 connected by a COUPLER Switch. + // A feeder bay with two Disconnectors, 1 Breaker, 1 Load also can couple the two bars. + // CGMES export: + // A retained switch cannot have both its terminals associated to the same topological node. + Network network = readCgmesResources(DIR, "retained_switch.xml"); + + // Open one disconnector so that the 2 ends of the retained switch are on different buses/topological nodes. + network.getSwitch("DIS_1").setOpen(true); + VoltageLevel.BusBreakerView bbv = network.getVoltageLevel("VL").getBusBreakerView(); + assertNotEquals(bbv.getBus1("COUPLER"), bbv.getBus2("COUPLER")); + + // The retained switch can be exported as such. + String eqExport = writeCgmesProfile(network, "EQ", tmpDir); + String xmlCoupler = getElement(eqExport, "Breaker", "COUPLER"); + assertTrue(xmlCoupler.contains("true")); + + // Now close the disconnector so that the 2 ends of the retained switch are on the same bus/topological node. + network.getSwitch("DIS_1").setOpen(false); + assertEquals(bbv.getBus1("COUPLER"), bbv.getBus2("COUPLER")); - String eqFile = ConversionUtil.writeCgmesProfile(network, "EQ", tmpDir); - Pattern pattern = Pattern.compile("()"); - assertEquals(1, getUniqueMatches(eqFile, pattern).size()); + // The retained switch can't be exported as such. + eqExport = writeCgmesProfile(network, "EQ", tmpDir); + xmlCoupler = getElement(eqExport, "Breaker", "COUPLER"); + assertTrue(xmlCoupler.contains("false")); } } diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/CgmesConformity1ModifiedConversionTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/CgmesConformity1ModifiedConversionTest.java index c85bf88011b..cacb809d4da 100644 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/CgmesConformity1ModifiedConversionTest.java +++ b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/conformity/modified/CgmesConformity1ModifiedConversionTest.java @@ -826,29 +826,6 @@ void miniNodeBreakerSvInjection() { assertEquals(-13.8, load.getQ0(), 0.0); } - @Test - void miniNodeBreakerLoadBreakSwitch() { - Network network = new CgmesImport() - .importData(CgmesConformity1ModifiedCatalog.miniNodeBreakerLoadBreakSwitch().dataSource(), - NetworkFactory.findDefault(), importParams); - - Switch sw = network.getSwitch("fbdcf00d-8a07-4c62-9e39-86f459bea2be"); - assertNotNull(sw); - assertEquals(SwitchKind.LOAD_BREAK_SWITCH, sw.getKind()); - } - - @Test - void miniNodeBreakerProtectedSwitch() { - Network network = new CgmesImport() - .importData(CgmesConformity1ModifiedCatalog.miniNodeBreakerProtectedSwitch().dataSource(), - NetworkFactory.findDefault(), importParams); - - Switch sw = network.getSwitch("fbdcf00d-8a07-4c62-9e39-86f459bea2be"); - assertNotNull(sw); - // By default, a switch not specifically assigned to a given kid should be considered BREAKER - assertEquals(SwitchKind.BREAKER, sw.getKind()); - } - @Test void miniNodeBreakerMissingSubstationRegion() { // Check that we fail with a powsybl exception instead of a NPE @@ -911,16 +888,6 @@ void smallNodeBreakerVscControllerRemotePccTerminal() { assertNotNull(new CgmesImport().importData(CgmesConformity1ModifiedCatalog.smallNodeBreakerVscConverterRemotePccTerminal().dataSource(), NetworkFactory.findDefault(), importParams)); } - @Test - void miniNodeBreakerInternalLineZ0() { - Network network = new CgmesImport() - .importData(CgmesConformity1ModifiedCatalog.miniNodeBreakerInternalLineZ0().dataSource(), NetworkFactory.findDefault(), importParams); - // The internal z0 line named "INTERCONNECTOR22" has been converted to a switch - Switch sw = network.getSwitch("fdf5cfbe-9bf5-406a-8d04-fafe47afe31d"); - assertNotNull(sw); - assertEquals("INTERCONNECTOR22", sw.getNameOrId()); - } - @Test void microGridBaseCaseAssembledEntsoeCategory() { importParams.put(CgmesImport.POST_PROCESSORS, "EntsoeCategory"); @@ -948,12 +915,6 @@ void microGridBaseCaseNLShuntCompensatorGP() { assertEquals(0.123, network.getShuntCompensator("fbfed7e3-3dec-4829-a286-029e73535685").getTerminal().getP(), 0.0); } - @Test - void microGridBaseCaseNLSwitchWithoutName() { - Network network = Importers.importData("CGMES", CgmesConformity1ModifiedCatalog.microGridBaseCaseNLSwitchWithoutName().dataSource(), importParams); - assertNotNull(network.getSwitch("5f5d40ae-d52d-4631-9285-b3ceefff784c")); - } - @Test void microGridBaseCaseBESingleFile() { Network network = Importers.importData("CGMES", CgmesConformity1ModifiedCatalog.microGridBaseCaseBESingleFile().dataSource(), importParams); diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/CgmesExportTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/CgmesExportTest.java index aee9d414468..ed0dda96445 100644 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/CgmesExportTest.java +++ b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/CgmesExportTest.java @@ -242,69 +242,6 @@ private static void testPhaseTapChangerType(ReadOnlyDataSource ds, String transf } } - @Test - void testDoNotExportFictitiousSwitchesCreatedForDisconnectedTerminals() throws IOException { - ReadOnlyDataSource ds = CgmesConformity1ModifiedCatalog.miniNodeBreakerTerminalDisconnected().dataSource(); - Network network = Importers.importData("CGMES", ds, importParams); - - String disconnectedTerminalId = "4dec53ca-3ea6-4bd0-a225-b559c8293e91"; - String fictitiousSwitchId = "4dec53ca-3ea6-4bd0-a225-b559c8293e91_SW_fict"; - - // Verify that a fictitious switch has been created for the disconnected terminal - Switch fictitiousSwitch = network.getSwitch(fictitiousSwitchId); - assertNotNull(fictitiousSwitch); - assertTrue(fictitiousSwitch.isFictitious()); - assertTrue(fictitiousSwitch.isOpen()); - assertEquals("true", fictitiousSwitch.getProperty(Conversion.PROPERTY_IS_CREATED_FOR_DISCONNECTED_TERMINAL)); - - String exportFolder = "/test-terminal-disconnected-fictitious-switch"; - try (FileSystem fs = Jimfs.newFileSystem(Configuration.unix())) { - // Export to CGMES and add boundary EQ for reimport - Path tmpDir = Files.createDirectory(fs.getPath(exportFolder)); - String baseName = "testTerminalDisconnectedFictitiousSwitchExported"; - ReadOnlyDataSource exportedCgmes = exportAndAddBoundaries(network, tmpDir, baseName, ds); - - // Check that the exported CGMES model does not contain the fictitious switch - // And that the corresponding terminal is disconnected - CgmesModel cgmes = CgmesModelFactory.create(exportedCgmes, TripleStoreFactory.defaultImplementation()); - assertTrue(cgmes.isNodeBreaker()); - assertFalse(cgmes.switches().stream().anyMatch(sw -> sw.getId("Switch").equals(fictitiousSwitchId))); - assertFalse(cgmes.terminal(disconnectedTerminalId).connected()); - - // Verify that the fictitious switch is created again when we re-import the exported CGMES data - Network networkReimported = Network.read(exportedCgmes, importParams); - Switch fictitiousSwitchReimported = networkReimported.getSwitch(fictitiousSwitchId); - assertNotNull(fictitiousSwitchReimported); - assertTrue(fictitiousSwitchReimported.isFictitious()); - assertTrue(fictitiousSwitchReimported.isOpen()); - assertEquals("true", fictitiousSwitch.getProperty(Conversion.PROPERTY_IS_CREATED_FOR_DISCONNECTED_TERMINAL)); - - // Verify that if close the switch the terminal is exported as connected - // And the fictitious switch is not crated when re-importing - fictitiousSwitch.setOpen(false); - String baseName1 = "testTerminalDisconnectedFictitiousSwitchClosedExported"; - ReadOnlyDataSource exportedCgmes1 = exportAndAddBoundaries(network, tmpDir, baseName1, ds); - CgmesModel cgmes1 = CgmesModelFactory.create(exportedCgmes1, TripleStoreFactory.defaultImplementation()); - assertTrue(cgmes1.isNodeBreaker()); - assertFalse(cgmes1.switches().stream().anyMatch(sw -> sw.getId("Switch").equals(fictitiousSwitchId))); - assertTrue(cgmes1.terminal(disconnectedTerminalId).connected()); - Network networkReimported1 = Network.read(exportedCgmes1, importParams); - Switch fictitiousSwitchReimported1 = networkReimported1.getSwitch(fictitiousSwitchId); - assertNull(fictitiousSwitchReimported1); - } - } - - private static ReadOnlyDataSource exportAndAddBoundaries(Network network, Path tmpDir, String baseName, ReadOnlyDataSource originalDataSource) throws IOException { - network.write("CGMES", null, tmpDir.resolve(baseName)); - String eqbd = originalDataSource.listNames(".*EQ_BD.*").stream().findFirst().orElse(null); - if (eqbd != null) { - try (InputStream is = originalDataSource.newInputStream(eqbd)) { - Files.copy(is, tmpDir.resolve(baseName + "_EQ_BD.xml")); - } - } - return new GenericReadOnlyDataSource(tmpDir, baseName); - } - @Test void testFromIidmBusBranch() throws IOException { // If we want to export an IIDM that contains dangling lines, diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/RetainedSwitchExportTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/RetainedSwitchExportTest.java deleted file mode 100644 index bb44a9b8e39..00000000000 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/RetainedSwitchExportTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.powsybl.cgmes.conversion.test.export.issues; - -import com.powsybl.cgmes.conversion.CgmesExport; -import com.powsybl.commons.test.AbstractSerDeTest; -import com.powsybl.iidm.network.*; -import org.junit.jupiter.api.Test; - -import java.io.IOException; -import java.nio.file.Files; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.*; - -class RetainedSwitchExportTest extends AbstractSerDeTest { - @Test - void testRetainedSwitchDifferentTN() throws IOException { - Network network = Network.create("retained-switch-same-TN", "manual"); - VoltageLevel vl = network.newSubstation().setId("S0").add().newVoltageLevel() - .setId("VL0") - .setNominalV(100) - .setTopologyKind(TopologyKind.NODE_BREAKER) - .add(); - vl.getNodeBreakerView().newBusbarSection().setId("BBS0").setNode(0).add(); - vl.getNodeBreakerView().newBusbarSection().setId("BBS1").setNode(1).add(); - vl.getNodeBreakerView().newBreaker().setId("COUPLER").setRetained(true).setNode1(0).setNode2(1).add(); - vl.newLoad().setId("LOAD").setNode(2).setP0(1).setQ0(0).add(); - vl.getNodeBreakerView().newBreaker().setId("LOAD_BK").setNode1(2).setNode2(0).add(); - vl.newGenerator().setId("GEN").setNode(3).setTargetP(1).setTargetQ(0).setMinP(0).setMaxP(10).setVoltageRegulatorOn(false).add(); - vl.getNodeBreakerView().newBreaker().setId("GEN_BK").setNode1(3).setNode2(1).add(); - - // Check that bus/breaker view buses are different at ends of coupler - Bus bus1 = vl.getBusBreakerView().getBus1("COUPLER"); - Bus bus2 = vl.getBusBreakerView().getBus2("COUPLER"); - assertNotEquals(bus1, bus2); - - // Export only EQ to CGMES - Properties exportParams = new Properties(); - exportParams.put(CgmesExport.PROFILES, "EQ"); - - String basenameRetained = "net"; - network.write("CGMES", exportParams, tmpDir.resolve(basenameRetained)); - String eqRetained = read(basenameRetained, "EQ"); - - // Look for the coupler retained attribute - // Include multiple lines and non-greedy matches - Pattern couplerRetainedPattern = Pattern.compile(".*?(.*?)", Pattern.DOTALL); - Matcher couplerRetained = couplerRetainedPattern.matcher(eqRetained); - assertTrue(couplerRetained.find()); - assertTrue(Boolean.parseBoolean(couplerRetained.group(1))); - - // Now add a load that is connected to the two busbars through disconnectors - vl.newLoad().setId("LOAD_BOTH").setP0(5).setQ0(0).setNode(5).add(); - vl.getNodeBreakerView().newBreaker().setId("LOAD5_BK").setNode1(5).setNode2(4).add(); - vl.getNodeBreakerView().newDisconnector().setId("LOAD5_DIS0").setNode1(4).setNode2(0).add(); - vl.getNodeBreakerView().newDisconnector().setId("LOAD5_DIS1").setNode1(4).setNode2(1).add(); - - // Export only EQ to CGMES - String basenameNonRetained = "netnr"; - network.write("CGMES", exportParams, tmpDir.resolve(basenameNonRetained)); - String eqNonRetained = read(basenameNonRetained, "EQ"); - - // Look for the coupler retained attribute - // Include multiple lines and non-greedy matches - Matcher couplerNonRetained = couplerRetainedPattern.matcher(eqNonRetained); - assertTrue(couplerNonRetained.find()); - assertFalse(Boolean.parseBoolean(couplerNonRetained.group(1))); - } - - private String read(String basename, String profile) throws IOException { - String instanceFile = String.format("%s_%s.xml", basename, profile); - return Files.readString(tmpDir.resolve(instanceFile)); - } -} diff --git a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/SwitchExportTest.java b/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/SwitchExportTest.java deleted file mode 100644 index 5d538228907..00000000000 --- a/cgmes/cgmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/issues/SwitchExportTest.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * SPDX-License-Identifier: MPL-2.0 - */ -package com.powsybl.cgmes.conversion.test.export.issues; - -import com.powsybl.cgmes.conformity.CgmesConformity1ModifiedCatalog; -import com.powsybl.cgmes.conversion.CgmesImport; -import com.powsybl.cgmes.model.CgmesNamespace; -import com.powsybl.commons.datasource.DirectoryDataSource; -import com.powsybl.commons.test.AbstractSerDeTest; -import com.powsybl.iidm.network.Network; -import com.powsybl.iidm.network.SwitchKind; -import com.powsybl.iidm.network.TopologyKind; -import com.powsybl.iidm.network.VoltageLevel; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import javax.xml.stream.*; -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Properties; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -/** - * @author Luma Zamarreño {@literal } - */ -class SwitchExportTest extends AbstractSerDeTest { - - private Properties importParams; - - @BeforeEach - public void setUp() throws IOException { - super.setUp(); - importParams = new Properties(); - importParams.put(CgmesImport.IMPORT_CGM_WITH_SUBNETWORKS, "false"); - } - - @Test - void testSwitchTypePreservedBusBranch() { - // Load a bus/branch network containing a generic "Switch", not a breaker - Network network = Network.read(CgmesConformity1ModifiedCatalog.microGridBaseCaseNLSwitchTypePreserved().dataSource(), importParams); - String basename = "micro-nl"; - network.write("CGMES", null, tmpDir.resolve(basename)); - - // In IIDM the switch has been created of kind "Breaker" - String switchId = "5f5d40ae-d52d-4631-9285-b3ceefff784c"; - assertEquals(SwitchKind.BREAKER, network.getSwitch(switchId).getKind()); - - // Check that the "Switch" type has been preserved in EQ and SSH when we export - String switchIdEq = readId("Switch", "ID", tmpDir.resolve(basename + "_EQ.xml")); - String switchIdSsh = readId("Switch", "about", tmpDir.resolve(basename + "_SSH.xml")); - assertEquals("_" + switchId, switchIdEq); - assertEquals("#_" + switchId, switchIdSsh); - } - - @Test - void testSwitchTypePreservedNodeBreaker() { - // Load a node/branch network containing a "ProtectedSwitch" - Network network = Network.read(CgmesConformity1ModifiedCatalog.miniGridNodeBreakerSwitchTypePreserved().dataSource(), importParams); - String basename = "mini"; - network.write("CGMES", null, tmpDir.resolve(basename)); - - // In IIDM the switch has been created of kind "Breaker", the default when the type read is not supported - String switchId = "5e9f0079-647e-46da-b0ee-f5f24e127602"; - assertEquals(SwitchKind.BREAKER, network.getSwitch(switchId).getKind()); - - // Check that the "ProtectedSwitch" type has been preserved in EQ and SSH when we export - String switchIdEq = readId("ProtectedSwitch", "ID", tmpDir.resolve(basename + "_EQ.xml")); - String switchIdSsh = readId("ProtectedSwitch", "about", tmpDir.resolve(basename + "_SSH.xml")); - assertEquals("_" + switchId, switchIdEq); - assertEquals("#_" + switchId, switchIdSsh); - } - - @Test - void testExportRetainedSwitchWithSameBusBreakerBusAtBothEnds() { - // We create a network where a retained breaker has the same bus-breaker buses at both ends - // After #2574, a breaker with these characteristics was not exported to CGMES - // It may happen in some double bar configurations where lines (or other equipment) may be connected to both bars - // and there is also a retained coupler - Network n = Network.create("retained-breaker-between-busbar-sections", "manual"); - VoltageLevel vl = n.newVoltageLevel().setId("vl").setName("vl").setTopologyKind(TopologyKind.NODE_BREAKER).setNominalV(10).add(); - VoltageLevel.NodeBreakerView nb = vl.getNodeBreakerView(); - nb.newBusbarSection().setId("bbs1").setNode(1).add(); - nb.newBusbarSection().setId("bbs2").setNode(2).add(); - nb.newSwitch().setId("coupler").setName("coupler").setNode1(1).setNode2(2).setKind(SwitchKind.BREAKER).setRetained(true).add(); - vl.newLoad().setId("load").setName("load").setNode(3) - .setP0(10).setQ0(0).add(); - vl.newGenerator().setId("gen").setName("gen").setNode(4) - .setTargetP(10).setTargetV(10).setMinP(0).setMaxP(100).setVoltageRegulatorOn(true).add(); - nb.newSwitch().setId("load-bk").setName("load-bk").setNode1(3).setNode2(31).setKind(SwitchKind.BREAKER).add(); - nb.newSwitch().setId("load-dis1").setName("load-dis1").setNode1(31).setNode2(1).setKind(SwitchKind.DISCONNECTOR).add(); - nb.newSwitch().setId("load-dis2").setName("load-dis2").setNode1(31).setNode2(2).setKind(SwitchKind.DISCONNECTOR).add(); - nb.newSwitch().setId("gen-bk").setName("gen-bk").setNode1(4).setNode2(41).setKind(SwitchKind.BREAKER).add(); - nb.newSwitch().setId("gen-dis1").setName("gen-dis1").setNode1(41).setNode2(1).setKind(SwitchKind.DISCONNECTOR).add(); - nb.newSwitch().setId("gen-dis2").setName("gen-dis2").setNode1(41).setNode2(2).setKind(SwitchKind.DISCONNECTOR).add(); - - // Check that the coupler is preserved when exported to CGMES - String basename = n.getNameOrId(); - n.write("CGMES", null, tmpDir.resolve(basename)); - Network n1 = Network.read(new DirectoryDataSource(tmpDir, basename)); - assertNotNull(n1.getSwitch("coupler")); - } - - private static String readId(String elementName, String rdfIdAttrName, Path ssh) { - String id; - try (InputStream is = Files.newInputStream(ssh)) { - XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(is); - while (reader.hasNext()) { - int next = reader.next(); - if (next == XMLStreamConstants.START_ELEMENT) { - if (reader.getLocalName().equals(elementName)) { - id = reader.getAttributeValue(CgmesNamespace.RDF_NAMESPACE, rdfIdAttrName); - reader.close(); - return id; - } - } - } - reader.close(); - } catch (XMLStreamException | IOException e) { - throw new RuntimeException(e); - } - return null; - } - -} diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/basic_switch.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/basic_switch.xml new file mode 100644 index 00000000000..31d193932b2 --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/basic_switch.xml @@ -0,0 +1,68 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Basic switch + 001 + http://entsoe.eu/CIM/EquipmentCore/3/1 + http://entsoe.eu/CIM/EquipmentOperation/3/1 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Node 1 + + + + Node 2 + + + + Breaker + + true + true + + + Terminal BR 1 + 1 + + + + + Terminal BR 2 + 2 + + + + + + + + + + + + + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_EQ.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_EQ.xml new file mode 100644 index 00000000000..06dc3c66294 --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_EQ.xml @@ -0,0 +1,55 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Disconnected terminal + 001 + http://entsoe.eu/CIM/EquipmentCore/3/1 + http://entsoe.eu/CIM/EquipmentOperation/3/1 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Node + + + + Load + + + + Terminal Load + 1 + + + + + Busbar section + + + + Terminal Busbar section + 1 + + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_SSH.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_SSH.xml new file mode 100644 index 00000000000..1fc6f76314a --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/disconnected_terminal_SSH.xml @@ -0,0 +1,17 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Disconnected terminal + 001 + http://entsoe.eu/CIM/SteadyStateHypothesis/1/1 + + powsybl.org + + + true + + + false + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/line_with_0_impedance.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/line_with_0_impedance.xml new file mode 100644 index 00000000000..b35f081f4aa --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/line_with_0_impedance.xml @@ -0,0 +1,59 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Line with 0 impedance + 001 + http://entsoe.eu/CIM/EquipmentCore/3/1 + http://entsoe.eu/CIM/EquipmentOperation/3/1 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Node 1 + + + + Node 2 + + + + AC line segment + 0 + 0 + 0 + 0 + + + + Terminal ACL 1 + 1 + + + + + Terminal ACL 2 + 2 + + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/retained_switch.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/retained_switch.xml new file mode 100644 index 00000000000..56d27d617d8 --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/retained_switch.xml @@ -0,0 +1,149 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Retained switch + 001 + http://entsoe.eu/CIM/EquipmentCore/3/1 + http://entsoe.eu/CIM/EquipmentOperation/3/1 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Node 1 + + + + Node 2 + + + + Node 3 + + + + Node 4 + + + + Busbar section 1 + + + + Terminal BBS_1 + 1 + + + + + Busbar section 2 + + + + Terminal BBS_2 + 1 + + + + + Bus bar coupler + + false + true + + + Terminal COUPLER 1 + 1 + + + + + Terminal COUPLER 2 + 2 + + + + + Disconnector 1 + + false + false + + + Terminal DIS_1 1 + 1 + + + + + Terminal DIS_1 2 + 2 + + + + + Disconnector 2 + + false + false + + + Terminal DIS_2 1 + 1 + + + + + Terminal DIS_2 2 + 2 + + + + + Breaker + + false + false + + + Terminal BR 1 + 1 + + + + + Terminal BR 2 + 2 + + + + + Load + + + + Terminal LD + 1 + + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_EQ.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_EQ.xml new file mode 100644 index 00000000000..b648ed775b4 --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_EQ.xml @@ -0,0 +1,46 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Switch kind bus branch + 001 + http://entsoe.eu/CIM/EquipmentCore/3/1 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Disconnector + + false + false + + + Terminal DIS 1 + 1 + + + + Terminal DIS 2 + 2 + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_TP.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_TP.xml new file mode 100644 index 00000000000..fe393f9d585 --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_in_bus_branch_TP.xml @@ -0,0 +1,27 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Switch kind bus branch + 001 + http://entsoe.eu/CIM/Topology/4/1 + + powsybl.org + + + Topological node 1 + + + + + Topological node 2 + + + + + + + + + + diff --git a/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_kind.xml b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_kind.xml new file mode 100644 index 00000000000..d068a630f4f --- /dev/null +++ b/cgmes/cgmes-conversion/src/test/resources/issues/switches/switch_kind.xml @@ -0,0 +1,165 @@ + + + 2021-03-01T23:00:00Z + 2021-03-02T10:22:58Z + Switch kind + 001 + http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 + http://iec.ch/TC57/ns/CIM/Operation-EU/3.0 + powsybl.org + + + Geographical region + + + Subgeographical region + + + + Substation + + + + Voltage level + + + + + Node 1 + + + + Node 2 + + + + Breaker + + false + false + + + Terminal BR 1 + 1 + + + + + Terminal BR 2 + 2 + + + + + Generic switch + + false + false + + + Terminal SW 1 + 1 + + + + + Terminal SW 2 + 2 + + + + + Protected switch + + false + false + + + Terminal PSW 1 + 1 + + + + + Terminal PSW 2 + 2 + + + + + Disconnector + + false + false + + + Terminal DIS 1 + 1 + + + + + Terminal DIS 2 + 2 + + + + + Ground disconnector + + false + false + + + Terminal GRD 1 + 1 + + + + + Terminal GRD 2 + 2 + + + + + Jumper + + false + false + + + Terminal JUM 1 + 1 + + + + + Terminal JUM 2 + 2 + + + + + Load break switch + + false + false + + + Terminal LBS 1 + 1 + + + + + Terminal LBS 2 + 2 + + + + + 100 kV + 100 + + diff --git a/cgmes/cgmes-conversion/src/test/resources/jumperTest.xml b/cgmes/cgmes-conversion/src/test/resources/jumperTest.xml deleted file mode 100644 index f1d0c36059e..00000000000 --- a/cgmes/cgmes-conversion/src/test/resources/jumperTest.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - 2023-01-01T00:00:00Z - 2023-01-01T00:00:00Z - Test Jumper import - 1 - http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 - http://iec.ch/TC57/ns/CIM/Operation-EU/3.0 - http://powsybl.org - - - Region - - - - SubRegion - - - 67.5 - 67.5 - - - - Substation - - - - - VoltageLevel - - - - BBS - - - - - 1 - BBS Terminal - - - - BBS ConnectivityNode - - - Load - - - - - - 1 - Load Terminal - - - - Load ConnectivityNode - - - true - false - - opened jumper - - - - - 1 - Jumper Terminal1 - - - - - 2 - Jumper Terminal2 - - diff --git a/cgmes/cgmes-model/src/main/resources/CIM100.sparql b/cgmes/cgmes-model/src/main/resources/CIM100.sparql index ba668498e7a..744fadf3c51 100644 --- a/cgmes/cgmes-model/src/main/resources/CIM100.sparql +++ b/cgmes/cgmes-model/src/main/resources/CIM100.sparql @@ -150,15 +150,9 @@ WHERE { a ?type ; cim:Equipment.EquipmentContainer ?EquipmentContainer . VALUES ?type { cim:Switch cim:Breaker cim:Disconnector cim:LoadBreakSwitch cim:ProtectedSwitch cim:GroundDisconnector cim:Jumper } . - OPTIONAL { - ?Switch cim:IdentifiedObject.name ?name ; - } - OPTIONAL { - ?Switch cim:Switch.retained ?retained - } - OPTIONAL { - ?Switch cim:Switch.normalOpen ?normalOpen - } + OPTIONAL { ?Switch cim:IdentifiedObject.name ?name ; } + OPTIONAL { ?Switch cim:Switch.retained ?retained } + OPTIONAL { ?Switch cim:Switch.normalOpen ?normalOpen } ?Terminal1 a cim:Terminal ; cim:Terminal.ConductingEquipment ?Switch . @@ -174,4 +168,3 @@ OPTIONAL { GRAPH ?graphSSH { ?Switch cim:Switch.open ?open }} } - diff --git a/cgmes/cgmes-model/src/main/resources/CIM16.sparql b/cgmes/cgmes-model/src/main/resources/CIM16.sparql index ac370cc162a..c182fe7e153 100644 --- a/cgmes/cgmes-model/src/main/resources/CIM16.sparql +++ b/cgmes/cgmes-model/src/main/resources/CIM16.sparql @@ -419,15 +419,9 @@ WHERE { a ?type ; cim:Equipment.EquipmentContainer ?EquipmentContainer . VALUES ?type { cim:Switch cim:Breaker cim:Disconnector cim:LoadBreakSwitch cim:ProtectedSwitch cim:GroundDisconnector } . - OPTIONAL { - ?Switch cim:IdentifiedObject.name ?name ; - } - OPTIONAL { - ?Switch cim:Switch.retained ?retained - } - OPTIONAL { - ?Switch cim:Switch.normalOpen ?normalOpen - } + OPTIONAL { ?Switch cim:IdentifiedObject.name ?name ; } + OPTIONAL { ?Switch cim:Switch.retained ?retained } + OPTIONAL { ?Switch cim:Switch.normalOpen ?normalOpen } ?Terminal1 a cim:Terminal ; cim:Terminal.ConductingEquipment ?Switch . From 9edd6caa960f378501e8dad249da56e8654883fa Mon Sep 17 00:00:00 2001 From: Naledi <151443525+nao1345678@users.noreply.github.com> Date: Thu, 30 Jan 2025 16:01:03 +0100 Subject: [PATCH 3/7] Two winding transformers adder by copy (#3260) Signed-off-by: Naledi EL CHEIKH --- .../com/powsybl/iidm/network/Substation.java | 6 + .../network/TwoWindingsTransformerAdder.java | 9 ++ .../iidm/network/util/LoadingLimitsUtil.java | 52 +++++++-- .../iidm/network/impl/LineAdderImpl.java | 21 +--- .../iidm/network/impl/SubstationImpl.java | 5 + .../impl/TwoWindingsTransformerAdderImpl.java | 15 ++- .../tck/AbstractSubnetworksCreationTest.java | 15 ++- .../AbstractTwoWindingsTransformerTest.java | 104 ++++++++++++++++++ 8 files changed, 195 insertions(+), 32 deletions(-) diff --git a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/Substation.java b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/Substation.java index cd061255a9b..9c0e3b30880 100644 --- a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/Substation.java +++ b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/Substation.java @@ -126,6 +126,12 @@ public interface Substation extends Container { */ TwoWindingsTransformerAdder newTwoWindingsTransformer(); + /** + * Get a builder to create a new two windings transformer in the substation by copying an existing one. + * Only use this builder if the two ends of the transformer are in the substation. + */ + TwoWindingsTransformerAdder newTwoWindingsTransformer(TwoWindingsTransformer twoWindingsTransformer); + /** * Get the two windings transformers connected to the substation. */ diff --git a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TwoWindingsTransformerAdder.java b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TwoWindingsTransformerAdder.java index f7de46d5ec8..7503f1384a0 100644 --- a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TwoWindingsTransformerAdder.java +++ b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/TwoWindingsTransformerAdder.java @@ -13,6 +13,15 @@ */ public interface TwoWindingsTransformerAdder extends BranchAdder { + static TwoWindingsTransformerAdder fillTwoWindingsTransformerAdder(TwoWindingsTransformerAdder adder, TwoWindingsTransformer twoWindingsTransformer) { + return adder.setR(twoWindingsTransformer.getR()) + .setX(twoWindingsTransformer.getX()) + .setB(twoWindingsTransformer.getB()) + .setG(twoWindingsTransformer.getG()) + .setRatedU1(twoWindingsTransformer.getRatedU1()) + .setRatedU2(twoWindingsTransformer.getRatedU2()); + } + TwoWindingsTransformerAdder setR(double r); TwoWindingsTransformerAdder setX(double x); diff --git a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/util/LoadingLimitsUtil.java b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/util/LoadingLimitsUtil.java index ca75d5a8621..b76d681e31d 100644 --- a/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/util/LoadingLimitsUtil.java +++ b/iidm/iidm-api/src/main/java/com/powsybl/iidm/network/util/LoadingLimitsUtil.java @@ -11,7 +11,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Collection; import java.util.Comparator; +import java.util.function.Function; import static java.lang.Integer.MAX_VALUE; @@ -30,7 +32,8 @@ private LoadingLimitsUtil() { * {@link #fixMissingPermanentLimit(LoadingLimitsAdder, double, String, LimitFixLogger)}. */ public interface LimitFixLogger { - LimitFixLogger NO_OP = (what, reason, wrongValue, fixedValue) -> { }; + LimitFixLogger NO_OP = (what, reason, wrongValue, fixedValue) -> { + }; void log(String what, String reason, double wrongValue, double fixedValue); } @@ -43,7 +46,8 @@ public interface LimitFixLogger { /** *

Compute a missing permanent limit accordingly to the temporary limits and to a given percentage.

- * @param limitsAdder the LoadingLimitsAdder which permanent limit should be fixed + * + * @param limitsAdder the LoadingLimitsAdder which permanent limit should be fixed * @param missingPermanentLimitPercentage The percentage to apply */ public static > void fixMissingPermanentLimit(LoadingLimitsAdder limitsAdder, @@ -53,10 +57,11 @@ public static > void /** *

Compute a missing permanent limit accordingly to the temporary limits and to a given percentage.

- * @param adder the LoadingLimitsAdder which permanent limit should be fixed + * + * @param adder the LoadingLimitsAdder which permanent limit should be fixed * @param missingPermanentLimitPercentage The percentage to apply - * @param ownerId id of the limits' network element. It is only used for reporting purposes. - * @param limitFixLogger the object used to report the performed operation on the permanent limit. + * @param ownerId id of the limits' network element. It is only used for reporting purposes. + * @param limitFixLogger the object used to report the performed operation on the permanent limit. */ public static > void fixMissingPermanentLimit(LoadingLimitsAdder adder, double missingPermanentLimitPercentage, String ownerId, LimitFixLogger limitFixLogger) { @@ -93,11 +98,12 @@ public static > void } } - /** - *

Initialize an adder filled with a copy of an existing limits set

- * @param adder the empty adder in which we initialize the new limits - * @param limits the limits to copy - */ + /** + *

Initialize an adder filled with a copy of an existing limits set

+ * + * @param adder the empty adder in which we initialize the new limits + * @param limits the limits to copy + */ public static > A initializeFromLoadingLimits(A adder, L limits) { if (limits == null) { LOGGER.warn("Created adder is empty"); @@ -113,4 +119,30 @@ public static > A in .endTemporaryLimit()); return adder; } + + /** + *

Copies every limit from each operational limits group.

+ * + * @param copiedBranch the copied object + * @param branch the object on which the copied object attributes are copied + */ + public static > void copyOperationalLimits(I copiedBranch, I branch) { + if (copiedBranch != null) { + copyOperationalLimits(copiedBranch.getOperationalLimitsGroups1(), branch::newOperationalLimitsGroup1); + copiedBranch.getSelectedOperationalLimitsGroupId1().ifPresent(branch::setSelectedOperationalLimitsGroup1); + + copyOperationalLimits(copiedBranch.getOperationalLimitsGroups2(), branch::newOperationalLimitsGroup2); + copiedBranch.getSelectedOperationalLimitsGroupId2().ifPresent(branch::setSelectedOperationalLimitsGroup2); + } + } + + private static void copyOperationalLimits(Collection from, + Function createGroup) { + from.forEach(groupToCopy -> { + OperationalLimitsGroup copy = createGroup.apply(groupToCopy.getId()); + groupToCopy.getCurrentLimits().ifPresent(limit -> copy.newCurrentLimits(limit).add()); + groupToCopy.getActivePowerLimits().ifPresent(limit -> copy.newActivePowerLimits(limit).add()); + groupToCopy.getApparentPowerLimits().ifPresent(limit -> copy.newApparentPowerLimits(limit).add()); + }); + } } diff --git a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/LineAdderImpl.java b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/LineAdderImpl.java index 27284c22377..762a96abfd5 100644 --- a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/LineAdderImpl.java +++ b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/LineAdderImpl.java @@ -10,6 +10,8 @@ import com.powsybl.iidm.network.*; import com.powsybl.commons.ref.Ref; +import static com.powsybl.iidm.network.util.LoadingLimitsUtil.copyOperationalLimits; + /** * * @author Geoffroy Jamgotchian {@literal } @@ -117,24 +119,7 @@ public LineImpl add() { line.addTerminal(terminal1); line.addTerminal(terminal2); - if (copiedLine != null) { - copiedLine.getOperationalLimitsGroups1().forEach(groupToCopy -> { - OperationalLimitsGroup copy1 = line.newOperationalLimitsGroup1(groupToCopy.getId()); - groupToCopy.getCurrentLimits().ifPresent(limit -> copy1.newCurrentLimits(limit).add()); - groupToCopy.getActivePowerLimits().ifPresent(limit -> copy1.newActivePowerLimits(limit).add()); - groupToCopy.getApparentPowerLimits().ifPresent(limit -> copy1.newApparentPowerLimits(limit).add()); - }); - - copiedLine.getOperationalLimitsGroups2().forEach(groupToCopy -> { - OperationalLimitsGroup copy2 = line.newOperationalLimitsGroup2(groupToCopy.getId()); - groupToCopy.getCurrentLimits().ifPresent(limit -> copy2.newCurrentLimits(limit).add()); - groupToCopy.getActivePowerLimits().ifPresent(limit -> copy2.newActivePowerLimits(limit).add()); - groupToCopy.getApparentPowerLimits().ifPresent(limit -> copy2.newApparentPowerLimits(limit).add()); - }); - - copiedLine.getSelectedOperationalLimitsGroupId1().ifPresent(line::setSelectedOperationalLimitsGroup1); - copiedLine.getSelectedOperationalLimitsGroupId2().ifPresent(line::setSelectedOperationalLimitsGroup2); - } + copyOperationalLimits(copiedLine, line); // check that the line is attachable on both side voltageLevel1.getTopologyModel().attach(terminal1, true); diff --git a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/SubstationImpl.java b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/SubstationImpl.java index d8348f9b21c..6ded59cbdc6 100644 --- a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/SubstationImpl.java +++ b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/SubstationImpl.java @@ -128,6 +128,11 @@ public TwoWindingsTransformerAdderImpl newTwoWindingsTransformer() { return new TwoWindingsTransformerAdderImpl(this); } + @Override + public TwoWindingsTransformerAdderImpl newTwoWindingsTransformer(TwoWindingsTransformer twoWindingsTransformer) { + return new TwoWindingsTransformerAdderImpl(this, twoWindingsTransformer); + } + @Override public Iterable getTwoWindingsTransformers() { return FluentIterable.from(voltageLevels) diff --git a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TwoWindingsTransformerAdderImpl.java b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TwoWindingsTransformerAdderImpl.java index bf553f4889c..f45c8fe60f3 100644 --- a/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TwoWindingsTransformerAdderImpl.java +++ b/iidm/iidm-impl/src/main/java/com/powsybl/iidm/network/impl/TwoWindingsTransformerAdderImpl.java @@ -9,6 +9,8 @@ import com.powsybl.iidm.network.*; +import static com.powsybl.iidm.network.util.LoadingLimitsUtil.copyOperationalLimits; + /** * @author Geoffroy Jamgotchian {@literal } */ @@ -16,6 +18,8 @@ class TwoWindingsTransformerAdderImpl extends AbstractBranchAdder} @@ -226,7 +227,17 @@ public void testTwoWindingsTransformersCreation() { addTwoWindingsTransformer(substation1, "twt1", "vl1_0", 380, "vl1_1", 90); // On subnetwork2 - addTwoWindingsTransformer(substation2, "twt2", "vl2_0", 380, "vl2_1", 90); + TwoWindingsTransformer transformer1 = addTwoWindingsTransformer(substation2, "twt2", "vl2_0", 380, "vl2_1", 90); + + TwoWindingsTransformer transformer2 = substation2.newTwoWindingsTransformer(transformer1) + .setId("twt3") + .setBus1(getBusId("vl2_0")) + .setBus2(getBusId("vl2_1")) + .add(); + + // Tests if copy proceeds + assertNotNull(transformer2); + assertTrue(areTwoWindingsTransformersIdentical(transformer1, transformer2)); // Detach all assertTrue(subnetwork1.isDetachable()); @@ -236,7 +247,7 @@ public void testTwoWindingsTransformersCreation() { // - Check Transformers assertEquals(1, network.getTwoWindingsTransformerCount()); assertEquals(1, n1.getTwoWindingsTransformerCount()); - assertEquals(1, n2.getTwoWindingsTransformerCount()); + assertEquals(2, n2.getTwoWindingsTransformerCount()); assertNetworks(network, network, network.getTwoWindingsTransformer("twt0")); assertNetworks(n1, n1, n1.getTwoWindingsTransformer("twt1")); assertNetworks(n2, n2, n2.getTwoWindingsTransformer("twt2")); diff --git a/iidm/iidm-tck/src/test/java/com/powsybl/iidm/network/tck/AbstractTwoWindingsTransformerTest.java b/iidm/iidm-tck/src/test/java/com/powsybl/iidm/network/tck/AbstractTwoWindingsTransformerTest.java index 5263ffa213a..8e86e33fd33 100644 --- a/iidm/iidm-tck/src/test/java/com/powsybl/iidm/network/tck/AbstractTwoWindingsTransformerTest.java +++ b/iidm/iidm-tck/src/test/java/com/powsybl/iidm/network/tck/AbstractTwoWindingsTransformerTest.java @@ -12,6 +12,9 @@ import com.powsybl.iidm.network.tck.internal.AbstractTransformerTest; import org.junit.jupiter.api.Test; +import java.util.Objects; +import java.util.Optional; + import static org.junit.jupiter.api.Assertions.*; public abstract class AbstractTwoWindingsTransformerTest extends AbstractTransformerTest { @@ -20,6 +23,22 @@ public abstract class AbstractTwoWindingsTransformerTest extends AbstractTransfo private static final String TWT_NAME = "twt_name"; + public static boolean areTwoWindingsTransformersIdentical(TwoWindingsTransformer transformer1, TwoWindingsTransformer transformer2) { + boolean areIdentical = false; + + if (transformer1 != null && transformer2 != null) { + areIdentical = transformer1.getR() == transformer2.getR() + && transformer1.getX() == transformer2.getX() + && transformer1.getB() == transformer2.getB() + && transformer1.getG() == transformer2.getG() + && transformer1.getRatedU1() == transformer2.getRatedU1() + && transformer1.getRatedU2() == transformer2.getRatedU2() + && Objects.equals(transformer1.getTerminal1().getVoltageLevel().getId(), transformer2.getTerminal1().getVoltageLevel().getId()) + && Objects.equals(transformer1.getTerminal2().getVoltageLevel().getId(), transformer2.getTerminal2().getVoltageLevel().getId()); + } + return areIdentical; + } + @Test public void baseTests() { // adder @@ -212,6 +231,90 @@ public void transformerNotInSameSubstation() { assertTrue(e.getMessage().contains("the 2 windings of the transformer shall belong to the substation")); } + @Test + public void testTwoWindingsTransformersCopier() { + // Transformers creation 1 + TwoWindingsTransformer transformer1 = substation.newTwoWindingsTransformer() + .setId("twt1") + .setName(TWT_NAME) + .setR(1.0) + .setX(2.0) + .setG(3.0) + .setB(4.0) + .setRatedU1(5.0) + .setRatedU2(6.0) + .setRatedS(7.0) + .setBus1("busA") + .setBus2("busB") + .add(); + + // Group and limits creation 1 + transformer1.newOperationalLimitsGroup1("group1").newCurrentLimits().setPermanentLimit(220.0).add(); + transformer1.setSelectedOperationalLimitsGroup1("group1"); + Optional optionalLimits1 = transformer1.getCurrentLimits1(); + assertTrue(optionalLimits1.isPresent()); + CurrentLimits limits1 = optionalLimits1.get(); + assertNotNull(limits1); + + transformer1.getOperationalLimitsGroup1("group1").get().newActivePowerLimits().setPermanentLimit(220.0).add(); + Optional optionalActivePowerLimits1 = transformer1.getActivePowerLimits1(); + assertTrue(optionalActivePowerLimits1.isPresent()); + ActivePowerLimits activePowerLimits1 = optionalActivePowerLimits1.get(); + assertNotNull(activePowerLimits1); + + transformer1.getOperationalLimitsGroup1("group1").get().newApparentPowerLimits().setPermanentLimit(220.0).add(); + Optional optionalApparentPowerLimits1 = transformer1.getApparentPowerLimits1(); + assertTrue(optionalApparentPowerLimits1.isPresent()); + ApparentPowerLimits apparentPowerLimits1 = optionalApparentPowerLimits1.get(); + assertNotNull(apparentPowerLimits1); + + // Group and limit creation 2 + transformer1.newOperationalLimitsGroup2("group2").newCurrentLimits().setPermanentLimit(80.0).add(); + transformer1.setSelectedOperationalLimitsGroup2("group2"); + Optional optionalLimits2 = transformer1.getCurrentLimits2(); + assertTrue(optionalLimits2.isPresent()); + CurrentLimits limits2 = optionalLimits2.get(); + assertNotNull(limits2); + + // Transformers creation 2 + TwoWindingsTransformer transformer3 = substation.newTwoWindingsTransformer() + .setId("twt3") + .setName(TWT_NAME) + .setR(2.0) + .setX(3.0) + .setG(5.0) + .setB(5.0) + .setRatedU1(6.0) + .setRatedU2(7.0) + .setRatedS(8.0) + .setBus1("busA") + .setBus2("busB") + .add(); + + // Transformers creation by copy + TwoWindingsTransformer transformer2 = substation.newTwoWindingsTransformer(transformer1) + .setId("twt2") + .setRatedS(7.0) + .setBus1("busA") + .setBus2("busB") + .add(); + + // Group and limit creation 3 + Optional optionalLimits3 = transformer2.getCurrentLimits1(); + assertTrue(optionalLimits3.isPresent()); + CurrentLimits limits3 = optionalLimits3.get(); + + // Tests + assertNotNull(transformer2); + assertNotNull(transformer1); + assertEquals(transformer1.getR(), transformer2.getR()); + assertEquals(transformer1.getX(), transformer2.getX()); + assertTrue(areTwoWindingsTransformersIdentical(transformer1, transformer2)); + assertFalse(areTwoWindingsTransformersIdentical(transformer1, transformer3)); + assertFalse(areTwoWindingsTransformersIdentical(transformer2, transformer3)); + assertTrue(areLimitsIdentical(limits1, limits3)); + } + private void createTwoWindingTransformer(String id, String name, double r, double x, double g, double b, double ratedU1, double ratedU2, double ratedS) { substation.newTwoWindingsTransformer() @@ -307,4 +410,5 @@ private PhaseTapChanger createPhaseTapChanger(TwoWindingsTransformer transformer .endStep() .add(); } + } From 0df7ce3a2e12778b46a935e36c0c2fee2d21f0b0 Mon Sep 17 00:00:00 2001 From: Florian Dupuy <66690739+flo-dup@users.noreply.github.com> Date: Mon, 3 Feb 2025 11:12:48 +0100 Subject: [PATCH 4/7] ReportNode: add detail severity and documentation (#3294) * Add detail severity and javadoc * Adding an indicative limit for the summarizing string length * Add readthedocs documentation * Give strong constraints on severity use Signed-off-by: Florian Dupuy --- .../powsybl/commons/report/ReportNode.java | 9 +- .../powsybl/commons/report/TypedValue.java | 19 +++ docs/user/functional_logs/export.md | 65 +++++++++++ docs/user/functional_logs/i18n.md | 6 + docs/user/functional_logs/import.md | 25 ++++ docs/user/functional_logs/index.md | 108 ++++++++++++++++++ docs/user/index.md | 1 + 7 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 docs/user/functional_logs/export.md create mode 100644 docs/user/functional_logs/i18n.md create mode 100644 docs/user/functional_logs/import.md create mode 100644 docs/user/functional_logs/index.md diff --git a/commons/src/main/java/com/powsybl/commons/report/ReportNode.java b/commons/src/main/java/com/powsybl/commons/report/ReportNode.java index 5a69d989901..a882845d375 100644 --- a/commons/src/main/java/com/powsybl/commons/report/ReportNode.java +++ b/commons/src/main/java/com/powsybl/commons/report/ReportNode.java @@ -29,7 +29,14 @@ *
  • a collection of ReportNode children, possibly empty.
  • * * - * The values {@link TypedValue} values should be referred to by their key in the message template, using the ${key} + *

    When the collection of children of a ReportNode is non-empty, the message of the corresponding + * ReportNode is expected to summarize the children content. Note that the summarizing + * template should be succinct: 120 characters is a good limit for the message string length (once formatted). + * + *

    The {@link TypedValue} values should have a meaningful type to possibly enrich the message content. Please reuse + * the generic types provided in {@link TypedValue} when possible. + * + *

    The values {@link TypedValue} values should be referred to by their key in the message template, using the ${key} * syntax, in order to be later replaced by {@link org.apache.commons.text.StringSubstitutor} for instance when formatting * the string for the end user. * The ReportNode values may be referred to within the corresponding messageTemplate, or within any of its diff --git a/commons/src/main/java/com/powsybl/commons/report/TypedValue.java b/commons/src/main/java/com/powsybl/commons/report/TypedValue.java index 71a09209c3e..e50ea61322f 100644 --- a/commons/src/main/java/com/powsybl/commons/report/TypedValue.java +++ b/commons/src/main/java/com/powsybl/commons/report/TypedValue.java @@ -22,7 +22,10 @@ public class TypedValue { public static final String UNTYPED = "UNTYPED"; + + /** Type used for the severity level of the corresponding {@link ReportNode} */ public static final String SEVERITY = "SEVERITY"; + public static final String ACTIVE_POWER = "ACTIVE_POWER"; public static final String REACTIVE_POWER = "REACTIVE_POWER"; public static final String RESISTANCE = "RESISTANCE"; @@ -39,12 +42,28 @@ public class TypedValue { public static final String CGMES_SUBSET = "CGMES_SUBSET"; public static final String ID = "ID"; + /** Used for a severity level of TRACE level */ public static final TypedValue TRACE_SEVERITY = new TypedValue("TRACE", TypedValue.SEVERITY); + + /** Used for a severity level of DEBUG level */ public static final TypedValue DEBUG_SEVERITY = new TypedValue("DEBUG", TypedValue.SEVERITY); + + /** Used for a severity level of INFO level, that is a functional state which may be of interest for the end user */ public static final TypedValue INFO_SEVERITY = new TypedValue("INFO", TypedValue.SEVERITY); + + /** Used for a severity level of WARN level, that is, an unwanted state that can be recovered from */ public static final TypedValue WARN_SEVERITY = new TypedValue("WARN", TypedValue.SEVERITY); + + /** Used for a severity level of ERROR level, that is, a requested operation has not been completed */ public static final TypedValue ERROR_SEVERITY = new TypedValue("ERROR", TypedValue.SEVERITY); + /** + * Used for a severity level of DETAIL level, that is, the severity for children of a {@link ReportNode} of + * severity WARN or ERROR. Indeed, end users may want several fine-grained messages when a WARN or ERROR occurs, but + * they want as few WARN / ERROR messages as possible. + */ + public static final TypedValue DETAIL_SEVERITY = new TypedValue("DETAIL", TypedValue.SEVERITY); + private final Object value; private final String type; diff --git a/docs/user/functional_logs/export.md b/docs/user/functional_logs/export.md new file mode 100644 index 00000000000..86190ed498b --- /dev/null +++ b/docs/user/functional_logs/export.md @@ -0,0 +1,65 @@ +# Export +A report node can be either serialized to a JSON file or printed to a string / a text file. + +## JSON format +A report node can be serialized into a JSON file +- either by calling +```java +var objectMapper = new ObjectMapper().registerModule(new ReportNodeJsonModule()); +objectMapper.writeValue(outputStream, reportNode); +``` +- or by calling +```java +ReportNodeSerializer.write(reportNode, jsonFilePath); +``` + +An example of the current version 2.1 of the serialization is below: +```json +{ + "version" : "2.1", + "dictionaries" : { + "default" : { + "key1" : "template with typed ${value1}", + "key2" : "template with several untyped ${value1}, ${value2}" + } + }, + "reportRoot" : { + "messageKey" : "key1", + "values" : { + "value1" : { + "value" : "value", + "type" : "FILENAME" + } + }, + "children" : [ { + "messageKey" : "key2", + "values" : { + "value1" : { + "value" : "first untyped value" + }, + "value2" : { + "value" : "second untyped value" + } + } + } ] + } +} +``` + +## Display format +In order to have an overview of a report node, two print methods are provided in the API: +- for printing to a `Path` +```java +reportNode.print(path); +``` +- for printing to a `Writer` +```java +reportNode.print(writer); +``` + +The correspond multiline string of above example is below. +The `+` character and the indentation are used to show the tree hierarchy. +```text ++ template with typed value + template with several untyped first untyped value, second untyped value +``` \ No newline at end of file diff --git a/docs/user/functional_logs/i18n.md b/docs/user/functional_logs/i18n.md new file mode 100644 index 00000000000..91fad21be2b --- /dev/null +++ b/docs/user/functional_logs/i18n.md @@ -0,0 +1,6 @@ +# Internationalization + +The internationalization of the functional logs is currently under development. + +Nonetheless, note that currently, it is possible to insert one or several dictionaries to the JSON file resulting from the report node serialization. +Indeed, the JSON format expects a list of dictionaries, and the import allows to choose one dictionary among the provided list (see [import](../../user/configuration/import-export-parameters-default-value.md#import-export-parameters-default-value)). diff --git a/docs/user/functional_logs/import.md b/docs/user/functional_logs/import.md new file mode 100644 index 00000000000..e3fb0a7b560 --- /dev/null +++ b/docs/user/functional_logs/import.md @@ -0,0 +1,25 @@ +# Import + +The report node JSON file obtained from `ReportNode` serialization can be deserialized +- from a file `Path` +```java +ReportNode.read(path); +``` +- from an `InputStream` +```java +ReportNode.read(inputStream); +``` + +## Version +Currently, the only serialized version supported is the version 2.1. + +## Dictionaries +The two methods above look for a `default` dictionary in the `dictionaries` list. +If no `default` dictionary is found, the first entry of the list is taken. + +If several dictionaries are defined in the JSON file, we can choose which dictionary has to be used for deserialization by providing the dictionary name: +```java +ReportNode.read(path, dictionary); +ReportNode.read(inputStream, dictionary); +``` +Similarly, if the chosen dictionary cannot be found, the first entry of the list is taken. diff --git a/docs/user/functional_logs/index.md b/docs/user/functional_logs/index.md new file mode 100644 index 00000000000..d9ab7c9c5ea --- /dev/null +++ b/docs/user/functional_logs/index.md @@ -0,0 +1,108 @@ +# Functional logging + +```{toctree} +:hidden: +export.md +import.md +i18n.md +``` + +powsybl provides an API called `ReportNode` (and a default implementation called `ReportNodeImpl`). +In these functional logs we expect non-technical information useful for an end-user, about the various steps which occurred, what was unexpected, what caused an execution failure. + +Each `ReportNode` contains +- several values, indexed by their keys, +- a functional message, given by a message template, which may contain references to those values or to the values of one of its ancestors, +- a list of `ReportNode` children. + +Several `ReportNode` connected together through their children parameter define a tree. +Each `ReportNode` of such a tree refers to a `TreeContext`, which holds the context related to the tree. + +Each message template is identified by a key. +This key is used to build a dictionary for the tree, which is carried by the `TreeContext`. +This allows to serialize in an efficient way the tree (by not repeating the duplicated templates). + +When the children of a `ReportNode` is non-empty, the message of the corresponding `ReportNode` should summarize the children content. +The summarizing template should be succinct: 120 characters is an indicative limit for the message string length (once formatted). + +## Values +Only `float`, `double`, `int`, `float`, `boolean` and `String` values are supported in the API. + +Each value can be either typed or untyped. +A typed value is a value with a `String` parameter, which gives more insight to what the value is. +This allows a GUI displaying the reports to, for instance, +- insert a hyperlink to the voltage level visualization when a voltage level is mentioned, +- insert all the parameters of the equipment which is mentioned, +- insert a link to the file mentioned, +- round some values to a given precision given their type, +- change the unit of the corresponding displayed values, +- ... + +Some value types are provided by default, for instance: +- `TypedValue.TIMESTAMP`, +- `TypedValue.FILENAME`, +- `TypedValue.VOLTAGE_LEVEL`, +- `TypedValue.ACTIVE_POWER`, +- ... + +## Severity +A severity is a specific typed value. +It is a `String` of type `TypedValue.SEVERITY`. +The `ReportNode` builder API gives direct access to set this value. + +The following default severity values are provided: +- `TypedValue.TRACE_SEVERITY`, +- `TypedValue.DEBUG_SEVERITY`, +- `TypedValue.INFO_SEVERITY`, for reports about a functional state which may be of interest for the end user, +- `TypedValue.WARN_SEVERITY`, for reports about an unwanted state that can be recovered from, +- `TypedValue.ERROR_SEVERITY`, for reports about a requested operation that has not been completed, +- `TypedValue.DETAIL_SEVERITY`, for reports which are children of a `ReportNode` of severity `WARN` or `ERROR`. + +The number of `WARN` and `ERROR` reports should be as small as possible. +That is, similar detailed reports about an unwanted state should be grouped, if possible, as children of the same `ReportNode`. +This father `ReportNode` should carry the `WARN` or `ERROR` severity, whereas these `ReportNode` children should have a `DETAIL` severity. +This allows to give fine-grained information about an unwanted state, without overwhelming the end-user with numerous `WARN` or `ERROR` reports and while keeping a succinct message for each report. + +## Builders / adders +The builder API is accessed from a call to `ReportNode.newRootReportNode`. +It is used to build the root `ReportNode`. + +The adder API is accessed from a call to `reportNode.newReportNode()`. +It is used to add a child to an existing `ReportNode`. + +Both API share methods to provide the message template and the typed values: +- `withMessageTemplate(key, messageTemplate)`, +- `withUntypedValue(key, value)`, +- `withTypedValue(key, value, type)`, +- `withSeverity(severity)`. + +## Example +```java +ReportNode root = ReportNode.newRootReportNode() + .withMessageTemplate("importMessage", "Import file ${filename}") + .withTypedValue("filename", "file.txt", TypedValue.FILENAME) + .build(); + +ReportNode task1 = root.newReportNode() + .withMessageTemplate("task1", "Doing first task with double parameter ${parameter}") + .withUntypedValue("parameter", 4.2) + .withSeverity(TypedValue.INFO_SEVERITY) + .add(); + +ReportNode task2 = root.newReportNode() + .withMessageTemplate("task2", "Doing second task, reading ${count} elements, among which ${problematicCount} are problematic") + .withUntypedValue("count", 102) + .withUntypedValue("problematicCount", 2) + .withSeverity(TypedValue.WARN_SEVERITY) + .add(); + +// Supposing a list of problematic elements has been build, each containing an id and an active power values +for (ProblematicElement element : problematicElements) { + task2.newReportNode() + .withMessageTemplate("problematic", "Problematic element ${id} with active power ${activePower}") + .withTypedValue("id", element.getId(), TypedValue.ID) + .withTypedValue("activePower", element.getActivePower(), TypedValue.ACTIVE_POWER) + .withSeverity(TypedValue.DETAIL_SEVERITY) + .add(); +} +``` \ No newline at end of file diff --git a/docs/user/index.md b/docs/user/index.md index 9d4f29da08d..797a9b30708 100644 --- a/docs/user/index.md +++ b/docs/user/index.md @@ -8,5 +8,6 @@ maxdepth: 1 --- configuration/index.md itools/index.md +functional_logs/index.md ``` From 1ee8b3057e98ef1e6b67bb5b5c0387720f086875 Mon Sep 17 00:00:00 2001 From: rcourtier <129156292+rcourtier@users.noreply.github.com> Date: Tue, 4 Feb 2025 10:06:26 +0100 Subject: [PATCH 5/7] Rework condition to better identify boundary subsets (#3300) Signed-off-by: Romain Courtier --- .../com/powsybl/cgmes/model/CgmesSubset.java | 11 ++++-- .../powsybl/cgmes/model/CgmesSubsetTest.java | 37 +++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 cgmes/cgmes-model/src/test/java/com/powsybl/cgmes/model/CgmesSubsetTest.java diff --git a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesSubset.java b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesSubset.java index e65ed6da625..329f3f1684a 100644 --- a/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesSubset.java +++ b/cgmes/cgmes-model/src/main/java/com/powsybl/cgmes/model/CgmesSubset.java @@ -48,16 +48,17 @@ public boolean isValidName(String contextName) { @Override public boolean isValidName(String contextName) { return super.isValidName(contextName) - || EQUIPMENT.isValidName(contextName) && isBoundary(contextName); + || EQUIPMENT.isValidBaseName(contextName) && isBoundary(contextName); } }, TOPOLOGY_BOUNDARY("TP_BD") { @Override public boolean isValidName(String contextName) { return super.isValidName(contextName) - || TOPOLOGY.isValidName(contextName) && isBoundary(contextName); + || TOPOLOGY.isValidBaseName(contextName) && isBoundary(contextName); } - }, UNKNOWN("unknown") { + }, + UNKNOWN("unknown") { @Override public boolean isValidName(String contextName) { return false; @@ -82,6 +83,10 @@ public String getProfile() { } public boolean isValidName(String contextName) { + return isValidBaseName(contextName); + } + + private boolean isValidBaseName(String contextName) { return contextName.contains(validName0) || contextName.contains(validName1); } diff --git a/cgmes/cgmes-model/src/test/java/com/powsybl/cgmes/model/CgmesSubsetTest.java b/cgmes/cgmes-model/src/test/java/com/powsybl/cgmes/model/CgmesSubsetTest.java new file mode 100644 index 00000000000..65105a13e59 --- /dev/null +++ b/cgmes/cgmes-model/src/test/java/com/powsybl/cgmes/model/CgmesSubsetTest.java @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2025, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * SPDX-License-Identifier: MPL-2.0 + */ +package com.powsybl.cgmes.model; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +/** + * @author Romain Courtier {@literal } + */ +class CgmesSubsetTest { + + @Test + void isValidSubsetName() { + // Valid EQ name + assertTrue(CgmesSubset.EQUIPMENT.isValidName("20210325T1530Z_1D_BE_EQ_001.xml")); + assertTrue(CgmesSubset.EQUIPMENT.isValidName("IGM_EQ.xml")); + + // Valid EQ_BD name + assertTrue(CgmesSubset.EQUIPMENT_BOUNDARY.isValidName("20171002T0930Z_ENTSO-E_EQ_BD_2.xml")); + assertTrue(CgmesSubset.EQUIPMENT_BOUNDARY.isValidName("BOUNDARY_EQ.xml")); + + // Valid TP name + assertTrue(CgmesSubset.TOPOLOGY.isValidName("20210325T1530Z_1D_ASSEMBLED_TP_001.xml")); + assertTrue(CgmesSubset.TOPOLOGY.isValidName("IGM_TP.xml")); + + // Valid TP_BD name + assertTrue(CgmesSubset.TOPOLOGY_BOUNDARY.isValidName("20171002T0930Z_ENTSO-E_TP_BD_2.xml")); + assertTrue(CgmesSubset.TOPOLOGY_BOUNDARY.isValidName("BOUNDARY_TP.xml")); + } +} From b11f0784067dac13f93658cf36e3e1094ff9f0b4 Mon Sep 17 00:00:00 2001 From: alicecaron Date: Tue, 4 Feb 2025 10:49:49 +0100 Subject: [PATCH 6/7] Fix doc about CGMES export naming-strategy option (#3293) Signed-off-by: CARON Alice --- docs/grid_exchange_formats/cgmes/export.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/grid_exchange_formats/cgmes/export.md b/docs/grid_exchange_formats/cgmes/export.md index b6510362016..8178b8e6caa 100644 --- a/docs/grid_exchange_formats/cgmes/export.md +++ b/docs/grid_exchange_formats/cgmes/export.md @@ -350,13 +350,14 @@ Optional property that defines if power flows at boundary nodes are to be export **iidm.export.cgmes.export-power-flows-for-switches** Optional property that defines if power flows of switches are exported in the SV file. `true` by default. -**idm.export.cgmes.naming-strategy** +**iidm.export.cgmes.naming-strategy** Optional property that defines which naming strategy is used to transform IIDM identifiers to CGMES identifiers. It can be: - `identity`: CGMES IDs are the same as IIDM IDs. - `cgmes`: new CGMES IDs (new master resource identifiers, cim:mRID) are created for IIDM `Identifiables` if the IIDM IDs are not compliant with CGMES requirements. -- `cgmes-fix-all-invalid-ids`: ensures that all CGMES IDs in the export will comply with CGMES requirements, for IIDM `Identifiables`and also for its related objects (tap changers, operational limits, regulating controls, reactive capability outputVariables, ...). - Its default value is `identity`. +- `cgmes-fix-all-invalid-ids`: ensures that all CGMES IDs in the export will comply with CGMES requirements, for IIDM `Identifiables`and also for its related objects (tap changers, operational limits, regulating controls, reactive capability outputVariables, ...). + +Its default value is `identity`. **iidm.export.cgmes.uuid-namespace** Optional property related to the naming strategy specified in `iidm.export.cgmes.naming-strategy`. When new CGMES IDs have to be generated, a mechanism that ensures creation of new, stable identifiers based on IIDM IDs is used (see [RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122)). These new IDs are guaranteed to be unique inside a namespace given by this UUID. By default, it is the name-based UUID fo the text "powsybl.org" in the empty namespace. From c4d300ec54b7bb13d410254eb81e67594e07f7c0 Mon Sep 17 00:00:00 2001 From: Giovanni Ferrari Date: Tue, 4 Feb 2025 12:21:51 +0100 Subject: [PATCH 7/7] SetGeneratorToLocalRegulation: set same targetV on all locally regulating generators (#3287) * SetGeneratorToLocalRegulation : set same targetV on all locally regulating generators * SetGeneratorToLocalRegulation: fix bus detection * SceGeneratorToLocalRegulations: targetV determined as the closest value to VL nominal voltage among the regulating terminals Signed-off-by: Giovanni Ferrari --- .../SetGeneratorToLocalRegulation.java | 55 ++++++++--- .../SetGeneratorToLocalRegulationTest.java | 91 +++++++++++++++++-- 2 files changed, 125 insertions(+), 21 deletions(-) diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulation.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulation.java index c8849c26e25..f3a3244df69 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulation.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulation.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2024, RTE (http://www.rte-france.com) + * Copyright (c) 2024-2025, RTE (http://www.rte-france.com) * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -10,12 +10,15 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.computation.ComputationManager; import com.powsybl.iidm.modification.topology.NamingStrategy; +import com.powsybl.iidm.network.Bus; import com.powsybl.iidm.network.Generator; import com.powsybl.iidm.network.Network; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Comparator; import java.util.Objects; +import java.util.Optional; import static com.powsybl.iidm.modification.util.ModificationReports.generatorLocalRegulationReport; @@ -23,7 +26,8 @@ *

    Network modification to set a generator regulation to local instead of remote.

    *
      *
    • Generator's RegulatingTerminal is set to the generator's own Terminal.
    • - *
    • TargetV engineering unit value is adapted but the per unit value remains the same.
    • + *
    • In case other generators are already regulating locally on the same bus, targetV value is determined by being the closest value to the voltage level nominal voltage among the regulating terminals.
    • + *
    • If no other generator is regulating on the same bus, targetV engineering unit value is adapted to the voltage level nominal voltage, but the per unit value remains the same.
    • *
    * * @author Romain Courtier {@literal } @@ -47,7 +51,7 @@ public void apply(Network network, NamingStrategy namingStrategy, boolean throwE Generator generator = network.getGenerator(generatorId); if (generator == null) { logOrThrow(throwException, "Generator '" + generatorId + "' not found"); - } else if (!generator.getId().equals(generator.getRegulatingTerminal().getConnectable().getId())) { + } else if (!isGeneratorRegulatingLocally(generator)) { setLocalRegulation(generator, reportNode); } } @@ -58,27 +62,56 @@ public void apply(Network network, NamingStrategy namingStrategy, boolean throwE * @param reportNode The ReportNode for functional logs. */ private void setLocalRegulation(Generator generator, ReportNode reportNode) { - // Calculate the (new) local targetV which should be the same value in per unit as the (old) remote targetV - double remoteTargetV = generator.getTargetV(); - double remoteNominalV = generator.getRegulatingTerminal().getVoltageLevel().getNominalV(); - double localNominalV = generator.getTerminal().getVoltageLevel().getNominalV(); - double localTargetV = localNominalV * remoteTargetV / remoteNominalV; - // Change the regulation (local instead of remote) + generator.setTargetV(calculateTargetVoltage(generator)); generator.setRegulatingTerminal(generator.getTerminal()); - generator.setTargetV(localTargetV); // Notify the change LOG.info("Changed regulation for generator: {} to local instead of remote", generator.getId()); generatorLocalRegulationReport(reportNode, generator.getId()); } + private double calculateTargetVoltage(Generator generator) { + double localNominalV = generator.getTerminal().getVoltageLevel().getNominalV(); + Bus bus = generator.getTerminal().getBusView().getBus(); + if (bus != null) { + Optional referenceGenerator = getReferenceGenerator(bus, localNominalV); + if (referenceGenerator.isPresent()) { + double targetV = referenceGenerator.get().getTargetV(); + checkLocalGeneratorsWithWrongTargetV(bus, targetV); + return targetV; + } + } + // Calculate the (new) local targetV which should be the same value in per unit + // as the (old) remote targetV + double remoteTargetV = generator.getTargetV(); + double remoteNominalV = generator.getRegulatingTerminal().getVoltageLevel().getNominalV(); + return localNominalV * remoteTargetV / remoteNominalV; + } + + private boolean isGeneratorRegulatingLocally(Generator generator) { + return generator.getId().equals(generator.getRegulatingTerminal().getConnectable().getId()); + } + + private Optional getReferenceGenerator(Bus bus, double localNominalV) { + return bus.getGeneratorStream() + .filter(g -> !g.getId().equals(generatorId) && isGeneratorRegulatingLocally(g)) + .min(Comparator.comparing(g -> Math.abs(g.getTargetV() - localNominalV))); + } + + private void checkLocalGeneratorsWithWrongTargetV(Bus bus, double targetV) { + bus.getGeneratorStream() + .filter(g -> !g.getId().equals(generatorId) && isGeneratorRegulatingLocally(g) + && g.getTargetV() != targetV) + .forEach(gen -> LOG.warn("Generator {} has wrong target voltage {}", gen.getId(), gen.getTargetV())); + } + @Override public NetworkModificationImpact hasImpactOnNetwork(Network network) { Generator generator = network.getGenerator(generatorId); if (generator == null) { impact = NetworkModificationImpact.CANNOT_BE_APPLIED; - } else if (generator.getId().equals(generator.getRegulatingTerminal().getConnectable().getId())) { + } else if (isGeneratorRegulatingLocally(generator)) { impact = NetworkModificationImpact.NO_IMPACT_ON_NETWORK; } else { impact = DEFAULT_IMPACT; diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulationTest.java index 0a45433000f..f32f12d4254 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SetGeneratorToLocalRegulationTest.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2024, RTE (http://www.rte-france.com) + * Copyright (c) 2024-2025, RTE (http://www.rte-france.com) * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -37,13 +37,19 @@ void setLocalRegulationTest() throws IOException { assertNotNull(network); Generator gen1 = network.getGenerator("GEN1"); Generator gen2 = network.getGenerator("GEN2"); + Generator gen3 = network.getGenerator("GEN3"); + Generator gen4 = network.getGenerator("GEN4"); // Before applying the network modification, // gen1 regulates remotely at 1.05 pu (420 kV) and gen2 regulates locally at 1.05 pu (21 kV). assertNotEquals(gen1.getId(), gen1.getRegulatingTerminal().getConnectable().getId()); assertEquals(420.0, gen1.getTargetV()); assertEquals(gen2.getId(), gen2.getRegulatingTerminal().getConnectable().getId()); - assertEquals(21.0, gen2.getTargetV()); + assertEquals(25.0, gen2.getTargetV()); + assertEquals(gen3.getId(), gen3.getRegulatingTerminal().getConnectable().getId()); + assertEquals(22.0, gen3.getTargetV()); + assertNotEquals(gen4.getId(), gen4.getRegulatingTerminal().getConnectable().getId()); + assertEquals(21.0, gen4.getTargetV()); ReportNode reportNode = ReportNode.newRootReportNode() .withMessageTemplate("rootReportNode", "Set generators to local regulation").build(); @@ -53,19 +59,26 @@ void setLocalRegulationTest() throws IOException { PowsyblException e = assertThrows(PowsyblException.class, () -> modification.apply(network, true, reportNode)); assertEquals("Generator 'WRONG_ID' not found", e.getMessage()); - // After applying the network modification, both generators regulate locally at 1.05 pu (21 kV). + // After applying the network modification, GEN1 generator regulates locally at same targetV of GEN3 (closest to nominal V). assertEquals(gen1.getId(), gen1.getRegulatingTerminal().getConnectable().getId()); - assertEquals(21.0, gen1.getTargetV()); + assertEquals(22.0, gen1.getTargetV()); assertEquals(gen2.getId(), gen2.getRegulatingTerminal().getConnectable().getId()); - assertEquals(21.0, gen2.getTargetV()); + assertEquals(25.0, gen2.getTargetV()); + assertEquals(gen3.getId(), gen3.getRegulatingTerminal().getConnectable().getId()); + assertEquals(22.0, gen3.getTargetV()); - // Report node has been updated with the change for gen1 (no impact for gen2). + // Report node has been updated with the change for gen1. StringWriter sw = new StringWriter(); reportNode.print(sw); assertEquals(""" + Set generators to local regulation Changed regulation for generator GEN1 to local instead of remote """, TestUtil.normalizeLineSeparator(sw.toString())); + + new SetGeneratorToLocalRegulation("GEN4").apply(network, reportNode); + // After applying the network modification, GEN4 generator regulates locally at voltage level nominal V + assertEquals(gen4.getId(), gen4.getRegulatingTerminal().getConnectable().getId()); + assertEquals(420.0, gen4.getTargetV()); } @Test @@ -111,6 +124,10 @@ private Network createTestNetwork() { .setNominalV(20) .setTopologyKind(TopologyKind.NODE_BREAKER) .add(); + vl20.getNodeBreakerView().newBusbarSection() + .setId("BBS20") + .setNode(0) + .add(); vl20.newGenerator() .setId("GEN1") .setNode(3) @@ -122,6 +139,7 @@ private Network createTestNetwork() { .setTargetV(420) .setRegulatingTerminal(n.getBusbarSection("BBS").getTerminal()) .add(); + vl20.newGenerator() .setId("GEN2") .setNode(4) @@ -130,10 +148,34 @@ private Network createTestNetwork() { .setMaxP(200) .setTargetP(200) .setVoltageRegulatorOn(true) - .setTargetV(21) + .setTargetV(25) + // No regulatingTerminal set == use its own terminal for regulation + .add(); + + vl20.newGenerator() + .setId("GEN3") + .setNode(6) + .setEnergySource(EnergySource.NUCLEAR) + .setMinP(100) + .setMaxP(200) + .setTargetP(200) + .setVoltageRegulatorOn(true) + .setTargetV(22) // No regulatingTerminal set == use its own terminal for regulation .add(); + vl400.newGenerator() + .setId("GEN4") + .setNode(7) + .setEnergySource(EnergySource.NUCLEAR) + .setMinP(100) + .setMaxP(200) + .setTargetP(200) + .setVoltageRegulatorOn(true) + .setTargetV(21) + .setRegulatingTerminal(n.getBusbarSection("BBS20").getTerminal()) + .add(); + st.newTwoWindingsTransformer() .setId("T2W") .setName("T2W") @@ -150,10 +192,39 @@ private Network createTestNetwork() { .setNode2(2) .add(); - vl400.getNodeBreakerView().newInternalConnection().setNode1(0).setNode2(1); - vl20.getNodeBreakerView().newInternalConnection().setNode1(2).setNode2(3); - vl20.getNodeBreakerView().newInternalConnection().setNode1(2).setNode2(4); + createSwitch(vl20, "BBS20_DISCONNECTOR", SwitchKind.DISCONNECTOR, false, 0, 1); + createSwitch(vl20, "BBS20_BREAKER_1_2", SwitchKind.BREAKER, false, 1, 2); + createSwitch(vl20, "BBS20_BREAKER_2_3", SwitchKind.BREAKER, false, 2, 3); + createSwitch(vl20, "BBS20_BREAKER_3_4", SwitchKind.BREAKER, false, 3, 4); + createSwitch(vl20, "BBS20_BREAKER_1_4", SwitchKind.BREAKER, false, 1, 4); + createSwitch(vl20, "BBS20_BREAKER_2_6", SwitchKind.BREAKER, false, 2, 6); + + Load load1 = vl20.newLoad() + .setId("LD1") + .setLoadType(LoadType.UNDEFINED) + .setP0(80) + .setQ0(10) + .setNode(5) + .add(); + load1.getTerminal().setP(80.0).setQ(10.0); + + vl20.getNodeBreakerView().getBusbarSection("BBS20").getTerminal().getBusView().getBus() + .setV(224.6139) + .setAngle(2.2822); return n; } + + private void createSwitch(VoltageLevel vl, String id, SwitchKind kind, boolean open, int node1, int node2) { + vl.getNodeBreakerView().newSwitch() + .setId(id) + .setName(id) + .setKind(kind) + .setRetained(kind.equals(SwitchKind.BREAKER)) + .setOpen(open) + .setFictitious(false) + .setNode1(node1) + .setNode2(node2) + .add(); + } }