3、电机原理与选型:直流电机、步进电机、伺服电机、电机选型计算

做运动控制这么多年,我接触最多的就是这三类电机。直流电机、步进电机、伺服电机,各有各的脾气。选对了,项目顺风顺水;选错了,调试能让你怀疑人生。

今天咱们就把这三类电机的原理掰开揉碎,再聊聊选型计算的那些坑。

3.1 直流电机:最朴素的动力源

直流电机是最早被广泛应用的电机。原理其实很简单——通电导体在磁场中受力。你给电刷通上直流电,换向器保证线圈在转过中性面时电流方向自动翻转,转子就一直转下去了。

核心特性:

  • 调速简单:改变电枢电压就能调速,线性度很好。
  • 启动转矩大:启动瞬间电流大,转矩也大。
  • 控制精度一般:开环控制下,负载变化会引起转速波动。
我的经验: 早期做AGV小车驱动时,我习惯用PWM配合H桥驱动直流电机。调速平滑,成本也低。但要注意——PWM频率不能太低,否则电机会发出刺耳的啸叫声。我一般选10kHz以上。

3.2 步进电机:位置控制的廉价方案

步进电机本质上是一种将电脉冲信号转换成角位移的执行机构。你给它一个脉冲,它就转一个固定的角度——这个角度叫步距角。常见的步距角有1.8°、0.9°。

为什么步进电机能精确定位?

因为它内部有永磁转子,定子绕组按一定顺序通电,产生旋转磁场,转子跟着磁场一步步走。没有反馈,也能知道位置——这就是开环控制。

步进电机的三大痛点:

  • 丢步:负载过大或加速太快,转子跟不上脉冲,位置就丢了。
  • 共振:某些转速下电机会剧烈抖动,我遇到过3D打印机在200mm/s速度下打印表面出现波纹,就是共振引起的。
  • 高速转矩小:转速越高,转矩下降越快。

细分驱动是什么?

说白了,就是把一个整步拆成更小的微步。比如1/16细分,1.8°的步距角就变成了0.1125°。运动更平滑,共振也减轻了。但要注意——细分不能提高定位精度,只能改善运行平稳性。这个坑我踩过,以为细分到1/32精度就提高了,结果位置重复精度还是原来的步距角。

3.3 伺服电机:闭环才是王道

伺服电机和步进电机最大的区别——它有反馈。编码器实时检测转子位置,驱动器根据反馈调整电流,形成闭环控制。

伺服系统的三环控制:

  1. 位置环:最外层,比较目标位置和实际位置,输出速度指令。
  2. 速度环:中间层,比较速度指令和实际速度,输出转矩指令。
  3. 电流环:最内层,控制电机电流,直接产生转矩。

三环响应速度从内到外依次变慢。电流环最快,位置环最慢。调试时,我习惯先调电流环,再调速度环,最后调位置环。顺序乱了,系统容易震荡。

我曾经犯过的错: 有一次调试高速贴片机,位置环增益设得太高,电机在高速运行时发出尖锐的啸叫,整台机器都在抖。后来把位置环增益降了30%,速度环加了个低通滤波器,问题才解决。伺服调试,宁慢勿快。

3.4 三类电机对比

特性 直流电机 步进电机 伺服电机
控制方式 开环 开环 闭环
定位精度 低 中(受丢步影响) 高
低速性能 好 好(但有共振区) 优秀
高速性能 好 差(转矩下降快) 优秀
成本 低 中 高
典型应用 风机、泵、玩具 3D打印机、雕刻机 机器人、CNC、贴片机

3.5 电机选型计算

选型不是拍脑袋。我总结了一套流程,每次做项目都按这个来。

第一步:确定负载转矩

负载转矩分两种:

  • 摩擦转矩:导轨、轴承、皮带等摩擦产生的阻力。
  • 惯性转矩:加速时克服惯性的转矩。

总转矩 TL = Tf + J × α

其中 J 是负载惯量,α 是角加速度。

我常用的估算方法: 如果负载是直线运动,先算等效惯量。比如丝杠传动,Jeq = m × (P / 2π)²,m是负载质量,P是丝杠导程。这个公式我用了不下百次,很准。

第二步:计算所需电机转矩

电机额定转矩 TM 必须大于负载转矩 TL,还要留安全余量。我个人习惯留1.5~2倍。

第三步:惯量匹配

这是很多人忽略的。负载惯量 JL 和电机转子惯量 JM 的比值,一般建议在1~5之间。比值太大,系统响应慢,容易震荡。

避坑指南: 我曾经选了一台伺服电机,负载惯量比是12:1。结果怎么调参数都稳不住,位置超调严重。后来换了大一档的电机,惯量比降到4:1,问题立刻解决。记住——惯量匹配比转矩匹配更重要。

第四步:校验转速和功率

电机最高转速要覆盖应用需求,同时留10%~20%余量。功率 P = T × ω,ω是角速度。

3.6 电机选型知识体系

下面这张图是我自己整理的选型决策流程,每次做项目都对照着走一遍。

电机选型决策流程 电机选型决策流程 明确应用需求 负载类型 · 运动速度 · 定位精度 工作环境 · 成本预算 是否需要精确定位? 否 直流电机 是 需要闭环? 否 步进电机 是 伺服电机 选型计算验证 转矩校验 惯量匹配 转速/功率校验

3.7 选型实战案例

说个实际项目。去年做一台小型桌面机器人,Z轴需要提升2kg的负载,行程200mm,要求定位精度0.1mm,运动速度200mm/s。

我的计算过程:

  1. 负载转矩:用丝杠传动,导程5mm,摩擦系数0.1。摩擦转矩 Tf = 2×9.8×0.1×0.005 / (2π) ≈ 0.0016 Nm。很小。
  2. 加速转矩:加速时间0.1s,加速度2m/s²。等效惯量 Jeq = 2 × (0.005/2π)² ≈ 1.27×10⁻⁶ kg·m²。加速转矩 Ta = Jeq × α ≈ 0.0006 Nm。
  3. 总转矩:约0.0022 Nm,留2倍余量,需要0.0044 Nm。
  4. 选型结果:步进电机42系列,保持转矩0.3 Nm,绰绰有余。配1/8细分,步距角0.225°,理论精度0.003mm,满足0.1mm要求。

最终方案: 42步进电机 + 丝杠 + 开环控制。成本低,精度够,项目一次通过验收。

如果当时选了伺服,成本至少翻3倍,性能过剩。选型不是选最贵的,是选最合适的。

3.8 代码示例:步进电机梯形加减速

步进电机最怕急停急启。我习惯用梯形加减速曲线,让电机平滑启停。下面是一个简单的实现。

// 步进电机梯形加减速
// 参数:目标位置 steps,最大速度 max_speed,加速度 accel
void trapezoidal_move(int32_t target_steps, float max_speed, float accel) {
    // 计算加速段和减速段需要的步数
    float accel_steps = (max_speed * max_speed) / (2 * accel);
    float decel_steps = accel_steps;
    
    // 如果总步数不够加速到最大速度,则用三角形曲线
    if (accel_steps + decel_steps > target_steps) {
        // 三角形:加速到一半就减速
        float peak_speed = sqrt(accel * target_steps);
        accel_steps = target_steps / 2;
        decel_steps = target_steps - accel_steps;
        max_speed = peak_speed;
    }
    
    // 执行运动
    float current_speed = 0;
    int32_t current_pos = 0;
    
    while (current_pos < target_steps) {
        // 加速阶段
        if (current_pos < accel_steps) {
            current_speed += accel * 0.001;  // 假设每1ms调整一次
            if (current_speed > max_speed) current_speed = max_speed;
        }
        // 匀速阶段
        else if (current_pos < target_steps - decel_steps) {
            current_speed = max_speed;
        }
        // 减速阶段
        else {
            current_speed -= accel * 0.001;
            if (current_speed < 0) current_speed = 0;
        }
        
        // 根据当前速度计算脉冲间隔
        float pulse_interval = 1000000.0 / (current_speed * 200); // 1.8°步进电机
        delay_us(pulse_interval);
        
        // 输出一个脉冲
        STEP_PIN = 1;
        delay_us(1);
        STEP_PIN = 0;
        
        current_pos++;
    }
}
代码说明: 这个代码是简化版,实际项目中还要考虑脉冲频率上限、电机转矩特性、以及实时性要求。我一般在STM32上用定时器中断实现,精度更高。

好了,电机原理和选型就聊到这儿。记住一句话——选型不是算完就完,一定要留余量,一定要做实测。纸上得来终觉浅,绝知此事要躬行。