五次多项式是常用的轨迹规划算法。由于其数学特性,可保证一阶和二阶导数连续,能够实现从起点到终点的位置、速度、加速度三重平滑过渡,避免突跳带来的机械冲击,提高系统稳定性与寿命。所以常用于凸轮设计、机器人路径规划、数据拟合等场景中。
公式
位置函数
P(x)=k5x5+k4x4+k3x3+k2x2+k1x+k0
速度函数(一阶导数)
V(x)=5k5x4+4k4x3+3k3x2+2k2x+k1
加速度函数(二阶导数)
A(x)=20k5x3+12k4x2+6k3x+2k2
给定的起始和结束的 主轴位置 x、从轴位置 y、速度 v、加速度 a 所构造的约束方程。
P(x0)=y0!V(x0)=v0A(x0)=a0P(x1)=y1V(x1)=v1A(x1)=a1
系数k0~k5通用解
根据给定的起始和结束的从轴位置、速度、加速度以及主轴相对位移 ( Δx ),可以得到如下解:
ΔxΔyk0k1k2k3k4k5=x1−x0=y1−y0=y0=v0=2a0=2Δx31[20Δy−(8v1+12v0)Δx−(3a0−a1)Δx2]=2Δx41[−30Δy+(14v1+16v0)Δx+(3a0−2a1)Δx2]=2Δx51[12Δy−6(v1+v0)Δx+(a1−a0)Δx2]
代入数据计算

已知凸轮点数据
(x0,y0,v0,a0) = (100,100,1,0)
(x1,y1,v1,a1) = (360,0,0,0)
结合上方公式,求得:
k0k1k2k3k4k5=100=1=0=−0.000145653=0.000000783411=−0.00000000116148
所以:
位置函数
P(x)=−0.00000000116148x5+0.000000783411x4−0.000145653x3+1x+100
速度函数
V(x)=−0.0000000058074x4+0.000003133644x3−0.000436959x2+1
加速度函数
A(x)=−0.0000000232296x3+0.000009400932x2−0.000873918x
最大值求解
求位置函数的最大值,其实就是 速度函数 V(x) = 0 时 [0, 260] 区间内所有方程的实根。
但是速度函数是 一元四次方程,要去求它的根???
我并不清楚在数学上如何求解,所以只能通过程序,采用二分法尽量去逼近 f’(x) = 0 时,x 的值。
最后得到当 x ≈ 61.209535 时,最大值 V(61.209535) = 137.806057

再通过Geogebra 画出函数验证一下极值,确实符合计算结果。
