Theory

This page documents the mathematical model behind every generated wind file. The equations follow IEC 61400-1 as implemented historically by IECWind (from the National Laboratory of the Rockies, formerly NREL); each is paired with the function that implements it (API reference) and is locked by the corpus and oracle described in Validation.

Common quantities

All transient cases share a small set of standard IEC quantities. Symbols used below:

Symbol

Name

Definition

\(V_\mathrm{hub}\)

Hub-height wind speed

Case-dependent reference speed (cut-in, rated, cut-out, or explicit).

\(I_\mathrm{ref}\)

Reference turbulence intensity

0.16 (A), 0.14 (B), 0.12 (C).

\(V_\mathrm{ref}\)

Reference wind speed

50 (class I), 42.5 (class II), 37.5 (class III) m/s.

\(\Lambda_1\)

Turbulence scale parameter

\(0.7\,z\) for hub height \(z < 60\) m, otherwise 42 m.

\(\sigma_1\)

Hub-height standard deviation

\(\sigma_1 = I_\mathrm{ref}\,(0.75\,V_\mathrm{hub} + 5.6)\).

\(D\)

Rotor diameter

Input dia.

\(\alpha\)

Power-law shear exponent

0.2 (Edition 1), 0.14 (Edition 3); 0.11 for EWM.

The standard deviation of the longitudinal turbulence is

\[\sigma_1 = I_\mathrm{ref}\,(0.75\,V_\mathrm{hub} + 5.6).\]

Transient cases are sampled at \(\Delta t = 0.1\) s starting from the transient start time \(t_1\). A leading steady row at \(t = 0\) precedes each transient, so a transient of duration \(T\) yields \(\lfloor T/\Delta t \rceil + 2\) data rows.

Output columns

Each .wnd data row has eight columns: time, horizontal wind speed, wind direction, vertical wind speed, horizontal linear shear, the power-law exponent \(\alpha\), vertical linear shear, and gust speed. The hub-height speed is decomposed by the inflow inclination angle \(\phi\) (slope_deg):

\[V_h = V_\mathrm{hub}\cos\phi, \qquad V_v = V_\mathrm{hub}\sin\phi.\]

Normal Wind Profile (NWP)

A steady profile following the power law

\[V(z) = V_\mathrm{hub}\left(\frac{z}{z_\mathrm{hub}}\right)^{\alpha},\]

with \(\alpha\) selected by iec_edition (0.2 for Edition 1, 0.14 for Edition 3). The embedded speed in an NWP<speed> code is always in m/s, matching legacy IECWind. Implemented by gen_nwp().

Extreme Wind Model (EWM)

The steady extreme wind speeds derive from the class reference speed:

\[V_\mathrm{e50} = 1.4\,V_\mathrm{ref}, \qquad V_\mathrm{e1} = 0.8\,V_\mathrm{e50}.\]

EWM50 uses \(V_\mathrm{e50}\) (50-year recurrence) and EWM01 uses \(V_\mathrm{e1}\) (1-year). A fixed shear exponent \(\alpha = 0.11\) is written regardless of edition. Implemented by gen_ewm().

Extreme Operating Gust (EOG)

The gust magnitude is the smaller of a turbulence-driven and an extreme-wind limit:

\[V_\mathrm{gust} = \min\!\left( 1.35\,(V_\mathrm{e1} - V_\mathrm{hub}),\; \frac{3.3\,\sigma_1}{1 + 0.1\,D/\Lambda_1} \right).\]

Over the transient duration \(T = 10.5\) s the hub speed follows

\[V(t) = V_\mathrm{hub} - 0.37\,V_\mathrm{gust}\, \sin\!\left(\frac{3\pi t}{T}\right) \left(1 - \cos\frac{2\pi t}{T}\right), \qquad 0 \le t \le T.\]

Implemented by gen_eog().

Extreme Direction Change (EDC)

The extreme direction-change amplitude is

\[\theta_e = \pm 4\arctan\!\left( \frac{\sigma_1}{V_\mathrm{hub}\,(1 + 0.1\,D/\Lambda_1)} \right),\]

where the sign is taken from the code. The direction ramps over \(T = 6\) s with a half-cosine:

\[\theta(t) = \tfrac{1}{2}\,\theta_e\left(1 - \cos\frac{\pi t}{T}\right).\]

Implemented by gen_edc().

Extreme Coherent Gust with Direction Change (ECD)

A coherent gust of fixed magnitude \(V_\mathrm{cg} = 15\) m/s is applied together with a direction change

\[\begin{split}\theta_\mathrm{cg} = \begin{cases} 180^\circ & V_\mathrm{hub} \le 4~\mathrm{m/s} \\[4pt] \dfrac{720^\circ}{V_\mathrm{hub}} & V_\mathrm{hub} > 4~\mathrm{m/s}. \end{cases}\end{split}\]

Over \(T = 10\) s both the gust and the direction rise with a half-cosine:

\[V(t) = V_\mathrm{hub} + \tfrac{1}{2}\,V_\mathrm{cg}\left(1 - \cos\frac{\pi t}{T}\right), \qquad \theta(t) = \tfrac{1}{2}\,\theta_\mathrm{cg}\left(1 - \cos\frac{\pi t}{T}\right).\]

The hub speed is offset by the rated speed and an optional modifier (\(\le 2\) m/s in user units). Implemented by gen_ecd().

Extreme Wind Shear (EWS)

A transient linear shear (vertical or horizontal) is applied across the rotor. With \(V_\mathrm{g50} = 6.4\,\sigma_1\), the peak shear is

\[s_\mathrm{max} = \frac{2\left(2.5 + 0.2\,V_\mathrm{g50}\,(D/\Lambda_1)^{0.25}\right)}{V_\mathrm{hub}},\]

ramped over \(T = 12\) s with a full cosine cycle:

\[s(t) = \pm\,\tfrac{1}{2}\,s_\mathrm{max}\left(1 - \cos\frac{2\pi t}{T}\right).\]

The axis (V/H) selects whether \(s(t)\) is written to the vertical or horizontal linear-shear column, and the sign sets its direction. Implemented by gen_ews().

Traceability

Each condition family maps to one implementing function, one independent oracle check that recomputes its headline quantity from the equations on this page (see Validation), and one or more golden scenarios that lock its byte output. The standard reference is IEC 61400-1, Clause 6 (wind conditions), for both Edition 1 and Edition 3; the exact sub-clause and table numbering differs between editions and is not reproduced here (consult the standard directly).

Family

Governing equation (this page)

Code

Independent oracle test

Golden scenarios

NWP

Power-law profile; \(\alpha\) per iec_edition

gen_nwp()

test_oracle.test_nwp_steady_speed

si_baseline, english_baseline, edition1, slope8

EWM

\(V_\mathrm{e50}=1.4V_\mathrm{ref}\), \(V_\mathrm{e1}=0.8V_\mathrm{e50}\); fixed \(\alpha=0.11\)

gen_ewm()

test_oracle.test_ewm_extreme_wind_speeds

all six scenarios

EOG

Gust amplitude \(V_\mathrm{gust}\) over \(T=10.5\) s

gen_eog()

test_oracle.test_eog_gust_amplitude

si_baseline, english_baseline, edition1, class1_cat_a, class3_cat_c, slope8

EDC

Direction amplitude \(\theta_e\) over \(T=6\) s

gen_edc()

test_oracle.test_edc_direction

si_baseline, english_baseline, edition1, class1_cat_a, class3_cat_c, slope8

ECD

\(V_\mathrm{cg}=15\) m/s and \(\theta_\mathrm{cg}\) over \(T=10\) s

gen_ecd()

test_oracle.test_ecd_direction_and_gust

si_baseline, english_baseline, edition1, class1_cat_a, class3_cat_c, slope8

EWS

Peak shear \(s_\mathrm{max}\) over \(T=12\) s

gen_ews()

test_oracle.test_ews_shear

si_baseline, english_baseline, edition1, class1_cat_a, class3_cat_c, slope8

Only the power-law shear exponent \(\alpha\) depends on iec_edition (0.2 for Edition 1, 0.14 for Edition 3, and a fixed 0.11 for EWM); the transient gust, shear, and direction-change magnitudes above are edition-independent in this implementation.

Provenance and scope

The equations above are implemented from the wind-condition definitions of IEC 61400-1, Clause 6 (external conditions / wind conditions), as historically realised by IECWind. They are re-derived independently in this package rather than ported from the original source, and are cross-checked by the analytical oracle described in Validation. No copyrighted IEC standard text is reproduced here; consult the standard itself for the normative definitions and the precise clause numbering, which differs between editions. iec_edition selects only the normal power-law shear exponent (0.2 for Edition 1, 0.14 for Edition 3); it is not a claim of full edition compliance (see Scope and limitations).

References

  • IEC 61400-1, Wind turbines – Part 1: Design requirements, Clause 6 (Wind conditions), Editions 1 and 3. International Electrotechnical Commission.

  • M. L. Buhl Jr., IECWind, National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory). https://www.nlr.gov/wind/nwtc/iecwind

  • OpenFAST InflowWind module documentation, National Laboratory of the Rockies (formerly the National Renewable Energy Laboratory). https://openfast.readthedocs.io/