ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Simulink暂态稳定仿真:单机无穷大系统搭建与临界切除时间分析

Simulink暂态稳定仿真:单机无穷大系统搭建与临界切除时间分析 做电力系统仿真的人迟早都会碰到一个绕不开的课题暂态稳定仿真。我最早接触它是在研究生阶段做课题时导师直接扔过来一个任务用Simulink搭建单机无穷大系统复现电力系统暂态稳定性仿真的经典案例。当时我连同步发电机的d轴q轴都分不太清楚更别提什么等面积法则和摇摆方程。后来这个模型从我的毕业设计一直用到现场故障校验才发现它绝不只是教科书里的入门示例而是理解“电力系统为什么能稳住、又为什么会失稳”的最干净模型。这篇内容我尽量往实操里写适合刚接触电力系统仿真的学生、用Simulink做机电暂态仿真的初级工程师以及想快速搭一个测试床来验证控制算法的同学。我会从模型原理讲到Simulink里的具体模块从参数设置讲到故障注入和结果判读最后把我在项目里踩过的坑一起列出来照着搭能省下不少时间。1. 暂态稳定仿真为什么要从单机无穷大系统开始1.1 单机无穷大模型到底在描述什么单机无穷大系统缩写SMIB说穿了就是一台同步发电机经过变压器和输电线路接到一个容量无限大的电网母线上。这个母线的电压幅值和频率无论你送出多少功率都不变化近似于一个无穷大功率源。为什么先学这个而不是直接搭多机系统因为多机系统里机组之间会相互摇摆问题复杂度成倍增长连故障后谁先失稳都得靠模式分析来判断。而SMIB系统只有一台发电机它的功角、转速和功率之间的关系非常直白当转子受到的电磁功率Pe和输入的机械功率Pm不平衡时功角就会变化。暂态稳定关心的事情就是在大扰动最常见的是三相短路过后这台发电机能否重新回到一个可接受的稳态运行点。你可以把它理解成一辆自行车上坡骑车人腿力Pm恒定路面坡度Pe随着功角变化而变化遇到突发的侧风短路故障车子突然失去部分平衡力只有路面重新变缓、阻力足够大车子才能不冲到沟里去。1.2 摇摆方程与等面积法则要理解仿真结果绕不开转子运动方程。忽略阻尼时的简化形式是dδ/dt ω - ωsdω/dt (ωs / 2H) * (Pm - Pe)其中电磁功率Pe与功角δ的关系是Pe EV / X_s * sin(δ)X_s是发电机暂态电抗、变压器漏抗和线路电抗折算到同一基准后的总等效电抗。故障时电网结构改变X_s变大sin(δ)对应的Pe曲线会明显压下来在Pm大于Pe的情况下转子被加速功角持续增大。故障切除后X_s恢复Pe重新提高转子开始减速。这就是教科书里等面积法则的全部物理基础。很多初学者搞不懂等面积法则有什么用。我打个比方你助跑上一段高坡助跑距离越长你到坡脚的速度越大要想不冲出坡顶坡道需要足够长且足够陡。加速面积就是助跑段减速面积就是上坡段系统稳定与否就看减速面积能不能覆盖加速面积。这个几何判断直接决定了“最晚什么时间切除故障还能保住系统稳定”也就是后面要说的临界切除时间。1.3 为什么用Simulink而不是手写微分方程有人会觉得不就是两个微分方程加一个代数方程吗用ode45自己跑也行。确实能做但Simulink有实打实的优势发电机、变压器、线路、断路器、故障模块都是现成的电气网络的代数约束不需要你手动形成节点导纳矩阵仿真器本身用变步长处理开关事件你要做的只是搭块图、设参数、看波形。尤其是工程验证阶段需要反复修改故障位置、切除时间、线路参数Simulink图形化改参数的方式比改代码高效得多。而且Scope直接能看到波形配合MATLAB脚本做批量扫描也非常顺手。所以我的建议是先理解机理再用Simulink做载体不要本末倒置。2. Simulink搭建SMIB系统元件选型与参数设置我默认你用的是Simulink里Simscape Electrical的Specialized Power Systems库这个库在旧版本里叫SimPowerSystems2020版之后合并到了Simscape Electrical下面但模型结构和旧版差别不大照着旧教程也能找到。2.1 模型拓扑和元件清单一个最小可仿真的SMIB系统包括下面这些模块同步发电机Synchronous Machine pu Standard。我习惯选“pu Standard”而不是“pu Fundamental”因为它输出的机械量和电气量一应俱全功角、转速、电磁功率都能直接引出。原动机输入直接用常数模块给Pm0.8 puVf先用常数1.0 pu。第一版不建议加励磁调节器先把基本曲线跑通再慢慢增加复杂度。升压变压器Three-Phase Transformer Two Windings。双回输电线路每回用Three-Phase Series RLC Branch只考虑串联阻抗忽略并联导纳。这个要求不算苛刻对教学模型完全够用。无穷大母线Three-Phase Source电压230 kV频率50 Hz短路容量设得很大比如9999 MVA。故障注入Three-Phase Fault接在变压器高压出口母线上。三相接地短路是故障类型里最严酷的一种适合做暂态稳定考核。测量模块Three-Phase V-I Measurement放在机端以及线路入口用来引出电压电流信号。Powergui模块这个必须有没有它模型根本初始化不了后面会说。这里给初学者提个醒很多人直接把Scope接在发电机输出端发现看不到波形原因是同步机的电气输出要先经过测量模块变成信号Scope才好显示。同理没有Powergui整个电气网络的潮流求解就缺少统一求解器模型通常报错。2.2 标幺值参数实例下面给一组我经常用来做培训案例的参数基准容量统一为100 MVA元件参数数值发电机额定容量 / 额定电压100 MVA / 13.8 kV发电机Xd, Xd, Xd1.8 pu, 0.3 pu, 0.2 pu发电机Xq, Xq, Xq1.75 pu, 0.55 pu, 0.25 pu发电机惯性时间常数H3.2 s变压器容量 / 电压100 MVA / 13.8/230 kVX0.1 pu输电线路每回R / X0.01 j0.20 pu无穷大母线电压 / 频率 / 短路容量230 kV / 50 Hz / 9999 MVA双回输电线路并联后等效阻抗大约是0.005 j0.10 pu这就比单回线路强很多稳定裕度也大一些。参数在填入模块时要注意线路阻抗模块可以直接填pu值也可以用欧姆值但基准容量和基准电压必须和其余模型一致。我的经验是干脆统一用pu让Powergui在潮流计算时统一归算不容易犯错。2.3 发电机、励磁与调速器的处理教学简化模型里机械功率Pm设成常数0.8 pu就够。严格讲大扰动后调速器会动作但在第一次摇摆的1秒左右时间里调速器开度基本来不及变化所以在第一摆分析中常数假设是可接受的。励磁方面常数Vf1相当于强制励磁不调节是一种偏保守的处理。实际工程想要更可信的结果一般会加励磁系统尤其是快速励磁的强励效应能明显提高暂态稳定裕度。我后面做扩展时的做法很简单等基础模型跑稳之后再从库里的Excitation System模板拖一个励磁模块接到Vf端对比加与不加的第一摆峰值你会发现功角峰值小幅下降这就是强励的贡献。2.4 连接细节与常见报错电机输出端连接变压器时需要把发电机的中性点接地处理正确。同步机模块自带中性点如果机端是Y接线直接接地即可。变压器三角形/星形接法在对话框中配置高压侧星形中性点直接接地低压侧三角形接法无需接地。还有一个细节是三相电路必须形成参考地纯理想电压源和发电机之间如果少了Ground模块仿真器会提示浮地节点。我之前吃过这个亏花了一下午检查线路才发现是少了接地。原则很简单任何电气回路都要有明确的零电位参考。3. 故障注入与暂态过程复现3.1 Fault模块的时序设置Three-Phase Fault模块有外部控制开关和内部定时器两种触发方式我习惯用内部定时器简单可靠。双击模块进入参数对话框把Transition Time设成需要的时刻故障开始时间设1.0 s故障结束时间设1.1 s故障类型选三相接地Phase A/B/C都勾上接地故障电阻R_fault设为0.001 ohm近似金属性短路。这里有个点值得说把R_fault调成0.01甚至0.05 ohm故障电流略小对系统的冲击也弱这就是不同短路严重程度的自然对比。想做不同故障位置的影响可以把故障点从母线挪到线路中间但线路必须拆成两段中间再接入Fault模块还需要配合断路器做故障线路切除那已经属于进阶内容。第一版建议先做母线三相短路。3.2 仿真参数设置仿真时长我习惯设成5秒算法选ode23tb最大步长设为1e-3相对误差1e-4。为什么选ode23tb而不是ode45因为里面有开关事件发电机动态方程和电气网络耦合在一起属于刚性系统。ode45也能跑但遇到开关动作时步长会缩得很小仿真速度很慢。ode23tb是梯形加后向差分对这种带切换的线网方程收敛效果更好。最大步长限制在1e-3是为了让故障瞬间和切除瞬间被充分采样。如果完全不设最大步长变步长仿真可能会跳过开关事件的形状细节导致Scope上看到功角曲线有大的跳变毛刺。3.3 输出信号选择同步机模块的输出端口有很多信号关键看这几个量Rotor angle deviation度这是功角δ的暂态偏移值示波器上看到的就是我们关心的摇摆曲线。Speed deviationpu转速偏差稳定情况下应该逐渐衰减到0。Electrical powerpu电磁功率故障期间会骤降切除后迅速恢复。Terminal voltagepu机端电压用于观察电压跌落和恢复。如果要用MATLAB脚本做批量扫描建议用To Workspace模块把感兴趣的信号导出。具体做法是在信号线后面接To Workspace变量名改成delta、speed、Pe输出格式选Array with time。脚本里直接引用这些变量省去从Scope图形里取数的麻烦。3.4 典型结果读法一套参数合适时结果大概是这样的t1.0 s故障发生功角开始加速增大t1.1 s故障切除功角的增速突然放缓随后到达第一摆峰值并回落经过几次衰减振荡功角慢慢稳定到新的平衡点这就是暂态稳定。失稳时不一样功角一路向上翻过180度之后继续增大同时转速偏差始终维持在正值附近系统进入失步状态。Scope上最直观的判据就是“功角曲线回不回头”。需要提醒的是如果没有设置阻尼D0稳定系统会围绕平衡点做等幅振荡看起来像不稳定但实际并不是瞬间失稳。真实发电机都有阻尼绕组所以仿真里建议保留阻尼参数这样波形更接近现场数采记录到的衰减振荡。4. 临界切除时间稳定与失稳的分界线4.1 为什么临界切除时间这么重要在保护整定和分析计算里暂态稳定分析最终常要给出一个指标极限切除时间也就是Critical Clearing Time简称CCT。如果断路器切除故障太慢系统就失稳了。我在做线路保护定值校核时一个重要判断标准就是保护动作切除时间必须低于CCT并且还要留出足够的裕度。这是暂态稳定仿真最大的工程价值。4.2 扫描法求CCT求CCT的原理很简单以故障切除时间Tc为变量从短到长逐一仿真看哪个范围系统仍能保持稳定。Simulink里可以手动改Fault模块的结束时间然后点击运行但连续扫十几个点会非常浪费时间写一段MATLAB脚本更现实。我习惯把模型命名为SMIB把Fault模块名改成Fault然后脚本这样写tc_list 0.05:0.02:0.31; stable_flag zeros(size(tc_list)); max_delta zeros(size(tc_list)); for i 1:length(tc_list) tc tc_list(i); % 故障开始时间固定为1.0 s结束时间 1.0 tc set_param(SMIB/Fault, TransitionTimes, mat2str([1.0, 1.0tc])); simOut sim(SMIB, ReturnWorkspaceOutputs, on); t simOut.tout; speed simOut.speed; % 需要预先用To Workspace导出 delta simOut.delta; % 需要预先用To Workspace导出 max_delta(i) max(delta); % 判断失稳看切除后1秒之后转速偏差均值是否持续为正 idx find(t 1.0 tc 1.0, 1); if ~isempty(idx) mean(speed(idx:end)) 0.001 stable_flag(i) 0; else stable_flag(i) 1; end end stable_flag max_delta判断依据是稳定系统在后段转速最终回到0附近失稳系统转速一直保持正值。功角的最大值也可以辅助判断但如果功角已经持续越过分岔点最大值的意义就不大了。4.3 一组示例扫描结果我给一组在我这套参数下得到的典型结果绝对值取决于模型参数但变化规律是通用的切除时间Tc (s)最大功角 (deg)后段转速偏差均值 (pu)结果0.08980.000稳定0.121120.000稳定0.161340.000稳定0.201710.000临界附近0.24持续增大0.045失稳0.28持续增大0.102失稳从表里可以清楚看到Tc0.2 s时第一摆已经冲到171度非常接近不稳定平衡点再往后拖延系统直接失步。如果现场保护动作时间大约0.1 s那裕度相当充足如果保护动作时间接近0.2 s那就必须重新评估稳定风险。4.4 临界切除时间与等面积法则的对应把仿真结果和等面积法则对照着看是一件很有成就感的事。Tc增大故障持续的加速面积变大需要的减速面积也变大当减速面积覆盖不过来功角越过不稳定平衡点系统失去稳定。我建议扫描完以后单把Tc0.12 s和Tc0.24 s两条功角曲线放在同一张图里对比稳定与失稳的差异比任何文字都直观。5. 参数敏感性分析与向多机扩展5.1 系统电抗的影响把双回线路改成单回等效X变大电磁功率Pe曲线峰值下降相同切除时间下功角第一摆更高CCT明显变小。这个现象对应实际电力系统里的一句话电源距离负荷中心越远、网架越弱暂态稳定越困难。我在培训时经常让学员跳开其中一回线路再扫一遍CCT很多人跑完会说原来联系弱是这么个表现。5.2 发电机出力的影响Pm从0.7提高到0.9初始功角变大同一切除时间下第一摆峰值更高。高负荷下系统更接近稳定边界这就是为什么高峰负荷下的稳定裕度往往更低调度系统要留旋转备用的原因。你在仿真里把Pm改成0.95再跑一次立刻就能体会什么叫“接近稳定极限”。5.3 惯性常数与阻尼的作用H越大转子惯性越大同等扰动下角加速度越小稳定裕度越大。大机组的H常常有6到7秒而容量较小的机组H只有3秒左右受同样故障后功角变化更剧烈。阻尼D则主要决定振荡衰减的快慢对第一摆会不会越界影响不大。实际工程中PSS的一大目标就是给系统补充阻尼抑制低频振荡。5.4 多机系统怎么扩展单机无穷大是单台机器的孤军奋战实际电网里最常见的失稳场景其实是机组相对摇摆。你可以把无穷大母线替换成另一台发电机和负荷用Bus Selector分别读两台机的转速和功角观察相对功角delta1-delta2的变化。多机系统还需要关注惯量中心坐标、参与因子这些概念那已经超出SMIB的范畴但SMIB这个底座可以把基础逻辑练得非常扎实往上加东西不会乱。6. 我踩过的坑和留给你的建议6.1 模型里没有Powergui直接报错Specialized Power Systems库下的电气仿真几乎都必须有Powergui。我见过不少新手第一次跑就报错提示找不到Powergui block。放进Powergui之后还要记得在Powergui里做Load Flow有发电机的情况下它会自动把潮流解出来。否则发电机初始功角、励磁电压都是随机初值你看到的功角曲线从一开始就是错的像一条从半空中开始乱跳的蚯蚓。6.2 标幺基准不统一功角全线漂移我曾经有一次把发电机额定容量填成100 MW变压器却是100 MVA线路又按100 MVA基值设置结果机端电压看着正常但功角第一摆的峰值偏高得离谱。排查到最后才发现功率基准根本没对齐。这个问题的排错思路很简单统一容量基准统一电压基准所有阻抗都归算到同一基准上再让Powergui重新Load Flow。如果功角曲线还是怪优先怀疑参数归算。6.3 Fault模块的Transition Times写错Three-Phase Fault模块的Transition Times参数支持多段时间切换例如[[1.0,1.1],[1.2,1.3]]表示两次动作。如果只想做一个故障就只写[[1.0,1.1]]不要多加。曾经一次手滑写成了[1.0,1.1]这种行向量结果模块弹错后来改成1x2矩阵才正常。建议从单段故障开始所有曲线正常后再考虑重合闸逻辑。6.4 观察窗口太短导致误判有些人仿真只跑3秒看到第一摆峰值很高就喊失稳其实再往后一点功角已经回了头。暂态稳定的判据至少要覆盖故障后3到5秒第一摆只是刚刚开始后续振荡是否衰减同样重要。把Scope时间窗拉长到5秒稳定与失稳的差异一眼就能分辨。6.5 不要把无穷大母线做成理想电压源教科书说无穷大母线电压恒定但你要是真在Simulink里放一个内阻为0的理想电压源网络方程就会变得病态尤其故障期间大电流可能导致求解失败。正确做法是用Three-Phase Source短路容量设成9999 MVA内部阻抗很小但不为零既接近无穷大又数值稳定。这个细节在仿真大电流短路时特别重要。6.6 故障瞬间波形毛刺是物理现象别乱滤波同步机模块默认包含阻尼绕组和次暂态参数故障瞬间电气量快速变化Scope上看到尖峰毛刺属于正常现象这是次暂态电流分量的体现。如果想看得更清爽可以在Scope里打开Markers或用手动缩放但不要在输出侧随便加平均滤波器那会把振荡信息抹掉。我通常的做法是导出原始数据在MATLAB里用窗函数或均方根处理做后分析。最后再说一点个人体会。我第一次跑通这个模型时看到功角在故障切除后慢慢回落并稳定在50 Hz附近确实有种亲手验证了一个动态过程的满足感和书上学概念是完全不同的体验。如果你搭建过程中卡住我的建议是先不要追求参数精确用表格里这组参数把模型跑起来再把励磁、调速器、线路细分逐步加进去。模型是工具真正值钱的永远是它背后的暂态稳定物理逻辑那部分理解透了往后无论做配网小电源接入还是新能源场站送出你都能用同一套分析思路去拆解问题。
返回列表