4. 测风数据处理与分析:数据完整性检查、平均风速与标准差计算、威布尔分布拟合、风功率密度计算
好,咱们直接进入正题。测风数据拿到手,第一件事不是急着算功率,而是先看看这数据能不能用。我见过不少新手,上来就把数据往软件里一丢,结果算出来的结果跟实际发电量差了十万八千里。说白了,数据质量不过关,后面全是白搭。
4.1 数据完整性检查
数据完整性检查,听起来挺唬人,其实就是看看数据有没有缺胳膊少腿。你想想看,如果某个月的数据缺了一半,那这个月的平均风速还能信吗?
我个人习惯,拿到数据后先做三件事:
- 时间戳检查:看看数据记录是否连续,有没有跳点。比如10分钟一个数据点,突然从12:00跳到了13:00,中间缺了5个点,这就得标记出来。
- 无效值剔除:风速不可能为负,也不可能超过60m/s(除非台风,但那是极端情况)。我一般把风速小于0或大于40m/s的数据直接标红。
- 完整率统计:国标要求有效数据完整率不低于90%。如果低于这个数,我建议你重新考虑这个测风塔的位置。
这里给个简单的检查逻辑,用Python写的话大概这样:
# 数据完整性检查示例
import pandas as pd
df = pd.read_csv('wind_data.csv')
# 检查时间间隔是否均匀
time_diff = df['timestamp'].diff().value_counts()
print('时间间隔分布:', time_diff)
# 剔除异常值
df = df[(df['wind_speed'] >= 0) & (df['wind_speed'] <= 40)]
# 计算完整率
completeness = len(df) / expected_points * 100
print(f'数据完整率:{completeness:.1f}%')
4.2 平均风速与标准差计算
平均风速好理解,就是一段时间内风速的平均值。但标准差很多人容易忽略。标准差反映的是风速的波动程度——说白了,就是风稳不稳定。
我举个例子:两个场址,平均风速都是7m/s。但一个标准差是2,另一个是4。你猜哪个更适合风电?答案是标准差小的那个。因为风速波动小,风机出力更平稳,对电网更友好,机组疲劳载荷也更小。
计算方式很简单:
- 平均风速:所有风速数据求和除以数据个数
- 标准差:每个数据与平均值的差的平方和,除以数据个数,再开方
嗯,这里要注意:我们通常用10分钟平均风速来做统计。为什么是10分钟?因为这是国际标准,也是风机认证的标准时间尺度。我见过有人用1小时平均,结果把很多阵风信息给平滑掉了,算出来的发电量偏保守。
4.3 威布尔分布拟合
威布尔分布,说白了就是用一个数学曲线来描述风速的分布规律。为什么不用实际数据直接画图?因为实际数据只代表测风那几年的情况,而我们要评估的是未来20年的风资源。威布尔分布给了我们一个外推的工具。
威布尔分布有两个参数:
- 形状参数k:描述风速分布的集中程度。k越大,风速越集中;k越小,风速越分散。一般风电场的k值在1.5到3之间。
- 尺度参数A:与平均风速正相关。A越大,平均风速越高。
拟合方法我推荐用最大似然估计(MLE),比最小二乘法更稳定。我在项目中对比过,MLE对极端值的敏感度更低,拟合出来的曲线更符合实际。
# 威布尔分布拟合示例
from scipy.stats import weibull_min
import numpy as np
# 假设风速数据存储在 wind_speeds 数组中
params = weibull_min.fit(wind_speeds, floc=0)
k, loc, A = params # loc通常为0
print(f'形状参数 k = {k:.2f}')
print(f'尺度参数 A = {A:.2f}')
# 验证:计算平均风速
mean_from_weibull = A * np.math.gamma(1 + 1/k)
actual_mean = np.mean(wind_speeds)
print(f'威布尔推算平均风速:{mean_from_weibull:.2f} m/s')
print(f'实际平均风速:{actual_mean:.2f} m/s')
你可能会问:拟合出来的平均风速和实际平均风速不一样怎么办?其实很正常,因为威布尔分布是对真实分布的近似。如果偏差超过5%,我建议你检查一下数据,或者试试双参数威布尔。
4.4 风功率密度计算
风功率密度,这才是真正衡量风资源潜力的指标。平均风速高不代表风功率密度大,因为风功率与风速的立方成正比。说白了,风速8m/s的风,能量是4m/s的8倍(2的立方)。
计算公式:
风功率密度 = 0.5 × 空气密度 × 风速³的平均值
注意,这里是风速立方的平均值,不是平均风速的立方。这两个差别很大。我算过一笔账:如果平均风速是6m/s,但风速分布比较分散,那么风速立方的平均值可能比平均风速的立方高出20%-30%。
空气密度也是个变量。海拔越高,空气越稀薄,风功率密度越低。我在云南一个2000米海拔的项目上,空气密度只有海平面的80%左右,同样的风速,发电量直接打八折。
实际计算时,我通常按季节分开算:
| 季节 | 平均风速(m/s) | 风功率密度(W/m²) | 占比 |
|---|---|---|---|
| 春季 | 7.2 | 385 | 28% |
| 夏季 | 5.8 | 210 | 15% |
| 秋季 | 6.5 | 290 | 22% |
| 冬季 | 8.1 | 520 | 35% |
你看,冬季风功率密度是夏季的两倍多。这就是为什么北方风电场的发电量季节性差异那么大。做项目时,一定要考虑季节性调峰的问题。
最后,我把这四步的逻辑串起来,画了张图,方便你理解整个流程:
这四步走完,你对这个场址的风资源就有了一个比较全面的认识。记住,数据是死的,但分析方法是活的。每个项目都有它的特殊性,别生搬硬套。