NREL / OpenOA

This library provides a framework for assessing wind plant performance using operational assessment (OA) methodologies that consume time series data from wind plants. The goal of the project is to provide an open source implementation of common data structures, analysis methods, and utility functions relevant to wind plant OA.
https://openoa.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
194 stars 63 forks source link

Static Yaw Error analysis example run with the Cubico data #277

Open charlie9578 opened 9 months ago

charlie9578 commented 9 months ago

I'd like to make it so that the Cubico dataset can be used in the Static Yaw Misalignment analysis.

RHammond2 commented 8 months ago

Let's see where #276 goes and take it from there. Another thought is to modify the Cubico example notebook to be a full analysis on the Cubico data, rather than mimicking the AEP functionality but with different data. What are your thoughts on this idea?

ejsimley commented 8 months ago

Good idea to include the Cubico wind plants in the yaw misalignment analysis. This could be added to the yaw misalignment notebook, or to an expanded Cubico notebook that Rob suggested, or as a separate notebook. I kind of like the first option, but would be worth thinking more about it.

charlie9578 commented 8 months ago

So I've had a play, and have a working example

I'm thinking to maybe explore alternative methods to calculate the SYE, before creating a new notebook, but I think the result is useful either way, as demonstrates a limitation with the current method.

Any thoughts?

charlie9578 commented 7 months ago

I've done some initial experimentation using the average site wind speed, and also average site power, for both binning and normalising the turbine power. This seems to show much more realistic yaw misalignments, although not really possible to validate. The code still needs tidying up and functionising, but can see the work in progress at working example.

I'm thinking if this approach works, then we can focus on a very clear challenge to improve this methodology (e.g. in the WeDoWind ODE group), which would be to estimate the wind speed and/or power at a target turbine, without using data from that turbine.

ejsimley commented 5 months ago

Hi @charlie9578, based on your working example you shared above (and discussions at WeDoWind ODE meetings), I think it would be great to include the options of using a site-average wind speed for wind speed binning (possibly excluding the wind speed of the turbine of interest?) and normalizing power by the site-average power. Then we could talk about adding to the example 7 notebook to highlight how these new approaches yield more realistic SYE estimates for Penmanshiel.

I could try to work on updating the SYE method to include these options, but unfortunately I wouldn't be able to prioritize this now. We'd greatly appreciate a PR to address this if you are interested in doing that. Let me know if you'd like to discuss how to best update the code and examples (and how we could distribute the work) sometime.

Thanks!

charlie9578 commented 5 months ago

Hi @ejsimley, yes, I'd be happy to put together a pull request. I'll work on something and then get back to you. Thanks, Charlie

CFV-Exus commented 2 months ago

Hey all,

For the static yaw misalignment example, I managed to run Kelmarsh wind farm (all 6 WTGs, year 2022) as follow.

yaw_mis = StaticYawMisalignment( plant=project, turbine_ids=None, UQ=False ) yaw_mis.run( num_sim=1, ws_bins=[5.0, 6.0, 7.0, 8.0, 9.0], ws_bin_width=1.0, vane_bin_width=1.0, min_vane_bin_count=50, max_abs_vane_angle=25.0, pitch_thresh=pitch_threshold, max_power_filter=0.95, power_bin_mad_thresh=power_bin_mad_thresh, use_power_coeff=True )

However, when I include both 4.0 and 10.0 in the ws_bin argument, I get the following error.

ValueError:ydatamust not be empty!

Do you know why?