你有没有遇到过这样的场景:手里有一个直流电源,比如一块电池或者一个直流适配器,但你的设备需要的是交流电,比如一个220V的交流电机,或者一个需要纯净正弦波供电的精密仪器。这时候,你就需要一个“逆变器”。或者反过来,电网是交流电,但你的设备内部需要稳定的直流电,比如充电桩、服务器电源,这就需要“整流器”。
这听起来像是两个独立的问题,但如果你拆开市面上任何一台稍具规模的电源设备,无论是光伏逆变器、UPS不同断电源,还是电动汽车的车载充电机,你会发现它们的核心“心脏”部分,往往惊人地相似——一个由四个开关管(通常是MOSFET或IGBT)组成的“桥臂”,我们称之为全桥电路。这个看似简单的拓扑结构,通过不同的“玩法”,既能实现直流到交流的逆变,也能实现交流到直流的整流,而这一切的魔法,都源于对开关管通断时序的精确控制,也就是脉宽调制(PWM)。
很多人学习电力电子,会陷入一个误区:把逆变、整流、PWM控制当作三个孤立的知识点去记忆公式和波形。结果就是,面对一个具体的电路时,知道每个元件叫什么,却说不清它们为什么这样工作;能看懂仿真波形,却无法解释为什么参数要这样设置;能照着别人的代码调出PWM,一旦需求变化就无从下手。
这篇文章,我们不打算罗列三种电路的原理图然后平铺直叙。我想和你探讨一个更本质的问题:如何理解“全桥”这个通用硬件平台,以及“PWM”这个通用控制语言,是如何通过不同的“语法规则”,演绎出逆变和整流这两种完全相反的能量流动方向的?理解了这一点,你就不再是记忆电路,而是在设计电路。你会明白,为什么仿真时PWM Generator的设置至关重要,为什么整流电路也要用PWM,以及那些搜索热词里反复出现的“移相”、“互补”、“死区”到底在解决什么实际问题。
我们将从最基础的硬件——单相全桥电路出发,把它看作一个任由你指挥的“开关矩阵”。然后,我们赋予它第一套语法规则,让它成为一台正弦波逆变器,把直流变成我们想要的交流。接着,我们反转这套语法的逻辑,看看如何让它变成一台高性能的PWM整流器,不仅把交流变成直流,还能控制功率因数。最后,我们会把这些原理落地,谈谈在STM32、GD32这类MCU上实现时,那些藏在数据手册和CubeMX配置背后的工程考量。
1. 理解舞台:单相全桥电路——一个可控的“开关矩阵”
在深入复杂的控制之前,我们必须先彻底理解舞台本身。单相全桥电路,又称H桥,是这一切的物理基础。把它想象成一个有四个门的十字路口,电流是车流,我们的任务就是指挥这些门(开关)何时打开、何时关闭,来引导车流形成我们想要的路径和波形。
1.1 硬件构成与基本动作
一个典型的单相全桥电路由四个可控开关管(Q1, Q2, Q3, Q4)组成,通常每个开关管会反并联一个续流二极管。它们连接成一个“H”形,左侧桥臂由Q1和Q2组成,右侧桥臂由Q3和Q4组成。直流电源(Vdc)加在上下两端,负载(比如电机或变压器)连接在左右两个桥臂中点之间。
这个电路最核心的控制约束是:同一桥臂上下两个开关绝对不能同时导通(即Q1和Q2不能同时开,Q3和Q4不能同时开),否则会导致电源被直接短路,瞬间烧毁开关管,这被称为“直通”或“穿通”。因此,控制逻辑必须保证它们互补导通,并插入死区时间。
基于这个约束,全桥电路有三种基本的工作状态(以负载电流方向定义):
- 正向导通状态:Q1和Q4导通,Q2和Q3关断。电流路径为:Vdc+ → Q1 → 负载 → Q4 → Vdc-。此时加载在负载两端的电压为 +Vdc。
- 反向导通状态:Q2和Q3导通,Q1和Q4关断。电流路径为:Vdc+ → Q3 → 负载 → Q2 → Vdc-。注意电流流经负载的方向与状态1相反,此时加载在负载两端的电压为 -Vdc。
- 零状态:这有两种子情况。
- 上管导通零状态:Q1和Q3导通(或Q2和Q4导通)。此时负载两端分别被钳位到相同的电位(都是正或都是负),负载电压为0。
- 下管导通零状态:更常见的是让Q2和Q4导通(或Q1和Q3关断,所有下管导通),同样使负载电压为0。选择哪种零状态,会影响损耗和共模电压。
1.2 从开关状态到电压矢量
理解这三种状态是第一步。更关键的第二步是,我们需要用PWM信号来动态地、高频地在这些状态之间切换。为什么?因为我们的负载(比如电机的线圈)本质是一个大电感,电流不能突变。如果我们强行给电感加载一个固定的+Vdc电压,电流会线性上升;反之则下降。
PWM控制的核心思想就是:在一个非常短的时间周期(开关周期,比如100us)内,通过调整+Vdc、-Vdc和0这三种电压状态所占时间的比例(即占空比),来让负载两端的“平均电压”按照我们的期望变化。这个“平均电压”是在开关频率远高于目标波形频率时,由负载电感滤波后呈现出来的效果。
例如,如果我们想让负载得到+50V的平均电压,而Vdc是100V。那么在一个开关周期内,我们可以让电路工作在“+Vdc状态”一半的时间,“0状态”另一半的时间。这样,经过电感滤波后,负载感受到的就是一个平均值为50V的电压。这就是PWM调压的基本原理——用时间换幅度。
所以,全桥电路本身只是一个笨拙的、只能输出+Vdc, -Vdc, 0这三种离散电压的开关矩阵。而PWM控制,就是我们为这个矩阵编写的一套精妙的“时间管理程序”,让它最终能演奏出连续变化的电压交响乐。接下来,我们就看看如何为“逆变”这个目标编写程序。
2. 编写第一套程序:正弦波逆变电路原理——合成目标波形
逆变的目标很明确:输入是稳定的直流电压(Vdc),输出是频率和幅度可调的正弦交流电压(如220V/50Hz)。用我们刚才的比喻,就是指挥开关矩阵,让它输出的“平均电压”是一个光滑的正弦波。
2.1 SPWM:最直观的合成方法
最经典的正弦波脉宽调制(SPWM)原理,可以用一个非常形象的对比来理解:如果你想用一堆高低不等的积木垒出一个光滑的斜坡,你会怎么做?你会把积木切得更薄、更多,并且每一块积木的高度都对应着斜坡在该位置的高度。SPWM做的就是这件事。
具体实现上,我们需要两个关键信号:
- 调制波(Modulating Wave):这就是我们想要得到的最终正弦波,频率就是输出交流电的频率(如50Hz)。
- 载波(Carrier Wave):这是一个频率很高(通常几kHz到几十kHz)的三角波或锯齿波。它的频率决定了我们“切积木”的细密程度,即开关频率。
SPWM的生成规则很简单:在每个瞬间,比较调制波和载波的幅值。如果调制波大于载波,则输出高电平(对应驱动某个开关管导通);反之则输出低电平(对应关断)。对于全桥电路,我们需要生成四路PWM信号去分别控制Q1-Q4,并且要满足之前说的互补和死区要求。
对于单相全桥,通常采用双极性调制方式:
- 当调制波 > 载波时,令 Q1 和 Q4 导通(状态1,输出+Vdc)。
- 当调制波 < 载波时,令 Q2 和 Q3 导通(状态2,输出-Vdc)。
这样,负载两端得到的电压就是在+Vdc和-Vdc之间高速切换的PWM脉冲序列。经过负载电感(和通常后级加的LC滤波器)的滤波作用,高频的开关成分被滤除,剩下的低频分量就是我们想要的正弦波。调制波的幅度和频率,直接决定了输出正弦波的幅度和频率。
2.2 关键参数与工程实现中的“坑”
理解了基本原理,在仿真(如Simulink、LTspice)或实际MCU编程时,以下几个参数至关重要:
- 调制比(Modulation Index, Ma):调制波峰值与载波峰值之比。它直接决定了输出交流电压的幅值。当Ma ≤ 1时,为线性调制区,输出电压与Ma成正比。当Ma > 1时,进入过调制区,输出电压非线性增长,谐波含量也会增加。这是设置PWM Generator时第一个要算清楚的数。
- 载波比(Frequency Ratio, N):载波频率与调制波频率之比。它决定了输出波形的“细腻度”和开关损耗。N越大,输出正弦波越光滑,谐波越小,但开关管每秒开关的次数越多,开关损耗和发热也越大。需要在波形质量和效率之间折衷,通常对于50Hz输出,开关频率选择10kHz-20kHz(N=200-400)是常见范围。
- 死区时间(Dead Time):这是硬件安全的关键。由于开关管从导通到关断有延迟,为了防止上下管直通,必须在给上管关断信号和下管导通信号之间插入一段两者都关断的时间。死区时间太短会直通,太长会畸变输出电压波形、降低利用率。需要根据所用开关管(MOSFET/IGBT)的Datasheet参数精确计算。
- 输出滤波器设计:全桥输出是高频PWM方波,必须经过LC低通滤波器才能得到干净的正弦波。滤波器的截止频率需要远低于开关频率(通常1/10以下),但又需高于输出基波频率(50Hz)。这是一个经典的设计权衡,电感电容的取值会影响体积、成本、动态响应和滤波效果。
在Simulink中搭建仿真时,你需要正确设置PWM Generator模块的调制波(正弦)、载波(三角波)、频率、调制比,并将四路输出信号经过死区模块后,连接到全桥的四个开关管。在MCU中(如STM32使用高级定时器TIM1/TIM8),你需要配置时基生成载波频率,利用比较寄存器与内部或外部生成的调制波(正弦表)进行比较,自动生成带死区的互补PWM对。
3. 反转逻辑:单相PWM整流原理——驯服交流侧电流
现在,让我们把思维反转过来。如果全桥电路的交流侧接的是电网(220V/50Hz),直流侧接的是电池或电容,我们的目标变成了:把电网的交流电高效、可控地变成直流电,同时还能控制从电网吸取电流的相位,让电流和电压同相位(单位功率因数整流),甚至可以实现能量回馈(有源逆变,将直流能量送回电网)。这就是PWM整流器,也叫有源前端(AFE)。
3.1 从“被动”到“主动”的跨越
传统的二极管整流或晶闸管相控整流是“被动”的,电流只能从电网流向直流侧,且电网侧电流波形畸变严重,功率因数低。PWM整流则是“主动”的,它把全桥电路看作一个双向的可控阀门。
其核心思想是:通过控制全桥电路交流侧(即桥臂中点)的电压(U_ab),使其与电网电压(U_grid)共同作用,产生我们期望的电网电流(I_grid)。根据电路理论,交流侧电感L上的电压满足:U_grid - U_ab = L * di/dt。因此,通过精确控制U_ab的幅值和相位,就能控制电流I_grid的变化率,从而控制其大小和相位。
PWM整流器的控制目标通常有两个:
- 稳定直流侧电压Vdc在给定值。
- 控制交流侧电流为正弦波,且与电网电压同相位(单位功率因数)。
3.2 双闭环控制:外环定电压,内环跟电流
这是PWM整流最经典、也最需要理解的控制结构。我们可以把它想象成一个精密的巡航系统:
- 外环(电压环):好比设定车速。它检测实际的直流母线电压Vdc,与设定的目标电压Vdc_ref比较,经过一个PI调节器,其输出就是为了维持这个直流电压,需要从电网吸取的有功电流的幅值指令Id_ref。如果Vdc低了,就指令多吸点有功电流;高了,就指令少吸点甚至回馈。
- 内环(电流环):好比控制油门和方向盘,响应速度必须极快。它接收来自外环的有功电流指令Id_ref和无功电流指令Iq_ref(通常设为零以实现单位功率因数)。通过检测实际的电网电流,并经过坐标变换(从静止abc/dq坐标系变换到与电网电压同步旋转的dq坐标系),在旋转坐标系下分别对Id和Iq进行快速的PI调节。调节器的输出,经过反变换,就得到了需要由全桥电路产生的交流侧电压指令U_ab_ref。
- PWM调制:最后,这个电压指令U_ab_ref,作为一个调制波,与载波比较,生成驱动全桥开关管的SPWM信号,从而在物理上产生所需的U_ab电压。
这个过程实现了能量的双向流动和电网电流的高品质控制。当直流侧需要能量时,控制电流与电压同相,实现整流;当直流侧有多余能量(如刹车回馈)时,控制电流与电压反相,实现有源逆变,将能量送回电网。
3.3 与逆变模式的异同与工程焦点
从硬件上看,PWM整流器和逆变器用的是一模一样的全桥拓扑。本质区别在于控制目标和控制算法:
- 逆变:控制目标是输出一个高质量的正弦电压波形。调制波是开环给定的正弦波。
- PWM整流:控制目标是控制输入电流为正弦波且相位可控。调制波是由双闭环控制系统实时计算出来的,它必须快速响应以跟踪电流指令。
因此,在工程实现上,PWM整流对控制系统的要求更高:
- 电流采样精度与速度:内环电流反馈必须快速准确,通常需要高精度的霍尔传感器和高速ADC。
- 锁相环(PLL):必须精确获取电网电压的相位和频率,用于坐标变换。PLL的性能直接影响控制稳定性。
- 控制器带宽:电流环的带宽通常要求很高(几百Hz到上千Hz),以快速抑制扰动。这意味着MCU的运算速度要足够快,PWM更新频率(开关频率)也要足够高。
- 保护机制:电网侧故障(如电压跌落、频率偏移)、直流侧过压、过流等保护必须非常迅速可靠。
4. 从原理到实践:MCU实现中的核心考量
无论是逆变还是PWM整流,最终都要落地到微控制器(MCU)上生成那些精密的PWM信号。搜索热词中大量关于STM32、CubeMX、定时器配置的问题,都源于此。这里我们梳理几个最关键的点。
4.1 定时器与PWM生成模式
对于电机控制和电力电子,MCU的高级定时器(如STM32的TIM1/TIM8)是必备的。它们支持:
- 中央对齐模式:PWM脉冲关于计数器中心对称。这种模式能有效降低谐波,是逆变和整流中最常用的模式。热词中“中心对齐pwm移相”就是指在此模式下的相位调整。
- 互补输出与死区插入:定时器硬件可以自动生成两路互补的PWM(如CH1和CH1N),并可在两者之间插入可编程的死区时间。这是防止直通的关键硬件保障,绝对不能在软件中模拟,必须用硬件支持。
- 刹车功能:当检测到过流等故障时,硬件刹车输入可以立即关闭所有PWM输出,实现纳秒级保护。
在CubeMX中配置时,你需要重点关注时基单元(设定载波频率)、输出比较模式(设定为PWM模式1或2)、死区时间寄存器(根据开关管参数计算填入)以及刹车功能引脚的配置。
4.2 调制波的生成:查表法与实时计算
- 对于SPWM逆变:调制波是固定频率和幅度的正弦波。最简单高效的方法是查表法。在内存中预先存储一个正弦函数周期内的采样值数组。在定时器中断中,按照固定的步长索引这个表,将查到的值写入定时器的比较寄存器(CCRx),即可自动生成SPWM。步长决定了输出频率,表的幅值缩放比例决定了调制比。
- 对于PWM整流:调制波是双闭环控制器的实时计算结果。这要求在每个PWM周期(或半周期)内,必须完成ADC采样(电网电压、电流、直流电压)、坐标变换、PI运算、反变换等一系列计算。计算量巨大,通常需要利用定时器触发ADC采样,并在ADC转换完成中断中启动计算,使用DMA传输数据,并可能需用FPGA或高性能DSP来满足实时性要求。热词中“STM32H743使用DMA输出PWM时出错”很可能就与计算时序、缓存一致性有关。
4.3 “移相”控制与多路PWM协调
在一些更复杂的拓扑(如移相全桥、多电平逆变器)或需要特定谐波消除(SHEPWM)时,需要多路PWM之间具有精确的相位差。这可以通过以下方式实现:
- 主从定时器:配置一个定时器为主模式,输出触发信号给其他作为从模式的定时器,从定时器可以设置一个延迟再启动,从而实现移相。
- 单个定时器多通道:高级定时器通常有4个通道,可以独立设置比较值。通过为不同通道设置不同的比较值偏移量,可以实现固定相位差的PWM输出。
4.4 工程调试的起点:先开环,再闭环
无论多复杂的系统,调试都应遵循循序渐进的原则:
- 硬件检查与基础PWM测试:不接主功率电路,用MCU输出PWM驱动光耦或驱动芯片,用示波器确认四路PWM信号相位、死区正确无误。这是生命线。
- 开环测试(对于逆变):接入低压小功率负载,运行开环SPWM程序,用示波器观察滤波前后的波形,确认正弦波生成正常,频率、幅度可调。
- 开环测试(对于整流):在直流侧加一个稳压电源模拟稳定直流母线,运行开环程序,给定一个固定的调制波,观察交流侧电压是否跟随。这一步验证功率电路和采样电路基本正常。
- 闭环调试:先调内环(电流环),再调外环(电压环)。内环调试时,可以给定一个阶跃的电流指令,观察实际电流的跟踪响应,调整PI参数直到响应快速且无超调。内环稳定后,再接入外环。
从单相全桥这个通用的硬件舞台,到SPWM逆变和PWM整流这两套截然不同的控制程序,我们看到了电力电子控制的精髓:用离散的开关动作,通过精密的时序控制,来合成和处理连续的能量流。理解了这个本质,你就拥有了分析更复杂拓扑(如三相全桥、多电平等)的钥匙。
当你下次在Simulink里设置PWM Generator,或在CubeMX里配置定时器时,希望你能清楚地知道,每一个参数(载波频率、调制比、死区)背后对应的物理意义和工程权衡。当你面对“PWM整流器”这个概念时,能立刻意识到它和逆变器在硬件上的同源性,以及在控制目标上的对偶性。这种系统性的理解,远比记住几个公式和波形更有价值,它能让你在设计和调试真正的电源产品时,心中有图,手下不慌。真正的掌握,始于当你不再视电路为静态的图纸,而是看作一个等待被赋予灵魂的动态系统之时。