
简介单机无穷大系统是电力系统暂态稳定分析中的经典简化模型这份资源面向电力系统专业学生、科研人员及MATLAB仿真学习者提供该模型的脚本化仿真实现。压缩包内仅含1个m文件大小约2KB对应完整MATLAB源码不依赖Simulink可直接运行并深入阅读算法细节。代码涵盖发电机动态建模、励磁控制器逻辑、系统运动方程、初始条件设置、数值积分步进及结果绘图等多个模块适合用于研究负荷突变、短路扰动等场景下的响应特性。资源已有263人学习小巧精悍特别适合希望从底层理解单机无穷大系统仿真流程并在此基础上扩展自定义控制策略的读者。通过研读和运行这份代码可直观掌握电力系统动态仿真的核心步骤为后续开展更复杂的多机系统分析打下基础。1. 单机无穷大系统仿真从暂态稳定问题到SMIG_2.m脚本落地无限大母线infinite bus这个词在电力系统教材里出现频率极高但真正把它做成可复现代码的公开资源并不多。单机无穷大模型把电网等值成电压幅值稳定、频率恒定、容量无穷大的理想节点研究焦点因此被压缩到发电机本体和它到母线之间的等值电抗上。无论是分析短路故障后的功角摇摆还是校验励磁控制器AVR、电力系统稳定器PSS的参数这个模型都比多机系统更干净、更易于定位问题是暂态稳定分析的入门标配。SMIG_2.rar 中的 SMIG_2.m 用纯 MATLAB 脚本而不是 Simulink实现了单机无穷大系统的完整仿真流程。脚本方式最大的好处在于每一行代码对应一个数学方程从同步电机电压方程到励磁控制、再到数值积分全程透明改参数、扫工况、做批量校核都很方便。适合电力系统分析与控制方向的学生做课程设计复现也适合工程师在保护整定和稳定性预研时做快速验证。2. 同步电机与无穷大母线建模SMIG_2.m的动态方程内核2.1 无穷大母线假设的边界在哪里单机无穷大系统仿真的第一个关键动作不是写代码而是确认模型假设能否成立。无穷大母线要求在研究的全部时间内满足三个条件母线电压幅值恒定、频率恒定相位以额定同步转速旋转、等效短路容量远大于所接发电机的容量。第三点意味着当这台发电机投切或发生扰动时不会对母线电压和频率造成可观测的影响。现实电网中如果研究对象的容量占系统总容量比例低于3%到5%并且选在强联系站点短路比SCR大于等于3这个假设通常可以被接受。在某些场景下这个假设会被滥用。比如分析次同步振荡SSR时发电机与串补线路之间的机电扭振相互作用已经不能用等值电抗描述无穷大母线模型会漏掉关键的谐振频段。再比如研究区域间低频振荡时关心的正是多台发电机通过有限容量电网相互牵制的行为此时把系统等值成无穷大母线等于直接删掉了要研究的问题。理解这个边界才能正确解释SMIG_2.m仿真结果的有效范围。2.2 派克变换后的电压与磁链方程同步电机的三相定子方程在静止abc坐标下是时变系数的微分方程组直接数值求解效率很低。派克变换把定子量投影到随转子旋转的dq0坐标之后电感矩阵变成恒定值这是所有同步电机数字仿真得以进行的前提。在dq0坐标下忽略定子磁链微分项即不计定子电磁暂态只保留基波分量电压方程和磁链方程可以写成如下形式% 电枢电压方程标幺值忽略定子暂态 % vd -rs*id xq*iq % vq -rs*iq - xd*id eqp % 其中 eqp 为 q 轴暂态电动势这里vd、vq是机端电压的dq轴分量id、iq是定子电流的dq轴分量rs是电枢电阻xd是d轴电抗在三阶模型中对应暂态电抗xq是q轴同步电抗eqp来自励磁绕组动态。省略定子磁链微分项相当于假设定子磁链能瞬时跟随转子运动变化这一近似把仿真步长从微秒级放宽到毫秒级同时依然能正确反映机电暂态的主要特征这也是绝大多数暂态稳定程序的做法。2.3 转子运动方程的标幺化与离散化发电机的转子运动方程通常称为摇摆方程swing equation是暂态稳定分析的核心。标幺化之后的形式是% d(delta)/dt omega_b * (omega - 1) % d(omega)/dt (1/(2*H)) * (Pm - Pe - D*(omega - 1))delta是功角转子q轴与无穷大母线电压相量之间的夹角omega是转子角速度的标幺值omega_b是额定电角速度50Hz系统对应100*pi rad/s约等于314.159 rad/sH是机组惯性时间常数单位秒Pm和Pe分别是机械功率和电磁功率的标幺值D是阻尼系数。第一个方程把角度变化与速度偏差联系起来第二个方程描述转子动能的变化率等于加速功率。一个常见的数值陷阱是阻尼系数D的量纲。在标幺值模型中D通常定义为额定转矩基准下单位速度偏差对应的阻尼转矩取值一般在1到5之间。但部分教材把D放在摇摆方程的另一个位置写作d(omega)/dt (Pm - Pe - D*omega)/(2H)两者含义完全不同代码直接照搬时很容易把阻尼作用放大或缩小一个数量级。看到仿真曲线上功角衰减过快或等幅振荡不止时第一反应应该是核对D的写法而不是去调积分步长。2.4 SMIG_2.m动态方程函数的代码骨架把上述方程组合起来SMIG_2.m中典型的动态模型函数可以写成function dx smib_dynamics(t, x, u, p) % 单机无穷大系统三阶动态模型 % 状态向量 x [delta; omega; Eqp] delta x(1); omega x(2); Eqp x(3); % 电气回路等值电抗发电机暂态电抗 外接电抗 XdS p.Xdp p.Xe; XqS p.Xq p.Xe; % 由网络代数方程解 dq 轴电流 Id (Eqp - p.Vb * cos(delta)) / XdS; Iq p.Vb * sin(delta) / XqS; % 电磁功率含凸极效应项 Pe Eqp * Iq (XqS - XdS) * Id * Iq; % 转子运动方程 d_delta p.omega_b * (omega - 1); d_omega (p.Pm - Pe - p.D * (omega - 1)) / (2 * p.H); % 励磁绕组暂态方程u.Efd 为励磁电动势由控制器决定 d_Eqp (u.Efd - Eqp - (p.Xd - p.Xdp) * Id) / p.Td0p; dx [d_delta; d_omega; d_Eqp]; end代码里的参数结构体p通常包含无穷大母线电压幅值Vb、外接电抗线路与变压器等值Xe、发电机d轴同步电抗Xd、d轴暂态电抗Xdp、q轴同步电抗Xq、惯性时间常数H、阻尼系数D、d轴开路暂态时间常数Td0p、额定角速度omega_b。这个三阶模型保留了励磁绕组动态因此可以自然接入励磁控制器和故障扰动分析这是SMIG_2.m能支持闭环控制仿真的基础。构造这段代码有两个关键点。第一Id、Iq的求解除派克变换外还引入了外接电抗Xe实际计算时需要注意基准容量必须与发电机额定容量一致。第二Pe表达式中的凸极项(XqS - XdS)IdIq在XdS与XqS相等时自动消失退化为Pe EqpVbsin(delta)/XdS的经典模型如果不需要考虑凸极效应直接令Xq等于Xdp既能少一个参数也能减少一个潜在的错误源。3. 励磁控制器与故障扰动注入SMIG_2.m中的闭环仿真实现3.1 励磁系统模型选择从恒定励磁到AVR比例控制三阶模型里的u.Efd是励磁电动势输入最简单的做法是让Efd恒定即发电机在故障期间保持恒定励磁此时电磁暂态模型退化为二阶经典模型可以用来研究失步的基本形态。但要贴近实际机组行为就必须加入励磁调节器AVR模型。常见的可控硅励磁方式可以简化为一阶惯性环节加限幅% 励磁系统一阶惯性模型 % d(Efd)/dt (Ka * (Vref - Vt Vpss) - Efd) / TaKa是励磁增益一般在100到400之间Ta是励磁机时间常数典型值为0.02到0.1秒Vt是机端电压幅值Vref是电压参考值Vpss是PSS附加信号。限幅环节把Efd约束在Efd_min和Efd_max之间这两个限幅值直接决定了故障后的强励能力是电压恢复过程的关键参数。工程上发电机强励顶值为2倍额定励磁电压左右如果仿真中电压迟迟不恢复先检查限幅上限是否设置过低。实际代码中励磁系统多以独立函数或控制器结构体的形式实现而不是混在主方程函数里。这样做的用意是后续要对比恒定励磁、AVR、AVR加PSS三种策略时只需要替换控制器回调函数不改动机电动态核心代码。3.2 故障场景注入短路与负荷突变的时间事件处理单机无穷大系统仿真最典型的扰动是机端附近的三相短路故障故障在t_sw时刻发生在t_cl时刻被切除。MATLAB脚本中故障导致网络参数变化是用时间事件切换实现的不需要把方程组重写一遍for step 1:Nt t_now (step - 1) * h; % 判断当前仿真时刻处于哪个阶段 if t_now t_sw Xe_on Xe_normal; elseif t_now t_cl Xe_on Xe_fault; % 故障期间母线电压被短路拉低 else Xe_on Xe_normal; % 故障切除后系统拓扑恢复 end % 更新网络参数并做一步积分 p.Xe Xe_on; x_next rk4_step(smib_dynamics, t_now, x_now, h, u_ctrl, p); x_now x_next; end故障期间外接电抗Xe_fault的取值是最容易出错的地方。如果是发电机机端三相短路等效地认为母线电压被拉低到接近零Xe_fault取一个很小的值如0.001标幺值就能模拟电气距离被短路旁路的效果如果是输电线路某点故障则要重新计算故障点到发电机之间的等值电抗。注意不能把Xe_fault直接设为0否则电磁功率表达式除零仿真直接发散。3.3 闭环控制器与主仿真循环的整合把励磁控制器和故障逻辑整合进主循环就得到了SMIG_2.m的整体结构。实际实现中每一步先根据当前机端电压Vt计算AVR输出的Efd再做一次RK4步进% 主仿真循环求解机端电压 - AVR - RK4 步进 for step 1:Nt t_now (step - 1) * h; % 网络参数切换故障/正常 p.Xe get_network_impedance(t_now, t_sw, t_cl, Xe_normal, Xe_fault); % 由当前状态求解 dq 轴电流和机端电压 XdS p.Xdp p.Xe; XqS p.Xq p.Xe; Id (x_now(3) - p.Vb * cos(x_now(1))) / XdS; Iq p.Vb * sin(x_now(1)) / XqS; % 机端电压幅值q 轴为实轴、d 轴为虚轴的相量表示 Vt sqrt((x_now(3) - p.Xdp * Id)^2 (p.Xq * Iq)^2); % AVR 比例控制加限幅 Efd max(Efd_min, min(Efd_max, Ka * (Vref - Vt))); u_ctrl.Efd Efd; x_next rk4_step(smib_dynamics, t_now, x_now, h, u_ctrl, p); x_now x_next; record(t_now, x_now, Vt, Efd); end值得注意饱和函数必须在RK4子步处理之外执行否则控制器输出在每个子步内被重复限幅尤其步长较大时会产生比实际励磁系统更多的非线性畸变。另一种做法是把限幅逻辑放进smib_dynamics内部但那样相当于在每个子步反复计算限幅语义不一致。建议在循环层调用saturate函数并保存未限幅的原始AVR输出方便后处理时区分是电压调节作用还是励磁限幅起了作用。3.4 扰动场景参数设置参考场景类型触发方式Xe_fault取值典型持续时间主要观察对象机端三相短路t_sw1.0st_cl1.15s0.001不能取05到15个周波功角第一摆峰值、是否失步线路中点短路手动切换等值电抗按分压关系计算由保护动作时间决定电压跌落深度与故障位置关系负荷突增修改Pm或母线负荷Xe不变持续整个仿真频率偏移和功角静态偏移励磁电压阶跃阶跃VrefXe不变0.5到2秒机端电压响应时间和超调量负荷突增场景需要留意在单机无穷大模型里负荷突变等价于发电机输出电功率变化因为无穷大母线本身不会发生功率不平衡典型实现会直接修改Pm或者修改外接电抗来改变发电机的输出功率效果是等价的。4. 数值积分与仿真参数整定从欧拉法到四阶龙格-库塔迭代实现4.1 稳态初始条件求解先找潮流解再启动动态仿真一个常见错误是直接把功角初值设为0或随意设定转速初值然后开始积分。单机无穷大系统的动态仿真要求从稳态运行点启动否则一开始就会产生一段人为的过渡过程污染故障后的响应波形。标准做法是先指定发电机出口的有功功率Pg0和无功功率Qg0或功率因数反解出初始功角delta0、暂态电动势Eqp0和励磁电动势Efd0。对三阶模型典型实现如下% 由 Pg0、Qg0 求初始功角和电动势 % 假设机端电压 Vt0 给定电流相量 I0 conj(S0 / Vt0) S0 Pg0 1j * Qg0; I0 conj(S0 / Vt0); Ep Vt0 1j * p.Xdp * I0; % 暂态电动势相量 delta0 angle(Ep); Eqp0 abs(Ep); % 稳态励磁电动势令 d_Eqp/dt 0 反推 Id0 real(I0 * exp(1j * (pi/2 - delta0))); % d 轴电流相位参考与派克变换一致 Efd0 Eqp0 (p.Xd - p.Xdp) * Id0;这里的Id0应通过派克反变换从相量电流中取得不同教材的dq变换矩阵相差90度相位导致Id、Iq的符号和大小不一致这是跨教材复现代码时最容易出问题的地方。解决办法以代码里采用的派克变换矩阵为准把稳态公式重新推导一遍不要直接照抄其他文献里的Id0公式。初始转角错了后续功角曲线的绝对值会整体偏移但相对变化趋势可能看起来正常这类错误很隐蔽。4.2 四阶龙格-库塔法的MATLAB实现与步长选择SMIG_2.m的时间推进部分常见选择是定步长四阶龙格-库塔法RK4在步长1到10毫秒范围内精度足够实现简单、易调试。单步函数如下function x_next rk4_step(fun, t, x, h, u, p) % 单步四阶龙格-库塔积分 k1 fun(t, x, u, p); k2 fun(t h/2, x h/2*k1, u, p); k3 fun(t h/2, x h/2*k2, u, p); k4 fun(t h, x h*k3, u, p); x_next x h * (k1 2*k2 2*k3 k4) / 6; endu是这一步起点处的控制量如Efd。RK4的局部截断误差为O(h^5)、总体误差O(h^4)对机电暂态的0.1到10Hz频段5毫秒步长可以把数值阻尼控制在很小范围。如果用隐式欧拉或改进欧拉法同样步长下数值阻尼会明显偏大功角曲线看起来“更平稳”但这是一种假象不要据此得出系统阻尼良好的结论。4.3 积分方法与步长对比积分方法推荐步长上限适用场景主要误差来源显式欧拉0.5ms教学演示、理解欧拉思想数值阻尼过大改进欧拉预测-校正1到2ms教材二阶精度示范中等步长下相位误差明显四阶RK45到10msSMIG_2.m默认选择步长过大时励磁动态失真ode45自适应不固定快速试算、单次验证时间事件处可能跨步若改用MATLAB内置ode45虽然能自适应步长但必须在t_sw和t_cl两个时间事件上用Events选项精确中断否则积分器会跨过故障切点结果依赖求解器容差设置。这个问题在手写RK4循环中不存在因为时间事件显式放在循环层判断。4.4 标幺值基准统一与参数换算SMIG_2.m中还有一个容易被忽视的细节标幺值基准的选取。发电机的容量和电压额定值来自铭牌但线路、变压器电抗往往来自不同基准下的计算书。所有电抗数值在进入仿真前必须归算到同一个基准容量% 线路电抗从 100MVA 基准换算到发电机 250MVA 基准 X_line_100 0.12; % 以100MVA为基准的标幺值 S_base_gen 250; % 发电机基准容量 MVA S_base_line 100; % 原线路基准容量 MVA X_line_gen X_line_100 * (S_base_gen / S_base_line); % 结果为 0.12 * 250 / 100 0.3 pu换算关系是标幺值电抗与基准容量成正比。如果发电机容量600MW而线路电抗以100MVA基准给出直接相加会导致等值电抗偏小、电磁功率偏大、故障时的加速面积被低估最终CCT偏乐观。最稳妥的做法是在参数结构体p中统一记录基准容量S_base每个电抗、时间常数都显式注明所属基准。5. 从波形到决策极限切除时间计算与稳定裕度验证5.1 用等面积法则快速判读第一摆稳定性拿到SMIG_2.m输出的功角曲线后第一步不是看整段曲线是否收敛而是看第一摆的走向。故障期间发电机加速、功角上升切除后电磁功率跃升如果切除时刻对应的角度小于临界切除角转子有足够的减速面积吸收加速能量第一摆稳定之后功角在阻尼作用下衰减到新的平衡点。数值仿真中可以直接看功角峰值是否超过约120度同时观察转速曲线是否越过同步速之后回落。功角和转速两者同时满足条件基本可以判定第一摆稳定。但也不要忽视电压曲线如果故障切除后机端电压长期低于0.75pu说明励磁系统强励能力不足或外电抗偏大即使功角稳住了电压稳定性和恢复时间也值得怀疑。5.2 极限切除时间CCT的二分搜索实现故障切除时间t_cl越大加速时间越长临界失稳的切除时间就是极限切除时间CCT。这是衡量保护方案和运行方式的重要指标。二分法实现如下% 二分法搜索极限切除时间 CCT t_low 0.05; % 下限肯定稳定 t_high 0.30; % 上限肯定失稳 max_iter 20; tol 0.001; % 精度 0.001 秒 for k 1:max_iter t_mid (t_low t_high) / 2; stable run_smib_simulation(t_sw, t_mid); % 返回当前切除时间下是否稳定 if stable t_low t_mid; else t_high t_mid; end if (t_high - t_low) tol break; end end CCT (t_low t_high) / 2; fprintf(CCT %.4f s\n, CCT);run_smib_simulation里判断“稳定”的标准一般是双判据10秒后功角仍有界如未超180度并且转速偏差包络衰减到某一阈值如小于0.001 pu。注意单纯凭功角不超过180度来判定失稳有争议实际工程中会同时校验转速和电磁功率趋势两个判据同时满足才认为稳定。5.3 批量工况扫描把脚本封装成可复用函数从单次仿真走向批量校核时需要把SMIG_2.m的主流程封装成函数输入t_sw、t_cl、参数结构体p输出稳定状态、最大功角、最低电压等核心指标。随后可以对惯性常数H、阻尼D、励磁增益Ka做二维扫描绘制等值线图直接观察稳定域边界随参数的变化规律。一个更实用的做法是把CCT二分搜索嵌套进参数扫描输出“CCT随外电抗Xe变化”或“CCT随惯性常数H变化”的曲线。这类结果直接对应运行方式部门的决策需求某台机组检修退出后系统等值电抗增大多少CCT还能留多少余量现有保护能否在极限时间内切除故障。整个扫描流程在MATLAB中运行时间通常在秒级到分钟级比Simulink反复起停模型高效得多这正是SMIG_2.m这类脚本资源在实际工作中的价值所在。本文还有配套的精品资源点击获取