騫微著,楊立保
(1.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033; 2.中國(guó)科學(xué)院大學(xué),北京100039; 3.長(zhǎng)春理工大學(xué) 機(jī)電工程學(xué)院,吉林 長(zhǎng)春 130022)
光纖陀螺利用光纖的Sagnac 效應(yīng)來(lái)測(cè)量慣性空間的角速率,具有測(cè)量精度高、穩(wěn)定性好、動(dòng)態(tài)范圍大等優(yōu)點(diǎn),目前已被廣泛用于穩(wěn)定平臺(tái)和導(dǎo)航系統(tǒng)中。在光纖陀螺受到外界條件影響后會(huì)產(chǎn)生漂移誤差,影響其測(cè)量精度。因此對(duì)于光纖陀螺誤差補(bǔ)償?shù)难芯拷陙?lái)已經(jīng)成為熱點(diǎn)。目前普遍采用的誤差補(bǔ)償方法有ARMA[1]模型和Kalman算法[2-3]。其中,ARMA是一種線型模型,其假設(shè)誤差為零均值、平穩(wěn)的正態(tài)時(shí)間序列。而Kalman算法要求獲得準(zhǔn)確的噪聲先驗(yàn)統(tǒng)計(jì)信息[4]。這些都影響了這些方法對(duì)誤差的建模精度和補(bǔ)償效果。不同于ARMA模型和Kalman算法,神經(jīng)網(wǎng)絡(luò)是一種基于非參數(shù)辨識(shí)的建模方法。神經(jīng)網(wǎng)絡(luò)在獲得足夠多的信號(hào)樣本后,便可以獲得光纖陀螺的誤差在頻域上的特性。使用足夠多的樣本信號(hào)對(duì)誤差進(jìn)行建模之后,可獲得到光纖陀螺信號(hào)的頻率特征。因此,神經(jīng)網(wǎng)絡(luò)模型具備良好的信號(hào)建模能力。常用的神經(jīng)網(wǎng)絡(luò)有BP(Back Propagation )神經(jīng)網(wǎng)絡(luò)和徑向基(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)[5-6]。BP神經(jīng)網(wǎng)絡(luò)作為一種全局逼近神經(jīng)網(wǎng)絡(luò),一般采用Sigmoid函數(shù)作為激勵(lì)函數(shù)。而Sigmoid函數(shù)是全局激勵(lì)函數(shù),在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中很容易陷入局部極小值[7]。RBF網(wǎng)絡(luò)雖然是一種局部逼近網(wǎng)絡(luò),但是由于采用高斯基函數(shù)作為逼近函數(shù),不能像小波函數(shù)那樣具有尺度縮放的能力,因此難以實(shí)現(xiàn)高精度的逼近效果[8]。Q.Zhang和A.Benvensite提出一種激勵(lì)函數(shù)為小波函數(shù)的小波神經(jīng)網(wǎng)絡(luò)(Wavelet Neural Network,WNN)[9]。由于小波函數(shù)是一種正交的局部逼近函數(shù),且具有在空間平移和縮放的能力,因此其逼近效果要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)。
本文首先使用小波分析中的Mallat算法提取光纖陀螺信號(hào)中趨勢(shì)項(xiàng)后的誤差余項(xiàng)[10],將其作為神經(jīng)網(wǎng)絡(luò)的目標(biāo)輸出,而將光纖陀螺的原始角速率信號(hào)作為學(xué)習(xí)樣本,將與之對(duì)應(yīng)的誤差作為神經(jīng)網(wǎng)絡(luò)的輸出。針對(duì)梯度下降法的不足,使用改進(jìn)后的訓(xùn)練方法訓(xùn)練神經(jīng)網(wǎng)絡(luò)。在建立小波神經(jīng)網(wǎng)絡(luò)模型后,對(duì)其建模準(zhǔn)確性進(jìn)行了檢驗(yàn)。為了驗(yàn)證本文方法對(duì)光纖陀螺誤差補(bǔ)償?shù)挠行?,將最終的補(bǔ)償效果與其他方法進(jìn)行了對(duì)比。
對(duì)光纖陀螺的誤差建模時(shí),需要對(duì)其輸出信號(hào)中的趨勢(shì)項(xiàng)和誤差項(xiàng)進(jìn)行分離。傳統(tǒng)的逐步回歸法把光纖陀螺的趨勢(shì)項(xiàng)分為線型項(xiàng)和周期項(xiàng),線性項(xiàng)用去均值法除去而周期項(xiàng)用周期圖法擬合。這種方法不僅十分繁瑣,而且將趨勢(shì)項(xiàng)簡(jiǎn)單分為線型項(xiàng)和周期項(xiàng),不能準(zhǔn)確識(shí)別信號(hào)的特征[11]。而采用小波分析中基于多尺度分析的Mallat算法,可以將光纖陀螺的信號(hào)在不同尺度下進(jìn)行分解,從而能有效地分離出信號(hào)中有用的低頻分量和高頻噪聲分量。
Mallat分解算法中的小波函數(shù),選擇具有緊支撐和正交特性的Daubechies小波,階數(shù)為6階,其相應(yīng)的尺度函數(shù)和母小波函數(shù)分別為φj,k(t)和ψj,k(t)。若待分析信號(hào)是一個(gè)平方可積函數(shù),f(t)∈L2(R),R為實(shí)數(shù)域。在分辨率為2-j下,信號(hào)小波分解的逼近項(xiàng)Cjf(t)和細(xì)節(jié)項(xiàng)Djf(t)分別可以表示為:
(1)
式中,cj,k為分辨率2-j下的逼近項(xiàng)系數(shù),cj,k=〈f(t),φj,k(t)〉。dj,k為分辨率2-j下的細(xì)節(jié)項(xiàng)系數(shù),dj,k=〈f(t),ψj,k(t)〉。其中,〈·〉表示內(nèi)積運(yùn)算。將分辨率為2-j-1下的逼近項(xiàng)和細(xì)節(jié)項(xiàng)分別表示為Cj+1f(t)和Dj+1f(t)。則Cjf(t)的唯一分解可表示為:
Cjf(t)=Cj+1f(t)+Dj+1f(t) . (2)
因此,根據(jù)式(2)就可以對(duì)信號(hào)在不同尺度下不斷地進(jìn)行分解。信號(hào)在M尺度下分解即可表示為:
C0f(t)=CMf(t)+D1f(t)+D2f(t)…DMf(t) . (3)
根據(jù)式(3),在光纖陀螺信號(hào)小波重構(gòu)時(shí),可以分離出逼近項(xiàng)CMf(t),對(duì)D1f(t),D2f(t)…DMf(t)等細(xì)節(jié)項(xiàng)進(jìn)行單獨(dú)重構(gòu)。這樣便可得到提取出趨勢(shì)項(xiàng)后光纖陀螺信號(hào)的誤差余項(xiàng)。根據(jù)基于多尺度分析原理,隨著分解尺度M不斷增大,獲得的像越粗糙,其表征的漂移主趨勢(shì)就越明顯。因此為了盡可能地分離出趨勢(shì)項(xiàng),可不斷增大M值[12-13]。為了驗(yàn)證在M尺度分解下確實(shí)已提取出了趨勢(shì)項(xiàng),可以對(duì)原始信號(hào)和重構(gòu)信號(hào)的功率譜密度進(jìn)行分析[14]。若在重構(gòu)信號(hào)的功率譜密度中低頻項(xiàng)已經(jīng)完全去除,則可以認(rèn)為趨勢(shì)項(xiàng)已被提取出來(lái),否則繼續(xù)增加M值。
小波變換的基本思想是利用一簇小波函數(shù)來(lái)逼近某一函數(shù)或者信號(hào)。而這一簇小波基函數(shù)ψm,n均由某一個(gè)母小波基函數(shù)ψ經(jīng)過(guò)平移和尺寸伸縮得到的。小波基函數(shù)與母小波函數(shù)的關(guān)系為:
ψm,n=2m/2ψ(2mt-n) , (4)
其中,m,n∈Z。
由于小波函數(shù)的特有性質(zhì),因此在小波神經(jīng)網(wǎng)絡(luò)中,隱藏層節(jié)點(diǎn)的激勵(lì)函數(shù)只在局部范圍內(nèi)影響網(wǎng)絡(luò)的輸出。這在網(wǎng)絡(luò)訓(xùn)練過(guò)程中可以有效避免節(jié)點(diǎn)間相互影響,并且使網(wǎng)絡(luò)具有良好的泛化能力。
圖1 小波神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu) Fig.1 WNN topological structure
圖1中所示的小波神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)與BP神經(jīng)網(wǎng)絡(luò)類似,也是一種前向網(wǎng)絡(luò),其信號(hào)向前傳播而誤差向后傳播。神經(jīng)網(wǎng)絡(luò)的輸入為xn,xn+1…xn+4,因此隱含層輸出可以表示為:
(5)
式中,輸入點(diǎn)個(gè)數(shù)k=5,h(j)為隱含層第j個(gè)節(jié)點(diǎn)的輸出值,wi, j為輸入層和隱含層的連接權(quán)值,aj為小波函數(shù)的尺度因子,bj為小波函數(shù)的平移因子。ψj為小波基函數(shù)。本文選擇的小波基函數(shù)為Morlet小波函數(shù),其表達(dá)式為ψ(x)=e-x2/2·ejω0x,為了使其具有近似支撐性和滿足容許條件[10],取w0=6。設(shè)小波神經(jīng)網(wǎng)絡(luò)的輸出為yn,則小波神經(jīng)網(wǎng)絡(luò)的輸出表達(dá)式為:
(6)
式中,wj為小波神經(jīng)網(wǎng)絡(luò)隱含層到輸出層的權(quán)值。
小波神經(jīng)網(wǎng)絡(luò)輸出誤差e(n)的定義為:
(7)
(8)
為了使目標(biāo)函數(shù)達(dá)到最小值,可以使用共軛梯度法,BFGS法,最陡下降法等[7]。本文使用最陡下降法來(lái)更新權(quán)值wi, j、wj和參數(shù)aj、bj。根據(jù)小波神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)誤差得到各個(gè)神經(jīng)網(wǎng)絡(luò)權(quán)重的調(diào)整值:
(9)
(10)
式中,η2為小波函數(shù)中參數(shù)的學(xué)習(xí)速率。然后根據(jù)式(9)和式(10)得到更新的神經(jīng)網(wǎng)絡(luò)權(quán)值和小波函數(shù)參數(shù):
(11)
由于小波神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)權(quán)值和函數(shù)參數(shù)的訓(xùn)練方法采用了固定學(xué)習(xí)速率的梯度下降法。該方法在學(xué)習(xí)過(guò)程中容易陷入極小值且收斂緩慢[15]。針對(duì)這個(gè)問(wèn)題,可以采用增加動(dòng)量因子避免陷入極小值,同時(shí)采用自適應(yīng)調(diào)整學(xué)習(xí)速率的方法來(lái)加快學(xué)習(xí)速度。
增加動(dòng)量因子方法是在神經(jīng)網(wǎng)絡(luò)權(quán)值和參數(shù)更新時(shí),在計(jì)算公式中分別增加一個(gè)動(dòng)量項(xiàng)。這樣便可以減小神經(jīng)網(wǎng)絡(luò)對(duì)局部極小值的敏感性,防止神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過(guò)程中陷入局部極小值后無(wú)法逃脫。增加動(dòng)量因子后的神經(jīng)網(wǎng)絡(luò)權(quán)值和參數(shù)更新公式為:
(12)
式中,η3為動(dòng)量因子學(xué)習(xí)速率。
自適應(yīng)調(diào)整學(xué)習(xí)速率算法的基本思想是讓學(xué)習(xí)速率隨著訓(xùn)練次數(shù)在線調(diào)整。首先使學(xué)習(xí)速率從一個(gè)較小的值開始,如果在訓(xùn)練過(guò)程中誤差減小,則增加學(xué)習(xí)速率,若在訓(xùn)練過(guò)程中誤差增大則減小學(xué)習(xí)速率。學(xué)習(xí)速率自適應(yīng)調(diào)整公式如下:
(13)
在采集光纖陀螺的原始信號(hào)時(shí),將光纖陀螺放置在一個(gè)恒速率轉(zhuǎn)臺(tái)上,該轉(zhuǎn)臺(tái)的理想輸出角速率為-60(°)/s。光纖陀螺的原始采集信號(hào)及在12尺度下提取的趨勢(shì)項(xiàng)如圖2所示。
圖2 原始采集信號(hào)及主趨勢(shì)項(xiàng) Fig.2 Original acquisition signal and main trend term
從圖2可以看出,在12尺度下提取的趨勢(shì)項(xiàng)在最大程度上分離出了光纖陀螺信號(hào)的低頻分量,從而表征出了陀螺信號(hào)的漂移主趨勢(shì)。
為了驗(yàn)證在該尺度分解下確實(shí)已提取出了趨勢(shì)項(xiàng),可以對(duì)原始信號(hào)和重構(gòu)信號(hào)的功率譜密度進(jìn)行分析,結(jié)果如圖3所示。
圖3 提取趨勢(shì)項(xiàng)前后的功率譜密度 Fig.3 PSDs before and after extracting trend term
在圖3中,圖(a)為分離趨勢(shì)項(xiàng)前的功率譜密度圖,圖(b)為分離趨勢(shì)項(xiàng)后的功率譜密度圖。從兩圖對(duì)比可以看出,原始信號(hào)的低頻分量在經(jīng)過(guò)小波分解重構(gòu)后已被提取出。因此,根據(jù)圖2和圖3可知,在12尺度下分解重構(gòu)后的殘差信號(hào)即為去掉趨勢(shì)項(xiàng)的噪聲信號(hào)。
使用2 500個(gè)光纖陀螺信號(hào)已分離出趨勢(shì)項(xiàng)的誤差余項(xiàng)作為神經(jīng)網(wǎng)絡(luò)的目標(biāo)輸出,并把2 500個(gè)光纖陀螺原始輸出的角速率信號(hào)作為學(xué)習(xí)樣本。使用改進(jìn)后的訓(xùn)練方法訓(xùn)練小波神經(jīng)網(wǎng)絡(luò)200次,得到光纖陀螺誤差的神經(jīng)網(wǎng)絡(luò)模型。訓(xùn)練過(guò)程中累積絕對(duì)誤差變化見(jiàn)圖4。
圖4 小波神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程 Fig.4 WNN training process
圖5 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的不同測(cè)試信號(hào)誤差預(yù)測(cè)值 Fig.5 WNN predication trends of three different test signal errors
圖4所示的結(jié)果表明,使用經(jīng)過(guò)改進(jìn)的訓(xùn)練方法訓(xùn)練后,小波神經(jīng)網(wǎng)絡(luò)在對(duì)光纖陀螺誤差建模過(guò)程中可以迅速收斂。大約在訓(xùn)練100次后即達(dá)到最優(yōu)。
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)束之后,可得到光纖陀螺誤差的模型。為了檢驗(yàn)該神經(jīng)網(wǎng)絡(luò)模型是否準(zhǔn)確,選取1 000個(gè)不同于樣本信號(hào)的測(cè)試信號(hào)對(duì)之前建立的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行驗(yàn)證。為了驗(yàn)證該模型的泛化性能,在其它速率范圍(-30 (°)/s和-90 (°)/s)也分別選取了1 000個(gè)測(cè)試信號(hào)進(jìn)行測(cè)試,結(jié)果見(jiàn)圖5。
從圖5的結(jié)果可以看出,建立的小波神經(jīng)網(wǎng)絡(luò)模型對(duì)不同速率下測(cè)試信號(hào)的誤差均可進(jìn)行準(zhǔn)確估計(jì)。這表明該小波神經(jīng)網(wǎng)絡(luò)模型已經(jīng)獲得了光纖陀螺誤差在頻域上的特性。
從原始信號(hào)中去除神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差,便可以對(duì)光纖陀螺的原始信號(hào)進(jìn)行補(bǔ)償。為了驗(yàn)證本文提出算法的有效性,將光纖陀螺信號(hào)補(bǔ)償前后的功率譜密度進(jìn)行分析,結(jié)果如圖6所示。
圖6 誤差補(bǔ)償前后的功率譜密度 Fig.6 PSDs before and after error compensation
圖6的結(jié)果表明,經(jīng)過(guò)本文方法對(duì)光纖陀螺原始信號(hào)進(jìn)行誤差補(bǔ)償后,信號(hào)的有用低頻信息被保留而高頻的噪聲分量被削弱。
將本文補(bǔ)償方法對(duì)光纖陀螺的原始信號(hào)的補(bǔ)償效果和軟閾值小波濾波算法、Kalman濾波算法的補(bǔ)償效果進(jìn)行對(duì)比。其結(jié)果如圖7所示。
圖7 不同方法對(duì)陀螺的補(bǔ)償精度 Fig.7 Compensation effects for gyro by different methods
從圖7所示的結(jié)果可以看出,相較于Kalman算法和軟閾值小波算法,小波神經(jīng)網(wǎng)絡(luò)補(bǔ)償方法可以更為準(zhǔn)確地對(duì)光纖陀螺誤差進(jìn)行補(bǔ)償,并且補(bǔ)償后的光纖陀螺信號(hào)更為平穩(wěn),更接近光纖陀螺的真實(shí)輸入。各種方法補(bǔ)償后的精度(信號(hào)輸出的標(biāo)準(zhǔn)差)和運(yùn)算耗時(shí)見(jiàn)表1。
表1 不同算法的補(bǔ)償效果
從表1的數(shù)據(jù)可以看出,在算法的運(yùn)算時(shí)間上,本文算法耗時(shí)大于Kalman算法但要小于軟閾值小波算法。而在對(duì)誤差的補(bǔ)償精度上,經(jīng)過(guò)小波神經(jīng)網(wǎng)絡(luò)補(bǔ)償后的光纖陀螺原始信號(hào)的輸出精度要優(yōu)于傳統(tǒng)的Kalman算法和軟閾值小波濾波算法。
針對(duì)光纖陀螺誤差難以準(zhǔn)確補(bǔ)償?shù)膯?wèn)題,提出了一種基于小波神經(jīng)網(wǎng)絡(luò)的補(bǔ)償方法。首先使用了小波分析中的Mallat分解算法,在12尺度下分離出了陀螺噪聲的誤差項(xiàng)和趨勢(shì)項(xiàng),并對(duì)誤差項(xiàng)進(jìn)行了單獨(dú)重構(gòu)。然后對(duì)重構(gòu)信號(hào)使用小波神經(jīng)網(wǎng)絡(luò)進(jìn)行建模和補(bǔ)償。同時(shí)為了提高小波神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率和準(zhǔn)確性,采用了增加動(dòng)量因子和自適應(yīng)調(diào)整學(xué)習(xí)速率的方法,改進(jìn)了小波神經(jīng)網(wǎng)絡(luò)的性能。通過(guò)比較本文算法和Kalman算法及軟閾值小波算法的誤差補(bǔ)償效果發(fā)現(xiàn),光纖陀螺輸出的精度提高到了0.019 4°/s。采用本文方法對(duì)光纖陀螺誤差所建立的神經(jīng)網(wǎng)絡(luò)模型,不僅可以對(duì)誤差進(jìn)行準(zhǔn)確建模并且補(bǔ)償效果也要優(yōu)于其他方法。本文方法對(duì)研究光纖陀螺誤差補(bǔ)償有一定的工程實(shí)用和理論參考價(jià)值。