枭龙战机

结合陀螺仪与加速度计测量物体倾角和受力(原创)

0
阅读(7538)

        在有些场合我们需要测量物体的动态运动以及相对于水平面的倾角。可以通过加速度计来获得冲击力,但是,除非物体在运动时保持水平,否则测试结果是不准确的。比如,你想用加速度计测量车辆的制动力,但车辆是向前倾斜的,测量结果中就会有重力分量。
        大多数倾斜传感器把重力方向当作参考方向。重力是一种加速度,并且随高度变化。当进行倾斜测量时,我们只需要得到重力加速度。有运动加速度时,倾斜传感器将得到一个不准确的倾角。

角速度传感器测量旋转速度,不是旋转角度,通过不断积分得到角度。当旋转速度的测量出现偏差,积分后所得的角度将会有很大的偏差。但是,我们可以结合角速度值和加速度值,计算出物体运动时的精确数据。角速度和加速度的缺点可以相互弥补。当拥有足够强的计算能力,我们就可以得到实时的加速度和角度的精确值。
        要实现这一点,我们需要测量沿三个轴的加速度和角速度。如果可能,传感器最好安装在物体重心,尽量减少旋转加速度对测量带来的不利影响。
我们可以用角速度传感器测量物体绕给定轴的旋转。如果一直对角速度积分,将会得到角度关于时间的函数。例如,可以使用角速度传感器来跟踪物体沿着X和Y轴的旋转,然后对传感器信号积分,计算出俯仰角和翻滚角。根据这个计算得到的俯仰角和翻滚角,从加速度传感器信号中减去由于倾斜带来的重力分量,最终得到运动加速度。
       要得到可靠的俯仰角和翻滚角,必须对角速度信号积分。结果是,角速度信号的偏差,会造成角度的偏差,并且随时间线性增加。此外,角速度传感器的随机噪声会导致计算角度的随机波动,这种波动使得角度以与时间的平方根成正比的速度漂移。
       然而,我们可以利用角速度传感器短时测量准确的优势和加速度计长时稳定的特点,两者结合,得到即能短时稳定又能长时稳定的倾角。用角速度传感器测量短时内角度变化,把加速度传感器当做倾角传感器测量倾角,并在一个长时间范围内,迫使角速度传感器得到的倾角慢慢匹配加速度传感器得到的倾角。

        下图所示即为具体的实现算法。

       实时对角速度传感器输出积分得到原始角度。利用加速度计测量重力方向并推断出倾斜角度。例如,如果在x轴上得到0.1G的加速度,这意味着倾斜角为arcsin(0.1)=5.7°。为了避免震动和冲击造成倾斜角计算错误,使用截止频率为 100Hz或更底的低通滤波器。两角度之差,为误差信号。它可以用来更正角度计算。这里定义了一个增益参数,k,决定着有多少误差信号用于更正角速度积分。最后将角速度原始积分与误差信号(已乘增益)相加。该过程的输出是一个角度值,短时间看角速度值起主导作用,但长时间看是由加速度值来修正的。时间尺度由k值决定。
    增益参数k值设置时间常数,在这段时间内角速度传感器计算得到的角度被重力计算的角度稳定修正。应该选择一个比预期测试更长的时间常数。然后将它除于测量速率,就是k值了。例如,如果你选了一个5s的时间常数,而且角速度和加速度传感器的工作速率是200Hz。那么,k=5/200=0.025。
一旦得到稳定的倾角,就可以用它修正原始的加速度数据。这样能得到沿任一轴的真实(运动)加速度。
    最终结果是得到物体运动的完整描述,包括角速度,稳定的倾斜角度和纠正了的线性加速度。以上描述的实时系统可以使用ADI的传感器实现。这构成了一个可靠运动检测系统。