@enervance/insight-cim-model 0.0.266 → 0.0.269-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/rdf-xml.d.ts +2 -0
- package/dist/constants/rdf-xml.js +2 -0
- package/dist/constants/rdf-xml.js.map +1 -1
- 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 +9 -3
- package/dist/converter/integral7/converter.integral7.js +590 -334
- package/dist/converter/integral7/converter.integral7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +3 -0
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js +7 -9
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/executor.d.ts +31 -3
- package/dist/converter/integral7/dl-convert/executor.js +90 -24
- 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/data-structures-i7.js.map +1 -1
- 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 +17 -10
- package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
- package/dist/converter/integral7/model/integral/Netzbereich.d.ts +10 -0
- package/dist/converter/integral7/model/integral/Netzbereich.js +20 -0
- package/dist/converter/integral7/model/integral/Netzbereich.js.map +1 -0
- package/dist/converter/integral7/model/integral/NetzbereichRand.d.ts +7 -0
- package/dist/converter/integral7/model/integral/NetzbereichRand.js +12 -0
- package/dist/converter/integral7/model/integral/NetzbereichRand.js.map +1 -0
- package/dist/converter/integral7/model/interfaces.d.ts +45 -0
- package/dist/converter/integral7/model/interfaces.js.map +1 -1
- package/dist/converter/integral7/sql/integral.sql.d.ts +11 -0
- package/dist/converter/integral7/sql/integral.sql.js +51 -3
- package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
- package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.d.ts +0 -0
- package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.js +2 -0
- package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.js.map +1 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.d.ts +8 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.js +13 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.js.map +1 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.d.ts +9 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.js +24 -0
- package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.js.map +1 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.d.ts +6 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.js +26 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.js.map +1 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.d.ts +9 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.js +3 -0
- package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.js.map +1 -0
- package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.d.ts +20 -0
- package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.js +146 -0
- package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.js.map +1 -0
- package/dist/converter/integral7/utils-cgmes-export.d.ts +1 -0
- package/dist/converter/integral7/utils-cgmes-export.js +9 -1
- 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/edges/GraphEdge.js.map +1 -1
- package/dist/data-structures/graph/graph-util.d.ts +1 -1
- package/dist/data-structures/graph/graph-util.js +1 -1
- package/dist/data-structures/graph/graph-util.js.map +1 -1
- package/dist/etl/etl-neplan/etl-neplan-contingency-analysis.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 +8 -0
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js +170 -22
- package/dist/etl/etl-neplan/neplan-contingency-analysis.js.map +1 -1
- package/dist/interfaces/model/core/ITerminal.d.ts +1 -1
- package/dist/model/core/ConductingEquipment.d.ts +1 -1
- package/dist/model/core/ConductingEquipment.js +2 -2
- package/dist/model/core/ConductingEquipment.js.map +1 -1
- package/dist/model/core/ConnectivityNode.js +2 -2
- package/dist/model/core/ConnectivityNode.js.map +1 -1
- package/dist/model/core/IdentifiedObject.js +8 -0
- package/dist/model/core/IdentifiedObject.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/diagram/Diagram.js +2 -2
- package/dist/model/diagram/Diagram.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.d.ts +1 -0
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js +2 -1
- package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js.map +1 -1
- 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/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +26 -5
- package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +12 -2
- package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js.map +1 -1
- package/dist/model/operationallimits/ApparentPowerLimit.js +2 -2
- package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -1
- package/dist/model/topology/TopologicalNode.d.ts +1 -0
- package/dist/model/topology/TopologicalNode.js.map +1 -1
- package/dist/model/wires/GroundDisconnector.d.ts +4 -1
- package/dist/model/wires/GroundDisconnector.js +15 -1
- package/dist/model/wires/GroundDisconnector.js.map +1 -1
- package/dist/model/wires/PowerTransformer.js +7 -4
- 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 +5 -1
- package/dist/model-container/model/ModelContainer.js +14 -0
- package/dist/model-container/model/ModelContainer.js.map +1 -1
- package/dist/util/sparql/sparql-utils.js +1 -1
- package/dist/util/sparql/sparql-utils.js.map +1 -1
- package/dist/util/util-create.js +9 -1
- package/dist/util/util-create.js.map +1 -1
- package/dist/utils2/import.utils.js +5 -1
- package/dist/utils2/import.utils.js.map +1 -1
- package/dist/utils2/parser.utils.d.ts +1 -0
- package/dist/utils2/parser.utils.js +5 -2
- package/dist/utils2/parser.utils.js.map +1 -1
- package/dist/utils2/sparql.utils.js +1 -1
- package/dist/utils2/sparql.utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _ConverterIntegral7_configurableDLConvertOptions;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.getGeoCoordinates = exports.ConverterIntegral7 = void 0;
|
|
4
5
|
const tslib_1 = require("tslib");
|
|
@@ -27,7 +28,6 @@ const CsConverter_1 = require("../../model/dc/CsConverter.js");
|
|
|
27
28
|
const CsOperatingModeKind_1 = require("../../model/dc/CsOperatingModeKind.js");
|
|
28
29
|
const DCConverterOperatingModeKind_1 = require("../../model/dc/DCConverterOperatingModeKind.js");
|
|
29
30
|
const DCLine_1 = require("../../model/dc/DCLine.js");
|
|
30
|
-
const DCLineSegment_1 = require("../../model/dc/DCLineSegment.js");
|
|
31
31
|
const DCNode_1 = require("../../model/dc/DCNode.js");
|
|
32
32
|
const DCTerminal_1 = require("../../model/dc/DCTerminal.js");
|
|
33
33
|
const VsConverter_1 = require("../../model/dc/VsConverter.js");
|
|
@@ -142,10 +142,21 @@ const INTEGRALPowerTransformer2WInfo_1 = require("../../model/extensions/integra
|
|
|
142
142
|
const impedance_utils_1 = require("./impedance.utils.js");
|
|
143
143
|
const util_cim_model_1 = require("./util-cim.model.js");
|
|
144
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");
|
|
145
147
|
const i7_graph_utils_1 = require("./model/i7-graph-utils.js");
|
|
146
148
|
const TopologicalNode_1 = require("../../model/topology/TopologicalNode.js");
|
|
147
149
|
const geodata_util_1 = require("../../util/geodata.util.js");
|
|
150
|
+
const DCLineSegment_1 = require("../../model/extensions/integral/dc/DCLineSegment.js");
|
|
151
|
+
const tp_bd_converter_1 = require("./tp-bd-profile/tp-bd-converter.js");
|
|
148
152
|
class ConverterIntegral7 {
|
|
153
|
+
set configurableDLConvertOptions(arg) {
|
|
154
|
+
tslib_1.__classPrivateFieldSet(this, _ConverterIntegral7_configurableDLConvertOptions, arg, "f");
|
|
155
|
+
}
|
|
156
|
+
get configurableDLConvertOptions() {
|
|
157
|
+
return tslib_1.__classPrivateFieldGet(this, _ConverterIntegral7_configurableDLConvertOptions, "f");
|
|
158
|
+
}
|
|
159
|
+
/* ---------- ---------- ---------- */
|
|
149
160
|
constructor() {
|
|
150
161
|
/** Exportnetze gemäß Konfiguration */
|
|
151
162
|
this.exportFrames = new Map();
|
|
@@ -180,6 +191,7 @@ class ConverterIntegral7 {
|
|
|
180
191
|
this.ersatzZweigAnschlussKnotenIDs = new Set();
|
|
181
192
|
/** List of Blocktransformatoren */
|
|
182
193
|
this.blocktransformatoren = [];
|
|
194
|
+
_ConverterIntegral7_configurableDLConvertOptions.set(this, {});
|
|
183
195
|
}
|
|
184
196
|
/**
|
|
185
197
|
* Konvertiert das Netz aus der MySQL Datenbank
|
|
@@ -208,7 +220,12 @@ class ConverterIntegral7 {
|
|
|
208
220
|
yield this.queryLDroselAnschlussIDs();
|
|
209
221
|
yield this.queryErsatzLaengsAnschlussIDs();
|
|
210
222
|
yield this.queryLkondensatorAnschlussIDs();
|
|
223
|
+
this.tpBdConverter = new tp_bd_converter_1.TpBdConverter(this.mysqlController, this.logger, configUuid);
|
|
224
|
+
this.tpBdConverter.initDatabaseMetaData(this.availableTableNames);
|
|
225
|
+
this.tpBdConverter.setupLookupMaps(this.integralID2UUID);
|
|
226
|
+
this.tpBdConverter.setExportTempDirPath(tempDirPath);
|
|
211
227
|
/** BD Profile */
|
|
228
|
+
this.logger.debug('Convert BD Profiles');
|
|
212
229
|
console.log('Convert BD Profiles');
|
|
213
230
|
let boundaryEqUUId = undefined;
|
|
214
231
|
for (const entry of this.exportFramesBoundary.entries()) {
|
|
@@ -220,6 +237,7 @@ class ConverterIntegral7 {
|
|
|
220
237
|
continue;
|
|
221
238
|
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
|
|
222
239
|
}
|
|
240
|
+
this.logger.debug('Convert MAS Profiles');
|
|
223
241
|
console.log('Convert MAS Profiles');
|
|
224
242
|
for (const entry of this.exportFrames.entries()) {
|
|
225
243
|
const geoRegionUUID = entry[0];
|
|
@@ -228,6 +246,7 @@ class ConverterIntegral7 {
|
|
|
228
246
|
if (!geoRegion)
|
|
229
247
|
continue;
|
|
230
248
|
// frame.addDependentModel(RDF_XML.PROFILE_EQ_BD, this.exportFramesBoundary.entries().next()?.value[1].getModelUUID(RDF_XML.PROFILE_EQ_BD));
|
|
249
|
+
this.logger.debug(`Convert MAS profile: ${frame.mas}`);
|
|
231
250
|
console.log(`Convert MAS profile: ${frame.mas}`);
|
|
232
251
|
yield this.convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig);
|
|
233
252
|
if (boundaryEqUUId) {
|
|
@@ -237,6 +256,7 @@ class ConverterIntegral7 {
|
|
|
237
256
|
frame.purgeData();
|
|
238
257
|
const startTime = perf_hooks.performance.now();
|
|
239
258
|
frame.openXMLModel();
|
|
259
|
+
this.logger.debug(`Serialize MAS profile: ${frame.mas}`);
|
|
240
260
|
console.log(`Serialize MAS profile: ${frame.mas}`);
|
|
241
261
|
frame.serializeModel(defaultValuesConfig);
|
|
242
262
|
yield frame.closeXMLModel();
|
|
@@ -244,7 +264,7 @@ class ConverterIntegral7 {
|
|
|
244
264
|
frame.cimModel.purgeData();
|
|
245
265
|
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
246
266
|
}
|
|
247
|
-
|
|
267
|
+
this.logger.debug('Serialize BD Profiles');
|
|
248
268
|
for (const entry of this.exportFramesBoundary.entries()) {
|
|
249
269
|
const geoRegionUUID = entry[0];
|
|
250
270
|
const frame = entry[1];
|
|
@@ -263,7 +283,10 @@ class ConverterIntegral7 {
|
|
|
263
283
|
let endTime = perf_hooks.performance.now();
|
|
264
284
|
console.log(`\nSerializeModel ${geoRegion.name} ${(endTime - startTime) / 1000} seconds\n`);
|
|
265
285
|
}
|
|
266
|
-
|
|
286
|
+
this.logger.debug('Serialize TP-BD Profiles');
|
|
287
|
+
console.log('Serialize TP-BD Profiles');
|
|
288
|
+
yield this.tpBdConverter.serialize(defaultValuesConfig);
|
|
289
|
+
this.logger.debug('Serialize Default Profile');
|
|
267
290
|
this.exportFrameDefault.openXMLModel();
|
|
268
291
|
this.exportFrameDefault.serializeModel(defaultValuesConfig);
|
|
269
292
|
yield this.exportFrameDefault.closeXMLModel();
|
|
@@ -290,6 +313,7 @@ class ConverterIntegral7 {
|
|
|
290
313
|
});
|
|
291
314
|
}
|
|
292
315
|
convertFrame(frame, geoRegion, objectMappingConfig, energyTypesConfig, defaultValuesConfig, energySourceTypeMappingConfig) {
|
|
316
|
+
var _a;
|
|
293
317
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
294
318
|
const integral7Modell = frame.getI7Model();
|
|
295
319
|
const cimModel = frame.cimModel;
|
|
@@ -488,9 +512,9 @@ class ConverterIntegral7 {
|
|
|
488
512
|
startTime = perf_hooks.performance.now();
|
|
489
513
|
const stpSchieneID = yield this.convertSternpunktSchienen(cimModel, integral7Modell, standortIDs);
|
|
490
514
|
/** KDrossel -> GroundingImpedance/PetersenCoil */
|
|
491
|
-
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID);
|
|
515
|
+
yield this.convertKdrossel(cimModel, integral7Modell, stpSchieneID, defaultValuesConfig);
|
|
492
516
|
/** Schaltzustand der Schaltelemente */
|
|
493
|
-
yield this.convertStpSchaltelemente(integral7Modell, stpSchieneID);
|
|
517
|
+
yield this.convertStpSchaltelemente(cimModel, integral7Modell, stpSchieneID);
|
|
494
518
|
logExecutionTime(this.logger, startTime, `convertSternpunkte`);
|
|
495
519
|
}
|
|
496
520
|
/** Statcom -> StaticVarCompensator */
|
|
@@ -545,10 +569,10 @@ class ConverterIntegral7 {
|
|
|
545
569
|
if (schaltfeldIDs.length)
|
|
546
570
|
yield this.createTopologicalNodes(cimModel);
|
|
547
571
|
logExecutionTime(this.logger, startTime, `createTopologicalNodes()`);
|
|
548
|
-
|
|
549
|
-
if (
|
|
550
|
-
yield this.
|
|
551
|
-
|
|
572
|
+
/** TP-BD Profile */
|
|
573
|
+
if (!frame.boundary) {
|
|
574
|
+
yield this.tpBdConverter.convert(frame.cimModel);
|
|
575
|
+
}
|
|
552
576
|
/** DL Profile */
|
|
553
577
|
if (!frame.boundary) {
|
|
554
578
|
this.executor = new executor_1.Executor(this.mysqlController, this.configUuid);
|
|
@@ -561,6 +585,7 @@ class ConverterIntegral7 {
|
|
|
561
585
|
const netz_standortIds = standortIDs.map(standortId => {
|
|
562
586
|
return { id: standortId };
|
|
563
587
|
});
|
|
588
|
+
const boundary_standortIds = [];
|
|
564
589
|
const netz_knotensoIds = knotenSoIDs.map(knotenSoId => {
|
|
565
590
|
return { id: knotenSoId };
|
|
566
591
|
});
|
|
@@ -570,6 +595,7 @@ class ConverterIntegral7 {
|
|
|
570
595
|
});
|
|
571
596
|
entry[1].integral7Modell.integralKnotenSo.forEach((_, key) => {
|
|
572
597
|
netz_knotensoIds.push({ id: key });
|
|
598
|
+
boundary_standortIds.push({ id: key });
|
|
573
599
|
});
|
|
574
600
|
}
|
|
575
601
|
const netzLeitungIds = [...integral7Modell.integralLeitungen.keys()];
|
|
@@ -577,9 +603,8 @@ class ConverterIntegral7 {
|
|
|
577
603
|
const netzErsatzlaengszweigIds = [...integral7Modell.integalErsatzLaengszweigIds.values()];
|
|
578
604
|
const netzStreckenlastIds = [...integral7Modell.integralLeitungen.values()].map(leitung => leitung.streckenlastId).filter(id => id !== undefined && id !== null);
|
|
579
605
|
const allLeitungIds = [...new Set([...netzLeitungIds, ...netzHgueLeitungIds, ...netzErsatzlaengszweigIds, ...netzStreckenlastIds]).values()];
|
|
580
|
-
const
|
|
581
|
-
|
|
582
|
-
only: {
|
|
606
|
+
const overall_substation_amount = ((_a = standortIDs === null || standortIDs === void 0 ? void 0 : standortIDs.length) !== null && _a !== void 0 ? _a : 0);
|
|
607
|
+
const convertOptions = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(this.configurableDLConvertOptions))), { overall_substation_amount: overall_substation_amount, visible_only: true, boundary_standortIds, only: {
|
|
583
608
|
netz_standortIds,
|
|
584
609
|
netz_knotensoIds,
|
|
585
610
|
netz_schaltanlagenIds: schaltanlagenIDs.map(schaltanlagenId => {
|
|
@@ -594,8 +619,8 @@ class ConverterIntegral7 {
|
|
|
594
619
|
netz_leitungIds: allLeitungIds.map(leitungId => {
|
|
595
620
|
return { id: leitungId };
|
|
596
621
|
})
|
|
597
|
-
}
|
|
598
|
-
|
|
622
|
+
} });
|
|
623
|
+
frame.cimModel.addDiagramStyle(this.executor.dlConverter.diagramStyles[cim_constants_1.DiagramLayoutTypes.NODE_BREAKER]);
|
|
599
624
|
const resultingObjects = yield this.executor.convert(convertOptions);
|
|
600
625
|
for (const resultingObject of resultingObjects) {
|
|
601
626
|
if (resultingObject instanceof Diagram_1.Diagram) {
|
|
@@ -769,7 +794,7 @@ class ConverterIntegral7 {
|
|
|
769
794
|
.then((result) => {
|
|
770
795
|
for (const i7Data of result) {
|
|
771
796
|
const i7Schluessel = integral_prefix_1.GEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
772
|
-
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)
|
|
797
|
+
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);
|
|
773
798
|
//region.i7key = i7Schluessel;
|
|
774
799
|
this.addIdMapping(i7Data.id, region.mrid, integral_sql_1.Integral7TableNames.REGION);
|
|
775
800
|
regions.push(region);
|
|
@@ -817,11 +842,12 @@ class ConverterIntegral7 {
|
|
|
817
842
|
.then((result) => {
|
|
818
843
|
for (const i7Data of result) {
|
|
819
844
|
const i7Schluesel = integral_prefix_1.SUBGEOREGION_PRAEFIX + (0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
820
|
-
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)
|
|
845
|
+
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)
|
|
846
|
+
]), (0, utils_2.ueberpruefeZeichenkette)(i7Data.kurzname), i7Schluesel);
|
|
821
847
|
const regionUUID = this.integralID2UUID.get(i7Data.georegion);
|
|
822
848
|
let region = regions.find(elem => elem.mrid === regionUUID);
|
|
823
849
|
if (!region) {
|
|
824
|
-
region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name
|
|
850
|
+
region = (0, utils_1.createIfNotExitsGeoregionByName)(this.cimModelDefault, (0, util_create_1.createNotation)([defaultValuesConfig.GeographicalRegion.name]), this.configUuid);
|
|
825
851
|
this.logger.debug(`SubGeographicalRegion UUID ${subregion.mrid} I7-ID ${i7Data.id} Name ${i7Data.bezeichner} hat keine Region.`);
|
|
826
852
|
}
|
|
827
853
|
subregion.region = region;
|
|
@@ -912,7 +938,7 @@ class ConverterIntegral7 {
|
|
|
912
938
|
i7Data.un +
|
|
913
939
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
914
940
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
915
|
-
const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname
|
|
941
|
+
const vl = new VoltageLevel_1.VoltageLevel((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
|
|
916
942
|
vl.key = i7Schluessel;
|
|
917
943
|
const facility = util_cim_model_1.UtilCimModel.createFacilityInstanceForPsr(cimModel, vl, cim_constants_1.CimAssetAliasNames.VoltageLevel, this.configUuid);
|
|
918
944
|
if (i7Data.baujahr) {
|
|
@@ -1001,23 +1027,31 @@ class ConverterIntegral7 {
|
|
|
1001
1027
|
});
|
|
1002
1028
|
}
|
|
1003
1029
|
convertKnotenSo(frame, integral7, standortIDs, defaultValuesConfig) {
|
|
1030
|
+
var _a, _b;
|
|
1004
1031
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1005
1032
|
const cimModel = frame.cimModel;
|
|
1006
1033
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_SO)) {
|
|
1007
1034
|
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));
|
|
1035
|
+
const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
|
|
1008
1036
|
for (const i7Data of result) {
|
|
1037
|
+
const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
|
|
1009
1038
|
const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
|
|
1010
1039
|
const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
|
|
1011
|
-
// const vl = new VoltageLevel(getUUID(i7Data.guid_v, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data), i7Data.un.toString(), '_VL']), i7Data.kurzname);
|
|
1012
1040
|
const vl = new VoltageLevel_1.VoltageLevel(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VoltageLevel, this.configUuid, rdfid), i7Data.bezeichner, i7Data.kurzname);
|
|
1013
|
-
//const rdfid = getUUID(i7Data.guid); /**This is the mrid for TopologicalNode */
|
|
1014
1041
|
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
|
|
1042
|
+
if (connectivityNode.getUUID() === '98d0e9eb-bfb0-4da4-9700-660626da1c56' || connectivityNode.getName() === 'XDU_SL12') {
|
|
1043
|
+
let stop = true;
|
|
1044
|
+
}
|
|
1015
1045
|
connectivityNode.setConnectivityNodeContainer(vl);
|
|
1016
1046
|
vl.addConnectivityNode(connectivityNode);
|
|
1017
1047
|
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
1048
|
+
connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
|
|
1018
1049
|
if (frame.boundary) {
|
|
1019
1050
|
connectivityNode.boundaryPoint = true;
|
|
1020
1051
|
}
|
|
1052
|
+
const key = integral_sql_1.I7Objects.KNOTEN_SO + ((_b = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _b !== void 0 ? _b : '');
|
|
1053
|
+
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']));
|
|
1054
|
+
this.createConnection(cimModel, junction, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
1021
1055
|
const un = (0, utils_2.getU)(i7Data.un);
|
|
1022
1056
|
const baseVoltage = (0, util_create_1.createBaseVoltageIfNotExists)(cimModel, un, this.configUuid, this.exportFramesBoundary);
|
|
1023
1057
|
/** Spannungsband */
|
|
@@ -1033,7 +1067,7 @@ class ConverterIntegral7 {
|
|
|
1033
1067
|
integral_prefix_1.MITTIGER_PUNKT +
|
|
1034
1068
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
1035
1069
|
vl.key = i7Schluessel;
|
|
1036
|
-
connectivityNode.
|
|
1070
|
+
connectivityNode.key = i7Schluessel;
|
|
1037
1071
|
}
|
|
1038
1072
|
else {
|
|
1039
1073
|
this.logger.debug(`KnotenSo ${i7Data.id} ${vl.mrid} besitzt keine Substation.`);
|
|
@@ -1075,21 +1109,27 @@ class ConverterIntegral7 {
|
|
|
1075
1109
|
});
|
|
1076
1110
|
}
|
|
1077
1111
|
convertSammelschienenAbschnitte(cimModel, integral7, schaltanlagenAbschnittIDs) {
|
|
1078
|
-
var _a, _b;
|
|
1112
|
+
var _a, _b, _c;
|
|
1079
1113
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1080
1114
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.SAMMELSCHIENE)) {
|
|
1081
1115
|
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.SAMMELSCHIENE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.SAMMELSCHIENE), schaltanlagenAbschnittIDs));
|
|
1116
|
+
const netzGruppe = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.NETZGRUPPE, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.NETZGRUPPE), []));
|
|
1082
1117
|
for (const i7Data of result) {
|
|
1083
1118
|
const i7Schaltanlagenabschnitt = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
|
|
1084
|
-
|
|
1119
|
+
const netzgruppe = netzGruppe.filter(elem => elem.id === i7Data.netzgruppe);
|
|
1120
|
+
let saab = undefined;
|
|
1121
|
+
if (integral7.integralSchaltanlagenAbschnitte.has(i7Data.saabschnitt)) {
|
|
1122
|
+
saab = integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt);
|
|
1123
|
+
}
|
|
1085
1124
|
const rdfid = (0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid);
|
|
1086
1125
|
const connectivityNode = new AMPRIONConnectivityNode_1.AMPRIONConnectivityNode(rdfid, i7Data.bezeichner, i7Data.kurzname);
|
|
1087
1126
|
const voltageLevel = cimModel.getVoltageLevel(this.integralID2UUID.get(i7Schaltanlagenabschnitt.id));
|
|
1088
1127
|
connectivityNode.nodeNumber = i7Data.id_psse_cape;
|
|
1128
|
+
connectivityNode.netzGruppe = (_a = netzgruppe === null || netzgruppe === void 0 ? void 0 : netzgruppe.at(0)) === null || _a === void 0 ? void 0 : _a.bezeichner;
|
|
1089
1129
|
const keyBusbarSection = [
|
|
1090
1130
|
integral_sql_1.I7Objects.SAMMELSCHIENE,
|
|
1091
|
-
(
|
|
1092
|
-
(
|
|
1131
|
+
(_b = voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getUUID()) !== null && _b !== void 0 ? _b : '',
|
|
1132
|
+
(_c = connectivityNode === null || connectivityNode === void 0 ? void 0 : connectivityNode.getUUID()) !== null && _c !== void 0 ? _c : ''
|
|
1093
1133
|
].join('');
|
|
1094
1134
|
const uuidBusbarSection = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.BusbarSection, this.configUuid, keyBusbarSection);
|
|
1095
1135
|
const busbarSection = new BusbarSection_1.BusbarSection(uuidBusbarSection, i7Data.bezeichner, i7Schaltanlagenabschnitt.kurzname);
|
|
@@ -1105,11 +1145,15 @@ class ConverterIntegral7 {
|
|
|
1105
1145
|
voltageLevel.highVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umax) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umax) : voltageLevel.highVoltageLimit;
|
|
1106
1146
|
// umin
|
|
1107
1147
|
voltageLevel.lowVoltageLimit = (0, parser_utils_1.isNumericI7)(i7Data.umin) ? (0, parser_utils_1.convertToNumberI7)(i7Data.umin) : voltageLevel.lowVoltageLimit;
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1148
|
+
//define INTEGRAL Schluessel for ConnectivityNode
|
|
1149
|
+
if (saab !== undefined) {
|
|
1150
|
+
const i7Schluessel = voltageLevel.key +
|
|
1151
|
+
integral_prefix_1.SCHALTANLAGENABSCHNITT_PRAEFIX +
|
|
1152
|
+
(0, utils_2.ueberpruefeZeichenkette)(saab.bezeichner) +
|
|
1153
|
+
integral_prefix_1.SAMMELSCHIENENABSCHNITT_PRAEFIX +
|
|
1154
|
+
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
1155
|
+
connectivityNode.key = i7Schluessel;
|
|
1156
|
+
}
|
|
1113
1157
|
/** Spannungsband */
|
|
1114
1158
|
integral7.targetVoltages.set(i7Data.id, { usoll: i7Data.usoll, umin: i7Data.umin, umax: i7Data.umax });
|
|
1115
1159
|
// TODO VoltageLimits?
|
|
@@ -1122,7 +1166,7 @@ class ConverterIntegral7 {
|
|
|
1122
1166
|
cimModel.addConnectivityNode(connectivityNode);
|
|
1123
1167
|
cimModel.addBusbarSection(busbarSection);
|
|
1124
1168
|
/** Integral 7 Modell erstellen zur Berechnung der Netzschema */
|
|
1125
|
-
if (
|
|
1169
|
+
if (saab !== undefined) {
|
|
1126
1170
|
integral7.integralSchaltanlagenAbschnitte.get(i7Data.saabschnitt).ssab.push(i7Data);
|
|
1127
1171
|
}
|
|
1128
1172
|
}
|
|
@@ -1139,10 +1183,11 @@ class ConverterIntegral7 {
|
|
|
1139
1183
|
const result = yield this.queryDataInChuncks(integral_sql_1.I7Objects.KNOTEN_SF, schaltfeldIDs);
|
|
1140
1184
|
for (const i7Data of result) {
|
|
1141
1185
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.schaltfeld));
|
|
1142
|
-
const connectivityNode = new ConnectivityNode_1.ConnectivityNode((0, parser_utils_1.getUUID)(i7Data.guid_cn, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, '
|
|
1143
|
-
if (bay) {
|
|
1186
|
+
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));
|
|
1187
|
+
if (bay !== undefined) {
|
|
1144
1188
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1145
1189
|
bay.addConnectivityNode(connectivityNode);
|
|
1190
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_SF_PRAEFIX + i7Data.bezeichner;
|
|
1146
1191
|
}
|
|
1147
1192
|
else {
|
|
1148
1193
|
this.logger.debug(`KnotenSf ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1167,11 +1212,11 @@ class ConverterIntegral7 {
|
|
|
1167
1212
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.kpfeld));
|
|
1168
1213
|
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);
|
|
1169
1214
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
1170
|
-
|
|
1171
|
-
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, i7Data.bezeichner, 'knotenkf');
|
|
1215
|
+
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));
|
|
1172
1216
|
if (bay) {
|
|
1173
1217
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1174
1218
|
bay.addConnectivityNode(connectivityNode);
|
|
1219
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_KF_PRAEFIX + i7Data.bezeichner;
|
|
1175
1220
|
}
|
|
1176
1221
|
else {
|
|
1177
1222
|
this.logger.debug(`KnotenKf ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1194,11 +1239,12 @@ class ConverterIntegral7 {
|
|
|
1194
1239
|
const bay = cimModel.getBay(this.integralID2UUID.get(i7Data.lkupplung));
|
|
1195
1240
|
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);
|
|
1196
1241
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
1197
|
-
const
|
|
1198
|
-
|
|
1242
|
+
const name = (0, util_create_1.createNotation)([i7Data.bezeichner, '_CN'], 32, false);
|
|
1243
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuid, name, name);
|
|
1199
1244
|
if (bay) {
|
|
1200
1245
|
connectivityNode.connectivityNodeContainer = bay;
|
|
1201
1246
|
bay.addConnectivityNode(connectivityNode);
|
|
1247
|
+
connectivityNode.key = bay.key + integral_prefix_1.KNOTEN_LK_PRAEFIX + i7Data.bezeichner;
|
|
1202
1248
|
}
|
|
1203
1249
|
else {
|
|
1204
1250
|
this.logger.debug(`KnotenLk ${i7Data.id} besitzt kein Schaltfeld.`);
|
|
@@ -1221,8 +1267,12 @@ class ConverterIntegral7 {
|
|
|
1221
1267
|
const key = integral_sql_1.I7Objects.SCHLAUFE + String(i7Data.id);
|
|
1222
1268
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Terminal, this.configUuid, key);
|
|
1223
1269
|
const terminal = new Terminal_1.Terminal(uuid, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar);
|
|
1270
|
+
if (terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
1271
|
+
const stop = true;
|
|
1272
|
+
}
|
|
1224
1273
|
terminal.connected = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
|
|
1225
1274
|
terminal.phases = PhaseCode_1.PhaseCode.ABC;
|
|
1275
|
+
terminal.key = integral_prefix_1.SCHLAUFE_PRAEFIX + i7Data.bezeichner;
|
|
1226
1276
|
this.addIdMapping(i7Data.id, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
|
|
1227
1277
|
this.addIdMapping(i7Data.knotenzw, terminal.mrid, integral_sql_1.Integral7TableNames.SCHLAUFE);
|
|
1228
1278
|
integral7.kontenZwIDs.push(i7Data.knotenzw);
|
|
@@ -1330,6 +1380,101 @@ class ConverterIntegral7 {
|
|
|
1330
1380
|
}
|
|
1331
1381
|
});
|
|
1332
1382
|
}
|
|
1383
|
+
convertVollUmrichterEinspeisung(cimModel, targetVoltages, knotenSfIDs, objectMappingConfig, energySourceTypeMappingConfig) {
|
|
1384
|
+
var _a;
|
|
1385
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1386
|
+
const targetClass = objectMappingConfig.Einspeisung.class;
|
|
1387
|
+
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG)) {
|
|
1388
|
+
const result = yield this.mysqlController.execQuery((0, integral_sql_1.getI7Query)(integral_sql_1.I7Objects.VOLLUMRICHTEREINSPEISUNG, this.getAvailableColumnNames(integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG), knotenSfIDs));
|
|
1389
|
+
for (const i7Data of result) {
|
|
1390
|
+
try {
|
|
1391
|
+
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
|
|
1392
|
+
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);
|
|
1393
|
+
externalNetworkInjection.nameprimaertyp = 'Wind Onshore';
|
|
1394
|
+
let mf = undefined;
|
|
1395
|
+
mf = this.cimModelDefault.multiplierFactors.get(this.integralID2UUID.get(i7Data.multfaktor));
|
|
1396
|
+
if (mf) {
|
|
1397
|
+
cimModel.addMultiplierFactor(mf);
|
|
1398
|
+
externalNetworkInjection.multiplierFactorUUID = mf.getUUID();
|
|
1399
|
+
}
|
|
1400
|
+
/** Convert EQ-profile dataset. */
|
|
1401
|
+
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
1402
|
+
externalNetworkInjection.maxP = maxP;
|
|
1403
|
+
const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
1404
|
+
externalNetworkInjection.governorSCD = governorscd;
|
|
1405
|
+
const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
|
|
1406
|
+
externalNetworkInjection.maxQ = maxQ;
|
|
1407
|
+
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : undefined;
|
|
1408
|
+
externalNetworkInjection.minP = minP;
|
|
1409
|
+
const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
|
|
1410
|
+
externalNetworkInjection.minQ = minQ;
|
|
1411
|
+
this.setTopologyEnergySourceConsumerObject(cimModel, externalNetworkInjection, i7Data, targetVoltages);
|
|
1412
|
+
/**Convert short circuit constants */
|
|
1413
|
+
const r0X0 = undefined;
|
|
1414
|
+
const r1X1 = undefined;
|
|
1415
|
+
const z0Z1 = undefined;
|
|
1416
|
+
const maxR0X0Ratio = r0X0;
|
|
1417
|
+
externalNetworkInjection.maxR0ToX0Ratio = maxR0X0Ratio;
|
|
1418
|
+
const maxR1X1Ratio = r1X1;
|
|
1419
|
+
externalNetworkInjection.maxR1ToX1Ratio = maxR1X1Ratio;
|
|
1420
|
+
const maxZ0Z1Ratio = z0Z1;
|
|
1421
|
+
externalNetworkInjection.maxZ0ToZ1Ratio = maxZ0Z1Ratio;
|
|
1422
|
+
const minR0X0Ratio = r0X0;
|
|
1423
|
+
externalNetworkInjection.minR0ToX0Ratio = minR0X0Ratio;
|
|
1424
|
+
const minR1X1Ratio = r1X1;
|
|
1425
|
+
externalNetworkInjection.minR1ToX1Ratio = minR1X1Ratio;
|
|
1426
|
+
const minZ0Z1Ratio = z0Z1;
|
|
1427
|
+
externalNetworkInjection.minZ0ToZ1Ratio = minZ0Z1Ratio;
|
|
1428
|
+
const i2sk1 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk1) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk1) : undefined;
|
|
1429
|
+
const i2sk2 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2) : undefined;
|
|
1430
|
+
const i2sk2e = (0, parser_utils_1.isNumericI7)(i7Data.i2sk2e) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk2e) : undefined;
|
|
1431
|
+
const i2sk3 = (0, parser_utils_1.isNumericI7)(i7Data.i2sk3) ? (0, parser_utils_1.convertToNumberI7)(i7Data.i2sk3) : undefined;
|
|
1432
|
+
const ikMin = (0, utils_2.transformShortCircuitCurrent)(Math.min(i2sk1, i2sk2, i2sk2e, i2sk3));
|
|
1433
|
+
const ikMax = (0, utils_2.transformShortCircuitCurrent)(Math.max(i2sk1, i2sk2, i2sk2e, i2sk3));
|
|
1434
|
+
externalNetworkInjection.minInitialSymShCCurrent = ikMin;
|
|
1435
|
+
externalNetworkInjection.maxInitialSymShCCurrent = ikMax;
|
|
1436
|
+
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
|
|
1437
|
+
/** Convert SSH-profile dataset. */
|
|
1438
|
+
/**
|
|
1439
|
+
* @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'.
|
|
1440
|
+
* einspprio having no effect in loadflow calculation if voltage control does not exists.
|
|
1441
|
+
* */
|
|
1442
|
+
let prio = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
|
|
1443
|
+
if (((_a = externalNetworkInjection.regulatingControl) === null || _a === void 0 ? void 0 : _a.mode) === RegulatingControlModeKind_1.RegulatingControlModeKind.voltage) {
|
|
1444
|
+
if (prio !== undefined && prio > 0) {
|
|
1445
|
+
externalNetworkInjection.referencePriority = prio + 1; //TODO: SLACK is a injection with maximum prio in the network section and active voltage control.
|
|
1446
|
+
}
|
|
1447
|
+
else if (prio !== undefined && prio === 0) {
|
|
1448
|
+
externalNetworkInjection.referencePriority = prio;
|
|
1449
|
+
}
|
|
1450
|
+
else {
|
|
1451
|
+
externalNetworkInjection.referencePriority = undefined;
|
|
1452
|
+
}
|
|
1453
|
+
}
|
|
1454
|
+
const powerData = (0, utils_2.getActiveReactivePower)(i7Data, mf);
|
|
1455
|
+
const p = powerData[0];
|
|
1456
|
+
const q = powerData[1];
|
|
1457
|
+
externalNetworkInjection.setActivePower(p * -1); //convert to load sign system
|
|
1458
|
+
externalNetworkInjection.setReactivePower(q * -1); //convert to load sign system
|
|
1459
|
+
// AMPI7 profile
|
|
1460
|
+
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;
|
|
1461
|
+
externalNetworkInjection.cos_phi = cosPhi;
|
|
1462
|
+
externalNetworkInjection.p_mf = (mf && powerData[2]) ? powerData[2] * -1 : undefined;
|
|
1463
|
+
externalNetworkInjection.q_mf = (mf && powerData[3]) ? powerData[3] * -1 : undefined;
|
|
1464
|
+
externalNetworkInjection.normallyInService = inBetrieb;
|
|
1465
|
+
cimModel.addExternalNetworkInjection(externalNetworkInjection);
|
|
1466
|
+
this.addIdMapping(i7Data.id, externalNetworkInjection.mrid, integral_sql_1.I7Objects.EINSPEISUNG);
|
|
1467
|
+
}
|
|
1468
|
+
catch (err) {
|
|
1469
|
+
this.logger.error(`error --- convertVollumrichtereinspeisung ${i7Data.id} ${err}`);
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1473
|
+
else {
|
|
1474
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.VOLLUMRICHTEREINSPEISUNG} ist nicht vorhanden.`);
|
|
1475
|
+
}
|
|
1476
|
+
});
|
|
1477
|
+
}
|
|
1333
1478
|
convertErsatzQuerZweige(cimModel, targetVoltages, knotenSfIDs, targetClass) {
|
|
1334
1479
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
1335
1480
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.ERSATZQUERZWEIG)) {
|
|
@@ -1362,6 +1507,9 @@ class ConverterIntegral7 {
|
|
|
1362
1507
|
for (const i7Data of result) {
|
|
1363
1508
|
const genType = this.generatorTypen.get(i7Data.nametyp);
|
|
1364
1509
|
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);
|
|
1510
|
+
if (synchronousMachine.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F') {
|
|
1511
|
+
let stop = true;
|
|
1512
|
+
}
|
|
1365
1513
|
const inBetrieb = (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb);
|
|
1366
1514
|
const cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : undefined;
|
|
1367
1515
|
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
@@ -1463,7 +1611,7 @@ class ConverterIntegral7 {
|
|
|
1463
1611
|
const qType = Math.sqrt(Math.pow(genType === null || genType === void 0 ? void 0 : genType.sr, 2) - Math.pow(pType, 2));
|
|
1464
1612
|
// AMP I7 Profil
|
|
1465
1613
|
synchronousMachine.cos_phi = i7Data.cos_phi;
|
|
1466
|
-
if (synchronousMachine.getUUID() === '
|
|
1614
|
+
if (synchronousMachine.getUUID() === '69718d2d-5988-49a9-b5c8-d53d0cf0e89a') {
|
|
1467
1615
|
let stop = true;
|
|
1468
1616
|
}
|
|
1469
1617
|
if (synchronousMachine.getUUID() === 'f6d81d19-dca0-48e9-a43e-4ab1f6bf697d') {
|
|
@@ -1515,7 +1663,7 @@ class ConverterIntegral7 {
|
|
|
1515
1663
|
// synchronousMachine.voltageRegulationRange: number;
|
|
1516
1664
|
/** Create ReactiveCapabilityCurves */
|
|
1517
1665
|
if (minP !== undefined && maxP !== undefined && minQvonPmin !== undefined && maxQvonPmax !== undefined) {
|
|
1518
|
-
const reactiveCapabilityCurve = new ReactiveCapabilityCurve_1.ReactiveCapabilityCurve((0, parser_utils_1.getUUID)(i7Data.guid_rcc, this.objectMappingConfig.standardiseUuid), (0, util_create_1.createNotation)(['CurveData', synchronousMachine.
|
|
1666
|
+
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']));
|
|
1519
1667
|
reactiveCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
|
|
1520
1668
|
reactiveCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
|
|
1521
1669
|
reactiveCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
@@ -1598,6 +1746,9 @@ class ConverterIntegral7 {
|
|
|
1598
1746
|
// TODO: genControlSource is not required.
|
|
1599
1747
|
//generatingUnit.genControlSource = GeneratorControlSource.onAGC;
|
|
1600
1748
|
/**Complete GeneratingUnit data */
|
|
1749
|
+
if (generatingUnit.getUUID() === '70810e1e74aa4359b387bef9158f4767' || synchronousMachine.getUUID() === '70810e1e74aa4359b387bef9158f4767') {
|
|
1750
|
+
const stop = true;
|
|
1751
|
+
}
|
|
1601
1752
|
generatingUnit.initialP = (0, parser_utils_1.isNumericI7)(i7Data.p0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p0) : undefined;
|
|
1602
1753
|
// generatingUnit.longPF
|
|
1603
1754
|
// generatingUnit.maximumAllowableSpinningReserve
|
|
@@ -1749,7 +1900,7 @@ class ConverterIntegral7 {
|
|
|
1749
1900
|
//EQ core profile content
|
|
1750
1901
|
const connectivityNode = cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
1751
1902
|
if (connectivityNode) {
|
|
1752
|
-
|
|
1903
|
+
this.createConnection(cimModel, asynchronousMachine, connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
1753
1904
|
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(connectivityNode.getConnectivityNodeContainerUUID()));
|
|
1754
1905
|
if (equipmentContainer) {
|
|
1755
1906
|
equipmentContainer.addEquipment(asynchronousMachine);
|
|
@@ -2330,6 +2481,9 @@ class ConverterIntegral7 {
|
|
|
2330
2481
|
const qr = (0, parser_utils_1.isNumericI7)(i7Data.qr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.qr) : undefined;
|
|
2331
2482
|
const pr = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2332
2483
|
shunt.nomU = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
2484
|
+
if (shunt.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
|
|
2485
|
+
let stop = true;
|
|
2486
|
+
}
|
|
2333
2487
|
// Set electrical properties (EQ core)
|
|
2334
2488
|
if ((0, parser_utils_1.isNumericI7)(i7Data.aktstufe) && (0, parser_utils_1.isNumericI7)(i7Data.maxstufe)) {
|
|
2335
2489
|
shunt.sections = (0, parser_utils_1.convertToNumberI7)(i7Data.aktstufe);
|
|
@@ -2469,7 +2623,7 @@ class ConverterIntegral7 {
|
|
|
2469
2623
|
/** EQ */
|
|
2470
2624
|
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
|
|
2471
2625
|
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
|
|
2472
|
-
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2626
|
+
statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
|
|
2473
2627
|
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2474
2628
|
statVarCom.aggregate = false;
|
|
2475
2629
|
/** EQ-SC */
|
|
@@ -2478,7 +2632,6 @@ class ConverterIntegral7 {
|
|
|
2478
2632
|
/** SV */
|
|
2479
2633
|
//statVarCom.svpowerflow
|
|
2480
2634
|
/** Regelung */
|
|
2481
|
-
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid_rc);
|
|
2482
2635
|
const regulatingControl = this.setTopologyEnergySourceConsumerObject(cimModel, statVarCom, i7Data, targetVoltages, undefined, true);
|
|
2483
2636
|
/** EQ */
|
|
2484
2637
|
if (regulatingControl) {
|
|
@@ -2506,7 +2659,7 @@ class ConverterIntegral7 {
|
|
|
2506
2659
|
/** EQ */
|
|
2507
2660
|
statVarCom.capacitiveRating = (0, utils_2.calculateStatVarComRating)(ur, qkapr);
|
|
2508
2661
|
statVarCom.inductiveRating = Math.abs((0, utils_2.calculateStatVarComRating)(ur, qindr)) * -1;
|
|
2509
|
-
statVarCom.slope = mrez !== 0 ? 1 / mrez : 0;
|
|
2662
|
+
statVarCom.slope = (0, parser_utils_1.isNumericI7)(mrez) && mrez !== 0 ? 1 / (0, parser_utils_1.convertToNumberI7)(mrez) : 0;
|
|
2510
2663
|
statVarCom.sVCControlMode = SVCControlMode_1.SVCControlMode.voltage;
|
|
2511
2664
|
statVarCom.aggregate = false;
|
|
2512
2665
|
/** EQ-SC */
|
|
@@ -2518,11 +2671,11 @@ class ConverterIntegral7 {
|
|
|
2518
2671
|
/** EQ */
|
|
2519
2672
|
statVarCom.voltageSetPoint = regulatingControl.targetValue ? regulatingControl.targetValue : ur;
|
|
2520
2673
|
cimModel.addStaticVarCompensator(statVarCom);
|
|
2521
|
-
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.
|
|
2674
|
+
this.addIdMapping(i7Data.id, statVarCom.mrid, integral_sql_1.Integral7TableNames.SVC);
|
|
2522
2675
|
}
|
|
2523
2676
|
}
|
|
2524
2677
|
else {
|
|
2525
|
-
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.
|
|
2678
|
+
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.SVC} ist nicht vorhanden.`);
|
|
2526
2679
|
}
|
|
2527
2680
|
});
|
|
2528
2681
|
}
|
|
@@ -2575,9 +2728,10 @@ class ConverterIntegral7 {
|
|
|
2575
2728
|
csConverter.ratedIdc = (0, utils_2.calculateRatedIdc)(csConverter.ratedUdc, pr);
|
|
2576
2729
|
/** spannungsabhängige Wirk-Verluste in kW bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2577
2730
|
csConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
|
|
2578
|
-
csConverter.maxUdc = csConverter.ratedUdc * 1.
|
|
2579
|
-
csConverter.minUdc = csConverter.ratedUdc * 0.
|
|
2580
|
-
|
|
2731
|
+
csConverter.maxUdc = csConverter.ratedUdc * 1.08; // +5% * ratedUdc
|
|
2732
|
+
csConverter.minUdc = csConverter.ratedUdc * 0.98; // -5% * ratedUdc
|
|
2733
|
+
//R=U^2/P
|
|
2734
|
+
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;
|
|
2581
2735
|
csConverter.switchingLoss = 0;
|
|
2582
2736
|
/* csConverter.numberOfValves
|
|
2583
2737
|
csConverter.valveU0*/
|
|
@@ -2671,21 +2825,21 @@ class ConverterIntegral7 {
|
|
|
2671
2825
|
/** Bemessungsleistung (Gleichstromseite) in MW
|
|
2672
2826
|
* im CS-Fall S = P?
|
|
2673
2827
|
* Abhängig vom */
|
|
2674
|
-
vsConverter.baseS = i7Data.pr;
|
|
2828
|
+
vsConverter.baseS = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
2675
2829
|
/** Bemessungsspannung (Gleichstromseite) in kV*/
|
|
2676
2830
|
//If udc is set in Integral data model set converter.ratedUdc as i7Data.udc else take the data value for i7Data.ur (Bemessungsspannung)
|
|
2677
2831
|
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);
|
|
2678
|
-
/** spannungsabhängige Wirk-Verluste bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2832
|
+
/** spannungsabhängige Wirk-Verluste in MW bei Leerlauf mit Bemessungsspannung in kV*/
|
|
2679
2833
|
vsConverter.idleLoss = (0, parser_utils_1.isNumericI7)(i7Data.p_leer) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_leer) * Math.pow(10, -3) : undefined;
|
|
2680
|
-
vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +
|
|
2681
|
-
vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -
|
|
2682
|
-
vsConverter.resistiveLoss = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) * Math.pow(10,
|
|
2834
|
+
vsConverter.maxUdc = vsConverter.ratedUdc * 1.08; // +8% * ratedUdc
|
|
2835
|
+
vsConverter.minUdc = vsConverter.ratedUdc * 0.98; // -2% * ratedUdc
|
|
2836
|
+
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;
|
|
2683
2837
|
vsConverter.switchingLoss = undefined;
|
|
2684
2838
|
/* csConverter.maxModulationIndex = ;
|
|
2685
2839
|
csConverter.maxValveCurrent = */
|
|
2686
2840
|
/** CapabilityCurveData */
|
|
2687
|
-
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) :
|
|
2688
|
-
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) :
|
|
2841
|
+
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : vsConverter.baseS;
|
|
2842
|
+
const minP = (0, parser_utils_1.isNumericI7)(i7Data.p_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_min) : -1 * vsConverter.baseS;
|
|
2689
2843
|
const maxQ = (0, parser_utils_1.isNumericI7)(i7Data.q_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_max) : undefined;
|
|
2690
2844
|
const minQ = (0, parser_utils_1.isNumericI7)(i7Data.q_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q_min) : undefined;
|
|
2691
2845
|
/** SSH export values */
|
|
@@ -2708,11 +2862,11 @@ class ConverterIntegral7 {
|
|
|
2708
2862
|
vsConverter.dCTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2709
2863
|
acDCConverterDCTerminal.dcNode = dcNode;
|
|
2710
2864
|
dcNode.dcTerminals.set(acDCConverterDCTerminal.getUUID(), acDCConverterDCTerminal);
|
|
2711
|
-
/** Create
|
|
2865
|
+
/** Create VsCapabilityCurves */
|
|
2712
2866
|
if (minP !== undefined && maxP !== undefined && minQ != undefined && maxQ !== undefined) {
|
|
2713
2867
|
let keyVsCapabilityCurve = cim_class_names_1.ClassNames.VsCapabilityCurve + i7Data.id + vsConverter.getUUID();
|
|
2714
2868
|
let uuidVsCapabilityCurve = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.VsCapabilityCurve, this.configUuid, keyVsCapabilityCurve);
|
|
2715
|
-
const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', vsConverter.getUUID().substring(0, 8), '_VCC']));
|
|
2869
|
+
const vsCapabilityCurve = new VsCapabilityCurve_1.VsCapabilityCurve(uuidVsCapabilityCurve, (0, util_create_1.createNotation)(['CurveData', '_', vsConverter.getUUID().substring(0, 8), '_VCC']));
|
|
2716
2870
|
vsCapabilityCurve.curveStyle = CurveStyle_1.CurveStyle.straightLineYValues;
|
|
2717
2871
|
vsCapabilityCurve.xUnit = UnitSymbol_1.UnitSymbol.W;
|
|
2718
2872
|
vsCapabilityCurve.y1Unit = UnitSymbol_1.UnitSymbol.VAr;
|
|
@@ -2723,7 +2877,7 @@ class ConverterIntegral7 {
|
|
|
2723
2877
|
const curveData1 = new CurveData_1.CurveData(uuidCurveData);
|
|
2724
2878
|
curveData1.curve = vsCapabilityCurve;
|
|
2725
2879
|
curveData1.xvalue = minP; //pMin
|
|
2726
|
-
curveData1.y1value = minQ; //qMin
|
|
2880
|
+
curveData1.y1value = minQ; //qMin pMax
|
|
2727
2881
|
curveData1.y2value = maxQ; //qMax pMin
|
|
2728
2882
|
cimModel.addCurveData(curveData1);
|
|
2729
2883
|
//reactive capability curve data for pmax
|
|
@@ -2733,7 +2887,7 @@ class ConverterIntegral7 {
|
|
|
2733
2887
|
curveData2.curve = vsCapabilityCurve;
|
|
2734
2888
|
curveData2.xvalue = maxP; //pMax
|
|
2735
2889
|
curveData2.y1value = minQ; //qMin pMax
|
|
2736
|
-
curveData2.y2value = maxQ; //
|
|
2890
|
+
curveData2.y2value = maxQ; //qMax pMax
|
|
2737
2891
|
cimModel.addCurveData(curveData2);
|
|
2738
2892
|
cimModel.addVsCapabilityCurve(vsCapabilityCurve);
|
|
2739
2893
|
vsConverter.capabilityCurve = vsCapabilityCurve;
|
|
@@ -2852,7 +3006,6 @@ class ConverterIntegral7 {
|
|
|
2852
3006
|
if (i7Data.guid === '_ab64e281-72d0-45fb-8cb3-da4ae99a4f8c') {
|
|
2853
3007
|
const stop = true;
|
|
2854
3008
|
}
|
|
2855
|
-
let einspeisePrioritaet = (0, parser_utils_1.isNumericI7)(i7Data.einspprio) ? (0, parser_utils_1.convertToNumberI7)(i7Data.einspprio) : undefined;
|
|
2856
3009
|
const maxP = (0, parser_utils_1.isNumericI7)(i7Data.p_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p_max) : undefined;
|
|
2857
3010
|
externalNetworkInjection.maxP = maxP;
|
|
2858
3011
|
const governorscd = (0, parser_utils_1.isNumericI7)(i7Data.kr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.kr) : undefined;
|
|
@@ -2884,9 +3037,10 @@ class ConverterIntegral7 {
|
|
|
2884
3037
|
const skAkt = (0, parser_utils_1.isNumericI7)(i7Data.sk_akt) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_akt) : undefined;
|
|
2885
3038
|
const skMin = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_min) : skAkt;
|
|
2886
3039
|
const skMax = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, parser_utils_1.convertToNumberI7)(i7Data.sk_max) : skAkt;
|
|
2887
|
-
const
|
|
3040
|
+
const nomV = externalNetworkInjection.getTerminals().values().next().value.getConnectivityNode().getBaseVoltageAsNumber();
|
|
3041
|
+
const minIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_min) ? (0, utils_2.calculateShortCircuitCurrent)(skMin, nomV) : undefined;
|
|
2888
3042
|
externalNetworkInjection.minInitialSymShCCurrent = minIkSecond;
|
|
2889
|
-
const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0,
|
|
3043
|
+
const maxIkSecond = (0, parser_utils_1.isNumericI7)(i7Data.sk_max) ? (0, utils_2.calculateShortCircuitCurrent)(skMax, nomV) : undefined;
|
|
2890
3044
|
externalNetworkInjection.maxInitialSymShCCurrent = maxIkSecond;
|
|
2891
3045
|
const inBetrieb = (0, parser_utils_1.isBooleanI7)(i7Data.betrieb) ? (0, parser_utils_1.convertToBooleanI7)(i7Data.betrieb) : false;
|
|
2892
3046
|
/** Convert SSH-profile dataset. */
|
|
@@ -2949,6 +3103,9 @@ class ConverterIntegral7 {
|
|
|
2949
3103
|
if (condEquip instanceof RotatingMachine_1.RotatingMachine || condEquip instanceof ExternalNetworkInjection_1.ExternalNetworkInjection || condEquip instanceof EquivalentInjection_1.EquivalentInjection) {
|
|
2950
3104
|
i7DataEinsp = i7Data;
|
|
2951
3105
|
i7DataRQ = i7Data;
|
|
3106
|
+
if (condEquip.getUUID() === '10409E08-E2C0-4EBD-AD4C-5370178ED62F' || condEquip.getUUID() === '0c67bf21-a557-46ea-af63-2a3ac116bd2e') {
|
|
3107
|
+
const stop = true;
|
|
3108
|
+
}
|
|
2952
3109
|
}
|
|
2953
3110
|
if (condEquip instanceof SynchronousMachine_1.SynchronousMachine) {
|
|
2954
3111
|
suffix = '_SM';
|
|
@@ -2969,16 +3126,26 @@ class ConverterIntegral7 {
|
|
|
2969
3126
|
suffix = '_EI';
|
|
2970
3127
|
}
|
|
2971
3128
|
else if (condEquip instanceof StaticVarCompensator_1.StaticVarCompensator) {
|
|
3129
|
+
if (condEquip.getUUID() === '18e12018-03dd-4d6e-a626-ea404017050f' || condEquip.getUUID() === '4352ad9f-c841-4dcb-9a42-3ccabcb56487'
|
|
3130
|
+
|| condEquip.getUUID() === '3d060069-9253-4e68-bb75-74d92982bb1a' || condEquip.getUUID() === '03c53185-aaa7-4040-8b43-76f79fac82b9' || condEquip.getUUID() === '02ba5072-a387-47c6-b9ce-b9d3def21964') {
|
|
3131
|
+
let stop = true;
|
|
3132
|
+
}
|
|
2972
3133
|
i7DataSVC = i7Data;
|
|
2973
3134
|
i7DataRQ = i7Data;
|
|
2974
3135
|
suffix = '_SVC';
|
|
2975
3136
|
}
|
|
2976
3137
|
else if (condEquip instanceof LinearShuntCompensator_1.LinearShuntCompensator) {
|
|
3138
|
+
if (condEquip.getUUID() === '547B9591-C41B-4496-9954-2215B8945124') {
|
|
3139
|
+
let stop = true;
|
|
3140
|
+
}
|
|
2977
3141
|
i7DataKomp = i7Data;
|
|
2978
3142
|
i7DataRQ = i7Data;
|
|
2979
3143
|
suffix = '_LSC';
|
|
2980
3144
|
}
|
|
2981
3145
|
else if (condEquip instanceof ACDCConverter_1.ACDCConverter) {
|
|
3146
|
+
if (condEquip.getUUID() === '71331a6b-000d-4049-89cc-9319a69367f6') {
|
|
3147
|
+
let stop = true;
|
|
3148
|
+
}
|
|
2982
3149
|
i7DataHgue = i7Data;
|
|
2983
3150
|
suffix = '_ACDCC';
|
|
2984
3151
|
}
|
|
@@ -3015,62 +3182,61 @@ class ConverterIntegral7 {
|
|
|
3015
3182
|
let tVMax = undefined; //maximum target voltage
|
|
3016
3183
|
let tVMin = undefined; //minimum target voltage
|
|
3017
3184
|
const regCondEquip = condEquip;
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
3028
|
-
|
|
3029
|
-
|
|
3030
|
-
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3031
|
-
}
|
|
3032
|
-
else {
|
|
3033
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3034
|
-
}
|
|
3185
|
+
//get rated voltage of controlled node.
|
|
3186
|
+
if (knotenSpgGeregelt && spannungsregelungRemote) {
|
|
3187
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3188
|
+
if (cterminal === undefined) {
|
|
3189
|
+
let stop = true;
|
|
3190
|
+
}
|
|
3191
|
+
if (cterminal) {
|
|
3192
|
+
tCn = cterminal.getConnectivityNode();
|
|
3193
|
+
if (tCn) {
|
|
3194
|
+
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3195
|
+
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3196
|
+
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3035
3197
|
}
|
|
3036
3198
|
else {
|
|
3037
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id}
|
|
3199
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3038
3200
|
}
|
|
3039
3201
|
}
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
3047
|
-
|
|
3048
|
-
|
|
3049
|
-
break;
|
|
3202
|
+
else {
|
|
3203
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Anschlusspunkt (Terminal) des entfernt geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3204
|
+
}
|
|
3205
|
+
}
|
|
3206
|
+
if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
|
|
3207
|
+
switch (knotenSpgGeregelt) {
|
|
3208
|
+
case undefined: {
|
|
3209
|
+
if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
|
|
3210
|
+
cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
3050
3211
|
}
|
|
3051
|
-
|
|
3052
|
-
cterminal = (0, util_graph2tree_1.getControlledNode)(
|
|
3212
|
+
if (cterminal === undefined) {
|
|
3213
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
|
|
3053
3214
|
}
|
|
3215
|
+
break;
|
|
3054
3216
|
}
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
if (tCn) {
|
|
3058
|
-
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3059
|
-
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3060
|
-
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3061
|
-
}
|
|
3062
|
-
else {
|
|
3063
|
-
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3064
|
-
}
|
|
3217
|
+
default: {
|
|
3218
|
+
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3065
3219
|
}
|
|
3066
3220
|
}
|
|
3067
|
-
|
|
3068
|
-
|
|
3221
|
+
if (cterminal) {
|
|
3222
|
+
tCn = cterminal.getConnectivityNode();
|
|
3069
3223
|
if (tCn) {
|
|
3070
|
-
|
|
3224
|
+
tVMax = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umax'];
|
|
3225
|
+
tVMin = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['umin'];
|
|
3226
|
+
usoll = targetVoltages.get(this.UUID2Integral7ID.get(tCn.getUUID()).find(elem => elem))['usoll'];
|
|
3227
|
+
}
|
|
3228
|
+
else {
|
|
3229
|
+
this.logger.debug(`debug --- ${i7Data.constructor.name} ${i7Data.id} Lokal geregelter Knoten konnte nicht ermittelt werden.`);
|
|
3071
3230
|
}
|
|
3072
3231
|
}
|
|
3073
3232
|
}
|
|
3233
|
+
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;
|
|
3234
|
+
if (uband === undefined) {
|
|
3235
|
+
if (tCn) {
|
|
3236
|
+
uband = tCn.getBaseVoltageAsNumber() * 0.1;
|
|
3237
|
+
}
|
|
3238
|
+
}
|
|
3239
|
+
usoll = (0, parser_utils_1.isNumericI7)(i7Data.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7Data.usoll) : usoll;
|
|
3074
3240
|
//Create and define regulating control for voltage control
|
|
3075
3241
|
if (cterminal !== undefined) {
|
|
3076
3242
|
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);
|
|
@@ -3083,6 +3249,9 @@ class ConverterIntegral7 {
|
|
|
3083
3249
|
rControl.targetDeadband = (0, parser_utils_1.isNumericI7)(uband) ? uband : undefined; //zulässiges Spannungsband
|
|
3084
3250
|
/** Spannung in kilo*/
|
|
3085
3251
|
//TODO TEMP FIX bei lokaler Regelegung bleibt usoll = null.
|
|
3252
|
+
if (cterminal !== undefined && cterminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
3253
|
+
const stop = true;
|
|
3254
|
+
}
|
|
3086
3255
|
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());
|
|
3087
3256
|
const guidSuffix = (_a = tCn === null || tCn === void 0 ? void 0 : tCn.getVoltageLevel()) === null || _a === void 0 ? void 0 : _a.getUUID().substring(0, 8);
|
|
3088
3257
|
rControl.name = (0, util_create_1.createNotation)([rControl.name, '_', guidSuffix, '_RC'], 32, true);
|
|
@@ -3098,7 +3267,7 @@ class ConverterIntegral7 {
|
|
|
3098
3267
|
}
|
|
3099
3268
|
}
|
|
3100
3269
|
}
|
|
3101
|
-
else if (isRegulatingControl && i7DataSVC) {
|
|
3270
|
+
else if (isRegulatingControl && i7DataSVC !== undefined) {
|
|
3102
3271
|
/** Regelung */
|
|
3103
3272
|
const regCondEquip = condEquip;
|
|
3104
3273
|
const cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
@@ -3119,12 +3288,12 @@ class ConverterIntegral7 {
|
|
|
3119
3288
|
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;
|
|
3120
3289
|
if (uband === undefined) {
|
|
3121
3290
|
if (tCn) {
|
|
3122
|
-
uband = tCn.getBaseVoltageAsNumber() * 0.1;
|
|
3291
|
+
uband = (0, parser_utils_1.isNumericI7)(uref) ? uref * 0.1 : ((0, parser_utils_1.isNumericI7)(usoll) ? usoll * 0.1 : tCn.getBaseVoltageAsNumber() * 0.1);
|
|
3123
3292
|
}
|
|
3124
3293
|
}
|
|
3125
3294
|
if (cterminal !== undefined) {
|
|
3126
3295
|
const uuid = (0, parser_utils_1.getUUID)(i7DataSVC.guid_rc);
|
|
3127
|
-
rControl = (0, utils_2.createRegulatingControl)(uuid, (0, util_create_1.createNotation)([condEquip.getUUID().substring(0, 8), suffix]),
|
|
3296
|
+
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);
|
|
3128
3297
|
rControl.enabled = true;
|
|
3129
3298
|
if (isStatcom) {
|
|
3130
3299
|
rControl.discrete = true;
|
|
@@ -3197,20 +3366,23 @@ class ConverterIntegral7 {
|
|
|
3197
3366
|
usoll = (0, parser_utils_1.isNumericI7)(i7DataHgue.usoll) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.usoll) : undefined;
|
|
3198
3367
|
if (regelungU) {
|
|
3199
3368
|
condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.udc;
|
|
3200
|
-
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.
|
|
3369
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
|
|
3370
|
+
condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
|
|
3201
3371
|
}
|
|
3202
3372
|
else if (regelungP) {
|
|
3203
3373
|
condEquip.pPccControl = VsPpccControlKind_1.VsPpccControlKind.pPcc;
|
|
3204
|
-
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.
|
|
3374
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.powerFactorPcc;
|
|
3205
3375
|
}
|
|
3206
|
-
if (
|
|
3207
|
-
//get rated voltage of controlled node.
|
|
3376
|
+
if (isRegulatingControl) { //voltage control for AC-side
|
|
3208
3377
|
let cterminal = undefined; //connection point terminal of this device
|
|
3209
3378
|
let tVMax = undefined; //maximum target voltage
|
|
3210
3379
|
let tVMin = undefined; //minimum target voltage
|
|
3211
|
-
//get
|
|
3380
|
+
//get rated voltage of controlled node.
|
|
3212
3381
|
if (knotenSpgGeregelt && spannungsregelungRemote) {
|
|
3213
3382
|
cterminal = (0, util_graph2tree_1.getControlledNode)(connectivityNode, knotenSpgGeregelt);
|
|
3383
|
+
if (cterminal === undefined) {
|
|
3384
|
+
let stop = true;
|
|
3385
|
+
}
|
|
3214
3386
|
if (cterminal) {
|
|
3215
3387
|
tCn = cterminal.getConnectivityNode();
|
|
3216
3388
|
if (tCn) {
|
|
@@ -3229,7 +3401,9 @@ class ConverterIntegral7 {
|
|
|
3229
3401
|
if ((knotenSpgGeregelt || connectivityNode) && spannungsregelungLokal) {
|
|
3230
3402
|
switch (knotenSpgGeregelt) {
|
|
3231
3403
|
case undefined: {
|
|
3232
|
-
|
|
3404
|
+
if (cpTerminal.connectivityNode.getConnectivityNodeContainer() instanceof Bay_1.Bay) {
|
|
3405
|
+
cterminal = (0, util_graph2tree_1.getNextBusbar)(connectivityNode);
|
|
3406
|
+
}
|
|
3233
3407
|
if (cterminal === undefined) {
|
|
3234
3408
|
cterminal = (0, util_graph2tree_1.getControlledNode)(cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)), cimModel.objects.get(this.integralID2UUID.get(i7Data.anschluss)));
|
|
3235
3409
|
}
|
|
@@ -3251,10 +3425,10 @@ class ConverterIntegral7 {
|
|
|
3251
3425
|
}
|
|
3252
3426
|
}
|
|
3253
3427
|
}
|
|
3428
|
+
condEquip.qPccControl = VsQpccControlKind_1.VsQpccControlKind.voltagePcc;
|
|
3254
3429
|
}
|
|
3255
3430
|
condEquip.targetUpcc = usoll;
|
|
3256
|
-
condEquip.targetQpcc = 0; //ReactivePower,
|
|
3257
|
-
condEquip.targetUdc = (0, parser_utils_1.isNumericI7)(i7DataHgue.udc) ? (0, parser_utils_1.convertToNumberI7)(i7DataHgue.udc) : condEquip.ratedUdc;
|
|
3431
|
+
//(condEquip as VsConverter).targetQpcc = 0; //ReactivePower, ReactivePowerCapabilityCurve is set in advance
|
|
3258
3432
|
condEquip.targetPpcc = condEquip.baseS * -1;
|
|
3259
3433
|
}
|
|
3260
3434
|
}
|
|
@@ -3354,47 +3528,10 @@ class ConverterIntegral7 {
|
|
|
3354
3528
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.KNOTEN_STARR)) {
|
|
3355
3529
|
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));
|
|
3356
3530
|
for (const i7Data of result) {
|
|
3357
|
-
//const junction = new Junction(getUUID(i7Data.guid, this.objectMappingConfig.standardiseUuid), createNotation([getName(i7Data),"_J",`_${cimModel.junctions]), 'JNCT', 'starre Verbindung');
|
|
3358
3531
|
const breaker = new Breaker_1.Breaker((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, 'Breaker', 'starre Verbindung');
|
|
3359
3532
|
yield this.convertSwitch(breaker, cimModel, i7Data);
|
|
3360
3533
|
cimModel.addBreaker(breaker);
|
|
3361
3534
|
this.addIdMapping(i7Data.id, breaker.mrid, integral_sql_1.Integral7TableNames.LEISTUNGSSCHALTER);
|
|
3362
|
-
/**const schaltzustand = convertToBooleanI7(i7Data.schaltzustand);
|
|
3363
|
-
|
|
3364
|
-
const equipmentContainer = this.determineEquipmentContainer('VoltageLevel', cimModel, cimModel.getObject(this.integralID2UUID.get(i7Data.seliste)) as EquipmentContainer);
|
|
3365
|
-
|
|
3366
|
-
if (equipmentContainer) {
|
|
3367
|
-
equipmentContainer.addEquipment(junction);
|
|
3368
|
-
junction.equipmentContainer = equipmentContainer;
|
|
3369
|
-
} else {
|
|
3370
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen EquipmentContainer.`);
|
|
3371
|
-
}
|
|
3372
|
-
const cnStart = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.aknoten));
|
|
3373
|
-
const cnZiel = cimModel.getConnectivityNode(this.integralID2UUID.get(i7Data.eknoten));
|
|
3374
|
-
|
|
3375
|
-
if (cnStart) {
|
|
3376
|
-
const terminal = this.createConnection(cimModel, junction, cnStart, PhaseCode.ABC, true, 1);
|
|
3377
|
-
if (schaltzustand === false) {
|
|
3378
|
-
terminal.connected = schaltzustand;
|
|
3379
|
-
}
|
|
3380
|
-
} else {
|
|
3381
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Anfangsknoten.`);
|
|
3382
|
-
}
|
|
3383
|
-
if (cnZiel) {
|
|
3384
|
-
const terminal = this.createConnection(cimModel, junction, cnZiel, PhaseCode.ABC, true, 2);
|
|
3385
|
-
if (schaltzustand === false) {
|
|
3386
|
-
terminal.connected = schaltzustand;
|
|
3387
|
-
}
|
|
3388
|
-
} else {
|
|
3389
|
-
this.logger.debug(`Starre verbindung ${i7Data.id} besitzt keinen Zielknoten.`);
|
|
3390
|
-
}
|
|
3391
|
-
const baseVoltage = getTerminalUn(cimModel, junction);
|
|
3392
|
-
if (baseVoltage) {
|
|
3393
|
-
junction.baseVoltage = baseVoltage;
|
|
3394
|
-
}
|
|
3395
|
-
this.addIdMapping(i7Data.id, junction.mrid, Integral7TableNames.KNOTEN_STARR);
|
|
3396
|
-
cimModel.addJunction(junction);
|
|
3397
|
-
**/
|
|
3398
3535
|
}
|
|
3399
3536
|
}
|
|
3400
3537
|
else {
|
|
@@ -3503,7 +3640,7 @@ class ConverterIntegral7 {
|
|
|
3503
3640
|
const start = cimModel.objects.get(this.integralID2UUID.get(i7Data.aknoten));
|
|
3504
3641
|
let startTerminal;
|
|
3505
3642
|
if (start) {
|
|
3506
|
-
startTerminal =
|
|
3643
|
+
startTerminal = this.createConnection(cimModel, seriesCompensator, start, PhaseCode_1.PhaseCode.ABC, true);
|
|
3507
3644
|
}
|
|
3508
3645
|
else {
|
|
3509
3646
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Anfangsknoten.`);
|
|
@@ -3512,7 +3649,7 @@ class ConverterIntegral7 {
|
|
|
3512
3649
|
const target = cimModel.objects.get(this.integralID2UUID.get(i7Data.eknoten));
|
|
3513
3650
|
let targetTerminal;
|
|
3514
3651
|
if (target) {
|
|
3515
|
-
targetTerminal =
|
|
3652
|
+
targetTerminal = this.createConnection(cimModel, seriesCompensator, target, PhaseCode_1.PhaseCode.ABC, true);
|
|
3516
3653
|
}
|
|
3517
3654
|
else {
|
|
3518
3655
|
this.logger.debug(`Längsdrossel ${i7Data.id} ${seriesCompensator.mrid} besitzt keinen Zielknoten.`);
|
|
@@ -3529,7 +3666,7 @@ class ConverterIntegral7 {
|
|
|
3529
3666
|
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3530
3667
|
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3531
3668
|
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3532
|
-
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir);
|
|
3669
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir, seriesCompensator.r);
|
|
3533
3670
|
seriesCompensator.varistorPresent = false;
|
|
3534
3671
|
/** EQ-SC */
|
|
3535
3672
|
seriesCompensator.r0 = seriesCompensator.r;
|
|
@@ -3615,8 +3752,8 @@ class ConverterIntegral7 {
|
|
|
3615
3752
|
const ukr = (0, parser_utils_1.isNumericI7)(i7Data.ukr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ukr) : undefined;
|
|
3616
3753
|
const pkr = (0, parser_utils_1.isNumericI7)(i7Data.pkr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pkr) : undefined;
|
|
3617
3754
|
seriesCompensator.r = (0, utils_2.calculateRSeriesCompensator)(ir, pkr);
|
|
3618
|
-
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1);
|
|
3619
|
-
seriesCompensator.varistorPresent = false;
|
|
3755
|
+
seriesCompensator.x = (0, utils_2.calculateXSeriesCompensator)(ur, ukr, ir * -1, seriesCompensator.r);
|
|
3756
|
+
//seriesCompensator.varistorPresent = false;
|
|
3620
3757
|
/** EQ-SC */
|
|
3621
3758
|
seriesCompensator.r0 = seriesCompensator.r;
|
|
3622
3759
|
seriesCompensator.x0 = seriesCompensator.x;
|
|
@@ -3681,28 +3818,14 @@ class ConverterIntegral7 {
|
|
|
3681
3818
|
for (const i7DataSchiene of stpSchiene) {
|
|
3682
3819
|
try {
|
|
3683
3820
|
stpSchieneIDs.push(i7DataSchiene.id);
|
|
3684
|
-
const
|
|
3685
|
-
const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id + (equipmentContainer === null || equipmentContainer === void 0 ? void 0 : equipmentContainer.getUUID()) || '';
|
|
3821
|
+
const keyConnectivityNode = cim_class_names_1.ClassNames.ConnectivityNode + i7DataSchiene.id;
|
|
3686
3822
|
const uuidConnectivityNode = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, keyConnectivityNode);
|
|
3687
|
-
const
|
|
3688
|
-
const
|
|
3689
|
-
|
|
3690
|
-
const junction = new Junction_1.Junction(uuidJunction, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_J']));
|
|
3691
|
-
connectivityNode.setConnectivityNodeContainer(equipmentContainer);
|
|
3692
|
-
if (equipmentContainer) {
|
|
3693
|
-
equipmentContainer.addEquipment(junction);
|
|
3694
|
-
junction.equipmentContainer = equipmentContainer;
|
|
3695
|
-
}
|
|
3696
|
-
else {
|
|
3697
|
-
this.logger.debug(`Sternpunktschiene ${i7DataSchiene.id} besitzt keinen EquipmentContainer.`);
|
|
3698
|
-
}
|
|
3823
|
+
const name = (0, util_create_1.createNotation)([(0, utils_2.getName)(i7DataSchiene), '_CN'], 32, false);
|
|
3824
|
+
const connectivityNode = new ConnectivityNode_1.ConnectivityNode(uuidConnectivityNode, name, name);
|
|
3825
|
+
connectivityNode.key = integral_prefix_1.CKnoten1PSO_PRAEFIX + i7DataSchiene.bezeichner;
|
|
3699
3826
|
// Verbindung herstellen
|
|
3700
|
-
|
|
3701
|
-
cimModel.terminals.delete(terminal.mrid); //TODO: complete/repair implementation of star point connections.
|
|
3827
|
+
integral7.sternPunktImpModel.stpSchieneIdConnectivityNode.set(i7DataSchiene.id, connectivityNode);
|
|
3702
3828
|
integral7.sternPunktImpModel.connectivityNodes.set(connectivityNode.mrid, connectivityNode);
|
|
3703
|
-
integral7.sternPunktImpModel.junctions.set(junction.mrid, junction);
|
|
3704
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7DataSchiene.id, junction.mrid);
|
|
3705
|
-
integral7.sternPunktImpModel.stpSchieneTerminal.set(i7DataSchiene.id, terminal);
|
|
3706
3829
|
this.addIdMapping(i7DataSchiene.id, connectivityNode.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHIENE);
|
|
3707
3830
|
}
|
|
3708
3831
|
catch (e) {
|
|
@@ -3717,41 +3840,63 @@ class ConverterIntegral7 {
|
|
|
3717
3840
|
}));
|
|
3718
3841
|
});
|
|
3719
3842
|
}
|
|
3720
|
-
convertKdrossel(cimModel, integral7,
|
|
3843
|
+
convertKdrossel(cimModel, integral7, stpSchienenID, defaultValuesConfig) {
|
|
3721
3844
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3722
3845
|
try {
|
|
3723
3846
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ)) {
|
|
3724
|
-
if (
|
|
3725
|
-
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),
|
|
3847
|
+
if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
|
|
3848
|
+
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));
|
|
3726
3849
|
for (const i7Data of result) {
|
|
3727
3850
|
const kdType = this.kdrosseltypen.get(i7Data.nametyp);
|
|
3851
|
+
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);
|
|
3852
|
+
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);
|
|
3853
|
+
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);
|
|
3728
3854
|
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);
|
|
3729
3855
|
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);
|
|
3730
3856
|
const connectivityNode = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.anschluss));
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
if (imax && imin) {
|
|
3857
|
+
let conductingEquip = undefined;
|
|
3858
|
+
if (iakt !== undefined && xne !== undefined || xne !== undefined && ur !== undefined || iakt !== undefined && ur !== undefined) {
|
|
3734
3859
|
/** PetersenCoil */
|
|
3735
3860
|
const petersenCoil = new PetersenCoil_1.PetersenCoil((0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname);
|
|
3736
|
-
|
|
3737
|
-
|
|
3861
|
+
if (xne !== undefined && ur !== undefined) {
|
|
3862
|
+
petersenCoil.xGroundNominal = xne;
|
|
3863
|
+
petersenCoil.nominalU = ur;
|
|
3864
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3865
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3866
|
+
}
|
|
3867
|
+
else if (iakt !== undefined && xne !== undefined) {
|
|
3868
|
+
petersenCoil.xGroundNominal = xne;
|
|
3869
|
+
petersenCoil.nominalU = iakt * xne * Math.pow(10, -3);
|
|
3870
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3871
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3872
|
+
}
|
|
3873
|
+
else if (iakt !== undefined && ur !== undefined) {
|
|
3874
|
+
petersenCoil.nominalU = ur;
|
|
3875
|
+
petersenCoil.xGroundNominal = petersenCoil.nominalU * Math.pow(10, 3) / iakt;
|
|
3876
|
+
petersenCoil.xGroundMax = (0, parser_utils_1.isNumericI7)(imin) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imin : undefined;
|
|
3877
|
+
petersenCoil.xGroundMin = (0, parser_utils_1.isNumericI7)(imax) && (0, parser_utils_1.isNumericI7)(petersenCoil.nominalU) ? petersenCoil.nominalU * Math.pow(10, 3) / imax : undefined;
|
|
3878
|
+
}
|
|
3879
|
+
petersenCoil.mode = PetersenCoilModeKind_1.PetersenCoilModeKind.automaticPositioning;
|
|
3738
3880
|
this.addIdMapping(i7Data.id, petersenCoil.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
|
|
3739
3881
|
conductingEquip = petersenCoil;
|
|
3740
3882
|
}
|
|
3741
3883
|
else {
|
|
3742
3884
|
/** GroundingImpedance */
|
|
3743
3885
|
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);
|
|
3744
|
-
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);
|
|
3745
|
-
groundingImpedance.x =
|
|
3886
|
+
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);
|
|
3887
|
+
groundingImpedance.x = xne;
|
|
3746
3888
|
integral7.sternPunktImpModel.groundingImpedances.set(groundingImpedance.mrid, groundingImpedance);
|
|
3747
|
-
integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
|
|
3889
|
+
//integral7.sternPunktImpModel.junctionUUIDstpImp.set(junctionUUID, groundingImpedance);
|
|
3748
3890
|
this.addIdMapping(i7Data.id, groundingImpedance.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_IMPEDANZ);
|
|
3749
3891
|
conductingEquip = groundingImpedance;
|
|
3750
3892
|
}
|
|
3751
|
-
//
|
|
3893
|
+
// Create connection for PetersenCoil and GroundingImpedance connected with 'Sternpunktschiene'. PetersenCoil and GroundingImpedance connected to 'Sternpunktknoten' is connected during convertTrafo2w and convertTrafo3w
|
|
3752
3894
|
if (connectivityNode) {
|
|
3753
|
-
|
|
3754
|
-
|
|
3895
|
+
this.createConnection(cimModel, conductingEquip, connectivityNode, PhaseCode_1.PhaseCode.N, true);
|
|
3896
|
+
integral7.sternPunktImpModel.stpSchieneUUIDStpImp.set(connectivityNode.getUUID(), conductingEquip);
|
|
3897
|
+
}
|
|
3898
|
+
else {
|
|
3899
|
+
integral7.sternPunktImpModel.stpKnotenStpImp.set(i7Data.anschluss, conductingEquip);
|
|
3755
3900
|
}
|
|
3756
3901
|
}
|
|
3757
3902
|
}
|
|
@@ -3772,26 +3917,37 @@ class ConverterIntegral7 {
|
|
|
3772
3917
|
});
|
|
3773
3918
|
}
|
|
3774
3919
|
/** Den Schaltzuszand bestimmen und zuvor angelegten (convertSternpunktSchienen) Terminalinstanz zuweisen. */
|
|
3775
|
-
convertStpSchaltelemente(integral7, stpSchienenID) {
|
|
3920
|
+
convertStpSchaltelemente(cimModel, integral7, stpSchienenID) {
|
|
3776
3921
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
3777
3922
|
try {
|
|
3778
3923
|
if (this.isTableAvailable(integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER)) {
|
|
3779
|
-
if (stpSchienenID.length) {
|
|
3924
|
+
if (stpSchienenID !== undefined && stpSchienenID.length > 0) {
|
|
3780
3925
|
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));
|
|
3781
3926
|
for (const i7Data of result) {
|
|
3782
|
-
const
|
|
3783
|
-
|
|
3784
|
-
|
|
3927
|
+
const connectivityNodeAbcn = cimModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.aknoten)); //connection point of 'PowerTransformerEnd' is assigned during convertTrafo2w and convertTrafo3w
|
|
3928
|
+
const connectivityNodeN = integral7.sternPunktImpModel.connectivityNodes.get(this.integralID2UUID.get(i7Data.eknoten)); //connection point of 'Sternpunktschiene'
|
|
3929
|
+
if (connectivityNodeN != undefined) {
|
|
3930
|
+
const schaltzustand = (0, parser_utils_1.convertToBooleanI7)(i7Data.schaltzustand);
|
|
3931
|
+
const keyGroundDisconnector = cim_class_names_1.ClassNames.GroundDisconnector + i7Data.aknoten + i7Data.eknoten;
|
|
3932
|
+
const uuidGroundDisconnector = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.GroundDisconnector, this.configUuid, keyGroundDisconnector);
|
|
3933
|
+
const groundDisconnector = new GroundDisconnector_1.GroundDisconnector(uuidGroundDisconnector, i7Data.bezeichner, i7Data.kurzname, i7Data.kommentar, schaltzustand, false);
|
|
3934
|
+
//Set connection to ConnectivityNode at neutral side to GroundingImpedance or PetersenCoil
|
|
3935
|
+
this.createConnection(cimModel, groundDisconnector, connectivityNodeN, PhaseCode_1.PhaseCode.N, true);
|
|
3936
|
+
//cimModel.addGroundDisconnector(groundDisconnector);
|
|
3937
|
+
integral7.sternPunktImpModel.groundDisconnectors.set(groundDisconnector.getUUID(), groundDisconnector);
|
|
3938
|
+
/** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3939
|
+
integral7.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.set(i7Data.id, groundDisconnector.getUUID());
|
|
3940
|
+
/** SchaltelementID mit GroundDisconnector UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3941
|
+
integral7.sternPunktImpModel.groundDisconnectorsUUIDsStpSchieneUUID.set(groundDisconnector.getUUID(), connectivityNodeN.getUUID());
|
|
3942
|
+
/** SternpunktknotenID mit GroundDisconnector UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
|
|
3943
|
+
integral7.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.set(groundDisconnector.getUUID(), i7Data.eknoten);
|
|
3944
|
+
/** set connection to terminal of powertransformerend*/
|
|
3945
|
+
let earthFaultCompensator = integral7.sternPunktImpModel.stpSchieneUUIDStpImp.get(connectivityNodeN.getUUID());
|
|
3946
|
+
integral7.sternPunktImpModel.groundDisconnectorUUIDstpImp.set(groundDisconnector.getUUID(), earthFaultCompensator);
|
|
3947
|
+
this.addIdMapping(i7Data.id, groundDisconnector.mrid, integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER);
|
|
3785
3948
|
}
|
|
3786
|
-
/** SchaltelementID mit Junstion UUID verknüpfen, um Topologie des netz_knoten1pelem-Elements herstellen zu können */
|
|
3787
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.id, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
|
|
3788
|
-
/** Sternpunktknoten mit Junstion UUID verknüpfen, um Topologie der AssetElemente herstellen zu können */
|
|
3789
|
-
integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.set(i7Data.aknoten, integral7.sternPunktImpModel.stpSchieneJunctionUUIDs.get(i7Data.eknoten));
|
|
3790
3949
|
}
|
|
3791
3950
|
}
|
|
3792
|
-
else {
|
|
3793
|
-
this.logger.debug(`StpSchaltelemente Keine Sternpunktschienen vorhanden.`);
|
|
3794
|
-
}
|
|
3795
3951
|
}
|
|
3796
3952
|
else {
|
|
3797
3953
|
this.logger.debug(`Tabelle ${integral_sql_1.Integral7TableNames.STERNPUNKT_SCHALTER} ist nicht vorhanden.`);
|
|
@@ -3909,6 +4065,7 @@ class ConverterIntegral7 {
|
|
|
3909
4065
|
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));
|
|
3910
4066
|
}
|
|
3911
4067
|
for (const i7Data of result) {
|
|
4068
|
+
let lineNames = new Map;
|
|
3912
4069
|
/** Alle Stromkreisabschnitte */
|
|
3913
4070
|
const stromkreisabschnitte = leitungStromkreisabschnitt.filter(elem => elem.leitung === i7Data.id);
|
|
3914
4071
|
if (!((stromkreisabschnitte === null || stromkreisabschnitte === void 0 ? void 0 : stromkreisabschnitte.length) > 0))
|
|
@@ -3932,8 +4089,9 @@ class ConverterIntegral7 {
|
|
|
3932
4089
|
'-' +
|
|
3933
4090
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.stkabname);
|
|
3934
4091
|
/** Wenn kein Stromkreisobjekt vorhanden ist, dann erstelle ein neues Objekt. */
|
|
3935
|
-
const uuidString =
|
|
3936
|
-
|
|
4092
|
+
const uuidString = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.Line, this.configUuid, i7Schluessel);
|
|
4093
|
+
let lineName = createLineName(i7Data, uuidString, lineNames);
|
|
4094
|
+
const line = new AMPRIONLine_1.AMPRIONLine(uuidString, lineName);
|
|
3937
4095
|
line.ukz = i7Data.ukz;
|
|
3938
4096
|
line.key = i7Schluessel;
|
|
3939
4097
|
let acLineSegments = [];
|
|
@@ -3946,7 +4104,7 @@ class ConverterIntegral7 {
|
|
|
3946
4104
|
'-' +
|
|
3947
4105
|
(0, utils_2.ueberpruefeZeichenkette)(stk.bezeichner);
|
|
3948
4106
|
const uuid = (0, parser_utils_1.getUUID)(stk.custom_guid_0120 + stk.custom_guid_2137, this.objectMappingConfig.standardiseUuid);
|
|
3949
|
-
const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname,
|
|
4107
|
+
const acLineSegment = new INTEGRALACLineSegment_1.INTEGRALACLineSegment(uuid, stk.bezeichner, i7Data.stkabname, i7Data.kommentar);
|
|
3950
4108
|
const key = acLineSegment.getUUID();
|
|
3951
4109
|
const uuidWireObject = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.EVWireObject, this.configUuid, key);
|
|
3952
4110
|
acLineSegment.key = i7Schluessel;
|
|
@@ -4009,7 +4167,7 @@ class ConverterIntegral7 {
|
|
|
4009
4167
|
/**Connectivity Node to connect end of line and start of neighbouring line.*/
|
|
4010
4168
|
const key = acLineSegment1.getUUID() + acLineSegment2.getUUID();
|
|
4011
4169
|
const uuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.ConnectivityNode, this.configUuid, key);
|
|
4012
|
-
const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.
|
|
4170
|
+
const cn = new ConnectivityNode_1.ConnectivityNode(uuid, (0, util_create_1.createNotation)([acLineSegment1.getUUID().substring(0, 8), '_CN'], 32, false));
|
|
4013
4171
|
/**Connect end of aclinesegment i*/
|
|
4014
4172
|
cn.connectivityNodeContainer = acLineSegment1.equipmentContainer;
|
|
4015
4173
|
tmp_terminal = this.createConnection(cimModel, acLineSegment1, cn, PhaseCode_1.PhaseCode.ABC, true);
|
|
@@ -4068,7 +4226,6 @@ class ConverterIntegral7 {
|
|
|
4068
4226
|
/** In any case assign Georegion to aclinesegments */
|
|
4069
4227
|
let idx = 0;
|
|
4070
4228
|
while (idx < acLineSegments.length && !(line.subGeographicalRegion)) {
|
|
4071
|
-
let jdx = 0;
|
|
4072
4229
|
let values = acLineSegments[idx].terminals.values();
|
|
4073
4230
|
let tmp_terminal = values.next();
|
|
4074
4231
|
while (tmp_terminal.value && !(line.subGeographicalRegion)) {
|
|
@@ -4138,6 +4295,9 @@ class ConverterIntegral7 {
|
|
|
4138
4295
|
let dcLineNeutral = undefined;
|
|
4139
4296
|
const i7Schluessel = integral_prefix_1.HGUELEITUNG_PRAEFIX +
|
|
4140
4297
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
4298
|
+
if (dcLine.getUUID() === 'f125f0f3-a621-43e7-8af7-9873d52239a0') {
|
|
4299
|
+
const stop = true;
|
|
4300
|
+
}
|
|
4141
4301
|
/** operationMode der Anfangs- und Zielkopfstation setzen */
|
|
4142
4302
|
let converterStart = false;
|
|
4143
4303
|
let converterStartNeg = false;
|
|
@@ -4152,7 +4312,7 @@ class ConverterIntegral7 {
|
|
|
4152
4312
|
let dcNodeStartMiddle = undefined;
|
|
4153
4313
|
let dcNodeTargetMiddle = undefined;
|
|
4154
4314
|
//Parameter "guidp" is available for monopolar and bipolar dc systems. Thus create DCLineSegment with positive sign property in any case.
|
|
4155
|
-
const dcLineSegment = new DCLineSegment_1.
|
|
4315
|
+
const dcLineSegment = new DCLineSegment_1.INTEGRALDCLineSegment((0, parser_utils_1.getUUID)(i7Data.guidp, this.objectMappingConfig.standardiseUuid), i7Data.bezeichner, i7Data.kurzname, i7Schluessel);
|
|
4156
4316
|
dcLineSegmentSet.push(dcLineSegment);
|
|
4157
4317
|
let dcLineSegmentNeg = undefined;
|
|
4158
4318
|
let dcLineSegmentNeutral = undefined;
|
|
@@ -4161,19 +4321,21 @@ class ConverterIntegral7 {
|
|
|
4161
4321
|
dcLineSegment.capacitance = undefined;
|
|
4162
4322
|
dcLineSegment.inductance = undefined;
|
|
4163
4323
|
/**EQ: given directly by the INTEGRAL system model */
|
|
4164
|
-
dcLineSegment.resistance = (0, parser_utils_1.isNumericI7)(i7Data.rdc) ? (0, parser_utils_1.convertToNumberI7)(i7Data.rdc) : undefined;
|
|
4324
|
+
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;
|
|
4325
|
+
dcLineSegment.ur = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
4165
4326
|
dcLineSegment.equipmentContainer = dcLine;
|
|
4166
4327
|
//create second dcLineSegment in case this dcLine is a bipol.
|
|
4167
4328
|
if (bipole) {
|
|
4168
4329
|
const dcLineKey = dcLine.getUUID();
|
|
4169
4330
|
const dcLineUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
|
|
4170
4331
|
dcLineNeg = new DCLine_1.DCLine(dcLineUuid, i7Data.bezeichner);
|
|
4171
|
-
dcLineSegmentNeg = new DCLineSegment_1.
|
|
4332
|
+
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);
|
|
4172
4333
|
dcLineSegmentSet.push(dcLineSegmentNeg);
|
|
4173
4334
|
dcLineSegmentNeg.length = dcLineSegment.length;
|
|
4174
4335
|
dcLineSegmentNeg.capacitance = undefined;
|
|
4175
4336
|
dcLineSegmentNeg.inductance = undefined;
|
|
4176
|
-
dcLineSegmentNeg.resistance =
|
|
4337
|
+
dcLineSegmentNeg.resistance = dcLineSegment.resistance;
|
|
4338
|
+
dcLineSegmentNeg.ur = dcLineSegment.ur;
|
|
4177
4339
|
dcLineSegmentNeg.equipmentContainer = dcLineNeg;
|
|
4178
4340
|
}
|
|
4179
4341
|
//create metallic return
|
|
@@ -4181,12 +4343,13 @@ class ConverterIntegral7 {
|
|
|
4181
4343
|
const dcLineNeutralUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLine, this.configUuid, dcLineKey);
|
|
4182
4344
|
const dcLineSegmentUuid = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.DCLineSegment, this.configUuid, dcLineNeutralUuid);
|
|
4183
4345
|
dcLineNeutral = new DCLine_1.DCLine(dcLineNeutralUuid, (0, util_create_1.createNotation)([(0, utils_2.getName)(i7Data), '_mid', '_DCL']));
|
|
4184
|
-
dcLineSegmentNeutral = new DCLineSegment_1.
|
|
4346
|
+
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);
|
|
4185
4347
|
dcLineSegmentSet.push(dcLineSegmentNeutral);
|
|
4186
4348
|
dcLineSegmentNeutral.length = dcLineSegment.length;
|
|
4187
4349
|
dcLineSegmentNeutral.capacitance = undefined;
|
|
4188
4350
|
dcLineSegmentNeutral.inductance = undefined;
|
|
4189
|
-
dcLineSegmentNeutral.resistance =
|
|
4351
|
+
dcLineSegmentNeutral.resistance = dcLineSegment.resistance;
|
|
4352
|
+
dcLineSegmentNeutral.ur = dcLineSegment.ur;
|
|
4190
4353
|
dcLineSegmentNeutral.equipmentContainer = dcLineNeutral;
|
|
4191
4354
|
//get ACDCConverter at both ends of DCLine
|
|
4192
4355
|
const acDCConverterStart = cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) ? cimModel.getObject(this.integralID2UUID.get(i7Data.anetzobjekt)) : undefined;
|
|
@@ -4364,8 +4527,10 @@ class ConverterIntegral7 {
|
|
|
4364
4527
|
const equipmentKey = dcTerminal.getUUID();
|
|
4365
4528
|
for (const elem of dcTerminal.dcNode.dcTerminals.values()) {
|
|
4366
4529
|
if (elem instanceof ACDCConverterDCTerminal_1.ACDCConverterDCTerminal) {
|
|
4367
|
-
const pR = elem.dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
|
|
4368
|
-
const uR = acDCConverterStart.ratedUdc; //voltage in kV
|
|
4530
|
+
//const pR: number = (elem as ACDCConverterDCTerminal).dCConductingEquipment.baseS; //apparent power is set equal to active power in MVA
|
|
4531
|
+
//const uR: number = acDCConverterStart.ratedUdc; //voltage in kV
|
|
4532
|
+
const pR = (0, parser_utils_1.isNumericI7)(i7Data.pr) ? (0, parser_utils_1.convertToNumberI7)(i7Data.pr) : undefined;
|
|
4533
|
+
const uR = (0, parser_utils_1.isNumericI7)(i7Data.ur) ? (0, parser_utils_1.convertToNumberI7)(i7Data.ur) : undefined;
|
|
4369
4534
|
if (pR != undefined && uR != undefined) {
|
|
4370
4535
|
let ir = (pR * Math.pow(10, 6)) / (uR * Math.pow(10, 3)); //assumption: pr is BaseS
|
|
4371
4536
|
if (bipole) {
|
|
@@ -4425,6 +4590,7 @@ class ConverterIntegral7 {
|
|
|
4425
4590
|
typTrafo.r0kr2 = i7Data.r0kr2;
|
|
4426
4591
|
typTrafo.r00r1 = i7Data.r00r1;
|
|
4427
4592
|
typTrafo.r00r2 = i7Data.r00r2;
|
|
4593
|
+
typTrafo.s_dauer = i7Data.s_dauer;
|
|
4428
4594
|
const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
|
|
4429
4595
|
typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
|
|
4430
4596
|
this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
|
|
@@ -4476,6 +4642,9 @@ class ConverterIntegral7 {
|
|
|
4476
4642
|
typTrafo.r0kr2 = i7Data.r0kr2;
|
|
4477
4643
|
typTrafo.r00r1 = i7Data.r00r1;
|
|
4478
4644
|
typTrafo.r00r2 = i7Data.r00r2;
|
|
4645
|
+
typTrafo.s_dauer_1 = i7Data.s_dauer_1;
|
|
4646
|
+
typTrafo.s_dauer_2 = i7Data.s_dauer_2;
|
|
4647
|
+
typTrafo.s_dauer_3 = i7Data.s_dauer_3;
|
|
4479
4648
|
const typWicklung1 = new INTEGRALPowerTransformerEndInfo_1.INTEGRALPowerTransformerEndInfo(common_utils_1.CommonUtils.generateUUID());
|
|
4480
4649
|
typWicklung1.ratedS = new ApparentPower_1.ApparentPower(i7Data.sr1, UnitMultiplier_1.UnitMultiplier.m, UnitSymbol_1.UnitSymbol.VA);
|
|
4481
4650
|
this.setTransformerEndInfoProperties(typWicklung1, i7Data, 1);
|
|
@@ -4594,30 +4763,18 @@ class ConverterIntegral7 {
|
|
|
4594
4763
|
integral_prefix_1.TRAFO2W_PRAEFIX +
|
|
4595
4764
|
(0, utils_2.ueberpruefeZeichenkette)(i7Data.bezeichner);
|
|
4596
4765
|
powerTransformer.key = i7Schluessel;
|
|
4597
|
-
if (powerTransformer.getUUID() === '
|
|
4598
|
-
let stop = true;
|
|
4599
|
-
} // kein Typ in D4
|
|
4600
|
-
if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') {
|
|
4766
|
+
if (powerTransformer.getUUID() === '21def4394e814e77b3f25acbad7bda16') {
|
|
4601
4767
|
let stop = true;
|
|
4602
|
-
}
|
|
4603
|
-
if (powerTransformer.getUUID() === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') {
|
|
4604
|
-
let stop = true;
|
|
4605
|
-
} //kein Typ in BE
|
|
4606
|
-
if (powerTransformer.getUUID() === '11e7be86-8bb7-41ba-898a-74cd5e8efbb9') {
|
|
4607
|
-
let stop = true;
|
|
4608
|
-
} //Typ in D7
|
|
4768
|
+
}
|
|
4609
4769
|
if (powerTransformer.getUUID() === '8eca3fedd32c49369f8946ac4ce70e17') { //Stufenstellerkonvertierung fehlgeschlagen
|
|
4610
4770
|
let stop = true;
|
|
4611
4771
|
}
|
|
4612
4772
|
if (powerTransformer.getUUID() === 'b9d8bd48e1554af7b6153c1f7da052e1') {
|
|
4613
4773
|
let stop = true;
|
|
4614
4774
|
} //Phasenschieber zu falscher Winkel und falsches stepIncrement.
|
|
4615
|
-
if (powerTransformer.getUUID() === '
|
|
4775
|
+
if (powerTransformer.getUUID() === '012416f2d9584971baa93360fcf40be2') { //pkr, ukr, ... konnte nicht aus Typ ermittelt werden.
|
|
4616
4776
|
let stop = true;
|
|
4617
4777
|
} //Längsregeltransformator mit symmetrischem Phasenschieber.
|
|
4618
|
-
if (i7Data.nametyp) {
|
|
4619
|
-
const stop = true;
|
|
4620
|
-
}
|
|
4621
4778
|
const powerTransformerInfo = this.cimModelDefault.getPowerTransformerInfoByName(i7Data.nametyp);
|
|
4622
4779
|
if (powerTransformerInfo) {
|
|
4623
4780
|
facility.setAssetInfo(powerTransformerInfo);
|
|
@@ -4635,12 +4792,13 @@ class ConverterIntegral7 {
|
|
|
4635
4792
|
// Wicklung 1
|
|
4636
4793
|
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}`);
|
|
4637
4794
|
powerTransformerEnd1.endNumber = 1;
|
|
4638
|
-
const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo,
|
|
4639
|
-
const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo,
|
|
4795
|
+
const pkr = (0, utils_2.getPkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
|
|
4796
|
+
const ukr = (0, utils_2.getUkrTrafo)(i7Data, powerTransformerInfo, undefined, false);
|
|
4640
4797
|
const sr = (0, utils_2.getSrTrafo)(i7Data, powerTransformerInfo, powerTransformerEnd1.endNumber, false);
|
|
4641
4798
|
const ur = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
|
|
4642
4799
|
const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
|
|
4643
|
-
const
|
|
4800
|
+
const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, false);
|
|
4801
|
+
const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, false);
|
|
4644
4802
|
// P0 Lastverluste im I7 Modell p_leer
|
|
4645
4803
|
const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
|
|
4646
4804
|
// Leerlaufverluste
|
|
@@ -4688,7 +4846,7 @@ class ConverterIntegral7 {
|
|
|
4688
4846
|
const startTerminal = start ? this.createConnection(cimModel, powerTransformer, start, PhaseCode.ABC, true, 1) : undefined;*/
|
|
4689
4847
|
if (!startTerminal)
|
|
4690
4848
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Anfangsknoten.`);
|
|
4691
|
-
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7,
|
|
4849
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, startTerminal, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig);
|
|
4692
4850
|
/**Add boundary equivalent injection if terminal is connected to boudary point. */
|
|
4693
4851
|
let equivalentInjection = undefined;
|
|
4694
4852
|
if (startTerminal) {
|
|
@@ -4720,7 +4878,7 @@ class ConverterIntegral7 {
|
|
|
4720
4878
|
const zielTerminal = this.createBoundaryConnection(frame, powerTransformer, i7Data.eknoten, PhaseCode_1.PhaseCode.ABC);
|
|
4721
4879
|
if (!zielTerminal)
|
|
4722
4880
|
this.logger.debug(`PowerTransformer2W ${i7Data.id} ${powerTransformer.mrid} besitzt keinen Zielknoten.`);
|
|
4723
|
-
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7,
|
|
4881
|
+
this.setPowerTransformerEndProperties(frame, powerTransformerEnd2, powerTransformer, zielTerminal, sternpunktKnotenMap, integral7, sdauer2, i7Data, defaultValuesConfig);
|
|
4724
4882
|
/**Add boundary equivalent injection if terminal is connected to boudary point. */
|
|
4725
4883
|
if (zielTerminal) {
|
|
4726
4884
|
let bdf = this.getConnectedBoundaryModel(this.integralID2UUID.get(i7Data.aknoten));
|
|
@@ -4735,9 +4893,6 @@ class ConverterIntegral7 {
|
|
|
4735
4893
|
powerTransformerEnd1.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd1.endNumber);
|
|
4736
4894
|
powerTransformerEnd2.connectionKind = (0, utils_2.getSchaltgruppe)(schaltgruppe, powerTransformerEnd2.endNumber, powerTransformerEnd2.grounded);
|
|
4737
4895
|
powerTransformerEnd2.phaseAngleClock = (0, utils_2.getSchaltgruppeAngleClock)(schaltgruppe, powerTransformerEnd2.endNumber);
|
|
4738
|
-
if (uuid === '402aec99-ba2c-42fa-b4ed-b4928901f47b') {
|
|
4739
|
-
let stop = true;
|
|
4740
|
-
}
|
|
4741
4896
|
// NullSystem Impedanzen (nur Reaktanzen)
|
|
4742
4897
|
let starconnectionCount = (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) <= 1 ? (0, utils_2.getGroundingCountFromWindingConnection)(powerTransformer) : 1;
|
|
4743
4898
|
const retVal = (0, utils_2.calculateComplexZeroSequImpedanzenTrafo)([r0kr1, x0kr1, r0kr2, x0kr2], [r00r1, x00r1, r00r2, x00r2], [ur, ur2], starconnectionCount, powerTransformer);
|
|
@@ -4750,7 +4905,7 @@ class ConverterIntegral7 {
|
|
|
4750
4905
|
powerTransformerEnd2.x0 = zeroSequImpedanzWx.x02;
|
|
4751
4906
|
powerTransformerEnd2.r0 = zeroSequImpedanzWx.r02;
|
|
4752
4907
|
/** Transormator Anschlusspunkte nach Spannungsebene sortieren */
|
|
4753
|
-
this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
4908
|
+
//this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
4754
4909
|
// TODO
|
|
4755
4910
|
/** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
|
|
4756
4911
|
* da sonst die Wicklungsnummern nicht mehr übereinstimmen könnten */
|
|
@@ -4824,6 +4979,9 @@ class ConverterIntegral7 {
|
|
|
4824
4979
|
for (const i7Data of result) {
|
|
4825
4980
|
const sternpunktKnotenMap = new Map();
|
|
4826
4981
|
const uuid = (0, parser_utils_1.getUUID)(i7Data.guid, this.objectMappingConfig.standardiseUuid);
|
|
4982
|
+
if (uuid === 'b81485dd-5115-4241-b31a-c87a3eec9803' || uuid === '4eadc602-7dc5-41e4-bb8b-38993c03a80a') {
|
|
4983
|
+
const stop = true;
|
|
4984
|
+
}
|
|
4827
4985
|
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);
|
|
4828
4986
|
const substation = cimModel.getSubstation(this.integralID2UUID.get(i7Data.standort));
|
|
4829
4987
|
if (substation) {
|
|
@@ -4874,9 +5032,9 @@ class ConverterIntegral7 {
|
|
|
4874
5032
|
const ur1 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 1);
|
|
4875
5033
|
const ur2 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 2);
|
|
4876
5034
|
const ur3 = (0, utils_2.getUrTrafo)(i7Data, powerTransformerInfo, 3);
|
|
4877
|
-
const sdauer1 = (0,
|
|
4878
|
-
const sdauer2 = (0,
|
|
4879
|
-
const sdauer3 = (0,
|
|
5035
|
+
const sdauer1 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 1, true);
|
|
5036
|
+
const sdauer2 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 2, true);
|
|
5037
|
+
const sdauer3 = (0, utils_2.getSdauerTrafo)(i7Data, powerTransformerInfo, 3, true);
|
|
4880
5038
|
//Leerlaufverluste in kW
|
|
4881
5039
|
const pLeer = (0, utils_2.getTrafoPleer)(i7Data, powerTransformerInfo);
|
|
4882
5040
|
// Leerlaufstrom bezogen auf Wicklung mit dem grössten Sr in %
|
|
@@ -4931,7 +5089,7 @@ class ConverterIntegral7 {
|
|
|
4931
5089
|
powerTransformerEnd1.r = impedanzW1.r;
|
|
4932
5090
|
powerTransformerEnd1.x = impedanzW1.x;
|
|
4933
5091
|
powerTransformerEnd1.g = impedanzW1.g;
|
|
4934
|
-
powerTransformerEnd1.b = impedanzW1.b;
|
|
5092
|
+
powerTransformerEnd1.b = -1 * impedanzW1.b;
|
|
4935
5093
|
powerTransformerEnd1.ratedU = ur1;
|
|
4936
5094
|
powerTransformerEnd1.ratedS = sr1;
|
|
4937
5095
|
this.setPowerTransformerEndProperties(frame, powerTransformerEnd1, powerTransformer, terminal1, sternpunktKnotenMap, integral7, sdauer1, i7Data, defaultValuesConfig, trafoWicklungen);
|
|
@@ -4978,7 +5136,7 @@ class ConverterIntegral7 {
|
|
|
4978
5136
|
powerTransformerEnd2.r = impedanzW2.r;
|
|
4979
5137
|
powerTransformerEnd2.x = impedanzW2.x;
|
|
4980
5138
|
powerTransformerEnd2.g = impedanzW2.g;
|
|
4981
|
-
powerTransformerEnd2.b = impedanzW2.b;
|
|
5139
|
+
powerTransformerEnd2.b = -1 * impedanzW2.b;
|
|
4982
5140
|
powerTransformerEnd2.ratedS = sr2;
|
|
4983
5141
|
powerTransformerEnd2.ratedU = ur2;
|
|
4984
5142
|
powerTransformerEnd2.powerTransformer = powerTransformer;
|
|
@@ -5026,7 +5184,7 @@ class ConverterIntegral7 {
|
|
|
5026
5184
|
powerTransformerEnd3.r = impedanzW3.r;
|
|
5027
5185
|
powerTransformerEnd3.x = impedanzW3.x;
|
|
5028
5186
|
powerTransformerEnd3.g = impedanzW3.g;
|
|
5029
|
-
powerTransformerEnd3.b = impedanzW3.b;
|
|
5187
|
+
powerTransformerEnd3.b = -1 * impedanzW3.b;
|
|
5030
5188
|
powerTransformerEnd3.ratedS = sr3;
|
|
5031
5189
|
powerTransformerEnd3.ratedU = ur3;
|
|
5032
5190
|
powerTransformerEnd3.powerTransformer = powerTransformer;
|
|
@@ -5058,6 +5216,15 @@ class ConverterIntegral7 {
|
|
|
5058
5216
|
powerTransformerEnd3.r0 = zeroSequImpedanzWx.r03;
|
|
5059
5217
|
// Transormator Anschlusspunkte nach Spannungsebene sortieren
|
|
5060
5218
|
this.sortTransformerEnd(powerTransformer, 'ratedU', 'desc');
|
|
5219
|
+
// Set grounding for autotransformer
|
|
5220
|
+
const pTEnds = powerTransformer.getPowerTransformerEnd().filter(elem => elem.connectionKind === 'A');
|
|
5221
|
+
if (pTEnds.length > 0) {
|
|
5222
|
+
if (pTEnds.filter(elem => elem.grounded === true).length > 0) {
|
|
5223
|
+
for (const end of pTEnds) {
|
|
5224
|
+
end.grounded = true;
|
|
5225
|
+
}
|
|
5226
|
+
}
|
|
5227
|
+
}
|
|
5061
5228
|
//TODO
|
|
5062
5229
|
/** Stufenschalter werden vor der Sortierung der Wicklung nach der Spannungsebene angelegt,
|
|
5063
5230
|
* da sonst die Wicklungsnummern, nicht mehr übereinstimmen könnten */
|
|
@@ -5252,10 +5419,8 @@ class ConverterIntegral7 {
|
|
|
5252
5419
|
sortTransformerEnd(powerTransformer, sortProperty, order) {
|
|
5253
5420
|
// Store current order of power transformer ends.
|
|
5254
5421
|
let winding_guids = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5255
|
-
let winding_guids_fixed = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5256
5422
|
for (let i = 0; i < powerTransformer.powerTransformerEnd.length; i++) {
|
|
5257
5423
|
winding_guids[i] = powerTransformer.powerTransformerEnd[i].getUUID();
|
|
5258
|
-
winding_guids_fixed[i] = powerTransformer.powerTransformerEnd[i].getUUID();
|
|
5259
5424
|
}
|
|
5260
5425
|
//Sort: This step maybe changes power transformer ends order for this power transformer.
|
|
5261
5426
|
powerTransformer.powerTransformerEnd.sort(function (w1, w2) {
|
|
@@ -5279,8 +5444,19 @@ class ConverterIntegral7 {
|
|
|
5279
5444
|
// const isNull = true;
|
|
5280
5445
|
//}
|
|
5281
5446
|
}
|
|
5447
|
+
let tmpMapping = new Array(powerTransformer.powerTransformerEnd.length);
|
|
5448
|
+
for (let i = 0; i < winding_guids.length; i++) {
|
|
5449
|
+
tmpMapping[i] = (winding_guids.indexOf(powerTransformer.powerTransformerEnd[i].getUUID()) + 1).toString();
|
|
5450
|
+
}
|
|
5451
|
+
return tmpMapping; //return mapping
|
|
5282
5452
|
}
|
|
5283
5453
|
setACLineSegmentProperties(defaultModel, cimModel, acLineSegment, data, cable, defaultValuesConfig) {
|
|
5454
|
+
if ((0, parser_utils_1.isBooleanI7)(data.ltgmonitoring) && (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring)) {
|
|
5455
|
+
acLineSegment.ltgmonitoring = (0, parser_utils_1.convertToBooleanI7)(data.ltgmonitoring);
|
|
5456
|
+
}
|
|
5457
|
+
else {
|
|
5458
|
+
acLineSegment.ltgmonitoring = false;
|
|
5459
|
+
}
|
|
5284
5460
|
if ((0, parser_utils_1.isBooleanI7)(data.flag_impedanzlos) && (0, parser_utils_1.convertToBooleanI7)(data.flag_impedanzlos)) {
|
|
5285
5461
|
data.flag_impedanzlos = 1;
|
|
5286
5462
|
}
|
|
@@ -5381,8 +5557,8 @@ class ConverterIntegral7 {
|
|
|
5381
5557
|
* @param equipmentKey Generierung einer persistenter UUID v5. Für PowerTransformer wird UUID des PowerTransformerEnds verwendet. Andernfalls die UUID des ConductingEquipments
|
|
5382
5558
|
* */
|
|
5383
5559
|
setConductingEquipmentOperationalLimit(cimModel, name, terminal, equipmentKey, limit, limitType, igrenz) {
|
|
5384
|
-
if ((limit !== undefined && limit > 0)
|
|
5385
|
-
return;
|
|
5560
|
+
if (!(limit !== undefined && limit > 0) || !(igrenz !== undefined && igrenz > 0))
|
|
5561
|
+
return; //if 'limit' and 'igrenz' is not given leave
|
|
5386
5562
|
/** OperationalLimitSet erstellen */
|
|
5387
5563
|
const operationalLimitSetKey = terminal.getUUID() + equipmentKey;
|
|
5388
5564
|
const operationalLimitSetUUID = common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.OperationalLimitSet, this.configUuid, operationalLimitSetKey);
|
|
@@ -5467,6 +5643,9 @@ class ConverterIntegral7 {
|
|
|
5467
5643
|
terminal.name = (0, util_create_1.createNotation)([conductingEquipment.getUUID().substring(0, 8), '_' + terminal.name], 32, true);
|
|
5468
5644
|
}
|
|
5469
5645
|
}
|
|
5646
|
+
if (terminal !== undefined && terminal.getUUID() === '7564eef1-6cd6-59c2-957e-825c6593fdf2') {
|
|
5647
|
+
const stop = true;
|
|
5648
|
+
}
|
|
5470
5649
|
return terminal;
|
|
5471
5650
|
}
|
|
5472
5651
|
createBoundaryConnection(frame, conductingEquipment, i7ObjectID, phase) {
|
|
@@ -5984,7 +6163,7 @@ class ConverterIntegral7 {
|
|
|
5984
6163
|
// Topologie
|
|
5985
6164
|
powerTransformerEnd.terminal = terminal;
|
|
5986
6165
|
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);
|
|
5987
|
-
if (powerTransformer.getUUID() === '
|
|
6166
|
+
if (powerTransformer.getUUID() === '3c3928be-e691-453d-8216-df30bd11845e') {
|
|
5988
6167
|
const stop = true;
|
|
5989
6168
|
}
|
|
5990
6169
|
let isTrafo2w = i7Data.trafowicklung3w3 === undefined ? true : false;
|
|
@@ -6040,36 +6219,34 @@ class ConverterIntegral7 {
|
|
|
6040
6219
|
}
|
|
6041
6220
|
convertTapChangers(i7Data, transformerEnds, cimModel, transformerinfo, connectivityNode, spannungsband) {
|
|
6042
6221
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
6043
|
-
|
|
6044
|
-
|
|
6222
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'c0ba4bd1102c4f4fa4fc66865a60f462') { //Zeile53 - Typ Meeden'
|
|
6223
|
+
let stop = true;
|
|
6224
|
+
}
|
|
6225
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '2e8057ed695147f9903023cb5e9d4a0c') { //Zeile55 - SR und LR'
|
|
6226
|
+
let stop = true;
|
|
6045
6227
|
}
|
|
6046
|
-
if(getUUID(i7Data.guid) === '
|
|
6047
|
-
let stop = true; DONE
|
|
6048
|
-
}*/
|
|
6049
|
-
/*if(getUUID(i7Data.guid)=== 'CFDAA56A-A0DA-4C5B-92CC-21138B6D6D07'){ //Standard LR
|
|
6050
|
-
let stop = true;
|
|
6051
|
-
}*/
|
|
6052
|
-
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '00ebe00e-50fa-4fc0-9ed6-557528a9b460') { //Zeile53 - Typ Meeden'
|
|
6228
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid).toLowerCase() === 'd7a25b80-b439-48a0-b67e-108903063237') { //Zeile81 - SR statt LR'
|
|
6053
6229
|
let stop = true;
|
|
6054
6230
|
}
|
|
6055
|
-
|
|
6056
|
-
let stop = true;
|
|
6057
|
-
}*/
|
|
6058
|
-
if ((0, parser_utils_1.getUUID)(i7Data.guid) === '515508dc-5982-4686-ad26-08d39db91421') { //Zeile81 - SR statt LR'
|
|
6231
|
+
if ((0, parser_utils_1.getUUID)(i7Data.guid) === 'b81485dd-5115-4241-b31a-c87a3eec9803') {
|
|
6059
6232
|
let stop = true;
|
|
6060
6233
|
}
|
|
6061
|
-
/*if(getUUID(i7Data.guid) === '5ec82d14-ee64-43b6-86ff-c7615d96f7ad'){ //Zeile58
|
|
6062
|
-
let stop = true;
|
|
6063
|
-
}*/
|
|
6064
6234
|
let ratioPhaseTapChangerPresent = false;
|
|
6065
6235
|
//Check if tap changer exists. (power transformer winding)
|
|
6066
6236
|
let tapChangerNumberI7 = []; //Number of tap changer
|
|
6067
6237
|
let tapChangerNumber = [];
|
|
6068
|
-
//
|
|
6238
|
+
//collect information about tap changers (without type)
|
|
6069
6239
|
for (let tapChangerPos = 1; tapChangerPos <= 2; tapChangerPos++) {
|
|
6070
6240
|
if ((0, parser_utils_1.isNumericI7)(i7Data[`gestufte_seite_s${tapChangerPos}`])) {
|
|
6071
|
-
|
|
6072
|
-
|
|
6241
|
+
if (i7Data[`gestufte_seite_s${tapChangerPos}`] !== 0) {
|
|
6242
|
+
tapChangerNumberI7.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
6243
|
+
tapChangerNumber.push(i7Data[`gestufte_seite_s${tapChangerPos}`]);
|
|
6244
|
+
}
|
|
6245
|
+
else if (i7Data[`gestufte_seite_s${tapChangerPos}`] === 0) {
|
|
6246
|
+
const controlledSide = getHVSideNumber(transformerEnds);
|
|
6247
|
+
tapChangerNumberI7.push(controlledSide);
|
|
6248
|
+
tapChangerNumber.push(controlledSide);
|
|
6249
|
+
}
|
|
6073
6250
|
}
|
|
6074
6251
|
}
|
|
6075
6252
|
//collect information about tap changers (type)
|
|
@@ -6084,15 +6261,15 @@ class ConverterIntegral7 {
|
|
|
6084
6261
|
//If there is a phase tap changer and a ratio tap changer reorder the tap changers to process ratio tap changer first.
|
|
6085
6262
|
let index = undefined;
|
|
6086
6263
|
if (tapChangerNumberI7.length > 1) {
|
|
6087
|
-
for (let
|
|
6264
|
+
for (let i = 0; i < tapChangerNumberI7.length; i++) {
|
|
6088
6265
|
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
6089
|
-
const transformerEndInfo = (_d = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _d === void 0 ? void 0 : _d.find(elem => elem.endNumber ===
|
|
6266
|
+
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]);
|
|
6090
6267
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
6091
|
-
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${
|
|
6092
|
-
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${
|
|
6268
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6269
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6093
6270
|
: (_e = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _e === void 0 ? void 0 : _e.value;
|
|
6094
|
-
if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) &&
|
|
6095
|
-
index =
|
|
6271
|
+
if (!((0, parser_utils_1.isNumericI7)(angle) && (0, parser_utils_1.convertToNumberI7)(angle) != 0 || spezialRegelung) && i > 0) {
|
|
6272
|
+
index = i; //This only works for two tapchanger definitions per power transformer
|
|
6096
6273
|
ratioPhaseTapChangerPresent = true;
|
|
6097
6274
|
}
|
|
6098
6275
|
}
|
|
@@ -6102,15 +6279,15 @@ class ConverterIntegral7 {
|
|
|
6102
6279
|
tapChangerNumber[1] = tapChangerNumberI7[0];
|
|
6103
6280
|
}
|
|
6104
6281
|
/** I7 Modell max. 2 Stufenschalter */
|
|
6105
|
-
for (let
|
|
6282
|
+
for (let i = 0; i < tapChangerNumber.length; i++) {
|
|
6106
6283
|
/**
|
|
6107
6284
|
* 0 Oberspannungsseite
|
|
6108
6285
|
* 1 Seite 1
|
|
6109
6286
|
* 2 Seite 2
|
|
6110
6287
|
* - Stufenschalter nicht vorhanden
|
|
6111
6288
|
*/
|
|
6112
|
-
let entryI7 =
|
|
6113
|
-
let gestufteSeite = tapChangerNumberI7[
|
|
6289
|
+
let entryI7 = i + 1;
|
|
6290
|
+
let gestufteSeite = tapChangerNumberI7[i];
|
|
6114
6291
|
const transformerEndInfo = (_f = transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.transformerEndInfos) === null || _f === void 0 ? void 0 : _f.find(elem => elem.endNumber === entryI7);
|
|
6115
6292
|
const transformerEnd = transformerEnds.find(elem => elem.endNumber === entryI7);
|
|
6116
6293
|
if ((0, parser_utils_1.isNumericI7)(gestufteSeite)) {
|
|
@@ -6130,8 +6307,8 @@ class ConverterIntegral7 {
|
|
|
6130
6307
|
continue;
|
|
6131
6308
|
}
|
|
6132
6309
|
const tapChangerInfo = transformerEndInfo === null || transformerEndInfo === void 0 ? void 0 : transformerEndInfo.tapChangerInfo;
|
|
6133
|
-
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${
|
|
6134
|
-
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${
|
|
6310
|
+
const angle = (0, parser_utils_1.isNumericI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6311
|
+
? (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${i + 1}`])
|
|
6135
6312
|
: (_h = tapChangerInfo === null || tapChangerInfo === void 0 ? void 0 : tapChangerInfo.stepPhaseIncrement) === null || _h === void 0 ? void 0 : _h.value;
|
|
6136
6313
|
const spezialRegelung = (0, parser_utils_1.isNumericI7)(i7Data.trafo_spezial) ? i7Data.trafo_spezial : transformerinfo === null || transformerinfo === void 0 ? void 0 : transformerinfo.spezialRegelung;
|
|
6137
6314
|
//const neutralU = transformerEnd.ratedU;
|
|
@@ -6418,65 +6595,99 @@ class ConverterIntegral7 {
|
|
|
6418
6595
|
* @param sternpunktKnotenMap Map mit den Sterpunktknoten aus der I7 Datenbank
|
|
6419
6596
|
* */
|
|
6420
6597
|
convertTrafoGrounding(frame, powerTransformer, powerTransformerEnd, i7Modell, stpKnoten, defaultValuesConfig) {
|
|
6421
|
-
|
|
6422
|
-
|
|
6598
|
+
/**
|
|
6599
|
+
* Five cases for transformer grounding model has to be checked:
|
|
6600
|
+
* Case 1: no grounding ... no 'Sternpunktknoten' is present ... ''
|
|
6601
|
+
* Case 2: no grounding ... 'Sternpunktknoten', 'SternpunktSchaltelement', 'Sternpunktschiene' is present but no 'KDrossel' ... 'isoliert'
|
|
6602
|
+
* Case 3: grounding is present ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 1 ... 'starr' or 'direkt'
|
|
6603
|
+
* Case 4: grounding is present ... only 'Sternpunktknoten' and 'Kdrossel' is present ... 'über Impedanz'
|
|
6604
|
+
* Case 5: grounding is present ... 'Sternpunktknoten', 'Sternpunktschaltelement', 'Sternpunktschiene' and 'Kdrossel' is present ... 'über Impedanz'
|
|
6605
|
+
* Case 6: no grounding ... only 'Sternpunktknoten' is present and 'Sternpunktknoten.geerdet' == 0 ... ''
|
|
6606
|
+
*/
|
|
6423
6607
|
const cimModel = frame.cimModel;
|
|
6608
|
+
let groundDisconnectorUUID = undefined;
|
|
6609
|
+
let connectivityNodeN = undefined;
|
|
6610
|
+
let groundDisconnector = undefined;
|
|
6611
|
+
let voltageLevel = undefined;
|
|
6424
6612
|
if (stpKnoten) {
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
|
|
6613
|
+
groundDisconnectorUUID = i7Modell.sternPunktImpModel.stpSchaltelementeIdGroundDisconnectorUUID.get(stpKnoten.schaltelement1pelem);
|
|
6614
|
+
connectivityNodeN = i7Modell.sternPunktImpModel.stpSchieneIdConnectivityNode.get(i7Modell.sternPunktImpModel.GroundDisconnectorUuidStpSchieneId.get(groundDisconnectorUUID));
|
|
6615
|
+
groundDisconnector = i7Modell.sternPunktImpModel.groundDisconnectors.get(groundDisconnectorUUID);
|
|
6616
|
+
if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size === 1) {
|
|
6617
|
+
const cn = powerTransformerEnd.getTerminal().getConnectivityNode();
|
|
6618
|
+
this.createConnection(cimModel, groundDisconnector, cn, PhaseCode_1.PhaseCode.ABCN, true);
|
|
6619
|
+
}
|
|
6620
|
+
else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size < 1) {
|
|
6621
|
+
this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is not successfully connected.`);
|
|
6622
|
+
}
|
|
6623
|
+
else if (groundDisconnector !== undefined && groundDisconnector.getTerminals().size > 2) {
|
|
6624
|
+
this.logger.debug(`GroundDisconnector of PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} is referenced by more than two Terminal objects.`);
|
|
6625
|
+
}
|
|
6626
|
+
/** EquipmentContainer - Voltage Level*/
|
|
6627
|
+
voltageLevel = (this.determineEquipmentContainer('VoltageLevel', cimModel, powerTransformerEnd.getTerminal().connectivityNode.connectivityNodeContainer));
|
|
6628
|
+
}
|
|
6629
|
+
if (stpKnoten && groundDisconnector === undefined) { //Case 3 and Case 4
|
|
6630
|
+
const earthFaultCompensator = i7Modell.sternPunktImpModel.stpKnotenStpImp.get(stpKnoten.id);
|
|
6631
|
+
if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 4 ... 'Kdrossel' is modelled as a GroundingImpedanz
|
|
6632
|
+
//cimModel.addGroundingImpedance(earthFaultCompensator as GroundingImpedance);//set grounded to 'true' if PetersenCoil is present
|
|
6633
|
+
const groundingImpedance = earthFaultCompensator;
|
|
6634
|
+
powerTransformerEnd.xground = groundingImpedance.x;
|
|
6635
|
+
powerTransformerEnd.rground = groundingImpedance.r;
|
|
6636
|
+
powerTransformerEnd.grounded = true;
|
|
6637
|
+
}
|
|
6638
|
+
else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 4 ... 'Kdrossel' is modelled as a PetersenCoil
|
|
6639
|
+
//cimModel.addPetersenCoil(earthFaultCompensator as PetersenCoil); //set grounded to 'true' if GroundingImpedance is present
|
|
6640
|
+
const petersenCoil = earthFaultCompensator;
|
|
6641
|
+
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);
|
|
6642
|
+
powerTransformerEnd.rground = petersenCoil.r;
|
|
6643
|
+
powerTransformerEnd.grounded = true;
|
|
6644
|
+
}
|
|
6645
|
+
else if (stpKnoten.geerdet === 1) { //Case 3
|
|
6646
|
+
powerTransformerEnd.rground = defaultValuesConfig.TransformerEnd.rground; //it is assumed that rground and xground is zero in case of solidly grounding
|
|
6647
|
+
powerTransformerEnd.xground = defaultValuesConfig.TransformerEnd.xground; //it is assumed that rground and xground is zero in case of solidly grounding
|
|
6648
|
+
powerTransformerEnd.grounded = true;
|
|
6649
|
+
}
|
|
6650
|
+
else { //Case 6
|
|
6651
|
+
powerTransformerEnd.grounded = false;
|
|
6652
|
+
}
|
|
6653
|
+
}
|
|
6654
|
+
else if (connectivityNodeN !== undefined && groundDisconnector !== undefined) {
|
|
6655
|
+
const earthFaultCompensator = i7Modell.sternPunktImpModel.groundDisconnectorUUIDstpImp.get(groundDisconnectorUUID);
|
|
6656
|
+
if (earthFaultCompensator instanceof GroundingImpedance_1.GroundingImpedance) { //Case 5 ... 'Kdrossel' is modelled as a GroundingImpedanz
|
|
6657
|
+
cimModel.addGroundingImpedance(earthFaultCompensator);
|
|
6658
|
+
cimModel.addGroundDisconnector(groundDisconnector);
|
|
6659
|
+
cimModel.addConnectivityNode(connectivityNodeN);
|
|
6660
|
+
powerTransformerEnd.grounded = true; //set grounded to 'true' if GroundingImpedance is present
|
|
6661
|
+
}
|
|
6662
|
+
else if (earthFaultCompensator instanceof PetersenCoil_1.PetersenCoil) { //Case 5 ... 'Kdrossel' is modelled as a PetersenCoil
|
|
6663
|
+
cimModel.addPetersenCoil(earthFaultCompensator);
|
|
6664
|
+
cimModel.addGroundDisconnector(groundDisconnector);
|
|
6665
|
+
cimModel.addConnectivityNode(connectivityNodeN);
|
|
6666
|
+
powerTransformerEnd.grounded = true; //set grounded to 'true' if PetersenCoil is present
|
|
6667
|
+
}
|
|
6668
|
+
else { //Case 2
|
|
6669
|
+
powerTransformerEnd.grounded = false; //set grounded to 'false' if no GroundingImpedance or PetersenCoil is present ... 'isolierte Sternpunktschiene'
|
|
6670
|
+
}
|
|
6671
|
+
/** BaseVoltage */
|
|
6672
|
+
if (voltageLevel !== undefined) {
|
|
6673
|
+
groundDisconnector.baseVoltage = voltageLevel.baseVoltage ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6674
|
+
groundDisconnector.equipmentContainer = voltageLevel;
|
|
6675
|
+
if (earthFaultCompensator !== undefined) {
|
|
6676
|
+
earthFaultCompensator.equipmentContainer = voltageLevel;
|
|
6677
|
+
}
|
|
6678
|
+
connectivityNodeN.connectivityNodeContainer = voltageLevel;
|
|
6679
|
+
connectivityNodeN.key = voltageLevel.key + connectivityNodeN.key;
|
|
6435
6680
|
}
|
|
6436
6681
|
else {
|
|
6437
|
-
|
|
6438
|
-
* Nur Verbindung zur Junction herstellen */
|
|
6439
|
-
let terminal;
|
|
6440
|
-
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)) {
|
|
6441
|
-
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);
|
|
6442
|
-
terminal = this.createBoundaryConnection(frame, junction, i7ObjectID, PhaseCode_1.PhaseCode.ABC);
|
|
6443
|
-
}
|
|
6444
|
-
else {
|
|
6445
|
-
terminal = this.createConnection(cimModel, junction, (_e = powerTransformerEnd.terminal) === null || _e === void 0 ? void 0 : _e.connectivityNode, PhaseCode_1.PhaseCode.ABC, true);
|
|
6446
|
-
}
|
|
6447
|
-
if (terminal) {
|
|
6448
|
-
terminal.name = 't_stp_trafo';
|
|
6449
|
-
if (junction)
|
|
6450
|
-
junction.name = (junction === null || junction === void 0 ? void 0 : junction.name) + '/Trafo';
|
|
6451
|
-
const pSpuleGroundImpedance = i7Modell.sternPunktImpModel.junctionUUIDstpImp.get(junctionUUID);
|
|
6452
|
-
/** EquipmentContainer - Voltage Level*/
|
|
6453
|
-
const voltageLevel = this.getVoltageLevelByVoltage((_f = powerTransformer.equipmentContainer) === null || _f === void 0 ? void 0 : _f.voltageLevels, powerTransformerEnd.ratedU);
|
|
6454
|
-
if (!voltageLevel) {
|
|
6455
|
-
this.logger.debug(`Trafo ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat kein EquipmentContainer`);
|
|
6456
|
-
}
|
|
6457
|
-
/** BaseVoltage */
|
|
6458
|
-
if (junction && voltageLevel) {
|
|
6459
|
-
junction.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6460
|
-
junction.equipmentContainer = voltageLevel;
|
|
6461
|
-
cimModel.addJunction(junction);
|
|
6462
|
-
}
|
|
6463
|
-
else {
|
|
6464
|
-
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine Junction ${junctionUUID} oder VoltageLevel`);
|
|
6465
|
-
}
|
|
6466
|
-
if (pSpuleGroundImpedance) {
|
|
6467
|
-
pSpuleGroundImpedance.baseVoltage = (voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.baseVoltage) ? voltageLevel.baseVoltage : powerTransformerEnd.baseVoltage;
|
|
6468
|
-
pSpuleGroundImpedance.equipmentContainer = voltageLevel;
|
|
6469
|
-
cimModel.addGroundingImpedance(pSpuleGroundImpedance);
|
|
6470
|
-
}
|
|
6471
|
-
else {
|
|
6472
|
-
this.logger.debug(`TrafoObjektID ${powerTransformer === null || powerTransformer === void 0 ? void 0 : powerTransformer.mrid} hat keine pSpuleGroundImpedance.`);
|
|
6473
|
-
}
|
|
6474
|
-
}
|
|
6475
|
-
else {
|
|
6476
|
-
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.`);
|
|
6477
|
-
}
|
|
6682
|
+
this.logger.debug(`PowerTransformerEnd ${powerTransformerEnd === null || powerTransformerEnd === void 0 ? void 0 : powerTransformerEnd.mrid} hat kein VoltageLevel`);
|
|
6478
6683
|
}
|
|
6479
6684
|
}
|
|
6685
|
+
else { //Case 1
|
|
6686
|
+
powerTransformerEnd.grounded = false; //set grounded to 'false' if there is no 'Sternpunktknoten'
|
|
6687
|
+
}
|
|
6688
|
+
if (powerTransformerEnd.grounded) {
|
|
6689
|
+
powerTransformerEnd.terminal.phases = PhaseCode_1.PhaseCode.ABCN;
|
|
6690
|
+
}
|
|
6480
6691
|
}
|
|
6481
6692
|
/** Equipment grounding
|
|
6482
6693
|
* @param shnt ShuntCompensator object
|
|
@@ -6703,6 +6914,7 @@ class ConverterIntegral7 {
|
|
|
6703
6914
|
}
|
|
6704
6915
|
}
|
|
6705
6916
|
exports.ConverterIntegral7 = ConverterIntegral7;
|
|
6917
|
+
_ConverterIntegral7_configurableDLConvertOptions = new WeakMap();
|
|
6706
6918
|
function getGeoCoordinates(i7Data) {
|
|
6707
6919
|
/** Fall 1
|
|
6708
6920
|
* geokoor_pl_breite_h && geokoor_pl_breite_m geokoor_pl_breite_s sind gepflegt */
|
|
@@ -6843,4 +7055,48 @@ function logExecutionTime(logger, startTime, text) {
|
|
|
6843
7055
|
logger.debug(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
6844
7056
|
console.log(`${text} ${(perf_hooks.performance.now() - startTime) / 1000} seconds`);
|
|
6845
7057
|
}
|
|
7058
|
+
function getHVSideNumber(transformerEnds) {
|
|
7059
|
+
let retVal = undefined;
|
|
7060
|
+
let urHv = 0;
|
|
7061
|
+
for (let i = 0; i < transformerEnds.length; i++) {
|
|
7062
|
+
if (urHv < transformerEnds[i].ratedU) {
|
|
7063
|
+
retVal = transformerEnds[i].endNumber;
|
|
7064
|
+
urHv = transformerEnds[i].ratedU;
|
|
7065
|
+
}
|
|
7066
|
+
}
|
|
7067
|
+
return retVal;
|
|
7068
|
+
}
|
|
7069
|
+
function createLineName(i7Data, uuid, lineNames) {
|
|
7070
|
+
let retVal = (0, util_create_1.createNotation)([i7Data.bezeichner], 32, false);
|
|
7071
|
+
if (lineNames[retVal] === true) { //try to find another name with i7Data.stkabname as suffix
|
|
7072
|
+
if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length > 0) {
|
|
7073
|
+
retVal = i7Data.bezeichner.substring(0, i7Data.bezeichner.length - (i7Data.bezeichner.length + (i7Data.stkabname.length + 1) - 32)) + '_' + i7Data.stkabname;
|
|
7074
|
+
}
|
|
7075
|
+
else if (i7Data.bezeichner.length > 0 && i7Data.stkabname.length <= 0) {
|
|
7076
|
+
retVal = i7Data.bezeichner.substring(0, i7Data.stkabname.length - (i7Data.bezeichner.length - 32));
|
|
7077
|
+
}
|
|
7078
|
+
else if (i7Data.bezeichner.length <= 0 && i7Data.stkabname.length > 0) {
|
|
7079
|
+
retVal = i7Data.stkabname.substring(0, i7Data.stkabname.length - (i7Data.stkabname.length - 32));
|
|
7080
|
+
}
|
|
7081
|
+
}
|
|
7082
|
+
if (lineNames[retVal] === true) { //use uuid to create a unique name
|
|
7083
|
+
if (retVal.length + 9 <= 32) {
|
|
7084
|
+
retVal = retVal + '_' + normalizeUUID(uuid).substring(0, 8);
|
|
7085
|
+
}
|
|
7086
|
+
else {
|
|
7087
|
+
retVal = retVal.substring(0, retVal.length - (retVal.length + 9 - 32)) + '_' + normalizeUUID(uuid).substring(0, 8);
|
|
7088
|
+
}
|
|
7089
|
+
}
|
|
7090
|
+
return retVal;
|
|
7091
|
+
}
|
|
7092
|
+
function normalizeUUID(uuid) {
|
|
7093
|
+
let retVal = '';
|
|
7094
|
+
if (uuid != undefined && uuid.length > 0) {
|
|
7095
|
+
retVal = uuid.replaceAll('_', '');
|
|
7096
|
+
retVal = retVal.replaceAll('-', '');
|
|
7097
|
+
retVal = retVal.toLowerCase();
|
|
7098
|
+
retVal = retVal.trim();
|
|
7099
|
+
}
|
|
7100
|
+
return retVal;
|
|
7101
|
+
}
|
|
6846
7102
|
//# sourceMappingURL=converter.integral7.js.map
|