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.
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?
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?
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.
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..
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?
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.
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.
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!
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.
Dear Jason.Jonkman
I am trying to use campbell_diagram_data.m and fx_mbc3.m to analysis the linearization result from BeamDyn. I hope to get the frequency of flap and torsion modes. But I found the top of ‘ Mode 50 state description’ in ModesTable is always rotation displacement in Z or Y and I cannot recognize which mode it is. For example, I simulated DTU 10MW wind turbine and the frequency of 1st flap mode is about 0.55Hz. when I check the result in ModesTable I found the nearest frequency is about 0.51Hz and the top mode state is ‘Blade cosine finite element node 8 rotation displacement in z,rad’. So how can I recognize the modes for each frequency. The version of openfast I used is 2.5.0. During simulation, the wind turbine is rotation in regular speed. I sincerely hope the guidance.
There were several issues with the linearization of BeamDyn, which have been fixed in more recent versions. I would recommend upgrading to OpenFAST v3.5.3 and rerunning your linearization analysis with BeamDyn again with that version: Releases · OpenFAST/openfast · GitHub.