Campbell Diagram Generation for IEA 15MW

Hi Everyone,
I have been trying to produce a Campbell diagram using the scripts from the MATLAB toolbox and I am looking for some advice.
I am looking to reproduce the Campbell diagram from various publications [1], [2] for the IEA15MW. Example from [1]:


My reason for doing this is that I have alternative tower designs that I’d like to replicate the diagrams with. However, my response appears off (particularly with regards to blade modes).

I suspect a combination of my input files ( I did try matching the core settings of the example 5MW which worked fine) and the defined list of linearization points are the cause. I have experimented with using the default linearization points file settings and trying to follow the setup that was described in [2] using 0-14 rpm in steps of 2 with a fixed 0 pitch angle but none of my approaches have yielded a good result. I have also seen a couple posts here related to MBC3 so I’m not sure if that could also be a potential cause.

Can anyone offer some guidance on how to potentially improve my output? I feel like I am perhaps misunderstanding how these scripts work.


PS: I apologise for the relatively low quality images and I was looking to attach a zip file with some input files but I had some issues attaching those here. I have tested the Campbell script with varying settings (for example: activating different/ all DOFs, varying input files, etc) so not sure how useful including the input files would be.



Hello Dylan,
thank you for using the forum. Let me see if I can be of help. I’ve generated Campbell diagrams for the IEA15 before and yours doesn’t seem all that off, except maybe at 7rpm. Here either the mode identification is failing, or you haven’t found a good steady state point. A few questions to narrow down the problems: you are not including aerodynamic effects, right? What modules are you including in the linearization? Only ElastoDyn? And which DOFs? Rotor and Tower? What about Drivetrain? And finally, what about the generator DOF? My recommendation would be to start without aerodynamics and with a rotor-only-DOF linearization, then include the tower, and lastly the drivetrain. And build your system in complexity.
Let me know and best regards,

1 Like

Hi Pietro,

Thank you for the response!
I have tried a variety of input files and DOFs but have not tried just Elastodyn only with rotor only DOF linearisation.
Will give that a go and get back to you.



I had a go at running this just with Elastodyn.
When looking at purely rotor related DOFs, my response appears reasonable (please let me know if I’m wrong with that)

Adding in towerDOFs and all of a sudden the response looks off. The 2nd Tower FA in particular stands out.

Not sure why this is happening or if it is expected behaviour but I’ll experiment a bit with my operating points and investigate the modes.

Hello Dylan,
my apologies for the slow reply. The mode identification is imperfect, so you might need to manually identify the modes. We’re actively working to simplify how modes can be visualized in OpenFAST to assist the identification.
Best regards,

Hi Pietro,

Thanks again for your help with this. Yeah, I’ve working on some scripts myself on that front, it is certainly a challenging area! Some initial results appear positive but needs more time.

Out of curiosity, I’ve noticed a consistent problem I’ve had when producing Campbell diagrams via the MATLAB Toolbox scripts where at certain rotational speeds, the frequency will change rapidly (the first graph I posted in this topic is one such example).

I’ve not figured out what is the immediate cause of this and decided to try the baseline onshore 5MW model that is used in the example with the aim of replicating the results in this linearization paper (

Again, the results line up well with the example up until around 10rpm where I see a sudden drop in 2nd Tower FA and 2nd Blade Flap Frequencies.

In terms of setup for this I largely followed the process from the linked paper, albeit here I just used Elastodyn with blade and tower DOFs enabled (no generator, yaw or drivetrain DOFs enabled).
For operating points I ran it from 0 - 14rpm in steps of 2 with 0 pitch angle.
In terms of linearisation options, steady state was found each time (NLinTimes = 36, TrimTol= 0.0001).
Worth noting as well that here I used openfast v2.4 but in that first graph I used v3.3.

I don’t see anything that is immediately wrong with my setup, do you have any suggestions with what could be the cause here? I feel like I am maybe missing something obvious. To me it is odd that I am having similar issues across different RWT models and openfast versions.

Hello Dylan,
no I don’t have any good idea. As a matter of fact, I’ve always run cases with BeamDyn and I’ve identified the modes manually / through visualization. I’m sorry that I cannot be of help here.

Dear @Dylan.Duncan,

I would guess what you have labled as “2nd Tower FA” at 12 and 14 rpm is actually “2nd Blade Flap (Progressive)”, which would fix that line. But I’m not sure why you are getting a new frequency at about 1.1 Hz. As Pietro suggested, using the mode shape visualization functionality may help with modal interpretation.

Best regards,

Thank you for the advice Pietro and Jason,
I believe I have sorted out my model as per your suggestions and now I am getting tower frequencies that match what I have seen in literature.

Few minor follow-up questions just to help me sanity check myself:

  1. My 2nd Blade flap frequencies are around 1.5-1.7 Hz where as in the example that I included they are noticeably higher (roughly 2.3Hz - 2.5Hz during operating rotor speeds).
    The only core difference I noticed from their description was that they had enabled platform DOFs which I had disabled in mine and that I have used a newer version of the IEA 15MW model and OpenFAST (I suppose if the blade design has been further optimised in newer releases, that might explain some of the difference)
    Are my 2nd Blade frequencies reasonable in this instance?

  2. I ran a similar analysis on my alternative tower design, and found that my tower frequencies intersect with 3P frequencies at one point.
    To my knowledge this isn’t ideal but I see no issues regarding resonance within my simulation results. Again is this reasonable or would does this type of result mean that I should look into making improvements? For example: say increasing stiffnesses
    Unfortunately I can’t share technical specifics regarding this tower on a public forum like this.

Dear @Dylan.Duncan,

I’m not an expert on the IEA Wind 15-MW reference wind turbine, so, I can’t comment on the blade frequencies.

Regarding the intersection of the tower frequency with 3P, this is normally avoided. You mention “no issues regarding resonance”; can you clarify what you mean? Have you compared the tower loading between a tower with a frequency that intersects 3P and a tower that has a lower or higher frequency?

Best regards,

Hi Jason,

Apologies for the long reply. Please allow me to hopefully better clarify my question.

I have generated a frequency response for the IEA 15MW VolturnUS-S UMaine tower using both campbell diagrams and WISDEM.
In all instances when I calculate the natural frequency, it comes in at around 0.3Hz which is within the 3P “range” (see below example)

What has been confusing me is that in the documentation, the natural frequency is around 0.5Hz (I have included that graph below)

How was this natural frequency of 0.5Hz calculated?
When I manually calculate the 1st mode frequencies (as a simple cantilever using the RNA mass) I also get a frequency of around 0.29Hz. So I’m just a bit lost as to what could be causing this difference.



Hi Dylan,

The discrepancy stems from the boundary conditions. The floating cannot be modeled as a cantilevered beam with the RNA as a point mass because the floating foundation is compliant. To the best extent possible, it is important to account for the hydrostatic and mooring stiffness of the platform in a free-free boundary condition instead of a rigid base. That should account for the differences.

See other discussion of this topic:


Hi Garrett,

That makes perfect sense to me. Thank you for the clarity and supporting comments.

Out of curiosity, I ran the WISDEM scripts from the latest release of the 15MW Volturn ( and and checked that the necessary modules including FloatingSE were enabled).

I still get low frequencies (a little over 0.3Hz) but under the reported 0.5Hz. Is this just down to a limitation within WISDEM/FloatingSE? or is there something that those scripts didn’t account for? Ultimately, I can use BModes or build my own scripts so it isn’t a big issue.