謝 雁,汪 偉,黨 博,張 營,安 岑
(西安石油大學(xué),西安 710065)
流體輸送管道在工程領(lǐng)域應(yīng)用廣泛。為保證管道的正常運行,需要定期對在役管道進行損傷檢測。管道內(nèi)檢測技術(shù)作為管道損傷檢測的關(guān)鍵技術(shù)之一,為管道維護和管道完整性評價提供了重要參考[1-2]。在進行管道損傷檢測作業(yè)時,需要對管道損傷位置進行實時定位,并且當(dāng)內(nèi)檢測器在作業(yè)過程中遇到卡堵等故障時能夠得到及時處理。解決上述問題的關(guān)鍵在于能夠?qū)ぷ髦械膬?nèi)檢測器進行有效地跟蹤、定位。
國內(nèi)外對管道內(nèi)檢測器的定位技術(shù)已經(jīng)進行了大量的研究[3-8]。里程輪定位法是一種行之有效的定位方法,在管道內(nèi)檢測器定位方面得到廣泛應(yīng)用。在此基礎(chǔ)上,融合多傳感器定位技術(shù),增加地面標記器,可以有效地提高管道內(nèi)檢測器跟蹤定位的準確性。里程輪是安裝在管道內(nèi)檢測器上用來記錄里程的主要裝置之一,其數(shù)據(jù)的準確性對管道內(nèi)檢測定位信息具有重要的影響[9-11]。
管道內(nèi)檢測器利用管輸介質(zhì)驅(qū)動檢測器在管道內(nèi)運行,實時檢測和記錄管道的變形、腐蝕等損傷情況,并準確定位。里程輪裝置安裝在管道內(nèi)檢測器的尾部,當(dāng)內(nèi)檢測器在管道中前進時,里程輪在彈簧預(yù)緊力的作用下緊貼管壁轉(zhuǎn)動,將內(nèi)檢測器在管道中的軸向運動轉(zhuǎn)換為里程輪的轉(zhuǎn)動,使用傳感器記錄里程輪轉(zhuǎn)動的圈數(shù),將該圈數(shù)數(shù)據(jù)轉(zhuǎn)換為內(nèi)檢測器在管道中的行進距離。里程輪定位原理如圖1所示。
圖1 管道內(nèi)檢測器結(jié)構(gòu)及里程輪定位原理
在里程輪定位方法中,將里程輪和編碼器同軸連接,里程輪每轉(zhuǎn)動1圈,就會輸出固定數(shù)量的脈沖。通過編碼器記錄脈沖數(shù)和里程輪的周長,可以得到內(nèi)檢測器在管道中的行進距離和速度等位置信息。為了提高里程輪定位的準確性和減小偶然性因素的影響,一般會在檢測器上沿周向均勻安裝多個里程輪來進行定位。理想情況下,里程輪的轉(zhuǎn)動距離即為內(nèi)檢測器在管道中的行進距離。實際中,里程輪受管道內(nèi)結(jié)蠟、油污、缺陷、焊縫等因素的影響,容易出現(xiàn)打滑等現(xiàn)象,導(dǎo)致里程輪數(shù)據(jù)存在測量誤差,需要對其進行預(yù)處理。
管道內(nèi)檢測器在管道中工作時,里程輪數(shù)據(jù)會受到管道環(huán)境中隨機因素的影響而存在隨機誤差。因此,可以從數(shù)學(xué)統(tǒng)計的角度出發(fā)對其數(shù)據(jù)進行處理,從而得到系統(tǒng)的最優(yōu)估計??柭鼮V波算法提供了一種比較高效的、可用于計算的遞歸方法來實現(xiàn)對過程狀態(tài)的估計,并且使得估計均方誤差最小,可以有效地減小數(shù)據(jù)中隨機誤差的影響,適合里程輪定位數(shù)據(jù)的預(yù)處理??柭鼮V波是一種最優(yōu)估計理論,其算法在時間域內(nèi),根據(jù)系統(tǒng)的觀測數(shù)據(jù),利用線性系統(tǒng)狀態(tài)方程對系統(tǒng)狀態(tài)進行最優(yōu)估計。
卡爾曼濾波算法的思想是首先根據(jù)被測對象數(shù)學(xué)模型,以k-1時刻的最優(yōu)估計X(k-1|k-1)為準,預(yù)測k時刻的狀態(tài)變量X(k|k-1),同時又對該狀態(tài)進行觀測,得到k時刻的觀測量Z(k),根據(jù)Z(k)對預(yù)測狀態(tài)進行修正,得到k時刻的最優(yōu)估算值X(k|k)。
基于卡爾曼濾波的管道內(nèi)檢測器里程輪定位數(shù)據(jù)預(yù)處理算法設(shè)計思想:通過一段時間間隔,計算這段時間間隔內(nèi)的位移增量ΔS,將位移增量ΔS作為系統(tǒng)的測量值輸入到卡爾曼濾波器,輸出為系統(tǒng)狀態(tài)的最優(yōu)估計值。所以,可以將光電編碼器檢測位移過程描述為一個離散時間的隨機過程,且測量過程中,過程噪聲和測量噪聲為互不相干的高斯白噪聲,滿足卡爾曼濾波的數(shù)學(xué)要求??柭鼮V波的基本思路如圖2所示。
圖2 卡爾曼濾波的基本思路
基于卡爾曼濾波的里程輪定位數(shù)據(jù)預(yù)處理算法數(shù)學(xué)建模過程如下。
狀態(tài)方程:
X(k)=AX(k-1)+BU(k)+W(k)
(1)
X(k)=X(k-1)+W(k)
(2)
觀測方程:
Z(k)=HX(k)+V(k)
(3)
Z(k)=X(k)+V(k)
(4)
式中:X(k)是k時刻的系統(tǒng)狀態(tài);U(k)是k時刻對系統(tǒng)的控制量,這里不考慮系統(tǒng)的控制作用,U(k)=0;A和B是系統(tǒng)參數(shù)矩陣,系統(tǒng)的狀態(tài)不隨時間變化,所以這里A=1;H是測量系統(tǒng)參數(shù)矩陣,包含噪聲的觀測量是狀態(tài)變量的直接體現(xiàn),所以這里H=1;Z(k)是時刻的觀測值;W(k)和V(k)分別表示過程噪聲和測量噪聲,它們是高斯白噪聲,協(xié)方差是Q和R。
根據(jù)第k-1時刻狀態(tài)的最優(yōu)結(jié)果X(k-1|k-1)預(yù)測第k時刻的狀態(tài)X(k|k-1):
X(k|k-1)=AX(k-1|k-1)+BU(k)
(5)
X(k|k-1)=X(k-1|k-1)
(6)
根據(jù)第k-1時刻的誤差協(xié)方差P(k-1|k-1)估計第k時刻的誤差協(xié)方差P(k|k-1):
P(k|k-1)=AP(k-1|k-1)AT+Q
(7)
P(k|k-1)=P(k-1|k-1)+Q
(8)
式中:P(k|k-1)是X(k|k-1)對應(yīng)的誤差協(xié)方差;P(k-1|k-1)是X(k-1|k-1)對應(yīng)的誤差協(xié)方差。
計算卡爾曼增益Kg:
Kg=P(k|k-1)HT(HP(k|k-1)HT+R)-1
(9)
Kg=P(k|k-1)(P(k|k-1)+R)-1
(10)
計算系統(tǒng)k時刻的最優(yōu)估計值X(k|k):
X(k|k)=X(k|k-1)+Kg(Z(k)-HX(k|k-1))
(11)
X(k|k)=X(k|k-1)+Kg(Z(k)-X(k|k-1))
(12)
計算系統(tǒng)k時刻的誤差協(xié)方差P(k|k):
P(k|k)=(I-Kg·H)P(k|k-1)
(13)
P(k|k)=(I-Kg)P(k|k-1)
(14)
卡爾曼濾波算法作為一種最優(yōu)化自回歸數(shù)據(jù)處理算法,其算法可以分為2個部分:時間更新方程和測量更新方程。時間更新方程根據(jù)被測對象的數(shù)學(xué)模型,按照前一時刻最佳估計來預(yù)測當(dāng)前時刻的狀態(tài)估計;測量更新方程根據(jù)當(dāng)前時刻觀測結(jié)果,對預(yù)測狀態(tài)進行修正,得到當(dāng)前狀態(tài)的最佳估計。
根據(jù)卡爾曼濾波算法流程編寫程序進行試驗。在試驗過程中,選擇100個測量值,驗證算法的性能??柭鼮V波算法試驗結(jié)果如圖3所示。
圖3 卡爾曼濾波算法試驗結(jié)果
可以看到,相對于直接取用傳感器的觀測結(jié)果作為目標狀態(tài)的值而言,通過卡爾曼濾波后獲得的狀態(tài)最優(yōu)估計值要更加準確,狀態(tài)波動小,較為穩(wěn)定,更符合實際中管道內(nèi)檢測器的運行過程。
相對誤差如圖4所示。在本次試驗中,直接觀測結(jié)果與真實值之間的相對誤差在8%以內(nèi),通過卡爾曼濾波算法確定的值與真實值之間的相對誤差最大控制在2%以內(nèi),并且算法在迭代多次以后,算法趨于收斂,相對誤差基本控制在1%以內(nèi),可見應(yīng)用卡爾曼濾波算法處理過的里程輪數(shù)據(jù)其準確度更高。
圖4 相對誤差
卡爾曼濾波算法在進行濾波時,也會產(chǎn)生誤差,其誤差主要包括:
1)模型誤差。
在進行卡爾曼濾波時,由于對系統(tǒng)的特性了解不全面,使得所建立的數(shù)學(xué)模型不能充分地反映系統(tǒng)的動態(tài)特性,因此所建立的模型與實際不符,導(dǎo)致模型誤差。
2)過程噪聲協(xié)方差和測量噪聲協(xié)方差取值造成的誤差。
在進行卡爾曼濾波時,需要對過程噪聲協(xié)方差和測量噪聲協(xié)方差進行取值。從理論上來看,通過對整個系統(tǒng)過程的觀測是可以得到準確的測量噪聲協(xié)方差的值。由于沒有辦法直接對過程狀態(tài)進行觀測,所以無法得到準確的過程噪聲協(xié)方差的值,有時只能通過選擇給系統(tǒng)引入一定的不確定性,從而建立1個簡單的過程模型而產(chǎn)生可以接受的結(jié)果。通過對以上2種情況的描述可以看出,在沒有1個合理的標準來選擇系數(shù)的情況下,可以通過調(diào)整濾波器的系數(shù)來調(diào)整系統(tǒng)的整個性能。
3)線性擬合誤差。
在進行卡爾曼濾波時,需要所研究的對象是1個線性系統(tǒng),但在實際中這樣的系統(tǒng)往往難找。因此,一般都是通過對所研究系統(tǒng)進行線性擬合得到。由于線性擬合具有不確定性,會使卡爾曼濾波算法產(chǎn)生線性擬合誤差。
4)其他誤差。
在進行卡爾曼濾波時,計算機的舍入誤差,離散化引入誤差,如果有輸入的話,輸入的誤差也會影響濾波的結(jié)果。
本文研究的是基于卡爾曼濾波的里程輪定位數(shù)據(jù)預(yù)處理算法,根據(jù)里程輪定位數(shù)據(jù)誤差,對里程輪運動狀態(tài)進行建模,通過仿真試驗,應(yīng)用卡爾曼濾波算法進行里程輪數(shù)據(jù)預(yù)處理。仿真結(jié)果表明,該算法能較好地對里程輪數(shù)據(jù)進行預(yù)處理,抑制噪聲干擾,提高里程輪數(shù)據(jù)的準確性,對管道內(nèi)檢測器準確定位具有重要作用。本次試驗是仿真試驗,測試數(shù)據(jù)不能完全代替實際數(shù)據(jù)。未來考慮更加符合實際管道環(huán)境,同時融合其它傳感器信息,獲得最佳估計算法。