李明陽,楊燕紅,彭憶強,鄔忠萍,謝江浩
(1.西華大學交通與汽車工程學院, 四川 成都 610039;2.成都工業學院,四川 成都 611730)
接觸式位置傳感器采用滑動變阻器原理,設計簡單、制造技術成熟、價格低廉,一直被用于位置和角度的測量;但電刷與電阻帶之間有摩擦副存在,因此,會降低產品的壽命和可靠性,并且具有量程固定、輸入輸出電壓固定、安裝過程故障率高等缺陷。
非接觸式位置傳感器采用霍爾效應、磁阻效應、電磁感應原理、電容原理等技術設計制造,不存在相對摩擦,產品的壽命有所提高[1]。這種類型的傳感器具有機械零點和電氣零點可編程、檢測范圍可調的優點,將逐步應用到汽車上。國際知名汽車零部件廠商已經開始致力于非接觸式位置傳感器的研發。
由于安裝及裝配誤差會導致非接觸式傳感器的精度降低,因此需要進行在線調試和檢測。本文針對非接觸式傳感器的需求,以非接觸式可編程節氣門位置傳感器為研究對象,利用LabVIEW平臺、芯片通訊技術和標定硬件平臺設計了一種標定檢測系統,該系統利用LabVIEW和.NET軟件實現對非接觸式傳感器的檢測。
節氣門體上的磁體隨電機旋轉的角度為α,相對于非接觸式位置傳感器的磁通密度改變量為一空間矢量ΔΨ,對應的三維分量為(Bx、By和Bz),各分量對應的霍爾信號為(Vx、Vy和Vz),角度輸出為
β=∠(V1,K·V2)。
(1)
式中:V1=VxorVyorVz;V2=VxorVyorVz;K為可編程參數,匹配V1和K·V2的幅值。
在手動標定過程中,預先設置好標定點,通過PID調節,電機帶動編碼器旋轉到預設角度。同節氣門體同軸的旋轉編碼器反饋的角度為α0,上位機通過采集卡接收到α0和β,然后對其進行比較。當誤差在設定值之內,當前的β值有效,并將此時的電壓值寫入芯片中,即
ε=|α0-β|≤εlim。
(2)
依據最小二乘法將獲取的角度值繪制成一條標定曲線,與通過插值法得到的曲線進行對比,可以求出標定點的誤差大小,對誤差的分析可以反映出標定系統的精度。
本系統由可編程的非接觸式霍爾位置傳感器(MLX90360)、編程器、節氣門體、直流減速電機、電動機驅動器、編碼器、數據采集卡和上位機構成。系統整體方案如圖1所示。

圖1 標定系統總體方案
編碼器與節氣門體通過軸連接在一起,直流電機通過齒輪與編碼器軸連接,將動力輸入到節氣門體上。節氣門的另一端安裝有MLX90360非接觸式傳感器。上位機通過串口RS232將電機驅動信號發給電機驅動器,電機驅動器根據接收到的信號改變電機的轉速及轉向,從而控制節氣門的轉動。
在上述過程中,編碼器將檢測到的節氣門位置轉角通過PCI-6221數據采集卡實時傳給上位機,非接觸式傳感器MLX90360芯片檢測到節氣門位置的變化角度,并將角度信號經PTC-04編程器通過RS232發送給上位機。同時,MLX90360還會將信號通過PCI-6221數據采集卡的模擬輸入口傳遞給上位機,供上位機分析檢測。下面介紹本系統的主要部件。
MLX90360是專門用于反饋汽車位置信息的高性能芯片[3]。該芯片可敏感地感應垂直和平行于其表面的磁場強度。通過編程設定,該芯片能輸出與供電電壓成比例的模擬信號,并且與電阻式電位器或其他任意可編程線性霍爾傳感器兼容。通過編程設置,其輸出方式有2種:輸出模擬信號或輸出數字脈寬調制信號。
PTC-04是程序燒寫器,內含可編程電路和測量電路[4],能夠測量16位的電壓和電流信號。通過PTC-04上位機可以讀取MLX90360輸出的電壓和電流信號,進一步確定輸出的角度信號。上位機通過編程器對傳感器進行編程設定,包括對傳感器0位的設定、高低鉗位值的設定以及輸出增益和輸出模式選擇的設置。
PCI-6221是基于PCI總線結構的數據采集卡。本標定系統使用采集卡的1個計數器作為編碼器的輸入通道,將模擬輸入通道A0和A1用作MLX90360模擬輸出的接口。
本系統采用TRD-2T2500AF旋轉增量式編碼器,其分辨率為2 400脈沖/轉,輸出信號形式為A·B兩相+Z相,最高響應頻率為200 kHz,允許最高轉速為5 000 r/min,電源電壓可在5~12 V之間變化,帶負載短路保護回路。
DC 24TR10BL電機調速器為低壓直流四象限再生脈寬調速。電機調速器與速度給定板相連接,速度給定板通過RS232串口與上位機連接,上位機將電機轉速、轉向控制字節經232串口傳遞給速度給定板,速度給定板在接受到命令流后在輸出端產生脈沖信號給電機調速器,實現電機的控制。
通過編程器開發商提供的.NET和動態鏈接庫底層驅動程序,因此可利用VB.NET和LabVIEW聯合編程技術實現節氣門位置傳感器的標定;也可利用LabVIEW調用動態鏈接庫的方法驅動MLX90360位置傳感器芯片。
本文分別利用這2種方法對其進行了標定程序設計。在.NET和LabVIEW聯合編程中,通過文件交互來傳遞標示符參數,實現數據在2個平臺之間的共享。此標定系統的軟件設計主要分為標定系統上位機界面、電機轉速命令串口通信程序設計、MLX90360內核調用及標定程序設計、電機轉速PID控制程序設計、編碼器角度檢測程序設計等。
在LabVIEW功能部分,初始化處理之后,程序轉入測量節氣門的最大開度。測量最大開度所用的算法是:在驅動電機帶動編碼器軸轉動過程中,通過比較編碼器前后2次間隔時間在100 ms內所反饋的角度是否相等,如果不等則表明還未達到極限位置,如果相等則已經達到極限位置。此時,以節氣門單向轉動極限位置作為計數起點,驅動電機自動進入反轉模式,重復上述過程找到反向極限位置。隨后,電機工作于正轉模式,上位機按3點標定模式根據測得的最大量程范圍隨機設置3個依次遞增的角度,并驅動節氣門依次轉至相應角度位置時停轉,并將單點角度測量結束標識符和此點坐標值寫入LabVIEW程序配置文件SETUP.INI中[5]。
在.NET功能部分,先經過初始化,再檢測單點角度測量結束標識符是否存在于LabVIEW程序的配置文件SETUP. INI中。若此標識符被檢測到,則將其文件內的角度燒寫到芯片中,同時設定一個與之相對應的電壓百分比,成功寫入后,向供LabVIEW讀取的文件中發出一個寫入完成標識符。
LabVIEW程序檢測到.NET程序寫入完成標志后,沿原方向繼續轉動至所設定的下一個角度值。同樣,將當前的單角度測量結束標識符和坐標值寫入到指定的文件中,當.NET程序檢測到此標識符后,即向芯片寫入相關參數,重復這一過程直到完成第3點的檢測。
當節氣門轉到最大開度后,反轉至初始位置并向.NET發出LabVIEW完成初始化標識。接著,LabVIEW與VB.NET均轉入校準程序,與標定過程相似,校準過程差別在于當.NET檢測到單點角度測量結束標識時,從文件中讀出數據而不是寫入。校準過程在節氣門開度轉到正向極限位置時結束。系統整體方案流程如圖2所示。

圖2 系統整體方案流程
標定儀主界面分為功能選擇區、傳感器選型、標定參數輸入框、編碼器檢測角度顯示、標定曲線圖形顯示以及自檢、標定、停止按鈕,如圖3所示。

圖3 標定儀主界面
在手動標定模式下,啟動程序后,確定標定傳感器的型號,開始自檢,程序自行尋找最大角度和最小角度。自檢結束后,開始執行標定程序,如自檢不成功,則直接退出主程序,并彈出錯誤信息提示框。
系統主控程序框如圖4所示。系統初始化主要功能在于完成界面數據、控件狀態、串口驅動、編碼器參數的初始化。因被標定傳感器的生產廠家、型號及級別可能不同,本標定儀系統采用手動標定和自動標定2種模式。
自動標定狀態下,本系統利用全局變量與傳感器驅動子程序進行通信來完成相應驅動程序的調用。
手動模式下,主要針對一些比較小量不支持自動讀取的傳感器進行標定,其中部分參數需要人工手動輸入。

圖4 主程序流程圖
通過 LabVIEW 對VISA 進行配置,就可以實現對儀器的控制。上位機對電機控制器的命令通過串口程序實現,在LabVIEW中串口編程需配置以下4個子VI:VISA配置串口子VI(其配置參數包括資源名稱、波特率9 600、數據位大小、奇偶校驗位);VISA寫入子VI;VISA清空I/O緩沖區子VI; VISA關閉子VI。
由于MLX96360芯片硬件驅動不能直接被LabVIEW識別,但LabVIEW為更好地支持普通數據采集卡等硬件,提供了調用庫函數節點(call library function node,CLFN)和代碼接口節點(code interface node, CIN)2種實現方法。在LabVIEW 平臺下調用動態連接庫,比利用 CIN 節點實現對硬件的驅動更有意義[6-8]。CIN節點需要多平臺支持且需要源碼,而動態鏈接庫則不需要,減少了系統的開銷,縮短了開發周期。采用 CLFN 節點,LabVIEW 可以方便地實現訪問動態連接庫(DLL)[6]。本標定儀系統采用DLL調用方式驅動非接觸式傳感器,比如采用DLL調用方法讀取MLX90360芯片中的數據。通過調用PSF90360芯片DLL文件,按照數據匹配類型嚴格配置CLFN 的輸入和輸出節點,并按照非接觸式傳感器的量程進行轉換,由此獲得采集的數據。該方法可以充分利用非接觸式傳感器的DLL文件資源,不需要再編寫傳感器底層驅動程序,最大限度地縮減了開發周期。
直流減速電機轉速及轉角的控制由上位機通過串口設定給定速度,其數據命令結構如表1所示。轉角的大小通過編碼器獲得。以測得角度與標定角度之間的差值作為PID調節的控制量控制電機的轉角,Kp、Ki、Kd參數的大小根據實際情況給定[9]。本試驗分別為4.5、5、5。PID的控制值對應表1中的速度高位和速度低位,經PID控制器調制得到的速度大小需與給定值及電機轉向命令組成調節命令發送給通訊板;因此,有必要將各數據命令組成一個字符串作為串口發送的數據。

表1 通信板數據命令結構
控制值:X可從0~7中取值,當取值為0/1/4/5/7F時表示停止。2F正向運行,3F制動停止,6F反向運行。
速度值:X其取值0-F (十六進制)。
非接觸式傳感器轉角大小通過高精度編碼器檢測到的角度來標定,在本標定系統中編碼器檢測角度通過PCI-6221數據采集卡采集。LabVIEW中通過配置多態VI就可以將編碼器中的數據采集到上位機。
依次配置DAQmx配置模板子VI,DAQmx開始任務子VI,DAQmx讀取任務1通道1采樣,DAQmx清除任務子VI。當某一次讀取緩沖區的數據發生無可讀數據時,利用反饋節點將上次讀取的角度值作為此次采集到的角度。
所研制的標定儀如圖5所示,采用節氣門體用非接觸式位置傳感器MLX90360作為標定對象做相關試驗。

圖5 標定系統實物圖
打開標定程序,選定傳感器型號后,程序進行自檢,自檢通過相應的指示燈會亮綠燈。進入標定程序后,電機按照預設的角度依次走3點,上位機程序依次檢測編碼器的角度和MLX90360的角度,并作對比分析,當誤差在可接受范圍內。上位機調用相應的DLL程序,將當前的角度值寫入MLX90360芯片中。走完3點后,程序執行二次檢測,當檢測無誤后,標定過程結束。在傳感器硬件完全正常的條件下,若第2次檢測誤差較大,程序會再次對傳感器進行標定直到標定成功。標定過程中的數據可以通過文件記錄下來以便分析。
傳感器標定完成后,傳感器的位置沒有產生垂直或水平方向的偏移,直接校準其誤差范圍。該組試驗數據的輸出曲線如圖6所示,A路輸出與B路輸出的角度線性誤差分析以及誤差曲線分析如圖7所示。

圖6 無偏移時傳感器校準曲線


圖7 無偏移A、B路輸出誤差曲線
通過以上數據分析圖形可以看出,霍爾傳感器與磁心同心時,在整個量程中編碼器與傳感器角度中:A路輸出角度誤差最大值為0.28°,電壓百分比誤差最大值為0.38%;B路輸出的數據分別為:最大角度誤差0.3°,電壓百分比誤差最大值為0.33%。
為了驗證誤差的離散程度,下面以方差和標準差對誤差進行分析。從表2可見:在不改變霍爾傳感器與節氣門磁心位置時,傳感器的誤差小,其測量值與標準值基本一致。

表2 無偏移時方差、標準差
在此工況下,輸出曲線如圖8所示, A路輸出與B路輸出的角度線性誤差分析以及誤差曲線分析如圖9所示。

圖8 垂直方向移動2 mm的校準曲線

(a)A路

(b)B路
從數據分析圖形可以看出,霍爾傳感器與磁心在垂直方向上移動2 mm但同心時,在整個量程中編碼器與傳感器角度中A路輸出角度誤差最大值為0.81°,電壓百分比誤差最大值為0.88%;B路輸出最大角度誤差0.58°,電壓百分比誤差最大值為0.32%。其方差和標準差對誤差進行分析如表3所示。

表3 垂直方向移動2 mm時的方差和標準差
從表3可知,當節氣門磁心與MLX90360傳感器垂直方向移動2 mm時,傳感器的誤差有所增加,但不十分明顯。
本文采用虛擬儀器技術,應用LabVIEW平臺,針對可編程非接觸式傳感器進行了標定儀系統設計,并通過節氣門體位置傳感器對標定系統做了試驗。結果表明,本文針對非接觸式傳感器,利用LabVIEW軟件、芯片通信技術、標定硬件平臺,實現了非接觸式傳感器標定儀的設計。本標定系統能夠對節氣門體非接觸式傳感器進行標定,其標定精度依賴于工裝和夾具的加工精度。采用此設備可在一定程度上克服因制造安裝等原因導致的節氣門傳感器精度較低,以及傳統接觸式傳感器因長期接觸導致的觸點燒蝕、磨損嚴重的缺陷。本標定儀系統還有待改進的地方是PID調節部分可以加入模糊自整定控制,從而實現完全自動標定,使系統能夠實現工業化自動標定。
[1]印友軍. 基于霍爾原理的非接觸式位置傳感器的研究與應用[D]. 上海:上海交通大學, 2012.
[2] Danijel Pavkovic,Josko Deur,Martin Jansz, et al.Adaptive Control of Automotive Electronic Throttle[J].Control Engineering Practice, 2006,14(2):121-136.
[3]Melexis. MLX90360 datasheet[S]. 2013.
[4] Melexis. Progra- mmer for Melexis PTC Devices, PTC04 Datasheet[S]. 2014.
[5]鄔忠萍. MLX90360智能傳感器的標定與應用研究[D]. 成都:西華大學, 2013.
[6]趙炯,劉力平. LabVIEW 中的動態連接庫調用[J]. 中國工程機械學報,2007,5(1):122-126.
[7] Microelectronic Integrated System. PSF090360AAMLX Library Object Model, PTC04-PSF-MLX90360[S]. 2010.
[8] Melexis. PTC-04 PROGRAMMER, Get Started with the PTC-04Programmer[S]. 2009.
[9]歷風滿. 數字PID控制算法的研究[J].遼寧大學學報:自然科學版,2005, 32(4): 367-370.