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 !

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 either IEC61970::Wires::ACLineSegment or IEC61970::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. For PowerTransformer-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. For PowerTransformer-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 Matpower mpc.gen field.

fuel_type = None

The FossilFuel.fossilFuelType attribute (string) of the ThermalGeneratingUnit 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‘s discrete attribute (integer)

RC_mode = None

The RegulatingControl‘s mode attribute (string)

RC_targetRange_kV = None

The RegulatingControl‘s targetRange attribute (kV)

RC_targetValue_kV = None

The RegulatingControl‘s targetValue 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 and IEC61970::Wires::StaticVarCompensator are not yet implemented! See the source code of CIM2Matpower.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 the Topology_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)

areas = None

List of all Area-s within the imported CIM files.

branches = None

List of all Topology_NodeBreaker.Branch-es within the biggest TopologicalIsland of the imported power system.

generators = None

List of all Topology_NodeBreaker.Generator-es within the biggest TopologicalIsland of the imported power system.

loads = None

List of all Topology_NodeBreaker.Load-es within the biggest TopologicalIsland of the imported power system.

nodes = None

List of Node-s within the biggest TopologicalIsland of the imported power system.

phasetapchangers = None

List of all Topology_NodeBreaker.PhaseTapChanger-s within the biggest TopologicalIsland of the imported power system.

ratiotapchangers = None

List of all Topology_NodeBreaker.RatioTapChanger-s within the biggest TopologicalIsland of the imported power system.

shunts = None

List of all Topology_NodeBreaker.Shunt-es within the biggest TopologicalIsland of the imported power system.

substations = None

List of Topology_NodeBreaker.Substation-s within the biggest TopologicalIsland of the imported power system.

switches = None

List of all Topology_NodeBreaker.Switch-es within the biggest TopologicalIsland 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 no IEC61970::LoadModel::LoadArea objects and because of that instead the IEC61970::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)