Skip to content

Commit 98e8cd8

Browse files
committed
acEmulationSwitch to acEmulationDeactivation
Signed-off-by: CHEN Roxane <[email protected]>
1 parent 8338318 commit 98e8cd8

File tree

8 files changed

+46
-60
lines changed

8 files changed

+46
-60
lines changed
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,5 @@
1010
/**
1111
* @author Roxane Chen {@literal <roxane.chen at rte-france.com>}
1212
*/
13-
public interface AcEmulationSwitchActionAdder extends SingleNetworkElementActionAdder<AcEmulationSwitchActionAdder> {
14-
15-
AcEmulationSwitchActionAdder withActionType(ActionType actionType);
13+
public interface AcEmulationDeactivationActionAdder extends SingleNetworkElementActionAdder<AcEmulationDeactivationActionAdder> {
1614
}

data/crac/crac-api/src/main/java/com/powsybl/openrao/data/crac/api/networkaction/NetworkActionAdder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public interface NetworkActionAdder extends RemedialActionAdder<NetworkActionAdd
3131

3232
SwitchPairAdder newSwitchPair();
3333

34-
AcEmulationSwitchActionAdder newAcEmulationSwitchAction();
34+
AcEmulationDeactivationActionAdder newAcEmulationDeactivationAction();
3535

3636
NetworkAction add();
3737
}
Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,42 +9,36 @@
99

1010
import com.powsybl.action.Action;
1111
import com.powsybl.action.HvdcActionBuilder;
12-
import com.powsybl.openrao.data.crac.api.networkaction.AcEmulationSwitchActionAdder;
12+
import com.powsybl.openrao.data.crac.api.networkaction.AcEmulationDeactivationActionAdder;
1313
import com.powsybl.openrao.data.crac.api.networkaction.ActionType;
1414

1515
import static com.powsybl.openrao.data.crac.api.networkaction.ActionType.ACTIVATE;
16+
import static com.powsybl.openrao.data.crac.api.networkaction.ActionType.DEACTIVATE;
1617
import static com.powsybl.openrao.data.crac.impl.AdderUtils.assertAttributeNotNull;
1718

1819
/**
1920
* @author Roxane Chen {@literal <roxane.chen at rte-france.com>}
2021
*/
21-
public class AcEmulationSwitchActionAdderImpl extends AbstractSingleNetworkElementActionAdderImpl<AcEmulationSwitchActionAdder> implements AcEmulationSwitchActionAdder {
22+
public class AcEmulationDeactivationActionAdderImpl extends AbstractSingleNetworkElementActionAdderImpl<AcEmulationDeactivationActionAdder> implements AcEmulationDeactivationActionAdder {
2223

23-
private ActionType actionType;
2424

25-
AcEmulationSwitchActionAdderImpl(NetworkActionAdderImpl ownerAdder) {
25+
AcEmulationDeactivationActionAdderImpl(NetworkActionAdderImpl ownerAdder) {
2626
super(ownerAdder);
2727
}
2828

29-
@Override
30-
public AcEmulationSwitchActionAdder withActionType(ActionType actionType) {
31-
this.actionType = actionType;
32-
return this;
33-
}
34-
3529
protected Action buildAction() {
3630
return new HvdcActionBuilder()
37-
.withId(String.format("%s_%s_%s", getActionName(), networkElementId, actionType))
31+
.withId(String.format("%s_%s_%s", getActionName(), networkElementId, DEACTIVATE))
3832
.withHvdcId(networkElementId)
39-
.withAcEmulationEnabled(actionType == ACTIVATE)
33+
.withAcEmulationEnabled(false)
4034
.build();
4135
}
4236

4337
protected void assertSpecificAttributes() {
44-
assertAttributeNotNull(actionType, getActionName(), "actionType", "withActionType()");
38+
assertAttributeNotNull(DEACTIVATE, getActionName(), "actionType", "withActionType()");
4539
}
4640

4741
protected String getActionName() {
48-
return "AcEmulationSwitchAction";
42+
return "AcEmulationDeactivationAction";
4943
}
5044
}

data/crac/crac-impl/src/main/java/com/powsybl/openrao/data/crac/impl/NetworkActionAdderImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,8 @@ public SwitchPairAdder newSwitchPair() {
7979
}
8080

8181
@Override
82-
public AcEmulationSwitchActionAdder newAcEmulationSwitchAction() {
83-
return new AcEmulationSwitchActionAdderImpl(this); }
82+
public AcEmulationDeactivationActionAdder newAcEmulationDeactivationAction() {
83+
return new AcEmulationDeactivationActionAdderImpl(this); }
8484

8585
@Override
8686
public NetworkAction add() {
Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import com.powsybl.action.HvdcAction;
1111
import com.powsybl.openrao.commons.OpenRaoException;
1212
import com.powsybl.openrao.data.crac.api.Crac;
13-
import com.powsybl.openrao.data.crac.api.networkaction.AcEmulationSwitchActionAdder;
13+
import com.powsybl.openrao.data.crac.api.networkaction.AcEmulationDeactivationActionAdder;
1414
import com.powsybl.openrao.data.crac.api.networkaction.ActionType;
1515
import com.powsybl.openrao.data.crac.api.networkaction.NetworkAction;
1616
import com.powsybl.openrao.data.crac.api.networkaction.NetworkActionAdder;
@@ -22,7 +22,7 @@
2222
/**
2323
* @author Roxane Chen {@literal <roxane.chen at rte-france.com>}
2424
*/
25-
public class AcEmulationSwitchActionAdderImplTest {
25+
public class AcEmulationDeactivationActionAdderImplTest {
2626
private Crac crac;
2727
private NetworkActionAdder networkActionAdder;
2828

@@ -37,9 +37,8 @@ public void setUp() {
3737

3838
@Test
3939
void testOk() {
40-
NetworkAction networkAction = networkActionAdder.newAcEmulationSwitchAction()
40+
NetworkAction networkAction = networkActionAdder.newAcEmulationDeactivationAction()
4141
.withNetworkElement("hvdcLineElementId")
42-
.withActionType(ActionType.DEACTIVATE)
4342
.add()
4443
.add();
4544

@@ -54,15 +53,14 @@ void testOk() {
5453

5554
@Test
5655
void testNoNetworkElement() {
57-
AcEmulationSwitchActionAdder acEmulationSwitchActionAdder = networkActionAdder.newAcEmulationSwitchAction()
58-
.withActionType(ActionType.DEACTIVATE);
59-
assertThrows(OpenRaoException.class, acEmulationSwitchActionAdder::add);
56+
AcEmulationDeactivationActionAdder acEmulationDeactivationActionAdder = networkActionAdder.newAcEmulationDeactivationAction();
57+
assertThrows(OpenRaoException.class, acEmulationDeactivationActionAdder::add);
6058
}
6159

6260
@Test
6361
void testNoActionType() {
64-
AcEmulationSwitchActionAdder acEmulationSwitchActionAdder = networkActionAdder.newAcEmulationSwitchAction()
62+
AcEmulationDeactivationActionAdder acEmulationDeactivationActionAdder = networkActionAdder.newAcEmulationDeactivationAction()
6563
.withNetworkElement("hvdcLineElementId");
66-
assertThrows(OpenRaoException.class, acEmulationSwitchActionAdder::add);
64+
assertThrows(OpenRaoException.class, acEmulationDeactivationActionAdder::add);
6765
}
6866
}

ra-optimisation/search-tree-rao/src/main/java/com/powsybl/openrao/searchtreerao/commons/RaoUtil.java

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -247,61 +247,59 @@ public static void addNetworkActionAssociatedWithHvdcRangeAction(Crac crac, Netw
247247

248248
String hvdcLineId = hvdcRangeAction.getNetworkElement().getId();
249249

250-
Set<NetworkAction> acEmulationSwitchActionOnHvdcLine = crac.getNetworkActions().stream()
250+
Set<NetworkAction> acEmulationDeactivationActionOnHvdcLine = crac.getNetworkActions().stream()
251251
.filter(ra -> ra.getElementaryActions().stream().allMatch(action -> action instanceof HvdcAction))
252-
.filter(ra -> ra.getElementaryActions().stream().anyMatch(action ->
252+
.filter(ra -> ra.getElementaryActions().stream().allMatch(action ->
253253
((HvdcAction) action).getHvdcId().equals(hvdcLineId)
254254
)).collect(Collectors.toSet());
255255

256256
HvdcAngleDroopActivePowerControl hvdcAngleDoopActivePowerControl = IidmHvdcHelper.getHvdcLine(network, hvdcLineId).getExtension(HvdcAngleDroopActivePowerControl.class);
257257
if (hvdcAngleDoopActivePowerControl != null && hvdcAngleDoopActivePowerControl.isEnabled()) {
258258
String networkActionId = String.format("%s_%s", "acEmulationDeactivation", hvdcLineId);
259-
if (acEmulationSwitchActionOnHvdcLine.isEmpty()) {
259+
if (acEmulationDeactivationActionOnHvdcLine.isEmpty()) {
260260
// create the network action using the adder
261-
NetworkActionAdder acEmulationSwitchActionAdder = crac.newNetworkAction()
261+
NetworkActionAdder acEmulationDeactivationActionAdder = crac.newNetworkAction()
262262
.withId(networkActionId)
263263
.withOperator(hvdcRangeAction.getOperator())
264-
.newAcEmulationSwitchAction()
264+
.newAcEmulationDeactivationAction()
265265
.withNetworkElement(hvdcLineId)
266-
.withActionType(ActionType.DEACTIVATE)
267266
.add();
268-
addAllUsageRuleNotInAuto(hvdcRangeAction, acEmulationSwitchActionAdder);
269-
acEmulationSwitchActionAdder.add();
267+
addAllUsageRuleNotInAuto(hvdcRangeAction, acEmulationDeactivationActionAdder);
268+
acEmulationDeactivationActionAdder.add();
270269
} else {
271-
NetworkAction acEmulationSwitchAction = acEmulationSwitchActionOnHvdcLine.iterator().next();
270+
NetworkAction acEmulationDeactivationAction = acEmulationDeactivationActionOnHvdcLine.iterator().next();
272271
hvdcRangeAction.getUsageRules().stream().forEach(
273-
usageRule -> acEmulationSwitchAction.addUsageRule(usageRule)
272+
usageRule -> acEmulationDeactivationAction.addUsageRule(usageRule)
274273
);
275274
}
276275
}
277276
});
278277
}
279278

280279
// Add all the usage rule of the range action to the network action except if its in auto.
281-
static void addAllUsageRuleNotInAuto(HvdcRangeAction hvdcRangeAction, NetworkActionAdder acEmulationSwitchActionAdder) {
280+
static void addAllUsageRuleNotInAuto(HvdcRangeAction hvdcRangeAction, NetworkActionAdder acEmulationDeactivationActionAdder) {
282281
hvdcRangeAction.getUsageRules().forEach(
283282
usageRule -> {
284283
if (usageRule.getClass().equals(OnInstantImpl.class)) {
285-
286-
acEmulationSwitchActionAdder
284+
acEmulationDeactivationActionAdder
287285
.newOnInstantUsageRule()
288286
.withInstant(usageRule.getInstant().getId())
289287
.add();
290288
} else if (usageRule.getClass().equals(OnConstraintImpl.class)) {
291289
OnConstraint<?> onConstraint = (OnConstraint<?>) usageRule;
292-
acEmulationSwitchActionAdder.newOnConstraintUsageRule()
290+
acEmulationDeactivationActionAdder.newOnConstraintUsageRule()
293291
.withInstant(onConstraint.getInstant().getId())
294292
.withCnec(onConstraint.getCnec().getId())
295293
.add();
296294
} else if (usageRule.getClass().equals(OnContingencyStateImpl.class)) {
297295
OnContingencyState onContingencyState = (OnContingencyState) usageRule;
298-
acEmulationSwitchActionAdder.newOnContingencyStateUsageRule()
296+
acEmulationDeactivationActionAdder.newOnContingencyStateUsageRule()
299297
.withContingency(onContingencyState.getContingency().getId())
300298
.withInstant(onContingencyState.getInstant().getId())
301299
.add();
302300
} else if (usageRule.getClass().equals(OnFlowConstraintInCountryImpl.class)) {
303301
OnFlowConstraintInCountry onFlowConstraintInCountry = (OnFlowConstraintInCountry) usageRule;
304-
acEmulationSwitchActionAdder.newOnFlowConstraintInCountryUsageRule()
302+
acEmulationDeactivationActionAdder.newOnFlowConstraintInCountryUsageRule()
305303
.withCountry(onFlowConstraintInCountry.getCountry())
306304
.withInstant(onFlowConstraintInCountry.getInstant().getId())
307305
.withContingency(onFlowConstraintInCountry.getContingency().get().getId())
@@ -321,18 +319,18 @@ static void updateHvdcRangeActionInitialSetpoint(Crac crac, Network network, Rao
321319
if (!hvdcRangeActionOnAcEmulationHvdcLinecrac.isEmpty()) {
322320
// Run load flow to update flow on all the line of the network
323321
LoadFlow.find(raoParameters.getExtension(OpenRaoSearchTreeParameters.class).getLoadFlowAndSensitivityParameters().getLoadFlowProvider()).run(network, raoParameters.getExtension(OpenRaoSearchTreeParameters.class).getLoadFlowAndSensitivityParameters().getSensitivityWithLoadFlowParameters().getLoadFlowParameters());
324-
325-
network.getHvdcLines().forEach(hvdcLine -> {
322+
hvdcRangeActionOnAcEmulationHvdcLinecrac.stream().forEach(hvdcRangeAction -> {
323+
String hvdcLineId = hvdcRangeAction.getNetworkElement().getId();
324+
HvdcLine hvdcLine = IidmHvdcHelper.getHvdcLine(network, hvdcLineId);
326325
double activePowerSetpoint = computeFlowOnHvdcLine(hvdcLine);
327-
hvdcLine.setConvertersMode(activePowerSetpoint > 0 ? HvdcLine.ConvertersMode.SIDE_1_RECTIFIER_SIDE_2_INVERTER : HvdcLine.ConvertersMode.SIDE_1_INVERTER_SIDE_2_RECTIFIER);
328-
hvdcLine.setActivePowerSetpoint(Math.abs(activePowerSetpoint));
326+
// is NaN if the line is disconnected
327+
if (activePowerSetpoint != Double.NaN) {
328+
hvdcLine.setConvertersMode(activePowerSetpoint > 0 ? HvdcLine.ConvertersMode.SIDE_1_RECTIFIER_SIDE_2_INVERTER : HvdcLine.ConvertersMode.SIDE_1_INVERTER_SIDE_2_RECTIFIER);
329+
hvdcLine.setActivePowerSetpoint(Math.abs(activePowerSetpoint));
330+
hvdcRangeAction.setInitialSetpoint(activePowerSetpoint);
331+
}
329332
});
330333

331-
// Update all the initial setpoint
332-
hvdcRangeActionOnAcEmulationHvdcLinecrac
333-
.forEach(hvdcRangeAction -> {
334-
hvdcRangeAction.setInitialSetpoint(IidmHvdcHelper.getCurrentSetpoint(network, hvdcRangeAction.getNetworkElement().getId()));
335-
});
336334
}
337335
}
338336
}

ra-optimisation/search-tree-rao/src/test/java/com/powsybl/openrao/searchtreerao/castor/algorithm/AutomatonSimulatorTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,18 +235,16 @@ void setup() {
235235
acEmulationDeactivation1 = crac.newNetworkAction()
236236
.withId("ac-eumlation-deactivation-1")
237237
.withOperator(hvdcRa1.getOperator())
238-
.newAcEmulationSwitchAction()
238+
.newAcEmulationDeactivationAction()
239239
.withNetworkElement("BBE2AA11 FFR3AA11 1")
240-
.withActionType(ActionType.DEACTIVATE)
241240
.add()
242241
.newOnInstantUsageRule().withInstant(AUTO_INSTANT_ID).add()
243242
.add();
244243
acEmulationDeactivation2 = crac.newNetworkAction()
245244
.withId("ac-eumlation-deactivation-2")
246245
.withOperator(hvdcRa2.getOperator())
247-
.newAcEmulationSwitchAction()
246+
.newAcEmulationDeactivationAction()
248247
.withNetworkElement("BBE2AA12 FFR3AA12 1")
249-
.withActionType(ActionType.DEACTIVATE)
250248
.add()
251249
.newOnInstantUsageRule().withInstant(AUTO_INSTANT_ID).add()
252250
.add();

ra-optimisation/search-tree-rao/src/test/java/com/powsybl/openrao/searchtreerao/searchtree/algorithms/LeafTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,8 @@ void testMultipleLeafDefinitionWithSameNetworkAction() {
206206
}
207207

208208
@Test
209-
void testLeafDefinitionWithAcEmulationSwitchNetworkAction() {
210-
// An ac emulation switch action is activated.
209+
void testLeafDefinitionWithAcEmulationDeactivationNetworkAction() {
210+
// An ac emulation deactivation action is activated.
211211
Network networkWithAngleDroop = import16NodesNetworkWithAngleDroopHvdcs();
212212
Leaf rootLeaf = new Leaf(optimizationPerimeter, networkWithAngleDroop, prePerimeterResult, appliedRemedialActions);
213213
RangeActionActivationResult rangeActionActivationResult = Mockito.mock(RangeActionActivationResult.class);

0 commit comments

Comments
 (0)