
三相短路是电力系统中最严重、也最常被拿来“练手”的故障形式。电气专业的学生做课程设计、毕业论文或者刚入门的继电保护工程师做保护整定都绕不开一个问题三相短路发生后短路电流到底有多大冲击电流出现在什么时刻直流分量按什么时间常数衰减理论公式能算出结果但波形长什么样、故障时序怎么设、仿真参数怎么调只有动手建模才能真正体会。这正是 MATLAB/Simulink 在电力系统教学中不可替代的原因——它把看不见的暂态过程变成了可以直接观察的波形。很多人以为 Simulink 仿真就是拖几个模块、双击改参数、点运行真正动手后会发现问题没那么简单Three-Phase Fault 模块位置放错了、故障时间设了却没起作用、Scope 波形抖动得没法看、不知道交流分量和直流分量怎么从波形里分离。这些坑教材上很少写但会反复出现在实际调试中。这篇文章用一个两端供电网络的经典模型完整演示三相短路暂态的 Simulink 仿真方法。读完你能做三件事搭建一个带故障模块的三相电力系统模型设置合理的短路时间与测量点从仿真波形中识别冲击电流和衰减过程并且把仿真结果与理论计算对照起来。下面的内容不追求把模型搭得花哨而是把建模思路、参数时标、波形判读这些真正关键的点讲清楚。1. 三相短路暂态仿真值得认真做一遍三相短路是电力系统中最严重的故障类型。它会造成巨大的短路电流使设备发热、受力严重时还会导致系统失稳。教材里对三相短路的暂态过程有大量公式推导交流分量的变化、直流分量的衰减、冲击电流的计算但这些推导比较抽象初学者很难把公式和真实波形联系起来。Simulink 仿真最大的价值是“可视化”。你可以把短路故障放在任意位置设置故障发生时刻和切除时刻然后直接看到三相电流、电压波形在故障瞬间怎么突变、怎么衰减。这个过程比单纯背公式直观得多。从工程角度看三相短路仿真也不是课堂作业。断路器开断能力的选择、电气设备的动稳定和热稳定校验、继电保护定值整定都需要短路电流大小和波形特征。即使现在新能源、储能接入比例越来越高短路电流特性发生变化传统三相短路暂态分析依然是理解所有故障分析的基础。这篇文章适合的读者有三类一是正在做课程设计或毕业设计的电气专业学生需要快速搭出模型并解释波形二是刚接触电力系统仿真的工程师想搞清楚模块库和参数设置背后的原理三是从其他方向转来做电力系统仿真的开发者希望用一个案例理清 Simulink 电力系统仿真的基本套路。2. 三相短路暂态的核心概念与物理过程2.1 短路后的电流构成三相短路发生的瞬间系统电流不会立刻跳到稳态短路电流。因为电感中的磁链不能突变电流必须连续变化。实际短路电流由两部分叠加而成交流周期分量由电源电动势和系统等值阻抗决定频率与系统频率相同幅值基本不变。直流非周期分量为了维持短路瞬间电流不突变而产生的衰减直流分量方向固定随时间按指数规律衰减。两部分叠加的结果是短路后的电流波形在一个方向出现明显偏移波形“挤”向时间轴的一侧然后随着直流分量衰减波形逐渐恢复到对称形状。这正是仿真波形中最直观、也最值得观察的现象。2.2 次暂态、暂态与稳态如果故障点靠近同步发电机短路电流还要经过三个阶段阶段对应电抗特点持续时间次暂态次暂态电抗 Xd电流最大衰减最快几毫秒到几十毫秒暂态暂态电抗 Xd电流比次暂态小衰减变慢零点几秒到几秒稳态同步电抗 Xd电流最小进入稳定短路状态持续到故障切除短路瞬间发电机转子上的阻尼绕组和励磁绕组都试图维持磁链不变所以定子绕组感受到的是更小的电抗随着这些绕组的作用逐级消失电抗逐步增大短路电流也相应减小。如果故障点离发电机较远中间的变压器和线路阻抗占主导这一阶段变化就不那么明显。2.3 冲击电流与直流分量衰减冲击电流是短路后出现的最大瞬时电流大约发生在短路后半个周波左右。在 50 Hz 系统里半个周波是 0.01 秒。它的峰值可能接近交流分量幅值的两倍工程上常用冲击系数 K_M 来估算一般取 1.8 到 1.9。直流分量的衰减速度由时间常数 T_a 决定T_a 等于系统等值阻抗中电抗与电阻的比值 X/R 除以角频率。X/R 越大直流分量衰减越慢冲击电流对时间的偏移越明显。后续看仿真波形时要重点关注这个“偏移”的持续长度。3. 仿真环境准备与模块库检查3.1 MATLAB/Simulink 版本要求三相短路仿真需要用到的模块来自 Simulink 的电力系统专业库。不同版本的库名称有所差异老版本叫 SimPowerSystems在 Simulink 库浏览器中可以单独看到。新版本中这些模块被整合到 Simscape Electrical Specialized Power Systems 下面。建议使用 R2020a 及以上版本操作路径更统一。如果你用的版本比较老只要能在库浏览器中找到 Three-Phase Source、Three-Phase Fault、Three-Phase V-I Measurement、Powergui 这几个模块就可以完成本案例。3.2 检查模块库是否可用在 MATLAB 命令窗口输入下面命令如果弹出模块库窗口说明相关组件已经安装% 打开电力系统专业模块库 powerlib如果提示找不到命令或模块库说明当前 MATLAB 安装时没有勾选 Simscape Electrical / SimPowerSystems 相关组件。需要在 MATLAB 安装程序中补充安装一般不需要重装整个 MATLAB。3.3 本文使用的模块清单模块名称库路径作用Three-Phase SourceElectrical Sources模拟送端系统或无穷大系统Three-Phase Series RLC BranchElements模拟输电线路阻抗Three-Phase FaultElements设置三相短路故障Three-Phase V-I MeasurementMeasurements测量电压和电流Three-Phase Parallel RLC LoadElements模拟负荷ScopeSimulink/Sinks显示波形PowerguiSpecialized Power Systems电力系统求解环境必须存在Powergui 模块是 Specialized Power Systems 库仿真中不可缺少的元件模型里必须放一个。它可以用来设置仿真类型、采样时间和求解器参数。4. 单机无穷大系统模型搭建两端供电网络三相短路4.1 模型结构设计本文采用一个两端供电网络模型送端电压源经过两条输电线路连接到受端电压源短路故障设置在两条线路之间的母线上。这种模型在 Simulink 自带的电力系统示例中很常见结构简单但能清楚反映故障点两侧电源对短路电流的共同贡献。简化拓扑如下送端电源(110kV) → 线路1(50km) → 测量模块 → 母线 母线同时连接三相短路故障模块、线路2(50km) → 受端电源(110kV)故障模块并联在母线三相与地之间。正常运行时功率从送端流向受端0.1 秒故障发生后故障点形成三相短路母线电压跌落两侧电源同时向故障点注入短路电流。4.2 电源模块参数设置双击 Three-Phase Source设置送端电源参数参数项取值说明Phase-to-phase voltage (Vrms)110e3线电压有效值 110 kVFrequency (Hz)50系统频率Internal connectionYg星形接地Source resistance (Ohm)0.1内阻避免理想电压源数值问题Source inductance (H)0线路中已有电感这里可不加受端电源参数基本一致同样设置 110 kV、50 Hz、Yg 连接内阻取 0.1 Ω。两个电源共同构成系统边界。4.3 线路参数设置输电线路用 Three-Phase Series RLC Branch 表示按正序参数设置。线路 1 和线路 2 长度都是 50 km参数取自典型 110 kV 架空线路参数项取值Resistance per km (Ohm)0.01273Inductance per km (H)0.9337e-3Capacitance per km (F)0.01274e-6Length (km)50在模块参数中需要把每千米参数乘以长度填入三相串联 RLC 支路的 R、L、C 值。也可以直接在模块参数里填写变量表达式稍后通过脚本统一修改。4.4 三相短路故障模块设置Three-Phase Fault 是全场最关键的模块。双击打开参数对话框参数项取值说明Fault typeThree-Phase(ABC)三相短路Fault resistance (Ohm)0.001金属性短路阻值很小Fault timing: Switch on (s)0.1故障发生时刻Fault timing: Switch off (s)0.2故障切除时刻Transition time (s)0.005故障过渡时间数值平滑作用这里容易踩坑的点是“故障类型”必须选 Three-Phase(ABC)。如果误选 Single-Phase 或者其他类型波形就不是三相短路。故障电阻尽量设小反映金属性短路如果设置过大短路电流会明显偏小和理论值对不上。4.5 测量与显示模块设置把 Three-Phase V-I Measurement 串联在线路 1 的出口处电压信号并联在母线上。这样测量到的电流是送端流向故障点的电流电压是故障附近母线电压。为了方便后续用脚本分析数据建议再增加一个 To Workspace 模块或者直接在图中的 Scope 数据记录打勾。推荐做法是在 Three-Phase V-I Measurement 的输出端接一个 To Workspace保存三相电流 ia、ib、ic 和时间 t。5. 参数初始化脚本与批量仿真5.1 用脚本初始化系统参数模型里很多参数是硬编码的但更好的做法是把参数定义在 MATLAB 脚本中模块参数框里填变量名。这样想改参数时只需要改脚本不用逐个双击模块。下面的脚本可以保存为 init_short_circuit.m%% init_short_circuit.m % 三相短路仿真系统参数初始化 % 在MATLAB命令行或模型回调中执行 % 系统基本参数 freq 50; % 系统频率 Hz V_s_rms 110e3; % 系统线电压有效值 V % 线路参数单位每千米 R_per_km 0.01273; % 电阻 Ω/km L_per_km 0.9337e-3; % 电感 H/km C_per_km 0.01274e-6; % 电容 F/km % 线路长度km len1 50; len2 50; % 线路总阻抗 R_line1 R_per_km * len1; L_line1 L_per_km * len1; C_line1 C_per_km * len1; R_line2 R_per_km * len2; L_line2 L_per_km * len2; C_line2 C_per_km * len2; % 故障时间 fault_on 0.1; % 故障发生时刻 s fault_off 0.2; % 故障切除时刻 s % 额定电流参考值以50 MVA、110 kV为基准 S_b 50e6; I_rated S_b / (sqrt(3) * V_s_rms); disp([系统额定电流约为: , num2str(I_rated), A]);在 Simulink 模块参数里可以直接填写 R_line1、L_line1、fault_on 这些变量名。只要脚本在仿真前运行过模型就能正确解析变量。这种方法比硬编码数值更清晰也便于后续做参数扫描。5.2 批量仿真与参数扫描课程设计里经常要比较不同故障时刻或者不同故障电阻下的波形。如果每个参数都手动改一遍再点运行效率很低。可以写一个批量脚本循环修改故障时间后自动仿真并保存结果%% batch_short_circuit.m % 批量修改故障时间重复仿真并保存结果 % 注意set_param中的参数名以当前版本模块Mask为准 % 如果版本不同需要先查看模块Mask内部名称 model three_phase_short_circuit; open_system(model); fault_time_vec [0.05 0.1 0.15]; for k 1:length(fault_time_vec) disp([正在仿真故障时刻 , num2str(fault_time_vec(k)), s]); % 修改模型中故障模块参数示例具体参数名以Mask为准 % set_param([model /Three-Phase Fault], ... % FaultOn, num2str(fault_time_vec(k)), ... % FaultOff, num2str(fault_time_vec(k) 0.1)); % 运行仿真 simOut sim(model, StopTime, 0.3); % 保存结果 assignin(base, [out_, num2str(k)], simOut); end disp(批量仿真完成);这里要提醒一句不同 MATLAB 版本中 Three-Phase Fault 模块的内部参数名不完全相同。实际使用 set_param 前可以先在模型中双击模块查看 Mask 编辑器里的参数名称。如果不想折腾参数名也可以用 5.1 节的变量方式把 fault_on 定义为变量然后循环给变量赋不同值再调用 sim。5.3 为什么推荐脚本化建模脚本化建模的好处有三个。第一可复现工程项目的仿真参数不会因为某个人手动改乱而丢失第二可对比批量仿真后可以把多个波形放在同一张图里比较第三可交接别人拿到脚本就能还原整套实验条件。6. 运行仿真与结果验证6.1 求解器与步长配置点击模型底部的 Powergui 模块在 Simulation type 中选择 Continuous。在 Simulink 的 Configuration Parameters 中选择 ode23tb 或 ode15s 求解器。这两个求解器适合电力电子和电力系统这类刚性系统稳定性较好。关键的一项是把最大步长设置得足够小。建议设置为1e-4秒或更小。如果最大步长取得太大短路瞬间的电流变化太快波形会出现明显的数值振荡甚至看不出冲击电流的真实峰值。配置完成后在 MATLAB 命令行运行sim(three_phase_short_circuit);或者直接在 Simulink 窗口点击运行按钮。6.2 波形怎么读以 A 相电流为例正常情况下电流是幅值很小的正弦波。0.1 秒故障发生后电流立刻增大并且波形不再围绕零轴对称而是在一个方向上出现很大偏移。这个偏移就是直流非周期分量造成的。大约 0.11 秒左右也就是短路后半个周波附近电流出现最大瞬间值这就是冲击电流。之后随着直流分量衰减电流波形逐渐恢复到围绕零轴近似对称的正弦波进入稳态短路状态。0.2 秒故障切除后系统电流经过一段短暂的振荡逐渐恢复到正常负荷水平。如果波形看起来“抖得很厉害”或者有毛刺先不要怀疑模型多半是最大步长太大或者故障过渡时间太短调整求解器参数后再看。6.3 用脚本读取数据并计算冲击电流为了把结果量化可以编写后处理脚本。假设 To Workspace 保存的变量名为 simout数据类型是 Simulink.SimulationData.Dataset里面包含三相电流。下面的脚本读取数据计算 A 相电流峰值和故障后的稳态电流有效值%% process_results.m % 读取仿真结果并计算冲击电流特征 % 从仿真输出中获取A相电流 out simout; t out.Time; data out.Data; % 假设Data第一列为A相电流第二列为B相第三列为C相 ia data(:, 1); % 找到A相电流绝对值最大的时刻 [I_peak, idx_peak] max(abs(ia)); t_peak t(idx_peak); disp([A相电流最大瞬时值: , num2str(I_peak), A]); disp([出现时刻: , num2str(t_peak), s]); % 计算故障后半段稳态电流有效值 % 故障时间0.1s到0.2s取0.15s之后作为稳态段 steady_idx find(t 0.15 t 0.19); I_steady_rms sqrt(mean(ia(steady_idx).^2)); disp([故障期间稳态短路电流有效值约: , num2str(I_steady_rms), A]);运行脚本后可以对比短路电流峰值与理论估算值。理论值可以这样快速估算忽略电容和两端电源相位差单侧电源经 50 km 线路短路时线路阻抗大约是 1.27 Ω 电阻和 29.3 Ω 电抗短路相电流大约在几千安量级加上直流分量后的冲击电流峰值可能达到稳态短路电流幅值的 1.8 倍左右。这里要注意两端供电网络下两侧电源都会向故障点注入电流所以测量到的电流会比单侧估算大一些结果解释时要说明这个因素。7. 常见问题与排查方法问题现象可能原因排查方式解决方案故障后波形没有明显变化故障类型选错或故障模块没有并接在主回路上检查 Three-Phase Fault 的 Fault type 和连接位置改为 Three-Phase(ABC)确保模块并联在母线三相与地之间波形出现 NaN 或直接发散电源内阻为 0或存在代数环或求解器步长太大查看 Simulink 诊断信息检查电源参数给电压源设置 0.1 Ω 左右内阻改用 ode23tb减小最大步长Scope 里看不到完整波形的冲击峰最大步长过大导致峰值点被跳过查看实际输出时间节点密度将最大步长设为 1e-4 甚至更小短路电流峰值远小于预期故障电阻设置过大检查 Fault resistance设置为 0.001 Ω 或更小找不到 Three-Phase Fault 模块未安装 Simscape Electrical或版本库路径不同在库浏览器中搜索 Three-Phase Fault安装组件或通过 powerlib 打开旧版库故障切除后波形恢复不到正常仿真时间不够长观察波形尾部是否仍在振荡适当延长 StopTime比如 0.5 秒如果仿真结果还是不对建议先把模型简化到极限只保留一个电源、一段线路、一个故障模块跑通后再逐步加入更多元件。这样可以快速定位问题出在模型结构还是参数设置。8. 最佳实践与工程建议8.1 优先用标幺值思维理解参数在电力系统分析里标幺值很常用因为不同电压等级折算很方便。在 Simulink 建模时虽然可以直接填有名值但心里最好有标幺值概念。比如 50 MVA、110 kV 基准下系统额定电流大约是 262 A短路电流是额定电流的几倍到十几倍是否合理一目了然。8.2 故障时序设计要符合分析目标故障发生时刻影响直流分量的初始大小。短路瞬间的电压相位不同直流分量的初始值不同冲击电流大小也会有差异。如果要做最严重工况分析需要把故障时刻设置在电压过零附近这时直流分量最明显。批量仿真不同故障时刻并对比冲击电流是一种简洁有效的分析方法。8.3 数据记录与结果保存仿真实验要养成记录习惯。保存数据时建议把故障时刻、故障电阻、线路长度、求解器参数一并记录。后续写课程设计或论文时这些信息可以让结果可复现。如果使用 To Workspace 保存数据注意区分数据集类型处理数据前先查看变量结构。8.4 新能源与储能系统接入后的短路特性这里要单独提醒传统同步电源主导的系统中短路电流从次暂态到暂态再到稳态变化规律清晰。但光伏、储能等电力电子接口电源的短路电流受变流器控制策略影响通常上升速度快、幅值受限而且没有明显的交流/直流分量分离特征。如果以后做含新能源的系统短路仿真不能直接套用同步机短路模型需要建立变流器模型并设置相应的故障穿越策略。8.5 关于高压系统实验的安全边界本文所有内容都是仿真建模涉及的电压电流都是电气计算中的工程设计值不代表可以拿真实高压设备做短路实验。实际电力系统的短路试验需要在严格的安全规程、操作票制度和设备验证流程下进行这一点在课程设计和工程实践中都要保持清醒。仿真的优势就在于可以在零风险环境下研究故障行为这也是它的核心价值。9. 总结与后续深入方向这篇文章通过一个两端供电网络模型把三相短路的 Simulink 仿真完整走了一遍。核心不是“拖模块”这个动作而是理解短路电流由交流和直流两部分构成知道冲击电流出现在故障后约半周波能通过求解器设置和故障模块参数控制仿真质量并且会用脚本把波形数据量化。如果接下来想把三相短路仿真做成一个完整课程设计建议把故障分别设置在变压器高压侧、线路出口和线路末端三个位置比较不同位置的短路电流大小。再加上故障时刻扫描和冲击电流系数计算这份工作会比大多数同学只搭一个模型更有工程深度。更进一步可以往三个方向深入。方向一是做不对称短路单相接地、两相短路、两相接地短路对比不同故障类型下电流电压特征这部分和继电保护整定直接相关。方向二是把送端换成同步发电机模型观察次暂态、暂态、稳态三个阶段的电抗变化这与电机学知识联系更紧密。方向三是把短路分析扩展到含新能源和储能的系统研究逆变器故障穿越特性对保护配置的影响。建议把这篇文章保存备用。仿真模型和脚本最好在本地跑通一遍再根据自己项目需求改参数。第一次跑通后把模型另存一份作为后续做不对称故障、保护整定、暂态稳定实验的基础模板。