Unstable blade pitch control at above-rated wind speed

Hi all,

I am performing parametric analyses on mooring systems for the 15MW UMaine semi-sub, using a commercial FEA software. This software is coupled with FAST modules (Servodyn, Aerodyn InfloWind etc.) for calculations of aerodynamic loads and turbine control.

I am currently having issues with blade pitch control at a specific window of wind speeds (around 13 m/s), where the blade pitch seems to oscillate about the required value. This causes an oscillatory pitch motion of the platform, which I suspect in turn affects the wind speed estimate and causes some sort of feedback resonance, meaning the blade pitch never settles on the required value. I originally noticed this when running example cases from the Allen et al. paper, and have since removed all wave loading and wind turbulence in an attempt to isolate the problem. I have attached the resulting timetraces of blade pitch and FOWT platform pitch for different values of steady wind speed (0 degree heading) below. These behave as expected at lower (<12 m/s) and higher (>15 m/s) operational wind speeds, but exhibit the oscillations in the 13 - 15 m/s window.

I haven’t seen any other mention of this issue in these forums, so I assume it’s a problem on my end rather than a FAST issue. Does anyone have an idea of what could possibly resolve this issue? I have tried tuning various servo parameters, but with no luck. I most recently downloaded the latest ROSCO controller and all updated files from the github repository, but the problem persisted (the plots shown are using the latest controller and all default values for Servodyn and Aerodyn). So far, my workaround has been to disable the blade pitch control and manually input the correct blade pitch for each average wind speed - but this only really works for steady wind, and isn’t an ideal solution.

Many thanks in advance for your help!

Hi Oscar,

I don’t know all the details of your software coupling, but this looks like what happens when there is no floating feedback enabled in the pitch controller. ROSCO uses the nacelle acceleration to dampen platform motion.

We can confirm this by enabling the ROSCO debug file output with LoggingLevel set to 2 in the DISCON. Then, can you plot Fl_PitCom and FA_Acc from the file with a RO.dbg2 extension?

If that’s not it, you can try re-tuning the ROSCO DISCON by reducing the omega_pc value in the ROSCO tuning yaml until you have a slow, but steady, pitch response.

Best, Dan

Hi Dan, many thanks for the reply.

I had a look at the Fl_PitCom and FA_Acc outputs in the debug file, and indeed these were both 0 for the whole timetrace, regardless of whether floating feedback is set to 0,1 or 2 in the DISCON.in file.

I reported this to the lead engineer working on the software I’m using, and he has said this:

"It may be that the software coupling is incomplete, perhaps some information required by ROSCO is not being made available by our solver. Below is a list of variables which are supplied to OpenFAST by the structural solver. It is setting the translational displacement and rotational velocity of the hub. I think that should be sufficient for OpenFAST to compute the nacelle accelerations. But maybe it requires some other variables to be set also?


  • AD%u(1)%TowerMotion%TranslationDisp
  • AD%u(1)%TowerMotion%Orientation
  • AD%u(1)%TowerMotion%TranslationVel


  • AD%u(1)%HubMotion%TranslationDisp
  • AD%u(1)%HubMotion%Orientation
  • AD%u(1)%HubMotion%RotationVel


  • DvrData%Cases(iCase)%RotSpeed


  • AD%u(1)%BladeRootMotion(k)%Orientation
  • AD%u(1)%BladeMotion(k)%Orientation
  • AD%u(1)%BladeMotion(k)%TranslationDisp
  • AD%u(1)%BladeMotion(k)%TranslationVel
  • AD%u(1)%BladeMotion(k)%RotationVel"


Let me know what you think. Thanks!