Bmodes for tower (with rna_on and rna_off)

Hi @Pietro.Bortolotti,

I have been exploring about tower mode shapes and natural frequencies for the tower. Is it correct that (for the tower mode shapes, taking the rna into account) the fore-aft first frequency is 0.2466 Hz and the side-to-side frequency is 0.2437 Hz? I am a bit impressed because if we do not take the rna into account, the first fore-aft frequency is 0.7719 Hz and the first side-to-side frequency is 0.7719 Hz.

Additionally, regarding the output file for the tower_rna_on (the one you uploaded in github), which of the tables correspond to the mode shapes related to second side-to-side mode shape and second fore-aft mode shape?
I am saying this because the second mode shape (both fore-aft and side to side) if we do not take the rna into account is this way:
How can it be possible that , taking the rna into account, there is none mode shape similar to the one shown in the photo?

Best regards. ALberto

Hello Alberto,
I assume that you refer to this GitHub repo GitHub - ptrbortolotti/IEA15_BModes
Your questions made me realize that I hadn’t set axial and torsional stiffness artificially high enough, and the results for second modes were not correct. I’ve now rerun BModes and the results should be more intuitive now, please check. Yes, the impact of RNA is very marked. Note that we set axial and torsional stiffness artificially high to mimic the assumptions taken in OpenFAST’s ElastoDyn, which neglects those two terms. Note also that we no longer use BModes in our workflow, and so the results here IEA-15-240-RWT/OpenFAST/IEA-15-240-RWT-Monopile/IEA-15-240-RWT-Monopile_ElastoDyn_tower.dat at master · IEAWindTask37/IEA-15-240-RWT · GitHub don’t need to be changed.
Best regards,

First of alll, i am so grateful for your quick reply @Pietro.Bortolotti.

Fortunately, now the second side to side and fore aft tower mode shapes (not taking the rna into account, but only the tower) are very similar. However, there is something that makes me confused. I have done four graphs and for every graph i compare the mode shapes between Elastodyn, BModes (for the tower without rna), BModes (for the tower with rna) and Modes. One graph is for the 1st fore-aft tower mode shape, another is for 1st side-to-side tower mode shape, one more is for 2nd fore-aft tower mode shape, and lastly one more for 2nd side-to-side tower mode shape:

As @Jason.Jonkman told me, Modes does not depict the tower mode shape as accurate as BModes does. However, my doubt is why for the second mode shapes (both for fore-aft and side to side), there is a noticable difference between ElastoDyn and BModes with tower_rna_of? Plus, the second fore-aft mode shape for the tower with rna (tower_rna_on) seems very incoherent, right? I am saying this because it is hard to believe there is going to be 5 meters of tower deflection…

Surprisingly, for the second side-to-side mode shape, ElastoDyn and BModes (taking the RNA into account) are the same. Maybe the coefficients from the elastodyn input file are taken from BModes (for the tower with RNA)? But i do not know why the polynomic coefficients taken from elastodyn tower input file and the ones i acquired from the excel Modeshapepolyfitting are not the same. Is there an explanation for this? I demonstrate the two ways for the coefficients below:

For elastodyn tower input file, polynomic coefficients are:

-0.5122368127986152 TwSSM2Sh(2) - Mode 2, coefficient of x^2 term
2.236214062644386 TwSSM2Sh(3) - , coefficient of x^3 term
-4.450315822523695 TwSSM2Sh(4) - , coefficient of x^4 term
6.21339621261931 TwSSM2Sh(5) - , coefficient of x^5 term
-2.4870576399413857 TwSSM2Sh(6) - , coefficient of x^6 term

On the other hand, the coefficients using the excel called Modeshapepolyfitting are:
|a2| -0.81565769
|a3| 5.371358112
|a4| -10.92275327
|a5| 11.00488145
|a6| -3.637828603

Lastly, i would like to do a campbell diagram. I have been exploring in many forums, but i do not know how to create the straight lines (by straight lines i mean the ones that if there is one intersection point with the natural frequencies, there is resonance). I have also discovered that if i change the rotor speed, the natural frequency does not change anything (both for the blade and tower). Shouldn’t it change even a bit?

Best regards. Alberto

Hello Alberto,
there is quite a bit to unpack here. First, mode shapes are not giving you deflections in meters, they represent the shape of a mode and are not dimensional. So you cannot talk about 5 m of tower deflections from a mode shape. Note that 5 meter deflections are not unreasonable in a 145 m tall tower. I am not too sure yet why there is a discrepancy between BModes and ElastoDyn. The modes in ElastoDyn are computed using frame3dd, which is the beam solver used in WISDEM and WEIS. I’m looking into that. Also, as we said earlier the impact of the RNA mass and inertia is significant, so I’m not surprised to see differences in RNA off vs RNA on. Lastly, the Campbell. That’s possible, although it’s quite challenging. To start, you need to turn on linearization in the .fst file. This will generate .lin files, which can later be ingested into these scripts openfast_toolbox/openfast_toolbox/linearization/examples at main · OpenFAST/openfast_toolbox · GitHub
A colleague has been working on a new tool called ACDC that you can try using GitHub - deslaughter/acdc-app
I’ll get back about the discrepancy between frame3dd and BModes

I would probably add that the mode shapes are normalized in distance. In the plots from @Alberto.Utrera, the tower top displacement has been used for this normalization. The first tower bending mode looks good. However, the second tower bending mode experiences the largest amplitude at 2/3 of the tower height (more or less) and a relatively small displacement at the tower top (with quite some rotation). When using the last node (tower top) to normalize the displacements, the amplitudes at 2/3 of the tower height become very large.

In case it’s useful, you can see the first 2 tower bending moments normalized according to the largest displacement from the OC6 Phase II project ( below:

I hope that helps!

Hi @Pietro.Bortolotti , everything understood about your message, thank you very much. I still have a concern about Campbell’s diagram. I realised that it is possible to depict the campbell diagram with the frequencies from BModes, correct me please if i am wrong.

As it can be seen in the next image,i got the frequencies from BModes in a way that the Campbell diagram would be like this. Is this proceeding that i am taking correct?
I forgot to say but these are the frequencies for the 15 MW IEA Wind turbine

Apart from this, I ran a simulation in order to see lin output files. I suppose that in order to build Campbell’s diagram, i have to make a simulation (for linearization purposes) with all the wind speeds ranging from the cut-in wind speed to cut-out wind speeds, right? I assume that at the time of changing the wind speed in the inflowWind file, i have to change the rotor speed…

Thank you so much . Alberto

Hi @Roger.Bergua , I am so grateful that you clarify about the mode shapes being normalised. Thank you also for clarifying about the bending modes.

I have a doubt regarding the second tower bending mode shapes normalized from the photo you attached. How can it be possible that, at 0 height, there is a slight displacement? Since this is a polynomial (with all the coefficients including x), shouldn’t the deflection normalized in amplitude be zero?

BR. Alberto

Hi @Alberto.Utrera,

If you have a cantilever beam, your displacements and rotations at tower base will be zero. However, if you have any flexibility at the tower base (e.g., from a foundation or substructure), those displacements and rotations won’t be zero anymore.

As you properly point out, the first 2 coefficients of the polynomial that describes the tower mode shapes are assumed to be 0. The first coefficient would be the independent term and it would be an offset at the tower base. The second coefficient would be indicative of the slope at the bottom of the tower. In OpenFAST, the tower base motion (including tower base translation and rotation) is represented through the 6 DOFs of the platform. The tower DOFs are defined relative to this motion. When the user provides the mode shapes (e.g., the polynomial input), in reality provides a “pseudo-cantilevered” mode shape.

I hope it makes sense! :wink:

Hi @Pietro.Bortolotti, I suppose in the Elastodyn tower input file from the IEA-15-240-RWT-Monopile folder, the mode structural damping ratios (%), should be as stated in this excel table from BModes, right?

I am saying this because in the Elastodyn tower input file, all the mode structural damping ratios are 1. In In which sense would these modifications could affect our tower analysis? I mean, since these parameters should be stated as the table i attached, where would these differences could cause changes in the results?

HI @Roger.Bergua , I am extremely grateful for your kindness and dedication to my questions.

I suppose you got the tower mode shapes from a linearization, right? I am saying this because i am getting tower mode shapes from BModes and it turns out that in BModes there is only one possibility beam type, which is cantilevered. I have tried to establish a different beam type but the simulations do not run. In other words, BModes only run if we establish cantilever beam type. So, I am afraid i have to avoid using BModes for this, right? I tell this because BModes only deals with cantilever beams.

I was thinking that since in BModes it is cantilever beam, i could calculate the deflection via the following formulae: delta (at the transition point between transition piece and monopile)= Force/stiffness. I could assume the force as the maximum rotor thrust and the stiffness as 12EI/L^3. E stands for the elasticity modulus, I would be the cross-sectional inertia and L would be the monopile length. What is your take on this formulae??’

Thanks. Alberto

@Alberto.Utrera, BModes does not only account for cantilever beams. Indeed, for all systems that have a foundation or substructure (i.e., all offshore systems), you should account for the flexibility at the tower base in BModes (e.g., hub_conn = 2).

hub_conn: hub-to-blade or tower-base boundary condition [1: cantilevered; 2: free-free; 3: only axial and torsion constraints] (-)

BModes includes a detailed section to include the boundary conditions at the tower base side (e.g., stiffness and mass matrix):

I hope that helps.

Hi again @Roger.Bergua . Thank you very much for your replies.

I am running this simulation in BModes with the data you are saying, but i do not know why the command window throws me a message as follows:

The file i am running is as follows. If you could detect what i am adding wrong in the input file, i would be grateful. The input file (bmi extension is as follows):


If i put 1 in hub_conn, the simulation runs properly, but i do not know what i am failing at when i put 2 in hub_conn.

I believe my problem comes when defininf ref_msl and the three matrices. What would i have to put in these gaps?

Thank u. ALberto

You are defining the system as free-free and not providing any stiffness matrix at the tower base. Accordingly, your system does not have any constraints and you would get 6 rigid body modes. You must provide an stiffness matrix at the tower base. See for example the stiffness matrix in Section 3.3.1 here:

Yes, you’ll need to run multiple OpenFAST simulations varying rpm and wind speed. I’ve never relied on BModes for a Campbell. I suppose you can get an initial idea from it, but I wouldn’t rely on it for detailed studies. I’m actually not sure about why the impact of rotor speed is not there on the blade natural frequencies

1 Like

For the structural damping of the tower, you might want to refer to section 4.3 of this report, where I worked with @Roger.Bergua on a clean explanation on how to set it in ElastoDyn given a target (whether the target is questionable is a different question…). In the IEA15 we didn’t have a target and damping has been changing over the years, before we settled on 1%, which is the damping of the isolated tower

Dear @Roger.Bergua, I have made the monopile stiffness matrix for the IEA 15 mw wind turbine. I made it as follows:

I know there are 4 stiffnesses that are left, particularly K42, K51,K24 and K15, but i do not know how to calculate these (after long time investigating). Is it a formula in order to calculate these?

For the diagonal stiffness components do these look like correct?

Lastly, apart from the stiffness matrix (for the monopile), shall i have to add a mass matrix in the BModes file?

Thank you

I do not know why i cannot run the simulations. The shown message in the screen is as follows:

I have this input:


I have added the same stiffness coefficients (k42,k51,k24,k15) as in the link you sent me, but i do not know why i do not get the simulation

@Alberto.Utrera, in your message you talk about a monopile. If that is the case, you should be taking the mass and stiffness matrices from SubDyn (MBBt and KBBt from the summary file) and using that as input for BModes.

In the report that I attached before, you can see how the cross-coupling stiffness are calculated. But if you use the outputs from SubDyn, you don’t have to compute this analytically. Also, numerically, you only need to have diagonal coefficients to be able to compute the eigen solution. So, BModes is not crashing due to that.

Finally, the above message is quite confusing as this doesn’t even look like a monopile definition: the draft is 0 m (i.e., tower base is at the mean sea level), the platform center of mass is 48.77 m below the mean sea level and the platform reference point is 75 m below the mean sea level… If you are defining a monopile, you should provide the mass (MBBt) and stiffness (KBBt) matrices at the tower base location.

Dear @Roger.Bergua , thank you very much. I have added matrices according to SubDyn summary file.

I do not know why this message appears in the command window :

I do not know why this message appear. In my input file, the tow_support input is 1 (as it can be seen in my input file attached below):

Thank u. BR. Alberto

Your definition of the system still looks very odd to me. It doesn’t make sense from a physical point of view.

If you are defining a monopile system, (1) the platform reference point should be located at the tower base (not 75 above the MSL), (2) if you are defining a mass matrix at the platform reference point (i.e., tower base), it’s very unlikely that you need another -even larger- platform mass at 48.77 m above the MSL (?).

To check the inputs provided, you should enable the Echo file and review in detail what is being interpreted by BModes.