Overview

Through a series of industry centric meetings and workshops, the U.S. Department of Energy Office of Electricity Delivery and Energy Reliability (DOE-OE) gathered input from utilities throughout the United States on their experiences in implementing, or planning to implement, ADMS. The results of these meetings are documented in a February 2015 report titled Voices of Experience: Insights into Advanced Distribution Management Systems.

The report documents the potential benefits to utilities in implementing ADMS applications, and underscores the need for more affordability, a timely path for deploying ADMS, and the development and deployment of ADMS applications. The high cost and amount of time required for ADMS deployment and application development was highlighted.

In response to these needs, DOE-OE has established an ADMS program with this project specifically tasked with developing an open-source, standards based ADMS application development platform - GridAPPS-D.

Conceptual Design Summary

A conceptual design for GridAPPS-D was created at the beginning of the project. The conceptual design is summarized below. The full design document may be downloaded from this link - GridAPPS-D Conceptual Design

This document provides a high level, conceptual view of the platform and provides related background and contextual information. This document is intended to both educate readers about the technical work of the project and to serve as a point of reference for the project team. The document will be updated as the project progresses.

Architecture

A conceptual architecture for the system has five key functional elements as shown in Figure 1:

  1. Tools help developers enhance the functionality of their applications. Examples might include off-line power flow, optimization tool boxes, state estimators, statistical processing, etc.
  2. I/O allows convenient access to the power system model and data through standards-based queries and messages. Conversely, applications can send control signals to the simulator using standard message schemas.
  3. Development utilities include loggers, debuggers, access control, test managers, user interface toolkits, and other application support functions.
  4. Data bus is based on industry standards like IEC 61968 and 61970 (i.e. the Common Information Model), plus more to be identified.
  5. Distribution simulator represents the power system operating in real time. Initially, this will be GridLAB-D, but future versions may include EPRI’s OpenDSS, ns-3 for communications, and other federated co-simulators.

Figure 1 also shows the relationships between GridAPPS-D, the ADMS application developer and commercial tools. Two different classes of data flow are shown:

  1. Control and configuration data are shown with dashed lines; this allows the application developer to manage the platform.
  2. Data flowing as a part of an application are shown with solid lines.

For more detailed information about the architecture and design, see UML from the Functional Specification

conceptual_design

Figure 1: GridAPPS-D provides a method for developers (top) to run their new applications on a real-time simulator with extensive modeling and tool support (heavy box). GridAPPS-D is built around standard data models like the CIM (center). It readily interfaces to existing software products (right), which may also 1) use components of GridAPPS-D and 2) supplement or replace the built-in distribution simulator (bottom), facilitating the deployment of new ADMS applications to existing software products.

Definition of Terms

Process Manager - Process Manager keeps track of all the processes running on the platform. These processes may include simulators, requests, applications and other managers. It is also the starting point for a request received by the platform.

Configuration Manager - It receives simulation configuration request from Process Manager and parses it to build the necessary configuration files.

Data Manager - The data manager accesses the database to build the model files used by the simulator.

Simulation Manager - The simulation manager launches the simulator and other required applications such as the FNCS bridge, FNCS, and the VoltVar application. It is in charge of managing the timing of the simulation and reporting output from the simulation out to the simulation status topic.

FNCS-GOSS Bridge - Serves as a bridge between FNCS and Simulation Manager.

FNCS - FNCS is a network co-simulator used to communicate between simulator and FNCS-GOSS bridge

Platform - Refers to GridAPPS-D platform.

RC1 - Release Cycle 1.

Simulation - A real world distribution system currently done by GridLAB-D

Simulator - In current release GridLAB-D serves as the simulator.

VoltVar Application -

Vizualization - A web-based visualization application is developed in RC1 to view power system model with real time values from simulation result.

GOSS - Grid Optics Software System is a middleware architecture designed as a prototype future data analytics and integration platform

GridLAB-D - GridLAB-D is a distribution level powerflow simulator. It acts as the real world distribution system in GridAPPS-D.

Power System Model - IEEE 8500 model is used in RC1.

Model - See Power System Model

CIM - Common Information Model is a standard for representing electrical network and exchange information.

References

[CIT1]W. H. Kersting, “Radial distribution test feeders,” in 2001 IEEE Power Engineering Society Winter Meeting. Conference Proceedings (Cat. No.01CH37194), 2001, pp. 908-912 vol.2.
[CIT2]R. F. Arritt and R. C. Dugan, “The IEEE 8500-node test feeder,” in IEEE PES T&D 2010, 2010, pp. 1-6.
[CIT3]M. E. Baran and H. Ming-Yung, “Volt/VAr control at distribution substations,” in IEEE Transactions on Power Systems, vol. 14, pp. 312-318, 1999.
[CIT4]V. Borozan, M. E. Baran, and D. Novosel, “Integrated volt/VAr control in distribution systems,” in 2001 IEEE Power Engineering Society Winter Meeting. Conference Proceedings (Cat. No.01CH37194), 2001, pp. 1485-1490 vol.3.
[CIT5]K. P. Schneider and J. C. Fuller, “Voltage control devices on the IEEE 8500 node test feeder,” in IEEE PES T&D 2010, 2010, pp. 1-6.
[CIT6]I. Gorton et al., “GridOPTICS(TM) A Novel Software Framework for Integrating Power Grid Data Storage, Management and Analysis,” in System Sciences (HICSS), 2013 46th Hawaii International Conference on, 2013, pp. 2167-2176.
[CIT7]S. Ciraci, J. Daily, J. Fuller, A. Fisher, L. Marinovici, and K. Agarwal, “FNCS: a framework for power system and communication networks co-simulation,” in Proceedings of the Symposium on Theory of Modeling & Simulation - DEVS Integrative, Tampa, Florida, 2014, pp. 1-8.
[CIT8]D. P. Chassin, J. C. Fuller, and N. Djilali, “GridLAB-D: An agent-based simulation framework for smart grids,” in Journal of Applied Mathematics, vol. 2014, no. 492320, pp. 1-12, 2014.

Release History

Version: Release Cycle 1 (RC1)

Release Date: May 2017

Version description: This is the first version for internal release of GridAPPS-D platform. This is not ready for public use yet.

Functional requirements covered in this release:

  • 102/202 Command Interface
  • 301 Real-time Simulation Data
  • 310 Hosted Application, but short-cutting the registration process (partial)
  • 401 Distribution Co-Simulator (partial)
  • 402 Process Manager (partial)
  • 404 Data Manager (partial)
  • 405 Simulation Manager (partial)
  • 406 Power System Model Manager (partial)
  • 413 Platform Manager (encapsulating 401 and 403-406)

Version: 2019.01.0

Release Date: January 2019

GridAPPS-D v2019.01.0 release contains following features/updates:

  1. Platform updates:

    • Simulation can run as fast as possible as well as real-time (every 3 seconds)
    • Simulation can run with houses if present in the model.
    • Following components can be controlled while the simulation is running:
      • Open or close capacitors
      • Open or close switches
      • Change tap setting for regulators
      • Changing control modes for regulators
      • Change inverter P & Q output
      • Set control modes for regulators and capacitors
    • Simulation request creates the input weather file.
    • gridappsd-python:
      • (@Craig: list out updates here)
    • cim2glm:
      • Optional house cooling load components
    • Single-phase power electronics and fuse ratings
    • Inverter parameters changed from rotating machines to power electronics
    • Solar and storage
    • Measurements exported to the circuit metadata (JSON file); SimObject identifies the corresponding GridLAB-D object
    • Supplemental scripts to populate feeder with measurements and houses
    • Rotating machines, only parameters essential for the UAF lab microgrid
    • In GridLAB-D export of loads, each node or triplex_node will have separate submeters for houses, PV inverters, battery inverters and rotating machines, i.e., not patterned after net metering
  2. Data updates:

    2.1 Power grid models:

    • Power grid models are stored in blazegraph database in its own docker container.
    • Following models are pre-loaded
      • EPRI_DPV_J1
      • IEEE123
      • IEEE13
      • R2_12_47_2
      • IEEE8500
      • IEEE123_pv
    • User can upload customized model (@Tara: attach readthedocs link)

    2.2 Weather:

    • Weather data in stored in InfluxDB using Proven.
    • InfluxDB has its own docker container with pre-loaded weather data.
    • API added to query weather data.
    • Feature added to create weather file for a simulation
    • Details of pre-loaded weather data in current release: (@Eric: meta-data details please)

    2.3 Simulation Input

    • Simulation input commands sent by applications/services are stored in InfluxDB using Proven.
    • API added to query input data.

    2.4 Simulation Output

    • Output from simulator is stored in InfluxDB using Proven.
    • API added to query output data.

    2.5 Logs

    • API added for query based on pre-defined filters or custom SQL string.
    • Changed logs to have epoch time format.
  3. Applications and Services:

3.1 Viz

  • User can select to run simulation at real-time or as fast as possible
  • User can select to add houses in the simulation
  • User can open or close switches and capacitors by clocking on them
  • Cleaner display of log messages while simulation is running
  • User can query simulation logs after simulation is done.
  • Toggle switches open/close
  • Querying logs through Viz (still working on this)
  • Bug fixes
    • fixed the stomp client in Viz,
    • added missing capacitor labels
    • redirect non-root urls to root (localhost:8080)

3.2 Sample application: (@Craig/Andy: please review/add)

  • Source code at https://github.com/GRIDAPPSD/gridappsd-sample-app
  • Sample app runs in its own container
  • Register with gridapps-d platform when platform start.
  • Re-register automatically if platform restart.
  • Redundant log messages removed.
  • Works with user selected model instead of hard-coded ones.

3.3 State Estimator (TODO: @Andrew)

3.4 RDRD(WSU) (TODO: @Anamika/Shiva)

3.5 DER Dispatch (@TODO: @Jeff)

3.6 VVO (@TODO: @Brandon)

  1. Source Code:
  1. Docker Container:

GridAPPS-D creates and starts following docker containers:

Version: 2019.02.0

Release Date: Feb 2019

  1. Fixed Bugs:
  • PROVEN - It can now store simulation input and output which can scale for IEEE8500 model.
  • PROVEN - It can store data with real-time simulation run.
  • PROVEN - Increased max data limit to unlimited.
  • FNCS Goss Bridge - Corrected the timestamp format in simulation logs.
  1. New Features:
  • Viz - User can query log data from MySQL using Viz menu.
  • Viz - Added menu to operate switches.
  • FNCS GOSS bridge can do execute pause, resume and stop operations for simulation.
  • Update PROVEN docker container for automated builds.
  1. Source Code:
  1. Docker Container:

GridAPPS-D creates and starts following docker containers:

Version 2019.03.0

  1. Bugs Fixed

    • Sending a command to change set point to the PV inverter has no effect.
    • Time series query return no data after simulation run.
    • Viz: Switch operations not working on Firefox browser. Time on x-axis on plots is not displayed correctly.
  2. New Features

    • GridAPPS-D – VOLTTRON initial interface created. https://github.com/VOLTTRON/volttron/tree/rabbitmq-volttron/examples/GridAPPS-DAgent
    • Fault injection: Simulator can receive faults. Fault schema created in Test Manager. Workflow for fault processing documented on readthedocs.
    • Viz: Created menu for capacitors, regulators.
    • Proven: Facilitates direct disclosure of JSON messages to Proven via Hazelcast or REST; eliminating need for the proven-message library. Improved throughput and scalability for Proven’s data disclosure component. Disclosed data is now distributed or staged across the cluster to be used by future JET processing pipelines.
  3. Documentation

    • CIM100 documented
    • Steps added for creating and testing an application
    • Updated documentation on Simulation API
  4. Source Code

Version 2019.06.0

  1. Bugs Fixed

    • Updated configuration, power grid model and simulation API for CIM100 and app evaluation features addition.
    • All logs are being published to topic instead of queue.
    • Fixed TypError bug in gridappsd-sensor-service.
  2. New Features

    • Communication outages: Platform supports input and/or output outage request with simulation for all or some selected power grid components. Outages are initiated and removed at the requested start and end time.
    • Fault injection: Platform can receive faults with simulation request and forwards them to co-simulator.
    • Viz UI updated: Input form added for communication outage and fault parameter selection. Input form moved from single page to separate tabs.
    • CIM version update: Updated CIM version to CIM100. Added support for Recloser and Breaker in model parsing.
    • New methods in Python wrapper: Capability added in gridappsd-python to start, stop and run a simulation directly from python using yaml or json.
    • Sample app container move to Python 3.6 as default. Updated gridappsd-sample-app to use updated container.
    • Debug scripts added: Added scripts in gridappsd-docker to run platform, co-simulator and simulator in separate terminals for debugging purposes.
    • Sensor service in available in gridappsd container by default. Sensor service is no longer required to be added in gridappsd container via docker-compose file.
    • Default log level is changed from DEBUG to ERROR for limiting the amount of log messages on terminal.
    • Breaking API change - Simulation input and output topics changed in gridappsd-python from FNCS_INPUT_TOPIC to SIMULATION_INPUT_TOPIC and FNCS_OUTPUT_TOPIC to SIMULATION_OUTPUT_TOPIC.
    • Breaking API change - Simulation request return a json with simulation id and list of events with their uuids instead of just simulation id.
  3. Documentation

    • Using GridAPPS-D documentation section updated for new UI input form with communication outages and faults selection.
  4. Source Code

Version 2019.07.0

  1. Bugs Fixed

    • Time series query filter are updated in the API as well documentation.

    • Selecting houses is now working with the simulation.

    • Following bugs resolved for Viz

      • Line name is not based on previously selected values.
      • Removing a selected app-name closes input form
      • Change Event Id to Event tag
      • Change attribute to a multi-value select box
      • Help-text ‘Add input item’ does not go away on CommOutage tab
      • Object mrid is not correct for multiple phases selection.
    • Pos added for load break switches

  2. New Features

    • Platform now stores input and output from services and applications output/input in time series data store.

    • Simulation can run with new 9500 node model

    • Support for synchronous machines added in CIM model in blazegraph.

    • End-to-end fault injecting and processing pipeline is now working.

    • Powergrid api added to query object id, object dictionary and object measurements.

    • New keys added in glm file to support faults.

    • Viz can display plot for new 9500 model.

    • Added log api in gridappsd-python

    • Measurement for switch positions for all models

    • Explicit setting for manual mode in reg and capacitora in the RegulatingControl.mode attribute.

    • GridAPPS base constainer has folowwing changes

      • Switch to openjdk
      • New version of fncs
      • CZMQ_VERSION changeed to 4.2.0
      • ZMQ_VERSION changes to 4.3.1
      • GridLAB-D switched from feature/1146 to develop
  3. Source Code

Version 2019.08.0

  1. New Features

    • Viz added capability to select power/voltage/tap measurments for custom plotting
    • Control attributes are back for Capacitors
    • Added Voltage Violation service that publishes list of measurement ids with per unit voltages that are out of range every 15 minutes
    • Viz added display for Voltage Violation service output
    • Viz can display Lot/Long coordinated for 9500 node model.
    • Breaking Change: JSON format for timeseries query response is flattend out
    • Resolved 500 Internal server error for storing simulation input.
    • Houses are created and uploaded to Blazegraph for 123 node model
    • Additonal column process_type added for logs to distinguish process id for simulation
  2. Source Code

Contact Us

GridAPPS-D team can be reached at gridappsd@pnnl.gov