1. 配电网N-1扩展规划的核心逻辑
配电网N-1准则的本质是构建一个具备故障自愈能力的供电网络。想象一下城市道路系统:当某条主干道因事故封闭时,车辆能否通过周边路网顺利绕行?配电网的N-1规划就是为电力流动设计这样的"备选路径"。
1.1 N-1准则的数学表达
在规划模型中,N-1要求通常转化为两组核心约束条件:
-
拓扑连通性约束
对于任意支路k∈Ω(Ω为所有支路集合),当模拟其故障断开时,网络仍需保持连通:matlab复制sum(x_ij) ≥ 1, ∀i,j∈N, k∈Ω其中x_ij表示节点i到j的连通状态(0/1变量),N为节点集合。
-
运行安全约束
故障后所有设备负载率不超过安全限值:matlab复制
|P_k/(V_iV_j)| ≤ S_k_max, ∀k∈Ω\k_fault这里P_k为支路k的有功功率,V_i/V_j为端节点电压,S_k_max为容量上限。
1.2 闭环设计与开环运行的矛盾统一
配电网的独特之处在于其"闭环设计、开环运行"的特性。这就像设计了一个带多个闸门的环形水渠,平时只开放部分闸门控制水流方向(开环运行),但当某段渠道堵塞时,可以快速开启备用闸门形成新的通路(闭环切换)。
在Matlab建模时,这种特性通过双模式约束实现:
matlab复制% 开环运行约束(辐射状结构)
sum(b_ij) = N_bus - 1; % 支路数=节点数-1
% 闭环设计约束(故障时可闭合的联络开关)
for each fault_scenario
sum(b_ij) ≥ N_bus - 1;
end
其中b_ij表示支路闭合状态。
2. 联合规划模型的构建技巧
2.1 储能系统的双重角色建模
储能(ESS)在N-1规划中既是电源又是负荷,其充放电行为需用混合整数约束描述:
matlab复制% 充放电互斥约束
P_ESS = P_ch - P_dis
0 ≤ P_ch ≤ M·u
0 ≤ P_dis ≤ M·(1-u)
其中M为大常数,u为二进制变量(1充电/0放电)。
2.2 二阶锥松弛技术
为处理交流潮流非线性约束,采用二阶锥松弛:
matlab复制% 原非线性约束
P_ij^2 + Q_ij^2 ≤ (S_ij_max)^2
% 松弛为二阶锥约束
norm([2P_ij; 2Q_ij; l_ii-l_jj]) ≤ l_ii + l_jj
其中l_ii=V_i^2,松弛后的模型可用MISOCP求解器处理。
2.3 迭代约束生成算法
直接考虑所有N-1场景会导致模型规模爆炸,采用如下迭代流程:
- 求解松弛主问题(忽略大部分N-1约束)
- 检查解是否违反任意N-1场景
- 添加最严重违反场景的约束
- 重复直至所有场景满足
3. Matlab实现关键代码解析
3.1 节点-支路关联矩阵生成
matlab复制function I_Matrix=Nodes_get_I(Nodes_Counts,Line_dat)
% 构建关联矩阵时需注意:
% 1. 支路方向约定:从首端指向末端
% 2. 环网支路需特殊标记(如负号)
I_Matrix=zeros(Nodes_Counts,size(Line_dat,1));
for i=1:size(Line_dat,1)
I_Matrix(Line_dat(i,1),i)=1; % 首端节点
I_Matrix(Line_dat(i,2),i)=-1; % 末端节点
end
end
3.2 基于YALMIP的优化建模
matlab复制% 定义决策变量
x = binvar(nLines,1); % 线路投资变量
P_ESS = sdpvar(nESS,T,'full'); % 储能出力
u_ESS = binvar(nESS,T,'full'); % 储能状态
% 构建目标函数
Cost = sum(C_inv.*x) + sum(C_ESS*P_ESS, 'all');
% 添加N-1约束
for k=1:nLines
Constraints = [Constraints,
% 模拟第k条支路故障
sum(x(setdiff(1:nLines,k))) >= nBus-1,
% 潮流约束
P_min <= P_bus <= P_max,
% 电压约束
V_min^2 <= V <= V_max^2];
end
% 求解优化
optimize(Constraints, Cost, sdpsettings('solver','gurobi'));
4. 典型问题与调试技巧
4.1 不可行问题排查
当模型报不可行时,按以下步骤诊断:
- 松弛所有N-1约束,检查基础模型可行性
- 逐步添加约束,定位冲突约束
- 可视化拓扑,检查孤岛节点:
matlab复制spy(incidence_matrix) % 查看连通性
4.2 计算加速策略
- 并行场景校验:
matlab复制parfor k=1:nLines check_N1_scenario(k); end - 热启动技巧:用上一轮解作为初始点
matlab复制
assign(x, x_prev);
4.3 结果验证方法
- 反向验证:随机断开支路,手动计算潮流
- 灵敏度分析:扰动关键参数,观察方案稳定性
matlab复制for p=0.9:0.05:1.1 % ±10%负荷变化 test_robustness(optimal_x, p); end
5. 工程实践中的经验法则
-
储能选址黄金定律:
- 优先布置在电压敏感节点(如网络末端)
- 容量与所在馈线负荷成比例(建议15-20%峰值负荷)
-
线路投资优先级:
matlab复制
投资优先级 = 负荷重要度 × 故障影响范围 ÷ 单位长度成本 -
电压约束处理技巧:
- 对长线路采用分段电压控制
- 在轻载时段投入并联电容器
6. 扩展应用场景
6.1 新能源高渗透场景
当光伏渗透率>30%时,需增加:
matlab复制% 反孤岛保护约束
P_DG ≤ 0.3*P_load_local
6.2 多时间尺度规划
matlab复制% 分阶段投资决策
for t=1:T_horizon
Constraints = [Constraints,
x(t) >= x(t-1)]; % 投资不可逆
end
7. 性能优化实战案例
以IEEE 25节点系统为例,通过以下改进将求解时间从6小时缩短至45分钟:
- 网络约简:合并电气距离<1km的相邻节点
- 有效不等式:添加预计算的可行割平面
matlab复制Constraints = [Constraints, sum(x(1:5)) >= 3]; % 经验割平面 - 场景筛选:忽略故障概率<1e-4的支路
最终方案显示,配置2处储能(3MW/12MWh)可减少23%的线路投资,同时满足所有N-1场景。