本文整理了Java中com.powsybl.iidm.network.Generator.getTargetP()
方法的一些代码示例,展示了Generator.getTargetP()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Generator.getTargetP()
方法的具体详情如下:
包路径:com.powsybl.iidm.network.Generator
类名称:Generator
方法名:getTargetP
[英]Get the active power target in MW.
Depends on the working variant.
[中]以MW为单位获取有功功率目标。
取决于工作变量。
代码示例来源:origin: itesla/ipst
@Override
public double getP() {
return generator.getTargetP();
}
代码示例来源:origin: itesla/ipst
public static double getNominalPower(Generator generator) {
Objects.requireNonNull(generator, "generator is null");
double nominalPower = Double.NaN;
double pMax = generator.getMaxP();
double qMax = generator.getReactiveLimits().getMaxQ(generator.getTargetP());
nominalPower = Math.sqrt(Math.pow(pMax, 2) + Math.pow(qMax, 2));
return nominalPower;
}
代码示例来源:origin: com.powsybl/powsybl-action-util
@Override
public double scale(Network n, double asked) {
Objects.requireNonNull(n);
Generator g = n.getGenerator(id);
double done = 0;
if (g != null) {
Terminal t = g.getTerminal();
if (!t.isConnected()) {
connectGenerator(g);
}
done = Math.min(asked, g.getMaxP() - g.getTargetP());
double oldTargetP = g.getTargetP();
g.setTargetP(g.getTargetP() + done);
LOGGER.info("Change active power setpoint of {} from {} to {} (pmax={})",
g.getId(), oldTargetP, g.getTargetP(), g.getMaxP());
} else {
LOGGER.warn("Generator {} not found", id);
}
return done;
}
代码示例来源:origin: itesla/ipst
@Override
public void visitGenerator(Generator generator) {
if (generator.isVoltageRegulatorOn()) {
decoratedBus.regulatingGenerator++;
decoratedBus.maxP += generator.getMaxP();
decoratedBus.minP += generator.getMinP();
decoratedBus.targetP += generator.getTargetP();
}
}
});
代码示例来源:origin: itesla/ipst
public static double getRedispatchPMin(Generator generator, float redispatchLimitsPercentage) {
double redispatchPMin = generator.getMinP();
if (generator.getTargetP() > generator.getMaxP()) {
redispatchPMin = generator.getMaxP() - redispatchLimitsPercentage * 0.01 * generator.getMaxP();
} else {
redispatchPMin = generator.getTargetP() - redispatchLimitsPercentage * 0.01 * generator.getMaxP();
}
return generator.getMinP() < redispatchPMin ? redispatchPMin : generator.getMinP();
}
代码示例来源:origin: itesla/ipst
public static double getRedispatchPMax(Generator generator, float redispatchLimitsPercentage) {
double redispatchPMax = generator.getMaxP();
if (generator.getTargetP() < generator.getMinP()) {
redispatchPMax = generator.getMinP() + redispatchLimitsPercentage * 0.01 * generator.getMaxP();
} else {
redispatchPMax = generator.getTargetP() + redispatchLimitsPercentage * 0.01 * generator.getMaxP();
}
return generator.getMaxP() > redispatchPMax ? redispatchPMax : generator.getMaxP();
}
代码示例来源:origin: com.powsybl/powsybl-iidm-api
private static void addGenerators(Network network, ConnectedPower balanceMainCC, ConnectedPower balanceOtherCC) {
for (Generator g : network.getGenerators()) {
Terminal.BusBreakerView view = g.getTerminal().getBusBreakerView();
if (view.getBus() != null) {
if (view.getBus().isInMainConnectedComponent()) {
balanceMainCC.connectedMaxGeneration += g.getMaxP();
balanceMainCC.connectedGeneration += g.getTargetP();
balanceMainCC.connectedGenerators.add(g.getId());
} else {
balanceOtherCC.connectedMaxGeneration += g.getMaxP();
balanceOtherCC.connectedGeneration += g.getTargetP();
balanceOtherCC.connectedGenerators.add(g.getId());
}
} else {
if (view.getConnectableBus().isInMainConnectedComponent()) {
balanceMainCC.disconnectedMaxGeneration += g.getMaxP();
balanceMainCC.disconnectedGeneration += g.getTargetP();
balanceMainCC.disconnectedGenerators.add(g.getId());
} else {
balanceOtherCC.disconnectedMaxGeneration += g.getMaxP();
balanceOtherCC.disconnectedGeneration += g.getTargetP();
balanceOtherCC.disconnectedGenerators.add(g.getId());
}
}
}
}
代码示例来源:origin: itesla/ipst
LOGGER.info("#------------ ---------------- -------------- ---------------- --------------");
for (Generator gen : network.getGenerators()) {
LOGGER.info(String.format("%s %15.8f %15.8f %15.8f %15.8f", gen.getId(), gen.getTerminal().getQ(), gen.getTargetQ(), gen.getTerminal().getP(), gen.getTargetP()));
代码示例来源:origin: itesla/ipst
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
}
代码示例来源:origin: com.powsybl/powsybl-iidm-api
public static void printGeneratorsSetpointDiff(Network network, Logger logger) {
for (Generator g : network.getGenerators()) {
double dp = Math.abs(g.getTerminal().getP() + g.getTargetP());
double dq = Math.abs(g.getTerminal().getQ() + g.getTargetQ());
double dv = Math.abs(g.getTerminal().getBusBreakerView().getConnectableBus().getV() - g.getTargetV());
if (dp > 1 || dq > 5 || dv > 0.1) {
logger.warn("Generator {}: ({}, {}, {}) ({}, {}, {}) -> ({}, {}, {})", g.getId(),
dp, dq, dv,
-g.getTargetP(), -g.getTargetQ(), g.getTargetV(),
g.getTerminal().getP(), g.getTerminal().getQ(), g.getTerminal().getBusBreakerView().getConnectableBus().getV());
}
}
}
代码示例来源:origin: itesla/ipst
if (!onlyVoltage) {
if (!Double.isNaN(t.getP())) {
double oldTargetP = g.getTargetP();
double newTargetP = -t.getP();
if (oldTargetP != newTargetP) {
代码示例来源:origin: itesla/ipst
private static void updateSlackBusData(Bus bus, Integer busIndex, SlackBusData slackBusData) {
if (bus.getGenerators() == null) {
return;
}
//...slackbus has at least one generator connected
for (Generator generator : bus.getGenerators()) {
//...which has a generator with voltage regulator on
if (!generator.isVoltageRegulatorOn()) {
continue;
}
//...assure the generator is the one connected to the bus (and not on the aggregated buses)
if (!generator.getTerminal().getBusBreakerView().getBus().getId().equals(bus.getId())) {
return;
}
//...candidate slackbus
if (slackBusData.getSlackBusIndex() == -1) {
slackBusData.setSlackBusIndex(busIndex);
slackBusData.setSlackBusGenerator(generator);
return;
}
//...choice the generator with the largest TargetP
if (generator.getTargetP() > slackBusData.getSlackBusGenerator().getTargetP()) {
slackBusData.setSlackBusIndex(busIndex);
slackBusData.setSlackBusGenerator(generator);
}
}
}
代码示例来源:origin: itesla/ipst
protected void updateSlackBusData(Bus bus, Integer busIndex, SlackBusData slackBusData) {
if (bus.getGenerators() == null) {
return;
}
//...slackbus has at least one generator connected
for (Generator generator : bus.getGenerators()) {
//...which has a generator with voltage regulator on
if (!generator.isVoltageRegulatorOn()) {
continue;
}
//...assure the generator is the one connected to the bus (and not on the aggregated buses)
if (!generator.getTerminal().getBusBreakerView().getBus().getId().equals(bus.getId())) {
return;
}
//...candidate slackbus
if (slackBusData.getSlackBusIndex() == -1) {
slackBusData.setSlackBusIndex(busIndex);
slackBusData.setSlackBusGenerator(generator);
return;
}
//...choice the generator with the largest TargetP
if (generator.getTargetP() > slackBusData.getSlackBusGenerator().getTargetP()) {
slackBusData.setSlackBusIndex(busIndex);
slackBusData.setSlackBusGenerator(generator);
}
}
}
代码示例来源:origin: itesla/ipst
double oldP = g.getTargetP();
LOGGER.trace(" gen {} - P:{} -> P:{}", g.getId(), oldP, gs.p);
g.setTargetP(-gs.p);
g.getTerminal().setP(gs.p);
} else {
double oldP = g.getTargetP();
double oldQ = g.getTargetQ();
LOGGER.trace(" gen {} - P:{}, Q:{} -> P:{}, Q:{} ", g.getId(), oldP, oldQ, gs.p, gs.q);
代码示例来源:origin: com.powsybl/powsybl-iidm-xml-converter
@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());
}
代码示例来源:origin: itesla/ipst
generatorData.setMinActivePower(generator.getMinP());
generatorData.setMaxActivePower(generator.getMaxP());
generatorData.setMinReactivePower(generator.getReactiveLimits().getMinQ(generator.getTargetP()));
generatorData.setMaxReactivePower(generator.getReactiveLimits().getMaxQ(generator.getTargetP()));
generatorData.setNominalPower(MCSNetworkUtils.getNominalPower(generator));
generatorData.setRenewableEnergySource(MCSNetworkUtils.getRenewableEnergySource(generator));
代码示例来源:origin: itesla/ipst
double pgen = g.getTargetP();
double qgen = g.getTargetQ();
double pgmin = g.getMinP();
if (config.isSpecificCompatibility() && (g.getTargetP() < 0.0001) && (g.getMinP() > 0.0001)) {
isVoltageRegulatorOn = false;
LOGGER.warn("out of bound regulating generator {}, targetP {}, minP {} : turn off its voltage regulation", g.getId(), g.getTargetP(), g.getMinP());
代码示例来源:origin: itesla/ipst
private static void extractGeneratorsData(Network network, NetworkData networkData) {
for (Generator generator : network.getGenerators()) {
networkData.addGeneratorData(new GeneratorData(generator.getId(),
(generator.getTerminal().getBusBreakerView().getBus() != null)
? generator.getTerminal().getBusBreakerView().getBus().getId()
: generator.getTerminal().getBusBreakerView().getConnectableBus().getId(),
generator.getTerminal().getBusBreakerView().getBus() != null,
apparentPower(generator.getTerminal()),
generator.getTerminal().getP(),
generator.getTerminal().getQ(),
generator.getRatedS(),
generator.getReactiveLimits().getMaxQ(generator.getTargetP()),
generator.getReactiveLimits().getMinQ(generator.getTargetP()))
// generator.getReactiveLimits().getMaxQ(generator.getTerminal().getP()),
// generator.getReactiveLimits().getMinQ(generator.getTerminal().getP()))
);
}
}
代码示例来源:origin: itesla/ipst
for (Generator g : network.getGenerators()) {
if (g.getEnergySource().isIntermittent()) {
generationP += g.getTargetP();
if (!g.isVoltageRegulatorOn()) {
generationQ += g.getTargetQ();
代码示例来源:origin: com.powsybl/powsybl-ampl-converter
.writeCell(g.isVoltageRegulatorOn())
.writeCell(g.getTargetV() / vb)
.writeCell(g.getTargetP())
.writeCell(g.getTargetQ())
.writeCell(faultNum)
内容来源于网络,如有侵权,请联系作者删除!