基于遗传算法的数字罗盘误差补偿方法研究*
2012-06-12金海红
钟 辰,金海红,任 腾,田 柳
(1.合肥工业大学计算机与信息学院,合肥230009;2.安徽建筑工业学院电子与信息工程学院,合肥230022)
地磁导航是一种重要的导航方式,具有无源、无辐射、全天时、全天候、全地域、能耗低的优良特征,应用前景广泛[1]。地磁导航可以作为组合导航的辅助导航方式,与GPS及仿生导航等结合起来,可以构成一种有多余度和导航准确度更高的多信息源组合导航系统。地磁罗盘是地磁导航的重要工具。依据地磁的数字罗盘由于其全固态等优点,被当作许多载体测量航向的首选方法[2]。罗盘本身在制造安装中存在一定的误差、磁传感器容易受外界磁场的干扰等因素都将影响磁罗盘在应用中的稳定性和精度。设计合理的磁罗盘系统,对误差进行分析和补偿就显得很重要。
本文在倾斜补偿式数字罗盘硬件基础上,对罗盘误差的来源进行了详细的分析,研究了相应的误差补偿算法,经实验验证,可以有效提高罗盘的精度。
1 数字罗盘系统
地磁场是地球的固有资源,在任何情况下地球磁场的方向始终指向磁北,强度约为0.5 Gauss~0.6 Gauss[3]。本文的数字电子罗盘就是在用磁阻传感器测量磁场强度的三轴分量、用加速度计采集罗盘姿态角信息的基础上,通过解算求得航向角[4]。
罗盘的软件设计采用基于Kei1C51编译器的Windows集成开发环境uVision3,使用单片机C语言来编写程序。软件采取模块化设计,主程序负责整个系统的控制,调用各子程序完成相应的功能;子程序模块负责完成各自的指定功能,供主程序调用。
2 误差分析
由于磁阻传感器本身在制造、安装过程中会存在一些误差,并且磁阻电子罗盘易受外界磁场干扰(如电源噪声、外磁场干扰、周围铁质物体等),罗盘不可避免出现误差。其误差主要可分为两类:系统自身存在的误差(如制造误差、安装误差),由于周围铁磁环境造成的环境误差。
系统自身误差 磁罗盘系统自身的误差主要有制造误差和安装误差。制造误差包括三方面:PCB生产工艺以及芯片的安装,并不能保证传感器的3轴完全的正交引起的正交误差;由于传感器的灵敏度和放大倍数的乘积不相等引起的灵敏度误差;由于传感器、模拟电路和AD转换的零点不为零引起的零位误差。磁罗盘在安装时,由于与载体上的X、Y、Z轴不平行产生的误差称为安装误差。
环境误差 环境误差是由磁阻传感器周围的铁磁材料影响而引起的[5]。当罗盘处于没有任何铁磁材料的空旷区域内工作时,不会对地球磁场产生任何干扰,但事实上罗盘都被安装在附近很可能存在铁质材料的环境里,这些环境里的铁质材料以及PCB板上各种含有铁磁性材料的元件都会产生干扰或弯曲地球磁场从而改变罗盘方向的铁质金属效应。
这种磁场干扰可以分为硬铁干扰和软铁干扰两类。硬铁干扰产生于永久磁铁或被磁化的金属,载体上硬铁包括直流电流、永久磁铁和电机等,这些干扰与罗盘的相对位置固定,由于每个输出点都受到固定大小的干扰,相当于在罗盘的输出值上增加了一个定值,使罗盘输出曲线图的圆心被偏移了。硬铁干扰在较短的工作周期内可认为具有较好的稳定性。软铁干扰产生于地球磁场和罗盘附近的任何磁性材料之间的相互作用,干扰程度与软铁材料、倾角、激励磁场以及软铁与磁罗盘的相对位置有关,使罗盘输出曲线图变成一个椭圆[6]。由于软铁干扰可近似认为与外加场大小成比例,因此软磁影响与航向角有关,相当于在地磁场各分量上叠加一成比例的磁性影响。
综上,磁罗盘误差描述公式如下:
式中,HEx、HEy为硬磁影响系数;kx、ky为软磁影响系数;φ为非正交误差影响系数。另外,灵敏度误差和零位误差分别相当于软磁影响矩阵乘以相应的系数和硬磁影响矩阵叠加零点误差,已经综合在公式中。
3 误差补偿算法
针对数字罗盘误差的主要部分,当前有许多算法对误差进行补偿,由于这些算法的原理和侧重点不同,对罗盘精度的修正效果也各不相同。
本文实践了几种误差补偿算法并做了对比。一种粗略校正铁磁力的方法是自差粗校正法[7]。这种方法就是简单地算出磁场干扰导致的偏移量和畸变程度从而进行相应的修正,简单易行,但是精度不高。在计算罗差补偿系数时,用误差平方和最小原理,即最小二乘法[8]求取,这便是最小二乘误差补偿方法。
综合各种算法对磁罗盘误差的补偿效果及算法的时间开销,本文采用基于遗传算法[9]的误差补偿方法。该算法由于其智能性,尤其适用于处理多参数优化问题,补偿效果理想。
根据前述的误差分析,磁罗盘误差补偿过程即3个误差矩阵所对应的5个误差参数HEx、HEy、kx、ky、φ的最优化求解过程[10]。算法流程图如图1所示。
图1 遗传算法流程图
根据遗传算法原理[11],其主要步骤包括:
①编码 编码是遗传算法处理的第1步。本文使用基本遗传算法固定长度的二进制符号串来表示群体中的个体,其等位基因由二值{0,1}所组成。初始种群中各个个体的基因值可用均匀分布的随机数来生成。本文中需要编码的参数共有5个:HEx、HEy、kx、ky、φ,共使用 30 bit二进制来编码。其中,HEx、HEy的取值范围是[-32768,32768],kx、ky的取值范围是[0.6,1,3],φ 的取值范围是[-0.083,0083]。
②生成初始种群 种群即是由若干染色体构成的集合。在这里我们随机选取60个编码时产生的染色体构成初始种群。
③解码 解码就是计算二进制编码的染色体所对应的十进制数。根据参数取值范围和其编码位数,可以根据式(2)计算得到。
式中,假设某一个体的编码为 bkbk-1…b2b1,该参数的取值范围是[U1,U2]。
④确定适应度函数,计算适应度值 适应度函数是为了体现染色体的适应能力而引入的函数[12]。
在不存在误差时,磁罗盘转一圈输出应当是个标准的圆。误差的影响会使正圆偏移为椭圆,进行误差校正的理想效果是使椭圆变回正圆。这里适应度函数可以根据磁罗盘转一圈时,修正后磁场值的方差来确定。考虑到偏移越多,方差越大,遗传算法保留适应度大的个体,而方差越小的个体越理想,因此选择方差的相反数作为适应度函数。但遗传算法适应度函数具有非负性,为此在方差取反的基础上叠加一个较大的阈值将其变为正数以符合算法的要求。适应度函数f(t)计算公式为:
⑤选择 选择就是从群体中选择优胜的个体,淘汰劣质个体。本文使用遗传算法中经典的轮盘赌算法:首先针对当前种群中的每个染色体算出其对应的适应度函数值,分别记为 f1,f2,f3,…,fM,再算出它们的和fsum,则可得每个解对应的选择概率:
计算每个染色体的累积概率:
根据轮盘赌选择算法,产生[0,1]区间均匀分布的随机数r,若r≥Q1,就选择染色体Ui,否则选择第 k 个染色体,使得 Qk-1≤r≤Qk。
⑥交叉 使用单点交叉算子。其运算方法是随机选择一个染色体串的节点,然后交换两个父辈节点右端部分来产生子代。假设交叉概率为25%,即在平均水平上有25%的染色体产生了交叉。
⑦变异 使用基本位变异算子。即如果该位基因是1,则变异之后就变为0。将变异概率设为P=0.02。在确定变异基因时,首先产生[0,1]区间均匀分布的随机数r,如果第i次得到的r<P,就对第i个染色体进行变异。
当遗传的代数满足要求的时候,就可以根据适应度函数选择出当前最佳的个体,然后进行解码,这就得到磁罗盘最佳误差补偿参数。
4 实验及分析
由于罗盘常被置于不平的载体上,本文使用加速度计测得载体倾角,对罗盘进行倾斜补偿[4,7]。倾斜补偿可以有效降低罗盘姿态造成的误差,但是由于环境磁场的干扰,仍旧存在较大误差,需要相应的算法进行补偿。
(1)环境误差补偿实验
系统软硬件设计完成之后,对罗盘系统进行了标定和实验。在0°~360°之间每个10°测量一次航向角数据。并且运用遗传算法对航向角进行补偿,计算其产生的误差。误差结果如图2所示。
图2 遗传算法误差示意图
测量数据显示,在未进行误差补偿时,航向角的平均误差为10.81°,说明进行误差补偿的必要性。在本系统中,遗传算法可以有效补偿由于环境磁场造成的误差,可将平均误差由10.81°降低到0.53°。
(2)不同地点外场对比实验
在不同地点下开展了外场实验,分别为:电子干扰较大的实验室、空旷操场、无干扰室内、普通街道。实验结果如图3所示,误差分析如表1所示。
图3 不同地点外场实验结果
表1 不同测量环境下罗盘系统测量结果 单位:(°)
由结果可见,经过遗传算法补偿之后,多种不同测量环境下本罗盘系统的最大测量误差不超过5°,可有效实现恶劣电磁环境下的航向角测量。
5 结论
本文在基于磁阻技术的倾斜补偿式数字罗盘硬件基础上,对罗盘误差来源进行了详细的分析。提出一种基于遗传算法的误差补偿方法。
实验表明,本文所实现的遗传算法对磁罗盘补偿后,在0°~360°范围内,航向角的测量精度可达±1.6°;在±60°范围内,罗盘倾角测量误差不超过±1°,对于60°以外的大倾斜角情况,可以通过等效计算将倾斜角调整到可控范围内进行补偿;恶劣电磁环境下,最大航向角误差不超过5°。补偿后的罗盘可以提供一种精确有效的地磁导航信息。
[1] 郭才发,胡正东,张士峰.地磁导航综述[J].宇航学报,2008,30(4):1314-1319.
[2] 洪德本.航海仪器[M].大连:大连海事大学出版社,2003:297-308.
[3] Honeywell.3-Axis Compass Sensor Set[EB/OL].www.honeywell-sensor.com.cn,2009-10-16.
[4] 金海红,吴东升,田柳,等.倾斜补偿式地磁传感器的设计与误差补偿方法,传感器与微系统,2010,7(29):33-36.
[5] 邵婷婷.倾斜补偿电子罗盘设计[D].西安:西北工业大学电子信息学院,2007.
[6] 杜英,李杰,孔祥雷,等.无航向基准条件下电子罗盘的误差补偿方法研究[J].传感技术学报,2010,23(9):1285-1288.
[7] 沈鹏,徐景硕,高扬.电子磁罗盘测量误差校正方法研究[J].仪器仪表学报.2007,28(10):1902-1905.
[8] Wichman R,Heinonen P,Neuro Y.FIR-Median Hybrid Filters with Excellent Transient Response in Noisy Conditions[J].Digital Signal Process,1987,38(12):l71-175.
[9] 王秀.基于遗传算法的数字磁罗盘误差补偿方法研究[J].磁性材料及器件,2010,41(4):63-69.
[10]刘建娟,徐晓苏.遗传优化模糊神经网络在组合导航系统中的应用[J].传感技术学报,2006,19(6):2630-2633.
[11] 席裕庚.遗传算法综述[J].控制理论与应用,1993,13(6):697-708.
[12]雷英杰.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学出版社,2005:1-200.