5MW NREL Wind turbine - Simulation with a high wind speed

Hello there,

I would like to run a simulation in the operating state with wind speeds from 3 to 25 m/s. I used the default parameter written in the 5MW NREL wind turbine script. I used the controller in SevoDyn DISCON.dll. My simulation for the wind speed from 14 m/s to 25 m/s could not be completed. The reason is that at high speed, excessive loads act on the blade. How can you manage to make the simulation work and get a reasonable solution?

Dear @Hussam.Al.Halabi,

Presumably you are running separate simulations for each mean wind speed you are simulating; is that correct? For each of these simulations, are you initializing the rotor speed and blade-pitch angles in ElastoDyn to their expected (mean) values conditioned on each mean hub-height wind speed? If not, the controller may not be able to recover, resulting in an unreasonable solution.

Best regards,

Dear @Jason.Jonkman

I really did. It worked at a speed of 13 m/s and a pitch angle of 8°. I chose 12.1 rpm as the rotor speed for all simulations. I tried changing the initial pitch angle for the next wind speed and other wind speeds above but it didn’t work.

Isn’t the rotor speed I choose the fixed wind speed and does it have the same meaning as the maximum rotation for the generator and shouldn’t be changed for the same wind turbine? I tried changing it but the simulation didn’t work either.
Initial condition:
---------------------- INITIAL CONDITIONS --------------------------------------
0 OoPDefl - Initial out-of-plane blade-tip displacement (meters)
0 IPDefl - Initial in-plane blade-tip deflection (meters)
8 BlPitch(1) - Blade 1 initial pitch (degrees)
8 BlPitch(2) - Blade 2 initial pitch (degrees)
8 BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades]
0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 bladess]
0 Azimuth - Initial azimuth angle for blade 1 (degrees)
12.1 RotSpeed - Initial or fixed rotor speed (rpm)
0 NacYaw - Initial or fixed nacelle-yaw angle (degrees)
0 TTDspFA - Initial fore-aft tower-top displacement (meters)
0 TTDspSS - Initial side-to-side tower-top displacement (meters)
0 PtfmSurge - Initial or fixed horizontal surge translational displacement of platform (meters)
0 PtfmSway - Initial or fixed horizontal sway translational displacement of platform (meters)
0 PtfmHeave - Initial or fixed vertical heave translational displacement of platform (meters)
0 PtfmRoll - Initial or fixed roll tilt rotational displacement of platform (degrees)
0 PtfmPitch - Initial or fixed pitch tilt rotational displacement of platform (degrees)
0 PtfmYaw - Initial or fixed yaw rotational displacement of platform (degrees)

Best regards

Dear @Hussam.Al.Halabi,

This section of the ElastoDyn input file defines initial conditions of the structural model. It does not define controller parameters such as max generator speed. As I said, you should set RotSpeed and BlPitch to their expected (mean) values for each simulation, based on the mean hub-height wind speed. At 13 m/s, these should be RotSpeed = 12.1 and BlPitch = 6.6deg. See Figure 9-1 of the NREL 5-MW baseline wind turbine specifications report for the values at other wind speeds; the numerical values shown in this Figure are provided in the following forum topic: NREL 5-MW reference turbine.

Best regards,

Dear @Jason.Jonkman

Thank you for your reply. I’ve already read that. I actually work with a turbulent wind speed of each speed bin. I think I should do it manually several times! Is there away to let the controller find the initial pitch angle for me?

I tried to use the same wind speed with the same pitch angle in the 5MW turbine script. I could do 13 m/s with a pitch angle of 7°, but I couldn’t do it for 14 m/s.
Can I find the working files of each speed bin in GitHub?
In my turbulent speed case, should I go manual until it works?

My bladed interface :
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
“ServoData/DISCON.dll” DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]
“DISCON.IN” DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface]
“DISCON” DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface]
“default” DLL_DT - Communication interval for dynamic library (s) (or “default”) [used only with Bladed Interface]
false DLL_Ramp - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface]
9999.9 BPCutoff - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]
0 NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface]
0 Ptch_Cntrl - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface]
0 Ptch_SetPnt - Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]
0 Ptch_Min - Record 6: Minimum pitch angle (deg) [used only with Bladed Interface]
90 Ptch_Max - Record 7: Maximum pitch angle (deg) [used only with Bladed Interface]
0 PtchRate_Min - Record 8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface]
8 PtchRate_Max - Record 9: Maximum pitch rate (deg/s) [used only with Bladed Interface]
0 Gain_OM - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface]
0 GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface]
0 GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface]
0 GenSpd_Dem - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface]
0 GenTrq_Dem - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface]
0 GenPwr_Dem - Record 13: Demanded power (W) [used only with Bladed Interface]

Best regards

Dear @Hussam.Al.Halabi,

The link to the forum topic I referenced in my prior post contains a table (WindSpeedRelationships.txt) showing the numerical values of the rotor speed and blade-pitch angle conditioned on mean hub-height wind speed.

You shouldn’t need to change the initial conditions based on turbulence. You should be able to use the mean wind speed at hub height to determine the initial rotor speed and blade-pitch, whether there is turbulence or not.

Best regards,

Dear @Jason.Jonkman

Thanks for your answer. I’m actually trying to calculate the loads on the tower. I changed the DOF as follows and it works without editing the pitch angle: (Copied text is below). Previously I also had Generator DOF. Is using these DOF enough to correctly calculate the loads on the tower?

---------------------- DEGREES OF FREEDOM --------------------------------------
True FlapDOF1 - First flapwise blade mode DOF (flag)
True FlapDOF2 - Second flapwise blade mode DOF (flag)
True EdgeDOF - First edgewise blade mode DOF (flag)
False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades]
False DrTrDOF - Drivetrain rotational-flexibility DOF (flag)
False GenDOF - Generator DOF (flag)
False YawDOF - Yaw DOF (flag)
True TwFADOF1 - First fore-aft tower bending-mode DOF (flag)
True TwFADOF2 - Second fore-aft tower bending-mode DOF (flag)
True TwSSDOF1 - First side-to-side tower bending-mode DOF (flag)
True TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag)
False PtfmSgDOF - Platform horizontal surge translation DOF (flag)
False PtfmSwDOF - Platform horizontal sway translation DOF (flag)
False PtfmHvDOF - Platform vertical heave translation DOF (flag)
False PtfmRDOF - Platform roll tilt rotation DOF (flag)
False PtfmPDOF - Platform pitch tilt rotation DOF (flag)
False PtfmYDOF - Platform yaw rotation DOF (flag)

Best regards,

Dear @Hussam.Al.Halabi,

By disabling the generator DOF (GenDOF = False), you’ve effectively eliminated the response of the wind turbine operational controller because the controller uses feedback of generator speed relative to a reference set point to calculate a speed error that is used to determine control actions. In general, I would say that tower loads are influenced by the wind turbine control actions, so, I would generally not recommend disabling GenDOF except for conditions where the rotor is parked or truly fixed speed.

Best regards,

Dear @Jason.Jonkman

Thank you for reply. I still confused what i should do to run OpenFast correctly with a speed of 14 m/s and above.
I used for testing purposes a steady flow with 14 m/s. The initial pitch of all blades is 8.7°. I got this error nootification.


FAST_Solution0:CalcOutputs_And_SolveForInputs:SolveOption2:SrvD_CalcOutput:Running with torque
and pitch control of the NREL offshore 5MW baseline wind turbine from DISCON.dll as written by J.
Jonkman of NREL/NWTC for use in the IEA Annex XXIII OC3 studies.
Time: 37 of 600 seconds. Estimated final completion at 19:07:26.

FAST_Solution:FAST_AdvanceStates:ED_ABM4:ED_CalcContStateDeriv:SetCoordSy:Small angle assumption
violated in SUBROUTINE SmllRotTrans() due to a large blade deflection (ElastoDyn SetCoordSy). The
solution may be inaccurate. Simulation continuing, but future warnings from SmllRotTrans() will
be suppressed.
Additional debugging message from SUBROUTINE SmllRotTrans(): 37.7 s
Time: 90 of 600 seconds. Estimated final completion at 19:07:27.

FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates(node 13, blade
2):BEMT_UnCoupledSolve:There is no valid value of phi for these operating conditions: Vx =
0.49689, Vy = -18.258, rlocal = 44.373, theta = 0.28587, geometric phi = 3.1144. This warning
will not be repeated though the condition may persist. (See GeomPhi output channel.)
Time: 96 of 600 seconds. Estimated final completion at 19:07:31.

FAST_Solution:FAST_AdvanceStates:SolveOption2c_Inp2AD_SrvD:InflowWind_CalcOutput:CalcOutput:IfW_Un
iformWind_CalcOutput:GetWindSpeed:Height must not be negative.
IfW_UniformWind_CalcOutput: Error calculating the wind speed at position (-15.28, -20.813,
-13.911) in the wind-file coordinates

FAST encountered an error at simulation time 96.6 of 600 seconds.
Simulation error level: FATAL ERROR

Aborting OpenFAST.


I need some tips to make my model works with at least the DOF of the generator.

Best regards,

Dear @Hussam.Al.Halabi,

It sounds like your model is suffering from an instability. An initial pitch of about 8.7deg at 14 m/s sounds correct for the NREL 5-MW baseline wind turbine. Have you initialized the rotor speed to 12.1 rpm?

Are you using the default model of the land-based version of the NREL 5-MW baseline wind turbine from the OpenFAST r-test or something else: https://github.com/OpenFAST/r-test/tree/main/glue-codes/openfast/5MW_Land_DLL_WTurb? Did you change other input parameters of this model, such as time step size, geometry, or stiffness?

Best regards,

Dear @Jason.Jonkman

The integration time step (s) used was at “Default”=0.05. I changed it to 0.0125. The program now also works very well even with the rotational flexibility DOF of the powertrain and with different pitch angles.

I’m wondering why it doesn’t work at high speeds with higher integration timesteps and why the results are different with it?

Thank you for this hint. I think I should now repeat the calculation of all wind speeds if I want to get correct results!

Best regards,

Dear @Hussam.Al.Halabi,

The OpenFAST model I referenced uses a smaller time step, which was determined to maintain numerical stability. It sounds like your were using too high of a time step, resulting in a numerically unstable simulation. There are many posts on this forum that provide guidance on how to select a suitable time steps.

Best regards,