日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PMAC 误差补偿的方法及步骤

發布時間:2023/12/29 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 (+) 誤差
150.000050.00818.1
2100.0000100.010510.5
3150.0000150.021921.9
4200.0000200.034134.1
5250.0000250.045545.5
6300.0000300.057657.6
7350.0000350.071371.3
8400.0000400.085685.6
9450.0000450.099099.0
10500.0000500.1128112.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
15050.00818.11622592
2100100.010510.52103360
3150150.021921.94387008
4200200.034134.168210912
5250250.045545.591014560
6300300.057657.6115218432
7350350.071371.3142622816
8400400.085685.6171227392
9450450.09999198031680
10500500.1128112.8225636096
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?補償表?
15050.00818.11622592?2592?
2100100.010510.52103360?3360?
3150150.021921.94387008?7008?
4200200.034134.168210912?10912?
5250250.045545.591014560?14560?
6300300.057657.6115218432?18432?
7350350.071371.3142622816?22816?
8400400.085685.6171227392?27392?
9450450.09999198031680?31680?
10500500.1128112.8225636096?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?補償表
15050.00818.11622592?2592
2100100.010510.52103360?3360
3150150.021921.94387008?7008
4200200.034134.168210912?10912
5250250.045545.591014560?14560
6300300.057657.6115218432?18432
7350350.071371.3142622816?22816
8400400.085685.6171227392?27392
9450450.09999198031680?31680
10500500.1128112.8225636096?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 误差补偿的方法及步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。