Thank you @Jason.Jonkman
Hi @Jason.Jonkman ,
I am able to get this idling turbine running with Elastodyn, but when I try with BeamDyn (files downloaded from ( Github repo) with the same settings as Elastodyn i.e
- GenDOF - True
- Set blade initial OoPDefl and IPDefl to mean values (tried with zero as well)
- Set BlPitch (1-3) to 90 deg in Elastodyn
- Initial Rotor speed = 0
I am getting convergence errors
FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates:B2::BD_GA2:BD_DynamicSolutionGA2:Solution does
not converge after the maximum number of iterations
OpenFAST encountered an error at simulation time 48.239 of 800 seconds.
Simulation error level: FATAL ERROR
This is with a time step of 0.001.
BeamDyn Blade files downloaded from the repo have another issue i.e
FAST_InitializeAll:BD_Init:BD_ValidateInputData:Damping values in blade file are not of similar
order of magnitude. BeamDyn may not converge!
The damping values are
mu1 mu2 mu3 mu4 mu5 mu6
(-) (-) (-) (-) (-) (-)
0.004048 0.003153 0.000140 0.003153 0.004048 0.000140
This is probably because
! Check that the values for the damping are similar.
! According to Qi, the damping values mu1 .. mu6 should be of the same order of magnitude. If they aren't, BeamDyn will likely fail badly.
! Will assume for moment that they must be within a factor of 5 of the first value given.
!FIXME: Check a valid range sometime.
IF ( (maxval(abs(InputFileData%InpBl%beta)) / minval(abs(InputFileData%InpBl%beta)) > 10.0_R8Ki) .AND. InputFileData%InpBl%damp_flag == 1 ) THEN
call SetErrStat( ErrID_Warn,'Damping values in blade file are not of similar order of magnitude. BeamDyn may not converge!', ErrStat, ErrMsg, RoutineName )
ENDIF
So, I have turned off damping for now in BeamDyn blade.
Elastodyn file
------- ELASTODYN v1.03.* INPUT FILE -------------------------------------------
Generated with AeroElasticSE FAST driver
---------------------- SIMULATION CONTROL --------------------------------------
False Echo - Echo input data to "<RootName>.ech" (flag)
3 Method - Integration method: {1: RK4, 2: AB4, or 3: ABM4} (-)
Default DT - Integration time step (s)
---------------------- DEGREES OF FREEDOM --------------------------------------
True FlapDOF1 - First flapwise blade mode DOF (flag)
True FlapDOF2 - Second flapwise blade mode DOF (flag)
True EdgeDOF - First edgewise blade mode DOF (flag)
False TeetDOF - Rotor-teeter DOF (flag) [unused for 3 blades]
False DrTrDOF - Drivetrain rotational-flexibility DOF (flag)
True GenDOF - Generator DOF (flag)
False YawDOF - Yaw DOF (flag)
True TwFADOF1 - First fore-aft tower bending-mode DOF (flag)
True TwFADOF2 - Second fore-aft tower bending-mode DOF (flag)
True TwSSDOF1 - First side-to-side tower bending-mode DOF (flag)
True TwSSDOF2 - Second side-to-side tower bending-mode DOF (flag)
False PtfmSgDOF - Platform horizontal surge translation DOF (flag)
False PtfmSwDOF - Platform horizontal sway translation DOF (flag)
False PtfmHvDOF - Platform vertical heave translation DOF (flag)
False PtfmRDOF - Platform roll tilt rotation DOF (flag)
False PtfmPDOF - Platform pitch tilt rotation DOF (flag)
False PtfmYDOF - Platform yaw rotation DOF (flag)
---------------------- INITIAL CONDITIONS --------------------------------------
0.2 OoPDefl - Initial out-of-plane blade-tip displacement (meters)
-3.0 IPDefl - Initial in-plane blade-tip deflection (meters)
90.0 BlPitch(1) - Blade 1 initial pitch (degrees)
90.0 BlPitch(2) - Blade 2 initial pitch (degrees)
90.0 BlPitch(3) - Blade 3 initial pitch (degrees) [unused for 2 blades]
0.0 TeetDefl - Initial or fixed teeter angle (degrees) [unused for 3 blades]
0.0 Azimuth - Initial azimuth angle for blade 1 (degrees)
0.0 RotSpeed - Initial or fixed rotor speed (rpm)
0.0 NacYaw - Initial or fixed nacelle-yaw angle (degrees)
0.0 TTDspFA - Initial fore-aft tower-top displacement (meters)
0.0 TTDspSS - Initial side-to-side tower-top displacement (meters)
0.0 PtfmSurge - Initial or fixed horizontal surge translational displacement of platform (meters)
0.0 PtfmSway - Initial or fixed horizontal sway translational displacement of platform (meters)
0.0 PtfmHeave - Initial or fixed vertical heave translational displacement of platform (meters)
0.0 PtfmRoll - Initial or fixed roll tilt rotational displacement of platform (degrees)
0.0 PtfmPitch - Initial or fixed pitch tilt rotational displacement of platform (degrees)
0.0 PtfmYaw - Initial or fixed yaw rotational displacement of platform (degrees)
ServoDyn file is
------- SERVODYN v1.05.* INPUT FILE --------------------------------------------
Generated with AeroElasticSE FAST driver
---------------------- SIMULATION CONTROL --------------------------------------
False Echo - Echo input data to <RootName>.ech (flag)
default DT - Communication interval for controllers (s) (or "default")
---------------------- PITCH CONTROL -------------------------------------------
0 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]
0.0 TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s)
0.0 TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s)
0.0 TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]
1800.0 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
1800.0 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
1800.0 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
90.0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
90.0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
90.0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
---------------------- GENERATOR AND TORQUE CONTROL ----------------------------
5 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
1 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]
95.4 GenEff - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%)
False GenTiStr - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag)
True GenTiStp - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag)
99999.0 SpdGenOn - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]
0.0 TimGenOn - Time to turn on the generator for a startup (s) [used only when GenTiStr=True]
0.0 TimGenOf - Time to turn off the generator (s) [used only when GenTiStp=True]
---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL --------------------
7.061131867192265 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]
31219733.35544 VS_RtTq - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1]
626153.114868262 VS_Rgn2K - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1]
2.0 VS_SlPc - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1]
---------------------- SIMPLE INDUCTION GENERATOR ------------------------------
99999.0 SIG_SlPc - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_SySp - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_RtTq - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_PORt - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]
---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR -----------------
99999.0 TEC_Freq - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]
0 TEC_NPol - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_SRes - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_RRes - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_VLL - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_SLR - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_RLR - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_MR - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2]
---------------------- HIGH-SPEED SHAFT BRAKE ----------------------------------
0 HSSBrMode - HSS brake model {0: none, 1: simple, 3: user-defined from routine UserHSSBr, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
99999.0 THSSBrDp - Time to initiate deployment of the HSS brake (s)
99999.0 HSSBrDT - Time for HSS-brake to reach full deployment once initiated (sec) [used only when HSSBrMode=1]
99999.0 HSSBrTqF - Fully deployed HSS-brake torque (N-m)
---------------------- NACELLE-YAW CONTROL -------------------------------------
0 YCMode - Yaw control mode {0: none, 3: user-defined from routine UserYawCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
99999.0 TYCOn - Time to enable active yaw control (s) [unused when YCMode=0]
0.0 YawNeut - Neutral yaw position--yaw spring force is zero at this yaw (degrees)
9093012484.130638 YawSpr - Nacelle-yaw spring constant (N-m/rad)
6410654.157064741 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s))
99999.0 TYawManS - Time to start override yaw maneuver and end standard yaw control (s)
0.25 YawManRat - Yaw maneuver rate (in absolute value) (deg/s)
0.0 NacYawF - Final yaw angle for override yaw maneuvers (degrees)
---------------------- AERODYNAMIC FLOW CONTROL --------------------------------
0 AfCmode - Airfoil control mode {0: none, 1: cosine wave cycle, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0.0 AfC_Mean - Mean level for cosine cycling or steady value (-) [used only with AfCmode==1]
0.0 AfC_Amp - Amplitude for for cosine cycling of flap signal (-) [used only with AfCmode==1]
0.0 AfC_phase - Phase relative to the blade azimuth (0 is vertical) for for cosine cycling of flap signal (deg) [used only with AfCmode==1]
---------------------- STRUCTURAL CONTROL --------------------------------------
0 NumBStC - Number of blade structural controllers (integer)
"unused" BStCfiles - Name of the files for blade structural controllers (quoted strings) [unused when NumBStC==0]
0 NumNStC - Number of nacelle structural controllers (integer)
"unused" NStCfiles - Name of the files for nacelle structural controllers (quoted strings) [unused when NumNStC==0]
0 NumTStC - Number of tower structural controllers (integer)
"unused" TStCfiles - Name of the files for tower structural controllers (quoted strings) [unused when NumTStC==0]
0 NumSStC - Number of substructure structural controllers (integer)
"unused" SStCfiles - Name of the files for substructure structural controllers (quoted strings) [unused when NumSStC==0]
---------------------- CABLE CONTROL -------------------------------------------
0 CCmode - Cable control mode {0: none, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
---------------------- BLADED INTERFACE ---------------------------------------- [used only with Bladed Interface]
"../IEA-22-280-RWT/libdiscon.dll" DLL_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} in the Bladed-DLL format (-) [used only with Bladed Interface]
"IEA-22-280-RWT_DISCON.IN" DLL_InFile - Name of input file sent to the DLL (-) [used only with Bladed Interface]
"DISCON" DLL_ProcName - Name of procedure in DLL to be called (-) [case sensitive; used only with DLL Interface]
default DLL_DT - Communication interval for dynamic library (s) (or "default") [used only with Bladed Interface]
False DLL_Ramp - Whether a linear ramp should be used between DLL_DT time steps [introduces time shift when true] (flag) [used only with Bladed Interface]
99999.0 BPCutoff - Cuttoff frequency for low-pass filter on blade pitch from DLL (Hz) [used only with Bladed Interface]
0.0 NacYaw_North - Reference yaw angle of the nacelle when the upwind end points due North (deg) [used only with Bladed Interface]
0 Ptch_Cntrl - Record 28: Use individual pitch control {0: collective pitch; 1: individual pitch control} (switch) [used only with Bladed Interface]
0.0 Ptch_SetPnt - Record 5: Below-rated pitch angle set-point (deg) [used only with Bladed Interface]
DISCON.IN
! Controller parameter input file for the IEA-22-280-RWT-Monopile wind turbine
! - File written using ROSCO version 2.10.1 controller tuning logic on 10/24/25
!------- SIMULATION CONTROL ------------------------------------------------------------
2 ! LoggingLevel - 0: write no debug files, 1: write standard output .dbg-file, 2: LoggingLevel 1 + ROSCO LocalVars (.dbg2) 3: LoggingLevel 2 + complete avrSWAP-array (.dbg3)
0 ! DT_Out - Time step to output .dbg* files, or 0 to match sampling period of OpenFAST
1 ! Ext_Interface - (0 - use standard bladed interface, 1 - Use the extened DLL interface introduced in OpenFAST 3.5.0.)
0 ! Echo - (0 - no Echo, 1 - Echo input data to <RootName>.echo)
!------- CONTROLLER FLAGS -------------------------------------------------
1 ! F_LPFType - 1: first-order low-pass filter, 2: second-order low-pass filter, [rad/s] (currently filters generator speed and pitch control signals
0 ! IPC_ControlMode - Turn Individual Pitch Control (IPC) for fatigue load reductions (pitch contribution) (0: off, 1: 1P reductions, 2: 1P+2P reductions)
0 ! VS_ControlMode - Generator torque control mode in above rated conditions (0- no torque control, 1- k*omega^2 with PI transitions, 2- WSE TSR Tracking, 3- Power-based TSR Tracking, 4- Torque-based TSR Tracking)
1 ! VS_ConstPower - Do constant power torque control, where above rated torque varies, 0 for constant torque)
0 ! VS_FBP - Fixed blade pitch configuration mode (0- variable pitch (disabled), 1- constant power overspeed, 2- WSE-lookup reference tracking, 3- torque-lookup reference tracking)
0 ! PC_ControlMode - Blade pitch control mode (0: No pitch, fix to fine pitch, 1: active PI blade pitch control)
0 ! Y_ControlMode - Yaw control mode (0: no yaw control, 1: yaw rate control, 2: yaw-by-IPC)
1 ! SS_Mode - Setpoint Smoother mode (0: no setpoint smoothing, 1: introduce setpoint smoothing)
0 ! PRC_Mode - Power reference tracking mode (0: power control disabled, 1: lookup table from wind speed to generator speed setpoints, 2: change speed, torque, pitch to control power)
2 ! WE_Mode - Wind speed estimator mode (0: One-second low pass filtered hub height wind speed, 1: Immersion and Invariance Estimator, 2: Extended Kalman Filter)
1 ! PS_Mode - Pitch saturation mode (0: no pitch saturation, 1: implement pitch saturation)
0 ! SU_Mode - Startup mode (0: no startup procedure, 1: startup enabled)
0 ! SD_Mode - Shutdown mode (0: no shutdown procedure, 1: shutdown enabled)
0 ! Fl_Mode - Floating specific feedback mode (0: no nacelle velocity feedback, 1: feed back translational velocity, 2: feed back rotational velocity)
0 ! TD_Mode - Tower damper mode (0- no tower damper, 1- feed back translational nacelle accelleration to pitch angle
0 ! TRA_Mode - Tower resonance avoidance mode (0- no tower resonsnace avoidance, 1- use torque control setpoints to avoid a specific frequency
0 ! Flp_Mode - Flap control mode (0: no flap control, 1: steady state flap angle, 2: Proportional flap control, 2: Cyclic (1P) flap control)
0 ! OL_Mode - Open loop control mode (0: no open loop control, 1: open loop control vs. time, 2: rotor position control)
2 ! PA_Mode - Pitch actuator mode (0 - not used, 1 - first order filter, 2 - second order filter)
0 ! PF_Mode - Pitch fault mode (0 - not used, 1 - constant offset on one or more blades)
0 ! AWC_Mode - Active wake control (0 - not used, 1 - complex number method, 2 - Coleman transform method)
0 ! Ext_Mode - External control mode (0 - not used, 1 - call external dynamic library)
0 ! ZMQ_Mode - Fuse ZeroMQ interface (0: unused, 1: Yaw Control)
0 ! CC_Mode - Cable control mode [0- unused, 1- User defined, 2- Open loop control]
0 ! StC_Mode - Structural control mode [0- unused, 1- User defined, 2- Open loop control]
AeroDyn file
------- AERODYN v15.03.* INPUT FILE ------------------------------------------------
Generated with AeroElasticSE FAST driver
====== General Options ============================================================================
False Echo - Echo the input to "<rootname>.AD.ech"? (flag)
Default DTAero - Time interval for aerodynamic calculations {or "default"} (s)
0 Wake_Mod - Wake/induction model (switch) {0=none, 1=BEMT, 3=OLAF} [Wake_Mod cannot be 2 or 3 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}
1 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 CavitCheck - Perform cavitation check? (flag) [UA_Mod must be 0 when CavitCheck=true]
False Buoyancy - Include buoyancy effects? (flag)
False NacelleDrag - Include Nacelle Drag effects? (flag)
False CompAA - Flag to compute AeroAcoustics calculation [used only when Wake_Mod = 1 or 2]
AeroAcousticsInput.dat AA_InputFile - AeroAcoustics input file [used only when CompAA=true]
====== Environmental Conditions ===================================================================
1.225 AirDens - Air density (kg/m^3)
1.4775510204081632e-05 KinVisc - Kinematic viscosity of working fluid (m^2/s)
340.0 SpdSound - Speed of sound in working fluid (m/s)
103500.0 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True]
1700.0 Pvap - Vapour pressure of working fluid (Pa) [used only when CavitCheck=True]
====== Blade-Element/Momentum Theory Options ====================================================== [unused when Wake_Mod=0 or 3, except for BEM_Mod]
2 BEM_Mod - BEM model {1=legacy NoSweepPitchTwist, 2=polar} (switch) [used for all Wake_Mod to determine output coordinate system]
--- Skew correction
0 Skew_Mod - Skew model {0=No skew model, -1=Remove non-normal component for linearization, 1=skew model active}
False SkewMomCorr - Turn the skew momentum correction on or off [used only when Skew_Mod=1]
default SkewRedistr_Mod - Type of skewed-wake correction model (switch) {0=no redistribution, 1=Glauert/Pitt/Peters, default=1} [used only when Skew_Mod=1]
1.4726215563702154 SkewRedistrFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when Skew_Mod=1 and SkewRedistr_Mod=1]
--- BEM algorithm
True TipLoss - Use the Prandtl tip-loss model? (flag) [unused when Wake_Mod=0 or 3]
True HubLoss - Use the Prandtl hub-loss model? (flag) [unused when Wake_Mod=0 or 3]
True TanInd - Include tangential induction in BEMT calculations? (flag) [unused when Wake_Mod=0 or 3]
True AIDrag - Include the drag term in the axial-induction calculation? (flag) [unused when Wake_Mod=0 or 3]
True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [unused when Wake_Mod=0,3 or TanInd=FALSE]
Default IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when Wake_Mod=0 or 3]
500 MaxIter - Maximum number of iteration steps (-) [unused when Wake_Mod=0]
--- Shear correction
False SectAvg - Use sector averaging (flag)
1 SectAvgWeighting - Weighting function for sector average {1=Uniform, default=1} within a sector centered on the blade (switch) [used only when SectAvg=True]
default SectAvgNPoints - Number of points per sectors (-) {default=5} [used only when SectAvg=True]
default SectAvgPsiBwd - Backward azimuth relative to blade where the sector starts (<=0) {default=-60} (deg) [used only when SectAvg=True]
default SectAvgPsiFwd - Forward azimuth relative to blade where the sector ends (>=0) {default=60} (deg) [used only when SectAvg=True]
--- Dynamic wake/inflow
0 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {0=No Dynamic Wake, -1=Frozen Wake for linearization, 1:constant tau1, 2=time-dependent tau1, 3=constant tau1 with continuous formulation} (-)
34.079999999999984 tau1_const - Time constant for DBEMT (s) [used only when Wake_Mod=2 and DBEMT_Mod=1]
====== OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options ================== [used only when Wake_Mod=3]
IEA-22-280-RWT_OLAF.dat OLAFInputFileName - Input file for OLAF [used only when Wake_Mod=3]
====== Unsteady Airfoil Aerodynamics Options ====================================================
True AoA34 - Sample the angle of attack (AoA) at the 3/4 chord or the AC point {default=True} [always used]
0 UA_Mod - Unsteady Aero Model Switch (switch) {0=Quasi-steady (no UA), 2=B-L Gonzalez, 3=B-L Minnema/Pierce, 4=B-L HGM 4-states, 5=B-L HGM+vortex 5 states, 6=Oye, 7=Boeing-Vertol}
True FLookup - Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when UA_Mod>0]
3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)
0.05 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAStartRad=0]
1 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAEndRad=1]
I am using OpenFAST 4.1.2. Running ROSCO-v2.9.0
Wind is - uniform wind with a ramp from 0 to 50m/s in 25 sec.
Can you please help me get this idling turbine running with BeamDyn.
Thanks,
Ashok
Dear @Ashok.Jammi,
I assume you are using the OpenFAST model of the IEA Wind 22-MW RWT atop the monopile (perhaps you’ve disabled the platform DOFs in ElastoDyn to ensure a rigid substructure) from the IEA Wind 22-MW repository: IEA-22-280-RWT/OpenFAST/IEA-22-280-RWT-Monopile at main · IEAWindSystems/IEA-22-280-RWT · GitHub; is that correct? This model with BeamDyn uses a timestep of 0.0002 s, so, quite a bit smaller than you are using. Does reducing the time step solve your issue with BeamDyn not converging?
FYI: With OpenFAST v5, we have introduced a new tight-coupling algorithm between BeamDyn and ElastoDyn (and between ElastoDyn and SubDyn), which allows much larger time steps when BeamDyn is enabled, enabling much faster simulations. I suggest you upgrade.
Best regards,
Dear @Jason.Jonkman ,
Thanks for the pointer to the time step.
I tried with timestep = 0.0002 . Still it fails due to convergence.
This is the full message list from OpenFAST 4.1.2
OpenFAST input file heading:
Generated with AeroElasticSE FAST driver
Running ElastoDyn.
Nodal outputs section of ElastoDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running InflowWind.
Running AeroDyn.
AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
Skipping nodal outputs.
[INFO] Using the input file input `BEM_Mod` to match BEM coordinate system outputs
AeroDyn: projMod: 2
Projection: Polar, BEM: polar (3D)
Running ServoDyn.
Running ServoDyn Interface for Bladed Controllers (using Intel Visual Fortran for Windows).
Using legacy Bladed DLL interface.
FAST_InitializeAll:InflowWind_Init:IfW_UniformWind_Init: Could not read upflow column in uniform
wind files. Assuming upflow is 0.
FAST_InitializeAll:AD_Init:ReadInputFiles:Blade1:ReadBladeInputs:BlCrvAng will be calculated and
overwrite the values specified in blade file
".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
ReadInputFiles:Blade2:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file ".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
ReadInputFiles:Blade3:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file ".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
------------------------------------------------------------------------------
Running ROSCO-v2.9.0
A wind turbine controller framework for public use in the scientific field
Developed in collaboration: National Renewable Energy Laboratory
Delft University of Technology, The Netherlands
------------------------------------------------------------------------------
ROSCO Warning: Did not find correct size F_NotchFreqs in input file. Using default value of [ 0.0000000000000000 ]
ROSCO Warning: Did not find correct size F_NotchBetaNum in input file. Using default value of [ 0.0000000000000000 ]
ROSCO Warning: Did not find correct size F_NotchBetaDen in input file. Using default value of [ 0.0000000000000000 ]
ROSCO Warning: Did not find VS_PwrFiltF in input file. Using default value of 0.0000000000000000
ROSCO Warning: Did not find SD_CornerFreq in input file. Using default value of 0.0000000000000000
Generator speed: 0.0 RPM, Pitch angle: 90.0 deg, Power: 0.0 kW, Est. wind Speed: 0.0 m/s
FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates:SrvD_UpdateStates:DLL_controller_call:BladedInt
erface option was designed for an explicit-loose coupling scheme. Using last calculated values
from DLL on all subsequent calls until time is advanced. Warning will not be displayed again.
Generator speed: 0.1 RPM, Pitch angle: 70.5 deg, Power: 0.0 kW, Est. wind Speed: 3.0 m/s
Generator speed: 0.1 RPM, Pitch angle: 50.5 deg, Power: 0.0 kW, Est. wind Speed: 3.0 m/s
Generator speed: 0.2 RPM, Pitch angle: 30.5 deg, Power: 0.0 kW, Est. wind Speed: 2.8 m/s
Generator speed: 0.2 RPM, Pitch angle: 10.5 deg, Power: 0.0 kW, Est. wind Speed: 1.9 m/s
Generator speed: 0.2 RPM, Pitch angle: 0.6 deg, Power: 0.0 kW, Est. wind Speed: 1.5 m/s
Generator speed: 0.2 RPM, Pitch angle: 0.6 deg, Power: 0.0 kW, Est. wind Speed: 1.3 m/s
Generator speed: 0.2 RPM, Pitch angle: 0.6 deg, Power: 0.0 kW, Est. wind Speed: 1.1 m/s
Generator speed: 0.2 RPM, Pitch angle: 0.6 deg, Power: 0.0 kW, Est. wind Speed: 1.0 m/s
Time: 80 of 800 seconds. Estimated final completion at 10:36:59 (in 0.217 days).
FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates:B1::BD_GA2:BD_DynamicSolutionGA2:Solution does
not converge after the maximum number of iterations
OpenFAST encountered an error at simulation time 89.284 of 800 seconds.
Simulation error level: FATAL ERROR
Aborting OpenFAST.
Right now we are doing an internal validation against OpenFAST 4.1.2. So other comparisons are already done with it. So switching to V5.0 will be the final option.
Anyways I will try with OpenFAST 5.0 to see if there is any error in my modeling parameters. Thanks for that info.
This is how blade tip deflection look like before failing
Can you please help us getting this running with OpenFAST 4.1.2 ?
Thanks,
Ashok
Dear @Ashok.Jammi,
Looking at the command prompt messages you shared, I’m surprised by a couple things, but I’m not sure if they are problems or not:
- I would not expect ROSCO to be called for an idling turbine. I suppose this is because you’ve set
VSContrl= 5 in ServoDyn, even though you setTimGenOf= 0 s. To disable ROSCO altogether, I suggest settingVSContrl= 0 andGenTiStr= TRUE withTimGenOn>TMax. - I’m surprised to see warnings about
BEM_Modgiven that you’ve setWake_Mod= 0 in AeroDyn; are you sure you are running with the AeroDyn file you shared?
Best regards,
Dear @Jason.Jonkman ,
Thanks for your reply.
Changed those parameters in ServoDyn. Here is my ServoDyn file.
But somehow I am unable to succeed.
------- SERVODYN v1.05.* INPUT FILE --------------------------------------------
Generated with AeroElasticSE FAST driver
---------------------- SIMULATION CONTROL --------------------------------------
False Echo - Echo input data to <RootName>.ech (flag)
default DT - Communication interval for controllers (s) (or "default")
---------------------- PITCH CONTROL -------------------------------------------
0 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]
0.0 TPitManS(1) - Time to start override pitch maneuver for blade 1 and end standard pitch control (s)
0.0 TPitManS(2) - Time to start override pitch maneuver for blade 2 and end standard pitch control (s)
0.0 TPitManS(3) - Time to start override pitch maneuver for blade 3 and end standard pitch control (s) [unused for 2 blades]
1800.0 PitManRat(1) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 1 (deg/s)
1800.0 PitManRat(2) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 2 (deg/s)
1800.0 PitManRat(3) - Pitch rate at which override pitch maneuver heads toward final pitch angle for blade 3 (deg/s) [unused for 2 blades]
90.0 BlPitchF(1) - Blade 1 final pitch for pitch maneuvers (degrees)
90.0 BlPitchF(2) - Blade 2 final pitch for pitch maneuvers (degrees)
90.0 BlPitchF(3) - Blade 3 final pitch for pitch maneuvers (degrees) [unused for 2 blades]
---------------------- GENERATOR AND TORQUE CONTROL ----------------------------
0 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
1 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]
95.4 GenEff - Generator efficiency [ignored by the Thevenin and user-defined generator models] (%)
False GenTiStr - Method to start the generator {T: timed using TimGenOn, F: generator speed using SpdGenOn} (flag)
True GenTiStp - Method to stop the generator {T: timed using TimGenOf, F: when generator power = 0} (flag)
99999.0 SpdGenOn - Generator speed to turn on the generator for a startup (HSS speed) (rpm) [used only when GenTiStr=False]
99999.0 TimGenOn - Time to turn on the generator for a startup (s) [used only when GenTiStr=True]
0.0 TimGenOf - Time to turn off the generator (s) [used only when GenTiStp=True]
---------------------- SIMPLE VARIABLE-SPEED TORQUE CONTROL --------------------
7.061131867192265 VS_RtGnSp - Rated generator speed for simple variable-speed generator control (HSS side) (rpm) [used only when VSContrl=1]
31219733.35544 VS_RtTq - Rated generator torque/constant generator torque in Region 3 for simple variable-speed generator control (HSS side) (N-m) [used only when VSContrl=1]
626153.114868262 VS_Rgn2K - Generator torque constant in Region 2 for simple variable-speed generator control (HSS side) (N-m/rpm^2) [used only when VSContrl=1]
2.0 VS_SlPc - Rated generator slip percentage in Region 2 1/2 for simple variable-speed generator control (%) [used only when VSContrl=1]
---------------------- SIMPLE INDUCTION GENERATOR ------------------------------
99999.0 SIG_SlPc - Rated generator slip percentage (%) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_SySp - Synchronous (zero-torque) generator speed (rpm) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_RtTq - Rated torque (N-m) [used only when VSContrl=0 and GenModel=1]
99999.0 SIG_PORt - Pull-out ratio (Tpullout/Trated) (-) [used only when VSContrl=0 and GenModel=1]
---------------------- THEVENIN-EQUIVALENT INDUCTION GENERATOR -----------------
99999.0 TEC_Freq - Line frequency [50 or 60] (Hz) [used only when VSContrl=0 and GenModel=2]
0 TEC_NPol - Number of poles [even integer > 0] (-) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_SRes - Stator resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_RRes - Rotor resistance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_VLL - Line-to-line RMS voltage (volts) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_SLR - Stator leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_RLR - Rotor leakage reactance (ohms) [used only when VSContrl=0 and GenModel=2]
99999.0 TEC_MR - Magnetizing reactance (ohms) [used only when VSContrl=0 and GenModel=2]
---------------------- HIGH-SPEED SHAFT BRAKE ----------------------------------
My AeroDyn file
------- AERODYN v15.03.* INPUT FILE ------------------------------------------------
Generated with AeroElasticSE FAST driver
====== General Options ============================================================================
False Echo - Echo the input to "<rootname>.AD.ech"? (flag)
Default DTAero - Time interval for aerodynamic calculations {or "default"} (s)
0 Wake_Mod - Wake/induction model (switch) {0=none, 1=BEMT, 3=OLAF} [Wake_Mod cannot be 2 or 3 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}
1 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 CavitCheck - Perform cavitation check? (flag) [UA_Mod must be 0 when CavitCheck=true]
False Buoyancy - Include buoyancy effects? (flag)
False NacelleDrag - Include Nacelle Drag effects? (flag)
False CompAA - Flag to compute AeroAcoustics calculation [used only when Wake_Mod = 1 or 2]
AeroAcousticsInput.dat AA_InputFile - AeroAcoustics input file [used only when CompAA=true]
====== Environmental Conditions ===================================================================
1.225 AirDens - Air density (kg/m^3)
1.4775510204081632e-05 KinVisc - Kinematic viscosity of working fluid (m^2/s)
340.0 SpdSound - Speed of sound in working fluid (m/s)
103500.0 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True]
1700.0 Pvap - Vapour pressure of working fluid (Pa) [used only when CavitCheck=True]
====== Blade-Element/Momentum Theory Options ====================================================== [unused when Wake_Mod=0 or 3, except for BEM_Mod]
2 BEM_Mod - BEM model {1=legacy NoSweepPitchTwist, 2=polar} (switch) [used for all Wake_Mod to determine output coordinate system]
--- Skew correction
0 Skew_Mod - Skew model {0=No skew model, -1=Remove non-normal component for linearization, 1=skew model active}
False SkewMomCorr - Turn the skew momentum correction on or off [used only when Skew_Mod=1]
default SkewRedistr_Mod - Type of skewed-wake correction model (switch) {0=no redistribution, 1=Glauert/Pitt/Peters, default=1} [used only when Skew_Mod=1]
1.4726215563702154 SkewRedistrFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when Skew_Mod=1 and SkewRedistr_Mod=1]
--- BEM algorithm
True TipLoss - Use the Prandtl tip-loss model? (flag) [unused when Wake_Mod=0 or 3]
True HubLoss - Use the Prandtl hub-loss model? (flag) [unused when Wake_Mod=0 or 3]
True TanInd - Include tangential induction in BEMT calculations? (flag) [unused when Wake_Mod=0 or 3]
True AIDrag - Include the drag term in the axial-induction calculation? (flag) [unused when Wake_Mod=0 or 3]
True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [unused when Wake_Mod=0,3 or TanInd=FALSE]
Default IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when Wake_Mod=0 or 3]
500 MaxIter - Maximum number of iteration steps (-) [unused when Wake_Mod=0]
--- Shear correction
False SectAvg - Use sector averaging (flag)
1 SectAvgWeighting - Weighting function for sector average {1=Uniform, default=1} within a sector centered on the blade (switch) [used only when SectAvg=True]
default SectAvgNPoints - Number of points per sectors (-) {default=5} [used only when SectAvg=True]
default SectAvgPsiBwd - Backward azimuth relative to blade where the sector starts (<=0) {default=-60} (deg) [used only when SectAvg=True]
default SectAvgPsiFwd - Forward azimuth relative to blade where the sector ends (>=0) {default=60} (deg) [used only when SectAvg=True]
--- Dynamic wake/inflow
0 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {0=No Dynamic Wake, -1=Frozen Wake for linearization, 1:constant tau1, 2=time-dependent tau1, 3=constant tau1 with continuous formulation} (-)
34.079999999999984 tau1_const - Time constant for DBEMT (s) [used only when Wake_Mod=2 and DBEMT_Mod=1]
Since BEM_Mod is set to 2 it is showing an [INFO].
[INFO] Using the input file input `BEM_Mod` to match BEM coordinate system outputs
AeroDyn: projMod: 2
Projection: Polar, BEM: polar (3D)
Not sure where I am going wrong.
Not sure why I am getting a convergence error.
Dear @Ashok.Jammi,
What is written to the command prompt when you run OpenFAST now and have the results changed?
Best regards,
Dear @Jason.Jonkman ,
Thanks for being on it.
This is the command output
OpenFAST input file heading:
Generated with AeroElasticSE FAST driver
Running ElastoDyn.
Nodal outputs section of ElastoDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running InflowWind.
Running AeroDyn.
AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
Skipping nodal outputs.
[INFO] Using the input file input `BEM_Mod` to match BEM coordinate system outputs
AeroDyn: projMod: 2
Projection: Polar, BEM: polar (3D)
Running ServoDyn.
FAST_InitializeAll:InflowWind_Init:IfW_UniformWind_Init: Could not read upflow column in uniform
wind files. Assuming upflow is 0.
FAST_InitializeAll:AD_Init:ReadInputFiles:Blade1:ReadBladeInputs:BlCrvAng will be calculated and
overwrite the values specified in blade file
".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
ReadInputFiles:Blade2:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file ".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
ReadInputFiles:Blade3:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file ".\../IEA-22-280-RWT/IEA-22-280-RWT_AeroDyn15_blade.dat".
Time: 80 of 800 seconds. Estimated final completion at 01:01:04 (in 0.197 days).
FAST_Solution:FAST_UpdateStates:FAST_AdvanceStates:B1::BD_GA2:BD_DynamicSolutionGA2:Solution does
not converge after the maximum number of iterations
OpenFAST encountered an error at simulation time 89.284 of 800 seconds.
Simulation error level: FATAL ERROR
Aborting OpenFAST.
No change in the results.
I forgot to mention earlier - I am able to get Braked turbine working well with BeamDyn. i.e with GenDOF = False
Dear @Ashok.Jammi,
OK, we’ll I’m not sure. I don’t see anything out-of-the-ordinary with the blade-tip deflection you are showing; do other outputs show signs of solution divergence?
Though the time step is already very small (DT = 0.0002 s), you could try an even smaller time step for this specific case; does that help? (The use of larger, more reasonable size time steps is the key reason to upgrade to OpenFAST v5.)
Best regards,

