1. 为什么分布式电源改变了配电网可靠性评估的玩法
做配电网可靠性评估这些年,我一直有个很深的感触:传统教材里的那套评估方法,基本都建立在一个默认假设上——配电网是单电源辐射状网络,潮流方向永远从变电站流向负荷。在这个假设下,故障处理逻辑非常清晰:上游某个位置发生故障,下游所有负荷全部失电,等维修人员把故障点隔离、修复,负荷才能恢复供电。可靠性指标说白了就是统计"哪些用户停了多久、停了多少次"。
但分布式电源(DG)大规模接入之后,这个经典框架被打破了。
你想想看,一条馈线上挂着好几台光伏、风机或者储能,当上游故障把主网电源切断时,只要DG还在运行,它其实完全可以继续给孤岛范围内的负荷供电。这个现象从运行角度看叫"孤岛运行",从规划评估角度看,就是我们要讨论的"孤岛划分"问题。能不能划分出合理的孤岛、孤岛内电源和负荷是否匹配,直接决定了故障后的失电范围有多大、停电时间有多长。
很多刚接触这个方向的同学容易陷入一个误区:以为可靠性评估和孤岛划分是两件事——先做划分,再算可靠性。实际上在最优孤岛划分的框架下,这两者是一个耦合问题。孤岛方案不同,负荷转供路径不同,各节点的停电频率和停电时间就不同;反过来,可靠性目标函数又决定了我们要以什么标准去划分孤岛。这个相互制约的关系,才是这个课题真正有技术含量的地方。
我最初做这个方向是为了解决实际工程里的一个问题:某园区配电网接入了大量屋顶光伏,线路故障后检修人员发现,即使光伏还在发电,也不敢轻易让局部区域脱离主网运行,因为缺乏有效的孤岛划分策略,怕功率不平衡引发更大事故。所以"怎么划、按什么目标划、划完之后可靠性提升多少"是很有实际意义的。
本文要聊的就是这套东西从原理到Matlab实现的全过程:最优孤岛划分怎么建模、可靠性评估指标怎么算、蒙特卡洛模拟怎么嵌进整个评估流程,以及代码跑通之后怎么处理那些让人头疼的收敛性和随机性问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 最优孤岛划分:数学模型与求解思路
2.1 孤岛划分在数学上到底在算什么
先不急着看代码,我们把问题拎清楚。
孤岛划分直观描述是:配电网某个位置发生故障后,断路器动作将故障隔离,此时系统被分成若干个电气岛,有的岛不含DG,直接失电;有的岛含DG,可以继续供电。我们要决定的,就是这些含DG的岛"到底包含哪些负荷节点"。
这本质上是一个组合优化问题。配电网用图来描述最方便,每一段馈线支路是图的边,母线节点是图的顶点。故障隔离后,我们面临的是一棵或多棵"被切剩的树",要在其中搜索一个包含DG节点的连通子图,使这个子图内部的负荷价值最大、或者停电损失最小、或者恢复的负荷节点数最多。
我用一个简单例子说明。假设某条馈线有10个节点,节点1靠近变电站方向,节点5接了一台容量500kW的燃气轮机,故障点位于节点3和节点4之间。此时节点4~10与主网断开,但节点5的DG还在。如果DG出力可以使节点4~7的负荷自给自足,那么最优方案大概率是把节点4~7划入孤岛,节点8~10因功率不足只能停电。这个"4~7"的边界由谁决定?由功率平衡约束决定,也由网架拓扑决定。
2.2 目标函数与约束条件的取舍
在论文和工程实践中,孤岛划分的目标函数主要有三类:
| 目标类型 | 数学表达 | 适用场景 |
|---|---|---|
| 恢复负荷量最大 | 最大化孤岛内负荷有功功率之和 | 强调供电能力 |
| 停电损失最小 | 最小化失电负荷的停电损失费用 | 面向用户经济性 |
| 开关操作次数最少 | 最小化孤岛边界的联络开关/分段开关动作次数 | 面向调度操作性 |
大多数研究采用第一种,因为它最容易量化,而且和可靠性指标有直接的单调关系——恢复的负荷越多,ENS(电量不足期望)通常越低。
约束条件里比较核心的几条:
- 功率平衡约束:孤岛内DG总出力要能覆盖负荷总需求,即∑P_DG ≥ ∑P_load。实际中还要留一定裕量,一般不会按1:1卡边界。
- 节点电压约束:孤岛内每个节点电压幅值偏差不能超过允许范围,一般配电系统允许±7%。
- 支路容量约束:流过每条支路的潮流不能超过导线长期载流量。
- 拓扑连通性约束:孤岛必须是一个连通子图,这个约束在数学建模时最容易被忽略,在算法实现上却最容易出问题。
这里额外提醒一句:DG出力本身也有不确定性,光伏要看光照,风机要看风速。工程上常用典型出力场景代替确定性值,更精细的做法是在可靠性评估里对DG出力做时序抽样。后面讲蒙特卡洛时还会回到这个点。
2.3 为什么要用智能算法而不是穷举
刚接触时我第一反应是穷举——节点数少的时候没问题,但配电网动辄几十上百个节点,故障场景又有成百上千种,每一种都要重新划岛,穷举的时间复杂度直接爆炸。
网上很多代码用遗传算法(GA)、粒子群(PSO)或模拟退火(SA)求解。这些算法的好处是适应性强,目标函数改起来很灵活;缺点是需要调参数、容易陷入局部最优。后来我实际
