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.
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?
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
- 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.
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 = GenTrqGenSpeedGenEff
where GenSpeed = RotSpeed*GearboxRatio for a rigid drivetrain.
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.
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.
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.
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.
Ok, I think I need to see directly how the Simulink generator block is built.
Thank you, have a good day.
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?
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.
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.
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.
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.
Yes, that is correct. The Cp will also go negative when you feather the blades a lot.
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?
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.
Ok I get it, thank you for your time.
The information you gave me are very helpful.