@enervance/insight-cim-model 0.0.176 → 0.0.178

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/constants/cim-class-names.d.ts +5 -1
  2. package/dist/constants/cim-class-names.js +5 -1
  3. package/dist/constants/cim-class-names.js.map +1 -1
  4. package/dist/constants/rdf-xml.d.ts +2 -0
  5. package/dist/constants/rdf-xml.js +2 -0
  6. package/dist/constants/rdf-xml.js.map +1 -1
  7. package/dist/converter/integral7/config/integral-prefix.d.ts +4 -2
  8. package/dist/converter/integral7/config/integral-prefix.js +5 -3
  9. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  10. package/dist/converter/integral7/converter.integral7.d.ts +6 -6
  11. package/dist/converter/integral7/converter.integral7.js +486 -303
  12. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  13. package/dist/converter/integral7/dl-convert/data-manager.d.ts +1 -1
  14. package/dist/converter/integral7/dl-convert/data-manager.js +41 -3
  15. package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
  16. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +1 -1
  17. package/dist/converter/integral7/dl-convert/dl-converter-i7.js +3 -2
  18. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  19. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js +1 -1
  20. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js.map +1 -1
  21. package/dist/converter/integral7/dl-convert/executor.d.ts +1 -0
  22. package/dist/converter/integral7/dl-convert/executor.js +145 -143
  23. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  24. package/dist/converter/integral7/impedance.utils.d.ts +28 -0
  25. package/dist/converter/integral7/impedance.utils.js +144 -0
  26. package/dist/converter/integral7/impedance.utils.js.map +1 -0
  27. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +1 -0
  28. package/dist/converter/integral7/interface-i7/export-frame-i7.js +3 -0
  29. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  30. package/dist/converter/integral7/model/interfaces.d.ts +1 -1
  31. package/dist/converter/integral7/utils-cgmes-export.js +2 -0
  32. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  33. package/dist/converter/integral7/utils-trafo3w.d.ts +8 -25
  34. package/dist/converter/integral7/utils-trafo3w.js +114 -127
  35. package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
  36. package/dist/converter/integral7/utils.d.ts +6 -5
  37. package/dist/converter/integral7/utils.js +222 -63
  38. package/dist/converter/integral7/utils.js.map +1 -1
  39. package/dist/etl/etl-neplan/etl-neplan-geo.js +2 -2
  40. package/dist/etl/etl-neplan/etl-neplan-geo.js.map +1 -1
  41. package/dist/grid-validation/grid-validation.js +2 -2
  42. package/dist/grid-validation/grid-validation.js.map +1 -1
  43. package/dist/interfaces/model/core/IACDCTerminal.d.ts +3 -0
  44. package/dist/interfaces/model/core/ITerminal.d.ts +0 -3
  45. package/dist/model/core/ACDCTerminal.d.ts +3 -0
  46. package/dist/model/core/ACDCTerminal.js +4 -0
  47. package/dist/model/core/ACDCTerminal.js.map +1 -1
  48. package/dist/model/core/ConductingEquipment.d.ts +1 -0
  49. package/dist/model/core/ConductingEquipment.js +5 -2
  50. package/dist/model/core/ConductingEquipment.js.map +1 -1
  51. package/dist/model/core/Curve.js +16 -18
  52. package/dist/model/core/Curve.js.map +1 -1
  53. package/dist/model/core/Equipment.js +3 -3
  54. package/dist/model/core/Equipment.js.map +1 -1
  55. package/dist/model/core/Terminal.d.ts +0 -3
  56. package/dist/model/core/Terminal.js +1 -5
  57. package/dist/model/core/Terminal.js.map +1 -1
  58. package/dist/model/dc/ACDCConverter.js.map +1 -1
  59. package/dist/model/dc/DCLine.js +17 -17
  60. package/dist/model/dc/DCLineSegment.js +25 -25
  61. package/dist/model/dc/VsCapabilityCurve.d.ts +10 -0
  62. package/dist/model/dc/VsCapabilityCurve.js +32 -0
  63. package/dist/model/dc/VsCapabilityCurve.js.map +1 -0
  64. package/dist/model/dc/VsConverter.d.ts +2 -0
  65. package/dist/model/dc/VsConverter.js.map +1 -1
  66. package/dist/model/extensions/enervance/assetinfo/EVWireInfo.js +2 -2
  67. package/dist/model/extensions/enervance/assetinfo/EVWireInfo.js.map +1 -1
  68. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.d.ts +15 -0
  69. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.js +29 -0
  70. package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.js.map +1 -1
  71. package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
  72. package/dist/model/loadmodel/LoadArea.js +21 -21
  73. package/dist/model/loadmodel/SubLoadArea.js +22 -22
  74. package/dist/model/operationallimits/OperationalLimitSet.d.ts +3 -3
  75. package/dist/model/operationallimits/OperationalLimitSet.js +3 -3
  76. package/dist/model/operationallimits/OperationalLimitSet.js.map +1 -1
  77. package/dist/model/operationallimits/OperationalLimitType.d.ts +1 -1
  78. package/dist/model/operationallimits/OperationalLimitType.js +3 -3
  79. package/dist/model/operationallimits/OperationalLimitType.js.map +1 -1
  80. package/dist/model-container/model/ModelContainer.d.ts +5 -1
  81. package/dist/model-container/model/ModelContainer.js +18 -2
  82. package/dist/model-container/model/ModelContainer.js.map +1 -1
  83. package/dist/util/collection/util-graph2tree.d.ts +3 -0
  84. package/dist/util/collection/util-graph2tree.js +102 -19
  85. package/dist/util/collection/util-graph2tree.js.map +1 -1
  86. package/dist/util/util-create.d.ts +2 -1
  87. package/dist/util/util-create.js +163 -14
  88. package/dist/util/util-create.js.map +1 -1
  89. package/dist/utils2/model.modification.utils.js +2 -2
  90. package/dist/utils2/model.modification.utils.js.map +1 -1
  91. package/package.json +2 -2
@@ -335,24 +335,26 @@ function getSchaltgruppeAngleClock(schaltgr, endNumber) {
335
335
  }
336
336
  }
337
337
  exports.getSchaltgruppeAngleClock = getSchaltgruppeAngleClock;
338
- function getPkrTrafo(i7Data, powerTransformerInfo, suffix) {
339
- const prop = `pkr${suffix}`; // fix für 2W Trafos
338
+ function getPkrTrafo(i7Data, powerTransformerInfo, suffix, isTrafo3W) {
339
+ const prop = `pkr${isTrafo3W ? suffix : ''}`; // fix für 2W Trafos
340
+ const propInfo = `pkr${suffix}`;
340
341
  if (i7Data[prop] && i7Data[prop] !== 0) {
341
342
  return i7Data[prop];
342
343
  }
343
- else if (powerTransformerInfo && powerTransformerInfo[prop] && powerTransformerInfo[prop] !== 0) {
344
- return powerTransformerInfo[prop];
344
+ else if (powerTransformerInfo && powerTransformerInfo[propInfo] && powerTransformerInfo[propInfo] !== 0) {
345
+ return powerTransformerInfo[propInfo];
345
346
  }
346
347
  return 0;
347
348
  }
348
349
  exports.getPkrTrafo = getPkrTrafo;
349
- function getUkrTrafo(i7Data, powerTransformerInfo, suffix) {
350
- const prop = `ukr${suffix}`; // fix für 2W Trafos
350
+ function getUkrTrafo(i7Data, powerTransformerInfo, suffix, isTrafo3W) {
351
+ const prop = `ukr${isTrafo3W ? suffix : ''}`; // fix für 2W Trafos
352
+ const propInfo = `ukr${suffix}`;
351
353
  if (i7Data[prop] && i7Data[prop] !== 0) {
352
354
  return i7Data[prop];
353
355
  }
354
- else if (powerTransformerInfo && powerTransformerInfo[prop] && powerTransformerInfo[prop] !== 0) {
355
- return powerTransformerInfo[prop];
356
+ else if (powerTransformerInfo && powerTransformerInfo[propInfo] && powerTransformerInfo[propInfo] !== 0) {
357
+ return powerTransformerInfo[propInfo];
356
358
  }
357
359
  return 0;
358
360
  }
@@ -369,6 +371,9 @@ function getSrTrafo(i7Data, powerTransformerInfo, endNumber, isTrafo3W) {
369
371
  return transformerEndInfo.ratedS.value;
370
372
  }
371
373
  }
374
+ else if (powerTransformerInfo[prop] && powerTransformerInfo[prop] !== 0) {
375
+ return powerTransformerInfo[prop];
376
+ }
372
377
  }
373
378
  return undefined;
374
379
  }
@@ -385,6 +390,9 @@ function getUrTrafo(i7Data, powerTransformerInfo, endNumber) {
385
390
  return transformerEndInfo.ratedU.value;
386
391
  }
387
392
  }
393
+ else if (powerTransformerInfo[prop] && powerTransformerInfo[prop] !== 0) {
394
+ return powerTransformerInfo[prop];
395
+ }
388
396
  }
389
397
  return 0;
390
398
  }
@@ -462,14 +470,16 @@ exports.calculateRatedIdc = calculateRatedIdc;
462
470
  /**
463
471
  * @param ur Nennspannung in kV
464
472
  * @param ukr Kurzschlussspannung in %
465
- * @param sr Bemessungsscheinleistung in MVA */
466
- function calculateX(ur, ukr, sr) {
473
+ * @param sr Bemessungsscheinleistung in MVA
474
+ * @param r Wirkwiderstand in Ohm*/
475
+ function calculateX(ur, ukr, sr, r) {
467
476
  const conversion_factor_ur = Math.pow(10, 3);
468
477
  const conversion_factor_sr = Math.pow(10, 6);
469
478
  const conversion_factor_ukr = Math.pow(10, -2);
470
479
  let ret_val = undefined;
471
480
  try {
472
- ret_val = (ukr * conversion_factor_ukr * ur * conversion_factor_ur) / (sr * conversion_factor_sr / (ur * conversion_factor_ur));
481
+ ret_val = Math.sqrt(Math.pow((ukr * conversion_factor_ukr) * (Math.pow(ur * conversion_factor_ur, 2) / (sr * conversion_factor_sr)), 2) - Math.pow(r, 2));
482
+ //ret_val = (ukr * conversion_factor_ukr * ur * conversion_factor_ur) / (sr * conversion_factor_sr / (ur * conversion_factor_ur));
473
483
  }
474
484
  catch (e) {
475
485
  ret_val = undefined;
@@ -798,16 +808,19 @@ function getActiveReactivePower(i7Data, mf) {
798
808
  reactivePowerMf = reactivePower * mf_q0_kap;
799
809
  }
800
810
  }
801
- else if ((0, parser_utils_1.isNumericI7)(p0) && ((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap))) {
811
+ else if ((0, parser_utils_1.isNumericI7)(p0) && (0, parser_utils_1.isNumericI7)(q0Ind) && (0, parser_utils_1.isNumericI7)(s0) && !(0, parser_utils_1.isNumericI7)(q0Kap) && !(0, parser_utils_1.isNumericI7)(cosPhi)) {
812
+ //p, qind and s is given
802
813
  activePower = p0;
803
- activePowerMf = p0 * mf_p;
804
- if (q0Ind && !q0Kap) {
814
+ if (Math.pow(s0, 2) === Math.pow(p0, 2) + Math.pow(q0Ind, 2)) {
805
815
  reactivePower = q0Ind;
806
- reactivePowerMf = reactivePower * mf_q0_ind;
807
816
  }
808
817
  else {
809
- reactivePower = q0Kap * -1;
810
- reactivePowerMf = reactivePower * mf_q0_kap;
818
+ reactivePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(activePower, 2));
819
+ reactivePower = ((0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ind) || (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ind) === undefined) ? reactivePower : reactivePower * -1;
820
+ }
821
+ if (mf) {
822
+ activePowerMf = activePower * mf_p;
823
+ reactivePowerMf = reactivePower * mf_p; //If p0 and cosphi is given then reactive power is directly proportional to mf_p.
811
824
  }
812
825
  }
813
826
  else if ((0, parser_utils_1.isNumericI7)(p0) && (0, parser_utils_1.isNumericI7)(q0Ind) && (0, parser_utils_1.isNumericI7)(q0Kap)) {
@@ -816,6 +829,18 @@ function getActiveReactivePower(i7Data, mf) {
816
829
  reactivePower = q0Ind - q0Kap;
817
830
  reactivePowerMf = q0Ind * mf_q0_ind - q0Kap * mf_q0_kap;
818
831
  }
832
+ else if ((0, parser_utils_1.isNumericI7)(p0) && ((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap))) {
833
+ activePower = p0;
834
+ activePowerMf = p0 * mf_p;
835
+ if (q0Ind && !q0Kap) {
836
+ reactivePower = q0Ind;
837
+ reactivePowerMf = reactivePower * mf_q0_ind;
838
+ }
839
+ else {
840
+ reactivePower = q0Kap * -1;
841
+ reactivePowerMf = reactivePower * mf_q0_kap;
842
+ }
843
+ }
819
844
  else if (((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap)) && (0, parser_utils_1.isNumericI7)(cosPhi)) {
820
845
  if (q0Ind && q0Kap && (flagInd || flagInd === undefined)) {
821
846
  reactivePower = q0Ind - q0Kap;
@@ -1272,19 +1297,30 @@ exports.createRegulatingControl = createRegulatingControl;
1272
1297
  * @param baseVoltage rated voltages of the powertransformer endings.
1273
1298
  * */
1274
1299
  function calculateComplexZeroSequImpedanzenTrafo(scZeroSeqImp, idleZeroSeqImp, baseVoltage, groundingCount, powerTransformer) {
1275
- var _a, _b, _c, _d, _e, _f;
1300
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
1301
+ if (powerTransformer.getUUID() === 'ded62507-64b1-4828-88bb-da99d9f7fd45') {
1302
+ const stop = true;
1303
+ }
1276
1304
  const conversion_factor_ur = Math.pow(10, 3);
1277
1305
  const ur1 = baseVoltage[0];
1278
1306
  const ur2 = baseVoltage[1];
1279
1307
  const ur3 = baseVoltage[2];
1280
- let r00r1 = idleZeroSeqImp[0];
1281
- let x00r1 = idleZeroSeqImp[1];
1282
- let r00r2 = idleZeroSeqImp[2];
1283
- let x00r2 = idleZeroSeqImp[3];
1284
- let r0kr1 = scZeroSeqImp[0];
1285
- let x0kr1 = scZeroSeqImp[1];
1286
- let r0kr2 = scZeroSeqImp[2]; //not needed. overdetermined eq
1287
- let x0kr2 = scZeroSeqImp[3]; //not needed. overdetermined eq
1308
+ let r00r1 = (0, parser_utils_1.isNumericI7)(idleZeroSeqImp[0]) ? (0, parser_utils_1.convertToNumberI7)(idleZeroSeqImp[0]) : 0;
1309
+ let r00r1_undef = idleZeroSeqImp[0] == undefined ? true : false;
1310
+ let x00r1 = (0, parser_utils_1.isNumericI7)(idleZeroSeqImp[1]) ? (0, parser_utils_1.convertToNumberI7)(idleZeroSeqImp[1]) : 0;
1311
+ let x00r1_undef = idleZeroSeqImp[1] == undefined ? true : false;
1312
+ let r00r2 = (0, parser_utils_1.isNumericI7)(idleZeroSeqImp[2]) ? (0, parser_utils_1.convertToNumberI7)(idleZeroSeqImp[2]) : 0;
1313
+ let r00r2_undef = idleZeroSeqImp[2] == undefined ? true : false;
1314
+ let x00r2 = (0, parser_utils_1.isNumericI7)(idleZeroSeqImp[3]) ? (0, parser_utils_1.convertToNumberI7)(idleZeroSeqImp[3]) : 0;
1315
+ let x00r2_undef = idleZeroSeqImp[3] == undefined ? true : false;
1316
+ let r0kr1 = (0, parser_utils_1.isNumericI7)(scZeroSeqImp[0]) ? (0, parser_utils_1.convertToNumberI7)(scZeroSeqImp[0]) : 0;
1317
+ let r0kr1_undef = scZeroSeqImp[0] == undefined ? true : false;
1318
+ let x0kr1 = (0, parser_utils_1.isNumericI7)(scZeroSeqImp[1]) ? (0, parser_utils_1.convertToNumberI7)(scZeroSeqImp[1]) : 0;
1319
+ let x0kr1_undef = scZeroSeqImp[1] == undefined ? true : false;
1320
+ let r0kr2 = (0, parser_utils_1.isNumericI7)(scZeroSeqImp[2]) ? (0, parser_utils_1.convertToNumberI7)(scZeroSeqImp[2]) : 0; //not needed. overdetermined eq
1321
+ let r0kr2_undef = scZeroSeqImp[2] == undefined ? true : false;
1322
+ let x0kr2 = (0, parser_utils_1.isNumericI7)(scZeroSeqImp[3]) ? (0, parser_utils_1.convertToNumberI7)(scZeroSeqImp[3]) : 0; //not needed. overdetermined eq
1323
+ let x0kr2_undef = scZeroSeqImp[3] == undefined ? true : false;
1288
1324
  let z01 = new complex_js_1.default(r00r1, x00r1);
1289
1325
  let z02 = new complex_js_1.default(r00r2, x00r2);
1290
1326
  let z01k = new complex_js_1.default(r0kr1, x0kr1);
@@ -1301,83 +1337,206 @@ function calculateComplexZeroSequImpedanzenTrafo(scZeroSeqImp, idleZeroSeqImp, b
1301
1337
  let ret_val = undefined;
1302
1338
  switch (baseVoltage.length) {
1303
1339
  case (2): { //two-winding-powertransformer
1304
- if (ur1 >= ur2) {
1305
- impedanz['r01'] = r00r1;
1306
- impedanz['r02'] = 0;
1307
- impedanz['r03'] = undefined;
1308
- impedanz['x01'] = x00r1;
1309
- impedanz['x02'] = 0;
1310
- impedanz['x03'] = undefined;
1311
- }
1312
- else {
1313
- impedanz['r01'] = 0;
1314
- impedanz['r02'] = r00r2;
1315
- impedanz['r03'] = undefined;
1316
- impedanz['x01'] = 0;
1317
- impedanz['x02'] = x00r2;
1318
- impedanz['x03'] = undefined;
1319
- }
1320
- ret_val = impedanz;
1321
- break;
1322
- }
1323
- case (3): { //three-winding-powertransformer
1324
1340
  switch (groundingCount) {
1325
1341
  case (0): {
1342
+ if (ur1 >= ur2) {
1343
+ impedanz['r01'] = (_a = powerTransformer.powerTransformerEnd[0]) === null || _a === void 0 ? void 0 : _a.r;
1344
+ impedanz['r02'] = 0;
1345
+ impedanz['r03'] = undefined;
1346
+ impedanz['x01'] = (_b = powerTransformer.powerTransformerEnd[0]) === null || _b === void 0 ? void 0 : _b.x;
1347
+ impedanz['x02'] = 0;
1348
+ impedanz['x03'] = undefined;
1349
+ }
1350
+ else {
1351
+ impedanz['r01'] = 0;
1352
+ impedanz['r02'] = (_c = powerTransformer.powerTransformerEnd[1]) === null || _c === void 0 ? void 0 : _c.r;
1353
+ impedanz['r03'] = undefined;
1354
+ impedanz['x01'] = 0;
1355
+ impedanz['x02'] = (_d = powerTransformer.powerTransformerEnd[1]) === null || _d === void 0 ? void 0 : _d.x;
1356
+ impedanz['x03'] = undefined;
1357
+ }
1326
1358
  break;
1327
1359
  }
1328
1360
  case (1): {
1361
+ if (ur1 >= ur2) {
1362
+ impedanz['r01'] = r00r1;
1363
+ impedanz['r02'] = 0;
1364
+ impedanz['r03'] = undefined;
1365
+ impedanz['x01'] = x00r1;
1366
+ impedanz['x02'] = 0;
1367
+ impedanz['x03'] = undefined;
1368
+ }
1369
+ else {
1370
+ impedanz['r01'] = 0;
1371
+ impedanz['r02'] = r00r2;
1372
+ impedanz['r03'] = undefined;
1373
+ impedanz['x01'] = 0;
1374
+ impedanz['x02'] = x00r2;
1375
+ impedanz['x03'] = undefined;
1376
+ }
1329
1377
  break;
1330
1378
  }
1331
1379
  case (2): {
1380
+ //recover missing measured impedances if possible
1332
1381
  if (z01k.mul(z02) != z02k.mul(z01)) {
1333
- if (r00r1 == undefined || x00r1 == undefined) { //z01 not given
1382
+ if (r00r1_undef && x00r1_undef) { //z01 not given
1334
1383
  z01 = (z01k.mul(z02)).div(z02k);
1335
1384
  r00r1 = z01.re;
1336
1385
  x00r1 = z01.im;
1337
1386
  incidents++;
1338
1387
  }
1339
- if (r00r2 == undefined || x00r2 == undefined) { //z02 not given
1388
+ if (r00r2_undef && x00r2_undef) { //z02 not given
1340
1389
  z02 = (z01.mul(z02k)).div(z01k);
1341
1390
  r00r2 = z02.re;
1342
1391
  x00r2 = z02.im;
1343
1392
  incidents++;
1344
1393
  }
1345
- if (r0kr1 == undefined || x0kr1 == undefined) { //z01k not given
1394
+ if (r0kr1_undef && x0kr1_undef) { //z01k not given
1346
1395
  z01k = (z01.mul(z02k)).div(z02);
1347
1396
  r0kr1 = z01k.re;
1348
1397
  x0kr1 = z01k.im;
1349
1398
  incidents++;
1350
1399
  }
1351
- if (r0kr2 == undefined || x0kr2 == undefined) { //z02k not given
1400
+ if (r0kr2_undef && x0kr2_undef) { //z02k not given
1352
1401
  z02k = (z01k.mul(z02)).div(z01);
1353
1402
  r0kr2 = z02k.re;
1354
1403
  x0kr2 = z02k.im;
1355
1404
  incidents++;
1356
1405
  }
1357
1406
  }
1358
- const z01OHM = new complex_js_1.default(r00r1, x00r1);
1359
- const z02OHM = new complex_js_1.default(r00r2, x00r2).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1360
- const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
1361
- const ztOHM = (z02OHM.mul(z01OHM.sub(zsOHM))).sqrt();
1362
- const z_osOHM = z01OHM.sub(ztOHM);
1363
- const z_msOHM = z02OHM.sub(ztOHM).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1364
- const z_usOHM = ztOHM.mul((Math.pow(ur3 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1407
+ //calculate impedances for conversion
1408
+ if (ur1 >= ur2) {
1409
+ const z01OHM = new complex_js_1.default(r00r1, x00r1);
1410
+ const z02OHM = new complex_js_1.default(r00r2, x00r2).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1411
+ const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
1412
+ const z_osOHM = z01OHM.sub(zsOHM);
1413
+ const z_msOHM = z02OHM.sub(zsOHM).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1414
+ impedanz['r01'] = (0, parser_utils_1.isNumericI7)(z_osOHM.re) ? z_osOHM.re : 0;
1415
+ impedanz['r02'] = (0, parser_utils_1.isNumericI7)(z_msOHM.re) ? z_msOHM.re : 0;
1416
+ impedanz['r03'] = undefined;
1417
+ impedanz['x01'] = (0, parser_utils_1.isNumericI7)(z_osOHM.im) ? z_osOHM.im : 0;
1418
+ impedanz['x02'] = (0, parser_utils_1.isNumericI7)(z_msOHM.im) ? z_msOHM.im : 0;
1419
+ impedanz['x03'] = undefined;
1420
+ }
1421
+ else {
1422
+ const z01OHM = new complex_js_1.default(r00r2, x00r2);
1423
+ const z02OHM = new complex_js_1.default(r00r1, x00r1).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1424
+ const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
1425
+ const z_osOHM = z02OHM.sub(zsOHM).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1426
+ const z_msOHM = z01OHM.sub(zsOHM);
1427
+ impedanz['r01'] = (0, parser_utils_1.isNumericI7)(z_msOHM.re) ? z_msOHM.re : 0;
1428
+ impedanz['r02'] = (0, parser_utils_1.isNumericI7)(z_osOHM.re) ? z_osOHM.re : 0;
1429
+ impedanz['r03'] = undefined;
1430
+ impedanz['x01'] = (0, parser_utils_1.isNumericI7)(z_msOHM.im) ? z_msOHM.im : 0;
1431
+ impedanz['x02'] = (0, parser_utils_1.isNumericI7)(z_osOHM.im) ? z_osOHM.im : 0;
1432
+ impedanz['x03'] = undefined;
1433
+ }
1434
+ break;
1435
+ }
1436
+ }
1437
+ ret_val = impedanz;
1438
+ break;
1439
+ }
1440
+ case (3): { //three-winding-powertransformer
1441
+ switch (groundingCount) {
1442
+ case (0): {
1443
+ impedanz['r01'] = (_e = powerTransformer.powerTransformerEnd[0]) === null || _e === void 0 ? void 0 : _e.r;
1444
+ impedanz['r02'] = (_f = powerTransformer.powerTransformerEnd[1]) === null || _f === void 0 ? void 0 : _f.r;
1445
+ impedanz['r03'] = (_g = powerTransformer.powerTransformerEnd[2]) === null || _g === void 0 ? void 0 : _g.r;
1446
+ impedanz['x01'] = (_h = powerTransformer.powerTransformerEnd[0]) === null || _h === void 0 ? void 0 : _h.x;
1447
+ impedanz['x02'] = (_j = powerTransformer.powerTransformerEnd[1]) === null || _j === void 0 ? void 0 : _j.x;
1448
+ impedanz['x03'] = (_k = powerTransformer.powerTransformerEnd[2]) === null || _k === void 0 ? void 0 : _k.x;
1449
+ break;
1450
+ }
1451
+ case (1): {
1452
+ let z_osOHM = undefined;
1453
+ let z_msOHM = undefined;
1454
+ let z_usOHM = undefined;
1455
+ if (ur1 >= ur2) {
1456
+ z_osOHM = new complex_js_1.default(r00r1, x00r1);
1457
+ z_msOHM = z_osOHM.div(2).mul(Math.pow(ur2 / ur1, 2) /**100*/);
1458
+ z_usOHM = z_osOHM.div(2).mul(Math.pow(ur3 / ur1, 2) /**100*/);
1459
+ }
1460
+ else {
1461
+ z_msOHM = new complex_js_1.default(r00r2, x00r2);
1462
+ z_osOHM = z_osOHM.div(2).mul(Math.pow(ur1 / ur2, 2) /**100*/);
1463
+ z_usOHM = z_osOHM.div(2).mul(Math.pow(ur3 / ur2, 2) /**100*/);
1464
+ }
1365
1465
  impedanz['r01'] = z_osOHM.re;
1366
1466
  impedanz['r02'] = z_msOHM.re;
1367
1467
  impedanz['r03'] = z_usOHM.re;
1368
1468
  impedanz['x01'] = z_osOHM.im;
1369
1469
  impedanz['x02'] = z_msOHM.im;
1370
1470
  impedanz['x03'] = z_usOHM.im;
1471
+ break;
1472
+ }
1473
+ case (2): {
1474
+ if (z01k.mul(z02) != z02k.mul(z01)) {
1475
+ if (r00r1_undef && x00r1_undef) { //z01 not given
1476
+ z01 = (z01k.mul(z02)).div(z02k);
1477
+ r00r1 = z01.re;
1478
+ x00r1 = z01.im;
1479
+ incidents++;
1480
+ }
1481
+ if (r00r2_undef && x00r2_undef) { //z02 not given
1482
+ z02 = (z01.mul(z02k)).div(z01k);
1483
+ r00r2 = z02.re;
1484
+ x00r2 = z02.im;
1485
+ incidents++;
1486
+ }
1487
+ if (r0kr1_undef && x0kr1_undef) { //z01k not given
1488
+ z01k = (z01.mul(z02k)).div(z02);
1489
+ r0kr1 = z01k.re;
1490
+ x0kr1 = z01k.im;
1491
+ incidents++;
1492
+ }
1493
+ if (r0kr2_undef && x0kr2_undef) { //z02k not given
1494
+ z02k = (z01k.mul(z02)).div(z01);
1495
+ r0kr2 = z02k.re;
1496
+ x0kr2 = z02k.im;
1497
+ incidents++;
1498
+ }
1499
+ }
1500
+ if (ur1 >= ur2) {
1501
+ const z01OHM = new complex_js_1.default(r00r1, x00r1);
1502
+ const z02OHM = new complex_js_1.default(r00r2, x00r2).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1503
+ const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
1504
+ const ztOHM = (z02OHM.mul(z01OHM.sub(zsOHM))).sqrt();
1505
+ const z_osOHM = z01OHM.sub(ztOHM);
1506
+ const z_msOHM = z02OHM.sub(ztOHM).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1507
+ const z_usOHM = ztOHM.mul((Math.pow(ur3 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1508
+ impedanz['r01'] = (0, parser_utils_1.isNumericI7)(z_osOHM.re) ? z_osOHM.re : 0;
1509
+ impedanz['r02'] = (0, parser_utils_1.isNumericI7)(z_msOHM.re) ? z_msOHM.re : 0;
1510
+ impedanz['r03'] = (0, parser_utils_1.isNumericI7)(z_usOHM.re) ? z_usOHM.re : 0;
1511
+ impedanz['x01'] = (0, parser_utils_1.isNumericI7)(z_osOHM.im) ? z_osOHM.im : 0;
1512
+ impedanz['x02'] = (0, parser_utils_1.isNumericI7)(z_msOHM.im) ? z_msOHM.im : 0;
1513
+ impedanz['x03'] = (0, parser_utils_1.isNumericI7)(z_usOHM.im) ? z_usOHM.im : 0;
1514
+ }
1515
+ else {
1516
+ const z01OHM = new complex_js_1.default(r00r2, x00r2);
1517
+ const z02OHM = new complex_js_1.default(r00r1, x00r1).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
1518
+ const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
1519
+ const ztOHM = (z02OHM.mul(z01OHM.sub(zsOHM))).sqrt();
1520
+ const z_osOHM = z01OHM.sub(ztOHM);
1521
+ const z_msOHM = z02OHM.sub(ztOHM).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1522
+ const z_usOHM = ztOHM.mul((Math.pow(ur3 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
1523
+ impedanz['r01'] = (0, parser_utils_1.isNumericI7)(z_msOHM.re) ? z_msOHM.re : 0;
1524
+ impedanz['r02'] = (0, parser_utils_1.isNumericI7)(z_osOHM.re) ? z_osOHM.re : 0;
1525
+ impedanz['r03'] = (0, parser_utils_1.isNumericI7)(z_usOHM.re) ? z_usOHM.re : 0;
1526
+ impedanz['x01'] = (0, parser_utils_1.isNumericI7)(z_msOHM.im) ? z_msOHM.im : 0;
1527
+ impedanz['x02'] = (0, parser_utils_1.isNumericI7)(z_osOHM.im) ? z_osOHM.im : 0;
1528
+ impedanz['x03'] = (0, parser_utils_1.isNumericI7)(z_usOHM.im) ? z_usOHM.im : 0;
1529
+ }
1371
1530
  ret_val = impedanz;
1372
1531
  break;
1373
1532
  }
1374
1533
  case (3): {
1375
- impedanz['r01'] = (_a = powerTransformer.powerTransformerEnd[0]) === null || _a === void 0 ? void 0 : _a.r;
1376
- impedanz['r02'] = (_b = powerTransformer.powerTransformerEnd[1]) === null || _b === void 0 ? void 0 : _b.r;
1377
- impedanz['r03'] = (_c = powerTransformer.powerTransformerEnd[2]) === null || _c === void 0 ? void 0 : _c.r;
1378
- impedanz['x01'] = (_d = powerTransformer.powerTransformerEnd[0]) === null || _d === void 0 ? void 0 : _d.x;
1379
- impedanz['x02'] = (_e = powerTransformer.powerTransformerEnd[1]) === null || _e === void 0 ? void 0 : _e.x;
1380
- impedanz['x03'] = (_f = powerTransformer.powerTransformerEnd[2]) === null || _f === void 0 ? void 0 : _f.x;
1534
+ impedanz['r01'] = (_l = powerTransformer.powerTransformerEnd[0]) === null || _l === void 0 ? void 0 : _l.r;
1535
+ impedanz['r02'] = (_m = powerTransformer.powerTransformerEnd[1]) === null || _m === void 0 ? void 0 : _m.r;
1536
+ impedanz['r03'] = (_o = powerTransformer.powerTransformerEnd[2]) === null || _o === void 0 ? void 0 : _o.r;
1537
+ impedanz['x01'] = (_p = powerTransformer.powerTransformerEnd[0]) === null || _p === void 0 ? void 0 : _p.x;
1538
+ impedanz['x02'] = (_q = powerTransformer.powerTransformerEnd[1]) === null || _q === void 0 ? void 0 : _q.x;
1539
+ impedanz['x03'] = (_r = powerTransformer.powerTransformerEnd[2]) === null || _r === void 0 ? void 0 : _r.x;
1381
1540
  break;
1382
1541
  }
1383
1542
  }