@enervance/insight-cim-model 0.0.161 → 0.0.162
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.
- package/dist/constants/cim-class-names.d.ts +10 -0
- package/dist/constants/cim-class-names.js +11 -1
- package/dist/constants/cim-class-names.js.map +1 -1
- package/dist/converter/integral7/converter.integral7.d.ts +3 -1
- package/dist/converter/integral7/converter.integral7.js +219 -243
- package/dist/converter/integral7/converter.integral7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/data-manager.d.ts +1 -10
- package/dist/converter/integral7/dl-convert/data-manager.js +0 -34
- package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
- package/dist/converter/integral7/dl-convert/db/data-types.d.ts +0 -9
- package/dist/converter/integral7/dl-convert/db/data-types.js +0 -11
- package/dist/converter/integral7/dl-convert/db/data-types.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +153 -99
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js +3401 -1315
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/executor.d.ts +3 -1
- package/dist/converter/integral7/dl-convert/executor.js +4 -3
- package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
- package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +7 -35
- package/dist/converter/integral7/model/dl-utils/util-functions.js +7 -659
- package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
- package/dist/converter/integral7/{util-asset.model.d.ts → util-cim.model.d.ts} +5 -1
- package/dist/converter/integral7/{util-asset.model.js → util-cim.model.js} +10 -4
- package/dist/converter/integral7/util-cim.model.js.map +1 -0
- package/dist/converter/integral7/utils-cgmes-export.js +2 -0
- package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
- package/dist/converter/integral7/utils-trafo3w.d.ts +2 -2
- package/dist/converter/integral7/utils-trafo3w.js +21 -4
- package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
- package/dist/converter/integral7/utils.d.ts +10 -22
- package/dist/converter/integral7/utils.js +187 -327
- package/dist/converter/integral7/utils.js.map +1 -1
- package/dist/etl/etl-dppower/etl-dppower.d.ts +15 -0
- package/dist/etl/etl-dppower/etl-dppower.js +204 -0
- package/dist/etl/etl-dppower/etl-dppower.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/model/wires/IRegulatingCondEq.d.ts +3 -0
- package/dist/model/assetinfo/CableInfo.d.ts +7 -0
- package/dist/model/assetinfo/CableInfo.js +49 -0
- package/dist/model/assetinfo/CableInfo.js.map +1 -1
- package/dist/model/assetinfo/OverheadWireInfo.d.ts +7 -0
- package/dist/model/assetinfo/OverheadWireInfo.js +49 -0
- package/dist/model/assetinfo/OverheadWireInfo.js.map +1 -1
- package/dist/model/assets/Facility.js +17 -3
- package/dist/model/assets/Facility.js.map +1 -1
- package/dist/model/assets/LifecycleDate.d.ts +1 -0
- package/dist/model/assets/LifecycleDate.js +3 -0
- package/dist/model/assets/LifecycleDate.js.map +1 -1
- package/dist/model/common/Location.js +1 -1
- package/dist/model/common/Location.js.map +1 -1
- package/dist/model/core/ACDCTerminal.js +2 -1
- package/dist/model/core/ACDCTerminal.js.map +1 -1
- package/dist/model/core/Equipment.js +6 -1
- package/dist/model/core/Equipment.js.map +1 -1
- package/dist/model/core/Substation.js +7 -7
- package/dist/model/core/Substation.js.map +1 -1
- package/dist/model/dc/DCLine.js +17 -17
- package/dist/model/dc/DCLineSegment.js +25 -25
- package/dist/model/diagram/DiagramObject.js +2 -2
- package/dist/model/diagram/DiagramObject.js.map +1 -1
- package/dist/model/equivalents/EquivalentInjection.d.ts +10 -0
- package/dist/model/equivalents/EquivalentInjection.js +111 -0
- package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
- package/dist/model/extensions/enervance/assets/EVWireObject.js +7 -1
- package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +0 -1
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +0 -3
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +8 -1
- package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
- package/dist/model/loadmodel/ConformLoadGroup.js +22 -22
- package/dist/model/loadmodel/LoadArea.js +21 -21
- package/dist/model/loadmodel/SubLoadArea.js +22 -22
- package/dist/model/wires/ACLineSegment.d.ts +3 -0
- package/dist/model/wires/ACLineSegment.js +7 -1
- package/dist/model/wires/ACLineSegment.js.map +1 -1
- package/dist/model/wires/AsynchronousMachine.js +0 -1
- package/dist/model/wires/AsynchronousMachine.js.map +1 -1
- package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
- package/dist/model/wires/PowerTransformer.js +2 -0
- package/dist/model/wires/PowerTransformer.js.map +1 -1
- package/dist/model/wires/PowerTransformerEnd.js +1 -0
- package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
- package/dist/model/wires/RatioTapChanger.js +1 -1
- package/dist/model-container/enum/EVSourceSystemKind.d.ts +1 -0
- package/dist/model-container/enum/EVSourceSystemKind.js +1 -0
- package/dist/model-container/enum/EVSourceSystemKind.js.map +1 -1
- package/dist/model-container/model/ModelContainer.d.ts +5 -0
- package/dist/model-container/model/ModelContainer.js +9 -0
- package/dist/model-container/model/ModelContainer.js.map +1 -1
- package/dist/util/util-create.d.ts +1 -1
- package/dist/util/util-create.js +4 -2
- package/dist/util/util-create.js.map +1 -1
- package/dist/util/utils.d.ts +1 -1
- package/dist/util/utils.js +4 -2
- package/dist/util/utils.js.map +1 -1
- package/dist/utils2/cim.model.utils.js +6 -0
- package/dist/utils2/cim.model.utils.js.map +1 -1
- package/dist/utils2/common.utils.d.ts +1 -0
- package/dist/utils2/common.utils.js +6 -2
- package/dist/utils2/common.utils.js.map +1 -1
- package/dist/utils2/fuseki.utils.js +7 -1
- package/dist/utils2/fuseki.utils.js.map +1 -1
- package/dist/utils2/import.utils.d.ts +2 -1
- package/dist/utils2/import.utils.js +9 -3
- package/dist/utils2/import.utils.js.map +1 -1
- package/dist/utils2/parser.utils.js +7 -7
- package/dist/utils2/parser.utils.js.map +1 -1
- package/package.json +5 -2
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.d.ts +0 -157
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js +0 -3521
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js.map +0 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7.types.d.ts +0 -3
- package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js +0 -3
- package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js.map +0 -1
- package/dist/converter/integral7/util-asset.model.js.map +0 -1
|
@@ -1,28 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = exports.getSchemaValue = exports.writeZipFile = exports.generateNodeStream = exports.writeFile = exports.generateFuelType = exports.getNumber = exports.getDescription = exports.getPMech = exports.getActiveReactivePower2 = exports.getActiveReactivePower = exports.getTapChangerStepArray = exports.getTapChangerStepCount = exports.setTapChangerControl = exports.
|
|
4
|
-
exports.getSpannungsband = exports.
|
|
3
|
+
exports.putUUIDtoI7Ids = exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = exports.getSchemaValue = exports.writeZipFile = exports.generateNodeStream = exports.writeFile = exports.generateFuelType = exports.getNumber = exports.getDescription = exports.getPMech = exports.getActiveReactivePower2 = exports.getActiveReactivePower = exports.getTapChangerStepArray = exports.getTapChangerStepCount = exports.setTapChangerControl = exports.getConductingEquipmentTerminalBySecNumber = exports.getTrafoIr = exports.getTrafoIleer = exports.getTrafoPleer = exports.calculateStatVarComRating = exports.calculateG0ch = exports.calculateBC = exports.calculateG0PerSection = exports.calculateGPerSection = exports.calculateB0PerSection = exports.calculateBPerSection = exports.calculateB = exports.calculateG = exports.calculateXSeriesCompensator = exports.calculateRSeriesCompensator = exports.calculateX = exports.calculateRatedIdc = exports.calculateR = exports.calculateSigma = exports.getX0R0Transformer = exports.getUrTrafo = exports.getSrTrafo = exports.getUkrTrafo = exports.getPkrTrafo = exports.getSchaltgruppeAngleClock = exports.getSchaltgruppe = exports.getTerminalUn = exports.getU = exports.getLine = exports.getLineByAttribute = exports.getName = exports.ueberpruefeZeichenkette = exports.deepcopy = void 0;
|
|
4
|
+
exports.getSpannungsband = exports.getGroundingCountFromWindingConnection = exports.calculateComplexZeroSequImpedanzenTrafo = exports.createRegulatingControl = exports.createWriteStreamPromise = exports.getPSRType = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const fs = require("fs");
|
|
7
|
-
const PhaseTapChangerAsymmetrical_1 = require("../../model/wires/PhaseTapChangerAsymmetrical.js");
|
|
8
|
-
const PhaseTapChangerLinear_1 = require("../../model/wires/PhaseTapChangerLinear.js");
|
|
9
7
|
const Bay_1 = require("../../model/core/Bay.js");
|
|
10
8
|
const VoltageLevel_1 = require("../../model/core/VoltageLevel.js");
|
|
11
9
|
const WindingConnection_1 = require("../../model/wires/WindingConnection.js");
|
|
12
10
|
const common_utils_1 = require("../../utils2/common.utils.js");
|
|
13
|
-
const RatioTapChangerTable_1 = require("../../model/wires/RatioTapChangerTable.js");
|
|
14
|
-
const util_create_1 = require("../../util/util-create.js");
|
|
15
|
-
const RatioTapChanger_1 = require("../../model/wires/RatioTapChanger.js");
|
|
16
|
-
const TransformerControlMode_1 = require("../../model/wires/TransformerControlMode.js");
|
|
17
|
-
const TapChangerControl_1 = require("../../model/wires/TapChangerControl.js");
|
|
18
|
-
const RegulatingControlModeKind_1 = require("../../model/wires/RegulatingControlModeKind.js");
|
|
19
|
-
const UnitMultiplier_1 = require("../../model/domain/UnitMultiplier.js");
|
|
20
11
|
const FuelType_1 = require("../../model/generation/FuelType.js");
|
|
21
12
|
const RegulatingControl_1 = require("../../model/wires/RegulatingControl.js");
|
|
22
13
|
const FossilFuel_1 = require("../../model/generation/FossilFuel.js");
|
|
23
14
|
const PSRType_1 = require("../../model/core/PSRType.js");
|
|
24
15
|
const parser_utils_1 = require("../../utils2/parser.utils.js");
|
|
25
16
|
const cim_class_names_1 = require("../../constants/cim-class-names.js");
|
|
17
|
+
const complex_js_1 = require("complex.js");
|
|
26
18
|
function deepcopy(converter) {
|
|
27
19
|
let converter_copy = undefined;
|
|
28
20
|
converter_copy = eval(`new ${converter.constructor.name}(getUUID(),)`);
|
|
@@ -397,6 +389,18 @@ function getUrTrafo(i7Data, powerTransformerInfo, endNumber) {
|
|
|
397
389
|
return 0;
|
|
398
390
|
}
|
|
399
391
|
exports.getUrTrafo = getUrTrafo;
|
|
392
|
+
function getX0R0Transformer(i7Data, powerTransformerInfo, varNameI7) {
|
|
393
|
+
let ret_val = undefined;
|
|
394
|
+
const prop = `${varNameI7}`;
|
|
395
|
+
if (i7Data[prop] !== undefined && (0, parser_utils_1.isNumericI7)(i7Data[prop])) { //read data from i7 net data object
|
|
396
|
+
ret_val = i7Data[prop];
|
|
397
|
+
}
|
|
398
|
+
else if (powerTransformerInfo !== undefined && powerTransformerInfo[prop] !== undefined && (0, parser_utils_1.isNumericI7)(powerTransformerInfo[prop])) { //read data from net data object type
|
|
399
|
+
ret_val = powerTransformerInfo[prop];
|
|
400
|
+
}
|
|
401
|
+
return ret_val;
|
|
402
|
+
}
|
|
403
|
+
exports.getX0R0Transformer = getX0R0Transformer;
|
|
400
404
|
/**
|
|
401
405
|
* @param fn Nennfrquenz in Hz
|
|
402
406
|
* @param pn Nennwirkleistung in MW
|
|
@@ -712,321 +716,6 @@ function getConductingEquipmentTerminalBySecNumber(conductingEquipment, sequence
|
|
|
712
716
|
return;
|
|
713
717
|
}
|
|
714
718
|
exports.getConductingEquipmentTerminalBySecNumber = getConductingEquipmentTerminalBySecNumber;
|
|
715
|
-
function createRatioTapChanger(i7Data, transformerEnd, cimModel, neutralU, terminals, knotenSpannungsband) {
|
|
716
|
-
// ist ein Stufenschalter vorhanden?
|
|
717
|
-
/**
|
|
718
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
719
|
-
* 1 - obere Spannungsseite (Anschluss 1)
|
|
720
|
-
* 2 - mittlere Spannungsseite (Anschluss 1)
|
|
721
|
-
* 3 - Niederspannungsseite (Anschluss 2)
|
|
722
|
-
* ? - Externer Knoten (Anschluss 3)
|
|
723
|
-
* */
|
|
724
|
-
/**
|
|
725
|
-
* 1 obere Spannungsseite
|
|
726
|
-
* 2 mittlere Spannungsseite
|
|
727
|
-
* 3 Niederspannungsseite
|
|
728
|
-
* */
|
|
729
|
-
/** Regelung */
|
|
730
|
-
/** Spezialregelung - trafo_spezial
|
|
731
|
-
* 0 - keine Spezialitäten
|
|
732
|
-
* Winkel == 0 Grad => Längsregler => RatioTapChanger
|
|
733
|
-
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
734
|
-
* 1 - Typ Meeden
|
|
735
|
-
* Symetrischer Querregler => PhaseTapChangerSymmetrical
|
|
736
|
-
* 2 - Typ Helmstedt
|
|
737
|
-
* Asymetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
738
|
-
* */
|
|
739
|
-
const wicklungsnummer = transformerEnd.endNumber;
|
|
740
|
-
/** Normieren auf die Wicklungsnummer, da 0 obere Spannungsseite ist */
|
|
741
|
-
const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
|
|
742
|
-
//const gestufteSeiteS1 = i7Data.gestufte_seite_s1 === 0 ? 1 : i7Data.gestufte_seite_s1;
|
|
743
|
-
if (gestufteSeite === wicklungsnummer) {
|
|
744
|
-
const lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
|
|
745
|
-
const highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
|
|
746
|
-
const neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
|
|
747
|
-
const currentStep = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
|
|
748
|
-
/** die Stufenpositionen werden auf 1..n normiert
|
|
749
|
-
* Zu Betimmung der aktuellen Stufe, wird ein Array mit den i7 Stufennummern angelegt.
|
|
750
|
-
* Der Index wird später die verwendet, um die normierte Stufenposition zu bestimmen */
|
|
751
|
-
const i7TapArray = getTapChangerStepArray(lowStep, highStep);
|
|
752
|
-
const mappedCurrentStep = i7TapArray.indexOf(currentStep) + 1;
|
|
753
|
-
const lowerVoltageStepCount = getTapChangerStepCount(lowStep, neutralStep); // 9
|
|
754
|
-
const increaseVoltageStepCount = getTapChangerStepCount(neutralStep, highStep);
|
|
755
|
-
const lowerVoltageStepIncrement = Math.abs(i7Data[`umin_s${transformerEnd.endNumber}`]) /*/ 100*/ / lowerVoltageStepCount * -1; // -0.01778 => -1.78%
|
|
756
|
-
let increaseVoltageStepIncrement = Math.abs(i7Data[`umax_s${transformerEnd.endNumber}`]) /*/ 100*/ / lowerVoltageStepCount; // 0.01778 => 1.78%
|
|
757
|
-
increaseVoltageStepIncrement = isNaN(increaseVoltageStepIncrement) ? 1 : increaseVoltageStepIncrement;
|
|
758
|
-
const ratioTapChangerTable = new RatioTapChangerTable_1.RatioTapChangerTable(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
|
|
759
|
-
// Spannung verringern
|
|
760
|
-
for (let i = 0; i < lowerVoltageStepCount; i++) {
|
|
761
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i + 1, 1 + (lowerVoltageStepIncrement * (lowerVoltageStepCount - i)));
|
|
762
|
-
}
|
|
763
|
-
// neutral Step
|
|
764
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, lowerVoltageStepCount + 1, 1);
|
|
765
|
-
// Spannung erhoehen
|
|
766
|
-
for (let i = 0; i < increaseVoltageStepCount; i++) {
|
|
767
|
-
const step = (lowerVoltageStepCount + 1) + (i + 1);
|
|
768
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, step, 1 + (increaseVoltageStepIncrement * (i + 1)));
|
|
769
|
-
}
|
|
770
|
-
const ratioTapChanger = new RatioTapChanger_1.RatioTapChanger(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
|
|
771
|
-
// Attribute
|
|
772
|
-
ratioTapChanger.stepVoltageIncrement = increaseVoltageStepIncrement;
|
|
773
|
-
ratioTapChanger.tculControlMode = TransformerControlMode_1.TransformerControlMode.volt;
|
|
774
|
-
ratioTapChanger.ltcFlag = false;
|
|
775
|
-
ratioTapChanger.lowStep = 1;
|
|
776
|
-
ratioTapChanger.highStep = ratioTapChangerTable.ratioTapChangerTablePoints.length;
|
|
777
|
-
ratioTapChanger.neutralStep = i7TapArray.indexOf(neutralStep) + 1;
|
|
778
|
-
ratioTapChanger.normalStep = ratioTapChanger.neutralStep;
|
|
779
|
-
ratioTapChanger.step = mappedCurrentStep;
|
|
780
|
-
ratioTapChanger.transformerEnd = transformerEnd;
|
|
781
|
-
transformerEnd.ratioTapChanger = ratioTapChanger;
|
|
782
|
-
ratioTapChanger.neutralU = neutralU;
|
|
783
|
-
ratioTapChanger.ratioTapChangerTableUUID = ratioTapChangerTable.mrid;
|
|
784
|
-
ratioTapChangerTable.ratioTapChanger = ratioTapChanger;
|
|
785
|
-
// Ist die Regelungung aktiv?
|
|
786
|
-
// wenn ja, welche Art=
|
|
787
|
-
const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
|
|
788
|
-
if (regelung > 0) {
|
|
789
|
-
/** Ausprägungen
|
|
790
|
-
* 0 -> keine automatische Stufung
|
|
791
|
-
* 1 -> Spannungsbetragsregelung
|
|
792
|
-
* 2 -> Wirkflussvorgabe
|
|
793
|
-
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
794
|
-
* 4 -> Blindleitungsbilazierung
|
|
795
|
-
* */
|
|
796
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
797
|
-
tapChangerControl.discrete = true;
|
|
798
|
-
/** TODO usoll, umin, umax bestimmen -> Anschlusskoten bestimmen (ssab oder abzweigknoten) */
|
|
799
|
-
const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
|
|
800
|
-
const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
|
|
801
|
-
const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
|
|
802
|
-
const pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined; // PST Trafo
|
|
803
|
-
switch (regelung) {
|
|
804
|
-
case 1: {
|
|
805
|
-
ratioTapChanger.controlEnabled = true;
|
|
806
|
-
tapChangerControl.enabled = true;
|
|
807
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
808
|
-
tapChangerControl.targetValue = usoll;
|
|
809
|
-
tapChangerControl.targetDeadband = umax - usoll;
|
|
810
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
811
|
-
break;
|
|
812
|
-
}
|
|
813
|
-
case 2: {
|
|
814
|
-
ratioTapChanger.controlEnabled = true;
|
|
815
|
-
tapChangerControl.enabled = true;
|
|
816
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.activePower;
|
|
817
|
-
tapChangerControl.targetValue = pVorgabe;
|
|
818
|
-
// TODO targetDeadband
|
|
819
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
820
|
-
break;
|
|
821
|
-
}
|
|
822
|
-
case 3: {
|
|
823
|
-
ratioTapChanger.controlEnabled = true;
|
|
824
|
-
tapChangerControl.enabled = true;
|
|
825
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.currentFlow;
|
|
826
|
-
// TODO targetDeadband
|
|
827
|
-
// TODO targetValue
|
|
828
|
-
// TODO targetValueUnitMultiplier
|
|
829
|
-
break;
|
|
830
|
-
}
|
|
831
|
-
case 4: {
|
|
832
|
-
ratioTapChanger.controlEnabled = true;
|
|
833
|
-
tapChangerControl.enabled = true;
|
|
834
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.reactivePower;
|
|
835
|
-
// TODO targetDeadband
|
|
836
|
-
// TODO targetValue
|
|
837
|
-
// TODO targetValueUnitMultiplier
|
|
838
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
839
|
-
break;
|
|
840
|
-
}
|
|
841
|
-
}
|
|
842
|
-
// Assoziationen
|
|
843
|
-
ratioTapChanger.tapChangerControl = tapChangerControl;
|
|
844
|
-
tapChangerControl.addTapChanger(ratioTapChanger);
|
|
845
|
-
cimModel.addTapChangerControl(tapChangerControl);
|
|
846
|
-
}
|
|
847
|
-
else {
|
|
848
|
-
ratioTapChanger.controlEnabled = false;
|
|
849
|
-
}
|
|
850
|
-
// Spannungsgeregelter Anschluss
|
|
851
|
-
/**
|
|
852
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
853
|
-
* 1 - mittlere Spannungsseite (Anschluss 2)
|
|
854
|
-
* 2 - Niederspannungsseite (Anschluss 3)
|
|
855
|
-
* 3 - Externer Knoten
|
|
856
|
-
* */
|
|
857
|
-
/** Normieren auf die Wicklungsnummer, da 0 neben 1 obere Spannungsseite angibt */
|
|
858
|
-
const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
|
|
859
|
-
if (terminal) {
|
|
860
|
-
setTapChangerControl(ratioTapChanger, terminal.uuid);
|
|
861
|
-
}
|
|
862
|
-
else {
|
|
863
|
-
if (transformerEnd.ratioTapChanger) {
|
|
864
|
-
transformerEnd.ratioTapChanger.tapChangerControl = undefined;
|
|
865
|
-
transformerEnd.ratioTapChanger.tapChangerControlUUID = undefined;
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
//SV Profil: Aktuelle Stufenstellung
|
|
869
|
-
/* const svTapStep = new SvTapStep(CommonUtils.generateUUID(), i7TapArray.indexOf(currentStep) + 1, ratioTapChanger);
|
|
870
|
-
ratioTapChanger.svTapStepUUID = svTapStep.mrid;
|
|
871
|
-
cimModel.addSvTapStep(svTapStep);*/
|
|
872
|
-
cimModel.addRatioTapChanger(ratioTapChanger);
|
|
873
|
-
cimModel.addRatioTapChangerTable(ratioTapChangerTable);
|
|
874
|
-
}
|
|
875
|
-
}
|
|
876
|
-
exports.createRatioTapChanger = createRatioTapChanger;
|
|
877
|
-
function createPhaseTapChanger(i7Data, transformerEnd, cimModel, neutralU, trafoTerminals, knotenSpannungsband) {
|
|
878
|
-
// ist ein Stufenschalter vorhanden?
|
|
879
|
-
/**
|
|
880
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
881
|
-
* 1 - obere Spannungsseite (Anschluss 1)
|
|
882
|
-
* 2 - mittlere Spannungsseite (Anschluss 1)
|
|
883
|
-
* 3 - Niederspannungsseite (Anschluss 2)
|
|
884
|
-
* ? - Externer Knoten (Anschluss 3)
|
|
885
|
-
* */
|
|
886
|
-
/**
|
|
887
|
-
* 1 obere Spannungsseite
|
|
888
|
-
* 2 mittlere Spannungsseite
|
|
889
|
-
* 3 Niederspannungsseite
|
|
890
|
-
* */
|
|
891
|
-
/** Regelung */
|
|
892
|
-
/** Spezialregelung - trafo_spezial
|
|
893
|
-
* 0 - keine Spezialitäten
|
|
894
|
-
* Winkel == 0 Grad => Längsregler => RatioTapChanger
|
|
895
|
-
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
896
|
-
* 1 - Typ Meeden
|
|
897
|
-
* Symetrischer Querregler => PhaseTapChangerSymmetrical
|
|
898
|
-
* 2 - Typ Helmstedt
|
|
899
|
-
* Asymetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
900
|
-
* */
|
|
901
|
-
const wicklungsnummer = transformerEnd.endNumber;
|
|
902
|
-
/** Normieren auf die Wicklungsnummer, da 0 obere Spannungsseite ist */
|
|
903
|
-
const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
|
|
904
|
-
if (gestufteSeite === wicklungsnummer) {
|
|
905
|
-
const spezialregelung = i7Data.trafo_spezial;
|
|
906
|
-
/* const tapChangerControl = new TapChangerControl(CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
907
|
-
// TODO
|
|
908
|
-
tapChangerControl.mode = RegulatingControlModeKind.activePower;
|
|
909
|
-
tapChangerControl.discrete = true;*/
|
|
910
|
-
let phaseTapChanger;
|
|
911
|
-
switch (spezialregelung) {
|
|
912
|
-
case (2): {
|
|
913
|
-
const phaseTapChangerAsync = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
914
|
-
phaseTapChangerAsync.windingConnectionAngle = (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
|
|
915
|
-
phaseTapChanger = phaseTapChangerAsync;
|
|
916
|
-
cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
|
|
917
|
-
break;
|
|
918
|
-
}
|
|
919
|
-
default: {
|
|
920
|
-
// 0 - keine Spezialitäten
|
|
921
|
-
// 1 - Typ Meeden
|
|
922
|
-
const phaseTapChangerLinear = new PhaseTapChangerLinear_1.PhaseTapChangerLinear(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
923
|
-
phaseTapChangerLinear.stepPhaseShiftIncrement = (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
|
|
924
|
-
cimModel.addPhaseTapChangerLinear(phaseTapChangerLinear);
|
|
925
|
-
phaseTapChanger = phaseTapChangerLinear;
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
// Attribute
|
|
929
|
-
phaseTapChanger.ltcFlag = false;
|
|
930
|
-
phaseTapChanger.lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
|
|
931
|
-
phaseTapChanger.highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
|
|
932
|
-
phaseTapChanger.neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
|
|
933
|
-
phaseTapChanger.normalStep = phaseTapChanger.neutralStep;
|
|
934
|
-
phaseTapChanger.step = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
|
|
935
|
-
phaseTapChanger.neutralU = neutralU;
|
|
936
|
-
transformerEnd.phaseTapChanger = phaseTapChanger;
|
|
937
|
-
phaseTapChanger.transformerEndUUID = transformerEnd.mrid;
|
|
938
|
-
// Ist die Regelungung aktiv?
|
|
939
|
-
// wenn ja, welche Art=
|
|
940
|
-
const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
|
|
941
|
-
if (regelung > 0) {
|
|
942
|
-
/** Ausprägungen
|
|
943
|
-
* 0 -> keine automatische Stufung
|
|
944
|
-
* 1 -> Spannungsbetragsregelung
|
|
945
|
-
* 2 -> Wirkflussvorgabe
|
|
946
|
-
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
947
|
-
* 4 -> Blindleitungsbilazierung
|
|
948
|
-
* */
|
|
949
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
950
|
-
tapChangerControl.discrete = true;
|
|
951
|
-
/** TODO usoll, umin, umax bestimmen -> Anschlusskoten bestimmen (ssab oder abzweigknoten) */
|
|
952
|
-
const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
|
|
953
|
-
const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
|
|
954
|
-
const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
|
|
955
|
-
const pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined; // PST Trafo
|
|
956
|
-
switch (regelung) {
|
|
957
|
-
case 1: {
|
|
958
|
-
phaseTapChanger.controlEnabled = true;
|
|
959
|
-
tapChangerControl.enabled = true;
|
|
960
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
961
|
-
tapChangerControl.targetValue = usoll;
|
|
962
|
-
tapChangerControl.targetDeadband = umax - usoll;
|
|
963
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
964
|
-
break;
|
|
965
|
-
}
|
|
966
|
-
case 2: {
|
|
967
|
-
phaseTapChanger.controlEnabled = true;
|
|
968
|
-
tapChangerControl.enabled = true;
|
|
969
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.activePower;
|
|
970
|
-
tapChangerControl.targetValue = pVorgabe;
|
|
971
|
-
// TODO targetDeadband
|
|
972
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
973
|
-
break;
|
|
974
|
-
}
|
|
975
|
-
case 3: {
|
|
976
|
-
phaseTapChanger.controlEnabled = true;
|
|
977
|
-
tapChangerControl.enabled = true;
|
|
978
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.currentFlow;
|
|
979
|
-
// TODO targetDeadband
|
|
980
|
-
// TODO targetValue
|
|
981
|
-
// TODO targetValueUnitMultiplier
|
|
982
|
-
break;
|
|
983
|
-
}
|
|
984
|
-
case 4: {
|
|
985
|
-
phaseTapChanger.controlEnabled = true;
|
|
986
|
-
tapChangerControl.enabled = true;
|
|
987
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.reactivePower;
|
|
988
|
-
// TODO targetDeadband
|
|
989
|
-
// TODO targetValue
|
|
990
|
-
// TODO targetValueUnitMultiplier
|
|
991
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
992
|
-
break;
|
|
993
|
-
}
|
|
994
|
-
}
|
|
995
|
-
// Assoziationen
|
|
996
|
-
phaseTapChanger.tapChangerControl = tapChangerControl;
|
|
997
|
-
tapChangerControl.addTapChanger(phaseTapChanger);
|
|
998
|
-
cimModel.addTapChangerControl(tapChangerControl);
|
|
999
|
-
}
|
|
1000
|
-
else {
|
|
1001
|
-
phaseTapChanger.controlEnabled = false;
|
|
1002
|
-
}
|
|
1003
|
-
// Spannungsgeregelter Anschluss
|
|
1004
|
-
/**
|
|
1005
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
1006
|
-
* 1 - mittlere Spannungsseite (Anschluss 2)
|
|
1007
|
-
* 2 - Niederspannungsseite (Anschluss 3)
|
|
1008
|
-
* 3 - Externer Knoten
|
|
1009
|
-
* */
|
|
1010
|
-
/** Normieren auf die Wicklungsnummer, da 0 neben 1 obere Spannungsseite angibt */
|
|
1011
|
-
const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
|
|
1012
|
-
if (terminal) {
|
|
1013
|
-
setTapChangerControl(phaseTapChanger, terminal.uuid);
|
|
1014
|
-
}
|
|
1015
|
-
else {
|
|
1016
|
-
if (transformerEnd.phaseTapChanger) {
|
|
1017
|
-
transformerEnd.phaseTapChanger.tapChangerControl = undefined;
|
|
1018
|
-
transformerEnd.phaseTapChanger.tapChangerControlUUID = undefined;
|
|
1019
|
-
}
|
|
1020
|
-
// Phase
|
|
1021
|
-
console.log();
|
|
1022
|
-
}
|
|
1023
|
-
//SV Profil: Aktuelle Stufenstellung
|
|
1024
|
-
/* const svTapStep = new SvTapStep(CommonUtils.generateUUID(), i7TapArray.indexOf(currentStep) + 1, ratioTapChanger);
|
|
1025
|
-
ratioTapChanger.svTapStepUUID = svTapStep.mrid;
|
|
1026
|
-
cimModel.addSvTapStep(svTapStep);*/
|
|
1027
|
-
}
|
|
1028
|
-
}
|
|
1029
|
-
exports.createPhaseTapChanger = createPhaseTapChanger;
|
|
1030
719
|
function setTapChangerControl(tapChanger, terminalUUID) {
|
|
1031
720
|
if (tapChanger && terminalUUID) {
|
|
1032
721
|
if (tapChanger.tapChangerControl) {
|
|
@@ -1193,7 +882,7 @@ function getActiveReactivePower(i7Data, mf) {
|
|
|
1193
882
|
reactivePowerMf = -1 * Math.sqrt((Math.pow(activePowerMf, 2) - Math.pow(activePowerMf * mf.cosPhiKap, 2)) / Math.pow(mf.cosPhiKap, 2));
|
|
1194
883
|
}
|
|
1195
884
|
}
|
|
1196
|
-
return [activePower, reactivePower, activePowerMf, reactivePowerMf];
|
|
885
|
+
return [activePower, reactivePower, Math.abs(activePowerMf), Math.abs(reactivePowerMf)];
|
|
1197
886
|
}
|
|
1198
887
|
exports.getActiveReactivePower = getActiveReactivePower;
|
|
1199
888
|
function getActiveReactivePower2(i7Data, mf) {
|
|
@@ -1577,6 +1266,177 @@ function createRegulatingControl(uuid, name, enabled, unitMultiplier, mode) {
|
|
|
1577
1266
|
return regulatingControl;
|
|
1578
1267
|
}
|
|
1579
1268
|
exports.createRegulatingControl = createRegulatingControl;
|
|
1269
|
+
/**Calculate Zero Sequence Impedanzen
|
|
1270
|
+
* @param scZeroSepImp real and imaginary parts of the measured short circuit impedances for the powertransformer endings.
|
|
1271
|
+
* @param idleZeroSeqImp real and imaginary parts of the measured no load impedances for the powertransformer endings.
|
|
1272
|
+
* @param baseVoltage rated voltages of the powertransformer endings.
|
|
1273
|
+
* */
|
|
1274
|
+
function calculateComplexZeroSequImpedanzenTrafo(scZeroSeqImp, idleZeroSeqImp, baseVoltage, groundingCount, powerTransformer) {
|
|
1275
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1276
|
+
const conversion_factor_ur = Math.pow(10, 3);
|
|
1277
|
+
const ur1 = baseVoltage[0];
|
|
1278
|
+
const ur2 = baseVoltage[1];
|
|
1279
|
+
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
|
|
1288
|
+
let z01 = new complex_js_1.default(r00r1, x00r1);
|
|
1289
|
+
let z02 = new complex_js_1.default(r00r2, x00r2);
|
|
1290
|
+
let z01k = new complex_js_1.default(r0kr1, x0kr1);
|
|
1291
|
+
let z02k = new complex_js_1.default(r0kr2, x0kr2);
|
|
1292
|
+
let incidents = 0;
|
|
1293
|
+
const impedanz = {
|
|
1294
|
+
r01: 0,
|
|
1295
|
+
r02: 0,
|
|
1296
|
+
r03: 0,
|
|
1297
|
+
x01: 0,
|
|
1298
|
+
x02: 0,
|
|
1299
|
+
x03: 0
|
|
1300
|
+
};
|
|
1301
|
+
let ret_val = undefined;
|
|
1302
|
+
switch (baseVoltage.length) {
|
|
1303
|
+
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
|
+
switch (groundingCount) {
|
|
1325
|
+
case (0): {
|
|
1326
|
+
break;
|
|
1327
|
+
}
|
|
1328
|
+
case (1): {
|
|
1329
|
+
break;
|
|
1330
|
+
}
|
|
1331
|
+
case (2): {
|
|
1332
|
+
if (z01k.mul(z02) != z02k.mul(z01)) {
|
|
1333
|
+
if (r00r1 == undefined || x00r1 == undefined) { //z01 not given
|
|
1334
|
+
z01 = (z01k.mul(z02)).div(z02k);
|
|
1335
|
+
r00r1 = z01.re;
|
|
1336
|
+
x00r1 = z01.im;
|
|
1337
|
+
incidents++;
|
|
1338
|
+
}
|
|
1339
|
+
if (r00r2 == undefined || x00r2 == undefined) { //z02 not given
|
|
1340
|
+
z02 = (z01.mul(z02k)).div(z01k);
|
|
1341
|
+
r00r2 = z02.re;
|
|
1342
|
+
x00r2 = z02.im;
|
|
1343
|
+
incidents++;
|
|
1344
|
+
}
|
|
1345
|
+
if (r0kr1 == undefined || x0kr1 == undefined) { //z01k not given
|
|
1346
|
+
z01k = (z01.mul(z02k)).div(z02);
|
|
1347
|
+
r0kr1 = z01k.re;
|
|
1348
|
+
x0kr1 = z01k.im;
|
|
1349
|
+
incidents++;
|
|
1350
|
+
}
|
|
1351
|
+
if (r0kr2 == undefined || x0kr2 == undefined) { //z02k not given
|
|
1352
|
+
z02k = (z01k.mul(z02)).div(z01);
|
|
1353
|
+
r0kr2 = z02k.re;
|
|
1354
|
+
x0kr2 = z02k.im;
|
|
1355
|
+
incidents++;
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
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)));
|
|
1365
|
+
impedanz['r01'] = z_osOHM.re;
|
|
1366
|
+
impedanz['r02'] = z_msOHM.re;
|
|
1367
|
+
impedanz['r03'] = z_usOHM.re;
|
|
1368
|
+
impedanz['x01'] = z_osOHM.im;
|
|
1369
|
+
impedanz['x02'] = z_msOHM.im;
|
|
1370
|
+
impedanz['x03'] = z_usOHM.im;
|
|
1371
|
+
ret_val = impedanz;
|
|
1372
|
+
break;
|
|
1373
|
+
}
|
|
1374
|
+
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;
|
|
1381
|
+
break;
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
default: {
|
|
1386
|
+
ret_val = impedanz;
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1389
|
+
//calculation with complex numbers
|
|
1390
|
+
return [ret_val, incidents <= 1];
|
|
1391
|
+
}
|
|
1392
|
+
exports.calculateComplexZeroSequImpedanzenTrafo = calculateComplexZeroSequImpedanzenTrafo;
|
|
1393
|
+
function getGroundingCountFromWindingConnection(powerTransformer) {
|
|
1394
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
1395
|
+
let retVal = undefined;
|
|
1396
|
+
let count = 0;
|
|
1397
|
+
let count2 = 0;
|
|
1398
|
+
let count3 = 0;
|
|
1399
|
+
let powerTransformerEndCount = powerTransformer.powerTransformerEnd.length;
|
|
1400
|
+
switch (powerTransformerEndCount) {
|
|
1401
|
+
case (2): {
|
|
1402
|
+
const powerTransformerEnd1 = powerTransformer.powerTransformerEnd[0];
|
|
1403
|
+
const powerTransformerEnd2 = powerTransformer.powerTransformerEnd[1];
|
|
1404
|
+
count = (((_a = powerTransformerEnd1.connectionKind.match('Y')) === null || _a === void 0 ? void 0 : _a.length) ? (_b = powerTransformerEnd1.connectionKind.match('Y')) === null || _b === void 0 ? void 0 : _b.length : 0);
|
|
1405
|
+
if (count == 0) {
|
|
1406
|
+
count = (((_c = powerTransformerEnd1.connectionKind.match('Z')) === null || _c === void 0 ? void 0 : _c.length) ? (_d = powerTransformerEnd1.connectionKind.match('Z')) === null || _d === void 0 ? void 0 : _d.length : 0);
|
|
1407
|
+
}
|
|
1408
|
+
count2 = (((_e = powerTransformerEnd2.connectionKind.match('Y')) === null || _e === void 0 ? void 0 : _e.length) ? (_f = powerTransformerEnd2.connectionKind.match('Y')) === null || _f === void 0 ? void 0 : _f.length : 0);
|
|
1409
|
+
if (count2 == 0) {
|
|
1410
|
+
count2 = (((_g = powerTransformerEnd2.connectionKind.match('Z')) === null || _g === void 0 ? void 0 : _g.length) ? (_h = powerTransformerEnd2.connectionKind.match('Z')) === null || _h === void 0 ? void 0 : _h.length : 0);
|
|
1411
|
+
}
|
|
1412
|
+
retVal = count + count2;
|
|
1413
|
+
break;
|
|
1414
|
+
}
|
|
1415
|
+
case (3): {
|
|
1416
|
+
const powerTransformerEnd1 = powerTransformer.powerTransformerEnd[0];
|
|
1417
|
+
const powerTransformerEnd2 = powerTransformer.powerTransformerEnd[1];
|
|
1418
|
+
const powerTransformerEnd3 = powerTransformer.powerTransformerEnd[2];
|
|
1419
|
+
count = (((_j = powerTransformerEnd1.connectionKind.match('Y')) === null || _j === void 0 ? void 0 : _j.length) ? (_k = powerTransformerEnd1.connectionKind.match('Y')) === null || _k === void 0 ? void 0 : _k.length : 0);
|
|
1420
|
+
if (count == 0) {
|
|
1421
|
+
count = (((_l = powerTransformerEnd1.connectionKind.match('Z')) === null || _l === void 0 ? void 0 : _l.length) ? (_m = powerTransformerEnd1.connectionKind.match('Z')) === null || _m === void 0 ? void 0 : _m.length : 0);
|
|
1422
|
+
}
|
|
1423
|
+
count2 = (((_o = powerTransformerEnd2.connectionKind.match('Y')) === null || _o === void 0 ? void 0 : _o.length) ? (_p = powerTransformerEnd2.connectionKind.match('Y')) === null || _p === void 0 ? void 0 : _p.length : 0);
|
|
1424
|
+
if (count2 == 0) {
|
|
1425
|
+
count2 = (((_q = powerTransformerEnd2.connectionKind.match('Z')) === null || _q === void 0 ? void 0 : _q.length) ? (_r = powerTransformerEnd2.connectionKind.match('Z')) === null || _r === void 0 ? void 0 : _r.length : 0);
|
|
1426
|
+
}
|
|
1427
|
+
count3 = (((_s = powerTransformerEnd3.connectionKind.match('Y')) === null || _s === void 0 ? void 0 : _s.length) ? (_t = powerTransformerEnd3.connectionKind.match('Y')) === null || _t === void 0 ? void 0 : _t.length : 0);
|
|
1428
|
+
if (count3 == 0) {
|
|
1429
|
+
count3 = (((_u = powerTransformerEnd3.connectionKind.match('Z')) === null || _u === void 0 ? void 0 : _u.length) ? (_v = powerTransformerEnd3.connectionKind.match('Z')) === null || _v === void 0 ? void 0 : _v.length : 0);
|
|
1430
|
+
}
|
|
1431
|
+
retVal = count + count2 + count3;
|
|
1432
|
+
break;
|
|
1433
|
+
}
|
|
1434
|
+
default:
|
|
1435
|
+
retVal = 0;
|
|
1436
|
+
}
|
|
1437
|
+
return retVal;
|
|
1438
|
+
}
|
|
1439
|
+
exports.getGroundingCountFromWindingConnection = getGroundingCountFromWindingConnection;
|
|
1580
1440
|
function getSpannungsband(propName, knotenSpannungsband, defaultValue) {
|
|
1581
1441
|
if (knotenSpannungsband) {
|
|
1582
1442
|
switch (propName) {
|