电子水平仪原理 - 如何基于加速度计计算倾斜角

        水平仪是一种我们用来测量静止物体水平面的工具或仪器,传统水平仪是透明管中填充液体并通过汽包的位置来判断是否水平,而电子水平仪不仅可以测量是否水平还能检测出当前倾斜角是多少,技术方案上通常使用加速度传感器来计算倾斜角。

1. 什么是倾斜角

        倾斜角是指某物体相对于水平面的夹角,具体指物体参考轴与水平面的夹角(如下图所示),水平面以上为正,水平面以下为负,倾斜角的范围为【-π/2,π/2】,若超过此范围取其补角,简化模型如下所示:

倾斜角示意图

2. 倾角计算原理

2.1. arcsin计算

        如下图所示我们能够通过传感器测量Ax方向的加速度值,物体的倾斜角为θ,当加速度传感器静止时也就是侧面和垂直方向没有加速度作用,那么作用在它上面的只有重力加速度。根据三角关系重力加速度与物体垂直方向的夹角为倾斜角θ。简化模型如下:

倾斜角 角度关系图

        测量轴重力方向的加速度存在关系:

sin(\Theta ) = \frac{Ax}{g}

        通过反三角函数计算得到倾斜角θ:

\Theta = arcsin(\frac{Ax}{g})

        通过上面表达式我们已能够测量出设备的倾斜角,但是重力加速度g不能获取到一个精确的值(一般情况重力加速度取9.8),导致存在测量误差误差,不仅如此重力加速度还会随高度的变化而变化(重力加速度是由于地心引力产生的,引力随距离变化而变化,加速度也随之变化),这让测量误差进一步不可控,为此在物体静止下,重力加速度g值可以通过一下方式得到:

g = \sqrt{Ax^2+Ay^2+Az^2}

        联合上述公式可得到:

\Theta = arcsin\frac{Ax}{\sqrt{Ax^2+Ay^2+Az^2}}

        上面倾斜角θ表达式中误差已与准确的重力加速度值无关,由不准确的重力加速度和因高度不同引起不同重力加速度引入的误差得到控制。除了通过arcsin计算方法之外我们还可以通过arctan来计算倾斜角。

2.2. arctan计算

        参考arcsin计算倾斜角,也可以通过arctan计算倾斜角,如下:

\Theta = arctan\frac{Ax}{\sqrt{g^2-Ax^2}}

        由于不同的海拔高度下g值不一样,g值可以通过一下方式得到:

g^2 = Ax^2+Ay^2+Az^2

        联合上述公式可得到:

\Theta = arctan\frac{Ax}{\sqrt{Ay^2+Az^2}}

3. 工程应用

        在实际的工程应用不会直接使用使用公式进行倾角计算,会在计算前使用一些数据处理手段让整个结果更加稳定和准确,常规的做法是对每个轴加速度值通过一个合适的中值滤波算法,然后再通过一个合适的均值滤波算法,最终将滤波处理后的数据再使用倾角计算公式进行倾角计算。

        另外一个问题在工程中也较为容易遇到:加速度轴和物体外形的参考轴存在非零夹角,若我们直接使用倾角计算公式计算加速度计的倾斜角,然后再对加速度的倾角进行固定补偿,在一些情况下能够得到物体正常的倾角,但某些角度存在模糊问题不能被解决,这时我们需要对加速度计的相对与物体外形的每个轴重新进行矢量分解,采用矢量分解后的加速度计算倾斜角将能解决模糊问题,分解如下图所示:

参考轴转换(坐标轴转换)示意图

        转换公式如下:

x' = x·con\alpha +y·sin\alpha \\ y' = y·cos\alpha - x·sin\alpha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值