系列写到第十二篇,我越来越觉得一个问题绕不开:AI在能源领域到底是“工具层面的优化”,还是“范式级的重构”?我的答案是后者。而理解这个变化的钥匙,恰恰是标题里“四维知识”这四个字。它不是玄学,也不是营销包装,而是一套可以落地的认知框架:把信息、时间、空间、能量四个维度同时纳入建模视野,再用人工智能把跨维度的关系学出来,形成真正可用的预测能力。这篇就完整拆一下这套“预测未来范式的模型”到底怎么搭、怎么跑、怎么避坑,以及其他行业能从中抄走什么作业。
1. 标题背后的核心思路:拆解“四维知识”与预测范式
1.1 “四维知识”到底指什么
先说结论:四维知识不是学术术语,是我做项目时自己归纳的一套知识组织方式。
一维知识是“是什么”——一个数字、一条记录、一个事实,比如某台机组的额定容量是50兆瓦。
二维知识是“关系”——两个量之间的关联,比如温度升高导致空调负荷上升,这是回归思维能覆盖的范畴。
三维知识是“结构”——多变量之间存在层次、拓扑和因果,比如一个配电网里,变电站、馈线、台区、用户构成了明确的树状结构,A台区的负荷异常会传导到B馈线。
四维知识则是“演化”——在结构之上再叠加时间轴,让模型不仅知道“现在系统长什么样”,还能推断“系统下一时刻会变成什么样”。
所以“四维知识就是力量”这句话翻译成工程语言就是:如果你的模型同时理解信息(当前观测)、时间(趋势与周期性)、空间(拓扑结构)和能量(物理约束),那你就能构建出真正有泛化能力的预测系统。它比单纯堆深度学习模型更本质,因为模型的输入输出只是表象,真正决定上限的是你组织知识的方式。
1.2 为什么说这是“预测范式的模型”
过去十年,业内做预测的主流方式是“单点时间序列预测”和“独立模型”。风电预测就是一个场站一个模型,负荷预测就是一个台区一个模型,模型之间互不通信,知识无法迁移。表面看是工程实现简单,实际上是放弃了数据之间最宝贵的关系结构。
预测范式升级的核心在于:不再把预测当成“单序列的规律外推”,而是当成“多维度时空状态的学习与演化”。你需要让模型理解历史模式、当前状态、外部干预和未来不确定性,然后给出概率分布而非单点值。
这正好对应到人工智能的三个重要能力:
- 表示学习:自动从原始数据中提取高层特征,不需要手工设计太多特征;
- 不确定性建模:输出的是一个分布,给业务方“置信区间”而不是一个没头没尾的数值;
- 跨域迁移:在A场景学到的时间和空间模式,可以迁移到B场景做冷启动。
能源是这套范式最好的试验场。因为能源系统数据密度高、物理规律强、安全约束硬、经济价值明确。负荷、发电、电价、碳排放这几类任务覆盖了预测、优化、控制、决策的完整链条。把能源做透了,这套方法论迁移到交通、气候、零售、供应链,几乎是降维打击。
提示:理解“四维知识”不必把它想得多玄,本质上就是教你如何在建模前想清楚——我有哪些维度可以用?哪些关系是模型该自己学的?哪些关系是我要告诉它的?
2. 能源场景是AI预测最好的试验田
2.1 负荷预测:最基础、也是最难啃的任务
负荷预测是能源AI的“hello world”,但它是那种越做越心虚的hello world。我见过不少团队上来就搞LightGBM,拿历史负荷和外温特征跑一版,MAPE做到3%就很兴奋。但真正上了生产环境才发现,预测准一次不难,难的是在春节、极端天气、突发大事件、负荷转供这些“结构突变”场景下还能不能稳得住。
负荷预测的四个时间尺度对应不同决策场景:
| 尺度 | 用途 | 常用数据 | 典型模型 |
|---|---|---|---|
| 超短期(分钟级) | 实时调度、AGC | SCADA高频量测 | 序列模型、在线学习 |
| 短期(未来1-7天) | 机组组合、现货报价 | 历史负荷、温度、节假日特征 | 树模型、Transformer |
| 中期(月级) | 检修计划、中长期交易 | 气象预报、经济增长数据 | 统计学习、集成模型 |
| 长期(年级) | 电网规划、电源投资 | GDP、人口、产业结构 | 情景分析、计量模型 |
短期负荷预测最有代表性,也最适合用来理解“四维知识”框架。
信息维上,你得做特征工程,把温度、湿度、辐照度、节假日、重大事件、电价、上月同期负荷全部对齐到同一时间轴上。这一维决定了预测下界。
时间维上,模型需要同时学习三个层次的规律:日内形状(早晚高峰)、周内差异(周一到周五和周末负荷画像完全不同)、季节性漂移(夏天制冷负荷、冬天采暖负荷)。
空间维上,系统级负荷预测不是把各分区预测结果相加那么简单。分区之间有同时率效应,峰值此消彼长,直接相加会导致整体预测偏差放大。所以要从系统层面建模区域间的耦合关系,让模型自己学“哪个区域是主要驱动者”。
能量维上,用电行为本质上服从能量守恒和物理极限:变频空调功率有上限,产线设备不可能无限超负荷,建筑热惯性会把温度变化“抹平”成平滑的负荷响应。把这些物理常识以约束或正则项的方式注入模型,能明显减少荒谬预测。
2.2 新能源出力预测:从“看天吃饭”到“算天吃饭”
新能源出力的可预测性是所有预测任务里最硬的一块骨头。光伏出力完全受云层运动影响,一片云飘过来,15分钟内出力可以掉60%。风电更复杂,尾流效应、切变、湍流强度这些气象变量搅在一起。
做光伏预测,我的经验是永远不要只喂模型“历史出力和数值天气预报”。数值天气预报的空间分辨率往往覆盖不了场站所在位置的微气候。你需要把卫星云图、周边气象站实测、逆变器实时出力、光伏板倾角方位角、阴影遮挡模型全部纳入特征体系。
这里四维知识的优势特别明显:时间维度上,云层运动的延迟效应可以被序列模型捕获;空间维度上,周边5到10公里范围内的气象站实测值比场上单点的数值天气预报更代表“即将发生的事情”;能量维度上,光伏板温度与转换效率的关系、逆变器限功率策略,都是真实存在的物理约束。
风电场景我印象最深的是一次夜间爬坡预测事件。某风电场在一小时内出力从200兆瓦爬到450兆瓦,调度侧毫无准备,只能紧急调用备用火电。事后复盘,问题不是模型不够先进,而是我们完全没有利用上下游风电场的数据——实际上,风是从上游场站吹过来的,上游场站出力变化领先下游40分钟。如果把这个空间关系建模进去,爬坡事件完全可以提前发现。
2.3 电价预测与现货交易:预测博弈的实践
电价预测比其他能源预测更有意思的地方在于:电价不是完全由物理系统决定的,它是由市场成员的博弈行为决定的。机组报价策略、售电公司避险需求、电网安全约束、甚至市场情绪都会影响出清价格。
这个场景下,信息维不再是单一的时间序列,而是所有市场参与者的行为痕迹。我们做某省的现货电价预测时,发现最能提升预测精度的特征不是负荷预测值,而是“发电侧申报曲线的形态变化”——当某几个关键机组开始调整报价参数,往往预示价格即将跳变。
空间维在电力市场里体现为“节点电价差异”。因为输电阻塞,同一时刻不同节点的边际电价可能差三倍。如果只做全省统一出清价预测,等于把模型问题简化掉了,那在实际交易里赚不到钱也躲不开风险。
所以电价预测的正确打开方式是:建模节点边际电价,把网络拓扑、阻塞约束、机组出力上下限全部作为模型输入。然后叠加不确定量化——因为你预测的是博弈结果,本质上是预测一个分布,不是预测一个确定数。
3. 四维知识的工程化落地:怎么把四个维度组合起来
3.1 时间维建模:从循环网络到Transformer
处理时间维,业内已经走了几代。
第一代是ARIMA、GARCH这类统计模型,优点是可解释性强,缺点是只能捕捉线性关系,对突变和多周期叠加无能为力。
第二代是LSTM、GRU这类循环网络。在负荷预测上表现得比统计模型好很多,因为它能自动学长期依赖。但LSTM的硬伤是串行计算慢,且长序列记忆衰减问题始终存在。
第三代是Transformer和它的一系列变体。自注意力机制让模型可以同时关注“昨天的同时刻”“三天前的变化趋势”“去年同期的高温影响”,这种多粒度时间模式捕捉能力是前面所有模型不具备的。再加上Informer、Autoformer、PatchTST这类针对长时间序列的优化结构,时序预测的精度在过去两三年提升非常明显。
但我要说一句泼冷水的话:Transformer不是万能药。它对数据量和计算资源的要求不低,在小样本场景下容易过拟合。更务实的做法是“分而治之”:
- 用树模型处理外部特征(温度、节假日、特殊事件);
- 用序列模型处理负荷自身的时间依赖;
- 用注意力机制建模“哪些历史时刻对当前预测最关键”。
三种模型的结果做 stacking 或加权集成,工程上比单一Transformer稳得多。
3.2 空间与拓扑建模:图神经网络让“场站群体”互相学习
空间维建模最容易犯的错是把地理位置坐标直接喂给DNN。经纬度只是两个数,模型学不到“东南方向200公里的某台风电场出力上升之后,本站风速两小时后上升”这类因果关系。
正确做法是把物理连接关系建模成图结构。节点是场站、变电站、台区,边是输电线路或气象传播方向,边权是距离或电气距离。然后交给图神经网络去计算。
我第一次在风功率预测项目上用图神经网络时,预测误差比独立场站模型下降约12%。原因是风从西向东传播的过程中,上游场站的实测出力天然携带了下游未来两小时的信息。图卷积把这种传播关系显式建模出来,比让每个场站孤立地猜“未来风变大还是变小”本质得多。
配电网台区负荷预测也是同理。台区之间的负荷模式高度相关,一个新入住率高的楼盘台区和旁边发展成熟的老台区完全不是一个成长曲线。用图结构把这种区域关联建模,冷启动台区的预测就不再是靠“取全区域均值”这种粗糙手段,而是靠相邻台区的迁移知识。
实操建议:图结构的边不一定只代表物理连接。你可以把“气候相似性”“产业结构相似性”都建为边。模型会自动从数据里学权重,你只需要把候选关系喂给模型。
3.3 物理约束与能量维:PINN和领域知识注入
纯数据驱动模型有个问题:它不懂物理。举个例子,模型可能在零下5度的天气预测某个区域负荷下降30%,但它不知道这个区域全是电采暖用户,温度越低负荷越高。这就是知识维度缺失的代价。
解决思路有两个层级。
第一层是特征工程层面的知识注入。把温度变“采暖度日”和“制冷度日”两个特征,把日历变成“峰谷平时段编码”,把电价变成“相对上周同期的涨跌幅”。这些表面上是特征工程,本质上是把领域知识以模型能理解的形式告诉它。
第二层是模型结构的物理约束。物理信息神经网络是更激进的做法:在损失函数里加物理项,让模型的输出必须满足能量守恒或功率平衡方程。在做微电网能量管理时,我们把“各分布式电源出力之和必须等于负荷需求加减储能充放电”作为硬约束加入损失函数,模型产出的调度计划从来不会出现“总出力大于总需求却还在充电”这种低级错误。
物理注入还有个容易被忽略的作用:减少模型对数据量的依赖。纯数据驱动的模型没有数据就寸步难行,而物理约束相当于给了模型“常识”,让它在小样本场景也能给出符合物理逻辑的预测。
3.4 信息维:不确定性量化与区间预测
预测模型只输出一条线,在能源业务里等于没有完成工作。调度员需要知道的不只是“明天14点负荷是9200兆瓦”,而是“14点负荷大概率落在9100到9300之间,尾部风险可能在9500”。只有这种表达方式才能支撑风险管理决策。
区间预测和概率预测的工程实现有很多路径:
- 分位数回归:用分位数损失函数替代MSE,直接预测多个分位点;
- MC Dropout:在推理时保留Dropout开启,多次采样得到预测分布;
- 深度集成:多个不同初始化的模型做ensemble,方差就是不确定性;
- 基于残差的非参数方法:建模历史预测误差的分布,把误差带叠加到预测值上。
我实际项目里最常用的是分位数回归加深度集成,两个方法都很稳定而且容易解释。做电价预测时,我们的输出不是单一价格,而是P5、P50(中位数)、P95三个分位数。报价策略就变成:如果想激进就按P5报价,想保本就按P50报价,想稳健就按P95报价。这一套流程真正把预测模型融入了决策闭环。
4. 从能源到通用:预测范式迁移的方法论
4.1 先做数据审计,再做模型选型
很多人做AI预测的第一反应是选模型。我的建议是反过来,先做数据审计——把数据源盘清楚,搞清楚每个表的粒度、口径、缺失率、时延。
能源和其他行业最大的不同在于数据质量整体还算规范,SCADA系统和计量系统提供了结构化、高频、长时间的历史序列。但很多行业不是这样:零售数据口径混乱,供应链数据存在多系统不同步,气象数据空间分辨率不够。如果不先花两周把数据底账摸清,再好的模型也会栽在数据脏上。
数据审计需要输出一份明确的清单:
| 数据源名称 | 粒度 | 时间范围 | 缺失率 | 延迟 | 质量等级 |
|---|---|---|---|---|---|
| 历史负荷 | 15分钟 | 2018-2024 | 1.3% | 实时 | A |
| 气象预报 | 1小时 | 2020-2024 | 0% | 4小时一次 | B |
| 电价出清 | 1小时 | 2022-2024 | 0.5% | T+1 | A |
做完这个表,你才能判断该用什么模型。数据量够就上深度学习,数据量少就老老实实用树模型加物理约束。时序长度不够,很多Transformer结构的优势根本发挥不出来。
4.2 多阶段评估:不要只看一个指标
预测模型的坑在于指标太好看了,业务上却不好用。MAPE从2.1%降到1.8%,听起来提升很显著,但如果你观察误差的分布,可能发现模型只在凌晨负荷低的时候预测得准,白天高峰时段误差反而变大了。这对调度是致命的,因为高峰时段的误差才是需要担心的。
所以评估必须分阶段、分层级:
- 全局指标:MAPE、RMSE、WAPE,作为横向对比基准;
- 时间分段指标:峰段、平段、谷段、节假日段分别统计;
- 空间分层指标:系统级、区域级、场站级分别评估;
- 事件指标:高温日、寒潮日、极端天气、重大检修期间单独评测;
- 不确定性指标:区间覆盖率、区间锐度、分位数损失。
我特别推荐“峰值误差”和“误差变异性”这两个指标。一个模型可能平均误差不高,但峰值时刻波动极大,这种模型在生产环境中会让调度员逐渐失去信任。宁可平均误差差一点,也要把峰值时刻的稳定性做上去。
4.3 可解释性和人类回路:预测模型真正被信任的前提
能源行业对AI的信任门槛比互联网行业高得多。调度员不可能因为“模型说负荷要涨”就把备用机组点上,他们要确认“为什么涨?是温度原因?是生产方式变化?还是模型本身出错了?”
所以可解释性不是事后补的,而是模型设计时就要考虑的约束:
- 特征重要性分析:SHAP值要能在每个预测上出明细,让业务方看到“今天预测高是因为温度比昨天高3度”;
- 极端情景追溯:预测值和历史哪个时刻最像,模型要能回答;
- 规则兜底:当模型输出超出物理合理区间,要有硬规则拦下来,不能直接丢给调度。
人工回路更重要。调度员会在模型预测基础上做修正,这些修正记录本身就是宝贵的训练数据。我们把调度员历史上对模型预测的调整量作为标签,用在线学习方式持续让模型适配业务方的决策偏好。三个月后,模型输出的预测值已经自带“调度员试图修正但还没修”的感觉,与业务之间的摩擦大幅降低。
注意:可解释性不是“领导要看报告”的面子工程,而是让模型输出从“一行数字”变成“经过推理的答案”。没有这一步,AI预测系统永远只处于试验状态,进不了正式业务流程。
5. 实操链路:一个能源预测项目的完整走法
5.1 数据管道:清洗、对齐、特征工程
能源预测项目的数据工程占到整个项目60%以上的工作量,这不是夸张。
第一步是清洗。对于负荷数据,要处理的问题包括:通信中断导致的整段缺失、表计故障导致的恒值、SCADA数据中的跳变尖峰、节假日导致的异常模式。单一规则清洗不够,我会用“可视化+统计规则+模型异常检测”三层手段。
第二步是对齐。不同系统的数据粒度不同、时区不同、采样时刻不同,全部对齐到统一的15分钟时间网格。对齐这里有个小坑:气象预报数据的发布时间和预报起效时间要分开记录。一个预测模型必须在“信息可用时间”做推理,而不是在“现象发生时间”马后炮。特征工程最忌讳的就是把未来信息带进训练集。
第三步是特征工程。除了常规的lag特征、滑窗统计、日历特征,我强烈建议加以下三类:
- 交互特征:温度和湿度的乘积,反映体感温度对负荷的影响;
- 复合指标:采暖度日、制冷度日、电量温度弹性系数;
- 相似日特征:找历史上最相似的一天,把它的实际值作为特征。
相似日特征是个很好用的技巧,预测精度并不比复杂模型低多少,而且业务方很容易理解。
5.2 模型训练与验证:损失函数、评估策略
预测模型训练里最关键的决策是损失函数。MAE对异常值鲁棒,适合数据质量一般的场景;MSE放大大的误差,适合确保“大误差不发生”;分位数损失则适合需要风险表达的场景。我的习惯是主模型用Huber损失,兼顾两者;再额外训练一个分位数模型作为风险参考。
验证策略上,时间序列预测不能用随机K折交叉验证,因为时间顺序打乱之后信息泄漏非常严重。正确做法是滑窗式验证:用前三年训练,预测下一年;窗口向后滚动,重复多轮。这模拟了真实场景中“永远用过去预测未来”的信息结构。
训练完成后必须在阶段性指标上做回归测试。因为模型上线后数据分布会变,训练时表现好的配置,到生产环境可能迅速衰退。所以我会在生产环境保留一个影子模型,并行运行两到四周,确认影子模型确实优于当前生产模型再切换。
5.3 部署与监控:模型上线只是开始
部署环节有两条路线:
一条是批处理。每天凌晨跑一次,生成接下来48小时的预测序列,写入业务库。这种方式最简单稳定,适合负荷预测、日度电价预测这类不要求实时交互的场景。
另一条是实时推理。滚动预测,每15分钟或者每小时更新一次预测。适合新能源出力预测这种需要高频更新的场景。实时推理对基础设施要求高,需要特征存储、低延迟推理、结果版本管理。我们用的是特征平台加模型服务,所有预测结果全量落库,支持随时回溯“当时预测的值是什么、依据是什么”。
监控环节我强调三个指标,而且是每天都看:
- 预测误差滑动窗口走势:如果MAPE连续三天超过阈值,触发告警;
- 特征漂移检测:用PSI或KS统计量对比在线特征分布和历史训练分布;
- 业务反馈闭环:把实际值和预测值、业务方手动修正值全部存起来,定期做归因分析。
实操心得:模型上线后的第一个月是最危险的。业务方会拿模型的各种离谱预测来挑战你,你需要快速定位、解释、修复。把问题处理干净了,信任才会建立。否则模型再好也不会被用起来。
6. 常见问题与排查经验实录
6.1 预测突然失效怎么办
最典型的一种失效:模型在某个时间点之后预测误差突然变大,但你检查数据流一切正常。
排查路径我按经验排列如下:
- 检查特征分布是否漂移。算一下最近的温度均值和历史同期比,大概率能找到原因;
- 检查上游系统数据口径是否变化。有没有一个电表换过、口径调过、场站扩容过;
- 检查是否存在新设备投运。某条生产线投产、某个光伏电站并网、某个储能站开始调度,都会让历史模式失效;
- 检查模型服务是否有bug。特征对齐是否正确、模型版本是否被意外回退。
归根结底,这类问题的根因往往是“系统变了,模型不知道”,而不是模型代码坏了。
6.2 数据缺失和噪声怎么处理
能源数据缺失不是“有没有”,而是“缺多少、缺在哪”。
对于短时间缺失,插值够用。线性插值和样条插值都能处理10分钟级别的短缺。对于数小时级别的缺失,更可靠的方法是使用相似日数据补全,找同星期、同温度段的负荷形态做拼接。对于长期缺失,就不要强行补数了,把缺失段当成训练样本的天然掩码处理即可。
噪声问题更麻烦。SCADA数据里的尖峰异常,一个错误的巨大值可能扭曲模型对高峰时段的认知。我会用两种手段:一是中值滤波或鲁棒统计方法识别尖峰;二是异常点置为缺失,而不是修正为正常值。
我特别不建议的做法是“把异常值洗成看起来合理的正常值”,因为这会稀释训练数据中的真实信息。数据清洗的目标是去除不可信信息,不是伪造可信信息。
6.3 业务部门不认模型的输出怎么办
这个问题在能源项目里远比模型技术问题常见。不是因为模型不好,而是因为业务流程没有为模型输出设计好“接口”。
我的经验是把模型输出从“最终答案”转变成“决策辅助”。调度的决定仍然由人来做,但模型为调度提供了一致、可追查的预测基线。当调度员发现预测和直觉不一致时,他可以点开解释面板,查看每个关键特征对预测的影响。
另一个有效的手段是让业务方参与阈值定义。模型只产生预测值,但“误差超过多少需要告警”“区间覆盖率低于多少算失稳”这类指标由业务方定义。这样他们会对系统有很强的拥有感,而不只是被动接受一个黑盒。
有个项目里我们甚至建了“预测复盘会”:每周把误差最大的一次预测拿出来,模型工程师和业务方一起分析原因。刚开始业务方是来“问责”的,但跑了几个月后,这个会变成了业务方互相学习判断经验的平台。模型虽然没有变聪明,但整个团队的决策一致性大幅提升。
6.4 四维知识框架在项目中的现实制约
最后说点实在的。四维知识框架听起来美好,实际落地还是会碰到很多限制。
时间维的制约是数据历史长度。很多省级电网有十年以上的负荷历史,但某些新能源场站只有两年数据。这种情况下序列模型的能力会被削弱,只能更依赖物理约束和空间迁移。
空间维的制约是数据共享意愿。不同场站、不同企业之间的数据壁垒很难打破。你能拿到的往往只是“部分空间信息”。一个变通的思路是使用公开的气象再分析数据来补充空间信息,不一定要拿到所有场站的实测数据。
能量维的制约在于物理模型本身的复杂度。电力系统的物理约束写清楚不容易,尤其是需求响应、储能策略这些新要素出现后,物理模型又叠加了人的决策。这时候更务实的做法是“部分知识注入”——只把最可靠的物理约束(比如能量守恒、容量限制)注入模型,人的行为留给数据去学。
信息维的制约则是高质量标签的获取成本。预测模型的标签就是“实际值”,看似免费,其实很多实际值的准确性存疑。表计故障、通信时延、统计口径不一致都会让标签变脏。多花点资源在标签校核上,比一味优化模型结构划算得多。
我在实际带项目时也渐渐形成一种态度:四维知识不是一次建成的,而是一个逐渐丰富的过程。第一版模型可能只有时间和信息两个维度,跑通了以后再把空间拓扑加进去,再后来把物理约束通过正则项或专用网络结构注入。每一次加入一个维度,模型表现都会上一个台阶,但每增加一个维度,系统复杂度也翻倍。所以不要贪多求全,迭代着来,效果反而更稳。
系列写到这,我对“预测”这件事有了明显不一样的心态:预测不是算法的独角戏,而是一个系统工程。它需要时间、空间、信息和能量四个维度同时在线,需要工程团队和业务团队共同打磨,也需要足够的耐心去处理那些教科书上不会写的脏活。这些经验,是我做了十几个项目之后才真正想明白的。希望这篇内容能帮你少走几步弯路。