2. 电机控制基础:直流有刷电机原理、PWM调速原理、H桥驱动电路、电机模型简化
好,咱们正式开始电机控制的第一课。
说实话,很多做RTOS的朋友,一听到「电机控制」四个字就觉得头大。觉得那是搞电力电子的人该干的事。其实不然。你想想看,电机控制说白了就是「让电机转起来,转得准,转得稳」。而RTOS的任务调度,恰恰是保证「准」和「稳」的关键。
这一章,我们先打好基础。把直流有刷电机、PWM调速、H桥驱动这些概念理清楚。嗯,别急,我会结合我实际踩过的坑来讲。
2.1 直流有刷电机的工作原理
直流有刷电机,结构其实很简单。一个转子(绕线圈),一个定子(永磁体或励磁绕组),再加上两个电刷。
通电后,电流流过转子线圈,在磁场中受力旋转。电刷负责换向——转子每转半圈,电流方向就切换一次,保证转子一直朝一个方向转。
我在项目中遇到过一个问题:电刷磨损太快。后来发现是PWM频率太低,导致电刷处持续拉弧。嗯,这个后面会细讲。
核心公式:
电机转速 n 与电压 U 成正比:n ≈ (U - I·R) / Ke
电机转矩 T 与电流 I 成正比:T = Kt · I
说白了,调电压就是调转速,调电流就是调力矩。
2.2 PWM调速原理
为什么要用PWM?直接调电压不行吗?
行,但效率低。线性调压,多余的能量全变成热量散掉了。PWM就不一样——它靠快速开关,让电机「感觉」到平均电压。
PWM调速的三个关键参数:
- 频率:一般1kHz~20kHz。太低会听到啸叫,太高开关损耗大。我个人习惯用10kHz,人耳听不到,MOS管也不烫。
- 占空比:0%~100%。决定平均电压。50%占空比,12V供电,平均就是6V。
- 分辨率:比如8位PWM,就是256级。够不够用?看需求。我做过一个云台,8位就够。但做伺服,至少12位起步。
避坑指南:
我曾经在调试一个AGV小车时,PWM频率设成了500Hz。结果电机低速时一顿一顿的,还发出「嗡嗡」声。后来改成10kHz,问题解决。记住:频率太低,电机在脉冲间隔里会「掉速度」。
2.3 H桥驱动电路
直流有刷电机要正反转,怎么办?用H桥。
H桥由4个开关管(MOSFET或三极管)组成,像个字母「H」。电机接在中间横杠上。
四种工作状态:
| Q1 | Q2 | Q3 | Q4 | 电机状态 |
|---|---|---|---|---|
| ON | OFF | OFF | ON | 正转 |
| OFF | ON | ON | OFF | 反转 |
| OFF | OFF | OFF | OFF | 停止(滑行) |
| ON | ON | OFF | OFF | 刹车(短路制动) |
重要警告:
绝对不能让Q1和Q2同时导通!这叫「直通」,会瞬间烧毁MOS管。我刚开始做驱动板时,就犯过这个错——代码里一个延时没处理好,两个管子同时开了,冒烟了。从那以后,我写PWM驱动一定会加死区时间,哪怕只有几百纳秒。
2.4 电机模型简化
做控制,不能把电机当黑箱。但也没必要把麦克斯韦方程组搬出来。我们需要一个「够用」的模型。
直流有刷电机的简化模型,就三个部分:
- 电阻 R:电枢绕组的直流电阻。决定了堵转电流。
- 电感 L:电枢绕组的电感。影响电流的上升速度。
- 反电动势 E:电机旋转时产生的电压,与转速成正比。E = Ke · ω
电压平衡方程:
U = I·R + L·(dI/dt) + E
这个方程,就是电机控制的「牛顿第二定律」。你给它加电压,电流慢慢建立,反电动势慢慢升高,最后稳定在一个转速上。
我个人的经验是:做速度环控制时,重点关注R和Ke。做电流环时,L才是关键。因为L决定了电流环的带宽——电感越大,电流响应越慢。
简化模型参数获取(实测法):
- R:用万用表量电机两根线,直接读。
- L:用电桥测,或者用示波器看电流上升斜率反推。
- Ke:用手转动电机,测开路电压和转速,比值就是Ke。
嗯,这些参数不用太精确。有个±20%的误差,PID控制器都能扛住。
2.5 小结
这一章,我们聊了直流有刷电机的原理、PWM调速、H桥驱动,还有简化模型。
说白了,电机控制就是三件事:给电压、换方向、测反馈。而RTOS要做的,就是保证这三件事在正确的时间点被执行。
下一章,我们会把电机接到STM32上,用定时器输出PWM,再配合RTOS的任务调度,让电机真正转起来。
课后思考:
如果PWM频率从10kHz降到1kHz,电机低速运行时会出现什么现象?为什么?
想明白了,你就真正理解了PWM调速的本质。