Topology_NodeBreaker module¶
This module contains definitions of classes to represent ONLY additional data from the CIM import, which is not part of the original Matpower data structure, but might be necessary for the GARPUR project.
Note
The data in the classes in this file is structured according to how it will be represented in Matlab, and not according to how it will be represented in the Python import code.
Note
The current implementation refers to CIMv14
!
See also
Date: | 2016-05-10 |
---|---|
Authors: | Konstantin Gerasimov |
e-mail: | kkgerasimov@gmail.com |
Credits: | This function is created for KU-Leuven as part of the GARPUR project http://www.garpur-project.eu |
-
class
Topology_NodeBreaker.
Area
(id_cim, name='', netInterchange=0, pTolerance=0)[source]¶ Repsenets the basic info about a
IEC61970::ControlArea::ControlArea
object from the source CIM file.-
id
= None¶ An autogenerated ID, subsequent numbering, starting from 1, (integer)
Note
This ID goes in the Matpower
mpc.bus(:,BUS_AREA)
struct field.
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-
netInterchange
= None¶ The
netInterchange
attribute (ActivePower datatype, usually MW for TSO networks)
-
pTolerance
= None¶ The
pTolerance
attribute (ActivePower datatype, usually MW for TSO networks)
-
-
class
Topology_NodeBreaker.
Branch
(node_from_id, node_to_id, id_cim, name='', status_from=False, status_to=False)[source]¶ Represents additional to the
Topology_BusBranch.Branch
data about eitherIEC61970::Wires::ACLineSegment
orIEC61970::Wires::PowerTransformer
object from the source CIM file, which formed that Branch.-
id
= None¶ Autogenerated ID, subsequent numbering, starting from 1, (integer)
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-
node_from_id
= None¶ A
Topology_NodeBreaker.Node.id`
on Terminal 0 (integer)
-
node_to_id
= None¶ A
Topology_NodeBreaker.Node.id`
on Terminal 1 (integer)
-
status_from
= None¶ The Branch FROM terminal status (Open or Closed), i.e. terminal’s attribute
connected
. (boolean)Note
For
ACLineSegment
-s the FROM terminal is terminal 0. ForPowerTransformer
-s however it is the secondary winding’s terminal (in order to comply with the Matpower transformer modeling assumptions)!
-
status_to
= None¶ The Branch TO terminal status (Open or Closed), i.e. terminal’s attribute
connected
. (boolean)Note
For
ACLineSegment
-s the TO terminal is terminal 1. ForPowerTransformer
-s however it is the primary winding’s terminal (in order to comply with the Matpower transformer modeling assumptions)!
-
-
class
Topology_NodeBreaker.
Generator
(node_id, id_cim, type, name='', mode='', fuel_type='')[source]¶ Repsenets the basic info about a
IEC61970::Wires::SynchronousMachine
object from the source CIM file, not contained in the Matpowermpc.gen
field.-
fuel_type
= None¶ The
FossilFuel.fossilFuelType
attribute (string) of theThermalGeneratingUnit
CIM class
-
id
= None¶ Autogenerated ID, subsequent numbering, starting from 1, (integer)
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
mode
= None¶ The
operatingMode
attribute (string)
-
name
= None¶ The
name
attribute (string)
-
node_id
= None¶ A
Topology_NodeBreaker.Node.id`
to which the Generator is connected (integer)
-
type
= None¶ The prefix of the
GeneratingUnit
class reference (string)Warning
Some Generator-s are assigned to the generic
GeneratingUnit
class. Then their type is an empty sting!
-
-
class
Topology_NodeBreaker.
Load
(node_id, id_cim, name='', p_mw=0, q_mvar=0, status=False)[source]¶ Repsenets the basic info about a
IEC61970::Wires::EnergyConsumer
object from the source CIM file.Note
The problem is that the Matpower mpc structure aggeregates all Load-s in the same bus. However if is useful to preserve the information about them (for example for load shedding) and this is why it is stored separately in this class.
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-
node_id
= None¶ A
Topology_NodeBreaker.Node.id`
to which the Load is connected (integer)
-
p_mw
= None¶ The load terminal’s StateVariable
SvPowerFlow.p
attribute (ActivePower datatype, usually MW for TSO networks)
-
q_mvar
= None¶ The load terminal’s StateVariable
SvPowerFlow.q
attribute (ReactivePower datatype, usually MVAr for TSO networks)
-
status
= None¶ The Load terminal’s attribute
connected
(boolean)
-
-
class
Topology_NodeBreaker.
Node
(id_cim, bus_id=-1, name='', desc='')[source]¶ Repsenets the basic info about a
IEC61970::Topology::TopologicalNode
object from the source CIM file.-
bus_id
= None¶ A
Topology_BusBranch.Bus.id
(integer)
-
desc
= None¶ The
description
attribute (string)
-
id
= None¶ An autogenerated ID, subsequent numbering, starting from 1, (integer)
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-
-
class
Topology_NodeBreaker.
PhaseTapChanger
(branch_id, id_cim, step_num_list, x_pu_list, angle_shift_deg_list, continuous_position)[source]¶ Repsenets the basic info about a
IEC61970::Wires::PhaseTapChanger
object from the source CIM file.-
angle_shift_deg_list
= None¶ A list of phase shifts [deg] for each corresponding step (list of floats)
-
branch_id
= None¶ A
Topology_BusBranch.Branch.id`
(integer)
-
continuous_position
= None¶ The PhaseTapChanger‘s StateVariable
SvTapStep.continuousPosition
attribute, i.e. the actual step position (integer)
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
step_num_list
= None¶ A list of the step numbers (list of subsequent string)
-
x_pu_list
= None¶ A list of reactances [p.u.] for each corresponding step (list of floats)
-
-
class
Topology_NodeBreaker.
RatioTapChanger
(branch_id, id_cim, lowStep, highStep, neutralU_kV, stepVoltageIncrement_kV, continuousPosition, hasRegulatingControl, RC_discrete=[], RC_mode='', RC_targetRange_kV=[], RC_targetValue_kV=[])[source]¶ Repsenets the basic info about a
IEC61970::Wires::RatioTapChanger
object from the source CIM file.-
RC_discrete
= None¶ The
RegulatingControl
‘sdiscrete
attribute (integer)
-
RC_mode
= None¶ The
RegulatingControl
‘smode
attribute (string)
-
RC_targetRange_kV
= None¶ The
RegulatingControl
‘stargetRange
attribute (kV)
-
RC_targetValue_kV
= None¶ The
RegulatingControl
‘stargetValue
attribute (kV)
-
branch_id
= None¶ A
Topology_BusBranch.Branch.id`
(integer)
-
continuousPosition
= None¶ The RatioTapChanger‘s StateVariable
SvTapStep.continuousPosition
attribute, i.e. tap step voltage increment, per step position. (integer)
-
hasRegulatingControl
= None¶ The RatioTapChanger‘s
RegulatingControl
reference, false if unavailable (boolean)
-
highStep
= None¶ The
highStep
attribute (inherited from:TapChanger
), i.e. the highest possible tap step position, advance from neutral (integer)
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
lowStep
= None¶ The
lowStep
attribute (inherited from:TapChanger
), i.e. the low step position number (integer)
-
neutralU_kV
= None¶ The
neutralU
attribute (inherited from:TapChanger
), i.e. voltage at which the winding operates at the neutral tap setting (kV)
-
stepVoltageIncrement_kV
= None¶ The
stepVoltageIncrement
attribute (inherited from:TapChanger
), i.e. tap step voltage increment, per step position. (kV)
-
-
class
Topology_NodeBreaker.
Shunt
(node_id, id_cim, maximumSections, numActiveSections, gPerSection_MVAr, bPerSection_MVAr, name='', status=False)[source]¶ Repsenets the basic info about a
IEC61970::Wires::ShuntCompensator
object from the source CIM file.Note
The problem is that the Matpower mpc structure aggeregates all Shunt-s in the same bus. However if is useful to preserve the information about them (for example for switching actions) and this is why it is stored separately in this class.
Warning
IEC61970::Wires::SeriesCompensator
andIEC61970::Wires::StaticVarCompensator
are not yet implemented! See the source code ofCIM2Matpower.CIM2Matpower._create_buses_and_gens()
!-
bPerSection_MVAr
= None¶ The
bPerSection
attribute, transformed MVAr injected at V = 1.0 p.u. as required by Matpower specifications
-
gPerSection_MVAr
= None¶ The
gPerSection
attribute, transformed MW demanded at V = 1.0 p.u. as required by Matpower specifications
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
maximumSections
= None¶ The
maximumSections
attribute (integer)
-
name
= None¶ The
name
attribute (string)
-
node_id
= None¶ A
Topology_NodeBreaker.Node.id`
to which the Shunt is connected (integer)
-
numActiveSections
= None¶ The Shunt‘s StateVariable
SvShuntCompensatorSections.continuousSections
attribute, i.e. the number of switched ON sections (integer)
-
status
= None¶ The Shunt terminal’s attribute
connected
(boolean)
-
-
class
Topology_NodeBreaker.
Substation
(node_id_list, id_cim, name='')[source]¶ Repsenets the basic info about a
IEC61970::Core::Substation
object from the source CIM file.-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-
node_id_list
= None¶ A list of
Topology_NodeBreaker.Node.id`
-s within the substation (integers)
-
-
class
Topology_NodeBreaker.
Switch
(node_from_id, node_to_id, id_cim, name='', status=False, branch_id=0)[source]¶ Repsenets the basic info about a
IEC61970::Wires::Switch
object from the source CIM file.-
branch_id
= None¶ A
Topology_BusBranch.Branch.id
(integer)Note
This property only reserves place. The Matpower case, which comes out of this import tool is a BusBranch model, therefore it should not have branches representing Switch-es. However, it the created in Matlab function
mpc_bb2nodal.m
is called, it creates a NodeBreaker model by adding the Switch-es as low impedence Branch-es and stores theTopology_BusBranch.Branch.id
for the opposite transformation. This information is also necessary when switching actions are to be performed.
-
id_cim
= None¶ The
name
attribute (string)
-
name
= None¶ The
name
attribute (string)
-
node_from_id
= None¶ A
Topology_NodeBreaker.Node.id
on Terminal 0 (integer)
-
node_to_id
= None¶ A
Topology_NodeBreaker.Node.id
on Terminal 1 (integer)
-
status
= None¶ The Swtich status (Open or Closed), i.e. False if either of the Swtich terminal’s attribute
connected
is False. (boolean)
-
-
class
Topology_NodeBreaker.
Topology_NodeBreaker
(CIM_filenames)[source]¶ Additional data from the CIM files about the NodeBreaker topology of the system
-
CIM_filenames
= None¶ List of the CIM files which were passed to
CIM2Matpower.import()
(list if string)
-
branches
= None¶ List of all
Topology_NodeBreaker.Branch
-es within the biggestTopologicalIsland
of the imported power system.
-
generators
= None¶ List of all
Topology_NodeBreaker.Generator
-es within the biggestTopologicalIsland
of the imported power system.
-
loads
= None¶ List of all
Topology_NodeBreaker.Load
-es within the biggestTopologicalIsland
of the imported power system.
-
phasetapchangers
= None¶ List of all
Topology_NodeBreaker.PhaseTapChanger
-s within the biggestTopologicalIsland
of the imported power system.
-
ratiotapchangers
= None¶ List of all
Topology_NodeBreaker.RatioTapChanger
-s within the biggestTopologicalIsland
of the imported power system.
-
shunts
= None¶ List of all
Topology_NodeBreaker.Shunt
-es within the biggestTopologicalIsland
of the imported power system.
-
substations
= None¶ List of
Topology_NodeBreaker.Substation
-s within the biggestTopologicalIsland
of the imported power system.
-
switches
= None¶ List of all
Topology_NodeBreaker.Switch
-es within the biggestTopologicalIsland
of the imported power system.
-
zones
= None¶ List of all
Topology_NodeBreaker.Zone
-s within the imported CIM files.
-
-
class
Topology_NodeBreaker.
Zone
(id_cim, name='')[source]¶ Repsenets the basic info about a
IEC61970::LoadModel::LoadArea
object from the source CIM file.Warning
The current implementation of the
CIM2Matpower.CIM2Matpower._iterate_prim_eq()
is fine tuned for the RTE CIM data in which there is noIEC61970::LoadModel::LoadArea
objects and because of that instead theIEC61970::Core::SubGeographicalRegion
objects are treated as load Zone-s.-
id
= None¶ An autogenerated ID, subsequent numbering, starting from 1, (integer)
Note
This ID goes in the Matpower
mpc.bus(:,ZONE) struct field.
-
id_cim
= None¶ The unique
mRID
object identifier attribute (string)
-
name
= None¶ The
name
attribute (string)
-