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.v1
The doi above is for this specific version of this dataset, which is currently the latest. Newer versions may be published in the future. For a link that will always point to the latest version, please use
doi: 10.4121/038777f7-f497-494f-9f61-85d90a00074a
Datacite citation style:
Becker, Marcus (2024): Code belonging to the publication: Closed-loop model-predictive wind farm flow control under time-varying inflow using FLORIDyn. Version 1. 4TU.ResearchData. software. https://doi.org/10.4121/038777f7-f497-494f-9f61-85d90a00074a.v1
Other citation styles (APA, Harvard, MLA, Vancouver, Chicago, IEEE) available at Datacite
Software

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.

history
  • 2024-12-16 first online, published, posted
publisher
4TU.ResearchData
format
.m, .csv, .md, .pptx, .mlx, .mat
organizations
TU Delft, Faculty of Mechanical Engineering, Delft Center for Systems and Control

DATA

To access the source code, use the following command:

git clone https://data.4tu.nl/v3/datasets/89623e1a-5960-4b68-956a-7c664e3a5a76.git

Or download the latest commit as a ZIP.