Last chance! 50% off unlimited learning
Sale ends in
Calculates annual energy production (AEP) from a site's wind profile and wind turbine characteristics.
aep(profile, pc, hub.h, rho=1.225, avail=1, bins=c(5,10,15,20),
sectoral=FALSE, digits=c(3,0,0,3), print=TRUE)# S3 method for aep
plot(x, show.total=TRUE, ...)
Returns a list containing:
Mean wind speed for each direction sector.
Operational hours per year for each direction sector.
Total annual energy production for each direction sector.
Annual energy production per wind speed bin for each direction sector.
Capacity factor of the wind turbine.
Wind profile object created by profile
.
Power curve object created by pc
.
Hub heigth of wind turbine as numeric value.
Air density as numeric value. Default is 1.225
kg/m3 according to the International Standard Atmosphere (ISA) at sea level and 15°C.
Availability of turbine as numeric value between 0
(not available at all) and 1
(100% available).
Edges of wind speed bins as numeric vector or NULL
if only total AEP is desired. Default values are c(5, 10, 15, 20)
.
If TRUE
, wind speeds are extrapolated to hub height using the wind profiles of each direction sector. Otherwise the general profile ("all"
) is used for extrapolation (default).
Number of decimal places to be used for results as numeric vector. The first value is used for wind.speed
, the second for operation
, the third for aep
and the fourth for capacity
results. Default is c(3,0,0,3)
.
If TRUE
, results are printed directly.
AEP object, created by aep
.
If TRUE
(the default) the total AEP is added to the plot.
Arguments to be passed to methods. For optional graphical parameters see below.
The following graphical parameters can optionally be added to customize the plot:
border.leg
: Border colour(s) for the legend. One colour for each wind speed bin or a single colour -- default is same as col
.
bty.leg
: Type of box to be drawn around the legend. Allowed values are "n"
(no box, the default) and "o"
.
cex
: Amount by which text on the plot should be scaled relative to the default (which is 1
), as numeric. To be used for scaling of all texts at once.
cex.axis
: Amount by which axis annotations should be scaled, as numeric value.
cex.lab
: Amount by which axis labels should be scaled, as numeric value.
cex.leg
: Amount by which legend text should be scaled, as numeric value.
circles
: Manual definition of circles to be drawn, as numeric vector of the form c(inner circle, outer circle, interval between the circles).
col
: Vector of colours -- one colour for each wind speed bin or a single colour if aep
only contains the total AEP.
col.axis
: Colour to be used for axis annotations -- default is "gray45"
.
col.border
: Colour to be used for sector borders -- default is NULL
(no border is drawn).
col.circle
: Colour to be used for circles -- default is "gray45"
.
col.cross
: Colour to be used for axis lines -- default is "gray45"
.
col.lab
: Colour to be used for axis labels -- default is "black"
.
col.leg
: Colour to be used for legend text -- default is "black"
.
fg
: If TRUE
, sectors are plotted in foreground (on top of axis lines and circles) -- default is FALSE
.
lty.circle
: Line type of circles -- default is "dashed"
. See par
for available line types.
lty.cross
: Line type of axis lines -- default is "solid"
. See par
for available line types.
lwd.border
: Line width of the sector borders -- default is 0.5
. Only used if col.border
is set.
lwd.circle
: Line width of circles, as numeric value -- default is 0.7
.
lwd.cross
: Line width of axis lines, as numeric value -- default is 0.7
.
pos.axis
: Position of axis labels in degree, as numeric value -- default is 60
.
sec.space
: Space between plotted sectors, as numeric value between 0
and 1
-- default is 0.2
.
title.leg
: Alternative legend title, as string.
type
: If "n"
nothing is plotted.
width.leg
: Widths of legend space relative to plot space, as numeric value between 0
and 1
. If 0
, the legend is omitted, default value is 0.2
.
x.intersp
: Horizontal interspacing factor for legend text, as numeric -- default is 0.4
.
y.intersp
: Vertical line distance for legend text, as numeric -- default is 0.4
.
Christian Graul
For a wind turbine the mean energy production can be expressed by
Based on this fundamental expression, aep
calculates the annual energy production as follows:
The wind speed profile
):
The productive suitability of a wind turbine for a site can be evaluated by the capacity factor
Burton, T., Sharpe, D., Jenkins, N., Bossanyi, E. (2001) Wind Energy Handbook. New York: Wiley
Fördergesellschaft Windenergie e.V. (2007) Technical Guidelines for Wind Turbines, Part 6: Determination of Wind Potential and Energy Yields, Revision 7
International Organisation for Standardization (1975) ISO 2533:1975 Standard Atmosphere. ISO Standard
Jangamshetti, S.H., Rau, V.G. (1999) Site Matching of Wind Turbine Generators: A Case Study. IEEE Transaction on Energy Conversion 14(4), 1537--1543
windprofile
if (FALSE) {
## load and prepare data
data("winddata", package="bReeze")
set1 <- set(height=40, v.avg=winddata[,2], v.std=winddata[,5],
dir.avg=winddata[,14])
set2 <- set(height=30, v.avg=winddata[,6], v.std=winddata[,9],
dir.avg=winddata[,16])
ts <- timestamp(timestamp=winddata[,1])
neubuerg <- mast(timestamp=ts, set1, set2)
neubuerg <- clean(mast=neubuerg)
## calculate AEP
# calculate wind profile
neubuerg.wp <- profile(mast=neubuerg, v.set=c(1,2), dir.set=1,
print=FALSE)
# load power curve
pw.56 <- pc("PowerWind_56_900kW.wtg")
# calculate AEP
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71)
# calculate AEP with site specific air density and availability of 97
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, rho=1.195, avail=0.97)
# calculate total AEP using sectoral profiles
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, sectoral=TRUE)
# calculate AEP for 1 m/s speed bins and without binning
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, bins=seq(0,25))
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, bins=NULL)
# change number of digits and hide results
aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, digits=c(1,1,1,1))
neubuerg.aep <- aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, print=FALSE)
neubuerg.aep
## plot AEP objects
# default
plot(neubuerg.aep)
# omit total AEP
plot(neubuerg.aep, show.total=FALSE)
# change colours and text sizes
plot(neubuerg.aep, col=gray(5:0 / 5), cex=0.8)
# manual definition of circles
plot(neubuerg.aep, circles=c(250, 750, 250))
# plot sectors in foreground
plot(neubuerg.aep, fg=TRUE)
# change position of axis labels
plot(neubuerg.aep, pos.axis=135)
# no legend
plot(neubuerg.aep, width.leg=0)
# freaky
plot(neubuerg.aep, border.leg=heat.colors(5), bty.leg="o",
cex.axis=0.5, cex.lab=2, cex.leg=0.5, circles=c(80, 800, 80),
col=rainbow(5), col.axis="green", col.border="orange",
col.circle="purple", col.cross="yellow", col.lab="pink",
col.leg="lightblue", fg=TRUE, lwd.border=2, lwd.circle=3,
lwd.cross=4, lty.circle="12345678", lty.cross="87654321",
sec.space=0.6, title.leg="* WiNd SpEeD *", x.intersp=2, y.intersp=5)
}
Run the code above in your browser using DataLab