Hello,

I am currently reproducing the control logic of Servodyn.f90 into IEC 61131-3 programming languages for programmable logic controllers.

I am a bit lost about my results and I would like to have an external opinion.

As attached, you will find my results for two configurations:

Below rated operations, the torque controller works well and the rotor power match with the expected rotor power given by the power curve.

Above rated operations, we can observed a high deviation of the rotor power around the rated power.

I don’t really know what to think about that, maybe the pitch regulation is to slow, maybe the wind speed is too turbulent or maybe the problem is due to the rotor speed dynamic…

For information, I used a cycle time DT = 30ms.

Feel free to tell me if you need more information.

Thank you in advance.

Etienne JARGOT

Dear Etienne,

Overall, the mean values of the speed, torque, pitch, and power and trends are consistent with those of the NREL 5-MW turbine.

Regarding the large excursions in rotor power, can I ask how you are calculating rotor power? Does you model have the correct rotor/generator inertia, which will impact how quickly the rotor can accelerate/decelerate as a result of torque variations? Have you tried using the same turbulent wind you are using in this model within the FAST model of the NREL 5-MW turbine to see how FAST with the original controller implementation responds to this wind?

Best regards,

Dear Jason,

Thank you for your answer.

Regarding the large excursions in rotor power, can I ask how you are calculating rotor power?

RotPwr = 1/2 * AirDensity* PI * Rot_Radius^2 * Cp(TSR, Pitch) * WindSpeed^3

Considering the limits of the IEC 61131-3 language, the Cp is an approximation made with some coefficients I fitted on the FAST Cp(TSR, Pitch) table.

Does you model have the correct rotor/generator inertia, which will impact how quickly the rotor can accelerate/decelerate as a result of torque variations?

I based the rotor acceleration on the inertia you gave on previous topics.

It appears like that in my code:

RotSpeed = RotSpeed + (RotTrq - GenTrq * GearboxRatio) / J_Drive * DT

with :

- RotSpeed in rad/s
- GearboxRatio = 97
- J_Drive = J_Gen * GearboxRatio^2 + J_Rot = 534.116 * 97^2 + 38,759,228 = 43,784,725.44 kg.m^2
- GenTrq based on the generator torque controller in N.m
- RotTrq in N.m obtained by RotPwr / RotSpeed
- DT the cycle time

Have you tried using the same turbulent wind you are using in this model within the FAST model of the NREL 5-MW turbine to see how FAST with the original controller implementation responds to this wind?

No I didn’t try to compare directly with FAST results, indeed I should.

Dear Etienne,

OK, thanks for your clarifications.

Your definition of RotPwr equals the definition of the aerodynamic power. The actual electrical power will likely be smoother because the generator torque is calculated from a low-pass filtered generator speed i.e.

ElecPwr = GenTrq*GenSpeed*GenEff

where GenSpeed = RotSpeed*GearboxRatio for a rigid drivetrain.

Best regards,

Dear Jason,

Thank you very much.

You’re right, the electrical power is smoother than the aerodynamic power.

I don’t know if I need to create a new topic about that but I would like to know also how can I model the behavior of the wind turbine below the cut-in speed and above the cut-out speed?

Especially for the following transitions:

- Above cut-in > Below cut-in
- Below cut-in > Above cut-in
- Below cut-out > Above cut-out
- Above cut-out > Below cut-out

I guess I have to feather the blade to a blade pitch = 90°?

I don’t really know how to model the rotor deceleration/acceleration in this case.

Thank you for your time.

Best regards,

Etienne JARGOT

Dear Etienne,

I’m probably not the best person to answer your question because I have not implemented any normal wind turbine start-up or shut-down logic myself. Hopefully some else on this forum can comment or perhaps you can find documentation of normal wind turbine start-up and shut-down logic in the literature.

Best regards,

Dear Jason,

I’ve already looked in the literature but unfortunately I didn’t find a lot of information about that topic.

I guess I should take a look again.

Would you have any advice about how to implement a PMSG or DFIG model combined with the NREL 5W wind turbine model ?

I looked briefly the NREL document #59195 - “Simulation for Wind Turbine Generators—With FAST and MATLAB-Simulink Modules” and other topics on the forum but I am not sure that gives me the level of details I need to build the generator model in basic programming language.

Thanks again for your help.

Best regards,

Etienne JARGOT

Dear Etienne,

The reference you identify is the one I would have forwarded to you. I can’t think of other references with more detail published by NREL.

Best regards,

Ok, I think I need to see directly how the Simulink generator block is built.

Thank you, have a good day.

Etienne JARGOT

Sorry Jason but just to be sure, again about the start-up/shut-down region, you don’t know the behavior of the rotor deceleration/acceleration with the wind speed and the pitch angle in these regions?

Dear Etianne,

A typically utility-scale turbine would start up by pitching the blades to the run position without motoring. A normal shutdown would involve pitching-to-feather without shaft braking. But I’m not familiar with the timing of the events or pitch rates.

Best regards,

Dear Jason,

I understand you are not in expert on that topic, but I am not sure you understood exactly what I am trying to do.

I agree about the pitch rates and the timing, I will make some assumptions about that.

But I don’t know how can I model a coherent rotor deceleration when both aerodynamic and generator torque equals to zero for example.

Because during normal conditions (between cut-in and cut-out), the rotor dynamic is driven by the difference between the aerodynamic torque and the generator torque, so no problem.

I guess it will depend on some parameters such as the air friction and it should seems like an exponential decrease.

Best regards,

Etienne

Dear Etienne,

I’m not really sure I understand your question. I agree that the generator/rotor acceleration/deceleration is driven by the difference in aerodynamic and generator torques. The aerodynamic torque will be nonzero during the transient pitch event. If you can prescribe the generator torque and pitch ramps, FAST can be used to calculate the resulting aerodynamic torque and rotor acceleration/deceleration.

Best regards,

Dear Jason,

I guess I misunderstood the behavior of a wind turbine.

Is it right when the wind speed drops under the cut in speed and the rotor speed is still high, the TSR is quite high so the Cp and the aerodynamic power becomes negative?

Thank you for your explanations.

Best regards,

Etienne

Dear Etienne,

Yes, that is correct. The Cp will also go negative when you feather the blades a lot.

Best regards,

Dear Jason,

Ok thank you, now I understand better.

And when you said “If you can prescribe the generator torque and pitch ramps…”, you mean that the generator torque will not be zero below cut-in generator speed such as the control logic of Servodyn.f90 or zero above cut-out wind speed?

Best regards,

Etienne

Dear Etienne,

I would expect that the generator torque would be zero below cut-in or above cut-out wind speeds. But there is likely some ramp-down of torque when transitioning from operational to idling modes.

Best regards,

Ok I get it, thank you for your time.

The information you gave me are very helpful.

Best regards,

Etienne