Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
<html lang="en">
<head>
<title>energy</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../style/main.css">
</head>
<script type='text/javascript' src='../js/parse-bibtex.js'></script>
<script type='text/javascript' src='../js/jquery-3.0.0.min.js'></script>
<script type='text/javascript' src='../js/mustache.min.js'></script>
<script type='text/javascript' src='../js/parse_citations.js'></script>
<script charset="UTF-8" src="../js/d3.min.js"></script>
<script type='text/javascript' src='../js/scoreboard.js'></script>
<script type='text/javascript'>parse_citations('../energy.bib');</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript" async src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<body>
<p>For this study, we compared many papers on life cycle analyses of wind turbines and found considerable disagreement and contention about methods. A great study, focused on turbines in the American midwest is <cite id="White2006"></cite>. We use the values given in this study, and confirm their size with other sources. These are given in GJ/MW capactity as:</p>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>Turbine</th><th>Kenetech (340 kW)</th><th>Zond (750 kW)</th><th>Tacke (600 kW)</th><th>Average</th><th>Percent</th></tr></thead><tbody>
<tr><td>Materials production</td><td>4162</td><td>6358</td><td>8303</td><td>6274</td><td>62.93</td></tr>
<tr><td>Materials transportation</td><td>604</td><td>484</td><td>400</td><td>496</td><td>4.97</td></tr>
<tr><td>Construction</td><td>612</td><td>855</td><td>1069</td><td>845</td><td>8.47</td></tr>
<tr><td>Operation and Maintenance</td><td>2892</td><td>1584</td><td>1320</td><td>1932</td><td>19.37</td></tr>
<tr><td>Decommisioning</td><td>306</td><td>427</td><td>534</td><td>422</td><td>4.23</td></tr>
<tr><td>Total</td><td>8576</td><td>9708</td><td>11626</td><td>9970</td><td></td></tr>
</tbody></table>
<p>In <cite id="wilburn2011wind"></cite>, Table 5 shows estimated material requirements per megawatt of capacity of representative wind technologies. From <cite id='geoff2011inventory'></cite>, we can extract approximate intensities of refining these materials. The results are summarized below:</p>
<table>
<tr>
<td><b>Material</b></td>
<td><b>kg/MW installed</b></td>
<td><b>MJ/kg embodied</b></td>
<td><b>MJ/MW installed</b></td>
</tr>
<tr>
<td>Steel and Stainless Steel</td>
<td>115,000</td>
<td>20.1</td>
<td>2,311,500</td>
</tr>
<tr>
<td>Concrete</td>
<td>590,000</td>
<td>.75</td>
<td>442,500</td>
</tr>
<tr>
<td>Fiberglass</td>
<td>9,800</td>
<td>100</td>
<td>980,000</td>
</tr>
<tr>
<td>Miscellaneous (Alum., plastic, <br>epoxy, foam, and wood)</td>
<td>8,050</td>
<td>~100 (155, 80, 137, 88, 18)</td>
<td>805,000</td>
</tr>
<tr>
<td>Copper</td>
<td>2,500</td>
<td>42</td>
<td>105,000</td>
</tr>
<tr>
<td>Cast iron</td>
<td>23,900 </td>
<td>25</td>
<td>597,500</td>
</tr>
<tr>
<td><b>Total</b></td>
<td></td>
<td></td>
<td><b>5,241,500</b></td>
</tr>
</table>
<p>As a double check, we take the materials data from <cite id="crawford2007life"></cite> for a 3 MW turbine and estimate the materials embodied energy. The result (per MW of capacity) is 5852 GJ, a similar figure to our first estimation.</p>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th>component</th><th>material</th><th>quant</th><th>unit</th><th>intensity (GJ/t)</th><th>total energy (GJ)</th><th> </th></tr></thead><tbody>
<tr><td>foundation</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
<tr><td> </td><td>concrete</td><td>1140</td><td>t</td><td>1.77</td><td>2022.26087</td><td> </td></tr>
<tr><td> </td><td>steel</td><td>36</td><td>t</td><td>35</td><td>1260</td><td> </td></tr>
<tr><td>tower</td><td> </td><td> </td><td> </td><td> </td><td>0</td><td> </td></tr>
<tr><td> </td><td>steel</td><td>158.76</td><td>t</td><td>35</td><td>5556.6</td><td> </td></tr>
<tr><td> </td><td>paint</td><td>1.24</td><td>t</td><td>400</td><td>496</td><td> </td></tr>
<tr><td>nacelle</td><td> </td><td> </td><td> </td><td> </td><td>0</td><td> </td></tr>
<tr><td> </td><td>steel</td><td>61</td><td>t</td><td>35</td><td>2135</td><td> </td></tr>
<tr><td> </td><td>copper</td><td>3.75</td><td>t</td><td>379</td><td>1421.25</td><td> </td></tr>
<tr><td> </td><td>aluminum</td><td>2.311</td><td>t</td><td>252</td><td>582.372</td><td> </td></tr>
<tr><td> </td><td>plastic</td><td>0.7</td><td> </td><td>80</td><td>56</td><td> </td></tr>
<tr><td>rotor</td><td> </td><td> </td><td> </td><td> </td><td>0</td><td> </td></tr>
<tr><td> </td><td>steel</td><td>19.93</td><td>t</td><td>35</td><td>697.55</td><td> </td></tr>
<tr><td> </td><td>fiberglass</td><td>12.04</td><td>t</td><td>168</td><td>2022.72</td><td> </td></tr>
<tr><td> </td><td>epoxy</td><td>8.03</td><td>t</td><td>163</td><td>1308.89</td><td> </td></tr>
<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td>17558</td><td> </td></tr>
<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td>5852</td><td>embodied energy (GJ) per MW of capacity</td></tr>
</tbody></table>
<p>Both of these figures are comparable to our primary source <cite id="White2006"></cite>.</p>
<p>For manufacturing, we have the turbine specific manufacturing steps, transport, and installation. For instance, let's look at transport. Assuming all shipping is by road freight, we can estimate the energy intensity of this using statistics from <cite id="dot2015national"></cite> (Table 1-05 and 4-06) and <cite id="davis2015transportation"></cite> (Chapters 2 and 5). We get values between 1 and 1.6 MJ/km/tonne for road freight shipping.</p>
<p>Now we use <cite id="haapala2014comparative"></cite> to generate an example supply chain for a 2 MW turbine, shown below, with installation site near Augspurger Mountain in central Washington, and shipping intensity 1.3 GJ/km/tonne.</p>
<table class="tableizer-table">
<thead><tr class="tableizer-firstrow"><th></th><th>Origin</th><th>Distance (kilometers)</th><th>Mass (tons)</th><th>Mass (tonnes)</th><th>km-t</th><th>Transport Energy (GJ)</th></tr></thead><tbody>
<tr><td>Blades + Rotor</td><td>Windsor, CO</td><td>1945</td><td>25.55</td><td>23.17385</td><td>45073.13825</td><td>58.59507973</td></tr>
<tr><td>Tower</td><td>Pueblo, CO</td><td>2205</td><td>165</td><td>149.655</td><td>329989.275</td><td>428.9860575</td></tr>
<tr><td>Nacelle, Gearbox, Generator, Yaw/pitch system</td><td>Brighton, CO</td><td>1931</td><td>51.38</td><td>46.60166</td><td>89987.80546</td><td>116.9841471</td></tr>
<tr><td>Foundation</td><td>Lafarge, Seattle, WA</td><td>321</td><td>788</td><td>714.716</td><td>229423.836</td><td>298.2509868</td></tr>
<tr><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>902.8162711</td></tr>
</tbody></table>
<p></p>
<p>We see that transportation contributes around 450 GJ/MW of capacity, very close to <cite id="White2006"></cite>. Independent sources for the other sectors were harder to construct, so given close agreement with <cite id="White2006"></cite>, we accepted those values.</p>
<p>Much of this analysis is confirmed and updated in <cite id="kubiszewski2010meta"></cite>, extending the work to more modern studies and larger turbines.</p>
<h3>Turbine by component</h3>
<p>
In <cite id="Lenzen2002339"></cite>, Table 2 shows main material constituents of wind turbine components, along with energy content. We graph this data in below. We see, the steel tower requires roughly 43% of the total energy invested in the turbine.
</p>
<span id="turbine_component_energy"></span>
<span id="turbine_component_mass"></span>
<p>
The tower stands out as a huge source of energy inputs for the turbine. To support the massive bending load, thick, steel cylindrical sections are used. <cite id='jay2014design'></cite> cites several reasons why tower designs may often be structurally suboptimal, including transportation constraints of towers with large base diameters. Towers with large base diameter could be made thinner while meeting design requirements and offer significant material energy savings. The authors offer an on-site spiral welding technique capable of producing optimized geometries without being subject to transportation constraints.
</p>
<p>
<cite id="Lenzen2002339"></cite> also synthesizes 72 energy and CO2 analyses of wind turbines and extracts average trends. Comparing these results with scaling laws, we see the average normalized (20 year lifetime, 25% capacity factor) energy intensity of a wind turbine of 1 MW capacity is .05. That is, the turbine generates 20 times more energy than is required to manufacture, install, operate, and dispose of it. This intensity is proportional to as $P^{-.18}$, where $P$ is the nameplate power capacity.
</p>
<span id="turbine_power_scaling"></span>
<span id="turbine_energy_intensity_scaling"></span>
<p>Clearly, this last graph suggests bigger wind turbines have better energetic returns. To make these economical, we must address cost scaling.</p>
<p>To see all turbine system components by cost, we use data from <cite id='european2009economics'></cite>, based on a 45 meter blade radius on a 100 meter tower (roughly 3 MW).</p>
<span id="turbine_component_cost"></span>
<p>Again, we see the tower is the largest contributor, this time to cost. Here it is followed closely by the blades. In the next section we analyze scaling of blade cost.</p>
<h3>Blade Material costs</h3>
<p>Of the material input, we can look at the cost and mass breakdown by component. <cite id='tpi2003cost'></cite> contains a very nice analysis of this, citing turbines with blade lengths (turbine radii) of 30, 50 and 70 meters. We extract scaling laws from these data points for the graphs below.</p>
<div id="turbine_power"></div>
<span id="turbine_component_cost_scaling"></span>
<span id="turbine_component_mass_scaling"></span>
<p>We see the fiberglass and resin for the skins and shear webs make up a significant portion of the material cost.</p>
<span id="turbine_labor_cost_scaling"></span>
<span id="turbine_tooling_cost_scaling"></span>
<p>Similarly, the labor to produce these components dominates the cost. Due to amortization over many blades (400 in this study), the per-blade and per-MW tooling costs are amazingly low.</p>
<span id="turbine_total_cost_scaling"></span>
<p>We can combine these broad categories to estimate overall costs.</p>
<p><cite id='ashwill2002parametric'></cite> explores the trade-offs between aerodynamic and structural performance of thickening blade sections.
</p>
<p>I've found the concept of <cite id='loth2012segmented'></cite> an interesting take on rewriting these scaling laws. Downwind turbines don't have a tower strike constraint, and so can accomodate significantly coned blades. These blades must be longer to present an equivalent diameter to the wind, but the strains seen in the blade are dramatically reduced. As such, the mass of the blade can be reduced, which triggers a cascade of savings through the system.</p>
<figure>
<img src='../img/segmented-blades.png' width=600px>
<figcaption>Segmented blades, image from <cite id='loth2012segmented'></cite></figcaption>
</figure>
<p><cite id='ning2016integrated'></cite> uses analytic gradients in turbine system optimization. They are skeptical of blades with purely downwind coning (the mass savings are only modest), but note that an active coning mechanism would be extremely advantageous. <cite id='ichter2015morphing'></cite> describes a 13 MW turbine using lockable joints to adapt the coning to wind conditions. This offered one-third mass reduction while still capturing the same average power in simulation. <cite id='koh2016downwind'></cite> describes the advantages of downwind turbines, especially for offshore applications. The effects of wind shadowing on power output are noted to generally be small for well designed turbines.</p>
<a href='../index.html'>Back</a>
<div id="bib"></div>
<script charset="UTF-8" src="../js/d3.pie-chart.js"></script>
<script>run_scoreboard('Wind Turbine')</script>
<script type='text/javascript' src='../js/d3.legend.js'></script>
<script type='text/javascript' src='../js/d3.stacked-line-graph.js'></script>
<script type='text/javascript' src='../js/d3.line-graph.js'></script>
<script type='text/javascript' src='../js/math.min.js'></script>
<script type='text/javascript' src='../js/lodash.core.js'></script>
<script type='text/javascript' src='../js/curve_fit.js'></script>
<script>
$.getJSON("wind-turbine.json", function(values){
//component by energy
var total_energy = 9967; //GJ/1MW turbine
var unit = "GJ/MW installed"
var data = values.relative_energy_by_component.data;
chart = pieChart()
.data(data)
.selection_string("#turbine_component_energy")
.width(550).height(300)
.title('Turbine Component Energy')
.slice_value(function(d) { return d.Percent*total_energy/100; })
.label_value(function(d) { return d.data.Component + ' ' + Math.round(d.data.Percent*total_energy/100) + ' ' + unit; });
chart();
//component by mass
var unit = "%"
var data = values.relative_mass_by_component.data;
chart = pieChart()
.data(data)
.selection_string("#turbine_component_mass")
.width(550).height(300)
.title('Turbine Component Mass')
.slice_value(function(d) { return d.Percent; })
.label_value(function(d) { return d.data.Component + ' ' + Math.round(d.data.Percent) + ' ' + unit; });
chart();
var power_data_points = values.power_radius_data.data
var beta_power_v_radius = power_fit(
_.map(power_data_points,'radius'),
_.map(power_data_points, 'power' )
);
var radii = d3.range(10,100,1);
//power vs. radius
var data = []
var series = ['Power']
series.forEach(function(c){
data.push( {
'name':c,
'values': _.map( radii, function(r){ return {"x":r, "y":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1])}; })
});
});
chart = lineGraph()
.data(data)
.selection_string("#turbine_power_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Turbine Power vs. Radius")
.xaxislabel("Turbine radius (m)")
.yaxislabel("Turbine power (MW)");
chart();
var series = ['Energy out / Energy in']
var data = []
series.forEach(function(c){
data.push( {
'name':c,
'values': _.map( radii, function(r){
return {"x":r, "y":20*Math.pow(beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]),.18)};
})
});
});
chart = lineGraph()
.data(data)
.selection_string("#turbine_energy_intensity_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Turbine Energy Intensity vs. Radius")
.xaxislabel("Turbine radius (m)")
.yaxislabel("Energy out / Energy in");
chart();
//component by cost
var unit = "%"
var data = values.relative_cost_by_component_EWEA.data;
chart = pieChart()
.data(data)
.selection_string("#turbine_component_cost")
.width(550).height(300)
.title('Turbine Component Cost')
.slice_value(function(d) { return d.Percent; })
.label_value(function(d) { return d.data.Component + ' ' + Math.round(d.data.Percent) + ' ' + unit; });
chart();
var radii = d3.range(20,80,1);
var blades = _.pick(values.blades,["blade_30","blade_50","blade_70"]);
//stacked component cost
var categories = (Object.keys(blades["blade_30"].cost_by_material));
var data_component = [];
var total_material = {'name':'Material', 'values': _.map( radii, function(r){ return {"x":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]), "y":0}; })};
categories.forEach(function(c){
var beta = power_fit(
_.map(blades,'radius'),
_.map(blades, b => b.cost_by_material[c]/1000. )
);
data_component.push({
'name':c,
'values': _.map( radii, function(r){ return {"x":r, "y":beta[0]*Math.pow(r,1*beta[1])}; })
});
total_material.values.forEach( function(v,i){ total_material.values[i].y += data_component[data_component.length-1].values[i].y; } );
});
chart = stackedLineGraph()
.data(data_component)
.selection_string("#turbine_component_cost_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Turbine Component Material Cost")
.xaxislabel("Turbine radius (m)")
.yaxislabel("Thousands of US Dollars");
chart();
//stacked component mass
var categories = (Object.keys(blades["blade_30"].mass_by_material));
var data = [];
categories.forEach(function(c){
var beta = power_fit(
_.map(blades,'radius'),
_.map(blades, b => b.mass_by_material[c] )
);
data.push({
'name':c,
'values': _.map( radii, function(r){ return {"x":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]), "y":beta[0]*Math.pow(r,1*beta[1])}; })
});
});
chart = stackedLineGraph()
.data(data)
.selection_string("#turbine_component_mass_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Turbine Component Mass")
.xaxislabel("Turbine radius (m)")
.yaxislabel("Mass (kg)");
chart();
//stacked labor
var categories = values["manufacturing_labor"].data;
categories.sort(function(a,b){
return b.Percent_30 - a.Percent_30;
})
var total_labor = {'name':'Labor', 'values': _.map( radii, function(r){ return {"x":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]), "y":0}; })};
var total_hours = values["manufacturing_labor"].total_hours_30;
var wage = 30;
var data_labor = [];
categories.forEach(function(c){
data_labor.push({
'name':c.Category,
'values': _.map( radii, function(r){
return {
"x":r,
"y":total_hours*wage/1000.*(c.Percent_30/100.)*Math.pow(r,1*c.Power)/Math.pow(30,1*c.Power)}; })
});
total_labor.values.forEach( function(v,i){ total_labor.values[i].y += data_labor[data_labor.length-1].values[i].y; } );
});
chart = stackedLineGraph()
.data(data_labor)
.selection_string("#turbine_labor_cost_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Turbine Labor Cost ($30/hour)")
.color(d3.scale.category20b())
.legend_font_size("14px")
.xaxislabel("Turbine radius (m)")
.yaxislabel("Thousands of US Dollars");
chart();
//tooling cost
var categories = (Object.keys(blades["blade_30"].cost_by_material));
var beta_tool = homogeneous_quadratic_fit(
_.map(blades,'radius'),
_.map(blades, b => b['tool_cost (dollars)']/b['tool_runs'] )
);
var beta_plant = power_fit(
_.map(blades,'radius'),
_.map(blades, b => b['plant_cost_per_floor_area (dollars/year)']*b['plant_floor_area (m2)']/b['plant_throughput (blades/day)']/365 )
)
var data_tooling_plant = [{
'name':'Tooling cost per blade',
'values':_.map(radii,
function(r){
return {"x":r, "y":beta_tool[0]*r*r};
})
},
{'name':'Tooling cost per MW',
'values':_.map(radii,
function(r){
return {"x":r, "y":beta_tool[0]*r*r / (beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]))};
})
},
{'name':'Plant cost per blade',
'values':_.map(radii,
function(r){
return {"x":r, "y":beta_plant[0]*Math.pow(r,1*beta_plant[1])};
})
},
{'name':'Plant cost per MW',
'values':_.map(radii,
function(r){
return {"x":r, "y":beta_plant[0]*Math.pow(r,1*beta_plant[1])/ (beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]))};
})
}
];
var total_tooling = {'name':'Tooling', 'values': _.map( radii, function(r,i){ return {"x":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]), "y":data_tooling_plant[0].values[i].y/1000}; })};
var total_plant = {'name':'Plant', 'values': _.map( radii, function(r,i){ return {"x":beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]), "y":data_tooling_plant[2].values[i].y/1000}; })};
chart = lineGraph()
.data(data_tooling_plant)
.selection_string("#turbine_tooling_cost_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Tooling and Plant Costs")
.xaxislabel("Turbine radius (m)")
.color(d3.scale.category10())
.legend_font_size("18px")
.yaxislabel("US Dollars");
chart();
//total cost
var total_data = [total_material, total_labor, total_tooling, total_plant];
var total_transport = {'name':'Transport', 'values': _.map( radii, function(r,i){
return {"x": beta_power_v_radius[0]*Math.pow(r,1*beta_power_v_radius[1]) , "y": .07*(total_material.values[i].y+total_labor.values[i].y+total_tooling.values[i].y+total_plant.values[i].y)}; })};
total_data.push(total_transport);
chart = stackedLineGraph()
.data(total_data)
.selection_string("#turbine_total_cost_scaling")
.width(400).height(300)
.margin({top: 30, right: 20, bottom: 30, left: 50})
.title("Total cost vs. nameplate power")
.xaxislabel("Turbine Power (MW)")
.color(d3.scale.category20())
.legend_font_size("18px")
.yaxislabel("Thousands of US Dollars");
chart();
});
</script>
</body>
</html>