从上图中我们可以得到如下信息:

    1. 速度截面是一个抛物线
    1. P0P_0P0​、V0V_0V0​是上一次指定的,P1P_1P1​、V1V_1V1​是当前期望的,TA是当前期望的运动时间
    1. A0A_0A0​是上一次计算的,A1A_1A1​是当前计算的,加加速度dA/dtdA/dtdA/dt是常数

根据上述几条信息,可以看出轨迹插补方式有点类似于三次多项式。


此图下方接下来有一段话:

PVT mode provides excellent contouring capability, because it takes the interpolated commanded path exactly through the programmed points. It creates a path known as a “Hermite spline”. To use PVT mode for this multi-axis contouring, the axis velocities at each programmed point must be specified in addition to the positions.

划关键词Hermite spline,结合文首推测,应该是用的三次Hermite曲线,不了解Hermite曲线的朋友可以移步这篇文章:传送门

这里直接给出三次Hermite曲线的表达式:
p(t)=(1−3t2+2t3)p0+(t−2t2+t3)v0+(3t2−2t3)p1+(t3−t2)v1p(t)=(1-3t^2+2t^3)p_0+(t-2t^2+t^3)v_0+(3t^2-2t^3)p_1+(t^3-t^2)v_1p(t)=(1−3t2+2t3)p0​+(t−2t2+t3)v0​+(3t2−2t3)p1​+(t3−t2)v1​
v(t)=(6t2−6t)p0+(3t2−4t+1)v0+(6t−6t2)p1+(3t2−2t)v1v(t)=(6t^2-6t)p_0+(3t^2-4t+1)v_0+(6t-6t^2)p_1+(3t^2-2t)v_1v(t)=(6t2−6t)p0​+(3t2−4t+1)v0​+(6t−6t2)p1​+(3t2−2t)v1​
a(t)=(12t−6)p0+(6t−4)v0+(6−12t)p1+(6t−2)v1a(t)=(12t-6)p_0+(6t-4)v_0+(6-12t)p_1+(6t-2)v_1a(t)=(12t−6)p0​+(6t−4)v0​+(6−12t)p1​+(6t−2)v1​
j(t)=12p0+6v0−12p1+6v1j(t)=12p_0+6v_0-12p_1+6v_1j(t)=12p0​+6v0​−12p1​+6v1​

由此可见,加加速度确实为定值。

令p0=0p_0=0p0​=0、v0=0v_0=0v0​=0、p1=△Pp_1=\triangle Pp1​=△P、v1=Vv_1 = Vv1​=V,则有:
v(t)=(6t−6t2)△P+(3t2−2t)V=(3V−6△P)t2+(6△P−2V)tv(t)=(6t-6t^2)\triangle P+(3t^2-2t)V=(3V-6\triangle P)t^2+(6\triangle P-2V)tv(t)=(6t−6t2)△P+(3t2−2t)V=(3V−6△P)t2+(6△P−2V)t
a(t)=(6−12t)△P+(6t−2)V=(6V−12△P)t+(6△P−2V)a(t)=(6-12t)\triangle P+(6t-2)V=(6V-12\triangle P)t+(6\triangle P-2V)a(t)=(6−12t)△P+(6t−2)V=(6V−12△P)t+(6△P−2V)

以下是说明书中给出的常见PVT模式的时间-速度曲线,发现图像与上述公式完全相符。转载请注明出处,罗伯特祥。matlab符号运算验证代码如下:

syms t p0 p1 v0 v1 real;p = (1 - 3*t^2 + 2*t^3)*p0 + (t - 2*t^2 + t^3)*v0 + (3*t^2-2*t^3)*p1 + (t^3-t^2)*v1v = diff(p,t)v = subs(v,p0,0);
v = subs(v,v0,0);
v = subs(v,p1,2*v1/3);
v = expand(v)

注意:下图中▲P与V的关系中,横坐标标注的t是一个单位量,代入公式时应当作一个常量看待。

此外,说明书还给出了一个比较有意思的圆弧构建案例:

最后,给出一个PVT插补案例,代码如下:

clear,clc,close alldt = 1;
t = 0:dt:20;
X = 100*sin(0.2*pi*t);
Vx = 0.2*pi*100*cos(0.2*pi*t);count = 1;
time = 0;
n = 1000;
for i=1:length(X)if(i>=2)q0 = X(i-1);q1 = X(i);v0 = Vx(i-1);v1 = Vx(i);traj = pvt(q0,q1,v0,v1,n);for k=1:length(traj)Xpvt(count) = traj(k);time = time + dt/n;tpvt(count) = time;count = count + 1;endend
endplot(t,X,"*")
hold on
plot(tpvt,Xpvt)
t = 0:0.0001:20;
plot(t,100*sin(0.2*pi*t))
legend("插值点","pvt","理想轨迹")function traj = pvt(p0,p1,v0,v1,n)dt = 1/n;tt = dt:dt:1;for i=1:length(tt)t = tt(i);H0 = 1 - 3*t^2 + 2*t^3;H1 = t - 2*t^2 + t^3;H2 = 3*t^2 - 2*t^3;H3 = t^3 - t^2;traj(i) = H0 * p0 + H1*v0 + H2*p1 + H3*v1;end
end


结论: PMAC应用三次Hermite spline实现的PVT功能。

PMAC的PVT功能实现解析笔记相关推荐

  1. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  2. 源码解析:Spring源码解析笔记(五)接口设计总览

    本文由colodoo(纸伞)整理 QQ 425343603 Java学习交流群(717726984) Spring解析笔记 启动过程部分已经完成,对启动过程源码有兴趣的朋友可以作为参考文章. 源码解析 ...

  3. React深入学习与源码解析笔记

    ***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...

  4. javaSE基础——集合全面解析笔记

    javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...

  5. obs 源码解析笔记

    obs 源码解析笔记 由于obs rtp音频传输有问题,所以可能需要修改obs源码,学习了两天,发现官方文档有些混乱,国内有关说明又少,特此记录,也方便以后自己查阅.这里主要涉及工作有关源码其他基本略 ...

  6. cuDNN 功能模块解析

    cuDNN 功能模块解析 Abstract 本cuDNN 8.0.4开发人员指南概述了cuDNN功能,如可自定义的数据布局.支持灵活的dimension ordering,striding,4D张量的 ...

  7. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  8. onenote快捷键_高效飞快地使用onenote快捷键:快捷键功能架构解析

    默认快捷键有近200组,涉及到的功能如此之多,但真正频繁使用的,可能也就几十组.如何从这么多快捷键中选择出自己需要的呢?你需要一张功能架构参考图. 1 默认快捷键功能架构图 官方文档已对快捷键做了初步 ...

  9. Plugin工具类-Unreal4源码拆解-UnrealBuildTool功能流程解析

    Unreal4源码拆解-UnrealBuildTool功能流程解析-Plugin 知乎专栏:UBT源码解析 4.2x功能不会差太多 主要功能 Plugin静态类,功能上大致是一个工具类,根据文件夹保存 ...

最新文章

  1. 字符串数组(就自己做个笔记)
  2. 盛会再临,2018中国大数据技术大会(BDTC)首曝日程及议题
  3. JS中的NaN和isNaN,简直是双重人格?
  4. 华夏银行北京分行签约第四范式智能决策平台
  5. influxdb 客户端工具_性能工具之Jmeter小白入门系列之六
  6. Python 爬虫实例(7)—— 爬取 新浪军事新闻
  7. 记一次接口压力测试与性能调优
  8. Keil 保护视力背景颜色设置和代码的颜色设置
  9. VMware 磁碟機未備妥
  10. input 搜索localStorage存储历史记录 删除历史记录
  11. opencv实战4-图像滤波
  12. TesterHome android app 编写历程(五)
  13. 全系列毕业设计论文来了
  14. #define用法【转】
  15. K8S部署Traefik与Ingress、IngressRoute——筑梦之路
  16. 电子学会2022年9月青少年软件编程(图形化)等级考试试卷(二级)答案解析
  17. I.Geodetic---(弗洛伊德算法(Floyd)的运用)
  18. 《控制工程基础》习题集
  19. 小学三年级计算机上册课后反思,小学三年级的音乐上册课后反思(10页)-原创力文档...
  20. zynq FPGA 的双目视觉毕业设计(五)之matlab 极线矫正算法实现

热门文章

  1. 买不买国产车,名悦集团指点迷津
  2. fhuidalshfj
  3. 用于机器学习的 Pandas(ML)
  4. OA系统集成发票云,提高报销效率
  5. WebAPI搭建(一)如何在Webforms 下 搭建WebAPI
  6. layui实现简单的登录注册
  7. 9秒学院Html5游戏:一场可预见的疯狂
  8. element表格二级表头分两行显示
  9. 学计算机怎么预防脱发,电脑一族如何预防脱发_39健康网
  10. Faster-RCNN实现遥感图像滑坡识别