private static void connectGenerator(Generator g) { Terminal t = g.getTerminal(); t.connect(); if (g.isVoltageRegulatorOn()) { Bus bus = t.getBusView().getBus(); if (bus != null) { // set voltage setpoint to the same as other generators connected to the bus double targetV = bus.getGeneratorStream().findFirst().map(Generator::getTargetV).orElse(Double.NaN); // if no other generator connected to the bus, set voltage setpoint to network voltage if (Double.isNaN(targetV) && !Double.isNaN(bus.getV())) { g.setTargetV(bus.getV()); } } } LOGGER.info("Connecting {}", g.getId()); } }
public AmplNetworkReader readGenerators() throws IOException { // Bug fix, to avoid generators out of main cc to have a different target voltage while connected to same bus (Eurostag check) // In that case it will not be part of result file, so not overwritten. So first reset all target voltages to nominal voltage for (Generator g : network.getGenerators()) { g.setTargetV(g.getTerminal().getVoltageLevel().getNominalV()); } read("_generators", 9, this::readGenerator); return this; }
double newV = b.getV(); if (oldV != newV) { g.setTargetV(newV); LOGGER.debug("LF result reintegration: targetV {} -> {}", oldV, newV);
private Void readGenerator(String[] tokens) { int num = Integer.parseInt(tokens[1]); int busNum = Integer.parseInt(tokens[2]); boolean vregul = Boolean.parseBoolean(tokens[3]); double targetV = readDouble(tokens[4]); double targetP = readDouble(tokens[5]); double targetQ = readDouble(tokens[6]); double p = readDouble(tokens[7]); double q = readDouble(tokens[8]); String id = mapper.getId(AmplSubset.GENERATOR, num); Generator g = network.getGenerator(id); if (g == null) { throw new AmplException("Invalid generator id '" + id + "'"); } g.setVoltageRegulatorOn(vregul); g.setTargetP(targetP); g.setTargetQ(targetQ); Terminal t = g.getTerminal(); t.setP(p).setQ(q); double vb = t.getVoltageLevel().getNominalV(); g.setTargetV(targetV * vb); busConnection(t, busNum); return null; }