列生成算法在风电-储能系统协同调度问题中的应用示例
字数 2454 2025-12-07 11:13:51
列生成算法在风电-储能系统协同调度问题中的应用示例
我将为您讲解一个基于列生成算法的风电-储能协同调度问题。这个问题是电力系统经济调度的重要扩展,涉及如何处理风电的随机性和储能系统的灵活性。
问题描述
1. 问题背景
在实际电力系统中,风电具有显著的间歇性和不确定性。储能系统(如电池)可以存储多余的风电,在风电不足时释放,平滑电力输出。我们需要制定一个24小时调度计划,决定:
- 常规发电机组的启停与出力
- 储能系统的充放电计划
- 风电的实际使用量(可能弃风)
目标是在满足用电需求的前提下,最小化总运行成本(包括发电机燃料成本、启停成本、储能损耗成本等)。
2. 数学模型要素
- 时间:t = 1, 2, ..., T(T=24小时)
- 常规机组:i = 1, 2, ..., I,有最小/最大出力限制、爬坡率限制
- 风电场:预测出力为Ŵ_t,实际使用w_t ≤ Ŵ_t(可弃风)
- 储能系统:
- 充电功率p_t^c ≥ 0,放电功率p_t^d ≥ 0
- 不能同时充放电:p_t^c * p_t^d = 0
- 储能水平e_t:e_{t+1} = e_t + η_c * p_t^c - (1/η_d) * p_t^d,且有容量上下限
- 负荷需求:D_t必须被严格满足
为什么用列生成算法?
如果直接建立包含所有机组所有可能运行状态的模型,变量数会爆炸(每个机组在24小时有指数级可能的启停序列)。列生成算法可以:
- 主问题只包含少量列(初始调度方案)
- 子问题为每个机组单独生成更好的调度方案(新列)
- 迭代改进,直到找到最优解
详细解题步骤
步骤1:构建主问题(Restricted Master Problem, RMP)
主问题是线性规划松弛(允许机组启停变量连续化)。
决策变量:
- λ_{i,k}:选择机组i的第k个调度方案的比例(0 ≤ λ_{i,k} ≤ 1)
- w_t:风电实际使用量
- p_t^c, p_t^d, e_t:储能变量
约束:
- 方案选择约束:对每个机组i,∑k λ{i,k} = 1(必须选一个完整方案)
- 功率平衡约束:对每个时段t,
∑i (∑k P{i,k,t} * λ{i,k}) + w_t + p_t^d - p_t^c = D_t
(机组出力 + 风电 + 放电 - 充电 = 负荷) - 风电弃风约束:0 ≤ w_t ≤ Ŵ_t
- 储能运行约束(如上所述)
目标:最小化总成本 =
∑_i ∑k (调度方案k的成本) * λ{i,k}
- 储能损耗成本
- 弃风惩罚(如果考虑)
初始时,每个机组只给1-2个简单方案(如全天停机、全天满出力)。
步骤2:求解主问题,获得对偶变量
用单纯形法求解RMP(线性规划),得到:
- π_t:每个时段t功率平衡约束的对偶价格(反映电力的边际价值)
- ρ_i:每个机组i方案选择约束的对偶价格
步骤3:构建子问题(Pricing Subproblem)
每个机组i独立求解一个最短路径问题(或动态规划),寻找成本更低的调度方案。
子问题模型(以机组i为例):
状态:机组在时段t的状态(开机/停机)和出力水平。
目标:最小化检验数 = 方案总成本 - ∑_t π_t * P_t - ρ_i
其中:
- 方案总成本 = 燃料成本 + 启停成本
- ∑_t π_t * P_t 是方案获得的价值(相当于卖电收入)
- ρ_i 是固定偏移
约束:
- 机组技术约束:出力上下限、爬坡率、最小启停时间
- 状态转移逻辑
求解:这是一个带时间耦合约束的最短路径问题,可用动态规划在24个时段的状态网格上求解。
步骤4:判断是否最优
对每个机组i,求解子问题得到最小检验数 θ_i^*:
- 如果所有θ_i^* ≥ 0,则当前主问题的解是最优的(无负检验数列)
- 如果某个θ_i^* < 0,则该机组的新调度方案能降低总成本,将其加入主问题
步骤5:迭代优化
- 将检验数为负的新方案加入主问题的列集合
- 重新求解主问题
- 更新对偶变量
- 重新求解子问题
重复直到所有检验数非负。
步骤6:获取整数解
列生成得到的是线性规划松弛的最优解(λ_{i,k}可能是分数)。需要后续处理:
- 分支定价:在列生成框架内加入分支定界,强制λ为整数
- 启发式舍入:将分数解舍入为整数解(可能略次优但快速)
实例演示(简化数值)
假设:
- 2个常规机组,1个风电场,1个储能
- 时段:t=1,2(简化)
- 初始主问题中,每个机组只有两个方案:
方案1:两个时段都停机(出力0,成本0)
方案2:两个时段都满出力(出力100,成本200)
第1次迭代:
- 求解RMP,得 π_1 = 5, π_2 = 6(电价)
- 对机组1求解子问题:发现一个更好方案
【时段1出力50,时段2出力80,成本120】
检验数 = 120 - (550 + 680) - ρ_1 = 120 - 730 - ρ_1 < 0 - 加入此新列
第2次迭代:
- 重新求解RMP,更新对偶变量
- 再求解子问题,无负检验数 → 停止
最终得到的最优调度可能:
- 机组1:采用新方案(50, 80)
- 机组2:部分时段运行
- 风电:高峰时段多用,低谷时段少用
- 储能:在电价低时充电,电价高时放电
算法优势与适用性
- 处理大规模问题:将整体问题分解为多个小问题
- 灵活建模:每个机组的复杂约束在子问题中独立处理
- 与不确定性结合:可与随机规划结合,子问题考虑多个风电场景
关键难点与注意事项
- 子问题求解效率:需设计高效的动态规划算法
- 收敛速度:初期可能快速改进,后期收敛慢
- 整数解获取:分支定价实现复杂
- 对偶变量的稳定性:振荡可能影响收敛
这个示例展示了列生成如何将复杂的风电-储能协同调度分解为可管理的子问题,是解决大规模电力系统优化问题的有效方法。