public interface VoltageLevel extends Container<VoltageLevel>
A voltage level contains a topology model, i.e. an object that describes how equipments are connected together.
getTopologyKind()
):
Depending on the topology model kind of the voltage level a view can have the status:
The view status is summarized in the following table:
Topology model | |||
---|---|---|---|
node/breaker | bus/breaker | ||
Topology view | node/breaker | modifiable | N/A |
bus/breaker | readable | modifiable | |
bus | readable | readable |
Characteristics
Attribute | Type | Unit | Required | Defaut value | Description |
---|---|---|---|---|---|
Id | String | - | yes | - | Unique identifier of the voltage level |
Name | String | - | yes | - | Human-readable name of the voltage level |
NominalV | double | kV | yes | - | The nominal voltage |
LowVoltageLimit | double | kV | no | - | The low voltage limit |
HighVoltageLimit | double | kV | no | - | The high voltage limit |
TopologyKind | TopologyKind | - | yes | - | The kind of topology |
Here is a diagram of the substation:
The next diagram shows how to map the subtation topology to a graph.
Switch.isRetained()
).
The following code shows how to create the substation with a node/breaker topology model.
Network n = ... Substation s = ... VoltageLevel vl1 = s.newVoltageLevel() .setId("VL1") .setTopologyKind(TopologyKind.NODE_BREAKER) .add(); vl1.getNodeBreakerView().setNodeCount(8); // create busbar sections BBS1 and BBS2 vl1.getNodeBreakerView().newBusbarSection() .setId("BBS1") .add(); vl1.getNodeBreakerView().newBusbarSection() .setId("BBS2") .add(); // create generator GN vl1.newGenerator() .setId("GN") .setNode(1) ... .add(); // create load LD vl1.newLoad() .setId("LD") .setNode(5) ... .add(); // connect generator GN by creating breaker BR1 and disconnectors DI1 and DI2 vl1.getNodeBreakerView().newBreaker() .setId("BR1") .setOpen(false) .setNode1(1) .setNode1(2) .add(); vl1.getNodeBreakerView().newDisconnector() .setId("DI1") .setOpen(false) .setNode1(2) .setNode1(3) .add(); vl1.getNodeBreakerView().newDisconnector() .setId("DI2") .setOpen(true) .setNode1(2) .setNode1(4) .add(); // connect load LD ... // create busbar coupler BR3 vl1.getNodeBreakerView().newBreaker() .setId("BR3") .setOpen(false) .setRetained(true) // retain this breaker in the bus/breaker topology!!! .setNode1(3) .setNode2(4) .add(); VoltageLevel vl2 = s.newVoltageLevel() .setId("VL2") .setTopologyKind(TopologyKind.NODE_BREAKER) .add(); vl2.getNodeBreakerView().setNodeCount(3); // create busbar section BBS3 vl2.getNodeBreakerView().newBusbarSection() .setId("BBS3") .add(); // create line LN n.newLine() .setId("LN") .setVoltageLevel1("VL2") .setNode1(1) .setVoltageLevel2(...) .setNode2(...) ... .add(); // create transformer TR s.newTwoWindingsTransformer() .setId("TR") .setVoltageLevel1("VL1") .setNode1(8) .setVoltageLevel2("VL2") .setNode2(3) ... .add();
The following diagram shows computed bus/breaker topology. Compared to node/breaker topology, only remains equipements (GN, LD, TR, LN), and switches flagged as retained (BR3). Equipments are now connected through buses (B1 and B2).
To get a bus/breaker view on the substation voltage level VL1 use
getBusBreakerView()
.
The following code shows how to get buses and breakers of the bus/breaker
view in voltage level VL1.
// VL1 contains 2 buses in the bus/breaker view Iterator<Bus> itB = vl1.getBusBreakerView().getBuses().iterator(); // first bus connects nodes 1, 2, 3, 5, 6 Bus b1 = itB.next(); // ... and consequently generator GN and load LD Generator gn = b1.getGenerators().iterator().next(); Load ld = b1.getLoads().iterator().next(); // bus/breaker view can also be accessed from an equipment Bus alsoB1 = gn.getTerminal().getBusBreakerView.getBus(); // second bus connects nodes 4, 7, 8 Bus b2 = itB.next(); TwoWindingsTransformer tr = b2.getTwoWindingsTransformer().iterator().next(); // VL1 contains 1 switch in the bus/breaker view Iterator<Switch> itS = vl1.getBusBreakerView().getSwitches().iterator(); Switch br3 = itS.next();
The following diagram shows computed bus topology. Compared to bus/breaker topology, there is no switches anymore. Only remains equipements (GN, LD, TR, LN) connected through buses.
To get a bus view one the substation voltage level VL1 use
getBusView()
.
The following code shows how to get buses of the bus view in voltage level VL1.
// VL1 contains 1 buses in the bus view Iterator<Bus> itB = vl1.getBusView().getBuses(); // the bus connects all the equipements of voltage level VL1 Bus b1 = itB.next();
The following code shows how to create the substation with a bus/breaker topology model.
VoltageLevel vl1 = s.newVoltageLevel() .setId("VL1") .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); // create busbar sections BBS1 and BBS2 vl1.getBusBreakerView().newBus() .setId("B1") .add(); vl1.getBusBreakerView().newBus() .setId("B2") .add(); // create generator GN vl1.newGenerator() .setId("GN") .setBus("B1") ... .add(); // create load LD vl1.newLoad() .setId("LD") .setBus("B1") ... .add(); // create busbar coupler BR3 vl1.getBusBreakerView().newBreaker() .setId("BR3") .setOpen(false) .setBus1("B1") .setBus2("B2") .add(); VoltageLevel vl2 = s.newVoltageLevel() .setId("VL2") .setTopologyKind(TopologyKind.BUS_BREAKER) .add(); vl2.getBusBreakerView().newBus() .setId("B3") .add(); // create line LN n.newLine() .setId("LN") .setVoltageLevel1("VL2"); .setBus1("B3") .setVoltageLevel2(...); .setBus2(...) ... .add(); // create transformer TR s.newTwoWindingsTransformer() .setId("TR") .setVoltageLevel1("VL1"); .setBus1("B2") .setVoltageLevel2("VL2"); .setBus2("B3") ... .add();
Warning: in that case the node/breaker view status on voltage level VL1 and VL2 is N/A.
To create a voltage level, see VoltageLevelAdder
VoltageLevelAdder
Modifier and Type | Interface and Description |
---|---|
static interface |
VoltageLevel.BusBreakerView
A bus/breaker view of the topology.
|
static interface |
VoltageLevel.BusView
A bus view of the substation topology.
|
static interface |
VoltageLevel.NodeBreakerView
A node/breaker view of the topology.
|
static interface |
VoltageLevel.TopologyTraverser
Topology traversal handler
|
Modifier and Type | Method and Description |
---|---|
void |
exportTopology(Path file)
Export in a file the topology in DOT format (Graphviz).
|
void |
exportTopology(Writer writer)
Export the topology in DOT format (Graphviz).
|
void |
exportTopology(Writer writer,
Random random)
Export in a file the topology in DOT format (Graphviz).
|
Iterable<Battery> |
getBatteries()
Get batteries.
|
int |
getBatteryCount()
Get battery count.
|
Stream<Battery> |
getBatteryStream()
Get batteries.
|
VoltageLevel.BusBreakerView |
getBusBreakerView()
Get a bus/breaker view of the topology.
|
VoltageLevel.BusView |
getBusView()
Get a bus view of the topology.
|
<T extends Connectable> |
getConnectable(String id,
Class<T> aClass)
Get an equipment connected to this substation voltage level.
|
int |
getConnectableCount()
Count the equipments connected to this substation voltage level.
|
<T extends Connectable> |
getConnectableCount(Class<T> clazz)
Count the equipments connected to this substation voltage level for a given type.
|
Iterable<Connectable> |
getConnectables()
Get an Iterable on all the equipments connected to this substation voltage level.
|
<T extends Connectable> |
getConnectables(Class<T> clazz)
Get an Iterable on all the equipments connected to this substation voltage level for a given type.
|
Stream<Connectable> |
getConnectableStream()
Get a Stream on all the equipments connected to this substation voltage level.
|
<T extends Connectable> |
getConnectableStream(Class<T> clazz)
Get a Stream on all the equipments connected to this substation voltage level for a given type.
|
int |
getDanglingLineCount()
Get dangling line count.
|
Iterable<DanglingLine> |
getDanglingLines()
Get dangling lines.
|
Stream<DanglingLine> |
getDanglingLineStream()
Get dangling lines.
|
int |
getGeneratorCount()
Get generator count.
|
Iterable<Generator> |
getGenerators()
Get generators.
|
Stream<Generator> |
getGeneratorStream()
Get generators.
|
double |
getHighVoltageLimit()
Get the high voltage limit in KV.
|
int |
getLccConverterStationCount()
Get LCC converter stations count connected to this voltage level.
|
Iterable<LccConverterStation> |
getLccConverterStations()
Get all LCC converter stations connected to this voltage level.
|
Stream<LccConverterStation> |
getLccConverterStationStream()
Get all LCC converter stations connected to this voltage level.
|
int |
getLoadCount()
Get load count.
|
Iterable<Load> |
getLoads()
Get loads.
|
Stream<Load> |
getLoadStream()
Get loads.
|
double |
getLowVoltageLimit()
Get the low voltage limit in KV.
|
VoltageLevel.NodeBreakerView |
getNodeBreakerView()
Get a node/breaker view of the topology.
|
double |
getNominalV()
Get the nominal voltage in KV.
|
int |
getShuntCompensatorCount()
Get shunt count.
|
Iterable<ShuntCompensator> |
getShuntCompensators()
Get compensator shunts.
|
Stream<ShuntCompensator> |
getShuntCompensatorStream()
Get compensator shunts.
|
int |
getStaticVarCompensatorCount()
Get static var compensator count.
|
Iterable<StaticVarCompensator> |
getStaticVarCompensators()
Get static var compensators.
|
Stream<StaticVarCompensator> |
getStaticVarCompensatorStream()
Get static var compensators.
|
Substation |
getSubstation()
Get the substation to which the voltage level belongs.
|
int |
getSwitchCount()
Get switch count.
|
Iterable<Switch> |
getSwitches()
Get switches.
|
TopologyKind |
getTopologyKind()
Get the kind of topology.
|
int |
getVscConverterStationCount()
Get VSC converter stations count connected to this voltage level.
|
Iterable<VscConverterStation> |
getVscConverterStations()
Get all VSC converter stations connected to this voltage level.
|
Stream<VscConverterStation> |
getVscConverterStationStream()
Get all VSC converter stations connected to this voltage level.
|
BatteryAdder |
newBattery()
Get a builder to create a new battery.
|
DanglingLineAdder |
newDanglingLine()
Get a builder to create a new dangling line.
|
GeneratorAdder |
newGenerator()
Get a builder to create a new generator.
|
LccConverterStationAdder |
newLccConverterStation()
Get a builder to create a new LCC converter station connected to this voltage level.
|
LoadAdder |
newLoad()
Get a builder to create a new load.
|
ShuntCompensatorAdder |
newShuntCompensator() |
StaticVarCompensatorAdder |
newStaticVarCompensator()
Get a builder to create a new static var compensator.
|
VscConverterStationAdder |
newVscConverterStation()
Get a builder to create a new VSC converter station connected to this voltage level.
|
void |
printTopology()
Print an ASCII representation of the topology on the standard ouput.
|
void |
printTopology(PrintStream out,
ShortIdDictionary dict)
Print an ASCII representation of the topology on a stream.
|
default void |
remove()
Remove this voltage level from the network.
|
VoltageLevel |
setHighVoltageLimit(double highVoltageLimit)
Set the high voltage limit in KV.
|
VoltageLevel |
setLowVoltageLimit(double lowVoltageLimit)
Set the low voltage limit in KV.
|
VoltageLevel |
setNominalV(double nominalV) |
void |
visitEquipments(TopologyVisitor visitor)
Visit equipments of the voltage level.
|
getContainerType
addAlias, getAliases, getId, getName, getNameOrId, getNetwork, getOptionalName, getProperties, getProperty, getProperty, getPropertyNames, hasAliases, hasProperty, hasProperty, isFictitious, removeAlias, setFictitious, setProperty
addExtension, getExtension, getExtensionByName, getExtensions, getImplementationName, newExtension, removeExtension
Substation getSubstation()
double getNominalV()
VoltageLevel setNominalV(double nominalV)
double getLowVoltageLimit()
VoltageLevel setLowVoltageLimit(double lowVoltageLimit)
lowVoltageLimit
- the low voltage limit in KVdouble getHighVoltageLimit()
VoltageLevel setHighVoltageLimit(double highVoltageLimit)
highVoltageLimit
- the high voltage limit in KV<T extends Connectable> T getConnectable(String id, Class<T> aClass)
id
- the equipment idaClass
- <T extends Connectable> Iterable<T> getConnectables(Class<T> clazz)
clazz
- equipments type<T extends Connectable> Stream<T> getConnectableStream(Class<T> clazz)
clazz
- equipments type<T extends Connectable> int getConnectableCount(Class<T> clazz)
clazz
- equipments typeIterable<Connectable> getConnectables()
Stream<Connectable> getConnectableStream()
int getConnectableCount()
GeneratorAdder newGenerator()
int getGeneratorCount()
BatteryAdder newBattery()
int getBatteryCount()
LoadAdder newLoad()
int getSwitchCount()
int getLoadCount()
ShuntCompensatorAdder newShuntCompensator()
Iterable<ShuntCompensator> getShuntCompensators()
Stream<ShuntCompensator> getShuntCompensatorStream()
int getShuntCompensatorCount()
DanglingLineAdder newDanglingLine()
Iterable<DanglingLine> getDanglingLines()
Stream<DanglingLine> getDanglingLineStream()
int getDanglingLineCount()
StaticVarCompensatorAdder newStaticVarCompensator()
Iterable<StaticVarCompensator> getStaticVarCompensators()
Stream<StaticVarCompensator> getStaticVarCompensatorStream()
int getStaticVarCompensatorCount()
VscConverterStationAdder newVscConverterStation()
Iterable<VscConverterStation> getVscConverterStations()
Stream<VscConverterStation> getVscConverterStationStream()
int getVscConverterStationCount()
LccConverterStationAdder newLccConverterStation()
Iterable<LccConverterStation> getLccConverterStations()
Stream<LccConverterStation> getLccConverterStationStream()
int getLccConverterStationCount()
default void remove()
void visitEquipments(TopologyVisitor visitor)
visitor
- TopologyKind getTopologyKind()
VoltageLevel.NodeBreakerView getNodeBreakerView()
VoltageLevel.BusBreakerView getBusBreakerView()
VoltageLevel.BusView getBusView()
void printTopology()
void printTopology(PrintStream out, ShortIdDictionary dict)
out
- the streamvoid exportTopology(Path file) throws IOException
file
- the fileIOException
void exportTopology(Writer writer, Random random) throws IOException
writer
- a writerrandom
- pseudo random number generatorIOException
void exportTopology(Writer writer) throws IOException
writer
- a writerIOException
Copyright © 2020. All rights reserved.