三段式电流保护整定计算与MATLAB仿真:从原理到数值校验全流程 接手过继电保护课程设计或者实际碰过整定计算的同行应该都有同感三段式电流保护在课本上就那么三行公式但真要把一段、二段、三段对应的动作电流、动作时间全部算出来并且保证选择性、灵敏性、可靠性都合格中间要抠的细节非常多。最大运行方式和最小运行方式怎么定短路电流按三相还是两相算可靠系数取1.2还是1.3返回系数别忘了放在分母上——任何一个数字变了后面的校验从头跟着变。最近我在MATLAB里把一套110kV单侧电源辐射网的三段式电流保护完整跑通了末端短路电流、各母线两相最小短路电流全部算出三段整定值、保护范围、灵敏度逐项做了校验又用Simulink验证了不同故障点下三段保护的配合时序。这篇文章把整定原理、完整代码、数值结果和调试中踩过的坑一次讲清楚。1. 项目概述三段式电流保护与MATLAB整定仿真的整体设计1.1 三段式电流保护三套分工的一张网先花点时间把三段式电流保护本身讲透。它本质上解决一个问题一条输电线路上的故障电流大小随故障点位置变化越靠近电源短路电流越大越靠近线路末端短路电流越小。只用一个过电流定值根本分不清是线路末端短路还是大负荷正常运行更分不清故障到底发生在自己线路上还是相邻线路上。所以把保护拆成三段各管一段互相配合。一段保护电流速断保护动作最快没有人为延时但保护范围只有本线路的70%到80%它靠“躲开线路末端最大短路电流”来保证选择性——末端故障它不动作自然就不会和下一段线路的保护产生配合冲突。二段保护限时电流速断保护把范围延伸到整条本线路甚至略微伸进相邻线路代价是加一个0.5秒的短延时用来和相邻线路的一段保护配合。三段保护定时限过电流保护定值低、灵敏度最高按躲过最大负荷电流整定动作时间最长既当本线路的近后备又当相邻线路的远后备是整个保护链的兜底。形象点说一段像门口保安只拦冲进门的二段像巡逻岗多看一眼再确认三段像全厂总警报前面失控了它才上。三个角色配合起来才能做到“区内故障快速切除区外故障不误动”。这个项目里我做的就是把上述三段逻辑落到一个具体的110kV算例上用MATLAB算出每段定值和延时再用仿真验证配合关系。1.2 算例系统110kV单侧电源辐射网为了把整定计算做完整我搭了一个经典的辐射网算例电源侧经过系统阻抗向母线A供电母线A接地后引出线路1到母线B母线B再引出线路2到母线C。这种单侧电源结构是理解三段式配合最干净的场景没有一个分支干扰配合关系一目了然。系统参数如下表参数符号数值系统额定线电压Un110 kV相电势E_ph63.5 kV110/√3最大运行方式系统阻抗Zs.min2 Ω最小运行方式系统阻抗Zs.max4 Ω线路1长度L130 km线路2长度L240 km线路单位阻抗x0.4 Ω/km线路1阻抗Z112 Ω线路2阻抗Z216 Ω最大负荷电流I_Lmax500 A这里两个概念必须明确。最大运行方式指的是系统开机最多、等值阻抗最小的情况此时短路电流最大整定“躲开的电流”要用它最小运行方式指的是系统开机最少、等值阻抗最大的情况此时短路电流最小校验灵敏度要用它。所以同一套系统至少要算两组运行方式下的故障电流四组短路电流值B母线三相最大、B母线两相最小、C母线三相最大、C母线两相最小。这四组值就是全部整定计算的源头。1.3 为什么选MATLAB而不是手算或Excel纯手算不是不行但一旦参数需要调整整张计算表要重推一遍而且保护范围计算涉及沿线扫描故障电流手算只能取几个离散点。Excel能做表格公式但画动作特性曲线、做灵敏度扫描都不是强项。MATLAB最大的价值在于三件事一是脚本可复现换一套线路参数跑一遍就出全部结果二是向量化计算非常方便直接扫描整条线路上每一个点对应的故障电流保护范围一目了然三是自带绘图和Simulink仿真从数值计算到动态验证无缝衔接。尤其当你要给课程设计或者工程计算留一份可追溯的计算书时脚本比手算草稿纸可靠得多。2. 整定计算原理拆解每个系数背后都有讲究2.1 一段保护瞬时动作和“躲末端”的取舍一段保护在整定上只有一件事躲开本线路末端这里是母线B的最大三相短路电流。整定公式很简单I_op1 K_rel1 × I_kB.max这个K_rel1可靠系数取1.2到1.3常见取1.3。为什么要这么大因为要考虑电流互感器的传变误差、继电器本身的动作误差、非周期分量对有效值计算的影响还要留一点裕度应对故障电流计算时的工程近似。取值太大保护范围会缩水太小又可能误动。我这里的算例取1.3。代入数值I_op1 1.3 × 4.536 5.897 kA取整定值5.90 kA。有了定值紧接着必须校验保护范围。一段保护的“看得见”范围就是故障电流恰好大于等于定值的那些点。当故障点离电源越远短路电流越小到某一个位置电流等于定值这个位置就是保护的末端。由此可以反推最远能保护到哪里最大运行方式下的最大保护范围用三相短路电流曲线求交点L_max (E_ph / I_op1 − Zs.min) / x (63.5 / 5.897 − 2) / 0.4 21.9 km约占线路1全长的73%。最小运行方式下的最小保护范围用两相短路电流曲线求交点L_min (0.866 × E_ph / I_op1 − Zs.max) / x (55.0 / 5.897 − 4) / 0.4 13.3 km约占44%。工程上通常要求最小保护范围不小于线路全长的15%~20%。这里44%相当富余一段保护合格。如果某条短线路的最小保护范围算出来不足15%那就得考虑一段保护是否还有存在的必要或者干脆换保护方案这个后面在问题排查部分再展开。2.2 二段保护用0.5秒换来的全线路覆盖一段保护到末端就“看不见”了那线路末端故障谁来切二段保护。它的定值按躲过相邻线路出口母线C的最大三相短路电流来整定这样它不会越过母线C去和更下游的线路冲突I_op2 K_rel2 × I_kC.maxK_rel2配合系数一般取1.1到1.2这里取1.1。代入数值I_op2 1.1 × 2.117 2.329 kA取整定值2.33 kA。校验二段的核心指标是灵敏度系数在被保护线路末端母线B发生金属性短路时二段必须可靠动作要求K_sen ≥ 1.3到1.5。灵敏度用最小运行方式下的最小短路电流来算因为这是最恶劣的情况它都来得及动作其他情况更没问题K_sen2 I_kB.min / I_op2 3.437 / 2.329 1.481.48大于1.3通过。如果这个值不通过处理办法不是硬调定值而是考虑二段与相邻线路的二段配合即躲相邻线路二段的保护范围末端用更长的动作时间去换更低的定值和更高的灵敏度这个思路在工程里很常见。二段的动作时间要和相邻线路的一段保护配合。相邻线路的一段是瞬时动作所以二段只需要在它的基础上加一个时间级差Δt一般取0.3到0.5秒。这里取0.5秒留足继电器动作离散时间、断路器动作时间和返回时间的裕度。2.3 三段保护返回系数、自启动系数与阶梯时延三段过电流保护的定值要比最大负荷电流高但它要保护的“故障”又远比负荷电流小得多所以关键是把负荷电流和故障电流之间的窗口用足。整定公式I_op3 (K_rel3 × K_ss / K_res) × I_Lmax三个系数各有来头。K_rel3可靠系数取1.15到1.25。K_ss自启动系数反映故障切除后电动机同时自启动造成的电流增大纯电阻负荷取1工业负荷有大量电动机时取1.5到3这里按比较常规的工业负荷场景取1.5。K_res返回系数是继电器本身的特性参数电磁型继电器返回系数低大约0.85到0.9微机保护可以做到0.9到0.95。需要强调返回系数的物理意义是故障切除后电流回落到负荷水平继电器必须能返回否则它会一直保持动作状态造成误跳。所以返回系数必须小于1并且要放进分母很多新手第一次算就在这里栽跟头。代入数值I_op3 (1.2 × 1.5 / 0.85) × 0.5 1.059 kA取整定值1.06 kA。三段要做两组灵敏度校验。近后备本线路末端B母线两相短路时要求K_sen ≥ 1.5远后备相邻线路末端C母线两相短路时要求K_sen ≥ 1.2K_sen3.near 3.437 / 1.059 3.24 K_sen3.far 1.718 / 1.059 1.62两组都通过。三段动作时间按阶梯原则比二段多一个级差取1.0秒。阶梯时限的核心逻辑是越靠近电源侧保护动作时间越长这样才能保证故障由最靠近故障点的保护先切除不会越级跳闸。3. MATLAB实操从短路电流到三段数值全部落地3.1 短路电流计算脚本化短路电流是整定计算的源头脚本第一步就把四个关键电流值全部算出来。注意这里单位统一用kV、kA、Ω电压和电流相除恰好得到阻抗不容易出错。% 系统参数 Un 110; % 额定线电压 kV E_ph Un / sqrt(3); % 相电势 63.5 kV Zs_min 2; % 最大运行方式系统阻抗 Ω Zs_max 4; % 最小运行方式系统阻抗 Ω x 0.4; % 线路单位阻抗 Ω/km L1 30; % 线路1长度 km L2 40; % 线路2长度 km Z1 x * L1; % 线路1阻抗 12 Ω Z2 x * L2; % 线路2阻抗 16 Ω % 短路电流计算 IkB_max E_ph / (Zs_min Z1); % B母线三相最大 4.536 kA IkB_min 0.866 * E_ph / (Zs_max Z1); % B母线两相最小 3.437 kA IkC_max E_ph / (Zs_min Z1 Z2); % C母线三相最大 2.117 kA IkC_min 0.866 * E_ph / (Zs_max Z1 Z2); % C母线两相最小 1.718 kA这里插一嘴0.866系数的来源。两相短路的故障回路里串着两相阻抗故障电流等于线电压除以2倍总阻抗而线电压是相电势的√3倍化简之后正好是√3/2倍的三相短路电流即0.866倍。这个换算只适用于金属性相间短路用于灵敏度校验是最常规的做法。如果考虑过渡电阻短路电流会更小工程整定基本还是按金属性短路算把裕度留给可靠系数。3.2 三段整定计算与数值输出接着把三段定值算出来脚本里直接打印结果% 一段保护整定 Krel1 1.3; Iop1 Krel1 * IkB_max; % 5.90 kA % 二段保护整定 Krel2 1.1; Iop2 Krel2 * IkC_max; % 2.33 kA t2 0.5; % 0.5 s % 三段保护整定 ILmax 0.5; % 最大负荷电流 kA Krel3 1.2; Kss 1.5; Kres 0.85; Iop3 (Krel3 * Kss / Kres) * ILmax; % 1.06 kA t3 1.0; % 1.0 s % 打印整定结果 fprintf( 三段式电流保护整定结果 \n); fprintf(一段: Iop1 %.2f kA, 动作时间 瞬时\n, Iop1); fprintf(二段: Iop2 %.2f kA, 动作时间 t2 %.1f s\n, Iop2, t2); fprintf(三段: Iop3 %.2f kA, 动作时间 t3 %.1f s\n, Iop3, t3);跑出来的结果汇总就是保护段动作电流动作时间主要校验指标一段5.90 kA瞬时固有动作时间最小保护范围44% ≥ 15%二段2.33 kA0.5 s灵敏度1.48 ≥ 1.3三段1.06 kA1.0 s近后备3.24 ≥ 1.5远后备1.62 ≥ 1.23.3 保护范围与灵敏度自动校验整定计算最忌讳“算完就交差”每一段定值出来必须紧跟校验。我用脚本把校验过程固化了无论怎么改参数都能立刻看到哪些项目合格、哪些不合格% 一段保护范围校验 Lmax1 (E_ph / Iop1 - Zs_min) / x; % 最大保护范围 km Lmin1 (0.866 * E_ph / Iop1 - Zs_max) / x; % 最小保护范围 km pct_min Lmin1 / L1 * 100; fprintf(一段最大保护范围 %.1f km (%.0f%%), 最小保护范围 %.1f km (%.0f%%)\n, ... Lmax1, Lmax1/L1*100, Lmin1, pct_min); % 二段灵敏度校验 Ksen2 IkB_min / Iop2; fprintf(二段灵敏度 Ksen %.2f %s\n, Ksen2, ... ternary(Ksen2 1.3, 合格, 不合格)); % 三段灵敏度校验 Ksen3_near IkB_min / Iop3; Ksen3_far IkC_min / Iop3; fprintf(三段近后备灵敏度 %.2f, 远后备灵敏度 %.2f\n, ... Ksen3_near, Ksen3_far);注意这段代码里的ternary函数只是我图省事写的辅助判断实际脚本里直接用if语句即可。校验逻辑本身很简单但把它固化在脚本里价值很大换系统参数重算时不用再人工核对一遍指标。3.4 动作特性曲线可视化数值都算出来了画图才能直观看到三段保护从“看不见”到“兜底”的完整逻辑。我用两张图。第一张是阶梯式时间-电流特性曲线横轴故障电流纵轴动作时间。三段保护各是一条阶梯线一段定值5.90kA以上瞬时动作二段定值2.33kA以上0.5秒动作三段定值1.06kA以上1.0秒动作。画出来就是经典的三级阶梯选型配合关系一眼就懂。figure(Color, w); hold on; Imax 7; % 一段 plot([0 Iop1 Iop1 Imax], [0 0 0.02 0.02], b-, LineWidth, 1.8); % 二段 plot([0 Iop2 Iop2 Imax], [0 0 0.5 0.5], r-, LineWidth, 1.8); % 三段 plot([0 Iop3 Iop3 Imax], [0 0 1.0 1.0], g-, LineWidth, 1.8); xlabel(故障电流 / kA); ylabel(动作时间 / s); legend(一段, 二段, 三段, Location, northwest); grid on; title(三段式电流保护动作特性);第二张图更有价值将故障电流随故障距离变化的曲线画出来同时把三个定值画成水平参考线曲线和参考线的交点就是各段保护范围的边界。沿线路1从母线A到母线B扫描每个点算三相机型和两相机型的短路电流再在图上标注5.90kA、2.33kA、1.06kA三条线保护范围一眼看穿。dist linspace(0, L1, 300); I_max_mode E_ph ./ (Zs_min x .* dist); % 最大方式三相 I_min_mode 0.866 * E_ph ./ (Zs_max x .* dist); % 最小方式两相 figure(Color, w); hold on; plot(dist, I_max_mode, k-, LineWidth, 1.5); plot(dist, I_min_mode, k--, LineWidth, 1.5); yline(Iop1, b-, Iop15.90); yline(Iop2, r-, Iop22.33); yline(Iop3, g-, Iop31.06); xlabel(故障点距离母线A的距离 / km); ylabel(短路电流 / kA); legend(三相最大, 两相最小, Location, northeast); grid on; title(线路1沿线短路电流与保护定值对比);从图上可以看到三相最大方式下的电流曲线与一段定值的交点在21.9km处两相最小方式下的电流曲线与一段定值的交点在13.3km处中间这段区域就是一段保护的“盲区”由二段在0.5秒后兜住。这种可视化对理解整定配合的帮助比盯着数字大得多。4. 仿真验证故障位置变化时保护怎么动作4.1 Simulink输电线路短路仿真模型搭建数值整定只是第一步真正的验证要靠动态仿真。我在Simulink里用Simscape Electrical特高压电气系统模块库搭了一套系统模型模块是标准的几个三相电源Three-Phase Source、三相串联RLC支路模拟两段线路、三相故障模块Three-Phase Fault、三相电压电流测量模块和powergui。保护逻辑我没有刻意用复杂的保护继电器库而是用一个MATLAB Function模块写三段判断逻辑这样定值和时间逻辑和前面的整定脚本完全一致便于对照。保护逻辑的核心思路很简单实时测量线路1首端电流计算三相电流有效值。一段判断I_rms 5.90kA瞬时发出跳闸信号。二段判断I_rms 2.33kA连续保持0.5秒后跳闸。三段判断I_rms 1.06kA连续保持1.0秒后跳闸。这里有个细节值得提醒仿真里整定值是用有效值而测量模块输出的是瞬时值在Simulink里直接拿瞬时值和定值比较一定会出错必须先用均方根模块或者自写函数把有效值算出来。具体做法可以给一段信号加一个滑动窗口均方根计算窗口取一个工频周期20毫秒即可。4.2 三组典型故障下的动作时序模型搭好后我设了三组典型故障覆盖三段保护各自的“主责区”故障位置故障电流应该动作的保护段预期动作时间线路1中点距首端15km约7.94 kA一段约20~40ms含固有动作时间线路1末端B母线4.54 kA二段0.5 s线路2末端C母线2.12 kA三段远后备1.0 s仿真结果和理论计算完全吻合。线路1中点故障时电流远大于一段定值一段立即出口故障在几十毫秒内切除。B母线故障时电流4.54kA小于一段定值5.90kA一段不动作但大于二段定值2.33kA0.5秒后二段出口。C母线故障时电流2.12kA小于二段定值2.33kA二段也不动作最终由三段在1.0秒切除。这个仿真结果其实就是在“重新验证”整定逻辑本身每一段都能在自己的保护区里动作同时不会越界去抢下一段保护的活。三段式电流保护的配合精髓到这里算是闭环了。4.3 从仿真结果回看整定逻辑仿真跑完有几个观察值得写下来。第一一段保护故意对末端故障“视而不见”。B母线故障电流4.54kA明明远大于负荷电流但一段就是不动作这是选择性的代价它不能因为追求灵敏度而越出本线路否则下一段线路的故障它也会跳选择性就破了。这就是为什么“一段保护范围只有线路全长的一部分”不是设计缺陷而是设计本意。第二二段的0.5秒不是拍脑袋定的。它要大于断路器固有分闸时间、保护继电器固有动作时间以及可能出现的误差离散还要保证相邻线路一段保护在0秒动作切除故障后本线路二段有时间返回不会误跳。0.3到0.5秒这个窗口是工程经验沉淀下来的。第三三段保护的动作时间最长但它保护的范围也最宽。它要从本线路最远端看到相邻线路末端灵敏度要求反而最低因为作为后备保护它是在主保护失效后才出场的。5. 常见问题与调试技巧实录5.1 灵敏度不满足要求怎么办我见过很多人在二段灵敏度不够的时候第一反应是降低配合系数从1.1降到1.05甚至更低。这条路不能乱走可靠系数低于1.1以后再叠加互感器误差和继电器误差可靠性就没保证了。正确的方向有两个一是换配合对象二段不再躲相邻线路出口电流而是与相邻线路的二段保护配合即定值按躲相邻线路二段保护范围末端的短路电流整定动作时间比相邻线路二段大一个Δt。这样定值可以降下来灵敏度自然就上去了代价是动作时间变长。二是如果灵敏度还是不够说明这种保护原理在这个系统结构下本身就力不从心该考虑距离保护或者纵联差动不要硬撑。5.2 一段保护范围太小怎么调一段保护范围小的根源是线路太短或者系统阻抗太大故障电流沿线衰减不明显定值稍一抬高保护范围就缩得很厉害。遇到这种情况先检查可靠系数是不是取得太保守比如1.3可以尝试按1.25甚至1.2校核但下限不能低于1.2。如果调整系数后最小保护范围仍然不足15%这段线路的一段保护基本就是摆设要考虑别的保护原理了。我在实际算例里也刻意选了一个系统阻抗适中的算例就是为了让一段范围落在合理的70%左右避免出现保护范围过小的尴尬。5.3 单位换算、有效值和0.866最容易翻车的三个细节这三个坑我必须单独拎出来说因为我在调试时每一个都踩过。第一是单位。短路电流计算公式里电压用kV、电流用kA、阻抗用Ω三者是自洽的因为kV除以kA等于Ω。有人习惯把电压换算成V电流用A那阻抗单位就要注意混用很容易差10的幂次。第二是有效值和瞬时值。整定值是基于有效值定义的而保护的测量系统最终也是按有效值来判断的。仿真中如果用瞬时值做阈值比较正弦波过零点附近会出现频繁翻转定时器根本没法正常工作。务必先算RMS再比较。第三是0.866的适用场景。它只适用于金属性两相短路而且只适用于对称分量法里正序阻抗等于负序阻抗的情况。如果线路模型里考虑了序分量差异、或者故障带弧光电阻这个系数就不能直接套用需要按序网络重新推导短路电流公式。5.4 常见问题速查表现象可能原因处理思路一段保护范围过小线路短、系统阻抗大、Krel1偏大复核可靠系数下限考虑换保护原理二段灵敏度不足定值偏高、相邻线路过长改与相邻二段配合或考虑距离保护三段误动于负荷电流定值低于最大负荷电流、返回系数取值错误复核I_Lmax和Kss、Kres时间配合不了Δt太小、断路器时间离散Δt不小于0.3s校核各环节时间裕度仿真与手算结果相差很大瞬时值直接比较、线路R/X参数、故障电阻用RMS比较检查模型阻抗是否与整定一致再补充一个个人的操作习惯每次整定完成我都习惯把短路电流源数据、整定公式、校验结果三块内容放在同一份脚本里并且用fprintf输出成一份完整报告。这样无论多久之后回来看都能知道每个数值是从哪个参数来的、经过哪道公式算出来的。整定计算最怕的就是只留一个定值结果不留计算过程后面复核或者改参数时全凭猜。这次算例跑完之后我最大的感受是三段式电流保护的原理不难难的是把每个系数背后的物理逻辑吃透并且把校验流程做成系统化的脚本。数值全部算出来只是起点校验全部通过、仿真验证配合时序无误这个项目才算真正落地。