一种电子罗盘的标定方法

文档序号:6424146阅读:306来源:国知局
专利名称:一种电子罗盘的标定方法
技术领域
本发明涉及一种电子罗盘的标定方法,特别是一种基于自适应差分进化法和傅立叶神经网络的电子罗盘的标定方法,属于定向导航领域。
背景技术
电子罗盘是一种通过测量地球磁场来实现定向导航功能的装置,它是一种重要的导航工具,能实时提供物体的航向和姿态数据,且具有体积小、成本低、响应速度快、无累计误差等特点,被广泛的运用于移动机器人、车辆、飞行器等的定向子系统中;但是,由于电子罗盘是根据地磁原理计算磁方向角,其工作环境中除地球磁场的其他外界磁场不可避免的会对电子罗盘的输出造成影响,从而产生误差影响测量精度。因此,如何降低外界干扰对其输出的精度的影响是工程应用中必须解决的问题。现有的文献已经提出了几种可行的罗盘误差补偿方法。袁智荣的论文《三轴磁航向传感器的全姿态误差补偿》提出将罗盘误差分为正交误差、零位与灵敏度误差分别进行补偿,该方法补偿精度较高,但是在补偿过程中需要无磁转台,而且需要计算机自动测出罗盘旋转一周时X和Y轴传感器输出的最大、最小值,其标定过程较复杂,且对设备要求较高; 李希胜、王家鑫的论文《高精度电子罗盘的研制》以及邵婷婷,马建仓的论文《电子罗盘的倾斜及罗差补偿算法研究》采用最小二乘法对电子罗盘进行补偿,该方法需要对罗盘在0° 360°旋转时平均采样,操作较繁琐,而且采样的数据量的大小不同会对拟合结果产生较大的影响,数据量太小,补偿效果不好,数据量太大,会造成拟合性能恶化;杨新勇,黄圣国的论文《磁航向测量系统误差修正方法研究》以及Qi Zhang, Liang-shui Lei, Jiang Fan, Song Liu 的论文《Autocalibration of a magnetic compasswithout heading reference》 提出一种基于椭圆假设误差模型的补偿方法,由于椭圆假设模型仅是根据实验经验提出, 缺乏理论推证,补偿效果并不是很理想;晁敏,蒋东方,文彩虹的论文《磁罗盘误差分析与校准》采用分析法建立磁方向测量系统较为精确的模型,并对电子罗盘在水平条件下进行补偿,但补偿过程中要辨识的参数较多(达到9个),而且其结果显示其补偿效果类似椭圆假设模型;郝振海,黄圣国的论文《基于差分磁罗盘的组合航向系统》提出一种“差分磁罗盘”(DMC,Differential Magnetic Compasses)的设计方案,该方案利用两个完全相同的磁罗盘的组合来判断系统是否发生低频干扰,若系统没有发生低频干扰,则采用磁罗盘导航方式,若系统发生低频干扰则将系统切换到陀螺仪的导航方式。该方案并未实质性的提高磁罗盘测量精度,且该导航方案由陀螺仪和多个磁罗盘构成,会导致成本大大增加;王璐, 赵忠等的论文《磁罗盘误差分析及补偿》采用BP神经网络建立误差模型,并利用LM学习算法训练网络,该方法无须在0° 360°内平均采样,具有神经网络能以任意精度逼近函数的特点,具有较高的补偿精度,但BP神经网络的收敛速度较慢,权值的初始值的设定需要非常小心,且易陷入局部最小。综上所述,目前对电子罗盘进行标定的主要方法有最小二乘法、椭圆假设法、BP神经网络法等,这些方法或存在标定步骤较繁琐、对标定所需的仪器要求较高或标定精度不够等问题。

发明内容
为了简化标定步骤、降低对所需仪器的要求以及提高标定精度,本发明设计了一种电子罗盘的标定方法,该标定方法基于自适应差分进化法和傅立叶神经网络(Adaptive Differential Evolution and Fourier Neural Network, ADE-FNN),通过傅立叶神经网络对电子罗盘误差建模,该神经网络采用正交傅立叶级数作为网络激发函数,并采用自适应差分进化算法训练网络的权值,得到较为精确的误差模型来补偿罗盘的测量值,从而达到改善罗盘精度的目的。基于自适应差分进化法和傅立叶神经网络的电子罗盘的标定方法,包括获取训练样本、采用傅立叶神经网络(FNN)建立误差补偿模型以及采用自适应差分进化算法(ADE) 训练神经网络权值三大部分,实现的具体步骤如下步骤一、获取训练样本;将一款普通的二维固态磁阻电子罗盘在不对外界磁场做任何处理的室内环境下, 随手动转台水平非勻速旋转一圈,获取电子罗盘的测量值及其对应的转台转角作为训练样本;其中,电子罗盘测量值作为需要补偿的值X,转台转角作为理想值Y ;步骤二、确定神经网络结构;采用单输入单输出三层前向傅立叶神经网络SISO-FNN对电子罗盘方向角建立误差补偿模型,隐含层各神经元的激发函数为S1 = 1,...,S2i = cos(2i 31 χ/Τ),S2i+1 = sin(2i π χ/Τ),i = 1,2,· · ·,η (2)其中,T为测量周期;选择傅立叶系数a。,···,apbi,i = 1,2,3,···, ηα, = (2 / Γ) J^ /(χ) cos(2/>rx / T)dx, / = 0,1,2,···, (3)b, = (2 / Γ) J^ /(χ) cos(2/>rx / T)dx, / = 1,2,···, (4)作为隐含层各神经元至输出层的连接权值,其中f (χ)为神经网络的输出;则隐含层各神经元至输出层的连接权值W1, ...,W2i,w2i+1为W1 = a0, . . . , w2i = Ei1, w2i+1 = bi7 i = 1, 2, ".,η (5)此外,神经网络输入层到隐含层各神经元的连接权值为1 ;隐含层各神经元的输出为Oj = SjWj j = 1,2, L,2n+1 (6)输出层采用线性神经元,则输出层的输出为
2m+1少=/O)=Σ Oj
;=1=w\ + w2cos(2^x/Τ)+ Wssin(2^xIΤ)Λ■...-\-w2ncos(2^xIT) + w2n+isin(2^x/T) (7)= +α cos(2;rx I T) + b\ sin(2^x I Τ) + ··· + αη cos(2^x !T) + bn sin(2^x / T)
2n+\+ cos(>x) + bn sin(>x))
;=1其中,y为电子罗盘补偿后的输出;
步骤三、建立电子罗盘误差模型并选择训练指标;定义电子罗盘的误差ei为神经网络输出值Ji与理想值Yi的差,即θ = Yi-Yi = Y^f(Xi), i = 1,2,...,M (8)其中,M为训练样本维数;并选择训练指标J为J = 0.5^ef(9)步骤四根据训练样本采用改进的自适应差分进化算法训练神经网络;采用步骤一获取的训练样本,引入改进的自适应差分进化算法训练神经网络,优化神经网络隐含层各神经元至输出层的连接权值;所述的改进的自适应差分进化算法采用的自适应参数CRk由下式得到CRk = CRfflin+ (CRmax-CRmin) (frffflin) / (f「fmJ (10)其中,CRk为当前第k个体的交叉算子CR的值,CRmin、CRmax分别为设置好的交叉算子的最小值和最大值;fk为第k个体的适应度值,fmin、fmax分别为当前种群中适应度最优和最差的个体适应度值;其中,改进的自适应差分进化算法需要初始化的参数包括变量个数D、变异算子 F、交叉算子CR、种群个数NP以及最大进化代数G ;具体的初始化参数选择原则如下(1)变量个数D变量个数D即为傅立叶神经网络隐含层各神经元至输出层的连接权值的个数;(2)变异算子F变异算子F取值范围为W,2];(3)交叉算子CRCR e
;(4)种群个数NP种群规模NP取5D 10D,其中变量个数D不少于4 ;(5)最大进化代数G最大进化代数G的选取根据神经网络训练指标和训练时间来综合选择;步骤五、将优化后得到的神经网络权值代入神经网络,得到较为精确的补偿模型;步骤六、将电子罗盘输出的测量值输入神经网络进行补偿,输出补偿后的值。有益效果1、本发明综合考虑了影响电子罗盘测量精度的因素,提出了基于自适应差分进化法和傅立叶神经网络的标定方法集中对其进行补偿,一方面简化标定过程,即只需在转台上旋转(无须勻速旋转)电子罗盘一周获取训练样本和对应的真实值;另一方面具有更好的效果,即更精确地抵消外界干扰,提高测量精度。2、该补偿方法具有神经网络结构简单、易于实现,同时能以任意精度逼近非线性函数,具有较好泛化能力的优点。3、采用正交的傅立叶函数作为神经网络的激发函数,将非线性优化问题转化为线性优化问题,极大地提高收敛速度,避免陷入局部最小。4、采用自适应差分进化算法训练神经网络权值,避免了初始值依赖系统先验知识难以选择的问题;同时改进后的差分进化算法在初始阶段有较强的全局搜索能力,能尽可能多地发现可能的全局最优点,而且在后续阶段有较强的局部搜索能力,提高算法收敛速度和求解精度;因此该算法有较强的全局搜索能力,能有效避免早熟收敛,而且算法的稳定性好。


图1是电子罗盘的标定方法原理示意图;图2是电子罗盘的标定方法程序流图。
具体实施例方式下面结合附图1对本发明作进一步说明,本发明具体实现步骤是第一步获取训练样本将一款普通的二维固态磁阻电子罗盘在不对外界磁场做任何处理的室内环境下,随手动转台水平非勻速旋转一圈获取电子罗盘的测量值以及对应的转台转角作为训练样本,其中电子罗盘测量值作为需要补偿的值X,转台转角作为理想值 Y。第二步确定神经网络结构采用单输入单输出傅立叶神经网络(SISO-FNN)建立电子罗盘方向角误差的模型。该网络为三层前向网络,其三层分别为输入层、隐含层、输出层。与其他神经网络不同的是FNN选用正交三角函数系代替常用的sigmoid函数或者 Gaussian函数作为神经网络各隐含层神经元的激发函数,并选傅立叶级数的系数^,bi; (i = 1,2,3,. . .,η)作为隐含层至输出层的连接权值,神经网络输入层到隐含层各神经元为1,输出层采用线性神经元,则输出层的输出与f(x)的傅立叶级数在形式上是等同的,因此傅立叶神经网络的输出等价于傅立叶级数。第三步定义神经网络输出值Ji与理想值Yi的误差,并选择训练指标。步骤四采用改进的自适应差分进化算法训练神经网络;根据初始化的参数值和步骤一获取的训练样本,采用改进的自适应差分进化算法优化隐含层各神经元至输出层的连接权值,从而得到较为精确的电子罗盘补偿模型,用来补偿电子罗盘的测量角;若用当前补偿模型标定后得到的电子罗盘测量角的精度不够,则重新选取初始化的参数值重新计算隐含层各神经元至输出层的连接权值,获取新的电子罗盘补偿模型,直到采用该补偿模型标定后的电子罗盘测量角达到所需的补偿精度为止;其中,改进自适应差分算法的方法如下自适应差分进化算法中CR越大,则变异个体对试验个体的贡献越多,越有利于局部搜索,但对目标向量的破坏也越大,容易破坏适应度好的个体;CR越小,则变异个体对试验个体的贡献越少,对目标向量的破坏也越小,有利于保持种群的多样性,却使得种群不易产生新的个体,所以应该对适应度差的个体,取较大的交叉算子CR,让变异个体对试验个体贡献大,使该个体加快淘汰;而适应度好的个体, 取较小的交叉算子CR,使该个体进入新种群的机会增大;因此该方法采用随着适应度值变化的自适应参数,自适应参数CRi由下式得到CRi = CRfflin+ (CRmax-CRmin) (frffflin) / (f「fmJ (10)其中,CRi为当前第i个个体的交叉算子CR的值,CRmin、CRmax分别为设置好的交叉算子的最小值和最大值A为第i个个体的适应度值,fmin、fmax分别为当前种群中适应度最优和最差的个体适应度值。改进后的差分进化算法在初始阶段有较强的全局搜索能力,能尽可能多地发现可能的全局最优点,而在后期则有较强的局部搜索能力,提高算法收敛速度和求解精度,该算法有较强的全局搜索能力,能有效避免早熟收敛,而且算法的收敛速度快,稳定性好。改进的自适应差分算法中需要初始化的参数主要有重要变量个数D、变异算子 F、交叉算子CR、种群个数NP以及最大进化代数G ;其中变异算子F和交叉算子CR的选择尤为关键,F用来控制种群的多样性和收敛性,CR的值用来控制个体各个维数对交 叉的参与度,该两个参数的选择直接关系到算法的性能。具体选择原则如下(1)变量个数D本方法利用改进的自适应差分进化算法来训练傅立叶神经网络的权值,故变量个数即为网络权值的个数。(2)变异算子F变异算子F用于控制差异向量的缩放程度。它的取值影响进化过程的收敛性及收敛速度。F取值较小时,收敛速度较快,但如果过小,则易使种群过早收敛于非最优解;F取较大值时,如果其它参数取值合理,则能保证收敛到问题的最优解,但收敛速度较慢。按文献,其取值范围为
。(3)交叉算子CRt艮 ig t ■《Self-Adaptive Differential Evolution Algorithm in ConstrainedReal-parameter Optimization》所述,CRe
。本文采用交叉算子自适应算法,需要设置CI^in, CRmax,其具体值需综合考虑算法局部搜索能力和全局搜索能力以及在实际仿真中的效果。(4)种群个数NP种群规模NP —般取5D和10D之间,其中D为目标函数决变量的个数,不能少于4, 否则无法进行变异操作,NP越大,种群多样性越强,获得最优解概率越大,但是计算时间更长。(5)最大进化代数G最大进化代数G的选区需要考虑到适应度函数的目标值,S卩神经网络训练指标来选择。以上参数相互联系,要综合考虑算法局部搜索能力和全局搜索能力以及在实际仿真中的效果综合选取;采用自适应差分算法训练神经网络,参见附图2,具体步骤如下步骤1 初始化种群个数NP,交叉算子的最大值CRmax和最小值CRmin,变异算子F, 变量个数D,最大进化代数G,以及个体取值的上下限χ11、?,按公式(11)令进化代数g = 1, 随机初始化每一个个体,Xy- = X1j + rand(0,l)(x" -X1j)(11)式中i = I-NP, j = 1…D,Xij为个体变量,rand(0,1)为(0,1)之间的随机数, <和《分别为第j维变量的上限和下限;步骤2 利用公式(9)计算第一个个体Xi的适应度值(即目标值)J(Xi),并把该个体作为最优个体Xbest,其适应度值J(Xbest)作为最优适应度值;
步骤3 计算每个个体适应度值,并与最优适应度值比较,若小于最优适应度值, 则把该个体替换为最优个体Xbest,其适应度值替换为最优适应度值J(Xbest);步骤4 判断最优适应度值J(Xbest)是否满足精度要求或是否达到最大迭代次数 G,若是,则该最优个体Xbest即为最优权值并退出,否则继续;步骤5 对种群中每个个体Xi (g)按(12)进行变异操作得到中间个体Vij = XrljJ+F(Xr2jj-Xr3jj),i = IL NP, j = IL D (12)其中Vij为中间个体,rl, r2,r3是[1,N]中任意选取的三个不同的整数。步骤6 按(13)进行交叉操作得到试验个体
权利要求
1. 一种电子罗盘的标定方法,其特征在于,该方法实现的具体步骤如下 步骤一、获取训练样本;将一款普通的二维固态磁阻电子罗盘在不对外界磁场做任何处理的室内环境下,随手动转台水平非勻速旋转一圈,获取电子罗盘的测量值及其对应的转台转角作为训练样本; 其中,电子罗盘测量值作为需要补偿的值X,实际转台转角作为理想值Y ; 步骤二、确定神经网络结构;采用单输入单输出三层前向傅立叶神经网络SISO-FNN对电子罗盘方向角建立误差补偿模型,隐含层各神经元的激发函数为S1 = 1,...,S2i = cos (2i π χ/Τ),S2i+1 = sin (2i π x/T),i = 1,2, ***, η (2) 其中,T为测量周期;选择傅立叶系数彻,...,ai bi i = 1,2,3, ...,n
全文摘要
本发明公开了一种电子罗盘的标定方法,该方法基于自适应差分进化算法和傅里叶神经网络原理,用于提高电子罗盘的测量精度,特别适用于要求低成本、精度较高的定向系统中。本发明采用傅立叶神经网络对电子罗盘误差建模,并采用改进的自适应差分进化算法对神经网络的权值进行优化,从而得到较为精确的误差模型来补偿电子罗盘测量值。该方法建立的误差模型能实现样本空间的精确映射,具有较高的非线性逼近能力,且该方法避免陷入局部最小,克服了神经网络的收敛速度过慢,振荡等缺点,有效补偿外界磁场对电子罗盘输出的影响,因此能大大提高了电子罗盘的测量精度。
文档编号G06N3/08GK102297687SQ20111012479
公开日2011年12月28日 申请日期2011年5月13日 优先权日2011年5月13日
发明者窦丽华, 邓方, 陈杰, 龚鹍 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1