第二章:风资源数据采集——测风塔部署、激光雷达原理、SCADA数据接口、数据清洗与预处理

各位同行,大家好。我是老张,在风电行业摸爬滚打了十几年。今天咱们聊聊风资源数据采集。说实话,这是整个数字孪生建模的「地基」。地基没打好,后面建多高的楼都悬。我个人习惯,做项目前先把数据源摸透,不然模型跑出来自己都不信。

2.1 测风塔部署:风资源的「硬核」基准

测风塔,说白了就是一根插在风场里的「大号温度计」,但它测的是风。我见过不少项目,测风塔位置选得随意,结果数据偏差大,后期发电量预测全跑偏。

2.1.1 部署原则

  • 代表性:塔位必须能代表整个风场的风况。别放在山坳里,也别紧挨着树林。我建议选在风场主导风向上游的开阔地带。
  • 高度匹配:测风高度至少覆盖轮毂高度上下各10米。比如轮毂高80米,那测风塔至少测70米、80米、90米三层。
  • 避免遮挡:周围障碍物距离至少是障碍物高度的10倍。嗯,这里要注意,连临时堆放的设备都可能影响数据。

避坑指南:我曾经在内蒙古一个项目上,测风塔旁边有棵孤零零的树,当时觉得没事。结果数据分析时发现,某个扇区的风速总是偏低。后来砍了树,数据才正常。你想想看,一棵树都能影响,何况其他东西?

2.1.2 传感器配置

传感器类型 推荐数量 安装位置
风速计(杯式) 每层2个 水平对置,间隔1.5米
风向标 每层1个 与风速计同层
温度/气压传感器 1-2个 10米高度处

为什么每层要两个风速计?说白了就是为了冗余。一个坏了,另一个还能顶上。我在新疆的项目上,沙尘暴打坏过一个风速计,幸亏有备份,不然那三个月的数据全废了。

2.2 激光雷达原理:从「点测量」到「线测量」

激光雷达,英文叫LiDAR。它跟测风塔最大的区别是:测风塔只能测一个点,激光雷达能测一条线、一个面,甚至一个体积。说白了,它用激光打向空中,碰到气溶胶(灰尘、水滴)反射回来,通过多普勒频移算出风速。

2.2.1 工作原理

激光雷达发射一束激光,频率是f0。激光碰到随风飘动的气溶胶,反射回来的频率变成了f1。f1和f0的差值,就是多普勒频移Δf。风速v和Δf的关系是:

v = (λ * Δf) / 2

其中λ是激光波长。就这么简单?嗯,原理确实不复杂,但工程实现很难。激光雷达内部有精密的光学系统,还要处理信噪比极低的回波信号。

个人经验:我建议在复杂地形(比如山地、沿海)优先用激光雷达。测风塔只能代表一个点,但激光雷达可以扫描整个风场的入流剖面。我在云南一个山地项目,用激光雷达发现了山脊两侧的风速差异,直接优化了机位布局,发电量提升了3%。

2.2.2 类型对比

类型 测量范围 优点 缺点
连续波(CW) 10-200米 成本低,结构简单 无法测远距离
脉冲式 10米-数公里 测距远,可扫描 成本高,数据处理复杂

我个人习惯,做风资源评估时,先用脉冲式激光雷达扫一遍全场,再用测风塔做长期校准。两者结合,数据才靠谱。

2.3 SCADA数据接口:风机的「黑匣子」

SCADA,全称是数据采集与监视控制系统。每台风机上都装着一个SCADA系统,它记录着风机运行的每一秒数据。说白了,它就是风机的「黑匣子」。

2.3.1 数据接口类型

  • OPC DA/AE:老牌协议,Windows系统用得多。延迟低,但跨平台麻烦。
  • OPC UA:新一代协议,支持跨平台、加密传输。我建议新项目都用这个。
  • Modbus TCP:简单粗暴,很多风机控制器原生支持。但数据量大了容易丢包。
  • REST API:云平台常用,通过HTTP请求获取数据。延迟稍高,但灵活。

注意:我曾经遇到过一个项目,SCADA数据接口用的是OPC DA,但服务器是Linux系统。结果折腾了两周才搞定兼容性。你想想看,如果一开始就选OPC UA,哪来这些破事?

2.3.2 数据采集频率

数据类型 推荐频率 说明
风速、功率 1秒 用于动态分析
温度、压力 10秒 变化慢,降低存储
状态、报警 事件触发 有变化才记录

嗯,这里要注意:采集频率不是越高越好。频率太高,数据量爆炸,存储和传输都扛不住。我建议根据分析需求来定。做振动分析,1秒就够了;做功率曲线,10秒也行。

2.4 数据清洗与预处理:把「垃圾」变成「金子」

数据采集回来了,但别急着用。原始数据里全是「坑」:传感器故障、通信中断、异常值……我见过最离谱的,风速计被鸟屎糊住了,数据直接飙到100米/秒。你想想看,这种数据要是直接喂给模型,结果能看吗?

2.4.1 常见数据问题

  • 缺失值:通信中断、传感器故障导致数据断档。
  • 异常值:超出物理范围的值(比如风速>50m/s)。
  • 重复值:同一时间戳出现多条记录。
  • 时间戳错乱:时区不对、时钟漂移。

2.4.2 清洗流程

我总结了一套「四步清洗法」,分享给大家:

  1. 去重:按时间戳排序,删除重复记录。
  2. 范围检查:风速0-50m/s,功率0-额定功率×1.1。超出就标记为异常。
  3. 趋势检查:相邻数据点变化率不能太大。比如风速1秒内从5m/s跳到50m/s,肯定是错的。
  4. 插值填充:缺失值用线性插值或样条插值补上。但注意,连续缺失超过1小时的数据,直接丢弃。
# Python示例:简单的数据清洗
import pandas as pd
import numpy as np

# 读取数据
df = pd.read_csv('wind_data.csv', parse_dates=['timestamp'])

# 去重
df = df.drop_duplicates(subset='timestamp')

# 范围检查
df = df[(df['wind_speed'] >= 0) & (df['wind_speed'] <= 50)]
df = df[(df['power'] >= 0) & (df['power'] <= 2500 * 1.1)]

# 趋势检查
df['ws_diff'] = df['wind_speed'].diff().abs()
df = df[df['ws_diff'] < 10]  # 每秒变化不超过10m/s

# 插值填充(缺失不超过1小时)
df = df.set_index('timestamp').resample('1S').asfreq()
df['wind_speed'] = df['wind_speed'].interpolate(limit=3600)

避坑指南:我曾经在清洗数据时,直接用均值填充所有缺失值。结果模型训练出来,预测的风速全是平均值附近,完全没意义。后来改用插值,效果才好。记住:填充方法要跟数据特性匹配。

2.5 本章知识体系

下面这张图,是我自己画的,把本章的核心逻辑串起来了。你一看就明白:数据从哪来、怎么采、怎么洗。

风资源数据采集全流程 测风塔 点测量,长期基准 激光雷达 线/面测量,空间分布 SCADA系统 风机运行数据 数据清洗与预处理 去重 → 范围检查 → 趋势检查 → 插值填充 高质量风资源数据集

你看,数据从三个源头来:测风塔给基准,激光雷达给空间分布,SCADA给运行状态。经过清洗预处理,最终汇成高质量数据集。这就是数字孪生建模的「原材料」。

好了,这一章就到这里。数据采集是基础,但也是最容易出问题的地方。我建议你动手做一遍清洗代码,跑一遍真实数据,感受一下「垃圾进、垃圾出」的教训。下一章咱们聊风场建模,到时候见。


专注资料整理