Skip to content

Commit 274c85b

Browse files
committed
Merge branch 'master' into ck/#12-coverage4scala
2 parents 6a4c4f5 + 5931de5 commit 274c85b

File tree

86 files changed

+6532
-181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+6532
-181
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
[![simbench logo](https://simbench.de/wp-content/uploads/2019/01/logo.png "SimBench Logo")](https://www.simbench.net)
88

9-
Tool to convert SimBench data sets to ie³'s power system data model (to be published in near future).
9+
Tool to convert SimBench data sets to ie³'s [power system data model](https://github.com/ie3-institute/PowerSystemDataModel).
1010
SimBench has been research project of Kassel university, Fraunhofer IEE, RWTH Aachen university and TU Dortmund university, aiming at provision of realistic models of electrical distribution grids including time series.
1111
The data is availabe at https://simbench.de.
1212

docs/SimbenchDataModel.puml

Lines changed: 342 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,342 @@
1+
@startuml
2+
3+
Interface SimbenchModel {
4+
+ id: String
5+
}
6+
7+
Interface EntityModel {
8+
- subnet: String
9+
- voltLvl: Int
10+
}
11+
SimbenchModel <|-- EntityModel
12+
13+
Class Coordinate {
14+
+ x: BigDecimal
15+
+ y: BigDecimal
16+
+ subnet: String
17+
+ voltLvl: Int
18+
}
19+
EntityModel <|-- Coordinate
20+
21+
Class Node {
22+
+ nodeType: NodeType
23+
+ vmSetp: BigDecimal
24+
+ vaSetp: Option[BigDecimal] = None
25+
+ vmR: BigDecimal
26+
+ vmMin: BigDecimal
27+
+ vmMax: BigDecimal
28+
+ substation: Substation
29+
+ coordinate: Coordinate
30+
}
31+
EntityModel <|-- Node
32+
33+
Abstract Class ExternalNet{
34+
+ calculationType: CalculationType
35+
+ dspf: BigDecimal
36+
+ pExt: BigDecimal
37+
+ qExt: BigDecimal
38+
}
39+
EntityModel <|-- ExternalNet
40+
41+
Class Simple{
42+
+ node: Node
43+
+ calculationType: CalculationType
44+
+ dspf: BigDecimal
45+
+ pExt: BigDecimal
46+
+ qExt: BigDecimal
47+
}
48+
ExternalNet <|-- Simple
49+
50+
Class Ward {
51+
+ node: Node
52+
+ dspf: BigDecimal
53+
+ pExt: BigDecimal
54+
+ qExt: BigDecimal
55+
+ pWard: BigDecimal
56+
+ qWard: BigDecimal
57+
}
58+
ExternalNet <|-- Ward
59+
60+
Class WardExtended {
61+
+ node: Node
62+
+ dspf: BigDecimal
63+
+ pExt: BigDecimal
64+
+ qExt: BigDecimal
65+
+ rWardExtended: BigDecimal
66+
+ xWardExtended: BigDecimal
67+
+ vmWardExtended: BigDecimal
68+
}
69+
ExternalNet <|-- WardExtended
70+
71+
Abstract Class Line {
72+
+ nodeA: Node
73+
+ nodeB: Node
74+
+ lineType: T
75+
+ length: BigDecimal
76+
+ loadingMax: BigDecimal
77+
}
78+
EntityModel <|-- Line
79+
80+
Class ACLine {
81+
+ lineType: ACLineType
82+
}
83+
Line <|-- ACLine
84+
85+
Class DCLine {
86+
+ lineType: DCLineType
87+
}
88+
Line <|-- DCLine
89+
90+
Class Measurement {
91+
+ elements: List[EntityModel]
92+
+ variable: MeasurementVariable
93+
}
94+
EntityModel <|-- Measurement
95+
96+
Class Substation {
97+
}
98+
EntityModel <|-- Substation
99+
100+
Class Switch {
101+
+ nodeA: Node
102+
+ nodeB: Node
103+
+ switchType: SwitchType
104+
+ cond: Boolean
105+
+ substation: Substation
106+
}
107+
EntityModel <|-- Switch
108+
109+
Class Transformer2W {
110+
+ nodeHV: Node
111+
+ nodeLV: Node
112+
+ transformerType: Transformer2WType
113+
+ tappos: Int
114+
+ autoTap: Boolean
115+
+ autoTapSide: BranchElementPort
116+
+ loadingMax: BigDecimal
117+
+ substation: Substation
118+
}
119+
EntityModel <|-- Transformer2W
120+
121+
Class Transformer3W {
122+
+ nodeHV: Node
123+
+ nodeMV: Node
124+
+ nodeLV: Node
125+
+ transformerType: Transformer3WType
126+
+ tapPosHV: Int
127+
+ tapPosMV: Int
128+
+ tapPosLV: Int
129+
+ autoTap: Boolean
130+
+ autoTapSide: BranchElementPort
131+
+ loadingMax: BigDecimal
132+
+ substation: Substation
133+
}
134+
EntityModel <|-- Transformer3W
135+
136+
Interface ShuntModel {
137+
- node: Node
138+
}
139+
SimbenchModel <|-- ShuntModel
140+
141+
Class Load {
142+
+ profile: LoadProfileType
143+
+ pLoad: BigDecimal
144+
+ qLoad: BigDecimal
145+
+ sR: BigDecimal
146+
}
147+
ShuntModel <|-- Load
148+
149+
Class PowerPlant {
150+
+ powerPlantType: PowerPlantType
151+
+ profile: PowerPlantProfileType
152+
+ calculationType: CalculationType
153+
+ dspf: BigDecimal
154+
+ p: BigDecimal
155+
+ q: BigDecimal
156+
+ sR: BigDecimal
157+
+ pMin: BigDecimal
158+
+ pMax: BigDecimal
159+
+ qMin: BigDecimal
160+
+ qMax: BigDecimal
161+
}
162+
ShuntModel <|-- PowerPlant
163+
164+
Class RES {
165+
+ resType: ResType
166+
+ profile: ResProfile
167+
+ calculationType: CalculationType
168+
+ p: BigDecimal
169+
+ q: BigDecimal
170+
+ sR: BigDecimal
171+
}
172+
ShuntModel <|-- RES
173+
174+
Class Shunt {
175+
+ p0: BigDecimal
176+
+ q0: BigDecimal
177+
+ vmR: BigDecimal
178+
+ step: Int
179+
}
180+
ShuntModel <|-- Shunt
181+
182+
Class Storage {
183+
+ storageType: StorageType
184+
+ profile: StorageProfile
185+
+ p: BigDecimal
186+
+ q: BigDecimal
187+
+ soc: BigDecimal
188+
+ sR: BigDecimal
189+
+ eStore: BigDecimal
190+
+ etaStore: BigDecimal
191+
+ selfDischarge: BigDecimal
192+
+ pMin: BigDecimal
193+
+ pMax: BigDecimal
194+
+ qMin: BigDecimal
195+
+ qMax: BigDecimal
196+
}
197+
ShuntModel <|-- Storage
198+
199+
Class StudyCase {
200+
+ pLoad: BigDecimal
201+
+ qLoad: BigDecimal
202+
+ pWind: BigDecimal
203+
+ pPv: BigDecimal
204+
+ pRes: BigDecimal
205+
+ vMSlack: BigDecimal
206+
}
207+
SimbenchModel <|-- StudyCase
208+
209+
Abstract Class LineType
210+
211+
Class ACLineType {
212+
+ id: String
213+
+ r: BigDecimal
214+
+ x: BigDecimal
215+
+ b: BigDecimal
216+
+ iMax: BigDecimal
217+
+ style: LineStyle
218+
}
219+
LineType <|-- ACLineType
220+
ACLine --* ACLineType
221+
222+
Class DCLineType {
223+
+ id: String
224+
+ p: BigDecimal
225+
+ relPLoss: BigDecimal
226+
+ fixPLoss: BigDecimal
227+
+ pMax: BigDecimal
228+
+ qMinA: BigDecimal
229+
+ qMaxA: BigDecimal
230+
+ qMinB: BigDecimal
231+
+ qMaxB: BigDecimal
232+
}
233+
LineType <|-- DCLineType
234+
DCLine --* DCLineType
235+
236+
Class Transformer2WType {
237+
+ sR: BigDecimal
238+
+ vmHV: BigDecimal
239+
+ vmLV: BigDecimal
240+
+ va0: BigDecimal
241+
+ vmImp: BigDecimal
242+
+ pCu: BigDecimal
243+
+ pFe: BigDecimal
244+
+ iNoLoad: BigDecimal
245+
+ tapable: Boolean
246+
+ tapside: BranchElementPort
247+
+ dVm: BigDecimal
248+
+ dVa: BigDecimal
249+
+ tapNeutr: Int
250+
+ tapMin: Int
251+
+ tapMax: Int
252+
}
253+
SimbenchModel <|-- Transformer2WType
254+
Transformer2W --* Transformer2WType
255+
256+
Class Transformer3WType {
257+
+ sRHV: BigDecimal
258+
+ sRMV: BigDecimal
259+
+ sRLV: BigDecimal
260+
+ vmHV: BigDecimal
261+
+ vmMV: BigDecimal
262+
+ vmLV: BigDecimal
263+
+ vaHVMV: BigDecimal
264+
+ vaHVLV: BigDecimal
265+
+ vmImpHV: BigDecimal
266+
+ vmImpMV: BigDecimal
267+
+ vmImpLV: BigDecimal
268+
+ pCuHV: BigDecimal
269+
+ pCuMV: BigDecimal
270+
+ pCuLV: BigDecimal
271+
+ pFe: BigDecimal
272+
+ iNoLoad: BigDecimal
273+
+ tapable: Boolean
274+
+ tapSide: BranchElementPort
275+
+ dVmHV: BigDecimal
276+
+ dVmMV: BigDecimal
277+
+ dVmLV: BigDecimal
278+
+ dVaHV: BigDecimal
279+
+ dVaMV: BigDecimal
280+
+ dVaLV: BigDecimal
281+
+ tapNeutrHV: Int
282+
+ tapNeutrMV: Int
283+
+ tapNeutrLV: Int
284+
+ tapMinHV: Int
285+
+ tapMinMV: Int
286+
+ tapMinLV: Int
287+
+ tapMaxHV: Int
288+
+ tapMaxMV: Int
289+
+ tapMaxLV: Int
290+
}
291+
SimbenchModel <|-- Transformer3WType
292+
Transformer3W --* Transformer3WType
293+
294+
Interface ProfileType {
295+
}
296+
297+
Enum LoadProfileType {
298+
+ apply(String): LoadProfileType
299+
}
300+
ProfileType <|-- LoadProfileType
301+
302+
Enum PowerPlantProfileType {
303+
+ apply(String): PowerPlantProfileType
304+
}
305+
ProfileType <|-- PowerPlantProfileType
306+
307+
Enum ResProfileType {
308+
+ apply(String): ResProfileType
309+
}
310+
ProfileType <|-- ResProfileType
311+
312+
Interface StorageProfileType {
313+
}
314+
ProfileType <|-- StorageProfileType
315+
316+
Interface ProfileModel <T extends ProfileType> {
317+
+ profileType: T
318+
+ profile: Map<ZonedDateTime, Tuple2<BigDecimal, BigDecimal>>
319+
}
320+
SimbenchModel <|-- ProfileModel
321+
322+
Class LoadProfile {
323+
}
324+
ProfileModel <|-- LoadProfile
325+
LoadProfileType *-- LoadProfile
326+
327+
Class PowerPlantProfile {
328+
}
329+
ProfileModel <|-- PowerPlantProfile
330+
PowerPlantProfileType *-- PowerPlantProfile
331+
332+
Class ResProfile {
333+
}
334+
ProfileModel <|-- ResProfile
335+
ResProfileType *-- ResProfile
336+
337+
Class StorageProfile {
338+
}
339+
ProfileModel <|-- StorageProfile
340+
StorageProfileType *-- StorageProfile
341+
342+
@enduml

inputData/config/SimbenchSample.conf

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,21 @@ io {
33
## 'baseUrl': optional string. Default: http://141.51.193.167/simbench/gui/usecase/download.
44
#baseUrl = ?
55

6+
## 'csv': required section.
7+
csv {
8+
## 'fileEncoding': optional string. Default: UTF-8.
9+
#fileEncoding = ?
10+
11+
## 'fileEnding': optional string. Default: .csv.
12+
#fileEnding = ?
13+
14+
## 'separator': optional string. Default: ;.
15+
#separator = ?
16+
}
17+
618
## 'downloadFolder': optional string. Default: inputData/download/.
719
#downloadFolder = ?
820

921
## 'simbenchCodes': required list of string.
10-
simbenchCodes = ["1-EHVHVMVLV-mixed-all-0-sw", "1-EHVHVMVLV-mixed-all-1-sw"]
22+
simbenchCodes = [string, ...]
1123
}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
io.simbenchCodes = ["String"]
22
io.downloadFolder = "String" | "inputData/download/"
3-
io.baseUrl = "String" | "http://141.51.193.167/simbench/gui/usecase/download"
3+
io.baseUrl = "String" | "http://141.51.193.167/simbench/gui/usecase/download"
4+
io.csv.separator = "String" | ";"
5+
io.csv.fileEnding = "String" | ".csv"
6+
io.csv.fileEncoding = "String" | "UTF-8"

0 commit comments

Comments
 (0)