@enervance/insight-cim-model 0.0.269 → 0.0.271
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/converter/integral7/config/integral-prefix.d.ts +5 -0
- package/dist/converter/integral7/config/integral-prefix.js +6 -1
- package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
- package/dist/converter/integral7/converter.integral7.d.ts +3 -2
- package/dist/converter/integral7/converter.integral7.js +561 -325
- package/dist/converter/integral7/converter.integral7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/executor.js +1 -1
- package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
- package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +17 -11
- package/dist/converter/integral7/interface-i7/default-values-config.interface.d.ts +3 -0
- package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +10 -8
- package/dist/converter/integral7/interface-i7/export-frame-i7.js +16 -10
- package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
- package/dist/converter/integral7/model/interfaces.d.ts +26 -0
- package/dist/converter/integral7/model/interfaces.js.map +1 -1
- package/dist/converter/integral7/sql/integral.sql.d.ts +3 -0
- package/dist/converter/integral7/sql/integral.sql.js +17 -3
- package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
- package/dist/converter/integral7/utils-cgmes-export.js +1 -0
- package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
- package/dist/converter/integral7/utils.d.ts +12 -3
- package/dist/converter/integral7/utils.js +91 -14
- package/dist/converter/integral7/utils.js.map +1 -1
- package/dist/data-structures/graph/graph-interfaces.d.ts +18 -2
- package/dist/data-structures/graph/graph-interfaces.js +12 -0
- package/dist/data-structures/graph/graph-interfaces.js.map +1 -1
- package/dist/data-structures/graph/graph-util.d.ts +5 -3
- package/dist/data-structures/graph/graph-util.js +23 -13
- package/dist/data-structures/graph/graph-util.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan-csv.js +0 -1
- package/dist/etl/etl-neplan/etl-neplan-csv.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan.js +1 -1
- package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
- package/dist/etl/etl-neplan/neplan-contingency-analysis.d.ts +0 -1
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js +111 -132
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js.map +1 -1
- package/dist/interfaces/model/core/ITerminal.d.ts +2 -1
- package/dist/model/core/ConductingEquipment.js +1 -1
- package/dist/model/core/ConductingEquipment.js.map +1 -1
- package/dist/model/dc/ACDCConverter.js +0 -2
- package/dist/model/dc/ACDCConverter.js.map +1 -1
- package/dist/model/dc/DCLineSegment.d.ts +2 -0
- package/dist/model/dc/DCLineSegment.js +16 -0
- package/dist/model/dc/DCLineSegment.js.map +1 -1
- package/dist/model/dc/VsCapabilityCurve.js.map +1 -1
- package/dist/model/dc/VsConverter.d.ts +1 -0
- package/dist/model/dc/VsConverter.js +13 -0
- package/dist/model/dc/VsConverter.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.d.ts +1 -0
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js +1 -0
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js.map +1 -1
- package/dist/model/extensions/enervance/operations/EVSwitchingPlanKind.d.ts +5 -0
- package/dist/model/extensions/enervance/operations/EVSwitchingPlanKind.js +10 -0
- package/dist/model/extensions/enervance/operations/EVSwitchingPlanKind.js.map +1 -0
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.d.ts +1 -0
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer2WInfo.js.map +1 -1
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.d.ts +3 -0
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.js +14 -0
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformer3WInfo.js.map +1 -1
- package/dist/model/extensions/integral/assetinfo/INTEGRALPowerTransformerInfo.js.map +1 -1
- package/dist/model/extensions/integral/dc/DCLineSegment.d.ts +10 -0
- package/dist/model/extensions/integral/dc/DCLineSegment.js +31 -0
- package/dist/model/extensions/integral/dc/DCLineSegment.js.map +1 -0
- package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.d.ts +2 -0
- package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js +8 -0
- package/dist/model/extensions/integral/wires/INTEGRALACLineSegment.js.map +1 -1
- package/dist/model/operationallimits/ApparentPowerLimit.js +2 -2
- package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -1
- package/dist/model/operations/SwitchingPlan.d.ts +3 -0
- package/dist/model/operations/SwitchingPlan.js +10 -0
- package/dist/model/operations/SwitchingPlan.js.map +1 -1
- package/dist/model/wires/GroundDisconnector.d.ts +3 -0
- package/dist/model/wires/GroundDisconnector.js +14 -0
- package/dist/model/wires/GroundDisconnector.js.map +1 -1
- package/dist/model/wires/PowerTransformer.js +1 -1
- package/dist/model/wires/PowerTransformer.js.map +1 -1
- package/dist/model/wires/SeriesCompensator.js +6 -4
- package/dist/model/wires/SeriesCompensator.js.map +1 -1
- package/dist/model/wires/Switch.js +1 -1
- package/dist/model/wires/Switch.js.map +1 -1
- package/dist/model-container/model/ModelContainer.d.ts +1 -0
- package/dist/model-container/model/ModelContainer.js +4 -0
- package/dist/model-container/model/ModelContainer.js.map +1 -1
- package/dist/util/util-create.js +9 -1
- package/dist/util/util-create.js.map +1 -1
- package/dist/utils2/parser.utils.js +2 -2
- package/dist/utils2/parser.utils.js.map +1 -1
- package/dist/utils2/permutation.utils.d.ts +9 -0
- package/dist/utils2/permutation.utils.js +37 -0
- package/dist/utils2/permutation.utils.js.map +1 -0
- package/package.json +1 -1
|
@@ -28,7 +28,6 @@ const CsConverter_1 = require("../../model/dc/CsConverter.js");
|
|
|
28
28
|
const CsOperatingModeKind_1 = require("../../model/dc/CsOperatingModeKind.js");
|
|
29
29
|
const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind.js");
|
|
30
30
|
const DCLine_1 = require("../../model/dc/DCLine.js");
|
|
31
|
-
const DCLineSegment_1 = require("../../model/dc/DCLineSegment.js");
|
|
32
31
|
const DCNode_1 = require("../../model/dc/DCNode.js");
|
|
33
32
|
const DCTerminal_1 = require("../../model/dc/DCTerminal.js");
|
|
34
33
|
const VsConverter_1 = require("../../model/dc/VsConverter.js");
|
|
@@ -143,9 +142,12 @@ const INTEGRALPowerTransformer2WInfo_1 = require("../../model/extensions/integra
|
|
|
143
142
|
const impedance_utils_1 = require("./impedance.utils.js");
|
|
144
143
|
const util_cim_model_1 = require("./util-cim.model.js");
|
|
145
144
|
const EVAssetOriginKind_1 = require("../../model/extensions/enervance/assets/EVAssetOriginKind.js");
|
|
145
|
+
const PetersenCoilModeKind_1 = require("../../model/wires/PetersenCoilModeKind.js");
|
|
146
|
+
const GroundDisconnector_1 = require("../../model/wires/GroundDisconnector.js");
|
|
146
147
|
const i7_graph_utils_1 = require("./model/i7-graph-utils.js");
|
|
147
148
|
const TopologicalNode_1 = require("../../model/topology/TopologicalNode.js");
|
|
148
149
|
const geodata_util_1 = require("../../util/geodata.util.js");
|
|
150
|
+
const DCLineSegment_1 = require("../../model/extensions/integral/dc/DCLineSegment.js");
|
|
149
151
|
class ConverterIntegral7 {
|
|
150
152
|
set configurableDLConvertOptions(arg) {
|
|
151
153
|
tslib_1.__classPrivateFieldSet(this, _ConverterIntegral7_configurableDLConvertOptions, arg, "f");
|
|
@@ -217,6 +219,7 @@ class ConverterIntegral7 {
|
|
|
217
219
|
yield this.queryErsatzLaengsAnschlussIDs();
|
|
218
220
|
yield this.queryLkondensatorAnschlussIDs();
|
|
219
221
|
/** BD Profile */
|
|
222
|
+
this.logger.debug('Convert BD Profiles');
|
|
220
223
|
console.log('Convert BD Profiles');
|
|
221
224
|
let boundaryEqUUId = undefined;
|
|
222
225
|
for (const entry of this.exportFramesBoundary.entries()) {
|
|
@@ -228,6 +231,7 @@ class ConverterIntegral7 {
|
|
|
228
231
|
continue;
|
|
229
232
|
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
|
|
230
233
|
}
|
|
234
|
+
this.logger.debug('Convert MAS Profiles');
|
|
231
235
|
console.log('Convert MAS Profiles');
|
|
232
236
|
for (const entry of this.exportFrames.entries()) {
|
|
233
237
|
const geoRegionUUID = entry[0];
|
|
@@ -236,6 +240,7 @@ class ConverterIntegral7 {
|
|
|
236
240
|
if (!geoRegion)
|
|
237
241
|
continue;
|
|
238
242
|
// frame.addDependentModel(RDF_XML.PROFILE_EQ_BD, this.exportFramesBoundary.entries().next()?.value[1].getModelUUID(RDF_XML.PROFILE_EQ_BD));
|
|
243
|
+
this.logger.debug(`Convert MAS profile: ${frame.mas}`);
|
|
239
244
|
console.log(`Convert MAS profile: ${frame.mas}`);
|
|
240
245
|
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
|
|
241
246
|
if (boundaryEqUUId) {
|
|
@@ -245,6 +250,7 @@ class ConverterIntegral7 {
|
|
|
245
250
|
frame.purgeData();
|
|
246
251
|
const startTime = perf_hooks.performance.now();
|
|
247
252
|
frame.openXMLModel();
|
|
253
|
+
this.logger.debug(`Serialize MAS profile: ${frame.mas}`);
|
|
248
254
|
console.log(`Serialize MAS profile: ${frame.mas}`);
|
|
249
255
|
frame.serializeModel(defaultValuesConfig);
|
|
250
256
|
yield frame.closeXMLModel();
|
|
@@ -252,7 +258,7 @@ class ConverterIntegral7 {
|
|
|
252
258
|
frame.cimModel.purgeData();
|
|
253
259
|
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
254
260
|
}
|
|
255
|
-
|
|
261
|
+
this.logger.debug('Serialize BD Profiles');
|
|
256
262
|
for (const entry of this.exportFramesBoundary.entries()) {
|
|
257
263
|
const geoRegionUUID = entry[0];
|
|
258
264
|
const frame = entry[1];
|
|
@@ -271,7 +277,7 @@ class ConverterIntegral7 {
|
|
|
271
277
|
let endTime = perf_hooks.performance.now();
|
|
272
278
|
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
273
279
|
}
|
|
274
|
-
|
|
280
|
+
this.logger.debug('Serialize Default Profile');
|
|
275
281
|
this.exportFrameDefault.openXMLModel();
|
|
276
282
|
this.exportFrameDefault.serializeModel(defaultValuesConfig);
|
|
277
283
|
yield this.exportFrameDefault.closeXMLModel();
|
|
@@ -497,9 +503,9 @@ class ConverterIntegral7 {
|
|
|
497
503
|
startTime = perf_hooks.performance.now();
|
|
498
504
|
const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
|
|
499
505
|
/** KDrossel -> GroundingImpedance/PetersenCoil */
|
|
500
|
-
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID);
|
|
506
|
+
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID, defaultValuesConfig);
|
|
501
507
|
/** Schaltzustand der Schaltelemente */
|
|
502
|
-
yield this.convertStpSchaltelemente(integral7Modell, stpSchieneID);
|
|
508
|
+
yield this.convertStpSchaltelemente(cimModel, integral7Modell, stpSchieneID);
|
|
503
509
|
logExecutionTime(this.logger, startTime, `convertSternpunkte`);
|
|
504
510
|
}
|
|
505
511
|
/** Statcom -> StaticVarCompensator */
|
|
@@ -780,7 +786,7 @@ class ConverterIntegral7 {
|
|
|
780
786
|
.then((result) => {
|
|
781
787
|
for (const i7Data of result) {
|
|
782
788
|
const i7Schluessel = integral_prefix_1.GEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
783
|
-
const region = new GeographicalRegion_1.GeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)
|
|
789
|
+
const region = new GeographicalRegion_1.GeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)]), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluessel);
|
|
784
790
|
//region.i7key = i7Schluessel;
|
|
785
791
|
this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
|
|
786
792
|
regions.push(region);
|
|
@@ -828,11 +834,12 @@ class ConverterIntegral7 {
|
|
|
828
834
|
.then((result) => {
|
|
829
835
|
for (const i7Data of result) {
|
|
830
836
|
const i7Schluesel = integral_prefix_1.SUBGEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
831
|
-
const subregion = new SubGeographicalRegion_1.SubGeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)
|
|
837
|
+
const subregion = new SubGeographicalRegion_1.SubGeographicalRegion((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner)
|
|
838
|
+
]), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluesel);
|
|
832
839
|
const regionUUID = this.integralID2UUID.get(i7Data.georegion);
|
|
833
840
|
let region = regions.find(elem => elem.mrid === regionUUID);
|
|
834
841
|
if (!region) {
|
|
835
|
-
region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name
|
|
842
|
+
region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name]), this.configUuid);
|
|
836
843
|
this.logger.debug(`SubGeographicalRegion UUID ${subregion.mrid} I7-ID ${i7Data.id} Name ${i7Data.bezeichner} hat keine Region.`);
|
|
837
844
|
}
|
|
838
845
|
subregion.region = region;
|
|
@@ -923,7 +930,7 @@ class ConverterIntegral7 {
|
|
|
923
930
|
i7Data.un +
|
|
924
931
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
925
932
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
926
|
-
const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname
|
|
933
|
+
const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
|
|
927
934
|
vl.key = i7Schluessel;
|
|
928
935
|
const facility = util_cim_model_1.UtilCimModel.createFacilityInstanceForPsr(cimModel, vl, cim_constants_1.CimAssetAliasNames.VoltageLevel, this.configUuid);
|
|
929
936
|
if (i7Data.baujahr) {
|
|
@@ -1012,23 +1019,31 @@ class ConverterIntegral7 {
|
|
|
1012
1019
|
});
|
|
1013
1020
|
}
|
|
1014
1021
|
convertKnotenSo(frame, integral7, standortIDs, defaultValuesConfig) {
|
|
1022
|
+
var _a, _b;
|
|
1015
1023
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1016
1024
|
const cimModel = frame.cimModel;
|
|
1017
1025
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_SO)) {
|
|
1018
1026
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KNOTEN_SO, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KNOTEN_SO), standortIDs));
|
|
1027
|
+
const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
|
|
1019
1028
|
for (const i7Data of result) {
|
|
1029
|
+
const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
|
|
1020
1030
|
const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
|
|
1021
1031
|
const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
|
|
1022
|
-
// const vl = new VoltageLevel(getUUID(i7Data.guid_v, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data), i7Data.un.toString(), '_VL']), i7Data.kurzname);
|
|
1023
1032
|
const vl = new VoltageLevel_1.VoltageLevel(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VoltageLevel, this.configUuid, rdfid), i7Data.bezeichner, i7Data.kurzname);
|
|
1024
|
-
//const rdfid = getUUID(i7Data.guid); /**This is the mrid for TopologicalNode */
|
|
1025
1033
|
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
|
|
1034
|
+
if (connectivityNode.getUUID() === '98d0e9eb-bfb0-4da4-9700-660626da1c56' || connectivityNode.getName() === 'XDU_SL12') {
|
|
1035
|
+
let stop = true;
|
|
1036
|
+
}
|
|
1026
1037
|
connectivityNode.setConnectivityNodeContainer(vl);
|
|
1027
1038
|
vl.addConnectivityNode(connectivityNode);
|
|
1028
1039
|
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
1040
|
+
connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
|
|
1029
1041
|
if (frame.boundary) {
|
|
1030
1042
|
connectivityNode.boundaryPoint = true;
|
|
1031
1043
|
}
|
|
1044
|
+
const key = integral_sql_1.I7Objects.KNOTEN_SO + ((_b = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _b !== void 0 ? _b : '');
|
|
1045
|
+
const junction = new Junction_1.Junction(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VoltageLevel, this.configUuid, key), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), connectivityNode.getUUID().substring(0, 8), "_J"]));
|
|
1046
|
+
this.createConnection(cimModel, junction, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
1032
1047
|
const un = (0, utils_2.getU)(i7Data.un);
|
|
1033
1048
|
const baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, un, this.configUuid, this.exportFramesBoundary);
|
|
1034
1049
|
/** Spannungsband */
|
|
@@ -1044,7 +1059,7 @@ class ConverterIntegral7 {
|
|
|
1044
1059
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
1045
1060
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
1046
1061
|
vl.key = i7Schluessel;
|
|
1047
|
-
connectivityNode.
|
|
1062
|
+
connectivityNode.key = i7Schluessel;
|
|
1048
1063
|
}
|
|
1049
1064
|
else {
|
|
1050
1065
|
this.logger.debug(`KnotenSo ${i7Data.id} ${vl.mrid} besitzt keine Substation.`);
|
|
@@ -1086,21 +1101,27 @@ class ConverterIntegral7 {
|
|
|
1086
1101
|
});
|
|
1087
1102
|
}
|
|
1088
1103
|
convertSammelschienenAbschnitte(cimModel, integral7, schaltanlagenAbschnittIDs) {
|
|
1089
|
-
var _a, _b;
|
|
1104
|
+
var _a, _b, _c;
|
|
1090
1105
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1091
1106
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SAMMELSCHIENE)) {
|
|
1092
1107
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.SAMMELSCHIENE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.SAMMELSCHIENE), schaltanlagenAbschnittIDs));
|
|
1108
|
+
const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
|
|
1093
1109
|
for (const i7Data of result) {
|
|
1094
1110
|
const i7Schaltanlagenabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
|
|
1095
|
-
|
|
1111
|
+
const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
|
|
1112
|
+
let saab = undefined;
|
|
1113
|
+
if (integral7.integralSchaltanlagenAbschnitte.has(i7Data.saabschnitt)) {
|
|
1114
|
+
saab = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
|
|
1115
|
+
}
|
|
1096
1116
|
const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
|
|
1097
1117
|
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname);
|
|
1098
1118
|
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
|
|
1099
1119
|
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
1120
|
+
connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
|
|
1100
1121
|
const keyBusbarSection = [
|
|
1101
1122
|
integral_sql_1.I7Objects.SAMMELSCHIENE,
|
|
1102
|
-
(
|
|
1103
|
-
(
|
|
1123
|
+
(_b = voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getUUID()) !== null && _b !== void 0 ? _b : '',
|
|
1124
|
+
(_c = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _c !== void 0 ? _c : ''
|
|
1104
1125
|
].join('');
|
|
1105
1126
|
const uuidBusbarSection = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.BusbarSection, this.configUuid, keyBusbarSection);
|
|
1106
1127
|
const busbarSection = new BusbarSection_1.BusbarSection(uuidBusbarSection, i7Data.bezeichner, i7Schaltanlagenabschnitt.kurzname);
|
|
@@ -1116,11 +1137,15 @@ class ConverterIntegral7 {
|
|
|
1116
1137
|
voltageLevel.highVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umax) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umax) : voltageLevel.highVoltageLimit;
|
|
1117
1138
|
// umin
|
|
1118
1139
|
voltageLevel.lowVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umin) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umin) : voltageLevel.lowVoltageLimit;
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1140
|
+
//define INTEGRAL Schluessel for ConnectivityNode
|
|
1141
|
+
if (saab !== undefined) {
|
|
1142
|
+
const i7Schluessel = voltageLevel.key +
|
|
1143
|
+
integral_prefix_1.SCHALTANLAGENABSCHNITT_PRAEFIX +
|
|
1144
|
+
(0, utils_2.ueberpruefeZeichenkette)(saab.bezeichner) +
|
|
1145
|
+
integral_prefix_1.SAMMELSCHIENENABSCHNITT_PRAEFIX +
|
|
1146
|
+
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
1147
|
+
connectivityNode.key = i7Schluessel;
|
|
1148
|
+
}
|
|
1124
1149
|
/** Spannungsband */
|
|
1125
1150
|
integral7.targetVoltages.set(i7Data.id, { usoll: i7Data.usoll, umin: i7Data.umin, umax: i7Data.umax });
|
|
1126
1151
|
// TODO VoltageLimits?
|
|
@@ -1133,7 +1158,7 @@ class ConverterIntegral7 {
|
|
|
1133
1158
|
cimModel.addConnectivityNode(connectivityNode);
|
|
1134
1159
|
cimModel.addBusbarSection(busbarSection);
|
|
1135
1160
|
/** Integral 7 Modell erstellen zur Berechnung der Netzschema */
|
|
1136
|
-
if (
|
|
1161
|
+
if (saab !== undefined) {
|
|
1137
1162
|
integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt).ssab.push(i7Data);
|
|
1138
1163
|
}
|
|
1139
1164
|
}
|
|
@@ -1150,10 +1175,11 @@ class ConverterIntegral7 {
|
|
|
1150
1175
|
const result = yield this.queryDataInChuncks(integral_sql_1.I7Objects.KNOTEN_SF, schaltfeldIDs);
|
|
1151
1176
|
for (const i7Data of result) {
|
|
1152
1177
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
|
|
1153
|
-
const connectivityNode = new ConnectivityNode_1.ConnectivityNode((0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, '
|
|
1154
|
-
if (bay) {
|
|
1178
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode((0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false));
|
|
1179
|
+
if (bay !== undefined) {
|
|
1155
1180
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1156
1181
|
bay.addConnectivityNode(connectivityNode);
|
|
1182
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_SF_PRAEFIX + i7Data.bezeichner;
|
|
1157
1183
|
}
|
|
1158
1184
|
else {
|
|
1159
1185
|
this.logger.debug(`KnotenSf ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1178,11 +1204,11 @@ class ConverterIntegral7 {
|
|
|
1178
1204
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.kpfeld));
|
|
1179
1205
|
const key = integral_sql_1.I7Objects.KNOTEN_KF + ((_a = bay === null || bay === void 0 ? void 0 : bay.getUUID()) !== null && _a !== void 0 ? _a : '') + String(i7Data.id) + String(i7Data.kpfeld);
|
|
1180
1206
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
1181
|
-
|
|
1182
|
-
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, i7Data.bezeichner, 'knotenkf');
|
|
1207
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false), (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false));
|
|
1183
1208
|
if (bay) {
|
|
1184
1209
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1185
1210
|
bay.addConnectivityNode(connectivityNode);
|
|
1211
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_KF_PRAEFIX + i7Data.bezeichner;
|
|
1186
1212
|
}
|
|
1187
1213
|
else {
|
|
1188
1214
|
this.logger.debug(`KnotenKf ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1205,11 +1231,12 @@ class ConverterIntegral7 {
|
|
|
1205
1231
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.lkupplung));
|
|
1206
1232
|
const key = integral_sql_1.I7Objects.KNOTEN_LK + ((_a = bay === null || bay === void 0 ? void 0 : bay.getUUID()) !== null && _a !== void 0 ? _a : '') + String(i7Data.id) + String(i7Data.lkupplung);
|
|
1207
1233
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
1208
|
-
const
|
|
1209
|
-
|
|
1234
|
+
const name = (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false);
|
|
1235
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, name, name);
|
|
1210
1236
|
if (bay) {
|
|
1211
1237
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1212
1238
|
bay.addConnectivityNode(connectivityNode);
|
|
1239
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_LK_PRAEFIX + i7Data.bezeichner;
|
|
1213
1240
|
}
|
|
1214
1241
|
else {
|
|
1215
1242
|
this.logger.debug(`KnotenLk ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1232,8 +1259,12 @@ class ConverterIntegral7 {
|
|
|
1232
1259
|
const key = integral_sql_1.I7Objects.SCHLAUFE + String(i7Data.id);
|
|
1233
1260
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Terminal, this.configUuid, key);
|
|
1234
1261
|
const terminal = new Terminal_1.Terminal(uuid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
|
|
1262
|
+
if (terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
1263
|
+
const stop = true;
|
|
1264
|
+
}
|
|
1235
1265
|
terminal.connected = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
|
|
1236
1266
|
terminal.phases = PhaseCode_1.PhaseCode.ABC;
|
|
1267
|
+
terminal.key = integral_prefix_1.SCHLAUFE_PRAEFIX + i7Data.bezeichner;
|
|
1237
1268
|
this.addIdMapping(i7Data.id, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
|
|
1238
1269
|
this.addIdMapping(i7Data.knotenzw, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
|
|
1239
1270
|
integral7.kontenZwIDs.push(i7Data.knotenzw);
|
|
@@ -1341,6 +1372,101 @@ class ConverterIntegral7 {
|
|
|
1341
1372
|
}
|
|
1342
1373
|
});
|
|
1343
1374
|
}
|
|
1375
|
+
convertVollUmrichterEinspeisung(cimModel, targetVoltages, knotenSfIDs, objectMappingConfig, energySourceTypeMappingConfig) {
|
|
1376
|
+
var _a;
|
|
1377
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1378
|
+
const targetClass = objectMappingConfig.Einspeisung.class;
|
|
1379
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG)) {
|
|
1380
|
+
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.VOLLUMRICHTEREINSPEISUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG), knotenSfIDs));
|
|
1381
|
+
for (const i7Data of result) {
|
|
1382
|
+
try {
|
|
1383
|
+
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
|
|
1384
|
+
const externalNetworkInjection = new INTEGRALExternalNetworkInjection_1.INTEGRALExternalNetworkInjection(uuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_', uuid.substring(0, 8), '_ENI'], 32, true), i7Data.kurzname);
|
|
1385
|
+
externalNetworkInjection.nameprimaertyp = 'Wind Onshore';
|
|
1386
|
+
let mf = undefined;
|
|
1387
|
+
mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
|
|
1388
|
+
if (mf) {
|
|
1389
|
+
cimModel.addMultiplierFactor(mf);
|
|
1390
|
+
externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
|
|
1391
|
+
}
|
|
1392
|
+
/** Convert EQ-profile dataset. */
|
|
1393
|
+
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
1394
|
+
externalNetworkInjection.maxP = maxP;
|
|
1395
|
+
const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
1396
|
+
externalNetworkInjection.governorSCD = governorscd;
|
|
1397
|
+
const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
|
|
1398
|
+
externalNetworkInjection.maxQ = maxQ;
|
|
1399
|
+
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : undefined;
|
|
1400
|
+
externalNetworkInjection.minP = minP;
|
|
1401
|
+
const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
|
|
1402
|
+
externalNetworkInjection.minQ = minQ;
|
|
1403
|
+
this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, targetVoltages);
|
|
1404
|
+
/**Convert short circuit constants */
|
|
1405
|
+
const r0X0 = undefined;
|
|
1406
|
+
const r1X1 = undefined;
|
|
1407
|
+
const z0Z1 = undefined;
|
|
1408
|
+
const maxR0X0Ratio = r0X0;
|
|
1409
|
+
externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
|
|
1410
|
+
const maxR1X1Ratio = r1X1;
|
|
1411
|
+
externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
|
|
1412
|
+
const maxZ0Z1Ratio = z0Z1;
|
|
1413
|
+
externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
|
|
1414
|
+
const minR0X0Ratio = r0X0;
|
|
1415
|
+
externalNetworkInjection.minR0ToX0Ratio = minR0X0Ratio;
|
|
1416
|
+
const minR1X1Ratio = r1X1;
|
|
1417
|
+
externalNetworkInjection.minR1ToX1Ratio = minR1X1Ratio;
|
|
1418
|
+
const minZ0Z1Ratio = z0Z1;
|
|
1419
|
+
externalNetworkInjection.minZ0ToZ1Ratio = minZ0Z1Ratio;
|
|
1420
|
+
const i2sk1 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk1) : undefined;
|
|
1421
|
+
const i2sk2 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2) : undefined;
|
|
1422
|
+
const i2sk2e = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2e) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2e) : undefined;
|
|
1423
|
+
const i2sk3 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk3) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk3) : undefined;
|
|
1424
|
+
const ikMin = (0, utils_2.transformShortCircuitCurrent)(Math.min(i2sk1, i2sk2, i2sk2e, i2sk3));
|
|
1425
|
+
const ikMax = (0, utils_2.transformShortCircuitCurrent)(Math.max(i2sk1, i2sk2, i2sk2e, i2sk3));
|
|
1426
|
+
externalNetworkInjection.minInitialSymShCCurrent = ikMin;
|
|
1427
|
+
externalNetworkInjection.maxInitialSymShCCurrent = ikMax;
|
|
1428
|
+
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
|
|
1429
|
+
/** Convert SSH-profile dataset. */
|
|
1430
|
+
/**
|
|
1431
|
+
* @description Set einspprio as referencePriority. PowerFactory sets external network injections with referencePriority == 1, to slack control mode. In regular case referencePriority for externalnetworkextensions is set to value '0'.
|
|
1432
|
+
* einspprio having no effect in loadflow calculation if voltage control does not exists.
|
|
1433
|
+
* */
|
|
1434
|
+
let prio = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
|
|
1435
|
+
if (((_a = externalNetworkInjection.regulatingControl) === null || _a === void 0 ? void 0 : _a.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
|
|
1436
|
+
if (prio !== undefined && prio > 0) {
|
|
1437
|
+
externalNetworkInjection.referencePriority = prio + 1; //TODO: SLACK is a injection with maximum prio in the network section and active voltage control.
|
|
1438
|
+
}
|
|
1439
|
+
else if (prio !== undefined && prio === 0) {
|
|
1440
|
+
externalNetworkInjection.referencePriority = prio;
|
|
1441
|
+
}
|
|
1442
|
+
else {
|
|
1443
|
+
externalNetworkInjection.referencePriority = undefined;
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
|
|
1447
|
+
const p = powerData[0];
|
|
1448
|
+
const q = powerData[1];
|
|
1449
|
+
externalNetworkInjection.setActivePower(p * -1); //convert to load sign system
|
|
1450
|
+
externalNetworkInjection.setReactivePower(q * -1); //convert to load sign system
|
|
1451
|
+
// AMPI7 profile
|
|
1452
|
+
const cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? ((0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) !== 0 ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : 1) : undefined;
|
|
1453
|
+
externalNetworkInjection.cos_phi = cosPhi;
|
|
1454
|
+
externalNetworkInjection.p_mf = (mf && powerData[2]) ? powerData[2] * -1 : undefined;
|
|
1455
|
+
externalNetworkInjection.q_mf = (mf && powerData[3]) ? powerData[3] * -1 : undefined;
|
|
1456
|
+
externalNetworkInjection.normallyInService = inBetrieb;
|
|
1457
|
+
cimModel.addExternalNetworkInjection(externalNetworkInjection);
|
|
1458
|
+
this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
|
|
1459
|
+
}
|
|
1460
|
+
catch (err) {
|
|
1461
|
+
this.logger.error(`error --- convertVollumrichtereinspeisung ${i7Data.id} ${err}`);
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
}
|
|
1465
|
+
else {
|
|
1466
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG} ist nicht vorhanden.`);
|
|
1467
|
+
}
|
|
1468
|
+
});
|
|
1469
|
+
}
|
|
1344
1470
|
convertErsatzQuerZweige(cimModel, targetVoltages, knotenSfIDs, targetClass) {
|
|
1345
1471
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1346
1472
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZQUERZWEIG)) {
|
|
@@ -1373,6 +1499,9 @@ class ConverterIntegral7 {
|
|
|
1373
1499
|
for (const i7Data of result) {
|
|
1374
1500
|
const genType = this.generatorTypen.get(i7Data.nametyp);
|
|
1375
1501
|
const synchronousMachine = new INTEGRALSynchronousMachine_1.INTEGRALSynchronousMachine((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_SM'], 32, true), i7Data.kurzname, i7Data.nameprimaertyp);
|
|
1502
|
+
if (synchronousMachine.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F') {
|
|
1503
|
+
let stop = true;
|
|
1504
|
+
}
|
|
1376
1505
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
1377
1506
|
const cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : undefined;
|
|
1378
1507
|
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
@@ -1474,7 +1603,7 @@ class ConverterIntegral7 {
|
|
|
1474
1603
|
const qType = Math.sqrt(Math.pow(genType === null || genType === void 0 ? void 0 : genType.sr, 2) - Math.pow(pType, 2));
|
|
1475
1604
|
// AMP I7 Profil
|
|
1476
1605
|
synchronousMachine.cos_phi = i7Data.cos_phi;
|
|
1477
|
-
if (synchronousMachine.getUUID() === '
|
|
1606
|
+
if (synchronousMachine.getUUID() === '69718d2d-5988-49a9-b5c8-d53d0cf0e89a') {
|
|
1478
1607
|
let stop = true;
|
|
1479
1608
|
}
|
|
1480
1609
|
if (synchronousMachine.getUUID() === 'f6d81d19-dca0-48e9-a43e-4ab1f6bf697d') {
|
|
@@ -1526,7 +1655,7 @@ class ConverterIntegral7 {
|
|
|
1526
1655
|
// synchronousMachine.voltageRegulationRange: number;
|
|
1527
1656
|
/** Create ReactiveCapabilityCurves */
|
|
1528
1657
|
if (minP !== undefined && maxP !== undefined && minQvonPmin !== undefined && maxQvonPmax !== undefined) {
|
|
1529
|
-
const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)(['CurveData', synchronousMachine.
|
|
1658
|
+
const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)(['CurveData', '_', synchronousMachine.getUUID().substring(0, 8), '_RCC']));
|
|
1530
1659
|
reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
|
|
1531
1660
|
reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
|
|
1532
1661
|
reactiveCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
@@ -1609,6 +1738,9 @@ class ConverterIntegral7 {
|
|
|
1609
1738
|
// TODO: genControlSource is not required.
|
|
1610
1739
|
//generatingUnit.genControlSource = GeneratorControlSource.onAGC;
|
|
1611
1740
|
/**Complete GeneratingUnit data */
|
|
1741
|
+
if (generatingUnit.getUUID() === '70810e1e74aa4359b387bef9158f4767' || synchronousMachine.getUUID() === '70810e1e74aa4359b387bef9158f4767') {
|
|
1742
|
+
const stop = true;
|
|
1743
|
+
}
|
|
1612
1744
|
generatingUnit.initialP = (0, parser_utils_1.isNumericI7)(i7Data.p0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p0) : undefined;
|
|
1613
1745
|
// generatingUnit.longPF
|
|
1614
1746
|
// generatingUnit.maximumAllowableSpinningReserve
|
|
@@ -1760,7 +1892,7 @@ class ConverterIntegral7 {
|
|
|
1760
1892
|
//EQ core profile content
|
|
1761
1893
|
const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
1762
1894
|
if (connectivityNode) {
|
|
1763
|
-
|
|
1895
|
+
this.createConnection(cimModel, asynchronousMachine, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
1764
1896
|
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
|
|
1765
1897
|
if (equipmentContainer) {
|
|
1766
1898
|
equipmentContainer.addEquipment(asynchronousMachine);
|
|
@@ -2341,6 +2473,9 @@ class ConverterIntegral7 {
|
|
|
2341
2473
|
const qr = (0, parser_utils_1.isNumericI7)(i7Data.qr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qr) : undefined;
|
|
2342
2474
|
const pr = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2343
2475
|
shunt.nomU = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
2476
|
+
if (shunt.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
|
|
2477
|
+
let stop = true;
|
|
2478
|
+
}
|
|
2344
2479
|
// Set electrical properties (EQ core)
|
|
2345
2480
|
if ((0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2346
2481
|
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
@@ -2480,7 +2615,7 @@ class ConverterIntegral7 {
|
|
|
2480
2615
|
/** EQ */
|
|
2481
2616
|
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
|
|
2482
2617
|
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
|
|
2483
|
-
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2618
|
+
statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
|
|
2484
2619
|
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2485
2620
|
statVarCom.aggregate = false;
|
|
2486
2621
|
/** EQ-SC */
|
|
@@ -2489,7 +2624,6 @@ class ConverterIntegral7 {
|
|
|
2489
2624
|
/** SV */
|
|
2490
2625
|
//statVarCom.svpowerflow
|
|
2491
2626
|
/** Regelung */
|
|
2492
|
-
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid_rc);
|
|
2493
2627
|
const regulatingControl = this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, targetVoltages, undefined, true);
|
|
2494
2628
|
/** EQ */
|
|
2495
2629
|
if (regulatingControl) {
|
|
@@ -2517,7 +2651,7 @@ class ConverterIntegral7 {
|
|
|
2517
2651
|
/** EQ */
|
|
2518
2652
|
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
|
|
2519
2653
|
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
|
|
2520
|
-
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2654
|
+
statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
|
|
2521
2655
|
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2522
2656
|
statVarCom.aggregate = false;
|
|
2523
2657
|
/** EQ-SC */
|
|
@@ -2529,11 +2663,11 @@ class ConverterIntegral7 {
|
|
|
2529
2663
|
/** EQ */
|
|
2530
2664
|
statVarCom.voltageSetPoint = regulatingControl.targetValue ? regulatingControl.targetValue : ur;
|
|
2531
2665
|
cimModel.addStaticVarCompensator(statVarCom);
|
|
2532
|
-
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.
|
|
2666
|
+
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.SVC);
|
|
2533
2667
|
}
|
|
2534
2668
|
}
|
|
2535
2669
|
else {
|
|
2536
|
-
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.
|
|
2670
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.SVC} ist nicht vorhanden.`);
|
|
2537
2671
|
}
|
|
2538
2672
|
});
|
|
2539
2673
|
}
|
|
@@ -2586,9 +2720,10 @@ class ConverterIntegral7 {
|
|
|
2586
2720
|
csConverter.ratedIdc = (0, utils_2.calculateRatedIdc)(csConverter.ratedUdc, pr);
|
|
2587
2721
|
/** spannungsabhängige Wirk-Verluste in kW bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2588
2722
|
csConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
|
|
2589
|
-
csConverter.maxUdc = csConverter.ratedUdc * 1.
|
|
2590
|
-
csConverter.minUdc = csConverter.ratedUdc * 0.
|
|
2591
|
-
|
|
2723
|
+
csConverter.maxUdc = csConverter.ratedUdc * 1.08; // +5% * ratedUdc
|
|
2724
|
+
csConverter.minUdc = csConverter.ratedUdc * 0.98; // -5% * ratedUdc
|
|
2725
|
+
//R=U^2/P
|
|
2726
|
+
csConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? Math.pow(csConverter.ratedUdc, 2) / ((0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, 3)) : undefined;
|
|
2592
2727
|
csConverter.switchingLoss = 0;
|
|
2593
2728
|
/* csConverter.numberOfValves
|
|
2594
2729
|
csConverter.valveU0*/
|
|
@@ -2682,21 +2817,21 @@ class ConverterIntegral7 {
|
|
|
2682
2817
|
/** Bemessungsleistung (Gleichstromseite) in MW
|
|
2683
2818
|
* im CS-Fall S = P?
|
|
2684
2819
|
* Abhängig vom */
|
|
2685
|
-
vsConverter.baseS = i7Data.pr;
|
|
2820
|
+
vsConverter.baseS = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2686
2821
|
/** Bemessungsspannung (Gleichstromseite) in kV*/
|
|
2687
2822
|
//If udc is set in Integral data model set converter.ratedUdc as i7Data.udc else take the data value for i7Data.ur (Bemessungsspannung)
|
|
2688
2823
|
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);
|
|
2689
|
-
/** spannungsabhängige Wirk-Verluste bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2824
|
+
/** spannungsabhängige Wirk-Verluste in MW bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2690
2825
|
vsConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
|
|
2691
|
-
vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +
|
|
2692
|
-
vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -
|
|
2693
|
-
vsConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10,
|
|
2826
|
+
vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +8% * ratedUdc
|
|
2827
|
+
vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -2% * ratedUdc
|
|
2828
|
+
vsConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? Math.pow(vsConverter.ratedUdc, 2) / ((0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10, 3)) : undefined;
|
|
2694
2829
|
vsConverter.switchingLoss = undefined;
|
|
2695
2830
|
/* csConverter.maxModulationIndex = ;
|
|
2696
2831
|
csConverter.maxValveCurrent = */
|
|
2697
2832
|
/** CapabilityCurveData */
|
|
2698
|
-
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) :
|
|
2699
|
-
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) :
|
|
2833
|
+
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : vsConverter.baseS;
|
|
2834
|
+
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : -1 * vsConverter.baseS;
|
|
2700
2835
|
const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
|
|
2701
2836
|
const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
|
|
2702
2837
|
/** SSH export values */
|
|
@@ -2719,11 +2854,11 @@ class ConverterIntegral7 {
|
|
|
2719
2854
|
vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2720
2855
|
acDCConverterDCTerminal.dcNode = dcNode;
|
|
2721
2856
|
dcNode.dcTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2722
|
-
/** Create
|
|
2857
|
+
/** Create VsCapabilityCurves */
|
|
2723
2858
|
if (minP !== undefined && maxP !== undefined && minQ != undefined && maxQ !== undefined) {
|
|
2724
2859
|
let keyVsCapabilityCurve = cim_class_names_1.ClassNames.VsCapabilityCurve + i7Data.id + vsConverter.getUUID();
|
|
2725
2860
|
let uuidVsCapabilityCurve = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VsCapabilityCurve, this.configUuid, keyVsCapabilityCurve);
|
|
2726
|
-
const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', vsConverter.getUUID().substring(0, 8), '_VCC']));
|
|
2861
|
+
const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', '_', vsConverter.getUUID().substring(0, 8), '_VCC']));
|
|
2727
2862
|
vsCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
|
|
2728
2863
|
vsCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
|
|
2729
2864
|
vsCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
@@ -2734,7 +2869,7 @@ class ConverterIntegral7 {
|
|
|
2734
2869
|
const curveData1 = new CurveData_1.CurveData(uuidCurveData);
|
|
2735
2870
|
curveData1.curve = vsCapabilityCurve;
|
|
2736
2871
|
curveData1.xvalue = minP; //pMin
|
|
2737
|
-
curveData1.y1value = minQ; //qMin
|
|
2872
|
+
curveData1.y1value = minQ; //qMin pMax
|
|
2738
2873
|
curveData1.y2value = maxQ; //qMax pMin
|
|
2739
2874
|
cimModel.addCurveData(curveData1);
|
|
2740
2875
|
//reactive capability curve data for pmax
|
|
@@ -2744,7 +2879,7 @@ class ConverterIntegral7 {
|
|
|
2744
2879
|
curveData2.curve = vsCapabilityCurve;
|
|
2745
2880
|
curveData2.xvalue = maxP; //pMax
|
|
2746
2881
|
curveData2.y1value = minQ; //qMin pMax
|
|
2747
|
-
curveData2.y2value = maxQ; //
|
|
2882
|
+
curveData2.y2value = maxQ; //qMax pMax
|
|
2748
2883
|
cimModel.addCurveData(curveData2);
|
|
2749
2884
|
cimModel.addVsCapabilityCurve(vsCapabilityCurve);
|
|
2750
2885
|
vsConverter.capabilityCurve = vsCapabilityCurve;
|
|
@@ -2863,7 +2998,6 @@ class ConverterIntegral7 {
|
|
|
2863
2998
|
if (i7Data.guid === '_ab64e281-72d0-45fb-8cb3-da4ae99a4f8c') {
|
|
2864
2999
|
const stop = true;
|
|
2865
3000
|
}
|
|
2866
|
-
let einspeisePrioritaet = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
|
|
2867
3001
|
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
2868
3002
|
externalNetworkInjection.maxP = maxP;
|
|
2869
3003
|
const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
@@ -2895,9 +3029,10 @@ class ConverterIntegral7 {
|
|
|
2895
3029
|
const skAkt = (0, parser_utils_1.isNumericI7)(i7Data.sk_akt) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_akt) : undefined;
|
|
2896
3030
|
const skMin = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_min) : skAkt;
|
|
2897
3031
|
const skMax = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_max) : skAkt;
|
|
2898
|
-
const
|
|
3032
|
+
const nomV = externalNetworkInjection.getTerminals().values().next().value.getConnectivityNode().getBaseVoltageAsNumber();
|
|
3033
|
+
const minIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, utils_2.calculateShortCircuitCurrent)(skMin, nomV) : undefined;
|
|
2899
3034
|
externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
|
|
2900
|
-
const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0,
|
|
3035
|
+
const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, utils_2.calculateShortCircuitCurrent)(skMax, nomV) : undefined;
|
|
2901
3036
|
externalNetworkInjection.maxInitialSymShCCurrent = maxIkSecond;
|
|
2902
3037
|
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
|
|
2903
3038
|
/** Convert SSH-profile dataset. */
|
|
@@ -2960,6 +3095,9 @@ class ConverterIntegral7 {
|
|
|
2960
3095
|
if (condEquip instanceof RotatingMachine_1.RotatingMachine || condEquip instanceof ExternalNetworkInjection_1.ExternalNetworkInjection || condEquip instanceof EquivalentInjection_1.EquivalentInjection) {
|
|
2961
3096
|
i7DataEinsp = i7Data;
|
|
2962
3097
|
i7DataRQ = i7Data;
|
|
3098
|
+
if (condEquip.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F' || condEquip.getUUID() === '0c67bf21-a557-46ea-af63-2a3ac116bd2e') {
|
|
3099
|
+
const stop = true;
|
|
3100
|
+
}
|
|
2963
3101
|
}
|
|
2964
3102
|
if (condEquip instanceof SynchronousMachine_1.SynchronousMachine) {
|
|
2965
3103
|
suffix = '_SM';
|
|
@@ -2980,16 +3118,26 @@ class ConverterIntegral7 {
|
|
|
2980
3118
|
suffix = '_EI';
|
|
2981
3119
|
}
|
|
2982
3120
|
else if (condEquip instanceof StaticVarCompensator_1.StaticVarCompensator) {
|
|
3121
|
+
if (condEquip.getUUID() === '18e12018-03dd-4d6e-a626-ea404017050f' || condEquip.getUUID() === '4352ad9f-c841-4dcb-9a42-3ccabcb56487'
|
|
3122
|
+
|| condEquip.getUUID() === '3d060069-9253-4e68-bb75-74d92982bb1a' || condEquip.getUUID() === '03c53185-aaa7-4040-8b43-76f79fac82b9' || condEquip.getUUID() === '02ba5072-a387-47c6-b9ce-b9d3def21964') {
|
|
3123
|
+
let stop = true;
|
|
3124
|
+
}
|
|
2983
3125
|
i7DataSVC = i7Data;
|
|
2984
3126
|
i7DataRQ = i7Data;
|
|
2985
3127
|
suffix = '_SVC';
|
|
2986
3128
|
}
|
|
2987
3129
|
else if (condEquip instanceof LinearShuntCompensator_1.LinearShuntCompensator) {
|
|
3130
|
+
if (condEquip.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
|
|
3131
|
+
let stop = true;
|
|
3132
|
+
}
|
|
2988
3133
|
i7DataKomp = i7Data;
|
|
2989
3134
|
i7DataRQ = i7Data;
|
|
2990
3135
|
suffix = '_LSC';
|
|
2991
3136
|
}
|
|
2992
3137
|
else if (condEquip instanceof ACDCConverter_1.ACDCConverter) {
|
|
3138
|
+
if (condEquip.getUUID() === '71331a6b-000d-4049-89cc-9319a69367f6') {
|
|
3139
|
+
let stop = true;
|
|
3140
|
+
}
|
|
2993
3141
|
i7DataHgue = i7Data;
|
|
2994
3142
|
suffix = '_ACDCC';
|
|
2995
3143
|
}
|
|
@@ -3026,62 +3174,61 @@ class ConverterIntegral7 {
|
|
|
3026
3174
|
let tVMax = undefined; //maximum target voltage
|
|
3027
3175
|
let tVMin = undefined; //minimum target voltage
|
|
3028
3176
|
const regCondEquip = condEquip;
|
|
3029
|
-
|
|
3030
|
-
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3042
|
-
}
|
|
3043
|
-
else {
|
|
3044
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3045
|
-
}
|
|
3177
|
+
//get rated voltage of controlled node.
|
|
3178
|
+
if (knotenSpgGeregelt && spannungsregelungRemote) {
|
|
3179
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3180
|
+
if (cterminal === undefined) {
|
|
3181
|
+
let stop = true;
|
|
3182
|
+
}
|
|
3183
|
+
if (cterminal) {
|
|
3184
|
+
tCn = cterminal.getConnectivityNode();
|
|
3185
|
+
if (tCn) {
|
|
3186
|
+
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3187
|
+
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3188
|
+
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3046
3189
|
}
|
|
3047
3190
|
else {
|
|
3048
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id}
|
|
3191
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3049
3192
|
}
|
|
3050
3193
|
}
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
break;
|
|
3194
|
+
else {
|
|
3195
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Anschlusspunkt (Terminal) des entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
|
|
3199
|
+
switch (knotenSpgGeregelt) {
|
|
3200
|
+
case undefined: {
|
|
3201
|
+
if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
|
|
3202
|
+
cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
3061
3203
|
}
|
|
3062
|
-
|
|
3063
|
-
cterminal = (0, util_graph2tree_1.getControlledNode)(
|
|
3204
|
+
if (cterminal === undefined) {
|
|
3205
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
|
|
3064
3206
|
}
|
|
3207
|
+
break;
|
|
3065
3208
|
}
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
if (tCn) {
|
|
3069
|
-
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3070
|
-
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3071
|
-
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3072
|
-
}
|
|
3073
|
-
else {
|
|
3074
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3075
|
-
}
|
|
3209
|
+
default: {
|
|
3210
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3076
3211
|
}
|
|
3077
3212
|
}
|
|
3078
|
-
|
|
3079
|
-
|
|
3213
|
+
if (cterminal) {
|
|
3214
|
+
tCn = cterminal.getConnectivityNode();
|
|
3080
3215
|
if (tCn) {
|
|
3081
|
-
|
|
3216
|
+
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3217
|
+
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3218
|
+
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3219
|
+
}
|
|
3220
|
+
else {
|
|
3221
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3082
3222
|
}
|
|
3083
3223
|
}
|
|
3084
3224
|
}
|
|
3225
|
+
uband = (0, parser_utils_1.isNumericI7)(tVMax) && (0, parser_utils_1.isNumericI7)(tVMin) ? (0, parser_utils_1.convertToNumberI7)(tVMax) - (0, parser_utils_1.convertToNumberI7)(tVMin) : undefined;
|
|
3226
|
+
if (uband === undefined) {
|
|
3227
|
+
if (tCn) {
|
|
3228
|
+
uband = tCn.getBaseVoltageAsNumber() * 0.1;
|
|
3229
|
+
}
|
|
3230
|
+
}
|
|
3231
|
+
usoll = (0, parser_utils_1.isNumericI7)(i7Data.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7Data.usoll) : usoll;
|
|
3085
3232
|
//Create and define regulating control for voltage control
|
|
3086
3233
|
if (cterminal !== undefined) {
|
|
3087
3234
|
rControl = (0, utils_2.createRegulatingControl)((0, parser_utils_1.getUUID)(i7DataRQ.guid_rc), (0, util_create_1.createNotation)([regCondEquip.getUUID().substring(0, 8), suffix]), true, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage);
|
|
@@ -3094,6 +3241,9 @@ class ConverterIntegral7 {
|
|
|
3094
3241
|
rControl.targetDeadband = (0, parser_utils_1.isNumericI7)(uband) ? uband : undefined; //zulässiges Spannungsband
|
|
3095
3242
|
/** Spannung in kilo*/
|
|
3096
3243
|
//TODO TEMP FIX bei lokaler Regelegung bleibt usoll = null.
|
|
3244
|
+
if (cterminal !== undefined && cterminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
3245
|
+
const stop = true;
|
|
3246
|
+
}
|
|
3097
3247
|
rControl.targetValue = (0, parser_utils_1.isNumericI7)(usoll) ? usoll : ((0, parser_utils_1.isNumericI7)(i7DataEinsp === null || i7DataEinsp === void 0 ? void 0 : i7DataEinsp.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7DataEinsp.usoll) : tCn.getBaseVoltageAsNumber());
|
|
3098
3248
|
const guidSuffix = (_a = tCn === null || tCn === void 0 ? void 0 : tCn.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8);
|
|
3099
3249
|
rControl.name = (0, util_create_1.createNotation)([rControl.name, '_', guidSuffix, '_RC'], 32, true);
|
|
@@ -3109,7 +3259,7 @@ class ConverterIntegral7 {
|
|
|
3109
3259
|
}
|
|
3110
3260
|
}
|
|
3111
3261
|
}
|
|
3112
|
-
else if (isRegulatingControl && i7DataSVC) {
|
|
3262
|
+
else if (isRegulatingControl && i7DataSVC !== undefined) {
|
|
3113
3263
|
/** Regelung */
|
|
3114
3264
|
const regCondEquip = condEquip;
|
|
3115
3265
|
const cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
@@ -3130,12 +3280,12 @@ class ConverterIntegral7 {
|
|
|
3130
3280
|
uband = (0, parser_utils_1.isNumericI7)(tVMax) && (0, parser_utils_1.isNumericI7)(tVMin) ? (0, parser_utils_1.convertToNumberI7)(tVMax) - (0, parser_utils_1.convertToNumberI7)(tVMin) : undefined;
|
|
3131
3281
|
if (uband === undefined) {
|
|
3132
3282
|
if (tCn) {
|
|
3133
|
-
uband = tCn.getBaseVoltageAsNumber() * 0.1;
|
|
3283
|
+
uband = (0, parser_utils_1.isNumericI7)(uref) ? uref * 0.1 : ((0, parser_utils_1.isNumericI7)(usoll) ? usoll * 0.1 : tCn.getBaseVoltageAsNumber() * 0.1);
|
|
3134
3284
|
}
|
|
3135
3285
|
}
|
|
3136
3286
|
if (cterminal !== undefined) {
|
|
3137
3287
|
const uuid = (0, parser_utils_1.getUUID)(i7DataSVC.guid_rc);
|
|
3138
|
-
rControl = (0, utils_2.createRegulatingControl)(uuid, (0, util_create_1.createNotation)([condEquip.getUUID().substring(0, 8), suffix]),
|
|
3288
|
+
rControl = (0, utils_2.createRegulatingControl)(uuid, (0, util_create_1.createNotation)([condEquip.getUUID().substring(0, 8), suffix]), true, UnitMultiplier_1.UnitMultiplier.k, RegulatingControlModeKind_1.RegulatingControlModeKind.voltage);
|
|
3139
3289
|
rControl.enabled = true;
|
|
3140
3290
|
if (isStatcom) {
|
|
3141
3291
|
rControl.discrete = true;
|
|
@@ -3208,20 +3358,23 @@ class ConverterIntegral7 {
|
|
|
3208
3358
|
usoll = (0, parser_utils_1.isNumericI7)(i7DataHgue.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.usoll) : undefined;
|
|
3209
3359
|
if (regelungU) {
|
|
3210
3360
|
condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.udc;
|
|
3211
|
-
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.
|
|
3361
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
|
|
3362
|
+
condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
|
|
3212
3363
|
}
|
|
3213
3364
|
else if (regelungP) {
|
|
3214
3365
|
condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
|
|
3215
|
-
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.
|
|
3366
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
|
|
3216
3367
|
}
|
|
3217
|
-
if (
|
|
3218
|
-
//get rated voltage of controlled node.
|
|
3368
|
+
if (isRegulatingControl) { //voltage control for AC-side
|
|
3219
3369
|
let cterminal = undefined; //connection point terminal of this device
|
|
3220
3370
|
let tVMax = undefined; //maximum target voltage
|
|
3221
3371
|
let tVMin = undefined; //minimum target voltage
|
|
3222
|
-
//get
|
|
3372
|
+
//get rated voltage of controlled node.
|
|
3223
3373
|
if (knotenSpgGeregelt && spannungsregelungRemote) {
|
|
3224
3374
|
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3375
|
+
if (cterminal === undefined) {
|
|
3376
|
+
let stop = true;
|
|
3377
|
+
}
|
|
3225
3378
|
if (cterminal) {
|
|
3226
3379
|
tCn = cterminal.getConnectivityNode();
|
|
3227
3380
|
if (tCn) {
|
|
@@ -3240,7 +3393,9 @@ class ConverterIntegral7 {
|
|
|
3240
3393
|
if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
|
|
3241
3394
|
switch (knotenSpgGeregelt) {
|
|
3242
3395
|
case undefined: {
|
|
3243
|
-
|
|
3396
|
+
if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
|
|
3397
|
+
cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
3398
|
+
}
|
|
3244
3399
|
if (cterminal === undefined) {
|
|
3245
3400
|
cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
|
|
3246
3401
|
}
|
|
@@ -3262,10 +3417,10 @@ class ConverterIntegral7 {
|
|
|
3262
3417
|
}
|
|
3263
3418
|
}
|
|
3264
3419
|
}
|
|
3420
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.voltagePcc;
|
|
3265
3421
|
}
|
|
3266
3422
|
condEquip.targetUpcc = usoll;
|
|
3267
|
-
condEquip.targetQpcc = 0; //ReactivePower,
|
|
3268
|
-
condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
|
|
3423
|
+
//(condEquip as VsConverter).targetQpcc = 0; //ReactivePower, ReactivePowerCapabilityCurve is set in advance
|
|
3269
3424
|
condEquip.targetPpcc = condEquip.baseS * -1;
|
|
3270
3425
|
}
|
|
3271
3426
|
}
|
|
@@ -3365,47 +3520,10 @@ class ConverterIntegral7 {
|
|
|
3365
3520
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_STARR)) {
|
|
3366
3521
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.KNOTEN_STARR, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.KNOTEN_STARR), containerIDs));
|
|
3367
3522
|
for (const i7Data of result) {
|
|
3368
|
-
//const junction = new Junction(getUUID(i7Data.guid, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data),"_J",`_${cimModel.junctions]), 'JNCT', 'starre Verbindung');
|
|
3369
3523
|
const breaker = new Breaker_1.Breaker((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, 'Breaker', 'starre Verbindung');
|
|
3370
3524
|
yield this.convertSwitch(breaker, cimModel, i7Data);
|
|
3371
3525
|
cimModel.addBreaker(breaker);
|
|
3372
3526
|
this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
|
|
3373
|
-
/**const schaltzustand = convertToBooleanI7(i7Data.schaltzustand);
|
|
3374
|
-
|
|
3375
|
-
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7Data.seliste)) as EquipmentContainer);
|
|
3376
|
-
|
|
3377
|
-
if (equipmentContainer) {
|
|
3378
|
-
equipmentContainer.addEquipment(junction);
|
|
3379
|
-
junction.equipmentContainer = equipmentContainer;
|
|
3380
|
-
} else {
|
|
3381
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen EquipmentContainer.`);
|
|
3382
|
-
}
|
|
3383
|
-
const cnStart = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.aknoten));
|
|
3384
|
-
const cnZiel = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.eknoten));
|
|
3385
|
-
|
|
3386
|
-
if (cnStart) {
|
|
3387
|
-
const terminal = this.createConnection(cimModel, junction, cnStart, PhaseCode.ABC, true, 1);
|
|
3388
|
-
if (schaltzustand === false) {
|
|
3389
|
-
terminal.connected = schaltzustand;
|
|
3390
|
-
}
|
|
3391
|
-
} else {
|
|
3392
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Anfangsknoten.`);
|
|
3393
|
-
}
|
|
3394
|
-
if (cnZiel) {
|
|
3395
|
-
const terminal = this.createConnection(cimModel, junction, cnZiel, PhaseCode.ABC, true, 2);
|
|
3396
|
-
if (schaltzustand === false) {
|
|
3397
|
-
terminal.connected = schaltzustand;
|
|
3398
|
-
}
|
|
3399
|
-
} else {
|
|
3400
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Zielknoten.`);
|
|
3401
|
-
}
|
|
3402
|
-
const baseVoltage = getTerminalUn(cimModel, junction);
|
|
3403
|
-
if (baseVoltage) {
|
|
3404
|
-
junction.baseVoltage = baseVoltage;
|
|
3405
|
-
}
|
|
3406
|
-
this.addIdMapping(i7Data.id, junction.mrid, Integral7TableNames.KNOTEN_STARR);
|
|
3407
|
-
cimModel.addJunction(junction);
|
|
3408
|
-
**/
|
|
3409
3527
|
}
|
|
3410
3528
|
}
|
|
3411
3529
|
else {
|
|
@@ -3514,7 +3632,7 @@ class ConverterIntegral7 {
|
|
|
3514
3632
|
const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
|
|
3515
3633
|
let startTerminal;
|
|
3516
3634
|
if (start) {
|
|
3517
|
-
startTerminal =
|
|
3635
|
+
startTerminal = this.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, true);
|
|
3518
3636
|
}
|
|
3519
3637
|
else {
|
|
3520
3638
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
|
|
@@ -3523,7 +3641,7 @@ class ConverterIntegral7 {
|
|
|
3523
3641
|
const target = cimModel.objects.get(this.integralID2UUID.get(i7Data.eknoten));
|
|
3524
3642
|
let targetTerminal;
|
|
3525
3643
|
if (target) {
|
|
3526
|
-
targetTerminal =
|
|
3644
|
+
targetTerminal = this.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, true);
|
|
3527
3645
|
}
|
|
3528
3646
|
else {
|
|
3529
3647
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
@@ -3540,7 +3658,7 @@ class ConverterIntegral7 {
|
|
|
3540
3658
|
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3541
3659
|
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3542
3660
|
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3543
|
-
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir);
|
|
3661
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir, seriesCompensator.r);
|
|
3544
3662
|
seriesCompensator.varistorPresent = false;
|
|
3545
3663
|
/** EQ-SC */
|
|
3546
3664
|
seriesCompensator.r0 = seriesCompensator.r;
|
|
@@ -3626,8 +3744,8 @@ class ConverterIntegral7 {
|
|
|
3626
3744
|
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3627
3745
|
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3628
3746
|
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3629
|
-
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1);
|
|
3630
|
-
seriesCompensator.varistorPresent = false;
|
|
3747
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1, seriesCompensator.r);
|
|
3748
|
+
//seriesCompensator.varistorPresent = false;
|
|
3631
3749
|
/** EQ-SC */
|
|
3632
3750
|
seriesCompensator.r0 = seriesCompensator.r;
|
|
3633
3751
|
seriesCompensator.x0 = seriesCompensator.x;
|
|
@@ -3692,28 +3810,14 @@ class ConverterIntegral7 {
|
|
|
3692
3810
|
for (const i7DataSchiene of stpSchiene) {
|
|
3693
3811
|
try {
|
|
3694
3812
|
stpSchieneIDs.push(i7DataSchiene.id);
|
|
3695
|
-
const
|
|
3696
|
-
const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id + (equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.getUUID()) || '';
|
|
3813
|
+
const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id;
|
|
3697
3814
|
const uuidConnectivityNode = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, keyConnectivityNode);
|
|
3698
|
-
const
|
|
3699
|
-
const
|
|
3700
|
-
|
|
3701
|
-
const junction = new Junction_1.Junction(uuidJunction, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_J']));
|
|
3702
|
-
connectivityNode.setConnectivityNodeContainer(equipmentContainer);
|
|
3703
|
-
if (equipmentContainer) {
|
|
3704
|
-
equipmentContainer.addEquipment(junction);
|
|
3705
|
-
junction.equipmentContainer = equipmentContainer;
|
|
3706
|
-
}
|
|
3707
|
-
else {
|
|
3708
|
-
this.logger.debug(`Sternpunktschiene ${i7DataSchiene.id} besitzt keinen EquipmentContainer.`);
|
|
3709
|
-
}
|
|
3815
|
+
const name = (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_CN'], 32, false);
|
|
3816
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuidConnectivityNode, name, name);
|
|
3817
|
+
connectivityNode.key = integral_prefix_1.CKnoten1PSO_PRAEFIX + i7DataSchiene.bezeichner;
|
|
3710
3818
|
// Verbindung herstellen
|
|
3711
|
-
|
|
3712
|
-
cimModel.terminals.delete(terminal.mrid); //TODO: complete/repair implementation of star point connections.
|
|
3819
|
+
integral7.sternPunktImpModel.stpSchieneIdConnectivityNode.set(i7DataSchiene.id, connectivityNode);
|
|
3713
3820
|
integral7.sternPunktImpModel.connectivityNodes.set(connectivityNode.mrid, connectivityNode);
|
|
3714
|
-
integral7.sternPunktImpModel.junctions.set(junction.mrid, junction);
|
|
3715
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7DataSchiene.id, junction.mrid);
|
|
3716
|
-
integral7.sternPunktImpModel.stpSchieneTerminal.set(i7DataSchiene.id, terminal);
|
|
3717
3821
|
this.addIdMapping(i7DataSchiene.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE);
|
|
3718
3822
|
}
|
|
3719
3823
|
catch (e) {
|
|
@@ -3728,41 +3832,63 @@ class ConverterIntegral7 {
|
|
|
3728
3832
|
}));
|
|
3729
3833
|
});
|
|
3730
3834
|
}
|
|
3731
|
-
convertKdrossel(cimModel, integral7,
|
|
3835
|
+
convertKdrossel(cimModel, integral7, stpSchienenID, defaultValuesConfig) {
|
|
3732
3836
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3733
3837
|
try {
|
|
3734
3838
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ)) {
|
|
3735
|
-
if (
|
|
3736
|
-
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ),
|
|
3839
|
+
if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
|
|
3840
|
+
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_IMPEDANZ, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ), stpSchienenID));
|
|
3737
3841
|
for (const i7Data of result) {
|
|
3738
3842
|
const kdType = this.kdrosseltypen.get(i7Data.nametyp);
|
|
3843
|
+
const iakt = (0, parser_utils_1.isNumericI7)(i7Data.iakt) ? i7Data.iakt : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.iakt) ? kdType === null || kdType === void 0 ? void 0 : kdType.iakt : undefined);
|
|
3844
|
+
const xne = (0, parser_utils_1.isNumericI7)(i7Data.xne) ? i7Data.xne : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? kdType === null || kdType === void 0 ? void 0 : kdType.xne : undefined);
|
|
3845
|
+
const ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) ? (0, parser_utils_1.convertToNumberI7)(kdType === null || kdType === void 0 ? void 0 : kdType.xne) : undefined);
|
|
3739
3846
|
const imax = (0, parser_utils_1.isNumericI7)(i7Data.imax) ? i7Data.imax : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.imax) ? kdType === null || kdType === void 0 ? void 0 : kdType.imax : undefined);
|
|
3740
3847
|
const imin = (0, parser_utils_1.isNumericI7)(i7Data.imin) ? i7Data.imin : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.imin) ? kdType === null || kdType === void 0 ? void 0 : kdType.imin : undefined);
|
|
3741
3848
|
const connectivityNode = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
if (imax && imin) {
|
|
3849
|
+
let conductingEquip = undefined;
|
|
3850
|
+
if (iakt !== undefined && xne !== undefined || xne !== undefined && ur !== undefined || iakt !== undefined && ur !== undefined) {
|
|
3745
3851
|
/** PetersenCoil */
|
|
3746
3852
|
const petersenCoil = new PetersenCoil_1.PetersenCoil((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
|
|
3747
|
-
|
|
3748
|
-
|
|
3853
|
+
if (xne !== undefined && ur !== undefined) {
|
|
3854
|
+
petersenCoil.xGroundNominal = xne;
|
|
3855
|
+
petersenCoil.nominalU = ur;
|
|
3856
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3857
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3858
|
+
}
|
|
3859
|
+
else if (iakt !== undefined && xne !== undefined) {
|
|
3860
|
+
petersenCoil.xGroundNominal = xne;
|
|
3861
|
+
petersenCoil.nominalU = iakt * xne * Math.pow(10, -3);
|
|
3862
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3863
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3864
|
+
}
|
|
3865
|
+
else if (iakt !== undefined && ur !== undefined) {
|
|
3866
|
+
petersenCoil.nominalU = ur;
|
|
3867
|
+
petersenCoil.xGroundNominal = petersenCoil.nominalU * Math.pow(10, 3) / iakt;
|
|
3868
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3869
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3870
|
+
}
|
|
3871
|
+
petersenCoil.mode = PetersenCoilModeKind_1.PetersenCoilModeKind.automaticPositioning;
|
|
3749
3872
|
this.addIdMapping(i7Data.id, petersenCoil.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
|
|
3750
3873
|
conductingEquip = petersenCoil;
|
|
3751
3874
|
}
|
|
3752
3875
|
else {
|
|
3753
3876
|
/** GroundingImpedance */
|
|
3754
3877
|
const groundingImpedance = new GroundingImpedance_1.GroundingImpedance((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_GI']), i7Data.kurzname);
|
|
3755
|
-
groundingImpedance.r = (0, parser_utils_1.isNumericI7)(i7Data.rne) ? i7Data.rne : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? kdType === null || kdType === void 0 ? void 0 : kdType.rne : undefined);
|
|
3756
|
-
groundingImpedance.x =
|
|
3878
|
+
groundingImpedance.r = (0, parser_utils_1.isNumericI7)(i7Data.rne) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rne) : ((0, parser_utils_1.isNumericI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) ? (0, parser_utils_1.convertToNumberI7)(kdType === null || kdType === void 0 ? void 0 : kdType.rne) : undefined);
|
|
3879
|
+
groundingImpedance.x = xne;
|
|
3757
3880
|
integral7.sternPunktImpModel.groundingImpedances.set(groundingImpedance.mrid, groundingImpedance);
|
|
3758
|
-
integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
|
|
3881
|
+
//integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
|
|
3759
3882
|
this.addIdMapping(i7Data.id, groundingImpedance.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
|
|
3760
3883
|
conductingEquip = groundingImpedance;
|
|
3761
3884
|
}
|
|
3762
|
-
//
|
|
3885
|
+
// Create connection for PetersenCoil and GroundingImpedance connected with 'Sternpunktschiene'. PetersenCoil and GroundingImpedance connected to 'Sternpunktknoten' is connected during convertTrafo2w and convertTrafo3w
|
|
3763
3886
|
if (connectivityNode) {
|
|
3764
|
-
|
|
3765
|
-
|
|
3887
|
+
this.createConnection(cimModel, conductingEquip, connectivityNode, PhaseCode_1.PhaseCode.N, true);
|
|
3888
|
+
integral7.sternPunktImpModel.stpSchieneUUIDStpImp.set(connectivityNode.getUUID(), conductingEquip);
|
|
3889
|
+
}
|
|
3890
|
+
else {
|
|
3891
|
+
integral7.sternPunktImpModel.stpKnotenStpImp.set(i7Data.anschluss, conductingEquip);
|
|
3766
3892
|
}
|
|
3767
3893
|
}
|
|
3768
3894
|
}
|
|
@@ -3783,26 +3909,37 @@ class ConverterIntegral7 {
|
|
|
3783
3909
|
});
|
|
3784
3910
|
}
|
|
3785
3911
|
/** Den Schaltzuszand bestimmen und zuvor angelegten (convertSternpunktSchienen) Terminalinstanz zuweisen. */
|
|
3786
|
-
convertStpSchaltelemente(integral7, stpSchienenID) {
|
|
3912
|
+
convertStpSchaltelemente(cimModel, integral7, stpSchienenID) {
|
|
3787
3913
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3788
3914
|
try {
|
|
3789
3915
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER)) {
|
|
3790
|
-
if (stpSchienenID.length) {
|
|
3916
|
+
if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
|
|
3791
3917
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STERNPUNKT_SCHALTER, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER), stpSchienenID));
|
|
3792
3918
|
for (const i7Data of result) {
|
|
3793
|
-
const
|
|
3794
|
-
|
|
3795
|
-
|
|
3919
|
+
const connectivityNodeAbcn = cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.aknoten)); //connection point of 'PowerTransformerEnd' is assigned during convertTrafo2w and convertTrafo3w
|
|
3920
|
+
const connectivityNodeN = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.eknoten)); //connection point of 'Sternpunktschiene'
|
|
3921
|
+
if (connectivityNodeN != undefined) {
|
|
3922
|
+
const schaltzustand = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
|
|
3923
|
+
const keyGroundDisconnector = cim_class_names_1.ClassNames.GroundDisconnector + i7Data.aknoten + i7Data.eknoten;
|
|
3924
|
+
const uuidGroundDisconnector = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.GroundDisconnector, this.configUuid, keyGroundDisconnector);
|
|
3925
|
+
const groundDisconnector = new GroundDisconnector_1.GroundDisconnector(uuidGroundDisconnector, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar, schaltzustand, false);
|
|
3926
|
+
//Set connection to ConnectivityNode at neutral side to GroundingImpedance or PetersenCoil
|
|
3927
|
+
this.createConnection(cimModel, groundDisconnector, connectivityNodeN, PhaseCode_1.PhaseCode.N, true);
|
|
3928
|
+
//cimModel.addGroundDisconnector(groundDisconnector);
|
|
3929
|
+
integral7.sternPunktImpModel.groundDisconnectors.set(groundDisconnector.getUUID(), groundDisconnector);
|
|
3930
|
+
/** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3931
|
+
integral7.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.set(i7Data.id, groundDisconnector.getUUID());
|
|
3932
|
+
/** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3933
|
+
integral7.sternPunktImpModel.groundDisconnectorsUUIDsStpSchieneUUID.set(groundDisconnector.getUUID(), connectivityNodeN.getUUID());
|
|
3934
|
+
/** SternpunktknotenID mit GroundDisconnector UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
|
|
3935
|
+
integral7.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.set(groundDisconnector.getUUID(), i7Data.eknoten);
|
|
3936
|
+
/** set connection to terminal of powertransformerend*/
|
|
3937
|
+
let earthFaultCompensator = integral7.sternPunktImpModel.stpSchieneUUIDStpImp.get(connectivityNodeN.getUUID());
|
|
3938
|
+
integral7.sternPunktImpModel.groundDisconnectorUUIDstpImp.set(groundDisconnector.getUUID(), earthFaultCompensator);
|
|
3939
|
+
this.addIdMapping(i7Data.id, groundDisconnector.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER);
|
|
3796
3940
|
}
|
|
3797
|
-
/** SchaltelementID mit Junstion UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3798
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.id, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
|
|
3799
|
-
/** Sternpunktknoten mit Junstion UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
|
|
3800
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.aknoten, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
|
|
3801
3941
|
}
|
|
3802
3942
|
}
|
|
3803
|
-
else {
|
|
3804
|
-
this.logger.debug(`StpSchaltelemente Keine Sternpunktschienen vorhanden.`);
|
|
3805
|
-
}
|
|
3806
3943
|
}
|
|
3807
3944
|
else {
|
|
3808
3945
|
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER} ist nicht vorhanden.`);
|
|
@@ -3920,6 +4057,7 @@ class ConverterIntegral7 {
|
|
|
3920
4057
|
result_ohl = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.STROMKREISABSCHNITT_FREILEITUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.FREILEITUNG), leitungIDs));
|
|
3921
4058
|
}
|
|
3922
4059
|
for (const i7Data of result) {
|
|
4060
|
+
let lineNames = new Map;
|
|
3923
4061
|
/** Alle Stromkreisabschnitte */
|
|
3924
4062
|
const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
|
|
3925
4063
|
if (!((stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length) > 0))
|
|
@@ -3943,8 +4081,9 @@ class ConverterIntegral7 {
|
|
|
3943
4081
|
'-' +
|
|
3944
4082
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.stkabname);
|
|
3945
4083
|
/** Wenn kein Stromkreisobjekt vorhanden ist, dann erstelle ein neues Objekt. */
|
|
3946
|
-
const uuidString =
|
|
3947
|
-
|
|
4084
|
+
const uuidString = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Line, this.configUuid, i7Schluessel);
|
|
4085
|
+
let lineName = createLineName(i7Data, uuidString, lineNames);
|
|
4086
|
+
const line = new AMPRIONLine_1.AMPRIONLine(uuidString, lineName);
|
|
3948
4087
|
line.ukz = i7Data.ukz;
|
|
3949
4088
|
line.key = i7Schluessel;
|
|
3950
4089
|
let acLineSegments = [];
|
|
@@ -3957,7 +4096,7 @@ class ConverterIntegral7 {
|
|
|
3957
4096
|
'-' +
|
|
3958
4097
|
(0, utils_2.ueberpruefeZeichenkette)(stk.bezeichner);
|
|
3959
4098
|
const uuid = (0, parser_utils_1.getUUID)(stk.custom_guid_0120 + stk.custom_guid_2137, this.objectMappingConfig.standardiseUuid);
|
|
3960
|
-
const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname,
|
|
4099
|
+
const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname, i7Data.kommentar);
|
|
3961
4100
|
const key = acLineSegment.getUUID();
|
|
3962
4101
|
const uuidWireObject = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.EVWireObject, this.configUuid, key);
|
|
3963
4102
|
acLineSegment.key = i7Schluessel;
|
|
@@ -4020,7 +4159,7 @@ class ConverterIntegral7 {
|
|
|
4020
4159
|
/**Connectivity Node to connect end of line and start of neighbouring line.*/
|
|
4021
4160
|
const key = acLineSegment1.getUUID() + acLineSegment2.getUUID();
|
|
4022
4161
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
4023
|
-
const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.
|
|
4162
|
+
const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, false));
|
|
4024
4163
|
/**Connect end of aclinesegment i*/
|
|
4025
4164
|
cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
|
|
4026
4165
|
tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true);
|
|
@@ -4079,7 +4218,6 @@ class ConverterIntegral7 {
|
|
|
4079
4218
|
/** In any case assign Georegion to aclinesegments */
|
|
4080
4219
|
let idx = 0;
|
|
4081
4220
|
while (idx < acLineSegments.length && !(line.subGeographicalRegion)) {
|
|
4082
|
-
let jdx = 0;
|
|
4083
4221
|
let values = acLineSegments[idx].terminals.values();
|
|
4084
4222
|
let tmp_terminal = values.next();
|
|
4085
4223
|
while (tmp_terminal.value && !(line.subGeographicalRegion)) {
|
|
@@ -4149,6 +4287,9 @@ class ConverterIntegral7 {
|
|
|
4149
4287
|
let dcLineNeutral = undefined;
|
|
4150
4288
|
const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
|
|
4151
4289
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
4290
|
+
if (dcLine.getUUID() === 'f125f0f3-a621-43e7-8af7-9873d52239a0') {
|
|
4291
|
+
const stop = true;
|
|
4292
|
+
}
|
|
4152
4293
|
/** operationMode der Anfangs- und Zielkopfstation setzen */
|
|
4153
4294
|
let converterStart = false;
|
|
4154
4295
|
let converterStartNeg = false;
|
|
@@ -4163,7 +4304,7 @@ class ConverterIntegral7 {
|
|
|
4163
4304
|
let dcNodeStartMiddle = undefined;
|
|
4164
4305
|
let dcNodeTargetMiddle = undefined;
|
|
4165
4306
|
//Parameter "guidp" is available for monopolar and bipolar dc systems. Thus create DCLineSegment with positive sign property in any case.
|
|
4166
|
-
const dcLineSegment = new DCLineSegment_1.
|
|
4307
|
+
const dcLineSegment = new DCLineSegment_1.INTEGRALDCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidp, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
|
|
4167
4308
|
dcLineSegmentSet.push(dcLineSegment);
|
|
4168
4309
|
let dcLineSegmentNeg = undefined;
|
|
4169
4310
|
let dcLineSegmentNeutral = undefined;
|
|
@@ -4172,19 +4313,21 @@ class ConverterIntegral7 {
|
|
|
4172
4313
|
dcLineSegment.capacitance = undefined;
|
|
4173
4314
|
dcLineSegment.inductance = undefined;
|
|
4174
4315
|
/**EQ: given directly by the INTEGRAL system model */
|
|
4175
|
-
dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : undefined;
|
|
4316
|
+
dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (bipole ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) / 2) : undefined;
|
|
4317
|
+
dcLineSegment.ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
4176
4318
|
dcLineSegment.equipmentContainer = dcLine;
|
|
4177
4319
|
//create second dcLineSegment in case this dcLine is a bipol.
|
|
4178
4320
|
if (bipole) {
|
|
4179
4321
|
const dcLineKey = dcLine.getUUID();
|
|
4180
4322
|
const dcLineUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
|
|
4181
4323
|
dcLineNeg = new DCLine_1.DCLine(dcLineUuid, i7Data.bezeichner);
|
|
4182
|
-
dcLineSegmentNeg = new DCLineSegment_1.
|
|
4324
|
+
dcLineSegmentNeg = new DCLineSegment_1.INTEGRALDCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, (0, util_create_1.createNotation)([i7Data.kurzname, '_neg'], 12, true), i7Schluessel);
|
|
4183
4325
|
dcLineSegmentSet.push(dcLineSegmentNeg);
|
|
4184
4326
|
dcLineSegmentNeg.length = dcLineSegment.length;
|
|
4185
4327
|
dcLineSegmentNeg.capacitance = undefined;
|
|
4186
4328
|
dcLineSegmentNeg.inductance = undefined;
|
|
4187
|
-
dcLineSegmentNeg.resistance =
|
|
4329
|
+
dcLineSegmentNeg.resistance = dcLineSegment.resistance;
|
|
4330
|
+
dcLineSegmentNeg.ur = dcLineSegment.ur;
|
|
4188
4331
|
dcLineSegmentNeg.equipmentContainer = dcLineNeg;
|
|
4189
4332
|
}
|
|
4190
4333
|
//create metallic return
|
|
@@ -4192,12 +4335,13 @@ class ConverterIntegral7 {
|
|
|
4192
4335
|
const dcLineNeutralUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
|
|
4193
4336
|
const dcLineSegmentUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLineSegment, this.configUuid, dcLineNeutralUuid);
|
|
4194
4337
|
dcLineNeutral = new DCLine_1.DCLine(dcLineNeutralUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCL']));
|
|
4195
|
-
dcLineSegmentNeutral = new DCLineSegment_1.
|
|
4338
|
+
dcLineSegmentNeutral = new DCLineSegment_1.INTEGRALDCLineSegment(dcLineSegmentUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCLS'], 32, true), (0, util_create_1.createNotation)([i7Data.kurzname, '_mid'], 12, true), i7Schluessel);
|
|
4196
4339
|
dcLineSegmentSet.push(dcLineSegmentNeutral);
|
|
4197
4340
|
dcLineSegmentNeutral.length = dcLineSegment.length;
|
|
4198
4341
|
dcLineSegmentNeutral.capacitance = undefined;
|
|
4199
4342
|
dcLineSegmentNeutral.inductance = undefined;
|
|
4200
|
-
dcLineSegmentNeutral.resistance =
|
|
4343
|
+
dcLineSegmentNeutral.resistance = dcLineSegment.resistance;
|
|
4344
|
+
dcLineSegmentNeutral.ur = dcLineSegment.ur;
|
|
4201
4345
|
dcLineSegmentNeutral.equipmentContainer = dcLineNeutral;
|
|
4202
4346
|
//get ACDCConverter at both ends of DCLine
|
|
4203
4347
|
const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) ? cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) : undefined;
|
|
@@ -4375,8 +4519,10 @@ class ConverterIntegral7 {
|
|
|
4375
4519
|
const equipmentKey = dcTerminal.getUUID();
|
|
4376
4520
|
for (const elem of dcTerminal.dcNode.dcTerminals.values()) {
|
|
4377
4521
|
if (elem instanceof ACDCConverterDCTerminal_1.ACDCConverterDCTerminal) {
|
|
4378
|
-
const pR = elem.dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
|
|
4379
|
-
const uR = acDCConverterStart.ratedUdc; //voltage in kV
|
|
4522
|
+
//const pR: number = (elem as ACDCConverterDCTerminal).dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
|
|
4523
|
+
//const uR: number = acDCConverterStart.ratedUdc; //voltage in kV
|
|
4524
|
+
const pR = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
4525
|
+
const uR = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
4380
4526
|
if (pR != undefined && uR != undefined) {
|
|
4381
4527
|
let ir = (pR * Math.pow(10, 6)) / (uR * Math.pow(10, 3)); //assumption: pr is BaseS
|
|
4382
4528
|
if (bipole) {
|
|
@@ -4436,6 +4582,7 @@ class ConverterIntegral7 {
|
|
|
4436
4582
|
typTrafo.r0kr2 = i7Data.r0kr2;
|
|
4437
4583
|
typTrafo.r00r1 = i7Data.r00r1;
|
|
4438
4584
|
typTrafo.r00r2 = i7Data.r00r2;
|
|
4585
|
+
typTrafo.s_dauer = i7Data.s_dauer;
|
|
4439
4586
|
const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
|
|
4440
4587
|
typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
|
|
4441
4588
|
this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
|
|
@@ -4487,6 +4634,9 @@ class ConverterIntegral7 {
|
|
|
4487
4634
|
typTrafo.r0kr2 = i7Data.r0kr2;
|
|
4488
4635
|
typTrafo.r00r1 = i7Data.r00r1;
|
|
4489
4636
|
typTrafo.r00r2 = i7Data.r00r2;
|
|
4637
|
+
typTrafo.s_dauer_1 = i7Data.s_dauer_1;
|
|
4638
|
+
typTrafo.s_dauer_2 = i7Data.s_dauer_2;
|
|
4639
|
+
typTrafo.s_dauer_3 = i7Data.s_dauer_3;
|
|
4490
4640
|
const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
|
|
4491
4641
|
typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr1, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
|
|
4492
4642
|
this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
|
|
@@ -4605,30 +4755,18 @@ class ConverterIntegral7 {
|
|
|
4605
4755
|
integral_prefix_1.TRAFO2W_PRAEFIX +
|
|
4606
4756
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
4607
4757
|
powerTransformer.key = i7Schluessel;
|
|
4608
|
-
if (powerTransformer.getUUID() === '
|
|
4609
|
-
let stop = true;
|
|
4610
|
-
} // kein Typ in D4
|
|
4611
|
-
if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') {
|
|
4612
|
-
let stop = true;
|
|
4613
|
-
} //Typ in D8
|
|
4614
|
-
if (powerTransformer.getUUID() === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') {
|
|
4758
|
+
if (powerTransformer.getUUID() === '21def4394e814e77b3f25acbad7bda16') {
|
|
4615
4759
|
let stop = true;
|
|
4616
|
-
}
|
|
4617
|
-
if (powerTransformer.getUUID() === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9') {
|
|
4618
|
-
let stop = true;
|
|
4619
|
-
} //Typ in D7
|
|
4760
|
+
}
|
|
4620
4761
|
if (powerTransformer.getUUID() === '8eca3fedd32c49369f8946ac4ce70e17') { //Stufenstellerkonvertierung fehlgeschlagen
|
|
4621
4762
|
let stop = true;
|
|
4622
4763
|
}
|
|
4623
4764
|
if (powerTransformer.getUUID() === 'b9d8bd48e1554af7b6153c1f7da052e1') {
|
|
4624
4765
|
let stop = true;
|
|
4625
4766
|
} //Phasenschieber zu falscher Winkel und falsches stepIncrement.
|
|
4626
|
-
if (powerTransformer.getUUID() === '
|
|
4767
|
+
if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') { //pkr, ukr, ... konnte nicht aus Typ ermittelt werden.
|
|
4627
4768
|
let stop = true;
|
|
4628
4769
|
} //Längsregeltransformator mit symmetrischem Phasenschieber.
|
|
4629
|
-
if (i7Data.nametyp) {
|
|
4630
|
-
const stop = true;
|
|
4631
|
-
}
|
|
4632
4770
|
const powerTransformerInfo = this.cimModelDefault.getPowerTransformerInfoByName(i7Data.nametyp);
|
|
4633
4771
|
if (powerTransformerInfo) {
|
|
4634
4772
|
facility.setAssetInfo(powerTransformerInfo);
|
|
@@ -4646,12 +4784,13 @@ class ConverterIntegral7 {
|
|
|
4646
4784
|
// Wicklung 1
|
|
4647
4785
|
const powerTransformerEnd1 = new PowerTransformerEnd_1.PowerTransformerEnd((0, parser_utils_1.getUUID)(i7Data.guid_w1, this.objectMappingConfig.standardiseUuid), `W1-${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`);
|
|
4648
4786
|
powerTransformerEnd1.endNumber = 1;
|
|
4649
|
-
const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo,
|
|
4650
|
-
const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo,
|
|
4787
|
+
const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
|
|
4788
|
+
const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
|
|
4651
4789
|
const sr = (0, utils_2.getSrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd1.endNumber, false);
|
|
4652
4790
|
const ur = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
|
|
4653
4791
|
const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
|
|
4654
|
-
const
|
|
4792
|
+
const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, false);
|
|
4793
|
+
const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, false);
|
|
4655
4794
|
// P0 Lastverluste im I7 Modell p_leer
|
|
4656
4795
|
const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
|
|
4657
4796
|
// Leerlaufverluste
|
|
@@ -4699,7 +4838,7 @@ class ConverterIntegral7 {
|
|
|
4699
4838
|
const startTerminal = start ? this.createConnection(cimModel, powerTransformer, start, PhaseCode.ABC, true, 1) : undefined;*/
|
|
4700
4839
|
if (!startTerminal)
|
|
4701
4840
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
4702
|
-
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7,
|
|
4841
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig);
|
|
4703
4842
|
/**Add boundary equivalent injection if terminal is connected to boudary point. */
|
|
4704
4843
|
let equivalentInjection = undefined;
|
|
4705
4844
|
if (startTerminal) {
|
|
@@ -4731,7 +4870,7 @@ class ConverterIntegral7 {
|
|
|
4731
4870
|
const zielTerminal = this.createBoundaryConnection(frame, powerTransformer, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
|
|
4732
4871
|
if (!zielTerminal)
|
|
4733
4872
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Zielknoten.`);
|
|
4734
|
-
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7,
|
|
4873
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7, sdauer2, i7Data, defaultValuesConfig);
|
|
4735
4874
|
/**Add boundary equivalent injection if terminal is connected to boudary point. */
|
|
4736
4875
|
if (zielTerminal) {
|
|
4737
4876
|
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
|
|
@@ -4746,9 +4885,6 @@ class ConverterIntegral7 {
|
|
|
4746
4885
|
powerTransformerEnd1.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd1.endNumber);
|
|
4747
4886
|
powerTransformerEnd2.connectionKind = (0, utils_2.getSchaltgruppe)(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
|
|
4748
4887
|
powerTransformerEnd2.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd2.endNumber);
|
|
4749
|
-
if (uuid === '402aec99-ba2c-42fa-b4ed-b4928901f47b') {
|
|
4750
|
-
let stop = true;
|
|
4751
|
-
}
|
|
4752
4888
|
// NullSystem Impedanzen (nur Reaktanzen)
|
|
4753
4889
|
let starconnectionCount = (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) <= 1 ? (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) : 1;
|
|
4754
4890
|
const retVal = (0, utils_2.calculateComplexZeroSequImpedanzenTrafo)([r0kr1, x0kr1, r0kr2, x0kr2], [r00r1, x00r1, r00r2, x00r2], [ur, ur2], starconnectionCount, powerTransformer);
|
|
@@ -4761,7 +4897,7 @@ class ConverterIntegral7 {
|
|
|
4761
4897
|
powerTransformerEnd2.x0 = zeroSequImpedanzWx.x02;
|
|
4762
4898
|
powerTransformerEnd2.r0 = zeroSequImpedanzWx.r02;
|
|
4763
4899
|
/** Transormator Anschlusspunkte nach Spannungsebene sortieren */
|
|
4764
|
-
this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
4900
|
+
//this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
4765
4901
|
// TODO
|
|
4766
4902
|
/** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
|
|
4767
4903
|
* da sonst die Wicklungsnummern nicht mehr übereinstimmen könnten */
|
|
@@ -4835,6 +4971,9 @@ class ConverterIntegral7 {
|
|
|
4835
4971
|
for (const i7Data of result) {
|
|
4836
4972
|
const sternpunktKnotenMap = new Map();
|
|
4837
4973
|
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
|
|
4974
|
+
if (uuid === 'b81485dd-5115-4241-b31a-c87a3eec9803' || uuid === '4eadc602-7dc5-41e4-bb8b-38993c03a80a') {
|
|
4975
|
+
const stop = true;
|
|
4976
|
+
}
|
|
4838
4977
|
const powerTransformer = new PowerTransformer_1.PowerTransformer(uuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_', uuid.substring(0, 8), '_PT']), i7Data.kurzname, i7Data.kommentar);
|
|
4839
4978
|
const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
|
|
4840
4979
|
if (substation) {
|
|
@@ -4885,9 +5024,9 @@ class ConverterIntegral7 {
|
|
|
4885
5024
|
const ur1 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
|
|
4886
5025
|
const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
|
|
4887
5026
|
const ur3 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 3);
|
|
4888
|
-
const sdauer1 = (0,
|
|
4889
|
-
const sdauer2 = (0,
|
|
4890
|
-
const sdauer3 = (0,
|
|
5027
|
+
const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, true);
|
|
5028
|
+
const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, true);
|
|
5029
|
+
const sdauer3 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 3, true);
|
|
4891
5030
|
//Leerlaufverluste in kW
|
|
4892
5031
|
const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
|
|
4893
5032
|
// Leerlaufstrom bezogen auf Wicklung mit dem grössten Sr in %
|
|
@@ -4942,7 +5081,7 @@ class ConverterIntegral7 {
|
|
|
4942
5081
|
powerTransformerEnd1.r = impedanzW1.r;
|
|
4943
5082
|
powerTransformerEnd1.x = impedanzW1.x;
|
|
4944
5083
|
powerTransformerEnd1.g = impedanzW1.g;
|
|
4945
|
-
powerTransformerEnd1.b = impedanzW1.b;
|
|
5084
|
+
powerTransformerEnd1.b = -1 * impedanzW1.b;
|
|
4946
5085
|
powerTransformerEnd1.ratedU = ur1;
|
|
4947
5086
|
powerTransformerEnd1.ratedS = sr1;
|
|
4948
5087
|
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, terminal1, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig, trafoWicklungen);
|
|
@@ -4989,7 +5128,7 @@ class ConverterIntegral7 {
|
|
|
4989
5128
|
powerTransformerEnd2.r = impedanzW2.r;
|
|
4990
5129
|
powerTransformerEnd2.x = impedanzW2.x;
|
|
4991
5130
|
powerTransformerEnd2.g = impedanzW2.g;
|
|
4992
|
-
powerTransformerEnd2.b = impedanzW2.b;
|
|
5131
|
+
powerTransformerEnd2.b = -1 * impedanzW2.b;
|
|
4993
5132
|
powerTransformerEnd2.ratedS = sr2;
|
|
4994
5133
|
powerTransformerEnd2.ratedU = ur2;
|
|
4995
5134
|
powerTransformerEnd2.powerTransformer = powerTransformer;
|
|
@@ -5037,7 +5176,7 @@ class ConverterIntegral7 {
|
|
|
5037
5176
|
powerTransformerEnd3.r = impedanzW3.r;
|
|
5038
5177
|
powerTransformerEnd3.x = impedanzW3.x;
|
|
5039
5178
|
powerTransformerEnd3.g = impedanzW3.g;
|
|
5040
|
-
powerTransformerEnd3.b = impedanzW3.b;
|
|
5179
|
+
powerTransformerEnd3.b = -1 * impedanzW3.b;
|
|
5041
5180
|
powerTransformerEnd3.ratedS = sr3;
|
|
5042
5181
|
powerTransformerEnd3.ratedU = ur3;
|
|
5043
5182
|
powerTransformerEnd3.powerTransformer = powerTransformer;
|
|
@@ -5069,6 +5208,15 @@ class ConverterIntegral7 {
|
|
|
5069
5208
|
powerTransformerEnd3.r0 = zeroSequImpedanzWx.r03;
|
|
5070
5209
|
// Transormator Anschlusspunkte nach Spannungsebene sortieren
|
|
5071
5210
|
this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
5211
|
+
// Set grounding for autotransformer
|
|
5212
|
+
const pTEnds = powerTransformer.getPowerTransformerEnd().filter(elem => elem.connectionKind === 'A');
|
|
5213
|
+
if (pTEnds.length > 0) {
|
|
5214
|
+
if (pTEnds.filter(elem => elem.grounded === true).length > 0) {
|
|
5215
|
+
for (const end of pTEnds) {
|
|
5216
|
+
end.grounded = true;
|
|
5217
|
+
}
|
|
5218
|
+
}
|
|
5219
|
+
}
|
|
5072
5220
|
//TODO
|
|
5073
5221
|
/** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
|
|
5074
5222
|
* da sonst die Wicklungsnummern, nicht mehr übereinstimmen könnten */
|
|
@@ -5263,10 +5411,8 @@ class ConverterIntegral7 {
|
|
|
5263
5411
|
sortTransformerEnd(powerTransformer, sortProperty, order) {
|
|
5264
5412
|
// Store current order of power transformer ends.
|
|
5265
5413
|
let winding_guids = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5266
|
-
let winding_guids_fixed = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5267
5414
|
for (let i = 0; i < powerTransformer.powerTransformerEnd.length; i++) {
|
|
5268
5415
|
winding_guids[i] = powerTransformer.powerTransformerEnd[i].getUUID();
|
|
5269
|
-
winding_guids_fixed[i] = powerTransformer.powerTransformerEnd[i].getUUID();
|
|
5270
5416
|
}
|
|
5271
5417
|
//Sort: This step maybe changes power transformer ends order for this power transformer.
|
|
5272
5418
|
powerTransformer.powerTransformerEnd.sort(function (w1, w2) {
|
|
@@ -5290,8 +5436,19 @@ class ConverterIntegral7 {
|
|
|
5290
5436
|
// const isNull = true;
|
|
5291
5437
|
//}
|
|
5292
5438
|
}
|
|
5439
|
+
let tmpMapping = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5440
|
+
for (let i = 0; i < winding_guids.length; i++) {
|
|
5441
|
+
tmpMapping[i] = (winding_guids.indexOf(powerTransformer.powerTransformerEnd[i].getUUID()) + 1).toString();
|
|
5442
|
+
}
|
|
5443
|
+
return tmpMapping; //return mapping
|
|
5293
5444
|
}
|
|
5294
5445
|
setACLineSegmentProperties(defaultModel, cimModel, acLineSegment, data, cable, defaultValuesConfig) {
|
|
5446
|
+
if ((0, parser_utils_1.isBooleanI7)(data.ltgmonitoring) && (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring)) {
|
|
5447
|
+
acLineSegment.ltgmonitoring = (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring);
|
|
5448
|
+
}
|
|
5449
|
+
else {
|
|
5450
|
+
acLineSegment.ltgmonitoring = false;
|
|
5451
|
+
}
|
|
5295
5452
|
if ((0, parser_utils_1.isBooleanI7)(data.flag_impedanzlos) && (0, parser_utils_1.convertToBooleanI7)(data.flag_impedanzlos)) {
|
|
5296
5453
|
data.flag_impedanzlos = 1;
|
|
5297
5454
|
}
|
|
@@ -5392,8 +5549,8 @@ class ConverterIntegral7 {
|
|
|
5392
5549
|
* @param equipmentKey Generierung einer persistenter UUID v5. Für PowerTransformer wird UUID des PowerTransformerEnds verwendet. Andernfalls die UUID des ConductingEquipments
|
|
5393
5550
|
* */
|
|
5394
5551
|
setConductingEquipmentOperationalLimit(cimModel, name, terminal, equipmentKey, limit, limitType, igrenz) {
|
|
5395
|
-
if ((limit !== undefined && limit > 0)
|
|
5396
|
-
return;
|
|
5552
|
+
if (!(limit !== undefined && limit > 0) || !(igrenz !== undefined && igrenz > 0))
|
|
5553
|
+
return; //if 'limit' and 'igrenz' is not given leave
|
|
5397
5554
|
/** OperationalLimitSet erstellen */
|
|
5398
5555
|
const operationalLimitSetKey = terminal.getUUID() + equipmentKey;
|
|
5399
5556
|
const operationalLimitSetUUID = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.OperationalLimitSet, this.configUuid, operationalLimitSetKey);
|
|
@@ -5478,6 +5635,9 @@ class ConverterIntegral7 {
|
|
|
5478
5635
|
terminal.name = (0, util_create_1.createNotation)([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
|
|
5479
5636
|
}
|
|
5480
5637
|
}
|
|
5638
|
+
if (terminal !== undefined && terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
5639
|
+
const stop = true;
|
|
5640
|
+
}
|
|
5481
5641
|
return terminal;
|
|
5482
5642
|
}
|
|
5483
5643
|
createBoundaryConnection(frame, conductingEquipment, i7ObjectID, phase) {
|
|
@@ -5995,7 +6155,7 @@ class ConverterIntegral7 {
|
|
|
5995
6155
|
// Topologie
|
|
5996
6156
|
powerTransformerEnd.terminal = terminal;
|
|
5997
6157
|
this.setConductingEquipmentOperationalLimit(cimModel, `W${powerTransformerEnd.endNumber}${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.name}`, terminal, powerTransformer.getUUID(), sdauer, cim_class_names_1.ClassNames.ApparentPowerLimit);
|
|
5998
|
-
if (powerTransformer.getUUID() === '
|
|
6158
|
+
if (powerTransformer.getUUID() === '3c3928be-e691-453d-8216-df30bd11845e') {
|
|
5999
6159
|
const stop = true;
|
|
6000
6160
|
}
|
|
6001
6161
|
let isTrafo2w = i7Data.trafowicklung3w3 === undefined ? true : false;
|
|
@@ -6051,36 +6211,34 @@ class ConverterIntegral7 {
|
|
|
6051
6211
|
}
|
|
6052
6212
|
convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
|
|
6053
6213
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
6054
|
-
|
|
6055
|
-
|
|
6214
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'c0ba4bd1102c4f4fa4fc66865a60f462') { //Zeile53 - Typ Meeden'
|
|
6215
|
+
let stop = true;
|
|
6216
|
+
}
|
|
6217
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '2e8057ed695147f9903023cb5e9d4a0c') { //Zeile55 - SR und LR'
|
|
6218
|
+
let stop = true;
|
|
6056
6219
|
}
|
|
6057
|
-
if(getUUID(i7Data.guid) === '
|
|
6058
|
-
let stop = true; DONE
|
|
6059
|
-
}*/
|
|
6060
|
-
/*if(getUUID(i7Data.guid)=== 'CFDAA56A-A0DA-4C5B-92CC-21138B6D6D07'){ //Standard LR
|
|
6061
|
-
let stop = true;
|
|
6062
|
-
}*/
|
|
6063
|
-
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') { //Zeile53 - Typ Meeden'
|
|
6220
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid).toLowerCase() === 'd7a25b80-b439-48a0-b67e-108903063237') { //Zeile81 - SR statt LR'
|
|
6064
6221
|
let stop = true;
|
|
6065
6222
|
}
|
|
6066
|
-
|
|
6067
|
-
let stop = true;
|
|
6068
|
-
}*/
|
|
6069
|
-
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '515508dc-5982-4686-ad26-08d39db91421') { //Zeile81 - SR statt LR'
|
|
6223
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'b81485dd-5115-4241-b31a-c87a3eec9803') {
|
|
6070
6224
|
let stop = true;
|
|
6071
6225
|
}
|
|
6072
|
-
/*if(getUUID(i7Data.guid) === '5ec82d14-ee64-43b6-86ff-c7615d96f7ad'){ //Zeile58
|
|
6073
|
-
let stop = true;
|
|
6074
|
-
}*/
|
|
6075
6226
|
let ratioPhaseTapChangerPresent = false;
|
|
6076
6227
|
//Check if tap changer exists. (power transformer winding)
|
|
6077
6228
|
let tapChangerNumberI7 = []; //Number of tap changer
|
|
6078
6229
|
let tapChangerNumber = [];
|
|
6079
|
-
//
|
|
6230
|
+
//collect information about tap changers (without type)
|
|
6080
6231
|
for (let tapChangerPos = 1; tapChangerPos <= 2; tapChangerPos++) {
|
|
6081
6232
|
if ((0, parser_utils_1.isNumericI7)(i7Data[`gestufte_seite_s${tapChangerPos}`])) {
|
|
6082
|
-
|
|
6083
|
-
|
|
6233
|
+
if (i7Data[`gestufte_seite_s${tapChangerPos}`] !== 0) {
|
|
6234
|
+
tapChangerNumberI7.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
6235
|
+
tapChangerNumber.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
6236
|
+
}
|
|
6237
|
+
else if (i7Data[`gestufte_seite_s${tapChangerPos}`] === 0) {
|
|
6238
|
+
const controlledSide = getHVSideNumber(transformerEnds);
|
|
6239
|
+
tapChangerNumberI7.push(controlledSide);
|
|
6240
|
+
tapChangerNumber.push(controlledSide);
|
|
6241
|
+
}
|
|
6084
6242
|
}
|
|
6085
6243
|
}
|
|
6086
6244
|
//collect information about tap changers (type)
|
|
@@ -6095,15 +6253,15 @@ class ConverterIntegral7 {
|
|
|
6095
6253
|
//If there is a phase tap changer and a ratio tap changer reorder the tap changers to process ratio tap changer first.
|
|
6096
6254
|
let index = undefined;
|
|
6097
6255
|
if (tapChangerNumberI7.length > 1) {
|
|
6098
|
-
for (let
|
|
6256
|
+
for (let i = 0; i < tapChangerNumberI7.length; i++) {
|
|
6099
6257
|
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
6100
|
-
const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber ===
|
|
6258
|
+
const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber === tapChangerNumberI7[i]);
|
|
6101
6259
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
6102
|
-
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${
|
|
6103
|
-
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${
|
|
6260
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6261
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6104
6262
|
: (_e = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _e === void 0 ? void 0 : _e.value;
|
|
6105
|
-
if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) &&
|
|
6106
|
-
index =
|
|
6263
|
+
if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) && i > 0) {
|
|
6264
|
+
index = i; //This only works for two tapchanger definitions per power transformer
|
|
6107
6265
|
ratioPhaseTapChangerPresent = true;
|
|
6108
6266
|
}
|
|
6109
6267
|
}
|
|
@@ -6113,15 +6271,15 @@ class ConverterIntegral7 {
|
|
|
6113
6271
|
tapChangerNumber[1] = tapChangerNumberI7[0];
|
|
6114
6272
|
}
|
|
6115
6273
|
/** I7 Modell max. 2 Stufenschalter */
|
|
6116
|
-
for (let
|
|
6274
|
+
for (let i = 0; i < tapChangerNumber.length; i++) {
|
|
6117
6275
|
/**
|
|
6118
6276
|
* 0 Oberspannungsseite
|
|
6119
6277
|
* 1 Seite 1
|
|
6120
6278
|
* 2 Seite 2
|
|
6121
6279
|
* - Stufenschalter nicht vorhanden
|
|
6122
6280
|
*/
|
|
6123
|
-
let entryI7 =
|
|
6124
|
-
let gestufteSeite = tapChangerNumberI7[
|
|
6281
|
+
let entryI7 = i + 1;
|
|
6282
|
+
let gestufteSeite = tapChangerNumberI7[i];
|
|
6125
6283
|
const transformerEndInfo = (_f = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _f === void 0 ? void 0 : _f.find(elem => elem.endNumber === entryI7);
|
|
6126
6284
|
const transformerEnd = transformerEnds.find(elem => elem.endNumber === entryI7);
|
|
6127
6285
|
if ((0, parser_utils_1.isNumericI7)(gestufteSeite)) {
|
|
@@ -6141,8 +6299,8 @@ class ConverterIntegral7 {
|
|
|
6141
6299
|
continue;
|
|
6142
6300
|
}
|
|
6143
6301
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
6144
|
-
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${
|
|
6145
|
-
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${
|
|
6302
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6303
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6146
6304
|
: (_h = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _h === void 0 ? void 0 : _h.value;
|
|
6147
6305
|
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
6148
6306
|
//const neutralU = transformerEnd.ratedU;
|
|
@@ -6429,65 +6587,99 @@ class ConverterIntegral7 {
|
|
|
6429
6587
|
* @param sternpunktKnotenMap Map mit den Sterpunktknoten aus der I7 Datenbank
|
|
6430
6588
|
* */
|
|
6431
6589
|
convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, i7Modell, stpKnoten, defaultValuesConfig) {
|
|
6432
|
-
|
|
6433
|
-
|
|
6590
|
+
/**
|
|
6591
|
+
* Five cases for transformer grounding model has to be checked:
|
|
6592
|
+
* Case 1: no grounding ... no 'Sternpunktknoten' is present ... ''
|
|
6593
|
+
* Case 2: no grounding ... 'Sternpunktknoten', 'SternpunktSchaltelement', 'Sternpunktschiene' is present but no 'KDrossel' ... 'isoliert'
|
|
6594
|
+
* Case 3: grounding is present ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 1 ... 'starr' or 'direkt'
|
|
6595
|
+
* Case 4: grounding is present ... only 'Sternpunktknoten' and 'Kdrossel' is present ... 'über Impedanz'
|
|
6596
|
+
* Case 5: grounding is present ... 'Sternpunktknoten', 'Sternpunktschaltelement', 'Sternpunktschiene' and 'Kdrossel' is present ... 'über Impedanz'
|
|
6597
|
+
* Case 6: no grounding ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 0 ... ''
|
|
6598
|
+
*/
|
|
6434
6599
|
const cimModel = frame.cimModel;
|
|
6600
|
+
let groundDisconnectorUUID = undefined;
|
|
6601
|
+
let connectivityNodeN = undefined;
|
|
6602
|
+
let groundDisconnector = undefined;
|
|
6603
|
+
let voltageLevel = undefined;
|
|
6435
6604
|
if (stpKnoten) {
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6439
|
-
|
|
6440
|
-
|
|
6441
|
-
|
|
6442
|
-
|
|
6443
|
-
|
|
6444
|
-
|
|
6445
|
-
|
|
6605
|
+
groundDisconnectorUUID = i7Modell.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.get(stpKnoten.schaltelement1pelem);
|
|
6606
|
+
connectivityNodeN = i7Modell.sternPunktImpModel.stpSchieneIdConnectivityNode.get(i7Modell.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.get(groundDisconnectorUUID));
|
|
6607
|
+
groundDisconnector = i7Modell.sternPunktImpModel.groundDisconnectors.get(groundDisconnectorUUID);
|
|
6608
|
+
if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size === 1) {
|
|
6609
|
+
const cn = powerTransformerEnd.getTerminal().getConnectivityNode();
|
|
6610
|
+
this.createConnection(cimModel, groundDisconnector, cn, PhaseCode_1.PhaseCode.ABCN, true);
|
|
6611
|
+
}
|
|
6612
|
+
else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size < 1) {
|
|
6613
|
+
this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is not successfully connected.`);
|
|
6614
|
+
}
|
|
6615
|
+
else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size > 2) {
|
|
6616
|
+
this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is referenced by more than two Terminal objects.`);
|
|
6617
|
+
}
|
|
6618
|
+
/** EquipmentContainer - Voltage Level*/
|
|
6619
|
+
voltageLevel = (this.determineEquipmentContainer('VoltageLevel', cimModel, powerTransformerEnd.getTerminal().connectivityNode.connectivityNodeContainer));
|
|
6620
|
+
}
|
|
6621
|
+
if (stpKnoten && groundDisconnector === undefined) { //Case 3 and Case 4
|
|
6622
|
+
const earthFaultCompensator = i7Modell.sternPunktImpModel.stpKnotenStpImp.get(stpKnoten.id);
|
|
6623
|
+
if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 4 ... 'Kdrossel' is modelled as a GroundingImpedanz
|
|
6624
|
+
//cimModel.addGroundingImpedance(earthFaultCompensator as GroundingImpedance);//set grounded to 'true' if PetersenCoil is present
|
|
6625
|
+
const groundingImpedance = earthFaultCompensator;
|
|
6626
|
+
powerTransformerEnd.xground = groundingImpedance.x;
|
|
6627
|
+
powerTransformerEnd.rground = groundingImpedance.r;
|
|
6628
|
+
powerTransformerEnd.grounded = true;
|
|
6629
|
+
}
|
|
6630
|
+
else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 4 ... 'Kdrossel' is modelled as a PetersenCoil
|
|
6631
|
+
//cimModel.addPetersenCoil(earthFaultCompensator as PetersenCoil); //set grounded to 'true' if GroundingImpedance is present
|
|
6632
|
+
const petersenCoil = earthFaultCompensator;
|
|
6633
|
+
powerTransformerEnd.xground = (0, parser_utils_1.isNumericI7)(petersenCoil.xGroundNominal) ? petersenCoil.xGroundNominal : (((0, parser_utils_1.isNumericI7)(petersenCoil.xGroundMax) && (0, parser_utils_1.isNumericI7)(petersenCoil.xGroundMin)) ? (petersenCoil.xGroundMax + petersenCoil.xGroundMin) / 2 : defaultValuesConfig.TransformerEnd.xground);
|
|
6634
|
+
powerTransformerEnd.rground = petersenCoil.r;
|
|
6635
|
+
powerTransformerEnd.grounded = true;
|
|
6636
|
+
}
|
|
6637
|
+
else if (stpKnoten.geerdet === 1) { //Case 3
|
|
6638
|
+
powerTransformerEnd.rground = defaultValuesConfig.TransformerEnd.rground; //it is assumed that rground and xground is zero in case of solidly grounding
|
|
6639
|
+
powerTransformerEnd.xground = defaultValuesConfig.TransformerEnd.xground; //it is assumed that rground and xground is zero in case of solidly grounding
|
|
6640
|
+
powerTransformerEnd.grounded = true;
|
|
6641
|
+
}
|
|
6642
|
+
else { //Case 6
|
|
6643
|
+
powerTransformerEnd.grounded = false;
|
|
6644
|
+
}
|
|
6645
|
+
}
|
|
6646
|
+
else if (connectivityNodeN !== undefined && groundDisconnector !== undefined) {
|
|
6647
|
+
const earthFaultCompensator = i7Modell.sternPunktImpModel.groundDisconnectorUUIDstpImp.get(groundDisconnectorUUID);
|
|
6648
|
+
if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 5 ... 'Kdrossel' is modelled as a GroundingImpedanz
|
|
6649
|
+
cimModel.addGroundingImpedance(earthFaultCompensator);
|
|
6650
|
+
cimModel.addGroundDisconnector(groundDisconnector);
|
|
6651
|
+
cimModel.addConnectivityNode(connectivityNodeN);
|
|
6652
|
+
powerTransformerEnd.grounded = true; //set grounded to 'true' if GroundingImpedance is present
|
|
6653
|
+
}
|
|
6654
|
+
else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 5 ... 'Kdrossel' is modelled as a PetersenCoil
|
|
6655
|
+
cimModel.addPetersenCoil(earthFaultCompensator);
|
|
6656
|
+
cimModel.addGroundDisconnector(groundDisconnector);
|
|
6657
|
+
cimModel.addConnectivityNode(connectivityNodeN);
|
|
6658
|
+
powerTransformerEnd.grounded = true; //set grounded to 'true' if PetersenCoil is present
|
|
6659
|
+
}
|
|
6660
|
+
else { //Case 2
|
|
6661
|
+
powerTransformerEnd.grounded = false; //set grounded to 'false' if no GroundingImpedance or PetersenCoil is present ... 'isolierte Sternpunktschiene'
|
|
6662
|
+
}
|
|
6663
|
+
/** BaseVoltage */
|
|
6664
|
+
if (voltageLevel !== undefined) {
|
|
6665
|
+
groundDisconnector.baseVoltage = voltageLevel.baseVoltage ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6666
|
+
groundDisconnector.equipmentContainer = voltageLevel;
|
|
6667
|
+
if (earthFaultCompensator !== undefined) {
|
|
6668
|
+
earthFaultCompensator.equipmentContainer = voltageLevel;
|
|
6669
|
+
}
|
|
6670
|
+
connectivityNodeN.connectivityNodeContainer = voltageLevel;
|
|
6671
|
+
connectivityNodeN.key = voltageLevel.key + connectivityNodeN.key;
|
|
6446
6672
|
}
|
|
6447
6673
|
else {
|
|
6448
|
-
|
|
6449
|
-
* Nur Verbindung zur Junction herstellen */
|
|
6450
|
-
let terminal;
|
|
6451
|
-
if (!((_a = powerTransformerEnd.terminal) === null || _a === void 0 ? void 0 : _a.connectivityNode) && this.UUID2Integral7ID.has((_b = powerTransformerEnd.terminal) === null || _b === void 0 ? void 0 : _b.connectivityNodeUUID)) {
|
|
6452
|
-
const i7ObjectID = (_d = this.UUID2Integral7ID.get((_c = powerTransformerEnd.terminal) === null || _c === void 0 ? void 0 : _c.connectivityNodeUUID)) === null || _d === void 0 ? void 0 : _d.find(elem => elem);
|
|
6453
|
-
terminal = this.createBoundaryConnection(frame, junction, i7ObjectID, PhaseCode_1.PhaseCode.ABC);
|
|
6454
|
-
}
|
|
6455
|
-
else {
|
|
6456
|
-
terminal = this.createConnection(cimModel, junction, (_e = powerTransformerEnd.terminal) === null || _e === void 0 ? void 0 : _e.connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
6457
|
-
}
|
|
6458
|
-
if (terminal) {
|
|
6459
|
-
terminal.name = 't_stp_trafo';
|
|
6460
|
-
if (junction)
|
|
6461
|
-
junction.name = (junction === null || junction === void 0 ? void 0 : junction.name) + '/Trafo';
|
|
6462
|
-
const pSpuleGroundImpedance = i7Modell.sternPunktImpModel.junctionUUIDstpImp.get(junctionUUID);
|
|
6463
|
-
/** EquipmentContainer - Voltage Level*/
|
|
6464
|
-
const voltageLevel = this.getVoltageLevelByVoltage((_f = powerTransformer.equipmentContainer) === null || _f === void 0 ? void 0 : _f.voltageLevels, powerTransformerEnd.ratedU);
|
|
6465
|
-
if (!voltageLevel) {
|
|
6466
|
-
this.logger.debug(`Trafo ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat kein EquipmentContainer`);
|
|
6467
|
-
}
|
|
6468
|
-
/** BaseVoltage */
|
|
6469
|
-
if (junction && voltageLevel) {
|
|
6470
|
-
junction.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6471
|
-
junction.equipmentContainer = voltageLevel;
|
|
6472
|
-
cimModel.addJunction(junction);
|
|
6473
|
-
}
|
|
6474
|
-
else {
|
|
6475
|
-
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine Junction ${junctionUUID} oder VoltageLevel`);
|
|
6476
|
-
}
|
|
6477
|
-
if (pSpuleGroundImpedance) {
|
|
6478
|
-
pSpuleGroundImpedance.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6479
|
-
pSpuleGroundImpedance.equipmentContainer = voltageLevel;
|
|
6480
|
-
cimModel.addGroundingImpedance(pSpuleGroundImpedance);
|
|
6481
|
-
}
|
|
6482
|
-
else {
|
|
6483
|
-
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine pSpuleGroundImpedance.`);
|
|
6484
|
-
}
|
|
6485
|
-
}
|
|
6486
|
-
else {
|
|
6487
|
-
this.logger.error(`Die Erdnung TrafoObjekts ID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} konnte nicht abgebildet werden, da der Anschluss nicht bestimmt werden konnte.`);
|
|
6488
|
-
}
|
|
6674
|
+
this.logger.debug(`PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} hat kein VoltageLevel`);
|
|
6489
6675
|
}
|
|
6490
6676
|
}
|
|
6677
|
+
else { //Case 1
|
|
6678
|
+
powerTransformerEnd.grounded = false; //set grounded to 'false' if there is no 'Sternpunktknoten'
|
|
6679
|
+
}
|
|
6680
|
+
if (powerTransformerEnd.grounded) {
|
|
6681
|
+
powerTransformerEnd.terminal.phases = PhaseCode_1.PhaseCode.ABCN;
|
|
6682
|
+
}
|
|
6491
6683
|
}
|
|
6492
6684
|
/** Equipment grounding
|
|
6493
6685
|
* @param shnt ShuntCompensator object
|
|
@@ -6855,4 +7047,48 @@ function logExecutionTime(logger, startTime, text) {
|
|
|
6855
7047
|
logger.debug(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
6856
7048
|
console.log(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
6857
7049
|
}
|
|
7050
|
+
function getHVSideNumber(transformerEnds) {
|
|
7051
|
+
let retVal = undefined;
|
|
7052
|
+
let urHv = 0;
|
|
7053
|
+
for (let i = 0; i < transformerEnds.length; i++) {
|
|
7054
|
+
if (urHv < transformerEnds[i].ratedU) {
|
|
7055
|
+
retVal = transformerEnds[i].endNumber;
|
|
7056
|
+
urHv = transformerEnds[i].ratedU;
|
|
7057
|
+
}
|
|
7058
|
+
}
|
|
7059
|
+
return retVal;
|
|
7060
|
+
}
|
|
7061
|
+
function createLineName(i7Data, uuid, lineNames) {
|
|
7062
|
+
let retVal = (0, util_create_1.createNotation)([i7Data.bezeichner], 32, false);
|
|
7063
|
+
if (lineNames[retVal] === true) { //try to find another name with i7Data.stkabname as suffix
|
|
7064
|
+
if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length > 0) {
|
|
7065
|
+
retVal = i7Data.bezeichner.substring(0, i7Data.bezeichner.length - (i7Data.bezeichner.length + (i7Data.stkabname.length + 1) - 32)) + '_' + i7Data.stkabname;
|
|
7066
|
+
}
|
|
7067
|
+
else if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length <= 0) {
|
|
7068
|
+
retVal = i7Data.bezeichner.substring(0, i7Data.stkabname.length - (i7Data.bezeichner.length - 32));
|
|
7069
|
+
}
|
|
7070
|
+
else if (i7Data.bezeichner.length <= 0 && i7Data.stkabname.length > 0) {
|
|
7071
|
+
retVal = i7Data.stkabname.substring(0, i7Data.stkabname.length - (i7Data.stkabname.length - 32));
|
|
7072
|
+
}
|
|
7073
|
+
}
|
|
7074
|
+
if (lineNames[retVal] === true) { //use uuid to create a unique name
|
|
7075
|
+
if (retVal.length + 9 <= 32) {
|
|
7076
|
+
retVal = retVal + '_' + normalizeUUID(uuid).substring(0, 8);
|
|
7077
|
+
}
|
|
7078
|
+
else {
|
|
7079
|
+
retVal = retVal.substring(0, retVal.length - (retVal.length + 9 - 32)) + '_' + normalizeUUID(uuid).substring(0, 8);
|
|
7080
|
+
}
|
|
7081
|
+
}
|
|
7082
|
+
return retVal;
|
|
7083
|
+
}
|
|
7084
|
+
function normalizeUUID(uuid) {
|
|
7085
|
+
let retVal = '';
|
|
7086
|
+
if (uuid != undefined && uuid.length > 0) {
|
|
7087
|
+
retVal = uuid.replaceAll('_', '');
|
|
7088
|
+
retVal = retVal.replaceAll('-', '');
|
|
7089
|
+
retVal = retVal.toLowerCase();
|
|
7090
|
+
retVal = retVal.trim();
|
|
7091
|
+
}
|
|
7092
|
+
return retVal;
|
|
7093
|
+
}
|
|
6858
7094
|
//# sourceMappingURL=converter.integral7.js.map
|