Linearization OpenFAST Region 2

Dear @Jason.Jonkman,

I’m trying to linearize the NREL 5MW onshore wind turbine in Region 2 for control purpose using OpenFast v3.0.0. I want to verify if everything is well done before going to the control part.

For the linearization, I used the following input parameters:

  • Linearize = True, CalcSteady = True, YCMode = 0 and PCMode = 0.
  • TrimCase = 2 as suggested in Fast User’s Guide for Region 2.
  • TrimTol = 0.005 and TrimGain = 1000.
  • VSContrl = 0 as you have suggested in the following post Learizing Baseline 5MW Wind Turbine with FAST - #28 by Jason.Jonkman .
  • GenTiStr = True and TimGenOn > TMax as you have suggested in this post Linearization OpenFAST Region 2 - #2 by Jason.Jonkman .
  • WindType = 1 and HWindSpeed = {4, 6, 9} m/s
  • RotSpeed: You mentioned in the Fast User’s Guide that “During Region 2 trim (TrimCase = 2), the solution computation may also 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“. Therefore, I deduced the rotor speed Omega_Opt (rad/s) that corresponds to the maximum power coefficient (by considering a tip-speed ratio TSR_Opt = 7.55, a rotor radiusR=63 mand the chosen mean wind speedv = 4, 6 or 9 m/s) from the following formula TSR_Opt = Omega_Opt * R / v. Afterwards, I have chosen a desired rotor speed RotSpeed (rpm) = (Omega_Opt * 60/(2 Pi)) + 0.5.

Using the above parameters, I obtained the results in the following folder Linearization - Google Drive . I included for each chosen wind speed, the OpenFast input and output files, with plots of the outputs: RotSpeed, Torque and Power of the linearized model.

Next, in order to validate the linearized model, I used Simulink (with the following parameters for the NL model: PCMode = 4, VSContrl = 4, GenTiStr = True, TimGenOn = 0,GenTiStp = True, TimGenOf = TMax + 50) to compare the OpenLoop Linear vs NL models (Simulink Figures below) response, using a perturbation on the generator torque that begins after 20 s with different amplitudes as follows: dTg = {0, 50, 100, 150, 200, 1000} N.mand wind disturbance dv = 0. The results corresponding to each wind speed are included in the same google drive in the folder named “Lin_vs_NL“.

I have the following questions:

  1. Can you please confirm the input parameters being used?
  2. Is the method used to compute RotSpeedcorrect ? If not, how to choose the value of RotSpeed in Region 2 ?
  3. What is a good disturbance amplitude dTg for the generator torque that can be used to compare the Linear vs NL model responses for validation of the linearized model? And when should it be applied (I used 20s)? Using a value dTg = 0returns approximately the same outputs, dTg = {50, 100, 150, 200}returns results with a drop in the outputs of the linear model but it seems to be still acceptable, but using dTg = 1000 Nmleads a large drop in the outputs of the linear model.
  4. Is the drop observed in the linear model outputs, especially for the rotor speed, normal?

Thank you in advance.

Regards.