朱震曙,吳盤龍,薄煜明,朱建良
(南京理工大學(xué)自動(dòng)化學(xué)院,南京,210094)
衛(wèi)星導(dǎo)航系統(tǒng)是一種天基無(wú)線電導(dǎo)航系統(tǒng),用戶利用太空中的衛(wèi)星發(fā)射無(wú)電線信號(hào)進(jìn)行定位和導(dǎo)航[1-4]。世界上第一種成熟的衛(wèi)星導(dǎo)航系統(tǒng)就是著名的全球定位系統(tǒng)(Global positioning system,GPS),它能夠?yàn)槿澜绲挠脩籼峁?shí)時(shí)、三維高精度定位信息,深刻地改變了人們的生活。GPS導(dǎo)航系統(tǒng)被廣泛應(yīng)用于軍事、交通運(yùn)輸、航海、手機(jī)定位等領(lǐng)域,已經(jīng)成為現(xiàn)代信息社會(huì)的基礎(chǔ)性技術(shù)[1-4]。
用戶利用導(dǎo)航衛(wèi)星進(jìn)行定位,主要原理和流程如下:第1步,用戶持有衛(wèi)星信號(hào)接收機(jī),接收機(jī)接收衛(wèi)星信號(hào),然后通過(guò)接收的信號(hào)測(cè)量自己和特定衛(wèi)星之間的距離;第2步,當(dāng)接收機(jī)可以獲得超過(guò)4顆衛(wèi)星的距離信息時(shí),就可以獲得自身的位置、速度和時(shí)間信息。在此過(guò)程中,最關(guān)鍵的是衛(wèi)星接收機(jī)對(duì)于導(dǎo)航信號(hào)的處理。一般來(lái)講,接收機(jī)對(duì)于衛(wèi)星信號(hào)的處理主要有3部分[5-8]:(1)信號(hào)捕獲,捕獲輸出衛(wèi)星信號(hào)粗略的多普勒頻移和碼相位值;(2)信號(hào)跟蹤,對(duì)捕獲的粗略多普勒頻移和碼相位值進(jìn)行初始化,然后對(duì)信號(hào)進(jìn)行精細(xì)跟蹤,輸出精確的多普勒頻移值和碼相位值;(3)定位解算,利用信號(hào)跟蹤獲得精確的偽距和偽距率分別計(jì)算自身的速度、位置和時(shí)間信息。
嚴(yán)格意義上講,衛(wèi)星導(dǎo)航接收機(jī)分為兩種架構(gòu),即標(biāo)量跟蹤和矢量跟蹤。標(biāo)量跟蹤如圖1所示,接收機(jī)各個(gè)通道相互獨(dú)立,各自完成信號(hào)的跟蹤,然后每個(gè)通道的信息提供給導(dǎo)航計(jì)算模塊進(jìn)行解算。在這種架構(gòu)下,可以根據(jù)跟蹤環(huán)路的運(yùn)行情況來(lái)判斷每個(gè)通道的運(yùn)行情況,十分方便。但是,由于各個(gè)通道相互獨(dú)立,接收機(jī)缺少足夠的冗余能力。圖2為矢量跟蹤架構(gòu),很明顯在矢量跟蹤架構(gòu)中,所有通道被一個(gè)導(dǎo)航濾波器集中處理然后輸出導(dǎo)航定位信息,同時(shí)導(dǎo)航定位信息還被反饋到信號(hào)跟蹤,這樣充分利用了導(dǎo)航定位信息,形成了信號(hào)跟蹤和導(dǎo)航定位信息估計(jì)之間的一個(gè)內(nèi)部閉環(huán),可以增強(qiáng)接收機(jī)對(duì)微弱信號(hào)的跟蹤性能[9-10]。但是集中處理所有的通道會(huì)帶來(lái)其他的問(wèn)題,即通道之間相互影響,比如某個(gè)通道的衛(wèi)星信號(hào)被遮擋,如果對(duì)該通道不進(jìn)行處理會(huì)影響其他通道的信號(hào)跟蹤和整個(gè)導(dǎo)航濾波器的運(yùn)行[11-12]。由于矢量接收機(jī)中沒(méi)有類似于標(biāo)量跟蹤中的鎖相環(huán)結(jié)構(gòu),信號(hào)跟蹤和導(dǎo)航信息估計(jì)被統(tǒng)一的卡爾曼濾波代替,為了保證矢量接收機(jī)的正常運(yùn)行,每個(gè)通道的故障檢測(cè)或者狀態(tài)監(jiān)測(cè)顯得尤為重要,需要設(shè)計(jì)新的方法來(lái)提升矢量接收機(jī)的性能和魯棒性[13-14]。本文提出一種基于長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的矢量跟蹤通道故障檢測(cè)算法,將導(dǎo)航濾波器中的每個(gè)通道對(duì)應(yīng)的新息序列值作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出為對(duì)應(yīng)通道的運(yùn)行狀態(tài)。然后根據(jù)對(duì)應(yīng)的狀態(tài)判斷是否將該通道納入導(dǎo)航濾波器進(jìn)行導(dǎo)航信息估計(jì),當(dāng)接收機(jī)運(yùn)行良好時(shí)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。最后基于Matlab平臺(tái),設(shè)計(jì)對(duì)應(yīng)的仿真實(shí)驗(yàn)。
圖1 基于標(biāo)量跟蹤的衛(wèi)星導(dǎo)航接收機(jī)Fig.1 Structure of scalar-based tracking loop
圖2 基于矢量跟蹤環(huán)路的衛(wèi)星導(dǎo)航接收機(jī)Fig.2 Structure of vector tracking loop
矢量接收機(jī)結(jié)構(gòu)如圖2所示,這里描述的是一種基于矢量延遲鎖定環(huán)(Vector delay lock loop,VDLL)和矢量鎖頻環(huán)(Vector frequency lock loop,VFLL)的方案[10]。矢量延遲鎖定環(huán)負(fù)責(zé)輸出碼相位跟蹤,矢量鎖頻環(huán)負(fù)責(zé)載波信號(hào)的跟蹤。本模型中,導(dǎo)航濾波器的狀態(tài)變量為位置誤差、速度誤差和時(shí)間信息誤差,狀態(tài)方程如下
式中:Fk,k+1為狀態(tài)轉(zhuǎn)移矩陣;c為真空下光的速度;tb,k和tb,k-1分別為k時(shí)刻和k-1時(shí)刻的接收機(jī)鐘差;td,k和 td,k-1分別為 k時(shí)刻和 k-1時(shí)刻的接收機(jī)鐘漂;δxk、δyk、δzk分別為地心地固坐標(biāo)系下 k時(shí)刻三軸位置誤差;δvx,k、δvy,k、δvz,k分別為 k時(shí)刻地心地固坐標(biāo)系下三軸速度誤差;wk為系統(tǒng)噪聲;δxk-1、δyk-1、δzk-1分別為地心地固坐標(biāo)系下 k-1時(shí)刻三軸位置誤差;δvx,k-1、δvy,k-1、δvz,k-1分別為 k-1時(shí)刻地心地固坐標(biāo)系下三軸速度誤差。
導(dǎo)航濾波器量測(cè)值為碼鑒別器和鑒頻器輸出,具體表示成如下形式
式中:zcode,k為碼鑒別器輸出;zcarrier,k為鑒頻器輸出;hx,hy,hz為接收機(jī)和衛(wèi)星間視線矢量的3個(gè)分量;wcode,k為碼鑒別器噪聲;wcarrier,k為鑒頻器噪聲。
式(3)表示碼鑒別器輸出和位置之間的關(guān)系,式(4)表示鑒頻器輸出和速度之間的關(guān)系,更多計(jì)算細(xì)節(jié)見(jiàn)文獻(xiàn)[9]。
導(dǎo)航濾波器采用的卡爾曼濾波計(jì)算公式如下[12]
定義新息序列計(jì)算如下
長(zhǎng)短期記憶(Long short term memory,LSTM)基本結(jié)構(gòu)如圖3所示,LSTM由3個(gè)基本的“門”結(jié)構(gòu)組成,分別為遺忘門、輸入門和輸出門[15]。各個(gè)門的功能如下:
(1)“遺忘門”用來(lái)決定過(guò)去的信息遺忘程度,輸出對(duì)應(yīng)的權(quán)值,在0~1之間,0代表完全忘記,1代表完全采用,公式如下
式中:ft為遺忘門輸出;Wf、ht-1和bf為神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中需要確定的參數(shù);xt為t時(shí)刻輸入向量。
(2)“輸入門”用來(lái)決定輸入信息對(duì)狀態(tài)的更新程度
式中:σ(·)為激活函數(shù);Wi、WC、bi和bC為訓(xùn)練過(guò)程中需要確定的參數(shù)。
(3)最后一個(gè)部分“輸出門”用來(lái)決定輸出信息
式中:tanh(·)為正切函數(shù);Wo和bo為訓(xùn)練過(guò)程中需要確定的參數(shù);ot為L(zhǎng)STM的輸出。
圖3 長(zhǎng)短期記憶網(wǎng)絡(luò)單元結(jié)構(gòu)圖Fig.3 Structure of LSTM unit
2.1 節(jié)中介紹只是一個(gè)基本的LSTM單元,實(shí)際上LSTM需要構(gòu)成一個(gè)網(wǎng)絡(luò)。本文中,將導(dǎo)航濾波器的新息序列即式(10)作為神經(jīng)網(wǎng)絡(luò)的輸入,具體結(jié)構(gòu)如圖4所示。這里采用的是一種單層長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM-Recurrent neural network,LSTM-RNN)結(jié)構(gòu),圖中新息序列的值構(gòu)成每次的輸入矩陣,輸出為通道運(yùn)行狀態(tài),1表示正常,0表示異常??紤]到計(jì)算量的問(wèn)題,這里采用過(guò)去50個(gè)時(shí)刻的新息序列值,首先在矢量接收機(jī)運(yùn)行良好時(shí)訓(xùn)練LSTM,然后再用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行矢量跟蹤通道故障檢測(cè)。
圖4 長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 Structure of LSTM neural networks
由于矢量接收機(jī)暫時(shí)還沒(méi)有成熟的實(shí)時(shí)系統(tǒng),本實(shí)驗(yàn)中采用的是矢量跟蹤軟件接收機(jī),基于Matlab平臺(tái)開(kāi)發(fā)。矢量跟蹤接收機(jī)運(yùn)行流程如下:
(1)初始化,包括載波頻率、碼頻率、采樣頻率、接收機(jī)運(yùn)行模式、文件路徑、捕獲相關(guān)參數(shù)和信號(hào)跟蹤相關(guān)參數(shù);
(2)標(biāo)量跟蹤,經(jīng)過(guò)信號(hào)捕獲和跟蹤,得到偽距等信息,然后計(jì)算位置和速度信息,同時(shí)保存星歷信息和跟蹤相關(guān)信息供矢量跟蹤接收機(jī)使用;
(3)在標(biāo)量跟蹤運(yùn)行至少36 s之后切換成矢量跟蹤模式,因?yàn)?6 s之后能夠獲得星歷信息和矢量跟蹤初始化需要的信息。矢量跟蹤按照1.1和1.2節(jié)所述的模型進(jìn)行運(yùn)行,輸出導(dǎo)航信息。
實(shí)驗(yàn)中,設(shè)計(jì)了實(shí)驗(yàn)軌跡,然后采用衛(wèi)星信號(hào)濾波器模擬設(shè)計(jì)軌跡的衛(wèi)星信號(hào),采用中頻信號(hào)采集器采集信號(hào),這里信號(hào)的采樣率為16.369 MHz,中頻信號(hào)的頻率為3.996 MHz。實(shí)驗(yàn)軌跡設(shè)計(jì)如圖5所示。
圖5 三維軌跡圖Fig.5 3D trajectory diagram
首先對(duì)LSTM-RNN矢量接收機(jī)通道故障分類正確率進(jìn)行分析,主要是不同的新息序列長(zhǎng)度對(duì)分類正確率的影響。將傳統(tǒng)的支持向量機(jī)(Support vector machine,SVM)方法和LSTM-RNN方法進(jìn)行了對(duì)比。圖6為不同序列長(zhǎng)度下的分類正確率值??梢钥闯鯨STM-RNN具有更好的分類正確率。當(dāng)序列長(zhǎng)度為50時(shí),LSTM-RNN的分類正確率達(dá)到了95%左右。
圖6 兩種方法不同序列長(zhǎng)度的分類正確率Fig.6 Classification accuracy of LSTM-RNN and SVM
本實(shí)驗(yàn)中考慮到矢量跟蹤接收機(jī)和故障檢測(cè)模塊的計(jì)算效率,沒(méi)有完全使用所有的軌跡數(shù)據(jù),完整的軌跡數(shù)據(jù)是6 min左右,由于程序采用Matlab編寫,考慮到運(yùn)行時(shí)間,先進(jìn)行了60 s的標(biāo)量跟蹤,然后進(jìn)行了40 s左右的矢量跟蹤。在矢量接收機(jī)開(kāi)始運(yùn)行之后,衛(wèi)星信號(hào)模擬器人為地關(guān)閉一個(gè)通道的衛(wèi)星信號(hào),這里關(guān)閉的是第4個(gè)通道的衛(wèi)星信號(hào),對(duì)應(yīng)的衛(wèi)星為17號(hào)衛(wèi)星。
圖7和圖8分別給出緯度誤差和經(jīng)度誤差對(duì)比,紅色曲線表示沒(méi)有進(jìn)行故障檢測(cè)和剔除的誤差數(shù)據(jù)。從圖中可以看出,當(dāng)故障出現(xiàn)時(shí),位置誤差瞬間變大,這是由于17號(hào)衛(wèi)星信號(hào)消失,但是仍然將該衛(wèi)星納入導(dǎo)航信息的解算,實(shí)際上該通道都是噪聲數(shù)據(jù),這影響了導(dǎo)航濾波器的運(yùn)行,導(dǎo)致誤差變大;藍(lán)色曲線表示進(jìn)行故障檢測(cè)和剔除之后的誤差數(shù)據(jù),當(dāng)故障發(fā)生時(shí),誤差幾乎不變,對(duì)定位的結(jié)果影響僅限于參與定位的衛(wèi)星少了一顆?,F(xiàn)實(shí)環(huán)境下,部分通道衛(wèi)星存在頻繁、短暫的遮擋,這會(huì)導(dǎo)致矢量接收機(jī)處理起來(lái)比較麻煩,而通道狀態(tài)的檢測(cè)可以有效地應(yīng)對(duì)這種情況。
圖7 緯度位置誤差Fig.7 Latitude position error
圖8 經(jīng)度位置誤差Fig.8 Longitude position error
本文提出了一種利用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的矢量跟蹤通道故障檢測(cè)方法,以矢量跟蹤導(dǎo)航濾波器的新息序列作為神經(jīng)網(wǎng)絡(luò)的輸入向量來(lái)判斷對(duì)應(yīng)的通道是否異常。仿真結(jié)果表明,相對(duì)于傳統(tǒng)的支持向量機(jī),長(zhǎng)短期記憶網(wǎng)絡(luò)具有更高的分類正確率。同時(shí)該方法能夠有效地監(jiān)測(cè)通道運(yùn)行狀態(tài),保證系統(tǒng)的定位精度。實(shí)際應(yīng)用中衛(wèi)星信號(hào)被遮擋會(huì)導(dǎo)致參與導(dǎo)航的衛(wèi)星數(shù)量減少,從而降低導(dǎo)航精度,未來(lái)工作將在少星環(huán)境下研究如何提升矢量接收機(jī)的綜合性能。