于 非,趙繼敏,羅 響
(上海交通大學(xué),上海200240)
位置傳感器是伺服控制系統(tǒng)中的關(guān)鍵部分,對(duì)檢測(cè)精度以及系統(tǒng)的可靠性等影響非常大,編碼器技術(shù)水平直接影響到自動(dòng)化水平[1]。目前常用的傳感器有光電編碼器、旋轉(zhuǎn)變壓器和感應(yīng)同步器等。旋轉(zhuǎn)變壓器和感應(yīng)同步器體積較大,光電編碼器技術(shù)成熟,但成本較高,抗震性能差,無法在惡劣的工作環(huán)境下使用[2-3]。磁編碼器是將旋轉(zhuǎn)角位置、角位移及角速度等物理量轉(zhuǎn)換為電信號(hào)的傳感器。磁編碼器與光電編碼器相比具有以下優(yōu)點(diǎn)[4]:無接觸式的結(jié)構(gòu)使其能夠可靠工作在油、灰塵、氣溫變換強(qiáng)烈的惡劣條件下;不采用發(fā)光二極管,使用壽命長(zhǎng),耗電少;結(jié)構(gòu)簡(jiǎn)單、抗沖擊、可靠性高、價(jià)格低廉。磁編碼器有單磁極式和多磁極式兩種[5]。多磁極式磁編碼器制造工藝相對(duì)復(fù)雜,分辨率的提高是通過增加磁極對(duì)數(shù)來實(shí)現(xiàn)的,但制造工藝、產(chǎn)品體積及漏磁場(chǎng)分布等因素限制了分辨率的提高。本文的討論基于單磁極式磁編碼器。
磁編碼器是基于磁場(chǎng)強(qiáng)度隨轉(zhuǎn)子位置而改變、從而通過檢測(cè)磁場(chǎng)來獲得轉(zhuǎn)子位置信息的工作原理設(shè)計(jì)的。單對(duì)磁極式編碼器信號(hào)采集的準(zhǔn)確性主要受到磁體結(jié)構(gòu)的限制。為此,使用圓片狀單對(duì)磁體,磁體的N、S極處在同一平面上,磁體水平旋轉(zhuǎn)時(shí)會(huì)產(chǎn)生馬鞍型分布的空間磁場(chǎng)[6]。圖1為線性霍爾示意圖。
圖1 線性霍爾示意圖
磁編碼器的設(shè)計(jì)是基于線性霍爾元件旋轉(zhuǎn)一周產(chǎn)生一個(gè)正弦波這一特性。由于僅采用一組線性霍爾元件無法得出具體位置,因此,在設(shè)計(jì)磁編碼器時(shí),通常采用兩組線性霍爾元件或更多。以下設(shè)計(jì)以1對(duì)極電機(jī)為例。
將兩組線性霍爾元件分別間隔90°安裝,如圖2所示。
圖2 間隔90°線性霍爾元件安裝示意圖
在如此安裝的情況下,通過差分可以得到的兩組信號(hào):
式中:Umax為線性霍爾元件輸出的最大值,UA、UB為兩組差分輸出信號(hào),θ為電角度。將兩者相除并求反正切,可以得到:
計(jì)算反正切采用查表的方式進(jìn)行,事先根據(jù)AD的精度編寫好對(duì)應(yīng)的反正切表儲(chǔ)存在ROM中,計(jì)算反正切時(shí),直接讀取數(shù)組中的對(duì)應(yīng)元素即可。此種算法不但原理簡(jiǎn)單,而且由于將AD采樣所得信號(hào)相除,所以能消除由于電源電壓幅值變化引起的解碼誤差。但在實(shí)際使用中存在幾個(gè)問題:首先,計(jì)算UA/UB將耗費(fèi)DSP或單片機(jī)的大量處理時(shí)間,影響整個(gè)控制過程;其次,在每個(gè)接近90°的位置,測(cè)得角度精確值將大大降低。
為了解決上文中提到的求反正切信號(hào)解碼算法的問題,采用鑒幅方式重新設(shè)計(jì)磁編碼器算法。鑒幅方式是從AD測(cè)得的幅值變化來確定角度數(shù)據(jù),這種方法會(huì)受到電源幅值波動(dòng)帶來的誤差影響,因此,在此提出消除此誤差影響的方法。
如圖3所示,將AD的Ref信號(hào)直接從線性霍爾的電源部分取得(以5 V為例)。在這樣設(shè)計(jì)電路的情況下,電源幅值變化將同時(shí)給AD和線性霍爾元件兩者帶來影響。這就確保了每次AD在采樣時(shí),采樣的量程范圍始終跟蹤電源幅值變化而一起變化。
圖3 DSP控制板與線性霍爾元件連接示意圖
2.2.1 采用兩組線性霍爾元件改進(jìn)算法
在求反正切編碼方式基礎(chǔ)上,引入第3個(gè)信號(hào)UC,值取UA的負(fù)數(shù),即UC=-UA。輸出信號(hào)在一個(gè)周期內(nèi)的波形如圖4所示,實(shí)線為UA,點(diǎn)劃線為UB,虛線為UC。根據(jù)曲線交點(diǎn),可以把0°~360°分為8段,每一段使用對(duì)應(yīng)的曲線查表得到對(duì)應(yīng)的角度值。而實(shí)際上,每一段查表對(duì)應(yīng)的AD輸出值的范圍是限定在0°~45°的,因此,只需要編制0°~45°的對(duì)應(yīng)正弦表并存入ROM中,計(jì)算角度值時(shí),只要根據(jù)AD測(cè)量數(shù)值查表即可。
實(shí)際實(shí)現(xiàn)過程如下:首先測(cè)量?jī)山M線性霍爾元件的差分輸出值得到UA、UB,并計(jì)算得到UC。然后,根據(jù)表1判斷出當(dāng)前電機(jī)位置在哪個(gè)區(qū)間并得到角度起始值θSTART。奇數(shù)區(qū)間內(nèi)的,用θSTART加上查表所得角度值,就得到當(dāng)前角度值;偶數(shù)區(qū)間內(nèi)的,用θSTART加上90°再減去查表所得角度值,就得到當(dāng)前角度值。
圖4 間隔90°改進(jìn)算法波形圖
表1 間隔90°改進(jìn)算法區(qū)間判斷條件
由于數(shù)據(jù)表內(nèi)存儲(chǔ)的是AD輸出值,且AD的Ref端已經(jīng)從線性霍爾的電源端得到,保證了AD的采樣范圍與電源電壓變化同步,因此,與電源電壓波動(dòng)無關(guān),不會(huì)產(chǎn)生誤差。此算法解決了求反正切信號(hào)算法存在的問題,但是,也存在著不足:如果UA出現(xiàn)誤差,將極大影響整個(gè)編碼器精度。同時(shí),從圖4可以看到,每個(gè)接近兩條曲線交叉點(diǎn)的位置(45°),曲線的斜率絕對(duì)值明顯減小,這將導(dǎo)致正弦表查出的角度值變化間隔變大。
2.2.2 采用兩組線性霍爾元件
主要思路與前面的兩組線性霍爾元件的改進(jìn)算法相似,但解決了之前算法中由于一組線性霍爾元件誤差帶來的整體誤差問題以及所查正弦表均勻度問題。線性霍爾元件的安裝位置如圖5所示。在如此安裝的情況下,通過差分可以得到的三組信號(hào):
圖5 間隔60°線性霍爾元件安裝示意圖
圖6 采用三組線性霍爾元件波形圖
式中:Umax為線性霍爾元件輸出的最大值;UA、UB、UC為三組差分輸出信號(hào);θ為電角度。輸出信號(hào)在一個(gè)周期內(nèi)的波形如圖6所示,實(shí)線為UA,點(diǎn)劃線為UB,虛線為UC。在使用三組線性霍爾元件的情況下,把0~360°分為12段,如表2所示。奇數(shù)區(qū)間內(nèi),用θSTART加上查表所得角度值,就得到當(dāng)前角度值;偶數(shù)區(qū)間內(nèi),用θSTART加上60°再減去查表所得角度值,就得到當(dāng)前角度值。
表2 間隔60°區(qū)間判斷條件
根據(jù)所查表的角度范圍不同,計(jì)算表內(nèi)相鄰兩點(diǎn)間隔的標(biāo)準(zhǔn)差,可以得到數(shù)據(jù)點(diǎn)的均勻程度對(duì)比。標(biāo)準(zhǔn)差計(jì)算公式:
式中:xi為所查表內(nèi)各個(gè)元素值,N為所查表的元素個(gè)數(shù)。標(biāo)準(zhǔn)差越接近零,表示表內(nèi)相鄰兩點(diǎn)間隔值的均勻程度越高。依此計(jì)算標(biāo)準(zhǔn)差,并且對(duì)比使用不同精度的AD的情況,可以得到如表3所示。
表3 使用不同精度AD、不同算法數(shù)據(jù)點(diǎn)均勻程度對(duì)比
在使用三組線性霍爾元件后,數(shù)據(jù)點(diǎn)均勻程度明顯升高。同時(shí)可以看到,AD精度對(duì)于數(shù)據(jù)點(diǎn)均勻程度也有很大影響,AD精度增加,均勻程度也隨之增加。
首先,由于霍爾信號(hào)發(fā)生部分不可避免地存在機(jī)械安裝誤差,線性霍爾元件也存在零點(diǎn)漂移,實(shí)際測(cè)得的信號(hào)可以表示:
式中:ε為振幅變化系數(shù);Δα為零點(diǎn)漂移;Umax為線性霍爾元件輸出的最大值。
如果在編碼器設(shè)計(jì)方案中采用差分結(jié)構(gòu),即在一個(gè)線性霍爾元件的對(duì)面再安裝一個(gè),此相差180°的兩個(gè)元件構(gòu)成一組。那么,可以得到的第2個(gè)信號(hào):
兩者相減,可得:
由式(7)可知,采用差分結(jié)構(gòu)可以有效地消除機(jī)械安裝偏差和零點(diǎn)漂移所帶來的誤差,并且使輸出幅值增加了一倍。因此,線性霍爾元件的安裝均使用差分結(jié)構(gòu)。
其次,除了硬件上的改進(jìn)之外,還可以通過軟件的方法來提高精度。比如采用多次采樣取AD平均值濾波、每次DSP初始化重新校正所查角度表等等。
在使用3組線性霍爾元件的算法基礎(chǔ)上,進(jìn)行Matlab仿真,仿真系統(tǒng)采用2對(duì)極永磁同步電動(dòng)機(jī),應(yīng)用SVPWM算法的Id=0控制方法。仿真系統(tǒng)圖如圖7所示。采用10 bit AD采樣,所查表范圍是0°~30°,表內(nèi)AD采樣值范圍為0~512,達(dá)到超過0.1°的分辨率。磁編碼器得到的角度與直接編碼器得到的角度對(duì)比如圖8所示(均為電角度)。編碼器是累加方式,在超過360°之后繼續(xù)增加,因此,減去n×360°(n為電機(jī)轉(zhuǎn)過的圈數(shù))之后與使用三組線性霍爾元件測(cè)得的角度相同。定子電流、轉(zhuǎn)速、轉(zhuǎn)矩曲線如圖9所示。
圖7 仿真系統(tǒng)圖
圖8 編碼器輸出與磁編碼器輸出對(duì)比
圖9 定子電流、轉(zhuǎn)速、轉(zhuǎn)矩曲線
本文通過三種磁編碼器的實(shí)現(xiàn)算法對(duì)比分析,給出了一種精度較高的方案,在使用10 bit AD的基礎(chǔ)上,可達(dá)到超過0.1°的分辨率。并在Matlab環(huán)境下進(jìn)行了仿真,仿真結(jié)果驗(yàn)證了方案的可行性,系統(tǒng)運(yùn)行穩(wěn)定,波形良好。
[1] 張文棟.存儲(chǔ)測(cè)試系統(tǒng)的設(shè)計(jì)理論及其在導(dǎo)彈動(dòng)態(tài)數(shù)據(jù)測(cè)試中的實(shí)現(xiàn)[D].北京:北京理工大學(xué),1995.
[2] Miyashita K,Takahashi T,Yamanaka M.Features of a Magnetic Rotary Encoder[J].IEEE Transactions on Magnetics,1987,23(5):2182-2184.
[3] 呂德剛.集成霍爾磁編碼器的研究[D].黑龍江:哈爾濱工業(yè)大學(xué),2009.
[4] 王爽,李鐵才,王治國(guó).基于CORDIC算法的高分辨率磁編碼器設(shè)計(jì)[J].微電機(jī),2009,42(8):1-5.
[5] 郝雙暉,劉勇,周春蛟,等.基于標(biāo)定原理的單磁極編碼器設(shè)計(jì)[J].南京理工大學(xué)學(xué)報(bào),2005,10(29):226-228.
[6] 曾一凡,高珊,張炳義.基于信號(hào)運(yùn)算和插值原理的磁軸角編碼器[J].儀表技術(shù)與傳感器,2008,12:9-10,51.
[7] 江曉光.線性霍爾傳感器在永磁同步電動(dòng)機(jī)矢量控制器中的應(yīng)用[J].微特電機(jī),2010,38(4):73-74.
[8] 郝雙暉,劉勇,郝明暉.過采樣提高單對(duì)磁極編碼器分辨率[J].微特電機(jī),2007,35(12):1-3.
[9] 郝雙暉,劉勇,劉杰.基于查表原理的單對(duì)磁極編碼器研制[J].中國(guó)電機(jī)工程學(xué)報(bào),2006,24(19):165-168.
[10] Kikuchi Y,Nakamura F,Wakiwaka H.Consideration for a high resolution of magnetic rotary encoder[J].IEEE Transactions on Magnetics,1996,32(5):4959-4961.