运动学基础:位置、速度、加速度

做三轴空间插补,说白了就是让电机带着工具走一条我们想要的轨迹。但要让轨迹走得又稳又准,你得先搞明白三个最基础的概念:位置、速度、加速度。嗯,这三个词听着简单,但我在实际项目中见过太多人在这上面栽跟头。

位置:我们到底要去哪

位置,就是目标点。在三维空间里,每个轴都有自己的位置值。比如X轴走到100mm,Y轴走到50mm,Z轴走到30mm,那工具就在(100, 50, 30)这个点上。

但这里有个坑——位置是相对的。你选的原点在哪,位置值就跟着变。我记得刚入行时调试一台三轴平台,死活对不准位置,折腾了两天才发现是机械原点没校准。嗯,从那以后我每次上电第一件事就是回原点。

关键点:位置值 = 电机脉冲数 × 脉冲当量。每个轴都要单独标定这个关系。

速度:走多快是个技术活

速度就是位置的变化率。但三轴插补里,速度不是简单的「快」或「慢」能概括的。你得考虑:

  • 合成速度:三个轴合起来的速度向量
  • 单轴速度:每个轴各自的速度分量
  • 速度限制:电机能跑多快,机械结构能承受多快

我做过一个项目,客户要求每分钟走10米。电机参数看着没问题,结果一跑起来震动得跟地震似的。后来发现是加速度没设好,速度变化太猛了。你想想看,速度再快,稳不住也是白搭。

个人经验:设定速度时,先按电机额定转速的70%来算,留点余量。等调稳了再往上加。

加速度:平滑过渡的关键

加速度,说白了就是速度的变化率。为什么它重要?因为电机和机械结构都有惯性。加速度太大,冲击就大;加速度太小,效率就低。

我习惯把加速度分成三段来看:

  1. 启动段:从0加速到目标速度
  2. 匀速段:保持目标速度运行
  3. 减速段:从目标速度减到0

但实际应用中,很少有这种理想情况。尤其是三轴联动时,每个轴的加速度曲线都不一样,得协调好才能走出平滑的轨迹。

避坑指南:我曾经在调试时忽略了加速度限制,结果电机直接过载报警。后来查手册才发现,加速度设成了电机能承受的3倍。嗯,从那以后我每次都会先算一下加速度的物理极限。

S型速度曲线简介

梯形速度曲线大家应该都熟悉,就是加速-匀速-减速三段。但梯形曲线有个毛病——加速度突变。启动瞬间加速度从0跳到最大值,减速瞬间又跳回0。这种突变会产生冲击,轻则抖动,重则损坏机械。

S型速度曲线就是来解决这个问题的。它把加速度也做了平滑处理,让速度变化更柔和。

S型曲线的核心思想

S型曲线把加速度分成了三个阶段:

  • 加加速度段:加速度从0逐渐增加到最大值
  • 匀加速度段:保持最大加速度
  • 减加速度段:加速度从最大值逐渐减到0

你看,这样加速度就不会突变,而是像S形一样平滑过渡。减速段也是对称的。

为什么会这样设计?因为电机和机械结构都有弹性,突变会激发共振。我做过一个高速贴片机项目,用梯形曲线时机器抖得厉害,换成S型曲线后,同样的速度,机器稳得像钉在地上一样。

S型曲线的数学表达

嗯,这里简单说一下公式。S型曲线通常用分段函数表示:

# 加速段(加加速度段)
a(t) = J * t          # J是加加速度
v(t) = 0.5 * J * t²
p(t) = (1/6) * J * t³

# 匀加速度段
a(t) = A_max
v(t) = A_max * t + v0
p(t) = 0.5 * A_max * t² + v0 * t + p0

# 减加速度段
a(t) = A_max - J * t
v(t) = A_max * t - 0.5 * J * t² + v0
p(t) = (1/6) * J * t³ + 0.5 * A_max * t² + v0 * t + p0

看着复杂?其实你只需要记住:加加速度J决定了曲线的平滑程度。J越小,曲线越平滑,但加减速时间越长。

S型曲线的实际应用

在实际项目中,我一般这样配置S型曲线参数:

参数 说明 我的建议值
最大速度 电机能跑的最高速度 额定转速的80%
最大加速度 电机能承受的最大加速度 额定值的60%
加加速度 加速度的变化率 最大加速度的10倍

这个表是我多年调试经验总结出来的。你想想看,如果加加速度设得太小,加速过程会拖得很长,影响效率;设得太大,又失去了S型曲线的意义。10倍这个比例,在大多数场景下都能取得不错的平衡。

一个小技巧:调试时先设一个保守的加加速度值,然后慢慢调大,直到出现轻微抖动再回调10%。这样能找到最优参数。

S型曲线 vs 梯形曲线

我做个对比,你就明白了:

  • 梯形曲线:简单、计算量小、适合低速或对冲击不敏感的场景
  • S型曲线:平滑、冲击小、适合高速或精密定位的场景

但S型曲线也有缺点——计算量大。尤其是在三轴插补中,每个轴都要独立计算S型曲线,还要保证三个轴同步,对控制器的算力有一定要求。不过现在主流的运动控制器都支持硬件S型曲线生成,这个问题基本解决了。

嗯,说到这,我想起一个项目。当时用梯形曲线做三轴联动,走一个圆弧轨迹,结果在拐点处有明显的停顿感。换成S型曲线后,同样的轨迹,走起来行云流水。从那以后,但凡要求精度和速度的项目,我首选S型曲线。

本章小结

位置、速度、加速度是运动控制的基石。S型速度曲线则是让这三个参数平滑过渡的利器。记住:

  • 位置要准,原点要校
  • 速度要稳,留有余量
  • 加速度要柔,避免冲击
  • S型曲线,平滑为王

下一章我们会把这些知识用到三轴插补的实际代码中。到时候你会发现,搞懂了这些基础,写代码就是水到渠成的事。

专注资料整理