Basic IPC

Hello

I am working on simulating a wind turbine model in a water tank. I want to change the blade pitch angles based on the azimuth of the blade:

BlPitch(i) = Csin(Azimuth(i)) or
BlPitch(i) = D
cos(Azimuth(i))

What I see is that I can write PitchCntrl(Azimuth, Amplitude, mode, NumBl, DT, ZTime) in UserSubs.f90 and recompile FAST.

Is there a way to change the blade pitch angles such that I do not have to recompile FAST?

If not, is it possible to input user defined variables (Amplitude, mode) into PitchCntrl() or do I have to set amplitude and mode, recompile, run FAST, set new amplitude, set new mode, recompile, run FAST etc.?

Kind regards
Joel

Dear Joel,

FAST does not have any simple built-in active pitch-control options, so, should use one of the available pitch-control interfaces to implement your own control logic. These include, user-defined from SUBROUTINE PitchCntrl() in UserSubs.f90 (PCMode = 3), user-defined from Simulink (PCMode = 4), or user-defined from a Bladed-style dynamic-link library (DLL) (PCMode = 5). The use of SUBROUTINE PitchCntrl() requires a recompile of FAST with each change to PitchCntrl(). The use of the Simulink interface or the Bladed-style DLL do not require a recompile of FAST; although the latter requires a recompile of the DLL with each change to the DLL source code. Normally one would avoid recompiling all of the time by developing an input file for control-related inputs that can be read in by the PitchCntrl() SUBROUTINE or the DLL.

Best regards,

Dear Jason,

Thank you for your answer. I decided to use Simulink, which seemed to be the easiest way to solve my problem.

Kind regards,
Joel