-
Notifications
You must be signed in to change notification settings - Fork 171
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
Tum misalignment model #832
base: develop
Are you sure you want to change the base?
Conversation
… use with TUMLossTurbine operation model).
…all dummy misalignment in case both yaw and tilt are 0. This was causing a division by zero in the tests.
…n calling TUMLossTurbine.control_trajectory() so that rated power stays independent from air_density
floris/turbine_library/nrel_5MW.yaml
Outdated
@@ -29,31 +29,44 @@ operation_model: 'cosine-loss' | |||
### | |||
# Parameters needed to evaluate the power and thrust produced by the turbine. | |||
power_thrust_table: | |||
### Power thrust table parameters | |||
### General parameters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a heads up that these comments are used to automatically generate this page in the docs: https://nrel.github.io/floris/input_reference_turbine.html. The structure (number of hashes) and location relative to the key/value pairs does matter. If you haven't it's worthwhile to build the docs locally and see the result.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, my bad, thanks---I'll do that and adjust as needed
tests/conftest.py
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More and more, having yet another version of the inputs defined in this standalone class only for testing seems wasteful. I'm suggesting it be addressed here, but just pointing it out.
…l calls. Revert type_dec changes.
…els; may remove from iea10mw, nrel5mw subsequently.
Tests that are currently failing are expected; these are comparisons between the Cp/Ct data for the reference turbines and the basic power/thrust curves. We are working on a fix for this. |
Test are now fixed. The Cp/Ct surfaces for the reference wind turbines are not perfect matches to the reference thrust and power curves, so the tests do not attempt to assert this claim. However, the discrepancy is now clearly described in the documentation, and a warning is now raised when running with the
|
Thanks @sTamaroTum for the updated description---the documentation for the model is now complete. I've uploaded a couple of screenshots of compiled documentation here, but for further details, see the Controller-dependent Model section of docs/operation_models_user.ipynb. |
TUM misalignment model
This is a proposal to include the misalignment model developed by TUM to floris v4. The methodology is based on the preprint available currently at https://wes.copernicus.org/preprints/wes-2023-133/ .
The model is coded into simulation/turbine/operation_models.py . It consists of the usual power(), thrust(), axial_induction() functions. There are two extra functions called compute_local_vertical_shear() and control_trajectory().
The model requires a few new inputs that were added to the power_thrust_table in the yaml file. It also requires the cp-pitch-tsr curves for the turbine model considered. An .npz file is added to the turbine_library folder, as well as a file iea_3mw.yaml file ready for use with the model. This file refers to the IEA 3 MW reference turbine by Bortolotti et al. (2019). In the future, more wind turbine models could be added.
The model accepts power_setpoints inputs in watts to simulate derating.
The model allows also to obtain the pitch and tip speed ratio of the wind turbine. Right now the code is printing the values of tip speed ratio and pitch to screen. This could be removed for clarity, but get_pitch() and get_tsr() functions could be coded (?).
Related issue
Impacted areas of the software
simulation/turbine/operation_models.py
Additional supporting information
The model seem to work well with the examples, but it crashes at wind speeds higher than 18 m/s, because the operating tip-speed-ratio gets too low.
In the tum model, the tilt is negative when tower clearance is created. This seems conflicting with floris convention, so there is a sign change at the start of the power(), thrust() and axial_induction() functions.
Sorry if something is wrong, this is the first time I work with github.
Test results, if applicable