
在电力系统稳定性的研究里SVC静止无功补偿器和PSS电力系统稳定器这对组合出现的频率实在太高了。不管你是做本科毕业设计还是研究生课题需要发小论文甚至工程师做并网方案评估只要涉及暂态稳定性基本绕不开这两个装置。我这两年用Matlab/Simulink搭过不少这类仿真模型最大的感受是模型能跑起来不难但要把“什么时候起作用、为什么能改善稳定、参数怎么配合”讲清楚才算把项目做到位。这篇文章就围绕“基于SVC和PSS的电力系统暂态稳定性研究”这个题目把我从建模、仿真到写Word报告的全过程经验和踩过的坑一起整理出来供正在做类似项目的朋友参考。1. 项目整体设计与思路拆解1.1 SVC和PSS到底在解决什么问题电力系统暂态稳定性核心是看系统遭受短路、断线这类大扰动之后发电机转子之间还能不能继续保持同步。功角稳不住系统就会失步后面跟着的就是大面积停电。但导致失步的原因通常不是单一的可能是电压支撑不够也可能是阻尼不足。这两类问题恰好对应SVC和PSS各自的长处。SVC本质上是并联在母线上的无功补偿装置通过晶闸管控制电抗器和电容器组连续调节系统的无功功率把母线电压稳定在参考值附近。故障期间电压跌落SVC快速注入容性无功把电压顶住电压过高时它又能吸收无功防止过电压。所以SVC对暂态稳定性的贡献主要是通过电压支撑来提高功率传输能力相当于把“路”扩宽了。PSS则走的是另一条路径。它不是一个独立的物理设备而是附加在励磁调节器里的一个控制回路。它把转速偏差或功率偏差作为输入经过整形后再叠加到励磁电压参考值上目的是产生一个与转子振荡方向相反的阻尼转矩。高放大倍数的自动电压调节器AVR响应快但容易引入负阻尼让低频振荡不易衰减。PSS就是来治这个病的。1.2 为什么把两个装置放在同一套系统里研究单独研究SVC或单独研究PSS都不难难的是看它们怎么配合。PSS只能改变励磁电压没法直接给系统补充无功SVC虽然能快速稳住电压但对功角振荡的阻尼作用有限而且如果SVC的电压调节器参数不合适还可能和发电机励磁系统产生动态交互反而削弱阻尼。所以最合理的做法是把两个装置放在同一个单机无穷大系统中设置“无控制、仅PSS、仅SVC、PSS加SVC”四组对照分别跑同样的故障场景。这样既能单独评估各自的贡献又能看出两者同时投入时是否存在相互增强或相互抵消的效应。做这个项目时我特别建议先把这个拆解的思路写进报告因为很多评审老师都会追问“你到底怎么证明PSS和SVC都有作用”或“两者叠加为什么比单独加一个效果好”对照组合就是最直接的证据。1.3 单机无穷大系统为什么是这类仿真的默认选择研究暂态稳定可以在多机系统里做也可以从单机无穷大系统SMIB开始。多机系统更贴近实际电网但涉及多个发电机之间的功角相对摆动振荡模态很复杂你很难分辨某一段波形改善到底是哪个控制器起的作用。单机无穷大系统则把这些干扰因素降到最低无穷大母线相当于一个电压恒定、频率恒定、惯性无穷大的“锚点”发电机送到系统的有功功率可以直接写成功角的函数物理图像非常清楚。我在这个项目里选单机无穷大系统还有另一个考虑Matlab/Simulink中同步电机、励磁系统、SVC和PSS的仿真模型在这个规模下既能保留关键动态又不会因为网络节点太多导致仿真速度慢或数值收敛困难。如果想在论文里进一步扩展后续把单机模型替换成多机系统控制器的结构和参数基本可以平移过去只是需要重新做潮流计算和参数协调。所以单机无穷大不是偷懒而是把研究重心放在控制机理上的正确选择。1.4 整体方案与报告规划整个项目我按下面这条线推进先搭建带励磁系统的单机无穷大模型跑一个不加任何附加控制的基准故障案例确认模型和故障切除时间都正常然后分别接入SVC和PSS独立调试参数最后把两个控制器同时投入在相同故障条件下做对比。这样做的好处是每个环节出现异常都能快速定位。Word报告的结构我建议直接和这个研究过程对应绪论和文献综述只占很小篇幅重点在第三章模型建立、第四章仿真结果对比、第五章结论。仿真中每一张波形图都要配一个简短的量化分析列出“故障切除后第几摆动角到达峰值”“电压恢复到0.9pu需要多少秒”“振荡衰减到5%以内需要多少秒”这类数字。评审老师最反感的就是贴一堆图却不解释这部分我会在第3章里给出具体做法。2. 核心细节解析与实操要点2.1 仿真的是“机电暂态”而不是“电磁暂态”很多人一打开Simulink就习惯找三相短路、同步电机这类模块却忽略了仿真模式的选择结果模型跑得极慢或者根本跑不动。这里必须先分清楚暂态稳定研究关注的是发电机转子运动、励磁调节、SVC和PSS控制这些秒级到几十秒级的机电动态不是关注电压电流瞬时值在每个工频周期的畸变。Simscape Electrical里的Powergui提供了两种典型工作模式。一种是详细电磁暂态模型discrete步长往往要取到50微秒左右能精确反映晶闸管开关、变压器饱和、谐波这些细节另一种是相量模式phasor把网络简化为工频相量重点保留机电暂态的时间尺度。对基于SVC和PSS的稳定性研究来说相量模式完全够用仿真速度能快一个数量级。如果你需要研究SVC内部晶闸管触发和实际阀组动态那再回到电磁暂态模型单独验证某一个局部现象。我给一个可落地的组合系统级稳定性结论用相量模式跑SVC阀组特性和PSS输出波形用选定的那组参数在电磁暂态模型里复现一遍。两种模式结果趋势一致报告里就可以说“本文采用相量法进行暂态稳定分析并通过详细模型验证关键工况”。2.2 发电机和励磁系统参数怎么定单机无穷大系统里发电机的参数决定了功角摆开的幅度和振荡频率所以不能随便填。我常用的机组参数如下基于标幺值系统额定容量200MVA、线电压13.8kV、频率50Hzd轴同步电抗Xd1.8pu、瞬变电抗Xd0.3pu、超瞬变电抗Xd0.2puq轴同步电抗Xq1.7pu、瞬变电抗Xq0.45pud轴瞬变开路时间常数Td06.0sq轴瞬变开路时间常数Tq00.6s惯性常数H3.5s。这套数据接近一台典型汽轮发电机用于机理分析很合适。励磁系统我用简化的一阶AVR模型增益Ka200励磁时间常数Ta0.02s励磁电压限幅设为正负5pu。这里要特别提醒高增益AVR能快速把机端电压拉回设定值但在大扰动后的振荡过程中很容易产生负阻尼这也是为什么后面必须引入PSS。在Simulink里搭好模型后第一步不是直接仿真而是用Powergui里的Machine Initialization或Load Flow工具计算初始稳态把发电机的初始功角、励磁电压、机械功率全部设成潮流解。否则模型一开始就处于非平衡点故障还没加波形已经乱飞了。2.3 SVC和PSS的数学模型怎么选SVC在Simulink里有现成模块也可以根据它的外特性自己搭。从数学上看SVC相当于一个可控电纳输出无功可以近似写成QB_SVC乘以电压平方。控制器测量母线电压经过一阶测量环节时间常数通常取0.005s左右与参考电压比较偏差进入PI调节器输出到SVC的等效电纳参考值再通过触发延迟送到实际的TCR或TSC阀组。自己搭模型时要注意斜率补偿也就是SVC的电压-电流特性不能太硬通常取2%到5%。斜率太大会让电压偏差过大太小又容易引起控制振荡。我比较推荐的初始值是参考电压1.0pu测量时间常数Tm0.005sPI参数Kp0.5、Ki20斜率2%容性无功限幅0.5pu感性无功限幅-0.3pu。这个参数组合在大多数单机无穷大系统里都能稳定工作再根据具体模型的响应微调。PSS模型我建议按IEEE PSS1A结构来搭它由隔直环节washout、两个超前滞后环节、增益和输出限幅组成。隔直时间常数Tw一般取1到10s作用是把稳态时不变的转速偏差滤掉只保留动态分量超前滞后环节用来补偿励磁系统在振荡频率附近的相位滞后增益Kstab决定阻尼强度输出限幅通常设为正负0.1到0.2pu防止PSS输出把励磁电压推到极限。这里有个非常重要的原理PSS不是简单地放大转速偏差就行。励磁系统本身有惯性在转子振荡频率通常0.5到1.5Hz下会产生几十度的相位滞后。如果不做相位补偿转速信号经过励磁系统之后可能反而产生负阻尼这个我在第4章会详细讲排查过程。2.4 故障设置与稳定性评判标准故障设置直接决定研究结论有没有意义。最经典的暂态稳定故障是三相短路接地而且通常设置在升压变压器高压母线或输电线路首端这是对系统冲击最大的位置之一。我用Three-Phase Fault模块把Transition times设成[1 1.1]意思是在1.0s时刻发生三相短路1.1s时刻由保护动作切除故障。仿真总时长取10s足够观察两到三个振荡周期。稳定性的评判不能只看“最后散没散”。我通常同时看三个指标功角摇摆曲线是否收敛、振荡是否衰减、母线电压恢复速度。如果功角在故障切除后持续增大并超过180°说明第一摆就失步了如果功角收敛但振荡衰减很慢说明阻尼不足这正是PSS发挥作用的空间。电压方面关注故障切除后机端电压和SVC安装点电压能否在2到3秒内恢复到0.9pu以上。还有一个实用指标是临界切除时间CCT也就是系统能保持稳定所允许的最长故障持续时间。做法是把故障持续时间从0.1s开始逐步增加每次增加0.05s找到功角刚好失步的临界值。SVC对CCT有正面作用因为它通过无功支撑抬高了故障期间的电压相当于增大了发电机的同步功率PSS对第一摆稳定的贡献有限但对后续摆的阻尼作用不可替代。这两句话写进报告里能体现你对机理的理解。3. 实操过程与核心环节实现3.1 第一步搭好基准单机无穷大模型在Matlab/Simulink里搭建时我建议用Simscape Electrical里的Specialized Power Systems库路径通常是Simscape Electrical Specialized Power Systems Fundamental Blocks。需要拖入的模块包括Synchronous Machinepu、Simplified Excitation System、Three-Phase Transformer、Three-Phase PI Section Line、Three-Phase Source、Three-Phase Fault、Three-Phase V-I Measurement、Powergui、To Workspace。变压器参数设置为200MVA13.8/230kV漏抗0.1pu输电线路用双回线每回100km正序阻抗折算到100MVA基准下大约是0.02j0.4pu无穷大电源设为230kV频率50Hz短路容量可以选默认的较大值让它更接近理想无穷大母线。发电机的机械功率输入要通过潮流计算得到一般让发电机输出有功在0.9pu左右这样故障后功角摆动的裕度比较合适。连接顺序是发电机母线接励磁系统和机械功率模块然后通过升压变压器接到高压母线高压母线上挂双回输电线路线路末端接无穷大电源。把故障模块放在高压母线出口附近同时把电压测量放在机端母线和高压母线方便后面对比SVC装在不同位置的效果。Powergui选择Phasor模式先运行一次Load Flow确认发电机出力、母线电压、功角都合理然后再跑带故障的暂态仿真。基准模型跑通的标准是不施加任何附加控制时1.0s短路、1.1s切除后功角曲线要么收敛到一个稳定值要么以一个较小的幅度持续摆动这时候你才有一个可信的“无控制”参照对象。如果基准模型就不稳定先不要急着加SVC和PSS把故障时序和初始潮流调对再说。3.2 第二步加入SVC模型并确定接入点SVC的接入点影响很大。如果装在发电机机端它能帮助维持发电机出口电压但离线路故障点太近故障瞬间电压跌到很低SVC可能因为电压过低而无法输出足够无功如果装在无穷大母线附近它对送端电压支撑作用又不明显。单机无穷大系统里我通常把SVC装在升压变压器高压母线也就是输电线路的送端这样既能支撑高压侧电压又直接改善输电通道的无功平衡。使用Simscape自带的SVC模块时可以在参数面板里直接设置额定无功容量、控制方式、PI参数和斜率。如果自己搭受控无功源参考模型结构如下母线测量电压经过一阶惯性环节得到Ut_filt与Vref做差误差送入PI调节器输出等效电纳参考值Bsvc_ref经过限幅后与电压平方相乘得到无功功率指令再注入系统。为了避免代数环测量环节的时间常数不能设成0而且无功注入最好通过受控电流源实现让Simulink求解器有明确的因果路径。SVC参数我给一组经过多次试验的起始值额定容量正负100Mvar参考电压1.0pu测量时间常数0.005sKp0.5Ki20斜率2%容性限幅0.5pu感性限幅-0.3pu。仿真时重点看两个波形SVC输出无功Qsvc和安装点电压Ut。正常情况下故障发生瞬间电压跌落Qsvc应该快速跳到容性限幅附近故障切除电压回升后Qsvc逐渐回落到稳态值。如果Qsvc在稳态时反复振荡说明PI积分系数偏大适当减小Ki。3.3 第三步搭建PSS模型并接入励磁系统PSS的接入点在AVR的参考电压处也就是把PSS输出作为一个附加信号叠加到电压偏差上。输入信号我选用转速偏差Δω即发电机实际转速减去额定转速。Simulink里可以直接从同步电机的输出端口获取转速经过一个减法器得到偏差。我自己搭的PSS1A结构顺序是转速偏差→隔直环节(Tw5s)→第一级超前滞后(T10.06sT20.02s)→第二级超前滞后(T30.12sT40.02s)→增益Kstab10→输出限幅正负0.12pu→接到AVR求和点。这个相位补偿参数是按励磁系统在1Hz附近滞后约40度来配的两级超前环节能提供大约60到70度的超前角把总相位滞后压到很小的范围。调试PSS时一定要从增益和限幅两方面一起看。如果把Kstab直接设成50又关掉限幅你会发现功角振荡可能比不加PSS时还剧烈这是因为过大的PSS输出导致励磁电压频繁碰到限幅控制效果变成非线性。正确做法是先把Kstab从3到5开始逐渐提高每次提高后观察功角曲线直到振荡衰减明显改善并且PSS输出没有持续饱和为止。我这里最终用Kstab10对多数工况足够而且输出限幅基本只在故障后第一摆动时短暂触及。3.4 第四步设置四组对照并批量运行仿真这个项目最出效果的部分就是四组对照。我建四个模型副本或者用一个模型通过开关切换控制器的投入状态分别命名为Case1到Case4。Case1是基准无控制Case2只投入PSSCase3只投入SVCCase4同时投入PSS和SVC。所有情况都用同一个故障时序1.0s三相短路1.1s切除仿真时长10s。求解器设置上我建议如果用的是相量模式连续系统选ode23tb相对容差设1e-3最大步长设0.01s精度和速度比较均衡。如果模型有自带的离散开关器件则需要在Powergui里设固定步长典型值50微秒。跑完四个Case后把四个模型的功角、转速、机端电压数据分别存成To Workspace变量方便用脚本统一绘图。还有一个容易忽略的地方每次修改控制器参数后必须重新运行Load Flow或者确认模型初始状态没有发生变化。PSS和SVC投入后稳态运行点应该和Case1保持一致否则对比不同Case时初始功角都不一样结论就没有说服力了。我在项目里会检查Case4的初始功角和Case1完全一致再开始故障仿真。3.5 第五步导出波形并整理成Word图表波形绘图不要直接截图而是用MATLAB脚本统一画。我习惯把四个Case的数据叠加在一张图上用不同线型和颜色区分坐标轴字号统一设成11磅图例标明Case名称。下面给出一个参考脚本框架load simout_case1.mat; t1 delta1.time; d1 delta1.signals.values; load simout_case2.mat; t2 delta2.time; d2 delta2.signals.values; load simout_case3.mat; t3 delta3.time; d3 delta3.signals.values; load simout_case4.mat; t4 delta4.time; d4 delta4.signals.values; figure; plot(t1, d1, b-, LineWidth, 1.2); hold on; plot(t2, d2, r--, LineWidth, 1.2); plot(t3, d3, k-., LineWidth, 1.2); plot(t4, d4, g:, LineWidth, 1.5); xlabel(时间 (s)); ylabel(功角 (deg)); legend(无控制,仅PSS,仅SVC,PSSSVC,Location,best); grid on; set(gca,FontSize,11); exportgraphics(gcf,comparison_delta.emf,Resolution,300);在Word里插入图表时我已经踩过很多次坑。最稳的做法是导出EMF或WMF矢量图格式清晰度不会随缩放下降如果只能用PNG必须设置分辨率为300dpi以上插入后不要手动拉变形。每个图都要有编号和标题比如“图4-2 四组工况下发电机功角响应对比”并在正文中用两三句话指出关键差异Case2相比Case1振荡衰减更快Case3相比Case1电压恢复更快Case4兼顾两者。表格方面我强烈建议用Word自带的三线表格式。把每组的暂态指标填成一张表包括功角第一摆峰值、到达峰值时间、电压恢复到0.9pu所需的恢复时间、振荡衰减到5%所需时间等。这样的表格比任何大段文字都直观评审老师扫一眼就能看到综合效果。4. 常见问题与排查技巧实录4.1 仿真发散、功角直接飞掉很多朋友第一次跑仿真就遇到波形直接发散功角冲到几百度画面一片乱。这种情况90%不是控制器参数的问题而是初始潮流不对。同步电机模型里填了电抗和时间常数之后如果没有用Powergui做Machine Initialization发电机的初始转速、励磁电压、机械功率和实际潮流解不一致仿真一开始就在瞬态调整中故障再叠加进去自然就崩了。解决办法是每次改完模型后先做Load Flow让功率向导自动算出初始条件再把机械功率和励磁参考电压设成潮流结果。另外检查求解器如果模型是连续相量模式用ode23tb或ode15s这类适合刚性的求解器相对容差不要低于1e-3。如果用了离散电磁模型固定步长要足够小故障瞬间的大电流变化会让仿真在50微秒步长下才能稳定收敛。4.2 PSS加了以后反而越调越振这是最容易让人沮丧的现象。本来想靠PSS增加阻尼结果加上之后功角振荡幅度变大甚至发散。问题几乎都出在相位补偿不匹配。PSS的输出信号要经过励磁系统才能形成阻尼转矩中间会有相位滞后而你设置的超前滞后环节没有补够导致附加励磁实际产生的是负阻尼。排查步骤我建议这样做先把振荡频率读出来从功角曲线上看周期比如周期0.8s对应频率1.25Hz然后在Matlab里对励磁系统模型做小信号分析或Bode图看在1.25Hz处相位滞后是多少度最后调整PSS的超前滞后时间常数使PSS在该频率附近提供大致对应的超前角。实际操作中如果出现越调越振先把Kstab降到2以下确认方向再逐步增加超前环节的T1和T3减小T2和T4。我最终的参数T10.06s、T20.02s、T30.12s、T40.02s就是在这个流程下试出来的。4.3 SVC无功到顶、电压恢复不动如果故障切除后SVC输出无功长时间顶在容性限幅但母线电压还是只有0.7pu左右首先要怀疑SVC容量不够。这个现象在系统重负荷或故障点离SVC太远时尤其明显。一种临时检查方法是在波形中看Qsvc是否持续贴着限幅线如果在5秒内都贴着上限说明SVC设计容量偏小可以适当把容性限幅从0.5pu提高到0.7pu再试。另一种可能原因是斜率设置过大。SVC的斜率补偿本质上是为了给多台SVC之间分配无功设置的下垂特性但斜率太大会放大稳态电压偏差。故障后的动态阶段电压偏差大SVC却因为斜率限制而没有全力输出无功。我通常把斜率控制在2%左右既能保证动态响应又不会影响稳态电压精度。如果报告里讨论的是SVC近端母线电压斜率2%得到的结果说服力比较强。4.4 故障时序不对导致波形错位Three-Phase Fault模块看起来很简单但Transition times很容易设反。如果设成了[1.1 1]故障从1.1s开始到1s结束波形就完全错位。另一个常见问题是故障模块的接地阻抗填了0三相直接短路到地故障电流特别大数值上容易出现尖峰。我在实际项目中会把故障接地阻抗设为很小的非零值比如0.001欧姆让数值计算相对平滑同时仍然代表近端三相短路。还有一点容易被忽略故障切除时间要写在保护动作时间的基础上。0.1s的故障持续时间对应的是主保护快速动作这个参数对结论影响很大。如果要做临界切除时间扫描从0.1s、0.15s、0.2s逐步增加到失步每个故障时长都要重新跑一次不能只改一个参数就认为所有Case等效。4.5 导出图片和表格排版问题Word报告里最影响观感的是波形图质量。直接从Simulink Scope截图放大后会模糊坐标轴刻度也可能显示不全。我后来统一做法是Scope里的数据勾选“Save to Workspace”然后在MATLAB中用exportgraphics导出格式选EMF或PNG分辨率300dpi以上。导出前把Figure窗口背景改成白色坐标轴范围调成一致这样四张图对比时才不会被“坐标范围不一致”误导。表格方面我建议每个仿真参数表都标注基准容量和单位。比如“线路阻抗基于100MVA”“SVC容性限幅pu”如果不写基准不同的人看到数值会误以为是欧姆或安培结论就无法复现。Word中的表格全部用三线表样式表头加粗标题放在表上方图和表编号分开编号这些细节是评审老师判断你是否认真做过仿真研究的重要信号。4.6 问题速查表把上面这些经验集中成一张速查表方便你调试时快速定位常见现象可能原因解决思路仿真一开始就发散初始潮流未正确初始化用Powergui的Load Flow和Machine Initialization设置初始条件功角长期等幅振荡衰减很慢系统阻尼不足励磁系统负阻尼投入PSS并调整Kstab和相位补偿参数加PSS后振荡反而加剧超前滞后相位补偿不匹配降低增益按振荡频率做Bode图分析相位重新整定PSS时间常数SVC输出一直顶在限幅SVC容量不足或限幅设置偏小增大容性限幅检查安装点母线故障期间电压跌落程度母线电压稳态偏差偏大SVC斜率参数过大将斜率降到2%左右观察电压恢复过程故障时间与预期不符Fault模块Transition times设置错误按[故障时刻 切除时刻]顺序设置检查接地阻抗Word插图模糊导出分辨率过低用exportgraphics导出300dpi以上PNG或使用EMF矢量格式5. 写在最后项目做完后我的一些体会这个项目做完我最想说的一点是不要着急把SVC和PSS同时扔进模型里跑。先花时间把基准单机无穷大系统调到每一个细节都可信再单独加PSS、单独加SVC最后才做联合仿真。联合仿真效果好当然是好事但你要能说清楚效果来自哪里否则一旦波形异常根因排查会非常痛苦。我个人调试时的顺序是先加PSS因为它的输出是叠加在励磁电压上的直接改善阻尼波形上最容易看出变化再加SVC看电压支撑和功角第一摆的改善最后联调时如果发现两种控制之间有轻微交互优先保证PSS的阻尼作用不被破坏因为暂态稳定研究里失步风险的优先级要高于电压恢复速度。另外报告中每一个量化指标都要能合理解释来源。阻尼比可以从功角曲线的对数衰减估算电压恢复时间可以从波形量测点读取不要只给一张图说“明显改善”。仿真研究最大的价值不是图片多而是每一张图背后都有一条清晰的因果链故障造成什么影响控制器通过什么通道改变了什么变量最后波形上发生了什么变化。把这个链条写清楚Matlab模型只是工具Word报告才能真正体现你的理解深度。