• Non ci sono risultati.

An aero-servo-elastic wind farm control strategy implemented within OpenFAST

N/A
N/A
Protected

Academic year: 2021

Condividi "An aero-servo-elastic wind farm control strategy implemented within OpenFAST"

Copied!
194
0
0

Testo completo

(1)

Politecnico di Milano

SCHOOL OF INDUSTRIAL AND INFORMATION ENGINEERING Master of Science – Mechanical Engineering

Master of Science Thesis

An aero-servo-elastic wind farm control strategy

implemented within OpenFAST

Supervisor

Ing. Schito Paolo Co-Supervisor

Prof. Zasso Alberto

Candidate

Antonio Cioffi ID. 898922

(2)
(3)

Antonio Cioffi: An aero-servo-elastic wind farm control strategy implemented within OpenFAST | Tesi Magistrale in Ingegneria Meccanica, Politecnico di Milano.

c

Copyright Aprile 2020.

Politecnico di Milano: www.polimi.it

Scuola di Ingegneria Industriale e dell’Informazione: www.ingindinf.polimi.it

(4)
(5)

Ringraziamenti

Eh, i ringraziamenti.

E ora come si fa . . .

E’ impensabile riuscire anche solo a scrivere in una paginetta tutte le persone che desidero ringraziare; figurarsi i motivi per cui vorrei farlo.

Come si fa a ringraziare in poche righe la mia famiglia, Arianna ,Vincenzo e ZPaola (rigorosamente in ordine alfabetico e non di importanza) per tutto quello che hanno reso possibile in questi anni, ma soprattutto per avermi dato la possibilità di studiare lontano di casa, a Milano, e per giunta al Poli.

Come si fa a ringraziare in poche righe gli zii, i cugini (tutti non posso scrivervi altrimenti non la finiamo più, ma spero sappiate quanto siete importanti per me) ed i nonni (questi li scrivo perchè a meno di clamorosi colpi di scena dovrebbero essere solo quattro... per favore se sono di più aspettate domani per dirmelo perchè questo 29 Aprile voglio godermelo) Antonio (anche se per poco), Mariantonietta, Tina e Silvestro (che ho sempre invidiato per il "lavoro" che fa da circa 25 anni a questa parte) (i nonni sono veramente in ordine alfabetico!) per tutto il bene che mi hanno voluto da sempre.

Come si fa a ringraziare in poche righe gli amici di una vita Domenico, Fabio, Gigi, Marco e Massimiliano per essere cresciuti insieme come amici, come studenti (per ora), come uomini... siete la mia seconda famiglia. Questo già lo sapete, non c’era bisogno di scriverlo, ma adesso potrete presentare questa tesi al notaio per reclamare la vostra fetta di eredità (Fabio, forse avremmo fatto meglio a non comprarle queste maledette moto...). (Verba Volant, Scripta Manent)

P.S.: Eravamo partiti in più di 6, ma poi, PURTROPPO, alcuni si sono persi per strada... volevo dire grazie anche a loro per avermi insegnato cose che nessuna università ti spiega.

Come si fa a ringraziare in poche righe i nuovi amici conosciuti a Milano, sia quelli incontrati all’università, sia quelli incontrati al di fuori di essa... Mi riferisco in particolare a Andrea DST (prima di questo COVID stavamo dando spettacolo a MI), a Ciabatz, a Camilla, a Mariolas, a Siro, a Dimitri, a Federico, a DiSi, a Enrico e poi ancora a Luisa, a Alexandrine (metà IT e metà BE), a Nicola e ad Antonio che hanno reso questi 5/6 anni decisamenti più leggeri delle materie che ci venivano insegnate ogni giorno al Poli.

Come si fa a ringraziare in poche righe Leonardo e Lucia... per chi non lo sapesse, Leonardo è il mio coinquilino!!! Mi fa strano pensare che lui sia la persona con cui ho condiviso più tempo negli ultimi 6 anni, ma soprattutto mi fa strano pensare alla enorme fortuna che ho avuto quella estate del 2014 a prendere casa in Via Lombardini al Terzo Piano con lui (è successo tutto per puro caso)... Grazie a

(6)

vi

te e Lucy per esserci stati sempre.

Come si fa a ringraziare in poche righe il prof. Schito, per tutte le possibilità che mi ha dato e per il continuo supporto nel lavoro di tesi, il prof. Zasso, che per primo mi ha detto della possibilità di lavorare su un tema così importante come quello dell’energia rinnovabile e la dottoranda Claudia che, in particolare nell’ultimo periodo, mi ha dato una mano fondamentale sia nella parte pratica, sia nella stesura di questa tesi (spero non ci siano grossi errori grammaticali nella scrittura di questi ringraziamenti!!!).

Come si fa a ringraziare in poche righe tutti quelli che non ho ringraziato prima... beh, non lo so, ma grazie!

Alla fine sembra che sapessi come fare... menomale.

(7)

alla mia famiglia, Vincenzo, Arianna e Paola.

(8)
(9)

Contents

Introduction 1

1 Models and Papers 11

1.1 P & P BEM Model . . . 12

1.1.1 Betz’s limit . . . 12

1.1.2 Glauert’s Correction . . . 14

1.1.3 BEM Model . . . 15

1.1.4 Pitt & Peters BEM Model . . . 18

1.2 Gaussian Wake Model . . . 19

1.2.1 Original Model Overview . . . 20

1.2.2 Additional considerations . . . 23

1.2.3 Model changes for OpenFAST coupling . . . 24

1.3 CFD and OpenFOAM . . . 26

1.4 ALM Model . . . 28

2 Software Changes 31 2.1 Python Controller . . . 33

2.2 SuperController . . . 34

2.3 User-specified InflowWind routine . . . 36

3 Engineering Models 37 3.1 Wind Magnitude Observer . . . 38

3.1.1 Theory . . . 38

3.1.2 Validation . . . 41

3.2 Wind Misalignment Observer . . . 42

3.2.1 Original Model . . . 42

3.2.2 Modified Model . . . 46

3.2.3 Model Parameters Identification . . . 47

3.2.4 Validation . . . 49

3.3 Genetic Algorithm . . . 51

4 OpenFLORIS Simulations 55 4.1 Settings . . . 55

4.1.1 Wind Farm Layout . . . 56

4.1.2 Wind Input . . . 56

4.1.3 Overview of OpenFAST settings . . . 58

4.1.4 Turbine-Controller Interaction . . . 59

(10)

x CONTENTS

4.1.5 Controller and SuperController Parameters . . . 59

4.2 Results . . . 61

4.2.1 Wind Magnitude Observer . . . 62

4.2.2 Wind Direction Observer . . . 65

4.2.3 Wind Model . . . 67

4.2.4 Genetic Algorithm . . . 70

4.2.5 Final Remarks . . . 74

5 SOWFA and OpenFAST Simulations 77 5.1 Settings . . . 78

5.1.1 Mesh and CFD-Settings . . . 79

5.1.2 Wind Farm Layout . . . 79

5.1.3 Wind Input . . . 80

5.1.4 SOWFA Turbine Input . . . 81

5.1.5 Overview of OpenFAST settings . . . 82

5.1.6 Turbine-Controller Interaction . . . 83

5.1.7 Controller and SuperController Parameters . . . 83

5.2 Results . . . 85

5.2.1 Wind Magnitude Observer . . . 85

5.2.2 Wind Direction Observer . . . 89

5.2.3 Wind Model . . . 91

5.2.4 SuperController Logic . . . 93

5.2.5 Final Remarks . . . 97

Conclusions and Future Work 99 A Appendix 101 A.1 DISCON.py . . . 101 A.2 IfW_UserWind.f90 . . . 121 A.3 libsupercontroller.cpp . . . 161 Acronyms 171 Bibliography 172

(11)

List of Figures

1 Wind Power Capacity Installed up to 2017 . . . 1

2 Wind Farm example in Denmark . . . 2

3 An example of wake produced by an operating wind turbine . . . . 5

4 Some geometrical parameters of a wind turbine . . . 6

5 Power Recovery in a simple Wind Farm adopting the helix IPC approach as wake control method . . . 8

1.1 Graphical representation of 1D Momentum Theory . . . 13

1.2 Tangential Induction effect on the wake . . . 15

1.3 Schematics of the angle of attack for an airfoil section . . . 16

1.4 Glauert’s Correction . . . 18

1.5 Yaw misalignment effect . . . 18

1.6 Wake zones graphical description . . . 21

1.7 Wake Models Comparison . . . 24

1.8 The coupling between OpenFAST and the FLORIS-like wind schema-tized . . . 26

1.9 A typical result obtained by a CFD numerical analysis . . . 27

1.10 A representation of the ALM concept . . . 29

2.1 OpenFAST directly inherits its architecture from its predecessor FASTv8 . . . 32

2.2 Python and Numpy are an efficient choice to develop a turbine controller . . . 34

2.3 SOWFA and its SuperController logic . . . 35

3.1 A wind turbine subjected to both wind and wave loads . . . 37

3.2 A CP Table vs TSR and Pitch Angle for the NREL 5MW Wind Turbine . . . 40

3.3 Graph representing the Wind Magnitude Observer . . . 41

3.4 Graph representing the Wind Magnitude Observer Percentage Error 41 3.5 A Wind Rose indicating wind speed and direction occurrences in a given period . . . 44

3.6 A schematic representation of a Neural Network . . . 47

3.7 Imposed Wind Direction variations in a single simulation . . . 48

3.8 Sine component of the Out-Plane Bending Moment Demodulated acting on the NREL 5MW at V∞= 7 m/s . . . 49

3.9 Graph representing the Wind Direction Observer . . . 50

(12)

xii LIST OF FIGURES

3.10 Graph representing the Wind Direction Observer Error implementing the Original Method . . . 51

3.11 Graph representing the Wind Direction Observer Error implementing the Modified Method . . . 51

3.12 An image representing how the genetic algorithm basic steps work . 52

3.13 A graphic representing the main passages of the genetic algorithm . 54

4.1 The Reference Wind Farm Layout . . . 56

4.2 DISCON.py calls for each of the three turbines a module containing the saved variables called globalDISCON.py . . . 60

4.3 Graph representing the Wind Magnitude Observer for the First Turbine 62

4.4 Graph representing the Wind Magnitude Observer Percentage Error for the First Turbine . . . 63

4.5 Graph representing the Wind Magnitude Observer for the Second Turbine . . . 63

4.6 Graph representing the Wind Magnitude Observer Percentage Error for the Second Turbine . . . 64

4.7 Graph representing the Wind Magnitude Observer for the Third Turbine . . . 64

4.8 Graph representing the Wind Magnitude Observer Percentage Error for the Third Turbine . . . 65

4.9 Graph representing the Wind Direction Observer for the Wind Farm 66

4.10 Graph representing the Wind Direction Observer Error with the Original Method for the Wind Farm . . . 67

4.11 Graph representing the Wind Direction Observer Error with the Modified Method for the Wind Farm . . . 67

4.12 Graph representing the Thrust Coefficient for the Wind Farm . . . 68

4.13 Graph representing the Input Wind on the First Turbine . . . 69

4.14 Graph representing the Input Wind on the Second Turbine . . . 69

4.15 Graph representing the Input Wind on the Third Turbine . . . 70

4.16 Graph representing the Yaw Angle and Speed of the First Turbine . 71

4.17 Graph representing the Yaw Angle and Speed of the Second Turbine 71

4.18 Graph representing the Yaw Angle and Speed of the Third Turbine 72

4.19 Graph representing the Power Extracted from the individual Turbines 73

4.20 Graph representing the Total Power Extracted from the Wind Farm 74

4.21 Graph representing the Total Power Extracted from the Wind Farm with various Yaw Angles settings . . . 75

5.1 The Reference Wind Farm Layout . . . 80

5.2 The Reference Wind Farm Layout with Optimized Yaw Angles . . . 80

5.3 DISCON.py calls for each of the three turbines a module containing the saved variables called globalDISCON.py . . . 83

5.4 Graph representing the Wind Magnitude Observer for the First Turbine in the SOWFA/OpenFAST Simulation . . . 86

5.5 Graph representing the Wind Magnitude Observer Percentage Error for the First Turbine in the SOWFA/OpenFAST Simulation . . . . 86

(13)

LIST OF FIGURES xiii

5.6 Graph representing the Wind Magnitude Observer for the Second Turbine in the SOWFA/OpenFAST Simulation . . . 87

5.7 Graph representing the Wind Magnitude Observer Percentage Error for the Second Turbine in the SOWFA/OpenFAST Simulation . . . 87

5.8 Graph representing the Wind Magnitude Observer for the Third Turbine in the SOWFA/OpenFAST Simulation . . . 88

5.9 Graph representing the Wind Magnitude Observer Percentage Error for the Third Turbine in the SOWFA/OpenFAST Simulation . . . . 88

5.10 Graph representing the Wind Direction Observer for the Wind Farm in the SOWFA/OpenFAST Simulation . . . 89

5.11 Graph representing the Wind Direction Observer Error with the Original Method for the Wind Farm in the SOWFA/OpenFAST Simulation . . . 90

5.12 Graph representing the Wind Direction Observer Error with the Modified Method for the Wind Farm in the SOWFA/OpenFAST Simulation . . . 90

5.13 Graph representing the Input Wind on the First Turbine in the SOWFA/OpenFAST Simulation . . . 91

5.14 Graph representing the Input Wind on the Second Turbine in the SOWFA/OpenFAST Simulation . . . 92

5.15 Graph representing the Input Wind on the Third Turbine in the SOWFA/OpenFAST Simulation . . . 92

5.16 Image representing the Wind blowing in the Wind Farm at tsim = 300 s 93

5.17 Image representing the Wind blowing in the Wind Farm tsim = 700 s 93

5.18 Graph representing the Yaw Angle and Speed of the First Turbine in the SOWFA/OpenFAST Simulation . . . 94

5.19 Graph representing the Yaw Angle and Speed of the Second Turbine in the SOWFA/OpenFAST Simulation . . . 95

5.20 Graph representing the Yaw Angle and Speed of the Third Turbine in the SOWFA/OpenFAST Simulation . . . 95

5.21 Graph representing the Power Extracted from the individual Turbines in the SOWFA/OpenFAST Simulation . . . 96

5.22 Graph representing the Total Power Extracted from the Wind Farm in the SOWFA/OpenFAST Simulation . . . 96

(14)
(15)

List of Tables

4.1 Reference Wind Farm configuration in absolute and adimensionalized values . . . 56

4.2 Wind Magnitude Input for the OpenFLORIS simulation . . . 57

4.3 Wind Direction Input for the OpenFLORIS simulation . . . 57

4.4 Gaussian Wake Model Parameters for the OpenFLORIS simulation 58

4.5 Wind Magnitude Observer (WMO) Parameters for the OpenFLORIS simulation . . . 60

4.6 Wind Direction Observer (WDO) Parameters for the OpenFLORIS simulation . . . 61

4.7 Genetic Algorithm (GA) Parameters for the OpenFLORIS simulation 62

4.8 Optimum Yaw Angles Imposed for the SOWFA/OpenFAST simulation 73

5.1 Mesh Dimension in absolute and adimensionalized values, with num-ber of cells division . . . 79

5.2 Box-Type Refinements applied to the domain . . . 79

5.3 Reference Wind Farm configuration in absolute and adimensionalized values . . . 80

5.4 ABL Input for the SOWFA/OpenFAST simulation . . . 81

5.5 Wind Magnitude Observer (WMO) Parameters for the SOWFA/Open-FAST simulation . . . 84

5.6 Wind Direction Observer (WDO) Parameters for the SOWFA/Open-FAST simulation . . . 85

5.7 Optimum Yaw Angles Imposed for the SOWFA/OpenFAST simulation 97

(16)
(17)

Listings

A.1 DISCON.py Example Code . . . 101

A.2 IfW_UserWind.f90 Example Code . . . 121

A.3 libsupercontroller.cpp Example Code . . . 161

(18)
(19)

Sommario

Raggruppare le turbine in parchi eolici è una prassi particolarmente conveniente da un punto di vista economico.

Tuttavia, l’interazione tra il vento e le pale eoliche produce delle scie che impattano negativamente sull’estrazione di potenza totale nel parco.

Infatti, quese scie sono caratterizzate da un forte deficit di velocità e da un au-mento di turbolenza rispetto al flusso indisurbato; quest’ ultimo punto in paricolare causa una diminuzione della vita utile della macchina dovuto ad effetti di fatica sui componenti strutturali.

Per questi motivi, una strategia di controllo per la scia è necessaria per aumentare sia la durata che l’efficienza dell’intero gruppo elico.

Il metodo proposto in questa tesi si basa sulla virata della scia prodotta dalle turbine sopravento; per fare ciò si agisce sull’angolo di imbardata delle varie macchine.

E’ un metodo "ottimo" poichè si massimizza l’estrazione totale del parco e non, come avveniva in precedenza, la potenza della singola macchina.

Quello dell’ ottimizzazione, però, è un problema tutt’altro che semplice, data la natura intrinsecamente non stazionaria del vento ed il continuo susseguirsi di condizioni ambientali e operative sulle macchine non definibili in maniera determin-istica.

Verrà presentato in questa tesi, un possibile SuperControllore per il parco eolico, insieme a degli stimatori per la singola macchina dell’intensità e direzione del vento; sarà inoltre proposto un modello di vento e scia stazionario (basato su FLORIS) integrato in un simulatore aeroelastico di turbina eolica (OpenFAST).

Questo nuovo modello si è rivelato particolarmente utile nel capire gli effetti prodotti dalla virata della scia nel parco eolico adottato come riferimento.

Saranno infine presentati i risultati ottenuti da una simulazione CFD eseguita abbinando al simulatore della dinamica delle macchine (OpenFAST), un simulatore dello strato limite atmosferico (SOWFA/OpenFOAM) per mostrare i vantaggi derivanti dall’adottare la suddetta strategia di ottimizzazione.

L’intero lavoro è stato svolto prendendo come riferimento le turbine NREL 5MW.

Parole chiave: Parchi eolici, Pale eoliche, Scia, Energia eolica, Virata della scia, Controllo dell’angolo imbardata

(20)

Abstract

The clustering of Wind Turbines is an advantageous praxis from an economic point of view.

However, the interaction between the turbines and the wind produces a wake that strongly affects the power extraction of the entire wind farm. Indeed, the wakes developed in the farm are characterized by a strong deficit in wind speed acting on downstream turbines and an increased turbulence intensity, increasing the fatigue loads on the machines.

Due to these non desirable effects, a method to control the wake is needed both to increase turbine’s lifetime and power efficiency. The method proposed and investigated in this thesis is the wake steering one.

It is based on the control of the yaw angles of the various machines in the farm. It is an optimized method and not a "sub-optimal" one, like "greedy" yaw control, since it’s accounting for the effect that steering the upwind wakes has on the downwind turbines.

The optimization isn’t trivial due to the intrinsic non-stationary nature of the wind and the many environmental and working conditions that can be found during machine operations.

A proposal of SuperController for the whole farm is defined in this work, together with estimators for wind speed and direction for the single turbines; moreover a new model of wind is defined, starting from a steady-state model (FLORIS) applied to a turbine aero-elastic simulator (OpenFAST), which will be useful to understand the effects of wake steering in a reference wind farm setting.

A comprehensive simulation will then be carried out with a CFD-coupling between the aero-elastic simulator(OpenFAST) and the Atmospheric Boundary Layer simulator(SOWFA-OpenFOAM), to show the achieved improvement in power extraction.

The entire work has been performed keeping as reference the NREL 5MW Wind Turbine.

Keywords: Wind Farm, Wind Turbine, Wake, Wind Energy, Wake Steering, Yaw Control

(21)

Introduction

Many issues arise from the use of energy: greenhouse gas emissions, acid rains, climate changes, dependency on depleting supplies of fossil fuels — especially from politically unstable regions of the world.

That’s why, nowadays, the focus on renewable energy is increasing more and more.

For sure, an important part of green energy production is given by wind energy extraction employing wind turbines; indeed, making reference only to the field of renewable energy, wind is an always available source, relatively cheap and the machines performing the power extraction task require much less maintenance and space availability.

That’s why in these years it was possible to experience a real boom of wind farm installations, leading to an impressive 597 GW of installed capacity, with an increase of about 50 GW only in the 2018.

Figure 1: Wind Power Capacity Installed up to 2017

(22)

2 Introduction

Globally, these installations cover the 6% of world’s energy request with the promise of continuing to grow in the next years.

Moreover, thanks to the expertise achieved in the past years in the building of the machines, it is possible to have them working almost always at a very high efficiency and, at the same time, limiting the loads acting on the blades that can be really detrimental for their life.

All of this allows for a faster recovery on the initial investment for the farm managers and keeps increasing the interest developed in the wind energy field.

Just think that the last year, the EU financed a project whose aim is to further investigate on wind energy production, and in particular on the topic of wind farm control, to allow an increase of the overall extracted power on already existent infrastructures.

Figure 2: Wind Farm example in Denmark

Up to present days, turbines are controlled in an individual fashion, even if they are located in wind farms; this strategy is also called "greedy" control since it’s not keeping into account that the wake generated will eventually reach the downstream machines.

These wakes are responsible for the decrease of power extraction and for an increase of fatigue loads, both detrimental for the farm’s turbines.

Indeed, wakes are characterized by a wind speed deficit and an increase of tur-bulence intensity. This last aspect is a controversial one, since, although penalizing the lifetime of the machine, an increase in turbulence allows for a faster mixing of the wake with the free-stream flow (wind speed recovery).

Thus a global optimization problem arises; up to now, the main focus of the research has been on the wake velocity deficit and thus on the power extraction part, neglecting the structural one.

(23)

Introduction 3

To develop new control strategies, simulation tools are used; the ones that will be used in this thesis are:

• OpenFAST, a structural dynamics simulator of the machines

• FLORIS, a control-oriented model of steady-state wind inside a farm

• OpenFOAM, an Open Source CFD toolbox containing many different solvers • SOWFA, a high-fidelity simulator of the Atmospheric Boundary Layer (ABL)

developed inside a farm that works embedded in the OpenFOAM framework (practically as a library) and will be used coupled to OpenFAST

(24)

4 Introduction

Wind Farm Modeling

Due to the complex and multiple physical phenomena happening in wind farms, developing a suitable model can be a really hard challenge.

The main purpose for these models is to correctly reproduce the loads acting on the turbines and the power extraction; both these features are strictly linked to the ability of the model to correctly predict the wake development and interaction inside the farm.

There are two main approaches to the modeling problem based on the task that the model has to perform:

• Control-oriented

– Practically all these models are the so called "low-fidelity" ones and are based on a few parameters, are quite simple and offer the capability of running on-line; that’s why they are used for live control of the wind farm. However they’re strictly limited in the representation of the physical phenomenon and couldn’t be very reliable in all the operating conditions that can be found in real life. An example can be FLORIS, developed by NREL.

• Physics-oriented

– These models are the so called "high-fidelity" ones and are usually very complex, featuring a huge number of parameters and require a consider-able amount of time to run even a few seconds of simulation; due to these characteristics it is impossible to use them in a real-time application. On the other hand this tools guarantee a complete representation of the physical phenomenon and could be used to gain deeper insight into it, to improve and formulate new control-oriented models. An example could be SOWFA, developed by NREL.

(25)

Introduction 5

Figure 3: An example of wake produced by an operating wind turbine

In this work, both methods will be combined to develop a suitable super controller to be implemented in the wind farm.

Actually a third kind of model can be found in literature; it’s the so called Dynamic Wake Meandering (DWM) model developed at the DTU University by Larsen.

It’s based on a simplified version of the Navier-Stokes equations and could be classified as a "medium-fidelity" model.

Its strength is to reduce the computational cost with respect to the CFD-approach, while still keeping a strong physical link with the reality of the phe-nomenon; indeed, it’s able to grasp the meandering effect of the wakes that is a quite important characteristic in wind farm modeling, since it has deep effects on how the downstream turbines are able to operate.

(26)

6 Introduction

Turbine Models

There are several Wind Turbine models used in literature and actual research; the most popular one is for sure the BEM one.

With the BEM model, all the physical quantities are represented as a 1D function of the wake’s length, the rotor is decomposed in several annular disks and the thrust and torque exerted on the turbine by the fluid are related to pressure/speed by means of the Bernoulli equation (the fluid is considered as inviscid and incompressible).

Important quantities defined in this theory are the Axial and Tangential Induc-tion Factors (AIF and TIF) that quantify the loss of fluid velocity on the rotor due to the turbine power extraction.

This method allows for a discrete number of blades and keeps into account fundamental aerodynamic quantities like Lift and Drag, that are the ones responsible for the aerodynamic working of the machine.

(27)

Introduction 7

A different family of models are the ones of the ADM (Actuator Disk Model) and the ALM (Actuator Line Model), that are extensively been used coupled with CFD fluid simulators.

The ADM simply models the force exerted from the turbine on the fluid as uniform and distributed on a disk while the ALM is more complex; indeed, it decomposes the blade as a series of points, each exerting a force on the fluid, spread by means of a regularization kernel to avoid numerical instabilities in the simulation.

This last approach is also strongly non-stationary, since the nodes representing the blades, are rotating in time like the real rotor.

Both, however, fail at reproducing the boundary layer developed on the blades; to achieve this, the real blade and rotor geometry should be inserted in the mesh of the CFD solver.

This option is unfeasible with the actual available computational resources since it would involve too much different length and time scale phenomena to be represented; in other words, the spatial and temporal resolution required to carry out this study is not feasible if intended to simulate not only one turbine, but a complete wind farm.

In this work, the main models that will be used are an advanced BEM model used by the OpenFAST standalone and the ALM method when OpenFAST will be coupled with SOWFA to perform the CFD calculations.

(28)

8 Introduction

Wake Control

Different wake control methods have been presented over the years for wind farm application; it is possible to divide them into:

• Yaw control, for horizontal wake steering • Tilt control, for vertical wake steering • IPC control, for wake length reduction

It’s easy to see that the first two methods are quite similar since both involve controlling an angle of the turbine’s rotor in order to steer the wake far from the downstream turbines, allowing for a recovery in power extraction and an increase in the lifetime of the machines.

It has to be said, however, that misaligning the upstream rotor with respect to fluid flow field leads to a decrease of efficiency on the single turbine and to increased loads on the blades (acting on the yaw or tilt angle produces this effect).

That’s why, these two methods cannot be used at the same time; indeed it would be too penalizing to apply a correction on the two angles, since the power loss on the misaligned machine is always bigger than the power recovered on the other ones, at least in normal operating conditions.

The last method, instead, is a real breakthrough in the world of wind farm control, since it’s a radically new and different proposal to what is now considered to be the standard in this field.

Figure 5: Power Recovery in a simple Wind Farm adopting the helix IPC approach as wake control method

It proposes an actuation scheme where all the blades are controlled individually on the pitch angles (IPC stands for individual pitch control) by imposing an adequately time-shifted sinusoidal law in order to both reduce the load on the blades and the wake length, reflecting in a more prompt recovery of the wake speed deficit and thus a prompter upset of the far wake zone.

(29)

Introduction 9

All of this happens while the upwind turbine is still correctly aligned with the flow direction; this leads to a very low decrease of power extraction from the IPC controlled turbine with respect to normal operating conditions. Moreover, the pitch control logic normally implemented on the turbines could still be used by simply superimposing it to the new IPC scheme.

This method was proposed and is actually being developed at the Politecnico di Milano by Professor A. Croce and at TU Delft under the supervision of the Professor Ian-Willem van Wingerden.

(30)

10 Introduction

Thesis outline

Aside from the introduction and the first chapter, that are intended to present the "state of the art" in the wind farm control field, the models and the software implementing them (that will be used for the various simulations), the thesis will be structured in the following way:

The first chapter will be a description of the various models utilized in this work to simulate wind turbines, wind farms, wake interactions and the Atmospheric Boundary Layer (ABL).

The second chapter will be devoted to a more or less in depth analysis of the software modifications necessary to correctly perform the various simulations.

The third chapter will be used to present the engineering models used to estimate some useful quantities that will be needed to actuate our control logic.

The fourth chapter will be used to present a simulation developed with the modified software that is intended to be used as a control tool in virtue of its calculation speed.

The fifth chapter will present a complete CFD simulation in a reference wind farm configuration to show the enhancements that the developed control strategy brings to the global power extracted.

The last chapter will discuss the conclusions that have been drawn from the whole thesis, a few thoughts on some issues that have been encountered during the work and some possible future improvements to the presented method.

(31)

Chapter 1

Models and Papers

For a proper presentation of the work that has been done in this thesis, an overview of the models used in it is necessary.

The models that will be presented here are the ones used to simulate the turbine, the flow field in which the machine will operate and the interaction between the wind turbines due to the wakes’ development.

The models that will be presented are:

• Pitt & Peters Blade Element Model (P& P BEM) of a wind turbine

The BEM is for sure one of the most used models to simulate the effect that a wind turbine has on the surrounding flow field; the model couples the 1D-Momentum Theory with the Aerodynamic local forces developing on the blades of the machine.

The BEM has many variants, but for sure the Pitt & Peters one is the most relevant for this thesis work; indeed it allows us to consider the effect that a yaw misalignment (between the rotor and the wind) produces on the machine and the consequent skewed angle that the wake will assume.

• Bastankhah-Porte Agel Model of Gaussian Wake Velocity Deficit

This model, that is also implemented in the FLORIS software developed by NREL, allows to reproduce the wake developed from a wind turbine (also in a yawed configuration) by considering the wake’s velocity deficit at the rotor plane as having a gaussian shape.

It is a relatively simple model since it relies solely on 4 tuning parameters, making it particularly suited for control purposes.

At the same time, however, the authors kept a strong link to the physics of the problem; indeed, the whole procedure is obtained performing a budgeting analysis on the Navier-Stokes equations.

To be able to estimate the wakes developing not only on the single machine, but in a wind farm environment, some extensions to the model were necessary (as it has been done with FLORIS).

• CFD basics that are implemented in OpenFOAM 11

(32)

12 Chapter 1. Models and Papers

This paragraph will present in short the basis of the CFD method, without going too much in depth; indeed, the CFD was used only as a tool in this work.

• Actuator Line Model (ALM) of a wind turbine

Aside from the BEM, another model that is used to reproduce the turbine behaviour when surrounded by a flow field is the ALM.

It simply represents the blades as lines composed by a certain amount of nodes on which the the aerodynamic forces are exchanged; it is able to simulate, thus, all the non-stationary phenomena happening at the blades since the lines are rotating during the simulation.

Its main con is the impossibility of reproducing the boundary layer developing on the blades’ surface.

1.1

P & P BEM Model

This model has been built starting from easier ones (like the 1D Momentum Theory) and then building over them in order to achieve increasing complexity, allowing for a more complete description of the real physical phenomenon.

1.1.1

Betz’s limit

The first model related to wind turbines was proposed by Betz in 1920; its aim was to define the limit power that these machines are able to extract given a wind source.

Betz’s limit relies upon a simple 1D Momentum theory. Its hypothesis are:

• steady, incompressible and inviscid flow

• all quantities are dependent on the x-axis (representing the main wind direc-tion)

• the rotor is represented as a 1D permeable disk affecting pressure of the fluid

(33)

1.1. P & P BEM Model 13

Figure 1.1: Graphical representation of 1D Momentum Theory

Now we’re able to define three main sections on a control volume including the turbine; we have an upstream section, the turbine section (whose area is exactly equal to the one swept by the rotor), and the downstream one.

Applying mass conservation and momentum conservation, it’s possible to write a first expression for the power extracted.

P = 1 2m(v˙ 2 0 − v 2 3) = 1 2ρSv1(v 2 0− v 2 3) (1.1)

But the Force exerted from the wind on the rotor could also be expressed by Newton 2nd Law. Then, a second expression of power can be written if we multiply the force by the wind speed acting on the rotor’s disk.

P = ˙m ·∆v · v1 = ρSv21(v0− v3) (1.2)

Now, equating the two expressions of power, it’s possible to obtain a condition on the wind speed stating that: "The wind velocity at the rotor is given by the average of the upstream and downstream velocities".

v1 =

1

2(v0+ v3) (1.3)

Moreover, a very important parameter is defined for the first time; it’s the Axial Induction Factor (AIF). It describes what is the normalized wind speed reduction on the turbine’s rotor plane with respect to the undisturbed flow field.

(34)

14 Chapter 1. Models and Papers

a= v0− v1 v0

(1.4)

Now, normalizing all the various speeds by the incoming flow one and differ-entiating the power expression, it can be observed that no more than 59.3% of the incoming Wind Power can be extracted from our device; it has to be pointed out that we are still neglecting lots of effects that on real machines will drive this efficiency value to lower ones.

Cp,opt=

16

27 ' 0.593 (1.5)

1.1.2

Glauert’s Correction

A very important contribution to the world of wind energy was given by H. Glauert; specifically, he proposed a correction to the simple 1D Momentum theory to keep into account that, due to the fact that the rotor isn’t kept still in reality but is rotating, the flow field hitting the turbine receives a swirl from the blades’ action.

For the first time the machine is now seen as a bladed rotating rotor, even if with an infinite number of blades.

Considering velocity triangles on the annular stream tubes in our control volume (on the rotor plane), it’s possible to add a second Induction Factor by defining the Tangential Induction Factor (TIF).

a0 = v2,t

2Ωr (1.6)

This new parameter defines the ratio between the wake rotational angular velocity with respect to the wind turbine’s rotor angular velocity.

Now, both AIF and TIF are expressed as a function of the rotor radius coordinate; so, it’s still possible to optimize the power extracted (or Cp,opt), given a certain

TSR (λ= ΩR

v0 ), but the result obtained will be an annular distribution of AIF and

TIF on the rotor’s disk, instead of a single value of AIF (like with Betz’s limit). The following equations report the radial distributions of the Induction Factors, once again considering the case where we want the maximum power extraction, Cp,opt, from the machine:

   a(1 − a) = a0(1 + a0)λ2 r a0 = 1 − 3a 4a − 1

(35)

1.1. P & P BEM Model 15

Figure 1.2: Tangential Induction effect on the wake

1.1.3

BEM Model

Glauert’s work arrived at its completion with the formulation of the Blade Element Momentum Theory; the annular stream tubes are still discretized on the radius of the turbine, but finally a finite number of blades was introduced by means of a parameter called solidity and, most importantly, a direct coupling between the 1D Momentum Theory with the aerodynamic phenomena happening at the blades.

Friction also has been introduced in this step using the aerodynamic polars (so, not only the Lift Coefficient CL, but also the Drag Coefficient CD).

Starting from the momentum formulation, it’s possible to express Thrust and Torque by means of momentum conservation and angular momentum conservation.

dT = (v0− v1)d ˙m = 2πrρv1(v0− v1)dr (1.7)

dQ= rCϑdm˙ = 2πr2ρv1Cϑdr (1.8)

The symbol Cϑ represents the rotational velocity of the wake. A further step

can be done introducing the AIF and TIF previously defined in the formulations. dT = 4πrρv2

0a(1 − a)dr (1.9)

dQ= 4πr3ρv

0ωa0(1 − a)dr (1.10)

By definition, both the thrust force and the torque can be expressed as a combination of the aerodynamic forces that are effectively giving rise to these phenomena. These forces are the Lift and Drag forces, acting on each section of the blade.

(36)

16 Chapter 1. Models and Papers

They are characterized by the use of the Lift and Drag Coefficients, called respectively CLand CD, to describe them and the use of the relative velocity acting

on the blade since, other than the free-wind speed, we have also the angular rotation that is contributing to these forces.

Figure 1.3: Schematics of the angle of attack for an airfoil section

Moreover, the Lift component of the aerodynamic force is the one acting perpendicular to the speed seen by the airfoil section, while the Drag one is directed parallel to it. They are defined as follows:

L= 1 2ρcv 2 relCL (1.11) D= 1 2ρcv 2 relCD (1.12)

However, we are more interested in the projection of these aerodynamic forces to obtain their normal and tangential components relative to the rotor’s plane.

pn = L cos Φ + D sin Φ and Cn = CLcos Φ + CDsin Φ (1.13)

pt= L sin Φ − D cos Φ and Ct = CLsin Φ − CDcos Φ (1.14)

Both pn and pt are forces per unit length, while Cn and Ct are simply the

aerodynamic polars projected on the normal and tangential direction of the rotor’s plane.

Since, of course, the forces expressed in these two different ways have to be equal, it’s possible to equate them;

(37)

1.1. P & P BEM Model 17 dT = 1 2ρNbcCn v2 0(1 − a)2 sin Φ dr (1.15) dQ= 1 2ρNbcCt v0(1 − a)ωr(1 + a0) sin Φ cos Φ rdr (1.16)

Now, the updated definitions of AIF and TIF according to this new model can be rewritten as:            a= 4 sin21Φ σ(r)Cn + 1 a0 = 4 sin Φ cos Φ1 σ(r)Ct − 1

These new definitions, however depend on the solidity of the blades (σ(r)), on the aerodynamic polars (Cnand Ct) and on themselves; this means that an iterative

procedure is necessary to solve them. The procedure typically works this way:

1. Initialize AIF and TIF at a value, typically a= a0 = 0

2. Compute the flow angle Φ

3. compute the local angle of attack α

4. Evaluate CL and CD from the polars using the just computed local angle of

attack

5. Compute Cn and Ct

6. Find the new values of a and a0

7. Reiterate all the previous steps up to when convergence is reached

8. Compute the local loads dT and dQ acting on the segments of the blades Another important contribution given by Glauert was the introduction of the Tip and Hub Loss Factors; they keep into account for the aerodynamic loss experienced at the hub and tip of the blades in order to have a more accurate BEM model with respect to the real aerodynamic operation of a wind turbine.

These corrections have a drastic effect on the relation between the CT and the

(38)

18 Chapter 1. Models and Papers

Figure 1.4: Glauert’s Correction

1.1.4

Pitt & Peters BEM Model

Finally, starting from the previous BEM model, Pitt & Peters implemented a correction that is able to keep into account for yawed operation of the turbine and the skewed wake deriving from it.

For this thesis work, this model is fundamental since the focus will be on wake steering by means of yawing the turbine.

The first thing on which one needs to focus is how the relative velocity acting on the blade’s section is affected by the yaw angle.

Figure 1.5: Yaw misalignment effect

Referring to picture 1.5, new relationship for the wind speed acting on a generic airfoil section can be written:

vx = v0(sin γ sin α sin Φ + cos γ cos Φ) (1.17)

vy = −v0sin γ sin α + ωr cos Φ (1.18)

(39)

1.2. Gaussian Wake Model 19

Then, using the standard BEM procedure, accounting for this correction and the changes deriving from them in the various formulas, it’s possible to find once again the AIF and TIF acting on a given annular stream tube at a distance dr from the hub of the turbine.

Often, to have a model closer to reality, the Tip and Root Blade Loss Factors are introduced.

The real correction of Pitt & Peters is, however, applied on the AIF previously evaluated; they proposed a correction to it to obtain a new AIF "yawed", based on numerous experimental data gathered during tests on real turbines.

ayaw= a(1 + 15π 64 tan  ξ 2  r Rsin Φ) (1.19)

Furthermore, the model makes it even possible to estimate the wake skew angle imposed by the yawed rotor; this quantity is used also in the ayaw definition and is

called with the Greek letter ξ.

As Burton proposes, it’s defined as:

ξ = γ(0.6a + 1) (1.20)

In all these studies, tilting of the turbine has been completely neglected and, effectively, nowadays there aren’t solutions on the market proposing a tilt controlled machine (it is considered a fixed angle).

For sake of completeness, it has to be said that this model completely neglects vibrations of the blades, considering them as rigid bodies with only a rotational DOF, but turbulences in the inflow are retained; moreover, a lot of study is still going on to characterize in the best way the coefficients that appear in this model.

From it, it is possible to obtain, with a very fast computational speed, important values like the thrust coefficient of the turbine, its power and the local bending moments acting on each section of each blade.

1.2

Gaussian Wake Model

Originally proposed by Bastankhah and Porte-Agel, this model intends to give a control-oriented tool to describe the generated wake deficit in wind speed (after upstream turbine’s power extraction from the fluid) and to reproduce the effects that yawing a rotor produces from the fluid point of view.

The model relies solely on the self-similarity hypothesis, meaning that the wake velocity deficit always presents a gaussian shape with the same characteristics, if this profile is properly normalized; the gaussian hypothesis holds also for yawed turbines up to 30◦ relative to the free stream wind direction, that luckily is the limit condition to obtain a useful recovery of power in a wind farm.

Indeed, for yaw angle bigger than 30◦, it’s almost impossible for the downstream turbines to recover the power lost from the upstream ones; moreover, the wake deficit shape starts to be too different from the proposed gaussian one, making the model lose reliability.

All the constitutive equations were instead obtained from the Continuity and Reynolds-Averaged Navier-Stokes (RANS) equations.

(40)

20 Chapter 1. Models and Papers

1.2.1

Original Model Overview

Two main equations characterize this model; the first one describes the wake deficit in velocity past the turbine’s rotor, while the second one describes the wake deflection for each downstream location.

Their expression are respectively: ¯ u(x, y, z) u∞ = 1 − C(x)e −(y−δ)2 2σ2y e −(z−zh)2 2σ2z (1.21) ϑ(x, y, z) ϑm = e −(y−δ+σy )2 2σ2y e −(z−zh)2 2σ2z (1.22)

where u represents a time averaged velocity, C(x) represents the normalized¯ velocity deficit at the wake center in various downstream positions, δ represents the wake center deflection, zh represents the hub height of the wind turbine, σy and σz

represent the wake width in y and z direction and u∞ represents the undisturbed

fluid velocity.

The model assumes that the wake center remains aligned horizontally to the hub center point, making it impossible for the model to reproduce the phenomenon of wake meandering that has quite an impact on the accuracy of the model.

Starting from the integral RANS equations and applying the following hypothe-sis:

• negligible pressure contribution

• negligible shear effect due to the presence of the ground (du∞

dz ' 0)

• convective term is predominant in with respect to ¯u02 contribution in stream-wise direction

it’s possible to obtain a condition that allows to find the value of the C(x) function in the expression of the stream-wise velocity u(x, y, z).¯

This is the condition that has to be imposed: d dx Z ∞ −∞ Z ∞ −∞ ¯ u( ¯u∞− ¯u)dydz ' 0 (1.23)

The previous hypothesis were formulated by the authors performing a budget analysis on the terms appearing in the Navier-Stokes equations.

The C(x) value obtained is now a function of the wake width parameters σy

and σz, describing how much the wake expands in horizontal and vertical directions

moving in a stream-wise fashion (along the x variable).

The author, according to experimental results, proposed a linear relation of these parameters to the stream-wise distance from the turbine’s hub zh, if this

distance is situated in the far wake zone.

From the following equations it is also clear how the yaw angle γ of the turbine is affecting the wake’s linear growth in horizontal direction.

σy d = ky x − x0 d + σy0 d (1.24)

(41)

1.2. Gaussian Wake Model 21 σz d = kz x − x0 d + σz0 d (1.25)

Once again, the above unspecified parameters will now need to be determined.

Figure 1.6: Wake zones graphical description

From the Pitt & Peters BEM model, a relation proposed by Burton can now be used to estimate the wake skew angle:

σz0 d = r 1 8 (1.26) σy0 d = σz0 d cos γ (1.27)

From another model proposed by Lee, it is possible to estimate the downstream distance x0 at which the far wake zone arises.

The model proposes a direct proportionality between the change in width of the shear layer of the wake and the velocity difference between the near-wake zone (also called "potential core") and the unperturbed free stream flow surrounding it.

However, a further term was added since the incoming turbulence has an effect on the entrainment of the flow in the wake, enhancing the shear layer’s width growth. us u∞ ds dx = αI + β ue u∞ (1.28) us = 1 2(u∞+ u0) and ue = 1 2(u∞− u0) (1.29)

Here, us is the characteristic velocity of the shear layer, ue is the characteristic

relative velocity in the shear layer, α and β are instead model parameters that still need to be determined.

(42)

22 Chapter 1. Models and Papers x0 d = cos γ(1 +√1 − CT) √ 2[4αI + 2β(1 −√1 − CT)] (1.30) As can be seen from the x0 expression, the main parameters affecting the

potential core length (near wake zone) are the CT, the incoming turbulence intensity

I and the yaw angle γ; increasing all of them, the onset of the far wake zone is anticipated.

It has to be pointed out, however, that while increasing turbulence intensity I and the yaw angle γ leads to a lower velocity deficit C(x), increasing the CT has

exactly the opposite effect.

Indeed the CT describes directly how much energy is extracted from the flow;

so, the higher the CT, the higher is the energy extracted from the flow and the

higher is the velocity deficit with respect to the free stream flow.

The last unknown is the wake-center deflection δ; but applying another condition obtained by the RANS equation, this time in span-wise direction, it’s possible to define it.

The condition is the following one: d dx Z ∞ −∞ Z ∞ −∞ ¯ u2ϑdydz '0 (1.31)

The expression obtained is quite complex, but shows to be bounded as the downstream distance goes to infinity, as one could reasonably expect, and is influenced, once again, from the section where the wake passes from near to far zone.

From Burton’s work it is possible to obtain a simple expression for the wake-center deflection at the onset of the far wake zone, required to close the model.

It is: δ0 = ϑ0 x0 d , where ϑ0 ' 0.3γ cos γ(1 −p1 − CT cos γ) (1.32) The previous relationships were obtained from:

χ= ϑ0+ γ ' (0.6a + 1)γ where a '

1

2 cos γ(1 −p1 − CTcos γ) (1.33) χ stands for the wake-skew angle with respect to the rotor axis and a stands for the Axial Induction Factor estimated with Glauert’s proposal (it’s important to notice its simplified relation with the CT) .

Finally, only four parameters remain to be determined experimentally; for the wake width parameters, Bastankhah proposed a linear dependence on the incoming turbulence intensity, with parameters estimated from on-field measurements.

ky = kz = kaI+ kb and ka = 0.38371, kb = 0.003678 (1.34)

It is easy to understand how this model is computationally inexpensive and thus suited to be used for control application.

For a more extended explanation of the model it’s possible to consult directly the Bastankhah-Porte Agel paper reported in the bibliography.

(43)

1.2. Gaussian Wake Model 23

1.2.2

Additional considerations

The Bastankhah-Porte Agel model is used to reproduce the wake generated by a single turbine; in case of a wind farm, it has to be taken into consideration for the fact that interaction between wakes may happen.

Only think of the simple case of three turbines, all aligned in wind direction and exactly positioned one downstream of the other; in this case, it’s easy to see that, if the machines aren’t too far apart, it is not only the wake of the second machine to have an effect on the wind velocity felt by the last one, but also the wake developed from the first.

That’s why a method to take into account for this phenomenon and for the added turbulence that the wakes inevitably generate is necessary.

The correction used for the wind velocity was developed by Katic and proposes a superimposition of the local wakes to estimate the wake deficit on the n+ 1 downstream turbine: ∆un+1= v u u t n X i=1 ∆u2 i (1.35)

While Nyaifar proposes a correction for the added turbulence:

I+ = CIAol,%aei1I e2 0 ( x Di )e3 (1.36)

where I0 is the ambient turbulence intensity referred to the free stream condition

and CI, e1, e2 and e3 are parameters to be determined experimentally.

This last relation was derived experimentally, while the first one is linked to dynamic pressure and to the thrust force exerted by the upstream turbines.

The Aol,% term appearing in the I+ equation is representing the ratio of area

overlapping between the rotor diameter of a turbine and the wake area generated by the upstream ones, while Di, ai and I0 represent respectively the rotor diameter,

the Axial Induction Factor AIF and the incoming turbulence intensity on the i-th considered machine.

(44)

24 Chapter 1. Models and Papers

Figure 1.7: Wake Models Comparison

Again, also for the turbulence intensity I a correction due to the wake’s super-position was implemented:

I = v u u t n X i=1 I2 +,i+ I02 (1.37)

In FLORIS, another correction is used when it is needed to evaluate the power extracted from a turbine in a yawed configuration; considering that the CP (power

coefficient) of the machine is proportional to the cube of the incoming undisturbed flow speed, yawing the turbine directly reduces the useful wind component from which power is extracted by the cosine of the misalignment angle.

CP,yaw = CPcosppγ (1.38)

The same is valid for the CT:

CT ,yaw = CT cosptγ (1.39)

Both pp and pt need to be experimentally derived.

These corrections aim at adjusting the characteristic coefficients of the turbine when working in yawed conditions in a simple and effective way.

1.2.3

Model changes for OpenFAST coupling

Basically, for the Bastankhah-Porte Agel model to work, one has to provide by some means, suitable thrust coefficient CT values for the considered turbines in the

(45)

1.2. Gaussian Wake Model 25

simulated wind farm.

Then, the Axial Induction Factor a formula used in the model to determine some of its quantities, like the wake skew angle χ, is derived from Glauert’s work applying some simplifying hypothesis, as can be seen in (1.33).

FLORIS, for example, requires the user to provide, as said before, a table of CT-TSR values for the turbine considered; what has been done in this thesis, is to

take directly the CT value from OpenFAST output (the BEM aero-elastic code)

and to plug it directly into the Bastankhah-Porte Agel equations.

For what regards the AIF, the simplified Glauert formula is not used anymore; instead the AIF is evaluated as a weighted average based on the radius of the turbine and directly substituted into the model.

Indeed, OpenFAST is able to give as output the AIF on a certain number of sections of the various blades of the turbine, and not a rotor global quantity as the Gaussian Wake Model requires; that’s why the following weighted average is computed: a= 1 NbladesR Nblades X j=1 Np X i=1 aj,irj,i (1.40)

This means that the passages that used the previous AIF formulation were revisited to be consistent with the new method proposed; practically Glauert’s hypothesis for the AIF formulation was discarded (with all the passages deriving from it), and the a term was directly taken numerically from the OpenFAST output, in the form of (1.40), and inserted in the model without possibility of further simplifications (that were before possible using Glauert’s hypothesis).

However, since now these values will be obtained directly from OpenFAST, they will experience a transient every time the conditions are changing; so, to have a real steady-state condition, a certain amount of simulated time (usually 50 seconds) has to pass by.

To give a more precise idea of how the algorithm works, its main steps are here reported in sequence:

1. Sample the free stream velocity profile to be fed to the most upstream turbine For the first turbine, usually it’s a wind logarithmic profile as suggested in the EUROCODE Standard; the logarithmic approximation is one of the widest used model, together with the power law profile (the models are quite similar). Here is reported the logarithmic model of wind:

     U(z) = Vbkrln  z z0  , zmin ≤ z ≤ 200m/300m U(z) = U (zmin), z < zmin

where z0 is the surface roughness parameter (fundamental in the model), zmin

is the minimum height form which the wind starts to have a logarithmic profile, Vb is the so called basic or reference wind velocity and kr is the terrain

(46)

26 Chapter 1. Models and Papers

This profile approximation is valid up to200m/300m as specified in the norms. For a thorough model explanation please refer to the EUROCODE norms. 2. Evaluate the CT of the turbine

3. Use the found CT to evaluate the wake relative to the considered turbine

4. Reapply the previous two steps for all the turbines

5. Evaluate the effective speed velocity on all the turbines and the added turbu-lence

6. Repeat for all the time steps of the simulation

In figure 1.8a graphical representation of how the algorithm is intended to work is reported.

Figure 1.8: The coupling between OpenFAST and the FLORIS-like wind schematized

1.3

CFD and OpenFOAM

Computational Fluid Dynamics (CFD) is an ensemble of numerical methods used to obtain approximate solutions to various type of problems, like heat transfer and fluid dynamics.

It’s a technique that has been extensively used since the available computational power has become big enough to perform this kind of calculations; in fact, it is particularly heavy since it is required to solve hundreds of seconds of simulation, with a very fine time step and in a refined 3D domain that can be composed of millions of cells.

Of course, the solution obtained will always be only an approximation of the real one; that’s why it is always required a thorough examination of the results and, where possible, a comparison with full scale experiments to validate them.

(47)

1.3. CFD and OpenFOAM 27

Figure 1.9: A typical result obtained by a CFD numerical analysis

The core equations on which the CFD method is based are the Navier-Stokes (NS); they’re a set of partial differential equations requiring proper Initial and

Boundary Conditions to be solved.

They are made up of one Continuity equation, three Momentum Conservation equations and one Energy Conservation equation. These are their formulations:

∂ρ ∂t + ∇ · (ρU) = 0 (1.41) ∂(ρU) ∂t + ∇ · (ρUU + p¯¯I − ¯¯τ) = ρfe (1.42) ∂(ρE) ∂t + ∇ · (ρHU − k∇T − ¯¯τ ·U) = ρfe· U + qh (1.43) For an exhaustive presentation of this topic, please refer to one of the numerous books treating the CFD and Fluid Dynamic problem.

A program that implements a numerical scheme to solve CFD problems is OpenFOAM, completely written in C++; to work properly it requires some prelim-inary steps to be carried out:

• Create a suitable mesh, based on the accuracy one wants to obtain • Choose the time step for the simulation and the total simulation time • Choose a suitable turbulence model (LES will be used during this work)

This step is quite an important one, since different turbulence models will give rise to quite different results in the CFD simulation; lots of models exists, but one of the most used is the LES or Large Eddy Simulation.

(48)

28 Chapter 1. Models and Papers

As the name suggests, its main idea is to retain in the simulation the largest eddies having the biggest energy content and to approximate the smaller ones with a simplified method. Practically the LES model filters out eddies below a certain size.

Plenty of other methods for modeling turbulences exists and are used according to the simulation one wants to perform.

However, if the aim is to obtain the most accurate results, no matter how long it will take to perform the simulation, the best method is the DNS (Direct Numerical Simulation) of the NS equations.

• Choose a suitable solver for the problem in analysis

1.4

ALM Model

This method has a different approach with respect to the BEM one.

It’s used often coupled with a CFD Simulator; indeed, the turbine blades are represented inside the fluid domain without using their real geometry, but as points exerting a certain force on the fluid particles.

These forces are obtained by means of an aero-elastic code running in real time with the simulation or by means of pre-tabulated values based on the conditions that we aim to reproduce.

Moreover, with the ALM technique, non-stationary simulations can be performed since the lines are rotating exactly as the turbine’s blades would; this is quite a huge improvement if we consider for example the ADM technique, where the forces are integrated on the rotor’s plane thus allowing us to perform only steady-state simulations.

To avoid numerical issues, the forces are spread on the CFD mesh by use of a regularizing kernel function (like a gaussian curve) whose parameters decide on what area to apply the force. For a correct employment of this method, selecting the appropriate parameters’ values is fundamental.

If the ALM is coupled with a structural simulator, it’s even possible to introduce the flexibility of the blades in the model to make it even more realistic and to better reproduce the wake development; however, a big limitation is that we are not able to investigate or keep into account for the presence of the boundary layer that develops on the blades’ surface.

To be able to recreate it, a full simulation with the real blade geometry should be performed; due to the too different time and length scales required to simulate the blade’s BL and the Atmospheric BL (ABL), however, the computational power necessary to make this happen is unavailable even to the current biggest supercomputers.

(49)

1.4. ALM Model 29

Figure 1.10: A representation of the ALM concept

Different variants of the ALM exist; the main aspects characterizing them are: • the method with which the freestream velocity is sampled

An effective proposal was the Effective Velocity Model, proposed by Ph.D. P. Schito in his Ph.D. thesis and implemented by Eng. C. Muscari in her M.Sc. thesis in the SOWFA environment for wind turbine simulation; its strength relies in an accurate definition of the local free stream velocity felt by the blade’s section in consideration.

• the method with which the body-force is spread on the considered domain For this work, the free stream velocity is sampled locally on each point defined by the actuator line and the body forces are spread on the cells by use of an uniform gaussian kernel function.

These two choices are usually the most common ones. The ALM works in this way:

1. Select a number of points defining the line

2. Obtain all the segments delimited by two successive points, paying attention to break them in subsegments if the line is crossing two meshed cells

3. Apply BEM on each segment in order to define the relative velocity, the various angles and the Lift and Drag forces

At this point, an adaptation of the Lift and Drag Forces developed on each section of the blade is necessary for the model.

The new formulations are here presented:

vrel= v0− ωrˆt = v0,nnˆ+ (v0,t− ωr)ˆt (1.44)

(50)

30 Chapter 1. Models and Papers α = Φ − β (1.46) L = 1 2ρcvrel 2 CL(α)tˆl (1.47) D = 1 2ρcvrel 2C D(α)t ˆd (1.48)

4. Obtain the force per unit volume using the following equation

f = L + D Vcell

(1.49) where Vcell is the volume of the cell where the forces are applied

5. Smear them by using a kernel function

Usually, the kernel shape used is a gaussian one; this is its expression

η(r) = 1 ε3π3e

−d2

ε2 (1.50)

while the smeared force on the cell domain can be written as follows f (x) =X

cell

fi(x)η(|x − xi|) (1.51)

6. Insert this term into the Navier-Stokes (NS) equations to resolve the CFD problem

(51)

Chapter 2

Software Changes

To implement the various tools needed to simulate correctly a wind farm environment, various changes have been made on the used software.

The biggest modifications were in OpenFAST and its C++ API that allows for the communication with SOWFA when running a coupled CFD-Structural simulation.

OpenFAST, instead, is completely written in FORTRAN to reduce as much as possible the computational time.

Before discussing them, it’s useful to point out that OpenFAST is organized in a modular structure; this means that the program is composed of multiple modules that can be loaded based on the simulation that we aim at running.

The most important are for sure the ones that reproduce the structural dynam-ics and the aerodynamdynam-ics of the wind turbine, respectively called ElastoDyn (+ BeamDyn) and AeroDyn. Indeed OpenFAST is an Aero-elastic simulator that, in its standalone configuration, runs as an advanced BEM solver.

Another fundamental module present is the so called InflowWind; this module can be run in various modes to represent different inflow conditions on the blades of the turbine.

For example, if used in combination with TurbSim, it’s possible to simulate for a certain amount of time, a turbulent wind history varying not only in time but also in space.

All the properties of the turbine, starting from the geometry of the blades up to which Degrees of Freedom (DOFs) to use, are specified in a series of input files.

NREL, the maker of the software, gives various example cases together with the program, in which all these files can be found. The base turbine that was used in these test cases is the NREL 5MW. This will also be the turbine used during the development of all the work.

Another software developed by NREL, that wasn’t used directly in this thesis, is FLORIS; it stands for FLOw Redirection and Induction in Steady State.

It’s a valid tool that, given the geometric configuration of the farm considered, the wind speed and direction, a CP-TSR and CT-TSR table for the considered

turbines in the farm, is able to evaluate what will be the wind felt from the various machines due to the wakes development and, consequently, the power that will be extracted, considering steady-state environmental conditions.

However, the hypothesis of steady-state is quite difficult to be found in real 31

(52)

32 Chapter 2. Software Changes

(53)

2.1. Python Controller 33

operating conditions; nonetheless, FLORIS results really useful, at least to give an indication about what is the direction to move in order to obtain a global power increase.

FLORIS relies on a model of wake developed by Bastankhah and Porte-Agel; they realized that the wake deficit developed beyond a turbine in the far-wake zone (that is the zone of interest, since the downwind turbines will all work far enough from the upstream ones) has a gaussian profile independently from parameters like the inflow wind speed or direction (provided the misalignment with the rotor is in the range of [−30◦,30]).

This said, the interventions operated on OpenFAST were mainly three:

• Implementing an advanced controller for the single machine in Python

• Introduce a SuperController for the Wind Farm Simulation

• Adding an user-specified option to the InflowWind module to implement a FLORIS based wind model

2.1

Python Controller

As discussed previously, OpenFAST, except for its API (Application Program-ming Interface), is completely written in FORTRAN.

Since the computations that have to be done in order to simulate the turbine require solving a great number of Partial Differential Equations (PDE) solving, in particular for the structural part, FORTRAN is for sure the best choice since it’s a programming language specifically developed to perform these kind of calculations.

Before changes, also the single turbine controller was written in this language and loaded at runtime as a shared object.

Indeed, the implementation of the controller was written in a file called DIS-CON.f90 that had to be recompiled every time in DISCON.so when the user wanted to change a part of it.

Recompilation aside, what is missing in FORTRAN are ready to use libraries for control purposes; this could be also due to the fact that nowadays this language is not commonly used, except for niche utilizers.

Much more common are, instead, interpreted (no need of compilation) languages like Python that present a wide range of scientific and numerical libraries (i.e.: NumPy and SciPy) helping simplifying a lot the drafting of the code, and allowing for faster changes in it.

(54)

34 Chapter 2. Software Changes

Figure 2.2: Python and Numpy are an efficient choice to develop a turbine controller

Moreover, for engineers that are used to work with Matlab, Python is the most obvious choice if one needs to pass to a real computing language. The aforementioned libraries, like NumPy, present in fact a matrix manipulating syntax that is analogous to the one that is experienced in Matlab.

The disadvantage of this approach is a slowdown in the execution time of the program; however it’s not drastic since the control routines aren’t particularly heavy.

That’s why it was chosen to start modifying OpenFAST, implementing the controller in Python.

To do this, it was necessary to act on the ServoDyn Module, the one that actually implements the controller for the turbine, and modify a file called Bladed-Interface.f90; into it, it is specified the modality with which OpenFAST had to load the shared object DISCON.so (previously compiled) containing the routine that implements the control logic of the machine.

At the very beginning, DISCON.so contained only a basic Collective Pitch Control and a generator torque control.

BladedInterface.f90 was modified in the part where the shared library DIS-CON.so was loaded; thanks to the use of a module called FORPY, available on Github, it was possible to let the FORTRAN-written routines communicate with the now Python-written modules in order to exchange all the vectors needed from OpenFAST.

A further change not regarding the single turbine controller, but the SuperCon-troller, was made at this stage always in BladedInterface.f90. A predisposition for the Input/Output communication between single turbine and SuperController when the turbine will be intended to work in a wind farm configuration was simply added.

To verify that everything worked correctly, DISCON.f90 was simply rewritten in DISCON.py and two identical simulations were launched; the results happened to be identical.

2.2

SuperController

Both SOWFA and OpenFAST present a predisposition for the SuperController (SC) implementation; however, in the example cases coming with the source file of

Figura

Figure 3: An example of wake produced by an operating wind turbine
Figure 5: Power Recovery in a simple Wind Farm adopting the helix IPC approach as wake control method
Figure 1.3: Schematics of the angle of attack for an airfoil section
Figure 1.8: The coupling between OpenFAST and the FLORIS-like wind schematized
+7

Riferimenti

Documenti correlati

The economic analysis on investment in wind farm in Poland according to a new act on renewable energy sources was presented.. The subject of this analysis was to estimate

È stato studiato nel corso del 2006 nell’isola di Linosa (arcipelago delle Pelagie), l’impatto della predazione del Ratto nero sul successo riproduttivo della Berta maggiore.

For this reason, this preliminary study aims to understand if frailty status is related with daily variability on health perceptions and if this dynamic indicator plays a

A gravitational wave (GW) event originated by the merger of a binary neutron star (BNS) system was detected for the first time by aLIGO/Virgo (GW 170817; Abbott et al. 2017a), and

First, we calculated the global relative abundance of all enzymes contributing to butyrogenesis, propionogenesis and acetogenesis in the different study groups (listed in

Non vi è, certo, nel labirinto scenico ronconiano lo stesso movente elitario; tuttavia credo che la consapevolezza di dar luogo allo spostamento da un modello di percezione

There was no significant difference in the prevalence of use of β-blockers, ACEIs, ARBs, CCBs, diuretics and α1 adrenoceptor blockers in pa- tients with or without this syndrome