TMD control in a model similar to ITIBarge4

Dear All,
My research is based on the ITIBarge4 fan model, using SubDyn to build a new type of floating platform model. The model is mainly connected by the inner and outer pontoons through flexible rods. I hope to add TMD to the inner pontoon to passively control the movement of the platform.

The problem I encounter now is that when I simulate 3000 seconds after adding TMD to the inner buoy, it basically ends at around 800 seconds, because of the small angle assumption, the platform displacement is too large and so on. Referring to the solutions of previous similar questions on the forum, I have tried reducing the time step from 0.005s to 0.00125s, and the result is still the same. I then isolated the platform DOF in ElastoDyn one by one, and found that when the platform heave DOF are turned off, the simulation can run normally.There is a post about hydrostatic recovery that I don’t seem to cover because of the potential flow theory I use in HydroDyn. Now I don’t know how to solve this problem, can you help me?

Thank you all for your time and hoping to hear from you soon,

Kun.Jiang

Dear @Kun.Jiang,

Is the system response growing over time, or is there just a temporarily large displacement at 800 s? What conditions are you simulating? Can you share plots of rotor speed, blade pitch, blade deflection, tower deflection, and platform displacement?

Best regards,

Dear Jason,
Thank you for your reply! When the simulation time is after 800 seconds, the displacement of the inner buoy has a temporarily obvious fluctuation.My simulation conditions are set to a steady wind with a wind speed of 11.4m/s, a jonswap spectrum with a significant wave height of 2.1m and a period of 7.473s. I didn’t account for aerodynamic loads. I have attached plots of rotor speed, blade pitch, tower deflection, blade deflection,and platform displacement below, please check it out.Since I’m a new user and can only upload one image, I merged them.

Best regards,

Kun Jiang

I have also attached the problems that the program has when simulating for your reference.

Dear @Kun.Jiang,

Other than the spike at the end, the deflections and displacements are not unusual. Given that you have not enabled aerodynamic loads, I’m surprised that the response suddenly changes at around 800 s and the rotor speed spikes at the end. Can you share your ServoDyn input file?

Best regards,

Dear Jason,

Sure. My ServoDyn file is to add a TMD to the center of the inner pontoon for passive control. The mass of the inner pontoon is 5469766kg. The mass of the TMD is set to 11% of the mass of the inner pontoon which is 601674.26kg. Considering that the first-order natural frequency of the barge platform pitch is 0.084Hz, the stiffness is set to 167602.21N/m. Damping is set to 63511.24N*s/m with damping ratio of 0.1. Below is my ServoDyn input file and Stc input file.

Kind regards,

Kun.Jiang

------- SERVODYN v1.05.* INPUT FILE --------------------------------------------
NREL 5.0 MW Baseline Wind Turbine for Use in Offshore Analysis. Properties from Dutch Offshore Wind Energy Converter (DOWEC) 6MW Pre-Design (10046_009.pdf) and REpower 5M 5MW (5m_uk.pdf)
---------------------- SIMULATION CONTROL --------------------------------------
False         Echo         - Echo input data to <RootName>.ech (flag)
"default"     DT           - Communication interval for controllers (s) (or "default")
---------------------- PITCH CONTROL -------------------------------------------
          5   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   TPCOn        - Time to enable active pitch control (s) [unused when PCMode=0]
     9999.9   TPitManS(1)  - Time to start override pitch maneuver for blade 1 and end standard pitch control (s)
     9999.9   TPitManS(2)  - Time to start override pitch maneuver for blade 2 and end standard pitch control (s)
     9999.9   TPitManS(3)  - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]
          2   PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
          2   PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
          2   PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
          0   BlPitchF(1)  - Blade 1 final pitch for pitch maneuvers (degrees)
          0   BlPitchF(2)  - Blade 2 final pitch for pitch maneuvers (degrees)
          0   BlPitchF(3)  - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
---------------------- GENERATOR AND TORQUE CONTROL ----------------------------
          5   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)
          2   GenModel     - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]
       94.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)
     9999.9   SpdGenOn     - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]
          0   TimGenOn     - Time to turn on the generator for a startup (s) [used only when GenTiStr=True]
     9999.9   TimGenOf     - Time to turn off the generator (s) [used only when GenTiStp=True]
---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL --------------------
     9999.9   VS_RtGnSp    - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]
     9999.9   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]
     9999.9   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]
     9999.9   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 ------------------------------
     9999.9   SIG_SlPc     - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]
     9999.9   SIG_SySp     - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]
     9999.9   SIG_RtTq     - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]
     9999.9   SIG_PORt     - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]
---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR -----------------
     9999.9   TEC_Freq     - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]
       9998   TEC_NPol     - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]
     9999.9   TEC_SRes     - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]
     9999.9   TEC_RRes     - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]
     9999.9   TEC_VLL      - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]
     9999.9   TEC_SLR      - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
     9999.9   TEC_RLR      - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
     9999.9   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)
     9999.9   THSSBrDp     - Time to initiate deployment of the HSS brake (s)
        0.6   HSSBrDT      - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1]
    28116.2   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)
     9999.9   TYCOn        - Time to enable active yaw control (s) [unused when YCMode=0]
          0   YawNeut      - Neutral yaw position--yaw spring force is zero at this yaw (degrees)
9.02832E+09   YawSpr       - Nacelle-yaw spring constant (N-m/rad)
  1.916E+07   YawDamp      - Nacelle-yaw damping constant (N-m/(rad/s))
     9999.9   TYawManS     - Time to start override yaw maneuver and end standard yaw control (s)
          2   YawManRat    - Yaw maneuver rate (in absolute value) (deg/s)
          0   NacYawF      - Final yaw angle for override yaw maneuvers (degrees)
---------------------- 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)
"../../../5MW_Baseline/NRELOffshrBsline5MW_ServoDyn_StC.dat"      SStCfiles    - Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0]
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
"../../../5MW_Baseline/ServoData/DISCON_ITIBarge.dll"    DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]
"DISCON.IN"    DLL_InFile   - Name of input file sent to the DLL (-) [used only with Bladed Interface]
"DISCON"      DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface]
"default"     DLL_DT       - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface]
false         DLL_Ramp     - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface]
     9999.9   BPCutoff     - Cutoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]
          0   NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface]
          0   Ptch_Cntrl   - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface]
          0   Ptch_SetPnt  - Record  5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]
          0   Ptch_Min     - Record  6: Minimum pitch angle (deg) [used only with Bladed Interface]
          0   Ptch_Max     - Record  7: Maximum pitch angle (deg) [used only with Bladed Interface]
          0   PtchRate_Min - Record  8: Minimum pitch rate (most negative value allowed) (deg/s) [used only with Bladed Interface]
          0   PtchRate_Max - Record  9: Maximum pitch rate  (deg/s) [used only with Bladed Interface]
          0   Gain_OM      - Record 16: Optimal mode gain (Nm/(rad/s)^2) [used only with Bladed Interface]
          0   GenSpd_MinOM - Record 17: Minimum generator speed (rpm) [used only with Bladed Interface]
          0   GenSpd_MaxOM - Record 18: Optimal mode maximum speed (rpm) [used only with Bladed Interface]
          0   GenSpd_Dem   - Record 19: Demanded generator speed above rated (rpm) [used only with Bladed Interface]
          0   GenTrq_Dem   - Record 22: Demanded generator torque above rated (Nm) [used only with Bladed Interface]
          0   GenPwr_Dem   - Record 13: Demanded power (W) [used only with Bladed Interface]
---------------------- 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 --------------------------------------------------
True          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)
         30   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"                  - Electrical generator power and torque
"GenTq"                   - Electrical generator power and torque
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 ----------------------------------
          2   StC_DOF_MODE - DOF mode (switch) {0: No StC or TLCD DOF; 1: StC_X_DOF, StC_Y_DOF, and/or StC_Z_DOF (three independent StC DOFs); 2: StC_XY_DOF (Omni-Directional StC); 3: TLCD; 4: Prescribed force/moment time series}
true          StC_X_DOF    - DOF on or off for StC X (flag) [Used only when StC_DOF_MODE=1]
true          StC_Y_DOF    - DOF on or off for StC Y (flag) [Used only when StC_DOF_MODE=1]
FALSE         StC_Z_DOF    - DOF on or off for StC Z (flag) [Used only when StC_DOF_MODE=1]
---------------------- StC LOCATION ------------------------------------------- [relative to the reference origin of component attached to]
          0   StC_P_X      - At rest X position of StC (m)
          0   StC_P_Y      - At rest Y position of StC (m)
          1   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]
---------------------- StC CONFIGURATION -------------------------------------- [used only when StC_DOF_MODE=1 or 2]
         10   StC_X_PSP    - Positive stop position (maximum X mass displacement) (m)
         -10   StC_X_NSP    - Negative stop position (minimum X mass displacement) (m)
         10   StC_Y_PSP    - Positive stop position (maximum Y mass displacement) (m)
         -10   StC_Y_NSP    - Negative stop position (minimum Y mass displacement) (m)
         10   StC_Z_PSP    - Positive stop position (maximum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
         -10   StC_Z_NSP    - Negative stop position (minimum Z mass displacement) (m) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC MASS, STIFFNESS, & DAMPING ------------------------- [used only when StC_DOF_MODE=1 or 2]
      601674.26    StC_X_M      - StC X mass (kg) [must equal StC_Y_M for StC_DOF_MODE = 2]
      601674.26    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]
      601674.26    StC_XY_M     - StC XY mass (kg) [used only when StC_DOF_MODE=2]
      167602.21   StC_X_K      - StC X stiffness (N/m)
      167602.21   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]
      63511.24   StC_X_C      - StC X damping (N/(m/s))
      63511.24   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]
      500000   StC_X_KS     - Stop spring X stiffness (N/m)
      500000   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]
      200000   StC_X_CS     - Stop spring X damping (N/(m/s))
      200000   StC_Y_CS     - Stop spring Y damping (N/(m/s))
      0   StC_Z_CS     - Stop spring Z damping (N/(m/s)) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- StC USER-DEFINED SPRING FORCES ------------------------- [used only when StC_DOF_MODE=1 or 2]
False         Use_F_TBL    - Use spring force from user-defined table (flag)
         17   NKInpSt      - Number of spring force input stations
---------------------- StC SPRING FORCES TABLE -------------------------------- [used only when StC_DOF_MODE=1 or 2]
    X                F_X               Y              F_Y              Z              F_Z
   (m)               (N)              (m)             (N)             (m)             (N)
-6.0000000E+00  -4.8000000E+06  -6.0000000E+00  -4.8000000E+06  -6.0000000E+00  -4.8000000E+06
-5.0000000E+00  -2.4000000E+06  -5.0000000E+00  -2.4000000E+06  -5.0000000E+00  -2.4000000E+06
-4.5000000E+00  -1.2000000E+06  -4.5000000E+00  -1.2000000E+06  -4.5000000E+00  -1.2000000E+06
-4.0000000E+00  -6.0000000E+05  -4.0000000E+00  -6.0000000E+05  -4.0000000E+00  -6.0000000E+05
-3.5000000E+00  -3.0000000E+05  -3.5000000E+00  -3.0000000E+05  -3.5000000E+00  -3.0000000E+05
-3.0000000E+00  -1.5000000E+05  -3.0000000E+00  -1.5000000E+05  -3.0000000E+00  -1.5000000E+05
-2.5000000E+00  -1.0000000E+05  -2.5000000E+00  -1.0000000E+05  -2.5000000E+00  -1.0000000E+05
-2.0000000E+00  -6.5000000E+04  -2.0000000E+00  -6.5000000E+04  -2.0000000E+00  -6.5000000E+04
 0.0000000E+00   0.0000000E+00   0.0000000E+00   0.0000000E+00   0.0000000E+00   0.0000000E+00
 2.0000000E+00   6.5000000E+04   2.0000000E+00   6.5000000E+04   2.0000000E+00   6.5000000E+04
 2.5000000E+00   1.0000000E+05   2.5000000E+00   1.0000000E+05   2.5000000E+00   1.0000000E+05
 3.0000000E+00   1.5000000E+05   3.0000000E+00   1.5000000E+05   3.0000000E+00   1.5000000E+05
 3.5000000E+00   3.0000000E+05   3.5000000E+00   3.0000000E+05   3.5000000E+00   3.0000000E+05
 4.0000000E+00   6.0000000E+05   4.0000000E+00   6.0000000E+05   4.0000000E+00   6.0000000E+05
 4.5000000E+00   1.2000000E+06   4.5000000E+00   1.2000000E+06   4.5000000E+00   1.2000000E+06
 5.0000000E+00   2.4000000E+06   5.0000000E+00   2.4000000E+06   5.0000000E+00   2.4000000E+06
 6.0000000E+00   4.8000000E+06   6.0000000E+00   4.8000000E+06   6.0000000E+00   4.8000000E+06
---------------------- StructCtrl CONTROL -------------------------------------------- [used only when StC_DOF_MODE=1 or 2]
          0   StC_CMODE     - Control mode (switch) {0:none; 1: Semi-Active Control Mode; 2: Active Control Mode}
          1   StC_SA_MODE   - Semi-Active control mode {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} (-)
          0   StC_X_C_HIGH  - StC X high damping for ground hook control
          0   StC_X_C_LOW   - StC X low damping for ground hook control
          0   StC_Y_C_HIGH  - StC Y high damping for ground hook control
          0   StC_Y_C_LOW   - StC Y low damping for ground hook control
          0   StC_Z_C_HIGH  - StC Z high damping for ground hook control [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
          0   StC_Z_C_LOW   - StC Z low damping for ground hook control  [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
          0   StC_X_C_BRAKE - StC X high damping for braking the StC (Don't use it now. should be zero)
          0   StC_Y_C_BRAKE - StC Y high damping for braking the StC (Don't use it now. should be zero)
          0   StC_Z_C_BRAKE - StC Z high damping for braking the StC (Don't use it now. should be zero) [used only when StC_DOF_MODE=1 and StC_Z_DOF=TRUE]
---------------------- TLCD --------------------------------------------------- [used only when StC_DOF_MODE=3]
     7.9325   L_X             - X TLCD total length (m)
     6.5929   B_X             - X TLCD horizontal length (m)
     2.0217   area_X          - X TLCD cross-sectional area of vertical column (m^2)
      0.913   area_ratio_X    - X TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
     2.5265   headLossCoeff_X - X TLCD head loss coeff (-)
       1000   rho_X           - X TLCD liquid density (kg/m^3)
     3.5767   L_Y             - Y TLCD total length (m)
     2.1788   B_Y             - Y TLCD horizontal length (m)
     1.2252   area_Y          - Y TLCD cross-sectional area of vertical column (m^2)
     2.7232   area_ratio_Y    - Y TLCD cross-sectional area ratio (vertical column area divided by horizontal column area) (-)
     0.6433   headLossCoeff_Y - Y TLCD head loss coeff (-)
       1000   rho_Y           - Y TLCD liquid density (kg/m^3)
---------------------- PRESCRIBED TIME SERIES --------------------------------- [used only when StC_DOF_MODE=4]
          0   PrescribedForcesCoord- Prescribed forces are in global or local coordinates (switch) {1: global; 2: local}
"TimeForceSeries.dat"  PrescribedForcesFile   - Time series force and moment (7 columns of time, FX, FY, FZ, MX, MY, MZ)
-------------------------------------------------------------------------------

Dear @Kun.Jiang,

I don’t see anything in your ServoDyn input file that suggests the response should change at 800 s. But I do see that you’ve enabled the DISCON controller; are you using the original DISCON controller for the ITI Energy barge from the OpenFAST r-test? Does the response change at all if you disable the pitch and torque controller altogether by setting PCMode = 0, VSContrl = 0, and TimGenOn > TMax (e.g., 9999.9 s)?

Best regards,

Dear Jason,

Yes. I used the original DISCON controller for the ITI Energy barge from the OpenFAST r-test without any modifications. After I disabled the pitch and torque controller altogether as you suggested, the response didn’t change and the program was still terminating on the 879s.

Kind regards,

Kun.Jiang

Dear Kun.Jiang,

My next thought is that something is odd with your SubDyn model. Have you followed the guidance for using the capability to model substructure flexibility in OpenFAST using SubDyn that is outlined in my post dated Aug 6, 2021 in the following OpenFAST issue: FeaCoupling of an External floater (platform+mooring) with Openfast #791 · Discussion #801 · OpenFAST/openfast · GitHub? Can you clarify how many Craig-Bampton modes you’ve enabled in SubDyn and what frequencies these span?

Best regards,

Dear Jason,

The main file I am modifying is the SubDyn file, so I also think this part is likely to go wrong. In the SubDyn input file, I have three Craig-Bampton modes enabled. In the SubDyn output file, I see the three frequencies that the Craig-Bampton modes span are 5.375377E-01, 5.402206E-01, 5.402206E-01.

Best regards,

Kun.Jiang

Dear @Kun.Jiang,

Those frequencies seem reasonable. Are you following the guidance outlined in the link I shared in my prior post? Have you enabled SttcSolve? Does the solution change if you set Nmodes = 0?

Best regards,

Dear Jason,

I have SttcSolve enabled, setting Nmodes=0 doesn’t seem to help either. The program still abends on 806s.

When checking against the guidance in the link you mentioned earlier, one issue I am not sure about is that negligible platform-heave damping can cause numerical problems when SubDyn is coupled to FAST as mentioned in the openfast user documentation 4.2.5.5 Modeling Considerations(I attached the picture at the end for your reference). I don’t know whether I need to think about this for the floating platform. If I need to think about it, one problem is that the (3,3) element of the KBBt matrix in my SubDyn summary file is very small, only 7.629395E-06. I think this is very unreasonable. I would be very grateful if you could give me some advice.

Best regards,

Kun.Jiang

Dear @Kun.Jiang,

The heave damping suggestion in the SubDyn modeling guidance section pertains to fixed-bottom systems, not floating.

Does the solution change if you set Nmodes = 0 and SttcSolve = False?

Best regards,

Dear Jason,

I set Nmodes = 0 and SttcSolve = False and the solution still terminates. I have attached my floating platform model and my SubDyn input file, can you help to see what went wrong?

Best regards,

Kun.Jiang

----------- SubDyn v1.01.x MultiMember Support Structure Input File ------------
cyl-rect with 4 connectors
-------------------------- SIMULATION CONTROL  ---------------------------------
False            Echo        - Echo input data to "<rootname>.SD.ech" (flag)
"DEFAULT"        SDdeltaT    - Local Integration Step. If "default", the glue-code integration step will be used.
             3   IntMethod   - Integration Method [1/2/3/4 = RK4/AB4/ABM4/AM2].
False             SttcSolve   - Solve dynamics about static equilibrium point
True             ExtraMoment - Include extra moment from lever arm at interface in interface reactions.
-------------------- FEA and CRAIG-BAMPTON PARAMETERS---------------------------
             3   FEMMod      - FEM switch: element model in the FEM. [1= Euler-Bernoulli(E-B);  2=Tapered E-B (unavailable);  3= 2-node Timoshenko;  4= 2-node tapered Timoshenko (unavailable)]
             3   NDiv        - Number of sub-elements per member
True             CBMod       - [T/F] If True perform C-B reduction, else full FEM dofs will be retained. If True, select Nmodes to retain in C-B reduced system.
             0   Nmodes      - Number of internal modes to retain (ignored if CBMod=False). If Nmodes=0 --> Guyan Reduction.
             1   JDampings   - Damping Ratios for each retained mode (% of critical) If Nmodes>0, list Nmodes structural damping ratios for each retained mode (% of critical), or a single damping ratio to be applied to all retained modes. (last entered value will be used for all remaining modes).
             0   GuyanDampMod - Guyan damping [0=none, 1=Rayleigh Damping, 2= user specified 6x6 matrix]
  0.000, 0.000   RayleighDamp - TUNED to get zeta=0.01 at f=0.83, Mass and stiffness proportional damping  coefficients (Rayleigh Damping) [only if GuyanDampMod=1]
             6   GuyanDampSize  - Guyan damping matrix (6x6) [only if GuyanDampMod=2] ! TUNED to get zeta=0.01 at f=0.83
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00   0.0000e+00
----------------- STRUCTURE JOINTS: joints connect structure members (~Hydrodyn Input File)---
            24  NJoints     - Number of joints (-)
JointID          JointXss            JointYss       JointZss   JointType  JointDirX  JointDirY   JointDirZ 	 JointStiff 	
  (-)               (m)                (m)            (m)        (-) 		 (-) 		(-) 	    (-) 	  (Nm/rad) 		
   1       	      0.00000    		 0.00000  		 6.00000    1 	        0.0        0.0 	       0.0 	       0.0  
   2       	      0.00000    		 0.00000  		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
   3      	      0.00000   		 0.00000 		-4.00000  	1 	        0.0        0.0 	       0.0 	       0.0  
   4       	      8.46300   		 0.00000  		 1.00000  	1 	        0.0        0.0 	       0.0 	       0.0  
   5       	      0.00000   	 	-8.46300 		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
   6     	     -8.46300  		     0.00000 		 1.00000  	1 	        0.0        0.0 	       0.0 	       0.0  
   7  	          0.00000   		 8.46300 		 1.00000  	1 	        0.0        0.0 	       0.0 	       0.0  
   8   	         15.00000 		     0.00000 		 1.00000  	1 	        0.0        0.0 	       0.0 	       0.0    !Connection point between connecting rod and peripheral floating body
   9   	          0.00000   	   -15.00000  		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  10  	        -15.00000	  	     0.00000   		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  11   	          0.00000 		    15.00000		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  12   	         19.16000 		     0.00000 		 1.00000  	1 	        0.0        0.0 	       0.0 	       0.0  
  13   	         19.16000   	   -19.16000 		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  14  	          0.00000  	       -19.16000         1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  15   	        -19.16000   	   -19.16000 		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  16   	        -19.16000   	     0.00000		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  17   	        -19.16000   	    19.16000		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  18        	  0.00000    		19.16000		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  19   	         19.16000    	    19.16000  		 1.00000    1 	        0.0        0.0 	       0.0 	       0.0  
  20   	         15.75000   	     0.00000  	    -0.22160    1 	        0.0        0.0 	       0.0 	       0.0     !The ballast center at the bottom of the peripheral buoy, determined according to the solidworks model
  21   	          0.00000 	       -15.75000  	    -0.22160    1 	        0.0        0.0 	       0.0 	       0.0  
  22   	        -15.75000   	     0.00000  	    -0.22160    1 	        0.0        0.0 	       0.0 	       0.0  
  23  	          0.00000   	    15.75000  	    -0.22160    1 	        0.0        0.0 	       0.0 	       0.0   
  24   	          0.00000   	     0.00000  	    -3.94680    1 	        0.0        0.0 	       0.0 	       0.0     !Ballast center at the bottom of the center buoy
------------------- BASE REACTION JOINTS: 1/0 for Locked/Free DOF @ each Reaction Node --------------------
              0   NReact      - Number of Joints with reaction forces; be sure to remove all rigid motion DOFs of the structure  (else det([K])=[0])
RJointID  
  (-) 
------- INTERFACE JOINTS: 1/0 for Locked (to the TP)/Free DOF @each Interface Joint (only Locked-to-TP implemented thus far (=rigid TP)) ---------
             1   NInterf     - Number of interface joints locked to the Transition Piece (TP):  be sure to remove all rigid motion dofs 
IJointID   ItfTDXss    ItfTDYss    ItfTDZss    ItfRDXss    ItfRDYss    ItfRDZss     [Global Coordinate System]
  (-)       (flag)      (flag)      (flag)      (flag)      (flag)      (flag)
  1           1           1           1           1           1           1
----------------------------------- MEMBERS --------------------------------------
           27   NMembers    - Number of frame members
MemberID   MJointID1   MJointID2 MPropSetID1  MPropSetID2  MType      COSMID
  (-)         (-)         (-)      (-)         (-)         (-)        (-)
    1         1          2           1           1          1      !center    
    2         2          3           1           1          1   
    3         2          4           3           3          3      ! Center floater    
    4         2          5           3           3          3          
    5         2          6           3           3          3
    6         2          7           3           3          3      
    7         4          8           2           2          1      ! Connecting rod           
    8         5          9           2           2          1         
    9         6         10           2           2          1           
   10         7         11           2           2          1      
   11         8         12           3           3          3      ! Peripheral floater     
   12         9         14           3           3          3       
   13        10         16           3           3          3  
   14        11         18           3           3          3     
   15        12         13           4           4          3      ! Peripheral floater       
   16        13         14           4           4          3         
   17        14         15           4           4          3           
   18        15         16           4           4          3 
   19        16         17           4           4          3   
   20        17         18           4           4          3   
   21        18         19           4           4          3  
   22        19         12           4           4          3
   23        12         20           3           3          3      !Peripheral buoy center to ballast center
   24        14         21           3           3          3
   25        16         22           3           3          3
   26        18         23           3           3          3
   27         3         24           3           3          3      !Center buoy center (body center/mass center excluding ballast) to ballast center
------------------ MEMBER X-SECTION PROPERTY data 1/2 [isotropic material for now: use this table for circular-tubular elements] ------------------------
             2   NPropSets   - Number of structurally unique x-sections (i.e. how many groups of X-sectional properties are utilized throughout all of the members)
PropSetID     YoungE          ShearG          MatDens          XsecD           XsecT
  (-)         (N/m2)          (N/m2)          (kg/m3)           (m)             (m)
   1       2.10000e+11     8.07690e+10       7800.00        16.926       0.00500          ! Center buoy, the calculated mass is 20732kg
   2       2.10000e+11     8.07690e+10       7800.00        1               0.01          ! Connecting rod
------------------ MEMBER X-SECTION PROPERTY data 2/2 [isotropic material for now: use this table if any section other than circular, however provide COSM(i,j) below] ------------------------
             0   NXPropSets  - Number of structurally unique non-circular x-sections (if 0 the following table is ignored)
PropSetID     YoungE          ShearG          MatDens          XsecA          XsecAsx       XsecAsy       XsecJxx       XsecJyy        XsecJ0
  (-)         (N/m2)          (N/m2)          (kg/m3)          (m2)            (m2)          (m2)          (m4)          (m4)          (m4)
-------------------------- CABLE PROPERTIES  -------------------------------------
             0   NCablePropSets   - Number of cable properties
PropSetID     EA          MatDens(/*Drymass or wetmass)      T0<0(/*computed through the keel mass and buoyancy)   CtrlChannel (DeltaL)
  (-)         (N)         (kg/m)        (N)        (-)
----------------------- RIGID LINK PROPERTIES ------------------------------------
             2   NRigidPropSets - Number of rigid link properties
PropSetID   MatDens   
  (-)       (kg/m)   
  3          0          ! tank  MaTDens=6599*(3.3^2-3.2625^2)*pi=5101.86
  4      1713.352       ! outer floating body  steel mass =262622.6/19.16/8=1713.352kg
---------------------- MEMBER COSINE MATRICES COSM(i,j) ------------------------
             0   NCOSMs      - Number of unique cosine matrices (i.e., of unique member alignments including principal axis rotations); ignored if NXPropSets=0   or 9999 in any element below
COSMID    COSM11    COSM12    COSM13    COSM21    COSM22    COSM23    COSM31    COSM32    COSM33
 (-)       (-)       (-)       (-)       (-)       (-)       (-)       (-)       (-)       (-)
------------------------ JOINT ADDITIONAL CONCENTRATED MASSES--------------------------
           7     NCmass      - Number of joints with concentrated masses; Global Coordinate System
CMJointID       JMass            JMXX             JMYY             JMZZ          JMXY           JMXZ           JMYZ           MCGX           MCGY           MCGZ
  (-)            (kg)          (kg*m^2)         (kg*m^2)         (kg*m^2)      (kgm^2)       (kgm^2)         (kgm^2)           (m)            (m)            (m)
  1           8775.32       157127.39        157127.39        314254.75            0              0              0              0              0              0    ! 内浮筒上盖
  3           8775.32       157127.39        157127.39        314254.75            0              0              0              0              0              0    ! 内浮筒下盖
 20        1241091.00      6952576.56       7266986.30       2995166.45            0              0              0              0              0              0    ! 外浮体压载
 21        1241091.00      7266986.30       6952576.56       2995166.45            0              0              0              0              0              0    ! 外浮体压载     
 22        1241091.00      6952576.56       7266986.30       2995166.45            0              0              0              0              0              0    ! 外浮体压载
 23        1241091.00      7266986.30       6952576.56       2995166.45            0              0              0              0              0              0    ! 外浮体压载
 24         186738.90      3343846.69       3343846.69       6687341.03            0              0              0              0              0              0    ! 内浮筒压载
---------------------------- OUTPUT: SUMMARY & OUTFILE ------------------------------
True             SSSum       - Output a Summary File (flag).It contains: matrices K,M  and C-B reduced M_BB, M-BM, K_BB, K_MM(OMG^2), PHI_R, PHI_L. It can also contain COSMs if requested.
False            OutCOSM     - Output cosine matrices with the selected output member forces (flag)
False            OutAll      - [T/F] Output all members' end forces 
1                OutSwtch    - [1/2/3] Output requested channels to: 1=<rootname>.SD.out;  2=<rootname>.out (generated by FAST);  3=both files.
True             TabDelim    - Generate a tab-delimited output in the <rootname>.SD.out file
             1   OutDec      - Decimation of output in the <rootname>.SD.out file
"ES11.4e2"       OutFmt      - Output format for numerical results in the <rootname>.SD.out file
"A11"            OutSFmt     - Output format for header strings in the <rootname>.SD.out file
------------------------- MEMBER OUTPUT LIST ------------------------------------------
             8   NMOutputs   - Number of members whose forces/displacements/velocities/accelerations will be output (-) [Must be <= 9].
MemberID   NOutCnt    NodeCnt [NOutCnt=how many nodes to get output for [< 10]; NodeCnt are local ordinal numbers from the start of the member, and must be >=1 and <= NDiv+1] If NMOutputs=0 leave blank as well.
  (-)        (-)        (-)
   1          2          1   4         !The upper part of the center float
   3          2          1   2         ! 2, 4 rigid connection 
   7          3          1   3   4     ! Connecting rod 1
   8          3          1   3   4     ! Connecting rod 2
  11          2          1   2         ! Peripheral floating body
   9          3          1   3   4     ! Connecting rod 3
  13          2          1   2  
  10          3          1   3   4     ! Connecting rod 4
------------------------- SSOutList: The next line(s) contains a list of output parameters that will be output in <rootname>.SD.out or <rootname>.out. ------
"M1N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system. !Center floating body tower base connection point Fz
"M1N2FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system. !Center floating body midpoint Fz
"M2N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.  
"M2N2FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M3N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M3N3FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M4N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M4N3FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M5N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M5N2FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M6N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M6N3FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M7N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M7N2FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M8N1FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M8N3FKze"    - Static component of action force. Note that Z is the axial direction in the local member coordinate system.
"M1N1TDxss"    - Nodal translational displacements in SS coordinate system. !Displacement along the X axis of the connection point and midpoint of the center floating body tower base in the global coordinate system
"M1N1TDyss"    - Nodal translational displacements in SS coordinate system.  
"M1N1TDzss"    - Nodal translational displacements in SS coordinate system. 
"M1N2TDxss"    - Nodal translational displacements in SS coordinate system. 
"M1N2TDyss"    - Nodal translational displacements in SS coordinate system. 
"M1N2TDzss"    - Nodal translational displacements in SS coordinate system.       
"M3N3TDxss"    - Nodal translational displacements in SS coordinate system. 连接杆件1外端,即点8在全局坐标系下平动位移
"M3N3TDyss"   
"M3N3TDzss"
"M3N3RDxe"    - Nodal rotational displacements in local coordinate system. 连接杆件1外端,即点8在局部坐标系中的转动位移,即变形
"M3N3RDye"   
"M3N3RDze"
"M4N3TDxss"    - Nodal translational displacements in SS coordinate system. 连接杆件2外端,即点9在全局坐标系下平动位移
"M4N3TDyss"   
"M4N3TDzss"
"M4N3RDxe"    - Nodal rotational displacements in local coordinate system. 连接杆件2外端,即点9在局部坐标系中的转动位移,即变形
"M4N3RDye"   
"M4N3RDze"   
"M5N1TDxss"    - Nodal translational displacements in SS coordinate system.点8和12连接中,点8在全局坐标系下平动位移
"M5N1TDyss"   
"M5N1TDzss"
"M5N1RDxe"    - Nodal rotational displacements in local coordinate system. 点8和12连接中,点8在局部坐标系中的转动位移,即变形
"M5N1RDye"   
"M5N1RDze" 
"M6N3TDxss"    - Nodal translational displacements in SS coordinate system. 连接杆件3外端,即点10在全局坐标系下平动位移
"M6N3TDyss"   
"M6N3TDzss"
"M6N3RDxe"    - Nodal rotational displacements in local coordinate system. 连接杆件3外端,即点10在局部坐标系中的转动位移,即变形
"M6N3RDye"   
"M6N3RDze"  
"M7N1TDxss"    - Nodal translational displacements in SS coordinate system. 点10和16连接中,点10在全局坐标系下平动位移
"M7N1TDyss"   
"M7N1TDzss"  
"M7N1RDxe"    -
"M7N1RDye"   
"M7N1RDze"
"M8N3TDxss"    - Nodal translational displacements in SS coordinate system. 连接杆件4外端,即点11在全局坐标系下平动位移
"M8N3TDyss"   
"M8N3TDzss"
"M8N3RDxe"    - Nodal rotational displacements in local coordinate system. 连接杆件4外端,即点11在局部坐标系中的转动位移,即变形
"M8N3RDye"   
"M8N3RDze"     
"IntfTDXss"   - X-displacement at the interface
"IntfTDYss"   - Y-displacement at the interface
"IntfTDZss"   - Z-displacement at the interface
"IntfRDXss"   - X-rotation at the interface
"IntfRDYss"   - Y-rotation at the interface
"IntfRDZss"   - Z-rotation at the interface
"IntfFXss"   - X-forces at the interface
"IntfFYss"   - X-displacement at the interface
"IntfFZss"   - X-displacement at the interface
"IntfMXss"   - X-displacement at the interface 
"IntfMYss"   - X-displacement at the interface
"IntfMZss"   - X-displacement at the interface
END of output channels and end of file. (the word "END" must appear in the first 3 columns of this line)

Dear @Kun.Jiang,

With Nmodes = 0 and SttcSolve = False in SubDyn, the substructure is modeled rigidly, just as if it would have been modeled as the platform in ElastoDyn. So, if you disable SubDyn, and define the mass, center of mass, and moments of inertia of the substructure in ElastoDyn instead, does the solution still terminate unexpectedly?

Best regards,

Dear Jason,

I tried doing as you said and the solution ended normally. Does this mean that there is a problem with my SubDyn modeling? And can you give me some advice on how I can modify the SubDyn input file?

Best regards,

Kun.Jiang

Dear @Kun.Jiang,

This means that the problem is in the module-to-module coupling. When running with SubDyn enabled, have you set NumCrctn = 1 in the OpenFAST primary (.fst) input file as recommended in the link I referenced above? Does dropping the global time step (DT) affect the solution? Have you set DT_UJac equal to 1/10th of the natural period of the roll/pitch period as generally recommended for FOWT?

Best regards,

Dear Jason,

I did set NumCrctn = 1 in the OpenFAST main (.fst) input file, but I didn’t drop the global time step (DT) because removing the DT would cause the initialization to fail. Following your suggestion. I set DT_UJac to 1/10 of the natural period of pitch vibration of the Barge-style floating offshore wind turbine, which is 1.19, and the solution still terminates halfway. But when I set the period to 1/10 of the period corresponding to the maximum frequency of SubDyn indicated in the program, the value is 0.185, and the program can end normally. Is there any problem with this setting?

Best regards,

Kun.Jiang

Dear @Kun.Jiang,

I would guess DT_UJac need not be less than 1/10th the barge-pitch period. But if lowering DT_UJac even further changes the solution, this means that your model is not numerically converged, so, lowering the time step (DT) should help. I didn’t mean for you to remove DT; rather, I meant that you should lower the value of DT.

Best regards,

Dear Jason,

I set DT_UJac to 1/10 of the barge pitch period as you suggested, then decreased the time step (DT) from 0.005 to 0.0025 and the solution terminated at 808.5s. I lowered the DT to 0.00125 again and the solution still terminated at 800.5s. I think DT is already very small, but the problem is still not solved. I’m very confused about this.

Best regards,

Kun.Jiang