4、电机控制原理:直流有刷电机PWM调速、H桥驱动电路设计、电流采样与限流保护
直流有刷电机,听起来好像有点古老?其实在工业现场,它依然是最皮实、最直接的动力源之一。我刚开始做运动控制那会儿,第一个项目就是调一个直流有刷电机。那时候经验少,烧了好几个MOS管才摸到门道。今天咱们就把这块硬骨头啃下来。
4.1 直流有刷电机PWM调速
直流有刷电机的转速,说白了跟两端电压成正比。你想让它转快点,就多给点电压;想慢点,就少给点。但问题来了——我们常用的控制器是数字芯片,它只能输出0或3.3V,没法直接输出一个连续可调的电压。怎么办?
答案就是PWM,脉冲宽度调制。我习惯这么理解:把开关打得飞快,让电机“感觉”到的是一个平均电压。占空比50%,平均电压就是电源电压的一半,转速也差不多是一半。
核心公式:
电机平均电压 Vavg = Vsupply × DutyCycle
电机转速 n ∝ Vavg
这里有个坑,我踩过。PWM频率不能太低,否则电机会“一抖一抖”的,噪音也大。但频率太高也不行,MOS管的开关损耗会急剧上升。我个人习惯,对于普通直流有刷电机,10kHz到20kHz是个好区间。听不到刺耳声,效率也还行。
避坑指南:我曾经在一个项目中把PWM频率设到了50kHz,结果MOS管烫得能煎鸡蛋。后来查资料才发现,开关损耗跟频率成正比。嗯,从那以后我选频率就老实多了。
4.2 H桥驱动电路设计
电机调速搞定了,但还有个问题——怎么让电机正反转?单靠一个开关管只能单向转。这时候就需要H桥了。
H桥的名字很形象,四个开关管(通常是MOSFET)摆成“H”形,电机在中间横杠上。你想想看:
- 正转:左上和右下导通,电流从左往右流过电机
- 反转:右上和左下导通,电流从右往左流过电机
- 刹车:要么上下同时导通(短路刹车),要么全部关断(滑行)
下面这张图是我手绘的H桥结构,你看一眼就明白了。
实际设计时,有个关键问题——死区时间。上下两个管子不能同时导通,否则电源直接短路,瞬间冒烟。我见过一个实习生,没加死区,一上电MOS管就炸了,那声音真吓人。
警告:死区时间一般设置为几百纳秒到几微秒,具体看MOS管的关断延迟。别为了省那点时间把管子烧了。
4.3 电流采样与限流保护
电机堵转、负载突变、启动瞬间——这些情况电流会飙升。如果不做限流,轻则烧驱动,重则烧电机。我有个血的教训:一台AGV小车,因为没做电流保护,堵转时把减速箱齿轮都打碎了。
电流采样,常用的方法有两种:
| 采样方式 | 原理 | 优点 | 缺点 |
|---|---|---|---|
| 低端采样 | 在GND回路串采样电阻 | 电路简单,共模电压低 | 无法检测到短路到GND的故障 |
| 高端采样 | 在电源正极串采样电阻 | 可检测所有故障 | 共模电压高,需要差分放大器 |
| 霍尔电流传感器 | 利用霍尔效应隔离测量 | 隔离、无损耗 | 成本高,带宽有限 |
我个人习惯,在低端采样上加一个运放放大信号,然后送给ADC。成本低,效果也不错。采样电阻的阻值要选好——太大了发热严重,太小了信号太弱。一般选0.01Ω到0.1Ω之间。
限流保护的实现,分硬件和软件两种:
- 硬件限流:用比较器+参考电压,电流超了就立刻关PWM。响应快,纳秒级。
- 软件限流:ADC采样→MCU计算→调整占空比。响应慢,但灵活。
实战建议:我一般两种都用。硬件限流做第一道防线,防止炸管;软件限流做精细调节,比如恒流运行。双保险,心里踏实。
下面给一个简单的电流采样代码片段,基于STM32的ADC读取:
// 电流采样与限流保护示例(伪代码)
uint16_t adc_value;
float current;
while(1) {
adc_value = HAL_ADC_GetValue(&hadc1);
current = (adc_value * 3.3f / 4096.0f) / 0.01f; // 采样电阻0.01Ω
if(current > CURRENT_LIMIT) {
// 硬件限流已经触发,软件做二次保护
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0); // 关PWM
error_flag = 1;
break;
}
// 正常调速
duty = calculate_duty_from_speed(target_speed, current);
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, duty);
}
避坑指南:我曾经在采样电路上没加RC滤波,结果ADC读数跳得厉害,限流阈值设了跟没设一样。后来加了个100nF电容到地,世界清净了。
嗯,到这里,直流有刷电机的PWM调速、H桥驱动、电流采样和限流保护就讲完了。这些是运动控制最基础的东西,但也是最容易出问题的地方。你想想看,一个电机都控不好,后面更复杂的伺服、步进怎么搞?
下次调试的时候,记得先测PWM波形,再看H桥有没有直通,最后确认电流采样是否准确。这三步走完,基本不会出大问题。