OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
681 stars 456 forks source link

A method to add a blade pitch actuator model in OpenFAST #1779

Open ietqlw opened 1 year ago

ietqlw commented 1 year ago

Dear all,

I would like to add a blade pitch actuator model in OpenFAST. It is expected to be capable of evaluating the energy consumption of the blade pitch motor.

My preliminary thought is : (1) attain the real-time aerodynamic load, gravity load, inertia load on each blade.
(2) A PID controller is designed to calculate the output torque of blade pitch motor via the error between real blade pitch angle and reference blade pitch angle. The reference value is the output of the baseline blade pitch controller. (3) The output torque of blade pitch motor with the real-time aerodynamic load, gravity load, inertia load are used to calculate the blade pitch acceleration according to the Newton's Second Law.

Then I have two questions to consult: (1) Whether my preliminary thought listed above is reliable. (2) Which variables I should select in details to represent the real-time aerodynamic load, gravity load, inertia load on each blade in OpenFAST?

jjonkman commented 1 year ago

Dear @ietqlw,

I agree that adding a blade-pitch actuator would be an important addition to OpenFAST. And I generally agree with the approach you outline. What is missing from your approach, however, which I feel is needed, is to add a blade-pitch degree of freedom (DOF) to ElastoDyn so that the torque of the blade-pitch servo is actually used to orient the blade. This would be consistent with how the nacelle-yaw actuator functions for control of nacelle-yaw in OpenFAST. Moreover, NREL now has plans to add this functionality to OpenFAST, but this will not happen until 2025.

Some background: The blade-pitch actuator dynamics are currently missing from OpenFAST, that is, the controller commands and pitch angle and the blade is immediately oriented to that angle. This misses important dynamics such as pitch rates and pitch accelerations that could bring about structural loads that are currently missing from OpenFAST. Adding a blade-pitch DOF to ElastoDyn and blade-pitch actuator to ServoDyn would solve this issue.

Best regards,

ietqlw commented 1 year ago

Dear @jjonkman,

Thank you for sharing your constructive views.

If I would like to roughly evaluate the engery consumption of the blade pitch motor (not persue the high accuracy), might it be reasonable to neglect the effect of pitch accelerations on structual loads?

I checked the ElastoDyn source code and found that the blade root pitching moment m%AllOuts( RootMzc(K) ) had considered the effects of the aerodynamic forces, aerodynamic moments, gravity moments and inertia mements from the blade tip and blade elements. Hence, I would like to use the blade root pitch moment to calculate the pitch accelerations.

The detailed idea is presented in the following figure. (1) the blade pitch setting value β* is calculated from the gain-scheduling PI controller of .dll file. (2) the error between β* and real blade pitch angle _β_k is used to calculate the driving torque M_servo of blade-pitch servo. (3) the difference between servo torque M_servo and the blade root pitching moment M_zc is used to calculate the blade pitch acceleration. (4) the blade-pitch rate and angle are then computed based on the blade pitch acceleration. (5) the power of blade-pitch servo is calculated by M_servo_ and blade pitch rate.

微信截图_20230920160959

The effects of blade pitch activity on structural loads are neglected. please help me evaluate whether the idea is reasonable.

jjonkman commented 1 year ago

Dear @ietqlw,

That all sounds reasonable, but it sounds like you are adding a blade-pitch degree of freedom. Or you are proposing do this as a post-processing step of OpenFAST, where RootMzc(K) is computed without any effect contribution of the blade-pitch actuation? If so, I would think this would miss important couplings.

Please also note that what you call J_pitch (the rotational inertia of the blade) would change every time step as a result of blade deflection.

Best regards,

ietqlw commented 1 year ago

Dear @jjonkman,

Thank you very much for your thoughtful comments. Could you please tell me whether openfast is able to compute the inertia of the stationary blade about the pitch axis?

With kind regards

ietqlw commented 1 year ago

Dear @jjonkman,

Could you share me with the pitching inertia of the NREL 5-MW blade?Both the First Mass Moment of Inertia and Second Mass Moment of Inertia with respect to the pitch axis are helpful for my research.

With kind regards

jjonkman commented 1 year ago

I don't see this included in the NREL 5-MW baseline specifications report, but we had previously calculated the second mass moment of inertia about the pitch axis for a blade of the NREL 5-MW baseline wind turbine to be 28580 kg*m^2 (for an undeflected blade). The center of mass in the ElastoDyn model lies along the pitch axis because ElastoDyn does not support offsets of the sectional mass from the pitch axis. For the BeamDyn model, the center of mass is very close to the pitch axis as reported in the BeamDyn summary file.

Best regards,

ietqlw commented 1 year ago

Thank you very much for your kind and detailed reply.