Interface LimitViolationDetector

All Known Implementing Classes:
AbstractContingencyBlindDetector, AbstractLimitViolationDetector, DefaultLimitViolationDetector

public interface LimitViolationDetector
Being given some physical values (currents, voltages, ...) for network elements, is in charge of deciding whether there are limit violations or not.
Author:
Sylvain Leclerc <sylvain.leclerc at rte-france.com>
  • Method Details

    • checkCurrent

      default void checkCurrent(Contingency contingency, Branch branch, TwoSides side, double currentValue, Consumer<LimitViolation> consumer)
      Checks whether the specified current value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      currentValue - The current value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      default void checkCurrent(Contingency contingency, ThreeWindingsTransformer transformer, ThreeSides side, double currentValue, Consumer<LimitViolation> consumer)
      Checks whether the specified current value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      currentValue - The current value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      default void checkCurrent(Contingency contingency, Branch branch, TwoSides side, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      default void checkCurrent(Contingency contingency, ThreeWindingsTransformer transformer, ThreeSides side, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      default void checkVoltage(Contingency contingency, Bus bus, double voltageValue, Consumer<LimitViolation> consumer)
      Checks whether the specified voltage value on the specified Bus should be considered as a LimitViolation or not. In case it should, returns the corresponding limit violation.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      bus - The bus on which the voltage must be checked.
      voltageValue - The voltage value to be checked, in V.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      default void checkVoltage(Contingency contingency, Bus bus, Consumer<LimitViolation> consumer)
      Checks whether the voltage value on the specified Bus should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      bus - The bus on which the voltage must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      default void checkVoltage(Contingency contingency, VoltageLevel voltageLevel, Consumer<LimitViolation> consumer)
      Checks whether the voltage value on the specified VoltageLevel should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      voltageLevel - The voltage level on which the voltage must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltageAngle

      default void checkVoltageAngle(Contingency contingency, VoltageAngleLimit voltageAngleLimit, double voltageAngleDifference, Consumer<LimitViolation> consumer)
      Checks whether the specified angle difference between the TerminalRefs on the specified VoltageAngleLimit should be considered as a LimitViolation or not. In case it should, returns the corresponding limit violation.
      Parameters:
      contingency - The contingency for which angle difference must be checked, null for N situation.
      voltageAngleLimit - The voltageAngleLimit defining the TerminalRefs on which the angle difference must be checked.
      voltageAngleDifference - The angle difference value to be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltageAngle

      default void checkVoltageAngle(Contingency contingency, VoltageAngleLimit voltageAngleLimit, Consumer<LimitViolation> consumer)
      Checks whether the angle difference value between the TerminalRefs on the specified VoltageAngleLimit should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which angle difference must be checked, null for N situation.
      voltageAngleLimit - The voltageAngleLimit defining the TerminalRefs on which the angle difference must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      default void checkCurrent(Contingency contingency, Branch branch, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified Branch should be considered as LimitViolation(s). In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      branch - The branch on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      default void checkCurrent(Contingency contingency, ThreeWindingsTransformer transformer, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified ThreeWindingsTransformer should be considered as LimitViolation(s). In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      transformer - The three windings transformer on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkAll

      default void checkAll(Contingency contingency, Network network, Consumer<LimitViolation> consumer)
      Checks whether the current and voltage values on all equipments of the specified Network should be considered as LimitViolations. In case it should, feeds the consumer with it.
      Parameters:
      contingency - The contingency for which current must be checked, null for N situation.
      network - The network on which physical values must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(Branch branch, TwoSides side, double currentValue, Consumer<LimitViolation> consumer)
      Checks whether the specified current value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      currentValue - The current value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(ThreeWindingsTransformer transformer, ThreeSides side, double currentValue, Consumer<LimitViolation> consumer)
      Checks whether the specified current value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the transformer on which the current must be checked.
      currentValue - The current value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkActivePower

      void checkActivePower(Branch branch, TwoSides side, double value, Consumer<LimitViolation> consumer)
      Checks whether the specified active power value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      value - The active power value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkActivePower

      void checkActivePower(ThreeWindingsTransformer transformer, ThreeSides side, double value, Consumer<LimitViolation> consumer)
      Checks whether the specified active power value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      value - The active power value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkApparentPower

      void checkApparentPower(Branch branch, TwoSides side, double value, Consumer<LimitViolation> consumer)
      Checks whether the specified apparent power value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      value - The apparent power value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkApparentPower

      void checkApparentPower(ThreeWindingsTransformer transformer, ThreeSides side, double value, Consumer<LimitViolation> consumer)
      Checks whether the specified apparent power value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      value - The apparent power value to be checked, in A.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(Branch branch, TwoSides side, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(ThreeWindingsTransformer transformer, ThreeSides side, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrentDc

      void checkCurrentDc(Branch branch, TwoSides side, double dcPowerFactor, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified Branch should be considered as a LimitViolation or not. In case it should, feeds the consumer with it. In this DC power flow mode, the current is computed using the DC power factor if necessary.
      Parameters:
      branch - The branch on which the current must be checked.
      side - The side of the branch on which the current must be checked.
      dcPowerFactor - The DC power factor used to convert the active power into current.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrentDc

      void checkCurrentDc(ThreeWindingsTransformer transformer, ThreeSides side, double dcPowerFactor, Consumer<LimitViolation> consumer)
      Checks whether the current value on the specified side of the specified ThreeWindingsTransformer should be considered as a LimitViolation or not. In case it should, feeds the consumer with it. In this DC power flow mode, the current is computed using the DC power factor if necessary.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      side - The side of the three windings transformer on which the current must be checked.
      dcPowerFactor - The DC power factor used to convert the active power into current.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      void checkVoltage(Bus bus, double voltageValue, Consumer<LimitViolation> consumer)
      Checks whether the specified voltage value on the specified Bus should be considered as a LimitViolation or not. In case it should, returns the corresponding limit violation.
      Parameters:
      bus - The bus on which the voltage must be checked.
      voltageValue - The voltage value to be checked, in V.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      void checkVoltage(Bus bus, Consumer<LimitViolation> consumer)
      Checks whether the voltage value on the specified Bus should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      bus - The bus on which the voltage must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltage

      void checkVoltage(VoltageLevel voltageLevel, Consumer<LimitViolation> consumer)
      Checks whether the voltage value on the specified VoltageLevel should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      voltageLevel - The voltage level on which the voltage must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltageAngle

      void checkVoltageAngle(VoltageAngleLimit voltageAngleLimit, double voltageAngleDifference, Consumer<LimitViolation> consumer)
      Checks whether the specified voltage value on the specified Bus should be considered as a LimitViolation or not. In case it should, returns the corresponding limit violation.
      Parameters:
      voltageAngleLimit - The voltageAngleLimit defining TerminalRefs on which the angle difference must be checked.
      voltageAngleDifference - The voltage angle difference to be checked, in degrees.
      consumer - Will be fed with possibly created limit violations.
    • checkVoltageAngle

      void checkVoltageAngle(VoltageAngleLimit voltageAngleLimit, Consumer<LimitViolation> consumer)
      Checks whether the voltage angle difference between the TerminalRefs defined on the specified VoltageAngleLimit should be considered as a LimitViolation or not. In case it should, feeds the consumer with it.
      Parameters:
      voltageAngleLimit - The voltageAngleLimit defining the TerminalRefs on which the angle difference must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(Branch branch, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified Branch should be considered as LimitViolation(s). In case it should, feeds the consumer with it.
      Parameters:
      branch - The branch on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrent

      void checkCurrent(ThreeWindingsTransformer transformer, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified ThreeWindingsTransformer should be considered as LimitViolation(s). In case it should, feeds the consumer with it.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrentDc

      void checkCurrentDc(Branch branch, double dcPowerFactor, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified Branch should be considered as LimitViolation(s). In case it should, feeds the consumer with it. In this DC power flow mode, the current is computed using the DC power factor if necessary.
      Parameters:
      branch - The branch on which the current must be checked.
      dcPowerFactor - The DC power factor used to convert the active power into current.
      consumer - Will be fed with possibly created limit violations.
    • checkCurrentDc

      void checkCurrentDc(ThreeWindingsTransformer transformer, double dcPowerFactor, Consumer<LimitViolation> consumer)
      Checks whether the current value on both sides of the specified ThreeWindingsTransformer should be considered as LimitViolation(s). In case it should, feeds the consumer with it. In this DC power flow mode, the current is computed using the DC power factor if necessary.
      Parameters:
      transformer - The three windings transformer on which the current must be checked.
      dcPowerFactor - The DC power factor used to convert the active power into current.
      consumer - Will be fed with possibly created limit violations.
    • checkAll

      void checkAll(Network network, Consumer<LimitViolation> consumer)
      Checks whether the current and voltage values on all equipments of the specified Network should be considered as LimitViolations. In case it should, feeds the consumer with it.
      Parameters:
      network - The network on which physical values must be checked.
      consumer - Will be fed with possibly created limit violations.
    • checkAllDc

      void checkAllDc(Network network, double dcPowerFactor, Consumer<LimitViolation> consumer)
      Checks whether the current and voltage values on all equipments of the specified Network should be considered as LimitViolations. In case it should, feeds the consumer with it. In this DC power flow mode, the current is computed using the DC power factor if necessary.
      Parameters:
      network - The network on which physical values must be checked.
      dcPowerFactor - The DC power factor used to convert the active power into current.
      consumer - Will be fed with possibly created limit violations.
    • toLimitViolationType

      default LimitViolationType toLimitViolationType(LimitType type)
      Helper function to convert a limit type to a limit violation type
      Parameters:
      type - The limit type to convert.
      Returns:
      The matching LimitViolationTYpe
    • checkPermanentLimit

      default void checkPermanentLimit(Branch<?> branch, TwoSides side, double limitReductionValue, double value, Consumer<LimitViolation> consumer, LimitType type)
      Generic implementation for permanent limit checks
    • checkPermanentLimit

      default void checkPermanentLimit(ThreeWindingsTransformer transformer, ThreeSides side, double limitReductionValue, double value, Consumer<LimitViolation> consumer, LimitType type)
      Generic implementation for permanent limit checks
    • checkTemporary

      default void checkTemporary(Branch<?> branch, TwoSides side, double limitReductionValue, double value, Consumer<LimitViolation> consumer, LimitType type)
      Generic implementation for temporary limit checks
    • checkTemporary

      default void checkTemporary(ThreeWindingsTransformer transformer, ThreeSides side, double limitReductionValue, double value, Consumer<LimitViolation> consumer, LimitType type)
      Generic implementation for temporary limit checks