楊洪濤,范祿源,胡 毅
(1.安徽理工大學機械工程學院,安徽淮南 232001;2.合肥工業(yè)大學儀器科學與光電工程學院,安徽合肥 230009)
自驅(qū)動關節(jié)臂坐標測量機是參考傳統(tǒng)關節(jié)臂測量機結(jié)構(gòu),加上6個伺服電機和伺服驅(qū)動器、高精度光電編碼器組成的閉環(huán)控制系統(tǒng),可以實現(xiàn)自動定位和測量[1-4]。為了實現(xiàn)測量機高精度定位測量,需實現(xiàn)電機閉環(huán)控制系統(tǒng)的精確控制和6個關節(jié)角度的高精度測量,這就要求對控制系統(tǒng)關鍵組成部分(光電編碼器)實現(xiàn)高精度實時測量。目前國內(nèi)外對于光電編碼器的測量主要采用單片機、DSP加A/D芯片方法,可以實現(xiàn)對光電編碼器的角度測量,但受限于A/D芯片自身精度,現(xiàn)有系統(tǒng)測量精度、實時性、抗干擾性無法滿足自驅(qū)動關節(jié)臂坐標測量機的要求[5-6]。本文設計了一種基于FPGA組合設計方法的光電編碼器角度實時測量系統(tǒng),可以實現(xiàn)對增量式光電編碼器輸出信號的抗擾動、四倍頻辨相計數(shù)、數(shù)據(jù)傳輸?shù)裙δ堋?/p>
自驅(qū)動關節(jié)臂坐標測量機整體結(jié)構(gòu)如圖1所示。測量機根據(jù)上位機的輸入指令,結(jié)合路徑規(guī)劃算法,驅(qū)動6個電機轉(zhuǎn)動,同時將光電編碼器輸出信號實時反饋至電機驅(qū)動器中,不斷修正電機控制參數(shù),通過測頭觸發(fā)信號的反饋,將當前的光電編碼器角度帶入運動學正解中求出被測點的空間位置,實現(xiàn)測量機精確定位和測量。由自驅(qū)動關節(jié)臂坐標測量機工作原理可知,光電編碼器用于實時修正電機控制參數(shù)和6個關節(jié)角度的高精度測量,因此保證光電編碼器角度測量系統(tǒng)的實時性和精確性是實現(xiàn)自驅(qū)動關節(jié)臂坐標測量機高精度定位測量的基礎。
圖1 自驅(qū)動關節(jié)臂坐標測量機整體結(jié)構(gòu)圖
本文使用EP4CE10F17C8芯片的FPGA作為核心板,開展光電編碼器角度實時測量系統(tǒng)的研究。因文章篇幅有限,本文僅對其中1個角度測量系統(tǒng)進行設計,其他5個采用相同的結(jié)構(gòu)。測量系統(tǒng)結(jié)構(gòu)如圖2所示,主要由抗擾動、四倍頻辨相計數(shù)、數(shù)據(jù)傳輸和上位機顯示4個模塊組成,實現(xiàn)光電編碼器輸出信號消除干擾和噪聲、辨別轉(zhuǎn)向、計算轉(zhuǎn)角、數(shù)據(jù)傳輸至上位機顯示功能。
圖2 測量系統(tǒng)結(jié)構(gòu)框圖
自驅(qū)動關節(jié)臂坐標測量機實際工作時,產(chǎn)生的機械振動和存在的電磁干擾會造成光電編碼器輸出信號含有高頻脈沖噪聲,降低整個系統(tǒng)的測量精度,為了測量的角度更加接近實際值,光電編碼器角度實時測量系統(tǒng)必須加入抗擾動電路。
本模塊采用如圖3所示的原理圖輸入設計方式,由D觸發(fā)器、與門、或非門和JK觸發(fā)器組成[7]。D觸發(fā)器和JK觸發(fā)器保證A、B兩相輸出信號中,維持4倍及以上時鐘頻率的有效信號通過本模塊,而干擾和噪聲因持續(xù)時間短,在JK觸發(fā)器處被濾除。經(jīng)過反復調(diào)試,為本模塊提供50 kHz時鐘頻率時,消除干擾和噪聲的效果最好。
圖3 抗擾動模塊電路圖
自驅(qū)動關節(jié)臂坐標測量機進行測量時,因被測點的空間位置不同,導致測量機每次工作時各關節(jié)的轉(zhuǎn)向和角度不同,故需要設計測量光電編碼器轉(zhuǎn)向和轉(zhuǎn)角的四倍頻辨相計數(shù)電路,保證測量機的定位測量精度。
依據(jù)光電編碼器輸出軸轉(zhuǎn)動時,A、B兩相信號在一個周期內(nèi)發(fā)生00→10→11→01→00(正轉(zhuǎn))或00→01→11→10→00(反轉(zhuǎn))狀態(tài)變化的特點,本模塊采用Verilog HDL語言設計方式。當檢測到濾波后的A、B兩相信號發(fā)生上述狀態(tài)變化時,觸發(fā)本模塊進行計數(shù),正轉(zhuǎn)加1,反轉(zhuǎn)減1。故在一個信號周期內(nèi),計數(shù)頻率是光電編碼器輸出信號頻率的4倍,提高了系統(tǒng)的測量精度,進一步提高了自驅(qū)動關節(jié)臂坐標測量機的定位測量精度。
為了保證上位機可以實時地接收四倍頻辨相計數(shù)模塊中完整的數(shù)據(jù),本模塊在Qsys軟件中搭建由時鐘、Nios II、SDRAM、JTAGUART、System ID和PIO 6個IP核組成的實時數(shù)據(jù)傳輸系統(tǒng),其構(gòu)架如圖4所示。其中PIO IP核設置為32位的輸入端口,保證數(shù)據(jù)傳輸?shù)耐暾?;時鐘IP核頻率設置為100 MHz,保證數(shù)據(jù)傳輸?shù)膶崟r性。
圖4 數(shù)據(jù)傳輸系統(tǒng)架構(gòu)圖
上位機顯示模塊在Visual Studio的MFC應用程序中進行設計與開發(fā),完成與下位機通訊、指令輸入、實時顯示數(shù)據(jù)、系統(tǒng)參數(shù)調(diào)整和數(shù)據(jù)保存等功能,其流程圖如圖5所示。
圖5 軟件系統(tǒng)流程圖
為了驗證本文設計的抗擾動模塊具有很好的濾波效果,對測量系統(tǒng)是否包含抗擾動電路的2種情況進行了仿真實驗。為了保證仿真結(jié)果更加接近真實值,仿真實驗的時鐘信號即CLK_DIANLU設置為50 kHz。從圖6所示的實驗結(jié)果可以看出,測量系統(tǒng)無抗擾動電路時,光電編碼器的A、B兩相輸出信號中存在的干擾和噪聲會進入四倍頻辨相計數(shù)模塊中,引起計數(shù)錯誤,造成角度測量不準確,而加入抗擾動電路后,光電編碼器輸出信號中的干擾和噪聲被濾除,保證了角度測量值與實際值的一致性,因此抗擾動模塊可以有效濾除干擾和噪聲。
(a)無抗擾動電路
(b)加入抗擾動電路圖6 抗擾動模塊仿真結(jié)果
為了驗證上述基于FPGA組合設計方法的光電編碼器角度實時測量系統(tǒng)的可行性,本文以增量式光電編碼器為研究對象,利用現(xiàn)有的實驗裝置搭建驗證平臺。實驗系統(tǒng)如圖7所示,由FPGA開發(fā)板、USB-6229數(shù)據(jù)采集卡、增量式光電編碼器和上位機組成。將光電編碼器通過柔性聯(lián)軸器固定至由電機帶動的精密絲杠末端,F(xiàn)PGA開發(fā)板與數(shù)據(jù)采集卡在絲杠轉(zhuǎn)速為0.80 r/s時,同時采集光電編碼器的輸出信號并保存,其中數(shù)據(jù)采集卡采用一個信號周期內(nèi)計數(shù)頻率是光電編碼器輸出信號頻率4倍的X4編碼類型。從表1和表2所示的光電編碼器正反轉(zhuǎn)過程中部分實驗數(shù)據(jù)可以看出,F(xiàn)PGA與16位USB-6229數(shù)據(jù)采集卡在光電編碼器轉(zhuǎn)動到某一位置時的數(shù)據(jù)完全相同,因此本文設計的測量系統(tǒng)可以實現(xiàn)16位分辨率的高精度測量。同時由圖8所示的實驗結(jié)果可知,F(xiàn)PGA與數(shù)字采樣頻率為1 MHz的USB-6229數(shù)據(jù)采集卡在光電編碼器輸出軸正反轉(zhuǎn)過程中采集的數(shù)據(jù)完全吻合,因此本文設計的測量系統(tǒng)可以實現(xiàn)1 MHz采樣頻率的實時數(shù)據(jù)采集。
圖7 實驗裝置圖
表1 光電編碼器正轉(zhuǎn)部分數(shù)據(jù) (°)
表2 光電編碼器反轉(zhuǎn)部分數(shù)據(jù) (°)
本文設計了能夠用于自驅(qū)動關節(jié)臂坐標測量機的關節(jié)角度實時測量系統(tǒng),分析了基于FPGA設計的光電編碼器角度實時測量系統(tǒng)中各模塊的目的和實現(xiàn)方法,搭建了實驗平臺,并通過抗擾動模塊的仿真實驗、FPGA與數(shù)字采樣頻率為1 MHz的16位USB-6229數(shù)據(jù)采集卡同步對比實驗驗證了該測量系統(tǒng)的可行性。從實驗結(jié)果可以看出,抗擾動模塊可以有效濾除干擾和噪聲,且在相同的實驗條件下,F(xiàn)PGA與數(shù)據(jù)采集卡同時測量光電編碼器正反轉(zhuǎn)的數(shù)據(jù)完全吻合。由于光電編碼器與圓光柵輸出信號格式類似,該測量系統(tǒng)可以延伸到圓光柵角度測量。因此,本文設計的基于FPGA組合設計方法的光電編碼器角度實時測量系統(tǒng)可以直接用于自驅(qū)動關節(jié)臂坐標測量機。
(a)光電編碼器正轉(zhuǎn)
(b)光電編碼器反轉(zhuǎn)