曹學瑤, 胡黃水, 韓 博
(長春工業(yè)大學 計算機科學與工程學院, 吉林 長春 130012)
北斗衛(wèi)星導航系統(tǒng)是我國自行研制、獨立運行的全球衛(wèi)星導航系統(tǒng)。和美國的GPS、俄羅斯的“格洛納斯”(GLO-NASS)以及歐洲的“伽利略”系統(tǒng)并列為全球四大衛(wèi)星定位系統(tǒng)[1]。目前,北斗衛(wèi)星導航系統(tǒng)已具備亞太區(qū)域?qū)Ш椒漳芰Α?/p>
偽距定位具有易于實現(xiàn)、速度快、不存在整周模糊度等優(yōu)點,具有很大的應用價值。目前,偽距定位算法普遍采用最小二乘算法、卡爾曼濾波算法(Kalman filtering)等。在偽距定位算法中,最小二乘算法是一種相對簡單且廣泛的算法。但最小二乘算法在定位中無法處理數(shù)據(jù)中的粗差且計算量大,所以,利用最小二乘定位算法使得定位精度下降[2]??柭鼮V波算法通過預測方程和更新方程對目標進行最優(yōu)狀態(tài)估計[3-4],由于觀測數(shù)據(jù)中的量測噪聲和系統(tǒng)噪聲對解算存在干擾,所以卡爾曼濾波解算過程也是濾波過程。卡爾曼濾波算法在導航及高精度衛(wèi)星定位領(lǐng)域也得到廣泛應用。文獻[5]提出基于卡爾曼濾波方法的BDS偽距單點定位算法,相較于最小二乘算法,卡爾曼濾波算法的定位精度有明顯提高。針對卡爾曼濾波算法在狀態(tài)轉(zhuǎn)移、觀測等非線性條件下無法保持正態(tài)性問題,文獻[6-7]提出擴展卡爾曼濾波定位算法。擴展卡爾曼濾波算法使用雅克比矩陣代替卡爾曼濾波中的線性矩陣,使擴展卡爾曼濾波在非線性條件下可以保持正態(tài)性,進而提高定位精度,文獻[8-9]提出粒子群優(yōu)化擴展卡爾曼濾波算法,首先采用具有最小均方誤差估計效果的 EKF 濾波算法,其次加入粒子群算法來優(yōu)化EKF 噪聲矩陣,進而提高定位精度。
但粒算子群算法(Particle Swarm Optimization, PSO)在粒子尋優(yōu)過程中具有隨機性,導致粒子無法收斂到全局的最佳位置且易于陷入局部極值。該缺陷使算法不能實現(xiàn)最優(yōu)化并影響算法精度,不能滿足高精度的定位要求。因此,提出混沌粒子群優(yōu)化擴展卡爾曼濾波算法,在傳統(tǒng)粒子群的基礎(chǔ)上添加混沌擾動,擴大粒子群的應用范圍,擺脫局部最優(yōu),進而提高收斂速度和定位精度。
偽距定位原理是通過北斗導航系統(tǒng)中導航衛(wèi)星的三維位置坐標信息,以及衛(wèi)星到接收端的距離得到用戶端的三維位置坐標信息的過程。其中導航衛(wèi)星的三維位置坐標信息可以通過導航電文中的星歷數(shù)據(jù)獲得,由于衛(wèi)星發(fā)射的信號會受到各種誤差的干擾,導致用戶端接收到的觀測距離并不準確。將帶有誤差的觀測距離稱為偽距[10]。公式如下:
ρi=ri+δρ1+δρ2+c(δtu-δt1),
(1)

(2)
式中:ri----第i顆衛(wèi)星與用戶端的真實距離:
ρi----衛(wèi)星與用戶設(shè)備之間的真實距離;
δtu----電流層的時延距離;
δρ1----對流層的時延距離;
δt1----用戶設(shè)備的鐘差;
δρ2----衛(wèi)星的鐘差;
c----信號的傳播速度,c=2.997 924 58 m/s;
(xi,yi,zi)----第i顆衛(wèi)星的位置坐標;
(x,y,z)----接收機的位置坐標。
忽略可修正項,偽距定位公式
ρi=ri+c(δtu-δt1)=
i=1,2,…,n,
(3)
式中:δt----接收機的鐘差。
北斗導航系統(tǒng)的觀測模型和狀態(tài)模型為:
狀態(tài)方程
xk=Ak,k-1xk-1+ωk-1。
(4)
觀測方程
yk=Bkxk+vk,
(5)
式中:xk----歷元k的系統(tǒng)狀態(tài)向量;
xk-1----歷元k-1的系統(tǒng)狀態(tài)向量;
Ak,k-1----歷元k-1 到歷元k的狀態(tài)轉(zhuǎn)移矩陣;
yk----歷元k的觀測量;
Bk----狀態(tài)量和觀測量之間的關(guān)系矩陣;
ωk-1,vk----高斯白噪聲,均值為零,且相互獨立。
EKF濾波過程公式如下:
預測方程

(6)
先驗估計值的協(xié)方差

(7)
濾波增益矩陣

(8)
狀態(tài)更新方程

(9)
協(xié)方差陣更新方程

(10)
粒子群算法是1995年由Eberhart和Kennedy開發(fā)的一種進化優(yōu)化算法,其靈感來自對鳥群覓食行為的研究[11]。粒子群算法用一個隨機的個體群體進行初始化,其中每個個體被稱為具有位置和速度的粒子。當已知粒子群的初始位置和速度值時,種群中粒子的速度和位置通過式(1)和式(2)不斷地迭代更改,進而找到最優(yōu)解。
Vij(t+1)=ωvij(t)+c1*r1j*(Pbest(t)-
Xij(t))+c2*r2j*(Pgbest(t+1)-
Xij(t)),
Xij(t+1)=Xij(t)+Vij(t),
(11)
式中:Vij(t)----第i個粒子第j維上的速度向量;
Xij(t)----第i個粒子在第j維上的位置向量;
Pbest(t)----第i個粒子當前搜索到的最佳位置向量;
Pgbest(t)----種群中迄今為止搜索到的最佳位置向量;
t----當前時間;
c1,c2----粒子的加速度系數(shù);
r1j,r2j----兩個獨立均勻分布的隨機變量,目的是給迭代計算加入隨機性,范圍為[0,1];
ω----進行自適應變化的慣性權(quán)重,表示粒子上一時刻速度對下一時刻運動的影響。

(12)
式中:ωmin----初始權(quán)重;
ωmax----最終權(quán)重;
Tmax----最大迭代數(shù);
t----當前迭代數(shù)。


(13)

N----迭代次數(shù);

PSO算法的運算過程如圖1所示。

圖1 PSO算法流程圖
針對傳統(tǒng)粒子群算法在迭代過程中易過早陷入局部極值點收斂的缺點,提出混沌粒子群算法[13-14],目的是增加粒子變異,擴大算法的迭代范圍,能夠保證粒子可以收斂到全局的最佳位置,減少局部最優(yōu)解的存在[15]?;煦缋碚撌强茖W家在1975年提出的[16],在電路系統(tǒng)、保密通信及工程研究領(lǐng)域都得到了廣泛應用。在混沌粒子群中,粒子具有隨機性和遍歷性,不會重復經(jīng)歷空間內(nèi)全部狀態(tài)?;煦缌W尤核惴朔肆W酉萑刖植繕O值的弱點,提高了優(yōu)化算法效率,得到了最佳優(yōu)化結(jié)果。
混沌點列的生成過程:
1)假設(shè)粒子m維位置向量
xi=(xi1,xi2,…,xim)。
映射向量
yi=(yi1,yi2,…,yim),
其中
式中:ak----xik的上界;
bk----xik的下界。


混沌粒子群算法的執(zhí)行過程如下:
1)設(shè)置卡爾曼濾波算法的狀態(tài)變量和噪聲協(xié)方差的初始值;
2)初始化種群中粒子的位置和速度;
3)通過式(13)得到粒子適應度,確定每個粒子的極值和全局極值;
4)通過式(11)的迭代計算更新粒子的當前位置和速度進行尋優(yōu);


7)更新粒子最優(yōu)值和全局最優(yōu)值,滿足終止條件,則輸出混沌粒子群算法的最優(yōu)解,即最優(yōu)解R、Q。
基于混沌粒子群優(yōu)化EKF 結(jié)構(gòu)如圖 2 所示。

圖2 混沌粒子群優(yōu)化的 EKF 結(jié)構(gòu)
圖中:R----系統(tǒng)協(xié)方差陣;
Q----系統(tǒng)測量噪聲協(xié)方差陣;
xk----輸入值;
zk----測量值。
通過各時刻的目標函數(shù)值和濾波參數(shù)值,以及混沌粒子群算法對系統(tǒng)噪聲R和測量噪聲Q尋找最優(yōu)解,將優(yōu)化后的系統(tǒng)噪聲和測量噪聲代入擴展卡爾曼濾波后的運算過程,再通過式(6)~式(10)可以算出k時刻的最優(yōu)估計濾波值xk。
文中定位解算中使用的是CGCS2000坐標系,對 RINEX文件數(shù)據(jù)進行解算。分別采用粒子群優(yōu)化EKF算法和混沌粒子群優(yōu)化EKF算法對X、Y、Z三個方向進行定位解算,然后再將定位結(jié)果進行對比分析。
誤差對比如圖3所示。

(a) 粒子群優(yōu)化擴展卡爾曼濾波算法

(b) 混沌粒子群優(yōu)化擴展卡爾曼濾波算法圖3 X、Y、Z三個方向的誤差結(jié)果對比
圖3明顯可以看出,混沌粒子群優(yōu)化擴展卡爾曼濾波算法的定位誤差更小,濾波結(jié)果也更加平滑。混沌粒子群優(yōu)化擴展卡爾曼濾波算法的定位解算結(jié)果相較于傳統(tǒng)粒子群優(yōu)化擴展卡爾曼濾波的定位精度有明顯提高,相較于圖3(a)的收斂過程也明顯縮短,實現(xiàn)了更加精確的定位。
粒子群優(yōu)化EKF和混沌粒子群優(yōu)化EKF三個方向的誤差對比結(jié)果見表1。

表1 誤差對比 m
表1可以看出,混沌粒子群優(yōu)化EKF算法的定位精度較傳統(tǒng)粒子群優(yōu)化EKF算法提高約70%,濾波結(jié)果也更加平滑。故混沌粒子群優(yōu)化EKF算法極好地改進了定位誤差。
提出混沌粒子群優(yōu)化擴展卡爾曼濾波定位解算算法,利用混沌粒子群優(yōu)化擴展卡爾曼濾波算法的系統(tǒng)噪聲和測量噪聲來抑制濾波發(fā)散情況,進而提高定位精度。在混沌特性的作用下,粒子算法搜索的遍歷性得到完善。不再局限于幾個局部的最優(yōu)值,而是產(chǎn)生更多的局部最優(yōu)鄰域點,由此對粒子去除局部極值起到關(guān)鍵作用,進而提高精度,保證效率和時效性。
通過 Matlab處理數(shù)據(jù)的實驗結(jié)果表明,混沌粒子群優(yōu)化EKF算法的收斂速度與定位精度均明顯提高。