本文主要是介绍C语言 | 基于MPU6050的卡尔曼滤波算法(代码类),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
博主github:https://github.com/MichaelBeechan
博主CSDN:https://blog.csdn.net/u011344545
//float gyro_m:陀螺仪测得的量(角速度)//float incAngle:加计测得的角度值#define dt 0.0015//卡尔曼滤波采样频率#define R_angle 0.69 //测量噪声的协方差(即是测量偏差)#define Q_angle 0.0001//过程噪声的协方差#define Q_gyro 0.0003 //过程噪声的协方差 过程噪声协方差为一个一行两列矩阵float kalmanUpdate(const float gyro_m,constfloat incAngle) { float K_0;//含有卡尔曼增益的另外一个函数,用于计算最优估计值 float K_1;//含有卡尔曼增益的函数,用于计算最优估计值的偏差 float Y_0; float Y_1 float Rate;//去除偏差后的角速度 float Pdot[4];//过程协方差矩阵的微分矩阵 float angle_err;//角度偏量 float E;//计算的过程量 static float angle = 0; //下时刻最优估计值角度 static float q_bias = 0; //陀螺仪的偏差
这篇关于C语言 | 基于MPU6050的卡尔曼滤波算法(代码类)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!