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
648 stars 447 forks source link

FAST.Farm with steady wind inflow - Oscillations in turbine power #2048

Open domenicoruotolo opened 4 months ago

domenicoruotolo commented 4 months ago

Issue description

I'm running a simple FAST.Farm test case with 3 wind turbines (NREL 5MW) in row with 7*diameters distance. I'm using a steady wind inflow of 10 mps. TMAX is equal to 900s. At time t=300s the upstream turbine (Turbine1) starts yawing from 0 to 30 deg linearly. The downstream turbines are always aligned with the wind direction.

Issue: the turbine powers show fast oscillations in time. What could this be due to?

I'm using FAST.Farm-v3.5.1

Screenshots

FAST

FAST_details

jjonkman commented 4 months ago

Dear @domenicoruotolo,

What frequency are the oscillations occuring and do they correspond with a specific natural frequency or excitation frequency (1P or 3P) of the NREL 5-MW baseline wind turbines you are simulating?

Can you clarify your simulation set up a bit more? What features have you enabled in the OpenFAST models?

FYI: As has been discussed in other OpenFAST issues, discussions, and our forum:

Best regards,

domenicoruotolo commented 4 months ago

Dear @jjonkman ,

thanks for your answer. It seems that the oscillations are occurring at a frequency close to 0.5 Hz, which corresponds to 3P frequency of the NREL-5MW. For the upstream wind turbine the rotor speed varies from 11.3 to 9.8 rpm. Is it possible to avoid these oscillations in the results? I obtain these oscillations also in other variables, such as RotSpeed, GenPwr, ...

A part of the FAST.Farm input file (for the other parameters I've used default values):

------- FAST.Farm for OpenFAST INPUT FILE ------------------------------------------------- FAST.Farm input file, using three turbines separated by 7D downstream, with a steady inflow --- SIMULATION CONTROL --- False Echo - Echo input data to .ech? (flag) FATAL AbortLevel - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"} 900.0 TMax - Total run time (s) [>=0.0] False UseSC - Use a super controller? (flag) 2 Mod_AmbWind - Ambient wind model (-) (switch) {1: high-fidelity precursor in VTK format, 2: one InflowWind module, 3: multiple instances of InflowWind module} 2 Mod_WaveField - Wave field handling (-) (switch) {1: use individual HydroDyn inputs without adjustment, 2: adjust wave phases based on turbine offsets from farm origin} 0 Mod_SharedMooring - Shared mooring system model (switch) {0: None, 3=MoorDyn}} --- SUPER CONTROLLER --- [used only for UseSC=True] "unused" SC_FileName - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} containing the Super Controller algorithms (quoated string) --- SHARED MOORING SYSTEM --- [used only for Mod_SharedMoor>0] "" SharedMoorFile - Name of file containing shared mooring system input parameters (quoted string) [used only when Mod_SharedMooring > 0] 0.04 DT_Mooring - Time step for farm-level mooring coupling with each turbine (s) [used only when Mod_SharedMooring > 0] --- AMBIENT WIND: PRECURSOR IN VTK FORMAT --- [used only for Mod_AmbWind=1] 3.0 DT_Low-VTK - Time step for low -resolution wind data input files; will be used as the global FAST.Farm time step (s) [>0.0] 0.1 DT_High-VTK - Time step for high-resolution wind data input files (s) [>0.0] "unused" WindFilePath - Path name to VTK wind data files from precursor (string) False ChkWndFiles - Check all the ambient wind files for data consistency? (flag) --- AMBIENT WIND: INFLOWWIND MODULE --- [used only for Mod_AmbWind=2 or 3] 2.2 DT_Low - Time step for low -resolution wind data interpolation; will be used as the global FAST.Farm time step (s) [>0.0] 0.1 DT_High - Time step for high-resolution wind data interpolation (s) [>0.0] 321 NX_Low - Number of low -resolution spatial nodes in X direction for wind data interpolation (-) [>=2] 81 NY_Low - Number of low -resolution spatial nodes in Y direction for wind data interpolation (-) [>=2] 31 NZ_Low - Number of low -resolution spatial nodes in Z direction for wind data interpolation (-) [>=2] -200.0 X0_Low - Origin of low -resolution spatial nodes in X direction for wind data interpolation (m) -400.0 Y0_Low - Origin of low -resolution spatial nodes in Y direction for wind data interpolation (m) 5.0 Z0_Low - Origin of low -resolution spatial nodes in Z direction for wind data interpolation (m) 10.0 dX_Low - Spacing of low -resolution spatial nodes in X direction for wind data interpolation (m) [>0.0] 10.0 dY_Low - Spacing of low -resolution spatial nodes in Y direction for wind data interpolation (m) [>0.0] 10.0 dZ_Low - Spacing of low -resolution spatial nodes in Z direction for wind data interpolation (m) [>0.0] 32 NX_High - Number of high-resolution spatial nodes in X direction for wind data interpolation (-) [>=2] 32 NY_High - Number of high-resolution spatial nodes in Y direction for wind data interpolation (-) [>=2] 37 NZ_High - Number of high-resolution spatial nodes in Z direction for wind data interpolation (-) [>=2] "IW.dat" InflowFile - Name of file containing InflowWind module input parameters (quoted string) --- WIND TURBINES --- 3 NumTurbines - Number of wind turbines (-) [>=1] [last 6 columns below used only for Mod_AmbWind=2 or 3] WT_X WT_Y WT_Z WT_FASTInFile X0_High Y0_High Z0_High dX_High dY_High dZ_High (m) (m) (m) (string) (m) (m) (m) (m) (m) (m) 0.0 0.0 0.0 "FFTest_WT1.fst" -70.0 -70.0 5.0 4.5 4.5 4.5 882.0 0.0 0.0 "FFTest_WT2.fst" 812.0 -70.0 5.0 4.5 4.5 4.5 1764.0 0.0 0.0 "FFTest_WT3.fst" 1694.0 -70.0 5.0 4.5 4.5 4.5 --- WAKE DYNAMICS --- 1 Mod_Wake - Switch between wake formulations {1:Polar, 2:Curl, 3:Cartesian} (-) (switch) 4.5 dr - Radial increment of radial finite-difference grid (m) [>0.0] 43 NumRadii - Number of radii in the radial finite-difference grid (-) [>=2] 138 NumPlanes - Number of wake planes (-) [>=2] 0.20 f_c - Cutoff (corner) frequency of the low-pass time-filter for the wake advection, deflection, and meandering model [recommended=1.28*U0/R] (Hz) [>0.0] or DEFAULT [DEFAULT=12.5/R, R estimated from dr and NumRadii, not recommended]

These are the DOF enabled in the ElastoDyn file:

---------------------- 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] True DrTrDOF - Drivetrain rotational-flexibility DOF (flag) True GenDOF - Generator DOF (flag) True 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)

For each turbine I'm using the baseline openfast input file.

jjonkman commented 4 months ago

Dear @domenicoruotolo,

I would suggest disabling features of the model to isolate the problem. If the oscillation is not tied to structural modes, I would expect the oscillations to remain if you disabled all structural degrees of freedom in ElastoDyn except GenDOF (to ensure that variable speed control remains). If the oscillation is driven by 3P, perhaps it is tied to the tower influence on rotor aerodynamics, which you could check by temporarily setting TwrPotent = 0 in AeroDyn.

Best regards,