Wind Turbine Optimization a case study to help you think about your project

Andrew Ning ME 575 Three broad areas of optimization (with some overlap)

Convex Gradient-Based Gradient-Free

Today we will focus on gradient-based, but for some projects the other areas are more important. In higher dimensional space, analytic gradients become increasingly important #iterations

# design vars There is a difference between developing for analysis vs optimization

Vy(1 + a0) plane of rotation V (1 a) W x There is a difference between developing for analysis vs optimization

Vy(1 + a0) plane of rotation V (1 a) W x

1 a 2 C = c 0 CT =4a(1 a) T sin n ✓ ◆ 2 1+a0 2 2 C = c 0 CQ =4a0(1 + a0) tan Q cos t r r ✓ ◆ There is a difference between developing for analysis vs optimization

Vy(1 + a0) plane of rotation V (1 a) W x

1 1 a = 2 a0 = 4sin +1 4sin cos 1 cn0 ct0 There is a difference between developing for analysis vs optimization

use Parameters y use ProgGen Converg Skew correction use WTP_Data

n CALL GetCoefs Declarations reset induction

!Converg & Return Initialize induction vars < MaxIter CALL FindZC CALL NewtRaph reset induction Initial guess (AxInd / TanInd) n & y CALL NewtRaph

MaxIter ZFound Converg CALL BinSearch < Converg ! y n AxIndLo = AxInd -1 n AxIndHi = AxInd +1 AxIndLo = -0.5 Converg AxIndHi = 0.6 CALL BinSearch y

n Skew correction Converg AxIndLo = -1.0 CALL BinSearch AxIndHi = -0.4 y CALL GetCoefs n Converg AxIndLo = 0.59 CALL BinSearch AxIndHi = 2.5 Return y y Converg Skew correction CALL GetCoefs Return

n AxIndLo = -1.0 CALL BinSearch AxIndHi = 2.5

y Converg Skew correction CALL GetCoefs Return

n Return Sometimes a new solution approach is needed…

Vy(1 + a0) plane of rotation Vx(1 a) W

sin V cos ()= x =0 R 1 a V (1 + a ) y 0 Sometimes a new solution approach is needed…

Algorithm Avg. Function Calls Failure Rate (%)

Steffensen 16.4 16.3 Powell Hybrid 72.3 16.2

Fixed-Point 31.8 12.6 Levenberg-Marquardt 92.3 8.8

Newton 79.0 5.8

New Method 11.3 0.0 But most of the time the changes needed are relatively minor

smoothing empirical factors/corrections But most of the time the changes needed are relatively minor

provide alternatives to input files Planning for optimization at the beginning can help a lot

Try to avoid:

• max/min • abs • piecewise functions • convergence loops, • noisy output • empirical models • discretization Planning for optimization at the beginning can help a lot

[f, g] = func(x)

Think about gradients upfront Engineering design is multidisciplinary

Aerodynamic Performance Capital Structural Costs Design Optimization Maintenance and UQ Control Costs Strategy

Farm Site Layout Selection Single discipline thinking usually leads to poor solutions

principal material direction

n L r t S ply angle

Single discipline thinking usually leads to poor solutions Figure 1: Example of composites layup at a typical blade section. Principal material direction of laminas, shown in brown, is skewed with respect to the blade axis. This causes bend-twist coupling as evident at the blade tip.

Sector 2

Sector 3 Sector 1 AA BB Vy(1 + a0) plane of rotation Vx(1 a) W

Laminas schedule at AA Laminas schedule at BB

Figure 2: Example of spar-cap-type layup of composites at a blade section Aerodynamics Composite Laminate Theory Single discipline thinking usually leads to poor solutions

Finite Element Analysis Performance and Buckling Single component thinking usually leads to

THE AERODYNAMICS OFpoor A WIND TURBINE solutions IN STEADY YAW 97 mRNAg

z T y

x

γ H U

Figure 3.46 A Wind Turbine Yawed to the Wind Direction which is a pressure force and so normal to the disc, is responsible for the rate of change of momentum of the flow then the average induced velocity must also be in a direction at right angles to the disc plane, i.e., in the axial direction. The wake is therefore deflected to one side because a component of the induced velocity is at right angles to the wind direction. As in the non-yawed case the average induced velocity at the disc is half that in the wake. Let the rotor axis be held at an angle of yaw ª to the steady wind direction (Figure 3.47) then, assuming that the rate of change of momentum in the axial

F= A U (cos( – ) 2 a U ρ pD γ γ α

γ U F

γ aU 2aU

Figure 3.47 Deflected Wake of a Yawed Turbine and Induced Velocities Splines are an effective way to represent continuous distributions with a small number of design variables A relatively small number of design variables were used in our early studies

Description Name # of Vars chord distribution {c} 5 twist distribution {θ} 4 spar cap thickness distribution {t} 3 tip speed ratio in region 2 λ 1 rotor diameter D 1 machine rating rating 1 However, we typically used around 100 constraints

minimize J(x) x

subject to (f m✏50i)/✏ult < 1,i=1,...,N ultimateultimate tensile tensile strain strength ( ✏ )/✏ > 1,i=1,...,N ultimateultimate compressive compressive strain strength f m 50i ult (✏50jf ✏cr)/✏ult > 0,j=1,...,M sparspar cap cap buckling buckling /0 < 1.1 tiptip deflectiondeflection at at rated rated speed !1/(3⌦rated) > 1.1 bladeblade natural natural frequency frequency root-gravity/Sf < 1 fatiguefatigue at at blade blade root root due (gravity to gravity loads) loads /S > 1 fatigue at blade root due to gravity loads root-gravity f fatigue at blade root (gravity loads) V

AEP mass COE

0.8

0.4

0

-0.4

-0.8

-1.2 AEP first mass first min COE An appropriate objective choice is critical and generally under-appreciated In higher dimensional space, analytic gradients become increasingly important

Rotor Hub Struc Nacelle

Rotor Perf Rotor Struc LSS/HSS Gearbox

Rotor Aero Blade Struc Bearings Generator

Section Aero Section Struc Bedplate Yaw System

Tower / Costs Foundation Tower Struc TCC Tower Aero Jacket Struc O&M AEP

Tower Hydro Tower Soil BOS Finance In higher dimensional space, analytic gradients become increasingly important

Component Description # of vars

Rotor Chord distribution 5 Rotor Twist distribution 4 Rotor Spar-cap thickness distribution 5 Rotor Trailing-edge panel thickness distribution 5 Rotor Precurve distribution 3 Rotor Hub precone angle 1 Rotor Tip-speed ratio in Region 2 1 Tower Height 1 Tower Waist location 1 Tower Diameter 2 Tower Shell Thickness 3 As the problem size increases, even finite differencing may not be good enough

Finite-difference Analytic Run time (hours) 5.43 1.11 Some takeaways

• There is a big difference between developing tools just for analysis versus for analysis and optimization.

• During analysis development think about gradients, discuss appropriate objectives, and think about the system-level.

• We will discuss later what can/should be done on the optimization side (scaling, multi-start, reformulation, etc.) Some optimizers you might be interested in

• fmincon: Matlab, 4 algorithms

• SNOPT: commercial tool from Stanford. talk to me about license

• OptdesX, APOPT: tools available at BYU

• scipy.optimize: Python, not great, but easy to use

• KNITRO: academic version

• CVX, : convex optimization, Matlab-based

• CPLX: linear and integer programming Some frameworks you might be interested in

• pyOptSparse: Python, a wrapper to many optimizers

• OpenMDAO: Python-based, developed at NASA, not a “black box” approach, coupled derivatives, MDO architectures, HPC support

• ModelCenter or Isight: tool to integrate models with interfaces to other tools like Matlab, Excel, etc.

• DAKOTA: Sandia, only has open-source optimizers, but allows easy coupling to UQ algorithms

• AMPL: a mathematical programming language, supports many optimizers