public static boolean isDispatchable(Generator generator) { Objects.requireNonNull(generator, "generator is null"); boolean dispatchable = false; switch (generator.getEnergySource()) { case HYDRO: case THERMAL: dispatchable = true; break; default: dispatchable = false; break; } return dispatchable; } }
public static int getRenewableEnergySource(Generator generator) { Objects.requireNonNull(generator, "generator is null"); int renewableEnergySource = GeneratorData.GENERATOR_TYPE_CONVENTIONAL; switch (generator.getEnergySource()) { case WIND: renewableEnergySource = GeneratorData.GENERATOR_TYPE_WIND; break; case SOLAR: renewableEnergySource = GeneratorData.GENERATOR_TYPE_SOLAR; break; default: renewableEnergySource = GeneratorData.GENERATOR_TYPE_CONVENTIONAL; break; } return renewableEnergySource; }
public static int getFuelType(Generator generator) { Objects.requireNonNull(generator, "generator is null"); int fuelType = GeneratorData.FUEL_TYPE_GAS; switch (generator.getEnergySource()) { case WIND: case SOLAR: fuelType = GeneratorData.FUEL_TYPE_RES; break; case HYDRO: fuelType = GeneratorData.FUEL_TYPE_HYDRO; break; case THERMAL: fuelType = GeneratorData.FUEL_TYPE_GAS; break; case NUCLEAR: fuelType = GeneratorData.FUEL_TYPE_NUCLEAR; break; default: fuelType = GeneratorData.FUEL_TYPE_GAS; break; } return fuelType; }
public static ArrayList<String> getRenewableGeneratorsIds(Network network) { Objects.requireNonNull(network, "network is null"); ArrayList<String> generatorsIds = new ArrayList<String>(); for (Generator generator : network.getGenerators()) { if (generator.getEnergySource().isIntermittent()) { generatorsIds.add(generator.getId()); } } Collections.sort(generatorsIds); return generatorsIds; }
public DataMiningFacadeParams(Network network, boolean generationSampled, boolean boundariesSampled, Interval interval) { gensIds = new ArrayList<>(); if (generationSampled) { for (Generator gen : network.getGenerators()) { if (gen.getEnergySource().isIntermittent()) { gensIds.add(gen.getId()); } } } // it seems that elements order in iidm model is not the same // after two subsequent network initialization from file Collections.sort(gensIds); loadsIds = new ArrayList<>(); for (Load load : network.getLoads()) { loadsIds.add(load.getId()); } Collections.sort(loadsIds); danglingLinesIds = new ArrayList<>(); if (boundariesSampled) { for (DanglingLine dl : network.getDanglingLines()) { danglingLinesIds.add(dl.getId()); } } Collections.sort(danglingLinesIds); countries = EnumSet.copyOf(network.getCountries()); this.interval = interval; }
public static boolean isRedispatchable(Generator generator, float redispatchLimitsPercentage) { return (generator.getTerminal().getBusBreakerView().getBus() != null) // is connected && (generator.getEnergySource() == EnergySource.HYDRO || generator.getEnergySource() == EnergySource.THERMAL) // is hydro or thermal && (generator.getTerminal().getP() < 0) // inject power && (generator.isVoltageRegulatorOn()) // has voltage regulator on && (generator.getTargetP() <= getRedispatchPMax(generator, redispatchLimitsPercentage) && generator.getTargetP() >= getRedispatchPMin(generator, redispatchLimitsPercentage)); // target P is within redispatch limits //&& (generator.getTargetP() <= generator.getMaxP() && generator.getTargetP() >= generator.getMinP()) // target P is within limits }
if (generator != null) { String stochasticVariablesType = null; switch (generator.getEnergySource()) { case WIND: stochasticVariablesType = StochasticVariable.TYPE_WIND_GENERATOR;
energySources.add(g.getEnergySource());
ModelTemplate model = null; if (eq != null) { if (this.generator.getEnergySource().name().equals("WIND")) { LOGGER.info("Wind generator!");
@Override protected void writeRootElementAttributes(Generator g, VoltageLevel vl, NetworkXmlWriterContext context) throws XMLStreamException { context.getWriter().writeAttribute("energySource", g.getEnergySource().name()); XmlUtil.writeDouble("minP", g.getMinP(), context.getWriter()); XmlUtil.writeDouble("maxP", g.getMaxP(), context.getWriter()); XmlUtil.writeDouble("ratedS", g.getRatedS(), context.getWriter()); context.getWriter().writeAttribute("voltageRegulatorOn", Boolean.toString(g.isVoltageRegulatorOn())); XmlUtil.writeDouble("targetP", g.getTargetP(), context.getWriter()); XmlUtil.writeDouble("targetV", g.getTargetV(), context.getWriter()); XmlUtil.writeDouble("targetQ", g.getTargetQ(), context.getWriter()); writeNodeOrBus(null, g.getTerminal(), context); writePQ(null, g.getTerminal(), context.getWriter()); }
continue; if (powerTypes != null && !powerTypes.contains(g.getEnergySource().name())) { continue;
if (onlyIntermittentGeneration && !g.getEnergySource().isIntermittent()) { continue;
EnergySource srcGenEnergySource = srcGen.getEnergySource(); boolean secGenVoltageRegulatorOn = srcGen.isVoltageRegulatorOn();
public static void prepareBaseCase(Network network, OfflineWorkflowCreationParameters creationParameters, HistoDbClient histoDbClient) throws IOException, InterruptedException { clearSv(network); // connect loads and intermittent generation and boundary lines (so everything that can be sampled) for (Load l : network.getLoads()) { l.getTerminal().connect(); } if (creationParameters.isGenerationSampled()) { for (Generator g : network.getGenerators()) { if (g.getEnergySource().isIntermittent()) { g.getTerminal().connect(); } } } if (creationParameters.isBoundariesSampled()) { for (DanglingLine dl : network.getDanglingLines()) { dl.getTerminal().connect(); } } // TODO also override generator regulating status, phase shitfer regulating status and transformer regulating status? // resize voltage limits with historical data HistoDbUtil.fixVoltageLimits(network, histoDbClient, creationParameters.getHistoInterval()); // temporary workaround for Elia data, missing pmin, pmax HistoDbUtil.fixGeneratorActiveLimits(network, histoDbClient, creationParameters.getHistoInterval()); }
if (g.getEnergySource().isIntermittent()) { generationP += g.getTargetP(); if (!g.isVoltageRegulatorOn()) {