Below I reproduce our first serious modelling work on Oz-Energy-Analysis.org (see this BNC post for a description of OzEA, including its goals and Open Science methods). The work presented here is high level and abstracted, and will be developed in future rounds.We’re looking for hard-nosed comments/critiques, and suggestions for current and future directions (especially over at the OzEA site, where we want the action to start happening). We want our assumptions and simplifications to be ‘road tested’ by heavy traffic. Go on, savage us (if you can)!
Note that before you read the below, it would be helpful to catch up on a bit of the history of the development of these ideas. The ideal OzEA posts to read, in evolutionary order, are:
(Don’t worry, they’re all fairly short and the background reading shouldn’t take you more than about 20 min).
We model the use of Wind Power, Gas Turbines and Storage to supply electricity as required to meet a demand curve at an hourly time resolution. For the demand curve and the wind power we use historical data from South Australia (SA) in 2009. The gas power and the storage are both idealised, the aim here being to, first, lay the groundwork for later models, and second, to examine the basic dynamics of a power system based on Wind, Gas and Storage.
Building from the analysis of wind penetration, and simplifying as described on the models cover page, we implement a high level model of storage dynamics, and also gas turbines, such that wind, gas and storage combine to supply the demand for electricity. We consider the SA grid to be isolated except insomuch as the storage we include here abstracts the interstate connectors.
To model a desired amount of Installed Wind we simply scale up from historical data. To get the demand left after Wind Power (as in Figure WP2 from Analysis / Wind Penetration) it is straightforward to step through the historical data (hour by hour, 8760 of them per year) and subtract the wind power from the demand to give a remainder. It is this remaining demand that we need to supply using Storage and Gas Turbines.
In the first instance (Results, part 1) we introduce a simple storage model such that when the wind power exceeds the demand, the excess can be stored (up to some limits) and then used later. Then (Results, part 2) we include Gas Turbines, such that demand is supplied by three components: (i) available wind power, (ii) gas power, and (iii) drawing down storage reserves. Both the wind and the gas can ‘charge up’ the storage.
The storage model is very simple (abstracted). We conceptualise storage as a bucket of a certain size (the Storage Capacity), and with two pipes – one for filling the bucket, one for draining the bucket. So, when the Wind Power exceeds Demand, the excess electricity goes into storage at a rate no higher than the input ‘pipe’ allows, and only while there is room left in the bucket. When Wind Power is less than the Demand, electricity flows to demand from the pipe at the bottom of the bucket (either dumbly, or somewhat intelligently when we include the gas turbines). In all cases the three parameters that describe the storage model remain as the total capacity, the maximum input rate, and the maximum output rate. As this stage we ignore storage losses and make the input and output pipes the same size.
Adding gas turbines to the model is more complicated that it might first seem. Let’s back up a step; when using storage to capture excess wind power it is simple (as above) to add and subtract from the storage, but with gas turbines included the role of storage is not just to capture excess wind power, but also to smooth the ups and downs to use the gas power as evenly as possible. That is, when the unmet (after wind) demand is high, we want to draw from available storage, and when the unmet demand is low we may want the gas turbines to work on charging up the storage in preparation for the next days peak demand.
Managing the use of gas turbines in a real grid is more complex than we consider here at this stage. Here we use a simple heuristic algorithm to do this (described in the methods below). While the details of this heuristic are important, and will be developed, it is recommended that readers avoid getting bogged in this before appreciating the broad view. What matters is that the results we obtain, at every hour point, have supply meeting demand (and the constraints of the storage model respected). The heuristic achieves this, and otherwise provides a suitable basis for this starting model.
Finally, note that average demand in SA 2009 was close to 1.5 GW. In part 1 (Results) we consider increasing levels of Installed Wind, and quantify how much of the overall demand can be meet with different storage cases. You can think about this in multiples of average demand; that is, 3 GW installed wind is twice average demand, 4.5 GW is thrice times, etc. In part 2 we fix on a constant value for the installed wind at 3 GW Installed Capacity, which is twice the average demand, and which has a ~30% Capacity Factor and so translates into a little over 50% penetration (depending on the storage model / amount of spill).
The basic model is that, at every time point, Supply = Demand. In this work Supply and Demand can be broken down with the following categories and nomenclature:
Demand = Overall Demand that must be supplied. DS = Delta_Storage; +ve when power flows into (charges up) storage, -ve when drawn down. Spill = Spill; this is any power (usually Wind Power) that is not used WFS = Wind Farm Supply FFS = Gas (Fossil Fuel) Supply
With which we can write down the basic equation of this model:
Demand + DS + Spill = WFS + FFS (*)
In addition to requiring (*) to hold at every time point, the Storage model imposes constraints. There is a maximum storage capacity, and maximum values for the flows in and out of storage.
Within these requirements there are as many different ‘solutions’ as you care to carve out; while the WFS is defined for us, how gas power and storage are utilised to make up the remainder admits many possibilities. In a general sense some of these possibilities are better than others because we recognise the intelligent use of storage in shaving the demand peaks, and also the desirability of a smoothly varying gas power requirement. Thus (at this stage at least) we do not attempt to solve this problem in some mathematically optimal way; rather we seek to solve it in some simple and reasonable way. What follows is the simplest useful approach I could muster; it is based around a ‘dumb’ starting solution that is ‘annealed’ into a more reasonable solution.
The Dumb Starting Solution (the Bucket Storage Model)
First up we simply run the bucket model of storage, as above, using the given ‘Dem’ and ‘WFS’ curves to solve for ‘DS’ and Spill, which in turn allows us to solve for the required FFS. Explicitly: if the WFS is greater than the demand, then the excess power goes into storage up to the maximum rate and maximum capacity (any WFS remaining is spilt); if WFS is less than demand, then the shortfall is made up, as much as possible, from storage (with any demand remainder being supplied by FFS). In this way a valid starting solution is obtained. Note that this solution is not making smart use of the storage (not holding it in store for peak demand times), and it is not using the low demand times to ‘charge up’ (with FFS) the storage in preparation for the demand peaks.
The Annealed Solution
This is an iterative three step process; I simply describe the process and ask the reader to note that so long as (*) is satisfied at every time point, and so long as the final solution is useful, then there is little to argue about. If you understand how this works, and / or if you are able to suggest or provide better methods, then I am most interested to hear. If you do not understand how this works (and want to) you should read up on Simulated Annealing.
Step 1. Since our goal is to smooth out the ‘remainder’ curve (i.e. the FFS), we apply a simple filter (a three point moving average here) to the previous FFS curve, and call this the wished_for_FFS, or simply wFFS (and we will also have wDS).
Step 2. Since our goal is to use low demand times to charge the storage in preparation for the high demand times, we add a random component to each wFFS value that preferentially moves it towards the mean FFS value. This random component is applied in the style of a simulated annealing algorithm in that: (i) for early rounds, the random components are larger (up to 10% of the mean FFS) and these are only mildly biased towards the centre; (ii) as the annealing progresses, the application of a ‘cooling schedule’ means that at each iteration the random components are (on average) a little smaller than previously, and the central biasing tendency a little stronger.
Step 3. Run ‘the enforcer’ to ensure that (*) and the storage constraints are respected. At each time point take the Demand, the WFS and the (wished for) wFFS (i.e. the FFS result for that time point from the previous steps) and calculates the ‘the remainder’ (i.e. Demand – WFS – wFFS); if this remainder can be supplied (absorbed) by the storage then the wFFS value is accepted (and the DS and any spill is calculated). Otherwise, wFFS is adjusted back to the nearest value that allows a legal solution to (*).
The above steps are iterated a large number of times (1000 at the moment) to give the FFS and storage curves seen in this work.
Part 1. The Basic Dynamics of Storage and Wind Penetration
In the basic implementation of the Bucket Storage Model, excess wind power is stored (up to the capacities of both the bucket and the input ‘pipe’), and this stored power flows to demand when wind power is less than demand (conceptualised as flowing to demand from the ‘pipe’ at the bottom of the bucket).
Following on from Analysis / Wind Penetration, we examine the Wind Penetration curves under the following versions (parameterisations) of the Bucket Storage model:
storage Capacity pipe size (GWh) (GW) ----------------------------------------- No Storage 0 0 Storage 1 5 0.5 Storage 2 20 1.0 Storage 3 50 2.0
TABLE M1-1: Storage model parameterisations for the first round of modelling.
As previously, we are using the SA 2009 historical data, for which the average demand is close to 1.5 GW, and where the Wind Farm data has a Capacity Factor of close to 30%. The Wind Penetration (i.e. the overall percentage of demand provided for by Wind Power) is considering at increasing levels of installed capacity, modelled by scaling up historical Wind Farm output data. In Figure M1-1 we see how the different storage models allow the Wind Penetration to obtain higher values before the diminishing return of significant lost (spilt) power kicks in.
We now perform a simple sensitivity analysis. Treating No-Storage and Storage-3 as bounding cases, we examine how the Storage-1 and Storage-2 cases respond to changes in, first, the overall Storage Capacity (while holding the Pipe Sizes constant), and then examine changing the Pipe Sizes (while holding the total Storage Capacity constant), as shown in (Figure M1-2). In all cases the variable being examined is halved and doubled in order to define the shaded regions shown.
It is not surprising to observe sensitivity to a doubling or halving of the total Storage Capacity (left panel); what is noteworthy is the lack of sensitivity to the Pipe Size (right panel). For both the Storage-1 case (5 GWh Capacity, 500 MW pipes) and the Storage-2 case (20 GWh, 1 GW), doubling the pipe sizes does very little, and halving them not much either. It seems apparent that the lower frequency changes in the Wind power dominate the storage requirementswhen the concern is achieving minimal spill at high levels of installed capacity.
Part 2. Modelling the Gas Supply (first attempt)
Now we explicitly treat the use of gas turbines to provide the remaining (and controlled) power we need to balance the system. For this we work with a single value of the Installed Wind Capacity at 3 GW (this being twice the average demand of 1.5 GW, and subject to a capacity factor of ~30%), and corresponding to a penetration of around 50% (depending on the storage model).
We use the methods described above to (somewhat) intelligently schedule the gas power so as to utilise the storage for peak shaving (i.e. at low demand times, more power than needed is produced and the excess is used to ‘charge up’ the storage for drawing down at times of high demand). This is shown for the Storage-2 case, and for a Jan 2009 (first month) slice of the data, in Figure M1-2 below; the full results, for the whole year, are here given for Storage-0,Storage-1, Storage-2, and Storage-3. A few minutes looking at these numbers can help reveal the complexities involved in cleverly scheduling the gas turbines; but the reader is also cautioned against getting stuck on this aspect (i.e. fixating on trees without taking time to appreciate the forest).
Figure M1-3: Scheduling Gas Power with Storage. Model results (shown for Jan 2009) for the Storage-1 case (top panel A), and the Storage-2 case (bottom panel B). Based on SA demand and Wind Farm data (scaled up to 3 GW Installed Capacity). NOTE that the ‘Demand’ axis has been scaled so the mean SA demand (1538 MW) = 1. Also, the storage curve (green) is scaled from 0 to 1 covering empty to the Maximun Capacity as given by the storage model.
This is mission accomplished for here and now — to run a simplified model of supply meeting demand.
From here we want to:
(i) Look specifically at the problem of scheduling combined cycle and open cycle (peaking) gas turbines to meet a demand curve;
(ii) Look at ‘The Bucket’ in more detail; specifically, to look at the NEM states collectively (as individual units piped together).
Please consider this work as a starting point, as something we will build on as we develop through to costed scenarios.