- The paper introduces an optimal scheduling strategy integrating PV forecasts with battery storage to minimize net electricity costs.
- It employs a Long Short-Term Memory network to accurately predict half-hourly PV generation and load demand (MSE = 0.000012, R² = 0.999379).
- The study demonstrates over 40% cost reduction compared to grid-only consumption by smartly managing battery discharge during expensive peak hours.
This paper presents an optimal scheduling strategy for energy storage systems combined with photovoltaic (PV) installations to minimize electricity costs for consumers under time-of-use tariffs (Optimal Scheduling of Energy Storage for Power System with Capability of Sensing Short-term Future PV Power Production, 2021). The core idea is to leverage short-term forecasts of PV power production and household load demand to make intelligent decisions about when to charge the battery, discharge it, or trade power with the grid.
System Model and Objective
The system consists of:
- A PV generation system.
- A battery energy storage system (BESS).
- Household electrical load.
- Connection to the utility grid with time-varying tariffs (specifically, the UK's Economy 7 tariff).
The primary goal is to minimize the net cost of electricity over a period (e.g., a year). The cost function J is defined to calculate electricity charges, considering tariffs for purchasing power (Pitar) during different times (peak/off-peak) and the rate for selling excess power (Petar) back to the grid.
J=d=1∑365t=1∑48(Costimport(d,t)−Revenueexport(d,t))
where Costimport depends on grid power purchased at tariff Pitar and Revenueexport depends on excess power sold at tariff Petar.
Forecasting with LSTM
Accurate forecasting is crucial for effective scheduling. The paper employs a Long Short-Term Memory (LSTM) network to predict one-day-ahead (specifically, the next 48 half-hourly intervals) PV power generation and consumer load demand.
- Why LSTM? LSTMs are well-suited for time-series data like energy profiles because they can capture long-range dependencies and overcome the vanishing gradient problem common in simple RNNs. The internal gates (forget, input, output) allow the network to selectively remember or forget information over time.
- Input/Output: The LSTM model takes the previous 29 days of half-hourly data as input to predict the next day's 48 half-hourly values for both PV generation and load.
- Training:
- Dataset: Real half-hourly PV generation (Sheffield Solar database) and household load data (ELEXON) for one year.
- Split: 80% for training, 20% for validation.
- Optimizer: ADAM with a learning rate of 0.001.
- Epochs: 50.
- Batch Size: 1.
- Loss Function: Mean Squared Error (MSE).
- Regularization: Dropout used to prevent overfitting.
Optimal Scheduling Strategy
Based on the predicted PV generation (PSpred) and load demand (PLpred) for each half-hour interval t, the scheduling logic operates as follows:
- PV Generation > Load Demand (PSpred(t)>PLpred(t)):
- Meet the load PLpred(t) directly using PV power.
- Calculate excess power: Pexcess(t)=PSpred(t)−PLpred(t).
- Charge the battery with Pexcess(t) until the battery reaches its maximum state of charge (SoC).
- If the battery is full, sell the remaining excess power to the grid at the export tariff Petar.
- Load Demand > PV Generation (PLpred(t)>PSpred(t)):
- Meet as much load as possible using available PV power PSpred(t).
- Calculate unmet demand: Punmet(t)=PLpred(t)−PSpred(t).
- If it's a peak-hour and the battery has sufficient charge (above minimum SoC), discharge the battery to meet Punmet(t).
- If the battery cannot fully meet Punmet(t) (either due to low SoC or insufficient power capacity), or if it's an off-peak hour, purchase the remaining required power from the grid at the import tariff Pitar. The strategy prioritizes using stored energy during expensive peak hours.
A simplified pseudocode representation of the scheduling logic for a time step t
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
PV_available = PV_pred[t]
Load_needed = Load_pred[t]
Grid_power = 0
Battery_power = 0 # Positive for discharge, negative for charge
if PV_available >= Load_needed:
# Excess PV generation
PV_to_load = Load_needed
Excess_PV = PV_available - PV_to_load
# Try charging battery
Charge_power = min(Excess_PV, max_charge_rate, capacity_to_reach_max_SoC)
Battery_power = -Charge_power
update_SoC(Battery_power) # Decrease SoC based on charging
# Sell remaining excess to grid
PV_to_grid = Excess_PV - Charge_power
Grid_power = -PV_to_grid # Negative indicates export
else:
# Load exceeds PV generation
PV_to_load = PV_available
Unmet_load = Load_needed - PV_to_load
# Try discharging battery (prioritize during peak hours)
if is_peak_hour[t] and SoC > min_SoC:
Discharge_power = min(Unmet_load, max_discharge_rate, capacity_above_min_SoC)
Battery_power = Discharge_power
update_SoC(Battery_power) # Increase SoC based on discharging
Unmet_load -= Discharge_power
# Purchase remaining unmet load from grid
Grid_power = Unmet_load # Positive indicates import
Cost[t] = calculate_cost(Grid_power, import_tariff[t], export_tariff[t]) |
Results and Practical Implications
The results demonstrate that combining accurate short-term forecasting (via LSTM) with an intelligent scheduling strategy that leverages battery storage can yield substantial electricity cost savings (over 40% in this case paper) for households with PV systems, especially under time-of-use pricing schemes like Economy 7. This provides a strong economic incentive for adopting such hybrid systems. The implementation requires reliable data sources, a well-trained LSTM model, and a control system to execute the scheduling decisions based on forecasts and battery status.