Linearisation Trim

Hi NREL Peeps

While playing with the Linearisation Trim for the Gen DOF, I noticed that the solution would go unstable. Particularly for situations below CP Max. This was frustrating as I wanted to do a CP Max v’s Tip Speed Ratio curve.

After looking at the controller for setting the torque, I would describe it as having only Integral gain and I thought it would benefit from some Proportional. I had a go:

... KIGenTrq = 1 *AvgNrmTpRd**3/GBRatio ! Gain (in N-m) for adjusting the electrical generator torque from the relative rotor speed error (used with TrimCase = 2). The rated rotor torque of a typical wind turbine in N-m is roughly 15*Radius^3 where the radius is in meters. The 1.5 is 1/10th of the factor of 15. The 1/GBRatio is used to cast the torque onto the HSS (i.e., generator) side of the gearbox. (Nm) IOutGenTrq = 6000 ! starting point for the I term. KPGenTrq = 15000 ! Gain for the proportional term ...

CASE ( 2 ) ! Electrical generator torque

     IOutGenTrq = IOutGenTrq + KIGenTrq * SpeedErr
     GenTrq  = KPGenTrq*SpeedErr + IOutGenTrq


After some fiddling with this controller, I found that things would converge for situations below CP max. Sometimes it was slow, but it was pretty much always stable. It works for my machine (6MW VSPR), and I suspect that you’d like something that works for many machines and some cunning selection of gains would probably achieve that for you. Similar to the selection of the I gain that is already there, I thought I’d let you do that though.


Dear Alec,

Thanks for the suggested improvement to TrimCase = 2 option in the FAST linearization process. We don’t have any immediate plans to improve the trim solution of FAST, but we’ll look at your suggestion when we get the chance.

For those that are following this post, here is some background information on the basic problem:

The “Linearization” chapter of the “FAST User’s Guide” warns of a possible instability while trimming with generator torque (i.e., TrimCase = 2). Specifically, I wrote “the solution may become unstable if your desired rotor speed is below the rotor speed that results in the maximum power coefficient at a given wind speed and rotor-collective blade-pitch angle. In this case, the only way to obtain a successful trim solution is to increase your desired rotor speed condition.” The instability can be understood by examining the curve of aerodynamic torque coefficient (Cq) versus tip-speed ratio (TSR) for a given blade-pitch angle. Cq usually reaches a maximum at a TSR slightly below the TSR for optimal power coefficient (Cp) for a given blade-pitch angle. If a given TSR is below the TSR for maximum Cq, then increased TSR leads to increased aerodynamic torque, which further accelerates the rotor, hence local instability. If a given TSR is above the TSR for maximum Cq, the reverse is true and the system is stable. The trim solver in FAST uses simple control logic in TrimCase = 2 to trim generator torque to reach the desired rotor speed. The generator torque is computed as a positive gain times the integral of the speed error. This trim solution is only stable if the target TSR is above the TSR for maximum Cq. Plotting Cp and Cq = Cp/TSR versus TSR for a given blade-pitch angle should help determine the TSRs that bring about maximum Cq and maximum Cp, and hence, where TrimCase = 2 is stable.

Best regards,

Thanks for that Jason

I was using the linearisation to give me steady state conditions to allow me to plot the above curve. Do you have a different technique to create these plots, because until I made my modification, I could only make half of the plot.

Dear Alec,

You can find a steady-state solution (CalcStdy = True) without trim by disabling the generator DOF (GenDOF = False). This will allow you to linearize a model where the TrimCase = 2 option would be unstable.

Best regards,

Hi :
I am trying to linearize FAST model in trim case 3, with blade Flap DOF trying to control bending moment using MPC control but the linearized model which i get is unstable. The eigen values are in the range:

  -1.5042 +     15.163i
  -1.5042 -     15.163i
  -1.5226 +     15.162i
  -1.5226 -     15.162i
  -1.3561 +     15.171i
  -1.3561 -     15.171i
    -0.36 +     40.827i
    -0.36 -     40.827i
 -0.35521 +     40.827i
 -0.35521 -     40.827i
 -0.36045 +     40.829i
 -0.36045 -     40.829i

what could be done to bring eigen value to a stable operating point . I am considering D matrix as zero for neglecting feedthrough.

hi bonnie sir;
i have beeen linearizing FAST7 with Gen Dof and blade flapwise mode 1 DOF,with output as tip flapwise moment of 3 blades and individual blade pitch and torque as input and trim case 3. But when i linearze with 6 azimuthal step and average using MBC the eigen value are large such that it becmoes ustable to control using any control. Is there any parameter to alter to bring it stable .The below are the unstable eigen values what i get:
-1.5042 + 15.163i
-1.5042 - 15.163i
-1.5226 + 15.162i
-1.5226 - 15.162i
-1.3561 + 15.171i
-1.3561 - 15.171i
-0.36 + 40.827i
-0.36 - 40.827i
-0.35521 + 40.827i
-0.35521 - 40.827i
-0.36045 + 40.829i
-0.36045 - 40.829i
what could be done to bring eigen value to a stable operating point . I am considering D matrix as zero for neglecting feedthrough.

Dear Srinivasa,

I’m not sure I understand your question. You say that you linearize FAST v7 with 4 DOFs, but you have 6 pairs of eigenvalues, which implies 6 DOFs. Next, you say that you have unstable eigenvalues, but all of your eigenvalues have negative real parts, which are stable. Finally, your post talks about inputs and outputs, but MBC3 only computes eigenvalues on the state matrix A, independent of the inputs and outputs.

Best regards,