@enervance/insight-cim-model 0.0.25 → 0.0.26

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 (301) hide show
  1. package/dist/analysis/analysis-neplan/digi-ons.d.ts +53 -0
  2. package/dist/analysis/analysis-neplan/digi-ons.js +381 -0
  3. package/dist/analysis/analysis-neplan/digi-ons.js.map +1 -0
  4. package/dist/config/config.utils.d.ts +1 -0
  5. package/dist/config/config.utils.js +37 -0
  6. package/dist/config/config.utils.js.map +1 -0
  7. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js +1 -1
  8. package/dist/config/westnetz-neplan/callbacks/cb-connectivitynode.js.map +1 -1
  9. package/dist/config/westnetz-neplan/neplan-load.config.d.ts +1 -0
  10. package/dist/config/westnetz-neplan/neplan-load.config.js +37 -1
  11. package/dist/config/westnetz-neplan/neplan-load.config.js.map +1 -1
  12. package/dist/constants/cim-class-definition.js +12 -0
  13. package/dist/constants/cim-class-definition.js.map +1 -1
  14. package/dist/constants/cim-class-names.d.ts +8 -0
  15. package/dist/constants/cim-class-names.js +8 -0
  16. package/dist/constants/cim-class-names.js.map +1 -1
  17. package/dist/constants/init-data/JENA_SPARQL.js +1 -1
  18. package/dist/constants/init-data/xml/settings.d.ts +1 -0
  19. package/dist/constants/init-data/xml/settings.js +70 -0
  20. package/dist/constants/init-data/xml/settings.js.map +1 -0
  21. package/dist/constants/rdf-xml.d.ts +4 -2
  22. package/dist/constants/rdf-xml.js +4 -2
  23. package/dist/constants/rdf-xml.js.map +1 -1
  24. package/dist/converter/cgmes-validator.js +2 -0
  25. package/dist/converter/cgmes-validator.js.map +1 -1
  26. package/dist/converter/integral7/ConverterIntegral7.d.ts +45 -17
  27. package/dist/converter/integral7/ConverterIntegral7.js +899 -681
  28. package/dist/converter/integral7/ConverterIntegral7.js.map +1 -1
  29. package/dist/converter/integral7/interface-i7/I7Schema.d.ts +13 -0
  30. package/dist/converter/integral7/interface-i7/I7Schema.js +13 -0
  31. package/dist/converter/integral7/interface-i7/I7Schema.js.map +1 -0
  32. package/dist/converter/integral7/interface-i7/IDefaultValuesConfig.d.ts +207 -157
  33. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.d.ts +8 -0
  34. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.js +3 -0
  35. package/dist/converter/integral7/interface-i7/IObjectMappingConfig.js.map +1 -0
  36. package/dist/converter/integral7/model/interfaces.d.ts +24 -3
  37. package/dist/converter/integral7/sql/integral.sql.d.ts +1 -0
  38. package/dist/converter/integral7/sql/integral.sql.js +9 -0
  39. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  40. package/dist/converter/integral7/utils.d.ts +36 -5
  41. package/dist/converter/integral7/utils.js +342 -65
  42. package/dist/converter/integral7/utils.js.map +1 -1
  43. package/dist/data-structures/Settings.d.ts +16 -0
  44. package/dist/data-structures/Settings.js +74 -0
  45. package/dist/data-structures/Settings.js.map +1 -0
  46. package/dist/data-structures/graph/GraphObject.d.ts +4 -2
  47. package/dist/data-structures/graph/GraphObject.js +3 -1
  48. package/dist/data-structures/graph/GraphObject.js.map +1 -1
  49. package/dist/data-structures/graph/Types.d.ts +2 -1
  50. package/dist/data-structures/graph/Types.js +1 -0
  51. package/dist/data-structures/graph/Types.js.map +1 -1
  52. package/dist/data-structures/graph/edges/GraphEdge.d.ts +2 -1
  53. package/dist/data-structures/graph/edges/GraphEdge.js +2 -2
  54. package/dist/data-structures/graph/edges/GraphEdge.js.map +1 -1
  55. package/dist/data-structures/graph/graph.js +3 -3
  56. package/dist/data-structures/graph/graph.js.map +1 -1
  57. package/dist/data-structures/graph/nodes/GraphNode.d.ts +2 -1
  58. package/dist/data-structures/graph/nodes/GraphNode.js +2 -2
  59. package/dist/data-structures/graph/nodes/GraphNode.js.map +1 -1
  60. package/dist/data-structures/tree/GraphTree.js +3 -3
  61. package/dist/data-structures/tree/GraphTree.js.map +1 -1
  62. package/dist/data-structures/tree/GraphTreeEdge.d.ts +1 -1
  63. package/dist/data-structures/tree/GraphTreeEdge.js +2 -2
  64. package/dist/data-structures/tree/GraphTreeEdge.js.map +1 -1
  65. package/dist/data-structures/tree/GraphTreeNode.d.ts +1 -1
  66. package/dist/data-structures/tree/GraphTreeNode.js +2 -2
  67. package/dist/data-structures/tree/GraphTreeNode.js.map +1 -1
  68. package/dist/data-structures/tree/GraphTreeObject.d.ts +2 -1
  69. package/dist/data-structures/tree/GraphTreeObject.js +2 -1
  70. package/dist/data-structures/tree/GraphTreeObject.js.map +1 -1
  71. package/dist/etl/etl-neplan/etl-neplan-csv.js +23 -18
  72. package/dist/etl/etl-neplan/etl-neplan-csv.js.map +1 -1
  73. package/dist/etl/etl-neplan/etl-neplan-feederline.d.ts +20 -0
  74. package/dist/etl/etl-neplan/etl-neplan-feederline.js +83 -2
  75. package/dist/etl/etl-neplan/etl-neplan-feederline.js.map +1 -1
  76. package/dist/etl/etl-neplan/etl-neplan-geo.d.ts +5 -0
  77. package/dist/etl/etl-neplan/etl-neplan-geo.js +221 -1
  78. package/dist/etl/etl-neplan/etl-neplan-geo.js.map +1 -1
  79. package/dist/etl/etl-neplan/etl-neplan.js +4 -1
  80. package/dist/etl/etl-neplan/etl-neplan.js.map +1 -1
  81. package/dist/etl/etl-neplan/neplan-contingency-analysis.js +4 -4
  82. package/dist/etl/etl-neplan/neplan-contingency-analysis.js.map +1 -1
  83. package/dist/index.d.ts +6 -3
  84. package/dist/index.js +22 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces/ILogger.d.ts +2 -0
  87. package/dist/interfaces/model/core/IIdentifiedObject.d.ts +3 -1
  88. package/dist/model/assets/Structure.d.ts +6 -0
  89. package/dist/model/assets/Structure.js +11 -0
  90. package/dist/model/assets/Structure.js.map +1 -0
  91. package/dist/model/assets/TowerConstructionKind.d.ts +4 -0
  92. package/dist/model/assets/TowerConstructionKind.js +9 -0
  93. package/dist/model/assets/TowerConstructionKind.js.map +1 -0
  94. package/dist/model/core/ACDCTerminal.d.ts +3 -1
  95. package/dist/model/core/ACDCTerminal.js +6 -2
  96. package/dist/model/core/ACDCTerminal.js.map +1 -1
  97. package/dist/model/core/Bay.d.ts +1 -0
  98. package/dist/model/core/Bay.js +9 -0
  99. package/dist/model/core/Bay.js.map +1 -1
  100. package/dist/model/core/ConnectivityNode.js +6 -1
  101. package/dist/model/core/ConnectivityNode.js.map +1 -1
  102. package/dist/model/core/Equipment.js +2 -6
  103. package/dist/model/core/Equipment.js.map +1 -1
  104. package/dist/model/core/Feeder.js.map +1 -1
  105. package/dist/model/core/IdentifiedObject.d.ts +5 -3
  106. package/dist/model/core/IdentifiedObject.js +13 -5
  107. package/dist/model/core/IdentifiedObject.js.map +1 -1
  108. package/dist/model/core/Substation.d.ts +1 -0
  109. package/dist/model/core/Substation.js +4 -1
  110. package/dist/model/core/Substation.js.map +1 -1
  111. package/dist/model/core/Terminal.d.ts +7 -3
  112. package/dist/model/core/Terminal.js +24 -7
  113. package/dist/model/core/Terminal.js.map +1 -1
  114. package/dist/model/core/VoltageLevel.js +1 -7
  115. package/dist/model/core/VoltageLevel.js.map +1 -1
  116. package/dist/model/diagram/DiagramObject.d.ts +4 -3
  117. package/dist/model/diagram/DiagramObject.js +14 -3
  118. package/dist/model/diagram/DiagramObject.js.map +1 -1
  119. package/dist/model/diagram/DiagramObjectPoint.d.ts +6 -5
  120. package/dist/model/diagram/DiagramObjectPoint.js +15 -4
  121. package/dist/model/diagram/DiagramObjectPoint.js.map +1 -1
  122. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsEnums.d.ts +16 -0
  123. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsEnums.js +23 -0
  124. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsEnums.js.map +1 -0
  125. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.d.ts +8 -0
  126. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.js +22 -0
  127. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/DynamicsFunctionBlock.js.map +1 -0
  128. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/RotatingMachineDynamics.d.ts +9 -0
  129. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/RotatingMachineDynamics.js +8 -0
  130. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/RotatingMachineDynamics.js.map +1 -0
  131. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDetailed.d.ts +8 -0
  132. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDetailed.js +8 -0
  133. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDetailed.js.map +1 -0
  134. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDynamics.d.ts +7 -0
  135. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDynamics.js +16 -0
  136. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineDynamics.js.map +1 -0
  137. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.d.ts +25 -0
  138. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js +61 -0
  139. package/dist/model/dynamics/standard-models/synchronous-machine-dynamics/SynchronousMachineTimeConstantReactance.js.map +1 -0
  140. package/dist/model/equivalents/EquivalentInjection.d.ts +25 -0
  141. package/dist/model/equivalents/EquivalentInjection.js +92 -0
  142. package/dist/model/equivalents/EquivalentInjection.js.map +1 -0
  143. package/dist/model/extensions/amprion/assets/AMPRIONConstructionContainer.d.ts +22 -0
  144. package/dist/model/extensions/amprion/assets/AMPRIONConstructionContainer.js +90 -0
  145. package/dist/model/extensions/amprion/assets/AMPRIONConstructionContainer.js.map +1 -0
  146. package/dist/model/extensions/amprion/assets/AMPRIONFacility.d.ts +25 -0
  147. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js +98 -0
  148. package/dist/model/extensions/amprion/assets/AMPRIONFacility.js.map +1 -0
  149. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.d.ts +27 -0
  150. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js +99 -0
  151. package/dist/model/extensions/amprion/assets/AMPRIONSpanField.js.map +1 -0
  152. package/dist/model/extensions/amprion/assets/AMPRIONStatusTypeKind.d.ts +9 -0
  153. package/dist/model/extensions/amprion/assets/AMPRIONStatusTypeKind.js +14 -0
  154. package/dist/model/extensions/amprion/assets/AMPRIONStatusTypeKind.js.map +1 -0
  155. package/dist/model/extensions/amprion/assets/AMPRIONTower.d.ts +34 -0
  156. package/dist/model/extensions/amprion/assets/AMPRIONTower.js +103 -0
  157. package/dist/model/extensions/amprion/assets/AMPRIONTower.js.map +1 -0
  158. package/dist/model/extensions/amprion/assets/AMPRIONWire.d.ts +38 -0
  159. package/dist/model/extensions/amprion/assets/AMPRIONWire.js +120 -0
  160. package/dist/model/extensions/amprion/assets/AMPRIONWire.js.map +1 -0
  161. package/dist/model/extensions/amprion/common/AMPRIONStateTypeKind.d.ts +5 -0
  162. package/dist/model/extensions/amprion/common/AMPRIONStateTypeKind.js +10 -0
  163. package/dist/model/extensions/amprion/common/AMPRIONStateTypeKind.js.map +1 -0
  164. package/dist/model/extensions/amprion/common/AMPRIONWireIsolationTypeKind.d.ts +11 -0
  165. package/dist/model/extensions/amprion/common/AMPRIONWireIsolationTypeKind.js +16 -0
  166. package/dist/model/extensions/amprion/common/AMPRIONWireIsolationTypeKind.js.map +1 -0
  167. package/dist/model/extensions/amprion/common/AMPRIONWireLayoutKind.d.ts +6 -0
  168. package/dist/model/extensions/amprion/common/AMPRIONWireLayoutKind.js +11 -0
  169. package/dist/model/extensions/amprion/common/AMPRIONWireLayoutKind.js.map +1 -0
  170. package/dist/model/extensions/amprion/common/AMPRIONWireOperatingTypeKind.d.ts +10 -0
  171. package/dist/model/extensions/amprion/common/AMPRIONWireOperatingTypeKind.js +15 -0
  172. package/dist/model/extensions/amprion/common/AMPRIONWireOperatingTypeKind.js.map +1 -0
  173. package/dist/model/extensions/amprion/core/AMPRIONLine.d.ts +5 -0
  174. package/dist/model/extensions/amprion/core/AMPRIONLine.js +33 -0
  175. package/dist/model/extensions/amprion/core/AMPRIONLine.js.map +1 -0
  176. package/dist/model/extensions/amprion/core/AMPRIONSubstation.d.ts +15 -0
  177. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +93 -0
  178. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js.map +1 -0
  179. package/dist/model/extensions/amprion/model/AMPRIONModel.d.ts +22 -2
  180. package/dist/model/extensions/amprion/model/AMPRIONModel.js +57 -3
  181. package/dist/model/extensions/amprion/model/AMPRIONModel.js.map +1 -1
  182. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.d.ts +2 -0
  183. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js +2 -2
  184. package/dist/model/extensions/amprion/project/AMPRIONConstructionProject.js.map +1 -1
  185. package/dist/model/extensions/amprion/project/AMPRIONErpProjectPhase.js +30 -30
  186. package/dist/model/extensions/amprion/project/AMPRIONErpProjectPhase.js.map +1 -1
  187. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.d.ts +13 -0
  188. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js +80 -0
  189. package/dist/model/extensions/amprion/wires/AMPRIONACLineSegment.js.map +1 -0
  190. package/dist/model/extensions/enervance/assets/EVWireObject.d.ts +1 -1
  191. package/dist/model/extensions/enervance/assets/EVWireObject.js +10 -5
  192. package/dist/model/extensions/enervance/assets/EVWireObject.js.map +1 -1
  193. package/dist/model/extensions/enervance/core/EVTerminal.d.ts +3 -0
  194. package/dist/model/extensions/enervance/core/EVTerminal.js +19 -0
  195. package/dist/model/extensions/enervance/core/EVTerminal.js.map +1 -1
  196. package/dist/model/extensions/enervance/wires/EVACLineSegment.d.ts +1 -1
  197. package/dist/model/extensions/enervance/wires/EVACLineSegment.js +3 -3
  198. package/dist/model/extensions/enervance/wires/EVACLineSegment.js.map +1 -1
  199. package/dist/model/extensions/enervance/wires/EVACLineSubSegment.js.map +1 -1
  200. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.d.ts +1 -1
  201. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +22 -2
  202. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -1
  203. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.d.ts +5 -0
  204. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js +14 -0
  205. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js.map +1 -0
  206. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.d.ts +10 -3
  207. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +148 -98
  208. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -1
  209. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.d.ts +8 -2
  210. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +80 -9
  211. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js.map +1 -1
  212. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +5 -4
  213. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +114 -45
  214. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js.map +1 -1
  215. package/dist/model/generation/GeneratingUnit.js +1 -1
  216. package/dist/model/generation/GeneratingUnit.js.map +1 -1
  217. package/dist/model/generation/HydroGeneratingUnit.d.ts +3 -0
  218. package/dist/model/generation/HydroGeneratingUnit.js +21 -0
  219. package/dist/model/generation/HydroGeneratingUnit.js.map +1 -1
  220. package/dist/model/generation/SolarGeneratingUnit.d.ts +2 -0
  221. package/dist/model/generation/SolarGeneratingUnit.js +13 -0
  222. package/dist/model/generation/SolarGeneratingUnit.js.map +1 -1
  223. package/dist/model/model/Model.d.ts +28 -1
  224. package/dist/model/model/Model.js +64 -2
  225. package/dist/model/model/Model.js.map +1 -1
  226. package/dist/model/operationallimits/OperationalLimit.js +4 -12
  227. package/dist/model/operationallimits/OperationalLimit.js.map +1 -1
  228. package/dist/model/operationallimits/OperationalLimitSet.js +2 -6
  229. package/dist/model/operationallimits/OperationalLimitSet.js.map +1 -1
  230. package/dist/model/wires/Conductor.js +6 -1
  231. package/dist/model/wires/Conductor.js.map +1 -1
  232. package/dist/model/wires/EnergyConsumer.js +2 -2
  233. package/dist/model/wires/EnergyConsumer.js.map +1 -1
  234. package/dist/model/wires/EnergySource.js.map +1 -1
  235. package/dist/model/wires/Line.d.ts +3 -0
  236. package/dist/model/wires/Line.js +14 -0
  237. package/dist/model/wires/Line.js.map +1 -1
  238. package/dist/model/wires/PhaseTapChanger.d.ts +9 -0
  239. package/dist/model/wires/PhaseTapChanger.js +27 -0
  240. package/dist/model/wires/PhaseTapChanger.js.map +1 -0
  241. package/dist/model/wires/PhaseTapChangerAsymmetrical.d.ts +10 -0
  242. package/dist/model/wires/PhaseTapChangerAsymmetrical.js +41 -0
  243. package/dist/model/wires/PhaseTapChangerAsymmetrical.js.map +1 -0
  244. package/dist/model/wires/PhaseTapChangerLinear.d.ts +12 -0
  245. package/dist/model/wires/PhaseTapChangerLinear.js +51 -0
  246. package/dist/model/wires/PhaseTapChangerLinear.js.map +1 -0
  247. package/dist/model/wires/PhaseTapChangerNonLinear.d.ts +10 -0
  248. package/dist/model/wires/PhaseTapChangerNonLinear.js +37 -0
  249. package/dist/model/wires/PhaseTapChangerNonLinear.js.map +1 -0
  250. package/dist/model/wires/PhaseTapChangerSymmetrical.d.ts +6 -0
  251. package/dist/model/wires/PhaseTapChangerSymmetrical.js +24 -0
  252. package/dist/model/wires/PhaseTapChangerSymmetrical.js.map +1 -0
  253. package/dist/model/wires/PhaseTapChangerTable.d.ts +14 -0
  254. package/dist/model/wires/PhaseTapChangerTable.js +44 -0
  255. package/dist/model/wires/PhaseTapChangerTable.js.map +1 -0
  256. package/dist/model/wires/PhaseTapChangerTablePoint.d.ts +15 -0
  257. package/dist/model/wires/PhaseTapChangerTablePoint.js +54 -0
  258. package/dist/model/wires/PhaseTapChangerTablePoint.js.map +1 -0
  259. package/dist/model/wires/PhaseTapChangerTabular.d.ts +10 -0
  260. package/dist/model/wires/PhaseTapChangerTabular.js +38 -0
  261. package/dist/model/wires/PhaseTapChangerTabular.js.map +1 -0
  262. package/dist/model/wires/PowerTransformerEnd.js +6 -7
  263. package/dist/model/wires/PowerTransformerEnd.js.map +1 -1
  264. package/dist/model/wires/RatioTapChanger.d.ts +2 -0
  265. package/dist/model/wires/RatioTapChanger.js +17 -20
  266. package/dist/model/wires/RatioTapChanger.js.map +1 -1
  267. package/dist/model/wires/RatioTapChangerTable.d.ts +3 -0
  268. package/dist/model/wires/RatioTapChangerTable.js +14 -0
  269. package/dist/model/wires/RatioTapChangerTable.js.map +1 -1
  270. package/dist/model/wires/RegulatingControl.js.map +1 -1
  271. package/dist/model/wires/RotatingMachine.d.ts +1 -0
  272. package/dist/model/wires/RotatingMachine.js +13 -0
  273. package/dist/model/wires/RotatingMachine.js.map +1 -1
  274. package/dist/model/wires/SynchronousMachine.d.ts +2 -0
  275. package/dist/model/wires/SynchronousMachine.js +4 -8
  276. package/dist/model/wires/SynchronousMachine.js.map +1 -1
  277. package/dist/model/wires/TapChanger.d.ts +2 -0
  278. package/dist/model/wires/TapChanger.js +7 -7
  279. package/dist/model/wires/TapChanger.js.map +1 -1
  280. package/dist/model/wires/TapChangerControl.js +1 -1
  281. package/dist/model/wires/TapChangerControl.js.map +1 -1
  282. package/dist/model/wires/TapChangerTablePoint.d.ts +3 -0
  283. package/dist/model/wires/TapChangerTablePoint.js +34 -7
  284. package/dist/model/wires/TapChangerTablePoint.js.map +1 -1
  285. package/dist/model/wires/TransformerEnd.d.ts +3 -0
  286. package/dist/model/wires/TransformerEnd.js +5 -13
  287. package/dist/model/wires/TransformerEnd.js.map +1 -1
  288. package/dist/util/sparql/sparql-utils.d.ts +1 -0
  289. package/dist/util/sparql/sparql-utils.js +5 -1
  290. package/dist/util/sparql/sparql-utils.js.map +1 -1
  291. package/dist/util/util-create.d.ts +4 -1
  292. package/dist/util/util-create.js +18 -6
  293. package/dist/util/util-create.js.map +1 -1
  294. package/dist/util/util-test.d.ts +18 -0
  295. package/dist/util/util-test.js +300 -0
  296. package/dist/util/util-test.js.map +1 -0
  297. package/dist/util/util-topology.js +0 -2
  298. package/dist/util/util-topology.js.map +1 -1
  299. package/dist/util/utils.js +15 -5
  300. package/dist/util/utils.js.map +1 -1
  301. package/package.json +10 -5
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
- import { BaseClass, Belastung, Wicklung } from './model/interfaces';
3
- import { BaseVoltage, ConductingEquipment, EquipmentContainer, IdentifiedObject, IIdentifiedObject, Line, Model, PowerTransformerEnd, PowerTransformerInfo, PSRType, RegulatingControl, RegulatingControlModeKind, Terminal, ThermalGeneratingUnit, UnitMultiplier, WindingConnection } from '../..';
2
+ import { BaseClass, Belastung, Trafo, Wicklung } from './model/interfaces';
3
+ import { BaseVoltage, ConductingEquipment, EquipmentContainer, IdentifiedObject, IIdentifiedObject, Line, Model, PowerTransformerEnd, PowerTransformerInfo, PSRType, RegulatingControl, RegulatingControlModeKind, TapChanger, Terminal, ThermalGeneratingUnit, UnitMultiplier, WindingConnection } from '../..';
4
4
  import JSZip from 'jszip';
5
5
  import { ConverterStatus } from './interface-i7/db-config';
6
6
  import { RegulatingCondEq } from '../../model/wires/RegulatingCondEq';
@@ -15,20 +15,41 @@ export declare function isNumericI7(value: any): boolean;
15
15
  export declare function convertToNumberI7(value: any): number;
16
16
  export declare function isBooleanI7(value: any): boolean;
17
17
  export declare function convertToBooleanI7(value: any): boolean;
18
- export declare function getSchaltgruppe(schaltgr: string, endNumber: number): WindingConnection;
19
- export declare function getSchaltgruppeAngleClock(schaltgr: string, endNumber: number): number;
18
+ export declare function getSchaltgruppe(schaltgr: string, endNumber: number, endsRATEDVoltage: number[]): WindingConnection;
19
+ export declare function getSchaltgruppeAngleClock(schaltgr: string, endNumber: number, endsRATEDVoltage: number[]): number;
20
20
  export declare function getPkrTrafo(i7Data: any, powerTransformerInfo: PowerTransformerInfo, pkr: string): number;
21
21
  export declare function getUkrTrafo(i7Data: any, powerTransformerInfo: PowerTransformerInfo, ukr: string): number;
22
22
  export declare function getSrTrafo(i7Data: any, powerTransformerInfo: EVPowerTransformerInfo, endNumber: number, isTrafo3W: boolean): number;
23
23
  export declare function getUrTrafo(i7Data: any, powerTransformerInfo: EVPowerTransformerInfo, endNumber: number): number;
24
24
  export declare function calculateR(un: number, pkr: number, sr: number): number;
25
+ export declare function calculateSigma(fn: number, pn: number, kr: number): number;
25
26
  export declare function calculateX(un: number, ukr: number, sr: number, r: number): number;
26
27
  export declare function calculateG(un: number, pLeer: number): number;
27
28
  export declare function calculateB(un: number, sr: number, iLeer: number, pLeer: number): number;
28
29
  export declare function getTrafoPleer(i7Data: any, powerTransformerInfo: PowerTransformerInfo): number;
29
30
  export declare function getTrafoIleer(i7Data: any, powerTransformerInfo: PowerTransformerInfo): number;
30
31
  export declare function getConductingEquipmentTerminalBySecNumber(conductingEquipment: ConductingEquipment, sequenceNumber: number): Terminal | undefined;
31
- export declare function createTapChanger(i7Data: Wicklung, transformerEnd: PowerTransformerEnd, cimModel: Model, neutralU: number): void;
32
+ export declare function createRatioTapChanger(i7Data: Wicklung, transformerEnd: PowerTransformerEnd, cimModel: Model, neutralU: number, terminals: Terminal[], knotenSpannungsband: {
33
+ umin: number;
34
+ umax: number;
35
+ usoll: number;
36
+ cnUUID: string;
37
+ terminals: {
38
+ uuid: string;
39
+ connected: boolean;
40
+ }[];
41
+ }): void;
42
+ export declare function createPhaseTapChanger(i7Data: Trafo, transformerEnd: PowerTransformerEnd, cimModel: Model, neutralU: number, trafoTerminals: Terminal[], knotenSpannungsband: {
43
+ umin: number;
44
+ umax: number;
45
+ usoll: number;
46
+ cnUUID: string;
47
+ terminals: {
48
+ uuid: string;
49
+ connected: boolean;
50
+ }[];
51
+ }): void;
52
+ export declare function setTapChangerControl(tapChanger: TapChanger, terminalUUID: string): void;
32
53
  export declare function getTapChangerStepCount(min: number, max: number): number;
33
54
  export declare function getTapChangerStepArray(min: number, max: number): number[];
34
55
  export declare function getActiveReactivePower(i7Data: Belastung): number[];
@@ -45,3 +66,13 @@ export declare function putUUIDtoI7Ids(uuid: string, i7ID: number, UUID2Integral
45
66
  export declare function getPSRType(cimModel: Model, name: string): PSRType;
46
67
  export declare function createWriteStreamPromise(writeStream: any): Promise<ConverterStatus>;
47
68
  export declare function createRegulatingControl(name: string, enabled: boolean, unitMultiplier: UnitMultiplier, mode: RegulatingControlModeKind, cimModel: Model, regulatingCondEq: RegulatingCondEq): RegulatingControl;
69
+ export declare function getSpannungsband(propName: string, knotenSpannungsband: {
70
+ umin: number;
71
+ umax: number;
72
+ usoll: number;
73
+ cnUUID: string;
74
+ terminals: {
75
+ uuid: string;
76
+ connected: boolean;
77
+ }[];
78
+ }, defaultValue: number): number;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRegulatingControl = exports.createWriteStreamPromise = exports.getPSRType = exports.putUUIDtoI7Ids = exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = exports.writeZipFile = exports.generateNodeStream = exports.writeFile = exports.generateFuelType = exports.getNumber = exports.getDescription = exports.getActiveReactivePower = exports.getTapChangerStepArray = exports.getTapChangerStepCount = exports.createTapChanger = exports.getConductingEquipmentTerminalBySecNumber = exports.getTrafoIleer = exports.getTrafoPleer = exports.calculateB = exports.calculateG = exports.calculateX = exports.calculateR = exports.getUrTrafo = exports.getSrTrafo = exports.getUkrTrafo = exports.getPkrTrafo = exports.getSchaltgruppeAngleClock = exports.getSchaltgruppe = exports.convertToBooleanI7 = exports.isBooleanI7 = exports.convertToNumberI7 = exports.isNumericI7 = exports.getTerminalUn = exports.getU = exports.getLine = exports.getLineByAttribute = exports.getName = exports.ueberpruefeZeichenkette = void 0;
3
+ exports.getSpannungsband = exports.createRegulatingControl = exports.createWriteStreamPromise = exports.getPSRType = exports.putUUIDtoI7Ids = exports.getIntegral7IDs = exports.createTempDirPath = exports.determineEquipmentContainer = 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.getTrafoIleer = exports.getTrafoPleer = exports.calculateB = exports.calculateG = exports.calculateX = exports.calculateSigma = exports.calculateR = exports.getUrTrafo = exports.getSrTrafo = exports.getUkrTrafo = exports.getPkrTrafo = exports.getSchaltgruppeAngleClock = exports.getSchaltgruppe = exports.convertToBooleanI7 = exports.isBooleanI7 = exports.convertToNumberI7 = exports.isNumericI7 = exports.getTerminalUn = exports.getU = exports.getLine = exports.getLineByAttribute = exports.getName = exports.ueberpruefeZeichenkette = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const __1 = require("../..");
6
6
  const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ const PhaseTapChangerAsymmetrical_1 = require("../../model/wires/PhaseTapChangerAsymmetrical");
8
+ const PhaseTapChangerLinear_1 = require("../../model/wires/PhaseTapChangerLinear");
7
9
  function ueberpruefeZeichenkette(str) {
8
10
  if (str)
9
11
  return str;
@@ -28,22 +30,25 @@ function getName(object) {
28
30
  }
29
31
  exports.getName = getName;
30
32
  function getLineByAttribute(cimModel, lineAttribute, attributeInstance) {
33
+ let line = undefined;
31
34
  for (const stromkreis of cimModel.lines.values()) {
32
35
  if (stromkreis[lineAttribute] === attributeInstance) {
33
- return stromkreis;
36
+ line = stromkreis;
37
+ break;
34
38
  }
35
39
  }
36
- return;
40
+ return line;
37
41
  }
38
42
  exports.getLineByAttribute = getLineByAttribute;
39
43
  function getLine(cimModel, bezeichner, kurzname) {
40
- let line;
44
+ let line = undefined;
41
45
  for (const stromkreis of cimModel.lines.values()) {
42
46
  if (stromkreis.name === bezeichner || stromkreis.shortName === kurzname) {
43
- return line = stromkreis;
47
+ line = stromkreis;
48
+ break;
44
49
  }
45
50
  }
46
- return;
51
+ return line;
47
52
  }
48
53
  exports.getLine = getLine;
49
54
  function getU(un, deafultUn) {
@@ -85,26 +90,22 @@ function getTerminalUn(cimModel, ce) {
85
90
  }
86
91
  exports.getTerminalUn = getTerminalUn;
87
92
  function isNumericI7(value) {
93
+ let isfinite_number = false;
88
94
  try {
89
95
  const dotValue = String(value).trim().replace(',', '.');
90
- if (isNaN(Number(dotValue)) || dotValue === null) {
91
- return false;
96
+ const percentValue = dotValue.replace('%', '');
97
+ if (Number.isFinite(value)) {
98
+ isfinite_number = true;
92
99
  }
93
- if (dotValue === '') {
94
- return false;
100
+ else if (Number.isFinite(parseFloat(dotValue))) {
101
+ isfinite_number = true;
95
102
  }
96
- if (isNaN(parseFloat(dotValue))) {
97
- return false;
98
- }
99
- const percentValue = dotValue.replace('%', '');
100
- if (isNaN(Number(percentValue))) {
101
- return false;
103
+ else if (isFinite(parseFloat(percentValue))) {
104
+ isfinite_number = true;
102
105
  }
103
106
  }
104
- catch (e) {
105
- return false;
106
- }
107
- return true;
107
+ catch (e) { }
108
+ return isfinite_number;
108
109
  }
109
110
  exports.isNumericI7 = isNumericI7;
110
111
  function convertToNumberI7(value) {
@@ -166,8 +167,24 @@ function convertToBooleanI7(value) {
166
167
  }
167
168
  }
168
169
  exports.convertToBooleanI7 = convertToBooleanI7;
169
- function getSchaltgruppe(schaltgr, endNumber) {
170
+ function getSchaltgruppe(schaltgr, endNumber, endsRATEDVoltage) {
171
+ let pos_max = endsRATEDVoltage.indexOf(Math.max(...endsRATEDVoltage));
172
+ let translate = undefined;
170
173
  switch (schaltgr) {
174
+ case 'DD0':
175
+ if (endNumber === 1) {
176
+ return __1.WindingConnection.D;
177
+ }
178
+ else {
179
+ return __1.WindingConnection.Yn;
180
+ }
181
+ case 'DD6':
182
+ if (endNumber === 1) {
183
+ return __1.WindingConnection.D;
184
+ }
185
+ else {
186
+ return __1.WindingConnection.Yn;
187
+ }
171
188
  case 'DY5':
172
189
  if (endNumber === 1) {
173
190
  return __1.WindingConnection.D;
@@ -175,6 +192,13 @@ function getSchaltgruppe(schaltgr, endNumber) {
175
192
  else {
176
193
  return __1.WindingConnection.Yn;
177
194
  }
195
+ case 'DY6':
196
+ if (endNumber === 1) {
197
+ return __1.WindingConnection.D;
198
+ }
199
+ else {
200
+ return __1.WindingConnection.Yn;
201
+ }
178
202
  case 'DY7':
179
203
  if (endNumber === 1) {
180
204
  return __1.WindingConnection.D;
@@ -182,6 +206,25 @@ function getSchaltgruppe(schaltgr, endNumber) {
182
206
  else {
183
207
  return __1.WindingConnection.Yn;
184
208
  }
209
+ case 'DY11':
210
+ if (endNumber === 1) {
211
+ return __1.WindingConnection.D;
212
+ }
213
+ else {
214
+ return __1.WindingConnection.Yn;
215
+ }
216
+ case 'DZ6':
217
+ if (endNumber === 1) {
218
+ return __1.WindingConnection.D;
219
+ }
220
+ else {
221
+ return __1.WindingConnection.Yn;
222
+ }
223
+ case 'Y0':
224
+ if (endNumber === 1) {
225
+ return __1.WindingConnection.Yn;
226
+ }
227
+ break;
185
228
  case 'YD5':
186
229
  if (endNumber === 1) {
187
230
  return __1.WindingConnection.Y;
@@ -189,12 +232,20 @@ function getSchaltgruppe(schaltgr, endNumber) {
189
232
  else {
190
233
  return __1.WindingConnection.D;
191
234
  }
192
- case 'YY0':
235
+ case 'YD5D5':
236
+ if (endNumber === 1) {
237
+ return __1.WindingConnection.Yn;
238
+ }
239
+ else if (endNumber === 2 || endNumber === 3) {
240
+ return __1.WindingConnection.D;
241
+ }
242
+ break;
243
+ case 'YD11':
193
244
  if (endNumber === 1) {
194
245
  return __1.WindingConnection.Y;
195
246
  }
196
247
  else {
197
- return __1.WindingConnection.Y;
248
+ return __1.WindingConnection.D;
198
249
  }
199
250
  case 'YNd5':
200
251
  if (endNumber === 1) {
@@ -204,11 +255,13 @@ function getSchaltgruppe(schaltgr, endNumber) {
204
255
  return __1.WindingConnection.D;
205
256
  }
206
257
  break;
207
- case 'Y0':
258
+ case 'YY0':
208
259
  if (endNumber === 1) {
209
- return __1.WindingConnection.Yn;
260
+ return __1.WindingConnection.Y;
261
+ }
262
+ else {
263
+ return __1.WindingConnection.Y;
210
264
  }
211
- break;
212
265
  case 'YY0D5':
213
266
  if (endNumber === 1 || endNumber === 2) {
214
267
  return __1.WindingConnection.Yn;
@@ -217,12 +270,21 @@ function getSchaltgruppe(schaltgr, endNumber) {
217
270
  return __1.WindingConnection.D;
218
271
  }
219
272
  break;
220
- case 'YD5D5':
273
+ case 'YY6':
274
+ if (endNumber === 1) {
275
+ return __1.WindingConnection.Y;
276
+ }
277
+ else {
278
+ return __1.WindingConnection.Y;
279
+ }
280
+ case 'YZ5':
221
281
  if (endNumber === 1) {
222
282
  return __1.WindingConnection.Yn;
223
283
  }
224
- else if (endNumber === 2 || endNumber === 3) {
225
- return __1.WindingConnection.D;
284
+ break;
285
+ case 'YZ11':
286
+ if (endNumber === 1) {
287
+ return __1.WindingConnection.Yn;
226
288
  }
227
289
  break;
228
290
  default:
@@ -230,7 +292,7 @@ function getSchaltgruppe(schaltgr, endNumber) {
230
292
  }
231
293
  }
232
294
  exports.getSchaltgruppe = getSchaltgruppe;
233
- function getSchaltgruppeAngleClock(schaltgr, endNumber) {
295
+ function getSchaltgruppeAngleClock(schaltgr, endNumber, endsRATEDVoltage) {
234
296
  switch (schaltgr) {
235
297
  case 'DY5':
236
298
  if (endNumber === 1) {
@@ -251,6 +313,9 @@ function getSchaltgruppeAngleClock(schaltgr, endNumber) {
251
313
  case 'YY0':
252
314
  return 0;
253
315
  break;
316
+ case 'YY6':
317
+ return 0;
318
+ break;
254
319
  case 'YNd5':
255
320
  if (endNumber === 1) {
256
321
  return 0;
@@ -342,6 +407,18 @@ function calculateR(un, pkr, sr) {
342
407
  return 0;
343
408
  }
344
409
  exports.calculateR = calculateR;
410
+ function calculateSigma(fn, pn, kr) {
411
+ let sigma = 0;
412
+ try {
413
+ if (pn !== 0) {
414
+ sigma = (kr * 100 * fn) / (pn);
415
+ }
416
+ }
417
+ catch (e) {
418
+ }
419
+ return sigma;
420
+ }
421
+ exports.calculateSigma = calculateSigma;
345
422
  function calculateX(un, ukr, sr, r) {
346
423
  try {
347
424
  return Math.sqrt(Math.pow(ukr, 2) * Math.pow(un, 4) / Math.pow(sr, 2) - Math.pow(r, 2));
@@ -398,23 +475,22 @@ function getConductingEquipmentTerminalBySecNumber(conductingEquipment, sequence
398
475
  return;
399
476
  }
400
477
  exports.getConductingEquipmentTerminalBySecNumber = getConductingEquipmentTerminalBySecNumber;
401
- function createTapChanger(i7Data, transformerEnd, cimModel, neutralU) {
402
- if (i7Data[`regelung_s${transformerEnd.endNumber}`]) {
403
- const terminalUUID = transformerEnd.terminalUUID;
404
- const tapChangerControl = new __1.TapChangerControl(__1.generateUUID(), `TapChangerControl ${transformerEnd.name} W${transformerEnd.endNumber}`);
405
- tapChangerControl.mode = __1.RegulatingControlModeKind.voltage;
406
- tapChangerControl.terminalUUID = terminalUUID;
478
+ function createRatioTapChanger(i7Data, transformerEnd, cimModel, neutralU, terminals, knotenSpannungsband) {
479
+ const wicklungsnummer = transformerEnd.endNumber;
480
+ const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
481
+ if (gestufteSeite === wicklungsnummer) {
407
482
  const lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
408
483
  const highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
409
484
  const neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
410
485
  const currentStep = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
411
486
  const i7TapArray = getTapChangerStepArray(lowStep, highStep);
487
+ const mappedCurrentStep = i7TapArray.indexOf(currentStep) + 1;
412
488
  const lowerVoltageStepCount = getTapChangerStepCount(lowStep, neutralStep);
413
489
  const increaseVoltageStepCount = getTapChangerStepCount(neutralStep, highStep);
414
490
  const lowerVoltageStepIncrement = Math.abs(i7Data[`umin_s${transformerEnd.endNumber}`]) / lowerVoltageStepCount * -1;
415
491
  let increaseVoltageStepIncrement = Math.abs(i7Data[`umax_s${transformerEnd.endNumber}`]) / lowerVoltageStepCount;
416
492
  increaseVoltageStepIncrement = isNaN(increaseVoltageStepIncrement) ? 1 : increaseVoltageStepIncrement;
417
- const ratioTapChangerTable = new __1.RatioTapChangerTable(__1.generateUUID(), `Tabelle ${transformerEnd.name} W${transformerEnd.endNumber}`);
493
+ const ratioTapChangerTable = new __1.RatioTapChangerTable(__1.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
418
494
  for (let i = 0; i < lowerVoltageStepCount; i++) {
419
495
  __1.createRatioTapChangerTablePoint(ratioTapChangerTable, i + 1, 1 + (lowerVoltageStepIncrement * (lowerVoltageStepCount - i)));
420
496
  }
@@ -423,7 +499,7 @@ function createTapChanger(i7Data, transformerEnd, cimModel, neutralU) {
423
499
  const step = (lowerVoltageStepCount + 1) + (i + 1);
424
500
  __1.createRatioTapChangerTablePoint(ratioTapChangerTable, step, 1 + (increaseVoltageStepIncrement * (i + 1)));
425
501
  }
426
- const ratioTapChanger = new __1.RatioTapChanger(__1.generateUUID(), `Stufenschalter ${transformerEnd.name} W${transformerEnd.endNumber}`);
502
+ const ratioTapChanger = new __1.RatioTapChanger(__1.generateUUID(), `${transformerEnd.name} W${transformerEnd.endNumber}`);
427
503
  ratioTapChanger.stepVoltageIncrement = increaseVoltageStepIncrement;
428
504
  ratioTapChanger.tculControlMode = __1.TransformerControlMode.volt;
429
505
  ratioTapChanger.ltcFlag = false;
@@ -431,20 +507,174 @@ function createTapChanger(i7Data, transformerEnd, cimModel, neutralU) {
431
507
  ratioTapChanger.highStep = ratioTapChangerTable.ratioTapChangerTablePoints.length;
432
508
  ratioTapChanger.neutralStep = i7TapArray.indexOf(neutralStep) + 1;
433
509
  ratioTapChanger.normalStep = ratioTapChanger.neutralStep;
434
- ratioTapChanger.tapChangerControlUUID = tapChangerControl.mrid;
435
- ratioTapChanger.transformerEndUUID = transformerEnd.mrid;
510
+ ratioTapChanger.step = mappedCurrentStep;
511
+ ratioTapChanger.transformerEnd = transformerEnd;
512
+ transformerEnd.ratioTapChanger = ratioTapChanger;
513
+ ratioTapChanger.neutralU = neutralU;
436
514
  ratioTapChanger.ratioTapChangerTableUUID = ratioTapChangerTable.mrid;
437
- try {
438
- ratioTapChanger.neutralU = neutralU;
515
+ ratioTapChangerTable.ratioTapChanger = ratioTapChanger;
516
+ const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
517
+ if (regelung > 0) {
518
+ const tapChangerControl = new __1.TapChangerControl(__1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
519
+ tapChangerControl.discrete = true;
520
+ const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
521
+ const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
522
+ const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
523
+ const pVorgabe = isNumericI7(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined;
524
+ switch (regelung) {
525
+ case 1: {
526
+ ratioTapChanger.controlEnabled = true;
527
+ tapChangerControl.enabled = true;
528
+ tapChangerControl.mode = __1.RegulatingControlModeKind.voltage;
529
+ tapChangerControl.targetValue = usoll;
530
+ tapChangerControl.targetDeadband = umax - usoll;
531
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.k;
532
+ break;
533
+ }
534
+ case 2: {
535
+ ratioTapChanger.controlEnabled = true;
536
+ tapChangerControl.enabled = true;
537
+ tapChangerControl.mode = __1.RegulatingControlModeKind.activePower;
538
+ tapChangerControl.targetValue = pVorgabe;
539
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.M;
540
+ break;
541
+ }
542
+ case 3: {
543
+ ratioTapChanger.controlEnabled = true;
544
+ tapChangerControl.enabled = true;
545
+ tapChangerControl.mode = __1.RegulatingControlModeKind.currentFlow;
546
+ break;
547
+ }
548
+ case 4: {
549
+ ratioTapChanger.controlEnabled = true;
550
+ tapChangerControl.enabled = true;
551
+ tapChangerControl.mode = __1.RegulatingControlModeKind.reactivePower;
552
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.M;
553
+ break;
554
+ }
555
+ }
556
+ ratioTapChanger.tapChangerControl = tapChangerControl;
557
+ tapChangerControl.addTapChanger(ratioTapChanger);
558
+ cimModel.addTapChangerControl(tapChangerControl);
439
559
  }
440
- catch (e) {
560
+ else {
561
+ ratioTapChanger.controlEnabled = false;
562
+ }
563
+ const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
564
+ if (terminal) {
565
+ setTapChangerControl(ratioTapChanger, terminal.uuid);
566
+ }
567
+ else {
568
+ if (transformerEnd.ratioTapChanger) {
569
+ transformerEnd.ratioTapChanger.tapChangerControl = undefined;
570
+ transformerEnd.ratioTapChanger.tapChangerControlUUID = undefined;
571
+ }
441
572
  }
442
- cimModel.addTapChangerControl(tapChangerControl);
443
573
  cimModel.addRatioTapChanger(ratioTapChanger);
444
574
  cimModel.addRatioTapChangerTable(ratioTapChangerTable);
445
575
  }
446
576
  }
447
- exports.createTapChanger = createTapChanger;
577
+ exports.createRatioTapChanger = createRatioTapChanger;
578
+ function createPhaseTapChanger(i7Data, transformerEnd, cimModel, neutralU, trafoTerminals, knotenSpannungsband) {
579
+ const wicklungsnummer = transformerEnd.endNumber;
580
+ const gestufteSeite = i7Data[`gestufte_seite_s${wicklungsnummer}`] === 0 ? 1 : i7Data[`gestufte_seite_s${wicklungsnummer}`];
581
+ if (gestufteSeite === wicklungsnummer) {
582
+ const spezialregelung = i7Data.trafo_spezial;
583
+ let phaseTapChanger;
584
+ switch (spezialregelung) {
585
+ case (2): {
586
+ const phaseTapChangerAsync = new PhaseTapChangerAsymmetrical_1.PhaseTapChangerAsymmetrical(__1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
587
+ phaseTapChangerAsync.windingConnectionAngle = convertToNumberI7(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
588
+ phaseTapChanger = phaseTapChangerAsync;
589
+ cimModel.addPhaseTapChangerAsymmetrical(phaseTapChangerAsync);
590
+ break;
591
+ }
592
+ default: {
593
+ const phaseTapChangerLinear = new PhaseTapChangerLinear_1.PhaseTapChangerLinear(__1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
594
+ phaseTapChangerLinear.stepPhaseShiftIncrement = convertToNumberI7(i7Data[`uzus_winkel_s${transformerEnd.endNumber}`]);
595
+ cimModel.addPhaseTapChangerLinear(phaseTapChangerLinear);
596
+ phaseTapChanger = phaseTapChangerLinear;
597
+ }
598
+ }
599
+ phaseTapChanger.ltcFlag = false;
600
+ phaseTapChanger.lowStep = i7Data[`minstufe_s${transformerEnd.endNumber}`];
601
+ phaseTapChanger.highStep = i7Data[`maxstufe_s${transformerEnd.endNumber}`];
602
+ phaseTapChanger.neutralStep = i7Data[`mittelstufe_s${transformerEnd.endNumber}`];
603
+ phaseTapChanger.normalStep = phaseTapChanger.neutralStep;
604
+ phaseTapChanger.step = i7Data[`aktstufe_s${transformerEnd.endNumber}`];
605
+ phaseTapChanger.neutralU = neutralU;
606
+ transformerEnd.phaseTapChanger = phaseTapChanger;
607
+ phaseTapChanger.transformerEndUUID = transformerEnd.mrid;
608
+ const regelung = +i7Data[`regelung_s${transformerEnd.endNumber}`];
609
+ if (regelung > 0) {
610
+ const tapChangerControl = new __1.TapChangerControl(__1.generateUUID(), `${transformerEnd.name} W_${transformerEnd.endNumber}`);
611
+ tapChangerControl.discrete = true;
612
+ const umax = getSpannungsband('umax', knotenSpannungsband, neutralU);
613
+ const umin = getSpannungsband('umin', knotenSpannungsband, neutralU);
614
+ const usoll = getSpannungsband('usoll', knotenSpannungsband, (umax + umin) / 2);
615
+ const pVorgabe = isNumericI7(i7Data[`p_vorgabe`]) ? +i7Data[`p_vorgabe`] : undefined;
616
+ switch (regelung) {
617
+ case 1: {
618
+ phaseTapChanger.controlEnabled = true;
619
+ tapChangerControl.enabled = true;
620
+ tapChangerControl.mode = __1.RegulatingControlModeKind.voltage;
621
+ tapChangerControl.targetValue = usoll;
622
+ tapChangerControl.targetDeadband = umax - usoll;
623
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.k;
624
+ break;
625
+ }
626
+ case 2: {
627
+ phaseTapChanger.controlEnabled = true;
628
+ tapChangerControl.enabled = true;
629
+ tapChangerControl.mode = __1.RegulatingControlModeKind.activePower;
630
+ tapChangerControl.targetValue = pVorgabe;
631
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.M;
632
+ break;
633
+ }
634
+ case 3: {
635
+ phaseTapChanger.controlEnabled = true;
636
+ tapChangerControl.enabled = true;
637
+ tapChangerControl.mode = __1.RegulatingControlModeKind.currentFlow;
638
+ break;
639
+ }
640
+ case 4: {
641
+ phaseTapChanger.controlEnabled = true;
642
+ tapChangerControl.enabled = true;
643
+ tapChangerControl.mode = __1.RegulatingControlModeKind.reactivePower;
644
+ tapChangerControl.targetValueUnitMultiplier = __1.UnitMultiplier.M;
645
+ break;
646
+ }
647
+ }
648
+ phaseTapChanger.tapChangerControl = tapChangerControl;
649
+ tapChangerControl.addTapChanger(phaseTapChanger);
650
+ cimModel.addTapChangerControl(tapChangerControl);
651
+ }
652
+ else {
653
+ phaseTapChanger.controlEnabled = false;
654
+ }
655
+ const terminal = knotenSpannungsband ? knotenSpannungsband.terminals.find(term => term.connected !== false) : undefined;
656
+ if (terminal) {
657
+ setTapChangerControl(phaseTapChanger, terminal.uuid);
658
+ }
659
+ else {
660
+ if (transformerEnd.phaseTapChanger) {
661
+ transformerEnd.phaseTapChanger.tapChangerControl = undefined;
662
+ transformerEnd.phaseTapChanger.tapChangerControlUUID = undefined;
663
+ }
664
+ console.log();
665
+ }
666
+ }
667
+ }
668
+ exports.createPhaseTapChanger = createPhaseTapChanger;
669
+ function setTapChangerControl(tapChanger, terminalUUID) {
670
+ if (tapChanger && terminalUUID) {
671
+ if (tapChanger.tapChangerControl) {
672
+ const tapChangerControl = tapChanger.tapChangerControl;
673
+ tapChangerControl.terminalUUID = terminalUUID;
674
+ }
675
+ }
676
+ }
677
+ exports.setTapChangerControl = setTapChangerControl;
448
678
  function getTapChangerStepCount(min, max) {
449
679
  let counter = 0;
450
680
  for (let i = min; i < max; i++) {
@@ -462,39 +692,40 @@ function getTapChangerStepArray(min, max) {
462
692
  }
463
693
  exports.getTapChangerStepArray = getTapChangerStepArray;
464
694
  function getActiveReactivePower(i7Data) {
465
- const s0 = isNumericI7(i7Data.s0) ? convertToNumberI7(i7Data.s0) : 0;
466
- const p0 = isNumericI7(i7Data.p0) ? convertToNumberI7(i7Data.p0) : 0;
467
- const q0_ind = isNumericI7(i7Data.q0_ind) ? convertToNumberI7(i7Data.q0_ind) : 0;
468
- const q0_kap = isNumericI7(i7Data.q0_kap) ? convertToNumberI7(i7Data.q0_kap) : 0;
469
- const q = q0_ind !== 0 ? q0_ind : q0_kap;
470
- const cosPhi = isNumericI7(i7Data.cos_phi) ? convertToNumberI7(i7Data.cos_phi) : 0;
695
+ const s0 = isNumericI7(i7Data.s0) ? convertToNumberI7(i7Data.s0) : undefined;
696
+ const p0 = isNumericI7(i7Data.p0) ? convertToNumberI7(i7Data.p0) : undefined;
697
+ const q0_ind = isNumericI7(i7Data.q0_ind) ? convertToNumberI7(i7Data.q0_ind) : undefined;
698
+ const q0_kap = isNumericI7(i7Data.q0_kap) ? convertToNumberI7(i7Data.q0_kap) : undefined;
699
+ const q = isNumericI7(q0_ind) ? q0_ind : q0_kap;
700
+ let cosPhi = isNumericI7(i7Data.cos_phi) ? convertToNumberI7(i7Data.cos_phi) : 1;
701
+ if (!(cosPhi > 0 && cosPhi <= 1)) {
702
+ cosPhi = 1;
703
+ }
471
704
  let activePower = 0;
472
705
  let reactivePower = 0;
473
- if (p0 !== 0 && q !== 0) {
706
+ if (isNumericI7(p0) && isNumericI7(cosPhi)) {
707
+ activePower = p0;
708
+ reactivePower = Math.sqrt(Math.pow(p0 / cosPhi, 2) - Math.pow(p0, 2));
709
+ }
710
+ else if (isNumericI7(p0) && isNumericI7(q)) {
474
711
  activePower = p0;
475
712
  reactivePower = q;
476
713
  }
477
- else if (s0 !== 0) {
478
- if (cosPhi !== 0) {
714
+ else if (isNumericI7(s0)) {
715
+ if (cosPhi) {
479
716
  activePower = s0 * cosPhi;
480
717
  reactivePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(activePower, 2));
481
718
  }
482
- else if (p0 !== 0) {
719
+ else if (isNumericI7(p0)) {
483
720
  activePower = p0;
484
721
  reactivePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(p0, 2));
485
722
  }
486
- else if (q !== 0) {
723
+ else if (isNumericI7(q)) {
487
724
  activePower = Math.sqrt(Math.pow(s0, 2) - Math.pow(q, 2));
488
725
  reactivePower = q;
489
726
  }
490
727
  }
491
- else if (p0 !== 0) {
492
- activePower = p0;
493
- if (cosPhi !== 0) {
494
- reactivePower = Math.sqrt(Math.pow(p0 / cosPhi, 2) - Math.pow(p0, 2));
495
- }
496
- }
497
- return [activePower, reactivePower];
728
+ return [Math.abs(activePower), reactivePower];
498
729
  }
499
730
  exports.getActiveReactivePower = getActiveReactivePower;
500
731
  function getDescription(obejct) {
@@ -595,10 +826,10 @@ function determineEquipmentContainer(equipmentContainerType, cimModel, equipment
595
826
  case ('Substation'): {
596
827
  if (equipmentContainer instanceof __1.Bay) {
597
828
  const voltageLevel = cimModel.getObject(equipmentContainer.voltageLevelUUID);
598
- return cimModel.getObject(voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.substationUUID);
829
+ return cimModel.getObject(voltageLevel === null || voltageLevel === void 0 ? void 0 : voltageLevel.getSubstationUUID());
599
830
  }
600
831
  else if (equipmentContainer instanceof __1.VoltageLevel) {
601
- return cimModel.getObject((_a = equipmentContainer) === null || _a === void 0 ? void 0 : _a.substationUUID);
832
+ return cimModel.getObject((_a = equipmentContainer) === null || _a === void 0 ? void 0 : _a.getSubstationUUID());
602
833
  }
603
834
  else {
604
835
  return equipmentContainer;
@@ -683,4 +914,50 @@ function createRegulatingControl(name, enabled, unitMultiplier, mode, cimModel,
683
914
  return regulatingControl;
684
915
  }
685
916
  exports.createRegulatingControl = createRegulatingControl;
917
+ function getSpannungsband(propName, knotenSpannungsband, defaultValue) {
918
+ if (knotenSpannungsband) {
919
+ switch (propName) {
920
+ case 'usoll': {
921
+ if (isNumericI7(knotenSpannungsband.usoll)) {
922
+ return knotenSpannungsband.usoll;
923
+ }
924
+ else {
925
+ const usoll = (knotenSpannungsband.umax + knotenSpannungsband.umin) / 2;
926
+ if (isNumericI7(usoll) && isFinite(usoll)) {
927
+ return usoll;
928
+ }
929
+ else {
930
+ return defaultValue;
931
+ }
932
+ }
933
+ }
934
+ case 'umax': {
935
+ if (isNumericI7(knotenSpannungsband.umax)) {
936
+ return knotenSpannungsband.umax;
937
+ }
938
+ else {
939
+ return defaultValue;
940
+ }
941
+ }
942
+ case 'umin': {
943
+ if (isNumericI7(knotenSpannungsband.umin)) {
944
+ return knotenSpannungsband.umin;
945
+ }
946
+ else {
947
+ return defaultValue;
948
+ }
949
+ }
950
+ default: {
951
+ return knotenSpannungsband.usoll;
952
+ }
953
+ }
954
+ if (isNumericI7(knotenSpannungsband[propName])) {
955
+ return knotenSpannungsband[propName];
956
+ }
957
+ }
958
+ else {
959
+ return defaultValue;
960
+ }
961
+ }
962
+ exports.getSpannungsband = getSpannungsband;
686
963
  //# sourceMappingURL=utils.js.map