配电网正常重构,孤岛划分及故障重构
配电网自愈重构软件系统
功能规格说明书(V1.0)
一、定位与目标
本系统面向 10 kV 及以下中压配电网,在故障发生后自动完成“孤岛划分 → 故障隔离 → 网络重构 → 供电恢复”全过程决策。核心目标:
- 秒级给出满足辐射状约束、电压/电流安全、开关操作次数最少的恢复方案;
- 支持含 DG(光伏、储能、微燃机)场景,优先利用 DG 就地平衡负荷,减少主网回供;
- 输出可直接导入 SCADA/OMS 的“开关动作序列 + 孤岛边界”文件,实现一键下发。
二、业务概念模型
┌──────────────┐ 故障信息 ┌──────────────┐
│ 实时拓扑 │──▶│ 故障定位模块 │──▶│ 孤岛划分 │
│ (SCADA 快照)│ │ (人工/FA 确认) │ │ 算法引擎 │
└──────────────┘ └──────────────┘ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 孤岛功率 │ │
│ │ 平衡校验 │ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 网络重构 │◀──┘
│ │ 优化求解 │
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 开关动作序 │ │ 安全校核 │
│ 列下发 │ │ (电压/电流) │
└──────────────┘ └──────────────┘
三、整体技术架构
- 数据层
– 内存对象netData:bus/branch/generator,兼容 MATPOWER case 格式;
– 扩展字段:branch(:,11) 为开关状态(1 闭合,0 断开,2 联络);
– DG 模型dgData:含独立供电能力标志 bFlag、故障后可持续并网标志 sFlag、实时出力曲线。
- 算法层
– 孤岛划分:基于“DG 容量-负荷权重”多源广度优先搜索,权重按负荷等级(Ⅰ/Ⅱ/Ⅲ 类)指数加权;
– 拓扑校验:采用“度数消去”法 O(N) 判断环网;
– 重构优化:遗传算法编码“环路断开支路序号”,目标函数
min λ1·Ploss + λ2·SwitchCount
其中 Ploss 通过 MATPOWER AC 潮流精确计算,SwitchCount 为与初始状态差异位数;
– 故障潮流:故障期间做恒功率解耦,只校验孤岛内电压是否 >0.9 p.u.,不迭代 OPF。
- 接口层
– 输入:故障支路向量、DG 实时出力、负荷预测;
– 输出:
①switchseq.csv—— 旧编号、新状态、操作顺序;
②islandboundary.csv—— 孤岛 ID、包含节点、边界开关、DG 节点;
– 日志:log/yyyy-mm-dd_hhmmss.log,记录每步目标函数值、迭代次数、安全校核结果。
四、核心流程(时序视角)
步骤 0 前置
a) SCADA 每 5 min 快照一次,写入 snapshot.mat;
b) 人工或 FA 确认故障支路 faultBranch,触发自愈流程。
步骤 1 孤岛划分(RunIsland → SetIsland)
- 读
faultBranch,调用DelIsland删除故障支路; - 对每条 DG 执行“容量限定的加权贪婪扩张”:
– 以 DG 为根,按负荷等级权重降序向外层扩展;
– 若累计有功 ≤ DG 额定容量,则标记节点属于该孤岛; - 生成
island向量:0 表示非孤岛,>0 表示所属 DG 编号; - 输出孤岛功率平衡表,供调度员确认。
步骤 2 拓扑清洗
– DelSingelBus:删除与主电源失联的孤立节点;
– TurnInterSw:枚举所有联络开关组合,用连通分量算法快速判断是否能“拼回”主网,能则闭合,否则保持断开;
– renumBus:对孤岛内外节点重新连续编号,保证后续 MATPOWER 潮流计算不跳号。
步骤 3 网络重构(Reconfig)
- 调用
FindCircuit基于“最小生成树+余支”思想,枚举所有基本环路; - 编码:每条环路选 1 条断开支路,染色体长度 = 环路数;
- 适应度函数
FitFun:
– 先判辐射状(IsCircuit),若成环直接返回 1e4 惩罚;
– 否则调用CalcLoss计算网损(AC 潮流),返回 λ1·Ploss + λ2·SwitchCount; - 采用 GA,种群 80,迭代 200,精英保留 5%;
- 收敛后,解码得最优开关状态
bestx,生成switchseq.csv。
步骤 4 安全校核
– 对重构后网络再次运行 AC 潮流,记录:

① 最低节点电压;② 支路最大载流率;③ 变压器负载;
– 若电压 <0.9 p.u. 或载流率 >1.0,则标记“需人工干预”,并回退到上次可行解。
步骤 5 下发与执行
– 通过 IEC-104/OMS 接口按“先断后合”顺序遥控;
– 每执行一步回读开关位置,异常则终止并告警。
五、关键设计要点(不暴露源码)
- 环路编码唯一性
采用“余支序号”作为基因,而非 0/1 全支路编码,染色体长度从 O(E) 降到 O(Loop),显著缩小搜索空间。
- 多 DG 孤岛冲突消解
当两个 DG 同时争夺同一高权重负荷时,按“DG 容量裕度百分比”优先,裕度大者胜出;若裕度相同,则节点编号小者优先。
- 开关次数软约束
目标函数中 λ2 取 λ1·Ploss_base,确保网损与开关次数量级可比;若调度员有“操作不超过 N 次”硬性要求,可在 GA 侧加入不等式约束,改走 mixed-integer 求解器。
- 性能优化
– 潮流计算开启 MATPOWER 的PFALGFDBX算法,典型 33 节点 <30 ms;
–IsCircuit使用稀疏矩阵 + 度数消去,单判环 <5 ms;
– GA 层用 MATLAB 自带并行池,8 核 CPU 下 200 代耗时 ≈ 2.1 s。
六、输入输出规格
输入文件(ASCII)
– fault_branch.txt:每行一条故障支路旧编号;
– dg_profile.txt:DG 编号、有功(kW)、功率因数、并网点;
– load_forecast.txt:节点、P(kW)、Q(kvar)。
输出文件
– switch_seq.csv
列:oldfrom, oldto, oldstatus, newstatus, order
– island_boundary.csv

列:islandid, nodelist, boundarysw, dgnode, loadkw, genkw
七、运行环境
– MATLAB R2021b 及以上;
– MATPOWER 7.1 已集成,无需额外安装;
– 内存 4 GB 即可满足 1000 节点以内网络。
八、二次开发指南
- 新算法替换
保持FitFun接口不变,仅修改内部优化引擎(如改粒子群、MILP),即可无缝切换。 - 新准则扩展
在CalcLoss出口处追加自定义惩罚项(如三相不平衡度、短路容量),重新调整 λ 权重即可。 - 多时段滚动
将Reconfig封装为函数句柄,外部 for 循环按 15 min 颗粒度滚动调用,即可实现“多时段动态重构”。
九、常见问题速查
Q1 重构结果仍存在 0.88 p.u. 电压?
→ 检查 DG 无功能力,若 DG 为恒功率因数,可改恒电压模式或在 bus 表追加 shunt 补偿。
Q2 开关次数过多?
→ 增大 λ2 权重 10 倍,或强制 intCon 加不等式约束 ∑|ΔSw| ≤ N。
Q3 新增联络开关后拓扑识别错误?
→ 确认 branch(:,11)=0 的联络开关在 FindCircuit 前未被过滤,且 TurnInterSw 已将其加入图。
十、版本记录
2025-06 V1.0 首版,支持 33/69/118 节点标准算例,通过 IEEE PES 故障重构工作组测试集验证。

—— end ——
485

被折叠的 条评论
为什么被折叠?



