PMAC 误差补偿的方法及步骤
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。
(四)测试补偿后的数据
附: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 误差补偿的方法及步骤相关推荐
- 椭球拟合的电子罗盘磁差补偿_基于椭球曲面拟合的三维磁罗盘误差补偿算法.pdf...
您所在位置:网站首页 > 海量文档  > 学术论文 > 自然科学论文 基于椭球曲面拟合的三维磁罗盘误差补偿算法.pdf ...
- 基于椭球 磁补偿 matlab,基于椭球曲面拟合的三维磁罗盘误差补偿算法
第 20 卷第 5 期 中国惯性技术学报 Vol.20 No.5 2012年10月 Journal of Chinese Inertial Technology Oct. 2012 收稿日期:2012 ...
- 基于椭球 磁补偿 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 ...
- 重型机床热误差补偿温度敏感测点的识别与优化选择
重型机床热误差补偿温度敏感测点的识别与优化选择 动机与主要贡献 ● 热误差预测的性能主要取决于预测模型的准确性和鲁棒性以及输入的温度变量 ● 在大型数控机床热误差补偿方案中,由于温度敏感点的结构和发热 ...
- 压力传感器误差补偿技术
目前市场上压力传感器种类丰富多样,这使得设计工程师可以选择系统所需的压力传感器.这些压力传感器既包括最基本的变送器,也包括更为复杂的带有片上电路的高集成度传感器.由于存在这些差异,设计工程师必须尽可能 ...
- PSINS不可交换(圆锥/划桨)误差补偿
文章目录 不可交换(圆锥/划桨)误差补偿 多子样不可交换误差补偿 多项式角运动条件下的精确数值解法 仿真例子 不可交换(圆锥/划桨)误差补偿 多子样不可交换误差补偿 使用 cnscl(coning-s ...
- dae怎么用草图大师打开_将草图大师su模型导入lumion的方法与步骤
原标题:将草图大师su模型导入lumion的方法与步骤 sketchup模型怎么导入lumion?本文小编要和大家分享将草图大师su模型导入lumion的方法与步骤,还不知道草图大师模型如何导入lum ...
- 电离层色散效应误差补偿——基于最大对比度自聚焦算法(总结)
电离层色散效应严重影响星载SAR成像质量,为提升P波段星载SAR图像质量,必须研究相应的补偿技术,从而使得其更好的应用在军事和民用上. 目录 一.引言 二.最大对比度自聚焦算法原理 三.最大对比度自聚 ...
- 文献阅读_基于双深度神经网络的轮廓线误差补偿策略研究_机械工程学报
工程问题:在复杂曲面类零件的加工中,对五轴数控机床的加工精度要求高. 科学问题:加工精度通常由轮廓误差指标来衡量,然而传统误差降低策略(轮廓误差线估计和控制器设计)比较复杂. 解决方法:针对机床的输入 ...
最新文章
- Java_压缩与解压工具类
- oracle插入java时间,java向oracle中插入字符或时间型 时间数据
- 【PAT】B1070 结绳(25 分)
- codeforces 69A-C语言解题报告
- java的super_Java中this和super的用法总结
- Ubuntu中apt与apt-get命令的区别
- 有趣的html代码_千万别惹程序员,否则会在代码注释里,告诉这家公司有多坑...
- 行程编码(atoi函数)
- SpringCloud工作笔记051---SpringCloud打包部署流程
- Python的函数式编程--从入门到⎡放弃⎦
- python如何爬虫eps数据_Python爬虫常用的几种数据保存方式
- python 写一个scheme解释器(一)
- caffe自带可运行的两个例子:mnist和cifar10
- 【洛谷 P2731】骑马修栅栏【欧拉路与欧拉回路】
- APP自动化效果测试工具
- java段注释_Java的注释
- 综合实验-基于RS485的多机评分系统
- linu重置root密码(CentOS7)
- 用计算机计算1357城八十九十,1357单元.doc
- 创建一个长方形类,成员域有长方形的长和宽,成员方法有计算长方形的面积,在main方法中创建长方形类对象,并调用计算长方形面积的方法。