Grid Planning Tool

A tool that forecasts electricity demand in the future and allows the user to optimize the grid by either reducing carbon emissions or generation cost.
Author

Srini Dadi, Nate Crain, Nick Falls

Published

May 5, 2026

Teammate ePortfolios:
Nate Crain: https://natejcrain.quarto.pub/ineg-project/
Nick Falls: https://nickfalls2.quarto.pub/nick-falls/posts/Energy%20Grid%20Planning%20Tool/

Project Summary and Skills Used

Our project used data from the Energy Information Agency, Weather data, and economic data from the Federal Reserve Bank of St. Louis in order to create a causal forecast for differnet time horizens: 1-3 days, 1-12 months, and 1-5 years. After that, we created a linear program for each forecast horizen and used data from the Natinal Renewable Energy Labaratory to find figures like generation capacity per source, carbon emissions per mw, and cost per mw. We then defined a seperate coefficent called carbon weight that allows that lets the user choose choose how much to minimize for carbon or cost using a slider in the vaddin page. This project allowed us to test our skills in: object oriented programing, SMILE, google OR tools, and Vaddin.

Project Development Proccess

Our original idea was to have our linear program ensure that the grid optimization the solver produced also accounted for grid reliability; not just cost and carbon. However, we realized that this was too difficult since wind and solar generation are probabalistic. In order to include reliability constraints in our model, we would have had to use some form of stochastic programing using wind and solar probability distributions. We opted to just use a determanistic program that only optimizes the grid for carbon and cost. Our final result was not as robust as we would have liked, but we are still satified with it concidering how complicated grid planning in the real world. We had to manage the trade off between assumptions and model accuracy/complexity.

Key Features

A key feature that we felt was particularly elegent was our slider functionality, and how we incorperated it into our objective function for each linear program. The slider allows the user to minimize the extent to which the linear program optimizes for carbon emissions or generation cost. The user input from the slider went into a method as a parameter called “carbonWeight” that dynamicaly chages the objective function based on user input. Slider Functionality

Reflection

From this project, my understanding of encapsulation in object oriented programing has definetly grown. The main contribution I am proud of was creating the linear programs since I had to do lots of background reaserch into the complexity of grid management and had to manage model complexity and model accuracy. I definetly have grown as a coder since I now understand the intriqaces of software production outside the classroom, while working with others. I feel much more confidant about creating machine learning models in java and tuning them.