Calculator D4

Battery Energy Storage System (BESS) Dispatch Algorithms

BESS dispatch algorithms are sets of rules that decide when to charge or discharge a battery system to save money, support the grid, or meet energy goals.

Typical Scale
10 MW / 40 MWh (commercial) to 300+ MW / 1,200+ MWh (utility-scale)
Key Standards
IEEE 1547-2018, UL 9540A, NERC BAL-003-1, FERC Order No. 2222
Industry Applications
Peak shaving, frequency regulation, solar firming, black-start support, transmission deferral

⚠️ Why It Matters

1
Inaccurate SoC estimation
2
Violation of depth-of-discharge limits
3
Accelerated calendar/cycle degradation
4
Reduced asset lifespan (<50% of warranted cycles)
5
Loss of revenue eligibility in capacity markets

📘 Definition

Battery Energy Storage System (BESS) dispatch algorithms are deterministic or stochastic control strategies that determine real-time power setpoints (kW/kW·h) for charging and discharging based on forecasted load, generation, electricity prices, grid signals, and state-of-charge constraints. They operate within optimization frameworks—ranging from rule-based heuristics to model predictive control (MPC) and reinforcement learning—and must satisfy physical limits (power rating, energy capacity, round-trip efficiency, degradation constraints) and external requirements (utility tariffs, VPP participation agreements, ISO market rules).

🎨 Concept Diagram

BESSGridLoad

AI-generated illustration for visual understanding

💡 Engineering Insight

The most robust BESS dispatch systems do not optimize for instantaneous profit—they trade off $/MWh today against $/lifetime-cycle tomorrow. A 2.3% increase in daily arbitrage revenue often correlates with a 17% faster capacity fade; embedding degradation as a first-class variable—not a post-hoc correction—is what separates production-grade algorithms from academic prototypes.

📖 Detailed Explanation

At its core, BESS dispatch answers a simple question: 'Should the battery buy or sell energy right now?' Early implementations used fixed time-of-use (TOU) schedules—charging overnight and discharging during peak hours. These ignore real-time grid conditions, price volatility, and interdependent variables like temperature-dependent efficiency.

Modern dispatch moves beyond static rules. Model Predictive Control (MPC) solves a receding-horizon optimization problem every 5–15 minutes, incorporating rolling forecasts of electricity prices, solar/wind generation, and load demand. Constraints include battery physics (SoC bounds, maximum current, thermal derating), utility interconnection requirements (e.g., reactive power support obligations), and contractual commitments (e.g., VPP availability guarantees).

Advanced implementations integrate degradation modeling directly into the objective function—using empirical or physics-informed models (e.g., Shepherd, Bernardi, or dual-lithium-intercalation models) to estimate cycle loss per dispatch action. Some commercial systems now use online parameter estimation to adapt degradation coefficients in real time using impedance spectroscopy or incremental capacity analysis—enabling dynamic recalibration of the DCF without factory-level recalibration.

🔄 Engineering Workflow

Step 1
Step 1: Define dispatch objectives (economic, reliability, regulatory, or hybrid)
Step 2
Step 2: Integrate real-time telemetry (SoC, voltage, temperature, grid frequency, LMP, weather forecasts)
Step 3
Step 3: Run short-term forecast engine (load, renewables, price, grid events)
Step 4
Step 4: Solve constrained optimization (e.g., MILP or MPC) with degradation-aware cost function
Step 5
Step 5: Apply safety and compliance guardrails (IEEE 1547-2018 ride-through, UL 9540A thermal limits)
Step 6
Step 6: Issue validated setpoints to PCS (Power Conversion System) via Modbus/TCP or IEC 61850 GOOSE
Step 7
Step 7: Log dispatch decisions, actual performance, and deviation analysis for model retraining

📋 Decision Guide

Rock/Field Condition Recommended Design Action
Real-time LMP > $85/MWh AND SoC < 70% Dispatch discharge at P_max; activate price-responsive curtailment logic
ISO emergency signal received AND SoC > 40% Hold 30% headroom; pre-position for 100-ms response; disable economic dispatch for 15 min
Forecasted cloud cover > 80% in next 2 hrs AND PV generation > 120% of load Charge at 0.8×P_max to absorb excess solar; enforce SoC ceiling at 85%

📊 Key Properties & Parameters

State of Charge (SoC)

10–90% (operational window to avoid degradation)

The percentage of available energy relative to total usable capacity at a given time.

⚡ Engineering Impact:

Directly constrains dispatchable power and determines whether charging or discharging is permitted.

Round-Trip Efficiency (RTE)

82–92% (for lithium-ion BESS with liquid cooling)

Ratio of energy discharged to energy charged, accounting for losses in conversion and thermal management.

⚡ Engineering Impact:

Reduces net arbitrage profit and increases effective cost per kWh delivered.

Power Rating (P_max)

0.2–2.0 C-rate (e.g., 200 kW for 100 kWh system)

Maximum continuous active power (kW) the BESS can deliver or absorb, subject to thermal and voltage limits.

⚡ Engineering Impact:

Limits ramp rate capability and determines grid-support service eligibility (e.g., regulation, contingency reserve).

Degradation Cost Factor (DCF)

$15–$65 / EFC (lithium iron phosphate), $35–$110 / EFC (NMC)

Monetary penalty per equivalent full cycle (EFC) applied in economic dispatch to internalize lifetime wear.

⚡ Engineering Impact:

Prevents short-term revenue maximization from eroding long-term asset value and warranty compliance.

📐 Key Formulas

Equivalent Full Cycle (EFC)

EFC = ∫|dSoC| / (2 × ΔSoC_full)

Quantifies cumulative battery wear as fraction of one full 0–100% charge/discharge cycle.

Variables:
Symbol Name Unit Description
EFC Equivalent Full Cycle dimensionless Cumulative battery wear expressed as fraction of one full 0–100% charge/discharge cycle
dSoC Change in State of Charge dimensionless Infinitesimal change in battery state of charge
ΔSoC_full Full State of Charge Range dimensionless Total usable state of charge range, typically 1.0 for 0 to 100%
Typical Ranges:
Daily operation (arbitrage)
0.15–0.45 EFC/day
Frequency regulation (fast cycling)
0.8–2.2 EFC/day
⚠️ ≤ 0.5 EFC/day sustained average to maintain 10-year warranty

Net Arbitrage Revenue

R_net = Σ(P_discharge × λ_discharge − P_charge × λ_charge) × η_RTE − C_degrad

Total dispatch revenue minus energy losses and degradation cost.

Typical Ranges:
CAISO summer peak months
$12–$38 / MWh dispatched
NYISO capacity market + energy
$22–$51 / MWh dispatched
⚠️ C_degrad must be ≥ 15% of gross revenue to ensure LCOE < $180/MWh over 10 years

🏭 Engineering Example

PG&E Moss Landing Energy Storage Facility (Phase II)

N/A (grid-scale lithium-ion installation on reclaimed industrial land)
RTE_measured
87.4%
Dispatch_horizon
4-hour MPC look-ahead
P_max_continuous
300 MW
Energy_capacity_usable
1,200 MWh
SoC_operational_window
15–85%
Degradation_cost_factor
$42.6 / EFC

🏗️ Applications

  • Commercial building demand charge reduction
  • Utility-scale solar firming
  • Microgrid island-mode stabilization
  • ISO-regulated frequency response markets

📋 Real Project Case

San Francisco Municipal Utility District (SFMUD) Office Tower DR Pilot

12-story municipal office building in downtown SF with 1.2 MW peak load

Challenge: Limited rooftop space for generation; required 20% peak load reduction during CAISO evening ramps wi...
SFMUD Office Tower DR Pilot Tower Rooftop: Limited Space HVAC ΔT×C×t = 3.2°C·kWh/hr PLM Shed Margin: 185 kW Battery CAISO OpenADR 2.0b 20% Peak Load ↓ CAISO Evening Ramps
Read full case study →

🎨 Technical Diagrams

SoC=25%DischargeChargeSoC=75%Time Horizon
LMP=$32LMP=$118LMP=$47LMP=$96Price Signal Timeline

📚 References