Imposing Motions on FAST Degrees of Freedom

Knowledgable Ones:

I am hoping someone can give me direction. I wish to impose or prescribe a FAST degree of freedom. I want to force one degree of freedom to follow a prescribed motion as a function of time.

Has anyone done this or know how I would go about it?

I want to match experimental turbine motions so as to better focus on aerodynamic comparisons. The aim is to validate a new aerodynamic model built into AeroDyn and thus interfaced to FAST. The test data of interest will be the UAE NASA-Ames free yaw and dynamic pitch sequences. Thus the degrees of freedom of interest are yaw and pitch.

Thank you.

Hugh Currin, PE
Mechanical Engineering
Oregon Institute of Technology

Dear Hugh,

If all you need is a simple time-dependent ramp of nacelle yaw or blade pitch, it is simple to prescribe these motions directly in FAST’s primary input file. For example, to keep the pitch angle of blade 1 constant at 5 degrees for the first 30 seconds, then have it ramp linearly to 20 degrees over the next 10 seconds, you could specify the following:

PCMode = 0 ! Disable user-defined pitch control
TPitManS(1) = 30.0 ! Time to start pitch ramp, sec
TPitManE(1) = 40.0 ! Time at which pitch ramp will end, sec (= 30.0 + 10.0)
BlPitch(1) = 5.0 ! Initial blade pitch before ramp, deg
BlPitchF(1) = 20.0 ! Final blade pitch after ramp, deg

A similar set of inputs is available for blades 2 and 3, as well as for nacelle yaw (YCmode, TYawManS, TYawManE, NacYaw, and NacYawF).

There is a difference between the nacelle yaw response and the blade pitch response. This is because FAST has a nacelle yaw DOF, but no blade pitch DOF. If the nacelle yaw DOF is enabled (YawDOF = True), then the nacelle yaw motions you prescribe become commands that pass through FAST’s built-in yaw actuator model (defined by inputs YawSpr and YawDamp). If the nacelle yaw DOF is disabled (YawDOF = False), then the nacelle yaw motions you prescribe act directly on the yaw DOF–this disables the yaw actuator and causes the prescribed yaw motions to work like the prescribed pitch motions. Please remember that disabling a DOF causes FAST to assume that the acceleration of that DOF is zero, even if you have a prescribed a time-dependent motion. Please see Figures 21 and 24 in the FAST User’s Guide that is posted on the website for more information on this topic.

If you want to prescribe nacelle yaw or blade pitch motions that are not simple time-dependent ramps, this requires that you prescribe the motions through a user-defined routine. For example, the blade pitch angle can be prescribed as a function of any output channel within routine PitchCntrl(), which is available in Source\UserSubs.f90 (set PCMode = 1 to use this feature). Similarly, the nacelle yaw angle (and rate) can be prescribed as a function of any output channel within routine UserYawCont(), which is also available in Source\UserSubs.f90 (set YCMode = 1 to use this feature). As before, if the yaw DOF is enabled, the motions prescribed by UserYawCont() pass through FAST’s built-in yaw actuator model; if the yaw DOF is disabled, the motions prescribed by UserYawCont() act directly on the yaw DOF (see Figure 24).

You can also prescribe the motion of other DOFs, but this can be a discussion for a later post.

Best regards,


Thank you for the information. I found the “UserSubs.f90” file and modifications look straight forward. I should have reviewed the manual in more detail before asking. I’m sure I’ll be back with additional questions when I get into the details though.

Are there similar options in YawDyn? This time I did glance at that manual but didn’t see a reference to this. I can be blind at times though.

Thanks again.

YawDyn is a very simple simulator and was never intended for the kinds of things you want to do. Sorry.



Simple is good. YawDyn has the necessary DOFs but it sounds like it doesn’t have the hooks to prescribed motions. So I’ll use FAST with disabled DOFs.

Thanks for the help.