TMD for OC3Hywind ServoDyn

Dear all,
I am trying to obtain realistic results for OC3Hywind with TMD on the nacelle. But the heave is not what I expected as shown below;

---------------------- TMD MASS, STIFFNESS, & DAMPING -------------------------
2000 TMD_X_M - TMD mass (kg)
2000 TMD_Y_M - TMD mass (kg)
4000 TMD_XY_M - TMDXY mass (kg)
8245 TMD_X_K - TMD stiffness (N/m)
8245 TMD_Y_K - TMD stiffness (N/m)
252 TMD_X_C - TMD damping (N/(m/s))
252 TMD_Y_C - TMD damping (N/(m/s))
1500 TMD_X_KS - Stop spring stiffness of TMD_X (N/m)
1500 TMD_Y_KS - Stop spring stiffness of TMD_Y (N/m)
1000 TMD_X_CS - Stop spring damping (N/(m/s))
1000 TMD_Y_CS - Stop spring damping (N/(m/s))

I just want to obtain a graph, that shows the TMD damps the wave force and decreases the heave more quickly. After that, the TMD graph should continue as close to 0 harmonically.

Should I change the TMD parameters? Which values should I use?
PS: I am working on Test24 case in FastV8 (with and without TMD)

Best Regards

Dear @Kaan.Akkas,

Just a few comments:

  • The heave motion is not of particular concern in a spar, due its deep draft; i.e., wave excitation in the heave direction is quite minimal.

  • The heave motion that does exist for the OC3-Hywind spar is more the result of pitch and roll motion, given the fact that the center of rotation is far below the still water level (COS(rotation) - 1 effect). So, reducing heave motion would require reducing roll and pitch motion.

  • In FAST v8, nacelle-based TMDs exist in the horizontal direction (X, Y), but not in the vertical direction (Z). So, the TMDs can be used to impact tower fore-aft and side-side motion, as well as platform surge, sway, roll, and pitch motion, which would have a small effect on heave.

  • You have not stated which TMD degrees of freedom you have enabled, nor have you stated how you’ve derived the TMD mass, stiffness, and damping. Are these set so as to have maximum damping effect for a given mode of motion?

Please note that in OpenFAST, we’ve recently improved the model of TMDs and other structural controllers (StC), including support for TMDs in the vertical (Z) direction and support for StCs installed also in the blades and platform. I would suggest upgrading from FAST v8 to OpenFAST to take advantage of the new functionality.

Best regards,

Dear Jason,
Thank you for your answer. I could add structural controller (StC) to 5MW_OC3Spar_DLL_WTurb_WavesIrr on openfast. As you mentioned, there are multiple controllers for multiple parts of the wind turbine. My question is: Is this controller tuned liquid column damper (TLCD) or tuned mass damper (TMD)? Because in the beginning of input file it says TMD, but at the end of the file, there are parameters for TLCD. I am a little bit confused about degree of freedoms too. The controller for the nacelle is shown below;

------- STRUCTURAL CONTROL (StC) INPUT FILE ----------------------------
Input file for tuned mass damper, module by Matt Lackner, Meghan Glade, and Semyung Park (UMass)
---------------------- SIMULATION CONTROL --------------------------------------
True Echo - Echo input data to .ech (flag)
---------------------- StC DEGREES OF FREEDOM ----------------------------------
2 StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series}
true StC_X_DOF - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1]
true StC_Y_DOF - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1]
FALSE StC_Z_DOF - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1]
---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to]
3 StC_P_X - At rest X position of StC (m)
0 StC_P_Y - At rest Y position of StC (m)
2 StC_P_Z - At rest Z position of StC (m)
---------------------- StC INITIAL CONDITIONS --------------------------------- [used only when StC_DOF_MODE=1 or 2]
1 StC_X_DSP - StC X initial displacement (m) [relative to at rest position]
1 StC_Y_DSP - StC Y initial displacement (m) [relative to at rest position]
0 StC_Z_DSP - StC Z initial displacement (m) [relative to at rest position; used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2]
10 StC_X_PSP - Positive stop position (maximum X mass displacement) (m)
-10 StC_X_NSP - Negative stop position (minimum X mass displacement) (m)
10 StC_Y_PSP - Positive stop position (maximum Y mass displacement) (m)
-10 StC_Y_NSP - Negative stop position (minimum Y mass displacement) (m)
10 StC_Z_PSP - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
-10 StC_Z_NSP - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC MASS, STIFFNESS, & DAMPING ------------------------- [used only when StC_DOF_MODE=1 or 2]
20000 StC_X_M - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2]
20000 StC_Y_M - StC Y mass (kg) [must equal StC_X_M for StC_DOF_MODE = 2]
0 StC_Z_M - StC Z mass (kg) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
20000 StC_XY_M - StC XY mass (kg) [used only when StC_DOF_MODE=2]
28000 StC_X_K - StC X stiffness (N/m)
28000 StC_Y_K - StC Y stiffness (N/m)
0 StC_Z_K - StC Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
2800 StC_X_C - StC X damping (N/(m/s))
2800 StC_Y_C - StC Y damping (N/(m/s))
0 StC_Z_C - StC Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
15000 StC_X_KS - Stop spring X stiffness (N/m)
15000 StC_Y_KS - Stop spring Y stiffness (N/m)
0 StC_Z_KS - Stop spring Z stiffness (N/m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
10000 StC_X_CS - Stop spring X damping (N/(m/s))
10000 StC_Y_CS - Stop spring Y damping (N/(m/s))
0 StC_Z_CS - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC USER-DEFINED SPRING FORCES ------------------------- [used only when StC_DOF_MODE=1 or 2]
False Use_F_TBL - Use spring force from user-defined table (flag)
17 NKInpSt - Number of spring force input stations
---------------------- StC SPRING FORCES TABLE -------------------------------- [used only when StC_DOF_MODE=1 or 2]
X F_X Y F_Y Z F_Z
(m) (N) (m) (N) (m) (N)
-6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06 -6.0000000E+00 -4.8000000E+06
-5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06 -5.0000000E+00 -2.4000000E+06
-4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06 -4.5000000E+00 -1.2000000E+06
-4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05 -4.0000000E+00 -6.0000000E+05
-3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05 -3.5000000E+00 -3.0000000E+05
-3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05 -3.0000000E+00 -1.5000000E+05
-2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05 -2.5000000E+00 -1.0000000E+05
-2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04 -2.0000000E+00 -6.5000000E+04
0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00 0.0000000E+00
2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04 2.0000000E+00 6.5000000E+04
2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05 2.5000000E+00 1.0000000E+05
3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05 3.0000000E+00 1.5000000E+05
3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05 3.5000000E+00 3.0000000E+05
4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05 4.0000000E+00 6.0000000E+05
4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06 4.5000000E+00 1.2000000E+06
5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06 5.0000000E+00 2.4000000E+06
6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06 6.0000000E+00 4.8000000E+06
---------------------- StructCtrl CONTROL -------------------------------------------- [used only when StC_DOF_MODE=1 or 2]
0 StC_CMODE - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 2: Active Control Mode}
1 StC_SA_MODE - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-)
0 StC_X_C_HIGH - StC X high damping for ground hook control
0 StC_X_C_LOW - StC X low damping for ground hook control
0 StC_Y_C_HIGH - StC Y high damping for ground hook control
0 StC_Y_C_LOW - StC Y low damping for ground hook control
0 StC_Z_C_HIGH - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
0 StC_Z_C_LOW - StC Z low damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
0 StC_X_C_BRAKE - StC X high damping for braking the StC (Don’t use it now. should be zero)
0 StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don’t use it now. should be zero)
0 StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don’t use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
7.9325 L_X - X TLCD total length (m)
6.5929 B_X - X TLCD horizontal length (m)
2.0217 area_X - X TLCD cross-sectional area of vertical column (m^2)
0.913 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
2.5265 headLossCoeff_X - X TLCD head loss coeff (-)
1000 rho_X - X TLCD liquid density (kg/m^3)
3.5767 L_Y - Y TLCD total length (m)
2.1788 B_Y - Y TLCD horizontal length (m)
1.2252 area_Y - Y TLCD cross-sectional area of vertical column (m^2)
2.7232 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
0.6433 headLossCoeff_Y - Y TLCD head loss coeff (-)
1000 rho_Y - Y TLCD liquid density (kg/m^3)
---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4]
0 PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local}
“TimeForceSeries.dat” PrescribedForcesFile - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ)

Dear @Kaan.Akkas,

The structural control (StC) submodel of ServoDyn supports both TMD and TLCD actuators. The type of actuator is selected via input StC_DOF_MODE. In your example, StC_DOF_MODE = 2, which represents a 2-DOF omnidirectional TMD in the horizontal (XY) plane.

Best regards,

Thank you, I get it. I have other questions;
1- Where do default TMD parameters (stiffness, mass, damping coefficient) come from? Is there a way to calculate these parameters for our purpose?
2- What do stop spring stiffness and stop spring damping mean?
3- Which equation or equations does openfast use to calculate side-to-side and fore-aft displacements?
Best regards,

Dear @Kaan.Akkas,

Here are my answers:

  1. The structural control (StC) submodel of ServoDyn does not have default TMD parameters. If you are asking how to design a TMD for optimal response, I suggest reviewing the literature, e.g., including publications by Prof. Matt Lackner of UMass et al.
  2. The stop spring stiffness and damping refer to a linear spring and damping that only kicks in after the displacement passes a threshold (i.e., the positive or negative stop position). See the StC theory basis documentation for more information: 4.2.12.2. Theory Manual for the Tuned Mass Damper Module in OpenFAST — OpenFAST v3.3.0 documentation.
  3. Please see the ElastoDyn User’s Guide and Theory Manual for information on the theory basis used by the ElastoDyn module of OpenFAST: 4.2.7. ElastoDyn Users Guide and Theory Manual — OpenFAST v3.3.0 documentation.

Best regards,

I want to make my problem simpler. Therefore, I want to work with “StC_DOF_MODE = 1”. But I am getting this error;


I just want to analyze fore-aft in the x-direction. So, I want to use TMD in the x-direction. Why this error occur?
Best regards

Dear @Kaan.Akkas,

From the warnings and final error message, I would guess your OpenFAST model has gone numerically unstable. Was your OpenFAST model stable before you enabled the StC? If so, are the properties of the TMD you are specifying in the StC model “reasonable”?

Best regards,

Dear @Jason.Jonkman ,
I would like to know a few things related to the inputs in StC file. I am trying to reproduce the results from: Bilinear tuned mass damper for spar-type floating wind turbines - ScienceDirect, which is a case of TMD in SPAR OC3 Hywind.
I was trying with the following TMD parameters: mass = 100000kg, k = 4810N/m, C = 8773 Ns/m, and TMD displacement in x= -4 to 4m with TMD location = 100m. (files are attached).
I would like to understand about the different TMD DOFs used in the input file and also can I add one more TMD in the same SPAR, if so, then how it could be?

Please help me out.

sevodyn

Dear @Arya.Thomas,

Your input file looks fine, except that you have the sign wrong on StC_P_Z, which should be -100 m to place the TMD deep down in the spar. I also see that you specified stop positions, but no stop spring or damping constants.

To add additional TMDs beyond the omni-directional XY TMD you already added, increase NumSStC beyond 1 in ServoDyn and specify additional SStCfiles.

Best regards,

Thanks Jason for the insights and help.

Also, I am getting confused with StC_DOF_MODE. Should I go with 1 or 2 ? I am not understanding the omni directional StC.
And if I have to use 2, should i be specifying StC_Y_PSP, StC_Y_NSP and stop stiffness and damping in Y? And for StC_DOF_MODE =1 , what all changes should I be making?

Regards,

Dear @Arya.Thomas,

StC_DOF_MODE = 1 allows you to model distinct TMDs in each direction (X, Y, and/or Z), each with one DOF. StC_DOF_MODE = 2 allows you to model one TMD with two DOFs, supporting movement in the XY cross plane (omni directional). The step positions and stifffness/damping terms can be used for both distinct and omni-directional TMDs.

Best regards,

1 Like