The electricity grid is constantly in flux. Demand rises and falls according to the rhythm of daily life. The grid must always be able to meet this demand otherwise blackouts can occur. Particularly troublesome are instances of very high demand such as a heatwave causing millions of air conditioning units to be switched on. Currently these peaks are often met through burning fossil fuels in a gas or oil-based power plant.
Virtual Power Plants (VPPs) reduce the need for these “peaker” plants by aggregating distributed energy resources (DERs). DERs such as rooftop solar, home/office batteries, EVs and chargers, smart home devices and electric water heaters, are being installed at greater and greater rates. In the US the DER market is expected to double by 2027 with 262 gigawatts of additional capacity installed1 (enough to power 750,000 American homes). These DERs can help the grid by reducing or meeting demand through remote control. This avoids having to burn dirty fuels during peak loads.
DERs can also reduce the need for additional electricity grid transmission and distribution. We need to “electrify everything” to meet our climate goals. This will require the grid to bring on more and more sources of generation and increase the transmission and distribution infrastructure (pylons, overhead lines and substations). DERs require fewer infrastructure upgrades through greater efficiency - devices can be smart about when to consume electricity and when to provide it to the grid.
By aggregating DERs, VPPs provide a more predictable and easily managed way of helping the grid stay balanced. In the US around 60 gigawatts of VPPs could add $20 billion in societal benefits over a 10-year period. This includes carbon emission reductions, energy resilience, and transmission and distribution infrastructure deferral2.
Software is at the heart of a VPP. A distributed energy resource management system (DERMS) is needed to control the DERs (often in the cloud). Other systems calculate the capacity of the VPP and bid into electricity markets. Before getting into the software we need to understand the basic principles of a VPP.
How do VPPs work?
VPPs aggregate DERs by enrolling customers in a program. There are currently three models3:
Utilities directly enrol customers by using existing DERs or offering DER purchase enticements e.g. Green Mountain Power’s battery VPP and Duke Energy’s managed EV charging VPP.
Manufacturer or retailers of DERs enrol customers in a VPP e.g. Tesla, Ford, GM, Sunrun, Sunnova
VPP Platform company enrols customers from a variety of different DER products e.g. Voltus, AutoGrid, and Leap, for example, recruit participants, directly or via partnerships, with a variety of DERs in residential and non-residential settings.
By aggregating these DERs the VPP can offer services like a normal power plant such as delivering electricity to the grid, demand reduction and ancillary services (which help maintain grid health). These services are sold to the grid and customers enrolled in a VPP make money from having their devices controlled by it. The VPP will often bid into an electricity market to offer demand reduction at a particular price. It knows its available capacity by using historical data from its DERs and forecasting algorithms.
VPP Software Platform
These are the main components of a VPP software platform:
A system to enrol customers in the VPP
A system that receives telemetry from the DERs and can control them (DERMS)
A system that predicts the capacity of the VPP and bids into the grid operator’s electricity market
A system that can receive requests to reduce load etc
This diagram gives an overview of a hypothetical microservices architecture for a VPP:
Case studies
Tesla
Tesla’s Powerwall batteries are wifi-connected devices that can power homes. In 2022 Tesla’s VPP had enrolled over 4500 of these devices and was able to contribute 33 MW of electricity during peak load events in California4 (enough to power hundreds of homes for a year). Tesla uses a software stack including Scala, Akka, Kafka and gRPC APIs to provide its VPP. In 2020 Tesla engineers gave a talk at QCon London that described their VPP architecture (all images are taken from the presentation)5:
DERMS
Tesla’s Powerwall devices connect to a cloud platform via websockets. Customers voluntarily enrol their devices in the VPP program, and the system represents the state of each device using Akka actors. These actors are organised into parent actors that aggregate multiple devices. The data flow within the system is as follows:
Websocket message telemetry is sent to Kafka
Akka Streams services read these messages from Kafka.
The Akka actors, which reside in Kubernetes pods, receive these messages.
If a pod fails or scales, actor rebalancing occurs.
The actors receive state refreshes from new messages sent by the devices.
gRPC APIs enable querying the cluster to retrieve individual or aggregated telemetry data.
The control service, implemented using Akka Streams, resolves all devices through the assets service, reads relevant battery telemetry, and plans the discharge of batteries to meet the required capacity. This planning ensures efficient battery usage by avoiding discharging batteries that are already low, and it communicates these discharge requirements and timeframes to each battery.
Autobidder
Tesla's Autobidder is a workflow orchestration system integrated into the VPP that uses market data to forecast VPP energy capacity and make bids into electricity markets based on price predictions. The forecasting and optimization services are primarily written in Python, while the rest of the system is implemented in Scala. The Autobidder system employs co-optimization strategies to meet both global and local objectives. For example, the grid may require battery discharge due to a peak event, while customers may want their batteries fully charged due to an incoming storm. Using the same Akka architecture as the DERMS, Autobidder pushes price forecasts to devices through the control service. The devices then develop a plan for battery balancing that considers both local and global objectives. This plan is pushed back up the telemetry architecture, with aggregations at each node. Autobidder utilizes this aggregate information to determine its bidding strategy. If a device loses connectivity, it continues to make plans based on the best estimate of the global objective. After a certain period offline, the device switches to local optimization only to maintain efficient operation.
Lunar Gridshare
Lunar Gridshare provides a VPP by connecting third party devices to its platform. It is “connected to 77,000 residential devices across Europe, Japan, and the United States, representing 290 megawatts of power and 725 megawatt-hours of energy capacity. This is enough to power 578,000 average US homes for one hour.”6
The platform is built using a number of AWS services including:
AWS IoT - manages the third party devices enrolled in the VPP and sends data to the cloud via MQTT (a lightweight messaging protocol)
AWS Kinesis - device telemetry is pushed onto Kinesis message queues to be consumed downstream
AWS Step Functions - coordinates AWS Lambdas to make forecasts and control the device fleet
AWS have a more detailed write-up of the Gridshare platform and architecture.
Virtual Peaker
Virtual Peaker has partnered with various utilities in the US to provide a VPP. Their platform aggregates third party smart thermostats, smart water heaters, EV chargers and batteries. In a partnership with the Pacific Gas & Electric Company in California, they aggregated 525 batteries into a VPP from various providers including Tesla and Sonnen7:
The future for VPPs
The capacity of VPPs is still very small compared with the rest of the electricity grid. To reduce our reliance on fossil fuel peaker plants and help the grid cope with an increase in electricity demand, we need to unblock the development of VPPs in the following ways:
Standardisation
Communication protocols across DERs and VPP platforms are fragmented. This makes it complex and costly to manage DERs for utilities and platform providers. Regulators could mandate that DER manufacturers use open source APIs or standards that make it easier to integrate them into third-party platforms. The underlying technologies of VPPs also lack consistent standards. Providers all implement telemetry collection and DER interconnection in different ways.
A number of working groups have been established to solve this fragmentation. OpenADR8 standardises the message format used when the grid needs to reduce demand automatically and for managing DERs. This simplifies data exchange between grid entities (utilities, grid operators and energy control systems). The Open Vehicle Grid Interface Protocol (OVGIP)9 provides a common communication protocol between EVs and the grid. Matter10 is an open source connectivity standard for smart home devices.
There is also a lack of standardisation around DER and VPP modelling and forecasting tools. Utilities often perceive VPPs as less reliable than traditional assets because of wide variation in these methods. Open source tooling would help increase VPP adoption.
Virtualisation innovation
As we electrify everything and grid infrastructure is upgraded, increasing generation, transmission and substation capacity is only one way of achieving these upgrades. An alternative is to allow the market to bid on these enhancements which could involve virtual upgrades. In a conversation between Duncan Campbell and David Roberts on the Volts podcast11, an example is given of insulating houses rather than upgrading a transformer:
If I go to houses connected to that particular transformer and install insulation on all of them, thereby reducing their demand for all the houses in that particular area, I have obviated the need for that transformer upgrade. I have basically provided a virtual transformer upgrade. - private providers could bid on this virtual stuff when new need arises.
Bill payers could also “pay private companies to do what amounts to infrastructure upgrades”:
I'm talking about ratepayers paying the private company that gives them the best price. Right? Versus just paying one private company offering one solution. Right. Let's make all of them offer various solutions at various prices with various costs of capital and see what happens. And you don't have to go with the DERs, by the way. Like, if the system operator doesn't think they're going to be reliable, doesn't think they're cost-effective, don't do it. Right. But that is the only way for us to actually develop the knowledge of what do these things cost, who will finance them, what are their capabilities? Is to start holding the auctions.
This framework would likely increase the adoption of VPPs by enabling these platforms to offer demand reduction and electricity generation as an alternative to building fossil fuel power plants or upgrading the grid infrastructure.
By addressing these areas and fostering collaboration among policymakers, industry, and technology providers, we can pave the way for the broader adoption and successful integration of VPPs into the future energy landscape.
I find this very interesting as a SE who is just starting out, looking forward to more posts from you