Basic IPC


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

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

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,