StorageSystemsSimulations.jl

Overview

StorageSystemsSimulations.jl is a PowerSimulations.jl extension to support formulations and models related to energy storage.

An Operational Storage Model can have multiple combinations of different restrictions. For instance, it might be relevant to a study to consider cycling limits or employ energy targets coming from a planning model. To manage all these variations StorageSystemsSimulations.jl heavily uses the DeviceModel attributes feature.

For example, the formulation StorageDispatchWithReserves can be parametrized as follows when added to a PowerSimulations.jl model:

DeviceModel(
    StorageType, # E.g. EnergyReservoirStorage
    StorageDispatchWithReserves;
    attributes=Dict(
        "reservation" => true,
        "cycling_limits" => false,
        "energy_target" => false,
        "complete_coverage" => false,
        "regularization" => true,
    ),
    use_slacks=false,
)
Tip

Each formulation can have different implementations for attributes. Carefully review the formulation library pages to understand how to configure the storage model according to your requirements

Installation

The latest stable release of PowerSimulations can be installed using the Julia package manager with

(@v1.10) pkg> add PowerSimulations StorageSystemsSimulations

For the current development version, "checkout" this package with

(@v1.10) pkg> add PowerSimulations StorageSystemsSimulations#main

An appropriate optimization solver is required for running StorageSystemsSimulations models. Refer to JuMP.jl solver's page to select the most appropriate for the application of interest.

StorageSystemsSimulations has been developed as part of the Scalable Integrated Infrastructure Planning (SIIP) initiative at the U.S. Department of Energy's National Renewable Energy Laboratory (NREL).