Simulink单机无穷大系统暂态稳定仿真:从建模到临界切除时间扫描
2026/9/8 8:18:23 网站建设 项目流程

做电力系统方向的研究生,或者电气工程高年级的本科生,大概率都绕不开这样一个任务:在Simulink里搭一个单机无穷大电力系统(Single Machine Infinite Bus,简称SMIB),仿真输电线路发生短路故障时系统的暂态稳定过程。这个题目看起来结构简单,不就一台发电机加一条线路嘛,但真做起来,发电机组参数怎么设、短路故障模块怎么配、功角曲线怎么从输出里算出来、临界切除时间怎么扫——细节非常多。当年我为了把这套仿真跑通并且让波形干净,反复改参数磨了将近一周,所以今天把整个思路和实操过程完整复盘一遍,希望能帮还没入门的同学少踩点坑。

这套仿真能解决什么问题?一句话:在时域里直观看到电力系统遭遇大扰动(最常见的就是短路故障)后,发电机转子会不会失去同步。工程上判断系统是否暂态稳定,归根到底看的是发电机功角δ随时间的变化:故障切除后功角经过振荡能回到一个稳态值,那系统就是稳定的;如果功角一直增大甚至越过失稳临界点,那转子就会失去同步,系统崩溃。Simulink仿真把整个过程用曲线画出来,机理一目了然,这也是为什么几乎所有电力系统分析课程和科研入门都拿这个例子开刀。

适合谁来参考?正在做课程设计、毕业设计,或者刚开始接触电力系统暂态仿真、想把理论课里的等面积法则落到仿真里的同学,这篇内容基本可以当一份操作手册用。下面我就按原理、建模、结果分析、排错这几个层面完整展开。

1. 单机无穷大系统与暂态稳定:先搞明白你在仿什么

1.1 什么是单机无穷大电力系统

单机无穷大系统,字面上就是一台同步发电机通过升压变压器和输电线路,连接到一个容量无限大的母线上。所谓“无穷大母线”,可以理解为外部电网容量相对于这台发电机来说是无穷大的,它的电压幅值和频率在扰动过程中始终不变,相当于一个理想的电压源。这样做的好处是能把研究焦点完全集中在这台发电机的行为上——系统大了以后,多台发电机之间的相互振荡、机组间的功角摆动会引入非常多复杂因素,牵一发动全身,反而不利于抓住暂态稳定的本质。

实际工程系统当然不会真的是“无穷大”,但这个假设在研究“第一摆暂态稳定”时非常实用。你可以把它理解为做力学实验时把地面当成绝对光滑、把空气阻力忽略掉一样,先抓主要矛盾。很多实际工程中的稳定分析,也会先把外部等值成一个无穷大母线或者戴维南等值阻抗来粗略评估一台机组的稳定裕度,只是精度要求高了以后再细化多机模型。所以在Simulink里复现这个经典模型,不光是教学需要,在工程上也有实际对应。

1.2 暂态稳定的物理过程和核心指标

暂态稳定研究的扰动,是比负荷波动更剧烈的大扰动,最常见的就是短路故障。正常运行时,发电机输入的机械功率Pm和输出的电磁功率Pe平衡,转子以同步转速旋转。短路故障发生的瞬间,由于系统阻抗剧变,发电机输出的电磁功率会断崖式下跌——如果是机端三相金属性短路,电磁功率甚至直接跌到接近零。但原动机那边的机械功率短时间内基本不变,于是功率就失衡了:输入大于输出,多余的功率用来加速转子,发电机转速上升,功角δ开始增大。

故障切除后,线路恢复,电磁功率曲线恢复,但如果功角已经冲得太远,减速面积小于故障期间的加速面积,那系统这一摆就撑不住,导致失步。这个过程对应电力系统分析教科书里的“等面积法则”:判断暂态稳定就看加速面积和最大可能的减速面积谁大谁小。临界切除时间(CCT)是整个暂态稳定分析最核心的指标,它指的是刚好能保持系统稳定的最大故障持续时间。超过这个时间再切除故障,系统就会失稳。CCT求出来以后,继电保护的动作时间整定就有了依据——保护动作速度必须小于临界切除时间,还要留出安全裕度。

2. Simulink建模全过程:从元件拖拽到参数设置

2.1 模型整体架构与模块选型

在Simulink里搭这个模型,核心思路就是按照一次系统接线图一步一步来:发电机→升压变压器→双回输电线路→无穷大母线,然后在某条线路的首端或者中点设置短路故障点。用到的工具箱是Simscape Electrical,老版本里叫SimPowerSystems,在Simulink库浏览器里找Simscape > Electrical > Specialized Power Systems就能看到全套电力元件。

发电机模块的选择有讲究。系统要求不高时,我建议直接用Simplified Synchronous Machine(简化同步电机模块),它忽略励磁绕组和阻尼绕组的详细动态,只用暂态电抗Xd'后面的暂态电势E'来等效,这对短路故障暂态过程来说精度已经足够,而且参数少,容易调。如果你想做得更细,可以用Synchronous Machine pu Standard这种标准模型,带上励磁系统(Exciter)和调速器(Governor),但这种模型参数多了一大堆,而且励磁系统本身会影响暂态过程,新手很容易在励磁参数上翻车。我做课程级别的SMIB仿真,果断用简化模型,把精力放在故障和稳定分析本身。

其他关键元件:

  • 变压器:用Three-Phase Transformer (Two Windings),设置好额定容量、变比、漏抗百分比。
  • 输电线路:双回线路可以用两个Three-Phase PI Section Line模块并联,或者用分布参数线路模型。PI型集中参数在几十公里级别的线路上精度足够,参数容易直观设置。
  • 无穷大母线:这里有两种处理方式。一种是用Three-Phase Source直接搭一个电压源,设置成理想电压源,容量设得很大(比如10000MVA),接一个理想的无穷大变压器;另一种是直接用一个容量极大、内阻极小的三相受控电压源等效。我实测用Three-Phase Source加大容量设置最简单,波形也很干净。
  • 故障模块:用Three-Phase Fault,它可以设置单相接地、两相短路、两相接地、三相短路等所有短路类型,还支持按时间序列控制故障发生和切除。这是整个仿真里最关键的模块,后面单独讲。

还有一点容易忽略:所有电气元件必须通过Powergui模块来配合仿真,这个模块相当于整个电气网络的求解器配置中心,双击它可以设置仿真类型(连续/离散)、求解器算法、潮流计算和初值设置。没有Powergui,整个模型根本跑不起来。

2.2 Three-Phase Fault模块:故障时序与类型设置

Three-Phase Fault模块是整个短路故障仿真的灵魂。双击模块,主要看几个设置:

  • Fault type:选择故障类型。三相短路选ABC,单相接地选A-G,相间短路选A-B,等等。从暂态稳定角度来说,三相短路是最严重的工况,因为电磁功率跌得最狠,所以默认研究三相短路就好。
  • Fault resistance:故障点过渡电阻,单位是欧姆。金属性短路(直接短接)设为0.001(不能设0,数值上会出问题),如果模拟经过电弧电阻短路可以设个几欧姆。
  • External control of fault timing:是否启用外部定时。如果只是简单固定时间故障,可以不勾选,直接在下面的Transition time里填切换时间。如果用外部定时,可以通过Step模块或Signal Builder来控制。

关键的时间参数有两个:故障发生时间(Fault)和故障切除时间(Fault clearing)。比如我想让系统在0.2s发生三相短路、0.3s切除,那Transition time就是 [0.2 0.3]。注意这个模块是双稳态切换:第一个时间是切换到故障状态,第二个时间是切换回正常状态。如果你只填一个时间[0.2],那故障会一直持续到仿真结束,这在研究“永久性故障”时可以这么用,但研究暂态稳定和CCT时必须设置切除时间。

这里有一个很常见的坑:Transition time的单位是秒,但很多人会直接填0.1,以为这是故障持续时长。模块实际解读的是绝对时间。所以一定要算清楚:如果故障持续时间是0.1s,仿真从0开始,而你想在0.2s发生故障,那切除时间应该是0.3s,填 [0.2 0.3] 而不是 [0.1]。这个搞错,波形全乱。另外,故障类型如果要多次切换(比如单相短路转三相短路这种更复杂的场景),需要用Step模块配合外部控制,这在进阶研究里才会用到。

2.3 关键电气参数的计算与初值设置

SMIB模型的参数设置直接决定仿真波形是否真实可信。下面这份是我常用的典型参数,基本参考教材里低损耗机组和线路的典型值:

元件参数项典型值说明
发电机额定容量200 MVA三相机组容量
发电机额定线电压13.8 kV机端电压
发电机额定频率50 Hz国内电网频率
发电机惯性时间常数 H3.5 s机组惯性大小,影响摆动周期
发电机暂态电抗 Xd'0.3 pu简化模型用
发电机同步电抗 Xd1.8 pu稳态运行计算需要
变压器额定容量200 MVA与发电机匹配
变压器变比13.8kV/230kV升压到高压输电电压
变压器短路阻抗10%即漏抗0.1 pu
输电线路长度200 km双回线
输电线路单位正序电阻0.027 Ω/km典型220kV架空线
输电线路单位正序电抗0.4 Ω/km典型值
输电线路单位正序电纳2.8e-6 S/km容性充电功率
无穷大母线电压220 kV高压侧基准电压

惯性时间常数H的单位是秒,它表示发电机转子在额定转矩作用下从静止加速到额定转速所需的时间,H越大,转子“惯性”越大,功角变化越慢,系统越不容易失稳。这个参数在Simplified Synchronous Machine模块里对应的是Inertia(单位kg.m^2,需要根据H换算)或者直接用H(具体看版本)。

还有一个容易出问题的地方:功率初值。在Simulink电力系统仿真中,如果要让系统从一开始就处于稳态,必须先做潮流初始化。最简单的办法是双击Powergui,选择Power Flow工具,设置发电机的有功输出、机端电压幅值,让它自动计算初始状态。Powergui的Tools > Compute Initial States会在仿真前自动计算稳态初值,如果没有正确初始化,第一个仿真步就会出现巨大的暂态冲击,波形乱得没法看。这点我建议所有刚上手的人密切关注,宁可多花两分钟做一次初始化,也不要让仿真从非零的“假暂态”开始。

3. 实操过程与结果分析:波形出来了怎么读

3.1 搭建步骤和功角信号的提取方法

整个模型搭建流程,我按顺序捋一遍:

  1. 新建Simulink模型,从元件库里拖出发电机、变压器、双回PI Section Line、Three-Phase Source(无穷大母线)、Three-Phase Fault、电压电流测量模块(Three-Phase V-I Measurement)、Powergui,按一次接线图连好线。
  2. 双击每个模块填入上面表格里的参数。注意检查发电机的额定电压、频率和变压器的变比例是否匹配,线路的额定电压是否与变压器高压侧一致。
  3. Three-Phase Fault并联在受关注的位置。最常见的是并在线路首端(升压变压器高压侧出口),或者线路上某一点。短路故障点加在线路首端时,故障对系统的冲击最大,因为剩余阻抗最小,这时候故障最严重;放在线路中点或者末端,冲击会相对小一些。CCT会随故障位置变化,这也很好理解。
  4. 设置Powergui的仿真类型和求解器。这里建议用连续仿真,算法选ode23tb(刚性系统常用),最大步长设小一点,比如1e-4秒或更小,确保波形平滑。
  5. 添加示波器和变量输出。至少要看三个量:发电机的功角δ、转子转速偏差Δω、电磁功率Pe。功角可以从Simplified Synchronous Machine模块的Rotor angle deviation (rad)输出口直接得到;转速偏差从Speed deviation (pu)口拿;电磁功率可以用Three-Phase Active & Reactive Power模块测三相有功功率。

功角信号首次提取时,注意看单位。有些版本输出的转子角是相对于同步旋转参考系的电角度(单位是rad或deg),有些是弧度。为了方便和教科书对照,可以在模型里加一个Gain模块把弧度转换成角度(乘180/pi),这样波形读数直观很多。机组初始功角一般不会刚好是0,因为输送有功功率时功角必然超前,这是正常的。

3.2 典型仿真结果:稳定与失稳的波形对比

搭好模型、完成初始化之后,跑一个0.2s发生三相短路、0.25s切除(故障持续0.05s)的仿真,观察波形:

  • 0到0.2s:功角基本是一条水平直线,转速偏差为零,电磁功率等于机械功率,系统处于稳态。
  • 0.2到0.25s:功角快速增大。因为三相短路导致电磁功率骤降(机端短路时几乎为零),机械功率照旧输入,过剩功率全在加速转子,功角曲线以明显的上凸趋势增长,转速偏差同步上升。
  • 0.25s故障切除后:电磁功率恢复,功角开始回落,产生类似衰减振荡的曲线。如果故障切除得够快,功角会经过几次减幅摆动后稳定在新的稳态值附近(因为系统结构变了,双回变单回,稳态功角比原来大)。转速偏差也会小幅度振荡后归零。这就是暂态稳定的画面。
  • 如果故障切除时间太长,比如0.4s才切除,功角在故障期间已经冲过了失稳临界点,切除后功角并不会回头,而是一路单调增大,转速偏差也一直正向增长,系统失步。此时波形一眼就能看出来:功角曲线冲上几十度、上百度还不回头,这种情况下仿真通常运行一段时间后会因转速偏差太大而数值发散,报错停止。

我第一次跑的时候,把故障持续时间设到0.1s,结果功角曲线直接飙到180度以上还不回头,当时还以为是模型搭错了,查了半天,后来才意识到这就是失稳——系统已经失去同步,功角曲线本来就会一直增大,因为转子越转越快,同步坐标下它的相对角度当然越拉越大。这个现象从原理上理解很清楚,但没亲手跑过仿真的人很容易对着失稳波形一脸茫然,以为模型坏了。所以看到功角暴涨、转速持续上升,先别急着查模型,判断一下是不是参数本来就落入了失稳区间。

3.3 临界切除时间CCT的扫描方法

求CCT是暂态稳定仿真最重要的定量输出。思路非常直接:不断修改故障切除时间,二分法逼近临界值。对一个固定故障点和固定故障类型:

  1. 先设一个肯定能稳定的切除时间,比如0.05s(通过看功角曲线衰减振荡判定稳定)。
  2. 再设一个肯定失稳的时间,比如0.5s(功角曲线单调增判定失稳)。
  3. 取中间值仿真,判断稳定还是失稳,更新上界或下界。
  4. 重复几次,把临界切除时间锁定到满意的精度,比如±0.005s。

实际操作时可以用脚本自动扫描。用sim()函数在循环里修改Fault模块的Transition time参数,每次仿真完判断末尾时刻的功角变化趋势。判断稳定性的逻辑可以写成:仿真结束后取功角序列,如果最后一段(比如仿真最后1秒)功角的极差小于某个阈值而且转速偏差趋近于零,判断为稳定,否则失稳。我自己写扫描脚本时还加了一个保险:如果功角最大值超过180度,直接判失稳,避免出现暂态稳定判定把“振荡不失步”和“单调失步”搞混的问题。

CCT受故障位置影响很大,故障点离机端越近,CCT越小,因为故障导致的电磁功率跌落越严重、加速面积越大。很多教材里经典的“求某线路首端三相短路时发电机临界切除时间”习题,用Simulink扫描出来的结果和理论值基本吻合,差别主要来自模型简化程度。把励磁、调速器都加上以后,CCT会偏大一些,因为励磁强励能提升暂态电势、进而提升故障切除后的电磁功率,相当于增大了减速面积。这也是为什么实际系统靠保护动作,但也靠励磁系统帮忙扛过第一摆。

4. 常见问题与排查技巧实录

4.1 仿真报错、不收敛与初始化问题

Simulink电力系统仿真的报错类型不少,其中我踩过最多的是下面这几种。

第一类:仿真刚开始就跑飞,波形出现离谱尖峰或者直接报“Singularity”或“Solver could not converge”。大概率是初值没初始化好。处理方法:双击Powergui,选Tools > Compute Initial States,或者在Power Flow工具里先算一次潮流,然后让模型从计算好的稳态初值开始仿真。这一步是电力系统仿真的标准操作,跟普通控制系统的Simulink模型不太一样——带电气网络的模型不是从零状态开始,而是从潮流解开始,否则功率不守恒。

第二类:三相短路时电磁功率波形出现严重高频振荡。这跟输电线路的分布参数电容、变压器漏感等高频分量有关。处理办法:把仿真最大步长调小到1e-5秒,或者改用od23tbode15s这类刚性求解器,必要时打开Powergui里的Discrete solver配合合适步长(比如50微秒)做离散化仿真。电力系统连续仿真耗时较长,尤其是带分布参数线路时,用离散求解器往往能大幅提速,波形也不差。

第三类:故障切除时间设置后,波形显示故障模块对系统毫无影响,功角和功率纹丝不动。这多半是故障模块没有正确并接到线路上,或者接地故障时故障模块的接地端子没接。Check一下故障模块是串联还是并联——短路故障一定是与被短路的部分并联跨接的,接地故障一定要把模块的ground端接地。模块在模型中看起来颜色正确不代表电气连接正确,有时候画线连错了节点自己看不出来,这时候把线路拉开、逐个节点检查最有效。

4.2 波形异常与参数调整心得

功角曲线出来以后,如果发现振荡不衰减,或者振荡频率特别高/特别低,按下面几个方向排查:

振荡频率异常,先检查惯性时间常数H。H越大,转子越“重”,振荡周期越长。如果H设成了0.5s,功角摆动会非常快,看起来很不自然;把H调到典型值2到6秒范围内,波形就正常了。发电机阻尼(Damping系数)也很重要,简化模型中阻尼系数设为零时,功角振荡几乎不衰减,这也是正常的物理现象,想让它衰减就在模块里把Damping设为2~5 pu。

功角曲线初始值不是零是正常的。稳态时发电机输送有功,功角必然大于零,具体数值由输送功率和总电抗共同决定。如果你把发电机有功输出设得很高,接近极限输送功率,初始功角就可能超过60度甚至90度,这种情况下系统很脆弱,很小的扰动就失稳。这对应教材里的“静态稳定极限”和“动态稳定裕度”的关系,从波形上能直观感觉到。

电磁功率波形在故障瞬间出现高频毛刺,可以先忽略前几个周期。因为故障瞬间网络拓扑突变,电气量会有一个电磁暂态过程,这个时间尺度和转子运动的机电暂态差了几个数量级。我们关心的主要是机电暂态,也就是功角的大趋势,电磁功率波形上的毛刺只要不影响整体包络,就不必太纠结。如果你用的是分布参数线路模型,开断瞬间的行波效应也会在功率波形上产生振荡,这是正常的,不代表模型错了。

4.3 如何从“能跑”到“可信”:进阶校核与扩展方向

模型能跑通、能扫出CCT,这只是第一步。要让结果有说服力,特别是写论文或者做工程分析时,建议做至少两组校核。

校核一:跟等面积法则的理论值对比。把仿真得到的临界切除时间跟手算的CCT做对照。手算需要先求故障前、故障期间、故障切除后三条功率特性曲线(P-δ曲线),再根据等面积条件列出积分方程求解。Simulink仿真的好处是自动计入了全部电磁动态,不需要手算积分,但两者在合理误差范围内应该接近。如果差异过大,大概率是某个电抗参数对不上,检查发电机暂态电抗和变压器漏抗是否使用了同一套基准值。

校核二:不同短路类型的稳定性对比。保持其他条件不变,分别做三相短路、两相短路、单相接地短路,得到的CCT排序必然是:三相短路最小,两相短路居中,单相接地最大。如果顺序反了,多半是故障模块错误或零序/负序参数没设对。这个“排序感”是最快的自检方法,比对着数值精打细算还管用。

如果要做更贴近实际的分析,可以考虑这样扩展:加上励磁系统(IEEE Type-I或简易AVR)、调速器模型,看强励对CCT的提升效果;把单回线运行(检修时只剩一回)作为初始工况,计算N-1条件下的暂态稳定裕度;或者把故障点分散到线路的不同位置,绘制CCT-故障位置曲线,这些都能把一次简单的课程仿真升级到接近科研和工程场景的分析深度。

我个人做这套仿真最大的体会是:Simulink里的电力系统模型,模块搭起来很快,真正的门槛在参数设置和结果解读。很多人一上来就把发电机、变压器、线路参数随便填,波形乱了也不知道该调哪里,最后只能对着曲线干瞪眼。所以强烈建议动手之前,把等面积法则、功率特性方程这些理论基础先过一遍,再对照着仿真波形去理解——看那条功角曲线一秒拉高的时候,你脑海里要有“加速面积大于减速面积”这个判断;看它衰减回稳的时候,你要能想到哪部分的阻尼在消耗振荡能量。做到这一步,仿真就不是交差了,它是真正帮你把电力系统暂态稳定这个概念钉进脑子里。

最后再分享一个小技巧:所有参数尽量不要直接在模块里裸填,建议用Simulink > Model Properties > Callbacks里的InitFcn或者直接写个初始化脚本把参数统一管理起来。这样扫CCT时只需要改脚本里的一个变量,模型跟着变,不用每个模块翻来覆去地找参数。做工程仿真也好、写论文也罢,一套能批量扫描、能自动判断稳定性的脚本,比手动反复拖动仿真省的时间不是一点半点。

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

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

立即咨询