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