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 @@ - +