葛厚成 ,陳淑榮,孟 飛,何志陽
GE Hou-cheng1 , CHEN Shu-rong1 , MENG Fei2, HE Zhi-yang1
(1.上海海事大學(xué) 信息工程學(xué)院,上海 201306;2.上海海事大學(xué) 商船學(xué)院,上海 201306)
伴隨著化石燃料燃燒造成的大氣污染,各國(guó)越來越重視電動(dòng)車輛和混合動(dòng)力車的研究。其中的獨(dú)立驅(qū)動(dòng)電動(dòng)汽車尤為熱門,它的牽引力和動(dòng)力學(xué)控制系統(tǒng)需要汽車內(nèi)部ECU實(shí)時(shí)采集電機(jī)的轉(zhuǎn)速、行駛狀態(tài)和道路狀況,然后通過中央控制器分配合理的輸出轉(zhuǎn)矩來滿足每個(gè)電機(jī)的行駛要求,同時(shí)達(dá)到能量利用率的最大化[1]。典型的四輪獨(dú)立驅(qū)動(dòng)汽車由四個(gè)輪轂電機(jī)組成,去除了質(zhì)量較大的傳動(dòng)系統(tǒng),使汽車實(shí)現(xiàn)了輕量化,節(jié)省了能量,但是電機(jī)控制過程為分別控制,很難保證電機(jī)的運(yùn)行轉(zhuǎn)速達(dá)到有效組合,而轉(zhuǎn)速不一致將導(dǎo)致汽車的側(cè)滑移,轉(zhuǎn)向失去靈敏度等不利情況,同時(shí)對(duì)車軸有一定的縱向力損傷,所以需要實(shí)時(shí)采集和控制電機(jī)轉(zhuǎn)速。國(guó)內(nèi)外研究車速采集與控制主要通過傳感器采集到的電壓、電容或者電流的變化來測(cè)量,通過脈沖或者A/D轉(zhuǎn)換進(jìn)入單片機(jī)顯示。文中利用光電脈沖編碼器輸出量化的脈沖信號(hào)送到單片機(jī),設(shè)計(jì)了可以高精度累加和計(jì)數(shù)脈沖的下位機(jī)程序,省去了模擬量輸入單片機(jī)前的電路放大、削波、濾波、反相和量化等電路,節(jié)省了資源。下面重點(diǎn)討論如何利用編碼器,單片機(jī)和下位機(jī)程序?qū)崿F(xiàn)四輪獨(dú)立驅(qū)動(dòng)電動(dòng)車的實(shí)時(shí)轉(zhuǎn)速測(cè)量[2,3]。
實(shí)驗(yàn)搭建是利用信號(hào)發(fā)生源產(chǎn)生方波脈沖,經(jīng)過驅(qū)動(dòng)電路使直流電機(jī)轉(zhuǎn)動(dòng),通過飛思卡爾控制器對(duì)編碼器送進(jìn)的脈沖進(jìn)行計(jì)數(shù),得到電機(jī)轉(zhuǎn)速。實(shí)驗(yàn)使用的器材包括示波器,信號(hào)源,無刷直流電機(jī),飛思卡爾控制器。系統(tǒng)總體設(shè)計(jì)如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
通常電機(jī)的轉(zhuǎn)速測(cè)量方法有模擬式和數(shù)字式兩種,模擬式采用的測(cè)試元件有測(cè)速發(fā)電機(jī),輸出的信號(hào)是電壓量;數(shù)字式采用傳感器,常用來輸出脈沖信號(hào)的有光電編碼器,霍爾元件等裝置[1]。信號(hào)有正弦波(電流或者電壓),方波如TTL電平,集電極開路信號(hào)(PNP,NPN),推拉等形式。通過光電編碼器利用光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換為脈沖或數(shù)字量,實(shí)驗(yàn)中編碼器輸出的是長(zhǎng)線差分驅(qū)動(dòng)的TTL電平,經(jīng)過后面的電路處理后,送入單片機(jī)的接收引腳,進(jìn)行脈沖的累加計(jì)數(shù)。通過下面的公式(1)[5]計(jì)算電動(dòng)機(jī)的實(shí)際轉(zhuǎn)速Y(t)(r/min):
式中:n是脈沖累加器計(jì)算出的1秒鐘的脈沖數(shù),N是編碼器在電動(dòng)機(jī)轉(zhuǎn)動(dòng)一圈過程中輸出的脈沖個(gè)數(shù)。
直流電機(jī)的換向刷較易產(chǎn)生電火花,不宜在粉塵易燃易爆的工作環(huán)境中工作,實(shí)驗(yàn)中采用帶有H橋驅(qū)動(dòng)的小型無刷直流電機(jī),H橋有四個(gè)三極管組成兩套相同的電路,同一個(gè)電路中,同時(shí)一個(gè)上拉,另一個(gè)下拉,兩者保持相反的輸出,可以在單電源的情況下使負(fù)載極性倒過來,導(dǎo)通對(duì)角線上的一對(duì)三極管,使電流流向不同從而來控制電機(jī)的轉(zhuǎn)向[2]。試驗(yàn)用到的無刷直流電機(jī)是一種用電子換相的小功率直流電機(jī),電機(jī)由同步電動(dòng)機(jī)和驅(qū)動(dòng)器組成,結(jié)構(gòu)簡(jiǎn)單,運(yùn)行可靠,電磁噪聲低[3]??刂破魇怯娠w思卡爾公司生產(chǎn)的MC9S12XET256型號(hào)的單片機(jī),內(nèi)嵌V2內(nèi)核,功能強(qiáng)大,性能穩(wěn)定,自帶高容量的FLASH存儲(chǔ)器,內(nèi)部自帶I/O口驅(qū)動(dòng)提供電源,鎖相環(huán)電源等外圍電路,減少了開發(fā)者獨(dú)自布線帶來的麻煩。實(shí)驗(yàn)使用ATF20E型的信號(hào)源實(shí)時(shí)發(fā)送方波脈沖經(jīng)過H橋驅(qū)動(dòng)控制直流電機(jī)的轉(zhuǎn)動(dòng),控制信號(hào)源發(fā)送不同頻率和占空比的脈沖。首先確保上位機(jī)和下位機(jī)能夠正常通信,然后在CodeWarrior開發(fā)環(huán)境下,通過上位機(jī)設(shè)計(jì)程序,編寫代碼下載進(jìn)單片機(jī),計(jì)算單位時(shí)間內(nèi)編碼器送回的脈沖,計(jì)算后通過上位機(jī)直接顯示。實(shí)驗(yàn)測(cè)量模型如圖2所示。
圖2 測(cè)量模型圖
系統(tǒng)軟件架構(gòu)步驟:首先設(shè)置鎖相環(huán)的頻率以提高總線運(yùn)行頻率;定義輸入輸出端口的方向;初始化ECT模塊、PIT模塊;設(shè)置PAI函數(shù);初始化PWM模塊。然后啟動(dòng)電機(jī),在主程序里每次周期中斷到來時(shí),程序轉(zhuǎn)向中斷函數(shù)。最后當(dāng)計(jì)時(shí)結(jié)束后清除中斷,顯示脈沖數(shù)。具體的設(shè)計(jì)如圖3所示。
在中斷函數(shù)里首先將count每次加1,當(dāng)count不等于20時(shí),PIT模塊通道0發(fā)生時(shí)間溢出,當(dāng)count等于20時(shí)進(jìn)入循環(huán)。然后當(dāng)ECT模塊計(jì)算3125次達(dá)到12.5ms,再循環(huán)80次,共采集1000ms來計(jì)算脈沖個(gè)數(shù)。最后把間隔1秒的前后兩次數(shù)據(jù)相減即得到1秒鐘的脈沖個(gè)數(shù),經(jīng)過換算便得到轉(zhuǎn)速。實(shí)驗(yàn)采用了MC9S12XET256開發(fā)板的ECT和PIT模塊,設(shè)置1秒的中斷采集。通過主函數(shù)調(diào)用中斷來采集脈沖通過上位機(jī)顯示,也可以通過示波器顯示數(shù)值[3]。
中斷函數(shù)如下:
圖3 程序流程框圖
系統(tǒng)硬件環(huán)境主要以單片機(jī)作為主控制器,外部設(shè)置有驅(qū)動(dòng)電路,電源電路,編碼器處理電路等。具體模塊如圖4所示。
圖4 硬件環(huán)境框圖
飛思卡爾MC9S12XET256單片機(jī)采用外部供電,可以使用5V的直流電源直接給單片機(jī)供電,但是考慮到單片機(jī)目前廣泛的用在汽車電子產(chǎn)品中,而汽車上的主流電源是12V和24V。因此需要設(shè)計(jì)專門的電源電路對(duì)12V或者24V進(jìn)行降壓。如3.3V給內(nèi)部的芯片使用,7.2V供給驅(qū)動(dòng)橋控制電機(jī)等[9]。電路如圖5所示。
實(shí)驗(yàn)利用H橋電路驅(qū)動(dòng)電機(jī),H橋使用了全橋的集成芯片MC33886來搭建,是單片機(jī)控制電機(jī)的重要電路,用來實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)和速度大小調(diào)節(jié)。H橋由四個(gè)MOS管組成,通過不同MOS管的關(guān)斷來控制電流經(jīng)由VBAT流過MOTOR+和MOTOR-之間的電流方向,通過設(shè)置PWM占空比連續(xù)調(diào)節(jié)電機(jī)轉(zhuǎn)速[4]。MC33886模塊如圖6所示。
圖5 控制器電源轉(zhuǎn)換原理圖
圖6 MC33886外部接口原理圖
一般的光電編碼器給出的信號(hào)幅度較小,所以首先必須進(jìn)行放大整形,得到標(biāo)準(zhǔn)的方波信號(hào),實(shí)驗(yàn)中設(shè)計(jì)了一種集光電隔離、鑒相、頻率電壓轉(zhuǎn)換、電壓調(diào)整輸出等功能于一體的綜合性電路[11]。該電路結(jié)構(gòu)簡(jiǎn)單、調(diào)整方便、線性度好??梢詽M足不同輸出信號(hào)和不同分辨率轉(zhuǎn)換要求,同時(shí),為了滿足對(duì)輸出電壓極性的不同要求,輸出電路提供了互為反相的電壓信號(hào)輸出。利用A,B兩種信號(hào)脈沖個(gè)數(shù)計(jì)算旋轉(zhuǎn)過的角度,Z相信號(hào)計(jì)算編碼器軸轉(zhuǎn)過的圈數(shù)[11~13]。采用TPL521-2實(shí)現(xiàn)對(duì)于脈沖信號(hào)的光電隔離;采用了正交解碼芯片LS7084判斷電機(jī)的正反轉(zhuǎn);采用穩(wěn)定性比較好的電壓轉(zhuǎn)換芯片LM331;電壓調(diào)整模塊采用LM324調(diào)整,使輸出的電壓信號(hào)幅度值得到提高,便于識(shí)別。編碼器信號(hào)的處理電路如圖7所示[5]。
圖7 編碼器信號(hào)處理電路圖
四輪獨(dú)立驅(qū)動(dòng)的電動(dòng)汽車一般為四個(gè)電機(jī),由于本實(shí)驗(yàn)主要是驗(yàn)證電機(jī)通過單片機(jī)程序采集的有效性和精確性,使用了單個(gè)電機(jī)來驗(yàn)證。實(shí)驗(yàn)分為以下四步:
1)通過H橋把單片機(jī)和電機(jī)連接,按下單片機(jī)開關(guān);
2)為了可以把不同的轉(zhuǎn)速送給電機(jī),控制信號(hào)源發(fā)送不同占空比的脈沖送給電機(jī),實(shí)時(shí)改變電機(jī)轉(zhuǎn)速(利用單片機(jī)的PWM模塊發(fā)送脈沖也是切實(shí)可行的);
3)電機(jī)的轉(zhuǎn)速輸出通過編碼器接入單片機(jī)計(jì)數(shù)引腳,通過程序進(jìn)行累加脈沖,控制電機(jī)旋轉(zhuǎn)的同時(shí),計(jì)算進(jìn)入單片機(jī)接收引腳的脈沖個(gè)數(shù);
4)編碼器將脈沖送到單片機(jī)中計(jì)算1秒內(nèi)的輸出脈沖進(jìn)而換算為電機(jī)轉(zhuǎn)速[16]。
分別設(shè)置信號(hào)發(fā)生器的頻率為900Hz,1.45KHz,上位機(jī)顯示的結(jié)果分別為900和1451,這個(gè)實(shí)驗(yàn)結(jié)果證明了裝置的有效性。轉(zhuǎn)速曲線反映了轉(zhuǎn)速的不穩(wěn)定性,但是基本保持在900和1450上下。結(jié)果如圖8、圖9所示。
圖9 實(shí)驗(yàn)結(jié)果二
通過實(shí)驗(yàn)得知電機(jī)在不同運(yùn)行環(huán)境下,電機(jī)的轉(zhuǎn)速可能受到各種因素疊加而導(dǎo)致不穩(wěn)定。本文利用搭建好的硬件環(huán)境以及編寫軟件代碼實(shí)現(xiàn)了實(shí)時(shí)測(cè)量電機(jī)轉(zhuǎn)速的目的。實(shí)驗(yàn)結(jié)果驗(yàn)證了本文所采用的采集脈沖的程序具有較高的采集精度和較快的響應(yīng)速度。采集了電機(jī)實(shí)時(shí)速度后,可以根據(jù)電機(jī)速度,通過車內(nèi)ECU控制整車的后續(xù)運(yùn)行狀態(tài)。下一步可以考慮在采集轉(zhuǎn)速后加入控制算法來使電機(jī)進(jìn)行無差的轉(zhuǎn)動(dòng)。
[1]馮沖,段小敏.飛思卡爾MC9S12(X)開發(fā)必修課[M].北京:北京航空航天大學(xué)出版社,2014:1-366.
[2]張杰.基于CAN總線的汽車發(fā)動(dòng)機(jī)參數(shù)采集與處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].湖南大學(xué),2013.
[3]呂愛紅.基于CAN總線的汽車輪速采集系統(tǒng)設(shè)計(jì)[J].內(nèi)蒙古公路與運(yùn)輸,2012(2):52-54.
[4]黃凱龍.基于飛思卡爾單片機(jī)的智能車及其調(diào)試系統(tǒng)設(shè)計(jì)[D].湖南:湖南大學(xué),2014.
[5]畢恩興.基于單片機(jī)控制的智能車測(cè)速算法研究[J].電子設(shè)計(jì)工程,2011,19(15):118-122.
[6]張猛.異步伺服電機(jī)的設(shè)計(jì)[D].山東:山東大學(xué):2013.
[7]陳修波,蔣德云,張志林,朱琳,李新紅.基于MC9S12XS128的無刷直流電機(jī)控制器設(shè)計(jì)[J].山東交通學(xué)院學(xué)報(bào),2014,01:8-13.
[8]姜立標(biāo),王登峰,韓智陽.CAN總線在商用車上數(shù)據(jù)采集的實(shí)現(xiàn)[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2007,03:480-491.
[9]王經(jīng)宇.基于MC689S12DG128的智能小車設(shè)計(jì)[J].工業(yè)儀表與自動(dòng)化裝置,2009,03:37-40.
[10]李晨,宓超.基于飛思卡爾單片機(jī)MC9S12XS128的智能車設(shè)計(jì)[J].上海海事大學(xué)學(xué)報(bào),2012,01:82-84.
[11]孫瑩,萬秋華,王樹潔,佘容紅,盧欣然,梁立輝.航天級(jí)光電編碼器的信號(hào)處理系統(tǒng)設(shè)計(jì)[J].光學(xué)精密工程,2010,05:1182-1188.
[12]王顯軍.基于SOC單片機(jī)的高集成度光電編碼器電路設(shè)計(jì)[J].光學(xué)精密工程,2011,19(5):1082-1087.
[13]高偉,李玄曾.光電編碼器的信號(hào)處理電路研究[J].陜西師范大學(xué)繼續(xù)教育學(xué)報(bào),2007,02:116-118.
[14]張莉,王旭,劉宗富.電流型脈寬調(diào)制在異步電動(dòng)機(jī)轉(zhuǎn)速控制中的應(yīng)用[J].控制與決策,2005,03:349-352.
[15]王直,施曉敏,丁建軍,王劉柱.增量式光電編碼器信號(hào)處理電路的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2012,02:121-123.
[16]朱布博.基于MC9S12XS128的電動(dòng)教練車智能電機(jī)控制器開發(fā)研究[D].陜西:長(zhǎng)安大學(xué),2014.