4. 测风数据统计分析:平均风速、风向玫瑰图、风切变指数、湍流强度计算
各位同行,大家好。我是老张,干风电资源评估这行有十几年了。今天咱们聊聊测风数据拿到手之后,怎么把它“榨干”——也就是做统计分析。
很多人觉得,数据拉回来,算个平均风速就完事了。其实不然。你想想看,一个风电场能不能赚钱,靠的就是这些基础统计量。我见过太多项目,前期数据没吃透,后期运维叫苦连天。所以,这一节咱们把四个核心指标掰开揉碎了讲。
4.1 平均风速:最基础也最骗人
平均风速,说白了就是一段时间内风速的平均值。但这里有个坑——算术平均和能量平均是两码事。
我个人习惯,做资源评估时,优先看能量平均风速。为什么?因为风机的发电量跟风速的三次方成正比。算术平均风速8m/s,能量平均风速可能已经到9m/s了。你按算术平均去算发电量,那误差可就大了去了。
算术平均风速:V_avg = (1/N) * ΣV_i
能量平均风速:V_e = ( (1/N) * ΣV_i³ )^(1/3)
我在内蒙古一个项目上就吃过这个亏。当时用算术平均算出来年发电量挺乐观,结果实际运行下来差了8%。后来复盘才发现,就是平均风速的算法没选对。从那以后,我所有项目的资源评估报告里,都会同时列出这两个值。
4.2 风向玫瑰图:风从哪里来?
风向玫瑰图,是风电场微观选址的“地图”。它告诉你,风主要从哪个方向吹过来。这直接决定了风机排布、机位选择,甚至塔筒高度。
画这个图,我一般用16个方位(N、NNE、NE、ENE、E……)。数据来源就是测风塔上风向标记录的10分钟平均风向。
嗯,这里要注意:风向数据一定要做“静风”处理。风速小于启动风速(比如3m/s)时,风向数据是无效的。我曾经见过一个项目,把静风时段的风向也算进去了,结果玫瑰图乱七八糟,主风向完全看不出来。
画图工具方面,我推荐用Python的windrose库,或者直接用WAsP、Windographer这些专业软件。下面给一个简单的Python代码片段:
import windrose
import matplotlib.pyplot as plt
# 假设 wind_speed 和 wind_direction 是已经清洗好的数据
ax = windrose.WindroseAxes.from_ax()
ax.bar(wind_direction, wind_speed, normed=True, opening=0.8, edgecolor='white')
ax.set_legend()
plt.show()
4.3 风切变指数:高度不同,风速不同
风切变指数,描述的是风速随高度变化的规律。说白了,就是塔筒越高,风越大。但这个“大”的程度,每个项目都不一样。
计算公式很简单:
其中V1、V2是高度H1、H2处的风速。α值一般在0.1到0.4之间。平坦地形α小,复杂地形α大。
我个人习惯,至少用三个高度层的数据来算α。比如测风塔有10m、50m、80m三层,我会分别算10-50m和50-80m的α值。如果两个值差异很大,说明这个场地的风切变不稳定,需要进一步分析。
我记得在甘肃一个项目上,白天α是0.12,晚上α能到0.25。为什么?因为夜间大气稳定,近地面风速衰减快。这种情况下,如果你只用一个α值去推算轮毂高度风速,那白天和晚上的误差会非常大。
4.4 湍流强度:风有多“乱”?
湍流强度,是衡量风速波动剧烈程度的指标。它对风机疲劳载荷、发电量都有直接影响。湍流强度高了,风机容易“累坏”,寿命会缩短。
计算公式:
其中σ是风速的标准差,V_avg是平均风速。I值一般小于0.2。超过0.25就算高湍流了,选风机时要特别小心。
我处理过一个海上风电项目,湍流强度只有0.08左右,非常平稳。但到了内陆山地项目,湍流强度经常超过0.2。为什么?因为地形复杂,气流被山体扰动,形成乱流。
这里有个关键点:湍流强度跟风速有关。低风速时,湍流强度往往偏高;高风速时,湍流强度趋于稳定。所以,我一般会画一张“湍流强度-风速”散点图,看看趋势。
4.5 实战:用Python一键计算
说了这么多理论,咱们来点实际的。下面是我常用的一个Python脚本,可以同时计算平均风速、风向玫瑰图、风切变指数和湍流强度。
import pandas as pd
import numpy as np
import windrose
import matplotlib.pyplot as plt
# 读取数据
df = pd.read_csv('wind_data.csv')
# 清洗数据:剔除静风和异常值
df = df[df['ws'] > 3] # 只保留风速大于3m/s的数据
# 计算平均风速
v_avg = df['ws'].mean()
v_e = (df['ws']**3).mean()**(1/3)
print(f'算术平均风速: {v_avg:.2f} m/s')
print(f'能量平均风速: {v_e:.2f} m/s')
# 计算湍流强度
df['ti'] = df['ws_std'] / df['ws']
ti_avg = df['ti'].mean()
print(f'平均湍流强度: {ti_avg:.3f}')
# 计算风切变指数(假设有10m和50m两层数据)
v10 = df['ws_10m'].mean()
v50 = df['ws_50m'].mean()
alpha = np.log(v50/v10) / np.log(50/10)
print(f'风切变指数: {alpha:.3f}')
# 绘制风向玫瑰图
ax = windrose.WindroseAxes.from_ax()
ax.bar(df['wd'], df['ws'], normed=True, opening=0.8)
ax.set_legend()
plt.show()
这个脚本我用了好几年,基本能满足90%的项目需求。当然,实际项目中数据量更大,可能需要做更精细的清洗和插值处理。
4.6 知识体系总览
最后,我用一张图把这一节的内容串起来。你一看就明白,这四个指标是怎么相互关联的。
好了,这一节的内容就到这里。平均风速、风向玫瑰图、风切变指数、湍流强度,这四个指标是资源评估的“四大金刚”。你只要把它们吃透了,后面的发电量计算、微观选址,都会顺手很多。
记住一句话:数据不会骗人,但人会算错。多花点时间在统计分析上,比后期去现场补测数据要划算得多。
公众号:蓝海资料掘金营,微信deep3321