孫 賓,應(yīng) 浩
(南京模擬技術(shù)研究所,江蘇 南京 210016)
直線位移傳感器是無人機(jī)測量舵機(jī)絲桿位置信息的一個重要傳感裝置[1]。作為舵系統(tǒng)的位置環(huán),其主要用來實(shí)時反映舵機(jī)絲桿的當(dāng)前位置[2]。目前,舵系統(tǒng)的絲桿位置反饋系統(tǒng)裝置主要有接觸式直線電位器[3]、線性可變差動變壓器(linear variable differential transformer,LVDT)磁編碼器等。其中:接觸式直線電位器的主要缺點(diǎn)是電阻體使用壽命短,長時間使用后容易出現(xiàn)“非接觸”或“跳點(diǎn)”現(xiàn)象;LVDT 測量精確度高,但需要專門的激磁解調(diào)電路,且結(jié)構(gòu)件安裝復(fù)雜、價格高、質(zhì)量大[4-5]。而采用基于非接觸式磁感應(yīng)器件的位移傳感器電路設(shè)計簡單、測量精度高,能有效提升位移傳感器的使用壽命[6-8]。
磁感應(yīng)位移傳感器主要由磁感應(yīng)芯片HMC1512組成的外圍電路和磁鋼構(gòu)成。磁感應(yīng)芯片內(nèi)部是由坡莫合金的含鐵材料組成一個惠斯頓電橋。磁感應(yīng)芯片內(nèi)部電路結(jié)構(gòu)如圖1 所示。當(dāng)磁鋼產(chǎn)生的磁場穿過該芯片,將會使其輸出一個差分電壓值;該信號經(jīng)放大、濾波后送主控制器采集,通過相應(yīng)算法解算出此時磁鋼相對于磁感應(yīng)芯片的角度,根據(jù)三角關(guān)系即可解算出磁鋼的位移值。

圖1 磁感應(yīng)芯片內(nèi)部電路結(jié)構(gòu)圖Fig.1 Internal circuit structure of magnetic induction chip
單個芯片工作示意圖如圖2 所示。

圖2 單個芯片工作示意圖Fig.2 Schematic diagram of single chip
當(dāng)圖2 中的磁鋼運(yùn)行在A區(qū)域時,隨著磁鋼由遠(yuǎn)及近地靠近磁感應(yīng)芯片,磁感應(yīng)芯片電壓輸出波形如圖3 所示。

圖3 磁感應(yīng)芯片電壓輸出波形圖Fig.3 Voltage output waveform of magnetic induction chip
磁感應(yīng)芯片輸出電壓值將逐漸從圖3 中的a點(diǎn)向b點(diǎn)接近,但此時磁感應(yīng)芯片工作在其非線性區(qū)。隨著磁鋼進(jìn)入B區(qū)后,磁感應(yīng)芯片的差分電壓輸出值將由b點(diǎn)向c點(diǎn)逐漸接近。當(dāng)磁鋼運(yùn)行到芯片正上方時,差分電壓值為0。bc段為磁感應(yīng)芯片的線性工作區(qū),角度范圍為±45°。當(dāng)磁鋼進(jìn)入C區(qū)后,隨著磁鋼逐漸遠(yuǎn)離芯片,磁感應(yīng)芯片的差分電壓輸出值將由c點(diǎn)逐漸向d點(diǎn)靠近。此時,磁感應(yīng)芯片也工作在非線性工作區(qū)。因此,該磁感應(yīng)芯片可實(shí)現(xiàn)線性測量區(qū)域的范圍為-D~+D。
根據(jù)單個磁感應(yīng)芯片的工作原理,利用其線性工作區(qū)域,通過并排放置多個磁感應(yīng)芯片,可實(shí)現(xiàn)長距離線性位移的測量。為實(shí)現(xiàn)100 mm 的線性位移,本設(shè)計中將10 個間隔為10 mm 的磁感應(yīng)芯片并排放置在與磁鋼平行的一條直線上。將磁鋼固定在舵機(jī)絲桿上,當(dāng)舵機(jī)絲桿動作時,帶動磁鋼運(yùn)動。此時,磁感應(yīng)位移傳感器中的主控制器將采集到的10 路磁感應(yīng)芯片的數(shù)據(jù)進(jìn)行相關(guān)算法計算,得到當(dāng)前磁鋼位置,并將該位置值通過CAN 總線發(fā)送出去。
從系統(tǒng)的可實(shí)現(xiàn)性考慮,遵行簡便原則,磁感應(yīng)位移傳感器的硬件電路包括以下幾個方面:最小系統(tǒng)電路、位置采集信號調(diào)理電路、通信電路等。磁感應(yīng)位移傳感器原理如圖4 所示。

圖4 磁感應(yīng)位移傳感器原理框圖Fig.4 Principle block diagram of magnetic induction displacement sensor
由于每個位置采集和調(diào)理電路對應(yīng)1 個磁感應(yīng)芯片,而本系統(tǒng)中有10 個磁感應(yīng)芯片,因此本系統(tǒng)中將有10 路位置采集和調(diào)理電路。
最小系統(tǒng)電路是保證整個系統(tǒng)硬件穩(wěn)定運(yùn)行的基礎(chǔ),包括主控制器、電源電路、復(fù)位電路和程序下載接口等。
主控制器選用的是 Cortex-M3 系列的STM32F103C8T7。該芯片具有體積小、價格便宜、使用方便的特點(diǎn),同時具備16 通道的12 位ADC,支持CAN總線,SPI 總線等,系統(tǒng)總線時鐘達(dá)72 MHz,可以很快實(shí)現(xiàn)大量數(shù)據(jù)的采集、處理功能。
HMC1512 芯片輸出電壓為±60 mV。為便于單片機(jī)電壓信號采集,位置采集與調(diào)理電路要對該芯片進(jìn)行電壓偏置與信號放大。位置采集和調(diào)理電路如圖5 所示。

圖5 位置采集和調(diào)理電路Fig.5 Position acquisition and conditioning circuit

式中:R為磁感應(yīng)芯片內(nèi)部B 路H 橋上、下橋臂電阻和;Vout+、Vout-分別為磁感應(yīng)芯片A路H橋的輸出信號。
通信電路用于實(shí)現(xiàn)本系統(tǒng)與其他系統(tǒng)之間的信息交換功能。考慮到通信電路的可移植性,以及通信距離、復(fù)雜環(huán)境等對通信信號的品質(zhì)影響等因素,采用具有高抗干擾性且具備總線功能的CAN 通信方式。
軟件部分是檢測電路的算法實(shí)現(xiàn),也是位移檢測的關(guān)鍵。相對于較簡單的硬件電路而言,系統(tǒng)軟件部分稍微復(fù)雜一些。其中,位置算法是系統(tǒng)軟件部分的重點(diǎn)也是難點(diǎn)。目前,可以實(shí)現(xiàn)的位置檢測的算法有以下兩種。
①用更精密儀器標(biāo)定。在磁感應(yīng)位移傳感器正常工作之前,可以用0.005 mm 或者更小步進(jìn)距離的步進(jìn)電機(jī)帶動磁鋼運(yùn)動,由主控制器實(shí)時記錄當(dāng)前磁感應(yīng)式位移傳感器的位移值,并將這些位移值與所有磁阻傳感器的輸出A/D 值存儲在單片機(jī)Flash 的某一區(qū)間。當(dāng)磁感應(yīng)位移傳感器正常使用時,將當(dāng)前采集到的幾路A/D 值與存儲在Flash 中的A/D 值進(jìn)行匹配,即通過查表法實(shí)現(xiàn)磁鋼位移的測量。
②純粹利用算法解算。根據(jù)采集到的各個A/D值,推算出當(dāng)前磁鋼的位置,即磁鋼位于哪兩個磁感應(yīng)芯片之間;再根據(jù)當(dāng)前兩個A/D 值,計算出當(dāng)前的磁鋼位移值。
第一種方法相比于第二種方法較易實(shí)現(xiàn),但是其Flash 中存儲的數(shù)據(jù)量較大,每增加一個磁感應(yīng)芯片,Flash 中的數(shù)據(jù)量將增加一倍。如果發(fā)生一個磁感應(yīng)芯片損壞情況,也將影響Flash 中位移值的輸出。本設(shè)計將采用第二種方法來實(shí)現(xiàn)磁鋼位移的測量。
系統(tǒng)軟件流程如圖6 所示。

圖6 系統(tǒng)軟件流程圖Fig.6 Flowchart of system software
初始化各模塊包括系統(tǒng)時鐘、看門狗、GPIO、定時器、A/D 模塊、USART、中斷系統(tǒng)。由10 個磁感應(yīng)芯片組成的芯片排布陣列如圖7 所示。

圖7 芯片排布陣列示意圖Fig.7 Schematic diagram of chip layout array
算法解算磁鋼位置的具體步驟如下。
①前提條件:將磁鋼從1#芯片的左側(cè)勻速移動到10#芯片的右側(cè),從而獲得10 路磁感應(yīng)芯片的A/D 最大值與最小值,即Vmax[10]、Vmin[10]。
②將(0,Vmin),(2D,Vmax)代入公式y(tǒng)i=kixi+bi,即可解算出每一個芯片的線性公式。
③磁鋼處于圖7 中直線上的任何位置時,將采集到的10 路A/D 值經(jīng)濾波處理后保存在Vin[0]~Vin[9]中。
④將Vin[0]~Vin[9]的值分別代入各自的線性方程中,即可解算出當(dāng)前10 個磁感應(yīng)芯片的X值。通過比較這10 個X值,找出Xmax、Xmin,即可確定當(dāng)前磁鋼的位置。
如果此時磁鋼處于圖7 中的B區(qū)域,4#、5#、6#三個磁感應(yīng)芯片相應(yīng)的芯片組電壓輸出波形如圖8 所示。圖8 中的pos 即為當(dāng)前磁鋼所處的位置。

圖8 芯片組電壓輸出波形圖Fig.8 Voltage output waveforms of chipsets
推算出磁鋼的位置后,接下來的工作即為精確計算磁鋼的位移量。
(1)計算每一路磁感應(yīng)芯片的A/D 均值以及均值與最大值、最小值之間的差值,即:

式中:Vaver為磁感應(yīng)芯片的A/D 均值;Vdiff為磁感應(yīng)芯片有效輸出值的中間值。
(2)計算磁鋼距當(dāng)前兩個磁感應(yīng)芯片中心正上方的直線距離:

根據(jù)式(4)、式(5),即可計算出Xi+1與Xi的值:
(3)分別計算Xi+1與Xi與D的差值的絕對值:

(4)計算最終磁鋼位移值:
①如果Δi+1>Δi,則以Δi計算最終的距離值,即S=(i+1)×L-Xi;
②如果Δi+1<Δi,則以Δi+1計算最終的距離值,即S=(i+1)×L+Xi+1;
③如果Δi+1=Δi,則最終位移即為S=(i+1)×L。
為驗(yàn)證磁感應(yīng)式位移傳感器的性能,采用更精密的標(biāo)定設(shè)備帶動磁鋼運(yùn)動。每運(yùn)動一段距離,分別記錄當(dāng)前標(biāo)定設(shè)備和位移傳感器的輸出位移值。試驗(yàn)測試數(shù)據(jù)如圖9 所示。

圖9 試驗(yàn)測試數(shù)據(jù)Fig.9 Experimental test data
標(biāo)定設(shè)備的輸出值為理論值,磁感應(yīng)式位移傳感器計算的位移值為實(shí)際值,兩者的差值為誤差值。圖9中,誤差值小于等于0.1 mm,小于技術(shù)要求的0.5 mm。這個誤差的產(chǎn)生主要是由于磁鋼從一個磁感應(yīng)芯片運(yùn)動到相鄰的磁感應(yīng)芯片時,計算距離時的參考對象發(fā)生變化。而每個傳感器各自的特性稍微有些不同,因此該誤差值在一定程度上會存在。通過改進(jìn)芯片位置結(jié)構(gòu)排布以及磁鋼與芯片之間的間距,可以盡量減小誤差值。
本文針對傳統(tǒng)位移測量傳感器使用壽命短、安裝復(fù)雜等的缺點(diǎn),利用磁感應(yīng)芯片一定角度范圍內(nèi)線性輸出的特點(diǎn),提出了在非接觸的情況下實(shí)現(xiàn)直線位移測量的觀點(diǎn),詳細(xì)分析了相應(yīng)的工作原理與位置解算的方法。經(jīng)多次試驗(yàn)測試可知,磁感應(yīng)式位移傳感器輸出位移精度可以達(dá)到0.02 mm,測量值誤差不大于0.1 mm,小于技術(shù)要求的0.5 mm,線性度達(dá)到±1‰,滿足無人機(jī)直線位移傳感器的使用要求。