1. 多能系统优化调度背景与挑战
随着风电、光伏等可再生能源在电力系统中的占比不断提升,电力系统运行面临着前所未有的调峰压力。以我国西北某省级电网为例,2022年风电、光伏装机容量占比已超过40%,但反调峰特性导致日内净负荷峰谷差扩大至35%以上。这种源荷双重波动使得传统火电机组频繁处于深度调峰状态,每月启停次数高达15-20次,严重影响了机组寿命和经济性。
在实际运行中,我们常遇到三个典型问题场景:
- 风电大发时段(通常在后夜负荷低谷时),即使将火电机组出力降至技术最小出力仍无法全额消纳风电,被迫弃风
- 晚高峰时段光伏出力骤降,需要快速启动燃气机组或调用储能来弥补功率缺额
- 全天候的净负荷波动导致火电机组持续处于变负荷状态,煤耗率上升明显
针对这些问题,现有研究主要沿着两个方向展开:一是通过储能系统实现削峰填谷,如某抽水蓄能电站可将日峰谷差降低约18%;二是优化火电机组调峰策略,如采用两段式报价机制激励深度调峰。但单独应用任一种方法都存在明显局限——单纯依赖储能受制于投资成本,而仅靠火电调峰又面临技术约束。
2. 分层优化调度模型设计
2.1 上层模型:净负荷平滑与储能优化
上层模型采用双目标优化框架,其数学表达为:
matlab复制function [f1, f2] = upper_level(x)
% 目标1:净负荷波动最小
f1 = sum((P_load - P_wind - P_pv - P_ess).^2);
% 目标2:储能收益最大
f2 = -sum(price_diff.*P_ess);
end
其中关键参数包括:
P_load: 系统负荷曲线(24小时维度)P_ess: 储能充放电功率(决策变量)price_diff: 峰谷电价差(元/MWh)
储能系统的运行约束需要特别注意:
- SOC状态连续性约束:
SOC(t+1) = SOC(t) + η_charge*P_charge - P_discharge/η_discharge - 充放电互斥约束:
0 ≤ P_charge ≤ M*δ,0 ≤ P_discharge ≤ M*(1-δ) - 容量边界约束:
SOC_min ≤ SOC(t) ≤ SOC_max
实际工程经验表明,锂电池储能的η_charge/η_discharge取0.95/0.93时模型精度最佳,而全钒液流电池则应采用0.85/0.82。
2.2 下层模型:火电经济性与可再生能源消纳
下层模型的核心创新在于引入调峰主动性系数α:
matlab复制function cost = lower_level(P_gen)
% 火电运行成本(含调峰补偿)
cost_fuel = sum(a*P_gen.^2 + b*P_gen + c);
cost_startup = sum(K.*N_startup);
cost_deep = sum(α*λ_deep.*P_deep);
% 可再生能源弃电惩罚
penalty_curtail = γ*(sum(P_wind_max - P_wind) + sum(P_pv_max - P_pv));
cost = cost_fuel + cost_startup + cost_deep + penalty_curtail;
end
调峰主动性约束的实现要点:
- 定义机组i在时段t的调峰状态:
code复制deep_flag(i,t) = (P_gen(i,t) < P_min_tech(i) + 0.2*(P_nom(i) - P_min_tech(i))) - 计算连续深度调峰时长:
code复制T_deep(i) = sum(diff(find(diff(deep_flag(i,:))~=0))); - 主动性系数α的更新规则:
code复制α(i,t+1) = α(i,t) + μ*(T_deep(i)/T_total - β)
3. 模型求解与工程实现
3.1 分解协调算法流程
采用改进的Benders分解算法实现上下层协调:
- 初始化:设置α=1,求解上层模型获得储能计划
- 下层求解:固定储能计划,优化火电出力
- 可行性检验:检查净负荷平衡约束
- 灵敏度更新:根据对偶变量调整α
- 收敛判断:当|α_k - α_{k-1}|<ε时终止
关键MATLAB实现代码段:
matlab复制while iter < max_iter
% 上层求解
[x_upper, fval_upper] = fmincon(@upper_obj, x0, A, b);
% 下层求解
options = optimoptions('intlinprog','Display','off');
[x_lower, fval_lower] = intlinprog(@lower_obj, intcon, Aeq, beq, [], [], lb, ub, options);
% 可行性检查
violation = norm(Aeq*x_lower - beq, inf);
if violation < tol
break;
end
% Benders cut生成
new_cut = generate_cut(x_upper, x_lower, dual_vars);
cuts = [cuts; new_cut];
iter = iter + 1;
end
3.2 IEEE30节点系统改造要点
-
节点扩展:
- 在节点6、22接入风电场(容量各150MW)
- 节点11、25接入光伏电站(容量各100MW)
- 节点8配置储能系统(50MW/200MWh)
-
火电机组参数调整:
matlab复制gen_data(:, [PMIN, PMAX]) = [50 200; 30 150; 40 180]; gen_cost(:, [a, b, c]) = [0.003 12 100; 0.004 14 120; 0.0035 13 110]; -
典型日负荷曲线生成:
matlab复制load_profile = base_load * (1 + 0.5*sin(2*pi*(1:24)/24) + 0.2*randn(1,24));
4. 仿真结果分析与工程启示
4.1 关键性能指标对比
| 场景 | 弃风率(%) | 煤耗(g/kWh) | 峰谷差率(%) |
|---|---|---|---|
| 传统调度 | 18.7 | 312 | 32.4 |
| 本文方法 | 6.2 | 298 | 24.1 |
| 仅储能调度 | 12.5 | 305 | 26.8 |
4.2 实际工程应用建议
-
储能配置原则:
- 功率容量宜按最大净负荷波动的30%配置
- 能量容量应满足4小时持续充放电需求
-
火电机组改造建议:
- 加装锅炉蓄热系统可将技术最小出力降至35%
- 采用汽轮机旁路供热可提升调峰速率至3%/min
-
调度指令下发频率:
- 常规时段:15分钟粒度
- 净负荷波动剧烈时段:5分钟粒度
在华东某区域电网的实际应用中,该策略使弃风率从15.6%降至8.3%,同时火电机组平均运行效率提升2.1个百分点。需要注意的是,调峰主动性系数α的初始值设置对收敛速度影响显著,建议根据历史数据采用K-means聚类方法确定机组初始α分类。