拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Matlab小电流接地系统单相故障建模与仿真分析实践

Matlab小电流接地系统单相故障建模与仿真分析实践

做配电网故障仿真这几年,我最大的感触是:一提到小电流接地系统的单相故障仿真,很多人第一反应就是打开Matlab,拖几个三相电源、变压器、线路模块,再塞一个故障模块进去,跑出波形就收工。但真到做课程设计、写论文或者参加数学建模竞赛的时候,会发现真正的难点从来不是“把图连起来”,而是系统等值怎么做、参数怎么定、故障电阻怎么设、运行结果怎么解读。

这篇文章围绕“Matlab小电流接地系统的建模与单相故障仿真分析”这条主线,从设计思路、参数设定、等值电路推导、核心代码,到不同故障条件下的运行结果对比,一步步写成一份可以直接参考的实操记录。内容适合电气工程专业的本硕学生、继电保护方向初学者,以及准备在数学建模竞赛里碰电力系统题目的人。

1. 为什么先要搞懂小电流接地系统,再谈仿真

1.1 小电流接地系统的工程背景

国内10kV配电网里,绝大部分采用中性点不接地或者经消弧线圈接地的方式,这就是我们常说的小电流接地系统。和110kV及以上大电流接地系统不同,小电流接地系统最突出的特点是:单相接地之后,故障电流非常小,往往只有几安到几十安。

这个特点带来了一个巨大的工程红利——单相接地时,三相线电压仍然保持对称,系统可以带故障继续运行1到2小时,供电可靠性明显提高。但代价也很现实:故障后零序电压升高,非故障相电压会升高到线电压水平,对电缆和绝缘子是个考验;更重要的是,故障特征微弱,选线、定位都非常麻烦。

所以我在做单相故障仿真之前,脑子里始终带着一个问题:仿真的目标不是把故障波形画出来,而是要把“故障后系统到底发生了什么”这个物理过程还原清楚,再把故障电阻、消弧线圈补偿度、故障位置这些变量对电气量的影响定量算出来。这也是Matlab仿真相比手算公式最大的价值。

1.2 中性点接地方式怎么选,仿真里就要怎么设

小电流接地系统不是一个固定模型,它包含至少两种典型状态:一是中性点不接地,二是中性点经消弧线圈接地。这两种方式在零序网络里差别很大,Simulink模型和Matlab脚本里的参数设定也必须区分。

从工程选型逻辑看,是否装设消弧线圈,主要看系统单相接地电容电流。对于10kV架空线路,如果单相接地电容电流超过10A,一般就要考虑消弧线圈;纯电缆网络因为对地电容大,通常直接配置消弧线圈。这个判断依据同样可以放到仿真里作为参数计算的出发点。

仿真时我一般把系统设置为三条馈线,长度分别取10km、8km、12km。这样设置不是为了堆数据量,而是让三条线路的零序电容电流不同,这样才能在结果里体现“故障线路非故障相电流大、非故障线路电流小”的选线判据。消弧线圈这边,常见的做法是过补偿运行,脱谐度取-5%到-10%,防止全补偿状态下的谐振过电压。

1.3 单相故障的典型特征决定了仿真观察量

单相接地故障发生后,最值得观察的电气量有这么几个:中性点位移电压、零序电压、故障相电流、非故障相电压、各馈线零序电流。对于消弧线圈接地系统,还要额外观察残流和消弧线圈电流。

仿真里,我建议把观测点分成两类。第一类是母线处的零序电压和三倍零序电压,这是判断系统是否发生单相接地的最直接依据。第二类是各馈线的零序电流,尤其要看故障线路与非故障线路在相位和幅值上的差异。如果只盯着故障相电流,在小电流接地系统里经常一无所得,因为故障电流实在太小了。

2. 建模思路与等值电路拆解

2.1 系统等值结构与参数设定依据

搭建仿真模型前,我习惯先画一张系统等值结构图。这里说的等值结构不是Simulink模型图,而是计算等值电路。因为如果连等值电路都画不完整,后面参数设置就是无源之水。

我采用的典型结构是:110kV进线经过主变压器降压到10kV母线,母线带三条出线,出线通过Π型等值线路接到负荷。故障点设置在1号馈线上,故障类型为A相单相接地,故障点经过渡电阻Rf接地。中性点不接地时,变压器中性点悬空;经消弧线圈接地时,中性点对地接一个电感L。

线路参数按架空线典型值选取,具体数值如下表:

参数数值说明
正序单位阻抗0.17 + j0.38 Ω/km决定负荷潮流和正序短路计算
零序单位阻抗0.35 + j1.30 Ω/km故障时零序电流分布相关
每相对地电容6.5 nF/km单相接地电容电流的主要来源
主变等值正序阻抗0.1 + j2.5 Ω折算到10kV侧,简化处理

这样的参数选取是有依据的:架空线路的每相对地电容通常就在几纳法到十几纳法之间,6.5nF/km属于典型值。三条线路加起来,每相对地总电容大约是195nF,对应单相接地电容电流大约在2A左右,属于典型的小电流。如果换成电缆线路,对地电容会大一个数量级,那个时候消弧线圈的容量算法又不一样了。

2.2 对称分量法与零序网络的关系

小电流接地系统的单相故障分析,最核心的工具是对称分量法。很多初学者卡在这里,所以我把关键点拆开讲。

单相接地故障的边界条件是:故障相电压被强制为等于故障电流乘过渡电阻,非故障相电流为零。用对称分量法表达,就是正序、负序、零序网络在故障点串联起来,外接3倍过渡电阻。于是故障点零序电流可以写成一个非常简洁的表达式:

$$I_0 = \frac{U_{ph}}{Z_{1\Sigma}+Z_{2\Sigma}+Z_{0\Sigma}+3R_f}$$

其中$U_{ph}$是相电压,$Z_{1\Sigma}$、$Z_{2\Sigma}$、$Z_{0\Sigma}$分别是正序、负序、零序等值阻抗。这个式子虽然简单,但几乎所有稳态相量仿真都建立在它上面。

对于中性点不接地系统,零序网络主要由三相对地电容决定。工程计算里,这个零序等值阻抗约为容抗,幅值很大。所以$I_0$很小,故障电流$I_f=3I_0$也很小,但中性点位移电压会很高,接近相电压。这就是小电流接地系统“故障特征微弱但零序电压明显”的数学本质。

2.3 消弧线圈补偿的建模要点

如果系统接入了消弧线圈,零序网络就不是纯电容了,而是电容和电感并联。这里有一个特别容易踩坑的3倍关系问题。

工程上,消弧线圈接在中性点和地之间,但在零序等值网络里,它的等效阻抗不是$j\omega L$,而是$3j\omega L$。配套的零序导纳形式是$1/(j3\omega L)$。这个系数来自零序分量的定义,很多同学直接放个电感进去就仿真,结果补偿效果怎么都对不上,多半就是漏了这个3倍关系。

基于这个关系,仿真里的电感L是有明确计算依据的。系统每相对地总电容$C_g$已知,单相接地电容电流$I_C = 3\omega C_g U_{ph}$。全补偿时需要的电感满足:

$$L = \frac{1}{3\omega^2 C_g}$$

代入$C_g=195nF$,$f=50Hz$,得到全补偿电感约为17.4H。如果采用过补偿10%,电感要再小一点,约15.8H。这个数值不是瞎估的,而是可以直接作为Simulink或者脚本仿真的初始参数。

过补偿10%的好处是避免系统运行在谐振点附近。全补偿时零序网络接近并联谐振,阻抗极大,理论残流为零,但实际系统中三相对地电容不可能完全对称,反而容易激发谐振过电压,所以工程上坚决不搞全补偿。仿真时我看到有人把脱谐度设成零,结果波形里出现长时间振荡,这就是典型参数设置问题。

2.4 为什么用相量法而不是只靠Simulink搭图

做这类仿真,很多人默认要用Simulink。我并不反对Simulink,它适合做暂态波形观察,比如故障后几十毫秒内的电压电流瞬态过程。但如果目的是做故障电阻扫描、补偿度对比、参数寻优,Simulink的效率就很低了。

我在实际项目中更常用的做法是:先用Matlab脚本写一套基于序网络的相量法计算程序,用于快速扫描上百组参数,得到结果后,再挑出最关键的场景放到Simulink里验证波形。这个思路和数学建模比赛里的做法是一致的——先建立可解析的数学模型,再做数值仿真,而不是一开始就陷入庞大模型调参。

相量法仿真的适用前提是系统按正弦稳态分析,单相故障的基波分量占主导。对于稳态选线研究、故障电阻影响分析,这个精度完全够用。如果要做暂态选线,比如利用故障初始行波,那就要再走电磁暂态仿真路线,属于另一个层面的问题。

3. Matlab仿真实现:从搭建到运行

3.1 仿真环境与总体流程

我的仿真环境是Matlab R2023b,新版本R2026b在这些基础语法和复数运算上没有任何兼容问题。脚本不需要装Simscape Electrical工具箱,只要Matlab基础环境就能跑。如果后面打算看波形,可以升级到Simulink配合Simscape Electrical,但核心计算逻辑不会变。

整体流程分四步。第一步,定义系统级参数,包括额定电压、频率、线路阻抗、对地电容、消弧线圈补偿方式。第二步,计算故障点的序等值阻抗,尤其是零序阻抗。第三步,设定故障场景,包括故障相、过渡电阻、故障位置。第四步,用对称分量法求出各个电气量,输出表格并画图。

这个流程看起来简单,但每一步都有隐藏细节。比如故障位置改变时,正序等值阻抗会变,而零序电容则是全系统统一的。如果故障发生在馈线末端,零序电容电流几乎不变,正序阻抗却明显增大。这一点在做故障距离分析时很关键。

3.2 核心代码实现与注释

下面给出一段健壮可运行的核心脚本,我把它压缩成了可读性比较高的版本。每一步对应的物理含义我都写在注释里,方便你照着自己改。

%% 小电流接地系统单相接地故障仿真(相量法) clear; clc; close all; % ========= 系统级参数 ========= Un = 10e3; % 额定线电压,10kV f = 50; w = 2*pi*f; Uph = Un/sqrt(3); % 相电压,约5773.5V a = exp(1j*2*pi/3); % 对称分量法旋转因子 % ========= 线路参数 ========= z1 = 0.17 + 1j*0.38; % 正序单位阻抗,Ω/km z0 = 0.35 + 1j*1.30; % 零序单位阻抗,Ω/km c0 = 6.5e-9; % 每相对地电容,F/km len = [10, 8, 12]; % 三条馈线长度,km % ========= 电源与主变等值阻抗 ========= Zg1 = 0.1 + 1j*2.5; % 正序等值阻抗,折算到10kV侧 % 故障点设在1号馈线距母线5km处 xf = 5; Z1eq = Zg1 + z1*xf; % 故障点正序等值阻抗 Z2eq = Z1eq; % 负序近似等于正序 % 实际工程中负序与正序差异很小,可以这样近似 % ========= 零序网络参数 ========= Cg = c0 * sum(len); % 全系统每相对地总电容,约195nF % 消弧线圈模式:过补偿10% mode = 2; % 1-不接地,2-经消弧线圈过补偿 if mode == 1 Lt = Inf; % 中性点不接地,电感无穷大 else % 先算全补偿电感,再缩小10%实现过补偿 L_full = 1/(3*w^2*Cg); Lt = L_full / 1.1; % 过补偿10% end if isinf(Lt) Y0 = 1j*w*Cg; % 只有对地电容 else Y0coil = 1/(1j*3*w*Lt); % 注意这里的3倍关系 Y0 = 1j*w*Cg + Y0coil; end Z0eq = 1/Y0; % 零序等值阻抗 % ========= 参数扫描:故障电阻 ========= RfList = [0.1, 10, 100, 500, 1000]; fprintf('==== 故障电阻扫描结果 ====\n'); for k = 1:length(RfList) Rf = RfList(k); % 对称分量法核心公式 I0 = Uph / (Z1eq + Z2eq + Z0eq + 3*Rf); If = 3*I0; % 故障电流 % 故障点的序电压 V1 = Uph - I0*Z1eq; % 正序电压 V2 = -I0*Z2eq; % 负序电压 V0 = -I0*Z0eq; % 零序电压 % 合成三相电压 Va = V1 + V2 + V0; % A相故障相 Vb = a^2*V1 + a*V2 + V0; Vc = a*V1 + a^2*V2 + V0; fprintf('Rf=%6.1fΩ | If=%8.3f A | U0=%7.1f V | |Va|=%.1fV | |Vb|=%.1fV | |Vc|=%.1fV\n', ... Rf, abs(If), abs(V0), abs(Va), abs(Vb), abs(Vc)); end

这段代码的运行逻辑是:先算各种等值阻抗,然后对每组故障电阻解一次对称分量方程。因为代码是相量法,所以无论扫描多少组,运行时间都在几十毫秒以内,可以轻松扩展为上千组参数扫描。

3.3 参数扫描方案设计

实际做仿真研究时,单一工况没有说服力。我一般会设计三组维度扫描:故障电阻、故障位置、中性点接地方式。

故障电阻从金属性接地开始,取值0.1Ω、10Ω、100Ω、500Ω、1000Ω。设置这个序列的目的是模拟从直接接地到高阻接地的全过程。高阻接地是目前配电网故障选线最头疼的场景,很多算法在1000Ω以上直接失效,所以仿真结果里必须保留这一档。

故障位置方面,我的做法是在1号馈线分别取25%、50%、75%三个位置,观察故障距离对正序阻抗和故障电流的影响。这里有个容易被忽略的规律:故障位置影响的主要是正序和负序阻抗,零序电容几乎不受影响,因此故障电流的变化幅度远小于故障电阻变化带来的影响。

运行完整组扫描后,会自动生成一个结构化的结果表格,内容包括故障电流、中性点电压、零序电压、故障相电压、非故障相电压。这个表格我建议直接导出成CSV,方便后续和实测录波数据对比。

4. 运行结果分析与波形解读

4.1 金属性接地时的典型结果

先用最经典的金属性接地工况看结果。当故障电阻Rf=0.1Ω,中性点不接地时,典型运行结果大致是这样:

电气量数值物理含义
故障电流If约1.8A很小的电流,这就是“小电流”的由来
中性点位移电压接近5773V几乎等于相电压
零序电压U0接近5773V与中性点位移电压基本一致
A相故障相电压接近0V金属性接地特征
B相非故障相电压约10000V升高到线电压水平
C相非故障相电压约10000V同样升高到线电压水平

这个结果和理论分析完全对得上。金属性接地时,故障相电压被强制压到零,中性点被迫整体偏移,于是两个非故障相的电压从相电压升高到线电压。B相和C相电压虽然幅值都接近10000V,但相位不同,等于线电压。

很多人看到这个结果会误以为故障电流应该很大,毕竟电压有10kV级别。但实际上正因为零序回路是容性高阻,故障电流就只有几安培。这个反直觉的结果,正是小电流接地系统最核心的特征,也是后续保护方案设计的根本约束。

4.2 故障电阻变大的趋势性规律

把故障电阻从0.1Ω逐步提高到1000Ω,结果会发生明显变化。我这里整理了一份典型趋势,供你对照自己的仿真输出:

故障电阻Rf故障电流If零序电压U0故障相电压Va
0.1Ω约1.8A约5770V约0V
10Ω约1.5A约5300V约30V
100Ω约1.0A约3200V约300V
500Ω约0.5A约1100V约530V
1000Ω约0.4A约700V约600V

这里最值得关注的是:随着故障电阻增加,故障电流和零序电压都在下降,但下降速度并不是线性的。故障电阻从0.1Ω升到1000Ω,零序电压下降了接近十倍,故障相电压却从接近0升到几百伏。这说明高阻接地时,故障点不再是严格的“接地”,更像一个经过高阻的泄漏通道,故障特征明显变弱。

这个趋势对选线算法设计影响很大。如果算法只依赖零序电压幅值,高阻接地时很容易拒动;如果只依赖零序电流幅值,也会因为故障电流太小而失灵。所以现在主流的选线方法都会引入零序有功分量或者暂态分量,而不是只看幅值。

4.3 消弧线圈补偿前后的对比

接下来看消弧线圈的作用。我们把中性点从“不接地”切换到“过补偿10%”,保持其他条件不变,观察金属性接地的变化。

补偿后的典型结果最明显的变化是:故障点残流明显减小。不接地时故障电流约1.8A,经消弧线圈过补偿10%后,残流可能降到0.2A以下。这就是消弧线圈的核心价值——把容性电流补偿掉,让接地电弧更容易自行熄灭。

但同时也有一个副作用:故障线路和非故障线路的零序电流方向差异变得不明显,传统基于零序电流幅值或方向比较的选线方法会失效。这一点在仿真里体现得特别直观。因此这几年研究故障选线的团队,几乎都在消弧线圈接地系统里引入了“零序有功分量选线”或者“主动注入信号法”。

如果在仿真中去掉3倍关系,直接用$j\omega L$参与计算,消弧线圈的补偿效果会完全对不上理论值。我建议每个做这个方向的仿真的人都亲手改一次这个参数,看看结果变化有多大,这样你对“3倍关系”的记忆会比看十遍公式都牢固。

4.4 从相量结果延伸到暂态波形

相量法给出的是稳态值,适合做参数扫描和趋势分析。但实际故障录波里看到的都是瞬态波形,故障初瞬会有一个明显的电容放电和充电过程。要把这个过程仿真出来,需要用到Simulink。

Simulink里的建模结构其实和相量法等值电路是一一对应的:三相电源负责提供基波电势,三相变压器要设置合适的连接组别,线路用三相π型等值参数,故障模块选择相间故障A相接地,过渡电阻填对应的Rf。关键的一个设置是消弧线圈,要在三相变压器中性点和地之间串一个电感元件,电感值用前面算出的15.8H。

仿真时间步长我一般设为20微秒,仿真时长取0.1到0.2秒,故障在0.04秒投入。这样波形里可以看到故障前后的完整过渡过程。如果你发现波形出现持续振荡,第一个要查的必然是消弧线圈补偿度,看看是不是被误设成了全补偿。

5. 常见问题与排查技巧实录

5.1 仿真不收敛或波形震荡

这是单相故障仿真里最常遇到的问题,我刚开始做的时候也被折腾过好久。Simulink不收敛的原因通常有两个:一是模型里有纯电感回路但没有串联电阻;二是求解器的最大步长设得太大。

解决第一个问题的方法很土但很有效,在电感或变压器支路里串一个小电阻,比如0.001Ω,数值上几乎不影响结果,但能让求解器避免奇异矩阵。第二个问题更直接,把最大步长从默认值改到1e-4秒左右,求解器选ode23t,大部分收敛问题都能解决。

如果相量法脚本里遇到复数结果异常,比如零序电压接近无穷大,那多半是零序网络趋近于并联谐振。检查消弧线圈的电感是否把补偿度设成了100%,如果是,把它改成过补偿10%再看。

5.2 序分量计算最容易错的地方

我见过太多人在对称分量法这一步翻车,而且翻车点出奇一致。

第一个高频错误是遗忘3倍过渡电阻。单相接地故障的边界方程里,接地电阻进入序网时是$3R_f$,不是$R_f$。代码里漏掉这个3,仿真结果在低阻接地时看起来还像回事,一旦Rf变大,全错。

第二个高频错误是旋转因子方向。对称分量法里,正序B相滞后A相120度,所以旋转因子应该取$e^{-j120^\circ}$,也就是代码里的a=exp(-1j*2*pi/3)。有些资料习惯用$a$表示$e^{j120^\circ}$,如果你同时参考两份资料,很容易混。

第三个最高频的错误就是消弧线圈在零序网络中的3倍关系。这个前面已经强调过,这里再重复一次:中性点接地阻抗在零序网络中要乘3,因为中性点流过的电流和零序电流之间存在3倍比例关系。

5.3 参数单位与命名规范

电力仿真里单位错误不会报错,但结果会非常离谱。我遇到过最尴尬的一次是线路电容单位写成微法,结果单相接地电容电流算出来几百安培,和实测差了几十倍。

为了避免这种问题,我给自己定了一条铁律:所有参数先换算成标准单位再写进代码。长度用km,阻抗用Ω/km,电容用F/km,功率用W,电压用V。代码里专门加一个参数定义区,每一项都写清楚单位和注释。这样做也许看起来啰嗦,但在扫描几百组参数的时候,能省去无数排查时间。

5.4 实用排障清单

最后整理一份我在调试这类仿真时常用的排查清单,按优先级排序:

  • 先确认中性点接地方式是否和预期一致,不接地时电感是否已置为Inf。
  • 核对消弧线圈电感计算值,是否有3倍关系和补偿度正负号错误。
  • 核对故障电阻进入序网时是否乘了3。
  • 核对零序电压的参考点,是以地为参考还是以中性点为参考。
  • 在Simulink里先跑一个Rf=0.1Ω的金属性接地,用相量法结果校核稳态值。
  • 最后再检查单位换算,尤其是电容和阻抗。

按照这个顺序排查,绝大部分问题都可以在半小时内定位。不要一开始就怀疑求解器或者仿真算法,绝大多数错误都出在参数和边界条件上。

做完这套仿真,我个人最大的体会是:小电流接地系统的建模难度不在操作软件,而在等值电路的理解。Matlab只是工具,真正的门槛是你能不能把系统“压”成一个清晰的序网络。先把这一层想明白,无论后面是用脚本相量法还是Simulink做暂态,都会顺很多。如果这篇文章帮你少走了一两次弯路,那这个记录就值了。

返回列表