yadi is software designed to help you tame the black magic that is distribution network models and make decisions with distribution network measurement data. It is primarily built on the OpenDSS Electric Distribution System Simulator, which is available for download here by its authors, the Electric Power Research Institute. We interface with OpenDSS via opendssdirect.py and PyDSS.
yadi uses Poetry.
- Ensure that Poetry is installed. Follow the instructions for your operating system here.
- Clone the repository.
- Navigate to the root directory.
- While in the root directory, spawn and activate a virtual environment for this project with the command
poetry shell - Install the dependencies with
poetry install - Confirm that
yadiis installed in your virtual environment withpip show yadi
If you use VS Code, after following the above steps, and ensuring that your environment is activated, you can access the virtual environment for yadi within by running:
code .
within your poetry shell. You can then select the yadi environment as your python interpreter in the lower right.
The distribution network modeling community is hiding from modern data science workflows. Many distribution researchers simply implement the same algorithms idiosyncratically over and over again, which has severely limited the ability of the power system community to develop higher-order iterations of network model analysis tools and algorithms. yadi makes it significantly easier to ask the kind of research questions that are useful for the modern, data-driven eletric power system engineer.
yadi doesn't stop with making OpenDSS friendlier for modern data science workflows. It also welcomes the Julia programming language and its benefits with open arms, and liberally makes uses of PowerModelsDistribution.jl in tandem with OpenDSSDirect.jl in accordance with each of their strengths. Taking advantage of Julia's speed can allow for sophisticated optimization, decision making, and control algorithms that are not possible in Python alone.
yadi is designed to help you create data for machine learning applications. It is designed to help you solve problems like:
- How can I generate a dataset of measurements that I can use to train a machine learning algorithm?
- How can I create a matrix of sensitivities for a distribution network model?
yadi is designed to help you answer questions about distribution network models. It is designed to help you answer questions like:
- What is the impact of electric vehicle charging on my distribution network?
- How much solar can I add to my distribution network?
- How can I use my distribution network to provide ancillary services to the transmission network?
yadi gives you a number of tools to improve your distribution system research and accelerate the integration of OpenDSS into your studies. yadi aims to provide a fresh, modern, open-source approach to the mostly opaque world of distribution network modeling with support for several common algorithms that are central to modern distribution systems research. Below, we summarize some of these features, although it is always a work in progress. Check back in the future for more, or open an issue or pull request.
- Simplified circuit data access, collection, and analysis
- Time series analysis
- Sensitivity analysis
- Electric vehicle analysis
- Iterative hosting capacity analysis
- Quasi-static time-series (QSTS) dataset generation with user-controllable parameters
- Regression-based sensitivity analysis
- Sensitivity-based hosting capacity generation analysis
- Sensitivity-based hosting capacity demand analysis
Not convinced? Here's some more info.
- Focus on data-driven/machine learning applications
- Cross-platform and compatibility with opendssdirect.py
- Local OpenDSS installation not necessarily required
- Samuel Talkington
- Alejandro Owen (conservative linear approximations)
- Alex Reyna
- Jorge Fernandez (admittance matrix & initialization in dss/model.py)
New contributors are always welcome.
This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-2039655. Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors(s) and do not necessarily reflect the views of the National Science Foundation.
