Code belonging to the publication: Closed-loop model-predictive wind farm flow control under time-varying inflow using FLORIDyn
doi: 10.4121/038777f7-f497-494f-9f61-85d90a00074a
FLORIDyn framework
The Flow Redirection and Induction Dynamics Model (FLORIDyn) is a dynamic wake model designed for model-based wind farm flow control.
The code is written for Matlab; for Python, see the FLORIDyn implementation in OFF (https://github.com/TUDelft-DataDrivenControl/OFF).
Model features
- Simulate wind farms dynamically at a low computational cost
- Estimate the power generated, added turbulence, and wake-induced losses.
- Apply heterogeneous and time-varying wind speeds and directions
- Test different modeling approaches
Control features
- Three families of yaw angle trajectory derivation methods with each different implementations
- Different cost functions (e.g., max energy, power, shifted energy)
- Switch flow field predictions on / off or choose a transition between full and no knowledge.
State estimation features
- Ensemble Kalman Filter flow field state estimation based on turbine measurements
- Correction of Wind speed, direction, and ambient turbulence intensity
- Different ways to calculate the Kalman Gain Matrix
Closed-loop application examples
- Demo files to apply closed-loop model-based wind farm flow control based on FLORIDyn in tandem with the LES SOWFA (https://github.com/TUDelft-DataDrivenControl/SOWFA)
Getting started
This code is folder-based. This means that a folder is referenced in the main.m and the code draws all information from that folder. Look under „Simulations“ to find example cases. Each case consists of data (e.g., wind speeds), parameters for FLORIS and FLORIDyn, a setup.mlx, and information about the turbine placement in turbineArrayProperties.m. The closed-loop-cases also have a clc_settings.mlx file and the Ensemble Kalman Filter settings.
To change settings, investigate setup.mlx, the file contains all major settings and explanations. The same holds true for the clc_stettings.mlx and EnKF_settings.m
To set up your own case, copy past an existing one and replace what is needed. If you select data input sources that don’t have a related .csv file, the code will generate one for you in the fitting format.
Requirements
The code is based on MATLAB and tested in R2023a. The code uses the optimization toolbox, as well as the parallelization toolbox by MathWorks.
References
FLORIDyn - A dynamic and flexible framework for real-time wind farm control, M. Becker, D. Allaerts, J.W. van Wingerden, 2022, doi: 10.1088/1742-6596/2265/3/032103
Used FLORIS model:
Experimental and theoretical study of wind turbine wakes in yawed conditions, M. Bastankhah, F. Porté-Agel, 2020, doi: 10.1017/jfm.2016.595
Additional references for smaller subcomponents can be found in the code or in the related publications.
- 2024-12-16 first online, published, posted
DATA
To access the source code, use the following command:
git clone https://data.4tu.nl/v3/datasets/89623e1a-5960-4b68-956a-7c664e3a5a76.git