劉繼磊,孫 靜,王 冰,祝恒洋,俞 帥
(1.西北工業(yè)大學(xué),陜西西安710129;2.西安微電機研究所,陜西西安710077;3.中船重工第704研究所,上海200031)
交流伺服電動機在各種數(shù)控系統(tǒng)中承擔(dān)著重要的執(zhí)行任務(wù)。為了實現(xiàn)對伺服電機的精確位置控制,要求轉(zhuǎn)子的位置必須能夠被精確的檢測出來。增量式光電編碼器作為角位移或角速率測量傳感器,以其構(gòu)造簡單、機械壽命長、易實現(xiàn)高分辨率等優(yōu)點,在現(xiàn)代交流伺服系統(tǒng)中已被廣泛采用。在實際的工作中,增量式光電編碼器往往與電機同軸安裝,它輸出有A、B、Z三相信號,其中A相和B相相位相差90°,Z相為每轉(zhuǎn)只輸出一個脈沖,用于基準(zhǔn)點的定位。在實際應(yīng)用中,經(jīng)常需要對A相、B相正交脈沖按照一定的比例,即分周比進(jìn)行分頻。分頻的難點在于:無論設(shè)定分周比是整數(shù)還是分?jǐn)?shù),分頻后輸出的Div_A相和Div_B相脈沖仍然要保持正交或近似正交。本文以對1 024線分頻得到360線為例,提出一種基于FPGA的分?jǐn)?shù)分周比實現(xiàn)方法。該方法采用硬件描述語言VHDL來實現(xiàn),邏輯結(jié)構(gòu)簡單,程序的可移植性強,易于擴(kuò)展,具有很高的實用價值。
增量式光電編碼器(又稱光電碼盤)發(fā)出的兩路脈沖是正交的,即兩路脈沖為相位相差90°的方波(A和B),如圖1所示。其中,A、B兩相信號的脈沖數(shù)標(biāo)志電機軸所轉(zhuǎn)過的角度,A、B之間的相位關(guān)系標(biāo)志電機的轉(zhuǎn)向,即當(dāng)A相超前B相90°時,標(biāo)志電機正轉(zhuǎn)(圖1a);當(dāng)B相超前A相90°時,標(biāo)志電機反轉(zhuǎn)(圖1b)。
圖1 兩路脈沖為相位相差90°的方波
圖2 四倍頻信號S進(jìn)行M的分?jǐn)?shù)分頻流程圖
圖2中:S是兩相正交脈沖信號A和B的四倍頻以后的信號;clkoutQ是上一次對增量式光電編碼器的兩路正交脈沖A和B的四倍頻信號S進(jìn)行分頻所得到的信號,tmp是分?jǐn)?shù)分子部分的累加值,其取值范圍為0~2N的整數(shù);進(jìn)程1(下文中出現(xiàn)的process(s))是對兩相正交脈沖的四倍頻信號S進(jìn)行M分頻和 (M+1)分頻;進(jìn)程2(下文中出現(xiàn)的process(clkoutQ))是用來對具體何時進(jìn)行哪種分頻進(jìn)行判斷和控制;在硬件描述語言VHDL中,進(jìn)程之間是并行執(zhí)行的,即此處的進(jìn)程1和進(jìn)程2是并行執(zhí)行的。
具體執(zhí)行過程如下:(1)當(dāng)系統(tǒng)時鐘信號clk的上升沿到來時,對兩相正交脈沖信號A和B的四倍頻信號S進(jìn)行M分頻和 (M+1)分頻;與此同時,(2)當(dāng)clkoutQ的上升沿到來時,tmp的值增加L(分子),然后根據(jù)當(dāng)前tmp值與N(分母)大小關(guān)系來判斷和控制信號S下一次是進(jìn)行M分頻還是(M+1)分頻:(a)當(dāng)tmp的取值大于N(分母)時,S進(jìn)行(M+1)分頻,同時將tmp值減少N(分母),然后再增加L(分子),接著進(jìn)行判斷和循環(huán);(b)當(dāng)tmp的取值小于N(分母)時,S進(jìn)行M分頻,同時將tmp值增加L(分子),接著進(jìn)行判斷和循環(huán)。上述(1)和(2)兩過程是同時進(jìn)行的。本文要采用此方法,實現(xiàn)兩相正交脈沖的的分頻。
分周比是數(shù)控系統(tǒng)中一個很重要的概念,它是指伺服驅(qū)動器接收到來自伺服電動機軸上光電編碼器的脈沖量與實際反饋到上位計算機數(shù)字控制(CNC)系統(tǒng)上脈沖量的比,可以按照如下公式進(jìn)行計算:
式中:K為分周比;M為絲杠螺距;L為脈沖當(dāng)量;PG為光電編碼器線。國外的大部分伺服驅(qū)動裝置一般都具有分周比的功能。具有分周比功能的伺服系統(tǒng)結(jié)構(gòu)圖如圖3所示。
圖3 帶有分周比功能的伺服系統(tǒng)結(jié)構(gòu)圖
由于伺服驅(qū)動器反饋到計算機數(shù)字控制(CNC)系統(tǒng)的脈沖量一般采用正交脈沖序列,故分周比的實現(xiàn)比較困難,本文采用FPGA,通過硬件描述語言VHDL進(jìn)行實現(xiàn)。分周比功能的具體實現(xiàn)結(jié)構(gòu)如圖4所示。
圖4 分周比功能原理框圖
由圖4可以看出:分周比的實現(xiàn)需要3個功能模塊:四倍頻模塊、分頻模塊和正交序列生成模塊三部分。四倍頻模塊的輸入為兩路正交脈沖A和B,輸出為方向信號i(通常也被稱為鑒相信號)和四倍頻后的脈沖信號S。分頻模塊可實現(xiàn)對脈沖信號S的分頻(包括2分頻和3分頻等),它內(nèi)部是一個增減計數(shù)器,根據(jù)輸入的方向信號i進(jìn)行增、減計數(shù),正向計至設(shè)定的正閾值后輸出一個脈沖和正方向信號,負(fù)向計至設(shè)定的負(fù)閾值后輸出一個脈沖和負(fù)方向信號。當(dāng)計數(shù)值在正負(fù)閾值之間時,即使電機方向發(fā)生變化,甚至抖動,輸出方向信號i都保持不變。正交序列生成模塊用輸入脈沖沿觸發(fā)內(nèi)部狀態(tài)機進(jìn)行狀態(tài)轉(zhuǎn)換,根據(jù)輸入的方向信號i判斷要跳轉(zhuǎn)的狀態(tài),從而產(chǎn)生正交信號和方向信號。
本文采用硬件描述語言VHDL進(jìn)行模塊化程序設(shè)計。主要包括:四倍頻模塊,分頻模塊,正交序列生成模塊三部分。這里重點介紹分頻模塊和正交序列生成模塊。
四倍頻模塊:正交信號的四倍頻方法有多種,本文主要采用:當(dāng)系統(tǒng)時鐘信號到來時,將兩路正交脈沖A和B分別與其相差一個時鐘周期的正交脈沖信號PA和PB進(jìn)行異或,之后再相或,就可以得到四倍頻脈沖信號S。方向信號i可以通過改變A和B的狀態(tài)進(jìn)行設(shè)置。
以上兩進(jìn)程是并行執(zhí)行的。
正交序列生成模塊:用輸入脈沖clkoutQ的上升沿觸發(fā)內(nèi)部的狀態(tài)機進(jìn)行狀態(tài)轉(zhuǎn)換,根據(jù)當(dāng)前狀態(tài)和方向信號i,跳到下一個狀態(tài)。正交序列生成模塊狀態(tài)轉(zhuǎn)換如表1所示。
表1 正交序列生成模塊狀態(tài)轉(zhuǎn)換表
由表1可知:當(dāng)方向信號i為正(i=1)時,按照10→11→01→00(一個周期)切換狀態(tài),產(chǎn)生Div_A相超前Div_B相90°的正交脈沖序列,此時伺服電機正轉(zhuǎn);當(dāng)方向信號i為負(fù)(i=0)時,按照00→01→11→10(一個周期)切換狀態(tài),產(chǎn)生Div_B相超前Div_A相90°的正交脈沖序列,此時伺服電機反轉(zhuǎn)。
在Xilinx的開發(fā)環(huán)境ISE9.1i下進(jìn)行VHDL程序設(shè)計,經(jīng)過編譯和分析綜合,完全正確之后,利用專業(yè)軟件ModelSim XE III 6.2c進(jìn)行仿真,可以得到如圖5所示的實驗波形。
圖5 分周比整體仿真實驗波形
由圖5可以看出:兩相正交脈沖A和B經(jīng)過四倍頻后產(chǎn)生信號S和方向信號i;對S信號進(jìn)行分頻,即分頻,產(chǎn)生clkoutQ信號;用clkoutQ信號的上升沿觸發(fā)內(nèi)部狀態(tài)機進(jìn)行狀態(tài)轉(zhuǎn)換,最終產(chǎn)生比較理想的兩相正交脈沖序列Div_A和Div_B,并且其占空比仍為50%,完全能夠滿足全數(shù)字交流伺服系統(tǒng)的性能要求。
本文利用FPGA實現(xiàn)了伺服系統(tǒng)中分?jǐn)?shù)分周比的功能,尤其是利用分周比的原理,通過編制VHDL程序,成功實現(xiàn)了兩相正交脈沖的1 024/360分頻,分頻后產(chǎn)生的兩相脈沖序列Div_A和Div_B完全正交,并且其占空比均為50%。在實際工作中,只要對程序進(jìn)行修改,完全可以實現(xiàn)正交脈沖任意比例的分周比,具有較高的實際意義。
[1]張士雄,皮佑國.基于FPGA的伺服驅(qū)動器分周比設(shè)計與實現(xiàn)[J].現(xiàn)代電子技術(shù),2009,32(13):121-123.
[2]李海春.FPGA/CPLD在交流伺服系統(tǒng)中的應(yīng)用[D].武漢:華中科技大學(xué),2008.
[3]蔣晶,蔣東方,高航.高可靠性增量式光電編碼器接口電路設(shè)計[J].測控技術(shù),2009(2):5-8.
[4]Galván E,Torralba A.ASIC implementation of a digital tachometer with high precision in a wide speed range[J].IEEE Trans.Ind.Electron,1996,43(6):655-660.
[5]容文杰.一種基于EPROM的時序電路設(shè)計方法應(yīng)用[J].石家莊鐵道學(xué)院學(xué)報,1998,11(4):39-44.
[6]胡超,方剛,王耀.增量式位移傳感器信號的計算機檢測[J].計量學(xué)報,1997,18(04):50-54.