PI controller Gain scheduling for 5MW Reference Wind Turbine via BeamDyn

Hello all,

I’m trying to first: tune a PI collective pitch controller for the 5MW reference Wind Turbine using beamdyn module to regulate rotor speed in the 3 Region, following “Advanced Control Design for Wind Turbines; Part I” Control Design/42437.pdf".
The idea is to use scalar values of A,B to calculate the Kp,Ki gains through Eq(3.10).
The procedure ran smoothly, enabling only 1 DOF: GenSpeed during linearization with Elastodyn.
yet when repeating the process using Beamdyn, with the same settings except for the linearization tolerances and step size in the primary input file )in the MBC transformation generated 290*290 AvgA states (again: only enabling generator speed DOF) so I picked the scalar value of:
A to be Avg(146,146) which corresponds to 'ED First time derivative of Variable speed generator DOF),
B as Avg(146,9) which is the collective pitch angle input corresponding to generator speed state.
The obtained Kp, Ki gains were unfortunately not optimum and gave poor responses.

I also noticed while trying to do gain scheduling (also following the 42437.pdf Reference) by linearizing with various wind speeds to obtain the double value of B that the change of the chosen scalar B change only slightly with different wind speeds (B at a wind speed of 18 m/s = -65.3/ B = -64.7 at wind speed 30 m/s ).

Any help is appreciated. Thank you so much for your attention and participation.

Dear @Abdelrhman.Hamed,

When BeamDyn is enabled, there is no way to make the blades rigid, so, all of the BeamDyn DOFs show up as states in the linearized model derived from OpenFAST. If you want to model a rigid rotor, I would use ElastoDyn to model the blades (with the blade DOFs disabled in ElastoDyn) instead of enabling BeamDyn.

Best regards,

Dear Professor Jonkman,

Thank you for your swift answer.
I’m writing my Bachelor thesis about a comparative Analysis of Blade modeling using Beamdyn and Elastodyn so I am repeating the same steps once with Beamdyn and once with Elastodyn.

I have enabled the 1st flap-wise blade mode. yet it did not solve the mentioned issue regarding tuning the PI controller and gain scheduling its gains, is the procedure mentioned in “Advanced Control Design for Wind Turbines; Part I” Control Design/42437.pdf” possible using Beamdyn?
what do you think about the cause of the issue/ the mistake in my approach ?.

Dear @Abdelrhman.Hamed,

I’m not really understanding what you want to do. The paper you reference describes the approach for deriving the baseline controller gains with a rigid rotor model. Do you want to expand this approach to account for rotor flexibility?

Best regards,

Exactly. I’m trying to tune the baseline PI controller to achieve good response running modeling the blades using Beamdyn.
Then to schedule the obtained Kp, Ki gains to expand the operating range of that PI controller over a wide range of wind speed (step and stochastic wind inflow conditions).

Basically, the same approach as the baseline pitch controller in the paper but with the flexible blades modeled using Beamdyn. ( I don’t believe anymore that the procedure detailed in the paper is valid for flexible blades modeled using Beamdyn)
Any hints on the ideal way to achieve that ?

Best regards,

Dear @Abdelrhman.Hamed,

The baseline controller you are referencing is designed for a rigid rotor, but the controller is likely quite applicable for a flexible rotor, whether modeled in ElastoDyn or BeamDyn. Typically blade flexibility would not need to be included in the linear model used by the controller unless an objective of the controller is minimize blade loading.

For more advanced controls implementation, I would recommend that you look at ROSCO: GitHub - NREL/ROSCO: A Reference Open Source Controller for Wind Turbines.

Best regards,

1 Like