4. 定子电阻Rs辨识实操:硬件电路搭建、电流采样校准、PWM占空比计算
好,咱们进入实操环节了。前面讲了那么多理论,说白了,定子电阻辨识就是给电机线圈通个直流电,测出电流和电压,然后一除就完事。但实际做起来,坑不少。我当年第一次做的时候,测出来的电阻值飘得离谱,后来才发现是电流采样没校准。
这一章,咱们就手把手把硬件搭起来,把采样校准搞定,再把PWM占空比算明白。
4.1 硬件电路搭建:你需要什么?
先看看硬件上需要准备什么。我习惯把电路分成三块:功率板、采样电路、隔离与保护。
| 模块 | 关键器件 | 说明 |
|---|---|---|
| 功率板 | MOSFET三相全桥(如IRFS3006) | 至少能承受2倍额定电流 |
| 电流采样 | 采样电阻(10mΩ)+ 差分运放(如INA240) | 采样电阻要低温漂,运放带宽够用就行 |
| 隔离与保护 | 光耦隔离(如6N137)、过流保护电路 | 保护你的MCU和电脑 |
| MCU | STM32F405或类似 | 带高级定时器,支持互补PWM |
嗯,这里要注意一点:采样电阻的布局很关键。我见过有人把采样电阻放在离MOSFET很远的地方,结果引入了一大堆噪声。采样电阻要尽量靠近电机相线输出端,走线要短而粗。
4.2 电流采样校准:为什么必须做?
你想想看,采样电阻是10mΩ,如果流过1A电流,产生的压降才10mV。这么小的信号,运放稍微有点失调,或者ADC参考电压有点偏差,测出来的电流就完全不准了。
我做过一个项目,采样电阻标称10mΩ,实际测出来是9.8mΩ。如果不校准,电阻辨识误差直接就是2%。对于高性能FOC来说,这误差太大了。
校准步骤其实不复杂,就三步:
- 零点校准: 电机不通电,采集ADC值,记录为offset。这个offset包含了运放失调和ADC偏置。
- 增益校准: 通一个已知的直流电流(比如用精密电流源),记录ADC值,算出实际增益。
- 温度补偿: 采样电阻有温漂,铜的温漂系数大约是3900ppm/°C。如果环境温度变化大,需要加温度传感器做补偿。
I_real = (ADC_raw - offset) * gain
其中 gain = I_ref / (ADC_ref - offset)
我曾经在一个项目中偷懒没做零点校准,结果测出来的Rs值在电机冷态和热态下差了15%。后来老老实实加了校准,误差立马降到1%以内。
4.3 PWM占空比计算:怎么给电机通直流电?
Rs辨识的核心是给电机通一个直流电流。但三相全桥输出的是PWM波,怎么变成直流?
方法很简单:让某一相的上桥臂一直导通,另一相的下桥臂一直导通,第三相悬空。这样电流就从一相流进去,从另一相流出来,相当于给两相绕组通了个直流电。
举个例子,我们要给A相和B相通电:
- A相上桥臂:100%占空比(一直导通)
- B相下桥臂:100%占空比(一直导通)
- C相:全部关断
但实际中,我们不会直接用100%占空比。因为那样电流会很大,可能烧MOSFET。我们需要用一个小占空比,比如10%,然后慢慢往上加,直到电流达到目标值。
占空比的计算公式如下:
// 目标电流 I_target = 0.5A (安全值)
// 母线电压 Vbus = 24V
// 预估电阻 Rs_est = 0.5Ω (先猜一个值)
// 需要的电压 V_need = I_target * Rs_est * 2 (两相绕组)
// V_need = 0.5 * 0.5 * 2 = 0.5V
// 占空比 Duty = V_need / Vbus
// Duty = 0.5 / 24 = 0.0208 = 2.08%
// 实际代码中,还要考虑死区时间和MOSFET压降
float duty = (I_target * Rs_est * 2.0f) / Vbus;
duty += 0.01f; // 补偿MOSFET压降和死区
4.4 完整实操流程
好了,咱们把上面这些串起来,形成一个完整的实操流程:
- 硬件检查: 确认所有接线正确,电机轴锁死,母线电压正常。
- 电流采样校准: 执行零点校准和增益校准,记录offset和gain。
- 设置PWM: 选择两相(比如A和B),设置A上桥臂和B下桥臂为固定占空比。
- 施加小电流: 从1%占空比开始,逐步增加,直到电流达到0.5A~1A(根据电机额定电流调整)。
- 采集数据: 等待电流稳定(大约100ms),采集100个电流和电压样本,取平均值。
- 计算Rs: Rs = Vbus * duty / (I_avg * 2)。注意这里除以2是因为电流流过两相绕组。
- 重复验证: 换另外两相(比如B和C、C和A),重复步骤3~6,取三次结果的平均值。
4.5 知识体系流程图
下面这张图把整个Rs辨识的流程串起来了,你可以对照着看:
这张图把整个流程分成了四层:硬件准备、具体操作、数据采集、计算。你照着这个顺序做,基本不会出错。
4.6 常见问题与解决方法
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 电流采样值跳动很大 | 采样时机不对,采到了开关噪声 | 在PWM周期中间点采样,或者加硬件滤波 |
| Rs值偏大 | 接触电阻没考虑进去 | 检查接线端子是否拧紧,或者用四线法测量 |
| Rs值偏小 | 电流采样增益校准不准 | 重新做增益校准,用精密电流源验证 |
| 电机轻微转动 | 三相电流不平衡,产生了转矩 | 确保另外一相完全关断,检查死区时间 |
嗯,基本上就这些了。Rs辨识是整个FOC参数辨识中最简单的一步,但也是基础。这一步做扎实了,后面的Ld、Lq辨识才能准确。
我个人建议,每次换电机或者换硬件平台后,都重新做一次Rs辨识。别偷懒用上次的参数,因为温度、接触电阻这些都会变。