硬件部分
主功率回路

导通模式
步骤1:初始导通(Q1/Q4导通)
- 状态:Q1(左上管)与Q4(右下管)导通
- 电流路径:
VIN+ → Q1 → 负载上端 → 负载下端 → 电感 → Q4 → VIN-
- 关键特征:
- 电感储能阶段(能量来自输入电源)
- 输出端电压为正向幅值(Vout ≈ Vin)
步骤2:关闭Q1/Q4(换向起点)
关闭顺序:
- 优先关闭Q1(高压侧管),后关闭Q4(或同步关闭)
- 死区时间需覆盖最慢关断时间(典型值:100-200ns)
续流路径:
- 电感电流通过MOS体二极管续流:
负载下端 → 电感 → Q3体二极管(右上) → VIN+ → VIN- → Q2体二极管(左下) → 负载上端
物理现象:
- 体二极管导通导致Vds电压降至负值(需注意门极负压防护)
步骤3:死区时间(无开关管导通)
- 持续时间:50-100ns(由驱动芯片设置)
- 关键要求:
- 必须大于最慢体二极管反向恢复时间(推荐SiC MOSFET以缩短死区)
- 风险控制:
- 避免共通导通(上下管同时导通导致直通短路)
步骤4:开启Q2/Q3(负半周导通)
- 导通顺序:同时或略有延迟开启Q2(左下管)和Q3(右上管)
- 电流转移过程:
- 体二极管续流维持电流
- MOS沟道逐渐导通,电流从二极管转移到MOS管
- 稳定路径:
VIN+ → Q3 → 电感 → 负载下端 → 负载上端 → Q2 → VIN-
步骤5:关闭Q2/Q3(反向换向)
- 关闭顺序:优先关闭Q3(高压侧管),后关闭Q2
- 续流路径:
负载上端 → Q1体二极管 → VIN+ → VIN- → Q4体二极管 → 电感 → 负载下端
- 关键现象:
- 电感能量回馈至输入电容(需注意输入电压泵升风险)
步骤6:开启Q1/Q4(新周期开始)
- 反向恢复影响:
- Q1/Q4体二极管在导通瞬间产生反向恢复电流尖峰
- 使用快速恢复二极管或SiC MOSFET可降低尖峰幅度
- 优化策略:
- 门极驱动添加米勒钳位电路(抑制Vgs振荡)
输出滤波部分
一、LC滤波 vs LCL滤波对比
特性 | LC滤波 | LCL滤波 |
---|---|---|
拓扑结构 | 单电感+单电容 | 双电感+单电容+阻尼网络 |
适用场景 | 离网逆变、电机驱动 | 并网逆变、高精度电能质量场景 |
高频衰减 | -20dB 斜率(低于转折频率) | -60dB 斜率(高于谐振点) |
谐振风险 | 单谐振峰(需RC阻尼) | 双谐振峰(必须主动/被动阻尼) |
体积/成本 | 电感体积较大 | 总电感量减少30%~50% |
EMI抑制 | 有效抑制开关频率谐波 | 可同时抑制高频和低频谐波 |
关键设计约束 | 避免与负载谐振 | 需精确控制电网阻抗影响 |
二、LC滤波器参数设计
适用场景:离线式逆变器、UPS、电机驱动(无需并网)
1. 设计步骤
- 确定转折频率:
$$
f_c = \frac{1}{2\pi\sqrt{L \cdot C}} \quad \text{(建议取开关频率的1/5~1/10)}
$$
示例:若开关频率$ f_{sw}=20\ \text{kHz}$,则取 $f_c=2\ \text{kHz}$ - 计算电感值:
$$
L = \frac{V_{\text{out}} \cdot (1-D)}{\Delta I_L \cdot f_{sw}}
$$
- $\Delta I_L$:允许纹波电流(通常取额定电流的20%~30%)
- $D$:占空比(全桥逆变 $D=0.5$)
示例:输出220V/50Hz,功率3kW → $I_{\text{rms}}=13.6\ \text{A}$,取 $\Delta I_L=4\ \text{A}$ $$
L = \frac{220\sqrt{2} \cdot (1-0.5)}{4 \cdot 20,000} \approx 0.97\ \text{mH} \quad \text{(取1 mH)}
$$
- 计算电容值:
$$
C = \frac{1}{(2\pi f_c)^2 \cdot L}
$$
接上例: $C=1/[(2\pi \times 2000)^2 \times 0.001] \approx 6.33\ \mu\text{F}$(选6.8 μF/450V薄膜电容) - 纹波电压验证:
$$
\Delta V_{\text{out}} = \frac{\Delta I_L}{8 \cdot f_{sw} \cdot C}
$$
接上例:$\Delta V_{\text{out}}=4/(8 \times 20,000 \times 6.8 \times 10^{-6}) \approx 3.68\ \text{V}$(满足<1% $V_{\text{out}}$) - 阻尼电阻设计(防谐振):
$$
R_{\text{damp}} = \frac{1}{3} \cdot \sqrt{\frac{L}{C}} \quad \text{(通常串联在电容支路)}
$$
接上例:$R_{\text{damp}} = \frac{1}{3}\sqrt{0.001/6.8 \times 10^{-6}} \approx 5.6\ \Omega$(选5.6 Ω/10W电阻)
三、LCL滤波器参数设计
适用场景:并网逆变器、光伏逆变器(需满足IEEE 1547谐波标准)
1. 设计步骤
- 确定谐振频率:
$$
f_{\text{res}} = \frac{1}{2\pi}\sqrt{\frac{L_1 + L_2}{L_1 L_2 C}} \quad \text{(需满足 } 10f_{\text{grid}} < f_{\text{res}} < 0.5f_{sw} \text{)}
$$
示例:电网频率 $f_{\text{grid}}=50\ \text{Hz}$,开关频率 $f_{sw}=20\ \text{kHz}$ → 取 $f_{\text{res}}=1.5\ \text{kHz}$ - 选择总电感量:
$$
L_{\text{total}} = L_1 + L_2 = \frac{V_{\text{dc}}}{8 \Delta I_{\text{pp}} f_{\text{sw}}} \quad \text{($\Delta I_{\text{pp}}$取额定电流的10\%~15\%)}
$$
示例:3kW系统,$V_{\text{dc}}=400\ \text{V}$,$\Delta I_{\text{pp}}=2\ \text{A}$
$$
L_{\text{total}} = \frac{400}{8 \times 2 \times 20,000} = 1.25\ \text{mH} \quad \text{(分配为 } L_1=0.8\ \text{mH}, L_2=0.45\ \text{mH)}
$$ - 计算滤波电容:
$$
C = \frac{1}{(2\pi f_{\text{res}})^2} \cdot \frac{L_1 + L_2}{L_1 L_2}
$$
接上例:$C=1/[(2\pi \times 1500)^2] \times 1.25 \times 10^{-3}/(0.8 \times 0.45 \times 10^{-6}) \approx 15\ \mu\text{F}$(选15 μF/450V薄膜电容) - 阻尼电阻设计(防电网阻抗耦合振荡):
$$
R_d = \frac{1}{3\omega_{\text{res}} C} \quad (\omega_{\text{res}}=2\pi f_{\text{res}})
$$
接上例:$R_d=1/(3 \times 2\pi \times 1500 \times 15 \times 10^{-6}) \approx 0.47\ \Omega$(选0.47 Ω/20W无感电阻)
四、选型
- 应用场景判断:
- 并网应用 → 强制选择LCL滤波
- 离网/电机驱动 → LC滤波更优
- 性能优先级:
- 追求极致效率 → LC滤波(无阻尼电阻损耗)
- 需要超低THD → LCL滤波(谐波抑制能力提升10倍)
- 成本敏感度:
- 预算受限 → LC滤波(减少电容和阻尼电阻)
- 允许较高成本 → LCL滤波(节省电感体积成本)
- 物理空间限制:
- 紧凑型设计 → LCL滤波(总电感体积更小)
- 空间充裕 → LC滤波(布局更简单)
五、关键设计
- LC滤波谐振点过低:
- 若 $f_c$ 接近负载谐振频率(如电机绕组的自谐振),会导致震荡烧管
- 解决方案:确保 $f_c < 0.2f_{\text{load_resonant}}$
- LCL滤波的电网阻抗忽略:
- 电网阻抗变化会改变实际谐振频率 → 需按最坏情况设计阻尼
- 保守设计法:按电网短路容量最低值(即阻抗最大)计算稳定性
- 电容ESR未考量:
- 薄膜电容的ESR过低可能导致阻尼不足 → 需额外增加阻尼网络
- 经验公式:总阻尼电阻功率 $P = I_{\text{grid}}^2 \cdot R_d \cdot (1 + 0.2\text{THD})$
PCB设计
输入→母线电容→全桥MOS管→LC滤波→输出
1、电容-最短化电流路径
- 低ESL设计:电容与MOS管构成三角形电流环,寄生电感可压降至<5nH,对比远端布局(如电容放板边)可减少60%电压尖峰
- 纹波吸收:电容距离MOS管D极<15mm时,高频纹波吸收效率提升3倍(10MHz以上频段)
2、MOS水平阵列
- 对称性强制:Q1/Q2与Q3/Q4严格镜像对称,各桥臂走线长度偏差<0.5mm(确保导通阻抗一致)
- 热均衡策略:水平排列使热源均匀分布,配合底部2oz铜箔+散热过孔,温差可控制在ΔT<8℃
- 开关节点优化:中间两管(Q2/Q3)的D极形成紧凑的SW节点区域,铜箔面积<4cm²(降低辐射EMI)
3. 驱动芯片下置——信号完整性
- 路径最短化:驱动输出到栅极的路径长度≤20mm,可将栅极回路电感限制在7nH以下
- 干扰隔离:利用MOS管本体作为天然屏蔽层,驱动电路与功率回路形成垂直电磁隔离
4. LC滤波
- π型滤波结构:电感前后布置两级电容(例如100μF电解电容+10μF陶瓷电容)
- 高频滤波:电容GND引脚直接连接至电源地层(非通过过孔),可将100MHz以上噪声衰减20dB
- 安全间距:电感与电容保持≥5mm间距,避免磁场耦合引发损耗

软件部分
SPWM参数
1. 调制度(Modulation Index, ( m ))
定义:调制波幅值与载波幅值的比值,决定输出电压幅值
公式:
$$
m = \frac{\sqrt{2} \cdot V_{\text{ph}}}{V_{\text{dc}}/2} \quad (\text{单极性SPWM})
$$
- ($ V_{\text{dc}}$ ):直流母线电压
- ( $V_{\text{ph}} $):输出相电压有效值
取值范围:
$$
0.8 < m < 0.95 \quad \text{(常规逆变器)}
$$
2. 周内点数(Points per Cycle, ( N ))
定义:每个正弦波周期内的PWM脉冲数
公式:
$$
N = \frac{f_{\text{c}}}{f_{\text{m}}} = \frac{T_{\text{m}}}{T_{\text{c}}}
$$
- ( $f_{\text{c}} $):载波频率(边缘对齐模式下PWM频率)(单位:Hz)
- ( $f_{\text{m}}$ ):调制波频率(正弦波基波频率)(单位:Hz)
设计规则:
$$
N \geq
\begin{cases}
21 & (\text{THD}<5\%) \
81 \sim 201 & (\text{高精度模式})
\end{cases}
$$
3. SPWM中值(Mid-value)
定义:正弦波零点对应占空比
公式:
$$
Mid = \frac{ARR}{2}
$$
4. SPWM幅值(Amplitude of Modulation Wave, ( $V_{\text{m}} $))
定义:SPWM峰峰值
公式:
$$
Amp = Mid \times M
$$
5. 载波频率 ($f_{\text{c}} $)
设计约束方程:
$$
\begin{cases}
f_c \geq 10 \times f_{\text{max}} & \text{(满足采样定理)} \
P_{\text{sw_loss}} = k \times f_c \times (Q_g \times V_{\text{drv}})^2 & \text{(开关损耗限制)}
\end{cases}
$$
行业经验值:
功率等级 | 推荐f_c范围 | 适用器件类型 | THD典型值 |
---|---|---|---|
<1kW | 10-20kHz | MOSFET | 3%~5% |
1-10kW | 5-10kHz | IGBT/SiC MOSFET | 5%~8% |
>10kW | 2-5kHz | IGCT/压接式IGBT | 8%~12% |
高频应用 | 50-100kHz | GaN HEMT | 1%~3% |
6. PWM对齐模式
参数 | 边缘对齐模式 | 中心对齐模式 |
---|---|---|
实现复杂度 | 简单(单计数器) | 复杂(双计数器) |
谐波分布 | 集中在$f_{\text{c}} $附近 | 分布在2$f_{\text{c}} $附近 |
死区影响 | 波形不对称度较高 | 对称性好 |
适用场景 | 低成本单相逆变器 | 三相电机驱动/光伏逆变器 |
EMI性能 | 较差 | 较好 |
开关损耗 | 较高(集中在周期边沿) | 较低(分散分布) |
驱动部分
- 同一桥臂内部:上下管驱动信号严格互补(相位差180°)并插入死区时间
- 两桥臂之间:桥臂A与桥臂B的PWM信号相位差180°
PWM配置
- 时钟树设置
- APB2总线时钟:72MHz(TIM1时钟源)
- 预分频值 ( PSC = 71 ) → 分频后计数频率1MHz
- GPIO模式
- 驱动能力:High Speed(50MHz)
- 定时器模式
- 边缘对齐模式:
TIM_COUNTERMODE_UP
- 自动重载值 ( ARR = 49 ) → PWM频率20kHz
1. 正弦表生成(含三次谐波)
#define N 400
uint16_t SineTable[N];
const float Mid = 24.0f, M = 0.8f;
const float Amp = Mid * M;
void Generate_SPWM_Table() {
for(int i=0; i<N; i++) {
float theta = 2 * 3.1415926f * i / N;
// 三次谐波注入提升效率
float duty = Mid + Amp*(sin(theta) + 0.1667f*sin(3*theta));
SineTable[i] = (uint16_t)fmaxf(fminf(duty, ARR), 0);
}
}
2. 中断服务程序
void TIM1_UP_IRQHandler() {
static uint16_t index = 0;
TIM1->CCR1 = SineTable[index]; // 更新占空比
index = (index + 1) % N; // 循环索引
TIM1->SR &= ~TIM_SR_UIF; // 清除标志
}