uthman
QQ:3749615
级别: 家园常客
精华主题: 1 篇
发帖数量: 394 个
工控威望: 823 点
下载积分: 2715 分
在线时间: 794(小时)
注册时间: 2007-10-25
最后登录: 2025-10-13
查看uthman的 主题 / 回贴
楼主  发表于: 2024-01-31 13:26
如需转载,请注明出处。
七次多项式推导
f(x)=A_7 x⁷ + A_6 x⁶ + A_5 x⁵ + A_4 x⁴ + A_3 x³ + A_2 x² + A_1 x + A_0
f'(x)=7A_7 x⁶ + 6A_6 x⁵ + 5A_5 x⁴ + 4A_4 x³ + 3A_3 x² + 2A_2 x + A_1
f''(x)=42A_7 x⁵ + 30A_6 x⁴ + 20A_5 x³ + 12A_4 x² + 6A_3 x + 2A_2
f'''(x)=210A_7 x⁴ + 120A_6 x³ + 60A_5 x² + 24A_4 x + 6A_3
归一化处理
f(0)=0
f(1)=1

f'(0)=v_0
f'(1)=v_1
f''(0)=a_0
f''(1)=a_1
f'''(0)=j_0
f'''(1)=j_1
可得出系数如下
A_0 = 0
A_1 = v_0
A_2 = 1 / 2 a_0
A_3 = 1 / 6 j_0
A_4 = -5 a_0 + 5 / 2 a_1 - 2 / 3 j_0 - 1 / 6 j_1 - 20v_0 - 15v_1 + 35
A_5 = 10a_0 - 7a_1 + j_0 + 1 / 2 j_1 + 45v_0 + 39v_1 - 84
A_6 = -15 / 2 a_0 + 13 / 2 a_1 - 2 / 3 j_0 - 1 / 2 j_1 - 36v_0 - 34v_1 + 70
A_7 = 2a_0 - 2a_1 + 1 / 6 j_0 + 1 / 6 j_1 + 10v_0 + 10v_1 - 20

通过以上公式可生成无比丝滑的凸轮曲线
以下曲线是通过七次多项式生成
位置&速度


位置&加速度
  

位置&加加速度
[ 此帖被uthman在2024-02-01 11:16重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(工控人航天员) 真诚感谢!
    flyfeky
    bilibili 工控小工匠孔
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 905 个
    工控威望: 1070 点
    下载积分: 2062 分
    在线时间: 691(小时)
    注册时间: 2012-05-09
    最后登录: 2025-11-04
    查看flyfeky的 主题 / 回贴
    1楼  发表于: 2024-06-11 14:50
    看到大神的杰作, 我试着理解一下,  有不对的地方, 请指正。
    =========期间参考了其它资料
    1.  f(x)=A_7 x⁷ + A_6 x⁶ + A_5 x⁵ + A_4 x⁴ + A_3 x³ + A_2 x² + A_1 x + A_0  //   时间-位置曲线
    2.  f'(x)=7A_7 x⁶ + 6A_6 x⁵ + 5A_5 x⁴ + 4A_4 x³ + 3A_3 x² + 2A_2 x + A_1 //   时间-速度曲线
    3.  f''(x)=42A_7 x⁵ + 30A_6 x⁴ + 20A_5 x³ + 12A_4 x² + 6A_3 x + 2A_2    //   时间加速度曲线
    4.  f'''(x)=210A_7 x⁴ + 120A_6 x³ + 60A_5 x² + 24A_4 x + 6A_3   // 时间加加速度曲线

    归一化处理   ,把一组数据转化到特定的范围 通常是[0,1]之间;  t[0,1]   ,位置[s0,s1] 速度[v0,v1] 加速度[a0,a1]  , 加加速度[_a0,_a1]
    分别代入  f(0)=s0 ,f(1)=s1;   f'(0)=v0 ,f'(1)=v1;   f''(0)=a0 ,f''(1)=a1;   f'''(0)=_a0 ,f'''(1)=_a1;

    8 个未知数 ,8个方程  ,解得系数。

    多项式曲线通常具有两个极值 ,凸轮的凸凹性在这两点发生变化 ,因此叫做凸轮曲线。

    还有个问题, 归一化数据的还原 ,除非模型可以接受归一化数据。  @windstorm
    [ 此帖被flyfeky在2025-05-13 12:13重新编辑 ]
    西门子倍福WPF+C#数据库,槽式设备专家