openfast icon indicating copy to clipboard operation
openfast copied to clipboard

Pitch Control Simulink

Open vicemora opened this issue 2 years ago • 3 comments

Hello, I'm using the SFunction block to integrate OpenFAST and Simulink. I have a question: Should the pitch angle command I send to the SFunction be the same as the ServoDyn Output (BlPitchCX)? I mean, I'm sending, for example, 18.00 deg in t1 and 18.01 in t2 to the SFunction block. But the servodyn output is: 18.00 in t1, 18.03 in t2, 18.00 in t3, then 18.01 in t4. It is pretty weird. I have some hypotheses. I need to know first if this behavior is not correct in order to get a solution. Should the pitch angle command I send to the SFunction and the ServoDyn Output (BlPitchCX) at each t have the same value?

vicemora avatar Dec 24 '23 05:12 vicemora

Dear @vicemora,

A similar question was asked and answered on our forum: https://forums.nrel.gov/t/s-function-input-output-signal-mismatch/1502.

Best regards,

jjonkman avatar Dec 26 '23 14:12 jjonkman

Ok, thank you. I have reviewed it, and now I have another doubt: image I'm sending as a pitch command the same pitch angle for 1 second, then I send another pitch angle, and so on.

The actual pitch angle of the turbine is as follows: image Ok, this overshoot happens because of what is stated in the answer in the forum.  My WT model has a max pitch rate of 7 deg/s. I'm sending the pitch command, taking this into account. But is it expected that the WT blade pitch angle will change too fast? I mean: If the setpoint of the pitch angle command is zero, then I send the command of 7 degrees. Is it expected that the WT's blade pitch angle will be set to 7° in the next time step? There is no transient emulating the physical pitch actuation.

vicemora avatar Dec 27 '23 05:12 vicemora

Dear @vicemora,

I'm not sure I fully understand your question. I'll just clarify that:

  1. OpenFAST does not currently have any internal pitch actuator dynamics, so, the commanded pitch instantaneously become the actual pitch angle. If you want to consider pitch actuator dynamics, this should be coded within your user-specified pitch controller.
  2. When commanding pitch from Simulink, because of the internal extrapolation of the pitch command mentioned on the forum, we recommend that the pitch command from Simulink be a smooth function rather than pitch steps.
  3. I would not expect a pitch controller to change the pitch at the maximum pitch rate for every pitch angle change.

Best regards,

jjonkman avatar Dec 28 '23 15:12 jjonkman