PMAC 误差补偿的方法及步骤

电机的进行运动控制的过程中,由于误差的存在,因此要进行补偿。

补偿的基本步骤是:1.测量误差数据

2.使用误差数据制作补偿表

3.在程序中写入补偿表

4.测试补偿后的数据

以下进行详细说明。

本文我使用的是PMAC进行直线电机的控制,使用光栅反馈,1mm对应20000个脉冲,并且使用激光干涉仪作为基准。

(一)测量误差数据

误差数据的测量就是发送指令让PMAC控制电机移动某个距离,同时对比激光干涉仪的数据,两个数据的差值就是误差值。

具体步骤:

(1)给PMAC输入指令#1j^1000000控制电机1向前移动50mm(1mm对应20000个脉冲),同时观察激光干涉仪的数值并进行记录。我这里一共测量10个数据,到500mm为止。记录的方式可以是手动记录,也可以使用干涉仪自带的软件进行数据的记录。我使用的是干涉仪软件的记录方法。

(2)反方向也同样进行测量。

(3)得到测量的数据如下:

系数 目标 (mm) 运行次数 1 (+) 位置 运行次数 1 (+) 误差
1 50.0000 50.0081 8.1
2 100.0000 100.0105 10.5
3 150.0000 150.0219 21.9
4 200.0000 200.0341 34.1
5 250.0000 250.0455 45.5
6 300.0000 300.0576 57.6
7 350.0000 350.0713 71.3
8 400.0000 400.0856 85.6
9 450.0000 450.0990 99.0
10 500.0000 500.1128 112.8
系数 目标 (mm) 运行次数 1 (-) 位置 运行次数 1 (-) 误差
1 -50.0000 -50.0108 -10.8
2 -100.0000 -100.0254 -25.4
3 -150.0000 -150.0361 -36.1
4 -200.0000 -200.0475 -47.5
5 -250.0000 -250.0600 -60.0
6 -300.0000 -300.0717 -71.7
7 -350.0000 -350.0842 -84.2
8 -400.0000 -400.0967 -96.7
9 -450.0000 -450.1084 -108.4
10 -500.0000 -500.1209 -120.9

(二)制作补偿表

(1)将误差值除以0.05(光栅分辨率为0.05um)得到值2

(2)将值2乘以16(PMAC寄存器相关量)得到值3

得到如下数据:

  目标 (mm) 运行次数 1  位置 运行次数 1 误差 误差/分辨率 *16
1 50 50.0081 8.1 162 2592
2 100 100.0105 10.5 210 3360
3 150 150.0219 21.9 438 7008
4 200 200.0341 34.1 682 10912
5 250 250.0455 45.5 910 14560
6 300 300.0576 57.6 1152 18432
7 350 350.0713 71.3 1426 22816
8 400 400.0856 85.6 1712 27392
9 450 450.099 99 1980 31680
10 500 500.1128 112.8 2256 36096
11 -50 -50.0108 -10.8 -216 -3456
12 -100 -100.025 -25.4 -508 -8128
13 -150 -150.036 -36.1 -722 -11552
14 -200 -200.048 -47.5 -950 -15200
15 -250 -250.06 -60 -1200 -19200
16 -300 -300.072 -71.7 -1434 -22944
17 -350 -350.084 -84.2 -1684 -26944
18 -400 -400.097 -96.7 -1934 -30944
19 -450 -450.108 -108.4 -2168 -34688
20 -500 -500.121 -120.9 -2418 -38688
21 -450 -450.108 -108.4 -2168 -34688
22 -500 -500.121 -120.9 -2418 -38688

(3)将值3进行排列得到补偿表,排列的方法是从正向的第一个值到最大值也就是50mm到500mm,接着从反向最大值到最小值,然后删去反向最大值对应的补偿值也就是-500mm对应的值,并在最后加上0。

排序后得到如下表格:

  目标 (mm) 运行次数 1  位置 运行次数 1 误差 误差/分辨率 *16   补偿表  
1 50 50.0081 8.1 162 2592   2592  
2 100 100.0105 10.5 210 3360   3360  
3 150 150.0219 21.9 438 7008   7008  
4 200 200.0341 34.1 682 10912   10912  
5 250 250.0455 45.5 910 14560   14560  
6 300 300.0576 57.6 1152 18432   18432  
7 350 350.0713 71.3 1426 22816   22816  
8 400 400.0856 85.6 1712 27392   27392  
9 450 450.099 99 1980 31680   31680  
10 500 500.1128 112.8 2256 36096   36096  
22 -500 -500.121 -120.9 -2418 -38688   -34688  
21 -450 -450.108 -108.4 -2168 -34688   -38688  
20 -500 -500.121 -120.9 -2418 -38688   -34688  
19 -450 -450.108 -108.4 -2168 -34688   -30944  
18 -400 -400.097 -96.7 -1934 -30944   -26944  
17 -350 -350.084 -84.2 -1684 -26944   -22944  
16 -300 -300.072 -71.7 -1434 -22944   -19200  
15 -250 -250.06 -60 -1200 -19200   -15200  
14 -200 -200.048 -47.5 -950 -15200   -11552  
13 -150 -150.036 -36.1 -722 -11552   -8128  
12 -100 -100.025 -25.4 -508 -8128   -3456  
11 -50 -50.0108 -10.8 -216 -3456   0  

但是在后续的测量中发现,如果这样进行补偿的话会造成边界数据的补偿失败,因此采用的方法是正负方向各增加一个数据,这个数据可以由前面的数据预测得到,这里我们增加550和-550mm的两个补偿表数据分别为40512和-42688,由于要删去反向最大值,因此删去-550的值,加上原来删去的-500的值。

  目标 (mm) 运行次数 1  位置 运行次数 1 误差 误差/分辨率 *16   补偿表
1 50 50.0081 8.1 162 2592   2592
2 100 100.0105 10.5 210 3360   3360
3 150 150.0219 21.9 438 7008   7008
4 200 200.0341 34.1 682 10912   10912
5 250 250.0455 45.5 910 14560   14560
6 300 300.0576 57.6 1152 18432   18432
7 350 350.0713 71.3 1426 22816   22816
8 400 400.0856 85.6 1712 27392   27392
9 450 450.099 99 1980 31680   31680
10 500 500.1128 112.8 2256 36096   36096
  550 40512 40512
-550 -42688 -38688
22 -500 -500.121 -120.9 -2418 -38688   -34688
21 -450 -450.108 -108.4 -2168 -34688   -38688
20 -500 -500.121 -120.9 -2418 -38688   -34688
19 -450 -450.108 -108.4 -2168 -34688   -30944
18 -400 -400.097 -96.7 -1934 -30944   -26944
17 -350 -350.084 -84.2 -1684 -26944   -22944
16 -300 -300.072 -71.7 -1434 -22944   -19200
15 -250 -250.06 -60 -1200 -19200   -15200
14 -200 -200.048 -47.5 -950 -15200   -11552
13 -150 -150.036 -36.1 -722 -11552   -8128
12 -100 -100.025 -25.4 -508 -8128   -3456
11 -50 -50.0108 -10.8 -216 -3456   0

由此得到一个完整的补偿表。

(三)在程序中写入补偿表

在程序中使用#1 DEFINE COMP 22,22000000指令来设置添加补偿表的参数。其中22表示一共有22个入口,也就是补偿值,而22000000则是总长度的脉冲数,也就是110mm*20000脉冲/mm。

然后就是将补偿表写入。并且使能补偿,使I51=1。

(四)测试补偿后的数据

与步骤(一)相同的方法使电机前进或后退一个距离,并与激光干涉仪的数据进行比较,可以看到相差明显变小,在几um内。但是要注意补偿后的jog指令不能使用#1j^20000,而应该使用#1j:20000,否则会出现走不到位的情况。

附:PMAC程序

close ; 关闭任意的缓冲区
delete gather ; 删除数据采集缓冲区
#1 DEFINE COMP 22,22000000
2592
3360
7008
10912
14560
18432
22816
27392
31680
36096
40512
-38688
-34688
-30944
-26944
-22944
-19200
-15200
-11552
-8128
-3456
0
close ; 关闭任意的缓冲区
delete gather ; 删除数据采集缓冲区
undefine all ; 删除全部轴定义
I51=1
&1
#1->20000X ; 电机#1的轴定义#1J/
P1=0;
OPEN PROG 4 CLEAR ; 打开缓冲区
LINEAR ; 直线插补模式
INC ; 增量模式
WHILE(P1<10)
X 50 ; 运行一个单位
DWELL 10000
P1=P1+1;
ENDWHILE
CLOSE ; 关闭缓冲区

附:雷尼绍激光干涉仪的软件数据记录方法

1.点击菜单栏上第一个图标

2.在弹出的窗口填入采集的方法,我这里是每隔50mm采集一次数据,一共10次,共500mm,保留到小数点后5位。

3.点击下一步,测量方式线性定位方式,方向选择单向

4.然后就是填入信息,自动采集选择无效

PMAC 误差补偿的方法及步骤相关推荐

  1. 椭球拟合的电子罗盘磁差补偿_基于椭球曲面拟合的三维磁罗盘误差补偿算法.pdf...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp学术论文&nbsp>&nbsp自然科学论文 基于椭球曲面拟合的三维磁罗盘误差补偿算法.pdf ...

  2. 基于椭球 磁补偿 matlab,基于椭球曲面拟合的三维磁罗盘误差补偿算法

    第 20 卷第 5 期 中国惯性技术学报 Vol.20 No.5 2012年10月 Journal of Chinese Inertial Technology Oct. 2012 收稿日期:2012 ...

  3. 基于椭球 磁补偿 matlab,基于椭球拟合的三轴磁传感器误差补偿方法.pdf

    第 2 5卷 第7期 2 0 1 2年 7月 传 感 技 术 学 报 C HI NE S E J OU R NAL O F S E NS OR S AND A C T UA T OR S V0 1 2 ...

  4. 重型机床热误差补偿温度敏感测点的识别与优化选择

    重型机床热误差补偿温度敏感测点的识别与优化选择 动机与主要贡献 ● 热误差预测的性能主要取决于预测模型的准确性和鲁棒性以及输入的温度变量 ● 在大型数控机床热误差补偿方案中,由于温度敏感点的结构和发热 ...

  5. 压力传感器误差补偿技术

    目前市场上压力传感器种类丰富多样,这使得设计工程师可以选择系统所需的压力传感器.这些压力传感器既包括最基本的变送器,也包括更为复杂的带有片上电路的高集成度传感器.由于存在这些差异,设计工程师必须尽可能 ...

  6. PSINS不可交换(圆锥/划桨)误差补偿

    文章目录 不可交换(圆锥/划桨)误差补偿 多子样不可交换误差补偿 多项式角运动条件下的精确数值解法 仿真例子 不可交换(圆锥/划桨)误差补偿 多子样不可交换误差补偿 使用 cnscl(coning-s ...

  7. dae怎么用草图大师打开_将草图大师su模型导入lumion的方法与步骤

    原标题:将草图大师su模型导入lumion的方法与步骤 sketchup模型怎么导入lumion?本文小编要和大家分享将草图大师su模型导入lumion的方法与步骤,还不知道草图大师模型如何导入lum ...

  8. 电离层色散效应误差补偿——基于最大对比度自聚焦算法(总结)

    电离层色散效应严重影响星载SAR成像质量,为提升P波段星载SAR图像质量,必须研究相应的补偿技术,从而使得其更好的应用在军事和民用上. 目录 一.引言 二.最大对比度自聚焦算法原理 三.最大对比度自聚 ...

  9. 文献阅读_基于双深度神经网络的轮廓线误差补偿策略研究_机械工程学报

    工程问题:在复杂曲面类零件的加工中,对五轴数控机床的加工精度要求高. 科学问题:加工精度通常由轮廓误差指标来衡量,然而传统误差降低策略(轮廓误差线估计和控制器设计)比较复杂. 解决方法:针对机床的输入 ...

最新文章

  1. Java_压缩与解压工具类
  2. oracle插入java时间,java向oracle中插入字符或时间型 时间数据
  3. 【PAT】B1070 结绳(25 分)
  4. codeforces 69A-C语言解题报告
  5. java的super_Java中this和super的用法总结
  6. Ubuntu中apt与apt-get命令的区别
  7. 有趣的html代码_千万别惹程序员,否则会在代码注释里,告诉这家公司有多坑...
  8. 行程编码(atoi函数)
  9. SpringCloud工作笔记051---SpringCloud打包部署流程
  10. Python的函数式编程--从入门到⎡放弃⎦
  11. python如何爬虫eps数据_Python爬虫常用的几种数据保存方式
  12. python 写一个scheme解释器(一)
  13. caffe自带可运行的两个例子:mnist和cifar10
  14. 【洛谷 P2731】骑马修栅栏【欧拉路与欧拉回路】
  15. APP自动化效果测试工具
  16. java段注释_Java的注释
  17. 综合实验-基于RS485的多机评分系统
  18. linu重置root密码(CentOS7)
  19. 用计算机计算1357城八十九十,1357单元.doc
  20. 创建一个长方形类,成员域有长方形的长和宽,成员方法有计算长方形的面积,在main方法中创建长方形类对象,并调用计算长方形面积的方法。

热门文章

  1. lodop指定打印机打印_LODOP指定window默认打印机和临时默认打印机
  2. WireShark利用telnet分析指定数据包信息
  3. 本科毕业论文不会写怎么办?
  4. 2020双十一领喵币自动做任务
  5. 高德地图api调用demo_微信小程序----高德地图API实现的DEMO
  6. 阿里巴巴 Java 开发手册1.4.0
  7. PYcharm怎么用,一篇教会你
  8. pycharm用token登录github账号
  9. bilibili 根据up主下载其下的投稿
  10. Springboot 以输出流形式 在线预览PDF 文件分存储 (本地/远程)