王向陽, 蔡成林, 張文波, 蔡 勁
(桂林電子科技大學(xué) 信息與通信學(xué)院,廣西 桂林 541004)
北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國自行研制的全球衛(wèi)星導(dǎo)航定位系統(tǒng),廣泛應(yīng)用于交通運(yùn)輸、海洋漁業(yè)、水文監(jiān)測等領(lǐng)域[1]。隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)建設(shè)的快速發(fā)展,國內(nèi)外學(xué)者對接收機(jī)鐘差、電離層、對流層等相關(guān)誤差進(jìn)行了研究,分析并糾正了相關(guān)誤差后,評估了偽距單點(diǎn)定位的精度。傳統(tǒng)的偽距單點(diǎn)定位算法有最小二乘(least square,簡稱LS)算法[2]、高斯牛頓迭代最小二乘(Gauss-Neton iterative least square,簡稱GNILS)算法[3]、Kalman濾波算法等。由于GNILS算法的定位精度較LS算法高,目前偽距單點(diǎn)定位普遍采用GNILS算法。利用GNILS算法進(jìn)行定位解算時(shí),對觀測站坐標(biāo)的初始值的依賴性較大,若選取觀測站坐標(biāo)的初始值與真實(shí)值存在較大偏差,迭代次數(shù)將會增加,計(jì)算量也隨之增加[4]。鑒于此,提出了一種不等權(quán)的自適應(yīng)加權(quán)最小二乘(adaptive weighted least squares,簡稱AWLS)算法。通過北斗實(shí)測數(shù)據(jù)驗(yàn)證表明,AWLS算法計(jì)算復(fù)雜度低,定位精度高,并能有效地排除誤差較大衛(wèi)星對定位平穩(wěn)性的破壞,有利于接收機(jī)實(shí)現(xiàn)高精度的定位和導(dǎo)航,可提高偽距單點(diǎn)定位的精度。
在偽距單點(diǎn)定位的過程中,電離層延遲誤差、對流層延遲誤差、接收機(jī)鐘差等因子會對定位結(jié)果造成較大影響[5-7],因此將偽距的觀測方程設(shè)為:
(1)
其中:
針對以上參數(shù)誤差,衛(wèi)星鐘差dti可通過星歷參數(shù)進(jìn)行修正;電離層延遲誤差dion,j可通過模型進(jìn)行修正;對流層延遲誤差dtrop,j可通過Saastamoinen模型進(jìn)行修正[9-11]。誤差修正后的偽距方程為:
(2)
式(1)減式(2)可得Δρi=-(dρi+ερ)。
GNILS算法作為傳統(tǒng)的北斗偽距單點(diǎn)定位算法,在進(jìn)行定位解算時(shí),根據(jù)已知的初始估計(jì)值來求解多元非線性方程組,將各個(gè)非線性方程在初始估計(jì)值處線性化,再根據(jù)LS算法原理求解線性化方程,得到解的更新值,并重復(fù)這種運(yùn)算逐次迭代,直至所得結(jié)果達(dá)到所要求的精度,進(jìn)而求解接收機(jī)的位置坐標(biāo)[12]。
式(2)的原型為ki=ri0+cdt-ρi,由于Δρi=-(dρi+ερ)非常小,可假設(shè)其為零,則式(2)可簡化為:
ki=Ixi·Δxj+Iyi·Δyj+Izi·Δzj-cdt。
(3)
其中:
根據(jù)最小二乘原理,得
Δx=(GΤG)-1GΤB。
(4)
其中:
(5)
求出4個(gè)估計(jì)量(Δxj,Δyj,Δzj,cdt),更新X0=(x0,y0,z0,B0),令x0=x0+Δx,y0=y0+Δy,z0=z0+Δz,B0=B0+cdt,重復(fù)上述過程進(jìn)行迭代,直到Δxj,Δyj,Δzj滿足:
(6)
設(shè)定一個(gè)閾限值α,其取值8~15,迭代次數(shù)不超過10次,當(dāng)式(6)成立時(shí),解算出來的值即為GNILS算法求解出的用戶接收機(jī)坐標(biāo)和接收機(jī)鐘差[13]。
AWLS算法與GNILS算法相同的是都需要進(jìn)行算法迭代,不同之處在于是否構(gòu)建加權(quán)系數(shù)矩陣。用AWLS算法構(gòu)建加權(quán)系數(shù)矩陣的方法如下:
對于式(2)的原型,
ki=ri0+cdt-ρi
的前2項(xiàng)
ri0+cdt=
其為線性化后的偽距值,后一項(xiàng)ρi為修正后的偽距,雖然后者在實(shí)際情況中修正并不完全,還存在一些誤差,但這些誤差相對ρi本身來說是一個(gè)非常小的量,即ρi為第i顆衛(wèi)星與用戶實(shí)際位置相對應(yīng)的含有較小誤差的偽距,ki為第i顆衛(wèi)星與接收機(jī)實(shí)際位置相對應(yīng)的含有較小誤差的偽距與線性化后的偽距之間的偏差。設(shè)k為所有可用衛(wèi)星與用戶實(shí)際位置相對應(yīng)的含有較小誤差的偽距值與線性化后的偽距值之間的偏差,令
(7)
定位結(jié)果最佳。
AWLS算法構(gòu)造的權(quán)系數(shù)矩陣Γ是以衛(wèi)星與接收機(jī)實(shí)際位置相對應(yīng)的含有較小誤差的偽距與線性化后的偽距之間的偏差ki為基礎(chǔ)的,它是一個(gè)自加權(quán)矩陣,隨著迭代的進(jìn)行,會隨接收機(jī)位置的更新而改變。利用此原理,該矩陣能夠極大地降低問題衛(wèi)星對定位結(jié)果的影響,使定位結(jié)果更佳。
根據(jù)加權(quán)最小二乘算法原理:
Δx2=(GΤΓG)-1GΤΓB,
(8)
求出4個(gè)估計(jì)量(Δxj,Δyj,Δzj,cdt),更新X0=(x0,y0,z0,B0),令x0=x0+Δx,y0=y0+Δy,z0=z0+Δz,B0=B0+cdt,重復(fù)上述過程進(jìn)行迭代,直到Δxj,Δyj,Δzj滿足:
(9)
設(shè)定一個(gè)閾限值β,其取值范圍8~15,迭代次數(shù)不超過5次,當(dāng)滿足式(9)時(shí),解算出來的值即為AWLS算法求解出的用戶接收機(jī)坐標(biāo)和接收機(jī)鐘差。
通過對北斗數(shù)據(jù)進(jìn)行分析與仿真來驗(yàn)證AWLS算法的優(yōu)越性,其中北斗數(shù)據(jù)從安裝于桂林電子科技大學(xué)的清華高精度接收機(jī)中獲取,采用的是2018年3月14日到2018年3月18日的BDS數(shù)據(jù),該數(shù)據(jù)是以30 s為一歷元并連續(xù)接收24 h。
在進(jìn)行定位解算時(shí),考慮到較好的衛(wèi)星高度角可在一定程度上降低多路徑效應(yīng)等因素對定位精度的影響,設(shè)置衛(wèi)星的截止高度角為15°。通過多次實(shí)驗(yàn)驗(yàn)證,衛(wèi)星的截止高度角為15°時(shí),接收機(jī)可接收到足夠多的可用衛(wèi)星數(shù),且定位精度最優(yōu)。對BDS數(shù)據(jù)進(jìn)行處理分析,通過星歷參數(shù)和相應(yīng)的簡單算法求解衛(wèi)星的位置,通過Klobuchar模型對電離層延遲進(jìn)行修正,Saastamoinen模型對對流層延遲進(jìn)行修正等,進(jìn)而得到修正后的偽距[14],如表1所示。利用上述算法得到的衛(wèi)星的位置坐標(biāo)、修正后的偽距,通過LS算法、GNILS算法、AWLS算法求解用戶接收機(jī)的水平定位精度、高程定位精度、三維定位精度[15],所得結(jié)果如表2所示。
由表2可得以下結(jié)論:
1)AWLS算法和GNILS算法相比于LS算法,抗差性能和定位精度都有較大提高;
2)AWLS算法相比于GNILS算法迭代次數(shù)少,計(jì)算復(fù)雜度降低;
3)AWLS算法相比于GNILS算法,抗差性能和定位精度提高約2倍。
表1 某個(gè)歷元的衛(wèi)星位置坐標(biāo)和修正后的偽距值
表2 三種算法的定位結(jié)果比較
圖1 GNILS算法定位結(jié)果
圖2 AWLS算法定位結(jié)果
從圖1、2可看出,AWLS算法的定位精度比GNILS算法高,且抗差性能更好,但在18-24這個(gè)時(shí)間段,幅度較大,精度稍差,但總體來說,AWLS算法相對于傳統(tǒng)的LS算法和GNILS算法較優(yōu)。
在分析最小二乘法(LS)和高斯牛頓迭代最小二乘算法(GNILS)的基礎(chǔ)上,提出了一種改進(jìn)的高精度的加權(quán)最小二乘(AWLS)算法,并在北斗PVT性能測試評估中進(jìn)行仿真。該算法利用偽距偏差最大的衛(wèi)星在定位解算中的權(quán)重盡可能小的原理構(gòu)建一個(gè)自加權(quán)矩陣,解決了異常衛(wèi)星對定位平穩(wěn)性破壞的問題,并極大地提高了定位精度,使北斗偽距的單點(diǎn)定位精度提高到約3 m。