15MW towerbase pitching moment discrepancy

Dear NREL team,

I am running openFAST simulations for the 15-MW reference wind turbine including wind turbine control (for floating applications) with a fully constrained floater and ignoring structural deformations of the wind turbine tower and wind turbine blades. Also, the tower drag loads are not taken into account. Now, for verification purposes, I am interested in the loads at the tower base of the turbine (located at the water line). Therefore, I changed the value of TowerBsHt from 15.0m to 0.0m in the “Turbine configuration” menu of ElastoDyn.dat, such that the height of the tower base is located at the waterline. This results in a distance equal to the hub height of 150.0 meter from MSL. The ElastoDyn.dat-file is shown below:

[code]------- ELASTODYN v1.03.* INPUT FILE -------------------------------------------
IEA 15 MW offshore reference model on UMaine VolturnUS-S semi-submersible floating platform
---------------------- SIMULATION CONTROL --------------------------------------
False Echo - Echo input data to “.ech” (flag)
3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)
“default” DT Integration time step (s)
---------------------- ENVIRONMENTAL CONDITION ---------------------------------
9.80665 Gravity - Gravitational acceleration (m/s^2)
---------------------- DEGREES OF FREEDOM --------------------------------------
False FlapDOF1 - First flapwise blade mode DOF (flag)
False FlapDOF2 - Second flapwise blade mode DOF (flag)
False EdgeDOF - First edgewise blade mode DOF (flag)
False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades]
False DrTrDOF - Drivetrain rotational-flexibility DOF (flag)
True GenDOF - Generator DOF (flag)
False YawDOF - Yaw DOF (flag)
False TwFADOF1 - First fore-aft tower bending-mode DOF (flag)
False TwFADOF2 - Second fore-aft tower bending-mode DOF (flag)
False TwSSDOF1 - First side-to-side tower bending-mode DOF (flag)
False 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)
---------------------- INITIAL CONDITIONS --------------------------------------
0 OoPDefl - Initial out-of-plane blade-tip displacement (meters)
0 IPDefl - Initial in-plane blade-tip deflection (meters)
1. BlPitch(1) - Blade 1 initial pitch (degrees)
1. BlPitch(2) - Blade 2 initial pitch (degrees)
1. BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades]
0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 blades]
0 Azimuth - Initial azimuth angle for blade 1 (degrees)
7.56 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)
---------------------- TURBINE CONFIGURATION -----------------------------------
3 NumBl - Number of blades (-)
120 TipRad - The distance from the rotor apex to the blade tip (meters)
3 HubRad - The distance from the rotor apex to the blade root (meters)
-4 PreCone(1) - Blade 1 cone angle (degrees)
-4 PreCone(2) - Blade 2 cone angle (degrees)
-4 PreCone(3) - Blade 3 cone angle (degrees) [unused for 2 blades]
0 HubCM - Distance from rotor apex to hub mass [positive downwind] (meters)
0 UndSling - Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades]
0 Delta3 - Delta-3 angle for teetering rotors (degrees) [unused for 3 blades]
0 AzimB1Up - Azimuth value to use for I/O when blade 1 points up (degrees)
-11.075 OverHang - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters)
0 ShftGagL - Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters)
-6 ShftTilt - Rotor shaft tilt angle (degrees)
-4.985 NacCMxn - Downwind distance from the tower-top to the nacelle CM (meters)
0 NacCMyn - Lateral distance from the tower-top to the nacelle CM (meters)
4.358 NacCMzn - Vertical distance from the tower-top to the nacelle CM (meters)
-4.985 NcIMUxn - Downwind distance from the tower-top to the nacelle IMU (meters)
0 NcIMUyn - Lateral distance from the tower-top to the nacelle IMU (meters)
4.358 NcIMUzn - Vertical distance from the tower-top to the nacelle IMU (meters)
4.3478 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (meters)
144.495 TowerHt - Height of tower above ground level [onshore] or MSL [offshore] (meters)
0 TowerBsHt - Height of tower base above ground level [onshore] or MSL [offshore] (meters)
0 PtfmCMxt - Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
0 PtfmCMyt - Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
-14.94 PtfmCMzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
0 PtfmRefzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters)
---------------------- MASS AND INERTIA ----------------------------------------
0 TipMass(1) - Tip-brake mass, blade 1 (kg)
0 TipMass(2) - Tip-brake mass, blade 2 (kg)
0 TipMass(3) - Tip-brake mass, blade 3 (kg) [unused for 2 blades]
190000 HubMass - Hub mass (kg)
1.37347E+06 HubIner - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2)
8.00865E+06 GenIner - Generator inertia about HSS (kg m^2)
507275 NacMass - Nacelle mass (kg)
1.96179E+07 NacYIner - Nacelle inertia about yaw axis (kg m^2)
100000 YawBrMass - Yaw bearing mass (kg)
1.7838E+07 PtfmMass - Platform mass (kg)
1.2507E+10 PtfmRIner - Platform inertia for roll tilt rotation about the platform CM (kg m^2)
1.2507E+10 PtfmPIner - Platform inertia for pitch tilt rotation about the platform CM (kg m^2)
2.3667E+10 PtfmYIner - Platform inertia for yaw rotation about the platform CM (kg m^2)
---------------------- BLADE ---------------------------------------------------
20 BldNodes - Number of blade nodes (per blade) used for analysis (-)
“ElastoDyn_blade.dat” BldFile1 - Name of file containing properties for blade 1 (quoted string)
“ElastoDyn_blade.dat” BldFile2 - Name of file containing properties for blade 2 (quoted string)
“ElastoDyn_blade.dat” BldFile3 - Name of file containing properties for blade 3 (quoted string) [unused for 2 blades]
---------------------- ROTOR-TEETER --------------------------------------------
0 TeetMod - Rotor-teeter spring/damper model {0: none, 1: standard, 2: user-defined from routine UserTeet} (switch) [unused for 3 blades]
0 TeetDmpP - Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetDmp - Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1]
0 TeetCDmp - Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1]
0 TeetSStP - Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetHStP - Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetSSSp - Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
0 TeetHSSp - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
---------------------- DRIVETRAIN ----------------------------------------------
100 GBoxEff - Gearbox efficiency (%)
1 GBRatio - Gearbox ratio (-)
8.235E+11 DTTorSpr - Drivetrain torsional spring (N-m/rad)
6.215E+06 DTTorDmp - Drivetrain torsional damper (N-m/(rad/s))
---------------------- FURLING -------------------------------------------------
False Furling - Read in additional model properties for furling turbine (flag) [must currently be FALSE)
“unused” FurlFile - Name of file containing furling properties (quoted string) [unused when Furling=False]
---------------------- TOWER ---------------------------------------------------
50 TwrNodes - Number of tower nodes used for analysis (-)
“ElastoDyn_tower.dat” TwrFile - Name of file containing tower properties (quoted string)
---------------------- OUTPUT --------------------------------------------------
True SumPrint - Print summary data to “.sum” (flag)
1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)
True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused)
“ES10.3E2” OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)
0 TStart - Time to begin tabular output (s) (currently unused)
1 DecFact - Decimation factor for tabular output {1: output every time step} (-) (currently unused)
1 NTwGages - Number of tower nodes that have strain gages for output [0 to 9] (-)
20 TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0] TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]
3 NBlGages - Number of blade nodes that have strain gages for output [0 to 9] (-)
5, 9, 13 BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0] BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0] BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0]
OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
“Azimuth”
“BldPitch1”
“GenSpeed”
“IPDefl1”
“LSSGagMya”
“LSSGagMza”
“OoPDefl1”
“PtfmSurge”
“PtfmSway”
“PtfmHeave”
“PtfmRoll”
“PtfmPitch”
“PtfmYaw”
“RootFxb1”
“RootFyb1”
“RootFzb1”
“RootMxb1”
“RootMyb1”
“RootMzb1”
“RootFxb2”
“RootFyb2”
“RootFzb2”
“RootMxb2”
“RootMyb2”
“RootMzb2”
“RootFxb3”
“RootFyb3”
“RootFzb3”
“RootMxb3”
“RootMyb3”
“RootMzb3”
“TipDxb1”
“TipDyb1”
“TipDxb2”
“TipDyb2”
“TipDxb3”
“TipDyb3”
“NcIMUTAxs”
“NcIMUTAys”
“NcIMUTAzs”
“YawBrTDxt”
“YawBrTDyt”
“RotSpeed”
“RotTorq”
“RotThrust”
“RotPwr”
“Spn2MLxb1”
“Spn2MLyb1”
“TwrBsFxt”
“TwrBsFyt”
“TwrBsFzt”
“TwrBsMxt”
“TwrBsMyt”
“TwrBsMzt”
“TTDspTwst”
“TwHt1TPxi”
“TwHt1TPyi”
“TwstDefl1”
“YawBrFxp”
“YawBrFyp”
“YawBrFzp”
“YawBrMxp”
“YawBrMyp”
“YawBrMzp”
“TwrBsFzt”
“NacYaw”
END of input file (the word “END” must appear in the first 3 columns of this last OutList line)

[/code]

After extracting the output parameters of the Tower Base Loads, the tower base pitching moment (TwrBsMyt) shows to deviate (significantly) from the pitching moment calculated by the aerodynamic thrust (RtAeroFxh) times the hub height of 150.0 meter (see figure, including another aerodynamic software). It seems that there is a fixed offset between the TwrBsMyt and the pitching moment calculated by RtAeroFxh times HubHt, resulting from a difference in the length of the reference points.

What could explain this (constant) difference in the TwrBsMyt?

Best regards,

Peter Veldman

Dear Peter,

The applied aerodynamic thrust force times moment arm will be reduced a bit by the 6deg shaft tilt, but this effect may be small.

In addition to the thrust force times arm, another large contributor to the tower-base moment is the weight of the nacelle and rotor times their CM offsets from the tower centerline. Given that CMs of both are upwind of the tower (negative OverHang and negative NacCMxn), these combined will shift TwrBsMyt downward, counteracting the moment from applied aerodynamic thrust.

Best regards,

Hi NREL team,
I’m trying to match the results of ultimate Loads in “Definition of the UMaine VolturnUS-S Reference Platform Developed for the IEA Wind 15-Megawatt Offshore Reference Wind Turbine”. I am using Bladed for the simulations. I observed higher loads for the tower. I have the following questions :
(1) Are the maximum loads reported for each dlc the mean of the maximum of the wind/ wave seeds.
(2) Was nacelle and tower drag considered, and could these cause the higher loads I’m observing.
(3) Are safety factors applied to the loads
Looking forward to hearing from you.
Regards
Salem

Hi Salem,

The summary answer to your question is that we mistakenly did not retain the files from the loads analysis that went into the two 15-MW reports. Furthermore, errors in the model files, controller settings, etc have been corrected since the initial release, so the loads have changed- especially max load values which are sensitive to small changes.

To answer your individual questions 1) Yes, averaging over the seeds is the standard approach, 2) Yes, tower drag was included. Nacelle shape is not defined but a tail-vane effect is included, and 3) The loads were not scaled by a safety factor.

Since you mentioned that you are using Bladed, if you are not already aware, the DNV team released a Bladed version of the v1.0 15-MW monopile. Brief description here. This might help is your simulation of the floating version.

Cheers,
Garrett

Hi Garrett
Many thanks for your reply. My simulation is for floating. I’ve generated the Bladed floating model. Was trying to match the results in the UMaine
VolturnUS-S report. Since you’ve highlighted the maximum loads are the mean of maximum from the seeds, my results are not so different (about 7% higher for tower base loads). Also, maximum platform pitch is close to 10 deg, is this too high? I am interested in the load changes, if its reduced and how this was achieved based on influence of controller tuning/.IN settings. I used the ROSCO controller, which I’ve modified to account for blade flexibility. I’ve also attached an example result. Note for the tower base loads, x, y and z in the Bladed result is z, x and y in FAST. What are your thoughts of these results.
Regards
Salem


Hi Salem,

I’m not in a position to give you much feedback on your loads values. One comment is that if you are using ROSCO & Bladed, I know the connection there can be subtle. Our ROSCO team and the DNV Bladed team had a lot of interaction to debug the setup for the monopile version that I referenced earlier. I would recommend you at least open up that Bladed model to spot check your ROSCO setup.

Cheers,
Garrett

Hi Salem,

10 deg. for platform pitch sounds too high. If you can post a time series with blade pitch, platform pitch, and generator speed (and anything else you think is relevant) for the worst-case loads/displacement, we can provide further insight.

I know when working with the Bladed team, we needed to reduce the pitch control bandwidth (omega_pc in the ROSCO tuning yaml) to get the monopile controller to behave properly as you said. You may need to reduce it further, I suspect.

I hope this helps.

Best, Dan

Many thanks. I’m developing a new model. Will be sure to get in touch.

Hi Dan,
Would appreciate any insight on why the attached responses are fluctuating even with steady wind and hs of 0m. I’m using ROSCO controller. Looking forward to your response.




Regards
Salem

Hi Salem,

It looks like you’re using a modified version of the IEA-15MW turbine because the generator speed is much higher than the normal rated value of 7.56 rpm.

I would recommend re-tuning your controller with updated rated rotor speed and other turbine parameters here and reducing omega_pc until you get a stable response. More details about the procedure can be found here: 2. Standard ROSCO Workflow - ROSCO 2.4.1 documentation

Best, Dan

Hi Dan,
Thanks very much for your reply. Apologies, i didn’t state clearly that the last results are not for the IEA-15MW but for a 20mw design, with medium speed gearbox hence the high generator speed seen. I’ll try reducing omega_pc and see if I can obtain stable results. Once again thanks for your response.
Regards
Salem

Hi Dan,
The issue was with Fl_Mode in ROSCO discon.IN (2 ! Fl_Mode - Floating specific feedback mode {0: no nacelle velocity feedback, 1: nacelle velocity feedback}). Setting the value to 1 gave the earlier results that were off. But setting it to 2 give the following results:



The four different lines in each plot are different values for damping and frequency of pitch and torque controllers. These settings are as follows:

Run 1:
zeta_pc: 1.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.25 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.12 # Torque controller desired natural frequency [rad/s]

Run 2:
zeta_pc: 1.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.15 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.1 # Torque controller desired natural frequency [rad/s]

Run 3
zeta_pc: 2.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.1 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 1.0 # Torque controller desired damping ratio [-]
omega_vs: 0.20 # Torque controller desired natural frequency [rad/s]

Run 4:
zeta_pc: 2.0 # Pitch controller desired damping ratio [-]
omega_pc: 0.1 # Pitch controller desired natural frequency [rad/s]
zeta_vs: 0.85 # Torque controller desired damping ratio [-]
omega_vs: 0.09 # Torque controller desired natural frequency [rad/s]

My questions are thus:

  1. Do these result look as expected for a power produced for a FWT using ROSCO controller or can it be improved and how? I have used steady wind and still water. It a 20MW turbine and the generated power fluctuates around those computed in steady state power curve.
  2. Which of the set of natural frequency and damping is best, on what do I base such selection?

I look forward to your response.
Regards
Salem

Hi Salem,

It’s hard to say without looking at more signals but Runs 2 and 4 look the best to me. These simulations must be at lower wind speeds because only 3 of the 20 MW are produced, so only the _vs parameters are going to have an effect.

Generally, we try to balance tower loading with generator speed regulation. Increasing omega_pc improves generator speed regulation, but also tower loads. Here is a paper we worked on that talks more about this: WES - Automatic controller tuning using a zeroth-order optimization algorithm

Best, Dan