彭雅奇,李沖輝,王倚文,魏武雷,丁柏超,劉仰前
1. 中國(guó)直升機(jī)設(shè)計(jì)研究所 天津直升機(jī)研發(fā)中心,天津 300000 2. 北京理工大學(xué) 宇航學(xué)院,北京 100081
電離層作為空間環(huán)境的重要組成部分,能夠?qū)o線電信號(hào)產(chǎn)生反射、折射以及散射等效應(yīng),使導(dǎo)航信號(hào)的傳播速度和方向發(fā)生改變,從而造成電離層延遲誤差,該誤差是GNSS測(cè)量中的重要誤差源之一[1-3]。改正電離層延遲可以采用雙頻或多頻組合來進(jìn)行消除,而在單頻接收機(jī)用戶中,Klobuchar電離層模型以其復(fù)雜程度小、方便利用的優(yōu)點(diǎn)得到廣泛應(yīng)用[4-6]。該模型利用8個(gè)基本參數(shù)直觀簡(jiǎn)潔地反映了電離層的變化特性,也充分考慮了其周期和振幅的變化,可在實(shí)際應(yīng)用中進(jìn)行快速電離層誤差改正[7-8]。
然而,8參數(shù)Klobuchar電離層模型的改正精度不高,通常僅能達(dá)到60%左右,不能滿足日益增長(zhǎng)的精度需求[9-10]。許多研究學(xué)者從不同方面對(duì)該模型提出過改進(jìn),劉宸等[11]提出在原模型8參數(shù)的基礎(chǔ)上增加5個(gè)關(guān)鍵參數(shù),采用松弛迭代與直線搜索中的黃金分割相結(jié)合的算法,構(gòu)建區(qū)域改進(jìn)模型,將改正精度提升至77.51%;章紅平[12]提出14參數(shù)的Klobuchar模型,用增加的6個(gè)參數(shù)描述初始相位及夜間平場(chǎng)的變化,使得中國(guó)區(qū)域的電離層改正精度得到提高。蔡成輝等[13]通過采用最小二乘擬合對(duì)初始相位和振幅進(jìn)行改正,建立了適用于小區(qū)域的Klobuchar電離層延遲改正模型。文獻(xiàn)[14]在不增加參數(shù)的前提下,為了更準(zhǔn)確描述極地地區(qū)的電離層變化,基于夜間項(xiàng)和余弦項(xiàng)的振幅進(jìn)行改進(jìn),針對(duì)單頻GNSS用戶建立了修正Klobuchar模型。國(guó)內(nèi)外大部分研究成果雖然從各方面對(duì)模型進(jìn)行改進(jìn)并取得較好的改正效果,但仍存在對(duì)電離層整體改正率不高,不足以反映夜間電離層變化等不足。
本文通過對(duì)比iGMAS的高精度電離層格網(wǎng)數(shù)據(jù),對(duì)Klobuchar電離層誤差進(jìn)行了基于全局和基于時(shí)間序列的誤差分析。結(jié)果發(fā)現(xiàn),盡管Klobuchar模型相對(duì)比較粗糙,但是在中緯度區(qū)域,模型誤差卻呈現(xiàn)出一定的周期性特征?;诖吮疚睦昧W尤簝?yōu)化(particle swarm optimization, PSO)結(jié)合反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural network, BPNN),建立PSO-BPNN的電離層誤差預(yù)測(cè)模型,通過對(duì)誤差數(shù)據(jù)的訓(xùn)練學(xué)習(xí),掌握輸入輸出間的非線性映射關(guān)系,對(duì)中緯度Klobuchar電離層模型誤差進(jìn)行預(yù)測(cè)和補(bǔ)償,從而提高該區(qū)域Klobuchar電離層模型的精度。
在GPS所采用的Klobuchar模型中,用余弦函數(shù)擬合白天的時(shí)延變化,將每天電離層的最大延遲固定在下午兩點(diǎn)(本地時(shí)間),夜間電離層天頂時(shí)延被視作一個(gè)5 ns的常量,轉(zhuǎn)換成電離層總電子含量(total electron content,TEC)則為9.23 TECU(1 TECU=1016個(gè)電子每平方米),Klobuchar模型利用8個(gè)模型參數(shù)和電離層穿刺點(diǎn)處的地磁緯度進(jìn)行計(jì)算,并通過映射函數(shù)轉(zhuǎn)換為傳播路徑上的電離層延遲,具體模型可參考文獻(xiàn)[15],此處不再贅述。
iGMAS能夠?qū)NSS系統(tǒng)服務(wù)性能(定位精度、連續(xù)性、可靠性等)進(jìn)行監(jiān)測(cè)評(píng)估,并生成高精度精密星歷、衛(wèi)星鐘差和全球電離層TEC格網(wǎng)等產(chǎn)品,在這些核心產(chǎn)品中,全球電離層TEC格網(wǎng)已經(jīng)成為研究電離層延遲改正的重要基礎(chǔ)數(shù)據(jù)。
iGMAS導(dǎo)航數(shù)據(jù)分析中心綜合GPS全球網(wǎng)選出250個(gè)適于解算電離層的測(cè)站,將每天的TEC變化按每2 h的時(shí)間間隔,全天共反演生成12張全球電離層TEC地圖產(chǎn)品,其沿緯度和經(jīng)度方向的數(shù)據(jù)點(diǎn)間隔分別為2.5°和5°,最后以IONEX(ionospheric map exchange,IONEX)格式對(duì)外發(fā)布[16]。根據(jù)iGMAS官方數(shù)據(jù)顯示最終電離層TEC格網(wǎng)數(shù)據(jù)精度在2~8 TECU,精度在90%以上,因此本文將其視為電離層TEC真值,在此基礎(chǔ)上進(jìn)行誤差分析。
對(duì)于任意時(shí)刻穿刺點(diǎn)的TEC的求解,可以采用雙線性內(nèi)插的方法,在對(duì)時(shí)間、經(jīng)度和緯度進(jìn)行內(nèi)插后,就可獲得某時(shí)某地的TEC數(shù)據(jù),對(duì)應(yīng)的垂直方向電離層路徑延遲為:
(1)
式中:f為對(duì)應(yīng)的系統(tǒng)工作頻率。
本文的Klobuchar模型參數(shù)從武漢大學(xué)IGS數(shù)據(jù)中心下載的廣播星歷頭文件中提取。為了簡(jiǎn)化問題和方便數(shù)據(jù)提取,本文主要對(duì)穿刺點(diǎn)垂直方向上的電離層誤差進(jìn)行分析,傳播路徑上的電離層延遲可通過映射函數(shù)進(jìn)行轉(zhuǎn)換。
對(duì)比分析2019年10月1日10時(shí)的Klobuchar電離層誤差,首先根據(jù)iGMAS給出的高精度電離層格網(wǎng)數(shù)據(jù)繪制出該時(shí)刻的全球電離層圖(global ionosphere maps, GIM),由于GIM圖的單位為TECU ,為了進(jìn)行誤差分析,需將單位進(jìn)行統(tǒng)一,根據(jù)式(1)可將其轉(zhuǎn)換為穿刺點(diǎn)垂直方向路徑延遲(單位為cm),本文將其視為真實(shí)電離層延遲,如圖1所示。
圖1 真實(shí)電離層延遲Fig.1 True ionospheric delay
圖2 基于全局的Klobuchar電離層延遲誤差分析Fig.2 Error analysis of global Klobuchar ionospheric delay
以L1信號(hào)為例,fL1=1 575.42 MHz,如圖2所示,計(jì)算同一時(shí)刻的Klobuchar電離層路徑延遲誤差。可以看出,Klobuchar模型相對(duì)比較粗糙,與真實(shí)延遲相比僅能大致擬合電離層的分布,在電離層延遲峰值附近仍然存在不小的誤差。
圖3 基于時(shí)間序列的Klobuchar電離層延遲誤差分析Fig.3 Error analysis of Klobuchar ionospheric delay based on time series
在基于時(shí)間序列的縱向誤差分析中,分別選取電離層相對(duì)活躍年份(2016年)和相對(duì)平穩(wěn)年份(2019年)進(jìn)行一周內(nèi)的誤差分析,由于高緯度極地地區(qū)電離層延遲相對(duì)較小,而其變化又很無常,導(dǎo)致Klobuchar電離層在此區(qū)域的適用度較低,因此本文著重分析低緯度和中緯度的誤差變化特性,結(jié)果如圖3所示。可以看出,活躍年份的電離層延遲比平穩(wěn)年份的要大,但共同點(diǎn)是Klobuchar模型計(jì)算的電離層延遲與真實(shí)延遲都存在不小的誤差,同時(shí)也能夠發(fā)現(xiàn)在中緯度電離層誤差的變化比較規(guī)律,存在以天為頻率的周期性變化特征,尤其在平穩(wěn)年份更加明顯。
BPNN屬于人工神經(jīng)網(wǎng)絡(luò)的一種,以其良好的非線性表達(dá)和學(xué)習(xí)能力,受到較多工程領(lǐng)域人員的青睞,它是一種包含多層網(wǎng)絡(luò)(輸入層、隱層、輸出層)的逆推學(xué)習(xí)算法[17],其結(jié)構(gòu)如圖4所示。
圖4 BPNN模型結(jié)構(gòu)Fig.4 BPNN model structure diagram
ωij和ωjk為網(wǎng)絡(luò)權(quán)值,利用實(shí)際輸出與期望輸出的差值來調(diào)整網(wǎng)絡(luò)連接權(quán)值,通過大樣本的數(shù)據(jù)進(jìn)行訓(xùn)練學(xué)習(xí),使得網(wǎng)絡(luò)權(quán)值不斷優(yōu)化,誤差也不斷減小。
標(biāo)準(zhǔn)BPNN模型對(duì)于網(wǎng)絡(luò)初始參數(shù)(如權(quán)值、閾值、學(xué)習(xí)速率等)的設(shè)置較為敏感,同時(shí)也比較容易陷入局部極小值。PSO算法能夠較好地克服BPNN模型的缺點(diǎn),可以基于種群信息在全局范圍內(nèi)尋找最優(yōu)解,在BPNN模型優(yōu)化方面已經(jīng)得到了非常成熟的應(yīng)用[18-19],因此本文也將基于PSO-BPNN構(gòu)建Klobuchar電離層誤差預(yù)測(cè)模型,具體過程如下:
1)獲取樣本數(shù)據(jù)集并進(jìn)行數(shù)據(jù)預(yù)處理。通過Klobuchar電離層模型計(jì)算所得延遲數(shù)據(jù)與iGMAS高精度電離層產(chǎn)品進(jìn)行對(duì)照,得到Klobuchar模型誤差。需要注意不同參數(shù)的量綱往往不同,因此為了消除參數(shù)量綱對(duì)結(jié)果的影響,需要進(jìn)行歸一化預(yù)處理,將各參數(shù)統(tǒng)一至同一數(shù)量級(jí)。
2)確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及輸入輸出。模型輸入?yún)?shù)為電離層穿刺點(diǎn)處的位置參數(shù)(經(jīng)度、緯度)以及時(shí)間參數(shù)(周內(nèi)秒、小時(shí)數(shù)),輸出層對(duì)應(yīng)Klobuchar電離層模型誤差,故輸入層節(jié)點(diǎn)數(shù)m為4,輸出層節(jié)點(diǎn)數(shù)n為1,隱層節(jié)點(diǎn)數(shù)l可通過經(jīng)驗(yàn)公式來確定:
(2)
式中:a為1~10之間的整數(shù),可根據(jù)實(shí)際進(jìn)行調(diào)整。
3)初始化粒子群及粒子個(gè)體的位置和速度。每個(gè)粒子的位置表示為Xi=(xi1,xi2,…,xid)T,速度表示為Vi=(vi1,vi2,…,vid)T,其中d=ml+ln+l+n,為粒子群個(gè)體搜索的空間維數(shù)。
4)計(jì)算粒子適應(yīng)度函數(shù)。表達(dá)式為:
(3)
式中:M表示訓(xùn)練樣本個(gè)數(shù);Ti為系統(tǒng)的期望輸出值;Pi為系統(tǒng)的預(yù)測(cè)輸出值。根據(jù)適應(yīng)度函數(shù)評(píng)價(jià)粒子的優(yōu)劣程度,以此來更新個(gè)體最優(yōu)值和全局最優(yōu)值,將個(gè)體粒子搜索到的最優(yōu)位置記為Pbest,整個(gè)粒子群搜索到的最優(yōu)位置記為Gbest。
5)更新粒子位置速度。通過不斷更新迭代個(gè)體最優(yōu)值和全局最優(yōu)值來引導(dǎo)粒子群進(jìn)行空間搜索,進(jìn)行粒子位置和速度更新:
(4)
Xt+1=Xt+Vt+1
(5)
式中:w為慣性權(quán)重;t為算法當(dāng)前的迭代次數(shù);c1和c2為學(xué)習(xí)因子;r1和r2為[0,1]之間的隨機(jī)數(shù)。
6)迭代計(jì)算輸出最優(yōu)粒子。PSO算法的迭代終止條件為達(dá)到預(yù)設(shè)精度或最大迭代次數(shù),滿足終止條件時(shí)便可將最優(yōu)粒子映射到BPNN的權(quán)值和閾值。
7)神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練。根據(jù)樣本數(shù)據(jù)集訓(xùn)練BPNN,得到PSO-BPNN電離層誤差預(yù)測(cè)模型。
整個(gè)模型流程如圖5所示。
圖5 PSO-BPNN模型流程Fig.5 PSO-BPNN model flow chart
應(yīng)用PSO-BPNN模型可以對(duì)Klobuchar電離層誤差進(jìn)行預(yù)測(cè),本文選用2019年10月1日起25天的數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后預(yù)測(cè)之后10天的電離層誤差。為增強(qiáng)BP算法的數(shù)據(jù)表征能力,隱層激勵(lì)函數(shù)選擇雙曲正切函數(shù)tansig,而輸出層應(yīng)具有較大的變化范圍,故激勵(lì)函數(shù)選擇線性傳輸函數(shù)purelin,設(shè)定學(xué)習(xí)速率為0.01,最大訓(xùn)練次數(shù)為500次;PSO種群規(guī)模為100,迭代次數(shù)為50,慣性權(quán)重為0.9,學(xué)習(xí)因子c1=c2=2,預(yù)設(shè)誤差為0.01。本文在全球范圍內(nèi)選取4個(gè)中緯度穿刺點(diǎn)為例進(jìn)行誤差預(yù)測(cè),坐標(biāo)分別為P1(30°(N),100°(W)),P2(45°(N),110°(E)),P3(40°(S),70°(W)),P4(25°(S),135°(E)),如圖6中標(biāo)記所示。
利用MATLAB對(duì)模型進(jìn)行仿真,結(jié)果如圖7所示,從圖中可以看出,利用PSO-BPNN電離層誤差預(yù)測(cè)模型可以預(yù)測(cè)Klobuchar模型誤差的大致趨勢(shì),將兩者作差后得到的預(yù)測(cè)偏差處于一個(gè)相對(duì)較低的水平,證明了該模型對(duì)于中緯度電離層誤差預(yù)測(cè)是有效的。
但是隨著時(shí)間的推移,每天Klobuchar模型誤差變化的峰值會(huì)存在波動(dòng),波動(dòng)大的時(shí)候,誤差預(yù)測(cè)模型并不能很好的進(jìn)行跟隨,其預(yù)測(cè)精度就會(huì)下降,不過整體上仍然可以減小Klobuchar模型的誤差。
圖6 試驗(yàn)點(diǎn)選取分布Fig.6 Distribution map of test points selection
圖7 試驗(yàn)點(diǎn)的模型預(yù)測(cè)偏差Fig.7 Prediction bias of test points
將PSO-BPNN電離層誤差預(yù)測(cè)模型的預(yù)測(cè)值補(bǔ)償進(jìn)Klobuchar模型中,即可提高模型的改正精度。通過計(jì)算本文模型的預(yù)測(cè)偏差均值,與Klobuchar模型誤差均值作比較,如表1所示。可以看出,在中緯度地區(qū),利用Klobuchar模型計(jì)算電離層延遲僅能將誤差改正為原來的60%左右,仍然存在較大誤差,而利用PSO-BPNN模型補(bǔ)償后可將電離層延遲誤差改正為原來的90%左右,平均精度可提高30%左右。
表1 PSO-BPNN模型預(yù)測(cè)精度提升情況
事實(shí)上,電離層延遲受到的影響因素非常多,除了地理因素和時(shí)間因素,其他因素,如地磁變化、太陽黑子耀斑、地球運(yùn)動(dòng)等,都會(huì)對(duì)其產(chǎn)生影響,隨著對(duì)這些物理現(xiàn)象的研究,可以將相關(guān)的影響參數(shù)也加進(jìn)模型的輸入?yún)?shù)進(jìn)行訓(xùn)練,從而進(jìn)一步提高模型精度,這將是筆者下一步的研究方向。
針對(duì)Klobuchar電離層延遲模型改正精度有限,導(dǎo)致該模型不能有效反映電離層的真實(shí)狀況,無法適應(yīng)高精度導(dǎo)航需求的問題,本文通過計(jì)算和分析Klobuchar電離層模型歷史誤差數(shù)據(jù),發(fā)現(xiàn)在中緯度地區(qū)存在的規(guī)律,然后利用粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型對(duì)誤差數(shù)據(jù)進(jìn)行預(yù)測(cè)。結(jié)論如下:
1)通過以iGMAS高精度電離層產(chǎn)品數(shù)據(jù)作為參照,計(jì)算Klobuchar電離層模型誤差。分析結(jié)果顯示,中緯度電離層誤差存在以天為頻率的周期性特征,但這種特征目前無法用確定的數(shù)學(xué)模型來表示和消除。
2)基于神經(jīng)網(wǎng)絡(luò)建模工具,構(gòu)建了PSO-BPNN電離層誤差預(yù)測(cè)模型,利用訓(xùn)練后的模型對(duì)電離層誤差進(jìn)行預(yù)測(cè)。結(jié)果顯示,該模型對(duì)中緯度Klobuchar電離層誤差具有較好的擬合能力和預(yù)測(cè)效果。
3)應(yīng)用預(yù)測(cè)模型對(duì)中緯度Klobuchar電離層延遲的解算結(jié)果進(jìn)行補(bǔ)償,在模型改正精度上可以提高30%左右。
4)由于電離層延遲的影響因素比較復(fù)雜,除了地理和時(shí)間因素,其他相關(guān)因素對(duì)模型精度的影響有待進(jìn)一步研究。
綜上,本文對(duì)于提高中緯度Klobuchar電離層模型精度,減小該區(qū)域?qū)Ш叫盘?hào)的傳播誤差具有一定參考意義。