private static int correntStepPosition(TwoWindingsTransformer tfo) { if (tfo.getPhaseTapChanger() != null) { return tfo.getPhaseTapChanger().getTapPosition(); } if (tfo.getRatioTapChanger() != null) { return tfo.getRatioTapChanger().getTapPosition(); } return 0; }
protected static void writePhaseTapChanger(String name, PhaseTapChanger ptc, NetworkXmlWriterContext context) throws XMLStreamException { context.getWriter().writeStartElement(IIDM_URI, name); writeTapChanger(ptc, context.getWriter()); context.getWriter().writeAttribute("regulationMode", ptc.getRegulationMode().name()); if (ptc.getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP || !Double.isNaN(ptc.getRegulationValue())) { XmlUtil.writeDouble("regulationValue", ptc.getRegulationValue(), context.getWriter()); } if (ptc.getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP || ptc.isRegulating()) { context.getWriter().writeAttribute(ATTR_REGULATING, Boolean.toString(ptc.isRegulating())); } if (ptc.getRegulationTerminal() != null) { writeTerminalRef(ptc.getRegulationTerminal(), context, ELEM_TERMINAL_REF); } for (int p = ptc.getLowTapPosition(); p <= ptc.getHighTapPosition(); p++) { PhaseTapChangerStep ptcs = ptc.getStep(p); context.getWriter().writeEmptyElement(IIDM_URI, ELEM_STEP); writeTapChangerStep(ptcs, context.getWriter()); XmlUtil.writeDouble("alpha", ptcs.getAlpha(), context.getWriter()); } context.getWriter().writeEndElement(); }
private Void readPhaseTapChanger(String[] tokens) { int num = Integer.parseInt(tokens[1]); int tap = Integer.parseInt(tokens[2]); String id = mapper.getId(AmplSubset.PHASE_TAP_CHANGER, num); TwoWindingsTransformer twt = network.getTwoWindingsTransformer(id); if (twt == null) { throw new AmplException("Invalid two windings transformer id '" + id + "'"); } PhaseTapChanger ptc = twt.getPhaseTapChanger(); ptc.setTapPosition(ptc.getLowTapPosition() + tap - 1); return null; }
@Override public void modify(Network network, ComputationManager computationManager) { TwoWindingsTransformer transformer = network.getTwoWindingsTransformer(transformerId); if (transformer == null) { throw new PowsyblException("Two windings transformer '" + transformerId + "' not found"); } PhaseTapChanger tapChanger = transformer.getPhaseTapChanger(); if (tapChanger == null) { throw new PowsyblException("Transformer " + transformerId + " is not a PST"); } tapChanger.setRegulationMode(PhaseTapChanger.RegulationMode.FIXED_TAP); tapChanger.setTapPosition(tapPosition); } }
if ((rtc != null && ptc == null) || (rtc != null && ptc != null && rtc.isRegulating() && !ptc.isRegulating())) { if (rtc != null && ptc != null) { LOGGER.warn("both ptc and rtc exist on two winding transformer {}. Only the rtc is kept because it is regulating.", twt.getId()); if (ptc.getRegulationMode() == PhaseTapChanger.RegulationMode.CURRENT_LIMITER && ptc.isRegulating()) { String regulbus = EchUtil.getBus(ptc.getRegulationTerminal(), config).getId(); if (regulbus.equals(bus1.getId())) { regulatingMode = EsgDetailedTwoWindingTransformer.RegulatingMode.ACTIVE_FLUX_SIDE_1; ktap8 = ptc.getTapPosition() - ptc.getLowTapPosition() + 1; ktpnom = ptc.getStepCount() / 2 + 1; for (int p = ptc.getLowTapPosition(); p <= ptc.getHighTapPosition(); p++) { int iplo = p - ptc.getLowTapPosition() + 1; taps.add(createTap(twt, iplo, getPtcRho1(twt, p), getPtcR(twt, p), getPtcX(twt, p), ptc.getStep(p).getAlpha(), rate, parameters));
private double getRtcRho1(TwoWindingsTransformer twt, int p) { double rho1 = twt.getRatedU2() / twt.getRatedU1(); if (twt.getRatioTapChanger() != null) { rho1 *= twt.getRatioTapChanger().getStep(p).getRho(); } if (twt.getPhaseTapChanger() != null) { rho1 *= twt.getPhaseTapChanger().getCurrentStep().getRho(); } return rho1; }
double i; double limit = getLimit(phaseShifter); int tapPos = phaseShifter.getPhaseTapChanger().getTapPosition(); int maxTap = phaseShifter.getPhaseTapChanger().getHighTapPosition(); phaseShifter.getPhaseTapChanger().setTapPosition(tapPos); optimalTap = phaseShifter.getPhaseTapChanger().getTapPosition(); } else { optimalTap = phaseShifter.getPhaseTapChanger().getTapPosition() - tapPosInc; phaseShifter.getPhaseTapChanger().setTapPosition(optimalTap); phaseShifter, optimalTap, phaseShifter.getPhaseTapChanger().getTapPosition()); phaseShifter.getPhaseTapChanger().setTapPosition(optimalTap);
private void writePhaseTapChanger(TableFormatter formatter, String id, double zb2, double reactance, PhaseTapChanger ptc) throws IOException { int num = mapper.getInt(AmplSubset.TAP_CHANGER_TABLE, id); for (int position = ptc.getLowTapPosition(); position <= ptc.getHighTapPosition(); position++) { PhaseTapChangerStep step = ptc.getStep(position); double x = reactance * (1 + step.getX() / 100) / zb2; formatter.writeCell(variantIndex) .writeCell(num) .writeCell(position - ptc.getLowTapPosition() + 1) .writeCell(step.getRho()) .writeCell(x) .writeCell(Math.toRadians(step.getAlpha())) .writeCell(faultNum) .writeCell(actionNum); } }
private static boolean isRegulating(TwoWindingsTransformer tfo) { if (tfo.getPhaseTapChanger() != null) { return tfo.getPhaseTapChanger().getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP && tfo.getPhaseTapChanger().isRegulating(); } if (tfo.getRatioTapChanger() != null) { return tfo.getRatioTapChanger().isRegulating(); } return false; }
formatter.writeCell(variantIndex) .writeCell(num) .writeCell(ptc.getTapPosition() - ptc.getLowTapPosition() + 1) .writeCell(tcsNum) .writeCell(faultNum)
@Override public void modify(Network network, ComputationManager computationManager) { Objects.requireNonNull(network); TwoWindingsTransformer phaseShifter = network.getTwoWindingsTransformer(phaseShifterId); if (phaseShifter == null) { throw new PowsyblException("Transformer '" + phaseShifterId + "' not found"); } if (phaseShifter.getPhaseTapChanger() == null) { throw new PowsyblException("Transformer '" + phaseShifterId + "' is not a phase shifter"); } phaseShifter.getPhaseTapChanger().setTapPosition(tapPosition); phaseShifter.getPhaseTapChanger().setRegulating(false); phaseShifter.getPhaseTapChanger().setRegulationMode(PhaseTapChanger.RegulationMode.FIXED_TAP); } }
private double getPtcRho1(TwoWindingsTransformer twt, int p) { double rho1 = twt.getRatedU2() / twt.getRatedU1(); if (twt.getRatioTapChanger() != null) { rho1 *= twt.getRatioTapChanger().getCurrentStep().getRho(); } if (twt.getPhaseTapChanger() != null) { rho1 *= twt.getPhaseTapChanger().getStep(p).getRho(); } return rho1; }
private double getRho1(TwoWindingsTransformer twt) { double rho = twt.getRatedU2() / twt.getRatedU1(); if (twt.getRatioTapChanger() != null) { rho *= twt.getRatioTapChanger().getCurrentStep().getRho(); } if (twt.getPhaseTapChanger() != null) { rho *= twt.getPhaseTapChanger().getCurrentStep().getRho(); } return rho; }
dumpDataTransformerAutomaton(t, eurostagSim, "A14_HT", dtaOutStream, iidm2eurostagId); } else if (t.getPhaseTapChanger() != null && t.getPhaseTapChanger().getRegulationMode() != PhaseTapChanger.RegulationMode.FIXED_TAP && t.getPhaseTapChanger().isRegulating()) { // TD
private double getPtcR(TwoWindingsTransformer twt, int p) { return getValue(twt.getR(), twt.getRatioTapChanger() != null ? twt.getRatioTapChanger().getCurrentStep().getR() : 0, twt.getPhaseTapChanger() != null ? twt.getPhaseTapChanger().getStep(p).getR() : 0); }
private double getX(TwoWindingsTransformer twt) { return getValue(twt.getX(), twt.getRatioTapChanger() != null ? twt.getRatioTapChanger().getCurrentStep().getX() : 0, twt.getPhaseTapChanger() != null ? twt.getPhaseTapChanger().getCurrentStep().getX() : 0); }
valueMap.put(new HistoDbNetworkAttributeId(twt.getId(), HistoDbAttr.PTC), twt.getPhaseTapChanger().getTapPosition());
private double getPtcX(TwoWindingsTransformer twt, int p) { return getValue(twt.getX(), twt.getRatioTapChanger() != null ? twt.getRatioTapChanger().getCurrentStep().getX() : 0, twt.getPhaseTapChanger() != null ? twt.getPhaseTapChanger().getStep(p).getX() : 0); }
private double getRtcX(TwoWindingsTransformer twt, int p) { return getValue(twt.getX(), twt.getRatioTapChanger() != null ? twt.getRatioTapChanger().getStep(p).getX() : 0, twt.getPhaseTapChanger() != null ? twt.getPhaseTapChanger().getCurrentStep().getX() : 0); }
p.put(CgmesNames.POSITION, is(t.getPhaseTapChanger().getTapPosition())); p.put(CgmesNames.TAP_CHANGER, cgmes.phaseTapChangerForPowerTransformer(t.getId())); tapSteps.add(p);