small electric distribution network schematic

CIM Distribution Grid Applications

Derrick Oswald

ESC - overview
S - speaker notes

Distribution Networks

N7 electric distribution network schematic

CIM

Common Information Model (CIM)

CIM Model

sample CIM model classes

Types of Information

types of information included in CIM
Electrical
                    
…
<cim:SwitchInfo rdf:ID="ART4179"> <!-- electrical characteristics -->
    <cim:IdentifiedObject.name>8DJH 24kV</cim:IdentifiedObject.name>
    <cim:IdentifiedObject.aliasName>810:el_int_switch_art</cim:IdentifiedObject.aliasName>
    <cim:IdentifiedObject.description>Gas-Insulated Medium-Voltage Switchgear</cim:IdentifiedObject.description>
    <cim:SwitchInfo.ratedVoltage>24000.0000</cim:SwitchInfo.ratedVoltage>
</cim:SwitchInfo>
<cim:Switch rdf:ID="TEI127390">
    <cim:IdentifiedObject.name>8DJH 24kV</cim:IdentifiedObject.name>
    <cim:IdentifiedObject.aliasName>276857882:el_int_switch</cim:IdentifiedObject.aliasName>
    <cim:IdentifiedObject.description>Switch</cim:IdentifiedObject.description>
    <cim:ConductingEquipment.BaseVoltage rdf:resource="#BaseVoltage_16000"/> <!-- voltage -->
    <cim:PowerSystemResource.Location rdf:resource="#_location_1621079552_427087358_276857884"/>
    <cim:PowerSystemResource.PSRType rdf:resource="#PSRType_Substation"/>
    <cim:PowerSystemResource.AssetDatasheet rdf:resource="#ART4179"/> <!-- info reference -->
    <cim:Equipment.EquipmentContainer rdf:resource="#FEL215886"/>
    <cim:Switch.normalOpen>false</cim:Switch.normalOpen> <!-- state -->
</cim:Switch>
…
                    
                
Spatial
                    
…
<cim:Location rdf:ID="_location_1621079552_427087358_276857884"> <!-- spatial location -->
    <cim:Location.CoordinateSystem rdf:resource="#pseudo_wgs84"/>
    <cim:Location.type>geographic</cim:Location.type>
</cim:Location>
<cim:PositionPoint rdf:ID="_location_1621079552_427087358_276857884_p"> <!-- point location -->
    <cim:PositionPoint.Location rdf:resource="#_location_1621079552_427087358_276857884"/>
    <cim:PositionPoint.sequenceNumber>0</cim:PositionPoint.sequenceNumber>
    <cim:PositionPoint.xPosition>7.22933091967</cim:PositionPoint.xPosition>
    <cim:PositionPoint.yPosition>47.1121810794</cim:PositionPoint.yPosition>
</cim:PositionPoint>
<cim:Switch rdf:ID="TEI127390">
    <cim:IdentifiedObject.name>8DJH 24kV</cim:IdentifiedObject.name>
    <cim:IdentifiedObject.aliasName>276857882:el_int_switch</cim:IdentifiedObject.aliasName>
    <cim:IdentifiedObject.description>Switch</cim:IdentifiedObject.description>
    <cim:ConductingEquipment.BaseVoltage rdf:resource="#BaseVoltage_16000"/>
    <cim:PowerSystemResource.Location rdf:resource="#_location_1621079552_427087358_276857884"/>  <!-- reference -->
    <cim:Switch.normalOpen>false</cim:Switch.normalOpen>
…
                    
                
Topology
                    
…
<cim:Terminal rdf:ID="TEI127390_terminal_1">
    <cim:IdentifiedObject.name>TEI127390_terminal_1</cim:IdentifiedObject.name>
    <cim:ACDCTerminal.sequenceNumber>1</cim:ACDCTerminal.sequenceNumber>
    <cim:Terminal.phases rdf:resource="http://iec.ch/TC57/2016/CIM-schema-cim17#PhaseCode.ABC"/>
    <cim:Terminal.ConnectivityNode rdf:resource="#PIN518369_node"/> <!-- connectivity reference -->
    <cim:Terminal.ConductingEquipment rdf:resource="#TEI127390"/> <!-- equipment reference -->
</cim:Terminal>
…
<cim:ConnectivityNode rdf:ID="PIN518369_node"> <!-- connection -->
    <cim:IdentifiedObject.name>PIN518369</cim:IdentifiedObject.name>
    <cim:IdentifiedObject.aliasName>276857893:el_int_pin</cim:IdentifiedObject.aliasName>
    <cim:IdentifiedObject.description>TEI127390 pin 2</cim:IdentifiedObject.description>
    <cim:ConnectivityNode.ConnectivityNodeContainer rdf:resource="#STA212"/>
</cim:ConnectivityNode>
…
<cim:Terminal rdf:ID="REF201114_terminal_1"> <!-- connection -->
    <cim:IdentifiedObject.name>REF201114_terminal_1</cim:IdentifiedObject.name>
    <cim:ACDCTerminal.sequenceNumber>1</cim:ACDCTerminal.sequenceNumber>
    <cim:Terminal.phases rdf:resource="http://iec.ch/TC57/2016/CIM-schema-cim17#PhaseCode.ABC"/>
    <cim:Terminal.ConnectivityNode rdf:resource="#PIN518369_node"/> <!-- connectivity reference -->
    <cim:Terminal.ConductingEquipment rdf:resource="#REF201114"/> <!-- equipment reference -->
</cim:Terminal>
…
                    
                
Asset
                    
…
<cim:LifecycleDate rdf:ID=TEI127390_lifecycle"> <!-- lifecycle -->
    <cim:LifecycleDate.installationDate>2001</cim:LifecycleDate.installationDate>
</cim:LifecycleDate>
<cim:Asset rdf:ID="TEI127390_asset">
    <cim:IdentifiedObject.name>TEI127390</cim:IdentifiedObject.name>
    <cim:IdentifiedObject.aliasName>276857882:el_int_switch</cim:IdentifiedObject.aliasName>
    <cim:IdentifiedObject.description>Line Switch</cim:IdentifiedObject.description>
    <cim:Asset.type>8DJH 24kV</cim:Asset.type>
    <cim:Asset.lifecycleDate rdf:resource="#TEI127390_lifecycle"/> <!-- lifecycle reference -->
    <cim:Asset.Location rdf:resource="#_location_1621079552_427087358_276857884"/>
    <cim:Asset.PowerSystemResources rdf:resource="#TEI127390"/> <!-- equipment reference -->
</cim:Asset>
…
                    
                

Spark

Apache Spark high level view

Software Stack

Spark software stack

HDFS

Hadoop Distributed File System (HDFS)

RDD

Resilient Distributed Dataset (RDD)

Pair RDD

pair RDD

Transformations and Actions

transformations vs. actions

CIMReader

CIMReader overview

Class Hierarchy

nested CIM class hierarchy

Architecture

CIMApplication architectural overview

GraphX & Pregel

Pregel algorithm

Topological Processing

Topological processing with Pregel

GridLAB-D

GridLAB-D load flow analysis

Load Flow

Solve load flow with GridLAB-D on Spark

Short Circuit

short circuit use-case

Network Parameters

medium voltage network equivalent circuit

Short Circuit Pregel

Short circuit calculation with Pregel

Short Circuit Load Flow

Short circuit calculation with load flow

Maximum Feed In

maximum feed-in use-case

Maximum Feed In Pregel

Maximum feed in calculation with Pregel

Maximum Feed In Load Flow

Maximum feed in calculation with load flow

Simulation

Perform load flow simulation for a time period

Ingest

Smart meter data extract, transform, load to Cassandra

Generate Players

• identify loads using Spark query for EnergyConsumer
• query Cassandra to create “player” files (CSV) for loads from smart meter data
• conversion from energy ⇒ power (×4)
• back shift one 15 minute period
• output time stamp and complex value at 15 minute intervals
• time-series duration based on CIM cadence

Player Query

Spark SQL Query
select
    c.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID mrid,
    'energy' type,
    concat(c.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID, '_load') name,
    t.TopologicalNode parent,
    'constant_power' property,
    'Watt' unit,
    n.TopologicalIsland island
from
    EnergyConsumer c,
    Terminal t,
    TopologicalNode n
where
    c.ConductingEquipment.Equipment.PowerSystemResource.PSRType == 'PSRType_HouseService' and
    c.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID = t.ConductingEquipment and
    t.TopologicalNode = n.IdentifiedObject.mRID
Query Result Fragment
mrid   type   name        parent          property       unit island
HAS160 energy HAS160_load HAS160_topo     constant_power Watt TRA173_terminal_2_island
HAS166 energy HAS166_load HAS166_topo     constant_power Watt TRA161_TRA162_terminal_2_island
HAS23  energy HAS23_load  HAS23_topo      constant_power Watt TRA161_TRA162_terminal_2_island
HAS49  energy HAS49_load  HAS49_fuse_topo constant_power Watt TRA153_terminal_2_island
…
GridLAB-D .glm Fragment
…
object load {
    name "HAS160_load_object";
    parent "HAS160_topo";
    phases AN;
    nominal_voltage 400.0V; };
object player {
    name "HAS160_load";
    parent "HAS160_load_object";
    property "constant_power_A";
    file "input_data/HAS160_load.csv"; };
…

Recorders

• Spark queries for “recorder” files for:
· PowerTransformer (N7) apparent power (VA)
· PowerTransformer (N7) current (A)
· BusbarSection (container PSRType_DistributionBox) voltage (V)
· BusbarSection (container PSRType_DistributionBox) apparent power (VA)
· EnergyConsumer (house service) voltage (V)
· EnergyConsumer (house service) apparent power (VA)
· ACLineSegment (N7) current (A)
• after simulation, read recorders, insert into Cassandra
• aggregate over 1, 3 and 24 hours
• time-to-live, 15 minute values “live” a year, daily values forever

Recorder Query

Spark SQL Query
select
    concat (p.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID, '_power_recorder') name,
    p.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID mrid,
    p.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID parent,
    'power' type,
    'power_out' property,
    'VA' unit,
    n.TopologicalIsland island
from
    PowerTransformer p,
    Terminal t,
    TopologicalNode n
where
    t.ConductingEquipment = p.ConductingEquipment.Equipment.PowerSystemResource.IdentifiedObject.mRID and
    t.ACDCTerminal.sequenceNumber > 1 and
    t.TopologicalNode = n.IdentifiedObject.mRID
Query Result Fragment
name                  mrid   parent        type  property  unit island
TRA168_power_recorder TRA168 TRA168_TRA169 power power_out VA   TRA168_TRA169_terminal_2_island
TRA180_power_recorder TRA180 TRA180        power power_out VA   TRA180_terminal_2_island
…
GridLAB-D .glm Fragment
…
object transformer {
    name "TRA168_TRA169";
    phases AN;
    from "MUI4786_topo";
    to "PIN2448_topo";
    configuration "_1260kVA16000$400V590e-5+396e-4jΩ"; };
object recorder {
    name "TRA168_power_recorder";
    parent "TRA168_TRA169";
    property "power_out_A";
    interval "900";
    file "output_data/TRA168_power_recorder.csv"; };
…

Postprocessing

• events are business rules for “problem” conditions
• include a severity for color coding at the client
• node voltage deviations ±6% at any time, severity 1
• node voltage deviations ±10% at any time, severity 2
• edge current exceeding 75% for 14 consecutive hours, severity 1
• edge current exceeding 90% for 3 consecutive hours, severity 2
• edge current exceeding 110% at any time, severity 2
• transformer power exceeding 75% for 14 consecutive hours, severity 1
• transformer power exceeding 90% for 3 consecutive hours, severity 2
• transformer power exceeding 110% at any time, severity 2
• save events in Cassandra tagged by transformer service area
• coincidence/diversity factor, load factor, responsibility factor

Summary

summary of open source electric distribution grid applications based on CIM
• short circuit analysis
• maximum photo-voltaic feed in limits
• out of limit conditions over time