第四节:驱动器原理——H桥驱动、PWM调速、电流环控制、速度环控制

好,咱们今天聊聊驱动器的核心原理。说实话,很多刚入行的朋友觉得驱动器就是个“黑盒子”,给个脉冲就转。但真正搞过项目的人都知道,不懂驱动器原理,你连电机为什么抖动都查不出来。

我个人习惯把驱动器拆成四个部分来看:功率驱动(H桥)、调速方式(PWM)、内环(电流环)、外环(速度环)。咱们一个一个说。

4.1 H桥驱动——电机转动的“开关组”

先看最底层的功率部分。直流电机怎么正反转?说白了就是改变电流方向。H桥就是干这个的。

名字很形象,四个开关管(MOSFET或IGBT)搭成“H”形,电机在中间横杠上。我画个简图你感受下:

      VCC
       |
      Q1
       |
  Q3--M--Q4
       |
      Q2
       |
      GND

工作逻辑其实很简单:

  • 正转:导通Q1和Q2,电流从VCC→Q1→M→Q2→GND
  • 反转:导通Q3和Q4,电流从VCC→Q3→M→Q4→GND
  • 刹车:导通Q2和Q4(或Q1和Q3),电机两端短路,产生反向电动势制动
  • 滑行:全部关断,电机自由旋转
⚠️ 我曾经踩过的坑: 千万别让Q1和Q3同时导通!这叫“直通”,瞬间电流能把MOSFET炸飞。我见过一个实习生调试时程序跑飞,两个上管同时开了,管子直接冒烟。所以硬件上一定要加死区时间,软件上也要做互锁逻辑。

4.2 PWM调速——用“占空比”说话

电机要调速,最简单的方式就是调电压。但直接调模拟电压效率低、发热大。PWM(脉宽调制)就聪明多了——用高速开关来等效平均电压。

你想想看,一个12V的电源,如果50%的时间导通、50%的时间关断,电机感受到的平均电压就是6V。开关频率足够高(通常10kHz~20kHz),电机电感会把电流平滑掉。

关键参数就两个:

  • 频率:我一般选12kHz~16kHz,低于人耳可听范围就行。太低会有啸叫声,太高开关损耗大。
  • 占空比:0%~100%,对应0V~VCC。注意100%占空比时没有开关动作,反而可能让MOSFET过热(没有开关损耗?不,导通损耗更大)。

实际经验: 我在做分拣机输送带驱动时,发现电机低速抖动。查了半天,原来是PWM频率太低(只有2kHz),电流纹波太大。把频率提到16kHz后,低速运行稳得像丝滑巧克力。

4.3 电流环控制——让力矩“听话”

光有PWM还不够。电机负载变化时,电流会波动。比如分拣机突然抓了个重物,电流瞬间飙升。如果没有电流环,电机可能堵转甚至烧毁。

电流环说白了就是闭环控制电流

  1. 采样电阻或霍尔传感器测出实际电流
  2. 与目标电流(来自速度环或直接给定)比较
  3. 误差经过PI调节器,输出新的PWM占空比

我习惯用PI控制器,比例项负责快速响应,积分项消除静差。参数整定有个口诀:先P后I,P给大点看震荡,I给慢点消误差

// 电流环PI控制伪代码
float current_error = target_current - actual_current;
float p_out = Kp_current * current_error;
integral_current += current_error * dt;
float i_out = Ki_current * integral_current;
float duty = p_out + i_out;
// 限幅处理
if(duty > 1.0) duty = 1.0;
if(duty < 0.0) duty = 0.0;

💡 小技巧: 电流环的采样频率要足够高,至少是PWM频率的2倍。我一般用10kHz的电流环,配合20kHz的PWM。另外,积分项一定要加限幅,否则积分饱和会让你头疼。

4.4 速度环控制——让转速“精准”

电流环搞定力矩,速度环搞定转速。它是电流环的外层:

  • 编码器或霍尔传感器测出实际速度
  • 与目标速度比较
  • 速度环PI输出作为电流环的目标值

结构上就是速度环套电流环,这叫“串级控制”。为什么这么设计?因为电流环响应快(毫秒级),速度环响应慢(几十毫秒级),内环先稳住电流,外环再调速度,互不干扰。

我记得有一次调试分拣机的转向机构,速度环参数没调好,电机一启动就超调20%,然后来回震荡。后来把速度环的P减小、I加大,才稳下来。嗯,这里要注意:速度环的带宽一定要低于电流环,否则两个环会打架。

参数 电流环 速度环
响应时间 1~5ms 20~100ms
采样频率 5~20kHz 100~1000Hz
主要作用 控制力矩/电流 控制转速
PI参数特点 P大、I小 P小、I大

避坑指南: 我曾经遇到过一个问题——速度环输出限幅没设好。速度环PI输出作为电流环的目标,如果限幅设得太小,电机加速很慢;设得太大,电流环可能饱和。一般限幅设为电机额定电流的1.5~2倍比较合理。

4.5 三个环的协同工作

最后咱们串起来看。一个完整的驱动器控制链路是这样的:

目标速度 → [速度环PI] → 目标电流 → [电流环PI] → PWM占空比 → H桥 → 电机
                                                          ↑
                                                      实际电流采样
                                                          ↑
                                                      实际速度采样

说白了,速度环是“指挥官”,告诉电流环“我需要多少力矩”;电流环是“执行者”,精确控制电流输出;H桥和PWM是“士兵”,把指令变成物理动作。

我个人习惯在调试时先调电流环,再调速度环。电流环调好了,电机响应快、不抖动;速度环在此基础上调,事半功倍。如果顺序搞反了,两个环互相影响,你根本分不清问题出在哪。

💡 最后分享一个经验: 实际项目中,电流环的PI参数可以先用公式估算(电机电阻、电感、采样增益),然后微调。速度环的参数更多靠试凑——先给一个很小的P,看响应曲线,慢慢加大直到出现轻微震荡,然后退回来一点,再加I消除静差。这个过程我称之为“手感”,做多了就有感觉了。

好,这一节就到这里。下一节咱们聊聊编码器怎么用,以及怎么从编码器信号里算出速度和位置。到时候我会分享一个我踩过的坑——编码器信号抖动导致位置跳变,差点把机械臂撞了。