- 2
- 0
- 约小于1千字
- 约 1页
- 2021-01-27 发布于河北
- 举报
CORDIC算法在三轴电子罗盘中的应用
摘 要: CORDIC算法是用于计算三角、反三角、指数、对数等超越函数的简捷算法。将该算法应用在以单片机为核心的三轴电子罗盘中,用于实现罗盘的倾斜补偿并计算俯仰角、横滚角和航向角。实验表明,该算法可有效地在单片机上运行,能够较好地兼顾计算精度与效率,有实用价值。关键词: CORDIC; 电子罗盘; 单片机
CORDIC算法(Coordinate Rotation Digital Computer)(即ldquo;坐标旋转数字计算机),最早是由VOLDER J E.于1959年提出[1],当时是为研制B-58轰炸机的导航系统而设计的。但该算法仅仅用到了移位和加减运算,因此其硬件实现非常简单。后经众多学者加以研究和发展,使其成为数字电路中计算各种超越函数的一种简捷有效的算法[2]。CORDIC算法在FPGA中应用甚广[2-3],在DSP上也有所应用[4],但鲜有在单片机上的应用报道。1 CORDIC算法简介 CORDIC算法的基本原理来自二维坐标的旋转变换。当平面直角坐标系绕原点旋转一个角度theta;时,新旧坐标间的变换关系为:
以上介绍的CORDIC算法属于最基本的ldquo;圆周型rdquo;CORDIC算法。对迭代步骤稍作改动,即可将其变形为ldquo;直线型rdquo;或ldquo;双曲型rdquo;CORDIC算法,从而可用于计算乘除法、双曲函数、指数函数和对数函数[2]。 CORDIC算法中的移位运算很适合于在FPGA中用硬件实现,不但计算速度快,而且相对于查表法明显节省了硬件资源。而在DSP中,由于缺少专门的硬件支持,CORDIC算法相对于幂级数展开法或查表法则缺乏优势[2-4]。对于经典的PIC、8051等单片机,因为每执行1条移位指令只能将数据左移或右移1位,而执行CORDIC算法时会在移位运算上消耗大量的时间,从而影响CORDIC算法的效率。2 罗盘载体姿态及其解算
式(7)、式(8)中的Bxh与Byh即是地磁场在水平面内的2个正交分量,分别沿xh轴和yh轴方向。式(7)所描述的正是将载体坐标系中测得的地磁分量变换到地平坐标系的过程。
原创力文档

文档评论(0)