平衡车的卡尔曼滤波程序是什么意思
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/18 17:59:29
平衡车的卡尔曼滤波程序是什么意思
void Kalman_Filter(float angle_m,float gyro_m) //gyro_m:gyro_measure;angle_dot指的是角速度,即角度求导;
{
g_fCarAngle+=(gyro_m-q_bias) * dt; //先验估计(积分陀螺仪)
//
angle_err = angle_m - g_fCarAngle; //zk-先验估计(计量角度传感器与陀螺仪的误差)
PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E; //Kk
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
g_fCarAngle += K_0 * angle_err; // 后验估计误差协方差; 输出值滤波后的角度
q_bias += K_1 * angle_err; // 后验估计误差协方差
//gyro1=gyro_m-q_bias;
// g_fGyroScopeAngleSpeed = gyro_m-q_bias; //输出值(后验估计)的微分 = 滤波后的角速度
}
这是kalman滤波的程序 我看大家都是这么写的 刚开始看温度那个例子还算是看个半懂 但这个好像和温度那个完全不一样
void Kalman_Filter(float angle_m,float gyro_m) //gyro_m:gyro_measure;angle_dot指的是角速度,即角度求导;
{
g_fCarAngle+=(gyro_m-q_bias) * dt; //先验估计(积分陀螺仪)
//
angle_err = angle_m - g_fCarAngle; //zk-先验估计(计量角度传感器与陀螺仪的误差)
PCt_0 = C_0 * P[0][0];
PCt_1 = C_0 * P[1][0];
E = R_angle + C_0 * PCt_0;
K_0 = PCt_0 / E; //Kk
K_1 = PCt_1 / E;
t_0 = PCt_0;
t_1 = C_0 * P[0][1];
P[0][0] -= K_0 * t_0;
P[0][1] -= K_0 * t_1;
P[1][0] -= K_1 * t_0;
P[1][1] -= K_1 * t_1;
g_fCarAngle += K_0 * angle_err; // 后验估计误差协方差; 输出值滤波后的角度
q_bias += K_1 * angle_err; // 后验估计误差协方差
//gyro1=gyro_m-q_bias;
// g_fGyroScopeAngleSpeed = gyro_m-q_bias; //输出值(后验估计)的微分 = 滤波后的角速度
}
这是kalman滤波的程序 我看大家都是这么写的 刚开始看温度那个例子还算是看个半懂 但这个好像和温度那个完全不一样
看看卡尔曼自己的论文
下面卡尔曼滤波的matlab程序语句,
谁能给我讲解一下卡尔曼滤波,我最近在用mpu6050,把陀螺仪和加速度的值通过卡尔曼滤波融合.求C程序!
卡尔曼滤波算法的功能是什么?
陀螺仪和加速度计做卡尔曼滤波时数据是作为什么参量传递到滤波程序中的?
这个卡尔曼滤波程序哪位大哥可以帮我解释一下?
通俗并详细解释一下卡尔曼滤波
什么是卡尔曼滤波?那什么是维纳滤波?
数字滤波常用方法有几种,维纳、卡尔曼、自适应滤波是非线性滤波方法,线性的有FIR和IIR滤波结构吗
OpenCV的大侠们!谁会利用卡尔曼滤波判断运动物体的方向啊?
卡尔曼滤波理解问题看了几天的卡尔曼滤波一直有个地方不明白,网上的文献一般都有建立状态转移方程和量测方程,但是那只是对于仿
加速度和陀螺仪结合测量目标姿态为什么要用卡尔曼滤波结合?怎样结合的?
卡尔曼滤波之后的值为什么是无效的啊,就是输入加速度得出的角度和陀螺仪两个参数