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