无人机无刷电机(BLDC)无感六步换相与过零点检测

无人机无刷电机(BLDC)无感六步换相与过零点检测

一、 背景

最近在做一个无人机相关的项目,涉及到电机控制。由于使用到了三相无刷电机,就来讨论一下无刷电机相关的知识。

无刷电机一般有星型连接、三角形连接(常使用于电动车等高扭矩的应用中),我们所做的无人机使用的就是星型连接的电机。

我涉及的电调是基于 BLHeli 架构的 6 步换相电机。在这种无人机的小项目中,出于体积、成本和可靠性的考虑,我们一般不会使用霍尔(Hall)传感器。那在没有传感器的情况下,我们应该怎么获取转子的位置呢?答案是利用反电动势(BEMF) ,而利用反电动势的核心原理就在于过零点检测(ZCD, Zero-Crossing Detection)


二、无刷电机(BLDC)与六步换相基础

2. 经典的"六步换相"(Six-Step Commutation)

为了实现电子换向,电调的硬件底层采用的是"三相星形桥式连接"电路。它由 6 个功率开关管(如 MOSFET 或图中所示的晶体管 BG1∼BG6BG_1 \sim BG_6BG1∼BG6)组成,分为上桥臂(BG1,BG2,BG3BG_1, BG_2, BG_3BG1,BG2,BG3)和下桥臂(BG4,BG5,BG6BG_4, BG_5, BG_6BG4,BG5,BG6),分别连接电机的 U、V、W 三相。

在经典的"二相导通星形三相六状态"控制策略中,我们将电机的电磁旋转周期(电角度360°)等分为 6 个状态,每个状态占据 60° 电角度。

这种控制方式有一个极其重要的特征:在任何一个时刻,6 个开关管中只有 2 个导通(一上一下),导致电机的三根相线始终处于"两通一悬空"的状态:一相流入、一相流出、一相悬空。

结合上图,一个完整的 360° 电角度换向过程如下:

  • 第一步(t=0∘+t=0^{\circ+}t=0∘+) :BG1,BG5BG_1, BG_5BG1,BG5 导通。电流路径:电源正极 →BG1→U→V→BG5→\rightarrow BG_1 \rightarrow U \rightarrow V \rightarrow BG_5 \rightarrow→BG1→U→V→BG5→ 电源负极。(W 相悬空
  • 第二步(t=60∘+t=60^{\circ+}t=60∘+) :BG1,BG6BG_1, BG_6BG1,BG6 导通。电流路径:电源正极 →BG1→U→W→BG6→\rightarrow BG_1 \rightarrow U \rightarrow W \rightarrow BG_6 \rightarrow→BG1→U→W→BG6→ 电源负极。(V 相悬空
  • 第三步(t=120∘+t=120^{\circ+}t=120∘+) :BG2,BG6BG_2, BG_6BG2,BG6 导通。电流路径:电源正极 →BG2→V→W→BG6→\rightarrow BG_2 \rightarrow V \rightarrow W \rightarrow BG_6 \rightarrow→BG2→V→W→BG6→ 电源负极。(U 相悬空
  • 第四步(t=180∘+t=180^{\circ+}t=180∘+) :BG2,BG4BG_2, BG_4BG2,BG4 导通。电流路径:电源正极 →BG2→V→U→BG4→\rightarrow BG_2 \rightarrow V \rightarrow U \rightarrow BG_4 \rightarrow→BG2→V→U→BG4→ 电源负极。(W 相悬空
  • 第五步(t=240∘+t=240^{\circ+}t=240∘+) :BG3,BG4BG_3, BG_4BG3,BG4 导通。电流路径:电源正极 →BG3→W→U→BG4→\rightarrow BG_3 \rightarrow W \rightarrow U \rightarrow BG_4 \rightarrow→BG3→W→U→BG4→ 电源负极。(V 相悬空
  • 第六步(t=300∘+t=300^{\circ+}t=300∘+) :BG3,BG5BG_3, BG_5BG3,BG5 导通。电流路径:电源正极 →BG3→W→V→BG5→\rightarrow BG_3 \rightarrow W \rightarrow V \rightarrow BG_5 \rightarrow→BG3→W→V→BG5→ 电源负极。(U 相悬空
  • 第七步(t=360∘+t=360^{\circ+}t=360∘+):回到第一步状态,循环往复。

电调就是这样按照固定的顺序严格控制开关管的导通,牵引着转子一步步旋转。既然如此,那我什么时候需要换相呢,这就需要过零检测了。

三、 物理本质:反电动势与"虚拟中性点"

既然要靠反电动势(BEMF)来寻找转子位置,我们首先要搞清楚反电动势到底在哪里。

很多人在初学无感控制时会有一个误区,认为直接用单片机测一下电机某根线的对地电压就是反电动势了。其实不然,反电动势是相对于电机的中性点(Neutral Point)而言的,而不是系统地(GND)

物理公式表达为:

V相对地=V中性点对地+E反电动势 V_{相对地} = V_{中性点对地} + E_{反电动势} V相对地=V中性点对地+E反电动势

但在实际应用中,绝大多数星型连接的无刷电机只有三根相线(A、B、C)引出,中性点被封死在电机内部了。没有中性点电压,我们怎么求出 E反电动势E_{反电动势}E反电动势 呢?

这就引出了无感六步换相的绝对理论核心------构建"虚拟中性点"

在六步换相的过程中,任何时刻都只有两相导通(一相接高电平,一相接低电平),第三相处于悬空状态 。当转子磁极经过这根悬空相的线圈时,产生的反电动势会从正变负或从负变正,必然会经过一个 E反电动势=0E_{反电动势} = 0E反电动势=0 的时刻。

根据上面的公式,当真实的 E反电动势=0E_{反电动势} = 0E反电动势=0 时,悬空相的对地电压,必然完全等于中性点电压! 只要我们捕捉到这一瞬间,就能知道转子现在转到哪了。用数学公式来阐述刚刚的理论:


3.1 虚拟中性点与过零点(ZCD)的数学与物理推导

在明确了"二相导通、一相悬空"的六步换相基础后,我们需要解决无感控制中最核心的问题:如何通过单片机 ADC 测量的端电压,间接获取无法直接测量到的反电动势(BEMF)过零点?

这就需要从无刷直流电机(BLDC)的底层数学模型说起。

3.1.1三相电机基本电压方程

对于星形连接的三相无刷电机,在正常运行时,任何一相(以 U 相为例)的对地端电压 uUu_UuU,都由四部分组成:

uU=rϕiU+LϕdiUdt+eU+unu_U = r_{\phi}i_U + L_{\phi}\frac{di_U}{dt} + e_U + u_nuU=rϕiU+LϕdtdiU+eU+un

  • uUu_UuU: 该相测得的引脚端电压。
  • rϕiUr_{\phi}i_UrϕiU: 绕组电阻上的压降。
  • LϕdiUdtL_{\phi}\frac{di_U}{dt}LϕdtdiU: 绕组电感上的感性压降(取决于电流的变化率)。
  • eUe_UeU: 内部感应出的反电动势(我们真正想找的目标)。
  • unu_nun: 电机中性点对地电压。

同理,V 相和 W 相也遵循上述方程。由于无刷电机通常没有引出中性点线,所以 unu_nun 是个未知数,而反电动势 eee 更是隐藏在电机内部的虚拟物理量。我们需要通过巧妙的数学变换将它们提取出来。

3.1.2 六步换相下的极简边界条件

因为我们采用了"二相导通、一相悬空"的驱动策略,在任意时刻,电机都处于一种极其特殊的物理状态。假设当前状态为:U相和V相通电,W相悬空

此时,电路满足以下三个关键的边界条件:

条件一:电流守恒定律

电流从 U 相流入,从 V 相流出,而 W 相因为开关管全关无电流通过。
iU=−iVi_U = -i_ViU=−iV
iW=0i_W = 0iW=0

从而得出节点电流定律:iU+iV+iW=0i_U + i_V + i_W = 0iU+iV+iW=0。

条件二:电感压降的物理本质

根据电磁感应定律,电感两端的压降由公式 uL=Ldidtu_L = L \frac{di}{dt}uL=Ldtdi 决定。电感是"电流的惯性",压降大小取决于电流变化率 didt\frac{di}{dt}dtdi。

对于悬空相(W相) ,由于没有电流流过(iW≡0i_W \equiv 0iW≡0),其电流变化率 diWdt\frac{di_W}{dt}dtdiW 自然也为零。这意味着悬空相上的阻性压降和感性压降统统为零。

条件三:反电动势的绝对对称性
eU+eV+eW=0e_U + e_V + e_W = 0eU+eV+eW=0

为什么三相反电动势相加等于0?

这一结论源于三相电机**"空间120°对称"**的物理设计。转子的永磁体磁场在旋转时,依次等距地切割U、V、W三相定子绕组。这使得三相绕组感应出的反电动势波形在幅值和形状上完全相同,仅仅在相位上彼此严格错开120°电角度。根据三相对称平衡系统原理(类似于正弦波 sin⁡(θ)+sin⁡(θ−120∘)+sin⁡(θ+120∘)=0\sin(\theta) + \sin(\theta-120^\circ) + \sin(\theta+120^\circ) = 0sin(θ)+sin(θ−120∘)+sin(θ+120∘)=0),这种对称波形在任意时刻的瞬时值之和必然为零。

3.1.3 见证奇迹:构建"虚拟中性点"

有了上面的边界条件,我们把 U、V、W 三相的电压方程全部加起来:

(uU+uV+uW)=rϕ(iU+iV+iW)+Lϕddt(iU+iV+iW)+(eU+eV+eW)+3un(u_U + u_V + u_W) = r_{\phi}(i_U + i_V + i_W) + L_{\phi}\frac{d}{dt}(i_U + i_V + i_W) + (e_U + e_V + e_W) + 3u_n(uU+uV+uW)=rϕ(iU+iV+iW)+Lϕdtd(iU+iV+iW)+(eU+eV+eW)+3un

奇妙的事情发生了:

  1. 因为 iU+iV+iW=0i_U + i_V + i_W = 0iU+iV+iW=0,电阻压降项消去了。
  2. 因为电流之和为零,电感变化率之和也为零,电感压降项消去了。
  3. 因为空间对称性 eU+eV+eW=0e_U + e_V + e_W = 0eU+eV+eW=0,反电动势项也消去了。

等式右边只剩下 3un3u_n3un!由此我们得到了虚拟中性点电压的终极表达式:

un=13(uU+uV+uW)u_n = \frac{1}{3}(u_U + u_V + u_W)un=31(uU+uV+uW)

工程意义:我们不需要电机在物理上引出中性点线。只要用单片机 ADC 采集三相引脚的端电压求平均值,在数学上它就等价于中性点电压!

3.1.4 锁定悬空相,提取过零点(ZCD)

最后,我们将目光死死锁定在悬空相 (我们用下标 non-fed 表示未通电的悬空相,例如当前的 W 相)。

回到 3.1 节的基本方程,把悬空相代入。因为悬空相电流为0,没有电阻和电感压降,原本复杂的长公式被极其干净地简化为:

unon−fed=enon−fed+unu_{non-fed} = e_{non-fed} + u_nunon−fed=enon−fed+un

进行简单的移项,我们就得到了寻找反电动势过零点的核心密码

enon−fed=unon−fed−une_{non-fed} = u_{non-fed} - u_nenon−fed=unon−fed−un

【核心结论】

反电动势 enon−fede_{non-fed}enon−fed 什么时候过零(enon−fed=0e_{non-fed} = 0enon−fed=0)?
当且仅当 unon−fed=unu_{non-fed} = u_nunon−fed=un 时!

映射到软件代码层面:

在实际的电机控制代码中,我们根本不需要去计算复杂的反电动势数值。我们只需要用 ADC 不断采样悬空相的端电压 (unon−fedu_{non-fed}unon−fed),并将其与我们算出来的中性点电压 (unu_nun,通常在非PWM斩波期间近似等于 Vbus/2V_{bus}/2Vbus/2)进行比较。

当这两个电压值**相等(或发生交叉跳变)**的那一刻,我们就精准捕捉到了反电动势的过零点!接着只要再延迟 30° 电角度,就可以进行下一次换相了。

四、 电路设计

基于上述的理论,我参考了 BLHeli 架构的电调设计了一个4合1的电调

电调采用兼顾低成本与高可靠性的"主控MCU + 独立栅极驱动器 + 全N管MOS桥"经典架构。核心主控选用在开源电调中极为常见的8位MCU EFM8BB21F16G(U4),它负责解析外部油门信号,并利用内部高速ADC对电压进行采样。为了印证前文推导的 enon−fed=unon−fed−une_{non-fed} = u_{non-fed} - u_nenon−fed=unon−fed−un 公式,电路右侧采用了由10KΩ和1KΩ组成的电阻分压网络,将相电压按1/11比例降压送入MCU(E1_MA/MB/MC);同时通过三个10KΩ电阻(R17/R19/R21)星型连接汇聚于E1_CC节点,成功构造出物理上的"虚拟中性点",从而让MCU通过比较悬空相与E1_CC的电压精准捕捉过零点。在功率驱动方面,选用了FD6288Q(U5)三相半桥栅极驱动IC,配合由1N5819W二极管与1uF电容组成的经典自举升压电路(Bootstrap),为高边MOS管提供充足的栅极电压。最终的三相逆变桥由6颗AON7544高性能N沟道MOSFET(Q1~Q6)构成,每颗管子的栅极均串联了10Ω限流电阻以抑制开关寄生振荡(Ringing),平衡了开关速度与EMI,确保电流平滑切换。

相关推荐
恶魔泡泡糖1 小时前
stm32F103C8T6标准库外部中断的概念
stm32·单片机·嵌入式硬件
LCG元3 小时前
STM32项目实战:基于STM32F103的智能台灯控制
stm32·单片机·嵌入式硬件
火山上的企鹅4 小时前
QGC 二次开发(RTK):内置 NTRIP Client,实现 CORS 差分数据接入与 GPS_RTCM_DATA 转发
android·无人机·rtk·qgroundcontrol
姓刘的哦4 小时前
RK3568之I2C子系统(协议)
单片机·嵌入式硬件
不要绝望总会慢慢变强4 小时前
无人机智能体的实现的一些思考
人工智能·深度学习·ai·无人机
moonsims5 小时前
无人机视觉传感器布局标准图(UAV Vision Sensor Layout Architecture)
无人机
咕噜咕噜啦啦5 小时前
一些单片机学习相关名词
单片机·嵌入式硬件
小谦32515 小时前
第十二篇、CubeMX | 可见光颜色传感器 TCS3472
单片机·嵌入式硬件
Chat_zhanggong3455 小时前
主推22AP10作用有哪些?
嵌入式硬件