上电之后,电流环参数看起来是正常的,速度环也能跑,但电机就是不动;或者一动就往错误方向冲一段,把母线电压拉到过流保护附近。做PMSM无感FOC调试的人,大概率都撞过这种状态。问题往往不是算法跑飞,而是启动前根本不知道转子在哪里。
PMSM无感FOC到达一定阶段后,一定会遇到初始位置辨识,也就是电机控制里的 IPD——Initial Position Detection。先声明一下,这里的 IPD 和研发管理里的“集成产品开发”没有关系,也不是六个阶段评审里的那个 IPD。它要解决的问题非常具体:电机在静止状态下、没有位置传感器时,控制器怎么在发出第一个驱动电流之前,先拿到一个可信的初始电角度。
很多刚接触无感FOC的人会有一种错觉:反正闭环之后角度估计会收敛,启动时随便给个角度不就行了。实际工程里,这个“随便”会变成启动反冲、低频振荡、过流保护,甚至直接把机械负载撞坏。脉冲注入法是目前做零速IPD时非常主流的一种实现方式,但真正拉到实机上测试时,难点往往不是算法推导,而是电压矢量怎么发、电流采样窗口怎么对齐、怎么判断结果算成功,以及怎么在不同工况下保证重复性。
所以这篇内容不打算只讲一遍原理,会以实机测试为主线,把脉冲注入法从原理、发波流程、数据判据到异常排查完整过一遍。
1. 启动前不知道转子在哪,后面每一步都是隐患
1.1 一个很常见的“能启动但启动不了”的场景
先还原一个具体场景。你手上是一台风机或者压缩机用的PMSM驱动板,没有编码器,控制器做无感FOC。带载启动时,如果电机处于静止状态,反电动势为零,速度观测器在零速时基本没有有效输入,唯一能拿到的信息就是abc三相电流和母线电压。
如果你不知道初始电角度,却强行把电流闭环切入,系统会做这样一件事:它把输出电流矢量映射到一个完全错误的方向上。实际需要的转矩分量可能为零,甚至为负。启动瞬间的表现就是电流很大、电机不动,或者先反向抖一下,然后依赖负载和机械摩擦慢慢“凑”到一个能转的角度。
更麻烦的情况是负载本身带有方向性。比如涡旋压缩机启动时如果初始角度错到 180 电角度附近,反向转矩足够大,可能会引起短暂反转,对机械结构和启动可靠性都是打击。很多项目在这种情况下会去反复调电流环PI、调转速环参数,但真正的问题根本不在环路上。
1.2 IPD在无感FOC里的定位
无感FOC启动流程里,IPD一般放在速度闭环切入之前。你可以把它理解为一次“静态检测”:在转子还没有转动、或者只允许微动的前提下,通过施加特定的电压矢量,判断出转子磁极所在的方向。
这个过程和传统开环强拖不同。开环强拖是强制把转子拉到一个已知位置,比如给一个固定方向的直流电流,让电机转到预定位角度。这个方法在很多轻载风机里能用,但如果负载阻力矩大,或者不允许反转,强制预定位可能失败或造成冲击。脉冲注入法要做的不是“把一个未知位置变成某个已知位置”,而是尽可能在转子没有明显移动的情况下,把当前位置测量出来。
另外,IPD不能和高频注入完全混为一谈。高频注入通常用于零低速运行过程中持续估计角度,是一个在线观测过程;而这里的脉冲注入更像一个启动前的快照,在几十到几百毫秒内完成,发完波、判完方向就给FOC用。两种方案底层都依赖电机的磁路或凸极特性,但在实时性、滤波和抗扰处理上差别很大。
1.3 先记住本文的一个核心判断
这篇文章最想让你记住的一句话是:脉冲注入法不是一个“发六个波、取最大值”的小功能,而是一整套和硬件采样、机械边界、重复性测试强相关的流程。
单次实机测试能辨识出正确角度,只代表你这次发波的伏秒积足够大、采样时刻没有踩在噪声上,并不代表它能在不同电压、不同温度、不同负载情况下都稳定。真正进入项目量产或产品化阶段,考验的不是你会不会写那个判断逻辑,而是你能不能把这个过程的边界条件测清楚。
2. 脉冲注入法能测出初始位置,靠的是磁路饱和,不是算反电动势
2.1 相同电压脉冲,为什么电流大小会不一样
PMSM的定子铁心磁导率不是线性的。它的等效电感并不是一个恒定值,而是取决于铁心已经工作在哪一段磁化曲线上。永磁体本身会在电机内部建立一个偏置磁场,如果你再注入一个电流脉冲,这个脉冲产生的磁场和永磁体磁场方向一致,铁心会更早进入饱和区,等效电感变小;如果方向相反,磁场被削弱,铁心离饱和区远一点,等效电感变大。
电感大的时候,电流上升慢;电感小的时候,电流上升快。因此,在相同母线电压、相同脉冲宽度条件下,不同注入方向得到的电流峰值会有差异。差异最大的方向,就对应转子磁极的一个特殊方向,也就是我们检测d轴方向的基础。
这个过程和反电动势没有关系。电机静止时反电动势为零,但铁心磁化曲线不会因为转速为零就消失。只要永磁体还在,磁路就有方向性,电流脉冲就能感知到这条磁路的“软硬”。
2.2 为什么需要多个方向发波,而不是发一次就够
如果只向一个方向发脉冲,你只能知道这个方向的电感大还是小,无法判断转子磁极在那个方向附近,还是在它反方向附近。因为转子可能停在 30 电角度,也可能停在 210 电角度,磁路呈现的凸极效应在N极和S极附近都有相似表现。
所以工程实现里通常会在静止坐标系的电角度周期内,等间隔注入多个方向的电压矢量。最基础的是六个方向,也就是 0°、60°、120°、180°、240°、300°。每个方向施加同样宽度的电压脉冲,测量电流响应,然后比较。
比较时有两种典型做法:
- 直接找六个方向中电流峰值最大的方向,作为粗略角度;
- 再做正反方向差分判断,用来区分N极和S极方向。
为什么不能只看单个方向?因为你测到的电流量不仅包含磁极位置信息,还包含电流采样偏置、传感器增益差异、死区时间影响。如果只靠一次绝对电流值判方向,这些误差都会叠加进去。采用多方向比较或者正反差分,可以在一定程度上把这些共模误差抵消掉。
2.3 凸极、极对数和“电角度”口径
脉冲注入说的“角度”,默认都是电角度。电角度不是机械角度,极对数为 p 的电机,转子每转一圈,电角度会变化 p 个 360°周期。
在测试时,如果你的参考位置来自外部编码器或光栅尺,必须把它换算成电角度:
theta_elec = theta_mech * pole_pairs + phase_offset其中phase_offset是电机绕组接线和控制器角度零点带来的相位差。如果这个偏移量没有先标定,IPD辨识结果和参考角度之间的“误差”里就会混入一个固定偏差。很多实机测试中,IPD本身没问题,错的是外部参考没有对齐。
这里还要注意:内置式PMSM和表贴式PMSM的凸极程度不一样。表贴式PMSM的d、q轴电感差异很小,常规的磁阻凸极信息不明显,这时候脉冲电流的饱和效应就更加关键。也就是说,脉冲注入不是只看电机几何上的凸极,而是在利用“永磁体偏置下的磁路非线性”,这一点在表贴电机上更加重要。测试时如果感觉六个方向的电流差异很小,要先考虑是否电流脉冲幅值不够,而不是立刻怀疑算法选型错了。
3. 实机测试前,先把硬件、采样和安全边界收干净
3.1 没有参考基准,辨识精度没法评价
做脉冲注入实机测试,前提是有一个可对比的“正确答案”。否则你只能看到程序输出一个估计角,却不知道它准不准。建议台架上安装一个高分辨率编码器或旋变,作为测试基准。
有了外部参考,还要处理两个问题:
- 参考编码器的机械零点未必和软件电角度零点一致;
- 电机极对数换算、相序、电流传感器方向都会影响对比结果。
比较稳妥的做法是先做一个“已知角度校准”:在堵转或低负载条件下,用低频电流控制把转子拉到某个已知方向,记录外部编码器角度,再根据极对数换算出电角度偏置。这个过程会让后面的误差评价更有意义。
如果项目不允许接外部编码器,那至少要用另一套成熟的算法或者示波器电流波形做交叉验证,否则“辨识成功”基本是拍脑袋。
3.2 电流采样和 PWM 触发必须对齐
脉冲注入最怕的不是角度算法复杂,而是电流采样点不稳定。脉冲发出去之后,电流上升速度很快,可能只有几十到几百微秒。如果你采用定时