diff --git a/powerfactory/powerfactory-converter/src/main/java/com/powsybl/powerfactory/converter/TransformerConverter.java b/powerfactory/powerfactory-converter/src/main/java/com/powsybl/powerfactory/converter/TransformerConverter.java
index b5dcf83e017..7d1f97e8192 100644
--- a/powerfactory/powerfactory-converter/src/main/java/com/powsybl/powerfactory/converter/TransformerConverter.java
+++ b/powerfactory/powerfactory-converter/src/main/java/com/powsybl/powerfactory/converter/TransformerConverter.java
@@ -53,7 +53,7 @@ void createTwoWindings(DataObject elmTr2) {
RatedModel ratedModel = RatedModel.create(typTr2, highAtEnd1);
double nominalVoltageEnd2 = vl2.getNominalV();
- TransformerModel transformerModel = TransformerModel.create(typTr2, ratedModel.ratedS, nominalVoltageEnd2);
+ TransformerModel transformerModel = TransformerModel.create(elmTr2.getLocName(), typTr2, ratedModel.ratedS, nominalVoltageEnd2);
if (!tapChangerAtEnd1) {
// Structural ratio at end2 = ratedU2 / vn2
@@ -119,7 +119,7 @@ void createThreeWindings(DataObject elmTr3) {
double ratedU2 = ratedModel2.ratedU1;
double ratedU3 = ratedModel3.ratedU1;
- Transformer3WModel transformer3WModel = Transformer3WModel.create(typTr3, rated3WModel, vn0);
+ Transformer3WModel transformer3WModel = Transformer3WModel.create(elmTr3.getLocName(), typTr3, rated3WModel, vn0);
TransformerModel transformerModel1 = transformer3WModel.getEnd(windingTypeEnds.get(0));
TransformerModel transformerModel2 = transformer3WModel.getEnd(windingTypeEnds.get(1));
TransformerModel transformerModel3 = transformer3WModel.getEnd(windingTypeEnds.get(2));
@@ -266,10 +266,10 @@ private TransformerModel(Complex impedance, Complex shuntAdmittance) {
this.b = shuntAdmittance.getImaginary();
}
- private static TransformerModel create(DataObject typTr2, double ratedApparentPower, double nominalVoltageEnd2) {
+ private static TransformerModel create(String transformerId, DataObject typTr2, double ratedApparentPower, double nominalVoltageEnd2) {
Complex impedance = createImpedance("uktr", "pcutr", typTr2, ratedApparentPower, nominalVoltageEnd2);
- Complex shuntAdmittance = createShuntAdmittance("curmg", "pfe", typTr2, ratedApparentPower, nominalVoltageEnd2);
+ Complex shuntAdmittance = createShuntAdmittance(transformerId, "curmg", "pfe", typTr2, ratedApparentPower, nominalVoltageEnd2);
Complex proportion = createProportion("itrdr", "itrdl", typTr2);
if (isProportionDefined(proportion) && shuntAdmittance.abs() != 0.0) {
@@ -286,8 +286,12 @@ private static Complex createImpedance(String uktrT, String pcutrT, DataObject t
return createImpedanceFromMeasures(uktr, pcutr, ratedApparentPower, nominalVoltage);
}
- private static Complex createShuntAdmittance(String curmgT, String pfeT, DataObject typTr2, double ratedApparentPower, double nominalVoltage) {
+ private static Complex createShuntAdmittance(String transformerId, String curmgT, String pfeT, DataObject typTr2, double ratedApparentPower, double nominalVoltage) {
float curmg = typTr2.getFloatAttributeValue(curmgT);
+ if (curmg == 0) {
+ LOGGER.warn("{} of transformer '{}' is zero, skipping shunt admittance", transformerId, curmgT);
+ return Complex.ZERO;
+ }
float pfe = typTr2.getFloatAttributeValue(pfeT);
return createShuntAdmittanceFromMeasures(curmg, pfe, ratedApparentPower, nominalVoltage);
@@ -384,7 +388,7 @@ private TransformerModel getEnd(WindingType windingType) {
return transformerModels.get(windingType);
}
- private static Transformer3WModel create(DataObject typTr3, Rated3WModel rated3WModel, double nominalVoltage) {
+ private static Transformer3WModel create(String transformerId, DataObject typTr3, Rated3WModel rated3WModel, double nominalVoltage) {
double ratedSH = rated3WModel.getEnd(WindingType.HIGH).ratedS;
double ratedSM = rated3WModel.getEnd(WindingType.MEDIUM).ratedS;
double ratedSL = rated3WModel.getEnd(WindingType.LOW).ratedS;
@@ -399,7 +403,7 @@ private static Transformer3WModel create(DataObject typTr3, Rated3WModel rated3W
Complex zM = zHM.add(zML).subtract(zLH).multiply(0.5);
Complex zL = zML.add(zLH).subtract(zHM).multiply(0.5);
- Complex ysh = TransformerModel.createShuntAdmittance("curm3", "pfe", typTr3, ratedSH, nominalVoltage);
+ Complex ysh = TransformerModel.createShuntAdmittance(transformerId, "curm3", "pfe", typTr3, ratedSH, nominalVoltage);
int i3loc = typTr3.findIntAttributeValue("i3loc").orElse(0);
Complex yshH = assignShuntAdmittanceToWinding(ysh, i3loc, WindingType.HIGH);
diff --git a/powerfactory/powerfactory-converter/src/test/resources/CapabilityCurve.xiidm b/powerfactory/powerfactory-converter/src/test/resources/CapabilityCurve.xiidm
index ba3fc32486a..2346853f78a 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/CapabilityCurve.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/CapabilityCurve.xiidm
@@ -39,7 +39,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Slack_bustp.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Slack_bustp.xiidm
index f11c9558921..acfe2b2a4d6 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Slack_bustp.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Slack_bustp.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Slack_ip_ctrl.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Slack_ip_ctrl.xiidm
index 1c3d00d35e6..d22f60f6151 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Slack_ip_ctrl.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Slack_ip_ctrl.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-angle.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-angle.xiidm
index 42b721446fc..4f327d42c22 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-angle.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-angle.xiidm
@@ -32,7 +32,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-voltage.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-voltage.xiidm
index eb2fabd5e11..26ee6d50041 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-voltage.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Switches-missing-voltage.xiidm
@@ -32,7 +32,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Switches-negative-voltage.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Switches-negative-voltage.xiidm
index ed8079ff6b8..f2710802225 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Switches-negative-voltage.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Switches-negative-voltage.xiidm
@@ -32,7 +32,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Switches-without-bus.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Switches-without-bus.xiidm
index c4215dbe9dd..73a76786c37 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Switches-without-bus.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Switches-without-bus.xiidm
@@ -32,7 +32,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Switches.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Switches.xiidm
index 8c2c91037cf..f702e3bbf3f 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Switches.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Switches.xiidm
@@ -32,7 +32,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_solved.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_solved.xiidm
index cbb9e65d317..c259988db5a 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_solved.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_solved.xiidm
@@ -39,7 +39,7 @@
-
+
@@ -100,7 +100,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1.xiidm
index 5238e96e6d6..5c10f22bb89 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1.xiidm
@@ -69,10 +69,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding12.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding12.xiidm
index cc2bc7288a8..e8e89f4ddad 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding12.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding12.xiidm
@@ -69,10 +69,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_complete.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_complete.xiidm
index 535ebe4f4d4..e5beb4b8106 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_complete.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_complete.xiidm
@@ -61,10 +61,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_ratio.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_ratio.xiidm
index f23f142ec32..cddc1bf5278 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_ratio.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding1_ratio.xiidm
@@ -69,10 +69,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding2.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding2.xiidm
index 1cb27cd6f70..2ac2a3327b3 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding2.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding2.xiidm
@@ -69,10 +69,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding3.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding3.xiidm
index 9159a773b9b..9f2b0d3a817 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding3.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeMIB_T3W_phase_winding3.xiidm
@@ -69,10 +69,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ThreeWindingsTransformerWinding1Ratio.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ThreeWindingsTransformerWinding1Ratio.xiidm
index ed4514555f1..f20fd4e543d 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ThreeWindingsTransformerWinding1Ratio.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ThreeWindingsTransformerWinding1Ratio.xiidm
@@ -61,10 +61,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral-with-mTaps.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral-with-mTaps.xiidm
index feefc82ef28..313b891c4e3 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral-with-mTaps.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral-with-mTaps.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral.xiidm
index 0cd288f4437..35523853956 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-Neutral.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-with-mTaps.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-with-mTaps.xiidm
index 8c93a5a10ae..de1589383d1 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-with-mTaps.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase-with-mTaps.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase.xiidm
index 95add0087dc..58c65f22c06 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-Phase.xiidm
@@ -29,7 +29,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl-Non-Neutral.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl-Non-Neutral.xiidm
index c4685efcbf2..3df809fddca 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl-Non-Neutral.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl-Non-Neutral.xiidm
@@ -31,7 +31,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl.xiidm
index 03ba206c375..d562227b92f 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VhVl.xiidm
@@ -31,7 +31,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh-Non-Neutral.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh-Non-Neutral.xiidm
index 1491447e630..306820e7678 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh-Non-Neutral.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh-Non-Neutral.xiidm
@@ -31,7 +31,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh.xiidm b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh.xiidm
index c9a33741ee7..b3432b931da 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/Transformer-VlVh.xiidm
@@ -31,7 +31,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/TransformersWithPhaseAngleClock.xiidm b/powerfactory/powerfactory-converter/src/test/resources/TransformersWithPhaseAngleClock.xiidm
index 240873839fd..3b2e55d5804 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/TransformersWithPhaseAngleClock.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/TransformersWithPhaseAngleClock.xiidm
@@ -61,10 +61,10 @@
-
-
-
-
+
+
+
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/VoltageLevelsAndSubstations.xiidm b/powerfactory/powerfactory-converter/src/test/resources/VoltageLevelsAndSubstations.xiidm
index 14462ca1cec..9fca5fab9b3 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/VoltageLevelsAndSubstations.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/VoltageLevelsAndSubstations.xiidm
@@ -31,7 +31,7 @@
-
+
diff --git a/powerfactory/powerfactory-converter/src/test/resources/ieee14.xiidm b/powerfactory/powerfactory-converter/src/test/resources/ieee14.xiidm
index a0c5dba5913..be44c060d89 100644
--- a/powerfactory/powerfactory-converter/src/test/resources/ieee14.xiidm
+++ b/powerfactory/powerfactory-converter/src/test/resources/ieee14.xiidm
@@ -129,7 +129,7 @@
-
+
@@ -293,7 +293,7 @@
-
+
@@ -481,7 +481,7 @@
-
+