引 言
電動(dòng)機(jī)是各類數(shù)控機(jī)床的重要執(zhí)行部件。要實(shí)現(xiàn)對(duì)電動(dòng)機(jī)的精確位置控制,轉(zhuǎn)子的位置必須能夠被精確的檢測(cè)出來(lái)。光電編碼器是目前最常用的檢測(cè)器件。光電編碼器分為增量式、絕對(duì)式和混合式。其中,增量式以其構(gòu)造簡(jiǎn)單,機(jī)械壽命長(zhǎng),易實(shí)現(xiàn)高分辨率等優(yōu)點(diǎn),已被廣泛采用。增量式光電編碼器輸出有A,B,Z三相信號(hào),其中A相和B相相位相差90°,Z相是編碼器的“零位”,每轉(zhuǎn)只輸出一個(gè)脈沖。在應(yīng)用中,經(jīng)常需要對(duì)A相、B相正交脈沖按照一定的比例,即分周比進(jìn)行分頻。分頻的難點(diǎn)是,無(wú)論設(shè)定分周比是整數(shù)還是分?jǐn)?shù),分頻后輸出的A'相,B'相脈沖仍然要保持正交或近似正交。為此提出一種基于FPGA的整數(shù)分周比實(shí)現(xiàn)方法。該方法邏輯結(jié)構(gòu)簡(jiǎn)單,配置靈活,易于擴(kuò)展,具有很高的實(shí)用價(jià)值。
1 電子齒輪比與分周比
電子齒輪比與分周比是數(shù)控機(jī)床和數(shù)控加工中心中一個(gè)很重要的概念。國(guó)外大部分伺服驅(qū)動(dòng)裝置有電子齒輪比和分周比功能,其中電子齒輪比KEG為伺服電機(jī)實(shí)際執(zhí)行的脈沖量與指令脈沖量之比,分周比KDF是伺服驅(qū)動(dòng)器接收到來(lái)自伺服電動(dòng)機(jī)軸上脈沖編碼器的脈沖量與實(shí)際反饋到上位伺服控制系統(tǒng)(CNC)上脈沖量的比。配合使用電子齒輪比和分周比功能,用戶可以方便地實(shí)現(xiàn)整數(shù)脈沖當(dāng)量,從而避免中間計(jì)算出現(xiàn)量化誤差,在不修改G代碼的情況下,將代碼直接移植到配備不同電機(jī)編碼器線數(shù)或者不同螺距絲杠的機(jī)床或者加工中心。
電子齒輪比和分周比可以按照下式計(jì)算求得。
式中:PG為電機(jī)光電編碼器線數(shù),單位為P/rev(脈沖/轉(zhuǎn));P為絲杠螺距,單位為mm/rev(毫米/周);△l為脈沖當(dāng)量,單位為mm/P(毫米/脈沖);m/n為減速比。
電子齒輪比可以利用脈沖頻率的變換實(shí)現(xiàn),而對(duì)于分周比,由于驅(qū)動(dòng)器反饋到CNC的脈沖量一般采用正交脈沖序列,故分周比的實(shí)現(xiàn)相對(duì)于齒輪比要困難。國(guó)外的各種驅(qū)動(dòng)器一般都帶有分周比功能,對(duì)利用FPGA實(shí)現(xiàn)分周比進(jìn)行研究和探討,電子齒輪比、分周比功能示意圖如圖1所示。
2 分周比的原理框圖
分周比功能的實(shí)現(xiàn)結(jié)構(gòu)如圖2所示。
分周比的實(shí)現(xiàn)需要3個(gè)功能模塊:四倍頻模塊QD-PF、分頻模塊DF、正交序列生成模塊OSG。QDPF模塊的輸入為正交脈沖序列,輸出為方向信號(hào)和四倍頻后的脈沖。DF模塊可實(shí)現(xiàn)輸入脈沖的三分頻。DF內(nèi)部是一個(gè)增減計(jì)數(shù)器,根據(jù)輸入的方向信號(hào)進(jìn)行增、減計(jì)數(shù),正向計(jì)至設(shè)定的正閾值后輸出一個(gè)脈沖和正方向信號(hào),負(fù)向計(jì)至設(shè)定的負(fù)閾值后輸出一個(gè)脈沖和負(fù)方向信號(hào)。當(dāng)計(jì)數(shù)值在正負(fù)閾值之間時(shí),即使電機(jī)方向發(fā)生變化,甚至抖動(dòng),輸出方向信號(hào)都保持不變。
OSG模塊用輸入脈沖沿觸發(fā)內(nèi)部狀態(tài)機(jī)進(jìn)行狀態(tài)轉(zhuǎn)換,根據(jù)輸入的方向信號(hào)判決要跳轉(zhuǎn)的狀態(tài),從而產(chǎn)生正交信號(hào)和方向信號(hào)。
3 仿真研究
根據(jù)圖2,利用ACTEL公司的Libro 8.1開(kāi)發(fā)平臺(tái),采用VHDL硬件語(yǔ)言,創(chuàng)建了相應(yīng)的功能模塊,原理圖如圖3所示。
圖3中,PA205,PB206分別是原始差分信號(hào)的A相、B相的輸入引腳。信號(hào)經(jīng)QDPF四倍頻后將方向信號(hào)和脈沖信號(hào)輸出給DF分頻模塊。經(jīng)DF分頻后將脈沖、方向信號(hào)輸出給正交脈沖生成模塊OSG,產(chǎn)生帶相位的正交信號(hào),最后從PA119,PB120反饋到CNC。下面對(duì)主要模塊做分別介紹。
四倍頻模塊QDPF:正交信號(hào)的四倍頻方法有很多種,在很多資料中都涉及,在此不做詳細(xì)介紹。
分頻模塊DF按照初始化配置的分周比或者預(yù)先設(shè)定的分周比,對(duì)輸入CLK_IN引腳的脈沖序列分頻。內(nèi)部的增、減計(jì)數(shù)器根據(jù)輸入DIR_IN引腳的方向信號(hào)對(duì)輸入脈沖進(jìn)行增(DIR_IN=1)或減(DIR_IN=0)計(jì)數(shù),增計(jì)數(shù)至正閾值時(shí)輸出一個(gè)脈沖和正方向信號(hào)(DIR_OUT=1),減計(jì)數(shù)至負(fù)閾值是輸出一個(gè)脈沖和負(fù)方向信號(hào)(DIR_OUT=0)。若計(jì)數(shù)值在正、負(fù)閾值之間時(shí),不論電機(jī)反向,還是在閾值見(jiàn)抖動(dòng),即方向反復(fù)變化,輸出方向信號(hào)都保持不變。這是能正確實(shí)現(xiàn)分頻的關(guān)鍵,如果這一步處理不好,電機(jī)定位后可能會(huì)出現(xiàn)不斷向CNC發(fā)脈沖的情況。以三分頻為例,即計(jì)數(shù)器增計(jì)數(shù)至3后輸出一個(gè)正脈沖(正方向信號(hào)+脈沖),計(jì)數(shù)器減計(jì)數(shù)至-3后輸出一個(gè)負(fù)脈沖(負(fù)方向信號(hào)+脈沖)。計(jì)數(shù)值在(-3,3)時(shí),計(jì)數(shù)器只對(duì)脈沖計(jì)數(shù)而不輸出。對(duì)QDPF 的仿真結(jié)果如圖4所示。
OSG被脈沖信號(hào)的上升沿觸發(fā)后,根據(jù)當(dāng)前狀態(tài)和方向信號(hào),跳到下一個(gè)狀態(tài)。當(dāng)方向信號(hào)為正時(shí),按照外環(huán)的逆時(shí)針?lè)较蚯袚Q狀態(tài),產(chǎn)生A'相超前B'相 90°的正交脈沖序列;當(dāng)方向信號(hào)為負(fù)時(shí),按照內(nèi)環(huán)的順時(shí)針?lè)较蚯袚Q狀態(tài),產(chǎn)生B'相超前A'相90°的正交脈沖序列,仿真如6所示。
圖6中,dir為方向信號(hào),其跳變沿即方向變化處。由圖6可見(jiàn),電機(jī)正轉(zhuǎn)時(shí)順序?yàn)?0→11→01→00(反向)→01→11→10→…。實(shí)現(xiàn)了相位隨輸入信號(hào)的切換。
最后,對(duì)分周比功能整體結(jié)構(gòu)進(jìn)行仿真,輸入為正交的脈沖序列。輸入模仿實(shí)際電機(jī)光電編碼器脈沖輸出對(duì)脈沖相位反復(fù)切換以驗(yàn)證電機(jī)定位后的輸出。仿真如圖7所示。
從圖7中可見(jiàn),當(dāng)輸入信號(hào)pula,pulb相位不斷切換時(shí),輸出pula1,pulb1按照3分頻,滿足3或-3后輸出新的正交序列。實(shí)際實(shí)驗(yàn)波形如圖8所示。
圖8中,波形1、波形2分別是光電編碼器輸出的A相、B相正交脈沖。波形3、波形4分別是對(duì)A相、B相正交脈沖3分頻后的A'相、B'相正交脈沖。觀察圖 7,圖8,結(jié)果一致。用此方案實(shí)現(xiàn)的分周比已經(jīng)成功應(yīng)用于高精度伺服驅(qū)動(dòng)器中,在實(shí)際應(yīng)用中反復(fù)驗(yàn)證,未發(fā)現(xiàn)誤差。
4 結(jié) 語(yǔ)
本文提出的分周比實(shí)現(xiàn)方法可以準(zhǔn)確地將光電編碼器輸出的正交信號(hào)按照設(shè)定的分周比進(jìn)行分頻。通過(guò)設(shè)定分頻比可以實(shí)現(xiàn)1~256倍的分頻,甚至更高。在實(shí)際系統(tǒng)中,還可以利用MCU通過(guò)總線在線配置分周比。假如要實(shí)現(xiàn)分?jǐn)?shù)比例的分周比,也只需在本方案基礎(chǔ)上稍加改進(jìn)即可。