Tower strike with latest versions of OpenFAST and IEA 15MW

Hi forum,

I am have been working with OpenFAST and the IEA 15MW RWT on the UMaine semisubmersible platform since May 2021, and this week, when I tried to update my software and model to v3.1 of OpenFAST and v1.1 of the turbine, my initial test simulations ended almost immediately with tower strikes. I wanted to report this issue and hear any advice others may have.

For OpenFAST v3.1, I downloaded the Windows 64-bit executable from the OpenFAST GitHub releases page, and for the IEA 15MW model, I downloaded the source code .zip file from its respective releases page. In the UMaineSemi configuration, I edited the ServoDyn file to refer to the libdiscon.dll file for the Bladed interface dynamic library, rather than the default .so file. After this, I ran the IEA-15-240-RWT-UMaineSemi.fst file without any further changes using my newly downloaded OpenFAST v3.1 exe. This simulation is only 10 seconds long, simulation time, and it terminated normally. I then increased the simulation time to 240 seconds and ran it again. This time, it aborted after 46.675 seconds of simulation time, throwing several errors that culminated in a tower strike.

I repeated this test and copied the entire OpenFAST dialogue from the command line here.

PS C:\openFASTv3\IEA-15-240-RWT-1.1\OpenFAST\IEA-15-240-RWT-UMaineSemi-dtr> C:\openFASTv3\openfast_x64_v3.1.exe IEA-15-240-RWT-UMaineSemi.fst

**************************************************************************************************
OpenFAST

Copyright (C) 2022 National Renewable Energy Laboratory
Copyright (C) 2022 Envision Energy USA LTD

This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
See the "LICENSE" file distributed with this software for details.
**************************************************************************************************

OpenFAST-v3.1.0
Compile Info:
 - Compiler: Intel(R) Fortran Compiler 1900
 - Architecture: 64 bit
 - Precision: single
 - OpenMP: No
 - Date: Mar 08 2022
 - Time: 10:53:02
Execution Info:
 - Date: 03/30/2022
 - Time: 13:24:44-0400

OpenFAST input file heading:
    IEA 15 MW offshore reference model on UMaine VolturnUS-S semi-submersible floating platform

Running ElastoDyn.
Running AeroDyn.
Warning: Turning off Unsteady Aerodynamics because UA parameters are not included in airfoil
(airfoil has likely has constant polars). (node 1, blade 1)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 1)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 4, blade 1)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 5, blade 1)
Warning: Turning off Unsteady Aerodynamics because UA parameters are not included in airfoil
(airfoil has likely has constant polars). (node 1, blade 2)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 2)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 4, blade 2)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 5, blade 2)
Warning: Turning off Unsteady Aerodynamics because UA parameters are not included in airfoil
(airfoil has likely has constant polars). (node 1, blade 3)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 2, blade 3)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 4, blade 3)
Warning: Turning off Unsteady Aerodynamics because C_nalpha is 0. (node 5, blade 3)
Running InflowWind.
Running HydroDyn.
  WARNING:  The requested output channel is invalid: WavesF1xi
  WARNING:  The requested output channel is invalid: WavesF1zi
  WARNING:  The requested output channel is invalid: WavesM1yi
  WARNING:  The requested output channel is invalid: WavesF2xi
  WARNING:  The requested output channel is invalid: WavesF2zi
  WARNING:  The requested output channel is invalid: WavesM2yi
  WARNING:  The requested output channel is invalid: WavesF2xi
  WARNING:  The requested output channel is invalid: WavesF2yi
  WARNING:  The requested output channel is invalid: WavesF2zi
  WARNING:  The requested output channel is invalid: WavesM2xi
  WARNING:  The requested output channel is invalid: WavesM2yi
  WARNING:  The requested output channel is invalid: WavesM2zi
 Generating incident wave kinematics and current time history.
 Calculating second order difference frequency wave kinematics.
 Calculating second order sum frequency wave kinematics.
 Reading in WAMIT output with root name ".\HydroData/IEA-15-240-RWT-UMaineSemi".
 Computing radiation impulse response functions and wave diffraction forces.
 Calculating second order difference-frequency force using the full quadratic transfer function.
Running MoorDyn.
  MD_Init: Opening MoorDyn input file:  .\IEA-15-240-RWT-UMaineSemi_MoorDyn.dat
Warning: invalid output specifier FX.  Starting character must be C or L.
Warning: invalid output specifier FY.  Starting character must be C or L.
Warning: invalid output specifier FZ.  Starting character must be C or L.
   Creating mooring system.   3 fairleads, 3 anchors, 0 connects.
   Finalizing ICs using dynamic relaxation.
   t=60  FairTen 1: 2.43587E+06, 2.44120E+06, 2.43677E+06
   Fairlead tensions did not converge within TMaxIC=60 seconds.
Running ServoDyn.
Running ServoDyn Interface for Bladed Controllers (using Intel Visual Fortran for Windows, ).
Using legacy Bladed DLL interface.

FAST_InitializeAll:HydroDyn_Init:HydroDynInput_ProcessInitData: A requested output channel is
invalid

 Time: 0 of 240 seconds.

FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:RotCalcOutput:BEMT_CalcOutput(node 3,
blade 3):UA_CalcOutput:UA_BlendSteady:Temporarily turning off UA due to high angle of attack or
low relative velocity. This warning will not be repeated though the condition may persist.


FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:RotCalcOutput:BEMT_CalcOutput(node 50,
blade 2):UA_CalcOutput:Mach number exceeds 0.3. Theory is invalid. This warning will not be
repeated though the condition may persist.
Generator speed:    5.4 RPM, Pitch angle:   5.6 deg, Power: 11629.9 kW, Est. wind Speed:   9.0 m/s
Generator speed:    5.0 RPM, Pitch angle:   3.1 deg, Power: 10642.4 kW, Est. wind Speed:  10.1 m/s
Generator speed:    6.1 RPM, Pitch angle:   7.5 deg, Power: ******* kW, Est. wind Speed:  10.0 m/s
 Time: 30 of 240 seconds.  Estimated final completion at 13:25:33.

FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates:UpdatePhi(node 11, blade
1):BEMT_UnCoupledSolve:There is no valid value of phi for these operating conditions: Vx =
-0.24304, Vy = -3.6301, rlocal = 27.789, theta = 0.50017, geometric phi = -3.0747. This warning
will not be repeated though the condition may persist. (See GeomPhi output channel.)
Generator speed:    4.3 RPM, Pitch angle:  27.5 deg, Power: ******* kW, Est. wind Speed:  16.4 m/s
 Time: 40 of 240 seconds.  Estimated final completion at 13:25:37.
The BEM solution is being turned off due to low TSR.  (TSR = 1.9759). This warning will not be
repeated though the condition may persist. (See GeomPhi output channel.)

FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption1:ED_HD_InputOutputSolve:HydroDyn_CalcOutp
ut: Angles in GetSmllRotAngs() are larger than 0.4 radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.


FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption1:ED_HD_InputOutputSolve:HydroDyn_CalcOutp
ut: Angles in GetSmllRotAngs() are larger than 0.4 radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.


FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption1:ED_HD_InputOutputSolve:HydroDyn_CalcOutp
ut: Angles in GetSmllRotAngs() are larger than 0.4 radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.


FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption1:ED_HD_InputOutputSolve:HydroDyn_CalcOutp
ut: Angles in GetSmllRotAngs() are larger than 0.4 radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.


FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption1:ED_HD_InputOutputSolve:HydroDyn_CalcOutp
ut: Angles in GetSmllRotAngs() are larger than 0.4 radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.
ED_HD_InputOutputSolve:HydroDyn_CalcOutput: Angles in GetSmllRotAngs() are larger than 0.4
radians.
HydroDyn_CalcOutput:HDOut_MapOutputs: Angles in GetSmllRotAngs() are larger than 0.4 radians.


FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:SetDisturbedInflow:TwrInfl:getLocalTowerProps:Tow
er strike.

 OpenFAST encountered an error at simulation time 46.675 of 240 seconds.
 Simulation error level: FATAL ERROR

 Aborting OpenFAST.

This tower strike error surprised me because I have never encountered it when using the previous versions of OpenFAST and the 15MW model. The wind speed and wave height for this test are reasonable, 10 m/s and 1.1 m, respectively. I tried running this simulation several more times with different wind conditions and different Bladed interface controllers, but all ended in tower strikes after similar durations of simulation time.

Please let me know what your thoughts are on these errors, and I am happy to provide more information.

Thank you!
Doron

Hi Doron,

Can you confirm that you’re using this ROSCO libdiscon.dll? I see the status messages we use, but not the header that usually prints in the first timestep.

It may be worth trying a newer controller library.

Can you post timeseries from the simulation to help us debug this? You may need to change the OutFileFmt to 2 so it prints an output even if OpenFAST aborts mid-simulation. The 6 floating DOFs would be helpful, along with control signals, like GenSpeed, GenTq, BldPitch1, and Wind1VelX.

I can look into things on my end, but seeing the outputs of your simulations would be most helpful.

Best, Dan

Hi Doron,

I wanted to give you a quick update: I was able to reproduce your issue. It looks like a tower instability that we have seen before and I think we have a solution. We will follow up soon with more info.

Best, Dan

Hi Dan,
Thank you so much for your quick reply, and I am glad to hear you have a solution.

I can confirm that my simulation did use that .dll file.

The seven outputs you showed matched exactly what I got. Here are the platform motions over the same simulation:

Keep me posted!

Best,
Doron

Hi Doron,

A temporary workaround would be to disable TwFADOF2 and TwSSDOF2 in ElastoDyn while we fix the issue. That seems to work on my end.

Best, Dan

Thank you for bringing this to our attention. The issue should be resolved with this pull request and I have tagged the correction as v1.1.1.

Cheers,
Garrett

Dear,

Recently I am working the openfast with the IEA-15MW wind turbine, and the version of openfast is 3.1.0, the IEA-15MW wind turbine is 1.1.1. But when I run, some error occured and I can’t solve that by myself, hoping you could give me some suggestion. The message in the command as followings:

“Running ServoDyn Interface for Bladed Controllers (using Intel Visual Fortran for Windows, ).
Using legacy Bladed DLL interface.
At line 603 of file D:\bld\rosco_1615353392809\work\src\ReadSetParameters.f90 (unit = 89)
Fortran runtime error: Cannot open file ‘…/IEA-15-240-RWT/Cp_Ct_Cq.IEA15MW.txt’: No such file or directory”

I run the example both the Mnpl and Semi, they all occured the some problem.

Hoping you can give me some suggestion. Thanks in advance.

Jiaping.Cui

Dear @Jiaping.Cui,

Does the file Cp_Ct_Cq.IEA15MW.txt exist in the directory specified in your ROSCO input file?

Best regards,

Dear Jason,

Thank you for your reply quickly!
I am sure the file Cp_Ct_Cq.IEA15MW.txt exist in the directory, I mainly can’t understand the “D:\bld\rosco_1615353392809\work\src\ReadSetParameters.f90 (unit = 89)”, because all of the files needed are in the F disk, but not the D disk, why the error message will remind me that?

Best regards,
Jiaping.Cui

Hi Jiaping,

The ROSCO team just updated their files yesterday and I have merged it into the IEA Wind 15-MW repository at v1.1.2. Perhaps try a quick update and let us know if the problem persists.

Cheers,
Garrett

Dear Garrett,

Thanks for your hard work, the code can run normally now.

Thanks very much.

Best regards,
Jiaping.Cui

Dear all,

I want to realize the function of VISUALIZATION in the IEA-15MW stands on the Semi platform, after I set the corresponding parameters, the Paraview don’t show the floater. That phenomenon is normal? Or the setting of the parameters have some problem?
The parameters and the picture in Paraview are as followings:

Could you give me some suggestions?

Thank you very much.
Jiaping.Cui

Dear @Jiaping.Cui,

The inability of OpenFAST to visualize the floater and mooring system is a known issue. see the following issue on the OpenFAST github site: Visualizing Offshore Support Structures · Issue #776 · OpenFAST/openfast · GitHub.

Best regards,

Dear Jason,

I study the yaw about IEA-15MW with the Semi configuration, when I set a 15 initial deg, and I get the result as following. I want to know why the yaw angle will have a shock but not arrive the 0 deg directly?

Thank you in advance,
Jiaping.Cui

Dear @Jiaping.Cui,

If you’ve set the initial nacelle-yaw angle to NacYaw = 15deg in ElastoDyn while keeping the neutral yaw position in ServoDyn to YawNeut = 0deg, this will cause the nacelle-yaw angle to quickly snap back to 0deg and result in unrealistic loads and deflections. If you want to keep the nacelle at 15deg and keep the nacelle-yaw DOF enabled (YawDOF = TRUE), then set YawNeut = 15deg as well.

Best regards,

Dear Jason,

Thank you for your reply quickly. And I have another problem needed your help. If I want to use the OLAF to deal with the aerodynamics, But when I select the WakeMod=3 in the IEA-15-240-RWT_AeroDyn15.dat file, the file of IEA-15-240-RWT_OLAF.dat can’t be found at the folder. Where should I can get this .dat file?

Best regards,
Jiaping.Cui

Dear Cui,

Please check that the path and name of the OLAF file in your AeroDyn input file.

The file “IEA-15-240-RWT_OLAF.dat” is available on Github. (IEA-15-240-RWT/OpenFAST/IEA-15-240-RWT-OLAF at master · IEAWindTask37/IEA-15-240-RWT · GitHub)

Best regards,
Yao.Tian

Dear Yao,

Thank you for your information, and I found it.

Thanks again!

Hi @Garrett.Barter just checking if you manage to fix the tower strike problem as yet or should I disable the TwFADOF2 and TwSSDOF2 until a fix is done for it.

Thank you.

Regards,
AOAW

I believe that the tweaks and fixes to the controller and other files in v1.1.2 have resolved this issue, but let us know if you observe otherwise. If so, please double check that you are current with the latest version.