智能车制作
标题:
跪了一天了,实在想不通啊,求求大神指教!
[打印本页]
作者:
歪腰
时间:
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://dns.znczz.com/)
Powered by Discuz! X3.2