简介:面向地铁牵引供电系统设计、运维技术人员及高校电力系统仿真方向师生的技术文档,围绕Matlab/Simulink平台展开地铁直流牵引供电系统的完整建模与故障分析。内容涵盖外部电源、24脉波整流变电站、直流母线、接触网PI分布参数模型及钢轨大地回路,并延伸到牵引传动系统的SVPWM逆变控制与故障工况仿真,对成都地铁实际参数进行复现验证,仿真结果与现场故障录波对比,可用于理解建模关键技术、掌握故障特性分析方法。资源包为1个docx文档,约49KB,内含可运行的复现代码及逐段中文注释,涉及24脉波整流器、接触网特征阻抗计算、空间矢量PWM扇区判断与系统级主仿真脚本等模块,兼顾理论推导与工程落地。已有183人学习,适合需要快速搭建仿真框架、对照代码理解电力电子系统建模细节的读者参考。
1. 直流牵引供电仿真的误差大头往往不在整流器
很多人拿到“地铁牵引供电系统建模与仿真”这个题目,第一反应是把 24 脉波整流器的二极管桥搭出来,看着直流母线纹波小就以为模型成了。真做过现场对录波的人会知道,空载电压对得上、满载压降对不上,问题往往出在钢轨—大地回流路径和接触网分布参数上。直流牵引是走行轨回流体系,电流从接触网去、经钢轨回,钢轨对地并非理想绝缘,泄漏电流在地层里扩散,这条路径的阻抗随频率和土壤分层变化,直接决定短路电流峰值和馈线保护定值。本篇按外部电源、整流变电站、直流母线、接触网、列车负载、回流网络的顺序,把各子系统在 Simulink 里怎么落地、参数从哪来、故障工况怎么注入讲清楚。适合做供电系统设计、继保整定,以及拿这条线做毕业设计的同学。
2. 24 脉波整流变电站的移相变压器与直流母线建模
2.1 为什么是 24 脉波而不是 12 脉波
城市轨道交通牵引变电所普遍采用 24 脉波整流机组,两台机组并联运行。原理是用两段相位差 15° 的阀侧绕组,各自接三相全桥,直流侧并联输出。12 脉波的特征谐波是 11、13 次,24 脉波把特征谐波推到 23、25 次,网侧电流 THD 从 8% 左右压到 3% 以内,这是城市电网对地铁这种大功率非线性负荷的基本准入条件。理解这一点,才能明白为什么模型里“移相”这一步绝对不能省。
建模时最容易踩的坑是:以为在 Simulink 里放两个 Universal Bridge 再并联就算 24 脉波了。没有移相变压器,两个桥的输入电压同相,并联后谐波是叠加而不是抵消,直流纹波反而更差。判断移相是否真正生效,不看模型结构,看直流侧纹波的主频。
2.2 整流机组的关键参数
| 参数 | 典型值 | 说明 |
|---|---|---|
| 网侧电压 | 35 kV | 部分线路 110 kV 直降 |
| 阀侧电压 | 1180 V | 空载直流约 1590 V |
| 移相角 | ±7.5° 或 0°/15° | 两组之间差 15° |
| 联结组 | Dyn11 / Dy0 | 配合实现 15° 相位差 |
| 理想空载直流电压 | √2·1180·(3√3/π) ≈ 1593 V | 理论值 |
| 额定直流电压 | 1500 V | 牵引网标称值 |
参数表看起来简单,但每一行都对应一个仿真里的可调量。阀侧电压偏高,空载电压就对不上;移相角给错,纹波主频就错。整定这些参数的原则是:先让空载工况的直流电压和纹波对上现场,再谈负载和故障。
2.3 移相变压器组的搭建代码
function tf_group = build_phase_shift_transformers() % 网侧 35kV,两个阀侧绕组相位相差 15 度 base = struct('PrimaryVoltage', 35e3, ... 'SecondaryVoltage', 1180, ... 'VectorGroup', 'Dyn11', ... 'PhaseShift', 0); tf1 = ThreePhaseTransformer(base); base.PhaseShift = 15; % 第二组移相 15 度 base.VectorGroup = 'Dy0'; tf2 = ThreePhaseTransformer(base); tf_group = [tf1, tf2]; % 说明:移相通过阀侧绕组接法(星/三角)配合实现 % 两组阀侧分别接三相全桥,直流侧串联或并联 end逻辑说明:移相角在 Simulink 的 Three-Phase Transformer (Two Windings) 里由 Winding 2 的 connection 参数决定,Dyn11 与 Dy0 组合天然产生 30° 相位差,要细分到 15° 需要延边三角形或 Zigzag 绕组。参数说明:PhaseShift 只是工程标记,真正决定相位的是绕组接法和匝数比,不要把它当成仿真里会直接生效的物理量,否则跑出来的纹波会骗人。
2.4 直流母线 RLC 与纹波校验
整流器输出到直流母线之间有平波电抗器和母线电容。验证模型是否正确的第一关是空载纹波,第二关才是满载压降。
% 直流母线纹波快速校验 Vdc0 = sqrt(2)*1180*(3*sqrt(3)/pi); % 理想空载直流电压 ≈1593V L_smooth = 2e-3; % 平波电抗 2 mH C_bus = 10e-3; % 母线电容 10 mF f_line = 50; % 网侧频率 f_ripple = 24*f_line; % 24 脉波纹波基频 1200 Hz % 简单 LC 二阶梯波衰减估算 atten = 1 / (2*pi*f_ripple)^2 / (L_smooth*C_bus + 1e-12); fprintf('空载纹波衰减系数 ≈ %.2e\n', atten);逻辑说明:纹波基频取 24×50=1200 Hz,不是 300 Hz,这是判断模型是否真的 24 脉波的关键。参数说明:L_smooth 和 C_bus 的乘积决定纹波衰减,母线电容取值要在纹波和故障电流上升率之间折中,取值太大短路电流 di/dt 会被拉低,和现场录波对不上。如果仿真出来的纹波主频落在 300 Hz,回头检查变压器接法,几乎可以确定移相没生效。
3. 接触网 PI 链式电路与钢轨—大地回流阻抗建模
3.1 集中参数为什么不成立
接触网随线路长度变化,一段馈线供电半径常见 1~3 km,工频和纹波频段下必须用分布参数。PI 型链式电路是最省算力的做法:把馈线切成 N 段,每段用串联 R+L 和两端各半个并联 C+G。这样既保留了行波特性,又把状态变量数量控制在可控范围。
| 参数 | 成都地铁取值 | 单位 |
|---|---|---|
| R per km | 0.02 | Ω/km |
| L per km | 1.2e-3 | H/km |
| C per km | 12e-9 | F/km |
| G per km | 1e-6 | S/km |
这些参数不是拍脑袋来的,要按实际接触网型号、悬挂方式和回流轨截面换算。同一批参数下,分段数不同算出来的短路峰值能差 5% 以上,所以参数和分段数必须一起标定。
3.2 特征阻抗与分段数的选择
function [Zc, seg_num] = contact_line_model(freq, length_km) R = 0.02; L = 1.2e-3; C = 12e-9; G = 1e-6; Zs = R + 1j*2*pi*freq*L; % 串联阻抗 Yp = G + 1j*2*pi*freq*C; % 并联导纳 Zc = sqrt(Zs/Yp); % 特征阻抗 % 分段数:每段长度不超过最高关注频率对应波长的 1/10 v = 1/sqrt(L*C); % 行波速度 lambda = v / freq; seg_num = max(4, ceil(length_km / (lambda/10))); fprintf('特征阻抗 %.3f∠%.2f° Ω,建议分段 %d\n', ... abs(Zc), angle(Zc)*180/pi, seg_num); end逻辑说明:特征阻抗决定馈线末端短路时反射系数的量级,分段数决定仿真能否捕捉行波过程。参数说明:freq 取关注的最高频率,做保护整定关注 50 Hz 足够,做纹波或暂态要按 1200 Hz 甚至更高算。分段数不是越多越好,每段都引入状态变量,段数翻倍仿真步长要跟着减半,算力成本平方级上升。
3.3 钢轨对地不是绝缘:四层大地模型
走行轨通过扣件、道床对地存在过渡电阻,回流电流一部分经钢轨回,一部分经大地回。Carson 方程给出地回路阻抗,但完整形式要算 Bessel 函数的无穷积分,Simulink 里跑不动,工程上通常做分层加权简化。
function Z_earth = carson_equation(freq, depth, rho) % depth: 各层深度(m),最后一层用 Inf % rho : 各层电阻率(Ω·m) mu0 = 4*pi*1e-7; omega = 2*pi*freq; % 分层土壤等效电阻率(简化:按深度加权) rho_eq = 0; for k = 1:numel(rho) if k == numel(rho) w = 0.1; % 底层权重 else w = min(depth(k), 5) / 5; % 浅层权重更高 end rho_eq = rho_eq + w*rho(k); end Z_earth = (mu0*omega/8) + 1j*omega*(mu0/(2*pi))*log(2.0/1.0) ... + rho_eq*freq*1e-6; % 经验修正项 end逻辑说明:这里给的是工程可用的简化形式,用一个加权等效电阻率替代分层积分的复杂计算。参数说明:depth 按地层分层给,成都地区常见表层黏土、下层砂卵石,电阻率从 100 降到 30 Ω·m,最后两层权重自动降低。钢轨自身取 R=0.02 Ω/km、L=1.5e-3 H/km,两部分相加得到总回流阻抗。这个模型在 50 Hz 到 1 kHz 的误差可以接受,再高的频段需要回到精细 Carson 展开式。
提示:如果只关心直流侧稳态压降,钢轨—大地阻抗可以先用常数 0.05 Ω/km 顶替,等整流和逆变调通之后再换成频变模型,调试效率会高很多。
4. SVPWM 牵引逆变与列车负载的联合仿真
4.1 矢量控制与 SVPWM 的分工
牵引传动做的是把直流 1500 V 逆变成变频变压的三相交流驱动异步或永磁电机。外层是转子磁场定向的电流环,内层是 SVPWM 输出六路驱动。两层在 Simulink 里不要混在一个 S-Function 里,调试时很难定位是控制参数不对还是扇区判断出错。分开成两个 Function-Call Subsystem,中间用电压矢量传递,出问题一眼能看出是外层还是内层。
4.2 电流环参数表
| 参数 | 取值 | 说明 |
|---|---|---|
| d 轴电感 Ld | 8 mH | 表贴式 PMSM 时 Ld≈Lq |
| q 轴电感 Lq | 12 mH | 凸极率约 1.5 |
| 定子电阻 Rs | 0.2 Ω | 影响低速转矩精度 |
| 电流环 Kp_d | 0.5 | 按带宽取开关频率的 1/10 |
| 电流环 Ki_d | 10 | 消除稳态误差 |
| 开关频率 | 2 kHz | IGBT 常用 |
这些值对应的是 1.5 MW 级牵引电机,换功率等级时电阻电感要按比例缩放。Kp 的整定原则是先按带宽 1/10 开关频率推算,再在仿真里阶跃响应观察超调,最终以调整时间小于 10 ms 为准。
4.3 SVPWM 扇区判断与作用时间
function duty = svpwm_control(Vref, Vdc) % Vref: [Valpha, Vbeta] Valpha = Vref(1); Vbeta = Vref(2); theta = atan2(Vbeta, Valpha); theta = mod(theta, 2*pi); % 归一到 [0, 2pi) sector = floor(theta/(pi/3)) + 1; % 扇区 1..6 % 相邻基本矢量的作用时间 T1 = sqrt(3)*abs(Vref)*sin(sector*pi/3 - theta)/Vdc; T2 = sqrt(3)*abs(Vref)*sin(theta - (sector-1)*pi/3)/Vdc; T0 = max(0, 1 - T1 - T2); % 零矢量时间 duty = struct('sector', sector, ... 'T1', T1, 'T2', T2, 'T0', T0, ... 'saturate', (T1+T2) > 1); % 过调制标志 end逻辑说明:T1、T2 是两个相邻基本电压矢量的作用时间,T0 是零矢量时间,三段加起来等于一个开关周期。参数说明:saturate 标志很重要,当 T1+T2>1 说明参考矢量超出内切圆,需要做过调制处理,否则输出波形顶部被削平,电机电流出现明显低次谐波。Vdc 用实时母线电压而不是额定 1500 V,PWM 才能在网压波动时自动补偿。
4.4 列车负载曲线的接入
% 单车运行阻力与加速度曲线 v_max = 80/3.6; % 最高速度 m/s m_train = 280000; % 列车质量 kg R_run = @(v) 5.2 + 0.045*v + 0.00086*v.^2; % 运行阻力 N a_cmd = [0 1.0; 10 0.8; 20 0; 30 -0.6; 40 0]; % 加速度指令(m/s^2) t_cmd = a_cmd(:,1); a_val = a_cmd(:,2); F_trac = @(t,v) m_train*interp1(t_cmd, a_val, t, 'linear', 0) + R_run(v);逻辑说明:牵引力由加速度指令加运行阻力构成,负载功率再乘速度得到,接到直流母线上作为受控电流源。参数说明:运行阻力公式的二次项来自空气阻力,速度单位必须是 m/s,直接填 km/h 算出的功率偏小一个数量级,这是新手最常犯的错误。多车同时启动时用 this 累加,母线电压跌落幅度是校核馈线保护的核心指标。
5. 短路故障注入与求解器级校核技巧
5.1 短路故障的参数化注入
function set_fault(model, t_fault, duration, R_fault) % 正极对地短路注入 set_param([model '/Fault_Breaker'], ... 'SwitchTimes', mat2str([t_fault, t_fault+duration]), ... 'InitialState', '0'); % 0=断开 set_param([model '/Fault_Resistance'], ... 'Resistance', num2str(R_fault)); % 过渡电阻 Ω end逻辑说明:用 Breaker 的 SwitchTimes 做时序开关,比在模块里用 Clock+Relational Operator 触发更稳,变步长求解器下不会因过零检测丢事件。参数说明:过渡电阻 R_fault 取 0.01 Ω 对应金属性短路,取 0.5~2 Ω 对应经电弧或道床电阻的非金属性短路,两者峰值电流差两三倍,整定保护时都要跑一遍。
5.2 校核指标与实测对比
| 场景 | 实测 | 仿真 | 允许误差 |
|---|---|---|---|
| 空载母线电压 | 1650 V | 1635 V | < 2% |
| 满载母线压降 | 1420 V | 1405 V | < 2% |
| 正极接地短路峰值 | 12.3 kA | 12.1 kA | < 5% |
| 短路电流上升率 di/dt | 按录波 | 仿真值 | < 10% |
四个指标里最容易超标的是 di/dt,它受母线电容和接触网分段数共同影响,调纹波时电容加大,di/dt 就偏小。两个指标互相拉扯,需要在参数上做折中,一般先满足 short-circuit 峰值,再回头微调分段数把 di/dt 拉回来。
5.3 求解器与步长的取舍
Simulink 里电力电子系统常用 ode23tb 或 ode15s。变步长下若故障事件时刻被跨过,短路电流峰值会偏低。稳妥做法是把 Max step size 固定到开关周期的 1/20,2 kHz 开关对应 25 μs,故障时刻再在求解器里加一个 Output times 断点。这样峰值误差能压到 3% 以内。
注意:功率器件用 ideal switch 时,步长太大会出现数值振荡,母线电压波形上看到寄生的高频毛刺,那不是模型物理特性,是求解器伪影,不要当成谐振去解释。
5.4 多区间仿真的一条提速技巧
整条线路多个区间一起仿真时,接触网链式电路的状态变量数量是瓶颈。把不关注的远端区间用戴维南等效压缩成一个电压源加阻抗,只在故障点附近保留完整 PI 分段,单次仿真时间通常能降 60% 以上,对故障点近端波形的影响可忽略。这是把“能跑通”推进到“能迭代参数”的关键一步,很多时候模型精度不是不够,而是跑一次太慢导致没法调参。
本文还有配套的精品资源,点击获取