配电网故障恢复这个方向,论文复现看起来都是同一个套路:给定一个 IEEE 33 节点系统,设置几条支路故障,然后跑一个优化算法,输出开关开合方案和恢复容量。但真到自己动手复现"同时考虑孤岛与重构"的策略时,才发现坑远比比想象的多。孤岛和重构单独做是一回事,两者耦合在一起求解是另一回事。这篇就把我完整复现的过程、建模思路、代码关键点和踩过的坑一次说清楚。
这篇内容适合正在做配电网故障恢复、主动配电网运行优化方向的研究生,也适合想了解 YALMIP 配混合整数二阶锥规划怎么落地到实际电力系统问题里的工程师。我会从问题建模开始,一路讲到最终的 Matlab 实现框架和调参心得,尽量把"为什么这样做"讲透。
1. 故障恢复问题的本质:为什么孤岛和重构必须同时考虑
1.1 传统重构方案的局限
配电网故障恢复的传统思路是"重构":故障发生后,通过改变联络开关和分段开关的开合状态,把失电区域的负荷转移到其他健全馈线上。这个思路在配电网结构比较简单、分布式电源渗透率不高的时候完全够用。
但现在的配电网早就不是单电源辐射状供电子。大量分布式光伏、风机、储能接入之后,故障恢复面临一个新的局面:失电区域里本身就有电源。如果放着这些分布式电源不用,单纯依赖重构从变电站侧转移功率,可能面临几个问题:
第一,联络线的容量限制。相邻馈线自己也有负荷,能通过联络开关转移的功率有上限。如果失电区域太大,单靠重构根本恢复不过来。
第二,电压支撑不足。长线路末端电压偏低是常态,故障时如果全靠一端馈入,末端电压大概率越限。
第三,分布式电源的利用效率。故障期间分布式电源如果直接脱网,白白的发电能力就浪费了。
这时候,"孤岛"的概念就出来了:允许失电区域内的分布式电源带一部分本地负荷独立运行,形成一个个微电网。在上级电网故障期间,孤岛可持续运行一段时间,等到故障修复后再同期并网。
1.2 孤岛与重构耦合时的数学难点
为什么说"同时考虑"这两个策略比单独做任何一个都难?看问题的数学本质就明白了。
重构的实质是在满足辐射状拓扑约束的前提下,通过改变开关状态形成的网络拓扑,使得失电负荷能被重新供上电。孤岛运行则要求失电区域被"有意地"从主网上切分出去,形成独立供电的子系统。
如果把这两个策略解耦处理——比如先做重构,剩余无法恢复的负荷再做孤岛——会得到一个"看起来合理但实际上很糟糕"的方案。因为重构天然倾向于把尽可能多的负荷并入主网,而孤岛方案又倾向于把某个区域完全切出去,两者叠加时可能会遗漏一些处于边界状态的更好方案。举个简单的例子:某个失电区域同时具备两个条件——通过某个联络开关可以并入相邻馈线,而区域内的一个分布式电源也刚好能带起一部分关键负荷。如果先做重构,可能将所有负荷并入邻馈线,但邻馈线电压越限了。而先做孤岛呢?又可能不必要地放弃了通过重构恢复更大范围负荷的机会。
数学上,这两个策略同时考虑意味着优化模型中需要同时决策:
- 哪些节点属于主网恢复区域;
- 哪些节点构成孤岛,孤岛的边界在哪里;
- 孤岛之间、孤岛与主网之间不存在电气连接;
- 整个系统(重构后的主网 + 各个孤岛)满足运行约束。
这几层耦合关系,直接导致问题模型的复杂度和求解难度都上了一个台阶。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数学模型的完整推导:目标函数与约束条件的每一处细节
2.1 目标函数:恢复负荷量最大化为核心
配电网故障恢复最核心的目标,就是让失电的负荷尽可能多地恢复供电。但直接写"最大化恢复负荷量"会碰到一个问题:什么样的负荷值得优先恢复?
实际工程中,不同节点的负荷重要程度不一样。医院、通信基站、应急指挥中心属于一级负荷,故障期间应优先保障。因此在目标函数里,我会给每个节点负荷设置一个权重系数 w_i,反映其重要程度。
目标函数可以写成:
code复制max Σ w_i · x_i · P_load,i
其中 x_i 是 0-1 变量,表示节点 i 是否恢复供电,P_load,i 是节点 i 的负荷大小。
如果你想进一步考虑经济性,可以在目标函数中加入网损项,或者最小化开关操作次数。但要注意,多个目标叠加时权重取值直接影响方案走向——我做测试时发现,网损权重稍微加大一点,优化算法就倾向于把更多负荷并入主网,哪怕要绕很远的路。
为了避免目标打架,最稳妥的做法是:主目标用恢复负荷量(带权重),次要目标作为惩罚项加到约束里,或者给一个很小的权重。
2.2 拓扑约束:辐射状结构的数学表达
无论是重构后的主网还是各个孤岛,都必须满足辐射状结构。这是配电网的天然要求:环网结构会导致保护配合困难、故障电流方向不确定等一系列问题。
辐射状约束的标准数学表达是"生成树约束"。设 0-1 变量 z_ij 表示线路 i-j 上的开关是否闭合,则满足辐射状结构的充分必要条件包括:
-
节点数量与闭合支路数量的关系:闭合支路数 = 供电节点数 - 供电区域数,这个约束在考虑多孤岛时必须特别小心。如果一共有 K 个独立供电区域(含主网和孤岛),那么闭合支路总数 = 恢复节点总数 - K。
-
连通性
