This talk is about a registered Julia package: PowerModelsDistributionStateEstimation.jl, that allows easy benchmark and design of state estimation models for power distribution systems. The goal is to accelerate the use of this technique in research and real-life settings. State estimation is formulated as a mathematical optimization problem using JuMP.jl and can be solved with off-the-shelf solvers. Different modeling options are featured, and the package is designed to be easily extensible.
Distribution networks are the final stage of the delivery of power from generation to consumers, and they have traditionally been managed with a fit-and-forget approach. This has been appropriate until recent years, given the predictable behavior and underutilization of these networks. However, several developments are changing the state of affairs, e.g., electric vehicles, PV panels, etc. These devices increase utilization, unpredictability, and the risk of voltage and congestion problems, but also provide a potential source of flexibility and control. To understand the impact of these technologies and, potentially, to perform control actions, it is necessary to monitor distribution systems. State estimation (SE) is a monitoring tool that determines the most-likely state of the system given a set of measurements. In this talk/poster, a (registered) Julia package is presented, PowerModelsDistributionStateEstimation.jl, which has been developed as a SE design facilitator. The main goal is to provide a flexible tool that allows researchers or other interested users to easily and rapidly design and benchmark SE techniques. This, in turn, has the potential to accelerate the real-life deployment of monitoring and control routines, which can play an important role in the management and operation of future power grids. The package is an extension of PowerModelsDistribution.jl (https://github.com/lanl-ansi/PowerModelsDistribution.jl), and it allows to formulate SE as a constrained optimization problem. Usually, SE is not addressed in a strict mathematical optimization sense, but the latter is a more general way to describe the problem, which encapsulates the different methods available in the literature, making benchmarking easier. The biggest challenge in the comparison of SE methods is that the solving algorithm is an inherent part of the SE model. This means that changes in the model-defining equations often require changes in the subsequent solving steps, making it very labor-intensive and time-consuming to test even a limited number of modeling options. With this package we break this paradigm, by splitting the modeling and solver layer, which is possible by using JuMP.jl. This allows users to focus on the design of a suitable SE model, letting an off-the-shelf solver, e.g., Ipopt, take care of the solving part. A potential drawback is that solve times are longer than with a customized algorithm. However, numerical experiments with available solvers show solve times that seem acceptable for experimental and real-life use. If a better performance is required, the package can still be used to quickly find the optimal SE design, which the user can augment with a customized solver at a later stage. Several SE modeling options (e.g., measurement types, power flow equations), are available in the package, which is easy to extend to include more. The talk will give a short overview on the concept of SE, to then introduce the package in detail and provide some numerical examples to demonstrate its functionalities.