1. 10机39节点到底是什么?为什么教科书和论文都爱用它
1.1 从新英格兰测试系统说起
如果你做电力系统方向的研究或课程设计,一定绕不开 IEEE 39 节点系统,也就是常说的 10 机 39 节点系统。很多人第一次看到这个名称时会有一种错觉:是不是随便找了个 39 个节点的电网来跑仿真?其实不是。这个系统有一个真实背景,它来自 20 世纪 70 年代对新英格兰地区(美国东北部)输电网络的简化等值,所以很多英文资料里直接叫它 New England Test System(NETS)。
当年研究人员做稳定性分析时,既不能拿整个新英格兰电网直接做实验,也不能只看单机无穷大那种过度简化的模型,于是就把真实电网中的关键机组、关键输电断面和负荷节点保留下来,简化成一个 39 个母线、10 台发电机、若干变压器和输电线路的标准测试系统。后来这个系统被广泛用于暂态稳定分析、低频振荡研究、保护策略验证、广域测量系统算法验证等方向,成为论文里出现频率最高的“标准算例”之一。
我最早接触它是在读研做暂态稳定课题时,导师直接丢了一句“你先把 10 机 39 节点系统在 Simulink 里搭出来,跑通再说”。那时我对这个系统的理解也很浅,以为无非是多拖几个同步发电机模块、连上线就行。真正动手后才发现,搭模型只是一个环节,前面还有参数整理、潮流初始化、模块选型、故障设置、结果判定这一整条链路,每一步都有坑。
1.2 “10机”和“39节点”分别指什么
先把这个系统的结构说清楚。
所谓 39 节点,是指系统里有 39 条母线(Bus),母线编号通常为 1 到 39。但这 39 条母线并不全是高压输电母线,其中也包含发电机机端母线。所谓 10 机,就是有 10 台同步发电机,分别接在部分母线上。要注意,不是每个发电机都单独占一个新节点,有的发电机母线本身就是系统里的一个节点编号。
在这 10 台发电机中,通常选取接在 39 号母线附近的一台机组作为平衡机(参考机),其余机组作为 PV 节点机参与潮流调节。实际做仿真时,系统的基准容量一般取 100 MVA,基准频率为 60 Hz,这是美国系统的特征,也是很多中文教材直接沿用而不额外说明的地方。如果你在做毕设或课程报告,一定要在开头注明基准容量,否则后续所有标幺值都对不上。
系统内部的负荷也不是单一类型。很多版本的数据会把负荷分成恒功率、恒电流、恒阻抗三部分的组合,或者用 ZIP 模型描述。做潮流计算时一般按恒功率处理,但做动态仿真时如果还把负荷当成恒功率,在某些电压跌落严重的情况下结果会偏保守;想要更贴近实际,可以在 Simulink 里用三相动态负荷模块把 ZIP 模型搭进去。
1.3 这个系统适合做什么,不适合做什么
它在学术和工程中的定位是“标准测试平台”,不是“真实电网的精确复刻”。也就是说,只要你的算法、控制策略、保护方案能在这个系统上跑出预期效果,审稿人和评审专家通常会认可你的方法具备在更复杂电网上推广的潜力。
适合做的方向大致有这几类:
- 暂态稳定分析,比如三相短路、单相接地故障后的功角摇摆曲线判断。
- 小于扰稳定与低频振荡分析,可以研究区间振荡模式。
- 励磁系统、PSS(电力系统稳定器)参数设计与协调。
- 广域测量、同步相量算法的验证。
- 新能源接入后的稳定性对比,比如把某台同步机替换成光伏逆变器或双馈风机。
不适合做的方向也不少。比如这个系统的网络规模相对较小,无法精细反映配电网三相不平衡问题;它本身是输电网等值模型,不适合做分布式电源接入的台区分析;它也没有详细的直流输电线路模型,做交直流混联研究时需要额外扩展。
用一句话总结:10 机 39 节点是一个“用来验证通用性问题”的经典平台,而不是“用来复现某个具体电网工程”的沙盘。清楚这一点,你就不会在选型阶段走偏。
2. 搭模型第一步:把“标幺值语言”翻译成 Simulink 端口
2.1 母线、发电机、支路三张表的分工
搭 Simulink 模型之前,最重要的准备工作不是打开软件,而是把你手里的数据整理清楚。网上能下载到的 10 机 39 节点数据通常包含三张核心表。
第一张是母线数据表,每一行对应一条母线,包含母线编号、类型(PQ、PV、平衡机)、电压幅值初值、相角初值、有功负荷、无功负荷等。这张表告诉你每条母线上接了什么东西,电压大致在什么水平。
第二张是发电机数据表,每一行对应一台发电机,包含所在母线编号、额定有功、无功上下限、机端电压设定值,有的还会附上发电机动态参数,比如直轴暂态电抗、交轴暂态电抗、惯性时间常数、阻尼系数等。
第三张是支路数据表,每一行对应一条线路或一台变压器,包含首端母线、末端母线、电阻、电抗、对地电纳、变压器变比等。这张表是你在 Simulink 里画输电线路和变压器的直接依据。
我开始时犯过一个低级错误:把支路表里的电阻电抗直接当成国际单位制下的欧姆值填进 Simulink 的线路模块。结果潮流计算一跑就报错,电压一片混乱。后来才意识到,表里的数据默认都是标幺值,而 Simulink 里很多输电线路模块需要你填的是实际值或者明确指出标幺基准。所以拿到数据后第一件事,是先确认数据文件头部的说明,搞清楚基准容量、基准电压以及各参数的单位。
2.2 基准容量与标幺值换算
10 机 39 节点系统的基准容量是 100 MVA。你看到的所有发电机容量、负荷功率,在标幺值体系下都是基于 100 MVA 归算的。比如某台发电机额定有功是 5.0(标幺值),那它的实际容量就是 500 MW。
电压基准则需要分区域看。39 节点系统中,部分母线属于高压输电网络,部分属于发电机机端电压等级,所以在把标幺值转换成 Simulink 模块里的实际电压时,不能全系统用一个电压基准。
举个例子,某条支路两端母线都是 230 kV 电压等级,那么该支路数据中的电阻电抗标幺值,是基于 230 kV 和 100 MVA 归算的。换算成实际欧姆值有一个常用公式:
[ Z_{\text{实际}} = Z_{\text{标幺}} \times \frac{U_B^2}{S_B} ]
把 ( U_B = 230\text{kV} )、( S_B = 100\text{MVA} ) 代入:
[ Z_B = \frac{(230 \times 10^3)^2}{100 \times 10^6} = 529 , \Omega ]
所以如果支路电抗标幺值是 0.025,那么实际电抗就是:
[ 0.025 \times 529 = 13.225 , \Omega ]
当然,Simulink 里很多模块支持直接填标幺值或者填有名值,具体要看版本和模块库。在 Specialized Power Systems 库中,输电线路的 π 型等值电路模块通常可以用实际值填写,而 Three-Phase Transformer 模块则需要填额定电压、额定容量、漏抗百分数等参数。我的经验是,把换算过程写成一个 MATLAB 脚本,用脚本自动生成所有线路和变压器的参数,这样既不容易手误,也方便以后改基准容量。
2.3 Simulink 里的三种接线抽象
很多人拿到单线图后直接在 Simulink 里照着画,把每条三相线路都拉出来。这个思路本身没错,但需要先清楚 Simulink 中电力系统模型有几种表达方式。
第一种是三相拓扑模型,用的模块是 Three-Phase Source、Three-Phase Transformer、Three-Phase PI Section Line 等。这种模型的物理意义清楚,可以看到每一相的电压电流波形,适合做故障分析、保护仿真。
第二种是单线图等值模型,比如用 Single-Phase 模块搭建正序网络。这种模型省资源,但没法直接看三相不对称故障的细节。
第三种是更抽象的机电暂态模型,发电机用经典二阶模型或更高阶模型表示,网络用代数方程描述。这种思路在纯 MATLAB 脚本里更常见,但在 Simulink 中也可以通过 Simscape 模块实现。
对于 10 机 39 节点系统,最推荐的方式是搭建完整三相拓扑模型,因为后续做三相短路、单相接地、断线等故障仿真时,三相模型最直观。虽然模型看起来庞大,但实际上节点数量并没有多到跑不动的程度,普通电脑完全可以承受。
3. 发电机、励磁与调速器模块选型:不是随便拖一个同步电机模块就行
3.1 同步电机模型阶数怎么选
Simulink 的 Specialized Power Systems 库中提供了多种同步电机模型,从最简单的“经典模型”到考虑定子暂态、转子励磁绕组的详细模型都有。Simscape Electrical 里常见的模块名是 Synchronous Machine pu Fundamental 和 Synchronous Machine pu Standard。
选模型阶数的原则很简单:你关注什么物理过程,就选能表达这个过程的模型。
如果只做静态潮流验证,可以用简化模型,发电机的内电势恒定,不详细模拟励磁动态。如果做暂态稳定分析,至少要选考虑转子运动方程和暂态电抗的模型,也就是经典二阶模型往上。如果研究励磁系统、PSS、电压调节,那就必须选详细模型,并且要把励磁系统的动态特性显式建模。
以一台典型的大型汽轮发电机组为例,如果用标幺值同步电机模块,需要填写的参数包括:
- 额定视在功率和额定电压;
- 定子电阻、漏抗;
- 直轴同步电抗、直轴暂态电抗、直轴次暂态电抗;
- 交轴同步电抗、交轴暂态电抗、交轴次暂态电抗;
- 惯性时间常数 H;
- 阻尼系数。
很多初学者会忽略交轴和直轴参数的区别,直接把所有电抗填成同一个值。这在某些简化模型中影响不大,但如果你研究的是多机系统中的机电振荡,交轴参数不准确会直接影响振荡频率和阻尼特性的计算结果。
3.2 励磁系统不加会怎样
如果你只搭了同步电机模块,却没给它们配励磁系统,那就意味着发电机的机端电压是开环控制的。在潮流初始化时,Powergui 会帮你把励磁电压设到一个稳态值,使发电机出口电压达到设定值。可是一旦系统发生扰动,比如线路跳闸或三相短路,机端电压会剧烈变化,而没有闭环励磁调整的发电机会表现出完全不同于实际系统的响应。
实际电网中的发电机都配有自动电压调节器(AVR),它检测机端电压偏差,调整励磁电流,从而把电压维持在允许范围内。所以在 Simulink 中做暂态仿真时,至少给每台发电机配上简单的励磁模型。
Simulink 库里有现成的励磁系统模型,包括 IEEE DC1A、IEEE AC1A、IEEE ST1A 等标准模型。它们的复杂程度差异很大,ST1A 是静态励磁,响应快,适合模拟现代晶闸管励磁系统;DC1A 是直流励磁机模型,属于比较经典的老式结构。
对于初学,建议先从 IEEE ST1A 或 Simplified Excitation System 起步。重点调两个参数:励磁增益和励磁时间常数。增益太大会导致电压振荡,太小则电压恢复慢。多机系统中各台发电机的励磁参数最好参考原始测试系统的数据,不要自己随意编一组值,否则很可能出现莫名其妙的低频振荡。
3.3 原动机与调速器:惯性常数是关键
除了励磁系统,原动机和调速器决定了发电机的机械功率输入。Simulink 里有汽轮机、水轮机、内燃机等多种原动机模型。10 机 39 节点系统属于大电网等值模型,每台发电机的原动机类型并不完全一样,但在很多教学版本中,大家会统一用简化的调速器模型代替。
调速器的作用是根据频率偏差调整机械功率。当系统发生故障导致频率下降时,调速器会增加阀门开度,提高机械功率。但这个响应过程有一定的延时,而且受限于锅炉或水流的动态特性。
在实际搭模型时,最容易被忽略的其实是惯性时间常数 H。H 的物理意义是:当发电机以额定功率输出时,转子储存的动能还能维持多长时间。它的值直接影响系统受到扰动后的功角摇摆速度。
比如一台 H = 5 秒的发电机组,系统发生三相短路后,转子在加速功率作用下开始加速,功角变化的速度相对较慢;如果 H 只有 2 秒,那么同样大小的加速功率会让功角变化快得多,系统更容易失稳。因此,在做暂态稳定结论分析前,一定要确认所用的 H 值来自原始数据,而不是随便填一个顺眼的数。
在多机系统仿真里,还会遇到一个典型问题:如果你把所有发电机的惯性常数统一取成同一个值,系统会呈现一种“整体同步摇摆”的假象,区间振荡模式被掩盖。真实系统中各台机组的 H 值差异较大,有的水电机组惯性大,有的燃气机组惯性小,这种差异恰恰是多机系统相对摇摆的根源。
4. 从潮流初始化到三相短路:一条完整的暂态稳定仿真链路
4.1 在 Simulink 里搭建拓扑的推荐顺序
搭 39 节点模型时,我推荐的顺序不是“从 1 号母线开始画到 39 号”,而是先搭骨架,再补细节。
第一步,把 10 台发电机及机端母线放好。通常 39 号母线是平衡机所在位置,其他发电机分布在不同区域。先确定每台发电机的接入点,再用同步电机模块和机端变压器模块连接。
第二步,把输电网络的主干线路搭好。根据支路数据表,把各条母线的连接关系理清楚。为了画面整洁,建议用 Simulink 的子系统(Subsystem)把每个区域封装起来,比如把相邻的几条母线封装成一个区域子系统,子系统之间通过三相线路连接。这样整体模型看起来不会乱成一团。
第三步,加入负荷。39 节点系统的负荷分布在很多母线上,如果直接用三相并联 RLC 负荷模块,需要把恒功率负荷转换成等效阻抗。更简单的做法是使用 Three-Phase Dynamic Load 模块,它可以模拟恒功率、恒电流、恒阻抗的混合特性,而且可以在仿真过程中动态切换。
第四步,也是最关键的一步,加 Powergui 模块并做潮流初始化。没有 Powergui 的模型是无法进行机电暂态和电力电子仿真的。添加 Powergui 后,打开它的 Machine Initialization 界面,选择 Load Flow 工具,把 39 号母线上的发电机设为平衡机,其他发电机设为 PV 节点,填入各发电机的有功功率和机端电压设定值。运行潮流计算后,Powergui 会自动计算各发电机的初始转子角、励磁电压和机械功率,并把初始状态加载到 Simulink 模型中。
4.2 故障时序怎么设置
暂态稳定仿真一般会设置一个“先故障、后切除”的过程。最常见的是在某一回关键输电线路的出口处设置三相短路接地故障,经过一段时间后由断路器切除故障线路。
在 Simulink 中实现这种场景,通常用 Three-Phase Fault 模块和 Three-Phase Breaker 模块配合。
以一条连接 33 号母线和 34 号母线的线路为例,如果我想仿真的场景是:在 33 号母线出口处发生三相短路,0.1 秒后故障发生,0.2 秒后断路器跳闸切除该线路,那么可以把故障模块放在 33 号母线引出线的位置,故障时刻设置为 0.1 秒。同时,在这个故障点靠近线路侧安装一个断路器,设置断路器的跳闸时间为 0.2 秒。
有人会问:故障模块本身不是可以设置故障开始和结束时间吗?为什么还要加断路器。这里有个细微差别:Three-Phase Fault 模块模拟的是故障点阻抗的变化,它的“故障结束”相当于故障自行消失,而不是线路被切除。在实际电网中,短路故障通常要靠保护装置动作、断路器跳闸来隔离,短路点本身并不会自动消失。所以要更真实地模拟暂态稳定过程,应该用“故障模块产生短路 + 断路器切除线路”的组合,而不是只设置故障模块的结束时间。
故障发生的时间点通常选在仿真开始后一段时间,比如 1 秒或 0.5 秒,这样系统可以先进入稳态,然后再施加扰动。如果仿真刚开始 0 秒就短路,初始时刻的电磁暂态和故障响应混在一起,很难区分哪些现象是故障引起的,哪些是初始化过程的过渡态。
4.3 观察哪些曲线来判断稳定性
仿真跑完后,第一件要做的事不是看电压波形,而是看发电机的功角曲线。
在 Simulink 中,同步电机模块的输出端口会给出转子角、转速、电磁功率、机械功率等信号。你需要把每台发电机的转子角信号引出,通过 Scope 或 MATLAB 脚本绘制功角随时间变化的曲线。
判断系统是否暂态稳定,核心看的是“相对功角”而不是绝对功角。因为绝对功角是相对于同步旋转参考轴的,而各台发电机的绝对功角可能同时增大或减小,这时你需要选一台参考机,通常是平衡机,然后计算其他发电机相对于参考机的功角差。
如果故障切除后,各发电机与参考机的相对功角差逐渐减小并趋于某个稳定值,说明系统是暂态稳定的。如果某个相对功角持续增大,超过某个临界值后不再回落,或者呈现等幅振荡甚至增幅振荡,那系统就是暂态失稳的。
除了功角曲线,还需要看母线电压恢复情况。故障期间,短路点附近的母线电压会大幅跌落,故障切除后电压应该逐步恢复。如果某些母线电压长期回不到额定值附近,说明可能存在无功不足或电压稳定问题。发电机的转速曲线也值得看,故障瞬间发电机转速会上升,切除故障后转速应逐步恢复到同步转速附近。
5. 实测中的故障排查:跑得起来但结果不对,问题通常出在哪
5.1 电压幅值始终不是额定值
我遇到过不少学生反馈:模型搭完后,潮流计算提示收敛,但观察母线电压却发现不是 1.0 标幺,而是 1.2、0.6 之类明显不合理的数据。
这个问题的根源,九成以上是发电机母线电压设定值没有正确填入。在潮流初始化界面里,平衡机要填电压幅值和相角,PV 节点机要填电压幅值设定值。如果你只填了有功功率、没有填机端电压,Powergui 会按默认值处理,结果自然不是你想要的工作点。
另外,变压器分接头位置也会影响电压分布。39 节点系统中,有些变压器带有抽头,变比不是标准的 1:1。如果漏填了分接头比例,发电机机端母线和高压母线之间的电压关系就会错位,导致部分母线电压偏高、部分偏低。
5.2 发电机相对功角不停上升,无法收敛
这是暂态稳定仿真中最经典的“失稳现象”。但要注意,仿真结果失稳并不一定代表系统出了问题,也可能是你的模型数据本身就不处于稳定运行范围。
如果你把故障切除时间设得太晚,比如三相短路持续了 0.5 秒才切除,绝大多数电力系统都会失稳。临界切除时间是衡量系统暂态稳定裕度的重要指标,需要通过多次仿真来寻找。比较合理的做法是:用 0.1 到 0.2 秒的故障切除时间做初步扫描,再逐步增加切除时间,观察系统从稳定到失稳的转折点。
还有一种情况:故障切除后,相对功角曲线呈等幅振荡,既不收敛也不发散。这通常是模型中阻尼太小甚至为零导致的。同步电机模块里有一个阻尼系数 D,如果你把它设成 0,机组就没有阻尼转矩,扰动后的振荡无法衰减。在真实系统中,转子阻尼绕组、励磁系统、调速器、负荷特性都会提供一定的阻尼。为了模拟更真实,可以给发电机设一个较小的阻尼系数,比如 1 到 3,或者通过 PSS 提供附加阻尼。
5.3 求解器设置导致的高频振荡和仿真崩溃
Simulink 的 Specialized Power Systems 对求解器类型非常敏感。常见的一个错误是:把求解器设置成固定步长,步长取得太大,导致电磁暂态结果严重失真,甚至出现数值振荡。
建议在仿真暂时态稳定过程时使用变步长求解器,比如 ode23tb 或 ode15s,最大步长不要超过 1e-3 秒。如果你关心的是故障瞬间的电磁暂态细节,比如短路电流的瞬时值,那可能需要更小的步长,比如 1e-5 秒甚至更小。但注意,太小的步长会让 39 节点系统的仿真时间大大延长,如果只关心机电暂态(功角、转速、功率变化),没有必要捕捉每一个高频细节,用 1e-4 秒级别的最大步长通常已经足够。
我在仿真中遇到过一种情况:故障切除后,电压波形上出现密集的高频毛刺,看起来像噪声,但幅值不小。后来发现是我把线路的对地电容设得过大,同时求解器的最大步长设得太大。对地电容与线路电感构成了一个高频谐振回路,步长过大时无法准确积分高频分量,于是数值上出现了振荡。解决方法是减小最大步长,或者检查线路电纳数据是否标幺换算错误。
5.4 模型越来越大,仿真越跑越慢怎么办
39 节点系统全三相模型加上 10 台详细同步电机模型后,计算量已经不低。如果再加入多台发电机的完整励磁系统、调速器、PSS,仿真速度会明显下降。
如果遇到仿真速度慢到无法忍受,可以从三个方面优化。
第一,调整模块模型复杂度。在不影响研究目标的前提下,把离故障点较远的发电机换成低阶模型。比如研究 33 号母线附近故障时,靠近故障点的机组用详细模型,远处的区域机组可以用经典二阶模型,这样能大幅减少状态变量数量。
第二,合理设置输出数据的采样率。Scope 模块如果按照过高的采样率记录数据,会产生大量数据点,拖慢仿真。可以对不关心的信号设置较粗的采样,或者只在需要时把数据记录到工作区。
第三,把长时间仿真分段处理。先用 Powergui 的潮流工具得到初始工作点,再把初始状态保存下来,之后的时域仿真不必每次都从零开始初始化。这样在扫描不同故障切除时间时,可以省去重复的初始化计算。
6. 做完一遍之后,这个模型还能怎么延伸
6.1 从三相短路到更多故障类型
如果你已经成功复现了三相短路暂态稳定过程,说明 Simulink 模型的基本链路已经通了。接下来最自然的延伸是换故障类型。
单相接地短路是实际电网中发生概率最高的故障类型,它的暂态过程和三相短路差异很大。因为单相接地时,故障点存在零序和负序分量,需要检查模型中的变压器接地方式是否正确。10 机 39 节点系统中,部分变压器中性点接地方式在不同版本的数据中有差异,做单相接地仿真前要仔细确认。
两相短路和两相接地短路也有各自的特点。不同的故障类型对暂态稳定性的破坏程度不同,三相短路对系统稳定性影响最大,但它不是最常发生的故障。你可以把多次仿真的结果放在一起对比,计算每种故障类型下的临界切除时间,这是论文里很常见的一组结果。
6.2 发电机控制参数优化
模型搭好后,还能做的一件很有价值的工作是研究 PSS 的参数整定。在没有 PSS 时,多机系统可能存在阻尼较弱的低频振荡模式。你可以在某几台关键发电机的励磁系统输入端加入 PSS 模块,通过特征值分析或者时域仿真来验证 PSS 对振荡的抑制效果。
Simulink 里有线性化分析工具,可以在 Powergui 里选择“Linear Analysis”工具,把模型在稳态工作点线性化,得到状态矩阵。然后计算特征值,找到与区间振荡模式对应的特征值,看它的实部是否为负、阻尼比是否足够。如果阻尼比过低,就可以用 PSS 的相位补偿环节来改善。
这一套做法做完后,你对“仿真”二字的理解会完全不一样。刚开始你可能只是照着数据表搭模型、跑波形,但当你开始用仿真结果反过来指导参数设计时,Simulink 就不再只是画图的工具,而是一个真正能帮你理解电力系统动态行为的实验平台。
从我个人的经验来看,10 机 39 节点系统在 Simulink 中跑通并不难,难的是把每个参数背后的物理意义搞清楚。在你动手搭模型之前,先把母线数据、发电机数据、支路数据逐条看一遍,弄明白每个参数是什么、单位是什么、标幺基准是什么,这比多拖几个模块有用得多。遇到仿真结果不符合预期,也不要急着怀疑软件出了问题,先从潮流初始化和数据换算开始排查,绝大多数情况下,问题都出在原始数据或参数设置上。