尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

从原理图到波形图:BLDC无感控制反电动势过零检测硬件电路全解析

发布时间:2026/9/24 12:26:53

资讯中心
01
ARTICLE

从原理图到波形图:BLDC无感控制反电动势过零检测硬件电路全解析

从原理图到波形图:BLDC无感控制反电动势过零检测硬件电路全解析
搞过几年BLDC无感控制的人都知道反电动势过零检测是一道绕不过去的坎。标题里从原理图到波形图这句话恰恰点出了这个领域最真实的工作状态原理图人人都能画真正拉开差距的是你调出来的波形能不能和理论对得上、过零信号干不干净、换相时序稳不稳定。这篇文章我会从电路设计的思路拆解、关键参数的计算方法到示波器实测波形的完整流程把一个反电动势过零检测的硬件电路全链路讲透。内容适合正在做无感方波控制的硬件工程师也适合刚入门想搞懂无感BLDC方案底层逻辑的开发者文章里所有参数和步骤都来自实际项目可以直接拿去参考。1. 为什么过零检测是BLDC无感控制的核心1.1 六步换相的基本逻辑BLDC电机的控制本质上是一个顺序通电的过程。三相绕组按照一定顺序依次导通每相导通120°电角度这样在一个电周期里会有6个换相状态这就是所谓的六步换相或者方波驱动。每个状态下三相中有一相处于悬空状态另外两相通电电流从一相流入、从另一相流出产生旋转磁场拉着转子跟着转。这里有个关键点换相动作本身是盲目的控制器必须知道转子当前在什么位置才能决定下一步该导通哪两相。如果位置判断错了轻则电流波形畸形、噪音增大重则电机失步堵转、MOSFET过流烧毁。所以无感控制的核心难点就是从电机的电气信号里反推出转子的位置信息。1.2 反电动势是如何产生的永磁同步电机或者无刷直流电机运行时转子上的永磁体在旋转定子绕组在磁场中运动根据法拉第电磁感应定律绕组中就会感应出电压这个电压就是反电动势。反电动势的大小与转速成正比方向与外加电压相反。它就像电机对外界的一种回声你施加电压让转子转起来转子转动又在绕组里产生一个阻碍电流变化的电动势。对于BLDC电机反电动势的波形近似是梯形波在每个电周期内有六个过零点这些过零点正好对应换相的关键时刻。可以这样理解反电动势过零点就像转子位置的路标。在传感器缺失的情况下它是我们能从电机端子上获得的最直接、最可靠的位置信息而且不需要额外的机械结构。1.3 悬浮相与过零点的物理含义在六步换相中任意时刻都有一相悬空也就是这一相上下桥臂都不导通绕组端口处于高阻状态。这个悬浮相端口的电压波形里就藏着那一相的反电动势信息。把悬浮相的端电压和中点电压一般用虚拟中性点替代做比较当两者相等时就是反电动势过零点。从过零点出现到下一次换相正好间隔30°电角度。控制器的任务就是捕捉这个过零事件延时30°电角度后再执行换相。如果每个扇区的过零检测都准确电机就能平稳地转下去。这个逻辑听起来简单实际电路实现却有一堆细节要处理因为真实世界里的端电压信号远没有理论波形那么干净PWM斩波、续流尖峰、母线波动全都会叠加在信号上。1.4 为什么选择反电动势过零检测方案有感的方案依靠霍尔传感器或者光电编码器直接测量转子位置精度高、控制简单但是增加了传感器成本、安装空间和接线在一些恶劣环境高温、油污、振动下可靠性也成问题。很多泵类负载、风机、电动工具的应用场合空间紧凑、成本敏感根本装不下传感器。反电动势过零检测方案不需要任何传感器只需要在原来三相桥臂的输出端加一套采样电路配合MCU的ADC或者比较器就能实现位置估算。缺点是低速时反电动势信号幅值太小无法可靠检测需要配合开环启动或者磁链法等策略。所以这个方案大量应用在风机、水泵、电动工具、电动两轮车等中高速运行的场景是工业界最成熟、最广泛的无感BLDC控制方案之一。2. 硬件电路整体设计思路拆解2.1 方案选型比较器过零还是ADC采样过零反电动势过零检测在硬件实现上有两条主流路线。第一条是硬件比较器方案。用比较器把悬浮相分压后的信号和虚拟中性点分压后的信号做比较比较器输出一个方波翻转沿就是过零事件。这种方式的优点是实时性好不占用MCU的ADC资源信号从模拟量变成数字量的过程完全由硬件完成MCU只需要用输入捕获或者外部中断去捕捉边沿就行。缺点是比较器方案一旦焊上就固定了如果调试中发现需要调整门槛、滞回电压只能改电阻不够灵活。第二条是ADC直接采样方案。把三相反电动势经过分压网络后直接送到MCU的ADC引脚在特定的PWM时刻采样悬浮相电压在软件里和中性点电压做比较。这种方案的优点是灵活滞回区间、滤波算法、相位补偿都可以在软件里调缺点是对ADC采样时序要求高必须在开关噪声最小的窗口期采样否则采样值会严重跳变。以我个人的项目经验来看低成本的量产小电调、风机控制板比较器方案因为实时性强、逻辑简单还是主流而用来跑复杂控制算法比如带功率环、磁链法的系统的板子ADC方案更合适。如果预算允许、MCU资源充足我倾向于ADC方案因为调试过程中可以用串口实时打印采到的电压值不用频繁换电阻。2.2 采样电路的整体架构反电动势过零检测硬件电路整体可以拆成三段链路采样点、信号调理、过零判断。采样点取在逆变桥三个半桥的中点也就是UVW三个输出端子。这个位置直接连在功率MOSFET的桥臂上电压是强电信号母线电压多高这里就可能到多高还叠加了PWM斩波和续流尖峰。信号调理电路的核心是分压电阻网络。因为相电压的幅值在几伏到几十伏而比较器和MCU ADC通常只能承受3.3V或者5V必须先把强电信号按比例衰减。分压之后通常还要接一级RC低通滤波滤掉PWM载波的高频分量和开关尖峰得到相对平滑的反电动势包络。过零判断环节就是比较器它比较两个输入一个是被测相电压分压滤波后的信号另一个是虚拟中性点分压滤波后的信号输出翻转沿就是硬件层面的过零事件。如果采用ADC方案则不需要比较器分压滤波后的信号直接进MCU在软件里做比较。这三段链路看起来简单但每一段的参数设计都直接影响最终波形的质量稍后我会详细展开。2.3 虚拟中性点最关键也是最容易出错的一环很多人第一次做反电动势检测电路都会忽略虚拟中性点的设计直接拿三相绕组的中性点去比较。问题是电机绕组的中性点通常不引出来即便引出来那也是一个强电节点而且电机的三相绕组阻抗不完全对称直接测到的中性点电压里面混入了谐波和PWM噪声拿来和悬浮相电压做比较误触发概率非常大。正确的做法是用三个电阻分别接在三相分压后的采样点上后级再星形连接成一个虚拟中性点。这个点的物理意义是模拟电机绕组中性点在分压之后的位置和悬浮相端电压的比值关系是一致的所以比较器两端的共模电压能够匹配抵消。这里有一个细节虚拟中性点的三个电阻一定要从分压网络之后取信号而不是直接从电机端子取。原因很简单虚拟中性点的目的不是测量真实的绕组中性点而是提供一个和被测信号具有相同分压比、相同滤波特性的基准点只有这样才能抵消共模干扰保证比较器只对反电动势过零那一下敏感。2.4 分压、滤波、比较三级链路的职责划分把这条链路想清楚后面的参数计算就有了方向。分压网络解决的是电平匹配问题。它的目标是保证在任何工况下送到后级的电压都不超过器件允许范围。这个任何工况至少包括母线电压最高值、PWM占空比接近100%时的相电压峰值、以及续流瞬间的尖峰电压——虽然RC滤波会吃掉大部分尖峰但分压电阻本身要能承受这些电压应力。RC低通滤波解决的是信噪比问题。功率级的PWM载波频率通常在16kHz到20kHz以上这些高频分量如果不滤掉经过比较器之后会变成一连串的毛刺导致过零信号乱跳。滤波的截止频率要高于电机的最高电频率又要远低于PWM载波频率这样才能既保留反电动势信息又抑制开关噪声。比较器环节解决的是信号数字化问题。它需要一定的滞回区间也就是所谓的施密特触发特性来避免信号在过零点附近缓慢变化时引发输出反复翻转。没有滞回的比较器在真实的反电动势过零时刻会输出一串抖动这是很多新手的血泪教训。3. 关键参数计算与电路实现3.1 分压电阻网络的计算方法假设项目里用24V母线驱动BLDC电机MCU的ADC参考电压是3.3V比较器供电也是3.3V。为了保护后级分压后的最高电压要留出至少20%的余量也就是说ADC引脚上最大只能到2.6V左右。相电压的直流分量近似等于母线电压乘以占空比峰值可能冲到母线电压PWM ON时。所以我们按24V满幅来算分压比取上方电阻90kΩ下方电阻10kΩ分压比是10 / (90 10) 1/10。24V经过分压后是2.4V在3.3V的安全范围内这就留了余量。电阻取值不是随便定的要考虑两个因素。一是电阻功率24V加在100kΩ电阻链上电流只有0.24mA单颗电阻的功耗微乎其微所以常规的0603或0805封装都没问题。二是阻抗匹配分压网络的输出阻抗是上方电阻和下方电阻的并联值约9kΩ这个阻抗可以直接驱动ADC但驱动比较器时要注意比较器的偏置电流会造成额外的误差。实践中的一个关键是分压网络中的下方电阻两端要并联一个小电容一般取1nF到10nF这样既和链路中的电阻构成低通滤波又能在ADC采样瞬间提供一个低阻抗的电荷来源减小采样误差。3.2 RC滤波截止频率与相位延迟的计算RC滤波参数是整个电路里最需要权衡的部分。截止频率计算非常简单fc 1 / (2πRC)。举个例子如果R取10kΩC取1nF那么fc 1 / (2π × 10k × 1nF) ≈ 15.9kHz。这个频率低于PWM载波通常16kHz以上因此能够衰减大部分开关噪声同时又远高于电机的电频率范围低速几十Hz高速大几千Hz反电动势信号本身不会受到明显衰减。但RC滤波会引入相位延迟这是硬件滤波无法避免的。相位延迟的公式是 φ arctan(2π × f_e × R × C)其中f_e是电频率。在电频率1kHz时算出来φ ≈ arctan(0.0628) ≈ 3.6°看起来不大。但如果你把电阻加大到47kΩ、电容加到10nF把截止频率压得很低那么同样1kHz电频率下φ ≈ arctan(2.95) ≈ 71°这个延迟意味着过零信号会晚到如果不做补偿换相点会整体滞后。所以我的设计原则是RC滤波只滤高频开关噪声不要把截止频率压得太低。至于残余的相位延迟留给软件做角度补偿而不是靠加大滤波来硬扛。具体的补偿公式在后面的常见问题章节会给出。3.3 滞回比较器的设计细节比较器电路的核心参数是滞回电压。以常见的开漏输出比较器LM393或者推挽输出的高速比较器TLV3501为例滞回区间靠正反馈电阻搭建。设比较器输入端接的是分压后的反电动势信号另一输入端接虚拟中性点电压滞回电阻网络接在输出端和同相输入端之间。滞回电压的计算公式是 Vh (VOH - VOL) × R_in / (R_in R_fb)其中VOH和VOL是比较器输出的高电平和低电平。假设供电3.3VVOL接近0V则Vh ≈ 3.3 × R_in / (R_in R_fb)。取输入电阻10kΩ反馈电阻100kΩ滞回窗口约0.3V。这个值足以抑制过零附近的抖动又不会大到把过零事件完全吞掉。要注意的是滞回电压太小会滤波无力太大则过零检测会变成过零后一段距离才触发引入额外的相位误差。如果电机转速变化范围大可以把这个补偿量在软件里做表格化处理。实际项目中我一般会把比较器输出引脚接到MCU的输入捕获通道并启用内部上拉同时预留一个RC滤波到边沿检测引脚防止强干扰下边沿抖动。3.4 PCB布局的注意事项原理图设计得再完美PCB布局乱了照样出问题。反电动势采样电路是强电和弱电的混合电路布局的核心原则是功率回路和采样回路物理隔离采样回路的参考地要干净。具体来说分压电阻应该尽量靠近MOSFET桥臂中点放置这样采样线的走线长度最短不容易引入辐射干扰。RC滤波电容和比较器则靠近MCU放置避免模拟信号的长距离传送。采样信号走线不要和PWM驱动信号线平行哪怕地层隔开也不行因为栅极驱动信号边沿瞬态电流非常大会在相邻走线上耦合出明显的噪声。虚拟中性点电阻的星形汇聚点最好放在比较器附近不要绕一大圈否则三个采样信号之间会引入额外的相位差。最后务必在每个采样测试点预留一个过孔或测试焊盘方便调试时用示波器探针测量不要迷信靠原理图就能推断波形。3.5 结合MCU的采样逻辑设计如果选择ADC采样方案MCU端的采样逻辑直接影响过零检测的可靠性。反电动势信号只有在PWM波形稳定的时候才有效所以ADC采样时刻必须避开PWM开关边沿的振铃区间。实际项目中常用两种策略。一是在PWM ON的中间时刻触发ADC采样因为此时续流已经结束、母线电压稳定悬浮相电压最能反映反电动势二是在PWM OFF区间通过下桥臂续流后的特定时刻采样这种做法在低占空比工况下会更适用。无论哪种采样方式前端RC滤波的响应时间都必须配合采样窗口。ADC采样保持电容需要充电时间如果RC时间常数太大采到的电压会滞后于实际的模拟信号。软件里可以再做一次二阶滤波或者滑动平均消除偶发的尖峰干扰。给出一个简单的伪代码示例可以帮助理解采样流程。// 伪代码PWM中点触发ADC采样判断反电动势过零 void PWM_MIDDLE_ISR(void) { adc_val ADC_GetValue(phase_U); // 读取悬浮相分压值 neutral_val ADC_GetValue(neutral); // 读取虚拟中性点分压值 filtered_val 0.8f * filtered_val 0.2f * adc_val; // 软件滤波 if (filtered_val neutral_val last_state ABOVE) { zero_crossing_flag 1; // 记录过零事件 } last_state (filtered_val neutral_val) ? ABOVE : BELOW; }实际上这个过零判断的翻转逻辑要放在定时器中断的合适位置并且在检测到过零后启动一个30°电角度的延时定时器延时结束再执行换相。4. 从原理图到波形图调试全流程4.1 调试前的准备工作硬件调试最忌讳的就是上电一顿乱测。我在调试反电动势检测电路前会先做三件事。用万用表检查电源对地阻抗尤其是3.3V和GND之间以及母线电容两端有没有短路这一步能避免上电瞬间炸管。然后把电机轴用手转动用示波器看电机三根引出线上的电压波形因为这时候没有加电测到的是电机本身的微弱反电动势虽然幅值很小但可以确认三相绕组有没有断线、接插件有没有接触不良。最后把直流电源的电流限制调到几百毫安比预期工作电流小一个数量级即使电路有问题也不会烧东西。工具方面示波器至少要有两个通道最好四通道因为要同时看相电压、虚拟中性点、比较器输出和PWM驱动信号。差分探头或者隔离探头是强烈建议的因为测量半桥中点时普通探头的地线夹如果接的位置不好会形成地环路在地线夹里感应出很大的开关噪声导致看到的波形全是毛刺。调试前还需要准备好串口调试助手因为MCU内部的状态变量、过零标志、计算速度、换相扇区这些信息从外部引脚测不到只能通过串口打印出来。现在的上位机软件已经很完善有些可以直接实时绘图调试PID和过零检测时非常直观。4.2 上电后的第一批波形正常上电后先不要急着看反电动势先看功率级是否正常。用示波器探头测MOSFET栅极驱动波形确认上下桥臂的PWM正常、死区时间设置正确、没有直通。然后再测一个半桥中点的相电压波形。如果是开环强制换相模式相电压应该是一个阶梯状波形每个扇区对应一个电压台阶台阶之间有明显的跳变沿。如果你发现相电压波形上叠着一大堆几百MHz的高频振铃而且每次开关动作都伴随剧烈的过冲先别怀疑反电动势电路先回PCB布局找原因驱动电阻是不是太大、续流回路是不是面积太大、栅极驱动芯片的电源去耦是不是不够。功率级的噪声不解决后面所有信号都是脏的。相电压干净了才能进入反电动势检测的调试环节。4.3 反电动势波形的正确观测方法观测反电动势需要用示波器的两个通道一个接到悬浮相的采样点分压之后另一个接到虚拟中性点的测试点。为什么要接在分压之后而不是电机端子上一是因为电机端子上的高电压直接进示波器不安全二是因为分压之后的信号已经进行了电平变换更接近比较器实际看到的信号。这样可以定位问题是出在前级还是后级。让电机在开环强制换相模式下运行转速稳定在某个中速值。这时的悬浮相电压波形应该是一个比较平滑的、接近正弦或梯形轮廓的包络而虚拟中性点的电压是一个接近直流的折线。两者的交点就是反电动势过零点。实际操作中这两个信号会同时叠加在PWM斩波的高频分量上用示波器的带宽限制功能一般20MHz或更低的带宽限制先滤掉高频毛刺再调整触发模式看稳定波形。把两个波形叠在一起观察过零检测的时机对不对一目了然。4.4 过零信号的验证与换相时序当比较器电路搭好之后第三个示波器通道接到比较器输出应该能看到一个方波它的边沿位置应该落在相电压和虚拟中性点波形的交点附近。验证是否准确有一个非常直观的方法把电机保持在稳定的开环运行状态然后用示波器测量比较器输出的频率。如果电机是2对极电频率是100Hz那么每相的反电动势过零事件在每个电周期出现1次比较器输出频率应该也是100Hz。如果频率明显不对说明检测的不是反电动势过零而是某个噪声毛刺被当成了过零。接下来还要验证过零信号与换相时序的对应关系。在开环强制换相程序里记录当前扇区检测到过零信号后延时30°电角度再换相如果时序正确电机的电流波形应该是相对平滑的梯形波母线电流的波动也会比较小。如果换相过早或过晚电机会发出沉闷的嗡嗡声电流波形出现明显的尖峰和凹陷。4.5 用串口与上位机配合调试示波器看的是硬件信号但MCU内部对过零信号的处理是否正确需要软件层面的信息来确认。这时串口调试助手就派上用场了。我的做法是在MCU里把以下变量打包成帧通过串口发送到上位机当前扇区号、过零中断标志、采样的反电动势电压值、经过滤波后的角度估算值、母线电压采样值。发送频率可以放到1kHz如果串口速率足够115200bps以上完全够用。现在的上位机比如VOFA、sscom这类工具都支持实时绘图直接把串口收到的数据画成波形图和示波器测到的硬件信号对照起来看。有一个调试实例我记得很清楚示波器上比较器输出翻转正常但电机换相依然不稳后来通过串口打印才发现软件里30°延时定时器的初始值算错了导致换相时刻整体偏移。这种问题如果没有内部变量打印排查起来非常痛苦。Keil等IDE的Debug模式里也有直接查看结构体变量值和函数运行流程的功能可以配合断点做单步调试比纯靠打印更细致。5. 常见问题与排查技巧实录5.1 过零信号抖动边沿毛刺严重这是新手遇到最多的问题。现象是示波器上比较器输出边沿附近有一串快速翻转的毛刺或者边沿的抖动范围很大。排查思路从前往后走。先用示波器看悬浮相分压后的信号如果这个信号本身在过零点附近有无规则的振荡说明前级滤波不到位需要加大RC滤波电容或者缩短采样走线。如果前级信号还算干净那就是比较器没有滞回或者滞回太小给比较器加正反馈电阻。还有一种情况是信号在比较器门槛附近缓慢变化这时即使有滞回过零时刻也会有一定的离散度这是物理原理决定的靠硬件无法完全消除只能在软件里加多次判断或者用锁相环跟踪。5.2 低速启动困难反电动势信号太小反电动势的幅值正比于转速转速越低信号越弱。在几百转以下反电动势可能只有几十毫伏完全淹没在噪声里这时候过零检测根本无法工作。行业内最常用的方案是三段式启动。第一阶段强制换相开环启动控制器按预设的换相频率逐步加速电机在同步力矩下转起来。第二阶段当转速升到一定值比如额定转速的10%左右反电动势信号足够大时切换到过零检测模式但此时仍然用开环频率做辅助。第三阶段完全切换到闭环过零检测作为位置反馈正常伺服运行。这个切换点要留足裕量切太早会因为信号不稳失步切太晚会因为强制换相和实际转子位置偏差过大导致失步。和磁链法启动相比三段式启动实现简单但抗负载扰动能力弱一些磁链法能做更平滑的低速开环代价是算法复杂度上升。5.3 RC滤波带来的相位延迟补偿前面提到RC滤波会引入相位延迟而且这个延迟随转速升高而增大。如果忽略它高速时换相角会持续滞后导致电机效率下降、发热增加。补偿思路很简单算清楚延迟时间再把它换算成电角度在软件里提前相应角度换相。延迟时间的公式是 t_delay arctan(2π × f_e × R × C) / (2π × f_e)注意这里的f_e是电频率。在实测中需要不断修正因为实际RC参数会有容差。我的做法是先按理论值给一个补偿角度然后在不同转速下用示波器对比过零信号和换相点的相位差做成表格存到代码里运行中按转速查表插值。一个容易被忽略的问题是比较器本身的传输延迟和软件滤波算法也会引入额外延迟这些都要算进补偿量里。高频比较器的延迟在纳秒级别影响很小但软件里的滑动平均滤波如果窗口太长就可能引入几度甚至几十度的误差。5.4 母线电压波动导致误检母线电压不稳会直接影响相电压分压之后的电平进而影响过零判断。常见场景是电池供电的电动工具负载突变时母线电压跌落明显。解决办法有两个方向。硬件上在母线端加足够大的电解电容和陶瓷电容抑制电压波动。软件上引入母线电压归一化ADC采样结果除以母线电压采样值得到一个和母线电压无关的比值再拿这个比值和中性点电压比较。这样即使母线电压跌落比较的目标也跟随变化不会出现误触发。实际调过的项目里母线电压从24V瞬间跌到18V如果不做归一化过零检测误差会明显增大电机表现为加减速时有顿挫感。归一化之后问题基本消失。5.5 踩坑速查表问题现象可能原因排查方法解决方案比较器输出连续抖动滤波不足、无滞回示波器看分压后信号、看门槛附近波形加大RC常数、增加滞回电阻过零频率不等于电频率采样点接错、接成了导通相对照片上扇区状态确认只检测悬浮相高速换相滞后、电机过热RC相位延迟未补偿测量比较器输出与换相点相位差软件提前角度补偿低速启动失败反电动势太弱、切换过早开环运行时用示波器看反电动势幅值延长开环段、提高切换转速相电压波形毛刺巨大PCB布局问题、地环路分别测栅极波形和相电压优化布局、加探头地线弹簧6. 最后分享一点个人的调试体会反电动势过零检测这个电路原理不复杂但真正调起来你会发现每一个差不多的参数都会在波形上留下痕迹。我个人最深的一个体会是不要相信应该没问题一定要让示波器把信号的真实样子暴露出来再动手改代码。很多看似软件能补救的问题根源其实在硬件信号就不干净。你花两天在软件里加各种滤波算法不如回头把分压电阻往MOSFET那边挪几毫米效果好。最后再分享一个小技巧调试时我把三个采样信号和比较器输出全部引到PCB的测试点然后用示波器的四通道同时观测配合一个两两相减的数学通道可以直接看到悬浮相电压和虚拟中性点的差值曲线。这个差值波形在过零点附近会是一个干净、单调的穿越过程比肉眼对比两个波形要直观得多。把这条曲线调清楚了过零检测这个环节你的硬件工作就算真正做完了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。