Hydrodynamic implementation

Discuss wave-energy device design and modeling

Moderator: Bonnie.Jonkman

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Jul 13, 2020 9:16 am

Dear Riccardo,

Again, your r_cmM vector and r_cm*M components of the mass matrix are missing the small nonzero x-offset of the center of mass due the overhanging mass of the RNA. Likewise, I would expect off-diagonal terms to appear in the inertia components of the mass matrix. The full mass matrix can be obtained through a FAST linearization analysis. The COG in My_restoring should be -78 m, not -89.9155 m. Also, the small x-offset of the center of mass will also have some effect on the gravitational restoring.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Mon Jul 13, 2020 12:04 pm

Dear Jason,

I tried to find the mass matrix through FAST linearization as you suggested, but I could not find the mass matrix among the outputs (figure 1).
I'm using FAST v8.16, so I had to disable HydroDyn and Mapp otherwise it wouldn't allow me to linearize.
I would be very grateful if you could show me how to derive M through linearization.

Best regards,
Riccardo.
Attachments
figure 1.png
figure 1.png (22.31 KiB) Viewed 265 times

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Jul 13, 2020 1:03 pm

Dear Riccardo,

The linearization for floating offshore wind systems was not available in FAST v8, but was recently introduced in OpenFAST--see: https://github.com/OpenFAST/openfast/pull/350.

The FAST v8 and OpenFAST linearizations do not show the mass matrix directly, but this matrix can often be inferred from other matrices generated through the linearization process. A similar question was asked and answered in the following forum topic: viewtopic.php?f=4&t=2487&p=14535.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Wed Jul 15, 2020 8:13 am

Dear Jason,
Analyzing in more detail the outputs of FAST and my model I believe that the problem is the mass matrix.
So as you suggested I successfully downloaded OpenFast, following the instructions in the following doc:
-https://openfast.readthedocs.io/en/dev/source/install/index.html
and also your suggestions within the following issue:
-https://github.com/OpenFAST/openfast/issues/387 .
I used the same input files used for FAST v8 of test 24, and I set the "Linearize" flag inside the .fst file to true.
I believe, however, Hydrodyn and MAP ++ input files with an updated format are needed to be able to linearize, this is because when I try to running OpenLoop.m this error appears:

"Error using Run_OpenLoop (line 30)
Error reported by S-function 'FAST_SFunc' in 'OpenLoop / FAST Nonlinear Wind
Turbine / S-Function ':
FAST_InitializeAll: FAST_Init: ValidateInputData: Linearization is not implemented for the HydroDyn module.
ValidateInputData: Linearization is not implemented for any of the mooring modules. "

If that's how I think, could you tell me where to get the updated input files, and how they should be set?
If it were not so, where am I wrong?

These are the input file that I used:

Code: Select all

------- FAST v8.16.* INPUT FILE ------------------------------------------------
FAST Certification Test #24: NREL 5.0 MW Baseline Wind Turbine with OC3 Hywind Configuration, for use in offshore analysis
---------------------- SIMULATION CONTROL --------------------------------------
False         Echo            - Echo input data to <RootName>.ech (flag)
"FATAL"       AbortLevel      - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"}
       1200   TMax            - Total run time (s)
       0.05   DT              - Recommended module time step (s)
          1   InterpOrder     - Interpolation order for input/output time history (-) {1=linear, 2=quadratic}
          0   NumCrctn        - Number of correction iterations (-) {0=explicit calculation, i.e., no corrections}
        1.5   DT_UJac         - Time between calls to get Jacobians (s)
      1E+06   UJacSclFact     - Scaling factor used in Jacobians (-)
---------------------- FEATURE SWITCHES AND FLAGS ------------------------------
          1   CompElast       - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades}
          1   CompInflow      - Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM}
          0   CompAero        - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15}
          0   CompServo       - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn}
          1   CompHydro       - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn}
          0   CompSub         - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn}
          1   CompMooring     - Compute mooring system (switch) {0=None; 1=MAP++; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex}
          0   CompIce         - Compute ice loads (switch) {0=None; 1=IceFloe; 2=IceDyn}
---------------------- INPUT FILES ---------------------------------------------
"5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_ElastoDyn.dat"    EDFile          - Name of file containing ElastoDyn input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(1)    - Name of file containing BeamDyn input parameters for blade 1 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(2)    - Name of file containing BeamDyn input parameters for blade 2 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(3)    - Name of file containing BeamDyn input parameters for blade 3 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_InflowWind_12mps.dat"    InflowFile      - Name of file containing inflow wind input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_AeroDyn15.dat"    AeroFile        - Name of file containing aerodynamic input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_ServoDyn.dat"    ServoFile       - Name of file containing control and electrical-drive input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_HydroDyn.dat"    HydroFile       - Name of file containing hydrodynamic input parameters (quoted string)
"unused"      SubFile         - Name of file containing sub-structural input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_OC3Hywind_MAP.dat"    MooringFile     - Name of file containing mooring system input parameters (quoted string)
"unused"      IceFile         - Name of file containing ice input parameters (quoted string)
---------------------- OUTPUT --------------------------------------------------
True          SumPrint        - Print summary data to "<RootName>.sum" (flag)
          1   SttsTime        - Amount of time between screen status messages (s)
      99999   ChkptTime       - Amount of time between creating checkpoint files for potential restart (s)
       0.05   DT_Out          - Time step for tabular output (s) (or "default")
          0   TStart          - Time to begin tabular output (s)
          2   OutFileFmt      - Format for tabular (time-marching) output file (switch) {1: text file [<RootName>.out], 2: binary file [<RootName>.outb], 3: both}
True          TabDelim        - Use tab delimiters in text tabular output file? (flag) {uses spaces if false}
"ES10.3E2"    OutFmt          - Format used for text tabular output, excluding the time channel.  Resulting field should be 10 characters. (quoted string)
---------------------- LINEARIZATION -------------------------------------------
False         Linearize       - Linearization analysis (flag)
          2   NLinTimes       - Number of times to linearize (-) [>=1] [unused if Linearize=False]
         30,         60    LinTimes        - List of times at which to linearize (s) [1 to NLinTimes] [unused if Linearize=False]
          2   LinInputs       - Inputs included in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)} [unused if Linearize=False]
          0   LinOutputs      - Outputs included in linearization (switch) {0=none; 1=from OutList(s); 2=all module outputs (debug)} [unused if Linearize=False]
False         LinOutJac       - Include full Jacobians in linearization output (for debug) (flag) [unused if Linearize=False; used only if LinInputs=LinOutputs=2]
False         LinOutMod       - Write module-level linearization output files in addition to output for full system? (flag) [unused if Linearize=False]
---------------------- VISUALIZATION ------------------------------------------
          0   WrVTK           - VTK visualization data output: (switch) {0=none; 1=initialization data only; 2=animation}
          2   VTK_type        - Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)} [unused if WrVTK=0]
false         VTK_fields      - Write mesh fields to VTK data files? (flag) {true/false} [unused if WrVTK=0]
         15   VTK_fps         - Frame rate for VTK output (frames per second){will use closest integer multiple of DT} [used only if WrVTK=2]


Code: Select all

------- HydroDyn v2.03.* Input File --------------------------------------------
NREL 5.0 MW offshore baseline floating platform HydroDyn input properties for the OC3 Hywind.
False            Echo           - Echo the input file data (flag)
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
          1025   WtrDens        - Water density (kg/m^3)
           250   WtrDpth        - Water depth (meters)
             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]
---------------------- 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]
          3630   WaveTMax       - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]
          0.25   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]
          2.25   WaveHs        - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
           6.5   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   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]
           500   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   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   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]
            90   WaveDirRange   - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]
     123456789   WaveSeed(1)    - First  random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
    1011121314   WaveSeed(2)    - Second random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
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]
             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]
---------------------- 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   WvLowCOffD     - Low  frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           3.5   WvHiCOffD      - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           0.1   WvLowCOffS     - Low  frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
           3.5   WvHiCOffS      - High frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
             0   CurrMod        - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)
             0   CurrSSV0       - Sub-surface current velocity at still water level  (m/s) [used only when CurrMod=1]
"DEFAULT"        CurrSSDir      - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]
            20   CurrNSRef      - Near-surface current reference depth            (meters) [used only when CurrMod=1]
             0   CurrNSV0       - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]
             0   CurrNSDir      - Near-surface current heading direction         (degrees) [used only when CurrMod=1]
             0   CurrDIV        - Depth-independent current velocity                 (m/s) [used only when CurrMod=1]
             0   CurrDIDir      - Depth-independent current heading direction    (degrees) [used only when CurrMod=1]
---------------------- 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)
"HydroData/Spar"    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   WAMITULEN      - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]
       8026.50   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   PtfmCOBxt      - The xt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             0   PtfmCOByt      - The yt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             2   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   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!]
          0.05   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]
---------------------- 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]
             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. 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}
---------------------- FLOATING PLATFORM FORCE FLAGS  -------------------------- [unused with WaveMod=6]
True             PtfmSgF        - Platform horizontal surge translation force (flag) or DEFAULT
True             PtfmSwF        - Platform horizontal sway translation force (flag) or DEFAULT
True             PtfmHvF        - Platform vertical heave translation force (flag) or DEFAULT
True             PtfmRF         - Platform roll tilt rotation force (flag) or DEFAULT
True             PtfmPF         - Platform pitch tilt rotation force (flag) or DEFAULT
True             PtfmYF         - Platform yaw rotation force (flag) or DEFAULT
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  --------------
             0             0             0             0             0             0   AddF0    - Additional preload (N, N-m)
             0             0             0             0             0             0   AddCLin  - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)
             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))
             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)
             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
---------------------- AXIAL COEFFICIENTS --------------------------------------
             1   NAxCoef        - Number of axial coefficients (-)
AxCoefID  AxCd     AxCa     AxCp
   (-)    (-)      (-)      (-)
    1     0.00     0.00     0.00
---------------------- MEMBER JOINTS -------------------------------------------
             4   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.00000     0.00000  -120.00000      1            0
    2     0.00000     0.00000   -12.00000      1            0
    3     0.00000     0.00000    -4.00000      1            0
    4     0.00000     0.00000    10.00000      1            0
---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------
             2   NPropSets      - Number of member property sets (-)
PropSetID    PropD         PropThck
   (-)        (m)            (m)
    1        9.40000        0.00010
    2        6.50000        0.00010
---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
     SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.0        0.00        0.00        0.00        0.00        0.00        0.00        0.00        0.00        0.00
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
             0   NCoefDpth       - Number of depth-dependent coefficients (-)
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCa   DpthAxCaMG       DpthAxCp   DpthAxCpMG
(m)       (-)      (-)        (-)      (-)            (-)      (-)          (-)        (-)              (-)         (-)
---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------
             0   NCoefMembers       - Number of member-based coefficients (-)
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)
-------------------- MEMBERS -------------------------------------------------
             3   NMembers       - Number of members (-)
MemberID  MJointID1  MJointID2  MPropSetID1  MPropSetID2  MDivSize   MCoefMod  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]
  (-)        (-)        (-)         (-)          (-)        (m)      (switch)   (flag)
    1         1          2           1            1         0.5000      1        TRUE
    2         2          3           1            2         0.5000      1        TRUE
    3         3          4           2            2         0.5000      1        TRUE
---------------------- 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   NOutLoc    NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0]
  (-)        (-)        (-)
---------------------- 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!]


Code: Select all

---------------------- LINE DICTIONARY ---------------------------------------
LineType     Diam     MassDenInAir    EA        CB    CIntDamp   Ca   Cdn   Cdt
(-)          (m)      (kg/m)         (N)       (-)     (Pa-s)    (-)  (-)   (-)
chainup     0.0809     138.73     1071000000    1      1.0E8      0.6 -1.0   0.05
---------------------- NODE PROPERTIES ---------------------------------------
Node Type       X     Y     Z     M     B     FX    FY    FZ
(-)  (-)       (m)   (m)   (m)   (kg)  (mˆ3)  (N)   (N)   (N)
1  fix    -152.17   0 -250  0 0 # # #
2  Vessel    -31.5   0 -11.3  0 0 # # #
3   fix   -76.0850   131.7831   -250.0000   0   0   #   #   #
4   Vessel   -15.7500   27.2798   -11.3000   0   0   #   #   #
5   fix   76.0850   131.7831   -250.0000   0   0   #   #   #
6   Vessel   15.7500   27.2798   -11.3000   0   0   #   #   #
7   fix   152.1700   0.0000   -250.0000   0   0   #   #   #
8   Vessel   31.5000   0.0000   -11.3000   0   0   #   #   #
9   fix   76.0850   -131.7831   -250.0000   0   0   #   #   #
10   Vessel   15.7500   -27.2798   -11.3000   0   0   #   #   #
11   fix   -76.0850   -131.7831   -250.0000   0   0   #   #   #
12   Vessel   -15.7500   -27.2798   -11.3000   0   0   #   #   #
---------------------- LINE PROPERTIES ---------------------------------------
Line    LineType  UnstrLen    NodeAnch  NodeFair  Flags
(-)      (-)       (m)         (-)       (-)       (-)
1 chainup  299.34 1 2 GX_FORCE GY_FORCE GZ_FORCE
2   chainup   299.34   3   4   GX_FORCE GY_FORCE GZ_FORCE   
3   chainup   299.34   5   6   GX_FORCE GY_FORCE GZ_FORCE   
4   chainup   299.34   7   8   GX_FORCE GY_FORCE GZ_FORCE   
5   chainup   299.34   9   10   GX_FORCE GY_FORCE GZ_FORCE   
6   chainup   299.34   11   12   GX_FORCE GY_FORCE GZ_FORCE
---------------------- SOLVER OPTIONS-----------------------------------------
Option
(-)
inner_ftol 1e-6
inner_gtol 1e-12
inner_xtol 1e-6
outer_tol 1e-4
inner_max_its 400
outer_max_its 400


Thank you a lot for your availability. Best regards,
Riccardo.

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Wed Jul 15, 2020 8:22 am

Dear Riccardo,

You can only linearize a model with HydroDyn and MAP++ enabled if you compile the version in OpenFAST-dev, which includes the recently merged pull request #350, which I linked to in the post above. That said, if your only interest is obtaining the 6x6 mass matrix, all you should need to enable is the ElastoDyn module (CompElast = 1; all others = 0), and in ElastoDyn, disable all structural DOFs except the six platform DOFs.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Tue Jul 28, 2020 7:55 am

Dear Jason,
I managed to solve the acceleration problem by extrapolating the mass matrix from the linearization of the system as you suggested (figure 1 on the left). Now, however, I have a problem with the displacement in the of surge and pitch directions.
In fact, as you can see from figure 1 on the right, the trend in my model is very similar to that of FAST, but the latter has a damping of the oscillations despite the absence of the DRAG. This is very strange to me because the speeds of the two models are also very similar to each other (figure 1 in the middle). In addition, I tried to integrate the output speed from FAST with my model and I also get the movements as FAST, so it is not a problem of the integration method used in my model.
Also I set the starting point coincident with the equilibrium point, therefore in static conditions the system is stable.

Is there any explanation that motivates the fact that although I have similar accelerations and speeds, there are these differences on displacements?
And in general why does the system dampen despite the wave forces continue to oscillate around the same values?

Thank you for your help, best regards.

Riccardo.
Attachments
Figure 1.jpg
Figure 1.jpg (228.07 KiB) Viewed 180 times

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Thu Jul 30, 2020 9:34 pm

Dear Riccardo,

I'm not sure. Can you explain your simulation set up? What wind and wave conditions are you simulating and why aerodynamic and hydrodynamic options have you enabled?

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Fri Jul 31, 2020 7:59 am

Dear Jason,

Thanks for your valuable help. Analyzing the problem in more detail I found that the difference between the two models is given by the Radiation forces.
This is because for my model I used the state space model matrices obtained through FOAMM. These, unlike those used in FAST, generate very little damping.
I also tried to use WAMIT's output matrices, but these generate instability in my model.
At this point I was wondering if there was a way to extract radiation force matrices through linearization. I tried to linearize by activating only the ElastoDyn and HydroDyn modules through OpenFAST, but I get this error:

"Error using Run_OpenLoop (line 30)
Error reported by S-function 'FAST_SFunc' in 'OpenLoop / FAST Nonlinear Wind
Turbine / S-Function ':
FAST_InitializeAll: FAST_Init: ValidateInputData: Linearization is not implemented
for the HydroDyn module. "

So my question is: how do I set up input files to get what I need?

Best regards,

Riccardo.

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Fri Jul 31, 2020 10:37 am

Dear Riccardo,

The capability to linearize an OpenFAST model with HydroDyn enabled was recently implemented and merged into the dev branch of OpenFAST--see: https://github.com/OpenFAST/openfast/pull/350. However, the linearization of the wave-radiation matrices involves first fitting a linear state-space model to the wave-radiation convolution; the details of which are discussed in our IOWTC 2018 paper: https://www.nrel.gov/docs/fy19osti/71865.pdf (the MATLAB-based preprocessor SS_Fitting was developed to support the fitting of a linear state-space model).

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Mon Aug 03, 2020 8:57 am

Dear Jason,

Thank you a lot for your help. As far as the damped behavior of FAST is concerned, I cannot understand the physical reason why the system has a damped movement until reaching the steady-state value equal to zero, although it continues to undergo the excitation force of the waves all the time .
As for the test settings, the HydroDyn input files and the '.fst' file are shown below, while the wind has been set to zero.

Code: Select all

------- OpenFAST example INPUT FILE -------------------------------------------
FAST Certification Test #24: NREL 5.0 MW Baseline Wind Turbine with OC3 Hywind Configuration, for use in offshore analysis
---------------------- SIMULATION CONTROL --------------------------------------
True          Echo            - Echo input data to <RootName>.ech (flag)
"FATAL"       AbortLevel      - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"}
       1200   TMax            - Total run time (s)
       0.05   DT              - Recommended module time step (s)
          1   InterpOrder     - Interpolation order for input/output time history (-) {1=linear, 2=quadratic}
          0   NumCrctn        - Number of correction iterations (-) {0=explicit calculation, i.e., no corrections}
        1.5   DT_UJac         - Time between calls to get Jacobians (s)
      1E+06   UJacSclFact     - Scaling factor used in Jacobians (-)
---------------------- FEATURE SWITCHES AND FLAGS ------------------------------
          1   CompElast       - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades}
          1   CompInflow      - Compute inflow wind velocities (switch) {0=still air; 1=InflowWind; 2=external from OpenFOAM}
          0   CompAero        - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15}
          0   CompServo       - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn}
          1   CompHydro       - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn}
          0   CompSub         - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform MCKF}
          1   CompMooring     - Compute mooring system (switch) {0=None; 1=MAP++; 2=FEAMooring; 3=MoorDyn; 4=OrcaFlex}
          0   CompIce         - Compute ice loads (switch) {0=None; 1=IceFloe; 2=IceDyn}
---------------------- INPUT FILES ---------------------------------------------
"NRELOffshrBsline5MW_OC3Hywind_ElastoDyn.dat"    EDFile          - Name of file containing ElastoDyn input parameters (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(1)    - Name of file containing BeamDyn input parameters for blade 1 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(2)    - Name of file containing BeamDyn input parameters for blade 2 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_BeamDyn.dat"    BDBldFile(3)    - Name of file containing BeamDyn input parameters for blade 3 (quoted string)
"5MW_Baseline/NRELOffshrBsline5MW_InflowWind_12mps.dat"    InflowFile      - Name of file containing inflow wind input parameters (quoted string)
"NRELOffshrBsline5MW_OC3Hywind_AeroDyn15.dat"    AeroFile        - Name of file containing aerodynamic input parameters (quoted string)
"NRELOffshrBsline5MW_OC3Hywind_ServoDyn.dat"    ServoFile       - Name of file containing control and electrical-drive input parameters (quoted string)
"NRELOffshrBsline5MW_OC3Hywind_HydroDyn.dat"    HydroFile       - Name of file containing hydrodynamic input parameters (quoted string)
"unused"      SubFile         - Name of file containing sub-structural input parameters (quoted string)
"NRELOffshrBsline5MW_OC3Hywind_MAP.dat"    MooringFile     - Name of file containing mooring system input parameters (quoted string)
"unused"      IceFile         - Name of file containing ice input parameters (quoted string)
---------------------- OUTPUT --------------------------------------------------
True          SumPrint        - Print summary data to "<RootName>.sum" (flag)
          1   SttsTime        - Amount of time between screen status messages (s)
      99999   ChkptTime       - Amount of time between creating checkpoint files for potential restart (s)
     0.05   DT_Out          - Time step for tabular output (s) (or "default")
          0   TStart          - Time to begin tabular output (s)
          2   OutFileFmt      - Format for tabular (time-marching) output file (switch) {1: text file [<RootName>.out], 2: binary file [<RootName>.outb], 3: both}
True          TabDelim        - Use tab delimiters in text tabular output file? (flag) {uses spaces if false}
"ES10.3E2"    OutFmt          - Format used for text tabular output, excluding the time channel.  Resulting field should be 10 characters. (quoted string)
---------------------- LINEARIZATION -------------------------------------------
False        Linearize       - Linearization analysis (flag)
          2   NLinTimes       - Number of times to linearize (-) [>=1] [unused if Linearize=False]
         30,         60    LinTimes        - List of times at which to linearize (s) [1 to NLinTimes] [unused if Linearize=False]
          1   LinInputs       - Inputs included in linearization (switch) {0=none; 1=standard; 2=all module inputs (debug)} [unused if Linearize=False]
          1   LinOutputs      - Outputs included in linearization (switch) {0=none; 1=from OutList(s); 2=all module outputs (debug)} [unused if Linearize=False]
False         LinOutJac       - Include full Jacobians in linearization output (for debug) (flag) [unused if Linearize=False; used only if LinInputs=LinOutputs=2]
False         LinOutMod       - Write module-level linearization output files in addition to output for full system? (flag) [unused if Linearize=False]
---------------------- VISUALIZATION ------------------------------------------
          0   WrVTK           - VTK visualization data output: (switch) {0=none; 1=initialization data only; 2=animation}
          2   VTK_type        - Type of VTK visualization data: (switch) {1=surfaces; 2=basic meshes (lines/points); 3=all meshes (debug)} [unused if WrVTK=0]
false         VTK_fields      - Write mesh fields to VTK data files? (flag) {true/false} [unused if WrVTK=0]
         15   VTK_fps         - Frame rate for VTK output (frames per second){will use closest integer multiple of DT} [used only if WrVTK=2]
         



Code: Select all

------- HydroDyn v2.03.* Input File --------------------------------------------
NREL 5.0 MW offshore baseline floating platform HydroDyn input properties for the OC3 Hywind.
False            Echo           - Echo the input file data (flag)
---------------------- ENVIRONMENTAL CONDITIONS --------------------------------
          1025   WtrDens        - Water density (kg/m^3)
           320   WtrDpth        - Water depth (meters)
             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]
---------------------- WAVES ---------------------------------------------------
             2   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]
          3630   WaveTMax       - Analysis time for incident wave calculations (sec) [unused when WaveMod=0; determines WaveDOmega=2Pi/WaveTMax in the IFFT]
          0.25   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]
          1.25   WaveHs         - Significant wave height of incident waves (meters) [used only when WaveMod=1, 2, or 3]
           4.5   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   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]
           500   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   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   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]
            90   WaveDirRange   - Range of wave directions (full range: WaveDir +/- 1/2*WaveDirRange) (degrees) [only used when WaveMod=2,3,or 4 and WaveDirMod=1]
     123456789   WaveSeed(1)    - First  random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
    1011121314   WaveSeed(2)    - Second random seed of incident waves [-2147483648 to 2147483647]    (-)       [unused when WaveMod=0, 5, or 6]
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]
             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]
---------------------- 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   WvLowCOffD     - Low  frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           3.5   WvHiCOffD      - High frequency cutoff used in the difference-frequencies (rad/s) [Only used with a difference-frequency method]
           0.1   WvLowCOffS     - Low  frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
           3.5   WvHiCOffS      - High frequency cutoff used in the summation-frequencies  (rad/s) [Only used with a summation-frequency  method]
---------------------- CURRENT ------------------------------------------------- [unused with WaveMod=6]
             0   CurrMod        - Current profile model {0: none=no current, 1: standard, 2: user-defined from routine UserCurrent} (switch)
             0   CurrSSV0       - Sub-surface current velocity at still water level  (m/s) [used only when CurrMod=1]
"DEFAULT"        CurrSSDir      - Sub-surface current heading direction (degrees) or DEFAULT (string) [used only when CurrMod=1]
            20   CurrNSRef      - Near-surface current reference depth            (meters) [used only when CurrMod=1]
             0   CurrNSV0       - Near-surface current velocity at still water level (m/s) [used only when CurrMod=1]
             0   CurrNSDir      - Near-surface current heading direction         (degrees) [used only when CurrMod=1]
             0   CurrDIV        - Depth-independent current velocity                 (m/s) [used only when CurrMod=1]
             0   CurrDIDir      - Depth-independent current heading direction    (degrees) [used only when CurrMod=1]
---------------------- 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)
"5MW_Baseline/HydroData/Spar"    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   WAMITULEN      - Characteristic body length scale used to redimensionalize WAMIT output (meters) [only used when PotMod=1]
       8078.4575   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   PtfmCOBxt      - The xt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             0   PtfmCOByt      - The yt offset of the center of buoyancy (COB) from the platform reference point (meters)  [only used when PotMod=1]
             2   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   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!]
          0.05   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]
---------------------- 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]
             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. 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}
---------------------- FLOATING PLATFORM FORCE FLAGS  -------------------------- [unused with WaveMod=6]
True             PtfmSgF        - Platform horizontal surge translation force (flag) or DEFAULT
True             PtfmSwF        - Platform horizontal sway translation force (flag) or DEFAULT
True             PtfmHvF        - Platform vertical heave translation force (flag) or DEFAULT
True             PtfmRF         - Platform roll tilt rotation force (flag) or DEFAULT
True             PtfmPF         - Platform pitch tilt rotation force (flag) or DEFAULT
True             PtfmYF         - Platform yaw rotation force (flag) or DEFAULT
---------------------- PLATFORM ADDITIONAL STIFFNESS AND DAMPING  --------------
             0             0             0             0             0             0   AddF0    - Additional preload (N, N-m)
             0             0             0             0             0             0   AddCLin  - Additional linear stiffness (N/m, N/rad, N-m/m, N-m/rad)
             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))
             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)
             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
---------------------- AXIAL COEFFICIENTS --------------------------------------
             1   NAxCoef        - Number of axial coefficients (-)
AxCoefID  AxCd     AxCa     AxCp
   (-)    (-)      (-)      (-)
    1     0.00     0.00     1.00
---------------------- MEMBER JOINTS -------------------------------------------
             4   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.00000     0.00000  -120.00000      1            0
    2     0.00000     0.00000   -12.00000      1            0
    3     0.00000     0.00000    -4.00000      1            0
    4     0.00000     0.00000    10.00000      1            0
---------------------- MEMBER CROSS-SECTION PROPERTIES -------------------------
             2   NPropSets      - Number of member property sets (-)
PropSetID    PropD         PropThck
   (-)        (m)            (m)
    1        9.40000        0.00010
    2        6.50000        0.00010
---------------------- SIMPLE HYDRODYNAMIC COEFFICIENTS (model 1) --------------
     SimplCd    SimplCdMG    SimplCa    SimplCaMG    SimplCp    SimplCpMG   SimplAxCa  SimplAxCaMG  SimplAxCp   SimplAxCpMG
       (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)         (-)
       0.00        0.00        0.00        0.00       0.00        0.00        0.00        0.00        0.00        0.00
---------------------- DEPTH-BASED HYDRODYNAMIC COEFFICIENTS (model 2) ---------
             0   NCoefDpth       - Number of depth-dependent coefficients (-)
Dpth      DpthCd   DpthCdMG   DpthCa   DpthCaMG       DpthCp   DpthCpMG   DpthAxCa   DpthAxCaMG       DpthAxCp   DpthAxCpMG
(m)       (-)      (-)        (-)      (-)            (-)      (-)          (-)        (-)              (-)         (-)
---------------------- MEMBER-BASED HYDRODYNAMIC COEFFICIENTS (model 3) --------
             0   NCoefMembers       - Number of member-based coefficients (-)
MemberID    MemberCd1     MemberCd2    MemberCdMG1   MemberCdMG2    MemberCa1     MemberCa2    MemberCaMG1   MemberCaMG2    MemberCp1     MemberCp2    MemberCpMG1   MemberCpMG2   MemberAxCa1   MemberAxCa2  MemberAxCaMG1 MemberAxCaMG2  MemberAxCp1  MemberAxCp2   MemberAxCpMG1   MemberAxCpMG2
   (-)         (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)           (-)
-------------------- MEMBERS -------------------------------------------------
             3   NMembers       - Number of members (-)
MemberID  MJointID1  MJointID2  MPropSetID1  MPropSetID2  MDivSize   MCoefMod  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]
  (-)        (-)        (-)         (-)          (-)        (m)      (switch)   (flag)
    1         1          2           1            1         0.5000      1        TRUE
    2         2          3           1            2         0.5000      1        TRUE
    3         3          4           2            2         0.5000      1        TRUE
---------------------- 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   NOutLoc    NodeLocs [NOutLoc < 10; node locations are normalized distance from the start of the member, and must be >=0 and <= 1] [unused if NMOutputs=0]
  (-)        (-)        (-)
---------------------- 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 -----------------------------------------


Best regards,

Riccardo.

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Aug 03, 2020 10:41 am

Dear Riccardo,

It looks like you've disabled aerodynamic loads, viscous drag, additional platform damping, and mooring damping in your model. So, the only remaining damping comes from wave radiation. It looks like you've selected RdtnMod = 2, i.e., the state-space-based radiation damping option. The damping in this model will depend on how you've set the linear state-space radiation model.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov

Riccardo.Caradonna
Posts: 20
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Tue Aug 04, 2020 9:15 am

Dear Jason,

Thank you for the reply. To obtain the matrices A, B, C, D related to the linear state-space radiation model I used the "ss_fitting.m" function.
Is there any way to remove the damping effect from the state-space model settings?
The input file used is the following:

Code: Select all

%%---- SS Fitting Options ----%%
HydroData/spar          % Rad.FileName:  Wamit Files name and Location
[1 1 1 1 1 1]           % gp.DoF:        Degree of Freedom enabled
[0.0 2.5]               % Rad.twr:       Typical local frequencies range (rad/s)
1                       % Rad.wwf:       Frequencies weighting factors
3                       % Rad.tfi:       Indentification Method: 1-Freq Ident; 2- FDI; 3- TD-Ls; 4-TD-Realization.
0.97                    % Rad.fit:       Fit required for the parametric model (max. recomended 0.99)
1                       % Rad.ppmf:      Plot the parametric model fit (0 or 1)
0                       % Rad.fmt:       Manual (1) or Automatic(0) order reduction (Only if method=4)


Best regards,
Riccardo.

Jason.Jonkman
Posts: 4952
Joined: Thu Nov 03, 2005 4:38 pm
Location: Boulder, CO
Contact:

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Tue Aug 04, 2020 12:37 pm

Dear Ricardo,

Zeroing out the C matrix in the linear state-space wave-radiation model will eliminate the wave-radiation damping.

Best regards,
Jason Jonkman, Ph.D.
Senior Engineer | National Wind Technology Center (NWTC)

National Renewable Energy Laboratory (NREL)
15013 Denver West Parkway | Golden, CO 80401
+1 (303) 384 – 7026 | Fax: +1 (303) 384 – 6901
nwtc.nrel.gov


Return to “Wave Energy”

Who is online

Users browsing this forum: No registered users and 0 guests