Welcome to PowerSystems.jl
PowerSystems.jl upgraded to version 4.0 in June 2024, which included breaking changes. Visit the v4.0 migration guide for information on how to update your existing code.
We also have re-organized and updated this documentation, including new tutorials! Check out How To Use This Documentation below to orient yourself.
About
PowerSystems.jl
is part of the National Renewable Energy Laboratory's Sienna ecosystem, an open source framework for scheduling problems and dynamic simulations for power systems. The Sienna ecosystem can be found on github. It contains three applications:
- Sienna\Data enables efficient data input, analysis, and transformation
- Sienna\Ops enables enables system scheduling simulations by formulating and solving optimization problems
- Sienna\Dyn enables system transient analysis including small signal stability and full system dynamic simulations
Each application uses multiple packages in the Julia
programming language.
PowerSystems.jl
is the foundation of Sienna\Data, and it is used with all three applications. It provides a rigorous data model using Julia structures to enable power systems modeling. PowerSystems.jl
is agnostic to a specific mathematical model and can be used for many model categories.
PowerSystems.jl
provides tools to prepare and process data useful for electric energy systems modeling. This package serves two purposes:
- It facilitates the development and open sharing of large data sets for Power Systems modeling
- It provides a data model that imposes discipline on model specification, addressing the challenge of design and terminology choices when sharing code and data.
The main features include:
- Comprehensive and extensible library of data structures for electric systems modeling.
- Large scale data set development tools based on common text based data formats (PSS/e
.raw
and.dyr
, andMATPOWER
) and configurable tabular data (e.g. CSV) parsing capabilities. - Optimized container for component data and time series supporting serialization to portable file formats and configurable validation routines.
How To Use This Documentation
There are five main sections containing different information:
- Tutorials - Detailed walk-throughs to help you learn how to use
PowerSystems.jl
- How to... - Directions to help guide your work for a particular task
- Explanation - Additional details and background information to help you understand
PowerSystems.jl
, its structure, and how it works behind the scenes - Reference - Technical references and API for a quick look-up during your work
- Model Library - Technical references of the data types and their functions that
PowerSystems.jl
uses to model power system components
PowerSystems.jl
strives to follow the Diataxis documentation framework.
Getting Started
If you are new to PowerSystems.jl
, here's how we suggest getting started:
Work through the introductory tutorial: Create and Explore a Power
System
to familiarize yourself with howPowerSystems.jl
worksWork through the other basic tutorials based on your interests
- See Working with Time Series Data if you will be doing production cost modeling or working with time series
- See Adding Data for Dynamic Simulations if you are interested in dynamic simulations
Then, see the how-to's on parsing Matpower or PSS/e files or CSV files to begin loading your own data into
PowerSystems.jl