4、测风数据处理与订正:数据完整性检查与插补方法、异常值识别与剔除、风速传感器的结冰订正、不同高度风速的垂直外推

各位同行,咱们今天聊聊测风数据。说实话,干风能这行这么多年,我见过太多项目因为数据基础没打好,后面算发电量算得天花乱坠,结果一投产就露馅。数据是风资源评估的命根子,但原始数据很少是完美的。今天我就把处理数据的几个关键环节掰开揉碎了讲。

4.1 数据完整性检查与插补方法

拿到测风数据的第一件事,不是急着算平均风速,而是先看看数据全不全。我习惯先拉一个时间序列图,一眼就能看出有没有大段的缺失。

完整性检查的核心指标:

  • 数据回收率:有效数据占总时长的比例。行业标准一般要求不低于90%。
  • 连续缺失时长:单次缺失超过6小时,就要特别关注。
  • 季节性分布:看看缺失是不是集中在某个季节,比如冬季结冰期。

重要提醒:数据回收率低于80%的测风塔,我个人建议直接废弃。你想想看,缺了五分之一的数据,再怎么插补也是猜,误差会大到无法接受。

插补方法,我常用的有三种:

方法 适用场景 优点 缺点
线性插值 短时缺失(<2小时) 简单快速 无法反映真实波动
相关法(参考塔) 有邻近测风塔 精度较高 需要参考塔数据
MCP(Measure-Correlate-Predict) 长期数据插补 可结合长期气象站 计算复杂

我在项目中遇到过这样的情况:一个山地项目,测风塔在冬季连续缺了3天数据。用线性插值补出来,风速曲线平得像条直线,明显不对。后来我调用了20公里外一个气象站的同期数据,做了相关回归,才把那段数据补得比较合理。

我的小技巧:插补完成后,一定要做一次“回检”。把已知数据人为挖掉一块,用你的方法去补,然后对比真实值和插补值的差异。误差在5%以内,才算合格。

4.2 异常值识别与剔除

异常值这东西,说白了就是数据里的“坏点”。可能是传感器故障、雷击干扰,或者鸟类撞到风速计上。嗯,这里要注意,不是所有看起来大的值都是异常值——强风天气下,风速本来就大。

我常用的识别方法:

  1. 阈值法:超出物理极限的值直接剔除。比如风速超过60m/s,或者风向在0-360°之外。
  2. 标准差法:以3倍标准差为界,超出者视为异常。这个方法对正态分布的数据比较有效。
  3. 变化率法:相邻两个10分钟平均风速变化超过10m/s,基本可以判定为异常。为什么?因为大气运动没那么剧烈。

警告:我曾经犯过一个错误——用标准差法剔除了一大批数据,后来发现那段时间正好在过台风。那些“异常值”其实是真实的风速极值。所以,剔除之前一定要结合天气日志来看,别把宝贝当垃圾扔了。

剔除后的处理:异常值剔除后,会留下空缺。这时候再用4.1节的方法去插补。记住,先剔除,再插补,顺序不能乱。

4.3 风速传感器的结冰订正

结冰是北方项目的噩梦。传感器一结冰,测出来的风速就偏低,甚至直接卡死。我见过一个东北的项目,冬季测风数据比实际偏低30%以上,按那个数据算发电量,简直是在开玩笑。

结冰的识别特征:

  • 风速长时间维持在极低值(比如<0.5m/s),但温度在-5°C以下且湿度>80%。
  • 风向长时间不变,或者变化极其规律。
  • 与邻近未结冰传感器数据出现明显背离。

订正方法,我推荐两种:

  1. 温度-湿度阈值法:当温度低于-2°C且相对湿度高于85%时,判定为结冰时段。然后用同期未结冰的传感器数据或MCP方法进行替代。
  2. 功率曲线反推法:如果风电场已经部分运行,可以用机舱风速计和实际发电功率反推来风风速。这个方法精度高,但需要机组运行数据。

核心原则:结冰订正不是“猜”,而是基于物理规律和关联数据的合理推断。我建议在订正报告中明确标注哪些时段是结冰订正过的,方便后续审核。

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