Introduction
Modern electric power distribution systems offer an abundance of data, and distributed energy resources (DER) and distribution automation are growing. Distribution utilities would benefit from an improved ability to take action on this data. However, a traditional distribution management system (DMS) is typically isolated from, or at best loosely coupled with, related systems such as distributed energy resource management (DERMS), supervisory control and data acquisition (SCADA), outage management systems (OMS), geographic information systems (GIS), advanced metering infrastructure (AMI), customer information systems (CIS), meter data management systems (MDMS), and fault location, isolation, and service restoration (FLISR). To take advantage of distribution automation and manage growing penetrations of DER, distribution utilities need an integrated approach, with applications for distribution system planning, operations, management, and control that use all available data and may incorporate distributed approaches to operations and control [1]. The industry refers to software platforms that integrate multiple systems as advanced distribution management systems (ADMS). Unfortunately, distribution utilities have faced high costs to implement and integrate ADMS and related applications [2]. These high costs have limited the deployment of such systems to large utilities. Developing and deploying advanced distribution system planning, operations, and management applications based on a common platform design would make them more broadly applicable and also interchangeable, which would benefit the entire industry.
This paper describes an approach to enabling cost-effective development and deployment of advanced applications for distribution system planning and operations. This approach is based on development of an open-source, standards-based platform for application development called GridAPPS-D [3], [4]. A key objective for GridAPPS-D is to reduce the time and cost required to develop, integrate, and deploy advanced applications.
An element of this approach is to define data abstractions for application development based on interoperability standards such as the Common Information Model (CIM) [5], [6]. This standards-based approach will support wide adoption of these capabilities and interchangeability of the applications.
Effective application of the standards-based approach is required to achieve the desired outcomes. In particular, in order to support the ability to develop applications that may be run for a variety of distribution system networks, an efficient means of referencing and interacting with the network model must be provided. The paper gives a summary of the challenges inherent to using relational database systems to store network models, followed by a description of how more appropriate database technology in the form of a “triple-store” database [7], [8] is used to overcome these challenges. Consideration of other NoSQL [9] database technology to support compound queries that can associate simulation results with reference network models based on the distribution system common information model (CIM, ISO/IEC 61968 and 61970) [5], [6] is also discussed.
We then describe the expected benefits of the advanced, data rich, data-driven applications, discuss the application of the GridAPPS-D platform to develop such applications, and conclude with a summary.
Approach – the Use of Standards-Based Data Abstractions, Well-Defined Data Exchange Mechanisms, and Triple-Store Database Technology
A. GridAPPS-D Structure
GridAPPS-D has been designed to address the challenges outlined in the previous section. It is designed to provide a services-based platform supporting the development of applications. GridAPPS-D is being implemented as an open-source system, providing a reference architecture and implementation that can be used by others in implementing similar application development tools or in adapting existing systems or creating new ones for operational deployment of applications that comply with our approach.
The conceptual architecture for GridAPPS-D is shown in Fig. 1. The figure depicts the logical functionality and architecture of GridAPPS-D. The application of standards-based data abstractions and data exchange mechanisms described in the previous section is included in the I/O box and in the data bus.
Other features of the platform include data management of network models, related information, and time-series data. Co-simulation is used so that application developers can simulate a variety of distribution system behaviors. “Data Ingest” provides the ability to exchange data with existing systems such as energy management systems (EMS), distribution management systems (DMS), outage management systems (OMS), geographic information systems (GIS), data historians, and so forth. A provision is included for access to tools such as optimizers. Finally, the ability to configure the platform is supported. This paper focuses on the features that are being implemented to support the use of CIM-based models, which enables the standardization of the application developer’s data model and data exchange. More details on the objectives and functionality of GridAPPS-D are available in its conceptual design [3].
B. Standards-Based Abstractions
A key design objective for the GridAPPS-D platform is to enable development of advanced distribution system planning or operations applications that can be deployed at multiple utilities within different vendor systems and require minimal time and cost to integrate into the user’s environment—in other words, portable applications [3]. To facilitate this, the platform is to be standards-based to the greatest extent possible.
To achieve these objectives, the CIM and similar standards such as MultiSpeak® [10] were used, taking advantage of their information models and data abstractions to define the data abstractions used by application developers. Use of the CIM provides a consistent means of specifying system models and well-defined information models that support messaging within the system. The CIM specification makes use of the Unified Modeling Language (UML) [11]. UML enables developers to specify, visualize, construct, and document artifacts such as data structures, software interactions, and use cases. The CIM uses UML to produce non-technology-specific specifications. These specifications serve two purposes for CIM: (1) semantically, they provide a human interface that clearly defines transmission and distribution system concepts that can be understood by application developers; (2) syntactically, CIM and UML act as blueprints that provide the basis for actual physical implementations of data structures and software interactions in applications, services, and database systems.
When the data models and abstractions are combined with a well-defined data exchange mechanism, application developers will be able to write portable applications with minimal integration cost as long as the target systems also adopt the data models and data exchange mechanism.
C. The Query Challenge
The use of a specified data exchange mechanism and standards-based data models and abstractions is not sufficient to enable portable applications. One must also consider the mechanism for applying the data models and abstractions to reference data in the target distribution system. Referencing objects and data in the target system is a form of querying the network model and the corresponding messages between network components. For an application to be portable, it must be able to make references that can be acted on for any network model that has components and data operated on by the application.
Historically, CIM-based network models have generally been managed in relational databases and queried through complex Structured Query Language (SQL). Unfortunately, relational structures make logical networks difficult to naturally represent [12], causing additional overhead to manage complex concepts and connectivity. The problem is compounded when highly sophisticated relational (SQL) queries must be developed to perform graph traversal and pattern discovery using large numbers of joins across CIM concepts. The object-class hierarchy of the network model is decomposed into numerous linked relational tables. Special query-building tools are then used to interact with the model using the exchange format queries and exchanged using CIM XML, a variation of the Resource Descriptive Framework schema (RDFS) that depicts class associations and aggregation structures in graph form and simplifies class inheritance by prefixing inherited properties with parent class names [13]. In its native form, client libraries are used to support queries of the CIM XML model.
However, the use of relational database technology is an impediment to enabling development of portable applications, so alternative approaches were explored that support more direct querying and management of network models.
Enabling Development of Portable Applications
A. Matching Database Technology to the Problem
As mentioned, GridAPPS-D is designed to support the development of advanced, data-driven distribution system management and/or planning applications that take advantage of the data-rich environment expected in modernized electric power distribution systems. In addition, these applications are intended to be portable, that is, able to be easily deployed on any vendor system or infrastructure that supports the data abstraction, data model, and data exchange mechanism defined by the GridAPPS-D reference architecture and implementation.
The application developer, then, uses the GridAPPS-D data abstractions and messages to make references to components of the network model, data exchanged between components of the network model, and changes to settings of those components. The structure of these references follows the RDFS form of subject-predicate-object—in other words, triples. This form naturally matches the capabilities of triple-store and graph database technology [14]. The use of a triple-store database technology for network models coupled with a hybrid time-series store [15] frees the application developer from having to know in advance the details of the specific network model. In effect, the application is able to adapt itself to the specific network model.
The selection of triple-store technology was based on a formal evaluation of the benefits and performance of three database technologies: conventional relational database management system (RDBMS) technology, an open-source graph database, and an open-source triple-store database. The details of this evaluation are included in [16] and summarized in Table 1. In the table, white indicates that the technology did not meet the requirement, light shading that the requirement was partially met, and dark shading that the requirement was fully met. Triple-store technology was chosen, allowing the CIM XML reference model to be managed and queried in its native format and eliminating the overhead of representing and querying reference model graph data in RDBMS form.
A key point of the triple-store approach is the ability to directly specify data via the object–attribute–value statements in code, using the SPARQL query language. In contrast, the use of RDBMS technology requires a query-building mechanism that must be regenerated for each individual network model, thus impeding the portability of the applications.
B. Triple-Store Use Case – Transformer
Use of the triple-store approach is illustrated by considering an interaction with a single-phase, center-tapped secondary transformer component, as shown in Fig. 2. There are hundreds (or even thousands) of these on most radial distribution feeders. Compared to the balanced three-phase transformers commonly found in transmission applications of the CIM, this example is more complicated in many respects:
There is one phase on the primary (A, B, or C) and two on the secondary (s1, s2), plus the neutral (N).
There are three windings, but none of them are delta or wye. Instead, they are individual phase connected (Iii).
The secondary center tap is connected to neutral, which creates 240 volts between s1 and s2 for larger loads and DERs. The polarity of s1’s winding is opposite from that of s2, and this must be accounted for in the CIM.
These transformers are purchased and stocked in bulk, so the ratings and impedances are stored in a catalog of data. The catalog increases efficiency and helps to enforce accuracy and consistency in the models.
Circuit diagram and photo of the common single-phase center-tapped secondary service transformer.
Tank-level transformer modeling and the AssetInfo pattern in CIM provide the flexibility needed to represent single-phase service transformers. Fig. 3 shows the UML instance diagram of a transformer connected to phase C of a bus (i.e., ConnectivityNode in CIM). The transformer has three windings (i.e., Ends in CIM), each connected to its own terminal, and the TransformerTankEnd instances carry the phasing information for transformer tank modeling. (See [16] for CIM unbalanced line examples, which use a different phasing pattern). The primary Terminal connects to the primary ConnectivityNode, while both secondary Terminals connect to the secondary ConnectivityNode. The transformer catalog voltages and polarities appear near the bottom of Fig. 3. It is essential that endNumber values for each TransformerTankEnd match those of the corresponding TransformerEndInfo. There are other catalog attributes not shown in Fig. 3, but it is important to note the phaseAngleClock value of 6 for endNumber 3. This reverses the polarity of windings connected to s2 in Fig. 2.
UML instance diagram for a service transformer on phase C, referencing catalog data.
Fig. 4 through Fig. 7 illustrate a four-query process of retrieving all the service transformer data. Each such illustration shows a portion of the CIM UML class diagram to the left, a SPARQL query to the upper right, and a snippet of output to the lower right. A SPARQL query consists of triples that act to filter results from the database. Each triple selects a type (i.e., CIM class), an attribute value, or an association (i.e., a link on the UML diagram). Each color on these illustrations matches a feature of interest on the UML diagram with a SPARQL triple that filters on that feature. SPARQL syntax is similar to that of SQL, but usage for CIM is much simpler because JOIN clauses or supplemental tables are not needed for polymorphic associations. SPARQL queries can be written only using the UML, which serves as the database schema. The order of triples does not matter, except for some performance differences if the database does not automatically optimize queries.
The four query steps are
Retrieve the catalog volt-ampere and voltage ratings, with corresponding endNumber, phaseAngleClock, and winding resistance values, as shown in Fig. 4. These are grouped in three rows per tank; a 75-kVA tank is shown in the output. The DESC clause is used here only to sort the output from a large database so that the 75-kVA tank appears first. There are only two CIM classes involved in this query.
Retrieve the catalog no-load test data (Fig. 5). This is a shorter query but involves three CIM classes. Normally, the CIM units are SI, but this query actually models the transformer test report, not the transformer itself. The no-load loss units are kW, and the exciting current units are percent. This query is agnostic to the no-load test winding, but it could return more than one row, unexpectedly, if there is more than one no-load test per transformer.
Retrieve the catalog short-circuit test data (Fig. 6). This models another test report, so the units of loss are kW and the units of impedance are percent. Because these are three-winding transformers, we expect three pairwise short-circuit test results, which do appear in Fig. 6.
Connect the transformer to the circuit with proper phasing, and reference the proper catalog data (Fig. 7). For transformer tank modeling, the CIM Terminal phases attribute must be ignored, and it is crossed out at the upper left of Fig. 7. Line 17 of the SPARQL matches the instance end with the catalog endNumber, which is essential if we need the correct winding rating information for this output. In this example, we show how to retrieve the system nominal voltage instead of the winding rated voltage. These can be different; e.g., a 12.5-kV transformer on a 12.47-kV system. As displayed in Fig. 7, the xfmrcode and enum values point to the correct catalog values for this instance.
Step 3: Retrieving short-circuit test data for catalog entries; both ends have to match.
This example is probably the most complicated of those used in GridAPPS-D for distribution power flow modeling. The queries could be partitioned differently, depending on the application’s needs. Fig. 4 through Fig. 7 are convenient for the simulators used in GridAPPS-D [17], [18], and for explanation here. A Java component of GridAPPS-D traverses the SPARQL result sets to write the input data for the simulator such as GridLAB-D. Support for multiple simulators is planned.
Evaluating the Benefits of Advanced Applications
In parallel with establishing an approach to developing advanced applications, a way to evaluate the potential benefits of such applications was also considered [19]. The evaluation process was treated as a test of the hypothesis that the advanced applications will provide measurable benefits as compared to conventional applications using limited data.
Twelve applications are being developed for evaluation. These applications are summarized in Table 2. They include “end-use” applications intended for application in utility operations and “service” applications that provide capabilities for use by other applications. The functional requirements for GridAPPS-D explicitly recognize the possibility of both types of applications. The design of the platform supports interaction between applications.
Many applications in Table 2 perform overlapping functions. For example, two perform volt-var control, and several incorporate or adapt load forecasting. This overlap exemplifies one motivation for the platform: to foster the development of novel applications that use untried methods on real circuits. Naturally, some of these competing applications will prove more widely applicable than others. A utility should be able to mix-and-match applications to suit their needs.
Applications may be developed in C/C++, Java, MATLAB, or Python (most developers are using Python for the Table 2 examples). In addition, several services are provided for application developers:
SPARQL query access to the database (Section III).
State estimator voltage, current, switch, and tap outputs.
Circuit visualization with marking, labeling, and strip chart outputs.
Parameter configuration at start-up, and graphical user interface (GUI) forms to collect a limited number of user run time inputs.
Test case scripting and logging.
Access to time-series data.
Several installed toolkits, e.g., the simulators GridLAB-D and OpenDSS as services, and NumPy, SciPy, MySQL, VOLTTRON, and MATLAB as run time capabilities.
Open-source optimization solvers such as Bonmin, IPOPT, and SCIP.
Open-source machine learning package, e.g., LIBSVM.
Note that the tools listed in items 7, 8, and 9 are examples and may or may not be distributed with GridAPPS-D. When not distributed with the platform, the user would have to install those toolkits separately, paying any required license fees, before the dependent application(s) could run. Software dependencies are important considerations for an application developer, in planning the transition from research to production.
Applying the Platform
GridAPPS-D currently runs in a Linux virtual machine (VM). Although it can be built from sources, the primary form of distribution is as a set of Docker containers [20]. Users can install the Docker infrastructure on their computer and then download the Docker containers. Several platform usage scenarios are then feasible:
Start and run the application through its browser interface. Utilities could use the platform this way to evaluate new applications, or to evaluate applications on their own circuits. The App Hosting Manager allows a user to install and configure new applications to run in the platform, by modifying configuration files but without having to write new code. GridAPPS-D will also be able to ingest any distribution circuit provided in CIM format.
Write scripted scenarios and responses using the Test Manager, and run those through GridAPPS-D. This mode can be used for a more rigorous evaluation, and also for operator training.
Write a new application, using one of the open-source examples as a template. This mode should provide a faster on-ramp for application developers to develop a standards-compliant product.
DMS vendors can use the platform to develop and test their own standards-compliant interfaces. Any GridAPPS-D code may be incorporated into a commercial product, pursuant to its BSD license terms. The goal is for an application to be deployable from one platform to another, simply by moving the program file(s) and updating local configuration files.
Summary
GridAPPS-D [4] is an open-source, standards-based platform built to support the development of a wide range of advanced, data-driven applications for electric power distribution system operations and planning. Through a well-defined data model, abstraction, and exchange mechanism, the platform offers the possibility of portable applications that can be deployed with less time and cost than ones custom-built for each system.
In implementing GridAPPS-D, a new approach to managing standards-based network models and messaging was employed: a combination of database management technologies with triple-store technology at the core. This novel approach has been shown to provide the basis for application portability and for improved management of CIM-based network models.
GridAPPS-D should enable the industry to begin to transition to development of portable applications that can be deployed within any operational environment that supports the GridAPPS-D programming model. This will enable utilities of all sizes to select affordable planning and operations applications that meet their individual needs. As a reference architecture and implementation, GridAPPS-D provides a starting point for vendors and other interested parties to apply the potential of portable applications as they develop new products and services or adapt existing offerings. It also provides a common platform for future research and development of advanced distribution system planning, operations, management, and control applications. The source code and documentation are available at https://github.com/GRIDAPPSD/GOSS-GridAPPS-D and http://gridappsd.readthedocs.io/en/latest.