4. 虚拟电厂功率预测特征工程

虚拟电厂功率预测的精度,往往不取决于模型有多复杂,而取决于输入特征是否把“功率变化的真实原因”表达清楚了。原始数据通常只有两类:一是各分布式资源(光伏、风电、储能、可调负荷)的历史功率与出力曲线,二是数值天气预报(NWP)给出的辐照度、温度、风速、云量等气象量。特征工程的任务,就是把这些原始量转换成模型能直接学习、且与未来功率强相关的输入变量。本节按六类特征展开,并给出可落地的构造与筛选方法。

一、时序特征:把“时间位置”和“变化趋势”编码进去

时序特征刻画的是功率自身在时间轴上的形态。最基础的是滑动统计量:对功率序列 P(t) 取过去 15 min、1 h、4 h 的均值、最大值、标准差,分别反映当前出力水平、短时峰值和波动剧烈程度。例如某 10 MW 光伏电站,过去 1 h 均值 6.2 MW、标准差 0.8 MW,说明出力较稳;若标准差升到 2.5 MW,则云团扰动明显,模型需要更谨慎。

更进一步是趋势与差分特征:一阶差分 ΔP = P(t) − P(t−15min) 表示爬坡方向与速率,二阶差分反映加速度。对储能和可调负荷,还要构造“充放电状态持续时长”“连续上调/下调步数”等特征。时序特征的关键是窗口长度要与预测步长匹配:预测未来 4 h,就应包含 4 h 以上的历史窗口,否则模型看不到完整的日内变化周期。

二、气象特征:从原始预报到“有效辐照”

气象量不能直接照搬。以光伏为例,NWP 给出的是水平面总辐照 GHI,而组件实际接收的是倾斜面辐照 POA,需要按倾角、方位角做转换;温度要区分气温与组件背板温度,后者可由气温与辐照度估算。风速则要转换到轮毂高度,常用幂律或对数律外推。此外,云量、湿度、气溶胶光学厚度对辐照的衰减作用,可通过“晴空指数” kt = GHI / GHI_clear 统一表达,kt 接近 1 表示晴天,低于 0.4 表示重云。

气象特征还应包含时间导数:辐照度 1 h 变化率、温度变化率、风速变化率,它们往往比绝对值更能预示功率的快速爬坡。对风电,风速要同时给出 10 m 与轮毂高度值,并计算湍流强度 σ_v / v̄,用于判断出力波动风险。

三、日历特征:周期性与特殊日

日历特征把“什么时候”变成可计算量。基础做法是提取小时、星期、月份,并做正余弦编码,避免 23 时与 0 时被误判为相距很远:

hour_sin = sin(2π · hour / 24)
hour_cos = cos(2π · hour / 24)
dow_sin  = sin(2π · dayofweek / 7)
dow_cos  = cos(2π · dayofweek / 7)

此外要加入节假日标志、工作日/周末标志、季节标志。对负荷侧,节假日用电模式与工作日差异显著;对光伏,季节决定太阳高度角与日照时长。日历特征本身预测能力有限,但它是气象与时序特征发挥作用的“上下文开关”。

四、滞后特征:用历史功率锚定基线

滞后特征直接取历史功率值,如 P(t−1)、P(t−4)、P(t−96)(96 点对应 15 min 粒度下的一天前同一时刻)。它的价值在于捕捉功率的自相关性和日周期重复性。构造时要注意两点:一是滞后阶数要覆盖预测步长,预测未来 1 h 至少需要 t−1 到 t−4 的滞后;二是要防止数据泄漏,任何用到未来信息的统计量都不能进入训练集。对多步预测,可采用递归方式把预测值回填为滞后输入,但要监控误差累积。

五、聚合特征:从单资源到虚拟电厂整体

虚拟电厂由多类资源聚合而成,聚合特征描述的是“整体与个体”的关系。常见构造包括:各资源出力之和、光伏与风电的出力占比、储能 SOC 均值与可调裕度、负荷可中断容量、各资源与总出力的相关系数。例如总出力 20 MW 中光伏占 12 MW、风电 5 MW、储能放电 3 MW,则光伏占比 0.6,这个比例在日内会变化,是模型判断整体波动来源的重要依据。

聚合特征还能表达互补性:光伏与风电出力的负相关程度越高,总出力越平稳。可计算滚动 1 h 的相关系数作为特征,帮助模型识别“风光互补”带来的平滑效应。

六、特征选择:从候选集到有效输入

构造出几十甚至上百个特征后,必须筛选。推荐三步走:第一步用皮尔逊或斯皮尔曼相关系数做初筛,剔除与目标功率相关性低于阈值(如 |r| < 0.05)的特征;第二步用树模型(随机森林、LightGBM)输出特征重要度,保留累计重要度达到 90% 的前若干特征;第三步做前向/后向搜索或递归特征消除,用验证集误差(如 nRMSE)判断增删是否有效。同时要检查特征间共线性,方差膨胀因子 VIF > 10 的特征对可择一保留。

特征选择不是一次性的:季节切换、新增资源接入、NWP 源更换后,都应重新评估重要度排序,避免模型依赖已经失效的特征。
虚拟电厂功率预测特征工程:六类特征与筛选链路 历史功率 光伏/风电/储能/负荷 数值天气预报 GHI/温度/风速/云量 日历与运行台账 节假日/SOC/可调容量 ① 时序特征 滑动均值/标准差/差分/爬坡 ② 气象特征 POA/晴空指数/变化率/湍流 ③ 日历特征 正余弦编码/节假日/季节 ④ 滞后特征 P(t−1)/P(t−4)/P(t−96) ⑤ 聚合特征 出力占比/互补相关/SOC均值 候选特征池 数十至上百维 含冗余与共线 需筛选降维 目标:nRMSE 最小 第1步 相关性初筛 |r| < 0.05 剔除 斯皮尔曼秩相关 第2步 重要度排序 LightGBM 增益 累计重要度 ≥ 90% 第3步 搜索与共线检查 前向/后向搜索 + VIF VIF > 10 择一保留 有效特征子集 输入预测模型 → 输出功率 注:示例阈值(|r|<0.05、累计重要度 90%、VIF>10)为常用工程参考值,实际应按数据规模与验证误差调整。

七、一个可复用的特征构造与筛选示例

假设某虚拟电厂含 1 个 10 MW 光伏、1 个 8 MW 风电、1 个 5 MW/10 MWh 储能,预测未来 1 h 总功率,15 min 粒度。可按下表组织特征并记录筛选结果(数值为示例假设):

特征类别示例特征计算方式初筛相关性是否保留
时序P_1h_mean过去 1 h 总功率均值0.86保留
时序P_1h_std过去 1 h 总功率标准差0.31保留
气象kt_1hGHI / GHI_clear 的 1 h 均值0.79保留
气象wind_hub风速外推至轮毂高度0.68保留
日历hour_sin/cos小时正余弦编码0.42保留
滞后P(t−4)1 h 前总功率0.88保留
聚合pv_ratio光伏出力 / 总出力0.55保留
聚合soc_mean储能 SOC 均值0.12保留(弱相关但可解释)
气象humidity相对湿度0.03剔除

筛选后保留约 8~12 维特征,输入 LightGBM 或时序网络。判断特征工程是否有效,不能只看训练集拟合,而要看验证集上的 nRMSE 与爬坡时段的误差:若加入某类特征后,晴天平稳时段误差变化不大,但云团过境、大风爬坡时段的误差明显下降,说明该特征真正捕捉到了关键物理过程。反之,若特征重要度很高但验证误差不降,往往是共线性或数据泄漏造成的假象,需要回到构造环节复查。

滞后特征和聚合特征最容易引入数据泄漏:例如用“当日总发电量”这类包含未来信息的统计量,会让离线指标虚高、上线后迅速恶化。构造任何特征时都要问一句:在预测时刻 t,这个值是否真的可得?

综上,六类特征各有分工:时序与滞后刻画功率自身的惯性和周期,气象提供物理驱动,日历提供上下文,聚合反映多资源耦合。特征选择则是在候选池中做减法,用相关性和重要度双重约束,最终以验证误差和爬坡时段表现为准绳。掌握这套方法,后续无论换模型还是换资源组合,都能快速构建出稳定可用的输入特征集。