劉 帥,包敬海
(欽州學(xué)院 電子與信息工程學(xué)院,廣西 欽州 535011)
北斗衛(wèi)星作為一種新的衛(wèi)星通信方式,在移動(dòng)網(wǎng)絡(luò)無(wú)法覆蓋的地區(qū)有著廣泛的應(yīng)用需求[1-2]。例如,大蠔養(yǎng)殖中的蠔排問題,利用北斗衛(wèi)星海上定位功能,能夠?qū)ο柵盼恢眠M(jìn)行有效定位。但目前海上水產(chǎn)養(yǎng)殖過程中使用的北斗衛(wèi)星定位系統(tǒng),定位精度低、設(shè)備昂貴,難以進(jìn)行大規(guī)模的推廣。
針對(duì)上述問題,本文將北斗定位和慣性定位相結(jié)合,設(shè)計(jì)了能夠滿足海上定位需求的北斗衛(wèi)星信號(hào)接收系統(tǒng),并對(duì)海上定位解算方法進(jìn)行了研究。該系統(tǒng)使用有源陣列天線,能夠?qū)ξ⑷醯男l(wèi)星信號(hào)進(jìn)行放大處理。同時(shí),系統(tǒng)采用基于最小二乘法的思想提出的海上定位解算方法,能夠準(zhǔn)確得到用戶的位置、時(shí)間信息。研究?jī)?nèi)容對(duì)于提高北斗衛(wèi)星的海上定位精度有著重要意義。
為了滿足對(duì)海上定位的要求,北斗衛(wèi)星定位系統(tǒng)在設(shè)計(jì)時(shí),需要考慮的關(guān)鍵指標(biāo)如下[3-5]:(1)接受頻率為1 500.32±6 MHz;(2)接受通道≥16通道;(3)RNSS定位精度:水平5 m,高程5 m(重點(diǎn)區(qū)域,位置精度因子≤3);(4)測(cè)速精度:0.4 m/s;(5)定位數(shù)據(jù)輸出>5次/s;基于上述考慮,北斗導(dǎo)航衛(wèi)星接收機(jī)的整體框圖,如圖1所示。其中,主要包括有源天線陣列、多通道射頻、基帶模板以及用戶顯示界面。
圖1 系統(tǒng)整體框圖
為保證海上定位的準(zhǔn)確性,避免海風(fēng)、暴雨以及其他干擾因素對(duì)北斗衛(wèi)星海上定位的影響,系統(tǒng)中特意增加了有源陣列天線[6-7]。同時(shí),天線接收到的北斗衛(wèi)星信號(hào)經(jīng)過低噪聲前置放大器進(jìn)行信號(hào)放大。然后,通過轉(zhuǎn)化模塊將放大后的信號(hào)轉(zhuǎn)換為一般的射頻電信號(hào),從而保證了北斗衛(wèi)星信號(hào)的可靠接收。按照上述內(nèi)容,北斗衛(wèi)星接收機(jī)的硬件設(shè)計(jì),如圖2所示。
圖2 北斗衛(wèi)星接收機(jī)硬件設(shè)計(jì)
基帶通過天線陣列接收來(lái)自衛(wèi)星的定位信號(hào),并通過信號(hào)放大器對(duì)其進(jìn)行放大。同時(shí),將電磁波信號(hào)轉(zhuǎn)變?yōu)樯漕l信號(hào)。然后,由射頻識(shí)別模塊對(duì)有效信號(hào)進(jìn)行識(shí)別、濾波、變頻處理。當(dāng)信號(hào)進(jìn)入模數(shù)轉(zhuǎn)化模塊之后,接收到的模擬信號(hào)變?yōu)閿?shù)字信號(hào),再通過FPGA對(duì)北斗信號(hào)進(jìn)行解算和定位,從而得到準(zhǔn)確的海上位置信息。最后通過RS232通信接口,將解算后得到的位置、速度與時(shí)間信息傳給用戶。
為了對(duì)海上坐標(biāo)進(jìn)行準(zhǔn)確定位,本文對(duì)北斗衛(wèi)星信號(hào)的定位解算方法進(jìn)行研究。假設(shè)系統(tǒng)接收到了由m顆衛(wèi)星得到的偽距觀測(cè)量,根據(jù)偽距方程可以得到表達(dá)式[8-9]
(1)
式中,xu=[xu,yu,zu,b]為4個(gè)未知量。其中,[xu,yu,zu]為用戶位置坐標(biāo),b為本地時(shí)鐘和BDT時(shí)鐘之間的差值。
由于方程(1)為非線性方程,在基帶中為了對(duì)其計(jì)算,需要將其線性化。假設(shè),接收機(jī)的初始變量為
x0=[x0,y0,z0,b0]
(2)
將式(1)按照泰勒級(jí)數(shù)展開
(3)
式(3)中h.o.t為高階泰勒級(jí)數(shù)。定義為
(4)
其前3項(xiàng)為坐標(biāo)方向dx的余弦矢量
dx=[(xu-x0),(yu-y0),(zu-z0),(b-b0)]
(5)
忽略式(3)中的高階泰勒級(jí)數(shù),則有
ρi(xu)-ρi(x0)=uidx0+npi
(6)
等號(hào)左側(cè)為北斗衛(wèi)星數(shù)據(jù)的偽距殘差,等號(hào)右側(cè)為線性化的偽距殘差近似值[10-12]。對(duì),m個(gè)觀測(cè)量同時(shí)做線性化可得
δρ=Hdx0+np
(7)
式(7)按照數(shù)值計(jì)算的方法,可得其最小二乘解為
dx0(HTH)-1HTδp
(8)
(9)
矩陣(HTH)-1HT的前3行用來(lái)確定用戶的位置坐標(biāo),第4行用來(lái)確定用戶的時(shí)鐘差。由上式可知,觀測(cè)得到的公共誤差項(xiàng)不會(huì)對(duì)用戶的位置產(chǎn)生影響,但對(duì)用戶的時(shí)鐘差有影響[13-14]。因此,需要對(duì)其進(jìn)行修正。修正后得到的解為
x1=x0+dx0
(10)
按照修正后的x值重新進(jìn)行上述過程,對(duì)結(jié)果進(jìn)行更新。對(duì)于第k次迭代,有
(11)
xk=xk-1+dxk-1
(12)
為了對(duì)迭代次數(shù)進(jìn)行限制,求解約束條件為[15-16]
‖dxk‖<閾值
(13)
通過用戶對(duì)閾值的設(shè)定,可以使迭代停止。通常,迭代次數(shù)越多,求解得到的精度越高,但其代價(jià)是運(yùn)算時(shí)間增加。故一般而言,選擇一個(gè)合適的閾值,不僅能夠滿足求解精度的要求,同時(shí)還能滿足快速響應(yīng)的要求[17]。
基于北斗衛(wèi)星的海上定位程序在DSP(OPLAL138)中運(yùn)行,使用C語(yǔ)言進(jìn)行開發(fā),其程序流程圖如圖3所示。系統(tǒng)啟動(dòng)之后首先對(duì)FPGA進(jìn)行初始化,然后由DSP從Flash內(nèi)部讀取程序并完成初始化工作。DSP自身完成初始化之后,需要對(duì)與其連接的外部硬件設(shè)備初始化。其中,包括通信接口、模數(shù)轉(zhuǎn)換以及顯示等內(nèi)容的初始化工作。
圖3 程序設(shè)計(jì)流程圖
初始化完成之后,系統(tǒng)開始進(jìn)入while(1)循環(huán),不斷接收北斗衛(wèi)星信號(hào)。為了對(duì)式(8)和式(9)進(jìn)行求解,觀測(cè)到的衛(wèi)星數(shù)必須大于4才能獲得準(zhǔn)確的位置信息。當(dāng)系統(tǒng)接收到的衛(wèi)星信息能夠建立位置信息的矩陣方程時(shí),DSP對(duì)衛(wèi)星的位置與速度信息進(jìn)行計(jì)算,并得到衛(wèi)星及用戶之間的測(cè)量偏移量。最后采用上述定位解算方法得到用戶接收機(jī)所在的位置信息,并將結(jié)果反饋到PC端。
本文基于北斗衛(wèi)星系統(tǒng),設(shè)計(jì)了一款能夠滿足遠(yuǎn)海通信定位的北斗衛(wèi)星信號(hào)接收系統(tǒng)。并根據(jù)接收到的衛(wèi)星信號(hào),基于最小二乘法的求解思想,將非線性位置求解方程線性化,給出了海上定位求解算法。本文研究?jī)?nèi)容對(duì)于利用北斗衛(wèi)星導(dǎo)航系統(tǒng),實(shí)現(xiàn)海上定位具有重要意義。