Hydrodynamic implementation

Discuss wave-energy device design and modeling

Moderator: Bonnie.Jonkman

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

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Tue Sep 01, 2020 1:05 pm

Dear Jason,
thanks for your prompt reply. as you suggested I made the changes you reported to me, in particular for the mass matrix that varies over time I used the same matrix of the previous places (therefore of the total system) to which I made the transformations indicated in the post of: May 04, 2020.
I also did a test using the FAST outputs in the equation of the previous post (I added the nonlinear rotation-related inertial terms), where for the tower forces I used: [TwrBsFxt, TwrBsFyt, TwrBsFzt, TwrBsMxt, TwrBsMyt, TwrBsMzt] reported in the swl reference frame.
But doing this does not return the results anyway. I doubt that in this way I consider the inertia of the turbine twice (once in the TwrBs and once in the mass matrix of the complete system). Is my assumption correct?

Thank you again for your valuable help. Best regards,

Riccardo.

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Tue Sep 01, 2020 4:50 pm

Dear Riccardo,

Yes, the ElastoDyn tower-base load outputs (TwrBsFxt, etc.) include contributions from mass/inertia of the rotor, nacelle, and tower, so, you'd be double counting those terms. Instead, you'd want to express the aerodynamic applied loads relative to the platform reference point (0,0,0).

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: 34
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Wed Sep 02, 2020 7:28 am

Dear Jason,

I was wondering if there are any output of FAST that express the aerodynamic applied loads relative to the platform reference point (0,0,0).

Thanks for your reply. Best regards,
Riccardo.

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Wed Sep 02, 2020 1:39 pm

Dear Riccardo,

No, the aerodynamic applied loads are only output from AeroDyn v15 in the hub coordinate system (RtAeroFxh, etc.). You'd have to rotate these to the global coordinate system (accounting for deflection of the support structure and shaft tilt) and add the moment arm.

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: 34
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Mon Sep 14, 2020 9:52 am

Dear Jason,
Starting from Test 24, I'm trying to verify the loads in the 6 DOFs in according to the formula:
M * a = Fhydro - Fmoor + Ftower - Fnonlinear - Frestoring

where is it:

M = variable mass matrix based on the position of the platform, obtained as indicated in the post reported here (11 July 2020)

a = ['PtfmTAxi', 'PtfmTAyi', 'PtfmTAzi', 'PtfmRAxi', 'PtfmRAyi', 'PtfmRAzi']

Fhydro = ['HydroFxi', 'HydroFyi', 'HydroFzi', 'HydroMxi', 'HydroMyi', 'HydroMzi']

Fmoor = [Fx [1] + Fx [2] + Fx [3] + Fx [4] + Fx [5] + Fx [6], Fy [1] + Fy [2] + Fy [3] + Fy [ 4] + Fy [5] + Fy [6], Fz [1] + Fz [2] + Fz [3] + Fz [4] + Fz [5] + Fz [6], Mx_moor, My_moor, Mz_moor]
with Mx_moor, My_moor, Mz_moor moments of transport of forces from Map ++ in (0,0,0)

Ftower forces and moments obtained starting at the rotor exits:
Fx_tow = 'RtAeroFxh'
Fy_tow = 'RtAeroFyh' * cos ('Azimuth') - 'RtAeroFzh' * sin ('Azimuth')
Fz_tow = 'RtAeroFzh' * cos ('Azimuth') + 'RtAeroFyh' * sin ('Azimuth')
Mx_tow = 'RotTorq' * 1000
My_tow = 'RtAeroMyh' * cos ('Azimuth') - 'RtAeroMzh' * sin ('Azimuth')
Mz_tow = 'RtAeroMzh' * cos ('Azimuth') + 'RtAeroMyh' * sin ('Azimuth')
and were then rotated in the inertial reference system, with the addition of the transport moments and the weight of the turbine to have the forces at the base of the tower in (0,0,0)

Fnonlinear = given by omega x (omega x r_cm * mass) and omega x I dot omega, with
omega = ['PtfmRVxi', 'PtfmRVyi', 'PtfmRVzi'],
r_cm * mass = [M (6,2), M (4,3), M (5,1)]
I = [M (4.4), M (4.5), M (4.6); M (5.4), M (5.5), M (5.6); M (6.4), M (6.5), M (6.6);]

Frestoring = where the weight of the platform and gravity restoring moments are considered [0, 0, M_plat, -M (5,1) * rx + M (6,2) * rz, -M (5,1) * ry + M (4.3) * rz] * g
with M = mass matrix variable according to the position

Comparing the sum of the loads in the 6 DOFs with the results in the 6 DOFs of the product M * a I obtain small differences, as shown in the figure.
(for example, I compared for the resultant in x:
M (1,1) * 'PtfmTAxi' + M (1,2) * 'PtfmTAyi' + M (1,3) * 'PtfmTAzi' + M (1,4) * 'PtfmRAxi' + M (1,5) * 'PtfmRAyi' + M (1,6) * 'PtfmRAzi'
with
'HydroFxi' - Fmoor_x + Ftower_x - Fnonlinear_x - Frestoring_x)

Could you tell me what they are caused by?

All the rotations are expressed in Radiants.

Thank you a lot. Best regards,

Riccardo.
Attachments
Fig_2.jpeg
Fig_2.jpeg (150.13 KiB) Viewed 1564 times
Fig_1.jpeg
Fig_1.jpeg (145.52 KiB) Viewed 1564 times

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Sep 14, 2020 10:53 am

Dear Riccardo,

Indeed, your results are quite close, with only some small differences. I don't see any obvious errors in your approach, but I do have a few questions:
  • Why are you using RotTorq rather than RtAeroMxh?
  • In Frestoring, you haven't stated what M_plat is (zero?) and the value of M should not change with displacement in this linearized equation, even though that is implied. That said, ElastoDyn does include some amount of nonlinearity in this equation, i.e. using the displaced center of mass using the transformation matrix given in Eq. (2) in my 2009 Wind Energy paper: https://onlinelibrary.wiley.com/doi/abs/10.1002/we.347.
  • I can't check all of the details because they are not in your post (e.g., how the mass matrix changes with displacement, how Ftower is transformed to global coordinates, how MX_moor, etc. are calculated).
  • Could the problem simply be that of numerical round-off in the variables you are comparing?
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: 34
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Mon Sep 14, 2020 11:55 am

Dear Jason,

Thanks for your prompt reply.
  • I used RotTrq to consider also the inertia of the rotor (I noted that in an Onshore Test the TwrBsMx= RotTrq+transport moments);
  • M_plat is the mass platform (M_plat=7466330 kg) since I consider the turbine weight in Fz_tower;
  • Mooring moments are obtained by multiply C_rot x F where:

    -C_rot= X/Y/Z coordinates of the fairlead respect (0,0,0) in each time step.

    -I obtained the mass matrix relative to the center of mass through the following inverse transformation: Mcg = (TransMat^T)^-1 * M_swl * TransMat^-1
    (where TransMat is the one indicated in this topic "https://wind.nrel.gov/forum/wind/viewtopic.php?f=4&t=1257&hilit=mass+matrix+spar" where the
    inputs of the rotation matrix are those in still water). Then the mass matrix (in 0 0 0) relative to the position of the system is obtained by applying the
    direct transformation M_swl = TransMat^T * Mcg * TransMat, using the current positions of Cg as the input of TransMat.

    -We consider [Fx_tow Fy_tow Fz_tow Mx_tow My_tow Mz_tow] applied in (0,0,Rotor height) because I set: OverHang=ShftGagL=NacCMxn=NcIMUxn=0 so
    I transported forces and moments in the system frame (0,0,0) integral to the structure then considering the platform rotation.

by setting the parameters OverHang=ShftGagL=NacCMxn=NcIMUxn=0, is it possible that the mass matrix changes?

Best regards,
Riccardo.

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Sep 14, 2020 12:58 pm

Dear Riccardo,

Just a few comments:
  • I would use RtAeroMxh instead of RotTorq so as to not double count any inertial terms.
  • M_plat makes sense; thanks for clarifying.
  • I follow your calculation of M_swl, but this assumes linearity of the structural model. Again, ElastoDyn includes some nonlinearity in the platform rotations as I indicated in my prior post, which may result in some small differences to what you are calculating.
  • For Ftower, presumably you also consider the shaft tilt, unless this has also been zeroed.
  • I'm not sure I understand your last question about the mass matrix changes.
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: 34
Joined: Mon May 04, 2020 3:31 am
Organization: Politecnico di Torino
Location: Italia

Re: Hydrodynamic implementation

Postby Riccardo.Caradonna » Mon Sep 14, 2020 3:42 pm

Dear Jason,
Thanks for the reply and for your help. First of all I forgot to clarify that in the Test I considered the rigid body, so for this reason I don't have considered any nonlinearities. If there are non-linearities also for the rigid body case, how can I take them into account?
As for the mass matrix, I started from the one indicated in the post previously reported. However, I suspect that considering Overhang & Co. to be null, the moments of inertia and therefore the total mass matrix M_cg, as well as the position of the center of mass, can change.

Best regards,
Riccardo.

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Mon Sep 14, 2020 5:15 pm

Dear Riccardo,

Even the rigid body contains many nonlinear terms; that is, each term in Fhydro, Fmoor, Ftower, Fnonlinear, and Frestoring includes nonlinearities. Some of the nonlinearities are included in HydroDyn, MAP++, AeroDyn, etc. whose outputs you are using.

One of the nonlinearities I gather you are missing in your equations is how the rotation/orientation of the rigid body is handled in ElastoDyn, i.e. per Eq. (2) in the Wind Energy paper I referenced. This will impact, e.g., how aerodynamic loads are transferred to global in Ftower, how the CG is determined in Fnonlinear and Frestoring.

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

Lorenzo.Cottura
Posts: 56
Joined: Wed Jul 15, 2020 9:04 am
Organization: Politecnico di Torino
Location: Italy

Re: Hydrodynamic implementation

Postby Lorenzo.Cottura » Wed Sep 23, 2020 10:21 am

Dear Jason,
Starting from the same equations of Riccardo (corrected as you suggested in the last posts), I am investigating the differences in the transition from AeroDyn = 0 to AeroDyn = 2 with regards to platform movements.

Riccardo.Caradonna wrote:Dear Jason,
Starting from Test 24, I'm trying to verify the loads in the 6 DOFs in according to the formula:
M * a = Fhydro - Fmoor + Ftower - Fnonlinear - Frestoring

where is it:

M = variable mass matrix based on the position of the platform, obtained as indicated in the post reported here (11 July 2020)

a = ['PtfmTAxi', 'PtfmTAyi', 'PtfmTAzi', 'PtfmRAxi', 'PtfmRAyi', 'PtfmRAzi']

Fhydro = ['HydroFxi', 'HydroFyi', 'HydroFzi', 'HydroMxi', 'HydroMyi', 'HydroMzi']

Fmoor = [Fx [1] + Fx [2] + Fx [3] + Fx [4] + Fx [5] + Fx [6], Fy [1] + Fy [2] + Fy [3] + Fy [ 4] + Fy [5] + Fy [6], Fz [1] + Fz [2] + Fz [3] + Fz [4] + Fz [5] + Fz [6], Mx_moor, My_moor, Mz_moor]
with Mx_moor, My_moor, Mz_moor moments of transport of forces from Map ++ in (0,0,0)

Ftower forces and moments obtained starting at the rotor exits:
Fx_tow = 'RtAeroFxh'
Fy_tow = 'RtAeroFyh' * cos ('Azimuth') - 'RtAeroFzh' * sin ('Azimuth')
Fz_tow = 'RtAeroFzh' * cos ('Azimuth') + 'RtAeroFyh' * sin ('Azimuth')
Mx_tow = 'RotTorq' * 1000
My_tow = 'RtAeroMyh' * cos ('Azimuth') - 'RtAeroMzh' * sin ('Azimuth')
Mz_tow = 'RtAeroMzh' * cos ('Azimuth') + 'RtAeroMyh' * sin ('Azimuth')
and were then rotated in the inertial reference system, with the addition of the transport moments and the weight of the turbine to have the forces at the base of the tower in (0,0,0)

Fnonlinear = given by omega x (omega x r_cm * mass) and omega x I dot omega, with
omega = ['PtfmRVxi', 'PtfmRVyi', 'PtfmRVzi'],
r_cm * mass = [M (6,2), M (4,3), M (5,1)]
I = [M (4.4), M (4.5), M (4.6); M (5.4), M (5.5), M (5.6); M (6.4), M (6.5), M (6.6);]

Frestoring = where the weight of the platform and gravity restoring moments are considered [0, 0, M_plat, -M (5,1) * rx + M (6,2) * rz, -M (5,1) * ry + M (4.3) * rz] * g
with M = mass matrix variable according to the position

Comparing the sum of the loads in the 6 DOFs with the results in the 6 DOFs of the product M * a I obtain small differences, as shown in the figure.
(for example, I compared for the resultant in x:
M (1,1) * 'PtfmTAxi' + M (1,2) * 'PtfmTAyi' + M (1,3) * 'PtfmTAzi' + M (1,4) * 'PtfmRAxi' + M (1,5) * 'PtfmRAyi' + M (1,6) * 'PtfmRAzi'
with
'HydroFxi' - Fmoor_x + Ftower_x - Fnonlinear_x - Frestoring_x)

Could you tell me what they are caused by?

All the rotations are expressed in Radiants.

Thank you a lot. Best regards,

Riccardo.


Using the reported forces and moments output of FAST, I calculated positions in the 6 DOFs. When AeroDyn = 0, I get the same position trends in the 6 DOFs to the FAST outputs. When I switch to AeroDyn = 2, however, the only positions consistent with FAST are x, z, ry, while the other 3 (y, rx, rz) have a totally different trend, and with greater oscillation amplitudes.
I was wondering if there is any other contribution in moving from AeroDyn = 0 to AeroDyn = 2

Thanks for your attention,
Best regards,
Lorenzo

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Wed Sep 23, 2020 10:48 am

Dear Lorenzo,

I'm sorry, but I'm not really sure I understand your question. By "AeroDyn = 0 or 2", are you referring to "CompAero = 0 or 2"? And I'm not sure what you are comparing FAST to (your own model)? And I'm not sure what you mean by "any other contribution"?

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

Lorenzo.Cottura
Posts: 56
Joined: Wed Jul 15, 2020 9:04 am
Organization: Politecnico di Torino
Location: Italy

Re: Hydrodynamic implementation

Postby Lorenzo.Cottura » Wed Sep 23, 2020 12:30 pm

Dear Jason,
Sorry, I was referring to CompAero = 0 or 2.
Adding all the forces and moments from outputs of FAST, then dividing by the mass matrix, I get the accelerations from which the positions in the 6 DOFs. Finally, I compare the positions thus obtained with the FAST outputs.
When I have CompAero = 0 the graphs are superimposed in the 6 DOFs, while with CompAero = 2 I have that the graphs of y, rx and rz do not replicate the FAST outputs well.
Since in both cases I use the same equation (in fact, I also take into account, in the case of CompAero = 0, the initial transient of the RotTrq, etc.), I wondered why in the case of CompAero = 2 it does not obtain equal trends in all DOFs but only in x, z, ry.
This is why I asked you if there are any other components of the equation, which I have neglected, that can motivate these inconsistencies in the positions y, rx, rz.
I hope I was clearer.
Best regards,
Lorenzo.

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

Re: Hydrodynamic implementation

Postby Jason.Jonkman » Wed Sep 23, 2020 2:29 pm

Dear Lorenzo,

OK, I think I understand now. But I'm not sure I have anything to add beyond what I've already discussed with Riccardo.

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

Lorenzo.Cottura
Posts: 56
Joined: Wed Jul 15, 2020 9:04 am
Organization: Politecnico di Torino
Location: Italy

Re: Hydrodynamic implementation

Postby Lorenzo.Cottura » Sun Sep 27, 2020 2:29 am

Dear Jason,
Thanks for checking.
I have tried to investigate further what can cause the differences between my outputs and those of FAST, and I have noticed that the cause is the resultant moment Mx.
In fact, I compared, for each DOF, that the equation was verified:
M * a = Fhydro + Fturbine + Fmoor - Frestoring - Fnonlinear
thus obtaining from the product M * a the resulting Fx, Fy, Fz, Mx, My, Mz which I had to obtain from the sum of the contributions to have the same accelerations as FAST.
To do this I used:
- M: variable mass matrix with the movement of the platform
- a: acceleration outputs of FAST ('PtfmTAxi', 'PtfmTAyi', 'PtfmTAzi', 'PtfmRAxi', 'PtfmRAyi', 'PtfmRAzi')
- Fhydro: outputs FAST ('HydroFxi', 'HydroFyi' 'HydroFzi', 'HydroMxi', 'HydroMyi', 'HydroMzi')
- Fturbine: forces at the base of the turbine tower, obtained starting from the aerodynamic forces / moments on the rotor ('RtAeroFxh', 'RtAeroFyh', 'RtAeroFzh', 'RtAeroMxh', 'RtAeroMyh', 'RtAeroMzh'), transported in the fixed reference of the nacelle and then transported to the base of the tower.
- Fmoor: starting from the forces in the 3 directions for each line obtained by MAP ++, the moments were obtained
- Frestoring: where the contribution on Mx is given by m * x_g * 'PtfmYaw' - m * z_g * 'PtfmRoll' where m = total mass of the system, (x_g, y_g, z_g) coordinates of the center of mass with respect to the origin of the inertial reference system
- Fnonlinear: as regards the moments, I used the formula omega x I dot omega (with omega = ['PtfmRVxi', 'PtfmRVyi', 'PtfmRVzi'] and I: inertia matrix 3x3)

As you can see from the figures shown, I obtain summation trends of forces-moments that accurately overlap with the corresponding trend M * a in all directions, except on Mx.
WhatsApp Image 2020-09-26 at 17.42.42.jpeg
WhatsApp Image 2020-09-26 at 17.42.42.jpeg (108.45 KiB) Viewed 1435 times

WhatsApp Image 2020-09-26 at 17.42.41.jpeg
WhatsApp Image 2020-09-26 at 17.42.41.jpeg (117.36 KiB) Viewed 1435 times

This makes me make some considerations:
- given that I get 5 out of 6 results, it is unlikely that there is an error of transport of the forces-moments in the turbine, of the calculation of the moments of the moorings from the forces or of the way in which I considered the restoring moment or the variation of the mass matrix . If there was an error I should have problems in other directions as well.
- for the above reasons I have asked you in the past if there were other contributions to consider, in particular some effect that acts above all on Mx (and therefore can cancel this difference which I now find).

I hope I have clearly explained the problem to you,
Best regards,
Lorenzo.


Return to “Wave Energy”

Who is online

Users browsing this forum: No registered users and 1 guest