3. 电流采样与调理电路设计

做电机控制,电流采样是第一步,也是最容易出问题的一步。

我刚开始做PMSM驱动时,总觉得算法才是核心,电路嘛,能采到电流就行。结果呢?板子一上电,电流波形全是毛刺,FOC根本跑不起来。后来才明白——采样电路没设计好,再牛的算法也是白搭。

这一章,咱们就聊聊电流采样与调理电路。说白了,就是怎么把电机绕组里的电流,变成ADC能读的电压信号。

3.1 相电流采样电阻选型

采样电阻,也叫分流电阻。它串联在电机相电流回路里,电流流过时产生压降,我们测这个压降就知道电流了。

选型时,我主要看四个参数:

  • 阻值:不能太大,否则发热严重;也不能太小,否则信号太弱。一般取毫欧级,比如5mΩ、10mΩ。
  • 功率:根据最大电流算。P = I²R,留1.5~2倍余量。
  • 精度:1%是底线,0.5%更好。
  • 温漂:这个容易被忽略。我踩过坑——常温下采样挺准,跑半小时后电流就偏了。后来换成低TCR(温度系数)的电阻才解决。

我的经验值:对于10A以内的电机驱动,我习惯用5mΩ/2W/1%的合金电阻,温漂控制在50ppm/℃以内。

另外,采样电阻的布局也很关键。走线要短,要宽,要用开尔文接法——也就是把采样电压的走线单独引出来,别跟大电流走线混在一起。否则,PCB铜箔的电阻会引入额外误差。

3.2 运放电路设计

采样电阻上的电压通常只有几十毫伏,ADC没法直接读。这时候就需要运放来放大。

3.2.1 差分放大 vs 同相放大

两种方案我都用过,说说我的感受。

差分放大

  • 优点:共模抑制比高,能抑制电机PWM开关带来的共模噪声。
  • 缺点:电阻匹配要求高,四个电阻稍有偏差,共模抑制比就下降。
  • 典型电路:用INA180这类专用电流检测运放,内部已经匹配好了。

同相放大

  • 优点:电路简单,输入阻抗高。
  • 缺点:共模电压直接加在运放输入端,对运放的共模输入范围要求高。

我个人习惯用差分方案。为什么?因为电机驱动环境噪声大,差分天生抗干扰。我曾在某款伺服驱动器上试过同相放大,结果PWM开关瞬间,运放输出直接饱和了——共模电压太高。

小技巧:如果非要用同相放大,记得在运放输入端加一个RC低通滤波,把PWM高频分量滤掉。

3.2.2 运放选型要点

参数要求说明
失调电压< 1mV失调大了,小电流测不准
带宽> 1MHz要能跟上PWM开关频率
压摆率> 5V/μs响应要快,不能拖泥带水
共模抑制比> 80dB越高越好

常用的型号有:OPA2333、AD8606、MCP6002。我比较偏爱OPA2333,零漂移,温漂小,适合电流采样这种精密应用。

3.3 ADC采样时序与同步

采样时序,是很多新手容易忽略的坑。

PMSM控制中,电流采样必须在PWM周期的特定时刻进行。为什么?因为电机相电流是连续的,但采样电阻上的电压只在PWM开关管导通时才有。

举个例子:下桥臂导通时,电流流过采样电阻;上桥臂导通时,电流不经过采样电阻。如果你在错误的时间采样,采到的就是零或者噪声。

正确的做法是:

  • 在PWM载波周期的中点谷底触发ADC采样。
  • 此时,三相下桥臂都导通,电流回路完整,采样值最准确。
  • 用定时器或PWM模块的触发信号,直接启动ADC转换,实现硬件同步。

我曾经犯过的错:用软件延时来等待采样时刻。结果PWM频率一高,延时不准,采样点偏移,电流波形出现周期性畸变。后来改用硬件触发,问题立刻解决。

具体到STM32,可以用TIM1的TRGO事件触发ADC注入组转换。代码大概这样:

// 配置PWM定时器触发ADC
TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update);
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigInjecConv_T1_TRGO);

嗯,这里要注意:触发时刻要避开PWM开关边沿,因为开关瞬间有尖峰干扰。一般建议在PWM周期的中间点采样,也就是计数器值等于ARR/2的时候。

3.4 硬件滤波与抗混叠

采样信号进ADC之前,一定要滤波。不滤波的话,高频噪声会折叠到低频段,这就是所谓的混叠

混叠有多可怕?我举个例子:电机运行时,PWM开关频率是20kHz,采样频率是10kHz。那么20kHz的噪声会折叠到10kHz - 20kHz = -10kHz,也就是10kHz的假信号。这个假信号会混入电流反馈,导致FOC控制紊乱。

抗混叠滤波,通常用一阶RC低通滤波器:

  • 截止频率 f_c = 1 / (2πRC)
  • 一般取采样频率的1/3到1/5
  • 比如采样频率10kHz,截止频率取2~3kHz

电阻和电容的取值也有讲究:

  • R不能太大,否则运放驱动能力不够,信号建立时间变长。
  • C不能太大,否则充放电慢,影响采样速度。

我常用的组合是:R=1kΩ,C=10nF,截止频率约16kHz。这个值对于10kHz采样率来说,够用。

注意:RC滤波会引入相位延迟。如果延迟太大,会影响电流环的带宽。所以滤波器的截止频率不能设得太低,要跟控制带宽做权衡。

另外,有些工程师喜欢在运放输出端加一个TVS管或肖特基二极管,把电压钳位在ADC输入范围内。这个做法我建议加上——万一运放输出异常,ADC不至于烧掉。

好了,电流采样电路这块,核心就是这些。总结一下:

  • 采样电阻选低阻值、低温漂的合金电阻
  • 运放用差分方案,选低失调、高CMRR的型号
  • 采样时序用硬件触发,在PWM中点采样
  • 加RC低通滤波,防止混叠

下一章,咱们聊聊位置传感器——没有准确的位置信号,FOC就是盲人摸象。

个人建议:第一次打板时,多留几个调试焊盘。把采样电阻两端、运放输出端、ADC输入端都引出来,方便用示波器看波形。调试阶段,这些测试点能帮你省下大量时间。