
可以先说结论这套Simulink仿真模型是我做了好几版之后沉淀下来的一个比较完整的方案。它覆盖了中性点不接地、经消弧线圈接地、经电阻接地三种典型方式下的单相接地故障仿真而且把选线算法的对比验证也一并做进去了。不管你是电气工程的在读研究生、刚接触配电网仿真调试的工程师还是做故障选线装置研发的同行这套模型都可以作为起点——你不需要从零开始把每个模块重新连线只需要看懂结构和参数就能改出自己的版本。1. 为什么单相接地故障选线问题值得搭一套仿真1.1 小电流系统到底小在哪小电流系统这个术语通常指中性点不接地或经消弧线圈接地的配电网。这里说的小电流不是负荷电流小而是单相接地故障时的故障电流很小。实际运行中当某条馈线发生单相接地流过故障点的电流往往是几十安培甚至几安培级别而正常负荷电流可能是几百安培。这就带来一个很尴尬的局面故障信号淹没在负荷电流里常规的过流保护根本启动不了。系统允许带故障运行一到两个小时但必须把故障线路找出来并隔离否则很容易发展成两点接地短路或者相间故障。选线装置的核心工作就是在这种微弱的故障特征下判断故障到底发生在哪条出线。1.2 谐振接地带来的麻烦如果只有中性点不接地系统选线还相对单纯。但国内很多城市配电网和煤矿供电系统采用经消弧线圈接地也就是谐振接地系统。消弧线圈可以补偿故障点的电容电流让接地电弧自行熄灭但代价是故障特征被进一步削弱。消弧线圈的补偿方式又分为过补偿、欠补偿、全补偿。工程上一般运行在过补偿状态也就是感抗略小于系统三相对地容抗的并联等效值。这种状态下故障线路的零序电流方向可能会发生翻转原来在纯不接地系统里适用的零序电流方向选线判据在这里会出现误判。所以仿真模型必须包含不同接地方式才能在实验室里把这种差异彻底看清。1.3 为什么必须用仿真模型来研究选线现场试验做故障选线验证成本很高。在真线上制造单相接地故障需要考虑安全措施、故障点位置、故障瞬间的相位等一堆因素而且试验机会很难得。仿真模型的价值在于你可以在一分钟内改变故障发生相、故障时刻、过渡电阻、馈线长度、补偿度反复试验几十种组合看看各种选线算法到底在哪些场景下会翻车。用Simulink做这件事还有一个额外的好处模型本身是可视化框图很多抽象的概念比如零序回路、补偿电感与对地电容的谐振关系都能在模型图上直接看到。调试的时候哪个环节出了问题一眼就能定位不需要像纯代码仿真那样猜来猜去。2. 中性点不同接地方式的模型设计思路2.1 三种接地方式在Simulink里的本质区别搭这套模型最难的地方不是画电路图而是理解三种接地方式在数学上到底改变了什么。中性点不接地系统变压器中性点悬空零序回路只能通过各条馈线的对地电容形成。单相接地时零序电流大小完全由系统对地电容决定。经消弧线圈接地系统在中性点和地之间串入一个电感电感量根据系统电容电流计算。此时零序回路中电感与所有馈线对地电容并联形成谐振回路。补偿度不同回路阻抗性质不同。经电阻接地系统这个相对简单中性点对地接一个电阻可以是高电阻也可以是中电阻。电阻的作用是给零序回路提供有功电流通道让各种基于有功分量的选线判据成为可能。在Simulink中三者唯一的区别就是中性点接地支路里是开路、电感还是电阻。所以建模时把这一部分参数化设计成可变子系统一劳永逸。2.2 消弧线圈补偿度的设置方法消弧线圈的核心参数是脱谐度。定义是v (I_C - I_L) / I_C其中I_C是系统对地电容电流I_L是消弧线圈补偿电流。过补偿时I_L大于I_Cv为负值。工程上通常取脱谐度在-5%到-10%之间。计算出系统总的对地电容电流后就可以反推消弧线圈电感值。三相对地电容每相为C0则系统总电容电流为I_C 3 * ω * C0 * U_ph其中U_ph是相电压。补偿电流I_L乘以额定相电压U_ph得到消弧线圈容量再换算成电感L U_ph / (ω * I_L)。如果系统额定频率是50Hzω 2π × 50 ≈ 314.16 rad/s。我在这套模型中把消弧线圈的R、L值都做成了Simulink的mask参数直接用变量名控制。切换补偿度时不需要打开模块参数对话框去改物理量只需要在脚本里改脱谐度自动计算出对应的L值。2.3 仿真步长与模型离散化小电流接地系统的故障暂态过程有一个特点高频分量丰富但持续时间很短。电弧故障产生的暂态量集中在几百赫兹到几千赫兹如果仿真步长太大谐振过程根本看不出来得到的波形是平滑的假象很多细节都丢了。我这套模型用的是离散化仿真采样时间设为50微秒对应的采样频率是20kHz。这个频率既能覆盖故障暂态的主要频谱能量又不至于让仿真时间过长。如果对暂态过程比如电弧重燃前的数毫秒过程感觉分辨率不够可以把采样时间调到20微秒但仿真时长就要相应缩短否则等不出稳态。3. Simulink模型搭建实操过程3.1 主电路的拓扑结构模型的主电路结构是一条10kV母线带4条出线馈线每条馈线末端接等效负荷。电源侧用三相电压源模块电压幅值设为10kV线电压有效值频率50Hz内阻设为一个极小的值以模拟无穷大系统。四条馈线的长度和单位参数刻意设置成不一样的数值这样才能让各条线路的电容电流不对称选线问题才有研究价值。其中一条馈线长度设置为8公里另一条5公里一条3公里最后一条只有2公里。如果都设成一样的长度三条健全线路的零序电流特征太相似选线判断没有任何挑战性仿真结果也不够有说服力。线路模型使用集中参数的π型等值电路。对于10kV配电网长度在几十公里内集中参数模型已经足够准确。Simulink的Three-Phase PI Section Line模块可以直接输入正序和零序电阻、电感、电容参数。这里有个关键点很多人会把单位长度参数的正序和零序搞混导致仿真出来的零序电流完全不对。我从资料里查到的典型架空线参数是正序电阻0.17 Ω/km正序电感1.2 mH/km正序电容9.7 nF/km零序电阻0.23 Ω/km零序电感4.1 mH/km零序电容6.0 nF/km如果参考的不是这套参数先确认你查到的参数书里零序单位电容是否针对同一种导线型号。不同线型差异挺大尤其是电缆线路正序和零序电容差好几倍。3.2 故障模块的设置技巧Simulink的Three-Phase Fault模块可以直接模拟单相接地故障。把故障模式选为A相接地或者B相接地故障电阻参数可以从0.01Ω变化到几百欧姆用来模拟金属性接地和高阻接地。故障发生时间用两个时间参数控制Transition Time1表示故障开始时刻Transition Time2表示故障消失时刻。仿真时长如果设0.4秒可以把故障开始时刻设为0.15秒故障结束时刻设为0.55秒。这样前0.15秒是正常稳态运行0.15秒后进入故障状态有足够的时间观察暂态和稳态波形。过渡电阻这一个参数对选线算法影响极其显著。金属性接地时零序电流的方向特征非常清晰当过渡电阻上升到100Ω以上故障特征衰减严重各种算法都可能失效。所以建模时建议把过渡电阻定义成一个可调变量用不同电阻值跑一个系列仿真记录下算法在哪个边界开始失效。3.3 零序电压和零序电流的提取方法选线算法需要的不是三相电压电流而是零序分量。提取方法有两种。第一种是直接在Simulink里用Three-Phase V-I Measurement模块测量三相电压电流然后用数学模块做1/3*(VaVbVc)的运算。这个方法直观也便于你在仿真过程中看到每一相的波形。第二种是用Simulink自带的零序测量模块或者使用Python脚本读取仿真结果后离线计算。但离线计算有个问题无法在仿真过程中实时观察零序波形随时间的变化过程调试效率低。我建议还是用第一种方式直接在模型里搭建零序提取子模块。这样后续再扩展其他选线算法时所有输入信号都是现成的。3.4 波形可视化与数据导出设置Simulink的Scope模块做快速查看很方便但波形截图不便于后期做算法分析。推荐在模型中并联To Workspace模块把关键信号导出到MATLAB工作空间。To Workspace的采样时间要设置成-1表示继承信号本身的采样时间。变量名建议设置成有意义的名字比如Zero_Seq_Voltage、Zero_Seq_Current_Line1等。别忘了设置Save format为Timeseries这样导出的数据带时间戳后续画图和特征提取会方便很多。如果不带时间戳仅仅输出数据矩阵你还得自己再找一组时间向量去对应自找麻烦。4. 故障选线算法的仿真对比流程4.1 群体比幅比相法的适用边界群体比幅比相法的基础是在故障瞬间及故障稳态期间故障线路的零序电流幅值显著大于健全线路并且相位与健全线路相反。在纯不接地系统里这个判据很可靠因为所有健全线路的零序电流都是从母线流向线路的电容电流而故障线路的零序电流是从线路流向母线的。但在消弧线圈接地系统中这个方法会遇到大问题消弧线圈的电感电流补偿了故障线路的容性电流虽然零序电流的幅值依然最大但相位关系发生改变。如果消弧线圈运行在过补偿状态故障线路的零序电流相位和健全线路不再相反而是同向比幅比相法直接失效。仿真模型中把消弧线圈的补偿度从欠补偿、全补偿、过补偿三种状态各跑一遍你能清楚看到相位翻转的过程。这种直观感受是纯理论学习得不到的。我个人建议做选线研究时先用比幅比相法跑一组基础工况把故障发生在0.15s、过渡电阻10Ω的波形保存下来作为基准再去叠加其他算法。4.2 五次谐波法的原理与仿真验证五次谐波法的核心逻辑是变压器和负荷产生的谐波背景很小而消弧线圈的补偿作用只对基波有效对五次谐波不起作用因为消弧线圈是按基波谐振设计的。所以五次谐波下的零序系统等效为中性点不接地系统比幅比相法恢复有效。在Simulink中验证这个方法需要用到FFT分析工具。Simulink的powergui模块提供了FFT分析功能可以查看各条馈线零序电流的谐波含量。在故障后的稳态区间选取一段时间窗口做FFT提取出五次谐波分量的幅值和相位对比。经验数值是这样的健全线路的五次谐波零序电流分量通常很小且基本同相位故障线路的五次谐波零序电流明显增大相位相反。用这个方法在过补偿消弧线圈系统里选线实测仿真效果比基波比幅比相靠谱得多。不过有个坑如果系统谐波背景强比如带有大量非线性负荷五次谐波法的可靠性也会降低。这时候可以尝试注入信号法或者暂态量法这套模型因为有完整的暂态仿真能力跑起来也方便。4.3 有功分量法的模型扩展有功分量法的适用场景是中性点经电阻接地的系统。消弧线圈虽然能补偿无功性质的电容电流但对有功电流是没法补偿的。当中性点接入电阻后故障线路上会出现一个有功的零序电流分量这个分量的方向就是从故障点经线路流向母线。把中性点接地电阻参数化后用模型跑不同电阻值可以看到零序电流的有功分量随电阻值的变化规律。我试过5秒内连续切换多个电阻值最终选定在系统电容电流的1.2倍左右也就是中电阻接地效果比较好。电阻太大有功分量太小算法灵敏度不够电阻太小系统运行方式改变太大好处没了。有功分量可以在仿真中通过零序电压乘以一个参考余弦信号再求平均值得到。但这些运算不要直接在Simulink中堆模块写一个MATLAB Function模块做数字信号处理效率会高很多也便于算法移植到实际的选线装置里测试。5. 仿真波形图的深度解读5.1 零序电压波形能告诉我们什么单相接地故障发生时母线零序电压的变化是选线系统启动判据的关键。正常运行时系统三相电压对称零序电压理论上为零。故障发生后故障相电压降低非故障相电压升高到线电压等级零序电压与故障前相电压幅值相等频率为基频。从仿真波形上观察零序电压的建立速度与过渡电阻密切相关。金属性接地时零序电压几乎瞬间达到最大值高阻接地时零序电压缓慢爬升幅值也相对较低。我建议在分析波形时注意观察零序电压的初始相位它与故障发生时刻的电源电压相位有关。如果故障发生在A相电压过零的瞬间零序电压的初始相位也会随之不同但稳态后仍然与故障前相电压同相位。5.2 各馈线零序电流的波形对比这是整套模型里最有价值的输出。把四条馈线的零序电流画在同一张图中你能直观看到故障线路和健全线路的区别。在不接地系统仿真中健全线路零序电流幅值都很小约为每公里线路的对地电容电流乘以故障相电压故障线路的零序电流幅值最大约等于其余所有健全线路零序电流之和。相位关系也很清晰故障线路的零序电流超前零序电压90°健全线路的零序电流滞后零序电压90°。在经消弧线圈接地系统仿真中波形形态会大变。故障线路的零序电流变成感性分量和容性分量的差值即使过了暂态过程稳态波形幅值也可能比健全线路小。这就是为什么现场选线装置经常误判——它没有考虑消弧线圈对故障特征的破坏作用。5.3 暂态过程的波形特征单相接地故障的暂态过程通常持续半个工频周期左右但信息量巨大。在故障初瞬间零序电流包含高频衰减分量其初始幅值可能比稳态值大很多倍。许多选线算法正是利用这一点在暂态窗口内提取特征向量。Simulink仿真中如果采样时间设置得当这些暂态振荡看得一清二楚。你可以在分析区间上只截取故障发生后最开始5毫秒的数据做小波变换或者经验模态分解提出暂态特征。很多论文里的暂态法选线研究实验数据就是这么来的。不过要注意暂态分量的形态受故障初相角影响较大做算法验证时需要在不同故障初相角下多次重复仿真取统计结果不能只跑一个工况就下结论。6. 仿真常见问题与排查实录6.1 仿真报错Too many consecutive zero crossings这个错误在处理电感电流时经常出现尤其是消弧线圈投入瞬间电流变化率太大Simulink的变步长求解器会陷入零交叉检测死循环。解决办法有两个一是换成离散求解器设固定步长同时把消弧线圈的电感值设置合理。二是增加故障支路或者中性点接地支路的串联电阻哪怕是很小的数值也能抑制数值振荡。我在实际模型里把消弧线圈的串联损耗电阻设成了电感感抗值的2%左右这个数值既不影响补偿效果又避免了大部分数值问题。6.2 波形上高频毛刺太多怎么处理如果波形看起来像长了一堆刺不要第一时间想着加滤波先确认是不是采样时间太大或求解器容差设置太松。离散仿真中毛刺往往来自模块切换瞬间的数值突变。处理方式包括降低采样时间、使用powergui中的离散化选项、给零序提取模块的输出加一个一阶低通滤波器截止频率设在300Hz左右。低通滤波器的实现很简单用Continuous库的Transfer Fcn模块分子设为2500分母为(s2500)基本能达到滤除高频振荡而不明显影响工频分量的效果。6.3 参数化扫描的正确姿势做选线算法边界分析时需要跑很多组仿真。手动一个一个改参数再点运行效率极低而且容易漏掉某个组合。正确做法是把关键参数定义成工作空间变量然后用for循环批量执行sim命令。我常用的方式是这样的Rf_list [0, 1, 10, 50, 100, 200]; for i 1:length(Rf_list) Rf Rf_list(i); simOut sim(ground_fault_model); % 保存仿真结果 save([result_Rf_ num2str(Rf) .mat], simOut); end这里Rf是故障电阻变量模型内部直接引用。跑完一组之后再统一加载运算不用每次人工介入。批量仿真时要注意给模型变量加前缀防止循环中工作空间变量冲突。6.4 消弧线圈参数计算错误导致谐振这是一个原理性错误但特别容易犯。消弧线圈的电感值计算必须基于系统总的对地电容而不是某一条馈线的电容。如果模型里四条馈线的总电容是2.5微法那么补偿到全补偿状态消弧线圈的感抗应该等于1/(3ωC0)吗不是这里的3ωC0计算的是系统三相对地电容的总导纳。正确的思路是消弧线圈的额定电流应为系统电容电流的1.25倍左右。电容电流计算如下I_C 3 * ω * C_total * U_ph / √3其中U_ph是相电压有效值。把C_total 2.5e-6 FU_ph 5774 Vω 314.16代入得到大约13.3A。取过补偿度5%消弧线圈电流约为14A电感L 5774/(314.16*14) ≈ 1.31 H。这个值直接写进Simulink的Series RLC Branch模块就能得到合理的过补偿运行状态。如果你把电感设成1.31H就视为正确那是运气好因为你刚好用了这个公式并且没有马虎。7. 这套模型的扩展思路7.1 从模型到辨识算法选线问题的核心不是采集数据而是从海量数据中提炼故障特征。我在Simulink里做选线算法研究时有一个心得别把算法逻辑画在Simulink模块图里那样改起来太痛苦。推荐的方式是Simulink负责产生波形、导出数据MATLAB脚本负责跑算法、画图、输出判据。后续可以尝试的方向包括基于小波包分解的暂态能量选线、基于深度学习的故障波形分类、基于故障指示器的故障区段定位。这些方向都需要大量的训练样本或测试样本而这套仿真模型正是生成样本的最佳工具。7.2 接入新能源分布式电源的影响现在的配电网已经不是纯粹的单电源辐射网。分布式光伏、风电、储能接入后故障时不仅系统侧会向故障点提供短路电流分布式电源也会提供零序电流的分布规律会发生变化。在模型中加入光伏电源的等效模型需要把逆变器控制策略搭进去工程量不小但意义很大。如果你想走这个方向建议先把基础模型跑熟再一步步增加复杂度否则调试时根本分不清是主电路的问题还是控制策略的问题。最后分享一点个人实操心得我在最初调这个模型的时候犯过一个低级错误把零序电流提取模块的增益算错了导致故障线路和健全线路的电流幅值看起来几乎一样大。排查了整整两天最后是通过在几条线路上分别加设临时测量点才定位到问题。从那以后我养成了一个习惯不管模型多复杂都会在一些关键线路上额外并联一个简易的电流测量模块虽然看起来冗余但调试时作用极大。如果你准备把这套模型用于自己的论文或者项目我建议你从最简单的两馈线模型开始验证确认波形正常再扩展到四馈线。直接上来就搭完整的四馈线模型一旦结果不对排查范围太大很容易打击信心。还有一点关于仿真数据与现场数据的差异。仿真模型中的负荷通常用固定阻抗等效实际负荷是动态变化的。这种差异对稳态选线算法的影响不大但对暂态算法的验证结果会产生偏差。所以仿真结果只能作为算法可行性的初步验证最终还是要靠动态模拟实验或者现场录波数据来确认算法的鲁棒性。这套模型我目前还在持续更新下一步计划加入电弧接地故障的仿真模型用真实的电弧电阻非线性时变特性替换现在的固定过渡电阻让仿真结果更贴近现场的实际故障特征。