NetworkTestFactory.java
/*
* Copyright (c) 2019, 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 com.powsybl.balances_adjustment.util;
import com.powsybl.iidm.network.*;
/**
* @author Ameni Walha {@literal <ameni.walha at rte-france.com>}
*/
final class NetworkTestFactory {
private NetworkTestFactory() {
throw new AssertionError("No default constructor in utility class");
}
static Network createNetwork() {
Network network = NetworkFactory.findDefault().createNetwork("test", "test");
Substation substationFr1 = network.newSubstation()
.setId("subFr1")
.setCountry(Country.FR)
.setTso("RTE")
.add();
VoltageLevel voltageLevelFr1A = substationFr1.newVoltageLevel()
.setId("vlFr1A")
.setName("vlFr1A")
.setNominalV(440.0)
.setHighVoltageLimit(400.0)
.setLowVoltageLimit(200.0)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
voltageLevelFr1A.getBusBreakerView().newBus()
.setId("busFr1A")
.setName("busFr1A")
.add();
VoltageLevel voltageLevelFr1B = substationFr1.newVoltageLevel()
.setId("vlFr1B").setName("vlFr1B")
.setNominalV(200.0)
.setHighVoltageLimit(400.0)
.setLowVoltageLimit(200.0)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
voltageLevelFr1B.getBusBreakerView().newBus()
.setId("busFr1B")
.setName("busFr1B")
.add();
Substation substationFr2 = network.newSubstation()
.setId("subFr2")
.setCountry(Country.FR)
.setTso("RTE")
.add();
VoltageLevel voltageLevelFr2A = substationFr2.newVoltageLevel()
.setId("vlFr2A")
.setName("vlFr2A")
.setNominalV(440.0)
.setHighVoltageLimit(400.0)
.setLowVoltageLimit(200.0)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
voltageLevelFr2A.getBusBreakerView().newBus()
.setId("busFr2A")
.setName("busFr2A")
.add();
ThreeWindingsTransformer transformerFr1A = substationFr1.newThreeWindingsTransformer()
.setId("twtFr1A")
.setName("twtName")
.newLeg1()
.setR(1.3)
.setX(1.4)
.setG(1.6)
.setB(1.7)
.setRatedU(1.1)
.setVoltageLevel("vlFr1A")
.setConnectableBus("busFr1A")
.setBus("busFr1A")
.add()
.newLeg2()
.setR(2.03)
.setX(2.04)
.setRatedU(2.05)
.setVoltageLevel("vlFr1B")
.setConnectableBus("busFr1B")
.setBus("busFr1B")
.add()
.newLeg3()
.setR(3.3)
.setX(3.4)
.setRatedU(3.5)
.setVoltageLevel("vlFr1B")
.setConnectableBus("busFr1B")
.setBus("busFr1B")
.add()
.add();
transformerFr1A.getLeg1().getTerminal().setP(20).setQ(0);
transformerFr1A.getLeg2().getTerminal().setP(-12).setQ(0);
transformerFr1A.getLeg3().getTerminal().setP(-8).setQ(0);
ThreeWindingsTransformer transformerFr1B = substationFr1.newThreeWindingsTransformer()
.setId("twtFr1B")
.newLeg1()
.setR(1.3)
.setX(1.4)
.setG(1.6)
.setB(1.7)
.setRatedU(1.1)
.setVoltageLevel("vlFr1A")
.setConnectableBus("busFr1A")
.setBus("busFr1A")
.add()
.newLeg2()
.setR(2.03)
.setX(2.04)
.setRatedU(2.05)
.setVoltageLevel("vlFr1A")
.setConnectableBus("busFr1A")
.setBus("busFr1A")
.add()
.newLeg3()
.setR(3.3)
.setX(3.4)
.setRatedU(3.5)
.setVoltageLevel("vlFr1A")
.setConnectableBus("busFr1A")
.setBus("busFr1A")
.add()
.add();
transformerFr1B.getLeg1().getTerminal().setP(20).setQ(0);
transformerFr1B.getLeg2().getTerminal().setP(-20).setQ(0);
transformerFr1B.getLeg3().getTerminal().setP(0).setQ(0);
Substation substationEs1 = network.newSubstation()
.setId("subEs1")
.setCountry(Country.ES)
.add();
VoltageLevel voltageLevelEs1A = substationEs1.newVoltageLevel()
.setId("vlEs1A")
.setName("vlEs1A")
.setNominalV(440.0)
.setHighVoltageLimit(400.0)
.setLowVoltageLimit(200.0)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
voltageLevelEs1A.getBusBreakerView().newBus()
.setId("busEs1A")
.setName("busEs1A")
.add();
VoltageLevel voltageLevelEs1B = substationEs1.newVoltageLevel()
.setId("vlEs1B")
.setName("vlEs1B")
.setNominalV(440.0)
.setHighVoltageLimit(400.0)
.setLowVoltageLimit(200.0)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
voltageLevelEs1B.getBusBreakerView().newBus()
.setId("busEs1B")
.setName("busEs1B")
.add();
ThreeWindingsTransformer transformerEs1A = substationEs1.newThreeWindingsTransformer()
.setId("twtEs1A")
.newLeg1()
.setR(1.3)
.setX(1.4)
.setG(1.6)
.setB(1.7)
.setRatedU(1.1)
.setVoltageLevel("vlEs1A")
.setConnectableBus("busEs1A")
.setBus("busEs1A")
.add()
.newLeg2()
.setR(2.03)
.setX(2.04)
.setRatedU(2.05)
.setVoltageLevel("vlEs1A")
.setConnectableBus("busEs1A")
.setBus("busEs1A")
.add()
.newLeg3()
.setR(3.3)
.setX(3.4)
.setRatedU(3.5)
.setVoltageLevel("vlEs1B")
.setConnectableBus("busEs1B")
.setBus("busEs1B")
.add()
.add();
transformerEs1A.getLeg1().getTerminal().setP(20).setQ(0);
transformerEs1A.getLeg2().getTerminal().setP(-15).setQ(0);
transformerEs1A.getLeg3().getTerminal().setP(-5).setQ(0);
VscConverterStation csFr1A = voltageLevelFr1A.newVscConverterStation()
.setId("CFr1A")
.setName("Converter1")
.setConnectableBus("busFr1A")
.setBus("busFr1A")
.setLossFactor(0.011f)
.setVoltageSetpoint(405.0)
.setVoltageRegulatorOn(true)
.add();
csFr1A.getTerminal()
.setP(100.0)
.setQ(50.0);
csFr1A.newReactiveCapabilityCurve()
.beginPoint()
.setP(5.0)
.setMinQ(0.0)
.setMaxQ(10.0)
.endPoint()
.beginPoint()
.setP(10.0)
.setMinQ(0.0)
.setMaxQ(10.0)
.endPoint()
.add();
VscConverterStation csEs1A = voltageLevelEs1A.newVscConverterStation()
.setId("CEs1A")
.setName("Converter2")
.setConnectableBus("busEs1A")
.setBus("busEs1A")
.setLossFactor(0.011f)
.setReactivePowerSetpoint(123)
.setVoltageRegulatorOn(false)
.add();
csEs1A.newMinMaxReactiveLimits()
.setMinQ(0.0)
.setMaxQ(10.0)
.add();
csEs1A.getTerminal()
.setP(-100.0)
.setQ(50.0);
HvdcLine hvdcLine = network.newHvdcLine()
.setId("hvdcLineFrEs")
.setName("hvdcLine")
.setR(5.0)
.setConvertersMode(HvdcLine.ConvertersMode.SIDE_1_INVERTER_SIDE_2_RECTIFIER)
.setNominalV(440.0)
.setMaxP(50.0)
.setActivePowerSetpoint(20.0)
.setConverterStationId1("CFr1A")
.setConverterStationId2("CEs1A")
.add();
return network;
}
}