4、测风数据处理与订正:数据完整性检查与插补方法、异常值识别与剔除、风速传感器的结冰订正、不同高度风速的垂直外推
各位同行,咱们今天聊聊测风数据。说实话,干风能这行这么多年,我见过太多项目因为数据基础没打好,后面算发电量算得天花乱坠,结果一投产就露馅。数据是风资源评估的命根子,但原始数据很少是完美的。今天我就把处理数据的几个关键环节掰开揉碎了讲。
4.1 数据完整性检查与插补方法
拿到测风数据的第一件事,不是急着算平均风速,而是先看看数据全不全。我习惯先拉一个时间序列图,一眼就能看出有没有大段的缺失。
完整性检查的核心指标:
- 数据回收率:有效数据占总时长的比例。行业标准一般要求不低于90%。
- 连续缺失时长:单次缺失超过6小时,就要特别关注。
- 季节性分布:看看缺失是不是集中在某个季节,比如冬季结冰期。
重要提醒:数据回收率低于80%的测风塔,我个人建议直接废弃。你想想看,缺了五分之一的数据,再怎么插补也是猜,误差会大到无法接受。
插补方法,我常用的有三种:
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 线性插值 | 短时缺失(<2小时) | 简单快速 | 无法反映真实波动 |
| 相关法(参考塔) | 有邻近测风塔 | 精度较高 | 需要参考塔数据 |
| MCP(Measure-Correlate-Predict) | 长期数据插补 | 可结合长期气象站 | 计算复杂 |
我在项目中遇到过这样的情况:一个山地项目,测风塔在冬季连续缺了3天数据。用线性插值补出来,风速曲线平得像条直线,明显不对。后来我调用了20公里外一个气象站的同期数据,做了相关回归,才把那段数据补得比较合理。
我的小技巧:插补完成后,一定要做一次“回检”。把已知数据人为挖掉一块,用你的方法去补,然后对比真实值和插补值的差异。误差在5%以内,才算合格。
4.2 异常值识别与剔除
异常值这东西,说白了就是数据里的“坏点”。可能是传感器故障、雷击干扰,或者鸟类撞到风速计上。嗯,这里要注意,不是所有看起来大的值都是异常值——强风天气下,风速本来就大。
我常用的识别方法:
- 阈值法:超出物理极限的值直接剔除。比如风速超过60m/s,或者风向在0-360°之外。
- 标准差法:以3倍标准差为界,超出者视为异常。这个方法对正态分布的数据比较有效。
- 变化率法:相邻两个10分钟平均风速变化超过10m/s,基本可以判定为异常。为什么?因为大气运动没那么剧烈。
警告:我曾经犯过一个错误——用标准差法剔除了一大批数据,后来发现那段时间正好在过台风。那些“异常值”其实是真实的风速极值。所以,剔除之前一定要结合天气日志来看,别把宝贝当垃圾扔了。
剔除后的处理:异常值剔除后,会留下空缺。这时候再用4.1节的方法去插补。记住,先剔除,再插补,顺序不能乱。
4.3 风速传感器的结冰订正
结冰是北方项目的噩梦。传感器一结冰,测出来的风速就偏低,甚至直接卡死。我见过一个东北的项目,冬季测风数据比实际偏低30%以上,按那个数据算发电量,简直是在开玩笑。
结冰的识别特征:
- 风速长时间维持在极低值(比如<0.5m/s),但温度在-5°C以下且湿度>80%。
- 风向长时间不变,或者变化极其规律。
- 与邻近未结冰传感器数据出现明显背离。
订正方法,我推荐两种:
- 温度-湿度阈值法:当温度低于-2°C且相对湿度高于85%时,判定为结冰时段。然后用同期未结冰的传感器数据或MCP方法进行替代。
- 功率曲线反推法:如果风电场已经部分运行,可以用机舱风速计和实际发电功率反推来风风速。这个方法精度高,但需要机组运行数据。
核心原则:结冰订正不是“猜”,而是基于物理规律和关联数据的合理推断。我建议在订正报告中明确标注哪些时段是结冰订正过的,方便后续审核。
4.4 不同高度风速的垂直外推
测风塔通常只在10m、50m、70m、80m、100m等几个高度安装传感器。但风机轮毂高度可能是90m、120m甚至更高。这时候就需要垂直外推。
最常用的方法是风切变指数法:
# 风切变指数计算示例
import numpy as np
# 已知两个高度的风速
z1 = 50 # 高度1,单位m
v1 = 7.5 # 高度1的风速,单位m/s
z2 = 80 # 高度2,单位m
v2 = 8.2 # 高度2的风速,单位m/s
# 计算风切变指数alpha
alpha = np.log(v2/v1) / np.log(z2/z1)
print(f"风切变指数 alpha = {alpha:.3f}")
# 外推到轮毂高度90m
z_hub = 90
v_hub = v1 * (z_hub / z1) ** alpha
print(f"轮毂高度90m风速 = {v_hub:.2f} m/s")
你想想看,这个alpha值很关键。平坦地形一般在0.1-0.2,复杂山地可能到0.3-0.4。我见过一个项目,直接用0.14的默认值去外推,结果实际风切变是0.28,轮毂高度风速算低了15%。
我的建议:不要只用两个高度算alpha。如果有3个以上高度的数据,用最小二乘法拟合,得到更稳定的风切变指数。另外,白天和夜间的alpha值可能差异很大,最好分时段计算。
垂直外推的注意事项:
- 外推高度不宜超过测风塔最高传感器高度的1.5倍。超过这个范围,误差会急剧增大。
- 如果测风塔附近有树林或建筑物,要考虑粗糙度变化对风廓线的影响。
- 对于海上风电,海面粗糙度随波高变化,风切变指数通常比陆上小。
知识体系总览
下面这张图,是我梳理的本章核心逻辑。数据从原始状态到可用状态,每一步都有对应的处理方法。
这张图把整个流程串起来了。从原始数据出发,先做完整性检查,然后分两条线走——数据缺失的做插补,数据异常的做剔除。两条线汇合后,再做结冰订正,最后垂直外推到轮毂高度。每一步都环环相扣,漏掉任何一环,最终结果都可能偏差很大。
公众号:蓝海资料掘金营,微信deep3321