ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SPWM单相全桥逆变器仿真:100V直流到220V交流的调制滤波升压

SPWM单相全桥逆变器仿真:100V直流到220V交流的调制滤波升压

简介:这份单相逆变电源Matlab仿真研究文档面向自动化、电气工程等专业学生及电力电子入门学习者,对应课程设计或小型逆变电源仿真练习,重点解决从100V直流输入到220V单相交流输出的方案设计与Simulink验证问题。包内仅含1个doc文件,约378KB,篇幅覆盖任务书、摘要、方案设计、单相桥式PWM逆变电路、SPWM工作原理、升压变压电路、LC滤波电路、Simulink建模与仿真实现、心得体会及参考文献,可按章节对照完成设计报告与模型搭建。已有212人学习,适合需要参考完整课程设计结构、SPWM调制思路和仿真波形分析写法的读者,也能帮助梳理主电路参数选择、变压器与滤波环节的作用,以及如何组织仿真结果与结论。

1. 从 100V 直流到 220V 交流:逆变器其实从不生成正弦波

真正反直觉的地方在于:单相逆变器从头到尾没生成过一个正弦波。它只有四只开关管和一条 100V 直流母线,能做的事就是把正负母线来回接到负载上,输出一连串幅值恒定、宽度可变的方波。示波器上那条漂亮正弦,是 LC 滤波器滤掉高频成分后剩下的基波,加上人眼对连续波形的默认信任。想通这一点,才能理解为什么调制比、载波比、滤波截止频率动一下,波形就跟着变脸——它们分别决定方波的面积、疏密和残留。这份仿真资源拆的就是这条链路:100V 直流被斩成脉宽按正弦规律变化的脉冲,再经 LC 与升压变压器变成 311V 峰值、50Hz 的单相交流。

2. 面积等效:SPWM 凭什么用一串方波冒充正弦

2.1 从 N 等份正弦半波到等幅不等宽脉冲

把正弦半波沿时间轴分成 N 等份,每一份用一个矩形脉冲顶替,要求脉冲的中点与对应正弦段的中点重合、面积与正弦段相等,得到的脉冲序列在低通滤波后与原始正弦几乎无法区分。这就是面积等效原理,也叫冲量等效——负载和滤波器具有惯性,它们响应的是脉冲的面积积分,而不是某一瞬间的电压值。这也解释了为什么载波三角波的频率必须远高于基波:等份越细,等效精度越高,低次谐波越少。

为什么脉冲必须等幅?因为直流母线只有一个电压等级,开关管要么全通要么全断,没有中间态。调制的自由度只有宽度一个,这也是 PWM 里 Width 这个词的来源。想让输出幅值变大,只能整体加宽脉冲,也就是提高调制比,而不是去动脉冲高度。

频率维度上的三个量要先分清:基波频率 50Hz 决定输出周期;载波频率决定每半周有多少个脉冲,也就是等效的精细程度;载波比 N = fc/f0 决定谐波落在哪里。N 越大,谐波离基波越远,滤波越容易,但开关损耗也越高。这是一条从头贯穿到尾的取舍线。

2.2 单极性调制:V1/V2 按半周切换,V3/V4 按比较结果切换

原文给出的开关逻辑值得逐句拆。设调制信号 ur 为正弦波,载波 uc 在 ur 的正半周取正极性三角波,在 ur 的负半周取负极性三角波——注意,载波的极性是跟着调制波翻转的,这跟双极性调制里载波始终在 ±1 之间摆动完全不同。

正半周内,V1 保持通态、V2 保持断态。当 ur > uc 时让 V4 导通、V3 关断,桥臂中点对负母线短接,输出 u0 = +Ud;当 ur < uc 时让 V4 关断、V3 导通,输出 u0 = 0。负半周反过来:V2 常通、V1 常断,ur < uc 时 V3 通 V4 断,输出 -Ud;ur > uc 时 V3 断 V4 通,输出 0。

这样得到的输出有三种电平:+Ud、0、-Ud。每次开关动作引起的电压跳变幅度只有 Ud,而双极性调制是 2Ud。跳变幅度减半带来的直接好处是 dv/dt 小、电磁干扰低;更深一层的好处是谐波频谱——单极性调制的最低次谐波群出现在 2fc 附近,而双极性在 fc 附近,同样的载波频率下滤波器的压力小一半。这是单极性方案在中小功率单相逆变里被广泛采用的根本原因。

代价是控制逻辑复杂了一倍:四只管子不再是简单的两两互补,而是要先判断调制波处于哪个半周,再决定哪一对桥臂参与高频斩波、哪一对保持工频通断。仿真里这个判断藏在 PWM 生成器的 Generator Mode 选项里,选错了就直接翻车。

2.3 傅里叶视角:1.27Ud 是方波的上限,ma·Ud 才是 SPWM 的刻度

原文给了两个公式:基波幅值 Uo1m = 4Ud/π ≈ 1.27Ud,基波有效值 Uo1 = 2√2Ud/π ≈ 0.9Ud。这两个数描述的是 180° 方波逆变——开关管每半周翻转一次、完全不调制的情形。它的基波幅值确实比 SPWM 高,但 3、5、7 次谐波一个不少,滤到能看的地步代价极大。这就是为什么宁可牺牲幅值上限,也要用 SPWM 把谐波推到高频段去。

SPWM 在线性调制区(ma ≤ 1)的基波峰值是 ma·Ud,这是一条正比关系,也是整个仿真里最好用的标尺。ma = 0.87、Ud = 100V,桥臂输出的基波峰值就是 87V。注意这个 87V 是滤波器之前的裸波形峰值,后面每一级都会再打折。

f0 = 50; % 基波频率,Hz fc = 2000; % 载波频率,Hz;载波比 N = fc/f0 = 40 ma = 0.87; % 调制比,线性区上限为 1 Ud = 100; % 直流母线电压,V Ts = 1/(40*fc); % 仿真步长,取载波周期的 1/40 保证交点精度 t = 0:Ts:2/f0; % 仿真两个基波周期 ur = ma*sin(2*pi*f0*t);% 正弦调制波 % 对称三角载波,幅值 [-1, 1],周期 1/fc tri = 2*abs(2*(fc*t - floor(fc*t + 0.5))) - 1; uc = tri .* sign(ur); % 单极性:载波极性跟随调制波半周翻转 u0 = zeros(1, numel(t)); % 桥臂中点输出电压,三电平 pos = ur >= 0; % 正半周:V1 常通、V2 常断 neg = ~pos; % 负半周:V2 常通、V1 常断 u0(pos & (ur > uc)) = Ud; % V4 导通,输出 +Ud u0(pos & (ur <= uc)) = 0; % V3 导通,输出 0 u0(neg & (ur < uc)) = -Ud; % V3 导通,输出 -Ud u0(neg & (ur >= uc)) = 0; % V4 导通,输出 0

这段代码把原文的文字逻辑直接翻译成了可执行的比较运算。Ts 取载波周期的 1/40,是为了让 ur 与 uc 的交点被足够密的采样点捕捉到——步长太大时,脉冲宽度的量化误差会直接变成波形上的毛刺。ma 控制基波幅值,改这一个数就能线性地调输出。u0 的取值只有三种,这是单极性三电平的直接体现,也是后面判断波形对不对的第一依据。

用一段 FFT 可以验证代码和公式是否对得上:

Y = fft(u0); N = numel(u0); f = (0:N-1)*(1/Ts)/N; [~, idx] = min(abs(f - f0)); % 定位 50Hz 谱线 U1m = 2*abs(Y(idx))/N; % 基波峰值 fprintf('基波峰值 %.1f V,理论 ma*Ud = %.1f V\n', U1m, ma*Ud);

仿真值与 ma·Ud 的偏差主要来自采样离散化和脉冲边沿的截断误差,通常在 1% 以内。如果偏差超过 5%,先去查 Ts 和 fc 是不是自洽,而不是怀疑公式。

ma 取 0.87 也不是随手写的。留出 13% 的裕量,是给死区、开关管压降和母线跌落兜底。工程上一般把 ma 压在 0.85 到 0.95 之间,超过 1 就进入过调制区,脉冲宽度饱和,输出基波不再随 ma 线性增长,谐波却迅速膨胀——这是仿真里看到正弦顶部被削平的最常见原因。

3. 单相全桥:四只开关管的导通次序为什么一步都不能错

3.1 桥臂分组与成对导通的硬约束

单相全桥有四个桥臂,V1 和 V4 组成一对,V2 和 V3 组成另一对,成对导通、两对交替。这个结构可以看成两个半桥拼起来,但真正的约束来自一条物理红线:同一桥臂的上下两只管子(V1 与 V2、V3 与 V4)绝对不能同时导通,否则 100V 母线被直接短路,电流只受器件内阻限制,实物上就是炸管。

刨掉直通组合,剩下的有效状态只有四种:V1V4 通输出 +Ud,V2V3 通输出 -Ud,V1V3 通输出 0,V2V4 通输出 0。所谓调制,就是在这四种状态里按正弦规律挑。单极性调制把其中两只管子降频使用——正半周 V1 一直通、负半周 V2 一直通,只有 V3、V4 参与高频斩波,这也是单极性相比双极性开关损耗更低的原因。

在 Simulink 里,这层约束由 Universal Bridge 模块内部保证,用户改的只是桥臂数量。但一旦自己用 Ideal Switch 搭桥,直通保护就必须自己加逻辑判断,否则仿真会在某一个时刻报出离谱的电流尖峰,甚至直接不收敛。

3.2 死区:仿真里看不见、实物上要命的那段时间

Simulink 的理想开关关断是瞬时的,仿真波形干净得像教科书。真实的 IGBT 关断有拖尾电流,如果 V4 还没完全恢复阻断能力,V3 就收到开通信号,母线瞬间短路。所以实际驱动必须在互补的两路门极信号之间插入死区时间,中小功率一般取 1 到 3 微秒,大功率可以到 5 微秒以上。

死区不是免费的。死区期间输出电压由续流二极管钳位,正半周丢掉的是一段 +Ud 的伏秒,等效于基波幅值下降,同时在输出里注入 5 次、7 次为主的低次谐波。ma 取 0.87 时仿真能跑到 87V 峰值,实物上往往只有 80V 出头,差值基本就是死区吃掉的。这条血泪经验值得记住:仿真对得上的参数,装到板子上要先减掉 5% 到 10% 的幅值余量。

补偿思路不复杂,检测输出电流极性,在电流为正时把开通信号提前、关断信号延后,把丢失的伏秒补回来。这个环节在课程设计的开环仿真里通常被跳过,但在任何要落地的方案里都躲不掉。

3.3 从三相两电平例子改成 2-arm bridge:每一步改的是什么

原文给的建模路径很务实:在 Help 里搜 Three-Phase Two-Level PWM Voltage Source Converters,拿三相两电平的现成例子改。这条路省掉了从零搭桥的时间,但改的时候必须清楚每个参数动的是哪一部分,否则改出一个四不像还查不出原因。

  • Universal Bridge 的 Number of bridge arms 从 3 改成 2:拓扑从三相变单相,桥臂少了三分之一。
  • Discrete PWM Generator 的 Generator Mode 从 6 pulses 改成 2-arm bridge (4 pulses):三相需要 6 路门极信号,单相全桥正好 4 路,脉冲数与桥臂数必须匹配,数量对不上时多余信号悬空、缺失信号接地,波形直接废掉。
  • Sample Time 改成 4.6e-04:约合 2174Hz,这是仿真的离散步长,必须比载波周期小一个数量级以上。
  • Modulation Index 改成 0.87:决定输出基波幅值,对应 87V 峰值的理论上限。
  • Frequency of output voltage 改成 50Hz:目标基波频率。
  • Carrier frequency 改成 200Hz:这一项和上面的采样时间其实是矛盾的,200Hz 载波配 50Hz 基波,载波比只有 4,每半周四个脉冲,谐波根本滤不干净;而 4.6e-04 的采样时间倒推回来是 2kHz 量级。这组参数是课程设计场景下的简化取值,实际工程里载波频率通常取基波的 20 到 100 倍,也就是 1kHz 到 5kHz。
  • 变压器变比设 1:1:先不升压,只做隔离,把逆变部分单独验证通过再往上加。
  • Scope 的 Time range 改成 0.08:正好显示四个基波周期,方便看稳态。

这套改法的价值不在参数本身,而在顺序:先改拓扑、再改脉冲、最后调幅值,每一步只动一个变量。这是排查任何仿真问题的通用纪律。

4. LC 滤波与升压变比:为什么 100V 要先斩成 40V 再升到 311V

4.1 理论 87V 峰值,仿真实测 40V:差的那一半去哪了

这是整份资源里最值得复盘的一处。按 ma·Ud 算,0.87 乘 100 得 87V 峰值;仿真跑出来的逆变部分输出只有 40V 峰值左右。差了 2.2 倍,如果不去追问,就只能靠反复试变压器变比去凑,那是玄学,不是设计。

第一个衰减来自滤波器。原文把 LC 的 Cut-off frequency 设成了 50Hz,而基波频率恰好也是 50Hz。二阶低通在截止频率处的幅频响应是 -3dB,也就是 0.707 倍,相移 45°。87 乘 0.707 得 61.5V,一步就掉了三成。这是典型的过度滤波:截止频率压得和基波一样低,谐波确实滤得干净,但基波自己也只剩七成。

第二个衰减来自负载分压。LC 滤波器的阻尼比跟负载电阻直接相关,阻尼比 ζ = (1/2R)·√(L/C)。负载重、R 小、ζ 大,衰减更多;负载轻、ζ 小,反而会在谐振点附近抬起来。仿真里如果负载电阻取得偏小,输出会被进一步拉低。

第三个衰减来自单极性调制下有效伏秒的折损,脉冲边沿、离散采样、死区(如果加了)都会吃掉一点。三项叠起来,40V 峰值是能解释得通的。LC 二阶低通的传递函数是 H(s) = 1/(LCs² + (L/R)s + 1),谐振角频率 ω0 = 1/√(LC),随手取一组典型值就能看到截止频率对基波的影响有多大:

L = 3e-3; % 滤波电感,H C = 470e-6; % 滤波电容,F R = 22; % 负载电阻,欧姆 w0 = 1/sqrt(L*C); % 谐振角频率 zeta = (1/(2*R))*sqrt(L/C); % 阻尼比,随负载变化 fcut = w0/(2*pi); % 截止频率 fprintf('谐振频率 %.1f Hz,阻尼比 %.2f\n', fcut, zeta); % 基波与载波频率处的衰减量 for f = [50, 2000] H = abs(1/(1 - (2*pi*f/w0)^2 + 1j*2*zeta*(2*pi*f/w0))); fprintf('%5d Hz 处幅值衰减 %.3f 倍\n', f, H); end

这段代码说明的是:截止频率一改,基波和载波频率处的衰减同时变。把 fcut 从 50Hz 抬到 200Hz(基波的四倍),基波处几乎不再衰减,2kHz 处仍有 40dB 左右的衰减,够用了。工程上的经验值是把截止频率取在基波的 1.5 到 3 倍之间,既保住基波,又让载波频率处的谐波衰减到 1% 以下。

4.2 巴特沃斯还是 LC 无源:有源滤波器为什么用不了

原文有一句话把取舍讲得很清楚:变频器输出信号电压高、电流大,不能采用有源滤波器,一般采用简单的 LC 低通滤波器。巴特沃斯描述的是幅频响应的形状——通带内最大平坦,没有纹波,靠增加阶数来提高阻带衰减速度。它可以用运放加 RC 做成有源形式,也可以用 LC 做成无源形式。但在 220V、几百瓦这个量级,运放供电撑死 ±15V,根本处理不了这样的电压电流,有源方案被直接排除。

所以实际能选的只有无源 LC 的阶数。二阶 LC 的阻带衰减是 -40dB/decade,三阶 -60dB/decade。SPWM 的谐波主要集中在载波频率及其边带,只要载波频率远高于截止频率,二阶就够。按 fc = 2kHz、fcut = 200Hz 算,衰减量是 40 乘 log10(2000/200) 等于 40dB,约 100 倍,把百分之几的谐波压到万分之几,波形已经相当干净。想再干净就上三阶,代价是多一组电感和电容,体积和成本跟着涨。

这里有个容易混淆的点:巴特沃斯是响应形状,LC 是元件实现,两者不是对立关系,而是可以叠加——用 LC 网络也能逼近巴特沃斯响应,只是元件值需要按归一化表反算。原文把两者并列说,是课程设计文档里常见的简化表述,读的时候要分清层次。

4.3 变比 100:777.5 的来历:从实测反推,而不是从公式硬算

按理想值算,输出要 311V 峰值、桥臂给 87V 峰值,变比应该是 311/87 ≈ 3.57,写成 100:357。但原文最终设的是 100:777.5,变比 7.775。这个数字的来源是把实测的 40V 峰值代进去:311/40 ≈ 7.78。原文那句理论计算的过程被排版弄乱了,但结论和实测是对得上的。

Udc = 100; % 直流母线电压,V ma = 0.87; % 调制比 U1m_ide = ma * Udc; % 裸桥臂基波峰值理论值,87 V Uo_rms = 220; % 目标输出有效值 Uo_m = Uo_rms * sqrt(2); % 目标峰值,311 V n_ide = Uo_m / U1m_ide; % 按理论值算,约 3.57 U1m_sim = 40; % 仿真实测的基波峰值 n_sim = Uo_m / U1m_sim; % 按实测值算,约 7.78

两个变比差了一倍多,差值就是第 4.1 节算出来的那几项衰减。这件事的教训不是「公式没用」,而是公式只给起点,最终参数必须从仿真波形反推。原文那句「若仿真出来的波形不满足要求,则可以反复设置升压变压器的参数」,说的就是这个过程——只不过如果不知道衰减从哪来,反复试就变成了碰运气,改十次也未必能收敛。

为什么不在直流侧先把 100V 升到 311V 再逆变?那需要额外一级 DC-DC,多一次变换就多一份损耗和体积;而变压器放在交流侧还能顺带做电气隔离,一举两得。这个取舍值得单独拿出来说,第 6 章会展开。

5. 波形不对先查哪里:SPWM 仿真的四类翻车现场

5.1 输出幅值不到预期:调制比、滤波衰减、负载分压三重叠加

现象:仿真跑完,Scope 上的正弦峰值只有理论 ma·Ud 的六成甚至一半,怎么调都上不去。

原因:三个因素独立衰减,叠在一起就非常可观。调制比本身不够高;滤波截止频率压得太低,把基波也削了;负载电阻偏小,LC 的阻尼把输出进一步拉下去。三者互相掩盖,单看总结果根本分不清是谁的锅。

解决:分段测量,这是排查波形问题的后悔药。先在逆变桥输出端、滤波器之前接一个 Voltage Measurement,看裸的 SPWM 波形峰值是不是 ma·Ud,这一步确认调制环节没问题;再往后接滤波器,看衰减了多少,跟手算的传递函数对一对;最后接变压器,验证变比。每一级只留一个变量,问题一定暴露在某一级上。从那以后我每次看到幅值不对,第一反应都是先把滤波器断开。

5.2 波形削顶或密集毛刺:采样步长与载波频率失配

现象:正弦顶部被削平,或者波形上叠了一层洗不掉的毛刺,FFT 看低频段谐波特别丰富。

原因:削顶多半是 ma 超过 1 进入过调制,脉宽饱和,基波不再线性增长。毛刺则有两种来源:采样步长大于载波周期的 1/20,比较交点采样不够密,脉冲宽度的量化误差直接变成波形抖动;或者载波频率与基波频率不是整数比,异步调制下每个周期的脉冲数不一样,波形出现周期性的爬行。

解决:ma 压在 0.9 以下,留裕量;Ts 至少取到 1/(20fc),要求高就取 1/(40fc);优先选同步调制,让 fc/f0 取 40、60、100 这样的整数。原文那组参数里,200Hz 载波和 4.6e-04 的采样时间本身就不自洽——后者对应 2kHz 量级,说明这两个值不是一处来的,照着抄就会踩坑。

5.3 只有半个周期或整体直流偏置:桥臂分组和脉冲数配错了

现象:输出只有正半周,负半周贴着零线;或者波形整体上移,过零点偏到一边去。

原因:最常见的错法是从三相例子改过来时只改了桥臂数、没改脉冲数。三相需要 6 路门极信号,单相全桥只要 4 路,Generator Mode 还留在 6 pulses,四只管子收到的信号就对不上,正负半周不对称。另一种情况是载波极性没跟随调制波翻转,负半周还在用正三角比较,V1/V2 该切换的时候没切换。

解决:核对 Universal Bridge 的 bridge arms 与 PWM Generator 的 pulses 是否匹配,单相全桥固定是 2 arms / 4 pulses;把四路门极信号单独接到 Scope 上,确认 V1 和 V2 在基波过零点处严格互补翻转,V3 和 V4 在半周内高频斩波。门极信号对了,输出一定对。

5.4 变压器副边不升反降:变比写反或同名端接错

现象:接上升压变压器之后,副边电压比原边还低,或者波形相位跟原边反了 180°。

原因:Simulink 里 Transformer 的变比按 V1/V2 定义,V1 是原边、V2 是副边,把目标值填到 V1 里就变成了降压。另一种是绕组同名端接反,副边反相,接上负载后相位关系全乱。

解决:先接一个 1:1 的隔离变压器跑一遍,确认通路和相位都对,再把副边参数乘上目标变比;用两个 Voltage Measurement 同时量原副边,实测变比和设定值对一对;如果相位反了,把副边绕组两端对调,或者直接在模块里勾选反向。

6. 先逆后升还是先升后逆:一个没有标准答案的取舍

整份仿真采用的路线是「100V 直流 → 逆变桥斩成 40V 峰值交流 → LC 滤波 → 升压变压器 → 311V 峰值」。这条路线简单、直观,变压器放在交流侧还兼做电气隔离。但它不是唯一解,另一条路是先在直流侧把 100V 升到 311V,再逆变成交流,省掉工频变压器。

对比项先逆后升(本方案)先升后逆
拓扑级数一级 DC-AC 加一级工频变压器一级 DC-DC 加一级 DC-AC
变压器工作频率50Hz,体积大、铁损铜损明显高频,体积小、效率高
隔离能力变压器天然隔离需要额外隔离措施
控制复杂度低,开环即可跑通高,DC-DC 要闭环稳压
轻载效率偏低,变压器空载损耗固定较好

课堂和课程设计场景几乎一边倒地选前者,因为拓扑短、参数少、仿真容易收敛,能把 SPWM 和滤波这两件事讲透。工业和产品场景则更多选后者,高频化是电力电子几十年不变的主线,变压器的体积和重量是硬指标。这不是谁对谁错,是场景不同。

仿真里怎么验证自己的选择?三个动作。固定 ma 扫描变压器变比,看输出对参数是否敏感——如果变比从 7.5 变到 8.0 输出就飘出 5%,说明前级滤波衰减太大,方案本身余量不足。对输出波形做 FFT,算到 40 次谐波的 THD,单极性加二阶 LC 一般在 3% 以内算合格。最后做一次负载突变,把负载电阻从满载切到半载,看输出跌落多少——开环仿真里这一下往往掉得很厉害,这就是为什么真实的逆变电源必须有电压闭环,而开环模型只能拿来验证原理,不能拿来定参数。

还有一个容易被忽略的验证方法:把仿真步长减半再跑一遍。如果波形

本文还有配套的精品资源,点击获取

返回列表