OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
679 stars 456 forks source link

One-Bladed Turbine #353

Closed fsamara12 closed 4 years ago

fsamara12 commented 4 years ago

Hi,

I did a series of experiments on a one bladed turbine. The rotor consists of 1 aerodynamic blade and 2 counterweights that are just cylindrical rods. The rotor diameter is 3.6m.

I was reading through the manual and found that Aerodyn can run a one-, two-, or three-bladed rotor atop a single tower. But somewhere else in the report (overview section) it says that OpenFast can run two- or three-blade horizontal-axis rotor.

I started with the UAE example and changed NumBl - Number of blades (-) from 2 to 1 in the elastodyn .dat file. I ran OpenFast again and I got this error:

Running ElastoDyn.

FAST_InitializeAll:ED_Init:ED_ValidateInput:ValidatePrimaryData:NumBl must be either 2 or 3.

So my question is can I run openfast on a one bladed turbine? if so how can I solve the issue I got. So I have to change something else in the code?

Thanks for your help

bjonkman commented 4 years ago

You can't model a 1-bladed turbine with ElastoDyn, but you can model a 1-bladed turbine with a BeamDyn+ElastoDyn model.

fsamara12 commented 4 years ago

Thanks for the quick reply. I am really new to OpenFast and I have been using it for a few days now.

I went to the .fst file and I changed CompElast from 1 to 2 so I could run ElastoDyn + BeamDyn. I found a BeamDyn.dat example in the r-test folder and used it. I changed the input files to refer to DeamDyn.dat. I ran it again and I got this error:

Running ElastoDyn.

FAST_InitializeAll:ED_Init:ED_CalcContStateDeriv:LAPACK_DGETRF: U( 7, 7)=0. Factor U is exactly singular.

fsamara12 commented 4 years ago

I have been thinking about the problem some more. I think I am able to change the shape and properties of each blade in openfast. Am I correct? If so I can modify the blade to be a very thin cylindrical blade with no aerodynamic effects. So I will have one aerodynamic blade and one cylindrical blade with a very small diameter.

This way the second blade will have no influence on the induction factor or rotor performance. The results should be similar to a single bladed design. Does OpenFast allow me to do so?

This way I will avoid running BeamDyn.

jjonkman commented 4 years ago

You can certainly define a two-bladed turbine and set the blade mass and aerodynamic coefficients (lift, drag, pitch) to zero for the "extra" blade, but you'd have to disable blade degrees-of-freedom (DOFs) in ElastoDyn to do so. This is because if you enable a blade DOF in ElastoDyn, ElastoDyn will be unable to solve the equations of motion because the mass matrix for the enabled "extra" blade DOFs will be zero. You could get around this by modifying the ElastoDyn source code so that you only enable the blade DOFs for the blade whose mass is nonzero.

Best regards,

fsamara12 commented 4 years ago

Thanks so much for your input. What I ended up doing was simulating a 3 bladed turbine where 1 blade is aerodynamic and the other 2 are just cylinders with 0 lift coefficient. This way the model resembles my experimental setup. That seems to have worked pretty well and the data I got from the model resembles the experimental data.

I am in the process of comparing and discussing the differences between the model and the experimental results. I read the report that you wrote back 2003 (Modeling of the UAE Wind Turbine for Refinement of FAST_AD) where you modeled the UAE in fast and compared experimental data to the model. You mentioned that discrepancies in the model are due to tip loss, stall delay, post stall, and dynamic stall. The unsteady aerodynamic in Fast is based on the Beddoes-Leishman model.

I then read over the Mexnext Phase 1 report (2012) where they compared Fast to the MEXICO experiments. They mentioned unsteady aerodynamics especially when the airfoil is stalled were hard to model in Fast.

I am looking at my data and also notice few discrepancies between the model and experiments specially when the turbine is yawed to 30 degrees.

Was there any modification to the unsteady aerodynamic modeling in Fast in the last few years? Am I safe to say that these discrepancies that I see are due from unsteady aerodynamic modeling? Because when the turbine is not yawed the model and experiments align within reason.

Do you also know of other reports I could refer to where they compared experimental data to the FAST model especially on yawed turbines?

Thank you very much for your help

Farid

jjonkman commented 4 years ago

Dear @fsamara12,

There were a number of improvements to the Unsteady Airfoil Aerodynamics modeling in FAST v8 with the introduction of AeroDyn v15, which is what I assume you are using. See the AIAA SciTech 2016 paper by Damiani et al for more information: https://arc.aiaa.org/doi/10.2514/6.2016-1007. That said, the accuracy of this model is determined by the appropriate settings of the unsteady airfoil aerodynamic input parameters, which can be calibrated to match known / measured stall hysteresis loops. How did you set these parameters for your case?

The most recent validation of FAST under yawed-flow conditions was also performed by Damiani et al--see: https://www.wind-energ-sci-discuss.net/wes-2017-38/wes-2017-38.pdf.

Best regards,

fsamara12 commented 4 years ago

Dear Jonkman,

Yes I am using AeroDyn v15. I set the airfoil parameters by looking at the S809 airfoil from the UAE example first. I then changed the Cl, Cd, Cm parameters so it matches the S833 airfoil that I am using. I changed stall angle, slope of the 2D airfoil. I noticed that the Cn1 parameter is important to set correctly. I am reading the manual and not sure what should the value be. I am overwhelmed by the number of variables to set and relied on the S809 airfoil example.

I did some dynamic stall experiments on my airfoil in a 2d wind tunnel and I have the hysteresis and dynamic stall loops. But I am not sure how to use that data to import it to OpenFast.

Best Regards

Farid

Mod_S833_FS_V2_copy.txt

jjonkman commented 4 years ago

Dear @fsamara12,

Indeed there are many unsteady airfoil aerodynamics parameters to set. And I'm no expert on how to set them properly. The Cn1 value can be derived from the plot of normal force coefficient versus angle of attack (derivable from the lift and drag coefficients).

If you have measured hysteresis and dynamic stall loops, I would run the unsteady airfoil aerodynamics module in standalone mode (there is a standalone driver for that) in order to plot the hysteresis loops from AeroDyn v15 for comparison with your measured data. The airfoil parameters can be then be adjusted to better match the data.

Best regards,

fsamara12 commented 4 years ago

Dear Jonkman,

Thats a good idea.

I am trying to find documentation to run unsteady airfoil aerodynamics model in standalone just like you suggested. Is there a compiled version of the standalone model? or could you refer me to documentation to be able to run the model? My programming skills are very minimal.

Thanks

Farid

gantech commented 4 years ago

OpenFAST creates an unsteady aerodynamics driver by default. https://github.com/OpenFAST/openfast/blob/dev/modules/aerodyn/CMakeLists.txt#L62

https://nwtc.nrel.gov/AeroDyn should contain some examples of an input file for the Unsteady Aero driver.

The unsteady aerodynamics coefficients for each airfoil should be modified in the input file containing the aerodynamic data for the corresponding airfoil like here

https://github.com/OpenFAST/r-test/blob/master/glue-codes/openfast/5MW_Baseline/Airfoils/DU21_A17.dat

rafmudaf commented 4 years ago

To compile the unsteady aero driver, make sure you're on the dev branch and run cmake .. && make unsteadyaero_driver.

fsamara12 commented 4 years ago

I would like to thank you again for your amazing help while I try and figure out how to use this great code.

I was able to use the example compiled code from the aerodyn link that you gave me.

Here is what I got. I think the agreement looks good. I compared my experimental data to the UA model for a mean of 10 and 20 deg OpenFastFreq268Mean10CL OpenFastFreq268Mean20CL

with amp 10 deg, and k=0.1.

Thanks again

Farid

fsamara12 commented 4 years ago

I think this is the final problem that I have been facing. The code seems to work smoothly and reads all the input files correctly. But so far I have been running with no DOF.

When I turn on the DOF in the Flap and edge wise direction, I keep getting this error attached at the end. I have looked at the all options again and again trying to figure out where I am going wrong.

As a blade input file to aerodyn I am using the UAE Ames blade and modified the twist.

Am I missing something? What could I do to fix it? Also will having a DOF effect my results if I have a 1.7 m blades?

Thanks

Farid

UAE_Ames_Blades_UW1.txt

Error: Warning: SkewedWakeCorrection encountered a large value of chi (103.35 deg), so the yaw correction will be limited. This warning will not be repeated though the condition may persist. See the AD15 chi output channels, and consider turning off the Pitt/Peters skew model (set SkewMod=1) if this condition persists.

FAST_Solution:FAST_AdvanceStates:ED_ABM4:ED_CalcContStateDeriv:SetCoordSy:Small angle assumption violated in SUBROUTINE SmllRotTrans() due to a large blade deflection (ElastoDyn SetCoordSy). The solution may be inaccurate. Simulation continuing, but future warnings from SmllRotTrans() will be suppressed. Additional debugging message from SUBROUTINE SmllRotTrans(): 6.00000E-03 s FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:InflowWind_CalcOutput:CalcOutput:IfW_Uni formWind_CalcOutput:GetWindSpeed:Height must not be negative. IfW_UniformWind_CalcOutput: Error calculating the wind speed at position (0.47079, 0.73189, -0.13626) in the wind-file coordinates

FAST encountered an error at simulation time 4.50000E-03 of 60 seconds. Simulation error level: FATAL ERROR

Aborting OpenFAST.

jjonkman commented 4 years ago

Dear @fsamara12,

The SmllRotTrans() error due to large blade deflection at the beginning of your simulation points to the problem. When you enable DOFs, you are introducing natural frequencies in your system that must be resolved in time and your time step is too large to resolve them, resulting in a numerical instability. The rule of thumb for selecting the time step for the ElastoDyn structural module is given in the following topic on our forum: https://wind.nrel.gov/forum/wind/viewtopic.php?f=4&t=351&p=1025.

It is important to enable structural DOFs if there is a potential that the excitation frequencies will coalesce with the natural frequencies or if there is a potential for impactful structural deflection or instabilities.

Best regards,

andrew-platt commented 4 years ago

Closing this issue due to inactivity. @fsamara12, please reopen if your issue has not been fully solved.