2. 电流采样电路设计

任务目标

设计一个基于低侧采样电阻与运算放大器的单相电流采样电路,将电机相电流转换为ADC可读取的电压信号。要求:采样电阻功耗可控、运放输出满足ADC输入范围(0~3.3V),并给出完整的增益与偏置计算过程。

电路拓扑与设计参数

采用低侧采样方案:采样电阻置于功率管下桥臂与地之间。运放采用同相放大+直流偏置结构,将双极性电流信号转换为单极性电压信号。设计规格如下:

  • 最大相电流峰值:±10A
  • 采样电阻:Rsense = 5mΩ(允许最大功耗 0.5W,10A时实际功耗 0.5W)
  • ADC参考电压:3.3V,输入范围 0~3.3V
  • 运放供电:单电源 3.3V(轨到轨输出)
  • 偏置电压:Vref = 1.65V(对应零电流输出)

增益与偏置计算

采样电阻上的差分电压:Vsense = I × Rsense,范围为 ±50mV(±10A × 5mΩ)。运放输出需映射到 0.15V~3.15V(留 0.15V 裕量避免饱和),则输出摆幅为 3.0V,对应输入摆幅 100mV,所需增益为:

Av = 3.0V / 0.1V = 30

采用同相放大电路,增益公式 Av = 1 + R2/R1,取 R1 = 1kΩ,则 R2 = 29kΩ(用 30kΩ 微调)。偏置电压通过电阻分压器从 3.3V 得到 1.65V,经缓冲后接入同相输入端。输出表达式:

Vout = 1.65 + 30 × I × 0.005 = 1.65 + 0.15 × I

当 I = +10A 时 Vout = 3.15V;I = -10A 时 Vout = 0.15V;I = 0A 时 Vout = 1.65V。

关键完整代码(Python 计算与验证)

import numpy as np

# 设计参数
R_sense = 0.005       # 采样电阻 5mΩ
I_max = 10.0          # 最大电流 ±10A
V_adc_max = 3.3       # ADC 参考电压
V_ref = V_adc_max / 2 # 零电流偏置 1.65V
V_margin = 0.15       # 输出裕量

# 采样电阻电压范围
V_sense_max = I_max * R_sense   # 50mV
V_sense_pp = 2 * V_sense_max    # 峰峰值 100mV

# 输出摆幅(留裕量)
V_out_min = V_margin
V_out_max = V_adc_max - V_margin
V_out_pp = V_out_max - V_out_min  # 3.0V

# 所需增益
A_v = V_out_pp / V_sense_pp
print(f"所需增益: {A_v:.1f}")

# 电阻取值(同相放大 A_v = 1 + R2/R1)
R1 = 1000.0           # 1kΩ
R2 = (A_v - 1) * R1   # 29kΩ
print(f"R1 = {R1:.0f}Ω, R2 = {R2:.0f}Ω")

# 验证:计算各电流点对应的输出电压
currents = np.array([-10.0, -5.0, 0.0, 5.0, 10.0])
V_sense = currents * R_sense
V_out = V_ref + A_v * V_sense

print("\n电流(A)  采样电压(mV)  输出电压(V)")
for i, vs, vo in zip(currents, V_sense*1000, V_out):
    print(f"{i:6.1f}  {vs:10.2f}  {vo:10.3f}")

# 验证输出是否在 ADC 范围内
assert np.all(V_out >= 0) and np.all(V_out <= V_adc_max), "输出超出ADC范围!"
print("\n验证通过:所有输出均在 0~3.3V 范围内")

# 采样电阻功耗
P_sense = I_max**2 * R_sense
print(f"采样电阻最大功耗: {P_sense:.3f}W (需选型 ≥0.5W)")

运行与验证

将上述代码保存为 current_sense_design.py,在装有 NumPy 的 Python 环境中运行:

python current_sense_design.py

预期输出:

所需增益: 30.0
R1 = 1000Ω, R2 = 29000Ω

电流(A)  采样电压(mV)  输出电压(V)
 -10.0       -50.00      0.150
  -5.0       -25.00      0.900
   0.0         0.00      1.650
   5.0        25.00      2.400
  10.0        50.00      3.150

验证通过:所有输出均在 0~3.3V 范围内
采样电阻最大功耗: 0.500W (需选型 ≥0.5W)

通过条件:程序无异常退出,且打印的增益为 30.0、输出电压范围在 0.15V~3.15V 之间,采样电阻功耗不超过选型额定值。

硬件实现要点

  • 运放选择轨到轨输入/输出型(如 OPA340、MCP6002),确保 3.3V 单电源下输出能接近 0V 和 3.3V
  • R2 用 30kΩ 标准值,实际增益为 31,输出范围 0.1V~3.2V,仍满足 ADC 输入要求
  • 偏置电压 Vref 需用低噪声基准源或精密分压+电压跟随器,避免电源噪声耦合
  • 采样电阻需采用低电感类型(如金属箔或康铜),Kelvin 四线制连接至运放输入端,减小布线电阻误差
  • 运放输入端并联 1nF~10nF 滤波电容,截止频率设置在数百 kHz,抑制开关噪声

常见问题

  • 输出饱和:若电流超过 ±10A,运放输出会进入饱和区,ADC 读数不再线性。需在软件中做限幅处理
  • 零漂:运放输入失调电压会导致零电流时输出偏离 1.65V,可在软件校准时减去该偏移
  • 地弹噪声:低侧采样在功率地线上引入噪声,采样电阻的地端应单点连接至功率地,模拟地与功率地分开布线