智能车制作

标题: 跪了一天了,实在想不通啊,求求大神指教! [打印本页]

作者: 歪腰    时间: 2015-4-16 22:34
标题: 跪了一天了,实在想不通啊,求求大神指教!
下载程序,拔掉jlink,角度融合,如图:[attach]76243[/attach]下载程序,不拔jlink,角度融合,如图:[attach]76244[/attach]
为什么统一程序不同的结果啊?我用的是清华滤波。  
同时测试了卡尔曼,卡尔曼插上拔掉没区别。这是为什么啊?。。。。。。。
怀疑是变量定义问题,但是不知道是哪里的问题啊。
代码如下:
       /*龙丘滤波*/
       //Acc=2035-ADValue0; //-90z轴1为垂直修正量  纠正垂直时的不确定
        //Gyr=ADValue1-Gyr_OFFSET;    // 陀螺仪的值   /
        //Acc_jiao=Acc*0.34; //z轴转过的角度 0.134180/    max-min
        //Gyr_jiao=Gyr*0.043;//陀螺仪的角度   
        //real_angle = Q*(real_angle + Gyr_jiao*0.05) + R*(Acc_jiao);    // 0.01 采样周期


       /*卡尔曼滤波*/
        //Kalman_Filter(Acc_jiao,Gyr_jiao);
        //real_angle= angle;
        //GyrAccCra=real_angle;

        /*清华滤波*/      
        float fDeltaValue;
        Acc_jiao = (ADValue0 - 2035)*0.34;     //0.06357准确
        Gyr_jiao = (Gyr_OFFSET-ADValue1) * 0.5;
        
        g_fCarAngle = g_fGyroscopeAngleIntegral;
        fDeltaValue = (Acc_jiao-g_fCarAngle)/2;  //
        g_fGyroscopeAngleIntegral += (Gyr_jiao+fDeltaValue)/ (1000/5);//1000/5ms
        GyrAccCra=g_fCarAngle;

        //乘与积分时间
        OutData[0]=Acc_jiao; //  Z轴转的角度
        OutData[1]=Gyr_jiao; //加速度计计算得到的角度
        OutData[2]=GyrAccCra;  //最后融合得到的角度
        Display(GyrAccCra,10,3);


作者: zhou1994    时间: 2015-4-16 22:45
因为你设置零点的时候是插着jlink设置的。
作者: 歪腰    时间: 2015-4-16 23:00
zhou1994 发表于 2015-4-16 22:45
因为你设置零点的时候是插着jlink设置的。

陀螺仪的零点吗?我是开始初始化的  for(i=1;i<=50;i++)
    {
      Get_Gyr_OFFSET();
    }




采集陀螺仪的零偏
*/
void Get_Gyr_OFFSET(void)
{
        AD2_MAX=AD2[0];
        AD2_MIN=AD2[0];
        for(nn=0;nn<20;nn++)
        {  
                AD2[nn]= adc_once(AMP3,ADC_12bit);
                if (AD2[nn]>AD2_MAX)
                {
                        AD2_MAX =AD2[nn];
                }
                else if  (AD2[nn]<=AD2_MIN)
                {
                        AD2_MIN=AD2[nn] ;
                }

        }

        Gyr_OFFSET=(AD2[0]+AD2[1]+AD2[2]+AD2[3]+AD2[4]+AD2[5]+AD2[6]+AD2[7]+AD2[8]+AD2[9]+AD2[10]+AD2[11]+AD2[12]+AD2[13]+AD2[14]+AD2[15]+AD2[16]+AD2[17]+AD2[18]+AD2[19]-AD2_MAX-AD2_MIN)/18;
        //OutData[3]=Gyr_OFFSET;  //陀螺仪零偏值
}


作者: 43380249    时间: 2015-4-17 00:25
zhou1994 发表于 2015-4-16 22:45
因为你设置零点的时候是插着jlink设置的。

大神大神

作者: mnmlyn    时间: 2015-4-17 00:30
2楼是大神,我测过插着Jlink的时候,电源噪声有100mVpp
作者: 泰庆电子    时间: 2015-4-17 08:11
:):)
作者: zhou1994    时间: 2015-4-17 09:14
43380249 发表于 2015-4-17 00:25
大神大神

{:3_47:}

作者: 1200    时间: 2015-4-17 09:19
才跪一天你就想不通了




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2