Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quest_Logo_RGB

QuESt PCM: A Production Cost Modeling Tool with High-Fidelity Models of Energy Storage Systems

Current release version: 1.1.0

Table of Contents

Introduction

Production cost models (PCM) are computational tools that simulate power system operations by optimizing the commitment and dispatch of generation resources to meet demand at least cost, while respecting technical and reliability constraints. QuESt PCM is an open-source power system production cost modeling tool designed for high-fidelity representation of energy storage systems (ESS). Built in Python, it uses the Pyomo optimization interface to formulate technology-specific storage models and to capture diverse storage operational constraints. The tool also models market participation capabilities of storage systems, helping assess their impacts on day-ahead and real-time price signals. Python wrappers allow seamless simulation of market operations, and EGRET serves as the optimization engine for security-constrained unit commitment and economic dispatch. This tool is part of QuESt 2.0: Open-source Platform for Energy Storage Analytics. Below is a high-level overview of the QuESt PCM tool.

overview

Back to Top

Key Features of QuESt PCM

Key features of the QuESt PCM tool include:

  • Cost-Optimal Dispatch and Commitment: Coordinates day-ahead and real-time simulations to determine least-cost generation dispatch while respecting technical and reliability constraints. The tool ensures proper initialization and coupling of intertemporal variables, maintaining consistency between day-ahead and real-time operations. Optimization problems are solved using EGRET, enabling accurate modeling of multi-period dispatch and commitment decisions.

  • High-Fidelity Energy Storage Modeling: Accurately represents a broad range of energy storage technologies, capturing technology-specific operational constraints, charge/discharge behavior, efficiency characteristics, and degradation effects. Examples include cycling and aging characteristics of battery storage, as well as generator and pump dynamics of pumped hydro storage. The tool also evaluates the impact of storage operation on system flexibility, reliability, and cost.

  • Market Participation Simulation: Models storage participation in both day-ahead and real-time markets to assess revenue potential and influence on market price signals. The tool addresses key challenges in integrating storage systems into production cost models, including ancillary service state-of-charge constraints, and incorporates rolling-horizon coordination to align day-ahead and real-time storage schedules.

  • Flexible Scenario Analysis: Enables exploration of multiple operational and market scenarios to evaluate sensitivities under varying conditions. Users can configure real-time market clearing frequencies, lookahead horizons, and flexible allocation of ancillary services, including regulation, spinning, non-spinning, and supplemental reserves. Storage participation levels in these services can also be customized.

  • Open-Source and Extensible: Built in Python with transparent, modifiable code for research, teaching, and practical power system studies.

Back to Top

Getting started

Installing Python

  1. Installers can be found at: https://www.python.org/downloads/release/python-31212/
  2. Make sure to check the box "Add Python to PATH" at the bottom of the installer prompt.

Installing Git

  • Visit git-scm.com to download Git for your operating system.
  • Follow the installation instructions provided on the website.

Solver Installation

By default, HiGHs solver is included with the QuESt PCM installation. However, for best performance, use a commercial solver such as Gurobi and Cplex. Additional solvers to consider include:

Commercial Solvers

Open-source Solvers

Setting Up a Virtual Environment

  1. Install virtualenv (if not already installed):

    python -m pip install virtualenv
  2. Create a virtual environment (named pcm_venv):

    python -m virtualenv pcm_venv
  3. Activate the virtual environment:

    • On Windows:
      .\pcm_venv\Scripts\activate
    • On macOS/Linux:
      source pcm_venv/bin/activate
      

Cloning the Repository and Installing Dependencies

  1. Clone the repository:

    git clone <repository_url>

    Replace <repository_url> with the URL of the QuESt PCM repository.

  2. Navigate to the QuESt PCM Directory:

    cd path/to/quest_PCM

    Replace path/to/quest_PCM with the name of the directory where QuESt PCM was cloned.

  3. Install Dependencies:

    pip install -e .

Back to Top

Running QuESt PCM

Setup the Input CSV Files

The network, generator, reserve, and storage data are all input as .csv files. They must be present within the Data directory. Each file must follow the specific format required by QuESt PCM. For detailed instructions on how to populate these files, see the Data Requirements page.

Configure the Input File

Before running the simulation, configure the input yaml file in Config directory with the specific simulation parameters. Open the file in a text editor and adjust the parameters according to your requirements. The guidelines for setting up the config files are present in Configuration Instructions.

Option 1: Run the Program using Command Line

First, make sure that you are in the main project directory. Then, use the example_script.py to run the simulation. Before running, update the main_data_path, yaml_path, and result_path variables in the script to point to your desired system. Then, with your virtual environment activated, execute the script from the command line as follows:

python example_script.py

Option 2: Run the Program using GUI

From any directory, with your virtual environment activated, run the command:

pcm

you can also run the program from the quest_PCM directory, with your virtual environment activated, run the command:

python -m pcm

When the GUI (shown below) opens, first browse to and select the data directory and YAML file. The YAML file can also be edited directly within the GUI to adjust simulation parameters. Once everything is set, click Run Simulation. After the simulation finishes, a new button Open Results Folder will appear that links to the results directory for that run.

Results

Analyze the Results

Simulation results are stored in the Results directory. Separate timestamp folders are generated for each simulation run. Some key results from each simulation run include: system generation dispatch, operation costs, ancillary service allocations, and storage dispatch characteristics. Detailed decription of QuESt PCM outputs and file organization are present in the Output Details.

Back to Top

Example Simulation

Two test cases are included with the initial release of QuESt PCM. One test case includes a purely synthetic 5-bus system derived from Prescient examples. Users can use this system for quick tests. Another test case includes the IEEE RTS-GMLC synthetic grid, which is a publicly available test system that is derived from IEEE RTS-96 test system. Figure 1 displays the nodal model of the RTS-GMLC test case included within the tool. For representative simulation outputs and visualizations generated by QuESt PCM on the RTS-GMLC system, see the Example Results page.

Results

Figure 1: IEEE RTS-GMLC Test Case nodal model

Back to Top

Acknowledgment

The QuESt PCM tool is developed and maintained by the Energy Storage Analytics Group at Sandia National Laboratories. This material is based upon work supported by the U.S. Department of Energy, Office of Electricity (OE), Energy Storage Division.

Project team:

  • Dilip Pandit
  • Cody Newlun
  • Atri Bera
  • Tu Nguyen
  • Eriel Cabrera

SNL DOE

Back to Top

Contact Details

For reporting bugs and other issues, please use the "Issues" feature of this repository. For more information regarding the tool and collaboration opportunities, please contact project developer: Dilip Pandit (dpandit@sandia.gov).

About

QuESt PCM is a production cost modeling tool that evaluates system operations with advanced modeling of diverse energy storage technologies.

Topics

Resources

Stars

10 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages