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 的特征对可择一保留。
七、一个可复用的特征构造与筛选示例
假设某虚拟电厂含 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_1h | GHI / 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 与爬坡时段的误差:若加入某类特征后,晴天平稳时段误差变化不大,但云团过境、大风爬坡时段的误差明显下降,说明该特征真正捕捉到了关键物理过程。反之,若特征重要度很高但验证误差不降,往往是共线性或数据泄漏造成的假象,需要回到构造环节复查。
综上,六类特征各有分工:时序与滞后刻画功率自身的惯性和周期,气象提供物理驱动,日历提供上下文,聚合反映多资源耦合。特征选择则是在候选池中做减法,用相关性和重要度双重约束,最终以验证误差和爬坡时段表现为准绳。掌握这套方法,后续无论换模型还是换资源组合,都能快速构建出稳定可用的输入特征集。