PMAC 误差补偿的方法及步骤
PMAC 誤差補(bǔ)償?shù)姆椒安襟E
電機(jī)的進(jìn)行運(yùn)動(dòng)控制的過(guò)程中,由于誤差的存在,因此要進(jìn)行補(bǔ)償。
補(bǔ)償?shù)幕静襟E是:1.測(cè)量誤差數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.使用誤差數(shù)據(jù)制作補(bǔ)償表
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3.在程序中寫(xiě)入補(bǔ)償表
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.測(cè)試補(bǔ)償后的數(shù)據(jù)
以下進(jìn)行詳細(xì)說(shuō)明。
本文我使用的是PMAC進(jìn)行直線電機(jī)的控制,使用光柵反饋,1mm對(duì)應(yīng)20000個(gè)脈沖,并且使用激光干涉儀作為基準(zhǔn)。
(一)測(cè)量誤差數(shù)據(jù)
誤差數(shù)據(jù)的測(cè)量就是發(fā)送指令讓PMAC控制電機(jī)移動(dòng)某個(gè)距離,同時(shí)對(duì)比激光干涉儀的數(shù)據(jù),兩個(gè)數(shù)據(jù)的差值就是誤差值。
具體步驟:
(1)給PMAC輸入指令#1j^1000000控制電機(jī)1向前移動(dòng)50mm(1mm對(duì)應(yīng)20000個(gè)脈沖),同時(shí)觀察激光干涉儀的數(shù)值并進(jìn)行記錄。我這里一共測(cè)量10個(gè)數(shù)據(jù),到500mm為止。記錄的方式可以是手動(dòng)記錄,也可以使用干涉儀自帶的軟件進(jìn)行數(shù)據(jù)的記錄。我使用的是干涉儀軟件的記錄方法。
(2)反方向也同樣進(jìn)行測(cè)量。
(3)得到測(cè)量的數(shù)據(jù)如下:
| 系數(shù) | 目標(biāo) (mm) | 運(yùn)行次數(shù) 1 (+) 位置 | 運(yùn)行次數(shù) 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 |
| 系數(shù) | 目標(biāo) (mm) | 運(yùn)行次數(shù) 1 (-) 位置 | 運(yùn)行次數(shù) 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 |
(二)制作補(bǔ)償表
(1)將誤差值除以0.05(光柵分辨率為0.05um)得到值2
(2)將值2乘以16(PMAC寄存器相關(guān)量)得到值3
得到如下數(shù)據(jù):
| ? | 目標(biāo) (mm) | 運(yùn)行次數(shù) 1? 位置 | 運(yùn)行次數(shù) 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進(jìn)行排列得到補(bǔ)償表,排列的方法是從正向的第一個(gè)值到最大值也就是50mm到500mm,接著從反向最大值到最小值,然后刪去反向最大值對(duì)應(yīng)的補(bǔ)償值也就是-500mm對(duì)應(yīng)的值,并在最后加上0。
排序后得到如下表格:
| ? | 目標(biāo) (mm) | 運(yùn)行次數(shù) 1? 位置 | 運(yùn)行次數(shù) 1 誤差 | 誤差/分辨率 | *16 | ? | 補(bǔ)償表 | ? |
| 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 | ? |
但是在后續(xù)的測(cè)量中發(fā)現(xiàn),如果這樣進(jìn)行補(bǔ)償?shù)脑挄?huì)造成邊界數(shù)據(jù)的補(bǔ)償失敗,因此采用的方法是正負(fù)方向各增加一個(gè)數(shù)據(jù),這個(gè)數(shù)據(jù)可以由前面的數(shù)據(jù)預(yù)測(cè)得到,這里我們?cè)黾?50和-550mm的兩個(gè)補(bǔ)償表數(shù)據(jù)分別為40512和-42688,由于要?jiǎng)h去反向最大值,因此刪去-550的值,加上原來(lái)刪去的-500的值。
| ? | 目標(biāo) (mm) | 運(yùn)行次數(shù) 1? 位置 | 運(yùn)行次數(shù) 1 誤差 | 誤差/分辨率 | *16 | ? | 補(bǔ)償表 |
| 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 |
由此得到一個(gè)完整的補(bǔ)償表。
(三)在程序中寫(xiě)入補(bǔ)償表
在程序中使用#1 DEFINE COMP 22,22000000指令來(lái)設(shè)置添加補(bǔ)償表的參數(shù)。其中22表示一共有22個(gè)入口,也就是補(bǔ)償值,而22000000則是總長(zhǎng)度的脈沖數(shù),也就是110mm*20000脈沖/mm。
然后就是將補(bǔ)償表寫(xiě)入。并且使能補(bǔ)償,使I51=1。
(四)測(cè)試補(bǔ)償后的數(shù)據(jù)
與步驟(一)相同的方法使電機(jī)前進(jìn)或后退一個(gè)距離,并與激光干涉儀的數(shù)據(jù)進(jìn)行比較,可以看到相差明顯變小,在幾u(yù)m內(nèi)。但是要注意補(bǔ)償后的jog指令不能使用#1j^20000,而應(yīng)該使用#1j:20000,否則會(huì)出現(xiàn)走不到位的情況。附:PMAC程序
close ; 關(guān)閉任意的緩沖區(qū) delete gather ; 刪除數(shù)據(jù)采集緩沖區(qū) #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 ; 關(guān)閉任意的緩沖區(qū) delete gather ; 刪除數(shù)據(jù)采集緩沖區(qū) undefine all ; 刪除全部軸定義 I51=1 &1 #1->20000X ; 電機(jī)#1的軸定義#1J/ P1=0; OPEN PROG 4 CLEAR ; 打開(kāi)緩沖區(qū) LINEAR ; 直線插補(bǔ)模式 INC ; 增量模式 WHILE(P1<10) X 50 ; 運(yùn)行一個(gè)單位 DWELL 10000 P1=P1+1; ENDWHILE CLOSE ; 關(guān)閉緩沖區(qū)
附:雷尼紹激光干涉儀的軟件數(shù)據(jù)記錄方法
1.點(diǎn)擊菜單欄上第一個(gè)圖標(biāo)
2.在彈出的窗口填入采集的方法,我這里是每隔50mm采集一次數(shù)據(jù),一共10次,共500mm,保留到小數(shù)點(diǎn)后5位。
3.點(diǎn)擊下一步,測(cè)量方式線性定位方式,方向選擇單向
4.然后就是填入信息,自動(dòng)采集選擇無(wú)效
總結(jié)
以上是生活随笔為你收集整理的PMAC 误差补偿的方法及步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中国省市区名称区号Excel表
- 下一篇: 计算机系社会实践大一,计算机系社会实践主