王民康,孟海螺,秦紅磊
(1.北京航空航天大學(xué) 電子信息工程學(xué)院,北京 100191;2.中國兵器工業(yè)集團(tuán)第二○五研究所 總體五部,西安 710065)
全球衛(wèi)星導(dǎo)航系統(tǒng)(global navigation satellite system,GNSS)由于其全球性、全天候、全時(shí)段、實(shí)時(shí)、高精度的特性得到了廣泛的應(yīng)用,而隨著時(shí)代的發(fā)展,GNSS不斷在各個(gè)領(lǐng)域衍生出新的應(yīng)用。尤其是1996年美國通訊委員會頒布了“E911”的行政性命令,要求任何時(shí)間、地點(diǎn)都能通過手機(jī)追蹤到用戶,使得基于位置的服務(wù)(location based service,LBS)逐漸受到了重視并且需求越來越大。LBS主要面向的是如手機(jī)和個(gè)人數(shù)字助理等終端,在這些應(yīng)用中,首次定位時(shí)間(time to first fix,TTFF)、成本、功耗成為了接收機(jī)的嚴(yán)格指標(biāo)?,F(xiàn)有的LBS技術(shù)中,主要有到達(dá)時(shí)間(time of arrival,TOA)、入射角(arrival of angle,AOA)、輔助GNSS(assisted-GNSS,A-GNSS)以及用于室內(nèi)定位的無線保真(wireless fidelity,WiFi)等;這其中,A-GNSS既保留了傳統(tǒng)GNSS技術(shù)的優(yōu)良特性,又有快速定位和高靈敏的優(yōu)勢,得到了最為廣泛的應(yīng)用[1]。
A-GNSS由輔助服務(wù)器通過通信網(wǎng)絡(luò)提供給接收機(jī)輔助信息,包括時(shí)間、位置、衛(wèi)星星歷和歷書等數(shù)據(jù),以此來輔助解算相關(guān)信息,降低首次定位時(shí)間。傳統(tǒng)接收機(jī)中,衛(wèi)星的發(fā)射時(shí)間是計(jì)算全偽距和衛(wèi)星位置的前提條件;而A-GNSS中衛(wèi)星發(fā)射時(shí)間可以由精時(shí)間輔助或者解調(diào)導(dǎo)航電文得到。當(dāng)只能得到一個(gè)粗略的輔助時(shí)間,并且無法解調(diào)得到衛(wèi)星信號發(fā)射時(shí)間時(shí),衛(wèi)星發(fā)射信號時(shí)刻的具體位置將不能確定,也就是產(chǎn)生了粗時(shí)段導(dǎo)航問題。為了解決粗時(shí)段導(dǎo)航問題,文獻(xiàn)[2]提出了Range Fit方法,引入Lambda-fraction函數(shù)來求解衛(wèi)星發(fā)射時(shí)刻的毫秒整數(shù)部分;但其要求提供一個(gè)誤差小于150 km的初始用戶位置,且沒有解決毫秒整數(shù)的模糊問題。文獻(xiàn)[3]提出一種重構(gòu)全偽距的方法來解決毫秒整數(shù)的模糊問題,通過引入一個(gè)新的變量即粗時(shí)間誤差到導(dǎo)航定位方程中來解決粗時(shí)間問題;算法要求提供一個(gè)100 km誤差以內(nèi)的初始位置和1 min誤差以內(nèi)的初始時(shí)間。文獻(xiàn)[4]在此基礎(chǔ)上,提出了一種不需要初始位置的粗時(shí)段導(dǎo)航算法,先驗(yàn)位置由多普勒定位算出。文獻(xiàn)[5-6]的進(jìn)一步研究使得初始時(shí)間的誤差放寬到12 h,甚至幾天。
但是,相對于常規(guī)導(dǎo)航定位解算方程,粗時(shí)段導(dǎo)航方程存在著定位精度較差的問題[5]。粗時(shí)段導(dǎo)航方程在構(gòu)建狀態(tài)矩陣時(shí)將偽距速率設(shè)為恒定值,而由于衛(wèi)星加速度和衛(wèi)星時(shí)鐘速率變化率的存在,迭代解算時(shí)會引入線性化誤差。文獻(xiàn)[7]的實(shí)驗(yàn)結(jié)果表明,隨著粗時(shí)誤差的增大,粗時(shí)導(dǎo)航解算的定位誤差也隨之增大。此外,文獻(xiàn)[8]證明了由于粗時(shí)導(dǎo)航方程中添加了一個(gè)額外的狀態(tài),使得所有的精度衰減因子(dilution of precision,DOP)都會大于或等于原始的四狀態(tài)導(dǎo)航方程對應(yīng)的值,從而使得最終的定位誤差變大。
本文針對粗時(shí)段導(dǎo)航解算中存在的定位誤差問題,提出一種自適應(yīng)逐次逼近的粗時(shí)段導(dǎo)航算法。該算法通過每次迭代時(shí)更新衛(wèi)星發(fā)射時(shí)間和位置以及偽距速率來減小線性化誤差,并在解出精時(shí)間后重新推入四狀態(tài)導(dǎo)航方程以解決DOP問題。
(1)
因此,新的偽距殘差可以表示為
(2)
式中:δxxyz為三維向量,是δx的空間元素[δx,δy,δz]T;ε(k)為測量誤差;δb為公共偏差的狀態(tài)更新量。
那么擴(kuò)展到N顆可用衛(wèi)星的情況,可得一個(gè)新的矩陣方程組
δρ=Hδx+ε
(3)
從幾何矩陣H中可以看出,至少需要獨(dú)立的5行變量才能求解出δx;因此粗時(shí)段導(dǎo)航需要至少5顆不同的可用衛(wèi)星。
然而,由于多數(shù)情況下完整的偽距測量值ρ(k)沒有得到,僅能由捕獲或跟蹤得到擴(kuò)頻碼碼相位值,測量偽距將是一個(gè)亞毫秒值。由于未知的常見偏差的存在,使得粗時(shí)段導(dǎo)航還存在著毫秒整數(shù)模糊的問題。文獻(xiàn)[3]給出一種重構(gòu)全偽距的方法來解決整毫秒模糊問題,流程如下:
(4)
3)計(jì)算按照仰角排序列表中的下一顆衛(wèi)星k的整毫秒偽距值N(k)。其重構(gòu)的全偽距和其期望偽距的關(guān)系為
(5)
式(5)和式(4)相減可得:
(6)
式(6)消除了公共偏差b。當(dāng)-d(k)+ε(k)-d(0)+ε(0)的絕對值小于0.5個(gè)光毫秒時(shí),k號衛(wèi)星的整毫秒偽距可以估計(jì)為
(7)
從而得到k號衛(wèi)星的全偽距ρ(k)=N(k)+z(k)。
4)更新參考衛(wèi)星為上一個(gè)計(jì)算完的衛(wèi)星,然后到步驟3),計(jì)算下一顆衛(wèi)星的全偽距。
要使得重構(gòu)全偽距算法有效,從式(7)中可知,先驗(yàn)位置和時(shí)間引起的誤差需要在150 km以內(nèi)。通常在A-GNSS系統(tǒng)中,先驗(yàn)的位置和時(shí)間信息可由通信網(wǎng)絡(luò)提供,位置可通過Cell-ID等技術(shù)得到,一般精度可達(dá)3 km;而GSM網(wǎng)絡(luò)可提供1~2 s的時(shí)間精度,可滿足上述約束條件。一般來講,100 km以內(nèi)的先驗(yàn)位置誤差和1 min以內(nèi)的先驗(yàn)時(shí)間誤差可以使得上述重構(gòu)全偽距算法一直有效。
粗時(shí)段導(dǎo)航通過添加粗時(shí)間這個(gè)新的狀態(tài)來解決粗時(shí)間的問題。在第1節(jié)中可以看到粗時(shí)段導(dǎo)航的4個(gè)步驟,當(dāng)計(jì)算得到狀態(tài)更新向量之后,將會調(diào)整先驗(yàn)狀態(tài),也就是先驗(yàn)位置、公共偏差和粗時(shí)間。幾何矩陣H中的接收機(jī)與衛(wèi)星連線單位矢量e(k)會依據(jù)先驗(yàn)狀態(tài)進(jìn)行更新;而一般來講,粗時(shí)段導(dǎo)航中,衛(wèi)星的位置在每次迭代中不會更新,依靠幾何矩陣H中第5個(gè)狀態(tài)v(k)來補(bǔ)償衛(wèi)星位置引起的誤差。通常v(k)也不會每次迭代都更新,而是在粗時(shí)段導(dǎo)航定位解算過程中保持不變。衛(wèi)星的運(yùn)動存在加速度和加加速度,速度并非恒定值,對衛(wèi)星的速度進(jìn)行建模,可以表示為
(8)
式中:v(tm)為衛(wèi)星在時(shí)刻tm時(shí)的速度;v0為參考時(shí)刻的速度;t為時(shí)間單位;a(t)為與時(shí)間有關(guān)的加速度。
表1給出了在不同的粗時(shí)誤差下五狀態(tài)粗時(shí)段導(dǎo)航的3維定位精度比較,所采用的數(shù)據(jù)為62 MHz采樣的實(shí)際GPS L1靜態(tài)數(shù)據(jù),每隔1 s時(shí)間獲取一次碼相位測量數(shù)據(jù),來進(jìn)行粗時(shí)段導(dǎo)航定位。
從表1中可知:當(dāng)粗時(shí)誤差較小時(shí)可以得到較好的定位精度;當(dāng)粗時(shí)誤差較大時(shí),定位誤差增大,定位結(jié)果出現(xiàn)較大偏差。這與文獻(xiàn)[7]中結(jié)果類似??梢姶謺r(shí)段導(dǎo)航中的線性化誤差不能忽略。
表1 不同粗時(shí)誤差下粗時(shí)段導(dǎo)航算法定位精度
粗時(shí)段導(dǎo)航由于在幾何矩陣H中多加了1個(gè)狀態(tài),進(jìn)而影響了精度衰減因子,使得當(dāng)衛(wèi)星數(shù)較少時(shí)粗時(shí)段導(dǎo)航幾何精度衰減因子(geometric dilution of precision,GDOP)比四狀態(tài)的GDOP大;而衛(wèi)星數(shù)較多時(shí)二者差距較小。由式(3)可以得到狀態(tài)更新量估計(jì)值
(9)
可見,定位誤差與幾何矩陣相關(guān)。而由于幾何矩陣增加了1個(gè)狀態(tài),會使得所有的DOP值大于或等于原來的值。定義GDOP[9]為
(10)
式中:G=(HTH)-1為權(quán)系數(shù)陣;trace()為求矩陣跡的運(yùn)算。
(11)
式中:M=HTH;P=HTv;N=vTv。
進(jìn)一步展開可得
(M-PN-1PT)-1=M-1+
M-1P(N-PTM-1P)-1PTM-1
(12)
由于式(12)右邊第二部分為半正定矩陣,其跡大于等于0;因此有
(13)
圖1 四狀態(tài)導(dǎo)航和五狀態(tài)粗時(shí)段導(dǎo)航可見衛(wèi)星數(shù)目和HDOP值比較
圖1展示了常規(guī)四狀態(tài)導(dǎo)航和五狀態(tài)粗時(shí)段導(dǎo)航各自的水平精度衰減因子(horizontal dilution of precision,HDOP)的對比,同時(shí)給出了可見衛(wèi)星數(shù)量的變化趨勢。從圖中可以看到五狀態(tài)促使到導(dǎo)航的HDOP總是大于或等于四狀態(tài)導(dǎo)航的HDOP,滿足理論分析??捎眯l(wèi)星多的情況下二者HDOP接近,可用衛(wèi)星少時(shí)二者差距較大;從而導(dǎo)致五狀態(tài)粗時(shí)段導(dǎo)航定位誤差比傳統(tǒng)四狀態(tài)導(dǎo)航的定位誤差大:因此在解決粗時(shí)段導(dǎo)航問題時(shí)不能忽略DOP問題。
為了解決粗時(shí)段導(dǎo)航中的線性化誤差和DOP問題,以盡可能地提高其定位精度,本文提出一種自適應(yīng)逐次逼近的粗時(shí)段導(dǎo)航算法。在每次得到狀態(tài)更新解之后,重新計(jì)算衛(wèi)星信號發(fā)射時(shí)間,并重新計(jì)算衛(wèi)星位置和速度,更新幾何矩陣H,逐次逼近最終解,解決線性化誤差。在五狀態(tài)解算完成之后,檢驗(yàn)衛(wèi)星數(shù)和DOP,如果不滿足要求,自適應(yīng)推入四狀態(tài)導(dǎo)航方程重新解算,解決DOP問題。圖2給出了該算法的實(shí)現(xiàn)流程。
算法具體步驟如下:
1)由輔助網(wǎng)絡(luò)得到先驗(yàn)位置和一個(gè)粗略的時(shí)間作為初始解,設(shè)初始公共偏差為0。
2)利用當(dāng)前的時(shí)間解和重構(gòu)的全偽距計(jì)算各衛(wèi)星信號發(fā)射時(shí)間,并由輔助星歷計(jì)算各衛(wèi)星的位置、速度、衛(wèi)星時(shí)鐘偏差速率和偽距誤差校正量。再利用當(dāng)前用戶位置解和衛(wèi)星位置計(jì)算預(yù)期偽距,計(jì)算誤差校正后的測量全偽距。
圖2 自適應(yīng)逐次逼近的粗時(shí)段導(dǎo)航算法流程
3)對式(3)引入加權(quán)系數(shù),使得其誤差的方差進(jìn)一步減小,可得
WH·δx=Wδρ
(14)
δx=(HTCH)-1H-1C·δρ
(15)
式中:C=WTW;H為改進(jìn)的五狀態(tài)幾何矩陣。五狀態(tài)幾何矩陣H表示為
(16)
也就是說,在每次最小二乘運(yùn)算迭代時(shí)會根據(jù)當(dāng)前計(jì)算得到的用戶位置解和時(shí)間解更新五狀態(tài)幾何矩陣H各參數(shù)。同理,每次迭代時(shí)的偽距殘差為
(17)
4)計(jì)算后驗(yàn)殘差,如果足夠小,則輸出當(dāng)前解最后用戶的位置和時(shí)間解結(jié)果;否則,根據(jù)當(dāng)前解重新計(jì)算各衛(wèi)星信號發(fā)射時(shí)間,返回步驟2)。
5)由于五狀態(tài)導(dǎo)航的DOP值始終大于或等于四狀態(tài)導(dǎo)航;當(dāng)由上述加權(quán)五狀態(tài)粗時(shí)段導(dǎo)航方程求得用戶位置和時(shí)間解之后,將其解結(jié)果作為四狀態(tài)的初始狀態(tài),進(jìn)行四狀態(tài)導(dǎo)航方程解算。文獻(xiàn)[10]表明,當(dāng)衛(wèi)星發(fā)射時(shí)間精確到10 ms以內(nèi)時(shí)可以保證四狀態(tài)導(dǎo)航方程有效;從而可以通過將五狀態(tài)粗時(shí)段導(dǎo)航方程再次推入到四狀態(tài)導(dǎo)航方程中進(jìn)行解算,來降低粗時(shí)段導(dǎo)航中的各DOP值,進(jìn)而提高定位精度。
為了驗(yàn)證自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法的效果,本文進(jìn)行了一系列實(shí)驗(yàn)來進(jìn)行驗(yàn)證。采用自研多模多頻點(diǎn)GNSS信號采集器獲取實(shí)際環(huán)境中的GPS L1的靜態(tài)數(shù)據(jù)進(jìn)行算法驗(yàn)證實(shí)驗(yàn)。
信號的采樣率為62 MHz,中頻為4.17 MHz。算法為每隔1 s獲取一次碼相位測量量,碼相位由高靈敏捕獲模塊得到,并經(jīng)過碼相位精化方法提高捕獲所得碼相位的精度。先驗(yàn)位置給定為距離信號采集地點(diǎn)約430 m的位置,信號采集處的精確位置事先由高精度載波相位差分接收機(jī)測得,分別取粗時(shí)誤差為0、10、20、30、40、50、60 s來驗(yàn)證本文算法在不同粗時(shí)誤差下的定位性能。
圖3給出了當(dāng)粗時(shí)誤差為60 s時(shí),自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法在緯度、經(jīng)度和高度3個(gè)方向上的定位結(jié)果,并給出了與真值的對比。
圖4給出了粗時(shí)誤差為60 s時(shí)自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法和無粗時(shí)誤差時(shí)四狀態(tài)導(dǎo)航定位結(jié)果的均方根誤差(root mean square error,RMSE)的對比。此處四狀態(tài)導(dǎo)航解算中所用碼相位結(jié)果與粗時(shí)段導(dǎo)航中所用碼相位相同。
圖3 粗時(shí)誤差為60 s時(shí)改進(jìn)粗時(shí)段導(dǎo)航算法定位結(jié)果
圖4 粗時(shí)誤差60 s時(shí)自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航與無粗時(shí)誤差四狀態(tài)導(dǎo)航定位精度對比
從圖3和圖4可以看出:自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航在粗時(shí)誤差大到60 s時(shí)仍能獲得較高精度的定位結(jié)果;經(jīng)度和緯度方向上定位結(jié)果的RMSE均大約為2.2 m左右,高度方向上定位結(jié)果的RMSE大約為5.2 m左右,并且該定位結(jié)果與無粗時(shí)誤差時(shí)常規(guī)四狀態(tài)導(dǎo)航定位結(jié)果基本相同??梢?,自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法在有較大粗時(shí)誤差時(shí)仍能獲得與常規(guī)四狀態(tài)導(dǎo)航定位接近的較高的定位精度。
表2給出了在不同粗時(shí)誤差下,自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法定位結(jié)果的RMSE之間的對比。
表2 不同粗時(shí)誤差下自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法定位結(jié)果的RMSE
從表2可以看到:當(dāng)粗時(shí)誤差從0~60 s變化時(shí),自適應(yīng)粗時(shí)段導(dǎo)航算法都能夠獲得較高的定位精度;緯度和經(jīng)度定位結(jié)果的RMSE都在2.5 m以內(nèi),高度的RMSE在6 m以內(nèi),這與四狀態(tài)導(dǎo)航方程所得到的定位結(jié)果接近。這表明本文所提出的算法克服了在較大粗時(shí)誤差下粗時(shí)段導(dǎo)航存在的線性化誤差以及五狀態(tài)導(dǎo)航定位比四狀態(tài)導(dǎo)航定位DOP大的問題,獲得了較高的定位精度,保證了粗時(shí)段導(dǎo)航在大粗時(shí)誤差或者可用衛(wèi)星數(shù)較少時(shí)仍能獲得與常規(guī)定位解算接近的較好的定位結(jié)果。
本文針對GNSS導(dǎo)航定位中粗時(shí)段導(dǎo)航存在的大粗時(shí)誤差下線性化誤差問題和DOP問題,提出了一種自適應(yīng)逐次逼近的粗時(shí)段導(dǎo)航算法。在粗時(shí)段導(dǎo)航算每次迭代運(yùn)算時(shí),同時(shí)更新衛(wèi)星狀態(tài)和幾何矩陣,并在解算完成后自適應(yīng)推入四狀態(tài)導(dǎo)航算法重新解算,保證了在較大粗時(shí)誤差下或者衛(wèi)星數(shù)較少時(shí)粗時(shí)段導(dǎo)航仍可獲得較高的定位精度。通過采用實(shí)際GPS數(shù)據(jù)的相關(guān)實(shí)驗(yàn),驗(yàn)證了該算法的有效性和可靠性。實(shí)驗(yàn)的結(jié)果表明:自適應(yīng)逐次逼近的粗時(shí)段導(dǎo)航算法在0 s的粗時(shí)誤差下能夠獲得與常規(guī)四狀態(tài)導(dǎo)航算法近似的定位精度;緯度和經(jīng)度定位結(jié)果的RMSE在2.2和1.8 m左右,高度定位結(jié)果的RMSE在5.2 m左右,算法連續(xù)測試了20 min左右的數(shù)據(jù),具有連續(xù)可用性;隨著粗時(shí)誤差的增大,定位精度基本保持不變,在較大粗時(shí)誤差下仍能獲得與粗時(shí)誤差為0 s時(shí)接近的定位結(jié)果。
本文提出的自適應(yīng)逐次逼近粗時(shí)段導(dǎo)航算法使得在存在粗時(shí)間問題時(shí)GNSS導(dǎo)航定位方法仍然可行,并且在惡劣環(huán)境下,如大粗時(shí)誤差或可用衛(wèi)星少時(shí),仍能得到較好的效果,擴(kuò)展了粗時(shí)段導(dǎo)航的應(yīng)用場景,增大了GNSS導(dǎo)航定位的可用性。