public static Country getCountry(LimitViolation limitViolation, Network network) { VoltageLevel voltageLevel = getVoltageLevel(limitViolation, network); return voltageLevel.getSubstation().getCountry(); }
@Override protected VoltageLevelAdder createAdder(Substation s) { return s.newVoltageLevel(); }
@Override protected TwoWindingsTransformerAdder createAdder(Substation s) { return s.newTwoWindingsTransformer(); }
static Iterable<Substation> filter(Iterable<Substation> substations, final Country country, final String tso, final String... geographicalTags) { if (geographicalTags.length == 0) { return substations; } return Iterables.filter(substations, substation -> { if (country != null && country != substation.getCountry()) { return false; } if (tso != null && !tso.equals(substation.getTso())) { return false; } for (String tag : geographicalTags) { if (!substation.getGeographicalTags().contains(tag)) { return false; } } return true; }); }
/** * Keep this substation if the IDs list contains the ID of this substation or one of its voltage levels. * @param substation The substation to test * @return true if the IDs list contains the ID of this substation or one of its voltage levels, false otherwise */ @Override public boolean test(Substation substation) { Objects.requireNonNull(substation); if (ids.contains(substation.getId())) { return true; } return substation.getVoltageLevelStream() .map(VoltageLevel::getId) .anyMatch(ids::contains); }
@Override protected void writeSubElements(Substation s, Network n, NetworkXmlWriterContext context) throws XMLStreamException { for (VoltageLevel vl : s.getVoltageLevels()) { VoltageLevelXml.INSTANCE.write(vl, null, context); } Iterable<TwoWindingsTransformer> twts = s.getTwoWindingsTransformers(); for (TwoWindingsTransformer twt : twts) { if (!context.getFilter().test(twt)) { continue; } TwoWindingsTransformerXml.INSTANCE.write(twt, null, context); } Iterable<ThreeWindingsTransformer> twts2 = s.getThreeWindingsTransformers(); for (ThreeWindingsTransformer twt : twts2) { if (!context.getFilter().test(twt)) { continue; } ThreeWindingsTransformerXml.INSTANCE.write(twt, null, context); } }
.setGeographicalTags("B") .add(); VoltageLevel vlgen = p1.newVoltageLevel() .setId(VLGEN) .setNominalV(24.0) .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); VoltageLevel vlhv1 = p1.newVoltageLevel() .setId("VLHV1") .setNominalV(380.0) .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); VoltageLevel vlhv2 = p2.newVoltageLevel() .setId("VLHV2") .setNominalV(380.0) .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); VoltageLevel vlload = p2.newVoltageLevel() .setId("VLLOAD") .setNominalV(150.0) .add(); int zb380 = 380 * 380 / 100; p1.newTwoWindingsTransformer() .setId("NGEN_NHV1") .setVoltageLevel1(vlgen.getId()) .add(); int zb150 = 150 * 150 / 100;
if (config.getCountryFilter() != null && !config.getCountryFilter().contains(ss.getCountry())) { continue; for (VoltageLevel vl : ss.getVoltageLevels()) { for (TwoWindingsTransformer twt : ss.getTwoWindingsTransformers()) { if (twt.getPhaseTapChanger() != null) { valueMap.put(new HistoDbNetworkAttributeId(twt.getId(), HistoDbAttr.PTC), twt.getPhaseTapChanger().getTapPosition()); for (ThreeWindingsTransformer twt : ss.getThreeWindingsTransformers()) { valueMap.put(new HistoDbNetworkAttributeId(twt.getId(), twt.getLeg2().getTerminal().getVoltageLevel().getId(), HistoDbAttr.RTC), twt.getLeg2().getRatioTapChanger().getTapPosition()); valueMap.put(new HistoDbNetworkAttributeId(twt.getId(), twt.getLeg3().getTerminal().getVoltageLevel().getId(), HistoDbAttr.RTC), twt.getLeg3().getRatioTapChanger().getTapPosition());
VoltageLevel hvVl = hvT.getVoltageLevel(); Substation s = hvVl.getSubstation(); Network n = s.getNetwork(); double hvNomV = hvVl.getNominalV(); Bus hvGenBus = hvT.getBusView().getBus(); VoltageLevel lvVl = s.newVoltageLevel() .setId(hvGen.getId() + "_VL") .setNominalV(vbaseLvBdd) .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); LOGGER.trace("Creating voltage level '{}' in substation '{}'", lvVl.getId(), s.getId());
dl.getTerminal().getVoltageLevel().getSubstation().getGeographicalTags())) { continue; .contains(dl.getTerminal().getVoltageLevel().getSubstation().getCountry().toString())) { continue; g.getTerminal().getVoltageLevel().getSubstation().getGeographicalTags())) { continue; .contains(g.getTerminal().getVoltageLevel().getSubstation().getCountry().toString())) { continue; l.getTerminal().getVoltageLevel().getSubstation().getGeographicalTags())) { continue; .contains(l.getTerminal().getVoltageLevel().getSubstation().getCountry().toString())) { continue; sc.getTerminal().getVoltageLevel().getSubstation().getGeographicalTags())) { continue; .contains(sc.getTerminal().getVoltageLevel().getSubstation().getCountry().toString())) { continue; wt2.getTerminal1().getVoltageLevel().getSubstation().getGeographicalTags()) && Collections.disjoint(regions, wt2.getTerminal2().getVoltageLevel().getSubstation().getGeographicalTags())) { continue;
public static int getForecastDistance(VoltageLevel vl) { String forecastDistanceStr = vl.getProperties().getProperty(FORECAST_DISTANCE); if (forecastDistanceStr != null) { return Integer.parseInt(forecastDistanceStr); } else { return vl.getSubstation().getNetwork().getForecastDistance(); } }
.setCountry(Country.FR) .add(); VoltageLevel vl1 = substation.newVoltageLevel() .setId("VL_132") .setNominalV(132.0) .add(); VoltageLevel vl2 = substation.newVoltageLevel() .setId("VL_33") .setNominalV(33.0) .setQ(7.5); VoltageLevel vl3 = substation.newVoltageLevel() .setId("VL_11") .setNominalV(11.0) .setQ(-10.6); ThreeWindingsTransformer twt = substation.newThreeWindingsTransformer() .setId("3WT") .newLeg1()
private static PowsyblException createIsolationException(Substation substation) { return new PowsyblException("The substation " + substation.getId() + " is still connected to another substation"); } }
@Override protected ThreeWindingsTransformerAdder createAdder(Substation s) { return s.newThreeWindingsTransformer(); }
case GEN: logger.debug(" equipment == generator"); if (network.getGenerator(equipment).getTerminal().getVoltageLevel().getSubstation().getTso() != null) { tsos.add(network.getGenerator(equipment).getTerminal().getVoltageLevel().getSubstation().getTso()); if (network.getLoad(equipment).getTerminal().getVoltageLevel().getSubstation().getTso() != null) { tsos.add(network.getLoad(equipment).getTerminal().getVoltageLevel().getSubstation().getTso()); if (network.getTwoWindingsTransformer(equipment).getSubstation().getTso() != null) { tsos.add(network.getTwoWindingsTransformer(equipment).getSubstation().getTso()); if (network.getThreeWindingsTransformer(equipment).getSubstation().getTso() != null) { tsos.add(network.getThreeWindingsTransformer(equipment).getSubstation().getTso()); if (v1.getSubstation().getTso() != null) { tsos.add(v1.getSubstation().getTso()); if (v2.getSubstation().getTso() != null) { tsos.add(v2.getSubstation().getTso()); if (network.getSubstation(equipment).getTso() != null) { tsos.add(network.getSubstation(equipment).getTso()); if (network.getVoltageLevel(equipment).getSubstation().getTso() != null) { tsos.add(network.getVoltageLevel(equipment).getSubstation().getTso());
/** * Throw a {@link com.powsybl.commons.PowsyblException} if this substation contains at least one {@link Branch} or * one {@link ThreeWindingsTransformer} or one {@link HvdcConverterStation} linked to a voltage level outside this * substation. */ static void checkRemovability(Substation substation) { for (VoltageLevel vl : substation.getVoltageLevels()) { for (Connectable connectable : vl.getConnectables()) { if (connectable instanceof Branch) { checkRemovability(substation, (Branch) connectable); } else if (connectable instanceof ThreeWindingsTransformer) { checkRemovability(substation, (ThreeWindingsTransformer) connectable); } else if (connectable instanceof HvdcConverterStation) { checkRemovability(substation, (HvdcConverterStation) connectable); } } } }
.setCountry(Country.FR) .add(); VoltageLevel vl1 = s1.newVoltageLevel() .setId("VL1") .setNominalV(380) .setCountry(Country.FR) .add(); VoltageLevel vl2 = s2.newVoltageLevel() .setId("VL2") .setNominalV(380) l1.getTerminal1().setP(50.084026).setQ(29.201416); l1.getTerminal2().setP(-50.0).setQ(-25.0); VoltageLevel vl3 = s1.newVoltageLevel() .setId("VL3") .setNominalV(380) .add(); b3.setV(392.6443).setAngle(-1.8060945); TwoWindingsTransformer ps1 = s1.newTwoWindingsTransformer() .setId("PS1") .setVoltageLevel1("VL1")
@Override protected void writeRootElementAttributes(Substation s, Network n, NetworkXmlWriterContext context) throws XMLStreamException { context.getWriter().writeAttribute("country", context.getAnonymizer().anonymizeCountry(s.getCountry()).toString()); if (s.getTso() != null) { context.getWriter().writeAttribute("tso", context.getAnonymizer().anonymizeString(s.getTso())); } if (!s.getGeographicalTags().isEmpty()) { context.getWriter().writeAttribute("geographicalTags", s.getGeographicalTags().stream() .map(tag -> context.getAnonymizer().anonymizeString(tag)) .collect(Collectors.joining(","))); } }
public static int getDateDistanceToReference(VoltageLevel vl) { DateTime caseDate; String caseDateStr = vl.getProperties().getProperty(CASE_DATE); if (caseDateStr == null) { caseDate = vl.getSubstation().getNetwork().getCaseDate(); } else { caseDate = DateTime.parse(caseDateStr); } return (int) new Duration(caseDate, vl.getSubstation().getNetwork().getCaseDate()).getStandardMinutes(); }
/** * Keep this voltage level if the IDs list contains the ID of this voltage level. * @param voltageLevel The voltage level to test * @return true if the IDs list contains the ID of this voltage level, false otherwise */ @Override public boolean test(VoltageLevel voltageLevel) { Objects.requireNonNull(voltageLevel); return ids.contains(voltageLevel.getId()) || ids.contains(voltageLevel.getSubstation().getId()); } }