- 阅读权限
- 50
- UID
- 64
- 帖子
- 50
- 精华
- 0
- 注册时间
- 2013-3-1
- 在线时间
- 50 小时
- UID
- 64
- 帖子
- 50
- 精华
- 0
- 注册时间
- 2013-3-1
- 在线时间
- 50 小时
|
如题,做今年飞思卡尔的光电平衡组,到现在还没有站起来啊,心里很是着急,之前在网上找了互补滤波的程序,用了之后发现滤波的效果不是很好,想改互补滤波算法里的参数,可是又不懂胡波滤波,请各位大侠帮我看看这个程序,给我讲讲,多谢~~~
附:滤波之后的波形图片(过冲好像比较大)
附:互补滤波的算法
void kalman_update(void)
{
float Q =0.85,R = 0.15;
static float RealData = 0;
float gyroscope_rate = 0,accelerometer_angle=0;
float Acc_x = 0,Acc_z = 0, Gyro=0;
Acc_x =(float) gyro_Xvalue;
Acc_z =(float) gyro_Zvalue;
Gyro =(float) enc03_value;
Gyro_Data = Gyro;
OutData[0] = Gyro_Data;
accelerometer_angle = atan2f(-Acc_x,Acc_z);//加速计算出的角度
OutData[1] = accelerometer_angle*1000;
gyroscope_rate = Gyro*0.0023; //(3300/4096)/(0.67*9.1)*(3.14/180) = 0.0023
RealData = Q*(RealData + gyroscope_rate*0.01) + R*(accelerometer_angle);
QingJiao = RealData*1000;
OutData[2] = QingJiao;
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
|