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,可在软件校准时减去该偏移
- 地弹噪声:低侧采样在功率地线上引入噪声,采样电阻的地端应单点连接至功率地,模拟地与功率地分开布线