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

OpenFAST Aerodynamic Map Generator #1733

Merged
merged 26 commits into from
Aug 22, 2023
Merged

Conversation

bjonkman
Copy link
Contributor

@bjonkman bjonkman commented Aug 12, 2023

Feature or improvement description
Envision Energy and NREL collaborated to add capability to generate aerodynamic maps using OpenFAST. This feature computes a steady-state solution with AeroDyn (15) and ElastoDyn, using the following functional requirements:

  • Rotor only
  • No tilt/yaw/skew
  • No gravity
  • Steady/uniform inflow, no shear
  • Include cone and optional blade flexibility
  • Specify rotor speed, and range of TSRs (or wind speeds) and blade-pitch angles

To run this new feature, you will need to call OpenFAST with the -steadystate flag:

openfast.exe -steadystate steady_state_input_file

and will need a new input file for the steady-state driver. An example input file is found at ./docs/source/user/aeromap/examples/AeroMap.dvr

Related issue, if one exists
This is a follow-up to #1631 and #1715, which added the module-level changes for this feature.

Impacted areas of the software
Linearization, particularly in AeroDyn, ElastoDyn, and BeamDyn modules.

Additional supporting information
The BeamDyn aeromaps have not been verified. There is a warning if you choose to use BeamDyn with the aeromap feature, but it will attempt to run and possibly give incorrect answers.

Test results, if applicable
A new 5MW_Land_AeroMap test has been added to the regression testing. Example plots from the new test are shown below. Note that this is a very coarse model, used for testing purposes only:
image

bjonkman added 25 commits July 25, 2023 11:06
`WriteModuleLinearMatrices` is general and can be called by all modules that have linearization routines.
This allows more memory to be allocated when writing the binary file (because we've deallocated things when closing the individual modules).
also fix some comments
Since the trim solution seems to always converge on the first step when NLinTimes == 1 (see OpenFAST#857), I added a warning and overwrite NLinTimes to be 2 instead. This should be removed when OpenFAST#857 is fixed
Note: This does not yet have the changes for AeroDyn in it.
- update ideal beam cases to run in single precision
- don't build controllers for linearization cases
- update some documentation
Update the rest of the OpenFAST "InflowOn..." inputs to AeroDyn
Copy link
Contributor

@ebranlard ebranlard left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing that. I've looked at part of the code, and I don't have major comments (just annoying ones). I like that the r-test has a plotting script with it.

I'm going to compile and test it now.

modules/openfast-library/src/FAST_Subs.f90 Outdated Show resolved Hide resolved
modules/openfast-library/src/FAST_Subs.f90 Outdated Show resolved Hide resolved
modules/openfast-library/src/FAST_Subs.f90 Show resolved Hide resolved
modules/openfast-library/src/FAST_Subs.f90 Show resolved Hide resolved
modules/openfast-library/src/FAST_Lin.f90 Show resolved Hide resolved
reg_tests/executeOpenfastRegressionCase.py Outdated Show resolved Hide resolved
@ebranlard
Copy link
Contributor

I tested the code and it works great. Potentially CompServo could be set to 0 in the .fst.

- remove comment lines that look like git merge conflict lines
- move some SS parameters to FAST_Types (though that didn't solve the issue)
- change extension on aero map input files from ".inp" to ".dvr".
@ebranlard ebranlard self-requested a review August 21, 2023 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants