第1章:实时调度数学模型——目标函数与约束条件

各位同学,大家好。我是老张,在电力系统调度这块摸爬滚打了十几年。今天咱们来聊聊实时调度数学模型,这是整个算法的“心脏”。

你想想看,实时调度说白了就是:在每一分钟甚至几秒钟内,决定哪些机组该发多少电。这背后必须有一个清晰的数学模型来支撑。我个人习惯把模型拆成两大部分:目标函数约束条件

1.1 目标函数:我们到底要优化什么?

实时调度不是拍脑袋决策。它要回答一个核心问题:在满足所有约束的前提下,怎样运行最划算?

这里有两个最常见的优化目标:

1.1.1 发电成本最小化

这是最经典的目标。每个机组都有它的成本曲线,通常是二次函数:

min Σ [ a_i * P_i² + b_i * P_i + c_i ]

其中:

  • P_i:第 i 台机组的出力(MW)
  • a_i, b_i, c_i:机组的成本系数

我在项目中遇到过一件事:某电厂一直用线性成本模型,结果调度结果总是偏保守。后来换成二次模型,每小时的运行成本直接降了3%。嗯,细节决定成败。

我的经验:实际项目中,成本系数不是一成不变的。煤价波动、机组老化都会影响。我建议每季度重新拟合一次成本曲线。

1.1.2 碳排放最小化

现在环保压力大,碳排放也成了硬指标。目标函数变成:

min Σ [ e_i * P_i ]

其中 e_i 是机组 i 的碳排放强度(吨CO₂/MWh)。

你可能会问:成本和碳排放能同时优化吗?可以,但需要权衡。常用的做法是加权求和:

min [ w1 * 成本 + w2 * 碳排放 ]

w1和w2的取值,说白了就是看调度员更看重经济性还是环保性。我记得有一次帮某省调做方案,他们要求碳排放降低10%,但成本增加不能超过2%。最后我们通过调整权重,找到了那个平衡点。

注意:碳排放目标不能设得太激进。我曾经见过一个案例,为了追求零碳,调度结果让所有煤机全停,结果电网频率波动差点越限。环保很重要,但安全永远是第一位的。

1.2 约束条件:现实世界的“紧箍咒”

目标函数再漂亮,也得看现实答不答应。约束条件就是那些“不能越界”的规则。我把它归纳为四大类:

1.2.1 功率平衡约束

这是最基础的约束。发电量必须等于负荷加上网损:

Σ P_i = P_load + P_loss

说白了就是:发多少,用多少,不能多也不能少。如果发多了,频率会升高;发少了,频率会下降。我在现场见过一次因为负荷预测偏差大,导致频率跌到49.8Hz,差点触发低频减载。所以这个约束是硬性的。

1.2.2 机组出力上下限约束

每台机组都有它的“能力范围”:

P_i_min ≤ P_i ≤ P_i_max

比如一台30万kW的机组,最小技术出力可能是15万kW。你不能让它发到5万kW,那会熄火的。同样,也不能让它超负荷运行。

关键点:出力下限往往被忽视。很多新手只关注上限,结果调度方案里出现了“让大机组压到10%出力”的情况,这在现实中根本做不到。

1.2.3 爬坡约束

机组出力不能突变。它需要时间:

-Ramp_down ≤ P_i(t) - P_i(t-1) ≤ Ramp_up

比如一台燃煤机组,爬坡速率可能是每分钟2%的额定容量。你不能要求它1分钟内从50%升到80%,那会触发锅炉保护跳闸的。

我曾经在调试一个实时调度系统时,发现算法总是给出“完美”的调度方案,但现场根本执行不了。后来一查,就是爬坡约束没加。加了之后,方案就变得可执行了。你想想看,模型再漂亮,执行不了就是废纸。

1.2.4 网络安全约束

这是最复杂的一类约束。它确保输电线路不过载:

|P_line| ≤ P_line_max

每条线路都有热稳定极限。如果某条线路潮流超过极限,轻则线路发热,重则跳闸导致连锁故障。

我记得2008年某次大停电事故,起因就是一条线路过载后跳闸,潮流转移到其他线路,引发连锁反应。所以网络安全约束不是摆设,是保命的。

1.3 知识体系总览

下面这张图是我自己画的,把整个数学模型的结构梳理清楚了:

实时调度数学模型 目标函数 1. 发电成本最小化 min Σ [a·P² + b·P + c] 2. 碳排放最小化 min Σ [e·P] 约束条件 1. 功率平衡 ΣP = P_load + P_loss 2. 出力上下限 P_min ≤ P ≤ P_max 约束条件(续) 3. 爬坡约束 -Ramp_d ≤ ΔP ≤ Ramp_u 4. 网络安全 |P_line| ≤ P_line_max 共同构成 核心:在满足所有约束的前提下,找到最优的机组出力组合

1.4 实战中的避坑指南

讲了这么多理论,最后分享几个我在项目中踩过的坑:

  1. 别忽略网损:有些初学者为了简化,把P_loss设成0。结果调度方案算出来,实际执行时频率总是偏低。网损一般占负荷的2%-5%,不能省。
  2. 爬坡约束要留余量:理论爬坡速率和实际有差距。我建议在模型中设成理论值的80%,留点安全裕度。
  3. 网络安全约束要动态更新:线路的极限容量会随天气变化。夏天高温时,线路容量可能下降20%。我曾经吃过这个亏,后来改成实时获取气象数据更新约束。
  4. 目标函数权重别拍脑袋:成本和碳排放的权重,最好通过历史数据反算。我一般用过去一个月的运行数据,拟合出合理的权重范围。
总结一句话:实时调度数学模型,目标函数告诉我们“往哪走”,约束条件告诉我们“不能去哪”。两者缺一不可。

好了,这一章就到这里。模型搭好了,下一章咱们聊聊怎么求解这个模型。记住,理论要落地,实践出真知。


公众号:蓝海资料掘金营,微信deep3321