做电力系统仿真这些年,如果要我列一份“新手必做仿真清单”,单机无穷大系统的短路故障暂态稳定分析绝对排第一。它用一台发电机、一组输电线路和一个理想无穷大电源,把电力系统暂态稳定理论里最核心的力学图景——发电机转子上的机械功率和电磁功率失去平衡——完完整整地搬进了Simulink。
这套仿真能做什么?简单说,就是在输电线上人为制造一个三相短路故障,然后观察发电机的功角、转速、电磁功率怎么变化,判断系统能不能重新回到稳定运行状态,再进一步扫描出保证稳定的极限故障切除时间。对电力系统专业的学生来说,课程设计、毕业设计里它是经典题;对刚入行的工程师来说,它是理解并网稳定性最简洁的起点;就算是做新能源接入、微电网研究的人,也建议先把这套单机模型跑熟,后面扩展成多机系统才不至于迷路。
这篇博文不会只给你一堆模块截图,而是把背后的物理逻辑、模型搭建细节、参数整定方法、结果判读技巧和常见坑位一次讲透。内容是我基于搭建这类仿真时的常见工程实践整理出来的,Simulink版本即使不同,思路完全通用。
1. 先拆透单机无穷大系统的物理本质
1.1 为什么全世界都拿它当暂态稳定分析的基准
单机无穷大系统的结构并不复杂:一台同步发电机经过升压变压器、双回输电线路,连接到无穷大母线上。所谓“无穷大母线”,指的是一个电压幅值和频率都恒定不变、容量足够大的等值系统,你可以把它想象成一条容纳百川的大河,某台发电机往里注入一股水流,大河的水位和流速不会因为这股水产生任何可观测的变化。
实际电力系统中,当我们要研究某台大型火电机组或水电机组接入区域电网后的稳定性时,电网侧容量远大于单机容量,这时把电网等值为无穷大母线是工程上非常合理的近似。正因为如此,几乎所有暂态稳定教材都把单机无穷大系统作为第一个也是最重要的分析模型。等面积定则、极限切除时间的公式推导,都是基于这个模型做出来的。先把这一个模型吃透,再去碰多机系统、复杂控制策略,你会轻松非常多。
在Simulink里复现这个系统的意义在于:理论公式只告诉你“稳定与否”的判据,而仿真能把功角摇摆的整个过程可视化地展示出来。看到功角曲线在切除故障后一圈一圈衰减振荡并最终稳定,和你只在纸上画等面积图感受完全不同。
1.2 暂态稳定问题的动力学核心:功角和转子运动方程
要理解暂态稳定,必须先搞清楚“功角”这个量。同步发电机的转子有一个空间位置,系统里有一个同步旋转参考轴,功角就是转子位置与这个参考轴之间的夹角,常记为δ。正常稳态运行时,δ是一个固定值,发电机像一个齿轮一样和系统严格同步旋转。这时候机械功率Pm(汽轮机或水轮机输入的功率)和电磁功率Pe(发电机送出去的电功率)是平衡的,转子转速保持同步转速不变。
一旦线路发生短路故障,发电机到无穷大母线之间的等效电抗会明显增大,根据公式 Pe = (E'U / XΣ) sinδ,电磁功率Pe会骤降。但汽轮机阀门短时间内不会动作,机械功率Pm基本不变,于是转子上的力矩平衡被打破:Pm - Pe > 0,转子开始加速,δ开始增大。
这里打个比方:你推一个秋千,每周期恰好按节奏推一次,秋千稳定摆动;突然系统出了一点意外,推的力量还在,但秋千自身的回摆阻力变小了,秋千摆幅就会越摆越大。故障期间发电机转子就像被“多推了一把”,积累了一部分额外的动能;故障切除后,系统恢复送电能力,电磁功率变大,又开始把转子往回拉。如果“往回拉”的能力足够抵消“多推”积累的动能,功角会摆到一个最大值后回摆,最终在衰减振荡后稳定下来;如果往回拉不住,功角就会持续增大越过180°,发电机失步。这就是暂态稳定中最经典的等面积定则。
转子运动方程是这一切的数学描述:J·(dω/dt) = Tm - Te,其中J是转动惯量,Tm是机械转矩,Te是电磁转矩。转动惯量越大、系统越“重”,功角变化就越慢,系统抗扰动能力也越强。这也是为什么大型水火电机组通常有较大的惯性时间常数H。
1.3 为什么仿真中要采用标幺值
新建Simulink电力系统模型时,最让人头疼的就是单位。同步发电机模块里,Xd、Xd'、Td'这些参数如果不加说明,几乎都是用标幺值(per unit,简写pu)表示的。标幺值很简单,就是实际值除以基准值。比如发电机的额定电压是20 kV,取它作为电压基准,那么机端电压标幺值就是1.0 pu;如果实际运行电压22 kV,则对应1.1 pu。
采用标幺值的好处是:不同电压等级的设备参数可以直接放在同一个坐标系里比较,不用每次换算变比。比如发电机暂态电抗Xd' = 0.3 pu,意思是它和发电机额定阻抗相比占30%。你在模型里输入的0.3不是0.3欧姆,而是0.3倍的基准阻抗。这个换算关系如果不清楚,很容易在设置参数时闹出“电抗设大了一百倍”的笑话。后面我会给出一个完整的参数示例。
2. Simulink模型搭建详解
2.1 先认识需要用到的模块
在开始搭建之前,需要在Simulink库浏览器里找到Simscape > Electrical > Specialized Power Systems目录。注意这个工具箱的旧版本叫SimPowerSystems,新版本在Simscape Electrical中,名字不同但模块基本一样。整个模型至少要包含下面这些基础元件:
- Powergui:电力系统仿真的“控制面板”,任何含电气元件的Simulink模型都必须放一个,负责求解器设置、稳态初始化、测量方式选择。
- Synchronous Machine pu Fundamental:标幺值同步发电机模块,这是整个模型的心脏。
- Three-Phase Transformer (Two Windings):升压变压器,把发电机出口电压升到输电线路电压等级。
- Three-Phase PI Section Line:π型等值输电线路模块,也可以用分布参数线路模块。
- Three-Phase Source:等值无穷大电源。
- Three-Phase Fault:短路故障模块。
- Three-Phase Breaker:断路器,用于故障后切除故障线路。
- Three-Phase V-I Measurement:电压电流测量模块。
- Machine Measurement Demux:同步电机内部测量接口,用来输出功角、转速、电磁功率等关键信号。
第一次搭这个系统的人往往会漏掉Powergui,这是最常见的新手错误。没有Powergui,模型根本跑不起来,Simulink会直接报错提示缺少电源分析模块。放置Powergui后,一般保持默认设置,仿真模式选Continuous,其他先不动,等后面再调。
2.2 同步发电机模块参数设置与励磁输入接法
同步发电机模块是模型的重头戏,重点说它的内部设置。双击模块,首先在Parameters选项卡里选择预设模型或者手动填参数。这里给出一组典型汽轮发电机标幺值参数:
| 参数 | 数值 | 说明 |
|---|---|---|
| 额定功率 Sn | 1000 MVA | 视在功率基准 |
| 额定线电压 Vn | 20 kV | 发电机出口电压 |
| 额定频率 f | 50 Hz | 我国电网频率 |
| 中性点接地 | 不接地或经高阻 | 取决于发电机中性点方式 |
| 直轴同步电抗 xd | 1.80 pu | 稳态电抗 |
| 交轴同步电抗 xq | 1.75 pu | 稳态电抗 |
| 直轴暂态电抗 xd' | 0.30 pu | 决定暂态功率特性关键 |
| 交轴暂态电抗 xq' | 0.55 pu | 暂态过程使用 |
| 直轴次暂态电抗 xd'' | 0.25 pu | 故障初始瞬间作用 |
| 交轴次暂态电抗 xq'' | 0.25 pu | 故障初始瞬间作用 |
| 直轴开路暂态时间常数 Td' | 8.0 s | 励磁绕组时间常数 |
| 交轴开路暂态时间常数 Tq' | 1.0 s | 阻尼绕组时间常数 |
| 惯性时间常数 H | 3.5 s | 转子惯量指标 |
这组参数实质上是教材里常见的大型汽轮发电机等值参数,不同资料略有出入,但数量级就是这样。填参数时注意单位全部是pu,不是欧姆也不是亨利。
励磁部分,初学者建议先简化为恒定励磁。同步电机模块上有一个励磁电压输入端口Vf,你可以在外部接一个常数模块,数值设为1.0 pu左右,表示励磁系统维持机端电压在额定附近。这样做的好处是先把暂态稳定的主体现象跑出来,后续再研究自动电压调节器AVR对稳定的影响时,把恒定常数替换成励磁系统模块即可。调速器同理,机械功率输入端口Pm直接接一个常数,数值设为发电机输出的有功功率标幺值0.9,表示汽轮机输出比较稳定、短时间内不参与调节。
2.3 变压器、双回线路与无穷大电源的处理
变压器模块用Three-Phase Transformer (Two Windings),额定容量和发电机保持一致,1000 MVA,变比20 kV / 230 kV,连接方式建议用Yg-D1,也就是高压侧星形接地、低压侧三角形连接。漏抗参数用短路电压百分数uk% = 14%,换算成标幺值就是0.14 pu,这个数值在220 kV变压器里属于很常见的范围。
输电线路用Two PI Section Line模块,模拟双回线路中的每一回。设定额定电压230 kV,频率50 Hz,单回长度150 km,单位长度正序参数按典型架空线取R1 = 0.025 Ω/km,L1 = 1.0 mH/km,C1 = 0.012 μF/km。这里我一般习惯先把正序电阻电抗填好,零序参数在同一界面的另一栏,如果只做三相短路故障,正序参数已经足够。
为什么用双回线路?因为实际高压输电网为了保证供电可靠性,重要联络线往往成双回架设。一回路故障切除后,另一回路还能继续送电,系统不会完全失去联系。如果只用单回线路,故障切除后发电机和无穷大母线就彻底断开,发电机只能带厂用电运行甚至停机,这种情况就不是“稳定判断”的问题了,模型分析价值小很多。
无穷大母线用Three-Phase Source实现,关键是让它“无穷大”。具体操作是:在Three-Phase Source模块里勾选Internal impedance,把短路容量设得很大,例如100000 MVA,内阻设很小,比如阻抗0.001 pu。这样母线电压幅值有效值设为230 kV,相位0度,频率50 Hz。实际仿真中如果你发现母线电压在故障期间没有明显跌落,就说明这个电源建模得够“无穷大”,符合理论假设。
2.4 短路故障与断路器时序设计
故障模块用Three-Phase Fault,放在其中一回输电线路的靠近母线侧,也就是线路首端。故障类型选择三相短路,Simulink中需要把Fault type下面的A、B、C三相全部勾上。过渡电阻Rs和接地电阻Rg可以填0.001 Ω左右,模拟金属性短路。如果填0偶尔会带来数值求解困难,所以留一个极小的值更稳。
重点说故障时序控制。Three-Phase Fault模块里有一个Transition Time参数,格式是[t_start t_end],比如[0.2 0.4],意思是0.2秒故障发生,0.4秒故障消失。注意故障“消失”并不等于故障线路被隔离,如果想要更贴近工程实际,还需要在故障线路两端加三相断路器,在0.4秒同时断开,把故障线路真正切除。
断路器的设置方法:双击Three-Phase Breaker,Initial status设为1(闭合),Switching times设为[0.4],表示0.4秒断路器动作断开。两个断路器分别接在故障线路的送端和受端,这样0.4秒后这条故障线路就从系统里隔离出来,发电机只能通过另一回健康线路向无穷大母线送电。
为什么要这样设计?因为真实电网中线路发生短路后,继电保护会瞬间(一般在几十到一百毫秒左右)跳开两端的断路器,故障电流消失,故障线路进入停电检修状态,随后靠另一回线路继续送电。如果只让故障模块在0.4秒消失而不切除线路,仿真模型里的线路等于是“短路瞬间恢复”,这在物理上是说不通的。教材里的简化模型经常这样处理,但做工程仿真建议还是加断路器,更能锻炼系统思维。
3. 参数整定与稳态工作点校准
3.1 稳态参数计算:初始功角从哪里来
建好模型后,先别急着把故障模块激活跑故障。第一个必须做的事是确认稳态工作点正确——也就是在没有故障的情况下,发电机应稳定在某个初始功角δ0上运行。
以上面的参数为例,从发电机暂态电动势E'到无穷大母线U之间总等值电抗XΣ由三部分组成:发电机暂态电抗Xd' = 0.3 pu,变压器漏抗X_T = 0.14 pu,双回线路并联等值电抗。每回线路电抗的实际值折算到230 kV、1000 MVA基准下约为0.794 pu,两回并联后约为0.397 pu,所以 XΣ = 0.3 + 0.14 + 0.397 = 0.837 pu。
设发电机送出有功P0 = 0.9 pu,无穷大母线电压U = 1.0 pu,发电机暂态电动势E'取1.1 pu(这是个近似值,励磁系统会自动调节维持这个量级),功率传输公式 P = (E'U / XΣ) sinδ 可以反推出初始功角:
sinδ0 = 0.9 × 0.837 / (1.1 × 1.0) ≈ 0.685,δ0 ≈ 43.3°。
这个计算主要是让你心里有数。实际Simulink仿真不需要手工把功角填进去,Powergui里有一个非常重要的工具:Machines and Load Flow Tool。双击Powergui,在Tools菜单下找到Machines and Load Flow Tool,选择自动初始化,设置发电机的有功P0和机端电压Vt,点击Load Flow并Apply to Model,Simulink会自动把同步电机状态变量初始化到对应的稳态工作点,包括初始功角、励磁电压、转速偏差等。
这个步骤极其关键。很多人仿真时发现功角曲线不从稳定值开始,而是一上来就剧烈摆动,多半就是没有做稳态初始化。不初始化直接跑故障,相当于让系统从错误的起始状态开始经历故障,结果自然不会准。
3.2 机械功率输入为什么取0.9
同步电机模块的Pm端口输入的是机械功率标幺值,稳态时应当等于发电机输出的电磁功率。取0.9表示汽轮机向发电机输入的机械功率为额定值的90%,发电机向电网输出约0.9 pu有功功率。这是单机无穷大系统最常见的高负载工况。负载越高,初始功角越大,系统暂态稳定裕度越小,故障后越容易失稳,做仿真对比时效果更明显。
如果你想观察不同负载水平对暂态稳定的影响,可以把Pm分别设成0.5、0.9、1.0跑三组对比。一般来说Pm越大,极限切除时间越小,系统越脆弱。这个趋势在仿真曲线里会非常直观,写报告时可以作为一个重要结论。
3.3 求解器与仿真时长选择
电力系统暂态稳定仿真涉及机电暂态和电磁暂态的耦合,属于刚性系统,求解器选不好很容易不收敛。我实测下来最稳的组合是:变步长、ode23tb、相对容差1e-3、最大步长不超过0.001秒。为什么用ode23tb?因为短路瞬间电压电流发生剧烈跳变,电气量时间常数很小,而转子摆动时间常数又很大,这种多时间尺度问题用刚性求解器更合适。用ode45跑短路线路可能卡死或提示不收敛。
仿真时长建议取10秒。故障发生在0.2秒,切除在0.4秒左右,之后功角会经历几个周期的振荡,通常5秒内能看清衰减趋势,10秒可以完整看到收敛情况。如果只跑2秒,可能正好停在功角最大摆幅处,容易被误判为失稳。
4. 仿真结果判读与稳定评估
4.1 从功角曲线上看懂“稳定”和“失稳”
把Machine Measurement Demux接在同步电机模块输出端,可以看到功角delta(弧度)、转速偏差dwm、电磁功率Pe等信号。功角建议用Rad2Deg模块转换成角度,方便读数。
稳定工况下的波形特征是这样的:故障发生前,功角维持在43°左右;0.2秒故障瞬间,功角开始加速上升,因为电磁功率骤降、转子加速;0.4秒故障切除后,功角继续上升一小段,达到最大值(比如70°左右),然后往回摆,经过几次衰减振荡后稳定在新的平衡点附近。新的平衡点会略高于最初的43°,因为故障后一回线路被切除,XΣ变大,要输送同样的有功功率,功角必然变大。
失稳工况下的波形特征则完全相反:功角在故障切除后不但不回落,反而继续单调增大,越过90°、120°、最后冲过180°,此时发电机与系统失去同步,转速也会持续上升。功角冲过180°这个信号非常明显,一眼就能判断系统已经失稳。
转速波形也有参考意义。转速偏差正常情况下在0附近来回摆动,故障期间先上升,切除后如果稳定会渐渐回归零点。如果转速一直单方向上升,转子上持续存在加速转矩,那就是失稳的前兆。
4.2 极限切除时间的扫描方法
极限切除时间(Critical Clearing Time,简称CCT)是暂态稳定分析最重要的定量指标,意思是:故障发生后最多允许多久切除故障,系统才能保持稳定。超过这个时间切除,系统就失稳。
求CCT的标准方法是二分法扫描。以故障开始时刻0.2秒固定不变,只改变故障切除时刻tc。先取一个明显能稳定的值,比如tc = 0.1秒,仿真后功角收敛;再取一个明显不稳定的值,比如tc = 0.5秒,功角发散;然后在两个值之间取中值继续仿真。通常几次之后就能把CCT精确到0.01秒以内。用上面那组参数,CCT大概在0.2到0.3秒之间,具体由你的模型拓扑和参数决定。
如果你比较较真,也可以用等面积定则手算理论CCT,再和仿真值对比。做法是列出故障前、故障中、故障后三段功率特性P_I、P_II、P_III,利用加速面积等于减速面积解出极限切除角δc,再用故障期间转子运动方程换算成时间。理论上能算但非常繁琐,尤其是加上断路器和双回线路切换后,手算误差也大。我的经验是用等面积定则来判断趋势和量级,以仿真扫描结果为准。
4.3 带说明文档的项目应该怎么组织
这个项目标题里带“说明文档”,很多人以为是随便写个使用说明,其实说明文档做得好坏,直接决定这个仿真作品能不能被人看懂和复用。我建议说明文档至少包含四个部分:系统模型说明、参数表格、仿真结果分析、操作指南。
系统模型说明里写清楚单机无穷大系统的结构图、故障设置位置、断路器动作时序。参数表格把发电机、变压器、线路、电源的参数全部列出来,标明单位是pu还是物理单位,方便别人复现。仿真结果分析部分给出稳定和不稳定两组波形截图,并解释各自的物理含义。操作指南写清楚从打开模型到运行仿真的步骤,以及如何修改故障切除时间观察不同结果。
5. 常见问题速查与实操避坑
5.1 仿真不收敛,先别急着调步长
Simulink电力系统仿真不收敛是碰到最多的问题,但真正的原因往往不是求解器参数。按照我排查一年的经验,按下面顺序逐项检查:
第一,确认模型里有Powergui模块且仿真模式选对。暂态稳定用Continuous模式,Phasor模式更快但会丢掉电压电流波形细节。第二,检查发电机参数是否填成有量纲数值。比如把xd=1.8 pu填成1.8欧姆,模型数值出现病态,收敛会有问题。第三,检查电源之间是否直接并联。电力电子和电气网络中,两个理想电源直接相连会引发“源-源冲突”,必须通过阻抗或线路隔离。发电机和无穷大电源之间本身就隔着变压器和线路,问题不大,但如果自行修改拓扑,要特别留意。第四,检查机械功率和初始状态是否匹配,也就是有没有做Load Flow初始化。很多“不收敛”实际是初始工作点不对,仿真一开始就在拼命调整,整条曲线震荡得像失稳一样。
如果以上都没问题,再考虑减小最大步长到0.0005秒、相对容差降到1e-4,多数情况能救回来。不过遇到真正的病态系统时,把所有步长参数都改到极端也未必有效,反而应该回头查参数值本身是否合理。
5.2 波形看不出故障变化,多半是时序设置问题
如果你跑完仿真发现功角曲线平平的,完全没有故障冲击痕迹,大概率是Three-Phase Fault没有真正起作用。检查三个地方:故障类型的A、B、C三相是否全部勾选;Transition Time是否写成了[t_start t_end]两元素向量,比如[0.2 0.4];故障模块是否接在了预期线路上,接线错误时故障其实根本没接入系统。
另一个隐蔽问题是:故障切除和断路器动作不同步。故障模块在0.4秒时电弧熄灭,但断路器如果设置成0.4秒才收到跳闸信号,电磁暂态上有一瞬间的冲突。建议把故障Transition Time的结束时刻和断路器Switching time设成完全一样,避免时序差带来的二次冲击。
5.3 几个屏幕外的经验
最后分享几条写了多年仿真才积累出来的经验。第一个经验是:不要一开始就追求更多的励磁调节器和调速器。恒定励磁、恒定机械功率、隐含极发电机模型,这三个“恒定”已经足够让你把暂态稳定的主要矛盾看清楚。等到基础波形正常了,再依次加入励磁系统、调速器甚至PSS电力系统稳定器,就能看到控制措施如何改善稳定裕度,做对比实验也非常有说服力。
第二个经验是:每次改变故障切除时间,都要重新确认Powergui的Load Flow初始化结果没有被覆盖。有时候为了调参数点错按钮,把初始化冲掉了,仿真结果一塌糊涂还找不到原因。我把Powergui初始化后的参数截图保存下来,每次改模型后对比一眼,省了很多麻烦。
第三个经验是:做完这个仿真后,值得尝试扩展的方向很多。比如把双回线路改成单回,对比极限切除时间的变化;把汽轮发电机换成水轮发电机,观察不同惯性常数对摇摆曲线的影响;或者在励磁回路里加一个Power System Stabilizer,看看阻尼振荡的效果。这个模型就像一个稳定的地基,往上盖什么楼层都顺理成章。
我个人这些年最大的体会是:建模容易,调参难,看懂波形更难。但恰恰是单机无穷大这么简单的系统,把电力系统暂态稳定那套“功角摇摆”的逻辑逼着你彻底想明白。模型一旦跑通,你再去读多机系统暂态稳定、广域测量、紧急控制这些内容,理解速度会快很多。如果你也在搭这套仿真,卡住了就在参数和时序上多怀疑一下,多半问题就出在那里。