微电网作为分布式能源的重要载体,其容量配置直接影响系统经济性和可靠性。传统单层优化方法在面对源荷双重不确定性时,往往陷入"配置即过时"的困境——刚完成设备选型,实际运行工况就已偏离设计场景。我在参与某工业园区微网项目时,曾遇到光伏实际出力连续5天低于预测值40%的情况,导致配置方案完全失效。
两阶段鲁棒优化的核心价值在于:外层决策(容量配置)和内层决策(运行调度)形成博弈关系。这种"领导者-跟随者"框架能自动捕捉最恶劣场景,确保配置方案在任何情况下都保持可行性。举个例子,当我们在内层优化中考虑±20%的负荷波动时,外层配置会自动预留足够的备用容量,这种保守性正是工程实践中最需要的安全边际。
主问题建模采用YALMIP的sdpvar变量定义电源容量:
matlab复制P_pv = sdpvar(1,'full'); % 光伏容量决策变量
P_wt = sdpvar(1,'full'); % 风机容量决策变量
C_inv = cp*P_pv + cw*P_wt; % 投资成本计算
这里特别设置'full'参数保证变量完全自由度,避免因对称性导致求解困难。投资成本系数cp和cw需要根据当地设备价格动态调整,建议采用近三年市场均价。
将碳排放转化为经济惩罚的创新方法:
matlab复制% 排放系数(gCO2/kWh)
co2_coef = [800 600 50]; % 燃机、柴油机、购电
lambda = 0.02; % 碳价转换系数($/kg)
env_cost = lambda*(co2_coef*P_gen)/1000;
这个转换系数的确定需要参考:
负荷波动率设置需要历史数据支撑:
matlab复制% 基于3σ原则确定波动范围
load_hist = xlsread('load_profile_5y.xlsx');
d_mean = mean(load_hist);
d_std = std(load_hist);
d_load = 3*d_std/d_mean; % 99.7%置信区间
实际项目中我们发现,工业负荷的波动性具有明显时段特征,建议采用分时段的动态不确定集:
matlab复制for t=1:24
if ismember(t,7:18) % 白天时段
d_load(t) = 0.15;
else % 夜间时段
d_load(t) = 0.25;
end
end
风机出力的不确定性处理:
matlab复制P_wt_actual = P_wt * kappa; % kappa为归一化出力系数
kappa_unc = uncertain(1);
Cons = [0.3 <= kappa_unc <= 1.0]; % 根据风场特性设置
这里0.3的下限是基于风机切入风速和额定风速的转换关系计算得出,不同机型需要调整该参数。
列与约束生成算法的MATLAB实现框架:
matlab复制iter = 1;
gap = inf;
while gap > 1e-4 && iter < 50
% 主问题求解
optimize(master_cons, master_obj);
UB = value(master_obj);
% 固定主问题变量求解子问题
P_pv_fix = value(P_pv);
P_wt_fix = value(P_wt);
optimize(sub_cons, sub_obj);
LB = max(LB, value(sub_obj));
% 生成Benders割
new_cut = (sub_obj >= ...);
master_cons = [master_cons, new_cut];
gap = UB - LB;
iter = iter + 1;
end
我们在某微网项目中发现,当光伏容量超过2MW时,直接使用对偶变量生成的割平面会导致主问题无解。通过引入正则化项和人工变量,成功解决了这一数值稳定性问题。
环境惩罚因子λ的影响规律:
matlab复制lambda_range = linspace(0,0.1,20);
results = zeros(20,3);
for i=1:20
lambda = lambda_range(i);
optimize(cons,obj);
results(i,:) = [value(P_pv), value(P_wt), value(obj)];
end
通过绘制P_pv、P_wt随λ变化的曲线,可以清晰观察到配置方案的相变点。在某沿海项目中,当λ>0.035时,系统配置从"燃气轮机主导"突变为"风光储联合",这种非线性特征必须通过参数扫描才能发现。
CPLEX与GUROBI的性能对比:
实际案例:在某含储能的微网配置中,CPLEX求解时间比GUROBI少17%,但当加入设备启停约束后,GUROBI反而快23%。建议准备两套求解环境,根据模型特性灵活选择。
某工业园区微网的优化结果:
| 场景 | PV(MW) | WT(MW) | 日成本($) | 碳排放(kg) |
|---|---|---|---|---|
| 纯经济导向 | 0.8 | 0.5 | 12,800 | 9,200 |
| 环保约束型 | 1.5 | 1.2 | 14,500 | 5,100 |
| 鲁棒优化 | 1.2 | 0.8 | 15,200 | 6,800 |
鲁棒方案虽然成本增加18.7%,但相比纯经济方案碳排放降低26%,且能承受±25%的源荷波动。这种折中特性使其成为大多数工程项目的首选。
波动率参数d对配置的影响:
code复制d_load(%) | PV配置(MW) | 成本增长率(%)
10 | 0.9 | +4.2
20 | 1.2 | +11.5
30 | 1.6 | +23.8
数据显示,当d_load>25%后,成本增长呈现超线性特征。建议在实际项目中控制不确定集在15-20%之间,通过历史数据校准获得最佳平衡点。
matlab复制assign(P_pv, prev_pv);
assign(P_wt, prev_wt);
optimize(cons,obj,ops);
在某省级微网规划项目中,通过热启动技术使计算时间从6.2小时缩短至2.8小时,迭代次数减少56%。
考虑微网间功率交换的增强模型:
matlab复制P_ex = sdpvar(N,N,T,'full'); % 微网间交换功率
Cons = [sum(P_ex,1) == 0]; % 功率平衡
需要新增以下约束:
这种扩展会使问题复杂度呈指数增长,建议先采用聚类方法将微网分组,再分层优化。