1. The case
This case study reviews an intraday load forecast model at a 5 min resolution, for a utility with a peak load of 720 MWh in an urban area servicing mainly residential customers, along with street level shops, dozens of malls, and concentrated business districts with office buildings. The load forecast model is implemented using QR AI Forecaster.
This utility trades its sourcing portfolio of the physical Power Purchase Agreement (PPA) and callable contracts in a 5 min intraday market. It can revise its buy-sell and dispatch orders every 15 minutes. The utility uses QR Trading Optimizer as its trading platform.
The utility’s total load forecast is a key input of trading optimization. Indeed, this is the global constraint of the optimal dispatch for each trading period forward: the sum of optimal dispatch / buy-sell for each trading period must be equal to this load forecast. Therefore, this utility requires accurate real-time intraday load forecasts at 5 min resolution.
2. The Data
This case study uses 5 months of actual data at 5 min resolution.
Input data used by the model:
- Actual meter data are published by the transmission / ISO authority, with one-day delay, at a network of load nodes where the utility draws its energy. We fetch every load node meter data and aggregate them as the utility total load or demand. It should be noted that with intraday we don’t have access to actual meter data.
- SCADA data is available in real-time. We use this as an intraday proxy for the utility’s real-time load. We fetch SCADA meter readings in real-time every 5 minutes, 24/7, via the API provided by the Utility. Similar to the meter data, SCADA is also published for the network of load nodes where the utility draws its energy, we fetch every load node and aggregate them as the utility total load.
Output data of the model:
Output data of the model: load forecast for every 5 min period of the day, revised every 15 min.
3. Data Exploration
QR Data Visualization toolbox is used to inspect the data and provide insights into its behavior:
(a) There are dips in consumption at 12:30 pm for lunch, and 4:00 pm when people go home, therefore, the utility wants to capture these in the forecast.
(b) The 30 min average is smoother than the 5 min data.
(c) Observe the faint step-like behavior in the 5-min load average. It seems the meter reading equipment of this utility tends to accumulate load and publish it at the end of every 5 min period.
(d) The behavior (c) is remedied in the QR AI Forecaster by changing the resolution of the load data during AI modeling, to get smoother data, while preserving the overall behavior or shape of the data.
QR Data Visualization is used to plot the daily pattern of the data across the days of the week:
The above plots suggest:
(a) Weekends, particularly Sunday, have lower consumption.
(b) The load on Saturday is much higher when compared to the load on Sunday.
(c) Every day exhibits a dip at lunch time, except on Sundays when people are at home or out and about.
(d) Peak periods are from 7 or 8 am to 7 pm. The rest are off peak.
The following conclusions can be drawn by configuring the AI load forecast model for this data:
- Because of (a) and (b) we add Weekday as an internal predictor to our AI model.
- The Model Splitter feature of the AI modeling can be activated to create 3 different daily models for weekdays, saturday and sunday, and for each day to create a model for the peak and off peak periods. This is a total of 6 virtual models trained and executed at run time.
4. Data Issues
This utility’s load and SCADA data present several challenges. QR Data Visualization is used to plot some of the behavior of the data:
Real-time SCADA data is unstable, at some periods, ranging from a few periods to days, some nodes publish erroneous or no data. This creates gaps or jumps. Mitigating these is addressed in a later section when we discuss the AI Forecast Model.
There are 3 obvious issues with these load data:
DI1. The SCADA meter readers, plotted in orange, can jam and not publish data and create gaps at some periods.
DI2. The SCADA meter readers, plotted in orange, can publish erroneous data in the form of jumps at some period.
DI3. This is a 5 min market and meter, price and settlement data are in 5 min resolution. However, the SCADA and meter reading are not smoothly transitioning through the 5 min intervals and seem to accumulate readings and publish data incrementally at the end of each period. This creates little sharp indents in the load and SCADA data.
These issues will negatively impact the training of any AI model. Fortunately, they can and are remedied in the design of the AI load forecast model.
5. The Forecast Model
As explained above, the accurate intraday load forecast required by this utility is configured in QR AI Forecaster no-coding Auto-ML platform with the following features:
Intraday real-time load forecast model
Since SCADA is available every 5 min, we configure a real-time load forecast model which adjusts its forecast level, at each forecast round, by taking the very last 5 min SCADA load reading as its starting point to forecast the load for every subsequent 5 min interval until the end of the day. This is repeated every 10 minutes, 24/7. In other words, the real-time SCADA is used as the previous point predictor of the AI model. A different Day-ahead forecast model is discussed in a separate case study.
As explained above, this is a key feature of QR AI Forecaster. Once activated, it creates 3 different daily models for weekdays, Saturdays and Sundays, and for each day, it creates one model for the peak and one for the off-peak period. In this example, in total, there are 6 virtual AI models trained and executed at runtime.
2 Timescale modeling
The Data Issue (DI3) is the most serious as these little dents in the load and SCADA data induce substantial errors in the training of the AI model. We used the time-rescaling feature of QR AI Forecaster:
We introduced a 30 min virtual version of the 5 min load data, to be calculated at a runtime for the training of the AI model. This is done with simple configurations.
There are 2 options to arrive at a 30 min data resolution.
Option 1: We add the 5 minute load to get a 30 minutes load. The load is therefore 6 times bigger at the 30 min scale.
Option 2: We just make a moving average of the 5 min data to make 30 min data points. In this case the scale of the load data remains the same as the 5 min load.
With either option (1) or (2) the virtual 30 min load data no longer represents the small indents of the 5 min data. This is good news.
However, option (1), even though the natural option, still suffers from missing SCADA points. Such gaps lower the level of the 30 min aggregation. We will need to add an appropriate gap filling method.
But option (2) fills in automatically the missing SCADA points by moving average, and remedies both Data Issues (DI1) and (DI3).
QR AI Forecaster is configured with the following features:
- We configure a 30 min data resolution forecast using method (Option 2).
- We check the box that automatically produces both 30 min and 5 min forecasts. The 5 min load forecast is deduced from the 30 min forecasts by linear interpolation. This is the final design of the load forecast model for the client.
This method offers 2 great advantages:
- First: As explained below the accuracy of the 5 min forecasts obtained by using the actual 30 min forecast are very good. This is an indication that the above method works quite well in real-applications.
- Second: Forecasting at the 30 min resolution and deducing 6 forecasts at 5-min resolution by instantaneous interpolation uses a lot less computing resources than making 5 min forecasts.
The AI models
We use the ML model XGBoost as the AI model for this forecast. This is one of the many AI models offered by QR AI Forcaster. XGBoost is the optimized implementation of gradient boosted decision trees. It is currently a popular model due to its ingenious design in terms of robustness, speed and performance.
The following parameters are used in the XGBoost load forecast model. The actual parameter values are proprietary information:
|Booster||Number of estimators||
|Max depth||Min child weight||Max delta step|
|Subsample||l1 regularization coefficient||l2 regularization coefficient|
|Base score||Evaluation metric||Objective|
Data Pre-processing & Features selection are configured in their own tab in QR AI Forecaster dashboard:
- A calendar is attached to the AI model to determine working days, holidays and weekends, with the ability to switch a weekday holiday to the nearest Sunday.
- Outlier point removal, by standard deviation or min max methods, is applied to clean the SCADA data and remove the erroneous low or spiky readings when device reading fails.
- As a precautionary measure, we always activate the gap filling method via linear interpolation.
- QR AI Forecaster allows to juxtapose data for different periods to make longer time series for model training. More precisely, we use actual data until yesterday and SCADA data for today until the current period.
- The following predictors are also set:
Lagged Predictors: Previous Period, Previous Day, Previous Week
Builtins: Hour, Period, Weekday Enhanced, Workingday
Lagged Predictors: Previous Period, Previous Day, Previous Week
Builtins: Hour, Weekday
QR Forecaster Auto-ML
Toolbox is used to optimize the AI model by identifying the value of 5 to 10 key parameters of the XGBoost model that minimize the MAPE of the forecast. This is done by genetic computing rather than exhaustive search. Indeed, examining individually the combinations of 5 parameters, each with 10 possible values, would amount to 100,000 AI models.
QR AI Forecaster allows offline training of an AI model at a set schedule, e.g., training the model once early in the morning at 1:00 am, and saving the model for next day forecast execution.
What about execution?
Each forecast job can have its own execution schedule. We set the real-time intraday forecasts to run right after fetching SCADA data, re-executed and published every 15 minutes 24/7.
6. Forecast and accuracy analysis
The execution of the intraday load forecast, for 24 hours, at 5 min resolution, takes about 2 minutes:
Forecast error is computed by MAPE.
|MAPE: Daily||MAPE: 2 months, May 1 - June 30|
|5 min Forecast||Around 1 %||2.07%|
|30 min Forecast||Around 1 %||1.99%|
Note that MAPE is computed comparing the forecasts and the actual data. Recall that the actual data is at the 5 min resolution and the 30 minute data was a virtual data created via moving average for forecasting purposes.
- MAPE for the 30 min forecast uses the 30 min forecast above as is, against the 30 min virtual load data obtained by averaging the 5 min load data.
- MAPE for the 5 min forecast uses the 5 min forecast data deduced from the actual 30 min forecast above, against the actual 5 min load data.
What is notable is that the MAPE figures are pretty much the same. This is an indication that the method used by QR Forecaster worked very well in this example, by first forecasting load at the average 30 min resolution, and then deducing the 5 min load forecast.
QR AI Forecaster offers a wide range of ready-for-use, advanced AI forecasting solutions, learn more about our forecasting solutions.