2026-06-07

死区对逆变器桥臂节点电压的影响:公式 3 推导与验证

从电流极性模型推导死区平均电压误差的奇次谐波展开,并用 MATLAB 平均模型和开关模型验证。

本文关注的是死区对逆变器桥臂输出节点电压的影响,而不是仅对 PWM 门极信号边沿的影响。关键结论是:死区期间上下功率管都关断,桥臂中点由负载电流方向通过续流路径钳位到上母线或下母线,因此平均电压误差随电流极性翻转。

本文讨论的公式 (3) 来自 Ji 等人在 Electronics 发表的综述论文 Control Strategies of Mitigating Dead-time Effect on Power Converters: An Overview 中第 2.1 节 “Effect of Dead Time on Output Voltage” [1]。该式将 A 相理想输出电压与死区造成的平均误差电压相加,并把误差项展开为基波及 次奇次谐波。

对应论文中公式 (3) 的核心形式是:

而不是:

1. 归一化模型

考虑一个两电平单桥臂。令桥臂节点电压用下母线到上母线归一化:

其中 0 表示桥臂节点接近下母线,1 表示桥臂节点接近上母线。若需要恢复物理电压,可乘以直流母线电压

理想 PWM 的载波周期平均值等于占空比:

本文使用单相归一化调制波:

其中:

因此:

载波周期为:

死区时间为:

定义死区比例:

2. 单个载波周期内的平均误差

对称采样、up-down 计数的 center-aligned PWM 可等效为:在第 个载波周期内,占空比 保持不变,并形成一个关于周期中心对称的高电平脉冲。

理想情况下,单个周期内有两个开关边沿:

加入死区后,每个换流边沿后都有一段长度为 的区间。在该区间内,上下管均关断,桥臂节点电压不是由门极命令直接决定,而是由电流方向决定。

设死区期间的钳位状态为:

则一个载波周期内,由两个死区区间造成的平均误差为:

整理得:

由于 由电流极性决定,所以定义:

并用 表示符号约定,则:

于是得到死区平均误差模型:

这里的 只表示误差方向的定义。例如可选择 ,也可选择补偿意义下的相反符号。论文中的符号约定和不同教材中的定义可能相反,因此验证代码中保留 polarity 参数。

该推导默认:

3. 引入功率因数角

死区误差由电流方向决定,因此必须知道电流相对调制波或输出电压基波的相位。

定义:

其中功率因数为:

所以:

若负载为感性负载,电流滞后电压,则 。若电流超前,则可令

死区平均误差因此写成:

4. 傅里叶展开

方波函数的傅里叶展开为:

令:

则:

这就是论文公式 (3) 中死区误差项的来源。若恢复为节点电压物理单位:

因此第 次奇次谐波的归一化幅值为:

物理电压幅值为:

功率因数不会改变这些奇次谐波的理论幅值,但会改变它们相对调制波的相位:

如果 polarity = -1,则所有谐波额外增加 相位。

5. 与论文公式 (3) 的关系

论文先给出单相电压误差的平均值:

由于:

这等价于:

再把 展开为傅里叶级数,就得到基波、三次、五次、七次等奇次谐波误差。论文公式 (3) 将该误差叠加到理想输出电压基波上:

若采用本文的归一化节点电压模型,则对应为:

不同电压定义会带来比例因子差异。例如如果使用以母线中点为参考的极点电压:

则误差仍为:

如果分析的是全桥线电压,需要分别建立两个桥臂的误差并相减,幅值可能变为两倍,也可能因调制和电流定义而部分抵消。

6. 为什么“下降沿滞后”不是最终节点电压模型

如果只从数字 PWM 门极命令看,并假设上升沿不变、下降沿滞后,那么高电平时间会近似增加 ,平均占空比会变成:

这个模型描述的是门极时序变化,而不是死区期间功率级桥臂节点的实际电压。

实际节点电压在死区期间由电流续流路径决定,因此误差是:

这会形成随基波电流极性翻转的方波误差,并自然产生 次谐波。这也是论文公式 (3) 中谐波项出现的原因。

7. 验证脚本与测试场景

配套 MATLAB 脚本为:

1
verify_deadtime_formula3.m

完整脚本下载:

verify_deadtime_formula3.m

脚本包含两层验证。

第一层是平均模型验证:

对该信号做谐波投影,验证奇次谐波幅值:

第二层是开关模型验证:

  1. 生成 up-down、center-aligned、symmetrical sampling PWM;
  2. 在每个理想换流边沿后插入长度为 的死区;
  3. 死区期间按电流极性决定桥臂节点钳位状态;
  4. 对每个载波周期积分,得到周期平均误差;
  5. 对比。

脚本主要输入参数包括:

1
2
3
4
5
6
7
8
cfg.fm              % 调制波/基波频率
cfg.fc              % 载波频率
cfg.M               % 调制深度,d(t)=0.5+M/2*sin(wt)
cfg.dead_time_s     % 死区时间,单位 s
cfg.rho             % 死区比例 Td/Tc = fc*Td
cfg.power_factor    % 功率因数
cfg.current_lagging % true 表示电流滞后调制波
cfg.polarity        % +1 或 -1,选择误差符号约定

本次脚本内置了两个测试场景:

场景PF
基准测试50 Hz10 kHz100 us2 us0.022000.8
激进测试1000 Hz20 kHz50 us2 us0.04200.8

两组测试都使用:

1
2
3
4
5
6
cfg.M = 0.8;
cfg.current_lagging = true;
cfg.polarity = 1;
cfg.samples_per_fundamental = 20000;
cfg.samples_per_carrier = 400;
cfg.max_harmonic = 15;

功率因数角为:

7.1 基准测试

基准测试参数为 。此时:

基波误差幅值理论值为:

三次误差幅值理论值为:

MATLAB 谐波投影结果中,1 到 15 次奇次谐波的最大幅值误差为:

1
1.571e-09

相位最大误差为:

1
0.0465 deg

开关模型中,电流极性按载波周期中心保持不变,用于验证平均模型的基本推导。周期平均误差的 RMS/max 误差均为:

1
0

基准测试验证图如下:

死区公式 3 基准测试验证图

7.2 激进测试:1000 Hz 基波、20 kHz 载波、2 us 死区

激进测试参数为 。此时:

这组参数比基准测试更激进,原因有两个:

基波误差幅值理论值变为:

三次误差幅值理论值变为:

MATLAB 谐波投影结果中,1 到 15 次奇次谐波的最大幅值误差为:

1
3.142e-09

相位最大误差为:

1
0.0465 deg

激进测试的开关模型使用瞬时电流极性来决定死区期间的钳位状态。对于当前 PF=0.8 的相位设置,死区窗口没有跨过电流零交越点,因此周期平均误差仍然与 对齐,RMS/max 误差为:

1
0

这不表示所有相位下都必然为零;它说明在当前参数和相位下,死区窗口内的电流极性没有发生翻转。如果把电流相位移动到零交越正好落入死区窗口,则开关周期平均值会在零交越附近出现局部偏差,这属于公式 (3) 平均模型的边界情况。

激进测试验证图如下:

死区公式 3 激进测试验证图

为了更直观看到死区造成的平均输出畸变,下图直接比较理想平均节点电压 与死区后的平均节点电压:

其中:

可以看到,死区并不是把整条正弦波连续地“拧弯”,而是在电流为正的半周整体上移 ,在电流为负的半周整体下移 。真正显眼的畸变出现在电流零交越附近,即 翻转导致的台阶突变。

死区后平均输出波形台阶畸变

运行脚本后会输出:

8. 参考文献

[1] Yi Ji, Yong Yang, Jiale Zhou, Hao Ding, Xiaoqiang Guo, and Sanjeevikumar Padmanaban, “Control Strategies of Mitigating Dead-time Effect on Power Converters: An Overview,” Electronics, vol. 8, no. 2, article 196, 2019. DOI: 10.3390/electronics8020196. MDPI 页面:https://www.mdpi.com/2079-9292/8/2/196.