Wind Resource Assessment & Wind Farm Design

From wind data to megawatt-hours. Learn wind resource measurement (met masts, LiDAR), wind shear and the power law, the Weibull distribution and mean power density, power curves and the Betz limit, annual energy production (AEP) and capacity factor, P50/P90 estimates, wake effects and turbine spacing, offshore wind, and grid integration — with Python integrating a Weibull distribution over a power curve.

Wind power output scales with the cube of wind speed, so a site with 10% higher mean wind produces about 30% more energy. Careful resource assessment decides whether a wind farm is bankable.

Wind farm design then places turbines to capture the most energy while limiting wake losses, respecting terrain, noise and grid constraints.

An analogy

Wind speed statistics are like the rainfall record for a water-harvesting project: the average isn't enough — you need to know how often strong winds blow, because those few windy hours produce most of the energy.

Measuring the wind

At least one year of on-site data at hub height from met masts (cup anemometers, vanes) or remote sensing (LiDAR/SoDAR), correlated with long-term reference data (MCP — measure-correlate-predict). Wind speed increases with height (shear); roughness and terrain matter.

Statistics and energy

Wind speeds follow roughly a Weibull distribution (k ≈ 2 is the Rayleigh case). Because P ∝ v³, energy is concentrated in the high-wind tail. AEP combines the distribution with the turbine's certified power curve (IEC 61400-12), corrected for air density. Uncertainty yields P50 (median) and P90 (exceeded 90% of years) values used by lenders.

Layout and wakes

Wind farm design considerations:

Offshore, repowering and grid

Offshore wind has stronger, steadier winds and larger turbines (15+ MW, 230 m rotors) on monopiles, jackets or floating platforms; costs are higher but capacity factors reach 45–55%. Repowering old sites with fewer, larger turbines multiplies output. Grid integration needs forecasting, reactive power control, fault ride-through and, increasingly, hybrid wind–solar–storage plants (common in India's tenders).

Formulas

Worked example: Cube law

Given: Wind 6 → 7 m/s

Find: Power increase.

Answer: +59%

Worked example: Hub-height speed

Given: v₁₀ = 5 m/s, α = 0.14, hub 120 m

Find: v₁₂₀.

Answer: 7.1 m/s

Worked example: Capacity factor

Given: 2 MW turbine, 5500 MWh/yr

Find: CF.

Answer: 31.4%

Weibull AEP for a 2 MW turbine

import math
# Wind resource: Weibull distribution and annual energy of a 2 MW turbine
k, c = 2.0, 7.5          # Weibull shape, scale (m/s)
rho, D = 1.225, 100.0
A = math.pi * D * D / 4
mean_v = c * math.gamma(1 + 1 / k)
print(f"mean wind speed {mean_v:.2f} m/s")
def power(v):            # simplified power curve: cut-in 3, rated 12 m/s -> 2 MW, cut-out 25
    if v < 3 or v > 25: return 0.0
    if v >= 12: return 2000.0
    return min(2000.0, 0.5 * rho * A * v**3 * 0.45 / 1000)
def pdf(v):
    return (k / c) * (v / c) ** (k - 1) * math.exp(-(v / c) ** k)
dv = 0.1
aep = sum(power(i * dv) * pdf(i * dv) * dv for i in range(1, 300)) * 8760 / 1000   # MWh
print(f"annual energy production {aep:.0f} MWh, capacity factor {aep/(2*8760)*100:.1f}%")
print(f"Betz limit power at 10 m/s: {0.5*rho*A*1000*16/27/1e6:.2f} MW (vs 0.5*rho*A*v^3 = {0.5*rho*A*1000/1e6:.2f} MW)")
# mean wind speed 6.65 m/s
# annual energy production 7017 MWh, capacity factor 40.1%
# Betz limit power at 10 m/s: 2.85 MW (vs 0.5*rho*A*v^3 = 4.81 MW)

A large 100 m rotor on a 2 MW generator (low specific power) reaches rated power early, giving a high 40% capacity factor at a 6.65 m/s mean site. No turbine can capture more than 59.3% of the wind's power (Betz). Real AEP estimates subtract wake, availability, electrical and other losses (typically 10–20%).

Common mistakes

Applications

Key takeaways

Going further