CapacityExpansion logo

Build Status

CapacityExpansion is a julia implementation of an input-data-scaling capacity expansion modeling framework.

The primary purpose of the package is providing an extensible, simple-to-use generation and transmission capacity expansion model that allows addressing a diverse set of research questions in the area of energy systems planning. The secondary purposes are:

  1. Providing a simple process to integrate (clustered) time-series input data, geographical input data, cost input data, and technology input data.
  2. Providing a model configuration, a modular model setup and model optimization.
  3. Providing an interface between the optimization result and further analysis.
Model Information
Model classCapacity Expansion Planning
Model typeOptimization, Linear optimization model input-data depending energy system
CarriersElectricity, Hydrogen,...
Technologiesdispatchable and non-dispatchable Generation, Conversion, Storage (seasonal), Transmission, Demand
Decisionsinvestment and dispatch
ObjectiveTotal system cost
VariablesCost, Capacities, Generation, Storage, Lost-Load, Lost-Emissions
Input Data DependingProvided Input Data
RegionsCalifornia, USA (single and multi-node) and Germany, Europe (single and multi-node)
Geographic Resolutionaggregated regions
Time resolutionhourly
Network coveragetransmission, DCOPF load flow

The package uses TimeSeriesClustering as a basis for its time-series aggregation.

This package is developed by Elias Kuepper @YoungFaithful and Holger Teichgraeber @holgerteichgraeber.

Installation

This package runs under julia v1.0 and higher. It depends on multiple packages, which are also listed in the Project.toml. The packages are automatically installed by the julia package manager:

  • JuMP.jl - for the modeling environment
  • CSV.jl - for handling of .csv-Files
  • DataFrames.jl - for handling of tables
  • StatsBase.jl - for handling of basic
  • JLD2 - for saving your result data
  • FileIO - for file accessing
  • TimeSeriesClustering.jl - for time-series data

You can install CapacityExpansion using the package mode:

]
add CapacityExpansion

or using the Pkg.add function:

using Pkg
Pkg.add("CapacityExpansion")

A solver is required to run an optimization, as explained in section Solver. Install, e.g. Clp using the package mode:

]
add Clp

or using the Pkg.add function:

using Pkg
Pkg.add("Clp")