Demand Response Optimization
DR · MILP · Load Shaping
Flexibility · Peak Shaving · Price Response
If generation can't reach demand, bring demand to generation. Demand Response (DR) treats consumer load as a controllable resource — shifting it in time, curtailing it during emergencies, or bidding it into markets. The OR problem: given a price signal or curtailment incentive, how should an aggregator or ISO reshape load to minimize cost while respecting consumer comfort and rebound effects? Mixed-integer programming for direct load control, bi-level formulations for aggregator-ISO interaction, stochastic programming for uncertain customer response.
The problem
Load as a controllable resource
Electricity demand has always been viewed as exogenous — a given load that generation must meet. Demand response flips the script. Given a financial incentive, many consumers will shift laundry, delay dishwashing, raise or lower thermostats a degree, or allow their electric vehicle to pause charging for an hour. Industrial customers can defer smelters, pumps, or HVAC loads entirely. Aggregated across thousands of participants, these small actions can total to 5–10% of peak load in mature markets — enough to defer new peaking generation and transmission investment.
DR programs come in two flavors. Price-based DR (time-of-use tariffs, critical peak pricing, real-time pricing) uses a price signal and relies on customer self-optimization. The aggregator or utility sets prices; each customer optimizes their own comfort-vs-cost trade-off. Incentive-based DR (direct load control, interruptible tariffs, emergency DR) gives the operator direct control: customers pre-agree to curtailment for a payment. DLC is modelled as MILP with customer-specific comfort constraints; price-based is modelled via a demand-elasticity curve or a bi-level formulation with consumer-optimization lower level.
Modern DR increasingly interacts with distributed energy resources (rooftop solar, home batteries, EVs). A prosumer with solar and a home battery does joint optimization of generation, storage, and demand response. At the aggregator level, Virtual Power Plants (VPPs) coordinate thousands of such prosumers to bid into wholesale markets — arguably the defining architectural shift in power-systems operations of the 2020s.
Mathematical formulation
Direct Load Control MILP & bi-level aggregator
Notation
| Symbol | Meaning | Units |
|---|---|---|
| $\mathcal{T}$ | Time periods | — |
| $\mathcal{K}$ | DR-enrolled customer classes | — |
| $L_t^0$ | Baseline (uncurtailed) load | MW |
| $\pi_t$ | Wholesale electricity price | $/MWh |
| $\phi_k$ | Curtailment payment to class $k$ | $/MWh |
| $\gamma_k$ | Max curtailable fraction for class $k$ | pu |
| $\Delta_k^{\max}$ | Max consecutive curtailment hours for $k$ | h |
| $\beta_{k,t}$ | Rebound coefficient (post-curtailment uplift) | pu |
| $\delta_{k,t}$ | Curtailment amount for $k$ in $t$ | MW |
| $y_{k,t}$ | Curtailment-active binary | {0,1} |
| $L_t$ | Post-DR net load | MW |
Direct Load Control MILP
The ISO / aggregator minimizes wholesale-procurement cost minus curtailment payments:
Load balance with rebound:
(Rebound captures the "catch-up" load once AC turns back on.)
Curtailment limits:
Max consecutive hours:
Daily total curtailment cap (service-level agreement):
Bi-level aggregator-ISOZugno et al. (2013)
Upper level (aggregator, profit-maximizing):
subject to lower-level market-clearing (yielding $\lambda_t$) and customer-elasticity response ($\delta_t = \epsilon (\phi - \phi_0)$). MPEC (Mathematical Program with Equilibrium Constraints) reformulation linearizes to MILP via big-M. Used to study strategic DR participation.
Price-elasticity demand model
Alternative to MILP: treat each consumer class as a demand curve $D_k(p) = D_k^0 (p/p_0)^{-\epsilon_k}$ with elasticity $\epsilon_k$. Optimal ISO pricing solves a convex program where marginal supply cost equals $-p D'_k(p)/D_k(p)$ integrated over all classes. Simpler than MILP, less realistic for short-term operations.
Complexity
DLC MILP is NP-hard but practical at mid-size: a 24-hour, 100-customer-class instance has ~2,400 binary variables and 5,000 continuous, solving in seconds on Gurobi/CPLEX. Bi-level MPEC adds equilibrium-constraint binaries, yielding much harder problems (10,000+ binaries) but still tractable with decomposition.
Real-world data
PJM Demand Response Programs
PJM DR programs include Emergency DR, Economic DR, and Synchronized Reserve. Historical data on activation, curtailment volumes, and clearing prices are publicly available. PJM clears ~10 GW of DR capacity annually.
OpenEI Demand Response datasets
OpenEI hosts residential and commercial smart-meter datasets from major US utilities, enabling realistic aggregator-level DR simulation with thousands of individual load profiles.
Illustrative 24-hour case (this page)
The interactive solver handles a 24-hour DLC problem with 3 customer classes (residential AC, commercial HVAC, industrial process) each with distinct curtailment limits, payment rates, and rebound coefficients. Baseline load follows a typical summer peaking profile.
Interactive solver
24-hour DLC MILP · load reshape visualization
Program parameters
Load reshape & price signal
Solution interpretation
The load-reshape chart shows the peak-shaving magic: baseline load spikes during evening rush (5-9pm); post-DR load is pushed down during peaks. But look closely at the night/early-morning hours — post-DR load is often higher because of the rebound effect. AC units delayed during peaks run longer at off-peak. Thermostats that drift warmer during the peak now cool harder after. The net daily energy consumption is roughly unchanged; only the shape shifts.
The rebound factor is a central design knob. Low rebound (0–0.2) means DR is essentially free load-shifting. High rebound (0.5–0.8) means each MW curtailed during peak costs 0.5–0.8 MW of off-peak extra consumption, eating into the benefit. Behavioral studies estimate residential AC at 0.2–0.4, industrial process at 0.0–0.1 (not rebounded), EV charging at 1.0 (pure shift, full rebound).
The net savings metric is the operator's bottom line: wholesale-cost savings from avoided peak generation minus payments to DR participants. If payment is too low, no one participates; if too high, the program loses money. Real DR programs price in a 20–40% margin below peak wholesale prices to cover transaction costs and adverse selection.
Extensions & variants
Real-time pricing (RTP) games
Non-cooperative game among prosumers, each optimizing their own schedule under a common price signal that depends on aggregate load. Equilibrium solved by best-response iteration or as a generalized Nash equilibrium problem.
Stochastic DR under uncertain response
Customer participation is uncertain (some opt out, some have reduced flexibility). Two-stage stochastic MILP: first stage dispatches DR signals, second stage resolves actual participation. Scenario-based.
Virtual Power Plants (VPPs)
Aggregator coordinates thousands of prosumers (rooftop solar + battery + flexible load) as a single market participant. Optimization combines generation, storage, and demand response across all participants.
EV charging as DR
Electric vehicles are flexible loads on wheels. Charging schedules can be shaped around price signals and grid constraints. Vehicle-to-grid (V2G) adds discharging capability, making EVs bidirectional DR assets.
Grid-interactive efficient buildings
Commercial buildings with smart HVAC, lighting, and thermal mass as distributed flexibility resources. Model-predictive control minimizes energy cost while respecting occupant comfort envelopes (temperature, CO2, daylight).
Emergency DR & reliability
High-value DR activated during grid emergencies (generation shortage, transmission failure). Valued at ~$3,000–$10,000/MWh (Value of Lost Load). Modeled as reliability-constrained ISO operation.