3、FOC电流环调试实战要点:电流采样增益与相位校准
电流环调得好不好,一半的功夫在采样上。我见过不少项目,PI参数调了半天电机还是嗡嗡响,最后发现是采样通道的增益和相位根本没对齐。说白了,你喂给控制器的电流值本身就是错的,那后面的计算再精确也没用。
这一节我们专门聊采样电阻和运放带来的增益误差,以及多通道之间的相位延迟怎么补偿。这些都是我在调试台上踩过坑、流过汗之后总结出来的实战方法。
3.1 采样电阻与运放增益误差的校准
先说说增益误差。理想情况下,你用的采样电阻是1mΩ,运放放大倍数是50倍,那ADC读到的电压应该精确对应母线电流。但现实是——电阻有精度误差,运放有温漂,PCB走线还会引入额外的寄生电阻。
核心思路:用已知的精确电流源注入,反推实际增益,然后软件修正。
具体做法分三步:
- 注入已知电流:用高精度电流源(比如Fluke 5500)给采样电阻通一个固定电流,比如10A。如果没有专业设备,也可以用大功率电阻+稳压电源凑合,但精度会差一些。
- 读取ADC原始值:记录下此时ADC的读数。注意要多次采样取平均,消除噪声。
- 计算实际增益:
理论电压 = 电流 × 电阻 × 运放倍数
实际增益 = ADC读数 / 理论电压
校准系数 = 理论增益 / 实际增益
我在一个项目里遇到过这样的情况:三路采样电阻标称都是1mΩ,但实际测下来,W相那路因为PCB走线长了5mm,等效电阻多了0.03mΩ。别看这零点零几,在100A电流下就是3mV的误差,反映到转矩上就是明显的抖动。
我的习惯:在校准系数里留一个温度补偿项。如果运放温漂大,可以在板上加个NTC,根据温度查表修正增益系数。虽然麻烦,但效果立竿见影。
3.2 采样通道间相位延迟的补偿
增益校准完了,还有相位问题。三相电流采样不是同时发生的——ADC是轮流采的,运放本身也有群延迟。如果电机转速低,这点延迟无所谓;但转速一高,相位差就会导致电流矢量解算错误。
为什么会这样?你想想看,电机在高速旋转时,电流波形变化很快。假设你U相在t0时刻采样,V相在t0+1μs采样,W相在t0+2μs采样。对50Hz工频来说,1μs几乎没影响;但对1000Hz的电流基波,1μs对应的相位差就是0.36°。三个通道累积下来,合成的电流矢量就会偏。
我曾经踩过的坑:有个伺服项目,转速上到6000rpm时电流环开始震荡。查了两天,最后发现是ADC采样时序配置错了——三通道之间差了3个时钟周期。补偿之后,波形立刻干净了。
相位补偿的方法有两种:
| 方法 | 原理 | 适用场景 | 精度 |
|---|---|---|---|
| 硬件同步采样 | 使用同时采样ADC(如ADS8556),所有通道在同一时刻锁存 | 高端伺服、对相位敏感的应用 | 高 |
| 软件插值补偿 | 根据已知延迟时间,对采样值进行线性或Sinc插值 | 成本敏感、已有硬件不支持同步采样 | 中 |
| PWM触发对齐 | 将采样点对齐到PWM载波的特定时刻(如载波谷底) | 大多数FOC方案 | 较高 |
我个人最推荐第三种——PWM触发对齐。它不需要额外硬件,只需要在MCU的PWM模块里配置好触发点。比如,让三相ADC都在PWM载波的最低点触发采样,这样三通道的采样时刻差就只取决于ADC转换时间本身,通常只有几百纳秒。
3.3 增益与相位校准的测试方法
校准做完了,怎么验证对不对?不能光看软件里算出来的系数,得用实际波形说话。
我常用的测试流程是这样的:
- 静态测试:电机堵转,通入直流电流。用钳形电流表测实际电流,对比ADC读回来的值。三相分别测,看增益误差是否在1%以内。
- 动态测试:电机空载运行,用示波器同时抓三相电流波形。观察波形是否对称,相位差是否严格120°。如果看到某相波形明显偏大或偏小,那就是增益没校好;如果波形形状对但整体偏移了,那就是相位问题。
- 闭环验证:给一个固定的Iq指令,看实际反馈的Id是否接近0。如果Id不为0,说明电流矢量解算有误差,大概率是增益或相位没对齐。
一个实用技巧:用示波器的数学运算功能,把三相电流相加。理想情况下,三相电流之和应该为0。如果和不为0,说明采样存在共模误差或增益不一致。这个办法我在现场调试时屡试不爽。
下面这张图总结了整个校准流程的逻辑关系:
最后说一句,校准不是一次性的。运放会老化,电阻会漂移,温度变化也会影响增益。我建议在产品出厂前做一次全量程校准,然后在固件里留一个定期自检的接口。这样即使现场环境变了,也能及时发现并修正。