第四节:电机参数与硬件接口
好,咱们进入第四讲。这一节,说白了就是讲“硬件怎么跟软件打交道”。你FOC算法写得再漂亮,如果连电机参数都搞不清楚,或者传感器信号都读不准,那都是白搭。我个人习惯,在写一行代码之前,先把硬件接口吃透。今天咱们就聊聊直流电机、BLDC、PMSM的参数,还有编码器、霍尔和电流采样那些事儿。
4.1 三种电机的参数理解
先说说直流电机。这玩意儿简单,两根线,通电能转。但做FOC控制时,我们关心的参数其实不多。主要是电枢电阻R和电感L。R决定了铜损,L决定了电流的响应速度。我在项目中遇到过,有人拿了个大直流电机,没测电感就直接上PI参数,结果电流震荡得一塌糊涂。嗯,这里要注意,直流电机的电感通常很小,尤其是空心杯电机,你得小心电流环的带宽设计。
再说BLDC(无刷直流电机)。很多人以为BLDC和PMSM是一回事,其实不然。BLDC的反电动势是梯形波,而PMSM是正弦波。这就决定了它们的控制策略有差异。BLDC的参数,除了R和L,还要关注极对数Pp。极对数决定了电角度和机械角度的关系。公式很简单:电角度 = 机械角度 × 极对数。你想想看,如果极对数搞错了,你的Clark变换和Park变换全都会乱套。
最后是PMSM(永磁同步电机)。这是FOC控制的主力。它的参数更复杂一些。除了R、L、Pp,还有永磁磁链Ψf。这个Ψf直接决定了你的转矩常数Kt。我记得有一次调试一个高速PMSM,怎么调都感觉力矩不够。后来一查,是磁链参数给错了,差了20%。所以,我建议你拿到一个新电机,第一件事就是做参数辨识。别信数据手册,那都是理想值。
| 参数 | 直流电机 | BLDC | PMSM |
|---|---|---|---|
| 反电动势波形 | 直流 | 梯形波 | 正弦波 |
| 关键参数 | R, L, Ke | R, L, Pp | R, Ld, Lq, Ψf, Pp |
| 控制方式 | 电压/电流控制 | 六步换向 / FOC | FOC |
| 转矩脉动 | 小 | 较大(换向时) | 小 |
4.2 编码器与霍尔传感器接口
传感器是FOC的眼睛。没有准确的位置反馈,你的电流矢量就转不到该去的地方。
先说编码器。常用的有增量式和绝对式。增量式编码器输出A、B、Z三相信号。A和B相差90度,用来判断方向和计数。Z信号是零位脉冲,每转一圈输出一次。我建议你在上电时,先让电机找一下Z信号,确定一个绝对零点。否则,你每次上电的位置都是随机的,做闭环控制会很麻烦。
接口上,NXP的MCU通常有正交解码模块(比如eQADC或FTM)。你只需要把A、B、Z信号接到对应的引脚上,配置好滤波和计数模式就行。我曾经遇到过一个问题:编码器线太长,信号有毛刺,导致计数不准。后来加了硬件RC滤波,并在软件里做了“防抖”处理,才搞定。
再说霍尔传感器。霍尔传感器只有三个信号:H1、H2、H3。它们组合成6种状态,对应电机的6个扇区。霍尔传感器的精度很低,只有60度电角度。所以,它通常只用于启动时的初始位置检测,或者低速时的换向。在高速运行时,我一般会切换到编码器或无传感器观测器。
霍尔信号的接口很简单,就是三个GPIO。但要注意,霍尔信号在换向瞬间会有抖动。我建议你在软件里做“去抖”处理,比如连续采样3次,值一致才认为有效。否则,你可能会在换向时听到电机“咔咔”响。
4.3 电流采样电路
电流采样是FOC的核心。没有准确的电流值,你的电流环就是瞎子的眼睛。
常用的采样方式有两种:单电阻采样和三电阻采样。单电阻采样成本低,但只能在特定的PWM状态下采样,算法复杂。三电阻采样更直接,每个下桥臂串联一个采样电阻,通过运放放大后送给ADC。我个人的习惯,在开发阶段用三电阻采样,调试方便。量产时如果成本敏感,再考虑单电阻。
采样电路的关键是运放的选择。你需要关注几个指标:
- 带宽: 至少要能覆盖PWM的开关频率。比如20kHz的PWM,运放带宽最好在1MHz以上。
- 共模抑制比: 越高越好。电机驱动是强干扰环境,共模噪声很大。
- 偏置电压: 越小越好。否则你的采样值会有固定的偏移,需要软件校准。
我记得有一次,采样出来的电流波形总是有毛刺。查了半天,发现是运放的供电纹波太大。后来在运放供电脚加了个LC滤波,问题就解决了。嗯,这里要注意,采样电路的PCB布局也很关键。采样电阻要靠近电机相线,走线要短而粗,避免引入额外的电感。
最后,提一下ADC的采样时刻。你需要在PWM的“下桥臂导通”期间采样,因为此时采样电阻上的电压才是真实的相电流。如果采样时刻不对,你可能会采到续流二极管的反向恢复电流,那数据就完全没用了。
好了,这一节的内容就这些。电机参数是基础,传感器是眼睛,电流采样是手感。这三样搞定了,你的FOC算法就有了可靠的“身体”。下一节,咱们开始真正写代码,从初始化开始。