☰
从Ward等值到阻抗模拟:电力系统故障计算的工程实现
2026/10/5 7:31:55 网站建设 项目流程

简介:这是一份面向电力系统专业学生与工程技术人员的《高等电力系统分析》课件,聚焦阻抗模拟这一核心方法,重点讲解如何通过 Ward 等值、阻抗/导纳矩阵以及规范阻抗形式来模拟不对称故障。内容从基础概念入手,覆盖 A 相接地、BC 相间短路、BC 两相接地等典型故障场景,并给出等值阻抗通用公式与支路内部故障的规范化处理思路,对学习故障分析、保护配置和系统等效建模很有帮助。课件为单个 PPT 文件,大小仅 359KB,便于下载和课堂演示;作者为 wxg520cxl。目前已有 75 人浏览学习,适合作为电力系统课程复习、考研备考或教学备课的补充资料。资源虽小,但知识点密度较高,包含 Ward 等值分解、导纳阵构造、10-6/10^6 数值近似等关键技巧,可帮助读者快速梳理阻抗模拟的完整脉络。

1. 阻抗模拟课件:电力系统分析里最容易被忽略的一层功夫

初学电力系统分析时,很多人把不对称故障计算理解成背公式:记住A相接地、BC相间短路、两相接地的边界条件,套对称分量法就结束。真正动手做暂态仿真、保护定值校核之后才会发现,工程程序里根本不这么干,而是把所有故障统一表达成阻抗/导纳网络,交矩阵求解器去处理。

这套《高等电力系统分析》课件正好覆盖这个工程缺口。它把Ward等值、不对称故障规范阻抗形式、支路内部故障新增节点再消去这三件事串成一条完整的计算链,课件里反复出现的“10⁻⁶代表短路、10⁶代表开路”,恰恰是故障模拟的数值基础。适合正在做故障计算、保护整定,或者临时需要把教材公式改写成程序的人,这份课件不是给你补概念,而是告诉你故障计算在程序里到底长什么样。

2. Ward等值:从分块方程组到等值网络的完整推导

2.1 分块方程A X = B:保留系统与外部系统的第一次拆分

课件里Ward等值的起点是一个标准的线性方程组,形式是A X = B。这个A不是最终要用的节点导纳阵,而是与网络方程同构的系数矩阵,你要算的电压或者电流状态量都在X里。把节点按“保留/消去”分成两组之后,方程写成块状:

[ \begin{bmatrix} A_{11} & A_{12} \ A_{21} & A_{22} \end{bmatrix} \begin{bmatrix} X_1 \ X_2 \end{bmatrix}

\begin{bmatrix} B_1 \ B_2 \end{bmatrix} ]

其中X₁是保留节点(研究区域加边界节点)的状态量,X₂是外部节点的状态量。第一行展开是A₁₁X₁ + A₁₂X₂ = B₁,移项后得到课件中的第一个关键公式:

X₁ = A₁₁⁻¹B₁ − A₁₁⁻¹A₁₂X₂

到这里先别急着往代码里搬,两个量的物理含义值得停下来想清楚。A₁₁⁻¹B₁这一项,含义是外部系统完全去掉、只保留系统自身时的解,课件里一般记为X₁的零阶近似;A₁₁⁻¹A₁₂这一项,反映的是外部系统通过边界节点对保留系统的耦合影响,记作W₁₂。于是整个式子变成X₁ = X₁⁽⁰⁾ − W₁₂X₂,这是Ward等值在阻抗域最精炼的表达:保留节点的响应,等于本系统自身响应,减去外部系统经边界注入的修正量。工程上做外部系统等值,真正要保留的就是这个W₁₂和等值后的边界注入。

2.2 消去外部节点:等值导纳的舒尔补形式

接着看第二行A₂₁X₁ + A₂₂X₂ = B₂。把上一节X₁的表达式代进去,整理之后可以得到课件中给出的外部节点解:

X₂ = (A₂₂ − A₂₁A₁₁⁻¹A₁₂)⁻¹(B₂ − A₂₁A₁₁⁻¹B₁)

括号里那个A₂₂ − A₂₁A₁₁⁻¹A₁₂,就是数值线性代数里的舒尔补。高斯消去时先消X₁,剩下的系数矩阵就是它。在Ward等值里它的角色是:消去外部系统之后,边界节点看到的等值网络参数。如果A是节点导纳阵,那这一项就是边界节点的等值导纳修正;如果A是回路阻抗阵,那这一项就是等值阻抗。课件后面所有等值阻抗通用公式,本质上都在反复用这个舒尔补结构。

再用分块规模算一下开销:设全系统n个节点,保留r个节点,外部n−r个。直接解全系统是O(n³)量级,做Ward等值后,求A₁₁⁻¹B₁和W₁₂的开销大约在O(r³)加上一次性O(r²(n−r))。外部节点越多,等值省的计算量越可观,这正是多馈入系统、大规模互联电网用Ward等值的原因。但注意,这个等式成立的前提是A₁₁可逆,也就是保留节点之间不能出现纯开路导致的对角为零,这一点在导纳阵装配时就要预防。

2.3 数值算例:两个节点手算验证等值前后响应一致

空讲公式容易变成黑匣子,我习惯用一个最小算例把手推过程走一遍。假设一个两节点网络,系数矩阵取A = [[2, −1], [−1, 3]],右端项B = [1, 0],把节点1当保留节点、节点2当外部节点。先直接解原方程组:由第二行可得X₂ = X₁/3,代入第一行2X₁ − X₁/3 = 1,解出X₁ = 0.6,完整解是X₁ = 0.6、X₂ = 0.2。

再看Ward等值怎么做。这里A₁₁ = [2],A₁₂ = [−1],A₂₁ = [−1],A₂₂ = [3]。外部节点消去后的等值系数是A₁₁′ = A₁₁ − A₁₂A₂₂⁻¹A₂₁ = 2 − (−1)×(1/3)×(−1) = 5/3,右端项B₁′ = B₁ − A₁₂A₂₂⁻¹B₂ = 1。于是等值后只解一个一元方程,X₁ = 1/(5/3) = 0.6,和全系统直接解得出的X₁完全一致。这个算例虽小,但说明了Ward等值消去外部节点不改变保留节点的电压/电流响应,代价完全体现在边界参数修正上,这也是“等值”这两个字的数学依据。实际程序里你可能会用更大的矩阵,但验证思路完全一样:先全系统解一遍,再等值解一遍,两个结果对比误差在数值精度内,等值就算通过。

2.4 Ward等值的适用边界:什么系统适合做等值

多次用下来,我的体会是Ward等值不是万能的,边界条件比较苛刻。第一,外部系统最好以恒阻抗(线性元件)为主,负荷如果当成恒功率注入,运行点一变,等值注入就失真。第二,研究区域和外部区域之间的联络线越少、越集中,等值精度越高,边界节点应该选在电气距离近、电压支撑强的母线上。第三,如果外部系统里含有需要重点观察的机组或故障点,别把它们消掉,否则故障后暂态过程根本等值不出来。课件里的Ward等值部分适合用来理解原理和做潮流层面的化简,真正做暂态稳定分析时,还是建议把研究区域附近的边界尽量划大一点,宁多留几个节点,也不要贪图计算速度把边界划得过分干净。

3. 不对称故障的规范阻抗形式:三种故障的装配与10⁻⁶/10⁶约定

3.1 三种典型不对称故障的阻抗接线表

课件第二部分直接用阻抗接线的方式画出了三种不对称故障:A相接地、BC相间短路、BC两相接地。A、B、C三相各自通过阻抗Z_A、Z_B、Z_C连接到中性点N,ZN是中性点对地阻抗。三种故障归一化之后,区别只在于三相各自的阻抗值怎么取:

故障类型ZAZBZC说明
A相金属性接地10⁻⁶10⁶10⁶A相经零阻抗接地,B、C相开路
A相经阻抗接地ZN10⁶10⁶ZN为过渡电阻,常见于弧光接地
BC相间短路(不接地)10⁶ZbcZbcB、C相间直接连接,对地开路
BC相间接地短路10⁶ZNZNB、C经阻抗接地,A相开路

这张表的核心是“规范”两个字。无论故障发生在哪一相、是否带过渡电阻,都用同一套三相阻抗装配流程,程序不需要为每一种故障单独写分支。实际建模时,先按表格把每相的阻抗值确定下来,再换算成导纳填进矩阵,顺手把故障类型名也留在注释里。A相经阻抗接地那一行的ZN如果取0,就是金属性接地;如果取实际过渡电阻,弧光接地、树枝碰线这类带电阻故障也能直接模拟,不需要改程序结构。

3.2 10⁻⁶与10⁶:短路与开路的数值化约定

课件里专门强调了“采用10⁻⁶代表0、采用10⁶代表∞”,这个约定在数值计算里几乎是必须的,原因有两个。

第一个原因是避免除零。理想短路阻抗是0,直接放在分母上做导纳运算,导纳就是无穷大,矩阵元素直接爆掉;理想开路的阻抗是无穷大,导纳是0,对角元素为0又会把矩阵推成奇异。10⁻⁶和10⁶这两个数量级是工程上通用的替代值,短路导纳高达10⁶,开路导纳低到10⁻⁶,数值上既不溢出、又不奇异,计算结果和理想值之间的误差在6个数量级以下,对工程精度完全够。

第二个原因是让所有故障统一进一个装配流程。不管你是短路还是开路,在程序里都是同一个填表函数,只是那个位置的阻抗值写10⁻⁶还是10⁶的区别。这个约定的坑在于方向容易记反:10⁻⁶是给短路支路的,10⁶是给开路支路的。我见过不止一次同事把故障相的阻抗写成10⁶,结果A相接地故障算出来三相电流几乎为零,误以为保护拒动,其实是短路支路被填成了开路。后面第5章排查章节会再展开,这里先记住方向。

3.3 从阻抗装配到三相导纳阵:程序里真正写入的矩阵

阻抗表只是人看的,程序算的是导纳阵。以一个单节点三相网络为例,节点导纳阵按相展开,排布规则是对角元素相加、非对角元素取负:

  • 对角元素Yₐₐ′是A相所有并联导纳之和,包括A相对地导纳、A相上的并联电抗器等;
  • 非对角元素−Yₐᵦ是A、B相之间的互导纳,取负号是因为互导纳的电流方向和自导纳相反。

以A相金属性接地为例,装配时A相的对地阻抗填10⁻⁶,导纳是10⁶;B、C相对地阻抗填10⁶,导纳是10⁻⁶。装配完成之后的Y矩阵代入I = YU,解出来就是各相的电压和电流。程序里往往是先算I = YU,再对需要求电压的节点做U = Y⁻¹I,两步都绕不开这个装配好的矩阵。

很多初学的人会在这一步卡住:为什么不先画故障网络再手推公式?答案很简单,手推公式只适用于教材里的三种对称故障场景,一旦出现带过渡电阻、非线性电弧或者多故障点并存,手推的边界条件就崩了,而导纳阵装配完全不受影响,你只需要改对应位置的阻抗值。课件里“用规范的阻抗形式模拟不对称故障”这一整节,落脚点就是把这个矩阵装配流程讲透,后面所有等值阻抗计算都建立在它之上。

4. 等值阻抗通用公式与支路内部故障:新增节点、消去节点的一步到位

4.1 三相导纳阵求逆:等值阻抗通用公式的落地

课件里等值阻抗通用公式的推导,建立在三相导纳阵的基础上。前面装配出的Y阵,求逆之后得到的就是等值阻抗阵Z = Y⁻¹。对3×3矩阵,程序里可以直接调矩阵求逆,手算时用伴随矩阵法:

Z = adj(Y) / det(Y)

其中det(Y)对于三相系统可以展开成三项乘积的差。具体展开式不一定要背,程序也不会让你手算行列式,但有两个物理解读值得记住。对角元素Zₐₐ表示A相看进去的等值自阻抗,也就是A相注入单位电流时A相的电压响应;非对角元素Zₐᵦ表示A、B两相之间的互阻抗,它的存在说明三相网络在故障后不再解耦,这正是对称分量法在不对称故障时要逐序分解的原因。课件里把这个求逆过程称作等值阻抗通用公式,想表达的是:任一三相网络,只要Y阵装配正确,等值阻抗就由Y⁻¹唯一确定,不需要针对故障类型手动构造等值电路。程序实现时直接调numpy.linalg.inv或者Matlab的inv(),但验证结果时还是要回到伴随矩阵的物理解读上来,防止矩阵奇异时程序返回垃圾结果你还不知道。

4.2 支路内部故障的规范化处理:新增节点把故障位置变成普通节点

课件最后一部分处理的是线路内部故障。一段线路i–j中间距离i点不远处f点发生故障,常见做法是把f点新增为节点,原线路被拆成两段:i–f段导纳Y_L1、f–j段导纳Y_L2,f点经故障阻抗Z_F连接到地。节点导纳阵从2×2扩成3×3,排布如下:

节点ifj
iYii + Y_L1−Y_L10
f−Y_L1Y_L1 + Y_L2 + Y_F−Y_L2
j0−Y_L2Yjj + Y_L2

其中Y_F = 1/Z_F是故障点对地导纳,金属性接地时Z_F取10⁻⁶,Y_F就是10⁶。这里Y_L1和Y_L2不是随便取的,如果线路i–j总导纳是Y_L,故障点距i端比例为p,那么Y_L1 = Y_L/p、Y_L2 = Y_L/(1−p),看着反直觉但物理上是对的:线路段越短导纳越大。这个p就是故障位置参数,程序里只要改p,就能扫出沿线任意位置故障的电气量曲线,这在保护定值校核里非常实用。

4.3 消去故障节点后的网络合并:把故障拍平回原来的节点规模

f节点在物理上是真实的故障点,但网络求解时它没有注入电流,属于无源节点。把f节点从方程组里消去,实际上是对f所在行做高斯消去,消去之后i、j两点之间出现新的转移导纳,原网络节点规模恢复。按3×3矩阵手动消去第二行第二列,可以得到:

  • i–j转移导纳变为:−Y_L1·Y_L2 / (Y_L1 + Y_L2 + Y_F)
  • i点对地导纳修正:Yii + Y_L1 − Y_L1² / (Y_L1 + Y_L2 + Y_F)
  • j点对地导纳修正:Yjj + Y_L2 − Y_L2² / (Y_L1 + Y_L2 + Y_F)

物理解读很直观:故障点引入的导纳Y_F通过分压作用落到i、j两端,改变了原线路的等值对地导纳和互导纳。如果Y_F特别大(金属性接地),i–j转移导纳趋近于−Y_L1·Y_L2/(Y_L1+Y_L2),相当于线路被故障点“劈”成了两段并联;如果Y_F接近开路,修正项趋近于0,原线路保持不变。这套做法最大的好处是规范化:不管是节点故障还是支路内部任意位置的故障,最终都走同一条新增节点→装配导纳阵→消去无源节点→求逆流程,故障位置参数化之后,程序里只需改p和Y_F,不需要重写整个网络方程。

5. 阻抗模拟常见问题排查:四个翻车点与对应处理

5.1 10⁻⁶和10⁶的方向填反,故障直接算成开路

现象:单相接地故障算出来的故障电流几乎为0,三相电压全部接近正常,保护逻辑怎么校都校不上。

原因:程序里把故障相的阻抗填成了10⁶,金属性短路被模拟成了开路,故障电流自然出不来。

解决:装配时统一先写阻抗表再转导纳阵,给短路和开路各定义一个常量,比如Z_SHORT = 1e-6、Z_OPEN = 1e6,注释写明“短路用1e-6、开路用1e6”,不要在装配函数里直接写裸数字。所有故障类型都从这个常量表取值,方向就不会错。

5.2 开路相对角导纳填零,矩阵奇异求逆失败

现象:Y阵求逆报singular,或者算出来的电压出现inf/nan,程序直接崩。

原因:开路相的对地导纳填了0,对角元素为零,矩阵不可逆。这是最容易忽略的细节,短路相用了10⁻⁶,觉得开路相“不接东西”就直接写0,结果矩阵奇异。

解决:开路相对地导纳也必须有值,用10⁻⁶量级替代0。数值上是“漏电”的开路,物理效果接近理想开路,但矩阵保持非奇异。这就是课件里10⁻⁶约定最重要的工程含义:不只短路要避零,开路也要兜底。

5.3 Ward等值的外部负荷用恒阻抗近似,运行点一变误差失控

现象:潮流算例里等值前后的损耗对不上,暂态仿真时边界母线电压偏差超过工程容忍度。

原因:等值时把外部系统负荷当恒阻抗吸收进去,但实际负荷是恒功率特性,运行点变了,恒阻抗模型的注入就不对了,等值精度随之劣化。

解决:把外部系统中对边界影响大的发电机节点保留下来,或者用诺顿等值注入替代纯阻抗等值,再进一步的做法是给边界节点配上可调的等值注入,随运行点修正。别为了省计算量把边界划得太小,留两三个关键机组比堆几百个远端节点有用得多。

5.4 课件公式符号和教材对不上,代码也跟着写错

现象:照着课件公式写程序,解出来的电压符号反了,或者矩阵维度对不上,debug半天找不到根源。

原因:课件用A X = B的分块形式表述Ward等值,符号体系和常用的节点导纳阵Y U = I不一样,A可能是导纳阵也可能是阻抗阵,B的符号约定各套教材不一致,直接照抄容易抄错。

解决:动手写代码前,先用最小两节点算例手推一遍,把A₁₁、A₁₂、B₁逐个对上,再落到代码。我一般会把课件每个公式在笔记本上对照教材重写一遍,标出符号含义表再开写,这一步能省掉后面大量debug时间,尤其是涉及分块矩阵维度时,提前标清楚每一块的尺寸比事后猜快得多。

6. 进阶验证:用一个最小Python脚本把课件公式跑通

6.1 最小验证脚本

课件看到这个程度,最有效的验证方式是把A相接地故障重新实现一遍。我用Python演示最小流程:装配三相导纳阵、求逆得等值阻抗、解出故障电流,三步对应课件前三节的核心内容。

import numpy as np Z_SHORT = 1e-6 # 短路阻抗:模拟0 Z_OPEN = 1e6 # 开路阻抗:模拟无穷大 # A相金属性接地:A相短路接地,B/C相开路 z_a = Z_SHORT z_b = Z_OPEN z_c = Z_OPEN # 三相单节点导纳阵,只含对地导纳,无相间耦合 y = np.array([ [1/z_a, 0, 0], [0, 1/z_b, 0], [0, 0, 1/z_c] ], dtype=complex) # 等值阻抗阵 = 导纳阵求逆 z_eq = np.linalg.inv(y) # 施加A相单位电压,B/C相无注入,求解故障电流 u = np.array([1+0j, 0, 0]) i = y @ u print("等值自阻抗 Z_AA =", abs(z_eq[0, 0])) print("故障电流 I_A =", abs(i[0]), "(标幺值,1e6量级说明金属性短路)")

这段代码对应课件里A相接地那一页的完整计算链。参数说明:Z_SHORT是金属性短路的数值替身,Z_OPEN是开路的数值替身;y矩阵的对角元素分别对应A、B、C相对地导纳,求逆后z_eq的对角元素就是各相等值自阻抗,故障电流直接用导纳阵乘电压得到。对于BC相间短路,只需要把z_b和z_c都改成Z_SHORT,y矩阵改成含相间耦合的形式,其余逻辑完全不用动。

6.2 把课件公式转成自己的笔记与汇报材料

最后说一个课件整理的技巧。这份PPT里公式密集,直接在屏幕上反复翻页效率很低。我习惯把每一页关键公式截图导出成高清图片,再插进自己的OneNote或汇报文档里,旁边用手写批注写清参数含义。导出时记得把页面分辨率调高,别用默认压缩,否则公式边缘全是锯齿,放大就糊了。整理完再对照第5章那几个坑做一轮自查,基本就能把课件的计算链吃透。从那以后,我每拿到一套矩阵公式密集的课件,都强制走同一个流程:先按故障类型填阻抗表,再核对短路/开路量级方向,最后用最小脚本复算一遍。这套流程走下来,再回自己的仿真工程,你会明显感觉到故障计算不是背公式,而是搭矩阵、填参数、求逆三步走。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询