3、细分技术原理:什么是细分、微步进波形生成、电流矢量合成

大家好,我是你们的老朋友。今天咱们聊聊细分技术。说实话,我刚入行那会儿,对细分的理解就是「把一步拆成多步走」。后来踩了不少坑,才真正搞明白里面的门道。

细分,英文叫 Micro-stepping,说白了就是让电机走得更细腻。你想想看,一个两相步进电机,整步走的话,每一步是 1.8°。这在很多场合根本不够用。比如做 3D 打印,层高精度要求 0.1mm,你一步下去可能就过了。

3.1 什么是细分

细分的本质,是用电流控制代替脉冲控制。整步驱动时,我们给 A、B 两相轮流通电,电机转子就跟着转。但这样每一步都会产生很大的转矩脉动,振动和噪音都大。

细分就不一样了。它让 A、B 两相的电流按特定比例同时导通。比如 1/2 细分,A 相电流 100%,B 相电流 0% → 然后 A 相 70.7%,B 相 70.7% → 最后 A 相 0%,B 相 100%。这样转子就被「拉」到了中间位置。

核心概念:细分数 = 把整步拆成的微步数。比如 1/16 细分,就是把 1.8° 拆成 16 个微步,每步 0.1125°。

我在项目中遇到过一个问题:客户要求电机运行极其平滑,但用了 1/4 细分还是抖。后来发现,不是细分数不够,而是电流波形没调好。嗯,这个后面会细说。

3.2 微步进波形生成

微步进波形,说白了就是两相电流随时间变化的曲线。最常用的是正弦波和余弦波。

为什么会这样?因为步进电机的转矩与电流近似成正比。要让转子匀速转动,就需要合成一个恒幅旋转的电流矢量。而正弦和余弦,正好能生成一个旋转的圆。

3.2.1 理想波形公式

假设我们做 N 细分,第 k 个微步的电流值为:

A 相电流:I_A = I_max × sin(θ_k)
B 相电流:I_B = I_max × cos(θ_k)
其中 θ_k = (k / N) × 90°,k = 0, 1, 2, ..., N-1

举个例子,1/4 细分(N=4),电流表如下:

微步序号 k 角度 θ (°) I_A (% of I_max) I_B (% of I_max)
0 0 0.0% 100.0%
1 22.5 38.3% 92.4%
2 45 70.7% 70.7%
3 67.5 92.4% 38.3%

我的经验:实际项目中,我一般用查表法生成波形。提前算好 256 或 512 个点的正弦表,运行时直接查。这样 CPU 负担小,响应快。我曾经试过实时计算 sin,结果中断响应慢了,电机反而更抖。

3.2.2 波形优化

理想正弦波在实际中会遇到一个问题:低速时转矩不均匀。因为电机的反电动势和电感会扭曲电流波形。

我建议的做法是:

  • 预失真补偿:根据电机参数,对正弦表做非线性修正
  • 电流环闭环:用 ADC 采样实际电流,PID 调节 PWM 占空比
  • 混合衰减模式:在电流上升沿用快衰减,下降沿用慢衰减

注意:千万不要以为细分数越大越好。我曾经试过 1/256 细分,结果因为机械间隙和摩擦,电机反而出现微步丢失。一般应用 1/8 ~ 1/32 就足够了。

3.3 电流矢量合成

电流矢量合成,是细分的核心。它决定了转子到底停在哪个位置。

你看这张图就明白了:

电流矢量合成示意图 A相电流 B相电流 k=0 k=2 k=4 图中红色、绿色、橙色矢量分别代表 k=0, k=2, k=4 微步的电流合成方向

图中这个圆,就是电流矢量的理想轨迹。每个微步对应圆上的一个点。A 相电流是横坐标,B 相电流是纵坐标。转子会停在矢量指向的角度位置。

3.3.1 矢量合成的数学本质

其实没那么复杂。你想想看:

合成电流幅值:I_total = sqrt(I_A² + I_B²)
合成电流角度:θ = atan2(I_A, I_B)

理想情况下,I_total 应该是常数,这样转矩才均匀。但实际中,由于 PWM 分辨率有限、电流采样噪声,I_total 会有波动。这就是转矩脉动的来源。

关键指标:电流矢量幅值波动率 = (I_max - I_min) / I_avg × 100%。好的设计应该控制在 5% 以内。

3.3.2 实际实现中的坑

我踩过最大的坑,是电流零点漂移。有一次做 1/32 细分,电机在某个位置总是卡顿。查了两天,发现是运放的偏置电压导致电流采样有 10mA 的偏移。在微步电流很小的时候,这个偏移直接让矢量位置偏了。

解决办法:

  • 硬件上:用精密运放,加调零电路
  • 软件上:每次上电做自动校准,记录零点偏移
  • 算法上:在电流环中加入积分项,消除静差

3.4 细分的实际效果

说了这么多理论,咱们看看实际效果对比:

驱动方式 步进角 低速振动 噪音 转矩均匀性
整步 1.8° 严重 大 差
1/2 细分 0.9° 中等 中 一般
1/4 细分 0.45° 轻微 小 较好
1/8 细分 0.225° 几乎无 很小 好
1/16 细分 0.1125° 无 极小 优秀

我的建议:如果你做通用产品,1/8 细分是性价比最高的选择。既保证了平滑度,又不会因为细分数太高而引入其他问题。除非你做的医疗设备或精密仪器,才需要考虑 1/32 以上。

3.5 小结

嗯,今天的内容就到这里。细分的核心就三句话:

  • 什么是细分:用电流比例控制代替整步切换
  • 波形怎么来:正弦/余弦查表,必要时做预失真
  • 矢量怎么合:两相电流合成一个旋转矢量,转子跟着走

下一节我们会深入代码层面,看看怎么用定时器和 PWM 实际生成这些波形。到时候我会分享一个我调试了三个月的电流环代码,保证让你少走弯路。