Dear @Jason.Jonkman ,
Thank you very much for your reply! After serching in forum, I found an other way to compute RNA mass inertia in this topic. https://forums.nrel.gov/t/openfast-2nd-order-linearization/2249/2?u=jiantao.liu. And I have some questions about my result, here are my changes in TEST13 of OPENFAST:
-
In .fst file, I set CompAero and CompInflow to 0, Linearize to True, LinInputs to 2.
-
In EDFile, I close all DOF except Platform’s six DOF. Set RotSpeed to 0, change tower massden and stiff to a very small value, add platform’s six acceleration in OutList.
-
In ServoFile, I close PCMode and VSContrl to run LINEARIZATION.
In the topic I mentioned before, you said we can calculate 6x6 rigid-body mass matrix (M) of ElastoDyn by taking the matrix inverse of the 6x6 subset of the input-transmission matrix (D). I try to get D in my .lin file, through head of .lin file, I know the force in platform DOF is loacted between 307-312. So I extract a 6*6 matrix in D, then calculate its inverse matrix. The results are as follows:
M =
1.0e+07 *
0.0101 0.0000 0.0000 -0.0000 0.8444 -0.0000
0.0000 0.0069 0.0000 -0.5776 0.0000 -0.0085
-0.0001 0.0000 0.0078 0.0000 0.0043 -0.0000
-0.0000 -0.0101 0.0000 0.8530 -0.0000 0.0123
0.0147 0.0000 0.0002 -0.0000 1.2393 -0.0000
0.0000 -0.0001 -0.0000 0.0120 0.0000 0.0031
The linearization of FAST or OpenFAST should have the following form:
But in my matrix, M(1,1) is different from M(2,2) and M(2,3). I have no idea about this.
I would be appreciate if you can give me some suggestions.
Best regards,
Jiantao
------- OpenFAST example INPUT FILE -------------------------------------------
FAST Certification Test #13: WindPACT 1.5 MW Baseline with many DOFs with VS and VP and FF turbulence.
---------------------- SIMULATION CONTROL --------------------------------------
True 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.005 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}
0 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}
0 CompHydro - Compute hydrodynamic loads (switch) {0=None; 1=HydroDyn}
0 CompSub - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform MCKF}
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 ---------------------------------------------
"WP_VSP_WTurb_ElastoDyn.dat" EDFile - Name of file containing ElastoDyn input parameters (quoted string)
"unused" BDBldFile(1) - Name of file containing BeamDyn input parameters for blade 1 (quoted string)
"unused" BDBldFile(2) - Name of file containing BeamDyn input parameters for blade 2 (quoted string)
"unused" BDBldFile(3) - Name of file containing BeamDyn input parameters for blade 3 (quoted string)
"WP_Baseline_InflowWind_12mps.dat" InflowFile - Name of file containing inflow wind input parameters (quoted string)
"WP_Baseline_AeroDyn15_Dynin.dat" AeroFile - Name of file containing aerodynamic input parameters (quoted string)
"WP_VSP_WTurb_ServoDyn.dat" ServoFile - Name of file containing control and electrical-drive input parameters (quoted string)
"unused" HydroFile - Name of file containing hydrodynamic input parameters (quoted string)
"unused" SubFile - Name of file containing sub-structural input parameters (quoted string)
"unused" 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)
0 OutFileFmt - Format for tabular (time-marching) output file (switch) {0: uncompressed binary [<RootName>.outb], 1: text file [<RootName>.out], 2: binary file [<RootName>.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)
False 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.001 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))
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] [used only when Linearize=True and CalcSteady=False]
2 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]
------- ELASTODYN for OpenFAST INPUT FILE -------------------------------------------
FAST certification Test #13: WindPACT 1.5 MW Baseline with many DOFs with VS and VP and FF turbulence. Model properties from "InputData1.5A08V07adm.xls" (from C. Hansen) with bugs removed.
---------------------- SIMULATION CONTROL --------------------------------------
False Echo - Echo input data to "<RootName>.ech" (flag)
3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)
0.005 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)
False GenDOF - Generator DOF (flag)
False YawDOF - Yaw DOF (flag)
False TwFADOF1 - First fore-aft tower bending-mode DOF (flag)
False TwFADOF2 - Second fore-aft tower bending-mode DOF (flag)
False TwSSDOF1 - First side-to-side tower bending-mode DOF (flag)
False TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag)
True PtfmSgDOF - Platform horizontal surge translation DOF (flag)
True PtfmSwDOF - Platform horizontal sway translation DOF (flag)
True PtfmHvDOF - Platform vertical heave translation DOF (flag)
True PtfmRDOF - Platform roll tilt rotation DOF (flag)
True PtfmPDOF - Platform pitch tilt rotation DOF (flag)
True 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)
0 BlPitch(1) - Blade 1 initial pitch (degrees)
0 BlPitch(2) - Blade 2 initial pitch (degrees)
0 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)
0 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 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 (-)
35 TipRad - The distance from the rotor apex to the blade tip (meters)
1.75 HubRad - The distance from the rotor apex to the blade root (meters)
0 PreCone(1) - Blade 1 cone angle (degrees)
0 PreCone(2) - Blade 2 cone angle (degrees)
0 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)
-3.3 OverHang - Distance from yaw axis to rotor apex [3 blades] or teeter pin [2 blades] (meters)
0.99 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)
-0.1449 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.389 NacCMzn - Vertical distance from the tower-top to the nacelle CM (meters)
0 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)
0 NcIMUzn - Vertical distance from the tower-top to the nacelle IMU (meters)
1.61 Twr2Shft - Vertical distance from the tower-top to the rotor shaft (meters)
82.39 TowerHt - Height of tower above ground level [onshore] or MSL [offshore] (meters)
0 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)
-0 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]
15148 HubMass - Hub mass (kg)
34600 HubIner - Hub inertia about rotor axis [3 blades] or teeter axis [2 blades] (kg m^2)
53.036 GenIner - Generator inertia about HSS (kg m^2)
51170 NacMass - Nacelle mass (kg)
49130 NacYIner - Nacelle inertia about yaw axis (kg m^2)
0 YawBrMass - Yaw bearing mass (kg)
0 PtfmMass - Platform mass (kg)
0 PtfmRIner - Platform inertia for roll tilt rotation about the platform CM (kg m^2)
0 PtfmPIner - Platform inertia for pitch tilt rotation about the platform CM (kg m^2)
0 PtfmYIner - Platform inertia for yaw rotation about the platform CM (kg m^2)
---------------------- BLADE ---------------------------------------------------
15 BldNodes - Number of blade nodes (per blade) used for analysis (-)
"../WP_Baseline/Baseline_Blade.dat" BldFile(1) - Name of file containing properties for blade 1 (quoted string)
"../WP_Baseline/Baseline_Blade.dat" BldFile(2) - Name of file containing properties for blade 2 (quoted string)
"../WP_Baseline/Baseline_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 (%)
87.965 GBRatio - Gearbox ratio (-)
5.6E+09 DTTorSpr - Drivetrain torsional spring (N-m/rad)
1E+07 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 ---------------------------------------------------
10 TwrNodes - Number of tower nodes used for analysis (-)
"../WP_Baseline/Baseline_Tower.dat" TwrFile - Name of file containing tower properties (quoted string)
---------------------- OUTPUT --------------------------------------------------
True SumPrint - Print summary data to "<RootName>.sum" (flag)
1 OutFile - Switch to determine where output will be placed: {1: in module output file only; 2: in glue code output file only; 3: both} (currently unused)
True TabDelim - Use tab delimiters in text tabular output file? (flag) (currently unused)
"ES10.3E2" OutFmt - Format used for text tabular output (except time). Resulting field should be 10 characters. (quoted string) (currently unused)
0 TStart - Time to begin tabular output (s) (currently unused)
10 DecFact - Decimation factor for tabular output {1: output every time step} (-) (currently unused)
2 NTwGages - Number of tower nodes that have strain gages for output [0 to 9] (-)
4, 7 TwrGagNd - List of tower nodes that have strain gages [1 to TwrNodes] (-) [unused if NTwGages=0]
0 NBlGages - Number of blade nodes that have strain gages for output [0 to 9] (-)
0 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, (-)
"PtfmTAxt"
"PtfmTAyt"
"PtfmTAzt"
"PtfmRAxt"
"PtfmRAyt"
"PtfmRAzt"
END of input file (the word "END" must appear in the first 3 columns of this last OutList line)
---------------------------------------------------------------------------------------