Campbell Diagram & MBC3 output relation

Dear Jason,

Yes, I do have the Excel spreadsheet automatically generated using the MATLAB scripts. This file is not different from the manually generated except that it is now automated. I am trying to understand the algorithm behind mode identification. I can see that the mode identification algorithm used in the MATLAB toolbox code is not 100% foolproof which makes it sometimes pick the wrong modes.

Best Regards,

Dear @Jason.Jonkman @Jinsong.Liu @Jason.Lai
Right now I am trying to calculate for the natural frequencies of NREL 5MW wind turbine. However, several problems occurred. Could you please help me to figure these out?

First, about setting the initial parameters when linearizing for natural frequencies. As shown in the following figure, when doing the linearization, we should disable the InflowWind and AeroDyn modules and first set the rotor speed to be zero.

In my comprehension, disabling the InflowWind and AeroDyn modules means to put ‘unused’ before corresponding files in .fst, as shown in the following figure. Is that right?

My DOF is set as follows.

When set the rotor speed to be zero, can I just simply modify the RotSpeed in ElastoDyn.dat to be 0, which is shown below.

After doing those settings, my linearization failed, and the notice shows like this:

I guess the problem is due to the parameter setting. Could you please help me to figure these out?

Second, about the CampbellDiagram for NREL 5MW wind turbine.
For the natural frequency of 1st drivetrain torsion, the data differs. As shown in the Definition of a 5-MW Reference Wind Turbine for Offshore System Development, the natural frequency of drivetrain is 0.6205Hz.

Nevertheless, from FAST modularization framework for wind turbine simulation: full-system linearization, we know that the natural frequency for drivetrain is about 1.6Hz when rotor speed= 0 rpm(stationary condition), which is different from 0.62Hz shown in the Definition document. Could you help me explain why these happen? And which data should we rely on?

Thank you sooooo much!!! Looking forward to your early reply!!!

Dear @Yinghan.Liu,

You should disable InflowWind and AeroDyn if you want to linearize in the absence of aerodynamic loads. To do this it is not necessary to set InflowFile = AeroFile = “unused” (though you certainly can do so), but you should set CompInflow = CompAero = 0.

You can certainly set RotSpeed = 0, but because the aerodynamic torque will be zero when AeroDyn is disabled, you should ensure that the generator torque in ServoDyn is also zero (or you should disable ServoDyn as well, and if you disable ServoDyn, I would disable the nacelle-yaw DOF in ElastoDyn as well, YawDOF = FALSE).

The drivetrain torsion mode of the NREL 5-MW baseline wind turbine is around 0.6 Hz when the generator is locked (GenDOF = FALSE, corresponding to a fixed-free condition) and around 1.6 Hz when the generate is free to rotate (GenDOF = TRUE, corresponding to a free-free condition). In most conditions, I would expect GenDOF = TRUE, as it is quite rare to park a large rotor with mechanical brake.

Best regards,

Dear @Jason.Jonkman
I am truly grateful for your help! You are so patient and kind!!

For the first problem, I verify my parameters setting in OpenFAST under your guidance, but the linearization still aborted. Could you help me figure out why this happens?
To be more specific, I have already set CompInflow = CompAero = 0 in .fst..


What is more, after setting the RotSpeed = 0, I also make some changes in ServoDyn in order to ensure that the aerodynamic torque is zero.

However, the linearization still cannot work, and it gives such hint. Could you plz help me find where the problem locates?

I also tried another method to make sure the aerodynamic torque is zero, as disabling ServoDyn. However, the linearization also goes wrong. It only produces one linearization file, but I set the linearization times to be 36.

For the second problem, I am trying my best to understand your detailed answer. Can I understand like this? The fixed-free condition (GenDOF = FALSE) means the generator can only rotate at a constant speed without the ability to make small changes? The free-free condition (GenDOF = TRUE) means the generator can rotate freely?

Thank you soooo much!!!

Dear @Jason.Jonkman
Sorry for interrupting you again!
I have another two questions to ask:

First. Under your guidance, I also try to calculate for the natural frequency when RotSpeed=2 rpm. In my comprehension, the only difference of parameter setting between 0rpm and 2rpm is the initial rotor speed RotSpeed we set in ElastoDyn.dat.
Here I still disable CompServo, since I think when we diable AeroDyn and InflowWind, both the aerodynamic torque and the generator torque are zero. But how does the rotor and generator rotate when the torque is zero? This is a question I am confused about.
The error hint is shown as following.

Second. When I analyze the linearization results, I find that the number of mode is always less than the number of states, when states is 15, the modes is only 14.

The following figure shows that, after doing MBC, the number of states is only 15.

However, the number of modes is only 14, which is equal to the number of eigenvalues, dampratios, dampedfrequencies, nuturalfrequencies, etc.

It shows that there is a rigid body mode. Is that the reason why the modes shown in the mbc_data.eigSol is one less than the states? Furthermore, after disabling the GenDOF, the number of states become equal to the number of modes, which is 14.

Could you help me explain why this happens?

Thanks for your time and patience!

Dear @Jason.Jonkman
After a heat discussion with my friend, we are still confused about the condition to calculate for natural frequency: in the absence of aerodynamic loading. However, how can the rotor rotate if we don’t give it a aerodynamic torque, which is resulted from the inflow wind?

We are looking forward to your reply! Thank you sooooooo much!

Dear @Yinghan.Liu,

When the rotor is not spinning (RotSpeed = 0), OpenFAST will only linearize once after finding the steady-state solution (because other azimuth angles are never reached), effectively overwriting the value of NLinTimes to 1.

When RotSpeed = 2 rpm, OpenFAST will linearize NLinTimes around the 360-degree azimuth rotation of the rotor once a steady-state solution has been found. But in your case, it looks like a steady-state solution cannot be found; in this case, OpenFAST will just linearize once at the end for reference purposes. Without knowledge of your input file settings, I’m not sure why a steady-state solution is not being found. But I would suggest plotting the time series to see if the solution is approaching a steady state such that increasing TMax will result in convergence, or not. Or perhaps the TrimTol needs to be changed to ensure that a steady-state solution is found.

When GenDOF = FALSE, the generator is no longer a degree of freedom that reacts to applied moments. As with any DOF in ElastoDyn, a disabled DOF means that the acceleration is zero and the speed is constant and equal to the initial speed, regardless of loads applied. If the initial rotor speed (RotSpeed) is zero, then the generator will not rotate at all. Whether spinning at a constant speed or nonrotating when GenDOF = FALSE, the generator-side of the shaft acts as a cantilevered boundary condition, resulting in a fixed-free condition of the torsion mode of the shaft.

Without any aerodynamic or generator torque, I would expect expect there to be negligible damping of the generator DOF, which is a rigid-body mode, and so, if you set a nonzero initial RotSpeed, this speed should be maintained without applying external torques.

The eigensolution computed by the MBC3 post-processor drops rigid-body modes that don’t have a natural frequency, which is why MBC3 calculates one less mode than the number of DOFs enabled when GenDOF = TRUE.

Best regards,

Dear Jason,

I really appreciate your help! Now the problem is solved after adjusting the tolerance TrimTol.

Thanks again!

1 Like