Page 1 of 2

Modeling of linear foundation for onshore turbine

Posted: Sun Jan 19, 2020 11:48 pm
by Jens.Geisler
Hi everybody,
I am trying to convert a model from Bladed to OpenFAST as accurate as possible. In Bladed the tower base can be either coupled to the inertial frame or to a specified mass/inertia via a single linear spring per DOF with specified stiffness. I would like to reproduce the later option with OpenFAST.

In this post (https://wind.nrel.gov/forum/wind/viewtopic.php?f=3&t=1227&hilit=foundation+stiffness#p5322) it is mentioned that this could be done using HydroDyn without the "hydro"-parts. Is that still the recommended way to go? If yes, could some one give me an example file? I am not sure how to set some of the parameters:
[*] Do WtrDens, WtrDpth and MSL2SWL have an effect, if WaveMod, CurrMod and PotMod are zero?
[*] Should the platform force flags be true or false?
[*] Can I set NAxCoef, NJoints, NPropSets, NCoefDpth, NMembers, NFillGroups to zero?
[*] What should I choose for the simple hydro dynamic coefficients (model 1)

Thanks already for you help!

Re: Modelling of linear foundation

Posted: Mon Jan 20, 2020 8:55 am
by Jason.Jonkman
Dear Jens,

I gather from your question that you are modeling a land-based wind turbine; is that correct? If so, the simplest solution may be to enable the user-specified external platform (ExtPtfm) by setting CompSub = 2 and CompHydro = 0, which is briefly documented here: https://openfast.readthedocs.io/en/mast ... nfast.html.

Best regards,

Re: Modelling of linear foundation

Posted: Tue Jan 21, 2020 1:47 am
by Jens.Geisler
Hi Jason,
thanks for the quick reply.
Indeed I am modeling an onshore turbine. I will edit the title accordingly.
Is the file format for the SubFile the same as when CompSub=1? Or is there any place I can find an example file (already looked in the matlab-toolbox and r-test repos)?

BR

Re: Modeling of linear foundation for onshore turbine

Posted: Tue Jan 21, 2020 6:08 am
by Jason.Jonkman
Dear Jens,

Good question; no, the file format is specific to ExtPtfm. I looked a bit and can't seem to find a sample input file. But looking at ExtPtfm_MCKF.f90/ReadPrimaryFile(), the format of the input file looks quite clear:

Code: Select all

Lines  Description
1      File Header: External Platform MCKF Matrices
2      Section Header: Mass Matrix
3-8    PtfmAM
9      Section Header: Damping Matrix
10-15  Damp
16     Section Header: Stiffness Matrix
17-22  Stff
23     Section Header: Loads time-history
24     Loads time-history table channel names, i.e. Time PtfmFt_FX PtfmFT_FY PtfmFT_FZ PtfmFt_MX PtfmFT_MY PtfmFT_MZ
25     Loads time-history table channel units, i.e. (s)  (N)       (N)       (N)       (Nm)      (Nm)      (Nm)
26-end PtfmFt_t PtfmFt

I hope that helps.

Best regards,

Re: Modeling of linear foundation for onshore turbine

Posted: Tue Jan 21, 2020 6:19 am
by Jens.Geisler
Great, thanks I'll try this and report back how it works.

Re: Modeling of linear foundation for onshore turbine

Posted: Fri Jan 31, 2020 3:08 am
by Jens.Geisler
Here is my promised report. From what I saw so far it seems to work as expected.
In the main fst file I set:

Code: Select all

          2   CompSub         - Compute sub-structural dynamics (switch) {0=None; 1=SubDyn; 2=External Platform

and

Code: Select all

"sub_file_path"      SubFile         - Name of file containing sub-structural input parameters (quoted string)


In the ED file I set, e.g.

Code: Select all

True         PtfmSgDOF   - Platform horizontal surge translation DOF (flag)
True         PtfmSwDOF   - Platform horizontal sway translation DOF (flag)


and I have a SubExtPtfm file like this:

Code: Select all

------- External Platform MCKF Matrices INPUT FILE -----------------------------
------- MASS MATRIX ------------------------------------------------------------
    1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     1.300000E+07     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     1.300000E+07     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     1.000000E+00
------- DAMPING MATRIX ---------------------------------------------------------
    1.000000E-02     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     1.000000E-02     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     1.000000E-02     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     7.211103E+06     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     7.211103E+06     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     1.000000E-02
------- STIFFNESS MATRIX -------------------------------------------------------
    1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     1.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     4.000000E+10     0.000000E+00     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     4.000000E+10     0.000000E+00
    0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     0.000000E+00     1.000000E+00
------- LOADS TIME HISTORY -----------------------------------------------------
Time PtfmFt_FX PtfmFT_FY PtfmFT_FZ PtfmFt_MX PtfmFT_MY PtfmFT_MZ
 (s)  (N)       (N)       (N)       (Nm)      (Nm)      (Nm)
 


This is written by a MATLAB function which essentially looks like this:

Code: Select all

M= diag([m m 1 I1 I2 1]);
K= diag([K_trans K_trans 1 K_rot K_rot 1]);
D= diag(0.005*2*sqrt(diag(K).*diag(M)));


fprintf(fid, '------- External Platform MCKF Matrices INPUT FILE -----------------------------\n');
fprintf(fid, '------- MASS MATRIX ------------------------------------------------------------\n');
for row= 1:6
    for col= 1:6
        fprintf(fid, '   % 12.6E ', M(row, col));
    end
    fprintf(fid, '\n');
end
fprintf(fid, '------- DAMPING MATRIX ---------------------------------------------------------\n');
for row= 1:6
    for col= 1:6
        fprintf(fid, '   % 12.6E ', D(row, col));
    end
    fprintf(fid, '\n');
end
fprintf(fid, '------- STIFFNESS MATRIX -------------------------------------------------------\n');
for row= 1:6
    for col= 1:6
        fprintf(fid, '   % 12.6E ', K(row, col));
    end
    fprintf(fid, '\n');
end
fprintf(fid, '------- LOADS TIME HISTORY -----------------------------------------------------\n');
fprintf(fid, 'Time PtfmFt_FX PtfmFT_FY PtfmFT_FZ PtfmFt_MX PtfmFT_MY PtfmFT_MZ\n');
fprintf(fid, ' (s)  (N)       (N)       (N)       (Nm)      (Nm)      (Nm)\n');

Re: Modeling of linear foundation for onshore turbine

Posted: Fri Jan 31, 2020 6:31 am
by Jason.Jonkman
Thanks!

Re: Modeling of linear foundation for onshore turbine

Posted: Sun Jun 07, 2020 3:29 am
by Meriem.Mbarek
Hi Jens ,
i would like to ask you about the calculation inside the 2 Matrix(Damping, Stiffness).
could you please explain me more about this results .
Best regards ,

Re: Modeling of linear foundation for onshore turbine

Posted: Mon Jun 08, 2020 6:00 am
by Jens.Geisler
Hi meriem,
I set the matrices as follows:
- all matrices are diagonal because I didn't have more detailed data, but diagonal is usually a good choice in this case.
- the damping matrix must be a real physical damping coefficient "d" (never mind the capital variable name in the script) but I only had a damping ratio "D" given that was 0.5% (0.0005). The calculation of damping coefficient from damping ratio is d=2*D*sqrt(m*k). If you are not familiar with this relationship you can look it up in the wikipedia.

Finally if you don't have a mass given, this means your foundation is coupled to the inertial frame. FAST does not allow this directly but you can achieve almost the same effect by setting the mass and moments of inertia to very high values. Ideally you should choose the mass and moment of inertia of the earth as values but that might cause numerical problems. Usually values about 10 to 50 times those of the total turbine should emulate an inertial foundation well enough.

Re: Modeling of linear foundation for onshore turbine

Posted: Mon Jun 08, 2020 7:40 am
by Jens.Geisler
Here is another question and answer:
Q:
but how you choose the damping ratio as 0,0005 in some doc i found that they took as 0,15 ?
why all the values of diag are 1 just 2 of them are different? (mass ans stiffness) ..

A:
0.5% damping is quite usual. But 0.15% (or is it 15%?) may also work. You have to run some simulations to see what suites you best.
I only had values for translation and rotation about the x- and y-axes given, so I set the z-axes values to one. But these values only make sense when they are not being used, i.e. the corresponding degrees of freedom are set to false in the ElastoDyn config file. Otherwise such a low stiffness would make the turbine sink miles into the ground :-(

Re: Modeling of linear foundation for onshore turbine

Posted: Mon Jun 08, 2020 7:45 am
by Jens.Geisler
And another question I received by mail:
Q:
The mass moment of inertia I1,I2 How you choose their values ?

A:
All masses, moments of inertia and stiffnesses I worked with came from a Bladed model. If you don't have such reference values, you might want to make the foundation like 10 times more inert that your turbine. For the moments of inertia you could take the mass of the rotor nacelle assembly and multiply it by the square of the tower hight as an approximation of the turbine values.

Re: Modeling of linear foundation for onshore turbine

Posted: Sat Jul 04, 2020 5:54 am
by Drew.Gertz
Hi Jens,

I am also converting a Bladed model to OpenFAST. I'm just wondering how you dealt with the missing DOFs in OpenFAST? That is: tower torsion, nacelle tilt, and main shaft bending? I found a workaround for tower torsion here (viewtopic.php?f=3&t=645&p=14736&hilit=tower+torsion#p14736) but I'm wondering about the other two.

Thanks!

Best,
Drew Gertz
Principal Consultant
Northwind Engineering OÜ
www.northwindengineering.com

Re: Modeling of linear foundation for onshore turbine

Posted: Sat Jul 04, 2020 8:09 am
by Jens.Geisler
Hi Drew,
I just plain ignored these missing DOFs. In typical turbines they shouldn't make much of a difference. The biggest influence is probably that of the tower torsion. I didn't read the topic linked by you but I assume it suggests to emulate tower torsion with a yaw stiffness which should work quite well.
If a very good comparison must be achieved, those DOFs must be disabled in Bladed.

Re: Modeling of linear foundation for onshore turbine

Posted: Mon Aug 03, 2020 3:55 am
by Meriem.Mbarek
Hi,
My apologies for the late reply, thank you for your detailed and helpful explanation.
i'am studying onshore wind turbine and i want to know the effect of the foundation on the tower loads , i would like to ask about how could i calculate the eigenfrequencies (with the consideration of the foundation effect) , and how can i set the rigidity parameter ,could i set this parameters ( PtfmSgDOF ,PtfmSwDOF,PtfmHvDOF) in Elastodyn True,and if could i there's some conditions? or it's not possible ?
Thank you.
Kind regards,

Re: Modeling of linear foundation for onshore turbine

Posted: Mon Aug 03, 2020 6:35 am
by Jason.Jonkman
Dear Meriem,

Are you using OpenFAST with a the external platform (CompSub = 2) option? The linearization capability of OpenFAST does not currently support this option, although you could derive the eigenfrequencies by post-processing of time-domain responses, as has been discussed on this forum.

NREL has been working on modeling foundation flexibility and soil-structure interaction in OpenFAST by both including a 6x6 stiffness matrix (coupled springs model) at joints in SubDyn and by introducing a new module, SoilDyn. SoilDyn provides an option for a simple 6x6 stiffness matrix, but also includes options for interfacing to the REDWIN DLLs developed by NGI (to model soil-structure interaction via a superelement, including soil hysteresis), as well as and a placeholder for future implementation of a p-y and t-z curves. These are not currently included in a public release, but are being developed in branches on forks of OpenFAST. And these developments also support full-system linearization capability for direct eigenanalysis. More information will come soon.

Best regards,