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