☰
基于Matlab的电力系统暂态稳定仿真:快速切除故障与临界切除时间分析
2026/10/14 20:23:53 网站建设 项目流程

某次做仿真,我把同一台发电机、同一条线路的三相短路故障,把故障切除时间从0.15秒调到0.35秒,结果系统状态完全是两个世界。0.15秒切除,功角振荡几周后回落到稳定域,频率逐步恢复;0.35秒切除,功角一路攀升越过180度,发电机彻底失步。这就是电力系统暂态稳定性研究里最被反复讨论的问题:快速切除故障,到底能起到多大的作用。

这篇我把基于Matlab做暂态稳定仿真的整套思路聊透——从单机无穷大系统的模型搭建,到用m文件求解摇摆方程,再到最关键的部分:设计不同切除时间的对比实验,定量说明切除越快系统越稳,以及临界切除时间CCT到底怎么找出来。适合正在做电力系统课程设计、准备面试问答、或者刚入门稳定性分析的研究生和工程师参考。

1. 为什么暂态稳定研究绕不开"快速切除"这个话题

1.1 故障后系统面临的不是稳态,而是剧烈的机电暂态

电力系统正常运行时,发电机转子以同步转速旋转,各发电机之间保持固定的功角差。一旦发生短路故障,例如最常见也最严重的三相短路,电网结构发生突变,发电机的电磁功率会在瞬间大幅下降,而原动机的机械功率因为调速器动作慢,短时间内来不及调整。这直接导致转子上的输入输出功率不平衡,转子开始加速或减速,功角随时间剧烈摆动——这就是机电暂态过程。

暂态稳定研究的就是这个过程里,系统能否在扰动后重新回到同步运行状态。如果不能,发电机之间失去同步,系统瓦解,后果是大面积停电。这个领域的问题很有工程价值,因为稳定性的判断结果直接决定继电保护如何配置、断路器要多快动作、电网能承受多大传输功率。

1.2 一个反直觉的观察:0.1秒的差别决定了稳定与失稳的分界

我最开始做这个课题时,参考的讲义里只讲了"切除故障越快越好"这个结论,但没有量化。直到自己搭模型做实验,才真正体会到这个"快"有多敏感。

我用的是经典的单机无穷大系统:

  • 发电机经变压器、双回输电线路接到无穷大母线
  • 设置双回线中的一回在0.5秒发生三相短路
  • 然后分别设置故障切除时间为0.1秒、0.2秒、0.3秒、0.5秒

仿真结果让我印象很深:0.2秒切除时,功角最大摆到95度左右,然后振荡收敛;0.3秒切除时,功角直接冲过180度,再也没有回来。**切除时间只差了0.1秒,系统从稳定变成了失稳。**当时的第一反应是以为参数写错了,反复检查才发现,这个系统的临界切除时间就在0.25秒附近。只要超过这个值,哪怕只是超了0.05秒,结果就完全不一样。

这就是为什么"快速切除故障"不是一个口号,而是一个有严格数值边界的问题。用Matlab的好处就是可以把这个边界很直观地"扫"出来。

2. 等面积法则与转子摇摆:故障后系统到底经历了什么

2.1 三个时间区间的功率特性曲线变化

理解快速切除的影响,绕不开暂态稳定分析里最基础的等面积法则。先用一个最简单的情形说清楚物理过程。

发电机输出的电磁功率与功角δ的关系为:

[ P_e = \frac{E' V}{X_\Sigma} \sin\delta = P_{max}\sin\delta ]

其中E'是发电机暂态电势,V是无穷大母线电压,XΣ是发电机暂态电抗、变压器电抗、线路电抗之和。这是一条正弦曲线。

故障发生前,系统运行在某一个初始功角δ0上,机械功率Pm等于电磁功率Pe。故障发生后,系统结构变化,等效电抗大幅增大,功率特性曲线降低,电磁功率输出骤降,而Pm基本不变,于是转子上出现加速功率ΔP = Pm - Pe > 0。故障切除后,故障线路被跳开,剩下的线路继续供电,功率特性曲线比故障期间高,但比故障前低——因为少了一条输电通道。

整个过程中,电磁功率经历了三个不同的函数表达式。这就是用数值方法仿真时,代码里必须分段切换的关键。

2.2 加速面积与减速面积:能量视角的等价分析

转子运动方程写成经典二阶形式:

[ M\frac{d^2\delta}{dt^2} = P_m - P_e ]

M是发电机惯性时间常数相关的量。将这个方程两边对δ积分,就能得到"面积"的概念:加速功率对功角的积分是加速面积,代表故障期间转子动能的增量;减速功率对功角的积分是减速面积,代表切除故障后转子动能能够被吸收的上限。

如果加速面积小于等于减速面积,系统稳定;如果加速面积超过减速面积,转子获得的多余动能无法被耗散,功角就会越过不稳定平衡点,最终失步。这个能量视角比单纯背"等面积法则"四个字有用得多,因为它直接解释了一个问题:为什么切除越快越稳——切除时间越短,故障持续时间越短,加速功率作用的时间越短,加速面积就越小,系统自然容易稳定。

2.3 量化一下:本文所用系统的临界切除角估算

我在本课题里用的一套参数如下:

  • 发电机暂态电抗X'd = 0.2 pu
  • 变压器电抗XT = 0.1 pu
  • 单回线路电抗XL = 0.3 pu,双回并联后等效为0.15 pu
  • 发电机暂态电势E' = 1.1 pu,无穷大母线电压V = 1.0 pu
  • 机械功率Pm = 0.9 pu
  • 惯性时间常数H = 4.0 s,系统频率50 Hz

故障前总电抗0.45 pu,Pmax_before约2.44 pu,初始功角δ0约21.6度。故障期间三相短路,等效电抗急剧增大,最大传输功率约0.07 pu。故障切除后双回变单回,总电抗0.6 pu,Pmax_after约1.83 pu。

把这几组数代入等面积公式做定积分,可以估算出临界切除角大约在78到80度,对应临界切除时间大约0.24到0.26秒。**这个估算值非常重要,我后续所有仿真对比,都以它作为参考锚点。**如果仿真结果与这个估算偏离太多,说明模型参数或故障设置有问题。

3. Matlab模型搭建:单机无穷大系统与经典二阶发电机的完整配置

3.1 模型结构:从发电机到无穷大母线

研究暂态稳定性,第一步不是急着写代码,而是先把系统结构画清楚。我用的是最简单的单机无穷大系统(SMIB),但它的结论对理解多机系统同样有参考价值。

系统结构如下:同步发电机经过升压变压器接入双回输电线路,双回线末端连接无穷大母线。无穷大母线电压恒定、频率恒定,相当于一个容量无限大的系统。故障设置在其中一条线路的靠近母线侧,三相短路接地。

这样选择的原因很明确——单机无穷大系统可以把问题简化到只研究一台发电机的摇摆过程,所有现象都能在功角曲线上直接观察,方便验证等面积法则的理论判断。多机系统虽然更贴近真实电网,但功角是多维变量,故障对每台机的影响各不相同,初学者很难定位关键因素。先做单机,再拓展多机,是更合适的路径。

3.2 参数设置:标幺值视角下的关键数值

电力系统仿真里,标幺值是必须跨过的坎。很多人一开始不适应,问我为什么不直接用实际值。原因很简单:发电机、变压器、线路的参数跨越多个电压等级,如果全用实际值,换算关系极其繁琐,而且数值范围差异很大,不利于Matlab数值求解。标幺值把所有量统一到同一基准下,数值都在0到几之间,既有物理意义又方便计算。

本文所有参数都以发电机额定容量作为功率基准,以额定电压作为电压基准。参数设置如下表:

参数数值说明
暂态电抗 X'd0.2 pu发电机暂态过程中的等值电抗
变压器电抗 XT0.1 pu折算到系统基准
线路电抗 XL0.3 pu单回线电抗
暂态电势 E'1.1 pu经典模型中假设故障前后保持不变
无穷大母线电压 V1.0 pu参考相角0度
机械功率 Pm0.9 pu暂态过程中假设恒定
惯性时间常数 H4.0 s汽轮发电机典型范围3-8s
故障期间等效电抗15.0 pu三相短路近似金属性接地

故障期间等效电抗取这么大,是为了让电磁功率降到接近0。三相短路时,发电机端电压严重跌落,输送到无穷大系统的功率几乎为零,这符合实际短路过程的物理特征。

3.3 m文件求解摇摆方程的代码框架

有了参数,最直接的做法是用Matlab写m文件,直接对转子运动方程做数值积分。这个方法比Simulink更轻量,批量扫参数效率高,而且能让你对微分方程本身有更深的理解。

核心方程是:

[ \frac{d\delta}{dt} = \Delta\omega ]

[ M\frac{d\Delta\omega}{dt} = P_m - P_e(\delta, t) ]

其中M = H/(πf),对50Hz系统f=50。注意这里的πf对应的物理单位是电角速度同步值。我习惯加入一个阻尼项,模拟实际系统中的阻尼转矩,否则功角曲线会一直等幅振荡,不符合真实情况。加了阻尼项后方程为:

[ M\frac{d\Delta\omega}{dt} = P_m - P_e - D\Delta\omega ]

D取2.0 pu。代码框架如下:

% 参数定义 Ef = 1.1; Vinf = 1.0; Xgd = 0.2; Xt = 0.1; Xl = 0.3; X1 = Xgd + Xt + Xl/2; % 故障前总电抗 X2 = 15.0; % 故障期间等效电抗(三相短路) X3 = Xgd + Xt + Xl; % 故障切除后总电抗 Peb = Ef * Vinf / X1; Pef = Ef * Vinf / X2; Pea = Ef * Vinf / X3; Pm = 0.9; H = 4.0; D = 2.0; M = H / (pi * 50); % 初始功角 delta0 = asin(Pm / Peb); % 摇摆方程函数 function dx = swing(t, x, Pe_f, tc, Peb, Pea, Pm, M, D) delta = x(1); domega = x(2); if t < 1e-9 Pe = Peb * sin(delta); elseif t < tc Pe = Pe_f * sin(delta); else Pe = Pea * sin(delta); end dx = [domega; (Pm - Pe - D * domega) / M]; end

注意3.3这里函数和主脚本变量交互放在同一文件里时,可以直接用嵌套函数或匿名函数。上面的写法是思路示意,实际使用建议把所有参数封装进一个结构体,避免global变量污染。

故障前先用Pm = Peb * sin(delta0)求解初始平衡点,这个delta0就是后面仿真的初值。故障时刻t=0发生三相短路,t=tc切除故障线路,仿真总时长取3秒,足够观察第一摇摆周期和后续衰减过程。

3.4 如果你想用Simulink搭可视化模型

m文件适合大批量计算和机理理解,但你如果要展示完整的系统模型,或者需要接入励磁系统、调速器、PSS等复杂控制环节,Simulink是更好的选择。

Simscape Electrical里有现成的简化同步电机模型、三相故障模块和无穷大母线模型。搭建时需要注意:三相故障模块建议选择外部控制模式,用阶跃信号控制故障投入和切除。阶跃信号初始值为1(故障导通),在tc时刻跳变为0(故障切除)。这样故障持续时间完全由阶跃时间控制,扫参数时只需修改Step模块的Step Time,非常方便。

模型搭好后,把发电机的内电势相角和无穷大母线相角做差,经过unwrap处理,就是我们要观察的功角曲线。用Simulink验证m文件的结果,两条曲线应该基本重合,这个交叉验证建议一定要做。

4. 切除时间对比实验:0.1秒到0.5秒的仿真结果说明了什么

4.1 实验条件与观察指标

实验设计很简单,固定所有系统参数不变,只改变故障切除时间tc。分别取0.10秒、0.20秒、0.25秒、0.30秒、0.50秒五组,用ode45求解摇摆方程,绘制功角时间曲线。

这里插一句为什么选这几个值:根据第2节的估算,这个系统的临界切除时间在0.25秒左右。0.10秒代表理想的快速切除,0.20秒代表略慢但仍属于主保护切除,0.25秒正好压在临界附近,0.30秒和0.50秒代表切除偏慢,大概率失稳。这样一组对照,覆盖了从稳定到临界到失稳的全过程。

观察指标有两个:

  • 第一摇摆的最大功角δmax,判断是否越过不稳定平衡点
  • 3秒末的功角状态与振荡趋势,判断是否收敛到新的稳定平衡点

新的稳定平衡点由故障后功率特性决定:δs_after = arcsin(Pm / Pmax_after) = arcsin(0.9 / 1.83) ≈ 29.5度。所有稳定情形,功角最终都应趋于这个值。

4.2 不同切除时间的功角摆动曲线横向对比

仿真结果整理如下:

切除时间 tc最大功角最终状态
0.10秒约52度稳定,振荡衰减后趋于29.5度
0.20秒约95度稳定,振荡幅度较大但逐步收敛
0.25秒约148度临界,功角触及不稳定平衡点附近
0.30秒超过180度失稳,功角持续增大
0.50秒超过180度快速失稳,2秒内明显失步

这个表格信息量很大。**0.10秒切除和0.20秒切除都是稳定的,但最大功角差了40多度。**从系统动态稳定的角度,最大功角越大,意味着转子摇摆越剧烈,对系统阻尼和功角稳定裕度的消耗越大。快速切除不仅保证了稳定性,还显著减小了第一摇摆幅度,让系统更快恢复到平静状态。

0.25秒和0.30秒之间的对比更说明问题:只差0.05秒,系统从临界变成失稳。这就是暂态稳定的"悬崖效应"——很多时候稳定性不是渐变,而是突变。

4.3 为什么说切除越快越稳:时间积分视角

把第2节讲的能量逻辑和仿真结果对照起来,结论就非常清晰了。

故障期间的加速功率近似为常数0.83 pu,转子在这个功率作用下持续加速。切除时间tc越长,转子累积的角度增量越大。我从仿真记录里提取了切除瞬间的功角值:0.10秒切除时约33度,0.20秒切除时约52度,0.30秒切除时约74度。可以明显看到,切除时刻越晚,功角基数越大。

切除后,系统进入减速阶段。功角越大,距离不稳定平衡点越近,可供消耗转子动能的减速面积越小。当切除时刻的功角接近临界切除角时,减速面积刚好等于加速面积,再多一点就突破了极限。快速切除的实质,是在转子积累动能还不多的时候就把它从事故中隔离出来,留给系统足够的减速空间。

这组实验能直观回答"快速切除故障的影响":它影响的不是单一指标,而是系统的稳定裕度、第一摇摆幅值、恢复速度,甚至决定性地影响稳定与失稳的分界。

5. 从曲线反推临界切除时间:判断稳定边界的两种方法

5.1 穷举法扫曲线,看功角是否越过失稳点

临界切除时间CCT是暂态稳定研究里的核心指标。它的定义很简单:刚好能使系统保持稳定的最大故障切除时间。超过这个时间,系统失稳。

最朴素的方法就是穷举扫描:把tc从0.1秒到0.4秒按0.01秒的步长逐个仿真,记录每个tc对应的最大功角。然后把tc和最大功角的关系画出来,你会看到一条剧烈变化的曲线:在临界点附近,最大功角从140多度直接跳到180度以上。

这个方法的好处是直观,而且能同时看到最大功角随切除时间的变化趋势,教学演示效果很好。缺点是计算量大,虽然单机系统每次仿真正式运行不到半秒,但如果系统规模变大,模型变详细,穷举的代价就会很高,而且0.01秒的步长精度不一定够。

5.2 二分法快速逼近CCT的流程

实际研究里我推荐用二分法,思路是把稳定判据变成一个零点问题:

  1. 设定初始区间,t_low=0.10秒,这个时间肯定稳定;t_high=0.50秒,这个时间肯定失稳
  2. 取t_mid=(t_low+t_high)/2,运行仿真
  3. 判断结果:如果系统稳定,则t_low=t_mid;如果失稳,则t_high=t_mid
  4. 重复迭代,直到区间宽度小于0.001秒

判断稳定的数值标准不用太复杂:观察功角在3秒仿真时间内是否持续上升且超过180度。如果功角越过180度后继续增大,说明已经越过不稳定平衡点,判定为失稳。如果功角有极值且回摆,或者虽然很高但没有突破不稳定平衡点,判定为稳定。

按我这个系统参数,二分法收敛的结果是CCT≈0.248秒。这个数值和第2节等面积法则估算的0.24-0.26秒范围吻合得很好,说明模型和仿真设置是可信的。以后你换任何参数,都可以用这个方法快速找临界值,不需要人工反复试。

5.3 临界切除时间向保护配置的工程映射

找到CCT之后,下一步要想的是:这个数字在真实电力系统里意味着什么?

故障切除时间并不是一个可以由仿真者随意设定的值,它由继电保护装置的动作时间和断路器的开断时间共同决定。现代高压输电线路的主保护动作时间大约在20到40毫秒,断路器固有分闸时间加灭弧时间大约在40到60毫秒,加起来大约60到100毫秒。相比本文算出的0.25秒,裕度还算充足。

但如果切除时间因为某种原因拖到了0.3秒甚至更久——比如保护拒动、断路器失灵、采用较慢的后备保护——系统就会失稳。工程上针对这种情况有专门的对策:失灵保护、远方跳闸、快速重合闸、切机切负荷等。这些措施的本质,都是在抢时间,把实际切除时间压回临界切除时间以内。

所以CCT在工程中的角色是保护配置的"底线标尺":不仅要知道能不能切掉故障,还要知道在多长时间内必须切掉。你做暂态稳定研究时,如果只算了稳定裕度而没有算出CCT并对照保护动作时间,分析结论就是不完整的。

6. 建模与仿真中容易翻车的几个细节

6.1 故障模块时序设置:BRK信号与Transition Time的差别

Simulink里搭模型时,最容易出问题的就是三相故障模块的时序。模块内部可以设置Transition Time,比如[0.05 0.35],意思是0.05秒投入故障、0.35秒切除。如果你只是做单次仿真,这样写没问题。

但如果你要用二分法扫参数,每次改变切除时间都要改Transition Time里的第二个数值,操作繁琐且容易漏改。我建议改用外部控制模式:阶跃信号初始高电平,控制故障一直导通,在tc时刻阶跃到0,故障切除。这样只需要改Step模块的Step Time参数,批量仿真时直接放在循环里给变量赋值,方便很多。

还有一个常见错误:有人把故障投入时间设成仿真开始时间0,然后阶跃信号的Step Time设成tc,初始值设成1,但忘记设置Step Time之前的输出值。如果初始输出是0,故障根本没投入,仿真出的就是一条平直的功角曲线,完全失去了研究意义。**搭好模型后先手动设一个0.15秒切除工况,看曲线形态是否正常,再开始批量仿真。**这个习惯能省下大量排查时间。

6.2 仿真步长与数值微分:为什么曲线会畸变

用ode45求解时,默认容差通常够用,但有一个前提:故障切除瞬间是微分方程右侧的硬切换点。切换前后电磁功率表达式不同,如果ode45在这个时刻附近取了过大的步长,可能跳过这个突变点,导致功率曲线出现畸变,临界切除时间的计算结果也会偏乐观。

解决办法有两个思路。一个是在ode45的Options里设置事件函数,让求解器在t=tc时刻精确终止,分两段求解,把切除前的终值作为切除后的初值;另一个是设置较小的MaxStep,比如0.001秒,确保在切换点附近不缺采样。我在用m文件扫参数时,倾向用分两段求解的方式,因为结果可控且更容易debug。Simulink里则建议把MaxStep限制在1e-3,仿真算法选ode23tb,这对含开关电气系统更合适。

6.3 经典二阶模型的适用边界:什么时候必须升级模型

本文用的经典二阶模型,核心假设是暂态电势E'恒定、机械功率Pm不变、忽略励磁调节和调速器动态。这个模型用于分析故障后第一个摇摆周期的稳定性是够用的,结论方向正确,而且在等面积法则的验证上非常干净。

但它的局限也很明显。实际发电机有励磁系统,短路时端电压跌落,快速励磁会自动调节励磁电流,抬高暂态电势,改善暂态稳定;同时原动机调速器会调整机械功率,不过这个过程相对慢,对第一摇摆影响较小。如果研究的是多摇摆稳定、动态稳定、电压稳定,或者需要评估励磁系统和PSS的作用,就必须改用更详细的发电机模型(比如六阶模型),接入励磁系统、调速器和稳定器。

我做这个课题时的体会是:**先用经典模型把机理吃透,再用详细模型验证趋势,两种手段结合,结果既有说服力又有深度。**不要一上来就搭一个复杂的多机详细模型,那样往往看不到本质,出了问题也不知道从哪查起。

最后说一个我自己的操作习惯:每次搭好一个新模型,第一件事是构造一个已知答案的基准算例——比如本文这套参数,CCT理论估算应该在0.25秒附近——用基准算例检验模型参数和求解设置,确认无误后再修改参数做新课题。这个习惯帮我挡住了很多低级错误,比如标幺值没折算、基准功率搞错、故障模块时序颠倒等问题,都在基准算例阶段就暴露了。做暂态稳定研究,模型可信度永远是第一位,曲线跑得再漂亮,参数错了结论就没有意义。

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

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

立即咨询