Skip to content

Commit

Permalink
Refactor TapChangerControl EQ and SSH export (#2920).
Browse files Browse the repository at this point in the history
Signed-off-by: stojkovicn <nemanja.stojkovic@rte-france.com>
  • Loading branch information
stojkovicn committed May 9, 2024
1 parent c07f7ef commit 70061f9
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public final class EquipmentExport {
private static final String PHASE_TAP_CHANGER_REGULATION_MODE_ACTIVE_POWER = "activePower";
private static final String PHASE_TAP_CHANGER_REGULATION_MODE_CURRENT_FLOW = "currentFlow";
private static final String RATIO_TAP_CHANGER_REGULATION_MODE_VOLTAGE = "voltage";
private static final String RATIO_TAP_CHANGER_REGULATION_MODE_REACTIVE_POWER = "reactivePower";
private static final String TERMINAL_BOUNDARY = "Terminal_Boundary";
private static final Logger LOG = LoggerFactory.getLogger(EquipmentExport.class);

Expand Down Expand Up @@ -937,8 +938,11 @@ private static <C extends Connectable<C>> void writeRatioTapChanger(C eq, RatioT
String terminalId = CgmesExportUtil.getTerminalId(rtc.getRegulationTerminal(), context);
cgmesRegulatingControlId = context.getNamingStrategy().getCgmesId(regulatingControlId.get());
if (!regulatingControlsWritten.contains(cgmesRegulatingControlId)) {
// Regulating control mode is always "voltage"
TapChangerEq.writeControl(cgmesRegulatingControlId, controlName, RATIO_TAP_CHANGER_REGULATION_MODE_VOLTAGE, terminalId, cimNamespace, writer, context);
String tccMode = RATIO_TAP_CHANGER_REGULATION_MODE_VOLTAGE;
if (rtc.getRegulationMode() == RatioTapChanger.RegulationMode.REACTIVE_POWER) {
tccMode = RATIO_TAP_CHANGER_REGULATION_MODE_REACTIVE_POWER;
}
TapChangerEq.writeControl(cgmesRegulatingControlId, controlName, tccMode, terminalId, cimNamespace, writer, context);
regulatingControlsWritten.add(cgmesRegulatingControlId);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -445,14 +445,21 @@ private static void addRegulatingControlView(TapChanger<?, ?, ?, ?> tc, CgmesTap
RegulatingControlView rcv = null;
if (tc instanceof RatioTapChanger ratioTapChanger
&& CgmesExportUtil.regulatingControlIsDefined(ratioTapChanger)) {
String unitMultiplier = switch (ratioTapChanger.getRegulationMode()) {
case VOLTAGE -> {
yield "k";
}
case REACTIVE_POWER -> {
yield "M";
}
};
rcv = new RegulatingControlView(controlId,
RegulatingControlType.TAP_CHANGER_CONTROL,
true,
ratioTapChanger.isRegulating(),
ratioTapChanger.getTargetDeadband(),
ratioTapChanger.getTargetV(),
// Unit multiplier is k for ratio tap changers (regulation value is a voltage in kV)
"k");
ratioTapChanger.getRegulationValue(),
unitMultiplier);
} else if (tc instanceof PhaseTapChanger phaseTapChanger
&& CgmesExportUtil.regulatingControlIsDefined(phaseTapChanger)) {
boolean valid;
Expand Down

0 comments on commit 70061f9

Please sign in to comment.