0、引言
磁致伸縮線性位移傳感器是一種利用磁致伸縮原理來測量物體超長行程絕對位移的高精度位置傳感器,它不但可以測量運動物體的直線位移,還可給出運動物體的位移速度模擬信號,方便的多種輸出方式可滿足各種測量、控制和檢測的要求。對于用戶來說,如何對傳感器產(chǎn)生的模擬信號進行數(shù)字化以及數(shù)據(jù)采集處理是值得研究的領(lǐng)域。近年來,磁致伸縮線性位移傳感器,無論在精度上和性能上都有了很大提高,根據(jù)不同的應(yīng)用領(lǐng)域,可以借助微機強大的數(shù)據(jù)處理能力,通過可靠硬件電路和軟件設(shè)計來達到信號數(shù)字化和數(shù)據(jù)高速準(zhǔn)確采集處理的目的。
1、磁致伸縮線性位移傳感器工作原理
磁致伸縮位移傳感器原理圖
磁致伸縮線性位移傳感器內(nèi)部結(jié)構(gòu)如上圖所示。磁致伸縮線被安裝在不銹鋼管內(nèi),磁環(huán)在不銹鋼管外側(cè)可自由滑動,電子裝置中的脈沖發(fā)生器產(chǎn)生電流脈沖(起始脈沖)并沿波導(dǎo)線傳播,產(chǎn)生的磁場與活動磁環(huán)固有的磁場矢量疊加,形成螺旋磁場,產(chǎn)生瞬時扭力,使波導(dǎo)線扭動并產(chǎn)生張力脈沖(波導(dǎo)脈沖),這個脈沖以固定的速度沿波導(dǎo)傳回,在線圈(轉(zhuǎn)換器)兩端產(chǎn)生感應(yīng)脈沖(終止脈沖),通過測量起始脈沖與終止脈沖之間的時間差就可以精確地確定被測位移量,如下圖所示。因為張力脈沖在波導(dǎo)管上的速度恒定,用測得的時間差乘以此速度,得出磁環(huán)的位置。這個過程是連續(xù)不斷的,每當(dāng)磁環(huán)運動時,新的位置就會被感測出來。
磁致伸縮位移傳感器信號原理示意圖
1.1、位置計算
位置/mm=時差/s×傳感器的傳送速度/mm·s-1一零點位置/mm
1.2、更新時間及頻率響應(yīng)
傳感器的更新時間對伺服控制系統(tǒng)的應(yīng)用非常重要。由于磁鐵距離傳感器的電子零件越遠(yuǎn),波導(dǎo)脈沖傳播所需的時間就越長,所以傳感器的更新時間與距離成正比。傳感器的最長更新時間可估算如下:
更新時間=(量程十零點位置)/傳感器傳送速度
等價頻率響應(yīng)=1/更新時間
1.3、性能參數(shù)
某進口磁致伸縮線性位移傳感器產(chǎn)品性能參數(shù):
最大分辨率:0.002%Fs;遲滯誤差:優(yōu)于0.002%Fs;工作溫度:測桿-40℃~+85℃,電子部件-20℃~+80℃;非線性(士%Fs):優(yōu)于0.05.(300mm以下最大誤差150μm);量程范圍(mm):0-150~0-5000.
2、數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)
系統(tǒng)下位機選用內(nèi)藏4k字節(jié),快擦寫EEP-ROM的8位單片機AT89C51.該芯片可改寫,為系統(tǒng)的設(shè)計與開發(fā)調(diào)試提供了極大的方便。
傳感器數(shù)字采集系統(tǒng)硬件原理
2.1、信號調(diào)節(jié)電路
將所設(shè)計電路板與傳感器裝配在一起,這樣有利于系統(tǒng)的小型化,但卻使系統(tǒng)電路板處于不利的工作環(huán)境之中,如工作期間會產(chǎn)生噪聲和溫度升高等,為了使傳感器產(chǎn)生的4~20mA的電流信號轉(zhuǎn)換為滿足A/D轉(zhuǎn)換器輸入要求的標(biāo)電信號,電流信號放大電路采用了OP07型運算放大器(放大倍數(shù)為2.7.輸出電壓為0~10V),由于其噪聲峰一峰值僅為0.3μV,且具有失調(diào)電壓低,輸入阻抗高,溫漂系數(shù)小等特點,較好地滿足了設(shè)計要求。
2.2、A/D轉(zhuǎn)換電路
系統(tǒng)采用美國AD公司的AD574芯片,此芯片是一種高集成度、低價格的逐次比較式12位A/D,轉(zhuǎn)換結(jié)果通過三態(tài)緩沖器輸出,可直接與8位或16位數(shù)據(jù)總線微處理器接口,芯片內(nèi)部帶基準(zhǔn)電源和時鐘,轉(zhuǎn)換時間為25μs,采用了單極性輸入,輸入信號幅度為0~+10V,傳感器信號經(jīng)信號放大電路后加于AD574的13腳。AD574工作一般分兩個過程,首先是轉(zhuǎn)換過程,當(dāng)CE=1,CS=0,R/C=0時,啟動AD574開始轉(zhuǎn)換,此時當(dāng)A?=0時,就進行12位轉(zhuǎn)換;其次是讀取12位并行轉(zhuǎn)換結(jié)果,當(dāng)CE=1,CS=0.R/C=1時,可一次讀出轉(zhuǎn)換的12位數(shù)據(jù)。
2.3、單片機系統(tǒng)
AT89C51是美國ATMEL公司推出一種低功耗、高性能的CMOS控制器,下位機AT89C51的4個I/O口中,Po、P?口的P?o~P?作為12位數(shù)據(jù)口,P?、P?口各引腳用于管理其它各芯片的控制與聯(lián)絡(luò)信號線。它與Intel公司的8031完全兼容,而且還擁有4KB的EEPROM和128KB的RAM,在本系統(tǒng)中無須擴展程序存儲器和數(shù)據(jù)存儲器就可實現(xiàn)系統(tǒng)功能,簡化了電路設(shè)計,且使系統(tǒng)的可靠性得到了很大的提高。
2.4、串行通信電路
在以單片機為基礎(chǔ)的數(shù)據(jù)采集和實時控制系統(tǒng)中,通常采用RS-232接口就可完成PC機與AT-89C51單片機之間的通信,但由于RS-232所傳送的距離不超過30m,考慮到傳感器控制單片機系統(tǒng)需要遠(yuǎn)離PC操作機,所以,使用專用的接口將RS-232協(xié)議轉(zhuǎn)換為RS-422協(xié)議進行遠(yuǎn)距離傳送。
3、數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計
系統(tǒng)的軟件設(shè)計主要包括AT89C51單片機的C語言編程和上位機PC機在Windows98下用Vi-sualC++6.0編程兩部分,我們將主要討論Win-dows98環(huán)境下的軟件設(shè)計,在VisualC++6.0提供的文檔與視圖分離技術(shù)和串行通信控件MSComm的基礎(chǔ)上,采用切分窗口技術(shù)實現(xiàn)數(shù)據(jù)存放與顯示操作的分離,運用多媒體定時器和多線程技術(shù)來采集數(shù)據(jù),并利用自定義消息和事件來協(xié)調(diào)程序的同步。
3.1、用多媒體定時器實現(xiàn)高精度實時數(shù)據(jù)采集
多媒體定時器可以通過函數(shù)TimeBeginPeriod()設(shè)置最小定時精度,即按所需定時精度要求來設(shè)置硬件定時器8253的計數(shù)初值,使計數(shù)器的精度提高,而且它不依賴于Windows的消息處理機制,而是相當(dāng)于采用了一個多線程,即由函數(shù)Time-SetEvent產(chǎn)生的一個獨立線程,在一定的中斷周期到達后,直接調(diào)用回調(diào)函數(shù)進行數(shù)據(jù)處理,而不必等到應(yīng)用程序的消息為空,保證了定時器的實時響應(yīng)。我們使用Windows系統(tǒng)向我們提供的兩個可實現(xiàn)多媒體定時器的API函數(shù):TimerSetEvent()和TimeKillEvent(),并定義了用于實現(xiàn)定時事件的回調(diào)函數(shù):VoidCALLBACKTimeFunc(),可以完成毫秒級精度的計時和控制。
3.2、數(shù)據(jù)處理算法設(shè)計
通過對傳感器的原始工作波形的分析,觀察到采樣時有周期性尖峰脈沖干擾的現(xiàn)象,并且考慮到數(shù)據(jù)處理時系統(tǒng)滯后時間常數(shù)相對較大,而采樣周期較短,采用防脈沖干擾平均值法與加權(quán)平均濾波法組合的復(fù)合濾波程序。首先對采集到的n個數(shù)據(jù)進行比較,去掉最大值和最小值;然后對剩下的n-2個數(shù)據(jù)(按原采樣順序)進行加權(quán)平均濾波,具體算法是對n-2個采樣值分別乘上不同的加權(quán)系數(shù)之后再求累加和,加權(quán)系數(shù)取先小后大,以突出后若干采樣的效果,加強系統(tǒng)對參數(shù)變化的趨勢的辨識。各個加權(quán)系數(shù)均小于1.且相加為1.這樣,加權(quán)運算之后的累加和就是有效采樣值。在具體編程中,為方便計算,取各加權(quán)系數(shù)均為整數(shù),且和為256.加權(quán)后除以256即為所得。本算法中取n=8.6個加權(quán)系數(shù)按線性遞增變化,采用此濾波方法后,效果良好。
3.3、使用多線程技術(shù)編程
對于數(shù)據(jù)采集系統(tǒng)來說,顯示處理與采集很可能會在時間上產(chǎn)生沖突,影響程序的正常運行,接受數(shù)據(jù)也會出錯。因此,在程序中使用了多線程技術(shù),并創(chuàng)建了一個專門的輔助線程來實現(xiàn)數(shù)據(jù)采集,需要采集數(shù)據(jù)時創(chuàng)建該線程,并在此線程中啟動多媒體定時器,在采集結(jié)束或退出程序時,刪除定時器,退出該輔助線程。此外,由于輔助線程沒有自己的消息循環(huán),為了實現(xiàn)輔助線程與主線程之間的通話,我們利用Windows的消息機制,定義了兩個自定義消息WM_USER+100(用于數(shù)據(jù)處理和顯示)和WM_USER+101(用于串口通信時發(fā)送握手信號)。當(dāng)采集到數(shù)據(jù)后通過PostMessage()函數(shù)向主線程發(fā)消息進行數(shù)據(jù)處理和顯示。在編程過程中,我們的輔助線程必須謹(jǐn)慎地保持與主線程的互操作的同步,我們使用MFC提供的類CEvent(從Csyn-cObject派生),調(diào)用Cevent::SetEvent設(shè)置適當(dāng)?shù)氖录硗捷o助線程和主線程。主要源程序如下:
void CSensorView::OnInitialUpdate()//初始
化串口
{
CFormView::OnInitialUpdate();
……
m_Comport。SetCommPort(1);//select COM2
m_Comport。SetInputMode(1);// 設(shè)置 輸入方式為二進制方式
m_Comport。SetSettings("9600.n,8.1");//設(shè)置波特率等參數(shù)
m_Comport。SetRThreshold(1);//當(dāng) com 接收 buffer 中有>=1個字符時引發(fā)一個關(guān)于 接受數(shù)據(jù)的 Oncomm 事件
……
}
void CSensorView::OnButtontrans()
{
/ / - - - - - - - - - - - - - 為 發(fā)送按鈕添加鼠標(biāo)單擊消息處理函數(shù)
AfxBeginThread(ThreadProc,GetSafe-Hwnd());//啟動輔助線程
…
Transmitt();//發(fā)送握手信號函數(shù),當(dāng)下位機收到信號確認(rèn)后將發(fā)送數(shù)據(jù),引發(fā)Oncomm事件,接收采集數(shù)據(jù)
}
//在輔助線程中啟動多媒體定時器進行數(shù)據(jù)采集
UINT ThreadProc(LPVOID pParam)
{
::WaitForSingleObject(m_eventTrans,INFI-NITE);
ATimerID=timeSetEvent(20.0.ATimer- Func,(DWORD)this,TIME_ONESHOT);
timeKillEvent(ATimerID);
::PostMessage(hWnd,PR_MESSAGE,0. 0);//執(zhí)行自定義消息函數(shù) ProcessData()
return 0;//結(jié)束輔助線程
}
void CALLBACK ATimerFunc (UINT,UINT,DWORD User,DWORD,DWORD)//定時器回調(diào)函數(shù)
{
HWND hWnd=((CSensorView')(User))一 >GetSafeHwnd();
::PostMessage(hWnd,TR_MESSAGE,0. 0);//執(zhí)行自定義消息函數(shù)
}
void CSensorView::ProcessData()//數(shù)據(jù)處理函數(shù),包括濾波和平滑
{
……
CSensorDoc'pDoc=GetDocument();
……
pDoc->UpdateAllViews(this);
}
//在 Display中動態(tài)顯示
void Display::OnUpdate(CView'pSender, LPARAM IHint,CObject'pHint)
{
extern CEvent m_eventTrans;
……
CSensorDoc'pDoc=(CSensorDoc')GetDoc-ument();
CDC'pDC=GetDC();
……
ReleaseDC(pDC);
m_eventTrans。SetEvent();
}
4、試驗
磁致伸縮傳感器信號原始波形
根據(jù)所介紹的數(shù)據(jù)采集系統(tǒng),研制了試驗樣機,并進行了性能測試。通過示波器觀測,得到了磁致伸縮線性位移傳感器原始工作波形圖,如上圖所示。8位7段LED顯示器顯示最大電壓跳變范圍約在士10LSB(相當(dāng)于±12mV)。在性能測試中,分別對靜態(tài)和動態(tài)的傳感器信號進行了數(shù)據(jù)采集與處理。靜態(tài)試驗中圖形顯示為一條直線,8位7段LED顯示器顯示數(shù)字碼跳變穩(wěn)定在士LSB,數(shù)字處理效果良好,完全滿足精度要求;動態(tài)試驗中,通過以不同的速度滑動傳感器磁環(huán)獲得不同規(guī)律的信號,得到不同的動態(tài)工作曲線,如下圖所示為其中一條曲線,經(jīng)過反復(fù)測試,實時動態(tài)響應(yīng)速度滿足10Hz頻率磁致伸縮線性位移傳感器的響應(yīng)速度。
電壓一單位時間動態(tài)工作曲線
5、結(jié)束語
磁致伸縮線性位移傳感器數(shù)據(jù)采集系統(tǒng)經(jīng)數(shù)字濾波,接收的數(shù)據(jù)跳變在士LSB范圍之內(nèi),滿足精度要求;實時動態(tài)響應(yīng)速度滿足磁致伸縮線性位移傳感器響應(yīng)速度。試驗樣機工作性能良好,且此系統(tǒng)對其它傳感器信號的數(shù)據(jù)采集也具有極好的參考價值。
本文轉(zhuǎn)載于深圳市博爾森科技有限公司官網(wǎng):http://www.brsen.com
審核編輯 黃宇
-
位移傳感器
+關(guān)注
關(guān)注
5文章
1178瀏覽量
35247 -
數(shù)據(jù)采集系統(tǒng)
+關(guān)注
關(guān)注
5文章
280瀏覽量
31400 -
磁致伸縮
+關(guān)注
關(guān)注
2文章
27瀏覽量
9358
發(fā)布評論請先 登錄
磁致伸縮位移傳感器誤差分析

FPGA在磁致伸縮位移傳感器中的應(yīng)用
EtherCAT在磁致伸縮位移傳感器中的應(yīng)用

評論