Skip to content

YoungFaithful/CapacityExpansion.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CapacityExpansion logo

Build Status

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

Model Information
Model class Capacity Expansion Problem
Model type Optimization, Linear optimization model input-data depending energy system
Sectors (currently) Electricity
Technologies dispathable and non-dispathable Generation, Storage (seasonal), Transmission
Decisions investment and dispatch
Objective Total system cost
Variables Cost, Capacities, Generation, Storage, Lost-Load, Lost-Emissions
Input Data Depending Provided Input Data
Regions California, USA (single and multi-node) and Germany, Europe (single and multi-node)
Geographic Resolution aggregated regions
Time resolution hourly
Network coverage transmission, DCOPF load flow

The package uses ClustForOpt as a basis for it's 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:

  • 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
  • ClustForOpt.jl - for time-series data
using Pkg
Pkg.add("CapacityExpansion")

A solver is required to run an optimization as explained in section Solver. Install e.g.:

using Pkg
Pkg.add("Clp")

Example Workflow

using CapacityExpansion
using Clp
optimizer=Clp.Optimizer # select optimizer

## LOAD DATA ##
# laod ts-data
ts_input_data = load_timeseries_data_provided("GER_1"; T=24, years=[2016])
# load cep-data
cep_data = load_cep_data_provided("GER_1")

## OPTIMIZATION ##
# run a simple
run_opt(ts_input_data,cep_data,optimizer)