Battery Dispatch Model
Battery Representation
Batteries are represented in the model with the following key parameters:
- Nameplate Capacity (MW): Maximum power rating for charging and discharging
- Energy Capacity (MWh): Total energy storage capacity
- State of Charge (SoC) Limits: Minimum and maximum allowable SoC (typically 10-90%)
- Round-trip Efficiency: Energy losses during charging and discharging cycles
- Cycling Limits: Maximum number of equivalent full cycles per day
- Ramp Rates: How quickly the battery can change its power output
- Degradation: Option to model energy capacity degradation using a Modo or custom degradation curve with custom battery cell repowering
State of Charge Evolution
The state of charge (SoC) is a critical variable that tracks the energy stored in the battery at any given time. The SoC evolution is modeled as:
SoC(t) = SoC(t-1) + [Charge(t) × Efficiency - Discharge(t) + AS_Throughput(t)] × Timestep
Where:
SoC(t)is the state of charge at the end of period t (MWh)Charge(t)is the charging power during period t (MW)Discharge(t)is the discharging power during period t (MW)AS_Throughput(t)is the net energy from ancillary service provision (MW)Efficiencyis the charging efficiency (typically 0.9-0.95)Timestepis the duration of period t (hours)
Physical Constraints
The battery dispatch is subject to several physical constraints:
1. Power Limits
0 ≤ Charge(t) ≤ Nameplate Capacity
0 ≤ Discharge(t) ≤ Nameplate Capacity
2. State of Charge Limits
Min SoC ≤ SoC(t) ≤ Max SoC
3. No Simultaneous Charging and Discharging
The model prevents simultaneous charging and discharging in the same market, which would be physically impossible:
Binary_Charge(t) + Binary_Discharge(t) ≤ 1
4. Ramping Constraints
The rate at which the battery can change its power output is limited:
|Charge(t) - Charge(t-1)| ≤ Max Ramp Rate
|Discharge(t) - Discharge(t-1)| ≤ Max Ramp Rate
5. Cycling Limits
To account for battery degradation, the model limits the total energy throughput:
∑ Discharge(t) × Timestep ≤ (Max SoC - Min SoC) × Cycles Per Day × Days
Ancillary Service Provision
Batteries can provide ancillary services such as frequency response and reserves. This requires:
1. Capacity Reservation
When providing ancillary services, a portion of the battery’s power capacity is reserved:
AS_Capacity(t,m,d) ≤ Nameplate Capacity × Acceptance Rate
Where:
AS_Capacity(t,m,d)is the capacity reserved for ancillary service m in direction d at time tAcceptance Rateis the probability of the service being accepted by the system operator
2. State of Charge Headroom
Sufficient energy capacity must be available to deliver the ancillary service:
For discharging services: SoC(t) ≥ Min SoC + ∑ AS_Capacity(t,m,d) × Max Duration
For charging services: SoC(t) ≤ Max SoC - ∑ AS_Capacity(t,m,d) × Max Duration
Where Max Duration is the maximum time the service might be called for.
3. Symmetric Services
Some ancillary services require symmetric provision in both charging and discharging directions:
AS_Capacity(t,m,charging) = AS_Capacity(t,m,discharging)
Co-optimization with Renewables
When batteries are co-located with renewable generation (solar or wind), the model optimizes:
- Direct Grid Export: Selling renewable generation directly to the grid
- Battery Charging: Using renewable generation to charge the battery
- Curtailment: Reducing renewable output when economically optimal
The energy balance for renewables is:
Renewable_Generation(t) = Grid_Export(t) + Battery_Charging(t) + Curtailment(t)
Revenue Optimization
The base objective function maximizes total revenue across all markets:
Max Revenue = ∑ [
Energy_Price(t,m) × (Discharge(t,m) - Charge(t,m) + Renewable_Export(t,m))
+ AS_Price(t,m,d) × AS_Capacity(t,m,d)
] × Timestep
Where:
Energy_Price(t,m)is the price in energy market m at time tAS_Price(t,m,d)is the price for ancillary service m in direction d at time t
Region specific implementations adapt this framework to local market rules and structures.
General Assumptions
Our optimisation algorithm respects all the rules it should, including all the physics of batteries, ramp rates, throughput, and costs of delivery for batteries participating in wholesale and ancillary service markets.
We assume perfect foresight of prices - but correct this using real-world calibration factors derived from historical performance data.
These assumptions apply across all markets we model:
- Efficiency: By default, we assume an 88% round-trip efficiency rate (i.e. a 200MWh system needs 227MWh to charge fully). This can be specified per asset in the model.
- Power limits: Total contracted power (or availability) across the different markets is less than or equal to maximum charge and discharge limits.
- Ramp rates: Batteries must respect physical ramp rate constraints when changing power output.
- State of charge: The battery’s energy is kept within allowed state of charge ranges at all times.
For market-specific assumptions, see the regional documentation pages.