2. 运动控制核心概念:位置、速度、加速度、加加速度(Jerk)、运动曲线(S曲线、T曲线)、插补算法简介
各位同学,欢迎来到第二章。
这一章,咱们聊聊运动控制的“基本功”。说白了,就是那些你天天用,但未必真吃透的概念。位置、速度、加速度,还有那个让人又爱又恨的加加速度(Jerk)。
我刚开始做运动控制那会儿,觉得只要把电机转起来就行。结果呢?机器一跑起来,抖得像筛糠,加工出来的零件全是毛刺。后来才明白,这些基础概念没搞懂,上层算法写得再花哨也是白搭。
2.1 从位置到加加速度:一个都不能少
咱们先捋一遍这几个物理量。它们之间的关系,其实就是微积分。
- 位置(Position):就是物体在空间中的坐标。比如电机转了多少圈,或者滑块走到了哪个毫米刻度上。这是最直观的反馈。
- 速度(Velocity):位置的变化率。说白了,就是单位时间走了多远。我习惯用脉冲/秒或者毫米/秒来算。
- 加速度(Acceleration):速度的变化率。决定了电机从静止到高速需要多久。加速度太大,电机会“冲”过头;太小,又太磨叽。
- 加加速度(Jerk):加速度的变化率。嗯,这个有点绕。你可以理解为“加速度的加速度”。
核心公式(离散域,FPGA里常用):
// 假设时间步长为 dt
位置(t+1) = 位置(t) + 速度(t) * dt
速度(t+1) = 速度(t) + 加速度(t) * dt
加速度(t+1) = 加速度(t) + 加加速度(t) * dt
为什么会引入Jerk?我举个例子。你在项目里遇到过那种“急停”吗?电机瞬间从高速降到零,加速度无穷大。这时候,机器会“哐”一声,整个机架都在抖。这就是Jerk太大的后果。
我曾经调试一台高速贴片机,就是被这个Jerk坑惨了。不加Jerk限制,贴片头一加速,元件就飞了。后来加了S曲线,才把振动压下去。
2.2 运动曲线:T曲线 vs S曲线
运动曲线,就是规划位置、速度、加速度随时间变化的轨迹。最常见的两种:T曲线和S曲线。
2.2.1 T曲线(梯形速度曲线)
T曲线,顾名思义,速度曲线像个梯形。分为三个阶段:匀加速、匀速、匀减速。
- 优点:算法简单,计算量小。在FPGA里实现,几乎不占资源。
- 缺点:加速度突变。在加速开始和结束的瞬间,Jerk是无穷大。这会导致机械冲击。
我建议,如果只是做简单的点位控制,比如传送带启停,T曲线够用了。但要是做高精度加工,比如CNC雕刻,T曲线出来的表面光洁度会很差。
2.2.2 S曲线(S形速度曲线)
S曲线,就是对加速度也做了平滑处理。速度曲线像个拉长的“S”。它通常有七个阶段:加加速度、匀加速、减加速度、匀速、加减速度、匀减速、减减速度。
- 优点:运动极其平滑,Jerk可控。机械磨损小,定位精度高。
- 缺点:算法复杂,计算量大。在FPGA里实现,需要精心设计状态机。
我的经验:在FPGA里做S曲线,别想着用浮点数。全部定点化,用移位代替除法。我曾经为了省几个LUT,把S曲线的查表法改成了多项式逼近,效果还不错。
2.3 插补算法简介
插补,就是让电机走出直线、圆弧,甚至任意曲线。单轴运动很简单,多轴联动才是难点。
常见的插补算法有:
- 直线插补(Linear Interpolation):两轴联动,走一条直线。核心是DDA(数字微分分析器)算法。
- 圆弧插补(Circular Interpolation):走一个圆弧。需要实时计算圆心角,对FPGA的实时性要求很高。
- 样条插补(Spline Interpolation):走任意曲线。一般用B样条或NURBS曲线。这个在高端CNC里才用得到。
注意:插补算法的核心是“时间分割”。每个插补周期(比如1ms),都要计算出下一时刻各轴的位置。如果计算超时,电机就会抖动。我在一个项目里,就是因为插补周期没算准,导致两轴不同步,画出来的圆变成了椭圆。
2.4 知识体系总览
为了让你更直观地理解这些概念之间的关系,我画了一张图。你可以看到,从物理量到运动曲线,再到插补算法,是一条完整的链路。
2.5 避坑指南与实战建议
聊了这么多理论,说点实际的。我在项目里踩过的坑,你们就别再踩了。
关于Jerk的设定:不要为了追求极致的平滑,把Jerk设得太小。那样会导致加速时间过长,影响生产效率。我一般会先设一个较大的Jerk,然后根据实际振动情况逐步调小。记住,Jerk不是越小越好,而是“够用就好”。
关于插补周期:FPGA里做插补,周期一定要固定。我曾经用过一个可变周期的方案,结果速度一快,插补就丢步。后来改成固定1ms周期,用定时器中断触发,问题就解决了。
最后,送你一张速查表。调试的时候,对照着看,能省不少时间。
| 概念 | 物理意义 | FPGA实现要点 | 常见问题 |
|---|---|---|---|
| 位置 | 坐标值 | 用计数器累加脉冲 | 溢出处理 |
| 速度 | 位置变化率 | 用定时器控制脉冲频率 | 低速抖动 |
| 加速度 | 速度变化率 | 用累加器改变频率 | 过冲 |
| 加加速度 | 加速度变化率 | 用状态机分段控制 | 计算资源占用 |
嗯,这一章的内容就到这儿。这些概念,你最好能背下来。因为后面的所有章节,都是建立在这些基础之上的。