标题: 电子罗盘HMC5883物体倾斜时的补偿问题-方位角计算公式 [打印本页]

作者: xwlf0727    时间: 2017-8-22 14:18
标题: 电子罗盘HMC5883物体倾斜时的补偿问题-方位角计算公式
pitch和roll角由重力加速度计可得,物体倾斜补偿时要注意pitch(俯仰角)和roll(横滚角)的方向,否则补偿误差消除不了。

如何得到罗盘的方位角
磁阻传感器为建立罗盘导航系统提供了固态有效的解决办法!但是我们怎么才能够从简单的3轴数据得到罗盘的方位角呢?
下面就将一步步告诉你如何去实现!
1)当 3 轴磁力计工作时可以读到 XYZ 三轴的磁场强度,此时的数值并不能直接用作方位角的计算!因为此时的读数可能受到器件版面上其他
一些含磁材料的影响,形成圆心坐标的硬铁漂移!

用作方位角计算的XYZ数值必须将此漂移值移除,使圆心回到原点上.

具体的办法是:
1,水平匀速旋转,收集 XY轴的数据
2,转动器材90 度(此时 Z轴水平)匀速旋转以收集 Z轴数据
3,将读取到的各轴数据的最大值加上最小值除以2,就得到一个各轴的offset 值
Xoffset=(Xmax+Xmin)/2
Yoffset=(Ymax+Ymin)/2
Zoffset=(Zmax+Zmin)/2
4,然后将磁力计读取的各轴的裸值减去前面计算所得的 offset值,就可以得到用作角度计算的 Heading 值
XH=X裸-Xoffset
YH=Y裸-Yoffset
ZH=Z裸-Zoffset
如果只用作水平测量,则此时的方位角为
方位角=arctanYH/XH

如果在测量时,我们的器件不是处在水平位置,套用以上公式,罗盘的方位角将出现偏差,此时就需要使用加速度传感器对磁力计进行倾角补偿。
要对电子罗盘进行倾角的补偿,首先要计算出横滚角(θ)Roll 以及俯仰角(φ)Pitch
代入以下公式, 计算 Heading 值
Xh=X*cos(φ)+Y*sin(θ)*sin(φ)-Z*cos(θ)*sin(φ)
Yh=Y*cos(θ)+Z*sin(θ)
考虑到角度的4 个象限,航向角的计算公式可变为以下公式
for(Xh<0)=180-[arctan(Yh/Xh)*180/π]
for(Xh>0,Yh<0)=-[arctan(Yh/Xh)*180/π]
for(Xh>0,Yh>0)=360-arctan(Yh/Xh)*180/π
for(Xh=0,Yh<0)=90
πfor(Xh=0,Yh>0)=270

完整的pdf格式文档51黑下载地址:
电子罗盘方位角计算公式.pdf (336.86 KB, 下载次数: 303)



作者: bruceleegyx    时间: 2017-12-20 13:17
这个资料很好,感谢分享!
作者: Who260    时间: 2018-1-15 11:44
很想下载这个资料,第一次来到这个论坛。不知道资料实用不实用
作者: Who260    时间: 2018-1-17 16:47
请教楼主,我不分四象限,直接用公式
Xh=X*cos(φ)+Y*sin(θ)*sin(φ)-Z*cos(θ)*sin(φ)
Yh=Y*cos(θ)+Z*sin(θ)
航向角也能在 360度范围内转得很好,就是pitch和roll有点不太对,不知什么原因
作者: jjlin77    时间: 2018-2-9 09:47
好,支持,我在学习这个,还想请问下,我们的数据比如说现在是90°,它磁力计数据在90±10之间不停的跳动(我设备放着没有动),这种情况是电路设计有问题吗?还是说软件需要滤波?±10跳的有点夸张啊。
作者: DigitaiMotol    时间: 2018-5-8 12:14
非常感谢楼主的分享
作者: 大秦國風    时间: 2018-12-17 13:49
谢谢楼主分享

作者: polebear1223    时间: 2020-3-19 16:05
最近在研究这个,下载下来看看
作者: 6335490    时间: 2021-1-23 11:26
最近在研究这个,下载下来看看




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1