ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

含分布式电源的配电网可靠性评估:基于序贯蒙特卡洛的Matlab实现

含分布式电源的配电网可靠性评估:基于序贯蒙特卡洛的Matlab实现 1. 场景与问题分布式电源并网后可靠性评估为什么不能按老套路来这两年做配电网规划或运行分析的同行应该都有体会只要项目里带上“分布式电源”几个字传统的可靠性评估方法就开始别扭。以前我们评估配电网可靠性基本思路就是“故障后靠联络开关转供、靠分段开关隔离”系统是单电源辐射状结构潮流方向是固定的评估模型可以用一套经典的故障模式后果分析法从头算到尾。但分布式电源分布式光伏、分散式风电、储能、甚至是小型燃气轮机接入 10kV 或 380V 配电网之后系统从单电源变成了多电源负荷节点在上级电网失电之后可能通过分布式电源继续供电这就出现了“孤岛运行”的可能性。可靠性评估的逻辑从“有没有电”变成了“能不能持续有电、能撑多久、撑多久之后怎么办”。这篇文章我主要围绕“含分布式电源的配电网可靠性评估”这个主题把我实际用 Matlab 做过的一整套评估框架、建模思路和踩过的坑展开讲。内容不是纯理论推导而是直接能落到代码和算例上的实践路径。适合正在做配电网可靠性方向毕业设计的硕士研究生、从事配网规划设计的工程师以及想快速搭一套评估程序但对分布式电源建模细节不太熟悉的读者。核心要解决的问题其实就三个第一分布式电源的出力是随机波动的如何把这种随机性统一进可靠性评估模型第二故障后含分布式电源的配电网能不能形成孤岛孤岛能够持续多久这对可靠性指标有多大影响第三在 Matlab 环境下如何把网络拓扑、元件可靠性参数、分布式电源时序出力模型、负荷时序曲线组合成一套可复现的评估程序。这三个问题弄清楚了你就掌握了一套通用的评估方法换网络、换参数、换分布式电源渗透率只需要改输入数据评估框架本身不用动。2. 理论基础与指标选择先弄清楚要算什么、用什么方法算2.1 配电网可靠性评估的经典指标与分布式电源的“干扰”配电网可靠性评估有一组标准指标国内工程上最常见的是系统平均停电频率指标 SAIFI、系统平均停电持续时间指标 SAIDI、用户平均停电持续时间指标 CAIDI、平均供电可用率指标 ASAI以及缺供电量指标 ENS。公式本身不难SAIFI 是总停电次数除以总用户数SAIDI 是总停电时间除以总用户数ASAI 是用电小时数占总需求小时数的比例。但含分布式电源之后有一个关键变化同一处故障对不同负荷节点的影响不再是“一刀切”。举个具体场景一条 10kV 馈线上挂了 3 个分布式光伏电站故障发生在线路中段故障点下游的负荷本来应该全部停电但如果某个分布式电源和它附近的负荷能形成稳定的孤岛那么这部分负荷的停电时间就不是“故障修复时间”而是“孤岛能撑多久”。SAIDI 的计算就要区分故障隔离后立刻恢复供电的用户、靠孤岛持续供电一段时间的用户、以及从头停到故障修复的用户。所以指标计算逻辑中最核心的变化在于停电持续时间分布从单一值变成了多段式不同用户组的停电时间不同这在编程时要动态统计。另外分布式电源出力在时间维度上是变化的尤其是光伏白天有出力、晚上归零如果孤岛内负荷大于分布式电源出力孤岛只能坚持到储能放完或者分布式电源出力不足为止。所以可靠性指标的计算必须和时间尺度挂钩不能只用“年平均值”去估算孤岛供电时间那样误差会非常大。这一点在后面的模型里会进一步展开。2.2 评估方法选型解析法还是蒙特卡洛模拟法配电网可靠性评估方法主要分两大类解析法和模拟法。解析法的代表是故障模式后果分析法FMEA对每个元件枚举故障分析故障影响范围叠加概率计算指标。这种方法计算速度快、结果稳定适合网络规模不大、运行方式相对固定的情况。但含分布式电源之后解析法处理起来就有点吃力因为分布式电源出力的随机性导致“孤岛是否成立”不是一个确定的判据而是一个概率事件。模拟法尤其是序贯蒙特卡洛模拟法更适合处理这种随机性按时间步长比如每小时模拟分布式电源出力和负荷变化同时抽样元件故障模拟系统的运行状态随时间演化统计每个用户的停电时间和停电次数。这样孤岛的动态形成、持续、瓦解过程都可以被建模出来。缺点是计算量大需要反复抽样才能收敛对代码效率和抽样策略有要求。我的实际选择是以序贯蒙特卡洛法为主框架在故障影响分析环节用解析式的网络搜索逻辑判断孤岛是否成立。这样做的好处是既保留了蒙特卡洛法处理随机性的能力又避免了纯蒙卡法每步都要做潮流或拓扑搜索的巨大计算量。具体来说系统状态抽样按小时或按更小的时间步长推进故障事件用序贯抽样生成形成故障序列后再对每个故障时段做孤岛分析和负荷削减计算。这个框架对网络规模在几十个节点以内的配电网精度和速度都可以兼顾。3. 关键建模细节分布式电源出力、负荷时序与故障模型3.1 分布式电源出力时序模型光伏和风电分别怎么建分布式电源出力模型的准确性直接决定可靠性评估结果的可信度。很多初学者在这里偷懒直接用一个固定出力比例代替分布式电源全年出力这样算出来的孤岛供电能力完全失真SAIDI 和 ENS 都会严重偏离实际。光伏出力的核心是光照辐照度的时序特性。实用做法是采用 Beta 分布描述每个时段的光照强度概率分布再通过光电转换模型得到出力。简化但不失合理的建模方法是给定该地区典型日辐照度曲线按小时叠加随机扰动扰动幅度用 Beta 分布抽样控制。光伏出力公式可以写成P_pv(t) eta_pv × S_pv × G(t) × [1 delta(t)]其中eta_pv 是光伏阵列综合效率包含逆变器效率、温度修正、灰尘遮挡等一般取 0.75~0.85S_pv 是光伏阵列总面积平方米G(t) 是 t 时刻的辐照度kW/m²delta(t) 是随机扰动系数可用 Beta 分布抽样生成。注意光照辐照度在夜晚为 0因此光伏出力天然具有时段性可靠性评估中必须考虑孤岛发生在白天还是晚上这直接影响孤岛可用容量。风电出力的随机性更强通常用风速的 Weibull 分布来描述再将风速通过风机功率特性曲线转换为出力。风机功率曲线的典型分段是切入风速以下出力为 0额定风速到切出风速之间出力恒定中间段近似线性或三次方关系。风速的时间相关性比较强如果直接用独立的 Weibull 抽样会丢失风速的时序持续性导致评估结果偏乐观因为实际风速往往是持续偏低或持续偏高。我建议采用一阶马尔可夫链来生成风速时间序列或者用 AR(1) 自回归模型这样生成的风速序列能保留一定的“惯性”更接近实际。如果觉得这两种方法实现起来有难度也可以退一步用威布尔分布抽样后做滑动平均平滑处理虽然理论严谨性稍逊但工程结果已经比较可用了。对于储能系统模型相对简单核心是荷电状态SOC的时序递推充电时 SOC 增加、放电时 SOC 减少同时有充放电功率限制和容量上下限约束。孤岛持续供电能力很大程度上取决于储能容量和孤岛内的净负荷曲线这在系统状态抽样时要和负荷、分布式电源出力同步推进。3.2 负荷时序模型不能只用一个峰值负荷可靠性评估中的负荷模型如果处理不好评估结果会出现方向性错误。很多教科书算例把负荷设成恒定值这在纯解析法里可以接受但含分布式电源后孤岛的可持续性完全取决于孤岛内的净负荷负荷减去分布式电源出力净负荷是时变的所以负荷必须建立时序模型。工程上常用的做法是将年负荷曲线分解为“典型日负荷曲线按季节/月份缩放”。比如四季各取一个典型的 24 小时负荷曲线再按月份乘以一个峰值负荷系数。每个用户或每个负荷节点的年峰值负荷已知乘以对应时段的归一化曲线值就得到该时刻的有功功率。无功功率可以按功率因数折算或者直接以有功功率乘以一个比例系数具体取决于评估中是否需要做潮流计算。如果评估只关注供电可靠性的“停电/不停电”逻辑这也是大多数配电网可靠性评估的做法那么负荷模型主要用于计算两个量一是故障后孤岛内的净负荷是否超过分布式电源可发容量二是如果需切负荷切多少、影响多少用户。所以负荷时序的精度要求不在于毫秒级而在于能反映日尺度和季节尺度的变化规律这点用典型日曲线加随机扰动的方式已经足够。3.3 故障模型与系统状态抽样序贯蒙特卡洛的实现要点故障模型的核心是元件可靠性参数常用的是故障率 λ次/年和平均修复时间 MTTR小时/次。序贯蒙特卡洛抽样的逻辑是对每个可修复元件按指数分布抽样生成“正常持续时间”和“故障修复时间”在时间轴上交替排列形成该元件的状态序列将所有元件的状态序列叠加得到系统的时序状态样本。元件 i 的正常持续时间抽样公式TTF_i -ln(U_i) / lambda_i其中 U_i 是 0 到 1 之间均匀分布的随机数lambda_i 是元件年故障率如果需要按小时为单位除以 8760。故障修复时间抽样TTR_i -ln(V_i) / mu_i其中 mu_i 1 / MTTR_i。这里的指数分布假设在工程上是可接受的因为配电网元件的故障规律基本符合“随机独立失效”的特征。系统级处理的逻辑是在仿真时间跨度比如一年 8760 小时内找出所有元件的状态切换时刻按时间顺序排列成一个事件序列每个事件对应某个元件故障或修复。当故障事件发生时进入故障影响分析模块先搜索故障元件的位置判断是否有联络开关可转供、哪些区域可以形成孤岛然后计算各个负荷节点的停电时间。修复事件发生时恢复系统正常运行状态继续推进。这里有个非常影响代码性能的细节事件驱动的蒙特卡洛模拟一般比时间步进式的高效得多。时间步进式是每个小时对所有节点都检查一遍状态计算量随网络规模和仿真年数线性增长如果网络有 50 个节点、仿真 1 万小时就是 50 万次节点状态判断虽然单次判断逻辑不重但被反复调用的网络搜索算法会显著拖慢速度。事件驱动式只在状态切换时做一次网络分析和指标统计中间无故障时间段直接跳过速度能快一个数量级以上。随机源推荐分布/模型关键参数典型取值参考元件故障指数分布抽样故障率 λ次/年、MTTRh架空线 0.1~0.3 次/(km·年)修复 4~8h光伏出力Beta 分布 典型日辐照曲线形状参数 α、βα0.9~1.2β0.9~1.2按地区调整风电出力Weibull 分布/一阶马尔可夫链尺度参数 c、形状参数 kk2.0~2.5c6~9 m/s负荷波动典型日曲线 正态扰动峰值负荷、曲线归一值扰动标准差取负荷值的 3%~5%4. Matlab 实现框架与核心代码结构从数据输入到指标输出4.1 整体程序架构与数据结构设计用 Matlab 做可靠性评估我建议不要把所有逻辑堆在几个大脚本里而是拆成模块化函数。初始写得清晰一点后面改参数、换算例、做敏感性分析会省很多事。我常用的程序结构是主程序main_reliability.m设置仿真参数仿真年数、时间步长、随机种子加载网络数据、元件参数、负荷曲线、分布式电源出力序列调用评估函数输出可靠性指标和图表。数据准备函数load_system_data.m从 Excel 或 .mat 文件读取网络拓扑支路连接关系、节点类型、元件可靠性参数、节点负荷参数、分布式电源参数。所有输入数据集中在外部文件里代码里面不硬编码具体网络参数。状态抽样函数sampling_failure_events.m根据元件可靠性参数生成事件序列返回按时间排序的故障事件表事件类型、元件编号、发生时刻、修复时刻。故障影响分析函数fault_impact_analysis.m输入故障位置和系统状态输出受影响的负荷节点集合、每个节点的停电时长、孤岛成功供电的节点集合。指标统计函数calculate_reliability_indices.m累计 SAIFI、SAIDI、CAIDI、ASAI、ENS 等指标。数据结构方面配电网的网络拓扑我习惯用邻接表或稀疏邻接矩阵存储。对于中小规模配电网节点数不超过 100稀疏邻接矩阵是最方便的既能做快速的连通性搜索也好在 Matlab 里可视化。节点信息用一个结构体数组每个节点包含节点编号、类型变电站节点/负荷节点/分布式电源节点/联络节点、峰值负荷kW、功率因数、用户数、所连分布式电源容量如果存在。支路信息包含首端节点、末端节点、支路长度、单位长度故障率、修复时间、是否含分段开关、是否含联络开关。4.2 故障影响分析网络搜索与孤岛划分的实现故障影响分析是整个评估程序的核心模块逻辑上分三步隔离故障、恢复非故障区供电、判断孤岛是否成立。第一步定位故障支路从电源点变电站开始对网络做广度优先搜索 (BFS) 或深度优先搜索 (DFS)将网络划分成故障上游区域和故障下游区域。故障上游区域如果通过联络开关与其他馈线相连且联络容量足够就可以转供恢复供电没有联络的节点只能等故障修复。第二步故障隔离后检查故障下游区域中是否含有分布式电源。分布式电源能向其附近负荷供电的前提是分布式电源与这些负荷之间还存在电气连通路径没有被故障隔离开关隔断且分布式电源总出力大于孤岛内负荷需求或者在储能配合下能满足短时供电。第三步如果满足孤岛条件进入孤岛持续时间计算以小时为步长比较每个时刻孤岛内分布式电源出力加储能放电功率与孤岛内负荷需求。如果净出力为正孤岛继续运行储能如果有剩余容量则在满足负荷后充电如果净出力为负储能放电补足差额储能放空且出力仍不足时孤岛瓦解剩余负荷停电至故障修复。Matlab 中网络连通性搜索的代码实现大概长这样function island_nodes find_island_nodes(adj_matrix, start_node, blocked_branch) % adj_matrix: 稀疏邻接矩阵adj_matrix(i,j)1 表示节点i和j直接相连 % start_node: 搜索起始节点 % blocked_branch: 故障隔离后断开的支路集合 [n1, n2] % 返回值: 与 start_node 保持连通的节点集合 n size(adj_matrix, 1); visited false(n, 1); queue start_node; visited(start_node) true; while ~isempty(queue) current queue(1); queue(1) []; neighbors find(adj_matrix(current, :)); for nb neighbors if visited(nb) continue; end % 检查支路是否被隔离 if ismember(sort([current, nb]), blocked_branch, rows) continue; end visited(nb) true; queue(end 1) nb; end end island_nodes find(visited); end这个函数本身不长但整个评估程序里会被反复调用所以我把它单独拆出来避免故障影响分析逻辑里混入网络搜索细节。5. 可靠性评估主流程事件驱动模拟的完整实现5.1 主循环逻辑与事件表处理主循环按事件驱动方式推进。整个仿真年数设为 N_year每次仿真时长取 8760 小时为降低随机性影响可以多次重复仿真取平均值或者一次仿真跨多年比如 10000 年直接收敛。我实际偏好是仿真 5000~10000 年一次跑完计算时间长一点也能接受因为事件驱动方式在无故障年份跳得很快。主流程伪代码如下% 初始化指标累加器 total_interruption_count 0; % 总停电用户次数 total_interruption_duration 0; % 总停电用户小时数 total_energy_not_supplied 0; % 总缺供电量 kWh total_customer_hours_demand 0; % 总用户需求小时数 total_customer_count sum([load_node.customer_count]); % 总用户数 % 读取网络数据和元件参数 [network, branch, load_node, dg] load_system_data(system_data.xlsx); for sim_year 1:N_year % 生成该年度的故障事件序列 events sampling_failure_events(branch, 8760); % 如果没有故障该年度指标为零直接累计用户需求小时 if isempty(events) total_customer_hours_demand total_customer_hours_demand 8760 * total_customer_count; continue; end % 初始化系统状态所有元件正常 system_up true(size(branch, 1), 1); % 按时间顺序处理事件 for idx 1:size(events, 1) event_time events(idx, 1); event_type events(idx, 2); % 1故障0修复 event_branch events(idx, 3); if event_type 1 % 故障发生 % 调用故障影响分析 [outage_info] fault_impact_analysis(network, branch, load_node, dg, event_branch, event_time); % 累加指标 total_interruption_count total_interruption_count outage_info.affected_customer_count; total_interruption_duration total_interruption_duration outage_info.total_customer_interruption_hours; total_energy_not_supplied total_energy_not_supplied outage_info.ens_kwh; else % 修复完成 system_up(event_branch) true; end end % 累计用户需求小时 total_customer_hours_demand total_customer_hours_demand 8760 * total_customer_count; end % 计算指标 SAIFI total_interruption_count / total_customer_count / N_year; SAIDI total_interruption_duration / total_customer_count / N_year; CAIDI SAIDI / SAIFI; ASAI 1 - SAIDI / (8760 * N_year);注意上面的fault_impact_analysis函数内部要在故障持续时段内做孤岛动态分析不能简单地认为孤岛要么一直成立、要么一直不成立。我的做法是在故障隔离完成后从故障时刻开始以 1 小时为步长逐步推进到故障修复时刻每个小时都调用一次分布式电源出力和负荷的时序数据判断孤岛是否还能维持。这样 ENS 的计算也更准确——孤岛时段内如果分布式电源出力不足已经切了一部分负荷那部分缺供电量也要统计进去而不是只统计完全停电的节点。5.2 分布式电源时序数据的生成与调度策略分布式电源出力和负荷的时序数据在每次仿真前预先算好存放在全局变量或结构体里。因为序贯蒙特卡洛仿真年限很长可能是几千上万年不可能每一年都重新生成一套时序数据那样计算量会非常大而且也没有必要。我的做法是根据给定的典型日曲线和随机分布先生成一个“代表性年份”的 8760 小时出力序列和负荷序列然后在这个基础序列上逐年叠加一个较小的随机扰动保证长期期望值不变又避免不同年份完全重复导致指标失真。当然如果你手头有真实的全年实测数据比如某地区光伏电站的全年出力曲线直接用它替换随机生成的部分结果会更贴近工程实际。孤岛运行时的功率调度策略我建议用“优先用分布式电源出力储能做差额补充”的简单策略而不需要做复杂的优化调度。可靠性评估的核心是判断“能不能供电”而不是“怎么供电最经济”。如果你在可靠性评估里做经济调度计算复杂度会急剧上升但评估指标的精度提升非常有限。简单策略的实现逻辑每个时步计算孤岛净负荷 P_net P_load - P_dg如果 P_net 为负表示分布式电源出力有富余储能充电SOC 增加如果 P_net 为正储能放电补充SOC 减少如果 SOC 降到下限且 P_net 仍为正则削减负荷削减顺序从远离分布式电源的负荷节点开始直到供需平衡或所有可切负荷都切完。5.3 指标统计与结果输出别只输出平均数所有事件处理完后指标的统计相对直接。不过我想多说一句不要只输出一个平均指标最好把仿真中各年份的 SAIDI、SAIFI 分布也输出出来。因为蒙特卡洛模拟本身有随机波动有些年份的指标可能明显偏离平均值只给平均值会让读者对“最差情况”没概念。实用性更强的是给出指标的均值、标准差和 95% 置信区间这能评估模拟是否收敛区间越小说明收敛越好。Matlab 里可以这样快速输出fprintf( 可靠性评估结果 \n); fprintf(SAIFI %.4f 次/用户·年\n, SAIFI); fprintf(SAIDI %.4f 小时/用户·年\n, SAIDI); fprintf(CAIDI %.4f 小时/次\n, CAIDI); fprintf(ASAI %.6f (%.4f%%)\n, ASAI, ASAI * 100); fprintf(ENS %.2f kWh/年\n, total_energy_not_supplied / N_year);另外建议把各个负荷节点的停电次数和停电时长单独导出成表格这样在做规划方案对比时可以清楚地看到哪些节点是可靠性短板分布式电源接入后哪些节点的改善最明显。6. 算例分析与参数敏感性用结果验证程序正确性6.1 典型算例不含分布式电源的基准场景拿到一套新写的评估程序第一件事不是急着接分布式电源而是先跑一个不含分布式电源的纯配电网场景和手算/文献值对比验证程序逻辑是否正确。我用的典型算例来自 IEEE RBTS Bus 2 馈线很多可靠性文献都用这个标准算例包含 4 条馈线馈线上有分段开关和联络开关负荷节点约 20 个左右。基准参数是架空线故障率 0.065 次/(km·年)修复时间 5 小时用户数每个节点 150~250 户不等。跑出来的 SAIFI 在 0.2 左右、SAIDI 在 4~6 小时之间和文献中公布的数值误差在 3% 以内这基本可以说明网络搜索逻辑和指标的统计口径没有大问题。这一步非常关键如果基准场景都算不对后面接分布式电源的结果就是空中楼阁。6.2 接入分布式电源后的指标变化与物理解释基准算例验证通过后我开始在馈线末端接入分布式光伏渗透率分别取 0%、20%、40%、60%渗透率定义为分布式电源年发电量占馈线年负荷量的比例观察可靠性指标的变化趋势。一个典型的算例结果是随着分布式光伏渗透率从 0 提升到 40%SAIDI 明显下降SAIFI 变化不大。SAIDI 下降来源于两部分一是部分故障下游负荷靠孤岛供电在故障修复前不用停电二是逆变器并网后对电压的支撑作用减少了因低电压脱扣导致的停电范围扩大。但当渗透率继续提高到 60% 以上时SAIDI 改善幅度变缓甚至在某些故障场景下出现恶化。原因是光伏出力具有“昼高夜零”的特性如果故障发生在傍晚或夜间孤岛根本无法形成或只能撑很短的时间而渗透率提高后分布式电源接入带来的保护配合复杂性、反孤岛保护误动风险也在增加。这个趋势在工程上是合理的也提醒我们分布式电源对可靠性的影响不是单调的“越多越好”要结合分布式电源类型、位置、渗透率、故障发生时刻综合评估。用蒙特卡洛法做全时段模拟的好处就在这里——它能把这些时变因素都平均地纳入统计。6.3 敏感性分析哪些参数对可靠性指标影响最大在算例验证通过后我还做了一组敏感性分析主要看三类参数对 SAIDI 的影响分布式电源的容量配置装机容量和储能容量、元件故障率、联络开关的转供容量限制。表格式的结果比纯文字更直观参数变化SAIDI 变化趋势说明分布式光伏容量从 0 提升至 40% 渗透率下降 15%~25%孤岛供电能力增强故障下游负荷恢复概率提高在光伏旁配置 2h 储能进一步下降 5%~10%平滑光伏出力波动延长孤岛持续时间线路故障率降低 20%如更换绝缘导线下降 10%~18%故障频次减少直接改善 SAIFI 和 SAIDI联络开关容量受限只能转供 50% 负荷指标恶化 8%~15%非故障区域也有部分负荷无法转供需切负荷这类敏感性分析在实际项目里很有价值因为它能帮规划人员判断改造资金到底是优先投在“提升联络转供能力”还是“配置储能延长孤岛持续时间”上决策不靠拍脑袋靠仿真结果说话。7. 常见问题与排查技巧Matlab 实现中的避坑指南7.1 仿真效率低、收敛慢的问题蒙特卡洛模拟常见的问题是仿真时间长、指标波动大、难以收敛。我遇到过最典型的情况SAIDI 的标准差在仿真 2000 年后还在平均值的 20% 以上怎么加长仿真年数都改善有限。后来排查发现问题出在随机数生成上——我没有设置全局随机种子导致每次运行结果差异大有时候还会出现重复的随机序列看起来像“无法收敛”实际是随机数管理混乱。解决方式很简单在程序开头固定随机种子用多个不同种子平行仿真最后把各个种子下的结果平均。具体做法是rng(seed)配合一个种子数组比如seed_list 1:20; for s 1:length(seed_list) rng(seed_list(s)); % 执行仿真并记录指标 end % 对 20 组结果取平均和标准差这样不仅能评估收敛性还能通过组间的标准差判断需要的仿真次数。如果你的指标标准差仍然很大建议优先检查故障率最低的那个元件是否被充分抽样到——如果某个元件年故障率只有 0.01 次/年仿真 100 年可能只发生 1 次故障它造成的停电时间对指标的影响要在很长的仿真年限中才能被“平均”掉。处理办法是分层抽样对故障率极低的元件单独加大抽样次数但实现复杂度较高一般情况通过延长仿真年限就够用。7.2 孤岛判断逻辑中的边界情况处理孤岛判断有几个容易出 bug 的边界情况。第一种分布式电源在故障时已经因为保护动作跳开了不能作为孤岛电源使用。这种情况在仿真中要特别检查——如果分布式电源在保护死区之外故障时它可能会脱网此时孤岛不成立。我的做法是在故障影响分析中增加一个标志位如果分布式电源所在支路的保护装置动作时间早于孤岛形成时间这个分布式电源就不参与孤岛供电。第二种情况孤岛内分布式电源容量足够但与负荷之间的路径中有一台配电变压器容量不够。变压器过载会导致供电电压不满足要求工程上不能算作“成功供电”。如果评估程序只做连通性判断而不校验容量约束会低估停电指标。我建议在孤岛校验时增加一个简化的容量校验步骤孤岛内所有负荷之和不得超过路径上所有变压器额定容量的最小值超限则按策略切负荷。第三种情况故障修复后系统恢复供电时可能发生“非同期合闸”问题——孤岛与主网重新并网时两侧电压相位不一致造成冲击。详细模拟这个动态过程超出可靠性评估的范畴但至少要在程序中设置一个逻辑孤岛运行期间不执行自动并网必须等故障修复且确认两侧电压幅值和相角在允许范围内才允许合闸否则按重新停电一段时间处理。这个逻辑虽然简化但避免了把“孤岛成功”和“自动恢复”混为一谈导致的高估。7.3 输入数据的一致性与程序可维护性最后一条经验也是我觉得最实用的可靠性评估程序的调试时间70% 以上花在数据错误的排查上而不是逻辑错误。常见的数据问题包括节点编号不连续导致邻接矩阵维度错误、支路表中有重复线路导致故障率重复累计、负荷节点类型定义混乱导致用户数统计误差、分布式电源和负荷接在同一个节点但容量数据量纲不一致kW 和 MW 混用。我的建议是写一个数据校验函数在程序运行前自动检查所有节点编号必须在有效范围内、所有支路的首末端节点都存在、每条线路的故障率非负、所有节点的用户数非负。发现问题直接报错并指出具体数据文件的出错位置。磨刀不误砍柴工这个校验函数写一次花 30 分钟后面换数据、改参数、排查 bug 能省下无数个 30 分钟。8. 扩展方向与个人实操心得我现在做的这套评估框架经过几次迭代后已经比较稳定后续的扩展方向也比较明确。一个是把分布式电源的电压支撑效应纳入评估——现在很多地方配电网的可靠性问题不只是“有没有电”还有“电压合不合格”分布式电源在故障后孤岛运行时电压和频率控制是实际是难点未来可以结合时域仿真工具做更精细的分析。另一个是把评估从“年指标”推进到“事件级分析”比如针对某个极端天气事件台风、冰灾分析分布式电源在灾后恢复过程中能发挥多大作用。这个方向对实际应急抢修计划的制定非常有价值。我个人的深刻体会是可靠性评估这个研究方向方法和代码本身并不算难难的是对配电网运行机理的理解。一个元件故障之后配电自动化系统怎么动作、保护怎么配合、分布式电源怎么响应这些现场知识如果不了解写出来的程序再漂亮也是纸上谈兵。所以给正在做这个方向的朋友一个建议程序跑通之后多花点时间去现场或者至少多看看故障处理的操作票和记录理解了真实运行逻辑你的模型才真正“可靠”。
返回列表