ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Matlab/Simulink距离保护仿真:三段式继电保护完整建模与整定

Matlab/Simulink距离保护仿真:三段式继电保护完整建模与整定 1. 项目概述与适用场景在电力系统继电保护这个方向上距离保护一直是理论教学和工程应用的重点。我最早接触这个概念是在继保课程上当时教材里满满一页的阻抗圆、偏移特性、方向阻抗继电器说实话光看公式很难建立起直观感受。直到自己上手用 Matlab/Simulink 搭了一套单侧电源三段式距离保护控制系统把故障前、故障中、保护动作后的电压电流波形全部拉出来看了一遍才真正理解什么叫“测量阻抗反映故障距离”、什么叫“三段配合实现选择性”。这个项目简单说就是用 Simulink 搭建一个完整的电力系统仿真模型在单侧电源辐射形线路上设置不同类型的短路故障然后通过距离保护判据去识别故障、计算故障距离并根据三段式逻辑发出跳闸信号最终实现对线路的选择性保护。它解决的痛点很实际第一真实电力系统不可能拿来随便做短路试验仿真成了验证保护原理最安全、成本最低的途径第二单纯靠手算整定值只能验证静态结果没法观察保护装置在不同故障条件下的动态响应第三后续可能扩展的自动重合闸、自适应保护等场景都需要一个能反复修改参数的仿真平台作为底座。这套东西适合谁来参考如果你是电气工程及其自动化专业的本科生正在做继电保护课设或者毕业设计这个仿真能直接帮你把理论课上的阻抗继电器动作特性变成看得到、能调的波形如果你是研究生想在这个框架上做自适应距离保护、故障测距算法优化这套基础模型也能提供完整的信号采集、故障检测、逻辑判断框架。哪怕你是在电力行业从事继保调试的工程师想快速验证某个整定方案下的保护动作时序用这个模型做桌面级验证也比天天泡实验室效率高得多。1.1 系统整体架构整个仿真模型在逻辑上分为三层。最底层是电力系统一次部分包括电源、线路、负载和故障发生模块中间层是测量与保护装置负责把一次侧的电压电流信号降幅、计算、特征提取最上层是控制与动作逻辑实现三段式保护的整定比较和跳闸输出。用 Matlab/Simulink 搭建这套系统有个天然优势——Simscape Electrical 或者说 SimPowerSystems 工具箱里已经把同步发电机、分布参数线路、三相断路器这些专业元件都做成了现成模块不需要自己推导微分方程。你只需要关心怎么连线路参数、怎么配保护定值、怎么处理采样信号这跟我们实际做整定计算和装置配置时关心的事情是一致的。1.2 设计目标与考核指标我们把设计目标拆解成三条可量化的指标第一在线路不同位置发生三相短路、两相短路、单相接地短路时保护装置都能正确识别故障并跳闸第二故障点距离越远保护动作的时间应当越慢符合三段式配合的阶梯时限特性第三在区外故障或者正常负荷运行时保护装置不误动。这三个指标对应到控制系统的专业术语里就是最基本的选择性、速动性和可靠性要求。2. 单侧电源距离保护的原理与核心逻辑在做仿真之前我建议先把距离保护的基本逻辑彻底搞清楚不然你连参数都不知道往哪儿填。距离保护的核心思想是通过测量保护安装处的电压和电流计算出从保护安装处到故障点的阻抗再把这个阻抗和预先设定的整定阻抗比较。如果测量阻抗小于整定阻抗就判断为区内故障启动跳闸逻辑。2.1 为什么单侧电源系统适合做距离保护单侧电源辐射形线路是距离保护最经典的应用场景。因为电源在一侧短路电流的方向在故障时是不变的功率方向继电器可以直接用或者简化处理不需要考虑双侧电源带来的方向性问题。这意味着整套保护逻辑可以聚焦在阻抗测量和三段配合上不会被方向判据的复杂性干扰非常适合作为教学和验证性仿真的起点。我在实际搭模型时发现很多同学一上来就纠结要不要加方向元件其实单侧电源模型里根本不需要。后续如果要扩展到双侧电源系统只需要在启动判据上加一个方向圆或者功率方向判断核心的阻抗测量和三段配合逻辑是完全复用的。这也是我推荐先从单侧电源模型入手的原因先把核心逻辑跑通再逐步加复杂度。2.2 三段式保护的动作逻辑与时限配合距离保护的三段式本质上是通过不同的阻抗整定值和不同的动作时间来实现线路的分段保护。距离 I 段是瞬时动作段按线路全长的 80% 到 85% 来整定。注意这里不能整定到全长的 100%因为要避开对侧母线出线的故障确保选择性。I 段没有人为延时动作出口直接跳闸是速动性的保证。距离 II 段按被保护线路全长的 120% 到 150% 整定或者按与相邻线路 I 段配合来整定时间上通常设置一个 0.3 到 0.5 秒的延时。II 段主要覆盖线路后三分之一的范围当 I 段不能覆盖远端故障时II 段在延时后动作同时还能作为相邻元件部分区域的远后备。距离 III 段按躲过最小负荷阻抗来整定动作时间一般在 1.2 到 1.5 秒甚至更长。它的主要任务不是保护本线路的故障而是作为本线路和相邻线路的远后备保护同时还要保证在系统振荡、负荷波动等情况下不误动。把这三段放在一起看就是一个递进式的保护体系离故障点越近的保护动作越快离故障点越远的保护动作越慢通过时间阶梯配合消除了保护范围重叠区的盲区同时实现了主保护和后备保护的分工。2.3 阻抗继电器的动作特性选型阻抗继电器的动作特性决定了保护装置在阻抗复平面上的动作边界。仿真里最常用的有三种圆特性、四边形特性和方向圆特性。圆特性实现简单用 Simulink 里的数学运算模块就能搭出来动作判据是幅值比较或者相位比较。方向圆特性在圆特性的基础上加入了方向约束只有阻抗落在一、二象限时才动作天然适用于单侧电源系统。我推荐在仿真中用方向圆特性既保留了圆特性的简洁性又不会出现反向故障误动的问题。幅值比较法的核心公式是将测量阻抗与整定阻抗的中点和半径进行比较判断测量阻抗是否落在圆内。在 Simulink 里我通常用电压电流相量的实部虚部直接计算而不是先算阻抗再比较这样可以减少中间环节带来的数值误差。Zp U_meas / I_meas; % 测量阻抗 Zset Zset_I; % 当前段整定阻抗 Zm_mid Zset / 2; % 圆心中点 radius abs(Zset / 2); % 圆半径 in_zone abs(Zp - Zm_mid) radius; % 动作判据3. 整定计算与参数选择整定计算是整套距离保护仿真的灵魂。我之前看到不少同学在 Simulink 里直接把线路参数往模块里一填就算完事结果仿真出来动作逻辑乱七八糟后来发现是整定值根本没有经过计算。距离保护不像过流保护那样只要躲过最大负荷电流就行它的整定值要保证在不同故障距离下测量阻抗的差异能够被准确区分。3.1 系统参数设定我们以一个典型的 110kV 单侧电源辐射形线路为算例。系统基准容量取 100MVA系统基准电压取 115kV线路全长 80km线路单位长度正序阻抗 Z1 0.21 j0.402 Ω/km单位长度零序阻抗 Z0 0.42 j1.206 Ω/km。电源内阻抗的设定要结合实际系统容量。我习惯把系统等效为戴维南电路内阻抗取 j5 Ω 左右这样可以保证线路末端短路时短路电流大约在系统额定电流的 300% 左右比较接近实际运行工况。负载取线路末端一个 50MW j20Mvar 的集中负荷这个负荷大小在整定计算中很关键因为 III 段的整定阻抗必须躲过最小负荷阻抗而最小负荷阻抗又和负荷的功率因数直接相关。为了保证仿真时有足够的负荷电流让测量元件启动负载不能取得太大也不能太小50MW 对于 80km 的 110kV 线路来说是比较合理的。3.2 三段整定值的计算过程距离 I 段整定阻抗按被保护线路全长的 80% 计算。因为这是单侧电源线路不需要考虑助增系数和分支系数整定值比较简单Zset_I 0.8 * 80 * (0.21 j0.402) 13.44 j25.728 Ω如果换算成幅值和角度大约是 29.03 Ω角度等于线路阻抗角 62.4 度。距离 II 段要按两个条件取小值一是按线路全长的 120% 整定二是与相邻线路距离 I 段配合。我们这里重点考虑第一种情况即本线路末端故障时II 段能可靠动作Zset_II 1.2 * 80 * (0.21 j0.402) 20.16 j38.592 Ω换算成幅值约为 43.55 Ω。II 段动作时间取 0.5 秒这个延时要大于对侧线路 I 段的保护动作时间加上断路器的动作时间一般取 0.4 到 0.6 秒。距离 III 段整定是三个段里最容易出错的。它必须躲过线路最小负荷阻抗还要考虑电动机自启动和系统振荡的影响。最小负荷阻抗的计算公式是Z_load_min (0.9 * U_n)^2 / S_load_max其中 U_n 是额定电压S_load_max 是最大负荷视在功率。在实际仿真中我们按线路最大输送容量 80MVA功率因数 0.9 计算S_load_max 80 MVA Z_load_min (0.9 * 110kV)^2 / 80MVA 122.5 ΩIII 段的整定值要满足|Zset_III| Z_load_min / 1.2 ≈ 102.1 Ω同时要注意III 段阻抗圆不能超出相邻线路末端太远否则会在相邻线路出口故障时越界动作。实际取值时我习惯留出 15% 到 20% 的裕度将 III 段阻抗整定在 85 Ω 附近角度与线路阻抗角一致动作时间取 1.2 秒。3.3 时间阶梯配合验证整定计算完成后一定要把三段的时间-距离曲线画出来自己检查一遍。纵向看距离 I 段 0 秒动作覆盖线路前 80%距离 II 段 0.5 秒动作覆盖线路全长并延伸到对侧母线和相邻线路首端距离 III 段 1.2 秒动作保护范围更大。横向看同一故障点离它最近的保护段肯定比远的保护段更早动作这样才能保证选择性。如果三段时间差太小比如 II 段和 III 段只差 0.1 秒一旦时间继电器误差叠加就可能出现保护越级跳闸的事故。我在仿真中多次验证过II 段和 III 段的时间级差至少要有 0.4 到 0.5 秒才足够可靠。4. Matlab/Simulink 建模与控制系统实现这里进入实际操作环节。我用的是 Matlab R2021b 版本Simulink 和 Simscape Electrical 工具箱都是必须的。如果你的机器上没装 Simscape Electrical也可以退而求其次用数学运算模块手动搭三相电路但那样模型会非常庞大而且三相短路计算很容易出错我还是建议装上专业工具箱。4.1 系统仿真模型搭建模型搭建分为三个子系统主电路子系统、测量与阻抗计算子系统、保护逻辑与跳闸子系统。主电路子系统里放置三相电压源、线路集中参数模块、故障模块和负载。三相电压源用 Simscape 里的 Three-Phase Source 模块电压设置为 110kV/sqrt(3) 相电压有效值频率 50Hz内部连接方式选 Yg。线路选用 Three-Phase Series RLC Branch 模块参数按上一节的线路阻抗设置80km 线路分成两段来模拟不同距离的故障点前段 32km后段 48km这样可以在仿真时选择故障发生在哪一段。故障模块用 Three-Phase Fault 模块可以设置在某个时间点发生两相短路或者三相短路。我建议加一个 Step 信号控制故障电阻的变化以模拟弧光电阻对测量阻抗的影响。测量与阻抗计算子系统的核心是电压电流测量模块。电压测量用 Three-Phase V-I Measurement 模块把母线电压和线路电流引出来然后用 Complex 模块将三相瞬时值转换为相量。我这里用了一个简单的方法先通过 FFT 或 Fourier 分析模块提取基波分量然后计算正序电压和正序电流再算出正序测量阻抗。保护逻辑与跳闸子系统的逻辑是在状态机里实现的。我用了三个比较器分别判断测量阻抗是否落在 I、II、III 段的动作圆内同时各段接一个延时模块。三段中只要有一个动作输出信号通过逻辑或模块进入跳闸回路控制线路断路器断开。4.2 阻抗计算的细节处理测量阻抗的计算精度直接决定了保护能否正确动作这一块是仿真最容易出问题的地方我踩过不少坑。第一个坑不要直接用瞬时电压除以瞬时电流。故障时电压电流含有大量衰减直流分量和高次谐波直接用瞬时值计算阻抗会得到剧烈波动的结果根本无法与整定值比较。我后来采用了全周傅里叶算法对电压电流进行基波提取。在 Simulink 里可以直接用 Fourier 分析模块设置基波频率 50Hz一个周期 20ms这样输出的就是干净的正弦基波相量。第二个坑正序阻抗的计算必须用正序电压和正序电流而不是随便选一相的电压电流。虽然三相短路是对称故障正序就是相分量但仿真时一旦有任何测量误差或者三相不平衡直接用单相计算误差会放大。我推荐用 Sequence Analyzer 模块或者通过对称分量法自己搭一个矩阵变换把三相电压电流转换成序分量。第三个坑故障电阻会把测量阻抗拉大造成保护范围缩短甚至拒动。比如本线路末端发生经 10Ω 过渡电阻的接地故障测量阻抗的幅值会明显超过整定值。我在仿真里特意加了故障电阻控制模块可以设置不同阻值来观察保护动作行为的变化这对理解 III 段为什么要保留足够裕度很有帮助。4.3 三段式保护逻辑的 Simulink 实现保护逻辑部分我推荐用 Stateflow 实现它比纯 Simulink 逻辑模块清晰得多尤其是当你要描述三段之间的互锁和复位行为时。状态机里定义四个状态正常运行、I 段动作、II 段动作、III 段动作。正常运行状态下不断检测测量阻抗和整定值的关系一旦测量阻抗落在某段动作圆内就转移对应状态并启动计时。II 段和 III 段都有延时要求计时达到设定值后发出跳闸信号I 段没有延时检测到就立刻发跳闸。还有一个关键细节是跳闸后的复归逻辑。仿真中如果跳闸后故障消失比如线路断路器断开导致电流消失测量阻抗计算模块会因为电流过小而不稳定这时候必须加入电流启动判据作为保护的闭锁条件。只有当电流大于启动电流阈值时阻抗比较才有效否则保护应该返回正常运行状态。我在模型中加了一个 Start-Up Detect 模块用正序电流幅值是否超过 1.2 倍额定电流作为启动逻辑这个细节对仿真的稳定性影响很大建议认真处理。4.4 主要仿真参数速查表为了方便你直接上手我把常用关键参数整理成一张表。这些参数我都调试过在多数 110kV 系统模型下都能直接跑通当然你也可以根据自己的系统容量适当调整。参数名称参数值说明系统额定电压110kV线电压有效值系统容量100MVA基准容量线路全长80km单回辐射形线路线路单位正序阻抗0.21j0.402 Ω/km110kV 典型参数线路单位零序阻抗0.42j1.206 Ω/km接地故障计算用电源内阻抗j5 Ω系统等效内阻距离 I 段整定值13.44j25.73 Ω按线路 80%距离 II 段整定值20.16j38.59 Ω按线路 120%距离 III 段整定值85∠62.4° Ω躲最小负荷阻抗I 段动作时间0s瞬时II 段动作时间0.5s配合相邻线路III 段动作时间1.2s远后备故障启动电流阈值1.2 倍额定电流启动判据采样频率2500Hz50 倍工频仿真时长1.5s覆盖最晚动作段5. 仿真结果分析与动作逻辑验证模型搭好之后最重要的环节就是验证。你不能只看“跳闸了”就完事而要把各种故障场景逐一跑一遍检查保护的动作区间、动作时间和选择性是否符合预期。这一章节我按照实际调试的顺序来写。5.1 区内故障与区外故障识别对比我在线路 60% 处设置三相短路故障大约 48km 处故障起始时间 0.2s持续 0.3s。此时故障在线路前 80% 范围内属于距离 I 段保护区。从仿真的电压电流波形看故障瞬间母线电压骤降线路电流快速上升。通过阻抗计算模块可以观察到测量阻抗从负荷区的容性区域瞬间跳到故障区域的阻感性区域阻抗轨迹穿过距离 I 段的动作圆边界。由于采样和保护逻辑的执行需要一定时间保护大约在故障后 10ms 发出跳闸信号跳闸后断路器切除故障电流归零电压恢复。如果在相邻线路或者线路末端外侧设置三相短路故障测量阻抗会落在距离 I 段和 II 段动作圆之外但可能落在 III 段动作圆内。这时候保护不会立即跳闸而是等 III 段延时 1.2 秒后再动作这个行为验证了基于时间阶梯的选择性配合。5.2 不同故障类型下保护的动作特性三相短路时故障电流很大测量阻抗计算准确保护工作最可靠。两相短路时正序阻抗和三相短路时保持一致只要用的测量方法是正序分量整定值不需要改变保护动作特性基本一致。单相接地故障会引入零序分量如果采用序分量法计算正序阻抗动作特性依然不变但如果直接用相电压除以相电流测量阻抗就会受到零序补偿系数的影响整定值必须加入零序补偿才能正确动作。这些分析我在仿真中都验证过。如果做的是简化模型只做三相短路验证那么用正序阻抗计算方法就够了但如果要做各类故障类型的全面验证一定要考虑零序补偿的问题否则做接地故障仿真的时候你会发现保护根本没办法正确区分故障距离。故障类型I 段动作情况II 段动作情况备注线路 60% 三相短路正确动作0s 延时未动作I 段覆盖线路 90% 三相短路不动作正确动作0.5s 动作II 段覆盖线路 60% 两相短路正确动作未动作正序法适用线路 90% 单相接地简化模型可能拒动可能拒动需加零序补偿5.3 时间清单位与选择性验证为了直观验证三段式保护的时间配合我在系统里面加了多个测量点。在距离 60% 处故障时I 段计时器的输出在故障后 2ms 内变为高电平5ms 左右保护出口闭合这个时间主要是仿真步长和控制逻辑的计算延时。在距离 90% 处故障时I 段不动作II 段计时器从 0 开始计时0.5 秒后跳闸信号输出。如果此时相邻线路的 I 段保护如果有模型能在瞬时跳闸切除故障那么本线路的 II 段就会返回不会误动。在 110kV 实际网络中断路器开断时间约 0.06 到 0.08 秒II 段 0.5 秒的延时足以保证对侧保护优先动作并切除故障这就是阶梯时限配合的核心。5.4 保护动作时序的可视化仿真的优势之一就是可以把保护动作的时序拉出来看清楚。我习惯在示波器里同时显示四个信号故障发生标志、I 段跳闸信号、II 段跳闸信号、断路器状态。这样一眼就能看出时间配合是否正确。以线路 90% 处故障为例在 0.2s 故障发生在仿真里可以通过故障模块的跳变沿看到I 段信号保持低电平II 段跳闸信号在故障发生 200ms 后变为高电平断路器在 II 段跳闸信号发出后约 15ms 断开。整个时间轴非常清晰从故障发生到切除故障总共约 215ms其中大部分是 II 段固定延时实际切除时间完全满足系统对 110kV 线路后备保护速动性的要求。6. 典型故障、调试问题与避坑指南模型调试过程中最大的问题往往不是保护逻辑本身而是仿真数值计算的坑。我把实际调试中遇到的高频问题整理成一张速查表方便你直接对照排查。6.1 问题速查表故障现象可能原因解决方案保护拒动I 段不动作测量阻抗计算延迟过大检查 Fourier 分析模块的采样率减小仿真步长到 40μs 以下保护误动区外故障动作III 段整定值偏大重新计算最小负荷阻抗留有足够裕度阻抗轨迹异常波动电压电流测量中混入谐波在全周傅里叶提取前加入低通滤波器双侧电源正常负荷时动作方向圆特性处理不正确检查相角比较模块确认只有正向故障时输出动作信号跳闸后模型报错断路器断开导致电流突变加入测量阻抗的电流启动判据小于阈值时强制保护返回仿真速度极慢步长设置过小使用变步长求解器相对误差设 1e-4不会影响精度6.2 关于仿真步长的经验说到仿真步长这是我在调试过程中第一个遇到的大坑。最开始我按照一般动态仿真的习惯把步长设置为 1ms结果故障瞬间的暂态过程完全看不清楚阻抗计算出来的值在几个周期内剧烈振荡我用这个信号去做保护逻辑判断结果保护动作时间忽早忽晚根本没有规律。后来我把仿真步长改成 50μs即每个工频周期采样 400 个点故障后的暂态过程才被完整地捕捉下来。有人可能会问采样点这么多会不会太慢实测下来一个 1.5 秒的仿真在普通笔记本上跑大概需要两三分钟完全在可接受范围内。如果模型更大或者要做蒙特卡洛参数扫描可以考虑把步长放大到 100μs但精度会有轻微下降。6.3 傅里叶算法的窗口延迟问题这里特别提醒一下全周傅里叶算法要求数据窗口长度不小于 20ms这意味着保护出口的最快动作时间不可能小于一个工频周期。很多初学者仿真跑出来发现保护动作时间比理论值慢了 20ms以为逻辑写错了其实根本不是这是傅里叶算法的固有延迟。解决办法有两种。第一种是治理策略把动作时间比较基准改成“从傅里叶数据窗完成时开始计时”这样 II 段和 III 段的延时精度不会受影响。第二种是换算法改用半周傅里叶或者卡尔曼滤波算法来缩短数据窗口代价是谐波抑制能力下降。对于大部分教学性仿真全周傅里叶就够了但心里要有这 20ms 的概念别在分析结果的时候自己吓自己。6.4 教材里不会写的实操细节最后分享三个我从调试中总结出来的小细节。第一电压电流互感器变比的设置在仿真里必须算清楚。很多人在 Simulink 里直接拿 110kV 的瞬时值参与计算不经过互感器变比这在纯仿真里其实没问题但会让整个保护逻辑退化成“数学计算器”失去了控制系统仿真的意义。建议加一个比例环节模拟互感器变比比如电压互感器变比 110kV/100V电流互感器变比 600A/5A这样后续接入真实的保护逻辑模块时不需要修改任何代码。第二断路器模型不能直接用理想开关。Simscape 的断路器模块自带动作时间设置我建议把动作时间设为 20ms更接近真实断路器开断过程。如果用理想开关跳闸瞬间电流直接突变到零测量阻抗计算会报数值奇异性错误。第三别忘了加一个“保护动作状态锁存”。当 I 段动作发出跳闸信号后即使测量阻抗因为断路器断开而落到动作圆外保护也不应该返回。这个锁存逻辑在 Stateflow 里用持久变量实现非常方便。不然你会发现有些故障条件下保护会跳闸后短暂“复归”然后又重新启动这在真实保护装置里是不可接受的。7. 后续扩展方向这套单侧电源三段式距离保护建完后后续扩展的空间其实非常大。如果你的课设或者研究需要往深处走我整理了几个我实际试过、效果不错的方向你可以结合自己的时间安排来决定要不要加。第一个方向是加自动重合闸。跳闸后经过一个延时通常 0.5 到 1 秒重合闸逻辑自动检测线路是否恢复正常如果故障是瞬时性的就重合成功如果是永久性的则加速跳闸。Simulink 里做这个只需要在 Stateflow 里增加两个状态再加一个延时模块。第二个方向是改造为双侧电源系统。把负载端替换成另一个电源模块这时候方向性就变得重要了需要在阻抗计算模块里加入方向判据比如把方向圆特性改成偏移圆特性或者在判定条件中增加功率流向约束。这个改造对理解方向距离保护很有帮助。第三个方向是整定计算的自动化。把 Simulink 嵌入到一个.m脚本里通过循环扫描不同的故障点距离自动记录每个故障位置下保护的动作时间然后画出动作时间-故障距离特性曲线。我做这个扩展之后整个仿真的调参效率提高了一个量级强烈推荐你在模型调通后试试。第四个方向是做故障测距。既然我们已经能算出正序阻抗直接除以单位长度阻抗就得到故障距离的估计值。可以加上 R-L 微分方程算法或者双端测距算法对比不同测距方法的精度和抗过渡电阻能力这个内容写进毕设里会是非常亮眼的创新点。
返回列表