朱亞光馮國勝李婭君韓超李先河
(1.石家莊鐵道大學(xué);2.河北省節(jié)水灌溉設(shè)備質(zhì)量監(jiān)督檢驗(yàn)站)
在電動汽車中電動機(jī)的轉(zhuǎn)速常常作為反饋量在控制系統(tǒng)中起著重要的作用,也是駕駛?cè)藛T觀察電動汽車運(yùn)行狀態(tài)的重要依據(jù)之一。在當(dāng)前的電動機(jī)轉(zhuǎn)速測量方法中,有微電動機(jī)測速法、離心式轉(zhuǎn)速表法及霍爾元件測速法等。微電動機(jī)測速和離心式轉(zhuǎn)速表測速2種方法有現(xiàn)成的測速儀器,但測速電動機(jī)和測速表都要與被測電動機(jī)的軸連接,既增加安裝難度,也消耗電動機(jī)一部分能量,因此,2種測速方法都不可取。光電編碼器測速和霍爾元件的測速方法相似,都是在電動機(jī)轉(zhuǎn)軸上安裝傳感器,將軸的轉(zhuǎn)動信號轉(zhuǎn)化為脈沖信號,通過計(jì)算脈沖信號的個(gè)數(shù)來計(jì)算轉(zhuǎn)速。光電編碼器具有線性度好、精度高及體積小等特點(diǎn),是目前應(yīng)用廣泛的測速工具之一。為了實(shí)現(xiàn)電動機(jī)轉(zhuǎn)速的快速及準(zhǔn)確的測量,文章通過DSP56F8346開發(fā)板對編碼器進(jìn)行計(jì)數(shù),然后通過新的編程方式在保證測量精度的情況下,擴(kuò)大了電動機(jī)轉(zhuǎn)速的測量范圍,并通過DSP和上位機(jī)的通信實(shí)現(xiàn)了電動機(jī)轉(zhuǎn)速數(shù)據(jù)的實(shí)時(shí)監(jiān)測和存儲[1]。該測量系統(tǒng)具有精度高、范圍廣的特點(diǎn),為電動機(jī)轉(zhuǎn)速測量提供了有效的測量手段。
目前,電動機(jī)轉(zhuǎn)速光電編碼器的測速常用方法有3種,即測周期法(T法)、測頻法(M法)及將以上2種方法結(jié)合起來的測頻率周期法(M/T法)。T法主要是檢測2個(gè)邊沿信號的時(shí)間,在低速范圍的速度檢測中比較適用;M法主要是在一個(gè)固定的時(shí)間內(nèi)檢測正交脈沖信號的個(gè)數(shù),適用于高速測量,但測量的速度降低時(shí),誤差也隨即增大;M/T法是計(jì)算一定時(shí)間內(nèi)脈沖的個(gè)數(shù)和該時(shí)間內(nèi)第1個(gè)脈沖和最后1個(gè)脈沖的時(shí)間值,然后通過計(jì)算得到轉(zhuǎn)速值,此法檢測轉(zhuǎn)速范圍廣,測量精度比較高。圖1示出M/T法測速原理。光電編碼器主要由光柵盤和光電檢測裝置組成。由于光柵盤與電動機(jī)同軸,電動機(jī)旋轉(zhuǎn)時(shí),光柵盤與電動機(jī)同速旋轉(zhuǎn),經(jīng)發(fā)光二極管等電子元件組成的檢測裝置檢測輸出若干脈沖信號,通過計(jì)算每秒光電編碼器輸出脈沖的個(gè)數(shù)就能反映當(dāng)前電動機(jī)的轉(zhuǎn)速[2]。
圖1 測頻率周期法(M/T法)測速原理圖
電動機(jī)中的編碼器信號由定時(shí)器(TIMERA)的1和2引腳輸入2路正交編碼脈沖,當(dāng)正交編碼脈沖電路測量這2路的正交編碼脈沖信號進(jìn)行計(jì)數(shù)時(shí),無論是檢測到下降沿還是上升沿,都會產(chǎn)生一個(gè)時(shí)鐘脈沖對TIMERA進(jìn)行計(jì)數(shù)??梢酝ㄟ^定時(shí)器每隔一定時(shí)間(t)讀取TIMERA的值,然后將讀取到的值保存下來并用于下一時(shí)刻的計(jì)算,如:t1時(shí)刻讀取的TIMERA值為K1,t1+t時(shí)刻讀取到的TIMERA值為K2。那么在時(shí)間為t的時(shí)間間隔內(nèi),讀取到TIMERA的脈沖個(gè)數(shù)為K2-K1。因此,電動機(jī)轉(zhuǎn)速(n)的計(jì)算,如式(1)所示。
式中:n——電動機(jī)的轉(zhuǎn)速,r/s;
K1——t時(shí)刻讀取的TIMERA值,個(gè);
K2——t1+t時(shí)刻讀取的TIMERA值,個(gè);
N——電動機(jī)每轉(zhuǎn)的脈沖數(shù)[3],個(gè);
t——時(shí)間間隔,s。
在時(shí)間為t的一段時(shí)間中,計(jì)數(shù)1個(gè)已知頻率為f/Hz的高頻脈沖數(shù)為M/個(gè),如式(2)所示。
將式(2)代入式(1)中,則電動機(jī)轉(zhuǎn)速,如式(3)所示。
為了測量出電動機(jī)編碼器輸出的2個(gè)相鄰脈沖之間高頻時(shí)鐘脈沖的個(gè)數(shù),可以采用DSP56F8346開發(fā)板進(jìn)行測量。DSP56F8346的主頻為60 MHz,時(shí)鐘周期為16.7 ns,它集成了數(shù)字信號處理器(DSP)和微控制單元(MCU)的功能,具有2個(gè)雙6通道的PWM模塊、1個(gè)相位檢測器功能模塊,2個(gè)串行通信接口模塊等[4]。通過對電動機(jī)中的正交編碼器脈沖信號的測量,將測得的脈沖信號傳送給DSP56F8346的捕捉單元,使用DSP56F8346的計(jì)數(shù)器對已知頻率的脈沖信號在一個(gè)脈沖周期范圍內(nèi)進(jìn)行計(jì)數(shù),得出M,最后通過M和f來計(jì)算轉(zhuǎn)速。轉(zhuǎn)速值通過串口發(fā)送到FreeMASTER軟件中,實(shí)現(xiàn)了轉(zhuǎn)速信號的適時(shí)監(jiān)測和數(shù)據(jù)存儲[5]。圖2示出電動機(jī)編碼器測速總體流程圖。試驗(yàn)用的電動機(jī)型號為SM060R20B30MNAD,示波器測出的編碼器A相信號,如圖3所示。
圖3 電動機(jī)編碼器的A相信號顯示界面圖
本設(shè)計(jì)利用DSP的TIMERA進(jìn)行高速時(shí)鐘的累加,將捕獲引腳CAP1_QEP1定義為功能引腳,允許定時(shí)器中斷和捕捉中斷,轉(zhuǎn)速測量流程,如圖4所示。
圖4 電動機(jī)轉(zhuǎn)速測量流程圖
單片機(jī)DSP56F8346有相位檢測器0和相位檢測器1,這2個(gè)相位檢測器分別與定時(shí)器A和定時(shí)器B共享引腳。因此,在測量轉(zhuǎn)速時(shí)需要將編碼器中的A,B相與定時(shí)器相應(yīng)的針腳相連接,然后通過編程計(jì)算,就可以得到轉(zhuǎn)速值。DSP56F8346開發(fā)板的編程軟件為CodeWarriors,它可以用C語言也可以用匯編語言進(jìn)行編程。這個(gè)編程環(huán)境的嵌入式軟件PE(Processor Expert)提供了比較高效又方便的嵌入豆模塊。每個(gè)嵌入豆模塊有相對應(yīng)的嵌入式系統(tǒng)的基本功能,如CPU內(nèi)核和外設(shè)等,它可以根據(jù)用戶的需求通過可視化窗口選擇和配置適當(dāng)?shù)墓δ?。?dāng)啟動代碼設(shè)計(jì)時(shí),系統(tǒng)會根據(jù)嵌入豆中的設(shè)置自動生成代碼,不易出錯(cuò);也可根據(jù)自己的需要來編寫代碼,從而提高工作效率。
在CodeWarriors編程環(huán)境中,可以添加脈沖累加模塊(PulseAccumulator)、定時(shí)模塊(TimerInt)及位輸入輸出模塊(BitsIO)。在PulseAccumulator模塊中設(shè)置中斷使能(Interrupt service/event)開啟;在 TimerInt模塊中設(shè)置中斷周期(Interrupt Period)為100 ms;在BitsIO中設(shè)置引腳Pin0-Pin2為GIPOC8_ISA0-GIPOC10_ISA2,其它的都選擇默認(rèn)設(shè)置[6],再進(jìn)行編譯,系統(tǒng)會根據(jù)設(shè)置自動生成相應(yīng)的代碼。需要編寫的主程序?yàn)椋?/p>
為了實(shí)現(xiàn)轉(zhuǎn)速信號的實(shí)時(shí)監(jiān)測和數(shù)據(jù)儲存,采用通過串口(R232)傳輸DSP發(fā)出的數(shù)據(jù)到上位機(jī)。FreeMASTER利用計(jì)算機(jī)強(qiáng)大的圖形環(huán)境,采用可視化的圖形語言和平臺,可以在計(jì)算機(jī)上建立圖形化的軟面板來取代傳統(tǒng)的儀器面板。因此它可以將DSP通過串口發(fā)送過來的數(shù)據(jù)進(jìn)行采集和顯示[7]。
通過DSP的SCI模塊和FreeMASTER實(shí)現(xiàn)串口通信,數(shù)據(jù)用串口進(jìn)行發(fā)送。由于可以通過在CodeWar riors編程環(huán)境中直接添加FreeMASTER,因此用戶不用考慮是怎樣傳輸數(shù)據(jù)的,這給用戶帶來了極大的方便。FreeMASTER在接收程序時(shí),在工程(Project)選項(xiàng)中設(shè)定波特率為9 600 Bd、選用R232串口選擇并連接相應(yīng)的COM接口,然后再選擇并生成轉(zhuǎn)速變量(Speed)即轉(zhuǎn)速值。新建一個(gè)窗口(NewScope),將生成的轉(zhuǎn)速值轉(zhuǎn)移到NewScope中顯示出來,即可觀測到轉(zhuǎn)速值。
應(yīng)用DSP56F8346的捕獲單元模塊測量電動機(jī)編碼器脈沖信號的方法可以計(jì)算出電動機(jī)的轉(zhuǎn)速,同時(shí)可以保證很高的精度。為驗(yàn)證本系統(tǒng)的有效性,首先在試驗(yàn)室中的信號發(fā)生器上模擬光電編碼器的脈沖信號,把采集到的脈沖頻率轉(zhuǎn)化成轉(zhuǎn)速值,采集到的轉(zhuǎn)速值在FreeMASTER面板圖中顯示,如圖5所示。
圖5FreeMASTER面板顯示界面
最后采用本系統(tǒng)進(jìn)行電動機(jī)測速試驗(yàn),并將所得到的轉(zhuǎn)速值和實(shí)際的轉(zhuǎn)速值進(jìn)行對比,如表1所示。經(jīng)比較,兩者數(shù)據(jù)相差很小。
表1 電動機(jī)編碼器轉(zhuǎn)速測量值和實(shí)際值對比表
文章基于DSP56F8346的電動機(jī)測速系統(tǒng)實(shí)現(xiàn)了對電動機(jī)轉(zhuǎn)速的測量,通過串口傳輸?shù)紽reeMASTER中將數(shù)據(jù)儲存并顯示,在實(shí)際測量電動機(jī)轉(zhuǎn)速的試驗(yàn)中取得了比較好的結(jié)果。該系統(tǒng)測量的方法簡單、有效,克服了傳統(tǒng)測量方法存在的一些缺陷與不足,具有較寬的速度測量范圍。通過對電動機(jī)轉(zhuǎn)速測量的對比結(jié)果可知,測量值與實(shí)際值存在一些偏差,但偏差都很小,在可接受的范圍內(nèi),相對來講比較精確。因此該系統(tǒng)可以應(yīng)用到發(fā)動機(jī)轉(zhuǎn)速測量等領(lǐng)域中,具有比較好的實(shí)用價(jià)值。