
两轮车电机换相检测前前后后调了不下几十种组合方案。从最早的三霍尔方案到后来用磁编码器做FOC再到在两轮车这种特殊工况下踩过的各种坑——说实话网上谈单电机控制的文章很多但专门针对“两轮车换相检测”这个具体场景把霍尔、编码器、无感方案放在一起横向掰扯清楚的确实不多。这篇文章就把我实际对比过的6种换相检测方案一次性讲透包括原理、硬件改动、软件适配、成本差异以及选型时的决策逻辑。1. 为什么换相检测在两轮车上这么关键不只会转还得转得稳两轮车电机轮毂电机或中置电机和工业伺服有一个很大的不同它在整车上的工作环境极其恶劣温度范围宽、振动大、防水要求高而且负载变化非常剧烈。上坡时可能堵转下坡时可能被反拖到超速滑行时电机处于自由轮状态。这些工况都对换相检测提出了很高的要求。换相检测说白了就是要知道转子磁钢现在转到哪个位置了。知道了位置控制器才能决定当前该给三相绕组里哪两相通电或者说该给哪一组线圈通电从而让定子磁场和转子磁场保持一个合理的角度差电机才能持续输出力矩。换相检测做不好轻则噪音大、效率低重则过流烧管子、起步顿挫、倒车无力。两轮车电机换相检测方案按大类区分有有位置传感器和无位置传感器两条路线有位置传感器又分为霍尔传感器和各类编码器。加上现在比较火的磁编码器方案我在不同项目里前后对比过以下6种方案三霍尔位置传感器经典方案单霍尔软件估算低成本方案增量式编码器ABZ绝对值磁编码器SPI/ABI接口如AS5047P、MT6701反电动势过零检测无感方案混合方案霍尔起步无感运行或编码器无感交叉验证这篇文章会把这6种方案的原理、硬件成本、软件复杂度、常见坑全部过一遍最后给出我的选型建议。如果你正在做两轮车控制器、电动滑板车、电动助力车甚至高速电摩这篇文章值得先收藏。2. 从最经典的“三霍尔”说起换相检测的基石与局限2.1 三霍尔的原理与120°电气角三霍尔方案用的就是线性霍尔或开关型霍尔传感器常见的是开关霍尔。三个霍尔传感器以60°或120°电角度间隔安装在定子上转子磁钢转动时霍尔传感器感应到磁场极性变化输出高低电平。三相霍尔输出组合起来就是8种状态其中6种是有效状态正好对应电机的6个换相状态或者说6个扇区。开关型霍尔传感器的输出波形是方波。它的好处非常直观不需要高精度ADC只是一组数字IO输入整个位置解算在单片机里就是查表或者简单的位运算非常简单。这也是所有两轮车控制器里最常见、最便宜、最成熟的做法。2.2 为什么三霍尔方案在两轮车上有天然缺陷三霍尔方案便宜可靠但有几个问题是硬件架构决定了的很难通过软件完全消除。第一个问题是换相点精度粗糙。开关霍尔的切换点只取决于磁场的阈值点而这个阈值点受温度、磁场强度、磁钢剩磁影响很大。尤其是在大电流工况下电枢反应会扭曲气隙磁场导致霍尔切换点实际发生的角度偏移。偏移角度大了换相提前或滞后表现出来的就是电机啸叫、效率下降、力矩波动。在工业伺服上霍尔只是用来粗略定位精细控制还得靠编码器。在两轮车上很多方案直接用霍尔做方波控制就可以跑但对性能要求更高的场合比如高速电摩霍尔精度受限的问题就凸显出来了。第二个问题是安装与装配一致性。霍尔传感器的安装位置本身是有公差范围的。贴片焊接偏一点套磁环装配偏一点位置信息就歪了。对于整车厂来说每个电机装出来的霍尔切换点可能都不一样控制器无法自动适配的话就会有的车顺滑有的车咯噔。我记得很清楚之前在做一个低速电摩项目时电机厂提供的霍尔信号在空载和负载下切换点偏差能达到8度电角度。8度电角度在高速时对应的换相时间偏差非常小但在低速大扭矩时就足够让电机产生明显的顿挫感了。2.3 三霍尔方案的关键参数与调试思路如果要做三霍尔方案有两点经验值得记下来霍尔信号建议加RC滤波。很多霍尔传感器输出能力不强线束一长波形边沿就有毛刺。RC滤波的截止频率不需要太高1MHz以下就行主要滤掉高频干扰。滤波电路和比较器整形电路要靠近单片机引脚。单片机里捕捉霍尔的边沿变化时用捕获中断或电平变化中断要注意避免在中断服务函数里做复杂运算只需要记录当前状态和定时器计数值换相延时和位置计算放到主循环里完成。霍尔信号组合和实际换相顺序的映射表是基于电机三相绕组的相互位置关系绕不开的。一开始调试时如果电机反转或者换相顺序不对要先检查霍尔状态组合和PWM开关表的映射关系是否正确不要急着去调PID。3. 编码器方案的加入增量式真的适合两轮车吗3.1 增量式编码器的基础知识ABZ信号与正交解码增量式编码器输出A、B两相正交方波外加一个Z相零位脉冲。电机每转一圈A相或B相会产生固定数量的脉冲数。通过判断A相和B相的相位关系可以知道电机转向通过计数脉冲可以知道位置相对变化量Z相脉冲则给出一个绝对零位参考。在两轮车上使用增量式编码器常见的光电编码器和磁增量编码器都有但光电编码器因为防尘性能差在户外两轮车上不实用。磁增量编码器比如常见的磁环芯片方案相对更耐脏一些但对同心度的要求也高。正交解码有两种常见的解码方式单片机自带的QEP正交编码脉冲外设比如STM32的TIM1或TIM2编码器模式、TI的QEP模块。这种硬件方式不需要占用额外软件资源只需配置好引脚复用和倍频系数即可。外部解码芯片常见的有LS7366R、HCTL-2032等。这些芯片通过SPI或并口与MCU通信适合MCU没有专用正交解码外设或者需要更高速率的场合。3.2 增量式编码器在换相检测中的最佳实践增量式编码器本身没有绝对位置信息上电时不知道转子在哪所以直接用增量式编码器做换相检测必须先“找零位”或者“对相位”。在两轮车这种经常上电就要走的场景里每次上电都转一下找Z信号是不可接受的。所以常见的做法是配合霍尔传感器上电用霍尔粗定位精确到60°电角度电机运行起来后切换到编码器高分辨率位置做精细控制。这也是很多高性能电动两轮车/滑板车控制器实际用的方案。用增量式编码器做换相检测时有两点要特别注意防抖与滤波编码器输出信号在电机振动时会抖动尤其是磁增量式编码器在低速时信号边沿容易产生毛刺。硬件上要加高速光耦隔离或RC滤波器软件上要做防抖计数比如连续N个边沿才认为位置变化有效。换相点更新方波控制下每个50微秒到100微秒就需要更新一次换相状态如果用增量式编码器位置解算不能有太大延迟。在STM32上我一般用编码器模式的定时器中断配合DMA读取确保位置数据是准实时的。3.3 增量式编码器与霍尔的分工协作模式说白了只用增量式编码器做换相检测是不现实的。所以实际系统里面增量式编码器的角色是“精细位置反馈”而霍尔传感器负责“初始相位定位”和“安全冗余”。这种分工协作模式是我个人比较推荐的方案之一。零位标定则必须在电机出厂前完成先手动转动电机转子记录Z信号出现时霍尔的状态然后把霍尔状态和编码器计数值的映射关系写入MCU的Flash。出厂标定这个步骤一定要做否则换向时序是错乱的。注意增量式编码器虽然精度高但是累加误差和振动干扰是绕不开的问题。Z相脉冲不仅仅用来找零也可以在运行中每隔一圈进行一次计数值修正防止长时间运行的漂移。4. 绝对值磁编码器两轮车换相检测的“进阶玩家”4.1 为什么从增量式变成了绝对值式增量式编码器有一个很大的弱点位置信息是“过去一段时间内累计的结果”一旦上电时不知道当前位置就得依赖霍尔或外部标定。而绝对值磁编码器则不一样上电就能读出当前转子绝对位置通常以0-360°机械角或电角度直接给出完全不需要找零位也不需要霍尔传感器参与。这对两轮车来说非常实用——上电瞬间就可以直接做FOC或者方波换相电机响应快控制逻辑也简化许多。市面上常见的绝对值磁编码器芯片包括AS5047PAMS14位分辨率SPI/ABI双输出MT6701MagnTek14位分辨率SPI/ABI/UVW/PWM多种输出TLE5012BInfineon16位分辨率SSC接口MA730MPSSPI/ABI输出4.2 两轮车电机控制中AS5047P和MT6701的取舍在真实的两轮车控制器项目里用得比较多的还是AS5047P和MT6701这两个。它们都是基于磁性角度传感器的原理通过检测一个径向充磁的小磁铁或者磁环的磁场方向来计算绝对角度。AS5047P的优点是成熟稳定、资料多、ABI输出方便。缺点是价格相对较贵而且如果要做高精度FOC官方给的DAEC动态角度误差补偿功能在高速时效果有限需要自己适配。MT6701在价格上有优势而且输出模式更丰富它支持一个很有意思的UVW接口可以直接模拟霍尔信号输出1~3对极这意味着在不改变原三霍尔控制架构的前提下这个芯片可以直接替换掉原来的三霍尔传感器输出的还是6步换相所需要的方波信号。这个兼容性对老产品改款来说非常实用。我实际测过MT6701在滑板车电机上的表现用SPI读取14位绝对角度在最高转速下角度数据更新率能跑满配合滤波后做FOC电流环控制噪音确实比传统霍尔小很多。但要特别注意它的滤波和校准——MT6701内部滤波器参数是可以通过寄存器配置的读取频率低时建议关闭内部低通滤波避免角度延迟读取频率高时则要开合适的滤波否则数据跳动会很大。4.3 磁编码器安装和同心度问题磁编码器方案最大的坑不在芯片本身而在于机械安装。芯片通常是贴片封装电机轴上粘一个径向充磁的小磁铁直径一般是4-6mm要求磁铁圆心和芯片感应区中心尽量对中。中心偏了读出来的角度就不是纯正余弦曲线会出现周期性误差表现就是电机在每个机械转里扭矩波动。这个我用实例说明一下。之前有一批样机电机运行电流明显比其他批次大噪音也大查了一圈发现是磁铁贴装时用的工装定位精度不够导致磁铁圆心偏移了大概0.2mm。0.2mm看着不多但读出的角度误差可以达到几度在8极对电机上就是几十度的电角度误差直接影响到换相和FOC输出。后来换了带定位槽的装配工装情况就好很多了。所以做磁编码器方案一定要在装配工艺里对磁铁中心位置公差做明确要求比如同心度≤0.05mm贴装高度公差≤0.1mm。这个不做后面调软件怎么调都调不平。5. 磁编码器SPI读取的滤波与校准实战以STM32F103 MT6701为例5.1 硬件连接与初始化细节很多人看MT6701的SPI读取觉得不就是拿STM32的SPI从机模式读个数据吗其实里面有坑。MT6701的SPI接口严格来说是SSI同步串行接口模式和常规SPI有一点区别它的数据是在CLK边沿触发输出CS片选信号控制一帧数据的开始和结束数据位宽是可配置的12位或14位角度数据加上状态位和错误位。用STM32F103的硬件SPI去读它往往读帧格式不匹配最稳妥的方式是SPI主机模式软件控制CS按位读取或者直接把CLK管脚模拟出来软件移位读取。以STM32F103C8T6的HAL库为例初始化SPI1主机模式时钟极性极相位的配置要按MT6701手册来通常是CPOL0, CPHA0。读取时先把CS拉低然后循环读取16位的SPI接收数据高位在前最后拉高CS。因为是连续时钟读取SPI的MISO数据是直接从MT6701移位寄存器输出的读取频率可以很快。读取出来的16位数据格式通常是前两位是错误标志和状态位后面14位是角度数据。要注意某些版本芯片的位序是反的读出来需要位反转这个在初始调试时要仔细对照数据手册验证。5.2 软件滤波怎么选滑动平均和中值滤波的组合磁编码器读出来的原始角度在静止状态下的跳动一般在±1 LSB到±3 LSB之间取决于芯片和环境在电机振动时跳动会更大。如果直接用这个原始角度做FOC的位置反馈电机在低速时会有很明显的噪音和扭矩抖动。滤波到底怎么做有两种组合方式我强烈推荐静态数据滤波每次SPI读取后先做一个一阶低通滤波比如new_angle old_angle alpha * (raw_angle - old_angle)alpha取值在0.2到0.5之间。但一阶低通对角度跳变有延迟高速时不能用所以滤波强度要根据电机的电频率动态调节。电机转速高时角度变化快alpha要调大比如0.8甚至1.0电机静止或低速时alpha调小到0.1到0.2。角度补偿校准磁编码器安装不对称会导致角度输出不是理想正余弦可以做一次360°静态标定。记录下实际读出角度和理论角度的误差表然后运行中查表插值补偿。这个补偿表的大小可以取360或720个点存在Flash里。MT6701还有一个“零位”寄存器可以写入目标零位角度。批量生产时可以在电机装配完、通电后把转子转到机械零位然后读一次角度值写进MT6701的零位寄存器里。这一版流程建议做到生产测试治具里不然产线工人手动找零位很费时间。5.3 角度跳变的处理卷绕与解锁角度数据是0到409512位或0到1638314位从最大值跳回0或者从0跳回最大值时如果直接做差分算速度会出现一个负的巨大的假速度。处理方法是先判断跳变是否超过一半的量程如果超过则把当前的差值加上或减去整个量程再进行计算这就是经典的“卷绕wrap”处理。实现上我是这样写的伪代码if (abs(current - previous) RANGE/2) { if (current previous) { delta current - previous - RANGE; } else { delta current - previous RANGE; } }角度处理这种问题不会很难但很有可能被粗心忽视。一旦漏掉卷绕处理测出来的电机转速会在每个机械圈的固定位置突然跳一下查问题时非常隐蔽。6. 无感方案反电动势过零检测和混合方案的设计权衡6.1 反电动势过零检测的工作原理、原理及其局限性在两轮车控制器里省掉霍尔是降低成本和提高可靠性的一个重要方向。无感方波控制最常用的是反电动势过零检测当转子转动时三相绕组中未通电那一相会感应出反电动势BEMF。在电机转动一个360°电气角的过程中BEMF会有一个过零点这个过零点对应着换相时刻。检测到这个过零点再延迟30°电角度通常用定时器延时或锁相环估算就得到精确的换相点。这套方案不需要任何位置传感器硬件成本最低。但它有几个硬伤零速和低速时反电动势幅值太小检测不到。意味着无法零速启动必须靠开环强拉启动后切入闭环。自行车从静止起步如果开环强拉参数调得不好就会明显发冲。高速区反电动势幅值太大需要衰减或分压处理。比较器输入范围有限制直接接可能烧芯片。负载突变时如上坡容易失步。电机转速估算跟不上实际转子位置变化导致失步。6.2 霍尔起步无感运行的“伪无感”方案介于有感和无感之间还有一种非常实用的混合方案霍尔传感器只在起步时提供初始位置信息电机转动到一定转速后切换到反电动势过零检测的无感运行模式。这种方案的好处在于霍尔只负责低速阶段不需要极高精度安装公差要求放宽。无感运行阶段不需要采集霍尔信号控制器可以省去霍尔供电和信号处理电路的一部分成本。高速运行不再受霍尔信号质量限制反电动势过零检测在高转速区比较可靠。但我也要泼一盆冷水从霍尔切到无感的切换点选择很有讲究。切换点转速太低反电动势信号采不到切换点转速太高霍尔传感器信号可能已经因为信号上升沿变缓而产生较大相位延迟而且无感切入瞬间可能会引起电流冲击。我通常的切换策略是在电机稳定运行到额定转速的15%-25%时先将霍尔信号用于速度闭环与此同时开始用反电动势过零事件估算转子位置并相互校验当两者相位差连续N次在允许范围内再完全切到无感模式。这个“软切换”比较稳但代码量会多一截。6.3 混合方案的失败保护逻辑做混合方案不只是把两种控制策略切换就行还要设计失败保护。常见的故障包括反电动势过零事件在预期窗口内没有出现。可能是电机堵转、超过额定转速或者检测电路故障。霍尔信号在运行中突然消失或乱跳。可能是线束松动、霍尔传感器损坏。切换瞬间电流过冲超出预设阈值。我建议在代码里加一个状态机分为“霍尔模式”“预同步模式”“无感模式”和“故障恢复模式”。故障恢复的情况下速度下降到霍尔可用的范围后自动从无感模式切回霍尔模式如果切换失败则直接停机。这个逻辑在两轮车安全上非常重要——谁也不想骑着骑着电机突然失控。7. 6种换相检测方案横向对比与选型决策树7.1 关键维度对比这6种方案放到同一个表格里差别非常明显方案成本元硬件改动软件复杂度低速性能高速性能抗恶劣环境推荐场景三霍尔3~6低低一般一般优民用两轮车、滑板车单霍尔估算1~3低中差一般中极致低成本方案增量式编码器霍尔15~30中中高好好中高性能电动自行车、电摩绝对值磁编码器MT67018~15中中优秀优秀中中高端滑板车、FOC控制器绝对值磁编码器AS5047P15~30中中高优秀优秀中高性能电摩、越野反电动势过零检测0~2低高差需开环强拉好优电机内置空间极小的低成本内置式注意成本是元器件批次不同会有浮动这里只做量级参考。另外这个成本包含位置传感器芯片本身但不包含PCB面积、装配和标定测试费用。7.2 选型决策树在实际选型时我一般按以下顺序问自己几个问题然后决策就能自然得出来第一个问题整车对电机控制的性能要求是什么如果只是普通的助力/代步车基本代步电机噪音不敏感响应速度要求不高——直接选三霍尔省钱省事供应链成熟到几乎没有风险。如果需要做FOC做静音或者对高速大扭矩有要求则把“编码器”纳入考虑范围。第二个问题硬件空间和安装结构允许吗轮毂电机内部的空间非常紧张很多轮毂电机轴中心的洞就那么大传感器安装位置受限。如果装得下绝对值磁编码器优先考虑它装不下就考虑霍尔方案或无感方案。第三个问题生产测试和标定成本能接受多少三霍尔方案基本不需要标定磁编码器方案需要做一次静态角度标定如果是整机厂涉及工装、治具、生产节拍提升都是成本。对这个敏感的话三霍尔的优势就更明显。第四个问题控制器平台是方波控制还是FOC方波控制直接用三霍尔完全够用FOC如果想做得特别好用磁编码器绝对值的位置反馈会让电流环表现上一个台阶。7.3 我自己的推荐排序和理由如果让我只选一套方案囤货调试我会优先推荐三霍尔STM32编码器接口搭配方式做的基础方案这是一个稳定、能出产品的方案。但前提是你不能把三霍尔的精度当摆设需要对霍尔信号做“电角度校准”后面第8节细说。如果要做性能款我会直接上MT6701磁编码器 FOC因为它既能兼容三霍尔接口又有高精度绝对角度可用而且价格不至于离谱。在两轮车这个成本敏感但又要提升体验的品类里MT6701的性价比确实太香了。增量式编码器霍尔的双传感器方案在两轮车里面属于“技术上增幅不大、成本翻倍”的选择除非你的控制系统在机械结构上离电机比较远比如中置电机或者需要极高精度的速度闭环应用比如爬坡辅助否则没必要做。反电动势过零检测的纯无感方案建议只在有限场景上做比如内置式、传感器位置实在塞不进去的低成本电动滑板车可以接受声音大起步冲的。否则的话还是老老实实带传感器做混合方案比较好。8. 换相检测的精度校调霍尔角度误差和编码器零位对齐8.1 霍尔电气角度校准的意义选对方案只完成了一半的工作另一半在“校调”。尤其是三霍尔方案机械装配带来的角度偏差如果不校准电机效率、噪音和扭矩表现会打不少折扣。所谓电气角度校准就是让控制器知道当霍尔状态为某个组合时转子磁极所在的精确电气角度是多少。理想情况下三霍尔切换点均匀分布每60°一个切换点但实际因为霍尔芯片放置位置、磁环安装偏差、磁场畸变切换点不会完全均匀。做一个校准表把各个切换点对应的实际转子角度记下来在运行中查表做修正就能把霍尔方案的精度提升不少。校准的过程不复杂需要一台能手动缓慢转动电机的工装或者用工装驱动电机缓慢旋转把电机连接到一个已知位置精度的参考编码器或手轮式编码器上同步转动。控制器同时采集霍尔状态和参考编码器角度。每次霍尔状态翻转时记录参考编码器角度。根据这些角度值算出每个扇区的实际范围并保存到Flash里。这样得到校准表后在正常换相控制中霍尔信号触发的换相点就不再是固定的60°边界而是按校准表里的实际角度执行。一个优秀的校准可以让霍尔方波控制的电流波形明显更平滑。8.2 增量编码器和磁编码器的零位对齐增量式编码器的Z信号要跟电机的某一相比如A相反电动势过零点对齐。如果不对齐编码器数据和电机磁极位置就不对应做FOC时就没法正确解耦直交轴电流。对齐的通用做法方式也简单在电机三个相线中接入一个直流电压比如U接正V-接负W悬空让转子稳定到一个已知的初始位置一般是0电角度位置然后把编码器计数归零或者把这个角度设为零位。如果是磁编码器则把这个角度值写入芯片的零位寄存器。不过这种对齐方式有个前提实验时给的是固定的占空比和方向转子稳定后就是特定的位置。因为在两相导通时转子磁钢会朝合成磁链的方向对齐位置是确定的。只要生产线上每次都用相同的电压和极性来初始化位置就是可重复的。8.3 出厂标定流程如何嵌入产线这个标定流程必须在产线上做不能只靠研发装自己的一两台样机。量产时一般这样设计电机完成组装后控制器和电机先对接。产线测试工具发送标定命令控制器进入标定模式。控制给电机通一个直流固定占空比转子自动转到初始位置等待几百ms让转子稳定记录传感器读数霍尔状态或者编码器角度。重复正转和反转两个方向的标定产生数据表并写入控制器的EEPROM/Flash。控制器重新上电或退出标定模式正常控制运行用标定好的数据工作。这个流程每一个步骤都要在产线工装的测试项里体现并留痕否则质量追溯时如果标定数据覆盖乱了只能整台返工。9. 实际项目里最容易被忽视的故障模式和排查路径9.1 霍尔信号跳变与换相瞬间的电流尖峰用三霍尔方案最容易遇到“霍尔传感器信号跳变导致换相错误”的问题。故障表现是电机在低速段来回抖动或者电流波形出现连续尖峰功率管发热快甚至烧MOSFET。用逻辑分析仪抓霍尔波形是最直观的排查方式。举个例子霍尔信号在电机高速运转时边沿会夹带毛刺尤其是靠近功率MOSFET切换瞬间产生的dv/dt干扰耦合到霍尔线束上。要解决不只是靠软件滤波有时得查硬件走线霍尔信号线尽量远离功率线和大电流线可以加屏蔽层或地线包地。霍尔供电加一个100nF去耦电容10Ω电阻滤波霍尔信号线加串联电阻比如1KΩ配合到地的几百pF电容组成RC低通。不过还有一个更难发现的坑霍尔的三个信号在单片机引脚上的初始状态上电瞬间组合可能是无效的8号状态111或000。代码里一定要在初始化时等待霍尔状态有效否则上电瞬间如果没有读到有效状态换相逻辑可能卡死。9.2 编码器超速时数据溢出增量式编码器在高速时定时器计数器可能会溢出。虽然STM32的编码器模式支持自动重载但如果中断处理不及时计数就会丢。解决方法是设置一个合理的溢出周期或启用“溢出中断软件扩展计数”的模式用一个volatile变量累计溢出次数保证位置数据不丢。这个在调试高速电摩时非常重要。9.3 磁编码器芯片“值跳变”与滤波策略磁编码器偶尔会读到异常值比如干扰导致SPI数据位错误这个异常值会导致角度突变如果不做处理轻则速度环抖动重则电流过流保护。我在代码里加了一个简单的“合理性校验”相邻两次采样值之差超过允许的最大delta例如电机最高转速下角度变化率20%余量就认为本次读取无效用上一次的读数替代。MT6701这类芯片本身会有状态位SPI读取回来后先检查状态位或者错误位如果置位这帧数据直接丢弃。这个习惯要养成。9.4 换相噪声的排查链路如果电机出现高频啸叫特别是满载运行时排查顺序我一般是这样先确认控制方式是换相点不准导致的还是开关频率导致的。用电流探头抓三相电流波形看换相点的电流畸变位置是否固定。如果畸变位置固定说明位置检测的误差是重复性的安装偏心或霍尔定位偏差做位置校准即可。如果畸变位置不固定且和转速相关可能是滤波参数不合适造成角度延迟调整滤波系数或位置估算延迟补偿。大多数“调了好几天发现还是啸叫”的问题最后都落在“位置反馈有延迟”上。位置信号的延迟在静止状态看不出来转起来后就表现为换相角滞后速度越快滞后越严重。对这种问题一种办法是在软件里根据实时速度估算延迟角度并提前补偿——这个补偿量要和电机的极对数、转速一起算公式为角度补偿量电角度 电气角速度 *传感器延迟时间 滤波时间常数。实测下来只要延迟特性稳补偿效果就很可观。10. 给刚要立项做两轮车控制器的你最后几条实在话做两轮车电机控制换相检测方案的选择从来不是单纯的“这个方案性能更高就选它”而是成本、性能、生产装配、软件复杂度、未来升级路线的一个综合权衡。叮嘱几句不算结尾的结尾吧。第一如果你还在犹豫初期选哪种方案做开发板/样机首选三霍尔这是能最快跑通控制逻辑的方案而且后续其他方案都可以在这个基础上扩展。霍尔方案踩坑最少、资料最多、团队上手最快样机达到能跑不稳的状态通常不要一个星期。第二做高性能产品的话直接上MT6701磁编码器练手FOC把SPI读取、角度滤波、零位标定、故障保护这4个模块吃透了未来不管用AS5047P还是TLE5012B都能快速切换。第三部分算法比如换相点补偿和角度平滑最好在方案选型的时候就在软件架构上预留出位置。如果你第一版控制代码结构混乱后面再加上无感切换、零位标定、故障保护这些模块时会特别痛苦。我见过不少团队就因为最初方案太简陋、直接套网上Demo改后期重构成本高到直接推翻重做。最后“从霍尔到编码器”并不是一条替代路线。在小功率代步车领域霍尔仍然统治着市场在中高端快速发展的电摩领域磁编码器和FOC的组合正在快速侵蚀霍尔方波方案的份额。对做技术的人来说两种方案都理解、都能落地才是最有价值的状态。希望这篇文章能在你选型的时候帮你少走几条弯路。