Integrated Applications¶
Voltvar Optimization (VVO)¶
The sample VVO application is a Python implementation of a heuristic method that PNNL has investigated before [CIT3], [CIT4], [CIT5]. There are more advanced VVO methods that could be implemented in future applications.
Visualization¶
We have created a webbased visualization of the sample VVO application. The visualization displays the topology of the IEEE 8500Node system as an interactive graph. Capacitors and regulators are highlighted in the graph and displayed alongside tables with current values for capacitor status (OPEN or CLOSED), regulator voltage, and feeder power.
PNNL Applications (Release Cycle 2)¶
State Estimator¶
Objectives¶
State estimation is widely used in transmission system operations but is less common in distribution system operations due to a relatively limited value in traditional distribution systems, additional computational complexity, and a lack of sensors. Advanced distribution management platforms like GridAPPSD provide access to model and sensor data that can be leveraged to overcome barriers to adoption and open the door to distribution system state estimators that are fast and accurate enough to be useful in utility operations.
A distribution system state estimator computes the most likely state given a set of present and/or past measurements. The full state of a distribution system consists of either the full set of complex bus voltages or the full set of complex branch currents; given the system model (admittance matrix), the remaining system parameters can be computed given the full system state.
Use Cases¶
 Assist power factor optimization: Utility objective is unity powerfactor at the substation.
 Assist voltage optimization (planning): Utility objective is 1 p.u. voltage at last house primary.
 Realtime state estimation for advanced applications: applications can access the state estimate at a sufficient resolution to capture e.g. insolation variation caused by clouds.
Distribution System State Estimation Algorithms¶
State estimation uses system model information to produce an estimate of the state vector x given a measurement vector z. The measurement vector is related to the state vector and an error vector by the measurement function, which may be nonlinear.
Multiple formulations of the distribution system state estimation problem are possible:
 Node Voltage State Estimation (NVSE): The state vector consists of node voltage magnitudes and angles for each node in the system (one reference angle can be eliminated from the state vector). This formulation of the state estimation problem is general to any topology and it is the standard for transmission system state estimation.
 Branch Current State Estimation (BCSE): Radial topology and assumptions about shunt losses create a linear formulation of the state estimation problem. The state vector contains branch currents and, for a fullyconstrained problem, requires one state per load, which can be less than the number of branches in the system.
Different algorithms provide different advantages for distribution system state estimation. A subset of the state estimation algorithms below will be used to achieve these goals.
 Weighted Least Squares Estimation (WLSE): a concurrent set of measurements are used to find a state vector that minimizes the weighted least squares objective function. The algorithm is memoryless with respect to previous solutions and measurements should be synchronized.
 Kalman Filter Estimation (KFE) and Extended Kalman Filter Estimation (EKFE): The Kalman filter provides a mechanism to consider past state estimates alongside present measurements. This provides additional noise rejection and allows asynchronous measurements can be considered individually. KFE is appropriate for linear BCSE and EKFE is compatible with nonlinear NVSE.
 Unscented Kalman Filter Estimation (UKFE): The unscented transform estimates the expected value and variance of the system state by observing the system outputs for inputs spanning the full dimensionality of the measurement space. Again, the Kalman filter provides a mechanism to consider past estimates.
TRL¶
The state estimator application will provide the capability to estimate the full system state using asynchronous measurement data. In addition a model order reduction technique will be implemented to greatly speed up the state estimation computation and to reduce the dependence on forecastbased pseudomeasurements. A paper (ReducedOrder State Estimation for Power Distribution Systems with Sparse Sensing) is targeted for IEEE Transactions on Power Systems.
Design¶
The state estimation service is being developed in c++. A modern c++ implementation allows the application to adapt to an evolving interface. The program architecture is shown below.
Topology Processor: initializes the measurement function and its Jacobian and determines the size of the measurement vector, the measurement covariance matrix, and the state vector.
Meter Interface: updates the measurement vector and the measurement covariance matrix as new measurement data comes available.
State Estimator: performs the state estimation operation according to the specified algorithm.
Output Interface: formats the state vector and any implicit states as an output stream.
Inputs:¶
Upon initialization, the topology processor will receive the Ybus from the GridLABD service and will query contextual information and sensor locations from the CIM database.
Periodic measurement data, including any forecasts to be used a pseudomeasurements will be required as inputs.
A “terminate” command from the platform will end the state estimation process.
Outputs:¶
The output will include the full system state (node voltages and/or branch currents TBD).
Testing and Validation¶
Evaluation metrics¶
 State Error: compare state estimation output to “true” system state.
 Accuracy over baseline: compare state error of state estimator to state error of a QSTS loadflow model.
 Execution Time
 Bad Sensor Detection (binary)
Scenarios¶
 Full sensor deployment: verify that the true system state can be reproduced.
 Sparse sensor deployment: verify that the state estimator performs better than a QSTS loadflow model.
 Breaker trip: verify that switch state can be detected even when it is reported incorrectly.
 Bad sensor detection: verify that a sensor that is producing bad data can be identified.
 Dependent application support: verify that the state estimator can support e.g. the VVO application.
 Fault: for a radial system, determine the nearest common bus from multiple emulated customer calls.
Operating/Running¶
The state estimator will execute the topology processor at initialization and will enter a stat estimation loop. The state estimation loop will exit and the process will end upon receiving a ‘terminate’ command from the platform.
At initialization, a configuration file will be read for:
 State estimation mode (state vector and algorithm) selection
 Normalized residual threshold for bad measurement / sensor detection
References¶
[1] Abur and A. G. Exposito, Power System State Estimation, New York, NY: Marcel Dekker, Inc., 2004.
[2] M. E. Baran and A. W. Kelley, “A branchcurrentbased state estimation method for distribution systems,” in IEEE Transactions on Power Systems, vol. 10, no. 1, pp. 483491, Feb 1995.
[3] Z. Jia, J. Chen and Y. Liao, “State estimation in distribution system considering effects of AMI data,” 2013 Proceedings of IEEE Southeastcon, Jacksonville, FL, 2013, pp. 16.
[4] S. C. Huang, C. N. Lu and Y. L. Lo, “Evaluation of AMI and SCADA Data Synergy for Distribution Feeder Modeling,” in IEEE Transactions on Smart Grid, vol. 6, no. 4, pp. 16391647, July 2015.
[5] M. Kettner; M. Paolone, “Sequential Discrete Kalman Filter for RealTime State Estimation in Power Distribution Systems: Theory and Implementation,” in IEEE Transactions on Instrumentation and Measurement, vol.PP, no.99, pp. 113, Jun. 2017.
[6] G. Valverde and V. Terzija, “Unscented kalman filter for power system dynamic state estimation,” in IET Generation, Transmission & Distribution, vol. 5, no. 1, pp. 2937, Jan.
Model Validator¶
Objectives¶
The model validator will detect and attempt to correct unreasonable component interconnections and network parameters.
Use Cases¶
 Valid transformer size and orientation (Utility): orientation is not captured explicitly in their GIS system.
 Discover secondary line impedance parameters (Utility) conductor type and line length are currently based on generic assumptions.
 Sanity check or estimate transformer size and impedance.
 Verify that the nominal voltage of nodes matches the base voltage of the segment: generally the winding voltage of the upstream transformer or swing bus voltage.
 Sanity check conductor sizes and line current ratings.
 Validate and fill in regulator and capacitor control settings.
 Check phase continuity (GridLABD may not model phase discontinuities)
Design¶
The model validation application will be implemented in Python.
Inputs:¶
The model validator will have access to the CIM database and archived data from the state estimator.
Outputs:¶
The model validator will one or both of the following outputs:
 Model status: log file or GUI pipe for identified issues.
 Model correction: CIM updates to correct identified issues.
Testing and Validation¶
Evaluation metrics¶
 Ability to detect known issues.
Scenarios¶
 Utility merger: models with different format may be interpreted differently, creating issues a CIM model.
 Data entry issue: model update does not match upgrade performed in the field
Operating/Running¶
The model validator script will execute once when called by the platform.
At initialization, a configuration file will be read for:
 Mode (status, quiet, verbose; see outputs section)
 Selectable validation items (use cases)
Given a perfect and complete set of voltage magnitude and angle measurements, along with a detailed and accurate power system model, one could calculate the real power, or any other electrical variable of interest, anywhere in the system. In practice, measurements have errors, time delays, and may even be missing. State estimation refers to the process of minimizing the errors and filling in gaps [1]. One state estimation method is called “weighted least squares”, and it’s analogous to drawing the bestfit line through a set of scattered points. Other methods may perform better [2]. Also, on distribution systems, it may be better to estimate branch currents instead of node voltages, but the principle is the same. In GridAPPSD, the visualizations and applications ought to use the best available state estimator outputs, instead of raw SCADA values, for both accuracy and consistency. Therefore, the state estimator is not an application but a service in GridAPPSD, sitting between emulated SCADA and the GOSS bus.
Figure 1: The state estimator processes noisy and incomplete measurements, then posting estimated voltage (V), current (I), real power (P), reactive power (Q) and switch status (S) values onto the GridAPPSD message / data bus.
In Figure 1, the power system model (upper left) will include a limited number of sensors, corresponding to actual voltage and current transformers, line post sensors, wireless sensors, etc. In some scenarios, smart meters can also be sensors. Each such sensor will have different performance characteristics (e.g. precision, accuracy, sampling rate). Distribution systems typically do not have enough sensors to make the system observable, so there will be measurement gaps in the topology. The state estimator might fill these gaps with interpolation and graphtracing methods on the power system model.
The supervisory control and data acquisition (SCADA) system in Figure 1 introduces more errors and failure points. Eventually, GridAPPSD may simulate these impacts by federating ns3 as a cosimulator. Until then, a placeholder module could be used to insert variable errors, time delays and dropouts in each measurement, whether due to sensor characteristics or the communication system. The output represents data as it would come into an operations center, and feeds the state estimator. Internally, the data flows between simulator, SCADA and state estimator might be implemented with FNCS, but this is an implementation detail. The state estimator will provide two outputs to the GOSS bus used by all GridAPPSD applications:
 At a time step configured by the platform, publish the bestestimate VIPQS values wherever sensors actually exist in the model, with quality attributes that still have to be established. Sensor locations delineate circuit segments, and note that all VIPQS values will be estimated at the boundaries, even if the sensor measures only V or I, for example.
 Upon request by another application or service, publish the estimated VIPQS values for all nodes and components in the model, even at locations where no sensors exist. A variant is to publish the estimates only for selected nodes and components.
As indicated in Figure 1, other applications need to obtain estimated VIPQS values from the GOSS bus. Switch open/close states are a special case; they might be considered known values, but in practice the switch state is a measurement, which could lead to topology errors in the model. For GridAPPSD, switch state estimates need to be a point of emphasis. Given that most distribution systems lack redundant measurements, It would be possible for an application to query these VIPQS values directly from the simulator or SCADA, bypassing the state estimator, but this is “cheating” in most situations. However, in the application development process, idealized VIPQS values could be obtained through a combination of two methods:
 Add more sensors to the power system model
 Set the sensor and channel errors to zero
Because the sensor outputs in GridAPPSD come from a power flow solution that enforces Kirchhoff’s Laws, the state estimator will produce ideally accurate values whenever the sensor and channel errors have been specified to be zero. The state estimator may still exhibit interpolation errors between sensor locations, but that is readily mitigated for testing purposes by adding more sensors.
With reference to RC1, the visualization and VVO applications should now subscribe to VIPQS values from the state estimator, not from the distribution simulator. They may also use or display quality metrics on the estimated values.
The state estimator basically attempts to fit measured data to a power flow model, usually assuming that the model is correct. However, a model attribute (e.g. line impedance) could also be estimated by minimizing its error residual in the state estimator’s power flow solution. This process works best when applied to just one or a few suspect attributes, and/or when an archive is available to provide enough redundant measurements. The Model Validation Application will use these state estimator features offline to help identify and correct the following types of model errors:
 Unknown or incorrect service transformer sizes
 Unknown or incorrect secondary circuit lengths
 Incorrect phase identification of singlephase components
 Phase wiring errors in line segments and switches
 Transformer connection errors, especially reversed primary and secondary
 Primary conductor sizes that don’t decrease monotonically with distance from the source
 Missing regulator and capacitor control settings (i.e. supply defaults from heuristic rules)
 More than one of these on the same pole: recloser, line regulator, capacitor
 Substation transformer impedance and turns ratio
These types of errors often appear upon the initial model import from a geographic information system (GIS), or in periodic model updates from GIS. Other error types may be added later. Many utilities do not have their secondary circuits modeled at all, but this has an important impact on AMI data. The service transformers and secondary circuits insert significant impedance between AMI meters and the primary circuit, where most of the other sensors are installed. Therefore, the first two items will require AMI data, and also enable its more effective use.
As shown in Figure 2, the Model Validator integrates with GridAPPSD as a hosted application on the GOSS bus. Internally, it will use some of the same algorithms as the State Estimator and may share some code or binary files, but this is an implementation detail. It will need to access an archive of stateestimated VIPQS data, which may include AMI data. It will also use or incorporate an offline power flow model, not the same one running in the GridAPPSD distribution simulator. This may be EPRI’s OpenDSS simulator [3]; compared to GridLABD, it’s more tolerant of model errors and provides more diagnostic information about model errors.
Figure 2: The Model Validator works with an archive from the state estimator, and an offline power flow model.
Transactive energy is a method of controlling loads and resources on the distribution system, combining both market and electrical principles [4]. One reason for including this application in DOEfunded GridAPPSD is that PNNL has made several technical contributions and led several demonstration projects in transactive systems, also funded by DOE [5].
Application structure
This transactive systems application is to be implemented as a modularized 2layer 3level structure, as seen from Figure 3. The layer decomposition helps the control of various groups, with limited information flow between different layers. With the predefined functions in each agent type (Agent A, B, and C) in each level, the existing transactive system related work can be conveniently integrated into the application, and the new control features can be added into specific control function in each type of the agent easily.
Figure 3: The structure of the modularized 2layer 3level transactive system application
The modularized agents opens the door for integrating different control mechanisms into the application. Users need to consider which level their control algorithm fits into, and fill in the control function of the Agent class in that level, without worrying about communications between the agents. In each level, the same type of the agent may have various control functions, which help combining benefits of different control schemes together.
Agent A, B and C will be implemented as VOLTTRON applications. VOLTTRON is an application platform for distributed sensing and control applications [6]. With the capability of hardwareintheloop (HIL) testing through VOLTTRON, the transactive systems application will be tested using the actual devices. A GOSSVOLTTRON Bridge is to be implemented, for the communication between GridAPPSD and the VOLTTRON agents in the transactive systems application.
Application test cases
The hierarchical control framework introduced in [7] for integrated coordination between distributed energy resources and demand response will be implemented into the application. In addition, [7] has not considered the power losses or power constrains, which will be taken into consideration in this test case. The twolayer control mechanism, including the coordination layer and device layer, fits the proposed structure of the application well. The control in each level will be implemented into corresponding function in each type of the agent. The IEEE 123node test feeder built in GridLABD will be used for testing the application.
CIM extension for the Application
The latest versions of GridAPPSD has used a reducedorder CIM to support feeder modeling. With transactive system application included into GridAPPSD platform, more objects, such as house air conditioner and water heater, need to be defined in CIM. Before the definition in CIM, a simplified version of the house object and water heater object are to be implemented in GridLABD.
[1] 

[2] 

[3] 

[4]  Gridwise Architecture Council. (2017). Transactive Energy. Available: http://www.gridwiseac.org/about/transactive_energy.aspx 
[5]  Pacific Northwest National Laboratory. (2017). Transactive Energy Simulation Platform (TESP). Available: http://tesp.readthedocs.io/en/latest/ 
[6] 

[7]  Di Wu, Jianming Lian, Yannan Sun, Tao Yang, Jacob Hansen, “Hierarchical control framework for integrated coordination between distributed energy resources and demand response,” Electric Power Systems Research, pp. 4554, May 2017. 
NREL Applications (Release Cycle 2)¶
Distribution Optimal Power Flow for RealTime Setpoint Dispatch¶
Objectives¶
This application is designed to address the problem of optimizing the operation of aggregations of heterogeneous energy resources connected to a distribution system. We will focus on realtime optimization method and the power setting points of the distributed energy resources (DERs) will be updated on a second or subsecond timescale to maximize the operational objectives while coping with the variability of ambient conditions and noncontrollable energy assets [1]. In order to avoid massive measurements and overcome the limitation caused by model inaccuracy, this application will be implemented in a distributed manner, and only local measurements and a feedback signal from the substation aggregator are needed to determine the optimal setpoints for each controlled DER unit.
Figure 1 The conceptual framework of distribution OPF for realtime setpoint dispatch.
Figure 1 shows the conceptual framework of this application, and this application is targeting at TRL 3.
Design¶
Figure 2 describes the overall work flow of the application. Distribution OPF algorithm requires realtime measurements, distribution system model and power flow results, which will be obtained from GridAPPSD platform through GOSS/FNCS message bus. The optimization problem formulation can be constructed using userdefined cost functions for different controllable devices. Finally the optimal setpoints for controllable devices will be solved based on the feedback information from system measurements. These setpoints will be sent back to GridLabD grid model to update DER operations. Such a closedloop control forms the control iteration for the studied time point, and new setpoints for the following time points will be determined in the same manner using the updated model and measurements.
Figure 2 The workflow of realtime setpoint dispatch application and its interaction with GridAppsD.
Data requirements
Message schemas (UML) (Enterprise Architect software) Jeff will help draw the UML diagram.
Testing and Validation¶
Evaluation metrics of this application:
 Real/reactive power at the substation
 System loss
 Voltages across the entire distribution grid: voltage magnitude, voltage fluctuation, voltage unbalance.
 Legacy control device operations: total control actions of all capacitors and regulators
Scenarios:
 Optimal Dispatch for Distributed PV Systems
 Optimal Dispatch for Distributed PV + Energy Storage
 Etc. (will be added when implementing the application)
Operating/Running¶
This application will be developed using Python.
References¶
[1] E. Dall’Anese, A. Bernstein, and A. Simonetto, “Feedbackbased Projectedgradient Method for Realtime Optimization of Aggregations of Energy Resources,” IEEE Global Conference on Signal and Information Processing (GlobalSIP), Montreal, Canada, Nov. 2017.