每次看到有人把直流电源直接替掉整流桥就宣布“逆变仿真完成”,我都想劝他先看一眼电流方向。单相桥式有源逆变电路的Simulink仿真,难的不是桥怎么搭,而是让能量真的从直流侧流向交流电网,而不是反向跑成整流。这篇我会完整走一遍MATLAB 2018a环境下的建模过程,从原理、器件选型、参数计算到SPWM波形分析与问题排查全部覆盖,适合刚接触电力电子仿真、或者做完整流想进阶逆变但总是得不到正确波形的朋友。
我先说明:这篇不做理论推导大杂烩,只讲你在Simulink里真正会用到的部分——模型怎么搭、参数怎么填、波形怎么判断、发散怎么处理。文中的仿真参数都经过实际验证,你可以直接在2018a里复现。
1. 有源逆变不是把电源倒过来接:先理清工作条件
1.1 单相全桥的四个管子,凭什么决定能量方向
单相桥式电路拓扑非常简单:四个IGBT各自反并联续流二极管,直流侧接电源,交流侧通过电感接电网。整流和逆变用的是同一套主电路,区别只在控制策略。从电网取能量往直流侧送,叫整流;从直流侧把能量送回电网,叫有源逆变。关键在于交流侧不是电阻电灯,而是实实在在的电网电压源,所以叫“有源”。
很多初学者把有源逆变理解成把直流电源正负极反接,这是很危险的误解。直流电压源的极性不能轻易反,有源逆变靠的是桥臂输出电压的基波与电网电压之间产生功率角,通过相位关系控制电流反向。在Simulink里你不用改任何电源极性,只需调整SPWM调制波的幅值和相位,就能改变功率流动方向。
1.2 有源逆变运行的两个硬条件
要在仿真里实现真正的有源逆变,必须满足两个条件。第一,直流侧电压要足够高,桥臂SPWM输出基波的峰值必须大于电网电压峰值,否则电流根本没有能力“顶着”电网电压往外送。第二,调制波必须和电网电压保持同步,并且有一个合适的相位差,这个相位差决定了有功功率的大小与方向。
一句话总结就是:幅值决定能不能送,相位决定送多少、往哪送。你后续调节参数时,只要记住这个关系,就不会觉得波形不可控。仿真模型里直流侧用了400V,电网侧是220V有效值、峰值311V,桥出口基波峰值大约340V,幅值上完全有裕量。相位上,调制波相比电网电压超前一个功角,于是电流就能从逆变器流向电网。
2. 参数设计与器件选型:先算出电压、电感、电流,再谈搭电路
2.1 直流电压与调制比怎么匹配
参数设计的起点不是随便填一个400V了事,而是根据电网电压反推。单相220V有效值对应的电网电压峰值为:
E_m = 220 × 1.414 ≈ 311V
对于双极性SPWM控制的全桥逆变电路,桥出口电压基波峰值U_ab1与直流电压U_dc、调制比m满足:
U_ab1 = m × U_dc
要让逆变器能把电流送进电网,至少要保证U_ab1略大于E_m。我取调制比m=0.85,直流侧电压U_dc=400V,得到:
U_ab1 = 0.85 × 400 = 340V
340V比311V高出约9%,这个裕量用来克服电感和线路的阻抗压降。如果直流电压只有300V,那么即使调制比拉到1.0,基波峰值也只有300V,低于电网峰值,电流方向完全无法反向,仿真结果必然是有功从电网流入直流侧,整流成立,逆变失败。
2.2 电感量怎么估算
电感在有源逆变里起到双重作用:一是滤除SPWM产生的高频谐波电流,二是作为逆变器与电网之间的功率传输媒介。电感太小,谐波电流大,电流波形毛刺严重;电感太大,功率流动受限,动态响应迟钝。
估算电感量可以按电流纹波来算。双极性SPWM在开关频率f_sw远高于工频时,单个开关周期内电感电流纹波ΔI近似满足:
ΔI ≈ (U_dc - |e_ac|) × D × T_s / L
其中T_s为开关周期,D为占空比,e_ac为电网电压瞬时值。以开关频率5kHz为例,T_s=1/5000=0.0002s,取最恶劣情况下占空比D=0.5,允许纹波ΔI=2A,则:
L ≥ (400 - 311) × 0.5 × 0.0002 / 2 ≈ 0.00445H
所以我选了5mH电感,留一点裕量。对应的基波阻抗为:
X_L = 2π × 50Hz × 0.005H ≈ 1.57Ω
在桥出口电压340V与电网电压311V相差约29V(考虑相位差下实际略多)的情况下,基波电流大约数十安培量级,模型里可以观察到十几到二十几安的电流,属于正常范围。仿真参数中我再串一个0.01Ω小电阻模拟线路损耗,避免纯电感回路出现无阻尼振荡。
2.3 开关管和缓冲电路的选型逻辑
仿真里选IGBT不能只看名字,要理解Universal Bridge模块里每一项参数的物理含义。桥臂数选2就是单相全桥,开关器件选IGBT/Diodes,表示每个IGBT反并联一个续流二极管。二极管不是可有可无的——SPWM双极性工作模式下,电流在某些时段需要经过二极管续流,没有它模型就会报错或波形异常。
缓冲电路参数是仿真稳定性的关键。默认Snubber电阻Rs=1e5Ω、电容Cs=inf(无穷大),这个组合在实际仿真中比较稳妥。如果把Rs设成100Ω这种小阻值,IGBT每次开关都会产生很大的缓冲电流,仿真步长会被迫压缩到极小,运行速度惨不忍睹。至于耐压耐流等级,仿真里主要关注Ron导通电阻。我建议Ron设为0.01Ω而不是默认的1e-3Ω,这样开关管导通压降带来的阻尼效果更明显,电流不容易出现数值振荡。
3. Simulink建模实操:MATLAB 2018a环境下从电源到桥臂
3.1 模型整体结构与模块清单
在2018a里打开Simulink,新建空白模型。电气主电路的模块库路径是:Simscape / Electrical / Specialized Power Systems / Fundamental Blocks。注意如果你机器上装的是早期2018a,也可能显示为SimPowerSystems / Specialized Technology,内容一样,找对应的模块名即可。
整个模型分成三块:主电路、控制电路、测量显示。主电路从左到右依次是直流电压源、Universal Bridge、串联RLC分支、交流电压源,再用电压电流测量模块把关键信号引出来。控制电路生成四路SPWM门极信号送到Universal Bridge的Gate端。测量显示部分用Scope观察波形,用To Workspace把数据存到工作区做谐波和功率分析。
需要的模块清单如下:
| 模块 | 库路径 | 用途 |
|---|---|---|
| powergui | Simscape / Electrical / Specialized Power Systems | 设置仿真求解方式 |
| DC Voltage Source | Fundamental Blocks / Electrical Sources | 直流侧400V电源 |
| Universal Bridge | Fundamental Blocks / Power Electronics | 单相全桥IGBT |
| Series RLC Branch | Fundamental Blocks / Elements | 滤波电感+线路电阻 |
| AC Voltage Source | Fundamental Blocks / Electrical Sources | 模拟220V电网 |
| Voltage Measurement | Fundamental Blocks / Measurements | 测量电网电压 |
| Current Measurement | Fundamental Blocks / Measurements | 测量电感电流 |
| Repeating Sequence | Simulink / Sources | 生成三角载波 |
| Sine Wave | Simulink / Sources | 生成正弦调制波 |
| Relational Operator | Simulink / Logic and Bit Operations | 调制波与载波比较 |
| Logical Operator | Simulink / Logic and Bit Operations | 取反生成互补信号 |
| Scope | Simulink / Sinks | 显示波形 |
3.2 关键模块参数设置
主电路参数我整理成了表格,照着填就行。特别提醒:AC Voltage Source在2018a里默认设置的是Peak amplitude,不是有效值,千万别直接填220,要填311。
| 模块 | 参数项 | 设置值 |
|---|---|---|
| powergui | 仿真类型 | Continuous |
| DC Voltage Source | Amplitude (V) | 400 |
| Universal Bridge | Number of bridge arms | 2 |
| Universal Bridge | Power electronic device | IGBT / Diodes |
| Universal Bridge | Snubber resistance Rs | 1e5 |
| Universal Bridge | Snubber capacitance Cs | inf |
| Universal Bridge | Ron (Ohms) | 0.01 |
| Series RLC Branch | Resistance R | 0.01 |
| Series RLC Branch | Inductance L | 0.005 |
| Series RLC Branch | Capacitance C | inf |
| AC Voltage Source | Peak amplitude (V) | 311 |
| AC Voltage Source | Frequency (Hz) | 50 |
| AC Voltage Source | Phase (deg) | 0 |
3.3 接线顺序和测量点布置
直流电压源正极接Universal Bridge的DC+端子,负极接DC-端子。桥的交流侧两个端子分别命名为AC1和AC2,AC1引出后串联Series RLC Branch,再接到交流电压源的正极;AC2直接接到交流电压源的负极。注意电流测量模块要串在电感后面、电网前面,箭头方向从桥流向电网。电压测量模块并联在交流电压源两端。
为什么要用Universal Bridge而不是四个独立IGBT模块?因为四个独立IGBT需要手动接反并联二极管、处理缓冲电路、额外添加门极驱动分离电路,模型会变得非常臃肿。Universal Bridge把桥臂封装好,你只需要关心门极信号的顺序,把精力集中在控制逻辑上。它的门极输入端子顺序为:第一个输入对应臂1上管、第二个对应臂1下管、第三个对应臂2上管、第四个对应臂2下管。如果你的门极信号顺序接反了,后面波形分析时发现输出电压不是预期的SPWM脉冲,第一件事就是检查这四个信号顺序。
4. SPWM脉冲生成:从比较器到四路门极信号的完整连接
4.1 三角载波和正弦调制波怎么产生
双极性SPWM的原理是用一个高频三角载波和一个低频正弦调制波比较,比较结果决定开关状态。载波频率选5kHz,对应周期0.0002s。三角载波用Repeating Sequence模块生成,参数设置为:
- Time values: [0 0.0001 0.0002]
- Output values: [-1 1 -1]
这样得到的三角波从-1线性上升到1,再线性下降到-1,正好与调制波的幅值范围匹配。正弦调制波用Sine Wave模块,参数为:
- Amplitude: 0.85
- Frequency: 2×pi×50
- Phase: 0.1 rad
幅值0.85对应调制比,相位0.1rad就是前面提到的功角,它让桥出口电压基波相对电网电压略有超前,从而保证有功功率往电网方向流动。你可以把这个相位看作控制逆变功率方向的旋钮,后面分析波形时可以试着把Phase改成-0.1,看看电流方向是不是立刻反转。
4.2 双极性SPWM的逻辑关系:对角线导通的秘密
比较器用Relational Operator,运算选“大于”,第一个输入接正弦调制波,第二个输入接三角载波。比较结果记为A,A为1表示调制波大于载波。双极性SPWM的逻辑关系是:当A=1时,臂1上管和臂2下管导通,桥输出电压为+U_dc;当A=0时,臂1下管和臂2上管导通,桥输出电压为-U_dc。
根据Universal Bridge门极顺序,四路信号应为:
- g1(臂1上管)= A
- g2(臂1下管)= NOT A
- g3(臂2上管)= NOT A
- g4(臂2下管)= A
用Logical Operator模块的NOT门对A取反,得到NOT A。然后把A和NOT A按要求连到Universal Bridge的Gate输入。这里的关键是理解“对角线导通”:A=1时g1和g4同时为1,桥两端输出+400V;A=0时g2和g3同时为1,桥两端输出-400V。不会出现同臂两个管子同时导通的情况,因为它们的驱动信号天然互补。
4.3 死区问题:仿真里不处理会在哪一步付出代价
在实际工程中,IGBT关断需要时间,同一桥臂上下管的驱动信号不能做成交变沿完全重合的互补信号,否则可能出现短暂直通,烧毁功率管。你需要加死区时间——典型值1到5微秒——让一个管子完全关断之后另一个管子才能导通。
但在仿真教学里,很多人纠结死区,其实大可不必。因为仿真模型中的理想开关不存在真实关断延迟,同一桥臂上下管驱动在数学上是严格互补的,不会同时为1,所以模型可以正常运行。如果你一定要加死区,可以给NOT A信号串联一个Transport Delay模块,延迟时间设为1e-6,但这样带来的问题是延迟了所有跳变沿,波形会有细微差异,反而容易让初学者困惑。
我的建议是:第一阶段把理想SPWM跑通、看懂波形,第二阶段再去研究死区如何用状态机实现。别让死区成为你进入有源逆变的第一道坎。
5. 波形分析与逆变验证:怎么确定仿真真的“逆”对了
5.1 桥输出电压和电流的仿真波形特征
仿真时间设为0.06s,点击运行。打开Scope观察u_ab桥输出电压,你会看到正负400V交替的SPWM脉冲列,宽度随正弦调制波呈正弦规律变化,这正是双极性SPWM的标准波形。再看电感电流,经过短暂的暂态过程后变成近似正弦波,频率50Hz,幅值根据负载情况稳定在一定范围。
关键判断点来了:把电网电压和电感电流放到同一个Scope里对比。由于电流测量方向定义为从桥流向电网,真正有源逆变时,电网电压为正的半周内,电流大部分时间为负,即电流整体方向与电压“顶着走”,两者相位差接近180°。如果你看到电流波形和电压波形同相位,说明能量在从电网往直流侧灌,模型跑成了整流模式。
5.2 用瞬时功率和FFT把结果量化
光看波形不够,还要量化验证。用Product模块把电网电压瞬时值e和电感电流瞬时值i乘起来,得到瞬时功率p,用To Workspace模块存到工作区。仿真结束后在命令窗口执行mean(p.signals.values),查看平均值。若平均值为负,说明有功功率在从逆变器流向电网,有源逆变成立;若为正值,就是整流状态。这个符号判断法非常直观,比单纯看相位更可靠。
谐波分析用powergui的FFT工具。双击powergui,选择Tools / FFT Analysis,信号源选电流测量模块的输入,基波频率设为50Hz,最大频率设为2500Hz,点击Display。正常情况下电流波形THD应该在5%以下,基波幅值与你设计的电感参数匹配;如果THD过高,基本就是电感太小或开关频率太低两个原因。u_ab桥输出电压的THD会非常高,这是SPWM的正常特征,谐波主要集中在载波频率及其边带附近。
5.3 调制比与相位角对功率方向的影响
参数敏感性分析是理解仿真本质最好的方法。保持其他参数不变,把Sine Wave的Phase从0.1rad改成-0.1rad,重新运行,你会发现平均功率符号反转,电流相位也跟着反转,系统从逆变变成了整流。这就是功率角控制的基本逻辑。
再把调制比从0.85改成0.5,你会发现电流明显减小,因为桥出口基波电压下降了,电压差不足以推动大电流。如果调制比降到0.7以下,电流可能变得很小甚至断续。这就是为什么前面参数设计时强调“幅值决定能不能送”的原因。建议你实际把这两组参数跑一遍,记录功率均值变化,比看十遍理论都管用。
6. 常见问题排查实录:发散、直通、波形畸变逐个排
6.1 仿真发散:先查步长再查缓冲电路
最常遇到的报错是仿真发散,表现为电流波形瞬间飙到极大值然后变成NaN,或者干脆提示数值不稳定。大多数人第一反应是模型接错了,其实是求解器设置问题。有源逆变电路里同时存在高频PWM开关信号和工频正弦信号,属于典型的刚性系统,默认的ode45其实不适合跑这种模型。
解决办法有两条路。连续仿真时,把求解器改成ode23tb,最大步长Max step size设置为1e-5。5kHz开关周期是0.0002s,1e-5s最大步长意味着每个开关周期至少采样20步,足够描述PWM边沿。如果你非要偷懒设成1e-4,载波边沿可能被求解器跳过,波形就错了。另一条路是直接用离散仿真:powergui选Discrete类型,Sample time设为1e-6,求解器选discrete。离散仿真的优点是速度快、无代数环问题,缺点是模型离散化后开关边沿存在一个采样周期的量化误差,但工程上完全够用。
6.2 同一桥臂直通:验证门极信号的互斥性
如果你看到直流源电流异常大,同时输出电压波形完全不对称,大概率是同一桥臂上下管的门极信号同时为1了。正如前面所说,理想互补逻辑不会直通,但如果你改了门极信号顺序,或者直接把A和NOT A给错了端子,桥臂就可能直通。
排查方法是把门极信号接入Scope直接观察。同时显示g1和g2,如果同一时刻两者都是1,说明直通。最常见的接线错误是把g3和g4的顺序搞反,因为Universal Bridge门极端子按臂1上、臂1下、臂2上、臂2下的顺序排列,有些人下意识认为1、2是上管、3、4是下管,其实不是。当你发现桥臂电压不是±400V跳变、而是出现0V电平,第一反应就是门极顺序错了。
6.3 电流不是正弦:初始相位和同步问题
有些情况下波形能跑,但电流严重畸变,或者带有直流偏移。常见原因有三个。第一个是正弦调制波初相和电网电压不同步,两者频率如果不严格相等,波形就会一直晃动。确保Sine Wave的频率设为2×pi×50,不要自己写成数值计算产生频率误差。第二个是仿真初始时刻电感电流突变过大,可以在Series RLC Branch的初始条件里把电感初始电流设为0,让系统从零状态开始。
第三个是仿真时间太短,你才跑到0.01s就开始截波形,此时暂态分量还没衰减完,看到的自然不是正弦。这个电路的电感时间常数大约是L/R=0.005s,你至少要跑到0.04s以后再看稳态波形。我一般会跑0.1s,保证至少有5个工频周期进入稳态。
最后的实践体会
做完这个仿真之后,我对有源逆变的理解从“公式能背”变成了“心里有数”。你在调参数时不要只盯着Scope看,建议把瞬时功率平均值变成模型内的一个Display显示,这样每次调整调制比、相位角,都能立刻看到功率方向变化。我也建议你把不同参数组合下的数据用To Workspace存下来,在MATLAB脚本里批量计算THD和功率,你会发现参数对谐波的影响比想象中复杂,但这也是做电力电子仿真最有趣的地方。这组模型跑通之后,你可以继续往三相桥、带PLL同步、电流闭环控制的方向扩展,基础就是今天这半个小时的功夫。