3. 收益模型构建:调频收益函数、调峰收益函数、联合优化目标函数
好,咱们进入第三讲。前面我们把调频和调峰的市场规则、物理约束都捋了一遍,现在该动真格的了——建数学模型。
说实话,我刚开始做这个方向的时候,也犯过傻。总想着把模型建得越复杂越好,恨不得把电网里每一根导线的损耗都算进去。结果呢?模型跑三天三夜不出结果,甲方爸爸直接打电话来骂人。后来我学乖了:收益模型,核心是抓住主要矛盾。调频看的是里程和容量,调峰看的是电量和爬坡,其他细枝末节,能简化就简化。
3.1 调频收益函数
调频市场的收益,说白了就两块:容量收益和里程收益。
容量收益,就是你为系统预留了多少调节功率。比如你报了个10MW的调频容量,不管实际用没用,市场都会按容量价格给你结算。里程收益呢,就是你的机组实际跟着AGC指令跑了多少路——这个“路”指的是调节里程,单位是MW。
我习惯把调频收益函数写成这样:
R_freq = R_cap + R_mil
R_cap = P_cap × T × λ_cap
R_mil = M_total × λ_mil
其中:
- P_cap:申报的调频容量(MW)
- T:结算周期(小时)
- λ_cap:容量出清价格(元/MW·h)
- M_total:总调节里程(MW)
- λ_mil:里程出清价格(元/MW)
这里有个坑,我踩过。里程价格λ_mil不是固定的,它跟你的调节性能强相关。有些市场会引入“调节性能系数K”,K值越高,里程单价越高。你想想看,同样是跑了100MW的里程,K=0.8和K=1.2,收益能差50%。
3.2 调峰收益函数
调峰收益就相对直白了。它主要来自深度调峰和启停调峰两块。
深度调峰,就是让机组在低负荷运行,比如从50%额定负荷压到30%。这部分收益等于“少发电的损失”加上“市场给的补偿”。启停调峰更狠,直接停机再开机,补偿金额一般按启停次数算。
我一般这么建模:
R_peak = R_deep + R_start
R_deep = (P_base - P_low) × T_deep × λ_deep
R_start = N_start × λ_start
参数说明:
- P_base:基准出力(MW),通常是额定功率的50%
- P_low:深度调峰时的实际出力(MW)
- T_deep:深度调峰持续时间(h)
- λ_deep:深度调峰补偿单价(元/MW·h)
- N_start:启停次数
- λ_start:单次启停补偿(元/次)
嗯,这里要注意:深度调峰的λ_deep往往不是线性函数。有些市场是阶梯报价,比如压到40%出力时补偿100元/MWh,压到30%时补偿200元/MWh。你想想看,压得越深,机组效率越低,磨损越大,补偿自然要更高。
3.3 联合优化目标函数
好,现在把调频和调峰捏到一起。为什么要联合优化?因为这两个市场是互相抢资源的。
你想想看,机组的可调容量是有限的。你拿10MW去做调频,那这10MW就不能同时去做调峰。反过来也一样。所以我们需要一个目标函数,把两个收益加起来,再减去成本,找到那个“总利润最大”的分配点。
我常用的联合优化目标函数长这样:
max: R_total = R_freq + R_peak - C_fuel - C_wear
s.t.
P_cap + P_low ≤ P_max - P_min // 容量约束
0 ≤ P_cap ≤ P_cap_max // 调频容量上限
P_min ≤ P_low ≤ P_base // 调峰出力范围
...其他约束
其中:
- C_fuel:燃料成本,跟发电量挂钩
- C_wear:磨损成本,跟调节次数和深度有关
这个优化问题,说白了就是:在满足物理约束的前提下,把调频容量和调峰出力分配到最优比例。我习惯用线性规划或者混合整数规划来解,因为约束大多是线性的。
下面这张图,是我自己项目里常用的决策逻辑框架,你可以参考一下:
这个框架图,说白了就是三个输入、一个核心、一个输出。你在实际项目中,只需要把市场数据、机组参数、成本数据填进去,求解器就会告诉你:调频报多少容量、调峰压到多少出力、要不要启停。
最后说一句,模型建好了,别急着跑。先拿历史数据做一下回测,看看优化结果跟实际收益差多少。我一般会留20%的数据做验证,确保模型不是“过拟合”的纸老虎。