高 敏,張 爍,朱 明
1.淮南職業(yè)技術(shù)學(xué)院信息與電氣工程系,安徽淮南,232001;2.安徽理工大學(xué)電氣與信息工程學(xué)院,安徽淮南,232001
大部分情況下,要想對(duì)電機(jī)進(jìn)行精確控制,轉(zhuǎn)速和位置是閉環(huán)控制中必不可少的物理量[1],這就需要把轉(zhuǎn)速和位置高速、準(zhǔn)確地計(jì)算出來(lái)。為此,本設(shè)計(jì)將采用常用的光電編碼器為測(cè)速器件,把采集的信號(hào)送到高性能的TMS320F2812進(jìn)行處理。由于TMS320- F2812集成度高、速度快,外設(shè)資源豐富,完全滿足系統(tǒng)的要求。
光電式編碼器是檢測(cè)轉(zhuǎn)速的器件,編碼器與轉(zhuǎn)子相連,轉(zhuǎn)動(dòng)時(shí)便發(fā)出轉(zhuǎn)速或轉(zhuǎn)角的脈沖信號(hào)[2]。光電編碼器分為絕對(duì)式和增量式兩種。前者在碼盤(pán)上分層刻上表示角度的二進(jìn)制數(shù)字,通過(guò)接收器將數(shù)碼送入處理器,這種編碼器一般用于檢測(cè)轉(zhuǎn)角,對(duì)轉(zhuǎn)角進(jìn)行微分處理就能得到轉(zhuǎn)速;后者在碼盤(pán)上刻著均勻的光柵,通過(guò)光柵不斷地通、斷,在輸出端得到頻率正比于轉(zhuǎn)速的脈沖序列。
上述脈沖序列只能反映出轉(zhuǎn)速的高低,不能反映旋轉(zhuǎn)方向。本文采用的編碼器可以輸出兩組相位相差90°的脈沖序列,根據(jù)兩組脈沖序列的超前順序,可知電機(jī)轉(zhuǎn)速的方向。兩組正交的脈沖正好可以送入DSP的QEP單元進(jìn)行處理。采用QEP模塊可以不增加編碼器的光柵數(shù),而使頻率為原來(lái)的4倍,從而增加轉(zhuǎn)速的分辨率。
采用光電編碼器的數(shù)字測(cè)速一般有三種:測(cè)周期法(M法)、測(cè)頻率法(T法)和測(cè)周期/頻率法(M/T法)。
1.2.1 M法
在Tc內(nèi)測(cè)出的脈沖個(gè)數(shù)為M1,用來(lái)計(jì)算這段時(shí)間內(nèi)的平均轉(zhuǎn)速。已知電機(jī)旋轉(zhuǎn)1周共產(chǎn)生Z個(gè)脈沖,其中Z=倍頻系數(shù)×光柵數(shù),則電機(jī)的轉(zhuǎn)速:n=60M1/ZTc。Z和Tc均為常數(shù),n與M1成正比。M1在高速時(shí)大,誤差小,轉(zhuǎn)速越低,誤差越大,所以只適用于高速測(cè)量。
1.2.2 T法
在相鄰輸出脈沖的時(shí)間間隔內(nèi),用計(jì)數(shù)器對(duì)已知頻率為f0的高頻脈沖進(jìn)行計(jì)數(shù)來(lái)計(jì)算轉(zhuǎn)速。若測(cè)得高頻脈沖的個(gè)數(shù)為M2,則電機(jī)的轉(zhuǎn)速:n=60f0/ZM2。高速時(shí),M2小,誤差所占比例大;低速時(shí),M2小,誤差所占比例小,故轉(zhuǎn)速越高,誤差越大,所以只能用于低速測(cè)量。
1.2.3 M/T法
既要檢測(cè)Tc內(nèi)輸出的脈沖個(gè)數(shù)M1,又要檢測(cè)在此時(shí)間內(nèi)頻率為f0的高頻時(shí)鐘脈沖個(gè)數(shù)M2,則n=60M1f0/ZM2。為了使誤差減小,最好保證光電編碼器脈沖計(jì)數(shù)器和高頻脈沖計(jì)數(shù)器同時(shí)開(kāi)啟和關(guān)閉,只有等到編碼器輸出脈沖前沿到達(dá)時(shí),兩個(gè)計(jì)數(shù)器才能同時(shí)開(kāi)啟或者停止計(jì)數(shù)。由于M1和M2是由轉(zhuǎn)速?zèng)Q定的,高速時(shí)相當(dāng)于M法,低速時(shí)相當(dāng)于T法。因此,本文采用M/T法,能適用的轉(zhuǎn)速寬度明顯大于前兩種,且精度高。
在TMS320F2812中,有兩個(gè)事件管理器模塊EVA和EVB[3]。每個(gè)事件管理器都有一個(gè)正交編碼脈沖(Quadrature Encoder Pulse,QEP)電路,以EVA為例:CAP1_QEP1、CAP2_QEP2是復(fù)用引腳,既能做捕獲引腳又能做QEP引腳,當(dāng)QEP電路使能時(shí),其捕獲功能被禁止。此時(shí)通用定時(shí)器2為QEP電路提供時(shí)基,而EVB則由定時(shí)器4提供時(shí)基。但是,定時(shí)器2只能工作在定向增減模式,此時(shí),原本可以從外部輸入時(shí)鐘的計(jì)數(shù)和方向的引腳TCLKIN和TDIRA被忽略,時(shí)鐘信號(hào)和計(jì)數(shù)方向的信號(hào)均來(lái)自QEP解碼電路。QEP解碼電路可以通過(guò)輸入的正交編碼脈沖產(chǎn)生定時(shí)器計(jì)數(shù)的時(shí)鐘脈沖和計(jì)數(shù)方向。
QEP電路對(duì)兩路正交編碼脈沖的上升沿和下降沿都進(jìn)行計(jì)數(shù),無(wú)論是檢測(cè)到哪個(gè)引腳的上升沿或下降沿,都會(huì)產(chǎn)生一個(gè)時(shí)鐘脈沖,這個(gè)時(shí)鐘脈沖將提供給定時(shí)器T2進(jìn)行計(jì)數(shù),因此,QEP電路為定時(shí)器T2所提供的時(shí)鐘頻率是每個(gè)輸入脈沖序列的4倍。
QEP電路的方向檢測(cè)邏輯可以為定時(shí)器T2提供計(jì)數(shù)方向DIR信號(hào),即可以確定轉(zhuǎn)速方向。當(dāng)CAP1_QEP1輸入的脈沖序列在相位上超前CAP2_QEP2輸入的序列脈沖90°時(shí),QEP電路輸出的DIR為高電平,定時(shí)器T2進(jìn)行增計(jì)數(shù),即電機(jī)正轉(zhuǎn);相反,DIR信號(hào)為低電平,定時(shí)器T2進(jìn)行減計(jì)數(shù),即電機(jī)反轉(zhuǎn)。
以往分立式的測(cè)速單元需要包括多種電路[4],如判別方向電路、整形電路、計(jì)數(shù)器、歸零控制等。這種電路結(jié)構(gòu)復(fù)雜,而且既不精確也沒(méi)有很高的實(shí)時(shí)性。采用光電編碼器與DSP電路,不僅節(jié)省外圍電路的開(kāi)支,還具有很高的可靠性。本文采用增量式的光電編碼器,測(cè)試直流電機(jī)的轉(zhuǎn)速來(lái)進(jìn)行實(shí)驗(yàn),光電編碼器的測(cè)速脈沖信號(hào)的原理圖如圖1所示。
圖1 光電編碼器電路圖
轉(zhuǎn)子帶動(dòng)光柵盤(pán),當(dāng)LED光被遮擋時(shí),傳感器輸出低電平;當(dāng)LED光透過(guò)光柵被傳感器接收時(shí),傳感器輸出高電平。這樣,輸出的脈沖序列經(jīng)過(guò)SN74HC14N后送至DSP的QEP模塊。這里存在兩個(gè)問(wèn)題:一是傳感器輸出脈沖信號(hào)的電平是5 V,而DSP的輸入電壓最大不能超過(guò)3.3 V;二是脈沖信號(hào)向后進(jìn)行傳輸時(shí)往往會(huì)發(fā)生畸變。為解決這兩個(gè)問(wèn)題,電路中接入了施密特芯片,其作用是使脈沖電平控制在3.3 V以下,并對(duì)脈沖進(jìn)行整形,從而得到理想的脈沖波形。
本設(shè)計(jì)的顯示電路采用的是四位共陰極數(shù)碼管,驅(qū)動(dòng)電路采用的是MAX7219CNG芯片,優(yōu)點(diǎn)是只占用DSP的3個(gè)I/O口,采用通用口模擬串口的方法進(jìn)行數(shù)據(jù)傳輸,而且不需要DSP動(dòng)態(tài)掃描,為DSP節(jié)省負(fù)擔(dān)。MAX7219CNG驅(qū)動(dòng)數(shù)碼管電路如圖2所示。
圖2 數(shù)碼管驅(qū)動(dòng)電路
由于本設(shè)計(jì)采用的是M/T測(cè)速法,DSP內(nèi)部EV模塊定時(shí)器分工如下:QEP使能后,定時(shí)器T2對(duì)光電編碼器輸出的脈沖進(jìn)行計(jì)數(shù),定時(shí)器T3作為頻率為f0的高頻信號(hào),由于M1和M2是隨著轉(zhuǎn)速的變化而變化的,所以用定時(shí)器T1周期中斷來(lái)同時(shí)開(kāi)啟或關(guān)閉高頻脈沖計(jì)數(shù)和編碼器脈沖計(jì)數(shù),在周期中斷中設(shè)置標(biāo)志位來(lái)確定開(kāi)啟還是關(guān)閉。
為了充分利用DSP2812片內(nèi)外設(shè)的資源,盡可能減少外圍電路,不僅要對(duì)硬件進(jìn)行初始化,還要對(duì)電路實(shí)時(shí)控制[5]。軟件流程圖如圖3所示。
光柵一共有1 024個(gè)格子,電機(jī)旋轉(zhuǎn)1周,則會(huì)產(chǎn)生4 096個(gè)脈沖?,F(xiàn)在假設(shè)轉(zhuǎn)子正在轉(zhuǎn)動(dòng),此時(shí)定時(shí)器T2應(yīng)該是增計(jì)數(shù)。給T2CNT初始化為0,T2PR初始化為0×FFFF。當(dāng)T2計(jì)數(shù)到0×0FFF的時(shí)候,電機(jī)剛好轉(zhuǎn)完1周。
圖3 軟件設(shè)計(jì)流程圖
通過(guò)定時(shí)器T1中斷,每隔一定的時(shí)間讀取T2CNT和T3CNT的值,就能得到電機(jī)的轉(zhuǎn)速和轉(zhuǎn)過(guò)的角度。第一次進(jìn)入周期中斷時(shí),同時(shí)開(kāi)啟高頻脈沖計(jì)數(shù)和編碼器脈沖計(jì)數(shù)。假如在kt和(k+1)t時(shí)刻,T2CNT和T3CNT的值分別為T(mén)2[kt]、T2[(k+1)t]和T3[kt]、T3[(k+1)t]。已知定時(shí)器T3的頻率為f0,當(dāng)T2計(jì)數(shù)無(wú)翻轉(zhuǎn)時(shí),電機(jī)的轉(zhuǎn)速為:
轉(zhuǎn)過(guò)的角度為:
當(dāng)T2計(jì)數(shù)翻轉(zhuǎn)時(shí),電機(jī)的轉(zhuǎn)速為:
轉(zhuǎn)過(guò)的角度為:
如果kt時(shí)刻的角度為θ[kt],則:
θ[(k+1)t]=θ[kt]+Δθ
為了快速得到比較精確的數(shù)據(jù),數(shù)據(jù)處理時(shí)調(diào)用了TI公司的IQMATH庫(kù),并用移位和乘法替代了除法。
在直流電機(jī)上進(jìn)行了實(shí)驗(yàn),為了判斷是否具有實(shí)時(shí)性和準(zhǔn)確性,通過(guò)PI閉環(huán)反饋改變PWM的占空比來(lái)調(diào)節(jié)直流電機(jī)的轉(zhuǎn)速,結(jié)果顯示:轉(zhuǎn)速能快速跟蹤給定值,并且沒(méi)有很大波動(dòng),間接證明了該方法的正確性。某一時(shí)刻光電編碼器輸出的脈沖如圖4所示。
圖4 光電編碼器輸出脈沖波形
速度測(cè)量是工業(yè)控制系統(tǒng)中最基本的需求之一,本文設(shè)計(jì)的基于DSP的M/T測(cè)速方法,具有高精度、高分辨率,抗干擾能力強(qiáng),有掉電記憶功能等優(yōu)點(diǎn)。將該方法在直流電機(jī)上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證實(shí)了該方法的正確性。
參考文獻(xiàn):
[1]蘇奎峰,呂強(qiáng),耿慶鋒.TMS200F2812原理和開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2005:101-130
[2]陳伯時(shí).電力拖動(dòng)自動(dòng)控制系統(tǒng)[M].3版.北京:機(jī)械工業(yè)出版社,2003:83-120
[3]谷海濤,顏湘武,曲偉.正交編碼電路和捕獲單元在轉(zhuǎn)角和轉(zhuǎn)速測(cè)量中的應(yīng)用[J].電氣應(yīng)用2005,24(1):113-115
[4]李為民,姜漫.基于光電編碼器的速度反饋與控制技術(shù)[J].現(xiàn)代電子技術(shù),2004(23):84-88
[5]趙建周,李安伏.基于光電碼盤(pán)傳感器的位置檢測(cè)控制電路設(shè)計(jì)[J].電氣傳動(dòng)自動(dòng)化,2007,29(1):52-56