Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
code review remarqs
Browse files Browse the repository at this point in the history
ghazwarhili committed Oct 8, 2024
1 parent 71fc33f commit bd6d18b
Showing 2 changed files with 41 additions and 52 deletions.
Original file line number Diff line number Diff line change
@@ -288,7 +288,8 @@ public void controlVoltageLevelCreation(VoltageLevelCreationInfos voltageLevelCr
if (Objects.nonNull(voltageLevelCreationInfos.getIpMin()) && Objects.isNull(voltageLevelCreationInfos.getIpMax())) {
throw new NetworkModificationException(CREATE_VOLTAGE_LEVEL_ERROR, "IpMax is required");
}
if (Objects.nonNull(voltageLevelCreationInfos.getIpMin()) && voltageLevelCreationInfos.getIpMin() > voltageLevelCreationInfos.getIpMax()) {
if (Objects.nonNull(voltageLevelCreationInfos.getIpMin()) && Objects.nonNull(voltageLevelCreationInfos.getIpMax())
&& voltageLevelCreationInfos.getIpMin() > voltageLevelCreationInfos.getIpMax()) {
throw new NetworkModificationException(CREATE_VOLTAGE_LEVEL_ERROR, "IpMin cannot be greater than IpMax");
}
}
@@ -982,11 +983,17 @@ public <T> void reportElementaryCreation(ReportNode subReportNode, T value, Stri
}

public String formatRegulationModeReport(PhaseTapChanger.RegulationMode regulationMode) {
return switch (regulationMode) {
case FIXED_TAP -> " Fixed tap";
case CURRENT_LIMITER -> " Current limiter";
case ACTIVE_POWER_CONTROL -> " Active power control";
};
switch (regulationMode) {
case FIXED_TAP:
return " Fixed tap";
case CURRENT_LIMITER :
return " Current limiter";
case ACTIVE_POWER_CONTROL :
return " Active power control";
default :
return "";

}
}

public void modifyReactiveCapabilityCurvePoints(Collection<ReactiveCapabilityCurve.Point> points,
@@ -1031,9 +1038,9 @@ public void createReactiveCapabilityCurvePoint(ReactiveCapabilityCurveAdder adde
ReactiveCapabilityCurve.Point oldPoint,
List<ReportNode> reports,
String fieldSuffix) {
double oldMaxQ = Double.NaN;
double oldMinQ = Double.NaN;
double oldP = Double.NaN;
Double oldMaxQ = Double.NaN;
Double oldMinQ = Double.NaN;
Double oldP = Double.NaN;
if (oldPoint != null) {
oldMaxQ = oldPoint.getMaxQ();
oldMinQ = oldPoint.getMinQ();
@@ -1154,7 +1161,7 @@ private void createNewActivePowerControl(ActivePowerControlAdder<?> adder,
AttributeModification<Boolean> participateInfo,
AttributeModification<Float> droopInfo,
List<ReportNode> reports) {
boolean participate = participateInfo != null && participateInfo.getValue();
boolean participate = participateInfo != null ? participateInfo.getValue() : false;
adder.withParticipate(participate);
if (participateInfo != null && reports != null) {
reports.add(buildModificationReport(null, participate, "Participate"));
@@ -1294,47 +1301,39 @@ public void checkReactiveLimitsCreation(ReactiveLimitsHolderInfos modificationIn
}
}

public void checkReactivePowerLimitsAndSetPointsCreation(Double maxSusceptance, Double minSusceptance,
Double maxQAtNominalV, Double minQAtNominalV,
Double voltageSetpoint, Double reactivePowerSetpoint,
StaticVarCompensator.RegulationMode regulationMode,
NetworkModificationException.Type errorType,
String equipmentId,
String equipmentName) {
public void checkReactivePowerLimitsAndSetPointsCreation(StaticVarCompensatorCreationInfos creationInfos) {
String equipmentName = "StaticVarCompensator";
// check min max reactive limits
if (Objects.isNull(minSusceptance) && Objects.isNull(minQAtNominalV)) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "minimum susceptance is not set");
if (Objects.isNull(creationInfos.getMinSusceptance()) && Objects.isNull(creationInfos.getMinQAtNominalV())) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "minimum susceptance is not set");
}
if (Objects.isNull(maxSusceptance) && Objects.isNull(maxQAtNominalV)) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "maximum susceptance is not set");
if (Objects.isNull(creationInfos.getMaxSusceptance()) && Objects.isNull(creationInfos.getMaxQAtNominalV())) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "maximum susceptance is not set");
}
if (Objects.nonNull(maxSusceptance) && Objects.nonNull(minSusceptance) && maxSusceptance < minSusceptance ||
Objects.nonNull(maxQAtNominalV) && Objects.nonNull(minQAtNominalV) && maxQAtNominalV < minQAtNominalV) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "maximum susceptance is expected to be greater than or equal to minimum susceptance");
if (Objects.nonNull(creationInfos.getMaxSusceptance()) && Objects.nonNull(creationInfos.getMinSusceptance()) && creationInfos.getMaxSusceptance() < creationInfos.getMinSusceptance() ||
Objects.nonNull(creationInfos.getMaxQAtNominalV()) && Objects.nonNull(creationInfos.getMinQAtNominalV()) && creationInfos.getMaxQAtNominalV() < creationInfos.getMinQAtNominalV()) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "maximum susceptance is expected to be greater than or equal to minimum susceptance");
}

// check set points
if (Objects.requireNonNull(regulationMode) == StaticVarCompensator.RegulationMode.VOLTAGE && voltageSetpoint == null) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "Voltage setpoint is not set");
if (Objects.requireNonNull(creationInfos.getRegulationMode()) == StaticVarCompensator.RegulationMode.VOLTAGE && creationInfos.getVoltageSetpoint() == null) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "Voltage setpoint is not set");
}
if (regulationMode == StaticVarCompensator.RegulationMode.REACTIVE_POWER && reactivePowerSetpoint == null) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "Reactive power setpoint is not set");
if (creationInfos.getRegulationMode() == StaticVarCompensator.RegulationMode.REACTIVE_POWER && creationInfos.getReactivePowerSetpoint() == null) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "Reactive power setpoint is not set");
}
}

public void checkStandbyAutomatonCreation(Boolean standby, Double b0, Double q0,
Double minSusceptance, Double maxSusceptance,
Double minQAtNominalV, Double maxQAtNominalV,
StaticVarCompensator.RegulationMode regulationMode,
NetworkModificationException.Type errorType,
String equipmentId,
String equipmentName) {
if (Boolean.TRUE.equals(standby) && regulationMode != StaticVarCompensator.RegulationMode.VOLTAGE) {
throw makeEquipmentException(errorType, equipmentId, equipmentName, "Standby is only supported in Voltage Regulation mode");
public void checkStandbyAutomatonCreation(StaticVarCompensatorCreationInfos creationInfos) {
String equipmentName = "StaticVarCompensator";
if (Boolean.TRUE.equals(creationInfos.isStandby()) && creationInfos.getRegulationMode() != StaticVarCompensator.RegulationMode.VOLTAGE) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName, "Standby is only supported in Voltage Regulation mode");
}
if (Objects.nonNull(b0) && Objects.nonNull(minSusceptance) && Objects.nonNull(maxSusceptance) && (b0 < minSusceptance || b0 > maxSusceptance)
|| Objects.nonNull(q0) && Objects.nonNull(minQAtNominalV) && Objects.nonNull(maxQAtNominalV) && (q0 < minQAtNominalV || q0 > maxQAtNominalV)) {
throw makeEquipmentException(errorType, equipmentId, equipmentName,
if (Objects.nonNull(creationInfos.getB0()) && Objects.nonNull(creationInfos.getMinSusceptance()) && Objects.nonNull(creationInfos.getMaxSusceptance()) &&
(creationInfos.getB0() < creationInfos.getMinSusceptance() || creationInfos.getB0() > creationInfos.getMaxSusceptance())
|| Objects.nonNull(creationInfos.getQ0()) && Objects.nonNull(creationInfos.getMinQAtNominalV()) && Objects.nonNull(creationInfos.getMaxQAtNominalV()) &&
(creationInfos.getQ0() < creationInfos.getMinQAtNominalV() || creationInfos.getQ0() > creationInfos.getMaxQAtNominalV())) {
throw makeEquipmentException(creationInfos.getErrorType(), creationInfos.getEquipmentId(), equipmentName,
"b0 must be within the range of minimun susceptance and maximum susceptance");
}
}
Original file line number Diff line number Diff line change
@@ -45,25 +45,15 @@ public void check(Network network) throws NetworkModificationException {
modificationInfos.getBusOrBusbarSectionId(), modificationInfos.getConnectionPosition());

// check reactive power limits and set points
ModificationUtils.getInstance().checkReactivePowerLimitsAndSetPointsCreation(modificationInfos.getMaxSusceptance(),
modificationInfos.getMinSusceptance(), modificationInfos.getMaxQAtNominalV(),
modificationInfos.getMinQAtNominalV(), modificationInfos.getVoltageSetpoint(),
modificationInfos.getReactivePowerSetpoint(), modificationInfos.getRegulationMode(),
modificationInfos.getErrorType(),
modificationInfos.getEquipmentId(),
"StaticVarCompensator");
ModificationUtils.getInstance().checkReactivePowerLimitsAndSetPointsCreation(modificationInfos);

// check regulated terminal
VoltageLevel voltageLevel = ModificationUtils.getInstance().getVoltageLevel(network, modificationInfos.getVoltageLevelId());
ModificationUtils.getInstance().getTerminalFromIdentifiable(voltageLevel.getNetwork(), modificationInfos.getRegulatingTerminalId(),
modificationInfos.getRegulatingTerminalType(), modificationInfos.getRegulatingTerminalVlId());

// check standby automaton
ModificationUtils.getInstance().checkStandbyAutomatonCreation(modificationInfos.isStandby(), modificationInfos.getB0(),
modificationInfos.getQ0(), modificationInfos.getMinSusceptance(), modificationInfos.getMaxSusceptance(),
modificationInfos.getMinQAtNominalV(), modificationInfos.getMaxQAtNominalV(),
modificationInfos.getRegulationMode(), modificationInfos.getErrorType(), modificationInfos.getEquipmentId(),
"StaticVarCompensator");
ModificationUtils.getInstance().checkStandbyAutomatonCreation(modificationInfos);
}

@Override

0 comments on commit bd6d18b

Please sign in to comment.