运动学基础:位置、速度、加速度
做三轴空间插补,说白了就是让电机带着工具走一条我们想要的轨迹。但要让轨迹走得又稳又准,你得先搞明白三个最基础的概念:位置、速度、加速度。嗯,这三个词听着简单,但我在实际项目中见过太多人在这上面栽跟头。
位置:我们到底要去哪
位置,就是目标点。在三维空间里,每个轴都有自己的位置值。比如X轴走到100mm,Y轴走到50mm,Z轴走到30mm,那工具就在(100, 50, 30)这个点上。
但这里有个坑——位置是相对的。你选的原点在哪,位置值就跟着变。我记得刚入行时调试一台三轴平台,死活对不准位置,折腾了两天才发现是机械原点没校准。嗯,从那以后我每次上电第一件事就是回原点。
关键点:位置值 = 电机脉冲数 × 脉冲当量。每个轴都要单独标定这个关系。
速度:走多快是个技术活
速度就是位置的变化率。但三轴插补里,速度不是简单的「快」或「慢」能概括的。你得考虑:
- 合成速度:三个轴合起来的速度向量
- 单轴速度:每个轴各自的速度分量
- 速度限制:电机能跑多快,机械结构能承受多快
我做过一个项目,客户要求每分钟走10米。电机参数看着没问题,结果一跑起来震动得跟地震似的。后来发现是加速度没设好,速度变化太猛了。你想想看,速度再快,稳不住也是白搭。
个人经验:设定速度时,先按电机额定转速的70%来算,留点余量。等调稳了再往上加。
加速度:平滑过渡的关键
加速度,说白了就是速度的变化率。为什么它重要?因为电机和机械结构都有惯性。加速度太大,冲击就大;加速度太小,效率就低。
我习惯把加速度分成三段来看:
- 启动段:从0加速到目标速度
- 匀速段:保持目标速度运行
- 减速段:从目标速度减到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型曲线,平滑为王
下一章我们会把这些知识用到三轴插补的实际代码中。到时候你会发现,搞懂了这些基础,写代码就是水到渠成的事。