Wake effects

What are Wake effects?

When placed in a farm, wind turbines produce disturbances to the air as they extract kinetic energy. These disturbances are commonly referred to as wakes.

Schematic representation of a small wind farm

Due to the complex aero-dynamic interactions, wakes may affect down-wind turbines in a non-obvious manner while evolving on real wind farms. Moreover, different ambient wind conditions, such as turbullence and temperature affect how wakes evolve. Wakes affect dramatically the power production of windfarms, making the minimum spacing of wind turbines an important design constraint. In order to obtain reliable estimates on power production, and potentially to structural dynamic loads of wind turbine components, it is important to have an automated and scalable technique to statistically model the effect of wakes under different wind conditions.

This work is based on a Monte-Carlo simulation of a wind-farm, containing 1000 cases with different wind turbulence intensity, wind orientation and mean windspeed conditions using NREL-OpenFAST [1] and the Dynamic Wake Meandering subroutines [2]. Each simulation required approximately 13 hours to complete, and the volume of the data was too large to post-process in a single machine. Therefore a fully distributed workflow (simulation and post-processing) was implemented in ETH cluster Euler (IBM spectrum LSF system). This also led to my first small contribution on an open source project, which was to refactor parts of the source code of NREL-OpenFAST to compile and run under Linux. In our related work , presented on the IMAC XXXVI conference , it was demonstrated how deep generative models, namely the Variational Autoencoder (VAE)[3] can effectively represent the statistics of the effect of wakes on the operational characteristics of a wind farm, with a limited amount of samples considering the dimensionality of the problem.

The loss function of the VAE reads:

\[ELBO(X,z) = E[\log P(X \vert z)] - D_{KL}[Q(z \vert X) \Vert P(z)]\]

Where \(X\) are the raw monitoring variables, \(z\) is a lower dimensional representation of the raw variables.

The loss function of the VAE attempts to jointly discover a lower dimensional representation for the data, while at the same time warping the raw data in such a way that it is modelled with a simple probability distribution. The \(D_{KL}\) term pushes the lower dimensional representation \(z\) to a simple probability distribution, whereas the second term helps is forcing the identification of the latent structure in the data.

Actually, a conditional VAE is used, which is better described in my other post where I applied this to simulated fatigue loads of wind turbine blades.

Some Results

In the following animation, samples from the trained autoencoder are shown, where the mean wind speed of the farm is controlled. The arrows represent the wind orientation as it is sensed from each turbine

Effective turbulence intensity is another parameter affected by the wakes.

Min/max Turbulence intensity for farm for different angles, sampled from the autoencoder for a narrow windspeed range. Red dots correspond to the simulated cases. The rest of the data points correspond to samples from the VAE, which generalizes in a realistic manner from the available data.

Joint distribution of windspeed and turbulence intensity on all turbines The orange dots corresponds to VAE-sampled data, whereas the blue correspond to real data. The VAE captures effectively the joint distribution of the wind characteristics at different points, accounting for the effect of wakes.

References

[ 1 ] OpenFAST

[ 2 ] Dynamic Wake Analysis Routines

[ 3 ] Auto-Encoding Variational Bayes