Skip to content

AwkJay/energy_pyomo_model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pyomo Energy System Model

This project implements a small electricity system planning model using Pyomo. The goal is to understand how optimization models can be used to plan electricity generation over time and determine the least-cost mix of technologies required to meet demand.

The model represents a simplified power system and solves a linear optimization problem to decide how much electricity should be generated by each technology each year.

Scope

Technologies included in the model:

  • Coal
  • Gas
  • Wind
  • Solar
  • Hydro

Planning horizon:

  • 2025–2034

The optimization minimizes total system cost while satisfying electricity demand and respecting system constraints such as capacity limits, emissions caps, and renewable generation requirements.

Project Structure

The repository is organized in a modular way so each part of the optimization model is easier to understand and modify.

data/
model/
scenarios/
utils/
run_model.py
requirements.txt

data/

Contains the input datasets used by the model.

  • technology_params.json — technology characteristics such as capital cost, variable cost, capacity factor, and emissions.
  • demand_projection.csv — projected electricity demand for each year in the planning horizon.

model/

Contains the core Pyomo model components:

  • sets (technologies and years)
  • parameters
  • decision variables
  • constraints
  • objective function

These pieces together define the optimization problem.

scenarios/

Reserved for running alternative policy or planning scenarios such as different emissions limits or renewable targets.

utils/

Helper functions for loading input data and extracting model results.

Running the Model

  1. Create and activate a virtual environment
python -m venv venv
venv\\Scripts\\activate
  1. Install dependencies
pip install -r requirements.txt
  1. Run the optimization model
python run_model.py

The script loads the input data, builds the Pyomo model, runs the solver (GLPK), and prints the optimized generation results.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages