最近在折腾电力系统课程设计的时候,我帮一个学弟调了两相短路故障的 Matlab 仿真模型。原本以为这是个“照着教程三分钟搭完”的活,结果发现他把 Three-Phase Fault 模块搭错、波形读歪、还不理解为什么故障相电流和故障电压会呈现那样的相位关系。折腾了一下午之后,我觉得很有必要把完整建模过程、模块配置细节和波形验证方法写成一篇文章。
很多人上手短路仿真,第一反应都是搭三相短路模型,因为教科书上公式最漂亮、波形最直观。但真实电力系统里,两相短路这类不对称故障才是保护配置和整定计算绕不开的部分。你如果只会在 Simulink 里拖一个 Three-Phase Fault 然后点“故障类型=三相”,等到需要分析两相短路、两相接地短路时,大概率会被波形弄得一头雾水。
这篇文章就以“两相短路故障 Matlab 仿真模型”为主线,从序分量原理讲起,给出完整的 Simulink 建模步骤、参数设置、波形验证方法和调试经验。适合正在做电力系统课程设计、毕业设计,或者想入门电力暂态仿真的同学参考,哪怕你之前只碰过三相短路模型,按文中的思路也能顺利迁移。
1. 为什么两相短路仿真比三相短路更考验理解
1.1 三相短路模型直接“套”不过去
三相短路是对称故障,A、B、C 三相在电气上完全对称,分析时取一相计算就行。在 Simulink 里,你甚至只需要一套正序网络和一组三相电压源,故障模块一拖,波形自然就是对称的。但两相短路不一样,以最常见的 BC 相间短路为例,它属于不对称故障,故障发生后系统中同时存在正序分量和负序分量,三相的电压、电流相位关系和幅值关系全部改变,绝不是“少一相短路”那么简单。
我在帮学弟调模型时发现,他直接把三相短路模型的故障模块改成了“Phase-to-Phase”,以为这样就完事了。结果波形出来,他看不懂为什么两相短路电流幅值只有同点三相短路的 0.866 倍,更看不懂非故障相电压为什么没有像三相短路那样跌到零。所以这里先强调一句:两相短路仿真不是改几个参数就能套用三相模型的,你需要先理解不对称故障的序分量分析方法。
1.2 两相短路与相邻故障类型的关键差异
要搞清两相短路,最好把常见的四种短路类型放在一起对比。我直接以表格形式给出最核心的区别:
| 故障类型 | 是否不对称 | 是否存在零序电流 | 正序、负序电流关系 | 典型的仿真用途 |
|---|---|---|---|---|
| 三相短路 | 对称 | 否 | 只有正序 | 校验母线短路容量、断路器开断能力 |
| 两相短路 | 不对称 | 否 | 正序与负序幅值相等 | 距离保护、过流保护的动作逻辑验证 |
| 两相接地短路 | 不对称 | 是 | 正序、负序、零序同时存在 | 变压器零序保护、接地保护整定 |
| 单相接地短路 | 不对称 | 是 | 正序、负序、零序同时存在,零序最明显 | 小电流接地系统、序分量判据研究 |
从这张表能看出,两相短路最大的特点就是“没有零序分量”。这个特点直接决定了它的复合序网连接方式:正序网络和负序网络并联,零序网络不参与。很多人在建模和验证时忽略这一点,非要去看零序电流波形,结果发现理论上应为零的信号在仿真里却有一堆毛刺,然后开始怀疑模型有问题。
2. 动手仿真前,先用手算把结果“剧透”出来
2.1 对称分量法的拆分逻辑
在搭模型之前,我强烈建议先自己手算一遍。不是为了算得多精确,而是要给自己一个“预判结果”,否则仿真出来一堆波形,你根本不知道怎么验证。
对称分量法的核心思想是:把一组不对称的三相相量分解成三组对称的相量,分别称为正序分量、负序分量和零序分量。设 A 相电流为基准,则:
- 正序分量:A 相、B 相、C 相依次滞后 120 度,相序为 A-B-C;
- 负序分量:A 相、B 相、C 相依次超前 120 度,相序为 A-C-B;
- 零序分量:三相幅值、相位完全相同。
用电流来写就是:
I_a = I_a1 + I_a2 + I_a0
I_b = a²·I_a1 + a·I_a2 + I_a0
I_c = a·I_a1 + a²·I_a2 + I_a0
其中 a 是旋转因子,a = e^(j120°),作用就是把某个分量旋转 120 度。
2.2 BC 两相短路的边界条件与复合序网
对于 BC 相间短路,故障点的边界条件有三个:
I_a = 0
I_b = -I_c
U_b = U_c
翻译成人话就是:非故障相 A 相没有电流流入故障点;故障相 B、C 两相的电流大小相等、方向相反;故障点处 B、C 两相的电压相等。
把这三个条件代入对称分量公式,可以推出两个非常关键的结论:第一,I_a0 = 0,也就是零序电流为零;第二,U_a1 = U_a2,也就是故障点处的正序电压和负序电压相等。
这两个结论对应到复合序网上,就是正序网络和负序网络在故障点处并联在一起,而零序网络因为是开路状态,完全不参与故障分量计算。这是整个两相短路分析的灵魂,你在 Simulink 里看到的仿真结果,本质上都是这一套序网关系的具体体现。
2.3 一个完整算例,给仿真结果做对照基准
我在模型里设置的系统参数是:额定线电压 10kV,系统基准容量 100MVA,电源正序电抗和负序电抗各为 0.1(标幺值),忽略电阻,故障为金属性 BC 相间短路。
先算基准电流:
I_base = S / (√3 × U) = 100×10^6 / (√3 × 10×10^3) ≈ 5774A
两相短路故障电流计算公式是:
I_f = √3 × E_φ / (Z1 + Z2)
在标幺值下,E_φ = 1,Z1 = Z2 = j0.1,于是:
I_f = 1.732 / (0.1 + 0.1) = 8.66(标幺值)
换算成实际电流:8.66 × 5774 ≈ 50kA。这个数值可以作为你仿真波形幅值的“标尺”。
再验证一个关键比例:同样位置的三相短路电流标幺值是 1/0.1 = 10,两相短路电流是 8.66,比值正好等于 √3/2 ≈ 0.866。换句话说,在正序和负序阻抗相等的前提下,两相短路电流是三相短路电流的 0.866 倍。仿真波形出来以后,你直接拿这个比例去卡,立刻能判断模型对不对。
非故障相电压也值得提前算一下。故障点处的正序电压 U_a1 = U_a2 = 0.5(标幺值),合成 A 相电压 U_a = U_a1 + U_a2 = 1.0(标幺值)。这个结论很反直觉:两相短路时,非故障相电压几乎保持故障前水平,不会像三相短路那样跌到接近零。如果你仿真出来非故障相电压大幅塌陷,那大概率是故障模块的接地设置出了问题。
3. Simulink 建模全流程:模块配置与参数设定
3.1 模型的整体结构
Matlab/Simulink 里,做电力系统暂态仿真建议使用 Simscape 库中的 Specialized Power Systems 模块组,它专门为电力系统电磁暂态仿真提供了完整的元件库。你不需要自己搭微分方程,只要按物理结构把模块连起来就行。
两相短路仿真模型最基本的模块清单如下:
- Three-Phase Source:三相电源,提供系统电势;
- Three-Phase V-I Measurement:三相电压电流测量模块;
- PI Section Line 或 Distributed Parameters Line:输电线路模型;
- Three-Phase Fault:故障模块,也是整个模型的核心;
- Powergui:电力系统仿真求解器设置模块,必不可少;
- Scope(示波器):波形显示模块。
整体连接思路是:电源出口接测量模块,测量模块后面接线路,线路末端再接一组测量模块和负载,故障模块则连接在线路的末端或者你关注的关键节点上。这样你既能观察电源出口侧的波形,也能观察故障点附近的波形。
3.2 电源与功率级参数设置
双击 Three-Phase Source,在参数窗口中需要设置电源的相数、频率、电压幅值以及内部阻抗。
我在这个模型里设置的电源参数如下:
- Phase-to-phase voltage(线电压有效值):10kV;
- Frequency:50Hz;
- 内部连接方式:Yg(中性点接地星形);
- Internal resistance:0.01Ω;
- Internal inductance:0.1mH。
内部阻抗不要设置为 0,倒不是为了模拟真实系统,而是为了给仿真求解器一个“锚点”,避免出现纯理想电源和线路电感直接相连导致的数值振荡。很多新手在这里习惯性填 0,结果故障瞬间波形高频振荡非常厉害。
如果你更习惯用标幺值方式描述系统,也可以在电源模块里直接填短路容量和 X/R 比。比如设短路容量 500MVA、X/R=10,软件会自动折算成等效阻抗。我个人在课程设计里更喜欢直接填阻抗值,因为后续对照手算结果更直观。
3.3 输电线路参数配置
我这里用的是 PI Section Line 模块,适用于不超过 100km 左右的短线和中长线。双击线路模块,按照厂家典型参数填入:
- 正序电阻 R1:0.01273 Ω/km;
- 正序电感 L1:0.9337×10^-3 H/km;
- 正序电容 C1:12.74×10^-9 F/km;
- 零序电阻 R0:0.3864 Ω/km;
- 零序电感 L0:4.1264×10^-3 H/km;
- 零序电容 C0:7.751×10^-9 F/km;
- Line length:50km。
如果线路特别长,或者你希望波形更贴近超高压长距离输电的暂态特性,可以把线路模型换成 Distributed Parameters Line,也就是分布参数线路。但日常做两相短路故障特性分析,50km 的 PI 模型已经足够,计算速度也更快。
3.4 Three-Phase Fault 模块配置(重点)
这是整个模型里需要最仔细配置的模块。Three-Phase Fault 双击后有多个选项卡,我按实际配置顺序讲。
第一步,选故障类型。在 Fault type 下拉框里选择 Phase-to-Phase fault(相间短路),也就是两相短路,而不是 Phase-to-Phase-to-Ground。这两个名字只差一个 Ground,但物理本质完全不同:前者是 BC 两相金属性相连,与地无关;后者是 BC 两相先连在一起再接地,故障电流会通过大地构成回路,零序分量完全不一样。
第二步,选故障相。模型默认会列出 A 相、B 相、C 相三个复选框。做 BC 两相短路,就只勾选 B 相和 C 相,把 A 相留空。很多初学者容易在这里顺手勾了一个“A相故障”,结果认为是 BC 两相短路,仿真出来的却是两相接地或直接短路,波形彻底错乱。
第三步,设置故障时间。在 Switching times 一栏填 [0.1 0.2],意思是 0.1 秒发生故障、0.2 秒故障切除。为了观察完整的故障前稳态、故障中暂态、故障后恢复过程,建议总仿真时间设为 0.3 秒。
第四步,设置过渡电阻和接地电阻。金属性短路可以把 Fault resistance 设为 0.001Ω,但不要直接填 0,否则求解器会在故障切换瞬间遇到严重的数值奇异问题,仿真步长被压到极小,跑得非常慢。接地电阻在纯相间短路模型里不参与回路,随便填一个默认值即可。
3.5 测量模块与示波器接线
测量接线这件事看起来简单,但做不对会影响波形阅读。Three-Phase V-I Measurement 模块带两组输出端子,一组是电压输出,一组是电流输出,两组信号都需要经过额外的信号处理才能送入示波器。
我的做法是:在电源出口接一个测量模块,在线路末端再接一个测量模块,总共两处。两个测量模块的电压、电流信号都送到对应的 Scope 里,然后通过 Scope 里的多端口设置分开显示。这样做的目的是便于对比故障点前后的电气量差异。
如果你还想进一步分析序分量,可以在测量模块后加一个 Symmetrical Components 模块,它能直接把三相电压、电流变换成正序、负序、零序三组分量,省去自己用公式算。这个模块在验证模型正确性时极其好用,后面第 4 章我会详细讲。
4. 仿真波形解读:故障特征与机理的对应关系
4.1 电流波形:先看幅值,再看相位
仿真跑完,先看线路末端的电流波形。在 0 到 0.1 秒之间,三相电流是标准正弦且幅值很小,对应正常运行状态。0.1 秒故障发生,你能看到 B 相和 C 相电流同时突变,幅值突然抬升,并且两者相位正好相差 180 度,也就是一个正半周时另一个是负半周,两者相加为零。这个现象对应的就是边界条件 I_b = -I_c。
与此同时,A 相电流在故障发生后迅速回落到接近零。这里注意“接近零”不等于绝对零,因为测量点不在故障点正上方时,线路电容电流和负载电流仍然会给 A 相贡献一点点分量,但只要量级远远小于故障相电流,就说明模型配置是正确的。
幅值方面,把示波器波形放大,读取故障期间 B 相电流的峰值。如果系统很硬(内阻抗小),你会发现第一个周期的瞬时峰值可能高于稳态故障电流,这是正常的暂态直流偏移,不能用它直接和手算电流对比。等故障稳定后,读取波形的有效值或者绝对值包络,再和手算值 50kA 对比。我实测下来,误差一般在 3% 以内。
4.2 电压波形:非故障相电压为什么不跌
再看电压波形。BC 相间短路时,B 相和 C 相电压会明显下降,但不会掉到零。三相短路时故障相电压几乎为零,这是很多人形成的固有印象,一看到两相短路故障相电压还剩一半,就开始怀疑仿真有问题。这里需要纠正认知:两相短路时故障点处的相间电压为零,但每一相对中性点的电压并不为零。
结合手算结论,B、C 相电压幅值约为故障前的一半,A 相电压几乎保持原来的幅值。你在 Scope 里看到的就是:A 相正弦波照常,B、C 相正弦波缩水且相位关系改变。这是两相短路区别于其他短路类型的一个非常明显的视觉特征。
4.3 用序分量模块验证零序为“0”
验证模型正确性最严谨的办法是用 Symmetrical Components 模块提取序分量。把测量到的三相电流送入该模块,输出端就能得到正序电流、负序电流和零序电流。
在两相短路场景下,你应该看到:正序电流和负序电流幅值相等,相位关系符合理论推导;零序电流在理论值为零,但仿真中会出现一条幅值非常小的高频毛刺波形。这条毛刺不是故障产生的,而是数值算法在串联电感和切换开关作用下产生的数值噪声。看到它不用慌,只需要确认它的量级比正序电流小两三个数量级以上就行。
如果零序分量明显存在、幅值达到正序分量的百分之几以上,那就要回检查故障模块是不是选成了 Phase-to-Phase-to-Ground,或者线路参数里零序阻抗填错了。
5. 调试、常见坑与扩展改造思路
5.1 故障瞬间的直流偏置哪来的
这是我被问得最多的问题。仿真波形里,故障发生后第一个周期电流的瞬时峰值明显不对称,偏向时间轴的一侧,看起来像叠加了一个衰减的直流分量。
这个现象在真实电力系统里确实存在:故障瞬间,电感中的电流不能突变,为了满足“电流连续”的约束条件,故障电流中会伴随一个按 L/R 时间常数衰减的直流分量。到底有多大,取决于故障发生的时刻。如果故障刚好发生在电压峰值附近,直流分量很小;如果故障发生在电压过零附近,直流分量最大。
所以在反复观察波形时,不要每次都截图,可以尝试改变故障模块的 Fault phase 角度或者电源模块的相位角,再看波形变化。这样做的好处是帮你区分“暂态直流分量”和“稳态故障电流”,不至于把短路电流峰值误当成整定计算用的次暂态电流。
5.2 故障模块里那些容易忽略的“隐性配置”
Three-Phase Fault 模块在较新版本里还有一个 External control 选项,勾选后可以不用内部时间定时,而是通过外部 Step 信号控制故障投入和切除。外部控制的好处是可以在仿真中途改变控制逻辑,方便和继电保护模型联动。
但我建议新手先用内部定时,把 [0.1 0.2] 填进门即可,优先保证模型简单可复现。另外要注意 Fault Breaker 的初始状态要设为“断开”,否则模型一启动就处于故障状态,稳态波形直接没有,示波器里只有故障过程的混乱波形。
还有一个小坑:当你修改了故障类型或切换时间后,一定要重新点击仿真运行,不要在旧仿真结果上直接刷新波形。Simulink 默认会把上一次的仿真结果缓存起来,有时候你改了参数但波形没变,就是缓存作祟。
5.3 从两相短路扩到两相接地和单相接地
一旦两相短路模型调通,往其他不对称故障扩展就非常简单。把故障模块的 Fault type 改成 Phase-to-Phase-to-Ground fault,就是 BC 两相接地短路;改成 Single phase to ground fault,就是单相接地短路。注意此时接地电阻的值会真实参与故障回路,要按实际需要填写,不能再随手留默认值。
扩展的另一条思路是把故障模型和距离保护或过流保护逻辑放在一起。比如在线路测量模块后面接上傅里叶测距模块,通过正序、负序电流幅值判断故障距离,或者通过负序分量是否存在来识别不对称故障。我做课程设计时就是这么玩的:先是纯两相短路模型,后来扩展成“故障判断+保护跳闸”的完整暂态仿真,整个过程都在这个模型的基础上改,没有推翻重来。
回看整个建模过程,我对两相短路仿真最深的体会是:它最大的价值不是“仿真本身”,而是逼着你去理解序分量理论、故障边界条件和复合序网。波形是结果,理论是原因。你只有手算过一遍,才知道仿真波形该长什么样;只有亲手踩过故障模块配置的坑,才知道相位关系和接地选项对结果的影响有多大。把这套模型做熟之后,再看其他不对称故障,你会发现所有模块都长一个样,只是序网连接和零序分量的有无不同而已。