Dear all,
I would like to kindly ask for assistance on hydro-elastic simulations in OpenFAST with a user defined ElastoDyn blade inputs.
I have developed the inputs for ElastoDyn blade using PreComp, BModes, and used ModeShapePolyFitting.xls to get coefficients of mode shapes for tidal turbine blade design. The elastodyn blade inputs are shown below:
I am simulating OpenFAST with ElastoDyn, AeroDyn, and InflowWind modules at a constant flow speed, time step of 0.001s, with only blade DoFs allowed.
Initially, simulations were conducted with [‘AdjBlMs’] = 1, in which the simulation failed after few time steps. Logs of the simulation is shown below:
Due to the error of large blade deflection (ElastoDyn SetCoordSy), I assumed that the problem was with the structural properties and increased the [‘AdjBlMs’] incrementally to which 1.65 allowed openfast to run properly.
I have a number of questions but would like to go through them sequentially to avoid confusion.
- As a beginner in blade structural properties, I would like to ask on advice on the validity of the blade properties, and what are the necessary criteria to assess on blade structural design
- How does OpenFAST/ElastoDyn define the state at which a deflection is considered too large for the simulation?
Thank you for your time and consideration.
Regards,
Ariff
Dear @Ariff.Alzakri,
Given your series of warnings and the SmllRotTrans error, I would guess your OpenFAST model is numerically unstable, e.g., from the setting of an incorrect blade geometry, mass distribution, stiffness distribution, or time step. What blade flapwise- and edgewise-bending natural frequencies are you expecting for this blade model and is your time step small enough to resolve this natural frequency? Given the many warnings and error, I would suggest simplifying the model to debug, e.g., does the simulation run as expected with your aerodynamic settings and all structural DOFs disabled? What if you only enable the first blade flapwise-bending mode (FlapDOF1
= TRUE, all other DOFs = FALSE)?
To answer your direction questions:
- The structural design of a blade is typically driven by ultimate loads, fatigue loads, and a deflection constraint (to avoid hitting the support structure).
- The SmllRotTrans error has been discussed multiple times on this forum. The error is triggered if rotations caused by large blade deflection, tower deflection, or platform displacement exceed the small/moderate angle assumptions used by ElastoDyn for these rotations (at about 0.4 rad = 23 degrees).
FYI: You mention considering a “hydro-elastic” simulation, but inclusion of terms such as added mass and fluid-inertia loads on blades for marine hydrokinetic (MHK) rotors is being developed, but won’t be released until OpenFAST v5.0 later this year.
Best regards,
Dear @Jason.Jonkman,
Thank you very much for your reply and guidance on my enquiries, and also on OpenFAST v5.0 and the hydroelastic simulation.
From the reply, I have revised the blade’s structural modelling in PreComp and BModes, and have conducted simulations for debugging by simplifying the model.
First, I conducted simulations with DOFs disabled for a rigid blade and time step = 0.01s, with varying parameters of ‘WakeMod’= 1,2 , ‘AFAeroMod’ = 1, and ‘SkewMod’ = 1,2. All of them simulated normally without any error prompts.
I then started to incorporate flapwise DOFs with time step = 0.001s, with AeroDyn parameters of ‘WakeMod’= 1 , ‘AFAeroMod’ = 1, and ‘SkewMod’ = 1. Both 1st and 2nd mode of flapwise simulated normally with no errors.
As for edgewise DOF, the same errors had occured as the initial simulation, leading me to increase the time step to 0.0001s. At this time step, the simulations ran normally when incorporating the flap and edge DOFs together.
Following this I started incorporating further AeroDyn functionalities with ‘WakeMod’ = 2 with the blade DOFs enabled, which lead me to have this error:
Testing the model with time steps of 0.0001s < TS < 0.001s resulted in successful simulations with an error that I assumed only occurs in the initial simulation times, as shown below:
With that I have several questions on my modelling:
- Is it expected that edgewise DOF requires smaller time steps to be simulated compared to flapwise DOFs, or is this an anomaly in the structural modelling?
- How do I determine the time step that is able to resolve the natural frequency?
- What is the error of time step required to be larger than sqrt(epsilon)?
- Am I correct in assuming the error to ComputeTau only occurs in the initialization of the model?
Thank you.
Regards,
Ariff
Dear @Ariff.Alzakri,
Time steps of 0.001 to 0.0001 s sound very small for a simulation without BeamDyn enabled. Can you clarify what size wind turbine this is and what blade flapwise and edgewise natural frequencies you are expecting? I’m expecting that you’ve set an incorrect blade geometry, mass distribution, stiffness distribution, or mode shape.
Here are my responses to your specific questions:
- I would expect the 1st blade edgewise-bending natural frequency to be higher than the 1st blade flapwise-bending natural frequency, but less than the 2nd blade flapwise-bending natural frequency, although I suppose this could depend on the blade design. Higher natural frequencies require smaller time steps to resolve.
- There are many forum posts that provide guidance on choosing OpenFAST time steps, e.g.,
DT
<= 1/(10*fmax), where fmax is the highest natural frequency of an OpenFAST model (without BeamDyn enabled).
- The AeroDyn error about sqrt(epsilon) is trying to avoid numerical problems associated with the use of too small of time steps; it can be avoided by increasing
DTAero
in AeroDyn or by switching from a single to double precision compile.
- This AeroDyn warning about the axial induction factor [being] greater than 0.5 when DBEMT is enabled is triggered only on the first instance of high induction. To see if the problem exists at other times would require that you track the induction throughout the simulation. I would not suggest using time-varying tau in DBEMT if you are expecting such high induction.
Best regards,
Dear @Jason.Jonkman,
Thank you for your reply. It is concerning that the time step is very small since I am planning on using beamdyn moving forward. I believe the best way to go about this is looking into the precomp and bmodes simulation that I conducted for this blade and the possible errors that might occur.
Here is the main input file to PreComp:
It is a 4.1m blade, in which the ‘Tw_aero’ is referred from the AeroDyn blade ‘BlTwist’ values. This may cause an error to the simulation if the coordinates are not consistent. Other possible errors could come from material layup, or the airfoil coordinate file in the root section does not align with twist angle.
PreComp BModes outputs:
ElastoDyn blade inputs
Based on these, there are a few possible points of error in the structural modelling:
- I provided ‘StrcTwst’ in elastodyn blade to be the same as the referred twist from AeroDyn blade. Would it be correct to use this or use data from ‘str_tw’ from PreComp outputs? And what is ‘str_tw’ referring to as I could not find the definition in the manual guide.
- As a beginner in modal analysis, the way that I used ‘ModeShapePolyFitting.xls’ is by providing mode no.1 flap and edge displacements as the first flapwise and first edgewise mode shapes, and mode no.2 flap displacements as the 2nd flapwise mode shape. Is the correct method of doing this is analysing the dominating displacement in each mode and identifying whether it is flap or edge wise, which would lead to:
- 1st flapwise nat. freq. = 23.9 Hz
- 2nd flapwise nat. freq. = 68.1 Hz
- 1st Edgewise nat. freq. = 114.3 Hz
Thank you and I appreciate very much on your guidance.
Best regards,
Ariff
Dear @Ariff.Alzakri,
Regarding (1), str_tw
in BeamDyn and StrctTwst
in ElastoDyn refer to the same thing–that is, the structural twist, which is the orientation of the principle axes of bending. I would suggest using the values from PreComp in ElastoDyn instead of the aerodynamic twist (BlTwist
).
Regarding (1), I would use the flap disp
column of Mode No. 1 to derive the first flapwise mode shape for ElastoDyn, the flap disp
column of Mode No. 2 for the second flapwise mode shape, and the lag disp
colum of Mode No. 3 for the first edgewise mode shape. That said, normally we recommend zeroing-out the structural twist (str_tw
) in BModes because it is the uncoupled flapwise and edgewise modes that ElastoDyn expects to be input (ElastoDyn will use StrctTwst
internally to couple the flapwise and edgewise modes, through what it calls “twisted shape functions”). So, I would rerun BModes with str_tw
= 0 and use those modes to derive the ElastoDyn mode shapes.
Best regards,