MappingTestNetwork.java
/*
* Copyright (c) 2021, 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/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.metrix.mapping;
import com.powsybl.iidm.network.*;
/**
*
* 2 buses connected by a line.
* Bus 1 connects 2 generators and 1 load.
* Bus 2 connects 1 generator and 2 loads.
*
*/
/**
* @author Paul Bui-Quang {@literal <paul.buiquang at rte-france.com>}
*/
public final class MappingTestNetwork {
private MappingTestNetwork() {
}
public static Network create() {
Network network = Network.create("test", "test");
Substation s1 = network.newSubstation()
.setId("S1")
.setCountry(Country.FR)
.add();
Substation s2 = network.newSubstation()
.setId("S2")
.setCountry(Country.FR)
.add();
VoltageLevel vl1 = s1.newVoltageLevel()
.setId("VL1")
.setNominalV(380f)
.setTopologyKind(TopologyKind.NODE_BREAKER)
.add();
VoltageLevel vl2 = s2.newVoltageLevel()
.setId("VL2")
.setNominalV(380f)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
vl1.getNodeBreakerView().newBusbarSection()
.setId("B1")
.setNode(0)
.add();
vl1.getNodeBreakerView().newBusbarSection()
.setNode(1)
.setId("MVN")
.add();
vl1.getNodeBreakerView().newBreaker()
.setNode1(0)
.setNode2(1)
.setId("SW1")
.add();
vl1.getNodeBreakerView().newBreaker()
.setNode1(1)
.setNode2(0)
.setId("SW2")
.add();
vl1.getNodeBreakerView().newDisconnector()
.setNode1(0)
.setNode2(2)
.setId("SW3")
.add();
vl1.getNodeBreakerView().newDisconnector()
.setNode1(0)
.setNode2(3)
.setId("SW4")
.add();
vl1.getNodeBreakerView().newDisconnector()
.setNode1(0)
.setNode2(4)
.setId("SW5")
.add();
vl1.getNodeBreakerView().newDisconnector()
.setNode1(0)
.setNode2(5)
.setId("SW6")
.add();
vl2.getBusBreakerView().newBus()
.setId("B2")
.add();
network.newLine()
.setId("L1")
.setVoltageLevel1("VL1")
.setNode1(2)
.setVoltageLevel2("VL2")
.setConnectableBus2("B2")
.setBus2("B2")
.setR(1)
.setX(1)
.setB1(0f)
.setB2(0f)
.setG1(0f)
.setG2(0f)
.add();
vl1.newGenerator()
.setId("G1")
.setNode(3)
.setEnergySource(EnergySource.NUCLEAR)
.setMinP(0f)
.setMaxP(1000f)
.setTargetP(900f)
.setTargetV(380f)
.setVoltageRegulatorOn(true)
.add();
vl1.newGenerator()
.setId("G2")
.setNode(4)
.setEnergySource(EnergySource.NUCLEAR)
.setMinP(0f)
.setMaxP(500f)
.setTargetP(400f)
.setTargetV(380f)
.setVoltageRegulatorOn(true)
.add();
vl2.newGenerator()
.setId("G3")
.setConnectableBus("B2")
.setBus("B2")
.setEnergySource(EnergySource.HYDRO)
.setMinP(0f)
.setMaxP(1000f)
.setTargetP(900f)
.setTargetV(380f)
.setVoltageRegulatorOn(true)
.add();
vl2.newGenerator()
.setId("G4")
.setConnectableBus("B2")
.setBus("B2")
.setEnergySource(EnergySource.OTHER)
.setMinP(10f)
.setMaxP(90f)
.setTargetP(35f)
.setTargetQ(0f)
.setVoltageRegulatorOn(false)
.add();
vl1.newLoad()
.setId("LD1")
.setNode(5)
.setP0(100)
.setQ0(0)
.add();
vl2.newLoad()
.setId("LD2")
.setConnectableBus("B2")
.setBus("B2")
.setP0(100)
.setQ0(0)
.add();
vl2.newLoad()
.setId("LD3")
.setConnectableBus("B2")
.setBus("B2")
.setP0(100)
.setQ0(0)
.add();
s1.newTwoWindingsTransformer()
.setId("twt")
.setName("twt_name")
.setR(1.0)
.setX(2.0)
.setG(3.0)
.setB(4.0)
.setRatedU1(5.0)
.setRatedU2(6.0)
.setVoltageLevel1("VL1")
.setVoltageLevel2("VL1")
.setNode1(6)
.setNode2(7)
.add().newPhaseTapChanger()
.setTapPosition(1)
.setLowTapPosition(0)
.setTargetDeadband(1.0)
.setRegulationValue(10.0)
.beginStep()
.setR(1.0)
.setX(2.0)
.setG(3.0)
.setB(4.0)
.setAlpha(5.0)
.setRho(6.0)
.endStep()
.beginStep()
.setR(1.0)
.setX(2.0)
.setG(3.0)
.setB(4.0)
.setAlpha(5.0)
.setRho(6.0)
.endStep()
.add();
return network;
}
}