4、资源建模与参数辨识:储能SOC模型、光伏出力预测、负荷基线计算
各位同行,咱们今天聊点实在的。虚拟电厂听起来高大上,但落地的时候,最头疼的就是「资源建模」这四个字。
说白了,你连自己手底下的储能、光伏、负荷长什么样都摸不清,怎么去跟电网做交易?我个人习惯,做VPP的第一步,不是搭平台,而是先把每个资源的「脾气」摸透。今天我就把储能SOC模型、光伏出力预测、负荷基线计算这三个硬骨头,掰开了揉碎了讲给你听。
4.1 储能SOC模型:别让电池跟你耍脾气
储能是VPP里最灵活的资源,但也是最难伺候的。SOC(荷电状态)估算不准,你报给电网的调节容量就是瞎扯。
核心要点:SOC不是简单的「剩余电量/额定容量」。电池有内阻、有温度特性、有老化效应。我见过太多项目,直接用安时积分法算SOC,结果偏差跑到15%以上,调度指令一下去,电池直接过放保护。
我建议用扩展卡尔曼滤波(EKF)来做SOC估计。为什么?因为它能在线修正模型误差。给你看个简化模型:
// 储能SOC状态方程(离散化)
SOC(k+1) = SOC(k) - (η_c * I_c(k) + I_d(k)/η_d) * Δt / Q_n
// 观测方程(端电压)
V_t(k) = OCV(SOC(k)) - I(k) * R_0 - V_RC(k)
// 其中:
// η_c, η_d: 充放电效率(我实测过,锂电通常在0.95~0.98之间)
// Q_n: 额定容量(Ah),注意要随老化修正
// OCV: 开路电压-SOC曲线,这个得做实验标定
我的经验:OCV曲线千万别用厂家给的默认值。我曾经在一个储能电站项目里,发现厂家提供的OCV曲线在低SOC段偏差了3%。后来我们自己做了一次小电流充放电标定,才把模型精度拉回来。记住,电池是化学产品,每一批都有差异。
嗯,这里要注意:SOC模型一定要考虑「静置恢复效应」。电池在静置后,端电压会慢慢回升,如果你用动态数据直接算,SOC会跳变。我一般会在模型中加一个RC并联环节来模拟这个特性。
4.2 光伏出力预测:看天吃饭,但得有谱
光伏预测,说白了就是跟老天爷打交道。你想想看,一片云飘过来,出力能掉70%。VPP要是靠这个去报日前市场,风险太大了。
我个人习惯,把光伏预测分成两个时间尺度:
- 日前预测(D-1):用数值天气预报(NWP)数据,结合历史出力曲线。我常用LSTM或者XGBoost,输入特征包括:辐照度、温度、湿度、风速、历史出力。
- 超短期预测(15min-4h):用卫星云图+地面辐照度计。这个更依赖实时数据,我建议用物理模型+统计修正。
给你看个简化后的光伏出力公式:
P_PV(t) = G(t) * A * η_pv * η_inv * (1 - α * (T_cell(t) - 25))
// G(t): 倾斜面辐照度 (W/m²)
// A: 组件面积 (m²)
// η_pv: 组件效率(通常15%-22%)
// η_inv: 逆变器效率(约0.96-0.98)
// α: 温度系数(单晶硅约-0.4%/°C)
// T_cell: 电池片温度 (°C)
避坑指南:我曾经在一个分布式光伏聚合项目里,直接用气象局的辐照度数据做预测,结果误差大到30%。后来发现,气象局的数据是水平面辐照度,而光伏板是倾斜安装的。必须做「水平面到倾斜面」的转换,这个转换系数跟经纬度、安装倾角、时间都有关系。别偷懒,老老实实算。
还有一个容易被忽略的点:光伏组件的衰减。新组件和用了5年的组件,出力差10%以上。我建议在模型里加一个「老化因子」,每年根据实际发电量反推修正。
4.3 负荷基线计算:没有基线,就没有交易
负荷基线(Baseline)是VPP参与需求响应的「标尺」。你省了多少电,不是看你实际用了多少,而是看你跟「如果不参与响应时本该用多少」的差值。这个「本该用多少」就是基线。
基线计算的方法很多,我挑三个最常用的讲:
| 方法 | 原理 | 适用场景 | 我的评价 |
|---|---|---|---|
| 历史平均法 | 取响应前5-10个同类型日的负荷平均值 | 负荷模式稳定的工商业用户 | 简单,但遇到节假日或异常天气就崩 |
| 回归分析法 | 用温度、湿度、星期类型等做多元线性回归 | 有历史数据且影响因素明确的场景 | 精度不错,我常用这个 |
| 机器学习法 | 用XGBoost/LSTM等模型预测 | 数据量大、模式复杂的场景 | 效果好,但需要调参,别过度拟合 |
核心原则:基线计算一定要「可验证、可追溯」。电网公司或者交易中心会事后核查你的基线。我建议在合同中明确约定基线计算方法,并且保留所有原始数据。我曾经吃过这个亏——基线算出来对方不认,因为没有留底。
给你看一个我常用的回归模型框架:
P_base(t) = β_0 + β_1 * T(t) + β_2 * H(t) + β_3 * DOW(t) + β_4 * P_hist(t-1) + ε
// T(t): 温度
// H(t): 湿度
// DOW(t): 星期类型(周一~周日编码)
// P_hist(t-1): 前一时刻实际负荷
// ε: 误差项,假设服从正态分布
我的小技巧:对于居民用户,负荷基线最好用「聚类+典型日」的方法。先把用户按用电模式分成几类(比如上班族、居家型、混合型),然后每类用户建一个基线模板。这样比统一建模准得多。我在一个居民VPP项目里试过,误差从18%降到了9%。
嗯,最后提醒一句:基线不是一成不变的。用户的生产计划变了、天气异常了、设备检修了,基线都得跟着调。我建议建一个「基线修正机制」,比如在响应前2小时,用最新数据做一次滚动修正。
这张图把三个模型的关系串起来了。你看,储能、光伏、负荷,三个模型各自独立,但最终都汇到「可交易容量」这个输出上。VPP聚合商的核心能力,就是把这几个模型的精度做到极致,然后才能在电力市场里赚到钱。
好了,今天就聊到这儿。资源建模这块,没有捷径,就是死磕数据、死磕模型。你把这三点吃透了,VPP的底子就算打牢了。