Giter Site home page Giter Site logo

nrel / rlc4clr Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 0.0 4.37 MB

RLC4CLR employs curriculum learning to train a reinforcement learning controller (RLC) for a distribution system critical load restoration (CLR) problem.

License: BSD 3-Clause "New" or "Revised" License

Python 40.28% Jupyter Notebook 58.15% Shell 1.57%
curriculum-learning energy-system reinforcement-learning grid-resilience

rlc4clr's Introduction

RLC4CLR: Reinforcement Learning Control for Critical Load Restoration

Description

Due to the complexities stemming from the large policy search space, renewable uncertainty, and nonlinearity in a complex grid control problem, directly applying RL algorithms to train a satisfactory policy requires extensive tuning to be successful. To address this challenge, this repository provides users an example on using the curriculum learning (CL) technique to design a training curriculum involving a simpler steppingstone problem that guides the RL agent to learn to solve the original hard problem in a progressive and more effective manner.

Specifically, the optimal grid control problem considered is the critical load restoration (CLR) problem after a distribution system is islanded due to a substation outage. As we provide a reinforcement learning control (RLC) solution to the CLR problem, the repo is named RLC4CLR.

Please refer to our published paper and preprint on arXiv for more details.

Installation

Prepare the environment

git clone https://github.com/NREL/rlc4clr.git
cd rlc4clr

conda env create -n rlc4clr python=3.10
conda activate rlc4clr
pip install -r requirements.txt

cd rlc4clr 
pip install -e .

Download renewable generation profiles and synthetic forecasts data from the OEDI website, unzip the data file and place it under a desired folder. Configuring the path to the renewable data at DEFAULT_CONFIG.py

To test if the environment is properly installed, run the explore_env.ipynb under the train folder.

More Instructions

CLR Gym environment

Curriculum-based RL training

Funding Acknowledgement

This work was authored by the National Renewable Energy Laboratory (NREL), operated by Alliance for Sustainable Energy, LLC, for the U.S. Department of Energy (DOE) under Contract No. DE-AC36-08GO28308. Funding provided by the U.S. Department of Energy Office of Electricity (OE) Advanced Grid Modeling (AGM) Program.

Citation

If citing this work, please use the following:

@article{zhang2022curriculum,
  title={Curriculum-based reinforcement learning for distribution system critical load restoration},
  author={Zhang, Xiangyu and Eseye, Abinet Tesfaye and Knueven, Bernard and Liu, Weijia and Reynolds, Matthew and Jones, Wesley},
  journal={IEEE Transactions on Power Systems},
  year={2022},
  publisher={IEEE}
}

@misc{osti_1887968,
  title = {RLC4CLR (Reinforcement Learning Controller for Critical Load Restoration Problems)},
  author = {Zhang, Xiangyu and Eseye, Abinet Tesfaye and Knueven, Bernard and Lui, Weijia and Reynolds, Matthew and Jones, Wesley and USDOE Office of Electricity},
  doi = {10.11578/dc.20220919.5},
  url = {https://www.osti.gov/biblio/1887968},
  year = {2022},
  month = {3},
}

rlc4clr's People

Contributors

zxymark221 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.