eu.itesla_project.iidm.network.test.PhaseShifterTestCaseFactory.java Source code

Java tutorial

Introduction

Here is the source code for eu.itesla_project.iidm.network.test.PhaseShifterTestCaseFactory.java

Source

/**
 * Copyright (c) 2016, RTE (http://www.rte-france.com)
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
package eu.itesla_project.iidm.network.test;

import eu.itesla_project.iidm.network.*;
import org.joda.time.DateTime;

/**
 * A very small network to test phase shifters.
 *
 *     G1                   LD2
 *     |          L1        |
 *     |  ----------------- |
 *     B1                   B2
 *        --------B3-------
 *           PS1       L2
 *
 * @author Geoffroy Jamgotchian <geoffroy.jamgotchian at rte-france.com>
 */
public class PhaseShifterTestCaseFactory {

    public static Network create() {
        Network network = NetworkFactory.create("phaseShifterTestCase", "code");
        network.setCaseDate(DateTime.parse("2016-10-18T10:06:00.000+02:00"));
        Substation s1 = network.newSubstation().setId("S1").setCountry(Country.FR).add();
        VoltageLevel vl1 = s1.newVoltageLevel().setId("VL1").setNominalV(380f)
                .setTopologyKind(TopologyKind.BUS_BREAKER).add();
        Bus b1 = vl1.getBusBreakerView().newBus().setId("B1").add();
        b1.setV(400f).setAngle(0f);
        Generator g1 = vl1.newGenerator().setId("G1").setConnectableBus("B1").setBus("B1")
                .setVoltageRegulatorOn(true).setTargetP(100f).setTargetV(400f).setMinP(50).setMaxP(150).add();
        g1.getTerminal().setP(-100.16797f).setQ(-58.402832f);
        Substation s2 = network.newSubstation().setId("S2").setCountry(Country.FR).add();
        VoltageLevel vl2 = s2.newVoltageLevel().setId("VL2").setNominalV(380f)
                .setTopologyKind(TopologyKind.BUS_BREAKER).add();
        Bus b2 = vl2.getBusBreakerView().newBus().setId("B2").add();
        b2.setV(385.6934f).setAngle(-3.6792064f);
        Load ld2 = vl2.newLoad().setId("LD2").setConnectableBus("B2").setBus("B2").setP0(100f).setQ0(50f).add();
        ld2.getTerminal().setP(100f).setQ(50f);
        Line l1 = network.newLine().setId("L1").setVoltageLevel1("VL1").setConnectableBus1("B1").setBus1("B1")
                .setVoltageLevel2("VL2").setConnectableBus2("B2").setBus2("B2").setR(4f).setX(200f).setG1(0f)
                .setB1(0f).setG2(0f).setB2(0f).add();
        l1.getTerminal1().setP(50.084026f).setQ(29.201416f);
        l1.getTerminal2().setP(-50f).setQ(-25f);
        VoltageLevel vl3 = s1.newVoltageLevel().setId("VL3").setNominalV(380f)
                .setTopologyKind(TopologyKind.BUS_BREAKER).add();
        Bus b3 = vl3.getBusBreakerView().newBus().setId("B3").add();
        b3.setV(392.6443f).setAngle(-1.8060945f);
        TwoWindingsTransformer ps1 = s1.newTwoWindingsTransformer().setId("PS1").setVoltageLevel1("VL1")
                .setConnectableBus1("B1").setBus1("B1").setVoltageLevel2("VL3").setConnectableBus2("B3")
                .setBus2("B3").setRatedU1(380f).setRatedU2(380f).setR(2f).setX(100f).setG(0f).setB(0f).add();
        ps1.getTerminal1().setP(50.08403f).setQ(29.201416f);
        ps1.getTerminal2().setP(-50.042015f).setQ(-27.100708f);
        ps1.newPhaseTapChanger().setTapPosition(1).setRegulationTerminal(ps1.getTerminal2())
                .setRegulationMode(PhaseTapChanger.RegulationMode.FIXED_TAP).setRegulationValue(200).beginStep()
                .setAlpha(-20f).setRho(1f).setR(0f).setX(0f).setG(0f).setB(0f).endStep().beginStep().setAlpha(0f)
                .setRho(1f).setR(0f).setX(0f).setG(0f).setB(0f).endStep().beginStep().setAlpha(20f).setRho(1f)
                .setR(0f).setX(0f).setG(0f).setB(0f).endStep().add();
        Line l2 = network.newLine().setId("L2").setVoltageLevel1("VL3").setConnectableBus1("B3").setBus1("B3")
                .setVoltageLevel2("VL2").setConnectableBus2("B2").setBus2("B2").setR(2f).setX(100f).setG1(0f)
                .setB1(0f).setG2(0f).setB2(0f).add();
        l2.getTerminal1().setP(50.042015f).setQ(27.100708f);
        l2.getTerminal2().setP(-50f).setQ(-25f);
        return network;
    }
}