电流采样与调理电路:三相电流采样方案与ADC触发
电流采样,是FOC算法里最基础也最要命的一环。你想想看,算法算得再漂亮,电流采回来是错的,那整个系统就是空中楼阁。我个人习惯把电流采样比作FOC的「眼睛」——眼睛花了,手脚再利索也没用。
今天咱们就聊聊三相电流采样那些事儿。单电阻、双电阻、三电阻,到底怎么选?运放调理电路怎么设计?采样时序和ADC触发又该怎么配合?嗯,一个一个来。
一、三相电流采样方案:单/双/三电阻
先说结论:三电阻最准,双电阻最常用,单电阻最省钱。但实际项目里,选哪个得看你的成本预算和性能要求。
1. 三电阻采样
三电阻方案,就是在电机三相的下桥臂各串一个采样电阻。三个电阻同时采样,理论上能同时得到三相电流。但实际中,我们只需要两相电流,第三相通过基尔霍夫定律算出来。
我在项目中遇到过一个问题:三电阻采样虽然准,但三个电阻的阻值和温漂必须严格匹配。有一次我偷懒用了不同批次的电阻,结果低速时电流波形明显畸变。后来全部换成0.1%精度的合金电阻,问题才解决。
缺点:成本高,PCB面积大,三个电阻需要三个运放通道
2. 双电阻采样
双电阻方案,只采样两相电流,第三相通过计算得到。这是目前最主流的方案。为什么?因为大多数MCU的ADC只有两个采样保持器,双电阻刚好匹配。
但双电阻有个坑:当某一相的占空比接近0%或100%时,该相的采样窗口会变得非常窄。说白了,就是电流还没稳定,ADC就触发采样了,结果自然不准。
3. 单电阻采样
单电阻方案,只在直流母线上放一个采样电阻。通过在不同PWM状态下采样,重构出三相电流。这个方案成本最低,但算法最复杂。
说实话,单电阻方案我一般不建议新手用。为什么?因为它在某些扇区边界处,采样窗口会消失。你需要做复杂的「重构算法」和「移相处理」。我当年第一次做单电阻方案,调试了整整两周才跑通。
| 方案 | 成本 | 精度 | 复杂度 | 适用场景 |
|---|---|---|---|---|
| 三电阻 | 高 | 高 | 低 | 伺服、机器人 |
| 双电阻 | 中 | 中 | 中 | 通用变频器 |
| 单电阻 | 低 | 低 | 高 | 低成本风扇、泵 |
二、运放调理电路设计
采样电阻上的电压信号非常微弱,通常只有几十到几百毫伏。直接送给ADC?不行,噪声太大。必须经过运放调理。
运放电路的核心任务就两个:放大 + 偏置。放大是为了让信号匹配ADC的输入范围,偏置是为了把双极性电流信号变成单极性电压信号。
1. 典型电路结构
我常用的电路是:采样电阻 → 差分放大 → 二阶低通滤波 → ADC输入。差分放大能抑制共模噪声,低通滤波能滤除PWM开关噪声。
这里有个细节:运放的选型很关键。轨到轨输入输出是必须的,否则信号会削顶。另外,压摆率要够快,至少10V/μs以上。我踩过坑,用过一款压摆率只有3V/μs的运放,结果高频时信号严重失真。
2. 偏置电压设计
电流是双向的(正负),但ADC只能采0~3.3V。所以需要把电流信号抬升到1.65V中心点。常用的做法是用一个精密基准源产生1.65V,然后通过运放加法电路叠加。
嗯,这里要注意:基准源的噪声会直接耦合到电流信号上。我建议用低噪声的基准源,比如REF3033,或者直接用MCU内部的DAC输出作为偏置。
三、采样时序与ADC触发
采样时序,是FOC里最容易出问题的地方。你想想看,PWM开关频率20kHz,每个周期只有50μs。你要在这50μs里完成电流采样、ADC转换、FOC计算、PWM更新。时间非常紧张。
1. 采样点选择
电流采样必须在PWM的中间时刻进行。为什么?因为此时三相电流都处于稳定状态,没有开关噪声干扰。具体来说,就是在PWM计数值达到周期值的一半时触发ADC。
我见过很多新手把采样点放在PWM的起始或结束位置,结果采回来的电流全是毛刺。记住:采样点要避开开关动作时刻。
2. ADC触发方式
我强烈建议使用硬件自动触发,而不是软件触发。为什么?因为软件触发有延迟,而且延迟不确定。硬件触发可以精确到纳秒级。
具体做法是:配置PWM定时器的比较寄存器,当计数值等于比较值时,自动触发ADC转换。这样采样点就固定在了PWM周期的中间位置。
// 以STM32为例,配置ADC触发
// 设置PWM定时器TIM1的TRGO事件
TIM1->CR2 |= TIM_CR2_MMS_1; // 更新事件作为TRGO
// 配置ADC为外部触发
ADC1->CR2 |= ADC_CR2_EXTTRIG;
ADC1->CR2 |= ADC_CR2_EXTSEL_2 | ADC_CR2_EXTSEL_1; // TIM1 TRGO触发
3. 采样窗口与死区时间
双电阻方案里,采样窗口的宽度取决于PWM占空比。当占空比很小时,采样窗口可能只有几百纳秒。这时候ADC的采样时间必须足够短。
我一般把ADC采样时间设置为1.5个ADC时钟周期,转换时间设置为12.5个周期。这样总转换时间大约在1μs左右,能覆盖大多数采样窗口。
四、知识体系结构图
下面这张图,是我自己总结的电流采样知识体系。你可以把它当作一个检查清单,做项目时对照着看,不容易漏掉关键点。
五、总结
电流采样这件事,说难不难,说简单也不简单。我做了这么多年电机控制,最大的体会就是:采样电路决定了FOC的下限,算法决定了上限。电路设计不好,算法再牛也白搭。
最后送大家一句话:采样点选对,FOC成功一半。嗯,这句话是我自己总结的,但确实是大实话。