?

基于樣條卡爾曼算法的AIS數據修復

2022-02-18 03:11蘇俊杰蘭培真
關鍵詞:卡爾曼樣條卡爾曼濾波

蘇俊杰,蘭培真

(1.集美大學海上交通安全研究所,福建 廈門 361021;2.交通安全應急信息技術國家工程實驗室,福建 廈門 361021)

0 引言

目前,AIS是海事分析的主要數據源,但AIS設備由于性能缺陷、信號干擾和設備故障等因素的影響,導致岸基設施接收到的AIS報文在解碼后通常會存在部分異常數據,而在數據挖掘分析的過程中,低質量的數據往往會帶來巨大的安全隱患[1],因此,亟需開展數據清洗和數據修復工作來提高AIS數據的可用性。

傳統的船舶AIS數據修復主要通過插值法實現,文獻[2]基于線性插值對船舶軌跡數據進行修復,但僅對近似直線運動的軌跡有較好的修復表現,對曲線運動軌跡的修復則存在較大誤差。文獻[3-7]基于多項式插值、三次樣條插值或Hermite插值對船舶軌跡數據進行修復,能獲得較高的修復精度,但修復誤差與AIS數據缺失程度呈正相關。采用插值法修復AIS數據,不同特征變量數據的修復過程是相互獨立的,沒有考慮船位、船速、航向數據之間存在的變化約束,丟失了船舶航行狀態特征數據間的關聯性。文獻[8-9]基于船舶運動學對船舶軌跡數據進行修復,理論上可根據模擬特征變量間的關聯性對船舶軌跡數據進行高精度的修復,但AIS數據不能提供足夠的參數輸入。文獻[10-13]基于最小二乘向量機、隨機森林、K近鄰等機器學習模型對AIS數據進行修復,這些模型雖然能自主學習相似軌跡數據的關聯性,在大量準確完整的船舶歷史航跡數據支撐下,對AIS數據有比較高的修復精度,但實際上很難獲取到準確完整的模型訓練樣本數據。文獻[14-15]基于卡爾曼濾波算法對實時連續變化的系統的動態觀測值進行修復,可穩定有效消除傳感器獲取數據的誤差,但相關算法的實現依賴于完整的動態觀測數據和狀態相關性模型。

本文提出一種樣條卡爾曼算法(spline Kalman,SK),擬更準確地修復AIS數據,并利用廈門港及附近水域的歷史AIS數據驗證算法的有效性。

1 樣條卡爾曼算法

卡爾曼濾波算法的基本框架如圖1所示。

給定ti-1時刻系統的真實值和ti時刻的系統狀態觀測值,即可得到ti時刻系統狀態的真實值,具體步驟描述如下。

步驟1 根據運動學模型,構建系統狀態轉移模型,該模型用于描述系統狀態ti-1時刻至ti時刻的變化趨勢。

可見,卡爾曼濾波算法的基本思路是通過融合當前時刻系統狀態的觀測值和預測值逼近系統的真實狀態值,僅需要系統前一時刻的真實狀態值,不需要其他的歷史數據,占用內存小,運行速度快,適合用于實時連續變化系統的建模,因此,本文基于卡爾曼濾波算法對AIS數據進行修復。

ti時刻的船舶航行狀態Yi可由經度loni、緯度lati、航速vi、航向θi構成的4維特征向量表示,即Yi=(loni,lati,vi,θi),i=1,2,…,n。大多數據修復研究將問題數據集轉化為缺失數據集,再通過插值算法對缺失數據集進行填補,這類方法會導致船舶航行狀態的觀測值存在部分缺失。為方便卡爾曼濾波算法的應用,本文采用局部光滑性較好的分段三次樣條插值法[12]對狀態觀測值進行初步修復,以獲得較為準確的狀態觀測值。

(1)

S3(t)=-Mi[(t-ti+1)3/(6Δti)]+Mi+1[(t-ti)3/(6Δti)]+[xi-

(2)

為求未知數Mi,對S3(t)求導:

(xi+1-xi)/Δti-[(Mi+1-Mi)/6]Δti。

(3)

由此可得:

(4)

同理,在區間[ti-1,ti]可得:

S′(ti-0)=-(Δti-1/6)Mi-1+[(Δti-1)/3]Mi+(xi-xi-1)/Δti-1。

(5)

由式(4)和式(5)可得:μMi-1+2Mi+λiMi+1=di。

其中:μi=-Δti-1/(Δti-1+Δti);λi=Δti/(Δti-1+Δti);di=[6/(Δti-1+Δt)][(xi+1-xi)/Δti)-(xi-xi-1)/Δti-1]=6f[ti-1,ti,ti+1];f[ti-1,ti,ti+1]=[1/(Δti-1+Δti){[(xi+1-xi)/Δti]-[(xi-xi-1)]/Δti-1}。

令式(1)中i=1,式(2)中i=n,則端點方程為:

求得Mi后即可獲得該狀態特征變量x關于時間t的三次樣條擬合函數S3(t),從而可對AIS數據中缺失的狀態值進行初步修復,得到卡爾曼濾波算法的完整狀態觀測數據Zi。由于AIS數據的初步修復只考慮了單個狀態特征的變化趨勢,不足以反映船舶運動特性,因此,本文通過構建船舶航行的狀態轉移模型來模擬狀態特征變化的關聯性,對AIS數據進行二次修復,從而還原船舶的運動特性。為便于計算,將航速分解為經度方向航速vlon=vi×cosθi和緯度方向航速vlati=vi×sinθi,則Yi=(loni,lati,vloni,vlati,θi)。由于AIS播發的時間間隔較短,因此,可認為船舶在經緯度方向近似做勻加速運動,則用ti時刻的船舶航行狀態來預測ti+1時刻的狀態,更新方程為:

其中:F、B、C、D表示相應的矩陣;hlon,hlat分別為單位經度和緯度的實際距離;aloni=(vloni+1-vloni)/Δt;alati=(vlati+1-vlat)/Δt;ωi=(θi+1-θi)/Δt。

預測協方差矩陣為:Pi+1=FPiFT+Q。其中:Pi為ti時刻對應的協方差矩陣,衡量狀態特征間的關聯性,初始協方差矩陣P0設為對角陣,值取6;Q是用來衡量外界干擾的不確定性的過程噪聲,也設為對角陣,取值10-5。

卡爾曼增益矩陣為:Ki+1=Pi+1(Pi+1+R)-1。其中:R是觀測噪聲,用來衡量觀測值的不確定性。

2 檢驗分析

為檢驗本文提出的AIS異常數據修復算法的有效性,對廈門港及其周邊水域船舶歷史AIS數據進行修復,修復步驟如圖2所示。選取航行軌跡較為準確完整的385條船舶的AIS數據作為驗證數據,取AIS原始數據中的MMSI(maritime mobile service identify)、時間、經度、緯度、航速、航向作為觀測數據,以船舶的唯一標識MMSI為一級索引,用以區分不同的船舶軌跡數據,并以時間為二級索引排序觀測數據,對重復的AIS數據,僅保留唯一記錄;根據經驗剔除明顯錯誤數據,保留缺失數據,清洗后的AIS數據如圖3所示。

不同缺失率下5種數據修復算法的誤差如表1所示。數據修復用時如表2所示。

表1 數據缺失的修復誤差

表2 不同缺失率AIS數據修復用時

由表1~表2可知,在10%和20%的數據缺失率下,AIS數據修復以分段三次樣條插值的效果最優,綜合誤差分別為0.092%和0.229%,其次是樣條卡爾曼算法,綜合誤差分別為0.118%和0.243%,表明在低缺失率情況下,樣條卡爾曼算法對AIS數據的修復效果近似于三次樣條插值,優于K近鄰法、隨機森林算法和支持向量機。而在30%、40%和50%的數據缺失率下,AIS數據修復以樣條卡爾曼算法的效果最優,綜合誤差分別為0.579%,1.086%和2.022%,而對比算法的最優綜合誤差分別為0.687%,2.291%和3.425%。從整體上看,樣條卡爾曼算法在不同缺失率情況下對AIS數據的修復效果最好,表明系統狀態轉移方程對狀態變量起到了一定的約束作用。由表2可知,K近鄰法、隨機森林法、支持向量機、三次樣條插值和樣條卡爾曼算法修復不同缺失率情況下的AIS數據的平均用時分別為0.28、1.71、24.13、1.78、1.95 s,除支持向量機算法數據修復效率較低外,其他修復算法修復AIS數據耗時均較小,表明樣條卡爾曼算法能滿足AIS數據修復時效性和和準確性的要求。

不同缺失率下船舶特征數據修復誤差變化曲線如圖4所示。

在低數據缺失率的情況下,5種修復算法對AIS數據均具有較好的修復效果,隨著AIS數據缺失率的不斷增加,5種修復算法的不同狀態變量的修復誤差都呈現上升趨勢,其中,樣條卡爾曼算法的修復穩定性最優,三次樣條插值算法次之,表明樣條卡爾曼算法適用于不同缺失率的AIS數據修復,而K近鄰、隨機森林、支持向量機等機器學習算法對不同狀態變量的修復誤差增長尤其明顯,可見機器學習算法對數據具有很大依賴性,在數據缺失較多的情況下對AIS數據的修復效果不佳。

3 結論

針對AIS數據的修復提出樣條卡爾曼算法,該算法用分段三次樣條插值法得到的初步修復數據,并將該數據作為卡爾曼濾波算法的觀測數據,并考慮動力學原理和誤差干擾因素,建立系統離散狀態方程,約束船舶狀態變化。檢驗結果表明,算法能穩定地對不同缺失率的AIS數據集進行修復,修復效率較高,能為基于AIS數據的相關研究提供相對可靠的數據基礎。由于卡爾曼算法會受到系統離散狀態方程和初次修復算法的影響,因此,在以后的研究中,需要進一步提高狀態觀測數據的修復精度,并建立更為準確的系統離散狀態轉移模型,使得AIS數據的修復更加完整準確。

猜你喜歡
卡爾曼樣條卡爾曼濾波
對流-擴散方程數值解的四次B樣條方法
狀態變換擴展卡爾曼平滑算法在AUV水下航跡修正中的應用
奧登—卡爾曼歌劇腳本《酒神的伴侶》中的“神話方法”
卡爾曼濾波在信號跟蹤系統伺服控制中的應用設計
三次參數樣條在機床高速高精加工中的應用
基于遞推更新卡爾曼濾波的磁偶極子目標跟蹤
三次樣條和二次刪除相輔助的WASD神經網絡與日本人口預測
基于樣條函數的高精度電子秤設計
基于有色噪聲的改進卡爾曼濾波方法
基于卡爾曼算法的動力鋰電池SOC估算
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合