This repo contains the optimization model for the NGCC-PCC-DAC retrofit design modeled in Julia/Jump
and Python/Pyomo
.
- co-optimizes the design and operational decisions
- considers multiple future energy scenarios (varying electricity prices for a year + varying CO2 prices)
- formulates a novel DAC model to account for sorbent dynamics
- contains logic for system start-up/shutdown
For the full model description, please contact Pengfei Cheng.
Currently there are 4 branches:
main
: the most up-to-date one with all the featuresbase-NGCC
: contains the optimization model for the operations of B31A (unretrofitted NGCC)pyomo-ver
: the identical model formulated inPython/Pyomo
pyomo-SP
: the stochastic version of the model in inPython/Pyomo
.
├── FLECCS_env # Julia environment configuration
├── src # source files
│ ├── models # optimization model files
│ ├── constraints
│ ├── output
│ ├── params
│ ├── model.jl # main file
│ ├── obj.jl
│ └── variables.jl
│ ├── post_processing # post-processing scripts
│ ├── regression # regression scripts for data from simulation
│ └── resources # other resource files
├── .gitignore
├── README.md
└── requirements.txt
The model code is based on Julia 1.7.0
. To install packages, run the following commands in a Julia
REPL:
# press "]" to enter Julia's Pkg (package manager) REPL
# cd to the project directory
(@1.7) pkg> activate FLECCS_env
(FLECCS_env) pkg> instantiate
For more information, see the instruction.
Python
scripts/Jupyter
notebooks are used for post processing, and only basic packages are needed.
To install these packages, run
pip install -r requirements.text
To use a certain MILP solver, please install it separately.
Please make sure that the solver has accessible API to Julia
/Jump
.
To run the model in the Julia
REPL (in terminal):
# make sure the environment has been configured
include("src/models/model.jl")
# remember to set the output directory for the first-time usage in src/models/output/output.jl
Location | File name | Function | Source |
---|---|---|---|
src/regression/ |
coefs.csv |
coefficients from simulation (only considers 50% and 100% load), currently in use | linear regression |
src/resources/ |
NGCC_performance.xlsx |
system performance coefficients | Howard Hendrix |
src/resources/ |
overall-price-signals.csv |
all sets of electricity price series | Princeton team and NREL team |
src/models/params |
.jl files |
other data | Georgia Tech FLECCS team |
The code was initially developed by David Thierry and further developed and maintained by Pengfei Cheng. The development was funded by the ARPA-E's FLECCS program and supported by the Georgia Tech FLECCS Team (Matthew Realff, Joseph Scott, Fani Boukouvala, Howard Hendrix, Christopher Jones, Ryan Lively, Frank Kong, and Trimeric staff).