逆变器上下管不能直通,所以 SPWM 里必须插死区。我们载波 7.5kHz、死区 5μs,听起来不大,算一笔账就知道疼在哪。
死区怎么变成电压误差
每个开关周期,死区期间输出电平由电流方向决定,等效于在相电压上叠加一个与电流极性相关的方波扰动。基波 15Hz 时,一个基波周期里扰动几乎是"台阶",谐波能量集中在低次,滤不掉,全进电机变成噪声和转矩纹波。
补偿的本质是移相不是加法
很多文章把死区补偿写成"加一个 δ 电压",真正难的是符号和相位:
- 电流过零点附近,极性判断抖动,补偿一加就振荡;
- 补偿电压要投影到 d-q 轴上,用 sin/cos 投影矢量角法(我们内部叫方案 C),比朴素加法干净得多;
- 过补偿比欠补偿更难受——示波器上三相电流会呈现一边平顶一边过冲。
/* 矢量角投影:把死区补偿电压按相角铺回三相 */
dt_u = DT_COMP * sin_tbl[theta];
dt_v = DT_COMP * sin_tbl[(theta + PHASE_120) & MASK];
dt_w = DT_COMP * sin_tbl[(theta + PHASE_240) & MASK];过零钳位的教训
最稳的一招其实土:过零区干脆不补。把过零附近 ±3% 额定电流的区域钳位成零补偿,配合迟滞,比各种花式滤波都好用。调完后用示波器看三相线电压过零处的台阶,基本消失,电流不对称从肉眼可见降到 1% 以内。