• mpu6050姿态解算与卡尔曼滤波(5)可应用于51单片机的卡尔曼滤波器


    博客4中给出的滤波器状态维数为4维,测量量为3维,每次滤波需要做不少矩阵乘法和求逆运算。如果想在51单片机上实现,计算耗时会比较长。考虑应用场合可以对滤波器适当做一些简化,计算量会大大减小。
    首先,陀螺和加速度计融合只能保证俯仰和滚转角收敛,而且从测量方程来看,加速度计的测量只与俯仰和滚转角有关。因此可以考虑滤波器状态选取为俯仰角 θ \theta θ和滚转角 γ \gamma γ,这样状态维数会减少。选取状态为俯仰角和滚转角带来的问题是状态方程必须使用欧拉角微分方程,而欧拉角微分方程中包含三角函数计算,反而增加了计算量。
    [ ψ ˙ θ ˙ γ ˙ ] = 1 cos ⁡ θ [ − sin ⁡ γ 0 cos ⁡ γ cos ⁡ γ cos ⁡ θ 0 sin ⁡ γ cos ⁡ θ sin ⁡ θ sin ⁡ γ cos ⁡ θ − sin ⁡ θ cos ⁡ γ ] [ ω n b x b ω n b y b ω n b z b ]

    [ψ˙θ˙γ˙]" role="presentation">[ψ˙θ˙γ˙]
    =\frac{1}{\cos\theta}
    [sinγ0cosγcosγcosθ0sinγcosθsinθsinγcosθsinθcosγ]" role="presentation">[sinγ0cosγcosγcosθ0sinγcosθsinθsinγcosθsinθcosγ]
    [ωnbxbωnbybωnbzb]" role="presentation" style="position: relative;">[ωnbxbωnbybωnbzb]
    ψ˙θ˙γ˙ =cosθ1 sinγcosγcosθsinθsinγ00cosθcosγsinγcosθsinθcosγ ωnbxbωnbybωnbzb
    这种情况下考虑滤波器的应用场合。如果在滤波器运行过程中能保证 θ \theta θ γ \gamma γ基本保持在0±5°附近,那么欧拉角微分方程可以简化为
    [ ψ ˙ θ ˙ γ ˙ ] = [ − γ 0 1 1 0 γ θ γ 1 − θ ] [ ω n b x b ω n b y b ω n b z b ]
    [ψ˙θ˙γ˙]" role="presentation" style="position: relative;">[ψ˙θ˙γ˙]
    =
    [γ0110γθγ1θ]" role="presentation" style="position: relative;">[γ0110γθγ1θ]
    [ωnbxbωnbybωnbzb]" role="presentation" style="position: relative;">[ωnbxbωnbybωnbzb]
    ψ˙θ˙γ˙ = γ1θγ0011γθ ωnbxbωnbybωnbzb

    这样状态方程就变得十分简单,可以只取 θ \theta θ γ \gamma γ。对于 θ \theta θ γ \gamma γ保持在0±5°附近的假设在一些场合下是适用的,比如平衡车、自动保持水平模式的四轴,当然前提是控制可以闭环。
    对于测量方程,也可简化为
    [ a x a y a z ] = [ − g γ g θ g ]
    [axayaz]" role="presentation" style="position: relative;">[axayaz]
    =
    [gγgθg]" role="presentation" style="position: relative;">[gγgθg]
    axayaz = gγgθg

    测量量只取 a x a_x ax a y a_y ay
    这样一来状态和测量方程都变得十分简单,计算量也大大减小,应用在51这样的单片机上也能在10ms内完成姿态解算。

  • 相关阅读:
    Elasticsearch中使用join来进行父子关联
    【Saras算法】TD Learning的一种
    Vsan数据恢复—Vsan存储断电导致虚拟机无法启动的数据恢复案例
    SQL Server实战一:创建、分离、附加、删除、备份数据库
    sphinx 部分高级功能汇总说明
    ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(三)
    竞赛 基于深度学习的行人重识别(person reid)
    QML TabView中Tab控件无法访问子控件id的解决办法
    包装类型的缓存机制
    golang关于errors.As两个参数的问题记录
  • 原文地址:https://blog.csdn.net/qiguizhe/article/details/138009924