PMAC 误差补偿的方法及步骤
来源:互联网 发布:js中单选按钮点击事件 编辑:程序博客网 时间:2024/04/30 13:12
PMAC 误差补偿的方法及步骤
电机的进行运动控制的过程中,由于误差的存在,因此要进行补偿。
补偿的基本步骤是:1.测量误差数据
2.使用误差数据制作补偿表
3.在程序中写入补偿表
4.测试补偿后的数据
以下进行详细说明。
本文我使用的是PMAC进行直线电机的控制,使用光栅反馈,1mm对应20000个脉冲,并且使用激光干涉仪作为基准。
(一)测量误差数据
误差数据的测量就是发送指令让PMAC控制电机移动某个距离,同时对比激光干涉仪的数据,两个数据的差值就是误差值。
具体步骤:
(1)给PMAC输入指令#1j^1000000控制电机1向前移动50mm(1mm对应20000个脉冲),同时观察激光干涉仪的数值并进行记录。我这里一共测量10个数据,到500mm为止。记录的方式可以是手动记录,也可以使用干涉仪自带的软件进行数据的记录。我使用的是干涉仪软件的记录方法。
(2)反方向也同样进行测量。
(3)得到测量的数据如下:
系数目标 (mm)运行次数 1 (+) 位置运行次数 1 (+) 误差150.000050.00818.12100.0000100.010510.53150.0000150.021921.94200.0000200.034134.15250.0000250.045545.56300.0000300.057657.67350.0000350.071371.38400.0000400.085685.69450.0000450.099099.010500.0000500.1128112.8系数目标 (mm)运行次数 1 (-) 位置运行次数 1 (-) 误差1-50.0000-50.0108-10.82-100.0000-100.0254-25.43-150.0000-150.0361-36.14-200.0000-200.0475-47.55-250.0000-250.0600-60.06-300.0000-300.0717-71.77-350.0000-350.0842-84.28-400.0000-400.0967-96.79-450.0000-450.1084-108.410-500.0000-500.1209-120.9
(二)制作补偿表
(1)将误差值除以0.05(光栅分辨率为0.05um)得到值2
(2)将值2乘以16(PMAC寄存器相关量)得到值3
得到如下数据:
(3)将值3进行排列得到补偿表,排列的方法是从正向的第一个值到最大值也就是50mm到500mm,接着从反向最大值到最小值,然后删去反向最大值对应的补偿值也就是-500mm对应的值,并在最后加上0。
排序后得到如下表格:
但是在后续的测量中发现,如果这样进行补偿的话会造成边界数据的补偿失败,因此采用的方法是正负方向各增加一个数据,这个数据可以由前面的数据预测得到,这里我们增加550和-550mm的两个补偿表数据分别为40512和-42688,由于要删去反向最大值,因此删去-550的值,加上原来删去的-500的值。
40512
40512
-550
-42688
-3868822-500-500.121-120.9-2418-38688 -3468821-450-450.108-108.4-2168-34688 -3868820-500-500.121-120.9-2418-38688 -3468819-450-450.108-108.4-2168-34688 -3094418-400-400.097-96.7-1934-30944 -2694417-350-350.084-84.2-1684-26944 -2294416-300-300.072-71.7-1434-22944 -1920015-250-250.06-60-1200-19200 -1520014-200-200.048-47.5-950-15200 -1155213-150-150.036-36.1-722-11552 -812812-100-100.025-25.4-508-8128 -345611-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,220000002592336070081091214560184322281627392316803609640512-38688-34688-30944-26944-22944-19200-15200-11552-8128-34560 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 10000P1=P1+1;ENDWHILECLOSE ; 关闭缓冲区
附:雷尼绍激光干涉仪的软件数据记录方法
1.点击菜单栏上第一个图标
2.在弹出的窗口填入采集的方法,我这里是每隔50mm采集一次数据,一共10次,共500mm,保留到小数点后5位。
3.点击下一步,测量方式线性定位方式,方向选择单向
4.然后就是填入信息,自动采集选择无效
- PMAC 误差补偿的方法及步骤
- 改善双极电流吸收器的误差补偿方法
- MCS-51定时器的使用方法与误差补偿方法
- 误差补偿
- 论文-基于椭球你和的三轴磁传感器误差补偿方法---第一个矩阵的解析
- 以PMAC为例说明动态库的调用方法
- 渲染引擎杂记(1)——浮点数误差分析及补偿
- pmac
- 精镗孔尺寸误差预测补偿技术的研究概况与趋势
- 称重传感器并联后的误差及附加误差
- opencv 一种不均匀光照的补偿方法
- 【数值分析】误差的分析与减少及Matlab解线性方程的四种方法
- 几种常见的误差评估方法
- APK 的反编译步骤及方法
- GreenDao的使用及相关步骤方法
- Tightvncserver 连接树莓派的方法及步骤
- 电压误差补偿器在电能计量中的应用
- 多频外差三维重建 投影仪非线性误差补偿
- 解决问题
- leetcode61
- 学习进程01 - 总结归纳【读取文件的方法】以及【字符串操作】
- 算法模版 辗转相除
- MSP430F5438A中断系统
- PMAC 误差补偿的方法及步骤
- AndroidStudio的快捷键大全
- Android ---ListView 的初体验
- windows 64 curl 命令的使用
- yum命令基本用法
- c语言练习题(面试题)
- oracle 实现插入自增列
- Spring boot打包时报错(spring boot Unable to find a single main class from the following candidates)
- 应用启动黑屏处理