@enervance/insight-cim-model 0.0.101 → 0.0.103
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/analysis/analysis-neplan/digi-ons.js +1 -1
- package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -1
- package/dist/config/load.confings.js +1 -1
- package/dist/config/load.confings.js.map +1 -1
- package/dist/converter/integral7/ConverterIntegral7.d.ts +0 -0
- package/dist/converter/integral7/ConverterIntegral7.js +1 -0
- package/dist/converter/integral7/ConverterIntegral7.js.map +1 -0
- package/dist/converter/integral7/converter.integral7.d.ts +16 -4
- package/dist/converter/integral7/converter.integral7.js +904 -470
- package/dist/converter/integral7/converter.integral7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +1 -0
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js +22 -6
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
- package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +2 -0
- package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
- package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +2 -0
- package/dist/converter/integral7/interface-i7/export-frame-i7.js +9 -0
- package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
- package/dist/converter/integral7/model/integral/Kopfstation.d.ts +15 -2
- package/dist/converter/integral7/model/integral/Kopfstation.js +7 -0
- package/dist/converter/integral7/model/integral/Kopfstation.js.map +1 -1
- package/dist/converter/integral7/model/interfaces.d.ts +41 -3
- package/dist/converter/integral7/model/interfaces.js.map +1 -1
- package/dist/converter/integral7/sql/integral.sql.d.ts +2 -0
- package/dist/converter/integral7/sql/integral.sql.js +16 -8
- package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
- package/dist/converter/integral7/utils-cgmes-export.js +21 -0
- package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
- package/dist/converter/integral7/utils-trafo3w.d.ts +8 -1
- package/dist/converter/integral7/utils-trafo3w.js +57 -12
- package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
- package/dist/converter/integral7/utils.d.ts +45 -11
- package/dist/converter/integral7/utils.js +156 -45
- package/dist/converter/integral7/utils.js.map +1 -1
- package/dist/data-structures/graph/graph.d.ts +1 -0
- package/dist/data-structures/graph/graph.js +10 -1
- package/dist/data-structures/graph/graph.js.map +1 -1
- package/dist/data-structures/tree/GraphTree.js +5 -3
- package/dist/data-structures/tree/GraphTree.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan-contingency-analysis.js +1 -1
- package/dist/etl/etl-neplan/etl-neplan-contingency-analysis.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan-feederline.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan.js +77 -21
- package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js +1 -1
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js.map +1 -1
- package/dist/interfaces/model/core/IFeeder.d.ts +1 -1
- package/dist/model/core/BaseVoltage.d.ts +7 -0
- package/dist/model/core/BaseVoltage.js +13 -0
- package/dist/model/core/BaseVoltage.js.map +1 -1
- package/dist/model/core/ConnectivityNode.d.ts +3 -1
- package/dist/model/core/ConnectivityNode.js +13 -3
- package/dist/model/core/ConnectivityNode.js.map +1 -1
- package/dist/model/core/Equipment.js +0 -9
- package/dist/model/core/Equipment.js.map +1 -1
- package/dist/model/core/Feeder.d.ts +1 -1
- package/dist/model/core/Feeder.js +4 -4
- package/dist/model/core/Feeder.js.map +1 -1
- package/dist/model/core/VoltageLevel.js +1 -1
- package/dist/model/core/VoltageLevel.js.map +1 -1
- package/dist/model/dc/DCConverterUnit.js +2 -2
- package/dist/model/dc/DCConverterUnit.js.map +1 -1
- package/dist/model/dc/DCGround.d.ts +10 -0
- package/dist/model/dc/DCGround.js +32 -0
- package/dist/model/dc/DCGround.js.map +1 -0
- package/dist/model/equivalents/EquivalentBranch.d.ts +1 -0
- package/dist/model/equivalents/EquivalentBranch.js +1 -58
- package/dist/model/equivalents/EquivalentBranch.js.map +1 -1
- package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.d.ts +17 -0
- package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js +64 -0
- package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js.map +1 -0
- package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerEndInfo.js.map +1 -1
- package/dist/model/extensions/enervance/assetinfo/EVPowerTransformerInfo.js.map +1 -1
- package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js +5 -15
- package/dist/model/extensions/integral/common/INTEGRALMultiplierFactor.js.map +1 -1
- package/dist/model/extensions/integral/dc/DCConverterUnit.d.ts +11 -0
- package/dist/model/extensions/integral/dc/DCConverterUnit.js +34 -0
- package/dist/model/extensions/integral/dc/DCConverterUnit.js.map +1 -0
- package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.d.ts +5 -0
- package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js +5 -0
- package/dist/model/extensions/integral/equivalents/INTEGRALEquivalentInjection.js.map +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +4 -4
- package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js.map +1 -1
- package/dist/model/model/Model.d.ts +0 -0
- package/dist/model/model/Model.js +1 -0
- package/dist/model/model/Model.js.map +1 -0
- package/dist/model-container/model/ModelContainer.d.ts +3 -0
- package/dist/model-container/model/ModelContainer.js +5 -0
- package/dist/model-container/model/ModelContainer.js.map +1 -1
- package/dist/util/collection/util-graph2tree.js +9 -3
- package/dist/util/collection/util-graph2tree.js.map +1 -1
- package/dist/util/util-create.d.ts +6 -1
- package/dist/util/util-create.js +89 -6
- package/dist/util/util-create.js.map +1 -1
- package/dist/util/util-test.js +109 -0
- package/dist/util/util-test.js.map +1 -1
- package/dist/util/utils.d.ts +2 -0
- package/dist/util/utils.js +12 -1
- package/dist/util/utils.js.map +1 -1
- package/dist/utils2/cim.model.utils.js +1 -1
- package/dist/utils2/cim.model.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getGeoCoordinates = exports.ConverterIntegral7 = void 0;
|
|
3
|
+
exports.connectDCGround = exports.createNeutralGroundReturn = exports.createDCGround = exports.getGeoCoordinates = exports.ConverterIntegral7 = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs = require("fs");
|
|
6
6
|
const JSZip = require("jszip");
|
|
@@ -25,7 +25,6 @@ const ACDCConverterDCTerminal_1 = require("../../model/dc/ACDCConverterDCTermina
|
|
|
25
25
|
const CsConverter_1 = require("../../model/dc/CsConverter.js");
|
|
26
26
|
const CsOperatingModeKind_1 = require("../../model/dc/CsOperatingModeKind.js");
|
|
27
27
|
const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind.js");
|
|
28
|
-
const DCConverterUnit_1 = require("../../model/dc/DCConverterUnit.js");
|
|
29
28
|
const DCLine_1 = require("../../model/dc/DCLine.js");
|
|
30
29
|
const DCLineSegment_1 = require("../../model/dc/DCLineSegment.js");
|
|
31
30
|
const DCNode_1 = require("../../model/dc/DCNode.js");
|
|
@@ -39,7 +38,6 @@ const UnitMultiplier_1 = require("../../model/domain/UnitMultiplier.js");
|
|
|
39
38
|
const UnitSymbol_1 = require("../../model/domain/UnitSymbol.js");
|
|
40
39
|
const Voltage_1 = require("../../model/domain/Voltage.js");
|
|
41
40
|
const SynchronousMachineTimeConstantReactance_1 = require("../../model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js");
|
|
42
|
-
const EquivalentBranch_1 = require("../../model/equivalents/EquivalentBranch.js");
|
|
43
41
|
const EquivalentInjection_1 = require("../../model/equivalents/EquivalentInjection.js");
|
|
44
42
|
const AMPRIONBay_1 = require("../../model/extensions/amprion/core/AMPRIONBay.js");
|
|
45
43
|
const AMPRIONConnectivityNode_1 = require("../../model/extensions/amprion/core/AMPRIONConnectivityNode.js");
|
|
@@ -125,6 +123,12 @@ const dl_converter_i7_1 = require("./dl-convert/dl-converter-i7.js");
|
|
|
125
123
|
const util_graph2tree_1 = require("../../util/collection/util-graph2tree.js");
|
|
126
124
|
const parser_utils_1 = require("../../utils2/parser.utils.js");
|
|
127
125
|
const common_utils_1 = require("../../utils2/common.utils.js");
|
|
126
|
+
const SVCControlMode_1 = require("../../model/wires/SVCControlMode.js");
|
|
127
|
+
const DCGround_1 = require("../../model/dc/DCGround.js");
|
|
128
|
+
const INTEGRALEquivalentBranch_1 = require("../../model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js");
|
|
129
|
+
const PhaseTapChangerLinear_1 = require("../../model/wires/PhaseTapChangerLinear.js");
|
|
130
|
+
const DCConverterUnit_1 = require("../../model/extensions/integral/dc/DCConverterUnit.js");
|
|
131
|
+
const DCPolarityKind_1 = require("../../model/dc/DCPolarityKind.js");
|
|
128
132
|
class ConverterIntegral7 {
|
|
129
133
|
constructor() {
|
|
130
134
|
/** Exportnetze gemäß Konfiguration */
|
|
@@ -745,7 +749,7 @@ class ConverterIntegral7 {
|
|
|
745
749
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
746
750
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
747
751
|
const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_', i7Data.un.toString(), '_VL']), i7Data.kurzname, i7Schluessel);
|
|
748
|
-
const un = (0, utils_2.getU)(i7Data.un
|
|
752
|
+
const un = (0, utils_2.getU)(i7Data.un);
|
|
749
753
|
const baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, un, this.exportFramesBoundary);
|
|
750
754
|
vl.baseVoltage = baseVoltage;
|
|
751
755
|
cimModel.addVoltageLevel(vl);
|
|
@@ -839,7 +843,7 @@ class ConverterIntegral7 {
|
|
|
839
843
|
if (frame.boundary) {
|
|
840
844
|
connectivityNode.boundaryPoint = true;
|
|
841
845
|
}
|
|
842
|
-
const un = (0, utils_2.getU)(i7Data.un
|
|
846
|
+
const un = (0, utils_2.getU)(i7Data.un);
|
|
843
847
|
const baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, un, this.exportFramesBoundary);
|
|
844
848
|
/** Spannungsband */
|
|
845
849
|
integral7.targetVoltages.set(i7Data.id, { usoll: i7Data.usoll, umin: i7Data.umin, umax: i7Data.umax });
|
|
@@ -1052,6 +1056,8 @@ class ConverterIntegral7 {
|
|
|
1052
1056
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.BELASTUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.BELASTUNG), knotenSfIDs));
|
|
1053
1057
|
for (const i7Data of result) {
|
|
1054
1058
|
const load = targetClass === cim_class_names_1.ClassNames.ConformLoad ? new INTEGRALConformLoad_1.INTEGRALConformLoad((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_CL']), i7Data.kurzname) : new EnergyConsumer_1.EnergyConsumer((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_EC']), i7Data.kurzname);
|
|
1059
|
+
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
1060
|
+
const spannungslos = (0, parser_utils_1.isBooleanI7)(i7Data.spannungslos) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.spannungslos) : undefined;
|
|
1055
1061
|
this.setTopologyEnergySourceConsumerObject(cimModel, load, i7Data);
|
|
1056
1062
|
/** powerData 0 -> Wirkleistung
|
|
1057
1063
|
* 1 -> Blindleitung */
|
|
@@ -1060,9 +1066,11 @@ class ConverterIntegral7 {
|
|
|
1060
1066
|
cimModel.addMultiplierFactor(mf);
|
|
1061
1067
|
load.multiplierFactorUUID = mf.getUUID();
|
|
1062
1068
|
}
|
|
1069
|
+
/** SSH */
|
|
1063
1070
|
const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
|
|
1064
1071
|
load.p = powerData[0];
|
|
1065
1072
|
load.q = powerData[1];
|
|
1073
|
+
/** Extension */
|
|
1066
1074
|
load.p_mf = powerData[2] ? powerData[2] : undefined;
|
|
1067
1075
|
load.q_mf = powerData[3] ? powerData[3] : undefined;
|
|
1068
1076
|
//TODO
|
|
@@ -1070,6 +1078,7 @@ class ConverterIntegral7 {
|
|
|
1070
1078
|
conformLoad.qFixed = conformLoad.q; */
|
|
1071
1079
|
if (targetClass === cim_class_names_1.ClassNames.ConformLoad) {
|
|
1072
1080
|
const conformLoadGroup = cimModel.getObjectByName(defaultValuesConfig.ConformLoadGroup.name, cim_class_names_1.ClassNames.ConformLoadGroup);
|
|
1081
|
+
//createSvPowerFlow(cimModel, flussinfo3p.p, flusinfo3p)
|
|
1073
1082
|
load.loadGroup = conformLoadGroup;
|
|
1074
1083
|
cimModel.addConformLoad(load);
|
|
1075
1084
|
}
|
|
@@ -1140,6 +1149,7 @@ class ConverterIntegral7 {
|
|
|
1140
1149
|
});
|
|
1141
1150
|
}
|
|
1142
1151
|
convertGeneratoren(cimModel, knotenSfIDs, energyTypesConfig) {
|
|
1152
|
+
var _a;
|
|
1143
1153
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1144
1154
|
// Generatoren werden als GeneratingUnit und SynchronousMachine abgebildet
|
|
1145
1155
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.GENERATOR)) {
|
|
@@ -1148,17 +1158,17 @@ class ConverterIntegral7 {
|
|
|
1148
1158
|
const genType = this.generatorTypen.get(i7Data.nametyp);
|
|
1149
1159
|
const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_SM'], 32, true), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
1150
1160
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
1151
|
-
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) :
|
|
1152
|
-
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) :
|
|
1161
|
+
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
1162
|
+
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : undefined;
|
|
1153
1163
|
const mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
|
|
1154
1164
|
const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
|
|
1155
1165
|
const p = powerData[0];
|
|
1156
1166
|
const q = powerData[1];
|
|
1157
1167
|
const flagCondenserOperationMode = (0, parser_utils_1.isBooleanI7)(i7Data.flag_phasenschieber) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_phasenschieber) : true;
|
|
1158
|
-
const isRotatingPhaseShifter = mf !== undefined &&
|
|
1159
|
-
const isGenerator = (maxP
|
|
1160
|
-
const isMotor = (
|
|
1161
|
-
synchronousMachine.nameprimaertyp = i7Data.nameprimaertyp;
|
|
1168
|
+
const isRotatingPhaseShifter = (mf !== undefined && maxP === 0 && minP === 0) || flagCondenserOperationMode;
|
|
1169
|
+
const isGenerator = (maxP > 0 || maxP === undefined);
|
|
1170
|
+
const isMotor = (minP < 0 || minP === undefined);
|
|
1171
|
+
synchronousMachine.nameprimaertyp = i7Data.nameprimaertyp !== undefined ? i7Data.nameprimaertyp : (genType !== undefined ? genType.nameprimaertyp : undefined);
|
|
1162
1172
|
/** Set machine type */
|
|
1163
1173
|
if (isRotatingPhaseShifter && isGenerator && isMotor) {
|
|
1164
1174
|
synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor;
|
|
@@ -1189,11 +1199,11 @@ class ConverterIntegral7 {
|
|
|
1189
1199
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
|
|
1190
1200
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
|
|
1191
1201
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
|
|
1192
|
-
const generatorOperationMode = p !== undefined && p
|
|
1202
|
+
const generatorOperationMode = p !== undefined && p > 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generator
|
|
1193
1203
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
|
|
1194
1204
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenser
|
|
1195
1205
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
|
|
1196
|
-
const motorOperationMode = p !== undefined && p
|
|
1206
|
+
const motorOperationMode = p !== undefined && p < 0 && (synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motor
|
|
1197
1207
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrMotor
|
|
1198
1208
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.motorOrCondenser
|
|
1199
1209
|
|| synchronousMachine.type === SynchronousMachineKind_1.SynchronousMachineKind.generatorOrCondenserOrMotor);
|
|
@@ -1202,7 +1212,6 @@ class ConverterIntegral7 {
|
|
|
1202
1212
|
}
|
|
1203
1213
|
else if (!condenserOperationMode && generatorOperationMode && !motorOperationMode) {
|
|
1204
1214
|
synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.generator;
|
|
1205
|
-
synchronousMachine.type = SynchronousMachineKind_1.SynchronousMachineKind.generator;
|
|
1206
1215
|
}
|
|
1207
1216
|
else if (!condenserOperationMode && !generatorOperationMode && motorOperationMode) {
|
|
1208
1217
|
synchronousMachine.operatingMode = SynchronousMachineOperatingMode_1.SynchronousMachineOperatingMode.motor;
|
|
@@ -1245,60 +1254,54 @@ class ConverterIntegral7 {
|
|
|
1245
1254
|
synchronousMachine.q_mf = powerData[3] ? powerData[3] * -1 : undefined; //convert to load sign system
|
|
1246
1255
|
/** TODO Berechnung überprüfen => DONE */
|
|
1247
1256
|
/* const s = Math.sqrt(Math.pow(maxP, 2) + Math.pow(maxQvonPmax, 2));*/
|
|
1248
|
-
const sr = (0, parser_utils_1.isNumericI7)(i7Data.sr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sr) : genType === null || genType === void 0 ? void 0 : genType.sr;
|
|
1257
|
+
const sr = (0, parser_utils_1.isNumericI7)(i7Data.sr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sr) : ((0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.sr) ? (0, parser_utils_1.convertToNumberI7)(genType.sr) : undefined);
|
|
1249
1258
|
if (sr && sr >= 0) {
|
|
1250
1259
|
synchronousMachine.ratedS = sr;
|
|
1251
1260
|
}
|
|
1252
1261
|
else {
|
|
1253
1262
|
synchronousMachine.ratedS = Math.sqrt(Math.pow(maxP, 2) + Math.pow(maxQvonPmax, 2));
|
|
1254
1263
|
}
|
|
1255
|
-
const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : (0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.ur) ? genType.ur : undefined;
|
|
1264
|
+
const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : ((0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.ur) ? genType.ur : undefined);
|
|
1256
1265
|
const usoll = (0, parser_utils_1.isNumericI7)(i7Data.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7Data.usoll) : ur;
|
|
1257
|
-
const cosphir = (0, parser_utils_1.isNumericI7)(i7Data.cosphir) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cosphir) : genType.cosphir;
|
|
1258
|
-
synchronousMachine.ratedU = ur ? ur : usoll;
|
|
1259
|
-
|
|
1260
|
-
synchronousMachine.aggregate = true; //synchronousMachine.aggregate = false;
|
|
1266
|
+
const cosphir = (0, parser_utils_1.isNumericI7)(i7Data.cosphir) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cosphir) : ((0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.cosphir) ? (0, parser_utils_1.convertToNumberI7)(genType.cosphir) : undefined);
|
|
1267
|
+
synchronousMachine.ratedU = ur !== undefined ? ur : usoll;
|
|
1268
|
+
synchronousMachine.aggregate = false;
|
|
1261
1269
|
/** Percent of the coordinated reactive control that comes from this machine.*/
|
|
1262
1270
|
/** TODO qPercent */
|
|
1263
1271
|
// synchronousMachine.qPercent = 0; // I7 Export
|
|
1264
|
-
/** TODO ratedPowerFactor */
|
|
1265
|
-
/**Export des Leistungszahlfaktor cosinus phi.*/
|
|
1266
1272
|
synchronousMachine.ratedPowerFactor = cosphir ? cosphir : undefined;
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
synchronousMachine.r = (0, parser_utils_1.isNumericI7)(i7Data.rg) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rg) : genType === null || genType === void 0 ? void 0 : genType.rg;
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1273
|
+
/** EQ-SC */
|
|
1274
|
+
synchronousMachine.earthing = ((_a = i7Data.erdung) === null || _a === void 0 ? void 0 : _a.length) > 0 && i7Data.erdung != 'isoliert' ? true : false;
|
|
1275
|
+
synchronousMachine.r = (0, parser_utils_1.isNumericI7)(i7Data.rg) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rg) : ((0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.rg) ? (0, parser_utils_1.convertToNumberI7)(genType.rg) : undefined);
|
|
1276
|
+
synchronousMachine.r0 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r0) : undefined;
|
|
1277
|
+
synchronousMachine.r2 = 0;
|
|
1278
|
+
synchronousMachine.x0 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x0) : undefined;
|
|
1279
|
+
synchronousMachine.x2 = 0;
|
|
1280
|
+
synchronousMachine.satDirectSubtransX = (0, parser_utils_1.isNumericI7)(i7Data.xd2s) ? (0, parser_utils_1.convertToNumberI7)(i7Data.xd2s) : ((0, parser_utils_1.isNumericI7)(genType === null || genType === void 0 ? void 0 : genType.xd2s) ? (0, parser_utils_1.convertToNumberI7)(genType.xd2s) : undefined);
|
|
1275
1281
|
// synchronousMachine.earthingStarPointR
|
|
1276
1282
|
// synchronousMachine.earthingStarPointX
|
|
1277
|
-
|
|
1283
|
+
synchronousMachine.ikk = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_min) : ((0, parser_utils_1.isNumericI7)(i7Data.sk_akt) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_akt) : ((0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_max) : undefined));
|
|
1278
1284
|
// synchronousMachine.mu: number;
|
|
1279
1285
|
// synchronousMachine.satDirectSyncX: number;
|
|
1280
1286
|
// synchronousMachine.satDirectTransX: number;
|
|
1281
1287
|
// synchronousMachine.shortCircuitRotorType: ShortCircuitRotorKind;
|
|
1282
1288
|
// synchronousMachine.voltageRegulationRange: number;
|
|
1283
|
-
// synchronousMachine.p: number;
|
|
1284
|
-
// synchronousMachine.q: number;
|
|
1285
|
-
// synchronousMachine.controlEnabled: number;
|
|
1286
1289
|
/** Create ReactiveCapabilityCurves */
|
|
1287
1290
|
if (minP && maxP && minQvonPmin && maxQvonPmax) {
|
|
1288
|
-
const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve(
|
|
1291
|
+
const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc), (0, util_create_1.createNotation)(['CurveData', synchronousMachine.mrid, '_RCC']));
|
|
1289
1292
|
reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
|
|
1290
1293
|
reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
|
|
1291
1294
|
reactiveCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
1292
1295
|
reactiveCapabilityCurve.y2Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
1293
1296
|
//reactive capability curve data for pmin
|
|
1294
|
-
const curveData1 = new CurveData_1.CurveData(
|
|
1297
|
+
const curveData1 = new CurveData_1.CurveData((0, parser_utils_1.getUUID)(i7Data.guid_cd1));
|
|
1295
1298
|
curveData1.curve = reactiveCapabilityCurve;
|
|
1296
1299
|
curveData1.xvalue = minP; //pMin
|
|
1297
1300
|
curveData1.y1value = minQvonPmin; //qMin pMin
|
|
1298
1301
|
curveData1.y2value = maxQvonPmin; //qMax pMin
|
|
1299
1302
|
cimModel.addCurveData(curveData1);
|
|
1300
1303
|
//reactive capability curve data for pmax
|
|
1301
|
-
const curveData2 = new CurveData_1.CurveData(
|
|
1304
|
+
const curveData2 = new CurveData_1.CurveData((0, parser_utils_1.getUUID)(i7Data.guid_cd2));
|
|
1302
1305
|
curveData2.curve = reactiveCapabilityCurve;
|
|
1303
1306
|
curveData2.xvalue = maxP; //pMax
|
|
1304
1307
|
curveData2.y1value = minQvonPmax; //qMin pMax
|
|
@@ -1307,20 +1310,19 @@ class ConverterIntegral7 {
|
|
|
1307
1310
|
cimModel.addReactiveCapabilityCurve(reactiveCapabilityCurve);
|
|
1308
1311
|
synchronousMachine.initialReactiveCapabilityCurveUUID = reactiveCapabilityCurve.mrid;
|
|
1309
1312
|
}
|
|
1310
|
-
|
|
1313
|
+
/** RegulatingControl */
|
|
1311
1314
|
let regulatingControl = undefined;
|
|
1312
1315
|
// TODO targetDeadband: ab welcher spannung soll reguliert werden.
|
|
1313
1316
|
switch (i7Data.spannungsgeregelt) {
|
|
1314
|
-
// TODO Welche Modi sind möglich?
|
|
1315
1317
|
case 1: {
|
|
1316
|
-
regulatingControl = new RegulatingControl_1.RegulatingControl(
|
|
1317
|
-
regulatingControl.targetValue = usoll;
|
|
1318
|
+
regulatingControl = new RegulatingControl_1.RegulatingControl((0, parser_utils_1.getUUID)(i7Data.guid_rc), (0, util_create_1.createNotation)(['GEN'], 32, true));
|
|
1319
|
+
regulatingControl.targetValue = usoll !== undefined ? usoll : synchronousMachine.ratedU;
|
|
1318
1320
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
1319
1321
|
regulatingControl.discrete = false;
|
|
1320
|
-
regulatingControl.enabled =
|
|
1321
|
-
synchronousMachine.controlEnabled =
|
|
1322
|
+
regulatingControl.enabled = true;
|
|
1323
|
+
synchronousMachine.controlEnabled = true;
|
|
1322
1324
|
regulatingControl.addRegulatingCondEq(synchronousMachine);
|
|
1323
|
-
synchronousMachine.regulatingControlUUID = regulatingControl.
|
|
1325
|
+
synchronousMachine.regulatingControlUUID = regulatingControl.getUUID();
|
|
1324
1326
|
cimModel.addRegulatingControl(regulatingControl);
|
|
1325
1327
|
break;
|
|
1326
1328
|
}
|
|
@@ -1336,18 +1338,18 @@ class ConverterIntegral7 {
|
|
|
1336
1338
|
if (generatingUnitConfig) {
|
|
1337
1339
|
switch (generatingUnitConfig.class) {
|
|
1338
1340
|
case 'ThermalGeneratingUnit': {
|
|
1339
|
-
generatingUnit = new ThermalGeneratingUnit_1.ThermalGeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1341
|
+
generatingUnit = new ThermalGeneratingUnit_1.ThermalGeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_TGU']), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
1340
1342
|
if (generatingUnitConfig.fuelType) {
|
|
1341
1343
|
(0, utils_2.generateFuelType)(i7Data.nameprimaertyp, generatingUnitConfig.fuelType, generatingUnit, cimModel);
|
|
1342
1344
|
}
|
|
1343
1345
|
break;
|
|
1344
1346
|
}
|
|
1345
1347
|
case 'SolarGeneratingUnit': {
|
|
1346
|
-
generatingUnit = new SolarGeneratingUnit_1.SolarGeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1348
|
+
generatingUnit = new SolarGeneratingUnit_1.SolarGeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_SGU']), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
1347
1349
|
break;
|
|
1348
1350
|
}
|
|
1349
1351
|
case 'WindGeneratingUnit': {
|
|
1350
|
-
generatingUnit = new WindGeneratingUnit_1.WindGeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1352
|
+
generatingUnit = new WindGeneratingUnit_1.WindGeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_WGU']), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
1351
1353
|
switch (generatingUnitConfig.fuelType) {
|
|
1352
1354
|
case 'onshore': {
|
|
1353
1355
|
generatingUnit.windGenUnitType = WindGenUnitKind_1.WindGenUnitKind.onshore;
|
|
@@ -1366,17 +1368,17 @@ class ConverterIntegral7 {
|
|
|
1366
1368
|
break;
|
|
1367
1369
|
}
|
|
1368
1370
|
case 'NuclearGeneratingUnit': {
|
|
1369
|
-
generatingUnit = new NuclearGeneratingUnit_1.NuclearGeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1371
|
+
generatingUnit = new NuclearGeneratingUnit_1.NuclearGeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_NGU']), i7Data.kurzname);
|
|
1370
1372
|
break;
|
|
1371
1373
|
}
|
|
1372
1374
|
case 'HydroGeneratingUnit': {
|
|
1373
|
-
generatingUnit = new HydroGeneratingUnit_1.HydroGeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1375
|
+
generatingUnit = new HydroGeneratingUnit_1.HydroGeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_HGU']), i7Data.kurzname);
|
|
1374
1376
|
/** Default pumpAndGenerator*/
|
|
1375
1377
|
generatingUnit.energyConversionCapability = HydroEnergyConversionKind_1.HydroEnergyConversionKind.pumpAndGenerator;
|
|
1376
1378
|
break;
|
|
1377
1379
|
}
|
|
1378
1380
|
default: {
|
|
1379
|
-
generatingUnit = new GeneratingUnit_1.GeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1381
|
+
generatingUnit = new GeneratingUnit_1.GeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_GU']), i7Data.kurzname);
|
|
1380
1382
|
break;
|
|
1381
1383
|
}
|
|
1382
1384
|
}
|
|
@@ -1384,7 +1386,7 @@ class ConverterIntegral7 {
|
|
|
1384
1386
|
else {
|
|
1385
1387
|
/** Wenn über Config keine spezielle Klasse bestimmt wurde,
|
|
1386
1388
|
* dann initialisiere die Standardklasse GeneratingUnit. */
|
|
1387
|
-
generatingUnit = new GeneratingUnit_1.GeneratingUnit((0, parser_utils_1.getUUID)(
|
|
1389
|
+
generatingUnit = new GeneratingUnit_1.GeneratingUnit((0, parser_utils_1.getUUID)(i7Data.guid_gu), (0, util_create_1.createNotation)([i7Data.bezeichner, '_GU']), i7Data.kurzname);
|
|
1388
1390
|
}
|
|
1389
1391
|
// TODO: genControlSource is not required.
|
|
1390
1392
|
//generatingUnit.genControlSource = GeneratorControlSource.onAGC;
|
|
@@ -1487,10 +1489,10 @@ class ConverterIntegral7 {
|
|
|
1487
1489
|
const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
|
|
1488
1490
|
const p = powerData[0];
|
|
1489
1491
|
const q = powerData[1];
|
|
1490
|
-
asynchronousMachine.setActivePower(p
|
|
1491
|
-
asynchronousMachine.setReactivePower(q
|
|
1492
|
-
asynchronousMachine.p_mf = powerData[2] ? powerData[2]
|
|
1493
|
-
asynchronousMachine.q_mf = powerData[3] ? powerData[3]
|
|
1492
|
+
asynchronousMachine.setActivePower(p);
|
|
1493
|
+
asynchronousMachine.setReactivePower(q);
|
|
1494
|
+
asynchronousMachine.p_mf = powerData[2] ? powerData[2] : undefined;
|
|
1495
|
+
asynchronousMachine.q_mf = powerData[3] ? powerData[3] : undefined;
|
|
1494
1496
|
asynchronousMachine.controlEnabled = false;
|
|
1495
1497
|
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : true;
|
|
1496
1498
|
asynchronousMachine.normallyInService = inBetrieb;
|
|
@@ -1680,7 +1682,7 @@ class ConverterIntegral7 {
|
|
|
1680
1682
|
const prio = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
|
|
1681
1683
|
externalNetworkInjection.referencePriority = prio;
|
|
1682
1684
|
externalNetworkInjection.aggregate = true; // default Wert im I7 Export
|
|
1683
|
-
externalNetworkInjection.ikSecond =
|
|
1685
|
+
externalNetworkInjection.ikSecond = undefined; // default Wert im I7 Export
|
|
1684
1686
|
/* externalNetworkInjection.voltageFactor
|
|
1685
1687
|
externalNetworkInjection.maxInitialSymShCCurrent
|
|
1686
1688
|
externalNetworkInjection.minInitialSymShCCurrent
|
|
@@ -1706,19 +1708,23 @@ class ConverterIntegral7 {
|
|
|
1706
1708
|
convertErsatzQuerZweige2EquivalentInjection(cimModel, result) {
|
|
1707
1709
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1708
1710
|
for (const i7Data of result) {
|
|
1709
|
-
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
1710
1711
|
const einspeisePrio = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : 1;
|
|
1711
1712
|
const flag_lfl = (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_lfl);
|
|
1712
1713
|
const flag_ks = (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ks);
|
|
1713
1714
|
const usoll = (0, parser_utils_1.isNumericI7)(i7Data.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7Data.usoll) : undefined;
|
|
1714
1715
|
const r_ext = (0, parser_utils_1.isNumericI7)(i7Data.r_ext) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r_ext) : undefined;
|
|
1715
1716
|
const x_ext = (0, parser_utils_1.isNumericI7)(i7Data.x_ext) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x_ext) : undefined;
|
|
1717
|
+
const sk2 = (0, parser_utils_1.isNumericI7)(i7Data.sk) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk) : undefined;
|
|
1718
|
+
const p_ein = (0, parser_utils_1.isNumericI7)(i7Data.p_ein) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_ein) * -1 : undefined; //Einspeisung: Erzeugerzählpfeilsystem, d.h. eine Übersetzung ins Verbraucherzählpfeilsystem wird durchgeführt
|
|
1719
|
+
const q_ein = (0, parser_utils_1.isNumericI7)(i7Data.q_ein) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_ein) * -1 : undefined; //Einspeisung: Erzeugerzählpfeilsystem, d.h. eine Übersetzung ins Verbraucherzählpfeilsystem wird durchgeführt
|
|
1720
|
+
const kr = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
1721
|
+
const r0 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r1) : undefined;
|
|
1722
|
+
const r1 = (0, parser_utils_1.isNumericI7)(i7Data.r1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r1) : undefined;
|
|
1723
|
+
const x0 = (0, parser_utils_1.isNumericI7)(i7Data.r1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r1) : undefined;
|
|
1724
|
+
const x1 = (0, parser_utils_1.isNumericI7)(i7Data.r1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r1) : undefined;
|
|
1716
1725
|
const equivalentInjection = new INTEGRALEquivalentInjection_1.INTEGRALEquivalentInjection((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_EI']), i7Data.kurzname);
|
|
1717
|
-
equivalentInjection.normallyInService = inBetrieb;
|
|
1718
|
-
/** TODO: Take flag_lfl und flag_ks into account. export Extended Ward r_ext and x_ext if given. Devide between flag_lfl === true && flag_ks ===true
|
|
1719
|
-
* flag_lfl === true && !flag_ks and !flag_lfl && flag_ks see documentation for eq and eq-sc parameter to export for equivalentInjections */
|
|
1720
1726
|
/** Export Extended Ward equivalent with voltage regulation */
|
|
1721
|
-
if (flag_lfl && usoll && (r_ext || x_ext)) {
|
|
1727
|
+
if (flag_lfl && !flag_ks && usoll && (r_ext !== 0 || x_ext !== 0)) {
|
|
1722
1728
|
//is regulating equivalent equipment
|
|
1723
1729
|
equivalentInjection.regulationCapability = true;
|
|
1724
1730
|
equivalentInjection.regulationStatus = true;
|
|
@@ -1732,8 +1738,52 @@ class ConverterIntegral7 {
|
|
|
1732
1738
|
equivalentInjection.x0 = 1e9;
|
|
1733
1739
|
equivalentInjection.x2 = 1e9;
|
|
1734
1740
|
}
|
|
1735
|
-
|
|
1736
|
-
|
|
1741
|
+
else if (!flag_lfl && flag_ks) {
|
|
1742
|
+
equivalentInjection.regulationCapability = false;
|
|
1743
|
+
equivalentInjection.r = r1;
|
|
1744
|
+
equivalentInjection.r0 = r0;
|
|
1745
|
+
equivalentInjection.r2 = r1;
|
|
1746
|
+
equivalentInjection.x = x1;
|
|
1747
|
+
equivalentInjection.x0 = x0;
|
|
1748
|
+
equivalentInjection.x2 = x1;
|
|
1749
|
+
}
|
|
1750
|
+
else if (flag_lfl && usoll && einspeisePrio) {
|
|
1751
|
+
equivalentInjection.regulationCapability = true;
|
|
1752
|
+
equivalentInjection.regulationStatus = true;
|
|
1753
|
+
equivalentInjection.regulationTarget = usoll;
|
|
1754
|
+
equivalentInjection.r = r1;
|
|
1755
|
+
equivalentInjection.r0 = r0;
|
|
1756
|
+
equivalentInjection.r2 = r1;
|
|
1757
|
+
equivalentInjection.x = x1;
|
|
1758
|
+
equivalentInjection.x0 = x0;
|
|
1759
|
+
equivalentInjection.x2 = x1;
|
|
1760
|
+
}
|
|
1761
|
+
else if ((r_ext !== 0 || x_ext !== 0)) {
|
|
1762
|
+
equivalentInjection.regulationCapability = false;
|
|
1763
|
+
equivalentInjection.rExt = r_ext;
|
|
1764
|
+
equivalentInjection.r = 1e9;
|
|
1765
|
+
equivalentInjection.r0 = 1e9;
|
|
1766
|
+
equivalentInjection.r2 = 1e9;
|
|
1767
|
+
equivalentInjection.xExt = x_ext;
|
|
1768
|
+
equivalentInjection.x = 1e9;
|
|
1769
|
+
equivalentInjection.x0 = 1e9;
|
|
1770
|
+
equivalentInjection.x2 = 1e9;
|
|
1771
|
+
}
|
|
1772
|
+
else {
|
|
1773
|
+
equivalentInjection.regulationCapability = false;
|
|
1774
|
+
equivalentInjection.r = 1e9;
|
|
1775
|
+
equivalentInjection.r0 = 1e9;
|
|
1776
|
+
equivalentInjection.r2 = 1e9;
|
|
1777
|
+
equivalentInjection.x = 1e9;
|
|
1778
|
+
equivalentInjection.x0 = 1e9;
|
|
1779
|
+
equivalentInjection.x2 = 1e9;
|
|
1780
|
+
}
|
|
1781
|
+
equivalentInjection.sk2 = sk2;
|
|
1782
|
+
equivalentInjection.p_ein = p_ein;
|
|
1783
|
+
equivalentInjection.q_ein = q_ein;
|
|
1784
|
+
equivalentInjection.einspeisePrio = einspeisePrio;
|
|
1785
|
+
equivalentInjection.kr = kr;
|
|
1786
|
+
equivalentInjection.aggregate = true; // default Wert im I7 Export. Not needed for EquivalentInjection, BusbarSection, PowerTransformerEnd, EquivalentShunt, EquivalentBranch
|
|
1737
1787
|
this.setTopologyEnergySourceConsumerObject(cimModel, equivalentInjection, i7Data);
|
|
1738
1788
|
// ToDo PSRType
|
|
1739
1789
|
cimModel.addEquivalentInjection(equivalentInjection);
|
|
@@ -1881,7 +1931,7 @@ class ConverterIntegral7 {
|
|
|
1881
1931
|
// Topologie
|
|
1882
1932
|
/* Anfang
|
|
1883
1933
|
* 3 moegliche Anschluesse
|
|
1884
|
-
* KontenSo ->
|
|
1934
|
+
* KontenSo -> Anschlusspunkt
|
|
1885
1935
|
* KnotenSf -> Schaltfeldpunkt
|
|
1886
1936
|
* KnotenZw -> Netzschlaufe -> KnotenSo -> Anschlusspunkt */
|
|
1887
1937
|
const i7Schluessel = integral_prefix_1.ERSATZLAENGSZWEIG_PRAEFIX +
|
|
@@ -1893,49 +1943,86 @@ class ConverterIntegral7 {
|
|
|
1893
1943
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
1894
1944
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.stkabname);
|
|
1895
1945
|
const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid);
|
|
1896
|
-
const equivalentBranch = new
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
equivalentBranch.negativeR21 = i7Data.r21_lfl;
|
|
1900
|
-
equivalentBranch.negativeX12 = i7Data.x12_lfl;
|
|
1901
|
-
equivalentBranch.negativeX21 = i7Data.x21_lfl;
|
|
1902
|
-
|
|
1903
|
-
equivalentBranch.positiveR12 = i7Data.r12_lfl;
|
|
1904
|
-
equivalentBranch.positiveR21 = i7Data.r21_lfl;
|
|
1905
|
-
equivalentBranch.positiveX12 = i7Data.x12_lfl;
|
|
1906
|
-
equivalentBranch.positiveX21 = i7Data.x21_lfl;
|
|
1907
|
-
|
|
1908
|
-
equivalentBranch.r = equivalentBranch.negativeR12;
|
|
1909
|
-
equivalentBranch.x = equivalentBranch.negativeX21;
|
|
1910
|
-
equivalentBranch.r21 = equivalentBranch.positiveR12;
|
|
1911
|
-
|
|
1912
|
-
equivalentBranch.x21 = equivalentBranch.negativeX21*/
|
|
1913
|
-
/* equivalentBranch.zeroR12 = i7Data.r12_ks;
|
|
1914
|
-
equivalentBranch.zeroR21 = i7Data.r12_ks;
|
|
1915
|
-
equivalentBranch.zeroX12 = isNaN(i7Data.x12_ks) ? 0.1 : i7Data.x12_ks;
|
|
1916
|
-
equivalentBranch.zeroX21 = isNaN(i7Data.x12_ks) ? 0.1 : i7Data.x12_ks;*/
|
|
1917
|
-
const ur1 = (0, utils_2.getU)(i7Data.ur1, defaultValuesConfig.DefaultVoltage);
|
|
1918
|
-
const ur2 = (0, utils_2.getU)(i7Data.ur2, defaultValuesConfig.DefaultVoltage);
|
|
1919
|
-
const baseVoltageUr1 = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, ur1, this.exportFramesBoundary);
|
|
1920
|
-
const baseVoltageUr2 = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, ur2, this.exportFramesBoundary);
|
|
1921
|
-
if (baseVoltageUr1) {
|
|
1922
|
-
equivalentBranch.baseVoltage = baseVoltageUr1;
|
|
1923
|
-
}
|
|
1924
|
-
else if (baseVoltageUr2) {
|
|
1925
|
-
equivalentBranch.baseVoltage = baseVoltageUr2;
|
|
1926
|
-
}
|
|
1946
|
+
const equivalentBranch = new INTEGRALEquivalentBranch_1.INTEGRALEquivalentBranch(rdfid, (0, util_create_1.createNotation)([i7Data.bezeichner, '_', rdfid.substring(0, 8), '_EB'], 32, true), i7Data.kurzname, i7Schluessel);
|
|
1947
|
+
const flag_lfl = (0, parser_utils_1.isBooleanI7)(i7Data.flag_lfl) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_lfl) : false;
|
|
1948
|
+
const flag_ks = (0, parser_utils_1.isBooleanI7)(i7Data.flag_ks) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ks) : false;
|
|
1927
1949
|
// Topologie
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
/*
|
|
1934
|
-
const startUUID = this.integralID2UUID.get(i7Data.aknoten);
|
|
1935
|
-
const targetUUID = this.integralID2UUID.get(i7Data.eknoten);
|
|
1936
|
-
*/
|
|
1950
|
+
/** Anfang
|
|
1951
|
+
* 3 moegliche Anschluesse
|
|
1952
|
+
* KontenSo -> Anschluesspunkt
|
|
1953
|
+
* KnotenSf -> Schaltfeldpunkt
|
|
1954
|
+
* KnotenZw -> Netzschlaufe -> KnotenSo -> Anschlusspunkt */
|
|
1937
1955
|
this.createBoundaryConnection(frame, equivalentBranch, i7Data.aknoten, PhaseCode_1.PhaseCode.ABC);
|
|
1938
1956
|
this.createBoundaryConnection(frame, equivalentBranch, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
|
|
1957
|
+
/**EQ */
|
|
1958
|
+
if (flag_lfl || (flag_lfl && flag_ks)) {
|
|
1959
|
+
equivalentBranch.r = (0, parser_utils_1.isNumericI7)(i7Data.r12_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r12_lfl) : 0;
|
|
1960
|
+
equivalentBranch.x = (0, parser_utils_1.isNumericI7)(i7Data.x12_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x12_lfl) : 0;
|
|
1961
|
+
equivalentBranch.r21 = (0, parser_utils_1.isNumericI7)(i7Data.r21_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r21_lfl) : equivalentBranch.r;
|
|
1962
|
+
equivalentBranch.x21 = (0, parser_utils_1.isNumericI7)(i7Data.x21_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x21_lfl) : equivalentBranch.x;
|
|
1963
|
+
equivalentBranch.positiveR12 = (0, parser_utils_1.isNumericI7)(i7Data.r12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r12_ks) : 10e9;
|
|
1964
|
+
equivalentBranch.positiveR21 = equivalentBranch.positiveR12;
|
|
1965
|
+
equivalentBranch.positiveX12 = (0, parser_utils_1.isNumericI7)(i7Data.x12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x12_ks) : 10e9;
|
|
1966
|
+
equivalentBranch.positiveX21 = equivalentBranch.positiveX12;
|
|
1967
|
+
equivalentBranch.negativeR12 = equivalentBranch.positiveR12;
|
|
1968
|
+
equivalentBranch.negativeR21 = equivalentBranch.positiveR21;
|
|
1969
|
+
equivalentBranch.negativeX12 = equivalentBranch.positiveX12;
|
|
1970
|
+
equivalentBranch.negativeX21 = equivalentBranch.positiveX21;
|
|
1971
|
+
equivalentBranch.zeroR12 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r0) : 10e9;
|
|
1972
|
+
equivalentBranch.zeroR21 = equivalentBranch.zeroR12;
|
|
1973
|
+
equivalentBranch.zeroX12 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x0) : 10e9;
|
|
1974
|
+
equivalentBranch.zeroX21 = equivalentBranch.zeroX12;
|
|
1975
|
+
}
|
|
1976
|
+
else if (!flag_lfl && flag_ks) {
|
|
1977
|
+
/**EQ-SC */
|
|
1978
|
+
equivalentBranch.positiveR12 = (0, parser_utils_1.isNumericI7)(i7Data.r12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r12_ks) : 10e9;
|
|
1979
|
+
equivalentBranch.positiveR21 = equivalentBranch.positiveR12;
|
|
1980
|
+
equivalentBranch.positiveX12 = (0, parser_utils_1.isNumericI7)(i7Data.x12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x12_ks) : 10e9;
|
|
1981
|
+
equivalentBranch.positiveX21 = equivalentBranch.positiveX12;
|
|
1982
|
+
equivalentBranch.negativeR12 = equivalentBranch.positiveR12;
|
|
1983
|
+
equivalentBranch.negativeR21 = equivalentBranch.positiveR21;
|
|
1984
|
+
equivalentBranch.negativeX12 = equivalentBranch.positiveX12;
|
|
1985
|
+
equivalentBranch.negativeX21 = equivalentBranch.positiveX21;
|
|
1986
|
+
equivalentBranch.zeroR12 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r0) : 10e9;
|
|
1987
|
+
equivalentBranch.zeroR21 = equivalentBranch.zeroR12;
|
|
1988
|
+
equivalentBranch.zeroX12 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x0) : 10e9;
|
|
1989
|
+
equivalentBranch.zeroX21 = equivalentBranch.zeroX12;
|
|
1990
|
+
}
|
|
1991
|
+
else { //If neither flag_lfl nor flag_ks are specified, any impedance value that is specified will be exported.
|
|
1992
|
+
equivalentBranch.r = (0, parser_utils_1.isNumericI7)(i7Data.r12_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r12_lfl) : 0;
|
|
1993
|
+
equivalentBranch.x = (0, parser_utils_1.isNumericI7)(i7Data.x12_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x12_lfl) : 0;
|
|
1994
|
+
equivalentBranch.r21 = (0, parser_utils_1.isNumericI7)(i7Data.r21_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r21_lfl) : equivalentBranch.r;
|
|
1995
|
+
equivalentBranch.x21 = (0, parser_utils_1.isNumericI7)(i7Data.x21_lfl) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x21_lfl) : equivalentBranch.x;
|
|
1996
|
+
equivalentBranch.positiveR12 = (0, parser_utils_1.isNumericI7)(i7Data.r12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r12_ks) : 10e9;
|
|
1997
|
+
equivalentBranch.positiveR21 = equivalentBranch.positiveR12;
|
|
1998
|
+
equivalentBranch.positiveX12 = (0, parser_utils_1.isNumericI7)(i7Data.x12_ks) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x12_ks) : 10e9;
|
|
1999
|
+
equivalentBranch.positiveX21 = equivalentBranch.positiveX12;
|
|
2000
|
+
equivalentBranch.negativeR12 = equivalentBranch.positiveR12;
|
|
2001
|
+
equivalentBranch.negativeR21 = equivalentBranch.positiveR21;
|
|
2002
|
+
equivalentBranch.negativeX12 = equivalentBranch.positiveX12;
|
|
2003
|
+
equivalentBranch.negativeX21 = equivalentBranch.positiveX21;
|
|
2004
|
+
equivalentBranch.zeroR12 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.r0) : 10e9;
|
|
2005
|
+
equivalentBranch.zeroR21 = equivalentBranch.zeroR12;
|
|
2006
|
+
equivalentBranch.zeroX12 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.x0) : 10e9;
|
|
2007
|
+
equivalentBranch.zeroX21 = equivalentBranch.zeroX12;
|
|
2008
|
+
this.logger.warn(`Ersatzlängszweig mit GUID ${equivalentBranch.getUUID()} sind die Flags flag_lfl sowie flag_ks nicht definiert.`);
|
|
2009
|
+
}
|
|
2010
|
+
const bdf = [];
|
|
2011
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten)));
|
|
2012
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten)));
|
|
2013
|
+
const baseVoltages = (0, utils_2.getTerminalUn)(cimModel, bdf, equivalentBranch);
|
|
2014
|
+
if (baseVoltages[0]) {
|
|
2015
|
+
equivalentBranch.baseVoltage = baseVoltages[0];
|
|
2016
|
+
}
|
|
2017
|
+
else if (baseVoltages[1]) {
|
|
2018
|
+
equivalentBranch.baseVoltage = baseVoltages[1];
|
|
2019
|
+
}
|
|
2020
|
+
else {
|
|
2021
|
+
equivalentBranch.baseVoltage = undefined;
|
|
2022
|
+
this.logger.error(`Ersatzlängszweig mit GUID ${equivalentBranch.getUUID()} konnte keine Bezugsspannung ermittelt werden.`);
|
|
2023
|
+
}
|
|
2024
|
+
equivalentBranch.ur1 = (0, parser_utils_1.isNumericI7)(i7Data.ur1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur1) : undefined;
|
|
2025
|
+
equivalentBranch.ur2 = (0, parser_utils_1.isNumericI7)(i7Data.ur2) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur2) : undefined;
|
|
1939
2026
|
cimModel.addEquivalentBranch(equivalentBranch);
|
|
1940
2027
|
this.checkErsatzZweigID(i7Data.id, integral7);
|
|
1941
2028
|
this.addIdMapping(i7Data.id, equivalentBranch.mrid, integral_sql_1.Integral7TableNames.ERSATZLAENGSZWEIG);
|
|
@@ -1952,77 +2039,115 @@ class ConverterIntegral7 {
|
|
|
1952
2039
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1953
2040
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSDROSSEL)) {
|
|
1954
2041
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KOMPENSATIONSDROSSEL, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KOMPENSATIONSDROSSEL), knotenSfIDs));
|
|
2042
|
+
let sternpunktKnotenResult = [];
|
|
2043
|
+
let sternpunktKnotenMap = new Map();
|
|
2044
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN)) {
|
|
2045
|
+
sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN), []));
|
|
2046
|
+
for (const spKnoten of sternpunktKnotenResult) {
|
|
2047
|
+
sternpunktKnotenMap.set(spKnoten.id, spKnoten);
|
|
2048
|
+
}
|
|
2049
|
+
}
|
|
1955
2050
|
for (const i7Data of result) {
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
shunt.normalSections = (0, parser_utils_1.
|
|
1968
|
-
shunt.maximumSections = (0, parser_utils_1.
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2051
|
+
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_LSC']), i7Data.kurzname);
|
|
2052
|
+
// Get electrical properties
|
|
2053
|
+
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : undefined;
|
|
2054
|
+
shunt.normallyInService = inBetrieb;
|
|
2055
|
+
const qr = (0, parser_utils_1.isNumericI7)(i7Data.qr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qr) : undefined;
|
|
2056
|
+
const pr = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2057
|
+
shunt.nomU = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
2058
|
+
// Set electrical properties
|
|
2059
|
+
// Set electrical properties (EQ)
|
|
2060
|
+
if ((0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2061
|
+
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2062
|
+
shunt.normalSections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2063
|
+
shunt.maximumSections = (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe);
|
|
2064
|
+
}
|
|
2065
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && !(0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2066
|
+
shunt.sections = 1;
|
|
2067
|
+
shunt.normalSections = 1;
|
|
2068
|
+
shunt.maximumSections = 1;
|
|
2069
|
+
}
|
|
2070
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe) > 0) {
|
|
2071
|
+
shunt.maximumSections = (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe);
|
|
2072
|
+
shunt.sections = shunt.maximumSections;
|
|
2073
|
+
shunt.normalSections = shunt.maximumSections;
|
|
2074
|
+
}
|
|
2075
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe) <= 0) {
|
|
2076
|
+
shunt.maximumSections = 1;
|
|
2077
|
+
shunt.sections = shunt.maximumSections;
|
|
2078
|
+
shunt.normalSections = shunt.maximumSections;
|
|
2079
|
+
}
|
|
2080
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe) > 0) {
|
|
2081
|
+
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2082
|
+
shunt.normalSections = shunt.sections;
|
|
2083
|
+
shunt.maximumSections = shunt.normalSections;
|
|
2084
|
+
}
|
|
2085
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe) <= 0) {
|
|
2086
|
+
shunt.sections = 1;
|
|
2087
|
+
shunt.normalSections = shunt.sections;
|
|
2088
|
+
shunt.maximumSections = shunt.normalSections;
|
|
2089
|
+
}
|
|
2090
|
+
else {
|
|
2091
|
+
this.logger.error(`Kompensationsdrossel mit GUID ${i7Data.guid} besitzt unerwartete $akstufe oder $maxstufe.`);
|
|
2092
|
+
}
|
|
2093
|
+
shunt.bPerSection = (0, utils_2.calculateBPerSection)(qr * -1, shunt.nomU, shunt.maximumSections);
|
|
2094
|
+
shunt.gPerSection = (0, utils_2.calculateGPerSection)(pr, shunt.nomU, shunt.maximumSections);
|
|
2095
|
+
// RegulatingControl
|
|
2096
|
+
const spannungsregelungLokal = (0, parser_utils_1.isBooleanI7)(i7Data.flag_lf) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_lf) : false;
|
|
2097
|
+
const spannungsregelungRemote = (0, parser_utils_1.isBooleanI7)(i7Data.rpv_geregelt) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.rpv_geregelt) : (cimModel.objects.get(this.integralID2UUID.get(i7Data.knotenspgreg)) !== undefined ? true : false);
|
|
2098
|
+
let knotenSpgGeregelt = undefined;
|
|
2099
|
+
if (spannungsregelungRemote) {
|
|
2100
|
+
knotenSpgGeregelt = cimModel.objects.get(this.integralID2UUID.get(i7Data.knotenspgreg));
|
|
2101
|
+
}
|
|
2102
|
+
let regulatingControl = undefined;
|
|
2103
|
+
if (spannungsregelungLokal || spannungsregelungRemote) {
|
|
2104
|
+
//Create and define regulating control for voltage control
|
|
2105
|
+
regulatingControl = new RegulatingControl_1.RegulatingControl((0, parser_utils_1.getUUID)(i7Data.guid_rc), (0, util_create_1.createNotation)([shunt.getUUID().substring(0, 8), '_LSC']));
|
|
2106
|
+
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
2107
|
+
regulatingControl.discrete = true; //default für ShuntCompensator ist true. s. CGMES Doku
|
|
2108
|
+
regulatingControl.targetDeadband = (0, parser_utils_1.isNumericI7)(i7Data.uband) ? (0, parser_utils_1.convertToNumberI7)(i7Data.uband) : undefined; //zulässiges Spannungsband
|
|
2109
|
+
/** Spannung in kilo*/
|
|
2110
|
+
regulatingControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
2111
|
+
regulatingControl.enabled = true;
|
|
2112
|
+
if (knotenSpgGeregelt) {
|
|
2113
|
+
const cn_point = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
2114
|
+
const terminal = (0, util_graph2tree_1.getControlledNode)(cn_point, knotenSpgGeregelt);
|
|
2115
|
+
if (terminal) {
|
|
2116
|
+
const cn = terminal.getConnectivityNode();
|
|
2117
|
+
if (regulatingControl.targetDeadband === undefined) {
|
|
2118
|
+
regulatingControl.targetDeadband = cn.getBaseVoltageAsNumber() * 0.1;
|
|
2004
2119
|
}
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
if (term) {
|
|
2013
|
-
term.addRegulatingControl(regulatingControl);
|
|
2014
|
-
}
|
|
2015
|
-
else {
|
|
2016
|
-
let stop = true;
|
|
2120
|
+
regulatingControl.terminalUUID = terminal.getUUID();
|
|
2121
|
+
regulatingControl.name = (0, util_create_1.createNotation)([regulatingControl.name, '_', (_a = cn.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8), '_RC'], 32, true);
|
|
2122
|
+
const tV = targetVoltages.get(this.UUID2Integral7ID.get(cn.getUUID()).find(elem => elem));
|
|
2123
|
+
if (tV && regulatingControl.targetValue === undefined) {
|
|
2124
|
+
regulatingControl.targetValue = tV['usoll'];
|
|
2125
|
+
}
|
|
2126
|
+
regulatingControl.targetValue = targetVoltages.get((_b = this.UUID2Integral7ID.get(cn.getUUID())) === null || _b === void 0 ? void 0 : _b.find(elem => elem))['usoll'];
|
|
2017
2127
|
}
|
|
2018
2128
|
}
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2129
|
+
regulatingControl.addRegulatingCondEq(shunt);
|
|
2130
|
+
shunt.regulatingControlUUID = regulatingControl.mrid;
|
|
2131
|
+
shunt.controlEnabled = regulatingControl === undefined ? false : regulatingControl.enabled;
|
|
2132
|
+
shunt.regulatingControl = regulatingControl;
|
|
2133
|
+
cimModel.addRegulatingControl(regulatingControl);
|
|
2134
|
+
const term = cimModel.terminals.get(regulatingControl.terminalUUID);
|
|
2135
|
+
if (term) {
|
|
2136
|
+
term.addRegulatingControl(regulatingControl);
|
|
2137
|
+
}
|
|
2138
|
+
else {
|
|
2139
|
+
let stop = true;
|
|
2140
|
+
}
|
|
2025
2141
|
}
|
|
2142
|
+
//SHC section
|
|
2143
|
+
const r0 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? i7Data.r0 : undefined;
|
|
2144
|
+
const x0 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? i7Data.x0 : undefined;
|
|
2145
|
+
shunt.b0PerSection = (0, utils_2.calculateB0PerSection)(/*r0,*/ Math.abs(x0)) * -1;
|
|
2146
|
+
shunt.g0PerSection = (0, utils_2.calculateG0PerSection)(r0 /*,x0*/);
|
|
2147
|
+
this.setShuntGrounding(shunt, sternpunktKnotenMap.get(i7Data.knoten1p), r0, x0);
|
|
2148
|
+
this.setTopologyEnergySourceConsumerObject(cimModel, shunt, i7Data, shunt.regulatingControl, undefined, targetVoltages);
|
|
2149
|
+
cimModel.addLinearShuntCompensator(shunt);
|
|
2150
|
+
this.addIdMapping(i7Data.id, shunt.mrid, integral_sql_1.Integral7TableNames.KOMPENSATIONSDROSSEL);
|
|
2026
2151
|
}
|
|
2027
2152
|
}
|
|
2028
2153
|
else {
|
|
@@ -2036,16 +2161,57 @@ class ConverterIntegral7 {
|
|
|
2036
2161
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2037
2162
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR)) {
|
|
2038
2163
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KOMPENSATIONSKONDENSATOR, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR), knotenSfIDs));
|
|
2164
|
+
let sternpunktKnotenResult = [];
|
|
2165
|
+
let sternpunktKnotenMap = new Map();
|
|
2166
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN)) {
|
|
2167
|
+
sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN), []));
|
|
2168
|
+
for (const spKnoten of sternpunktKnotenResult) {
|
|
2169
|
+
sternpunktKnotenMap.set(spKnoten.id, spKnoten);
|
|
2170
|
+
}
|
|
2171
|
+
}
|
|
2039
2172
|
for (const i7Data of result) {
|
|
2040
2173
|
const shunt = new LinearShuntCompensator_1.LinearShuntCompensator((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_LSC']), i7Data.kurzname);
|
|
2041
2174
|
// Get electrical properties
|
|
2042
|
-
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
2175
|
+
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : undefined;
|
|
2043
2176
|
const qr = (0, parser_utils_1.isNumericI7)(i7Data.qr) ? i7Data.qr : undefined;
|
|
2044
2177
|
const pr = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? i7Data.pr : undefined;
|
|
2045
2178
|
shunt.nomU = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? i7Data.ur : undefined;
|
|
2046
|
-
// Set
|
|
2047
|
-
shunt.
|
|
2048
|
-
|
|
2179
|
+
// Set extension properties (AMPI7)
|
|
2180
|
+
shunt.normallyInService = inBetrieb;
|
|
2181
|
+
// Set electrical properties (EQ)
|
|
2182
|
+
if ((0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2183
|
+
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2184
|
+
shunt.normalSections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2185
|
+
shunt.maximumSections = (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe);
|
|
2186
|
+
}
|
|
2187
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && !(0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2188
|
+
shunt.sections = 1;
|
|
2189
|
+
shunt.normalSections = 1;
|
|
2190
|
+
shunt.maximumSections = 1;
|
|
2191
|
+
}
|
|
2192
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe) > 0) {
|
|
2193
|
+
shunt.maximumSections = (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe);
|
|
2194
|
+
shunt.sections = shunt.maximumSections;
|
|
2195
|
+
shunt.normalSections = shunt.maximumSections;
|
|
2196
|
+
}
|
|
2197
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.maxstufe) <= 0) {
|
|
2198
|
+
shunt.maximumSections = 1;
|
|
2199
|
+
shunt.sections = shunt.maximumSections;
|
|
2200
|
+
shunt.normalSections = shunt.maximumSections;
|
|
2201
|
+
}
|
|
2202
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe) > 0) {
|
|
2203
|
+
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
2204
|
+
shunt.normalSections = shunt.sections;
|
|
2205
|
+
shunt.maximumSections = shunt.normalSections;
|
|
2206
|
+
}
|
|
2207
|
+
else if (!(0, parser_utils_1.isNumericI7)(i7Data.maxstufe) && (0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe) <= 0) {
|
|
2208
|
+
shunt.sections = 1;
|
|
2209
|
+
shunt.normalSections = shunt.sections;
|
|
2210
|
+
shunt.maximumSections = shunt.normalSections;
|
|
2211
|
+
}
|
|
2212
|
+
else {
|
|
2213
|
+
this.logger.error(`Kompensationskondensator mit GUID ${i7Data.guid} besitzt unerwartete $akstufe oder $maxstufe.`);
|
|
2214
|
+
}
|
|
2049
2215
|
shunt.bPerSection = (0, utils_2.calculateBPerSection)(qr, shunt.nomU, shunt.maximumSections);
|
|
2050
2216
|
shunt.gPerSection = (0, utils_2.calculateGPerSection)(pr, shunt.nomU, shunt.maximumSections);
|
|
2051
2217
|
// RegulatingControl
|
|
@@ -2061,16 +2227,18 @@ class ConverterIntegral7 {
|
|
|
2061
2227
|
regulatingControl = new RegulatingControl_1.RegulatingControl(common_utils_1.CommonUtils.generateUUID(), (0, util_create_1.createNotation)([shunt.getUUID().substring(0, 8), '_LSC']));
|
|
2062
2228
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
2063
2229
|
regulatingControl.discrete = true; //default für ShuntCompensator ist true. s. CGMES Doku
|
|
2064
|
-
regulatingControl.targetDeadband = i7Data.uband; //zulässiges Spannungsband
|
|
2230
|
+
regulatingControl.targetDeadband = (0, parser_utils_1.isNumericI7)(i7Data.uband) ? (0, parser_utils_1.convertToNumberI7)(i7Data.uband) : undefined; //zulässiges Spannungsband
|
|
2065
2231
|
/** Spannung in kilo*/
|
|
2066
2232
|
regulatingControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
2067
|
-
regulatingControl.enabled =
|
|
2233
|
+
regulatingControl.enabled = true;
|
|
2068
2234
|
if (knotenSpgGeregelt) {
|
|
2069
2235
|
const cn_point = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
2070
|
-
let visited_set = [];
|
|
2071
2236
|
const terminal = (0, util_graph2tree_1.getControlledNode)(cn_point, knotenSpgGeregelt);
|
|
2072
2237
|
if (terminal) {
|
|
2073
2238
|
const cn = terminal.getConnectivityNode();
|
|
2239
|
+
if (regulatingControl.targetDeadband === undefined) {
|
|
2240
|
+
regulatingControl.targetDeadband = cn.getBaseVoltageAsNumber() * 0.1;
|
|
2241
|
+
}
|
|
2074
2242
|
regulatingControl.terminalUUID = terminal.getUUID();
|
|
2075
2243
|
regulatingControl.name = (0, util_create_1.createNotation)([regulatingControl.name, '_', (_a = cn.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8), '_RC'], 32, true);
|
|
2076
2244
|
const tV = targetVoltages.get(this.UUID2Integral7ID.get(cn.getUUID()).find(elem => elem));
|
|
@@ -2082,7 +2250,7 @@ class ConverterIntegral7 {
|
|
|
2082
2250
|
}
|
|
2083
2251
|
regulatingControl.addRegulatingCondEq(shunt);
|
|
2084
2252
|
shunt.regulatingControlUUID = regulatingControl.mrid;
|
|
2085
|
-
shunt.controlEnabled =
|
|
2253
|
+
shunt.controlEnabled = regulatingControl === undefined ? false : regulatingControl.enabled;
|
|
2086
2254
|
shunt.regulatingControl = regulatingControl;
|
|
2087
2255
|
cimModel.addRegulatingControl(regulatingControl);
|
|
2088
2256
|
const term = cimModel.terminals.get(regulatingControl.terminalUUID);
|
|
@@ -2093,13 +2261,19 @@ class ConverterIntegral7 {
|
|
|
2093
2261
|
let stop = true;
|
|
2094
2262
|
}
|
|
2095
2263
|
}
|
|
2264
|
+
//SHC section
|
|
2265
|
+
const r0 = (0, parser_utils_1.isNumericI7)(i7Data.r0) ? i7Data.r0 : undefined;
|
|
2266
|
+
const x0 = (0, parser_utils_1.isNumericI7)(i7Data.x0) ? i7Data.x0 : undefined;
|
|
2267
|
+
shunt.b0PerSection = (0, utils_2.calculateB0PerSection)(/*r0,*/ Math.abs(x0));
|
|
2268
|
+
shunt.g0PerSection = (0, utils_2.calculateG0PerSection)(r0 /*,x0*/);
|
|
2269
|
+
this.setShuntGrounding(shunt, sternpunktKnotenMap.get(i7Data.knoten1p), r0, x0);
|
|
2096
2270
|
this.setTopologyEnergySourceConsumerObject(cimModel, shunt, i7Data, shunt.regulatingControl, undefined, targetVoltages);
|
|
2097
2271
|
cimModel.addLinearShuntCompensator(shunt);
|
|
2098
|
-
this.addIdMapping(i7Data.id, shunt.mrid, integral_sql_1.Integral7TableNames.
|
|
2272
|
+
this.addIdMapping(i7Data.id, shunt.mrid, integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR);
|
|
2099
2273
|
}
|
|
2100
2274
|
}
|
|
2101
2275
|
else {
|
|
2102
|
-
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.
|
|
2276
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.KOMPENSATIONSKONDENSATOR} ist nicht vorhanden.`);
|
|
2103
2277
|
}
|
|
2104
2278
|
});
|
|
2105
2279
|
}
|
|
@@ -2110,21 +2284,27 @@ class ConverterIntegral7 {
|
|
|
2110
2284
|
for (const i7Data of result) {
|
|
2111
2285
|
const statVarCom = new StaticVarCompensator_1.StaticVarCompensator((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_SVC']), i7Data.kurzname);
|
|
2112
2286
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2287
|
+
const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
2288
|
+
const uref = (0, parser_utils_1.isNumericI7)(i7Data.uref) ? (0, parser_utils_1.convertToNumberI7)(i7Data.uref) : undefined;
|
|
2289
|
+
const mrez = (0, parser_utils_1.isNumericI7)(i7Data.mrez) ? (0, parser_utils_1.convertToNumberI7)(i7Data.mrez) : undefined;
|
|
2290
|
+
const qkapr = (0, parser_utils_1.isNumericI7)(i7Data.qkapr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qkapr) : undefined;
|
|
2291
|
+
const qindr = (0, parser_utils_1.isNumericI7)(i7Data.qindr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qindr) : undefined;
|
|
2292
|
+
/** EQ */
|
|
2293
|
+
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(uref, qkapr);
|
|
2294
|
+
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(uref, qindr)) * -1;
|
|
2295
|
+
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2296
|
+
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2297
|
+
statVarCom.aggregate = false;
|
|
2298
|
+
/** EQ-SC */
|
|
2299
|
+
/** SSH */
|
|
2300
|
+
statVarCom.q = (0, parser_utils_1.isNumericI7)(i7Data.q0svc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q0svc) : undefined;
|
|
2301
|
+
/** SV */
|
|
2302
|
+
//statVarCom.svpowerflow
|
|
2120
2303
|
/** Regelung */
|
|
2121
2304
|
const regulatingControl = (0, utils_2.createRegulatingControl)(`RC_Statcom_${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
|
|
2122
2305
|
this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
regulatingControl.enabled = inBetrieb;
|
|
2126
|
-
statVarCom.voltageSetPoint = uref;
|
|
2127
|
-
statVarCom.controlEnabled = inBetrieb;
|
|
2306
|
+
regulatingControl.enabled = true;
|
|
2307
|
+
statVarCom.controlEnabled = true;
|
|
2128
2308
|
const flagOS = (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_os);
|
|
2129
2309
|
/** die Regelung erfolgt auf die Oberspannungsseite des zugehörenden Transformators */
|
|
2130
2310
|
if (flagOS && i7Data.trafo) {
|
|
@@ -2137,6 +2317,7 @@ class ConverterIntegral7 {
|
|
|
2137
2317
|
const powerTransformerEnd = powerTransformer.powerTransformerEnd[bvNumbers.indexOf(maxBv)];
|
|
2138
2318
|
regulatingControl.terminal = powerTransformerEnd.terminal;
|
|
2139
2319
|
powerTransformerEnd.terminal.addRegulatingControl(regulatingControl);
|
|
2320
|
+
regulatingControl.targetValue = maxBv;
|
|
2140
2321
|
}
|
|
2141
2322
|
catch (e) {
|
|
2142
2323
|
this.logger.debug(`Statcom Zuordnung zu Trafo fehlgeschlagen.`);
|
|
@@ -2146,6 +2327,8 @@ class ConverterIntegral7 {
|
|
|
2146
2327
|
this.logger.debug(`Statcom RegulatingControl ${i7Data.id} konnte dem Trafo ${i7Data.trafo} nicht zugeordnet werden.`);
|
|
2147
2328
|
}
|
|
2148
2329
|
}
|
|
2330
|
+
/** EQ */
|
|
2331
|
+
statVarCom.voltageSetPoint = regulatingControl.targetValue ? regulatingControl.targetValue : ur;
|
|
2149
2332
|
cimModel.addStaticVarCompensator(statVarCom);
|
|
2150
2333
|
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.STATCOM);
|
|
2151
2334
|
}
|
|
@@ -2162,22 +2345,29 @@ class ConverterIntegral7 {
|
|
|
2162
2345
|
for (const i7Data of result) {
|
|
2163
2346
|
const statVarCom = new StaticVarCompensator_1.StaticVarCompensator((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_SVC']), i7Data.kurzname);
|
|
2164
2347
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2348
|
+
const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
2349
|
+
const uref = (0, parser_utils_1.isNumericI7)(i7Data.uref) ? (0, parser_utils_1.convertToNumberI7)(i7Data.uref) : undefined;
|
|
2350
|
+
const mrez = (0, parser_utils_1.isNumericI7)(i7Data.mrez) ? (0, parser_utils_1.convertToNumberI7)(i7Data.mrez) : undefined;
|
|
2351
|
+
const qkapr = (0, parser_utils_1.isNumericI7)(i7Data.qkapr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qkapr) : undefined;
|
|
2352
|
+
const qindr = (0, parser_utils_1.isNumericI7)(i7Data.qindr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qindr) : undefined;
|
|
2353
|
+
/** EQ */
|
|
2354
|
+
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(uref, qkapr);
|
|
2355
|
+
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(uref, qindr)) * -1;
|
|
2356
|
+
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2357
|
+
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2358
|
+
statVarCom.aggregate = false;
|
|
2359
|
+
/** EQ-SC */
|
|
2360
|
+
/** SSH */
|
|
2361
|
+
statVarCom.q = (0, parser_utils_1.isNumericI7)(i7Data.q0svc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q0svc) : undefined;
|
|
2362
|
+
/** SV */
|
|
2363
|
+
//statVarCom.svpowerflow
|
|
2172
2364
|
/** Regelung */
|
|
2173
|
-
const regulatingControl = (0, utils_2.createRegulatingControl)(`
|
|
2365
|
+
const regulatingControl = (0, utils_2.createRegulatingControl)(`RC_Statcom_${i7Data.id}`, inBetrieb, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage, cimModel, statVarCom);
|
|
2174
2366
|
this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, regulatingControl);
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
regulatingControl.enabled = inBetrieb;
|
|
2178
|
-
statVarCom.voltageSetPoint = uref;
|
|
2179
|
-
statVarCom.controlEnabled = inBetrieb;
|
|
2367
|
+
regulatingControl.enabled = true;
|
|
2368
|
+
statVarCom.controlEnabled = true;
|
|
2180
2369
|
const flagOS = (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_os);
|
|
2370
|
+
/** die Regelung erfolgt auf die Oberspannungsseite des zugehörenden Transformators */
|
|
2181
2371
|
if (flagOS && i7Data.trafo) {
|
|
2182
2372
|
const trafoUUID = this.integralID2UUID.get(i7Data.trafo);
|
|
2183
2373
|
const powerTransformer = cimModel.getObject(trafoUUID);
|
|
@@ -2188,6 +2378,7 @@ class ConverterIntegral7 {
|
|
|
2188
2378
|
const powerTransformerEnd = powerTransformer.powerTransformerEnd[bvNumbers.indexOf(maxBv)];
|
|
2189
2379
|
regulatingControl.terminal = powerTransformerEnd.terminal;
|
|
2190
2380
|
powerTransformerEnd.terminal.addRegulatingControl(regulatingControl);
|
|
2381
|
+
regulatingControl.targetValue = maxBv;
|
|
2191
2382
|
}
|
|
2192
2383
|
catch (e) {
|
|
2193
2384
|
this.logger.debug(`Statcom Zuordnung zu Trafo fehlgeschlagen.`);
|
|
@@ -2197,9 +2388,10 @@ class ConverterIntegral7 {
|
|
|
2197
2388
|
this.logger.debug(`Statcom RegulatingControl ${i7Data.id} konnte dem Trafo ${i7Data.trafo} nicht zugeordnet werden.`);
|
|
2198
2389
|
}
|
|
2199
2390
|
}
|
|
2391
|
+
/** EQ */
|
|
2392
|
+
statVarCom.voltageSetPoint = regulatingControl.targetValue ? regulatingControl.targetValue : ur;
|
|
2200
2393
|
cimModel.addStaticVarCompensator(statVarCom);
|
|
2201
|
-
|
|
2202
|
-
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.SVC);
|
|
2394
|
+
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.STATCOM);
|
|
2203
2395
|
}
|
|
2204
2396
|
}
|
|
2205
2397
|
else {
|
|
@@ -2213,7 +2405,10 @@ class ConverterIntegral7 {
|
|
|
2213
2405
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.HGUE_KOPFSTATION_KLASSISCH, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH), knotenSfIDs));
|
|
2214
2406
|
for (const i7Data of result) {
|
|
2215
2407
|
/** Containment DC DCConverterUnit */
|
|
2216
|
-
const dcConverterUnit = new DCConverterUnit_1.
|
|
2408
|
+
const dcConverterUnit = new DCConverterUnit_1.INTEGRALDCConverterUnit((0, parser_utils_1.getUUID)(i7Data.guid_dcconverterp), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCCU']));
|
|
2409
|
+
dcConverterUnit.referencePriority = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
2410
|
+
dcConverterUnit.governorSCDAc = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
2411
|
+
dcConverterUnit.governorSCDDc = (0, parser_utils_1.isNumericI7)(i7Data.kr_dc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr_dc) : undefined;
|
|
2217
2412
|
// Topologie
|
|
2218
2413
|
/* Anfang
|
|
2219
2414
|
* 3 moegliche Anschluesse
|
|
@@ -2245,16 +2440,16 @@ class ConverterIntegral7 {
|
|
|
2245
2440
|
/** Bemessungsleistung (Gleichstromseite) in MW
|
|
2246
2441
|
* im CS-Fall S = P?
|
|
2247
2442
|
* Abhängig vom */
|
|
2248
|
-
csConverter.baseS = i7Data.pr;
|
|
2443
|
+
csConverter.baseS = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2249
2444
|
/** Bemessungsspannung (Gleichstromseite) in kV*/
|
|
2250
|
-
csConverter.ratedUdc = i7Data.ur;
|
|
2251
|
-
/** spannungsabhängige Wirk-Verluste bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2252
|
-
csConverter.idleLoss = i7Data.p_leer
|
|
2445
|
+
csConverter.ratedUdc = (0, parser_utils_1.isNumericI7)(i7Data.udc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.udc) : ((0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined);
|
|
2446
|
+
/** spannungsabhängige Wirk-Verluste in kW bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2447
|
+
csConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
|
|
2253
2448
|
csConverter.maxUdc = csConverter.ratedUdc * 1.05; // +5% * ratedUdc
|
|
2254
2449
|
csConverter.minUdc = csConverter.ratedUdc * 0.95; // -5% * ratedUdc
|
|
2255
2450
|
csConverter.resistiveLoss = 0;
|
|
2256
2451
|
csConverter.switchingLoss = 0;
|
|
2257
|
-
/*
|
|
2452
|
+
/* csConverter.numberOfValves
|
|
2258
2453
|
csConverter.valveU0*/
|
|
2259
2454
|
/** Stromrichter */
|
|
2260
2455
|
/** Zündwinkel bei Gleichrichterbetrieb (ins Drehstromnetz eingespeiste Wirkleistung < 0) - etwa 15 Grad */
|
|
@@ -2288,10 +2483,11 @@ class ConverterIntegral7 {
|
|
|
2288
2483
|
this.logger.debug(`CsConverter ${i7Data.id} ${csConverter.mrid} besitzt keinen AC Anschluss.`);
|
|
2289
2484
|
}
|
|
2290
2485
|
/** Topologie DC Seite*/
|
|
2291
|
-
const dcNode = new DCNode_1.DCNode(
|
|
2486
|
+
const dcNode = new DCNode_1.DCNode((0, parser_utils_1.getUUID)(i7Data.guid_dcnodep), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCN']));
|
|
2292
2487
|
dcNode.dcEquipmentContainer = dcConverterUnit;
|
|
2293
2488
|
dcConverterUnit.dCNodes.set(dcNode.getUUID(), dcNode);
|
|
2294
|
-
const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal(
|
|
2489
|
+
const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal((0, parser_utils_1.getUUID)(i7Data.guid_dcterminalp), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_ACDCC-DCT']));
|
|
2490
|
+
acDCConverterDCTerminal.polarity = DCPolarityKind_1.DCPolarityKind.positive;
|
|
2295
2491
|
acDCConverterDCTerminal.dCConductingEquipment = csConverter;
|
|
2296
2492
|
csConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2297
2493
|
acDCConverterDCTerminal.dcNode = dcNode;
|
|
@@ -2304,6 +2500,7 @@ class ConverterIntegral7 {
|
|
|
2304
2500
|
cimModel.addCSConverter(csConverter);
|
|
2305
2501
|
cimModel.addDCNode(dcNode);
|
|
2306
2502
|
cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
|
|
2503
|
+
integral7.integralHgueKopf.set(i7Data.id, i7Data);
|
|
2307
2504
|
this.checkAnschlussIDs(i7Data.id, integral7);
|
|
2308
2505
|
this.addIdMapping(i7Data.id, csConverter.mrid, integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_KLASSISCH);
|
|
2309
2506
|
}
|
|
@@ -2311,13 +2508,16 @@ class ConverterIntegral7 {
|
|
|
2311
2508
|
});
|
|
2312
2509
|
}
|
|
2313
2510
|
convertVsConverterDC(cimModel, integral7, knotenSfIDs) {
|
|
2314
|
-
var _a;
|
|
2511
|
+
var _a, _b;
|
|
2315
2512
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
2316
2513
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC)) {
|
|
2317
2514
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.HGUE_KOPFSTATION_VSC, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC), knotenSfIDs));
|
|
2318
2515
|
for (const i7Data of result) {
|
|
2319
2516
|
/** Containment DC DCConverterUnit */
|
|
2320
|
-
const dcConverterUnit = new DCConverterUnit_1.
|
|
2517
|
+
const dcConverterUnit = new DCConverterUnit_1.INTEGRALDCConverterUnit((0, parser_utils_1.getUUID)(i7Data.guid_dcconverterp), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCCU']));
|
|
2518
|
+
dcConverterUnit.referencePriority = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
2519
|
+
dcConverterUnit.governorSCDAc = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
2520
|
+
dcConverterUnit.governorSCDDc = (0, parser_utils_1.isNumericI7)(i7Data.kr_dc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr_dc) : undefined;
|
|
2321
2521
|
// Topologie
|
|
2322
2522
|
/** Anfang
|
|
2323
2523
|
* 3 moegliche Anschluesse
|
|
@@ -2339,6 +2539,9 @@ class ConverterIntegral7 {
|
|
|
2339
2539
|
this.logger.debug(`DCConverterUnit ${i7Data.id} besitzt keinen ConnectivityNode.`);
|
|
2340
2540
|
}
|
|
2341
2541
|
const vsConverter = new VsConverter_1.VsConverter((0, parser_utils_1.getUUID)(i7Data.guid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_VSC']), i7Data.kurzname);
|
|
2542
|
+
if (vsConverter.getUUID() === "1b2b2901-0bb9-4aa3-9117-06d68fbbc7cb") {
|
|
2543
|
+
let stop = true;
|
|
2544
|
+
}
|
|
2342
2545
|
/** Wenn Leitungen konvertiert werden, wird das Attribut operationMode gesetzt. */
|
|
2343
2546
|
vsConverter.equipmentContainer = dcConverterUnit;
|
|
2344
2547
|
/** Bemessungsleistung (Gleichstromseite) in MW
|
|
@@ -2347,13 +2550,13 @@ class ConverterIntegral7 {
|
|
|
2347
2550
|
vsConverter.baseS = i7Data.pr;
|
|
2348
2551
|
/** Bemessungsspannung (Gleichstromseite) in kV*/
|
|
2349
2552
|
//If udc is set in Integral data model set converter.ratedUdc as i7Data.udc else take the data value for i7Data.ur (Bemessungsspannung)
|
|
2350
|
-
(0, parser_utils_1.isNumericI7)(i7Data.udc) ?
|
|
2553
|
+
vsConverter.ratedUdc = (0, parser_utils_1.isNumericI7)(i7Data.udc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.udc) : ((0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined);
|
|
2351
2554
|
/** spannungsabhängige Wirk-Verluste bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2352
|
-
vsConverter.idleLoss = i7Data.p_leer / 1000;
|
|
2555
|
+
vsConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) / 1000 : undefined;
|
|
2353
2556
|
vsConverter.maxUdc = vsConverter.ratedUdc * 1.05; // +5% * ratedUdc
|
|
2354
2557
|
vsConverter.minUdc = vsConverter.ratedUdc * 0.95; // -5% * ratedUdc
|
|
2355
|
-
vsConverter.resistiveLoss =
|
|
2356
|
-
vsConverter.switchingLoss =
|
|
2558
|
+
vsConverter.resistiveLoss = undefined;
|
|
2559
|
+
vsConverter.switchingLoss = undefined;
|
|
2357
2560
|
/* csConverter.maxModulationIndex = ;
|
|
2358
2561
|
csConverter.maxValveCurrent = */
|
|
2359
2562
|
/** SSH export values */
|
|
@@ -2371,6 +2574,7 @@ class ConverterIntegral7 {
|
|
|
2371
2574
|
vsConverter.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
|
|
2372
2575
|
vsConverter.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
|
|
2373
2576
|
vsConverter.targetPpcc = vsConverter.baseS * -1; //ActivePower
|
|
2577
|
+
vsConverter.targetUpcc = (_b = acConnectivityNode === null || acConnectivityNode === void 0 ? void 0 : acConnectivityNode.getVoltageLevel()) === null || _b === void 0 ? void 0 : _b.getBaseVoltageAsNumber();
|
|
2374
2578
|
vsConverter.targetQpcc = 0; //ReactivePower
|
|
2375
2579
|
}
|
|
2376
2580
|
vsConverter.droop = 0; //pu
|
|
@@ -2386,20 +2590,43 @@ class ConverterIntegral7 {
|
|
|
2386
2590
|
else {
|
|
2387
2591
|
this.logger.debug(`VsConverter ${i7Data.id} ${vsConverter.mrid} besitzt keinen AC Anschluss.`);
|
|
2388
2592
|
}
|
|
2389
|
-
/** Topologie DC Seite*/
|
|
2390
|
-
const dcNode = new DCNode_1.DCNode(
|
|
2593
|
+
/** Topologie DC Seite mit DCGround*/
|
|
2594
|
+
const dcNode = new DCNode_1.DCNode((0, parser_utils_1.getUUID)(i7Data.guid_dcnodep), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCN']));
|
|
2391
2595
|
dcNode.dcEquipmentContainer = dcConverterUnit;
|
|
2392
|
-
|
|
2393
|
-
acDCConverterDCTerminal
|
|
2394
|
-
acDCConverterDCTerminal.
|
|
2395
|
-
|
|
2596
|
+
dcConverterUnit.dCNodes.set(dcNode.getUUID(), dcNode);
|
|
2597
|
+
const acDCConverterDCTerminal = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal((0, parser_utils_1.getUUID)(i7Data.guid_dcterminalp), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_ACDCC-DCT']));
|
|
2598
|
+
acDCConverterDCTerminal.polarity = DCPolarityKind_1.DCPolarityKind.positive;
|
|
2599
|
+
acDCConverterDCTerminal.dCConductingEquipment = vsConverter;
|
|
2396
2600
|
vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2601
|
+
acDCConverterDCTerminal.dcNode = dcNode;
|
|
2397
2602
|
dcNode.dcTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2603
|
+
const dcGround = new DCGround_1.DCGround((0, parser_utils_1.getUUID)(i7Data.guid_dcground), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCG'], 32, true));
|
|
2604
|
+
const dcTerminalG = new DCTerminal_1.DCTerminal((0, parser_utils_1.getUUID)(i7Data.guid_dcterminalg), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCT']));
|
|
2605
|
+
const dcTerminalM1 = new ACDCConverterDCTerminal_1.ACDCConverterDCTerminal((0, parser_utils_1.getUUID)(i7Data.guid_dcterminalm1), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCT']));
|
|
2606
|
+
const dcNodeG = new DCNode_1.DCNode((0, parser_utils_1.getUUID)(i7Data.guid_dcnodem1));
|
|
2607
|
+
dcTerminalG.dCConductingEquipment = dcGround;
|
|
2608
|
+
dcTerminalM1.dCConductingEquipment = vsConverter;
|
|
2609
|
+
dcTerminalM1.polarity = DCPolarityKind_1.DCPolarityKind.middle;
|
|
2610
|
+
dcTerminalG.dcNode = dcNodeG;
|
|
2611
|
+
dcTerminalM1.dcNode = dcNodeG;
|
|
2612
|
+
dcGround.equipmentContainer = dcConverterUnit;
|
|
2613
|
+
dcNodeG.dcEquipmentContainer = dcConverterUnit;
|
|
2614
|
+
dcNodeG.dcTerminals.set(dcTerminalG.getUUID(), dcTerminalG);
|
|
2615
|
+
dcNodeG.dcTerminals.set(dcTerminalM1.getUUID(), dcTerminalM1);
|
|
2616
|
+
vsConverter.dCTerminals.set(dcTerminalM1.getUUID(), dcTerminalM1);
|
|
2617
|
+
/** EQ-SC */
|
|
2618
|
+
dcGround.r = undefined;
|
|
2619
|
+
dcGround.inductance = undefined;
|
|
2398
2620
|
/** DCNode speichern, um später DCLines anschließen zu können*/
|
|
2399
2621
|
cimModel.addDCConverterUnit(dcConverterUnit);
|
|
2400
2622
|
cimModel.addVSConverter(vsConverter);
|
|
2401
2623
|
cimModel.addDCNode(dcNode);
|
|
2624
|
+
cimModel.addDCNode(dcNodeG);
|
|
2402
2625
|
cimModel.addACDCConverterDCTerminal(acDCConverterDCTerminal);
|
|
2626
|
+
cimModel.addDCTerminal(dcTerminalG);
|
|
2627
|
+
cimModel.addDCGround(dcGround);
|
|
2628
|
+
cimModel.addACDCConverterDCTerminal(dcTerminalM1);
|
|
2629
|
+
integral7.integralHgueKopf.set(i7Data.id, i7Data);
|
|
2403
2630
|
this.checkAnschlussIDs(i7Data.id, integral7);
|
|
2404
2631
|
this.addIdMapping(i7Data.id, vsConverter.mrid, integral_sql_1.Integral7TableNames.HGUE_KOPFSTATION_VSC);
|
|
2405
2632
|
}
|
|
@@ -2451,8 +2678,8 @@ class ConverterIntegral7 {
|
|
|
2451
2678
|
regulatingControl.targetValue = usoll;
|
|
2452
2679
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
2453
2680
|
regulatingControl.discrete = false;
|
|
2454
|
-
regulatingControl.enabled =
|
|
2455
|
-
externalNetworkInjection.controlEnabled =
|
|
2681
|
+
regulatingControl.enabled = true;
|
|
2682
|
+
externalNetworkInjection.controlEnabled = true;
|
|
2456
2683
|
regulatingControl.addRegulatingCondEq(externalNetworkInjection);
|
|
2457
2684
|
externalNetworkInjection.regulatingControl = regulatingControl;
|
|
2458
2685
|
cimModel.addRegulatingControl(regulatingControl);
|
|
@@ -2511,10 +2738,6 @@ class ConverterIntegral7 {
|
|
|
2511
2738
|
cimModel.addMultiplierFactor(mf);
|
|
2512
2739
|
externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
|
|
2513
2740
|
}
|
|
2514
|
-
/** TODO
|
|
2515
|
-
* r, r0 und r2
|
|
2516
|
-
* x, x0 und x2
|
|
2517
|
-
* */
|
|
2518
2741
|
/** Convert EQ-profile dataset. */
|
|
2519
2742
|
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
2520
2743
|
externalNetworkInjection.maxP = maxP;
|
|
@@ -2563,8 +2786,8 @@ class ConverterIntegral7 {
|
|
|
2563
2786
|
regulatingControl.targetValue = usoll;
|
|
2564
2787
|
regulatingControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
2565
2788
|
regulatingControl.discrete = false;
|
|
2566
|
-
regulatingControl.enabled =
|
|
2567
|
-
externalNetworkInjection.controlEnabled =
|
|
2789
|
+
regulatingControl.enabled = true;
|
|
2790
|
+
externalNetworkInjection.controlEnabled = true;
|
|
2568
2791
|
regulatingControl.addRegulatingCondEq(externalNetworkInjection);
|
|
2569
2792
|
externalNetworkInjection.regulatingControl = regulatingControl;
|
|
2570
2793
|
cimModel.addRegulatingControl(regulatingControl);
|
|
@@ -2611,10 +2834,15 @@ class ConverterIntegral7 {
|
|
|
2611
2834
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
2612
2835
|
condEquip.normallyInService = inBetrieb;
|
|
2613
2836
|
const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
2837
|
+
let controlledTerm = undefined;
|
|
2614
2838
|
if (connectivityNode) {
|
|
2615
2839
|
const terminal = this.createConnection(cimModel, condEquip, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
2840
|
+
controlledTerm = terminal;
|
|
2616
2841
|
if (regulatingControl) {
|
|
2617
2842
|
if (regulatingControl.terminalUUID === undefined) {
|
|
2843
|
+
if (!(controlledTerm.conductingEquipment instanceof BusbarSection_1.BusbarSection)) {
|
|
2844
|
+
controlledTerm = (0, util_graph2tree_1.getControlledNode)(connectivityNode, undefined);
|
|
2845
|
+
}
|
|
2618
2846
|
regulatingControl.terminalUUID = terminal.getUUID();
|
|
2619
2847
|
regulatingControl.name = (0, util_create_1.createNotation)([regulatingControl.name, '_', (_a = connectivityNode.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8), '_RC'], 32, true);
|
|
2620
2848
|
if (regulatingControl.targetValue === undefined) {
|
|
@@ -2893,35 +3121,30 @@ class ConverterIntegral7 {
|
|
|
2893
3121
|
else {
|
|
2894
3122
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
2895
3123
|
}
|
|
3124
|
+
const bdf = [];
|
|
3125
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten)));
|
|
3126
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten)));
|
|
2896
3127
|
/** Spannungsebene */
|
|
2897
|
-
const
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
const ir = (0, parser_utils_1.isNumericI7)(i7Data.ir) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ir) : defaultValuesConfig.SeriesCompensator.varistorRatedCurrent;
|
|
2914
|
-
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : 0;
|
|
2915
|
-
if (ir > 0 && ukr > 0) {
|
|
2916
|
-
const voltage = baseVoltage.nominalVoltage.value * 1000;
|
|
2917
|
-
const z = (ukr / 100) * Math.pow(voltage, 2) / (voltage * ir * Math.sqrt(3));
|
|
2918
|
-
seriesCompensator.x = z;
|
|
2919
|
-
}
|
|
2920
|
-
seriesCompensator.varistorRatedCurrent = ir;
|
|
3128
|
+
const baseVoltages = (0, utils_2.getTerminalUn)(cimModel, bdf, seriesCompensator);
|
|
3129
|
+
seriesCompensator.baseVoltage = baseVoltages[0] ? baseVoltages[0] : baseVoltages[1];
|
|
3130
|
+
if (seriesCompensator.baseVoltage === undefined) {
|
|
3131
|
+
let stop = true;
|
|
3132
|
+
}
|
|
3133
|
+
/** EQ */
|
|
3134
|
+
const ur = (0, utils_2.getU)(i7Data.ur);
|
|
3135
|
+
const ir = (0, parser_utils_1.isNumericI7)(i7Data.ir) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ir) : undefined;
|
|
3136
|
+
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3137
|
+
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3138
|
+
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3139
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir);
|
|
3140
|
+
seriesCompensator.varistorPresent = false;
|
|
3141
|
+
/** EQ-SC */
|
|
3142
|
+
seriesCompensator.r0 = seriesCompensator.r;
|
|
3143
|
+
seriesCompensator.x0 = seriesCompensator.x;
|
|
2921
3144
|
/** CurrentLimit */
|
|
2922
3145
|
const terminal = startTerminal;
|
|
2923
3146
|
if (terminal) {
|
|
2924
|
-
this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal
|
|
3147
|
+
this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal, ir);
|
|
2925
3148
|
}
|
|
2926
3149
|
else {
|
|
2927
3150
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
|
|
@@ -2929,11 +3152,16 @@ class ConverterIntegral7 {
|
|
|
2929
3152
|
if (!startTerminal.connectivityNode && terminal.connectivityNodeUUID) {
|
|
2930
3153
|
startTerminal.connectivityNode = cimModel.getConnectivityNode(terminal.connectivityNodeUUID);
|
|
2931
3154
|
}
|
|
3155
|
+
// Umspannanlage
|
|
3156
|
+
const substationUUID = this.integralID2UUID.get(i7Data.standort);
|
|
2932
3157
|
/** VoltageLevel */
|
|
2933
|
-
const vlObject = this.
|
|
3158
|
+
const vlObject = this.getVoltageLevelByVoltage((_a = (cimModel.getSubstation(substationUUID))) === null || _a === void 0 ? void 0 : _a.voltageLevels, seriesCompensator.baseVoltage.nominalVoltage.value);
|
|
3159
|
+
if (!vlObject) {
|
|
3160
|
+
this.logger.debug(`Längskondensator ${seriesCompensator === null || seriesCompensator === void 0 ? void 0 : seriesCompensator.mrid} hat kein EquipmentContainer`);
|
|
3161
|
+
}
|
|
2934
3162
|
if (vlObject) {
|
|
2935
3163
|
seriesCompensator.equipmentContainer = vlObject;
|
|
2936
|
-
seriesCompensator.baseVoltage = baseVoltage;
|
|
3164
|
+
//seriesCompensator.baseVoltage = vlObject.baseVoltage;
|
|
2937
3165
|
}
|
|
2938
3166
|
else {
|
|
2939
3167
|
this.logger.debug(`Längsdrossel ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
|
|
@@ -2982,35 +3210,27 @@ class ConverterIntegral7 {
|
|
|
2982
3210
|
else {
|
|
2983
3211
|
this.logger.debug(`Längskondensator ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
2984
3212
|
}
|
|
3213
|
+
const bdf = [];
|
|
3214
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten)));
|
|
3215
|
+
bdf.push(this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.eknoten)));
|
|
2985
3216
|
/** Spannungsebene */
|
|
2986
|
-
const
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
Un = 10 kV = 10000 V
|
|
2992
|
-
IrA = 2500
|
|
2993
|
-
Ukr = 7% = 0,07
|
|
2994
|
-
Pkr = 0
|
|
2995
|
-
|
|
2996
|
-
S = Un(V) * IrA * Wurzel(3) => 43301270,2
|
|
2997
|
-
Z = Ukr * un^2/IrA (umgerechnet) = 0,161
|
|
2998
|
-
R = 0, da Pkr = 0
|
|
2999
|
-
X = Z = 0,161
|
|
3000
|
-
* */
|
|
3001
|
-
/** elektrische Parameter */
|
|
3002
|
-
const i = (0, parser_utils_1.isNumericI7)(i7Data.ir) ? -1 * (0, parser_utils_1.convertToNumberI7)(i7Data.ir) : undefined;
|
|
3217
|
+
const baseVoltages = (0, utils_2.getTerminalUn)(cimModel, bdf, seriesCompensator);
|
|
3218
|
+
seriesCompensator.baseVoltage = baseVoltages[0];
|
|
3219
|
+
/** EQ */
|
|
3220
|
+
const ur = (0, utils_2.getU)(i7Data.ur);
|
|
3221
|
+
const ir = (0, parser_utils_1.isNumericI7)(i7Data.ir) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ir) : undefined;
|
|
3003
3222
|
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3004
|
-
|
|
3005
|
-
|
|
3006
|
-
|
|
3007
|
-
|
|
3008
|
-
|
|
3009
|
-
seriesCompensator.
|
|
3223
|
+
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3224
|
+
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3225
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1);
|
|
3226
|
+
seriesCompensator.varistorPresent = false;
|
|
3227
|
+
/** EQ-SC */
|
|
3228
|
+
seriesCompensator.r0 = seriesCompensator.r;
|
|
3229
|
+
seriesCompensator.x0 = seriesCompensator.x;
|
|
3010
3230
|
/** CurrentLimit */
|
|
3011
3231
|
const terminal = startTerminal;
|
|
3012
3232
|
if (terminal) {
|
|
3013
|
-
this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal,
|
|
3233
|
+
this.setConductingEquipmentCurrentLimit(cimModel, 'Rating ' + seriesCompensator.name, terminal, ir);
|
|
3014
3234
|
}
|
|
3015
3235
|
else {
|
|
3016
3236
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keine Terminalinstanz.`);
|
|
@@ -3018,14 +3238,13 @@ class ConverterIntegral7 {
|
|
|
3018
3238
|
// Umspannanlage
|
|
3019
3239
|
const substationUUID = this.integralID2UUID.get(i7Data.standort);
|
|
3020
3240
|
/** VoltageLevel */
|
|
3021
|
-
const voltageLevel = this.getVoltageLevelByVoltage((_a = (cimModel.getSubstation(substationUUID))) === null || _a === void 0 ? void 0 : _a.voltageLevels,
|
|
3241
|
+
const voltageLevel = this.getVoltageLevelByVoltage((_a = (cimModel.getSubstation(substationUUID))) === null || _a === void 0 ? void 0 : _a.voltageLevels, seriesCompensator.baseVoltage.nominalVoltage.value);
|
|
3022
3242
|
if (!voltageLevel) {
|
|
3023
3243
|
this.logger.debug(`Längskondensator ${seriesCompensator === null || seriesCompensator === void 0 ? void 0 : seriesCompensator.mrid} hat kein EquipmentContainer`);
|
|
3024
3244
|
}
|
|
3025
|
-
// const vlUUID = subVlData.find(elem => elem.un === i7Data.ur);
|
|
3026
3245
|
if (voltageLevel) {
|
|
3027
3246
|
seriesCompensator.equipmentContainer = voltageLevel;
|
|
3028
|
-
seriesCompensator.baseVoltage = voltageLevel.baseVoltage;
|
|
3247
|
+
//seriesCompensator.baseVoltage = voltageLevel.baseVoltage;
|
|
3029
3248
|
}
|
|
3030
3249
|
else {
|
|
3031
3250
|
this.logger.debug(`Längskondensator ${i7Data.id} besitzt kein VoltageLevel Ur ${i7Data.ur}.`);
|
|
@@ -3466,6 +3685,7 @@ class ConverterIntegral7 {
|
|
|
3466
3685
|
});
|
|
3467
3686
|
}
|
|
3468
3687
|
convertDCLines(cimModel, integral7, defaultValuesConfig) {
|
|
3688
|
+
var _a;
|
|
3469
3689
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3470
3690
|
//Workaround: Prefill Integral 7 model hgueAnschlussKnotenIDs because of missing bays and schlaufen for dc objects this data structure keeps empty.
|
|
3471
3691
|
//for(let dc_node of this.hgueAnschlussKnotenIDs){
|
|
@@ -3478,49 +3698,112 @@ class ConverterIntegral7 {
|
|
|
3478
3698
|
//console.log(getUUID(i7Data.guid_dcline));
|
|
3479
3699
|
integral7.integralHgueLeitungen.set(i7Data.id, i7Data);
|
|
3480
3700
|
const dcLine = new DCLine_1.DCLine((0, parser_utils_1.getUUID)(i7Data.guid_dcline), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCL']));
|
|
3701
|
+
let dcLineNeg = undefined;
|
|
3481
3702
|
const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
|
|
3482
3703
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
3483
3704
|
/** operationMode der Anfangs- und Zielkopfstation setzen */
|
|
3484
|
-
|
|
3705
|
+
let converterStart = false;
|
|
3706
|
+
let converterStartNeg = false;
|
|
3707
|
+
let converterUnitStartSide = false;
|
|
3708
|
+
let converterTarget = false;
|
|
3709
|
+
let converterTargetNeg = false;
|
|
3710
|
+
let converterUnitTargetSide = false;
|
|
3711
|
+
let bipol = (0, parser_utils_1.convertToBooleanI7)(i7Data.bipol);
|
|
3712
|
+
bipol = (0, parser_utils_1.convertToBooleanI7)(false);
|
|
3485
3713
|
//Parameter "guidp" is available for monopolar and bipolar dc systems. Thus create DCLineSegment with positive sign property in any case.
|
|
3486
3714
|
const dcLineSegment = new DCLineSegment_1.DCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidp), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCLS']), i7Data.kurzname, i7Schluessel);
|
|
3487
|
-
|
|
3488
|
-
dcLineSegment.
|
|
3489
|
-
|
|
3490
|
-
|
|
3491
|
-
*/
|
|
3492
|
-
dcLineSegment.
|
|
3715
|
+
let dcLineSegmentNeg = undefined;
|
|
3716
|
+
if (dcLineSegment.getUUID() === "579b6a04-23c5-452f-b7ad-db283dad1cdb") {
|
|
3717
|
+
const stop = true;
|
|
3718
|
+
}
|
|
3719
|
+
/**EQ: not given directly by the INTEGRAL system model */
|
|
3720
|
+
dcLineSegment.length = undefined;
|
|
3721
|
+
dcLineSegment.capacitance = undefined;
|
|
3722
|
+
dcLineSegment.inductance = undefined;
|
|
3723
|
+
/**EQ: given directly by the INTEGRAL system model */
|
|
3724
|
+
dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (bipol ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) / 2 : (0, parser_utils_1.convertToNumberI7)(i7Data.rdc)) : undefined;
|
|
3493
3725
|
dcLineSegment.equipmentContainer = dcLine;
|
|
3726
|
+
//create second dcLineSegment in case this dcLine is a bipol.
|
|
3727
|
+
if (bipol) {
|
|
3728
|
+
dcLineNeg = new DCLine_1.DCLine(common_utils_1.CommonUtils.generateUUID(), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_neg', '_DCL']));
|
|
3729
|
+
dcLineSegmentNeg = new DCLineSegment_1.DCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidn), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_neg', '_DCLS'], 32, true), (0, util_create_1.createNotation)([i7Data.kurzname, '_neg'], 12, true), i7Schluessel);
|
|
3730
|
+
dcLineSegmentNeg.length = dcLineSegment.length;
|
|
3731
|
+
dcLineSegmentNeg.capacitance = undefined;
|
|
3732
|
+
dcLineSegmentNeg.inductance = undefined;
|
|
3733
|
+
dcLineSegmentNeg.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (bipol ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) / 2 : (0, parser_utils_1.convertToNumberI7)(i7Data.rdc)) : undefined;
|
|
3734
|
+
dcLineSegmentNeg.equipmentContainer = dcLineNeg;
|
|
3735
|
+
}
|
|
3494
3736
|
const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) ? cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) : undefined;
|
|
3737
|
+
converterStart = (0, parser_utils_1.convertToBooleanI7)(acDCConverterStart !== undefined);
|
|
3738
|
+
let acDCConverterStartNeg = undefined;
|
|
3495
3739
|
const acDCConverterTarget = cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt)) ? cimModel.getObject(this.integralID2UUID.get(i7Data.enetzobjekt)) : undefined;
|
|
3496
|
-
|
|
3497
|
-
|
|
3498
|
-
|
|
3740
|
+
converterStart = (0, parser_utils_1.convertToBooleanI7)(acDCConverterTarget !== undefined);
|
|
3741
|
+
let acDCConverterTargetNeg = undefined;
|
|
3742
|
+
//Setting acDCConverterStartNeg and acDCConverterTargetNeg in case this DCLine is a bipol
|
|
3743
|
+
if (bipol) {
|
|
3744
|
+
const int7hguekopf = converterStart ? (_a = integral7.integralHgueKopf) === null || _a === void 0 ? void 0 : _a.get(this.UUID2Integral7ID.get(acDCConverterStart.getUUID()).find(elem => elem)) : undefined;
|
|
3745
|
+
acDCConverterStartNeg = converterStart && int7hguekopf !== undefined ? (0, util_create_1.createACDCConverterNeg)(cimModel, int7hguekopf, acDCConverterStart.constructor.name, acDCConverterStart) : undefined;
|
|
3746
|
+
converterStartNeg = (0, parser_utils_1.convertToBooleanI7)(acDCConverterStartNeg !== undefined);
|
|
3747
|
+
acDCConverterTargetNeg = converterTarget && int7hguekopf !== undefined ? (0, util_create_1.createACDCConverterNeg)(cimModel, int7hguekopf, acDCConverterTarget.constructor.name, acDCConverterTarget) : undefined;
|
|
3748
|
+
converterTargetNeg = (0, parser_utils_1.convertToBooleanI7)(acDCConverterTargetNeg !== undefined);
|
|
3749
|
+
}
|
|
3750
|
+
if (converterStart && !converterStartNeg) {
|
|
3751
|
+
createDCGround(acDCConverterStart);
|
|
3752
|
+
}
|
|
3753
|
+
else if (converterStart && converterStartNeg) {
|
|
3754
|
+
createDCGround(acDCConverterStart);
|
|
3755
|
+
connectDCGround(acDCConverterStartNeg);
|
|
3499
3756
|
}
|
|
3500
|
-
// TODO END: Remove me after HGUE-Knoten (netz_hgueknoten) will be exported/converted
|
|
3501
3757
|
const converterUnitStart = acDCConverterStart.equipmentContainer ? acDCConverterStart.equipmentContainer : undefined;
|
|
3758
|
+
converterUnitStartSide = (0, parser_utils_1.convertToBooleanI7)(converterUnitStart !== undefined);
|
|
3502
3759
|
const converterUnitTarget = acDCConverterTarget.equipmentContainer ? acDCConverterTarget.equipmentContainer : undefined;
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3760
|
+
converterUnitTargetSide = (0, parser_utils_1.convertToBooleanI7)(converterUnitTarget !== undefined);
|
|
3761
|
+
switch (bipol) {
|
|
3762
|
+
case true: {
|
|
3763
|
+
if (converterUnitStartSide && !converterUnitTargetSide) {
|
|
3764
|
+
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
|
|
3765
|
+
this.logger.error(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r DCConverterUnit am Leitungsende konnte nicht ermittelt werden.`);
|
|
3766
|
+
}
|
|
3767
|
+
else if (converterUnitStartSide && converterUnitTargetSide) {
|
|
3506
3768
|
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
|
|
3507
3769
|
converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.bipolar;
|
|
3508
|
-
|
|
3770
|
+
if (converterTarget && !converterTargetNeg) {
|
|
3771
|
+
createDCGround(acDCConverterTarget);
|
|
3772
|
+
}
|
|
3773
|
+
else if (converterTarget && converterTargetNeg) {
|
|
3774
|
+
createDCGround(acDCConverterTarget);
|
|
3775
|
+
connectDCGround(acDCConverterTargetNeg);
|
|
3776
|
+
}
|
|
3777
|
+
else {
|
|
3778
|
+
this.logger.error(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r ACDCConverter konnte nicht ermittelt werden.`);
|
|
3779
|
+
}
|
|
3780
|
+
}
|
|
3781
|
+
else {
|
|
3782
|
+
this.logger.error(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r DCConverterUnit's konnten nicht ermittelt werden.`);
|
|
3509
3783
|
}
|
|
3510
|
-
|
|
3784
|
+
break;
|
|
3785
|
+
}
|
|
3786
|
+
case false: {
|
|
3787
|
+
if (converterUnitStartSide && !converterUnitTargetSide) {
|
|
3511
3788
|
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
|
|
3512
3789
|
converterUnitTarget.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
|
|
3790
|
+
createNeutralGroundReturn(converterUnitStart, converterUnitTarget);
|
|
3791
|
+
this.logger.error(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: zugehörende/r DCConverterUnit am Leitungsende konnte nicht ermittelt werden.`);
|
|
3792
|
+
}
|
|
3793
|
+
else if (converterUnitStartSide && converterUnitTargetSide) {
|
|
3794
|
+
converterUnitStart.operationMode = DCConverterOperatingModeKind_1.DCConverterOperatingModeKind.monopolarGroundReturn;
|
|
3513
3795
|
}
|
|
3514
3796
|
}
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3797
|
+
default: {
|
|
3798
|
+
this.logger.error(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid}: die bipol-Eigenschaft ist nicht gesetzt.`);
|
|
3799
|
+
}
|
|
3518
3800
|
}
|
|
3519
3801
|
// Topologie DC
|
|
3520
3802
|
/* Anfang / Ende DCNodes*/
|
|
3521
3803
|
const startDCNode = acDCConverterStart ? getDCNodeFromConverter(acDCConverterStart) : undefined;
|
|
3804
|
+
const startDCNodeNeg = acDCConverterStartNeg ? getDCNodeFromConverter(acDCConverterStartNeg) : undefined;
|
|
3522
3805
|
if (startDCNode) {
|
|
3523
|
-
const dcTerminal = new DCTerminal_1.DCTerminal(
|
|
3806
|
+
const dcTerminal = new DCTerminal_1.DCTerminal((0, parser_utils_1.getUUID)('i7Data.guid_dcterminalp'), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCT'], 32, true));
|
|
3524
3807
|
dcTerminal.connected = true;
|
|
3525
3808
|
dcTerminal.dCConductingEquipment = dcLineSegment;
|
|
3526
3809
|
dcTerminal.dcNode = startDCNode;
|
|
@@ -3530,9 +3813,21 @@ class ConverterIntegral7 {
|
|
|
3530
3813
|
else {
|
|
3531
3814
|
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
|
|
3532
3815
|
}
|
|
3816
|
+
if (startDCNodeNeg) {
|
|
3817
|
+
const dcTerminal = new DCTerminal_1.DCTerminal((0, parser_utils_1.getUUID)('i7Data.guid_dcterminaln'), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_neg', '_DCT'], 32, true));
|
|
3818
|
+
dcTerminal.connected = true;
|
|
3819
|
+
dcTerminal.dCConductingEquipment = dcLineSegmentNeg;
|
|
3820
|
+
dcTerminal.dcNode = startDCNodeNeg;
|
|
3821
|
+
startDCNodeNeg.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
|
|
3822
|
+
cimModel.addDCTerminal(dcTerminal);
|
|
3823
|
+
}
|
|
3824
|
+
else {
|
|
3825
|
+
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Anfangsknoten NEG. ${i7Data.anetzobjekt} ${this.integralID2UUID.get(i7Data.anetzobjekt)}`);
|
|
3826
|
+
}
|
|
3533
3827
|
const targetDCNode = acDCConverterTarget ? getDCNodeFromConverter(acDCConverterTarget) : undefined;
|
|
3828
|
+
const targetDCNodeNeg = acDCConverterTargetNeg ? getDCNodeFromConverter(acDCConverterTargetNeg) : undefined;
|
|
3534
3829
|
if (targetDCNode) {
|
|
3535
|
-
const dcTerminal = new DCTerminal_1.DCTerminal(common_utils_1.CommonUtils.generateUUID(), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCT']));
|
|
3830
|
+
const dcTerminal = new DCTerminal_1.DCTerminal(common_utils_1.CommonUtils.generateUUID(), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_DCT'], 32, true));
|
|
3536
3831
|
dcTerminal.connected = true;
|
|
3537
3832
|
dcTerminal.dCConductingEquipment = dcLineSegment;
|
|
3538
3833
|
dcTerminal.dcNode = targetDCNode;
|
|
@@ -3542,8 +3837,23 @@ class ConverterIntegral7 {
|
|
|
3542
3837
|
else {
|
|
3543
3838
|
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Zielknoten. ${i7Data.enetzobjekt} ${this.integralID2UUID.get(i7Data.enetzobjekt)}`);
|
|
3544
3839
|
}
|
|
3840
|
+
if (targetDCNodeNeg) {
|
|
3841
|
+
const dcTerminal = new DCTerminal_1.DCTerminal(common_utils_1.CommonUtils.generateUUID(), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_neg', '_DCT'], 32, true));
|
|
3842
|
+
dcTerminal.connected = true;
|
|
3843
|
+
dcTerminal.dCConductingEquipment = dcLineSegmentNeg;
|
|
3844
|
+
dcTerminal.dcNode = targetDCNodeNeg;
|
|
3845
|
+
targetDCNodeNeg.dcTerminals.set(dcTerminal.getUUID(), dcTerminal);
|
|
3846
|
+
cimModel.addDCTerminal(dcTerminal);
|
|
3847
|
+
}
|
|
3848
|
+
else {
|
|
3849
|
+
this.logger.debug(`HGÜ-Leitung ${i7Data.id} ${dcLineSegment.mrid} besitzt keinen Zielknoten NEG. ${i7Data.enetzobjekt} ${this.integralID2UUID.get(i7Data.enetzobjekt)}`);
|
|
3850
|
+
}
|
|
3545
3851
|
cimModel.addDCLine(dcLine);
|
|
3546
3852
|
cimModel.addDCLineSegment(dcLineSegment);
|
|
3853
|
+
if (bipol) {
|
|
3854
|
+
cimModel.addDCLine(dcLineNeg);
|
|
3855
|
+
cimModel.addDCLineSegment(dcLineSegmentNeg);
|
|
3856
|
+
}
|
|
3547
3857
|
this.addIdMapping(i7Data.id, dcLineSegment.mrid, integral_sql_1.Integral7TableNames.HGUE_LEITUNG);
|
|
3548
3858
|
}
|
|
3549
3859
|
}
|
|
@@ -3564,7 +3874,7 @@ class ConverterIntegral7 {
|
|
|
3564
3874
|
typTrafo.ukr12 = i7Data.ukr;
|
|
3565
3875
|
typTrafo.pkr12 = i7Data.pkr;
|
|
3566
3876
|
typTrafo.schaltgruppe = i7Data.schaltgr;
|
|
3567
|
-
typTrafo.spezialRegelung = i7Data.trafo_spezial;
|
|
3877
|
+
typTrafo.spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? (0, parser_utils_1.convertToNumberI7)(i7Data.trafo_spezial) : undefined;
|
|
3568
3878
|
typTrafo.x00r1 = i7Data.x00r1;
|
|
3569
3879
|
typTrafo.x00r2 = i7Data.x00r2;
|
|
3570
3880
|
typTrafo.x0kr1 = i7Data.x0kr1;
|
|
@@ -3710,7 +4020,7 @@ class ConverterIntegral7 {
|
|
|
3710
4020
|
sternpunktKnotenMap.set(elem, new Map());
|
|
3711
4021
|
}
|
|
3712
4022
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN) && trafoIDs.length) {
|
|
3713
|
-
const sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.
|
|
4023
|
+
const sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN_FILTERED, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_KNOTEN), trafoIDs));
|
|
3714
4024
|
for (const spKnoten of sternpunktKnotenResult) {
|
|
3715
4025
|
(_a = sternpunktKnotenMap.get(spKnoten.netzobjekt)) === null || _a === void 0 ? void 0 : _a.set(spKnoten.id, spKnoten);
|
|
3716
4026
|
}
|
|
@@ -3725,6 +4035,27 @@ class ConverterIntegral7 {
|
|
|
3725
4035
|
else {
|
|
3726
4036
|
this.logger.debug(`Trafo2W ${i7Data.id} besitzt keine Umspannanlage.`);
|
|
3727
4037
|
}
|
|
4038
|
+
if (powerTransformer.getUUID() === '515508dc-5982-4686-ad26-08d39db91421') {
|
|
4039
|
+
let stop = true;
|
|
4040
|
+
} // kein Typ in D4
|
|
4041
|
+
if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') {
|
|
4042
|
+
let stop = true;
|
|
4043
|
+
} //Typ in D8
|
|
4044
|
+
if (powerTransformer.getUUID() === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') {
|
|
4045
|
+
let stop = true;
|
|
4046
|
+
} //kein Typ in BE
|
|
4047
|
+
if (powerTransformer.getUUID() === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9') {
|
|
4048
|
+
let stop = true;
|
|
4049
|
+
} //Typ in D7
|
|
4050
|
+
if (powerTransformer.getUUID() === '8eca3fedd32c49369f8946ac4ce70e17') { //Stufenstellerkonvertierung fehlgeschlagen
|
|
4051
|
+
let stop = true;
|
|
4052
|
+
}
|
|
4053
|
+
if (powerTransformer.getUUID() === 'b9d8bd48e1554af7b6153c1f7da052e1') {
|
|
4054
|
+
let stop = true;
|
|
4055
|
+
} //Phasenschieber zu falscher Winkel und falsches stepIncrement.
|
|
4056
|
+
if (powerTransformer.getUUID() === '2ACF34B9-9DC9-4607-9B8A-032EBC2C31A5') {
|
|
4057
|
+
let stop = true;
|
|
4058
|
+
} //Längsregeltransformator mit symmetrischem Phasenschieber.
|
|
3728
4059
|
if (i7Data.nametyp) {
|
|
3729
4060
|
const stop = true;
|
|
3730
4061
|
}
|
|
@@ -3739,7 +4070,7 @@ class ConverterIntegral7 {
|
|
|
3739
4070
|
}
|
|
3740
4071
|
const schaltgruppe = ((_b = i7Data.schaltgr) === null || _b === void 0 ? void 0 : _b.length) ? i7Data.schaltgr : powerTransformerInfo === null || powerTransformerInfo === void 0 ? void 0 : powerTransformerInfo.schaltgruppe;
|
|
3741
4072
|
// Wicklung 1
|
|
3742
|
-
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1), `W1
|
|
4073
|
+
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1), `W1-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
3743
4074
|
powerTransformerEnd1.endNumber = 1;
|
|
3744
4075
|
const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo, '');
|
|
3745
4076
|
const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo, '');
|
|
@@ -3747,15 +4078,14 @@ class ConverterIntegral7 {
|
|
|
3747
4078
|
const ur = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd1.endNumber);
|
|
3748
4079
|
//const x0 = get
|
|
3749
4080
|
// I rated
|
|
3750
|
-
const ir1 =
|
|
4081
|
+
const ir1 = (0, utils_2.getTrafoIr)(ur, sr);
|
|
3751
4082
|
// P0 Lastverluste im I7 Modell p_leer
|
|
3752
4083
|
const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
|
|
3753
4084
|
// Leerlaufverluste
|
|
3754
4085
|
const iLeer = (0, utils_2.getTrafoIleer)(i7Data, powerTransformerInfo);
|
|
3755
|
-
//const zeroSequImpedanzWx = calculate;
|
|
3756
4086
|
// Berechnung
|
|
3757
4087
|
powerTransformerEnd1.r = (0, utils_2.calculateR)(ur, pkr, sr);
|
|
3758
|
-
powerTransformerEnd1.x = (0, utils_2.calculateX)(ur, ukr, sr
|
|
4088
|
+
powerTransformerEnd1.x = (0, utils_2.calculateX)(ur, ukr, sr);
|
|
3759
4089
|
// TODO was ist P0 in I7 Trafomodell
|
|
3760
4090
|
// P0 Lastverluste abhängig von Last
|
|
3761
4091
|
powerTransformerEnd1.g = (0, utils_2.calculateG)(ur, pLeer);
|
|
@@ -3763,8 +4093,10 @@ class ConverterIntegral7 {
|
|
|
3763
4093
|
powerTransformerEnd1.ratedU = ur;
|
|
3764
4094
|
powerTransformerEnd1.ratedS = sr;
|
|
3765
4095
|
//Short-Circuit data export EQ-SC profile //TODO: Read data for enervancetransformertype object.
|
|
3766
|
-
|
|
3767
|
-
|
|
4096
|
+
const x00r1 = (0, parser_utils_1.isNumericI7)(i7Data.x00r1) ? i7Data.x00r1 : 0;
|
|
4097
|
+
const x0kr1 = (0, parser_utils_1.isNumericI7)(i7Data.x0kr1) ? i7Data.x0kr1 : 0;
|
|
4098
|
+
const x00r2 = (0, parser_utils_1.isNumericI7)(i7Data.x00r2) ? i7Data.x00r2 : 0;
|
|
4099
|
+
const r00r1 = (0, parser_utils_1.isNumericI7)(i7Data.r00r1) ? i7Data.r00r1 : 0;
|
|
3768
4100
|
/** Topologie 3 moegliche Anschluesse
|
|
3769
4101
|
* KontenSo -> Anschluesspunkt
|
|
3770
4102
|
* KnotenSf -> Schaltfeldpunkt
|
|
@@ -3786,15 +4118,21 @@ class ConverterIntegral7 {
|
|
|
3786
4118
|
}
|
|
3787
4119
|
}
|
|
3788
4120
|
// Wicklung 2
|
|
3789
|
-
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w2), `W2
|
|
4121
|
+
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w2), `W2-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
3790
4122
|
powerTransformerEnd2.endNumber = 2;
|
|
3791
4123
|
const sr2 = (0, utils_2.getSrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber, false);
|
|
3792
4124
|
const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd2.endNumber);
|
|
3793
4125
|
// Berechnung
|
|
4126
|
+
// NullSystem Impedanzen (nur Reaktanzen)
|
|
4127
|
+
const zeroSequImpedanzWx = (0, utils_trafo3w_1.calculateZeroSequImpedanzenTrafo2W)(r00r1, x00r1, x0kr1, x00r2, ur, ur2);
|
|
3794
4128
|
powerTransformerEnd2.r = 0;
|
|
3795
4129
|
powerTransformerEnd2.x = 0;
|
|
3796
4130
|
powerTransformerEnd2.ratedS = sr2;
|
|
3797
4131
|
powerTransformerEnd2.ratedU = ur2;
|
|
4132
|
+
powerTransformerEnd1.x0 = zeroSequImpedanzWx.x01;
|
|
4133
|
+
powerTransformerEnd1.r0 = zeroSequImpedanzWx.r01;
|
|
4134
|
+
powerTransformerEnd2.x0 = zeroSequImpedanzWx.x02;
|
|
4135
|
+
powerTransformerEnd2.r0 = zeroSequImpedanzWx.r02;
|
|
3798
4136
|
// I rated
|
|
3799
4137
|
const ir2 = (sr * Math.pow(10, 6) / ur2 * 1000) / Math.sqrt(3);
|
|
3800
4138
|
/* const ziel = cimModel.getObject(this.integralID2UUID.get(i7Data.eknoten));
|
|
@@ -3834,17 +4172,25 @@ class ConverterIntegral7 {
|
|
|
3834
4172
|
* */
|
|
3835
4173
|
const powerTransformerEnds = [powerTransformer.powerTransformerEnd[0], powerTransformer.powerTransformerEnd[1]];
|
|
3836
4174
|
/** Id des spannungsgeregelten Kontens */
|
|
3837
|
-
const spRegKnoten = yield this.
|
|
4175
|
+
const spRegKnoten = yield this.getSpannungsbandTrafo(i7Data, powerTransformerEnds);
|
|
3838
4176
|
const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
|
|
4177
|
+
/*if(spRegKnoten.id > -1){
|
|
4178
|
+
spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
|
|
4179
|
+
}*/
|
|
3839
4180
|
const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
|
|
3840
4181
|
const connectivityNode = cimModel.getObject(cnUUID);
|
|
4182
|
+
/** Create TapChanger for PowerTransformerEnds */
|
|
3841
4183
|
try {
|
|
4184
|
+
if (connectivityNode === undefined) {
|
|
4185
|
+
let stop = true;
|
|
4186
|
+
}
|
|
3842
4187
|
this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
|
|
3843
4188
|
}
|
|
3844
4189
|
catch (err) {
|
|
3845
|
-
|
|
3846
|
-
console.log(err);
|
|
4190
|
+
this.logger.error(`Fehler aufgetreten. Konvertierung des Stufenstellers für Transformator mit UUID ${powerTransformer.getUUID()} fehlgeschlagen.`);
|
|
3847
4191
|
}
|
|
4192
|
+
/** Transformator Anschlusspunkte nach Spannungsebene sortieren */
|
|
4193
|
+
this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
3848
4194
|
cimModel.addPowerTransformerEnd(powerTransformerEnd1);
|
|
3849
4195
|
cimModel.addPowerTransformerEnd(powerTransformerEnd2);
|
|
3850
4196
|
cimModel.addPowerTransformer(powerTransformer);
|
|
@@ -3879,7 +4225,7 @@ class ConverterIntegral7 {
|
|
|
3879
4225
|
/** Sternpunktknoten */
|
|
3880
4226
|
let sternpunktKnotenResult;
|
|
3881
4227
|
if (this.isTableAvailable(tableNameStpKnoten) && trafoWicklungIDs.length > 0) {
|
|
3882
|
-
sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.
|
|
4228
|
+
sternpunktKnotenResult = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_KNOTEN_FILTERED, this.getAvailableColumnNames(tableNameStpKnoten), trafoWicklungIDs));
|
|
3883
4229
|
}
|
|
3884
4230
|
for (const i7Data of result) {
|
|
3885
4231
|
const sternpunktKnotenMap = new Map();
|
|
@@ -3935,8 +4281,8 @@ class ConverterIntegral7 {
|
|
|
3935
4281
|
const impedanzW2 = (0, utils_trafo3w_1.calculateImpedanzenTrafo3W)(2, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
|
|
3936
4282
|
const impedanzW3 = (0, utils_trafo3w_1.calculateImpedanzenTrafo3W)(3, ur1, ur2, ur3, sr1, sr2, sr3, pkr12, pkr13, pkr23, ukr12, ukr13, ukr23, 0, 0);
|
|
3937
4283
|
// NullSystem Impedanzen (nur Reaktanzen)
|
|
3938
|
-
const zeroSequImpedanzWx = (0, utils_trafo3w_1.calculateZeroSequImpedanzenTrafo3W)(r00r1, r0kr1, r00r2, x00r1, x0kr1, x00r2, ur1, ur2,
|
|
3939
|
-
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1), `W1
|
|
4284
|
+
const zeroSequImpedanzWx = (0, utils_trafo3w_1.calculateZeroSequImpedanzenTrafo3W)(r00r1, r0kr1, r00r2, x00r1, x0kr1, x00r2, ur1, ur2, ur3);
|
|
4285
|
+
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1), `W1-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
3940
4286
|
powerTransformerEnd1.endNumber = 1;
|
|
3941
4287
|
// Topologie
|
|
3942
4288
|
/** Anfang
|
|
@@ -3975,6 +4321,7 @@ class ConverterIntegral7 {
|
|
|
3975
4321
|
powerTransformerEnd1.g = impedanzW1.g;
|
|
3976
4322
|
powerTransformerEnd1.b = impedanzW1.b;
|
|
3977
4323
|
powerTransformerEnd1.x0 = zeroSequImpedanzWx.x01;
|
|
4324
|
+
powerTransformerEnd1.r0 = zeroSequImpedanzWx.r01;
|
|
3978
4325
|
powerTransformerEnd1.ratedU = ur1;
|
|
3979
4326
|
powerTransformerEnd1.ratedS = sr1;
|
|
3980
4327
|
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, terminal1, sternpunktKnotenMap, integral7, ir1, i7Data, defaultValuesConfig, trafoWicklungen);
|
|
@@ -4015,7 +4362,7 @@ class ConverterIntegral7 {
|
|
|
4015
4362
|
const terminal2 = this.createBoundaryConnection(frame, powerTransformer, wicklung2.aknoten, PhaseCode_1.PhaseCode.ABC);
|
|
4016
4363
|
if (!terminal2)
|
|
4017
4364
|
this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
4018
|
-
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w2), `W2
|
|
4365
|
+
const powerTransformerEnd2 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w2), `W2-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
4019
4366
|
powerTransformerEnd2.endNumber = 2;
|
|
4020
4367
|
// Berechnung
|
|
4021
4368
|
powerTransformerEnd2.r = impedanzW2.r;
|
|
@@ -4023,6 +4370,7 @@ class ConverterIntegral7 {
|
|
|
4023
4370
|
powerTransformerEnd2.g = impedanzW2.g;
|
|
4024
4371
|
powerTransformerEnd2.b = impedanzW2.b;
|
|
4025
4372
|
powerTransformerEnd2.x0 = zeroSequImpedanzWx.x02;
|
|
4373
|
+
powerTransformerEnd2.r0 = zeroSequImpedanzWx.r02;
|
|
4026
4374
|
powerTransformerEnd2.ratedS = sr2;
|
|
4027
4375
|
powerTransformerEnd2.ratedU = ur2;
|
|
4028
4376
|
powerTransformerEnd2.powerTransformer = powerTransformer;
|
|
@@ -4064,7 +4412,7 @@ class ConverterIntegral7 {
|
|
|
4064
4412
|
const terminal3 = this.createBoundaryConnection(frame, powerTransformer, wicklung3.aknoten, PhaseCode_1.PhaseCode.ABC);
|
|
4065
4413
|
if (!terminal3)
|
|
4066
4414
|
this.logger.debug(`PowerTransformer3W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
4067
|
-
const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w3), `
|
|
4415
|
+
const powerTransformerEnd3 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w3), `W3-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
4068
4416
|
powerTransformerEnd3.endNumber = 3;
|
|
4069
4417
|
// Berechnung
|
|
4070
4418
|
powerTransformerEnd3.r = impedanzW3.r;
|
|
@@ -4072,6 +4420,7 @@ class ConverterIntegral7 {
|
|
|
4072
4420
|
powerTransformerEnd3.g = impedanzW3.g;
|
|
4073
4421
|
powerTransformerEnd3.b = impedanzW3.b;
|
|
4074
4422
|
powerTransformerEnd3.x0 = zeroSequImpedanzWx.x03;
|
|
4423
|
+
powerTransformerEnd3.r0 = zeroSequImpedanzWx.r03;
|
|
4075
4424
|
powerTransformerEnd3.ratedS = sr3;
|
|
4076
4425
|
powerTransformerEnd3.ratedU = ur3;
|
|
4077
4426
|
powerTransformerEnd3.powerTransformer = powerTransformer;
|
|
@@ -4113,10 +4462,13 @@ class ConverterIntegral7 {
|
|
|
4113
4462
|
/** Normieren auf die Wicklungsnummer, da 0 obere Spannungsseite angibt */
|
|
4114
4463
|
// const terminals = [terminal1, terminal2, terminal3];
|
|
4115
4464
|
const powerTransformerEnds = [powerTransformerEnd1, powerTransformerEnd2, powerTransformerEnd3];
|
|
4116
|
-
const spRegKnoten = yield this.
|
|
4465
|
+
const spRegKnoten = yield this.getSpannungsbandTrafo(i7Data, powerTransformerEnds);
|
|
4117
4466
|
const spannungsband = integral7.targetVoltages.get(spRegKnoten.id);
|
|
4118
4467
|
const cnUUID = this.integralID2UUID.get(spRegKnoten.id);
|
|
4119
4468
|
const connectivityNode = cimModel.getObject(cnUUID);
|
|
4469
|
+
if (cnUUID !== undefined) {
|
|
4470
|
+
const stop = true;
|
|
4471
|
+
}
|
|
4120
4472
|
try {
|
|
4121
4473
|
this.convertTapChangers(i7Data, powerTransformerEnds, cimModel, powerTransformerInfo, connectivityNode, spannungsband);
|
|
4122
4474
|
}
|
|
@@ -4149,15 +4501,15 @@ class ConverterIntegral7 {
|
|
|
4149
4501
|
const winkel = `uzus_winkel_s${endNumber}`;
|
|
4150
4502
|
const ur = `ur${endNumber}`;
|
|
4151
4503
|
powerTransformerEndInfo.endNumber = endNumber;
|
|
4152
|
-
powerTransformerEndInfo.ratedU = new Voltage_1.Voltage(data[ur], UnitMultiplier_1.UnitMultiplier.k, UnitSymbol_1.UnitSymbol.V);
|
|
4153
|
-
powerTransformerEndInfo.gestufteSeite = (0, parser_utils_1.convertToNumberI7)(data[gestufteSeite]);
|
|
4504
|
+
powerTransformerEndInfo.ratedU = (0, parser_utils_1.isNumericI7)(data[ur]) ? new Voltage_1.Voltage(data[ur], UnitMultiplier_1.UnitMultiplier.k, UnitSymbol_1.UnitSymbol.V) : undefined;
|
|
4505
|
+
powerTransformerEndInfo.gestufteSeite = (0, parser_utils_1.isNumericI7)(data[gestufteSeite]) ? (0, parser_utils_1.convertToNumberI7)(data[gestufteSeite]) : undefined;
|
|
4154
4506
|
const tapChangerInfo = new EVTapChangerInfo_1.EVTapChangerInfo(common_utils_1.CommonUtils.generateUUID(), `TapChangerInfo_${data['id']}`);
|
|
4155
|
-
tapChangerInfo.highStep = (0, parser_utils_1.convertToNumberI7)(data[maxstufe]);
|
|
4156
|
-
tapChangerInfo.lowStep = (0, parser_utils_1.convertToNumberI7)(data[minstufe]);
|
|
4157
|
-
tapChangerInfo.neutralStep = (0, parser_utils_1.convertToNumberI7)(data[neutralstufe]);
|
|
4507
|
+
tapChangerInfo.highStep = (0, parser_utils_1.isNumericI7)(data[maxstufe]) ? (0, parser_utils_1.convertToNumberI7)(data[maxstufe]) : undefined;
|
|
4508
|
+
tapChangerInfo.lowStep = (0, parser_utils_1.isNumericI7)(data[minstufe]) ? (0, parser_utils_1.convertToNumberI7)(data[minstufe]) : undefined;
|
|
4509
|
+
tapChangerInfo.neutralStep = (0, parser_utils_1.isNumericI7)(data[neutralstufe]) ? (0, parser_utils_1.convertToNumberI7)(data[neutralstufe]) : undefined;
|
|
4158
4510
|
tapChangerInfo.stepPhaseIncrement = (0, parser_utils_1.isNumericI7)(data[winkel]) ? new AngleDegrees_1.AngleDegrees(data[winkel], UnitMultiplier_1.UnitMultiplier.none, UnitSymbol_1.UnitSymbol.deg) : undefined;
|
|
4159
|
-
tapChangerInfo.uMax = data[umax];
|
|
4160
|
-
tapChangerInfo.uMin = data[umin];
|
|
4511
|
+
tapChangerInfo.uMax = (0, parser_utils_1.isNumericI7)(data[umax]) ? (0, parser_utils_1.convertToNumberI7)(data[umax]) : undefined;
|
|
4512
|
+
tapChangerInfo.uMin = (0, parser_utils_1.isNumericI7)(data[umin]) ? (0, parser_utils_1.convertToNumberI7)(data[umin]) : undefined;
|
|
4161
4513
|
tapChangerInfo.setPowerTransfomerEndInfo(powerTransformerEndInfo);
|
|
4162
4514
|
powerTransformerEndInfo.setTapChangerInfo(tapChangerInfo);
|
|
4163
4515
|
}
|
|
@@ -4696,7 +5048,7 @@ class ConverterIntegral7 {
|
|
|
4696
5048
|
}
|
|
4697
5049
|
return ret_val;
|
|
4698
5050
|
}
|
|
4699
|
-
|
|
5051
|
+
getSpannungsbandTrafo(i7Data, powerTransformerEnds) {
|
|
4700
5052
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
4701
5053
|
return new Promise((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
4702
5054
|
let minMaxSollResult;
|
|
@@ -4707,11 +5059,11 @@ class ConverterIntegral7 {
|
|
|
4707
5059
|
* 2 - Niederspannungsseite (Anschluss 3)
|
|
4708
5060
|
* 3 - Externer Knoten
|
|
4709
5061
|
* */
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
if (tempKnotenId !== undefined) { // Lokale Regelung
|
|
5062
|
+
let tempKnotenId = i7Data.spgreg_anschluss === 0 ? this.UUID2Integral7ID.get(powerTransformerEnds[0].getTerminal().getConnectivityNodeUUID())[0] : undefined;
|
|
5063
|
+
tempKnotenId = i7Data.spgreg_anschluss === 1 ? this.UUID2Integral7ID.get(powerTransformerEnds[1].getTerminal().getConnectivityNodeUUID())[0] : tempKnotenId;
|
|
5064
|
+
tempKnotenId = i7Data.spgreg_anschluss === 2 ? this.UUID2Integral7ID.get(powerTransformerEnds[2].getTerminal().getConnectivityNodeUUID())[0] : tempKnotenId;
|
|
5065
|
+
tempKnotenId = i7Data.spgreg_anschluss === 3 ? (i7Data.spgreg_knoten !== undefined ? i7Data.spgreg_knoten : undefined) : tempKnotenId;
|
|
5066
|
+
if (i7Data.spgreg_anschluss >= 0 && i7Data.spgreg_anschluss <= 2 && tempKnotenId !== undefined) { // Lokale Regelung
|
|
4715
5067
|
// Falls tempKnotenId ausgeprägt ist, bestimme in welcher Tabelle der aKnoten bzw. eKnoten enthalten ist.
|
|
4716
5068
|
// 3 Faelle:
|
|
4717
5069
|
// 1. KnotenSf -> Schaltfeldpunkt
|
|
@@ -4764,25 +5116,25 @@ class ConverterIntegral7 {
|
|
|
4764
5116
|
}
|
|
4765
5117
|
}
|
|
4766
5118
|
}
|
|
4767
|
-
else if (
|
|
5119
|
+
else if (i7Data.spgreg_anschluss === 3 && tempKnotenId !== undefined) { // Regelung am externen Knoten
|
|
4768
5120
|
const tabName_NetzSo = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.KNOTEN_SO];
|
|
4769
5121
|
const tabName_NetzSSAB = integral_sql_1.Integral7TableNames[integral_sql_1.I7Objects.SAMMELSCHIENE];
|
|
4770
5122
|
const query = ` SELECT Voltage.id, Voltage.umin, Voltage.umax, Voltage.usoll
|
|
4771
5123
|
FROM (
|
|
4772
5124
|
SELECT id, umin, umax, usoll
|
|
4773
5125
|
FROM ${tabName_NetzSo}
|
|
4774
|
-
WHERE ${tabName_NetzSo}.id = ${
|
|
5126
|
+
WHERE ${tabName_NetzSo}.id = ${tempKnotenId}
|
|
4775
5127
|
UNION
|
|
4776
5128
|
SELECT id, umin, umax, usoll
|
|
4777
5129
|
FROM ${tabName_NetzSSAB}
|
|
4778
|
-
WHERE ${tabName_NetzSSAB}.id = ${
|
|
5130
|
+
WHERE ${tabName_NetzSSAB}.id = ${tempKnotenId}) as Voltage`;
|
|
4779
5131
|
minMaxSollResult = yield this.mysqlController.execQuery(query);
|
|
4780
5132
|
}
|
|
4781
5133
|
if (minMaxSollResult && minMaxSollResult.length) {
|
|
4782
5134
|
resolve(minMaxSollResult[0]);
|
|
4783
5135
|
}
|
|
4784
5136
|
else {
|
|
4785
|
-
resolve({ id:
|
|
5137
|
+
resolve({ id: -1, usoll: 0, umin: 0, umax: 0 });
|
|
4786
5138
|
}
|
|
4787
5139
|
}));
|
|
4788
5140
|
});
|
|
@@ -5031,13 +5383,13 @@ class ConverterIntegral7 {
|
|
|
5031
5383
|
cimModel.addCoordinateSystem(coordinateSystem);
|
|
5032
5384
|
}
|
|
5033
5385
|
setPowerTransformerEndProperties(frame, powerTransformerEnd, powerTransformer, terminal, sternpunktKnotenMap, integral7, ir, i7Data, defaultValuesConfig, windings) {
|
|
5386
|
+
var _a, _b;
|
|
5034
5387
|
const cimModel = frame.cimModel;
|
|
5035
5388
|
if (terminal) {
|
|
5036
5389
|
// Topologie
|
|
5037
5390
|
powerTransformerEnd.terminal = terminal;
|
|
5038
5391
|
// CurrentLimit
|
|
5039
5392
|
this.setConductingEquipmentCurrentLimit(cimModel, `W${powerTransformerEnd.endNumber}` + (powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name), terminal, ir);
|
|
5040
|
-
let obj = i7Data;
|
|
5041
5393
|
let isTrafo2w = i7Data.trafowicklung3w3 === undefined ? true : false;
|
|
5042
5394
|
// Erdung / Sternpunkt
|
|
5043
5395
|
if (sternpunktKnotenMap.has(i7Data.id) && isTrafo2w) {
|
|
@@ -5077,7 +5429,10 @@ class ConverterIntegral7 {
|
|
|
5077
5429
|
this.logger.debug(`Wicklung2W ${i7Data.id} ${powerTransformerEnd.endNumber} ${powerTransformerEnd.mrid} keine Terminalinstanz.`);
|
|
5078
5430
|
}
|
|
5079
5431
|
// Spannungsebene
|
|
5080
|
-
if (powerTransformerEnd.
|
|
5432
|
+
if ((_b = (_a = powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.terminal) === null || _a === void 0 ? void 0 : _a.connectivityNode) === null || _b === void 0 ? void 0 : _b.getBaseVoltage()) {
|
|
5433
|
+
powerTransformerEnd.baseVoltage = powerTransformerEnd.terminal.connectivityNode.getBaseVoltage();
|
|
5434
|
+
}
|
|
5435
|
+
else if (powerTransformerEnd.ratedU) {
|
|
5081
5436
|
powerTransformerEnd.baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, powerTransformerEnd.ratedU, this.exportFramesBoundary);
|
|
5082
5437
|
}
|
|
5083
5438
|
else {
|
|
@@ -5087,53 +5442,119 @@ class ConverterIntegral7 {
|
|
|
5087
5442
|
powerTransformer.addPowerTransformerEnd(powerTransformerEnd);
|
|
5088
5443
|
}
|
|
5089
5444
|
convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
|
|
5090
|
-
var _a, _b, _c;
|
|
5445
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
5446
|
+
/*if(getUUID(i7Data.guid) === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9'){ //Zeile50
|
|
5447
|
+
let stop = true; DONE
|
|
5448
|
+
}
|
|
5449
|
+
if(getUUID(i7Data.guid) === '1239F03C-ED5B-4FDF-9453-D97E611FCC36'){ //Zeile52 - Datenfehler: Transformatoren mit definierter Zusatzspannung und Stufungsbereich, jedoch 'Stufensteller nicht vorhanden'
|
|
5450
|
+
let stop = true; DONE
|
|
5451
|
+
}*/
|
|
5452
|
+
/*if(getUUID(i7Data.guid)=== 'CFDAA56A-A0DA-4C5B-92CC-21138B6D6D07'){ //Standard LR
|
|
5453
|
+
let stop = true;
|
|
5454
|
+
}*/
|
|
5455
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') { //Zeile53 - Typ Meeden'
|
|
5456
|
+
let stop = true;
|
|
5457
|
+
}
|
|
5458
|
+
/*if(getUUID(i7Data.guid) === '012416f2d9584971baa93360fcf40be2'){ //Zeile55 - SR statt LR'
|
|
5459
|
+
let stop = true;
|
|
5460
|
+
}*/
|
|
5461
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '515508dc-5982-4686-ad26-08d39db91421') { //Zeile81 - SR statt LR'
|
|
5462
|
+
let stop = true;
|
|
5463
|
+
}
|
|
5464
|
+
/*if(getUUID(i7Data.guid) === '5ec82d14-ee64-43b6-86ff-c7615d96f7ad'){ //Zeile58
|
|
5465
|
+
let stop = true;
|
|
5466
|
+
}*/
|
|
5467
|
+
let ratioPhaseTapChangerPresent = false;
|
|
5468
|
+
//Check if tap changer exists. (power transformer winding)
|
|
5469
|
+
let tapChangerNumberI7 = []; //Number of tap changer
|
|
5470
|
+
let tapChangerNumber = [];
|
|
5471
|
+
//let transformerEndInfo:EVPowerTransformerEndInfo[] = [];
|
|
5472
|
+
for (let tapChangerPos = 1; tapChangerPos <= 2; tapChangerPos++) {
|
|
5473
|
+
if ((0, parser_utils_1.isNumericI7)(i7Data[`gestufte_seite_s${tapChangerPos}`])) {
|
|
5474
|
+
tapChangerNumberI7.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
5475
|
+
tapChangerNumber.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
5476
|
+
}
|
|
5477
|
+
}
|
|
5478
|
+
//collect information about tap changers (type)
|
|
5479
|
+
if (tapChangerNumberI7.length === 0) {
|
|
5480
|
+
for (let endNumber = 1; endNumber <= transformerEnds.length; endNumber++) {
|
|
5481
|
+
if ((0, parser_utils_1.isNumericI7)((_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === endNumber).gestufteSeite)) {
|
|
5482
|
+
tapChangerNumberI7.push((_b = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _b === void 0 ? void 0 : _b.find(elem => elem.endNumber === endNumber).gestufteSeite);
|
|
5483
|
+
tapChangerNumber.push((_c = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _c === void 0 ? void 0 : _c.find(elem => elem.endNumber === endNumber).gestufteSeite);
|
|
5484
|
+
}
|
|
5485
|
+
}
|
|
5486
|
+
}
|
|
5487
|
+
//If there is a phase tap changer and a ratio tap changer reorder the tap changers to process ratio tap changer first.
|
|
5488
|
+
let index = undefined;
|
|
5489
|
+
if (tapChangerNumberI7.length > 1) {
|
|
5490
|
+
for (let entry of tapChangerNumberI7) {
|
|
5491
|
+
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
5492
|
+
const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber === entry);
|
|
5493
|
+
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
5494
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${entry}`])
|
|
5495
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${entry}`])
|
|
5496
|
+
: (_e = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _e === void 0 ? void 0 : _e.value;
|
|
5497
|
+
if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) && tapChangerNumberI7.indexOf(entry) > 0) {
|
|
5498
|
+
index = tapChangerNumberI7.indexOf(entry);
|
|
5499
|
+
ratioPhaseTapChangerPresent = true;
|
|
5500
|
+
}
|
|
5501
|
+
}
|
|
5502
|
+
}
|
|
5503
|
+
if (index > 0) {
|
|
5504
|
+
tapChangerNumber[0] = tapChangerNumberI7[index];
|
|
5505
|
+
tapChangerNumber[1] = tapChangerNumberI7[0];
|
|
5506
|
+
}
|
|
5091
5507
|
/** I7 Modell max. 2 Stufenschalter */
|
|
5092
|
-
for (let
|
|
5508
|
+
for (let entry of tapChangerNumber) {
|
|
5093
5509
|
/**
|
|
5094
|
-
* 0
|
|
5095
|
-
* 1
|
|
5096
|
-
* 2
|
|
5097
|
-
*
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5101
|
-
const transformerEndInfo = (
|
|
5102
|
-
const transformerEnd = transformerEnds.find(elem => elem.endNumber ===
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
|
|
5107
|
-
|
|
5510
|
+
* 0 Oberspannungsseite
|
|
5511
|
+
* 1 Seite 1
|
|
5512
|
+
* 2 Seite 2
|
|
5513
|
+
* - Stufenschalter nicht vorhanden
|
|
5514
|
+
*/
|
|
5515
|
+
let entryI7 = tapChangerNumberI7.indexOf(entry) + 1;
|
|
5516
|
+
let gestufteSeite = tapChangerNumberI7[entryI7 - 1];
|
|
5517
|
+
const transformerEndInfo = (_f = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _f === void 0 ? void 0 : _f.find(elem => elem.endNumber === entryI7);
|
|
5518
|
+
const transformerEnd = transformerEnds.find(elem => elem.endNumber === entryI7);
|
|
5519
|
+
if ((0, parser_utils_1.isNumericI7)(gestufteSeite)) {
|
|
5520
|
+
if (gestufteSeite === 0) { //'Oberspannungsseite'
|
|
5521
|
+
gestufteSeite = transformerEnds.sort(function (w1, w2) {
|
|
5522
|
+
return w2['desc'] - w1['desc'];
|
|
5523
|
+
})[0].endNumber;
|
|
5524
|
+
;
|
|
5525
|
+
}
|
|
5526
|
+
}
|
|
5108
5527
|
if (!transformerEnd) {
|
|
5109
5528
|
this.logger.error(`Trafo ${i7Data.id}: Zum Stufenschalter ${gestufteSeite} keine Wicklung gefunden.`);
|
|
5110
5529
|
continue;
|
|
5111
5530
|
}
|
|
5112
5531
|
else if (!gestufteSeite) {
|
|
5113
|
-
this.logger.error(`Trafo ${i7Data.id}: Kein Stufenschalter ${gestufteSeite} zur Wicklung ${transformerEnd.getUUID()} an Transformator ${(
|
|
5532
|
+
this.logger.error(`Trafo ${i7Data.id}: Kein Stufenschalter ${gestufteSeite} zur Wicklung ${transformerEnd.getUUID()} an Transformator ${(_g = transformerEnd.powerTransformer) === null || _g === void 0 ? void 0 : _g.getUUID()} gefunden.`);
|
|
5114
5533
|
continue;
|
|
5115
5534
|
}
|
|
5116
5535
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
5117
|
-
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${
|
|
5118
|
-
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${
|
|
5119
|
-
: (
|
|
5120
|
-
const
|
|
5121
|
-
|
|
5122
|
-
|
|
5536
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${entryI7}`])
|
|
5537
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${entryI7}`])
|
|
5538
|
+
: (_h = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _h === void 0 ? void 0 : _h.value;
|
|
5539
|
+
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
5540
|
+
//const neutralU = transformerEnd.ratedU;
|
|
5541
|
+
let tapChanger = undefined;
|
|
5542
|
+
if ((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) % 180 !== 0 || spezialRegelung) {
|
|
5123
5543
|
// Winkel ist definiert =>PST/Queregler/PhaseTapChanger
|
|
5124
|
-
tapChanger = this.createPhaseTapChanger(i7Data, transformerEnds, cimModel,
|
|
5544
|
+
tapChanger = this.createPhaseTapChanger(i7Data, transformerEnds, cimModel, gestufteSeite, entryI7, transformerinfo);
|
|
5125
5545
|
}
|
|
5126
5546
|
else {
|
|
5127
5547
|
// Winkel ist nicht definiert => Längsregler/RatioTapChanger
|
|
5128
|
-
tapChanger = this.createRatioTapChanger(i7Data,
|
|
5548
|
+
tapChanger = this.createRatioTapChanger(i7Data, transformerEnds, cimModel, connectivityNode, gestufteSeite, entryI7, spannungsband, transformerinfo);
|
|
5129
5549
|
}
|
|
5130
5550
|
// Stufen
|
|
5131
|
-
this.setTapChangerVoltageProperties(i7Data, cimModel, tapChanger,
|
|
5132
|
-
|
|
5133
|
-
tapChanger.neutralU = neutralU;
|
|
5551
|
+
this.setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, entryI7, ratioPhaseTapChangerPresent, tapChangerInfo);
|
|
5552
|
+
let stop = true;
|
|
5134
5553
|
}
|
|
5554
|
+
let stop = true;
|
|
5135
5555
|
}
|
|
5136
|
-
setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber, tapChangerInfo) {
|
|
5556
|
+
setTapChangerVoltageProperties(i7Data, cimModel, tapChanger, tapChangerNumber, ratioPhaseTapChangerPresent, tapChangerInfo) {
|
|
5557
|
+
var _a;
|
|
5137
5558
|
let lowStep = (0, parser_utils_1.isNumericI7)(i7Data[`minstufe_s${tapChangerNumber}`])
|
|
5138
5559
|
? i7Data[`minstufe_s${tapChangerNumber}`]
|
|
5139
5560
|
: tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.lowStep;
|
|
@@ -5146,40 +5567,44 @@ class ConverterIntegral7 {
|
|
|
5146
5567
|
let currentStep = (0, parser_utils_1.isNumericI7)(i7Data[`aktstufe_s${tapChangerNumber}`])
|
|
5147
5568
|
? i7Data[`aktstufe_s${tapChangerNumber}`]
|
|
5148
5569
|
: neutralStep;
|
|
5570
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${tapChangerNumber}`])
|
|
5571
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${tapChangerNumber}`])
|
|
5572
|
+
: (_a = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _a === void 0 ? void 0 : _a.value;
|
|
5149
5573
|
const i7TapArray = (0, utils_2.getTapChangerStepArray)(lowStep, highStep);
|
|
5150
5574
|
/* const tapStepCount = i7TapArray.length;
|
|
5151
5575
|
const neutralStepIndex = i7TapArray.indexOf(neutralStep);*/
|
|
5152
5576
|
const lowerVoltageStepCount = (0, utils_2.getTapChangerStepCount)(lowStep, neutralStep);
|
|
5153
|
-
const
|
|
5577
|
+
const upperVoltageStepCount = (0, utils_2.getTapChangerStepCount)(neutralStep, highStep);
|
|
5154
5578
|
const uMin = (0, parser_utils_1.isNumericI7)(i7Data[`umin_s${tapChangerNumber}`])
|
|
5155
5579
|
? i7Data[`umin_s${tapChangerNumber}`]
|
|
5156
5580
|
: tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.uMin;
|
|
5157
5581
|
const uMax = (0, parser_utils_1.isNumericI7)(i7Data[`umax_s${tapChangerNumber}`])
|
|
5158
5582
|
? i7Data[`umax_s${tapChangerNumber}`]
|
|
5159
5583
|
: tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.uMax;
|
|
5160
|
-
|
|
5161
|
-
let
|
|
5162
|
-
increaseVoltageStepIncrement =
|
|
5584
|
+
let lowerVoltageStepIncrement = Math.abs(uMin / lowerVoltageStepCount);
|
|
5585
|
+
let upperVoltageStepIncrement = Math.abs(uMax / upperVoltageStepCount);
|
|
5586
|
+
let increaseVoltageStepIncrement = (0, parser_utils_1.isNumericI7)(upperVoltageStepIncrement) ? upperVoltageStepIncrement : 0;
|
|
5163
5587
|
if (tapChanger instanceof RatioTapChanger_1.RatioTapChanger) {
|
|
5164
5588
|
const ratioTapChanger = tapChanger;
|
|
5165
5589
|
// Min/Max Zusatzspannung sind nicht symmetrisch
|
|
5166
|
-
if (Math.abs(lowerVoltageStepIncrement) !== Math.abs(
|
|
5590
|
+
if (Math.abs(lowerVoltageStepIncrement) !== Math.abs(upperVoltageStepIncrement) || uMax < uMin || ratioPhaseTapChangerPresent) {
|
|
5167
5591
|
const ratioTapChangerTable = new RatioTapChangerTable_1.RatioTapChangerTable(common_utils_1.CommonUtils.generateUUID(), `${i7Data.bezeichner} W_${tapChangerNumber}`);
|
|
5592
|
+
let step_tmp = 0;
|
|
5593
|
+
let start_step_tmp = step_tmp;
|
|
5168
5594
|
// Spannung verringern
|
|
5169
|
-
for (let i = 0; i < lowerVoltageStepCount; i++) {
|
|
5170
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i
|
|
5595
|
+
for (let i = 0; i < Math.abs(lowerVoltageStepCount); i++) {
|
|
5596
|
+
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i7TapArray[i], (1 - ((lowerVoltageStepIncrement * Math.abs(lowerVoltageStepCount - i)) / 100)));
|
|
5597
|
+
step_tmp = i;
|
|
5171
5598
|
}
|
|
5172
5599
|
// neutral Step
|
|
5173
|
-
|
|
5600
|
+
step_tmp++;
|
|
5601
|
+
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i7TapArray[step_tmp], 1);
|
|
5602
|
+
step_tmp++;
|
|
5603
|
+
start_step_tmp = step_tmp;
|
|
5174
5604
|
// Spannung erhoehen
|
|
5175
|
-
for (let i =
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
}
|
|
5179
|
-
lowStep = 1;
|
|
5180
|
-
highStep = ratioTapChangerTable.ratioTapChangerTablePoints.length;
|
|
5181
|
-
neutralStep = i7TapArray.indexOf(neutralStep) + 1;
|
|
5182
|
-
currentStep = neutralStep;
|
|
5605
|
+
for (let i = start_step_tmp; i < start_step_tmp + Math.abs(upperVoltageStepCount); i++) {
|
|
5606
|
+
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i7TapArray[i], (1 + ((upperVoltageStepIncrement * (i - start_step_tmp + 1)) / 100)));
|
|
5607
|
+
}
|
|
5183
5608
|
tapChanger.ratioTapChangerTable = ratioTapChangerTable;
|
|
5184
5609
|
ratioTapChangerTable.ratioTapChanger = tapChanger;
|
|
5185
5610
|
// Durchschnitt
|
|
@@ -5188,21 +5613,25 @@ class ConverterIntegral7 {
|
|
|
5188
5613
|
}
|
|
5189
5614
|
ratioTapChanger.stepVoltageIncrement = increaseVoltageStepIncrement;
|
|
5190
5615
|
}
|
|
5191
|
-
if (tapChanger instanceof PhaseTapChangerNonLinear_1.PhaseTapChangerNonLinear)
|
|
5616
|
+
if (tapChanger instanceof PhaseTapChangerNonLinear_1.PhaseTapChangerNonLinear) {
|
|
5192
5617
|
tapChanger.voltageStepIncrement = increaseVoltageStepIncrement;
|
|
5618
|
+
}
|
|
5619
|
+
else if (tapChanger instanceof PhaseTapChangerLinear_1.PhaseTapChangerLinear) {
|
|
5620
|
+
tapChanger.stepPhaseShiftIncrement = angle / upperVoltageStepCount; //upperVoltageStepCount is equal to lowerVoltageStepCount
|
|
5621
|
+
}
|
|
5193
5622
|
tapChanger.lowStep = lowStep;
|
|
5194
5623
|
tapChanger.highStep = highStep;
|
|
5195
5624
|
tapChanger.neutralStep = neutralStep;
|
|
5196
|
-
tapChanger.normalStep =
|
|
5625
|
+
tapChanger.normalStep = currentStep;
|
|
5197
5626
|
tapChanger.step = currentStep;
|
|
5198
5627
|
if (Math.abs(lowerVoltageStepIncrement) !== Math.abs(increaseVoltageStepIncrement)) {
|
|
5199
|
-
this.logger.
|
|
5628
|
+
this.logger.info(`Trafo ${i7Data.id}: Zusatzspannung Min/Max sind nicht symmetrisch MIN ${lowerVoltageStepIncrement} MAX ${increaseVoltageStepIncrement}. Das Attribut voltageStepIncrement i.H.v ${increaseVoltageStepIncrement} könnte inkorrekt sein.`);
|
|
5200
5629
|
}
|
|
5201
5630
|
}
|
|
5202
|
-
createRatioTapChanger(i7Data,
|
|
5203
|
-
var _a, _b
|
|
5204
|
-
const
|
|
5205
|
-
const tapChangerInfo = transformerEndInfo
|
|
5631
|
+
createRatioTapChanger(i7Data, transformerEnds, cimModel, regulatingConnectivityNode, gestufteSeite, tapChangerNumber, spannungsband, transformerinfo) {
|
|
5632
|
+
var _a, _b;
|
|
5633
|
+
const transformerEnd = transformerEnds[gestufteSeite - 1];
|
|
5634
|
+
// const tapChangerInfo = transformerEndInfo?.tapChangerInfo;
|
|
5206
5635
|
// ist ein Stufenschalter vorhanden?
|
|
5207
5636
|
/**
|
|
5208
5637
|
* 0 - obere Spannungsseite (Anschluss 1)
|
|
@@ -5212,42 +5641,40 @@ class ConverterIntegral7 {
|
|
|
5212
5641
|
* ? - Externer Knoten (Anschluss 3)
|
|
5213
5642
|
* */
|
|
5214
5643
|
/** Regelung */
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
? i7Data[`gestufte_seite_s${tapChangerNumber}`]
|
|
5218
|
-
: transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.gestufteSeite;
|
|
5219
|
-
// Normieren
|
|
5220
|
-
gestufteSeite = gestufteSeite === 0 ? 1 : gestufteSeite;
|
|
5221
|
-
const ratioTapChanger = new RatioTapChanger_1.RatioTapChanger(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5222
|
-
ratioTapChanger.ltcFlag = false;
|
|
5644
|
+
const ratioTapChanger = new RatioTapChanger_1.RatioTapChanger((0, parser_utils_1.getUUID)(eval(`i7Data.guid_tch${tapChangerNumber}`)), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5645
|
+
ratioTapChanger.ltcFlag = (0, parser_utils_1.isNumericI7)(`i7Data.unter_last_nicht_verstellbar_s${gestufteSeite}`) ? !(0, parser_utils_1.convertToBooleanI7)(`i7Data.unter_last_nicht_verstellbar_s${gestufteSeite}`) : false;
|
|
5223
5646
|
ratioTapChanger.transformerEnd = transformerEnd;
|
|
5224
|
-
transformerEnd.ratioTapChanger = ratioTapChanger;
|
|
5647
|
+
//transformerEnd.ratioTapChanger = ratioTapChanger;
|
|
5225
5648
|
ratioTapChanger.neutralU = transformerEnd.ratedU;
|
|
5226
5649
|
ratioTapChanger.tculControlMode = TransformerControlMode_1.TransformerControlMode.volt;
|
|
5227
|
-
const regelung =
|
|
5228
|
-
|
|
5229
|
-
const regulatingTerminal = ((_b = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _b === void 0 ? void 0 : _b.size) ? [...(_c = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _c === void 0 ? void 0 : _c.values()].find(elem => elem.connected) : undefined;
|
|
5650
|
+
const regelung = (0, parser_utils_1.isNumericI7)(i7Data[`regelung_s${tapChangerNumber}`]) ? (0, parser_utils_1.convertToNumberI7)(i7Data[`regelung_s${tapChangerNumber}`]) : undefined;
|
|
5651
|
+
const regulatingTerminal = ((_a = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _a === void 0 ? void 0 : _a.size) ? [...(_b = regulatingConnectivityNode === null || regulatingConnectivityNode === void 0 ? void 0 : regulatingConnectivityNode.terminals) === null || _b === void 0 ? void 0 : _b.values()].find(elem => elem.connected) : undefined;
|
|
5230
5652
|
if (isFinite(spannungsband === null || spannungsband === void 0 ? void 0 : spannungsband.usoll) && regulatingTerminal) {
|
|
5231
5653
|
/** Ausprägungen
|
|
5232
5654
|
* 0 -> keine automatische Stufung
|
|
5233
5655
|
* 1 -> Spannungsbetragsregelung
|
|
5234
5656
|
* 2 -> Wirkflussvorgabe
|
|
5235
5657
|
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
5236
|
-
* 4 ->
|
|
5658
|
+
* 4 -> Blindleistungsbilazierung
|
|
5237
5659
|
* */
|
|
5238
|
-
/**
|
|
5239
|
-
|
|
5240
|
-
*
|
|
5241
|
-
*
|
|
5660
|
+
/** Regelung */
|
|
5661
|
+
/** Spezialregelung - trafo_spezial
|
|
5662
|
+
* 0 - keine Spezialitäten
|
|
5663
|
+
* Winkel == 0 Grad => Längsregler => RatioTapChanger
|
|
5664
|
+
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
5665
|
+
* 1 - Typ Meeden
|
|
5666
|
+
* Symmetrischer Querregler => PhaseTapChangerSymmetrical
|
|
5667
|
+
* 2 - Typ Helmstedt
|
|
5668
|
+
* Asymmetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
5242
5669
|
* */
|
|
5243
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(
|
|
5670
|
+
const tapChangerControl = new TapChangerControl_1.TapChangerControl((0, parser_utils_1.getUUID)(i7Data.guid_rc_v), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5244
5671
|
tapChangerControl.discrete = true;
|
|
5245
|
-
const regulatingControlEnabled = regelung ===
|
|
5672
|
+
const regulatingControlEnabled = regelung === 1 ? true : false;
|
|
5246
5673
|
tapChangerControl.enabled = regulatingControlEnabled;
|
|
5247
5674
|
ratioTapChanger.controlEnabled = regulatingControlEnabled;
|
|
5248
5675
|
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
5249
5676
|
tapChangerControl.targetValue = spannungsband.usoll;
|
|
5250
|
-
tapChangerControl.targetDeadband = spannungsband.umax - spannungsband.usoll;
|
|
5677
|
+
tapChangerControl.targetDeadband = spannungsband.umax ? spannungsband.umax - spannungsband.usoll : (spannungsband.umin ? spannungsband.usoll - spannungsband.umin : spannungsband.usoll - (spannungsband.usoll * 0.95));
|
|
5251
5678
|
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
5252
5679
|
// Assoziationen
|
|
5253
5680
|
ratioTapChanger.tapChangerControl = tapChangerControl;
|
|
@@ -5261,39 +5688,19 @@ class ConverterIntegral7 {
|
|
|
5261
5688
|
cimModel.addRatioTapChanger(ratioTapChanger);
|
|
5262
5689
|
return ratioTapChanger;
|
|
5263
5690
|
}
|
|
5264
|
-
createPhaseTapChanger(i7Data, transformerEnds, cimModel, tapChangerNumber, transformerinfo) {
|
|
5691
|
+
createPhaseTapChanger(i7Data, transformerEnds, cimModel, gestufteSeite, tapChangerNumber, transformerinfo) {
|
|
5265
5692
|
var _a;
|
|
5266
5693
|
const transformerEndInfo = (_a = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _a === void 0 ? void 0 : _a.find(elem => elem.endNumber === tapChangerNumber);
|
|
5267
5694
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
5268
|
-
let gestufteSeite = (0, parser_utils_1.isNumericI7)(i7Data[`gestufte_seite_s${tapChangerNumber}`])
|
|
5269
|
-
? i7Data[`gestufte_seite_s${tapChangerNumber}`]
|
|
5270
|
-
: transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.gestufteSeite;
|
|
5271
|
-
// Normieren
|
|
5272
|
-
gestufteSeite = gestufteSeite === 0 ? 1 : gestufteSeite;
|
|
5273
|
-
/**
|
|
5274
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
5275
|
-
* 1 - obere Spannungsseite (Anschluss 1)
|
|
5276
|
-
* 2 - mittlere Spannungsseite (Anschluss 1)
|
|
5277
|
-
* 3 - Niederspannungsseite (Anschluss 2)
|
|
5278
|
-
* ? - Externer Knoten (Anschluss 3)
|
|
5279
|
-
* */
|
|
5280
5695
|
const transformerEnd = transformerEnds.find(elem => elem.endNumber === gestufteSeite);
|
|
5281
|
-
const is3WTransformer = transformerEnds.length > 2 ? true : false;
|
|
5282
|
-
// ist ein Stufenschalter vorhanden?
|
|
5283
|
-
/**
|
|
5284
|
-
* 1 obere Spannungsseite
|
|
5285
|
-
* 2 mittlere Spannungsseite
|
|
5286
|
-
* 3 Niederspannungsseite
|
|
5287
|
-
* */
|
|
5288
5696
|
/** Regelung */
|
|
5289
5697
|
/** Spezialregelung - trafo_spezial
|
|
5290
5698
|
* 0 - keine Spezialitäten
|
|
5291
|
-
* Winkel
|
|
5292
|
-
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
5699
|
+
* Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
5293
5700
|
* 1 - Typ Meeden
|
|
5294
|
-
*
|
|
5701
|
+
* Symmetrischer Querregler => PhaseTapChangerSymmetrical
|
|
5295
5702
|
* 2 - Typ Helmstedt
|
|
5296
|
-
*
|
|
5703
|
+
* Asymmetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
5297
5704
|
* */
|
|
5298
5705
|
let phaseTapChanger;
|
|
5299
5706
|
/**
|
|
@@ -5302,48 +5709,45 @@ class ConverterIntegral7 {
|
|
|
5302
5709
|
* Defaul-Werte aus der Config für Typ Helmsted verwenden.
|
|
5303
5710
|
* */
|
|
5304
5711
|
let spezialregelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
5305
|
-
spezialregelung = spezialregelung ?
|
|
5712
|
+
spezialregelung = (0, parser_utils_1.isNumericI7)(spezialregelung) ? (0, parser_utils_1.convertToNumberI7)(spezialregelung) : undefined;
|
|
5306
5713
|
const winkel = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${tapChangerNumber}`])
|
|
5307
5714
|
? i7Data[`uzus_winkel_s${tapChangerNumber}`]
|
|
5308
5715
|
: tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement;
|
|
5309
5716
|
switch (spezialregelung) {
|
|
5310
5717
|
case (1): {
|
|
5311
5718
|
// 1 - Typ Meeden
|
|
5312
|
-
const
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
phaseTapChanger = phaseTapChangerSync;
|
|
5316
|
-
cimModel.addPhaseTapChangerSymmetrical(phaseTapChangerSync);
|
|
5719
|
+
const phaseTapChangerSym = new PhaseTapChangerSymmetrical_1.PhaseTapChangerSymmetrical((0, parser_utils_1.getUUID)(eval(`i7Data.guid_tch${tapChangerNumber}`)), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5720
|
+
phaseTapChanger = phaseTapChangerSym;
|
|
5721
|
+
cimModel.addPhaseTapChangerSymmetrical(phaseTapChangerSym);
|
|
5317
5722
|
break;
|
|
5318
5723
|
}
|
|
5319
5724
|
case (2): {
|
|
5320
5725
|
// 2 - Typ Helmstedt
|
|
5321
|
-
const
|
|
5322
|
-
|
|
5323
|
-
phaseTapChanger =
|
|
5324
|
-
cimModel.addPhaseTapChangerAsymmetrical(
|
|
5726
|
+
const phaseTapChangerAsym = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical((0, parser_utils_1.getUUID)(eval(`i7Data.guid_tch${tapChangerNumber}`)), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5727
|
+
phaseTapChangerAsym.windingConnectionAngle = winkel;
|
|
5728
|
+
phaseTapChanger = phaseTapChangerAsym;
|
|
5729
|
+
cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsym);
|
|
5325
5730
|
break;
|
|
5326
5731
|
}
|
|
5327
5732
|
default: {
|
|
5328
|
-
//
|
|
5329
|
-
const
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
|
|
5733
|
+
// There is no information given about special tapchanger control, thus create PhaseTapChangerLinear
|
|
5734
|
+
const phaseTapChangerLin = new PhaseTapChangerLinear_1.PhaseTapChangerLinear((0, parser_utils_1.getUUID)(eval(`i7Data.guid_tch${tapChangerNumber}`)), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5735
|
+
phaseTapChanger = phaseTapChangerLin;
|
|
5736
|
+
cimModel.addPhaseTapChangerLinear(phaseTapChangerLin);
|
|
5333
5737
|
break;
|
|
5334
5738
|
}
|
|
5335
5739
|
}
|
|
5336
5740
|
// Attribute
|
|
5337
|
-
phaseTapChanger.ltcFlag = false;
|
|
5338
|
-
transformerEnd
|
|
5741
|
+
phaseTapChanger.ltcFlag = (0, parser_utils_1.isNumericI7)(`i7Data.unter_last_nicht_verstellbar_s${tapChangerNumber}`) ? (0, parser_utils_1.convertToBooleanI7)(`i7Data.unter_last_nicht_verstellbar_s${tapChangerNumber}`) : false;
|
|
5742
|
+
phaseTapChanger.transformerEnd = transformerEnd;
|
|
5743
|
+
//transformerEnd.phaseTapChanger = phaseTapChanger;
|
|
5339
5744
|
// Wirkleistungsregelung Anschluss
|
|
5340
|
-
const
|
|
5341
|
-
const pRegulationToNode = i7Data.nach_a_nr;
|
|
5745
|
+
const pRegulationToNode = (0, parser_utils_1.isNumericI7)(i7Data.nach_a_nr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.nach_a_nr) : undefined;
|
|
5342
5746
|
const regulatingTransformerEnd = transformerEnds.find(elem => elem.endNumber === pRegulationToNode);
|
|
5343
5747
|
// Regelung
|
|
5344
|
-
let pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined; // PST Trafo
|
|
5345
|
-
if (
|
|
5346
|
-
pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe_2`]) ? +i7Data[`p_vorgabe_2`] : undefined; // PST Trafo
|
|
5748
|
+
let pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? (0, parser_utils_1.convertToNumberI7)(+i7Data[`p_vorgabe`]) : undefined; // PST Trafo
|
|
5749
|
+
if (pVorgabe === undefined) {
|
|
5750
|
+
pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe_2`]) ? (0, parser_utils_1.convertToNumberI7)(+i7Data[`p_vorgabe_2`]) : undefined; // PST Trafo
|
|
5347
5751
|
}
|
|
5348
5752
|
// Wirkflussvorgabe
|
|
5349
5753
|
if (isFinite(pVorgabe) && regulatingTransformerEnd) {
|
|
@@ -5358,18 +5762,16 @@ class ConverterIntegral7 {
|
|
|
5358
5762
|
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
5359
5763
|
* 4 -> Blindleitungsbilazierung
|
|
5360
5764
|
* */
|
|
5361
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(
|
|
5765
|
+
const tapChangerControl = new TapChangerControl_1.TapChangerControl((0, parser_utils_1.getUUID)(i7Data.guid_rc_p), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
5362
5766
|
tapChangerControl.discrete = true;
|
|
5363
|
-
const regulatingControlEnabled = regelung ===
|
|
5767
|
+
const regulatingControlEnabled = regelung === 2 ? true : false;
|
|
5364
5768
|
tapChangerControl.enabled = regulatingControlEnabled;
|
|
5365
5769
|
phaseTapChanger.controlEnabled = regulatingControlEnabled;
|
|
5366
5770
|
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.activePower;
|
|
5367
5771
|
tapChangerControl.targetValue = pVorgabe;
|
|
5368
|
-
//
|
|
5369
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
5772
|
+
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M; //ist das wirklich Bestandteil des CGMES?
|
|
5370
5773
|
// Assoziationen
|
|
5371
5774
|
phaseTapChanger.tapChangerControl = tapChangerControl;
|
|
5372
|
-
phaseTapChanger.transformerEnd = transformerEnd;
|
|
5373
5775
|
this.setTapChangerControl(phaseTapChanger, regulatingTerminal);
|
|
5374
5776
|
tapChangerControl.addTapChanger(phaseTapChanger);
|
|
5375
5777
|
cimModel.addTapChangerControl(tapChangerControl);
|
|
@@ -5451,6 +5853,25 @@ class ConverterIntegral7 {
|
|
|
5451
5853
|
}
|
|
5452
5854
|
}
|
|
5453
5855
|
}
|
|
5856
|
+
/** Equipment grounding
|
|
5857
|
+
* @param shnt ShuntCompensator object
|
|
5858
|
+
* @param stpKnoten Map mit den Sterpunktknoten aus der I7 Datenbank
|
|
5859
|
+
* */
|
|
5860
|
+
setShuntGrounding(shnt, stpKnoten, r0, x0) {
|
|
5861
|
+
if (stpKnoten) {
|
|
5862
|
+
shnt.grounded = (0, parser_utils_1.isBooleanI7)(stpKnoten.geerdet) ? (0, parser_utils_1.convertToBooleanI7)(stpKnoten.geerdet) : false;
|
|
5863
|
+
}
|
|
5864
|
+
else {
|
|
5865
|
+
//equipment is not grounded
|
|
5866
|
+
shnt.grounded = false;
|
|
5867
|
+
}
|
|
5868
|
+
if (r0 === undefined && x0 === undefined) {
|
|
5869
|
+
shnt.grounded = false;
|
|
5870
|
+
}
|
|
5871
|
+
else {
|
|
5872
|
+
shnt.grounded = true;
|
|
5873
|
+
}
|
|
5874
|
+
}
|
|
5454
5875
|
/** AnschlussIDs von Leitungen für Topologie abfragen */
|
|
5455
5876
|
queryLeitungsAnschlussIDs() {
|
|
5456
5877
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -5693,4 +6114,17 @@ function logExecutionTime(logger, startTime, text) {
|
|
|
5693
6114
|
logger.debug(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
5694
6115
|
console.log(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
5695
6116
|
}
|
|
6117
|
+
function createDCGround(acdcConverter) {
|
|
6118
|
+
// TODO
|
|
6119
|
+
return new DCGround_1.DCGround();
|
|
6120
|
+
}
|
|
6121
|
+
exports.createDCGround = createDCGround;
|
|
6122
|
+
function createNeutralGroundReturn(dcConverterUnit1, dcConverterUnit12) {
|
|
6123
|
+
// TODO
|
|
6124
|
+
}
|
|
6125
|
+
exports.createNeutralGroundReturn = createNeutralGroundReturn;
|
|
6126
|
+
function connectDCGround(acdcConverter) {
|
|
6127
|
+
// TODO
|
|
6128
|
+
}
|
|
6129
|
+
exports.connectDCGround = connectDCGround;
|
|
5696
6130
|
//# sourceMappingURL=converter.integral7.js.map
|