@Override public void checkVoltage(Bus bus, double value, Consumer<LimitViolation> consumer) { VoltageLevel vl = bus.getVoltageLevel(); if (!Double.isNaN(vl.getLowVoltageLimit()) && value <= vl.getLowVoltageLimit()) { consumer.accept(new LimitViolation(vl.getId(), vl.getName(), LimitViolationType.LOW_VOLTAGE, vl.getLowVoltageLimit(), limitReduction, value)); } if (!Double.isNaN(vl.getHighVoltageLimit()) && value >= vl.getHighVoltageLimit()) { consumer.accept(new LimitViolation(vl.getId(), vl.getName(), LimitViolationType.HIGH_VOLTAGE, vl.getHighVoltageLimit(), limitReduction, value)); } }
Range<Double> networkVoltageRangePu = Double.isNaN(vl.getLowVoltageLimit()) || Double.isNaN(vl.getHighVoltageLimit()) ? Range.closed(Double.NaN, Double.NaN) : Range.closed(vl.getLowVoltageLimit() / vl.getNominalV(), vl.getHighVoltageLimit() / vl.getNominalV());
if (!Double.isNaN(vl.getLowVoltageLimit()) && !Double.isNaN(vl.getHighVoltageLimit())) { writer.write(dictionary.getEsgId(b.getId())); writer.write(";"); writer.write(Double.toString(vl.getLowVoltageLimit())); writer.write(";"); writer.write(Double.toString(vl.getHighVoltageLimit())); writer.write(";"); writer.write(Double.toString(vl.getNominalV()));
private void setNewHighVoltageLimit(String stateId, LimitViolation violation, float margin, boolean applyToBaseCase) { VoltageLevel voltageLevel = network.getVoltageLevel(violation.getSubjectId()); if (voltageLevel != null) { if (violation.getValue() > voltageLevel.getHighVoltageLimit()) { // it could already have been fixed double newLimit = getNewUpperLimit(violation, margin); LOGGER.debug("State {}: changing high voltage limit of voltage level {}: {} -> {}", stateId, voltageLevel.getId(), violation.getLimit(), newLimit); voltageLevel.setHighVoltageLimit(newLimit); if (applyToBaseCase && !StateManagerConstants.INITIAL_STATE_ID.equals(stateId)) { // change the limit also to basecase network.getStateManager().setWorkingState(StateManagerConstants.INITIAL_STATE_ID); voltageLevel = network.getVoltageLevel(violation.getSubjectId()); LOGGER.debug("State {}: changing high voltage limit of voltage level {}: {} -> {}", StateManagerConstants.INITIAL_STATE_ID, voltageLevel.getId(), violation.getLimit(), newLimit); voltageLevel.setHighVoltageLimit(newLimit); network.getStateManager().setWorkingState(stateId); } } } else { LOGGER.warn("State {}: cannot change high voltage limit of voltage level {}: no voltage level with this id in the network", stateId, violation.getSubjectId()); } }
@Override protected void writeRootElementAttributes(VoltageLevel vl, Substation s, NetworkXmlWriterContext context) throws XMLStreamException { XmlUtil.writeDouble("nominalV", vl.getNominalV(), context.getWriter()); XmlUtil.writeDouble("lowVoltageLimit", vl.getLowVoltageLimit(), context.getWriter()); XmlUtil.writeDouble("highVoltageLimit", vl.getHighVoltageLimit(), context.getWriter()); TopologyLevel topologyLevel = TopologyLevel.min(vl.getTopologyKind(), context.getOptions().getTopologyLevel()); context.getWriter().writeAttribute("topologyKind", topologyLevel.getTopologyKind().name()); }
busData.setAngle(bus.getAngle()); busData.setMinVoltage(bus.getVoltageLevel().getLowVoltageLimit()); busData.setMaxVoltage(bus.getVoltageLevel().getHighVoltageLimit()); busData.setActivePower(bus.getP()); busData.setReactivePower(bus.getQ());
int typeBus = 0; // Default -> PQ bus double minimumVoltage = b.getVoltageLevel().getLowVoltageLimit() / baseKV; double maximumVoltage = b.getVoltageLevel().getHighVoltageLimit() / baseKV; if (Double.isNaN(minimumVoltage)) { minimumVoltage = defaultMinimumVoltage; int typeBus = 0; // Default -> PQ bus double minimumVoltage = dl.getTerminal().getBusView().getBus().getVoltageLevel().getLowVoltageLimit() / baseKV; double maximumVoltage = dl.getTerminal().getBusView().getBus().getVoltageLevel().getHighVoltageLimit() / baseKV; if (Double.isNaN(minimumVoltage)) { minimumVoltage = defaultMinimumVoltage; int typeBus = 0; // Default -> PQ bus double minimumVoltage = t.getLeg1().getTerminal().getBusView().getBus().getVoltageLevel().getLowVoltageLimit() / baseKV; double maximumVoltage = t.getLeg1().getTerminal().getBusView().getBus().getVoltageLevel().getHighVoltageLimit() / baseKV; if (Double.isNaN(minimumVoltage)) { minimumVoltage = defaultMinimumVoltage;
double nomV = vl.getNominalV(); double minV = vl.getLowVoltageLimit() / nomV; double maxV = vl.getHighVoltageLimit() / nomV; formatter.writeCell(variantIndex) .writeCell(num) double nomV = vl.getNominalV(); double minV = vl.getLowVoltageLimit() / nomV; double maxV = vl.getHighVoltageLimit() / nomV; formatter.writeCell(variantIndex) .writeCell(num)