-
Notifications
You must be signed in to change notification settings - Fork 43
IIDM & XIIDM 1.11 evolutions
When merging networks (see Migration guide), the structure of the merged networks is kept:
- The resulting network contains a subnetwork for each merged network;
- The used networks are emptied from their content and are thus not usable anymore.
Network n1 = ... // network of id "Network-1"
Network n2 = ... // network of id "Network-2"
Network n = Network.merge("Merged", n1, n2); // Merged network of id "Merged"
int subnetworkCount = n.getSubnetworks().size(); // result = 2
Network subnetwork1 = n.getSubnetwork("Network-1");
Network subnetwork2 = n.getSubnetwork("Network-2");
The subnetwork structure is importable/exportable in XIIDM. Each subnetwork is exported as a network
tag and keeps its own network elements and extensions.
Note that only one level of subnetworks is currently supported.
Network elements can be added at subnetwork level, if it is fully contained by a subnetwork, or at the main network level. In this latter case, if the element is fully contained by a subnetwork, it is created in the said subnetwork. Else it is created in the main network.
<!-- Merged network -->
<iidm:network xmlns:iidm="http://www.powsybl.org/schema/iidm/1_11" xmlns:mock="http://www.powsybl.org/schema/iidm/ext/terminal_mock/1_11" xmlns:extNetworkSource="http://www.itesla_project.eu/schema/iidm/ext/networksource/1_0"
id="Merged" caseDate="2013-01-15T18:40:00.000+01:00" forecastDistance="0" sourceFormat="format" minimumValidationLevel="STEADY_STATE_HYPOTHESIS">
<!-- Subnetwork "Network-1" -->
<iidm:network id="Network-1" caseDate="2013-01-15T18:41:00.000+01:00" forecastDistance="0" sourceFormat="format" minimumValidationLevel="STEADY_STATE_HYPOTHESIS">
<!-- Network-1 elements: -->
<iidm:substation id="s1" country="FR">
<!-- ... -->
<!-- Network-1 extensions: -->
<iidm:extension id="Network-1">
<extNetworkSource:networkSource sourceData="Source_1"/>
</iidm:extension>
<!-- ... -->
</iidm:network>
<!-- Subnetwork "Network-2" -->
<iidm:network id="Network-2" caseDate="2013-01-15T18:42:00.000+01:00" forecastDistance="0" sourceFormat="format" minimumValidationLevel="STEADY_STATE_HYPOTHESIS">
<!-- Network-2 elements: -->
<iidm:substation id="s2" country="FR">
<!-- ... -->
<!-- Network-2 extensions: -->
<iidm:extension id="LOAD">
<mock:terminalMock>
<mock:terminal id="LOAD"/>
</mock:terminalMock>
</iidm:extension>
<iidm:extension id="Network-2">
<extNetworkSource:networkSource sourceData="Source_2"/>
</iidm:extension>
<!-- ... -->
</iidm:network>
<!-- Network elements and extensions of the main network: -->
<iidm:tieLine id="dl1 + dl2" name="dl1_name + dl2_name" danglingLineId1="dl1" danglingLineId2="dl2"/>
<!-- ... -->
<iidm:extension id="Merged">
<extNetworkSource:networkSource sourceData="Source_0"/>
</iidm:extension>
<!-- ... -->
</iidm:network>
Identifiable
has now 2 methods to retrieve its Network
:
-
getNetwork()
returns the main network; -
getParentNetwork()
returns the smallest network containing the identifiable (i.e. the subnetwork which contains it, if one exists, or the main network).
In voltage level in node/breaker topology, we export in XIIDM
format buses as
<iidm:bus v="234.40912" angle="0.0" nodes="0,1,2,3,4"/>
These are called calculated buses. From this IIDM
version, properties associated to these buses are exported. This will lead to something like:
<iidm:bus v="234.40912" angle="0.0" nodes="0,1,2,3,4">
<iidm:property name="key_test" value="value_test"/>
</iidm:bus>
A voltage angle limit is the admissible value for the voltage angle difference in degree between the buses associated to two terminals. This operational limit is associated to the network, as it can linked two terminals not directly connected through an equipment. The difference checks in a security analysis is always the voltage angle at bus of the to
terminal minus the voltage angle at bus of the from
terminal. This difference must be less than the high limit and higher than the low limit. Signs are important but both limits are optional. Note that to control voltage angle difference between two buses in both direction, high and low limits must be equal in absolute value with opposite sign.
<iidm:voltageAngleLimit id="VOLTAGE_ANGLE_LIMIT_NHV1_NHV2_2" lowLimit="0.2">
<iidm:from id="NHV1_NHV2_2" side="ONE"/>
<iidm:to id="NHV1_NHV2_2" side="TWO"/>
</iidm:voltageAngleLimit>
<iidm:voltageAngleLimit id="VOLTAGE_ANGLE_LIMIT_NGEN_NHV1" highLimit="0.35" lowLimit="-0.2">
<iidm:from id="GEN"/>
<iidm:to id="NGEN_NHV1" side="TWO"/>
</iidm:voltageAngleLimit>
A network has a set of voltage angle limits with each a unique identifier among them. But the unicity is not guarantee with the network identifiers.
ucteXnodeCode
has been renamed into pairingKey
.