Skip to content

Commit f1a1d05

Browse files
Merge pull request #1098 from ie3-institute/ms/#1097-add-congestion-result
Adding `CongestionResult`.
2 parents e392ecc + 0ae4793 commit f1a1d05

27 files changed

+389
-57
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
- Enhancing `VoltageLevel` with `equals` method [#1063](https://github.com/ie3-institute/PowerSystemDataModel/issues/1063)
1111
- `ConnectorValidationUtils` checks if parallel devices is > 0 [#1077](https://github.com/ie3-institute/PowerSystemDataModel/issues/1077)
1212
- `GridContainerValidationUtils` checks the connectivity for all defined operation time intervals [#1091](https://github.com/ie3-institute/PowerSystemDataModel/issues/1091)
13+
- Implemented a `CongestionResult` [#1097](https://github.com/ie3-institute/PowerSystemDataModel/issues/1097)
1314

1415
### Fixed
1516
- Fixed `MappingEntryies` not getting processed by adding `Getter` methods for record fields [#1084](https://github.com/ie3-institute/PowerSystemDataModel/issues/1084)

docs/readthedocs/models/models.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ result/grid/switch
185185
result/grid/transformer
186186
result/grid/transformer2w
187187
result/grid/transformer3w
188+
result/grid/congestion
188189
```
189190

190191
### Participant Related Models
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
(congestion-result)=
2+
3+
# Congestion
4+
5+
Representation of a congestion result for a given subnet.
6+
7+
## Attributes, Units and Remarks
8+
9+
```{eval-rst}
10+
.. list-table::
11+
:widths: 33 33 33
12+
:header-rows: 1
13+
14+
15+
* - Attribute
16+
- Unit
17+
- Remarks
18+
19+
* - time
20+
- ZonedDateTime
21+
- date and time for the produced result
22+
23+
* - subgrid
24+
- --
25+
- Sub grid number
26+
27+
* - vMin
28+
- p.u.
29+
- minimal voltage of the subnet
30+
31+
* - vMax
32+
- p.u.
33+
- maximal voltage of the subnet
34+
35+
* - voltage
36+
- --
37+
- Boolean indicator, if a voltage congestion occurred
38+
39+
* - line
40+
- --
41+
- Boolean indicator, if a line congestion occurred
42+
43+
* - transformer
44+
- --
45+
- Boolean indicator, if a transformer congestion occurred
46+
```
47+
48+
## Caveats
49+
50+
Nothing - at least not known.
51+
If you found something, please contact us!
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* © 2024. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.io.factory.result;
7+
8+
import static edu.ie3.util.quantities.PowerSystemUnits.PU;
9+
10+
import edu.ie3.datamodel.io.factory.EntityData;
11+
import edu.ie3.datamodel.models.result.CongestionResult;
12+
import java.time.ZonedDateTime;
13+
import java.time.format.DateTimeFormatter;
14+
import java.util.List;
15+
import java.util.Set;
16+
import javax.measure.quantity.Dimensionless;
17+
import tech.units.indriya.ComparableQuantity;
18+
19+
public class CongestionResultFactory extends ResultEntityFactory<CongestionResult> {
20+
private static final String SUBGRID = "subgrid";
21+
private static final String VMIN = "vMin";
22+
private static final String VMAX = "vMax";
23+
private static final String VOLTAGE = "voltage";
24+
private static final String LINE = "line";
25+
private static final String TRANSFORMER = "transformer";
26+
27+
public CongestionResultFactory() {
28+
super(CongestionResult.class);
29+
}
30+
31+
public CongestionResultFactory(DateTimeFormatter dateTimeFormatter) {
32+
super(dateTimeFormatter, CongestionResult.class);
33+
}
34+
35+
@Override
36+
protected List<Set<String>> getFields(Class<?> entityClass) {
37+
return List.of(newSet(TIME, SUBGRID, VMIN, VMAX, VOLTAGE, LINE, TRANSFORMER));
38+
}
39+
40+
@Override
41+
protected CongestionResult buildModel(EntityData data) {
42+
ZonedDateTime zdtTime = timeUtil.toZonedDateTime(data.getField(TIME));
43+
int subgrid = data.getInt(SUBGRID);
44+
ComparableQuantity<Dimensionless> vMin = data.getQuantity(VMIN, PU);
45+
ComparableQuantity<Dimensionless> vMax = data.getQuantity(VMAX, PU);
46+
boolean voltage = data.getBoolean(VOLTAGE);
47+
boolean line = data.getBoolean(LINE);
48+
boolean transformer = data.getBoolean(TRANSFORMER);
49+
50+
return new CongestionResult(zdtTime, subgrid, vMin, vMax, voltage, line, transformer);
51+
}
52+
}

src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import javax.measure.quantity.ElectricCurrent;
2121
import tech.units.indriya.ComparableQuantity;
2222

23-
public class ConnectorResultFactory extends ResultEntityFactory<ConnectorResult> {
23+
public class ConnectorResultFactory extends ModelResultFactory<ConnectorResult> {
2424

2525
private static final String IAMAG = "iAMag";
2626
private static final String IAANG = "iAAng";

src/main/java/edu/ie3/datamodel/io/factory/result/FlexOptionsResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import javax.measure.quantity.Power;
1515
import tech.units.indriya.ComparableQuantity;
1616

17-
public class FlexOptionsResultFactory extends ResultEntityFactory<FlexOptionsResult> {
17+
public class FlexOptionsResultFactory extends ModelResultFactory<FlexOptionsResult> {
1818

1919
private static final String P_REF = "pRef";
2020
private static final String P_MIN = "pMin";
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* © 2024. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.io.factory.result;
7+
8+
import edu.ie3.datamodel.models.result.ModelResultEntity;
9+
import java.time.format.DateTimeFormatter;
10+
11+
public abstract class ModelResultFactory<T extends ModelResultEntity>
12+
extends ResultEntityFactory<T> {
13+
protected static final String INPUT_MODEL = "inputModel";
14+
15+
protected ModelResultFactory(Class<? extends T>... allowedClasses) {
16+
super(allowedClasses);
17+
}
18+
19+
protected ModelResultFactory(
20+
DateTimeFormatter dateTimeFormatter, Class<? extends T>... allowedClasses) {
21+
super(dateTimeFormatter, allowedClasses);
22+
}
23+
}

src/main/java/edu/ie3/datamodel/io/factory/result/NodeResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import javax.measure.quantity.Dimensionless;
1616
import tech.units.indriya.ComparableQuantity;
1717

18-
public class NodeResultFactory extends ResultEntityFactory<NodeResult> {
18+
public class NodeResultFactory extends ModelResultFactory<NodeResult> {
1919
private static final String VMAG = "vMag";
2020
private static final String VANG = "vAng";
2121

src/main/java/edu/ie3/datamodel/io/factory/result/ResultEntityFactory.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
abstract class ResultEntityFactory<T extends ResultEntity> extends EntityFactory<T, EntityData> {
2222

2323
protected static final String TIME = "time";
24-
protected static final String INPUT_MODEL = "inputModel";
2524

2625
protected final TimeUtil timeUtil;
2726

src/main/java/edu/ie3/datamodel/io/factory/result/SwitchResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import java.time.format.DateTimeFormatter;
1212
import java.util.*;
1313

14-
public class SwitchResultFactory extends ResultEntityFactory<SwitchResult> {
14+
public class SwitchResultFactory extends ModelResultFactory<SwitchResult> {
1515

1616
private static final String CLOSED = "closed";
1717

0 commit comments

Comments
 (0)