Learn R Programming

bReeze (version 0.1-0)

aep: Calculation of annual energy production

Description

Calculates annual energy production (AEP) from a site's wind profile and wind turbine characteristics.

Usage

aep(profile, pc, hub.h, rho=1.225, avail=1, 
  bins=c(5, 10, 15, 20), sectoral=FALSE)

Arguments

profile
Wind profile object created by profile.
pc
Power curve object created by createPC or read from file by readPC.
hub.h
Hub heigth of wind turbine as numeric value.
rho
Air density as numeric value. Default is 1.225 kg/m3 according to the International Standard Atmosphere (ISA) at sea level and 15°C.
avail
Availability of turbine as numeric value between 0 (not available at all) and 1 (100% available).
bins
Edges of wind speed bins as numeric vector or NULL if only total AEP is desired.
sectoral
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.

Value

  • Returns a data frame containing:
  • wind.speedMean wind speed for each direction sector.
  • operationOperational hours per year for each direction sector.
  • totalTotal annual energy production for each direction sector.
  • ...Annual energy production per wind speed bin for each direction sector.

encoding

UTF-8

Details

For a wind turbine the mean energy production can be expressed by $$E = T \, \int_{v_{in}}^{v_{out}} \! f(v) \, p(v)$$ where $f(v)$ is the probability density function of the wind speed $v$, $p(v)$ is the power curve of the turbine and $T$ is the production time period. Energy production starts at the turbine's cut-in wind speed $v_{in}$ and stops at cut-out wind speed $v_{out}$.

Based on this fundamental expression, aep calculates the annual energy production as follows: $$AEP = A_{turb} \, \frac{\rho}{\rho_{pc}} \, H \, \sum_{b=1}^{n} \! W(v_b) \, P(v_b)$$ where $A_{turb}$ is the average availability of the turbine, $\rho$ is the air density of the site and $\rho_{pc}$ is the air density, the power curve is defined for. $W(v_b)$ is the probability of the wind speed bin $v_b$, estimated by the Weibull distribution and $P(v_b)$ is the power output for that wind speed bin. $H$ is the number of operational hours -- the production time period of the AEP is per definition 8760 hours.

The wind speed $v_h$ at hub height $h$ of the turbine is extrapolated from the measured wind speed $v_{ref}$ at reference height $h_{ref}$ using the Hellman exponential law (see profile): $$v_h = v_{ref} \, \left(\frac{h}{h_{ref}} \right)^\alpha$$

References

Burton, T., Sharpe, D., Jenkins, N., Bossanyi, E. (2001) Wind Energy Handbook. New York: Wiley

International Organisation for Standardization (1975) ISO 2533:1975 Standard Atmosphere. ISO Standard

Fördergesellschaft Windenergie e.V. (2007) Technical Guidelines for Wind Turbines, Part 6: Determination of Wind Potential and Energy Yields, Revision 7

See Also

profile, createPC, readPC, plotAep

Examples

Run this code
# load and prepare data
data(winddata)
set1 <- createSet(height=40, v.avg=winddata[,2], v.std=winddata[,5],
	dir.avg=winddata[,14])
set2 <- createSet(height=30, v.avg=winddata[,6], v.std=winddata[,9],
	dir.avg=winddata[,16])
ts <- formatTS(winddata[,1])
neubuerg <- createMast(time.stamp=ts, loc=NULL, desc=NULL, set1, set2)
neubuerg <- clean(neubuerg)

# calculate wind profile
neubuerg.wp <- profile(neubuerg, v.set=c(1,2), dir.set=1)

# load power curve
pw.56 <- readPC(system.file(package="bReeze", "powercurves", 
	"PowerWind_56_900kW.wtg"))

# calculate AEP
neubuerg.aep <- aep(neubuerg.wp, pw.56, 71)

# calculate AEP with site specific air density and availability of 97%
neubuerg.aep.2 <- aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, rho=1.195,
	avail=0.97)

# calculate total AEP using sectoral profiles
neubuerg.aep.3 <- aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, 
	sectoral=TRUE)
	
# check how air density, turbine availability and sectoral profiles
# influence the AEP
neubuerg.aep
neubuerg.aep.2
neubuerg.aep.3


# calculate AEP for 1 m/s speed bins and without binning
neubuerg.aep.4 <- aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, 
	bins=seq(0,25))
neubuerg.aep.5 <- aep(profile=neubuerg.wp, pc=pw.56, hub.h=71, bins=NULL)

# compare output
# note: bins exceeding maximum wind speed of the data dropped
neubuerg.aep.4
neubuerg.aep.5

Run the code above in your browser using DataLab