Skip to content

Commit eadad61

Browse files
committed
powsybl 6 tieline remove(boolean updateDangling)
1 parent 648a09f commit eadad61

File tree

1 file changed

+28
-0
lines changed
  • network-store-iidm-impl/src/main/java/com/powsybl/network/store/iidm/impl

1 file changed

+28
-0
lines changed

network-store-iidm-impl/src/main/java/com/powsybl/network/store/iidm/impl/TieLineImpl.java

+28
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,20 @@ public DanglingLine getDanglingLine(String voltageLevelId) {
6464

6565
@Override
6666
public void remove() {
67+
remove(false);
68+
}
69+
70+
@Override
71+
public void remove(boolean updateDanglingLines) {
6772
var resource = getResource();
6873

6974
index.notifyBeforeRemoval(this);
7075

76+
if (updateDanglingLines) {
77+
updateDanglingLine(getDanglingLine1());
78+
updateDanglingLine(getDanglingLine2());
79+
}
80+
7181
getDanglingLine1().removeTieLine();
7282
getDanglingLine2().removeTieLine();
7383
index.removeTieLine(resource.getId());
@@ -399,4 +409,22 @@ static int getOverloadDuration(Branch.Overload o1, Branch.Overload o2) {
399409
int duration2 = o2 != null ? o2.getTemporaryLimit().getAcceptableDuration() : Integer.MAX_VALUE;
400410
return Math.min(duration1, duration2);
401411
}
412+
413+
private static void updateDanglingLine(DanglingLine danglingLine) {
414+
// Only update if we have values
415+
if (!Double.isNaN(danglingLine.getBoundary().getP())) {
416+
danglingLine.setP0(-danglingLine.getBoundary().getP());
417+
if (danglingLine.getGeneration() != null) {
418+
// We do not reset regulation if we only have computed a dc load flow
419+
danglingLine.getGeneration().setTargetP(0.0);
420+
}
421+
}
422+
if (!Double.isNaN(danglingLine.getBoundary().getQ())) {
423+
danglingLine.setQ0(-danglingLine.getBoundary().getQ());
424+
if (danglingLine.getGeneration() != null) {
425+
// If q values are available a complete ac load flow has been computed, we reset regulation
426+
danglingLine.getGeneration().setTargetQ(0.0).setVoltageRegulationOn(false).setTargetV(Double.NaN);
427+
}
428+
}
429+
}
402430
}

0 commit comments

Comments
 (0)