智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2579|回复: 2
打印 上一主题 下一主题

求一份陀螺仪滤波算法

[复制链接]

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
147
威望
78
贡献
45
兑换币
47
注册时间
2015-6-19
在线时间
12 小时
毕业学校
蚌埠学院
1#
发表于 2017-3-9 01:08:50 | 显示全部楼层
//================================================================================================
//  实现功能:清华滤波方案
//  输入参数:无
//  输出参数:无
//  函数说明:待考察
//================================================================================================
#define GRAVITY_ADJUST_TIME_CONSTANT 4 //重力补偿系数

float GRAVITY_OFFSET  =2453;// 2195    2435   2561             //加速度  z
float GYROSCOPE_OFFSET=1545;// 1574     1568   1997         //陀螺仪  AR  2033

float GRAVITY_ANGLE_RATIO=0.087;        //实际计算值
float DT=0.004;                        //表示为4ms,定时器4MS
float GYROSCOPE_ANGLE_RATIO=0.26;        //预设计算值(待测量)0.45     0.24完美(0.23至0.26)温飘


// max  2890
// min   825
// sub  2065

float g_fCarAngle;
float g_fGravityAngle;
float g_fGyroscopeAngleSpeed;
double g_fGyroscopeAngleIntegral;

void AngleCalculate(float VOLTAGE_GRAVITY,float VOLTAGE_GYRO)
{
        float fDeltaValue;
       
        // 归一处理
        g_fGravityAngle = (GRAVITY_OFFSET - VOLTAGE_GRAVITY) * GRAVITY_ANGLE_RATIO;
        g_fGyroscopeAngleSpeed = (GYROSCOPE_OFFSET -VOLTAGE_GYRO) * GYROSCOPE_ANGLE_RATIO;
       
        // 计算融合角度
        g_fCarAngle = g_fGyroscopeAngleIntegral;
        fDeltaValue = (g_fGravityAngle - g_fCarAngle) / GRAVITY_ADJUST_TIME_CONSTANT;
        //g_fGyroscopeAngleIntegral += (g_fGyroscopeAngleSpeed + fDeltaValue) / GYROSCOPE_ANGLE_SIGMA_FREQUENCY;
        g_fGyroscopeAngleIntegral += (g_fGyroscopeAngleSpeed + fDeltaValue)*DT;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-19 18:07 , Processed in 0.040818 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表