你的位置:首頁 > 傳感技術(shù) > 正文

教你用軟件修正三軸正交型傳感器正交性

發(fā)布時(shí)間:2015-01-21 來源:Ivan 的專欄 責(zé)任編輯:sherryyu

【導(dǎo)讀】如果我們對測量精度要求非常高,就不能僅僅只是對單個(gè)傳感器進(jìn)行修正,還要考慮三個(gè)傳感器的敏感軸是否嚴(yán)格的正交。很多時(shí)候我們需要仔細(xì)的調(diào)整三個(gè)傳感器的正交關(guān)系,但是將三個(gè)傳感器調(diào)整到完全正交是很難的,,這里介紹一種基本的軟件修正方法。它對大多數(shù)類型的傳感器都可以使用。
 
當(dāng)需要測量的物理量為矢量時(shí),我們需要使用三個(gè)正交放置的傳感器來分別測量物理量的各個(gè)分量,以此來合成一個(gè)完整的矢量。如果我們對測量精度要求非常高,就不能僅僅只是對單個(gè)傳感器進(jìn)行修正,還要考慮三個(gè)傳感器的敏感軸是否嚴(yán)格的正交。很多時(shí)候我們需要仔細(xì)的調(diào)整三個(gè)傳感器的正交關(guān)系,但是將三個(gè)傳感器調(diào)整到完全正交是很難的,并且許多時(shí)候,由于設(shè)計(jì)等原因,這種機(jī)械上的調(diào)校是無法進(jìn)行的。這時(shí),軟件修正就成了必不可少的步驟,軟件修正大多數(shù)時(shí)候也比機(jī)械上的調(diào)校更簡單。
 
這里介紹一種基本的軟件修正方法。它對大多數(shù)類型的傳感器都可以使用。首先,假設(shè)單獨(dú)的每個(gè)傳感器的測量的值都是準(zhǔn)確的,這可以通過預(yù)先對每個(gè)傳感器進(jìn)行標(biāo)定來完成。
 
這里設(shè)三個(gè)傳感器的測量值分別是 x1,x2,x3。這三個(gè)值可以合成一個(gè)列向量X:
傳感器
所謂軟件修正算法,就是找到從 X到 Y 的映射。由解析幾何知識(shí)我們知道X到 Y 的映射可以通過一個(gè)線性變換C來表示:
傳感器
寫到這里其實(shí)方法就很明了了,我們只需要求得這個(gè)轉(zhuǎn)換矩陣C就一切都解決了。
 
轉(zhuǎn)換矩陣C如何求,當(dāng)然是通過大量的測量數(shù)據(jù)來擬合。實(shí)驗(yàn)數(shù)據(jù)的獲得很重要,最好能有個(gè)比較精密的三軸轉(zhuǎn)臺(tái),這樣轉(zhuǎn)各個(gè)角度都比較方便。沒有也沒關(guān)系,但至少要能把裝配好的傳感器組沿三個(gè)已知的方向放置,并且這三個(gè)方向要擺放的很精確。通常,我們選的這三個(gè)方向是相互正交的,這三個(gè)方向上物理量的真實(shí)值就是上面式子中的y1、y2、y3,換句話說這三個(gè)方向是三個(gè)傳感器的名義上的取向,雖然這三個(gè)傳感器可能全都擺歪了。具體如何采集數(shù)據(jù)就不詳細(xì)描述了,由于未知參數(shù)有9個(gè),至少要采集9組數(shù)據(jù)才行,條件允許的話當(dāng)然是數(shù)據(jù)越多越好。
[page]

下面說說如何對采集到的數(shù)據(jù)進(jìn)行擬合。通常我們遇到的最小二乘擬合問題的待擬合的函數(shù)都可以表示為:
傳感器
這個(gè)問題已經(jīng)有成熟的算法,各種常見的數(shù)學(xué)軟件,比如 Matlab、Mathematica、scilab、Lingo 等都有現(xiàn)成的程序包來完成這個(gè)計(jì)算。我們現(xiàn)在的問題難點(diǎn)在于 y 也是個(gè)向量,這就需要我們對上面的方法進(jìn)行一點(diǎn)簡單的變形。簡單的說,我們實(shí)際上是有三個(gè)待擬合函數(shù)的,因此g(C)也要做相應(yīng)的改變:
傳感器
經(jīng)過這樣轉(zhuǎn)化后就成了一個(gè)普通的最優(yōu)化問題(函數(shù)求極值)了,各種數(shù)學(xué)軟件都可以方便的計(jì)算出結(jié)果。
 
這里再多說幾句,我個(gè)人喜歡使用 gnuplot,gnuplot中有個(gè) fit 命令,也可以完成多元函數(shù)擬合。Gnuplot的 fit 命令采用非線性最小二乘 (NLLS) Marquardt-Levenberg算法,擬合能力非常強(qiáng)悍,只要擬合參數(shù)的初值給的別太離譜,基本都能夠收斂到最優(yōu)解上。fit命令具體的用法可以參考gnuplot的幫助文件。這里只講講如何處理 y是多個(gè)值的問題,方法很簡單,就是通過多引入一個(gè)自變量,將多值函數(shù)改造成普通的函數(shù):
傳感器
這里需要注意的是如果a1,a2,a3成為未知數(shù),c11,c22,c33就可以作為已知量了,比如設(shè)c11=c22=c33=1,因?yàn)檫@里的六個(gè)未知數(shù)只有三個(gè)是獨(dú)立的。因此,實(shí)際上只增加了三個(gè)未知數(shù)。
 
如果將上面的方法和溫度修正一起考慮的話可以這樣處理:
傳感器
上面式子中的t是溫度,這里的溫度修正算法比較簡單,主要是為了盡量少引入未知的參數(shù)。后面的計(jì)算就沒什么不同的了。
要采購傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉