Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BeamDyn bug fixes and updates #109

Closed
wants to merge 40 commits into from
Closed

BeamDyn bug fixes and updates #109

wants to merge 40 commits into from

Conversation

rafmudaf
Copy link
Collaborator

@rafmudaf rafmudaf commented Apr 20, 2018

This pull request will merge significant updates to BeamDyn developed at Envision Energy. These updates have been tested and validated as shown below.

The following updates are included:

Issue 11

Sectional load calculations are fixed in commit 0829f84 at line 1569.

This issue is exposed by evaluating the results of the BeamDyn regression test case 5MW_Land_BD_DLL_WTurb. In the OpenFAST dev branch, the first node is at the root but the sectional loads do not match the root loads. Furthermore, the BeamDyn sectional loads do not match the ElastoDyn sectional loads. In this case, the blade root has 13.3 degrees of structural twist so the difference in loads between section 1 and root is related to the offset coordinate systems between blade local and blade reference.

The charts below compare the solutions of the NREL 5MW turbine regression test cases with ElastoDyn and BeamDyn. The left and right columns (ElastoDyn and BeamDyn solutions, respectively) are expected to match. The charts in the upper and lower rows (root and first section, respectively) are expected to differ in magnitude. However, a difference in the ElastoDyn and BeamDyn solution is clearly shown.

Note the difference in units: N vs kN.

issue11 001
issue11 002

The updated BeamDyn solutions demonstrate agreement between the sectional and root loads and are validated by ElastoDyn.

issue11 003
issue11 004

The OpenFAST regression test case using BeamDyn, 5MW_Land_BD_DLL_WTurb, does not currently output the sectional loads, so this bug was not exposed there and it does not require an updated baseline solution. However, the BeamDyn specific regression test bd_5MW_dynamic does require an update to the baselines as the sectional loads have been updated. The root and node 1 forces and moments are shown side by side with the corrected BeamDyn solutions below.

issue11 005
issue11 006

Issue 26

Initial translational velocity calculation is fixed at commit 97d1c2a.

The problems is exposed by running 5MW_Land_BD_DLL_WTurb with initial azimuth angle 0 and 120 from the OpenFAST dev branch. With an initial azimuth of 120 degrees, it is expected that the root moments would simply shift blade numbers in this pattern:

  • Blade 1 at azimuth 0 -> Blade 3 at azimuth 120
  • Blade 2 at azimuth 0 -> Blade 1 at azimuth 120
  • Blade 3 at azimuth 0 -> Blade 2 at azimuth 120

The solution from openfast/dev is shown in the charts below where the root moments do not shift as expected and a frequency variation is introduced in the rotor torque.
slide1

The following charts show that this pull request fixes the root moment blade shift and calculates a consistent rotor torque.

slide2

andrew-platt and others added 30 commits May 30, 2017 21:50
Moved some of the calculations that don't change at each node outside the node loop.
… the loop.

Also apparently added some write statements for figuring out what is going on wit p%uu0 versus p%QuadPt
A few COS and SIN functions were done in single precision, and they ended up causing spikes in BD simulations. Test26 now works in single precision like the double-precision version does!
- fixes for running FAST with BD and BD driver in single precision (should increase speed)
- fix for sectional and root load outputs in static case
- input distributed mesh is along the spline instead of the key-point line
- more code cleanup
- updated crvCompose to use vector math for readability
- updated BD driver for compilation in single precision
- roational velocity vector is now double precision; 
- the BD input file specified in the driver was defined relative to the working directory instead of the directory where the driver input file is located.
4 sets of equations should give same results, assuming the "pivot" is not zero. New implementation picks set of equations with largest pivot value, not just one that is slightly larger than 0. (The values are all bounded by 0 and 4 [or less].)
The initial translation velocity calculation didn't remove the location of the root node when taking the cross product with the rotational velocity. This fixes OpenFAST#26
- fixed initialization of PointLoad mesh (driver only)
- added variables and reorganized loops for optimization
- fixed internal-loads outputs (fixes OpenFAST#11)
- Note that OpenFAST#13 has also been fixed (in a previous commit)
- removed unused variables, including subroutine arguments
- removed duplicated code
- moved some computations into parameters for computational efficiency
a variable was implicitly defined (though it was defined correctly)
I took all of OpenFAST changes, and will modifiy a few issues I noticed when resolving differences later.
 call generic LAPACK_gesvd instead of specific one
I got tired of reading all the compiler warnings about these variables not being used in the Registry and about redefining NDEBUG in MAP++
Setting types with allocatable arrays inside them using the equals sign can cause severe problems on some compilers.
The curve-compose operation was implemented backwards, resulting in incorrect values if the initial rotation was not identity (steady-state simulations gave different mean values for the three blades)
Some instances of the static solve may have incorrectly reported an error.
This changes som comments in the code and some text printed to the summary file
@HaymanConsulting
Copy link
Contributor

Do the r-test case results (from this pull-request) which do not depend on BeamDyn match the baseline results? If not, have they been individually reviewed and accepted?

@rafmudaf rafmudaf closed this May 10, 2018
@rafmudaf rafmudaf deleted the dev branch May 10, 2018 17:11
@IAbda
Copy link
Contributor

IAbda commented Aug 10, 2018

Hey rafmudaf,
Can you show a plot of the BeamDyn computed blade moments (flap or edgewise) as a function of blade span? Say mean values. Not only at the root. Thank you.

@rafmudaf
Copy link
Collaborator Author

Hi @IAbda,
What is the context for this request? Is it related to this pull request or is it more appropriate as an issue or on another pull request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants