@enervance/insight-cim-model 0.0.159 → 0.0.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants/cim-class-names.d.ts +10 -0
- package/dist/constants/cim-class-names.js +11 -1
- package/dist/constants/cim-class-names.js.map +1 -1
- package/dist/converter/PSDM/ConverterPowerSystemDataModel.js +3 -3
- package/dist/converter/PSDM/ConverterPowerSystemDataModel.js.map +1 -1
- package/dist/converter/cgmes-validator.d.ts +3 -3
- package/dist/converter/cgmes-validator.js.map +1 -1
- package/dist/converter/integral7/config/integral-prefix.d.ts +2 -0
- package/dist/converter/integral7/config/integral-prefix.js +3 -1
- package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
- package/dist/converter/integral7/converter.integral7.d.ts +39 -42
- package/dist/converter/integral7/converter.integral7.js +1098 -899
- package/dist/converter/integral7/converter.integral7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/data-manager.d.ts +1 -10
- package/dist/converter/integral7/dl-convert/data-manager.js +7 -36
- package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
- package/dist/converter/integral7/dl-convert/db/data-types.d.ts +0 -9
- package/dist/converter/integral7/dl-convert/db/data-types.js +0 -11
- package/dist/converter/integral7/dl-convert/db/data-types.js.map +1 -1
- package/dist/converter/integral7/dl-convert/db/database.interface.types.d.ts +229 -0
- package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +153 -99
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js +3401 -1315
- package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.d.ts +9 -2
- package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js +19 -7
- package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.d.ts +105 -5
- package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js +68 -2
- package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js.map +1 -1
- package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.d.ts +1 -1
- package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js +45 -25
- package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js.map +1 -1
- package/dist/converter/integral7/dl-convert/executor.d.ts +4 -1
- package/dist/converter/integral7/dl-convert/executor.js +233 -114
- package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
- package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +3 -3
- package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.d.ts → default-values-config.interface.d.ts} +4 -1
- package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.js → default-values-config.interface.js} +1 -1
- package/dist/converter/integral7/interface-i7/default-values-config.interface.js.map +1 -0
- package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +5 -5
- package/dist/converter/integral7/interface-i7/export-frame-i7.js +7 -1
- package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
- package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.d.ts +3 -0
- package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.js → integral7-converter-config.interface.js} +1 -1
- package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.js.map +1 -0
- package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.d.ts → object-mapping-config.interface.d.ts} +1 -1
- package/dist/converter/integral7/interface-i7/{IIntegral7ConverterConfig.js → object-mapping-config.interface.js} +1 -1
- package/dist/converter/integral7/interface-i7/object-mapping-config.interface.js.map +1 -0
- package/dist/converter/integral7/interface-i7/uuid-config.interface.d.ts +5 -0
- package/dist/converter/integral7/{dl-convert/dl-converter-i7.types.js → interface-i7/uuid-config.interface.js} +1 -1
- package/dist/converter/integral7/interface-i7/uuid-config.interface.js.map +1 -0
- package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +7 -41
- package/dist/converter/integral7/model/dl-utils/util-functions.js +11 -699
- package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
- package/dist/converter/integral7/model/integral/HgueleitungImpl.d.ts +24 -0
- package/dist/converter/integral7/model/integral/HgueleitungImpl.js +7 -0
- package/dist/converter/integral7/model/integral/HgueleitungImpl.js.map +1 -0
- package/dist/converter/integral7/model/integral/Leitung.d.ts +1 -0
- package/dist/converter/integral7/model/integral/Leitung.js +1 -0
- package/dist/converter/integral7/model/integral/Leitung.js.map +1 -1
- package/dist/converter/integral7/model/interfaces.d.ts +94 -31
- package/dist/converter/integral7/model/interfaces.js.map +1 -1
- package/dist/converter/integral7/sql/integral.sql.d.ts +4 -1
- package/dist/converter/integral7/sql/integral.sql.js +21 -15
- package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
- package/dist/converter/integral7/util-cim.model.d.ts +14 -0
- package/dist/converter/integral7/util-cim.model.js +27 -0
- package/dist/converter/integral7/util-cim.model.js.map +1 -0
- package/dist/converter/integral7/utils-cgmes-export.d.ts +10 -10
- package/dist/converter/integral7/utils-cgmes-export.js +5 -0
- package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
- package/dist/converter/integral7/utils-trafo3w.d.ts +2 -2
- package/dist/converter/integral7/utils-trafo3w.js +21 -4
- package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
- package/dist/converter/integral7/utils.d.ts +27 -25
- package/dist/converter/integral7/utils.js +373 -342
- package/dist/converter/integral7/utils.js.map +1 -1
- package/dist/etl/etl-dppower/etl-dppower.d.ts +15 -0
- package/dist/etl/etl-dppower/etl-dppower.js +204 -0
- package/dist/etl/etl-dppower/etl-dppower.js.map +1 -0
- package/dist/etl/etl-neplan/etl-neplan.js +15 -8
- package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/interfaces/model/core/IIdentifiedObject.d.ts +3 -3
- package/dist/interfaces/model/wires/IRegulatingCondEq.d.ts +3 -0
- package/dist/model/assetinfo/CableInfo.d.ts +7 -0
- package/dist/model/assetinfo/CableInfo.js +49 -0
- package/dist/model/assetinfo/CableInfo.js.map +1 -1
- package/dist/model/assetinfo/OverheadWireInfo.d.ts +7 -0
- package/dist/model/assetinfo/OverheadWireInfo.js +49 -0
- package/dist/model/assetinfo/OverheadWireInfo.js.map +1 -1
- package/dist/model/assetinfo/WireInfo.d.ts +1 -0
- package/dist/model/assetinfo/WireInfo.js.map +1 -1
- package/dist/model/assets/Facility.js +17 -3
- package/dist/model/assets/Facility.js.map +1 -1
- package/dist/model/assets/LifecycleDate.d.ts +1 -0
- package/dist/model/assets/LifecycleDate.js +3 -0
- package/dist/model/assets/LifecycleDate.js.map +1 -1
- package/dist/model/common/Location.js +1 -1
- package/dist/model/common/Location.js.map +1 -1
- package/dist/model/common/PositionPoint.js +3 -18
- package/dist/model/common/PositionPoint.js.map +1 -1
- package/dist/model/core/ACDCTerminal.d.ts +2 -2
- package/dist/model/core/ACDCTerminal.js +2 -1
- package/dist/model/core/ACDCTerminal.js.map +1 -1
- package/dist/model/core/BaseVoltage.d.ts +2 -2
- package/dist/model/core/BaseVoltage.js.map +1 -1
- package/dist/model/core/ConnectivityNode.d.ts +2 -2
- package/dist/model/core/ConnectivityNode.js.map +1 -1
- package/dist/model/core/Equipment.d.ts +2 -2
- package/dist/model/core/Equipment.js +6 -1
- package/dist/model/core/Equipment.js.map +1 -1
- package/dist/model/core/IdentifiedObject.d.ts +3 -3
- package/dist/model/core/IdentifiedObject.js +9 -3
- package/dist/model/core/IdentifiedObject.js.map +1 -1
- package/dist/model/core/Substation.js +7 -7
- package/dist/model/core/Substation.js.map +1 -1
- package/dist/model/core/Terminal.d.ts +2 -2
- package/dist/model/core/Terminal.js +2 -2
- package/dist/model/core/Terminal.js.map +1 -1
- package/dist/model/dc/ACDCConverter.d.ts +2 -2
- package/dist/model/dc/ACDCConverter.js.map +1 -1
- package/dist/model/dc/ACDCConverterDCTerminal.js +1 -0
- package/dist/model/dc/ACDCConverterDCTerminal.js.map +1 -1
- package/dist/model/dc/CsConverter.d.ts +2 -2
- package/dist/model/dc/CsConverter.js.map +1 -1
- package/dist/model/dc/DCConverterUnit.d.ts +3 -2
- package/dist/model/dc/DCConverterUnit.js +3 -0
- package/dist/model/dc/DCConverterUnit.js.map +1 -1
- package/dist/model/dc/DCTerminal.js +1 -0
- package/dist/model/dc/DCTerminal.js.map +1 -1
- package/dist/model/dc/VsConverter.d.ts +2 -2
- package/dist/model/dc/VsConverter.js.map +1 -1
- package/dist/model/diagram/Diagram.js +2 -0
- package/dist/model/diagram/Diagram.js.map +1 -1
- package/dist/model/diagram/DiagramObject.js +2 -2
- package/dist/model/diagram/DiagramObject.js.map +1 -1
- package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.d.ts +2 -2
- package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.js.map +1 -1
- package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.d.ts +2 -2
- package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js.map +1 -1
- package/dist/model/equivalents/EquivalentBranch.d.ts +2 -2
- package/dist/model/equivalents/EquivalentBranch.js.map +1 -1
- package/dist/model/equivalents/EquivalentInjection.d.ts +12 -2
- package/dist/model/equivalents/EquivalentInjection.js +111 -0
- package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
- package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +2 -2
- package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
- package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js +2 -9
- package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js.map +1 -1
- package/dist/model/extensions/enervance/assets/EVWireObject.js +7 -1
- package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
- package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +1 -0
- package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +3 -0
- package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +0 -1
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +1 -4
- package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.d.ts +1 -0
- package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +6 -3
- package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
- package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +1 -0
- package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +7 -1
- package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
- package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +8 -1
- package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
- package/dist/model/generation/GeneratingUnit.d.ts +2 -2
- package/dist/model/generation/GeneratingUnit.js.map +1 -1
- package/dist/model/loadmodel/ConformLoad.d.ts +2 -2
- package/dist/model/loadmodel/ConformLoad.js +33 -33
- package/dist/model/loadmodel/ConformLoad.js.map +1 -1
- package/dist/model/operationallimits/ApparentPowerLimit.d.ts +15 -0
- package/dist/model/operationallimits/ApparentPowerLimit.js +56 -0
- package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -0
- package/dist/model/operationallimits/CurrentLimit.d.ts +2 -2
- package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
- package/dist/model/operations/ControlArea.d.ts +1 -0
- package/dist/model/operations/ControlArea.js +6 -2
- package/dist/model/operations/ControlArea.js.map +1 -1
- package/dist/model/statevariables/SvPowerFlow.d.ts +2 -2
- package/dist/model/statevariables/SvPowerFlow.js.map +1 -1
- package/dist/model/wires/ACLineSegment.d.ts +5 -2
- package/dist/model/wires/ACLineSegment.js +7 -1
- package/dist/model/wires/ACLineSegment.js.map +1 -1
- package/dist/model/wires/AsynchronousMachine.d.ts +2 -2
- package/dist/model/wires/AsynchronousMachine.js +0 -1
- package/dist/model/wires/AsynchronousMachine.js.map +1 -1
- package/dist/model/wires/Breaker.js +1 -1
- package/dist/model/wires/Breaker.js.map +1 -1
- package/dist/model/wires/Conductor.d.ts +2 -2
- package/dist/model/wires/Conductor.js.map +1 -1
- package/dist/model/wires/Disconnector.js +1 -1
- package/dist/model/wires/Disconnector.js.map +1 -1
- package/dist/model/wires/EnergyConsumer.d.ts +2 -2
- package/dist/model/wires/EnergyConsumer.js.map +1 -1
- package/dist/model/wires/EnergySource.d.ts +2 -2
- package/dist/model/wires/EnergySource.js.map +1 -1
- package/dist/model/wires/ExternalNetworkInjection.d.ts +2 -2
- package/dist/model/wires/ExternalNetworkInjection.js +4 -4
- package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
- package/dist/model/wires/GroundingImpedance.d.ts +2 -2
- package/dist/model/wires/GroundingImpedance.js.map +1 -1
- package/dist/model/wires/LinearShuntCompensator.d.ts +2 -2
- package/dist/model/wires/LinearShuntCompensator.js.map +1 -1
- package/dist/model/wires/PetersenCoil.d.ts +2 -2
- package/dist/model/wires/PetersenCoil.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerAsymmetrical.d.ts +2 -2
- package/dist/model/wires/PhaseTapChangerAsymmetrical.js +1 -1
- package/dist/model/wires/PhaseTapChangerAsymmetrical.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerLinear.d.ts +2 -2
- package/dist/model/wires/PhaseTapChangerLinear.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerNonLinear.d.ts +2 -2
- package/dist/model/wires/PhaseTapChangerNonLinear.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerSymmetrical.js +1 -1
- package/dist/model/wires/PhaseTapChangerSymmetrical.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerTable.d.ts +3 -3
- package/dist/model/wires/PhaseTapChangerTable.js.map +1 -1
- package/dist/model/wires/PhaseTapChangerTablePoint.d.ts +3 -3
- package/dist/model/wires/PhaseTapChangerTablePoint.js.map +1 -1
- package/dist/model/wires/PowerTransformer.js +2 -0
- package/dist/model/wires/PowerTransformer.js.map +1 -1
- package/dist/model/wires/PowerTransformerEnd.d.ts +2 -2
- package/dist/model/wires/PowerTransformerEnd.js +1 -0
- package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
- package/dist/model/wires/RatioTapChanger.d.ts +2 -2
- package/dist/model/wires/RatioTapChanger.js +1 -1
- package/dist/model/wires/RatioTapChanger.js.map +1 -1
- package/dist/model/wires/RatioTapChangerTable.d.ts +3 -3
- package/dist/model/wires/RatioTapChangerTable.js.map +1 -1
- package/dist/model/wires/RegulatingCondEq.d.ts +2 -2
- package/dist/model/wires/RegulatingCondEq.js.map +1 -1
- package/dist/model/wires/RegulatingControl.d.ts +2 -2
- package/dist/model/wires/RegulatingControl.js.map +1 -1
- package/dist/model/wires/RotatingMachine.d.ts +3 -3
- package/dist/model/wires/RotatingMachine.js.map +1 -1
- package/dist/model/wires/SeriesCompensator.d.ts +2 -2
- package/dist/model/wires/SeriesCompensator.js.map +1 -1
- package/dist/model/wires/ShuntCompensator.d.ts +2 -2
- package/dist/model/wires/ShuntCompensator.js.map +1 -1
- package/dist/model/wires/StaticVarCompensator.d.ts +2 -2
- package/dist/model/wires/StaticVarCompensator.js.map +1 -1
- package/dist/model/wires/SynchronousMachine.d.ts +2 -2
- package/dist/model/wires/SynchronousMachine.js.map +1 -1
- package/dist/model/wires/TapChanger.d.ts +2 -2
- package/dist/model/wires/TapChanger.js.map +1 -1
- package/dist/model/wires/TapChangerTablePoint.d.ts +3 -3
- package/dist/model/wires/TapChangerTablePoint.js +6 -18
- package/dist/model/wires/TapChangerTablePoint.js.map +1 -1
- package/dist/model/wires/TransformerEnd.d.ts +2 -2
- package/dist/model/wires/TransformerEnd.js.map +1 -1
- package/dist/model-container/enum/EVSourceSystemKind.d.ts +1 -0
- package/dist/model-container/enum/EVSourceSystemKind.js +1 -0
- package/dist/model-container/enum/EVSourceSystemKind.js.map +1 -1
- package/dist/model-container/model/ModelContainer.d.ts +12 -3
- package/dist/model-container/model/ModelContainer.js +22 -1
- package/dist/model-container/model/ModelContainer.js.map +1 -1
- package/dist/util/collection/util-graph2tree.d.ts +1 -0
- package/dist/util/collection/util-graph2tree.js +65 -2
- package/dist/util/collection/util-graph2tree.js.map +1 -1
- package/dist/util/util-create.d.ts +4 -3
- package/dist/util/util-create.js +38 -23
- package/dist/util/util-create.js.map +1 -1
- package/dist/util/util-test.js +0 -109
- package/dist/util/util-test.js.map +1 -1
- package/dist/util/utils.d.ts +4 -3
- package/dist/util/utils.js +9 -6
- package/dist/util/utils.js.map +1 -1
- package/dist/util/xml/xml.serializer.d.ts +2 -2
- package/dist/util/xml/xml.serializer.js.map +1 -1
- package/dist/utils2/cim.model.utils.js +6 -0
- package/dist/utils2/cim.model.utils.js.map +1 -1
- package/dist/utils2/common.utils.d.ts +3 -0
- package/dist/utils2/common.utils.js +11 -0
- package/dist/utils2/common.utils.js.map +1 -1
- package/dist/utils2/fuseki.utils.js +7 -1
- package/dist/utils2/fuseki.utils.js.map +1 -1
- package/dist/utils2/import.utils.d.ts +2 -1
- package/dist/utils2/import.utils.js +9 -3
- package/dist/utils2/import.utils.js.map +1 -1
- package/dist/utils2/parser.utils.d.ts +1 -1
- package/dist/utils2/parser.utils.js +44 -23
- package/dist/utils2/parser.utils.js.map +1 -1
- package/package.json +5 -2
- package/dist/converter/integral7/ConverterIntegral7.d.ts +0 -0
- package/dist/converter/integral7/ConverterIntegral7.js +0 -1
- package/dist/converter/integral7/ConverterIntegral7.js.map +0 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.d.ts +0 -56
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js +0 -2039
- package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js.map +0 -1
- package/dist/converter/integral7/dl-convert/dl-converter-i7.types.d.ts +0 -3
- package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js.map +0 -1
- package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.js.map +0 -1
- package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.d.ts +0 -3
- package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.js.map +0 -1
- package/dist/converter/integral7/interface-i7/IObjectMappingConfig.js.map +0 -1
- package/dist/converter/integral7/model/integral/Hgueleitung.d.ts +0 -12
- package/dist/converter/integral7/model/integral/Hgueleitung.js +0 -3
- package/dist/converter/integral7/model/integral/Hgueleitung.js.map +0 -1
- package/dist/converter/integral7/model/integral/Kopfstation.d.ts +0 -44
- package/dist/converter/integral7/model/integral/Kopfstation.js +0 -10
- package/dist/converter/integral7/model/integral/Kopfstation.js.map +0 -1
- package/dist/converter/integral7/util-asset.model.d.ts +0 -9
- package/dist/converter/integral7/util-asset.model.js +0 -20
- package/dist/converter/integral7/util-asset.model.js.map +0 -1
- package/dist/model/model/Model.d.ts +0 -0
- package/dist/model/model/Model.js +0 -1
- package/dist/model/model/Model.js.map +0 -1
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.getSpannungsband = exports.createRegulatingControl = void 0;
|
|
3
|
+
exports.putUUIDtoI7Ids = exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = exports.getSchemaValue = exports.writeZipFile = exports.generateNodeStream = exports.writeFile = exports.generateFuelType = exports.getNumber = exports.getDescription = exports.getPMech = exports.getActiveReactivePower2 = exports.getActiveReactivePower = exports.getTapChangerStepArray = exports.getTapChangerStepCount = exports.setTapChangerControl = exports.getConductingEquipmentTerminalBySecNumber = exports.getTrafoIr = exports.getTrafoIleer = exports.getTrafoPleer = exports.calculateStatVarComRating = exports.calculateG0ch = exports.calculateBC = exports.calculateG0PerSection = exports.calculateGPerSection = exports.calculateB0PerSection = exports.calculateBPerSection = exports.calculateB = exports.calculateG = exports.calculateXSeriesCompensator = exports.calculateRSeriesCompensator = exports.calculateX = exports.calculateRatedIdc = exports.calculateR = exports.calculateSigma = exports.getX0R0Transformer = exports.getUrTrafo = exports.getSrTrafo = exports.getUkrTrafo = exports.getPkrTrafo = exports.getSchaltgruppeAngleClock = exports.getSchaltgruppe = exports.getTerminalUn = exports.getU = exports.getLine = exports.getLineByAttribute = exports.getName = exports.ueberpruefeZeichenkette = exports.deepcopy = void 0;
|
|
4
|
+
exports.getSpannungsband = exports.getGroundingCountFromWindingConnection = exports.calculateComplexZeroSequImpedanzenTrafo = exports.createRegulatingControl = exports.createWriteStreamPromise = exports.getPSRType = void 0;
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const fs = require("fs");
|
|
7
|
-
const PhaseTapChangerAsymmetrical_1 = require("../../model/wires/PhaseTapChangerAsymmetrical.js");
|
|
8
|
-
const PhaseTapChangerLinear_1 = require("../../model/wires/PhaseTapChangerLinear.js");
|
|
9
7
|
const Bay_1 = require("../../model/core/Bay.js");
|
|
10
8
|
const VoltageLevel_1 = require("../../model/core/VoltageLevel.js");
|
|
11
9
|
const WindingConnection_1 = require("../../model/wires/WindingConnection.js");
|
|
12
10
|
const common_utils_1 = require("../../utils2/common.utils.js");
|
|
13
|
-
const RatioTapChangerTable_1 = require("../../model/wires/RatioTapChangerTable.js");
|
|
14
|
-
const util_create_1 = require("../../util/util-create.js");
|
|
15
|
-
const RatioTapChanger_1 = require("../../model/wires/RatioTapChanger.js");
|
|
16
|
-
const TransformerControlMode_1 = require("../../model/wires/TransformerControlMode.js");
|
|
17
|
-
const TapChangerControl_1 = require("../../model/wires/TapChangerControl.js");
|
|
18
|
-
const RegulatingControlModeKind_1 = require("../../model/wires/RegulatingControlModeKind.js");
|
|
19
|
-
const UnitMultiplier_1 = require("../../model/domain/UnitMultiplier.js");
|
|
20
11
|
const FuelType_1 = require("../../model/generation/FuelType.js");
|
|
21
12
|
const RegulatingControl_1 = require("../../model/wires/RegulatingControl.js");
|
|
22
13
|
const FossilFuel_1 = require("../../model/generation/FossilFuel.js");
|
|
23
14
|
const PSRType_1 = require("../../model/core/PSRType.js");
|
|
24
15
|
const parser_utils_1 = require("../../utils2/parser.utils.js");
|
|
16
|
+
const cim_class_names_1 = require("../../constants/cim-class-names.js");
|
|
17
|
+
const complex_js_1 = require("complex.js");
|
|
25
18
|
function deepcopy(converter) {
|
|
26
19
|
let converter_copy = undefined;
|
|
27
20
|
converter_copy = eval(`new ${converter.constructor.name}(getUUID(),)`);
|
|
@@ -377,7 +370,7 @@ function getSrTrafo(i7Data, powerTransformerInfo, endNumber, isTrafo3W) {
|
|
|
377
370
|
}
|
|
378
371
|
}
|
|
379
372
|
}
|
|
380
|
-
return
|
|
373
|
+
return undefined;
|
|
381
374
|
}
|
|
382
375
|
exports.getSrTrafo = getSrTrafo;
|
|
383
376
|
function getUrTrafo(i7Data, powerTransformerInfo, endNumber) {
|
|
@@ -396,6 +389,18 @@ function getUrTrafo(i7Data, powerTransformerInfo, endNumber) {
|
|
|
396
389
|
return 0;
|
|
397
390
|
}
|
|
398
391
|
exports.getUrTrafo = getUrTrafo;
|
|
392
|
+
function getX0R0Transformer(i7Data, powerTransformerInfo, varNameI7) {
|
|
393
|
+
let ret_val = undefined;
|
|
394
|
+
const prop = `${varNameI7}`;
|
|
395
|
+
if (i7Data[prop] !== undefined && (0, parser_utils_1.isNumericI7)(i7Data[prop])) { //read data from i7 net data object
|
|
396
|
+
ret_val = i7Data[prop];
|
|
397
|
+
}
|
|
398
|
+
else if (powerTransformerInfo !== undefined && powerTransformerInfo[prop] !== undefined && (0, parser_utils_1.isNumericI7)(powerTransformerInfo[prop])) { //read data from net data object type
|
|
399
|
+
ret_val = powerTransformerInfo[prop];
|
|
400
|
+
}
|
|
401
|
+
return ret_val;
|
|
402
|
+
}
|
|
403
|
+
exports.getX0R0Transformer = getX0R0Transformer;
|
|
399
404
|
/**
|
|
400
405
|
* @param fn Nennfrquenz in Hz
|
|
401
406
|
* @param pn Nennwirkleistung in MW
|
|
@@ -435,6 +440,25 @@ function calculateR(un, pkr, sr) {
|
|
|
435
440
|
return ret_val;
|
|
436
441
|
}
|
|
437
442
|
exports.calculateR = calculateR;
|
|
443
|
+
/**
|
|
444
|
+
* @param ur Bemessungsspannung (Gleichspannung) in kV
|
|
445
|
+
* @param pr Bemessungsleistung (Gleichstromseite) in MW
|
|
446
|
+
* @return idc Bemessungsstrom (Geichstrom) in A */
|
|
447
|
+
function calculateRatedIdc(ur, pr) {
|
|
448
|
+
const conversion_factor_ur = Math.pow(10, 3);
|
|
449
|
+
const conversion_factor_pr = Math.pow(10, 6);
|
|
450
|
+
let ret_val = undefined;
|
|
451
|
+
try {
|
|
452
|
+
ret_val = (conversion_factor_pr * pr) / (conversion_factor_ur * ur);
|
|
453
|
+
}
|
|
454
|
+
catch (e) {
|
|
455
|
+
ret_val = undefined;
|
|
456
|
+
}
|
|
457
|
+
ret_val = Number.isNaN(ret_val) ? undefined : ret_val;
|
|
458
|
+
ret_val = Number.isFinite(ret_val) ? ret_val : 0;
|
|
459
|
+
return ret_val;
|
|
460
|
+
}
|
|
461
|
+
exports.calculateRatedIdc = calculateRatedIdc;
|
|
438
462
|
/**
|
|
439
463
|
* @param ur Nennspannung in kV
|
|
440
464
|
* @param ukr Kurzschlussspannung in %
|
|
@@ -459,11 +483,11 @@ exports.calculateX = calculateX;
|
|
|
459
483
|
* @param ir Kurzschlussspannung in %
|
|
460
484
|
* @param pkr Kurzschlussspannung in kW */
|
|
461
485
|
function calculateRSeriesCompensator(ir, pkr) {
|
|
462
|
-
const
|
|
486
|
+
const conversion_factor_Ir = Math.pow(10, 0);
|
|
463
487
|
const conversion_factor_pkr = Math.pow(10, 3);
|
|
464
488
|
let ret_val = undefined;
|
|
465
489
|
try {
|
|
466
|
-
ret_val = (pkr * conversion_factor_pkr) / (Math.pow(Math.sqrt(3) * ir *
|
|
490
|
+
ret_val = (pkr * conversion_factor_pkr) / (Math.pow(Math.sqrt(3) * ir * conversion_factor_Ir, 2));
|
|
467
491
|
}
|
|
468
492
|
catch (e) {
|
|
469
493
|
ret_val = undefined;
|
|
@@ -675,7 +699,7 @@ function getTrafoIr(ur, sr) {
|
|
|
675
699
|
let conversion_factor_ur = Math.pow(10, 3);
|
|
676
700
|
let ret_val = undefined;
|
|
677
701
|
try {
|
|
678
|
-
ret_val = ((sr *
|
|
702
|
+
ret_val = ((sr * conversion_factor_sr) / (ur * conversion_factor_ur)) / Math.sqrt(3);
|
|
679
703
|
}
|
|
680
704
|
catch (e) {
|
|
681
705
|
ret_val = undefined;
|
|
@@ -692,321 +716,6 @@ function getConductingEquipmentTerminalBySecNumber(conductingEquipment, sequence
|
|
|
692
716
|
return;
|
|
693
717
|
}
|
|
694
718
|
exports.getConductingEquipmentTerminalBySecNumber = getConductingEquipmentTerminalBySecNumber;
|
|
695
|
-
function createRatioTapChanger(i7Data, transformerEnd, cimModel, neutralU, terminals, knotenSpannungsband) {
|
|
696
|
-
// ist ein Stufenschalter vorhanden?
|
|
697
|
-
/**
|
|
698
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
699
|
-
* 1 - obere Spannungsseite (Anschluss 1)
|
|
700
|
-
* 2 - mittlere Spannungsseite (Anschluss 1)
|
|
701
|
-
* 3 - Niederspannungsseite (Anschluss 2)
|
|
702
|
-
* ? - Externer Knoten (Anschluss 3)
|
|
703
|
-
* */
|
|
704
|
-
/**
|
|
705
|
-
* 1 obere Spannungsseite
|
|
706
|
-
* 2 mittlere Spannungsseite
|
|
707
|
-
* 3 Niederspannungsseite
|
|
708
|
-
* */
|
|
709
|
-
/** Regelung */
|
|
710
|
-
/** Spezialregelung - trafo_spezial
|
|
711
|
-
* 0 - keine Spezialitäten
|
|
712
|
-
* Winkel == 0 Grad => Längsregler => RatioTapChanger
|
|
713
|
-
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
714
|
-
* 1 - Typ Meeden
|
|
715
|
-
* Symetrischer Querregler => PhaseTapChangerSymmetrical
|
|
716
|
-
* 2 - Typ Helmstedt
|
|
717
|
-
* Asymetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
718
|
-
* */
|
|
719
|
-
const wicklungsnummer = transformerEnd.endNumber;
|
|
720
|
-
/** Normieren auf die Wicklungsnummer, da 0 obere Spannungsseite ist */
|
|
721
|
-
const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
|
|
722
|
-
//const gestufteSeiteS1 = i7Data.gestufte_seite_s1 === 0 ? 1 : i7Data.gestufte_seite_s1;
|
|
723
|
-
if (gestufteSeite === wicklungsnummer) {
|
|
724
|
-
const lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
|
|
725
|
-
const highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
|
|
726
|
-
const neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
|
|
727
|
-
const currentStep = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
|
|
728
|
-
/** die Stufenpositionen werden auf 1..n normiert
|
|
729
|
-
* Zu Betimmung der aktuellen Stufe, wird ein Array mit den i7 Stufennummern angelegt.
|
|
730
|
-
* Der Index wird später die verwendet, um die normierte Stufenposition zu bestimmen */
|
|
731
|
-
const i7TapArray = getTapChangerStepArray(lowStep, highStep);
|
|
732
|
-
const mappedCurrentStep = i7TapArray.indexOf(currentStep) + 1;
|
|
733
|
-
const lowerVoltageStepCount = getTapChangerStepCount(lowStep, neutralStep); // 9
|
|
734
|
-
const increaseVoltageStepCount = getTapChangerStepCount(neutralStep, highStep);
|
|
735
|
-
const lowerVoltageStepIncrement = Math.abs(i7Data[`umin_s${transformerEnd.endNumber}`]) /*/ 100*/ / lowerVoltageStepCount * -1; // -0.01778 => -1.78%
|
|
736
|
-
let increaseVoltageStepIncrement = Math.abs(i7Data[`umax_s${transformerEnd.endNumber}`]) /*/ 100*/ / lowerVoltageStepCount; // 0.01778 => 1.78%
|
|
737
|
-
increaseVoltageStepIncrement = isNaN(increaseVoltageStepIncrement) ? 1 : increaseVoltageStepIncrement;
|
|
738
|
-
const ratioTapChangerTable = new RatioTapChangerTable_1.RatioTapChangerTable(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
|
|
739
|
-
// Spannung verringern
|
|
740
|
-
for (let i = 0; i < lowerVoltageStepCount; i++) {
|
|
741
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, i + 1, 1 + (lowerVoltageStepIncrement * (lowerVoltageStepCount - i)));
|
|
742
|
-
}
|
|
743
|
-
// neutral Step
|
|
744
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, lowerVoltageStepCount + 1, 1);
|
|
745
|
-
// Spannung erhoehen
|
|
746
|
-
for (let i = 0; i < increaseVoltageStepCount; i++) {
|
|
747
|
-
const step = (lowerVoltageStepCount + 1) + (i + 1);
|
|
748
|
-
(0, util_create_1.createRatioTapChangerTablePoint)(ratioTapChangerTable, step, 1 + (increaseVoltageStepIncrement * (i + 1)));
|
|
749
|
-
}
|
|
750
|
-
const ratioTapChanger = new RatioTapChanger_1.RatioTapChanger(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
|
|
751
|
-
// Attribute
|
|
752
|
-
ratioTapChanger.stepVoltageIncrement = increaseVoltageStepIncrement;
|
|
753
|
-
ratioTapChanger.tculControlMode = TransformerControlMode_1.TransformerControlMode.volt;
|
|
754
|
-
ratioTapChanger.ltcFlag = false;
|
|
755
|
-
ratioTapChanger.lowStep = 1;
|
|
756
|
-
ratioTapChanger.highStep = ratioTapChangerTable.ratioTapChangerTablePoints.length;
|
|
757
|
-
ratioTapChanger.neutralStep = i7TapArray.indexOf(neutralStep) + 1;
|
|
758
|
-
ratioTapChanger.normalStep = ratioTapChanger.neutralStep;
|
|
759
|
-
ratioTapChanger.step = mappedCurrentStep;
|
|
760
|
-
ratioTapChanger.transformerEnd = transformerEnd;
|
|
761
|
-
transformerEnd.ratioTapChanger = ratioTapChanger;
|
|
762
|
-
ratioTapChanger.neutralU = neutralU;
|
|
763
|
-
ratioTapChanger.ratioTapChangerTableUUID = ratioTapChangerTable.mrid;
|
|
764
|
-
ratioTapChangerTable.ratioTapChanger = ratioTapChanger;
|
|
765
|
-
// Ist die Regelungung aktiv?
|
|
766
|
-
// wenn ja, welche Art=
|
|
767
|
-
const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
|
|
768
|
-
if (regelung > 0) {
|
|
769
|
-
/** Ausprägungen
|
|
770
|
-
* 0 -> keine automatische Stufung
|
|
771
|
-
* 1 -> Spannungsbetragsregelung
|
|
772
|
-
* 2 -> Wirkflussvorgabe
|
|
773
|
-
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
774
|
-
* 4 -> Blindleitungsbilazierung
|
|
775
|
-
* */
|
|
776
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
777
|
-
tapChangerControl.discrete = true;
|
|
778
|
-
/** TODO usoll, umin, umax bestimmen -> Anschlusskoten bestimmen (ssab oder abzweigknoten) */
|
|
779
|
-
const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
|
|
780
|
-
const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
|
|
781
|
-
const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
|
|
782
|
-
const pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined; // PST Trafo
|
|
783
|
-
switch (regelung) {
|
|
784
|
-
case 1: {
|
|
785
|
-
ratioTapChanger.controlEnabled = true;
|
|
786
|
-
tapChangerControl.enabled = true;
|
|
787
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
788
|
-
tapChangerControl.targetValue = usoll;
|
|
789
|
-
tapChangerControl.targetDeadband = umax - usoll;
|
|
790
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
791
|
-
break;
|
|
792
|
-
}
|
|
793
|
-
case 2: {
|
|
794
|
-
ratioTapChanger.controlEnabled = true;
|
|
795
|
-
tapChangerControl.enabled = true;
|
|
796
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.activePower;
|
|
797
|
-
tapChangerControl.targetValue = pVorgabe;
|
|
798
|
-
// TODO targetDeadband
|
|
799
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
800
|
-
break;
|
|
801
|
-
}
|
|
802
|
-
case 3: {
|
|
803
|
-
ratioTapChanger.controlEnabled = true;
|
|
804
|
-
tapChangerControl.enabled = true;
|
|
805
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.currentFlow;
|
|
806
|
-
// TODO targetDeadband
|
|
807
|
-
// TODO targetValue
|
|
808
|
-
// TODO targetValueUnitMultiplier
|
|
809
|
-
break;
|
|
810
|
-
}
|
|
811
|
-
case 4: {
|
|
812
|
-
ratioTapChanger.controlEnabled = true;
|
|
813
|
-
tapChangerControl.enabled = true;
|
|
814
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.reactivePower;
|
|
815
|
-
// TODO targetDeadband
|
|
816
|
-
// TODO targetValue
|
|
817
|
-
// TODO targetValueUnitMultiplier
|
|
818
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
819
|
-
break;
|
|
820
|
-
}
|
|
821
|
-
}
|
|
822
|
-
// Assoziationen
|
|
823
|
-
ratioTapChanger.tapChangerControl = tapChangerControl;
|
|
824
|
-
tapChangerControl.addTapChanger(ratioTapChanger);
|
|
825
|
-
cimModel.addTapChangerControl(tapChangerControl);
|
|
826
|
-
}
|
|
827
|
-
else {
|
|
828
|
-
ratioTapChanger.controlEnabled = false;
|
|
829
|
-
}
|
|
830
|
-
// Spannungsgeregelter Anschluss
|
|
831
|
-
/**
|
|
832
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
833
|
-
* 1 - mittlere Spannungsseite (Anschluss 2)
|
|
834
|
-
* 2 - Niederspannungsseite (Anschluss 3)
|
|
835
|
-
* 3 - Externer Knoten
|
|
836
|
-
* */
|
|
837
|
-
/** Normieren auf die Wicklungsnummer, da 0 neben 1 obere Spannungsseite angibt */
|
|
838
|
-
const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
|
|
839
|
-
if (terminal) {
|
|
840
|
-
setTapChangerControl(ratioTapChanger, terminal.uuid);
|
|
841
|
-
}
|
|
842
|
-
else {
|
|
843
|
-
if (transformerEnd.ratioTapChanger) {
|
|
844
|
-
transformerEnd.ratioTapChanger.tapChangerControl = undefined;
|
|
845
|
-
transformerEnd.ratioTapChanger.tapChangerControlUUID = undefined;
|
|
846
|
-
}
|
|
847
|
-
}
|
|
848
|
-
//SV Profil: Aktuelle Stufenstellung
|
|
849
|
-
/* const svTapStep = new SvTapStep(CommonUtils.generateUUID(), i7TapArray.indexOf(currentStep) + 1, ratioTapChanger);
|
|
850
|
-
ratioTapChanger.svTapStepUUID = svTapStep.mrid;
|
|
851
|
-
cimModel.addSvTapStep(svTapStep);*/
|
|
852
|
-
cimModel.addRatioTapChanger(ratioTapChanger);
|
|
853
|
-
cimModel.addRatioTapChangerTable(ratioTapChangerTable);
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
exports.createRatioTapChanger = createRatioTapChanger;
|
|
857
|
-
function createPhaseTapChanger(i7Data, transformerEnd, cimModel, neutralU, trafoTerminals, knotenSpannungsband) {
|
|
858
|
-
// ist ein Stufenschalter vorhanden?
|
|
859
|
-
/**
|
|
860
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
861
|
-
* 1 - obere Spannungsseite (Anschluss 1)
|
|
862
|
-
* 2 - mittlere Spannungsseite (Anschluss 1)
|
|
863
|
-
* 3 - Niederspannungsseite (Anschluss 2)
|
|
864
|
-
* ? - Externer Knoten (Anschluss 3)
|
|
865
|
-
* */
|
|
866
|
-
/**
|
|
867
|
-
* 1 obere Spannungsseite
|
|
868
|
-
* 2 mittlere Spannungsseite
|
|
869
|
-
* 3 Niederspannungsseite
|
|
870
|
-
* */
|
|
871
|
-
/** Regelung */
|
|
872
|
-
/** Spezialregelung - trafo_spezial
|
|
873
|
-
* 0 - keine Spezialitäten
|
|
874
|
-
* Winkel == 0 Grad => Längsregler => RatioTapChanger
|
|
875
|
-
* Querregler Winkel != 0 => Querregler => PhaseTapChanger => PhaseTapChangerLinear | PhaseTapChangerTabular
|
|
876
|
-
* 1 - Typ Meeden
|
|
877
|
-
* Symetrischer Querregler => PhaseTapChangerSymmetrical
|
|
878
|
-
* 2 - Typ Helmstedt
|
|
879
|
-
* Asymetrischer Querregler => PhaseTapChangerAsymmetrical
|
|
880
|
-
* */
|
|
881
|
-
const wicklungsnummer = transformerEnd.endNumber;
|
|
882
|
-
/** Normieren auf die Wicklungsnummer, da 0 obere Spannungsseite ist */
|
|
883
|
-
const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
|
|
884
|
-
if (gestufteSeite === wicklungsnummer) {
|
|
885
|
-
const spezialregelung = i7Data.trafo_spezial;
|
|
886
|
-
/* const tapChangerControl = new TapChangerControl(CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
887
|
-
// TODO
|
|
888
|
-
tapChangerControl.mode = RegulatingControlModeKind.activePower;
|
|
889
|
-
tapChangerControl.discrete = true;*/
|
|
890
|
-
let phaseTapChanger;
|
|
891
|
-
switch (spezialregelung) {
|
|
892
|
-
case (2): {
|
|
893
|
-
const phaseTapChangerAsync = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
894
|
-
phaseTapChangerAsync.windingConnectionAngle = (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
|
|
895
|
-
phaseTapChanger = phaseTapChangerAsync;
|
|
896
|
-
cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
|
|
897
|
-
break;
|
|
898
|
-
}
|
|
899
|
-
default: {
|
|
900
|
-
// 0 - keine Spezialitäten
|
|
901
|
-
// 1 - Typ Meeden
|
|
902
|
-
const phaseTapChangerLinear = new PhaseTapChangerLinear_1.PhaseTapChangerLinear(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
903
|
-
phaseTapChangerLinear.stepPhaseShiftIncrement = (0, parser_utils_1.convertToNumberI7)(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
|
|
904
|
-
cimModel.addPhaseTapChangerLinear(phaseTapChangerLinear);
|
|
905
|
-
phaseTapChanger = phaseTapChangerLinear;
|
|
906
|
-
}
|
|
907
|
-
}
|
|
908
|
-
// Attribute
|
|
909
|
-
phaseTapChanger.ltcFlag = false;
|
|
910
|
-
phaseTapChanger.lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
|
|
911
|
-
phaseTapChanger.highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
|
|
912
|
-
phaseTapChanger.neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
|
|
913
|
-
phaseTapChanger.normalStep = phaseTapChanger.neutralStep;
|
|
914
|
-
phaseTapChanger.step = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
|
|
915
|
-
phaseTapChanger.neutralU = neutralU;
|
|
916
|
-
transformerEnd.phaseTapChanger = phaseTapChanger;
|
|
917
|
-
phaseTapChanger.transformerEndUUID = transformerEnd.mrid;
|
|
918
|
-
// Ist die Regelungung aktiv?
|
|
919
|
-
// wenn ja, welche Art=
|
|
920
|
-
const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
|
|
921
|
-
if (regelung > 0) {
|
|
922
|
-
/** Ausprägungen
|
|
923
|
-
* 0 -> keine automatische Stufung
|
|
924
|
-
* 1 -> Spannungsbetragsregelung
|
|
925
|
-
* 2 -> Wirkflussvorgabe
|
|
926
|
-
* 3 -> Stromkompoundierung -> stromabhängige Spannungsregelung
|
|
927
|
-
* 4 -> Blindleitungsbilazierung
|
|
928
|
-
* */
|
|
929
|
-
const tapChangerControl = new TapChangerControl_1.TapChangerControl(common_utils_1.CommonUtils.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
|
|
930
|
-
tapChangerControl.discrete = true;
|
|
931
|
-
/** TODO usoll, umin, umax bestimmen -> Anschlusskoten bestimmen (ssab oder abzweigknoten) */
|
|
932
|
-
const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
|
|
933
|
-
const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
|
|
934
|
-
const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
|
|
935
|
-
const pVorgabe = (0, parser_utils_1.isNumericI7)(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined; // PST Trafo
|
|
936
|
-
switch (regelung) {
|
|
937
|
-
case 1: {
|
|
938
|
-
phaseTapChanger.controlEnabled = true;
|
|
939
|
-
tapChangerControl.enabled = true;
|
|
940
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.voltage;
|
|
941
|
-
tapChangerControl.targetValue = usoll;
|
|
942
|
-
tapChangerControl.targetDeadband = umax - usoll;
|
|
943
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.k;
|
|
944
|
-
break;
|
|
945
|
-
}
|
|
946
|
-
case 2: {
|
|
947
|
-
phaseTapChanger.controlEnabled = true;
|
|
948
|
-
tapChangerControl.enabled = true;
|
|
949
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.activePower;
|
|
950
|
-
tapChangerControl.targetValue = pVorgabe;
|
|
951
|
-
// TODO targetDeadband
|
|
952
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
953
|
-
break;
|
|
954
|
-
}
|
|
955
|
-
case 3: {
|
|
956
|
-
phaseTapChanger.controlEnabled = true;
|
|
957
|
-
tapChangerControl.enabled = true;
|
|
958
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.currentFlow;
|
|
959
|
-
// TODO targetDeadband
|
|
960
|
-
// TODO targetValue
|
|
961
|
-
// TODO targetValueUnitMultiplier
|
|
962
|
-
break;
|
|
963
|
-
}
|
|
964
|
-
case 4: {
|
|
965
|
-
phaseTapChanger.controlEnabled = true;
|
|
966
|
-
tapChangerControl.enabled = true;
|
|
967
|
-
tapChangerControl.mode = RegulatingControlModeKind_1.RegulatingControlModeKind.reactivePower;
|
|
968
|
-
// TODO targetDeadband
|
|
969
|
-
// TODO targetValue
|
|
970
|
-
// TODO targetValueUnitMultiplier
|
|
971
|
-
tapChangerControl.targetValueUnitMultiplier = UnitMultiplier_1.UnitMultiplier.M;
|
|
972
|
-
break;
|
|
973
|
-
}
|
|
974
|
-
}
|
|
975
|
-
// Assoziationen
|
|
976
|
-
phaseTapChanger.tapChangerControl = tapChangerControl;
|
|
977
|
-
tapChangerControl.addTapChanger(phaseTapChanger);
|
|
978
|
-
cimModel.addTapChangerControl(tapChangerControl);
|
|
979
|
-
}
|
|
980
|
-
else {
|
|
981
|
-
phaseTapChanger.controlEnabled = false;
|
|
982
|
-
}
|
|
983
|
-
// Spannungsgeregelter Anschluss
|
|
984
|
-
/**
|
|
985
|
-
* 0 - obere Spannungsseite (Anschluss 1)
|
|
986
|
-
* 1 - mittlere Spannungsseite (Anschluss 2)
|
|
987
|
-
* 2 - Niederspannungsseite (Anschluss 3)
|
|
988
|
-
* 3 - Externer Knoten
|
|
989
|
-
* */
|
|
990
|
-
/** Normieren auf die Wicklungsnummer, da 0 neben 1 obere Spannungsseite angibt */
|
|
991
|
-
const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
|
|
992
|
-
if (terminal) {
|
|
993
|
-
setTapChangerControl(phaseTapChanger, terminal.uuid);
|
|
994
|
-
}
|
|
995
|
-
else {
|
|
996
|
-
if (transformerEnd.phaseTapChanger) {
|
|
997
|
-
transformerEnd.phaseTapChanger.tapChangerControl = undefined;
|
|
998
|
-
transformerEnd.phaseTapChanger.tapChangerControlUUID = undefined;
|
|
999
|
-
}
|
|
1000
|
-
// Phase
|
|
1001
|
-
console.log();
|
|
1002
|
-
}
|
|
1003
|
-
//SV Profil: Aktuelle Stufenstellung
|
|
1004
|
-
/* const svTapStep = new SvTapStep(CommonUtils.generateUUID(), i7TapArray.indexOf(currentStep) + 1, ratioTapChanger);
|
|
1005
|
-
ratioTapChanger.svTapStepUUID = svTapStep.mrid;
|
|
1006
|
-
cimModel.addSvTapStep(svTapStep);*/
|
|
1007
|
-
}
|
|
1008
|
-
}
|
|
1009
|
-
exports.createPhaseTapChanger = createPhaseTapChanger;
|
|
1010
719
|
function setTapChangerControl(tapChanger, terminalUUID) {
|
|
1011
720
|
if (tapChanger && terminalUUID) {
|
|
1012
721
|
if (tapChanger.tapChangerControl) {
|
|
@@ -1033,9 +742,150 @@ function getTapChangerStepArray(min, max) {
|
|
|
1033
742
|
}
|
|
1034
743
|
exports.getTapChangerStepArray = getTapChangerStepArray;
|
|
1035
744
|
function getActiveReactivePower(i7Data, mf) {
|
|
1036
|
-
|
|
1037
|
-
|
|
745
|
+
const flagInd = i7Data.flag_ind;
|
|
746
|
+
let s0 = (0, parser_utils_1.isNumericI7)(i7Data.s0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s0) : undefined;
|
|
747
|
+
const p0 = (0, parser_utils_1.isNumericI7)(i7Data.p0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.p0) : undefined;
|
|
748
|
+
let cosPhi = (0, parser_utils_1.isNumericI7)(i7Data.cos_phi) ? (0, parser_utils_1.convertToNumberI7)(i7Data.cos_phi) : undefined;
|
|
749
|
+
const q0Ind = (0, parser_utils_1.isNumericI7)(i7Data.q0_ind) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q0_ind) : undefined;
|
|
750
|
+
const q0Kap = (0, parser_utils_1.isNumericI7)(i7Data.q0_kap) ? (0, parser_utils_1.convertToNumberI7)(i7Data.q0_kap) : undefined;
|
|
751
|
+
const mf_p = mf && (0, parser_utils_1.isNumericI7)(mf.p) ? mf.p : 1;
|
|
752
|
+
const mf_q0_ind = mf && (0, parser_utils_1.isNumericI7)(mf.qInd) ? mf.qInd : 1;
|
|
753
|
+
const mf_q0_kap = mf && (0, parser_utils_1.isNumericI7)(mf.qKap) ? mf.qKap : 1;
|
|
754
|
+
const mf_cos_phi_ind = mf && (0, parser_utils_1.isNumericI7)(mf.cosPhiInd) ? mf.cosPhiInd : 1;
|
|
755
|
+
const mf_cos_phi_kap = mf && (0, parser_utils_1.isNumericI7)(mf.cosPhiKap) ? mf.cosPhiKap : 1;
|
|
756
|
+
let q0 = undefined;
|
|
757
|
+
let activePower = undefined;
|
|
758
|
+
let activePowerMf = undefined;
|
|
759
|
+
let reactivePower = undefined;
|
|
760
|
+
let reactivePowerMf = undefined;
|
|
761
|
+
if ((0, parser_utils_1.isNumericI7)(p0) && (0, parser_utils_1.isNumericI7)(cosPhi)) {
|
|
762
|
+
if (cosPhi <= 1 && (cosPhi > 0 || cosPhi < 0)) {
|
|
763
|
+
activePower = p0;
|
|
764
|
+
}
|
|
765
|
+
else if (cosPhi === 0) {
|
|
766
|
+
activePower = p0;
|
|
767
|
+
cosPhi = 1;
|
|
768
|
+
}
|
|
769
|
+
s0 = activePower / cosPhi;
|
|
770
|
+
q0 = Math.sqrt(Math.pow(s0, 2) - Math.pow(activePower, 2));
|
|
771
|
+
reactivePower = ((0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ind) || (0, parser_utils_1.convertToBooleanI7)(i7Data.flag_ind) === undefined) ? q0 : q0 * -1;
|
|
772
|
+
if (mf) {
|
|
773
|
+
activePowerMf = activePower * mf_p;
|
|
774
|
+
reactivePowerMf = reactivePower * mf_p; //If p0 and cosphi is given then reactive power is directly proportional to mf_p.
|
|
775
|
+
}
|
|
1038
776
|
}
|
|
777
|
+
else if ((0, parser_utils_1.isNumericI7)(p0) && !(0, parser_utils_1.isNumericI7)(q0Ind) && !(0, parser_utils_1.isNumericI7)(q0Kap) && !(0, parser_utils_1.isNumericI7)(s0) && !(0, parser_utils_1.isNumericI7)(cosPhi) && !(0, parser_utils_1.isNumericI7)(s0)) {
|
|
778
|
+
//Only p0 is given.
|
|
779
|
+
activePower = p0;
|
|
780
|
+
reactivePower = 0;
|
|
781
|
+
activePowerMf = activePower * mf_p;
|
|
782
|
+
reactivePowerMf = 0;
|
|
783
|
+
}
|
|
784
|
+
else if (!(0, parser_utils_1.isNumericI7)(p0) && ((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap)) && !(0, parser_utils_1.isNumericI7)(s0) && !(0, parser_utils_1.isNumericI7)(cosPhi)) {
|
|
785
|
+
//Only q is given
|
|
786
|
+
activePower = 0;
|
|
787
|
+
activePowerMf = 0;
|
|
788
|
+
if (q0Ind && q0Kap) {
|
|
789
|
+
reactivePower = q0Ind - q0Kap;
|
|
790
|
+
reactivePowerMf = q0Ind * mf_q0_ind - q0Kap * mf_q0_kap;
|
|
791
|
+
}
|
|
792
|
+
else if (q0Ind && !q0Kap) {
|
|
793
|
+
reactivePower = q0Ind;
|
|
794
|
+
reactivePowerMf = reactivePower * mf_q0_ind;
|
|
795
|
+
}
|
|
796
|
+
else {
|
|
797
|
+
reactivePower = q0Kap * -1;
|
|
798
|
+
reactivePowerMf = reactivePower * mf_q0_kap;
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
else if ((0, parser_utils_1.isNumericI7)(p0) && ((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap))) {
|
|
802
|
+
activePower = p0;
|
|
803
|
+
activePowerMf = p0 * mf_p;
|
|
804
|
+
if (q0Ind && !q0Kap) {
|
|
805
|
+
reactivePower = q0Ind;
|
|
806
|
+
reactivePowerMf = reactivePower * mf_q0_ind;
|
|
807
|
+
}
|
|
808
|
+
else {
|
|
809
|
+
reactivePower = q0Kap * -1;
|
|
810
|
+
reactivePowerMf = reactivePower * mf_q0_kap;
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
else if ((0, parser_utils_1.isNumericI7)(p0) && (0, parser_utils_1.isNumericI7)(q0Ind) && (0, parser_utils_1.isNumericI7)(q0Kap)) {
|
|
814
|
+
activePower = p0;
|
|
815
|
+
activePowerMf = p0 * mf_p;
|
|
816
|
+
reactivePower = q0Ind - q0Kap;
|
|
817
|
+
reactivePowerMf = q0Ind * mf_q0_ind - q0Kap * mf_q0_kap;
|
|
818
|
+
}
|
|
819
|
+
else if (((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap)) && (0, parser_utils_1.isNumericI7)(cosPhi)) {
|
|
820
|
+
if (q0Ind && q0Kap && (flagInd || flagInd === undefined)) {
|
|
821
|
+
reactivePower = q0Ind - q0Kap;
|
|
822
|
+
reactivePowerMf = q0Ind * mf_q0_ind - q0Kap * mf_q0_kap;
|
|
823
|
+
}
|
|
824
|
+
else if (q0Ind && !q0Kap) {
|
|
825
|
+
reactivePower = q0Ind;
|
|
826
|
+
reactivePowerMf = reactivePower * mf_q0_ind;
|
|
827
|
+
}
|
|
828
|
+
else {
|
|
829
|
+
reactivePower = q0Kap * -1;
|
|
830
|
+
reactivePowerMf = reactivePower * mf_q0_kap;
|
|
831
|
+
}
|
|
832
|
+
if (cosPhi < 1 && cosPhi >= 0) {
|
|
833
|
+
activePower = (reactivePower) / (Math.sqrt(1 / cosPhi - 1));
|
|
834
|
+
}
|
|
835
|
+
else if (cosPhi === 0) {
|
|
836
|
+
activePower = 0;
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
else if ((0, parser_utils_1.isNumericI7)(s0) && (0, parser_utils_1.isNumericI7)(cosPhi)) {
|
|
840
|
+
activePower = s0 * cosPhi;
|
|
841
|
+
activePowerMf = activePower * mf_p;
|
|
842
|
+
reactivePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(activePower, 2));
|
|
843
|
+
reactivePowerMf = reactivePower * mf_p;
|
|
844
|
+
}
|
|
845
|
+
else if ((0, parser_utils_1.isNumericI7)(s0) && (0, parser_utils_1.isNumericI7)(p0)) {
|
|
846
|
+
activePower = p0;
|
|
847
|
+
activePowerMf = activePower * mf_p;
|
|
848
|
+
reactivePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(activePower, 2));
|
|
849
|
+
reactivePowerMf = reactivePower * mf_p;
|
|
850
|
+
}
|
|
851
|
+
else if ((0, parser_utils_1.isNumericI7)(s0) && (0, parser_utils_1.isNumericI7)(q0Ind) && (0, parser_utils_1.isNumericI7)(q0Kap)) {
|
|
852
|
+
reactivePower = q0Ind - q0Kap;
|
|
853
|
+
reactivePowerMf = q0Ind * mf_q0_ind - q0Kap * mf_q0_kap;
|
|
854
|
+
activePower = (reactivePower) / (Math.sqrt(1 / cosPhi - 1));
|
|
855
|
+
activePowerMf = activePowerMf * mf_p;
|
|
856
|
+
}
|
|
857
|
+
else if ((0, parser_utils_1.isNumericI7)(s0) && ((0, parser_utils_1.isNumericI7)(q0Ind) || (0, parser_utils_1.isNumericI7)(q0Kap))) {
|
|
858
|
+
if (q0Ind && !q0Kap) {
|
|
859
|
+
reactivePower = q0Ind;
|
|
860
|
+
reactivePowerMf = reactivePower * mf_q0_ind;
|
|
861
|
+
}
|
|
862
|
+
else {
|
|
863
|
+
reactivePower = q0Kap * -1;
|
|
864
|
+
reactivePowerMf = reactivePower * mf_q0_kap;
|
|
865
|
+
}
|
|
866
|
+
activePower = (reactivePower) / (Math.sqrt(1 / cosPhi - 1));
|
|
867
|
+
activePowerMf = activePowerMf * mf_p;
|
|
868
|
+
}
|
|
869
|
+
//Overwrite values for reactivePower, in case of mfcosPhiInd of mf.cosPhiKap is given.
|
|
870
|
+
if (mf && ((0, parser_utils_1.isNumericI7)(mf_cos_phi_ind) || (0, parser_utils_1.isNumericI7)(mf_cos_phi_kap))) {
|
|
871
|
+
if ((0, parser_utils_1.isNumericI7)(mf.cosPhiInd) && (0, parser_utils_1.isNumericI7)(mf.cosPhiKap)) {
|
|
872
|
+
const inductiveReactivePowerMf = Math.sqrt((Math.pow(activePowerMf, 2) - Math.pow(activePowerMf * mf.cosPhiInd, 2)) / Math.pow(mf.cosPhiInd, 2));
|
|
873
|
+
const capacitivereactivePowerMf = -1 * Math.sqrt((Math.pow(activePowerMf, 2) - Math.pow(activePowerMf * mf.cosPhiKap, 2)) / Math.pow(mf.cosPhiKap, 2));
|
|
874
|
+
reactivePowerMf = inductiveReactivePowerMf - capacitivereactivePowerMf;
|
|
875
|
+
}
|
|
876
|
+
else if ((0, parser_utils_1.isNumericI7)(mf.cosPhiInd)) {
|
|
877
|
+
//compute inductive reactive power
|
|
878
|
+
reactivePowerMf = Math.sqrt((Math.pow(activePowerMf, 2) - Math.pow(activePowerMf * mf.cosPhiInd, 2)) / Math.pow(mf.cosPhiInd, 2));
|
|
879
|
+
}
|
|
880
|
+
else if ((0, parser_utils_1.isNumericI7)(mf.cosPhiKap)) {
|
|
881
|
+
//compute capacitive reactive power
|
|
882
|
+
reactivePowerMf = -1 * Math.sqrt((Math.pow(activePowerMf, 2) - Math.pow(activePowerMf * mf.cosPhiKap, 2)) / Math.pow(mf.cosPhiKap, 2));
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
return [activePower, reactivePower, Math.abs(activePowerMf), Math.abs(reactivePowerMf)];
|
|
886
|
+
}
|
|
887
|
+
exports.getActiveReactivePower = getActiveReactivePower;
|
|
888
|
+
function getActiveReactivePower2(i7Data, mf) {
|
|
1039
889
|
//TODO: Ticket bei INTEGRAL erstellen und erfragen, wie die Priorisierung bei der Anwendung der MF und p0, q0, s0, cosphi ist.
|
|
1040
890
|
const flagInd = i7Data.flag_ind;
|
|
1041
891
|
let s0 = (0, parser_utils_1.isNumericI7)(i7Data.s0) ? (0, parser_utils_1.convertToNumberI7)(i7Data.s0) : undefined;
|
|
@@ -1175,7 +1025,22 @@ function getActiveReactivePower(i7Data, mf) {
|
|
|
1175
1025
|
}
|
|
1176
1026
|
return [activePower, reactivePower, activePowerMf, reactivePowerMf];
|
|
1177
1027
|
}
|
|
1178
|
-
exports.
|
|
1028
|
+
exports.getActiveReactivePower2 = getActiveReactivePower2;
|
|
1029
|
+
/**
|
|
1030
|
+
* Computation of mechanical power.
|
|
1031
|
+
* @param sr rated apparent power in MVA
|
|
1032
|
+
* @param efficiency percent value between 0..1
|
|
1033
|
+
* @param powerFactor float value between 0..1
|
|
1034
|
+
* @returns ret_val mechanical power in MW
|
|
1035
|
+
*/
|
|
1036
|
+
function getPMech(sr, efficiency, powerFactor) {
|
|
1037
|
+
let ret_val = undefined;
|
|
1038
|
+
if (sr !== undefined && powerFactor !== undefined) {
|
|
1039
|
+
ret_val = sr * powerFactor * efficiency;
|
|
1040
|
+
}
|
|
1041
|
+
return ret_val;
|
|
1042
|
+
}
|
|
1043
|
+
exports.getPMech = getPMech;
|
|
1179
1044
|
function getDescription(object) {
|
|
1180
1045
|
if (object)
|
|
1181
1046
|
return ueberpruefeZeichenkette(object.description);
|
|
@@ -1372,10 +1237,10 @@ function putUUIDtoI7Ids(uuid, i7ID, UUID2IntegralID) {
|
|
|
1372
1237
|
}
|
|
1373
1238
|
}
|
|
1374
1239
|
exports.putUUIDtoI7Ids = putUUIDtoI7Ids;
|
|
1375
|
-
function getPSRType(cimModel, name) {
|
|
1240
|
+
function getPSRType(cimModel, name, configUuid) {
|
|
1376
1241
|
let psrType = cimModel.getPsrTypeAtName(name);
|
|
1377
1242
|
if (!psrType) {
|
|
1378
|
-
psrType = new PSRType_1.PSRType(common_utils_1.CommonUtils.
|
|
1243
|
+
psrType = new PSRType_1.PSRType(common_utils_1.CommonUtils.generateUUIDv5(cim_class_names_1.ClassNames.PSRType, configUuid, name), name);
|
|
1379
1244
|
cimModel.addPsrType(psrType);
|
|
1380
1245
|
}
|
|
1381
1246
|
return psrType;
|
|
@@ -1393,16 +1258,185 @@ function createWriteStreamPromise(writeStream) {
|
|
|
1393
1258
|
});
|
|
1394
1259
|
}
|
|
1395
1260
|
exports.createWriteStreamPromise = createWriteStreamPromise;
|
|
1396
|
-
function createRegulatingControl(name, enabled, unitMultiplier, mode
|
|
1397
|
-
const regulatingControl = new RegulatingControl_1.RegulatingControl(
|
|
1261
|
+
function createRegulatingControl(uuid, name, enabled, unitMultiplier, mode) {
|
|
1262
|
+
const regulatingControl = new RegulatingControl_1.RegulatingControl(uuid, name);
|
|
1398
1263
|
regulatingControl.enabled = enabled;
|
|
1399
1264
|
regulatingControl.targetValueUnitMultiplier = unitMultiplier;
|
|
1400
1265
|
regulatingControl.mode = mode;
|
|
1401
|
-
regulatingCondEq.regulatingControl = regulatingControl;
|
|
1402
|
-
cimModel.addRegulatingControl(regulatingControl);
|
|
1403
1266
|
return regulatingControl;
|
|
1404
1267
|
}
|
|
1405
1268
|
exports.createRegulatingControl = createRegulatingControl;
|
|
1269
|
+
/**Calculate Zero Sequence Impedanzen
|
|
1270
|
+
* @param scZeroSepImp real and imaginary parts of the measured short circuit impedances for the powertransformer endings.
|
|
1271
|
+
* @param idleZeroSeqImp real and imaginary parts of the measured no load impedances for the powertransformer endings.
|
|
1272
|
+
* @param baseVoltage rated voltages of the powertransformer endings.
|
|
1273
|
+
* */
|
|
1274
|
+
function calculateComplexZeroSequImpedanzenTrafo(scZeroSeqImp, idleZeroSeqImp, baseVoltage, groundingCount, powerTransformer) {
|
|
1275
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1276
|
+
const conversion_factor_ur = Math.pow(10, 3);
|
|
1277
|
+
const ur1 = baseVoltage[0];
|
|
1278
|
+
const ur2 = baseVoltage[1];
|
|
1279
|
+
const ur3 = baseVoltage[2];
|
|
1280
|
+
let r00r1 = idleZeroSeqImp[0];
|
|
1281
|
+
let x00r1 = idleZeroSeqImp[1];
|
|
1282
|
+
let r00r2 = idleZeroSeqImp[2];
|
|
1283
|
+
let x00r2 = idleZeroSeqImp[3];
|
|
1284
|
+
let r0kr1 = scZeroSeqImp[0];
|
|
1285
|
+
let x0kr1 = scZeroSeqImp[1];
|
|
1286
|
+
let r0kr2 = scZeroSeqImp[2]; //not needed. overdetermined eq
|
|
1287
|
+
let x0kr2 = scZeroSeqImp[3]; //not needed. overdetermined eq
|
|
1288
|
+
let z01 = new complex_js_1.default(r00r1, x00r1);
|
|
1289
|
+
let z02 = new complex_js_1.default(r00r2, x00r2);
|
|
1290
|
+
let z01k = new complex_js_1.default(r0kr1, x0kr1);
|
|
1291
|
+
let z02k = new complex_js_1.default(r0kr2, x0kr2);
|
|
1292
|
+
let incidents = 0;
|
|
1293
|
+
const impedanz = {
|
|
1294
|
+
r01: 0,
|
|
1295
|
+
r02: 0,
|
|
1296
|
+
r03: 0,
|
|
1297
|
+
x01: 0,
|
|
1298
|
+
x02: 0,
|
|
1299
|
+
x03: 0
|
|
1300
|
+
};
|
|
1301
|
+
let ret_val = undefined;
|
|
1302
|
+
switch (baseVoltage.length) {
|
|
1303
|
+
case (2): { //two-winding-powertransformer
|
|
1304
|
+
if (ur1 >= ur2) {
|
|
1305
|
+
impedanz['r01'] = r00r1;
|
|
1306
|
+
impedanz['r02'] = 0;
|
|
1307
|
+
impedanz['r03'] = undefined;
|
|
1308
|
+
impedanz['x01'] = x00r1;
|
|
1309
|
+
impedanz['x02'] = 0;
|
|
1310
|
+
impedanz['x03'] = undefined;
|
|
1311
|
+
}
|
|
1312
|
+
else {
|
|
1313
|
+
impedanz['r01'] = 0;
|
|
1314
|
+
impedanz['r02'] = r00r2;
|
|
1315
|
+
impedanz['r03'] = undefined;
|
|
1316
|
+
impedanz['x01'] = 0;
|
|
1317
|
+
impedanz['x02'] = x00r2;
|
|
1318
|
+
impedanz['x03'] = undefined;
|
|
1319
|
+
}
|
|
1320
|
+
ret_val = impedanz;
|
|
1321
|
+
break;
|
|
1322
|
+
}
|
|
1323
|
+
case (3): { //three-winding-powertransformer
|
|
1324
|
+
switch (groundingCount) {
|
|
1325
|
+
case (0): {
|
|
1326
|
+
break;
|
|
1327
|
+
}
|
|
1328
|
+
case (1): {
|
|
1329
|
+
break;
|
|
1330
|
+
}
|
|
1331
|
+
case (2): {
|
|
1332
|
+
if (z01k.mul(z02) != z02k.mul(z01)) {
|
|
1333
|
+
if (r00r1 == undefined || x00r1 == undefined) { //z01 not given
|
|
1334
|
+
z01 = (z01k.mul(z02)).div(z02k);
|
|
1335
|
+
r00r1 = z01.re;
|
|
1336
|
+
x00r1 = z01.im;
|
|
1337
|
+
incidents++;
|
|
1338
|
+
}
|
|
1339
|
+
if (r00r2 == undefined || x00r2 == undefined) { //z02 not given
|
|
1340
|
+
z02 = (z01.mul(z02k)).div(z01k);
|
|
1341
|
+
r00r2 = z02.re;
|
|
1342
|
+
x00r2 = z02.im;
|
|
1343
|
+
incidents++;
|
|
1344
|
+
}
|
|
1345
|
+
if (r0kr1 == undefined || x0kr1 == undefined) { //z01k not given
|
|
1346
|
+
z01k = (z01.mul(z02k)).div(z02);
|
|
1347
|
+
r0kr1 = z01k.re;
|
|
1348
|
+
x0kr1 = z01k.im;
|
|
1349
|
+
incidents++;
|
|
1350
|
+
}
|
|
1351
|
+
if (r0kr2 == undefined || x0kr2 == undefined) { //z02k not given
|
|
1352
|
+
z02k = (z01k.mul(z02)).div(z01);
|
|
1353
|
+
r0kr2 = z02k.re;
|
|
1354
|
+
x0kr2 = z02k.im;
|
|
1355
|
+
incidents++;
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
const z01OHM = new complex_js_1.default(r00r1, x00r1);
|
|
1359
|
+
const z02OHM = new complex_js_1.default(r00r2, x00r2).mul((Math.pow(ur1 * conversion_factor_ur, 2)) / (Math.pow(ur2 * conversion_factor_ur, 2)));
|
|
1360
|
+
const zsOHM = new complex_js_1.default(r0kr1, x0kr1);
|
|
1361
|
+
const ztOHM = (z02OHM.mul(z01OHM.sub(zsOHM))).sqrt();
|
|
1362
|
+
const z_osOHM = z01OHM.sub(ztOHM);
|
|
1363
|
+
const z_msOHM = z02OHM.sub(ztOHM).mul((Math.pow(ur2 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
|
|
1364
|
+
const z_usOHM = ztOHM.mul((Math.pow(ur3 * conversion_factor_ur, 2)) / (Math.pow(ur1 * conversion_factor_ur, 2)));
|
|
1365
|
+
impedanz['r01'] = z_osOHM.re;
|
|
1366
|
+
impedanz['r02'] = z_msOHM.re;
|
|
1367
|
+
impedanz['r03'] = z_usOHM.re;
|
|
1368
|
+
impedanz['x01'] = z_osOHM.im;
|
|
1369
|
+
impedanz['x02'] = z_msOHM.im;
|
|
1370
|
+
impedanz['x03'] = z_usOHM.im;
|
|
1371
|
+
ret_val = impedanz;
|
|
1372
|
+
break;
|
|
1373
|
+
}
|
|
1374
|
+
case (3): {
|
|
1375
|
+
impedanz['r01'] = (_a = powerTransformer.powerTransformerEnd[0]) === null || _a === void 0 ? void 0 : _a.r;
|
|
1376
|
+
impedanz['r02'] = (_b = powerTransformer.powerTransformerEnd[1]) === null || _b === void 0 ? void 0 : _b.r;
|
|
1377
|
+
impedanz['r03'] = (_c = powerTransformer.powerTransformerEnd[2]) === null || _c === void 0 ? void 0 : _c.r;
|
|
1378
|
+
impedanz['x01'] = (_d = powerTransformer.powerTransformerEnd[0]) === null || _d === void 0 ? void 0 : _d.x;
|
|
1379
|
+
impedanz['x02'] = (_e = powerTransformer.powerTransformerEnd[1]) === null || _e === void 0 ? void 0 : _e.x;
|
|
1380
|
+
impedanz['x03'] = (_f = powerTransformer.powerTransformerEnd[2]) === null || _f === void 0 ? void 0 : _f.x;
|
|
1381
|
+
break;
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
}
|
|
1385
|
+
default: {
|
|
1386
|
+
ret_val = impedanz;
|
|
1387
|
+
}
|
|
1388
|
+
}
|
|
1389
|
+
//calculation with complex numbers
|
|
1390
|
+
return [ret_val, incidents <= 1];
|
|
1391
|
+
}
|
|
1392
|
+
exports.calculateComplexZeroSequImpedanzenTrafo = calculateComplexZeroSequImpedanzenTrafo;
|
|
1393
|
+
function getGroundingCountFromWindingConnection(powerTransformer) {
|
|
1394
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
1395
|
+
let retVal = undefined;
|
|
1396
|
+
let count = 0;
|
|
1397
|
+
let count2 = 0;
|
|
1398
|
+
let count3 = 0;
|
|
1399
|
+
let powerTransformerEndCount = powerTransformer.powerTransformerEnd.length;
|
|
1400
|
+
switch (powerTransformerEndCount) {
|
|
1401
|
+
case (2): {
|
|
1402
|
+
const powerTransformerEnd1 = powerTransformer.powerTransformerEnd[0];
|
|
1403
|
+
const powerTransformerEnd2 = powerTransformer.powerTransformerEnd[1];
|
|
1404
|
+
count = (((_a = powerTransformerEnd1.connectionKind.match('Y')) === null || _a === void 0 ? void 0 : _a.length) ? (_b = powerTransformerEnd1.connectionKind.match('Y')) === null || _b === void 0 ? void 0 : _b.length : 0);
|
|
1405
|
+
if (count == 0) {
|
|
1406
|
+
count = (((_c = powerTransformerEnd1.connectionKind.match('Z')) === null || _c === void 0 ? void 0 : _c.length) ? (_d = powerTransformerEnd1.connectionKind.match('Z')) === null || _d === void 0 ? void 0 : _d.length : 0);
|
|
1407
|
+
}
|
|
1408
|
+
count2 = (((_e = powerTransformerEnd2.connectionKind.match('Y')) === null || _e === void 0 ? void 0 : _e.length) ? (_f = powerTransformerEnd2.connectionKind.match('Y')) === null || _f === void 0 ? void 0 : _f.length : 0);
|
|
1409
|
+
if (count2 == 0) {
|
|
1410
|
+
count2 = (((_g = powerTransformerEnd2.connectionKind.match('Z')) === null || _g === void 0 ? void 0 : _g.length) ? (_h = powerTransformerEnd2.connectionKind.match('Z')) === null || _h === void 0 ? void 0 : _h.length : 0);
|
|
1411
|
+
}
|
|
1412
|
+
retVal = count + count2;
|
|
1413
|
+
break;
|
|
1414
|
+
}
|
|
1415
|
+
case (3): {
|
|
1416
|
+
const powerTransformerEnd1 = powerTransformer.powerTransformerEnd[0];
|
|
1417
|
+
const powerTransformerEnd2 = powerTransformer.powerTransformerEnd[1];
|
|
1418
|
+
const powerTransformerEnd3 = powerTransformer.powerTransformerEnd[2];
|
|
1419
|
+
count = (((_j = powerTransformerEnd1.connectionKind.match('Y')) === null || _j === void 0 ? void 0 : _j.length) ? (_k = powerTransformerEnd1.connectionKind.match('Y')) === null || _k === void 0 ? void 0 : _k.length : 0);
|
|
1420
|
+
if (count == 0) {
|
|
1421
|
+
count = (((_l = powerTransformerEnd1.connectionKind.match('Z')) === null || _l === void 0 ? void 0 : _l.length) ? (_m = powerTransformerEnd1.connectionKind.match('Z')) === null || _m === void 0 ? void 0 : _m.length : 0);
|
|
1422
|
+
}
|
|
1423
|
+
count2 = (((_o = powerTransformerEnd2.connectionKind.match('Y')) === null || _o === void 0 ? void 0 : _o.length) ? (_p = powerTransformerEnd2.connectionKind.match('Y')) === null || _p === void 0 ? void 0 : _p.length : 0);
|
|
1424
|
+
if (count2 == 0) {
|
|
1425
|
+
count2 = (((_q = powerTransformerEnd2.connectionKind.match('Z')) === null || _q === void 0 ? void 0 : _q.length) ? (_r = powerTransformerEnd2.connectionKind.match('Z')) === null || _r === void 0 ? void 0 : _r.length : 0);
|
|
1426
|
+
}
|
|
1427
|
+
count3 = (((_s = powerTransformerEnd3.connectionKind.match('Y')) === null || _s === void 0 ? void 0 : _s.length) ? (_t = powerTransformerEnd3.connectionKind.match('Y')) === null || _t === void 0 ? void 0 : _t.length : 0);
|
|
1428
|
+
if (count3 == 0) {
|
|
1429
|
+
count3 = (((_u = powerTransformerEnd3.connectionKind.match('Z')) === null || _u === void 0 ? void 0 : _u.length) ? (_v = powerTransformerEnd3.connectionKind.match('Z')) === null || _v === void 0 ? void 0 : _v.length : 0);
|
|
1430
|
+
}
|
|
1431
|
+
retVal = count + count2 + count3;
|
|
1432
|
+
break;
|
|
1433
|
+
}
|
|
1434
|
+
default:
|
|
1435
|
+
retVal = 0;
|
|
1436
|
+
}
|
|
1437
|
+
return retVal;
|
|
1438
|
+
}
|
|
1439
|
+
exports.getGroundingCountFromWindingConnection = getGroundingCountFromWindingConnection;
|
|
1406
1440
|
function getSpannungsband(propName, knotenSpannungsband, defaultValue) {
|
|
1407
1441
|
if (knotenSpannungsband) {
|
|
1408
1442
|
switch (propName) {
|
|
@@ -1440,9 +1474,6 @@ function getSpannungsband(propName, knotenSpannungsband, defaultValue) {
|
|
|
1440
1474
|
return knotenSpannungsband.usoll;
|
|
1441
1475
|
}
|
|
1442
1476
|
}
|
|
1443
|
-
if ((0, parser_utils_1.isNumericI7)(knotenSpannungsband[propName])) {
|
|
1444
|
-
return knotenSpannungsband[propName];
|
|
1445
|
-
}
|
|
1446
1477
|
}
|
|
1447
1478
|
else {
|
|
1448
1479
|
return defaultValue;
|