Storage + Commercial Buildings: Load Forecasting
By: Jae Beom Bae
Tags: Machine Learning, Energy, Battery, Python, Data Science

The energy storage market has yet to explode, with technical & cost challenges yet barring widespread deployment. However, we’re very close to the inflection point, which will open the doors to a whole new technology category that will forever change all facets of the broader energy sector. Starting with this project, we seek to better understand this massive technology wave (so we don’t miss it!) 🌊

Project Objective

As we seek to better understand the challenges & opportunities in the commercial storage sector, we’re modeling the dispatch of a generic battery storage unit in a commercial building setting.

Specifically, we’re trying to answer the following questions:

What are the key determinants of commercial building load (kW)? In which regions is the value proposition of commercial storage strongest? What’s preventing existing commercial-scale storage companies from hyper-growth? What are the key factors & constraints to consider when dispatching batteries in large office buildings?

We’ll first explore commercial building load, then use machine learning techniques to generate a forecast for our geographic location of interest (this post). Then, we’ll use the building load forecast as an input to test & refine our storage dispatch algorithm (coming soon ⏳).

Overview: Commercial Load Forecasting

One of the most important variables for a behind-the-meter energy storage unit is the building’s hourly energy consumption (in kWh). In order to appropriately model the optimal dispatch of a behind-the-meter energy storage unit in large commercial buildings, we need a multi-year forecast of the building’s load.

We employed supervised learning techniques (specifically polynomial regression) to predict this commercial building load. The rest of this article walks through the details of the process.

1. Identify Key Drivers 💭

We intend on using supervised learning techniques (specifically polynomial regression) to predict this commercial building load. Commercial building load depends on a variety of internal & external factors, including:

Hour

Temperature

Size (space volume)

Lighting type & consumption

HVAAC type & consumption

No. of employees

Working hours

# of electrical vehicles (EV)

# of rooms

and so on…

Unfortunately, most of this data is incredibly hard to come by in training sets. For the purposes of this analysis, we’re taking a simplistic approach to commercial load forecasting for a single building by using Outside Air Temperature (OAT) and hour as the independent variables.

Specifically, we’ll be using DoE’s Reference Building 7 (“Office”) Long-term energy consumption & outdoor air temperature dataset (source), where they’ve published hourly modeled building load data, along with a corresponding timestamp and OAT.

2. Explore Relationships 🔎

Just by digging into the relationships between our independent (hour-of-day, temperature) and dependent (building load) variables, we can identify clear patterns & insights.

Time Series (temperature, load)

To get a birds-eye view of the training data, we plotted the hourly time series data for both temperature & load. When looking at the two charts together, you can already start to draw the relationships between them (extreme temperature = higher building load).

Temperature vs Load

Things get more interesting when we observe the relationship between temperature & building load. Generally, building load seems to peak during extreme weather (0–20 ℉ and 80–100 ℉), most likely due to increased cooling & heating. This is unsurprising, as HVAC systems (Heating, Ventilation, and Air Conditioning) comprise of ~28% of total energy consumption for office buildings.

We do notice numerous occasions where despite extreme temperatures, energy consumption stays relatively flat. This is somewhat counterintuitive and will be worthwhile to investigate in the future.

Hour vs Load

The relationship between hour & building load is also fairly intuitive (though the pattern is relatively less “clean-cut”). Energy consumption levels are higher during typical working hours (9 a.m. — 5 p.m.) and drop significantly starting at 6 p.m. (a.k.a. “Happy Hour” 🍸).

One unexpected observation is the energy consumption levels between 5 a.m. & 8 a.m. are noticeably higher than during night/dawn hours. One hypothesis is that office buildings could be starting the warming/cooling a few hours before employees arrive (kinda doubt it, as it means buildings need 4 hours to cool/heat 😒). Either way, definitely worth a look later 🕵️‍♀️

3. Modeling 🤖

Based on the exploratory analysis in #2, it’s clear that the relationships between the dependent and independent variables are non-linear. Thus, we’ll use polynomial regression with regularization as our model.

To identify the best combination of hyperparameters (i.e. degree-of-polynomial, regularization alpha), we used scikit-learn’s GridSearchCV feature.

[More details on evaluation metrics coming soon… 🔃]

4. Results 📊

To forecast building load for our location of interest (Seattle, WA), we needed to obtain hourly temperature data for that city. Fortunately, this was readily available for various cities in the Historical Hourly Weather Data 2012–2017 dataset from Kaggle (source). We used this data (after some preprocessing) as inputs to the regression model we trained in #3 to predict the corresponding hourly building load.

Though the resulting hourly load shapes differ somewhat from our training dataset from OpenEI, the general trends are in line with the observations we made in #2.

Load peaks during working hours:

Load peaks during extreme weathers (mostly during cold winters):

Conclusion

Since energy consumption in commercial buildings tends to peak during working hours (especially during extreme weather events), we can make a preliminary conclusion that metro cities where temperatures get really hot (e.g. Arizona, Austin, Denver) or really cold (e.g. New York, Chicago) are more likely to be attractive markets.

Given the predicted values generally make sense and are in line with the training data, we start testing the storage dispatch model using this dataset as inputs. In parallel, we intend to further refine & test our modeling to generate more refined hourly load shapes.

As noted in the beginning, this is definitely an incredibly simplistic load forecasting model for commercial sites, as in reality there are many other variables that dictate a building’s energy consumption. While we can maintain the same assumptions by the DoE’s reference building for practical purposes of this project, it may be worthwhile extending our regression model to consider additional variables (to the extent that it’s possible).

The GitHub repo for the analysis above can be found here.

Project Contributors: Jae Beom Bae, Niel Patel