Linearization off shore wind turbine

Hi everyone,

I am trying to obtain wind turbine linearized mass, dumping and stiffness matrix in order to create a frequency domain numerical model of an off-shore wind turbine. I found out that is possible to calculate theese marix with FAST. Reading different articles, I understood that is possible to do this dividing the wind turbine in 3 parts:

  1. Tower + Nacelle (Structural + Aerodynamic loads)
  2. Floating Platform (Structural + Hydrodynamic loads)
  3. Mooring lines
    In this case I just need the matrix concerning the part 1). The article: link.springer.com/article/10.10 … 016-0072-4 (section 2.3) can better explain the model.
    In order to perform this evaluation, I am running the Cert Test 24 (FAST Certification Test #24: NREL 5.0 MW Baseline Wind Turbine with OC3 Hywind Configuration) with “Run_OpenLoop.m” . I modified the imput file Test24 in CertTest disabling CompHydro and CompMoorin and I enabled Linearization. Of course I also modified the related imput files AeroDyn, ServoDyn, InflowWind (following Matlab warining instruction). Nonethless, I obtained this error warning:
Error using Run_OpenLoop (line 30)
Error reported by S-function 'FAST_SFunc' in 'OpenLoop/FAST Nonlinear Wind Turbine/S-Function':
FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:InflowWind_CalcOutput:CalcOutput:IfW_UniformWind_CalcOutput:GetWindSpeed:Height
must not be negative.
IfW_UniformWind_CalcOutput: Error calculating the wind speed at position (0.48055, -6.10150E-04,
-0.13752) in the wind-file coordinates"

I don’t understand what I am doing wrong. I attached also my imput files. Could you help me to understand my errors?

------- 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"} 60 TMax - Total run time (s) 0.0125 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} 2 CompAero - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15} 1 CompServo - Compute control and electrical-drive dynamics (switch) {0=None; 1=ServoDyn} 0 CompHydro - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn} 0 CompSub - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn} 0 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.0125 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 ------------------------------------------- True 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]------- AERODYN v15.03.* INPUT FILE ------------------------------------------------
NREL 5.0 MW offshore baseline aerodynamic input properties.
====== General Options ============================================================================
False Echo - Echo the input to “.AD.ech”? (flag)
“default” DTAero - Time interval for aerodynamic calculations {or “default”} (s)
1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT}
1 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model}
1 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction}
False TwrShadow – Calculate tower influence on wind based on downstream tower shadow? (flag)
True TwrAero - Calculate tower aerodynamic loads? (flag)
False FrozenWake - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing]
====== Environmental Conditions ===================================================================
1.225 AirDens - Air density (kg/m^3)
1.464E-05 KinVisc - Kinematic air viscosity (m^2/s)
335 SpdSound - Speed of sound (m/s)
====== Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1]
2 SkewMod - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [used only when WakeMod=1]
True TipLoss - Use the Prandtl tip-loss model? (flag) [used only when WakeMod=1]
True HubLoss - Use the Prandtl hub-loss model? (flag) [used only when WakeMod=1]
true TanInd - Include tangential induction in BEMT calculations? (flag) [used only when WakeMod=1]
False AIDrag - Include the drag term in the axial-induction calculation? (flag) [used only when WakeMod=1]
False TIDrag - Include the drag term in the tangential-induction calculation? (flag) [used only when WakeMod=1 and TanInd=TRUE]
“Default” IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or “default”} (-) [used only when WakeMod=1]
100 MaxIter - Maximum number of iteration steps (-) [used only when WakeMod=1]
====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2]
3 UAMod - Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez’s variant (changes in Cn,Cc,Cm), 3=Minemma/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2]
True FLookup - Flag to indicate whether a lookup for f’ will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2]
====== Airfoil Information =========================================================================
1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-)
2 InCol_Cl - The column in the airfoil tables that contains the lift coefficient (-)
3 InCol_Cd - The column in the airfoil tables that contains the drag coefficient (-)
4 InCol_Cm - The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-)
0 InCol_Cpmin - The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-)
8 NumAFfiles - Number of airfoil files used (-)
“Airfoils/Cylinder1.dat” AFNames - Airfoil file names (NumAFfiles lines) (quoted strings)
“Airfoils/Cylinder2.dat”
“Airfoils/DU40_A17.dat”
“Airfoils/DU35_A17.dat”
“Airfoils/DU30_A17.dat”
“Airfoils/DU25_A17.dat”
“Airfoils/DU21_A17.dat”
“Airfoils/NACA64_A17.dat”
====== Rotor/Blade Properties =====================================================================
True UseBlCm - Include aerodynamic pitching moment in calculations? (flag)
“NRELOffshrBsline5MW_AeroDyn_blade.dat” ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-)
“NRELOffshrBsline5MW_AeroDyn_blade.dat” ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2]
“NRELOffshrBsline5MW_AeroDyn_blade.dat” ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3]
====== Tower Influence and Aerodynamics ============================================================= [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]
11 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow=True, or TwrAero=True]
TwrElev TwrDiam TwrCd
(m) (m) (-)
1.0000000E+01 6.5000000E+00 1.0000000E+00
1.7760000E+01 6.2400000E+00 1.0000000E+00
2.5520000E+01 5.9700000E+00 1.0000000E+00
3.3280000E+01 5.7100000E+00 1.0000000E+00
4.1040000E+01 5.4500000E+00 1.0000000E+00
4.8800000E+01 5.1800000E+00 1.0000000E+00
5.6560000E+01 4.9200000E+00 1.0000000E+00
6.4320000E+01 4.6600000E+00 1.0000000E+00
7.2080000E+01 4.4000000E+00 1.0000000E+00
7.9840000E+01 4.1300000E+00 1.0000000E+00
8.7600000E+01 3.8700000E+00 1.0000000E+00
====== Outputs ====================================================================================
True SumPrint - Generate a summary file listing input options and interpolated properties to “.AD.sum”? (flag)
3 NBlOuts - Number of blade node outputs [0 - 9] (-)
1, 9, 19 BlOutNd - Blade nodes whose values will be output (-)
0 NTwOuts - Number of tower node outputs [0 - 9] (-)
1, 2, 6 TwOutNd - Tower nodes whose values will be output (-)
OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
“RtArea”
“B1N3Clrnc, B2N3Clrnc, B3N3Clrnc”
END of input file (the word “END” must appear in the first 3 columns of this last OutList line)

[/code]

[code]------- InflowWind v3.01.* INPUT FILE -------------------------------------------------------------------------
12 m/s turbulent winds on 31x31 FF grid and tower for FAST CertTests #18, #19, #21, #22, #23, and #24

False Echo - Echo input data to .ech (flag)
1 WindType - switch for wind file type (1=steady; 2=uniform; 3=binary TurbSim FF; 4=binary Bladed-style FF; 5=HAWC format; 6=User defined)
0 PropagationDir - Direction of wind propagation (meteoroligical rotation from aligned with X (positive rotates towards -Y) – degrees)
1 NWindVel - Number of points to output the wind velocity (0 to 9)
0 WindVxiList - List of coordinates in the inertial X direction (m)
0 WindVyiList - List of coordinates in the inertial Y direction (m)
90 WindVziList - List of coordinates in the inertial Z direction (m)
================== Parameters for Steady Wind Conditions [used only for WindType = 1] =========================
12 HWindSpeed - Horizontal windspeed (m/s)
90 RefHt - Reference height for horizontal wind speed (m)
0.2 PLexp - Power law exponent (-)
================== Parameters for Uniform wind file [used only for WindType = 2] ============================
“Wind/90m_12mps_twr.bts” Filename - Filename of time series data for uniform wind field. (-)
90 RefHt - Reference height for horizontal wind speed (m)
125.88 RefLength - Reference length for linear horizontal and vertical sheer (-)
================== Parameters for Binary TurbSim Full-Field files [used only for WindType = 3] ==============
“Wind/90m_12mps_twr.bts” Filename - Name of the Full field wind file to use (.bts)
================== Parameters for Binary Bladed-style Full-Field files [used only for WindType = 4] =========
“Wind/90m_12mps_twr” FilenameRoot - Rootname of the full-field wind file to use (.wnd, .sum)
False TowerFile - Have tower file (.twr) (flag)
================== Parameters for HAWC-format binary files [Only used with WindType = 5] =====================
“wasp\Output\basic_5u.bin” FileName_u - name of the file containing the u-component fluctuating wind (.bin)
“wasp\Output\basic_5v.bin” FileName_v - name of the file containing the v-component fluctuating wind (.bin)
“wasp\Output\basic_5w.bin” FileName_w - name of the file containing the w-component fluctuating wind (.bin)
64 nx - number of grids in the x direction (in the 3 files above) (-)
32 ny - number of grids in the y direction (in the 3 files above) (-)
32 nz - number of grids in the z direction (in the 3 files above) (-)
16 dx - distance (in meters) between points in the x direction (m)
3 dy - distance (in meters) between points in the y direction (m)
3 dz - distance (in meters) between points in the z direction (m)
90 RefHt - reference height; the height (in meters) of the vertical center of the grid (m)
------------- Scaling parameters for turbulence ---------------------------------------------------------
1 ScaleMethod - Turbulence scaling method [0 = none, 1 = direct scaling, 2 = calculate scaling factor based on a desired standard deviation]
1 SFx - Turbulence scaling factor for the x direction (-) [ScaleMethod=1]
1 SFy - Turbulence scaling factor for the y direction (-) [ScaleMethod=1]
1 SFz - Turbulence scaling factor for the z direction (-) [ScaleMethod=1]
12 SigmaFx - Turbulence standard deviation to calculate scaling from in x direction (m/s) [ScaleMethod=2]
8 SigmaFy - Turbulence standard deviation to calculate scaling from in y direction (m/s) [ScaleMethod=2]
2 SigmaFz - Turbulence standard deviation to calculate scaling from in z direction (m/s) [ScaleMethod=2]
------------- Mean wind profile parameters (added to HAWC-format files) ---------------------------------
5 URef - Mean u-component wind speed at the reference height (m/s)
2 WindProfile - Wind profile type (0=constant;1=logarithmic,2=power law)
0.2 PLExp - Power law exponent (-) (used for PL wind profile type only)
0.03 Z0 - Surface roughness length (m) (used for LG wind profile type only)
====================== OUTPUT ==================================================
False SumPrint - Print summary data to .IfW.sum (flag)
OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
“Wind1VelX” X-direction wind velocity at point WindList(1)
“Wind1VelY” Y-direction wind velocity at point WindList(1)
“Wind1VelZ” Z-direction wind velocity at point WindList(1)
END of input file (the word “END” must appear in the first 3 columns of this last OutList line)

[/code]

[code]------- 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 .ech (flag)
“default” DT - Communication interval for controllers (s) (or “default”)
---------------------- PITCH CONTROL -------------------------------------------
0 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0 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 ----------------------------
0 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
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)
---------------------- TUNED MASS DAMPER ---------------------------------------
False CompNTMD - Compute nacelle tuned mass damper {true/false} (flag)
“unused” NTMDfile - Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false]
False CompTTMD - Compute tower tuned mass damper {true/false} (flag)
“unused” TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false]
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
“ServoData/DISCON_OC3Hywind_x64.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 - Cuttoff 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 .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)

[/code]

Dear Christian,

Did you change the ElastoDyn primary input file in any way? When you disable HydroDyn and MoorDyn, you eliminate all reaction loads on the platform, so, with the platform degrees of freedom enabled in ElastoDyn, the full system (rotor, nacelle, tower, OC3-Hywind spar) will fall due to gravity; FAST will then abort soon after once an aerodynamic analysis node passes below the ground, where no wind is defined.

What type of reaction you are hoping to provide when linearizing the wind turbine model?

Best regards,

Dear Jason,
thank you for your answer. I want to evaluate the influence of rotor aerodynamics and wind turbine mass on the FOWT motions. I am looking for wind turbine dynamic characteristics (aeroelastic response) regarding the wind turbine (linearized Mass,Stiffness,Dumping matrix) mounted on the floating platform. I am also looking for the coefficient of the stiffness matrix regarding the mooring lines response. When I tried to change linearization (from FALSE to TRUE) in Test 24 I get an error about computing linearization with Hydrodynamic loads. For this reason I tried to put CompHydro to 0. I did not modified in any way ElastoDyn file and I get the error I mentioned in the previous post.
I do not need matrix concerning platform and addedd masses hydrodynamic response because I know that is possible to calculate them with WAMIT.
I don’t know If I was clear enough. If not I am looking for M_WT, B_WT, C_WT matrix of eq(4) in section 2.5 of the article linked in the previous post.

I know that when the simulation of a test is completed is possible to extract the matrix with the script GetMats. So my answer is: should I simulate an on-shore wind turbine similar to the 5MW_OC3 (since I will add, in my Frequency Domain model, the matrix about hydrodynamic response calculated with WAMIT) or there’s a way to run test24 with linearization without having errors?

p.s. I want to run the test for different windspeed at zero pitch angle.

Best regards

Dear Christian,

It is not possible to linearize FAST with HydroDyn enabled in FAST v8.16. But if you upgrade to OpenFAST v2.4 or newer (OpenFAST v3.0 is the current version in the main branch), linearization with HydroDyn is enabled. So, I recommend upgrading. In OpenFAST, Test24 from the CertTest is now named 5MW_OC3Spar_DLL_WTurb_WavesIrr in the OpenFAST regression test suite (r-test).

I don’t seem to have access to the article you linked to, but it sounds like you want the mass, stiffness, and damping of everything in the NREL 5-MW baseline wind turbine atop the OC3-Hywind spar except for hydrodynamic added mass and radiation damping; is that correct? This can be obtained by setting PotMod = 1 in HydroDyn (to get the hydrostatic stiffness matrix from WAMIT, which is needed to ensure the model can remain in equilibrium), while setting ExctnMod = RdtnMod = 0 in HydroDyn (to disable wave-excitation, wave radiation damping, and added mass).

Best regards,

Dear Jason,
I am sorry for the access to the article but maybe is open source only in Europe. Anyway you get the point. I know about OpenFAST but I think I will follow the solution you suggested me with FAST. I activated again CompMooring and CompHydro (in the test24). I cannot find ExctnMod in HydroDyn but only RdtnMod. Should I also have to modify WaveMod to 0 (still water) or it is ok to set the default imput to 2(JONSWAP/Pierson-Moskowitz spectrum (irregular))?
I have another doubt: where should I put WAMIT output files?

Thank you again for your answers.
Best regards

Dear Christian,

I think you misunderstood me. You must upgrade to OpenFAST to run a linearization analysis with HydroDyn and MAP++ enabled. HydroDyn input ExctnMod was introduced in OpenFAST v2.4, but I suggest upgrading to OpenFAST v3.0. Yes, you must set WaveMod = 0 to linearize. You can locate the WAMIT files wherever you want, as long as PotFile points to the correct location.

Best regards,

Dear Jonkman,
I want to linearize the 5MW_OC4_Semi model by openfast2.4 under wind speed 12mps. I only switched on the dof GenDOF and PtfmPDOF. But it encountered a problem like this:

FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates(node 5, blade
3):BEMT_UnCoupledSolve:There is no valid value of phi for these operating conditions: Vx =
11.817, Vy = -0.84785, rlocal = 11.719, theta = 1.3494, geometric phi = 1.6424. This warning will
not be repeated though the condition may persist. (See GeomPhi output channel.)
Performing linearization 1 at simulation time 150.64 s. (RotSpeed=0.45841 rpm, BldPitch1=-2119.7 deg)
Performing linearization 2 at simulation time 154.26 s. (RotSpeed=0.47175 rpm, BldPitch1=-2322.2 deg)

It seems wrong because RotSpeed is nearly zero. Could you please give me some advice?

------- OpenFAST example INPUT FILE -------------------------------------------
FAST Certification Test #25: NREL 5.0 MW Baseline Wind Turbine with OC4-DeepCwind semi configuration, for use in offshore analysis
---------------------- SIMULATION CONTROL --------------------------------------
True Echo - Echo input data to .ech (flag)
“FATAL” AbortLevel - Error level when simulation should abort (string) {“WARNING”, “SEVERE”, “FATAL”}
600 TMax - Total run time (s)
0.0125 DT - Recommended module time step (s)
2 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}
99999 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}
2 CompAero - Compute aerodynamic loads (switch) {0=None; 1=AeroDyn v14; 2=AeroDyn v15}
1 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_OC4DeepCwindSemi_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_Steady12mps.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_OC4DeepCwindSemi_ServoDyn.dat” ServoFile - Name of file containing control and electrical-drive input parameters (quoted string)
“NRELOffshrBsline5MW_OC4DeepCwindSemi_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_OC4DeepCwindSemi_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 “.sum” (flag)
1 SttsTime - Amount of time between screen status messages (s)
1000 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)
0 OutFileFmt - Format for tabular (time-marching) output file (switch) {0: uncompressed binary [.outb], 1: text file [.out], 2: binary file [.outb], 3: both 1 and 2}
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 -------------------------------------------
true Linearize - Linearization analysis (flag)
true CalcSteady - Calculate a steady-state periodic operating point before linearization? [unused if Linearize=False] (flag)
3 TrimCase - Controller parameter to be trimmed {1:yaw; 2:torque; 3:pitch} [used only if CalcSteady=True] (-)
0.1 TrimTol - Tolerance for the rotational speed convergence [used only if CalcSteady=True] (-)
0.01 TrimGain - Proportional gain for the rotational speed error (>0) [used only if CalcSteady=True] (rad/(rad/s) for yaw or pitch; Nm/(rad/s) for torque)
0 Twr_Kdmp - Damping factor for the tower [used only if CalcSteady=True] (N/(m/s))
0 Bld_Kdmp - Damping factor for the blades [used only if CalcSteady=True] (N/(m/s))
36 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] [used only when Linearize=True and CalcSteady=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; 3=mode shapes}
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 or WrVTK=3]

------- 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 .ech (flag)
“DEFAULT” DT - Communication interval for controllers (s) (or “default”)
---------------------- PITCH CONTROL -------------------------------------------
0 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0 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]
8 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
8 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
8 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
90 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
90 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
90 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
---------------------- GENERATOR AND TORQUE CONTROL ----------------------------
1 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 --------------------
1173 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]
43094 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]
0.0255764 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]
10 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)
0.3 YawManRat - Yaw maneuver rate (in absolute value) (deg/s)
0 NacYawF - Final yaw angle for override yaw maneuvers (degrees)
---------------------- TUNED MASS DAMPER ---------------------------------------
False CompNTMD - Compute nacelle tuned mass damper {true/false} (flag)
“unused” NTMDfile - Name of the file for nacelle tuned mass damper (quoted string) [unused when CompNTMD is false]
False CompTTMD - Compute tower tuned mass damper {true/false} (flag)
“unused” TTMDfile - Name of the file for tower tuned mass damper (quoted string) [unused when CompTTMD is false]
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
“…/5MW_Baseline/ServoData/DISCON_OC3Hywind.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 .sum (flag) (currently unused)
2 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)
True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused)
“ES10.3E2” OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)
0 TStart - Time to begin tabular output (s) (currently unused)
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
“GenTq” - Electrical generator torque
END of input file (the word “END” must appear in the first 3 columns of this last OutList line)


------- ELASTODYN for OpenFAST 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 “.ech” (flag)
3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)
“DEFAULT” DT - Integration time step (s)
---------------------- ENVIRONMENTAL CONDITION ---------------------------------
9.80665 Gravity - Gravitational acceleration (m/s^2)
---------------------- DEGREES OF FREEDOM --------------------------------------
FALSE FlapDOF1 - First flapwise blade mode DOF (flag)
FALSE FlapDOF2 - Second flapwise blade mode DOF (flag)
FALSE EdgeDOF - First edgewise blade mode DOF (flag)
False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades]
FALSE DrTrDOF - Drivetrain rotational-flexibility DOF (flag)
True GenDOF - Generator DOF (flag)
FALSE YawDOF - Yaw DOF (flag)
FALSE TwFADOF1 - First fore-aft tower bending-mode DOF (flag)
FALSE TwFADOF2 - Second fore-aft tower bending-mode DOF (flag)
FALSE TwSSDOF1 - First side-to-side tower bending-mode DOF (flag)
FALSE TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag)
FALSE PtfmSgDOF - Platform horizontal surge translation DOF (flag)
FALSE PtfmSwDOF - Platform horizontal sway translation DOF (flag)
FALSE PtfmHvDOF - Platform vertical heave translation DOF (flag)
FALSE PtfmRDOF - Platform roll tilt rotation DOF (flag)
True PtfmPDOF - Platform pitch tilt rotation DOF (flag)
FALSE PtfmYDOF - Platform yaw rotation DOF (flag)
---------------------- INITIAL CONDITIONS --------------------------------------
0 OoPDefl - Initial out-of-plane blade-tip displacement (meters)
0 IPDefl - Initial in-plane blade-tip deflection (meters)
5 BlPitch(1) - Blade 1 initial pitch (degrees)
5 BlPitch(2) - Blade 2 initial pitch (degrees)
5 BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades]
0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 blades]
0 Azimuth - Initial azimuth angle for blade 1 (degrees)
12.1 RotSpeed - Initial or fixed rotor speed (rpm)
0 NacYaw - Initial or fixed nacelle-yaw angle (degrees)
0 TTDspFA - Initial fore-aft tower-top displacement (meters)
0 TTDspSS - Initial side-to-side tower-top displacement (meters)
0 PtfmSurge - Initial or fixed horizontal surge translational displacement of platform (meters)
0 PtfmSway - Initial or fixed horizontal sway translational displacement of platform (meters)
0 PtfmHeave - Initial or fixed vertical heave translational displacement of platform (meters)
0 PtfmRoll - Initial or fixed roll tilt rotational displacement of platform (degrees)
0.85 PtfmPitch - Initial or fixed pitch tilt rotational displacement of platform (degrees)
0 PtfmYaw - Initial or fixed yaw rotational displacement of platform (degrees)
---------------------- TURBINE CONFIGURATION -----------------------------------
3 NumBl - Number of blades (-)
63 TipRad - The distance from the rotor apex to the blade tip (meters)
1.5 HubRad - The distance from the rotor apex to the blade root (meters)
-2.5 PreCone(1) - Blade 1 cone angle (degrees)
-2.5 PreCone(2) - Blade 2 cone angle (degrees)
-2.5 PreCone(3) - Blade 3 cone angle (degrees) [unused for 2 blades]
0 HubCM - Distance from rotor apex to hub mass [positive downwind] (meters)
0 UndSling - Undersling length [distance from teeter pin to the rotor apex] (meters) [unused for 3 blades]
0 Delta3 - Delta-3 angle for teetering rotors (degrees) [unused for 3 blades]
0 AzimB1Up - Azimuth value to use for I/O when blade 1 points up (degrees)
-5.0191 OverHang - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters)
1.912 ShftGagL - Distance from rotor apex [3 blades] or teeter pin [2 blades] to shaft strain gages [positive for upwind rotors] (meters)
-5 ShftTilt - Rotor shaft tilt angle (degrees)
1.9 NacCMxn - Downwind distance from the tower-top to the nacelle CM (meters)
0 NacCMyn - Lateral distance from the tower-top to the nacelle CM (meters)
1.75 NacCMzn - Vertical distance from the tower-top to the nacelle CM (meters)
-3.09528 NcIMUxn - Downwind distance from the tower-top to the nacelle IMU (meters)
0 NcIMUyn - Lateral distance from the tower-top to the nacelle IMU (meters)
2.23336 NcIMUzn - Vertical distance from the tower-top to the nacelle IMU (meters)
1.96256 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (meters)
87.6 TowerHt - Height of tower above ground level [onshore] or MSL [offshore] (meters)
10 TowerBsHt - Height of tower base above ground level [onshore] or MSL [offshore] (meters)
0 PtfmCMxt - Downwind distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
0 PtfmCMyt - Lateral distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
-8.6588 PtfmCMzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform CM (meters)
0 PtfmRefzt - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters)
---------------------- MASS AND INERTIA ----------------------------------------
0 TipMass(1) - Tip-brake mass, blade 1 (kg)
0 TipMass(2) - Tip-brake mass, blade 2 (kg)
0 TipMass(3) - Tip-brake mass, blade 3 (kg) [unused for 2 blades]
56780 HubMass - Hub mass (kg)
115926 HubIner - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2)
534.116 GenIner - Generator inertia about HSS (kg m^2)
240000 NacMass - Nacelle mass (kg)
2.60789E+06 NacYIner - Nacelle inertia about yaw axis (kg m^2)
0 YawBrMass - Yaw bearing mass (kg)
3.85218E+06 PtfmMass - Platform mass (kg)
2.56193E+09 PtfmRIner - Platform inertia for roll tilt rotation about the platform CM (kg m^2)
2.56193E+09 PtfmPIner - Platform inertia for pitch tilt rotation about the platform CM (kg m^2)
4.24265E+09 PtfmYIner - Platform inertia for yaw rotation about the platform CM (kg m^2)
---------------------- BLADE ---------------------------------------------------
17 BldNodes - Number of blade nodes (per blade) used for analysis (-)
“…/5MW_Baseline/NRELOffshrBsline5MW_Blade.dat” BldFile(1) - Name of file containing properties for blade 1 (quoted string)
“…/5MW_Baseline/NRELOffshrBsline5MW_Blade.dat” BldFile(2) - Name of file containing properties for blade 2 (quoted string)
“…/5MW_Baseline/NRELOffshrBsline5MW_Blade.dat” BldFile(3) - Name of file containing properties for blade 3 (quoted string) [unused for 2 blades]
---------------------- ROTOR-TEETER --------------------------------------------
0 TeetMod - Rotor-teeter spring/damper model {0: none, 1: standard, 2: user-defined from routine UserTeet} (switch) [unused for 3 blades]
0 TeetDmpP - Rotor-teeter damper position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetDmp - Rotor-teeter damping constant (N-m/(rad/s)) [used only for 2 blades and when TeetMod=1]
0 TeetCDmp - Rotor-teeter rate-independent Coulomb-damping moment (N-m) [used only for 2 blades and when TeetMod=1]
0 TeetSStP - Rotor-teeter soft-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetHStP - Rotor-teeter hard-stop position (degrees) [used only for 2 blades and when TeetMod=1]
0 TeetSSSp - Rotor-teeter soft-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
0 TeetHSSp - Rotor-teeter hard-stop linear-spring constant (N-m/rad) [used only for 2 blades and when TeetMod=1]
---------------------- DRIVETRAIN ----------------------------------------------
100 GBoxEff - Gearbox efficiency (%)
97 GBRatio - Gearbox ratio (-)
8.67637E+08 DTTorSpr - Drivetrain torsional spring (N-m/rad)
6.215E+06 DTTorDmp - Drivetrain torsional damper (N-m/(rad/s))
---------------------- FURLING -------------------------------------------------
False Furling - Read in additional model properties for furling turbine (flag) [must currently be FALSE)
“unused” FurlFile - Name of file containing furling properties (quoted string) [unused when Furling=False]
---------------------- TOWER ---------------------------------------------------
20 TwrNodes - Number of tower nodes used for analysis (-)
“NRELOffshrBsline5MW_OC4DeepCwindSemi_ElastoDyn_Tower.dat” TwrFile - Name of file containing tower properties (quoted string)
---------------------- OUTPUT --------------------------------------------------
True SumPrint - Print summary data to “.sum” (flag)
2 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)
True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused)
“ES10.3E2” OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)
0 TStart - Time to begin tabular output (s) (currently unused)
1 DecFact - Decimation factor for tabular output {1: output every time step} (-) (currently unused)
1 NTwGages - Number of tower nodes that have strain gages for output [0 to 9] (-)
10 TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]
1 NBlGages - Number of blade nodes that have strain gages for output [0 to 9] (-)
9 BldGagNd - List of blade nodes that have strain gages [1 to BldNodes] (-) [unused if NBlGages=0]
OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)

END of input file (the word “END” must appear in the first 3 columns of this last OutList line)


Also, I used openfast3.0. But after it linearized the first file, the second can not be linearized. In my cmd window, it is stuck in the window the first time it linearized although it may take a lot of time.

Best regards !

Dear @Dezheng.Zhu,

Well, it looks like the trim solution has gone unstable for some reason.

I’m a bit surprised that OpenFAST is linearizing at all given that the rotor speed is quite different than the target rotor speed of 12.1 rpm that you’ve set. This likely means that your trim tolerance is set too high. So, I would first lower TrimTol (the sample models use TrimTol = 0.001).

But this change will not improve the stability of the trim solution. For that, I would first change the torque controller. When trimming blade-pitch angle (TrimCase = 3), normally you’d set constant (nonzero) generator torque. The constant generator torque can be set using the VSContrl = 1 option – see the “Linearization” section of the old FAST User’s Guide for more information: nwtc.nrel.gov/system/files/FAST.pdf. If that doesn’t solve the problem, I would suggest playing around a bit with the TrimGain to see if that helps.

Best regards,

Dear Jonkman,
Thanks for your advice.
First, I changed TrimTol to 0.7, I think it is enough high. But it didn’t work. The information is :
Performing linearization 1 at simulation time 10.225 s. (RotSpeed=11.934 rpm, BldPitch1=-3.482 deg)
Performing linearization 2 at simulation time 10.363 s. (RotSpeed=11.932 rpm, BldPitch1=-3.5921 deg)
The pitch is negative, I think it is seemingly not correct.

Then, I read the FASTV7 User’s Guide and do some modifications as page 40 suggests. I set VS_RtTq to constant generator torque 43094, and VS_RtGnSp,VS_Rgn2K, and VS_SlPc to 9999.9E-9 (very small don’t cares > 0.0). Is it correct? I think I have set the torque to a constant value. But it has another error:
FAST_Solution:FAST_AdvanceStates:SrvD_UpdateStates:CalculateTorque:u%HSS_Spd is negative. Simple
variable-speed control model is not valid for motoring situations.

Finally, I succeeded in openfast3.0 when I set the torque to constant. But the linearization takes nearly 2 hours.

Also, I have another problem. I want to implement a CBP state-space controller. I think I should create a new variable to express the symmetric effect, such as x=(x1+x2+x3)/3, where x1,x2,x3 is three blades’ flapwise dof. But I don’t know how to process the matrix A, B, C, D I get by MBC. Could you please give me some advice or are there any instructions or papers?

Best regards

Dear @Dezheng.Zhu,

Regarding TrimTol, I was suggesting that you reduce the value, not increase the value. But I agree that reducing TrimTol will result in it taking longer to reach a steady-state solution.

Yes, I agree with your settings to generate constant generator torque.

If I understand correctly, you are now able to achieve a reasonable steady-state solution; is that correct? What was the fix?

Regarding replacing the individual blade states with collective blade states, this transformation of the linearized state-space system is already implemented in the MBC3 toolbox: matlab-toolbox/MBC at main · OpenFAST/matlab-toolbox · GitHub, whereby the individual blade states, inputs, and outputs in the rotating frame of reference and transformed to collective (as well as asymmetric sine and cosine) states, inputs, and outputs in the fixed frame of reference.

Best regards,

Dear Jonkman,
I just change the openfast version form 2.4 to 3.0. I increase the TrimTol because it is difficult to find a steady state in 600s, usually it aborted, may it is too short.

I switch PtfmPDOF and GenDOF, then I use mbc to get steady space solution. And the MBC.AvgA =[0 0 1 0;0 0 0 1;-0.055 6.3362E-4 -0.0407 -0.0025;-0.0594 0.1092 -2.4335 -0.2352]. The four states are: ‘ED Platform pitch tilt rotation DOF (internal DOF index = DOF_P), rad’; ‘ED Variable speed generator DOF (internal DOF index = DOF_GeAz), rad’; ‘ED First time derivative of Platform pitch tilt rotation DOF (internal DOF index = DOF_P), rad/s’; ‘ED First time derivative of Variable speed generator DOF (internal DOF index = DOF_GeAz), rad/s’. How do I tell it is correct?

I’m very sorry for misreading your suggestion. Just now, I have reduced the TrimTol in openfast, but it still existed the problem when I set the generator torque to constant:
FAST_Solution:FAST_AdvanceStates:SrvD_UpdateStates:CalculateTorque:u%HSS_Spd is negative. Simple
variable-speed control model is not valid for motoring situations.

When the generator torque is not constant, setting VS_RtGnSp, VS_Rgn2K, VS_SlPc to proper value, it has another problem:
FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates(node 5, blade
2):BEMT_UnCoupledSolve:There is no valid value of phi for these operating conditions: Vx =
13.294, Vy = -0.94124, rlocal = 11.719, theta = 1.357, geometric phi = 1.6415. This warning will
not be repeated though the condition may persist. (See GeomPhi output channel.)

So I guess openfast 3.0 is more friendly in linearization?

For replacing the individual blade states with collective blade states, I’ll read User’s guide to MBC as you suggested. Thank you very much!

Best regards!

Dear @Dezheng.Zhu,

Again, we recommend using constant generator torque when TrimCase = 3. If you are receiving an error about negative speeds, I would guess your TrimGain is not set properly. Try different values of TrimGain (larger or smaller) to see if that helps. I would plot the time series of rotor speed and blade pitch during the trim solution to see what is going on.

Best regards,

Dear Jonkman,
I have followed your advice and set TrimGain different values. It is effective and it linearized at Rotor Speed about 12.1 rpm and Blade Pitch about 3.52 degrees when the wind speed is 12mps.
Thank you very much.

Best regards!

1 Like

Dear Jonkman,
I used openfast3.1 to linearize OC4_Semi at wind speed 18mps. But it occurred:
FAST_Linearize_T:FAST_Linearize_OP:Glue_StateMatrices:Error allocating 1091939912 bytes of memory
for the G array.
Could you please help me?

Best regards!

Dear @Dezheng.Zhu ,

An error regarding “allocating space” has been discussed before on this forum, e.g., see: http://forums.nrel.gov/t/problems-in-test-in-fast-8/1868/2 .

If you are not already, I would recommend using the standard 64-bit version of OpenFAST (not 64-bit with double precision). Unless the problem is that you simply don’t have enough RAM available on your computer, in which case decreasing the discretization of the model (e.g., reducing the number of hydrodynamic analysis nodes) would probably help.

Best regards,