骞微著,杨立保
(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033; 2.中国科学院大学,北京100039; 3.长春理工大学 机电工程学院,吉林 长春 130022)
光纤陀螺利用光纤的Sagnac 效应来测量惯性空间的角速率,具有测量精度高、稳定性好、动态范围大等优点,目前已被广泛用于稳定平台和导航系统中。在光纤陀螺受到外界条件影响后会产生漂移误差,影响其测量精度。因此对于光纤陀螺误差补偿的研究近年来已经成为热点。目前普遍采用的误差补偿方法有ARMA[1]模型和Kalman算法[2-3]。其中,ARMA是一种线型模型,其假设误差为零均值、平稳的正态时间序列。而Kalman算法要求获得准确的噪声先验统计信息[4]。这些都影响了这些方法对误差的建模精度和补偿效果。不同于ARMA模型和Kalman算法,神经网络是一种基于非参数辨识的建模方法。神经网络在获得足够多的信号样本后,便可以获得光纤陀螺的误差在频域上的特性。使用足够多的样本信号对误差进行建模之后,可获得到光纤陀螺信号的频率特征。因此,神经网络模型具备良好的信号建模能力。常用的神经网络有BP(Back Propagation )神经网络和径向基(Radial Basis Function,RBF)神经网络[5-6]。BP神经网络作为一种全局逼近神经网络,一般采用Sigmoid函数作为激励函数。而Sigmoid函数是全局激励函数,在神经网络的训练过程中很容易陷入局部极小值[7]。RBF网络虽然是一种局部逼近网络,但是由于采用高斯基函数作为逼近函数,不能像小波函数那样具有尺度缩放的能力,因此难以实现高精度的逼近效果[8]。Q.Zhang和A.Benvensite提出一种激励函数为小波函数的小波神经网络(Wavelet Neural Network,WNN)[9]。由于小波函数是一种正交的局部逼近函数,且具有在空间平移和缩放的能力,因此其逼近效果要优于BP神经网络和RBF神经网络。
本文首先使用小波分析中的Mallat算法提取光纤陀螺信号中趋势项后的误差余项[10],将其作为神经网络的目标输出,而将光纤陀螺的原始角速率信号作为学习样本,将与之对应的误差作为神经网络的输出。针对梯度下降法的不足,使用改进后的训练方法训练神经网络。在建立小波神经网络模型后,对其建模准确性进行了检验。为了验证本文方法对光纤陀螺误差补偿的有效性,将最终的补偿效果与其他方法进行了对比。
对光纤陀螺的误差建模时,需要对其输出信号中的趋势项和误差项进行分离。传统的逐步回归法把光纤陀螺的趋势项分为线型项和周期项,线性项用去均值法除去而周期项用周期图法拟合。这种方法不仅十分繁琐,而且将趋势项简单分为线型项和周期项,不能准确识别信号的特征[11]。而采用小波分析中基于多尺度分析的Mallat算法,可以将光纤陀螺的信号在不同尺度下进行分解,从而能有效地分离出信号中有用的低频分量和高频噪声分量。
Mallat分解算法中的小波函数,选择具有紧支撑和正交特性的Daubechies小波,阶数为6阶,其相应的尺度函数和母小波函数分别为φj,k(t)和ψj,k(t)。若待分析信号是一个平方可积函数,f(t)∈L2(R),R为实数域。在分辨率为2-j下,信号小波分解的逼近项Cjf(t)和细节项Djf(t)分别可以表示为:
(1)
式中,cj,k为分辨率2-j下的逼近项系数,cj,k=〈f(t),φj,k(t)〉。dj,k为分辨率2-j下的细节项系数,dj,k=〈f(t),ψj,k(t)〉。其中,〈·〉表示内积运算。将分辨率为2-j-1下的逼近项和细节项分别表示为Cj+1f(t)和Dj+1f(t)。则Cjf(t)的唯一分解可表示为:
Cjf(t)=Cj+1f(t)+Dj+1f(t) . (2)
因此,根据式(2)就可以对信号在不同尺度下不断地进行分解。信号在M尺度下分解即可表示为:
C0f(t)=CMf(t)+D1f(t)+D2f(t)…DMf(t) . (3)
根据式(3),在光纤陀螺信号小波重构时,可以分离出逼近项CMf(t),对D1f(t),D2f(t)…DMf(t)等细节项进行单独重构。这样便可得到提取出趋势项后光纤陀螺信号的误差余项。根据基于多尺度分析原理,随着分解尺度M不断增大,获得的像越粗糙,其表征的漂移主趋势就越明显。因此为了尽可能地分离出趋势项,可不断增大M值[12-13]。为了验证在M尺度分解下确实已提取出了趋势项,可以对原始信号和重构信号的功率谱密度进行分析[14]。若在重构信号的功率谱密度中低频项已经完全去除,则可以认为趋势项已被提取出来,否则继续增加M值。
小波变换的基本思想是利用一簇小波函数来逼近某一函数或者信号。而这一簇小波基函数ψm,n均由某一个母小波基函数ψ经过平移和尺寸伸缩得到的。小波基函数与母小波函数的关系为:
ψm,n=2m/2ψ(2mt-n) , (4)
其中,m,n∈Z。
由于小波函数的特有性质,因此在小波神经网络中,隐藏层节点的激励函数只在局部范围内影响网络的输出。这在网络训练过程中可以有效避免节点间相互影响,并且使网络具有良好的泛化能力。
图1 小波神经网络拓扑结构 Fig.1 WNN topological structure
图1中所示的小波神经网络拓扑结构与BP神经网络类似,也是一种前向网络,其信号向前传播而误差向后传播。神经网络的输入为xn,xn+1…xn+4,因此隐含层输出可以表示为:
(5)
式中,输入点个数k=5,h(j)为隐含层第j个节点的输出值,wi, j为输入层和隐含层的连接权值,aj为小波函数的尺度因子,bj为小波函数的平移因子。ψj为小波基函数。本文选择的小波基函数为Morlet小波函数,其表达式为ψ(x)=e-x2/2·ejω0x,为了使其具有近似支撑性和满足容许条件[10],取w0=6。设小波神经网络的输出为yn,则小波神经网络的输出表达式为:
(6)
式中,wj为小波神经网络隐含层到输出层的权值。
小波神经网络输出误差e(n)的定义为:
(7)
(8)
为了使目标函数达到最小值,可以使用共轭梯度法,BFGS法,最陡下降法等[7]。本文使用最陡下降法来更新权值wi, j、wj和参数aj、bj。根据小波神经网络的预测误差得到各个神经网络权重的调整值:
(9)
(10)
式中,η2为小波函数中参数的学习速率。然后根据式(9)和式(10)得到更新的神经网络权值和小波函数参数:
(11)
由于小波神经网络的网络权值和函数参数的训练方法采用了固定学习速率的梯度下降法。该方法在学习过程中容易陷入极小值且收敛缓慢[15]。针对这个问题,可以采用增加动量因子避免陷入极小值,同时采用自适应调整学习速率的方法来加快学习速度。
增加动量因子方法是在神经网络权值和参数更新时,在计算公式中分别增加一个动量项。这样便可以减小神经网络对局部极小值的敏感性,防止神经网络在训练过程中陷入局部极小值后无法逃脱。增加动量因子后的神经网络权值和参数更新公式为:
(12)
式中,η3为动量因子学习速率。
自适应调整学习速率算法的基本思想是让学习速率随着训练次数在线调整。首先使学习速率从一个较小的值开始,如果在训练过程中误差减小,则增加学习速率,若在训练过程中误差增大则减小学习速率。学习速率自适应调整公式如下:
(13)
在采集光纤陀螺的原始信号时,将光纤陀螺放置在一个恒速率转台上,该转台的理想输出角速率为-60(°)/s。光纤陀螺的原始采集信号及在12尺度下提取的趋势项如图2所示。
图2 原始采集信号及主趋势项 Fig.2 Original acquisition signal and main trend term
从图2可以看出,在12尺度下提取的趋势项在最大程度上分离出了光纤陀螺信号的低频分量,从而表征出了陀螺信号的漂移主趋势。
为了验证在该尺度分解下确实已提取出了趋势项,可以对原始信号和重构信号的功率谱密度进行分析,结果如图3所示。
图3 提取趋势项前后的功率谱密度 Fig.3 PSDs before and after extracting trend term
在图3中,图(a)为分离趋势项前的功率谱密度图,图(b)为分离趋势项后的功率谱密度图。从两图对比可以看出,原始信号的低频分量在经过小波分解重构后已被提取出。因此,根据图2和图3可知,在12尺度下分解重构后的残差信号即为去掉趋势项的噪声信号。
使用2 500个光纤陀螺信号已分离出趋势项的误差余项作为神经网络的目标输出,并把2 500个光纤陀螺原始输出的角速率信号作为学习样本。使用改进后的训练方法训练小波神经网络200次,得到光纤陀螺误差的神经网络模型。训练过程中累积绝对误差变化见图4。
图4 小波神经网络训练过程 Fig.4 WNN training process
图5 神经网络预测的不同测试信号误差预测值 Fig.5 WNN predication trends of three different test signal errors
图4所示的结果表明,使用经过改进的训练方法训练后,小波神经网络在对光纤陀螺误差建模过程中可以迅速收敛。大约在训练100次后即达到最优。
在神经网络训练结束之后,可得到光纤陀螺误差的模型。为了检验该神经网络模型是否准确,选取1 000个不同于样本信号的测试信号对之前建立的神经网络模型进行验证。为了验证该模型的泛化性能,在其它速率范围(-30 (°)/s和-90 (°)/s)也分别选取了1 000个测试信号进行测试,结果见图5。
从图5的结果可以看出,建立的小波神经网络模型对不同速率下测试信号的误差均可进行准确估计。这表明该小波神经网络模型已经获得了光纤陀螺误差在频域上的特性。
从原始信号中去除神经网络预测误差,便可以对光纤陀螺的原始信号进行补偿。为了验证本文提出算法的有效性,将光纤陀螺信号补偿前后的功率谱密度进行分析,结果如图6所示。
图6 误差补偿前后的功率谱密度 Fig.6 PSDs before and after error compensation
图6的结果表明,经过本文方法对光纤陀螺原始信号进行误差补偿后,信号的有用低频信息被保留而高频的噪声分量被削弱。
将本文补偿方法对光纤陀螺的原始信号的补偿效果和软阈值小波滤波算法、Kalman滤波算法的补偿效果进行对比。其结果如图7所示。
图7 不同方法对陀螺的补偿精度 Fig.7 Compensation effects for gyro by different methods
从图7所示的结果可以看出,相较于Kalman算法和软阈值小波算法,小波神经网络补偿方法可以更为准确地对光纤陀螺误差进行补偿,并且补偿后的光纤陀螺信号更为平稳,更接近光纤陀螺的真实输入。各种方法补偿后的精度(信号输出的标准差)和运算耗时见表1。
表1 不同算法的补偿效果
从表1的数据可以看出,在算法的运算时间上,本文算法耗时大于Kalman算法但要小于软阈值小波算法。而在对误差的补偿精度上,经过小波神经网络补偿后的光纤陀螺原始信号的输出精度要优于传统的Kalman算法和软阈值小波滤波算法。
针对光纤陀螺误差难以准确补偿的问题,提出了一种基于小波神经网络的补偿方法。首先使用了小波分析中的Mallat分解算法,在12尺度下分离出了陀螺噪声的误差项和趋势项,并对误差项进行了单独重构。然后对重构信号使用小波神经网络进行建模和补偿。同时为了提高小波神经网络的学习速率和准确性,采用了增加动量因子和自适应调整学习速率的方法,改进了小波神经网络的性能。通过比较本文算法和Kalman算法及软阈值小波算法的误差补偿效果发现,光纤陀螺输出的精度提高到了0.019 4°/s。采用本文方法对光纤陀螺误差所建立的神经网络模型,不仅可以对误差进行准确建模并且补偿效果也要优于其他方法。本文方法对研究光纤陀螺误差补偿有一定的工程实用和理论参考价值。