The evoTurb aims to generate 4D wind fields by constraining multiple independent 3D wind fields generated using TurbSim
or Mann turbulence generator (MTG)
with the user-defined longitudinal coherence.
The evoTurb is available both in Matlab and Python. If you are a Matlab user, please download evoTurb_matlab
. If you are a Python user, please download evoTurb_python
. If you don't have TurbSim or MTG, please download 3D wind field generator
and unzip it before running the scripts.
The 4D wind field simulation method is extended from the Veers method of 3D stochastic wind field simulation introduced in [1]. The coherence between any two points in space is assumed to be the multiplication of the lateral-vertical coherence and the longitudinal coherence. For more details regarding the methodology of 4D wind field simulation, please refer to our publication [2].
The evoTurb will first call TurbSim or MTG depending on users' choice to generate 3D wind fields. Then, it will read the 3D wind fields and compute the complex Fourier coefficients. Next, it will multiply the complex Fourier coefficients with the factorization of the longitudinal coherence matrix to constitute the complex Fourier coefficients for the 4D wind field. After that, iFFT is applied to obtain the time series data of wind speed. Finally, two binary files will be exported as results: one is the turbulent wind field on the rotor plane (identified with _rotor
, same extension as the 3D wind fields) and the other is the upstream wind field (identified with _upstream
with extension of .evo
).
The longitudinal coherence is acquired from the user-defined wind evolution model. The evoTurb supports the following wind evolution models (the wind evolution model is defined by users in the configuration function TurbConfig
):
Exp-UserDefined
: uses the wind evolution model (Eq.4) in [3]. Users are supposed to define the wind evolution model parameters by themselves.Exp-Simley
: uses the wind evolution model (Eq.7) in [3]. The parameterization model is acquired from LES simulations.Kristensen
: uses the wind evolution model (Eq.20) and G-function (Eq.29) in [4]. This model is based on physical assumption.Exp-GPR
: uses the wind evolution model (Eq.6) and the Gaussian process regression (GPR) models case 15 for a and case 17 for b (Table5) in [5]. The GPR models are trained with measurement data from an onshore flat site (seeacknowledgement
). Due to the limitation of the training data, it is not recommended to use the GPR models for the cases where the separations between the unfrozen planes exceed 109 m. The python version does not support this option.
- The
evoTurb_matlab
obtains best performance inMatlab 2020b
and is compatible withMatlab 2018b
. It might also be compatible with lower versions of Matlab but no garantee. - The
evoTurb_python
requiresPython 3.7
. - The evoTurb requires either
TurbSim
orMann turbulence generator (MTG)
. If you have them installed, please modify the corresponding directories in the configuration function of evoTurb. If you don't have any of them, please download3D wind field generator
which contains both TurbSim and MTG. The TurbSim executable and the input fileTurbSimInputFileTemplate.inp
are included in the folderevoTurb\3D wind field generator\TurbSim
. The MTG executable, dll file, and the batch filerun.bat
are included in the folderevoTurb\3D wind field generator\MannTurb
.
The TurbSim source code can be found in: https://github.com/OpenFAST/openfast/tree/main/vs-build/TurbSim.
The Mann turbulence generator is accessible from: https://www.hawc2.dk/download/pre-processing-tools
To use evoTurb, please follow the following steps:
- Modify the input file for TurbSim
TurbSimInputFileTemplate.inp
or MTGrun.bat
following their instructions. No need to adjust the random seed because this will be defined in the configuration function. - Modify the configuration function:
TurbConfig(.m/.py)
- Run the main script:
evoTurb(.m/.py)
After running the main script, three folders will be created if they don't already exist:
3DTurb_(model name)
to store the 3D wind fieldsInputFiles_(model name)
to store the corresponding input files for TurbSim or MTG4DTurb_(model name)
to store the 4D wind fields
A test case is provided to verify this turbulence unfreezing method. This is only available for the matlab version.
All the relevant files are included in the folder evoTurb_matlab\example
. The configuration function CohTestConfig.m
and the input files TurbSimInputFileCohTest.inp
and MannTurbInputFileCohTest.bat
have already been set up for the test case specifically. So, there is no need to adjust these files.
To run the test case, execute the TestCoherence.m
. This script will generate 8 independent 4D turbulent wind fields and estimate the coherence from the simulated data. Then, the estimated y-z plane coherence will be compared with the analytical coherence according to turbulence model (IEC Kaimal or IEC Mann). Also, the estimated longitudinal coherence will be compared with the user-defined one that is used to simulate the evolving turbulence.
[1] Veers, P. S. (1988). Three-Dimensional Wind Simulation (No. SAND88-0152 UC-261). Albuquerque, New Mexico.
[2] Chen, Y., Guo, F., Schlipf, D., and Cheng, P. W.: Four-dimensional wind field generation for the aeroelastic simulation of wind turbines with lidars, Wind Energ. Sci., 7, 539–558, https://doi.org/10.5194/wes-7-539-2022, 2022.
[3] Simley, E., & Pao, L. Y. (2015). A longitudinal spatial coherence model for wind evolution based on large-eddy simulation. In 2015 American Control Conference (ACC) (pp. 3708–3714). IEEE. https://doi.org/10.1109/ACC.2015.7171906
[4] Kristensen, L. (1979). On longitudinal spectral coherence. Boundary-Layer Meteorology, 16(2), 145–153. https://doi.org/10.1007/BF02350508
[5] Chen, Y., Schlipf, D., & Cheng, P. W. (2021). Parameterization of wind evolution using lidar. Wind Energy Science, 6(1), 61–91. https://doi.org/10.5194/wes-6-61-2021
Stuttgart Wind Energy (SWE), University of Stuttgart
contact: chen@ifb.uni-stuttgart.de
Wind Energy Technology Institute, Flensburg University of Applied Sciences
contact: feng.guo@hs-flensburg.de
The Gaussian process regression models for the wind evolution model parameters (the option „Exp-GPR“ in the matlab version) were trained with the measurement data acquired from the project Lidar complex (grant no. 0325519A) funded by the German Federal Ministry for Economic Affairs and Energy (BMWi). This project was aimed at the development of lidar technologies for detecting wind field structures with regard to optimising wind energy use in mountainous-complex terrain. For more details, please refer to:
- https://www.ifb.uni-stuttgart.de/en/research/windenergy/projects/lidar_complex/
- https://www.windfors.de/en/projects/lidar-complex/
This research has received partial funding from:
- the Joint Graduate Research Training Group Windy Cities, supported by the Baden-Württemberg Ministry of Science, Research and Arts.
- the European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie Grant Agreement No. 858358 (LIKE—Lidar Knowledge Europe). See https://www.msca-like.eu/ for more details about the LIKE project.
Chen, Y., & Guo, F. (2021). evoTurb (Version v1.0.0) [Computer software]. https://doi.org/10.5281/zenodo.5028595