GuidesChangelog
Guides
Guides

Battery dispatch model

How do we dispatch a battery against a price signal?

Here, we go into the details of our battery dispatch model.

We use mixed integer linear programming, which maximizes battery revenues by choosing the best (cheapest) time to charge, and the most expensive time to discharge.

We run a dispatch model for each given a site scenario: eg, a 1-hour system, doing 1 cycle per day, which is not degraded.

We optimize revenue stacking across multiple markets

The Dynamic Frequency Response services allow for stacking - using the battery to provide services like Dynamic Containment Low at the same time as doing wholesale trading, or another dynamic service (as long as it sticks to certain rules around state of energy and ramp rates, and carries out the DFR service for whole EFA blocks).

We predict the price of each of the DFR services. This means we can do a cross-optimization, letting the battery participate in whichever service it likes to make the most money. In the example below, the battery does differing amounts of Dynamic Containment High & Low, wholesale trading, and Dynamic Regulation High, depending on price.

Here's some examples of day-ahead battery dispatch

Dynamic Containment with evening wholesale discharge

On this day the battery spends most of the time in Dynamic Containment High and Low. It then comes out of these services in the evening to charge and discharge the battery in wholesale.

High frequency response to charge with wholesale discharge

On this day the battery provides Dynamic Regulation and Moderation High. Due to their high throughput, it charges up and can later discharge in wholesale.