2、电调工作原理:从MOSFET到油门信号

电调这东西,说白了就是个智能开关。你给它一个油门信号,它就按比例把电池的电“切”给电机。我刚开始接触多旋翼时,总觉得电调就是个黑盒子,直到有一次炸机后拆开研究,才真正搞明白里面的门道。

2.1 电调内部结构框图

一个典型的无刷电调,内部大致分这么几块:

  • 电源输入:接电池,通常是2S-6S LiPo
  • BEC模块:把电池高压降到5V/3.3V,给飞控和接收机供电
  • MCU:处理PWM/DShot信号,生成6路MOSFET驱动波形
  • 驱动电路:把MCU的3.3V信号放大到能驱动MOSFET的电压
  • 三相全桥:6个MOSFET组成,直接控制电机三相绕组
  • 电流/电压检测:反馈给MCU做保护和控制

核心逻辑:飞控发油门指令 → MCU解析 → 驱动电路放大 → MOSFET开关 → 电机转动

我画了一张框图,帮你把这几块的关系理清楚:

电调内部结构框图 电池输入 BEC 5V/3.3V MCU 处理器 驱动电路 三相全桥 MOSFET 电流/电压检测 无刷电机 飞控油门信号 说明: 1. 电池输入同时给BEC和三相全桥供电 2. MCU接收飞控信号,生成6路PWM控制MOSFET 3. 驱动电路负责电平转换,确保MOSFET完全导通 4. 电流检测反馈给MCU,实现过流保护和堵转检测

2.2 MOSFET开关逻辑

无刷电机有三根线,对应三相绕组。电调里用6个MOSFET组成H桥,每相上下各一个。你想想看,要让电机转起来,就得按顺序给这三相通电。

我简单说一下换相逻辑:

  1. 上桥导通:某一相的上MOSFET打开,电流从电池正极流入该相绕组
  2. 下桥导通:另一相的下MOSFET打开,电流从该相绕组流回电池负极
  3. 换相:每60°电角度切换一次导通组合,形成旋转磁场

个人经验:我调试过一款电调,发现MOSFET驱动波形有毛刺,导致电机在低速时抖动。后来在栅极加了10Ω电阻,问题就解决了。MOSFET开关速度不是越快越好,太快会产生EMI干扰。

下面这张表列出了6步换相法中MOSFET的导通状态:

步骤 A相上桥 A相下桥 B相上桥 B相下桥 C相上桥 C相下桥
1 ON OFF OFF ON OFF OFF
2 ON OFF OFF OFF OFF ON
3 OFF OFF ON OFF OFF ON
4 OFF ON ON OFF OFF OFF
5 OFF ON OFF OFF ON OFF
6 OFF OFF OFF ON ON OFF

注意:上下桥绝对不能同时导通!否则电池正负极直接短路,MOSFET瞬间烧毁。我见过有人把电调程序写错了,上电后MOSFET直接冒烟。所以驱动电路里通常会加死区时间,确保上下桥切换时有几微秒的间隔。

2.3 BEC(电池消除电路)功能

BEC的全称是Battery Eliminator Circuit,翻译过来就是“电池消除电路”。为什么叫这个名字?因为早期航模需要单独给接收机配一个电池,有了BEC,直接从动力电池取电降压就行,省掉一个电池。

BEC主要有两种类型:

  • 线性BEC(LDO):简单便宜,但效率低,大电流下发热严重。适合小电流场景(<1A)
  • 开关BEC(DC-DC):效率高(85%-95%),发热小,能输出3A-5A。现在主流电调都用这种

我个人习惯用开关BEC的电调,尤其是飞大载重机时。有一次我用线性BEC给飞控供电,飞了5分钟BEC烫得手都摸不了,差点空中断电。从那以后,超过3S电池我必用开关BEC。

BEC的输出电压通常有几种选择:

输出电压 适用场景 注意事项
5.0V 传统接收机、ArduPilot Pixhawk 标准电压,兼容性好
5.5V 高压舵机、部分飞控 舵机响应更快
6.0V 大扭矩舵机 确认飞控支持6V输入
可调 多场景通用 用跳线或焊盘选择

关键点:ArduPilot的Pixhawk飞控输入电压范围是4.5V-5.5V。如果你用6V BEC直接供电,可能会烧掉飞控的5V稳压器。我建议先测一下BEC实际输出电压,别信标签上的数字。

2.4 油门信号解析

飞控发给电调的油门信号,本质上就是告诉电调“该给电机多少电”。目前主流的有三种协议:

  1. PWM(脉宽调制):传统信号,1ms-2ms脉宽对应0%-100%油门。频率通常50Hz-400Hz
  2. Oneshot125:125μs-250μs脉宽,响应更快,适合穿越机
  3. DShot:数字信号,直接传数字值,不需要校准。DShot150/300/600/1200表示波特率

我重点说一下PWM信号,因为ArduPilot电调校准主要就是针对它。你看这个波形:

高电平时间(脉宽):
  1000μs = 0% 油门(电机停转)
  1500μs = 50% 油门(中位)
  2000μs = 100% 油门(满油门)

周期(PWM频率):
  50Hz  → 周期20ms
  400Hz → 周期2.5ms

电调内部怎么解析这个信号?MCU会检测上升沿和下降沿,计算高电平持续时间。然后查表或者直接映射成PWM占空比,控制MOSFET的导通时间。

避坑指南:我曾经遇到过一个问题——电调校准后,电机在最低油门时还在慢慢转。后来发现是PWM信号有噪声,导致脉宽抖动。解决办法是在飞控的油门输出端加一个RC低通滤波,或者用DShot数字信号彻底避免这个问题。

不同油门协议的对比:

协议 信号类型 分辨率 是否需要校准 响应速度
PWM 模拟脉宽 约1μs 是 慢(20ms周期)
Oneshot125 模拟脉宽 约1μs 是 快(250μs周期)
DShot 数字串行 11位(2048级) 否 极快(取决于波特率)

嗯,这里要注意:ArduPilot默认用PWM输出,但你可以通过参数SERVO_BLH_xxx或DSHOT_xxx切换到DShot。我个人建议新装机直接上DShot,省去校准的麻烦,而且信号更稳定。

好了,电调的工作原理就讲到这里。你理解了MOSFET怎么开关、BEC怎么供电、油门信号怎么解析,后面讲校准流程时就能明白每一步在干什么了。