在电力系统需求侧管理中,居民用户用电量占比高达36.6%,具有用户基数大、个体负荷弹性低、用电效率不高等特点。传统调度方式难以有效挖掘这部分资源的响应潜力。本项目提出了一种基于非合作博弈理论的分层调度模型,通过负荷聚合商(LA)整合居民柔性负荷资源,构建电网公司、聚合商和用户的三层互动框架。
这个模型的核心创新点在于将博弈论思想引入负荷调度领域。在日前市场阶段,各聚合商为追求自身利润最大化形成非合作博弈关系;在实时调度阶段,则需考虑不同类型负荷的物理特性和用户舒适度约束。为求解这一复杂问题,我们采用了改进的双层鲸鱼算法(BiWOA),通过Tent混沌映射和非线性收敛因子等改进策略,有效提升了算法在解决多目标优化问题时的性能。
目标函数:
code复制min F_grid = α1*C_purchase + α2*P_loss + α3*ΔV
其中:
约束条件包括:
目标函数:
code复制max F_LA = R_market - C_DR - C_penalty
其中:
根据物理特性将居民负荷分为三类:
开关型负荷(如照明、电视):
code复制P_a(t) = x_a(t)·P_e, x_a(t)∈{0,1}
调度时需满足最小持续运行时间约束:
code复制t_on ≥ T_min_on
t_off ≥ T_min_off
分档型负荷(如空调、电热水器):
code复制P_a = [P_1, P_2, ..., P_G]^T
需满足温度舒适带约束:
code复制T_min ≤ T_room ≤ T_max
连续型负荷(如电动汽车):
code复制SOC(t+1) = SOC(t) + (η_ch·P_ch - P_dis/η_dis)·Δt/E_max
充放电需满足:
code复制SOC_min ≤ SOC(t) ≤ SOC_max
0 ≤ P_ch ≤ P_ch_max
0 ≤ P_dis ≤ P_dis_max
其中:
通过KKT条件推导得到均衡解需满足:
code复制∂π_i/∂q_i = p(Q) + q_i·p'(Q) - C_i'(q_i) = 0, ∀i
采用迭代求解流程:
code复制q_i^k = argmax π_i(q_i,q_{-i}^{k-1})
code复制||q^k - q^{k-1}|| < ε
原始WOA存在:
采用Tent混沌映射生成初始种群:
code复制x_{k+1} = {
2x_k, 0 ≤ x_k ≤ 0.5
2(1-x_k), 0.5 < x_k ≤ 1
}
相比随机初始化,混沌序列具有更好的遍历性和收敛速度。
设计非线性收敛因子:
code复制a = a_max - (a_max-a_min)·(t/T)^β
其中β为调节因子(通常取0.5-1.5),t为当前迭代次数,T为总迭代次数。
引入线性递减权重:
code复制w = w_max - (w_max-w_min)·t/T
包围猎物阶段位置更新公式变为:
code复制D = |C·X^*(t) - X(t)|
X(t+1) = w·X^*(t) - A·D
采用罚函数法处理约束:
code复制F_penalty = F_original + λ·∑max(0, g_i(x))^2
其中λ为惩罚系数,随迭代次数自适应调整:
code复制λ = λ_max·exp(-5·t/T)
| 参数 | BiWOA | PSO | GA |
|---|---|---|---|
| 种群规模 | 50 | 50 | 100 |
| 最大迭代次数 | 200 | 200 | 300 |
| 其他关键参数 | a_max=2, β=1.2 | c1=c2=1.5 | pc=0.9, pm=0.1 |
表1:优化目标对比
| 指标 | 原始方案 | BiWOA | PSO | GA |
|---|---|---|---|---|
| 系统总成本(万元) | 128.6 | 94.0 | 102.3 | 107.8 |
| 网损(MWh) | 4.25 | 3.12 | 3.45 | 3.68 |
| 电压偏差(p.u.) | 0.082 | 0.054 | 0.061 | 0.069 |
表2:算法性能对比
| 指标 | BiWOA | PSO | GA |
|---|---|---|---|
| 收敛代数 | 87 | 132 | 195 |
| 运行时间(s) | 23.6 | 35.2 | 48.7 |
| 最优解稳定性 | 98.7% | 92.3% | 85.6% |
从仿真结果可见:
matlab复制function [bestSol, bestFit] = BiWOA(prob, params)
% 初始化
population = TentChaoticInit(params.N, prob.dim, prob.lb, prob.ub);
% 迭代优化
for t = 1:params.T
% 计算适应度
fitness = evaluateFitness(population, prob);
% 更新最优解
[bestFit, bestIdx] = min(fitness);
bestSol = population(bestIdx,:);
% 自适应参数计算
a = 2 - 2*(t/params.T)^1.2;
w = 0.9 - 0.5*t/params.T;
% 更新种群位置
for i = 1:params.N
r1 = rand(); r2 = rand();
A = 2*a*r1 - a;
C = 2*r2;
if rand() < 0.5
if abs(A) < 1
% 包围猎物
D = abs(C.*bestSol - population(i,:));
population(i,:) = w*bestSol - A.*D;
else
% 全局搜索
randIdx = randi([1 params.N]);
D = abs(C.*population(randIdx,:) - population(i,:));
population(i,:) = population(randIdx,:) - A.*D;
end
else
% 气泡网攻击
D = abs(bestSol - population(i,:));
L = LevyFlight(prob.dim);
b = 1; % 螺旋形状常数
population(i,:) = D.*exp(b.*L).*cos(2*pi*L) + bestSol;
end
end
% 边界处理
population = max(population, prob.lb);
population = min(population, prob.ub);
end
end
matlab复制% 电动汽车调度
function [P_ev, U_ev] = scheduleEV(SOC_init, T_arrival, T_depart, P_max, E_req)
horizon = 96; % 15分钟间隔
P_ev = zeros(1,horizon);
U_ev = zeros(1,horizon);
% 充电需求计算
E_needed = E_req - SOC_init*E_max;
t_available = T_depart - T_arrival;
% 均匀充电策略
P_avg = min(P_max, E_needed/t_available);
P_ev(T_arrival:T_depart) = P_avg;
U_ev(T_arrival:T_depart) = 1;
% 考虑分时电价优化
[~, idx] = sort(price(T_arrival:T_depart));
charge_seq = idx(1:ceil(E_needed/P_avg));
P_ev(T_arrival + charge_seq - 1) = P_avg;
end
数据预处理要点:
P_norm = (P - P_min)/(P_max - P_min)参数调优经验:
常见问题排查:
出现不收敛情况:
结果波动较大:
工程实施建议:
多能源系统集成:
不确定性处理:
市场化扩展:
算法融合创新:
在实际项目中,我们发现空调负荷的调度潜力最大但用户敏感度也最高。通过设置差异化的温度舒适带(如客厅23±1℃,卧室25±1℃),可以在不影响用户体验的前提下挖掘约15%的调节潜力。对于电动汽车负荷,充电起始时间延迟2小时即可有效缓解晚间峰时压力,这需要通过合理的激励政策来实现用户行为引导。