@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.
Files changed (310) hide show
  1. package/dist/constants/cim-class-names.d.ts +10 -0
  2. package/dist/constants/cim-class-names.js +11 -1
  3. package/dist/constants/cim-class-names.js.map +1 -1
  4. package/dist/converter/PSDM/ConverterPowerSystemDataModel.js +3 -3
  5. package/dist/converter/PSDM/ConverterPowerSystemDataModel.js.map +1 -1
  6. package/dist/converter/cgmes-validator.d.ts +3 -3
  7. package/dist/converter/cgmes-validator.js.map +1 -1
  8. package/dist/converter/integral7/config/integral-prefix.d.ts +2 -0
  9. package/dist/converter/integral7/config/integral-prefix.js +3 -1
  10. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  11. package/dist/converter/integral7/converter.integral7.d.ts +39 -42
  12. package/dist/converter/integral7/converter.integral7.js +1098 -899
  13. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  14. package/dist/converter/integral7/dl-convert/data-manager.d.ts +1 -10
  15. package/dist/converter/integral7/dl-convert/data-manager.js +7 -36
  16. package/dist/converter/integral7/dl-convert/data-manager.js.map +1 -1
  17. package/dist/converter/integral7/dl-convert/db/data-types.d.ts +0 -9
  18. package/dist/converter/integral7/dl-convert/db/data-types.js +0 -11
  19. package/dist/converter/integral7/dl-convert/db/data-types.js.map +1 -1
  20. package/dist/converter/integral7/dl-convert/db/database.interface.types.d.ts +229 -0
  21. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +153 -99
  22. package/dist/converter/integral7/dl-convert/dl-converter-i7.js +3401 -1315
  23. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  24. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.d.ts +9 -2
  25. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js +19 -7
  26. package/dist/converter/integral7/dl-convert/dl-graphs/cim-model-graph.js.map +1 -1
  27. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.d.ts +105 -5
  28. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js +68 -2
  29. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js.map +1 -1
  30. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.d.ts +1 -1
  31. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js +45 -25
  32. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js.map +1 -1
  33. package/dist/converter/integral7/dl-convert/executor.d.ts +4 -1
  34. package/dist/converter/integral7/dl-convert/executor.js +233 -114
  35. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  36. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +3 -3
  37. package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.d.ts → default-values-config.interface.d.ts} +4 -1
  38. package/dist/converter/integral7/interface-i7/{IDefaultValuesConfig.js → default-values-config.interface.js} +1 -1
  39. package/dist/converter/integral7/interface-i7/default-values-config.interface.js.map +1 -0
  40. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +5 -5
  41. package/dist/converter/integral7/interface-i7/export-frame-i7.js +7 -1
  42. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  43. package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.d.ts +3 -0
  44. package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.js → integral7-converter-config.interface.js} +1 -1
  45. package/dist/converter/integral7/interface-i7/integral7-converter-config.interface.js.map +1 -0
  46. package/dist/converter/integral7/interface-i7/{IObjectMappingConfig.d.ts → object-mapping-config.interface.d.ts} +1 -1
  47. package/dist/converter/integral7/interface-i7/{IIntegral7ConverterConfig.js → object-mapping-config.interface.js} +1 -1
  48. package/dist/converter/integral7/interface-i7/object-mapping-config.interface.js.map +1 -0
  49. package/dist/converter/integral7/interface-i7/uuid-config.interface.d.ts +5 -0
  50. package/dist/converter/integral7/{dl-convert/dl-converter-i7.types.js → interface-i7/uuid-config.interface.js} +1 -1
  51. package/dist/converter/integral7/interface-i7/uuid-config.interface.js.map +1 -0
  52. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +7 -41
  53. package/dist/converter/integral7/model/dl-utils/util-functions.js +11 -699
  54. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
  55. package/dist/converter/integral7/model/integral/HgueleitungImpl.d.ts +24 -0
  56. package/dist/converter/integral7/model/integral/HgueleitungImpl.js +7 -0
  57. package/dist/converter/integral7/model/integral/HgueleitungImpl.js.map +1 -0
  58. package/dist/converter/integral7/model/integral/Leitung.d.ts +1 -0
  59. package/dist/converter/integral7/model/integral/Leitung.js +1 -0
  60. package/dist/converter/integral7/model/integral/Leitung.js.map +1 -1
  61. package/dist/converter/integral7/model/interfaces.d.ts +94 -31
  62. package/dist/converter/integral7/model/interfaces.js.map +1 -1
  63. package/dist/converter/integral7/sql/integral.sql.d.ts +4 -1
  64. package/dist/converter/integral7/sql/integral.sql.js +21 -15
  65. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  66. package/dist/converter/integral7/util-cim.model.d.ts +14 -0
  67. package/dist/converter/integral7/util-cim.model.js +27 -0
  68. package/dist/converter/integral7/util-cim.model.js.map +1 -0
  69. package/dist/converter/integral7/utils-cgmes-export.d.ts +10 -10
  70. package/dist/converter/integral7/utils-cgmes-export.js +5 -0
  71. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  72. package/dist/converter/integral7/utils-trafo3w.d.ts +2 -2
  73. package/dist/converter/integral7/utils-trafo3w.js +21 -4
  74. package/dist/converter/integral7/utils-trafo3w.js.map +1 -1
  75. package/dist/converter/integral7/utils.d.ts +27 -25
  76. package/dist/converter/integral7/utils.js +373 -342
  77. package/dist/converter/integral7/utils.js.map +1 -1
  78. package/dist/etl/etl-dppower/etl-dppower.d.ts +15 -0
  79. package/dist/etl/etl-dppower/etl-dppower.js +204 -0
  80. package/dist/etl/etl-dppower/etl-dppower.js.map +1 -0
  81. package/dist/etl/etl-neplan/etl-neplan.js +15 -8
  82. package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
  83. package/dist/index.d.ts +3 -1
  84. package/dist/index.js +6 -3
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +3 -3
  87. package/dist/interfaces/model/wires/IRegulatingCondEq.d.ts +3 -0
  88. package/dist/model/assetinfo/CableInfo.d.ts +7 -0
  89. package/dist/model/assetinfo/CableInfo.js +49 -0
  90. package/dist/model/assetinfo/CableInfo.js.map +1 -1
  91. package/dist/model/assetinfo/OverheadWireInfo.d.ts +7 -0
  92. package/dist/model/assetinfo/OverheadWireInfo.js +49 -0
  93. package/dist/model/assetinfo/OverheadWireInfo.js.map +1 -1
  94. package/dist/model/assetinfo/WireInfo.d.ts +1 -0
  95. package/dist/model/assetinfo/WireInfo.js.map +1 -1
  96. package/dist/model/assets/Facility.js +17 -3
  97. package/dist/model/assets/Facility.js.map +1 -1
  98. package/dist/model/assets/LifecycleDate.d.ts +1 -0
  99. package/dist/model/assets/LifecycleDate.js +3 -0
  100. package/dist/model/assets/LifecycleDate.js.map +1 -1
  101. package/dist/model/common/Location.js +1 -1
  102. package/dist/model/common/Location.js.map +1 -1
  103. package/dist/model/common/PositionPoint.js +3 -18
  104. package/dist/model/common/PositionPoint.js.map +1 -1
  105. package/dist/model/core/ACDCTerminal.d.ts +2 -2
  106. package/dist/model/core/ACDCTerminal.js +2 -1
  107. package/dist/model/core/ACDCTerminal.js.map +1 -1
  108. package/dist/model/core/BaseVoltage.d.ts +2 -2
  109. package/dist/model/core/BaseVoltage.js.map +1 -1
  110. package/dist/model/core/ConnectivityNode.d.ts +2 -2
  111. package/dist/model/core/ConnectivityNode.js.map +1 -1
  112. package/dist/model/core/Equipment.d.ts +2 -2
  113. package/dist/model/core/Equipment.js +6 -1
  114. package/dist/model/core/Equipment.js.map +1 -1
  115. package/dist/model/core/IdentifiedObject.d.ts +3 -3
  116. package/dist/model/core/IdentifiedObject.js +9 -3
  117. package/dist/model/core/IdentifiedObject.js.map +1 -1
  118. package/dist/model/core/Substation.js +7 -7
  119. package/dist/model/core/Substation.js.map +1 -1
  120. package/dist/model/core/Terminal.d.ts +2 -2
  121. package/dist/model/core/Terminal.js +2 -2
  122. package/dist/model/core/Terminal.js.map +1 -1
  123. package/dist/model/dc/ACDCConverter.d.ts +2 -2
  124. package/dist/model/dc/ACDCConverter.js.map +1 -1
  125. package/dist/model/dc/ACDCConverterDCTerminal.js +1 -0
  126. package/dist/model/dc/ACDCConverterDCTerminal.js.map +1 -1
  127. package/dist/model/dc/CsConverter.d.ts +2 -2
  128. package/dist/model/dc/CsConverter.js.map +1 -1
  129. package/dist/model/dc/DCConverterUnit.d.ts +3 -2
  130. package/dist/model/dc/DCConverterUnit.js +3 -0
  131. package/dist/model/dc/DCConverterUnit.js.map +1 -1
  132. package/dist/model/dc/DCTerminal.js +1 -0
  133. package/dist/model/dc/DCTerminal.js.map +1 -1
  134. package/dist/model/dc/VsConverter.d.ts +2 -2
  135. package/dist/model/dc/VsConverter.js.map +1 -1
  136. package/dist/model/diagram/Diagram.js +2 -0
  137. package/dist/model/diagram/Diagram.js.map +1 -1
  138. package/dist/model/diagram/DiagramObject.js +2 -2
  139. package/dist/model/diagram/DiagramObject.js.map +1 -1
  140. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.d.ts +2 -2
  141. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.js.map +1 -1
  142. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.d.ts +2 -2
  143. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js.map +1 -1
  144. package/dist/model/equivalents/EquivalentBranch.d.ts +2 -2
  145. package/dist/model/equivalents/EquivalentBranch.js.map +1 -1
  146. package/dist/model/equivalents/EquivalentInjection.d.ts +12 -2
  147. package/dist/model/equivalents/EquivalentInjection.js +111 -0
  148. package/dist/model/equivalents/EquivalentInjection.js.map +1 -1
  149. package/dist/model/extensions/amprion/core/AMPRIONBay.js.map +1 -1
  150. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +2 -2
  151. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -1
  152. package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js +2 -9
  153. package/dist/model/extensions/amprion/equivalents/INTEGRALEquivalentBranch.js.map +1 -1
  154. package/dist/model/extensions/enervance/assets/EVWireObject.js +7 -1
  155. package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
  156. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.d.ts +1 -0
  157. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js +3 -0
  158. package/dist/model/extensions/integral/loadmodel/INTEGRALConformLoad.js.map +1 -1
  159. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.d.ts +0 -1
  160. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js +1 -4
  161. package/dist/model/extensions/integral/wires/INTEGRALAsynchronousMachine.js.map +1 -1
  162. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.d.ts +1 -0
  163. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js +6 -3
  164. package/dist/model/extensions/integral/wires/INTEGRALExternalNetworkInjection.js.map +1 -1
  165. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.d.ts +1 -0
  166. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js +7 -1
  167. package/dist/model/extensions/integral/wires/INTEGRALSynchronousMachine.js.map +1 -1
  168. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +8 -1
  169. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  170. package/dist/model/generation/GeneratingUnit.d.ts +2 -2
  171. package/dist/model/generation/GeneratingUnit.js.map +1 -1
  172. package/dist/model/loadmodel/ConformLoad.d.ts +2 -2
  173. package/dist/model/loadmodel/ConformLoad.js +33 -33
  174. package/dist/model/loadmodel/ConformLoad.js.map +1 -1
  175. package/dist/model/operationallimits/ApparentPowerLimit.d.ts +15 -0
  176. package/dist/model/operationallimits/ApparentPowerLimit.js +56 -0
  177. package/dist/model/operationallimits/ApparentPowerLimit.js.map +1 -0
  178. package/dist/model/operationallimits/CurrentLimit.d.ts +2 -2
  179. package/dist/model/operationallimits/CurrentLimit.js.map +1 -1
  180. package/dist/model/operations/ControlArea.d.ts +1 -0
  181. package/dist/model/operations/ControlArea.js +6 -2
  182. package/dist/model/operations/ControlArea.js.map +1 -1
  183. package/dist/model/statevariables/SvPowerFlow.d.ts +2 -2
  184. package/dist/model/statevariables/SvPowerFlow.js.map +1 -1
  185. package/dist/model/wires/ACLineSegment.d.ts +5 -2
  186. package/dist/model/wires/ACLineSegment.js +7 -1
  187. package/dist/model/wires/ACLineSegment.js.map +1 -1
  188. package/dist/model/wires/AsynchronousMachine.d.ts +2 -2
  189. package/dist/model/wires/AsynchronousMachine.js +0 -1
  190. package/dist/model/wires/AsynchronousMachine.js.map +1 -1
  191. package/dist/model/wires/Breaker.js +1 -1
  192. package/dist/model/wires/Breaker.js.map +1 -1
  193. package/dist/model/wires/Conductor.d.ts +2 -2
  194. package/dist/model/wires/Conductor.js.map +1 -1
  195. package/dist/model/wires/Disconnector.js +1 -1
  196. package/dist/model/wires/Disconnector.js.map +1 -1
  197. package/dist/model/wires/EnergyConsumer.d.ts +2 -2
  198. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  199. package/dist/model/wires/EnergySource.d.ts +2 -2
  200. package/dist/model/wires/EnergySource.js.map +1 -1
  201. package/dist/model/wires/ExternalNetworkInjection.d.ts +2 -2
  202. package/dist/model/wires/ExternalNetworkInjection.js +4 -4
  203. package/dist/model/wires/ExternalNetworkInjection.js.map +1 -1
  204. package/dist/model/wires/GroundingImpedance.d.ts +2 -2
  205. package/dist/model/wires/GroundingImpedance.js.map +1 -1
  206. package/dist/model/wires/LinearShuntCompensator.d.ts +2 -2
  207. package/dist/model/wires/LinearShuntCompensator.js.map +1 -1
  208. package/dist/model/wires/PetersenCoil.d.ts +2 -2
  209. package/dist/model/wires/PetersenCoil.js.map +1 -1
  210. package/dist/model/wires/PhaseTapChangerAsymmetrical.d.ts +2 -2
  211. package/dist/model/wires/PhaseTapChangerAsymmetrical.js +1 -1
  212. package/dist/model/wires/PhaseTapChangerAsymmetrical.js.map +1 -1
  213. package/dist/model/wires/PhaseTapChangerLinear.d.ts +2 -2
  214. package/dist/model/wires/PhaseTapChangerLinear.js.map +1 -1
  215. package/dist/model/wires/PhaseTapChangerNonLinear.d.ts +2 -2
  216. package/dist/model/wires/PhaseTapChangerNonLinear.js.map +1 -1
  217. package/dist/model/wires/PhaseTapChangerSymmetrical.js +1 -1
  218. package/dist/model/wires/PhaseTapChangerSymmetrical.js.map +1 -1
  219. package/dist/model/wires/PhaseTapChangerTable.d.ts +3 -3
  220. package/dist/model/wires/PhaseTapChangerTable.js.map +1 -1
  221. package/dist/model/wires/PhaseTapChangerTablePoint.d.ts +3 -3
  222. package/dist/model/wires/PhaseTapChangerTablePoint.js.map +1 -1
  223. package/dist/model/wires/PowerTransformer.js +2 -0
  224. package/dist/model/wires/PowerTransformer.js.map +1 -1
  225. package/dist/model/wires/PowerTransformerEnd.d.ts +2 -2
  226. package/dist/model/wires/PowerTransformerEnd.js +1 -0
  227. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  228. package/dist/model/wires/RatioTapChanger.d.ts +2 -2
  229. package/dist/model/wires/RatioTapChanger.js +1 -1
  230. package/dist/model/wires/RatioTapChanger.js.map +1 -1
  231. package/dist/model/wires/RatioTapChangerTable.d.ts +3 -3
  232. package/dist/model/wires/RatioTapChangerTable.js.map +1 -1
  233. package/dist/model/wires/RegulatingCondEq.d.ts +2 -2
  234. package/dist/model/wires/RegulatingCondEq.js.map +1 -1
  235. package/dist/model/wires/RegulatingControl.d.ts +2 -2
  236. package/dist/model/wires/RegulatingControl.js.map +1 -1
  237. package/dist/model/wires/RotatingMachine.d.ts +3 -3
  238. package/dist/model/wires/RotatingMachine.js.map +1 -1
  239. package/dist/model/wires/SeriesCompensator.d.ts +2 -2
  240. package/dist/model/wires/SeriesCompensator.js.map +1 -1
  241. package/dist/model/wires/ShuntCompensator.d.ts +2 -2
  242. package/dist/model/wires/ShuntCompensator.js.map +1 -1
  243. package/dist/model/wires/StaticVarCompensator.d.ts +2 -2
  244. package/dist/model/wires/StaticVarCompensator.js.map +1 -1
  245. package/dist/model/wires/SynchronousMachine.d.ts +2 -2
  246. package/dist/model/wires/SynchronousMachine.js.map +1 -1
  247. package/dist/model/wires/TapChanger.d.ts +2 -2
  248. package/dist/model/wires/TapChanger.js.map +1 -1
  249. package/dist/model/wires/TapChangerTablePoint.d.ts +3 -3
  250. package/dist/model/wires/TapChangerTablePoint.js +6 -18
  251. package/dist/model/wires/TapChangerTablePoint.js.map +1 -1
  252. package/dist/model/wires/TransformerEnd.d.ts +2 -2
  253. package/dist/model/wires/TransformerEnd.js.map +1 -1
  254. package/dist/model-container/enum/EVSourceSystemKind.d.ts +1 -0
  255. package/dist/model-container/enum/EVSourceSystemKind.js +1 -0
  256. package/dist/model-container/enum/EVSourceSystemKind.js.map +1 -1
  257. package/dist/model-container/model/ModelContainer.d.ts +12 -3
  258. package/dist/model-container/model/ModelContainer.js +22 -1
  259. package/dist/model-container/model/ModelContainer.js.map +1 -1
  260. package/dist/util/collection/util-graph2tree.d.ts +1 -0
  261. package/dist/util/collection/util-graph2tree.js +65 -2
  262. package/dist/util/collection/util-graph2tree.js.map +1 -1
  263. package/dist/util/util-create.d.ts +4 -3
  264. package/dist/util/util-create.js +38 -23
  265. package/dist/util/util-create.js.map +1 -1
  266. package/dist/util/util-test.js +0 -109
  267. package/dist/util/util-test.js.map +1 -1
  268. package/dist/util/utils.d.ts +4 -3
  269. package/dist/util/utils.js +9 -6
  270. package/dist/util/utils.js.map +1 -1
  271. package/dist/util/xml/xml.serializer.d.ts +2 -2
  272. package/dist/util/xml/xml.serializer.js.map +1 -1
  273. package/dist/utils2/cim.model.utils.js +6 -0
  274. package/dist/utils2/cim.model.utils.js.map +1 -1
  275. package/dist/utils2/common.utils.d.ts +3 -0
  276. package/dist/utils2/common.utils.js +11 -0
  277. package/dist/utils2/common.utils.js.map +1 -1
  278. package/dist/utils2/fuseki.utils.js +7 -1
  279. package/dist/utils2/fuseki.utils.js.map +1 -1
  280. package/dist/utils2/import.utils.d.ts +2 -1
  281. package/dist/utils2/import.utils.js +9 -3
  282. package/dist/utils2/import.utils.js.map +1 -1
  283. package/dist/utils2/parser.utils.d.ts +1 -1
  284. package/dist/utils2/parser.utils.js +44 -23
  285. package/dist/utils2/parser.utils.js.map +1 -1
  286. package/package.json +5 -2
  287. package/dist/converter/integral7/ConverterIntegral7.d.ts +0 -0
  288. package/dist/converter/integral7/ConverterIntegral7.js +0 -1
  289. package/dist/converter/integral7/ConverterIntegral7.js.map +0 -1
  290. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.d.ts +0 -56
  291. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js +0 -2039
  292. package/dist/converter/integral7/dl-convert/dl-converter-i7-2.js.map +0 -1
  293. package/dist/converter/integral7/dl-convert/dl-converter-i7.types.d.ts +0 -3
  294. package/dist/converter/integral7/dl-convert/dl-converter-i7.types.js.map +0 -1
  295. package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.js.map +0 -1
  296. package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.d.ts +0 -3
  297. package/dist/converter/integral7/interface-i7/IIntegral7ConverterConfig.js.map +0 -1
  298. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.js.map +0 -1
  299. package/dist/converter/integral7/model/integral/Hgueleitung.d.ts +0 -12
  300. package/dist/converter/integral7/model/integral/Hgueleitung.js +0 -3
  301. package/dist/converter/integral7/model/integral/Hgueleitung.js.map +0 -1
  302. package/dist/converter/integral7/model/integral/Kopfstation.d.ts +0 -44
  303. package/dist/converter/integral7/model/integral/Kopfstation.js +0 -10
  304. package/dist/converter/integral7/model/integral/Kopfstation.js.map +0 -1
  305. package/dist/converter/integral7/util-asset.model.d.ts +0 -9
  306. package/dist/converter/integral7/util-asset.model.js +0 -20
  307. package/dist/converter/integral7/util-asset.model.js.map +0 -1
  308. package/dist/model/model/Model.d.ts +0 -0
  309. package/dist/model/model/Model.js +0 -1
  310. 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.createWriteStreamPromise = exports.getPSRType = exports.putUUIDtoI7Ids = exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = exports.getSchemaValue = exports.writeZipFile = exports.generateNodeStream = exports.writeFile = exports.generateFuelType = exports.getNumber = exports.getDescription = exports.getActiveReactivePower = exports.getTapChangerStepArray = exports.getTapChangerStepCount = exports.setTapChangerControl = exports.createPhaseTapChanger = exports.createRatioTapChanger = 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.calculateR = exports.calculateSigma = 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.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 0;
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 conversion_factor_1r = Math.pow(10, 0);
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 * conversion_factor_1r, 2));
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 * conversion_factor_ur) / (ur * conversion_factor_ur)) / Math.sqrt(3);
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
- if (i7Data.guid === "_11efd627-73db-4762-8b97-4eea4d09c745") {
1037
- let stop = true;
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.getActiveReactivePower = getActiveReactivePower;
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.generateUUID(), name);
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, cimModel, regulatingCondEq) {
1397
- const regulatingControl = new RegulatingControl_1.RegulatingControl(common_utils_1.CommonUtils.generateUUID(), name);
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;