pvlib / pvlib-python

A set of documented functions for simulating the performance of photovoltaic energy systems.
https://pvlib-python.readthedocs.io
BSD 3-Clause "New" or "Revised" License
1.13k stars 955 forks source link

Expression for calculating wind speed at different heights #2118

Open IoannisSifnaios opened 2 weeks ago

IoannisSifnaios commented 2 weeks ago

Most times, the wind speed provided in weather files is measured at a height of 10 m. However, in many cases it is required to estimate the wind speed at panel height. Which equation should be used in order to do this?

I found this issue (#1814), which mentions an equation from a Sandia report (I couldn't find the report, though... some help from Sandia people? @cwhanse @kandersolar). This is what is mentioned: Estimate wind speed at module height - use technique developed by menicucci and hall (sand84-2530) */ windmd=ws2*pow(height/9.144,0.2) + 0.0001

And then there is the expression used in wind engineering, described here (for a more official reference, it is also mentioned in the book by Siegfried Heier (2014), Grid Integration of Wind Energy Conversion Systems (publisher: Wiley))

I am willing to take up the task of making the PR, etc., but first, I would like to know your thoughts on which expression should be added (maybe both?) or if there is some other equation you think is more relevant.

kandersolar commented 2 weeks ago

Here is a public copy of SAND 84-2530: https://web.archive.org/web/20230418202422/https://www2.jpl.nasa.gov/adv_tech/photovol/2016CTR/SNL%20-%20Est%20Wind%20Speed%20vs%20Height_1985.pdf

cwhanse commented 2 weeks ago

A word of caution here: some temperature model coefficients (e.g. those for the SAPM) implicitly account for the difference between anemometer and PV module height above ground. They do so by regressing measured module temperature to wind speed at 10m.

The proposed function is worth adding but I would be cautious about suggesting it needs to be in a PV modeling pipeline.

AdamRJensen commented 1 week ago

A word of caution here: some temperature model coefficients (e.g. those for the SAPM) implicitly account for the difference between anemometer and PV module height above ground. They do so by regressing measured module temperature to wind speed at 10m.

Great insight @cwhanse. Let's add this info in a warning admonition for the proposed wind speed function.

Probably worth checking out if there is similar functionality in metpy.

IoannisSifnaios commented 1 week ago

Good point, @cwhanse! From a quick search, I can see that only the SAPM models and the generic_linear require the wind speed at 10 m as an input. The rest of the temperature models either require wind speed at module height or don't specify (e.g., Fuentes), but I would still imagine it requires at module height...

mikofski commented 1 week ago

I agree with @cwhanse we we need to tread cautiously because in my experience there is already a lot of misunderstanding about correlation coefficients and their relation to wind speed height measurements.

  1. I emphasize what Cliff says: correlation coefficients like Uc = 25 W/m2/K and Uv = 1.2 W/m2/K/(m/s) require and depend on wind speed measured at 10-m. So if wind speeds were measured at array height, eg 2-m, a function such as the one proposed could be helpful in estimating wind speed at 10-m
  2. Ideally I would prefer to see a discussion added to the documentation explaining why free stream velocity measurements are preferred and used in temperature correlations, before adding new functions
  3. I have most frequently seen a power law but there is often debate over what exponent to use. Eg: Uw(10m) = Uw(2m)*(10m/2m)^n where n is the exponent. Other methods may be more accurate but I’m not familiar with them. I also don’t have a reference for this or know the history why it’s so prevalent
adriesse commented 1 week ago

This is my view on the subject:

B. Wind speed

Each model has a coefficient that multiplies wind speed. In practice, wind speed increases with height above the ground in a non-linear manner, therefore the model coefficients are valid for a specific combination of module installation height and wind speed measurement height. The Faiman model coefficients and NOCT values are typically determined using wind speed measured near module height, but the modules are not necessarily near ground level. SAPM and PVsyst coefficients are specified for use with wind speed data at the standard 10 m height, but that information is only useful if the module height corresponding to those coefficients is also clearly specified.

To accommodate a different installation or measurement height, either the wind speed data or the wind speed coefficient can be adjusted. The basis for such an adjustment is often either the log law or the power law which describe the wind speed profile as a function of height using an empirical parameter related to the surface roughness; however, these profiles are not applicable close to the ground or close to the level of the objects that contribute to the roughness. [12] For the adjustment from 10 m to 2 m, a nominal height for a ground-mounted array, some reduction ratios found in the literature are: 0.51 [7], 0.56 [13], 0.67 [14] and 0.725 [15]. This range gives an indication of the level of uncertainty associated with such adjustments.

The SAM NOCT model uses a predetermined factor of 0.51 to reduce 10 m wind speed data to ground-mounted, module-level wind speed, but unfortunately the origin of this value is undocumented. The need for adjustments with other models to or from different heights should be evaluated by the user of the models on a case by case basis taking into consideration the both the source of the empirical parameters and the source of the wind speed data.

mikofski commented 1 week ago

Thanks Anton! Can we get those references?

adriesse commented 1 week ago

Here is a link to my temperature model equivalence paper that contains the above excerpt: https://www.osti.gov/biblio/2003640

mikofski commented 1 week ago

Thanks Anton. So I think there is a case for pvlib to include an expression to account for wind speed height measurement, but IMO. I still think the documentation takes precedence so that folks don’t misuse it. In particular I’d like to see a table of weather resources that shows the wind speed height. Eg ground campaigns most often measure at about 3-m while satellite is usually at 10-m. Also a corresponding table of temperature models. Finally some gallery examples that show when and how an adjustment should be made. My personal preference is to adjust the wind coefficient rather than the wind speed measurements which is associative (ie: Uv’ * Uw = Uv * adj * Uw = Uv * Uw’ in which prime indicates adjustment. Also a discussion of uncertainty would be useful.

adriesse commented 1 week ago

I think this is another area where the PV modellers are just muddling along. Someone needs to access a large amount of data and do some thorough analysis in order to develop some well-founded correlations that are useful for PV systems!