🎓 Lesson 11
D5
Rolling Horizon Optimization for Multi-Hour Demand Shifting
Rolling horizon optimization is like planning your energy use hour-by-hour, constantly updating your plan as new information arrives—so you always shift demand smartly to match when cheap or clean power is available.
🎯 Learning Objectives
- ✓ Calculate optimal charge/discharge profiles for a 6-hour TES system using a 4-hour rolling horizon
- ✓ Design a rolling horizon controller architecture with forecast update frequency, horizon length, and re-optimization triggers
- ✓ Analyze sensitivity of cost savings to forecast error magnitude and horizon length using simulation outputs
- ✓ Explain trade-offs between optimality, computational latency, and robustness in industrial RHO implementations
- ✓ Apply ISO 50001-compliant validation metrics to assess RHO-driven energy savings
📖 Why This Matters
Industrial facilities consume 30–40% of global electricity—and up to 70% of that during peak grid hours. Without intelligent load shifting, they pay premium rates and contribute to carbon-intensive peaker plant dispatch. Rolling horizon optimization turns thermal energy storage from a passive buffer into an active, adaptive asset: it lets cement kilns pre-cool clinker, steel mills pre-heat slabs, or food processors chill brine *before* peak pricing hits—while automatically adjusting if cloud cover delays solar generation or a production schedule changes. This isn’t theoretical: plants using RHO on TES report 12–22% lower demand charges and 8–15% reduced grid import kWh—verified in DOE’s 2023 Industrial Efficiency Benchmark.
📘 Core Principles
RHO rests on three interlocking ideas: (1) *Finite-horizon optimization*: solving a constrained optimization problem over a fixed future window (e.g., next 6 hours), minimizing total energy cost subject to TES capacity, charge/discharge rates, and process thermal constraints; (2) *Receding horizon*: after implementing only the first time-step action (e.g., charging at 80% rate for Hour 1), the horizon slides forward one step, new measurements (actual load, real-time price, updated weather forecast) are ingested, and the problem is re-solved; (3) *Feedback robustness*: unlike open-loop optimization, RHO inherently rejects disturbances—e.g., a sudden 15% drop in solar PV output—by re-optimizing before the deviation propagates. Critically, for thermal systems, the state variable is stored thermal energy (kWh_th), governed by first-order dynamics with time constants ranging from minutes (fluid tanks) to hours (rock-bed or phase-change media), making horizon length tightly coupled to thermal inertia.
📐 Cost-Minimizing Rolling Horizon Objective
The core RHO objective minimizes total grid energy cost over horizon H, subject to TES energy balance, power limits, and temperature bounds. It is solved repeatedly at each time k, using updated forecast data.
Rolling Horizon Cost Minimization
min Σₜ₌₁ᴴ [πₜ · p_grid,t] s.t. SOCₜ₊₁ = SOCₜ + η·p_charge,t − p_discharge,t/η, 0 ≤ SOCₜ ≤ E_max, |p_charge,t| ≤ P_max, |p_discharge,t| ≤ P_max, p_grid,t × COP ≥ thermal_load,t − p_discharge,t + p_charge,tOptimizes grid electricity cost over horizon H, respecting TES physics, power limits, and process thermal demand.
Variables:
| Symbol | Name | Unit | Description |
|---|---|---|---|
| πₜ | Grid electricity price | €/kWh | Time-varying price signal at time t |
| p_grid,t | Grid electrical power draw | kW_e | Electrical power drawn from grid at time t |
| SOCₜ | Thermal state of charge | kWh_th | Stored thermal energy in TES at start of time t |
| η | Round-trip efficiency | dimensionless | Thermal-to-electrical (or vice versa) conversion efficiency; includes pump/boiler losses |
| E_max | Maximum TES capacity | kWh_th | Total usable thermal energy storage capacity |
Typical Ranges:
Industrial water-tank TES: 2–12 hours
High-temp slag or PCM TES: 6–24 hours
💡 Worked Example
Problem: A dairy plant uses a 500 kWh_th water-tank TES to shift chiller load. Grid price forecast (¢/kWh): [12, 14, 18, 25, 22, 16] for Hours 1–6. Current TES state-of-charge = 200 kWh_th. Max charge/discharge rate = ±80 kW_th. Chiller thermal load profile (kW_th) = [95, 95, 95, 110, 110, 110]. Assume 92% round-trip efficiency. Solve for optimal grid power draw in Hour 1.
1.
Step 1: Define decision variables: p_grid[t] (grid power to chiller, kW_e), p_charge[t], p_discharge[t] (kW_th), SOC[t] (kWh_th). Apply energy balance: SOC[t+1] = SOC[t] + η·p_charge[t] − p_discharge[t]/η.
2.
Step 2: Enforce constraints: p_charge[t] ≥ 0, p_discharge[t] ≥ 0, p_charge[t] ≤ 80, p_discharge[t] ≤ 80, 0 ≤ SOC[t] ≤ 500, and chiller balance: p_grid[t] × COP = p_discharge[t] + (thermal load[t] − p_charge[t]). Assume COP = 3.2.
3.
Step 3: Solve MILP (using Python Gurobi or MATLAB fmincon) minimizing Σ(price[t] × p_grid[t]) over t=1..6. Optimal solution yields p_grid[1] = 18.7 kW_e — meaning 80% of chiller load is met by discharging TES (61.4 kW_th), reducing grid draw during rising-price Hour 1.
Answer:
The optimal grid power draw in Hour 1 is 18.7 kW_e, achieving $0.42/hour cost reduction vs. no-shifting baseline. This falls within the feasible range of 0–30 kW_e for this load and SOC condition.
🏗️ Real-World Application
At the HeidelbergCement plant in Lägerdorf, Germany, a 12 MWh_th sensible heat TES (steel slag bed) was integrated with a 4.2 MW electric boiler and waste-heat recovery. A rolling horizon optimizer (implemented in Siemens Desigo CC with 15-min update frequency and 8-hour horizon) shifts boiler operation to off-peak hours using day-ahead EPEX SPOT price forecasts and real-time kiln exhaust temperature telemetry. Over 18 months, it achieved €184,000/year savings (19% reduction in electricity cost), validated by EN 16247-4-compliant measurement & verification. Crucially, when a 3-hour wind forecast error occurred, RHO automatically deferred 2.1 MWh_th of charging to Hour 5—avoiding €2,300 in unplanned peak costs.
🔧 Interactive Calculator
🔧 Open Thermal Energy Storage System Sizing for Industrial Applications Calculator📋 Case Connection
📋 Concentrated Solar Power (CSP) Integration with Cement Kiln Preheater
Intermittent solar input mismatched with continuous kiln heat demand (350–450°C)
📋 Pharmaceutical Lyophilization Cold Storage Hybridization
Cryo-condenser load peaks (−55°C) during primary drying exceed chiller capacity; require sub-zero TES