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

Bug fix: revise verify_convergence to support multiple wind speeds #385

Merged

Conversation

Bartdoekemeijer
Copy link
Collaborator

Feature or improvement description

This feature fixes bug #383 where verify_convergence does not work if more than one wind speed is defined in FLORIS.

Related issue, if one exists

Issue #383

Impacted areas of the software

Yaw optimization.

Additional supporting information

In the past, we would first locate which turbines have a nonzero yaw angle and at what wind directions and wind speeds. We would only check the wind farm's power production for those turbines and conditions with and without yaw misalignment. With the grid-style way FLORIS is calculated, it's not possible to isolate exactly which wind direction/speed combinations we need to evaluate without doing a one-by-one loop, which is slow. Hence, the current method is simplified and just evaluates all atmospheric conditions num_turbs times, and for each atmospheric condition set we reset one of the turbine's yaw angle to its baseline value and calculate the power production. This means we may do many more calculations than necessary, but it does keep things in gridded format.

Test results, if applicable

Running example 09_opt_yaw_multiple_ws.py with verify_convergence=False yields:
image

In which we see nonzero yaw angles at high wind speeds of 15-17 m/s, due to numerical precision. These yaw angles just shift the cp value ever so slightly that the wind farm power is slightly higher. With verify_convergence=True, it yields:
image

Though, I have seen that the computation time can increase by 10-20% using verify_convergence=True. Hence, it still defaults to False and it's up to the user to decide whether one would like to include this functionality. Perhaps once the timeseries calculation functionality for FLORIS is implemented (#299) I can restructure this code to more efficiently evaluate a minimal set of conditions.

@Bartdoekemeijer
Copy link
Collaborator Author

Also fixed the example case and added explanation on how verify_convergence should be used. Once @paulf81 approves, I think this is ready to be merged in.

Copy link
Collaborator

@paulf81 paulf81 left a comment

Choose a reason for hiding this comment

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

This looks good to me @Bartdoekemeijer , I tested example 09 and looks great

@Bartdoekemeijer Bartdoekemeijer merged commit f20dfc4 into NREL:develop Mar 11, 2022
@Bartdoekemeijer Bartdoekemeijer deleted the feature/fix_verify_convergence branch March 11, 2022 19:22
@rafmudaf rafmudaf mentioned this pull request Mar 31, 2022
5 tasks
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.

3 participants