![JAR search and dependency download from the Maven repository](/logo.png)
com.powsybl.openrao.data.cracimpl.StandardRangeActionUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of open-rao-crac-impl Show documentation
Show all versions of open-rao-crac-impl Show documentation
Object model for CRAC implementation
/*
* Copyright (c) 2023, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.powsybl.openrao.data.cracimpl;
import com.powsybl.openrao.data.cracapi.range.StandardRange;
import org.apache.commons.lang3.NotImplementedException;
import java.util.List;
/**
* Common code for StandradRangeAction implementations (adding another abstract class for standard range actions would be too much class depth)
* @author Gabriel Plante {@literal ranges, double initialSetpoint) {
double minAdmissibleSetpoint = Double.NEGATIVE_INFINITY;
for (StandardRange range : ranges) {
switch (range.getRangeType()) {
case ABSOLUTE:
minAdmissibleSetpoint = Math.max(minAdmissibleSetpoint, range.getMin());
break;
case RELATIVE_TO_INITIAL_NETWORK:
minAdmissibleSetpoint = Math.max(minAdmissibleSetpoint, initialSetpoint + range.getMin());
break;
case RELATIVE_TO_PREVIOUS_INSTANT:
minAdmissibleSetpoint = Math.max(minAdmissibleSetpoint, previousInstantSetPoint + range.getMin());
break;
default:
throw new NotImplementedException("Range Action type is not implemented yet.");
}
}
return minAdmissibleSetpoint;
}
static double getMaxAdmissibleSetpoint(double previousInstantSetPoint, List ranges, double initialSetpoint) {
double maxAdmissibleSetpoint = Double.POSITIVE_INFINITY;
for (StandardRange range : ranges) {
switch (range.getRangeType()) {
case ABSOLUTE:
maxAdmissibleSetpoint = Math.min(maxAdmissibleSetpoint, range.getMax());
break;
case RELATIVE_TO_INITIAL_NETWORK:
maxAdmissibleSetpoint = Math.min(maxAdmissibleSetpoint, initialSetpoint + range.getMax());
break;
case RELATIVE_TO_PREVIOUS_INSTANT:
maxAdmissibleSetpoint = Math.min(maxAdmissibleSetpoint, previousInstantSetPoint + range.getMax());
break;
default:
throw new NotImplementedException("Range Action type is not implemented yet.");
}
}
return maxAdmissibleSetpoint;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy