列生成算法在风电-储能系统协同调度问题中的应用示例
字数 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. 主问题只包含少量列(初始调度方案)
  2. 子问题为每个机组单独生成更好的调度方案(新列)
  3. 迭代改进,直到找到最优解

详细解题步骤

步骤1:构建主问题(Restricted Master Problem, RMP)

主问题是线性规划松弛(允许机组启停变量连续化)。

决策变量

  • λ_{i,k}:选择机组i的第k个调度方案的比例(0 ≤ λ_{i,k} ≤ 1)
  • w_t:风电实际使用量
  • p_t^c, p_t^d, e_t:储能变量

约束

  1. 方案选择约束:对每个机组i,∑k λ{i,k} = 1(必须选一个完整方案)
  2. 功率平衡约束:对每个时段t,
    i (∑k P{i,k,t} * λ{i,k}) + w_t + p_t^d - p_t^c = D_t
    (机组出力 + 风电 + 放电 - 充电 = 负荷)
  3. 风电弃风约束:0 ≤ w_t ≤ Ŵ_t
  4. 储能运行约束(如上所述)

目标:最小化总成本 =
∑_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:迭代优化

  1. 将检验数为负的新方案加入主问题的列集合
  2. 重新求解主问题
  3. 更新对偶变量
  4. 重新求解子问题
    重复直到所有检验数非负。

步骤6:获取整数解

列生成得到的是线性规划松弛的最优解(λ_{i,k}可能是分数)。需要后续处理:

  1. 分支定价:在列生成框架内加入分支定界,强制λ为整数
  2. 启发式舍入:将分数解舍入为整数解(可能略次优但快速)

实例演示(简化数值)

假设:

  • 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:部分时段运行
  • 风电:高峰时段多用,低谷时段少用
  • 储能:在电价低时充电,电价高时放电

算法优势与适用性

  1. 处理大规模问题:将整体问题分解为多个小问题
  2. 灵活建模:每个机组的复杂约束在子问题中独立处理
  3. 与不确定性结合:可与随机规划结合,子问题考虑多个风电场景

关键难点与注意事项

  1. 子问题求解效率:需设计高效的动态规划算法
  2. 收敛速度:初期可能快速改进,后期收敛慢
  3. 整数解获取:分支定价实现复杂
  4. 对偶变量的稳定性:振荡可能影响收敛

这个示例展示了列生成如何将复杂的风电-储能协同调度分解为可管理的子问题,是解决大规模电力系统优化问题的有效方法。

列生成算法在风电-储能系统协同调度问题中的应用示例 我将为您讲解一个基于列生成算法的风电-储能协同调度问题。这个问题是电力系统经济调度的重要扩展,涉及如何处理风电的随机性和储能系统的灵活性。 问题描述 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 - (5 50 + 6 80) - ρ_ 1 = 120 - 730 - ρ_ 1 < 0 加入此新列 第2次迭代 : 重新求解RMP,更新对偶变量 再求解子问题,无负检验数 → 停止 最终得到的最优调度可能: 机组1:采用新方案(50, 80) 机组2:部分时段运行 风电:高峰时段多用,低谷时段少用 储能:在电价低时充电,电价高时放电 算法优势与适用性 处理大规模问题 :将整体问题分解为多个小问题 灵活建模 :每个机组的复杂约束在子问题中独立处理 与不确定性结合 :可与随机规划结合,子问题考虑多个风电场景 关键难点与注意事项 子问题求解效率 :需设计高效的动态规划算法 收敛速度 :初期可能快速改进,后期收敛慢 整数解获取 :分支定价实现复杂 对偶变量的稳定性 :振荡可能影响收敛 这个示例展示了列生成如何将复杂的风电-储能协同调度分解为可管理的子问题,是解决大规模电力系统优化问题的有效方法。