Rotor and Nacelle Mass moment of Inertia Tensors

Dear Dr. jason Jonkman

I am trying to determine the inertia tensors of rotor and nacelle separately. I was able to find the combine (RNA) inertia values (Ixx, Iyy, Izz, Ixy, Izx, Iyz) of the 5MW wind turbine on this forum. However, i could not find separately the inertia values of rotor and nacelle. I will highly appreciate if you can guide me on the calculation procedure of these values separately or if you can provide me some values.

Link for combine RNA values: Tower Eigenfrequencies of NREL 5MW Turbine

Best
Zahid

Dear Zahid,

The nacelle mass, center of mass, and inertia about the yaw axis are specified in the NREL 5-MW specifications report: nrel.gov/docs/fy09osti/38060.pdf. The other nacelle inertia terms were neglected. So, the rest of the rotor-nacelle assembly (RNA) inertia comes from the rotor.

Best regards,

Dear Dr. Jason Jonkman

Thank you for your kind response. Following your suggestion i calculated the Rotor inertia about its Center of Mass (Cm) using parallel axis theorem. I have briefly described the procedure of determination in the following steps.

Step 1: Transfer the nacelle inertia from yaw-axis to its Center of mass.
Step 2: Transfer the nacelle inertia from its center of mass to RNA center of mass.
Step 3: Subtract the nacelle inertia form RNA inertia (about RNA center of mass, obtained from another post on this forum) and thus found the Rotor inertia about RNA center of mass.
Step 4: Transfer Rotor inertia from RNA center of mass to Rotor center of mass

I have done this step wise calculation in an excel sheet and attached here. Can you please kindly give a look to the final values of Rotor inertia about Rotor center of mass if they seems correct.
5MW_Turbine_Inertia_2019.xlsx (206 KB)

Dear Zahid,

You’re overall approach is correct, but I found several mistakes in your spreadsheet. Please find my commented spreadsheet attached. With my corrections, I calculate the rotor mass and inertia about its CM as follows:
Mass = 110000
Ixx = 4.37E7
Iyy = 1.99E7
Izz = 2.01E7
Ixy = 0
Izx = 8.3E5
Iyz = 0

5MW_Turbine_Inertia_2019_JJ.xlsx (210 KB)
Best regards,

Dear Dr. Jason Jonkman

I followed all the comments and made the corrections and thus obtained the corrected values as you calculated. I am highly grateful for your valuable comments and corrections. Heartfelt thanks.

Zahid Ullah

Dear @Jason.Jonkman ,

Is there any approach in OpenFAST to directly output RNA mass matrix? I remembered that I had read a post saying linearization can output RNA mass matrix if reference point is correctly configured and platform is neglected.

I can not remember clearly and found that post again. Could you please describe how to output RNA mass matrix in OpenFAST as I want to compare with your result from MSC.ADAMS.

Regards,
Ran

Dear @Ran.Tu,

The 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: http://forums.nrel.gov/t/openfast-2nd-order-linearization/2249/2 . To get only the RNA mass matrix, set the tower and platform masses to zero.

Best regards,

Thank you @Jason.Jonkman ,

I only turn on Elasotdyn, and only turn on platform DOF. In Elastodyn, I set as:

       87.6   TowerHt     - Height of tower above ground level [onshore] or MSL [offshore] (meters)
       87.5999   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)
       87.5999   PtfmRefzt   - Vertical distance from the ground level [onshore] or MSL [offshore] to the platform reference point (meters)

I don’t change TwrFile which contains line density. I just set TowerBsHt to be very close to TowerHt to eliminate tower mass.
For platform, mass and inertia are kept zeroed. I think platform reference point would be the reference point for the inferred mass matrix.

Then I conducted the linearization. And I extract B matrix.

In xdot_desc, the acceleration of platform DOF is located between 7-12. In u_desc, the force in platform DOF is loacted between 343-348. So I extract B(7:12, 343:348). And then get the inverse matrix of B. I think it would be the mass matrix.:

349945.913585992	-1.31697775849274e-16	-0.793097343607247	-1.29185550223194e-15	693088.051891439	-1.06695622694160e-10
-2.02467864330034e-16	349989.268487729	4.35244261998299e-16	-693308.937606429	-1.04150819498913e-14	-199682.577685825
-0.793097343607680	-3.79413744939221e-17	349943.712554865	-3.72176166879697e-16	199674.695828790	-3.07383974512040e-11
-1.10353899464704e-15	-693308.937606429	5.82047200617969e-11	40482058.5576065	3.49180562953951e-10	-871642.151351890
693088.051891439	-4.90012562720014e-15	199674.695828790	-4.80665236166781e-14	25787971.7639663	-3.96986169054139e-09
-5.81874892790818e-11	-199682.577685825	3.13686653728374e-15	-871642.151351890	-3.86648351441338e-09	26264647.2943439

For M(1 ,1) M(2,2) and M(3,3) are the mass of RNA. I think it can match with ADAMS results.
But the other component would be different as the reference point is different between my model and ADAMS model.
So my questions are:

  1. For below BModes input file, what is the reference point for below inertias? Tower top? RNA center of gravity?
4.370E7            ixx_tip     blade lag mass moment of inertia about the tip-section x reference axis (kg-m^2)
2.353E7            iyy_tip     blade flap mass moment of inertia about the tip-section y reference axis (kg-m^2)
2.542E7            izz_tip     torsion mass moment of inertia about the tip-section z reference axis (kg-m^2)
0.                 ixy_tip     cross product of inertia about x and y reference axes(kg-m^2)
1.169E6            izx_tip     cross product of inertia about z and x reference axes(kg-m^2)
0.                 iyz_tip     cross product of inertia about y and z reference axes(kg-m^2)
  1. Could you please share a link demonstrating the formula of mass matrix. I think there would be some relationships between these components. I want to infer the center of gravity from my results.

Regards,
Ran

Dear @Ran.Tu,

The tower-top inertias specified in BModes (ixx_tip, etc.) are specified relative to the RNA center of mass.

Regarding the format of the 6x6 rigid-body mass matrix derived through the OpenFAST linearization analysis, please see my post dated May 2, 2022 in the following forum topic: RNA Inertia FASTv7.

Best regards,

Dear @Jason.Jonkman ,

Thanks you, I have successfully calculated the center of mass (CM) base on lower-left submatix of mass matrix.

Sorry for my limited knowledge about parallel axis theorem, I know how to transfer I11, I22, and I33 from platfrom reference point to CM of RNA. But I don’t know how to transfer I12, I23, and I32 from platfrom reference point to CM of RNA, even I have searched for this theorem.

Could you please type the formula to transfer I12, I23, and I32 from platfrom reference point to CM of RNA?

Regards,
Ran

Dear @Ran.Tu,

See the “tensor generalization” of the parallel axis theorem documented here: Parallel axis theorem - Wikipedia.

Best regards,

Dear Jason,

Thank you for the shared link. I converted the mass matrix. But I found one thing strange.
When do linearation:
#1 Only turn on all platform DOF, then I get:

mass = 3.499338008682417e+05 kg

xg =  -0.414194292642138 m
zg = 1.967118872063959 m

Iij in RNA center: 
    1.0e+07 *

    3.9103   -0.0000   -0.1319
   -0.0000    2.3727   -0.0000
   -0.1319   -0.0000    2.5582

#2 Only turn on all platform DOF and GenDOF , then I get:

mass = 3.499338008682417e+05 kg

xg =  -0.414194292504722 m
zg = 1.967118872063959 m

Iij in RNA center: 
   1.0e+07 *

    0.4515   -0.0000    0.1707
   -0.0000    2.3727   -0.0000
    0.1707   -0.0000    2.5317

#3 And the result in ADAMS (mentioned in other posts) is:

mass = 3.500003109E+005 kg

xg = -0.4137754432 m
zg = 1.9669893542 m

Iij in RNA center: 
   1.0e+07 *

    4.370     -0.0000    0.1169
   -0.0000    2.353      -0.0000
    0.1169   -0.0000    2.542
  1. I can not understand why the inertia matrix changed after I turn on GenDOF. Does it mean GenIner will not be considered if GenDOF turned off?

  2. the mass and center of mass can match well. But the inertia matrix is different.
    For #1, I can not understand why I31 is negative.
    For #2 (turn on GenDOF), I31 is positive, but I11 becomes too small.
    Below is my matlab code to output the results:

clear all; close all; clc; 
restoredefaultpath;
addpath(genpath('D:/Program/openfast/matlab-toolbox-main'));
data=ReadFASTLinear('5MW_Land_DLL_WindSteady.1.lin');
subB=data.B(8:13,343:348);
M=inv(subB);
m=M(1,1);
zg=M(5,1)/m;
yg=-M(6,1)/m;
xg=M(6,2)/m;

posVec=-[xg;yg;zg];
Iij=M(4:6,4:6)- m*(posVec' * posVec*eye(3)-posVec * posVec')

For #1, In xdot_desc, the acceleration of platform DOF is located between 7-12. In u_desc, the force in platform DOF is loacted between 343-348. So i will change the Matlab code.
subB=data.B(7:12,343:348);

For #2, In xdot_desc, the acceleration of platform DOF is located between 8-13. In u_desc, the force in platform DOF is loacted between 343-348.

Dear @Ran.Tu,

Regarding (1), when you enable GenDOF, you no longer have a 6x6 rigid-body mass matrix; instead, you have a 7x7 mass matrix (including rigid-body + a rotational joint) and the formulation doesn’t apply.

Regarding why I31 (Izx) is negative in OpenFAST and positive in ADAMS, I’m not sure. I also see that I11 (Ixx) is also a bit lower in OpenFAST than in ADAMS. I would guess that there are some differences between the mass distribution in the two models (the ADAMS model results have not been touched in years). Overall, I believe your approach with GenDOF disabled is correct.

Best regards,

Thank you, Jason,

It is of my fault that do not notice GenDOF will allow rotor to rotate.

I will double check my model.

Regards,
Ran