Could wind + batteries really replace a nuclear power plant?

tl;dr: Probably not. The intermittency and seasonal variation of wind is so severe that even optimistically, it would be considerably more expensive and, if it was to use Li-ion batteries for storage, would require as many as have been produced in the entire world over the last four years.

The UK government's recent decision to delay the final decision on the planned Hinkley Point C nuclear power plant has somewhat rekindled the debate on whether the UK should have the plant at all. Some have gone as far as to suggest that given the projected cost, the guaranteed price of the energy produced and the timescale of the project, it should be scrapped and allowed to be replaced with a combination of renewable energy sources and with energy storage, both of which are dropping in cost.

[Jeremy Leggett, the founder of solar panel maker Solarcentury] is delighted that others are picking up on arguments he has been making for years. "Finally the message is getting through that Hinkley, and indeed nuclear, make no sense today simply because wind and solar are cheaper. If we accelerate renewables in the UK, we can get to 100% renewable power well before 2050," he says.

I'm sure we can all agree that cheap, low-carbon renewable electricity would be a great thing. But if you are proposing to eventually remove nuclear and fossil fuels entirely, are renewables still as "cheap" when we need to rely on them to maintain demand? From that same Guardian article:

The Economist believes improved electricity storage is a key answer to the frequently repeated criticism of wind and solar that it is intermittent, and points out that battery technology is fast improving.

First, let's be clear. It is not a mere "criticism" of wind and solar that it is intermittent - it is a cold, hard fact. It's physically impossible to generate solar power at night and to generate significant wind power when the wind's not blowing. In order for electricity generation to meet or follow demand, excess generation must be curtailed somewhere, or the energy stored. Similarly, insufficient generation must be supported by some other form of energy generation to avoid blackouts. At the moment, this role is largely provided by gas in the UK. But in the absence of other conventional means of generation, this role needs to be filled by some form of storage, perhaps the much vaunted batteries. This is especially important if neighbouring countries make similar moves towards renewables, since available wind speed and sunlight does not tend to vary much across neighbouring countries - those neighbours may not be able to export energy when generation is barely sufficient across an entire continent.

But how much storage would be needed, say, to effectively convert intermittent renewable power into providing baseload power equivalent to that which would be provided by Hinkley Point C - a constant 3.2 GW? Well, this can be estimated with some crude analysis of publicly available data. I was interested to see how it turned out, and I figured it was worth reproducing here. I did the analysis with R, and have included the code (except for the code generating the plots) and the data here so that it can be reproduced.

Analysis

I'm going to use existing wind generation data for this analysis, since the UK already has a significant amount of wind power, and on the assumption that large-scale deployment of solar power would not be all that sensible for one of the darkest countries in the world. The data I've used is the energy production data for the UK for the entire year 2015 - from gridwatch.co.uk - which I've reuploaded to this website.

The data is in the standard csv format, and I use a couple of addon packages for analysis.

gridwatch <- read.csv("http://lacey.se/dl/gridwatch-2015.csv")

library(dplyr)
library(lubridate)
library(ggplot2)

Let's check what it looks like:

head(gridwatch)
##       id            timestamp demand frequency coal nuclear ccgt wind
## 1 377525  2015-01-01 00:00:04  28809    50.090 9079    8049 3360 5251
## 2 377526  2015-01-01 00:05:02  28645    50.092 8947    8053 3369 5254
## 3 377527  2015-01-01 00:10:02  28768    50.116 8843    8052 3372 5272
## 4 377528  2015-01-01 00:15:02  28917    50.045 8763    8047 3339 5303
## 5 377529  2015-01-01 00:20:02  28964    50.030 8818    8051 3386 5223
## 6 377530  2015-01-01 00:25:02  29055    50.006 8906    8055 3392 5189
##   french_ict dutch_ict irish_ict ew_ict pumped hydro oil ocgt other
## 1        582       900       -72   -136     15   443   0    0  1157
## 2        586       898      -100   -134      0   441   0    0  1157
## 3        586       898      -100   -134      0   440   0    0  1157
## 4        586       898      -100   -134      0   439   0    0  1155
## 5        586       898      -100   -134      0   440   0    0  1155
## 6        586       898      -100   -134      0   441   0    0  1155

The data is quite thorough, but all I really want for now is the data for wind. First I'm going to convert the timestamp to POSIXct date/time format with the appropriate function from the lubridate package, then I can select out the data I need.

gridwatch$timestamp <- ymd_hms(gridwatch$timestamp)
df1 <- select(gridwatch, timestamp, wind)

Check again:

head(df1)
##             timestamp wind
## 1 2015-01-01 00:00:04 5251
## 2 2015-01-01 00:05:02 5254
## 3 2015-01-01 00:10:02 5272
## 4 2015-01-01 00:15:02 5303
## 5 2015-01-01 00:20:02 5223
## 6 2015-01-01 00:25:02 5189

The wind column shows the power generated in units of MW.

plot of chunk unnamed-chunk-6

Straight away you can see the issue with intermittency. Wind production averages about 2.6 GW over the whole year, but this can be in excess of 6 GW during windy times, and almost nothing during some lulls in the summer. At the end of 2015, the UK had a total of 13.6 GW of capacity installed, indicating a capacity factor of 19%, which seems reasonable.

I'll make two new columns in this data frame - one for the time increment (in seconds) and then use that to integrate the power column to get the total energy generated in MWh.

df1$difftime <- c(0, diff(df1$timestamp))
df1$totwind <- cumsum(df1$wind * df1$difftime / 3600)

So, I want to see how a constant 3.2 GW baseload can be generated by wind, with excess energy stored and then released when the wind isn't sufficient. We can reasonably assume that with more turbines the power generated will scale linearly. We can make a new table from the same data, but adjust the wind so that the total energy generated by wind power throughout the year will be equal to 3.2 GW x 24 hours x 365 days.

df2 <- select(gridwatch, timestamp, wind)
df2$difftime <- c(0, diff(df2$timestamp))

df2$wind <- df2$wind * (3200 * 24 * 365 / (max(df1$totwind)))
df2$totwind <- cumsum(df2$wind * df2$difftime / 3600)

The average should come out to be about 3200 MW now, so let's check that's the case:

summary(df2$wind)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   77.92 1506.00 2889.00 3201.00 4805.00 8022.00

For plotting purposes I'll include equivalent columns for the constant 3.2 GW.

df2$base <- 3200
df2$baseenergy <- cumsum(3200 * df2$difftime / 3600)

Now the table looks like this:

head(df2)
##             timestamp     wind difftime   totwind base baseenergy
## 1 2015-01-01 00:00:04 6294.875        0    0.0000 3200     0.0000
## 2 2015-01-01 00:05:02 6298.472      298  521.3735 3200   264.8889
## 3 2015-01-01 00:10:02 6320.050      300 1048.0443 3200   531.5556
## 4 2015-01-01 00:15:02 6357.213      300 1577.8120 3200   798.2222
## 5 2015-01-01 00:20:02 6261.309      300 2099.5878 3200  1064.8889
## 6 2015-01-01 00:25:02 6220.550      300 2617.9669 3200  1331.5556

Let's see how the total amount of energy generated from wind over the year would look like compared to a constant 3.2 GW.

plot of chunk unnamed-chunk-12

The energy generated by wind is shown in red. The difference between these two lines will show us roughly the difference between the energy generated by wind power and the energy consumed by the constant 3.2 GW we're looking for. So let's do that:

df2$diffpower <- df2$wind - df2$base
df2$diffenergy <- cumsum(df2$diffpower * df2$difftime / 3600)

The power requirements will look like this (positive values indicate wind in excess, so therefore the batteries would be charging. Negative values indicate that wind is insufficient, so the batteries need to take over to ensure 3.2 GW):

plot of chunk unnamed-chunk-14

The total energy stored or released looks like this:

plot of chunk unnamed-chunk-15

It's clear from this plot there is a huge seasonal variation in wind power, with greater generation in the winter, and the storage needed as backup in the summer. The difference between those minimum and maximum peaks (in March and October respectively) is the total amount of energy we would need to backup the wind power - therefore it's the capacity of the storage we would need to guarantee a constant 3.2 GW baseload without relying on other methods of generation. In this case, we can see it's of the order of about 4 TWh (that's TERAwatt-hours).

4 TWh is a colossal amount of energy - roughly the yield of 35 Trident nuclear missiles, roughly the total battery capacity of about 45 million Tesla Model S cars, and about 100 years worth of Li-ion batteries at the current rate of production.

More than that, at a target price of $100/kWh for batteries (=$100bn/TWh) this would cost of the order of $400 bn for the batteries alone. This price for usable battery storage is considerably cheaper than currently available for any of the available chemistries, even if you're Tesla.

Meanwhile, based on a capacity factor of about 20%, we would need wind power with a capacity of 16 GW, which based on estimates of $1.3m - $2.2m per MW would cost between $20.8 and $35.2bn. The cost of Hinkley Point C by comparison is estimated to be of the order of $24 bn. So yes, the wind turbines could potentially be cheaper to install than the nuclear power plant, but even then, they can't supply power on the same basis without additional - and possibly insane - storage capability.

More wind turbines?

Ok, maybe it's not viable to try and store every last bit of energy produced by the wind turbines. Perhaps we can just disconnect them during very windy periods and only store enough energy needed when wind isn't enough. How many batteries might we need then?

To estimate this I went back again and scaled up the wind further, so that the averege power is 20% over the 3.2 GW we actually want. The rest of the code is the same.

df4 <- select(gridwatch, timestamp, wind)
df4$difftime <- c(0, diff(df4$timestamp))

df4$wind <- df4$wind * (1.2 * 3200 * 24 * 365 / (max(df1$totwind)))
df4$totwind <- cumsum(df4$wind * df4$difftime / 3600)

df4$base <- 3200
df4$baseenergy <- cumsum(3200 * df4$difftime / 3600)

df4$diffpower <- df4$wind - df4$base
df4$diffenergy <- cumsum(df4$diffpower * df4$difftime / 3600)

If I remake the same plot and rescale it a bit:

plot of chunk unnamed-chunk-17

Then the difference between the minimum and maximum values here is the amount of energy that needs to be stored, which is about 2 TWh - halving the cost of batteries needed for just 20% more wind turbines. This seems more reasonable, so what if you keep adding more wind power?

Well, I won't reproduce the plot here - you can do it yourself - but the cost does keep shrinking. If you double the amount of wind power - to 32 GW, giving an average of 6.4 GW over the year, you can still see that there are periods of insufficient wind to meet 3.2 GW that still require about 200 GWh worth of storage. This is still a huge amount, equivalent to the total storage of a few million electric cars and about four years worth of production of Li-ion batteries. For comparison, the world's largest grid storage battery opened earlier this year in Japan - a sodium-sulfur battery with a capacity of 300 MWh (that's 0.3 GWh).

The cost of installing this would probably then be in the range:

This would imply an installation cost of maybe three times as much as Hinkley Point C, for a system with a considerably shorter lifetime, and most likely with much more expensive electricity for the consumer. I doubt if I kept going that it would get considerably cheaper than this, since at this point the cost of the wind turbines is already rather in excess of the cost of the batteries.

So what can we conclude? I think the main thing this thought experiment shows is just how important it is to have a diverse mix of technologies in the energy generation mix. I think this fact is usually lost on people with stubbornly anti-nuclear and anti-fossil fuel views. I know as well that I have not considered other things like tidal or hydroelectric power here, but these are very much geography-dependent and not always a viable option.

I don't intend to say that there is no place for renewables at all in our energy mix, but I cannot see a target of 100% solar or wind grid production as being anything except ruinously expensive, and it seems wildly improbable that battery storage could make it work.

Bear in mind too, that this is just one power plant. Average demand in the UK was 32.8 GW in 2015!

The last word

At this point it is reasonable to point out that the seasonal trend in solar generation runs (very roughly) opposite to that of wind. That is, it is less windy in the summer, but it is sunnier in the summer, so a mix of solar and wind might reduce the requirement for storage. This is true, but some level of storage would still be required, and my intuition tells me that it would not be a significant difference (and other analyses done elsewhere suggest as much). At the moment I don't have data for UK solar generation to play around with, but this would be interesting for a future post.

comments powered by Disqus