"德国mk代码详细分析"
本文将详细分析德国mk代码,介绍德国mk代码中的姿态检测算法、控制算法等知识点,并与卡尔曼滤波进行比较。
一、姿态检测算法
德国mk代码中的姿态检测算法主要包括两部分:实时融合和长期融合。实时融合每一次算法周期都要执行,而长期融合每256个检测周期执行一次。
实时融合:
1. 将陀螺仪积分和加速度计滤波后的值做差;
2. 按照情况对差值进行衰减,并作限幅处理;
3. 将衰减值加入到角度中。
长期融合:
1. 将陀螺仪积分的积分和加速度积分做差;
2. 将上面两个值进行衰减,得到估计的陀螺仪漂移;
3. 对使考虑了陀螺仪漂移和不考虑陀螺仪漂移得到的角度做差,如果这两个值较大,说明陀螺仪在前段时间内测到的角速率不够准确,需要对差值误差(也就是陀螺仪中立点)进行修正,修正幅度和差值有关。
二、控制算法
德国mk代码中的控制算法的核心是对角速度做 PI 计算,P 的作用是使四轴能够产生对于外界干扰的抵抗力矩,I 的作用是让四轴产生一个与角度成正比的抵抗力。
1. 只有 P 的作用,将四轴拿在手上就会发现,四轴能够抵抗外界的干扰力矩的作用,但是如果用手将四轴扳过一个角度,则四轴无法自己回到水平的角度位置,这就需要 I 的调节作用。
2. 对角速度做 I(积分)预算实际得到的就是角度,德国人四轴里面用的也是角度值,如果四轴有一个倾斜角度,那么四轴就会自己进行调整,直到四轴的倾角为零,它所产生的抵抗力是与角度成正比的,但是,如果只有 I 的作用,会使四轴迅速产生振荡,因此,必须将 P 和 I 结合起来一起使用,这时候基本上就会得到德国四轴的效果了。
三、与卡尔曼滤波的比较
卡尔曼滤波是一种线性系统的最优估计滤波方法。对于本系统而言,使用卡尔曼滤波的作用是通过对系统状态量的估计,和通过加速度计测量值对系统状态进行验证,从而得到该系统的最优状态量,并实时更新系统的各参数(矩阵),而最重要的一点,改滤波器能够对陀螺仪的常值漂移进行估计,从而保证速率环的正常运行,并在加速度计敏感到各种有害加速度的时候,使姿态检测更加准确。
然而,卡尔曼滤波器能否工作在最优状态很大程度上取决于系统模型的准确性,模型参数的标定和系统参数的选取。然而,仅仅通过上位机观测而得到最优工作参数是不显示的,因为参数的修改会导致整个系统中很多地方发生改变,很难保证几个值都恰好为最优解,这需要扎实的理论知识,大量的测量数据和系统的仿真。
德国人的姿态检测部分是在尝试使用一种简单方法去解决复杂问题,他既没有使用传统的四元数法进行姿态检测,也么有使用卡尔曼滤波。他的计算量不比最简单的卡尔曼滤程序波程序的计算量小,但与卡尔曼滤波相比,更加直观,易于理解,参数调节也更加方便。
德国mk代码中的姿态检测算法和控制算法都是非常重要的知识点,对于四轴的稳定性和姿态检测的准确性至关重要。
2025-03-27 14:56:49
35KB
德国mk代码
1