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开关 → 电机转动
我画了一张框图,帮你把这几块的关系理清楚:
2.2 MOSFET开关逻辑
无刷电机有三根线,对应三相绕组。电调里用6个MOSFET组成H桥,每相上下各一个。你想想看,要让电机转起来,就得按顺序给这三相通电。
我简单说一下换相逻辑:
- 上桥导通:某一相的上MOSFET打开,电流从电池正极流入该相绕组
- 下桥导通:另一相的下MOSFET打开,电流从该相绕组流回电池负极
- 换相:每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 油门信号解析
飞控发给电调的油门信号,本质上就是告诉电调“该给电机多少电”。目前主流的有三种协议:
- PWM(脉宽调制):传统信号,1ms-2ms脉宽对应0%-100%油门。频率通常50Hz-400Hz
- Oneshot125:125μs-250μs脉宽,响应更快,适合穿越机
- 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怎么供电、油门信号怎么解析,后面讲校准流程时就能明白每一步在干什么了。