单机无穷大系统短路故障暂态稳定Simulink仿真全流程解析

发布时间:2026/9/8 10:55:35
单机无穷大系统短路故障暂态稳定Simulink仿真全流程解析 做电力系统分析课程设计或者毕业论文的人十有八九都要碰一次“单机无穷大系统短路故障”的Simulink仿真。原因很简单它是理解暂态稳定最直接、最经典的入门模型后面的多机系统、PSS附加阻尼、广域稳定控制全都建立在这个基础概念之上。但我也见过不少同学卡在这个入门模型上模型搭好了、故障加上去了可仿真结果要么振荡发散要么功角曲线一直往上飘完全不知道问题出在哪。这篇文章我打算把整个“单机无穷大系统短路故障暂态稳定仿真”从物理原理到Simulink建模、从故障时序控制到结果判读、从参数整定到调试避坑完整走一遍。适合刚接触电力系统暂态稳定的本科生、研究生也适合要做课程设计或论文复现的工程师参考。我会把每一步为什么这样设置、哪些参数是坑、仿真结果怎么判断稳定与失稳都尽量说透。1. 短路故障那一瞬间系统里到底发生了什么1.1 暂态稳定研究的对象从来不是电压电流而是转子运动很多人刚接触暂态稳定时第一反应是研究故障后的电压、电流波形。这个方向其实偏了。暂态稳定关心的核心是发电机的转子是否还能保持同步运行也就是转子机械运动和电磁功率之间的平衡问题。发电机的转子有巨大的转动惯量原动机输入机械功率Pm发电机输出电磁功率Pe。稳态时PmPe转子以同步速度匀速旋转。一旦系统发生短路由于网络阻抗急剧变化发电机的电磁功率Pe会瞬间掉下去。以机端三相短路为例Pe几乎跌到0。但是原动机那边由于调速系统的动作时间常数通常在秒级短时间内机械功率Pm基本不变。于是转子上出现了不平衡功率ΔPPm-Pe0转子开始加速。描述这个过程的就是摇摆方程也叫摆动方程2H/ωs · d²δ/dt² Pm - Pe其中H是惯性时间常数ωs是同步角速度δ是发电机转子相对无穷大系统同步参考轴的功角。这个方程是整个暂态稳定分析的基石。你可以把它理解成牛顿第二定律在旋转机械上的体现不平衡转矩让转子获得角加速度转子角速度偏离同步速度功角δ随之变化。1.2 为什么功角是判断稳定的核心标尺功角δ的物理意义是发电机内电势和无穷大母线电压之间的相位差。单机无穷大系统中发电机的电磁功率与功角的关系满足Pe (EU/XΣ)·sinδE是发电机暂态电势U是无穷大母线电压XΣ是从发电机到无穷大母线的总电抗。这是一条正弦曲线称为功角特性曲线。稳态运行时系统运行在Pm与功角特性的交点上对应初始功角δ0。短路瞬间XΣ发生变化功角特性曲线的幅值骤降。若机端三相短路Pe≈0运行点瞬间跳到横轴上。这时候Pm不变转子开始加速功角δ从δ0逐渐增大。故障切除后系统网络拓扑恢复功角特性曲线重新抬起来电磁功率Pe大于Pm转子开始减速。问题在于:如果故障切除太晚,δ已经冲得太远,即使故障切除后减速面积不足,功角也会继续增大并越过不稳定平衡点,最终导致失步。这就是暂态稳定中的面积判据——等面积法则。1.3 等面积法则与临界切除角:手算和仿真对照的理论基准等面积法则的核心思想很朴素:加速过程中转子上积累的动能增量,必须在减速过程中全部释放掉,才能保证功角不再越过极限点。![无图,用文字描述] 把功角从δ0到故障切除角δc这一段定义为加速面积,故障切除后从δc到最大摇摆角δmax定义为减速面积。加速面积等于减速面积时,系统处于临界稳定状态。此时的δc就是临界切除角δcr。对于机端三相短路这种最严重工况,Pe≈0,加速面积等于Pm(δc-δ0)。故障切除后的功角特性为P2max·sinδ,减速面积可以积分得到。令两者相等,可以得到:Pm(δc-δ0) P2max(cosδc - cosδmax) - Pm(δmax-δc)其中δmax π - arcsin(Pm/P2max),也就是故障切除后功角特性曲线上与Pm对应的不稳定平衡点。注意,这里所有角度都要用弧度做单位。有了临界切除角,再结合转子运动方程数值积分,才能得到临界切除时间CCT。现实中故障发生在输电线路不同位置、不同故障类型,Pe不一定为0,解析公式会变得很复杂,这就是必须用Simulink做数值仿真的根本原因——它自动完成了摇摆方程的数值积分,直接给出功角随时间的变化曲线和临界切除时间。2. 单机无穷大系统:Simulink模型从元件选型到搭建细节2.1 系统拓扑与元件选型:为什么我推荐用简化同步电机模型先明确单机无穷大系统的拓扑结构:一台发电机经升压变压器、双回输电线路连接到无穷大母线。在Simulink的Simscape Electrical库(早期版本叫SimPowerSystems)里,同步发电机有两个常用模块:Fundamental Synchronous Machine和Simplified Synchronous Machine。很多人一上来就选Fundamental模型,因为它参数全、看起来更高级。但做暂态稳定仿真,我强烈建议先用Simplified Synchronous Machine。理由是:经典暂态稳定分析本身采用的就是二阶模型——用一个暂态电抗Xd后面的恒定电势E来近似发电机,只保留转子运动方程。Fundamental模型包含d/q轴电抗、励磁绕组、阻尼绕组等大量细节,不但参数难凑齐,而且励磁系统动态会和机电暂态耦合,导致仿真结果解释起来非常复杂。你只是想验证等面积法则、求临界切除时间,用简化模型足够了。电力系统分析教材上画的经典模型,对应的就是Simplified Synchronous Machine。给出我实际调试过的一组教学参数:元件参数项建议值发电机额定容量100 MVA额定线电压13.8 kV暂态电抗Xd0.35 p.u.惯性常数H3.5 s阻尼系数D2升压变压器额定容量100 MVA变比13.8 kV/220 kV短路电抗0.15 p.u.双回线路长度200 km单位电抗0.4 Ω/km无穷大电源相电压220 kV频率50 Hz内阻0.001 Ω这几个电抗加起来,从发电机暂态电抗到无穷大母线的总电抗大约是0.583 p.u.。在100 MVA基准下,功角特性幅值Pmax约1.7 p.u.,取Pm0.8 p.u.时,初始功角大约28°。这个初始功角比较典型,临界切除时间也能落在0.2到0.4秒这个有辨识度的区间,方便做参数扫描。2.2 输电网络与无穷大母线搭建:几个容易出问题的连线细节在Simulink模型窗口中,按如下顺序连线:Simplified Synchronous Machine的三相电气输出端口接Three-Phase V-I Measurement,然后接变压器高压侧,再接双回线路,最后接到无穷大电源。变压器用Three-Phase Transformer (Two Windings)模块。配置时注意把连接方式设为Yg-Delta或Yg-Yg,一定要有接地参考点,否则浮地会导致仿真矩阵奇异。另一个细节是变压器饱和特性:做暂态稳定仿真时可以不勾选Saturation,因为励磁涌流等饱和现象不在本研究的关注范围内,开着反而增加数值刚性。双回输电线路有两种处理方式。一种是用两个Three-Phase Series RLC Branch并联;另一种是用PI Section Line模块。对于暂态稳定这种机电暂态时间尺度(秒级)的问题,集中参数的RLC串并联支路已经足够精确。我习惯用两个三相RLC串联支路并联,每条支路的电感按X0.4Ω/km×200km80Ω设置,两条并联后等效40Ω。线路电阻可以设一个较小值如5Ω,纯电抗会让系统处于无阻尼振荡状态,不利于观察功角摇摆的衰减过程。无穷大母线用Three-Phase Source模块实现。核心设置是:三相短路容量设一个很大的值(比如10000 MVA),内阻设0.001Ω。注意内阻一定不能设为0,否则潮流计算时导纳矩阵会出现无穷大元素,Simulink直接报错。内阻0.001Ω相对于系统阻抗几乎可以忽略,但足以保证数值计算正常。2.3 潮流初始化:建模前最容易忽略的一步搭建完模型后直接点运行,很可能会看到电压电流波形剧烈振荡,功角曲线根本不在稳态附近。这不是模型错了,而是没有做潮流初始化。Simscape Electrical的电力电子/电机模型,仿真开始时需要一组与稳态运行点一致的初始状态。如果不做潮流计算,发电机从零状态启动,要先经历一个漫长的电磁暂态才能建立电压和功率,而你要研究的短路故障时序早就被打乱了。正确的操作是:在模型里放一个Powergui模块,双击打开后选择Tools-Load Flow。在弹出的潮流工具中:将无穷大母线对应的Three-Phase Source设为Slack节点,电压幅值1.0 p.u.,相角0°。将发电机设为PV节点,有功功率0.8 p.u.,机端电压1.0 p.u.。点击Execute。执行成功后,Powergui会自动把计算出来的发电机内电势、转子角度、机械功率初始值注入到Simplified Synchronous Machine模块中。仿真一开始,系统就会稳定在给定的运行点,之后你才能在干净的稳态基础上叠加短路故障。我见过太多人跳过这步,直接在故障时序上死磕,结果永远是波形乱七八糟,问题根本不在故障设置,而在初始状态没对齐。调试小技巧:潮流初始化完成后,先别急着加故障。设置仿真时间0到1秒,直接运行,观察机端电压幅值、发电机转速、功角是否保持恒定。如果这几个量在故障前是一条水平直线,说明稳态建立成功,再加故障模块。2.4 功角信号从哪里取:别再去手算相位差了仿真搭好后,你最关心的观测量是功角δ随时间的变化。这里有个常见的误区:有人把无穷大母线的电压相位和发电机机端电压相位分别用PLL锁相环测出来再相减,这样做也能得到功角,但引入了PLL的响应延迟,而且数值上容易出现跳变,徒增麻烦。最简单的办法是直接从Simplified Synchronous Machine模块的输出端口m取信号。该模块的测量输出是一组总线信号,用Bus Selector可以从中选出转子角速度偏差dw、转子角delta、电磁功率Pe、机械功率Pm等。不同MATLAB版本里这些信号的名字可能有细微差别,但核心的几个信号基本就是delta、dw、Pe、Pm。把这个delta信号直接接Scope或者To Workspace,就是你要的功角摇摆曲线。我在实际教学中发现,很多同学卡在delta信号是相对谁的这个问题上。对于单机无穷大系统,无穷大母线被定义为同步参考轴,所以模块输出的转子角delta本身就可以直接当成功角看待。如果后面做多机系统,才需要将各台机的转子角做差。3. 故障注入与切除时序:仿真成败的关键细节3.1 Three-Phase Fault模块的参数配置故障注入用Simscape Electrical里的Three-Phase Fault模块。把它串联或并联到故障点电路中。做暂态稳定最常用的是在升压变压器高压侧出口母线上设置三相短路,这是最严重的故障工况,最能考验系统的暂态稳定极限。双击Three-Phase Fault模块,配置要点如下:Fault type选Three-Phase To Ground,也就是三相接地短路。Transition time可以先填一个占位值,后面我们会用外部信号精确控制。Fault resistance设0.001Ω,接地电阻也设0.001Ω。不要填0,纯零电阻在实际数值仿真中容易引发代数环或矩阵奇异问题,0.001Ω和金属性短路的物理结果几乎没差别,但求解过程要稳定得多。勾选External control,用外部逻辑信号控制故障的投入和切除。3.2 用Step信号组合生成故障窗口:加法和减法哪个对Three-Phase Fault模块的外部控制逻辑,在大多数MATLAB版本中是:输入信号为1时故障闭合(短路),为0时故障断开。为了生成一个从t1.0秒开始、持续0.1秒的故障窗口,我第一次做的时候用两个Step相加,结果怎么都不对,后来才反应过来应该用相减。正确的做法是:Step1模块:初始值0,Step time设为1.0,Final value设为1。Step2模块:初始值0,Step time设为1.1,Final value设为1。Sum模块:两个输入设为加和减,即Step1减Step2。Sum输出接Three-Phase Fault的External Control输入。时序逻辑如下:t1.0秒:Step10,Step20,相减结果为0,故障断开。1.0≤t1.1秒:Step11,Step20,相减结果为1,故障闭合。t≥1.1秒:Step11,Step21,相减结果为0,故障切除。这样生成的信号就是一个标准的矩形脉冲窗口,窗口宽度正好等于故障持续时间。如果你用加法,1.1秒之后得到的是2而不是0,故障一直无法切除,这恰恰是刚上手时最容易踩的坑。另外提醒一点,如果你的MATLAB版本里Three-Phase Fault的控制逻辑恰好相反(0表示闭合、1表示断开),把两个Step的Final value对调即可。实际用的时候建议先在Scope里把控制信号画出来看一眼,确认窗口形状正确了再接故障模块,省得后面出错排查半天。3.3 故障位置和类型的选择逻辑如果你想把问题做得更深入,故障点不一定只在变压器出口。常见做法还包括在线路中点设置故障、在线路末端设置故障,以及比较单相接地、两相短路和三相短路的冲击程度。工程上输电线路故障中单相接地占比最高,但单相故障对暂态稳定的威胁远小于三相短路,所以暂态稳定校验一般都按最严重的三相短路来考虑。这就是你在绝大多数教材和规范里看到三相短路故障暂态稳定分析的原因。故障点越靠近发电机,故障期间发电机的电磁功率跌落越厉害,加速面积越大,系统越容易失稳。我建议初学者先把故障点放在变压器高压侧出口母线,因为此时Pe≈0,加速面积几乎是矩形的,手算等面积法则的临界切除角非常方便,可以和仿真结果互相验证。故障持续时间的典型值:高压电网主保护动作时间加上断路器开断时间通常在100毫秒左右,也就是0.1秒。但为了演示暂态稳定的临界行为,我一般建议把故障清除时间先设0.2秒跑一次,再设0.35秒跑一次,一稳一失稳,对比效果非常明显。有兴趣的话可以进一步做参数扫描,把临界切除时间求出来。4. 参数整定、求解器选择与功角摇摆曲线的判读4.1 求解器与步长:别让数值误差毁掉物理结论Simulink中求解器的选择对仿真结果影响很大。单机无穷大系统搭好后,模型里既有同步电机转子这种连续动态环节,也可能有不太明显的高频分量,整体属于中等刚性。我实测下来,ode23tb是稳定性最好、效率也高的选择,其次是ode15s。如果你用默认的ode45,不是不能跑,但步长控制器有时会因为故障瞬间的电压突变而频繁缩步,拖慢计算速度甚至报数值奇异错误。关键的一个参数是最大步长。在Simulink配置参数的Solver页,把Max Step Size设成1e-4或更小。为什么?故障瞬间电压电流波形含有较高的频率分量,如果步长过大,这些分量会被严重混叠,Scope里看到的波形会有明显折线,功角曲线也容易出现抖动。最大步长1e-4在仿真时间5秒内也就是50000个步点,对现代计算机来说毫无压力,但波形质量和求解稳定性都能保证。仿真时长建议设5秒:故障前1秒用于确认稳态,1到1.1秒或1到1.35秒是故障窗口,剩下的3秒以上用于观察功角的摇摆和衰减过程。如果只设3秒,有时候功角第一摆还没走完,看不出系统最终稳不稳定。4.2 稳定与失稳:功角曲线到底怎么读当仿真跑完,把功角delta、发电机转速偏差dw、电磁功率Pe这三条曲线放在同一个Scope里看,你能非常直观地理解暂态稳定的全过程。稳定的典型特征:故障切除后,功角δ迅速上升到第一个峰值,然后回落,经过几次减幅振荡后,最终稳定在一个新的平衡点附近。这个新平衡点未必等于初始功角,特别是如果故障导致双回线路切除了一回,系统总电抗变大,功角特性幅值降低,新的稳态功角会比初始功角略大。如果模型里设置了阻尼系数D0,振荡会明显衰减;如果D0,理论上系统会等幅振荡下去,看起来就是不衰减的波浪线,这并不代表失稳,而是模型没有阻尼。失稳的典型特征:故障切除后,功角δ持续增大,越过180°而不回头,然后一直涨下去。这时候发电机转速偏差dw不再围绕0波动,而是单调上升,说明转子已经持续加速,和无穷大系统失去同步。在失步瞬间,Scope里的电磁功率Pe会出现剧烈的来回摆动,这是因为转子角频率偏离同步频率后,发电机和系统之间的电气联系周期性地拉扯。这些都是判断失稳的关键信号。还有一个细节值得注意:如果功角曲线在故障切除后有几摆看起来还行,但后面却慢慢发散,这说明系统可能处于临界状态附近。工程上常用的暂态稳定判据是:功角最大摇摆角不超过某一阈值,且振荡衰减。在做参数扫描时,我常用的简化判据是:仿真结束前最后一秒内,功角的最大值和最小值之差小于5°,转速偏差收敛到0附近,就判为稳定。4.3 临界切除时间的求取:从手算到参数扫描临界切除时间CCT是暂态稳定分析最重要的量化指标。它的物理意义是:在指定故障位置和故障类型下,故障必须在多少毫秒内被切除,系统才能保持稳定。超过这个时间,系统就失稳。先用等面积法则手算得到临界切除角δcr,然后怎么换算成时间?你需要对转子运动方程做数值积分:在加速期间,转子从δ0加速到δcr所用的时间,就是临界切除时间。这一步手算比较复杂,但Simulink本身就是干这个的——你只需要把故障清除时间设成不同的值,看系统稳不稳定,就能用二分法逼近CCT。更高效的方式是写一个简单的MATLAB脚本,循环调用sim函数:% 故障清除时间扫描 clear_time_list 0.15:0.02:0.35; stable_flag zeros(size(clear_time_list)); for k 1:length(clear_time_list) t_clear clear_time_list(k); % 通过set_param改Step2的Step time set_param([bdroot /Step2], Time, num2str(t_clear)); simOut sim(bdroot); delta simOut.delta.Data; % 从To Workspace里取功角数据 time simOut.delta.Time; % 简化稳定判据:最后一秒功角波动小于5度 last_index find(time time(end) - 1, 1); if max(delta(last_index:end)) - min(delta(last_index:end)) deg2rad(5) stable_flag(k) 1; else stable_flag(k) 0; end end这里有个细节:脚本里修改Step2的Step time,实际上是修改故障切除时刻。注意故障是1秒时投入的,所以Step2的Time应该设为1秒加上故障持续时长。比如故障持续0.1秒,Step2的Time就是1.1。用这个脚本,你可以画出一条稳定/失稳随故障清除时间变化的曲线,得到CCT的大致区间,再用二分法把精度提高到0.001秒量级。我做课程设计时,这个方法屡试不爽,而且和教材里的等面积法则手算结果能对得上,误差一般在百分之几以内——差异主要来自模型里是否考虑了阻尼、线路电阻和故障电阻,这些在经典手算公式里通常是被忽略的。4.4 用观测到的功角曲线反推等面积法则仿真跑出结果后,强烈建议把Scope里的数据用To Workspace模块导出,回到MATLAB中用plot画图。一个非常好用的做法是:把Pm也就是机械功率画成一条水平直线,把Pe电磁功率画成功角δ的函数曲线,在同一个图上叠加。你会看到,故障期间Pe曲线几乎贴着横轴,故障切除后Pe曲线重新拉高,而Pm水平线把图分为上下两个区域。上半区域对应加速面积(Pm在上、Pe在下),下半区域对应减速面积(Pe在上、Pm在下)。估算这两块面积的相对大小,就能判断系统稳定裕度。这个方法用来在答辩PPT里展示,比单纯贴一条功角时域曲线要有说服力得多。5. 调不通是常态:五个高频坑我帮你提前踩平5.1 故障电阻设为0导致矩阵奇异刚接触Simulink电力系统仿真的人,十有八九会把故障电阻和接地电阻都设成0,认为这才是理想的金属性短路。结果一运行就报错,或者仿真时间步长被压到极小,0.1秒的故障要跑好几分钟。原因很直白:纯零电阻在数值求解时对应一个奇异导纳矩阵,求解器无法处理。解决办法是设0.001Ω或者更小的0.0001Ω。这个阻值和真正的金属性短路相比,物理结果基本没有差别,但数值稳定性完全不一样。同样的道理也适用于无穷大电源的内阻,万能公式:小到可以忽略,但不能等于0。5.2 不做潮流初始化,稳态全是假的这个问题前面已经强调过,但我还是要把它放入避坑清单,因为它的隐蔽性极强。你可能会发现,不初始化潮流,模型也能跑出波形,但那其实是发电机从零状态拉入同步的电气过渡过程。如果你在这种非稳态基础上叠加故障,得到的功角响应根本不是正常意义上的暂态稳定响应,而是初始状态错误故障扰动的混合结果,没有任何物理意义。一定要养成习惯:每次修改发电机出力、变压器抽头或者线路参数后,重新执行一次Load Flow,确认潮流计算收敛,再跑暂态仿真。花30秒做初始化,能省掉你后面3小时的排查时间。5.3 阻尼系数为0,波形看起来不回稳Simplified Synchronous Machine模块里有一个阻尼系数D。默认或某些版本里,D可能为0。如果你设D0,即使故障切除时间远小于临界切除时间,功角曲线也会呈现等幅振荡,第一摆过后振幅不衰减,看上去好像要失稳,但实际上并不是。暂态稳定分析中,经典的保守做法是不计阻尼,因为阻尼能提高稳定裕度,忽略它得到的是偏保守的结论。但如果你只是想看一次漂亮的衰减摆动过程,建议设D1到3之间。这样功角曲线会逐渐收敛到新的稳态平衡点,物理上更好理解,也更容易在答辩时解释。注意,如果做CCT参数扫描求临界切除时间,建议统一设一个固定的D值,保证结果的可比性。5.4 Bus Selector里找不到delta信号不同MATLAB版本中,Simplified Synchronous Machine的测量输出信号名不完全相同,有的版本信号名是delta,有的是rotor_angle,还有的叫delta_rad。如果你在Bus Selector里找不到想要的信号,先别急。解决思路是:把模块输出m直接接一个Scope,Scope显示的是总线里所有信号按顺序排列的波形,你数一下哪个波形对应的就是你需要的功角或转速。确定后在Bus Selector里按信号顺序手动选择。另外也可以查一下当前版本Simscape Electrical的文档,搜索Simplified Synchronous Machine measurement。还有一个更稳妥的替代方案:不用模块内部的delta,而是在机端和无穷大母线处各接一个Three-Phase V-I Measurement,然后用PLL测出两侧电压相位,做差得到功角。这个方法麻烦一点,但信号来源清晰,适合在仿真有异常时做交叉验证。5.5 故障已经切除了,控制信号却还是1排查这种问题,我的习惯是先把控制信号本身用Scope拉出来看,别急着看功角曲线。控制信号是一个方波,在故障窗口内为1,其余为0。如果方波形状不对,那问题就出在Step组合逻辑上;如果方波正确,但系统表现依旧失稳,才需要考虑是不是故障切除时间真的超过了临界值。实际项目中,Sequential Faults或者带多个投切时刻的故障模块可能更省事,但用两个Step相减是控制逻辑最透明、最不容易出错的方式,也方便用set_param脚本批量修改切除时间。这个方案我用了很多年,强烈推荐给所有初学Simulink电力系统仿真的读者。把整个仿真流程跑通之后,你得到的不只是一张功角摇摆曲线,而是对为什么故障切除时间这么重要为什么暂态稳定需要研究转子的机械运动这些概念的真切理解。下一步如果要做多机系统,无非是把单机无穷大扩展成多台机组互联,但摇摆方程、等面积法则、临界切除时间这些底层逻辑,完全是一脉相承的。我觉得做这类仿真最舒服的状态,就是你盯着功角曲线,能直接说出系统接下来会怎么走——到了那一步,这个模型就算真正吃透了。