Skip to main content


Long-distance Interconnects and their Contribution to Grid Balance

In this previous post , we looked at  how much of the current electricity demand could be met directly if the entire production were based on solar and wind. The observation was that depending on the country, about 70-80% could be covered in real-time by scaling up an optimal mix based on the current solar & wind generation capacity. This would leave about 20-30% of unmatched load at some times and the same amount of surplus at other times. In this post , we looked at how storage and in particular under-utilized car batteries could be used to help balance the grid between times of over and under-production. Another potential approach of increasing the balance between supply and demand would be to improve geographic diversity across wind or solar generation beyond the synoptic scale of common weather pattern which is in the order of a thousand or more kilometers. The image above shows the site of the Laufenburg substation , where in 1958 the national grids of France, Germany and Sw
Recent posts

Vehicle-to-Grid for Long Duration Storage?

Most cars stand around most of the time. The average driving distance per car is 30-40 km - even in the US and trips over 100km are quite rare ( less than 4% ). Assuming, some number of heavily used vehicles - taxis, service vehicles etc. means that there is a long tail of vehicles which might not move at all for several days except maybe the occasional trip on a week-end. Assuming some future state where (nearly) all cars are going to be electric, we will have a very large number of big batteries on wheels mostly standing around mostly under-utilized and already paid for by their owners. As we have seen in this previous post, there would be a significant imbalance on a weekly timescale between load and generation in a primarily wind & PV based power grid. Given the large amount of already paid for storage capacity, it would be temping to use it as grid storage (V2G vehicle-to-grid) over these time-ranges where investment in dedicated grid storage might be hard to economically jus

Balancing a Renewables Grid across multiple Timescales

For a hypothetical future power grid where production is dominated by variable renewable sources like PV and wind, the challenge of balancing supply and demand at all times is well know. Using again the ENTSO-E open-source data and Python linear programming solver , we extrapolate the grid level solar and wind forecast data to cover the entire yearly electricity demand while minimizing the sum of the absolute errors between supply and demand for all hours in a year. In order to turn the problem of minimizing the sum of absolute values into a linear programming problem, we use the bounding technique presented in this tutorial . Using for example the data for the German power grid from Spring 2022 to Spring 2023, the optimal generation mix according to the above criteria is about 75% wind and 25% PV (blue line).  With this configuration about 80% of the annual supply & demand of 475 TWh would be matched at the hourly level, leaving a discrepancy of 20% or 107TWh to be equalized someh

Electrify all the Things!

While there is no technological silver-bullet to combat climate change, electrification is about as good as it gets - maybe at least a silver spoon to help keep the monsters at bay... Today about 80% of the world-wide energy consumption is still based on fossil fuels. The good news is that as part of a net zero transformation of the energy system, we do not need  to replace all the fossil fuel inputs, but only their useful outputs. According to this Sankey energy flow diagram for the US in 2022 (source: LLNL ), about 20% of the system input is based on low CO2e energy sources. However this would correspond to 65% of the actually useful energy services provided by the system. Some of the most significant sources of loss are from the use of petroleum in the transport sector or from the electricity generation using natural gas or coal.  While generating more electrical power from modern renewable sources like wind and solar reduces the need for gas & coal by at least 2 times, assuming

Energy Storage and Flexible Demand - Two Sides of the Same Coin

 For this  previous post, we have built a very simplistic LP model to determine the optimal resource allocation for a power grid that is based on wind, solar and storage. This model has shown an obvious, significant need for storage to balance variable and non-dispatchable wind and solar generation to a fixed demand on timescales ranging from hourly to seasonal. The key to decarbonizing high emission sectors like transport, buildings and industry is going to be aggressive electrification of these sectors, which is going to increase electricity demand significantly and put a strain on aging power distribution infrastructure. The good news is that the vast majority of this new demand is going to be somewhat elastic and flexible in time - potentially at no extract cost  and without loss in comfort or quality of service. Instead of using storage to match variable supply to a rigid load, we can exploit demand flexibility to match  adaptive loads to existing supply and hence reduce the ne

Linear Programming with Energy Data

In the previous post , we made some back of the envelope estimation of what an optimal solar, wind & storage based power grid could look like. For the analysis we were using a standard linear programming model using open-data from the ENTSO-E transparency platform as well as a Python based linear programming (LP) framework. For the LP framework we chose PuLP for its beginner friendly fluent and natural sounding model definition. See this tutorial for a more detailed introduction into LP with PuLP or this this  comparison of some popular Python LP frameworks . Understanding and debugging the output of an LP solver is non-obvious for casual users. Hence, being able to translate the mathematical model into what looks like natural python code can help to prevent mistakes during model setup. The PuLP framework can interface with different external solver backends out of which the CBC solver is packaged with the PuLP distribution. As input data, we can get time-series data with hour