本发明涉及惯性技术领域,特别涉及一种基于BP神经网络的MEMS陀螺随机误差补偿方法。
背景技术:
MEMS(Micro Electro Mechanical System,微电子机械系统)陀螺是一种基于微机械电子系统的新型全固态陀螺仪,与激光陀螺、光纤陀螺或传统机械陀螺相比,它具有体积小,成本低,重量轻,抗冲击,可靠性好等优点,因此在行人导航、小型无人机、水下机器人、工程机械等领域具有广泛应用。但是受目前MEMS惯性器件制造工艺和环境的影响,MEMS陀螺仍然存在随机噪声大、精度低等不足,一方面可以通过提高工艺水平设计更高精度的MEMS陀螺,另一方面可以通过对随机误差建模并补偿的方式减小MEMS陀螺随机误差的影响。
相关技术的MEMS陀螺随机误差建模中,可以大致分为两种方法。一种是基于统计学理论的时间序列ARMA模型,另一种是基于神经网络的人工智能算法。时间序列ARMA模型要求数据必须是平稳、线性的,需对数据进行平稳化、线性化处理,而MEMS陀螺的误差产生机理非常复杂,含有各种噪声,并非平稳信号,因此ARMA模型存在一定的不足。而基于神经网络的人工智能算法具有对非线性函数的最佳逼近和全局逼近的能力,又具有自学习、自适应、时频特性好、建模能力强等特性,因此在非线性系统建模获得了广泛的应用,是MEMS陀螺随机误差建模的一个热点方向。
BP神经网络(Back Propagation Neural Network,BP神经网络)是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络之一。BP神经网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小,因此使得BP神经网络在非线性系统或难以用数学方程建立准确模型的领域得到了广泛应用。而MEMS陀螺的随机误差具有非线性特征且难以建立准确的数学模型,因而可以利用BP神经网络对其误差进行建模。
相关技术对MEMS陀螺随机误差建模的方法,多采用两种或多种算法相结合的方式建模,比如采用遗传算法与神经网络算法相结合、时间序列分析与粒子滤波算法相结合等方式进行建模,即使能够取得较好的效果,但这增加了计算的复杂度,使得计算量比较大,并且使得MEMS陀螺随机误差建模与补偿的实时性也受到影响。
技术实现要素:
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种基于BP神经网络的MEMS陀螺随机误差补偿方法,该方法可以有效提高MEMS陀螺随机误差补偿的准确性和可靠性,且简单易实现。
为达到上述目的,本发明一方面实施例提出了一种基于BP神经网络的MEMS陀螺随机误差补偿方法,包括以下步骤:采集MEMS陀螺的原始数据;通过小波滤波对所述原始数据进行预处理;设置BP神经网络的输入量及输出量;训练数据,以建立基于BP神经网络的MEMS陀螺随机误差模型;通过所述基于BP神经网络的MEMS陀螺随机误差模型对MEMS陀螺随机误差进行补偿。
本发明实施例的基于BP神经网络的MEMS陀螺随机误差补偿方法,采用的BP神经网络,能够对MEMS陀螺输出的非线性随机误差进行较为准确而可靠地建模,从而能够使得MEMS陀螺随机误差补偿具有良好的效果,通过数据差分构建BP神经网络的输入量,算法简单,精度较高,从而可以有效提高MEMS陀螺随机误差补偿的准确性和可靠性,且简单易实现。
另外,根据本发明上述实施例的基于BP神经网络的MEMS陀螺随机误差补偿方法还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述采集MEMS陀螺的原始数据,进一步包括:将MEMS陀螺仪固定在转台上,在预热30min后,采集静止状态下的所述原始数据,其中,采样率为10Hz,采样时间10min。
进一步地,在本发明的一个实施例中,所述通过小波滤波对所述原始数据进行预处理,进一步包括:通过小波阈值法分离出所述原始数据的白噪声,获取所述MEMS陀螺的随机误差,以将去噪后的所述随机误差值用于建模。
进一步地,在本发明的一个实施例中,所述BP神经网络的输入量和输出量分别定义为差分数据X1和MEMS陀螺随机误差X0,对X0进行差分:
其中,是X1的构成元素;是X0的构成元素。
进一步地,在本发明的一个实施例中,所述BP神经网络通过不断调节隐含层和输出层的权重和阈值来逼近输出值,当满足BP神经网络算法的停止条件时,得到所述MEMS陀螺随机误差模型。
进一步地,在本发明的一个实施例中,对所述MEMS陀螺随机误差进行补偿的预测公式为:
Xp=sim(net,X1),
其中,Xp为预测数据,X1为差分数据,sim为预测函数。
进一步地,在本发明的一个实施例中,通过MEMS陀螺实际的随机误差值减去预测值即可对所述MEMS陀螺的随机误差进行补偿。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明一个实施例的基于BP神经网络的MEMS陀螺随机误差补偿方法的流程图;
图2为根据本发明一个具体实施例的基于BP神经网络的MEMS陀螺随机误差补偿方法的流程图;
图3为根据本发明一个实施例的采集MEMS陀螺原始数据及小波去噪后的数据对比示意图;
图4为根据本发明一个实施例的BP神经网络的结构示意图;
图5为根据本发明一个实施例的MEMS陀螺随机误差与BP神经网络预测的随机误差图;
图6为根据本发明一个实施例的MEMS陀螺随机误差补偿前后的对比示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于BP神经网络的MEMS陀螺随机误差补偿方法。
图1是本发明一个实施例的基于BP神经网络的MEMS陀螺随机误差补偿方法的流程图。
如图1所示,该基于BP神经网络的MEMS陀螺随机误差补偿方法包括以下步骤:
在步骤S101中,采集MEMS陀螺的原始数据。
也就是说,如图2所示,本发明实施例可以首先采集MEMS陀螺的原始数据。
进一步地,在本发明的一个实施例中,采集MEMS陀螺的原始数据,进一步包括:将MEMS陀螺仪固定在转台上,在预热30min后,采集静止状态下的原始数据,其中,采样率为10Hz,采样时间10min。
举例而言,本发明实施例可以将MEMS陀螺仪固定在转台上,预热30min,然后采集静止状态下的原始数据,采样率为10Hz,采样时间10min。需要指出的是,这里的预热时间、采样率、采样时间仅仅作为本发明实施例的说明,而非限制,也可以根据具体情况用其他合适的参数,并不影响本发明的适用性和通用性,本领域技术人员可以根据实际情况进行设置,在此不做具体限定。
在步骤S102中,通过小波滤波对原始数据进行预处理。
也就是说,如图2所示,本发明实施例可以用小波滤波对原始数据预处理。
进一步地,在本发明的一个实施例中,通过小波滤波对原始数据进行预处理,进一步包括:通过小波阈值法分离出原始数据的白噪声,获取MEMS陀螺的随机误差,以将去噪后的随机误差值用于建模。
可以理解的是,本发明实施例可以利用小波阈值法分离出MEMS陀螺原始数据的白噪声,得到MEMS陀螺的随机误差,将去噪后的随机误差值用于建模。可以采用小波函数为‘db4’,尺度系数为3的软阈值法去除白噪声。
也就是说,本发明实施例可以采用小波为‘db4’,尺度系数为3的软阈值法去除原始数据的白噪声,从而得到MEMS陀螺的随机误差。
具体而言,小波变换具有良好的多分辨率特性,特别适合非平稳信号的处理,在信号处理中有广泛应用,可以用于陀螺信号的去噪声处理,并已取得较好的去噪效果。利用小波阈值法分离出MEMS陀螺原始数据的白噪声,得到MEMS陀螺的随机误差,将去噪后的随机误差值用于建模。可以采用小波函数为‘db4’,尺度系数为3的软阈值法去除白噪声。并且,去噪后的数据对比图如图3所示。
在步骤S103中,设置BP神经网络的输入量及输出量。
也就是说,如图2所示,本发明实施例可以设置BP神经网络的输入量及输出量。
可选地,在本发明的一个实施例中,BP神经网络的输入量和输出量分别定义为差分数据X1和MEMS陀螺随机误差X0,对X0进行差分:
其中,是X1的构成元素;是X0的构成元素。
可以理解的是,本发明实施例可以通过对MEMS陀螺的随机误差进行差分可得到输入量,而输出量为MEMS陀螺的随机误差值。
具体而言,如图4所示,BP神经网络是一种被广泛应用的神经网络算法,包括输入层、隐含层和输出层。隐含层神经元的输入值为:
式中,vi表示隐含层第i个神经元的输入;n0表示隐含层神经元的个数;wij表示输入层第i个神经元与隐含层第j个神经元之间的权重;xj表示输入层第j个神经元的输入值;bj表示隐含层第j个神经元的阈值。
隐含层的传递函数为sigmoid函数,也即:
式中,x为自变量。
隐含层的输出值为:
xi=g(vi),
式中,xi为隐含层第i个神经元的输出值。
输出层的传递函数与隐含层的传递函数形式一样,其神经元的权重和阈值通过动态调整不断逼近期望值。
为了建立基于BP神经网络的随机误差模型,BP神经网络的输入量和输出量分别定义为差分数据X1和MEMS陀螺随机误差X0。对X0进行差分,其形式定义为:
式中,是X1的构成元素;是X0的构成元素。
在步骤S104中,训练数据,以建立基于BP神经网络的MEMS陀螺随机误差模型。
也就是说,如图2所示,本发明实施例可以通过对BP神经网络进行训练,并保存训练好的网络用于预测MEMS陀螺的随机误差。
可选地,在本发明的一个实施例中,BP神经网络通过不断调节隐含层和输出层的权重和阈值来逼近输出值,当满足BP神经网络算法的停止条件时,得到MEMS陀螺随机误差模型。
具体而言,此模型用前n个数据预测第n+1个随机误差值。可将X0的前5000个数据用于建模,用每前100个差分数据预测第101个随机误差值,也即预测预测依次类推。
得到用于训练BP神经网络的输入矩阵的程序:
通过两层循环,可以生成训练BP神经网络的输入矩阵,其行数为4900,列数为100,其构成元素为train_input为训练BP神经网络的输入矩阵。
用于训练BP神经网络的输出期望值为train_output=x0(101:5000);其为行数为4900,列数为1的矩阵,其构成元素为train_output为训练BP神经网络的输出期望值。
BP神经网络通过不断调节隐含层和输出层的权重和阈值来逼近输出值,当满足BP神经网络算法的停止条件,即可得到MEMS陀螺的随机误差模型。
在步骤S105中,通过基于BP神经网络的MEMS陀螺随机误差模型对MEMS陀螺随机误差进行补偿。
可以理解的是,如图2所示,本发明实施例可以将MEMS陀螺实际的随机误差值减去预测值即可对MEMS陀螺的随机误差进行补偿
可选地,在本发明的一个实施例中,对MEMS陀螺随机误差进行补偿的预测公式为:
Xp=sim(net,X1),
其中,Xp为预测数据,X1为差分数据,sim为预测函数
具体而言,本发明实施例可以通过BP神经网络算法训练生成的网络,也即通过上述数据训练得到的神经网络net,可以对随机误差进行预测并补偿。预测公式定义为:
Xp=sim(net,X1),
式中,Xp为预测数据,X1为差分数据,sim为预测函数。
如图5所示,通过前5000个数据训练得到的神经网络预测余下1000个随机误差值,通过BP神经网络的预测值与真实的随机误差值进行对比,可以验证模型的准确性和可靠性。
另外,如图6所示,通过MEMS陀螺实际的随机误差值减去预测值即可对MEMS陀螺的随机误差进行补偿,补偿前的随机误差标准差为0.0039deg/s,补偿后的标准差为0.0015deg/s,标准差减小了61.54%,达到了预期效果。可以看出本发明所提方法能够大幅降低MEMS陀螺随机误差的影响,从而提高MEMS陀螺输出数据的精度。
综上,本发明实施例通过对MEMS陀螺输出的原始数据进行小波去噪,得到MEMS陀螺的随机误差;然后对随机误差进行差分,即可用BP神经网络建立模型并补偿,从而减小了计算量。本发明实施例的方法简单可行,并能提高随机误差补偿的实时性,并且通过用BP神经网络对MEMS陀螺的随机误差进行建模并补偿,达到了预期效果。本发明实施例计算量小,在工程上具有广泛的应用价值。
进一步地,本发明提出的随机误差建模方法的思路具有通用性,为了说明实施例而选用的参数并非限制,可以根据具体情况选用其他合适的参数,但思路应该是一样的。本发明可以在使用MEMS陀螺的场合得到应用,比如在小型无人机、行人导航、工程机械等领域应用,可提高MEMS陀螺输出数据的精度。
根据本发明实施例提出的基于BP神经网络的MEMS陀螺随机误差补偿方法,采用的BP神经网络,能够对MEMS陀螺输出的非线性随机误差进行较为准确而可靠地建模,从而能够使得MEMS陀螺随机误差补偿具有良好的效果,通过数据差分构建BP神经网络的输入量,算法简单,精度较高,从而可以有效提高MEMS陀螺随机误差补偿的准确性和可靠性,且简单易实现。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变形,且这些等价形式也在本发明所附权利要求书所限定的范围。