private static void writeGenerator(EsgGenerator generator, RecordWriter recordWriter) throws IOException { recordWriter.addValue("G", 1); recordWriter.addValue(generator.getZnamge().toString(), 4, 11); recordWriter.addValue(toChar(generator.getXgenest()), 13); recordWriter.addValue(generator.getZnodge().toString(), 15, 22); recordWriter.addValue(generator.getPgmin(), 24, 31); recordWriter.addValue(generator.getPgen(), 33, 40); recordWriter.addValue(generator.getPgmax(), 42, 49); recordWriter.addValue(generator.getQgmin(), 51, 58); recordWriter.addValue(generator.getQgen(), 60, 67); recordWriter.addValue(generator.getQgmax(), 69, 76); recordWriter.addValue(toChar(generator.getXregge()), 78); recordWriter.addValue(generator.getVregge(), 80, 87); recordWriter.addValue(generator.getZregnoge() != null ? generator.getZregnoge().toString() : "", 89, 96); recordWriter.addValue(generator.getQgensh(), 98, 105); recordWriter.addValue(0.f, 107, 114); //...Free numeric attribute 1 recordWriter.addValue(0.f, 116, 123); //...Free numeric attribute 2 recordWriter.newLine(); }
if (getNode(generator.getZnodge().toString()) == null) { throw new RuntimeException("Generator '" + generator.getZnamge() + "' reference an unknown connection node '" + generator.getZnodge() + "'"); if (getNode(generator.getZregnoge().toString()) == null) { throw new RuntimeException("Generator '" + generator.getZnamge() + "' reference an unknown regulating node '" + generator.getZregnoge() + "'"); if (g.getXregge() == EsgRegulatingMode.REGULATING && Math.abs(g.getQgmax() - g.getQgmin()) < MIN_REACTIVE_RANGE) { minReactiveRangePb.add(g.getZnamge().toString()); g.setXregge(EsgRegulatingMode.NOT_REGULATING); if (g.getXregge() == EsgRegulatingMode.REGULATING) { generatorsConnectedToSameNode.put(g.getZnodge().toString(), g); if (targetVoltageSet.size() > 1) { Collection<EsgGenerator> connectedGenerators = generators.stream() .filter(g -> g.getXgenest() == EsgConnectionStatus.CONNECTED) .collect(Collectors.toList()); targetVoltageSet = connectedGenerators.stream() if (targetVoltageSet.size() == 1) { Collection<EsgGenerator> diconnectedGenerators = generators.stream() .filter(g -> g.getXgenest() == EsgConnectionStatus.NOT_CONNECTED) .collect(Collectors.toList()); LOGGER.warn("Fix target voltage of disconnected generators {} to be consistent with target voltage ({} Kv) of other generators connected to the same node ({})", double vregge = targetVoltageSet.iterator().next(); for (EsgGenerator g : diconnectedGenerators) {
esgNetwork.addGenerator(new EsgGenerator(new Esg8charName(dictionary.getEsgId(g.getId())), new Esg8charName(dictionary.getEsgId(bus.getId())), pgmin, pgen, pgmax, qgmin, qgen, qgmax, mode, vregge,