Pitch control NREL 5MW wind trubine

Hello everybody,

I have a problem with the pitch controller of the NREL 5MW wind turbine. On the NREL 5 MW reference wind turbine I simulate 6 seeds with wind speeds from 3 to 25 ms^-1 with the initial conditions from the document “Definition of a 5 MW Reference Wind Turbine for Offshore System Development”. Most simulations run without problems, but it comes at 4 simulations to problems with the pitch controller. The 4 simulations are for seed 2 with 15 ms^-1, for seed 3 with 13 and 15 ms^-1 and for seed 5 with 17 ms^-1. The pitch controller swings at some point with a pitch angle between 0 and 90 degrees (see picture). All simulations are carried out without hydrodynamic loads. The initial conditions for the wind speeds 13, 15 and 17 m*s^-1 are listed below:

Initia_Conditions.PNG

Best regards,

Malte Frieling

1 Like

Dear Malte,

Your initial conditions look OK to me. I’m not sure what the problem is.

Do all simulations fail at the same time (at about 3400 s)? What aerodynamic features have you enabled in AeroDyn?

Best regards,

Hi Dr. Jonkman,

all four simulations fail at different times (seed 2 15mps approximately at 3400s, seed 3 13mps approximately at 2500s, seed 3 15mps approximately at 2100s and seed 5 17mps approximately at 2400s).

AeroDyn code:

------- AERODYN v15 for OpenFAST INPUT FILE ----------------------------------------------- NREL 5.0 MW offshore baseline aerodynamic input properties, with OC3 Monopile tower ====== General Options ============================================================================ False Echo - Echo the input to "<rootname>.AD.ech"? (flag) "default" DTAero - Time interval for aerodynamic calculations {or "default"} (s) 1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT} [WakeMod cannot be 2 when linearizing] 2 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing] 1 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction} False TwrShadow - Calculate tower influence on wind based on downstream tower shadow? (flag) True TwrAero - Calculate tower aerodynamic loads? (flag) False FrozenWake - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing] False CavitCheck - Perform cavitation check? (flag) [AFAeroMod must be 1 when CavitCheck=true] ====== Environmental Conditions =================================================================== 1.225 AirDens - Air density (kg/m^3) 1.464E-05 KinVisc - Kinematic air viscosity (m^2/s) 335 SpdSound - Speed of sound (m/s) 103500 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True] 1700 Pvap - Vapour pressure of fluid (Pa) [used only when CavitCheck=True] 0.5 FluidDepth - Water depth above mid-hub height (m) [used only when CavitCheck=True] ====== Blade-Element/Momentum Theory Options ====================================================== [unused when WakeMod=0] 2 SkewMod - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [unused when WakeMod=0] "default" SkewModFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0] True TipLoss - Use the Prandtl tip-loss model? (flag) [unused when WakeMod=0] True HubLoss - Use the Prandtl hub-loss model? (flag) [unused when WakeMod=0] true TanInd - Include tangential induction in BEMT calculations? (flag) [unused when WakeMod=0] False AIDrag - Include the drag term in the axial-induction calculation? (flag) [unused when WakeMod=0] False TIDrag - Include the drag term in the tangential-induction calculation? (flag) [unused when WakeMod=0 or TanInd=FALSE] "Default" IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when WakeMod=0] 100 MaxIter - Maximum number of iteration steps (-) [unused when WakeMod=0] ====== Dynamic Blade-Element/Momentum Theory Options ============================================== [used only when WakeMod=2] 2 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {1=constant tau1, 2=time-dependent tau1} (-) [used only when WakeMod=2] 4 tau1_const - Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1] ====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2] 3 UAMod - Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minemma/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2] True FLookup - Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2] ====== Airfoil Information ========================================================================= 1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-) 2 InCol_Cl - The column in the airfoil tables that contains the lift coefficient (-) 3 InCol_Cd - The column in the airfoil tables that contains the drag coefficient (-) 4 InCol_Cm - The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-) 0 InCol_Cpmin - The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-) 8 NumAFfiles - Number of airfoil files used (-) "Airfoils/Cylinder1.dat" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings) "Airfoils/Cylinder2.dat" "Airfoils/DU40_A17.dat" "Airfoils/DU35_A17.dat" "Airfoils/DU30_A17.dat" "Airfoils/DU25_A17.dat" "Airfoils/DU21_A17.dat" "Airfoils/NACA64_A17.dat" ====== Rotor/Blade Properties ===================================================================== True UseBlCm - Include aerodynamic pitching moment in calculations? (flag) "NRELOffshrBsline5MW_AeroDyn_blade.dat" ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-) "NRELOffshrBsline5MW_AeroDyn_blade.dat" ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2] "NRELOffshrBsline5MW_AeroDyn_blade.dat" ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3] ====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True] 11 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True] TwrElev TwrDiam TwrCd (m) (m) (-) 1.0000000E+01 6.0000000E+00 1.0000000E+00 1.7760000E+01 5.7870000E+00 1.0000000E+00 2.5520000E+01 5.5740000E+00 1.0000000E+00 3.3280000E+01 5.3610000E+00 1.0000000E+00 4.1040000E+01 5.1480000E+00 1.0000000E+00 4.8800000E+01 4.9350000E+00 1.0000000E+00 5.6560000E+01 4.7220000E+00 1.0000000E+00 6.4320000E+01 4.5090000E+00 1.0000000E+00 7.2080000E+01 4.2960000E+00 1.0000000E+00 7.9840000E+01 4.0830000E+00 1.0000000E+00 8.7600000E+01 3.8700000E+00 1.0000000E+00 ====== Outputs ==================================================================================== Flase SumPrint - Generate a summary file listing input options and interpolated properties to "<rootname>.AD.sum"? (flag) 0 NBlOuts - Number of blade node outputs [0 - 9] (-) 2, 9, 16, 4, 5, 7, 11, 13, 14 BlOutNd - Blade nodes whose values will be output (-) 0 NTwOuts - Number of tower node outputs [0 - 9] (-) 1, 2, 3, 4, 5 TwOutNd - Tower nodes whose values will be output (-) OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-) "B1Pitch" "B2Pitch" "B3Pitch" "RtSpeed" END of input file (the word "END" must appear in the first 3 columns of this last OutList line) ---------------------------------------------------------------------------------------

Best regards,

Malte Frieling

Dear Malte,

I’m not sure what would cause this; your AeroDyn v15 input file looks fine with me. And all failures happen late into the simulation at different times, which makes it difficult to debug.

Which version of FAST/OpenFAST are you running? Did you compile yourself?

As a stop gap, it may be easiest to simply run the 4 simulations that result in controller issues with different seeds, but it would be nice to know why this is happening. We’ve run the NREL 5-MW turbine model with baseline controller for many, many simulations, and I would not expect this to happen.

Best regards,

Hello Dr. Jonkman,

At following picture I also plotted rotor speed. At the time the pitch control fails the rotor speed reaches a maximum of 13.97 rpm. Could it be related to that?

Best regards,

Malte.

Dear Malte,

I’m not aware of anything in the NREL 5-MW baseline controller that would cause problems at high rotor-speed error.

Again, which version of FAST/OpenFAST are you running? Did you compile yourself?

Best regards,

Hi Dr.Jonkman,

sorry i forgot to answer about the version.
I use OpenFAST v2.2.0.

Best regards,

Malte

Dear Malte,

Did you compile OpenFAST v.2.2 or the controller DLL yourself?

Best regards,

I am getting similar issue when running parked with pitch failure case…I would like to simulate…two blades remains feathered to 90 degree and one blade stuck at low angle…

CAse1: I tried to simulate startup case where all blade has initial pitch angle of 90 degree and PC=5 and controller just swings blade from 0 to 90…I tried with initial conditions ( including low angles and also changing starting RPM etc) but issue persists.

Case2: I tried to start the simulation with initial pitch of 20ish degree at rated RPM…controller behave as it should but as soon as it hit to time step where TPitManS, it set the pitch angle to all blades instead of just the commanded blade.

I tried with Openfast 3.5.3 and ROSCO 2.7 controller Discon.dll file.

Did anyone had the same issue to simulate the startup from parked or parked with pitch offset cases?

Dear @Ramesh.Kumar,

Can you clarify what issue you are running into?

Best regards,

Dear @Jason.Jonkman

I am trying to simulate feathered blade in parked condition to operating pitch angle with controller PC=5 but controlled is behaving bit weird and pitching blades from 0 to 90 degree.

I have attached the aerodyn, Elastodyn and Servodyn file for your reference.

Best regards

Servodyn

Elastodyn


Aerodyn

Dear @Ramesh.Kumar,

My guess is the issue is that you are using the baseline DISCON.dll controller for the NREL 5-MW turbine, which is only set up to function for normal operation, but you are not initializing the model appropriately for normal operation. Rather, you are initializing the blade in an idling condition, with all blades feathered and the rotor speed zero. When using the baseline DISCON.dll controller for the NREL 5-MW turbine, you should initialize the rotor speed and blade-pitch angles to their expected (mean) values, conditioned on the mean hub-height wind speed you are simulating.

Best regards,

Dear @Jason.Jonkman

Recently, our team has conducted some research on pitch control to test whether the OC4 wind turbine can continue to operate at higher wind speeds (greater than the rated cut-out wind speed of 25m/s). But I don’t know how to determine the rationality of this method. It seems that we need to compare the numerical changes of some variables. Do you have any suggestions in this regard? For example, the 6-DOF of the platform? Or the load on the blades?

In addition, I would like to know if it is necessary to compare the loads of the relevant components in the simulated operating conditions with the ultimate load defined by OC4? Where can I find the maximum load of OC4 to ensure safe operation?

Best Regards,

Jundong.Wang

Dear @Jundong.Wang,

Regarding operating the rotor past cut-out, I would be concerned by (1) the increase in standard deviation in loads (particularly blade loads, but this will impact loads further down the load path) due to the increase in wind speed standard deviation with increasing mean wind speed (2), the increasing blade deflection that could result in a tower strike if not properly mitigated.

Regarding ultimate loads of the NREL 5-MW wind turbine atop the OC4-DeepCwind semisubmersible, I recall we computed these many years ago and published results in our 2011 ISOPE paper: https://www.scopus.com/record/display.uri?eid=2-s2.0-80052733162&origin=inward&txGid=c56766d599ea48cf317d8fce7ff7fcca. That said, I’m not sure you’ll be able to glean enough information from this paper to get exactly what you want and I’m not sure where and if the raw data still exists. I would suggest performing a similar analysis yourself to obtain the ultimate loads that you need.

Best regards,

Dear @Jason.Jonkman

Thanks so much. I would like to know if you think it is necessary to analyze the stiffness of the tower? I have learned about some cases of wind turbines that have collapsed before, and it seems that they have bent at the bottom or in the middle. But I’m not sure if it’s related to tower strike.

Thank you very much for providing the results!
Best Regards,
Jundong Wang

Dear @Jundong.Wang,

What you describe sounds like a tower buckling problem, which is not solely related to tower stiffness. A blade strike could be the cause, but need not be either.

Best regards,