Aerodynamic Torque - Generator dof enabled

Dear Dr. Jonkman,
as a part of my master thesis, I’m currently working on a wind turbine model. I’ve built the fast model of the turbine and now I want to simulate it in order to test my control strategy.
However, I’m dealing with a problem: the aerodynamic torque (Rot_torque output of elastodyn) changes when the generator dof is enabled, even if the rotor velocity is the same.
Moreover, this aerodynamic torque value doesn’t coincides with the one calculated using Rt_AeroCq and, as a consequence, the operating point of the turbine is different compared to the expected one.
I hope you can help me solving this problem. Thank you in advance.
Best regards,
Giulia

Ps: the order of magnitude of the aerodynamic torque is 0.1 Nm

Dear @Giulia.DaPra,

Presumably the following forum topics that are related to your question answer your question?:

Best regards,

Thanks for your kind reply.
In the past discussions, you said that the Rot_torque is the sum of the aerodynamic torque and the rotor inertia. The problem is that, in my case, the rotor speed is constant, so I do not expect differences.
Do you have any idea about the possible causes?

Best regards

Dear @Giulia.DaPra,

Then I think I’d have to understand more about the issue your facing to comment further. Please clarify with more detail.

Best regards,

I’ll try to explain better. I did two different simulations:

  • in the first one, the gen dof is disabled and the rotor velocity is fixed to 876 rpm. In this case I obtain an aerodynamic torque equal to 120 mNm (calculated using Rt_AeroCq)
  • in the second one, the gen dof is enabled and I’m implementing a TSR tracking control strategy in order to follow the same rotor speed (876 rpm). In this case, the system is able to follow the reference, but the generator torque needed is 27.5 mNm (159 mNm rotor side). The efficiency in this case is set to 100%.
    I do not understand why the operating torque in the two simulations is different, even if the rotor speed is the same.

Ps: all the other dofs are disabled in both simulations

Best regards,
Giulia

Dear @Giulia.DaPra,

To debug this, I would suggest adding other outputs to compare between the two cases. Does AeroDyn output RtAeroMxh match the 120 mNm you calculate from RtAeroCq? What is RtAeroMxh for the second case and is it matching GenTq (referenced to the rotor side of the drivetrain)?

Best regards,

Dear Dr. Jonkman,
In both cases RtAeroMxh is equal to 120 mNm. I do not understand why in the second case the generator torque doesn’t match this value (rotor side of course).
Thanks.
Best regards,
Giulia

Dear @Giulia.DaPra,

Does your gearbox have a nonideal efficiency or is GBoxEff = 100% in ElastoDyn? I agree that GenTq*GBRatio should equal RtAeroMxh if the rotor speed is not changing, the generator DOF is enabled, and the gearbox efficiency is 100%. I’m not aware of an issue in OpenFAST related to this, so, I would first check your work. If you can’t identify the issue, please share your full set of OpenFAST input and output files.

Best regards,

Yes, the gearbox efficiency is equal to 100%.
Can I send you the model by email, please?
Thank you
Giulia

Dear @Giulia.DaPra,

The easiest way is to share the files through a Google Drive or via WeTransfer.

Best regards,

Here the link to the folder:

Thanks.
Best regards,
Giulia

Dear @Giulia.DaPra,

I’ve briefly reviewed your model and see the discrepancy between the aerodynamic torque (RtAeroMxh) and the generator torque (GenTq) and low-speed shaft torque (LSShftMxa). In general, LSShftMxa = GenTq*GBRatio, but this does not equal RtAeroMxh.

I have one guess as to why this is happening. I see that your AeroDyn blade model (with NumBlNds = 39) is more finally discretized than your ElastoDyn blade model (with BldNodes = 27). This means some of the aerodynamic details are lost when the aerodynamic loads computed by AeroDyn are mapped to the structural model in ElastoDyn. RtAeroMxh is reporting the aerodynamic torque calculated by integrating the loads from the aerodynamic mesh. I would generally expect this to equal the aerodynamic torque calculated by integrating the applied loads from the structural mesh. But my guess this is not happening because of the coarser discretization and some numerical round off. In general, the mesh-to-mesh mapping built within OpenFAST should maintain the overall force and moment balance, but there could be some numerical round off happening, particularly at the low force magnitudes in the very small turbine you are simulating. I suggest either reducing NumBlNds or increasing BldNodes to see if that solves the issue.

Best regards,

Dear Dr @Jason.Jonkman,
thank you very much. I’ll try to change the number of nodes.
Best regards
Giulia

Dear @Giulia.DaPra,

Another issue I noticed is that your blade length in ElastoDyn is TipRad-HubRad = 0.3311 m, but your blade length in AeroDyn is 0.336 m (AeroDyn input BlSpn). Perhaps you are receiving a warning regarding mesh mapping? The internal tolerances used in the internal mesh-mapping of OpenFAST are on the order of mm, which is typically small for a wind turbine, but your turbine model is very small, so, the internal tolerances likely are not working well for your model. I would suggest changing either your AeroDyn or ElastoDyn model such the blade length is exactly the same between AeroDyn and ElastoDyn.

Best regards,

Dear Dr. @Jason.Jonkman,
I tried to implement your suggestions.

  • increasing the number of blade nodes (BldNodes=39) nothing changes
  • on the contrary, changing the blade length, the generator torque slightly decreases (26.8 mNm). However, the value is still wrong.
    Moreover, I have this error message when I run openfast:
    “Running ElastoDyn.
    Nodal outputs section of ElastoDyn input file not found or improperly formatted.
    Running AeroDyn.
    AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
    Skipping nodal outputs.”
    Thank you very much.
    Best regard,
    Giulia

Dear @Giulia.DaPra,

The “nodal output” warnings will not effect the simulation results; you can ignore the warnings.

Are you receiving any warnings regarding the mesh mapping?

My concern with your model is that there are likely numerical round off errors leading to the differences you are seeing. I’m not sure I understand why your rotor radius is much smaller than a meter, but my guess is some of the tolerances built into OpenFAST are not sufficient for such a small turbine model. Running OpenFAST compiled in double precision may help, but you may also need to change some of the internal tolerances.

Best regards,

Dear Dr. @Jason.Jonkman,

No, I’m not receiving any warnings about the mesh mapping.

Thank you a lot for your help.
Best regards,

Giulia