新闻详情

新闻详情

首页 / 资讯中心 / 详情

阻抗模拟与导纳矩阵:电力系统不对称故障计算的工程实现

发布时间:2026/9/29 2:55:40来源:尧图网络
阻抗模拟与导纳矩阵:电力系统不对称故障计算的工程实现
简介这份高等电力系统分析课件聚焦阻抗模拟专题适合电气工程专业高年级学生、研究生以及从事电网分析、保护整定和故障诊断的工程师学习参考。课件围绕Ward等值、不对称故障模拟、阻抗矩阵与导纳矩阵、等值阻抗通用公式展开详细说明了如何利用规范的阻抗形式模拟A相接地、BC相间短路、BC两相接地等典型故障并讨论了支路内部故障的规范化处理。还介绍了以10的负6次方近似表示短路、10的6次方近似表示开路等数值技巧便于把理想边界条件应用于实际计算。资源共包含1个PPT文件整体大小359KB以公式推导与电路图示例为主适合在课堂教学中投屏讲解或课后对照教材自学。目前已有75人学习若正在学习高等电力系统分析中的等值计算与不对称故障建模可将其作为重点提示和快速回顾的补充材料。1. 阻抗模拟为什么故障计算最后都得回到一张导纳阵上做电力系统故障分析的人迟早会遇到一个反直觉的结论真正在仿真软件里跑不对称故障很少去手工连序网而是把故障位置改写成一组规范化的阻抗或导纳然后交给导纳阵统一求解。这份《高等电力系统分析课件阻抗模拟.ppt》讲的就是这条路线——从 Ward 等值化简外部系统到用 Z_A、Z_B、Z_C、Z_N 四个量描述 A 相接地、BC 相间短路、BC 两相接地再到 10⁻⁶ 和 10⁶ 这两个数值尺度的使用最后落到 FY 支路内部故障的规范化处理。适合正在用 PSASP、BPA 做保护整定和故障复算的工程师也适合高等电力系统分析这门课里想搞明白“程序里到底怎么算故障”的研究生。整条链路看明白之后你手里的现成软件就不再是黑匣子。2. Ward 等值外部系统化简先过导纳阵消去这一关2.1 Ward 等值到底消去了什么Ward 等值的核心思想不复杂把系统分成内部系统、边界节点和外部系统三大块然后对外部系统的节点做导纳阵消去最终只在边界节点上留下一组等值导纳和等值注入电流。这样做的好处很直接——你只关心内部某一个区域时没必要把几千个外部节点全部保留消去之后边界节点上的电气特性不变但计算规模大幅下降。课件里开头那一大段矩阵公式实际上就是在描述这个过程。设系统导纳阵按内部、边界、外部顺序分块Y_BB Y_BB − Y_BE · Y_EE⁻¹ · Y_EB其中 Y_BB 是边界节点自导纳与互导纳Y_EE 是外部节点导纳阵Y_BE 和 Y_EB 是边界与外部之间的互导纳。消去外部节点之后边界节点之间的等值导纳等于原来的自导纳减去“外部系统折入”的那一项这一项的本质是外部网络对边界节点电压的影响。从物理上看Y_BB 里每个元素都是一个完整的等值支路对地等值导纳放在对角线上边界节点之间的等值互导纳放在非对角线上。内部系统做故障计算时只需要带着这份等值导纳阵不需要再关心外部系统具体拓扑。2.2 两节点 Ward 等值公式、代码、边界修正只看公式不容易建立实感用一个三节点例子跑一遍就清楚了。假设节点 1 是内部节点节点 2 是边界节点节点 3 是外部节点原始导纳阵如下import numpy as np # 节点排序1 内部2 边界3 外部待消去 # 导纳值1-2 支路 2.0 S2-3 支路 1.5 S1-3 支路 0.5 S Y np.array([ [2.5, -2.0, -0.5], [-2.0, 4.5, -1.5], [-0.5, -1.5, 2.0], ], dtypefloat) # 分块保留 1、2消去 3 Y_BB Y[:2, :2] # 保留部分的自导纳与互导纳 Y_BE Y[:2, 2:3] # 保留部分与外部节点之间的互导纳 Y_EB Y[2:3, :2] Y_EE Y[2:3, 2:3] # Ward 等值核心公式 Y_BB_new Y_BB - Y_BE np.linalg.inv(Y_EE) Y_EB print(Y_BB_new)逻辑说明np.linalg.inv(Y_EE) 在外部节点只有一个时就是取倒数多节点时才是真正的矩阵求逆。Y_BE 和 Y_EB 的维度分别是 2×1 和 1×2两者相乘得到 2×2 修正矩阵最后从 Y_BB 里减掉。这一步做完外部节点 3 就从系统里消失了。参数说明代码里的支路导纳值决定修正量大小。如果外部系统和边界节点联系很紧密互导纳数值大那么 Y_BB_new 的修正项就明显边界节点之间会出现明显的等值互导纳如果外部系统很弱修正项接近零这时候直接用原 Y_BB 也不会差太多。但只消去导纳还不够。外部系统里如果有发电机或负荷它们对边界节点的注入电流不能忽略。Ward 等值标准做法是把外部注入电流按下面公式折算I_B I_B − Y_BE · Y_EE⁻¹ · I_E在 PSASP 这类软件里这步是程序自动完成的但如果自己写批处理脚本做等值很容易只做了导纳消去而漏了注入修正。漏掉之后的表现是边界节点电压整体偏低或偏高误差和外部系统出力大小成正比。我一般会在等值前后分别做一次潮流对比把边界节点电压偏差控制在 0.5% 以内再拿去用。2.3 多子区域逐层消去比一次全消更稳课件里 Ward 等值还提到把一个大的外部系统分解成若干子区域分别等值。这里有一个实际工程经验当外部节点上千时一次性对所有外部节点做矩阵消去Y_EE 求逆容易出现数值问题因为外部网络本身可能是弱连接的分块结构矩阵条件数很差。常见做法是分区域逐层消去——先把远端区域消掉再把近端区域消掉每消一层都重新组装导纳阵。这样做的好处有两个一是每层 Y_EE 规模小求逆稳定二是可以中途检查等值精度如果某一层消去后边界电压偏移过大能定位是哪个区域出了问题。我在实际项目里见过不少直接用全局求逆导致结果发散的情况换成逐层消去之后基本都能收敛。3. 对称分量法为什么不对称故障最后都归结为“序网怎么连”3.1 三相量到序分量的线性变换用阻抗形式模拟不对称故障之前得先复习对称分量法因为三种故障的阻抗配置本质上是对序网连接方式的另一种表达。设旋转因子 a e^(j120°)则三相电压变换到正序、负序、零序的标准形式U₁ (U_A a·U_B a²·U_C) / 3 U₂ (U_A a²·U_B a·U_C) / 3 U₀ (U_A U_B U_C) / 3电流同样变换。当系统元件三相对称时三相阻抗矩阵是一个循环矩阵变换到序分量域后自动对角化只剩下 Z₁、Z₂、Z₀ 三个独立值。这就是为什么传统手算故障分析都要先在序网里做——因为三相对称网络在序分量下完全解耦计算量小很多。对这个变换有一点值得留意很多初学者会把 U₁ 和 U_A 搞混。正序分量并不是 A 相电压本身而是三相电压在正序旋转方向上的投影分量。只有在三相对称正常运行且没有负序零序分量时U₁ 才在数值上等于 U_A。3.2 三种经典不对称故障的序网连接把三种故障的序网连接方式列成一张表后面的阻抗配置就能一一对应故障类型序网连接方式边界特征A 相接地正序、负序、零序串联V_A 0I_B I_C 0BC 相间短路正序与负序并联零序开路V_B V_CI_A 0I_B −I_CBC 两相接地正序、负序、零序三网并联V_B V_C 0I_A 0这张表是手算的标准答案。A 相接地时三个序网串联意味着正序、负序、零序电流相等BC 相间短路没有对地回路所以零序电流为零BC 两相接地时故障点直接连地三个序网并联在一起。3.3 程序里为什么不直接连序网既然序网连接关系这么清晰为什么仿真程序里不直接按序网连接方式写边界条件原因是工程实现太啰嗦——每加一种故障类型就得写一套边界条件处理逻辑碰到经阻抗接地、双回线跨线故障、同杆并架不同期故障时边界条件会越来越复杂代码维护成本很高。更通用的方案是不把故障当成边界条件而是把它当成一段等值阻抗网络插进原系统。A 相接地的物理本质就是 A 相多了一条到地的通路BC 两相接地就是 B、C 两相各多了一条到地的通路BC 相间短路就是 B、C 两相之间多了一条通路。这三种情况都可以用一组故障相阻抗来描述程序只需要做一件事修改导纳阵里对应位置的元素。这就是课件标题里“阻抗模拟”的真正含义。4. 阻抗形式模拟不对称故障Z 矩阵建模与 10⁻⁶ / 10⁶ 数值尺度4.1 规范阻抗形式Z_A、Z_B、Z_C、Z_N 的角色课件给出的统一电路模型是A、B、C 三相分别经过 Z_A、Z_B、Z_C 接到中性点 N中性点再经 Z_N 接地。故障类型不同这四个阻抗的取值就不同。这个模型把所有不对称故障统一到一个电路拓扑里短路用 0 阻抗表示开路用无穷大阻抗表示。以 A 相接地为例A 相到中性点之间的阻抗 Z_A 0相当于 A 相直接接地B、C 两相到中性点的阻抗 Z_B Z_C ∞相当于 B、C 相悬空中性点对地 Z_N 0。换成 BC 相间短路则 A 相开路B、C 相之间短路中性点悬空。这里要特别提醒一个概念陷阱课件里写“采用 10⁻⁶ 代表 0采用 10⁶ 代表 ∞”这个表述只有在阻抗矩阵粒度下才是直接成立的。如果你组装的是导纳阵短路对应的是大导纳10⁶ S开路对应的是小导纳10⁻⁶ S方向要反过来。两种粒度都有人用关键是在同一套代码里保持一致不要混用。4.2 三种故障的阻抗配置与导纳阵实现故障类型Z_AZ_BZ_CZ_N导纳阵修改方式A 相接地0∞∞0A 相自导纳加大值BC 相间短路∞00∞B、C 相之间加互导纳BC 两相接地∞000B、C 相自导纳加大值用一段可以直接运行的 Python 代码演示 A 相接地单节点三相模型就足够说明问题import numpy as np # 单节点三相导纳阵假设三相对地自导纳为 1.0 S Yabc np.diag([1.0, 1.0, 1.0]) # A 相接地Z_A 0在导纳阵里等价于 A 相自导纳加一个很大的值 # 10**6 S 近似无穷大导纳对应阻抗 10**-6 Ω Yf np.zeros((3, 3)) Yf[0, 0] 1e6 # A 相到中性点短路 # B、C 相开路不加任何导纳 Y_total Yabc Yf # 注入电流A 相 1.0 AB、C 相 0 I np.array([1.0, 0.0, 0.0]) # 求解节点电压 U Y^{-1} * I U np.linalg.solve(Y_total, I) print(UA%.6f UB%.6f UC%.6f % (U[0], U[1], U[2]))逻辑说明复数在 Python 里用 np.complex 表示这里为了演示清晰用了实数导纳。UA 会变成接近 0 的小数值UB、UC 基本不受影响符合 A 相金属性接地的物理预期。参数说明1e6 这个数不是随便定的它要比系统正常导纳至少大 10⁴ 倍才能把故障点电压压到忽略不计也不能大到 10¹² 以上否则导纳阵条件数恶化求解精度反而下降。10⁻⁶ 同理要远小于系统正常导纳但又不至于让矩阵产生下溢。BC 相间短路和 BC 两相接地的差异就在修改位置的不同。BC 相间短路修改的是 B、C 两相之间的互导纳BC 两相接地修改的是 B、C 各自的自导纳。两者都用到 1e6但放的矩阵位置不一样物理意义也完全不同# BC 相间短路B、C 相之间加互导纳 Ybc_short np.zeros((3, 3)) Ybc_short[1, 2] Ybc_short[2, 1] 1e6 # BC 两相接地B、C 相各自对地加自导纳 Ybc_gnd np.zeros((3, 3)) Ybc_gnd[1, 1] 1e6 Ybc_gnd[2, 2] 1e64.3 多节点系统的通用修导纳写法单节点三相模型跑通之后扩展到实际系统只需要处理一个问题三相导纳阵的节点排序。常见排序方式有两种——按节点号连续排列三相1A、1B、1C、2A、2B、2C和按相分组A 相所有节点、B 相所有节点、C 相所有节点。在 PSASP 里一般都是前一种自己写代码也推荐前一种因为故障修改通常只涉及某个节点的某一相按节点连续排三相时索引计算更直观。假设系统有 N 个三相节点总导纳阵维度是 3N×3N。对第 k 个节点做 A 相接地只需要找到 (3k, 3k) 位置加上 1e6 即可。对第 k 个节点做 BC 两相接地就改 (3k1, 3k1) 和 (3k2, 3k2) 两个对角位置。支路内部故障则要额外在故障点插入新节点这就是第六章要讲的 FY 支路处理。5. 阻抗模拟避坑指南五条现场踩过的坑5.1 10⁻⁶ 和 10⁶ 用反方向结果彻底失真现象A 相接地仿真时 UA 没有压到零反而 B、C 相电压被压没了结果全错。原因代码里组装的是导纳阵但心里还想着阻抗矩阵“10⁻⁶ 代表短路”把 A 相自导纳写成了 1e-6等于把 A 相接地点开路了。解决先确认当前矩阵粒度到底是 Z 还是 Y。Z 矩阵里短路给 10⁻⁶、开路给 10⁶Y 矩阵里短路给 10⁶、开路给 10⁻⁶。我自己的习惯是在代码开头加一句注释写明“此处为导纳阵短路用大值”防止隔一个月回来看代码时翻车。5.2 Z_N 的设置被忽略两相接地和相间短路分不清现象BC 相间短路和 BC 两相接地的计算结果几乎一样或者出现明显错误的零序电流。原因相间短路时中性点悬空Z_N 必须设成 ∞两相接地时中性点直接接地Z_N 必须设成 0。如果 Z_N 在两种工况下都取同一个值故障特征就被搞混了。解决严格按照第四章的表格逐项核对。这个只能靠细心没有任何跳过的方法。我一般把四种参数Z_A、Z_B、Z_C、Z_N统一放在一个字典里每种故障类型对应一条记录运行时直接查表不手写散落的赋值。5.3 三相节点顺序不一致矩阵组装后一片混乱现象导纳阵不对称或者求逆之后出现负电阻。原因有的地方按 1A、1B、1C 排有的地方按 A1、B1、C1 排故障修改时索引错位。尤其是读 PSASP 或 BPA 数据转换过来的节点表时最容易被文件里原来的排序带偏。解决在程序最前面做一次节点索引归一化强制转成“节点号×3相序”的连续索引后续所有组装、修改、输出都走同一个索引函数。转换完成后做一次对称性断言 np.allclose(Y, Y.T)不通过直接报错。5.4 Ward 等值只消导纳不折算注入电流现象等值后边界节点电压和原系统比整体偏差 3%8%外部系统出力越大偏差越大。原因Ward 等值化简导纳阵只是等值的半边外网发电机和负荷的注入功率没有折算到边界节点等值系统等于少了外网注入。解决在做等值时同步计算 I_B I_B − Y_BE · Y_EE⁻¹ · I_E然后加到边界节点的注入电流上。如果用的是 PSASP 的等值功能记得在等值卡片里勾选“外网注入折算”再输出结果。5.5 支路内部故障直接加节点导纳阵不重新拉回路现象FY 支路内部故障计算时新增故障节点之后导纳阵出现负对角元素或者线路两侧电流对不上。原因支路内部发生故障后原来的单条支路被拆成两条串联支路故障点成为新的节点。如果只把故障点加进节点表、不把原支路导纳拆成两段导纳阵里的拓扑关系和实际情况不一致。解决按第六章的规范化流程处理——原支路导纳 y 拆成 y1 和 y2 两段分别挂在故障点两侧故障点自导纳为 y1 y2故障点到两端点的互导纳为 −y1 和 −y2。拆完之后检查该支路两端电流是否满足 KCL能满足再做求解。6. 支路内部故障的规范化处理从等值阻抗到验证技巧课件最后一部分是 FY 支路内部故障的规范化处理这是阻抗模拟最实用的延伸。所谓“支路内部故障”就是故障点不发生在母线节点上而是发生在线路某一段中间。工程里最常见的就是线路中点附近遭雷击闪络故障点既不是线路 i 端也不是 j 端而是在 i、j 之间某个位置。处理办法很固定把故障点 f 当成新节点插入系统。原支路 i-j 拆成 i-f 和 f-j 两段导纳分别记为 y1 和 y2串起来满足 y y1·y2 / (y1 y2)。在导纳阵里做如下修改Y_ii y1Y_jj y2Y_if Y_fi −y1Y_jf Y_fj −y2 Y_ff y1 y2再加上故障本身的接地或相间接地导纳如果原支路带线路充电电容用的是 π 模型那么拆开后两段线路的电容也要按距离比例重新分配不能一股脑都挂在 i 端。这个细节最容易在画等值电路时省略但结果往往差在无功分布上。最后一章想分享一个我固定执行的验证顺序比任何理论推导都实在。改完 FY 支路代码后我从来不直接跑不对称故障而是按三步走第一步把所有故障阻抗全部设成开路跑一次正常三相潮流看结果是否和原始系统一致——这一步能抓出导纳阵组装错误第二步做 A 相金属性接地和对标软件的结果对比重点看 UA、UB、UC 三相电压和故障分量电流第三步再跑 BC 两相接地确认零序网络没有被错误地并联进去。三步全过代码才算达到可用状态。从那以后我每次改故障计算模块都会强制把这三步走一遍哪怕只是改了一个索引函数。这套流程替我挡下了至少五次在边界条件下才暴露的错误比事后对着错误结果排查省太多时间。这份课件的核心价值就在于把 Ward 等值、阻抗配置、数值近似和支路内部故障四条线串成一个完整闭环希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Zephyr BSP: 27-Binding定义硬件 2026/9/29 3:50:36

Zephyr BSP: 27-Binding定义硬件

摘要:本文是 Zephyr BSP 开发系列的第 27 篇,深入讲解 Devicetree Binding 的核心概念。Binding 是硬件在 Zephyr 中的"数据结构定义",它规定了 compatible 对应的硬件节点允许哪些属性、每个属性的类型与是否必填。文章从 Binding 与 DTS 的"类型与对象&quo…

阅读更多 →
PLC到Web SCADA:智能网关+MQTT+Node.js实现工业数据实时监控 2026/9/29 3:50:36

PLC到Web SCADA:智能网关+MQTT+Node.js实现工业数据实时监控

1. 传统 SCADA 的痛点,以及为什么选择 Web 化这条路先聊点实际的。我在自动化行业里摸爬滚打了不少年,最早接触的 SCADA 都是组态软件那一套:WinCC、InTouch、组态王,装上以后要买授权,要配 OPC 服务器,客户…

阅读更多 →
用 ELI5 拆解知名开源代码库:TaoToken 配置骨架与验证动作 2026/9/29 3:50:36

用 ELI5 拆解知名开源代码库:TaoToken 配置骨架与验证动作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Zephyr BSP: 26-Devicetree 描述 Company SoC 2026/9/29 3:50:36

Zephyr BSP: 26-Devicetree 描述 Company SoC

摘要:本文讲解 Zephyr Devicetree 的核心概念与实战用法。你将理解 Devicetree 如何描述 SoC 硬件、.dtsi 与 .dts 的分工、compatible 如何连接驱动、reg/interrupts/clocks 等关键属性,以及 Devicetree 如何最终生成 C 宏进入驱动代码。文章从最小 Company SoC 示例出发,串…

阅读更多 →
Oracle 优化器参数调优实战:OPTIMIZER_INDEX_COST_ADJ 与 OPTIMIZER_INDEX_CACHING 配置指南(附 TaoToken 统一 Key 接入) 2026/9/29 3:50:23

Oracle 优化器参数调优实战:OPTIMIZER_INDEX_COST_ADJ 与 OPTIMIZER_INDEX_CACHING 配置指南(附 TaoToken 统一 Key 接入)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
我的搬砖工具由 VS Code 变成 Cursor 了:用 TaoToken 统一 Key 打通 settings.json 配置 2026/9/29 3:50:23

我的搬砖工具由 VS Code 变成 Cursor 了:用 TaoToken 统一 Key 打通 settings.json 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉