OC3 spar blade pitch at rated wind

Hi all,

I am trying to run OpenFAST to verify my dynamic model. As an initial test, I am trying to run a case of the OC3 Hywind spar in still water, with steady wind at 11.4m/s (rated). Because my model does not include any controller yet, I would like to fix the rotor speed and blade pitch angle at some constant value. Based on the plot given Figure 9-1 of the rotor specification report: Definition of a 5-MW Reference Wind Turbine for Offshore System Development (Technical Report) | OSTI.GOV, I set the rotor speed at 12.1 rpm, and the blade pitch at 0 deg.

However, this resulted in OpenFAST crashing, with the high mach number error.

I also tried running the simulation with the controller ON, and noted the blade pitch angle was converged at 6.3deg. Could you please help me understand the reason for the difference between the plot and the actual result? In my case, should I set this angle to 0 or 6.3deg?

I’d be grateful for any hints.


Dear @Kasia.Patryniak,

How did you set the fixed speed and pitch? Did you disable the generator degree of freedom in ElastoDyn (GenDOF = False)?

Regarding the difference between your result and Figure 9-1, this could be caused by multiple effects, such as differences in the software from when Figure 9-1 was made, differences in structural DOFs enabled (in your case, presumably you have the platform pitch DOF enabled), etc. Assuming your model is set up correctly, and the 6.3deg blade pitch is appropriate for the condition you are simulating, I agree that using that value with the controller disabled sounds appropriate.

Best regards,

Dear @Jason.Jonkman,

Thanks a lot for your reply.

I disabled the control by setting CompServo = 0 in the .fst file, and setting the initial values for the rotor speed (RotSpeed) and the blade pitch (BlPitch) to 12.1 and 6.3 in ElastoDyn input file:

As for the degrees of freedom, yes, I have the platform pitch enabled, together with the other 5 rigid motion DOFs, and the generator DOF. Other modes are disabled. I want to keep the flexible modes (blades and tower deflections) disabled as the model I am verifying does not model these. Regardless, enabling the fore-aft and side-to-side blades and tower modes still results in the simulation crashing (if BlPitch=0).

That would mean that at the rated wind speed, beginning of the control region 3, even in the absence of the waves, the blades are already pitched. Is there anything that seems to be wrong with the settings I outlined above?

Kind regards

Dear @Kasia.Patryniak,

You must disable the generator DOF (GenDOF = False) to prescribe a fixed generator speed.

Otherwise your settings seem reasonable, although I’m not sure why the blade-pitch angle is different from zero for the conditions you are simulating. What aerodynamic settings in AeroDyn have you used?

Best regards,

Dear @Jason.Jonkman,

Thanks. I now set GenDOF = False, but the results still seem to be off. I have steady wind 11.4m/s, BlPitch=0, RotSpeed=12.1, as per the plot in Figure 9-1. The simulation does not crash. However, I am getting large thrust RotRhrust of about 1100 kN, and based on the plots it should be around 800 kN, so something seems to be still off.

I kept the AeroDyn input unchanged from the test case file from the GitHub repository, a copy below:

------- AERODYN v15 for OpenFAST INPUT FILE -----------------------------------------------
NREL 5.0 MW offshore baseline aerodynamic input properties.
======  General Options  ============================================================================
False         Echo               - Echo the input to "<rootname>.AD.ech"?  (flag)
"default"     DTAero             - Time interval for aerodynamic calculations {or "default"} (s)
          0   WakeMod            - Type of wake/induction model (switch) {0=none, 1=BEMT, 2=DBEMT, 3=OLAF} [WakeMod cannot be 2 or 3 when linearizing]
          2   AFAeroMod          - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model} [AFAeroMod must be 1 when linearizing]
          1   TwrPotent          - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction}
          0   TwrShadow          - Calculate tower influence on wind based on downstream tower shadow (switch) {0=none, 1=Powles model, 2=Eames model}
True          TwrAero            - Calculate tower aerodynamic loads? (flag)
False         FrozenWake         - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing]
False         CavitCheck         - Perform cavitation check? (flag) [AFAeroMod must be 1 when CavitCheck=true]
False         CompAA             - Flag to compute AeroAcoustics calculation [used only when WakeMod = 1 or 2]
"unused"      AA_InputFile       - AeroAcoustics input file [used only when CompAA=true]
======  Environmental Conditions  ===================================================================
"default"     AirDens            - Air density (kg/m^3)
"default"     KinVisc            - Kinematic viscosity of working fluid (m^2/s)
"default"     SpdSound           - Speed of sound in working fluid (m/s)
"default"     Patm               - Atmospheric pressure (Pa) [used only when CavitCheck=True]
"default"     Pvap               - Vapour pressure of working fluid (Pa) [used only when CavitCheck=True]
======  Blade-Element/Momentum Theory Options  ====================================================== [unused when WakeMod=0 or 3]
          2   SkewMod            - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [unused when WakeMod=0 or 3]
"default"     SkewModFactor      - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when SkewMod=2; unused when WakeMod=0 or 3]
True          TipLoss            - Use the Prandtl tip-loss model? (flag) [unused when WakeMod=0 or 3]
True          HubLoss            - Use the Prandtl hub-loss model? (flag) [unused when WakeMod=0 or 3]
True          TanInd             - Include tangential induction in BEMT calculations? (flag) [unused when WakeMod=0 or 3]
False         AIDrag             - Include the drag term in the axial-induction calculation? (flag) [unused when WakeMod=0 or 3]
False         TIDrag             - Include the drag term in the tangential-induction calculation? (flag) [unused when WakeMod=0,3 or TanInd=FALSE]
"Default"     IndToler           - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when WakeMod=0 or 3]
        100   MaxIter            - Maximum number of iteration steps (-) [unused when WakeMod=0]
======  Dynamic Blade-Element/Momentum Theory Options  ============================================== [used only when WakeMod=2]
          2   DBEMT_Mod          - Type of dynamic BEMT (DBEMT) model {1=constant tau1, 2=time-dependent tau1} (-) [used only when WakeMod=2]
          4   tau1_const         - Time constant for DBEMT (s) [used only when WakeMod=2 and DBEMT_Mod=1]

Dear @Kasia.Patryniak,

It appears that you’ve disabled the calculation of wake/induction, which will unrealistically increase the rotor power and thrust for an operating rotor. I would suggest setting WakeMod = 1 or 2 for simulations of an operating rotor. WakeMod = 0 is valid for parked/idling conditions.

Best regards,

Dear @Jason.Jonkman,

Thanks a lot, indeed, I had WakeMod = 0, which caused the problem. After setting it to 1 all is working perfectly fine. Thank you for your help!