搜索
bottom↓
回复: 3

罗盘算法问题请教

[复制链接]
(156587695)

出0入0汤圆

发表于 2015-12-14 16:27:47 | 显示全部楼层 |阅读模式
我在做一个电子罗盘,航向角已经算出,在罗盘水平转动时航向角能正常指示,现在的问题是航向角按一个角度固定不变做横滚变动,发现横滚变动时航向角也有较大变化!不知道什么原因,我把公司给大家,希望能给点指点意见!
还有就是用加表如何补偿磁罗盘?

void calc_azi(float x,float y)
{
    long int valu_buf;
        if(x > 0)
        {
                if(y > 0)                                    
                        heading = 360 - atan(y/x)*180/pi;        //四象限        
                else
                        heading = -atan(y/x)*180/pi;        //一象限
    }
   else if(x < 0)
   {
        heading = 180 - atan(y/x)*180/pi;        //二、三象限
    }
        else
        {
                if(y < 0 )               
                        heading = 90;               
                else               
                        heading = 270;               
        }       
        system.Azimuth = (long int)(heading*100);//方位
}

论坛公益广告: VIP+与VIP++福利 >>

(156584451)

出0入0汤圆

发表于 2015-12-14 17:21:51 | 显示全部楼层
百度百科"电子罗盘"摘录

仅用地磁场在X和Y的两个分矢量值便可确定方位值:
Azimuth=arcTan(Y/X) (楼主的算法)
该关系式是在检测仪器与地表面平行时才成立。

当仪器发生倾斜时,方位值的准确性将要受到很大的影响,该误差的大小取决于仪器所处的位置和倾斜角的大小。为减少该误差的影响,采用双轴倾角传感器来测量俯仰和侧倾角,这个俯仰角被定义为由前向后方向的角度变化;而侧倾角则为由左到右方向的角度变化。电子罗盘将俯仰和侧倾角的数据经过转换计算,将磁力仪在三个轴向上的矢量在原来的位置“拉”回到水平的位置。
标准的转换计算式如下:
Xr=Xcosα+Ysinαsinβ-Zcosβsinα
Yr=Ycosβ+Zsinβ
这里Xr和Yr为要转换到水平位置的值
α为俯仰角
β为侧倾角
从以上这三个计算公式可以看出,在整个补偿技术中Z轴向的矢量扮演一个非常重要的角色。要正确运用这些值,俯仰和侧倾角的数字必须时刻更新。采用双轴宽线性量程范围、高分辨率、温漂系数低的陶瓷基体电解质传感器来测量俯仰角和侧倾角,倾角数值经过电路板上的温度传感器补偿后得出的。
---------------------------
没做过这方面,不过大致意思应该是得配陀螺仪用,要用陀螺仪的俯仰角和翻滚(侧倾)角数据.

我想到的一个情景是这样:机身水平朝北偏西45度航行,然后机身右侧向下横滚45度,那得到的航向角就是正北了吧.然而实际还是在向北偏西45度航行.

帮楼主顶贴
(156584048)

出0入0汤圆

 楼主| 发表于 2015-12-14 17:28:34 | 显示全部楼层
e1ki0lp 发表于 2015-12-14 17:21
百度百科"电子罗盘"摘录

仅用地磁场在X和Y的两个分矢量值便可确定方位值:

非常感谢!!!马上测试

(156526647)

出0入0汤圆

 楼主| 发表于 2015-12-15 09:25:15 | 显示全部楼层
e1ki0lp 发表于 2015-12-14 17:21
百度百科"电子罗盘"摘录

仅用地磁场在X和Y的两个分矢量值便可确定方位值:

你好,你给的加速度计补偿磁方位角公式加入程序后方位角显示不正常!是什么原因,你有相关资料吗给我一份!
//Xr=Xcosα+Ysinαsinβ-Zcosβsinα
//Yr=Ycosβ+Zsinβ
//α为俯仰角
//β为侧倾角
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-11-30 01:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表