
单相PWM整流器这个题目大多数人是先在教材上看到四象限运行四个字然后一头雾水。我第一次接手这类项目时也一样手里有个单相全桥、一组电流采样、一块DSP脑子里却理不清为什么同样四个开关管既能当整流器又能当逆变器。后来把相量图和白天的实测波形对上号才算真正把这个概念吃透。这篇东西不打算按教材顺序铺开而是从四象限到底是谁在跑这个问题切入一层层把拓扑、开关函数、相量关系、控制环、调制细节和现场踩过的坑讲清楚。适合正在做储能变流器、PFC电源、电机驱动回馈单元或者准备做相关毕业设计的朋友看完应该能自己搭出一套能跑起来的模型。1. 四象限运行的本质一块电压电流平面上的能量流向图1.1 四个象限分别对应什么工作状态先把坐标系定下来横轴取交流侧电压的瞬时值 u_s纵轴取同一时刻交流侧电流的瞬时值 i_s。任意一个瞬间(u_s, i_s) 这个点在平面上落在哪个区域就决定了这一刻能量往哪边走。瞬时功率 p u_s · i_s这是唯一需要盯住的判据。第一象限u_s 0 且 i_s 0p 0交流侧把能量送进直流侧第三象限u_s 0 且 i_s 0负负得正p 仍然 0还是交流侧送能量第二象限u_s 0 且 i_s 0p 0直流侧把能量倒送回交流侧第四象限u_s 0 且 i_s 0一样是回馈这里有个容易犯的迷糊一个工频周期里 u_s 是正弦变化的所以真正决定工作点扫过哪几个象限的不是某一瞬间的位置而是电流相对电压的相位差。单位功率因数整流时i 和 u 同相轨迹就是 u-i 平面上过原点的一条斜线只经过一、三象限单位功率因数逆变时i 反相轨迹落在二、四象限如果电流滞后电压 90°轨迹就变成一个覆盖四个象限的圆或者椭圆。换句话说四象限运行并不是说某个固定时刻同时用到四个象限而是说通过控制电流相位工作点轨迹可以停在电压电流平面上的任意位置。这个理解一旦建立后面所有控制策略的存在意义就顺理成章了。电流相对电压相位有功 P无功 Q工作点轨迹典型工况同相 0°正吸收0一、三象限斜线单位功率因数整流反相 180°负发出0二、四象限斜线单位功率因数逆变滞后 90°0正感性顺时针圆/椭圆纯感性无功补偿超前 90°0负容性逆时针圆/椭圆纯容性无功补偿1.2 二极管整流为什么被死死锁在第一象限普通不控整流桥四个二极管的方向是固定的交流侧电流只能从电网流进桥不能反向流回电网。器件本身的单向性把能量流向钉死在一、三象限这条线上有功功率只能是正的。就算输入电流因为电容滤波变成尖峰状基波相位依旧贴着电压跑永远到不了二、四象限。想让电流反向流就必须用可控器件——IGBT 或者 MOSFET。但光有可控器件还不够每个开关管旁边必须反并一个二极管。很多人第一次画拓扑时觉得这个二极管是多余的反正开关管关断时电流总得有路走其实它的作用远不止续流当电流方向和开关管允许的方向相反、但电路又需要维持通路时反并二极管就是那条唯一的路。没有它无功功率无法交换电感里存的能量也放不出去。1.3 从能整流到能四象限跑要跨过三道门槛第一道是交流侧必须串一个电感 L。它同时扮演三个角色储能缓冲、限制电流纹波、提供电流跟踪所需的 di/dt 余量。没有它u_ab 直接等于 u_s控制器就失去了自由度和二极管整流没本质区别。第二道是直流母线电压必须高于交流电压峰值。这是单相 PWM 整流器的Boost 本性后面第 3 节会详细算。母线电压够高才能让 u_ab 的基波幅值压过 u_s从而在任意相位上把电流推出来。第三道是必须有闭环控制。开环跑不出可控电流因为电网电压波动、负载变化、电感参数漂移都会让电流跑偏。电压外环加上电流内环这套结构就是这个变换器能站住脚的骨架。2. H桥拓扑与开关函数四象限能力的物理来源2.1 四个桥臂、反并二极管和交流电感各管什么直流侧一颗大电容 C交流侧一个电感 L中间是四个开关管构成的 H 桥。A 桥臂上管 T1 下管 T2B 桥臂上管 T3 下管 T4每个管子都反并一只二极管 D1 到 D4桥臂中点 a、b 通过电感接到电网。开关管决定桥臂中点电位是 u_ab 电平的执行器反并二极管为与开关管导通方向相反的电流提供通路是四象限的必要条件交流电感 L储能、滤波、限制 di/dt是升压能力的基础直流电容 C稳压、吸收单相固有的二倍频脉动已经有很多资料讲这个拓扑但真正上手时容易忽略的是这四个管子永远处在两两导通的状态同一桥臂上下管不可能同时长时间导通必须留死区。这个约束直接决定了后面的调制设计和死区补偿逻辑。2.2 开关函数建模u_ab 是怎么被拼出来的定义一个开关函数 S_i上管导通取 1下管导通取 0。桥臂中点相对直流负母线的电位就是 S_i · U_dc。于是桥臂间电压u_ab (S_a − S_b) · U_dc这个形式在教材里看起来简单但实测时非常关键。四种组合对应三种电平S_aS_bu_ab正电流i 0实际通路10U_dcT1或 D1 T4或 D401−U_dcT2或 D2 T3或 D3110T1、T3 同通a、b 同接正母线000T2、T4 同通a、b 同接负母线实际设计控制器时用的是平均模型引入占空比 d_a、d_b ∈ [0,1]开关周期平均电压u_ab (d_a − d_b) · U_dc。这个式子是后面所有电流环设计的地基PID 输出到占空比的映射就是靠它。很多新人调不好电流环问题往往就出在这里——把 PWM 生成逻辑和平均模型对不上号。2.3 为什么交流电感省不掉从能量角度看电感是电网和直流侧之间的缓冲池。一个开关周期里它先把电网能量存进去再放给直流侧。整个过程和 Boost 变换器一模一样只是这里的输入电压是正弦变化的。所以单相 PWM 整流器本质就是一个四象限双向 Boost/Buck 变换器。从公式看两个约束同时存在。纹波约束给出电感下限双极性调制下最大电流纹波峰峰值约为Δi_pp ≈ U_dc · Ts / (4L)希望纹波小就得加大电感。电流跟随能力给出上限控制器能施加的最大电压差是U_dc − |u_s|电感太大di/dt 跟不上指令电流波形就被拖平了。工程上的经验取值是让额定电流峰值对应的纹波落在 15%~20% 范围内既保证波形干净又不牺牲动态。举个实际数字U_dc 400 V开关频率 20 kHz要求最大纹波峰峰值 2 A那么L ≤ 400 / (4 × 20000 × 2) 2.5 mH。实际选型往往在 1~2 mH 之间因为它还要兼顾跟随能力。3. 用相量图把四象限算明白3.1 一条方程就够u_s L·di/dt u_ab忽略交流侧等效电阻回路的电压方程就是这一条。稳态下电流是正弦的i(t) I_m·sin(ωt φ)那么 L·di/dt 也是正弦量只是超前电流 90°幅值是 ωL·I_m。写成相量形式更直观U_ab U_s − jωL·I。以电流 I 为参考U_s 落在电流方向上同相或反相jωL·I 垂直于电流方向。这三者构成一个直角三角形斜边之一就是 U_ab 的幅值|U_ab| sqrt(U_s² (ωL·I)²)从这个式子可以直接读出两个结论。第一不管电流相位怎么变U_ab 的幅值总是略大于 U_s这就是为什么母线电压必须高于电网峰值。第二U_ab 相对 U_s 的相位角就是控制电流相位的抓手——想要电流滞后就让 U_ab 滞后一点想要电流超前就让 U_ab 超前一点。3.2 四种典型工况的相量差异以 U_s 为参考横轴逐一看几个工况单位功率因数整流I 与 U_s 同相jωL·I 落在虚轴正方向U_ab 的实部是 U_s虚部是 −ωL·I所以 U_ab 比 U_s 略大且略微滞后。电流从电网流入变流器。单位功率因数逆变I 与 U_s 反相jωL·I 落在虚轴负方向U_ab 实部是 U_s虚部是 ωL·I幅值同样略大于 U_s但相位略超前。此刻能量从直流侧倒送电网。纯感性无功吸收无功I 滞后 U_s 90°jωL·I 与 U_s 反相U_ab 落在 U_s 轴上但幅值缩小。此时有功近似为零全是无功交换。纯容性无功发出无功I 超前 90°jωL·I 与 U_s 同相U_ab 幅值比 U_s 更大。这个工况对母线电压的裕量要求最高。把这四种情况在纸上各画一遍再对照仿真波形看电流相位比死背公式管用得多。3.3 直流母线电压的下限是怎么来的u_ab 是 PWM 拼出来的双极性调制下其基波幅值最大只能到 U_dc。要让上面那条三角关系成立就必须满足U_dc ≥ sqrt(U_s² (ωL·I)²)再加上电网电压允许 ±10% 的波动裕量以及开关次谐波和死区带来的畸变余量工程上一般取实际需要的 1.1 到 1.2 倍。实测例子电网 220 V 有效值峰值约 311 V加上电感压降和波动余量母线取 400 V。这个数字在单相储能 PCS 和 PFC 电源里几乎是标准答案。有朋友一开始贪图降压比例把母线设计成 350 V结果逆变回馈时稍微电网电压一升高电流就顶不上去波形直接削顶。母线电压这东西宁高勿低代价只是开关损耗高一点。3.4 有功无功解耦的直观解释把电流分解成与 U_s 同相的 I_p 和正交的 I_q 两个分量有功 P 与 I_p 成正比无功 Q 与 I_q 成正比。控制 I_p 就控制能量流向和大小控制 I_q 就控制无功补偿深度。这就是 dq 旋转坐标系控制的思想来源。单相系统没有天然的正交相所以需要自己构造 β 轴分量方法在第 4 节展开。4. 控制环怎么搭从电流指令到开关信号4.1 电压外环与电流内环的分工外环管直流母线电压输出是有功电流指令的幅值内环管电流波形把指令乘上同步信号后跟踪出来。两者带宽必须拉开典型外环 10~20 Hz内环 1~2 kHz。带宽没拉开会出现什么问题外环会去响应二倍频脉动把 100 Hz 的分量带进电流指令进而污染出三次谐波电流进电网。这是单相系统最常见的隐性问题之一。我的做法是在外环反馈路径上加一个二倍频陷波器或者把外环带宽压低到 20 Hz 以下让它的截止频率远离 100 Hz。具体用哪种取决于对母线电压波动的容忍度要求母线纹波小就得用电容硬扛要求电容小就得让外环响应慢一点。启动阶段还需要预充电和软启动两步。直流电容一开始是空的直接闭合主回路会有巨大的冲击电流轻则跳保护重则炸管。先在交流侧串限流电阻把母线充到额定值附近再切旁路然后让电压指令缓慢爬升到目标值。这套流程在样机阶段一定要先做别嫌麻烦。4.2 单相没有天然正交分量怎么构造这是单相控制区别于三相的核心难点。三相系统里 Clarke 变换能直接拿到 αβ 两个正交分量单相没有。常用办法有三种四分之一周期延时把采样电流延时 1/4 工频周期作为 β 分量。实现最简单一个环形缓冲区搞定但电网频率偏移或者动态变化时正交性会破坏导致功率计算有误差。二阶广义积分器SOGI实时生成一对正交分量对频率偏移有自适应能力是目前单相并网和整流器里最主流的方案。SOGI 的两个输出天然正交而且对谐波有一定抑制。全通滤波器幅频平坦、相频移相 90°结构简单。缺点是只在一个频率点严格正交电网频率跑偏就有误差。选型上做固定频率的实验台架用四分之一延时完全够做并网产品或者电能质量要求高的场合直接上 SOGI。SOGI 的参数整定关键是阻尼比通常在 0.707 附近太小会产生振荡太大正交性变差。4.3 电流内环三种实现方式的取舍方案优点缺点适用场景滞环控制响应快、无需载波、鲁棒性好开关频率不固定、滤波器难设计、器件损耗不均小功率、对谐波要求不高的场合PI SPWMdq 下开关频率固定、理论成熟、易做限流需要坐标变换、d 轴 q 轴耦合、需解耦通用方案量产主流PR 比例谐振无需坐标变换、对交流量零静差、可选择性补偿谐波参数整定稍麻烦、对频率偏移略敏感单相系统主流兼顾性能与实现难度PR 控制器的传递函数是G(s) Kp 2Kr·ωc·s / (s² 2ωc·s ω0²)其中 ω0 是工频角频率ωc 决定谐振峰的宽度。它的妙处在于直接在静止坐标系下对工频交流量做到零静差省掉了坐标变换和延时构造对单相系统非常友好。想再加一点 3 次、5 次谐波抑制就把对应频率的谐振项并联上去代价是计算量上升。如果是在 DSP 上跑电流环中断频率设到开关频率同量级20 kHz 对应 50 μs 一次PR 计算量在这个周期里完全来得及。下面是一段简化的 C 代码结构方便对号入座/* 单相 PWM 整流器电流环主流程简化示意 */ void current_ctrl_isr(void) { /* 1. 采样 */ float ia adc_read_current(); float us adc_read_grid_voltage(); float udc adc_read_bus_voltage(); /* 2. 过零/锁相得到 sin 与 cos */ float s sin_theta(); float c cos_theta(); /* 3. 虚拟正交分量这里用四分之一周期延时法 */ float ib delay_quarter_cycle(ia); /* 4. dq 变换把工频量变成直流量 */ float ip ia * s ib * c; /* 有功分量 */ float iq -ia * c ib * s; /* 无功分量 */ /* 5. 电压外环输出电流指令幅值这里直接给定 */ float ip_ref voltage_loop_out(udc); float iq_ref 0.0f; /* 单位功率因数无功给定为 0 */ /* 6. PI 调节输出 dq 轴电压指令 */ float up pi_ctrl_p(ip_ref - ip); float uq pi_ctrl_q(iq_ref - iq); /* 7. 反变换得到交流电压调制波 */ float uref up * s - uq * c; /* 8. 归一化后交给 PWM 模块注意限幅 */ pwm_set_duty(uref / udc); }这段代码里最容易被忽略的是第 7 步之后必须做限幅否则母线电压一掉指令就超过调制上限波形削顶甚至过流。还有一个细节iq 的符号约定要和采样方向对齐方向反了会变成正反馈电流直接发散。4.4 限流、保护与故障处理交流侧过流、母线过压、电网欠压、开关管直通、温度过高这几路保护必须在硬件和软件里各做一遍。硬件用比较器直接封锁 PWM软件中断里再做一次判断。有一回我们的样机在逆变回馈模式突然掉负载母线电压一路飙到 450 V 才被软件保护切断开关管已经接近耐压极限。后来加了制动斩波器和制动电阻超压时把多余能量泄放掉才算彻底解决。这种事纸上推演看不出来实测才会暴露。5. 调制、死区与二倍频脉动三个绕不开的工程细节5.1 调制方式对电流纹波的影响单相 H 桥有三类常见调制双极性调制u_ab 在 U_dc 和 −U_dc 之间跳变每个开关周期电流纹波大谐波集中在 f_sw单极性调制u_ab 在 U_dc、0、−U_dc 三点之间跳变等效开关频率翻倍纹波明显减小单极倍频调制两个桥臂独立调制纹波更小但共模电压和电磁干扰略高实测对比过同样 20 kHz 开关频率、同样电感单极性调制下电流纹波大约是双极性的一半左右代价是共模干扰和驱动逻辑稍复杂。做小体积、高功率密度的样机基本都选单极性。教程里为了讲清楚原理常从双极性入手但真正做产品时双极性用得不多了。需要注意单极性调制下两个桥臂的开关时序必须严格配好否则会出现 u_ab 不受控的电平跳变。我的经验是先把调制逻辑单独用示波器验证一遍确认 u_ab 的电平和理论表完全一致再接电流环这样调试时问题会少很多。5.2 死区引起的电流过零畸变死区是同一桥臂上下管切换时必须插入的间隔典型 1~3 μs。它的副作用是输出电压偏离理想值等效误差为Δu ≈ −sign(i) · (t_d / Ts) · U_dc。这个误差在电流过零点附近最讨厌电流符号本身在抖动死区误差的方向跟着抖就会在电流波形的过零处产生平台或者尖刺把 THD 拉上去。解决路径有三条一是基于电流符号做死区补偿简单有效但对符号判断的准确性有要求二是在零电流附近区间用双极性调制减小死区效应的幅度三是加装合适大小的电感把过零处的电流变化率压平。这三条我都试过一般两三条组合用效果最好。单独只靠补偿的话采样零漂一大符号判断就会错反而把波形搞得更糟。5.3 单相绕不过去的二倍频脉动这一条是单相系统的胎里带问题绕不开。单位功率因数下u_s 和 i_s 都是正弦同相瞬时功率就是p u_s · i_s U_m I_m sin²(ωt) P − P·cos(2ωt)。也就是说直流侧不光有平均功率 P还叠了一个二倍频的脉动分量。如果是三相系统三相瞬时功率之和是常数就没这个问题。脉动功率必须有地方去最直接的办法是让直流电容吸收。电容储能变化量等于脉动功率对时间的积分峰值为ΔE P / (2ω)。结合电容能量公式C·U_dc·ΔU P / (2ω)可以反推需要的电容C P / (2 · ω · U_dc · ΔU)代入一组实际数据P 1000 Wω 314 rad/sU_dc 400 V要求母线波动 ΔU 不超过 20 V则C 1000 / (2 × 314 × 400 × 20) ≈ 199 μF。想压到 5 V电容就得 800 μF 左右。这就是为什么单相 PWM 整流器的直流电容总比三相系统显得夸张1000 W 的功率用 1000~2200 μF 是常规操作。电容大意味着体积大、成本高、上电冲击大。所以高功率密度场合有两种替代思路一是外环带宽压低让母线允许更大的波动用控制换取电容二是加有源功率解耦电路用一组小容量的辅助开关和储能元件去对冲二倍频功率。后者对小体积系统很有吸引力但控制复杂度上了一个台阶看你对体积和可靠性的取舍。6. 实测调试中最容易翻车的几个环节6.1 电感选型、饱和与气隙绕电感这件事最怕的就是饱和。铁氧体、铁粉芯、铁硅铝各有各的饱和曲线但无论选哪种都要保证在最恶劣工况额定峰值电流叠加启动冲击下磁芯不饱和。饱和之后电感量骤降电流变化率失控电流环立刻失去控制后果就是过流保护动作甚至炸管。我的做法是绕线前先算好峰值磁通留至少 30% 的裕量磁芯一定要留气隙气隙可以显著提高饱和电流点绕好后用 LCR 表在额定电流附近测一下电感量的变化掉太多就重新绕。还有一点电感发热会进一步降低饱和点散热设计要跟得上。这些细节书上很少写却是样机连续跑几个小时后图形开始发散的常见原因。6.2 电流采样零漂与电网同步电流传感器霍尔或者采样电阻加运放的零点漂移是个慢性问题。漂移量哪怕只有几十毫安经过积分也会在电流上叠加直流分量导致电感或者变压器偏磁严重时磁芯偏到饱和。在软件里加一个慢速的零漂跟踪修正就能缓解具体做法是让电流指令的长期平均值为零用这个平均偏差去修正采样零点。电网同步同样关键。过零检测电路简单但电网畸变时过零点会抖动SOGI-PLL 或者基于滤波的 PLL 鲁棒性更好代价是动态响应慢一点。这里有个权衡做并网的场合对相位精度要求高上 PLL做独立实验台架过零检测够用。无论哪种同步信号一旦丢了整个变换器就会失控所以同步丢失的检测和保护逻辑必须有。6.3 能量回馈时母线电压被抬高逆变回馈模式下直流侧的能量往交流侧送。如果此时负载不能吸收这部分能量母线电压就会被顶起来。这在储能变流器、电机回馈制动、电梯能量回收里都是常见工况。解决办法是加制动斩波电路母线电压超过阈值就开通斩波管让制动电阻消耗多余能量。阈值的设定要留够裕量既不能太低影响正常回馈也不能太高让开关管接近耐压。另一个细节是回馈时的电流指令方向要和母线电压控制协同好。外环输出的是有功电流指令的幅值和符号符号决定整流还是逆变。如果符号切换时没有过渡容易产生冲击。我的经验是在指令上加一个变化率限制让状态切换平滑一点对波形和器件都更友好。6.4 开关管与体二极管的发热做单相 PWM 整流器体二极管的反向恢复和死区效应会让开关管和二极管同时发热。特别是逆变回馈模式下某些开关周期里电流走的是反并二极管而非沟道损耗分布和纯整流时完全不同。选型时要同时考虑开关损耗和二极管损耗不能只看沟道参数。实测时用热像仪扫一下几个管子如果发现某一对明显比另一对热多半是电流方向导致的损耗不均这时候可以调整调制策略让损耗分布更均匀。还有一个容易忽略的点门极驱动电阻的取值对开关损耗影响很大阻值太大则开关慢、损耗高太小则容易产生振荡和电磁干扰。样机调试阶段做个开关波形的对比实验很快就能找到合适的值。7. 仿真先行把模型跑通再上硬件7.1 仿真里必须验证的四件事上硬件之前把模型Simulink 或者 PLECS 都行搭好重点验证四件事一是四象限切换是否平滑整流到逆变的过渡有没有冲击二是母线电压在负载突变和回馈时的波动范围三是电流波形 THD 是否满足目标四是死区加入后过零畸变的程度。这四件事在仿真里跑一遍能排掉大部分低级错误。仿真里最容易偷的懒是死区和器件损耗的建模。理想开关跑出来的波形会很漂亮让人误以为一切顺利。建议早早把死区时间加进去有条件就用电热耦合模型这样对实际波形会有心理预期调试时不会手忙脚乱。7.2 从仿真参数到硬件参数的映射仿真里的电感和电容都是理想值实物要考虑直流电阻、饱和、等效串联电阻ESR。直流电容的 ESR 决定了二倍频纹波电流下的发热选电容时额定纹波电流这个参数不能忽略。电感的直流电阻决定了通态损耗大电流场合需要用粗导线或者铜箔绕制。还有一点仿真里电网是理想正弦源实际电网有背景谐波、有内阻、有电压跌落。整机联调时最好加一台可编程电源模拟这些工况比直接接市电安全问题也更容易复现。7.3 上电调试的完整顺序先不接主功率只验证控制和采样通路确认同步信号、电流采样、PWM 输出都正常接限流电阻给母线预充电确认电压能充到额定值切旁路电阻低压条件下做开环测试确认 u_ab 和调制逻辑一致闭环投入从小电流指令开始逐步加到满载手动切换整流和逆变状态观察母线电压和电流的过渡最后加负载突变、电网跌落等动态测试每一步都要留出足够时间观察波形不要为了赶进度跳步。我见过太多炸管的案例都是跳过预充电或者开环验证直接上闭环省下来的那点时间远远不够返工的成本。单相 PWM 整流器这套东西原理层面的核心就是那条回路的电压方程和它对应的相量三角形剩下的拓扑、控制、调制、保护都是围绕它展开的工程实现。把相量图在白纸上画到烂熟把仿真里的死区和二倍频都加进去再按顺序一步步上电这套流程走完四象限运行就不再是个抽象的名词了。