Problems when using TLCD in NREL5MW_OC4

Version 4.0.2
I try to use TLCD in NREL_5MW+OC4 float wind turbine, but i face several problems
The outside condition is free damper: [8deg PtfmPitch]

  1. i try to install a X_TLCD to the NumNStC, and this is what i write in the TLCD.dat

---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to]
0 StC_P_X - At rest X position of StC (m)
0 StC_P_Y - At rest Y position of StC (m)
0 StC_P_Z - At rest Z position of StC (m)

---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
18.8200 L_X - X TLCD total length (m)
16.0000 B_X - X TLCD horizontal length (m)
3.6600 area_X - X TLCD cross-sectional area of vertical column (m^2)
4.4103 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
17.0000 headLossCoeff_X - X TLCD head loss coeff (-)
1025 rho_X - X TLCD liquid density (kg/m^3)
0.0000 L_Y - Y TLCD total length (m)
0.0000 B_Y - Y TLCD horizontal length (m)
0.0000 area_Y - Y TLCD cross-sectional area of vertical column (m^2)
0.0000 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
0.0000 headLossCoeff_Y - Y TLCD head loss coeff (-)
1025 rho_Y - Y TLCD liquid density (kg/m^3)

But this give me an error like this:

The BEM solution is being turned off due to low TSR. (TSR = 0). This warning will not be
repeated though the condition may persist. (See GeomPhi output channel.)
NaN detected at time 1.00000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 3 in MoorDyn.

FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates: NaN state detected.
MD_UpdateStates: NaN state detected.

OpenFAST encountered an error at simulation time 2.00000E-02 of 1200 seconds.
Simulation error level: FATAL ERROR

Aborting OpenFAST.

2. How to balance the add-mass by reduce the water?

I try to keep the average of PtfmHeave alomst the same to the origin data, so i try to calculate the mass of the TLCD by the following function:


the origin water level: -6.17m
the water filled = -6.17 - [L-B+(B/area_ratio)](area_X)/(3PI*(6-0.06)^2)

And if the TLCD is the same in X and Y direction then i think that the water filled is


-6.17 - 2*[L-B+(B/area_ratio)](area_X)/(3PI*(6-0.06)^2)

In another example of A TLCD installed to NumSStC

---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to]
0 StC_P_X - At rest X position of StC (m)
0 StC_P_Y - At rest Y position of StC (m)
-19 StC_P_Z - At rest Z position of StC (m)

---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
14.5000 L_X - X TLCD total length (m)
5.5000 B_X - X TLCD horizontal length (m)
0.7854 area_X - X TLCD cross-sectional area of vertical column (m^2)
8.7971 area_ratio_X - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
2.0000 headLossCoeff_X - X TLCD head loss coeff (-)
1025 rho_X - X TLCD liquid density (kg/m^3)
14.5000 L_Y - Y TLCD total length (m)
5.5000 B_Y - Y TLCD horizontal length (m)
0.7854 area_Y - Y TLCD cross-sectional area of vertical column (m^2)
8.7971 area_ratio_Y - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
2.0000 headLossCoeff_Y - Y TLCD head loss coeff (-)
1025 rho_Y - Y TLCD liquid density (kg/m^3)

By the function, i get the water filled= -6.215465908

But The .outb result of PtfmHeave was different from what I had expected.

This is the two main problems i reached in the test, beside this, Are there any suggestion or good TLCD configuration parameters that can be used to suppress PtfmPitch? The effects of the several TLCDs I tested were not satisfactory.

Dear @Wenbo.Zhong,

If I understand correctly, you are adding a TLCD to the nacelle by setting NumNStC = 1 in ServoDyn and using StC_DOF_MODE = 3 in the Structural Control (StC) submodel; is that correct?

Can you clarify the equation you are using to keep the PtfmHeave unchanged; I’m not following your math. What is the TLDC mass you are adding to the nacelle in both cases?

Best regards,

Dear @Jason.Jonkman

In the first quesiton, yes, i add a X direction TLCD to nacelle by setting
NumNStC = 1
StC_DOF_MODE = 3

And, the TLCD mass as i thought is calculated by
m_TLCD_x = rho_x * area_X * [ L_X - B_X + B_X / area_ratio_X ]
Then I hope to keep PtfmHeave average unchanged by reducing the water volume in the upper pressure water tanks within the three side columns.
A_upper_water_tank = PI * r^2 = PI * (6-0.06)^2
delta_h = ( m_TLCD_x / rho_x ) / ( 3 * A_upper_water_tank )
As the origin water filled in the upper water tanks is at -6.17m
After i added the TLCD, i think that i should change it to:
-6.17m - delta_h

In the second question, i added a TLCD which have the same parameter in X and Y direction to the platform by
NumSStC = 1
And the mass of TLCD is calculated by
m_TLCD = m_TLCD_x + m_TLCD_y
And the water filled level is
delta_h = ( m_TLCD / rho_x ) / ( 3 * A_upper_water_tank )
-6.17m - delta_h

Best regards,

Dear @Wenbo.Zhong,

Thanks for clarifying. I believe I now understand your approach.

In the first case, you’ve moved a lot of water ballast from deep within the floater to the nacelle. I suspect this is making your model physically and/or numerically unstable.

In the second case, you’ve moved the fixed water ballast to movable water ballast within the TLCD. As such, I suspect that as the floater pitches (due to the overhanging weight of the rotor-nacelle assembly), the TLCD ballast is also shifting, which causes more pitching, and some coupling to heave.

Best regards,

Dear @Jason.Jonkman,

Regarding the second question, I think what you said makes sense. And I adjusted the results based on -6.17m - delta_h to keep the average value of PtfmHeave almost unchanged.

But for the first question, i think there maybe some bugs.

if i use the following parameters:

---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
    18.8200   L_X             - X TLCD total length (m)
    16.0000   B_X             - X TLCD horizontal length (m)
     2.6600   area_X          - X TLCD cross-sectional area of vertical column (m^2)
     3.4103   area_ratio_X    - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
    17.0000   headLossCoeff_X - X TLCD head loss coeff (-)
       1025   rho_X           - X TLCD liquid density (kg/m^3)
     0.0000   L_Y             - Y TLCD total length (m)
     0.0000   B_Y             - Y TLCD horizontal length (m)
     0.0000   area_Y          - Y TLCD cross-sectional area of vertical column (m^2)
     0.0000   area_ratio_Y    - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
     0.0000   headLossCoeff_Y - Y TLCD head loss coeff (-)
       1025   rho_Y           - Y TLCD liquid density (kg/m^3)

it will return error like this:

 Running HydroDyn.
 Reading in WAMIT output with root name "D:\MYwork\OpenFAST\5MW_Baseline\HydroData\marin_semi".
 Computing radiation impulse response functions and wave diffraction forces.
 Calculating second order difference-frequency force using the full quadratic transfer function.
 Calculating second order sum-frequency force using the full quadratic transfer function.
 Running MoorDyn (v2.2.2, 2024-01-16).
   This is MoorDyn v2, with significant input file changes from v1.

**************************************************************************************************
MoorDyn

Copyright (C) 2025 National Renewable Energy Laboratory
Copyright (C) 2025 Envision Energy USA LTD

This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
See the "LICENSE" file distributed with this software for details.
**************************************************************************************************

   Parsing MoorDyn input file: D:\MYwork\OpenFAST\5.1FD\Baseline\MoorDyn.dat
   Created mooring system:  3 lines, 6 points, 0 rods, 0 bodies.
   Catenary solve of Line 1 unsuccessful. Initializing as linear.
   Catenary solve of Line 2 unsuccessful. Initializing as linear.
   Catenary solve of Line 3 unsuccessful. Initializing as linear.
   Finalizing initial conditions using dynamic relaxation.
   t=46.4  FairTen 1: 1.11571E+06, 1.11715E+06, 1.11826E+06
   Fairlead tensions converged to 1% after 46.4 seconds.
   Fairlead tension: 1.11571E+06
   Fairlead forces: 4.64209E+05, 7.95401E+05, -6.29806E+05
   Fairlead tension: 1.12108E+06
   Fairlead forces: -9.18577E+05, 0, -6.42687E+05
   Fairlead tension: 1.11571E+06
   Fairlead forces: 4.64209E+05, -7.95401E+05, -6.29806E+05
   MoorDyn initialization completed.
 Running ServoDyn.
 Running StrucCtrl.
 Running ServoDyn Interface for Bladed Controllers (using Intel Visual Fortran for Windows).
Using legacy Bladed DLL interface.

FAST_InitializeAll:ED_Init:ED_ReadInput:ReadBladeInputs:ReadBladeFile:The ElastoDyn Blade file,
D:\MYwork\OpenFAST\5MW_Baseline\NRELOffshrBsline5MW_Blade.dat, DISTRIBUTED BLADE PROPERTIES table
contains the PitchAxis column.  This column is unused and will be removed in future releases
FAST_InitializeAll:SeaSt_Init:SeaStateInput_ProcessInitData:WvHiCOff adjusted to 2.61799E-03
rad/s, based on WaveDT.

 Time: 0 of 1200 seconds.
The BEM solution is being turned off due to low TSR.  (TSR = 0). This warning will not be
repeated though the condition may persist. (See GeomPhi output channel.)
NaN detected at time 1.00000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.00000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.05000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.10000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.15000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.20000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.25000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.30000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.35000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.40000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.45000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.50000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.55000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.60000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.65000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.70000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.75000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.80000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.85000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.90000E-02 in Line 3 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 1 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 2 in MoorDyn.
NaN detected at time 1.95000E-02 in Line 3 in MoorDyn.

FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates: NaN state detected.
 MD_UpdateStates: NaN state detected.


 OpenFAST encountered an error at simulation time 2.00000E-02 of 1200 seconds.
 Simulation error level: FATAL ERROR

 Aborting OpenFAST.

But If i use the following parameters:

---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
    18.8200   L_X             - X TLCD total length (m)
    16.0000   B_X             - X TLCD horizontal length (m)
     2.6600   area_X          - X TLCD cross-sectional area of vertical column (m^2)
     3.4103   area_ratio_X    - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
    17.0000   headLossCoeff_X - X TLCD head loss coeff (-)
       1025   rho_X           - X TLCD liquid density (kg/m^3)
    18.8200   L_Y             - Y TLCD total length (m)
    16.0000   B_Y             - Y TLCD horizontal length (m)
     0.0001   area_Y          - Y TLCD cross-sectional area of vertical column (m^2)
     1.0000   area_ratio_Y    - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
    17.0000   headLossCoeff_Y - Y TLCD head loss coeff (-)
       1025   rho_Y           - Y TLCD liquid density (kg/m^3)

You can see that area_Y = 0.0001 which add a very little mass to Y_TLCD,
then OpenFAST can run smoothly to the end

I don’t fully understand the specific code, but I suspect that there is a lack of a logical judgment here: the logic for enabling the TLCD in the X or Y direction, or in both X and Y directions.

Beside these, in the OutListParameters.xlsx. I don’t find the parameters related to TLCD
In my concern, i think that this two parameters can indicate the operating status of the TLCD

image
(openfast.readthedocs.io_4.16.3)

Dear @Wenbo.Zhong,

Interesting; I was not previously aware of these issues with StC. I’ve now posted this issue on OpenFAST GitHub: Bug report: Lack of Data Sanity Checks and Write Outputs for TLCDs in Structural Control (StC) · Issue #2896 · OpenFAST/openfast · GitHub.

Best regards.

Dear Dr.Jonkman,

I am currently running free-decay simulations of the IEA 22-MW wind turbine with a TLCD included in the model. However, I have encountered some issues and would appreciate your advice.The parameters of the IEA 22-MW wind turbine were kept unchanged from the original model.

1. When performing free-decay simulations in pitch (with the platform heave DOF disabled), I found that the response amplitude gradually increases as the TLCD mass ratio and liquid-column height increase. In addition, compared with the case without the TLCD, no clear reduction in the platform motion is observed. When the mass ratio and liquid-column height are both set to zero, the response gradually approaches that of the platform without the TLCD. Could you please advise what might be causing this behavior ?

Variation with the TLCD mass ratio (“TLCD-2” denotes a mass ratio of 2% ).

Variation with the liquid-column height (“TLCD-9m” denotes a liquid-column height of 9 m).

2. Initially, I suspected that this behavior might be related to the length of the horizontal section of the TLCD. Therefore, I carried out the following tests. While keeping the TLCD period ratio and mass ratio approximately the same, I varied the length of the horizontal section. The parameters are listed below.

Summary of TLCD parameters

I found that as the length of the horizontal section of the TLCD is gradually reduced, the response amplitude also decreases. However, it still does not become smaller than the response of the platform without the TLCD.

Variation with the length of the TLCD horizontal section (“TLCD-10” denotes a horizontal- section length of 10 m).

Based on the issues described above, I would like to ask how I could achieve the expected vibration-reduction effect in the platform free-decay response after adding the TLCD. I have attached my simulation files below, and I would greatly appreciate it if you could take a look and let me know whether there may be any issues with my model settings. I would also like to ask whether there are any example cases or reference files in which the expected vibration-reduction performance of a TLCD is successfully achieved.

The following are the simulation files for the case with a TLCD mass ratio of 5%:

------- ELASTODYN v1.03.* INPUT FILE -------------------------------------------
Generated with AeroElasticSE FAST driver
---------------------- SIMULATION CONTROL --------------------------------------
False                  Echo        - Echo input data to "<RootName>.ech" (flag)
3                      Method      - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)
Default                DT          - Integration time step (s)
---------------------- 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)
False                  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)
True                   PtfmPDOF    - Platform pitch tilt rotation DOF (flag)
False                  PtfmYDOF    - Platform yaw rotation DOF (flag)
---------------------- INITIAL CONDITIONS --------------------------------------
0.0                    OoPDefl     - Initial out-of-plane blade-tip displacement (meters)
0.0                    IPDefl      - Initial in-plane blade-tip deflection (meters)
0.0                    BlPitch(1)  - Blade 1 initial pitch (degrees)
0.0                    BlPitch(2)  - Blade 2 initial pitch (degrees)
0.0                    BlPitch(3)  - Blade 3 initial pitch (degrees) [unused for 2 blades]
0.0                    TeetDefl    - Initial or fixed teeter angle (degrees) [unused for 3 blades]
0.0                    Azimuth     - Initial azimuth angle for blade 1 (degrees)
0.0                    RotSpeed    - Initial or fixed rotor speed (rpm)
0.0                    NacYaw      - Initial or fixed nacelle-yaw angle (degrees)
0.0                    TTDspFA     - Initial fore-aft tower-top displacement (meters)
0.0                    TTDspSS     - Initial side-to-side tower-top displacement (meters)
0.0                    PtfmSurge   - Initial or fixed horizontal surge translational displacement of platform (meters)
0.0                    PtfmSway    - Initial or fixed horizontal sway translational displacement of platform (meters)
0.0                    PtfmHeave   - Initial or fixed vertical heave translational displacement of platform (meters)
0.0                    PtfmRoll    - Initial or fixed roll tilt rotational displacement of platform (degrees)
8.0                    PtfmPitch   - Initial or fixed pitch tilt rotational displacement of platform (degrees)
0.0                    PtfmYaw     - Initial or fixed yaw rotational displacement of platform (degrees)
---------------------- TURBINE CONFIGURATION -----------------------------------
3                      NumBl       - Number of blades (-)
142.0                  TipRad      - The distance from the rotor apex to the blade tip (meters)
4.2                    HubRad      - The distance from the rotor apex to the blade root (meters)
-4.0                   PreCone(1)  - Blade 1 cone angle (degrees)
-4.0                   PreCone(2)  - Blade 2 cone angle (degrees)
-4.0                   PreCone(3)  - Blade 3 cone angle (degrees) [unused for 2 blades]
0.0                    HubCM       - Distance from rotor apex to hub mass [positive downwind] (meters)
0.0                    UndSling    - Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades]
0.0                    Delta3      - Delta-3 angle for teetering rotors (degrees) [unused for 3 blades]
0.0                    AzimB1Up    - Azimuth value to use for I/O when blade 1 points up (degrees)
-14.07711591388923     OverHang    - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters)
0.0                    ShftGagL    - Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters)
-6.000000000000001     ShftTilt    - Rotor shaft tilt angle (degrees)
-5.84704276641288      NacCMxn     - Downwind distance from the tower-top to the nacelle CM (meters)
-0.1665313908538482    NacCMyn     - Lateral  distance from the tower-top to the nacelle CM (meters)
4.2647901842947595     NacCMzn     - Vertical distance from the tower-top to the nacelle CM (meters)
0.0                    NcIMUxn     - Downwind distance from the tower-top to the nacelle IMU (meters)
0.0                    NcIMUyn     - Lateral  distance from the tower-top to the nacelle IMU (meters)
0.0                    NcIMUzn     - Vertical distance from the tower-top to the nacelle IMU (meters)
4.142540706280534      Twr2Shft    - Vertical distance from the tower-top to the rotor shaft (meters)
164.386                TowerHt     - Height of tower relative to ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] (meters)
15.0                   TowerBsHt   - Height of tower base relative to ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] (meters)
0.496                  PtfmCMxt    - Downwind distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform CM (meters)
0                      PtfmCMyt    - Lateral distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform CM (meters)
-15.5                  PtfmCMzt    - Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform CM (meters)
0.0                    PtfmRefzt   - Vertical distance from the ground level [onshore], MSL [offshore wind or floating MHK], or seabed [fixed MHK] to the platform reference point (meters)
---------------------- MASS AND INERTIA ----------------------------------------
0.0                    TipMass(1)  - Tip-brake mass, blade 1 (kg)
0.0                    TipMass(2)  - Tip-brake mass, blade 2 (kg)
0.0                    TipMass(3)  - Tip-brake mass, blade 3 (kg) [unused for 2 blades]
120447.70224890654     HubMass     - Hub mass (kg)
1882498.8832803261     HubIner     - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2)
3117597.5395135996     GenIner     - Generator inertia about HSS (kg m^2)
821239.8004933242      NacMass     - Nacelle mass (kg)
52470672.30243715      NacYIner    - Nacelle inertia about yaw axis (kg m^2)
28740.99049474962      YawBrMass   - Yaw bearing mass (kg)
21335873.81819036      PtfmMass    - Platform mass (kg)
23047439074.835854     PtfmRIner   - Platform inertia for roll tilt rotation about the platform CM (kg m^2)
23057720276.500664     PtfmPIner   - Platform inertia for pitch tilt rotation about the platform CM (kg m^2)
43304880891.6618       PtfmYIner   - Platform inertia for yaw rotation about the platform CM (kg m^2)
0.0                    PtfmXYIner  - Platform xy moment of inertia about the platform CM (=-int(xydm)) (kg m^2)
0.0                    PtfmYZIner  - Platform yz moment of inertia about the platform CM (=-int(yzdm)) (kg m^2)
0.0                    PtfmXZIner  - Platform xz moment of inertia about the platform CM (=-int(xzdm)) (kg m^2)
---------------------- BLADE ---------------------------------------------------
50                     BldNodes    - Number of blade nodes (per blade) used for analysis (-)
"IEA-22-280-RWT/IEA-22-280-RWT_ElastoDyn_blade.dat" BldFile1    - Name of file containing properties for blade 1 (quoted string)
"IEA-22-280-RWT/IEA-22-280-RWT_ElastoDyn_blade.dat" BldFile2    - Name of file containing properties for blade 2 (quoted string)
"IEA-22-280-RWT/IEA-22-280-RWT_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.0                    TeetDmpP    - Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1]
0.0                    TeetDmp     - Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1]
0.0                    TeetCDmp    - Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1]
0.0                    TeetSStP    - Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0.0                    TeetHStP    - Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0.0                    TeetSSSp    - Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
0.0                    TeetHSSp    - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
---------------------- YAW-FRICTION --------------------------------------------
          0   YawFrctMod  - Yaw-friction model {0: none, 1: friction independent of yaw-bearing force and bending moment, 2: friction with Coulomb terms depending on yaw-bearing force and bending moment, 3: user defined model} (switch)
        300   M_CSmax     - Maximum static Coulomb friction torque (N-m) [M_CSmax when YawFrctMod=1; |Fz|*M_CSmax when YawFrctMod=2 and Fz<0]
          0   M_FCSmax    - Maximum static Coulomb friction torque proportional to yaw bearing shear force (N-m) [sqrt(Fx^2+Fy^2)*M_FCSmax; only used when YawFrctMod=2]
          0   M_MCSmax    - Maximum static Coulomb friction torque proportional to yaw bearing bending moment (N-m) [sqrt(Mx^2+My^2)*M_MCSmax; only used when YawFrctMod=2]
         40   M_CD        - Dynamic Coulomb friction moment (N-m) [M_CD when YawFrctMod=1; |Fz|*M_CD when YawFrctMod=2 and Fz<0]
          0   M_FCD       - Dynamic Coulomb friction moment proportional to yaw bearing shear force (N-m) [sqrt(Fx^2+Fy^2)*M_FCD; only used when YawFrctMod=2]
          0   M_MCD       - Dynamic Coulomb friction moment proportional to yaw bearing bending moment (N-m) [sqrt(Mx^2+My^2)*M_MCD; only used when YawFrctMod=2]
          0   sig_v       - Linear viscous friction coefficient (N-m/(rad/s))
          0   sig_v2      - Quadratic viscous friction coefficient (N-m/(rad/s)^2)
          0   OmgCut      - Yaw angular velocity cutoff below which viscous friction is linearized (rad/s)
---------------------- DRIVETRAIN ----------------------------------------------
100.0                  GBoxEff     - Gearbox efficiency (%)
1.0                    GBRatio     - Gearbox ratio (-)
1E+12                  DTTorSpr    - Drivetrain torsional spring (N-m/rad)
1E+9                   DTTorDmp    - Drivetrain torsional damper (N-m/(rad/s))
---------------------- FURLING -------------------------------------------------
False                  Furling     - Read in additional model properties for furling turbine (flag) [must currently be FALSE)
"none"                 FurlFile    - Name of file containing furling properties (quoted string) [unused when Furling=False]
---------------------- TOWER ---------------------------------------------------
20                     TwrNodes    - Number of tower nodes used for analysis (-)
"IEA-22-280-RWT-Semi_ElastoDyn_tower.dat" TwrFile     - Name of file containing tower properties (quoted string)
---------------------- OUTPUT --------------------------------------------------
False                  SumPrint    - Print summary data to "<RootName>.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.0                    TStart      - Time to begin tabular output (s) (currently unused)
1                      DecFact     - Decimation factor for tabular output {1: output every time step} (-) (currently unused)
9                      NTwGages    - Number of tower nodes that have strain gages for output [0 to 9] (-)
2, 4, 6, 8, 10, 12, 14, 16, 18 TwrGagNd    - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]
9                      NBlGages    - Number of blade nodes that have strain gages for output [0 to 9] (-)
6, 11, 16, 21, 26, 31, 36, 41, 46 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, (-)
"PtfmHeave"
"PtfmPitch"
"PtfmRoll"
"PtfmSurge"
"PtfmSway"
"PtfmYaw"
END of input file (the word "END" must appear in the first 3 columns of this last OutList line)
---------------------------------------------------------------------------------------

------- 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 <RootName>.ech (flag)
---------------------- StC DEGREES OF FREEDOM ----------------------------------
          3   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; 5: Force determined by external DLL}
false         StC_X_DOF    - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1]
false         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]
          0   StC_P_X      - At rest X position of StC (m)
          0   StC_P_Y      - At rest Y position of StC (m)
         -17  StC_P_Z      - At rest Z position of StC (m)
---------------------- StC INITIAL CONDITIONS --------------------------------- [used only when StC_DOF_MODE=1 or 2]
          0   StC_X_DSP    - StC X initial displacement (m) [relative to at rest position]
          0   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]
"none"        StC_Z_PreLd  - StC Z pre-load (N) {"gravity" to offset for gravity load; "none" or 0 to turn off} [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2]
          0   StC_X_PSP    - Positive stop position (maximum X mass displacement) (m)
          0   StC_X_NSP    - Negative stop position (minimum X mass displacement) (m)
          0   StC_Y_PSP    - Positive stop position (maximum Y mass displacement) (m)
          0   StC_Y_NSP    - Negative stop position (minimum Y mass displacement) (m)
          0   StC_Z_PSP    - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
          0   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]
          0   StC_X_M      - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2]
          0   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]
          0   StC_XY_M     - StC XY mass (kg) [used only when StC_DOF_MODE=2]
          0   StC_X_K      - StC X stiffness (N/m)
          0   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]
          0   StC_X_C      - StC X damping (N/(m/s))
          0   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]
          0   StC_X_KS     - Stop spring X stiffness (N/m)
          0   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]
          0   StC_X_CS     - Stop spring X damping (N/(m/s))
          0   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; 4: Active Control Mode through Simulink (not available); 5: Active Control Mode through Bladed interface}
          0   StC_CChan     - Control channel group (1:10) for stiffness and damping (StC_[XYZ]_K, StC_[XYZ]_C, and StC_[XYZ]_Brake) (specify additional channels for blade instances of StC active control -- one channel per blade) [used only when StC_DOF_MODE=1 or 2, and StC_CMODE=4 or 5]
          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]
   131.5      L_X             - X TLCD total length (m)
   97.5       B_X             - X TLCD horizontal length (m)
   16.2       area_X          - X TLCD cross-sectional area of vertical column (m^2)
   3.22       area_ratio_X    - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
   40         headLossCoeff_X - X TLCD head loss coeff (-)
     1025     rho_X           - X TLCD liquid density (kg/m^3)
   112.58     L_Y             - Y TLCD total length (m)
   112.58     B_Y             - Y TLCD horizontal length (m)
   0.000001   area_Y          - Y TLCD cross-sectional area of vertical column (m^2)
   3.22       area_ratio_Y    - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
   0.000001   headLossCoeff_Y - Y TLCD head loss coeff (-)
     0.00001  rho_Y           - Y TLCD liquid density (kg/m^3)
---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4]
          1   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)
-------------------------------------------------------------------------------


Kind regards

Tianyun Zhan

Dear @Lixian.Zhang,

To be honest, I don’t have much experience with TLCDs or their implementation in OpenFAST. Perhaps others can comment.

A few comments and questions:

  • By mass ratio, do mean the ratio of the TLCD mass to the mass of the FOWT whose motion you are trying to damp? What FOWT mass are you comparing to (the full system mass)?
  • By period ratio, are you comparing the natural period of the TLCD motion to that of the FOWT pitch mode? How are computing the TLCD period?
  • Enabling only the pitch motion is simple, but may not be physically meaningful given that I suspect the center of rotation of the FOWT you are simulating is not naturally around the platform reference point of (0,0,0).
  • Are you results numerically converged; i.e., does reducing the time step or adding a correction step change the solution?
  • Which version of OpenFAST are you using?

Best regards,

Dear Dr.Jonkman,

Thank you very much for your reply! I would like to respond to the points you raised as follows:

  1. In my calculations, the mass ratio is defined as the TLCD mass divided by the floating-platform mass. In the subsequent study on the effect of the horizontal-section length, the TLCD masses are close to each other, so the corresponding mass ratios are also approximately the same.
  2. As you pointed out, the period ratio is defined as the natural period of the TLCD divided by the natural period of the wind turbine in pitch. The natural frequency of the TLCD was calculated using the following equation, where α denotes the area ratio, defined as the cross-sectional area of the vertical section divided by that of the horizontal section.
  3. Based on my ****preliminary checks, the wind-turbine model appears to be converged in terms of the relevant response metrics. The free-decay response shown in the figures also appear to be converged at this stage. The time step I am currently using is 0.01 s, but I have not yet tested a smaller time step for further verification.
  4. I am using OpenFAST version 4.1.2.

At present, only the platform pitch DOF is enabled, while the other DOFs are disabled to avoid their influence. When the natural period of the TLCD is tuned to be consistent with the platform pitch natural period, I would normally expect the free-decay response to be reduced to some extent due to the TLCD. However, this reduction was not observed in my simulations.

Best regards,

Dear @Lixian.Zhang,

I suggest computing the PSDs of both the controlled and uncontrolled responses.

In addition, could you share your ServoDyn input file ?

Best Regards,

Riad

Dear Riad.Elhamoud,

It is my pleasure. Below is my ServoDyn input file for your reference. I would appreciate it if you could take a look:

------- SERVODYN v1.05.* INPUT FILE --------------------------------------------
Generated with AeroElasticSE FAST driver
---------------------- SIMULATION CONTROL --------------------------------------
False                  Echo        - Echo input data to <RootName>.ech (flag)
default                DT          - Communication interval for controllers (s) (or "default")
---------------------- PITCH CONTROL -------------------------------------------
0                      PCMode      - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0.0                    TPCOn       - Time to enable active pitch control (s) [unused when PCMode=0]
99999.0                TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s)
99999.0                TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s)
99999.0                TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]
2.0                    PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
2.0                    PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
2.0                    PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
90.0                   BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
90.0                   BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
90.0                   BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
---------------------- GENERATOR AND TORQUE CONTROL ----------------------------
0                      VSContrl    - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
1                      GenModel    - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]
95.4                   GenEff      - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%)
True                   GenTiStr    - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag)
True                   GenTiStp    - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag)
99999.0                SpdGenOn    - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]
0.0                    TimGenOn    - Time to turn on the generator for a startup (s) [used only when GenTiStr=True]
99999.0                TimGenOf    - Time to turn off the generator (s) [used only when GenTiStp=True]
---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL --------------------
7.061131867192265      VS_RtGnSp   - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]
31219733.35544         VS_RtTq     - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1]
626153.114868262       VS_Rgn2K    - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1]
2.0                    VS_SlPc     - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1]
---------------------- SIMPLE INDUCTION GENERATOR ------------------------------
99999.0                SIG_SlPc    - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]
99999.0                SIG_SySp    - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]
99999.0                SIG_RtTq    - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]
99999.0                SIG_PORt    - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]
---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR -----------------
99999.0                TEC_Freq    - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]
0                      TEC_NPol    - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_SRes    - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_RRes    - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_VLL     - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_SLR     - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_RLR     - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0                TEC_MR      - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2]
---------------------- HIGH-SPEED SHAFT BRAKE ----------------------------------
0                      HSSBrMode   - HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
99999.0                THSSBrDp    - Time to initiate deployment of the HSS brake (s)
99999.0                HSSBrDT     - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1]
99999.0                HSSBrTqF    - Fully deployed HSS-brake torque (N-m)
---------------------- NACELLE-YAW CONTROL -------------------------------------
0                      YCMode      - Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
99999.0                TYCOn       - Time to enable active yaw control (s) [unused when YCMode=0]
0.0                    YawNeut     - Neutral yaw position--yaw spring force is zero at this yaw (degrees)
8477679091.860771      YawSpr      - Nacelle-yaw spring constant (N-m/rad)
30405475.567696486     YawDamp     - Nacelle-yaw damping constant (N-m/(rad/s))
99999.0                TYawManS    - Time to start override yaw maneuver and end standard yaw control (s)
0.25                   YawManRat   - Yaw maneuver rate (in absolute value) (deg/s)
0.0                    NacYawF     - Final yaw angle for override yaw maneuvers (degrees)
---------------------- AERODYNAMIC FLOW CONTROL --------------------------------
0                      AfCmode     - Airfoil control mode {0: none, 1: cosine wave cycle, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0.0                    AfC_Mean    - Mean level for cosine cycling or steady value (-) [used only with AfCmode==1]
0.0                    AfC_Amp     - Amplitude for for cosine cycling of flap signal (-) [used only with AfCmode==1]
0.0                    AfC_phase   - Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1]
---------------------- STRUCTURAL CONTROL --------------------------------------
 0                     NumBStC     - Number of blade structural controllers (integer)
"unused"               BStCfiles   - Name of the files for blade structural controllers (quoted strings) [unused when NumBStC==0]
0                      NumNStC     - Number of nacelle structural controllers (integer)
"unused"               NStCfiles   - Name of the files for nacelle structural controllers (quoted strings) [unused when NumNStC==0]
0                      NumTStC     - Number of tower structural controllers (integer)
"unused"               TStCfiles   - Name of the files for tower structural controllers (quoted strings) [unused when NumTStC==0]
1                      NumSStC     - Number of substructure structural controllers (integer)
"StC-TLCD.dat"         SStCfiles   - Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0]
---------------------- CABLE CONTROL -------------------------------------------
0                      CCmode      - Cable control mode {0: none, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
"libdiscon.dll"  DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]
"IEA-22-280-RWT-Semi_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]
99999.0                BPCutoff    - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]
0.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.0                    Ptch_SetPnt - Record  5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]
0.0                    Ptch_Min    - Record  6: Minimum pitch angle (deg) [used only with Bladed Interface]
0.0                    Ptch_Max    - Record  7: Maximum pitch angle (deg) [used only with Bladed Interface]
0.0                    PtchRate_Min - Record  8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface]
0.0                    PtchRate_Max - Record  9: Maximum pitch rate  (deg/s) [used only with Bladed Interface]
0.0                    Gain_OM     - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface]
0.0                    GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface]
0.0                    GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface]
0.0                    GenSpd_Dem  - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface]
0.0                    GenTrq_Dem  - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface]
0.0                    GenPwr_Dem  - Record 13: Demanded power (W) [used only with Bladed Interface]
---------------------- BLADED INTERFACE TORQUE-SPEED LOOK-UP TABLE -------------
0                      DLL_NumTrq  - Record 26: No. of points in torque-speed look-up table {0 = none and use the optimal mode parameters; nonzero = ignore the optimal mode PARAMETERs by setting Record 16 to 0.0} (-) [used only with Bladed Interface]
GenSpd_TLU            	GenTrq_TLU            
(rpm)                 	(Nm)                  
---------------------- OUTPUT --------------------------------------------------
False                  SumPrint    - Print summary data to <RootName>.sum (flag) (currently unused)
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.0                    TStart      - Time to begin tabular output (s) (currently unused)
              OutList      - The next line(s) contains a list of output parameters.  See OutListParameters.xlsx for a listing of available output channels, (-)
"GenPwr"
"GenTq"
"BlPitchC1"
"BlPitchC2"
"BlPitchC3"
END of input file (the word "END" must appear in the first 3 columns of this last OutList line)
--------------------------------------------------------------------------------------- 

Best regards,

Dear @Lixian.Zhang

I saw your ServoDyn input file. I found it good and nothing is odd to me.
Rather than the PSD analysis i would do, i think it is better to see whether, in the platform pitch free decay test with no TLCD, the response gradually decreases. In other word, i suggest to run a platform pitch free decay test with no addition of the TLCD.

Hope what i am saying could help.

Best Regards,

Riad

Dear Riad.Elhamoud,

Thank you very much for your reply. I also agree with your point. A couple of days ago, I posted the comparison results for the pitch free-decay response with and without the TLCD. The issue I am currently facing is that, when performing pitch free-decay simulations with the TLCD included, the response does not appear to be reduced compared with the platform without the TLCD. Do you have any insight into why this might be happening?

Free-decay responses under different TLCD mass ratiosSome representative results

Kind regards

Dear @Lixian.Zhang

If the platform pitch response does not die out when performing platform pitch free decay test then there is something odd in the damping more specifically the hydrodynamic damping.

I ran a platform pitch free decay test of the IEA 22 MW mounted on the VolturnUS-S semi-submersible floater using OpenFAST v3.5. I also disabled all DoFs except for platform pitch.

Could you share your HydroDyn input file ?

Best Regards,

Riad

Dear Riad.Elhamoud,

Thank you very much for your reply. I would appreciate it if you could take a look at the following files when you have time.

Below is my HydroDyn input file. The parameters in HydroDyn have not been modified from the original IEA 22-MW model:

------- HydroDyn v2.03.* Input File --------------------------------------------
Generated with AeroElasticSE FAST driver
False                  Echo        - Echo the input file data (flag)
---------------------- FLOATING PLATFORM --------------------------------------- [unused with WaveMod=6]
1                      PotMod      - Potential-flow model {0: none=no potential flow, 1: frequency-to-time-domain transforms based on WAMIT output, 2: fluid-impulse theory (FIT)} (switch)
1                      ExctnMod    - Wave Excitation model {0: None, 1: DFT, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ssexctn INPUT FILE]
             0   ExctnDisp      - Method of computing Wave Excitation {0: use undisplaced position, 1: use displaced position, 2: use low-pass filtered displaced position) [only used when PotMod=1 and ExctnMod>0 and SeaState's WaveMod>0]} (switch)
            10   ExctnCutOff    - Cutoff (corner) frequency of the low-pass time-filtered displaced position (Hz) [>0.0] [used only when PotMod=1, ExctnMod>0, and ExctnDisp=2]) [only used when PotMod=1 and ExctnMod>0 and SeaState's WaveMod>0]} (switch)
             0   PtfmYMod       - Model for large platform yaw offset {0: Static reference yaw offset based on PtfmRefY, 1: dynamic reference yaw offset based on low-pass filtering the PRP yaw motion with cutoff frequency PtfmYCutOff} (switch)
             0   PtfmRefY       - Constant (if PtfmYMod=0) or initial (if PtfmYMod=1) platform reference yaw offset (deg)
          0.01   PtfmYCutOff    - Cutoff frequency for the low-pass filtering of PRP yaw motion when PtfmYMod=1 [unused when PtfmYMod=0] (Hz)
            36   NExctnHdg      - Number of evenly distributed platform yaw/heading angles over the range of [-180, 180) deg for which the wave excitation shall be computed [only used when PtfmYMod=1] (-)
1                      RdtnMod     - Radiation memory-effect model {0: no memory-effect calculation, 1: convolution, 2: state-space} (switch) [only used when PotMod=1; STATE-SPACE REQUIRES *.ss INPUT FILE]
60.0                   RdtnTMax    - Analysis time for wave radiation kernel calculations (sec) [only used when PotMod=1; determines RdtnDOmega=Pi/RdtnTMax in the cosine transform; MAKE SURE THIS IS LONG ENOUGH FOR THE RADIATION IMPULSE RESPONSE FUNCTIONS TO DECAY TO NEAR-ZERO FOR THE GIVEN PLATFORM!]
DEFAULT                RdtnDT      - Time step for wave radiation kernel calculations (sec) [only used when PotMod=1; DT<=RdtnDT<=0.1 recommended; determines RdtnOmegaMax=Pi/RdtnDT in the cosine transform]
1                      NBody       - Number of WAMIT bodies to be used (-) [>=1; only used when PotMod=1. If NBodyMod=1, the WAMIT data contains a vector of size 6*NBody x 1 and matrices of size 6*NBody x 6*NBody; if NBodyMod>1, there are NBody sets of WAMIT data each with a vector of size 6 x 1 and matrices of size 6 x 6]
1                      NBodyMod    - Body coupling model {1: include coupling terms between each body and NBody in HydroDyn equals NBODY in WAMIT, 2: neglect coupling terms between each body and NBODY=1 with XBODY=0 in WAMIT, 3: Neglect coupling terms between each body and NBODY=1 with XBODY=/0 in WAMIT} (switch) [only used when PotMod=1]
"HydroData/semi"       PotFile     - Root name of potential-flow model data; WAMIT output files containing the linear, nondimensionalized, hydrostatic restoring matrix (.hst), frequency-dependent hydrodynamic added mass matrix and damping matrix (.1), and frequency- and direction-dependent wave excitation force vector per unit wave amplitude (.3) (quoted string) [MAKE SURE THE FREQUENCIES INHERENT IN THESE WAMIT FILES SPAN THE PHYSICALLY-SIGNIFICANT RANGE OF FREQUENCIES FOR THE GIVEN PLATFORM; THEY MUST CONTAIN THE ZERO- AND INFINITE-FREQUENCY LIMITS!]
1.0                    WAMITULEN   - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]
0                      PtfmRefxt   - The xt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1]
0                      PtfmRefyt   - The yt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1]
0                      PtfmRefzt   - The zt offset of the body reference point(s) from (0,0,0) (meters) [1 to NBody] [only used when PotMod=1. If NBodyMod=2,PtfmRefzt=0.0]
0                      PtfmRefztRot - The rotation about zt of the body reference frame(s) from xt/yt (degrees) [1 to NBody] [only used when PotMod=1]
24460.244051309317     PtfmVol0    - Displaced volume of water when the platform is in its undisplaced position (m^3) [only used when PotMod=1; USE THE SAME VALUE COMPUTED BY WAMIT AS OUTPUT IN THE .OUT FILE!]
0.0                    PtfmCOBxt   - The xt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
0.0                    PtfmCOByt   - The yt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
---------------------- 2ND-ORDER FLOATING PLATFORM FORCES ---------------------- [unused with WaveMod=0 or 6, or PotMod=0 or 2]
             0   MnDrift        - Mean-drift 2nd-order forces computed                                       {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. If NBody>1, MnDrift  /=8]
             0   NewmanApp      - Mean- and slow-drift 2nd-order forces computed with Newman's approximation {0: None; [7, 8, 9, 10, 11, or 12]: WAMIT file to use} [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero. If NBody>1, NewmanApp/=8. Used only when WaveDirMod=0]
             0   DiffQTF        - Full difference-frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}          [Only one of MnDrift, NewmanApp, or DiffQTF can be non-zero]
             0   SumQTF         - Full summation -frequency 2nd-order forces computed with full QTF          {0: None; [10, 11, or 12]: WAMIT file to use}
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  -------------- [unused with PotMod=0 or 2]
             0   AddF0    - Additional preload (N, N-m)  [If NBodyMod=1, one size 6*NBody x 1 vector; if NBodyMod>1, NBody size 6 x 1 vectors]
             0
             0
             0
             0
             0
             0             0             0             0             0             0   AddCLin  - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)  [If NBodyMod=1, one size 6*NBody x 6*NBody matrix; if NBodyMod>1, NBody size 6 x 6 matrices]
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0   AddBLin  - Additional linear damping(N/(m/s), N/(rad/s), N-m/(m/s), N-m/(rad/s))  [If NBodyMod=1, one size 6*NBody x 6*NBody matrix; if NBodyMod>1, NBody size 6 x 6 matrices]
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0   AddBQuad - Additional quadratic drag(N/(m/s)^2, N/(rad/s)^2, N-m(m/s)^2, N-m/(rad/s)^2)  [If NBodyMod=1, one size 6*NBody x 6*NBody matrix; if NBodyMod>1, NBody size 6 x 6 matrices]
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
             0             0             0             0             0             0
---------------------- STRIP THEORY OPTIONS --------------------------------------
             0   WaveDisp       - Method of computing Wave Kinematics {0: use undisplaced position, 1: use displaced position) } (switch)
             0   AMMod          - Method of computing distributed added-mass force. (0: Only and always on nodes below SWL at the undisplaced position. 2: Up to the instantaneous free surface) [overwrite to 0 when WaveMod = 0 or 6 or when WaveStMod = 0 in SeaState]
---------------------- AXIAL COEFFICIENTS --------------------------------------
2                      NAxCoef     - Number of axial coefficients (-)
 AxCoefID      AxCd        AxCa        AxCp    AxFDMod   AxVnCOff  AxFDLoFSc
    (-)         (-)         (-)         (-)    (-)       (-)        (-)
     1          0.0         0.0         0.0    0        0.00       1.00  ! Unloaded joint
     2          4.0         1.0         1.0    0        0.00       1.00  ! Col btm
---------------------- MEMBER JOINTS -------------------------------------------
20                     NJoints     - Number of joints (-)   [must be exactly 0 or at least 2]
  JointID     Jointxi     Jointyi     Jointzi    JointAxID  JointOvrlp   ! [JointOvrlp= 0: do nothing at joint, 1: eliminate overlaps by calculating super member]
    (-)         (m)         (m)         (m)         (-)      (switch)  
     1          0.0         0.0       -25.0          2          0     ! Btm of center col     
     2          0.0         0.0        15.0          1          0     ! Top of center col     
     3        -65.0         0.0       -25.0          2          0     ! Btm of upwind col     
     4        -65.0         0.0        15.0          1          0     ! Top of upwind col
     5         32.5        56.29165   -25.0          2          0     ! Btm of stbd col
     6         32.5        56.29165    15.0          1          0     ! Top of stbd col
     7         32.5       -56.29165   -25.0          2          0     ! Btm of port col
     8         32.5       -56.29165    15.0          1          0     ! Top of port col     
     9         -6.0         0.0        14.48         1          0     ! Top brace - upwind     
    10        -58.75        0.0        14.48         1          0     ! Top brace - upwind     
    11          3.0         5.196152   14.48         1          0     ! Top brace - stbd     
    12         29.375      50.878992   14.48         1          0     ! Top brace - stbd     
    13          3.0        -5.196152   14.48         1          0     ! Top brace - port     
    14         29.375     -50.878992   14.48         1          0     ! Top brace - port     
    15         -6.0         0.0       -17.0          1          0     ! Pontoon - upwind     
    16        -58.75        0.0       -17.0          1          0     ! Pontoon - upwind     
    17          3.0         5.196152  -17.0          1          0     ! Pontoon - stbd     
    18         29.375      50.878992  -17.0          1          0     ! Pontoon - stbd     
    19          3.0        -5.196152  -17.0          1          0     ! Pontoon - port     
    20         29.375     -50.878992  -17.0          1          0     ! Pontoon - port     
---------------------- CYLINDRICAL MEMBER CROSS-SECTION PROPERTIES -------------------------
10          NPropSetsCyl   - Number of member property sets (-)
 PropSetID     PropD     PropThck  
    (-)         (m)         (m)    
     1         12.0        0.05    ! Center col    
     2         12.5        0.05    ! Upwind col    
     3         12.5        0.05    ! Stbd col    
     4         12.5        0.05    ! Port col    
     5         0.91        0.02    ! Top brace - upwind    
     6         0.91        0.02    ! Top brace - stbd    
     7         0.91        0.02    ! Top brace - port    
     8         10.0        0.04    ! Pontoon - upwind    
     9         10.0        0.04    ! Pontoon - stbd    
    10         10.0        0.04    ! Pontoon - port    
---------------- RECTANGULAR MEMBER CROSS-SECTION PROPERTIES -------------------
             0   NPropSetsRec    - Number of rectangular member property sets (-)
MPropSetID   PropA      PropB    PropThck
   (-)        (m)        (m)       (m)
---------------------- SIMPLE CYLINDRICAL-MEMBER HYDRODYNAMIC COEFFICIENTS (model 1) --------------
  SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCd  SimplAxCdMG  SimplAxCa  SimplAxCaMG  SimplAxCp  SimplAxCpMG    SimplCb    SimplCb
    (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
    0.6         0.6         0.0         0.0         0.0         0.0         0.0         0.0         0.0         0.0         0.0         0.0          1.00        1.00
-------- SIMPLE RECTANGULAR-MEMBER HYDRODYNAMIC COEFFICIENTS (model 1) ---------
     SimplCdA    SimplCdAMG    SimplCdB    SimplCdBMG    SimplCaA    SimplCaAMG    SimplCaB    SimplCaBMG    SimplCp    SimplCpMG   SimplAxCd  SimplAxCdMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG  SimplCb  SimplCbMG
       (-)         (-)           (-)         (-)           (-)         (-)           (-)         (-)           (-)         (-)         (-)         (-)          (-)         (-)         (-)         (-)          (-)       (-)
       0.0         0.0           0.0         0.0           0.0         0.0           0.0         0.0           0.0         0.0         0.0         0.0          0.0         0.0         0.0         0.0          1.0       1.0
---------------------- DEPTH-BASED CYLINDRICAL-MEMBER HYDRODYNAMIC COEFFICIENTS (model 2) ---------
0           NCoefDpthCyl   - Number of depth-dependent coefficients (-)
   Dpth       DpthCd     DpthCdMG     DpthCa     DpthCaMG     DpthCp     DpthCpMG    DpthAxCd   DpthAxCdMG   DpthAxCa   DpthAxCaMG   DpthAxCp   DpthAxCpMG    DpthCb   DpthCbMG
    (m)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)        (-)      (-)
------ DEPTH-BASED RECTANGULAR-MEMBER HYDRODYNAMIC COEFFICIENTS (model 2) -------
             0   NCoefDpthRec    - Number of depth-dependent rectangular member coefficients (-)
Dpth    DpthCdA   DpthCdAMG    DpthCdB   DpthCdBMG   DpthCaA   DpthCaAMG   DpthCaB   DpthCaBMG     DpthCp   DpthCpMG   DpthAxCd   DpthAxCdMG   DpthAxCa   DpthAxCaMG   DpthAxCp   DpthAxCpMG   DpthCb   DpthCbMG
(m)       (-)       (-)          (-)       (-)         (-)       (-)        (-)        (-)          (-)        (-)       (-)        (-)          (-)        (-)          (-)        (-)          (-)      (-)
---------------------- MEMBER-BASED CYLINDRICAL-MEMBER HYDRODYNAMIC COEFFICIENTS (model 3) --------
0           NCoefMembersCyl - Number of member-based coefficients (-)
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCd1   MemberAxCd2  MemberAxCdMG1 MemberAxCdMG2  MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2    MemberCb1     MemberCb2    MemberCbMG1   MemberCbMG2
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)              (-)           (-)           (-)           (-)
------ MEMBER-BASED RECTANGULAR-MEMBER HYDRODYNAMIC COEFFICIENTS (model 3) ------
            0   NCoefMembersRec - Number of member-based rectangular member coefficients (-)
MemberID    MemberCdA1     MemberCdA2    MemberCdAMG1   MemberCdAMG2    MemberCdB1     MemberCdB2    MemberCdBMG1   MemberCdBMG2    MemberCaA1     MemberCaA2    MemberCaAMG1   MemberCaAMG2    MemberCaB1     MemberCaB2    MemberCaBMG1   MemberCaBMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCd1   MemberAxCd2  MemberAxCdMG1 MemberAxCdMG2  MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2   MemberCb1     MemberCb2    MemberCbMG1   MemberCbMG2
   (-)         (-)            (-)           (-)            (-)             (-)            (-)           (-)            (-)             (-)            (-)           (-)            (-)             (-)            (-)           (-)            (-)             (-)           (-)          (-)           (-)           (-)           (-)          (-)           (-)            (-)           (-)          (-)           (-)              (-)           (-)          (-)           (-)            (-)           (-)          (-)           (-)
-------------------- MEMBERS -------------------------------------------------
10          NMembers    - Number of members (-)
 MemberID    MJointID1   MJointID2  MPropSetID1 MPropSetID2  MSecGeom    MSpinOrient   MDivSize    MCoefMod   MHstLMod   PropPot   !  [MCoefMod=1: use simple coeff table, 2: use depth-based coeff table, 3: use member-based coeff table] [ PropPot/=0 if member is modeled with potential-flow theory]
    (-)         (-)         (-)         (-)         (-)     (switch)       (deg)        (m)      (switch)   (switch)   (flag)   
     1           1           2           1           1          1            0         0.5          1         1        True     ! Center col   
     2           3           4           2           2          1            0         0.5          1         1        True     ! Upwind col   
     3           5           6           3           3          1            0         0.5          1         1        True     ! Stbd col   
     4           7           8           4           4          1            0         0.5          1         1        True     ! Port col   
     5           9          10           5           5          1            0         0.5          1         1        True     ! Top brace - upwind (can be omitted)   
     6          11          12           6           6          1            0         0.5          1         1        True     ! Top brace - stbd (can be omitted)   
     7          13          14           7           7          1            0         0.5          1         1        True     ! Top brace - port (can be omitted)   
     8          15          16           8           8          1            0         0.5          1         1        True     ! Pontoon - upwind   
     9          17          18           9           9          1            0         0.5          1         1        True     ! Pontoon - stbd   
    10          19          20          10          10          1            0         0.5          1         1        True     ! Pontoon - port   
---------------------- FILLED MEMBERS ------------------------------------------
0           NFillGroups - Number of filled member groups (-) [If FillDens = DEFAULT, then FillDens = WtrDens; FillFSLoc is related to MSL2SWL]
 FillNumM    FillMList   FillFSLoc   FillDens  
    (-)         (-)         (m)      (kg/m^3)  
---------------------- MARINE GROWTH -------------------------------------------
0           NMGDepths   - Number of marine-growth depths specified (-)
  MGDpth      MGThck      MGDens   
    (m)         (m)      (kg/m^3)  
---------------------- MEMBER OUTPUT LIST --------------------------------------
0           NMOutputs   - Number of member outputs (-) [must be < 10]
MemberID_out   NOutLoc    NodeLocs  
    (-)         (-)         (-)    
---------------------- JOINT OUTPUT LIST ---------------------------------------
0                      NJOutputs   - Number of joint outputs [Must be < 10]
0                      JOutLst     - List of JointIDs which are to be output (-)[unused if NJOutputs=0]
---------------------- OUTPUT --------------------------------------------------
True                   HDSum       - Output a summary file [flag]
False                  OutAll      - Output all user-specified member and joint loads (only at each member end, not interior locations) [flag]
2                      OutSwtch    - Output requested channels to: [1=Hydrodyn.out, 2=GlueCode.out, 3=both files]
ES11.4e2               OutFmt      - Output format for numerical results (quoted string) [not checked for validity!]
A11                    OutSFmt     - Output format for header strings (quoted string) [not checked for validity!]
---------------------- OUTPUT CHANNELS -----------------------------------------
"Wave1Elev,HydroFxi,HydroFyi,HydroFzi,HydroMxi,HydroMyi,HydroMzi"
END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)

I have also attached the SeaState input file for reference:

------- SeaState Input File ----------------------------------------------------
Generated with AeroElasticSE FAST driver
False                  Echo        - Echo the input file data (flag)
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
1025.0                 WtrDens     - Water density (kg/m^3)
200.0                  WtrDpth     - Water depth (meters)
0.0                    MSL2SWL     - Offset between still-water level and mean sea level (meters) [positive upward; unused when WaveMod = 6; must be zero if PotMod=1 or 2]
---------------------- SPATIAL DISCRETIZATION ---------------------------------------------------
             100   X_HalfWidth    – Half-width of the domain in the X direction (m) [>0, NOTE: X[nX] = nX*dX, where nX = {-NX+1,-NX+2,…,NX-1} and dX = X_HalfWidth/(NX-1)]
             100   Y_HalfWidth    – Half-width of the domain in the Y direction (m) [>0, NOTE: Y[nY] = nY*dY, where nY = {-NY+1,-NY+2,…,NY-1} and dY = Y_HalfWidth/(NY-1)]
             40    Z_Depth        – Depth of the domain the Z direction (m) relative to SWL [0 < Z_Depth <= WtrDpth+MSL2SWL; "default": Z_Depth = WtrDpth+MSL2SWL; Z[nZ] = ( COS( nZ*dthetaZ ) – 1 )*Z_Depth, where nZ = {0,1,…NZ-1} and dthetaZ = pi/( 2*(NZ-1) )]
             11    NX             – Number of nodes in half of the X-direction domain (-) [>=2]
             11    NY             – Number of nodes in half of the Y-direction domain (-) [>=2]
             20    NZ             – Number of nodes in the Z direction (-) [>=2]
---------------------- WAVES ---------------------------------------------------
0                      WaveMod     - Incident wave kinematics model {0: none=still water, 1: regular (periodic), 1P#: regular with user-specified phase, 2: JONSWAP/Pierson-Moskowitz spectrum (irregular), 3: White noise spectrum (irregular), 4: user-defined spectrum from routine UserWaveSpctrm (irregular), 5: Externally generated wave-elevation time series, 6: Externally generated full wave-kinematics time series [option 6 is invalid for PotMod/=0]} (switch)
0                      WaveStMod   - Model for stretching incident wave kinematics to instantaneous free surface {0: none=no stretching, 1: vertical stretching, 2: extrapolation stretching, 3: Wheeler stretching} (switch) [unused when WaveMod=0 or when PotMod/=0]
1500                   WaveTMax    - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]
0.1                    WaveDT      - Time step for incident wave calculations     (sec) [unused when WaveMod=0; 0.1<=WaveDT<=1.0 recommended; determines WaveOmegaMax=Pi/WaveDT in the IFFT]
10                     WaveHs      - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
15                     WaveTp      - Peak-spectral period of incident waves       (sec) [used only when WaveMod=1 or 2]
Default                WavePkShp   - Peak-shape parameter of incident wave spectrum (-) or DEFAULT (string) [used only when WaveMod=2; use 1.0 for Pierson-Moskowitz]
0.031415926535         WvLowCOff   - Low  cut-off frequency or lower frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
3.141592653589         WvHiCOff    - High cut-off frequency or upper frequency limit of the wave spectrum beyond which the wave spectrum is zeroed (rad/s) [unused when WaveMod=0, 1, or 6]
0.0                    WaveDir     - Incident wave propagation heading direction                         (degrees) [unused when WaveMod=0 or 6]
0                      WaveDirMod  - Directional spreading function {0: none, 1: COS2S}                  (-)       [only used when WaveMod=2,3, or 4]
1.0                    WaveDirSpread - Wave direction spreading coefficient ( > 0 )                        (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1]
1                      WaveNDir    - Number of wave directions                                           (-)       [only used when WaveMod=2,3, or 4 and WaveDirMod=1; odd number only]
1.5707963267948966     WaveDirRange - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]
304524126              WaveSeed(1) - First  random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
RANLUX                 WaveSeed(2) - Second random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6] for intrinsic pRNG, or an alternative pRNG: "RanLux"
True                   WaveNDAmp   - Flag for normally distributed amplitudes                            (flag)    [only used when WaveMod=2, 3, or 4]
""                     WvKinFile   - Root name of externally generated wave data file(s)        (quoted string)    [used only when WaveMod=5 or 6]
---------------------- 2ND-ORDER WAVES ----------------------------------------- [unused with WaveMod=0 or 6]
False                  WvDiffQTF   - Full difference-frequency 2nd-order wave kinematics (flag)
False                  WvSumQTF    - Full summation-frequency  2nd-order wave kinematics (flag)
0.0                    WvLowCOffD  - Low  frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
0.737863               WvHiCOffD   - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
0.314159               WvLowCOffS  - Low  frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
3.2                    WvHiCOffS   - High frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
---------------------- CONSTRAINED WAVES --------------------------------------- 
             0   ConstWaveMod   - Constrained wave model: 0=none; 1=Constrained wave with specified crest elevation, alpha; 2=Constrained wave with guaranteed peak-to-trough crest height, HCrest (flag)
             1   CrestHmax      - Crest height (2*alpha for ConstWaveMod=1 or HCrest for ConstWaveMod=2), must be larger than WaveHs (m) [unused when ConstWaveMod=0]
            60   CrestTime      - Time at which the crest appears (s) [unused when ConstWaveMod=0]
             0   CrestXi        - X-position of the crest (m) [unused when ConstWaveMod=0]
             0   CrestYi        - Y-position of the crest (m) [unused when ConstWaveMod=0]
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
0                      CurrMod     - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)
0.0                    CurrSSV0    - Sub-surface current velocity at still water level  (m/s) [used only when CurrMod=1]
0.0                    CurrSSDir   - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]
20.0                   CurrNSRef   - Near-surface current reference depth            (meters) [used only when CurrMod=1]
0.0                    CurrNSV0    - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]
0.0                    CurrNSDir   - Near-surface current heading direction         (degrees) [used only when CurrMod=1]
0.0                    CurrDIV     - Depth-independent current velocity                 (m/s) [used only when CurrMod=1]
0.0                    CurrDIDir   - Depth-independent current heading direction    (degrees) [used only when CurrMod=1]
---------------------- MacCamy-Fuchs diffraction model -------------------------
             0   MCFD           - MacCamy-Fuchs member radius (ignored if radius <= 0) [must be 0 when WaveMod 0 or 6] 
---------------------- OUTPUT --------------------------------------------------
False            SeaStSum       - Output a summary file [flag]
             2   OutSwtch       - Output requested channels to: [1=SeaState.out, 2=GlueCode.out, 3=both files]
"ES11.4e2"       OutFmt         - Output format for numerical results (quoted string) [not checked for validity!]
"A11"            OutSFmt        - Output format for header strings (quoted string) [not checked for validity!]
             1   NWaveElev      - Number of points where the incident wave elevations can be computed (-)       [maximum of 9 output locations]
             0   WaveElevxi     - List of xi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
             0   WaveElevyi     - List of yi-coordinates for points where the incident wave elevations can be output (meters) [NWaveElev points, separated by commas or white space; usused if NWaveElev = 0]
             2   NWaveKin       - Number of points where the wave kinematics can be output (-)       [maximum of 9 output locations]
             5,            -5    WaveKinxi - List of xi-coordinates for points where the wave kinematics can be output (meters) [NWaveKin points, separated by commas or white space; usused if NWaveKin = 0]
             5,            -5    WaveKinyi - List of yi-coordinates for points where the wave kinematics can be output (meters) [NWaveKin points, separated by commas or white space; usused if NWaveKin = 0]
           -10,           -15    WaveKinzi - List of zi-coordinates for points where the wave kinematics can be output (meters) [NWaveKin points, separated by commas or white space; usused if NWaveKin = 0]
---------------------- OUTPUT CHANNELS -----------------------------------------
"Wave1Elev"               - Wave elevation at the WAMIT reference point (0,0)
END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)

Best Regards,

Dear @Lixian.Zhang,

Thanks for the clarifications.

For the TLCD to dampen motion, the motion of the liquid should be out-of-phase with that of the floater pitch motion. As noted in Bug report: Lack of Data Sanity Checks and Write Outputs for TLCDs in Structural Control (StC) · Issue #2896 · OpenFAST/openfast · GitHub, write outputs are not yet available for the TLCD, but I suspect it would be very informative to track the liquid motion in your case. I suggest modifying the source code or running in debug mode to figure out what the liquid motion is doing relative to the pitch motion in your case.

Best regards,

Dear Dr.Jonkman,

Thank you very much for your helpful reply.

To better observe the liquid motion inside the TLCD, I noticed that in https://github.com/OpenFAST/openfast/issues/3292, it was suggested to try using SStC1_XQ as an indicator of the liquid motion. I would like to ask whether this interpretation is reasonable.

I also tried to output the platform pitch response and SStC1_XQ for the case with a TLCD mass ratio of 5%. The comparison is shown below:

Regarding the liquid motion relative to the platform pitch motion shown above, I would like to ask whether the fact that they are not fully out of phase could be the main reason why the pitch response is not reduced. If this is the case, how could a truly out-of-phase relationship be achieved, and which TLCD parameters should be adjusted? I would appreciate any suggestions you may have on this.

Best regards,

Dear @Lixian.Zhang,

Good point about that displacement output. And from my understanding of TLCDs, a 90-degree phase shift is ideal to damp motion.

Have you tried to damp surge motion rather than pitch motion? I’m curious if your TLCD would damp surge motion.

Best regards,