IEEE Electrification Magazine - March 2016 - 30

After the stop time of the simulation is reached, the simulation loop will end. The stop_bus function will stop any
associated processes/files used by the Bus object (e.g., stop
the GridLAB-D process in the case of a GridLAB-D bus). Once
the main simulation loop ends and Bus is stopped, it may
be useful to perform postprocessing with the cosimulator,
such as visualization of the time-series output.

1: Bus = load_bus(input_file)
2: cosimulator.initialize()
3: Bus.start_bus()
4: repeat
5:
bus_inputs = cosimulator.optimize()
6:
bus_outputs = Bus.transaction(bus_inputs)
7:
cosimulator.process(bus_outputs)
8: until Bus.finished
9: Bus.stop_bus()
10: cosimulator.postprocess()

Putting It all Together: IGMS

ISO

FESTIV:
ISO Markets,
UC and AGC
FESTIV Run Time
Plug-in

Transmission

Scenario Automation

Figure 11. Bus.py pseudocode with an abstract cosimulator process.

MATPOWER
Transmission/Bulk:
ac Powerflow, Volt/Var
ZeroMQ
IGMS-Interconnect
Bus Aggregator

Building
Appliance

Alternate
Distribution Model
Timeseries, Etc.

GRIDLab-D
Distribution Powerflow,
Home and Appliance HTTP
Physics

GRIDLab-D
Distribution Powerflow,
Home and Appliance HTTP
Physics
GRIDLab-D
Distribution Powerflow,
Home and Appliance HTTP
Physics

Bus Aggregator
Bus.py Bus.py

Distribution

MPI
Bus Aggregator
Bus.py Bus.py

Figure 12. The IGMS HPC-enabled cosimulation environment.

Each iteration of the loop represents one time step in
the simulation. The basic order of operations at time
step t is: 1) obtain the inputs to the Bus for time step t
from the cosimulator, 2) perform a transaction with
Bus, and 3) process the outputs of Bus using the cosimulator. The transaction function passes the inputs to
the Bus, steps time forward, and returns the specified
outputs. For GridLAB-D, this will 1) send key-value pairs
(e.g., customer1.load = 10 kW) to GridLAB-D using HTTP,
2) step GridLAB-D forward one simulation time step,
and 3) request and return the GridLAB-D simulated output (e.g., substation power). The single transaction
function simplifies the communication with GridLAB-D
to present a powerful cosimulation tool.

30

I E E E E l e c t r i f i cati o n M agaz ine / March 2016

IGMS is an HPC-enabled cosimulation environment that
focuses on bulk power market and technical operation
impacts of distributed energy resources developed at NREL.
Specifically, IGMS simulates thousands of individual distribution systems under the purview of an ISO with detailed market operation and automatic generator control (AGC)-level
reserve deployment. The thousands of distribution systems
are simulated using GridLAB-D and interfaced using the Bus.
py tool to the bulk power level, simulated using a combination of MATPOWER and Flexible Energy Scheduling Tool for
Integration of Variable Generation (FESTIV), a model of the
bulk power market with an accurate day-ahead and real-time
unit commitment and economic dispatch model, including
AGC control. The IGMS hierarchical framework, presented in
Figure 12, mirrors the structure of the power grid with a set of
integrated bulk-level models interacting with thousands of
distribution feeder models. Initial studies using IGMS hint at
the need for cosimulation to determine the potential impacts
and interaction of increasingly widespread distributed energy
resources with the bulk power system.

case Studies
To showcase the usefulness of cosimulation, two case studies
are presented, both using an aggregator-based residential
demand-response program (given in Figure 13) and Bus.py
interacting with GridLAB-D. On the right-hand side of Figure
13 is the traditional power system and market structure
depicting the ISO to the distribution system operator (DSO)
for delivering electricity to the residential customer. The lefthand side of Figure 13 summarizes the residential demandresponse program. The demand-response exchange (DRX) is
an ancillary market in a fully deregulated market structure
that provides demand-response services to the ISO. The
aggregator is a for-profit market entity engaged in interacting
with the customer and the bulk power market in a fully
deregulated market structure. The aggregator coordinates a
set of participating customers, each with a set of smart grid
distributed energy resource assets, and brings the result (e.g.,
load reduction) to the DRX for market exchange.
The first illustrative example involves peak-load minimization through load shifting using Bus.py. The resulting substation
apparent power throughout the simulation period is presented
in Figure 14. Because the objective function in the optimization
problem was peak reduction, the peak load between 3:00 and
6:00 p.m. is shown in more detail in the inset of Figure 14. The
solid blue line represents the baseline load of the system (i.e.,
the system load in the absence of the aggregator demand


http://www.Bus.py http://www.Bus.py http://www.Bus.py http://www.Bus.py http://www.Bus.py http://www.Bus.py http://www.Bus.py

Table of Contents for the Digital Edition of IEEE Electrification Magazine - March 2016

IEEE Electrification Magazine - March 2016 - Cover1
IEEE Electrification Magazine - March 2016 - Cover2
IEEE Electrification Magazine - March 2016 - 1
IEEE Electrification Magazine - March 2016 - 2
IEEE Electrification Magazine - March 2016 - 3
IEEE Electrification Magazine - March 2016 - 4
IEEE Electrification Magazine - March 2016 - 5
IEEE Electrification Magazine - March 2016 - 6
IEEE Electrification Magazine - March 2016 - 7
IEEE Electrification Magazine - March 2016 - 8
IEEE Electrification Magazine - March 2016 - 9
IEEE Electrification Magazine - March 2016 - 10
IEEE Electrification Magazine - March 2016 - 11
IEEE Electrification Magazine - March 2016 - 12
IEEE Electrification Magazine - March 2016 - 13
IEEE Electrification Magazine - March 2016 - 14
IEEE Electrification Magazine - March 2016 - 15
IEEE Electrification Magazine - March 2016 - 16
IEEE Electrification Magazine - March 2016 - 17
IEEE Electrification Magazine - March 2016 - 18
IEEE Electrification Magazine - March 2016 - 19
IEEE Electrification Magazine - March 2016 - 20
IEEE Electrification Magazine - March 2016 - 21
IEEE Electrification Magazine - March 2016 - 22
IEEE Electrification Magazine - March 2016 - 23
IEEE Electrification Magazine - March 2016 - 24
IEEE Electrification Magazine - March 2016 - 25
IEEE Electrification Magazine - March 2016 - 26
IEEE Electrification Magazine - March 2016 - 27
IEEE Electrification Magazine - March 2016 - 28
IEEE Electrification Magazine - March 2016 - 29
IEEE Electrification Magazine - March 2016 - 30
IEEE Electrification Magazine - March 2016 - 31
IEEE Electrification Magazine - March 2016 - 32
IEEE Electrification Magazine - March 2016 - 33
IEEE Electrification Magazine - March 2016 - 34
IEEE Electrification Magazine - March 2016 - 35
IEEE Electrification Magazine - March 2016 - 36
IEEE Electrification Magazine - March 2016 - 37
IEEE Electrification Magazine - March 2016 - 38
IEEE Electrification Magazine - March 2016 - 39
IEEE Electrification Magazine - March 2016 - 40
IEEE Electrification Magazine - March 2016 - 41
IEEE Electrification Magazine - March 2016 - 42
IEEE Electrification Magazine - March 2016 - 43
IEEE Electrification Magazine - March 2016 - 44
IEEE Electrification Magazine - March 2016 - 45
IEEE Electrification Magazine - March 2016 - 46
IEEE Electrification Magazine - March 2016 - 47
IEEE Electrification Magazine - March 2016 - 48
IEEE Electrification Magazine - March 2016 - 49
IEEE Electrification Magazine - March 2016 - 50
IEEE Electrification Magazine - March 2016 - 51
IEEE Electrification Magazine - March 2016 - 52
IEEE Electrification Magazine - March 2016 - 53
IEEE Electrification Magazine - March 2016 - 54
IEEE Electrification Magazine - March 2016 - 55
IEEE Electrification Magazine - March 2016 - 56
IEEE Electrification Magazine - March 2016 - 57
IEEE Electrification Magazine - March 2016 - 58
IEEE Electrification Magazine - March 2016 - 59
IEEE Electrification Magazine - March 2016 - 60
IEEE Electrification Magazine - March 2016 - 61
IEEE Electrification Magazine - March 2016 - 62
IEEE Electrification Magazine - March 2016 - 63
IEEE Electrification Magazine - March 2016 - 64
IEEE Electrification Magazine - March 2016 - Cover3
IEEE Electrification Magazine - March 2016 - Cover4
https://www.nxtbook.com/nxtbooks/pes/electrification_december2022
https://www.nxtbook.com/nxtbooks/pes/electrification_september2022
https://www.nxtbook.com/nxtbooks/pes/electrification_june2022
https://www.nxtbook.com/nxtbooks/pes/electrification_march2022
https://www.nxtbook.com/nxtbooks/pes/electrification_december2021
https://www.nxtbook.com/nxtbooks/pes/electrification_september2021
https://www.nxtbook.com/nxtbooks/pes/electrification_june2021
https://www.nxtbook.com/nxtbooks/pes/electrification_march2021
https://www.nxtbook.com/nxtbooks/pes/electrification_december2020
https://www.nxtbook.com/nxtbooks/pes/electrification_september2020
https://www.nxtbook.com/nxtbooks/pes/electrification_june2020
https://www.nxtbook.com/nxtbooks/pes/electrification_march2020
https://www.nxtbook.com/nxtbooks/pes/electrification_december2019
https://www.nxtbook.com/nxtbooks/pes/electrification_september2019
https://www.nxtbook.com/nxtbooks/pes/electrification_june2019
https://www.nxtbook.com/nxtbooks/pes/electrification_march2019
https://www.nxtbook.com/nxtbooks/pes/electrification_december2018
https://www.nxtbook.com/nxtbooks/pes/electrification_september2018
https://www.nxtbook.com/nxtbooks/pes/electrification_june2018
https://www.nxtbook.com/nxtbooks/pes/electrification_december2017
https://www.nxtbook.com/nxtbooks/pes/electrification_september2017
https://www.nxtbook.com/nxtbooks/pes/electrification_march2018
https://www.nxtbook.com/nxtbooks/pes/electrification_june2017
https://www.nxtbook.com/nxtbooks/pes/electrification_march2017
https://www.nxtbook.com/nxtbooks/pes/electrification_june2016
https://www.nxtbook.com/nxtbooks/pes/electrification_december2016
https://www.nxtbook.com/nxtbooks/pes/electrification_september2016
https://www.nxtbook.com/nxtbooks/pes/electrification_december2015
https://www.nxtbook.com/nxtbooks/pes/electrification_march2016
https://www.nxtbook.com/nxtbooks/pes/electrification_march2015
https://www.nxtbook.com/nxtbooks/pes/electrification_june2015
https://www.nxtbook.com/nxtbooks/pes/electrification_september2015
https://www.nxtbook.com/nxtbooks/pes/electrification_march2014
https://www.nxtbook.com/nxtbooks/pes/electrification_june2014
https://www.nxtbook.com/nxtbooks/pes/electrification_september2014
https://www.nxtbook.com/nxtbooks/pes/electrification_december2014
https://www.nxtbook.com/nxtbooks/pes/electrification_december2013
https://www.nxtbook.com/nxtbooks/pes/electrification_september2013
https://www.nxtbookmedia.com