本發(fā)明涉及一種三軸地磁傳感器實時校正方法。
背景技術(shù):
磁場傳感器是可以將各種磁場及其變化的量轉(zhuǎn)變成電信號輸出的裝置。自然界和人類社會生活的許多地方都存在磁場或與磁場相關(guān)的信息。利用人工設(shè)置的永久磁體產(chǎn)生的磁場,可作為許多種信息的載體。因此,探測、采集、存儲、轉(zhuǎn)換、復現(xiàn)和監(jiān)控各種磁場和磁場中承載的各種信息的任務(wù),自然就落在磁場傳感器身上。在當今的信息社會中,磁場傳感器已成為信息技術(shù)和信息產(chǎn)業(yè)中不可缺少的基礎(chǔ)元件。目前,人們已研制出利用各種物理、化學和生物效應的磁場傳感器,并已在科研、生產(chǎn)和社會生活的各個方面得到廣泛應用,承擔起探究種種信息的任務(wù)。
三軸地磁傳感器可以采集到在直角坐標系下,矢量磁場在每個坐標軸上的分量大小。在理想情況下,傳感器的數(shù)據(jù)應當完美的分布在一個球心過原點的正球面上。然而,在傳感器制造過程中,三個坐標軸的靈敏度往往不同,導致觀測值與實際值存在放縮關(guān)系,這就導致傳感器的數(shù)據(jù)實際分布在橢球面上。另外,由于傳感器所在電路本身也會產(chǎn)生近似恒定的磁場,這就導致橢球的球心不在坐標軸原點。所以就需要使用校正算法,來校正這種誤差。還需要提及的是,雖然傳感器在制造的時候,三個坐標軸可能存在不互相垂直的情況,但是由于現(xiàn)如今制造工藝的不斷提高,這種誤差可以忽略不計。另外,在實際情況中,由于電路的溫度會隨著電路的使用不斷增高,這就導致三軸的靈敏度與電路產(chǎn)生的磁場在緩慢變化,這就產(chǎn)生了對實時校正算法的需求。
另外,由于在使用地磁傳感器的數(shù)據(jù)時,往往只需要其三軸矢量的方向向量,所以,只要把觀測到的數(shù)據(jù)校正到單位正球面上即可。
常用的三軸地磁傳感器校正方法是橢球校正。通過采集到的數(shù)據(jù)擬合橢圓方程,來計算校正用的參數(shù)。在使用這種方法時,積攢足夠多的數(shù)據(jù)才能保證計算的正確性與精度(通常情況下需要采集1000組3軸的數(shù)據(jù),即3000個浮點型數(shù)據(jù),才能在一定程度上保證計算正確性,而3000個16位浮點型變量,需要48kb的存儲空間。常見51單片機僅有64kb的容量。如果不使用外部存儲器,則僅校正就需要 占用超過一半的內(nèi)存空間。如果使用外部存儲器,則增加了硬件成本,且提高了系統(tǒng)的復雜性),而在嵌入式等儲存空間有限的設(shè)備里,在記錄這些數(shù)據(jù)的同時,就很難記錄其他的數(shù)據(jù),所以設(shè)計一種能夠幾乎不占內(nèi)存的,且簡單實用的三軸地磁傳感器算法顯得尤為重要。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是:提供一種全新的三軸地磁傳感器校正方法,該方法簡單好用,且占用內(nèi)存極少。
為實現(xiàn)上述目的,本方法發(fā)明采用的技術(shù)方案是:
三軸地磁傳感器實時校正方法,該矯正方法包括如下步驟:
A、轉(zhuǎn)動地磁傳感器,并采集地磁傳感器發(fā)出的xyz三軸地磁數(shù)據(jù)Xb,Yb,Zb;
B、對采集到的每組三軸地磁數(shù)據(jù)Xb,Yb,Zb進行迭代計算;
C、利用迭代的變量,計算校正參數(shù)Ax,Ay,Az,Ox,Oy,Oz;
D、利用校正參數(shù),計算校正后地磁傳感器數(shù)據(jù)。
所述步驟B中,迭代計算的方法如下:
①、初始化6階方陣M,所述6階方陣M的初始化值M0為6*6全零方陣;初始化6維列向量B,所述6維列向量B的初始化值B0為6*1全零列向量;
②、上述步驟A中,設(shè)第i次采集到的三軸地磁數(shù)據(jù)為Xbi,Ybi,Zbi;
構(gòu)建向量Ai,其中上標2表示平方運算;
構(gòu)建向量bi,其中上標2表示平方運算,i為正整數(shù),i≥1;
③、利用下列公式(1)和(2)分別更新6階方陣M及6維列向量B,
公式(1)和(2)中,上標T表示矩陣轉(zhuǎn)置運算,i表示三軸地磁數(shù)據(jù)的采集次數(shù)且i為正整數(shù),當i=1時,Mi-1取初始化得到的M0,Bi-1取初始化得到的B0。
步驟③中,每次更新M與B后,利用如下公式(3)計算校正參數(shù)Ax,Ay,Az,OX,Oy,Oz;
記
上述公式中,記參數(shù)其中上標-1表示矩陣求逆運算,W為6維列向量,wj(j=1,2,...,6)表示W(wǎng)第j維的值。
計算校正參數(shù)的公式如下:
校正后的地磁傳感器數(shù)據(jù)Xc,Yc,Zc的計算公式為,其中Xb,Yb,Zb表示校正前的xyz三軸地磁數(shù)據(jù)。
Xc=AxXb+Ox
Yc=AyYb+Oy
Zc=AzZb+Oz
與現(xiàn)有技術(shù)相比,本發(fā)明具備的技術(shù)效果為:該方法記錄的地磁傳感器的數(shù)據(jù)占用內(nèi)存少,且簡單便捷,有較好的可實施性,還可以實時校正傳感器,適用于各種場合。
除了上面所描述的目的、特征和優(yōu)點之外,本發(fā)明還有其它的目的、特征和優(yōu)點。下面將對本發(fā)明作進一步詳細的說明。
具體實施方式
下面對本發(fā)明作進一步地說明:
三軸地磁傳感器實時校正方法,該矯正方法包括如下步驟:
A、轉(zhuǎn)動地磁傳感器,并采集地磁傳感器發(fā)出的xyz三軸地磁數(shù)據(jù)Xb,Yb,Zb;
B、對采集到的每組三軸地磁數(shù)據(jù)Xb,Yb,Zb進行迭代計算;
C、利用迭代的變量,計算校正參數(shù)Ax,Ay,Az,OX,Oy,Oz;
D、利用校正參數(shù),計算校正后地磁傳感器數(shù)據(jù)。
所述步驟B中,迭代計算的方法如下:
①、初始化6階方陣M,所述6階方陣M的初始化值M0為6*6全零方陣;初始化6維列向量B,所述6維列向量B的初始化值B0為6*1全零列向量;
②、上述步驟A中,設(shè)第i次采集到的三軸地磁數(shù)據(jù)為Xbi,Ybi,Zbi;
構(gòu)建向量Ai,其中上標2表示平方運算;
構(gòu)建向量bi,其中上標2表示平方運算,i為正整數(shù),i≥1;
③、利用下列公式(1)和(2)分別更新6階方陣M及6維列向量B,
公式(1)和(2)中,上標T表示矩陣轉(zhuǎn)置運算,i表示三軸地磁數(shù)據(jù)的采集次數(shù)且i為正整數(shù),當i=1時,Mi-1取初始化得到的M0,Bi-1取初始化得到的B0。
步驟③中,每次更新M與B后,利用如下公式(3)計算列向量W以及參數(shù)λ,其中W為6維列向量,wj(j=1,2,...,6)表示W(wǎng)第j維的值,上標-1表示矩陣求逆運算。
記
參數(shù)
之后再利用W和λ計算校正參數(shù)Ax,Ay,Az,OX,Oy,Oz:
在計算出上述6個校正參數(shù)后,就可以按照下述的校正模型,對原始三軸地磁數(shù)據(jù)進行校正。
Xc=AxXb+Ox
Yc=AyYb+Oy
Zc=AzZb+Oz
其中,Xc,Yc,Zc表示校正后地磁傳感器數(shù)據(jù),Xb,Yb,Zb表示校正前的地磁傳感器x,y,z軸采集到的數(shù)據(jù),Ax,Ay,Az,OX,Oy,Oz為校正參數(shù)。
實際上,假設(shè)采集的數(shù)據(jù)量是n,常用方法則需要儲存M、B和一個n乘6方陣和一個n乘1方陣,共7n+42個變量;而本方法僅需儲存M、B、A、b、W、i、λ即可,即57個變量,占用空間不隨數(shù)據(jù)量增加而增大,使用的數(shù)據(jù)量越大,本文節(jié)省空間的效果越明顯。