Questions on Gyroscopic Forces and Small Angle Approximations in Dynamic Yawing Analysis

Dear OpenFAST Team,

I am currently studying the loads generated on wind turbines due to dynamic yawing, with a particular focus on how yaw misalignment, yaw rate, and gyroscopic forces impact the lifetime of wind turbines.

To begin, I performed a simple test where I introduced an initial yaw misalignment of approximately 20 degrees and then had the turbine linearly return to 0 degrees misalignment. During this process, I received a message warning that the results might have low fidelity due to the use of small angle approximations in the model.

I have a couple of questions related to this:

  1. Are gyroscopic forces included in the OpenFAST model for dynamic yawing, and if so, could you guide me to the specific equations or documentation where these forces are detailed? And is it possible to plot the gyroscopic forces?

  2. Given the high yaw acceleration observed with this linear return-to-zero approach, would you recommend using the yaw controller implemented in the ROSCO controller instead?

  3. Is there a way to minimize the small angle approximation errors while still being able to test and detect forces generated due to yaw rate (dynamic yawing) and yaw misalignment simultaneously?

Your insights would be of great value in helping me refine my analysis and better understand the limitations of the current setup.

Thank you for your time and support.

Kind regards,
Abel Van Weert

Here is the basic test i did on your test case 3 (OnshoreSteadyWindCtrl case that was given during your OpenFAST workshop) with a simplistic yaw test case.

Dear @Abel.VanWeert,

The warnings you are receiving (large value of chi, small angle assumption violated, low TSR, etc.) are all happening near the beginning of your simulation, before the yaw maneuver, which suggests other issues with your model set up. Can you clarify what you changed in the input file(s) relative to what was originally in 3_OnshoreSteadyWindCtrl?

Here are my responses to your specific questions:

  1. Yes, gyroscopic loads associated with dynamic yawing are included in OpenFAST. I can’t point to a specific equation, but the terms arise from the kinematics and kinetics inherent in the equations of motion, including the yaw rate crossed with the rotor rotational speed. Likewise, there is no output specifically tailored to the gyroscopic loads. The full equations of motion implemented within ElastoDyn are documented here: 4.2.7. ElastoDyn Users Guide and Theory Manual — OpenFAST v3.5.4 documentation.
  2. You haven’t said how you are currently setting up the yaw maneuver, but I assume you are using the simple override yaw maneuver available through the ServoDyn input file; is that correct? In the end, this yaw maneuver is used to generate a yaw torque through the second-order actuator defined by the yaw spring and damper. As far as I can tell, this actuator is resulting in a bit of ringing in the yaw torque, rate, and acceleration. I would expect implementing the yaw maneuver in ROSCO would have a similar effect.
  3. Again, the small angle approximation warning seems to occur before the yaw maneuver, suggesting something else is off with your simulation set up. I would solve that issue before closely examining the yaw maneuver.

Best regards,

Dear Mr. Jonkman,

Thank you for your quick response and for providing the equations—it was very helpful.

  1. I tested a simplistic override of the yaw maneuver in ServoDyn. In the first case, I set YawNeut to -20 degrees and, after 50 seconds, rotated the turbine back to a final yaw angle of 0 degrees by setting NacYawF to 0. This approach resulted in small angle approximation errors. However, when I tested another case with YawNeut = 0 and NacYawF = -30, I didn’t encounter any small angle approximation errors. This made me wonder: what is the maximal offset/misalignment angle allowed? Why does the model rely on small angle approximations, and is there a way to circumvent this limitation?

  2. Additionally, I was curious if it is possible to continuously vary the yaw angle, for example, using a sinusoidal pattern where I can control the frequency. (and thus keeping the wind direction constant) Is this achievable without implementing a controller and varying the wind direction, or would a custom controller be required for this functionality?

Thank you again for your support and insights.

Kind regards,
Abel Van Weert

Dear @Abel.VanWeert,

Here are my responses:

  1. When you set YawNeut = -20deg, did you also set the initial yaw angle in ElastoDyn (NacYaw) to -20deg? If not, the yaw will quickly snap from 0 to -20, likely resulting in sizeable blade or tower deflection that will trigger the small angle approximation violation warning. As has been discussed in other forum topics, ElastoDyn relies on small/moderate angle approximations for the blade and tower deflections and platform rotations (although the later will be eliminated in the upcoming release of OpenFAST v4 where support for large platform rotations has been added). Regardless, those approximations are likely not the problem in your case, rather, the likely problem is the unrealistic snap in yaw angle at the beginning of the simulation.
  2. Specifying a sinusoidal variation of yaw angle in OpenFAST cannot be done without implementing a custom controller or source code change.

Best regards,

Dear Mr. Jonkman,

  1. That was indeed the case, so if i get it right big yaw angles/misalignments don’t generate small angle approximation errors but abnormal deflections do?
  2. Okay then i think i will install the Rosco controller and vary the wind direction and let my system react to this change in wind direction with different yaw rates.

Again thanks for the support,
Abel Van Weert

Dear @Abel.VanWeert,

Regarding (1), I agree.

Best regards,