PMAC的PVT功能实现解析笔记
从上图中我们可以得到如下信息:
- 速度截面是一个抛物线
- P0P_0P0、V0V_0V0是上一次指定的,P1P_1P1、V1V_1V1是当前期望的,TA是当前期望的运动时间
- 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功能实现解析笔记相关推荐
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
- 源码解析:Spring源码解析笔记(五)接口设计总览
本文由colodoo(纸伞)整理 QQ 425343603 Java学习交流群(717726984) Spring解析笔记 启动过程部分已经完成,对启动过程源码有兴趣的朋友可以作为参考文章. 源码解析 ...
- React深入学习与源码解析笔记
***当前阶段的笔记 *** 「面向实习生阶段」https://www.aliyundrive.com/s/VTME123M4T9 提取码: 8s6v 点击链接保存,或者复制本段内容,打开「阿里云盘」 ...
- javaSE基础——集合全面解析笔记
javaSE基础--集合全面解析笔记 英文单词 一.容器定义 1.1.容器继承体系 二.Set--------容器类 部分方法数学集合意义 2.1 HashSet 2.1.1 基本用法 2.1.2 特 ...
- obs 源码解析笔记
obs 源码解析笔记 由于obs rtp音频传输有问题,所以可能需要修改obs源码,学习了两天,发现官方文档有些混乱,国内有关说明又少,特此记录,也方便以后自己查阅.这里主要涉及工作有关源码其他基本略 ...
- cuDNN 功能模块解析
cuDNN 功能模块解析 Abstract 本cuDNN 8.0.4开发人员指南概述了cuDNN功能,如可自定义的数据布局.支持灵活的dimension ordering,striding,4D张量的 ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- onenote快捷键_高效飞快地使用onenote快捷键:快捷键功能架构解析
默认快捷键有近200组,涉及到的功能如此之多,但真正频繁使用的,可能也就几十组.如何从这么多快捷键中选择出自己需要的呢?你需要一张功能架构参考图. 1 默认快捷键功能架构图 官方文档已对快捷键做了初步 ...
- Plugin工具类-Unreal4源码拆解-UnrealBuildTool功能流程解析
Unreal4源码拆解-UnrealBuildTool功能流程解析-Plugin 知乎专栏:UBT源码解析 4.2x功能不会差太多 主要功能 Plugin静态类,功能上大致是一个工具类,根据文件夹保存 ...
最新文章
- 字符串数组(就自己做个笔记)
- 盛会再临,2018中国大数据技术大会(BDTC)首曝日程及议题
- JS中的NaN和isNaN,简直是双重人格?
- 华夏银行北京分行签约第四范式智能决策平台
- influxdb 客户端工具_性能工具之Jmeter小白入门系列之六
- Python 爬虫实例(7)—— 爬取 新浪军事新闻
- 记一次接口压力测试与性能调优
- Keil 保护视力背景颜色设置和代码的颜色设置
- VMware 磁碟機未備妥
- input 搜索localStorage存储历史记录 删除历史记录
- opencv实战4-图像滤波
- TesterHome android app 编写历程(五)
- 全系列毕业设计论文来了
- #define用法【转】
- K8S部署Traefik与Ingress、IngressRoute——筑梦之路
- 电子学会2022年9月青少年软件编程(图形化)等级考试试卷(二级)答案解析
- I.Geodetic---(弗洛伊德算法(Floyd)的运用)
- 《控制工程基础》习题集
- 小学三年级计算机上册课后反思,小学三年级的音乐上册课后反思(10页)-原创力文档...
- zynq FPGA 的双目视觉毕业设计(五)之matlab 极线矫正算法实现