Welcome to PowerSystems.jl

Announcement

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:

  1. It facilitates the development and open sharing of large data sets for Power Systems modeling
  2. 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, and MATPOWER) 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:

  1. Install

  2. Work through the introductory tutorial: Create and Explore a Power System to familiarize yourself with how PowerSystems.jl works

  3. Work through the other basic tutorials based on your interests

  4. 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