Simulink linearization, keep torque and pitch constant


We using FAST v8.16 for a wind turbine design course, in which students design a wind turbine and its control system. We created some routines to determine the steady-state operating points for each wind speed, given the blade / rotor design. Subsequently, we use this information (pitch + torque values) to perform an open-loop simulation for linearization of the turbine in Simulink.

For pitch in this open-loop simulation, we set PCMode to 0 and initialize the initial pitch angles in ElastoDyn with BlPitch(X). This works fine, and the pitch signal stays constant for the entire simulation time. However, for torque control, we could not yet find a way to ensure that in all cases the torque signal remains constant. We tried two different set-ups for above-rated linearization:

  1. Setting VSContrl to 1, and GenModel to 1. For some turbine design, this sometimes results in a varying torque control signal during open-loop simulation, which makes it hard to reach a steady-state, such that a proper linearization can be performed.
  2. Setting VSContrl to 0, GenModel to 1, SIG_SlPc to 1e-6, SIG_SySp to , SIG_RtTq to , and SIG_PORt to 1.0. This method works better in most cases. However, for some situations, the torque signal quickly jumps from - to +, resulting in simulation errors.

I was wondering if there is any way to perform an open-loop simulation in FAST v8.16 (Simulink), and keep the torque signal constant, in a similar way as the pitch signal stays constant.

Dear Sebastiaan,

Yes, the process to achieve constant generator torque is described in the “Linearization” section of the old FAST User’s Guide: To summarize, to set constant torque in ServoDyn, it is easiest to set VSContrl = 1, VS_RtTq = the constant torque you want in Nm (e.g., 43093.55 Nm is the rated generator torque of the NREL 5-MW turbine) and VS_RtGnSp = VS_Rgn2K = VS_SlPc = some small number greater than zero, e.g., 0.001.

I hope that helps.

Best regards,

Dear Jason,

Thank you very much for your reply, we will implement this!