注册 登录
查看: 281|回复: 2

智能车直立程序,有个地方看不懂,大神们来帮帮我吧。。。呜呜

[复制链接]
发表于 2015-1-17 11:17:18 | 显示全部楼层 |阅读模式
这是这个部分的程序:

void QingHua_AngleCalaulate(float G_angle,float Gyro)
{
    float fDeltaValue;

    g_fCarAngle = g_fGyroscopeAngleIntegral;   //最终融合角度
    fDeltaValue = (G_angle - g_fCarAngle) / GRAVITY_ADJUST_TIME_CONSTANT;  //时间系数矫正
    g_fGyroscopeAngleIntegral += (Gyro + fDeltaValue) * DT;                //融合角度
}

个人见解说明:

    g_fCarAngle就是上一次得出的角度,这里将加速度器测出的角度与之相减再
乘以一个1/Tg,得到了一个反馈给陀螺仪角速度的量,即:fDeltaValue,而函数中的
GRAVITY_ADJUST_TIME_CONSTANT,就是Tg了,然后又将反馈量加给了陀螺仪的倾角速度
,最后再乘以一个积分系数,就得到了这一次的倾角角度。可是,为什么不是g_fGyroscopeAngleIntegral= (Gyro + fDeltaValue) * DT;  
而是 g_fGyroscopeAngleIntegral += (Gyro + fDeltaValue) * DT 呢,闹心啊,求讲解。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-1-17 11:34:35 | 显示全部楼层
积分积分,是要累加的,你知道这次倾0.1°了,下次0.1°了,怎么知道当前的角度呢,你那样只能知道上一次中断到这次中断的变化。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-17 11:52:02 | 显示全部楼层
额,,,陀螺仪角速度积分得到的不就是角度么???
回复 支持 反对

使用道具 举报

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

本版积分规则

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