2. 零位校准的数学基础:理想零位 vs 实际零位
做 SVPWM 这么多年,我见过太多工程师一上来就调 PI 参数,结果转矩脉动怎么都压不下去。其实很多时候,问题出在一个最基础的地方——零位。
零位不准,后面的功夫全白费。今天我们就从数学上把这件事彻底说清楚。
2.1 理想零位:教科书里的完美世界
先说说理想情况。在教科书里,SVPWM 的零位是这么定义的:
- 三相电压参考点:当
Ua = Ub = Uc = 0时,逆变器输出为零矢量(V0 或 V7)。 - 电流采样窗口:零矢量期间,母线电流正好反映三相电流的瞬时值。
- PWM 占空比对称:零位对应 50% 占空比,正负半周完全对称。
说白了,理想零位就是一个完美的对称中心。你想想看,如果硬件和软件都按这个假设来设计,那 SVPWM 的矢量合成就是纯粹的数学游戏——六个扇区边界清晰,电压利用率最大化,电流谐波最小。
但现实呢?
核心矛盾:理想零位假设所有模拟通道增益一致、ADC 偏移为零、PWM 死区时间完全补偿。然而实际电路中,这些条件一个都不成立。
2.2 实际零位:硬件欠你的那笔账
我在项目中遇到过最典型的情况:一块新板子焊好,上电测电流,发现 d 轴电流指令给 0,电机却在微微发热。查了半天,原来是电流传感器零位偏了 15 mV。
实际零位偏移的来源主要有三个:
| 误差来源 | 典型偏移量 | 影响范围 |
|---|---|---|
| 电流传感器(霍尔/分流器) | ±5 ~ ±50 mV | 相电流采样 |
| 运放偏置电压 | ±1 ~ ±10 mV | 信号调理链路 |
| ADC 量化误差 | ±0.5 ~ ±2 LSB | 数字转换 |
| PWM 死区效应 | 占空比偏移 0.1% ~ 0.5% | 电压输出 |
这些偏移叠加起来,反映到 SVPWM 里就是:你明明想输出零矢量,实际却输出了一个很小的非零矢量。嗯,这里要注意——这个“小矢量”虽然幅值不大,但它会一直叠加在基波上,造成每电周期两次的转矩脉动。
2.3 零位偏移对 SVPWM 输出矢量的影响
我们来做个定量分析。假设 A 相电流采样存在偏移 Δi_a,那么 Clark 变换后的结果就变成了:
i_α = i_a + Δi_a
i_β = (i_a + Δi_a + 2*i_b) / √3
你看,一个通道的偏移会污染整个 αβ 坐标系。再经过 Park 变换到 dq 坐标系:
i_d = i_α * cos(θ) + i_β * sin(θ)
i_q = -i_α * sin(θ) + i_β * cos(θ)
结果就是 dq 轴电流里都混入了与转子位置 θ 相关的交流分量。这个分量频率等于电频率,幅值正比于零位偏移量。
我个人的习惯是,在调试阶段先用示波器抓一下相电流的直流分量。如果发现某相电流在零速时不为零,那基本可以断定是零位偏移的问题。
快速诊断方法:让电机静止,给 d 轴电流指令为 0,q 轴电流指令为 0。然后观察三相电流采样值——如果三相加权平均不为零,或者任意两相之差超过 5 mV(12 位 ADC、3.3V 参考),就需要做零位校准。
2.4 零位误差与转矩脉动的关系
这才是我们最关心的问题。零位误差到底怎么影响转矩?
电磁转矩公式大家都熟悉:
T_e = 1.5 * p * [ψ_f * i_q + (L_d - L_q) * i_d * i_q]
对于表贴式永磁同步电机(SPMSM),L_d ≈ L_q,转矩主要取决于 i_q。如果 i_q 里混入了位置相关的交流分量,转矩就会跟着波动。
具体来说,零位偏移导致的转矩脉动有两个特征:
- 频率固定:脉动频率等于电频率的 2 倍(因为转矩对电流是平方关系,整流效应)。
- 幅值随负载变化:轻载时相对影响大,重载时被基波转矩淹没。
我曾经调试一个伺服项目,客户反馈低速运行时噪音大。用 FFT 分析电流频谱,发现 2 倍电频率处有个明显的尖峰。排查到最后,就是电流采样零位偏了 8 mV。校准之后,尖峰下降了 20 dB,噪音问题直接解决。
避坑指南:千万不要在电机运行时做零位校准!我曾经犯过这个错——电机转着转着突然抖了一下,差点把夹具甩飞。零位校准必须在电机静止、母线电容放电完毕的状态下进行。
2.5 零位校准的数学本质
说了这么多,零位校准到底在做什么?用一句话概括:
找到每个采样通道的直流偏置,然后在软件里把它减掉。
数学上就是:
i_a_calibrated = i_a_raw - offset_a
i_b_calibrated = i_b_raw - offset_b
i_c_calibrated = i_c_raw - offset_c
其中 offset_x 就是零位偏移量。校准的目标就是让三相校准后的电流在零矢量期间严格为零。
但这里有个细节——零位偏移不是固定不变的。温度变化、器件老化、电源波动都会让偏移量漂移。所以好的产品设计会做在线零位校准,也就是在电机运行的某些特定时刻(比如过零检测、零矢量期间)动态更新偏移量。
我个人建议,至少要做到上电时的静态校准 + 运行中的周期性微调。静态校准保证启动不抖,动态微调保证长时间运行不漂。
2.6 本章知识体系
下面这张图总结了零位校准的数学基础与影响链路,方便你建立整体认知:
从这张图可以看得很清楚:零位偏移不是孤立问题,它会通过坐标变换逐级放大,最终表现为转矩脉动。校准就是要在源头把这个偏移消除掉。